[FFmpeg-cvslog] hevc: Add NEON 4x4 and 8x8 IDCT

2017-10-24 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | 
Mon Mar 27 09:52:55 2017 +0200| [0b9a237b2386ff84a6f99716bd58fa27a1b767e7] | 
committer: Martin Storsjö

hevc: Add NEON 4x4 and 8x8 IDCT

Optimized by Martin Storsjö .

The speedup vs C code is around 3.2-4.4x.

Signed-off-by: Martin Storsjö 

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

 libavcodec/arm/Makefile   |   2 +
 libavcodec/arm/hevc_idct.S| 228 ++
 libavcodec/arm/hevcdsp_init_arm.c |  47 
 libavcodec/hevcdsp.c  |   2 +
 libavcodec/hevcdsp.h  |   1 +
 5 files changed, 280 insertions(+)

diff --git a/libavcodec/arm/Makefile b/libavcodec/arm/Makefile
index 77452b126d..555de160e4 100644
--- a/libavcodec/arm/Makefile
+++ b/libavcodec/arm/Makefile
@@ -134,6 +134,8 @@ NEON-OBJS-$(CONFIG_AAC_DECODER)+= 
arm/aacpsdsp_neon.o   \
 NEON-OBJS-$(CONFIG_APE_DECODER)+= arm/apedsp_neon.o
 NEON-OBJS-$(CONFIG_DCA_DECODER)+= arm/dcadsp_neon.o \
   arm/synth_filter_neon.o
+NEON-OBJS-$(CONFIG_HEVC_DECODER)   += arm/hevc_idct.o   \
+  arm/hevcdsp_init_arm.o
 NEON-OBJS-$(CONFIG_RV30_DECODER)   += arm/rv34dsp_neon.o
 NEON-OBJS-$(CONFIG_RV40_DECODER)   += arm/rv34dsp_neon.o\
   arm/rv40dsp_neon.o
diff --git a/libavcodec/arm/hevc_idct.S b/libavcodec/arm/hevc_idct.S
new file mode 100644
index 00..4124fc8226
--- /dev/null
+++ b/libavcodec/arm/hevc_idct.S
@@ -0,0 +1,228 @@
+/*
+ * ARM NEON optimised IDCT functions for HEVC decoding
+ * Copyright (c) 2017 Alexandra Hájková
+ *
+ * This file is part of Libav.
+ *
+ * Libav is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * Libav is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with Libav; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "libavutil/arm/asm.S"
+
+const trans, align=4
+.short 64, 83, 64, 36
+.short 89, 75, 50, 18
+.short 90, 87, 80, 70
+.short 57, 43, 25, 9
+endconst
+
+.macro sum_sub out, in, c, op
+  .ifc \op, +
+vmlal.s16   \out, \in, \c
+  .else
+vmlsl.s16   \out, \in, \c
+  .endif
+.endm
+
+.macro tr_4x4 in0, in1, in2, in3, out0, out1, out2, out3, shift, tmp0, tmp1, 
tmp2, tmp3, tmp4
+ vshll.s16  \tmp0, \in0, #6
+ vmull.s16  \tmp2, \in1, d4[1]
+ vmov   \tmp1, \tmp0
+ vmull.s16  \tmp3, \in1, d4[3]
+ vmlal.s16  \tmp0, \in2, d4[0] @e0
+ vmlsl.s16  \tmp1, \in2, d4[0] @e1
+ vmlal.s16  \tmp2, \in3, d4[3] @o0
+ vmlsl.s16  \tmp3, \in3, d4[1] @o1
+
+ vadd.s32   \tmp4, \tmp0, \tmp2
+ vsub.s32   \tmp0, \tmp0, \tmp2
+ vadd.s32   \tmp2, \tmp1, \tmp3
+ vsub.s32   \tmp1, \tmp1, \tmp3
+ vqrshrn.s32\out0, \tmp4, #\shift
+ vqrshrn.s32\out3, \tmp0, #\shift
+ vqrshrn.s32\out1, \tmp2, #\shift
+ vqrshrn.s32\out2, \tmp1, #\shift
+.endm
+
+.macro tr_4x4_8 in0, in1, in2, in3, out0, out1, out2, out3, tmp0, tmp1, tmp2, 
tmp3
+ vshll.s16  \tmp0, \in0, #6
+ vld1.s16   {\in0}, [r1, :64]!
+ vmov   \tmp1, \tmp0
+ vmull.s16  \tmp2, \in1, \in0[1]
+ vmull.s16  \tmp3, \in1, \in0[3]
+ vmlal.s16  \tmp0, \in2, \in0[0] @e0
+ vmlsl.s16  \tmp1, \in2, \in0[0] @e1
+ vmlal.s16  \tmp2, \in3, \in0[3] @o0
+ vmlsl.s16  \tmp3, \in3, \in0[1] @o1
+
+ vld1.s16   {\in0}, [r1, :64]
+
+ vadd.s32   \out0, \tmp0, \tmp2
+ vadd.s32   \out1, \tmp1, \tmp3
+ vsub.s32   \out2, \tmp1, \tmp3
+ vsub.s32   \out3, \tmp0, \tmp2
+
+ subr1,  r1,  #8
+.endm
+
+@ Do a 4x4 transpose, using q registers for the subtransposes that don't
+@ need to address the indiviudal d registers.
+@ r0,r1 == rq0, r2,r3 == rq1
+.macro transpose_4x4 rq0, rq1, r0, r1, r2, r3
+vtrn.32 \rq0, \rq1
+vtrn.16 \r0,  \r1
+vtrn.16 \r2,  \r3
+.endm
+
+.macro idct_4x4 bitdepth
+function ff_hevc_idct_4x4_\bitdepth\()_neon, export=1
+@r0 - coeffs
+vld1.s16{q0-q1}, [r0, :128]
+
+movrel 

[FFmpeg-cvslog] hevc: Add NEON 16x16 IDCT

2017-10-27 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | 
Wed Apr 12 09:29:44 2017 +0200| [89d9869d2491d4209d707a8e7f29c58227ae5a4e] | 
committer: Martin Storsjö

hevc: Add NEON 16x16 IDCT

The speedup vs C code is around 6-13x.

Signed-off-by: Martin Storsjö 

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

 libavcodec/arm/hevc_idct.S| 197 ++
 libavcodec/arm/hevcdsp_init_arm.c |   4 +
 2 files changed, 201 insertions(+)

diff --git a/libavcodec/arm/hevc_idct.S b/libavcodec/arm/hevc_idct.S
index 4124fc8226..156d4765f0 100644
--- a/libavcodec/arm/hevc_idct.S
+++ b/libavcodec/arm/hevc_idct.S
@@ -222,7 +222,204 @@ function ff_hevc_idct_8x8_\bitdepth\()_neon, export=1
 endfunc
 .endm
 
+.macro butterfly e, o, tmp_p, tmp_m
+vadd.s32\tmp_p, \e, \o
+vsub.s32\tmp_m, \e, \o
+.endm
+
+.macro tr16_8x4 in0, in1, in2, in3, in4, in5, in6, in7
+tr_4x4_8\in0, \in2, \in4, \in6, q8, q9, q10, q11, q12, q13, 
q14, q15
+
+vmull.s16   q12, \in1, \in0[0]
+vmull.s16   q13, \in1, \in0[1]
+vmull.s16   q14, \in1, \in0[2]
+vmull.s16   q15, \in1, \in0[3]
+sum_sub q12, \in3, \in0[1], +
+sum_sub q13, \in3, \in0[3], -
+sum_sub q14, \in3, \in0[0], -
+sum_sub q15, \in3, \in0[2], -
+
+sum_sub q12, \in5, \in0[2], +
+sum_sub q13, \in5, \in0[0], -
+sum_sub q14, \in5, \in0[3], +
+sum_sub q15, \in5, \in0[1], +
+
+sum_sub q12, \in7, \in0[3], +
+sum_sub q13, \in7, \in0[2], -
+sum_sub q14, \in7, \in0[1], +
+sum_sub q15, \in7, \in0[0], -
+
+butterfly   q8,  q12, q0, q7
+butterfly   q9,  q13, q1, q6
+butterfly   q10, q14, q2, q5
+butterfly   q11, q15, q3, q4
+add r4,  sp,  #512
+vst1.s16{q0-q1}, [r4, :128]!
+vst1.s16{q2-q3}, [r4, :128]!
+vst1.s16{q4-q5}, [r4, :128]!
+vst1.s16{q6-q7}, [r4, :128]
+.endm
+
+.macro load16 in0, in1, in2, in3, in4, in5, in6, in7
+vld1.s16{\in0}, [r1, :64], r2
+vld1.s16{\in1}, [r3, :64], r2
+vld1.s16{\in2}, [r1, :64], r2
+vld1.s16{\in3}, [r3, :64], r2
+vld1.s16{\in4}, [r1, :64], r2
+vld1.s16{\in5}, [r3, :64], r2
+vld1.s16{\in6}, [r1, :64], r2
+vld1.s16{\in7}, [r3, :64], r2
+.endm
+
+.macro add_member in, t0, t1, t2, t3, t4, t5, t6, t7, op0, op1, op2, op3, op4, 
op5, op6, op7
+sum_sub q5, \in, \t0, \op0
+sum_sub q6, \in, \t1, \op1
+sum_sub q7, \in, \t2, \op2
+sum_sub q8, \in, \t3, \op3
+sum_sub q9, \in, \t4, \op4
+sum_sub q10,\in, \t5, \op5
+sum_sub q11,\in, \t6, \op6
+sum_sub q12,\in, \t7, \op7
+.endm
+
+.macro butterfly16 in0, in1, in2, in3, in4, in5, in6, in7
+vadd.s32q4, \in0, \in1
+vsub.s32\in0, \in0, \in1
+vadd.s32\in1, \in2, \in3
+vsub.s32\in2, \in2, \in3
+vadd.s32\in3, \in4, \in5
+vsub.s32\in4, \in4, \in5
+vadd.s32\in5, \in6, \in7
+vsub.s32\in6, \in6, \in7
+.endm
+
+.macro store16 in0, in1, in2, in3, in4, in5, in6, in7
+vst1.s16\in0, [r1, :64], r2
+vst1.s16\in1, [r3, :64], r4
+vst1.s16\in2, [r1, :64], r2
+vst1.s16\in3, [r3, :64], r4
+vst1.s16\in4, [r1, :64], r2
+vst1.s16\in5, [r3, :64], r4
+vst1.s16\in6, [r1, :64], r2
+vst1.s16\in7, [r3, :64], r4
+.endm
+
+.macro scale out0, out1, out2, out3, out4, out5, out6, out7, in0, in1, in2, 
in3, in4, in5, in6, in7, shift
+vqrshrn.s32 \out0, \in0, \shift
+vqrshrn.s32 \out1, \in1, \shift
+vqrshrn.s32 \out2, \in2, \shift
+vqrshrn.s32 \out3, \in3, \shift
+vqrshrn.s32 \out4, \in4, \shift
+vqrshrn.s32 \out5, \in5, \shift
+vqrshrn.s32 \out6, \in6, \shift
+vqrshrn.s32 \out7, \in7, \shift
+.endm
+
+.macro tr_16x4 name, shift
+function func_tr_16x4_\name
+mov r1,  r5
+add r3,  r5, #64
+mov r2,  #128
+load16  d0, d1, d2, d3, d4, d5, d6, d7
+movrel  r1, trans
+
+tr16_8x4d0, d1, d2, d3, d4, d5, d6, d7
+
+add r1,  r5, #32
+add r3,  r5, #(64 + 32)
+mov r2,  #128
+load16  d8, d9, d2, d3, d4, d5, d6, d7
+movrel  r1, trans + 16
+vld1.s16{q0}, [r1, :128]
+vmull.s16   q5, d8, d0[0]
+vmull.

[FFmpeg-cvslog] hevc: Add support for bitdepth 10 for IDCT DC

2017-10-30 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | 
Tue Apr 25 19:43:41 2017 +0200| [3d69dd65c6771c28d3bf4e8e53a905aa8cd01fd9] | 
committer: Martin Storsjö

hevc: Add support for bitdepth 10 for IDCT DC

Signed-off-by: Martin Storsjö 

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

 libavcodec/arm/hevc_idct.S| 40 +++
 libavcodec/arm/hevcdsp_init_arm.c |  9 +
 2 files changed, 37 insertions(+), 12 deletions(-)

diff --git a/libavcodec/arm/hevc_idct.S b/libavcodec/arm/hevc_idct.S
index ceded7a45f..41b1b290bf 100644
--- a/libavcodec/arm/hevc_idct.S
+++ b/libavcodec/arm/hevc_idct.S
@@ -30,26 +30,29 @@ const trans, align=4
 .short 57, 43, 25, 9
 endconst
 
-function ff_hevc_idct_4x4_dc_8_neon, export=1
+.macro idct_4x4_dc bitdepth
+function ff_hevc_idct_4x4_dc_\bitdepth\()_neon, export=1
 ldrsh   r1, [r0]
-ldr r2, =0x20
+ldr r2, =(1 << (13 - \bitdepth))
 add r1, #1
 asr r1, #1
 add r1, r2
-asr r1, #6
+asr r1, #(14 - \bitdepth)
 vdup.16 q0, r1
 vdup.16 q1, r1
 vst1.16 {q0, q1}, [r0, :128]
 bx  lr
 endfunc
+.endm
 
-function ff_hevc_idct_8x8_dc_8_neon, export=1
+.macro idct_8x8_dc bitdepth
+function ff_hevc_idct_8x8_dc_\bitdepth\()_neon, export=1
 ldrsh   r1, [r0]
-ldr r2, =0x20
+ldr r2, =(1 << (13 - \bitdepth))
 add r1, #1
 asr r1, #1
 add r1, r2
-asr r1, #6
+asr r1, #(14 - \bitdepth)
 vdup.16 q8, r1
 vdup.16 q9, r1
 vmov.16 q10, q8
@@ -61,14 +64,16 @@ function ff_hevc_idct_8x8_dc_8_neon, export=1
 vstmr0, {q8-q15}
 bx  lr
 endfunc
+.endm
 
-function ff_hevc_idct_16x16_dc_8_neon, export=1
+.macro idct_16x16_dc bitdepth
+function ff_hevc_idct_16x16_dc_\bitdepth\()_neon, export=1
 ldrsh   r1, [r0]
-ldr r2, =0x20
+ldr r2, =(1 << (13 - \bitdepth))
 add r1, #1
 asr r1, #1
 add r1, r2
-asr r1, #6
+asr r1, #(14 - \bitdepth)
 vdup.16 q8, r1
 vdup.16 q9, r1
 vmov.16 q10, q8
@@ -83,14 +88,16 @@ function ff_hevc_idct_16x16_dc_8_neon, export=1
 vstmr0, {q8-q15}
 bx  lr
 endfunc
+.endm
 
-function ff_hevc_idct_32x32_dc_8_neon, export=1
+.macro idct_32x32_dc bitdepth
+function ff_hevc_idct_32x32_dc_\bitdepth\()_neon, export=1
 ldrsh   r1, [r0]
-ldr r2, =0x20
+ldr r2, =(1 << (13 - \bitdepth))
 add r1, #1
 asr r1, #1
 add r1, r2
-asr r1, #6
+asr r1, #(14 - \bitdepth)
 mov r3, #16
 vdup.16 q8, r1
 vdup.16 q9, r1
@@ -105,6 +112,7 @@ function ff_hevc_idct_32x32_dc_8_neon, export=1
 bne 1b
 bx  lr
 endfunc
+.endm
 
 .macro sum_sub out, in, c, op
   .ifc \op, +
@@ -496,8 +504,16 @@ tr_16x4 secondpass_10, 20 - 10
 .ltorg
 
 idct_4x4 8
+idct_4x4_dc 8
 idct_4x4 10
+idct_4x4_dc 10
 idct_8x8 8
+idct_8x8_dc 8
 idct_8x8 10
+idct_8x8_dc 10
 idct_16x16 8
+idct_16x16_dc 8
 idct_16x16 10
+idct_16x16_dc 10
+idct_32x32_dc 8
+idct_32x32_dc 10
diff --git a/libavcodec/arm/hevcdsp_init_arm.c 
b/libavcodec/arm/hevcdsp_init_arm.c
index fa2e7ad1e1..3d8d06b136 100644
--- a/libavcodec/arm/hevcdsp_init_arm.c
+++ b/libavcodec/arm/hevcdsp_init_arm.c
@@ -29,6 +29,10 @@ void ff_hevc_idct_4x4_dc_8_neon(int16_t *coeffs);
 void ff_hevc_idct_8x8_dc_8_neon(int16_t *coeffs);
 void ff_hevc_idct_16x16_dc_8_neon(int16_t *coeffs);
 void ff_hevc_idct_32x32_dc_8_neon(int16_t *coeffs);
+void ff_hevc_idct_4x4_dc_10_neon(int16_t *coeffs);
+void ff_hevc_idct_8x8_dc_10_neon(int16_t *coeffs);
+void ff_hevc_idct_16x16_dc_10_neon(int16_t *coeffs);
+void ff_hevc_idct_32x32_dc_10_neon(int16_t *coeffs);
 
 void ff_hevc_idct_4x4_8_neon(int16_t *coeffs, int col_limit);
 void ff_hevc_idct_8x8_8_neon(int16_t *coeffs, int col_limit);
@@ -53,6 +57,11 @@ av_cold void ff_hevc_dsp_init_arm(HEVCDSPContext *c, int 
bit_depth)
 c->idct[2] = ff_hevc_idct_16x16_8_neon;
 }
 if (bit_depth == 10) {
+c->idct_dc[0] = ff_hevc_idct_4x4_dc_10_neon;
+c->idct_dc[1] = ff_hevc_idct_8x8_dc_10_neon;
+c->idct_dc[2] = ff_hevc_idct_16x16_dc_10_neon;
+c->idct_dc[3] = ff_hevc_idct_32x32_dc_10_neon;
+
 c->idct[0] = ff_

[FFmpeg-cvslog] hevc: Add NEON add_residual for bitdepth 10

2017-10-30 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | 
Mon May  1 20:16:02 2017 +0200| [edbf0fffb15dde7a1de70b05855529d5fc769f14] | 
committer: Martin Storsjö

hevc: Add NEON add_residual for bitdepth 10

Signed-off-by: Martin Storsjö 

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

 libavcodec/arm/hevc_idct.S| 89 +++
 libavcodec/arm/hevcdsp_init_arm.c | 13 ++
 2 files changed, 102 insertions(+)

diff --git a/libavcodec/arm/hevc_idct.S b/libavcodec/arm/hevc_idct.S
index b3ce00b7fd..fac575818b 100644
--- a/libavcodec/arm/hevc_idct.S
+++ b/libavcodec/arm/hevc_idct.S
@@ -30,6 +30,13 @@ const trans, align=4
 .short 57, 43, 25, 9
 endconst
 
+.macro clip10 in1, in2, c1, c2
+vmax.s16\in1, \in1, \c1
+vmax.s16\in2, \in2, \c1
+vmin.s16\in1, \in1, \c2
+vmin.s16\in2, \in2, \c2
+.endm
+
 function ff_hevc_add_residual_4x4_8_neon, export=1
 vld1.16 {q0-q1}, [r1, :128]
 vld1.32 d4[0], [r0, :32], r2
@@ -50,6 +57,25 @@ function ff_hevc_add_residual_4x4_8_neon, export=1
 bx  lr
 endfunc
 
+function ff_hevc_add_residual_4x4_10_neon, export=1
+mov r12, r0
+vld1.16 {q0-q1}, [r1, :128]
+vld1.16 d4, [r12, :64], r2
+vld1.16 d5, [r12, :64], r2
+vld1.16 d6, [r12, :64], r2
+vqadd.s16   q0, q2
+vld1.16 d7, [r12, :64], r2
+vmov.s16q12, #0
+vqadd.s16   q1, q3
+vmvn.s16q13, #0xFC00 @ vmov.s16 #0x3FF
+clip10  q0, q1, q12, q13
+vst1.16 d0, [r0, :64], r2
+vst1.16 d1, [r0, :64], r2
+vst1.16 d2, [r0, :64], r2
+vst1.16 d3, [r0, :64], r2
+bx  lr
+endfunc
+
 function ff_hevc_add_residual_8x8_8_neon, export=1
 add r12, r0, r2
 add r2,  r2, r2
@@ -70,6 +96,25 @@ function ff_hevc_add_residual_8x8_8_neon, export=1
 bx  lr
 endfunc
 
+function ff_hevc_add_residual_8x8_10_neon, export=1
+add r12, r0, r2
+add r2,  r2, r2
+mov r3,  #8
+vmov.s16q12, #0
+vmvn.s16q13, #0xFC00 @ vmov.s16 #0x3FF
+1:  subsr3,  #2
+vld1.16 {q0-q1}, [r1, :128]!
+vld1.16 {q8},[r0, :128]
+vqadd.s16   q0, q8
+vld1.16 {q9},[r12, :128]
+vqadd.s16   q1, q9
+clip10  q0, q1, q12, q13
+vst1.16 {q0}, [r0, :128], r2
+vst1.16 {q1}, [r12, :128], r2
+bne 1b
+bx  lr
+endfunc
+
 function ff_hevc_add_residual_16x16_8_neon, export=1
 mov r3,  #16
 add r12, r0, r2
@@ -97,6 +142,29 @@ function ff_hevc_add_residual_16x16_8_neon, export=1
 bx  lr
 endfunc
 
+function ff_hevc_add_residual_16x16_10_neon, export=1
+mov r3,  #16
+vmov.s16q12, #0
+vmvn.s16q13, #0xFC00 @ vmov.s16 #0x3FF
+add r12, r0, r2
+add r2,  r2, r2
+1:  subsr3,  #2
+vld1.16 {q8-q9},   [r0, :128]
+vld1.16 {q0, q1},  [r1, :128]!
+vqadd.s16   q0, q8
+vld1.16 {q10-q11}, [r12, :128]
+vqadd.s16   q1, q9
+vld1.16 {q2, q3},  [r1, :128]!
+vqadd.s16   q2, q10
+vqadd.s16   q3, q11
+clip10  q0, q1, q12, q13
+clip10  q2, q3, q12, q13
+vst1.16 {q0-q1},   [r0, :128], r2
+vst1.16 {q2-q3},   [r12, :128], r2
+bne 1b
+bx  lr
+endfunc
+
 function ff_hevc_add_residual_32x32_8_neon, export=1
 vpush   {q4-q7}
 add r12, r0, r2
@@ -137,6 +205,27 @@ function ff_hevc_add_residual_32x32_8_neon, export=1
 bx  lr
 endfunc
 
+function ff_hevc_add_residual_32x32_10_neon, export=1
+mov r3,  #32
+add r12, r0, #32
+vmov.s16q12, #0
+vmvn.s16q13, #0xFC00 @ vmov.s16 #0x3FF
+1:  subsr3,  #1
+vldmr1!, {q0-q3}
+vld1.16 {q8, q9},   [r0, :128]
+vld1.16 {q10, q11}, [r12, :128]
+vqadd.s16   q0, q8
+vqadd.s16   q1, q9
+vqadd.s16   q2, q10
+vqadd.s16   q3, q11
+clip10  q0, q1, q12, q13
+clip10  q2, q3, q12, q13
+vst1.16 {q0-q1},   [r0, :128], r2
+vst1.16 {q2-q3},   [r12, :128], r2
+bne 1b
+bx  lr
+endfunc
+
 .macro idct_4x4_dc bitdepth
 funct

[FFmpeg-cvslog] hevc: 16x16 NEON idct: Use the right element size for loads/stores

2017-10-30 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | 
Thu May  4 10:49:16 2017 +0200| [118dd4a321a2d67f67c21b076abd0b4d939ab642] | 
committer: Martin Storsjö

hevc: 16x16 NEON idct: Use the right element size for loads/stores

This doesn't change the actual behaviour of the code but improves
readability.

Signed-off-by: Martin Storsjö 

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

 libavcodec/arm/hevc_idct.S | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/libavcodec/arm/hevc_idct.S b/libavcodec/arm/hevc_idct.S
index fac575818b..eeb81e388e 100644
--- a/libavcodec/arm/hevc_idct.S
+++ b/libavcodec/arm/hevc_idct.S
@@ -536,10 +536,10 @@ endfunc
 butterfly   q10, q14, q2, q5
 butterfly   q11, q15, q3, q4
 add r4,  sp,  #512
-vst1.s16{q0-q1}, [r4, :128]!
-vst1.s16{q2-q3}, [r4, :128]!
-vst1.s16{q4-q5}, [r4, :128]!
-vst1.s16{q6-q7}, [r4, :128]
+vst1.s32{q0-q1}, [r4, :128]!
+vst1.s32{q2-q3}, [r4, :128]!
+vst1.s32{q4-q5}, [r4, :128]!
+vst1.s32{q6-q7}, [r4, :128]
 .endm
 
 .macro load16 in0, in1, in2, in3, in4, in5, in6, in7
@@ -631,8 +631,8 @@ function func_tr_16x4_\name
 add_member  d7, d1[3], d1[2], d1[1], d1[0], d0[3], d0[2], d0[1], 
d0[0], +, -, +, -, +, -, +, -
 
 add r4, sp, #512
-vld1.s16{q0-q1}, [r4, :128]!
-vld1.s16{q2-q3}, [r4, :128]!
+vld1.s32{q0-q1}, [r4, :128]!
+vld1.s32{q2-q3}, [r4, :128]!
 
 butterfly16 q0, q5, q1, q6, q2, q7, q3, q8
 scale   d26, d27, d28, d29, d30, d31, d16, d17, q4, q0, q5, 
q1, q6, q2, q7, q3, \shift
@@ -645,8 +645,8 @@ function func_tr_16x4_\name
 store16 d26, d27, d28, d29, d30, d31, d16, d17
 
 add r4, sp, #576
-vld1.s16{q0-q1}, [r4, :128]!
-vld1.s16{q2-q3}, [r4, :128]
+vld1.s32{q0-q1}, [r4, :128]!
+vld1.s32{q2-q3}, [r4, :128]
 butterfly16 q0, q9, q1, q10, q2, q11, q3, q12
 scale   d26, d27, d28, d29, d30, d31, d8, d9, q4, q0, q9, q1, 
q10, q2, q11, q3, \shift
 transpose8_4x4  d26, d28, d30, d8

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] hevc: Add NEON 32x32 IDCT

2017-10-30 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | 
Thu May  4 10:52:52 2017 +0200| [ce080f47b8b55ab3d41eb00487b138d9906d114d] | 
committer: Martin Storsjö

hevc: Add NEON 32x32 IDCT

Signed-off-by: Martin Storsjö 

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

 libavcodec/arm/hevc_idct.S| 311 +++---
 libavcodec/arm/hevcdsp_init_arm.c |   4 +
 2 files changed, 294 insertions(+), 21 deletions(-)

diff --git a/libavcodec/arm/hevc_idct.S b/libavcodec/arm/hevc_idct.S
index eeb81e388e..79799b24ff 100644
--- a/libavcodec/arm/hevc_idct.S
+++ b/libavcodec/arm/hevc_idct.S
@@ -28,6 +28,10 @@ const trans, align=4
 .short 89, 75, 50, 18
 .short 90, 87, 80, 70
 .short 57, 43, 25, 9
+.short 90, 90, 88, 85
+.short 82, 78, 73, 67
+.short 61, 54, 46, 38
+.short 31, 22, 13, 4
 endconst
 
 .macro clip10 in1, in2, c1, c2
@@ -509,7 +513,7 @@ endfunc
 vsub.s32\tmp_m, \e, \o
 .endm
 
-.macro tr16_8x4 in0, in1, in2, in3, in4, in5, in6, in7
+.macro tr16_8x4 in0, in1, in2, in3, in4, in5, in6, in7, offset
 tr_4x4_8\in0, \in2, \in4, \in6, q8, q9, q10, q11, q12, q13, 
q14, q15
 
 vmull.s16   q12, \in1, \in0[0]
@@ -535,7 +539,7 @@ endfunc
 butterfly   q9,  q13, q1, q6
 butterfly   q10, q14, q2, q5
 butterfly   q11, q15, q3, q4
-add r4,  sp,  #512
+add r4,  sp,  #\offset
 vst1.s32{q0-q1}, [r4, :128]!
 vst1.s32{q2-q3}, [r4, :128]!
 vst1.s32{q4-q5}, [r4, :128]!
@@ -575,15 +579,15 @@ endfunc
 vsub.s32\in6, \in6, \in7
 .endm
 
-.macro store16 in0, in1, in2, in3, in4, in5, in6, in7
+.macro store16 in0, in1, in2, in3, in4, in5, in6, in7, rx
 vst1.s16\in0, [r1, :64], r2
-vst1.s16\in1, [r3, :64], r4
+vst1.s16\in1, [r3, :64], \rx
 vst1.s16\in2, [r1, :64], r2
-vst1.s16\in3, [r3, :64], r4
+vst1.s16\in3, [r3, :64], \rx
 vst1.s16\in4, [r1, :64], r2
-vst1.s16\in5, [r3, :64], r4
+vst1.s16\in5, [r3, :64], \rx
 vst1.s16\in6, [r1, :64], r2
-vst1.s16\in7, [r3, :64], r4
+vst1.s16\in7, [r3, :64], \rx
 .endm
 
 .macro scale out0, out1, out2, out3, out4, out5, out6, out7, in0, in1, in2, 
in3, in4, in5, in6, in7, shift
@@ -597,19 +601,35 @@ endfunc
 vqrshrn.s32 \out7, \in7, \shift
 .endm
 
-.macro tr_16x4 name, shift
+@stores in1, in2, in4, in6 ascending from off1 and
+@stores in1, in3, in5, in7 descending from off2
+.macro store_to_stack off1, off2, in0, in2, in4, in6, in7, in5, in3, in1
+add r1, sp, #\off1
+add r3, sp, #\off2
+mov r2, #-16
+vst1.s32{\in0}, [r1, :128]!
+vst1.s32{\in1}, [r3, :128], r2
+vst1.s32{\in2}, [r1, :128]!
+vst1.s32{\in3}, [r3, :128], r2
+vst1.s32{\in4}, [r1, :128]!
+vst1.s32{\in5}, [r3, :128], r2
+vst1.s32{\in6}, [r1, :128]
+vst1.s32{\in7}, [r3, :128]
+.endm
+
+.macro tr_16x4 name, shift, offset, step
 function func_tr_16x4_\name
 mov r1,  r5
-add r3,  r5, #64
-mov r2,  #128
+add r3, r5, #(\step * 64)
+mov r2, #(\step * 128)
 load16  d0, d1, d2, d3, d4, d5, d6, d7
 movrel  r1, trans
 
-tr16_8x4d0, d1, d2, d3, d4, d5, d6, d7
+tr16_8x4d0, d1, d2, d3, d4, d5, d6, d7, \offset
 
-add r1,  r5, #32
-add r3,  r5, #(64 + 32)
-mov r2,  #128
+add r1,  r5, #(\step * 32)
+add r3,  r5, #(\step * 3 *32)
+mov r2,  #(\step * 128)
 load16  d8, d9, d2, d3, d4, d5, d6, d7
 movrel  r1, trans + 16
 vld1.s16{q0}, [r1, :128]
@@ -630,11 +650,12 @@ function func_tr_16x4_\name
 add_member  d6, d1[2], d0[3], d0[0], d0[2], d1[1], d1[3], d1[0], 
d0[1], +, -, +, -, +, +, -, +
 add_member  d7, d1[3], d1[2], d1[1], d1[0], d0[3], d0[2], d0[1], 
d0[0], +, -, +, -, +, -, +, -
 
-add r4, sp, #512
+add r4, sp, #\offset
 vld1.s32{q0-q1}, [r4, :128]!
 vld1.s32{q2-q3}, [r4, :128]!
 
 butterfly16 q0, q5, q1, q6, q2, q7, q3, q8
+.if \shift > 0
 scale   d26, d27, d28, d29, d30, d31, d16, d17, q4, q0, q5, 
q1, q6, q2, q7, q3, \shift
 transpose8_4x4  d26, d28, d30, d16
 transpose8_4x4  d17, d31, d29, d27
@@ -642,12 +663,16 @@ function func_tr_16x4_\name
 add r3, r6, #(24

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

2017-11-07 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr 
29 02:15:30 2017 +| [9c1e111406bd4cbb04d8e8611b71bebf203bec5e] | committer: 
Diego Biurrun

flac: Convert to the new bitstream reader

Signed-off-by: Diego Biurrun 

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

 libavcodec/flac.c| 68 
 libavcodec/flac.h|  6 ++---
 libavcodec/flac_parser.c |  6 ++---
 libavcodec/flacdec.c | 58 -
 libavcodec/flacenc.c |  2 +-
 5 files changed, 70 insertions(+), 70 deletions(-)

diff --git a/libavcodec/flac.c b/libavcodec/flac.c
index 3e51fdeb98..5062c1e0db 100644
--- a/libavcodec/flac.c
+++ b/libavcodec/flac.c
@@ -22,8 +22,9 @@
 #include "libavutil/channel_layout.h"
 #include "libavutil/crc.h"
 #include "libavutil/log.h"
+
+#include "bitstream.h"
 #include "bytestream.h"
-#include "get_bits.h"
 #include "flac.h"
 #include "flacdata.h"
 
@@ -40,33 +41,33 @@ static const uint64_t flac_channel_layouts[8] = {
 AV_CH_LAYOUT_7POINT1
 };
 
-static int64_t get_utf8(GetBitContext *gb)
+static int64_t get_utf8(BitstreamContext *bc)
 {
 int64_t val;
-GET_UTF8(val, get_bits(gb, 8), return -1;)
+GET_UTF8(val, bitstream_read(bc, 8), return -1;)
 return val;
 }
 
-int ff_flac_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb,
+int ff_flac_decode_frame_header(AVCodecContext *avctx, BitstreamContext *bc,
 FLACFrameInfo *fi, int log_level_offset)
 {
 int bs_code, sr_code, bps_code;
 
 /* frame sync code */
-if ((get_bits(gb, 15) & 0x7FFF) != 0x7FFC) {
+if ((bitstream_read(bc, 15) & 0x7FFF) != 0x7FFC) {
 av_log(avctx, AV_LOG_ERROR + log_level_offset, "invalid sync code\n");
 return AVERROR_INVALIDDATA;
 }
 
 /* variable block size stream code */
-fi->is_var_size = get_bits1(gb);
+fi->is_var_size = bitstream_read_bit(bc);
 
 /* block size and sample rate codes */
-bs_code = get_bits(gb, 4);
-sr_code = get_bits(gb, 4);
+bs_code = bitstream_read(bc, 4);
+sr_code = bitstream_read(bc, 4);
 
 /* channels and decorrelation */
-fi->ch_mode = get_bits(gb, 4);
+fi->ch_mode = bitstream_read(bc, 4);
 if (fi->ch_mode < FLAC_MAX_CHANNELS) {
 fi->channels = fi->ch_mode + 1;
 fi->ch_mode = FLAC_CHMODE_INDEPENDENT;
@@ -80,7 +81,7 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, 
GetBitContext *gb,
 }
 
 /* bits per sample */
-bps_code = get_bits(gb, 3);
+bps_code = bitstream_read(bc, 3);
 if (bps_code == 3 || bps_code == 7) {
 av_log(avctx, AV_LOG_ERROR + log_level_offset,
"invalid sample size code (%d)\n",
@@ -90,14 +91,14 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, 
GetBitContext *gb,
 fi->bps = sample_size_table[bps_code];
 
 /* reserved bit */
-if (get_bits1(gb)) {
+if (bitstream_read_bit(bc)) {
 av_log(avctx, AV_LOG_ERROR + log_level_offset,
"broken stream, invalid padding\n");
 return AVERROR_INVALIDDATA;
 }
 
 /* sample or frame count */
-fi->frame_or_sample_num = get_utf8(gb);
+fi->frame_or_sample_num = get_utf8(bc);
 if (fi->frame_or_sample_num < 0) {
 av_log(avctx, AV_LOG_ERROR + log_level_offset,
"sample/frame number invalid; utf8 fscked\n");
@@ -110,9 +111,9 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, 
GetBitContext *gb,
"reserved blocksize code: 0\n");
 return AVERROR_INVALIDDATA;
 } else if (bs_code == 6) {
-fi->blocksize = get_bits(gb, 8) + 1;
+fi->blocksize = bitstream_read(bc, 8) + 1;
 } else if (bs_code == 7) {
-fi->blocksize = get_bits(gb, 16) + 1;
+fi->blocksize = bitstream_read(bc, 16) + 1;
 } else {
 fi->blocksize = ff_flac_blocksize_table[bs_code];
 }
@@ -121,11 +122,11 @@ int ff_flac_decode_frame_header(AVCodecContext *avctx, 
GetBitContext *gb,
 if (sr_code < 12) {
 fi->samplerate = ff_flac_sample_rate_table[sr_code];
 } else if (sr_code == 12) {
-fi->samplerate = get_bits(gb, 8) * 1000;
+fi->samplerate = bitstream_read(bc, 8) * 1000;
 } else if (sr_code == 13) {
-fi->samplerate = get_bits(gb, 16);
+fi->samplerate = bitstream_read(bc, 16);
 } else if (sr_code == 14) {
-fi->samplerate = get_bits(gb, 16) * 10;
+fi->samplerate = bitstream_read(bc, 16) * 10;
 } else {
 av_log(avctx, AV_LOG_ERROR + log_level_offset,
"illegal sample rate code %d\n",
@@ -134,9 +135,9 @@ int ff_flac_decode_frame_header(AVCodecContext *avct

[FFmpeg-cvslog] hevc: Add hevc_get_pixel_4/8/12/16/24/32/48/64

2017-12-10 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | 
Sun Dec  3 09:15:23 2017 +0100| [7993ec19af394fdc58ec64165bc0b12619543a5d] | 
committer: Martin Storsjö

hevc: Add hevc_get_pixel_4/8/12/16/24/32/48/64

Checkasm timings:
block size bitdepth  C   NEON
4   8 bit:146.7   48.7
   10 bit:146.7   52.7
8   8 bit:430.3   84.4
   10 bit:430.4  119.5
12  8 bit:812.8  141.0
   10 bit:812.8  195.0
16  8 bit:   1499.1  268.0
   10 bit:   1498.9  368.4
24  8 bit:   4394.2  574.8
   10 bit:   3696.3  804.8
32  8 bit:   5108.6  568.9
   10 bit:   4249.6  918.8
48  8 bit:  16819.6 2304.9
   10 bit:  13882.0 3178.5
64  8 bit:  13490.8 1799.5
   10 bit:  11018.5 2519.4

Signed-off-by: Martin Storsjö 

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

 libavcodec/arm/Makefile   |   3 +-
 libavcodec/arm/hevc_mc.S  | 395 ++
 libavcodec/arm/hevcdsp_init_arm.c |  67 +++
 3 files changed, 464 insertions(+), 1 deletion(-)

diff --git a/libavcodec/arm/Makefile b/libavcodec/arm/Makefile
index b48745ad40..49e17ce0df 100644
--- a/libavcodec/arm/Makefile
+++ b/libavcodec/arm/Makefile
@@ -135,7 +135,8 @@ NEON-OBJS-$(CONFIG_AAC_DECODER)+= 
arm/aacpsdsp_neon.o   \
 NEON-OBJS-$(CONFIG_APE_DECODER)+= arm/apedsp_neon.o
 NEON-OBJS-$(CONFIG_DCA_DECODER)+= arm/dcadsp_neon.o \
   arm/synth_filter_neon.o
-NEON-OBJS-$(CONFIG_HEVC_DECODER)   += arm/hevc_idct.o
+NEON-OBJS-$(CONFIG_HEVC_DECODER)   += arm/hevc_idct.o   \
+  arm/hevc_mc.o
 NEON-OBJS-$(CONFIG_RV30_DECODER)   += arm/rv34dsp_neon.o
 NEON-OBJS-$(CONFIG_RV40_DECODER)   += arm/rv34dsp_neon.o\
   arm/rv40dsp_neon.o
diff --git a/libavcodec/arm/hevc_mc.S b/libavcodec/arm/hevc_mc.S
new file mode 100644
index 00..f499d294b9
--- /dev/null
+++ b/libavcodec/arm/hevc_mc.S
@@ -0,0 +1,395 @@
+/*
+ * ARM NEON optimised MC functions for HEVC decoding
+ *
+ * Copyright (c) 2017 Alexandra Hájková
+ *
+ * This file is part of Libav.
+ *
+ * Libav is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * Libav is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with Libav; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "libavutil/arm/asm.S"
+
+.macro get_pixels4 bitdepth
+function ff_hevc_get_pixels_4_\bitdepth\()_neon, export=1
+@r0 dst, r1 dststride, r2 src, r3 srcstride
+ldr r12, [sp] @height
+cmp r12, #0
+it  eq
+bxeqlr
+
+1:
+  .if \bitdepth == 8
+vld1.32 {d0[0]}, [r2], r3
+vld1.32 {d1[0]}, [r2], r3
+vld1.32 {d2[0]}, [r2], r3
+vld1.32 {d3[0]}, [r2], r3
+vshll.u8q8, d0, #6
+vshll.u8q9, d1, #6
+vshll.u8q10, d2, #6
+vshll.u8q11, d3, #6
+  .else
+vld1.16 {d0}, [r2], r3
+vld1.16 {d1}, [r2], r3
+vld1.16 {d2}, [r2], r3
+vld1.16 {d3}, [r2], r3
+vshl.i16d16, d0, #4
+vshl.i16d18, d1, #4
+vshl.i16d20, d2, #4
+vshl.i16d22, d3, #4
+  .endif
+
+vst1.16 {d16}, [r0, :64], r1
+vst1.16 {d18}, [r0, :64], r1
+vst1.16 {d20}, [r0, :64], r1
+vst1.16 {d22}, [r0, :64], r1
+subsr12, #4
+bgt 1b
+
+bx  lr
+endfunc
+.endm
+
+.macro get_pixels8 bitdepth
+function ff_hevc_get_pixels_8_\bitdepth\()_neon, export=1
+@r0 dst, r1 dststride, r2 src, r3 srcstride
+ldr r12, [sp] @height
+cmp r12, #0
+it  eq
+bxeqlr
+
+1:
+  .if \bitdepth == 8
+vld1.8  {d0}, [r2], r3
+vld1.8  {d1}, [r2], r3
+vld1.8  {d2}, [r2], r3
+vld1.8  {d3}, [r2], r3
+vshll.u8q8, d0, #6
+vshll.u8q9, d1, #6
+vshll.u8q10, d2, #6
+vshll.u8q11, d3, #6
+  .else
+vld1.16 {

[FFmpeg-cvslog] Remove unnecessary get_bits.h #includes and add missing headers where needed.

2016-06-21 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr 
23 16:44:11 2016 +0200| [5c31eaa9998b2185e0aa04d11adff128498dc14a] | committer: 
Diego Biurrun

Remove unnecessary get_bits.h #includes and add missing headers where needed.

Signed-off-by: Diego Biurrun 

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

 libavcodec/adpcmenc.c|1 -
 libavcodec/cabac.c   |2 +-
 libavcodec/ffv1enc.c |2 +-
 libavcodec/huffman.c |1 -
 libavcodec/iff.c |2 +-
 libavcodec/yop.c |6 --
 libavformat/mpc.c|2 +-
 libavformat/oggparseogm.c|4 +++-
 libavformat/oggparsespeex.c  |4 +++-
 libavformat/oggparsevorbis.c |3 ++-
 libavformat/tta.c|5 +++--
 11 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/libavcodec/adpcmenc.c b/libavcodec/adpcmenc.c
index 65e1f8e..3e17dbd 100644
--- a/libavcodec/adpcmenc.c
+++ b/libavcodec/adpcmenc.c
@@ -23,7 +23,6 @@
  */
 
 #include "avcodec.h"
-#include "get_bits.h"
 #include "put_bits.h"
 #include "bytestream.h"
 #include "adpcm.h"
diff --git a/libavcodec/cabac.c b/libavcodec/cabac.c
index a96c9f5..5c59003 100644
--- a/libavcodec/cabac.c
+++ b/libavcodec/cabac.c
@@ -27,7 +27,7 @@
 #include 
 
 #include "libavutil/common.h"
-#include "get_bits.h"
+
 #include "cabac.h"
 #include "cabac_functions.h"
 
diff --git a/libavcodec/ffv1enc.c b/libavcodec/ffv1enc.c
index 9c2e463..7995376 100644
--- a/libavcodec/ffv1enc.c
+++ b/libavcodec/ffv1enc.c
@@ -31,9 +31,9 @@
 #include "libavutil/crc.h"
 #include "libavutil/opt.h"
 #include "libavutil/imgutils.h"
+
 #include "avcodec.h"
 #include "internal.h"
-#include "get_bits.h"
 #include "put_bits.h"
 #include "rangecoder.h"
 #include "golomb.h"
diff --git a/libavcodec/huffman.c b/libavcodec/huffman.c
index f13ab296..2a3db87 100644
--- a/libavcodec/huffman.c
+++ b/libavcodec/huffman.c
@@ -27,7 +27,6 @@
 #include 
 
 #include "avcodec.h"
-#include "get_bits.h"
 #include "huffman.h"
 
 /* symbol for Huffman tree node */
diff --git a/libavcodec/iff.c b/libavcodec/iff.c
index 0d56cd5..a186e31 100644
--- a/libavcodec/iff.c
+++ b/libavcodec/iff.c
@@ -28,9 +28,9 @@
 #include 
 
 #include "libavutil/imgutils.h"
+
 #include "bytestream.h"
 #include "avcodec.h"
-#include "get_bits.h"
 #include "internal.h"
 
 typedef struct IffContext {
diff --git a/libavcodec/yop.c b/libavcodec/yop.c
index 98ed723..5de4ac8 100644
--- a/libavcodec/yop.c
+++ b/libavcodec/yop.c
@@ -22,11 +22,13 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
-#include "libavutil/intreadwrite.h"
+#include 
+
 #include "libavutil/imgutils.h"
+#include "libavutil/internal.h"
+#include "libavutil/intreadwrite.h"
 
 #include "avcodec.h"
-#include "get_bits.h"
 #include "internal.h"
 
 typedef struct YopDecContext {
diff --git a/libavformat/mpc.c b/libavformat/mpc.c
index 8127996..cf8fe1e 100644
--- a/libavformat/mpc.c
+++ b/libavformat/mpc.c
@@ -20,7 +20,7 @@
  */
 
 #include "libavutil/channel_layout.h"
-#include "libavcodec/get_bits.h"
+
 #include "avformat.h"
 #include "internal.h"
 #include "apetag.h"
diff --git a/libavformat/oggparseogm.c b/libavformat/oggparseogm.c
index 3ce11bd..6278465 100644
--- a/libavformat/oggparseogm.c
+++ b/libavformat/oggparseogm.c
@@ -23,9 +23,11 @@
 **/
 
 #include 
+
 #include "libavutil/intreadwrite.h"
-#include "libavcodec/get_bits.h"
+
 #include "libavcodec/bytestream.h"
+
 #include "avformat.h"
 #include "internal.h"
 #include "oggdec.h"
diff --git a/libavformat/oggparsespeex.c b/libavformat/oggparsespeex.c
index fa24c12..2430cd7 100644
--- a/libavformat/oggparsespeex.c
+++ b/libavformat/oggparsespeex.c
@@ -23,11 +23,13 @@
 **/
 
 #include 
+
 #include "libavutil/bswap.h"
 #include "libavutil/avstring.h"
 #include "libavutil/channel_layout.h"
-#include "libavcodec/get_bits.h"
+
 #include "libavcodec/bytestream.h"
+
 #include "avformat.h"
 #include "internal.h"
 #include "oggdec.h"
diff --git a/libavformat/oggparsevorbis.c b/libavformat/oggparsevorbis.c
index 4cb10a1..95fe082 100644
--- a/libavformat/oggparsevorbis.c
+++ b/libavformat/oggparsevorbis.c
@@ -28,9 +28,10 @@
 #include "libavutil/base64.h"
 #include "libavutil/bswap.h"
 #include "libavutil/dict.h"
+
 #include "libavcodec/bytestream.h"
-#include "libavcodec/get_bits.h"
 #include "libavcodec/vorbis_parser

[FFmpeg-cvslog] Move check_marker() from get_bits to mpeg4videodec

2016-06-22 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | 
Sat May 14 11:28:18 2016 +0200| [e4b38878da6b38ef5ca54ce14be985d6ae088834] | 
committer: Anton Khirnov

Move check_marker() from get_bits to mpeg4videodec

MPEG-4 is the only decoder which uses check_marker().

Signed-off-by: Anton Khirnov 

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

 libavcodec/get_bits.h  |9 -
 libavcodec/mpeg4videodec.c |9 +
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/libavcodec/get_bits.h b/libavcodec/get_bits.h
index b8debb9..ce76511 100644
--- a/libavcodec/get_bits.h
+++ b/libavcodec/get_bits.h
@@ -364,15 +364,6 @@ static inline unsigned int show_bits_long(GetBitContext 
*s, int n)
 }
 }
 
-static inline int check_marker(GetBitContext *s, const char *msg)
-{
-int bit = get_bits1(s);
-if (!bit)
-av_log(NULL, AV_LOG_INFO, "Marker bit missing %s\n", msg);
-
-return bit;
-}
-
 /**
  * Initialize GetBitContext.
  * @param buffer bitstream buffer, must be AV_INPUT_BUFFER_PADDING_SIZE bytes
diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
index 40d281b..1c1a9c0 100644
--- a/libavcodec/mpeg4videodec.c
+++ b/libavcodec/mpeg4videodec.c
@@ -51,6 +51,15 @@ static const int mb_type_b_map[4] = {
 MB_TYPE_L0  | MB_TYPE_16x16,
 };
 
+static inline int check_marker(GetBitContext *s, const char *msg)
+{
+int bit = get_bits1(s);
+if (!bit)
+av_log(NULL, AV_LOG_INFO, "Marker bit missing %s\n", msg);
+
+return bit;
+}
+
 /**
  * Predict the ac.
  * @param n block index (0-3 are luma, 4-5 are chroma)

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] mpeg4videodec: Call av_log() in check_marker() with AVCodecContext instead of NULL

2016-06-22 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | 
Sat May 14 11:28:19 2016 +0200| [d338abb664febbc2c7266af7818aab1f12dbc161] | 
committer: Anton Khirnov

mpeg4videodec: Call av_log() in check_marker() with AVCodecContext instead of 
NULL

Signed-off-by: Anton Khirnov 

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

 libavcodec/mpeg4videodec.c |   20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
index 1c1a9c0..e16d482 100644
--- a/libavcodec/mpeg4videodec.c
+++ b/libavcodec/mpeg4videodec.c
@@ -51,11 +51,11 @@ static const int mb_type_b_map[4] = {
 MB_TYPE_L0  | MB_TYPE_16x16,
 };
 
-static inline int check_marker(GetBitContext *s, const char *msg)
+static inline int check_marker(AVCodecContext *avctx, GetBitContext *s, const 
char *msg)
 {
 int bit = get_bits1(s);
 if (!bit)
-av_log(NULL, AV_LOG_INFO, "Marker bit missing %s\n", msg);
+av_log(avctx, AV_LOG_INFO, "Marker bit missing %s\n", msg);
 
 return bit;
 }
@@ -446,9 +446,9 @@ int ff_mpeg4_decode_video_packet_header(Mpeg4DecContext 
*ctx)
 while (get_bits1(&s->gb) != 0)
 time_incr++;
 
-check_marker(&s->gb, "before time_increment in video packed header");
+check_marker(s->avctx, &s->gb, "before time_increment in video packed 
header");
 skip_bits(&s->gb, ctx->time_increment_bits);  /* time_increment */
-check_marker(&s->gb, "before vop_coding_type in video packed header");
+check_marker(s->avctx, &s->gb, "before vop_coding_type in video packed 
header");
 
 skip_bits(&s->gb, 2); /* vop coding type */
 // FIXME not rect stuff here
@@ -1731,7 +1731,7 @@ static int decode_vol_header(Mpeg4DecContext *ctx, 
GetBitContext *gb)
 skip_bits(gb, 4);  /* video_object_layer_shape_extension */
 }
 
-check_marker(gb, "before time_increment_resolution");
+check_marker(s->avctx, gb, "before time_increment_resolution");
 
 s->avctx->framerate.num = get_bits(gb, 16);
 if (!s->avctx->framerate.num) {
@@ -1743,7 +1743,7 @@ static int decode_vol_header(Mpeg4DecContext *ctx, 
GetBitContext *gb)
 if (ctx->time_increment_bits < 1)
 ctx->time_increment_bits = 1;
 
-check_marker(gb, "before fixed_vop_rate");
+check_marker(s->avctx, gb, "before fixed_vop_rate");
 
 if (get_bits1(gb) != 0) /* fixed_vop_rate  */
 s->avctx->framerate.den = get_bits(gb, ctx->time_increment_bits);
@@ -1909,7 +1909,7 @@ static int decode_vol_header(Mpeg4DecContext *ctx, 
GetBitContext *gb)
 ctx->cplx_estimation_trash_p += 8 * get_bits1(gb);  /* 
inter4v_blocks */
 ctx->cplx_estimation_trash_i += 8 * get_bits1(gb);  /* not 
coded blocks */
 }
-if (!check_marker(gb, "in complexity estimation part 1")) {
+if (!check_marker(s->avctx, gb, "in complexity estimation part 
1")) {
 skip_bits_long(gb, pos - get_bits_count(gb));
 goto no_cplx_est;
 }
@@ -1927,7 +1927,7 @@ static int decode_vol_header(Mpeg4DecContext *ctx, 
GetBitContext *gb)
 ctx->cplx_estimation_trash_p += 8 * get_bits1(gb);  /* 
halfpel2 */
 ctx->cplx_estimation_trash_p += 8 * get_bits1(gb);  /* 
halfpel4 */
 }
-if (!check_marker(gb, "in complexity estimation part 2")) {
+if (!check_marker(s->avctx, gb, "in complexity estimation part 
2")) {
 skip_bits_long(gb, pos - get_bits_count(gb));
 goto no_cplx_est;
 }
@@ -2104,7 +2104,7 @@ static int decode_vop_header(Mpeg4DecContext *ctx, 
GetBitContext *gb)
 while (get_bits1(gb) != 0)
 time_incr++;
 
-check_marker(gb, "before time_increment");
+check_marker(s->avctx, gb, "before time_increment");
 
 if (ctx->time_increment_bits == 0 ||
 !(show_bits(gb, ctx->time_increment_bits + 1) & 1)) {
@@ -2166,7 +2166,7 @@ static int decode_vop_header(Mpeg4DecContext *ctx, 
GetBitContext *gb)
 }
 }
 
-check_marker(gb, "before vop_coded");
+check_marker(s->avctx, gb, "before vop_coded");
 
 /* vop coded */
 if (get_bits1(gb) != 1) {

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] Move VLC and RL_VLC_ELEM structure definitions to a separate header

2016-06-22 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | 
Sat May 14 11:45:01 2016 +0200| [ffa190d0479d2370dd89c95692f822cbff2cc24c] | 
committer: Luca Barbato

Move VLC and RL_VLC_ELEM structure definitions to a separate header

Use the newly created vlc.h directly instead of including get_bits when needed.
The VLC and RL_VLC_ELEM structures are independent from the bitreader.

Signed-off-by: Luca Barbato 

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

 libavcodec/bitstream.c |2 +-
 libavcodec/get_bits.h  |   42 +--
 libavcodec/huffman.c   |3 +++
 libavcodec/huffman.h   |2 +-
 libavcodec/rl.c|1 +
 libavcodec/rl.h|3 ++-
 libavcodec/vlc.h   |   65 
 7 files changed, 74 insertions(+), 44 deletions(-)

diff --git a/libavcodec/bitstream.c b/libavcodec/bitstream.c
index a0d2a98..656ac47 100644
--- a/libavcodec/bitstream.c
+++ b/libavcodec/bitstream.c
@@ -31,8 +31,8 @@
 #include "avcodec.h"
 #include "internal.h"
 #include "mathops.h"
-#include "get_bits.h"
 #include "put_bits.h"
+#include "vlc.h"
 
 const uint8_t ff_log2_run[41]={
  0, 0, 0, 0, 1, 1, 1, 1,
diff --git a/libavcodec/get_bits.h b/libavcodec/get_bits.h
index ce76511..66374f5 100644
--- a/libavcodec/get_bits.h
+++ b/libavcodec/get_bits.h
@@ -32,6 +32,7 @@
 #include "libavutil/intreadwrite.h"
 #include "libavutil/log.h"
 #include "mathops.h"
+#include "vlc.h"
 
 /*
  * Safe bitstream reading:
@@ -59,20 +60,6 @@ typedef struct GetBitContext {
 #endif
 } GetBitContext;
 
-#define VLC_TYPE int16_t
-
-typedef struct VLC {
-int bits;
-VLC_TYPE (*table)[2]; ///< code, bits
-int table_size, table_allocated;
-} VLC;
-
-typedef struct RL_VLC_ELEM {
-int16_t level;
-int8_t len;
-uint8_t run;
-} RL_VLC_ELEM;
-
 /* Bitstream reader API docs:
  * name
  *   arbitrary name which is used as prefix for the internal variables
@@ -421,33 +408,6 @@ static inline const uint8_t *align_get_bits(GetBitContext 
*s)
 return s->buffer + (s->index >> 3);
 }
 
-#define init_vlc(vlc, nb_bits, nb_codes,\
- bits, bits_wrap, bits_size,\
- codes, codes_wrap, codes_size, \
- flags) \
-ff_init_vlc_sparse(vlc, nb_bits, nb_codes,  \
-   bits, bits_wrap, bits_size,  \
-   codes, codes_wrap, codes_size,   \
-   NULL, 0, 0, flags)
-
-int ff_init_vlc_sparse(VLC *vlc, int nb_bits, int nb_codes,
-   const void *bits, int bits_wrap, int bits_size,
-   const void *codes, int codes_wrap, int codes_size,
-   const void *symbols, int symbols_wrap, int symbols_size,
-   int flags);
-void ff_free_vlc(VLC *vlc);
-
-#define INIT_VLC_LE 2
-#define INIT_VLC_USE_NEW_STATIC 4
-
-#define INIT_VLC_STATIC(vlc, bits, a, b, c, d, e, f, g, static_size)   \
-do {   \
-static VLC_TYPE table[static_size][2]; \
-(vlc)->table   = table;\
-(vlc)->table_allocated = static_size;  \
-init_vlc(vlc, bits, a, b, c, d, e, f, g, INIT_VLC_USE_NEW_STATIC); \
-} while (0)
-
 /**
  * If the vlc code is invalid and max_depth=1, then no bits will be removed.
  * If the vlc code is invalid and max_depth>1, then the number of bits removed
diff --git a/libavcodec/huffman.c b/libavcodec/huffman.c
index 2a3db87..3b15aa2 100644
--- a/libavcodec/huffman.c
+++ b/libavcodec/huffman.c
@@ -26,8 +26,11 @@
 
 #include 
 
+#include"libavutil/common.h"
+
 #include "avcodec.h"
 #include "huffman.h"
+#include "vlc.h"
 
 /* symbol for Huffman tree node */
 #define HNODE -1
diff --git a/libavcodec/huffman.h b/libavcodec/huffman.h
index c9eeb37..87cbe4b 100644
--- a/libavcodec/huffman.h
+++ b/libavcodec/huffman.h
@@ -27,7 +27,7 @@
 #define AVCODEC_HUFFMAN_H
 
 #include "avcodec.h"
-#include "get_bits.h"
+#include "vlc.h"
 
 typedef struct Node {
 int16_t  sym;
diff --git a/libavcodec/rl.c b/libavcodec/rl.c
index 5bc1f91..9a9cbd9 100644
--- a/libavcodec/rl.c
+++ b/libavcodec/rl.c
@@ -17,6 +17,7 @@
  */
 
 #include 
+#include 
 
 #include "libavutil/attributes.h"
 #include "libavutil/mem.h"
diff --git a/libavcodec/rl.h b/libavcodec/rl.h
index e4a622f..a5725ce 100644
--- a/libavcodec/rl.h
+++ b/libavcodec/rl.h
@@ -28,7 +28,8 @@
 #define AVCODEC_RL_H
 
 #include 
-#include "get_bits.h"
+
+#include "vlc.h"
 
 /* run length table */
 #define 

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

2017-05-05 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Tue Apr 
12 12:29:20 2016 +0200| [9aec009f65f737c7566b2329b5cbd975665d1e02] | committer: 
Diego Biurrun

dvbsubdec: Convert to the new bitstream reader

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

 libavcodec/dvbsubdec.c | 68 +-
 1 file changed, 34 insertions(+), 34 deletions(-)

diff --git a/libavcodec/dvbsubdec.c b/libavcodec/dvbsubdec.c
index c3248c9919..2b9760fb35 100644
--- a/libavcodec/dvbsubdec.c
+++ b/libavcodec/dvbsubdec.c
@@ -20,7 +20,7 @@
  */
 
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "bytestream.h"
 #include "internal.h"
 #include "libavutil/colorspace.h"
@@ -330,16 +330,16 @@ static int dvbsub_read_2bit_string(uint8_t *destbuf, int 
dbuf_len,
const uint8_t **srcbuf, int buf_size,
int non_mod, uint8_t *map_table)
 {
-GetBitContext gb;
+BitstreamContext bc;
 
 int bits;
 int run_length;
 int pixels_read = 0;
 
-init_get_bits(&gb, *srcbuf, buf_size << 3);
+bitstream_init(&bc, *srcbuf, buf_size << 3);
 
-while (get_bits_count(&gb) < buf_size << 3 && pixels_read < dbuf_len) {
-bits = get_bits(&gb, 2);
+while (bitstream_tell(&bc) < buf_size << 3 && pixels_read < dbuf_len) {
+bits = bitstream_read(&bc, 2);
 
 if (bits) {
 if (non_mod != 1 || bits != 1) {
@@ -350,10 +350,10 @@ static int dvbsub_read_2bit_string(uint8_t *destbuf, int 
dbuf_len,
 }
 pixels_read++;
 } else {
-bits = get_bits1(&gb);
+bits = bitstream_read_bit(&bc);
 if (bits == 1) {
-run_length = get_bits(&gb, 3) + 3;
-bits = get_bits(&gb, 2);
+run_length = bitstream_read(&bc, 3) + 3;
+bits   = bitstream_read(&bc, 2);
 
 if (non_mod == 1 && bits == 1)
 pixels_read += run_length;
@@ -366,12 +366,12 @@ static int dvbsub_read_2bit_string(uint8_t *destbuf, int 
dbuf_len,
 }
 }
 } else {
-bits = get_bits1(&gb);
+bits = bitstream_read_bit(&bc);
 if (bits == 0) {
-bits = get_bits(&gb, 2);
+bits = bitstream_read(&bc, 2);
 if (bits == 2) {
-run_length = get_bits(&gb, 4) + 12;
-bits = get_bits(&gb, 2);
+run_length = bitstream_read(&bc, 4) + 12;
+bits   = bitstream_read(&bc, 2);
 
 if (non_mod == 1 && bits == 1)
 pixels_read += run_length;
@@ -384,8 +384,8 @@ static int dvbsub_read_2bit_string(uint8_t *destbuf, int 
dbuf_len,
 }
 }
 } else if (bits == 3) {
-run_length = get_bits(&gb, 8) + 29;
-bits = get_bits(&gb, 2);
+run_length = bitstream_read(&bc, 8) + 29;
+bits = bitstream_read(&bc, 2);
 
 if (non_mod == 1 && bits == 1)
 pixels_read += run_length;
@@ -408,7 +408,7 @@ static int dvbsub_read_2bit_string(uint8_t *destbuf, int 
dbuf_len,
 *destbuf++ = bits;
 }
 } else {
-(*srcbuf) += (get_bits_count(&gb) + 7) >> 3;
+*srcbuf += (bitstream_tell(&bc) + 7) >> 3;
 return pixels_read;
 }
 } else {
@@ -423,10 +423,10 @@ static int dvbsub_read_2bit_string(uint8_t *destbuf, int 
dbuf_len,
 }
 }
 
-if (get_bits(&gb, 6))
+if (bitstream_read(&bc, 6))
 av_log(NULL, AV_LOG_ERROR, "DVBSub error: line overflow\n");
 
-(*srcbuf) += (get_bits_count(&gb) + 7) >> 3;
+*srcbuf += (bitstream_tell(&bc) + 7) >> 3;
 
 return pixels_read;
 }
@@ -435,16 +435,16 @@ static int dvbsub_read_4bit_string(uint8_t *destbuf, int 
dbuf_len,
const uint8_t **srcbuf, int buf_size,
int non_mod, uint8_t *map_table)
 {
-GetBitContext gb;
+BitstreamContext bc;
 
 int bits;
 int run_length;
 int pixels_read = 0;
 
-init_get_bits(&gb, *srcbuf, buf_size << 3);
+bitstream_init(&bc, *srcbuf, buf_size << 3);
 
-while (get_bits_count(&gb) <

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

2017-05-05 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sun Apr 
10 21:41:02 2016 +0200| [d7fe11634c1ad3433d5ea5a08604692d583fea2b] | committer: 
Diego Biurrun

motionpixels: Convert to the new bitstream reader

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

 libavcodec/motionpixels.c | 77 ---
 1 file changed, 40 insertions(+), 37 deletions(-)

diff --git a/libavcodec/motionpixels.c b/libavcodec/motionpixels.c
index a18541b852..333f18fdb2 100644
--- a/libavcodec/motionpixels.c
+++ b/libavcodec/motionpixels.c
@@ -20,7 +20,7 @@
  */
 
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "bswapdsp.h"
 #include "internal.h"
 
@@ -87,17 +87,18 @@ static av_cold int mp_decode_init(AVCodecContext *avctx)
 return 0;
 }
 
-static void mp_read_changes_map(MotionPixelsContext *mp, GetBitContext *gb, 
int count, int bits_len, int read_color)
+static void mp_read_changes_map(MotionPixelsContext *mp, BitstreamContext *bc,
+int count, int bits_len, int read_color)
 {
 uint16_t *pixels;
 int offset, w, h, color = 0, x, y, i;
 
 while (count--) {
-offset = get_bits_long(gb, mp->offset_bits_len);
-w  = get_bits(gb, bits_len) + 1;
-h  = get_bits(gb, bits_len) + 1;
+offset = bitstream_read(bc, mp->offset_bits_len);
+w  = bitstream_read(bc, bits_len) + 1;
+h  = bitstream_read(bc, bits_len) + 1;
 if (read_color)
-color = get_bits(gb, 15);
+color = bitstream_read(bc, 15);
 x = offset % mp->avctx->width;
 y = offset / mp->avctx->width;
 if (y >= mp->avctx->height)
@@ -116,16 +117,17 @@ static void mp_read_changes_map(MotionPixelsContext *mp, 
GetBitContext *gb, int
 }
 }
 
-static void mp_get_code(MotionPixelsContext *mp, GetBitContext *gb, int size, 
int code)
+static void mp_get_code(MotionPixelsContext *mp, BitstreamContext *bc,
+int size, int code)
 {
-while (get_bits1(gb)) {
+while (bitstream_read_bit(bc)) {
 ++size;
 if (size > mp->max_codes_bits) {
 av_log(mp->avctx, AV_LOG_ERROR, "invalid code size %d/%d\n", size, 
mp->max_codes_bits);
 return;
 }
 code <<= 1;
-mp_get_code(mp, gb, size, code + 1);
+mp_get_code(mp, bc, size, code + 1);
 }
 if (mp->current_codes_count >= MAX_HUFF_CODES) {
 av_log(mp->avctx, AV_LOG_ERROR, "too many codes\n");
@@ -135,18 +137,18 @@ static void mp_get_code(MotionPixelsContext *mp, 
GetBitContext *gb, int size, in
 mp->codes[mp->current_codes_count++].size = size;
 }
 
-static void mp_read_codes_table(MotionPixelsContext *mp, GetBitContext *gb)
+static void mp_read_codes_table(MotionPixelsContext *mp, BitstreamContext *bc)
 {
 if (mp->codes_count == 1) {
-mp->codes[0].delta = get_bits(gb, 4);
+mp->codes[0].delta = bitstream_read(bc, 4);
 } else {
 int i;
 
-mp->max_codes_bits = get_bits(gb, 4);
+mp->max_codes_bits = bitstream_read(bc, 4);
 for (i = 0; i < mp->codes_count; ++i)
-mp->codes[i].delta = get_bits(gb, 4);
+mp->codes[i].delta = bitstream_read(bc, 4);
 mp->current_codes_count = 0;
-mp_get_code(mp, gb, 0, 0);
+mp_get_code(mp, bc, 0, 0);
}
 }
 
@@ -175,16 +177,16 @@ static void mp_set_rgb_from_yuv(MotionPixelsContext *mp, 
int x, int y, const Yuv
 *(uint16_t *)&mp->frame->data[0][y * mp->frame->linesize[0] + x * 2] = 
color;
 }
 
-static int mp_get_vlc(MotionPixelsContext *mp, GetBitContext *gb)
+static int mp_get_vlc(MotionPixelsContext *mp, BitstreamContext *bc)
 {
 int i;
 
-i = (mp->codes_count == 1) ? 0 : get_vlc2(gb, mp->vlc.table, 
mp->max_codes_bits, 1);
+i = (mp->codes_count == 1) ? 0 : bitstream_read_vlc(bc, mp->vlc.table, 
mp->max_codes_bits, 1);
 i = FFMIN(i, FF_ARRAY_ELEMS(mp->codes) - 1);
 return mp->codes[i].delta;
 }
 
-static void mp_decode_line(MotionPixelsContext *mp, GetBitContext *gb, int y)
+static void mp_decode_line(MotionPixelsContext *mp, BitstreamContext *bc, int 
y)
 {
 YuvPixel p;
 const int y0 = y * mp->avctx->width;
@@ -211,13 +213,13 @@ static void mp_decode_line(MotionPixelsContext *mp, 
GetBitContext *gb, int y)
 memset(mp->gradient_scale, 1, sizeof(mp->gradient_scale));
 p = mp_get_yuv_from_rgb(mp, x - 1, y);
 } else {
-p.y += mp_gradient(mp, 0, mp_get_vlc(mp, gb));
+p.y += mp_gradient(mp, 0, mp_get_vlc(mp, bc));
 p.y = av_clip_uintp2(p.y, 5);
 if ((x & 3) == 0) {
 if ((y & 3) == 0) {
-   

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

2017-05-05 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Tue Apr 
12 12:32:06 2016 +0200| [4e2505103146c539c6277b8d9d7e6840f6f1db07] | committer: 
Diego Biurrun

adx: Convert to the new bitstream reader

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

 libavcodec/adxdec.c | 9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/libavcodec/adxdec.c b/libavcodec/adxdec.c
index dc587b2733..a3344ae695 100644
--- a/libavcodec/adxdec.c
+++ b/libavcodec/adxdec.c
@@ -20,9 +20,10 @@
  */
 
 #include "libavutil/intreadwrite.h"
+
 #include "avcodec.h"
 #include "adx.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "internal.h"
 
 /**
@@ -66,7 +67,7 @@ static int adx_decode(ADXContext *c, int16_t *out, int offset,
   const uint8_t *in, int ch)
 {
 ADXChannelState *prev = &c->prev[ch];
-GetBitContext gb;
+BitstreamContext bc;
 int scale = AV_RB16(in);
 int i;
 int s0, s1, s2, d;
@@ -75,12 +76,12 @@ static int adx_decode(ADXContext *c, int16_t *out, int 
offset,
 if (scale & 0x8000)
 return -1;
 
-init_get_bits(&gb, in + 2, (BLOCK_SIZE - 2) * 8);
+bitstream_init(&bc, in + 2, (BLOCK_SIZE - 2) * 8);
 out += offset;
 s1 = prev->s1;
 s2 = prev->s2;
 for (i = 0; i < BLOCK_SAMPLES; i++) {
-d  = get_sbits(&gb, 4);
+d  = bitstream_read_signed(&bc, 4);
 s0 = ((d << COEFF_BITS) * scale + c->coeff[0] * s1 + c->coeff[1] * s2) 
>> COEFF_BITS;
 s2 = s1;
 s1 = av_clip_int16(s0);

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-05-05 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Tue Apr 
12 17:18:09 2016 +0200| [bd6496fa07e32fd09ceb79404f9af43df959bcb2] | committer: 
Diego Biurrun

interplayvideo: Convert to the new bitstream reader

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

 libavcodec/interplayvideo.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/libavcodec/interplayvideo.c b/libavcodec/interplayvideo.c
index e0d1e91992..fab9f2724c 100644
--- a/libavcodec/interplayvideo.c
+++ b/libavcodec/interplayvideo.c
@@ -40,8 +40,8 @@
 
 #define BITSTREAM_READER_LE
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bytestream.h"
-#include "get_bits.h"
 #include "hpeldsp.h"
 #include "internal.h"
 
@@ -881,7 +881,7 @@ static void ipvideo_decode_opcodes(IpvideoContext *s, 
AVFrame *frame)
 int x, y;
 unsigned char opcode;
 int ret;
-GetBitContext gb;
+BitstreamContext bc;
 
 bytestream2_skip(&s->stream_ptr, 14); /* data starts 14 bytes in */
 if (!s->is_16bpp) {
@@ -898,10 +898,10 @@ static void ipvideo_decode_opcodes(IpvideoContext *s, 
AVFrame *frame)
 s->upper_motion_limit_offset = (s->avctx->height - 8) * frame->linesize[0]
   + (s->avctx->width - 8) * (1 + s->is_16bpp);
 
-init_get_bits(&gb, s->decoding_map, s->decoding_map_size * 8);
+bitstream_init(&bc, s->decoding_map, s->decoding_map_size * 8);
 for (y = 0; y < s->avctx->height; y += 8) {
 for (x = 0; x < s->avctx->width; x += 8) {
-opcode = get_bits(&gb, 4);
+opcode = bitstream_read(&bc, 4);
 
 ff_dlog(s->avctx,
 "  block @ (%3d, %3d): encoding 0x%X, data ptr offset 
%d\n",

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-05-19 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr 
16 12:17:24 2016 +0200| [a895292f2734b4aacd2f2c2db6c07ff5a6d535c4] | committer: 
Diego Biurrun

mov: Convert to the new bitstream reader

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

 libavformat/mov.c| 10 ++
 libavformat/movenc.c | 41 +
 2 files changed, 27 insertions(+), 24 deletions(-)

diff --git a/libavformat/mov.c b/libavformat/mov.c
index 8b38fa43b8..37afe79df0 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -39,13 +39,15 @@
 #include "libavutil/pixdesc.h"
 #include "libavutil/spherical.h"
 #include "libavutil/stereo3d.h"
+
 #include "libavcodec/ac3tab.h"
+#include "libavcodec/bitstream.h"
+
 #include "avformat.h"
 #include "internal.h"
 #include "avio_internal.h"
 #include "riff.h"
 #include "isom.h"
-#include "libavcodec/get_bits.h"
 #include "id3v1.h"
 #include "mov_chan.h"
 #include "replaygain.h"
@@ -2078,7 +2080,7 @@ static int mov_read_stsz(MOVContext *c, AVIOContext *pb, 
MOVAtom atom)
 AVStream *st;
 MOVStreamContext *sc;
 unsigned int i, entries, sample_size, field_size, num_bytes;
-GetBitContext gb;
+BitstreamContext bc;
 unsigned char* buf;
 int ret;
 
@@ -2136,10 +2138,10 @@ static int mov_read_stsz(MOVContext *c, AVIOContext 
*pb, MOVAtom atom)
 return ret;
 }
 
-init_get_bits(&gb, buf, 8*num_bytes);
+bitstream_init(&bc, buf, 8 * num_bytes);
 
 for (i = 0; i < entries && !pb->eof_reached; i++) {
-sc->sample_sizes[i] = get_bits_long(&gb, field_size);
+sc->sample_sizes[i] = bitstream_read(&bc, field_size);
 sc->data_size += sc->sample_sizes[i];
 }
 
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 3dd882c263..ac76dedca4 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -31,7 +31,8 @@
 #include "avio.h"
 #include "isom.h"
 #include "avc.h"
-#include "libavcodec/get_bits.h"
+
+#include "libavcodec/bitstream.h"
 #include "libavcodec/put_bits.h"
 #include "libavcodec/vc1_common.h"
 #include "internal.h"
@@ -240,7 +241,7 @@ static int mov_write_amr_tag(AVIOContext *pb, MOVTrack 
*track)
 
 static int mov_write_ac3_tag(AVIOContext *pb, MOVTrack *track)
 {
-GetBitContext gbc;
+BitstreamContext bc;
 PutBitContext pbc;
 uint8_t buf[3];
 int fscod, bsid, bsmod, acmod, lfeon, frmsizecod;
@@ -251,21 +252,21 @@ static int mov_write_ac3_tag(AVIOContext *pb, MOVTrack 
*track)
 avio_wb32(pb, 11);
 ffio_wfourcc(pb, "dac3");
 
-init_get_bits(&gbc, track->vos_data + 4, (track->vos_len - 4) * 8);
-fscod  = get_bits(&gbc, 2);
-frmsizecod = get_bits(&gbc, 6);
-bsid   = get_bits(&gbc, 5);
-bsmod  = get_bits(&gbc, 3);
-acmod  = get_bits(&gbc, 3);
+bitstream_init(&bc, track->vos_data + 4, (track->vos_len - 4) * 8);
+fscod  = bitstream_read(&bc, 2);
+frmsizecod = bitstream_read(&bc, 6);
+bsid   = bitstream_read(&bc, 5);
+bsmod  = bitstream_read(&bc, 3);
+acmod  = bitstream_read(&bc, 3);
 if (acmod == 2) {
-skip_bits(&gbc, 2); // dsurmod
+bitstream_skip(&bc, 2); // dsurmod
 } else {
 if ((acmod & 1) && acmod != 1)
-skip_bits(&gbc, 2); // cmixlev
+bitstream_skip(&bc, 2); // cmixlev
 if (acmod & 4)
-skip_bits(&gbc, 2); // surmixlev
+bitstream_skip(&bc, 2); // surmixlev
 }
-lfeon = get_bits1(&gbc);
+lfeon = bitstream_read_bit(&bc);
 
 init_put_bits(&pbc, buf, sizeof(buf));
 put_bits(&pbc, 2, fscod);
@@ -462,28 +463,28 @@ static int mov_write_dvc1_structs(MOVTrack *track, 
uint8_t *buf)
 return AVERROR(ENOMEM);
 start = find_next_marker(track->vos_data, end);
 for (next = start; next < end; start = next) {
-GetBitContext gb;
+BitstreamContext bc;
 int size;
 next = find_next_marker(start + 4, end);
 size = next - start - 4;
 if (size <= 0)
 continue;
 unescaped_size = vc1_unescape_buffer(start + 4, size, unescaped);
-init_get_bits(&gb, unescaped, 8 * unescaped_size);
+bitstream_init(&bc, unescaped, 8 * unescaped_size);
 if (AV_RB32(start) == VC1_CODE_SEQHDR) {
-int profile = get_bits(&gb, 2);
+int profile = bitstream_read(&bc, 2);
 if (profile != PROFILE_ADVANCED) {
 av_free(unescaped);
 return AVERROR(ENOSYS);
 }
  

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

2017-05-19 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Thu Apr  
7 22:04:58 2016 +0200| [4795e4f61f993940c5384044caff56cc15078698] | committer: 
Diego Biurrun

alac: Convert to the new bitstream reader

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

 libavcodec/alac.c | 65 ---
 1 file changed, 33 insertions(+), 32 deletions(-)

diff --git a/libavcodec/alac.c b/libavcodec/alac.c
index aef68e76a3..0f1c59e486 100644
--- a/libavcodec/alac.c
+++ b/libavcodec/alac.c
@@ -48,19 +48,20 @@
 #include 
 
 #include "libavutil/channel_layout.h"
+
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "bytestream.h"
 #include "internal.h"
 #include "mathops.h"
-#include "unary_legacy.h"
+#include "unary.h"
 #include "alac_data.h"
 
 #define ALAC_EXTRADATA_SIZE 36
 
 typedef struct ALACContext {
 AVCodecContext *avctx;
-GetBitContext gb;
+BitstreamContext bc;
 int channels;
 
 int32_t *predict_error_buffer[2];
@@ -77,24 +78,24 @@ typedef struct ALACContext {
 int nb_samples; /**< number of samples in the current frame */
 } ALACContext;
 
-static inline unsigned int decode_scalar(GetBitContext *gb, int k, int bps)
+static inline unsigned int decode_scalar(BitstreamContext *bc, int k, int bps)
 {
-unsigned int x = get_unary_0_9(gb);
+unsigned int x = get_unary_0_9(bc);
 
 if (x > 8) { /* RICE THRESHOLD */
 /* use alternative encoding */
-x = get_bits_long(gb, bps);
+x = bitstream_read(bc, bps);
 } else if (k != 1) {
-int extrabits = show_bits(gb, k);
+int extrabits = bitstream_peek(bc, k);
 
 /* multiply x by 2^k - 1, as part of their strange algorithm */
 x = (x << k) - x;
 
 if (extrabits > 1) {
 x += extrabits - 1;
-skip_bits(gb, k);
+bitstream_skip(bc, k);
 } else
-skip_bits(gb, k - 1);
+bitstream_skip(bc, k - 1);
 }
 return x;
 }
@@ -113,7 +114,7 @@ static void rice_decompress(ALACContext *alac, int32_t 
*output_buffer,
 /* calculate rice param and decode next value */
 k = av_log2((history >> 9) + 3);
 k = FFMIN(k, alac->rice_limit);
-x = decode_scalar(&alac->gb, k, bps);
+x = decode_scalar(&alac->bc, k, bps);
 x += sign_modifier;
 sign_modifier = 0;
 output_buffer[i] = (x >> 1) ^ -(x & 1);
@@ -132,7 +133,7 @@ static void rice_decompress(ALACContext *alac, int32_t 
*output_buffer,
 /* calculate rice param and decode block size */
 k = 7 - av_log2(history) + ((history + 16) >> 6);
 k = FFMIN(k, alac->rice_limit);
-block_size = decode_scalar(&alac->gb, k, 16);
+block_size = decode_scalar(&alac->bc, k, 16);
 
 if (block_size > 0) {
 if (block_size >= nb_samples - i) {
@@ -257,13 +258,13 @@ static int decode_element(AVCodecContext *avctx, AVFrame 
*frame, int ch_index,
 uint32_t output_samples;
 int i, ch;
 
-skip_bits(&alac->gb, 4);  /* element instance tag */
-skip_bits(&alac->gb, 12); /* unused header bits */
+bitstream_skip(&alac->bc, 4);  /* element instance tag */
+bitstream_skip(&alac->bc, 12); /* unused header bits */
 
 /* the number of output samples is stored in the frame */
-has_size = get_bits1(&alac->gb);
+has_size = bitstream_read_bit(&alac->bc);
 
-alac->extra_bits = get_bits(&alac->gb, 2) << 3;
+alac->extra_bits = bitstream_read(&alac->bc, 2) << 3;
 bps = alac->sample_size - alac->extra_bits + channels - 1;
 if (bps > 32) {
 avpriv_report_missing_feature(avctx, "bps %d", bps);
@@ -271,10 +272,10 @@ static int decode_element(AVCodecContext *avctx, AVFrame 
*frame, int ch_index,
 }
 
 /* whether the frame is compressed */
-is_compressed = !get_bits1(&alac->gb);
+is_compressed = !bitstream_read_bit(&alac->bc);
 
 if (has_size)
-output_samples = get_bits_long(&alac->gb, 32);
+output_samples = bitstream_read(&alac->bc, 32);
 else
 output_samples = alac->max_samples_per_frame;
 if (!output_samples || output_samples > alac->max_samples_per_frame) {
@@ -313,27 +314,27 @@ static int decode_element(AVCodecContext *avctx, AVFrame 
*frame, int ch_index,
 return AVERROR(ENOSYS);
 }
 
-decorr_shift   = get_bits(&alac->gb, 8);
-decorr_left_weight = get_bits(&alac->gb, 8);
+decorr_shift   = bitstream_read(&alac->bc, 8);
+decorr_left_weight = bitstream_read(&a

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

2017-05-19 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sun Apr 
17 16:59:24 2016 +0200| [b1e7394ea0428318c0407a6c030577196fe834a9] | committer: 
Diego Biurrun

rtp: Convert to the new bitstream reader

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

 libavformat/rtpdec_h261.c | 19 ++-
 libavformat/rtpdec_h263_rfc2190.c | 19 ++-
 libavformat/rtpdec_latm.c | 24 +---
 libavformat/rtpdec_mpeg4.c| 16 +---
 libavformat/rtpdec_qt.c   | 31 ---
 libavformat/rtpenc_h263_rfc2190.c | 29 +++--
 6 files changed, 73 insertions(+), 65 deletions(-)

diff --git a/libavformat/rtpdec_h261.c b/libavformat/rtpdec_h261.c
index 00086c21c5..b1bd1e0475 100644
--- a/libavformat/rtpdec_h261.c
+++ b/libavformat/rtpdec_h261.c
@@ -19,7 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
-#include "libavcodec/get_bits.h"
+#include "libavcodec/bitstream.h"
+
 #include "avformat.h"
 #include "avio_internal.h"
 #include "rtpdec_formats.h"
@@ -118,18 +119,18 @@ static int h261_handle_packet(AVFormatContext *ctx, 
PayloadContext *rtp_h261_ctx
 avio_w8(rtp_h261_ctx->buf, rtp_h261_ctx->endbyte);
 } else {
 /* ebit/sbit values inconsistent, assuming packet loss */
-GetBitContext gb;
-init_get_bits(&gb, buf, len*8 - ebit);
-skip_bits(&gb, sbit);
+BitstreamContext bc;
+bitstream_init(&bc, buf, len * 8 - ebit);
+bitstream_skip(&bc, sbit);
 if (rtp_h261_ctx->endbyte_bits) {
-rtp_h261_ctx->endbyte |= get_bits(&gb, 8 - 
rtp_h261_ctx->endbyte_bits);
+rtp_h261_ctx->endbyte |= bitstream_read(&bc, 8 - 
rtp_h261_ctx->endbyte_bits);
 avio_w8(rtp_h261_ctx->buf, rtp_h261_ctx->endbyte);
 }
-while (get_bits_left(&gb) >= 8)
-avio_w8(rtp_h261_ctx->buf, get_bits(&gb, 8));
-rtp_h261_ctx->endbyte_bits = get_bits_left(&gb);
+while (bitstream_bits_left(&bc) >= 8)
+avio_w8(rtp_h261_ctx->buf, bitstream_read(&bc, 8));
+rtp_h261_ctx->endbyte_bits = bitstream_bits_left(&bc);
 if (rtp_h261_ctx->endbyte_bits)
-rtp_h261_ctx->endbyte = get_bits(&gb, 
rtp_h261_ctx->endbyte_bits) <<
+rtp_h261_ctx->endbyte = bitstream_read(&bc, 
rtp_h261_ctx->endbyte_bits) <<
 (8 - rtp_h261_ctx->endbyte_bits);
 ebit = 0;
 len  = 0;
diff --git a/libavformat/rtpdec_h263_rfc2190.c 
b/libavformat/rtpdec_h263_rfc2190.c
index 019eea779b..5744d71da0 100644
--- a/libavformat/rtpdec_h263_rfc2190.c
+++ b/libavformat/rtpdec_h263_rfc2190.c
@@ -30,7 +30,8 @@
 #include "rtpdec_formats.h"
 #include "libavutil/attributes.h"
 #include "libavutil/intreadwrite.h"
-#include "libavcodec/get_bits.h"
+
+#include "libavcodec/bitstream.h"
 
 struct PayloadContext {
 AVIOContext *buf;
@@ -141,18 +142,18 @@ static int h263_handle_packet(AVFormatContext *ctx, 
PayloadContext *data,
 avio_w8(data->buf, data->endbyte);
 } else {
 /* Start/end skip bits not matching - missed packets? */
-GetBitContext gb;
-init_get_bits(&gb, buf, len*8 - ebit);
-skip_bits(&gb, sbit);
+BitstreamContext bc;
+bitstream_init(&bc, buf, len * 8 - ebit);
+bitstream_skip(&bc, sbit);
 if (data->endbyte_bits) {
-data->endbyte |= get_bits(&gb, 8 - data->endbyte_bits);
+data->endbyte |= bitstream_read(&bc, 8 - data->endbyte_bits);
 avio_w8(data->buf, data->endbyte);
 }
-while (get_bits_left(&gb) >= 8)
-avio_w8(data->buf, get_bits(&gb, 8));
-data->endbyte_bits = get_bits_left(&gb);
+while (bitstream_bits_left(&bc) >= 8)
+avio_w8(data->buf, bitstream_read(&bc, 8));
+data->endbyte_bits = bitstream_bits_left(&bc);
 if (data->endbyte_bits)
-data->endbyte = get_bits(&gb, data->endbyte_bits) <<
+data->endbyte = bitstream_read(&bc, data->endbyte_bits) <<
 (8 - data->endbyte_bits);
 ebit = 0;
 len = 0;
diff --git a/libavformat/rtpdec_latm.c b/libavformat/rtpdec_latm.c
index df85ed3615..bb826269b0 100644
--- a/libavformat/rtpdec_latm.c
+++ b/libavformat/

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

2017-05-19 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Fri Apr  
8 19:22:46 2016 +0200| [54dcd2288546e135986338107ea87db1fcedd633] | committer: 
Diego Biurrun

als: Convert to the new bitstream reader

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

 libavcodec/alsdec.c | 232 ++--
 libavcodec/bgmc.c   |  16 ++--
 libavcodec/bgmc.h   |  16 ++--
 3 files changed, 134 insertions(+), 130 deletions(-)

diff --git a/libavcodec/alsdec.c b/libavcodec/alsdec.c
index 9fd2827dcd..5f09a9d4b9 100644
--- a/libavcodec/alsdec.c
+++ b/libavcodec/alsdec.c
@@ -28,13 +28,13 @@
 #include 
 
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "mpeg4audio.h"
 #include "bytestream.h"
 #include "bgmc.h"
 #include "bswapdsp.h"
 #include "internal.h"
-#include "unary_legacy.h"
+#include "unary.h"
 
 #include "libavutil/samplefmt.h"
 #include "libavutil/crc.h"
@@ -192,7 +192,7 @@ typedef struct ALSChannelData {
 typedef struct ALSDecContext {
 AVCodecContext *avctx;
 ALSSpecificConfig sconf;
-GetBitContext gb;
+BitstreamContext bc;
 BswapDSPContext bdsp;
 const AVCRC *crc_table;
 uint32_t crc_org;   ///< CRC value of the original input data
@@ -281,7 +281,7 @@ static av_cold void dprint_specific_config(ALSDecContext 
*ctx)
  */
 static av_cold int read_specific_config(ALSDecContext *ctx)
 {
-GetBitContext gb;
+BitstreamContext bc;
 uint64_t ht_size;
 int i, config_offset;
 MPEG4AudioConfig m4ac;
@@ -289,7 +289,7 @@ static av_cold int read_specific_config(ALSDecContext *ctx)
 AVCodecContext *avctx= ctx->avctx;
 uint32_t als_id, header_size, trailer_size;
 
-init_get_bits(&gb, avctx->extradata, avctx->extradata_size * 8);
+bitstream_init8(&bc, avctx->extradata, avctx->extradata_size);
 
 config_offset = avpriv_mpeg4audio_get_config(&m4ac, avctx->extradata,
  avctx->extradata_size * 8, 1);
@@ -297,40 +297,40 @@ static av_cold int read_specific_config(ALSDecContext 
*ctx)
 if (config_offset < 0)
 return AVERROR_INVALIDDATA;
 
-skip_bits_long(&gb, config_offset);
+bitstream_skip(&bc, config_offset);
 
-if (get_bits_left(&gb) < (30 << 3))
+if (bitstream_bits_left(&bc) < (30 << 3))
 return AVERROR_INVALIDDATA;
 
 // read the fixed items
-als_id  = get_bits_long(&gb, 32);
+als_id  = bitstream_read(&bc, 32);
 avctx->sample_rate  = m4ac.sample_rate;
-skip_bits_long(&gb, 32); // sample rate already known
-sconf->samples  = get_bits_long(&gb, 32);
+bitstream_skip(&bc, 32); // sample rate already known
+sconf->samples  = bitstream_read(&bc, 32);
 avctx->channels = m4ac.channels;
-skip_bits(&gb, 16);  // number of channels already known
-skip_bits(&gb, 3);   // skip file_type
-sconf->resolution   = get_bits(&gb, 3);
-sconf->floating = get_bits1(&gb);
-sconf->msb_first= get_bits1(&gb);
-sconf->frame_length = get_bits(&gb, 16) + 1;
-sconf->ra_distance  = get_bits(&gb, 8);
-sconf->ra_flag  = get_bits(&gb, 2);
-sconf->adapt_order  = get_bits1(&gb);
-sconf->coef_table   = get_bits(&gb, 2);
-sconf->long_term_prediction = get_bits1(&gb);
-sconf->max_order= get_bits(&gb, 10);
-sconf->block_switching  = get_bits(&gb, 2);
-sconf->bgmc = get_bits1(&gb);
-sconf->sb_part  = get_bits1(&gb);
-sconf->joint_stereo = get_bits1(&gb);
-sconf->mc_coding= get_bits1(&gb);
-sconf->chan_config  = get_bits1(&gb);
-sconf->chan_sort= get_bits1(&gb);
-sconf->crc_enabled  = get_bits1(&gb);
-sconf->rlslms   = get_bits1(&gb);
-skip_bits(&gb, 5);   // skip 5 reserved bits
-skip_bits1(&gb); // skip aux_data_enabled
+bitstream_skip(&bc, 16); // number of channels already known
+bitstream_skip(&bc, 3);  // skip file_type
+sconf->resolution   = bitstream_read(&bc, 3);
+sconf->floating = bitstream_read_bit(&bc);
+sconf->msb_first= bitstream_read_bit(&bc);
+sconf->frame_length = bitstream_read(&bc, 16) + 1;
+sconf->ra_distance  = bitstream_read(&bc, 8);
+sconf->ra_flag  = bitstream_re

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

2017-05-19 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Fri Apr  
8 19:49:07 2016 +0200| [4d49a4c55054571b56d3b1b1cd9fb9ac4c2bea6a] | committer: 
Diego Biurrun

apedec: Convert to the new bitstream reader

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

 libavcodec/apedec.c | 47 ---
 1 file changed, 24 insertions(+), 23 deletions(-)

diff --git a/libavcodec/apedec.c b/libavcodec/apedec.c
index 69ded9a670..da45e85e51 100644
--- a/libavcodec/apedec.c
+++ b/libavcodec/apedec.c
@@ -25,13 +25,14 @@
 #include "libavutil/avassert.h"
 #include "libavutil/channel_layout.h"
 #include "libavutil/opt.h"
+
 #include "apedsp.h"
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bswapdsp.h"
 #include "bytestream.h"
 #include "internal.h"
-#include "get_bits.h"
-#include "unary_legacy.h"
+#include "unary.h"
 
 /**
  * @file
@@ -162,7 +163,7 @@ typedef struct APEContext {
 APERice riceX;   ///< rice code parameters for the 
second channel
 APERice riceY;   ///< rice code parameters for the 
first channel
 APEFilter filters[APE_FILTER_LEVELS][2]; ///< filters used for 
reconstruction
-GetBitContext gb;
+BitstreamContext bc;
 
 uint8_t *data;   ///< current frame data
 uint8_t *data_end;   ///< frame data end
@@ -484,24 +485,24 @@ static inline void update_rice(APERice *rice, unsigned 
int x)
 rice->k++;
 }
 
-static inline int get_rice_ook(GetBitContext *gb, int k)
+static inline int get_rice_ook(BitstreamContext *bc, int k)
 {
 unsigned int x;
 
-x = get_unary(gb, 1, get_bits_left(gb));
+x = get_unary(bc, 1, bitstream_bits_left(bc));
 
 if (k)
-x = (x << k) | get_bits(gb, k);
+x = (x << k) | bitstream_read(bc, k);
 
 return x;
 }
 
-static inline int ape_decode_value_3860(APEContext *ctx, GetBitContext *gb,
+static inline int ape_decode_value_3860(APEContext *ctx, BitstreamContext *bc,
 APERice *rice)
 {
 unsigned int x, overflow;
 
-overflow = get_unary(gb, 1, get_bits_left(gb));
+overflow = get_unary(bc, 1, bitstream_bits_left(bc));
 
 if (ctx->fileversion > 3880) {
 while (overflow >= 16) {
@@ -513,7 +514,7 @@ static inline int ape_decode_value_3860(APEContext *ctx, 
GetBitContext *gb,
 if (!rice->k)
 x = overflow;
 else
-x = (overflow << rice->k) + get_bits(gb, rice->k);
+x = (overflow << rice->k) + bitstream_read(bc, rice->k);
 
 rice->ksum += x - (rice->ksum + 8 >> 4);
 if (rice->ksum < (rice->k ? 1 << (rice->k + 4) : 0))
@@ -607,7 +608,7 @@ static inline int ape_decode_value_3990(APEContext *ctx, 
APERice *rice)
 return -(x >> 1);
 }
 
-static void decode_array_(APEContext *ctx, GetBitContext *gb,
+static void decode_array_(APEContext *ctx, BitstreamContext *bc,
   int32_t *out, APERice *rice, int blockstodecode)
 {
 int i;
@@ -615,19 +616,19 @@ static void decode_array_(APEContext *ctx, 
GetBitContext *gb,
 
 rice->ksum = 0;
 for (i = 0; i < FFMIN(blockstodecode, 5); i++) {
-out[i] = get_rice_ook(&ctx->gb, 10);
+out[i] = get_rice_ook(&ctx->bc, 10);
 rice->ksum += out[i];
 }
 rice->k = av_log2(rice->ksum / 10) + 1;
 for (; i < FFMIN(blockstodecode, 64); i++) {
-out[i] = get_rice_ook(&ctx->gb, rice->k);
+out[i] = get_rice_ook(&ctx->bc, rice->k);
 rice->ksum += out[i];
 rice->k = av_log2(rice->ksum / ((i + 1) * 2)) + 1;
 }
 ksummax = 1 << rice->k + 7;
 ksummin = rice->k ? (1 << rice->k + 6) : 0;
 for (; i < blockstodecode; i++) {
-out[i] = get_rice_ook(&ctx->gb, rice->k);
+out[i] = get_rice_ook(&ctx->bc, rice->k);
 rice->ksum += out[i] - out[i - 64];
 while (rice->ksum < ksummin) {
 rice->k--;
@@ -653,15 +654,15 @@ static void decode_array_(APEContext *ctx, 
GetBitContext *gb,
 
 static void entropy_decode_mono_(APEContext *ctx, int blockstodecode)
 {
-decode_array_(ctx, &ctx->gb, ctx->decoded[0], &ctx->riceY,
+decode_array_(ctx, &ctx->bc, ctx->decoded[0], &ctx->riceY,
   blockstodecode);
 }
 
 static void entropy_decode_stereo_(APEContext *ctx, int blockstodecode)
 {
-decode_array_(ctx, &ctx->gb, ctx->decoded[0], &ctx->riceY,
+decode_array_(ctx, &ctx->bc, ctx->decoded[0], &ctx->riceY

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

2017-05-19 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr  
9 19:37:46 2016 +0200| [fd8de7f2d8c31195d309247cb129c0ad787ef76e] | committer: 
Diego Biurrun

dxtory: Convert to the new bitstream reader

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

 libavcodec/dxtory.c | 88 ++---
 1 file changed, 44 insertions(+), 44 deletions(-)

diff --git a/libavcodec/dxtory.c b/libavcodec/dxtory.c
index b0fae2f5ef..05de4ac837 100644
--- a/libavcodec/dxtory.c
+++ b/libavcodec/dxtory.c
@@ -27,10 +27,10 @@
 
 #define BITSTREAM_READER_LE
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bytestream.h"
-#include "get_bits.h"
 #include "internal.h"
-#include "unary_legacy.h"
+#include "unary.h"
 
 static int dxtory_decode_v1_rgb(AVCodecContext *avctx, AVFrame *pic,
 const uint8_t *src, int src_size,
@@ -176,13 +176,13 @@ static const uint8_t def_lru[8] = { 0x00, 0x20, 0x40, 
0x60, 0x80, 0xA0, 0xC0, 0x
 static const uint8_t def_lru_555[8] = { 0x00, 0x08, 0x10, 0x18, 0x1F };
 static const uint8_t def_lru_565[8] = { 0x00, 0x08, 0x10, 0x20, 0x30, 0x3F };
 
-static inline uint8_t decode_sym(GetBitContext *gb, uint8_t lru[8])
+static inline uint8_t decode_sym(BitstreamContext *bc, uint8_t lru[8])
 {
 uint8_t c, val;
 
-c = get_unary(gb, 0, 8);
+c = get_unary(bc, 0, 8);
 if (!c) {
-val = get_bits(gb, 8);
+val = bitstream_read(bc, 8);
 memmove(lru + 1, lru, sizeof(*lru) * (8 - 1));
 } else {
 val = lru[c - 1];
@@ -243,14 +243,14 @@ static int load_buffer(AVCodecContext *avctx,
 return 0;
 }
 
-static inline uint8_t decode_sym_565(GetBitContext *gb, uint8_t lru[8],
+static inline uint8_t decode_sym_565(BitstreamContext *bc, uint8_t lru[8],
  int bits)
 {
 uint8_t c, val;
 
-c = get_unary(gb, 0, bits);
+c = get_unary(bc, 0, bits);
 if (!c) {
-val = get_bits(gb, bits);
+val = bitstream_read(bc, bits);
 memmove(lru + 1, lru, sizeof(*lru) * (6 - 1));
 } else {
 val = lru[c - 1];
@@ -261,7 +261,7 @@ static inline uint8_t decode_sym_565(GetBitContext *gb, 
uint8_t lru[8],
 return val;
 }
 
-typedef int (*decode_slice_func)(GetBitContext *gb, AVFrame *frame,
+typedef int (*decode_slice_func)(BitstreamContext *bc, AVFrame *frame,
  int line, int height, uint8_t lru[3][8]);
 
 typedef void (*setup_lru_func)(uint8_t lru[3][8]);
@@ -273,7 +273,7 @@ static int dxtory_decode_v2(AVCodecContext *avctx, AVFrame 
*pic,
 enum AVPixelFormat fmt)
 {
 GetByteContext gb;
-GetBitContext  gb2;
+BitstreamContext bc;
 int nslices, slice, line = 0;
 uint32_t off, slice_size;
 uint8_t lru[3][8];
@@ -296,9 +296,9 @@ static int dxtory_decode_v2(AVCodecContext *avctx, AVFrame 
*pic,
 if (ret < 0)
 return ret;
 
-init_get_bits(&gb2, src + off + 16, (slice_size - 16) * 8);
+bitstream_init8(&bc, src + off + 16, slice_size - 16);
 
-line += decode_slice(&gb2, pic, line, avctx->height - line, lru);
+line += decode_slice(&bc, pic, line, avctx->height - line, lru);
 
 off += slice_size;
 }
@@ -315,7 +315,7 @@ static int dxtory_decode_v2(AVCodecContext *avctx, AVFrame 
*pic,
 }
 
 av_always_inline
-static int dx2_decode_slice_5x5(GetBitContext *gb, AVFrame *frame,
+static int dx2_decode_slice_5x5(BitstreamContext *bc, AVFrame *frame,
 int line, int left, uint8_t lru[3][8],
 int is_565)
 {
@@ -325,11 +325,11 @@ static int dx2_decode_slice_5x5(GetBitContext *gb, 
AVFrame *frame,
 int stride   = frame->linesize[0];
 uint8_t *dst = frame->data[0] + stride * line;
 
-for (y = 0; y < left && get_bits_left(gb) > 16; y++) {
+for (y = 0; y < left && bitstream_bits_left(bc) > 16; y++) {
 for (x = 0; x < width; x++) {
-b = decode_sym_565(gb, lru[0], 5);
-g = decode_sym_565(gb, lru[1], is_565 ? 6 : 5);
-r = decode_sym_565(gb, lru[2], 5);
+b = decode_sym_565(bc, lru[0], 5);
+g = decode_sym_565(bc, lru[1], is_565 ? 6 : 5);
+r = decode_sym_565(bc, lru[2], 5);
 dst[x * 3 + 0] = (r << 3) | (r >> 2);
 dst[x * 3 + 1] = is_565 ? (g << 2) | (g >> 4) : (g << 3) | (g >> 
2);
 dst[x * 3 + 2] = (b << 3) | (b >> 2);
@@ -355,16 +355,16 @@ static void setup_lru_565(uint8_t lru[3][8])
 memcpy(lru[2], def_lru_555, 8 * sizeof(*def_lru));
 }
 
-static int dx2_decode_slice_555(GetBitContext *gb, AVFrame *frame,
+static int dx2_decode_slice_555(BitstreamContext *bc, AVFrame *frame,
   

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

2017-05-19 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Mon Apr 
18 10:56:03 2016 +0200| [6668bc80b5eeae16c35302cfa6325219f7ce2da7] | committer: 
Diego Biurrun

mpc: Convert to the new bitstream reader

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

 libavcodec/mpc7.c  | 73 +--
 libavcodec/mpc8.c  | 83 +++---
 libavformat/mpc8.c | 26 -
 3 files changed, 94 insertions(+), 88 deletions(-)

diff --git a/libavcodec/mpc7.c b/libavcodec/mpc7.c
index 28b51922ec..5d749106de 100644
--- a/libavcodec/mpc7.c
+++ b/libavcodec/mpc7.c
@@ -28,8 +28,9 @@
 #include "libavutil/channel_layout.h"
 #include "libavutil/internal.h"
 #include "libavutil/lfg.h"
+
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "internal.h"
 #include "mpegaudiodsp.h"
 
@@ -53,7 +54,7 @@ static av_cold int mpc7_decode_init(AVCodecContext * avctx)
 {
 int i, j;
 MPCContext *c = avctx->priv_data;
-GetBitContext gb;
+BitstreamContext bc;
 LOCAL_ALIGNED_16(uint8_t, buf, [16]);
 static int vlc_initialized = 0;
 
@@ -78,18 +79,18 @@ static av_cold int mpc7_decode_init(AVCodecContext * avctx)
 ff_mpadsp_init(&c->mpadsp);
 c->bdsp.bswap_buf((uint32_t *) buf, (const uint32_t *) avctx->extradata, 
4);
 ff_mpc_init();
-init_get_bits(&gb, buf, 128);
+bitstream_init(&bc, buf, 128);
 
-c->IS = get_bits1(&gb);
-c->MSS = get_bits1(&gb);
-c->maxbands = get_bits(&gb, 6);
+c->IS   = bitstream_read_bit(&bc);
+c->MSS  = bitstream_read_bit(&bc);
+c->maxbands = bitstream_read(&bc, 6);
 if(c->maxbands >= BANDS){
 av_log(avctx, AV_LOG_ERROR, "Too many bands: %i\n", c->maxbands);
 return -1;
 }
-skip_bits_long(&gb, 88);
-c->gapless = get_bits1(&gb);
-c->lastframelen = get_bits(&gb, 11);
+bitstream_skip(&bc, 88);
+c->gapless  = bitstream_read_bit(&bc);
+c->lastframelen = bitstream_read(&bc, 11);
 av_log(avctx, AV_LOG_DEBUG, "IS: %d, MSS: %d, TG: %d, LFL: %d, bands: 
%d\n",
 c->IS, c->MSS, c->gapless, c->lastframelen, c->maxbands);
 c->frames_to_skip = 0;
@@ -143,7 +144,7 @@ static av_cold int mpc7_decode_init(AVCodecContext * avctx)
 /**
  * Fill samples for given subband
  */
-static inline void idx_to_quant(MPCContext *c, GetBitContext *gb, int idx, int 
*dst)
+static inline void idx_to_quant(MPCContext *c, BitstreamContext *bc, int idx, 
int *dst)
 {
 int i, i1, t;
 switch(idx){
@@ -153,43 +154,43 @@ static inline void idx_to_quant(MPCContext *c, 
GetBitContext *gb, int idx, int *
 }
 break;
 case 1:
-i1 = get_bits1(gb);
+i1 = bitstream_read_bit(bc);
 for(i = 0; i < SAMPLES_PER_BAND/3; i++){
-t = get_vlc2(gb, quant_vlc[0][i1].table, 9, 2);
+t = bitstream_read_vlc(bc, quant_vlc[0][i1].table, 9, 2);
 *dst++ = mpc7_idx30[t];
 *dst++ = mpc7_idx31[t];
 *dst++ = mpc7_idx32[t];
 }
 break;
 case 2:
-i1 = get_bits1(gb);
+i1 = bitstream_read_bit(bc);
 for(i = 0; i < SAMPLES_PER_BAND/2; i++){
-t = get_vlc2(gb, quant_vlc[1][i1].table, 9, 2);
+t = bitstream_read_vlc(bc, quant_vlc[1][i1].table, 9, 2);
 *dst++ = mpc7_idx50[t];
 *dst++ = mpc7_idx51[t];
 }
 break;
 case  3: case  4: case  5: case  6: case  7:
-i1 = get_bits1(gb);
+i1 = bitstream_read_bit(bc);
 for(i = 0; i < SAMPLES_PER_BAND; i++)
-*dst++ = get_vlc2(gb, quant_vlc[idx-1][i1].table, 9, 2) - 
mpc7_quant_vlc_off[idx-1];
+*dst++ = bitstream_read_vlc(bc, quant_vlc[idx - 1][i1].table, 9, 
2) - mpc7_quant_vlc_off[idx - 1];
 break;
 case  8: case  9: case 10: case 11: case 12:
 case 13: case 14: case 15: case 16: case 17:
 t = (1 << (idx - 2)) - 1;
 for(i = 0; i < SAMPLES_PER_BAND; i++)
-*dst++ = get_bits(gb, idx - 1) - t;
+*dst++ = bitstream_read(bc, idx - 1) - t;
 break;
 default: // case 0 and -2..-17
 return;
 }
 }
 
-static int get_scale_idx(GetBitContext *gb, int ref)
+static int get_scale_idx(BitstreamContext *bc, int ref)
 {
-int t = get_vlc2(gb, dscf_vlc.table, MPC7_DSCF_BITS, 1) - 7;
+int t = bitstream_read_vlc(bc, dscf_vlc.table, MPC7_DSCF_BITS, 1) - 7;
 if (t == 8)
-return get_bits(gb, 6);
+return bitstream_read(bc, 6);
 return av_clip_uintp2(ref + t, 7);
 }
 
@@ -200,7 +201,7 @@ static int mpc7_decode_frame(AVCodecContext * avctx, void 
*data,
 cons

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

2017-05-19 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Fri Apr 
15 10:45:11 2016 +0200| [e7f24c9ffc6a12a37016914859a74c3127868996] | committer: 
Diego Biurrun

wavpack: Convert to the new bitstream reader

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

 libavcodec/wavpack.c | 92 ++--
 1 file changed, 46 insertions(+), 46 deletions(-)

diff --git a/libavcodec/wavpack.c b/libavcodec/wavpack.c
index b8adb3d484..66430b90e3 100644
--- a/libavcodec/wavpack.c
+++ b/libavcodec/wavpack.c
@@ -23,10 +23,10 @@
 
 #define BITSTREAM_READER_LE
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bytestream.h"
-#include "get_bits.h"
 #include "internal.h"
-#include "unary_legacy.h"
+#include "unary.h"
 
 /**
  * @file
@@ -109,10 +109,10 @@ typedef struct WavpackFrameContext {
 int stereo, stereo_in;
 int joint;
 uint32_t CRC;
-GetBitContext gb;
+BitstreamContext bc;
 int got_extra_bits;
 uint32_t crc_extra_bits;
-GetBitContext gb_extra_bits;
+BitstreamContext bc_extra_bits;
 int data_size; // in bits
 int samples;
 int terms;
@@ -240,7 +240,7 @@ static av_always_inline int wp_log2(int32_t val)
 } \
 }
 
-static av_always_inline int get_tail(GetBitContext *gb, int k)
+static av_always_inline int get_tail(BitstreamContext *bc, int k)
 {
 int p, e, res;
 
@@ -248,9 +248,9 @@ static av_always_inline int get_tail(GetBitContext *gb, int 
k)
 return 0;
 p   = av_log2(k);
 e   = (1 << (p + 1)) - k - 1;
-res = get_bitsz(gb, p);
+res = bitstream_read(bc, p);
 if (res >= e)
-res = (res << 1) - e + get_bits1(gb);
+res = (res << 1) - e + bitstream_read_bit(bc);
 return res;
 }
 
@@ -288,7 +288,7 @@ static void update_error_limit(WavpackFrameContext *ctx)
 }
 }
 
-static int wv_get_value(WavpackFrameContext *ctx, GetBitContext *gb,
+static int wv_get_value(WavpackFrameContext *ctx, BitstreamContext *bc,
 int channel, int *last)
 {
 int t, t2;
@@ -306,13 +306,13 @@ static int wv_get_value(WavpackFrameContext *ctx, 
GetBitContext *gb,
 return 0;
 }
 } else {
-t = get_unary_0_33(gb);
+t = get_unary_0_33(bc);
 if (t >= 2) {
-if (get_bits_left(gb) < t - 1)
+if (bitstream_bits_left(bc) < t - 1)
 goto error;
-t = get_bits(gb, t - 1) | (1 << (t - 1));
+t = bitstream_read(bc, t - 1) | (1 << (t - 1));
 } else {
-if (get_bits_left(gb) < 0)
+if (bitstream_bits_left(bc) < 0)
 goto error;
 }
 ctx->zeroes = t;
@@ -329,19 +329,19 @@ static int wv_get_value(WavpackFrameContext *ctx, 
GetBitContext *gb,
 t = 0;
 ctx->zero = 0;
 } else {
-t = get_unary_0_33(gb);
-if (get_bits_left(gb) < 0)
+t = get_unary_0_33(bc);
+if (bitstream_bits_left(bc) < 0)
 goto error;
 if (t == 16) {
-t2 = get_unary_0_33(gb);
+t2 = get_unary_0_33(bc);
 if (t2 < 2) {
-if (get_bits_left(gb) < 0)
+if (bitstream_bits_left(bc) < 0)
 goto error;
 t += t2;
 } else {
-if (get_bits_left(gb) < t2 - 1)
+if (bitstream_bits_left(bc) < t2 - 1)
 goto error;
-t += get_bits(gb, t2 - 1) | (1 << (t2 - 1));
+t += bitstream_read(bc, t2 - 1) | (1 << (t2 - 1));
 }
 }
 
@@ -381,15 +381,15 @@ static int wv_get_value(WavpackFrameContext *ctx, 
GetBitContext *gb,
 INC_MED(2);
 }
 if (!c->error_limit) {
-ret = base + get_tail(gb, add);
-if (get_bits_left(gb) <= 0)
+ret = base + get_tail(bc, add);
+if (bitstream_bits_left(bc) <= 0)
 goto error;
 } else {
 int mid = (base * 2 + add + 1) >> 1;
 while (add > c->error_limit) {
-if (get_bits_left(gb) <= 0)
+if (bitstream_bits_left(bc) <= 0)
 goto error;
-if (get_bits1(gb)) {
+if (bitstream_read_bit(bc)) {
 add -= (mid - base);
 base = mid;
 } else
@@ -398,7 +398,7 @@ static int wv_get_value(WavpackFrameContext *ctx, 
GetBitContext *gb,
 }
 ret = mid;
 }
-sign = get_bits1(gb);
+sign = bitstream_read_bit(bc);
 if (ctx->hybrid_bitrate)
 c->slow_level += wp_log2(ret) - LEVEL_DECAY(c->slow_level);
 return sign ? ~ret : ret;
@@ -417,8 +417,8 @@ static inli

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

2017-05-19 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Wed Apr 
13 21:00:34 2016 +0200| [381a4e31a6b801a046e38b0e2b08fb61499157a7] | committer: 
Diego Biurrun

tak: Convert to the new bitstream reader

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

 libavcodec/tak.c|  49 +++
 libavcodec/tak.h|  10 +--
 libavcodec/tak_parser.c |  15 ++---
 libavcodec/takdec.c | 158 
 libavformat/takdec.c|  13 ++--
 5 files changed, 125 insertions(+), 120 deletions(-)

diff --git a/libavcodec/tak.c b/libavcodec/tak.c
index bd82c3d193..c90e55ad6a 100644
--- a/libavcodec/tak.c
+++ b/libavcodec/tak.c
@@ -24,6 +24,7 @@
 #include "libavutil/intreadwrite.h"
 
 #define BITSTREAM_READER_LE
+#include "bitstream.h"
 #include "tak.h"
 
 static const uint16_t frame_duration_type_quants[] = {
@@ -85,30 +86,30 @@ int ff_tak_check_crc(const uint8_t *buf, unsigned int 
buf_size)
 return 0;
 }
 
-void avpriv_tak_parse_streaminfo(GetBitContext *gb, TAKStreamInfo *s)
+void avpriv_tak_parse_streaminfo(BitstreamContext *bc, TAKStreamInfo *s)
 {
 uint64_t channel_mask = 0;
 int frame_type, i;
 
-s->codec = get_bits(gb, TAK_ENCODER_CODEC_BITS);
-skip_bits(gb, TAK_ENCODER_PROFILE_BITS);
+s->codec = bitstream_read(bc, TAK_ENCODER_CODEC_BITS);
+bitstream_skip(bc, TAK_ENCODER_PROFILE_BITS);
 
-frame_type = get_bits(gb, TAK_SIZE_FRAME_DURATION_BITS);
-s->samples = get_bits64(gb, TAK_SIZE_SAMPLES_NUM_BITS);
+frame_type = bitstream_read(bc, TAK_SIZE_FRAME_DURATION_BITS);
+s->samples = bitstream_read_63(bc, TAK_SIZE_SAMPLES_NUM_BITS);
 
-s->data_type   = get_bits(gb, TAK_FORMAT_DATA_TYPE_BITS);
-s->sample_rate = get_bits(gb, TAK_FORMAT_SAMPLE_RATE_BITS) +
+s->data_type   = bitstream_read(bc, TAK_FORMAT_DATA_TYPE_BITS);
+s->sample_rate = bitstream_read(bc, TAK_FORMAT_SAMPLE_RATE_BITS) +
  TAK_SAMPLE_RATE_MIN;
-s->bps = get_bits(gb, TAK_FORMAT_BPS_BITS) +
+s->bps = bitstream_read(bc, TAK_FORMAT_BPS_BITS) +
  TAK_BPS_MIN;
-s->channels= get_bits(gb, TAK_FORMAT_CHANNEL_BITS) +
+s->channels= bitstream_read(bc, TAK_FORMAT_CHANNEL_BITS) +
  TAK_CHANNELS_MIN;
 
-if (get_bits1(gb)) {
-skip_bits(gb, TAK_FORMAT_VALID_BITS);
-if (get_bits1(gb)) {
+if (bitstream_read_bit(bc)) {
+bitstream_skip(bc, TAK_FORMAT_VALID_BITS);
+if (bitstream_read_bit(bc)) {
 for (i = 0; i < s->channels; i++) {
-int value = get_bits(gb, TAK_FORMAT_CH_LAYOUT_BITS);
+int value = bitstream_read(bc, TAK_FORMAT_CH_LAYOUT_BITS);
 
 if (value > 0 && value <= 18)
 channel_mask |= 1 << (value - 1);
@@ -120,33 +121,33 @@ void avpriv_tak_parse_streaminfo(GetBitContext *gb, 
TAKStreamInfo *s)
 s->frame_samples = tak_get_nb_samples(s->sample_rate, frame_type);
 }
 
-int ff_tak_decode_frame_header(AVCodecContext *avctx, GetBitContext *gb,
+int ff_tak_decode_frame_header(AVCodecContext *avctx, BitstreamContext *bc,
TAKStreamInfo *ti, int log_level_offset)
 {
-if (get_bits(gb, TAK_FRAME_HEADER_SYNC_ID_BITS) != 
TAK_FRAME_HEADER_SYNC_ID) {
+if (bitstream_read(bc, TAK_FRAME_HEADER_SYNC_ID_BITS) != 
TAK_FRAME_HEADER_SYNC_ID) {
 av_log(avctx, AV_LOG_ERROR + log_level_offset, "missing sync id\n");
 return AVERROR_INVALIDDATA;
 }
 
-ti->flags = get_bits(gb, TAK_FRAME_HEADER_FLAGS_BITS);
-ti->frame_num = get_bits(gb, TAK_FRAME_HEADER_NO_BITS);
+ti->flags = bitstream_read(bc, TAK_FRAME_HEADER_FLAGS_BITS);
+ti->frame_num = bitstream_read(bc, TAK_FRAME_HEADER_NO_BITS);
 
 if (ti->flags & TAK_FRAME_FLAG_IS_LAST) {
-ti->last_frame_samples = get_bits(gb, 
TAK_FRAME_HEADER_SAMPLE_COUNT_BITS) + 1;
-skip_bits(gb, 2);
+ti->last_frame_samples = bitstream_read(bc, 
TAK_FRAME_HEADER_SAMPLE_COUNT_BITS) + 1;
+bitstream_skip(bc, 2);
 } else {
 ti->last_frame_samples = 0;
 }
 
 if (ti->flags & TAK_FRAME_FLAG_HAS_INFO) {
-avpriv_tak_parse_streaminfo(gb, ti);
+avpriv_tak_parse_streaminfo(bc, ti);
 
-if (get_bits(gb, 6))
-skip_bits(gb, 25);
-align_get_bits(gb);
+if (bitstream_read(bc, 6))
+bitstream_skip(bc, 25);
+bitstream_align(bc);
 }
 
-skip_bits(gb, 24);
+bitstream_skip(bc, 24);
 
 return 0;
 }
diff --git a/libavcodec/tak.h b/libavcodec/tak.h
index 19b1c47521..c752062521 100644
--- a/libavcodec/tak.h
+++ b/libavcodec/tak.h
@@ -30,7 +30,7 @@
 #include 
 
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"

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

2017-09-26 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Mar 
19 17:40:55 2016 +0100| [0f94de8a092b1a9f1fe45f830c0f134699c16de1] | committer: 
Diego Biurrun

fic: Convert to the new bitstream reader

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

 libavcodec/fic.c | 18 +-
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/libavcodec/fic.c b/libavcodec/fic.c
index 1804104916..a038af6e60 100644
--- a/libavcodec/fic.c
+++ b/libavcodec/fic.c
@@ -24,9 +24,9 @@
 #include "libavutil/common.h"
 
 #include "avcodec.h"
-#include "golomb_legacy.h"
+#include "bitstream.h"
+#include "golomb.h"
 #include "internal.h"
-#include "get_bits.h"
 
 typedef struct FICThreadContext {
 DECLARE_ALIGNED(16, int16_t, block)[64];
@@ -129,13 +129,13 @@ static void fic_idct_put(uint8_t *dst, int stride, 
int16_t *block)
 ptr += 8;
 }
 }
-static int fic_decode_block(FICContext *ctx, GetBitContext *gb,
+static int fic_decode_block(FICContext *ctx, BitstreamContext *bc,
 uint8_t *dst, int stride, int16_t *block)
 {
 int i, num_coeff;
 
 /* Is it a skip block? */
-if (get_bits1(gb)) {
+if (bitstream_read_bit(bc)) {
 /* This is a P-frame. */
 ctx->frame->key_frame = 0;
 ctx->frame->pict_type = AV_PICTURE_TYPE_P;
@@ -145,12 +145,12 @@ static int fic_decode_block(FICContext *ctx, 
GetBitContext *gb,
 
 memset(block, 0, sizeof(*block) * 64);
 
-num_coeff = get_bits(gb, 7);
+num_coeff = bitstream_read(bc, 7);
 if (num_coeff > 64)
 return AVERROR_INVALIDDATA;
 
 for (i = 0; i < num_coeff; i++)
-block[ff_zigzag_direct[i]] = get_se_golomb(gb) *
+block[ff_zigzag_direct[i]] = get_se_golomb(bc) *
  ctx->qmat[ff_zigzag_direct[i]];
 
 fic_idct_put(dst, stride, block);
@@ -162,14 +162,14 @@ static int fic_decode_slice(AVCodecContext *avctx, void 
*tdata)
 {
 FICContext *ctx= avctx->priv_data;
 FICThreadContext *tctx = tdata;
-GetBitContext gb;
+BitstreamContext bc;
 uint8_t *src = tctx->src;
 int slice_h  = tctx->slice_h;
 int src_size = tctx->src_size;
 int y_off= tctx->y_off;
 int x, y, p;
 
-init_get_bits(&gb, src, src_size * 8);
+bitstream_init8(&bc, src, src_size);
 
 for (p = 0; p < 3; p++) {
 int stride   = ctx->frame->linesize[p];
@@ -179,7 +179,7 @@ static int fic_decode_slice(AVCodecContext *avctx, void 
*tdata)
 for (x = 0; x < (ctx->aligned_width >> !!p); x += 8) {
 int ret;
 
-if ((ret = fic_decode_block(ctx, &gb, dst + x, stride, 
tctx->block)) != 0)
+if ((ret = fic_decode_block(ctx, &bc, dst + x, stride, 
tctx->block)) != 0)
 return ret;
 }
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-09-26 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Mar 
19 12:39:03 2016 +0100| [ffc00df0a61b656b3c2ba199c9d153b7787caefa] | committer: 
Diego Biurrun

cavs: Convert to the new bitstream reader

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

 libavcodec/cavs.c|   8 +--
 libavcodec/cavs.h|   4 +-
 libavcodec/cavsdec.c | 178 +--
 3 files changed, 95 insertions(+), 95 deletions(-)

diff --git a/libavcodec/cavs.c b/libavcodec/cavs.c
index bf1a59a6f0..6959f54404 100644
--- a/libavcodec/cavs.c
+++ b/libavcodec/cavs.c
@@ -26,8 +26,8 @@
  */
 
 #include "avcodec.h"
-#include "get_bits.h"
-#include "golomb_legacy.h"
+#include "bitstream.h"
+#include "golomb.h"
 #include "h264chroma.h"
 #include "idctdsp.h"
 #include "internal.h"
@@ -603,8 +603,8 @@ void ff_cavs_mv(AVSContext *h, enum cavs_mv_loc nP, enum 
cavs_mv_loc nC,
 mv_pred_median(h, mvP, mvA, mvB, mvC);
 
 if (mode < MV_PRED_PSKIP) {
-mvP->x += get_se_golomb(&h->gb);
-mvP->y += get_se_golomb(&h->gb);
+mvP->x += get_se_golomb(&h->bc);
+mvP->y += get_se_golomb(&h->bc);
 }
 set_mvs(mvP, size);
 }
diff --git a/libavcodec/cavs.h b/libavcodec/cavs.h
index e8729d50cd..cb549f161e 100644
--- a/libavcodec/cavs.h
+++ b/libavcodec/cavs.h
@@ -22,11 +22,11 @@
 #ifndef AVCODEC_CAVS_H
 #define AVCODEC_CAVS_H
 
+#include "bitstream.h"
 #include "cavsdsp.h"
 #include "blockdsp.h"
 #include "h264chroma.h"
 #include "idctdsp.h"
-#include "get_bits.h"
 #include "videodsp.h"
 
 #define SLICE_MAX_START_CODE0x01af
@@ -167,7 +167,7 @@ typedef struct AVSContext {
 IDCTDSPContext idsp;
 VideoDSPContext vdsp;
 CAVSDSPContext  cdsp;
-GetBitContext gb;
+BitstreamContext bc;
 AVSFrame cur; ///< currently decoded frame
 AVSFrame DPB[2];  ///< reference frames
 int dist[2]; ///< temporal distances from current frame to ref frames
diff --git a/libavcodec/cavsdec.c b/libavcodec/cavsdec.c
index 5a28fc04ed..7f584ac1c0 100644
--- a/libavcodec/cavsdec.c
+++ b/libavcodec/cavsdec.c
@@ -26,9 +26,9 @@
  */
 
 #include "avcodec.h"
-#include "get_bits.h"
-#include "golomb_legacy.h"
+#include "bitstream.h"
 #include "cavs.h"
+#include "golomb.h"
 #include "internal.h"
 #include "mpeg12data.h"
 
@@ -506,13 +506,13 @@ static inline void mv_pred_sym(AVSContext *h, cavs_vector 
*src,
  /
 
 /** kth-order exponential golomb code */
-static inline int get_ue_code(GetBitContext *gb, int order)
+static inline int get_ue_code(BitstreamContext *bc, int order)
 {
 if (order) {
-int ret = get_ue_golomb(gb) << order;
-return ret + get_bits(gb, order);
+int ret = get_ue_golomb(bc) << order;
+return ret + bitstream_read(bc, order);
 }
-return get_ue_golomb(gb);
+return get_ue_golomb(bc);
 }
 
 static inline int dequant(AVSContext *h, int16_t *level_buf, uint8_t *run_buf,
@@ -545,7 +545,7 @@ static inline int dequant(AVSContext *h, int16_t 
*level_buf, uint8_t *run_buf,
  * @param dst location of sample block
  * @param stride line stride in frame buffer
  */
-static int decode_residual_block(AVSContext *h, GetBitContext *gb,
+static int decode_residual_block(AVSContext *h, BitstreamContext *bc,
  const struct dec_2dvlc *r, int 
esc_golomb_order,
  int qp, uint8_t *dst, ptrdiff_t stride)
 {
@@ -555,10 +555,10 @@ static int decode_residual_block(AVSContext *h, 
GetBitContext *gb,
 int16_t *block = h->block;
 
 for (i = 0;i < 65; i++) {
-level_code = get_ue_code(gb, r->golomb_order);
+level_code = get_ue_code(bc, r->golomb_order);
 if (level_code >= ESCAPE_CODE) {
 run  = ((level_code - ESCAPE_CODE) >> 1) + 1;
-esc_code = get_ue_code(gb, esc_golomb_order);
+esc_code = get_ue_code(bc, esc_golomb_order);
 level= esc_code + (run > r->max_run ? 1 : r->level_add[run]);
 while (level > r->inc_limit)
 r++;
@@ -588,10 +588,10 @@ static int decode_residual_block(AVSContext *h, 
GetBitContext *gb,
 static inline void decode_residual_chroma(AVSContext *h)
 {
 if (h->cbp & (1 << 4))
-decode_residual_block(h, &h->gb, chroma_dec, 0,
+decode_residual_block(h, &h->bc, chroma_dec, 0,
   cavs_chroma_qp[h->qp], h->cu, h->c_stride);
 if (h->cbp & (1 << 5))
-decode_residual_block(h, &h->

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

2017-09-26 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Mar 
19 17:32:04 2016 +0100| [ab2539bd374fe7ddbc6e2f058b62645cd5076192] | committer: 
Diego Biurrun

ffv1: Convert to the new bitstream reader

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

 libavcodec/ffv1.h|  4 ++--
 libavcodec/ffv1dec.c | 24 
 libavcodec/ffv1enc.c |  2 +-
 3 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/libavcodec/ffv1.h b/libavcodec/ffv1.h
index 34370fa143..7e0465abaa 100644
--- a/libavcodec/ffv1.h
+++ b/libavcodec/ffv1.h
@@ -26,7 +26,7 @@
 #include 
 
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "put_bits.h"
 #include "rangecoder.h"
 
@@ -70,7 +70,7 @@ typedef struct FFV1Context {
 AVClass *class;
 AVCodecContext *avctx;
 RangeCoder c;
-GetBitContext gb;
+BitstreamContext bc;
 PutBitContext pb;
 uint64_t rc_stat[256][2];
 uint64_t (*rc_stat2[MAX_QUANT_TABLES])[32][2];
diff --git a/libavcodec/ffv1dec.c b/libavcodec/ffv1dec.c
index 2ebd6864a1..07e66b9dbb 100644
--- a/libavcodec/ffv1dec.c
+++ b/libavcodec/ffv1dec.c
@@ -33,9 +33,9 @@
 #include "libavutil/timer.h"
 
 #include "avcodec.h"
-#include "golomb_legacy.h"
+#include "bitstream.h"
+#include "golomb.h"
 #include "internal.h"
-#include "get_bits.h"
 #include "put_bits.h"
 #include "rangecoder.h"
 #include "mathops.h"
@@ -66,7 +66,7 @@ static av_noinline int get_symbol(RangeCoder *c, uint8_t 
*state, int is_signed)
 return get_symbol_inline(c, state, is_signed);
 }
 
-static inline int get_vlc_symbol(GetBitContext *gb, VlcState *const state,
+static inline int get_vlc_symbol(BitstreamContext *bc, VlcState *const state,
  int bits)
 {
 int k, i, v, ret;
@@ -80,7 +80,7 @@ static inline int get_vlc_symbol(GetBitContext *gb, VlcState 
*const state,
 
 assert(k <= 8);
 
-v = get_sr_golomb(gb, k, 12, bits);
+v = get_sr_golomb(bc, k, 12, bits);
 ff_dlog(NULL, "v:%d bias:%d error:%d drift:%d count:%d k:%d",
 v, state->bias, state->error_sum, state->drift, state->count, k);
 
@@ -124,13 +124,13 @@ static av_always_inline void decode_line(FFV1Context *s, 
int w,
 
 if (run_mode) {
 if (run_count == 0 && run_mode == 1) {
-if (get_bits1(&s->gb)) {
+if (bitstream_read_bit(&s->bc)) {
 run_count = 1 << ff_log2_run[run_index];
 if (x + run_count <= w)
 run_index++;
 } else {
 if (ff_log2_run[run_index])
-run_count = get_bits(&s->gb, 
ff_log2_run[run_index]);
+run_count = bitstream_read(&s->bc, 
ff_log2_run[run_index]);
 else
 run_count = 0;
 if (run_index)
@@ -142,17 +142,17 @@ static av_always_inline void decode_line(FFV1Context *s, 
int w,
 if (run_count < 0) {
 run_mode  = 0;
 run_count = 0;
-diff  = get_vlc_symbol(&s->gb, &p->vlc_state[context],
+diff  = get_vlc_symbol(&s->bc, &p->vlc_state[context],
bits);
 if (diff >= 0)
 diff++;
 } else
 diff = 0;
 } else
-diff = get_vlc_symbol(&s->gb, &p->vlc_state[context], bits);
+diff = get_vlc_symbol(&s->bc, &p->vlc_state[context], bits);
 
 ff_dlog(s->avctx, "count:%d index:%d, mode:%d, x:%d pos:%d\n",
-run_count, run_index, run_mode, x, get_bits_count(&s->gb));
+run_count, run_index, run_mode, x, bitstream_tell(&s->bc));
 }
 
 if (sign)
@@ -364,9 +364,9 @@ static int decode_slice(AVCodecContext *c, void *arg)
 if (f->version == 3 && f->minor_version > 1 || f->version > 3)
 get_rac(&fs->c, (uint8_t[]) { 129 });
 fs->ac_byte_count = f->version > 2 || (!x && !y) ? fs->c.bytestream - 
fs->c.bytestream_start - 1 : 0;
-init_get_bits(&fs->gb, fs->c.bytestream_start + fs->ac_byte_count,
-  (fs->c.bytestream_end - fs->c.bytestream_start -
-   fs->ac_byte_count) * 8);
+bitstream_init8(&fs->bc, fs->c.bytestream_start + fs->ac_byte_count,
+(fs->c.bytestream_end - fs-&

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

2017-09-26 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr 
23 15:19:08 2016 +0200| [0c89ff82e9ddc68ec92316d786cd8ddc7b6c2b8c] | committer: 
Diego Biurrun

aic: Convert to the new bitstream reader

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

 libavcodec/aic.c | 30 +++---
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/libavcodec/aic.c b/libavcodec/aic.c
index 405ebf12d5..368b3bcf23 100644
--- a/libavcodec/aic.c
+++ b/libavcodec/aic.c
@@ -23,13 +23,13 @@
 #include 
 
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bytestream.h"
+#include "golomb.h"
 #include "internal.h"
-#include "get_bits.h"
-#include "golomb_legacy.h"
 #include "idctdsp.h"
 #include "thread.h"
-#include "unary_legacy.h"
+#include "unary.h"
 
 #define AIC_HDR_SIZE24
 #define AIC_BAND_COEFFS (64 + 32 + 192 + 96)
@@ -191,14 +191,14 @@ static int aic_decode_header(AICContext *ctx, const 
uint8_t *src, int size)
 #define GET_CODE(val, type, add_bits) \
 do {  \
 if (type) \
-val = get_ue_golomb(gb);  \
+val = get_ue_golomb(bc);  \
 else  \
-val = get_unary(gb, 1, 31);   \
+val = get_unary(bc, 1, 31);   \
 if (add_bits) \
-val = (val << add_bits) + get_bits(gb, add_bits); \
+val = (val << add_bits) + bitstream_read(bc, add_bits); \
 } while (0)
 
-static int aic_decode_coeffs(GetBitContext *gb, int16_t *dst,
+static int aic_decode_coeffs(BitstreamContext *bc, int16_t *dst,
  int band, int slice_width, int force_chroma)
 {
 int has_skips, coeff_type, coeff_bits, skip_type, skip_bits;
@@ -206,13 +206,13 @@ static int aic_decode_coeffs(GetBitContext *gb, int16_t 
*dst,
 const uint8_t *scan = aic_scan[band | force_chroma];
 int mb, idx, val;
 
-has_skips  = get_bits1(gb);
-coeff_type = get_bits1(gb);
-coeff_bits = get_bits(gb, 3);
+has_skips  = bitstream_read_bit(bc);
+coeff_type = bitstream_read_bit(bc);
+coeff_bits = bitstream_read(bc, 3);
 
 if (has_skips) {
-skip_type = get_bits1(gb);
-skip_bits = get_bits(gb, 3);
+skip_type = bitstream_read_bit(bc);
+skip_bits = bitstream_read(bc, 3);
 
 for (mb = 0; mb < slice_width; mb++) {
 idx = -1;
@@ -303,7 +303,7 @@ static void unquant_block(int16_t *block, int q)
 static int aic_decode_slice(AICContext *ctx, int mb_x, int mb_y,
 const uint8_t *src, int src_size)
 {
-GetBitContext gb;
+BitstreamContext bc;
 int ret, i, mb, blk;
 int slice_width = FFMIN(ctx->slice_width, ctx->mb_width - mb_x);
 uint8_t *Y, *C[2];
@@ -318,12 +318,12 @@ static int aic_decode_slice(AICContext *ctx, int mb_x, 
int mb_y,
 for (i = 0; i < 2; i++)
 C[i] = ctx->frame->data[i + 1] + mb_x * 8
+ mb_y * 8 * ctx->frame->linesize[i + 1];
-init_get_bits(&gb, src, src_size * 8);
+bitstream_init8(&bc, src, src_size);
 
 memset(ctx->slice_data, 0,
sizeof(*ctx->slice_data) * slice_width * AIC_BAND_COEFFS);
 for (i = 0; i < NUM_BANDS; i++)
-if ((ret = aic_decode_coeffs(&gb, ctx->data_ptr[i],
+if ((ret = aic_decode_coeffs(&bc, ctx->data_ptr[i],
  i, slice_width,
  !ctx->interlaced)) < 0)
 return ret;

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-09-26 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Tue Mar 
22 16:09:39 2016 +0100| [2b94ed12de7b6b7f444ed67e1a7068141af3d4ff] | committer: 
Diego Biurrun

shorten: Convert to the new bitstream reader

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

 libavcodec/shorten.c | 49 +
 1 file changed, 25 insertions(+), 24 deletions(-)

diff --git a/libavcodec/shorten.c b/libavcodec/shorten.c
index 82fa2ab943..e040b9cfed 100644
--- a/libavcodec/shorten.c
+++ b/libavcodec/shorten.c
@@ -26,10 +26,11 @@
  */
 
 #include 
+
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bytestream.h"
-#include "get_bits.h"
-#include "golomb_legacy.h"
+#include "golomb.h"
 #include "internal.h"
 
 #define MAX_CHANNELS 8
@@ -79,7 +80,7 @@ static const uint8_t is_audio_command[10] = { 1, 1, 1, 1, 0, 
0, 0, 1, 1, 0 };
 
 typedef struct ShortenContext {
 AVCodecContext *avctx;
-GetBitContext gb;
+BitstreamContext bc;
 
 int min_framesize, max_framesize;
 unsigned channels;
@@ -154,8 +155,8 @@ static int allocate_buffers(ShortenContext *s)
 static inline unsigned int get_uint(ShortenContext *s, int k)
 {
 if (s->version != 0)
-k = get_ur_golomb_shorten(&s->gb, ULONGSIZE);
-return get_ur_golomb_shorten(&s->gb, k);
+k = get_ur_golomb_shorten(&s->bc, ULONGSIZE);
+return get_ur_golomb_shorten(&s->bc, k);
 }
 
 static void fix_bitshift(ShortenContext *s, int32_t *buffer)
@@ -280,7 +281,7 @@ static int decode_subframe_lpc(ShortenContext *s, int 
command, int channel,
 
 if (command == FN_QLPC) {
 /* read/validate prediction order */
-pred_order = get_ur_golomb_shorten(&s->gb, LPCQSIZE);
+pred_order = get_ur_golomb_shorten(&s->bc, LPCQSIZE);
 if (pred_order > s->nwrap) {
 av_log(s->avctx, AV_LOG_ERROR, "invalid pred_order %d\n",
pred_order);
@@ -288,7 +289,7 @@ static int decode_subframe_lpc(ShortenContext *s, int 
command, int channel,
 }
 /* read LPC coefficients */
 for (i = 0; i < pred_order; i++)
-s->coeffs[i] = get_sr_golomb_shorten(&s->gb, LPCQUANT);
+s->coeffs[i] = get_sr_golomb_shorten(&s->bc, LPCQUANT);
 coeffs = s->coeffs;
 
 qshift = LPCQUANT;
@@ -315,7 +316,7 @@ static int decode_subframe_lpc(ShortenContext *s, int 
command, int channel,
 sum = init_sum;
 for (j = 0; j < pred_order; j++)
 sum += coeffs[j] * s->decoded[channel][i - j - 1];
-s->decoded[channel][i] = get_sr_golomb_shorten(&s->gb, residual_size) +
+s->decoded[channel][i] = get_sr_golomb_shorten(&s->bc, residual_size) +
  (sum >> qshift);
 }
 
@@ -332,7 +333,7 @@ static int read_header(ShortenContext *s)
 int i, ret;
 int maxnlpc = 0;
 /* shorten signature */
-if (get_bits_long(&s->gb, 32) != AV_RB32("ajkg")) {
+if (bitstream_read(&s->bc, 32) != AV_RB32("ajkg")) {
 av_log(s->avctx, AV_LOG_ERROR, "missing shorten magic 'ajkg'\n");
 return AVERROR_INVALIDDATA;
 }
@@ -340,7 +341,7 @@ static int read_header(ShortenContext *s)
 s->lpcqoffset = 0;
 s->blocksize  = DEFAULT_BLOCK_SIZE;
 s->nmean  = -1;
-s->version= get_bits(&s->gb, 8);
+s->version= bitstream_read(&s->bc, 8);
 s->internal_ftype = get_uint(s, TYPESIZE);
 
 s->channels = get_uint(s, CHANSIZE);
@@ -374,7 +375,7 @@ static int read_header(ShortenContext *s)
 
 skip_bytes = get_uint(s, NSKIPSIZE);
 for (i = 0; i < skip_bytes; i++)
-skip_bits(&s->gb, 8);
+bitstream_skip(&s->bc, 8);
 }
 s->nwrap = FFMAX(NWRAP, maxnlpc);
 
@@ -387,13 +388,13 @@ static int read_header(ShortenContext *s)
 if (s->version > 1)
 s->lpcqoffset = V2LPCQOFFSET;
 
-if (get_ur_golomb_shorten(&s->gb, FNSIZE) != FN_VERBATIM) {
+if (get_ur_golomb_shorten(&s->bc, FNSIZE) != FN_VERBATIM) {
 av_log(s->avctx, AV_LOG_ERROR,
"missing verbatim section at beginning of stream\n");
 return AVERROR_INVALIDDATA;
 }
 
-s->header_size = get_ur_golomb_shorten(&s->gb, VERBATIM_CKSIZE_SIZE);
+s->header_size = get_ur_golomb_shorten(&s->bc, VERBATIM_CKSIZE_SIZE);
 if (s->header_size >= OUT_BUFFER_SIZE ||
 s->header_size < CANONICAL_HEADER_SIZE) {
 av_log(s->avctx, AV_LOG_ERROR, "header is wrong size: %d\n",
@@ -402,7 +403,7 @@ static int read_header(ShortenContext *s)
 }
 
   

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

2017-09-26 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Mon Mar 
21 20:23:36 2016 +0100| [d85b37a955317f176f3443a40859a21c15d7c3bc] | committer: 
Diego Biurrun

loco: Convert to the new bitstream reader

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

 libavcodec/loco.c | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/libavcodec/loco.c b/libavcodec/loco.c
index 8624ea86ad..fa4c5edb40 100644
--- a/libavcodec/loco.c
+++ b/libavcodec/loco.c
@@ -25,8 +25,8 @@
  */
 
 #include "avcodec.h"
-#include "get_bits.h"
-#include "golomb_legacy.h"
+#include "bitstream.h"
+#include "golomb.h"
 #include "internal.h"
 #include "mathops.h"
 
@@ -50,7 +50,7 @@ typedef struct LOCOContext {
 } LOCOContext;
 
 typedef struct RICEContext {
-GetBitContext gb;
+BitstreamContext bc;
 int save, run, run2; /* internal rice decoder state */
 int sum, count; /* sum and count for getting rice parameter */
 int lossy;
@@ -88,11 +88,11 @@ static inline int loco_get_rice(RICEContext *r)
 loco_update_rice_param(r, 0);
 return 0;
 }
-v = get_ur_golomb_jpegls(&r->gb, loco_get_rice_param(r), INT_MAX, 0);
+v = get_ur_golomb_jpegls(&r->bc, loco_get_rice_param(r), INT_MAX, 0);
 loco_update_rice_param(r, (v + 1) >> 1);
 if (!v) {
 if (r->save >= 0) {
-r->run = get_ur_golomb_jpegls(&r->gb, 2, INT_MAX, 0);
+r->run = get_ur_golomb_jpegls(&r->bc, 2, INT_MAX, 0);
 if (r->run > 1)
 r->save += r->run + 1;
 else
@@ -132,7 +132,7 @@ static int loco_decode_plane(LOCOContext *l, uint8_t *data, 
int width, int heigh
 int val;
 int i, j;
 
-init_get_bits(&rc.gb, buf, buf_size*8);
+bitstream_init8(&rc.bc, buf, buf_size);
 rc.save  = 0;
 rc.run   = 0;
 rc.run2  = 0;
@@ -162,7 +162,7 @@ static int loco_decode_plane(LOCOContext *l, uint8_t *data, 
int width, int heigh
 data += stride;
 }
 
-return (get_bits_count(&rc.gb) + 7) >> 3;
+return (bitstream_tell(&rc.bc) + 7) >> 3;
 }
 
 static int decode_frame(AVCodecContext *avctx,

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-09-26 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sun Apr 
10 11:44:20 2016 +0200| [2d72219554adb09bc3ba044ac3e579a84550067b] | committer: 
Diego Biurrun

h261dec: Convert to the new bitstream reader

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

 libavcodec/h261dec.c   | 92 ++
 libavcodec/mpegvideo.h |  3 ++
 libavformat/h261dec.c  | 11 +++---
 3 files changed, 56 insertions(+), 50 deletions(-)

diff --git a/libavcodec/h261dec.c b/libavcodec/h261dec.c
index 9a323ec7d1..b08598ec99 100644
--- a/libavcodec/h261dec.c
+++ b/libavcodec/h261dec.c
@@ -26,12 +26,14 @@
  */
 
 #include "avcodec.h"
+#include "bitstream.h"
 #include "mpeg_er.h"
 #include "mpegutils.h"
 #include "mpegvideo.h"
 #include "h263.h"
 #include "h261.h"
 #include "internal.h"
+#include "vlc.h"
 
 #define H261_MBA_VLC_BITS 9
 #define H261_MTYPE_VLC_BITS 6
@@ -103,18 +105,18 @@ static int h261_decode_gob_header(H261Context *h)
 
 if (!h->gob_start_code_skipped) {
 /* Check for GOB Start Code */
-val = show_bits(&s->gb, 15);
+val = bitstream_peek(&s->bc, 15);
 if (val)
 return -1;
 
 /* We have a GBSC */
-skip_bits(&s->gb, 16);
+bitstream_skip(&s->bc, 16);
 }
 
 h->gob_start_code_skipped = 0;
 
-h->gob_number = get_bits(&s->gb, 4); /* GN */
-s->qscale = get_bits(&s->gb, 5); /* GQUANT */
+h->gob_number = bitstream_read(&s->bc, 4); /* GN */
+s->qscale = bitstream_read(&s->bc, 5); /* GQUANT */
 
 /* Check if gob_number is valid */
 if (s->mb_height == 18) { // CIF
@@ -127,8 +129,8 @@ static int h261_decode_gob_header(H261Context *h)
 }
 
 /* GEI */
-while (get_bits1(&s->gb) != 0)
-skip_bits(&s->gb, 8);
+while (bitstream_read_bit(&s->bc) != 0)
+bitstream_skip(&s->bc, 8);
 
 if (s->qscale == 0) {
 av_log(s->avctx, AV_LOG_ERROR, "qscale has forbidden 0 value\n");
@@ -160,27 +162,27 @@ static int h261_resync(H261Context *h)
 if (ret >= 0)
 return 0;
 } else {
-if (show_bits(&s->gb, 15) == 0) {
+if (bitstream_peek(&s->bc, 15) == 0) {
 ret = h261_decode_gob_header(h);
 if (ret >= 0)
 return 0;
 }
 // OK, it is not where it is supposed to be ...
-s->gb = s->last_resync_gb;
-align_get_bits(&s->gb);
-left = get_bits_left(&s->gb);
+s->bc = s->last_resync_bc;
+bitstream_align(&s->bc);
+left = bitstream_bits_left(&s->bc);
 
 for (; left > 15 + 1 + 4 + 5; left -= 8) {
-if (show_bits(&s->gb, 15) == 0) {
-GetBitContext bak = s->gb;
+if (bitstream_peek(&s->bc, 15) == 0) {
+BitstreamContext bak = s->bc;
 
 ret = h261_decode_gob_header(h);
 if (ret >= 0)
 return 0;
 
-s->gb = bak;
+s->bc = bak;
 }
-skip_bits(&s->gb, 8);
+bitstream_skip(&s->bc, 8);
 }
 }
 
@@ -228,9 +230,9 @@ static const int mvmap[17] = {
 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, -12, -13, -14, -15, -16
 };
 
-static int decode_mv_component(GetBitContext *gb, int v)
+static int decode_mv_component(BitstreamContext *bc, int v)
 {
-int mv_diff = get_vlc2(gb, h261_mv_vlc.table, H261_MV_VLC_BITS, 2);
+int mv_diff = bitstream_read_vlc(bc, h261_mv_vlc.table, H261_MV_VLC_BITS, 
2);
 
 /* check if mv_diff is valid */
 if (mv_diff < 0)
@@ -238,7 +240,7 @@ static int decode_mv_component(GetBitContext *gb, int v)
 
 mv_diff = mvmap[mv_diff];
 
-if (mv_diff && !get_bits1(gb))
+if (mv_diff && !bitstream_read_bit(bc))
 mv_diff = -mv_diff;
 
 v += mv_diff;
@@ -270,7 +272,7 @@ static int h261_decode_block(H261Context *h, int16_t 
*block, int n, int coded)
 scan_table = s->intra_scantable.permutated;
 if (s->mb_intra) {
 /* DC coef */
-level = get_bits(&s->gb, 8);
+level = bitstream_read(&s->bc, 8);
 // 0 (b) and -128 (1000b) are FORBIDDEN
 if ((level & 0x7F) == 0) {
 av_log(s->avctx, AV_LOG_ERROR, "illegal dc %d at %d %d\n",
@@ -288,10 +290,10 @@ static int h261_decode_block(H261Context *h, int16_t 
*block, int n, int coded)
 // EOB  Not possible for first level when cbp is available 
(that's why the table is different)
 // 01   1s
 // **   0*
-int check = show_bits(&

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

2017-09-26 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Mar 
19 15:39:03 2016 +0100| [6b1f559f9a0667390259374c738132ad9475fd39] | committer: 
Diego Biurrun

dirac: Convert to the new bitstream reader

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

 libavcodec/dirac.c | 89 +++---
 1 file changed, 45 insertions(+), 44 deletions(-)

diff --git a/libavcodec/dirac.c b/libavcodec/dirac.c
index cce9439d44..5faf0a384d 100644
--- a/libavcodec/dirac.c
+++ b/libavcodec/dirac.c
@@ -28,8 +28,9 @@
 #include "libavutil/imgutils.h"
 
 #include "avcodec.h"
+#include "bitstream.h"
 #include "dirac.h"
-#include "golomb_legacy.h"
+#include "golomb.h"
 #include "internal.h"
 #include "mpeg12data.h"
 
@@ -138,7 +139,7 @@ static const enum AVPixelFormat dirac_pix_fmt[2][3] = {
 
 /* [DIRAC_STD] 10.3 Parse Source Parameters.
  * source_parameters(base_video_format) */
-static int parse_source_parameters(AVDiracSeqHeader *dsh, GetBitContext *gb,
+static int parse_source_parameters(AVDiracSeqHeader *dsh, BitstreamContext *bc,
void *log_ctx)
 {
 AVRational frame_rate = { 0, 0 };
@@ -147,17 +148,17 @@ static int parse_source_parameters(AVDiracSeqHeader *dsh, 
GetBitContext *gb,
 
 /* [DIRAC_STD] 10.3.2 Frame size. frame_size(video_params) */
 /* [DIRAC_STD] custom_dimensions_flag */
-if (get_bits1(gb)) {
-dsh->width  = get_interleaved_ue_golomb(gb); /* [DIRAC_STD] 
FRAME_WIDTH  */
-dsh->height = get_interleaved_ue_golomb(gb); /* [DIRAC_STD] 
FRAME_HEIGHT */
+if (bitstream_read_bit(bc)) {
+dsh->width  = get_interleaved_ue_golomb(bc); /* [DIRAC_STD] 
FRAME_WIDTH  */
+dsh->height = get_interleaved_ue_golomb(bc); /* [DIRAC_STD] 
FRAME_HEIGHT */
 }
 
 /* [DIRAC_STD] 10.3.3 Chroma Sampling Format.
  *  chroma_sampling_format(video_params) */
 /* [DIRAC_STD] custom_chroma_format_flag */
-if (get_bits1(gb))
+if (bitstream_read_bit(bc))
 /* [DIRAC_STD] CHROMA_FORMAT_INDEX */
-dsh->chroma_format = get_interleaved_ue_golomb(gb);
+dsh->chroma_format = get_interleaved_ue_golomb(bc);
 if (dsh->chroma_format > 2) {
 if (log_ctx)
 av_log(log_ctx, AV_LOG_ERROR, "Unknown chroma format %d\n",
@@ -167,24 +168,24 @@ static int parse_source_parameters(AVDiracSeqHeader *dsh, 
GetBitContext *gb,
 
 /* [DIRAC_STD] 10.3.4 Scan Format. scan_format(video_params) */
 /* [DIRAC_STD] custom_scan_format_flag */
-if (get_bits1(gb))
+if (bitstream_read_bit(bc))
 /* [DIRAC_STD] SOURCE_SAMPLING */
-dsh->interlaced = get_interleaved_ue_golomb(gb);
+dsh->interlaced = get_interleaved_ue_golomb(bc);
 if (dsh->interlaced > 1)
 return AVERROR_INVALIDDATA;
 
 /* [DIRAC_STD] 10.3.5 Frame Rate. frame_rate(video_params) */
-if (get_bits1(gb)) { /* [DIRAC_STD] custom_frame_rate_flag */
-dsh->frame_rate_index = get_interleaved_ue_golomb(gb);
+if (bitstream_read_bit(bc)) { /* [DIRAC_STD] custom_frame_rate_flag */
+dsh->frame_rate_index = get_interleaved_ue_golomb(bc);
 
 if (dsh->frame_rate_index > 10)
 return AVERROR_INVALIDDATA;
 
 if (!dsh->frame_rate_index) {
 /* [DIRAC_STD] FRAME_RATE_NUMER */
-frame_rate.num = get_interleaved_ue_golomb(gb);
+frame_rate.num = get_interleaved_ue_golomb(bc);
 /* [DIRAC_STD] FRAME_RATE_DENOM */
-frame_rate.den = get_interleaved_ue_golomb(gb);
+frame_rate.den = get_interleaved_ue_golomb(bc);
 }
 }
 /* [DIRAC_STD] preset_frame_rate(video_params, index) */
@@ -199,16 +200,16 @@ static int parse_source_parameters(AVDiracSeqHeader *dsh, 
GetBitContext *gb,
 
 /* [DIRAC_STD] 10.3.6 Pixel Aspect Ratio.
  * pixel_aspect_ratio(video_params) */
-if (get_bits1(gb)) { /* [DIRAC_STD] custom_pixel_aspect_ratio_flag */
+if (bitstream_read_bit(bc)) { /* [DIRAC_STD] 
custom_pixel_aspect_ratio_flag */
 /* [DIRAC_STD] index */
-dsh->aspect_ratio_index = get_interleaved_ue_golomb(gb);
+dsh->aspect_ratio_index = get_interleaved_ue_golomb(bc);
 
 if (dsh->aspect_ratio_index > 6)
 return AVERROR_INVALIDDATA;
 
 if (!dsh->aspect_ratio_index) {
-dsh->sample_aspect_ratio.num = get_interleaved_ue_golomb(gb);
-dsh->sample_aspect_ratio.den = get_interleaved_ue_golomb(gb);
+dsh->sample_aspect_ratio.num = get_interleaved_ue_golomb(bc);
+dsh->sample_aspect_ratio.den = get_interleaved_ue_golomb(bc);
 }
 }
 /* [DIRAC_STD] Take value from Table 10.4 Available preset pixel
@@ -218,33 +219,33 @@ static int parse_source_para

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

2017-09-26 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Tue Mar 
22 10:26:03 2016 +0100| [5a6da49dd0c078b7d20e130ab74f326abc4678a1] | committer: 
Diego Biurrun

ralf: Convert to the new bitstream reader

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

 libavcodec/ralf.c | 68 ---
 1 file changed, 35 insertions(+), 33 deletions(-)

diff --git a/libavcodec/ralf.c b/libavcodec/ralf.c
index 6bc0f3fa0d..1003b10c11 100644
--- a/libavcodec/ralf.c
+++ b/libavcodec/ralf.c
@@ -28,11 +28,13 @@
 
 #include "libavutil/attributes.h"
 #include "libavutil/channel_layout.h"
+
 #include "avcodec.h"
-#include "get_bits.h"
-#include "golomb_legacy.h"
+#include "bitstream.h"
+#include "golomb.h"
 #include "internal.h"
-#include "unary_legacy.h"
+#include "unary.h"
+#include "vlc.h"
 #include "ralfdata.h"
 
 #define FILTER_NONE 0
@@ -210,21 +212,21 @@ static av_cold int decode_init(AVCodecContext *avctx)
 return 0;
 }
 
-static inline int extend_code(GetBitContext *gb, int val, int range, int bits)
+static inline int extend_code(BitstreamContext *bc, int val, int range, int 
bits)
 {
 if (val == 0) {
-val = -range - get_ue_golomb(gb);
+val = -range - get_ue_golomb(bc);
 } else if (val == range * 2) {
-val =  range + get_ue_golomb(gb);
+val =  range + get_ue_golomb(bc);
 } else {
 val -= range;
 }
 if (bits)
-val = (val << bits) | get_bits(gb, bits);
+val = (val << bits) | bitstream_read(bc, bits);
 return val;
 }
 
-static int decode_channel(RALFContext *ctx, GetBitContext *gb, int ch,
+static int decode_channel(RALFContext *ctx, BitstreamContext *bc, int ch,
   int length, int mode, int bits)
 {
 int i, t;
@@ -233,19 +235,19 @@ static int decode_channel(RALFContext *ctx, GetBitContext 
*gb, int ch,
 VLC *code_vlc; int range, range2, add_bits;
 int *dst = ctx->channel_data[ch];
 
-ctx->filter_params = get_vlc2(gb, set->filter_params.table, 9, 2);
+ctx->filter_params = bitstream_read_vlc(bc, set->filter_params.table, 9, 
2);
 ctx->filter_bits   = (ctx->filter_params - 2) >> 6;
 ctx->filter_length = ctx->filter_params - (ctx->filter_bits << 6) - 1;
 
 if (ctx->filter_params == FILTER_RAW) {
 for (i = 0; i < length; i++)
-dst[i] = get_bits(gb, bits);
+dst[i] = bitstream_read(bc, bits);
 ctx->bias[ch] = 0;
 return 0;
 }
 
-ctx->bias[ch] = get_vlc2(gb, set->bias.table, 9, 2);
-ctx->bias[ch] = extend_code(gb, ctx->bias[ch], 127, 4);
+ctx->bias[ch] = bitstream_read_vlc(bc, set->bias.table, 9, 2);
+ctx->bias[ch] = extend_code(bc, ctx->bias[ch], 127, 4);
 
 if (ctx->filter_params == FILTER_NONE) {
 memset(dst, 0, sizeof(*dst) * length);
@@ -259,8 +261,8 @@ static int decode_channel(RALFContext *ctx, GetBitContext 
*gb, int ch,
 add_bits = ctx->filter_bits;
 
 for (i = 0; i < ctx->filter_length; i++) {
-t = get_vlc2(gb, vlc[cmode].table, vlc[cmode].bits, 2);
-t = extend_code(gb, t, 21, add_bits);
+t = bitstream_read_vlc(bc, vlc[cmode].table, vlc[cmode].bits, 2);
+t = extend_code(bc, t, 21, add_bits);
 if (!cmode)
 coeff -= 12 << add_bits;
 coeff = t - coeff;
@@ -279,7 +281,7 @@ static int decode_channel(RALFContext *ctx, GetBitContext 
*gb, int ch,
 }
 }
 
-code_params = get_vlc2(gb, set->coding_mode.table, set->coding_mode.bits, 
2);
+code_params = bitstream_read_vlc(bc, set->coding_mode.table, 
set->coding_mode.bits, 2);
 if (code_params >= 15) {
 add_bits = av_clip((code_params / 5 - 3) / 2, 0, 10);
 if (add_bits > 9 && (code_params % 5) != 2)
@@ -297,14 +299,14 @@ static int decode_channel(RALFContext *ctx, GetBitContext 
*gb, int ch,
 for (i = 0; i < length; i += 2) {
 int code1, code2;
 
-t = get_vlc2(gb, code_vlc->table, code_vlc->bits, 2);
+t = bitstream_read_vlc(bc, code_vlc->table, code_vlc->bits, 2);
 code1 = t / range2;
 code2 = t % range2;
-dst[i] = extend_code(gb, code1, range, 0) << add_bits;
-dst[i + 1] = extend_code(gb, code2, range, 0) << add_bits;
+dst[i] = extend_code(bc, code1, range, 0) << add_bits;
+dst[i + 1] = extend_code(bc, code2, range, 0) << add_bits;
 if (add_bits) {
-dst[i] |= get_bits(gb, add_bits);
-dst[i + 1] |= get_bits(gb, add_bits);
+dst[i] |= bitstream_read(bc, add_bits);
+dst[i + 1

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

2017-09-26 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Thu Mar 
17 14:21:24 2016 +0100| [c29da01ac95ea2c8c5c4b3a312a338fb7068] | committer: 
Diego Biurrun

svq3: Convert to the new bitstream reader

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

 libavcodec/svq3.c | 132 +++---
 1 file changed, 66 insertions(+), 66 deletions(-)

diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c
index 8bbd331de3..20c8f89e76 100644
--- a/libavcodec/svq3.c
+++ b/libavcodec/svq3.c
@@ -44,7 +44,8 @@
 
 #include "libavutil/attributes.h"
 
-#include "golomb_legacy.h"
+#include "bitstream.h"
+#include "golomb.h"
 #include "internal.h"
 #include "avcodec.h"
 #include "mpegutils.h"
@@ -92,8 +93,8 @@ typedef struct SVQ3Context {
 SVQ3Frame *cur_pic;
 SVQ3Frame *next_pic;
 SVQ3Frame *last_pic;
-GetBitContext gb;
-GetBitContext gb_slice;
+BitstreamContext bc;
+BitstreamContext bc_slice;
 uint8_t *slice_buf;
 int slice_size;
 int halfpel_flag;
@@ -292,7 +293,7 @@ static void svq3_add_idct_c(uint8_t *dst, int16_t *block,
 memset(block, 0, 16 * sizeof(int16_t));
 }
 
-static inline int svq3_decode_block(GetBitContext *gb, int16_t *block,
+static inline int svq3_decode_block(BitstreamContext *bc, int16_t *block,
 int index, const int type)
 {
 static const uint8_t *const scan_patterns[4] = {
@@ -305,7 +306,7 @@ static inline int svq3_decode_block(GetBitContext *gb, 
int16_t *block,
 const uint8_t *const scan = scan_patterns[type];
 
 for (limit = (16 >> intra); index < 16; index = limit, limit += 8) {
-for (; (vlc = get_interleaved_ue_golomb(gb)) != 0; index++) {
+for (; (vlc = get_interleaved_ue_golomb(bc)) != 0; index++) {
 int sign = (vlc & 1) ? 0 : -1;
 vlc  = vlc + 1 >> 1;
 
@@ -542,8 +543,8 @@ static inline int svq3_mc_dir(SVQ3Context *s, int size, int 
mode,
 if (mode == PREDICT_MODE) {
 dx = dy = 0;
 } else {
-dy = get_interleaved_se_golomb(&s->gb_slice);
-dx = get_interleaved_se_golomb(&s->gb_slice);
+dy = get_interleaved_se_golomb(&s->bc_slice);
+dx = get_interleaved_se_golomb(&s->bc_slice);
 
 if (dx == INVALID_VLC || dy == INVALID_VLC) {
 av_log(s->avctx, AV_LOG_ERROR, "invalid MV vlc\n");
@@ -744,10 +745,10 @@ static int svq3_decode_mb(SVQ3Context *s, unsigned int 
mb_type)
 mb_type = MB_TYPE_16x16;
 }
 } else if (mb_type < 8) { /* INTER */
-if (s->thirdpel_flag && s->halfpel_flag == !get_bits1(&s->gb_slice))
+if (s->thirdpel_flag && s->halfpel_flag == 
!bitstream_read_bit(&s->bc_slice))
 mode = THIRDPEL_MODE;
 else if (s->halfpel_flag &&
- s->thirdpel_flag == !get_bits1(&s->gb_slice))
+ s->thirdpel_flag == !bitstream_read_bit(&s->bc_slice))
 mode = HALFPEL_MODE;
 else
 mode = FULLPEL_MODE;
@@ -849,7 +850,7 @@ static int svq3_decode_mb(SVQ3Context *s, unsigned int 
mb_type)
 
 /* decode prediction codes for luma blocks */
 for (i = 0; i < 16; i += 2) {
-vlc = get_interleaved_ue_golomb(&s->gb_slice);
+vlc = get_interleaved_ue_golomb(&s->bc_slice);
 
 if (vlc >= 25) {
 av_log(s->avctx, AV_LOG_ERROR,
@@ -927,7 +928,7 @@ static int svq3_decode_mb(SVQ3Context *s, unsigned int 
mb_type)
 
 if (!IS_INTRA16x16(mb_type) &&
 (!IS_SKIP(mb_type) || s->pict_type == AV_PICTURE_TYPE_B)) {
-if ((vlc = get_interleaved_ue_golomb(&s->gb_slice)) >= 48) {
+if ((vlc = get_interleaved_ue_golomb(&s->bc_slice)) >= 48) {
 av_log(s->avctx, AV_LOG_ERROR, "cbp_vlc=%"PRIu32"\n", vlc);
 return -1;
 }
@@ -937,7 +938,7 @@ static int svq3_decode_mb(SVQ3Context *s, unsigned int 
mb_type)
 }
 if (IS_INTRA16x16(mb_type) ||
 (s->pict_type != AV_PICTURE_TYPE_I && s->adaptive_quant && cbp)) {
-s->qscale += get_interleaved_se_golomb(&s->gb_slice);
+s->qscale += get_interleaved_se_golomb(&s->bc_slice);
 
 if (s->qscale > 31u) {
 av_log(s->avctx, AV_LOG_ERROR, "qscale:%d\n", s->qscale);
@@ -947,7 +948,7 @@ static int svq3_decode_mb(SVQ3Context *s, unsigned int 
mb_type)
 if (IS_INTRA16x16(mb_type)) {
 AV_ZERO128(s->mb_luma_dc[0] + 0);
 AV_ZERO128(s->mb_luma_dc[0] + 8);

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

2017-09-26 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Fri Apr 
15 10:46:06 2016 +0200| [f7ec7f546f0021d28da284b024416b916b61c974] | committer: 
Diego Biurrun

wma: Convert to the new bitstream reader

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

 libavcodec/wma.c|  41 +++
 libavcodec/wma.h|   8 +-
 libavcodec/wmadec.c |  64 +--
 libavcodec/wmalosslessdec.c | 188 +++
 libavcodec/wmaprodec.c  | 207 +-
 libavcodec/wmavoice.c   | 262 ++--
 6 files changed, 387 insertions(+), 383 deletions(-)

diff --git a/libavcodec/wma.c b/libavcodec/wma.c
index 4067dff11a..697b41b0aa 100644
--- a/libavcodec/wma.c
+++ b/libavcodec/wma.c
@@ -22,6 +22,7 @@
 #include "libavutil/attributes.h"
 
 #include "avcodec.h"
+#include "bitstream.h"
 #include "internal.h"
 #include "sinewin.h"
 #include "wma.h"
@@ -382,30 +383,30 @@ int ff_wma_end(AVCodecContext *avctx)
 
 /**
  * Decode an uncompressed coefficient.
- * @param gb GetBitContext
+ * @param bc BitstreamContext
  * @return the decoded coefficient
  */
-unsigned int ff_wma_get_large_val(GetBitContext *gb)
+unsigned int ff_wma_get_large_val(BitstreamContext *bc)
 {
 /** consumes up to 34 bits */
 int n_bits = 8;
 /** decode length */
-if (get_bits1(gb)) {
+if (bitstream_read_bit(bc)) {
 n_bits += 8;
-if (get_bits1(gb)) {
+if (bitstream_read_bit(bc)) {
 n_bits += 8;
-if (get_bits1(gb))
+if (bitstream_read_bit(bc))
 n_bits += 7;
 }
 }
-return get_bits_long(gb, n_bits);
+return bitstream_read(bc, n_bits);
 }
 
 /**
  * Decode run level compressed coefficients.
  * @param avctx codec context
- * @param gb bitstream reader context
- * @param vlc vlc table for get_vlc2
+ * @param bc bitstream reader context
+ * @param vlc VLC table for bitstream_read_vlc
  * @param level_table level codes
  * @param run_table run codes
  * @param version 0 for wma1,2 1 for wmapro
@@ -417,7 +418,7 @@ unsigned int ff_wma_get_large_val(GetBitContext *gb)
  * @param coef_nb_bits number of bits for escaped level codes
  * @return 0 on success, -1 otherwise
  */
-int ff_wma_run_level_decode(AVCodecContext *avctx, GetBitContext *gb,
+int ff_wma_run_level_decode(AVCodecContext *avctx, BitstreamContext *bc,
 VLC *vlc, const float *level_table,
 const uint16_t *run_table, int version,
 WMACoef *ptr, int offset, int num_coefs,
@@ -429,11 +430,11 @@ int ff_wma_run_level_decode(AVCodecContext *avctx, 
GetBitContext *gb,
 uint32_t *iptr = (uint32_t *) ptr;
 const unsigned int coef_mask = block_len - 1;
 for (; offset < num_coefs; offset++) {
-code = get_vlc2(gb, vlc->table, VLCBITS, VLCMAX);
+code = bitstream_read_vlc(bc, vlc->table, VLCBITS, VLCMAX);
 if (code > 1) {
 /** normal code */
 offset  += run_table[code];
-sign = get_bits1(gb) - 1;
+sign = bitstream_read_bit(bc) - 1;
 iptr[offset & coef_mask] = ilvl[code] ^ sign << 31;
 } else if (code == 1) {
 /** EOB */
@@ -441,26 +442,26 @@ int ff_wma_run_level_decode(AVCodecContext *avctx, 
GetBitContext *gb,
 } else {
 /** escape */
 if (!version) {
-level = get_bits(gb, coef_nb_bits);
+level = bitstream_read(bc, coef_nb_bits);
 /** NOTE: this is rather suboptimal. reading
  *  block_len_bits would be better */
-offset += get_bits(gb, frame_len_bits);
+offset += bitstream_read(bc, frame_len_bits);
 } else {
-level = ff_wma_get_large_val(gb);
+level = ff_wma_get_large_val(bc);
 /** escape decode */
-if (get_bits1(gb)) {
-if (get_bits1(gb)) {
-if (get_bits1(gb)) {
+if (bitstream_read_bit(bc)) {
+if (bitstream_read_bit(bc)) {
+if (bitstream_read_bit(bc)) {
 av_log(avctx, AV_LOG_ERROR,
"broken escape sequence\n");
 return -1;
 } else
-offset += get_bits(gb, frame_len_bits) + 4;
+offset += bitstream_read(bc, frame_len_bits) + 4;
 } else
-offset += get_bits(gb, 2) + 1;
+offset += bitstream_read(bc, 2) + 1;
 }
 }
-sign   

[FFmpeg-cvslog] asfdec: Account for different Format Data sizes

2017-09-27 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | 
Wed Feb  8 12:51:37 2017 +0100| [0539d84d985e811e5989ef27c13f7e2dda0f9b89] | 
committer: Diego Biurrun

asfdec: Account for different Format Data sizes

Some muxers may use the BMP_HEADER Format Data size instead
of the ASF-specific one.

Bug-Id: 1020
CC: libav-sta...@libav.org

Signed-off-by: Diego Biurrun 

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

 libavformat/asfdec.c  | 12 +++-
 libavformat/avidec.c  |  2 +-
 libavformat/riff.h|  3 ++-
 libavformat/riffdec.c |  6 --
 libavformat/wtv.c |  2 +-
 5 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/libavformat/asfdec.c b/libavformat/asfdec.c
index d602af8793..34730b20aa 100644
--- a/libavformat/asfdec.c
+++ b/libavformat/asfdec.c
@@ -691,20 +691,22 @@ static int asf_read_properties(AVFormatContext *s, const 
GUIDParseTable *g)
 
 static int parse_video_info(AVIOContext *pb, AVStream *st)
 {
-uint16_t size;
+uint16_t size_asf; // ASF-specific Format Data size
+uint32_t size_bmp; // BMP_HEADER-specific Format Data size
 unsigned int tag;
 
 st->codecpar->width  = avio_rl32(pb);
 st->codecpar->height = avio_rl32(pb);
 avio_skip(pb, 1); // skip reserved flags
-size = avio_rl16(pb); // size of the Format Data
-tag  = ff_get_bmp_header(pb, st);
+size_asf = avio_rl16(pb);
+tag = ff_get_bmp_header(pb, st, &size_bmp);
 st->codecpar->codec_tag = tag;
 st->codecpar->codec_id  = ff_codec_get_id(ff_codec_bmp_tags, tag);
+size_bmp = FFMAX(size_asf, size_bmp);
 
-if (size > BMP_HEADER_SIZE) {
+if (size_bmp > BMP_HEADER_SIZE) {
 int ret;
-st->codecpar->extradata_size  = size - BMP_HEADER_SIZE;
+st->codecpar->extradata_size  = size_bmp - BMP_HEADER_SIZE;
 if (!(st->codecpar->extradata = av_malloc(st->codecpar->extradata_size 
+
AV_INPUT_BUFFER_PADDING_SIZE))) 
{
 st->codecpar->extradata_size = 0;
diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index 701cccb6b0..870066eb25 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -613,7 +613,7 @@ static int avi_read_header(AVFormatContext *s)
 avio_skip(pb, size);
 break;
 }
-tag1 = ff_get_bmp_header(pb, st);
+tag1 = ff_get_bmp_header(pb, st, NULL);
 
 if (tag1 == MKTAG('D', 'X', 'S', 'B') ||
 tag1 == MKTAG('D', 'X', 'S', 'A')) {
diff --git a/libavformat/riff.h b/libavformat/riff.h
index a45c7f301c..e5f4645c12 100644
--- a/libavformat/riff.h
+++ b/libavformat/riff.h
@@ -41,9 +41,10 @@ void ff_end_tag(AVIOContext *pb, int64_t start);
 /**
  * Read BITMAPINFOHEADER structure and set AVStream codec width, height and
  * bits_per_encoded_sample fields. Does not read extradata.
+ * Writes the size of the BMP file to *size.
  * @return codec tag
  */
-int ff_get_bmp_header(AVIOContext *pb, AVStream *st);
+int ff_get_bmp_header(AVIOContext *pb, AVStream *st, uint32_t *size);
 
 void ff_put_bmp_header(AVIOContext *pb, AVCodecParameters *par, const 
AVCodecTag *tags, int for_asf);
 int ff_put_wav_header(AVFormatContext *s, AVIOContext *pb, AVCodecParameters 
*par);
diff --git a/libavformat/riffdec.c b/libavformat/riffdec.c
index 81248355e3..db83b3205a 100644
--- a/libavformat/riffdec.c
+++ b/libavformat/riffdec.c
@@ -180,10 +180,12 @@ enum AVCodecID ff_wav_codec_get_id(unsigned int tag, int 
bps)
 return id;
 }
 
-int ff_get_bmp_header(AVIOContext *pb, AVStream *st)
+int ff_get_bmp_header(AVIOContext *pb, AVStream *st, uint32_t *size)
 {
 int tag1;
-avio_rl32(pb); /* size */
+uint32_t size_ = avio_rl32(pb);
+if (size)
+*size = size_;
 st->codecpar->width  = avio_rl32(pb);
 st->codecpar->height = (int32_t)avio_rl32(pb);
 avio_rl16(pb); /* planes */
diff --git a/libavformat/wtv.c b/libavformat/wtv.c
index 794dd4bb71..d750cef647 100644
--- a/libavformat/wtv.c
+++ b/libavformat/wtv.c
@@ -586,7 +586,7 @@ static int parse_videoinfoheader2(AVFormatContext *s, 
AVStream *st)
 AVIOContext *pb = wtv->pb;
 
 avio_skip(pb, 72);  // picture aspect ratio is unreliable
-ff_get_bmp_header(pb, st);
+ff_get_bmp_header(pb, st, NULL);
 
 return 72 + 40;
 }

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] checkasm: add HEVC test for testing IDCT DC

2017-02-02 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | 
Thu Jul 21 16:32:50 2016 +0200| [9064777dbb335ab4809ae09e3fdcc0245f925cdc] | 
committer: Anton Khirnov

checkasm: add HEVC test for testing IDCT DC

Signed-off-by: Anton Khirnov 

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

 tests/checkasm/Makefile|  2 +-
 tests/checkasm/checkasm.c  |  1 +
 tests/checkasm/checkasm.h  |  1 +
 tests/checkasm/hevc_idct.c | 73 ++
 4 files changed, 76 insertions(+), 1 deletion(-)

diff --git a/tests/checkasm/Makefile b/tests/checkasm/Makefile
index 7c1d0ec..d339b75 100644
--- a/tests/checkasm/Makefile
+++ b/tests/checkasm/Makefile
@@ -9,7 +9,7 @@ AVCODECOBJS-$(CONFIG_VP8DSP)+= vp8dsp.o
 
 # decoders/encoders
 AVCODECOBJS-$(CONFIG_DCA_DECODER)   += dcadsp.o synth_filter.o
-AVCODECOBJS-$(CONFIG_HEVC_DECODER)  += hevc_mc.o
+AVCODECOBJS-$(CONFIG_HEVC_DECODER)  += hevc_mc.o hevc_idct.o
 AVCODECOBJS-$(CONFIG_V210_ENCODER)  += v210enc.o
 
 CHECKASMOBJS-$(CONFIG_AVCODEC)  += $(AVCODECOBJS-yes)
diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c
index 739da61..b062197 100644
--- a/tests/checkasm/checkasm.c
+++ b/tests/checkasm/checkasm.c
@@ -85,6 +85,7 @@ static const struct {
 #endif
 #if CONFIG_HEVC_DECODER
 { "hevc_mc", checkasm_check_hevc_mc },
+{ "hevc_idct", checkasm_check_hevc_idct },
 #endif
 #if CONFIG_V210_ENCODER
 { "v210enc", checkasm_check_v210enc },
diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h
index 7f15b9c..73109c3 100644
--- a/tests/checkasm/checkasm.h
+++ b/tests/checkasm/checkasm.h
@@ -37,6 +37,7 @@ void checkasm_check_fmtconvert(void);
 void checkasm_check_h264dsp(void);
 void checkasm_check_h264pred(void);
 void checkasm_check_h264qpel(void);
+void checkasm_check_hevc_idct(void);
 void checkasm_check_hevc_mc(void);
 void checkasm_check_synth_filter(void);
 void checkasm_check_v210enc(void);
diff --git a/tests/checkasm/hevc_idct.c b/tests/checkasm/hevc_idct.c
new file mode 100644
index 000..84760b9
--- /dev/null
+++ b/tests/checkasm/hevc_idct.c
@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) 2016 Alexandra Hájková
+ *
+ * This file is part of Libav.
+ *
+ * Libav is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Libav is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with Libav; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include 
+
+#include "libavutil/intreadwrite.h"
+
+#include "libavcodec/hevcdsp.h"
+
+#include "checkasm.h"
+
+#define randomize_buffers(buf, size)\
+do {\
+int j;  \
+for (j = 0; j < size; j++) {\
+int16_t r = rnd();  \
+AV_WN16A(buf + j, r);   \
+}   \
+} while (0)
+
+static void check_idct_dc(HEVCDSPContext h, int bit_depth)
+{
+int i;
+LOCAL_ALIGNED(32, int16_t, coeffs0, [32 * 32]);
+LOCAL_ALIGNED(32, int16_t, coeffs1, [32 * 32]);
+
+for (i = 2; i <= 5; i++) {
+int block_size = 1 << i;
+int size = block_size * block_size;
+declare_func_emms(AV_CPU_FLAG_MMXEXT, void, int16_t *coeffs);
+
+randomize_buffers(coeffs0, size);
+memcpy(coeffs1, coeffs0, sizeof(*coeffs0) * size);
+
+if (check_func(h.idct_dc[i - 2], "idct_%dx%d_dc_%d", block_size, 
block_size, bit_depth)) {
+call_ref(coeffs0);
+call_new(coeffs1);
+if (memcmp(coeffs0, coeffs1, sizeof(*coeffs0) * size))
+fail();
+bench_new(coeffs1);
+}
+}
+}
+
+void checkasm_check_hevc_idct(void)
+{
+int bit_depth;
+
+for (bit_depth = 8; bit_depth <= 10; bit_depth++) {
+HEVCDSPContext h;
+
+ff_hevc_dsp_init(&h, bit_depth);
+check_idct_dc(h, bit_depth);
+}
+report("idct_dc");
+}

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] x86util: Document SBUTTERFLY macro

2017-03-20 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | 
Sat Sep 10 20:41:43 2016 +0200| [07e1f99a1bb41d1a615676140eefc85cf69fa793] | 
committer: Luca Barbato

x86util: Document SBUTTERFLY macro

Signed-off-by: Luca Barbato 

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

 libavutil/x86/x86util.asm | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/libavutil/x86/x86util.asm b/libavutil/x86/x86util.asm
index 16a9bae..bba958e 100644
--- a/libavutil/x86/x86util.asm
+++ b/libavutil/x86/x86util.asm
@@ -29,6 +29,16 @@
 
 %include "libavutil/x86/x86inc.asm"
 
+; Interleave low src0 with low src1 and store in src0,
+; interleave high src0 with high src1 and store in src1.
+; %1 - types
+; %2 - index of the register with src0
+; %3 - index of the register with src1
+; %4 - index of the register for intermediate results
+; example for %1 - wd: input: src0: x0 x1 x2 x3 z0 z1 z2 z3
+; src1: y0 y1 y2 y3 q0 q1 q2 q3
+; output: src0: x0 y0 x1 y1 x2 y2 x3 y3
+; src1: z0 q0 z1 q1 z2 q2 z3 q3
 %macro SBUTTERFLY 4
 %if avx_enabled == 0
 mova  m%4, m%2

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] checkasm: Add test for huffyuvdsp add_bytes

2017-03-22 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | 
Sun Oct  2 15:20:13 2016 +0200| [22c3ab18646924ce24dc6017a9e882ff69689e40] | 
committer: Luca Barbato

checkasm: Add test for huffyuvdsp add_bytes

Signed-off-by: Luca Barbato 

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

 tests/checkasm/Makefile |  1 +
 tests/checkasm/checkasm.c   |  3 ++
 tests/checkasm/checkasm.h   |  1 +
 tests/checkasm/huffyuvdsp.c | 76 +
 4 files changed, 81 insertions(+)

diff --git a/tests/checkasm/Makefile b/tests/checkasm/Makefile
index f66c8b9..9b3df55 100644
--- a/tests/checkasm/Makefile
+++ b/tests/checkasm/Makefile
@@ -4,6 +4,7 @@ AVCODECOBJS-$(CONFIG_AUDIODSP)  += audiodsp.o
 AVCODECOBJS-$(CONFIG_BLOCKDSP)  += blockdsp.o
 AVCODECOBJS-$(CONFIG_BSWAPDSP)  += bswapdsp.o
 AVCODECOBJS-$(CONFIG_FMTCONVERT)+= fmtconvert.o
+AVCODECOBJS-$(CONFIG_HUFFYUVDSP)+= huffyuvdsp.o
 AVCODECOBJS-$(CONFIG_H264DSP)   += h264dsp.o
 AVCODECOBJS-$(CONFIG_H264PRED)  += h264pred.o
 AVCODECOBJS-$(CONFIG_H264QPEL)  += h264qpel.o
diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c
index c279ed1..040c4eb 100644
--- a/tests/checkasm/checkasm.c
+++ b/tests/checkasm/checkasm.c
@@ -93,6 +93,9 @@ static const struct {
 { "hevc_mc", checkasm_check_hevc_mc },
 { "hevc_idct", checkasm_check_hevc_idct },
 #endif
+#if CONFIG_HUFFYUVDSP
+{ "huffyuvdsp", checkasm_check_huffyuvdsp },
+#endif
 #if CONFIG_V210_ENCODER
 { "v210enc", checkasm_check_v210enc },
 #endif
diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h
index 169aa2a..5a4c056 100644
--- a/tests/checkasm/checkasm.h
+++ b/tests/checkasm/checkasm.h
@@ -41,6 +41,7 @@ void checkasm_check_h264pred(void);
 void checkasm_check_h264qpel(void);
 void checkasm_check_hevc_idct(void);
 void checkasm_check_hevc_mc(void);
+void checkasm_check_huffyuvdsp(void);
 void checkasm_check_synth_filter(void);
 void checkasm_check_v210enc(void);
 void checkasm_check_vp8dsp(void);
diff --git a/tests/checkasm/huffyuvdsp.c b/tests/checkasm/huffyuvdsp.c
new file mode 100644
index 000..59e0f6a
--- /dev/null
+++ b/tests/checkasm/huffyuvdsp.c
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2016 Alexandra Hájková
+ *
+ * This file is part of Libav.
+ *
+ * Libav is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Libav is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with Libav; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include 
+
+#include "libavutil/common.h"
+#include "libavutil/intreadwrite.h"
+#include "libavutil/mem.h"
+
+#include "libavcodec/huffyuvdsp.h"
+
+#include "checkasm.h"
+
+#define randomize_buffers(buf, size) \
+do { \
+int j;   \
+for (j = 0; j < size; j++)   \
+buf[j] = rnd() & 0xFF;   \
+} while (0)
+
+static void check_add_bytes(HuffYUVDSPContext c, int width)
+{
+uint8_t *src0 = av_mallocz(width);
+uint8_t *src1 = av_mallocz(width);
+uint8_t *dst0 = av_mallocz(width);
+uint8_t *dst1 = av_mallocz(width);
+declare_func_emms(AV_CPU_FLAG_MMX, void, uint8_t *dst, uint8_t *src, int 
w);
+
+if (!src0 || !src1 || !dst0 || !dst1)
+fail();
+
+randomize_buffers(src0, width);
+memcpy(src1, src0, width);
+
+if (check_func(c.add_bytes, "add_bytes")) {
+call_ref(dst0, src0, width);
+call_new(dst1, src1, width);
+if (memcmp(dst0, dst1, width))
+fail();
+bench_new(dst1, src1, width);
+}
+
+av_free(src0);
+av_free(src1);
+av_free(dst0);
+av_free(dst1);
+}
+
+void checkasm_check_huffyuvdsp(void)
+{
+HuffYUVDSPContext c;
+int width = 16 * av_clip(rnd(), 16, 128);
+
+ff_huffyuvdsp_init(&c);
+
+check_add_bytes(c, width);
+
+report("add_bytes");
+}

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] checkasm: add a test for HEVC IDCT

2017-03-23 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | 
Sun Sep 18 19:35:26 2016 +0200| [e3f941cb03b139b866a0ad6dc95fbe1b247d54af] | 
committer: Anton Khirnov

checkasm: add a test for HEVC IDCT

Signed-off-by: Anton Khirnov 

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

 tests/checkasm/hevc_idct.c | 34 +-
 1 file changed, 33 insertions(+), 1 deletion(-)

diff --git a/tests/checkasm/hevc_idct.c b/tests/checkasm/hevc_idct.c
index 84760b9..dd4dc0d 100644
--- a/tests/checkasm/hevc_idct.c
+++ b/tests/checkasm/hevc_idct.c
@@ -35,6 +35,30 @@
 }   \
 } while (0)
 
+static void check_idct(HEVCDSPContext h, int bit_depth)
+{
+int i;
+LOCAL_ALIGNED(32, int16_t, coeffs0, [32 * 32]);
+LOCAL_ALIGNED(32, int16_t, coeffs1, [32 * 32]);
+
+for (i = 2; i <= 5; i++) {
+int block_size = 1 << i;
+int size = block_size * block_size;
+int col_limit = block_size;
+declare_func(void, int16_t *coeffs, int col_limit);
+
+randomize_buffers(coeffs0, size);
+memcpy(coeffs1, coeffs0, sizeof(*coeffs0) * size);
+if (check_func(h.idct[i - 2], "hevc_idct_%dx%d_%d", block_size, 
block_size, bit_depth)) {
+call_ref(coeffs0, col_limit);
+call_new(coeffs1, col_limit);
+if (memcmp(coeffs0, coeffs1, sizeof(*coeffs0) * size))
+fail();
+bench_new(coeffs1, col_limit);
+}
+}
+}
+
 static void check_idct_dc(HEVCDSPContext h, int bit_depth)
 {
 int i;
@@ -49,7 +73,7 @@ static void check_idct_dc(HEVCDSPContext h, int bit_depth)
 randomize_buffers(coeffs0, size);
 memcpy(coeffs1, coeffs0, sizeof(*coeffs0) * size);
 
-if (check_func(h.idct_dc[i - 2], "idct_%dx%d_dc_%d", block_size, 
block_size, bit_depth)) {
+if (check_func(h.idct_dc[i - 2], "hevc_idct_%dx%d_dc_%d", block_size, 
block_size, bit_depth)) {
 call_ref(coeffs0);
 call_new(coeffs1);
 if (memcmp(coeffs0, coeffs1, sizeof(*coeffs0) * size))
@@ -70,4 +94,12 @@ void checkasm_check_hevc_idct(void)
 check_idct_dc(h, bit_depth);
 }
 report("idct_dc");
+
+for (bit_depth = 8; bit_depth <= 10; bit_depth++) {
+HEVCDSPContext h;
+
+ff_hevc_dsp_init(&h, bit_depth);
+check_idct(h, bit_depth);
+}
+report("idct");
 }

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] hevc: Add SSE2 and AVX IDCT

2017-03-23 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | 
Mon Oct 10 22:23:01 2016 +0200| [112cee0241f5799edff0e4682b9e8639b046dc78] | 
committer: Anton Khirnov

hevc: Add SSE2 and AVX IDCT

Signed-off-by: Anton Khirnov 

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

 libavcodec/x86/hevc_idct.asm  | 787 --
 libavcodec/x86/hevcdsp_init.c |  54 ++-
 2 files changed, 811 insertions(+), 30 deletions(-)

diff --git a/libavcodec/x86/hevc_idct.asm b/libavcodec/x86/hevc_idct.asm
index d662aa9..f397cc1 100644
--- a/libavcodec/x86/hevc_idct.asm
+++ b/libavcodec/x86/hevc_idct.asm
@@ -2,6 +2,7 @@
 ;* SIMD-optimized IDCT functions for HEVC decoding
 ;* Copyright (c) 2014 Pierre-Edouard LEPERE
 ;* Copyright (c) 2014 James Almer
+;* Copyright (c) 2016 Alexandra Hájková
 ;*
 ;* This file is part of Libav.
 ;*
@@ -22,6 +23,217 @@
 
 %include "libavutil/x86/x86util.asm"
 
+SECTION_RODATA
+
+pd_64: times 4 dd 64
+pd_2048: times 4 dd 2048
+pd_512: times 4 dd 512
+
+; 4x4 transform coeffs
+cextern pw_64
+pw_64_m64: times 4 dw 64, -64
+pw_83_36: times 4 dw 83, 36
+pw_36_m83: times 4 dw 36, -83
+
+; 8x8 transform coeffs
+pw_89_75: times 4 dw 89, 75
+pw_50_18: times 4 dw 50, 18
+
+pw_75_m18: times 4 dw 75, -18
+pw_m89_m50: times 4 dw -89, -50
+
+pw_50_m89: times 4 dw 50, -89
+pw_18_75: times 4 dw 18, 75
+
+pw_18_m50: times 4 dw 18, -50
+pw_75_m89: times 4 dw 75, -89
+
+; 16x16 transformation coeffs
+trans_coeffs16: times 4 dw 90, 87
+times 4 dw 80, 70
+times 4 dw 57, 43
+times 4 dw 25, 9
+
+times 4 dw 87, 57
+times 4 dw 9, -43
+times 4 dw -80, -90
+times 4 dw -70, -25
+
+times 4 dw 80, 9
+times 4 dw -70, -87
+times 4 dw -25, 57
+times 4 dw 90, 43
+
+times 4 dw 70, -43
+times 4 dw -87, 9
+times 4 dw 90, 25
+times 4 dw -80, -57
+
+times 4 dw 57, -80
+times 4 dw -25, 90
+times 4 dw -9, -87
+times 4 dw 43, 70
+
+times 4 dw 43, -90
+times 4 dw 57, 25
+times 4 dw -87, 70
+times 4 dw 9, -80
+
+times 4 dw 25, -70
+times 4 dw 90, -80
+times 4 dw 43, 9
+times 4 dw -57, 87
+
+times 4 dw 9, -25
+times 4 dw 43, -57
+times 4 dw 70, -80
+times 4 dw 87, -90
+
+; 32x32 transform coeffs
+trans_coeff32: times 8 dw 90
+times 4 dw 88, 85
+times 4 dw 82, 78
+times 4 dw 73, 67
+times 4 dw 61, 54
+times 4 dw 46, 38
+times 4 dw 31, 22
+times 4 dw 13, 4
+
+times 4 dw 90, 82
+times 4 dw 67, 46
+times 4 dw 22, -4
+times 4 dw -31, -54
+times 4 dw -73, -85
+times 4 dw -90, -88
+times 4 dw -78, -61
+times 4 dw -38, -13
+
+times 4 dw 88, 67
+times 4 dw 31, -13
+times 4 dw -54, -82
+times 4 dw -90, -78
+times 4 dw -46, -4
+times 4 dw 38, 73
+times 4 dw 90, 85
+times 4 dw 61, 22
+
+times 4 dw 85, 46
+times 4 dw -13, -67
+times 4 dw -90, -73
+times 4 dw -22, 38
+times 4 dw 82, 88
+times 4 dw 54, -4
+times 4 dw -61, -90
+times 4 dw -78, -31
+
+times 4 dw 82, 22
+times 4 dw -54, -90
+times 4 dw -61, 13
+times 4 dw 78, 85
+times 4 dw 31, -46
+times 4 dw -90, -67
+times 4 dw 4, 73
+times 4 dw 88, 38
+
+times 4 dw 78, -4
+times 4 dw -82, -73
+times 4 dw 13, 85
+times 4 dw 67, -22
+times 4 dw -88, -61
+times 4 dw 31, 90
+times 4 dw 54, -38
+times 4 dw -90, -46
+
+times 4 dw 73, -31
+times 4 dw -90, -22
+times 4 dw 78, 67
+times 4 dw -38, -90
+times 4 dw -13, 82
+times 4 dw 61, -46
+times 4 dw -88, -4
+times 4 dw 85, 54
+
+times 4 dw 67, -54
+times 4 dw -78, 38
+times 4 dw 85, -22
+times 4 dw -90, 4
+times 4 dw 90, 13
+times 4 dw -88, -31
+times 4 dw 82, 46
+times 4 dw -73, -61
+
+times 4 dw 61, -73
+times 4 dw -46, 82
+times 4 dw 31, -88
+times 4 dw -13, 90
+times 4 dw -4, -90
+times 4 dw 22, 85
+times 4 dw -38, -78
+times 4 dw 54, 67
+
+times 4 dw 54, -85
+times 4 dw -4, 88
+times 4 dw -46, -61
+times 4 dw 82, 13
+times 4 dw -90, 38
+times 4 dw 67, -78
+times 4 dw -22, 90
+times 4 dw -31, -73
+
+times 4 dw 46, -90
+times 4 dw 38, 54
+times 4 dw -90, 31
+times 4 dw 61, -88
+times 4 dw 22, 67
+times 4 dw -85, 13
+times 4 dw 73, -82
+times 4 dw 4, 78
+
+times 4 dw 38, -88
+times 4 dw 73, -4
+times 4 dw -67, 90
+times 4 dw -46, -31
+times 4 dw 85, -78
+times 4 dw 13, 61
+times 4 dw -90, 54
+times 4 dw 22, -82
+
+times 4 dw 31, -78
+times 4 dw 90, -61
+times 4 dw 4, 54
+times 4 dw -88, 82
+times 4 dw -38, -22
+times 4 dw 73, -90
+times 4 dw 67, -13
+times 4 dw -46, 85
+
+times 4 dw 22, -61
+times 4 dw 85, -90
+times 4 dw 73, -38
+times 4 dw -4, 46
+times 4 dw -78, 90
+times 4 dw -82, 54
+times 4 dw -13, -31
+times 4 dw 67, -88
+
+times 4 dw 13, -38
+times 4 dw 61, -78
+times 4 dw 88, -90
+times 4 dw 85, -73
+times 4 dw 54, -31
+times 4 dw 4, 22
+times 4 dw -46, 67
+times 4 dw -82, 90
+
+times 4 dw 4, -13
+times 4 dw 22, -31
+times 4 dw 38, -46
+times 4 dw 54, -61
+times 4 dw 67, -73
+times 4 dw 78, -82
+times 4 dw 85, -88
+times 4 dw 90, -90
+
 section .text
 
 ; void ff_hevc_idctHxW_dc_{8,10}_(int16_t *coeffs)
@@ -74,34 +286,565 @@ cglobal hevc_idct_%1x%1_dc_%2, 1, 2, 1, coeff, tmp
 RET
 %endmacro
 
-; 8-bit
-INIT_MMX mmxext
-IDCT_DC_NL  4,  8
-IDCT_DC 8,  

[FFmpeg-cvslog] checkasm: Add a test for HEVC add_residual

2017-03-24 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Tue Oct 
11 10:44:19 2016 +0200| [ed48a9d8143d2575a4458589cebde69ec326afd8] | committer: 
Diego Biurrun

checkasm: Add a test for HEVC add_residual

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

 tests/checkasm/Makefile   |  2 +-
 tests/checkasm/checkasm.c |  3 +-
 tests/checkasm/checkasm.h |  1 +
 tests/checkasm/hevc_add_res.c | 85 +++
 4 files changed, 89 insertions(+), 2 deletions(-)

diff --git a/tests/checkasm/Makefile b/tests/checkasm/Makefile
index 22cf3db..dbd7393 100644
--- a/tests/checkasm/Makefile
+++ b/tests/checkasm/Makefile
@@ -12,7 +12,7 @@ AVCODECOBJS-$(CONFIG_VP8DSP)+= vp8dsp.o
 
 # decoders/encoders
 AVCODECOBJS-$(CONFIG_DCA_DECODER)   += dcadsp.o synth_filter.o
-AVCODECOBJS-$(CONFIG_HEVC_DECODER)  += hevc_mc.o hevc_idct.o
+AVCODECOBJS-$(CONFIG_HEVC_DECODER)  += hevc_add_res.o hevc_idct.o hevc_mc.o
 AVCODECOBJS-$(CONFIG_V210_ENCODER)  += v210enc.o
 AVCODECOBJS-$(CONFIG_VP9_DECODER)   += vp9dsp.o
 
diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c
index 040c4eb..5f0d8fd 100644
--- a/tests/checkasm/checkasm.c
+++ b/tests/checkasm/checkasm.c
@@ -90,8 +90,9 @@ static const struct {
 { "h264qpel", checkasm_check_h264qpel },
 #endif
 #if CONFIG_HEVC_DECODER
-{ "hevc_mc", checkasm_check_hevc_mc },
+{ "hevc_add_res", checkasm_check_hevc_add_res },
 { "hevc_idct", checkasm_check_hevc_idct },
+{ "hevc_mc", checkasm_check_hevc_mc },
 #endif
 #if CONFIG_HUFFYUVDSP
 { "huffyuvdsp", checkasm_check_huffyuvdsp },
diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h
index 75aa457..462c908 100644
--- a/tests/checkasm/checkasm.h
+++ b/tests/checkasm/checkasm.h
@@ -39,6 +39,7 @@ void checkasm_check_fmtconvert(void);
 void checkasm_check_h264dsp(void);
 void checkasm_check_h264pred(void);
 void checkasm_check_h264qpel(void);
+void checkasm_check_hevc_add_res(void);
 void checkasm_check_hevc_idct(void);
 void checkasm_check_hevc_mc(void);
 void checkasm_check_huffyuvdsp(void);
diff --git a/tests/checkasm/hevc_add_res.c b/tests/checkasm/hevc_add_res.c
new file mode 100644
index 000..2cd97ea
--- /dev/null
+++ b/tests/checkasm/hevc_add_res.c
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2016 Alexandra Hájková
+ *
+ * This file is part of Libav.
+ *
+ * Libav is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Libav is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with Libav; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include 
+
+#include "libavutil/intreadwrite.h"
+
+#include "libavcodec/hevcdsp.h"
+
+#include "checkasm.h"
+
+#define randomize_buffers(buf, size)\
+do {\
+int j;  \
+for (j = 0; j < size; j++) {\
+int16_t r = rnd();  \
+AV_WN16A(buf + j, r >> 3);  \
+}   \
+} while (0)
+
+#define randomize_buffers2(buf, size) \
+do {  \
+int j;\
+for (j = 0; j < size; j++)\
+AV_WN16A(buf + j * 2, rnd() & 0x3FF); \
+} while (0)
+
+static void check_add_res(HEVCDSPContext h, int bit_depth)
+{
+int i;
+LOCAL_ALIGNED(32, int16_t, res0, [32 * 32]);
+LOCAL_ALIGNED(32, int16_t, res1, [32 * 32]);
+LOCAL_ALIGNED(32, uint8_t, dst0, [32 * 32 * 2]);
+LOCAL_ALIGNED(32, uint8_t, dst1, [32 * 32 * 2]);
+
+for (i = 2; i <= 5; i++) {
+int block_size = 1 << i;
+int size = block_size * block_size;
+ptrdiff_t stride = block_size << (bit_depth > 8);
+declare_func_emms(AV_CPU_FLAG_MMX, void, uint8_t *dst, int16_t *res, 
ptrdiff_t stride);
+
+randomize_buffers(res0, size);
+randomize_buffers2(dst0, size);
+memcpy(res1, res0, sizeof(*res0) * size);
+memcpy(dst1, dst0, size);
+
+if (check_func(h.add_residual[i - 2], "add_res_%dx%d_%d", block_size, 
block_size, bit_depth)) {
+call_ref(dst0, res0, stride);
+call_new(dst1, res1, stride);
+if (memcmp(dst0, d

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Feb  
6 21:41:31 2016 +0100| [d182d8a6d3203f7fbab11179e88f26b8befe899e] | committer: 
Anton Khirnov

cllc: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/cllc.c | 88 +++
 1 file changed, 36 insertions(+), 52 deletions(-)

diff --git a/libavcodec/cllc.c b/libavcodec/cllc.c
index cdbed74..bac2b73 100644
--- a/libavcodec/cllc.c
+++ b/libavcodec/cllc.c
@@ -23,11 +23,13 @@
 #include 
 
 #include "libavutil/intreadwrite.h"
+
+#include "bitstream.h"
 #include "bswapdsp.h"
 #include "canopus.h"
-#include "get_bits.h"
 #include "avcodec.h"
 #include "internal.h"
+#include "vlc.h"
 
 typedef struct CLLCContext {
 AVCodecContext *avctx;
@@ -37,7 +39,7 @@ typedef struct CLLCContext {
 int  swapped_buf_size;
 } CLLCContext;
 
-static int read_code_table(CLLCContext *ctx, GetBitContext *gb, VLC *vlc)
+static int read_code_table(CLLCContext *ctx, BitstreamContext *bc, VLC *vlc)
 {
 uint8_t symbols[256];
 uint8_t bits[256];
@@ -49,10 +51,10 @@ static int read_code_table(CLLCContext *ctx, GetBitContext 
*gb, VLC *vlc)
 count = 0;
 num_codes_sum = 0;
 
-num_lens = get_bits(gb, 5);
+num_lens = bitstream_read(bc, 5);
 
 for (i = 0; i < num_lens; i++) {
-num_codes  = get_bits(gb, 9);
+num_codes  = bitstream_read(bc, 9);
 num_codes_sum += num_codes;
 
 if (num_codes_sum > 256) {
@@ -64,7 +66,7 @@ static int read_code_table(CLLCContext *ctx, GetBitContext 
*gb, VLC *vlc)
 }
 
 for (j = 0; j < num_codes; j++) {
-symbols[count] = get_bits(gb, 8);
+symbols[count] = bitstream_read(bc, 8);
 bits[count]= i + 1;
 codes[count]   = prefix++;
 
@@ -82,7 +84,7 @@ static int read_code_table(CLLCContext *ctx, GetBitContext 
*gb, VLC *vlc)
  * Unlike the RGB24 read/restore, which reads in a component at a time,
  * ARGB read/restore reads in ARGB quads.
  */
-static int read_argb_line(CLLCContext *ctx, GetBitContext *gb, int *top_left,
+static int read_argb_line(CLLCContext *ctx, BitstreamContext *bc, int 
*top_left,
   VLC *vlc, uint8_t *outbuf)
 {
 uint8_t *dst;
@@ -90,8 +92,6 @@ static int read_argb_line(CLLCContext *ctx, GetBitContext 
*gb, int *top_left,
 int code;
 int i;
 
-OPEN_READER(bits, gb);
-
 dst = outbuf;
 pred[0] = top_left[0];
 pred[1] = top_left[1];
@@ -100,8 +100,7 @@ static int read_argb_line(CLLCContext *ctx, GetBitContext 
*gb, int *top_left,
 
 for (i = 0; i < ctx->avctx->width; i++) {
 /* Always get the alpha component */
-UPDATE_CACHE(bits, gb);
-GET_VLC(code, bits, gb, vlc[0].table, 7, 2);
+code = bitstream_read_vlc(bc, vlc[0].table, 7, 2);
 
 pred[0] += code;
 dst[0]   = pred[0];
@@ -109,22 +108,19 @@ static int read_argb_line(CLLCContext *ctx, GetBitContext 
*gb, int *top_left,
 /* Skip the components if they are  entirely transparent */
 if (dst[0]) {
 /* Red */
-UPDATE_CACHE(bits, gb);
-GET_VLC(code, bits, gb, vlc[1].table, 7, 2);
+code = bitstream_read_vlc(bc, vlc[1].table, 7, 2);
 
 pred[1] += code;
 dst[1]   = pred[1];
 
 /* Green */
-UPDATE_CACHE(bits, gb);
-GET_VLC(code, bits, gb, vlc[2].table, 7, 2);
+code = bitstream_read_vlc(bc, vlc[2].table, 7, 2);
 
 pred[2] += code;
 dst[2]   = pred[2];
 
 /* Blue */
-UPDATE_CACHE(bits, gb);
-GET_VLC(code, bits, gb, vlc[3].table, 7, 2);
+code = bitstream_read_vlc(bc, vlc[3].table, 7, 2);
 
 pred[3] += code;
 dst[3]   = pred[3];
@@ -137,8 +133,6 @@ static int read_argb_line(CLLCContext *ctx, GetBitContext 
*gb, int *top_left,
 dst += 4;
 }
 
-CLOSE_READER(bits, gb);
-
 top_left[0]  = outbuf[0];
 
 /* Only stash components if they are not transparent */
@@ -151,65 +145,55 @@ static int read_argb_line(CLLCContext *ctx, GetBitContext 
*gb, int *top_left,
 return 0;
 }
 
-static int read_rgb24_component_line(CLLCContext *ctx, GetBitContext *gb,
+static int read_rgb24_component_line(CLLCContext *ctx, BitstreamContext *bc,
  int *top_left, VLC *vlc, uint8_t *outbuf)
 {
 uint8_t *dst;
 int pred, code;
 int i;
 
-OPEN_READER(bits, gb);
-
 dst  = outbuf;
 pred = *top_left;
 
 /* Simultaneously read and restore the line */
 for (i = 0; i < ctx->avctx->width; i++) {
-UPDATE_CACHE(bits, gb);
-GET_VLC(code, bits, gb, vlc->table, 

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr  
9 16:11:42 2016 +0200| [0977a7c2f6302508e5180f0f82139c8c8cf4a131] | committer: 
Anton Khirnov

binkaudio: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/binkaudio.c | 59 +-
 1 file changed, 30 insertions(+), 29 deletions(-)

diff --git a/libavcodec/binkaudio.c b/libavcodec/binkaudio.c
index 2638eb2..cf61135 100644
--- a/libavcodec/binkaudio.c
+++ b/libavcodec/binkaudio.c
@@ -33,8 +33,8 @@
 
 #define BITSTREAM_READER_LE
 #include "avcodec.h"
+#include "bitstream.h"
 #include "dct.h"
-#include "get_bits.h"
 #include "internal.h"
 #include "rdft.h"
 #include "wma_freqs.h"
@@ -45,7 +45,7 @@ static float quant_table[96];
 #define BINK_BLOCK_MAX_SIZE (MAX_CHANNELS << 11)
 
 typedef struct BinkAudioContext {
-GetBitContext gb;
+BitstreamContext bc;
 int version_b;  ///< Bink version 'b'
 int first;
 int channels;
@@ -143,11 +143,11 @@ static av_cold int decode_init(AVCodecContext *avctx)
 return 0;
 }
 
-static float get_float(GetBitContext *gb)
+static float get_float(BitstreamContext *bc)
 {
-int power = get_bits(gb, 5);
-float f = ldexpf(get_bits_long(gb, 23), power - 23);
-if (get_bits1(gb))
+int power = bitstream_read(bc, 5);
+float f = ldexpf(bitstream_read(bc, 23), power - 23);
+if (bitstream_read_bit(bc))
 f = -f;
 return f;
 }
@@ -166,30 +166,30 @@ static int decode_block(BinkAudioContext *s, float **out, 
int use_dct)
 int ch, i, j, k;
 float q, quant[25];
 int width, coeff;
-GetBitContext *gb = &s->gb;
+BitstreamContext *bc = &s->bc;
 
 if (use_dct)
-skip_bits(gb, 2);
+bitstream_skip(bc, 2);
 
 for (ch = 0; ch < s->channels; ch++) {
 FFTSample *coeffs = out[ch];
 
 if (s->version_b) {
-if (get_bits_left(gb) < 64)
+if (bitstream_bits_left(bc) < 64)
 return AVERROR_INVALIDDATA;
-coeffs[0] = av_int2float(get_bits_long(gb, 32)) * s->root;
-coeffs[1] = av_int2float(get_bits_long(gb, 32)) * s->root;
+coeffs[0] = av_int2float(bitstream_read(bc, 32)) * s->root;
+coeffs[1] = av_int2float(bitstream_read(bc, 32)) * s->root;
 } else {
-if (get_bits_left(gb) < 58)
+if (bitstream_bits_left(bc) < 58)
 return AVERROR_INVALIDDATA;
-coeffs[0] = get_float(gb) * s->root;
-coeffs[1] = get_float(gb) * s->root;
+coeffs[0] = get_float(bc) * s->root;
+coeffs[1] = get_float(bc) * s->root;
 }
 
-if (get_bits_left(gb) < s->num_bands * 8)
+if (bitstream_bits_left(bc) < s->num_bands * 8)
 return AVERROR_INVALIDDATA;
 for (i = 0; i < s->num_bands; i++) {
-int value = get_bits(gb, 8);
+int value = bitstream_read(bc, 8);
 quant[i]  = quant_table[FFMIN(value, 95)];
 }
 
@@ -202,9 +202,9 @@ static int decode_block(BinkAudioContext *s, float **out, 
int use_dct)
 if (s->version_b) {
 j = i + 16;
 } else {
-int v = get_bits1(gb);
+int v = bitstream_read_bit(bc);
 if (v) {
-v = get_bits(gb, 4);
+v = bitstream_read(bc, 4);
 j = i + rle_length_tab[v] * 8;
 } else {
 j = i + 8;
@@ -213,7 +213,7 @@ static int decode_block(BinkAudioContext *s, float **out, 
int use_dct)
 
 j = FFMIN(j, s->frame_len);
 
-width = get_bits(gb, 4);
+width = bitstream_read(bc, 4);
 if (width == 0) {
 memset(coeffs + i, 0, (j - i) * sizeof(*coeffs));
 i = j;
@@ -223,10 +223,10 @@ static int decode_block(BinkAudioContext *s, float **out, 
int use_dct)
 while (i < j) {
 if (s->bands[k] == i)
 q = quant[k++];
-coeff = get_bits(gb, width);
+coeff = bitstream_read(bc, width);
 if (coeff) {
 int v;
-v = get_bits1(gb);
+v = bitstream_read_bit(bc);
 if (v)
 coeffs[i] = -q * coeff;
 else
@@ -278,10 +278,11 @@ static av_cold int decode_end(AVCodecContext *avctx)
 return 0;
 }
 
-static void get_bits_align32(GetBitContext *s)
+static void get_bits_align32(BitstreamContext *s)
 {
-int n = (-get_bits_count(s)) & 31;
-if (n) skip_bit

[FFmpeg-cvslog] lavc: add a new bitstream reader to replace get_bits

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Fri Apr 
22 09:43:52 2016 +0200| [dd3d7ddf2a508b15877bb978c2309f777853a228] | committer: 
Anton Khirnov

lavc: add a new bitstream reader to replace get_bits

The new bit reader features a simpler API and an implementation without
stacks of nested macros.

Signed-off-by: Anton Khirnov 

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

 libavcodec/bitstream.h | 387 +
 1 file changed, 387 insertions(+)

diff --git a/libavcodec/bitstream.h b/libavcodec/bitstream.h
new file mode 100644
index 000..996e32e
--- /dev/null
+++ b/libavcodec/bitstream.h
@@ -0,0 +1,387 @@
+/*
+ * Copyright (c) 2016 Alexandra Hájková
+ *
+ * This file is part of Libav.
+ *
+ * Libav is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * Libav is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with Libav; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/**
+ * @file
+ * functions for reading bits from a buffer
+ */
+
+#ifndef AVCODEC_BITSTREAM_H
+#define AVCODEC_BITSTREAM_H
+
+#include 
+
+#include "libavutil/common.h"
+#include "libavutil/intreadwrite.h"
+#include "libavutil/log.h"
+
+#include "mathops.h"
+#include "vlc.h"
+
+typedef struct BitstreamContext {
+uint64_t bits;  // stores bits read from the buffer
+const uint8_t *buffer, *buffer_end;
+const uint8_t *ptr; // position inside a buffer
+unsigned bits_left; // number of bits left in bits field
+unsigned size_in_bits;
+} BitstreamContext;
+
+static inline void refill_64(BitstreamContext *bc)
+{
+if (bc->ptr >= bc->buffer_end)
+return;
+
+#ifdef BITSTREAM_READER_LE
+bc->bits   = AV_RL64(bc->ptr);
+#else
+bc->bits   = AV_RB64(bc->ptr);
+#endif
+bc->ptr   += 8;
+bc->bits_left  = 64;
+}
+
+static inline void refill_32(BitstreamContext *bc)
+{
+if (bc->ptr >= bc->buffer_end)
+return;
+
+#ifdef BITSTREAM_READER_LE
+bc->bits   = (uint64_t)AV_RL32(bc->ptr) << bc->bits_left | bc->bits;
+#else
+bc->bits   = bc->bits | (uint64_t)AV_RB32(bc->ptr) << (32 - 
bc->bits_left);
+#endif
+bc->ptr   += 4;
+bc->bits_left += 32;
+}
+
+/* Initialize BitstreamContext. Input buffer must have an additional zero
+ * padding of AV_INPUT_BUFFER_PADDING_SIZE bytes at the end. */
+static inline int bitstream_init(BitstreamContext *bc, const uint8_t *buffer,
+ unsigned bit_size)
+{
+unsigned buffer_size;
+
+if (bit_size > INT_MAX - 7 || !buffer) {
+buffer=
+bc->buffer=
+bc->ptr   = NULL;
+bc->bits_left = 0;
+return AVERROR_INVALIDDATA;
+}
+
+buffer_size = (bit_size + 7) >> 3;
+
+bc->buffer   = buffer;
+bc->buffer_end   = buffer + buffer_size;
+bc->ptr  = bc->buffer;
+bc->size_in_bits = bit_size;
+bc->bits_left= 0;
+bc->bits = 0;
+
+refill_64(bc);
+
+return 0;
+}
+
+/* Initialize BitstreamContext with buffer size in bytes instead of bits. */
+static inline int bitstream_init8(BitstreamContext *bc, const uint8_t *buffer,
+  unsigned byte_size)
+{
+if (byte_size > INT_MAX / 8)
+return AVERROR_INVALIDDATA;
+return bitstream_init(bc, buffer, byte_size * 8);
+}
+
+/* Return number of bits already read. */
+static inline int bitstream_tell(const BitstreamContext *bc)
+{
+return (bc->ptr - bc->buffer) * 8 - bc->bits_left;
+}
+
+/* Return buffer size in bits. */
+static inline int bitstream_tell_size(const BitstreamContext *bc)
+{
+return bc->size_in_bits;
+}
+
+/* Return the number of the bits left in a buffer. */
+static inline int bitstream_bits_left(const BitstreamContext *bc)
+{
+return (bc->buffer - bc->ptr) * 8 + bc->size_in_bits + bc->bits_left;
+}
+
+static inline uint64_t get_val(BitstreamContext *bc, unsigned n)
+{
+#ifdef BITSTREAM_READER_LE
+uint64_t ret = bc->bits & ((UINT64_C(1) << n) - 1);
+bc->bits >>= n;
+#else
+uint64_t ret = bc->bits >> (64 - n);
+bc->bits <<= n;
+#endif
+bc->bits_left -= n;
+
+return ret;
+}
+
+/* Retur

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr  
9 20:47:04 2016 +0200| [2906d8dcb39751fc16d5585f3751da3174b8e2bc] | committer: 
Anton Khirnov

escape130: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/escape130.c | 46 +++---
 1 file changed, 23 insertions(+), 23 deletions(-)

diff --git a/libavcodec/escape130.c b/libavcodec/escape130.c
index bfc1f3f..544f36d 100644
--- a/libavcodec/escape130.c
+++ b/libavcodec/escape130.c
@@ -24,7 +24,7 @@
 
 #define BITSTREAM_READER_LE
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "internal.h"
 
 typedef struct Escape130Context {
@@ -163,23 +163,23 @@ static av_cold int escape130_decode_close(AVCodecContext 
*avctx)
 return 0;
 }
 
-static int decode_skip_count(GetBitContext* gb)
+static int decode_skip_count(BitstreamContext *bc)
 {
 int value;
 
-value = get_bits1(gb);
+value = bitstream_read_bit(bc);
 if (value)
 return 0;
 
-value = get_bits(gb, 3);
+value = bitstream_read(bc, 3);
 if (value)
 return value;
 
-value = get_bits(gb, 8);
+value = bitstream_read(bc, 8);
 if (value)
 return value + 7;
 
-value = get_bits(gb, 15);
+value = bitstream_read(bc, 15);
 if (value)
 return value + 262;
 
@@ -193,7 +193,7 @@ static int escape130_decode_frame(AVCodecContext *avctx, 
void *data,
 int buf_size= avpkt->size;
 Escape130Context *s = avctx->priv_data;
 AVFrame *pic= data;
-GetBitContext gb;
+BitstreamContext bc;
 int ret;
 
 uint8_t *old_y, *old_cb, *old_cr,
@@ -216,7 +216,7 @@ static int escape130_decode_frame(AVCodecContext *avctx, 
void *data,
 if ((ret = ff_get_buffer(avctx, pic, 0)) < 0)
 return ret;
 
-init_get_bits(&gb, buf + 16, (buf_size - 16) * 8);
+bitstream_init(&bc, buf + 16, (buf_size - 16) * 8);
 
 new_y  = s->new_y;
 new_cb = s->new_u;
@@ -235,7 +235,7 @@ static int escape130_decode_frame(AVCodecContext *avctx, 
void *data,
 // Note that this call will make us skip the rest of the blocks
 // if the frame ends prematurely.
 if (skip == -1)
-skip = decode_skip_count(&gb);
+skip = decode_skip_count(&bc);
 if (skip == -1) {
 av_log(avctx, AV_LOG_ERROR, "Error decoding skip value\n");
 return AVERROR_INVALIDDATA;
@@ -250,31 +250,31 @@ static int escape130_decode_frame(AVCodecContext *avctx, 
void *data,
 cb = old_cb[0];
 cr = old_cr[0];
 } else {
-if (get_bits1(&gb)) {
-unsigned sign_selector   = get_bits(&gb, 6);
-unsigned difference_selector = get_bits(&gb, 2);
-y_avg = 2 * get_bits(&gb, 5);
+if (bitstream_read_bit(&bc)) {
+unsigned sign_selector   = bitstream_read(&bc, 6);
+unsigned difference_selector = bitstream_read(&bc, 2);
+y_avg = 2 * bitstream_read(&bc, 5);
 for (i = 0; i < 4; i++) {
 y[i] = av_clip(y_avg + offset_table[difference_selector] *
sign_table[sign_selector][i], 0, 63);
 }
-} else if (get_bits1(&gb)) {
-if (get_bits1(&gb)) {
-y_avg = get_bits(&gb, 6);
+} else if (bitstream_read_bit(&bc)) {
+if (bitstream_read_bit(&bc)) {
+y_avg = bitstream_read(&bc, 6);
 } else {
-unsigned adjust_index = get_bits(&gb, 3);
+unsigned adjust_index = bitstream_read(&bc, 3);
 y_avg = (y_avg + luma_adjust[adjust_index]) & 63;
 }
 for (i = 0; i < 4; i++)
 y[i] = y_avg;
 }
 
-if (get_bits1(&gb)) {
-if (get_bits1(&gb)) {
-cb = get_bits(&gb, 5);
-cr = get_bits(&gb, 5);
+if (bitstream_read_bit(&bc)) {
+if (bitstream_read_bit(&bc)) {
+cb = bitstream_read(&bc, 5);
+cr = bitstream_read(&bc, 5);
 } else {
-unsigned adjust_index = get_bits(&gb, 3);
+unsigned adjust_index = bitstream_read(&bc, 3);
 cb = (cb + chroma_adjust[0][adjust_index]) & 31;
 cr = (cr + chroma_adjust[1][adjust_index]) & 31;
 }
@@ -333,7 +333,7 @@ static int escape130_decode_frame(AVCodecContext *avctx, 
void *data,
 }
 
 f

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr  
9 19:05:56 2016 +0200| [d8618570beb52001c0e8960777bab6158a60b3f9] | committer: 
Anton Khirnov

dvdsubdec: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/dvdsubdec.c | 34 +-
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/libavcodec/dvdsubdec.c b/libavcodec/dvdsubdec.c
index 86c2873..b02bb6b 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;

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Wed Feb 
17 18:16:06 2016 +0100| [adb1ebb36cdfa787e97eb705a73aa551caed39b9] | committer: 
Anton Khirnov

eamad: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/eamad.c | 42 +++---
 1 file changed, 19 insertions(+), 23 deletions(-)

diff --git a/libavcodec/eamad.c b/libavcodec/eamad.c
index 070cfdb..7509c2d 100644
--- a/libavcodec/eamad.c
+++ b/libavcodec/eamad.c
@@ -29,16 +29,17 @@
  */
 
 #include "avcodec.h"
+#include "bitstream.h"
 #include "blockdsp.h"
 #include "bytestream.h"
 #include "bswapdsp.h"
-#include "get_bits.h"
 #include "aandcttab.h"
 #include "eaidct.h"
 #include "idctdsp.h"
 #include "internal.h"
 #include "mpeg12data.h"
 #include "mpeg12vlc.h"
+#include "vlc.h"
 
 #define EA_PREAMBLE_SIZE8
 #define MADk_TAG MKTAG('M', 'A', 'D', 'k')/* MAD I-frame */
@@ -51,7 +52,7 @@ typedef struct MadContext {
 BswapDSPContext bbdsp;
 IDCTDSPContext idsp;
 AVFrame *last_frame;
-GetBitContext gb;
+BitstreamContext bc;
 void *bitstream_buf;
 unsigned int bitstream_buf_size;
 DECLARE_ALIGNED(16, int16_t, block)[64];
@@ -129,17 +130,15 @@ static inline void decode_block_intra(MadContext *s, 
int16_t * block)
 const uint8_t *scantable = s->scantable.permutated;
 int16_t *quant_matrix = s->quant_matrix;
 
-block[0] = (128 + get_sbits(&s->gb, 8)) * quant_matrix[0];
+block[0] = (128 + bitstream_read_signed(&s->bc, 8)) * quant_matrix[0];
 
 /* The RL decoder is derived from mpeg1_decode_block_intra;
Escaped level and run values a decoded differently */
 i = 0;
 {
-OPEN_READER(re, &s->gb);
 /* now quantify & encode AC coefficients */
 for (;;) {
-UPDATE_CACHE(re, &s->gb);
-GET_RL_VLC(level, run, re, &s->gb, rl->rl_vlc[0], TEX_VLC_BITS, 2, 
0);
+BITSTREAM_RL_VLC(level, run, &s->bc, rl->rl_vlc[0], TEX_VLC_BITS, 
2);
 
 if (level == 127) {
 break;
@@ -153,15 +152,12 @@ static inline void decode_block_intra(MadContext *s, 
int16_t * block)
 j = scantable[i];
 level = (level*quant_matrix[j]) >> 4;
 level = (level-1)|1;
-level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, 
&s->gb, 1);
-LAST_SKIP_BITS(re, &s->gb, 1);
+level = bitstream_apply_sign(&s->bc, level);
 } else {
 /* escape */
-UPDATE_CACHE(re, &s->gb);
-level = SHOW_SBITS(re, &s->gb, 10); SKIP_BITS(re, &s->gb, 10);
+level = bitstream_read_signed(&s->bc, 10);
 
-UPDATE_CACHE(re, &s->gb);
-run = SHOW_UBITS(re, &s->gb, 6)+1; LAST_SKIP_BITS(re, &s->gb, 
6);
+run = bitstream_read(&s->bc, 6) + 1;
 
 i += run;
 if (i > 63) {
@@ -183,17 +179,17 @@ static inline void decode_block_intra(MadContext *s, 
int16_t * block)
 
 block[j] = level;
 }
-CLOSE_READER(re, &s->gb);
 }
 }
 
-static int decode_motion(GetBitContext *gb)
+static int decode_motion(BitstreamContext *bc)
 {
 int value = 0;
-if (get_bits1(gb)) {
-if (get_bits1(gb))
+
+if (bitstream_read_bit(bc)) {
+if (bitstream_read_bit(bc))
 value = -17;
-value += get_bits(gb, 4) + 1;
+value += bitstream_read(bc, 4) + 1;
 }
 return value;
 }
@@ -205,11 +201,11 @@ static void decode_mb(MadContext *s, AVFrame *frame, int 
inter)
 int j;
 
 if (inter) {
-int v = decode210(&s->gb);
+int v = bitstream_decode210(&s->bc);
 if (v < 2) {
-mv_map = v ? get_bits(&s->gb, 6) : 63;
-mv_x = decode_motion(&s->gb);
-mv_y = decode_motion(&s->gb);
+mv_map = v ? bitstream_read(&s->bc, 6) : 63;
+mv_x = decode_motion(&s->bc);
+mv_y = decode_motion(&s->bc);
 } else {
 mv_map = 0;
 }
@@ -217,7 +213,7 @@ static void decode_mb(MadContext *s, AVFrame *frame, int 
inter)
 
 for (j=0; j<6; j++) {
 if (mv_map & (1<gb);
+int add = 2 * decode_motion(&s->bc);
 comp_block(s, frame, s->mb_x, s->mb_y, j, mv_x, mv_y, add);
 } else {
 s->bdsp.clear_block(s->block);
@@ -299,7 +295,7 @@ static int decode_frame(AVCodecContext *avctx,

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr  
9 16:20:13 2016 +0200| [b4c0daa83c0c5e7505703af65de95fb22d6cbe72] | committer: 
Anton Khirnov

cdxl: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/cdxl.c | 19 ++-
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/libavcodec/cdxl.c b/libavcodec/cdxl.c
index 99e96eb..4c0410d 100644
--- a/libavcodec/cdxl.c
+++ b/libavcodec/cdxl.c
@@ -21,8 +21,9 @@
 
 #include "libavutil/intreadwrite.h"
 #include "libavutil/imgutils.h"
+
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "internal.h"
 
 #define BIT_PLANAR   0x00
@@ -69,30 +70,30 @@ static void import_palette(CDXLVideoContext *c, uint32_t 
*new_palette)
 
 static void bitplanar2chunky(CDXLVideoContext *c, int linesize, uint8_t *out)
 {
-GetBitContext gb;
+BitstreamContext bc;
 int x, y, plane;
 
-init_get_bits(&gb, c->video, c->video_size * 8);
+bitstream_init(&bc, c->video, c->video_size * 8);
 for (plane = 0; plane < c->bpp; plane++) {
 for (y = 0; y < c->avctx->height; y++) {
 for (x = 0; x < c->avctx->width; x++)
-out[linesize * y + x] |= get_bits1(&gb) << plane;
-skip_bits(&gb, c->padded_bits);
+out[linesize * y + x] |= bitstream_read_bit(&bc) << plane;
+bitstream_skip(&bc, c->padded_bits);
 }
 }
 }
 
 static void bitline2chunky(CDXLVideoContext *c, int linesize, uint8_t *out)
 {
-GetBitContext  gb;
+BitstreamContext bc;
 int x, y, plane;
 
-init_get_bits(&gb, c->video, c->video_size * 8);
+bitstream_init(&bc, c->video, c->video_size * 8);
 for (y = 0; y < c->avctx->height; y++) {
 for (plane = 0; plane < c->bpp; plane++) {
 for (x = 0; x < c->avctx->width; x++)
-out[linesize * y + x] |= get_bits1(&gb) << plane;
-skip_bits(&gb, c->padded_bits);
+out[linesize * y + x] |= bitstream_read_bit(&bc) << plane;
+bitstream_skip(&bc, c->padded_bits);
 }
 }
 }

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr  
9 20:36:57 2016 +0200| [c43eb731721ac1009c2b4ca13f90ef00280119c9] | committer: 
Anton Khirnov

escape124: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/escape124.c | 85 --
 1 file changed, 41 insertions(+), 44 deletions(-)

diff --git a/libavcodec/escape124.c b/libavcodec/escape124.c
index 6d1b487..879f00a 100644
--- a/libavcodec/escape124.c
+++ b/libavcodec/escape124.c
@@ -21,7 +21,7 @@
 
 #define BITSTREAM_READER_LE
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "internal.h"
 
 typedef union MacroBlock {
@@ -48,8 +48,9 @@ typedef struct Escape124Context {
 CodeBook codebooks[3];
 } Escape124Context;
 
-static int can_safely_read(GetBitContext* gb, int bits) {
-return get_bits_left(gb) >= bits;
+static int can_safely_read(BitstreamContext *bc, int bits)
+{
+return bitstream_bits_left(bc) >= bits;
 }
 
 /**
@@ -86,13 +87,13 @@ static av_cold int escape124_decode_close(AVCodecContext 
*avctx)
 return 0;
 }
 
-static CodeBook unpack_codebook(GetBitContext* gb, unsigned depth,
+static CodeBook unpack_codebook(BitstreamContext *bc, unsigned depth,
  unsigned size)
 {
 unsigned i, j;
 CodeBook cb = { 0 };
 
-if (!can_safely_read(gb, size * 34))
+if (!can_safely_read(bc, size * 34))
 return cb;
 
 if (size >= INT_MAX / sizeof(MacroBlock))
@@ -104,9 +105,9 @@ static CodeBook unpack_codebook(GetBitContext* gb, unsigned 
depth,
 cb.depth = depth;
 cb.size = size;
 for (i = 0; i < size; i++) {
-unsigned mask_bits = get_bits(gb, 4);
-unsigned color0 = get_bits(gb, 15);
-unsigned color1 = get_bits(gb, 15);
+unsigned mask_bits = bitstream_read(bc,  4);
+unsigned color0= bitstream_read(bc, 15);
+unsigned color1= bitstream_read(bc, 15);
 
 for (j = 0; j < 4; j++) {
 if (mask_bits & (1 << j))
@@ -118,47 +119,43 @@ static CodeBook unpack_codebook(GetBitContext* gb, 
unsigned depth,
 return cb;
 }
 
-static unsigned decode_skip_count(GetBitContext* gb)
+static unsigned decode_skip_count(BitstreamContext *bc)
 {
 unsigned value;
 // This function reads a maximum of 23 bits,
 // which is within the padding space
-if (!can_safely_read(gb, 1))
+if (!can_safely_read(bc, 1))
 return -1;
-value = get_bits1(gb);
+value = bitstream_read_bit(bc);
 if (!value)
 return value;
 
-value += get_bits(gb, 3);
+value += bitstream_read(bc, 3);
 if (value != (1 + ((1 << 3) - 1)))
 return value;
 
-value += get_bits(gb, 7);
+value += bitstream_read(bc, 7);
 if (value != (1 + ((1 << 3) - 1)) + ((1 << 7) - 1))
 return value;
 
-return value + get_bits(gb, 12);
+return value + bitstream_read(bc, 12);
 }
 
-static MacroBlock decode_macroblock(Escape124Context* s, GetBitContext* gb,
-int* codebook_index, int superblock_index)
+static MacroBlock decode_macroblock(Escape124Context *s, BitstreamContext *bc,
+int *codebook_index, int superblock_index)
 {
 // This function reads a maximum of 22 bits; the callers
 // guard this function appropriately
 unsigned block_index, depth;
-int value = get_bits1(gb);
+int value = bitstream_read_bit(bc);
 if (value) {
 static const char transitions[3][2] = { {2, 1}, {0, 2}, {1, 0} };
-value = get_bits1(gb);
+value = bitstream_read_bit(bc);
 *codebook_index = transitions[*codebook_index][value];
 }
 
 depth = s->codebooks[*codebook_index].depth;
-
-// depth = 0 means that this shouldn't read any bits;
-// in theory, this is the same as get_bits(gb, 0), but
-// that doesn't actually work.
-block_index = get_bitsz(gb, depth);
+block_index = bitstream_read(bc, depth);
 
 if (*codebook_index == 1) {
 block_index += superblock_index << s->codebooks[1].depth;
@@ -208,7 +205,7 @@ static int escape124_decode_frame(AVCodecContext *avctx,
 Escape124Context *s = avctx->priv_data;
 AVFrame *frame = data;
 
-GetBitContext gb;
+BitstreamContext bc;
 unsigned frame_flags, frame_size;
 unsigned i;
 
@@ -220,15 +217,15 @@ static int escape124_decode_frame(AVCodecContext *avctx,
 unsigned old_stride, new_stride;
 int ret;
 
-init_get_bits(&gb, buf, buf_size * 8);
+bitstream_init(&bc, buf, buf_size * 8);
 
 // This call also guards the potential depth reads for the
 // codebook unpacking.
-if (!can_safely_read(&gb, 64))
+if (!can_safely_read(&bc, 64

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr  
9 21:04:29 2016 +0200| [418ccdd7034e4cbbb991a4fb47753d76286998f3] | committer: 
Anton Khirnov

faxcompr: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/faxcompr.c | 34 +-
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/libavcodec/faxcompr.c b/libavcodec/faxcompr.c
index 4cbda3f..8a9010d 100644
--- a/libavcodec/faxcompr.c
+++ b/libavcodec/faxcompr.c
@@ -25,7 +25,7 @@
  * @author Konstantin Shishkov
  */
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "put_bits.h"
 #include "faxcompr.h"
 
@@ -123,7 +123,7 @@ av_cold void ff_ccitt_unpack_init(void)
 }
 
 
-static int decode_group3_1d_line(AVCodecContext *avctx, GetBitContext *gb,
+static int decode_group3_1d_line(AVCodecContext *avctx, BitstreamContext *bc,
  unsigned int pix_left, int *runs,
  const int *runend)
 {
@@ -131,7 +131,7 @@ static int decode_group3_1d_line(AVCodecContext *avctx, 
GetBitContext *gb,
 unsigned int run = 0;
 unsigned int t;
 for (;;) {
-t= get_vlc2(gb, ccitt_vlc[mode].table, 9, 2);
+t= bitstream_read_vlc(bc, ccitt_vlc[mode].table, 9, 2);
 run += t;
 if (t < 64) {
 *runs++ = run;
@@ -157,7 +157,7 @@ static int decode_group3_1d_line(AVCodecContext *avctx, 
GetBitContext *gb,
 return 0;
 }
 
-static int decode_group3_2d_line(AVCodecContext *avctx, GetBitContext *gb,
+static int decode_group3_2d_line(AVCodecContext *avctx, BitstreamContext *bc,
  unsigned int width, int *runs,
  const int *runend, const int *ref)
 {
@@ -168,7 +168,7 @@ static int decode_group3_2d_line(AVCodecContext *avctx, 
GetBitContext *gb,
 runend--; // for the last written 0
 
 while (offs < width) {
-int cmode = get_vlc2(gb, ccitt_group3_2d_vlc.table, 9, 1);
+int cmode = bitstream_read_vlc(bc, ccitt_group3_2d_vlc.table, 9, 1);
 if (cmode == -1) {
 av_log(avctx, AV_LOG_ERROR, "Incorrect mode VLC\n");
 return AVERROR_INVALIDDATA;
@@ -188,7 +188,7 @@ static int decode_group3_2d_line(AVCodecContext *avctx, 
GetBitContext *gb,
 for (k = 0; k < 2; k++) {
 run = 0;
 for (;;) {
-t = get_vlc2(gb, ccitt_vlc[mode].table, 9, 2);
+t = bitstream_read_vlc(bc, ccitt_vlc[mode].table, 9, 2);
 if (t == -1) {
 av_log(avctx, AV_LOG_ERROR, "Incorrect code\n");
 return AVERROR_INVALIDDATA;
@@ -258,12 +258,12 @@ static void put_line(uint8_t *dst, int size, int width, 
const int *runs)
 flush_put_bits(&pb);
 }
 
-static int find_group3_syncmarker(GetBitContext *gb, int srcsize)
+static int find_group3_syncmarker(BitstreamContext *bc, int srcsize)
 {
 unsigned int state = -1;
-srcsize -= get_bits_count(gb);
+srcsize -= bitstream_tell(bc);
 while (srcsize-- > 0) {
-state += state + get_bits1(gb);
+state += state + bitstream_read_bit(bc);
 if ((state & 0xFFF) == 1)
 return 0;
 }
@@ -275,7 +275,7 @@ int ff_ccitt_unpack(AVCodecContext *avctx, const uint8_t 
*src, int srcsize,
 enum TiffCompr compr, int opts)
 {
 int j;
-GetBitContext gb;
+BitstreamContext bc;
 int *runs, *ref = NULL, *runend;
 int ret;
 int runsize = avctx->width + 2;
@@ -289,27 +289,27 @@ int ff_ccitt_unpack(AVCodecContext *avctx, const uint8_t 
*src, int srcsize,
 ref[0] = avctx->width;
 ref[1] = 0;
 ref[2] = 0;
-init_get_bits(&gb, src, srcsize * 8);
+bitstream_init(&bc, src, srcsize * 8);
 for (j = 0; j < height; j++) {
 runend = runs + runsize;
 if (compr == TIFF_G4) {
-ret = decode_group3_2d_line(avctx, &gb, avctx->width, runs, runend,
+ret = decode_group3_2d_line(avctx, &bc, avctx->width, runs, runend,
 ref);
 if (ret < 0)
 goto fail;
 } else {
 int g3d1 = (compr == TIFF_G3) && !(opts & 1);
 if (compr != TIFF_CCITT_RLE &&
-find_group3_syncmarker(&gb, srcsize * 8) < 0)
+find_group3_syncmarker(&bc, srcsize * 8) < 0)
 break;
-if (compr == TIFF_CCITT_RLE || g3d1 || get_bits1(&gb))
-ret = decode_group3_1d_line(avctx, &gb, avctx->width, runs,
+if (compr == TIFF_CCITT_RLE || g3d1 || bitstream_read_bit(&bc))
+ret = decod

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr  
9 21:00:43 2016 +0200| [8df1ac6b785a1a159cdffed1eec1ab2a8df66460] | committer: 
Anton Khirnov

exr: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/exr.c | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/libavcodec/exr.c b/libavcodec/exr.c
index d10841d..28cee84 100644
--- a/libavcodec/exr.c
+++ b/libavcodec/exr.c
@@ -39,8 +39,8 @@
 #include "libavutil/opt.h"
 
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bytestream.h"
-#include "get_bits.h"
 #include "internal.h"
 #include "mathops.h"
 #include "thread.h"
@@ -379,16 +379,16 @@ static void huf_canonical_code_table(uint64_t *hcode)
 static int huf_unpack_enc_table(GetByteContext *gb,
 int32_t im, int32_t iM, uint64_t *hcode)
 {
-GetBitContext gbit;
-int ret = init_get_bits8(&gbit, gb->buffer, 
bytestream2_get_bytes_left(gb));
+BitstreamContext bc;
+int ret = bitstream_init8(&bc, gb->buffer, bytestream2_get_bytes_left(gb));
 if (ret < 0)
 return ret;
 
 for (; im <= iM; im++) {
-uint64_t l = hcode[im] = get_bits(&gbit, 6);
+uint64_t l = hcode[im] = bitstream_read(&bc, 6);
 
 if (l == LONG_ZEROCODE_RUN) {
-int zerun = get_bits(&gbit, 8) + SHORTEST_LONG_RUN;
+int zerun = bitstream_read(&bc, 8) + SHORTEST_LONG_RUN;
 
 if (im + zerun > iM + 1)
 return AVERROR_INVALIDDATA;
@@ -410,7 +410,7 @@ static int huf_unpack_enc_table(GetByteContext *gb,
 }
 }
 
-bytestream2_skip(gb, (get_bits_count(&gbit) + 7) / 8);
+bytestream2_skip(gb, (bitstream_tell(&bc) + 7) / 8);
 huf_canonical_code_table(hcode);
 
 return 0;

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] hqx: Convert to the new bitstream header

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sun Apr 
10 12:09:58 2016 +0200| [1df549bfa2bacceb6f119f2aa1146c22ac841243] | committer: 
Anton Khirnov

hqx: Convert to the new bitstream header

Signed-off-by: Anton Khirnov 

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

 libavcodec/hqx.c | 64 
 libavcodec/hqx.h |  5 +++--
 2 files changed, 35 insertions(+), 34 deletions(-)

diff --git a/libavcodec/hqx.c b/libavcodec/hqx.c
index 7411d3f..3c359e3 100644
--- a/libavcodec/hqx.c
+++ b/libavcodec/hqx.c
@@ -24,8 +24,8 @@
 #include "libavutil/intreadwrite.h"
 
 #include "avcodec.h"
+#include "bitstream.h"
 #include "canopus.h"
-#include "get_bits.h"
 #include "internal.h"
 
 #include "hqx.h"
@@ -95,23 +95,23 @@ static inline void put_blocks(HQXContext *ctx, int plane,
  lsize * fields, block1, quant);
 }
 
-static inline void hqx_get_ac(GetBitContext *gb, const HQXAC *ac,
+static inline void hqx_get_ac(BitstreamContext *bc, const HQXAC *ac,
   int *run, int *lev)
 {
 int val;
 
-val = show_bits(gb, ac->lut_bits);
+val = bitstream_peek(bc, ac->lut_bits);
 if (ac->lut[val].bits == -1) {
-GetBitContext gb2 = *gb;
-skip_bits(&gb2, ac->lut_bits);
-val = ac->lut[val].lev + show_bits(&gb2, ac->extra_bits);
+BitstreamContext bc2 = *bc;
+bitstream_skip(&bc2, ac->lut_bits);
+val = ac->lut[val].lev + bitstream_peek(&bc2, ac->extra_bits);
 }
 *run = ac->lut[val].run;
 *lev = ac->lut[val].lev;
-skip_bits(gb, ac->lut[val].bits);
+bitstream_skip(bc, ac->lut[val].bits);
 }
 
-static int decode_block(GetBitContext *gb, VLC *vlc,
+static int decode_block(BitstreamContext *bc, VLC *vlc,
 const int *quants, int dcb,
 int16_t block[64], int *last_dc)
 {
@@ -120,14 +120,14 @@ static int decode_block(GetBitContext *gb, VLC *vlc,
 int run, lev, pos = 1;
 
 memset(block, 0, 64 * sizeof(*block));
-dc = get_vlc2(gb, vlc->table, HQX_DC_VLC_BITS, 2);
+dc = bitstream_read_vlc(bc, vlc->table, HQX_DC_VLC_BITS, 2);
 if (dc < 0)
 return AVERROR_INVALIDDATA;
 *last_dc += dc;
 
 block[0] = sign_extend(*last_dc << (12 - dcb), 12);
 
-q = quants[get_bits(gb, 2)];
+q = quants[bitstream_read(bc, 2)];
 if (q >= 128)
 ac_idx = HQX_AC_Q128;
 else if (q >= 64)
@@ -142,7 +142,7 @@ static int decode_block(GetBitContext *gb, VLC *vlc,
 ac_idx = HQX_AC_Q0;
 
 do {
-hqx_get_ac(gb, &ff_hqx_ac[ac_idx], &run, &lev);
+hqx_get_ac(bc, &ff_hqx_ac[ac_idx], &run, &lev);
 pos += run;
 if (pos >= 64)
 break;
@@ -155,24 +155,24 @@ static int decode_block(GetBitContext *gb, VLC *vlc,
 static int hqx_decode_422(HQXContext *ctx, int slice_no, int x, int y)
 {
 HQXSlice *slice = &ctx->slice[slice_no];
-GetBitContext *gb = &slice->gb;
+BitstreamContext *bc = &slice->bc;
 const int *quants;
 int flag;
 int last_dc;
 int i, ret;
 
 if (ctx->interlaced)
-flag = get_bits1(gb);
+flag = bitstream_read_bit(bc);
 else
 flag = 0;
 
-quants = hqx_quants[get_bits(gb, 4)];
+quants = hqx_quants[bitstream_read(bc, 4)];
 
 for (i = 0; i < 8; i++) {
 int vlc_index = ctx->dcb - 9;
 if (i == 0 || i == 4 || i == 6)
 last_dc = 0;
-ret = decode_block(gb, &ctx->dc_vlc[vlc_index], quants,
+ret = decode_block(bc, &ctx->dc_vlc[vlc_index], quants,
ctx->dcb, slice->block[i], &last_dc);
 if (ret < 0)
 return ret;
@@ -189,14 +189,14 @@ static int hqx_decode_422(HQXContext *ctx, int slice_no, 
int x, int y)
 static int hqx_decode_422a(HQXContext *ctx, int slice_no, int x, int y)
 {
 HQXSlice *slice = &ctx->slice[slice_no];
-GetBitContext *gb = &slice->gb;
+BitstreamContext *bc = &slice->bc;
 const int *quants;
 int flag = 0;
 int last_dc;
 int i, ret;
 int cbp;
 
-cbp = get_vlc2(gb, ctx->cbp_vlc.table, ctx->cbp_vlc.bits, 1);
+cbp = bitstream_read_vlc(bc, ctx->cbp_vlc.table, ctx->cbp_vlc.bits, 1);
 
 for (i = 0; i < 12; i++)
 memset(slice->block[i], 0, sizeof(**slice->block) * 64);
@@ -204,9 +204,9 @@ static int hqx_decode_422a(HQXContext *ctx, int slice_no, 
int x, int y)
 slice->block[i][0] = -0x800;
 if (cbp) {
 if (ctx->interlaced)
-flag = get_bits1(gb);
+flag = bitstream_read_bit(bc);
 
-quants = hqx_quants[get_bits(gb, 4)];
+qua

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sun Apr 
10 11:12:27 2016 +0200| [b37b681f7734533dd6dc2ede8aa9d5c2607e0c23] | committer: 
Anton Khirnov

fraps: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/fraps.c | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/libavcodec/fraps.c b/libavcodec/fraps.c
index 55051ff..2237991 100644
--- a/libavcodec/fraps.c
+++ b/libavcodec/fraps.c
@@ -32,7 +32,7 @@
  */
 
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "huffman.h"
 #include "bytestream.h"
 #include "bswapdsp.h"
@@ -94,7 +94,7 @@ static int fraps2_decode_plane(FrapsContext *s, uint8_t *dst, 
int stride, int w,
const int step)
 {
 int i, j, ret;
-GetBitContext gb;
+BitstreamContext bc;
 VLC vlc;
 Node nodes[512];
 
@@ -111,10 +111,10 @@ static int fraps2_decode_plane(FrapsContext *s, uint8_t 
*dst, int stride, int w,
 s->bdsp.bswap_buf((uint32_t *) s->tmpbuf,
   (const uint32_t *) src, size >> 2);
 
-init_get_bits(&gb, s->tmpbuf, size * 8);
+bitstream_init(&bc, s->tmpbuf, size * 8);
 for (j = 0; j < h; j++) {
 for (i = 0; i < w*step; i += step) {
-dst[i] = get_vlc2(&gb, vlc.table, VLC_BITS, 3);
+dst[i] = bitstream_read_vlc(&bc, vlc.table, VLC_BITS, 3);
 /* lines are stored as deltas between previous lines
  * and we need to add 0x80 to the first lines of chroma planes
  */
@@ -122,7 +122,7 @@ static int fraps2_decode_plane(FrapsContext *s, uint8_t 
*dst, int stride, int w,
 dst[i] += dst[i - stride];
 else if (Uoff)
 dst[i] += 0x80;
-if (get_bits_left(&gb) < 0) {
+if (bitstream_bits_left(&bc) < 0) {
 ff_free_vlc(&vlc);
 return AVERROR_INVALIDDATA;
 }

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr  
9 18:00:37 2016 +0200| [942e84d2a3c41a9392743ea6b1cb24ca8163d678] | committer: 
Anton Khirnov

cook: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/cook.c | 53 +++--
 1 file changed, 27 insertions(+), 26 deletions(-)

diff --git a/libavcodec/cook.c b/libavcodec/cook.c
index c990333..c3304ea 100644
--- a/libavcodec/cook.c
+++ b/libavcodec/cook.c
@@ -47,7 +47,7 @@
 
 #include "audiodsp.h"
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "bytestream.h"
 #include "fft.h"
 #include "internal.h"
@@ -124,7 +124,7 @@ typedef struct cook {
 
 AVCodecContext* avctx;
 AudioDSPContext adsp;
-GetBitContext   gb;
+BitstreamContextbc;
 /* stream data */
 int num_vectors;
 int samples_per_channel;
@@ -325,23 +325,23 @@ static av_cold int cook_decode_close(AVCodecContext 
*avctx)
 /**
  * Fill the gain array for the timedomain quantization.
  *
- * @param gb  pointer to the GetBitContext
+ * @param bc  pointer to the BitstreamContext
  * @param gaininfoarray[9] of gain indexes
  */
-static void decode_gain_info(GetBitContext *gb, int *gaininfo)
+static void decode_gain_info(BitstreamContext *bc, int *gaininfo)
 {
 int i, n;
 
-while (get_bits1(gb)) {
+while (bitstream_read_bit(bc)) {
 /* NOTHING */
 }
 
-n = get_bits_count(gb) - 1; // amount of elements*2 to update
+n = bitstream_tell(bc) - 1; // amount of elements * 2 to update
 
 i = 0;
 while (n--) {
-int index = get_bits(gb, 3);
-int gain = get_bits1(gb) ? get_bits(gb, 4) - 7 : -1;
+int index = bitstream_read(bc, 3);
+int gain = bitstream_read_bit(bc) ? bitstream_read(bc, 4) - 7 : -1;
 
 while (i <= index)
 gaininfo[i++] = gain;
@@ -361,7 +361,7 @@ static int decode_envelope(COOKContext *q, COOKSubpacket *p,
 {
 int i, j, vlc_index;
 
-quant_index_table[0] = get_bits(&q->gb, 6) - 6; // This is used later in 
categorize
+quant_index_table[0] = bitstream_read(&q->bc, 6) - 6; // This is used 
later in categorize
 
 for (i = 1; i < p->total_subbands; i++) {
 vlc_index = i;
@@ -375,8 +375,8 @@ static int decode_envelope(COOKContext *q, COOKSubpacket *p,
 if (vlc_index > 13)
 vlc_index = 13; // the VLC tables >13 are identical to No. 13
 
-j = get_vlc2(&q->gb, q->envelope_quant_index[vlc_index - 1].table,
- q->envelope_quant_index[vlc_index - 1].bits, 2);
+j = bitstream_read_vlc(&q->bc, q->envelope_quant_index[vlc_index - 
1].table,
+   q->envelope_quant_index[vlc_index - 1].bits, 2);
 quant_index_table[i] = quant_index_table[i - 1] + j - 12; // 
differential encoding
 if (quant_index_table[i] > 63 || quant_index_table[i] < -63) {
 av_log(q->avctx, AV_LOG_ERROR,
@@ -408,7 +408,7 @@ static void categorize(COOKContext *q, COOKSubpacket *p, 
int *quant_index_table,
 int tmp_categorize_array1_idx = p->numvector_size;
 int tmp_categorize_array2_idx = p->numvector_size;
 
-bits_left = p->bits_per_subpacket - get_bits_count(&q->gb);
+bits_left = p->bits_per_subpacket - bitstream_tell(&q->bc);
 
 if (bits_left > q->samples_per_channel)
 bits_left = q->samples_per_channel +
@@ -554,8 +554,8 @@ static int unpack_SQVH(COOKContext *q, COOKSubpacket *p, 
int category,
 vd = vd_tab[category];
 result = 0;
 for (i = 0; i < vpr_tab[category]; i++) {
-vlc = get_vlc2(&q->gb, q->sqvh[category].table, 
q->sqvh[category].bits, 3);
-if (p->bits_per_subpacket < get_bits_count(&q->gb)) {
+vlc = bitstream_read_vlc(&q->bc, q->sqvh[category].table, 
q->sqvh[category].bits, 3);
+if (p->bits_per_subpacket < bitstream_tell(&q->bc)) {
 vlc = 0;
 result = 1;
 }
@@ -566,8 +566,8 @@ static int unpack_SQVH(COOKContext *q, COOKSubpacket *p, 
int category,
 }
 for (j = 0; j < vd; j++) {
 if (subband_coef_index[i * vd + j]) {
-if (get_bits_count(&q->gb) < p->bits_per_subpacket) {
-subband_coef_sign[i * vd + j] = get_bits1(&q->gb);
+if (bitstream_tell(&q->bc) < p->bits_per_subpacket) {
+subband_coef_sign[i * vd + j] = bitstream_read_bit(&q->bc);
 } else {
 result = 1;
 subband_coef_sign[

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr  
9 18:58:25 2016 +0200| [928f8c7ce360f464f1c5d3a363b2d4b1eb7c471f] | committer: 
Anton Khirnov

dss_sp: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/dss_sp.c | 22 +++---
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/libavcodec/dss_sp.c b/libavcodec/dss_sp.c
index 20b0528..44d98d8 100644
--- a/libavcodec/dss_sp.c
+++ b/libavcodec/dss_sp.c
@@ -25,7 +25,7 @@
 #include "libavutil/opt.h"
 
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "internal.h"
 
 #define SUBFRAMES 4
@@ -302,7 +302,7 @@ static av_cold int dss_sp_decode_init(AVCodecContext *avctx)
 
 static void dss_sp_unpack_coeffs(DssSpContext *p, const uint8_t *src)
 {
-GetBitContext gb;
+BitstreamContext bc;
 DssSpFrame *fparam = &p->fparam;
 int i;
 int subframe_idx;
@@ -315,24 +315,24 @@ static void dss_sp_unpack_coeffs(DssSpContext *p, const 
uint8_t *src)
 p->bits[i + 1] = src[i];
 }
 
-init_get_bits(&gb, p->bits, DSS_SP_FRAME_SIZE * 8);
+bitstream_init(&bc, p->bits, DSS_SP_FRAME_SIZE * 8);
 
 for (i = 0; i < 2; i++)
-fparam->filter_idx[i] = get_bits(&gb, 5);
+fparam->filter_idx[i] = bitstream_read(&bc, 5);
 for (; i < 8; i++)
-fparam->filter_idx[i] = get_bits(&gb, 4);
+fparam->filter_idx[i] = bitstream_read(&bc, 4);
 for (; i < 14; i++)
-fparam->filter_idx[i] = get_bits(&gb, 3);
+fparam->filter_idx[i] = bitstream_read(&bc, 3);
 
 for (subframe_idx = 0; subframe_idx < 4; subframe_idx++) {
-fparam->sf_adaptive_gain[subframe_idx] = get_bits(&gb, 5);
+fparam->sf_adaptive_gain[subframe_idx] = bitstream_read(&bc, 5);
 
-fparam->sf[subframe_idx].combined_pulse_pos = get_bits_long(&gb, 31);
+fparam->sf[subframe_idx].combined_pulse_pos = bitstream_read(&bc, 31);
 
-fparam->sf[subframe_idx].gain = get_bits(&gb, 6);
+fparam->sf[subframe_idx].gain = bitstream_read(&bc, 6);
 
 for (i = 0; i < 7; i++)
-fparam->sf[subframe_idx].pulse_val[i] = get_bits(&gb, 3);
+fparam->sf[subframe_idx].pulse_val[i] = bitstream_read(&bc, 3);
 }
 
 for (subframe_idx = 0; subframe_idx < 4; subframe_idx++) {
@@ -394,7 +394,7 @@ static void dss_sp_unpack_coeffs(DssSpContext *p, const 
uint8_t *src)
 }
 }
 
-combined_pitch = get_bits(&gb, 24);
+combined_pitch = bitstream_read(&bc, 24);
 
 fparam->pitch_lag[0] = (combined_pitch % 151) + 36;
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr  
9 17:34:03 2016 +0200| [e561146611f5cf410df78b53a4ca5cded2272fd3] | committer: 
Anton Khirnov

cljrdec: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/cljrdec.c | 18 +-
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/libavcodec/cljrdec.c b/libavcodec/cljrdec.c
index 33d8023..833707b 100644
--- a/libavcodec/cljrdec.c
+++ b/libavcodec/cljrdec.c
@@ -25,7 +25,7 @@
  */
 
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "internal.h"
 
 static int decode_frame(AVCodecContext *avctx,
@@ -34,7 +34,7 @@ static int decode_frame(AVCodecContext *avctx,
 {
 const uint8_t *buf = avpkt->data;
 int buf_size   = avpkt->size;
-GetBitContext gb;
+BitstreamContext bc;
 AVFrame * const p = data;
 int x, y, ret;
 
@@ -56,20 +56,20 @@ static int decode_frame(AVCodecContext *avctx,
 p->pict_type = AV_PICTURE_TYPE_I;
 p->key_frame = 1;
 
-init_get_bits(&gb, buf, buf_size * 8);
+bitstream_init(&bc, buf, buf_size * 8);
 
 for (y = 0; y < avctx->height; y++) {
 uint8_t *luma = &p->data[0][y * p->linesize[0]];
 uint8_t *cb   = &p->data[1][y * p->linesize[1]];
 uint8_t *cr   = &p->data[2][y * p->linesize[2]];
 for (x = 0; x < avctx->width; x += 4) {
-luma[3] = get_bits(&gb, 5) << 3;
-luma[2] = get_bits(&gb, 5) << 3;
-luma[1] = get_bits(&gb, 5) << 3;
-luma[0] = get_bits(&gb, 5) << 3;
+luma[3] = bitstream_read(&bc, 5) << 3;
+luma[2] = bitstream_read(&bc, 5) << 3;
+luma[1] = bitstream_read(&bc, 5) << 3;
+luma[0] = bitstream_read(&bc, 5) << 3;
 luma += 4;
-*(cb++) = get_bits(&gb, 6) << 2;
-*(cr++) = get_bits(&gb, 6) << 2;
+*(cb++) = bitstream_read(&bc, 6) << 2;
+*(cr++) = bitstream_read(&bc, 6) << 2;
 }
 }
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sun Apr 
10 11:16:15 2016 +0200| [799703c3ea3d20c2bdf0f7d8b5015bd3069b2801] | committer: 
Anton Khirnov

g2meet: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/g2meet.c | 30 +++---
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/libavcodec/g2meet.c b/libavcodec/g2meet.c
index 7e90916..4a7f5a3 100644
--- a/libavcodec/g2meet.c
+++ b/libavcodec/g2meet.c
@@ -31,10 +31,10 @@
 #include "libavutil/intreadwrite.h"
 
 #include "avcodec.h"
+#include "bitstream.h"
 #include "blockdsp.h"
 #include "bytestream.h"
 #include "elsdec.h"
-#include "get_bits.h"
 #include "idctdsp.h"
 #include "internal.h"
 #include "jpegtables.h"
@@ -236,7 +236,7 @@ static void jpg_unescape(const uint8_t *src, int src_size,
 *dst_size = dst - dst_start;
 }
 
-static int jpg_decode_block(JPGContext *c, GetBitContext *gb,
+static int jpg_decode_block(JPGContext *c, BitstreamContext *bc,
 int plane, int16_t *block)
 {
 int dc, val, pos;
@@ -244,18 +244,18 @@ static int jpg_decode_block(JPGContext *c, GetBitContext 
*gb,
 const uint8_t *qmat = is_chroma ? chroma_quant : luma_quant;
 
 c->bdsp.clear_block(block);
-dc = get_vlc2(gb, c->dc_vlc[is_chroma].table, 9, 3);
+dc = bitstream_read_vlc(bc, c->dc_vlc[is_chroma].table, 9, 3);
 if (dc < 0)
 return AVERROR_INVALIDDATA;
 if (dc)
-dc = get_xbits(gb, dc);
+dc = bitstream_read_xbits(bc, dc);
 dc= dc * qmat[0] + c->prev_dc[plane];
 block[0]  = dc;
 c->prev_dc[plane] = dc;
 
 pos = 0;
 while (pos < 63) {
-val = get_vlc2(gb, c->ac_vlc[is_chroma].table, 9, 3);
+val = bitstream_read_vlc(bc, c->ac_vlc[is_chroma].table, 9, 3);
 if (val < 0)
 return AVERROR_INVALIDDATA;
 pos += val >> 4;
@@ -265,7 +265,7 @@ static int jpg_decode_block(JPGContext *c, GetBitContext 
*gb,
 if (val) {
 int nbits = val;
 
-val = get_xbits(gb, nbits);
+val = bitstream_read_xbits(bc, 
nbits);
 val*= qmat[ff_zigzag_direct[pos]];
 block[c->scantable.permutated[pos]] = val;
 }
@@ -286,7 +286,7 @@ static int jpg_decode_data(JPGContext *c, int width, int 
height,
const uint8_t *mask, int mask_stride, int num_mbs,
int swapuv)
 {
-GetBitContext gb;
+BitstreamContext bc;
 int mb_w, mb_h, mb_x, mb_y, i, j;
 int bx, by;
 int unesc_size;
@@ -298,7 +298,7 @@ static int jpg_decode_data(JPGContext *c, int width, int 
height,
 return ret;
 jpg_unescape(src, src_size, c->buf, &unesc_size);
 memset(c->buf + unesc_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
-init_get_bits(&gb, c->buf, unesc_size * 8);
+bitstream_init(&bc, c->buf, unesc_size * 8);
 
 width = FFALIGN(width, 16);
 mb_w  =  width>> 4;
@@ -325,14 +325,14 @@ static int jpg_decode_data(JPGContext *c, int width, int 
height,
 if (mask && !mask[mb_x * 2 + i + j * mask_stride])
 continue;
 num_mbs--;
-if ((ret = jpg_decode_block(c, &gb, 0,
+if ((ret = jpg_decode_block(c, &bc, 0,
 c->block[i + j * 2])) != 0)
 return ret;
 c->idsp.idct(c->block[i + j * 2]);
 }
 }
 for (i = 1; i < 3; i++) {
-if ((ret = jpg_decode_block(c, &gb, i, c->block[i + 3])) != 0)
+if ((ret = jpg_decode_block(c, &bc, i, c->block[i + 3])) != 0)
 return ret;
 c->idsp.idct(c->block[i + 3]);
 }
@@ -1011,11 +1011,11 @@ static void kempf_restore_buf(const uint8_t *src, int 
len,
   int width, int height,
   const uint8_t *pal, int npal, int tidx)
 {
-GetBitContext gb;
+BitstreamContext bc;
 int i, j, nb, col;
 int align_width = FFALIGN(width, 16);
 
-init_get_bits(&gb, src, len * 8);
+bitstream_init(&bc, src, len * 8);
 
 if (npal <= 2)   nb = 1;
 else if (npal <= 4)  nb = 2;
@@ -1023,16 +1023,16 @@ static void kempf_restore_buf(const uint8_t *src, int 
len,
 else nb = 8;
 
 for (j = 0; j < height; j++, dst += stride, jpeg_tile += tile_stride) {
-if (get_bits(&gb, 8))
+if (bitstre

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sun Apr 
10 12:00:56 2016 +0200| [c5e01d91702b082ac1b5c2101f1d84dd5017e4ad] | committer: 
Anton Khirnov

hq_hqa: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/hq_hqa.c | 48 
 1 file changed, 24 insertions(+), 24 deletions(-)

diff --git a/libavcodec/hq_hqa.c b/libavcodec/hq_hqa.c
index 98bd596..0d03e59 100644
--- a/libavcodec/hq_hqa.c
+++ b/libavcodec/hq_hqa.c
@@ -24,8 +24,8 @@
 #include "libavutil/intreadwrite.h"
 
 #include "avcodec.h"
+#include "bitstream.h"
 #include "canopus.h"
-#include "get_bits.h"
 #include "internal.h"
 
 #include "hq_hqa.h"
@@ -59,7 +59,7 @@ static inline void put_blocks(HQContext *c, AVFrame *pic,
  pic->linesize[plane] << ilace, block1);
 }
 
-static int hq_decode_block(HQContext *c, GetBitContext *gb, int16_t block[64],
+static int hq_decode_block(HQContext *c, BitstreamContext *bc, int16_t 
block[64],
int qsel, int is_chroma, int is_hqa)
 {
 const int32_t *q;
@@ -68,15 +68,15 @@ static int hq_decode_block(HQContext *c, GetBitContext *gb, 
int16_t block[64],
 memset(block, 0, 64 * sizeof(*block));
 
 if (!is_hqa) {
-block[0] = get_sbits(gb, 9) << 6;
-q = ff_hq_quants[qsel][is_chroma][get_bits(gb, 2)];
+block[0] = bitstream_read_signed(bc, 9) << 6;
+q = ff_hq_quants[qsel][is_chroma][bitstream_read(bc, 2)];
 } else {
-q = ff_hq_quants[qsel][is_chroma][get_bits(gb, 2)];
-block[0] = get_sbits(gb, 9) << 6;
+q = ff_hq_quants[qsel][is_chroma][bitstream_read(bc, 2)];
+block[0] = bitstream_read_signed(bc, 9) << 6;
 }
 
 for (;;) {
-val = get_vlc2(gb, c->hq_ac_vlc.table, 9, 2);
+val = bitstream_read_vlc(bc, c->hq_ac_vlc.table, 9, 2);
 if (val < 0)
 return AVERROR_INVALIDDATA;
 
@@ -91,16 +91,16 @@ static int hq_decode_block(HQContext *c, GetBitContext *gb, 
int16_t block[64],
 }
 
 static int hq_decode_mb(HQContext *c, AVFrame *pic,
-GetBitContext *gb, int x, int y)
+BitstreamContext *bc, int x, int y)
 {
 int qgroup, flag;
 int i, ret;
 
-qgroup = get_bits(gb, 4);
-flag = get_bits1(gb);
+qgroup = bitstream_read(bc, 4);
+flag   = bitstream_read_bit(bc);
 
 for (i = 0; i < 8; i++) {
-ret = hq_decode_block(c, gb, c->block[i], qgroup, i >= 4, 0);
+ret = hq_decode_block(c, bc, c->block[i], qgroup, i >= 4, 0);
 if (ret < 0)
 return ret;
 }
@@ -117,7 +117,7 @@ static int hq_decode_frame(HQContext *ctx, AVFrame *pic,
int prof_num, size_t data_size)
 {
 const HQProfile *profile;
-GetBitContext gb;
+BitstreamContext bc;
 const uint8_t *perm, *src = ctx->gbc.buffer;
 uint32_t slice_off[21];
 int slice, start_off, next_off, i, ret;
@@ -160,11 +160,11 @@ static int hq_decode_frame(HQContext *ctx, AVFrame *pic,
"Invalid slice size %zu.\n", data_size);
 break;
 }
-init_get_bits(&gb, src + slice_off[slice],
-  (slice_off[slice + 1] - slice_off[slice]) * 8);
+bitstream_init(&bc, src + slice_off[slice],
+   (slice_off[slice + 1] - slice_off[slice]) * 8);
 
 for (i = 0; i < (next_off - start_off) * profile->tab_w; i++) {
-ret = hq_decode_mb(ctx, pic, &gb, perm[0] * 16, perm[1] * 16);
+ret = hq_decode_mb(ctx, pic, &bc, perm[0] * 16, perm[1] * 16);
 if (ret < 0) {
 av_log(ctx->avctx, AV_LOG_ERROR,
"Error decoding macroblock %d at slice %d.\n", i, 
slice);
@@ -178,12 +178,12 @@ static int hq_decode_frame(HQContext *ctx, AVFrame *pic,
 }
 
 static int hqa_decode_mb(HQContext *c, AVFrame *pic, int qgroup,
- GetBitContext *gb, int x, int y)
+ BitstreamContext *bc, int x, int y)
 {
 int flag = 0;
 int i, ret, cbp;
 
-cbp = get_vlc2(gb, c->hqa_cbp_vlc.table, 5, 1);
+cbp = bitstream_read_vlc(bc, c->hqa_cbp_vlc.table, 5, 1);
 
 for (i = 0; i < 12; i++)
 memset(c->block[i], 0, sizeof(*c->block));
@@ -191,7 +191,7 @@ static int hqa_decode_mb(HQContext *c, AVFrame *pic, int 
qgroup,
 c->block[i][0] = -128 * (1 << 6);
 
 if (cbp) {
-flag = get_bits1(gb);
+flag = bitstream_read_bit(bc);
 
 cbp |= cbp << 4;
 if (cbp & 0x3)
@@ -201,7 +201,7 @@ static int hqa_decode_mb(HQContext *c, AVFrame *pic, int 
qgroup,
 for (i = 0; i < 

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Thu Apr  
7 12:32:52 2016 +0200| [ed006ae4e2534084552a791a6fe9ebce1fa27a23] | committer: 
Anton Khirnov

4xm: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/4xm.c | 27 ++-
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/libavcodec/4xm.c b/libavcodec/4xm.c
index b2d4db2..ee9d020 100644
--- a/libavcodec/4xm.c
+++ b/libavcodec/4xm.c
@@ -29,11 +29,12 @@
 #include "libavutil/frame.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/intreadwrite.h"
+
 #include "avcodec.h"
+#include "bitstream.h"
 #include "blockdsp.h"
 #include "bswapdsp.h"
 #include "bytestream.h"
-#include "get_bits.h"
 #include "internal.h"
 
 #define BLOCK_TYPE_VLC_BITS 5
@@ -136,8 +137,8 @@ typedef struct FourXContext {
 BswapDSPContext bbdsp;
 uint16_t *frame_buffer;
 uint16_t *last_frame_buffer;
-GetBitContext pre_gb;  ///< ac/dc prefix
-GetBitContext gb;
+BitstreamContext pre_bc;// ac/dc prefix
+BitstreamContext bc;
 GetByteContext g;
 GetByteContext g2;
 int mv[256];
@@ -352,8 +353,8 @@ static int decode_p_block(FourXContext *f, uint16_t *dst, 
uint16_t *src,
 return AVERROR_INVALIDDATA;
 
 h = 1 << log2h;
-code  = get_vlc2(&f->gb, block_type_vlc[1 - (f->version > 1)][index].table,
- BLOCK_TYPE_VLC_BITS, 1);
+code  = bitstream_read_vlc(&f->bc, block_type_vlc[1 - (f->version > 
1)][index].table,
+   BLOCK_TYPE_VLC_BITS, 1);
 if (code < 0 || code > 6)
 return AVERROR_INVALIDDATA;
 
@@ -453,7 +454,7 @@ static int decode_p_frame(FourXContext *f, const uint8_t 
*buf, int length)
bitstream_size / 4);
 memset((uint8_t*)f->bitstream_buffer + bitstream_size,
0, AV_INPUT_BUFFER_PADDING_SIZE);
-init_get_bits(&f->gb, f->bitstream_buffer, 8 * bitstream_size);
+bitstream_init(&f->bc, f->bitstream_buffer, 8 * bitstream_size);
 
 wordstream_offset = extra + bitstream_size;
 bytestream_offset = extra + bitstream_size + wordstream_size;
@@ -484,19 +485,19 @@ static int decode_i_block(FourXContext *f, int16_t *block)
 int code, i, j, level, val;
 
 /* DC coef */
-val = get_vlc2(&f->pre_gb, f->pre_vlc.table, ACDC_VLC_BITS, 3);
+val = bitstream_read_vlc(&f->pre_bc, f->pre_vlc.table, ACDC_VLC_BITS, 3);
 if (val >> 4)
 av_log(f->avctx, AV_LOG_ERROR, "error dc run != 0\n");
 
 if (val)
-val = get_xbits(&f->gb, val);
+val = bitstream_read_xbits(&f->bc, val);
 
 val= val * dequant_table[0] + f->last_dc;
 f->last_dc = block[0] = val;
 /* AC coefs */
 i = 1;
 for (;;) {
-code = get_vlc2(&f->pre_gb, f->pre_vlc.table, ACDC_VLC_BITS, 3);
+code = bitstream_read_vlc(&f->pre_bc, f->pre_vlc.table, ACDC_VLC_BITS, 
3);
 
 /* EOB */
 if (code == 0)
@@ -504,7 +505,7 @@ static int decode_i_block(FourXContext *f, int16_t *block)
 if (code == 0xf0) {
 i += 16;
 } else {
-level = get_xbits(&f->gb, code & 0xf);
+level = bitstream_read_xbits(&f->bc, code & 0xf);
 i+= code >> 4;
 if (i >= 64) {
 av_log(f->avctx, AV_LOG_ERROR, "run %d oveflow\n", i);
@@ -764,7 +765,7 @@ static int decode_i_frame(FourXContext *f, const uint8_t 
*buf, int length)
 return AVERROR_INVALIDDATA;
 }
 
-init_get_bits(&f->gb, buf + 4, 8 * bitstream_size);
+bitstream_init(&f->bc, buf + 4, 8 * bitstream_size);
 
 prestream_size = length + buf - prestream;
 
@@ -776,7 +777,7 @@ static int decode_i_frame(FourXContext *f, const uint8_t 
*buf, int length)
prestream_size / 4);
 memset((uint8_t*)f->bitstream_buffer + prestream_size,
0, AV_INPUT_BUFFER_PADDING_SIZE);
-init_get_bits(&f->pre_gb, f->bitstream_buffer, 8 * prestream_size);
+bitstream_init(&f->pre_bc, f->bitstream_buffer, 8 * prestream_size);
 
 f->last_dc = 0 * 128 * 8 * 8;
 
@@ -789,7 +790,7 @@ static int decode_i_frame(FourXContext *f, const uint8_t 
*buf, int length)
 }
 }
 
-if (get_vlc2(&f->pre_gb, f->pre_vlc.table, ACDC_VLC_BITS, 3) != 256)
+if (bitstream_read_vlc(&f->pre_bc, f->pre_vlc.table, ACDC_VLC_BITS, 3) != 
256)
 av_log(f->avctx, AV_LOG_ERROR, "end mismatch\n");
 
 return 0;

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Mon Apr 
18 10:38:43 2016 +0200| [2188d53906015ea5dd5b2e446f8e5374beacbffe] | committer: 
Anton Khirnov

g72x: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/g722dec.c   | 13 -
 libavcodec/g723_1dec.c | 72 +-
 libavcodec/g726.c  | 11 
 3 files changed, 49 insertions(+), 47 deletions(-)

diff --git a/libavcodec/g722dec.c b/libavcodec/g722dec.c
index c4c0ec8..bfd4b42 100644
--- a/libavcodec/g722dec.c
+++ b/libavcodec/g722dec.c
@@ -36,8 +36,9 @@
 
 #include "libavutil/channel_layout.h"
 #include "libavutil/opt.h"
+
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "g722.h"
 #include "internal.h"
 
@@ -92,7 +93,7 @@ static int g722_decode_frame(AVCodecContext *avctx, void 
*data,
 int j, ret;
 const int skip = 8 - c->bits_per_codeword;
 const int16_t *quantizer_table = low_inv_quants[skip];
-GetBitContext gb;
+BitstreamContext bc;
 
 /* get output buffer */
 frame->nb_samples = avpkt->size * 2;
@@ -102,15 +103,15 @@ static int g722_decode_frame(AVCodecContext *avctx, void 
*data,
 }
 out_buf = (int16_t *)frame->data[0];
 
-init_get_bits(&gb, avpkt->data, avpkt->size * 8);
+bitstream_init(&bc, avpkt->data, avpkt->size * 8);
 
 for (j = 0; j < avpkt->size; j++) {
 int ilow, ihigh, rlow, rhigh, dhigh;
 int xout[2];
 
-ihigh = get_bits(&gb, 2);
-ilow = get_bits(&gb, 6 - skip);
-skip_bits(&gb, skip);
+ihigh = bitstream_read(&bc, 2);
+ilow  = bitstream_read(&bc, 6 - skip);
+bitstream_skip(&bc, skip);
 
 rlow = av_clip_intp2((c->band[0].scale_factor * quantizer_table[ilow] 
>> 10)
   + c->band[0].s_predictor, 14);
diff --git a/libavcodec/g723_1dec.c b/libavcodec/g723_1dec.c
index f50bed1..2ea3bbf 100644
--- a/libavcodec/g723_1dec.c
+++ b/libavcodec/g723_1dec.c
@@ -32,8 +32,8 @@
 #define BITSTREAM_READER_LE
 #include "acelp_vectors.h"
 #include "avcodec.h"
+#include "bitstream.h"
 #include "celp_filters.h"
-#include "get_bits.h"
 #include "internal.h"
 #include "g723_1.h"
 
@@ -68,14 +68,14 @@ static av_cold int g723_1_decode_init(AVCodecContext *avctx)
 static int unpack_bitstream(G723_1_Context *p, const uint8_t *buf,
 int buf_size)
 {
-GetBitContext gb;
+BitstreamContext bc;
 int ad_cb_len;
 int temp, info_bits, i;
 
-init_get_bits(&gb, buf, buf_size * 8);
+bitstream_init(&bc, buf, buf_size * 8);
 
 /* Extract frame type and rate info */
-info_bits = get_bits(&gb, 2);
+info_bits = bitstream_read(&bc, 2);
 
 if (info_bits == 3) {
 p->cur_frame_type = UNTRANSMITTED_FRAME;
@@ -83,13 +83,13 @@ static int unpack_bitstream(G723_1_Context *p, const 
uint8_t *buf,
 }
 
 /* Extract 24 bit lsp indices, 8 bit for each band */
-p->lsp_index[2] = get_bits(&gb, 8);
-p->lsp_index[1] = get_bits(&gb, 8);
-p->lsp_index[0] = get_bits(&gb, 8);
+p->lsp_index[2] = bitstream_read(&bc, 8);
+p->lsp_index[1] = bitstream_read(&bc, 8);
+p->lsp_index[0] = bitstream_read(&bc, 8);
 
 if (info_bits == 2) {
 p->cur_frame_type = SID_FRAME;
-p->subframe[0].amp_index = get_bits(&gb, 6);
+p->subframe[0].amp_index = bitstream_read(&bc, 6);
 return 0;
 }
 
@@ -97,23 +97,23 @@ static int unpack_bitstream(G723_1_Context *p, const 
uint8_t *buf,
 p->cur_rate   = info_bits ? RATE_5300 : RATE_6300;
 p->cur_frame_type = ACTIVE_FRAME;
 
-p->pitch_lag[0] = get_bits(&gb, 7);
+p->pitch_lag[0] = bitstream_read(&bc, 7);
 if (p->pitch_lag[0] > 123)   /* test if forbidden code */
 return -1;
 p->pitch_lag[0] += PITCH_MIN;
-p->subframe[1].ad_cb_lag = get_bits(&gb, 2);
+p->subframe[1].ad_cb_lag = bitstream_read(&bc, 2);
 
-p->pitch_lag[1] = get_bits(&gb, 7);
+p->pitch_lag[1] = bitstream_read(&bc, 7);
 if (p->pitch_lag[1] > 123)
 return -1;
 p->pitch_lag[1] += PITCH_MIN;
-p->subframe[3].ad_cb_lag = get_bits(&gb, 2);
+p->subframe[3].ad_cb_lag = bitstream_read(&bc, 2);
 p->subframe[0].ad_cb_lag = 1;
 p->subframe[2].ad_cb_lag = 1;
 
 for (i = 0; i < SUBFRAMES; i++) {
 /* Extract combined gain */
-temp = get_bits(&gb, 12);
+temp = bitstream_read(&bc, 12);
 ad_cb_len = 170;
 p->subframe[i].

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sun Apr 
10 11:08:09 2016 +0200| [692ba4fe6445581cee4d414ee29538f1dce7fd8e] | committer: 
Anton Khirnov

flashsv: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/flashsv.c | 57 ++--
 1 file changed, 29 insertions(+), 28 deletions(-)

diff --git a/libavcodec/flashsv.c b/libavcodec/flashsv.c
index 2cf8f3f..20fa7bc 100644
--- a/libavcodec/flashsv.c
+++ b/libavcodec/flashsv.c
@@ -38,9 +38,10 @@
 #include 
 
 #include "libavutil/intreadwrite.h"
+
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bytestream.h"
-#include "get_bits.h"
 #include "internal.h"
 
 typedef struct BlockInfo {
@@ -175,7 +176,7 @@ static int flashsv2_prime(FlashSVContext *s, uint8_t *src, 
int size)
 }
 
 static int flashsv_decode_block(AVCodecContext *avctx, AVPacket *avpkt,
-GetBitContext *gb, int block_size,
+BitstreamContext *bc, int block_size,
 int width, int height, int x_pos, int y_pos,
 int blk_idx)
 {
@@ -194,7 +195,7 @@ static int flashsv_decode_block(AVCodecContext *avctx, 
AVPacket *avpkt,
 if (ret < 0)
 return ret;
 }
-s->zstream.next_in   = avpkt->data + get_bits_count(gb) / 8;
+s->zstream.next_in   = avpkt->data + bitstream_tell(bc) / 8;
 s->zstream.avail_in  = block_size;
 s->zstream.next_out  = s->tmpblock;
 s->zstream.avail_out = s->block_size * 3;
@@ -210,7 +211,7 @@ static int flashsv_decode_block(AVCodecContext *avctx, 
AVPacket *avpkt,
 }
 
 if (s->is_keyframe) {
-s->blocks[blk_idx].pos  = s->keyframedata + (get_bits_count(gb) / 8);
+s->blocks[blk_idx].pos  = s->keyframedata + (bitstream_tell(bc) / 8);
 s->blocks[blk_idx].size = block_size;
 }
 
@@ -233,7 +234,7 @@ static int flashsv_decode_block(AVCodecContext *avctx, 
AVPacket *avpkt,
   x_pos, s->diff_height, width,
   s->frame->linesize[0], s->pal);
 }
-skip_bits_long(gb, 8 * block_size); /* skip the consumed bits */
+bitstream_skip(bc, 8 * block_size); /* skip the consumed bits */
 return 0;
 }
 
@@ -259,7 +260,7 @@ static int flashsv_decode_frame(AVCodecContext *avctx, void 
*data,
 int buf_size = avpkt->size;
 FlashSVContext *s = avctx->priv_data;
 int h_blocks, v_blocks, h_part, v_part, i, j, ret;
-GetBitContext gb;
+BitstreamContext bc;
 
 /* no supplementary picture */
 if (buf_size == 0)
@@ -267,21 +268,21 @@ static int flashsv_decode_frame(AVCodecContext *avctx, 
void *data,
 if (buf_size < 4)
 return -1;
 
-init_get_bits(&gb, avpkt->data, buf_size * 8);
+bitstream_init(&bc, avpkt->data, buf_size * 8);
 
 /* start to parse the bitstream */
-s->block_width  = 16 * (get_bits(&gb, 4) + 1);
-s->image_width  = get_bits(&gb, 12);
-s->block_height = 16 * (get_bits(&gb, 4) + 1);
-s->image_height = get_bits(&gb, 12);
+s->block_width  = 16 * (bitstream_read(&bc, 4) + 1);
+s->image_width  = bitstream_read(&bc, 12);
+s->block_height = 16 * (bitstream_read(&bc, 4) + 1);
+s->image_height = bitstream_read(&bc, 12);
 
 if (s->ver == 2) {
-skip_bits(&gb, 6);
-if (get_bits1(&gb)) {
+bitstream_skip(&bc, 6);
+if (bitstream_read_bit(&bc)) {
 avpriv_request_sample(avctx, "iframe");
 return AVERROR_PATCHWELCOME;
 }
-if (get_bits1(&gb)) {
+if (bitstream_read_bit(&bc)) {
 avpriv_request_sample(avctx, "Custom palette");
 return AVERROR_PATCHWELCOME;
 }
@@ -371,7 +372,7 @@ static int flashsv_decode_frame(AVCodecContext *avctx, void 
*data,
 int has_diff = 0;
 
 /* get the size of the compressed zlib chunk */
-int size = get_bits(&gb, 16);
+int size = bitstream_read(&bc, 16);
 
 s->color_depth= 0;
 s->zlibprime_curr = 0;
@@ -379,17 +380,17 @@ static int flashsv_decode_frame(AVCodecContext *avctx, 
void *data,
 s->diff_start = 0;
 s->diff_height= cur_blk_height;
 
-if (8 * size > get_bits_left(&gb)) {
+if (8 * size > bitstream_bits_left(&bc)) {
 av_frame_unref(s->frame);
 return AVERROR_INVALIDDATA;
 }
 
 if (s->ver == 2 && size) {
-skip_bits(&gb, 3);
-s->color_depth= 

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Tue Apr 
12 17:24:55 2016 +0200| [15d4dbfd4ade51eb55737f33236f142f88206d1e] | committer: 
Anton Khirnov

jvdec: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/jvdec.c | 52 ++--
 1 file changed, 26 insertions(+), 26 deletions(-)

diff --git a/libavcodec/jvdec.c b/libavcodec/jvdec.c
index c532b75..37a2770 100644
--- a/libavcodec/jvdec.c
+++ b/libavcodec/jvdec.c
@@ -28,8 +28,8 @@
 #include "libavutil/intreadwrite.h"
 
 #include "avcodec.h"
+#include "bitstream.h"
 #include "blockdsp.h"
-#include "get_bits.h"
 #include "internal.h"
 
 typedef struct JvContext {
@@ -62,84 +62,84 @@ static av_cold int decode_init(AVCodecContext *avctx)
 /**
  * Decode 2x2 block
  */
-static inline void decode2x2(GetBitContext *gb, uint8_t *dst, int linesize)
+static inline void decode2x2(BitstreamContext *bc, uint8_t *dst, int linesize)
 {
 int i, j, v[2];
 
-switch (get_bits(gb, 2)) {
+switch (bitstream_read(bc, 2)) {
 case 1:
-v[0] = get_bits(gb, 8);
+v[0] = bitstream_read(bc, 8);
 for (j = 0; j < 2; j++)
 memset(dst + j * linesize, v[0], 2);
 break;
 case 2:
-v[0] = get_bits(gb, 8);
-v[1] = get_bits(gb, 8);
+v[0] = bitstream_read(bc, 8);
+v[1] = bitstream_read(bc, 8);
 for (j = 0; j < 2; j++)
 for (i = 0; i < 2; i++)
-dst[j * linesize + i] = v[get_bits1(gb)];
+dst[j * linesize + i] = v[bitstream_read_bit(bc)];
 break;
 case 3:
 for (j = 0; j < 2; j++)
 for (i = 0; i < 2; i++)
-dst[j * linesize + i] = get_bits(gb, 8);
+dst[j * linesize + i] = bitstream_read(bc, 8);
 }
 }
 
 /**
  * Decode 4x4 block
  */
-static inline void decode4x4(GetBitContext *gb, uint8_t *dst, int linesize)
+static inline void decode4x4(BitstreamContext *bc, uint8_t *dst, int linesize)
 {
 int i, j, v[2];
 
-switch (get_bits(gb, 2)) {
+switch (bitstream_read(bc, 2)) {
 case 1:
-v[0] = get_bits(gb, 8);
+v[0] = bitstream_read(bc, 8);
 for (j = 0; j < 4; j++)
 memset(dst + j * linesize, v[0], 4);
 break;
 case 2:
-v[0] = get_bits(gb, 8);
-v[1] = get_bits(gb, 8);
+v[0] = bitstream_read(bc, 8);
+v[1] = bitstream_read(bc, 8);
 for (j = 2; j >= 0; j -= 2) {
 for (i = 0; i < 4; i++)
-dst[j * linesize + i] = v[get_bits1(gb)];
+dst[j * linesize + i] = v[bitstream_read_bit(bc)];
 for (i = 0; i < 4; i++)
-dst[(j + 1) * linesize + i] = v[get_bits1(gb)];
+dst[(j + 1) * linesize + i] = v[bitstream_read_bit(bc)];
 }
 break;
 case 3:
 for (j = 0; j < 4; j += 2)
 for (i = 0; i < 4; i += 2)
-decode2x2(gb, dst + j * linesize + i, linesize);
+decode2x2(bc, dst + j * linesize + i, linesize);
 }
 }
 
 /**
  * Decode 8x8 block
  */
-static inline void decode8x8(GetBitContext *gb, uint8_t *dst, int linesize,
+static inline void decode8x8(BitstreamContext *bc, uint8_t *dst, int linesize,
  BlockDSPContext *bdsp)
 {
 int i, j, v[2];
 
-switch (get_bits(gb, 2)) {
+switch (bitstream_read(bc, 2)) {
 case 1:
-v[0] = get_bits(gb, 8);
+v[0] = bitstream_read(bc, 8);
 bdsp->fill_block_tab[1](dst, v[0], linesize, 8);
 break;
 case 2:
-v[0] = get_bits(gb, 8);
-v[1] = get_bits(gb, 8);
+v[0] = bitstream_read(bc, 8);
+v[1] = bitstream_read(bc, 8);
 for (j = 7; j >= 0; j--)
 for (i = 0; i < 8; i++)
-dst[j * linesize + i] = v[get_bits1(gb)];
+dst[j * linesize + i] = v[bitstream_read_bit(bc)];
 break;
 case 3:
 for (j = 0; j < 8; j += 4)
 for (i = 0; i < 8; i += 4)
-decode4x4(gb, dst + j * linesize + i, linesize);
+decode4x4(bc, dst + j * linesize + i, linesize);
 }
 }
 
@@ -163,12 +163,12 @@ static int decode_frame(AVCodecContext *avctx, void 
*data, int *got_frame,
 }
 
 if (video_type == 0 || video_type == 1) {
-GetBitContext gb;
-init_get_bits(&gb, buf, 8 * FFMIN(video_size, buf_end - buf));
+BitstreamContext bc;
+bitstream_init(&bc, buf, 8 * FFMIN(video_size, buf_end - buf));
 
 for (j = 0; j < avctx->height; j += 8)
 for (i = 0; i < avctx->width; i += 8)
-decode8x8(&gb,
+decode8x8(&bc,
  

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Mon Mar 
21 20:46:58 2016 +0100| [b25180801bd0a544e5c49efb92dbe78904289a8a] | committer: 
Anton Khirnov

on2avc: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/on2avc.c | 64 +++--
 1 file changed, 33 insertions(+), 31 deletions(-)

diff --git a/libavcodec/on2avc.c b/libavcodec/on2avc.c
index 2a528c6..1b81980 100644
--- a/libavcodec/on2avc.c
+++ b/libavcodec/on2avc.c
@@ -22,11 +22,13 @@
 
 #include "libavutil/channel_layout.h"
 #include "libavutil/float_dsp.h"
+
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bytestream.h"
 #include "fft.h"
-#include "get_bits.h"
 #include "internal.h"
+#include "vlc.h"
 
 #include "on2avcdata.h"
 
@@ -84,11 +86,11 @@ typedef struct On2AVCContext {
 DECLARE_ALIGNED(32, float, short_win)[ON2AVC_SUBFRAME_SIZE / 8];
 } On2AVCContext;
 
-static void on2avc_read_ms_info(On2AVCContext *c, GetBitContext *gb)
+static void on2avc_read_ms_info(On2AVCContext *c, BitstreamContext *bc)
 {
 int w, b, band_off = 0;
 
-c->ms_present = get_bits1(gb);
+c->ms_present = bitstream_read_bit(bc);
 if (!c->ms_present)
 return;
 for (w = 0; w < c->num_windows; w++) {
@@ -100,12 +102,12 @@ static void on2avc_read_ms_info(On2AVCContext *c, 
GetBitContext *gb)
 continue;
 }
 for (b = 0; b < c->num_bands; b++)
-c->ms_info[band_off++] = get_bits1(gb);
+c->ms_info[band_off++] = bitstream_read_bit(bc);
 }
 }
 
 // do not see Table 17 in ISO/IEC 13818-7
-static int on2avc_decode_band_types(On2AVCContext *c, GetBitContext *gb)
+static int on2avc_decode_band_types(On2AVCContext *c, BitstreamContext *bc)
 {
 int bits_per_sect = c->is_long ? 5 : 3;
 int esc_val = (1 << bits_per_sect) - 1;
@@ -113,10 +115,10 @@ static int on2avc_decode_band_types(On2AVCContext *c, 
GetBitContext *gb)
 int band = 0, i, band_type, run_len, run;
 
 while (band < num_bands) {
-band_type = get_bits(gb, 4);
+band_type = bitstream_read(bc, 4);
 run_len   = 1;
 do {
-run = get_bits(gb, bits_per_sect);
+run = bitstream_read(bc, bits_per_sect);
 run_len += run;
 } while (run == esc_val);
 if (band + run_len > num_bands) {
@@ -135,7 +137,7 @@ static int on2avc_decode_band_types(On2AVCContext *c, 
GetBitContext *gb)
 
 // completely not like Table 18 in ISO/IEC 13818-7
 // (no intensity stereo, different coding for the first coefficient)
-static int on2avc_decode_band_scales(On2AVCContext *c, GetBitContext *gb)
+static int on2avc_decode_band_scales(On2AVCContext *c, BitstreamContext *bc)
 {
 int w, w2, b, scale, first = 1;
 int band_off = 0;
@@ -165,10 +167,10 @@ static int on2avc_decode_band_scales(On2AVCContext *c, 
GetBitContext *gb)
 }
 }
 if (first) {
-scale = get_bits(gb, 7);
+scale = bitstream_read(bc, 7);
 first = 0;
 } else {
-scale += get_vlc2(gb, c->scale_diff.table, 9, 3) - 60;
+scale += bitstream_read_vlc(bc, c->scale_diff.table, 9, 3) - 
60;
 }
 if (scale < 0 || scale > 127) {
 av_log(c->avctx, AV_LOG_ERROR, "Invalid scale value %d\n",
@@ -188,13 +190,13 @@ static inline float on2avc_scale(int v, float scale)
 }
 
 // spectral data is coded completely differently - there are no unsigned 
codebooks
-static int on2avc_decode_quads(On2AVCContext *c, GetBitContext *gb, float *dst,
+static int on2avc_decode_quads(On2AVCContext *c, BitstreamContext *bc, float 
*dst,
int dst_size, int type, float band_scale)
 {
 int i, j, val, val1;
 
 for (i = 0; i < dst_size; i += 4) {
-val = get_vlc2(gb, c->cb_vlc[type].table, 9, 3);
+val = bitstream_read_vlc(bc, c->cb_vlc[type].table, 9, 3);
 
 for (j = 0; j < 4; j++) {
 val1 = sign_extend((val >> (12 - j * 4)) & 0xF, 4);
@@ -205,11 +207,11 @@ static int on2avc_decode_quads(On2AVCContext *c, 
GetBitContext *gb, float *dst,
 return 0;
 }
 
-static inline int get_egolomb(GetBitContext *gb)
+static inline int get_egolomb(BitstreamContext *bc)
 {
 int v = 4;
 
-while (get_bits1(gb)) {
+while (bitstream_read_bit(bc)) {
 v++;
 if (v > 30) {
 av_log(NULL, AV_LOG_WARNING, "Too large golomb code in 
get_egolomb.\n");
@@ -218,27 +220,27 @@ static inline int get_egolomb(GetBitContext *gb)
 }
 }
 
-return (1 << v) + get_bits_long(gb, v);
+   

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sun Apr 
10 11:34:09 2016 +0200| [b2c56301f9458207cfd16c66dc2f3ce15a336651] | committer: 
Anton Khirnov

gsm: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/gsmdec.c  | 11 ++-
 libavcodec/gsmdec_template.c | 34 +-
 libavcodec/msgsmdec.c|  9 +
 3 files changed, 28 insertions(+), 26 deletions(-)

diff --git a/libavcodec/gsmdec.c b/libavcodec/gsmdec.c
index a333e58..d727cf9 100644
--- a/libavcodec/gsmdec.c
+++ b/libavcodec/gsmdec.c
@@ -25,8 +25,9 @@
  */
 
 #include "libavutil/channel_layout.h"
+
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "internal.h"
 #include "msgsmdec.h"
 
@@ -67,7 +68,7 @@ static int gsm_decode_frame(AVCodecContext *avctx, void *data,
 {
 AVFrame *frame = data;
 int res;
-GetBitContext gb;
+BitstreamContext bc;
 const uint8_t *buf = avpkt->data;
 int buf_size = avpkt->size;
 int16_t *samples;
@@ -87,10 +88,10 @@ static int gsm_decode_frame(AVCodecContext *avctx, void 
*data,
 
 switch (avctx->codec_id) {
 case AV_CODEC_ID_GSM:
-init_get_bits(&gb, buf, buf_size * 8);
-if (get_bits(&gb, 4) != 0xd)
+bitstream_init(&bc, buf, buf_size * 8);
+if (bitstream_read(&bc, 4) != 0xd)
 av_log(avctx, AV_LOG_WARNING, "Missing GSM magic!\n");
-res = gsm_decode_block(avctx, samples, &gb, GSM_13000);
+res = gsm_decode_block(avctx, samples, &bc, GSM_13000);
 if (res < 0)
 return res;
 break;
diff --git a/libavcodec/gsmdec_template.c b/libavcodec/gsmdec_template.c
index 2794bd1..7437908 100644
--- a/libavcodec/gsmdec_template.c
+++ b/libavcodec/gsmdec_template.c
@@ -24,17 +24,17 @@
  * GSM decoder
  */
 
-#include "get_bits.h"
+#include "bitstream.h"
 #include "gsm.h"
 #include "gsmdec_data.h"
 
-static void apcm_dequant_add(GetBitContext *gb, int16_t *dst, const int 
*frame_bits)
+static void apcm_dequant_add(BitstreamContext *bc, int16_t *dst, const int 
*frame_bits)
 {
 int i, val;
-int maxidx = get_bits(gb, 6);
+int maxidx = bitstream_read(bc, 6);
 const int16_t *tab = ff_gsm_dequant_tab[maxidx];
 for (i = 0; i < 13; i++) {
-val = get_bits(gb, frame_bits[i]);
+val = bitstream_read(bc, frame_bits[i]);
 dst[3 * i] += tab[ff_gsm_requant_tab[frame_bits[i]][val]];
 }
 }
@@ -120,28 +120,28 @@ static int postprocess(int16_t *data, int msr)
 }
 
 static int gsm_decode_block(AVCodecContext *avctx, int16_t *samples,
-GetBitContext *gb, int mode)
+BitstreamContext *bc, int mode)
 {
 GSMContext *ctx = avctx->priv_data;
 int i;
 int16_t *ref_dst = ctx->ref_buf + 120;
 int *lar = ctx->lar[ctx->lar_idx];
-lar[0] = decode_log_area(get_bits(gb, 6), 13107,  1 << 15);
-lar[1] = decode_log_area(get_bits(gb, 6), 13107,  1 << 15);
-lar[2] = decode_log_area(get_bits(gb, 5), 13107, (1 << 14) + 2048*2);
-lar[3] = decode_log_area(get_bits(gb, 5), 13107, (1 << 14) - 2560*2);
-lar[4] = decode_log_area(get_bits(gb, 4), 19223, (1 << 13) +   94*2);
-lar[5] = decode_log_area(get_bits(gb, 4), 17476, (1 << 13) - 1792*2);
-lar[6] = decode_log_area(get_bits(gb, 3), 31454, (1 << 12) -  341*2);
-lar[7] = decode_log_area(get_bits(gb, 3), 29708, (1 << 12) - 1144*2);
+lar[0] = decode_log_area(bitstream_read(bc, 6), 13107,  1 << 15);
+lar[1] = decode_log_area(bitstream_read(bc, 6), 13107,  1 << 15);
+lar[2] = decode_log_area(bitstream_read(bc, 5), 13107, (1 << 14) + 2048 * 
2);
+lar[3] = decode_log_area(bitstream_read(bc, 5), 13107, (1 << 14) - 2560 * 
2);
+lar[4] = decode_log_area(bitstream_read(bc, 4), 19223, (1 << 13) +   94 * 
2);
+lar[5] = decode_log_area(bitstream_read(bc, 4), 17476, (1 << 13) - 1792 * 
2);
+lar[6] = decode_log_area(bitstream_read(bc, 3), 31454, (1 << 12) -  341 * 
2);
+lar[7] = decode_log_area(bitstream_read(bc, 3), 29708, (1 << 12) - 1144 * 
2);
 
 for (i = 0; i < 4; i++) {
-int lag  = get_bits(gb, 7);
-int gain_idx = get_bits(gb, 2);
-int offset   = get_bits(gb, 2);
+int lag  = bitstream_read(bc, 7);
+int gain_idx = bitstream_read(bc, 2);
+int offset   = bitstream_read(bc, 2);
 lag = av_clip(lag, 40, 120);
 long_term_synth(ref_dst, lag, gain_idx);
-apcm_dequant_add(gb, ref_dst + offset, ff_gsm_apcm_bits[mode][i]);
+apcm_dequant_add(bc, ref_dst + offset, ff_gsm_apcm_bits[mode][i]);
   

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Tue Apr 
12 18:28:14 2016 +0200| [b3441350fadee0703eb935262c77dfb5c6269c38] | committer: 
Anton Khirnov

opus: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/opus.h| 6 +++---
 libavcodec/opusdec.c | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/libavcodec/opus.h b/libavcodec/opus.h
index 55c91fa..fbf67c9 100644
--- a/libavcodec/opus.h
+++ b/libavcodec/opus.h
@@ -32,7 +32,7 @@
 #include "libavresample/avresample.h"
 
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 
 #define MAX_FRAME_SIZE   1275
 #define MAX_FRAMES   48
@@ -92,7 +92,7 @@ typedef struct RawBitsContext {
 } RawBitsContext;
 
 typedef struct OpusRangeCoder {
-GetBitContext gb;
+BitstreamContext bc;
 RawBitsContext rb;
 unsigned int range;
 unsigned int value;
@@ -196,7 +196,7 @@ typedef struct OpusContext {
 static av_always_inline void opus_rc_normalize(OpusRangeCoder *rc)
 {
 while (rc->range <= 1<<23) {
-rc->value = ((rc->value << 8) | (get_bits(&rc->gb, 8) ^ 0xFF)) & ((1u 
<< 31) - 1);
+rc->value = ((rc->value << 8) | (bitstream_read(&rc->bc, 8) ^ 0xFF)) & 
((1u << 31) - 1);
 rc->range  <<= 8;
 rc->total_read_bits += 8;
 }
diff --git a/libavcodec/opusdec.c b/libavcodec/opusdec.c
index 92e651c..163f0d5 100644
--- a/libavcodec/opusdec.c
+++ b/libavcodec/opusdec.c
@@ -43,9 +43,9 @@
 #include "libavresample/avresample.h"
 
 #include "avcodec.h"
+#include "bitstream.h"
 #include "celp_filters.h"
 #include "fft.h"
-#include "get_bits.h"
 #include "internal.h"
 #include "mathops.h"
 #include "opus.h"
@@ -80,12 +80,12 @@ static int get_silk_samplerate(int config)
  */
 static int opus_rc_init(OpusRangeCoder *rc, const uint8_t *data, int size)
 {
-int ret = init_get_bits8(&rc->gb, data, size);
+int ret = bitstream_init8(&rc->bc, data, size);
 if (ret < 0)
 return ret;
 
 rc->range = 128;
-rc->value = 127 - get_bits(&rc->gb, 7);
+rc->value = 127 - bitstream_read(&rc->bc, 7);
 rc->total_read_bits = 9;
 opus_rc_normalize(rc);
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr  
9 14:47:04 2016 +0200| [edd4c19a781124cbdb3598f94ec3a0d9ff7058cd] | committer: 
Anton Khirnov

atrac3plus: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/atrac3plus.c| 525 +++--
 libavcodec/atrac3plus.h|   7 +-
 libavcodec/atrac3plusdec.c |  15 +-
 3 files changed, 275 insertions(+), 272 deletions(-)

diff --git a/libavcodec/atrac3plus.c b/libavcodec/atrac3plus.c
index 076fb84..2731a80 100644
--- a/libavcodec/atrac3plus.c
+++ b/libavcodec/atrac3plus.c
@@ -26,8 +26,9 @@
  */
 
 #include "libavutil/avassert.h"
+
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "atrac3plus.h"
 #include "atrac3plus_data.h"
 
@@ -212,20 +213,20 @@ av_cold void ff_atrac3p_init_vlcs(AVCodec *codec)
 /**
  * Decode number of coded quantization units.
  *
- * @param[in] gbthe GetBit context
+ * @param[in] bcthe Bitstream context
  * @param[in,out] chan  ptr to the channel parameters
  * @param[in,out] ctx   ptr to the channel unit context
  * @param[in] avctx ptr to the AVCodecContext
  * @return result code: 0 = OK, otherwise - error code
  */
-static int num_coded_units(GetBitContext *gb, Atrac3pChanParams *chan,
+static int num_coded_units(BitstreamContext *bc, Atrac3pChanParams *chan,
Atrac3pChanUnitCtx *ctx, AVCodecContext *avctx)
 {
-chan->fill_mode = get_bits(gb, 2);
+chan->fill_mode = bitstream_read(bc, 2);
 if (!chan->fill_mode) {
 chan->num_coded_vals = ctx->num_quant_units;
 } else {
-chan->num_coded_vals = get_bits(gb, 5);
+chan->num_coded_vals = bitstream_read(bc, 5);
 if (chan->num_coded_vals > ctx->num_quant_units) {
 av_log(avctx, AV_LOG_ERROR,
"Invalid number of transmitted units!\n");
@@ -233,7 +234,7 @@ static int num_coded_units(GetBitContext *gb, 
Atrac3pChanParams *chan,
 }
 
 if (chan->fill_mode == 3)
-chan->split_point = get_bits(gb, 2) + (chan->ch_num << 1) + 1;
+chan->split_point = bitstream_read(bc, 2) + (chan->ch_num << 1) + 
1;
 }
 
 return 0;
@@ -318,21 +319,21 @@ static inline void unpack_vq_shape(int start_val, const 
int8_t *shape_vec,
 }
 }
 
-#define UNPACK_SF_VQ_SHAPE(gb, dst, num_vals)\
-start_val = get_bits((gb), 6);   \
-unpack_vq_shape(start_val, &atrac3p_sf_shapes[get_bits((gb), 6)][0], \
+#define UNPACK_SF_VQ_SHAPE(bc, dst, num_vals)  
\
+start_val = bitstream_read((bc), 6);   
\
+unpack_vq_shape(start_val, &atrac3p_sf_shapes[bitstream_read((bc), 6)][0], 
\
 (dst), (num_vals))
 
 /**
  * Decode word length for each quantization unit of a channel.
  *
- * @param[in] gbthe GetBit context
+ * @param[in] bcthe Bitstream context
  * @param[in,out] ctx   ptr to the channel unit context
  * @param[in] ch_numchannel to process
  * @param[in] avctx ptr to the AVCodecContext
  * @return result code: 0 = OK, otherwise - error code
  */
-static int decode_channel_wordlen(GetBitContext *gb, Atrac3pChanUnitCtx *ctx,
+static int decode_channel_wordlen(BitstreamContext *bc, Atrac3pChanUnitCtx 
*ctx,
   int ch_num, AVCodecContext *avctx)
 {
 int i, weight_idx = 0, delta, diff, pos, delta_bits, min_val, flag,
@@ -343,107 +344,107 @@ static int decode_channel_wordlen(GetBitContext *gb, 
Atrac3pChanUnitCtx *ctx,
 
 chan->fill_mode = 0;
 
-switch (get_bits(gb, 2)) { /* switch according to coding mode */
+switch (bitstream_read(bc, 2)) { /* switch according to coding mode */
 case 0: /* coded using constant number of bits */
 for (i = 0; i < ctx->num_quant_units; i++)
-chan->qu_wordlen[i] = get_bits(gb, 3);
+chan->qu_wordlen[i] = bitstream_read(bc, 3);
 break;
 case 1:
 if (ch_num) {
-if ((ret = num_coded_units(gb, chan, ctx, avctx)) < 0)
+if ((ret = num_coded_units(bc, chan, ctx, avctx)) < 0)
 return ret;
 
 if (chan->num_coded_vals) {
-vlc_tab = &wl_vlc_tabs[get_bits(gb, 2)];
+vlc_tab = &wl_vlc_tabs[bitstream_read(bc, 2)];
 
 for (i = 0; i < chan->num_coded_vals; i++) {
-delta = get_vlc2(gb, vlc_tab->table, vlc_tab->bits, 1);
+delta = bitstream_read_vlc(bc, vlc_tab->

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr  
9 15:51:58 2016 +0200| [dae9b0b9c6dbe3349b6350fd02d60810660e7bf6] | committer: 
Anton Khirnov

avs: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/avs.c | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/libavcodec/avs.c b/libavcodec/avs.c
index 0d127f8..bea01a2 100644
--- a/libavcodec/avs.c
+++ b/libavcodec/avs.c
@@ -20,7 +20,7 @@
  */
 
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "internal.h"
 
 typedef struct AvsContext {
@@ -57,7 +57,7 @@ avs_decode_frame(AVCodecContext * avctx,
 int i, j, x, y, stride, ret, vect_w = 3, vect_h = 3;
 AvsVideoSubType sub_type;
 AvsBlockType type;
-GetBitContext change_map;
+BitstreamContext change_map;
 
 if ((ret = ff_reget_buffer(avctx, p)) < 0) {
 av_log(avctx, AV_LOG_ERROR, "reget_buffer() failed\n");
@@ -125,13 +125,13 @@ avs_decode_frame(AVCodecContext * avctx,
 int map_size = ((318 / vect_w + 7) / 8) * (198 / vect_h);
 if (buf_end - table < map_size)
 return AVERROR_INVALIDDATA;
-init_get_bits(&change_map, table, map_size * 8);
+bitstream_init(&change_map, table, map_size * 8);
 table += map_size;
 }
 
 for (y=0; y<198; y+=vect_h) {
 for (x=0; x<318; x+=vect_w) {
-if (sub_type == AVS_I_FRAME || get_bits1(&change_map)) {
+if (sub_type == AVS_I_FRAME || bitstream_read_bit(&change_map)) {
 if (buf_end - table < 1)
 return AVERROR_INVALIDDATA;
 vect = &buf[*table++ * (vect_w * vect_h)];
@@ -145,7 +145,7 @@ avs_decode_frame(AVCodecContext * avctx,
 }
 }
 if (sub_type != AVS_I_FRAME)
-align_get_bits(&change_map);
+bitstream_align(&change_map);
 }
 
 if ((ret = av_frame_ref(picture, p)) < 0)

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Tue Apr 
12 18:24:27 2016 +0200| [6f94a64bd6ae14d592835369a954e1378b79d786] | committer: 
Anton Khirnov

nellymoser: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/nellymoserdec.c | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/libavcodec/nellymoserdec.c b/libavcodec/nellymoserdec.c
index 355935f..390872c 100644
--- a/libavcodec/nellymoserdec.c
+++ b/libavcodec/nellymoserdec.c
@@ -38,8 +38,8 @@
 
 #define BITSTREAM_READER_LE
 #include "avcodec.h"
+#include "bitstream.h"
 #include "fft.h"
-#include "get_bits.h"
 #include "internal.h"
 #include "nellymoser.h"
 #include "sinewin.h"
@@ -48,7 +48,7 @@
 typedef struct NellyMoserDecodeContext {
 AVCodecContext* avctx;
 AVLFG   random_state;
-GetBitContext   gb;
+BitstreamContext bc;
 float   scale_bias;
 AVFloatDSPContext fdsp;
 FFTContext  imdct_ctx;
@@ -67,14 +67,14 @@ static void nelly_decode_block(NellyMoserDecodeContext *s,
 int bits[NELLY_BUF_LEN];
 unsigned char v;
 
-init_get_bits(&s->gb, block, NELLY_BLOCK_LEN * 8);
+bitstream_init(&s->bc, block, NELLY_BLOCK_LEN * 8);
 
 bptr = buf;
 pptr = pows;
-val = ff_nelly_init_table[get_bits(&s->gb, 6)];
+val = ff_nelly_init_table[bitstream_read(&s->bc, 6)];
 for (i=0 ; i 0)
-val += ff_nelly_delta_table[get_bits(&s->gb, 5)];
+val += ff_nelly_delta_table[bitstream_read(&s->bc, 5)];
 pval = -pow(2, val/2048) * s->scale_bias;
 for (j = 0; j < ff_nelly_band_sizes_table[i]; j++) {
 *bptr++ = val;
@@ -88,8 +88,8 @@ static void nelly_decode_block(NellyMoserDecodeContext *s,
 for (i = 0; i < 2; i++) {
 aptr = audio + i * NELLY_BUF_LEN;
 
-init_get_bits(&s->gb, block, NELLY_BLOCK_LEN * 8);
-skip_bits_long(&s->gb, NELLY_HEADER_BITS + i*NELLY_DETAIL_BITS);
+bitstream_init(&s->bc, block, NELLY_BLOCK_LEN * 8);
+bitstream_skip(&s->bc, NELLY_HEADER_BITS + i * NELLY_DETAIL_BITS);
 
 for (j = 0; j < NELLY_FILL_LEN; j++) {
 if (bits[j] <= 0) {
@@ -97,7 +97,7 @@ static void nelly_decode_block(NellyMoserDecodeContext *s,
 if (av_lfg_get(&s->random_state) & 1)
 aptr[j] *= -1.0;
 } else {
-v = get_bits(&s->gb, bits[j]);
+v = bitstream_read(&s->bc, bits[j]);
 aptr[j] = 
ff_nelly_dequantization_table[(1<http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


[FFmpeg-cvslog] adpcm: Convert to the new bitstream header

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Thu Apr  
7 21:38:52 2016 +0200| [012c4511539f9f8e252c49d08c7e528973a22193] | committer: 
Anton Khirnov

adpcm: Convert to the new bitstream header

Signed-off-by: Anton Khirnov 

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

 libavcodec/adpcm.c | 20 +++-
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c
index 3ab16dd..fe51c0d 100644
--- a/libavcodec/adpcm.c
+++ b/libavcodec/adpcm.c
@@ -29,8 +29,9 @@
  * License along with Libav; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
+
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "put_bits.h"
 #include "bytestream.h"
 #include "adpcm.h"
@@ -366,32 +367,33 @@ static int xa_decode(AVCodecContext *avctx, int16_t 
*out0, int16_t *out1,
 static void adpcm_swf_decode(AVCodecContext *avctx, const uint8_t *buf, int 
buf_size, int16_t *samples)
 {
 ADPCMDecodeContext *c = avctx->priv_data;
-GetBitContext gb;
+BitstreamContext bc;
 const int *table;
 int k0, signmask, nb_bits, count;
 int size = buf_size*8;
 int i;
 
-init_get_bits(&gb, buf, size);
+bitstream_init(&bc, buf, size);
 
 //read bits & initial values
-nb_bits = get_bits(&gb, 2)+2;
+nb_bits = bitstream_read(&bc, 2)+2;
 table = swf_index_tables[nb_bits-2];
 k0 = 1 << (nb_bits-2);
 signmask = 1 << (nb_bits-1);
 
-while (get_bits_count(&gb) <= size - 22*avctx->channels) {
+while (bitstream_tell(&bc) <= size - 22 * avctx->channels) {
 for (i = 0; i < avctx->channels; i++) {
-*samples++ = c->status[i].predictor = get_sbits(&gb, 16);
-c->status[i].step_index = get_bits(&gb, 6);
+*samples++  =
+c->status[i].predictor  = bitstream_read_signed(&bc, 16);
+c->status[i].step_index = bitstream_read(&bc, 6);
 }
 
-for (count = 0; get_bits_count(&gb) <= size - nb_bits*avctx->channels 
&& count < 4095; count++) {
+for (count = 0; bitstream_tell(&bc) <= size - nb_bits * 
avctx->channels && count < 4095; count++) {
 int i;
 
 for (i = 0; i < avctx->channels; i++) {
 // similar to IMA adpcm
-int delta = get_bits(&gb, nb_bits);
+int delta = bitstream_read(&bc, nb_bits);
 int step = ff_adpcm_step_table[c->status[i].step_index];
 long vpdiff = 0; // vpdiff = (delta+0.5)*step/4
 int k = k0;

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Fri Apr  
8 20:13:19 2016 +0200| [41679be1a2d82847a834a839356dfddc162bbb3e] | committer: 
Anton Khirnov

asvdec: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/asv.h|  4 ++--
 libavcodec/asvdec.c | 54 ++---
 2 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/libavcodec/asv.h b/libavcodec/asv.h
index 18f7a95..7c4e4fd 100644
--- a/libavcodec/asv.h
+++ b/libavcodec/asv.h
@@ -31,11 +31,11 @@
 #include "libavutil/mem.h"
 
 #include "avcodec.h"
+#include "bitstream.h"
 #include "blockdsp.h"
 #include "bswapdsp.h"
 #include "fdctdsp.h"
 #include "idctdsp.h"
-#include "get_bits.h"
 #include "pixblockdsp.h"
 #include "put_bits.h"
 
@@ -47,7 +47,7 @@ typedef struct ASV1Context {
 IDCTDSPContext idsp;
 PixblockDSPContext pdsp;
 PutBitContext pb;
-GetBitContext gb;
+BitstreamContext bc;
 ScanTable scantable;
 int inv_qscale;
 int mb_width;
diff --git a/libavcodec/asvdec.c b/libavcodec/asvdec.c
index f17f064..cbda63d 100644
--- a/libavcodec/asvdec.c
+++ b/libavcodec/asvdec.c
@@ -70,27 +70,27 @@ static av_cold void init_vlcs(ASV1Context *a)
 }
 
 // FIXME write a reversed bitstream reader to avoid the double reverse
-static inline int asv2_get_bits(GetBitContext *gb, int n)
+static inline int asv2_get_bits(BitstreamContext *bc, int n)
 {
-return ff_reverse[get_bits(gb, n) << (8 - n)];
+return ff_reverse[bitstream_read(bc, n) << (8 - n)];
 }
 
-static inline int asv1_get_level(GetBitContext *gb)
+static inline int asv1_get_level(BitstreamContext *bc)
 {
-int code = get_vlc2(gb, level_vlc.table, VLC_BITS, 1);
+int code = bitstream_read_vlc(bc, level_vlc.table, VLC_BITS, 1);
 
 if (code == 3)
-return get_sbits(gb, 8);
+return bitstream_read_signed(bc, 8);
 else
 return code - 3;
 }
 
-static inline int asv2_get_level(GetBitContext *gb)
+static inline int asv2_get_level(BitstreamContext *bc)
 {
-int code = get_vlc2(gb, asv2_level_vlc.table, ASV2_LEVEL_VLC_BITS, 1);
+int code = bitstream_read_vlc(bc, asv2_level_vlc.table, 
ASV2_LEVEL_VLC_BITS, 1);
 
 if (code == 31)
-return (int8_t) asv2_get_bits(gb, 8);
+return (int8_t) asv2_get_bits(bc, 8);
 else
 return code - 31;
 }
@@ -99,10 +99,10 @@ static inline int asv1_decode_block(ASV1Context *a, int16_t 
block[64])
 {
 int i;
 
-block[0] = 8 * get_bits(&a->gb, 8);
+block[0] = 8 * bitstream_read(&a->bc, 8);
 
 for (i = 0; i < 11; i++) {
-const int ccp = get_vlc2(&a->gb, ccp_vlc.table, VLC_BITS, 1);
+const int ccp = bitstream_read_vlc(&a->bc, ccp_vlc.table, VLC_BITS, 1);
 
 if (ccp) {
 if (ccp == 16)
@@ -113,13 +113,13 @@ static inline int asv1_decode_block(ASV1Context *a, 
int16_t block[64])
 }
 
 if (ccp & 8)
-block[a->scantable.permutated[4 * i + 0]] = 
(asv1_get_level(&a->gb) * a->intra_matrix[4 * i + 0]) >> 4;
+block[a->scantable.permutated[4 * i + 0]] = 
(asv1_get_level(&a->bc) * a->intra_matrix[4 * i + 0]) >> 4;
 if (ccp & 4)
-block[a->scantable.permutated[4 * i + 1]] = 
(asv1_get_level(&a->gb) * a->intra_matrix[4 * i + 1]) >> 4;
+block[a->scantable.permutated[4 * i + 1]] = 
(asv1_get_level(&a->bc) * a->intra_matrix[4 * i + 1]) >> 4;
 if (ccp & 2)
-block[a->scantable.permutated[4 * i + 2]] = 
(asv1_get_level(&a->gb) * a->intra_matrix[4 * i + 2]) >> 4;
+block[a->scantable.permutated[4 * i + 2]] = 
(asv1_get_level(&a->bc) * a->intra_matrix[4 * i + 2]) >> 4;
 if (ccp & 1)
-block[a->scantable.permutated[4 * i + 3]] = 
(asv1_get_level(&a->gb) * a->intra_matrix[4 * i + 3]) >> 4;
+block[a->scantable.permutated[4 * i + 3]] = 
(asv1_get_level(&a->bc) * a->intra_matrix[4 * i + 3]) >> 4;
 }
 }
 
@@ -130,32 +130,32 @@ static inline int asv2_decode_block(ASV1Context *a, 
int16_t block[64])
 {
 int i, count, ccp;
 
-count = asv2_get_bits(&a->gb, 4);
+count = asv2_get_bits(&a->bc, 4);
 
-block[0] = 8 * asv2_get_bits(&a->gb, 8);
+block[0] = 8 * asv2_get_bits(&a->bc, 8);
 
-ccp = get_vlc2(&a->gb, dc_ccp_vlc.table, VLC_BITS, 1);
+ccp = bitstream_read_vlc(&a->bc, dc_ccp_vlc.table, VLC_BITS, 1);
 if (ccp) {
 if (ccp & 4)
-block[a->scantable.permutated[1]] = (asv2_get_level(

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr  
9 20:31:47 2016 +0200| [7d957b3f477a8cb333f8ef2697c9aa5363ad0c9f] | committer: 
Anton Khirnov

ea: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/eatgq.c | 34 +-
 libavcodec/eatgv.c | 22 +++---
 2 files changed, 28 insertions(+), 28 deletions(-)

diff --git a/libavcodec/eatgq.c b/libavcodec/eatgq.c
index 8355471..9abedcc 100644
--- a/libavcodec/eatgq.c
+++ b/libavcodec/eatgq.c
@@ -31,9 +31,9 @@
 #define BITSTREAM_READER_LE
 #include "aandcttab.h"
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bytestream.h"
 #include "eaidct.h"
-#include "get_bits.h"
 #include "idctdsp.h"
 #include "internal.h"
 
@@ -58,44 +58,44 @@ static av_cold int tgq_decode_init(AVCodecContext *avctx)
 return 0;
 }
 
-static void tgq_decode_block(TgqContext *s, int16_t block[64], GetBitContext 
*gb)
+static void tgq_decode_block(TgqContext *s, int16_t block[64], 
BitstreamContext *bc)
 {
 uint8_t *perm = s->scantable.permutated;
 int i, j, value;
-block[0] = get_sbits(gb, 8) * s->qtable[0];
+block[0] = bitstream_read_signed(bc, 8) * s->qtable[0];
 for (i = 1; i < 64;) {
-switch (show_bits(gb, 3)) {
+switch (bitstream_peek(bc, 3)) {
 case 4:
 block[perm[i++]] = 0;
 case 0:
 block[perm[i++]] = 0;
-skip_bits(gb, 3);
+bitstream_skip(bc, 3);
 break;
 case 5:
 case 1:
-skip_bits(gb, 2);
-value = get_bits(gb, 6);
+bitstream_skip(bc, 2);
+value = bitstream_read(bc, 6);
 for (j = 0; j < value; j++)
 block[perm[i++]] = 0;
 break;
 case 6:
-skip_bits(gb, 3);
+bitstream_skip(bc, 3);
 block[perm[i]] = -s->qtable[perm[i]];
 i++;
 break;
 case 2:
-skip_bits(gb, 3);
+bitstream_skip(bc, 3);
 block[perm[i]] = s->qtable[perm[i]];
 i++;
 break;
 case 7: // 111b
 case 3: // 011b
-skip_bits(gb, 2);
-if (show_bits(gb, 6) == 0x3F) {
-skip_bits(gb, 6);
-block[perm[i]] = get_sbits(gb, 8) * s->qtable[perm[i]];
+bitstream_skip(bc, 2);
+if (bitstream_peek(bc, 6) == 0x3F) {
+bitstream_skip(bc, 6);
+block[perm[i]] = bitstream_read_signed(bc, 8) * 
s->qtable[perm[i]];
 } else {
-block[perm[i]] = get_sbits(gb, 6) * s->qtable[perm[i]];
+block[perm[i]] = bitstream_read_signed(bc, 6) * 
s->qtable[perm[i]];
 }
 i++;
 break;
@@ -156,10 +156,10 @@ static void tgq_decode_mb(TgqContext *s, AVFrame *frame, 
int mb_y, int mb_x)
 
 mode = bytestream2_get_byte(&s->gb);
 if (mode > 12) {
-GetBitContext gb;
-init_get_bits(&gb, s->gb.buffer, FFMIN(s->gb.buffer_end - 
s->gb.buffer, mode) * 8);
+BitstreamContext bc;
+bitstream_init(&bc, s->gb.buffer, FFMIN(s->gb.buffer_end - 
s->gb.buffer, mode) * 8);
 for (i = 0; i < 6; i++)
-tgq_decode_block(s, s->block[i], &gb);
+tgq_decode_block(s, s->block[i], &bc);
 tgq_idct_put_mb(s, s->block, frame, mb_x, mb_y);
 bytestream2_skip(&s->gb, mode);
 } else {
diff --git a/libavcodec/eatgv.c b/libavcodec/eatgv.c
index 7a50d01..549b5b6 100644
--- a/libavcodec/eatgv.c
+++ b/libavcodec/eatgv.c
@@ -33,7 +33,7 @@
 
 #define BITSTREAM_READER_LE
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "internal.h"
 
 #define EA_PREAMBLE_SIZE8
@@ -153,7 +153,7 @@ static int tgv_decode_inter(TgvContext *s, AVFrame *frame,
 int num_blocks_packed;
 int vector_bits;
 int i,j,x,y;
-GetBitContext gb;
+BitstreamContext bc;
 int mvbits;
 const uint8_t *blocks_raw;
 
@@ -166,7 +166,7 @@ static int tgv_decode_inter(TgvContext *s, AVFrame *frame,
 vector_bits   = AV_RL16(&buf[6]);
 buf += 12;
 
-if (vector_bits > MIN_CACHE_BITS || !vector_bits) {
+if (vector_bits > 32 || !vector_bits) {
 av_log(s->avctx, AV_LOG_ERROR,
"Invalid value for motion vector bits: %d\n", vector_bits);
 return AVERROR_INVALIDDATA;
@@ -195,10 +195,10 @@ static int tgv_decode_inter(TgvContext *s, AVFrame *frame,
 if (buf + (mvbits >> 3) + 16 * num_blocks_raw + 8 * num_blocks_packed > 
buf_end)
 return AVERROR_INVALIDDAT

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Tue Apr 
12 18:50:57 2016 +0200| [0b5a26e8bcd219efe5da3a6d39b588fabf91f2b9] | committer: 
Anton Khirnov

qdm2: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/qdm2.c | 200 +++---
 1 file changed, 100 insertions(+), 100 deletions(-)

diff --git a/libavcodec/qdm2.c b/libavcodec/qdm2.c
index 7a7c149..781999a 100644
--- a/libavcodec/qdm2.c
+++ b/libavcodec/qdm2.c
@@ -39,7 +39,7 @@
 
 #define BITSTREAM_READER_LE
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "internal.h"
 #include "mpegaudio.h"
 #include "mpegaudiodsp.h"
@@ -361,31 +361,31 @@ static av_cold void qdm2_init_vlc(void)
  INIT_VLC_USE_NEW_STATIC | INIT_VLC_LE);
 }
 
-static int qdm2_get_vlc(GetBitContext *gb, VLC *vlc, int flag, int depth)
+static int qdm2_get_vlc(BitstreamContext *bc, VLC *vlc, int flag, int depth)
 {
 int value;
 
-value = get_vlc2(gb, vlc->table, vlc->bits, depth);
+value = bitstream_read_vlc(bc, vlc->table, vlc->bits, depth);
 
 /* stage-2, 3 bits exponent escape sequence */
 if (value-- == 0)
-value = get_bits(gb, get_bits(gb, 3) + 1);
+value = bitstream_read(bc, bitstream_read(bc, 3) + 1);
 
 /* stage-3, optional */
 if (flag) {
 int tmp = vlc_stage3_values[value];
 
 if ((value & ~3) > 0)
-tmp += get_bits(gb, (value >> 2));
+tmp += bitstream_read(bc, value >> 2);
 value = tmp;
 }
 
 return value;
 }
 
-static int qdm2_get_se_vlc(VLC *vlc, GetBitContext *gb, int depth)
+static int qdm2_get_se_vlc(VLC *vlc, BitstreamContext *bc, int depth)
 {
-int value = qdm2_get_vlc(gb, vlc, 0, depth);
+int value = qdm2_get_vlc(bc, vlc, 0, depth);
 
 return (value & 1) ? ((value + 1) >> 1) : -(value >> 1);
 }
@@ -412,35 +412,35 @@ static uint16_t qdm2_packet_checksum(const uint8_t *data, 
int length, int value)
 /**
  * Fill a QDM2SubPacket structure with packet type, size, and data pointer.
  *
- * @param gbbitreader context
+ * @param bcbitreader context
  * @param sub_packetpacket under analysis
  */
-static void qdm2_decode_sub_packet_header(GetBitContext *gb,
+static void qdm2_decode_sub_packet_header(BitstreamContext *bc,
   QDM2SubPacket *sub_packet)
 {
-sub_packet->type = get_bits(gb, 8);
+sub_packet->type = bitstream_read(bc, 8);
 
 if (sub_packet->type == 0) {
 sub_packet->size = 0;
 sub_packet->data = NULL;
 } else {
-sub_packet->size = get_bits(gb, 8);
+sub_packet->size = bitstream_read(bc, 8);
 
 if (sub_packet->type & 0x80) {
 sub_packet->size <<= 8;
-sub_packet->size  |= get_bits(gb, 8);
+sub_packet->size  |= bitstream_read(bc, 8);
 sub_packet->type  &= 0x7f;
 }
 
 if (sub_packet->type == 0x7f)
-sub_packet->type |= (get_bits(gb, 8) << 8);
+sub_packet->type |= bitstream_read(bc, 8) << 8;
 
 // FIXME: this depends on bitreader-internal data
-sub_packet->data = &gb->buffer[get_bits_count(gb) / 8];
+sub_packet->data = &bc->buffer[bitstream_tell(bc) / 8];
 }
 
 av_log(NULL, AV_LOG_DEBUG, "Subpacket: type=%d size=%d start_offs=%x\n",
-   sub_packet->type, sub_packet->size, get_bits_count(gb) / 8);
+   sub_packet->type, sub_packet->size, bitstream_tell(bc) / 8);
 }
 
 /**
@@ -799,12 +799,12 @@ static void fill_coding_method_array(sb_int8_array 
tone_level_idx,
  * sb 8-sb_used.
  *
  * @param q context
- * @param gbbitreader context
+ * @param bcbitreader context
  * @param lengthpacket length in bits
  * @param sb_minlower subband processed (sb_min included)
  * @param sb_maxhigher subband processed (sb_max excluded)
  */
-static void synthfilt_build_sb_samples(QDM2Context *q, GetBitContext *gb,
+static void synthfilt_build_sb_samples(QDM2Context *q, BitstreamContext *bc,
int length, int sb_min, int sb_max)
 {
 int sb, j, k, n, ch, run, channels;
@@ -830,12 +830,12 @@ static void synthfilt_build_sb_samples(QDM2Context *q, 
GetBitContext *gb,
 else if (sb >= 24)
 joined_stereo = 1;
 else
-joined_stereo = (get_bits_left(gb) >= 1) ? get_bits1(gb) : 0;
+joined_stereo = (bitstream_bits_left(bc) >= 1) ? 
bitstream_read_bit(bc) : 0;
 
 if (joined_stereo) {
-if (get_bits_left(gb) >= 16)
+if (bitstream_b

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sun Apr 
17 17:06:09 2016 +0200| [027211920222b2b63ca07d712b3771a14add9aab] | committer: 
Anton Khirnov

atrac: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/atrac1.c | 34 ++-
 libavcodec/atrac3.c | 97 +++--
 2 files changed, 67 insertions(+), 64 deletions(-)

diff --git a/libavcodec/atrac1.c b/libavcodec/atrac1.c
index e938976..60be853 100644
--- a/libavcodec/atrac1.c
+++ b/libavcodec/atrac1.c
@@ -33,8 +33,9 @@
 #include 
 
 #include "libavutil/float_dsp.h"
+
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "fft.h"
 #include "internal.h"
 #include "sinewin.h"
@@ -164,30 +165,31 @@ static int at1_imdct_block(AT1SUCtx* su, AT1Ctx *q)
  * Parse the block size mode byte
  */
 
-static int at1_parse_bsm(GetBitContext* gb, int log2_block_cnt[AT1_QMF_BANDS])
+static int at1_parse_bsm(BitstreamContext *bc,
+ int log2_block_cnt[AT1_QMF_BANDS])
 {
 int log2_block_count_tmp, i;
 
 for (i = 0; i < 2; i++) {
 /* low and mid band */
-log2_block_count_tmp = get_bits(gb, 2);
+log2_block_count_tmp = bitstream_read(bc, 2);
 if (log2_block_count_tmp & 1)
 return AVERROR_INVALIDDATA;
 log2_block_cnt[i] = 2 - log2_block_count_tmp;
 }
 
 /* high band */
-log2_block_count_tmp = get_bits(gb, 2);
+log2_block_count_tmp = bitstream_read(bc, 2);
 if (log2_block_count_tmp != 0 && log2_block_count_tmp != 3)
 return AVERROR_INVALIDDATA;
 log2_block_cnt[IDX_HIGH_BAND] = 3 - log2_block_count_tmp;
 
-skip_bits(gb, 2);
+bitstream_skip(bc, 2);
 return 0;
 }
 
 
-static int at1_unpack_dequant(GetBitContext* gb, AT1SUCtx* su,
+static int at1_unpack_dequant(BitstreamContext *bc, AT1SUCtx *su,
   float spec[AT1_SU_SAMPLES])
 {
 int bits_used, band_num, bfu_num, i;
@@ -195,22 +197,22 @@ static int at1_unpack_dequant(GetBitContext* gb, 
AT1SUCtx* su,
 uint8_t idsfs[AT1_MAX_BFU]; ///< the scalefactor indexes 
for each BFU
 
 /* parse the info byte (2nd byte) telling how much BFUs were coded */
-su->num_bfus = bfu_amount_tab1[get_bits(gb, 3)];
+su->num_bfus = bfu_amount_tab1[bitstream_read(bc, 3)];
 
 /* calc number of consumed bits:
 num_BFUs * (idwl(4bits) + idsf(6bits)) + log2_block_count(8bits) + 
info_byte(8bits)
 + info_byte_copy(8bits) + log2_block_count_copy(8bits) */
 bits_used = su->num_bfus * 10 + 32 +
-bfu_amount_tab2[get_bits(gb, 2)] +
-(bfu_amount_tab3[get_bits(gb, 3)] << 1);
+bfu_amount_tab2[bitstream_read(bc, 2)] +
+(bfu_amount_tab3[bitstream_read(bc, 3)] << 1);
 
 /* get word length index (idwl) for each BFU */
 for (i = 0; i < su->num_bfus; i++)
-idwls[i] = get_bits(gb, 4);
+idwls[i] = bitstream_read(bc, 4);
 
 /* get scalefactor index (idsf) for each BFU */
 for (i = 0; i < su->num_bfus; i++)
-idsfs[i] = get_bits(gb, 6);
+idsfs[i] = bitstream_read(bc, 6);
 
 /* zero idwl/idsf for empty BFUs */
 for (i = su->num_bfus; i < AT1_MAX_BFU; i++)
@@ -240,7 +242,7 @@ static int at1_unpack_dequant(GetBitContext* gb, AT1SUCtx* 
su,
 /* read in a quantized spec and convert it to
  * signed int and then inverse quantization
  */
-spec[pos+i] = get_sbits(gb, word_len) * scale_factor * 
max_quant;
+spec[pos+i] = bitstream_read_signed(bc, word_len) * 
scale_factor * max_quant;
 }
 } else { /* word_len = 0 -> empty BFU, zero all specs in the emty 
BFU */
 memset(&spec[pos], 0, num_specs * sizeof(float));
@@ -277,7 +279,7 @@ static int atrac1_decode_frame(AVCodecContext *avctx, void 
*data,
 int buf_size   = avpkt->size;
 AT1Ctx *q  = avctx->priv_data;
 int ch, ret;
-GetBitContext gb;
+BitstreamContext bc;
 
 
 if (buf_size < 212 * avctx->channels) {
@@ -295,14 +297,14 @@ static int atrac1_decode_frame(AVCodecContext *avctx, 
void *data,
 for (ch = 0; ch < avctx->channels; ch++) {
 AT1SUCtx* su = &q->SUs[ch];
 
-init_get_bits(&gb, &buf[212 * ch], 212 * 8);
+bitstream_init(&bc, &buf[212 * ch], 212 * 8);
 
 /* parse block_size_mode, 1st byte */
-ret = at1_parse_bsm(&gb, su->log2_block_count);
+ret = at1_parse_bsm(&bc, su->log2_block_count);
 if (ret < 0)
 return ret;
 
-ret = at1_unpack_de

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr  
9 15:59:51 2016 +0200| [9a23b599431cf24ebf976a30d8c7a070ce57c3e0] | committer: 
Anton Khirnov

bink: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/bink.c | 264 ++
 1 file changed, 128 insertions(+), 136 deletions(-)

diff --git a/libavcodec/bink.c b/libavcodec/bink.c
index 7433697..74db80a 100644
--- a/libavcodec/bink.c
+++ b/libavcodec/bink.c
@@ -28,8 +28,8 @@
 #include "avcodec.h"
 #include "binkdata.h"
 #include "binkdsp.h"
+#include "bitstream.h"
 #include "blockdsp.h"
-#include "get_bits.h"
 #include "hpeldsp.h"
 #include "internal.h"
 #include "mathops.h"
@@ -93,8 +93,9 @@ typedef struct Tree {
 uint8_t syms[16]; ///< leaf value to symbol mapping
 } Tree;
 
-#define GET_HUFF(gb, tree)  (tree).syms[get_vlc2(gb, 
bink_trees[(tree).vlc_num].table,\
- 
bink_trees[(tree).vlc_num].bits, 1)]
+#define GET_HUFF(bc, tree)\
+(tree).syms[bitstream_read_vlc(bc, bink_trees[(tree).vlc_num].table,  \
+   bink_trees[(tree).vlc_num].bits, 1)]
 
 /**
  * data structure used for decoding single Bink data type
@@ -204,18 +205,18 @@ static av_cold void free_bundles(BinkContext *c)
 /**
  * Merge two consequent lists of equal size depending on bits read.
  *
- * @param gb   context for reading bits
+ * @param bc   context for reading bits
  * @param dst  buffer where merged list will be written to
  * @param src  pointer to the head of the first list (the second lists starts 
at src+size)
  * @param size input lists size
  */
-static void merge(GetBitContext *gb, uint8_t *dst, uint8_t *src, int size)
+static void merge(BitstreamContext *bc, uint8_t *dst, uint8_t *src, int size)
 {
 uint8_t *src2 = src + size;
 int size2 = size;
 
 do {
-if (!get_bits1(gb)) {
+if (!bitstream_read_bit(bc)) {
 *dst++ = *src++;
 size--;
 } else {
@@ -233,37 +234,37 @@ static void merge(GetBitContext *gb, uint8_t *dst, 
uint8_t *src, int size)
 /**
  * Read information about Huffman tree used to decode data.
  *
- * @param gb   context for reading bits
+ * @param bc   context for reading bits
  * @param tree pointer for storing tree data
  */
-static void read_tree(GetBitContext *gb, Tree *tree)
+static void read_tree(BitstreamContext *bc, Tree *tree)
 {
 uint8_t tmp1[16] = { 0 }, tmp2[16], *in = tmp1, *out = tmp2;
 int i, t, len;
 
-tree->vlc_num = get_bits(gb, 4);
+tree->vlc_num = bitstream_read(bc, 4);
 if (!tree->vlc_num) {
 for (i = 0; i < 16; i++)
 tree->syms[i] = i;
 return;
 }
-if (get_bits1(gb)) {
-len = get_bits(gb, 3);
+if (bitstream_read_bit(bc)) {
+len = bitstream_read(bc, 3);
 for (i = 0; i <= len; i++) {
-tree->syms[i] = get_bits(gb, 4);
+tree->syms[i] = bitstream_read(bc, 4);
 tmp1[tree->syms[i]] = 1;
 }
 for (i = 0; i < 16 && len < 16 - 1; i++)
 if (!tmp1[i])
 tree->syms[++len] = i;
 } else {
-len = get_bits(gb, 2);
+len = bitstream_read(bc, 2);
 for (i = 0; i < 16; i++)
 in[i] = i;
 for (i = 0; i <= len; i++) {
 int size = 1 << i;
 for (t = 0; t < 16; t += size << 1)
-merge(gb, out + t, in + t, size);
+merge(bc, out + t, in + t, size);
 FFSWAP(uint8_t*, in, out);
 }
 memcpy(tree->syms, in, 16);
@@ -273,21 +274,21 @@ static void read_tree(GetBitContext *gb, Tree *tree)
 /**
  * Prepare bundle for decoding data.
  *
- * @param gb  context for reading bits
+ * @param bc  context for reading bits
  * @param c   decoder context
  * @param bundle_num  number of the bundle to initialize
  */
-static void read_bundle(GetBitContext *gb, BinkContext *c, int bundle_num)
+static void read_bundle(BitstreamContext *bc, BinkContext *c, int bundle_num)
 {
 int i;
 
 if (bundle_num == BINK_SRC_COLORS) {
 for (i = 0; i < 16; i++)
-read_tree(gb, &c->col_high[i]);
+read_tree(bc, &c->col_high[i]);
 c->col_lastval = 0;
 }
 if (bundle_num != BINK_SRC_INTRA_DC && bundle_num != BINK_SRC_INTER_DC)
-read_tree(gb, &c->bundle[bundle_num].tree);
+read_tree(bc, &c->bundle[bundle_num].tree);
 c->bundle[bundle_num].cur_dec =
 c->bundle[bundle_num].cur_ptr = c->bundle[bundle_num].data;
 }
@@ -295,66 +296,64 @@ s

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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Tue Apr 
12 18:39:16 2016 +0200| [0dabd329e84a6a7b074fa55da844fc827a47aa01] | committer: 
Anton Khirnov

qcelp: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/qcelpdec.c | 9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/libavcodec/qcelpdec.c b/libavcodec/qcelpdec.c
index e9e7347..9d5e13a 100644
--- a/libavcodec/qcelpdec.c
+++ b/libavcodec/qcelpdec.c
@@ -31,9 +31,10 @@
 
 #include "libavutil/channel_layout.h"
 #include "libavutil/float_dsp.h"
+
 #include "avcodec.h"
+#include "bitstream.h"
 #include "internal.h"
-#include "get_bits.h"
 #include "qcelpdata.h"
 #include "celp_filters.h"
 #include "acelp_filters.h"
@@ -53,7 +54,7 @@ typedef enum {
 } qcelp_packet_rate;
 
 typedef struct QCELPContext {
-GetBitContext gb;
+BitstreamContext  bc;
 qcelp_packet_rate bitrate;
 QCELPFrameframe;/**< unpacked data frame */
 
@@ -718,12 +719,12 @@ static int qcelp_decode_frame(AVCodecContext *avctx, void 
*data,
  
qcelp_unpacking_bitmaps_lengths[q->bitrate];
 uint8_t *unpacked_data = (uint8_t *)&q->frame;
 
-init_get_bits(&q->gb, buf, 8 * buf_size);
+bitstream_init(&q->bc, buf, 8 * buf_size);
 
 memset(&q->frame, 0, sizeof(QCELPFrame));
 
 for (; bitmaps < bitmaps_end; bitmaps++)
-unpacked_data[bitmaps->index] |= get_bits(&q->gb, bitmaps->bitlen) 
<< bitmaps->bitpos;
+unpacked_data[bitmaps->index] |= bitstream_read(&q->bc, 
bitmaps->bitlen) << bitmaps->bitpos;
 
 // Check for erasures/blanks on rates 1, 1/4 and 1/8.
 if (q->frame.reserved) {

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-03 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Tue Apr 
12 18:32:50 2016 +0200| [770406d1e8291dbfd846210d08c1b322d30c8142] | committer: 
Anton Khirnov

pcx: Convert to the new bitstream reader

Signed-off-by: Anton Khirnov 

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

 libavcodec/pcx.c | 9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/libavcodec/pcx.c b/libavcodec/pcx.c
index a2d49b4..ece885e 100644
--- a/libavcodec/pcx.c
+++ b/libavcodec/pcx.c
@@ -23,9 +23,10 @@
  */
 
 #include "libavutil/imgutils.h"
+
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bytestream.h"
-#include "get_bits.h"
 #include "internal.h"
 
 #define PCX_HEADER_SIZE 128
@@ -179,15 +180,15 @@ static int pcx_decode_frame(AVCodecContext *avctx, void 
*data, int *got_frame,
 goto end;
 }
 } else if (nplanes == 1) {   /* all packed formats, max. 16 colors */
-GetBitContext s;
+BitstreamContext s;
 
 for (y = 0; y < h; y++) {
-init_get_bits(&s, scanline, bytes_per_scanline << 3);
+bitstream_init(&s, scanline, bytes_per_scanline << 3);
 
 pcx_rle_decode(&gb, scanline, bytes_per_scanline, compressed);
 
 for (x = 0; x < w; x++)
-ptr[x] = get_bits(&s, bits_per_pixel);
+ptr[x] = bitstream_read(&s, bits_per_pixel);
 ptr += stride;
 }
 } else {/* planar, 4, 8 or 16 colors */

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-04 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Wed Apr 
13 19:49:21 2016 +0200| [087bc8d70415b3b50db4dbf5adf49cf071281874] | committer: 
Diego Biurrun

sipr: Convert to the new bitstream reader

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

 libavcodec/sipr.c | 24 
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/libavcodec/sipr.c b/libavcodec/sipr.c
index 686b3e2..cf29d3b 100644
--- a/libavcodec/sipr.c
+++ b/libavcodec/sipr.c
@@ -31,7 +31,7 @@
 
 #define BITSTREAM_READER_LE
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "internal.h"
 #include "lsp.h"
 #include "acelp_vectors.h"
@@ -188,28 +188,28 @@ static void pitch_sharpening(int pitch_lag_int, float 
beta,
 /**
  * Extract decoding parameters from the input bitstream.
  * @param parms  parameters structure
- * @param pgbpointer to initialized GetBitContext structure
+ * @param bc pointer to initialized BitstreamContext structure
  */
-static void decode_parameters(SiprParameters* parms, GetBitContext *pgb,
+static void decode_parameters(SiprParameters* parms, BitstreamContext *bc,
   const SiprModeParam *p)
 {
 int i, j;
 
 if (p->ma_predictor_bits)
-parms->ma_pred_switch   = get_bits(pgb, p->ma_predictor_bits);
+parms->ma_pred_switch = bitstream_read(bc, p->ma_predictor_bits);
 
 for (i = 0; i < 5; i++)
-parms->vq_indexes[i]= get_bits(pgb, p->vq_indexes_bits[i]);
+parms->vq_indexes[i] = bitstream_read(bc, p->vq_indexes_bits[i]);
 
 for (i = 0; i < p->subframe_count; i++) {
-parms->pitch_delay[i]   = get_bits(pgb, p->pitch_delay_bits[i]);
+parms->pitch_delay[i] = bitstream_read(bc, p->pitch_delay_bits[i]);
 if (p->gp_index_bits)
-parms->gp_index[i]  = get_bits(pgb, p->gp_index_bits);
+parms->gp_index[i] = bitstream_read(bc, p->gp_index_bits);
 
 for (j = 0; j < p->number_of_fc_indexes; j++)
-parms->fc_indexes[i][j] = get_bits(pgb, p->fc_index_bits[j]);
+parms->fc_indexes[i][j] = bitstream_read(bc, p->fc_index_bits[j]);
 
-parms->gc_index[i]  = get_bits(pgb, p->gc_index_bits);
+parms->gc_index[i] = bitstream_read(bc, p->gc_index_bits);
 }
 }
 
@@ -527,7 +527,7 @@ static int sipr_decode_frame(AVCodecContext *avctx, void 
*data,
 const uint8_t *buf=avpkt->data;
 SiprParameters parm;
 const SiprModeParam *mode_par = &modes[ctx->mode];
-GetBitContext gb;
+BitstreamContext bc;
 float *samples;
 int subframe_size = ctx->mode == MODE_16k ? L_SUBFR_16k : SUBFR_SIZE;
 int i, ret;
@@ -549,10 +549,10 @@ static int sipr_decode_frame(AVCodecContext *avctx, void 
*data,
 }
 samples = (float *)frame->data[0];
 
-init_get_bits(&gb, buf, mode_par->bits_per_frame);
+bitstream_init(&bc, buf, mode_par->bits_per_frame);
 
 for (i = 0; i < mode_par->frames_per_packet; i++) {
-decode_parameters(&parm, &gb, mode_par);
+decode_parameters(&parm, &bc, mode_par);
 
 ctx->decode_frame(ctx, &parm, samples);
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-04 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Thu Apr 
14 11:59:21 2016 +0200| [0536e7d78248d8c563f21271fa5ace0b4f38c727] | committer: 
Diego Biurrun

vima: Convert to the new bitstream reader

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

 libavcodec/vima.c | 24 
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/libavcodec/vima.c b/libavcodec/vima.c
index 6f539a8..0db1897 100644
--- a/libavcodec/vima.c
+++ b/libavcodec/vima.c
@@ -29,7 +29,7 @@
 
 #include "adpcm_data.h"
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "internal.h"
 
 static int predict_table_init = 0;
@@ -118,7 +118,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
 static int decode_frame(AVCodecContext *avctx, void *data,
 int *got_frame_ptr, AVPacket *pkt)
 {
-GetBitContext gb;
+BitstreamContext bc;
 AVFrame *frame = data;
 int16_t pcm_data[2];
 uint32_t samples;
@@ -129,19 +129,19 @@ static int decode_frame(AVCodecContext *avctx, void *data,
 if (pkt->size < 13)
 return AVERROR_INVALIDDATA;
 
-if ((ret = init_get_bits8(&gb, pkt->data, pkt->size)) < 0)
+if ((ret = bitstream_init8(&bc, pkt->data, pkt->size)) < 0)
 return ret;
 
-samples = get_bits_long(&gb, 32);
+samples = bitstream_read(&bc, 32);
 if (samples == 0x) {
-skip_bits_long(&gb, 32);
-samples = get_bits_long(&gb, 32);
+bitstream_skip(&bc, 32);
+samples = bitstream_read(&bc, 32);
 }
 
 if (samples > pkt->size * 2)
 return AVERROR_INVALIDDATA;
 
-channel_hint[0] = get_sbits(&gb, 8);
+channel_hint[0] = bitstream_read_signed(&bc, 8);
 if (channel_hint[0] & 0x80) {
 channel_hint[0] = ~channel_hint[0];
 channels = 2;
@@ -149,10 +149,10 @@ static int decode_frame(AVCodecContext *avctx, void *data,
 avctx->channels = channels;
 avctx->channel_layout = (channels == 2) ? AV_CH_LAYOUT_STEREO
 : AV_CH_LAYOUT_MONO;
-pcm_data[0] = get_sbits(&gb, 16);
+pcm_data[0] = bitstream_read_signed(&bc, 16);
 if (channels > 1) {
-channel_hint[1] = get_sbits(&gb, 8);
-pcm_data[1] = get_sbits(&gb, 16);
+channel_hint[1] = bitstream_read_signed(&bc, 8);
+pcm_data[1] = bitstream_read_signed(&bc, 16);
 }
 
 frame->nb_samples = samples;
@@ -170,7 +170,7 @@ static int decode_frame(AVCodecContext *avctx, void *data,
 
 step_index  = av_clip(step_index, 0, 88);
 lookup_size = size_table[step_index];
-lookup  = get_bits(&gb, lookup_size);
+lookup  = bitstream_read(&bc, lookup_size);
 highbit = 1 << (lookup_size - 1);
 lowbits = highbit - 1;
 
@@ -180,7 +180,7 @@ static int decode_frame(AVCodecContext *avctx, void *data,
 highbit = 0;
 
 if (lookup == lowbits) {
-output = get_sbits(&gb, 16);
+output = bitstream_read_signed(&bc, 16);
 } else {
 int predict_index, diff;
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-04 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Fri Apr 
15 10:57:22 2016 +0200| [be35ef92a418916f0fceaf18af5f5b768c44117f] | committer: 
Diego Biurrun

xan: Convert to the new bitstream reader

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

 libavcodec/xan.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/libavcodec/xan.c b/libavcodec/xan.c
index c16c651..33149e5 100644
--- a/libavcodec/xan.c
+++ b/libavcodec/xan.c
@@ -37,8 +37,8 @@
 
 #define BITSTREAM_READER_LE
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bytestream.h"
-#include "get_bits.h"
 #include "internal.h"
 
 #define RUNTIME_GAMMA 0
@@ -124,15 +124,15 @@ static int xan_huffman_decode(unsigned char *dest, int 
dest_len,
 unsigned char val = ival;
 unsigned char *dest_end = dest + dest_len;
 unsigned char *dest_start = dest;
-GetBitContext gb;
+BitstreamContext bc;
 
 if (ptr_len < 0)
 return AVERROR_INVALIDDATA;
 
-init_get_bits(&gb, ptr, ptr_len * 8);
+bitstream_init(&bc, ptr, ptr_len * 8);
 
 while (val != 0x16) {
-unsigned idx = val - 0x17 + get_bits1(&gb) * byte;
+unsigned idx = val - 0x17 + bitstream_read_bit(&bc) * byte;
 if (idx >= 2 * byte)
 return AVERROR_INVALIDDATA;
 val = src[idx];

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-04 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Fri Apr 
15 10:50:38 2016 +0200| [f9c59f26c852cec4dd7e5c04d26ec284a796a919] | committer: 
Diego Biurrun

wnv1: Convert to the new bitstream reader

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

 libavcodec/wnv1.c | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/libavcodec/wnv1.c b/libavcodec/wnv1.c
index d0304c9..80d66ae 100644
--- a/libavcodec/wnv1.c
+++ b/libavcodec/wnv1.c
@@ -25,7 +25,7 @@
  */
 
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "internal.h"
 #include "mathops.h"
 
@@ -34,7 +34,7 @@ typedef struct WNV1Context {
 AVCodecContext *avctx;
 
 int shift;
-GetBitContext gb;
+BitstreamContext bc;
 } WNV1Context;
 
 static const uint16_t code_tab[16][2] = {
@@ -49,10 +49,10 @@ static VLC code_vlc;
 /* returns modified base_value */
 static inline int wnv1_get_code(WNV1Context *w, int base_value)
 {
-int v = get_vlc2(&w->gb, code_vlc.table, CODE_VLC_BITS, 1);
+int v = bitstream_read_vlc(&w->bc, code_vlc.table, CODE_VLC_BITS, 1);
 
 if (v == 15)
-return ff_reverse[get_bits(&w->gb, 8 - w->shift)];
+return ff_reverse[bitstream_read(&w->bc, 8 - w->shift)];
 else
 return base_value + ((v - 7) << w->shift);
 }
@@ -90,7 +90,7 @@ static int decode_frame(AVCodecContext *avctx,
 
 for (i = 8; i < buf_size; i++)
 rbuf[i] = ff_reverse[buf[i]];
-init_get_bits(&l->gb, rbuf + 8, (buf_size - 8) * 8);
+bitstream_init(&l->bc, rbuf + 8, (buf_size - 8) * 8);
 
 if (buf[2] >> 4 == 6)
 l->shift = 2;

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-04 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr 
16 17:46:29 2016 +0200| [8d1997add6220b7d956dcfdcc9f711efb56ca30d] | committer: 
Diego Biurrun

mpegts: Convert to the new bitstream reader

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

 libavformat/mpegts.c | 48 +---
 1 file changed, 25 insertions(+), 23 deletions(-)

diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index 28b6d37..5024404 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -26,9 +26,11 @@
 #include "libavutil/dict.h"
 #include "libavutil/mathematics.h"
 #include "libavutil/opt.h"
+
+#include "libavcodec/bitstream.h"
 #include "libavcodec/bytestream.h"
-#include "libavcodec/get_bits.h"
 #include "libavcodec/opus.h"
+
 #include "avformat.h"
 #include "mpegts.h"
 #include "internal.h"
@@ -735,56 +737,56 @@ static void new_pes_packet(PESContext *pes, AVPacket *pkt)
 static int read_sl_header(PESContext *pes, SLConfigDescr *sl,
   const uint8_t *buf, int buf_size)
 {
-GetBitContext gb;
+BitstreamContext bc;
 int au_start_flag = 0, au_end_flag = 0, ocr_flag = 0, idle_flag = 0;
 int padding_flag = 0, padding_bits = 0, inst_bitrate_flag = 0;
 int dts_flag = -1, cts_flag = -1;
 int64_t dts = AV_NOPTS_VALUE, cts = AV_NOPTS_VALUE;
-init_get_bits(&gb, buf, buf_size * 8);
+bitstream_init(&bc, buf, buf_size * 8);
 
 if (sl->use_au_start)
-au_start_flag = get_bits1(&gb);
+au_start_flag = bitstream_read_bit(&bc);
 if (sl->use_au_end)
-au_end_flag = get_bits1(&gb);
+au_end_flag = bitstream_read_bit(&bc);
 if (!sl->use_au_start && !sl->use_au_end)
 au_start_flag = au_end_flag = 1;
 if (sl->ocr_len > 0)
-ocr_flag = get_bits1(&gb);
+ocr_flag = bitstream_read_bit(&bc);
 if (sl->use_idle)
-idle_flag = get_bits1(&gb);
+idle_flag = bitstream_read_bit(&bc);
 if (sl->use_padding)
-padding_flag = get_bits1(&gb);
+padding_flag = bitstream_read_bit(&bc);
 if (padding_flag)
-padding_bits = get_bits(&gb, 3);
+padding_bits = bitstream_read(&bc, 3);
 
 if (!idle_flag && (!padding_flag || padding_bits != 0)) {
 if (sl->packet_seq_num_len)
-skip_bits_long(&gb, sl->packet_seq_num_len);
+bitstream_skip(&bc, sl->packet_seq_num_len);
 if (sl->degr_prior_len)
-if (get_bits1(&gb))
-skip_bits(&gb, sl->degr_prior_len);
+if (bitstream_read_bit(&bc))
+bitstream_skip(&bc, sl->degr_prior_len);
 if (ocr_flag)
-skip_bits_long(&gb, sl->ocr_len);
+bitstream_skip(&bc, sl->ocr_len);
 if (au_start_flag) {
 if (sl->use_rand_acc_pt)
-get_bits1(&gb);
+bitstream_read_bit(&bc);
 if (sl->au_seq_num_len > 0)
-skip_bits_long(&gb, sl->au_seq_num_len);
+bitstream_skip(&bc, sl->au_seq_num_len);
 if (sl->use_timestamps) {
-dts_flag = get_bits1(&gb);
-cts_flag = get_bits1(&gb);
+dts_flag = bitstream_read_bit(&bc);
+cts_flag = bitstream_read_bit(&bc);
 }
 }
 if (sl->inst_bitrate_len)
-inst_bitrate_flag = get_bits1(&gb);
+inst_bitrate_flag = bitstream_read_bit(&bc);
 if (dts_flag == 1)
-dts = get_bits64(&gb, sl->timestamp_len);
+dts = bitstream_read_63(&bc, sl->timestamp_len);
 if (cts_flag == 1)
-cts = get_bits64(&gb, sl->timestamp_len);
+cts = bitstream_read_63(&bc, sl->timestamp_len);
 if (sl->au_len > 0)
-skip_bits_long(&gb, sl->au_len);
+bitstream_skip(&bc, sl->au_len);
 if (inst_bitrate_flag)
-skip_bits_long(&gb, sl->inst_bitrate_len);
+bitstream_skip(&bc, sl->inst_bitrate_len);
 }
 
 if (dts != AV_NOPTS_VALUE)
@@ -795,7 +797,7 @@ static int read_sl_header(PESContext *pes, SLConfigDescr 
*sl,
 if (sl->timestamp_len && sl->timestamp_res)
 avpriv_set_pts_info(pes->st, sl->timestamp_len, 1, sl->timestamp_res);
 
-return (get_bits_count(&gb) + 7) >> 3;
+return (bitstream_tell(&bc) + 7) >> 3;
 }
 
 /* return non zero if a packet could be constructed */

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-04 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Thu Apr 
14 10:32:31 2016 +0200| [8e4cadea5d20e463e9d6cf00fc58841f17c811e0] | committer: 
Diego Biurrun

truespeech: Convert to the new bitstream reader

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

 libavcodec/truespeech.c | 88 +
 1 file changed, 45 insertions(+), 43 deletions(-)

diff --git a/libavcodec/truespeech.c b/libavcodec/truespeech.c
index b2195ba..48e2126 100644
--- a/libavcodec/truespeech.c
+++ b/libavcodec/truespeech.c
@@ -21,12 +21,14 @@
 
 #include "libavutil/channel_layout.h"
 #include "libavutil/intreadwrite.h"
+
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bswapdsp.h"
-#include "get_bits.h"
 #include "internal.h"
 
 #include "truespeech_data.h"
+
 /**
  * @file
  * TrueSpeech decoder.
@@ -77,50 +79,50 @@ static av_cold int truespeech_decode_init(AVCodecContext * 
avctx)
 
 static void truespeech_read_frame(TSContext *dec, const uint8_t *input)
 {
-GetBitContext gb;
+BitstreamContext bc;
 
 dec->bdsp.bswap_buf((uint32_t *) dec->buffer, (const uint32_t *) input, 8);
-init_get_bits(&gb, dec->buffer, 32 * 8);
-
-dec->vector[7] = ts_codebook[7][get_bits(&gb, 3)];
-dec->vector[6] = ts_codebook[6][get_bits(&gb, 3)];
-dec->vector[5] = ts_codebook[5][get_bits(&gb, 3)];
-dec->vector[4] = ts_codebook[4][get_bits(&gb, 4)];
-dec->vector[3] = ts_codebook[3][get_bits(&gb, 4)];
-dec->vector[2] = ts_codebook[2][get_bits(&gb, 4)];
-dec->vector[1] = ts_codebook[1][get_bits(&gb, 5)];
-dec->vector[0] = ts_codebook[0][get_bits(&gb, 5)];
-dec->flag  = get_bits1(&gb);
-
-dec->offset1[0] = get_bits(&gb, 4) << 4;
-dec->offset2[3] = get_bits(&gb, 7);
-dec->offset2[2] = get_bits(&gb, 7);
-dec->offset2[1] = get_bits(&gb, 7);
-dec->offset2[0] = get_bits(&gb, 7);
-
-dec->offset1[1]  = get_bits(&gb, 4);
-dec->pulseval[1] = get_bits(&gb, 14);
-dec->pulseval[0] = get_bits(&gb, 14);
-
-dec->offset1[1] |= get_bits(&gb, 4) << 4;
-dec->pulseval[3] = get_bits(&gb, 14);
-dec->pulseval[2] = get_bits(&gb, 14);
-
-dec->offset1[0] |= get_bits1(&gb);
-dec->pulsepos[0] = get_bits_long(&gb, 27);
-dec->pulseoff[0] = get_bits(&gb, 4);
-
-dec->offset1[0] |= get_bits1(&gb) << 1;
-dec->pulsepos[1] = get_bits_long(&gb, 27);
-dec->pulseoff[1] = get_bits(&gb, 4);
-
-dec->offset1[0] |= get_bits1(&gb) << 2;
-dec->pulsepos[2] = get_bits_long(&gb, 27);
-dec->pulseoff[2] = get_bits(&gb, 4);
-
-dec->offset1[0] |= get_bits1(&gb) << 3;
-dec->pulsepos[3] = get_bits_long(&gb, 27);
-dec->pulseoff[3] = get_bits(&gb, 4);
+bitstream_init(&bc, dec->buffer, 32 * 8);
+
+dec->vector[7] = ts_codebook[7][bitstream_read(&bc, 3)];
+dec->vector[6] = ts_codebook[6][bitstream_read(&bc, 3)];
+dec->vector[5] = ts_codebook[5][bitstream_read(&bc, 3)];
+dec->vector[4] = ts_codebook[4][bitstream_read(&bc, 4)];
+dec->vector[3] = ts_codebook[3][bitstream_read(&bc, 4)];
+dec->vector[2] = ts_codebook[2][bitstream_read(&bc, 4)];
+dec->vector[1] = ts_codebook[1][bitstream_read(&bc, 5)];
+dec->vector[0] = ts_codebook[0][bitstream_read(&bc, 5)];
+dec->flag  = bitstream_read_bit(&bc);
+
+dec->offset1[0] = bitstream_read(&bc, 4) << 4;
+dec->offset2[3] = bitstream_read(&bc, 7);
+dec->offset2[2] = bitstream_read(&bc, 7);
+dec->offset2[1] = bitstream_read(&bc, 7);
+dec->offset2[0] = bitstream_read(&bc, 7);
+
+dec->offset1[1]  = bitstream_read(&bc, 4);
+dec->pulseval[1] = bitstream_read(&bc, 14);
+dec->pulseval[0] = bitstream_read(&bc, 14);
+
+dec->offset1[1] |= bitstream_read(&bc, 4) << 4;
+dec->pulseval[3] = bitstream_read(&bc, 14);
+dec->pulseval[2] = bitstream_read(&bc, 14);
+
+dec->offset1[0] |= bitstream_read_bit(&bc);
+dec->pulsepos[0] = bitstream_read(&bc, 27);
+dec->pulseoff[0] = bitstream_read(&bc, 4);
+
+dec->offset1[0] |= bitstream_read_bit(&bc) << 1;
+dec->pulsepos[1] = bitstream_read(&bc, 27);
+dec->pulseoff[1] = bitstream_read(&bc, 4);
+
+dec->offset1[0] |= bitstream_read_bit(&bc) << 2;
+dec->pulsepos[2] = bitstream_read(&bc, 27);
+dec->pulseoff[2] = bitstream_read(&bc, 4);
+
+dec->offset1[0] |= bitstream_read_bit(&bc) << 3;
+dec->pulsepos[3] = bitstream_read(&bc, 27);
+dec->pulseoff[3] = bitstream_read(&bc, 4);
 }
 
 static void truespeech_correlate_filter(TSContext *dec)

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-04 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr 
16 17:51:16 2016 +0200| [2cef81a87cd88cf7904ef815ee109e3611fe3fa4] | committer: 
Diego Biurrun

ogg: Convert to the new bitstream reader

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

 libavformat/oggparseflac.c   | 22 --
 libavformat/oggparsetheora.c | 39 +--
 2 files changed, 33 insertions(+), 28 deletions(-)

diff --git a/libavformat/oggparseflac.c b/libavformat/oggparseflac.c
index dab1040..90b1495 100644
--- a/libavformat/oggparseflac.c
+++ b/libavformat/oggparseflac.c
@@ -19,8 +19,10 @@
  */
 
 #include 
-#include "libavcodec/get_bits.h"
+
+#include "libavcodec/bitstream.h"
 #include "libavcodec/flac.h"
+
 #include "avformat.h"
 #include "internal.h"
 #include "oggdec.h"
@@ -33,28 +35,28 @@ flac_header (AVFormatContext * s, int idx)
 struct ogg *ogg = s->priv_data;
 struct ogg_stream *os = ogg->streams + idx;
 AVStream *st = s->streams[idx];
-GetBitContext gb;
+BitstreamContext bc;
 int mdt;
 
 if (os->buf[os->pstart] == 0xff)
 return 0;
 
-init_get_bits(&gb, os->buf + os->pstart, os->psize*8);
-skip_bits1(&gb); /* metadata_last */
-mdt = get_bits(&gb, 7);
+bitstream_init(&bc, os->buf + os->pstart, os->psize * 8);
+bitstream_skip(&bc, 1); /* metadata_last */
+mdt = bitstream_read(&bc, 7);
 
 if (mdt == OGG_FLAC_METADATA_TYPE_STREAMINFO) {
 uint8_t *streaminfo_start = os->buf + os->pstart + 5 + 4 + 4 + 4;
 uint32_t samplerate;
 
-skip_bits_long(&gb, 4*8); /* "FLAC" */
-if(get_bits(&gb, 8) != 1) /* unsupported major version */
+bitstream_skip(&bc, 4 * 8); /* "FLAC" */
+if (bitstream_read(&bc, 8) != 1) /* unsupported major version */
 return -1;
-skip_bits_long(&gb, 8 + 16); /* minor version + header count */
-skip_bits_long(&gb, 4*8); /* "fLaC" */
+bitstream_skip(&bc, 8 + 16); /* minor version + header count */
+bitstream_skip(&bc, 4 * 8); /* "fLaC" */
 
 /* METADATA_BLOCK_HEADER */
-if (get_bits_long(&gb, 32) != FLAC_STREAMINFO_SIZE)
+if (bitstream_read(&bc, 32) != FLAC_STREAMINFO_SIZE)
 return -1;
 
 st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
diff --git a/libavformat/oggparsetheora.c b/libavformat/oggparsetheora.c
index 1e7a776..da47a0c 100644
--- a/libavformat/oggparsetheora.c
+++ b/libavformat/oggparsetheora.c
@@ -23,8 +23,11 @@
  **/
 
 #include 
+
 #include "libavutil/bswap.h"
-#include "libavcodec/get_bits.h"
+
+#include "libavcodec/bitstream.h"
+
 #include "avformat.h"
 #include "internal.h"
 #include "oggdec.h"
@@ -57,41 +60,41 @@ static int theora_header(AVFormatContext *s, int idx)
 
 switch (os->buf[os->pstart]) {
 case 0x80: {
-GetBitContext gb;
+BitstreamContext bc;
 AVRational timebase;
 
-init_get_bits(&gb, os->buf + os->pstart, os->psize * 8);
+bitstream_init(&bc, os->buf + os->pstart, os->psize * 8);
 
 /* 0x80"theora" */
-skip_bits_long(&gb, 7 * 8);
+bitstream_skip(&bc, 7 * 8);
 
-thp->version = get_bits_long(&gb, 24);
+thp->version = bitstream_read(&bc, 24);
 if (thp->version < 0x030100) {
 av_log(s, AV_LOG_ERROR,
"Too old or unsupported Theora (%x)\n", thp->version);
 return AVERROR(ENOSYS);
 }
 
-st->codecpar->width  = get_bits(&gb, 16) << 4;
-st->codecpar->height = get_bits(&gb, 16) << 4;
+st->codecpar->width  = bitstream_read(&bc, 16) << 4;
+st->codecpar->height = bitstream_read(&bc, 16) << 4;
 
 if (thp->version >= 0x030400)
-skip_bits(&gb, 100);
+bitstream_skip(&bc, 100);
 
 if (thp->version >= 0x030200) {
-int width  = get_bits_long(&gb, 24);
-int height = get_bits_long(&gb, 24);
+int width  = bitstream_read(&bc, 24);
+int height = bitstream_read(&bc, 24);
 if (width  <= st->codecpar->width  && width  > st->codecpar->width 
 - 16 &&
 height <= st->codecpar->height && height > 
st->codecpar->height - 16) {
 st->codecpar->width  = width;
 st->codecpar->height = height;
 }
 
-skip_bits(&gb, 16);
+bitstream_skip(&bc, 16);
  

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

2017-04-04 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Thu Apr 
14 10:42:27 2016 +0200| [0bea79afa6cc71e38d58350d05cdeb33e97f6234] | committer: 
Diego Biurrun

tscc2: Convert to the new bitstream reader

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

 libavcodec/tscc2.c | 30 +++---
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/libavcodec/tscc2.c b/libavcodec/tscc2.c
index d3d45e4..d86428a 100644
--- a/libavcodec/tscc2.c
+++ b/libavcodec/tscc2.c
@@ -28,8 +28,8 @@
 
 #define BITSTREAM_READER_LE
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bytestream.h"
-#include "get_bits.h"
 #include "internal.h"
 #include "mathops.h"
 #include "tscc2data.h"
@@ -41,7 +41,7 @@ typedef struct TSCC2Context {
 uint8_t*slice_quants;
 intquant[2];
 intq[2][3];
-GetBitContext  gb;
+BitstreamContext bc;
 
 VLCdc_vlc, nc_vlc[NUM_VLC_SETS], ac_vlc[NUM_VLC_SETS];
 intblock[16];
@@ -127,21 +127,21 @@ static void tscc2_idct4_put(int *in, int q[3], uint8_t 
*dst, int stride)
 static int tscc2_decode_mb(TSCC2Context *c, int *q, int vlc_set,
uint8_t *dst, int stride, int plane)
 {
-GetBitContext *gb = &c->gb;
+BitstreamContext *bc = &c->bc;
 int prev_dc, dc, nc, ac, bpos, val;
 int i, j, k, l;
 
-if (get_bits1(gb)) {
-if (get_bits1(gb)) {
-val = get_bits(gb, 8);
+if (bitstream_read_bit(bc)) {
+if (bitstream_read_bit(bc)) {
+val = bitstream_read(bc, 8);
 for (i = 0; i < 8; i++, dst += stride)
 memset(dst, val, 16);
 } else {
-if (get_bits_left(gb) < 16 * 8 * 8)
+if (bitstream_bits_left(bc) < 16 * 8 * 8)
 return AVERROR_INVALIDDATA;
 for (i = 0; i < 8; i++) {
 for (j = 0; j < 16; j++)
-dst[j] = get_bits(gb, 8);
+dst[j] = bitstream_read(bc, 8);
 dst += stride;
 }
 }
@@ -152,30 +152,30 @@ static int tscc2_decode_mb(TSCC2Context *c, int *q, int 
vlc_set,
 for (j = 0; j < 2; j++) {
 for (k = 0; k < 4; k++) {
 if (!(j | k)) {
-dc = get_bits(gb, 8);
+dc = bitstream_read(bc, 8);
 } else {
-dc = get_vlc2(gb, c->dc_vlc.table, 9, 2);
+dc = bitstream_read_vlc(bc, c->dc_vlc.table, 9, 2);
 if (dc == -1)
 return AVERROR_INVALIDDATA;
 if (dc == 0x100)
-dc = get_bits(gb, 8);
+dc = bitstream_read(bc, 8);
 }
 dc  = (dc + prev_dc) & 0xFF;
 prev_dc = dc;
 c->block[0] = dc;
 
-nc = get_vlc2(gb, c->nc_vlc[vlc_set].table, 9, 1);
+nc = bitstream_read_vlc(bc, c->nc_vlc[vlc_set].table, 9, 1);
 if (nc == -1)
 return AVERROR_INVALIDDATA;
 
 bpos = 1;
 memset(c->block + 1, 0, 15 * sizeof(*c->block));
 for (l = 0; l < nc; l++) {
-ac = get_vlc2(gb, c->ac_vlc[vlc_set].table, 9, 2);
+ac = bitstream_read_vlc(bc, c->ac_vlc[vlc_set].table, 9, 2);
 if (ac == -1)
 return AVERROR_INVALIDDATA;
 if (ac == 0x1000)
-ac = get_bits(gb, 12);
+ac = bitstream_read(bc, 12);
 bpos += ac & 0xF;
 if (bpos >= 16)
 return AVERROR_INVALIDDATA;
@@ -195,7 +195,7 @@ static int tscc2_decode_slice(TSCC2Context *c, int mb_y,
 int i, mb_x, q, ret;
 int off;
 
-init_get_bits(&c->gb, buf, buf_size * 8);
+bitstream_init(&c->bc, buf, buf_size * 8);
 
 for (mb_x = 0; mb_x < c->mb_width; mb_x++) {
 q = c->slice_quants[mb_x + c->mb_width * mb_y];

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-04 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr 
23 15:13:41 2016 +0200| [0ac07d0b8d75cce10a139c868d415284a9d2ca48] | committer: 
Diego Biurrun

tiertex: Convert to the new bitstream reader

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

 libavcodec/tiertexseqv.c | 26 ++
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/libavcodec/tiertexseqv.c b/libavcodec/tiertexseqv.c
index 8ca7edf..d952266 100644
--- a/libavcodec/tiertexseqv.c
+++ b/libavcodec/tiertexseqv.c
@@ -26,7 +26,7 @@
 
 #define BITSTREAM_READER_LE
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "internal.h"
 
 
@@ -41,18 +41,18 @@ static const unsigned char *seq_unpack_rle_block(const 
unsigned char *src,
  unsigned char *dst, int 
dst_size)
 {
 int i, len, sz;
-GetBitContext gb;
+BitstreamContext bc;
 int code_table[64];
 
 /* get the rle codes */
-init_get_bits(&gb, src, (src_end - src) * 8);
+bitstream_init(&bc, src, (src_end - src) * 8);
 for (i = 0, sz = 0; i < 64 && sz < dst_size; i++) {
-if (get_bits_left(&gb) < 4)
+if (bitstream_bits_left(&bc) < 4)
 return NULL;
-code_table[i] = get_sbits(&gb, 4);
+code_table[i] = bitstream_read_signed(&bc, 4);
 sz += FFABS(code_table[i]);
 }
-src += (get_bits_count(&gb) + 7) / 8;
+src += (bitstream_tell(&bc) + 7) / 8;
 
 /* do the rle unpacking */
 for (i = 0; i < 64 && dst_size > 0; i++) {
@@ -81,7 +81,7 @@ static const unsigned char *seq_decode_op1(SeqVideoContext 
*seq,
 {
 const unsigned char *color_table;
 int b, i, len, bits;
-GetBitContext gb;
+BitstreamContext bc;
 unsigned char block[8 * 8];
 
 if (src_end - src < 1)
@@ -113,10 +113,11 @@ static const unsigned char 
*seq_decode_op1(SeqVideoContext *seq,
 return NULL;
 color_table = src;
 src += len;
-init_get_bits(&gb, src, bits * 8 * 8); src += bits * 8;
+bitstream_init(&bc, src, bits * 8 * 8);
+src += bits * 8;
 for (b = 0; b < 8; b++) {
 for (i = 0; i < 8; i++)
-dst[i] = color_table[get_bits(&gb, bits)];
+dst[i] = color_table[bitstream_read(&bc, bits)];
 dst += seq->frame->linesize[0];
 }
 }
@@ -164,7 +165,7 @@ static const unsigned char *seq_decode_op3(SeqVideoContext 
*seq,
 static int seqvideo_decode(SeqVideoContext *seq, const unsigned char *data, 
int data_size)
 {
 const unsigned char *data_end = data + data_size;
-GetBitContext gb;
+BitstreamContext bc;
 int flags, i, j, x, y, op;
 unsigned char c[3];
 unsigned char *dst;
@@ -187,11 +188,12 @@ static int seqvideo_decode(SeqVideoContext *seq, const 
unsigned char *data, int
 if (flags & 2) {
 if (data_end - data < 128)
 return AVERROR_INVALIDDATA;
-init_get_bits(&gb, data, 128 * 8); data += 128;
+bitstream_init(&bc, data, 128 * 8);
+data += 128;
 for (y = 0; y < 128; y += 8)
 for (x = 0; x < 256; x += 8) {
 dst = &seq->frame->data[0][y * seq->frame->linesize[0] + x];
-op = get_bits(&gb, 2);
+op = bitstream_read(&bc, 2);
 switch (op) {
 case 1:
 data = seq_decode_op1(seq, data, data_end, dst);

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-04 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Wed Apr 
13 19:41:09 2016 +0200| [f26cbb555b9547b7a532c7a0d883579a52815b1d] | committer: 
Diego Biurrun

rtjpeg: Convert to the new bitstream reader

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

 libavcodec/rtjpeg.c | 42 +++---
 1 file changed, 23 insertions(+), 19 deletions(-)

diff --git a/libavcodec/rtjpeg.c b/libavcodec/rtjpeg.c
index 67eeff8..baa1f78 100644
--- a/libavcodec/rtjpeg.c
+++ b/libavcodec/rtjpeg.c
@@ -18,8 +18,10 @@
  * License along with Libav; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
+
 #include "libavutil/common.h"
-#include "get_bits.h"
+
+#include "bitstream.h"
 #include "rtjpeg.h"
 
 #define PUT_COEFF(c) \
@@ -28,34 +30,36 @@
 
 /// aligns the bitstream to the given power of two
 #define ALIGN(a) \
-n = (-get_bits_count(gb)) & (a - 1); \
-if (n) {skip_bits(gb, n);}
+n = (-bitstream_tell(bc)) & (a - 1); \
+if (n)   \
+bitstream_skip(bc, n);
 
 /**
  * @brief read one block from stream
- * @param gb contains stream data
+ * @param bc contains stream data
  * @param block where data is written to
  * @param scan array containing the mapping stream address -> block position
  * @param quant quantization factors
  * @return 0 means the block is not coded, < 0 means an error occurred.
  *
- * Note: GetBitContext is used to make the code simpler, since all data is
+ * Note: BitstreamContext is used to make the code simpler, since all data is
  * aligned this could be done faster in a different way, e.g. as it is done
  * in MPlayer libmpcodecs/native/rtjpegn.c.
  */
-static inline int get_block(GetBitContext *gb, int16_t *block, const uint8_t 
*scan,
-const uint32_t *quant) {
+static inline int get_block(BitstreamContext *bc, int16_t *block,
+const uint8_t *scan, const uint32_t *quant)
+{
 int coeff, i, n;
 int8_t ac;
-uint8_t dc = get_bits(gb, 8);
+uint8_t dc = bitstream_read(bc, 8);
 
 // block not coded
 if (dc == 255)
return 0;
 
 // number of non-zero coefficients
-coeff = get_bits(gb, 6);
-if (get_bits_left(gb) < (coeff << 1))
+coeff = bitstream_read(bc, 6);
+if (bitstream_bits_left(bc) < (coeff << 1))
 return AVERROR_INVALIDDATA;
 
 // normally we would only need to clear the (63 - coeff) last values,
@@ -64,7 +68,7 @@ static inline int get_block(GetBitContext *gb, int16_t 
*block, const uint8_t *sc
 
 // 2 bits per coefficient
 while (coeff) {
-ac = get_sbits(gb, 2);
+ac = bitstream_read_signed(bc, 2);
 if (ac == -2)
 break; // continue with more bits
 PUT_COEFF(ac);
@@ -72,10 +76,10 @@ static inline int get_block(GetBitContext *gb, int16_t 
*block, const uint8_t *sc
 
 // 4 bits per coefficient
 ALIGN(4);
-if (get_bits_left(gb) < (coeff << 2))
+if (bitstream_bits_left(bc) < (coeff << 2))
 return AVERROR_INVALIDDATA;
 while (coeff) {
-ac = get_sbits(gb, 4);
+ac = bitstream_read_signed(bc, 4);
 if (ac == -8)
 break; // continue with more bits
 PUT_COEFF(ac);
@@ -83,10 +87,10 @@ static inline int get_block(GetBitContext *gb, int16_t 
*block, const uint8_t *sc
 
 // 8 bits per coefficient
 ALIGN(8);
-if (get_bits_left(gb) < (coeff << 3))
+if (bitstream_bits_left(bc) < (coeff << 3))
 return AVERROR_INVALIDDATA;
 while (coeff) {
-ac = get_sbits(gb, 8);
+ac = bitstream_read_signed(bc, 8);
 PUT_COEFF(ac);
 }
 
@@ -105,19 +109,19 @@ static inline int get_block(GetBitContext *gb, int16_t 
*block, const uint8_t *sc
  */
 int ff_rtjpeg_decode_frame_yuv420(RTJpegContext *c, AVFrame *f,
   const uint8_t *buf, int buf_size) {
-GetBitContext gb;
+BitstreamContext bc;
 int w = c->w / 16, h = c->h / 16;
 int x, y, ret;
 uint8_t *y1 = f->data[0], *y2 = f->data[0] + 8 * f->linesize[0];
 uint8_t *u = f->data[1], *v = f->data[2];
 
-if ((ret = init_get_bits8(&gb, buf, buf_size)) < 0)
+if ((ret = bitstream_init8(&bc, buf, buf_size)) < 0)
 return ret;
 
 for (y = 0; y < h; y++) {
 for (x = 0; x < w; x++) {
 #define BLOCK(quant, dst, stride) do { \
-int res = get_block(&gb, block, c->scan, quant); \
+int res = get_block(&bc, block, c->scan, quant); \
 if (res < 0) \
 return res; \
 if (res > 0) \
@@ -142,7 +146,7 @@ int ff_rtjpeg_decode_frame_yuv420(RTJpegContext *c, AVFrame 
*f,
 u += 8 * (f->linesize[1] - w);
 v += 8 * (f->linesize[2] - w);
  

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

2017-04-04 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Wed Apr 
13 11:53:47 2016 +0200| [7d8075cf471459dee372595c74b7f28cb4e9a05d] | committer: 
Diego Biurrun

ra144: Convert to the new bitstream reader

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

 libavcodec/ra144dec.c | 23 ---
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/libavcodec/ra144dec.c b/libavcodec/ra144dec.c
index 2895357..35ee697 100644
--- a/libavcodec/ra144dec.c
+++ b/libavcodec/ra144dec.c
@@ -23,8 +23,9 @@
  */
 
 #include "libavutil/channel_layout.h"
+
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "internal.h"
 #include "ra144.h"
 
@@ -46,12 +47,12 @@ static av_cold int ra144_decode_init(AVCodecContext * avctx)
 }
 
 static void do_output_subblock(RA144Context *ractx, const uint16_t  *lpc_coefs,
-   int gval, GetBitContext *gb)
+   int gval, BitstreamContext *bc)
 {
-int cba_idx = get_bits(gb, 7); // index of the adaptive CB, 0 if none
-int gain= get_bits(gb, 8);
-int cb1_idx = get_bits(gb, 7);
-int cb2_idx = get_bits(gb, 7);
+int cba_idx = bitstream_read(bc, 7); // index of the adaptive CB, 0 if none
+int gain= bitstream_read(bc, 8);
+int cb1_idx = bitstream_read(bc, 7);
+int cb2_idx = bitstream_read(bc, 7);
 
 ff_subblock_synthesis(ractx, lpc_coefs, cba_idx, cb1_idx, cb2_idx, gval,
   gain);
@@ -74,7 +75,7 @@ static int ra144_decode_frame(AVCodecContext * avctx, void 
*data,
 unsigned int energy;
 
 RA144Context *ractx = avctx->priv_data;
-GetBitContext gb;
+BitstreamContext bc;
 
 if (buf_size < FRAMESIZE) {
 av_log(avctx, AV_LOG_ERROR,
@@ -91,15 +92,15 @@ static int ra144_decode_frame(AVCodecContext * avctx, void 
*data,
 }
 samples = (int16_t *)frame->data[0];
 
-init_get_bits(&gb, buf, FRAMESIZE * 8);
+bitstream_init(&bc, buf, FRAMESIZE * 8);
 
 for (i = 0; i < LPC_ORDER; i++)
-lpc_refl[i] = ff_lpc_refl_cb[i][get_bits(&gb, sizes[i])];
+lpc_refl[i] = ff_lpc_refl_cb[i][bitstream_read(&bc, sizes[i])];
 
 ff_eval_coefs(ractx->lpc_coef[0], lpc_refl);
 ractx->lpc_refl_rms[0] = ff_rms(lpc_refl);
 
-energy = ff_energy_tab[get_bits(&gb, 5)];
+energy = ff_energy_tab[bitstream_read(&bc, 5)];
 
 refl_rms[0] = ff_interp(ractx, block_coefs[0], 1, 1, ractx->old_energy);
 refl_rms[1] = ff_interp(ractx, block_coefs[1], 2,
@@ -111,7 +112,7 @@ static int ra144_decode_frame(AVCodecContext * avctx, void 
*data,
 ff_int_to_int16(block_coefs[3], ractx->lpc_coef[0]);
 
 for (i=0; i < NBLOCKS; i++) {
-do_output_subblock(ractx, block_coefs[i], refl_rms[i], &gb);
+do_output_subblock(ractx, block_coefs[i], refl_rms[i], &bc);
 
 for (j=0; j < BLOCKSIZE; j++)
 *samples++ = av_clip_int16(ractx->curr_sblock[j + 10] << 2);

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-04 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Thu Apr 
14 10:59:22 2016 +0200| [85f760fedd49816f3a197da22f4c8e33d1b3dda7] | committer: 
Diego Biurrun

twinvq: Convert to the new bitstream reader

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

 libavcodec/twinvq_data.h |  2 +-
 libavcodec/twinvqdec.c   | 42 +-
 2 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/libavcodec/twinvq_data.h b/libavcodec/twinvq_data.h
index 01a54a5..cc7ba59 100644
--- a/libavcodec/twinvq_data.h
+++ b/libavcodec/twinvq_data.h
@@ -130,7 +130,7 @@ static const uint16_t bark_tab_s44_128[] = {
 /**
  * TwinVQ codebooks. They are coded in a struct so we can use code such as
  *
- * float val = tab.fcb0808l[get_bits(gb, 12)];
+ * float val = tab.fcb0808l[bitstream_read(bc, 12)];
  *
  * without risking a segfault on malformed files.
  */
diff --git a/libavcodec/twinvqdec.c b/libavcodec/twinvqdec.c
index 56df105..6355ad4 100644
--- a/libavcodec/twinvqdec.c
+++ b/libavcodec/twinvqdec.c
@@ -23,8 +23,9 @@
 #include 
 
 #include "libavutil/channel_layout.h"
+
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "internal.h"
 #include "twinvq.h"
 #include "twinvq_data.h"
@@ -235,7 +236,7 @@ static void dec_bark_env(TwinVQContext *tctx, const uint8_t 
*in, int use_hist,
 }
 }
 
-static void read_cb_data(TwinVQContext *tctx, GetBitContext *gb,
+static void read_cb_data(TwinVQContext *tctx, BitstreamContext *bc,
  uint8_t *dst, enum TwinVQFrameType ftype)
 {
 int i;
@@ -243,8 +244,8 @@ static void read_cb_data(TwinVQContext *tctx, GetBitContext 
*gb,
 for (i = 0; i < tctx->n_div[ftype]; i++) {
 int bs_second_part = (i >= tctx->bits_main_spec_change[ftype]);
 
-*dst++ = get_bits(gb, tctx->bits_main_spec[0][ftype][bs_second_part]);
-*dst++ = get_bits(gb, tctx->bits_main_spec[1][ftype][bs_second_part]);
+*dst++ = bitstream_read(bc, 
tctx->bits_main_spec[0][ftype][bs_second_part]);
+*dst++ = bitstream_read(bc, 
tctx->bits_main_spec[1][ftype][bs_second_part]);
 }
 }
 
@@ -255,13 +256,13 @@ static int twinvq_read_bitstream(AVCodecContext *avctx, 
TwinVQContext *tctx,
 const TwinVQModeTab *mtab = tctx->mtab;
 int channels  = tctx->avctx->channels;
 int sub;
-GetBitContext gb;
+BitstreamContext bc;
 int i, j, k;
 
-init_get_bits(&gb, buf, buf_size * 8);
-skip_bits(&gb, get_bits(&gb, 8));
+bitstream_init(&bc, buf, buf_size * 8);
+bitstream_skip(&bc, bitstream_read(&bc, 8));
 
-bits->window_type = get_bits(&gb, TWINVQ_WINDOW_TYPE_BITS);
+bits->window_type = bitstream_read(&bc, TWINVQ_WINDOW_TYPE_BITS);
 
 if (bits->window_type > 8) {
 av_log(avctx, AV_LOG_ERROR, "Invalid window type, broken sample?\n");
@@ -272,43 +273,42 @@ static int twinvq_read_bitstream(AVCodecContext *avctx, 
TwinVQContext *tctx,
 
 sub = mtab->fmode[bits->ftype].sub;
 
-read_cb_data(tctx, &gb, bits->main_coeffs, bits->ftype);
+read_cb_data(tctx, &bc, bits->main_coeffs, bits->ftype);
 
 for (i = 0; i < channels; i++)
 for (j = 0; j < sub; j++)
 for (k = 0; k < mtab->fmode[bits->ftype].bark_n_coef; k++)
 bits->bark1[i][j][k] =
-get_bits(&gb, mtab->fmode[bits->ftype].bark_n_bit);
+bitstream_read(&bc, mtab->fmode[bits->ftype].bark_n_bit);
 
 for (i = 0; i < channels; i++)
 for (j = 0; j < sub; j++)
-bits->bark_use_hist[i][j] = get_bits1(&gb);
+bits->bark_use_hist[i][j] = bitstream_read_bit(&bc);
 
 if (bits->ftype == TWINVQ_FT_LONG) {
 for (i = 0; i < channels; i++)
-bits->gain_bits[i] = get_bits(&gb, TWINVQ_GAIN_BITS);
+bits->gain_bits[i] = bitstream_read(&bc, TWINVQ_GAIN_BITS);
 } else {
 for (i = 0; i < channels; i++) {
-bits->gain_bits[i] = get_bits(&gb, TWINVQ_GAIN_BITS);
+bits->gain_bits[i] = bitstream_read(&bc, TWINVQ_GAIN_BITS);
 for (j = 0; j < sub; j++)
-bits->sub_gain_bits[i * sub + j] = get_bits(&gb,
-   TWINVQ_SUB_GAIN_BITS);
+bits->sub_gain_bits[i * sub + j] = bitstream_read(&bc, 
TWINVQ_SUB_GAIN_BITS);
 }
 }
 
 for (i = 0; i < channels; i++) {
-bits->lpc_hist_idx[i] = get_bits(&gb, mtab->lsp_bit0);
-bits->lpc_idx1[i] = get_bits(&gb, mtab->lsp_bit1);
+bits->lpc_hist_idx[i] = bitstream_read(&bc, mtab->lsp_bit0);
+b

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

2017-04-04 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Thu Apr 
14 11:07:15 2016 +0200| [104a4289f925c600c13035de6c282fe656510a27] | committer: 
Diego Biurrun

utvideodec: Convert to the new bitstream reader

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

 libavcodec/utvideodec.c | 15 ---
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/libavcodec/utvideodec.c b/libavcodec/utvideodec.c
index 3a58156..29de815 100644
--- a/libavcodec/utvideodec.c
+++ b/libavcodec/utvideodec.c
@@ -28,10 +28,11 @@
 #include 
 
 #include "libavutil/intreadwrite.h"
+
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bswapdsp.h"
 #include "bytestream.h"
-#include "get_bits.h"
 #include "thread.h"
 #include "utvideo.h"
 
@@ -85,7 +86,7 @@ static int decode_plane(UtvideoContext *c, int plane_no,
 int i, j, slice, pix;
 int sstart, send;
 VLC vlc;
-GetBitContext gb;
+BitstreamContext bc;
 int prev, fsym;
 const int cmask = ~(!plane_no && c->avctx->pix_fmt == AV_PIX_FMT_YUV420P);
 
@@ -146,17 +147,17 @@ static int decode_plane(UtvideoContext *c, int plane_no,
 c->bdsp.bswap_buf((uint32_t *) c->slice_bits,
   (uint32_t *) c->slice_bits,
   (slice_data_end - slice_data_start + 3) >> 2);
-init_get_bits(&gb, c->slice_bits, slice_size * 8);
+bitstream_init(&bc, c->slice_bits, slice_size * 8);
 
 prev = 0x80;
 for (j = sstart; j < send; j++) {
 for (i = 0; i < width * step; i += step) {
-if (get_bits_left(&gb) <= 0) {
+if (bitstream_bits_left(&bc) <= 0) {
 av_log(c->avctx, AV_LOG_ERROR,
"Slice decoding ran out of bits\n");
 goto fail;
 }
-pix = get_vlc2(&gb, vlc.table, vlc.bits, 4);
+pix = bitstream_read_vlc(&bc, vlc.table, vlc.bits, 4);
 if (pix < 0) {
 av_log(c->avctx, AV_LOG_ERROR, "Decoding error\n");
 goto fail;
@@ -169,9 +170,9 @@ static int decode_plane(UtvideoContext *c, int plane_no,
 }
 dest += stride;
 }
-if (get_bits_left(&gb) > 32)
+if (bitstream_bits_left(&bc) > 32)
 av_log(c->avctx, AV_LOG_WARNING,
-   "%d bits left after decoding slice\n", get_bits_left(&gb));
+   "%d bits left after decoding slice\n", 
bitstream_bits_left(&bc));
 }
 
 ff_free_vlc(&vlc);

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-04 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Wed Apr 
13 20:25:22 2016 +0200| [9f78e3a46d15abbdc900d755818ef235ae5e886c] | committer: 
Diego Biurrun

svq1dec: Convert to the new bitstream reader

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

 libavcodec/svq1dec.c | 120 +--
 1 file changed, 60 insertions(+), 60 deletions(-)

diff --git a/libavcodec/svq1dec.c b/libavcodec/svq1dec.c
index cc43f14..2ab0f23 100644
--- a/libavcodec/svq1dec.c
+++ b/libavcodec/svq1dec.c
@@ -33,7 +33,7 @@
  */
 
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "h263.h"
 #include "hpeldsp.h"
 #include "internal.h"
@@ -55,7 +55,7 @@ typedef struct svq1_pmv_s {
 
 typedef struct SVQ1Context {
 HpelDSPContext hdsp;
-GetBitContext gb;
+BitstreamContext bc;
 AVFrame *prev;
 
 uint8_t *pkt_swapped;
@@ -111,7 +111,7 @@ static const uint8_t string_table[256] = {
 break;  \
 }   \
 /* divide block if next bit set */  \
-if (get_bits1(bitbuf) == 0) \
+if (bitstream_read_bit(bc) == 0)\
 break;  \
 /* add child nodes */   \
 list[n++] = list[i];\
@@ -145,7 +145,7 @@ static const uint8_t string_table[256] = {
 #define SVQ1_CALC_CODEBOOK_ENTRIES(cbook)   \
 codebook = (const uint32_t *)cbook[level];  \
 if (stages > 0) \
-bit_cache = get_bits(bitbuf, 4 * stages);   \
+bit_cache = bitstream_read(bc, 4 * stages); \
 /* calculate codebook entries for this vector */\
 for (j = 0; j < stages; j++) {  \
 entries[j] = (((bit_cache >> (4 * (stages - j - 1))) & 0xF) +   \
@@ -154,7 +154,7 @@ static const uint8_t string_table[256] = {
 mean -= stages * 128;   \
 n4= mean + (mean >> 31) << 16 | (mean & 0x);
 
-static int svq1_decode_block_intra(GetBitContext *bitbuf, uint8_t *pixels,
+static int svq1_decode_block_intra(BitstreamContext *bc, uint8_t *pixels,
ptrdiff_t pitch)
 {
 uint32_t bit_cache;
@@ -180,7 +180,7 @@ static int svq1_decode_block_intra(GetBitContext *bitbuf, 
uint8_t *pixels,
 height = 1 << ((3 + level) / 2);
 
 /* get number of stages (-1 skips vector, 0 for mean only) */
-stages = get_vlc2(bitbuf, svq1_intra_multistage[level].table, 3, 3) - 
1;
+stages = bitstream_read_vlc(bc, svq1_intra_multistage[level].table, 3, 
3) - 1;
 
 if (stages == -1) {
 for (y = 0; y < height; y++)
@@ -195,7 +195,7 @@ static int svq1_decode_block_intra(GetBitContext *bitbuf, 
uint8_t *pixels,
 return AVERROR_INVALIDDATA;  /* invalid vector */
 }
 
-mean = get_vlc2(bitbuf, svq1_intra_mean.table, 8, 3);
+mean = bitstream_read_vlc(bc, svq1_intra_mean.table, 8, 3);
 
 if (stages == 0) {
 for (y = 0; y < height; y++)
@@ -219,7 +219,7 @@ static int svq1_decode_block_intra(GetBitContext *bitbuf, 
uint8_t *pixels,
 return 0;
 }
 
-static int svq1_decode_block_non_intra(GetBitContext *bitbuf, uint8_t *pixels,
+static int svq1_decode_block_non_intra(BitstreamContext *bc, uint8_t *pixels,
ptrdiff_t pitch)
 {
 uint32_t bit_cache;
@@ -245,7 +245,7 @@ static int svq1_decode_block_non_intra(GetBitContext 
*bitbuf, uint8_t *pixels,
 height = 1 << ((3 + level) / 2);
 
 /* get number of stages (-1 skips vector, 0 for mean only) */
-stages = get_vlc2(bitbuf, svq1_inter_multistage[level].table, 3, 2) - 
1;
+stages = bitstream_read_vlc(bc, svq1_inter_multistage[level].table, 3, 
2) - 1;
 
 if (stages == -1)
 continue;   /* skip vector */
@@ -257,7 +257,7 @@ static int svq1_decode_block_non_intra(GetBitContext 
*bitbuf, uint8_t *pixels,
 return AVERROR_INVALIDDATA;  /* invalid vector */
 }
 
-mean = get_vlc2(bitbuf, svq1_inter_mean.table, 9, 3) - 256;
+mean = bitstream_read_vlc(bc, svq1_inter_mean.table, 9, 3) - 256;
 
 SVQ1_CALC_CODEBOOK_ENTRIES(ff_svq1_inter_codebooks);
 
@@ -277,7 +277,7 @@ static int svq1_decode_block_non_intra(GetBitContext 
*bitbuf, uint8_t *pixels,
 return 0;
 }
 
-static int svq1_dec

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

2017-04-04 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr 
16 17:58:30 2016 +0200| [2dbe2aa2c2d4f02d2669feae45dee4fc45414813] | committer: 
Diego Biurrun

rdt: Convert to the new bitstream reader

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

 libavformat/rdt.c | 35 ++-
 1 file changed, 18 insertions(+), 17 deletions(-)

diff --git a/libavformat/rdt.c b/libavformat/rdt.c
index eb718cf..da5ff59 100644
--- a/libavformat/rdt.c
+++ b/libavformat/rdt.c
@@ -25,6 +25,8 @@
  * @author Ronald S. Bultje 
  */
 
+#include "libavcodec/bitstream.h"
+
 #include "avformat.h"
 #include "libavutil/avstring.h"
 #include "rtpdec.h"
@@ -34,7 +36,6 @@
 #include "rm.h"
 #include "internal.h"
 #include "avio_internal.h"
-#include "libavcodec/get_bits.h"
 
 struct RDTDemuxContext {
 AVFormatContext *ic; /**< the containing (RTSP) demux context */
@@ -191,7 +192,7 @@ ff_rdt_parse_header(const uint8_t *buf, int len,
 int *pset_id, int *pseq_no, int *pstream_id,
 int *pis_keyframe, uint32_t *ptimestamp)
 {
-GetBitContext gb;
+BitstreamContext bc;
 int consumed = 0, set_id, seq_no, stream_id, is_keyframe,
 len_included, need_reliable;
 uint32_t timestamp;
@@ -261,24 +262,24 @@ ff_rdt_parse_header(const uint8_t *buf, int len,
  * [2] http://www.wireshark.org/docs/dfref/r/rdt.html and
  * 
http://anonsvn.wireshark.org/viewvc/trunk/epan/dissectors/packet-rdt.c
  */
-init_get_bits(&gb, buf, len << 3);
-len_included  = get_bits1(&gb);
-need_reliable = get_bits1(&gb);
-set_id= get_bits(&gb, 5);
-skip_bits(&gb, 1);
-seq_no= get_bits(&gb, 16);
+bitstream_init(&bc, buf, len << 3);
+len_included  = bitstream_read_bit(&bc);
+need_reliable = bitstream_read_bit(&bc);
+set_id= bitstream_read(&bc, 5);
+bitstream_skip(&bc, 1);
+seq_no= bitstream_read(&bc, 16);
 if (len_included)
-skip_bits(&gb, 16);
-skip_bits(&gb, 2);
-stream_id = get_bits(&gb, 5);
-is_keyframe   = !get_bits1(&gb);
-timestamp = get_bits_long(&gb, 32);
+bitstream_skip(&bc, 16);
+bitstream_skip(&bc, 2);
+stream_id = bitstream_read(&bc, 5);
+is_keyframe   = !bitstream_read_bit(&bc);
+timestamp = bitstream_read(&bc, 32);
 if (set_id == 0x1f)
-set_id= get_bits(&gb, 16);
+set_id= bitstream_read(&bc, 16);
 if (need_reliable)
-skip_bits(&gb, 16);
+bitstream_skip(&bc, 16);
 if (stream_id == 0x1f)
-stream_id = get_bits(&gb, 16);
+stream_id = bitstream_read(&bc, 16);
 
 if (pset_id)  *pset_id  = set_id;
 if (pseq_no)  *pseq_no  = seq_no;
@@ -286,7 +287,7 @@ ff_rdt_parse_header(const uint8_t *buf, int len,
 if (pis_keyframe) *pis_keyframe = is_keyframe;
 if (ptimestamp)   *ptimestamp   = timestamp;
 
-return consumed + (get_bits_count(&gb) >> 3);
+return consumed + (bitstream_tell(&bc) >> 3);
 }
 
 /**< return 0 on packet, no more left, 1 on packet, 1 on partial packet... */

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-04 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Fri Apr 
15 11:03:55 2016 +0200| [178b4ea5f9a43009781311af2737284fdca48a5c] | committer: 
Diego Biurrun

xsubdec: Convert to the new bitstream reader

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

 libavcodec/xsubdec.c | 15 ---
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/libavcodec/xsubdec.c b/libavcodec/xsubdec.c
index 3af300c..a07f94c 100644
--- a/libavcodec/xsubdec.c
+++ b/libavcodec/xsubdec.c
@@ -21,8 +21,9 @@
 
 #include "libavutil/mathematics.h"
 #include "libavutil/imgutils.h"
+
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "bytestream.h"
 
 static av_cold int decode_init(AVCodecContext *avctx) {
@@ -55,7 +56,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, 
int *data_size,
 uint8_t *bitmap;
 int w, h, x, y, i;
 int64_t packet_time = 0;
-GetBitContext gb;
+BitstreamContext bc;
 int has_alpha = avctx->codec_tag == MKTAG('D','X','S','A');
 
 memset(sub, 0, sizeof(*sub));
@@ -146,15 +147,15 @@ FF_ENABLE_DEPRECATION_WARNINGS
 #endif
 
 // process RLE-compressed data
-init_get_bits(&gb, buf, (buf_end - buf) * 8);
+bitstream_init(&bc, buf, (buf_end - buf) * 8);
 bitmap = sub->rects[0]->data[0];
 for (y = 0; y < h; y++) {
 // interlaced: do odd lines
 if (y == (h + 1) / 2) bitmap = sub->rects[0]->data[0] + w;
 for (x = 0; x < w; ) {
-int log2 = ff_log2_tab[show_bits(&gb, 8)];
-int run = get_bits(&gb, 14 - 4 * (log2 >> 1));
-int color = get_bits(&gb, 2);
+int log2 = ff_log2_tab[bitstream_peek(&bc, 8)];
+int run = bitstream_read(&bc, 14 - 4 * (log2 >> 1));
+int color = bitstream_read(&bc, 2);
 run = FFMIN(run, w - x);
 // run length 0 means till end of row
 if (!run) run = w - x;
@@ -164,7 +165,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
 }
 // interlaced, skip every second line
 bitmap += w;
-align_get_bits(&gb);
+bitstream_align(&bc);
 }
 *data_size = 1;
 return buf_size;

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-04 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Thu Apr 
14 11:52:48 2016 +0200| [e5bdfc679004199c4a1837e256046331e5e4e713] | committer: 
Diego Biurrun

vble: Convert to the new bitstream reader

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

 libavcodec/vble.c | 26 +-
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/libavcodec/vble.c b/libavcodec/vble.c
index 1a78036..fef1090 100644
--- a/libavcodec/vble.c
+++ b/libavcodec/vble.c
@@ -28,7 +28,7 @@
 
 #define BITSTREAM_READER_LE
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "huffyuvdsp.h"
 #include "internal.h"
 #include "mathops.h"
@@ -41,18 +41,18 @@ typedef struct VBLEContext {
 uint8_t*val; /* First holds the lengths of vlc symbols and then 
their values */
 } VBLEContext;
 
-static uint8_t vble_read_reverse_unary(GetBitContext *gb)
+static uint8_t vble_read_reverse_unary(BitstreamContext *bc)
 {
 /* At most we need to read 9 bits total to get indices up to 8 */
-uint8_t val = show_bits(gb, 8);
+uint8_t val = bitstream_peek(bc, 8);
 
 if (val) {
 val = 7 - av_log2_16bit(ff_reverse[val]);
-skip_bits(gb, val + 1);
+bitstream_skip(bc, val + 1);
 return val;
 } else {
-skip_bits(gb, 8);
-if (get_bits1(gb))
+bitstream_skip(bc, 8);
+if (bitstream_read_bit(bc))
 return 8;
 }
 
@@ -60,13 +60,13 @@ static uint8_t vble_read_reverse_unary(GetBitContext *gb)
 return UINT8_MAX;
 }
 
-static int vble_unpack(VBLEContext *ctx, GetBitContext *gb)
+static int vble_unpack(VBLEContext *ctx, BitstreamContext *bc)
 {
 int i;
 
 /* Read all the lengths in first */
 for (i = 0; i < ctx->size; i++) {
-ctx->val[i] = vble_read_reverse_unary(gb);
+ctx->val[i] = vble_read_reverse_unary(bc);
 
 if (ctx->val[i] == UINT8_MAX)
 return -1;
@@ -74,12 +74,12 @@ static int vble_unpack(VBLEContext *ctx, GetBitContext *gb)
 
 for (i = 0; i < ctx->size; i++) {
 /* Check we have enough bits left */
-if (get_bits_left(gb) < ctx->val[i])
+if (bitstream_bits_left(bc) < ctx->val[i])
 return -1;
 
 /* get_bits can't take a length of 0 */
 if (ctx->val[i])
-ctx->val[i] = (1 << ctx->val[i]) + get_bits(gb, ctx->val[i]) - 1;
+ctx->val[i] = (1 << ctx->val[i]) + bitstream_read(bc, ctx->val[i]) 
- 1;
 }
 
 return 0;
@@ -118,7 +118,7 @@ static int vble_decode_frame(AVCodecContext *avctx, void 
*data, int *got_frame,
 {
 VBLEContext *ctx = avctx->priv_data;
 AVFrame *pic = data;
-GetBitContext gb;
+BitstreamContext bc;
 const uint8_t *src = avpkt->data;
 int version;
 int offset = 0;
@@ -140,10 +140,10 @@ static int vble_decode_frame(AVCodecContext *avctx, void 
*data, int *got_frame,
 if (version != 1)
 av_log(avctx, AV_LOG_WARNING, "Unsupported VBLE Version: %d\n", 
version);
 
-init_get_bits(&gb, src + 4, (avpkt->size - 4) * 8);
+bitstream_init(&bc, src + 4, (avpkt->size - 4) * 8);
 
 /* Unpack */
-if (vble_unpack(ctx, &gb) < 0) {
+if (vble_unpack(ctx, &bc) < 0) {
 av_log(avctx, AV_LOG_ERROR, "Invalid Code\n");
 return AVERROR_INVALIDDATA;
 }

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-04 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sat Apr 
23 15:11:27 2016 +0200| [9ab1a3e28371f599afe05aea9f7ca75fd8eb3c3f] | committer: 
Diego Biurrun

truemotion2: Convert to the new bitstream reader

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

 libavcodec/truemotion2.c | 40 
 1 file changed, 20 insertions(+), 20 deletions(-)

diff --git a/libavcodec/truemotion2.c b/libavcodec/truemotion2.c
index 1726440..99884be 100644
--- a/libavcodec/truemotion2.c
+++ b/libavcodec/truemotion2.c
@@ -27,9 +27,9 @@
 #include 
 
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bswapdsp.h"
 #include "bytestream.h"
-#include "get_bits.h"
 #include "internal.h"
 
 #define TM2_ESCAPE 0x8000
@@ -62,7 +62,7 @@ typedef struct TM2Context {
 AVCodecContext *avctx;
 AVFrame *pic;
 
-GetBitContext gb;
+BitstreamContext bc;
 BswapDSPContext bdsp;
 
 /* TM2 streams */
@@ -117,7 +117,7 @@ static int tm2_read_tree(TM2Context *ctx, uint32_t prefix, 
int length, TM2Huff *
 return AVERROR_INVALIDDATA;
 }
 
-if (!get_bits1(&ctx->gb)) { /* literal */
+if (!bitstream_read_bit(&ctx->bc)) { /* literal */
 if (length == 0) {
 length = 1;
 }
@@ -125,7 +125,7 @@ static int tm2_read_tree(TM2Context *ctx, uint32_t prefix, 
int length, TM2Huff *
 av_log(ctx->avctx, AV_LOG_DEBUG, "Too many literals\n");
 return AVERROR_INVALIDDATA;
 }
-huff->nums[huff->num] = get_bits_long(&ctx->gb, huff->val_bits);
+huff->nums[huff->num] = bitstream_read(&ctx->bc, huff->val_bits);
 huff->bits[huff->num] = prefix;
 huff->lens[huff->num] = length;
 huff->num++;
@@ -144,10 +144,10 @@ static int tm2_build_huff_table(TM2Context *ctx, TM2Codes 
*code)
 TM2Huff huff;
 int res = 0;
 
-huff.val_bits = get_bits(&ctx->gb, 5);
-huff.max_bits = get_bits(&ctx->gb, 5);
-huff.min_bits = get_bits(&ctx->gb, 5);
-huff.nodes= get_bits_long(&ctx->gb, 17);
+huff.val_bits = bitstream_read(&ctx->bc, 5);
+huff.max_bits = bitstream_read(&ctx->bc, 5);
+huff.min_bits = bitstream_read(&ctx->bc, 5);
+huff.nodes= bitstream_read(&ctx->bc, 17);
 huff.num  = 0;
 
 /* check for correct codes parameters */
@@ -222,10 +222,10 @@ static void tm2_free_codes(TM2Codes *code)
 ff_free_vlc(&code->vlc);
 }
 
-static inline int tm2_get_token(GetBitContext *gb, TM2Codes *code)
+static inline int tm2_get_token(BitstreamContext *bc, TM2Codes *code)
 {
 int val;
-val = get_vlc2(gb, code->vlc.table, code->bits, 1);
+val = bitstream_read_vlc(bc, code->vlc.table, code->bits, 1);
 return code->recode[val];
 }
 
@@ -254,8 +254,8 @@ static int tm2_read_deltas(TM2Context *ctx, int stream_id)
 int d, mb;
 int i, v;
 
-d  = get_bits(&ctx->gb, 9);
-mb = get_bits(&ctx->gb, 5);
+d  = bitstream_read(&ctx->bc, 9);
+mb = bitstream_read(&ctx->bc, 5);
 
 if ((d < 1) || (d > TM2_DELTAS) || (mb < 1) || (mb > 32)) {
 av_log(ctx->avctx, AV_LOG_ERROR, "Incorrect delta table: %i deltas x 
%i bits\n", d, mb);
@@ -263,7 +263,7 @@ static int tm2_read_deltas(TM2Context *ctx, int stream_id)
 }
 
 for (i = 0; i < d; i++) {
-v = get_bits_long(&ctx->gb, mb);
+v = bitstream_read(&ctx->bc, mb);
 if (v & (1 << (mb - 1)))
 ctx->deltas[stream_id][i] = v - (1 << mb);
 else
@@ -306,10 +306,10 @@ static int tm2_read_stream(TM2Context *ctx, const uint8_t 
*buf, int stream_id, i
 pos = bytestream2_tell(&gb);
 if (skip <= pos)
 return AVERROR_INVALIDDATA;
-init_get_bits(&ctx->gb, buf + pos, (skip - pos) * 8);
+bitstream_init(&ctx->bc, buf + pos, (skip - pos) * 8);
 if ((ret = tm2_read_deltas(ctx, stream_id)) < 0)
 return ret;
-bytestream2_skip(&gb, ((get_bits_count(&ctx->gb) + 31) >> 5) << 2);
+bytestream2_skip(&gb, ((bitstream_tell(&ctx->bc) + 31) >> 5) << 2);
 }
 }
 /* skip unused fields */
@@ -323,10 +323,10 @@ static int tm2_read_stream(TM2Context *ctx, const uint8_t 
*buf, int stream_id, i
 pos = bytestream2_tell(&gb);
 if (skip <= pos)
 return AVERROR_INVALIDDATA;
-init_get_bits(&ctx->gb, buf + pos, (skip - pos) * 8);
+bitstream_init(&ctx->bc, buf + pos, (skip - pos) * 8);
 if ((ret = tm2_build_huff_table(ctx, &codes)) < 0)
 return ret;
-bytestream2_ski

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

2017-04-04 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Wed Apr 
13 19:34:49 2016 +0200| [c60cda7cb476315fd7f6d28715316b1aff2e080a] | committer: 
Diego Biurrun

ra288: Convert to the new bitstream reader

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

 libavcodec/ra288.c | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/libavcodec/ra288.c b/libavcodec/ra288.c
index 96d8d1e..bc3fe29 100644
--- a/libavcodec/ra288.c
+++ b/libavcodec/ra288.c
@@ -25,8 +25,8 @@
 
 #define BITSTREAM_READER_LE
 #include "avcodec.h"
+#include "bitstream.h"
 #include "celp_filters.h"
-#include "get_bits.h"
 #include "internal.h"
 #include "lpc.h"
 #include "ra288.h"
@@ -181,7 +181,7 @@ static int ra288_decode_frame(AVCodecContext * avctx, void 
*data,
 float *out;
 int i, ret;
 RA288Context *ractx = avctx->priv_data;
-GetBitContext gb;
+BitstreamContext bc;
 
 if (buf_size < avctx->block_align) {
 av_log(avctx, AV_LOG_ERROR,
@@ -198,11 +198,11 @@ static int ra288_decode_frame(AVCodecContext * avctx, 
void *data,
 }
 out = (float *)frame->data[0];
 
-init_get_bits(&gb, buf, avctx->block_align * 8);
+bitstream_init(&bc, buf, avctx->block_align * 8);
 
 for (i=0; i < RA288_BLOCKS_PER_FRAME; i++) {
-float gain = amptable[get_bits(&gb, 3)];
-int cb_coef = get_bits(&gb, 6 + (i&1));
+float gain = amptable[bitstream_read(&bc, 3)];
+int cb_coef = bitstream_read(&bc, 6 + (i & 1));
 
 decode(ractx, gain, cb_coef);
 

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog


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

2017-04-04 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Wed Apr 
13 19:56:53 2016 +0200| [6efbc88a5cf40c8e6f3c4f7897caf83165920d3b] | committer: 
Diego Biurrun

smacker: Convert to the new bitstream reader

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

 libavcodec/smacker.c | 143 +++
 1 file changed, 75 insertions(+), 68 deletions(-)

diff --git a/libavcodec/smacker.c b/libavcodec/smacker.c
index e3e5475..027728e 100644
--- a/libavcodec/smacker.c
+++ b/libavcodec/smacker.c
@@ -35,8 +35,8 @@
 
 #define BITSTREAM_READER_LE
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bytestream.h"
-#include "get_bits.h"
 #include "internal.h"
 #include "mathops.h"
 
@@ -93,9 +93,10 @@ enum SmkBlockTypes {
 /**
  * Decode local frame tree
  */
-static int smacker_decode_tree(GetBitContext *gb, HuffContext *hc, uint32_t 
prefix, int length)
+static int smacker_decode_tree(BitstreamContext *bc, HuffContext *hc,
+   uint32_t prefix, int length)
 {
-if(!get_bits1(gb)){ //Leaf
+if (!bitstream_read_bit(bc)) { // Leaf
 if(hc->current >= 256){
 av_log(NULL, AV_LOG_ERROR, "Tree size exceeded!\n");
 return -1;
@@ -107,7 +108,7 @@ static int smacker_decode_tree(GetBitContext *gb, 
HuffContext *hc, uint32_t pref
 hc->bits[hc->current] = 0;
 hc->lengths[hc->current] = 0;
 }
-hc->values[hc->current] = get_bits(gb, 8);
+hc->values[hc->current] = bitstream_read(bc, 8);
 hc->current++;
 if(hc->maxlength < length)
 hc->maxlength = length;
@@ -115,26 +116,27 @@ static int smacker_decode_tree(GetBitContext *gb, 
HuffContext *hc, uint32_t pref
 } else { //Node
 int r;
 length++;
-r = smacker_decode_tree(gb, hc, prefix, length);
+r = smacker_decode_tree(bc, hc, prefix, length);
 if(r)
 return r;
-return smacker_decode_tree(gb, hc, prefix | (1 << (length - 1)), 
length);
+return smacker_decode_tree(bc, hc, prefix | (1 << (length - 1)), 
length);
 }
 }
 
 /**
  * Decode header tree
  */
-static int smacker_decode_bigtree(GetBitContext *gb, HuffContext *hc, DBCtx 
*ctx)
+static int smacker_decode_bigtree(BitstreamContext *bc, HuffContext *hc,
+  DBCtx *ctx)
 {
 if (hc->current + 1 >= hc->length) {
 av_log(NULL, AV_LOG_ERROR, "Tree size exceeded!\n");
 return -1;
 }
-if(!get_bits1(gb)){ //Leaf
+if (!bitstream_read_bit(bc)) { // Leaf
 int val, i1, i2;
-i1 = ctx->v1->table ? get_vlc2(gb, ctx->v1->table, SMKTREE_BITS, 3) : 
0;
-i2 = ctx->v2->table ? get_vlc2(gb, ctx->v2->table, SMKTREE_BITS, 3) : 
0;
+i1 = ctx->v1->table ? bitstream_read_vlc(bc, ctx->v1->table, 
SMKTREE_BITS, 3) : 0;
+i2 = ctx->v2->table ? bitstream_read_vlc(bc, ctx->v2->table, 
SMKTREE_BITS, 3) : 0;
 if (i1 < 0 || i2 < 0)
 return -1;
 val = ctx->recode1[i1] | (ctx->recode2[i2] << 8);
@@ -155,12 +157,12 @@ static int smacker_decode_bigtree(GetBitContext *gb, 
HuffContext *hc, DBCtx *ctx
 int r = 0, r_new, t;
 
 t = hc->current++;
-r = smacker_decode_bigtree(gb, hc, ctx);
+r = smacker_decode_bigtree(bc, hc, ctx);
 if(r < 0)
 return r;
 hc->values[t] = SMK_NODE | r;
 r++;
-r_new = smacker_decode_bigtree(gb, hc, ctx);
+r_new = smacker_decode_bigtree(bc, hc, ctx);
 if (r_new < 0)
 return r_new;
 return r + r_new;
@@ -170,7 +172,8 @@ static int smacker_decode_bigtree(GetBitContext *gb, 
HuffContext *hc, DBCtx *ctx
 /**
  * Store large tree as Libav's vlc codes
  */
-static int smacker_decode_header_tree(SmackVContext *smk, GetBitContext *gb, 
int **recodes, int *last, int size)
+static int smacker_decode_header_tree(SmackVContext *smk, BitstreamContext *bc,
+  int **recodes, int *last, int size)
 {
 int res;
 HuffContext huff;
@@ -204,9 +207,9 @@ static int smacker_decode_header_tree(SmackVContext *smk, 
GetBitContext *gb, int
 goto error;
 }
 
-if(get_bits1(gb)) {
-smacker_decode_tree(gb, &tmp1, 0, 0);
-skip_bits1(gb);
+if (bitstream_read_bit(bc)) {
+smacker_decode_tree(bc, &tmp1, 0, 0);
+bitstream_skip(bc, 1);
 res = init_vlc(&vlc[0], SMKTREE_BITS, tmp1.length,
 tmp1.lengths, sizeof(int), sizeof(int),
 tmp1.bits, sizeof(uint32_t), sizeof(uint32_t), 
INIT_VLC_LE);
@@ -218,9 +221,9 @@ static int smacker_decode_header_tree(SmackVContext *smk, 
G

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

2017-04-09 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Wed Apr  
6 20:26:48 2016 +0200| [39ecf0588fb2ea4ff9b22c89e836b07f9fe2d24f] | committer: 
Diego Biurrun

webp: Convert to the new bitstream reader

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

 libavcodec/webp.c | 106 ++
 1 file changed, 50 insertions(+), 56 deletions(-)

diff --git a/libavcodec/webp.c b/libavcodec/webp.c
index b26399c504..a6ab52bf83 100644
--- a/libavcodec/webp.c
+++ b/libavcodec/webp.c
@@ -41,8 +41,8 @@
 
 #define BITSTREAM_READER_LE
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bytestream.h"
-#include "get_bits.h"
 #include "internal.h"
 #include "thread.h"
 #include "vp8.h"
@@ -183,7 +183,7 @@ typedef struct ImageContext {
 
 typedef struct WebPContext {
 VP8Context v;   /* VP8 Context used for lossy decoding 
*/
-GetBitContext gb;   /* bitstream reader for main image 
chunk */
+BitstreamContext bc;/* bitstream reader for main image 
chunk */
 AVFrame *alpha_frame;   /* AVFrame for alpha data decompressed 
from VP8L */
 AVCodecContext *avctx;  /* parent AVCodecContext */
 int initialized;/* set once the VP8 context is 
initialized */
@@ -232,47 +232,41 @@ static void image_ctx_free(ImageContext *img)
  *   - assumes 8-bit table to make reversal simpler
  *   - assumes max depth of 2 since the max code length for WebP is 15
  */
-static av_always_inline int webp_get_vlc(GetBitContext *gb, VLC_TYPE 
(*table)[2])
+static av_always_inline int webp_get_vlc(BitstreamContext *bc, VLC_TYPE 
(*table)[2])
 {
 int n, nb_bits;
 unsigned int index;
 int code;
 
-OPEN_READER(re, gb);
-UPDATE_CACHE(re, gb);
-
-index = SHOW_UBITS(re, gb, 8);
+index = bitstream_peek(bc, 8);
 index = ff_reverse[index];
 code  = table[index][0];
 n = table[index][1];
 
 if (n < 0) {
-LAST_SKIP_BITS(re, gb, 8);
-UPDATE_CACHE(re, gb);
+bitstream_skip(bc, 8);
 
 nb_bits = -n;
 
-index = SHOW_UBITS(re, gb, nb_bits);
+index = bitstream_peek(bc, nb_bits);
 index = (ff_reverse[index] >> (8 - nb_bits)) + code;
 code  = table[index][0];
 n = table[index][1];
 }
-SKIP_BITS(re, gb, n);
-
-CLOSE_READER(re, gb);
+bitstream_skip(bc, n);
 
 return code;
 }
 
-static int huff_reader_get_symbol(HuffReader *r, GetBitContext *gb)
+static int huff_reader_get_symbol(HuffReader *r, BitstreamContext *bc)
 {
 if (r->simple) {
 if (r->nb_symbols == 1)
 return r->simple_symbols[0];
 else
-return r->simple_symbols[get_bits1(gb)];
+return r->simple_symbols[bitstream_read_bit(bc)];
 } else
-return webp_get_vlc(gb, r->vlc.table);
+return webp_get_vlc(bc, r->vlc.table);
 }
 
 static int huff_reader_build_canonical(HuffReader *r, int *code_lengths,
@@ -339,15 +333,15 @@ static int huff_reader_build_canonical(HuffReader *r, int 
*code_lengths,
 
 static void read_huffman_code_simple(WebPContext *s, HuffReader *hc)
 {
-hc->nb_symbols = get_bits1(&s->gb) + 1;
+hc->nb_symbols = bitstream_read_bit(&s->bc) + 1;
 
-if (get_bits1(&s->gb))
-hc->simple_symbols[0] = get_bits(&s->gb, 8);
+if (bitstream_read_bit(&s->bc))
+hc->simple_symbols[0] = bitstream_read(&s->bc, 8);
 else
-hc->simple_symbols[0] = get_bits1(&s->gb);
+hc->simple_symbols[0] = bitstream_read_bit(&s->bc);
 
 if (hc->nb_symbols == 2)
-hc->simple_symbols[1] = get_bits(&s->gb, 8);
+hc->simple_symbols[1] = bitstream_read(&s->bc, 8);
 
 hc->simple = 1;
 }
@@ -359,13 +353,13 @@ static int read_huffman_code_normal(WebPContext *s, 
HuffReader *hc,
 int *code_lengths = NULL;
 int code_length_code_lengths[NUM_CODE_LENGTH_CODES] = { 0 };
 int i, symbol, max_symbol, prev_code_len, ret;
-int num_codes = 4 + get_bits(&s->gb, 4);
+int num_codes = 4 + bitstream_read(&s->bc, 4);
 
 if (num_codes > NUM_CODE_LENGTH_CODES)
 return AVERROR_INVALIDDATA;
 
 for (i = 0; i < num_codes; i++)
-code_length_code_lengths[code_length_code_order[i]] = get_bits(&s->gb, 
3);
+code_length_code_lengths[code_length_code_order[i]] = 
bitstream_read(&s->bc, 3);
 
 ret = huff_reader_build_canonical(&code_len_hc, code_length_code_lengths,
   NUM_CODE_LENGTH_CODES);
@@ -378,9 +372,9 @@ static int read_huffman_code_normal(WebPContext *s, 
HuffReader *hc,
 goto finish;
 }
 
-if (get_bits1(&s->gb)) {
- 

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

2017-04-09 Thread Alexandra Hájková
ffmpeg | branch: master | Alexandra Hájková  | Sun Apr 
10 12:24:42 2016 +0200| [f5b7bd2a7c3f3498119f7c4484962e15e8f2ad26] | committer: 
Diego Biurrun

imc: Convert to the new bitstream reader

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

 libavcodec/imc.c | 45 +++--
 1 file changed, 23 insertions(+), 22 deletions(-)

diff --git a/libavcodec/imc.c b/libavcodec/imc.c
index 9a6912dc13..01ab0125f2 100644
--- a/libavcodec/imc.c
+++ b/libavcodec/imc.c
@@ -37,9 +37,10 @@
 #include "libavutil/channel_layout.h"
 #include "libavutil/float_dsp.h"
 #include "libavutil/internal.h"
+
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bswapdsp.h"
-#include "get_bits.h"
 #include "fft.h"
 #include "internal.h"
 #include "sinewin.h"
@@ -91,7 +92,7 @@ typedef struct IMCContext {
 //@}
 
 float sqrt_tab[30];
-GetBitContext gb;
+BitstreamContext bc;
 
 BswapDSPContext bdsp;
 AVFloatDSPContext fdsp;
@@ -328,12 +329,12 @@ static void imc_read_level_coeffs(IMCContext *q, int 
stream_format_code,
 if (stream_format_code & 4)
 start = 1;
 if (start)
-levlCoeffs[0] = get_bits(&q->gb, 7);
+levlCoeffs[0] = bitstream_read(&q->bc, 7);
 for (i = start; i < BANDS; i++) {
-levlCoeffs[i] = get_vlc2(&q->gb, hufftab[cb_sel[i]]->table,
- hufftab[cb_sel[i]]->bits, 2);
+levlCoeffs[i] = bitstream_read_vlc(&q->bc, hufftab[cb_sel[i]]->table,
+   hufftab[cb_sel[i]]->bits, 2);
 if (levlCoeffs[i] == 17)
-levlCoeffs[i] += get_bits(&q->gb, 4);
+levlCoeffs[i] += bitstream_read(&q->bc, 4);
 }
 }
 
@@ -342,10 +343,10 @@ static void imc_read_level_coeffs_raw(IMCContext *q, int 
stream_format_code,
 {
 int i;
 
-q->coef0_pos  = get_bits(&q->gb, 5);
-levlCoeffs[0] = get_bits(&q->gb, 7);
+q->coef0_pos  = bitstream_read(&q->bc, 5);
+levlCoeffs[0] = bitstream_read(&q->bc, 7);
 for (i = 1; i < BANDS; i++)
-levlCoeffs[i] = get_bits(&q->gb, 4);
+levlCoeffs[i] = bitstream_read(&q->bc, 4);
 }
 
 static void imc_decode_level_coefficients(IMCContext *q, int *levlCoeffBuf,
@@ -612,19 +613,19 @@ static void imc_get_skip_coeff(IMCContext *q, IMCChannel 
*chctx)
 chctx->skipFlagBits[i] = band_tab[i + 1] - band_tab[i];
 
 for (j = band_tab[i]; j < band_tab[i + 1]; j++) {
-chctx->skipFlags[j] = get_bits1(&q->gb);
+chctx->skipFlags[j] = bitstream_read_bit(&q->bc);
 if (chctx->skipFlags[j])
 chctx->skipFlagCount[i]++;
 }
 } else {
 for (j = band_tab[i]; j < band_tab[i + 1] - 1; j += 2) {
-if (!get_bits1(&q->gb)) { // 0
+if (!bitstream_read_bit(&q->bc)) { // 0
 chctx->skipFlagBits[i]++;
 chctx->skipFlags[j]  = 1;
 chctx->skipFlags[j + 1]  = 1;
 chctx->skipFlagCount[i] += 2;
 } else {
-if (get_bits1(&q->gb)) { // 11
+if (bitstream_read_bit(&q->bc)) { // 11
 chctx->skipFlagBits[i] += 2;
 chctx->skipFlags[j] = 0;
 chctx->skipFlags[j + 1] = 1;
@@ -632,7 +633,7 @@ static void imc_get_skip_coeff(IMCContext *q, IMCChannel 
*chctx)
 } else {
 chctx->skipFlagBits[i] += 3;
 chctx->skipFlags[j + 1] = 0;
-if (!get_bits1(&q->gb)) { // 100
+if (!bitstream_read_bit(&q->bc)) { // 100
 chctx->skipFlags[j] = 1;
 chctx->skipFlagCount[i]++;
 } else { // 101
@@ -644,7 +645,7 @@ static void imc_get_skip_coeff(IMCContext *q, IMCChannel 
*chctx)
 
 if (j < band_tab[i + 1]) {
 chctx->skipFlagBits[i]++;
-if ((chctx->skipFlags[j] = get_bits1(&q->gb)))
+if ((chctx->skipFlags[j] = bitstream_read_bit(&q->bc)))
 chctx->skipFlagCount[i]++;
 }
 }
@@ -781,13 +782,13 @@ static int imc_get_coeffs(IMCContext *q, IMCChannel 
*chctx)
 cw_len = chctx->CWlengthT[j];
 cw = 0;
 
-if (get_bits_count(&q->gb) + cw_len > 512) {
+if (bitstream_tell(&q->bc) + cw_len > 512) {

  1   2   >