summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Darnley <jdarnley@obe.tv>2017-06-16 14:53:15 +0200
committerJames Darnley <jdarnley@obe.tv>2017-06-20 12:12:13 +0200
commitfa30a0a54854cd291008c065dfaf45d610e3cd04 (patch)
treefcb6a7f7d0000758a8dd728c8ada36cd61c2d694
parent155f071bad5a06364f42a4533b352a85a1451d97 (diff)
avcodec/x86/mpegenc: check IDCT permutation type is a valid value
-rw-r--r--libavcodec/x86/mpegvideoenc_template.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libavcodec/x86/mpegvideoenc_template.c b/libavcodec/x86/mpegvideoenc_template.c
index b2512744ca..3ce72e1367 100644
--- a/libavcodec/x86/mpegvideoenc_template.c
+++ b/libavcodec/x86/mpegvideoenc_template.c
@@ -322,7 +322,7 @@ static int RENAME(dct_quantize)(MpegEncContext *s,
block[0x3E] = temp_block[0x3D]; block[0x33] = temp_block[0x36];
block[0x2F] = temp_block[0x2F]; block[0x37] = temp_block[0x37];
block[0x3B] = temp_block[0x3E]; block[0x3F] = temp_block[0x3F];
- }else{
+ } else if (s->idsp.perm_type == FF_IDCT_PERM_NONE) {
if(last_non_zero_p1 <= 1) goto end;
block[0x01] = temp_block[0x01];
block[0x08] = temp_block[0x08]; block[0x10] = temp_block[0x10];
@@ -366,6 +366,12 @@ static int RENAME(dct_quantize)(MpegEncContext *s,
block[0x3D] = temp_block[0x3D]; block[0x36] = temp_block[0x36];
block[0x2F] = temp_block[0x2F]; block[0x37] = temp_block[0x37];
block[0x3E] = temp_block[0x3E]; block[0x3F] = temp_block[0x3F];
+ } else {
+ av_log(s, AV_LOG_DEBUG, "s->idsp.perm_type: %d\n",
+ (int)s->idsp.perm_type);
+ av_assert0(s->idsp.perm_type == FF_IDCT_PERM_NONE ||
+ s->idsp.perm_type == FF_IDCT_PERM_LIBMPEG2 ||
+ s->idsp.perm_type == FF_IDCT_PERM_SIMPLE);
}
end:
return last_non_zero_p1 - 1;