Commit 11177a4d authored by Jason Garrett-Glaser's avatar Jason Garrett-Glaser

Fix SVQ3 after adding 4:4:4 H.264 support

parent 7b442ad9
...@@ -633,8 +633,9 @@ static int svq3_decode_mb(SVQ3Context *svq3, unsigned int mb_type) ...@@ -633,8 +633,9 @@ static int svq3_decode_mb(SVQ3Context *svq3, unsigned int mb_type)
memset(h->intra4x4_pred_mode+h->mb2br_xy[mb_xy], DC_PRED, 8); memset(h->intra4x4_pred_mode+h->mb2br_xy[mb_xy], DC_PRED, 8);
} }
if (!IS_SKIP(mb_type) || s->pict_type == AV_PICTURE_TYPE_B) { if (!IS_SKIP(mb_type) || s->pict_type == AV_PICTURE_TYPE_B) {
memset(h->non_zero_count_cache + 8, 0, 4*9*sizeof(uint8_t)); memset(h->non_zero_count_cache + 8, 0, 14*8*sizeof(uint8_t));
s->dsp.clear_blocks(h->mb); s->dsp.clear_blocks(h->mb+ 0);
s->dsp.clear_blocks(h->mb+384);
} }
if (!IS_INTRA16x16(mb_type) && (!IS_SKIP(mb_type) || s->pict_type == AV_PICTURE_TYPE_B)) { if (!IS_INTRA16x16(mb_type) && (!IS_SKIP(mb_type) || s->pict_type == AV_PICTURE_TYPE_B)) {
...@@ -654,8 +655,8 @@ static int svq3_decode_mb(SVQ3Context *svq3, unsigned int mb_type) ...@@ -654,8 +655,8 @@ static int svq3_decode_mb(SVQ3Context *svq3, unsigned int mb_type)
} }
} }
if (IS_INTRA16x16(mb_type)) { if (IS_INTRA16x16(mb_type)) {
AV_ZERO128(h->mb_luma_dc+0); AV_ZERO128(h->mb_luma_dc[0]+0);
AV_ZERO128(h->mb_luma_dc+8); AV_ZERO128(h->mb_luma_dc[0]+8);
if (svq3_decode_block(&s->gb, h->mb_luma_dc, 0, 1)){ if (svq3_decode_block(&s->gb, h->mb_luma_dc, 0, 1)){
av_log(h->s.avctx, AV_LOG_ERROR, "error while decoding intra luma dc\n"); av_log(h->s.avctx, AV_LOG_ERROR, "error while decoding intra luma dc\n");
return -1; return -1;
...@@ -681,20 +682,23 @@ static int svq3_decode_mb(SVQ3Context *svq3, unsigned int mb_type) ...@@ -681,20 +682,23 @@ static int svq3_decode_mb(SVQ3Context *svq3, unsigned int mb_type)
} }
if ((cbp & 0x30)) { if ((cbp & 0x30)) {
for (i = 0; i < 2; ++i) { for (i = 1; i < 3; ++i) {
if (svq3_decode_block(&s->gb, &h->mb[16*(16 + 4*i)], 0, 3)){ if (svq3_decode_block(&s->gb, &h->mb[16*16*i], 0, 3)){
av_log(h->s.avctx, AV_LOG_ERROR, "error while decoding chroma dc block\n"); av_log(h->s.avctx, AV_LOG_ERROR, "error while decoding chroma dc block\n");
return -1; return -1;
} }
} }
if ((cbp & 0x20)) { if ((cbp & 0x20)) {
for (i = 0; i < 8; i++) { for (i = 1; i < 3; i++) {
h->non_zero_count_cache[ scan8[16+i] ] = 1; for (j = 0; j < 4; j++) {
k = 16*i + j;
if (svq3_decode_block(&s->gb, &h->mb[16*(16 + i)], 1, 1)){ h->non_zero_count_cache[ scan8[k] ] = 1;
av_log(h->s.avctx, AV_LOG_ERROR, "error while decoding chroma ac block\n");
return -1; if (svq3_decode_block(&s->gb, &h->mb[16*k], 1, 1)){
av_log(h->s.avctx, AV_LOG_ERROR, "error while decoding chroma ac block\n");
return -1;
}
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment