forked from google/ExoPlayer
-
Notifications
You must be signed in to change notification settings - Fork 2
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
Dev v2 #24
Merged
ybai001
merged 1,516 commits into
DolbyLaboratories:dev-v2-multichannel
from
google:dev-v2
Jun 8, 2022
Merged
Dev v2 #24
ybai001
merged 1,516 commits into
DolbyLaboratories:dev-v2-multichannel
from
google:dev-v2
Jun 8, 2022
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: 439866306
We don't currently have enough understanding of the correlation between a specific SSIM score and video quality. Dropping to .90 to make most tests pass. Especially when there's no discernible difference from the videos with .9 and .95 SSIM. PiperOrigin-RevId: 440047551
1/4 is probably unnecessary, as 1/3 of 4k is 720, which should be supported on all practical encoders. PiperOrigin-RevId: 440055144
The new demo GlFrameProcessor is based on BitmapOverlayVideoProcessor from the gl-demo. The demo-only GlFrameProcessor can be deleted once Transformer supports this functionality. PiperOrigin-RevId: 440059735
…Exoplayer Versions
PiperOrigin-RevId: 444253425
PiperOrigin-RevId: 444264961
*** Original commit *** Keep AudioTrack on flush as default *** PiperOrigin-RevId: 444327724
30 second clips at higher resolutions are useful for testing encoder behaviour compared to shorter clips. PiperOrigin-RevId: 444505865
30 second clips at higher resolutions are useful for testing encoder behaviour compared to shorter clips. PiperOrigin-RevId: 444505865
This allows the actual bitmap to be saved, even if output dimensions are different than expected. Otherwise, differing output dimensions would throw an exception, preventing the bitmap from being saved. PiperOrigin-RevId: 444512210
This allows the actual bitmap to be saved, even if output dimensions are different than expected. Otherwise, differing output dimensions would throw an exception, preventing the bitmap from being saved. PiperOrigin-RevId: 444512210
Remove unused saveTestBitmapToCacheDirectory throwOnFailure option. #cleanup PiperOrigin-RevId: 444516857
Remove unused saveTestBitmapToCacheDirectory throwOnFailure option. #cleanup PiperOrigin-RevId: 444516857
PiperOrigin-RevId: 444530943
The matrix provider allows the transformation matrix to be updated for each frame based on the timestamp. The following example effects using this were added to the demo: * a zoom-in transition for the start of the video, * cropping a rotating rectangular frame portion, * rotating the frame around the y-axis in 3D. PiperOrigin-RevId: 439791592
roboletric -> robolectric PiperOrigin-RevId: 440101421
PiperOrigin-RevId: 439802597
PeriodicDimmingFrameProcessor is an example of how a custom fragment shader can be used to apply color changes that change over time. PiperOrigin-RevId: 439840609
PiperOrigin-RevId: 439855702
The DefaultMediaNotificationProvider checks if a command is available before putting the respective action in the notification. PiperOrigin-RevId: 440114422
PiperOrigin-RevId: 439861685
PiperOrigin-RevId: 439866306
We don't currently have enough understanding of the correlation between a specific SSIM score and video quality. Dropping to .90 to make most tests pass. Especially when there's no discernible difference from the videos with .9 and .95 SSIM. PiperOrigin-RevId: 440047551
1/4 is probably unnecessary, as 1/3 of 4k is 720, which should be supported on all practical encoders. PiperOrigin-RevId: 440055144
The MIME type was set to H265 to force transcoding. Now that we have an encoder factory that forces encoding, switching back to H264 ensures the quality test is conducted on more devices (those don't support H265 can be tested now). However, H265 should be part of the quality test after we have proper mechanism to skip test based on device capability. PiperOrigin-RevId: 440132471
The new demo GlFrameProcessor is based on BitmapOverlayVideoProcessor from the gl-demo. The demo-only GlFrameProcessor can be deleted once Transformer supports this functionality. PiperOrigin-RevId: 440059735
roboletric -> robolectric PiperOrigin-RevId: 440101421
The DefaultMediaNotificationProvider checks if a command is available before putting the respective action in the notification. PiperOrigin-RevId: 440114422
SSIM calculation requires the input and output dimensions to be identical. For devices that can't encode the input dimensions, skip SSIM calculations and log the cause. Only apply this on tests where the encoder may not support the input file dimensions. PiperOrigin-RevId: 451364904
PiperOrigin-RevId: 451371681
PiperOrigin-RevId: 451380267
Unconditionally sleep for offload, if the audio buffer is full. Previously ExoPlayer would not sleep if the expected wake-up was in 2s. This was to prevent underrun if the wake-up was delayed. Experiments have shown that the wakup audio buffer is far more than 2s (around 1min). Additionally, the metric was incorrect because it measured both, AudioTrack + DSP. Finally, this metric was erroneous after a gapless transition, when the head position would reset to 0 and thus the computed delay until next wakeup was too large. PiperOrigin-RevId: 451383701
PiperOrigin-RevId: 451384408
PiperOrigin-RevId: 451392021
Most devices won't support 8k decoding, so they'll skip this test entirely. As the video is quite short, this test shouldn't be any longer than the nearby, long-running 4k60 test. PiperOrigin-RevId: 451423368
PiperOrigin-RevId: 451428202
PiperOrigin-RevId: 451831531
ExoPlayer applies a large time offset to buffers so that, if the input has negative timestamps, generally buffers seen by the decoders should have positive timestamps. Modify how the offset is handled in `Transformer` so that decoders and encoders generally see positive timestamps, by leaving the offset on samples when reading them in the base renderer (remove the code that removed the offset), and then removing the offset when muxing. Also update the frame processor chain and slow motion flattening code to retain the existing behavior after this change (these both need original media presentation timestamps) Tested via existing end-to-end tests and manually verified that the overlay frame processor shows the expected original media timestamps. Aside: we don't need the same logic as ExoPlayer to track stream offsets across the decoder yet, because we don't try to handle stream changes during playback in single asset editing. (There is an edge case of multi-period DASH that may not work but I doubt anyone will use that as input to `Transformer` before we change the code to handle multi-asset properly.) In future we should try to refactor interaction with the decoder to use the same code for Transformer and ExoPlayer. PiperOrigin-RevId: 451846055
These fields can be used to transport additional request properties when the requester doesn't know the details needed for the actual playback (i.e. the LocalConfiguration). PiperOrigin-RevId: 451857093
This value only existed to allow setting media URLs from external sources (e.g. in a MediaController) so that a player can start playing this item. Now that we have MediaItem.RequestMetadata.mediaUrl we can remove this value from MediaMetadata because it's request metadata, not media metadata. PiperOrigin-RevId: 451857413
Add bitrate check to the "can encode" criteria. PiperOrigin-RevId: 451868042
Gives a bit more information upon failures PiperOrigin-RevId: 451882968
The current verion of AGP warns it doesn't support Android API 32 [1]. The wrapper was upgraded with ([instructions](https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:upgrading_wrapper)): ```shell $ ./gradlew wrapper --gradle-version 7.4.2 --distribution-type all ``` [1] ``` WARNING:We recommend using a newer Android Gradle plugin to use compileSdk = 32 This Android Gradle plugin (7.0.3) was tested up to compileSdk = 31 This warning can be suppressed by adding android.suppressUnsupportedCompileSdk=32 to this project's gradle.properties The build will continue, but you are strongly encouraged to update your project to use a newer Android Gradle Plugin that has been tested with compileSdk = 32 ``` #minor-release PiperOrigin-RevId: 451893214
PiperOrigin-RevId: 451994696
Once the more advanced GlTextureProcessor interface exists, it will be possible to change the output size of a GlTextureProcessor between frames. To keep the re-configuration based on the frame sizes minimal, things indepedent of the frame size, such as the GlProgram, can be initialized in the constructor. PiperOrigin-RevId: 451997584
This ensures the 'use X instead' message is easily visible in the generated HTML for the overriding method. Currently it's not, e.g.: https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/BasePlayer.html#getCurrentWindowIndex() #minor-release PiperOrigin-RevId: 452002224
#minor-release PiperOrigin-RevId: 452002758
#minor-release PiperOrigin-RevId: 452006137
This reinstates the permissive behaviour removed by fe7e5b8 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: #10038 PiperOrigin-RevId: 452015662
This should fix running `./gradlew clean test` if MediaPipe hasn't been built, for example. PiperOrigin-RevId: 452033698
#minor-release PiperOrigin-RevId: 452043577
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
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
#minor-release PiperOrigin-RevId: 452282128
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
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
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
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.
Merge google dev-v2 branch.