Browse code

ac3enc: fix bug in stereo rematrixing decision.

The rematrixing strategy reuse flags are not reset between frames, so they
need to be initialized for all blocks, not just block 0.

Signed-off-by: Mans Rullgard <mans@mansr.com>

Justin Ruggles authored on 2011/02/16 09:30:24
Showing 3 changed files
... ...
@@ -310,9 +310,9 @@ static void compute_rematrixing_strategy(AC3EncodeContext *s)
310 310
 
311 311
     nb_coefs = FFMIN(s->nb_coefs[0], s->nb_coefs[1]);
312 312
 
313
-    s->blocks[0].new_rematrixing_strategy = 1;
314 313
     for (blk = 0; blk < AC3_MAX_BLOCKS; blk++) {
315 314
         block = &s->blocks[blk];
315
+        block->new_rematrixing_strategy = !blk;
316 316
         for (bnd = 0; bnd < 4; bnd++) {
317 317
             /* calculate calculate sum of squared coeffs for one band in one block */
318 318
             int start = ff_ac3_rematrix_band_tab[bnd];
... ...
@@ -337,7 +337,6 @@ static void compute_rematrixing_strategy(AC3EncodeContext *s)
337 337
 
338 338
             /* determine if new rematrixing flags will be sent */
339 339
             if (blk &&
340
-                !block->new_rematrixing_strategy &&
341 340
                 block->rematrixing_flags[bnd] != block0->rematrixing_flags[bnd]) {
342 341
                 block->new_rematrixing_strategy = 1;
343 342
             }
... ...
@@ -1,2 +1,2 @@
1
-f8eddf3c4e119bcb2aa89a76d7461259 *./tests/data/acodec/ac3.rm
1
+07bd593823ebd721b3a32ef298bdfc20 *./tests/data/acodec/ac3.rm
2 2
 98751 ./tests/data/acodec/ac3.rm
... ...
@@ -1,13 +1,17 @@
1 1
 ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
2 2
 ret: 0         st:-1 flags:0  ts:-1.000000
3 3
 ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
4
-ret:-1         st:-1 flags:1  ts: 1.894167
5
-ret:-1         st: 0 flags:0  ts: 0.788000
4
+ret: 0         st:-1 flags:1  ts: 1.894167
5
+ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
6
+ret: 0         st: 0 flags:0  ts: 0.788000
7
+ret: 0         st: 0 flags:1 dts:4160806.587000 pts:4160806.587000 pos:   3883 size:   116
6 8
 ret: 0         st: 0 flags:1  ts:-0.317000
7 9
 ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
8
-ret:-1         st:-1 flags:0  ts: 2.576668
10
+ret: 0         st:-1 flags:0  ts: 2.576668
11
+ret: 0         st: 0 flags:1 dts:4160806.587000 pts:4160806.587000 pos:   3883 size:   116
9 12
 ret:-1         st:-1 flags:1  ts: 1.470835
10
-ret:-1         st: 0 flags:0  ts: 0.365000
13
+ret: 0         st: 0 flags:0  ts: 0.365000
14
+ret: 0         st: 0 flags:1 dts:4160806.587000 pts:4160806.587000 pos:   3883 size:   116
11 15
 ret: 0         st: 0 flags:1  ts:-0.741000
12 16
 ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
13 17
 ret:-1         st:-1 flags:0  ts: 2.153336
... ...
@@ -16,20 +20,26 @@ ret: 0         st: 0 flags:0  ts:-0.058000
16 16
 ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
17 17
 ret:-1         st: 0 flags:1  ts: 2.836000
18 18
 ret:-1         st:-1 flags:0  ts: 1.730004
19
-ret:-1         st:-1 flags:1  ts: 0.624171
19
+ret: 0         st:-1 flags:1  ts: 0.624171
20
+ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
20 21
 ret: 0         st: 0 flags:0  ts:-0.482000
21 22
 ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
22
-ret:-1         st: 0 flags:1  ts: 2.413000
23
+ret: 0         st: 0 flags:1  ts: 2.413000
24
+ret: 0         st: 0 flags:1 dts: 2.229000 pts: 2.229000 pos:  36705 size:   556
23 25
 ret:-1         st:-1 flags:0  ts: 1.306672
24
-ret:-1         st:-1 flags:1  ts: 0.200839
26
+ret: 0         st:-1 flags:1  ts: 0.200839
27
+ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
25 28
 ret: 0         st: 0 flags:0  ts:-0.905000
26 29
 ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
27 30
 ret:-1         st: 0 flags:1  ts: 1.989000
28
-ret:-1         st:-1 flags:0  ts: 0.883340
31
+ret: 0         st:-1 flags:0  ts: 0.883340
32
+ret: 0         st: 0 flags:1 dts:4160806.587000 pts:4160806.587000 pos:   3883 size:   116
29 33
 ret: 0         st:-1 flags:1  ts:-0.222493
30 34
 ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
31
-ret:-1         st: 0 flags:0  ts: 2.672000
35
+ret: 0         st: 0 flags:0  ts: 2.672000
36
+ret: 0         st: 0 flags:1 dts:6354.691000 pts:6354.691000 pos:  10783 size:   304
32 37
 ret:-1         st: 0 flags:1  ts: 1.566000
33
-ret:-1         st:-1 flags:0  ts: 0.460008
38
+ret: 0         st:-1 flags:0  ts: 0.460008
39
+ret: 0         st: 0 flags:1 dts:4160806.587000 pts:4160806.587000 pos:   3883 size:   116
34 40
 ret: 0         st:-1 flags:1  ts:-0.645825
35 41
 ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556