mirror of
https://github.com/androidx/media.git
synced 2025-05-09 08:30:43 +08:00
Log instead of throwing for transfer mismatch
PiperOrigin-RevId: 470354448 (cherry picked from commit dbe66775518a02c138e138a990939729bd9a3b23)
This commit is contained in:
parent
7fc1e4a674
commit
f3adc5a5d2
@ -36,6 +36,7 @@ import androidx.media3.common.C;
|
||||
import androidx.media3.common.ColorInfo;
|
||||
import androidx.media3.common.Format;
|
||||
import androidx.media3.common.MimeTypes;
|
||||
import androidx.media3.common.util.Log;
|
||||
import androidx.media3.common.util.MediaFormatUtil;
|
||||
import androidx.media3.common.util.TraceUtil;
|
||||
import androidx.media3.common.util.UnstableApi;
|
||||
@ -51,6 +52,9 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
/** A default {@link Codec} implementation that uses {@link MediaCodec}. */
|
||||
@UnstableApi
|
||||
public final class DefaultCodec implements Codec {
|
||||
|
||||
private static final String TAG = "DefaultCodec";
|
||||
|
||||
// MediaCodec decoders always output 16 bit PCM, unless configured to output PCM float.
|
||||
// https://developer.android.com/reference/android/media/MediaCodec#raw-audio-buffers.
|
||||
private static final int MEDIA_CODEC_PCM_ENCODING = C.ENCODING_PCM_16BIT;
|
||||
@ -325,16 +329,15 @@ public final class DefaultCodec implements Codec {
|
||||
ColorInfo expectedColorInfo =
|
||||
isToneMappingEnabled ? ColorInfo.SDR_BT709_LIMITED : configurationFormat.colorInfo;
|
||||
if (!areColorTransfersEqual(expectedColorInfo, outputFormat.colorInfo)) {
|
||||
// TODO(b/237674316): These exceptions throw when the container ColorInfo doesn't match
|
||||
// the video ColorInfo. Instead of throwing when seeing unexpected ColorInfos, consider
|
||||
// reconfiguring downstream components (ex. FrameProcessor and encoder) when different
|
||||
// ColorInfo values are output.
|
||||
throw createTransformationException(
|
||||
new IllegalStateException(
|
||||
"Codec output color format does not match configured color format. Expected: "
|
||||
+ expectedColorInfo
|
||||
+ ". Actual: "
|
||||
+ outputFormat.colorInfo));
|
||||
// TODO(b/237674316): The container ColorInfo's transfer doesn't match the decoder output
|
||||
// MediaFormat, or we requested tone-mapping but it hasn't bee applied. We should
|
||||
// reconfigure downstream components for this case instead.
|
||||
Log.w(
|
||||
TAG,
|
||||
"Codec output color format does not match configured color format. Expected: "
|
||||
+ expectedColorInfo
|
||||
+ ". Actual: "
|
||||
+ outputFormat.colorInfo);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user