- 06 Dec, 2021 10 commits
-
-
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 -
PiperOrigin-RevId: 413922123
bachinger 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
Oliver Woodman 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 13 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 -
https://github.com/google/ExoPlayer/commit/f790d105b76cb92ac31cf0ab6c9557a41b4bc15b
*** 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
-
- 26 Nov, 2021 17 commits
-
-
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 -
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 -
PiperOrigin-RevId: 412286692
kimvde committed -
Issue: google/ExoPlayer#9727 #minor-release PiperOrigin-RevId: 412266397
ibaker committed -
PiperOrigin-RevId: 412251020
samrobinson committed -
This allows to check if the media metrics service is available outside the actual constructor and to fail gracefully if it is missing. PiperOrigin-RevId: 412232425
tonihei committed -
- This format is passed to the PassthroughPipeline, which doesn't use any decoder. - In most other cases where it is used, it is not relevant that this format will be or has been passed to the decoder. What's relevant is that it is the format of the input. PiperOrigin-RevId: 412093371
kimvde committed -
We need the filename of the output videos to be predictable, because MobileHarness requires the exact filename to pull the file. PiperOrigin-RevId: 412092347
samrobinson committed -
Deprecates setContext() and moves the required Context arg into the constructor. This way, the parameter can later be final and non-null, per the comment at: http://go/https://github.com/google/ExoPlayer/commit/ecb47ba5647a7622fc73c09ac37f4e8b3b450cec/depot/google3/third_party/java_src/android_libs/media/libraries/transformer/src/main/java/androidx/media3/transformer/TranscodingTransformer.java?left=s19&right=r12#97L Also, fixes setOutputMimeType_unsupportedMimeType_throws by providing a context in the builder, and updating the FrameworkMuxer#supportsOutputMimeType to catch IllegalArgumentExceptions thrown by FrameworkMuxer#mimeTypeToMuxerOutputFormat. PiperOrigin-RevId: 412053564
huangdarwin committed -
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: 412004021
samrobinson committed -
This change moves methods that are the same in `TransformerAudioRenderer` and `TransformerVideoRenderer` to `TransformerBaseRenderer`. PiperOrigin-RevId: 411758928
hschlueter committed -
This inheritance is really confusing because ExoPlayerImpl is not a full Player interface implementation. It also claims to be an ExoPlayer implementation in the Javadoc which isn't true in its current state. Removing the inheritance also allows to clean up some unused methods. PiperOrigin-RevId: 411756963
tonihei committed -
PiperOrigin-RevId: 411751425
kimvde committed -
This is documented on the setter already, but it seems to make sense to do this in the constructor as well for clarity. Issue: google/ExoPlayer#9550 PiperOrigin-RevId: 411675700
bachinger committed
-