[FFmpeg-cvslog] magicyuv: Convert to the new bitstream reader

Diego Biurrun git at videolan.org
Fri May 19 12:53:14 EEST 2017


ffmpeg | branch: master | Diego Biurrun <diego at biurrun.de> | Tue Jun 21 14:35:53 2016 +0200| [2e0e150144d6c8fe641a45141638559fbf4d9642] | committer: Diego Biurrun

magicyuv: Convert to the new bitstream reader

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

 libavcodec/magicyuv.c | 33 +++++++++++++++++----------------
 1 file changed, 17 insertions(+), 16 deletions(-)

diff --git a/libavcodec/magicyuv.c b/libavcodec/magicyuv.c
index 310ead4b06..027143fc87 100644
--- a/libavcodec/magicyuv.c
+++ b/libavcodec/magicyuv.c
@@ -22,14 +22,15 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "../libavutil/pixdesc.h"
+#include "libavutil/pixdesc.h"
 
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bytestream.h"
-#include "get_bits.h"
 #include "huffyuvdsp.h"
 #include "internal.h"
 #include "thread.h"
+#include "vlc.h"
 
 typedef struct Slice {
     uint32_t start;
@@ -108,7 +109,7 @@ static int magy_decode_slice(AVCodecContext *avctx, void *tdata,
     int interlaced = s->interlaced;
     AVFrame *p = s->p;
     int i, k, x;
-    GetBitContext gb;
+    BitstreamContext bc;
     uint8_t *dst;
 
     for (i = 0; i < s->planes; i++) {
@@ -119,20 +120,20 @@ static int magy_decode_slice(AVCodecContext *avctx, void *tdata,
         ptrdiff_t fake_stride = p->linesize[i] * (1 + interlaced);
         ptrdiff_t stride = p->linesize[i];
         int flags, pred;
-        int ret = init_get_bits8(&gb, s->buf + s->slices[i][j].start,
-                                 s->slices[i][j].size);
+        int ret = bitstream_init8(&bc, s->buf + s->slices[i][j].start,
+                                  s->slices[i][j].size);
 
         if (ret < 0)
             return ret;
 
-        flags = get_bits(&gb, 8);
-        pred  = get_bits(&gb, 8);
+        flags = bitstream_read(&bc, 8);
+        pred  = bitstream_read(&bc, 8);
 
         dst = p->data[i] + j * sheight * stride;
         if (flags & 1) {
             for (k = 0; k < height; k++) {
                 for (x = 0; x < width; x++)
-                    dst[x] = get_bits(&gb, 8);
+                    dst[x] = bitstream_read(&bc, 8);
 
                 dst += stride;
             }
@@ -140,10 +141,10 @@ static int magy_decode_slice(AVCodecContext *avctx, void *tdata,
             for (k = 0; k < height; k++) {
                 for (x = 0; x < width; x++) {
                     int pix;
-                    if (get_bits_left(&gb) <= 0)
+                    if (bitstream_bits_left(&bc) <= 0)
                         return AVERROR_INVALIDDATA;
 
-                    pix = get_vlc2(&gb, s->vlc[i].table, s->vlc[i].bits, 3);
+                    pix = bitstream_read_vlc(&bc, s->vlc[i].table, s->vlc[i].bits, 3);
                     if (pix < 0)
                         return AVERROR_INVALIDDATA;
 
@@ -238,7 +239,7 @@ static int magy_decode_frame(AVCodecContext *avctx, void *data,
     ThreadFrame frame = { .f = data };
     AVFrame *p = data;
     GetByteContext gbyte;
-    GetBitContext gbit;
+    BitstreamContext bc;
     uint32_t first_offset, offset, next_offset, header_size, slice_width;
     int width, height, format, version, table_size;
     int ret, i, j, k;
@@ -370,16 +371,16 @@ static int magy_decode_frame(AVCodecContext *avctx, void *data,
     if (table_size < 2)
         return AVERROR_INVALIDDATA;
 
-    ret = init_get_bits8(&gbit, avpkt->data + bytestream2_tell(&gbyte), table_size);
+    ret = bitstream_init8(&bc, avpkt->data + bytestream2_tell(&gbyte), table_size);
     if (ret < 0)
         return ret;
 
     memset(s->len, 0, sizeof(s->len));
     j = i = 0;
-    while (get_bits_left(&gbit) >= 8) {
-        int b = get_bits(&gbit, 4);
-        int x = get_bits(&gbit, 4);
-        int l = get_bitsz(&gbit, b) + 1;
+    while (bitstream_bits_left(&bc) >= 8) {
+        int b = bitstream_read(&bc, 4);
+        int x = bitstream_read(&bc, 4);
+        int l = bitstream_read(&bc, b) + 1;
 
         for (k = 0; k < l; k++)
             if (j + k < 256)



More information about the ffmpeg-cvslog mailing list