avcodec/arm/cabac: fix inline cabac reader with the UNCHECKED bitstream reader
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 15 Mar 2014 00:08:45 +0000 (01:08 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 15 Mar 2014 00:08:45 +0000 (01:08 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/arm/cabac.h
libavcodec/h264_cabac.c

index f581d86..fdbf86b 100644 (file)
@@ -59,12 +59,18 @@ static av_always_inline int get_cabac_inline_arm(CABACContext *c,
         "tst        %[r_c]        , %[r_c]                      \n\t"
         "bne        2f                                          \n\t"
         "ldr        %[r_c]        , [%[c], %[byte]]             \n\t"
+#if UNCHECKED_BITSTREAM_READER
+        "ldrh       %[tmp]        , [%[r_c]]                    \n\t"
+        "add        %[r_c]        , %[r_c]      , #2            \n\t"
+        "str        %[r_c]        , [%[c], %[byte]]             \n\t"
+#else
         "ldr        %[r_b]        , [%[c], %[end]]              \n\t"
         "ldrh       %[tmp]        , [%[r_c]]                    \n\t"
         "cmp        %[r_c]        , %[r_b]                      \n\t"
         "itt        lt                                          \n\t"
         "addlt      %[r_c]        , %[r_c]      , #2            \n\t"
         "strlt      %[r_c]        , [%[c], %[byte]]             \n\t"
+#endif
         "sub        %[r_c]        , %[low]      , #1            \n\t"
         "add        %[r_b]        , %[tables]   , %[norm_off]   \n\t"
         "eor        %[r_c]        , %[low]      , %[r_c]        \n\t"
index e6fc652..1f7320c 100644 (file)
@@ -1620,7 +1620,7 @@ decode_cabac_residual_internal(H264Context *h, int16_t *block,
     cc.range     = h->cabac.range;
     cc.low       = h->cabac.low;
     cc.bytestream= h->cabac.bytestream;
-#if !UNCHECKED_BITSTREAM_READER || ARCH_ARM || ARCH_AARCH64
+#if !UNCHECKED_BITSTREAM_READER || ARCH_AARCH64
     cc.bytestream_end = h->cabac.bytestream_end;
 #endif
 #else