Browse Source

lavfi/af_atempo: simplify request_frame loop.

tags/n2.0
Nicolas George 12 years ago
parent
commit
d38c173dfb
1 changed files with 3 additions and 8 deletions
  1. +3
    -8
      libavfilter/af_atempo.c

+ 3
- 8
libavfilter/af_atempo.c View File

@@ -139,7 +139,6 @@ typedef struct {
FFTSample *correlation; FFTSample *correlation;


// for managing AVFilterPad.request_frame and AVFilterPad.filter_frame // for managing AVFilterPad.request_frame and AVFilterPad.filter_frame
int request_fulfilled;
AVFrame *dst_buffer; AVFrame *dst_buffer;
uint8_t *dst; uint8_t *dst;
uint8_t *dst_end; uint8_t *dst_end;
@@ -181,7 +180,6 @@ static void yae_clear(ATempoContext *atempo)
atempo->dst = NULL; atempo->dst = NULL;
atempo->dst_end = NULL; atempo->dst_end = NULL;


atempo->request_fulfilled = 0;
atempo->nsamples_in = 0; atempo->nsamples_in = 0;
atempo->nsamples_out = 0; atempo->nsamples_out = 0;
} }
@@ -1017,6 +1015,8 @@ static int config_props(AVFilterLink *inlink)
int sample_rate = (int)inlink->sample_rate; int sample_rate = (int)inlink->sample_rate;
int channels = av_get_channel_layout_nb_channels(inlink->channel_layout); int channels = av_get_channel_layout_nb_channels(inlink->channel_layout);


ctx->outputs[0]->flags |= FF_LINK_FLAG_REQUEST_LOOP;

return yae_reset(atempo, format, sample_rate, channels); return yae_reset(atempo, format, sample_rate, channels);
} }


@@ -1074,7 +1074,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *src_buffer)
ret = push_samples(atempo, outlink, n_out); ret = push_samples(atempo, outlink, n_out);
if (ret < 0) if (ret < 0)
goto end; goto end;
atempo->request_fulfilled = 1;
} }
} }


@@ -1090,11 +1089,7 @@ static int request_frame(AVFilterLink *outlink)
ATempoContext *atempo = ctx->priv; ATempoContext *atempo = ctx->priv;
int ret; int ret;


atempo->request_fulfilled = 0;
do {
ret = ff_request_frame(ctx->inputs[0]);
}
while (!atempo->request_fulfilled && ret >= 0);
ret = ff_request_frame(ctx->inputs[0]);


if (ret == AVERROR_EOF) { if (ret == AVERROR_EOF) {
// flush the filter: // flush the filter:


Loading…
Cancel
Save