lavfi/avf_showspectrum: reindent after last commit.
[ffmpeg.git] / libavfilter / avf_showwaves.c
index 57a6b2e..b75c666 100644 (file)
@@ -53,7 +53,6 @@ typedef struct {
     int buf_idx;
     int16_t *buf_idy;    /* y coordinate of previous sample for each channel */
     AVFrame *outpicref;
-    int req_fullfilled;
     int n;
     int sample_count_mod;
     int mode;                   ///< ShowWavesMode
@@ -83,7 +82,7 @@ static const AVOption showwaves_options[] = {
     { "n",    "set how many samples to show in the same point", OFFSET(n), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, FLAGS },
     { "rate", "set video rate", OFFSET(rate), AV_OPT_TYPE_VIDEO_RATE, {.str = "25"}, 0, 0, FLAGS },
     { "r",    "set video rate", OFFSET(rate), AV_OPT_TYPE_VIDEO_RATE, {.str = "25"}, 0, 0, FLAGS },
-    { "split_channels", "draw channels separately", OFFSET(split_channels), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, FLAGS },
+    { "split_channels", "draw channels separately", OFFSET(split_channels), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, FLAGS },
     { NULL }
 };
 
@@ -179,8 +178,7 @@ inline static int push_frame(AVFilterLink *outlink)
     int nb_channels = inlink->channels;
     int ret, i;
 
-    if ((ret = ff_filter_frame(outlink, showwaves->outpicref)) >= 0)
-        showwaves->req_fullfilled = 1;
+    ret = ff_filter_frame(outlink, showwaves->outpicref);
     showwaves->outpicref = NULL;
     showwaves->buf_idx = 0;
     for (i = 0; i < nb_channels; i++)
@@ -203,6 +201,11 @@ static int push_single_pic(AVFilterLink *outlink)
     int col = 0;
     int64_t *sum = showwaves->sum;
 
+    if (max_samples == 0) {
+        av_log(ctx, AV_LOG_ERROR, "Too few samples\n");
+        return AVERROR(EINVAL);
+    }
+
     av_log(ctx, AV_LOG_DEBUG, "Create frame averaging %"PRId64" samples per column\n", max_samples);
 
     memset(sum, 0, nb_channels);
@@ -243,11 +246,7 @@ static int request_frame(AVFilterLink *outlink)
     AVFilterLink *inlink = outlink->src->inputs[0];
     int ret;
 
-    showwaves->req_fullfilled = 0;
-    do {
-        ret = ff_request_frame(inlink);
-    } while (!showwaves->req_fullfilled && ret >= 0);
-
+    ret = ff_request_frame(inlink);
     if (ret == AVERROR_EOF && showwaves->outpicref) {
         if (showwaves->single_pic)
             push_single_pic(outlink);