[MPlayer-dev-eng] [PATCH] Theora in Matroska

Rich Felker dalias at aerifal.cx
Thu Sep 21 03:41:49 CEST 2006


On Thu, Sep 21, 2006 at 01:19:17AM +0400, Evgeniy Stepanov wrote:
> On Thursday 21 September 2006 01:02, Rich Felker wrote:
> > On Wed, Sep 20, 2006 at 10:43:19PM +0400, Evgeniy Stepanov wrote:
> > > On Wednesday 20 September 2006 22:35, Rich Felker wrote:
> > > > This is backwards and not allowed. The correct way is leaving them in
> > > > extradata. Passing them as regular packets will horribly break -ovc
> > > > copy and other things. Any patch that causes xiph-codec headers to be
> > > > sent as if they were data packets is automatically rejected.
> > >
> > > Then vd_theora is also broken. It reads header packets with
> > > ds_get_packet. And, probably, demux_ogg too, since it works with
> > > vd_theora :)
> > >
> > > fftheora in its current state won't parse headers from Matroska, it
> > > expects a different format. fftheora expects 3 packets each preceded by
> > > its length in bits (a 2-byte value) as a single block. Matroska codec
> > > private containes 3 packets in a Xiph lacing: <count-1>, coded packet
> > > sizes, packets.
> >
> > Maybe we should implement Michael's proposal then regardless of
> > whether the Xiph people want to adopt it. It should fix decoding of
> > all remotely sane packings of the headers...
> 
> I'm afraid I've never heard about it. Care to explain in more detail ?

The idea is that the decoder should just look for the startcodes of
the 3 packets and use their internal size information rather than
relying on the wrapping. This is 100% robust (can't give false
matches) on all the existing packings for vorbis. Dunno if the
situation for theora is as good or not.

Rich




More information about the MPlayer-dev-eng mailing list