Showing the changes to libavfilter/avfilter.c (1 of 2 files). Show all
Unified · Split
| @@ -1668,6 +1668,26 @@ void ff_inlink_request_frame(AVFilterLink *link) · 1667 unmodified lines | ||
| 1668 | 1668 | ff_filter_set_ready(link->src, 100); |
| 1669 | 1669 | } |
| 1670 | 1670 | |
| 1671 | +void ff_inlink_set_status(AVFilterLink *link, int status) | |
| 1672 | +{ | |
| 1673 | + if (link->status_out) | |
| 1674 | + return; | |
| 1675 | + link->frame_wanted_out = 0; | |
| 1676 | + link->frame_blocked_in = 0; | |
| 1677 | + ff_avfilter_link_set_out_status(link, status, AV_NOPTS_VALUE); | |
| 1678 | + while (ff_framequeue_queued_frames(&link->fifo)) { | |
| 1679 | + AVFrame *frame = ff_framequeue_take(&link->fifo); | |
| 1680 | + av_frame_free(&frame); | |
| 1681 | + } | |
| 1682 | + if (!link->status_in) | |
| 1683 | + link->status_in = status; | |
| 1684 | +} | |
| 1685 | + | |
| 1686 | +int ff_outlink_get_status(AVFilterLink *link) | |
| 1687 | +{ | |
| 1688 | + return link->status_in; | |
| 1689 | +} | |
| 1690 | + | |
| 1671 | 1691 | const AVClass *avfilter_get_class(void) |
| 1672 | 1692 | { |
| 1673 | 1693 | return &avfilter_class; |