Fix incorrectly constructed Dirac parse units that caused A/V sync loss.
Fixes issue 694. patch by Anuradha Suraparaju, anuradha rd.bbc.co uk Originally committed as revision 16261 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:

committed by
Diego Biurrun

parent
c4ff7c53e0
commit
64bfc5845b
@@ -88,10 +88,12 @@ static int libdirac_decode_frame(AVCodecContext *avccontext,
|
||||
|
||||
*data_size = 0;
|
||||
|
||||
if (buf_size>0)
|
||||
if (buf_size>0) {
|
||||
/* set data to decode into buffer */
|
||||
dirac_buffer (p_dirac_params->p_decoder, buf, buf+buf_size);
|
||||
|
||||
if ((buf[4] &0x08) == 0x08 && (buf[4] & 0x03))
|
||||
avccontext->has_b_frames = 1;
|
||||
}
|
||||
while (1) {
|
||||
/* parse data and process result */
|
||||
DecoderState state = dirac_parse (p_dirac_params->p_decoder);
|
||||
|
Reference in New Issue
Block a user