summaryrefslogtreecommitdiff
path: root/fftools/ffmpeg_mux.c
diff options
context:
space:
mode:
Diffstat (limited to 'fftools/ffmpeg_mux.c')
-rw-r--r--fftools/ffmpeg_mux.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/fftools/ffmpeg_mux.c b/fftools/ffmpeg_mux.c
index 30764e22d1..dffc1410c8 100644
--- a/fftools/ffmpeg_mux.c
+++ b/fftools/ffmpeg_mux.c
@@ -64,6 +64,7 @@ static int write_packet(Muxer *mux, OutputStream *ost, AVPacket *pkt)
AVFormatContext *s = mux->fc;
AVStream *st = ost->st;
int64_t fs;
+ uint64_t frame_num;
int ret;
fs = filesize(s->pb);
@@ -128,7 +129,7 @@ static int write_packet(Muxer *mux, OutputStream *ost, AVPacket *pkt)
ms->last_mux_dts = pkt->dts;
ost->data_size_mux += pkt->size;
- atomic_fetch_add(&ost->packets_written, 1);
+ frame_num = atomic_fetch_add(&ost->packets_written, 1);
pkt->stream_index = ost->index;
@@ -143,6 +144,9 @@ static int write_packet(Muxer *mux, OutputStream *ost, AVPacket *pkt)
);
}
+ if (ms->stats.io)
+ enc_stats_write(ost, &ms->stats, NULL, pkt, frame_num);
+
ret = av_interleaved_write_frame(s, pkt);
if (ret < 0) {
print_error("av_interleaved_write_frame()", ret);
@@ -688,6 +692,10 @@ static void ost_free(OutputStream **post)
av_freep(&ost->enc_stats_post.components[i].str);
av_freep(&ost->enc_stats_post.components);
+ for (int i = 0; i < ms->stats.nb_components; i++)
+ av_freep(&ms->stats.components[i].str);
+ av_freep(&ms->stats.components);
+
av_freep(post);
}