- 26 Nov, 2021 7 commits
-
-
Document that apps should retain `GlUtil.Program` while the program is in use, and keep a reference to attributes/uniforms within the program to make sure they don't get GC'd causing any allocated buffers passed to GL to become invalid. Tested manually by running gldemo and transformer. PiperOrigin-RevId: 411516894
andrewlewis committed -
This should have been done in https://github.com/google/ExoPlayer/commit/098c3a010edb2461b65496b1229bd08b14b0f0d6 PiperOrigin-RevId: 411073049
ibaker committed -
The features supported by `TranscodingTransformer` are a superset of those supported by `Transformer` after merging the video renderers in <unknown commit>. This change removes `TranscodingTransformer` and adds its features to `Transformer`. PiperOrigin-RevId: 411072392
hschlueter committed -
Follow-up to a comment on https://github.com/google/ExoPlayer/commit/6f0f7dd1be40c81cb056d82215ceabdd5a8a2a1a: Buffers that are useful to pass to the sample/passthrough pipeline should either contain data or the end of input flag. Otherwise, passing these buffers along is unnecessary and may even cause the decoder to allocate a new input buffer which is wasteful. PiperOrigin-RevId: 411060709
hschlueter committed -
PiperOrigin-RevId: 411056555
kim-vde committed -
PiperOrigin-RevId: 411047838
christosts committed -
PiperOrigin-RevId: 411047184
tonihei committed
-
- 19 Nov, 2021 10 commits
-
-
The player will not play ads in final states (played, skipped, error) again. To allow ads loader customizations to play ads again, we can add a method that resets the state back to available or unavailable (depending on whether we have the URI for the ad). Issue: google/ExoPlayer#9615 PiperOrigin-RevId: 411042842
tonihei committed -
PiperOrigin-RevId: 411041225
tonihei committed -
This requires some plumbing through DashMediaPeriod and DashChunkSource. PiperOrigin-RevId: 411012115
tonihei committed -
PiperOrigin-RevId: 411010270
kimvde committed -
PiperOrigin-RevId: 411006397
ibaker committed -
This requires some plumbing through HlsMediaPeriod and HlsChunkSource. PiperOrigin-RevId: 411004283
tonihei committed -
Currently, DrmSessionManager takes player specific values (= the playback looper) through (pre)acquireSession calls and requires the caller to pass in the same values every time. Instead, we can configure the DrmSessionManager for playback with a player once before it's being used. We can't simply extend the prepare() method as prepare may be called before the player is created to prewarm the DrmSessionManager. The new method also takes a PlayerId which is bound to the lifetime of the player similar to the playback looper. To avoid breakage of custom MediaSources with DRM, we can keep the old the SampleQueue.createWithDrm method as deprecated. PiperOrigin-RevId: 410998240
tonihei committed -
There has been many issue recently about tunneling that have no obvious solutions and we don't have the bandwidth to dive into the platform root cause. - https://github.com/google/ExoPlayer/issues/9661 - https://github.com/google/ExoPlayer/issues/9133 - https://github.com/google/ExoPlayer/issues/9317 - https://github.com/google/ExoPlayer/issues/9502 PiperOrigin-RevId: 410834262
krocard committed -
tonihei committed
-
r2.16.1
tonihei committed
-
- 18 Nov, 2021 23 commits
-
-
PiperOrigin-RevId: 410819003
tonihei committed -
The `SefSlowMotionVideoSampleTransformer` drops frames by setting `buffer.data = null` and updates the timestamps of the frames it keeps. However, these buffers with dropped frames are still used in the pipeline as they may contain other useful information, specifically whether the end of the input has been reached. So, the timestamps should also be updated for the buffers where frames are dropped. PiperOrigin-RevId: 410797678
hschlueter committed -
https://github.com/google/ExoPlayertonihei committed
-
https://github.com/google/ExoPlayertonihei committed
-
https://github.com/google/ExoPlayertonihei committed
-
tonihei committed
-
tonihei committed
-
PiperOrigin-RevId: 410507648
ibaker committed -
StyledPlayerControlView can't really be used on its own (like PlayerControlView was used here), so we instead use the same StyledPlayerView instance for both local and casted playback, replacing the content with a cast icon while casting. PiperOrigin-RevId: 410764338
ibaker committed -
The GL program needs to be used before accessing its attributes. #minor-release PiperOrigin-RevId: 410768017
andrewlewis committed -
The local tracks variable was used to assign the initial subtext for the current track selection in the menu, but the new value was only assigned after the subtext has been evaluated. Assign the local variable first, so that the remaining accesses the latest value. Issue: google/ExoPlayer#9698 PiperOrigin-RevId: 410750396
tonihei committed -
We verified there is a race condition in the AsynchronousMediaCodecAdapter when flushing the adapter multiple times. The race condition results in calling MediaCodec.start() and MediaCodec.flush() in parallel and that makes the MediaCodec raise an exception. This changes the default behavior to call MediaCodec.start() on the same thread after MediaCodec.flush() to avoid the race condition. #minor-release PiperOrigin-RevId: 410509388
christosts committed -
Issue: google/ExoPlayer#9608 PiperOrigin-RevId: 410236626
olly committed -
Populate ICY headers into MediaMetadata so that they can propagate to the app via AnalyticsListener#onMediaMetadataChanged(). This change copies IcyHeaders.name into MediaMetadata.description and IcyHeaders.genre into MediaMetadata.genre. Note: MediaItem.metadata maintain their precedence and overwrite any ICY headers parsed. Issue: google/ExoPlayer#9677 PiperOrigin-RevId: 410495676
christosts committed -
PiperOrigin-RevId: 410770666
andrewlewis committed -
The GL program needs to be used before accessing its attributes. #minor-release PiperOrigin-RevId: 410768017
andrewlewis committed -
PiperOrigin-RevId: 410766492
tonihei committed -
StyledPlayerControlView can't really be used on its own (like PlayerControlView was used here), so we instead use the same StyledPlayerView instance for both local and casted playback, replacing the content with a cast icon while casting. PiperOrigin-RevId: 410764338
ibaker committed -
In the near future, we will be able to specify which tests run on this target explicitly, at which point this ignore will be removed. PiperOrigin-RevId: 410758785
samrobinson committed -
The local tracks variable was used to assign the initial subtext for the current track selection in the menu, but the new value was only assigned after the subtext has been evaluated. Assign the local variable first, so that the remaining accesses the latest value. Issue: google/ExoPlayer#9698 PiperOrigin-RevId: 410750396
tonihei committed -
The `GlUtil` wrappers for attributes/uniforms allocate buffers that are passed into OpenGL, and it seems that the distorted output was caused by these buffers being garbage collected. The issue was difficult to reproduce manually. Add a test that does repeated transcodes in a loop (marked `@Ignore` for now because it runs for a long time and requires network access so may be flaky) to make it easier to run many transcodes and look for inconsistent output. For now the consistency check is just based on the file size which is very likely to change if the actual video frames change. Verified that the test fails before, and passes once the attributes and uniforms are stored in fields as in this CL. PiperOrigin-RevId: 410581706
andrewlewis committed -
This change merges `TransformerMuxingVideoRenderer` and `TransformerTranscodingVideoRenderer` into `TransformerVideoRenderer`. Besides all features supported by `TransformerTranscodingVideoRenderer` the new merged `TransformerVideoRenderer` also supports SEF slow motion flatting without re-encoding like the `TransformerMuxingVideoRenderer`. To do this, it uses a `SefSlowMotionVideoSampleTransformer` with the `PassthroughPipeline`. PiperOrigin-RevId: 410531478
hschlueter committed -
This mime type is technically for the Muxer, and determines the container used. In the context of the transformer, this can be thought of more as a container mime type, to avoid confusion with the video mime type and audio mime type. Deprecates setOutputMimeType(). PiperOrigin-RevId: 410530707
huangdarwin committed
-