Refactor get editable track types from map logic
The new method will be reused when Mp4Extractor need to parse this metadata. PiperOrigin-RevId: 658372567
This commit is contained in:
parent
34d3dc926d
commit
bd399eb601
@ -24,8 +24,11 @@ import androidx.media3.common.Metadata;
|
|||||||
import androidx.media3.common.util.ParsableByteArray;
|
import androidx.media3.common.util.ParsableByteArray;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
import androidx.media3.common.util.UnstableApi;
|
||||||
import androidx.media3.common.util.Util;
|
import androidx.media3.common.util.Util;
|
||||||
|
import com.google.common.base.Joiner;
|
||||||
import com.google.common.primitives.Ints;
|
import com.google.common.primitives.Ints;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stores extensible metadata with handler type 'mdta'. See also the QuickTime File Format
|
* Stores extensible metadata with handler type 'mdta'. See also the QuickTime File Format
|
||||||
@ -202,16 +205,20 @@ public final class MdtaMetadataEntry implements Metadata.Entry {
|
|||||||
};
|
};
|
||||||
|
|
||||||
private static String getFormattedValueForEditableTracksMap(byte[] value) {
|
private static String getFormattedValueForEditableTracksMap(byte[] value) {
|
||||||
// Value has 1 byte version, 1 byte track count, n bytes track types.
|
|
||||||
int numberOfTracks = value[1];
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
sb.append("track types = ");
|
sb.append("track types = ");
|
||||||
for (int i = 0; i < numberOfTracks; i++) {
|
List<Integer> trackTypes = getEditableTrackTypesFromMap(value);
|
||||||
sb.append(value[i + 2]);
|
Joiner.on(',').appendTo(sb, trackTypes);
|
||||||
if (i < numberOfTracks - 1) {
|
|
||||||
sb.append(", ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static List<Integer> getEditableTrackTypesFromMap(byte[] value) {
|
||||||
|
// Value has 1 byte version, 1 byte track count, n bytes track types.
|
||||||
|
int numberOfTracks = value[1];
|
||||||
|
List<Integer> trackTypes = new ArrayList<>();
|
||||||
|
for (int i = 0; i < numberOfTracks; i++) {
|
||||||
|
trackTypes.add((int) value[i + 2]);
|
||||||
|
}
|
||||||
|
return trackTypes;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ track 0:
|
|||||||
colorRange = 1
|
colorRange = 1
|
||||||
lumaBitdepth = 8
|
lumaBitdepth = 8
|
||||||
chromaBitdepth = 8
|
chromaBitdepth = 8
|
||||||
metadata = entries=[mdta: key=editable.tracks.map, value=track types = 0, 1, Mp4Timestamp: creation time=1000000, modification time=5000000, timescale=10000]
|
metadata = entries=[mdta: key=editable.tracks.map, value=track types = 0,1, Mp4Timestamp: creation time=1000000, modification time=5000000, timescale=10000]
|
||||||
initializationData:
|
initializationData:
|
||||||
data = length 28, hash 410B510
|
data = length 28, hash 410B510
|
||||||
data = length 9, hash FBADD682
|
data = length 9, hash FBADD682
|
||||||
@ -60,7 +60,7 @@ track 1:
|
|||||||
colorRange = 1
|
colorRange = 1
|
||||||
lumaBitdepth = 8
|
lumaBitdepth = 8
|
||||||
chromaBitdepth = 8
|
chromaBitdepth = 8
|
||||||
metadata = entries=[mdta: key=editable.tracks.map, value=track types = 0, 1, Mp4Timestamp: creation time=1000000, modification time=5000000, timescale=10000]
|
metadata = entries=[mdta: key=editable.tracks.map, value=track types = 0,1, Mp4Timestamp: creation time=1000000, modification time=5000000, timescale=10000]
|
||||||
initializationData:
|
initializationData:
|
||||||
data = length 28, hash 410B510
|
data = length 28, hash 410B510
|
||||||
data = length 9, hash FBADD682
|
data = length 9, hash FBADD682
|
||||||
|
Loading…
x
Reference in New Issue
Block a user