mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Pass the dataType to MediaItemInfo for Transformer
From the `sampleMimeType`, we can know whether the media item contains video data, image data, and audio data. This is done for input media items, and the output media item. PiperOrigin-RevId: 723459732
This commit is contained in:
parent
449b81d510
commit
bcce7b5949
@ -32,6 +32,7 @@ import androidx.annotation.RequiresApi;
|
||||
import androidx.media3.common.C;
|
||||
import androidx.media3.common.ColorInfo;
|
||||
import androidx.media3.common.Format;
|
||||
import androidx.media3.common.MimeTypes;
|
||||
import androidx.media3.common.util.SystemClock;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import java.util.ArrayList;
|
||||
@ -269,6 +270,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
}
|
||||
if (videoFormat.sampleMimeType != null) {
|
||||
mediaItemInfoBuilder.addSampleMimeType(videoFormat.sampleMimeType);
|
||||
mediaItemInfoBuilder.addDataType(getDataTypes(videoFormat.sampleMimeType));
|
||||
}
|
||||
if (videoFormat.frameRate != Format.NO_VALUE) {
|
||||
mediaItemInfoBuilder.setVideoFrameRate(videoFormat.frameRate);
|
||||
@ -290,6 +292,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
if (audioFormat != null) {
|
||||
if (audioFormat.sampleMimeType != null) {
|
||||
mediaItemInfoBuilder.addSampleMimeType(audioFormat.sampleMimeType);
|
||||
mediaItemInfoBuilder.addDataType(getDataTypes(audioFormat.sampleMimeType));
|
||||
}
|
||||
if (audioFormat.channelCount != Format.NO_VALUE) {
|
||||
mediaItemInfoBuilder.setAudioChannelCount(audioFormat.channelCount);
|
||||
@ -310,9 +313,11 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
}
|
||||
if (exportResult.audioMimeType != null) {
|
||||
mediaItemInfoBuilder.addSampleMimeType(exportResult.audioMimeType);
|
||||
mediaItemInfoBuilder.addDataType(getDataTypes(exportResult.audioMimeType));
|
||||
}
|
||||
if (exportResult.videoMimeType != null) {
|
||||
mediaItemInfoBuilder.addSampleMimeType(exportResult.videoMimeType);
|
||||
mediaItemInfoBuilder.addDataType(getDataTypes(exportResult.videoMimeType));
|
||||
}
|
||||
if (exportResult.channelCount != C.LENGTH_UNSET) {
|
||||
mediaItemInfoBuilder.setAudioChannelCount(exportResult.channelCount);
|
||||
@ -342,6 +347,20 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
return mediaItemInfoBuilder.build();
|
||||
}
|
||||
|
||||
private static long getDataTypes(@Nullable String sampleMimeType) {
|
||||
long dataTypes = 0L;
|
||||
if (MimeTypes.isAudio(sampleMimeType)) {
|
||||
dataTypes |= MediaItemInfo.DATA_TYPE_AUDIO;
|
||||
}
|
||||
if (MimeTypes.isVideo(sampleMimeType)) {
|
||||
dataTypes |= MediaItemInfo.DATA_TYPE_VIDEO;
|
||||
}
|
||||
if (MimeTypes.isImage(sampleMimeType)) {
|
||||
dataTypes |= MediaItemInfo.DATA_TYPE_IMAGE;
|
||||
}
|
||||
return dataTypes;
|
||||
}
|
||||
|
||||
private static int getVideoDataSpace(ColorInfo colorInfo) {
|
||||
int colorStandard =
|
||||
DATA_SPACE_STANDARD_CONVERSION_MAP.get(
|
||||
|
Loading…
x
Reference in New Issue
Block a user