From: Thibaut M. <tma...@no...> - 2004-01-07 16:47:03
|
James Stembridge wrote: >On Wed, 07 Jan 2004 16:21:57 +0100, "Thibaut Mattern" <tma...@no...> >said: > > >>first pb: >>frames are divided in fragments. each fragment can have a size > 8k, >>this size is not checked and each fragment is copied into one buffer. >> >> > >Ok. > > > >>second pb: >>the real binary wrapper has to reconstuct a list of the fragment offsets >>the decoder assumes that a fragment fits into a buffer, so you can't >>just split a big fragment into multiple buffers, you have to use some >>flags to make the decoder to recognize the end of each fragment (i've a >>patch but I don't like it). >> >> > >The ffmpeg decoder must do this also for RV10. You could use >decoder_info[] to signal start of a new fragment. > > yes, i've done a patch that uses decoder_info[0]=1 to signal the end of the fragment. if that's ok, let's do it this way. >>third pb: >>the demuxer do not set FRAME_FLAG_END >> >> > >Is this actually mandatory? It currently uses FRAME_FLAG_START instead. > > hmm, i guess it's mandatory from now ;) how do you detect properly the end of the last frame ? >>Proposed way to fix this: >>- send each fragment to the decoder, split them if necessary, set >>FRAME_START on the first. >>- construct the fragment offset list in the demuxer and send it the >>decoder after the last fragment. set FRAME_END on this buffer. >> >> > >I'm not sure I see the advantage of constructing it in the demuxer, does >matroska store the offset table in the file or something? > > yes.... >James. > > Thibaut |