[FFmpeg-devel] [PATCH 3/5] lavfi/trim: remove request frame hack
Stefano Sabatini
stefasab at gmail.com
Sun May 26 22:49:05 CEST 2013
On date Sunday 2013-05-26 19:36:14 +0000, Paul B Mahol encoded:
> Signed-off-by: Paul B Mahol <onemda at gmail.com>
> ---
> libavfilter/trim.c | 24 ++++--------------------
> 1 file changed, 4 insertions(+), 20 deletions(-)
>
> diff --git a/libavfilter/trim.c b/libavfilter/trim.c
> index 34963ae..384028d 100644
> --- a/libavfilter/trim.c
> +++ b/libavfilter/trim.c
> @@ -69,7 +69,6 @@ typedef struct TrimContext {
> int64_t next_pts;
>
> int eof;
> - int got_output;
> } TrimContext;
>
> static int init(AVFilterContext *ctx)
> @@ -104,22 +103,9 @@ static int config_input(AVFilterLink *inlink)
> return 0;
> }
>
> -static int request_frame(AVFilterLink *outlink)
> +static int config_output(AVFilterLink *outlink)
> {
> - AVFilterContext *ctx = outlink->src;
> - TrimContext *s = ctx->priv;
> - int ret;
> -
> - s->got_output = 0;
> - while (!s->got_output) {
> - if (s->eof)
> - return AVERROR_EOF;
> -
> - ret = ff_request_frame(ctx->inputs[0]);
> - if (ret < 0)
> - return ret;
> - }
> -
> + outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP;
> return 0;
> }
>
> @@ -182,7 +168,6 @@ static int trim_filter_frame(AVFilterLink *inlink, AVFrame *frame)
> }
>
> s->nb_frames++;
> - s->got_output = 1;
>
> return ff_filter_frame(ctx->outputs[0], frame);
>
> @@ -224,7 +209,7 @@ static const AVFilterPad trim_outputs[] = {
> {
> .name = "default",
> .type = AVMEDIA_TYPE_VIDEO,
> - .request_frame = request_frame,
> + .config_props = config_output,
> },
> { NULL }
> };
> @@ -346,7 +331,6 @@ static int atrim_filter_frame(AVFilterLink *inlink, AVFrame *frame)
> } else
> frame->nb_samples = end_sample;
>
> - s->got_output = 1;
> return ff_filter_frame(ctx->outputs[0], frame);
>
> drop:
> @@ -387,7 +371,7 @@ static const AVFilterPad atrim_outputs[] = {
> {
> .name = "default",
> .type = AVMEDIA_TYPE_AUDIO,
> - .request_frame = request_frame,
> + .config_props = config_output,
Looks good if tested&works, thanks.
--
FFmpeg = Fascinating Friendly MultiPurpose Ephemeral Guide
More information about the ffmpeg-devel
mailing list