[FFmpeg-devel] [PATCH]Allow to overwrite mov (audio) tags
Carl Eugen Hoyos
cehoyos at ag.or.at
Tue Jan 3 03:30:03 CET 2012
Hi!
Attached patch fixes ticket #867 for me, does not seems to break -acodec copy.
Please review, Carl Eugen
-------------- next part --------------
diff --git a/libavformat/isom.c b/libavformat/isom.c
index 7cadcef..73cc7d2 100644
--- a/libavformat/isom.c
+++ b/libavformat/isom.c
@@ -247,6 +247,18 @@ const AVCodecTag codec_movaudio_tags[] = {
{ CODEC_ID_MP3, 0x6D730055 },
{ CODEC_ID_NELLYMOSER, MKTAG('n', 'm', 'o', 's') }, /* Flash Media Server */
{ CODEC_ID_PCM_ALAW, MKTAG('a', 'l', 'a', 'w') },
+ { CODEC_ID_PCM_S16LE, MKTAG('l', 'p', 'c', 'm') },
+ { CODEC_ID_PCM_F32BE, MKTAG('l', 'p', 'c', 'm') },
+ { CODEC_ID_PCM_F32LE, MKTAG('l', 'p', 'c', 'm') },
+ { CODEC_ID_PCM_F64BE, MKTAG('l', 'p', 'c', 'm') },
+ { CODEC_ID_PCM_F64LE, MKTAG('l', 'p', 'c', 'm') },
+ { CODEC_ID_PCM_S16BE, MKTAG('l', 'p', 'c', 'm') },
+ { CODEC_ID_PCM_S24BE, MKTAG('l', 'p', 'c', 'm') },
+ { CODEC_ID_PCM_S24LE, MKTAG('l', 'p', 'c', 'm') },
+ { CODEC_ID_PCM_S32BE, MKTAG('l', 'p', 'c', 'm') },
+ { CODEC_ID_PCM_S32LE, MKTAG('l', 'p', 'c', 'm') },
+ { CODEC_ID_PCM_S8, MKTAG('l', 'p', 'c', 'm') },
+ { CODEC_ID_PCM_U8, MKTAG('l', 'p', 'c', 'm') },
{ CODEC_ID_PCM_F32BE, MKTAG('f', 'l', '3', '2') },
{ CODEC_ID_PCM_F32LE, MKTAG('f', 'l', '3', '2') },
{ CODEC_ID_PCM_F64BE, MKTAG('f', 'l', '6', '4') },
@@ -254,7 +266,6 @@ const AVCodecTag codec_movaudio_tags[] = {
{ CODEC_ID_PCM_MULAW, MKTAG('u', 'l', 'a', 'w') },
{ CODEC_ID_PCM_S16BE, MKTAG('t', 'w', 'o', 's') },
{ CODEC_ID_PCM_S16LE, MKTAG('s', 'o', 'w', 't') },
- { CODEC_ID_PCM_S16LE, MKTAG('l', 'p', 'c', 'm') },
{ CODEC_ID_PCM_S24BE, MKTAG('i', 'n', '2', '4') },
{ CODEC_ID_PCM_S24LE, MKTAG('i', 'n', '2', '4') },
{ CODEC_ID_PCM_S32BE, MKTAG('i', 'n', '3', '2') },
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index e5f0c4c..7815cd7 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -464,8 +464,6 @@ static int mov_write_audio_tag(AVIOContext *pb, MOVTrack *track)
uint32_t tag = track->tag;
if (track->mode == MODE_MOV) {
- if (mov_get_lpcm_flags(track->enc->codec_id))
- tag = AV_RL32("lpcm");
version = 2;
}
@@ -740,7 +738,11 @@ static int mov_get_codec_tag(AVFormatContext *s, MOVTrack *track)
"the file may be unplayable!\n");
}
} else if (track->enc->codec_type == AVMEDIA_TYPE_AUDIO) {
+ if (track->enc->codec_tag) {
+ tag = track->enc->codec_tag;
+ } else {
tag = ff_codec_get_tag(codec_movaudio_tags, track->enc->codec_id);
+ }
if (!tag) { // if no mac fcc found, try with Microsoft tags
int ms_tag = ff_codec_get_tag(ff_codec_wav_tags, track->enc->codec_id);
if (ms_tag) {
More information about the ffmpeg-devel
mailing list