- 15 Jun, 2022 4 commits
-
-
PiperOrigin-RevId: 454951844
bachinger committed -
See https://issuetracker.google.com/208178382 PiperOrigin-RevId: 454949204
bachinger committed -
PiperOrigin-RevId: 454945333
bachinger committed -
PiperOrigin-RevId: 454939082
bachinger committed
-
- 14 Jun, 2022 4 commits
-
-
#minor-release PiperOrigin-RevId: 454884692
christosts committed -
PiperOrigin-RevId: 454641746
Marc Baechinger committed -
to support enabling this as a compile-time error. More information: go/lsc-extends-object PiperOrigin-RevId: 454582570
olly committed -
PiperOrigin-RevId: 454573995
olly committed
-
- 13 Jun, 2022 5 commits
-
-
The default constructor is only allowed to be called on API < 32 and the test should use the defined UNSET constant to be API independent. #minor-release PiperOrigin-RevId: 454568893
tonihei committed -
It's no longer needed PiperOrigin-RevId: 454161070
ibaker committed -
We need to request the external storage permission to access these PiperOrigin-RevId: 454160546
olly committed -
The native GL errors are in an arbitrary order according to https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glGetError.xml This means any of them could contain the most useful message so it's better to use all for the GlException's message rather than picking the last message and logging all others. PiperOrigin-RevId: 454130460
hschlueter committed -
`codecDrainAction` is set to `DRAIN_ACTION_NONE` in 3 places in `MediaCodecRenderer`: * The constructor (so there's no prior state to worry about) * `updateDrmSessionV23()`: Where `mediaCrypto` is reconfigured based on `sourceDrmSession` and `codecDrmSession` is also updated to `sourceDrmSession`. * `resetCodecStateForFlush()`: Where (before this change) the action is unconditionally set back to `DRAIN_ACTION_NONE` and so any required updated implied by `DRAIN_ACTION_FLUSH_AND_UPDATE_DRM_SESSION` is not done. This change ensures that `flushOrReleaseCodec()` handles `DRAIN_ACTION_FLUSH_AND_UPDATE_DRM_SESSION` before calling . This probably also resolves Issue: google/ExoPlayer#10274 #minor-release PiperOrigin-RevId: 454114428
ibaker committed
-
- 09 Jun, 2022 15 commits
-
-
Based on https://developer.android.com/reference/android/media/MediaCodec#using-an-output-surface, frame dropping behaviour depends on the target SDK version. After this change transformer will only use MediaFormat#KEY_ALLOW_FRAME_DROP if both the target and system SDK version are at least 29 and default to its pre 29 behaviour where each decoder output frame must be processed before a new one is rendered to prevent frame dropping otherwise. Also remove deprecated Transformer.Builder constructor without a context and the context setter. PiperOrigin-RevId: 453971097
hschlueter committed -
Transformer always enabled glAssertionsEnabled, so there should be no functional change. ExoPlayer previously disabled glAssertionsEnabled, so GlUtil logged GlExceptions instead of throwing them. The GlExceptions are now caught and logged by the callers so that there should also be no functional change overall. This change also replaces EGLSurfaceTexture#GlException with GlUtil#GlException. PiperOrigin-RevId: 453963741
hschlueter committed -
The track selector will select multi-channel formats when those can be spatialized, otherwise the selector will prefer stereo/mono audio tracks. When the device supports audio spatialization (Android 12L+), the DefaultTrackSelector will monitor for changes in the platform Spatializer and trigger a new track selection upon a Spatializer change event. Devices with a `television` UI mode are excluded from audio channel count constraints. #minor-release PiperOrigin-RevId: 453957269
christosts committed -
This change fixes a bug where the player is frozen with HLS chunkless preparation because the audio stream wrappers are not marked as master timestamp sources before preparation. #minor-release PiperOrigin-RevId: 453941815
christosts committed -
PiperOrigin-RevId: 453933854
claincly committed -
PiperOrigin-RevId: 453905355
Marc Baechinger committed -
Some Player implementations have no playlist capability but can still set a MediaItem for playback. Examples are a MediaController connected to a legacy MediaSession, ExoPlayer up to 2.12 or MediaPlayer. To indicate this capability, we need an allowed command in addition to COMMAND_CHANGE_MEDIA_ITEMS that just allows to set a single item that replaces everything that is currently played. #minor-release PiperOrigin-RevId: 453879626
tonihei committed -
This removes the prior restriction of needing to remember not to crop and set aspect ratio in the same Presentation.Builder, and makes each class a bit more targeted. This is partially made feasible by the past work to merge consecutive MatrixTransformations into a single MatrixTransformationFrameProcessor, which ensures that there's no loss in quality between successive MatrixTransformations. PiperOrigin-RevId: 453660582
huangdarwin committed -
With HLS chunkless preparation, audio formats may have no value for channel count. In this case, the DefaultAudioSink will either query the platform for a supported channel count (API 29+) or assume a max channel count based on the encoding spec in order to decide whether the audio format can be played with audio passthrough. Issue: google/ExoPlayer#10204 #minor-release PiperOrigin-RevId: 453644548
christosts committed -
PiperOrigin-RevId: 453633920
hschlueter committed -
SingleFrameGlTextureProcessor is now an abstract class containing a default implementation of the more flexible GlTextureProcessor interface while still exposing the same simple abstract methods for single frame processing it previously did. FrameProcessorChain and GlEffect will be changed to use GlTextureProcessor in follow-ups. PiperOrigin-RevId: 453633000
hschlueter committed -
#minor-release PiperOrigin-RevId: 453622964
ibaker committed -
PiperOrigin-RevId: 453510883
olly committed -
PiperOrigin-RevId: 453490088
Marc Baechinger committed -
#minor-release PiperOrigin-RevId: 453408087
christosts committed
-
- 08 Jun, 2022 2 commits
- 07 Jun, 2022 6 commits
-
-
The current setup with distinct, private `keyForField` implementations, leaves open the (theoretical) possibility of a clash in the `Bundle` keys used by the superclass and subclass. This change brings consistency with our only other extensible `Bundleable` type (`PlaybackException`). #minor-release PiperOrigin-RevId: 453385875
ibaker committed -
We generally nest the `Builder` for `Foo` inside `Foo`. In this case, there's already a `DefaultTrackSelector.Parameters.Builder` type visible to a developer, it just happens to be the 'common' `TrackSelectorParameters.Builder`, so using it is a bit weird. For example this code snippet doesn't compile because `DefaultTrackSelector.Parameters.Builder#build()` returns `TrackSelectionParameters`. This CL fixes that problem and the code snippet now compiles. ```java DefaultTrackSelector.Parameters params = new DefaultTrackSelector.Parameters.Builder(context).build() ``` #minor-release PiperOrigin-RevId: 453215702
ibaker committed -
Implementations of this interface will be able to drop or add frames, change timestamps, accept multiple input frames before producing output, and process frames on their own background thread. A default implementation of this interface will be added to SingleFrameGlTextureProcessor in a follow-up. PiperOrigin-RevId: 453159835
hschlueter committed -
#minor-release PiperOrigin-RevId: 452282128
bachinger committed -
This is done by removing the `@FieldNumber` IntDef completely. It's not really adding much value anyway, because it's `open` so there's no real enforcement to prevent passing 'incorrect' values. #minor-release PiperOrigin-RevId: 452108972
ibaker committed -
This internal listener avoids wrapping the TransformationExceptions in PlaybackExceptions that are handled via the Player.Listener and is also used for FrameProcessingExceptions which already avoided the PlaybackException layer previously. This listener will also be useful in follow-ups for encoder-related TransformationExceptions that are thrown in the SurfaceProvider that will be called on the GL thread. PiperOrigin-RevId: 452074575
hschlueter committed
-
- 31 May, 2022 4 commits
-
-
#minor-release PiperOrigin-RevId: 452043577
bachinger committed -
This should fix running `./gradlew clean test` if MediaPipe hasn't been built, for example. PiperOrigin-RevId: 452033698
andrewlewis committed -
This reinstates the permissive behaviour removed by https://github.com/google/ExoPlayer/commit/fe7e5b8181333683fda7869c3d9cffc0bdefcccb Test file created by opening bear.opus in a hex editor and naively duplicating the two header packets, starting at (and including) the first `OggS` in the file and ending just before the third `OggS`. #minor-release Issue: google/ExoPlayer#10038 PiperOrigin-RevId: 452015662
ibaker committed -
#minor-release PiperOrigin-RevId: 452006137
bachinger committed
-