Allow bt601 as sdr colorspace when checking sdr colors
PiperOrigin-RevId: 624877126
This commit is contained in:
parent
71e7e0f2cf
commit
c74603b66b
@ -22,6 +22,8 @@ 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.common.util.Assertions.checkState;
|
import static androidx.media3.common.util.Assertions.checkState;
|
||||||
import static androidx.media3.common.util.Util.SDK_INT;
|
import static androidx.media3.common.util.Util.SDK_INT;
|
||||||
|
import static androidx.media3.test.utils.TestUtil.retrieveTrackFormat;
|
||||||
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
import static org.junit.Assume.assumeFalse;
|
import static org.junit.Assume.assumeFalse;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@ -52,6 +54,7 @@ import com.google.common.collect.ImmutableList;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.concurrent.ExecutionException;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
import org.junit.AssumptionViolatedException;
|
import org.junit.AssumptionViolatedException;
|
||||||
@ -633,6 +636,15 @@ public final class AndroidTestUtil {
|
|||||||
writeTestSummaryToFile(context, testId, testJson);
|
writeTestSummaryToFile(context, testId, testJson);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void assertSdrColors(Context context, String filePath)
|
||||||
|
throws ExecutionException, InterruptedException {
|
||||||
|
ColorInfo colorInfo = retrieveTrackFormat(context, filePath, C.TRACK_TYPE_VIDEO).colorInfo;
|
||||||
|
assertThat(colorInfo.colorTransfer).isEqualTo(C.COLOR_TRANSFER_SDR);
|
||||||
|
// Before API 34 some encoders output a BT.601 bitstream even though we request BT.709 for SDR
|
||||||
|
// output, so allow both color spaces in output files when checking for SDR.
|
||||||
|
assertThat(colorInfo.colorSpace).isAnyOf(C.COLOR_SPACE_BT709, C.COLOR_SPACE_BT601);
|
||||||
|
}
|
||||||
|
|
||||||
public static ImmutableList<Bitmap> extractBitmapsFromVideo(Context context, String filePath)
|
public static ImmutableList<Bitmap> extractBitmapsFromVideo(Context context, String filePath)
|
||||||
throws IOException, InterruptedException {
|
throws IOException, InterruptedException {
|
||||||
return extractBitmapsFromVideo(context, filePath, Config.ARGB_8888);
|
return extractBitmapsFromVideo(context, filePath, Config.ARGB_8888);
|
||||||
|
@ -17,9 +17,9 @@
|
|||||||
|
|
||||||
package androidx.media3.transformer;
|
package androidx.media3.transformer;
|
||||||
|
|
||||||
import static androidx.media3.test.utils.TestUtil.retrieveTrackFormat;
|
|
||||||
import static androidx.media3.transformer.AndroidTestUtil.JPG_ASSET_URI_STRING;
|
import static androidx.media3.transformer.AndroidTestUtil.JPG_ASSET_URI_STRING;
|
||||||
import static androidx.media3.transformer.AndroidTestUtil.ULTRA_HDR_URI_STRING;
|
import static androidx.media3.transformer.AndroidTestUtil.ULTRA_HDR_URI_STRING;
|
||||||
|
import static androidx.media3.transformer.AndroidTestUtil.assertSdrColors;
|
||||||
import static androidx.media3.transformer.AndroidTestUtil.assumeFormatsSupported;
|
import static androidx.media3.transformer.AndroidTestUtil.assumeFormatsSupported;
|
||||||
import static androidx.media3.transformer.Composition.HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL;
|
import static androidx.media3.transformer.Composition.HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL;
|
||||||
import static androidx.media3.transformer.SequenceEffectTestUtil.NO_EFFECT;
|
import static androidx.media3.transformer.SequenceEffectTestUtil.NO_EFFECT;
|
||||||
@ -30,7 +30,6 @@ import static org.junit.Assume.assumeTrue;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
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.MimeTypes;
|
import androidx.media3.common.MimeTypes;
|
||||||
@ -96,10 +95,7 @@ public final class TransformerUltraHdrTest {
|
|||||||
.run(testId, composition);
|
.run(testId, composition);
|
||||||
|
|
||||||
assertThat(result.filePath).isNotNull();
|
assertThat(result.filePath).isNotNull();
|
||||||
ColorInfo colorInfo =
|
assertSdrColors(context, result.filePath);
|
||||||
retrieveTrackFormat(context, result.filePath, C.TRACK_TYPE_VIDEO).colorInfo;
|
|
||||||
assertThat(colorInfo.colorSpace).isEqualTo(C.COLOR_SPACE_BT709);
|
|
||||||
assertThat(colorInfo.colorTransfer).isEqualTo(C.COLOR_TRANSFER_SDR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -120,10 +116,7 @@ public final class TransformerUltraHdrTest {
|
|||||||
.run(testId, composition);
|
.run(testId, composition);
|
||||||
|
|
||||||
assertThat(result.filePath).isNotNull();
|
assertThat(result.filePath).isNotNull();
|
||||||
ColorInfo colorInfo =
|
assertSdrColors(context, result.filePath);
|
||||||
retrieveTrackFormat(context, result.filePath, C.TRACK_TYPE_VIDEO).colorInfo;
|
|
||||||
assertThat(colorInfo.colorSpace).isEqualTo(C.COLOR_SPACE_BT709);
|
|
||||||
assertThat(colorInfo.colorTransfer).isEqualTo(C.COLOR_TRANSFER_SDR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -145,10 +138,7 @@ public final class TransformerUltraHdrTest {
|
|||||||
.run(testId, composition);
|
.run(testId, composition);
|
||||||
|
|
||||||
assertThat(result.filePath).isNotNull();
|
assertThat(result.filePath).isNotNull();
|
||||||
ColorInfo colorInfo =
|
assertSdrColors(context, result.filePath);
|
||||||
retrieveTrackFormat(context, result.filePath, C.TRACK_TYPE_VIDEO).colorInfo;
|
|
||||||
assertThat(colorInfo.colorSpace).isEqualTo(C.COLOR_SPACE_BT709);
|
|
||||||
assertThat(colorInfo.colorTransfer).isEqualTo(C.COLOR_TRANSFER_SDR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -163,10 +153,7 @@ public final class TransformerUltraHdrTest {
|
|||||||
.run(testId, composition);
|
.run(testId, composition);
|
||||||
|
|
||||||
assertThat(result.filePath).isNotNull();
|
assertThat(result.filePath).isNotNull();
|
||||||
ColorInfo colorInfo =
|
assertSdrColors(context, result.filePath);
|
||||||
retrieveTrackFormat(context, result.filePath, C.TRACK_TYPE_VIDEO).colorInfo;
|
|
||||||
assertThat(colorInfo.colorSpace).isEqualTo(C.COLOR_SPACE_BT709);
|
|
||||||
assertThat(colorInfo.colorTransfer).isEqualTo(C.COLOR_TRANSFER_SDR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -183,10 +170,7 @@ public final class TransformerUltraHdrTest {
|
|||||||
.run(testId, composition);
|
.run(testId, composition);
|
||||||
|
|
||||||
assertThat(result.filePath).isNotNull();
|
assertThat(result.filePath).isNotNull();
|
||||||
ColorInfo colorInfo =
|
assertSdrColors(context, result.filePath);
|
||||||
retrieveTrackFormat(context, result.filePath, C.TRACK_TYPE_VIDEO).colorInfo;
|
|
||||||
assertThat(colorInfo.colorSpace).isEqualTo(C.COLOR_SPACE_BT709);
|
|
||||||
assertThat(colorInfo.colorTransfer).isEqualTo(C.COLOR_TRANSFER_SDR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Composition createUltraHdrComposition(
|
private static Composition createUltraHdrComposition(
|
||||||
|
@ -21,6 +21,7 @@ import static androidx.media3.test.utils.TestUtil.retrieveTrackFormat;
|
|||||||
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.ULTRA_HDR_URI_STRING;
|
import static androidx.media3.transformer.AndroidTestUtil.ULTRA_HDR_URI_STRING;
|
||||||
|
import static androidx.media3.transformer.AndroidTestUtil.assertSdrColors;
|
||||||
import static androidx.media3.transformer.AndroidTestUtil.recordTestSkipped;
|
import static androidx.media3.transformer.AndroidTestUtil.recordTestSkipped;
|
||||||
import static androidx.media3.transformer.Composition.HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL;
|
import static androidx.media3.transformer.Composition.HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL;
|
||||||
import static androidx.media3.transformer.SequenceEffectTestUtil.NO_EFFECT;
|
import static androidx.media3.transformer.SequenceEffectTestUtil.NO_EFFECT;
|
||||||
@ -146,10 +147,7 @@ public final class TransformerMhUltraHdrTest {
|
|||||||
.run(testId, composition);
|
.run(testId, composition);
|
||||||
|
|
||||||
assertThat(result.filePath).isNotNull();
|
assertThat(result.filePath).isNotNull();
|
||||||
ColorInfo colorInfo =
|
assertSdrColors(context, result.filePath);
|
||||||
retrieveTrackFormat(context, result.filePath, C.TRACK_TYPE_VIDEO).colorInfo;
|
|
||||||
assertThat(colorInfo.colorSpace).isEqualTo(C.COLOR_SPACE_BT709);
|
|
||||||
assertThat(colorInfo.colorTransfer).isEqualTo(C.COLOR_TRANSFER_SDR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Composition createUltraHdrComposition(
|
private static Composition createUltraHdrComposition(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user