forked from androidx/media
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge from androidx/media main branch #12
Merged
ybai001
merged 6,136 commits into
DolbyLaboratories:dlb/elst-handling/dev
from
androidx:main
Oct 9, 2024
Merged
Merge from androidx/media main branch #12
ybai001
merged 6,136 commits into
DolbyLaboratories:dlb/elst-handling/dev
from
androidx:main
Oct 9, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
PiperOrigin-RevId: 664716252
PiperOrigin-RevId: 664792272
This class is a useful utility for custom TS parsers that operate on NAL units. PiperOrigin-RevId: 664795988
In order to support building with `gradle` a new `build.gradle` file was added together with `Android.mk`, `Application.mk`, and `libiamf.mk` necessary for local builds with NDK. After this change, IAMF files may also be played in the ExoPlayer demo built locally (without blaze). PiperOrigin-RevId: 664841684
PiperOrigin-RevId: 664841893
PiperOrigin-RevId: 664845636
directory PiperOrigin-RevId: 665202382
This is an unnecessary layer PiperOrigin-RevId: 665267029
This uses a 'bundled' extractor (`SubtitleExtractor`) because `MediaParser` doesn't support transcoding subtitles to `application/x-media3-cues`. This transcoding is required to support non-legacy subtitle handling where they are parsed during extraction, instead of during rendering. PiperOrigin-RevId: 665282298
PiperOrigin-RevId: 665285219
The CL adds another way of writing editable video tracks where the samples will be interleaved with the primary track samples in the "mdat" box. PiperOrigin-RevId: 665313751
PiperOrigin-RevId: 665330328
This allows seek operations in files that were previously unseekable, particularly those with variable bitrate (VBR) or constant bitrate (CBR) with silence frames. New samples for tests were created by adding silence frames to existing narrowband and wideband versions. PiperOrigin-RevId: 665349241
This is a no-op change. Like all other boxes, moov box creation can also be in Boxes.java class. PiperOrigin-RevId: 665359529
The buffered position was last updated before the beginning of the renderer loop in doSomeWork. As the loading happens on a background thread, it may have progressed further already depending on how long it took to run the renderer loop. It's slightly more correct to pass in an updated value to shouldStartPlayback so that playback can start quicker if the buffering is particularly fast. PiperOrigin-RevId: 679203465
This bugfix release contains a fix for Issue: #1700. PiperOrigin-RevId: 679493263
Some devices can encode portrait 720x1080 but not landscape 1080x720. But VideoSampleExporter always prefers encoding landscape. Have `assumeFormatsSupported` mirror sample exporter logic more closely PiperOrigin-RevId: 679495210
PiperOrigin-RevId: 679528425
PiperOrigin-RevId: 679536456
#cherrypick PiperOrigin-RevId: 679589647
If a codec received the EOS signal and already returned the last output buffer, we should expect the output EOS very quickly. If it doesn't arrive within 100ms, we can proceed to end the stream manually without waiting any further to prevent cases where the codec is completely stuck otherwise. PiperOrigin-RevId: 679633116
The Boxes.moov method can do the calculation instead of caller doing it. PiperOrigin-RevId: 679653033
The workaround in ExternalTextureManager.forceSignalEndOfStream was being applied even when the decoder did output all frames, and only the GL pipeline was slow. This change ensures that workaround is not applied when the decoder has already produced all output frames. PiperOrigin-RevId: 680471587
Otherwise, it cannot be used with Kotlin `listOf()`. PiperOrigin-RevId: 682255423
IMA always starts midrolls at index 1. So if there is no preroll ad, the ad group index in AdPlaybackState is off by 1 all the time, and may also lead to ArrayIndexOutOfBoundsExceptions when trying to access the last midroll ad Issue: #1741 PiperOrigin-RevId: 682324368
Just clearing the overrides only helps if a text override was previously set. If the text is shown because of app defined track selection parameters for language or role flags, the "none" button is currently not working and we need to clear these flags explicitly. PiperOrigin-RevId: 682373821
The origin may be negative if the subtitle starts off-screen but extends into the screen for example. TTML1 defines `tts:origin` in terms of [`length`](https://www.w3.org/TR/2018/REC-ttml1-20181108/#style-value-length), which allows a prefix of `+`, `-` or nothing, and it's the [same in TTML2](https://www.w3.org/TR/2018/REC-ttml2-20181108/#style-value-length). PiperOrigin-RevId: 682379845
This CL also fixes EOS handling to account for not-yet-copied samples in `remainingInputToCopyFrameCount`, which would throw off the final output sample count calculation. For testing, we allow a tolerance of 0.000017% drift between expected and actual number of output samples. The value was obtained from running 100 iterations of `timeStretching_returnsExpectedNumberOfSamples()` and calculating the average delta percentage between expected and actual number of output samples. Roughly, this means a tolerance of 40 samples on a 90 min mono stream @48khz. PiperOrigin-RevId: 683133461
PlaybackVideoGraphWrapper will soon contain an input and an output video sink, as the rendering of the VideoGraph output frames will be handled by a DefaultVideoSink instance. PiperOrigin-RevId: 683167795
Other methods will be implemented in follow-up CLs PiperOrigin-RevId: 683538245
These Uris are not widely supported yet and were only meant to be used with content Uris. Restricting this more tightly allows controllers to use these Uris more easily as they have a stricter guarentee on what it's needed to load these Uris. Media session apps with different types of Uris can convert them by setting up a ContentProvider if needed. Issue: #1783 PiperOrigin-RevId: 683539747
PiperOrigin-RevId: 683540867
PiperOrigin-RevId: 683548885
The implementation is straightforward as there is nothing to init. PiperOrigin-RevId: 683596706
This change is a no-op, because `SubtitleTranscodingExtractorOutput.seekMap` forwards directly to the delegate implementation, but it seems clearer to always use the wrapper. Also remove a no-op assignment in `MatroskaExtractor`. This is a follow-up to Issue: #1779 where I manually checked every implementation of `Extractor.init` for a similar mistake. #cherrypick PiperOrigin-RevId: 683607090
PiperOrigin-RevId: 683607682
Also declare and use `AudioFormat` directly instead of building it later. PiperOrigin-RevId: 683637116
As per the IAMF spec (https://aomediacodec.github.io/iamf/#iasampleentry-section), `channelCount` and `sampleRate` SHALL be set to `0` and ignored. #cherrypick PiperOrigin-RevId: 683648991
This was missed in da724c8 I tried to write a test for this, but got stuck crafting valid test data. I was able to create a new fragmented MP4 file containing only a TTML track: ```shell $ MP4Box -add simple.ttml -frag 2000 sample_fragmented_ttml.mp4 ``` Then I tried naively removing the `ftyp` and `moov` boxes with a hex editor, but using this in `FragmentedMp4ExtractorNoSniffingTest` gave me an `EOFException` that I didn't get to the root cause of. Issue: #1779 #cherrypick PiperOrigin-RevId: 683667850
When calling `MediaController.getCommandButtonForMediaItem(MediaItem)` command buttons with custom commands that are not available shouldn't be advertised to the controller when connected to a Media3 session. In contrast, when connected to a legacy session, available commands are not enforced when advertising commands. Similarly, when sending a custom commands that is referenced by a command button for media items, sending is permitted without the command being available. This is required because available commands match to custom actions in `PlaybackStateCompat` of the legacy session. Adding commands for media items to custom action of the `PlaybackStateCompat` would interfere with other use cases. Issue: #1474 #cherrypick PiperOrigin-RevId: 683717723
This is part of the effort to handle rendering of the frames output by the VideoGraph in a DefaultVideoSink PiperOrigin-RevId: 683939818
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.