mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-23 19:49:56 +00:00
avfilter: do not leak frame if ff_get_audio_buffer() fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
parent
fd3df296c1
commit
142894d720
@ -192,8 +192,10 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
|
|||||||
return ff_filter_frame(ctx->outputs[0], frame);
|
return ff_filter_frame(ctx->outputs[0], frame);
|
||||||
|
|
||||||
out_frame = ff_get_audio_buffer(inlink, frame->nb_samples);
|
out_frame = ff_get_audio_buffer(inlink, frame->nb_samples);
|
||||||
if (!out_frame)
|
if (!out_frame) {
|
||||||
|
av_frame_free(&frame);
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
}
|
||||||
av_frame_copy_props(out_frame, frame);
|
av_frame_copy_props(out_frame, frame);
|
||||||
|
|
||||||
for (i = 0; i < s->nb_delays; i++) {
|
for (i = 0; i < s->nb_delays; i++) {
|
||||||
|
@ -279,8 +279,10 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
|
|||||||
out_frame = frame;
|
out_frame = frame;
|
||||||
} else {
|
} else {
|
||||||
out_frame = ff_get_audio_buffer(inlink, frame->nb_samples);
|
out_frame = ff_get_audio_buffer(inlink, frame->nb_samples);
|
||||||
if (!out_frame)
|
if (!out_frame) {
|
||||||
|
av_frame_free(&frame);
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
}
|
||||||
av_frame_copy_props(out_frame, frame);
|
av_frame_copy_props(out_frame, frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -401,8 +401,10 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
|
|||||||
out_buf = buf;
|
out_buf = buf;
|
||||||
} else {
|
} else {
|
||||||
out_buf = ff_get_audio_buffer(inlink, nb_samples);
|
out_buf = ff_get_audio_buffer(inlink, nb_samples);
|
||||||
if (!out_buf)
|
if (!out_buf) {
|
||||||
|
av_frame_free(&buf);
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
}
|
||||||
av_frame_copy_props(out_buf, buf);
|
av_frame_copy_props(out_buf, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -247,8 +247,10 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
|
|||||||
out_frame = frame;
|
out_frame = frame;
|
||||||
} else {
|
} else {
|
||||||
out_frame = ff_get_audio_buffer(inlink, frame->nb_samples);
|
out_frame = ff_get_audio_buffer(inlink, frame->nb_samples);
|
||||||
if (!out_frame)
|
if (!out_frame) {
|
||||||
|
av_frame_free(&frame);
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
}
|
||||||
av_frame_copy_props(out_frame, frame);
|
av_frame_copy_props(out_frame, frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user