diff options
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/formats.c | 6 | ||||
-rw-r--r-- | libavfilter/vf_pad.c | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/libavfilter/formats.c b/libavfilter/formats.c index 49977c51fd..8109872ad9 100644 --- a/libavfilter/formats.c +++ b/libavfilter/formats.c @@ -45,7 +45,11 @@ AVFilterFormats *avfilter_merge_formats(AVFilterFormats *a, AVFilterFormats *b) AVFilterFormats *ret; unsigned i, j, k = 0; - if (a == b) return a; + if (a == b) + return a; + + if (a == b) + return a; ret = av_mallocz(sizeof(AVFilterFormats)); diff --git a/libavfilter/vf_pad.c b/libavfilter/vf_pad.c index 3cb8e93be2..1e5c042cb9 100644 --- a/libavfilter/vf_pad.c +++ b/libavfilter/vf_pad.c @@ -299,6 +299,7 @@ static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref) { PadContext *pad = inlink->dst->priv; AVFilterBufferRef *outpicref = avfilter_ref_buffer(inpicref, ~0); + AVFilterBufferRef *for_next_filter; int plane; for (plane = 0; plane < 4 && outpicref->data[plane]; plane++) { @@ -335,12 +336,14 @@ static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref) outpicref->video->w = pad->w; outpicref->video->h = pad->h; - avfilter_start_frame(inlink->dst->outputs[0], outpicref); + for_next_filter = avfilter_ref_buffer(outpicref, ~0); + avfilter_start_frame(inlink->dst->outputs[0], for_next_filter); } static void end_frame(AVFilterLink *link) { avfilter_end_frame(link->dst->outputs[0]); + avfilter_unref_buffer(link->dst->outputs[0]->out_buf); avfilter_unref_buffer(link->cur_buf); } |