[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