- 08 Feb, 2023 32 commits
-
-
PiperOrigin-RevId: 508053559
michaelkatz committed -
PiperOrigin-RevId: 508031337
kimvde committed -
If a renderer error happens while processing readahead data for the next item in the playlist, we currently throw the error immediately and only set the item id in the error details. This makes it harder to associate the error to the right item. For example, the user facing UI is likely not updated to show the failing item when the error is reported. This can be improved slighly by force setting the position to the failing item. The playback still fails immediately, but this can't be avoided because the renderer itself went into an error state. PiperOrigin-RevId: 507808635
tonihei committed -
PiperOrigin-RevId: 507784608
microkatz committed -
This will also allow us to skip transcodes in the future for other effects, like cropping, color effects, etc. PiperOrigin-RevId: 507765618
huangdarwin committed -
Also replace some usages of deprecated Transformer listeners with the new ones. PiperOrigin-RevId: 507743860
kimvde committed -
The AudioTrackPositionTracker needs to correct positions by the speed set on the AudioTrack itself whenever it makes estimations based on real-time (=the real-time playout duration is not equal to the media duration played). This happens for the main playback path already, but not for the mode in which the position is estimated from the playback head position and also not in the phase after the track has been stopped. Both cases are not very noticeable during normal playback, but become relevant when playing in offload mode. PiperOrigin-RevId: 507736408
tonihei committed -
Checked there's no other occurrence. PiperOrigin-RevId: 507534909
claincly committed -
Also, replace instances of "texture processor" to "shader program", with capitalization retained. PiperOrigin-RevId: 507515655
huangdarwin committed -
PiperOrigin-RevId: 507515587
tofunmi committed -
In MediaCodecUtil, use Format.colorInfo, besides the codec string, to accurately map to a 10bit HEVC profile. PiperOrigin-RevId: 507500071
christosts committed -
PiperOrigin-RevId: 507461550
claincly committed -
This is a refactoring to separate and simplify the logic of VOD and live streams when handling IMA ad events. An additional listener will be required for DASH live stream in a follow-up CL. PiperOrigin-RevId: 507435741
bachinger committed -
Also update some Javadoc in Transformer PiperOrigin-RevId: 507395956
kimvde committed -
PiperOrigin-RevId: 506965394
tofunmi committed -
It doesn't actually make sense for them to be placed in the Transformer, because the error's root causes are actually only in codecs. Also, a few codec errors were repeated, so deduplicate these instances PiperOrigin-RevId: 506937695
huangdarwin committed -
Based on [this conversation thread](https://chat.google.com/room/AAAA--f88ao/76Rem_cRCK8), I've opted to update the existing FrameProcessor.create() rather than deprecate it, as it is unlikely to be in use by apps outside google3. PiperOrigin-RevId: 506920930
tofunmi committed -
More info in: https://developer.android.com/about/versions/13/behavior-changes-13#granular-media-permissions PiperOrigin-RevId: 506908079
huangdarwin committed -
This is more flexible for apps and more consitent with the Player API. PiperOrigin-RevId: 506901645
kimvde committed -
PiperOrigin-RevId: 506900817
samrobinson committed -
PiperOrigin-RevId: 506898392
kimvde committed -
* Overload added `(cause, errorCode, isVideo, isDecoder, details)`, where `details` is a string of values to be added to the error message of the `TransformationException`. * Overload with `MediaFormat` and `mediaCodecName` moved to `DefaultCodec`, because all usages of that overload were from `DefaultCodec`, and this allows a simplified API because of internally stored values. * `mediaCodecName` removed from overload that takes a `Format`. * Reordered `createForCodec` parameters. PiperOrigin-RevId: 506895268
samrobinson committed -
PiperOrigin-RevId: 506890459
kimvde committed -
PiperOrigin-RevId: 506886903
samrobinson committed -
In encoding small and odd-numbered resolutions, like `316x61` ([this image](https://upload.wikimedia.org/wikipedia/commons/6/65/100winners.png)), the current fallback logic prefers a software encoder to hardware ones. The assumption was, the encoder factory applies the encoder size alignment and changes the resolution to `316x60` for SW encoders and `316x64` for HW ones. SW encoders is selected because the supported resolution 60 is closer to requested 61, than the hardware supported 64. This change changes the default encoder selection process to only expose hardware encoders if there is any. PiperOrigin-RevId: 506879983
claincly committed -
With multi-asset, the sample pipelines can process more than one MediaItem. The renaming makes it clear that the format passed to the SamplePipeline constructors is the one corresponding to the first MediaItem. Indeed, the first format is the one used to configure the SamplePipelines. PiperOrigin-RevId: 506879260
kimvde committed -
This avoids affecting ExoPlayer metrics with non-typical usage. PiperOrigin-RevId: 506878231
samrobinson committed -
PiperOrigin-RevId: 506874799
tofunmi committed -
PiperOrigin-RevId: 506868341
kimvde committed -
PiperOrigin-RevId: 506863538
kimvde committed -
Set the correct output color on the debug SurfaceViewWrapper, so that SDR contents can have an output transfer of either GAMMA_2_2 (Gamma 2.2) or SDR (SMPTE 170M). This fixes an issue where in-app tone-mapping would output gamma 2.2, and the SDR value incorrectly hardcoded here would lead to an error in the OpenGL, which does not support SMPTE 170M. PiperOrigin-RevId: 506684602
huangdarwin committed -
PiperOrigin-RevId: 506619637
tofunmi committed
-
- 02 Feb, 2023 6 commits
-
-
Before this CL, the `renderedLastFrame` flag is not set if the last frame is released immediately (force render), or when it's dropped. PiperOrigin-RevId: 506358626
claincly committed -
With the current ExtTexMgr, it can happen that - `x` frames are registered, but haven't arrived yet - flush - need to drop `x` frames when they arrive on SurfaceTexture - status is reset to 0 pending, 0 available, drop `x` when frames arrive - register one frame - status is set to 1 pending, 0 available, drop `x` when frames arrive - flush - now the number of frame to drop is reset to `pending - available = 1` - but it should be `x+1` This CL solves the issue by reporting (by running the afterFlushTask) flush completes only after all the pending frames before calling flush are accounted for. PiperOrigin-RevId: 506310671
claincly committed -
The prior version (with the call to createEncodingException) could never occur as select...SupportedMimeType already checks for HDR editing support. This change ensures we throw before creating an encoder, gives a better error code and allows future simplifications around createForCodec (see child CL). PiperOrigin-RevId: 506308290
samrobinson committed -
PiperOrigin-RevId: 506304101
kimvde committed -
Flushing resets all the texture processors within the `FrameProcessor`. This includes: - At the back, the FinalMatrixTextureProcessorWrapper, and its MatrixTextureProcessor - At the front, the ExternalTextureManager - All the texture processors in between - All the ChainingGlTextureProcessorListeners in between texture processors - All the internal states in the aforementioned components The flush process follows the order, from `GlEffectsFrameProcessor.flush()` 1. Flush the `FrameProcessingTaskExecutor`, so that after it returns, all tasks queued before calling `flush()` completes 2. Post to `FrameProcessingTaskExecutor`, to flush the `FinalMatrixTextureProcessorWrapper` 3. Flushing the `FinalMatrixTextureProcessorWrapper` will propagate flushing through, via the `ChainingGlTextureProcessorListener` Startblock: has LGTM from christosts and then add reviewer andrewlewis PiperOrigin-RevId: 506296469
claincly committed -
The eotf is needed so that overlay (image) colors are correctly interpreted and mixed the linear video colors. Also replaces the 100winners.png with "homemade" image file. Added GlEffectsFrameProcessor test to justify that the color looks correct at the end of frame processing. PiperOrigin-RevId: 506290309
tofunmi committed
-
- 01 Feb, 2023 2 commits
-
-
Can be used to combine multiple media items into a single timeline window. Issue: androidx/media#247 Issue: google/ExoPlayer#4868 PiperOrigin-RevId: 506283307
bachinger committed -
PiperOrigin-RevId: 506261584
christosts committed
-