Test: Add format codec info and update HDR10 file to 720p.

Add format codec info, which can make test skipping checks more similar to the
actual Transformer decoder checks.

Also for the test file, the actual format was 720p, but somehow the file name and
media metadata indicated 1080p. This format mismatch led to some decoding errors,
so fix the format (and associated errors). This also allows us to remove the
exception catch in ForceInterpretHdrVideoAsSdrTest, which was included due to
errors from the incorrect format.

PiperOrigin-RevId: 511809507
This commit is contained in:
huangdarwin 2023-02-23 17:36:07 +00:00 committed by tonihei
parent f042012495
commit cc1ca860b1
7 changed files with 74 additions and 64 deletions

View File

@ -53,8 +53,6 @@ public final class AndroidTestUtil {
*/ */
public static final int MEDIA_CODEC_PRIORITY_NON_REALTIME = 1; public static final int MEDIA_CODEC_PRIORITY_NON_REALTIME = 1;
// Format values are sourced from `mediainfo` command.
public static final String MP4_ASSET_URI_STRING = "asset:///media/mp4/sample.mp4"; public static final String MP4_ASSET_URI_STRING = "asset:///media/mp4/sample.mp4";
public static final Format MP4_ASSET_FORMAT = public static final Format MP4_ASSET_FORMAT =
new Format.Builder() new Format.Builder()
@ -62,6 +60,7 @@ public final class AndroidTestUtil {
.setWidth(1080) .setWidth(1080)
.setHeight(720) .setHeight(720)
.setFrameRate(29.97f) .setFrameRate(29.97f)
.setCodecs("avc1.64001F")
.build(); .build();
public static final String MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING = public static final String MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING =
@ -72,6 +71,7 @@ public final class AndroidTestUtil {
.setWidth(1920) .setWidth(1920)
.setHeight(1080) .setHeight(1080)
.setFrameRate(30.00f) .setFrameRate(30.00f)
.setCodecs("avc1.42C033")
.build(); .build();
/** Baseline profile level 3.0 H.264 stream, which should be supported on all devices. */ /** Baseline profile level 3.0 H.264 stream, which should be supported on all devices. */
@ -84,6 +84,7 @@ public final class AndroidTestUtil {
.setWidth(320) .setWidth(320)
.setHeight(240) .setHeight(240)
.setFrameRate(30.00f) .setFrameRate(30.00f)
.setCodecs("avc1.42C015")
.build(); .build();
public static final String MP4_ASSET_SEF_URI_STRING = public static final String MP4_ASSET_SEF_URI_STRING =
@ -94,6 +95,7 @@ public final class AndroidTestUtil {
.setWidth(320) .setWidth(320)
.setHeight(240) .setHeight(240)
.setFrameRate(30.472f) .setFrameRate(30.472f)
.setCodecs("avc1.64000D")
.build(); .build();
public static final String MP4_ASSET_1080P_5_SECOND_HLG10 = "asset:///media/mp4/hlg-1080p.mp4"; public static final String MP4_ASSET_1080P_5_SECOND_HLG10 = "asset:///media/mp4/hlg-1080p.mp4";
@ -109,20 +111,22 @@ public final class AndroidTestUtil {
.setColorRange(C.COLOR_RANGE_LIMITED) .setColorRange(C.COLOR_RANGE_LIMITED)
.setColorTransfer(C.COLOR_TRANSFER_HLG) .setColorTransfer(C.COLOR_TRANSFER_HLG)
.build()) .build())
.setCodecs("hvc1.2.4.L153")
.build(); .build();
public static final String MP4_ASSET_1080P_4_SECOND_HDR10 = "asset:///media/mp4/hdr10-1080p.mp4"; public static final String MP4_ASSET_720P_4_SECOND_HDR10 = "asset:///media/mp4/hdr10-720p.mp4";
public static final Format MP4_ASSET_1080P_4_SECOND_HDR10_FORMAT = public static final Format MP4_ASSET_720P_4_SECOND_HDR10_FORMAT =
new Format.Builder() new Format.Builder()
.setSampleMimeType(VIDEO_H265) .setSampleMimeType(VIDEO_H265)
.setWidth(1920) .setWidth(1280)
.setHeight(1080) .setHeight(720)
.setFrameRate(23.517f) .setFrameRate(29.97f)
.setColorInfo( .setColorInfo(
new ColorInfo.Builder() new ColorInfo.Builder()
.setColorSpace(C.COLOR_SPACE_BT2020) .setColorSpace(C.COLOR_SPACE_BT2020)
.setColorRange(C.COLOR_RANGE_LIMITED) .setColorRange(C.COLOR_RANGE_LIMITED)
.setColorTransfer(C.COLOR_TRANSFER_ST2084) .setColorTransfer(C.COLOR_TRANSFER_ST2084)
.build()) .build())
.setCodecs("hvc1.2.4.L153")
.build(); .build();
public static final String MP4_ASSET_1080P_1_SECOND_HDR10_VIDEO_SDR_CONTAINER = public static final String MP4_ASSET_1080P_1_SECOND_HDR10_VIDEO_SDR_CONTAINER =
"asset:///media/mp4/hdr10-video-with-sdr-container.mp4"; "asset:///media/mp4/hdr10-video-with-sdr-container.mp4";
@ -135,6 +139,7 @@ public final class AndroidTestUtil {
.setWidth(1280) .setWidth(1280)
.setHeight(720) .setHeight(720)
.setFrameRate(29.97f) .setFrameRate(29.97f)
.setCodecs("avc1.64001F")
.build(); .build();
/** Test clip transcoded from {@link #MP4_REMOTE_10_SECONDS_URI_STRING} with H264 and MP3. */ /** Test clip transcoded from {@link #MP4_REMOTE_10_SECONDS_URI_STRING} with H264 and MP3. */
@ -147,6 +152,7 @@ public final class AndroidTestUtil {
.setWidth(1280) .setWidth(1280)
.setHeight(720) .setHeight(720)
.setFrameRate(29.97f) .setFrameRate(29.97f)
.setCodecs("avc1.64001F")
.build(); .build();
public static final String MP4_REMOTE_4K60_PORTRAIT_URI_STRING = public static final String MP4_REMOTE_4K60_PORTRAIT_URI_STRING =
@ -157,6 +163,7 @@ public final class AndroidTestUtil {
.setWidth(3840) .setWidth(3840)
.setHeight(2160) .setHeight(2160)
.setFrameRate(57.39f) .setFrameRate(57.39f)
.setCodecs("avc1.640033")
.build(); .build();
public static final String MP4_REMOTE_8K24_URI_STRING = public static final String MP4_REMOTE_8K24_URI_STRING =
@ -167,6 +174,7 @@ public final class AndroidTestUtil {
.setWidth(7680) .setWidth(7680)
.setHeight(4320) .setHeight(4320)
.setFrameRate(24.00f) .setFrameRate(24.00f)
.setCodecs("hvc1.1.6.L183")
.build(); .build();
// The 7 HIGHMOTION files are H264 and AAC. // The 7 HIGHMOTION files are H264 and AAC.
@ -179,6 +187,7 @@ public final class AndroidTestUtil {
.setHeight(720) .setHeight(720)
.setAverageBitrate(8_939_000) .setAverageBitrate(8_939_000)
.setFrameRate(30.075f) .setFrameRate(30.075f)
.setCodecs("avc1.64001F")
.build(); .build();
public static final String MP4_REMOTE_1440W_1440H_5_SECOND_HIGHMOTION = public static final String MP4_REMOTE_1440W_1440H_5_SECOND_HIGHMOTION =
@ -190,6 +199,7 @@ public final class AndroidTestUtil {
.setHeight(1440) .setHeight(1440)
.setAverageBitrate(17_000_000) .setAverageBitrate(17_000_000)
.setFrameRate(29.97f) .setFrameRate(29.97f)
.setCodecs("avc1.640028")
.build(); .build();
public static final String MP4_REMOTE_1920W_1080H_5_SECOND_HIGHMOTION = public static final String MP4_REMOTE_1920W_1080H_5_SECOND_HIGHMOTION =
@ -201,6 +211,7 @@ public final class AndroidTestUtil {
.setHeight(1080) .setHeight(1080)
.setAverageBitrate(17_100_000) .setAverageBitrate(17_100_000)
.setFrameRate(30.037f) .setFrameRate(30.037f)
.setCodecs("avc1.640028")
.build(); .build();
public static final String MP4_REMOTE_3840W_2160H_5_SECOND_HIGHMOTION = public static final String MP4_REMOTE_3840W_2160H_5_SECOND_HIGHMOTION =
@ -212,6 +223,7 @@ public final class AndroidTestUtil {
.setHeight(2160) .setHeight(2160)
.setAverageBitrate(48_300_000) .setAverageBitrate(48_300_000)
.setFrameRate(30.090f) .setFrameRate(30.090f)
.setCodecs("avc1.640033")
.build(); .build();
public static final String MP4_REMOTE_1280W_720H_30_SECOND_HIGHMOTION = public static final String MP4_REMOTE_1280W_720H_30_SECOND_HIGHMOTION =
@ -223,6 +235,7 @@ public final class AndroidTestUtil {
.setHeight(720) .setHeight(720)
.setAverageBitrate(9_962_000) .setAverageBitrate(9_962_000)
.setFrameRate(30.078f) .setFrameRate(30.078f)
.setCodecs("avc1.64001F")
.build(); .build();
public static final String MP4_REMOTE_1920W_1080H_30_SECOND_HIGHMOTION = public static final String MP4_REMOTE_1920W_1080H_30_SECOND_HIGHMOTION =
@ -234,6 +247,7 @@ public final class AndroidTestUtil {
.setHeight(1080) .setHeight(1080)
.setAverageBitrate(15_000_000) .setAverageBitrate(15_000_000)
.setFrameRate(28.561f) .setFrameRate(28.561f)
.setCodecs("avc1.640028")
.build(); .build();
public static final String MP4_REMOTE_3840W_2160H_32_SECOND_HIGHMOTION = public static final String MP4_REMOTE_3840W_2160H_32_SECOND_HIGHMOTION =
@ -245,6 +259,7 @@ public final class AndroidTestUtil {
.setHeight(2160) .setHeight(2160)
.setAverageBitrate(47_800_000) .setAverageBitrate(47_800_000)
.setFrameRate(28.414f) .setFrameRate(28.414f)
.setCodecs("avc1.640033")
.build(); .build();
public static final String MP4_REMOTE_256W_144H_30_SECOND_ROOF_ONEPLUSNORD2_DOWNSAMPLED = public static final String MP4_REMOTE_256W_144H_30_SECOND_ROOF_ONEPLUSNORD2_DOWNSAMPLED =
@ -255,6 +270,7 @@ public final class AndroidTestUtil {
.setWidth(256) .setWidth(256)
.setHeight(144) .setHeight(144)
.setFrameRate(30) .setFrameRate(30)
.setCodecs("avc1.64000C")
.build(); .build();
public static final String MP4_REMOTE_426W_240H_30_SECOND_ROOF_ONEPLUSNORD2_DOWNSAMPLED = public static final String MP4_REMOTE_426W_240H_30_SECOND_ROOF_ONEPLUSNORD2_DOWNSAMPLED =
@ -265,6 +281,7 @@ public final class AndroidTestUtil {
.setWidth(426) .setWidth(426)
.setHeight(240) .setHeight(240)
.setFrameRate(30) .setFrameRate(30)
.setCodecs("avc1.640015")
.build(); .build();
public static final String MP4_REMOTE_640W_360H_30_SECOND_ROOF_ONEPLUSNORD2_DOWNSAMPLED = public static final String MP4_REMOTE_640W_360H_30_SECOND_ROOF_ONEPLUSNORD2_DOWNSAMPLED =
@ -275,6 +292,7 @@ public final class AndroidTestUtil {
.setWidth(640) .setWidth(640)
.setHeight(360) .setHeight(360)
.setFrameRate(30) .setFrameRate(30)
.setCodecs("avc1.64001E")
.build(); .build();
public static final String MP4_REMOTE_854W_480H_30_SECOND_ROOF_ONEPLUSNORD2_DOWNSAMPLED = public static final String MP4_REMOTE_854W_480H_30_SECOND_ROOF_ONEPLUSNORD2_DOWNSAMPLED =
@ -285,6 +303,7 @@ public final class AndroidTestUtil {
.setWidth(854) .setWidth(854)
.setHeight(480) .setHeight(480)
.setFrameRate(30) .setFrameRate(30)
.setCodecs("avc1.64001F")
.build(); .build();
public static final String MP4_REMOTE_256W_144H_30_SECOND_ROOF_REDMINOTE9_DOWNSAMPLED = public static final String MP4_REMOTE_256W_144H_30_SECOND_ROOF_REDMINOTE9_DOWNSAMPLED =
@ -295,6 +314,7 @@ public final class AndroidTestUtil {
.setWidth(256) .setWidth(256)
.setHeight(144) .setHeight(144)
.setFrameRate(30) .setFrameRate(30)
.setCodecs("avc1.64000C")
.build(); .build();
public static final String MP4_REMOTE_426W_240H_30_SECOND_ROOF_REDMINOTE9_DOWNSAMPLED = public static final String MP4_REMOTE_426W_240H_30_SECOND_ROOF_REDMINOTE9_DOWNSAMPLED =
@ -305,6 +325,7 @@ public final class AndroidTestUtil {
.setWidth(426) .setWidth(426)
.setHeight(240) .setHeight(240)
.setFrameRate(30) .setFrameRate(30)
.setCodecs("avc1.640015")
.build(); .build();
public static final String MP4_REMOTE_640W_360H_30_SECOND_ROOF_REDMINOTE9_DOWNSAMPLED = public static final String MP4_REMOTE_640W_360H_30_SECOND_ROOF_REDMINOTE9_DOWNSAMPLED =
@ -315,6 +336,7 @@ public final class AndroidTestUtil {
.setWidth(640) .setWidth(640)
.setHeight(360) .setHeight(360)
.setFrameRate(30) .setFrameRate(30)
.setCodecs("avc1.64001E")
.build(); .build();
public static final String MP4_REMOTE_854W_480H_30_SECOND_ROOF_REDMINOTE9_DOWNSAMPLED = public static final String MP4_REMOTE_854W_480H_30_SECOND_ROOF_REDMINOTE9_DOWNSAMPLED =
@ -325,6 +347,7 @@ public final class AndroidTestUtil {
.setWidth(854) .setWidth(854)
.setHeight(480) .setHeight(480)
.setFrameRate(30) .setFrameRate(30)
.setCodecs("avc1.64001F")
.build(); .build();
public static final String MP4_REMOTE_640W_480H_31_SECOND_ROOF_SONYXPERIAXZ3 = public static final String MP4_REMOTE_640W_480H_31_SECOND_ROOF_SONYXPERIAXZ3 =
@ -336,6 +359,7 @@ public final class AndroidTestUtil {
.setHeight(480) .setHeight(480)
.setAverageBitrate(3_578_000) .setAverageBitrate(3_578_000)
.setFrameRate(30) .setFrameRate(30)
.setCodecs("avc1.64001E")
.build(); .build();
public static final String MP4_REMOTE_1280W_720H_30_SECOND_ROOF_ONEPLUSNORD2 = public static final String MP4_REMOTE_1280W_720H_30_SECOND_ROOF_ONEPLUSNORD2 =
@ -347,6 +371,7 @@ public final class AndroidTestUtil {
.setHeight(720) .setHeight(720)
.setAverageBitrate(8_966_000) .setAverageBitrate(8_966_000)
.setFrameRate(29.763f) .setFrameRate(29.763f)
.setCodecs("avc1.640028")
.build(); .build();
public static final String MP4_REMOTE_1280W_720H_32_SECOND_ROOF_REDMINOTE9 = public static final String MP4_REMOTE_1280W_720H_32_SECOND_ROOF_REDMINOTE9 =
@ -358,6 +383,7 @@ public final class AndroidTestUtil {
.setHeight(720) .setHeight(720)
.setAverageBitrate(14_100_000) .setAverageBitrate(14_100_000)
.setFrameRate(30) .setFrameRate(30)
.setCodecs("avc1.64001F")
.build(); .build();
public static final String MP4_REMOTE_1440W_1440H_31_SECOND_ROOF_SAMSUNGS20ULTRA5G = public static final String MP4_REMOTE_1440W_1440H_31_SECOND_ROOF_SAMSUNGS20ULTRA5G =
@ -369,6 +395,7 @@ public final class AndroidTestUtil {
.setHeight(1440) .setHeight(1440)
.setAverageBitrate(16_300_000) .setAverageBitrate(16_300_000)
.setFrameRate(25.931f) .setFrameRate(25.931f)
.setCodecs("avc1.640028")
.build(); .build();
public static final String MP4_REMOTE_1920W_1080H_60_FPS_30_SECOND_ROOF_ONEPLUSNORD2 = public static final String MP4_REMOTE_1920W_1080H_60_FPS_30_SECOND_ROOF_ONEPLUSNORD2 =
@ -380,6 +407,7 @@ public final class AndroidTestUtil {
.setHeight(1080) .setHeight(1080)
.setAverageBitrate(20_000_000) .setAverageBitrate(20_000_000)
.setFrameRate(59.94f) .setFrameRate(59.94f)
.setCodecs("avc1.640028")
.build(); .build();
public static final String MP4_REMOTE_1920W_1080H_60_FPS_30_SECOND_ROOF_REDMINOTE9 = public static final String MP4_REMOTE_1920W_1080H_60_FPS_30_SECOND_ROOF_REDMINOTE9 =
@ -391,6 +419,7 @@ public final class AndroidTestUtil {
.setHeight(1080) .setHeight(1080)
.setAverageBitrate(20_100_000) .setAverageBitrate(20_100_000)
.setFrameRate(61.069f) .setFrameRate(61.069f)
.setCodecs("avc1.64002A")
.build(); .build();
public static final String MP4_REMOTE_2400W_1080H_34_SECOND_ROOF_SAMSUNGS20ULTRA5G = public static final String MP4_REMOTE_2400W_1080H_34_SECOND_ROOF_SAMSUNGS20ULTRA5G =
@ -402,6 +431,7 @@ public final class AndroidTestUtil {
.setHeight(1080) .setHeight(1080)
.setAverageBitrate(29_500_000) .setAverageBitrate(29_500_000)
.setFrameRate(27.472f) .setFrameRate(27.472f)
.setCodecs("hvc1.2.4.L153.B0")
.build(); .build();
public static final String MP4_REMOTE_3840W_2160H_30_SECOND_ROOF_ONEPLUSNORD2 = public static final String MP4_REMOTE_3840W_2160H_30_SECOND_ROOF_ONEPLUSNORD2 =
@ -413,6 +443,7 @@ public final class AndroidTestUtil {
.setHeight(2160) .setHeight(2160)
.setAverageBitrate(49_800_000) .setAverageBitrate(49_800_000)
.setFrameRate(29.802f) .setFrameRate(29.802f)
.setCodecs("avc1.640028")
.build(); .build();
public static final String MP4_REMOTE_3840W_2160H_30_SECOND_ROOF_REDMINOTE9 = public static final String MP4_REMOTE_3840W_2160H_30_SECOND_ROOF_REDMINOTE9 =
@ -424,6 +455,13 @@ public final class AndroidTestUtil {
.setHeight(2160) .setHeight(2160)
.setAverageBitrate(42_100_000) .setAverageBitrate(42_100_000)
.setFrameRate(30) .setFrameRate(30)
.setColorInfo(
new ColorInfo.Builder()
.setColorSpace(C.COLOR_SPACE_BT2020)
.setColorRange(C.COLOR_RANGE_FULL)
.setColorTransfer(C.COLOR_TRANSFER_SDR)
.build())
.setCodecs("avc1.640033")
.build(); .build();
public static final String MP4_REMOTE_7680W_4320H_31_SECOND_ROOF_SAMSUNGS20ULTRA5G = public static final String MP4_REMOTE_7680W_4320H_31_SECOND_ROOF_SAMSUNGS20ULTRA5G =
@ -435,6 +473,7 @@ public final class AndroidTestUtil {
.setHeight(4320) .setHeight(4320)
.setAverageBitrate(79_900_000) .setAverageBitrate(79_900_000)
.setFrameRate(23.163f) .setFrameRate(23.163f)
.setCodecs("hvc1.1.6.L183.B0")
.build(); .build();
/** /**
* Log in logcat and in an analysis file that this test was skipped. * Log in logcat and in an analysis file that this test was skipped.

View File

@ -16,22 +16,20 @@
package androidx.media3.transformer.mh; package androidx.media3.transformer.mh;
import static androidx.media3.common.util.Util.SDK_INT; import static androidx.media3.common.util.Util.SDK_INT;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_4_SECOND_HDR10;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_4_SECOND_HDR10_FORMAT;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_5_SECOND_HLG10; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_5_SECOND_HLG10;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_5_SECOND_HLG10_FORMAT; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_5_SECOND_HLG10_FORMAT;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_720P_4_SECOND_HDR10;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_720P_4_SECOND_HDR10_FORMAT;
import static androidx.media3.transformer.AndroidTestUtil.recordTestSkipped; import static androidx.media3.transformer.AndroidTestUtil.recordTestSkipped;
import static androidx.media3.transformer.AndroidTestUtil.skipAndLogIfFormatsUnsupported; import static androidx.media3.transformer.AndroidTestUtil.skipAndLogIfFormatsUnsupported;
import static androidx.media3.transformer.mh.FileUtil.maybeAssertFileHasColorTransfer; import static androidx.media3.transformer.mh.FileUtil.maybeAssertFileHasColorTransfer;
import android.content.Context; import android.content.Context;
import android.net.Uri; import android.net.Uri;
import android.util.Log;
import androidx.media3.common.C; import androidx.media3.common.C;
import androidx.media3.common.ColorInfo; import androidx.media3.common.ColorInfo;
import androidx.media3.common.Format; import androidx.media3.common.Format;
import androidx.media3.common.MediaItem; import androidx.media3.common.MediaItem;
import androidx.media3.transformer.ExportException;
import androidx.media3.transformer.ExportTestResult; import androidx.media3.transformer.ExportTestResult;
import androidx.media3.transformer.TransformationRequest; import androidx.media3.transformer.TransformationRequest;
import androidx.media3.transformer.Transformer; import androidx.media3.transformer.Transformer;
@ -64,7 +62,7 @@ public class ForceInterpretHdrVideoAsSdrTest {
// Force interpret HDR as SDR signals SDR input to the decoder, even if the actual input is HDR. // Force interpret HDR as SDR signals SDR input to the decoder, even if the actual input is HDR.
Format decoderInputFormat = Format decoderInputFormat =
MP4_ASSET_1080P_4_SECOND_HDR10_FORMAT MP4_ASSET_720P_4_SECOND_HDR10_FORMAT
.buildUpon() .buildUpon()
.setColorInfo(ColorInfo.SDR_BT709_LIMITED) .setColorInfo(ColorInfo.SDR_BT709_LIMITED)
.build(); .build();
@ -81,21 +79,13 @@ public class ForceInterpretHdrVideoAsSdrTest {
TransformationRequest.HDR_MODE_EXPERIMENTAL_FORCE_INTERPRET_HDR_AS_SDR) TransformationRequest.HDR_MODE_EXPERIMENTAL_FORCE_INTERPRET_HDR_AS_SDR)
.build()) .build())
.build(); .build();
MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10)); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_720P_4_SECOND_HDR10));
try { ExportTestResult exportTestResult =
ExportTestResult exportTestResult = new TransformerAndroidTestRunner.Builder(context, transformer)
new TransformerAndroidTestRunner.Builder(context, transformer) .build()
.build() .run(testId, mediaItem);
.run(testId, mediaItem);
maybeAssertFileHasColorTransfer(exportTestResult.filePath, C.COLOR_TRANSFER_SDR); maybeAssertFileHasColorTransfer(exportTestResult.filePath, C.COLOR_TRANSFER_SDR);
Log.i(TAG, "Transformed.");
} catch (ExportException exception) {
String message = getMessageOrEmptyString(exception);
Log.i(TAG, "Exception: " + message);
if (!message.equals("The requested video decoding format is not supported.")) {
throw exception;
}
}
} }
@Test @Test
@ -130,30 +120,11 @@ public class ForceInterpretHdrVideoAsSdrTest {
.build()) .build())
.build(); .build();
MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10)); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10));
try { ExportTestResult exportTestResult =
ExportTestResult exportTestResult = new TransformerAndroidTestRunner.Builder(context, transformer)
new TransformerAndroidTestRunner.Builder(context, transformer) .build()
.build() .run(testId, mediaItem);
.run(testId, mediaItem);
maybeAssertFileHasColorTransfer(exportTestResult.filePath, C.COLOR_TRANSFER_SDR);
Log.i(TAG, "Transformed.");
} catch (ExportException exception) {
String message = getMessageOrEmptyString(exception);
Log.i(TAG, "Exception: " + message);
if (!message.equals("The requested video decoding format is not supported.")) {
throw exception;
}
}
}
private String getMessageOrEmptyString(Exception exception) { maybeAssertFileHasColorTransfer(exportTestResult.filePath, C.COLOR_TRANSFER_SDR);
if (exception.getCause() == null) {
return "";
}
String message = exception.getCause().getMessage();
if (message == null) {
return "";
}
return message;
} }
} }

View File

@ -18,8 +18,8 @@ package androidx.media3.transformer.mh;
import static androidx.media3.common.MimeTypes.VIDEO_H265; import static androidx.media3.common.MimeTypes.VIDEO_H265;
import static androidx.media3.common.util.Assertions.checkNotNull; import static androidx.media3.common.util.Assertions.checkNotNull;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_1_SECOND_HDR10_VIDEO_SDR_CONTAINER; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_1_SECOND_HDR10_VIDEO_SDR_CONTAINER;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_4_SECOND_HDR10;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_5_SECOND_HLG10; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_5_SECOND_HLG10;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_720P_4_SECOND_HDR10;
import static androidx.media3.transformer.AndroidTestUtil.recordTestSkipped; import static androidx.media3.transformer.AndroidTestUtil.recordTestSkipped;
import static androidx.media3.transformer.mh.FileUtil.maybeAssertFileHasColorTransfer; import static androidx.media3.transformer.mh.FileUtil.maybeAssertFileHasColorTransfer;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
@ -73,7 +73,7 @@ public class HdrEditingTest {
Context context = ApplicationProvider.getApplicationContext(); Context context = ApplicationProvider.getApplicationContext();
Transformer transformer = new Transformer.Builder(context).build(); Transformer transformer = new Transformer.Builder(context).build();
MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10)); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_720P_4_SECOND_HDR10));
try { try {
ExportTestResult exportTestResult = ExportTestResult exportTestResult =
@ -127,7 +127,7 @@ public class HdrEditingTest {
} }
Transformer transformer = new Transformer.Builder(context).build(); Transformer transformer = new Transformer.Builder(context).build();
MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10)); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_720P_4_SECOND_HDR10));
ImmutableList<Effect> videoEffects = ImmutableList<Effect> videoEffects =
ImmutableList.of( ImmutableList.of(
new ScaleAndRotateTransformation.Builder().setRotationDegrees(180).build()); new ScaleAndRotateTransformation.Builder().setRotationDegrees(180).build());
@ -197,7 +197,7 @@ public class HdrEditingTest {
} }
}) })
.build(); .build();
MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10)); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_720P_4_SECOND_HDR10));
ImmutableList<Effect> videoEffects = ImmutableList<Effect> videoEffects =
ImmutableList.of( ImmutableList.of(
new ScaleAndRotateTransformation.Builder().setRotationDegrees(180).build()); new ScaleAndRotateTransformation.Builder().setRotationDegrees(180).build());

View File

@ -16,8 +16,8 @@
package androidx.media3.transformer.mh; package androidx.media3.transformer.mh;
import static androidx.media3.common.util.Assertions.checkNotNull; import static androidx.media3.common.util.Assertions.checkNotNull;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_4_SECOND_HDR10;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_5_SECOND_HLG10; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_5_SECOND_HLG10;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_720P_4_SECOND_HDR10;
import static androidx.media3.transformer.mh.FileUtil.maybeAssertFileHasColorTransfer; import static androidx.media3.transformer.mh.FileUtil.maybeAssertFileHasColorTransfer;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
@ -75,7 +75,7 @@ public class ToneMapHdrToSdrUsingMediaCodecTest {
} }
}) })
.build(); .build();
MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10)); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_720P_4_SECOND_HDR10));
try { try {
ExportTestResult exportTestResult = ExportTestResult exportTestResult =
@ -159,7 +159,7 @@ public class ToneMapHdrToSdrUsingMediaCodecTest {
} }
}) })
.build(); .build();
MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10)); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_720P_4_SECOND_HDR10));
ImmutableList<Effect> videoEffects = ImmutableList<Effect> videoEffects =
ImmutableList.of( ImmutableList.of(
new ScaleAndRotateTransformation.Builder().setRotationDegrees(180).build()); new ScaleAndRotateTransformation.Builder().setRotationDegrees(180).build());

View File

@ -17,8 +17,8 @@ package androidx.media3.transformer.mh;
import static androidx.media3.test.utils.BitmapPixelTestUtil.getBitmapAveragePixelAbsoluteDifferenceArgb8888; import static androidx.media3.test.utils.BitmapPixelTestUtil.getBitmapAveragePixelAbsoluteDifferenceArgb8888;
import static androidx.media3.test.utils.BitmapPixelTestUtil.readBitmap; import static androidx.media3.test.utils.BitmapPixelTestUtil.readBitmap;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_4_SECOND_HDR10_FORMAT;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_5_SECOND_HLG10_FORMAT; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_5_SECOND_HLG10_FORMAT;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_720P_4_SECOND_HDR10_FORMAT;
import static androidx.media3.transformer.AndroidTestUtil.recordTestSkipped; import static androidx.media3.transformer.AndroidTestUtil.recordTestSkipped;
import static androidx.media3.transformer.AndroidTestUtil.skipAndLogIfFormatsUnsupported; import static androidx.media3.transformer.AndroidTestUtil.skipAndLogIfFormatsUnsupported;
import static androidx.test.core.app.ApplicationProvider.getApplicationContext; import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
@ -161,7 +161,7 @@ public final class ToneMapHdrToSdrUsingOpenGlPixelTest {
if (skipAndLogIfFormatsUnsupported( if (skipAndLogIfFormatsUnsupported(
getApplicationContext(), getApplicationContext(),
testId, testId,
/* inputFormat= */ MP4_ASSET_1080P_4_SECOND_HDR10_FORMAT, /* inputFormat= */ MP4_ASSET_720P_4_SECOND_HDR10_FORMAT,
/* outputFormat= */ null)) { /* outputFormat= */ null)) {
return; return;
} }

View File

@ -15,10 +15,10 @@
*/ */
package androidx.media3.transformer.mh; package androidx.media3.transformer.mh;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_4_SECOND_HDR10;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_4_SECOND_HDR10_FORMAT;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_5_SECOND_HLG10; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_5_SECOND_HLG10;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_5_SECOND_HLG10_FORMAT; import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_1080P_5_SECOND_HLG10_FORMAT;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_720P_4_SECOND_HDR10;
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_720P_4_SECOND_HDR10_FORMAT;
import static androidx.media3.transformer.AndroidTestUtil.recordTestSkipped; import static androidx.media3.transformer.AndroidTestUtil.recordTestSkipped;
import static androidx.media3.transformer.mh.FileUtil.maybeAssertFileHasColorTransfer; import static androidx.media3.transformer.mh.FileUtil.maybeAssertFileHasColorTransfer;
import static androidx.test.core.app.ApplicationProvider.getApplicationContext; import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
@ -121,7 +121,7 @@ public class ToneMapHdrToSdrUsingOpenGlTest {
if (AndroidTestUtil.skipAndLogIfFormatsUnsupported( if (AndroidTestUtil.skipAndLogIfFormatsUnsupported(
getApplicationContext(), getApplicationContext(),
testId, testId,
/* inputFormat= */ MP4_ASSET_1080P_4_SECOND_HDR10_FORMAT, /* inputFormat= */ MP4_ASSET_720P_4_SECOND_HDR10_FORMAT,
/* outputFormat= */ null)) { /* outputFormat= */ null)) {
return; return;
} }
@ -135,7 +135,7 @@ public class ToneMapHdrToSdrUsingOpenGlTest {
.setHdrMode(TransformationRequest.HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL) .setHdrMode(TransformationRequest.HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL)
.build()) .build())
.build(); .build();
MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10)); MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_720P_4_SECOND_HDR10));
try { try {
ExportTestResult exportTestResult = ExportTestResult exportTestResult =
new TransformerAndroidTestRunner.Builder(context, transformer) new TransformerAndroidTestRunner.Builder(context, transformer)