[FFmpeg-devel] [PATCH][libavfilter] codecview: improved options

Michael Niedermayer michael at niedermayer.cc
Wed Jun 15 14:26:10 CEST 2016


On Thu, Jun 09, 2016 at 01:24:57PM +0000, Davinder Singh wrote:
> On Mon, May 30, 2016 at 1:45 PM Michael Niedermayer <michael at niedermayer.cc>
> wrote:
> 
> > On Mon, May 23, 2016 at 05:09:35PM +0000, Davinder Singh wrote:
> > >  vf_codecview.c |   55
> > +++++++++++++++++++++++++++++++++++++++++++++----------
> > >  1 file changed, 45 insertions(+), 10 deletions(-)
> > > 464b23c4638d1a408e8237651facf327994945bf
> > 0001-vf_codecview-added-new-options.patch
> > > From 641d6f92e792ea7def3610f5462b6bbec019c4b7 Mon Sep 17 00:00:00 2001
> > > From: dsmudhar <ds.mudhar at gmail.com>
> > > Date: Mon, 23 May 2016 22:29:51 +0530
> > > Subject: [PATCH] vf_codecview: added new options
> > >
> > > ---
> > >  libavfilter/vf_codecview.c | 55
> > +++++++++++++++++++++++++++++++++++++---------
> > >  1 file changed, 45 insertions(+), 10 deletions(-)
> > >
> > > diff --git a/libavfilter/vf_codecview.c b/libavfilter/vf_codecview.c
> > > index e70b397..1cb521d 100644
> > > --- a/libavfilter/vf_codecview.c
> > > +++ b/libavfilter/vf_codecview.c
> > > @@ -38,21 +38,39 @@
> > >  #define MV_P_FOR  (1<<0)
> > >  #define MV_B_FOR  (1<<1)
> > >  #define MV_B_BACK (1<<2)
> > > +#define MV_TYPE_FOR  (1<<0)
> > > +#define MV_TYPE_BACK (1<<1)
> > > +#define FRAME_TYPE_I (1<<0)
> > > +#define FRAME_TYPE_P (1<<1)
> > > +#define FRAME_TYPE_B (1<<2)
> > >
> > >  typedef struct {
> > >      const AVClass *class;
> > >      unsigned mv;
> > > +    unsigned frame_type;
> > > +    unsigned mv_type;
> > >      int hsub, vsub;
> > >      int qp;
> > >  } CodecViewContext;
> > >
> > >  #define OFFSET(x) offsetof(CodecViewContext, x)
> > >  #define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM
> > > +#define CONST(name, help, val, unit) { name, help, 0,
> > AV_OPT_TYPE_CONST, {.i64=val}, 0, 0, FLAGS, unit }
> > > +
> > >  static const AVOption codecview_options[] = {
> > >      { "mv", "set motion vectors to visualize", OFFSET(mv),
> > AV_OPT_TYPE_FLAGS, {.i64=0}, 0, INT_MAX, FLAGS, "mv" },
> > > -        {"pf", "forward predicted MVs of P-frames",  0,
> > AV_OPT_TYPE_CONST, {.i64 = MV_P_FOR },  INT_MIN, INT_MAX, FLAGS, "mv"},
> > > -        {"bf", "forward predicted MVs of B-frames",  0,
> > AV_OPT_TYPE_CONST, {.i64 = MV_B_FOR },  INT_MIN, INT_MAX, FLAGS, "mv"},
> > > -        {"bb", "backward predicted MVs of B-frames", 0,
> > AV_OPT_TYPE_CONST, {.i64 = MV_B_BACK }, INT_MIN, INT_MAX, FLAGS, "mv"},
> > > +        CONST("pf", "forward predicted MVs of P-frames",  MV_P_FOR,
> > "mv"),
> > > +        CONST("bf", "forward predicted MVs of B-frames",  MV_B_FOR,
> > "mv"),
> > > +        CONST("bb", "backward predicted MVs of B-frames", MV_B_BACK,
> > "mv"),
> > > +    { "mv_type", "set motion vectors type", OFFSET(mv_type),
> > AV_OPT_TYPE_FLAGS, {.i64=0}, 0, INT_MAX, FLAGS, "mv_type" },
> > > +    { "mvt",     "set motion vectors type", OFFSET(mv_type),
> > AV_OPT_TYPE_FLAGS, {.i64=0}, 0, INT_MAX, FLAGS, "mv_type" },
> > > +        CONST("fp", "forward predicted MVs",  MV_TYPE_FOR,  "mv_type"),
> > > +        CONST("bp", "backward predicted MVs", MV_TYPE_BACK, "mv_type"),
> > > +    { "frame_type", "set frame types to visualize motion vectors of",
> > OFFSET(frame_type), AV_OPT_TYPE_FLAGS, {.i64=0}, 0, INT_MAX, FLAGS,
> > "frame_type" },
> > > +    { "ft",         "set frame types to visualize motion vectors of",
> > OFFSET(frame_type), AV_OPT_TYPE_FLAGS, {.i64=0}, 0, INT_MAX, FLAGS,
> > "frame_type" },
> > > +        CONST("if", "I-frames", FRAME_TYPE_I, "frame_type"),
> > > +        CONST("pf", "P-frames", FRAME_TYPE_P, "frame_type"),
> > > +        CONST("bf", "B-frames", FRAME_TYPE_B, "frame_type"),
> > >      { "qp", NULL, OFFSET(qp), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, .flags
> > = FLAGS },
> >
> > the new options should be added at the end, inserting them in the middle
> > breaks for example
> > -flags2 +export_mvs -vf codecview=0:1
> >
> > [...]
> >
> > --
> > Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
> >
> > Good people do not need laws to tell them to act responsibly, while bad
> > people will find a way around the laws. -- Plato
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel at ffmpeg.org
> > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> 
> patch attached.

>  doc/filters.texi           |   38 ++++++++++++++++++++++++++++---
>  libavfilter/vf_codecview.c |   55 ++++++++++++++++++++++++++++++++++++---------
>  2 files changed, 80 insertions(+), 13 deletions(-)
> 88778603071af6afe4dd2d0ab37a0802449e792c  0001-vf_codecview-added-new-options.patch
> From 44016bf074281bf96ee40567b5aaf6a7d4d9f063 Mon Sep 17 00:00:00 2001
> From: dsmudhar <ds.mudhar at gmail.com>
> Date: Thu, 9 Jun 2016 18:42:33 +0530
> Subject: [PATCH] vf_codecview: added new options

applied

thanks

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Frequently ignored answer#1 FFmpeg bugs should be sent to our bugtracker. User
questions about the command line tools should be sent to the ffmpeg-user ML.
And questions about how to use libav* should be sent to the libav-user ML.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20160615/a01e5f1c/attachment.sig>


More information about the ffmpeg-devel mailing list