- 05 Apr, 2023 11 commits
-
-
PiperOrigin-RevId: 521731485
sheenachhabra committed -
PiperOrigin-RevId: 521476767
bachinger committed -
* Add a new event `onAudioCapabilitiesChanged` in `AudioSink.Listener` interface. * Add an interface `RendererCapabilities.Listener`, which will listen to `onRendererCapabilitiesChanged` events from the renderer. * Add `getRendererCapabilitiesReceiver` method for `TrackSelector`, and register/unregister the `TrackSelector` as the `RendererCapabilitiesReceiver` (if implemented) when the `ExoPlayer` is initialized/released. * Trigger the `AudioSink.Listener.onAudioCapabilitiesChanged` and further `RendererCapabilities.Listener.onRendererCapabilitiesChanged` events when the audio capabilities changes are detected in `DefaultAudioSink`. PiperOrigin-RevId: 521427567
tianyifeng committed -
PiperOrigin-RevId: 521427239
huangdarwin committed -
This was broken and has been fixed in <unknown commit>. PiperOrigin-RevId: 521380415
kimvde committed -
This includes: - Add an ad for each LOADED event of the SDK by taking the duration of the ad from the media structure to exactly match the start position of ads and then use `addLiveAdBreak()` that is used for HLS live already. - When the refreshed content timeline arrives, possibly correct the duration of an ad that has been inserted while the period duration was still unknown (last period of the live timeline). - When an ad period is removed the ad group needs to be put into a condition that allows continuing playback. PiperOrigin-RevId: 520919236
bachinger committed -
Handling of the stream offset and start position was unnecessarily complex and even incorrect. It was going to be an issue for concatenation of video and image input. The stream offset is the offset added before decoding/encoding to make sure it doesn’t fail in case of negative timestamps (which do rarely occur). The start position is equal to the stream offset, plus the clipping start time if the media is clipped. Before this change: - Samples were offset by the start position before decoding, and this offset was removed before muxing. - The startPosition of the first MediaItem in a sequence was used for all the MediaItems in this sequence (which is incorrect). - The stream offset was removed before applying the GL effects and added back before encoding so that it was not visible to the OpenGL processing. After this change: - The start position is subtracted in the AssetLoader, so that the downstream components don’t have to deal with the stream offsets and start positions. - Decoded samples with negative timestamps are not passed to the SamplePipelines. The MediaMuxer doesn’t handle negative timestamps well. If a stream is 10 secondes long and starts at timestamp -2 seconds, the output will only contain the samples corresponding to the first 8 (10 - 2) seconds. It won’t contain the last 2 seconds of the stream. It seems acceptable to remove the first 2 seconds instead. PiperOrigin-RevId: 520916464
kimvde committed -
PiperOrigin-RevId: 520886975
sheenachhabra committed -
Releasing the player once a sequence has ended seems to make our emulator tests flaky. Comment out until we find the cause. The player will still be released from TransformerInternal, when the export ends. PiperOrigin-RevId: 520886181
kimvde committed -
Issue: google/ExoPlayer#11008 PiperOrigin-RevId: 520864579
ibaker committed -
The `DashMediaSource` wrongly added an offset to the media times set to the `MediaLoadData`. With this the `startTimeMS` and `endTimeMs` don't represent the positions in the period but in the stream. `DashMediaSource` was the only call site that was setting the offset to a non-zero value. So if we are using 0 for the `DashMediaSource` as well, the offset is redundant and we can remove it everywhere. PiperOrigin-RevId: 520682026
bachinger committed
-
- 30 Mar, 2023 29 commits
-
-
PiperOrigin-RevId: 520663415
kimvde committed -
The media3-hosted versions of these SVGs were removed due to a change in the way the reference docs are generated. While work on getting them hosted on developer.android.com, this change simply links to the (identical) exoplayer2 versions in order to fix the media3 docs. #minor-release PiperOrigin-RevId: 520647905
ibaker committed -
https://github.com/google/ExoPlayer/commit/736242d1a6d244b87585508867f27328e3be1b6a
*** Original commit *** Rollback of https://github.com/google/ExoPlayer/commit/927105ed0dc6c811a1057db4b664003cf753ac12 *** Original commit *** Intercept audio capabilities change in `DefaultAudioSink` *** *** PiperOrigin-RevId: 520619600
tianyifeng committed -
RawCC is a Google-internal subtitle format that is no longer directly supported by this library (since https://github.com/google/ExoPlayer/commit/4f616d60034e13e2236f321cbb3187ac92a2709d). PiperOrigin-RevId: 520591591
ibaker committed -
This method has been deprecated for over 2 years. PiperOrigin-RevId: 520586238
tonihei committed -
This means we don't need to manually store the result of `get()` into a local to convince the nullness checker that it remains non-null. PiperOrigin-RevId: 520576719
ibaker committed -
For multi-period live streams the content timeline for which the global ad playback state has been split needs to be kept together to not run into a race between timeline refreshes and ad events. PiperOrigin-RevId: 520358964
bachinger committed -
And some further remaining usages of "master" in the HLS module. These usages are all package-private. PiperOrigin-RevId: 520334163
tonihei committed -
In multi-period live streams, we can't use the content timeline if we want to lookup a period from the public timeline by index or uid because it may be that the content timeline has already been refreshed in the `ImaServerSideAdInsertionMediaSource` but hasn't yet arrived in `ExoPlayerImpl`. This change is taking the current position that needs to be reported to the SDK every 200ms is not relying on the content timeline. PiperOrigin-RevId: 520328126
bachinger committed -
By having a single base class for GL shader programs we simplify the customization of new shader programs. The concrete cases include - Allow frame dropping in shader program - Creating a FrameCache that selectively (based on timestamp) replays and clears the cached content PiperOrigin-RevId: 520322060
claincly committed -
PiperOrigin-RevId: 520314781
tonihei committed -
`DefaultDrmSession(Manager)` expect most of their methods to be called on the 'playback thread'. There isn't a playback thread in the case of `OfflineLicenseHelper`, but in that case it's the thread backing `DefaultDrmSessionManager.playbackLooper`, which is `OfflineLicenseHelper.handlerThread`. PiperOrigin-RevId: 520053006
ibaker committed -
PiperOrigin-RevId: 520037412
Googler committed -
https://github.com/google/ExoPlayer/commit/93085e2c015539d63dd8649fcbe5a00b08605616
*** Original commit *** Rollback of https://github.com/google/ExoPlayer/commit/782f19edcf9dcc4ecf47dc32776429990c4a928f *** Original commit *** Release SequenceAssetLoader when ended Before, the SequenceAssetLoader was released at the end of the export. Release resources earlier if possible. *** *** PiperOrigin-RevId: 520036433
kimvde committed -
PiperOrigin-RevId: 520027236
kimvde committed -
https://github.com/google/ExoPlayer/commit/782f19edcf9dcc4ecf47dc32776429990c4a928f
*** Original commit *** Release SequenceAssetLoader when ended Before, the SequenceAssetLoader was released at the end of the export. Release resources earlier if possible. *** PiperOrigin-RevId: 519993003
kimvde committed -
PiperOrigin-RevId: 519965132
kimvde committed -
Before, the SequenceAssetLoader was released at the end of the export. Release resources earlier if possible. PiperOrigin-RevId: 519952572
kimvde committed -
Previously, we always used ImageReader to read from the output of DefaultVideoFrameProcessor, for pixel tests. This has a limitation of not being able to read HDR contents, so that we couldn't support HDR pixel tests. Reading from a texture allows us to use glReadPixels to read from DefaultVideoFrameProcessor, and build upon this to implement HDR pixel tests. We do still want tests for surface output though, because real use-cases only will output to Surfaces. Also, add some tests for outputting to textures, since this test infrastructure is a bit complex. PiperOrigin-RevId: 519786535
huangdarwin committed -
https://github.com/google/ExoPlayer/commit/927105ed0dc6c811a1057db4b664003cf753ac12
*** Original commit *** Intercept audio capabilities change in `DefaultAudioSink` *** PiperOrigin-RevId: 519760267
tianyifeng committed -
PiperOrigin-RevId: 519727954
sheenachhabra committed -
JaCoCo introduces private synthetic methods (even on interfaces) which have to be skipped when checking that a 'forwarding' implementation does forward everything. Instead we can use the existing `getPublicMethods()` method which implicitly skips these (since they're private). PiperOrigin-RevId: 519665752
ibaker committed -
When MediaCodecRenderer is given an empty sample stream, it puts its output format change tracking in a bad state where we never process future stream changes because we are waiting for a sample that doesn't exist. We can fix this by: - Looping the pending output stream changes to see if we processed more than one change at once (this fixes the tracking for empty sample streams that are not the first in the queue). - Checking if none of the previous streams queued any samples in onStreamChanged to handle this in the same way as the case where we already output all samples (this fixes the problem when the empty sample stream comes first in the queue). - Also calling onProcessedStreamChange for the case above, which was missing previously. #minor-release PiperOrigin-RevId: 519226637
tonihei committed -
PiperOrigin-RevId: 519184599
sheenachhabra committed -
This wasn't added so far because releasing is always allowed from a MediaController (as it just releases the connection, not the session player). But Player instances can be created for other purposes and the receiver of a Player instance should not always be allowed to call release if it doesn't own the player resource. PiperOrigin-RevId: 519121122
tonihei committed -
Account for features implemented recently. PiperOrigin-RevId: 519113898
kimvde committed -
PiperOrigin-RevId: 519099339
claincly committed -
Also - Add unit tests - Fix bug discovered by unit tests PiperOrigin-RevId: 519092249
kimvde committed -
PiperOrigin-RevId: 518953648
Tianyi Feng committed
-