From 69a638019fc0db4c2b75b36ef45d0acb6d2e9628 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sun, 27 Mar 2016 14:25:31 +0200 Subject: avconv: fix -frames for video For video, frame_number tracks the number of frames sent to the encoder. So it should be incremented when we submit a frame, not when we get a packet back. --- avconv.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'avconv.c') diff --git a/avconv.c b/avconv.c index 07c81fa2ad..2e199e3623 100644 --- a/avconv.c +++ b/avconv.c @@ -537,6 +537,12 @@ static void do_video_out(AVFormatContext *s, if (ret < 0) goto error; + /* + * For video, there may be reordering, so we can't throw away frames on + * encoder flush, we need to limit them here, before they go into encoder. + */ + ost->frame_number++; + while (1) { ret = avcodec_receive_packet(enc, &pkt); if (ret == AVERROR(EAGAIN)) @@ -554,12 +560,6 @@ static void do_video_out(AVFormatContext *s, } ost->sync_opts++; - /* - * For video, number of frames in == number of packets out. - * But there may be reordering, so we can't throw away frames on encoder - * flush, we need to limit them here, before they go into encoder. - */ - ost->frame_number++; } return; -- cgit v1.2.3