- 07 Dec, 2021 20 commits
-
-
The new field matches the platform's AudioAttributes.getSpatializationBehavior() API added in Sv2. At the moment, the platform API is called via reflection, until Sv2 is released and the compile SDK target can be increased to 32. PiperOrigin-RevId: 414406126
christosts committed -
* Remove casting getInstance and getCallback methods and just use member variables that have the more specific types. I didn't manage to get rid of casting completely; there are still one-off casts during construction. We should look at removing those in the future, but it's not completely trivial due to the way the Impl classes back-reference their wrapping classes. * Move all callback invocations inside the Impl classes for consistency, and properly encapsulate the callbacks there. Sticking with the "OnHandler" naming convention for these methods, but we should probably tweak that in a subsequent change. * Encapsulate MediaItemFiller in MediaSessionImpl. * Some misc cleanup (e.g., converting anonymous inner classes to lambdas where possible). PiperOrigin-RevId: 414401978
olly committed -
PiperOrigin-RevId: 414396999
olly committed -
This version includes several bug fixes related to the `@RequiresOptIn` annotation used for the `androidx.media3.util.UnstableApi` annotation in this project. PiperOrigin-RevId: 414384813
ibaker committed -
PiperOrigin-RevId: 414321900
jaewan committed -
outputHeight is the actual output height while transformation.outputHeight could be Format.NO_VALUE causing the FrameEditor to be used more often than necessary in the old version. PiperOrigin-RevId: 414304251
hschlueter committed -
When calling Android's Log class directly, there's a LongLogTag lint check that detects tags over the 23 char limit, however it cannot detect long log tags in ExoPlayer due to the way that we log via our own Log class. This commit adds @Size annotations to enforce the same rule. PiperOrigin-RevId: 413976364
olly committed -
On the Sony Android TV device where this was originally reproducible on Android L, on Android N there is an E-AC3 decoder listed which handles the stream correctly. The workaround is harmless anyway but adding the API version restriction means it will be obvious it can be removed once we bump our min API to 24 or above in the future. PiperOrigin-RevId: 413967443
andrewlewis committed -
PiperOrigin-RevId: 413966081
olly committed -
This is required for correct subscription notifications, as per the referenced bug. It also just seems better to plumb things this way in general, rather than re-implementing the functionality in the stub. PiperOrigin-RevId: 413963824
olly committed -
This change removes the requirement that callback implementations need to be able to handle two specific callbacks being called on two different threads. PiperOrigin-RevId: 413958545
olly committed -
Using chunkless preparation greatly improves start up time if the master playlist declares CODECS for the renditions. Hence, we turn this on by default as it benefits most well-defined HLS master playlists. The only known reason why developers may want to turn this feature off is when the renditions contain muxed closed-caption tracks that are not declared in the master playlist. So this change also updates the documentation and RELEASENOTES to point out this caveat. PiperOrigin-RevId: 413950036
tonihei committed -
Increase timeout for dequeueing a frame from the codec to reduce flakiness. At a timeout of 2 seconds there was a 2/1000 flake rate and at 3 seconds 0/1000. Set the timeout to 5 seconds to give plenty of leeway. PiperOrigin-RevId: 413946915
andrewlewis committed -
#minor-release Issue: google/ExoPlayer#9528 PiperOrigin-RevId: 413887784
olly committed -
When no editing is needed, the OpenGL steps can be skipped. PiperOrigin-RevId: 413884305
hschlueter committed -
Hardware audio decoders aren't really a thing, particularly on older devices. SOC vendors do sometimes provide their own software decoders though. Hence we update the approximation to assume that audio decoders on older devices are software. PiperOrigin-RevId: 413757859
olly committed -
PiperOrigin-RevId: 413751821
Ian Baker committed -
PiperOrigin-RevId: 413682281
hschlueter committed -
Issue: google/ExoPlayer#9744 We do not rely on the payload type to determine the sample MIME type, we depend on the SDP message, so it's worthless checking the payload type. After removing the line, a server can use payload type 35 (an unassigned payload type) for H264; while normally H264 requires payload type >= 96). PiperOrigin-RevId: 413658076
claincly committed -
Previously, transformation_matrix was incorrectly applied to texture sampling coordinates, which led to transformations seemingly moving in the opposite position, and an undesirable GL_CLAMP_TO_EDGE behavior when sampling outside the edge of the texture. PiperOrigin-RevId: 413653360
huangdarwin committed
-
- 02 Dec, 2021 20 commits
-
-
Allowing duplicate groups caused some other code working with the array to use reference equality comparison. This is error-prone, easily forgotten (e.g. when using the TrackGroups in a map) and causes bugs when TrackGroups are serialized to disk or to another process. All TrackGroups created by ExoPlayer are already unique and custom code creating TrackGroupArrays with identical groups can easily distringuish them by adding an id to each group. Issue: google/ExoPlayer#9718 PiperOrigin-RevId: 413617005
tonihei committed -
It seems fine to remove the documentation about the WebM case now we are only supporting unfragmented MP4, so that new users coming to this API aren't confused about how to set the container MIME type. PiperOrigin-RevId: 413611472
andrewlewis committed -
This allows to give TrackGroups an identifier. The underlying goal is to provide a way to make otherwise identical TrackGroups distinguishable. Also set this id in all internal sources that may produce identical TrackGroups in certain edge cases. Issue: google/ExoPlayer#9718 PiperOrigin-RevId: 413430719
tonihei committed -
Allows a transformation matrix to be input into Transformer, to apply vertex transformations like cropping, rotation, and other transformations built into android.graphics.Matrix. Not building out into a VertexTransformation class yet, as that class structure wouldn't make sense until we can modify resolution, per TODOs. PiperOrigin-RevId: 413384409
huangdarwin committed -
This will remove the need to implement compat code handling very old API versions where some symbols are not available, and it reduces the burden of dealing with media framework issues around concurrent codec usage that are worse on older API versions. Top apps that we've surveyed as potential users for transformer library features are using API 21 or later. PiperOrigin-RevId: 413341540
andrewlewis committed -
PiperOrigin-RevId: 413188534
olly committed -
Sometimes the empty end of stream buffer has a non-zero data limit. Calling flip first, resets the limit to the position which is zero in these cases. PiperOrigin-RevId: 413156455
hschlueter committed -
The test extracts and decodes the first video frame in the test media, renders it to the frame editor's input surface and then processes data. It then reads back the output from the frame editor, converts it to a bitmap and then compares that with a 'golden' bitmap (which is just the same as the test media's first video frame). PiperOrigin-RevId: 413131811
andrewlewis committed -
PiperOrigin-RevId: 413079384
olly committed -
https://github.com/androidx/media/commit/f637bb3d40cf37a8ed545e78b45a67bd930e49fd
*** Original commit *** Remove usage of @ForOverride. Fixes the gradle compilation failures. Gradle dependencies need revising if we want to be using this, as checkerframework is ahead of their latest version, such that we can't compile. *** PiperOrigin-RevId: 412901827
ibaker committed -
PiperOrigin-RevId: 412901581
samrobinson committed -
PiperOrigin-RevId: 412856100
samrobinson committed -
Currently we prefer technical preferences set in the Parameters over content preferences implied by the media. It proably makes more sense in the opposite order to avoid the situation where a non-default track (e.g. commentary) is selected just because it better matches some technical criteria. Also add comments explaining the track selection logic stages. PiperOrigin-RevId: 412840962
tonihei committed -
When the input is not a slow motion video, then flattening should do nothing, so there is no need to re-encode audio. PiperOrigin-RevId: 412443097
hschlueter committed -
PiperOrigin-RevId: 412438389
samrobinson committed -
Use @VisibleForTesting and add some comments for GL code. Refactoring change only. No functional changes intended PiperOrigin-RevId: 412428196
huangdarwin committed -
Issue: google/ExoPlayer#9719 #minor-release PiperOrigin-RevId: 412424558
kimvde committed -
#minor-release Issue: androidx/media#8 PiperOrigin-RevId: 412403132
bachinger committed -
This is already called in GlUtil.Program(). Tested by confirming that the demo-gl target still runs as expected. Refactoring change only. No intended functional changes. PiperOrigin-RevId: 412308564
huangdarwin committed -
And also tweak existing role flag logic to strictly prefer perfect matches over partial matches. Caveat: Video role flags only supported for fixed track selections (same issue as Issue: google/ExoPlayer#9519). Issue: google/ExoPlayer#9402 PiperOrigin-RevId: 412292835
tonihei committed
-