Merge "Derive PCM encoding from ExoPlayer's format" into rvc-dev am: 4695d593ee am: b15afb781a
Change-Id: I1a46650cc7eb3b3a74f7eb0825b8a01e5060086c
This commit is contained in:
@@ -1412,14 +1412,12 @@ public final class MediaParser {
|
|||||||
setOptionalMediaFormatInt(result, MediaFormat.KEY_HEIGHT, format.height);
|
setOptionalMediaFormatInt(result, MediaFormat.KEY_HEIGHT, format.height);
|
||||||
|
|
||||||
List<byte[]> initData = format.initializationData;
|
List<byte[]> initData = format.initializationData;
|
||||||
if (initData != null) {
|
|
||||||
for (int i = 0; i < initData.size(); i++) {
|
for (int i = 0; i < initData.size(); i++) {
|
||||||
result.setByteBuffer("csd-" + i, ByteBuffer.wrap(initData.get(i)));
|
result.setByteBuffer("csd-" + i, ByteBuffer.wrap(initData.get(i)));
|
||||||
}
|
}
|
||||||
}
|
setPcmEncoding(format, result);
|
||||||
setOptionalMediaFormatString(result, MediaFormat.KEY_LANGUAGE, format.language);
|
setOptionalMediaFormatString(result, MediaFormat.KEY_LANGUAGE, format.language);
|
||||||
setOptionalMediaFormatInt(result, MediaFormat.KEY_MAX_INPUT_SIZE, format.maxInputSize);
|
setOptionalMediaFormatInt(result, MediaFormat.KEY_MAX_INPUT_SIZE, format.maxInputSize);
|
||||||
setOptionalMediaFormatInt(result, MediaFormat.KEY_PCM_ENCODING, format.pcmEncoding);
|
|
||||||
setOptionalMediaFormatInt(result, MediaFormat.KEY_ROTATION, format.rotationDegrees);
|
setOptionalMediaFormatInt(result, MediaFormat.KEY_ROTATION, format.rotationDegrees);
|
||||||
setOptionalMediaFormatInt(result, MediaFormat.KEY_SAMPLE_RATE, format.sampleRate);
|
setOptionalMediaFormatInt(result, MediaFormat.KEY_SAMPLE_RATE, format.sampleRate);
|
||||||
setOptionalMediaFormatInt(
|
setOptionalMediaFormatInt(
|
||||||
@@ -1462,6 +1460,27 @@ public final class MediaParser {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void setPcmEncoding(Format format, MediaFormat result) {
|
||||||
|
int exoPcmEncoding = format.pcmEncoding;
|
||||||
|
setOptionalMediaFormatInt(result, "exo-pcm-encoding", format.pcmEncoding);
|
||||||
|
int mediaFormatPcmEncoding;
|
||||||
|
switch (exoPcmEncoding) {
|
||||||
|
case C.ENCODING_PCM_8BIT:
|
||||||
|
mediaFormatPcmEncoding = AudioFormat.ENCODING_PCM_8BIT;
|
||||||
|
break;
|
||||||
|
case C.ENCODING_PCM_16BIT:
|
||||||
|
mediaFormatPcmEncoding = AudioFormat.ENCODING_PCM_16BIT;
|
||||||
|
break;
|
||||||
|
case C.ENCODING_PCM_FLOAT:
|
||||||
|
mediaFormatPcmEncoding = AudioFormat.ENCODING_PCM_FLOAT;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
// No matching value. Do nothing.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
result.setInteger(MediaFormat.KEY_PCM_ENCODING, mediaFormatPcmEncoding);
|
||||||
|
}
|
||||||
|
|
||||||
private static void setOptionalMediaFormatInt(MediaFormat mediaFormat, String key, int value) {
|
private static void setOptionalMediaFormatInt(MediaFormat mediaFormat, String key, int value) {
|
||||||
if (value != Format.NO_VALUE) {
|
if (value != Format.NO_VALUE) {
|
||||||
mediaFormat.setInteger(key, value);
|
mediaFormat.setInteger(key, value);
|
||||||
|
|||||||
Reference in New Issue
Block a user