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
AVFilterLink *outlink = ctx->outputs[0];
static const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE };
static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE };
+ int ret;
/* set input audio formats */
formats = ff_make_format_list(sample_fmts);
- if (!formats)
- return AVERROR(ENOMEM);
- ff_formats_ref(formats, &inlink->out_formats);
+ if ((ret = ff_formats_ref(formats, &inlink->out_formats)) < 0)
+ return ret;
layouts = ff_all_channel_layouts();
- if (!layouts)
- return AVERROR(ENOMEM);
- ff_channel_layouts_ref(layouts, &inlink->out_channel_layouts);
+ if ((ret = ff_channel_layouts_ref(layouts, &inlink->out_channel_layouts)) < 0)
+ return ret;
formats = ff_all_samplerates();
- if (!formats)
- return AVERROR(ENOMEM);
- ff_formats_ref(formats, &inlink->out_samplerates);
+ if ((ret = ff_formats_ref(formats, &inlink->out_samplerates)) < 0)
+ return ret;
/* set output video format */
formats = ff_make_format_list(pix_fmts);
- if (!formats)
- return AVERROR(ENOMEM);
- ff_formats_ref(formats, &outlink->in_formats);
+ if ((ret = ff_formats_ref(formats, &outlink->in_formats)) < 0)
+ return ret;
return 0;
}
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++)
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);