summaryrefslogtreecommitdiff
path: root/libavcodec/hevc.c
diff options
context:
space:
mode:
authorHendrik Leppkes <h.leppkes@gmail.com>2015-01-25 12:58:47 +0100
committerAnton Khirnov <anton@khirnov.net>2015-01-27 09:04:59 +0100
commit4b95e95dbae58c9b60891284bf8b5bbd83e5293a (patch)
tree0f2f1ba952e742727904252e41bbaff0f754b4a1 /libavcodec/hevc.c
parent36779a84051eae6744cc936d91b1d428143665ba (diff)
hevc: store the short term rps flag and size in the context
For future use by hardware accelerators. Signed-off-by: Anton Khirnov <anton@khirnov.net>
Diffstat (limited to 'libavcodec/hevc.c')
-rw-r--r--libavcodec/hevc.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c
index 560d52c458..0148aba658 100644
--- a/libavcodec/hevc.c
+++ b/libavcodec/hevc.c
@@ -552,7 +552,7 @@ static int hls_slice_header(HEVCContext *s)
sh->colour_plane_id = get_bits(gb, 2);
if (!IS_IDR(s)) {
- int short_term_ref_pic_set_sps_flag, poc;
+ int poc;
sh->pic_order_cnt_lsb = get_bits(gb, s->sps->log2_max_poc_lsb);
poc = ff_hevc_compute_poc(s, sh->pic_order_cnt_lsb);
@@ -565,12 +565,14 @@ static int hls_slice_header(HEVCContext *s)
}
s->poc = poc;
- short_term_ref_pic_set_sps_flag = get_bits1(gb);
- if (!short_term_ref_pic_set_sps_flag) {
+ sh->short_term_ref_pic_set_sps_flag = get_bits1(gb);
+ if (!sh->short_term_ref_pic_set_sps_flag) {
+ int pos = get_bits_left(gb);
ret = ff_hevc_decode_short_term_rps(s, &sh->slice_rps, s->sps, 1);
if (ret < 0)
return ret;
+ sh->short_term_ref_pic_set_size = pos - get_bits_left(gb);
sh->short_term_rps = &sh->slice_rps;
} else {
int numbits, rps_idx;