From fc389553f0135f3b360d42eb1dfdeb0d5aaa3205 Mon Sep 17 00:00:00 2001 From: Tim Terriberry Date: Tue, 8 May 2012 02:51:57 +0000 Subject: [PATCH 2/5] Fix pp_sharp_mod calculation. This was broken when the dequant_tables indexing changed in commit r16102, but it only affected post-processing quality, so we never noticed. With gcc 4.8.0, this can now trigger a segfault during decoder initialization. svn path=/trunk/theora/; revision=18268 --- lib/decode.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/decode.c b/lib/decode.c index b1efb15..56a93a8 100644 --- a/lib/decode.c +++ b/lib/decode.c @@ -400,10 +400,10 @@ static int oc_dec_init(oc_dec_ctx *_dec,const th_info *_info, int qsum; qsum=0; for(qti=0;qti<2;qti++)for(pli=0;pli<3;pli++){ - qsum+=_dec->state.dequant_tables[qti][pli][qi][12]+ - _dec->state.dequant_tables[qti][pli][qi][17]+ - _dec->state.dequant_tables[qti][pli][qi][18]+ - _dec->state.dequant_tables[qti][pli][qi][24]<<(pli==0); + qsum+=_dec->state.dequant_tables[qi][pli][qti][12]+ + _dec->state.dequant_tables[qi][pli][qti][17]+ + _dec->state.dequant_tables[qi][pli][qti][18]+ + _dec->state.dequant_tables[qi][pli][qti][24]<<(pli==0); } _dec->pp_sharp_mod[qi]=-(qsum>>11); }