- 30 May, 2022 12 commits
-
-
PiperOrigin-RevId: 451428202
samrobinson committed -
Most devices won't support 8k decoding, so they'll skip this test entirely. As the video is quite short, this test shouldn't be any longer than the nearby, long-running 4k60 test. PiperOrigin-RevId: 451423368
huangdarwin committed -
PiperOrigin-RevId: 451392021
samrobinson committed -
PiperOrigin-RevId: 451384408
samrobinson committed -
Unconditionally sleep for offload, if the audio buffer is full. Previously ExoPlayer would not sleep if the expected wake-up was in 2s. This was to prevent underrun if the wake-up was delayed. Experiments have shown that the wakup audio buffer is far more than 2s (around 1min). Additionally, the metric was incorrect because it measured both, AudioTrack + DSP. Finally, this metric was erroneous after a gapless transition, when the head position would reset to 0 and thus the computed delay until next wakeup was too large. PiperOrigin-RevId: 451383701
bachinger committed -
PiperOrigin-RevId: 451380267
hschlueter committed -
PiperOrigin-RevId: 451371681
hschlueter committed -
SSIM calculation requires the input and output dimensions to be identical. For devices that can't encode the input dimensions, skip SSIM calculations and log the cause. Only apply this on tests where the encoder may not support the input file dimensions. PiperOrigin-RevId: 451364904
huangdarwin committed -
Decode-only video frames (needed when the frame at / first frame after the clipping start is not a key frame) need to be decoded but not passed to the frame processor chain or encoder. The clipping start offset needs to be removed from the frame timestamps in the passthrough and video pipelines. There are no changes needed for this in the audio pipeline, as it doesn't use the input timestamps -- it uses its own timestamps derived from the buffer sizes instead. Also add demo option to try this out. #minor-release PiperOrigin-RevId: 451353609
hschlueter committed -
There's no need to manually construct a 'default' DefaultDataSource.Factory instance, we can just pass the `Context` to `DefaultMediaSourceFactory` and let it construct the `DefaultDataSource.Factory` internally. PiperOrigin-RevId: 451155747
ibaker committed -
PiperOrigin-RevId: 451142799
hschlueter committed -
Also update names of implementations to match design doc. In follow-ups, SingleFrameGlTextureProcessor will become an abstract implementation of a new GlTextureProcessor interface. Texture processor makes sense as it processes OpenGL textures. The term frame processor will be used for something else in follow-ups. PiperOrigin-RevId: 451142085
hschlueter committed
-
- 26 May, 2022 7 commits
-
-
PiperOrigin-RevId: 451135097
ibaker committed -
* Rename (via deprecation) `MediaItem.DrmConfiguration.Builder#forceSessionsForAudioAndVideoTracks` to `setForceSessionsForAudioAndVideoTracks`. This is more consistent with existing 'force' method names both in this class and in `TrackSelectionParameters.Builder`. * Add missing `@Nullable` annotation to the parameter for `MediaItem.SubtitleConfiguration.Builder#setMimeType`. This annotation is already present on the `MediaItem.SubtitleConfiguration#mimeType` field that this setter corresponds to. PiperOrigin-RevId: 450941336
ibaker committed -
There is a problem with the ImageReader formats used by the SSIM helper that only occurs for Nexus 5 API 21, so as a workaround we can skip the SSIM calculation on Nexus 5 API 21. This skips just the SSIM calculation (by setting the value to 1.0 instead and logging). The tests still run when SSIM is skipped so that we can detect other failures. PiperOrigin-RevId: 450903183
hschlueter committed -
Decoding and encoding 320x240 H264 video should be supported on all devices from Android 5.0 based on CDD requirements. https://source.android.com/compatibility/5.0/android-5.0-cdd#5_2_video_encoding 640x360 encoding doesn't seem to be supported on Nexus 5. PiperOrigin-RevId: 450901715
hschlueter committed -
This value is only needed by subclasses of `Rating`, all of which are in this package (the `Rating` constructor is already package-private to ensure this). PiperOrigin-RevId: 450886872
ibaker committed -
4K decoding is not supported (not required to be supported) on all devices, e.g., Nexus 5 does not support it. PiperOrigin-RevId: 450682519
hschlueter committed -
PiperOrigin-RevId: 450643824
tonihei committed
-
- 23 May, 2022 7 commits
-
-
Recreating an EGLSurface for a surface that already has an EGLSurface is not allowed according to the [documentation](https://www.khronos.org/registry/EGL/sdk/docs/man/html/eglCreatePlatformWindowSurface.xhtml). This fix was tested on the devices listed in the bug description (Pixel 5a, Nexus 5). PiperOrigin-RevId: 450473569
hschlueter committed -
https://github.com/google/ExoPlayer/commit/e705999cf3b049d30b3e1b84526c68d3fb06b6c6
*** Original commit *** Rollback of https://github.com/google/ExoPlayer/commit/57182ac7bd32db54d11fd41e21338a2bbfaf043c *** Original commit *** Remove `@Nullable` from `MediaSource.Factory` setters The null-behaviour of these methods creates a minimization footgun, because **any** call to these setters will prevent R8 from removing the default implementation (even if it's never used by the app) - this is because R8 can't tell the default imple... *** PiperOrigin-RevId: 450453325
ibaker committed -
AudioTrack.setOffloadEndOfStream should be called after a track has been buffered. Additionally, the AudioTrack must be playing. It has been observed that for very short media (<1s), the AudioTrack might not have started immediately after the read that buffered the audio. In such a situation, calling AudioTrack.setOffloadEndOfStream throws and playback fails. Avoid this failure by checking that the AudioTrack is playing before calling setOffloadEndOfStream. This means that very short gapless media will not be gapless, this was deemed acceptable given that such very short media should be very rare in offload. PiperOrigin-RevId: 450431146
bachinger committed -
Issue: google/ExoPlayer#9897 Issue: google/ExoPlayer#10268 #minor-release PiperOrigin-RevId: 450428520
ibaker committed -
PiperOrigin-RevId: 450427828
claincly committed -
Also add this to the stable API instead of the constructor that takes `DataSource.Factory`. PiperOrigin-RevId: 450414119
ibaker committed -
*** Original commit *** Remove `@Nullable` from `MediaSource.Factory` setters The null-behaviour of these methods creates a minimization footgun, because **any** call to these setters will prevent R8 from removing the default implementation (even if it's never used by the app) - this is because R8 can't tell the default implementation is only used if the parameter is `null`. ****** PiperOrigin-RevId: 450410833
ibaker committed
-
- 24 May, 2022 14 commits
-
-
Put cloud storage samples at the top to avoid having a sample at the top of the list where we don't control the server. Also update labels not to mention progressive container type, as it's irrelevant for Transformer, which always transmuxes even if it doesn't transcode. #ame-bug-week PiperOrigin-RevId: 450403784
andrewlewis committed -
The null-behaviour of these methods creates a minimization footgun, because **any** call to these setters will prevent R8 from removing the default implementation (even if it's never used by the app) - this is because R8 can't tell the default implementation is only used if the parameter is `null`. Follow-up to https://github.com/google/ExoPlayer/commit/57182ac7bd32db54d11fd41e21338a2bbfaf043c PiperOrigin-RevId: 450395941
ibaker committed -
The null-behaviour of these methods creates a minimization footgun, because **any** call to these setters will prevent R8 from removing the default implementation (even if it's never used by the app) - this is because R8 can't tell the default implementation is only used if the parameter is `null`. PiperOrigin-RevId: 450386627
ibaker committed -
This detection relies on an unsupported workaround and may trigger permission warnings in tools analyzing permission usage although no permission is needed or requested by app code. Given the majority of 5G-NSA playbacks are on API 31+ by now, we can remove this path to avoid the permission confusion and the unsupported detection workaround. PiperOrigin-RevId: 450382586
tonihei committed -
In many cases we're passing a 'custom' DataSource.Factory where it's not relevant for the respective dev guide section. #minor-release PiperOrigin-RevId: 450374171
ibaker committed -
PiperOrigin-RevId: 449973324
ibaker committed -
This constant name was updated in https://github.com/google/ExoPlayer/commit/1bcf1cf9f7d1fddf7b72e98f469bc4a71f330378 PiperOrigin-RevId: 449969093
ibaker committed -
The debug surface view's output surface can become invalid during a transformation due to the parent activity pausing, for example. This can currently cause a crash when backing out of the `TransformerActivity` in the demo because the surface can be destroyed before the transformer has fully canceled. Also clarify naming of the outputSurface and inline the private method that created `EGLSurface`s (it was shorter after removing the debug preview). PiperOrigin-RevId: 449963440
andrewlewis committed -
PiperOrigin-RevId: 449587030
rohks committed -
Reference is clearer when used in conjunction with actual, and matches other SSIM documentation. PiperOrigin-RevId: 449486177
samrobinson committed -
PiperOrigin-RevId: 449485592
ibaker committed -
In most cases it's clearer to in-line these null-checks with ternary operators. PiperOrigin-RevId: 449474621
ibaker committed -
This causes a bug where the forwarded selections are no longer assumed equal and the child MediaPeriods will think they need to reset streams even though the selection stayed the same. Issue: Issue: google/ExoPlayer#10248 PiperOrigin-RevId: 449454038
tonihei committed -
PiperOrigin-RevId: 449238525
andrewlewis committed
-