[FFmpeg-cvslog] ffmpeg: Allocate (In|Out)putStream.filter_frame early
James Almer
git at videolan.org
Fri Nov 19 16:30:24 EET 2021
ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Sun Nov 14 22:05:55 2021 -0300| [ee3d6a20f6e11be23f3b75924d8a853b1af241f6] | committer: James Almer
ffmpeg: Allocate (In|Out)putStream.filter_frame early
Based on a commit by Andreas Rheinhardt.
Signed-off-by: James Almer <jamrial at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ee3d6a20f6e11be23f3b75924d8a853b1af241f6
---
fftools/ffmpeg.c | 7 -------
fftools/ffmpeg_opt.c | 8 ++++++++
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index 7dfcfc13f5..5a0e95bf23 100644
--- a/fftools/ffmpeg.c
+++ b/fftools/ffmpeg.c
@@ -1533,9 +1533,6 @@ static int reap_filters(int flush)
if (av_buffersink_get_type(filter) == AVMEDIA_TYPE_AUDIO)
init_output_stream_wrapper(ost, NULL, 1);
- if (!ost->filtered_frame && !(ost->filtered_frame = av_frame_alloc())) {
- return AVERROR(ENOMEM);
- }
filtered_frame = ost->filtered_frame;
while (1) {
@@ -2342,8 +2339,6 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output,
if (!ist->decoded_frame && !(ist->decoded_frame = av_frame_alloc()))
return AVERROR(ENOMEM);
- if (!ist->filter_frame && !(ist->filter_frame = av_frame_alloc()))
- return AVERROR(ENOMEM);
decoded_frame = ist->decoded_frame;
update_benchmark(NULL);
@@ -2415,8 +2410,6 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output, int64_
if (!ist->decoded_frame && !(ist->decoded_frame = av_frame_alloc()))
return AVERROR(ENOMEM);
- if (!ist->filter_frame && !(ist->filter_frame = av_frame_alloc()))
- return AVERROR(ENOMEM);
decoded_frame = ist->decoded_frame;
if (ist->dts != AV_NOPTS_VALUE)
dts = av_rescale_q(ist->dts, AV_TIME_BASE_Q, ist->st->time_base);
diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c
index b423d0e59c..f1fc4f742d 100644
--- a/fftools/ffmpeg_opt.c
+++ b/fftools/ffmpeg_opt.c
@@ -889,6 +889,10 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
exit_program(1);
}
+ ist->filter_frame = av_frame_alloc();
+ if (!ist->filter_frame)
+ exit_program(1);
+
ist->pkt = av_packet_alloc();
if (!ist->pkt)
exit_program(1);
@@ -1521,6 +1525,10 @@ static OutputStream *new_output_stream(OptionsContext *o, AVFormatContext *oc, e
exit_program(1);
}
+ ost->filtered_frame = av_frame_alloc();
+ if (!ost->filtered_frame)
+ exit_program(1);
+
ost->pkt = av_packet_alloc();
if (!ost->pkt)
exit_program(1);
More information about the ffmpeg-cvslog
mailing list