diff options
author | Anton Khirnov <anton@khirnov.net> | 2016-03-27 14:25:31 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2016-03-30 09:13:09 +0200 |
commit | 69a638019fc0db4c2b75b36ef45d0acb6d2e9628 (patch) | |
tree | 56a72e636b1ec07e0ec0414e067c8a0b155bc788 | |
parent | 83f230c2445a94fdd94c66504482217fcece5909 (diff) | |
download | ffmpeg-69a638019fc0db4c2b75b36ef45d0acb6d2e9628.tar.gz |
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.
-rw-r--r-- | avconv.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -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; |