- 18 Nov, 2021 10 commits
-
-
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 -
Issue: google/ExoPlayer#9697 Before, the `MAX_SEQUENCE_NUMBER` is 65535, such that the logic to get the next sequence number: `previousSeqNumber + 1 % MAX_SEQUENCE_NUMBER` yields 0 when `previousSeqNumber` is 65534. However, the next sequence number should be 65535. PiperOrigin-RevId: 410530098
claincly committed -
PiperOrigin-RevId: 410516082
tonihei committed -
This requires forwarding the PlayerId to the AudioSink. PiperOrigin-RevId: 410509605
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 -
PiperOrigin-RevId: 410507648
ibaker 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 #minor-release PiperOrigin-RevId: 410495676
christosts committed
-
- 16 Nov, 2021 6 commits
-
-
PiperOrigin-RevId: 410255281
tonihei committed -
When selecting an explicit track or "Auto", we need to remove any existing track type disabling. Otherwise the track override won't work. Issue: google/ExoPlayer#9692 PiperOrigin-RevId: 410250313
tonihei committed -
Issue: google/ExoPlayer#9608 #minor-release PiperOrigin-RevId: 410236626
olly committed -
PiperOrigin-RevId: 410216171
andrewlewis committed -
Simple, initial implementation to allow setResolution() to set the output height, for downscaling/upscaling. Per TODOs, follow-up CLs may change layering, add UI, or allow querying decoders for more resolution options. PiperOrigin-RevId: 410203343
huangdarwin committed -
PiperOrigin-RevId: 410021183
tonihei committed
-
- 15 Nov, 2021 7 commits
-
-
And make related release notes updates. PiperOrigin-RevId: 409991879
tonihei committed -
We already parse essential and supplemental properties from the Representation, but don't add them to our Representation class so that they can be accessed by users. Issue: google/ExoPlayer#9579 PiperOrigin-RevId: 409961990
tonihei committed -
The main point of the IDLE state is that the player is not holding resources. Clarify this in the documentation of STATE_IDLE, prepare and stop. PiperOrigin-RevId: 409950785
tonihei committed -
Creating a new set of overrides removes previously set overrides that should be kept. Issue: google/ExoPlayer#9690 PiperOrigin-RevId: 409933541
tonihei committed -
The decoder writes to `OpenGlFrameEditor`'s input `Surface` and the `OpenGlFrameEditor` writes to the encoder's input `Surface`. PiperOrigin-RevId: 409931796
hschlueter committed -
- Unnecessary deprecation suppressions - Dead code - Broken Javadoc PiperOrigin-RevId: 409357884
olly committed -
Note: Updating androidxTestTruthVersion is required tot arget API level 31. PiperOrigin-RevId: 409167744
olly committed
-
- 11 Nov, 2021 17 commits
-
-
Due to sharding, each test should be in a separate class. PiperOrigin-RevId: 409142436
samrobinson committed -
PiperOrigin-RevId: 409129177
tonihei committed -
Currently, TrackSelectionOverrides are documented as being applied per track type, meaning that one override for a type disables all other selections for the same track type. However, the actual implementation only applies it per track group, relying on the track selector to never select another renderer of the same type. This change fixes DefaultTrackSelector to fully adhere to the TrackSelectionsOverride definition. This solves problems when overriding tracks for extension renderers (see Issue: google/ExoPlayer#9675) and also simplifies a workaround added to StyledPlayerView. #minor-release PiperOrigin-RevId: 409121711
tonihei committed -
The asynchronous MediaCodec adapter queues input buffers in a background thread. If a codec queueuing operation throws an exception, the buffer enqueuer will store it as a pending exception and re-throw it the next time the adapter will attempt to queue another input buffer. The buffer enqueuer's flush() and shutdown() may throw an exception if the pending error is set. This is subject to a race-condition in which the pending error can be set while the adapter is flushing/shutting down the enqueuer, e.g., if an input buffer is still being queued and the codec throws an exception. As a result, the adapter cannot flush or shutdown gracefully. This change makes the buffer enqueuer to ignore any pending error when flushing/shuttinf down so that the adapter can flush/release gracefully even if a queueing error was detected. PiperOrigin-RevId: 409113054
christosts committed -
This method is helpful when iterating the list of track overrides to figure out which type the override applies to. Issue: google/ExoPlayer#9665 PiperOrigin-RevId: 409108977
tonihei committed -
We only had some documentation for a custom shuffle mode, but none for generic repeat or shuffle modes. #minor-release Issue: google/ExoPlayer#9611 PiperOrigin-RevId: 409089623
tonihei committed -
The Javadoc of DefaultTrackSelector can be shortened as it's not the right place to document detailed options of the Player track selection parameters. The documentation page about track selection is updated to the new APIs and extended with most relevant options and information needed to work with ExoPlayer's track selection API. #minor-release PiperOrigin-RevId: 409088989
tonihei committed -
MediaSource can be reused with other Player instances after they have been released, so we need to set the PlayerId when preparing the source. Access can mostly be handled by the implementation in BaseMediaSource. PiperOrigin-RevId: 408878824
tonihei committed -
HTTP header names are case-insensitive, but all the others in this file are 'correctly' cased, so we might as well be consistent. PiperOrigin-RevId: 408840566
ibaker committed -
PiperOrigin-RevId: 408840409
ibaker committed -
Robolectric uses the JRE HttpURLConnection [1], while real Android devices and emulators use OkHttp to implement HttpURLConnection. This can lead to important differences in behaviour, so it's better to use instrumentation tests when specific HTTP behaviour is important. [1] https://github.com/robolectric/robolectric/issues/6769#issuecomment-943556156 PiperOrigin-RevId: 408840295
ibaker committed -
#minor-release PiperOrigin-RevId: 408825328
ibaker committed -
The setters in the Builder are already deprecated and using the old getter is error-prone as they only return the overrides set with the deprecated setters. Issue: google/ExoPlayer#9665 PiperOrigin-RevId: 408817640
tonihei committed -
PiperOrigin-RevId: 408816643
tonihei committed -
The `VideoSamplePipeline` handles all steps from decoding to re-encoding that where previously in `TransformerTranscodingVideoRenderer`. The renderer is now only responsible for reading the format, reading input, passing it to the pipeline and passing the pipeline's output to the muxer. When no transformations are needed, decoding and re-encoding is skipped using the `PassthroughPipeline`. PiperOrigin-RevId: 408619407
hschlueter committed -
We can rename the existing setIndex method to a more generic init as this method is only called by EPII and implemented by BaseRenderer anyway. PiperOrigin-RevId: 408616055
tonihei committed -
Follow-up to address comments from https://github.com/google/ExoPlayer/commit/9efa32e49b998c1b2ffd8dcea115138930e76cbe. PiperOrigin-RevId: 408600470
hschlueter committed
-