summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnshul Maheshwari <anshul.ffmpeg@gmail.com>2014-06-21 13:03:36 +0200
committerMichael Niedermayer <michaelni@gmx.at>2014-06-21 13:21:08 +0200
commit36393434782b013ebacc8c30dd3c93531e2b197d (patch)
tree67b6959f233e53d3eda8205e56d4d59982e7469f
parent97578f5f3b27278ad534db31f10c18f561cd7417 (diff)
downloadffmpeg-streaming-36393434782b013ebacc8c30dd3c93531e2b197d.zip
ffmpeg-streaming-36393434782b013ebacc8c30dd3c93531e2b197d.tar.gz
ffmpeg: fix memleak and corruption of AVSubtitle with multiple outputs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--ffmpeg.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ffmpeg.c b/ffmpeg.c
index 1af3e0e..9d9c4f4 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -805,6 +805,8 @@ static void do_subtitle_out(AVFormatContext *s,
if (output_files[ost->file_index]->start_time != AV_NOPTS_VALUE)
pts -= output_files[ost->file_index]->start_time;
for (i = 0; i < nb; i++) {
+ unsigned save_num_rects = sub->num_rects;
+
ost->sync_opts = av_rescale_q(pts, AV_TIME_BASE_Q, enc->time_base);
if (!check_recording_time(ost))
return;
@@ -821,6 +823,8 @@ static void do_subtitle_out(AVFormatContext *s,
subtitle_out_size = avcodec_encode_subtitle(enc, subtitle_out,
subtitle_out_max_size, sub);
+ if (i == 1)
+ sub->num_rects = save_num_rects;
if (subtitle_out_size < 0) {
av_log(NULL, AV_LOG_FATAL, "Subtitle encoding failed\n");
exit_program(1);
OpenPOWER on IntegriCloud