[XviD-devel] xvid bframe encoder question

Christoph Nägeli chn at kbw.ch
Fri Dec 26 16:06:11 CET 2003

Hi all,

I have a question about using the encoder with b-frames.

If I like to encode a movie, I set up the encoder and then give it 
frame by frame.
Let's say the encoder choses to encode following:
I B B P B B P ...

Then the first time I call xvid_encore(...), I got the I frame back.
The next time, the encoder stores the frame in the b-frame queue, right?

What if the encoder choses that my last frame is a b frame?
Then the frame get stuck in the bitstream and I have no data.

How can I get the data back?

And the following about decoding such a sequence:

For the pattern above, I get for my test sequence the following data 

frame 1: 22519 bytes
frame 2: 0 bytes
frame 3: 0 bytes
frame 4: 23035 bytes

with debugging information enabled, the following from the encoder (if 
this helps you answering my questions):
*** XXXXXX bf: head=0 tail=0   queue: head=1 tail=1 size=0
*** IFRAME bf: head=0 tail=0   queue: head=1 tail=1 size=0
*** BFRAME (store) bf: head=0 tail=0   queue: head=2 tail=2 size=0  
*** BFRAME (store) bf: head=0 tail=1   queue: head=3 tail=3 size=0  
*** XXXXXX bf: head=0 tail=2   queue: head=4 tail=4 size=0
*** PFRAME bf: head=0 tail=2   queue: head=4 tail=4 size=0

decoding this, (please correct my if something's wrong):
If I like to decode the first frame, then I give it the 22519 bytes to 
the decoder.
And what if I like to decode the second frame? I got no data from this 

Any help would be appreciated.

More information about the XviD-devel mailing list