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 | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/avconv.c b/avconv.c
index 087cc0c..00e50ee 100644
--- a/avconv.c
+++ b/avconv.c
@@ -537,6 +537,13 @@ static void do_video_out(AVFormatContext *s,
if (ret < 0)
goto error;
+ /*
+ * 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++;
+
while (1) {
ret = avcodec_receive_packet(enc, &pkt);
if (ret == AVERROR(EAGAIN))
@@ -554,12 +561,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;
--
2.0.0
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel