summaryrefslogtreecommitdiff
path: root/libavcodec/svq3.c
diff options
context:
space:
mode:
authorDerek Buitenhuis <derek.buitenhuis@gmail.com>2016-04-27 16:07:03 +0100
committerDerek Buitenhuis <derek.buitenhuis@gmail.com>2016-04-27 16:07:19 +0100
commit7dca13428541f358101c92d61d146203d4b7acf8 (patch)
treeb6e26fc616bb646ee8b60b603e4d99e1d82f6de6 /libavcodec/svq3.c
parent47bb289170aa48674a10ada899cf64e7c3b87caf (diff)
parentc2a4ca944d9029a3c162f8f3ddd317b83a7bd600 (diff)
Merge commit 'c2a4ca944d9029a3c162f8f3ddd317b83a7bd600'
* commit 'c2a4ca944d9029a3c162f8f3ddd317b83a7bd600': svq3: eliminate write_back_intra_pred_mode() usage Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Diffstat (limited to 'libavcodec/svq3.c')
-rw-r--r--libavcodec/svq3.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c
index e7c6e27d58..d671050d7c 100644
--- a/libavcodec/svq3.c
+++ b/libavcodec/svq3.c
@@ -721,6 +721,9 @@ static int svq3_decode_mb(SVQ3Context *s, unsigned int mb_type)
mb_type = MB_TYPE_16x16;
} else if (mb_type == 8 || mb_type == 33) { /* INTRA4x4 */
+ int8_t *i4x4 = sl->intra4x4_pred_mode + h->mb2br_xy[sl->mb_xy];
+ int8_t *i4x4_cache = sl->intra4x4_pred_mode_cache;
+
memset(sl->intra4x4_pred_mode_cache, -1, 8 * 5 * sizeof(int8_t));
if (mb_type == 8) {
@@ -766,7 +769,10 @@ static int svq3_decode_mb(SVQ3Context *s, unsigned int mb_type)
memset(&sl->intra4x4_pred_mode_cache[scan8[0] + 8 * i], DC_PRED, 4);
}
- write_back_intra_pred_mode(h, sl);
+ AV_COPY32(i4x4, i4x4_cache + 4 + 8 * 4);
+ i4x4[4] = i4x4_cache[7 + 8 * 3];
+ i4x4[5] = i4x4_cache[7 + 8 * 2];
+ i4x4[6] = i4x4_cache[7 + 8 * 1];
if (mb_type == 8) {
ff_h264_check_intra4x4_pred_mode(h, sl);