From: Thibaut M. <tma...@no...> - 2004-01-08 11:17:50
|
Hi James, > On Wed, 07 Jan 2004 18:19:36 +0100, "Thibaut Mattern" <tma...@no...> said: > > ok. > > is it ok to send the fragment offset table in a buffer, after the last > > fragment and with the FRAME_END flag ? > > or do you have a better idea ? > > Yes I think this is a fine way of doing things. I've modified the libreal decoder. The xine decoder use the following frame format: fragment fragment ... fragment fragment offset table number of fragment - 1 The first must have the FRAME_START flag, the last buffer must have the FRAME_END flag. The frame can be splitted into any number of buffers, one buffer if ok (FRAME_START + FRAME_END flags). It's not needed to copy the frament offset table into a separate buffer. The last byte of the frame is the (number of fragment - 1), and it's used by the decoder to compute the size of the fragment offset table. The fragment offset table is the real .so decoder format, so you can pass a pointer to it to the lib. > > > my only mkv test stream with a RV40 video track contains some fragments > > >8k (matrix trailer available on matroska website) > > Speaking of RV40 you'll see some code in the libreal decoder for skipping > certain fragments which was necessary to get certain streams to playback > correctly. I wonder if the matroska tools drop these fragments when > reading real files. The mkv matrix trailer works perfectly without dropping anything. So i think the fragment dropping job is more a demuxer job. Another problem: the frame duration there is some code to guess the frame duration using pts in the libreal decoder, i guess this is here because the real demuxer does'nt know the frame duration. I think this code should be in the Real, the mkv demux provide the frame duration. You can find the same frame duration guessing code in the ASF demuxer. > James. If you're ok with the frame format and with moving the fragment dropping code and the frame duration guessing code to the real demuxer, i will commit my decoder changes tonight. cheers, Thibaut |