[FFmpeg-devel] [PATCH] als in mov

Justin Ruggles justin.ruggles
Sun Nov 22 19:15:01 CET 2009


Baptiste Coudurier wrote:

> On 11/21/09 8:18 PM, Justin Ruggles wrote:
>> Justin Ruggles wrote:
>>
>>> Justin Ruggles wrote:
>>>
>>>> Baptiste Coudurier wrote:
>>>>
>>>>> On 11/21/09 7:19 PM, Justin Ruggles wrote:
>>>>>> Hi,
>>>>>>
>>>>>> This patch fixes muxing of MPEG-4 ALS in MOV.
>>>>>>
>>>>> Can this be verified with any other decoder than lavc ?
>>>>> Does reference decoder works ?
>>>> The reference decoder does not support mov.
> 
> So what's the use ?
> If there is no usage, I'm not sure muxing in .mov is worth.

Because mov supports mpeg-4 audio and als is mpeg-4 audio.

>>>>> Besides an object type to put in esds is needed, and which fourcc is used ?
>>>> 'mp4a', same as aac.  and the object type is also the same as aac and is
>>>> already in ff_mp4_obj_type[].
>>> oops... it's not in ff_mp4_obj_type[]. i was looking in the wrong tree.
>> and... patch attached.  now it's time for bed i think.
>>
>> -Justin
>>
>>
>>
>> mp4als_mov_4.patch
>>
>>
>> Index: libavformat/isom.c
>> ===================================================================
>> --- libavformat/isom.c	(revision 20571)
>> +++ libavformat/isom.c	(working copy)
>> @@ -32,6 +32,7 @@
>>       { CODEC_ID_MPEG4     , 0x20 },
>>       { CODEC_ID_H264      , 0x21 },
>>       { CODEC_ID_AAC       , 0x40 },
>> +    { CODEC_ID_MP4ALS    , 0x40 },
>>       { CODEC_ID_MPEG2VIDEO, 0x61 }, /* MPEG2 Main */
>>       { CODEC_ID_MPEG2VIDEO, 0x60 }, /* MPEG2 Simple */
>>       { CODEC_ID_MPEG2VIDEO, 0x62 }, /* MPEG2 SNR */
> 
> This hunk is ok anytime, and it will fix mp4 muxing, which is not 
> working either atm.

Ah, you're right. I was testing with the wrong tree. Applied.

>  > [...]
>  >
>> Index: libavformat/movenc.c
>> ===================================================================
>> --- libavformat/movenc.c	(revision 20571)
>> +++ libavformat/movenc.c	(working copy)
>> @@ -371,7 +371,8 @@
>>       put_tag(pb, "frma");
>>       put_le32(pb, track->tag);
>>
>> -    if (track->enc->codec_id == CODEC_ID_AAC) {
>> +    if (track->enc->codec_id == CODEC_ID_AAC ||
>> +        track->enc->codec_id == CODEC_ID_MP4ALS) {
> 
> I think codec_tag == AV_RL32("mp4a") is better here. This fourcc means 
> esds atom is required.

So do you agree or disagree with writing als in mov?

-Justin




More information about the ffmpeg-devel mailing list