[FFmpeg-devel] [PATCH] [RFC] get_bits: Support max_depth > 2 in GET_RL_VLC_INTERNAL

Kieran Kunhya kierank at ob-encoder.com
Sun Dec 13 19:02:09 CET 2015


---
 libavcodec/get_bits.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/libavcodec/get_bits.h b/libavcodec/get_bits.h
index 0d3db1f..0a61c80 100644
--- a/libavcodec/get_bits.h
+++ b/libavcodec/get_bits.h
@@ -539,6 +539,17 @@ void ff_free_vlc(VLC *vlc);
             index = SHOW_UBITS(name, gb, nb_bits) + level;      \
             level = table[index].level;                         \
             n     = table[index].len;                           \
+            if (max_depth > 2 && n < 0) {                       \
+                LAST_SKIP_BITS(name, gb, nb_bits);              \
+                if (need_update) {                              \
+                    UPDATE_CACHE(name, gb);                     \
+                }                                               \
+                nb_bits = -n;                                   \
+                                                                \
+                index = SHOW_UBITS(name, gb, nb_bits) + level;  \
+                level = table[index].level;                     \
+                n     = table[index].len;                       \
+            }                                                   \
         }                                                       \
         run = table[index].run;                                 \
         SKIP_BITS(name, gb, n);                                 \
-- 
1.9.1



More information about the ffmpeg-devel mailing list