FFmpeg
vvc_refs.h
Go to the documentation of this file.
1 /*
2  * VVC reference management
3  *
4  * Copyright (C) 2023 Nuo Mi
5  *
6  * This file is part of FFmpeg.
7  *
8  * FFmpeg is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * FFmpeg is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with FFmpeg; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  */
22 
23 #ifndef AVCODEC_VVC_VVC_REFS_H
24 #define AVCODEC_VVC_VVC_REFS_H
25 
26 #include "vvcdec.h"
27 
28 int ff_vvc_output_frame(VVCContext *s, VVCFrameContext *fc, struct AVFrame *out, int no_output_of_prior_pics_flag, int flush);
31 const RefPicList *ff_vvc_get_ref_list(const VVCFrameContext *fc, const VVCFrame *ref, int x0, int y0);
37 
38 typedef enum VVCProgress {
42 } VVCProgress;
43 
46 
49  int y;
51  VVCProgressListener *next; //used by ff_vvc_add_progress_listener only
52 };
53 
57 
58 #endif // AVCODEC_VVC_VVC_REFS_H
ff_vvc_report_frame_finished
void ff_vvc_report_frame_finished(VVCFrame *frame)
Definition: vvc_refs.c:494
ff_vvc_report_progress
void ff_vvc_report_progress(VVCFrame *frame, VVCProgress vp, int y)
Definition: vvc_refs.c:534
ff_vvc_bump_frame
void ff_vvc_bump_frame(VVCContext *s, VVCFrameContext *fc)
Definition: vvc_refs.c:255
out
FILE * out
Definition: movenc.c:54
VVCProgressListener::vp
VVCProgress vp
Definition: vvc_refs.h:48
AVFrame
This structure describes decoded (raw) audio or video data.
Definition: frame.h:344
progress_done_fn
void(* progress_done_fn)(VVCProgressListener *l)
Definition: vvc_refs.h:45
fc
#define fc(width, name, range_min, range_max)
Definition: cbs_av1.c:472
RefPicList
Definition: hevcdec.h:189
ff_vvc_set_new_ref
int ff_vvc_set_new_ref(VVCContext *s, VVCFrameContext *fc, struct AVFrame **frame)
Definition: vvc_refs.c:154
s
#define s(width, name)
Definition: cbs_vp9.c:198
ff_vvc_output_frame
int ff_vvc_output_frame(VVCContext *s, VVCFrameContext *fc, struct AVFrame *out, int no_output_of_prior_pics_flag, int flush)
Definition: vvc_refs.c:196
vvcdec.h
frame
static AVFrame * frame
Definition: demux_decode.c:54
VVC_PROGRESS_MV
@ VVC_PROGRESS_MV
Definition: vvc_refs.h:39
flush
void(* flush)(AVBSFContext *ctx)
Definition: dts2pts.c:367
SliceContext
Definition: mss12.h:70
VVCProgressListener::y
int y
Definition: vvc_refs.h:49
VVC_PROGRESS_PIXEL
@ VVC_PROGRESS_PIXEL
Definition: vvc_refs.h:40
VVCFrame
Definition: vvcdec.h:56
ff_vvc_flush_dpb
void ff_vvc_flush_dpb(VVCFrameContext *fc)
Definition: vvc_refs.c:83
VVC_PROGRESS_LAST
@ VVC_PROGRESS_LAST
Definition: vvc_refs.h:41
ff_vvc_unref_frame
void ff_vvc_unref_frame(VVCFrameContext *fc, VVCFrame *frame, int flags)
Definition: vvc_refs.c:45
VVCProgressListener::next
VVCProgressListener * next
Definition: vvc_refs.h:51
ff_vvc_get_ref_list
const RefPicList * ff_vvc_get_ref_list(const VVCFrameContext *fc, const VVCFrame *ref, int x0, int y0)
Definition: vvc_refs.c:66
ff_vvc_slice_rpl
int ff_vvc_slice_rpl(VVCContext *s, VVCFrameContext *fc, SliceContext *sc)
Definition: vvc_refs.c:416
VVCProgressListener
Definition: vvc_refs.h:47
ff_vvc_frame_rpl
int ff_vvc_frame_rpl(VVCContext *s, VVCFrameContext *fc, SliceContext *sc)
Definition: vvc_refs.c:470
ff_vvc_clear_refs
void ff_vvc_clear_refs(VVCFrameContext *fc)
Definition: vvc_refs.c:76
ref
static int ref[MAX_W *MAX_W]
Definition: jpeg2000dwt.c:112
VVCProgress
VVCProgress
Definition: vvc_refs.h:38
VVCProgressListener::progress_done
progress_done_fn progress_done
Definition: vvc_refs.h:50
VVCFrameContext
Definition: vvcdec.h:92
flags
#define flags(name, subs,...)
Definition: cbs_av1.c:482
ff_vvc_add_progress_listener
void ff_vvc_add_progress_listener(VVCFrame *frame, VVCProgressListener *l)
Definition: vvc_refs.c:554
VVCContext
Definition: vvcdec.h:195