- 12 Dec, 2022 23 commits
-
-
These have the same value (`-1`), and basically the same meaning (offset in an array/list/file/byte stream/etc), but 'position' is an overloaded term in a media playback library, and there's a risk people assume that methods like `Player.getCurrentPosition()` may return `C.POSITION_UNSET`, when in fact unset media times (whether duration or position) are always represented by `C.TIME_UNSET` which is a) a `long` (not `int`) and b) a different underlying value. (aside: `getCurrentPosition()` never returns an unset value, but it's a good example of the ambiguity of the word 'position' between 'byte offset' and 'media timestamp'.) PiperOrigin-RevId: 492493102
ibaker committed -
The callback is currently triggered on the ExoPlayer playback thread instead of the app thread that added the listener. PiperOrigin-RevId: 492474405
tonihei committed -
This inconsistency was exposed by an upcoming change to deprecate `POSITION_UNSET` in favour of `INDEX_UNSET` because position is an ambiguous term between 'byte offset' and 'media position', as shown here. PiperOrigin-RevId: 492470241
ibaker committed -
Discovered while investigating Issue: google/ExoPlayer#10823 Example stack trace with the previous code (I added the index value for debugging): ``` playerFailed [eventTime=44.07, mediaPos=44.01, window=0, period=0, errorCode=ERROR_CODE_FAILED_RUNTIME_CHECK androidx.media3.exoplayer.ExoPlaybackException: Unexpected runtime error at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:635) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loopOnce(Looper.java:202) at android.os.Looper.loop(Looper.java:291) at android.os.HandlerThread.run(HandlerThread.java:67) Caused by: java.lang.IllegalArgumentException: index=-1 at androidx.media3.common.util.Assertions.checkArgument(Assertions.java:55) at androidx.media3.extractor.text.webvtt.WebvttSubtitle.getEventTime(WebvttSubtitle.java:62) at androidx.media3.extractor.text.SubtitleOutputBuffer.getEventTime(SubtitleOutputBuffer.java:56) at androidx.media3.exoplayer.text.TextRenderer.getCurrentEventTimeUs(TextRenderer.java:435) at androidx.media3.exoplayer.text.TextRenderer.render(TextRenderer.java:268) at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1008) at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:509) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loopOnce(Looper.java:202) at android.os.Looper.loop(Looper.java:291) at android.os.HandlerThread.run(HandlerThread.java:67) ] ``` #minor-release PiperOrigin-RevId: 492464180ibaker committed -
PiperOrigin-RevId: 492443147
michaelkatz committed -
This is necessary to move video decoding to the AssetLoader. Otherwise, if the decoder max pending frame count is reached, the AssetLoader will stop queuing frames to the pipeline, and process data will not be called anymore. PiperOrigin-RevId: 492392621
kimvde committed -
PiperOrigin-RevId: 492195931
samrobinson committed -
In some cases we split a test method, and in other cases we just add line breaks to make the separation between arrange/act/assert more clear. PiperOrigin-RevId: 492182769
ibaker committed -
PiperOrigin-RevId: 492164739
Ian Baker committed -
PiperOrigin-RevId: 492160193
samrobinson committed -
PiperOrigin-RevId: 492154544
samrobinson committed -
Add required import for androidx.window.java.layout.WindowInfoTrackerCallbackAdapter PiperOrigin-RevId: 492131661
kimvde committed -
This adds the forwarding logic for most setters in SimpleExoPlayer in the same style as the existing logic for setPlayWhenReady. This change doesn't implement the setters for modifying media items, seeking and releasing yet as they require additional handling that goes beyond the repeated implementation pattern in this change. PiperOrigin-RevId: 492124399
tonihei committed -
This helps to denote what type of content or folder the metadata describes. PiperOrigin-RevId: 492123690
tonihei committed -
PiperOrigin-RevId: 492023573
claincly committed -
PiperOrigin-RevId: 492003800
rohks committed -
Also, use the mediaCodecName passed into the constructor to get the maxPendingFrameCount. PiperOrigin-RevId: 491985044
huangdarwin committed -
PiperOrigin-RevId: 491963883
Googler committed -
EncoderUtil using a static list to cache encoders means it's not possible to use a different set of encoders for different tests when running all robolectric tests together. PiperOrigin-RevId: 491959350
claincly committed -
PiperOrigin-RevId: 491933937
kimvde committed -
This better matches the terminology we use elsewhere in the Player interface, where items inside the playlist are referred to as "media item" and only the entire list is called "playlist". PiperOrigin-RevId: 491882849
tonihei committed -
Implements milestone 1.1 of the [overlays implementation plan](https://docs.google.com/document/d/1EcP2GN8k8N74hHZyD0KTqm9oQo5-W1dZMqIVyqVGtlo/edit#bookmark=id.76uzcie1dg9d) PiperOrigin-RevId: 491696361
tofunmi committed -
Bypass Z Fold 4 HDR10 tone-mapping bug by limiting the max frame count to 12. This passed with a value of 14, and failed with a value of 15, but I figured I'd use 12 just to be safe. PiperOrigin-RevId: 491684058
huangdarwin committed
-
- 29 Nov, 2022 17 commits
-
-
Follow-up CLs will use this duration for silent audio. PiperOrigin-RevId: 491670359
samrobinson committed -
PiperOrigin-RevId: 491660842
claincly committed -
Use the bitrate of the audio format (when available) in DefaultAudioSink.AudioTrackBufferSizeProvider.getBufferSizeInBytes() to calculate accurate buffer sizes for direct (passthrough) playbacks. #minor-release PiperOrigin-RevId: 491628530
christosts committed -
PiperOrigin-RevId: 491623586
kimvde committed -
To support OPUS offload, we need to provide a few configuration values that are currently not set due to the lack of devices supporting OPUS offload. PiperOrigin-RevId: 491613716
tonihei committed -
Main change: - Removed `Codec.EncoderFactory.createForVideoEncoding`'s argument of a list of allowed MIME types - Moved the check for whether a video MIME type is supported to VTSP PiperOrigin-RevId: 491611799
claincly committed -
The fix for b/171657375 (internal) has been shipped with 21.1.0 already (see https://developers.google.com/cast/docs/release-notes#august-8,-2022). PiperOrigin-RevId: 491583727
bachinger committed -
PiperOrigin-RevId: 491377695
claincly committed -
PiperOrigin-RevId: 491336828
Rohit Singh committed -
The list of charsets is already hard-coded, and using `Charset` types ensures they will all be present at run-time, hence we will never encounter an 'unsupported' charset. PiperOrigin-RevId: 491324466
ibaker committed -
This should fix how color matrix transforms look when applied on HDR colors PiperOrigin-RevId: 491323228
huangdarwin committed -
This thread just starts the player and handles the player callbacks for now. Sample pipelines are still run on the playback thread. PiperOrigin-RevId: 491299671
kimvde committed -
It's clearer if each test method follows the Arrange/Act/Assert pattern PiperOrigin-RevId: 491299379
ibaker committed -
PiperOrigin-RevId: 491289028
Rohit Singh committed -
FakeClock keeps an internal list of messages to be executed to ensure deterministic serialization. The next message from the list is triggered by a separate helper message sent to the real Handler. However, if the target HandlerThread is no longer alive (e.g. when it quit itself during the message execution), this helper message is never executed and the entire message execution chain is stuck forever. This can be solved by checking the return values of Hander.post or Handler.sendMessage, which are false if the message won't be delivered. If the messages are not delivered, we can unblock the chain by marking the message as complete and triggering the next one. PiperOrigin-RevId: 491275031
tonihei committed -
Remove self-links, and remove section that is documenting internal ordering behaviour of [`SimpleBasePlayer.getCombinedMediaMetadata`](https://github.com/google/ExoPlayer/blob/bb270c62cf2f7a1570fe22f87bb348a2d5e94dcf/library/common/src/main/java/com/google/android/exoplayer2/SimpleBasePlayer.java#L1770) rather than anything specifically about this method. #minor-release PiperOrigin-RevId: 490923719
ibaker committed -
This is more clear than using Format.NO_VALUE, when we do actually intend for an output value. Also, fix @see formatting by using summary fragments instead, and add an error output for OETF and EOTF transfer functions. PiperOrigin-RevId: 490910229
huangdarwin committed
-