[FFmpeg-devel] [PATCH] Fix ADPCM MS in mov muxing

Måns Rullgård mans
Sat Jan 22 22:03:02 CET 2011


Alex Converse <alex.converse at gmail.com> writes:

> 2011/1/22 M?ns Rullg?rd <mans at mansr.com>:
>> Alex Converse <alex.converse at gmail.com> writes:
>>
>>> ---
>>> ?libavformat/movenc.c | ? 13 ++++++++++++-
>>> ?1 files changed, 12 insertions(+), 1 deletions(-)
>>>
>>>
>>> diff --git a/libavformat/movenc.c b/libavformat/movenc.c
>>> index 5230938..a464238 100644
>>> --- a/libavformat/movenc.c
>>> +++ b/libavformat/movenc.c
>>> @@ -339,6 +339,13 @@ static int mov_write_wave_tag(ByteIOContext *pb, MOVTrack *track)
>>> ? ? ? ? ?mov_write_ac3_tag(pb, track);
>>> ? ? ?} else if (track->enc->codec_id == CODEC_ID_ALAC) {
>>> ? ? ? ? ?mov_write_extradata_tag(pb, track);
>>> + ? ?} else if (track->enc->codec_id == CODEC_ID_ADPCM_MS) {
>>> + ? ? ? ?int64_t pos = url_ftell(pb);
>>> + ? ? ? ?put_be32(pb, 0);
>>> + ? ? ? ?put_le32(pb, track->tag); // store it byteswapped
>>> + ? ? ? ?track->enc->codec_tag = ((track->tag >> 8) & 0xFF00) + ((track->tag >> 24) & 0xFF);
>>
>> av_bswap16(track->tag >> 16) would be easier to understand at a glance.
>>
>
> Thanks that's what I was looking for
>
>>> + ? ? ? ?ff_put_wav_header(pb, track->enc);
>>> + ? ? ? ?updateSize(pb, pos);
>>> ? ? ?}
>>>
>>> ? ? ?put_be32(pb, 8); ? ? /* size */
>> [...]
>>> @@ -2108,6 +2118,7 @@ static int mov_write_header(AVFormatContext *s)
>>> ? ? ? ? ? ? ?if(!st->codec->frame_size && !av_get_bits_per_sample(st->codec->codec_id)) {
>>> ? ? ? ? ? ? ? ? ?av_log(s, AV_LOG_ERROR, "track %d: codec frame size is not set\n", i);
>>> ? ? ? ? ? ? ? ? ?goto error;
>>> + ? ? ? ? ? ?}else if(st->codec->codec_id == CODEC_ID_ADPCM_MS) {
>>> ? ? ? ? ? ? ?}else if(st->codec->frame_size > 1){ /* assume compressed audio */
>>> ? ? ? ? ? ? ? ? ?track->audio_vbr = 1;
>>> ? ? ? ? ? ? ?}else{
>>
>> This looks a bit odd.
>>
>
> It means it's not either of the cases below. If it turns out that
> other ACM codecs need to be muxed like MS ADPCM we could set a flag
> there.

Makes sense.

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-devel mailing list