summaryrefslogtreecommitdiff
blob: 862d6a3b8164d8c7d9ab5926105df90d615254ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
From 0ae66d565e6bead8604d312bc1a4e9dccf245c88 Mon Sep 17 00:00:00 2001
From: Tim Terriberry <tterribe@xiph.org>
Date: Tue, 8 May 2012 02:51:57 +0000
Subject: [PATCH] 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(-)

Note: The hunk header was modified from

    @@ -400,10 +400,10 @@

to

    @@ -397,10 +397,10 @@

to match the source code in the libtheora-1.1.1 tar-ball.

diff --git a/lib/decode.c b/lib/decode.c
index b803505..9f2516a 100644
--- a/lib/decode.c
+++ b/lib/decode.c
@@ -397,10 +397,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);
   }
-- 
2.10.2