mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avcodec/arm/cabac: fix inline cabac reader with the UNCHECKED bitstream reader
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
2b8d28439b
commit
41d08ca575
@ -59,12 +59,18 @@ static av_always_inline int get_cabac_inline_arm(CABACContext *c,
|
|||||||
"tst %[r_c] , %[r_c] \n\t"
|
"tst %[r_c] , %[r_c] \n\t"
|
||||||
"bne 2f \n\t"
|
"bne 2f \n\t"
|
||||||
"ldr %[r_c] , [%[c], %[byte]] \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"
|
"ldr %[r_b] , [%[c], %[end]] \n\t"
|
||||||
"ldrh %[tmp] , [%[r_c]] \n\t"
|
"ldrh %[tmp] , [%[r_c]] \n\t"
|
||||||
"cmp %[r_c] , %[r_b] \n\t"
|
"cmp %[r_c] , %[r_b] \n\t"
|
||||||
"itt lt \n\t"
|
"itt lt \n\t"
|
||||||
"addlt %[r_c] , %[r_c] , #2 \n\t"
|
"addlt %[r_c] , %[r_c] , #2 \n\t"
|
||||||
"strlt %[r_c] , [%[c], %[byte]] \n\t"
|
"strlt %[r_c] , [%[c], %[byte]] \n\t"
|
||||||
|
#endif
|
||||||
"sub %[r_c] , %[low] , #1 \n\t"
|
"sub %[r_c] , %[low] , #1 \n\t"
|
||||||
"add %[r_b] , %[tables] , %[norm_off] \n\t"
|
"add %[r_b] , %[tables] , %[norm_off] \n\t"
|
||||||
"eor %[r_c] , %[low] , %[r_c] \n\t"
|
"eor %[r_c] , %[low] , %[r_c] \n\t"
|
||||||
|
@ -1620,7 +1620,7 @@ decode_cabac_residual_internal(H264Context *h, int16_t *block,
|
|||||||
cc.range = h->cabac.range;
|
cc.range = h->cabac.range;
|
||||||
cc.low = h->cabac.low;
|
cc.low = h->cabac.low;
|
||||||
cc.bytestream= h->cabac.bytestream;
|
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;
|
cc.bytestream_end = h->cabac.bytestream_end;
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
|
Loading…
Reference in New Issue
Block a user