Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Mitrofanov <BugMaster@narod.ru>2017-06-14 03:01:56 +0300
committerRonald S. Bultje <rsbultje@gmail.com>2017-06-19 21:33:40 +0300
commitcf231b68da1150c100114f2c5671b7ed740f917a (patch)
tree2738d003599506c69b50a639187539ee573ce1a4 /libavcodec/h264_cabac.c
parent06dda70f1e7c69a3b1684af5e6930431c62c527a (diff)
avcodec/h264: Fix mix of lossless and lossy MBs decoding
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Diffstat (limited to 'libavcodec/h264_cabac.c')
-rw-r--r--libavcodec/h264_cabac.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/libavcodec/h264_cabac.c b/libavcodec/h264_cabac.c
index 28aacc5c13..0973e30be9 100644
--- a/libavcodec/h264_cabac.c
+++ b/libavcodec/h264_cabac.c
@@ -2389,14 +2389,6 @@ decode_intra_mb:
const uint8_t *scan, *scan8x8;
const uint32_t *qmul;
- if(IS_INTERLACED(mb_type)){
- scan8x8 = sl->qscale ? h->field_scan8x8 : h->field_scan8x8_q0;
- scan = sl->qscale ? h->field_scan : h->field_scan_q0;
- }else{
- scan8x8 = sl->qscale ? h->zigzag_scan8x8 : h->zigzag_scan8x8_q0;
- scan = sl->qscale ? h->zigzag_scan : h->zigzag_scan_q0;
- }
-
// decode_cabac_mb_dqp
if(get_cabac_noinline( &sl->cabac, &sl->cabac_state[60 + (sl->last_qscale_diff != 0)])){
int val = 1;
@@ -2427,6 +2419,14 @@ decode_intra_mb:
}else
sl->last_qscale_diff=0;
+ if(IS_INTERLACED(mb_type)){
+ scan8x8 = sl->qscale ? h->field_scan8x8 : h->field_scan8x8_q0;
+ scan = sl->qscale ? h->field_scan : h->field_scan_q0;
+ }else{
+ scan8x8 = sl->qscale ? h->zigzag_scan8x8 : h->zigzag_scan8x8_q0;
+ scan = sl->qscale ? h->zigzag_scan : h->zigzag_scan_q0;
+ }
+
decode_cabac_luma_residual(h, sl, scan, scan8x8, pixel_shift, mb_type, cbp, 0);
if (CHROMA444(h)) {
decode_cabac_luma_residual(h, sl, scan, scan8x8, pixel_shift, mb_type, cbp, 1);