[Ffmpeg-cvslog] Re: r8212 - trunk/libavformat/movenc.c

Mike Matsnev mike
Sun Mar 4 23:10:00 CET 2007


Alex Beregszaszi wrote:
>>>>>> -    put_be16(pb, track->mode == MODE_MOV ? track->enc->channels : 2); /* Number of channels */
>>>>>> -    /* FIXME 8 bit for 'raw ' in mov */
>>>>>> -    put_be16(pb, 16); /* Reserved */
>>>>>> +    if (track->mode == MODE_MOV) {
>>>>>> +        put_be16(pb, track->enc->channels);
>>>>>> +        put_be16(pb, 16); /* FIXME 8 bit for 'raw ' in mov */
>>>>>> +        put_be16(pb, track->audio_vbr ? -2 : 0); /* compression ID */
>>>>>> +    } else { /* reserved for mp4/3gp */
>>>>>> +        put_be16(pb, 2);
>>>>> I think this should be changed to track->enc->channels and the next
>>>>> field to track->enc->bits_per_sample.
>>>> NO !!! these fields are reserved for mp4/3gp.
>>> Reserved to be set to 2 or zero? If the former, what happens in a mono
>>> 3gp file? Thats just plain broken.
>> That's ISO specs period. ISO media is derivated from and NOT mov that's
>> all.
>>
>> Reserved to be 2. I already spent some time looking at specs.
>> Information is somewhere else, like in decoder specific atom (esds, or damr)
> 
> This design is similar to Matroska. Hide everything in per-format
> extradata headers. Based on that ISO likes such crap, Matroska has a
> shiny future.
I suppose you didn't even bother looking at Matroska specs. Matroska headers
include as much information as possible, and they are used in real files.
Most demuxers won't even recognize a track without channel count specified
in the header. Get your facts straight before spreading FUD.





More information about the ffmpeg-cvslog mailing list