[Ffmpeg-devel] On2 Flix Engine uses memcoder in commerical Flix Engine
Fri Apr 28 20:56:34 CEST 2006
On Fri, Apr 28, 2006 at 07:48:31PM +0100, M?ns Rullg?rd wrote:
> Steve Lhomme <steve.lhomme at free.fr> writes:
> > Rich Felker wrote:
> >> On Fri, Apr 28, 2006 at 06:17:39PM +0200, Steve Lhomme wrote:
> >>>> Matroska is overly complicated and bloated.
> >>> What do you find complicated ?
> >>> Given 3 developers wrote their own parser simply based on the one
> >>> HTML page of specs.
> >> And how many lines of code is their parser? It's fucking huge!!
> >> Even if it were simple, a parser is only a tiny part of a demuxer. The
> >> complicated part is the semantics.
> > Haali's splitter (used in the official DShow splitter and in TCPMP) is
> > smaller than the parser in FFMPEG and handles far more semantics and
> > codecs.
> That sentence alone is proof that matroska is a flawed format. A
> demuxer should not need any specific handling of different codecs
> beyond a simple table of codec identifiers.
> If you think lines of code are important, consider these line counts
> for a few demuxers I have written myself purely based on the specs:
> matroska 1808
> avi 1094
> ogg 1147
> mpeg ps 688
> mpeg ts 842
> The matroska demuxer handles only the basics (reading and seeking),
> and makes no attempts to recover from errors in the file. The others
> are complete with error recovery.
> I'm not claiming that my code is particularly efficient or well
> written, but I suspect that all code I write is of similar quality. I
> thus believe that the line counts may indicate something about the
> complexity of those formats.
libnut's demuxer is 1300 lines long, complete with just basic error
recovery... Though it aims at complete and percise seeking, for testing
the spec. Together with lavf's buffering and a somewhat simpler seeker, it
should be implementable in ~600 lines. lavf/nut.c is 1400 lines and is
both muxer and demuxer. (Though out of date)
More information about the ffmpeg-devel