FFmpeg
|
#include <stdbool.h>
#include "libavcodec/cbs_h266.h"
#include "libavcodec/decode.h"
#include "libavcodec/h2645data.h"
#include "libavutil/mem.h"
#include "libavutil/pixdesc.h"
#include "libavutil/refstruct.h"
#include "data.h"
#include "ps.h"
#include "dec.h"
Go to the source code of this file.
Macros | |
#define | EXTENDED_SAR 255 |
#define | WEIGHT_TABLE(x) |
#define | VBF(f) (sps->sps_virtual_boundaries_present_flag ? sps->sps_##f : ph->r->ph_##f) |
#define | VBFS(c, d) VBF(virtual_boundary_pos_##c##_minus1), VBF(num_##d##_virtual_boundaries) |
Functions | |
static int | sps_map_pixel_format (VVCSPS *sps, void *log_ctx) |
static int | sps_bit_depth (VVCSPS *sps, void *log_ctx) |
static int | sps_chroma_qp_table (VVCSPS *sps) |
static void | sps_poc (VVCSPS *sps) |
static void | sps_inter (VVCSPS *sps) |
static void | sps_partition_constraints (VVCSPS *sps) |
static void | sps_ladf (VVCSPS *sps) |
static void | sps_vui (AVCodecContext *c, const H266RawVUI *vui) |
static void | sps_export_stream_params (AVCodecContext *c, const VVCSPS *sps) |
static int | sps_derive (VVCSPS *sps, AVCodecContext *c) |
static void | sps_free (AVRefStructOpaque opaque, void *obj) |
static const VVCSPS * | sps_alloc (const H266RawSPS *rsps, AVCodecContext *c) |
static int | decode_sps (VVCParamSets *ps, AVCodecContext *c, const H266RawSPS *rsps, int is_clvss) |
static void | pps_chroma_qp_offset (VVCPPS *pps) |
static void | pps_width_height (VVCPPS *pps, const VVCSPS *sps) |
static int | pps_bd (VVCPPS *pps) |
static int | next_tile_idx (int tile_idx, const int i, const H266RawPPS *r) |
static void | tile_xy (int *tile_x, int *tile_y, const int tile_idx, const VVCPPS *pps) |
static void | ctu_xy (int *rx, int *ry, const int tile_x, const int tile_y, const VVCPPS *pps) |
static int | ctu_rs (const int rx, const int ry, const VVCPPS *pps) |
static int | pps_add_ctus (VVCPPS *pps, int *off, const int rx, const int ry, const int w, const int h) |
static void | pps_single_slice_picture (VVCPPS *pps, int *off) |
static void | subpic_tiles (int *tile_x, int *tile_y, int *tile_x_end, int *tile_y_end, const VVCSPS *sps, const VVCPPS *pps, const int i) |
static bool | mark_tile_as_used (bool *tile_in_subpic, const int tx, const int ty, const int tile_columns) |
static int | pps_subpic_less_than_one_tile_slice (VVCPPS *pps, const VVCSPS *sps, const int i, const int tx, const int ty, int *off, bool *tile_in_subpic) |
static int | pps_subpic_one_or_more_tiles_slice (VVCPPS *pps, const int tile_x, const int tile_y, const int x_end, const int y_end, const int i, int *off, bool *tile_in_subpic) |
static int | pps_subpic_slice (VVCPPS *pps, const VVCSPS *sps, const int i, int *off, bool *tile_in_subpic) |
static int | pps_single_slice_per_subpic (VVCPPS *pps, const VVCSPS *sps, int *off) |
static int | pps_one_tile_slices (VVCPPS *pps, const int tile_idx, int i, int *off) |
static int | pps_multi_tiles_slice (VVCPPS *pps, const int tile_idx, const int i, int *off, bool *tile_in_slice) |
static int | pps_rect_slice (VVCPPS *pps, const VVCSPS *sps) |
static void | pps_no_rect_slice (VVCPPS *pps) |
static int | pps_slice_map (VVCPPS *pps, const VVCSPS *sps) |
static void | pps_ref_wraparound_offset (VVCPPS *pps, const VVCSPS *sps) |
static void | pps_subpic (VVCPPS *pps, const VVCSPS *sps) |
static int | pps_derive (VVCPPS *pps, const VVCSPS *sps) |
static void | pps_free (AVRefStructOpaque opaque, void *obj) |
static const VVCPPS * | pps_alloc (const H266RawPPS *rpps, const VVCSPS *sps) |
static int | decode_pps (VVCParamSets *ps, const H266RawPPS *rpps) |
static int | decode_ps (VVCParamSets *ps, AVCodecContext *c, const CodedBitstreamH266Context *h266, int is_clvss) |
static void | pred_weight_table (PredWeightTable *w, const H266RawPredWeightTable *r) |
static int | ph_compute_poc (const H266RawPictureHeader *ph, const H266RawSPS *sps, const int poc_tid0, const int is_clvss) |
static av_always_inline uint16_t | lmcs_derive_lut_sample (uint16_t sample, uint16_t *pivot1, uint16_t *pivot2, uint16_t *scale_coeff, const int idx, const int max) |
static int | lmcs_derive_lut (VVCLMCS *lmcs, const H266RawAPS *rlmcs, const H266RawSPS *sps) |
static int | ph_max_num_subblock_merge_cand (const H266RawSPS *sps, const H266RawPictureHeader *ph) |
static int | ph_vb_pos (uint16_t *vbs, uint8_t *num_vbs, const uint16_t *pos_minus_1, const uint8_t num_pos, uint16_t max, const int ctb_size_y) |
static int | ph_vb (VVCPH *ph, const H266RawSPS *sps, const H266RawPPS *pps) |
static int | ph_derive (VVCPH *ph, const H266RawSPS *sps, const H266RawPPS *pps, const int poc_tid0, const int is_clvss) |
static int | decode_ph (VVCFrameParamSets *fps, const H266RawPictureHeader *rph, void *rph_ref, const int poc_tid0, const int is_clvss) |
static int | decode_frame_ps (VVCFrameParamSets *fps, const VVCParamSets *ps, const CodedBitstreamH266Context *h266, const int poc_tid0, const int is_clvss) |
static void | decode_recovery_flag (VVCContext *s) |
static void | decode_recovery_poc (VVCContext *s, const VVCPH *ph) |
int | ff_vvc_decode_frame_ps (VVCFrameParamSets *fps, struct VVCContext *s) |
void | ff_vvc_frame_ps_free (VVCFrameParamSets *fps) |
void | ff_vvc_ps_uninit (VVCParamSets *ps) |
static void | alf_coeff (int16_t *coeff, const uint8_t *abs, const uint8_t *sign, const int size) |
static void | alf_coeff_cc (int16_t *coeff, const uint8_t *mapped_abs, const uint8_t *sign) |
static void | alf_luma (VVCALF *alf, const H266RawAPS *aps) |
static void | alf_chroma (VVCALF *alf, const H266RawAPS *aps) |
static void | alf_cc (VVCALF *alf, const H266RawAPS *aps) |
static void | alf_derive (VVCALF *alf, const H266RawAPS *aps) |
static void | alf_free (AVRefStructOpaque unused, void *obj) |
static int | aps_decode_alf (const VVCALF **alf, const H266RawAPS *aps) |
static int | is_luma_list (const int id) |
static int | derive_matrix_size (const int id) |
static void | scaling_derive (VVCScalingList *sl, const H266RawAPS *aps) |
static int | aps_decode_scaling (const VVCScalingList **scaling, const H266RawAPS *aps) |
int | ff_vvc_decode_aps (VVCParamSets *ps, const CodedBitstreamUnit *unit) |
static int | sh_alf_aps (const VVCSH *sh, const VVCFrameParamSets *fps) |
static int | sh_slice_address (VVCSH *sh, const H266RawSPS *sps, const VVCPPS *pps) |
static void | sh_qp_y (VVCSH *sh, const H266RawPPS *pps, const H266RawPictureHeader *ph) |
static void | sh_inter (VVCSH *sh, const H266RawSPS *sps, const H266RawPPS *pps) |
static void | sh_deblock_offsets (VVCSH *sh) |
static void | sh_partition_constraints (VVCSH *sh, const H266RawSPS *sps, const H266RawPictureHeader *ph) |
static void | sh_entry_points (VVCSH *sh, const H266RawSPS *sps, const VVCPPS *pps) |
static int | sh_derive (VVCSH *sh, const VVCFrameParamSets *fps) |
int | ff_vvc_decode_sh (VVCSH *sh, const VVCFrameParamSets *fps, const CodedBitstreamUnit *unit) |
#define WEIGHT_TABLE | ( | x | ) |
|
static |
Definition at line 35 of file ps.c.
Referenced by sps_bit_depth().
|
static |
Definition at line 80 of file ps.c.
Referenced by sps_derive().
|
static |
Definition at line 91 of file ps.c.
Referenced by sps_derive().
|
static |
Definition at line 138 of file ps.c.
Referenced by sps_derive().
|
static |
Definition at line 143 of file ps.c.
Referenced by sps_derive().
|
static |
Definition at line 159 of file ps.c.
Referenced by sps_derive().
|
static |
Definition at line 171 of file ps.c.
Referenced by sps_derive().
|
static |
Definition at line 186 of file ps.c.
Referenced by sps_export_stream_params().
|
static |
Definition at line 222 of file ps.c.
Referenced by sps_derive().
|
static |
Definition at line 231 of file ps.c.
Referenced by sps_alloc().
|
static |
Definition at line 253 of file ps.c.
Referenced by sps_alloc().
|
static |
Definition at line 259 of file ps.c.
Referenced by decode_sps().
|
static |
Definition at line 280 of file ps.c.
Referenced by decode_ps().
|
static |
Definition at line 308 of file ps.c.
Referenced by pps_derive().
Definition at line 320 of file ps.c.
Referenced by pps_derive().
|
static |
Definition at line 345 of file ps.c.
Referenced by pps_derive().
|
static |
Definition at line 376 of file ps.c.
Referenced by pps_rect_slice().
|
static |
Definition at line 388 of file ps.c.
Referenced by pps_multi_tiles_slice(), and pps_one_tile_slices().
|
static |
Definition at line 394 of file ps.c.
Referenced by pps_multi_tiles_slice(), pps_no_rect_slice(), and pps_one_tile_slices().
|
static |
Definition at line 400 of file ps.c.
Referenced by pps_add_ctus().
|
static |
Definition at line 405 of file ps.c.
Referenced by pps_multi_tiles_slice(), pps_no_rect_slice(), pps_one_tile_slices(), pps_single_slice_picture(), pps_subpic_less_than_one_tile_slice(), and pps_subpic_one_or_more_tiles_slice().
|
static |
Definition at line 418 of file ps.c.
Referenced by pps_single_slice_per_subpic().
|
static |
Definition at line 430 of file ps.c.
Referenced by pps_subpic_slice().
|
static |
Definition at line 454 of file ps.c.
Referenced by pps_subpic_less_than_one_tile_slice(), and pps_subpic_one_or_more_tiles_slice().
|
static |
Definition at line 465 of file ps.c.
Referenced by pps_subpic_slice().
|
static |
Definition at line 481 of file ps.c.
Referenced by pps_subpic_slice().
|
static |
Definition at line 497 of file ps.c.
Referenced by pps_single_slice_per_subpic().
Definition at line 511 of file ps.c.
Referenced by pps_rect_slice().
|
static |
Definition at line 532 of file ps.c.
Referenced by pps_rect_slice().
|
static |
Definition at line 550 of file ps.c.
Referenced by pps_rect_slice().
Definition at line 573 of file ps.c.
Referenced by pps_slice_map().
|
static |
Definition at line 606 of file ps.c.
Referenced by pps_slice_map().
Definition at line 619 of file ps.c.
Referenced by pps_derive().
Definition at line 633 of file ps.c.
Referenced by pps_derive().
Definition at line 641 of file ps.c.
Referenced by pps_derive().
Definition at line 659 of file ps.c.
Referenced by pps_alloc().
|
static |
Definition at line 680 of file ps.c.
Referenced by pps_alloc().
|
static |
Definition at line 693 of file ps.c.
Referenced by decode_pps().
|
static |
Definition at line 714 of file ps.c.
Referenced by decode_ps().
|
static |
Definition at line 735 of file ps.c.
Referenced by ff_vvc_decode_frame_ps().
|
static |
Definition at line 785 of file ps.c.
Referenced by ph_derive(), and sh_inter().
|
static |
Definition at line 798 of file ps.c.
Referenced by ph_derive().
|
static |
Definition at line 822 of file ps.c.
Referenced by lmcs_derive_lut().
|
static |
Definition at line 831 of file ps.c.
Referenced by decode_frame_ps().
|
static |
Definition at line 904 of file ps.c.
Referenced by ph_derive().
|
static |
|
static |
Definition at line 932 of file ps.c.
Referenced by ph_derive().
|
static |
Definition at line 951 of file ps.c.
Referenced by decode_ph().
|
static |
Definition at line 968 of file ps.c.
Referenced by decode_frame_ps().
|
static |
Definition at line 985 of file ps.c.
Referenced by ff_vvc_decode_frame_ps().
|
static |
Definition at line 1021 of file ps.c.
Referenced by ff_vvc_decode_frame_ps().
|
static |
Definition at line 1029 of file ps.c.
Referenced by ff_vvc_decode_frame_ps().
int ff_vvc_decode_frame_ps | ( | VVCFrameParamSets * | fps, |
struct VVCContext * | s | ||
) |
Definition at line 1039 of file ps.c.
Referenced by frame_setup().
void ff_vvc_frame_ps_free | ( | VVCFrameParamSets * | fps | ) |
Definition at line 1058 of file ps.c.
Referenced by frame_context_free().
void ff_vvc_ps_uninit | ( | VVCParamSets * | ps | ) |
Definition at line 1068 of file ps.c.
Referenced by vvc_decode_free().
|
static |
Definition at line 1082 of file ps.c.
Referenced by alf_chroma(), and alf_luma().
|
static |
|
static |
Definition at line 1100 of file ps.c.
Referenced by alf_derive().
|
static |
Definition at line 1116 of file ps.c.
Referenced by alf_derive().
|
static |
Definition at line 1132 of file ps.c.
Referenced by alf_derive().
|
static |
Definition at line 1151 of file ps.c.
Referenced by aps_decode_alf().
|
static |
Definition at line 1158 of file ps.c.
Referenced by aps_decode_alf().
|
static |
Definition at line 1165 of file ps.c.
Referenced by ff_vvc_decode_aps().
|
static |
Definition at line 1179 of file ps.c.
Referenced by scaling_derive().
|
static |
Definition at line 1184 of file ps.c.
Referenced by scaling_derive().
|
static |
Definition at line 1190 of file ps.c.
Referenced by aps_decode_scaling().
|
static |
Definition at line 1252 of file ps.c.
Referenced by ff_vvc_decode_aps().
int ff_vvc_decode_aps | ( | VVCParamSets * | ps, |
const CodedBitstreamUnit * | unit | ||
) |
Definition at line 1265 of file ps.c.
Referenced by decode_nal_unit().
|
static |
Definition at line 1288 of file ps.c.
Referenced by sh_derive().
|
static |
Definition at line 1321 of file ps.c.
Referenced by sh_derive(), and slice_header().
|
static |
Definition at line 1352 of file ps.c.
Referenced by sh_derive().
|
static |
Definition at line 1362 of file ps.c.
Referenced by sh_derive().
|
static |
Definition at line 1372 of file ps.c.
Referenced by sh_derive().
|
static |
Definition at line 1386 of file ps.c.
Referenced by sh_derive().
|
static |
Definition at line 1422 of file ps.c.
Referenced by sh_derive().
|
static |
Definition at line 1439 of file ps.c.
Referenced by ff_vvc_decode_sh().
int ff_vvc_decode_sh | ( | VVCSH * | sh, |
const VVCFrameParamSets * | fps, | ||
const CodedBitstreamUnit * | unit | ||
) |
Definition at line 1461 of file ps.c.
Referenced by slice_start().