]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/avf_showwaves.c
Merge remote-tracking branch 'qatar/master'
[ffmpeg] / libavfilter / avf_showwaves.c
index 2494a7088f76da07df73e5478dcb85a0e57180cc..17679dda71505bfe1df7aba9791a2293e39a7bb6 100644 (file)
@@ -20,7 +20,7 @@
 
 /**
  * @file
- * audio to video transmedia filter
+ * audio to video multimedia filter
  */
 
 #include "libavutil/audioconvert.h"
@@ -45,13 +45,14 @@ typedef struct {
 } ShowWavesContext;
 
 #define OFFSET(x) offsetof(ShowWavesContext, x)
+#define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM
 
 static const AVOption showwaves_options[] = {
-    { "rate", "set video rate", OFFSET(rate_str), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0 },
-    { "r",    "set video rate", OFFSET(rate_str), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0 },
-    { "size", "set video size", OFFSET(w), AV_OPT_TYPE_IMAGE_SIZE, {.str = "600x240"}, 0, 0 },
-    { "s",    "set video size", OFFSET(w), AV_OPT_TYPE_IMAGE_SIZE, {.str = "600x240"}, 0, 0 },
-    { "n",    "set how many samples to show in the same point", OFFSET(n), AV_OPT_TYPE_INT, {.dbl = 0}, 0, INT_MAX},
+    { "rate", "set video rate", OFFSET(rate_str), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, FLAGS },
+    { "r",    "set video rate", OFFSET(rate_str), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, FLAGS },
+    { "size", "set video size", OFFSET(w), AV_OPT_TYPE_IMAGE_SIZE, {.str = "600x240"}, 0, 0, FLAGS },
+    { "s",    "set video size", OFFSET(w), AV_OPT_TYPE_IMAGE_SIZE, {.str = "600x240"}, 0, 0, FLAGS },
+    { "n",    "set how many samples to show in the same point", OFFSET(n), AV_OPT_TYPE_INT, {.dbl = 0}, 0, INT_MAX, FLAGS },
     { NULL },
 };
 
@@ -66,10 +67,8 @@ static av_cold int init(AVFilterContext *ctx, const char *args)
     av_opt_set_defaults(showwaves);
     showwaves->buf_idx = 0;
 
-    if ((err = av_set_options_string(showwaves, args, "=", ":")) < 0) {
-        av_log(ctx, AV_LOG_ERROR, "Error parsing options string: '%s'\n", args);
+    if ((err = av_set_options_string(showwaves, args, "=", ":")) < 0)
         return err;
-    }
 
     return 0;
 }
@@ -206,7 +205,6 @@ static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples)
                              av_rescale_q((p - (int16_t *)insamples->data[0]) / nb_channels,
                                           (AVRational){ 1, inlink->sample_rate },
                                           outlink->time_base);
-            outlink->out_buf = outpicref;
             linesize = outpicref->linesize[0];
             memset(outpicref->data[0], 0, showwaves->h*linesize);
         }
@@ -255,4 +253,6 @@ AVFilter avfilter_avf_showwaves = {
         },
         { .name = NULL }
     },
+
+    .priv_class = &showwaves_class,
 };