Go to the documentation of this file.
23 #ifndef AVCODEC_VVC_REFS_H
24 #define AVCODEC_VVC_REFS_H
28 #define VVC_FRAME_FLAG_OUTPUT (1 << 0)
29 #define VVC_FRAME_FLAG_SHORT_REF (1 << 1)
30 #define VVC_FRAME_FLAG_LONG_REF (1 << 2)
31 #define VVC_FRAME_FLAG_BUMPING (1 << 3)
63 #endif // AVCODEC_VVC_REFS_H
This structure describes decoded (raw) audio or video data.
#define fc(width, name, range_min, range_max)
void ff_vvc_clear_refs(VVCFrameContext *fc)
int ff_vvc_slice_rpl(VVCContext *s, VVCFrameContext *fc, SliceContext *sc)
void ff_vvc_report_progress(VVCFrame *frame, VVCProgress vp, int y)
int ff_vvc_set_new_ref(VVCContext *s, VVCFrameContext *fc, struct AVFrame **frame)
void ff_vvc_unref_frame(VVCFrameContext *fc, VVCFrame *frame, int flags)
void ff_vvc_add_progress_listener(VVCFrame *frame, VVCProgressListener *l)
void(* flush)(AVBSFContext *ctx)
const RefPicList * ff_vvc_get_ref_list(const VVCFrameContext *fc, const VVCFrame *ref, int x0, int y0)
int ff_vvc_output_frame(VVCContext *s, VVCFrameContext *fc, struct AVFrame *out, int no_output_of_prior_pics_flag, int flush)
void ff_vvc_flush_dpb(VVCFrameContext *fc)
void ff_vvc_report_frame_finished(VVCFrame *frame)
VVCProgressListener * next
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a frame
void ff_vvc_bump_frame(VVCContext *s, VVCFrameContext *fc)
static int ref[MAX_W *MAX_W]
progress_done_fn progress_done
#define flags(name, subs,...)
int ff_vvc_frame_rpl(VVCContext *s, VVCFrameContext *fc, SliceContext *sc)
void(* progress_done_fn)(VVCProgressListener *l)