[FFmpeg-cvslog] hevc: store the short term rps flag and size in the context
Hendrik Leppkes
git at videolan.org
Tue Jan 27 12:46:48 CET 2015
ffmpeg | branch: master | Hendrik Leppkes <h.leppkes at gmail.com> | Sun Jan 25 13:01:08 2015 +0100| [06894f1a04dda384ab3632b2342f0f97ec9ebed9] | committer: Michael Niedermayer
hevc: store the short term rps flag and size in the context
For future use by hardware accelerators.
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=06894f1a04dda384ab3632b2342f0f97ec9ebed9
---
libavcodec/hevc.c | 8 +++++---
libavcodec/hevc.h | 2 ++
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c
index bcbb889..1a908d5 100644
--- a/libavcodec/hevc.c
+++ b/libavcodec/hevc.c
@@ -474,7 +474,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);
@@ -487,12 +487,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;
diff --git a/libavcodec/hevc.h b/libavcodec/hevc.h
index c0fad27..8555d47 100644
--- a/libavcodec/hevc.h
+++ b/libavcodec/hevc.h
@@ -575,6 +575,8 @@ typedef struct SliceHeader {
uint8_t colour_plane_id;
///< RPS coded in the slice header itself is stored here
+ int short_term_ref_pic_set_sps_flag;
+ int short_term_ref_pic_set_size;
ShortTermRPS slice_rps;
const ShortTermRPS *short_term_rps;
LongTermRPS long_term_rps;
More information about the ffmpeg-cvslog
mailing list