mirror of
https://github.com/samsonjs/media.git
synced 2026-04-04 11:05:47 +00:00
Add logging for exceptions thrown while configuring MediaCodec.
PiperOrigin-RevId: 427728320
This commit is contained in:
parent
3540b9d701
commit
b66af2027c
2 changed files with 41 additions and 7 deletions
|
|
@ -106,7 +106,7 @@ public final class DefaultCodec implements Codec {
|
|||
}
|
||||
|
||||
throw createInitializationTransformationException(
|
||||
e, configurationFormat, isVideo, isDecoder, mediaCodecName);
|
||||
e, mediaFormat, configurationFormat, isVideo, isDecoder, mediaCodecName);
|
||||
}
|
||||
this.mediaCodec = mediaCodec;
|
||||
this.inputSurface = inputSurface;
|
||||
|
|
@ -297,6 +297,7 @@ public final class DefaultCodec implements Codec {
|
|||
|
||||
private static TransformationException createInitializationTransformationException(
|
||||
Exception cause,
|
||||
MediaFormat mediaFormat,
|
||||
Format format,
|
||||
boolean isVideo,
|
||||
boolean isDecoder,
|
||||
|
|
@ -304,6 +305,7 @@ public final class DefaultCodec implements Codec {
|
|||
if (cause instanceof IOException || cause instanceof MediaCodec.CodecException) {
|
||||
return TransformationException.createForCodec(
|
||||
cause,
|
||||
mediaFormat,
|
||||
format,
|
||||
isVideo,
|
||||
isDecoder,
|
||||
|
|
@ -315,6 +317,7 @@ public final class DefaultCodec implements Codec {
|
|||
if (cause instanceof IllegalArgumentException) {
|
||||
return TransformationException.createForCodec(
|
||||
cause,
|
||||
mediaFormat,
|
||||
format,
|
||||
isVideo,
|
||||
isDecoder,
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ package com.google.android.exoplayer2.transformer;
|
|||
import static java.lang.annotation.ElementType.TYPE_USE;
|
||||
|
||||
import android.media.MediaCodec;
|
||||
import android.media.MediaFormat;
|
||||
import android.os.SystemClock;
|
||||
import androidx.annotation.IntDef;
|
||||
import androidx.annotation.Nullable;
|
||||
|
|
@ -205,7 +206,40 @@ public final class TransformationException extends Exception {
|
|||
* Creates an instance for a decoder or encoder related exception.
|
||||
*
|
||||
* @param cause The cause of the failure.
|
||||
* @param format The {@link Format} used for configuring the decoder/encoder.
|
||||
* @param mediaFormat The {@link MediaFormat} used for configuring the underlying {@link
|
||||
* MediaCodec}, if known.
|
||||
* @param format The {@link Format} used for configuring the {@link Codec}.
|
||||
* @param isVideo Whether the decoder or encoder is configured for video.
|
||||
* @param isDecoder Whether the exception is created for a decoder.
|
||||
* @param mediaCodecName The name of the {@link MediaCodec} used, if known.
|
||||
* @param errorCode See {@link #errorCode}.
|
||||
* @return The created instance.
|
||||
*/
|
||||
public static TransformationException createForCodec(
|
||||
Throwable cause,
|
||||
@Nullable MediaFormat mediaFormat,
|
||||
Format format,
|
||||
boolean isVideo,
|
||||
boolean isDecoder,
|
||||
@Nullable String mediaCodecName,
|
||||
int errorCode) {
|
||||
String componentName = (isVideo ? "Video" : "Audio") + (isDecoder ? "Decoder" : "Encoder");
|
||||
String errorMessage =
|
||||
componentName
|
||||
+ " error, format="
|
||||
+ format
|
||||
+ ", mediaCodecName="
|
||||
+ mediaCodecName
|
||||
+ ", mediaFormat="
|
||||
+ (mediaFormat == null ? "no configured MediaFormat" : mediaFormat.toString());
|
||||
return new TransformationException(errorMessage, cause, errorCode);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an instance for a decoder or encoder related exception.
|
||||
*
|
||||
* @param cause The cause of the failure.
|
||||
* @param format The {@link Format} used for configuring the {@link Codec}.
|
||||
* @param isVideo Whether the decoder or encoder is configured for video.
|
||||
* @param isDecoder Whether the exception is created for a decoder.
|
||||
* @param mediaCodecName The name of the {@link MediaCodec} used, if known.
|
||||
|
|
@ -219,11 +253,8 @@ public final class TransformationException extends Exception {
|
|||
boolean isDecoder,
|
||||
@Nullable String mediaCodecName,
|
||||
int errorCode) {
|
||||
String componentName = (isVideo ? "Video" : "Audio") + (isDecoder ? "Decoder" : "Encoder");
|
||||
return new TransformationException(
|
||||
componentName + " error, format = " + format + ", mediaCodecName=" + mediaCodecName,
|
||||
cause,
|
||||
errorCode);
|
||||
return createForCodec(
|
||||
cause, /* mediaFormat= */ null, format, isVideo, isDecoder, mediaCodecName, errorCode);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue