[XviD-devel] [BUG] dev-api-4 -- encoding loop

Edouard Gomez ed.gomez at free.fr
Tue Apr 29 01:02:49 CEST 2003


Hi pete,

in encoder.c from today's CVS (pseudo code) starting at L1041:

if(type specified in the feeded frame) {
    respect this choice and set it in encoder structure
} else {
    if((first GOP frame) or (frame distance > max GOP size)) {
        force IFrame
    } else {
        type = perform MEanalysis between ref and current;

        if(type == BFrame && (user did not requested dynamic bframes))
            type = PFrame;
    }
}

if(type != IFrame) {
    if(too many bframes in the queue) {
        we force type = PFrame; in order to respect max bframe setting
    } else {
        we force type = bframe;
    }
}

next instructions...

So what  if we have  MEanalysis that return  a PFrame and the  number of
bframes on the  queue is not at  its maximum ? I think  the encoder will
just force a bframe where MEanalysis  did find that a PFrame is a better
choice.

Is my code analysis false of de we have to remove the "else" part of the
"if(too many bframes in the queue)" condition ?

NB:  I spoted  this  bug while  looking  at the  uninitialized reads  in
     MEanalysis  reported by  valgrind. I  still don't  see  where those
     reads are produced and more important, why ? 

-- 
Edouard Gomez-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://edu.bnhof.de/pipermail/xvid-devel/attachments/20030429/53e65d3d/attachment.bin


More information about the XviD-devel mailing list