Skip to content

Commit

Permalink
Merge pull request #1963 from khouzam:codecInitialize
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 705123773
  • Loading branch information
copybara-github committed Dec 11, 2024
2 parents c222bb8 + 2f880bf commit 893b377
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 5 deletions.
3 changes: 3 additions & 0 deletions RELEASENOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@
* Enable sending `CmcdData` for manifest requests in adaptive streaming
formats DASH, HLS, and SmoothStreaming
([#1951](https://github.com/androidx/media/issues/1951)).
* Provide `MediaCodecInfo` of the codec that will be initialized in
`MediaCodecRenderer.onReadyToInitializeCodec`
([#1963](https://github.com/androidx/media/pull/1963)).
* Transformer:
* Update parameters of `VideoFrameProcessor.registerInputStream` and
`VideoFrameProcessor.Listener.onInputStreamRegistered` to use `Format`.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1216,7 +1216,7 @@ private void initCodec(MediaCodecInfo codecInfo, @Nullable MediaCrypto crypto) t
if (codecOperatingRate <= assumedMinimumCodecOperatingRate) {
codecOperatingRate = CODEC_OPERATING_RATE_UNSET;
}
onReadyToInitializeCodec(inputFormat);
onReadyToInitializeCodec(codecInfo, inputFormat);
codecInitializingTimestamp = getClock().elapsedRealtime();
MediaCodecAdapter.Configuration configuration =
getMediaCodecConfiguration(codecInfo, inputFormat, crypto, codecOperatingRate);
Expand Down Expand Up @@ -1495,10 +1495,12 @@ private boolean feedInputBuffer() throws ExoPlaybackException {
*
* <p>The default implementation is a no-op.
*
* @param codecInfo The {@link MediaCodecInfo} of the codec which will be initialized.
* @param format The {@link Format} for which the codec is being configured.
* @throws ExoPlaybackException If an error occurs preparing for initializing the codec.
*/
protected void onReadyToInitializeCodec(Format format) throws ExoPlaybackException {
protected void onReadyToInitializeCodec(MediaCodecInfo codecInfo, Format format)
throws ExoPlaybackException {
// Do nothing.
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1214,7 +1214,8 @@ protected float getCodecOperatingRateV23(

@CallSuper
@Override
protected void onReadyToInitializeCodec(Format format) throws ExoPlaybackException {
protected void onReadyToInitializeCodec(MediaCodecInfo codecInfo, Format format)
throws ExoPlaybackException {
if (videoSink != null && !videoSink.isInitialized()) {
try {
videoSink.initialize(format);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@
import androidx.media3.exoplayer.SeekParameters;
import androidx.media3.exoplayer.analytics.AnalyticsListener;
import androidx.media3.exoplayer.mediacodec.MediaCodecAdapter;
import androidx.media3.exoplayer.mediacodec.MediaCodecInfo;
import androidx.media3.exoplayer.mediacodec.MediaCodecSelector;
import androidx.media3.exoplayer.source.MediaSource;
import androidx.media3.exoplayer.video.MediaCodecVideoRenderer;
Expand Down Expand Up @@ -662,12 +663,13 @@ public void setVideoEffects(List<Effect> effects) {

@CallSuper
@Override
protected void onReadyToInitializeCodec(Format format) throws ExoPlaybackException {
protected void onReadyToInitializeCodec(MediaCodecInfo codecInfo, Format format)
throws ExoPlaybackException {
if (isTransferHdr(format.colorInfo) && toneMapHdrToSdr) {
// Setting the VideoSink format to SDR_BT709_LIMITED tone maps to SDR.
format = format.buildUpon().setColorInfo(SDR_BT709_LIMITED).build();
}
super.onReadyToInitializeCodec(format);
super.onReadyToInitializeCodec(codecInfo, format);
}

@Override
Expand Down

0 comments on commit 893b377

Please sign in to comment.