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

Alex Converse alex.converse
Mon Jan 24 00:55:25 CET 2011


2011/1/22 M?ns Rullg?rd <mans at mansr.com>:
> 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.
>

Updated patch attached
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Fix-ADPCM-MS-in-mov-muxing.patch
Type: text/x-patch
Size: 3266 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20110123/ce49c2da/attachment.bin>



More information about the ffmpeg-devel mailing list