Commit f206e051 authored by Jean-Paul Saman's avatar Jean-Paul Saman

If too much frames have been dropped, then only decode I frames for a while...

If too much frames have been dropped, then only decode I frames for a while and see if you can catch up with decoding other frames as well.
parent b3fe4787
...@@ -468,15 +468,12 @@ picture_t *E_(DecodeVideo)( decoder_t *p_dec, block_t **pp_block ) ...@@ -468,15 +468,12 @@ picture_t *E_(DecodeVideo)( decoder_t *p_dec, block_t **pp_block )
b_drawpicture = 0; b_drawpicture = 0;
if( p_sys->i_late_frames < 8 ) if( p_sys->i_late_frames < 8 )
{ {
p_sys->p_context->skip_frame = p_sys->p_context->skip_frame = AVDISCARD_NONKEY;
(p_sys->i_skip_frame <= AVDISCARD_BIDIR) ?
AVDISCARD_BIDIR : p_sys->i_skip_frame;
} }
else else
{ {
/* picture too late, won't decode /* picture too late, won't decode
* but break picture until a new I, and for mpeg4 ...*/ * but break picture until a new I, and for mpeg4 ...*/
p_sys->p_context->skip_frame = AVDISCARD_NONKEY;
p_sys->i_late_frames--; /* needed else it will never be decrease */ p_sys->i_late_frames--; /* needed else it will never be decrease */
block_Release( p_block ); block_Release( p_block );
p_sys->i_buffer = 0; p_sys->i_buffer = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment