summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2018-05-28 22:29:57 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2018-05-30 17:58:08 +0200
commit8c50d0cccfe4c9f25a8494f76da55dcdc2275058 (patch)
treec81e9007ac3f1f9286a162b940d92154c96c0775
parentb3332a182f8ba33a34542e4a0370f38b914ccf7d (diff)
avcodec/idctdsp: Clear idct/idct_add for studio profile
This does not leave them "as before" which may be a value from a previous profile Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--libavcodec/idctdsp.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libavcodec/idctdsp.c b/libavcodec/idctdsp.c
index 954066a5e3..846ed0b0f8 100644
--- a/libavcodec/idctdsp.c
+++ b/libavcodec/idctdsp.c
@@ -258,9 +258,11 @@ av_cold void ff_idctdsp_init(IDCTDSPContext *c, AVCodecContext *avctx)
if (avctx->bits_per_raw_sample == 10 || avctx->bits_per_raw_sample == 9) {
/* 10-bit MPEG-4 Simple Studio Profile requires a higher precision IDCT
However, it only uses idct_put */
- if (c->mpeg4_studio_profile)
+ if (c->mpeg4_studio_profile) {
c->idct_put = ff_simple_idct_put_int32_10bit;
- else {
+ c->idct_add = NULL;
+ c->idct = NULL;
+ } else {
c->idct_put = ff_simple_idct_put_int16_10bit;
c->idct_add = ff_simple_idct_add_int16_10bit;
c->idct = ff_simple_idct_int16_10bit;