mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Update code based on Google comments
This commit is contained in:
parent
5eb064d2d1
commit
6b6d66c7ce
@ -1304,7 +1304,6 @@ public class TransformerEndToEndTest {
|
|||||||
.run(testId, editedMediaItem);
|
.run(testId, editedMediaItem);
|
||||||
ExportResult exportResult = exportTestResult.exportResult;
|
ExportResult exportResult = exportTestResult.exportResult;
|
||||||
|
|
||||||
assert exportTestResult.filePath != null;
|
|
||||||
String actualMimeType =
|
String actualMimeType =
|
||||||
retrieveTrackFormat(context, exportTestResult.filePath, C.TRACK_TYPE_VIDEO).sampleMimeType;
|
retrieveTrackFormat(context, exportTestResult.filePath, C.TRACK_TYPE_VIDEO).sampleMimeType;
|
||||||
assertThat(actualMimeType).isEqualTo(MimeTypes.VIDEO_DOLBY_VISION);
|
assertThat(actualMimeType).isEqualTo(MimeTypes.VIDEO_DOLBY_VISION);
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package androidx.media3.transformer.mh;
|
package androidx.media3.transformer.mh;
|
||||||
|
|
||||||
|
import static androidx.media3.common.MimeTypes.VIDEO_DOLBY_VISION;
|
||||||
import static androidx.media3.common.MimeTypes.VIDEO_H265;
|
import static androidx.media3.common.MimeTypes.VIDEO_H265;
|
||||||
import static androidx.media3.common.util.Assertions.checkState;
|
import static androidx.media3.common.util.Assertions.checkState;
|
||||||
import static androidx.media3.test.utils.TestUtil.retrieveTrackFormat;
|
import static androidx.media3.test.utils.TestUtil.retrieveTrackFormat;
|
||||||
@ -164,14 +165,16 @@ public final class HdrEditingTest {
|
|||||||
new TransformerAndroidTestRunner.Builder(context, transformer)
|
new TransformerAndroidTestRunner.Builder(context, transformer)
|
||||||
.build()
|
.build()
|
||||||
.run(testId, mediaItem);
|
.run(testId, mediaItem);
|
||||||
assert exportTestResult.filePath != null;
|
|
||||||
@C.ColorTransfer
|
@C.ColorTransfer
|
||||||
int actualColorTransfer =
|
int actualColorTransfer =
|
||||||
Objects.requireNonNull(
|
retrieveTrackFormat(context, exportTestResult.filePath, C.TRACK_TYPE_VIDEO)
|
||||||
retrieveTrackFormat(context, exportTestResult.filePath, C.TRACK_TYPE_VIDEO)
|
.colorInfo
|
||||||
.colorInfo)
|
|
||||||
.colorTransfer;
|
.colorTransfer;
|
||||||
assertThat(actualColorTransfer).isEqualTo(C.COLOR_TRANSFER_HLG);
|
assertThat(actualColorTransfer).isEqualTo(C.COLOR_TRANSFER_HLG);
|
||||||
|
String actualMimeType =
|
||||||
|
retrieveTrackFormat(context, exportTestResult.filePath, C.TRACK_TYPE_VIDEO)
|
||||||
|
.sampleMimeType;
|
||||||
|
assertThat(actualMimeType).isEqualTo(VIDEO_DOLBY_VISION);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -259,12 +262,10 @@ public final class HdrEditingTest {
|
|||||||
new TransformerAndroidTestRunner.Builder(context, transformer)
|
new TransformerAndroidTestRunner.Builder(context, transformer)
|
||||||
.build()
|
.build()
|
||||||
.run(testId, editedMediaItem);
|
.run(testId, editedMediaItem);
|
||||||
assert exportTestResult.filePath != null;
|
|
||||||
@C.ColorTransfer
|
@C.ColorTransfer
|
||||||
int actualColorTransfer =
|
int actualColorTransfer =
|
||||||
Objects.requireNonNull(
|
retrieveTrackFormat(context, exportTestResult.filePath, C.TRACK_TYPE_VIDEO)
|
||||||
retrieveTrackFormat(context, exportTestResult.filePath, C.TRACK_TYPE_VIDEO)
|
.colorInfo
|
||||||
.colorInfo)
|
|
||||||
.colorTransfer;
|
.colorTransfer;
|
||||||
assertThat(actualColorTransfer).isEqualTo(C.COLOR_TRANSFER_HLG);
|
assertThat(actualColorTransfer).isEqualTo(C.COLOR_TRANSFER_HLG);
|
||||||
}
|
}
|
||||||
@ -402,7 +403,6 @@ public final class HdrEditingTest {
|
|||||||
throws Exception {
|
throws Exception {
|
||||||
Context context = ApplicationProvider.getApplicationContext();
|
Context context = ApplicationProvider.getApplicationContext();
|
||||||
Format format = MP4_ASSET_DOLBY_VISION_HDR_FORMAT;
|
Format format = MP4_ASSET_DOLBY_VISION_HDR_FORMAT;
|
||||||
assert format.colorInfo != null;
|
|
||||||
if (deviceSupportsHdrEditing(VIDEO_H265, format.colorInfo)) {
|
if (deviceSupportsHdrEditing(VIDEO_H265, format.colorInfo)) {
|
||||||
recordTestSkipped(context, testId, /* reason= */ "Device supports Dolby Vision editing.");
|
recordTestSkipped(context, testId, /* reason= */ "Device supports Dolby Vision editing.");
|
||||||
return;
|
return;
|
||||||
@ -442,12 +442,10 @@ public final class HdrEditingTest {
|
|||||||
.build()
|
.build()
|
||||||
.run(testId, editedMediaItem);
|
.run(testId, editedMediaItem);
|
||||||
assertThat(isToneMappingFallbackApplied.get()).isTrue();
|
assertThat(isToneMappingFallbackApplied.get()).isTrue();
|
||||||
assert exportTestResult.filePath != null;
|
|
||||||
@C.ColorTransfer
|
@C.ColorTransfer
|
||||||
int actualColorTransfer =
|
int actualColorTransfer =
|
||||||
Objects.requireNonNull(
|
retrieveTrackFormat(context, exportTestResult.filePath, C.TRACK_TYPE_VIDEO)
|
||||||
retrieveTrackFormat(context, exportTestResult.filePath, C.TRACK_TYPE_VIDEO)
|
.colorInfo
|
||||||
.colorInfo)
|
|
||||||
.colorTransfer;
|
.colorTransfer;
|
||||||
assertThat(actualColorTransfer).isEqualTo(C.COLOR_TRANSFER_SDR);
|
assertThat(actualColorTransfer).isEqualTo(C.COLOR_TRANSFER_SDR);
|
||||||
} catch (ExportException exception) {
|
} catch (ExportException exception) {
|
||||||
|
@ -111,8 +111,7 @@ import java.nio.ByteBuffer;
|
|||||||
if (isVideo) {
|
if (isVideo) {
|
||||||
mediaFormat = MediaFormat.createVideoFormat(sampleMimeType, format.width, format.height);
|
mediaFormat = MediaFormat.createVideoFormat(sampleMimeType, format.width, format.height);
|
||||||
MediaFormatUtil.maybeSetColorInfo(mediaFormat, format.colorInfo);
|
MediaFormatUtil.maybeSetColorInfo(mediaFormat, format.colorInfo);
|
||||||
if (sampleMimeType.equals(MimeTypes.VIDEO_DOLBY_VISION) &&
|
if (sampleMimeType.equals(MimeTypes.VIDEO_DOLBY_VISION) && SDK_INT >= 33) {
|
||||||
android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.TIRAMISU) {
|
|
||||||
mediaFormat.setInteger(MediaFormat.KEY_PROFILE, getDvProfile(format));
|
mediaFormat.setInteger(MediaFormat.KEY_PROFILE, getDvProfile(format));
|
||||||
mediaFormat.setInteger(MediaFormat.KEY_LEVEL, getDvLevel(format));
|
mediaFormat.setInteger(MediaFormat.KEY_LEVEL, getDvLevel(format));
|
||||||
}
|
}
|
||||||
@ -295,7 +294,7 @@ import java.nio.ByteBuffer;
|
|||||||
|
|
||||||
// Get Dolby Vision profile
|
// Get Dolby Vision profile
|
||||||
// Refer to https://professionalsupport.dolby.com/s/article/What-is-Dolby-Vision-Profile
|
// Refer to https://professionalsupport.dolby.com/s/article/What-is-Dolby-Vision-Profile
|
||||||
@RequiresApi(api = Build.VERSION_CODES.TIRAMISU)
|
@RequiresApi(33)
|
||||||
private static int getDvProfile(Format format) {
|
private static int getDvProfile(Format format) {
|
||||||
// Currently, only profile 8 is supported for encoding
|
// Currently, only profile 8 is supported for encoding
|
||||||
// TODO: set profile ID based on format.
|
// TODO: set profile ID based on format.
|
||||||
@ -304,7 +303,7 @@ import java.nio.ByteBuffer;
|
|||||||
|
|
||||||
// Get Dolby Vision level
|
// Get Dolby Vision level
|
||||||
// Refer to https://professionalsupport.dolby.com/s/article/What-is-Dolby-Vision-Profile
|
// Refer to https://professionalsupport.dolby.com/s/article/What-is-Dolby-Vision-Profile
|
||||||
@RequiresApi(api = Build.VERSION_CODES.TIRAMISU)
|
@RequiresApi(33)
|
||||||
private static int getDvLevel(Format format) {
|
private static int getDvLevel(Format format) {
|
||||||
int level = -1;
|
int level = -1;
|
||||||
int maxWidthHeight = Math.max(format.width, format.height);
|
int maxWidthHeight = Math.max(format.width, format.height);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user