mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
Ignore 8k export test on incapable devices
And add a test to cover 8k transcode to lower resolution PiperOrigin-RevId: 574809781
This commit is contained in:
parent
54d5810fc3
commit
2673b64371
1 changed files with 50 additions and 0 deletions
|
|
@ -30,12 +30,16 @@ import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_WITH_INCREAS
|
||||||
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING;
|
import static androidx.media3.transformer.AndroidTestUtil.MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING;
|
||||||
import static androidx.media3.transformer.AndroidTestUtil.recordTestSkipped;
|
import static androidx.media3.transformer.AndroidTestUtil.recordTestSkipped;
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
import static org.junit.Assume.assumeFalse;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import androidx.media3.common.Effect;
|
import androidx.media3.common.Effect;
|
||||||
|
import androidx.media3.common.Format;
|
||||||
import androidx.media3.common.MediaItem;
|
import androidx.media3.common.MediaItem;
|
||||||
|
import androidx.media3.common.MimeTypes;
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
|
import androidx.media3.effect.Presentation;
|
||||||
import androidx.media3.effect.ScaleAndRotateTransformation;
|
import androidx.media3.effect.ScaleAndRotateTransformation;
|
||||||
import androidx.media3.transformer.AndroidTestUtil;
|
import androidx.media3.transformer.AndroidTestUtil;
|
||||||
import androidx.media3.transformer.AndroidTestUtil.ForceEncodeEncoderFactory;
|
import androidx.media3.transformer.AndroidTestUtil.ForceEncodeEncoderFactory;
|
||||||
|
|
@ -48,6 +52,7 @@ import androidx.media3.transformer.TransformerAndroidTestRunner;
|
||||||
import androidx.media3.transformer.VideoEncoderSettings;
|
import androidx.media3.transformer.VideoEncoderSettings;
|
||||||
import androidx.test.core.app.ApplicationProvider;
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
import com.google.common.base.Ascii;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import org.junit.AssumptionViolatedException;
|
import org.junit.AssumptionViolatedException;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
@ -159,6 +164,14 @@ public class ExportTest {
|
||||||
@Test
|
@Test
|
||||||
public void export8K24() throws Exception {
|
public void export8K24() throws Exception {
|
||||||
String testId = TAG + "_export8K24";
|
String testId = TAG + "_export8K24";
|
||||||
|
|
||||||
|
// Reference: b/244711282#comment5
|
||||||
|
assumeFalse(
|
||||||
|
"Some devices are capable of instantiating only either one 8K decoder or one 8K encoder",
|
||||||
|
Ascii.equalsIgnoreCase(Util.MODEL, "tb-q706")
|
||||||
|
|| Ascii.equalsIgnoreCase(Util.MODEL, "sm-f916u1")
|
||||||
|
|| Ascii.equalsIgnoreCase(Util.MODEL, "sm-g981u1"));
|
||||||
|
|
||||||
Context context = ApplicationProvider.getApplicationContext();
|
Context context = ApplicationProvider.getApplicationContext();
|
||||||
if (AndroidTestUtil.skipAndLogIfFormatsUnsupported(
|
if (AndroidTestUtil.skipAndLogIfFormatsUnsupported(
|
||||||
context, testId, /* inputFormat= */ MP4_ASSET_8K24_FORMAT, /* outputFormat= */ null)) {
|
context, testId, /* inputFormat= */ MP4_ASSET_8K24_FORMAT, /* outputFormat= */ null)) {
|
||||||
|
|
@ -179,6 +192,43 @@ public class ExportTest {
|
||||||
.run(testId, mediaItem);
|
.run(testId, mediaItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void export8K24_withDownscaling() throws Exception {
|
||||||
|
// This test is to cover devices that are able to either decode or encode 8K, but not transcode.
|
||||||
|
String testId = TAG + "_export8K24_withDownscaling";
|
||||||
|
int downscaledWidth = 320;
|
||||||
|
int downscaledHeight = 240;
|
||||||
|
|
||||||
|
Context context = ApplicationProvider.getApplicationContext();
|
||||||
|
if (AndroidTestUtil.skipAndLogIfFormatsUnsupported(
|
||||||
|
context,
|
||||||
|
testId,
|
||||||
|
/* inputFormat= */ MP4_ASSET_8K24_FORMAT,
|
||||||
|
/* outputFormat= */ new Format.Builder()
|
||||||
|
.setSampleMimeType(MimeTypes.VIDEO_H264)
|
||||||
|
.setWidth(downscaledWidth)
|
||||||
|
.setHeight(downscaledHeight)
|
||||||
|
.build())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
new TransformerAndroidTestRunner.Builder(context, new Transformer.Builder(context).build())
|
||||||
|
.setTimeoutSeconds(120)
|
||||||
|
.build()
|
||||||
|
.run(
|
||||||
|
testId,
|
||||||
|
new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_8K24_URI_STRING)))
|
||||||
|
.setEffects(
|
||||||
|
new Effects(
|
||||||
|
/* audioProcessors= */ ImmutableList.of(),
|
||||||
|
/* videoEffects= */ ImmutableList.of(
|
||||||
|
Presentation.createForWidthAndHeight(
|
||||||
|
downscaledWidth,
|
||||||
|
downscaledHeight,
|
||||||
|
Presentation.LAYOUT_SCALE_TO_FIT))))
|
||||||
|
.build());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void exportNoAudio() throws Exception {
|
public void exportNoAudio() throws Exception {
|
||||||
String testId = TAG + "_exportNoAudio";
|
String testId = TAG + "_exportNoAudio";
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue