[FFmpeg-devel] [PATCH 3/7] hevc: store the short term rps flag and size in the context

Hendrik Leppkes h.leppkes at gmail.com
Sat Jan 24 15:26:17 CET 2015


For future use by hardware accelerators.
---
 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 778f39b..36c7b47 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;
-- 
1.9.5.msysgit.0



More information about the ffmpeg-devel mailing list