History

avfilter/af_aresample: merge request_frame into activate function

No functional change.

Marton Balint committed 1 year ago

Commit ffcdd2c1 parent 28a7b9c1 file · +14 −24Browse files

Unified · Split

libavfilter/af_aresample.c+14−24
@@ -302,14 +302,26 @@ static int flush_frame(AVFilterLink *outlink, int final, AVFrame **outsamplesref · 301 unmodified lines
302302 return 0;
303303 }
304304
305−static int request_frame(AVFilterLink *outlink)
305+static int activate(AVFilterContext *ctx)
306306 {
307− AVFilterContext *ctx = outlink->src;
308307 AVFilterLink *inlink = ctx->inputs[0];
308+ AVFilterLink *outlink = ctx->outputs[0];
309309 AResampleContext *aresample = ctx->priv;
310310 int ret = 0, status;
311311 int64_t pts;
312312
313+ FF_FILTER_FORWARD_STATUS_BACK(outlink, inlink);
314+
315+ if (!aresample->eof && ff_inlink_queued_frames(inlink)) {
316+ AVFrame *frame = NULL;
317+
318+ ret = ff_inlink_consume_frame(inlink, &frame);
319+ if (ret < 0)
320+ return ret;
321+ if (ret > 0)
322+ return filter_frame(inlink, frame);
323+ }
324+
313325 // First try to get data from the internal buffers
314326 if (aresample->more_data) {
315327 AVFrame *outsamplesref;
@@ -346,28 +358,6 @@ static int request_frame(AVFilterLink *outlink) · 30 unmodified lines
346358 return 0;
347359 }
348360
349−static int activate(AVFilterContext *ctx)
350−{
351− AResampleContext *aresample = ctx->priv;
352− AVFilterLink *inlink = ctx->inputs[0];
353− AVFilterLink *outlink = ctx->outputs[0];
354−
355− FF_FILTER_FORWARD_STATUS_BACK(outlink, inlink);
356−
357− if (!aresample->eof && ff_inlink_queued_frames(inlink)) {
358− AVFrame *frame = NULL;
359− int ret;
360−
361− ret = ff_inlink_consume_frame(inlink, &frame);
362− if (ret < 0)
363− return ret;
364− if (ret > 0)
365− return filter_frame(inlink, frame);
366− }
367−
368− return request_frame(outlink);
369−}
370−
371361 static const AVClass *resample_child_class_iterate(void **iter)
372362 {
373363 const AVClass *c = *iter ? NULL : swr_get_class();

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t