[x264-devel] commit: Fix lavf input with delayed frames (golgol7777 )
git at videolan.org
git at videolan.org
Mon Aug 16 12:07:13 CEST 2010
x264 | branch: master | golgol7777 <golgol7777 at gmail.com> | Sat Aug 7 23:01:46 2010 -0700| [003a7f2864190774f9ccf78168ff58a442fae627] | committer: Jason Garrett-Glaser
Fix lavf input with delayed frames
> http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=003a7f2864190774f9ccf78168ff58a442fae627
---
input/lavf.c | 19 ++++++++++++-------
1 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/input/lavf.c b/input/lavf.c
index 52e890c..cadfd35 100644
--- a/input/lavf.c
+++ b/input/lavf.c
@@ -64,20 +64,25 @@ static int read_frame_internal( cli_pic_t *p_pic, lavf_hnd_t *h, int i_frame, vi
while( i_frame >= h->next_frame )
{
int finished = 0;
- while( !finished && av_read_frame( h->lavf, pkt ) >= 0 )
+ int ret = 0;
+ do
+ {
+ ret = av_read_frame( h->lavf, pkt );
+
if( pkt->stream_index == h->stream_id )
{
+ if( ret < 0 )
+ pkt->size = 0;
+
c->reordered_opaque = pkt->pts;
if( avcodec_decode_video2( c, &frame, &finished, pkt ) < 0 )
x264_cli_log( "lavf", X264_LOG_WARNING, "video decoding failed on frame %d\n", h->next_frame );
}
+ } while( !finished && ret >= 0 );
+
if( !finished )
- {
- if( avcodec_decode_video2( c, &frame, &finished, pkt ) < 0 )
- x264_cli_log( "lavf", X264_LOG_WARNING, "video decoding failed on frame %d\n", h->next_frame );
- if( !finished )
- return -1;
- }
+ return -1;
+
h->next_frame++;
}
More information about the x264-devel
mailing list