From 54bfffcabc4601081f93b3196dc4b7406ac6ca6d Mon Sep 17 00:00:00 2001 From: skal Date: Wed, 14 May 2014 07:07:08 +0200 Subject: [PATCH] move RemapBitReader() from idec.c to bit_reader code mostly for coherency and later patch. Change-Id: Ica8352d67845b6c5b3153435edfb4646c6f24341 --- src/dec/idec.c | 11 ++--------- src/utils/bit_reader.c | 7 +++++++ src/utils/bit_reader.h | 4 ++++ 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/dec/idec.c b/src/dec/idec.c index 78208380..6e8d5985 100644 --- a/src/dec/idec.c +++ b/src/dec/idec.c @@ -86,13 +86,6 @@ typedef struct { //------------------------------------------------------------------------------ // MemBuffer: incoming data handling -static void RemapBitReader(VP8BitReader* const br, ptrdiff_t offset) { - if (br->buf_ != NULL) { - br->buf_ += offset; - br->buf_end_ += offset; - } -} - static WEBP_INLINE size_t MemDataSize(const MemBuffer* mem) { return (mem->end_ - mem->start_); } @@ -129,12 +122,12 @@ static void DoRemap(WebPIDecoder* const idec, ptrdiff_t offset) { if (offset != 0) { int p; for (p = 0; p <= last_part; ++p) { - RemapBitReader(dec->parts_ + p, offset); + VP8RemapBitReader(dec->parts_ + p, offset); } // Remap partition #0 data pointer to new offset, but only in MAP // mode (in APPEND mode, partition #0 is copied into a fixed memory). if (mem->mode_ == MEM_MODE_MAP) { - RemapBitReader(&dec->br_, offset); + VP8RemapBitReader(&dec->br_, offset); } } assert(last_part >= 0); diff --git a/src/utils/bit_reader.c b/src/utils/bit_reader.c index 79f64d36..e236b687 100644 --- a/src/utils/bit_reader.c +++ b/src/utils/bit_reader.c @@ -35,6 +35,13 @@ void VP8InitBitReader(VP8BitReader* const br, br->eof_ = 0; } +void VP8RemapBitReader(VP8BitReader* const br, ptrdiff_t offset) { + if (br->buf_ != NULL) { + br->buf_ += offset; + br->buf_end_ += offset; + } +} + const uint8_t kVP8Log2Range[128] = { 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, diff --git a/src/utils/bit_reader.h b/src/utils/bit_reader.h index 02296796..7865e7b9 100644 --- a/src/utils/bit_reader.h +++ b/src/utils/bit_reader.h @@ -141,6 +141,10 @@ struct VP8BitReader { void VP8InitBitReader(VP8BitReader* const br, const uint8_t* const start, const uint8_t* const end); +// Update internal pointers to displace the byte buffer by the +// relative offset 'offset'. +void VP8RemapBitReader(VP8BitReader* const br, ptrdiff_t offset); + // return the next value made of 'num_bits' bits uint32_t VP8GetValue(VP8BitReader* const br, int num_bits); static WEBP_INLINE uint32_t VP8Get(VP8BitReader* const br) {