summaryrefslogtreecommitdiff
path: root/libavformat/isom.c
diff options
context:
space:
mode:
authorMark Himsley <mark@mdsh.com>2013-11-01 11:22:53 +0000
committerVittorio Giovara <vittorio.giovara@gmail.com>2014-03-09 18:09:39 +0100
commit360022bd3b894cc01ea112b275fa4c8f53881808 (patch)
tree6381d53690d423d3d2b822d86247f534be5adb57 /libavformat/isom.c
parentdb32f14c3dfd75290b57a086183d6577457beac4 (diff)
isom: lpcm in mov default to big endian
It is my understanding that "Unless otherwise stated, all data in a QuickTime movie is stored in big-endian byte ordering" [1] in MOV files. I have a couple of thousand files, which technically are invalid because their sound sample description element 4CC is 'lpcm' but its version is 0 - and "Version 0 supports only uncompressed audio in raw ('raw ') or twos-complement ('twos') format" [2] Because isom.c only contains a mapping for 4CC 'lpcm' to AV_CODEC_ID_PCM_S16LE, these files have their audio decoded as LE when it is actually BE. This commit adds AV_CODEC_ID_PCM_S16BE as the first match for 4CC 'lpcm'. [1] https://developer.apple.com/library/mac/documentation/quicktime/QTFF/qtff.pdf page 21 [2] https://developer.apple.com/library/mac/documentation/quicktime/QTFF/qtff.pdf page 178 Reviewed-by: Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>
Diffstat (limited to 'libavformat/isom.c')
-rw-r--r--libavformat/isom.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libavformat/isom.c b/libavformat/isom.c
index 22f413f655..d33d93ac56 100644
--- a/libavformat/isom.c
+++ b/libavformat/isom.c
@@ -270,6 +270,7 @@ const AVCodecTag ff_codec_movaudio_tags[] = {
{ AV_CODEC_ID_PCM_MULAW, MKTAG('u', 'l', 'a', 'w') },
{ AV_CODEC_ID_PCM_S16BE, MKTAG('t', 'w', 'o', 's') },
{ AV_CODEC_ID_PCM_S16LE, MKTAG('s', 'o', 'w', 't') },
+ { AV_CODEC_ID_PCM_S16BE, MKTAG('l', 'p', 'c', 'm') },
{ AV_CODEC_ID_PCM_S16LE, MKTAG('l', 'p', 'c', 'm') },
{ AV_CODEC_ID_PCM_S24BE, MKTAG('i', 'n', '2', '4') },
{ AV_CODEC_ID_PCM_S24LE, MKTAG('i', 'n', '2', '4') },