FFmpeg
|
#include "libavutil/imgutils.h"
#include "libavutil/mem.h"
#include "golomb.h"
#include "h2645_vui.h"
#include "data.h"
#include "ps.h"
#include "profiles.h"
#include "refstruct.h"
Go to the source code of this file.
Macros | |
#define | check_profile_idc(idc) ptl->profile_idc == idc || ptl->profile_compatibility_flag[idc] |
#define | CHECK_QP_OFFSET(name) |
Enumerations | |
enum | ScalabilityMask { HEVC_SCALABILITY_DEPTH = 0, HEVC_SCALABILITY_MULTIVIEW = 1, HEVC_SCALABILITY_SPATIAL = 2, HEVC_SCALABILITY_AUXILIARY = 3, HEVC_SCALABILITY_MASK_MAX = 15 } |
enum | DependencyType { HEVC_DEP_TYPE_SAMPLE = 0, HEVC_DEP_TYPE_MV = 1, HEVC_DEP_TYPE_BOTH = 2 } |
Functions | |
static void | remove_sps (HEVCParamSets *s, int id) |
static void | remove_vps (HEVCParamSets *s, int id) |
int | ff_hevc_decode_short_term_rps (GetBitContext *gb, AVCodecContext *avctx, ShortTermRPS *rps, const HEVCSPS *sps, int is_slice_header) |
static int | decode_profile_tier_level (GetBitContext *gb, AVCodecContext *avctx, PTLCommon *ptl) |
static int | parse_ptl (GetBitContext *gb, AVCodecContext *avctx, int profile_present, PTL *ptl, int max_num_sub_layers) |
static void | decode_sublayer_hrd (GetBitContext *gb, unsigned int nb_cpb, HEVCSublayerHdrParams *par, int subpic_params_present) |
static int | decode_hrd (GetBitContext *gb, int common_inf_present, HEVCHdrParams *hdr, int max_sublayers) |
static void | hevc_vps_free (FFRefStructOpaque opaque, void *obj) |
static int | decode_vps_ext (GetBitContext *gb, AVCodecContext *avctx, HEVCVPS *vps, uint64_t layer1_id_included) |
int | ff_hevc_decode_nal_vps (GetBitContext *gb, AVCodecContext *avctx, HEVCParamSets *ps) |
static void | decode_vui (GetBitContext *gb, AVCodecContext *avctx, int apply_defdispwin, HEVCSPS *sps) |
static void | set_default_scaling_list_data (ScalingList *sl) |
static int | scaling_list_data (GetBitContext *gb, AVCodecContext *avctx, ScalingList *sl, const HEVCSPS *sps) |
static int | map_pixel_format (AVCodecContext *avctx, HEVCSPS *sps) |
int | ff_hevc_parse_sps (HEVCSPS *sps, GetBitContext *gb, unsigned int *sps_id, unsigned nuh_layer_id, int apply_defdispwin, const HEVCVPS *const *vps_list, AVCodecContext *avctx) |
Parse the SPS from the bitstream into the provided HEVCSPS struct. More... | |
static void | hevc_sps_free (FFRefStructOpaque opaque, void *obj) |
static int | compare_sps (const HEVCSPS *sps1, const HEVCSPS *sps2) |
int | ff_hevc_decode_nal_sps (GetBitContext *gb, AVCodecContext *avctx, HEVCParamSets *ps, unsigned nuh_layer_id, int apply_defdispwin) |
static void | hevc_pps_free (FFRefStructOpaque unused, void *obj) |
static void | colour_mapping_octants (GetBitContext *gb, HEVCPPS *pps, int inp_depth, int idx_y, int idx_cb, int idx_cr, int inp_length) |
static int | colour_mapping_table (GetBitContext *gb, AVCodecContext *avctx, HEVCPPS *pps) |
static int | pps_multilayer_extension (GetBitContext *gb, AVCodecContext *avctx, HEVCPPS *pps, const HEVCSPS *sps, const HEVCVPS *vps) |
static void | delta_dlt (GetBitContext *gb, HEVCPPS *pps) |
static int | pps_3d_extension (GetBitContext *gb, AVCodecContext *avctx, HEVCPPS *pps, const HEVCSPS *sps) |
static int | pps_range_extensions (GetBitContext *gb, AVCodecContext *avctx, HEVCPPS *pps, const HEVCSPS *sps) |
static int | pps_scc_extension (GetBitContext *gb, AVCodecContext *avctx, HEVCPPS *pps, const HEVCSPS *sps) |
static int | setup_pps (AVCodecContext *avctx, GetBitContext *gb, HEVCPPS *pps, const HEVCSPS *sps) |
int | ff_hevc_decode_nal_pps (GetBitContext *gb, AVCodecContext *avctx, HEVCParamSets *ps) |
void | ff_hevc_ps_uninit (HEVCParamSets *ps) |
int | ff_hevc_compute_poc (const HEVCSPS *sps, int pocTid0, int poc_lsb, int nal_unit_type) |
Compute POC of the current frame and return it. More... | |
Variables | |
static const uint8_t | default_scaling_list_intra [] |
static const uint8_t | default_scaling_list_inter [] |
static const uint8_t | hevc_sub_width_c [] |
static const uint8_t | hevc_sub_height_c [] |
#define check_profile_idc | ( | idc | ) | ptl->profile_idc == idc || ptl->profile_compatibility_flag[idc] |
#define CHECK_QP_OFFSET | ( | name | ) |
enum ScalabilityMask |
enum DependencyType |
|
static |
Definition at line 65 of file ps.c.
Referenced by ff_hevc_decode_nal_sps(), and remove_vps().
|
static |
Definition at line 78 of file ps.c.
Referenced by ff_hevc_decode_nal_vps().
int ff_hevc_decode_short_term_rps | ( | GetBitContext * | gb, |
AVCodecContext * | avctx, | ||
ShortTermRPS * | rps, | ||
const HEVCSPS * | sps, | ||
int | is_slice_header | ||
) |
Definition at line 89 of file ps.c.
Referenced by ff_hevc_parse_sps(), and hls_slice_header().
|
static |
Definition at line 238 of file ps.c.
Referenced by parse_ptl().
|
static |
Definition at line 313 of file ps.c.
Referenced by decode_vps_ext(), ff_hevc_decode_nal_vps(), and ff_hevc_parse_sps().
|
static |
Definition at line 359 of file ps.c.
Referenced by decode_hrd().
|
static |
Definition at line 377 of file ps.c.
Referenced by decode_vui(), and ff_hevc_decode_nal_vps().
|
static |
Definition at line 445 of file ps.c.
Referenced by ff_hevc_decode_nal_vps().
|
static |
For stereoscopic MV-HEVC, the following simplifying assumptions are made:
Which results in the following derived variables:
Definition at line 467 of file ps.c.
Referenced by ff_hevc_decode_nal_vps().
int ff_hevc_decode_nal_vps | ( | GetBitContext * | gb, |
AVCodecContext * | avctx, | ||
HEVCParamSets * | ps | ||
) |
Definition at line 716 of file ps.c.
Referenced by decode_nal_unit(), hevc_decode_nal_units(), and parse_nal_units().
|
static |
Definition at line 871 of file ps.c.
Referenced by ff_hevc_parse_sps().
|
static |
Definition at line 998 of file ps.c.
Referenced by ff_hevc_decode_nal_pps(), and ff_hevc_parse_sps().
|
static |
Definition at line 1028 of file ps.c.
Referenced by ff_hevc_decode_nal_pps(), and ff_hevc_parse_sps().
|
static |
Definition at line 1105 of file ps.c.
Referenced by ff_hevc_parse_sps().
int ff_hevc_parse_sps | ( | HEVCSPS * | sps, |
GetBitContext * | gb, | ||
unsigned int * | sps_id, | ||
unsigned | nuh_layer_id, | ||
int | apply_defdispwin, | ||
const HEVCVPS *const * | vps_list, | ||
AVCodecContext * | avctx | ||
) |
Parse the SPS from the bitstream into the provided HEVCSPS struct.
sps_id | the SPS id will be written here |
apply_defdispwin | if set 1, the default display window from the VUI will be applied to the video dimensions |
vps_list | if non-NULL, this function will validate that the SPS refers to an existing VPS |
Definition at line 1154 of file ps.c.
Referenced by ff_hevc_decode_nal_sps(), and generate_fake_vps().
|
static |
Definition at line 1635 of file ps.c.
Referenced by ff_hevc_decode_nal_sps().
Definition at line 1644 of file ps.c.
Referenced by ff_hevc_decode_nal_sps().
int ff_hevc_decode_nal_sps | ( | GetBitContext * | gb, |
AVCodecContext * | avctx, | ||
HEVCParamSets * | ps, | ||
unsigned | nuh_layer_id, | ||
int | apply_defdispwin | ||
) |
Definition at line 1650 of file ps.c.
Referenced by decode_nal_unit(), hevc_decode_nal_units(), and parse_nal_units().
|
static |
Definition at line 1703 of file ps.c.
Referenced by ff_hevc_decode_nal_pps().
|
static |
Definition at line 1722 of file ps.c.
Referenced by colour_mapping_table().
|
static |
Definition at line 1759 of file ps.c.
Referenced by pps_multilayer_extension().
|
static |
Definition at line 1791 of file ps.c.
Referenced by ff_hevc_decode_nal_pps().
|
static |
Definition at line 1840 of file ps.c.
Referenced by pps_3d_extension().
|
static |
Definition at line 1862 of file ps.c.
Referenced by ff_hevc_decode_nal_pps().
|
static |
Definition at line 1886 of file ps.c.
Referenced by ff_hevc_decode_nal_pps().
|
static |
Definition at line 1926 of file ps.c.
Referenced by ff_hevc_decode_nal_pps().
|
inlinestatic |
int ff_hevc_decode_nal_pps | ( | GetBitContext * | gb, |
AVCodecContext * | avctx, | ||
HEVCParamSets * | ps | ||
) |
Definition at line 2112 of file ps.c.
Referenced by decode_nal_unit(), hevc_decode_nal_units(), and parse_nal_units().
void ff_hevc_ps_uninit | ( | HEVCParamSets * | ps | ) |
Definition at line 2384 of file ps.c.
Referenced by hevc_decode_free(), and hevc_parser_close().
int ff_hevc_compute_poc | ( | const HEVCSPS * | sps, |
int | pocTid0, | ||
int | poc_lsb, | ||
int | nal_unit_type | ||
) |
Compute POC of the current frame and return it.
Definition at line 2396 of file ps.c.
Referenced by hevc_parse_slice_header(), and hls_slice_header().
|
static |
Definition at line 35 of file ps.c.
Referenced by set_default_scaling_list_data().
|
static |
Definition at line 46 of file ps.c.
Referenced by set_default_scaling_list_data().
|
static |
Definition at line 57 of file ps.c.
Referenced by decode_vps_ext(), decode_vui(), and ff_hevc_parse_sps().
|
static |
Definition at line 61 of file ps.c.
Referenced by decode_vps_ext(), decode_vui(), and ff_hevc_parse_sps().