[FFmpeg-cvslog] h264_cavlc: constify all uses of H264Context

Anton Khirnov git at videolan.org
Sat Mar 21 18:26:49 CET 2015


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Tue Jan 27 15:53:33 2015 +0100| [7505c8dfba255f8e6c6dbb574d0cec91da16f24d] | committer: Anton Khirnov

h264_cavlc: constify all uses of H264Context

All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7505c8dfba255f8e6c6dbb574d0cec91da16f24d
---

 libavcodec/h264.h       |    2 +-
 libavcodec/h264_cavlc.c |   13 +++++++++----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index 495f5e7..6e907a4 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -814,7 +814,7 @@ void ff_h264_decode_init_vlc(void);
  * Decode a macroblock
  * @return 0 if OK, ER_AC_ERROR / ER_DC_ERROR / ER_MV_ERROR on error
  */
-int ff_h264_decode_mb_cavlc(H264Context *h, H264SliceContext *sl);
+int ff_h264_decode_mb_cavlc(const H264Context *h, H264SliceContext *sl);
 
 /**
  * Decode a CABAC coded macroblock
diff --git a/libavcodec/h264_cavlc.c b/libavcodec/h264_cavlc.c
index 4e531db..0a7dca2 100644
--- a/libavcodec/h264_cavlc.c
+++ b/libavcodec/h264_cavlc.c
@@ -283,7 +283,7 @@ static int8_t cavlc_level_tab[7][1<<LEVEL_TAB_BITS][2];
  * Get the predicted number of non-zero coefficients.
  * @param n block index
  */
-static inline int pred_non_zero_count(H264Context *h, H264SliceContext *sl, int n)
+static inline int pred_non_zero_count(const H264Context *h, H264SliceContext *sl, int n)
 {
     const int index8= scan8[n];
     const int left = sl->non_zero_count_cache[index8 - 1];
@@ -442,7 +442,7 @@ static inline int get_level_prefix(GetBitContext *gb){
  * @param max_coeff number of coefficients in the block
  * @return <0 if an error occurred
  */
-static int decode_residual(H264Context *h, H264SliceContext *sl,
+static int decode_residual(const H264Context *h, H264SliceContext *sl,
                            GetBitContext *gb, int16_t *block, int n,
                            const uint8_t *scantable, const uint32_t *qmul,
                            int max_coeff)
@@ -628,7 +628,12 @@ static int decode_residual(H264Context *h, H264SliceContext *sl,
     return 0;
 }
 
-static av_always_inline int decode_luma_residual(H264Context *h, H264SliceContext *sl, GetBitContext *gb, const uint8_t *scan, const uint8_t *scan8x8, int pixel_shift, int mb_type, int cbp, int p){
+static av_always_inline
+int decode_luma_residual(const H264Context *h, H264SliceContext *sl,
+                         GetBitContext *gb, const uint8_t *scan,
+                         const uint8_t *scan8x8, int pixel_shift,
+                         int mb_type, int cbp, int p)
+{
     int i4x4, i8x8;
     int qscale = p == 0 ? sl->qscale : sl->chroma_qp[p - 1];
     if(IS_INTRA16x16(mb_type)){
@@ -694,7 +699,7 @@ static av_always_inline int decode_luma_residual(H264Context *h, H264SliceContex
     }
 }
 
-int ff_h264_decode_mb_cavlc(H264Context *h, H264SliceContext *sl)
+int ff_h264_decode_mb_cavlc(const H264Context *h, H264SliceContext *sl)
 {
     int mb_xy;
     int partition_count;



More information about the ffmpeg-cvslog mailing list