mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Simplify MediaCodecRenderer.maybeInitializeProcessingPipeline
PiperOrigin-RevId: 717466577
This commit is contained in:
parent
190563b8eb
commit
8abd36fb27
@ -1133,7 +1133,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
|
|||||||
ArrayDeque<MediaCodecInfo> availableCodecInfos = checkNotNull(this.availableCodecInfos);
|
ArrayDeque<MediaCodecInfo> availableCodecInfos = checkNotNull(this.availableCodecInfos);
|
||||||
while (codec == null) {
|
while (codec == null) {
|
||||||
MediaCodecInfo codecInfo = checkNotNull(availableCodecInfos.peekFirst());
|
MediaCodecInfo codecInfo = checkNotNull(availableCodecInfos.peekFirst());
|
||||||
if (!maybeInitializeProcessingPipeline(codecInfo, inputFormat)) {
|
if (!maybeInitializeProcessingPipeline(inputFormat)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1492,21 +1492,15 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
|
|||||||
/**
|
/**
|
||||||
* Initializes the processing pipeline, if needed by the implementation.
|
* Initializes the processing pipeline, if needed by the implementation.
|
||||||
*
|
*
|
||||||
* <p>This method is called just before the renderer obtains the {@linkplain
|
|
||||||
* #getMediaCodecConfiguration configuration} for the {@link MediaCodecAdapter} and creates the
|
|
||||||
* adapter via the passed in {@link MediaCodecAdapter.Factory}.
|
|
||||||
*
|
|
||||||
* <p>The default implementation is a no-op.
|
* <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.
|
* @param format The {@link Format} for which the codec is being configured.
|
||||||
* @return Returns {@code true} when the processing pipeline is successfully initialized, or the
|
* @return Returns {@code true} when the processing pipeline is successfully initialized, or the
|
||||||
* {@linkplain MediaCodecRenderer renderer} does not use a processing pipeline. The caller
|
* {@linkplain MediaCodecRenderer renderer} does not use a processing pipeline. The caller
|
||||||
* should try again later, if {@code false} is returned.
|
* should try again later, if {@code false} is returned.
|
||||||
* @throws ExoPlaybackException If an error occurs preparing for initializing the codec.
|
* @throws ExoPlaybackException If an error occurs preparing for initializing the codec.
|
||||||
*/
|
*/
|
||||||
protected boolean maybeInitializeProcessingPipeline(MediaCodecInfo codecInfo, Format format)
|
protected boolean maybeInitializeProcessingPipeline(Format format) throws ExoPlaybackException {
|
||||||
throws ExoPlaybackException {
|
|
||||||
// Do nothing.
|
// Do nothing.
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1227,8 +1227,7 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer
|
|||||||
|
|
||||||
@CallSuper
|
@CallSuper
|
||||||
@Override
|
@Override
|
||||||
protected boolean maybeInitializeProcessingPipeline(MediaCodecInfo codecInfo, Format format)
|
protected boolean maybeInitializeProcessingPipeline(Format format) throws ExoPlaybackException {
|
||||||
throws ExoPlaybackException {
|
|
||||||
if (videoSink != null && !videoSink.isInitialized()) {
|
if (videoSink != null && !videoSink.isInitialized()) {
|
||||||
try {
|
try {
|
||||||
return videoSink.initialize(format);
|
return videoSink.initialize(format);
|
||||||
|
@ -79,7 +79,6 @@ import androidx.media3.exoplayer.Renderer;
|
|||||||
import androidx.media3.exoplayer.SeekParameters;
|
import androidx.media3.exoplayer.SeekParameters;
|
||||||
import androidx.media3.exoplayer.analytics.AnalyticsListener;
|
import androidx.media3.exoplayer.analytics.AnalyticsListener;
|
||||||
import androidx.media3.exoplayer.mediacodec.MediaCodecAdapter;
|
import androidx.media3.exoplayer.mediacodec.MediaCodecAdapter;
|
||||||
import androidx.media3.exoplayer.mediacodec.MediaCodecInfo;
|
|
||||||
import androidx.media3.exoplayer.mediacodec.MediaCodecSelector;
|
import androidx.media3.exoplayer.mediacodec.MediaCodecSelector;
|
||||||
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory;
|
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory;
|
||||||
import androidx.media3.exoplayer.source.MediaSource;
|
import androidx.media3.exoplayer.source.MediaSource;
|
||||||
@ -671,13 +670,12 @@ public final class ExperimentalFrameExtractor {
|
|||||||
|
|
||||||
@CallSuper
|
@CallSuper
|
||||||
@Override
|
@Override
|
||||||
protected boolean maybeInitializeProcessingPipeline(MediaCodecInfo codecInfo, Format format)
|
protected boolean maybeInitializeProcessingPipeline(Format format) throws ExoPlaybackException {
|
||||||
throws ExoPlaybackException {
|
|
||||||
if (isTransferHdr(format.colorInfo) && toneMapHdrToSdr) {
|
if (isTransferHdr(format.colorInfo) && toneMapHdrToSdr) {
|
||||||
// Setting the VideoSink format to SDR_BT709_LIMITED tone maps to SDR.
|
// Setting the VideoSink format to SDR_BT709_LIMITED tone maps to SDR.
|
||||||
format = format.buildUpon().setColorInfo(SDR_BT709_LIMITED).build();
|
format = format.buildUpon().setColorInfo(SDR_BT709_LIMITED).build();
|
||||||
}
|
}
|
||||||
return super.maybeInitializeProcessingPipeline(codecInfo, format);
|
return super.maybeInitializeProcessingPipeline(format);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user