[FFmpeg-devel] [PATCH] Matroska Muxer
Michael Niedermayer
michaelni
Sun Aug 26 16:43:48 CEST 2007
Hi
On Sun, Aug 26, 2007 at 04:11:15PM +0200, Aurelien Jacobs wrote:
> On Fri, 24 Aug 2007 12:45:03 +0200
> Michael Niedermayer <michaelni at gmx.at> wrote:
>
> > Hi
> >
> > On Thu, Aug 23, 2007 at 08:47:24PM -0400, David Conrad wrote:
> > > On Aug 20, 2007, at 4:30 PM, David Conrad wrote:
> > >
> > >> On Aug 14, 2007, at 3:13 PM, Michael Niedermayer wrote:
> > >>
> > >>> Hi
> > >>>
> > >>> On Mon, Aug 13, 2007 at 08:38:25PM -0400, David Conrad wrote:
> > >>
> > >>>> +}
> > >>>> +
> > >>>> +/**
> > >>>> + * Calculate how many bytes are needed to represent a given size in
> > >>>> EBML
> > >>>> + */
> > >>>> +static int ebml_size_bytes(uint64_t size)
> > >>>> +{
> > >>>> + int bytes = 1;
> > >>>> + while ((size+1) >> bytes*7) bytes++;
> > >>>> + return bytes;
> > >>>> +}
> > >>>>
> > >>>
> > >>> isnt ebml_size_bytes and ebml_id_size the same if the IDs would be stored
> > >>> properly?
> > >>> i mean currently the #define *_ID_* is in encoded form while size of
> > >>> course
> > >>> cannot be, so if we would change the #defines to be in normal form then i
> > >>> think this could allow some simplifications, though i might be wrong ...
> > >>
> > >> I think this is possible, the only caveat is that if IDs with all ones are
> > >> ever used (they're currently reserved) then this won't work for them. I'll
> > >> send a patch changing the demuxer, then change the muxer.
> > >
> > > Another thing I realized is that I'm pretty sure that an ID of 0x81 is
> > > considered different from an ID of 0x4001, but they're the same number if
> > > not in ebml form. I don't think there are any IDs right now that this is an
> > > issue for.
> > >
> > > Another problem is that the IDs are stored in encoded form in the seek head
> > > as unsigned integers (thus they need to be read by ebml_read_uint(), and
> > > they're compared to the #defines. I can't come up with a clean way to
> > > handle that in matroska_parse_seekhead() that doesn't completely negate the
> > > simplification to the muxer.
> > >
> > > Attached is the current difference for doing this for the muxer and
> > > demuxer, comments?
> >
> > aurelian?
>
> First, it's not aurelian, it's aurelien (really it Aur?lien, but I tend
sorry that was unintended ...
> to prefer ASCII). Feel free to simply write aurel to avoid any mistake ;-)
i will, unless i forget ;)
>
> > are you ok with this, if not iam fine with leaving the code as
> > is and use the normal #defines in the muxer ...
>
> I liked your idea, but I dislike the hack needed to read seek_id.
> Moreover, all the #define *_ID_* are exactly what can be found in
> the Matroska specs. I think it's easier to maintain this way.
> So I prefer keeping the code as is.
ok
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Those who are too smart to engage in politics are punished by being
governed by those who are dumber. -- Plato
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20070826/79ab50b2/attachment.pgp>
More information about the ffmpeg-devel
mailing list