mirror of
https://github.com/nyanmisaka/ffmpeg-rockchip.git
synced 2025-10-16 22:01:15 +08:00
lavfi: make filter_frame non-recursive.
A lot of changes happen at the same time: - Add a framequeue fifo to AVFilterLink. - split AVFilterLink.status into status_in and status_out: requires changes to the few filters and programs that use it directly (f_interleave, split, filtfmts). - Add a field ready to AVFilterContext, marking when the filter is ready and its activation priority. - Add flags to mark blocked links. - Change ff_filter_frame() to enqueue the frame. - Change all filtering functions to update the ready field and the blocked flags. - Update ff_filter_graph_run_once() to use the ready field. - buffersrc: always push the frame immediately.
This commit is contained in:
@@ -30,6 +30,9 @@
|
||||
#include "libavutil/mem.h"
|
||||
#include "libavutil/opt.h"
|
||||
|
||||
#define FF_INTERNAL_FIELDS 1
|
||||
#include "framequeue.h"
|
||||
|
||||
#include "avfilter.h"
|
||||
#include "audio.h"
|
||||
#include "formats.h"
|
||||
@@ -78,7 +81,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
|
||||
for (i = 0; i < ctx->nb_outputs; i++) {
|
||||
AVFrame *buf_out;
|
||||
|
||||
if (ctx->outputs[i]->status)
|
||||
if (ctx->outputs[i]->status_in)
|
||||
continue;
|
||||
buf_out = av_frame_clone(frame);
|
||||
if (!buf_out) {
|
||||
|
Reference in New Issue
Block a user