diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-03-15 01:08:45 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-03-15 01:08:45 +0100 |
commit | 41d08ca57564e1b9d8a4a12cfafe67a2a85914aa (patch) | |
tree | acd1e6831d5699c7adf0f6db59ed8fcf2764c954 | |
parent | 2b8d28439b6e0d368d31cecedb2edbc64375b3bf (diff) | |
download | ffmpeg-41d08ca57564e1b9d8a4a12cfafe67a2a85914aa.tar.gz |
avcodec/arm/cabac: fix inline cabac reader with the UNCHECKED bitstream reader
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/arm/cabac.h | 6 | ||||
-rw-r--r-- | libavcodec/h264_cabac.c | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/libavcodec/arm/cabac.h b/libavcodec/arm/cabac.h index f581d86e70..fdbf86b45e 100644 --- a/libavcodec/arm/cabac.h +++ b/libavcodec/arm/cabac.h @@ -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" diff --git a/libavcodec/h264_cabac.c b/libavcodec/h264_cabac.c index e6fc652794..1f7320c277 100644 --- a/libavcodec/h264_cabac.c +++ b/libavcodec/h264_cabac.c @@ -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 |