hevc_deblock: Fix compilation with nasm
[ffmpeg.git] / libavcodec / golomb.h
index 22ab5cb..22a87c6 100644 (file)
@@ -53,7 +53,6 @@ extern const uint8_t ff_interleaved_dirac_golomb_vlc_code[256];
 static inline int get_ue_golomb(GetBitContext *gb)
 {
     unsigned int buf;
-    int log;
 
     OPEN_READER(re, gb);
     UPDATE_CACHE(re, gb);
@@ -66,7 +65,7 @@ static inline int get_ue_golomb(GetBitContext *gb)
 
         return ff_ue_golomb_vlc_code[buf];
     } else {
-        log = 2 * av_log2(buf) - 31;
+        int log = 2 * av_log2(buf) - 31;
         buf >>= log;
         buf--;
         LAST_SKIP_BITS(re, gb, 32 - log);
@@ -139,7 +138,7 @@ static inline unsigned svq3_get_ue_golomb(GetBitContext *gb)
             ret = (ret << 4) | ff_interleaved_dirac_golomb_vlc_code[buf];
             UPDATE_CACHE(re, gb);
             buf = GET_CACHE(re, gb);
-        } while (HAVE_BITS_REMAINING(re, gb));
+        } while (BITS_AVAILABLE(re, gb));
 
         CLOSE_READER(re, gb);
         return ret - 1;
@@ -180,7 +179,6 @@ static inline int get_te_golomb(GetBitContext *gb, int range)
 static inline int get_se_golomb(GetBitContext *gb)
 {
     unsigned int buf;
-    int log;
 
     OPEN_READER(re, gb);
     UPDATE_CACHE(re, gb);
@@ -193,7 +191,7 @@ static inline int get_se_golomb(GetBitContext *gb)
 
         return ff_se_golomb_vlc_code[buf];
     } else {
-        log = 2 * av_log2(buf) - 31;
+        int log = 2 * av_log2(buf) - 31;
         buf >>= log;
 
         LAST_SKIP_BITS(re, gb, 32 - log);
@@ -208,10 +206,21 @@ static inline int get_se_golomb(GetBitContext *gb)
     }
 }
 
+static inline int get_se_golomb_long(GetBitContext *gb)
+{
+    unsigned int buf = get_ue_golomb_long(gb);
+
+    if (buf & 1)
+        buf = (buf + 1) >> 1;
+    else
+        buf = -(buf >> 1);
+
+    return buf;
+}
+
 static inline int svq3_get_se_golomb(GetBitContext *gb)
 {
     unsigned int buf;
-    int log;
 
     OPEN_READER(re, gb);
     UPDATE_CACHE(re, gb);
@@ -224,6 +233,7 @@ static inline int svq3_get_se_golomb(GetBitContext *gb)
 
         return ff_interleaved_se_golomb_vlc_code[buf];
     } else {
+        int log;
         LAST_SKIP_BITS(re, gb, 8);
         UPDATE_CACHE(re, gb);
         buf |= 1 | (GET_CACHE(re, gb) >> 8);
@@ -243,12 +253,10 @@ static inline int svq3_get_se_golomb(GetBitContext *gb)
 
 static inline int dirac_get_se_golomb(GetBitContext *gb)
 {
-    uint32_t buf;
-    uint32_t ret;
-
-    ret = svq3_get_ue_golomb(gb);
+    uint32_t ret = svq3_get_ue_golomb(gb);
 
     if (ret) {
+        uint32_t buf;
         OPEN_READER(re, gb);
         UPDATE_CACHE(re, gb);
         buf = SHOW_SBITS(re, gb, 1);
@@ -320,7 +328,7 @@ static inline int get_ur_golomb_jpegls(GetBitContext *gb, int k, int limit,
         return buf;
     } else {
         int i;
-        for (i = 0; i < limit && SHOW_UBITS(re, gb, 1) == 0 && HAVE_BITS_REMAINING(re, gb); i++) {
+        for (i = 0; i < limit && SHOW_UBITS(re, gb, 1) == 0 && BITS_AVAILABLE(re, gb); i++) {
             LAST_SKIP_BITS(re, gb, 1);
             UPDATE_CACHE(re, gb);
         }
@@ -459,8 +467,6 @@ static inline int get_te(GetBitContext *s, int r, char *file, const char *func,
  */
 static inline void set_ue_golomb(PutBitContext *pb, int i)
 {
-    int e;
-
     assert(i >= 0);
 
 #if 0
@@ -472,7 +478,7 @@ static inline void set_ue_golomb(PutBitContext *pb, int i)
     if (i < 256)
         put_bits(pb, ff_ue_golomb_len[i], i + 1);
     else {
-        e = av_log2(i + 1);
+        int e = av_log2(i + 1);
         put_bits(pb, 2 * e + 1, i + 1);
     }
 }