[FFmpeg-cvslog] avcodec/rv30: cleanup rpr handling

Michael Niedermayer git at videolan.org
Sat Jan 4 04:35:58 CET 2014


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sat Jan  4 04:16:46 2014 +0100| [a881b9aa08af79b4fb15b912842e203a732fa9af] | committer: Michael Niedermayer

avcodec/rv30: cleanup rpr handling

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libavcodec/rv30.c |    6 +++---
 libavcodec/rv34.h |    2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/libavcodec/rv30.c b/libavcodec/rv30.c
index 9e27270..6c65afb 100644
--- a/libavcodec/rv30.c
+++ b/libavcodec/rv30.c
@@ -50,7 +50,7 @@ static int rv30_parse_slice_header(RV34DecContext *r, GetBitContext *gb, SliceIn
     si->quant = get_bits(gb, 5);
     skip_bits1(gb);
     si->pts = get_bits(gb, 13);
-    rpr = get_bits(gb, r->rpr);
+    rpr = get_bits(gb, av_log2(r->max_rpr) + 1);
     if(rpr){
         if (avctx->extradata_size < rpr * 2 + 8) {
             av_log(avctx, AV_LOG_ERROR,
@@ -260,8 +260,8 @@ static av_cold int rv30_decode_init(AVCodecContext *avctx)
         av_log(avctx, AV_LOG_ERROR, "Extradata is too small.\n");
         return -1;
     }
-    r->rpr = (avctx->extradata[1] & 7) >> 1;
-    r->rpr = FFMIN(r->rpr + 1, 3);
+
+    r->max_rpr = avctx->extradata[1] & 7;
 
     r->parse_slice_header = rv30_parse_slice_header;
     r->decode_intra_types = rv30_decode_intra_types;
diff --git a/libavcodec/rv34.h b/libavcodec/rv34.h
index 475f17a..870164c 100644
--- a/libavcodec/rv34.h
+++ b/libavcodec/rv34.h
@@ -102,7 +102,7 @@ typedef struct RV34DecContext{
     int dmv[4][2];           ///< differential motion vectors for the current macroblock
 
     int rv30;                ///< indicates which RV variasnt is currently decoded
-    int rpr;                 ///< one field size in RV30 slice header
+    int max_rpr;
 
     int cur_pts, last_pts, next_pts;
     int scaled_weight;



More information about the ffmpeg-cvslog mailing list