mirror of https://git.ffmpeg.org/ffmpeg.git
lavfi/interlace: remove request frame hack
Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
parent
ed1c83508e
commit
68def27124
|
@ -51,7 +51,6 @@ typedef struct {
|
||||||
enum ScanMode scan; // top or bottom field first scanning
|
enum ScanMode scan; // top or bottom field first scanning
|
||||||
int lowpass; // enable or disable low pass filterning
|
int lowpass; // enable or disable low pass filterning
|
||||||
AVFrame *cur, *next; // the two frames from which the new one is obtained
|
AVFrame *cur, *next; // the two frames from which the new one is obtained
|
||||||
int got_output; // signal an output frame is reday to request_frame()
|
|
||||||
} InterlaceContext;
|
} InterlaceContext;
|
||||||
|
|
||||||
#define OFFSET(x) offsetof(InterlaceContext, x)
|
#define OFFSET(x) offsetof(InterlaceContext, x)
|
||||||
|
@ -115,6 +114,7 @@ static int config_out_props(AVFilterLink *outlink)
|
||||||
// half framerate
|
// half framerate
|
||||||
outlink->time_base.num *= 2;
|
outlink->time_base.num *= 2;
|
||||||
outlink->frame_rate.den *= 2;
|
outlink->frame_rate.den *= 2;
|
||||||
|
outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP;
|
||||||
|
|
||||||
av_log(ctx, AV_LOG_VERBOSE, "%s interlacing %s lowpass filter\n",
|
av_log(ctx, AV_LOG_VERBOSE, "%s interlacing %s lowpass filter\n",
|
||||||
s->scan == MODE_TFF ? "tff" : "bff", (s->lowpass) ? "with" : "without");
|
s->scan == MODE_TFF ? "tff" : "bff", (s->lowpass) ? "with" : "without");
|
||||||
|
@ -205,20 +205,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
|
||||||
av_frame_free(&s->next);
|
av_frame_free(&s->next);
|
||||||
|
|
||||||
ret = ff_filter_frame(outlink, out);
|
ret = ff_filter_frame(outlink, out);
|
||||||
s->got_output = 1;
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int request_frame(AVFilterLink *outlink)
|
|
||||||
{
|
|
||||||
AVFilterContext *ctx = outlink->src;
|
|
||||||
InterlaceContext *s = ctx->priv;
|
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
s->got_output = 0;
|
|
||||||
while (ret >= 0 && !s->got_output)
|
|
||||||
ret = ff_request_frame(ctx->inputs[0]);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -237,7 +223,6 @@ static const AVFilterPad outputs[] = {
|
||||||
.name = "default",
|
.name = "default",
|
||||||
.type = AVMEDIA_TYPE_VIDEO,
|
.type = AVMEDIA_TYPE_VIDEO,
|
||||||
.config_props = config_out_props,
|
.config_props = config_out_props,
|
||||||
.request_frame = request_frame,
|
|
||||||
},
|
},
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue