History

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.

Nicolas George committed 10 years ago

Commit 02aa0701 parent 62b11db10 files · +493 −143Browse files

Showing the changes to libavfilter/split.c (1 of 10 files). Show all

Unified · Split

libavfilter/split.c+4−1
@@ -30,6 +30,9 @@ · 29 unmodified lines
30#include "libavutil/mem.h"30#include "libavutil/mem.h"
31#include "libavutil/opt.h"31#include "libavutil/opt.h"
32 32
33#define FF_INTERNAL_FIELDS 1
34#include "framequeue.h"
35
33#include "avfilter.h"36#include "avfilter.h"
34#include "audio.h"37#include "audio.h"
35#include "formats.h"38#include "formats.h"
@@ -78,7 +81,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) · 42 unmodified lines
78 for (i = 0; i < ctx->nb_outputs; i++) {81 for (i = 0; i < ctx->nb_outputs; i++) {
79 AVFrame *buf_out;82 AVFrame *buf_out;
80 83
81 if (ctx->outputs[i]->status)84 if (ctx->outputs[i]->status_in)
82 continue;85 continue;
83 buf_out = av_frame_clone(frame);86 buf_out = av_frame_clone(frame);
84 if (!buf_out) {87 if (!buf_out) {

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