[FFmpeg-cvslog] ac3enc: fix bug in stereo rematrixing decision.

Justin Ruggles git
Fri Feb 18 20:38:21 CET 2011


ffmpeg | branch: master | Justin Ruggles <justin.ruggles at gmail.com> | Wed Feb 16 00:30:24 2011 +0000| [6159bd0d670f88dc87f515f859100c53b7d81a89] | committer: Michael Niedermayer

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 at mansr.com>
(cherry picked from commit 5b54d4b376fbd2c291b8a6dba7d425e28f654bcf)

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6159bd0d670f88dc87f515f859100c53b7d81a89
---

 libavcodec/ac3enc.c        |    3 +--
 tests/ref/acodec/ac3_fixed |    2 +-
 tests/ref/seek/ac3_rm      |   30 ++++++++++++++++++++----------
 3 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c
index 72a6c89..02bc403 100644
--- a/libavcodec/ac3enc.c
+++ b/libavcodec/ac3enc.c
@@ -310,9 +310,9 @@ static void compute_rematrixing_strategy(AC3EncodeContext *s)
 
     nb_coefs = FFMIN(s->nb_coefs[0], s->nb_coefs[1]);
 
-    s->blocks[0].new_rematrixing_strategy = 1;
     for (blk = 0; blk < AC3_MAX_BLOCKS; blk++) {
         block = &s->blocks[blk];
+        block->new_rematrixing_strategy = !blk;
         for (bnd = 0; bnd < 4; bnd++) {
             /* calculate calculate sum of squared coeffs for one band in one block */
             int start = ff_ac3_rematrix_band_tab[bnd];
@@ -337,7 +337,6 @@ static void compute_rematrixing_strategy(AC3EncodeContext *s)
 
             /* determine if new rematrixing flags will be sent */
             if (blk &&
-                !block->new_rematrixing_strategy &&
                 block->rematrixing_flags[bnd] != block0->rematrixing_flags[bnd]) {
                 block->new_rematrixing_strategy = 1;
             }
diff --git a/tests/ref/acodec/ac3_fixed b/tests/ref/acodec/ac3_fixed
index 7923d71..f32443d 100644
--- a/tests/ref/acodec/ac3_fixed
+++ b/tests/ref/acodec/ac3_fixed
@@ -1,2 +1,2 @@
-f8eddf3c4e119bcb2aa89a76d7461259 *./tests/data/acodec/ac3.rm
+07bd593823ebd721b3a32ef298bdfc20 *./tests/data/acodec/ac3.rm
 98751 ./tests/data/acodec/ac3.rm
diff --git a/tests/ref/seek/ac3_rm b/tests/ref/seek/ac3_rm
index 7b7d5b0..07fcfa1 100644
--- a/tests/ref/seek/ac3_rm
+++ b/tests/ref/seek/ac3_rm
@@ -1,13 +1,17 @@
 ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
 ret: 0         st:-1 flags:0  ts:-1.000000
 ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
-ret:-1         st:-1 flags:1  ts: 1.894167
-ret:-1         st: 0 flags:0  ts: 0.788000
+ret: 0         st:-1 flags:1  ts: 1.894167
+ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
+ret: 0         st: 0 flags:0  ts: 0.788000
+ret: 0         st: 0 flags:1 dts:4160806.587000 pts:4160806.587000 pos:   3883 size:   116
 ret: 0         st: 0 flags:1  ts:-0.317000
 ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
-ret:-1         st:-1 flags:0  ts: 2.576668
+ret: 0         st:-1 flags:0  ts: 2.576668
+ret: 0         st: 0 flags:1 dts:4160806.587000 pts:4160806.587000 pos:   3883 size:   116
 ret:-1         st:-1 flags:1  ts: 1.470835
-ret:-1         st: 0 flags:0  ts: 0.365000
+ret: 0         st: 0 flags:0  ts: 0.365000
+ret: 0         st: 0 flags:1 dts:4160806.587000 pts:4160806.587000 pos:   3883 size:   116
 ret: 0         st: 0 flags:1  ts:-0.741000
 ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
 ret:-1         st:-1 flags:0  ts: 2.153336
@@ -16,20 +20,26 @@ ret: 0         st: 0 flags:0  ts:-0.058000
 ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
 ret:-1         st: 0 flags:1  ts: 2.836000
 ret:-1         st:-1 flags:0  ts: 1.730004
-ret:-1         st:-1 flags:1  ts: 0.624171
+ret: 0         st:-1 flags:1  ts: 0.624171
+ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
 ret: 0         st: 0 flags:0  ts:-0.482000
 ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
-ret:-1         st: 0 flags:1  ts: 2.413000
+ret: 0         st: 0 flags:1  ts: 2.413000
+ret: 0         st: 0 flags:1 dts: 2.229000 pts: 2.229000 pos:  36705 size:   556
 ret:-1         st:-1 flags:0  ts: 1.306672
-ret:-1         st:-1 flags:1  ts: 0.200839
+ret: 0         st:-1 flags:1  ts: 0.200839
+ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
 ret: 0         st: 0 flags:0  ts:-0.905000
 ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
 ret:-1         st: 0 flags:1  ts: 1.989000
-ret:-1         st:-1 flags:0  ts: 0.883340
+ret: 0         st:-1 flags:0  ts: 0.883340
+ret: 0         st: 0 flags:1 dts:4160806.587000 pts:4160806.587000 pos:   3883 size:   116
 ret: 0         st:-1 flags:1  ts:-0.222493
 ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556
-ret:-1         st: 0 flags:0  ts: 2.672000
+ret: 0         st: 0 flags:0  ts: 2.672000
+ret: 0         st: 0 flags:1 dts:6354.691000 pts:6354.691000 pos:  10783 size:   304
 ret:-1         st: 0 flags:1  ts: 1.566000
-ret:-1         st:-1 flags:0  ts: 0.460008
+ret: 0         st:-1 flags:0  ts: 0.460008
+ret: 0         st: 0 flags:1 dts:4160806.587000 pts:4160806.587000 pos:   3883 size:   116
 ret: 0         st:-1 flags:1  ts:-0.645825
 ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:    271 size:   556




More information about the ffmpeg-cvslog mailing list