Commit 8f14170b authored by Marton Balint's avatar Marton Balint

avfilter/filters: add ff_inlink_peek_frame and ff_inlink_queued_frames to...

avfilter/filters: add ff_inlink_peek_frame and ff_inlink_queued_frames to access frames in the inlink fifo
Signed-off-by: 's avatarMarton Balint <cus@passwd.hu>
parent 93443225
...@@ -1448,6 +1448,11 @@ int ff_inlink_acknowledge_status(AVFilterLink *link, int *rstatus, int64_t *rpts ...@@ -1448,6 +1448,11 @@ int ff_inlink_acknowledge_status(AVFilterLink *link, int *rstatus, int64_t *rpts
return 1; return 1;
} }
size_t ff_inlink_queued_frames(AVFilterLink *link)
{
return ff_framequeue_queued_frames(&link->fifo);
}
int ff_inlink_check_available_frame(AVFilterLink *link) int ff_inlink_check_available_frame(AVFilterLink *link)
{ {
return ff_framequeue_queued_frames(&link->fifo) > 0; return ff_framequeue_queued_frames(&link->fifo) > 0;
...@@ -1507,6 +1512,11 @@ int ff_inlink_consume_samples(AVFilterLink *link, unsigned min, unsigned max, ...@@ -1507,6 +1512,11 @@ int ff_inlink_consume_samples(AVFilterLink *link, unsigned min, unsigned max,
return 1; return 1;
} }
AVFrame *ff_inlink_peek_frame(AVFilterLink *link, size_t idx)
{
return ff_framequeue_peek(&link->fifo, idx);
}
int ff_inlink_make_frame_writable(AVFilterLink *link, AVFrame **rframe) int ff_inlink_make_frame_writable(AVFilterLink *link, AVFrame **rframe)
{ {
AVFrame *frame = *rframe; AVFrame *frame = *rframe;
......
...@@ -60,6 +60,12 @@ int ff_inlink_process_commands(AVFilterLink *link, const AVFrame *frame); ...@@ -60,6 +60,12 @@ int ff_inlink_process_commands(AVFilterLink *link, const AVFrame *frame);
*/ */
int ff_inlink_evaluate_timeline_at_frame(AVFilterLink *link, const AVFrame *frame); int ff_inlink_evaluate_timeline_at_frame(AVFilterLink *link, const AVFrame *frame);
/**
* Get the number of frames available on the link.
* @return the number of frames available in the link fifo.
*/
size_t ff_inlink_queued_frames(AVFilterLink *link);
/** /**
* Test if a frame is available on the link. * Test if a frame is available on the link.
* @return >0 if a frame is available * @return >0 if a frame is available
...@@ -102,6 +108,13 @@ int ff_inlink_consume_frame(AVFilterLink *link, AVFrame **rframe); ...@@ -102,6 +108,13 @@ int ff_inlink_consume_frame(AVFilterLink *link, AVFrame **rframe);
int ff_inlink_consume_samples(AVFilterLink *link, unsigned min, unsigned max, int ff_inlink_consume_samples(AVFilterLink *link, unsigned min, unsigned max,
AVFrame **rframe); AVFrame **rframe);
/**
* Access a frame in the link fifo without consuming it.
* The first frame is numbered 0; the designated frame must exist.
* @return the frame at idx position in the link fifo.
*/
AVFrame *ff_inlink_peek_frame(AVFilterLink *link, size_t idx);
/** /**
* Make sure a frame is writable. * Make sure a frame is writable.
* This is similar to av_frame_make_writable() except it uses the link's * This is similar to av_frame_make_writable() except it uses the link's
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment