[FFmpeg-cvslog] lavfi/framestep: remove request_frame hack
Paul B Mahol
git at videolan.org
Thu Apr 11 02:32:27 CEST 2013
ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Thu Apr 11 00:09:47 2013 +0000| [7c79ec66b6cc25a150d33d7397c8f4310b77e70f] | committer: Paul B Mahol
lavfi/framestep: remove request_frame hack
Signed-off-by: Paul B Mahol <onemda at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7c79ec66b6cc25a150d33d7397c8f4310b77e70f
---
libavfilter/vf_framestep.c | 21 ++-------------------
1 file changed, 2 insertions(+), 19 deletions(-)
diff --git a/libavfilter/vf_framestep.c b/libavfilter/vf_framestep.c
index 50a0f50..bd079cc 100644
--- a/libavfilter/vf_framestep.c
+++ b/libavfilter/vf_framestep.c
@@ -30,7 +30,7 @@
typedef struct {
const AVClass *class;
- int frame_step, frame_count, frame_selected;
+ int frame_step, frame_count;
} FrameStepContext;
#define OFFSET(x) offsetof(FrameStepContext, x)
@@ -49,6 +49,7 @@ static int config_output_props(AVFilterLink *outlink)
FrameStepContext *framestep = ctx->priv;
AVFilterLink *inlink = ctx->inputs[0];
+ outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP;
outlink->frame_rate =
av_div_q(inlink->frame_rate, (AVRational){framestep->frame_step, 1});
@@ -64,34 +65,17 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *ref)
FrameStepContext *framestep = inlink->dst->priv;
if (!(framestep->frame_count++ % framestep->frame_step)) {
- framestep->frame_selected = 1;
return ff_filter_frame(inlink->dst->outputs[0], ref);
} else {
- framestep->frame_selected = 0;
av_frame_free(&ref);
return 0;
}
}
-static int request_frame(AVFilterLink *outlink)
-{
- FrameStepContext *framestep = outlink->src->priv;
- AVFilterLink *inlink = outlink->src->inputs[0];
- int ret;
-
- framestep->frame_selected = 0;
- do {
- ret = ff_request_frame(inlink);
- } while (!framestep->frame_selected && ret >= 0);
-
- return ret;
-}
-
static const AVFilterPad framestep_inputs[] = {
{
.name = "default",
.type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer = ff_null_get_video_buffer,
.filter_frame = filter_frame,
},
{ NULL }
@@ -102,7 +86,6 @@ static const AVFilterPad framestep_outputs[] = {
.name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.config_props = config_output_props,
- .request_frame = request_frame,
},
{ NULL }
};
More information about the ffmpeg-cvslog
mailing list