diff options
author | Alexandra Hájková <alexandra@khirnov.net> | 2016-04-09 19:05:56 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2016-11-18 10:34:53 +0100 |
commit | d8618570beb52001c0e8960777bab6158a60b3f9 (patch) | |
tree | 0a8e189021630aabc3a04a7b4f2d3f0d5ac942ce | |
parent | 928f8c7ce360f464f1c5d3a363b2d4b1eb7c471f (diff) | |
download | ffmpeg-d8618570beb52001c0e8960777bab6158a60b3f9.tar.gz |
dvdsubdec: Convert to the new bitstream reader
Signed-off-by: Anton Khirnov <anton@khirnov.net>
-rw-r--r-- | libavcodec/dvdsubdec.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/libavcodec/dvdsubdec.c b/libavcodec/dvdsubdec.c index 86c287391f..b02bb6b93f 100644 --- a/libavcodec/dvdsubdec.c +++ b/libavcodec/dvdsubdec.c @@ -20,7 +20,7 @@ */ #include "avcodec.h" -#include "get_bits.h" +#include "bitstream.h" #include "internal.h" #include "libavutil/attributes.h" @@ -50,13 +50,13 @@ static void yuv_a_to_rgba(const uint8_t *ycbcr, const uint8_t *alpha, uint32_t * } } -static int decode_run_2bit(GetBitContext *gb, int *color) +static int decode_run_2bit(BitstreamContext *bc, int *color) { unsigned int v, t; v = 0; for (t = 1; v < t && t <= 0x40; t <<= 2) - v = (v << 4) | get_bits(gb, 4); + v = (v << 4) | bitstream_read(bc, 4); *color = v & 3; if (v < 4) { /* Code for fill rest of line */ return INT_MAX; @@ -64,23 +64,23 @@ static int decode_run_2bit(GetBitContext *gb, int *color) return v >> 2; } -static int decode_run_8bit(GetBitContext *gb, int *color) +static int decode_run_8bit(BitstreamContext *bc, int *color) { int len; - int has_run = get_bits1(gb); - if (get_bits1(gb)) - *color = get_bits(gb, 8); + int has_run = bitstream_read_bit(bc); + if (bitstream_read_bit(bc)) + *color = bitstream_read(bc, 8); else - *color = get_bits(gb, 2); + *color = bitstream_read(bc, 2); if (has_run) { - if (get_bits1(gb)) { - len = get_bits(gb, 7); + if (bitstream_read_bit(bc)) { + len = bitstream_read(bc, 7); if (len == 0) len = INT_MAX; else len += 9; } else - len = get_bits(gb, 3) + 2; + len = bitstream_read(bc, 3) + 2; } else len = 1; return len; @@ -89,24 +89,24 @@ static int decode_run_8bit(GetBitContext *gb, int *color) static int decode_rle(uint8_t *bitmap, int linesize, int w, int h, const uint8_t *buf, int start, int buf_size, int is_8bit) { - GetBitContext gb; + BitstreamContext bc; int bit_len; int x, y, len, color; uint8_t *d; bit_len = (buf_size - start) * 8; - init_get_bits(&gb, buf + start, bit_len); + bitstream_init(&bc, buf + start, bit_len); x = 0; y = 0; d = bitmap; for(;;) { - if (get_bits_count(&gb) > bit_len) + if (bitstream_tell(&bc) > bit_len) return -1; if (is_8bit) - len = decode_run_8bit(&gb, &color); + len = decode_run_8bit(&bc, &color); else - len = decode_run_2bit(&gb, &color); + len = decode_run_2bit(&bc, &color); len = FFMIN(len, w - x); memset(d + x, color, len); x += len; @@ -117,7 +117,7 @@ static int decode_rle(uint8_t *bitmap, int linesize, int w, int h, d += linesize; x = 0; /* byte align */ - align_get_bits(&gb); + bitstream_align(&bc); } } return 0; |