summaryrefslogtreecommitdiff
path: root/libavcodec/hevc.h
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/hevc.h')
-rw-r--r--libavcodec/hevc.h27
1 files changed, 18 insertions, 9 deletions
diff --git a/libavcodec/hevc.h b/libavcodec/hevc.h
index aa91bdd607..73824514c9 100644
--- a/libavcodec/hevc.h
+++ b/libavcodec/hevc.h
@@ -557,6 +557,17 @@ typedef struct HEVCPPS {
int *min_tb_addr_zs_tab;///< MinTbAddrZS
} HEVCPPS;
+typedef struct HEVCParamSets {
+ AVBufferRef *vps_list[MAX_VPS_COUNT];
+ AVBufferRef *sps_list[MAX_SPS_COUNT];
+ AVBufferRef *pps_list[MAX_PPS_COUNT];
+
+ /* currently active parameter sets */
+ const HEVCVPS *vps;
+ const HEVCSPS *sps;
+ const HEVCPPS *pps;
+} HEVCParamSets;
+
typedef struct SliceHeader {
unsigned int pps_id;
@@ -813,12 +824,7 @@ typedef struct HEVCContext {
uint8_t *sao_pixel_buffer_h[3];
uint8_t *sao_pixel_buffer_v[3];
- const HEVCVPS *vps;
- const HEVCSPS *sps;
- const HEVCPPS *pps;
- AVBufferRef *vps_list[MAX_VPS_COUNT];
- AVBufferRef *sps_list[MAX_SPS_COUNT];
- AVBufferRef *pps_list[MAX_PPS_COUNT];
+ HEVCParamSets ps;
AVBufferPool *tab_mvf_pool;
AVBufferPool *rpl_tab_pool;
@@ -939,9 +945,12 @@ int ff_hevc_decode_short_term_rps(GetBitContext *gb, AVCodecContext *avctx,
int ff_hevc_parse_sps(HEVCSPS *sps, GetBitContext *gb, unsigned int *sps_id,
int apply_defdispwin, AVBufferRef **vps_list, AVCodecContext *avctx);
-int ff_hevc_decode_nal_vps(HEVCContext *s);
-int ff_hevc_decode_nal_sps(HEVCContext *s);
-int ff_hevc_decode_nal_pps(HEVCContext *s);
+int ff_hevc_decode_nal_vps(GetBitContext *gb, AVCodecContext *avctx,
+ HEVCParamSets *ps);
+int ff_hevc_decode_nal_sps(GetBitContext *gb, AVCodecContext *avctx,
+ HEVCParamSets *ps, int apply_defdispwin);
+int ff_hevc_decode_nal_pps(GetBitContext *gb, AVCodecContext *avctx,
+ HEVCParamSets *ps);
int ff_hevc_decode_nal_sei(HEVCContext *s);
/**