- 12 Dec, 2022 39 commits
-
-
Fix some other link titles and destinations spotted along the way. #minor-release PiperOrigin-RevId: 493276172
ibaker committed -
These terms are easier to understand, and make sense in the context of MatrixTextureProcessor now that a MatrixTextureProcessor may have a different input and output transfer. PiperOrigin-RevId: 493265980
huangdarwin committed -
PiperOrigin-RevId: 493260798
kimvde committed -
Modify FrameProcessor and MatrixTextureProcessor interfaces to support different input and output color transfers. Does not implement conversion between color ranges (ex. HDR and SDR), but should allow for conversion between color transfers of the same color range (ex. HLG and PQ). This supports in-app tone mapping, where we need a single FrameProcessor to input HDR color transfers (ex. HLG/PQ) and output SDR (ex. gamma2.2). This also supports previewing, where we need a single FrameProcessor to be able to input HLG and output PQ. Manually tested by confirming colors still look right on SDR and HDR videos with a rotation and color affect applied. PiperOrigin-RevId: 493108678
huangdarwin committed -
By putting Listener as the last argument. PiperOrigin-RevId: 493100906
claincly committed -
PiperOrigin-RevId: 493040714
kimvde committed -
From this CL on, FrameProcessor listeners will be invoked from an Executor that is passed in when creating the FrameProcessor. GlTextureProcessor needs to invoke the ErrorListener on the said Executor too. PiperOrigin-RevId: 493018583
claincly committed -
PiperOrigin-RevId: 493001630
samrobinson committed -
Adds a modified version of sample.mp4 to the list, which has no audio. PiperOrigin-RevId: 492993918
samrobinson committed -
PiperOrigin-RevId: 492579961
Googler committed -
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 -
When app is deployed with device's screen being off, MainActivity's onStart is called swiftly by its onStop. The onStop method cancels the browserFuture task which in turn "completes" the task. Upon task "completion", pushRoot() runs and then throws error as it calls get() a cancelled task. PiperOrigin-RevId: 492416445
michaelkatz committed -
This allows legacy media controllers and browsers to access this information and legacy sessions and browser services to set this information. PiperOrigin-RevId: 492414716
tonihei 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 -
If the service ever has been started but is not in the foreground, the service would be terminated without calling onDestroy(). This is because when onStartCommand returns START_STICKY [1], the app takes the responsibility to stop the service. Note that this change interrupts the user journey when paused, because the notification is removed. Apps can implement playback resumption [2] to give the user an option to resume playback after the service has been terminated. [1] https://developer.android.com/reference/android/app/Service#START_STICKY [2] https://developer.android.com/guide/topics/media/media-controls#supporting_playback_resumption Issue: androidx/media#175 #minor-release PiperOrigin-RevId: 492192690
bachinger committed -
Do not log the exception stack traces raised by the BitmapLoader when a bitmap fails to load, e.g. when the artwork's URI scheme is not supported by the SimpleBitmapLoader. The logs are kept in place but only a single line is printed. #minor-release PiperOrigin-RevId: 492191461
christosts 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 -
This CL makes it possible to create a media3 ControllerInfo in test code, which is needed to test several aspects of a media3-based media app. It does this by exposing a test-only static factory method. This is a hacky low-effort approach; a better solution could be to split ControllerInfo up into a public interface that was exposed to client logic, and that they could extend, and a package-private implementation with internal fields like the callback. That's a much bigger change, however. PiperOrigin-RevId: 491978830
Googler 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 -
The Bluetooth AVRCP service expects the metadata of the item currently being played to be in sync with the corresponding media description in the active item of the queue. The comparison expects the metadata values of `METADATA_KEY_TITLE` and `METADATA_KEY_ARTIST` [1] to be equal to the `title` and `subtitle` field of the `MediaDescription` [2] of the corresponding queue item. Hence we need to populate the media description accordingly to avoid the BT service to delay the update for two seconds and log an exception. [1] https://cs.android.com/android/platform/superproject/+/master:packages/modules/Bluetooth/android/app/src/com/android/bluetooth/audio_util/helpers/Metadata.java;l=120 [2] https://cs.android.com/android/platform/superproject/+/master:packages/modules/Bluetooth/android/app/src/com/android/bluetooth/audio_util/MediaPlayerWrapper.java;l=258 Issue: androidx/media#148 PiperOrigin-RevId: 491877806
bachinger 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 1 commit
-
-
Issue: androidx/media#213 Without a public constructor, it is not possible to extend this class and override its method. PiperOrigin-RevId: 491673111
rohks committed
-