FFmpeg
Loading...
Searching...
No Matches
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_REFS_H
24#define AVCODEC_VVC_REFS_H
25
26#include "dec.h"
27
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)
32#define VVC_FRAME_FLAG_CORRUPT (1 << 4)
33
34int ff_vvc_output_frame(VVCContext *s, VVCFrameContext *fc, struct AVFrame *out, int no_output_of_prior_pics_flag, int flush);
37const RefPicList *ff_vvc_get_ref_list(const VVCFrameContext *fc, const VVCFrame *ref, int x0, int y0);
43
49
52
55 int y;
57 VVCProgressListener *next; //used by ff_vvc_add_progress_listener only
58};
59
63
64#endif // AVCODEC_VVC_REFS_H
#define flags(name, subs,...)
Definition cbs_h264.c:74
#define s(width, name)
Definition cbs_vp9.c:198
static const uint16_t fc[]
Definition dcaenc.h:43
static AVFrame * frame
void(* flush)(AVBSFContext *ctx)
Definition dts2pts.c:610
void ff_vvc_add_progress_listener(VVCFrame *frame, VVCProgressListener *l)
Definition refs.c:686
void ff_vvc_clear_refs(VVCFrameContext *fc)
Definition refs.c:86
const RefPicList * ff_vvc_get_ref_list(const VVCFrameContext *fc, const VVCFrame *ref, int x0, int y0)
Definition refs.c:76
int ff_vvc_frame_rpl(VVCContext *s, VVCFrameContext *fc, SliceContext *sc)
Definition refs.c:601
void ff_vvc_unref_frame(VVCFrameContext *fc, VVCFrame *frame, int flags)
Definition refs.c:44
void ff_vvc_bump_frame(VVCContext *s, VVCFrameContext *fc)
Definition refs.c:336
void ff_vvc_report_frame_finished(VVCFrame *frame)
Definition refs.c:625
int ff_vvc_set_new_ref(VVCContext *s, VVCFrameContext *fc, struct AVFrame **frame)
Definition refs.c:226
int ff_vvc_output_frame(VVCContext *s, VVCFrameContext *fc, struct AVFrame *out, int no_output_of_prior_pics_flag, int flush)
Definition refs.c:269
void(* progress_done_fn)(VVCProgressListener *l)
Definition refs.h:51
int ff_vvc_slice_rpl(VVCContext *s, VVCFrameContext *fc, SliceContext *sc)
Definition refs.c:542
VVCProgress
Definition refs.h:44
@ VVC_PROGRESS_PIXEL
Definition refs.h:46
@ VVC_PROGRESS_MV
Definition refs.h:45
@ VVC_PROGRESS_LAST
Definition refs.h:47
void ff_vvc_flush_dpb(VVCFrameContext *fc)
Definition refs.c:93
void ff_vvc_report_progress(VVCFrame *frame, VVCProgress vp, int y)
Definition refs.c:665
This structure describes decoded (raw) audio or video data.
Definition frame.h:472
Definition dec.h:73
VVCProgressListener * next
Definition refs.h:57
progress_done_fn progress_done
Definition refs.h:56
VVCProgress vp
Definition refs.h:54
static int ref[MAX_W *MAX_W]
static FILE * out
Definition movenc.c:55