summaryrefslogtreecommitdiff
path: root/libavcodec/hevc.h
diff options
context:
space:
mode:
authorgcocherel <gildas.cocherel@laposte.net>2013-11-21 11:25:32 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-11-22 01:29:02 +0100
commit36658c978f5d7df2ce556075946f3a80f7eca753 (patch)
treee519bb5ee4a878d5897d70b095ab1e9ba9c37b76 /libavcodec/hevc.h
parent7c98c834e0a2855d5c612fd22f6f2826c1116a9a (diff)
hevc : update hevc_ps.c
(cherry picked from commit 088f2eb1ae42bffc63c2cee4e7eba8f47056043b) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/hevc.h')
-rw-r--r--libavcodec/hevc.h33
1 files changed, 21 insertions, 12 deletions
diff --git a/libavcodec/hevc.h b/libavcodec/hevc.h
index b8200b8a1d..74673a9f1a 100644
--- a/libavcodec/hevc.h
+++ b/libavcodec/hevc.h
@@ -330,12 +330,21 @@ typedef struct VUI {
int log2_max_mv_length_vertical;
} VUI;
+typedef struct ProfileTierLevel {
+ int profile_space;
+ uint8_t tier_flag;
+ int profile_idc;
+ int profile_compatibility_flag[32];
+ int level_idc;
+ int progressive_source_flag;
+ int interlaced_source_flag;
+ int non_packed_constraint_flag;
+ int frame_only_constraint_flag;
+} ProfileTierLevel;
+
typedef struct PTL {
- int general_profile_space;
- uint8_t general_tier_flag;
- int general_profile_idc;
- int general_profile_compatibility_flag[32];
- int general_level_idc;
+ ProfileTierLevel general_PTL;
+ ProfileTierLevel sub_layer_PTL[MAX_SUB_LAYERS];
uint8_t sub_layer_profile_present_flag[MAX_SUB_LAYERS];
uint8_t sub_layer_level_present_flag[MAX_SUB_LAYERS];
@@ -365,6 +374,8 @@ typedef struct HEVCVPS {
uint8_t vps_poc_proportional_to_timing_flag;
int vps_num_ticks_poc_diff_one; ///< vps_num_ticks_poc_diff_one_minus1 + 1
int vps_num_hrd_parameters;
+
+ int vps_extension_flag;
} HEVCVPS;
typedef struct ScalingList {
@@ -757,12 +768,12 @@ typedef struct HEVCLocalContext {
typedef struct HEVCContext {
const AVClass *c; // needed by private avoptions
- AVCodecContext *avctx;
+ AVCodecContext *avctx;
- struct HEVCContext *sList[MAX_NB_THREADS];
+ struct HEVCContext *sList[MAX_NB_THREADS];
- HEVCLocalContext *HEVClcList[MAX_NB_THREADS];
- HEVCLocalContext *HEVClc;
+ HEVCLocalContext *HEVClcList[MAX_NB_THREADS];
+ HEVCLocalContext *HEVClc;
uint8_t threads_type;
uint8_t threads_number;
@@ -783,7 +794,7 @@ typedef struct HEVCContext {
HEVCVPS *vps;
const HEVCSPS *sps;
HEVCPPS *pps;
- HEVCVPS *vps_list[MAX_VPS_COUNT];
+ AVBufferRef *vps_list[MAX_VPS_COUNT];
AVBufferRef *sps_list[MAX_SPS_COUNT];
AVBufferRef *pps_list[MAX_PPS_COUNT];
@@ -982,14 +993,12 @@ int ff_hevc_cu_qp_delta_sign_flag(HEVCContext *s);
int ff_hevc_cu_qp_delta_abs(HEVCContext *s);
void ff_hevc_hls_filter(HEVCContext *s, int x, int y);
void ff_hevc_hls_filters(HEVCContext *s, int x_ctb, int y_ctb, int ctb_size);
-
void ff_hevc_hls_residual_coding(HEVCContext *s, int x0, int y0,
int log2_trafo_size, enum ScanType scan_idx,
int c_idx);
void ff_hevc_hls_mvd_coding(HEVCContext *s, int x0, int y0, int log2_cb_size);
-void ff_hevc_pps_free(HEVCPPS **ppps);
extern const uint8_t ff_hevc_qpel_extra_before[4];
extern const uint8_t ff_hevc_qpel_extra_after[4];