[FFmpeg-devel] [PATCH] attachments support in matroska demuxer
Mon Jan 21 02:24:40 CET 2008
Michael Niedermayer wrote:
> On Sun, Jan 20, 2008 at 04:43:05PM +0100, Baptiste Coudurier wrote:
>> Michael Niedermayer wrote:
>>> On Sun, Jan 20, 2008 at 10:10:50AM +0100, Reimar D?ffinger wrote:
>>>> On Sun, Jan 20, 2008 at 03:42:09AM +0100, Michael Niedermayer wrote:
>>>>>>> iam against some undocumented char *type
>>>>>>> please document precissely what it repressents and how it differs from
>>>>>>> codec_tag, stream_codec_tag and codec_id
>>>>>>> or even better get rid of it and use codec_tag or explain why the type
>>>>>>> here should be special cased relative to these funny codec id strings in
>>>>>> Currently, *type stores the standard mime type of the attachment.
>>>>> so it idetifies what the attachment is ...
>>>>> thats what codec_tag does alraedy ...
>>>> Sorry to be so flameish, but no, maybe codec_id does that, but codec_tag
>>>> certainly does not. E.g. for mp4 files all kind of audio has mp4a as
>>>> codec_tag and some other things like that.
>>> the mp4 demuxer is buggy, it intentionally violates the API as baptiste doesnt
>>> agree with the API. And choose to set codec_tag to something else than what
>>> it is supposed to be
>> We already discussed this issue, it is unclear in mp4 if codec_tag is
>> 'stsd' tag or 'esds' objecttype id.
> no it is not unclear
> let me quote from ISO/IEC 14496-12
> C.5 Storage of new media types
> There are two choices in the definition of how a new media type should be stored.
> First, if MPEG-4 systems constructs are desired or acceptable, then:
> a) a new ObjectTypeIndication should be requested and used;
> b) the decoderspecificinformation for this codec should be defined as an MPEG-4 descriptor;
> c) the access unit format should be defined for this media.
> The media then uses the MPEG-4 code-points in the file format; for example, a new video codec would use a
> sampleentry of type "mp4v".
> If the MPEG-4 systems layer is not suitable or otherwise not desired, then:
> a) a new sampleentry four-character code should be requested and used;
> b) any additional information needed by the decoder should be defined as boxes to be stored within
> the sampleentry;
> c) the file-format sample format should be defined for this media.
> Note that in the second case, the registration authority will also allocate an objecttypeindication for use in
> MPEG-4 systems.
> Thus unless i misunderstand it. If its .mp4 stsd contains "mp4v/a/t/s" and the
> codec identifer is somewhere else
> If its not a mp4 based container, stsd is used
Even when using MPEG-4 brands (mp41,mp42), h.264 can use 'avc1' in stsd,
so this just becomes untrue, that is if its .mp4 stsd can contain
something else than "mp4v/a/t/s". This is exactly what is unclear, and
maybe some other codecs allow that (thinking of jpeg2k).
What sould be true is "if stsd contains "mp4v/a/t/s", objecttype id is
used to define the codec.
Problem is what to do when user set codec_tag and use mp4 muxer ? We set
objecttype id or/and stsd tag ?
>> Now mp3on4 use same object type id
>> as aac, so in that case it won't work anyway.
> What wont work? Yes both mp3on4 and aac would have the same codec_tag but
> thats just what is stored in the file (and it violates the spec) the stsd
> of them doesnt differ either or?
It doesn't differ, what won't work is differentiating mp3on4 from aac
based on codec_tag, and therefore being able to identify codec based on
>> I would agree to set codec_tag to 'esds' objecttype id if mp4 muxer is
>> modified to correctly handle it in case of stream copy,
> just change the muxer as well ...
>> and still where
>> is codec_tag supposed to be put in mp4 ? 'stsd' tag or objecttype id in
>> 'esds' ? We are creating 'isom' brand mp4.
> see the spec, stsd is mp4v/mp4a if not its not mp4
See my previous reply.
Baptiste COUDURIER GnuPG Key Id: 0x5C1ABAAA
SMARTJOG S.A. http://www.smartjog.com
Key fingerprint 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
Phone: +33 1 49966312
More information about the ffmpeg-devel