diff options
Diffstat (limited to 'libavfilter/split.c')
-rw-r--r-- | libavfilter/split.c | 34 |
1 files changed, 15 insertions, 19 deletions
diff --git a/libavfilter/split.c b/libavfilter/split.c index 16d0bb3862..3e6a60f0dc 100644 --- a/libavfilter/split.c +++ b/libavfilter/split.c @@ -1,20 +1,20 @@ /* * Copyright (c) 2007 Bobby Bingham * - * This file is part of Libav. + * This file is part of FFmpeg. * - * Libav is free software; you can redistribute it and/or + * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * - * Libav is distributed in the hope that it will be useful, + * FFmpeg is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with Libav; if not, write to the Free Software + * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ @@ -69,10 +69,14 @@ static void split_uninit(AVFilterContext *ctx) static int filter_frame(AVFilterLink *inlink, AVFrame *frame) { AVFilterContext *ctx = inlink->dst; - int i, ret = 0; + int i, ret = AVERROR_EOF; for (i = 0; i < ctx->nb_outputs; i++) { - AVFrame *buf_out = av_frame_clone(frame); + AVFrame *buf_out; + + if (ctx->outputs[i]->closed) + continue; + buf_out = av_frame_clone(frame); if (!buf_out) { ret = AVERROR(ENOMEM); break; @@ -89,23 +93,15 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) #define OFFSET(x) offsetof(SplitContext, x) #define FLAGS AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_VIDEO_PARAM static const AVOption options[] = { - { "outputs", "Number of outputs", OFFSET(nb_outputs), AV_OPT_TYPE_INT, { .i64 = 2 }, 1, INT_MAX, FLAGS }, + { "outputs", "set number of outputs", OFFSET(nb_outputs), AV_OPT_TYPE_INT, { .i64 = 2 }, 1, INT_MAX, FLAGS }, { NULL }, }; -static const AVClass split_class = { - .class_name = "split", - .item_name = av_default_item_name, - .option = options, - .version = LIBAVUTIL_VERSION_INT, -}; +#define split_options options +AVFILTER_DEFINE_CLASS(split); -static const AVClass asplit_class = { - .class_name = "asplit", - .item_name = av_default_item_name, - .option = options, - .version = LIBAVUTIL_VERSION_INT, -}; +#define asplit_options options +AVFILTER_DEFINE_CLASS(asplit); static const AVFilterPad avfilter_vf_split_inputs[] = { { |