[FFmpeg-cvslog] dca_parser: ensure frame duration matches the actual sample rate

Hendrik Leppkes git at videolan.org
Thu Feb 4 12:19:18 CET 2016


ffmpeg | branch: master | Hendrik Leppkes <h.leppkes at gmail.com> | Wed Feb  3 12:43:44 2016 +0100| [a969a914f5586b1110d77736bc8a57bfe315f96d] | committer: Hendrik Leppkes

dca_parser: ensure frame duration matches the actual sample rate

The parser only parses the core, and thus has a duration relative
to the core sample rate only, not the actual stream sample rate.

FATE references changed due to now correct timestamps.

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

 libavcodec/dca_parser.c                         |    4 +++-
 tests/ref/fate/dca-xll_51_16_192_768_0          |   10 +++++-----
 tests/ref/fate/dca-xll_51_16_192_768_0-dmix_2   |   10 +++++-----
 tests/ref/fate/dca-xll_51_16_192_768_0-dmix_6   |   10 +++++-----
 tests/ref/fate/dca-xll_51_16_192_768_1          |   10 +++++-----
 tests/ref/fate/dca-xll_51_16_192_768_1-dmix_2   |   10 +++++-----
 tests/ref/fate/dca-xll_51_16_192_768_1-dmix_6   |   10 +++++-----
 tests/ref/fate/dca-xll_71_24_96_768             |   10 +++++-----
 tests/ref/fate/dca-xll_71_24_96_768-dmix_2      |   10 +++++-----
 tests/ref/fate/dca-xll_71_24_96_768-dmix_6      |   10 +++++-----
 tests/ref/fate/dca-xll_x96_51_24_96_1509        |   10 +++++-----
 tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_2 |   10 +++++-----
 tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_6 |   10 +++++-----
 13 files changed, 63 insertions(+), 61 deletions(-)

diff --git a/libavcodec/dca_parser.c b/libavcodec/dca_parser.c
index 70e64a8..bde7dfe 100644
--- a/libavcodec/dca_parser.c
+++ b/libavcodec/dca_parser.c
@@ -165,7 +165,9 @@ static int dca_parse(AVCodecParserContext *s, AVCodecContext *avctx,
 
     /* read the duration and sample rate from the frame header */
     if (!dca_parse_params(buf, buf_size, &duration, &sample_rate, &pc1->framesize)) {
-        s->duration        = duration;
+        if (!avctx->sample_rate)
+            avctx->sample_rate = sample_rate;
+        s->duration = av_rescale(duration, avctx->sample_rate, sample_rate);
     } else
         s->duration = 0;
 
diff --git a/tests/ref/fate/dca-xll_51_16_192_768_0 b/tests/ref/fate/dca-xll_51_16_192_768_0
index 8977923..0e22d5d 100644
--- a/tests/ref/fate/dca-xll_51_16_192_768_0
+++ b/tests/ref/fate/dca-xll_51_16_192_768_0
@@ -4,8 +4,8 @@
 #tb 0: 1/192000
 #stream#, dts,        pts, duration,     size, hash
 0,          0,          0,     2048,    24576, 91ff0dac5df86e798bfef5e573536b08
-0,        512,        512,     2048,    24576, 91ff0dac5df86e798bfef5e573536b08
-0,       1024,       1024,     2048,    24576, 97e888b4de888608d08d193aecd2bd6b
-0,       1536,       1536,     2048,    24576, 96d20b0b657183ee88a5ec7d919d5313
-0,       2048,       2048,     2048,    24576, d6a98e7cea8e9b397e89f178aa719b19
-0,       2560,       2560,     2048,    24576, fb3432fe46696579220baa1c49e7dcd5
+0,       2048,       2048,     2048,    24576, 91ff0dac5df86e798bfef5e573536b08
+0,       4096,       4096,     2048,    24576, 97e888b4de888608d08d193aecd2bd6b
+0,       6144,       6144,     2048,    24576, 96d20b0b657183ee88a5ec7d919d5313
+0,       8192,       8192,     2048,    24576, d6a98e7cea8e9b397e89f178aa719b19
+0,      10240,      10240,     2048,    24576, fb3432fe46696579220baa1c49e7dcd5
diff --git a/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_2 b/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_2
index 8977923..0e22d5d 100644
--- a/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_2
+++ b/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_2
@@ -4,8 +4,8 @@
 #tb 0: 1/192000
 #stream#, dts,        pts, duration,     size, hash
 0,          0,          0,     2048,    24576, 91ff0dac5df86e798bfef5e573536b08
-0,        512,        512,     2048,    24576, 91ff0dac5df86e798bfef5e573536b08
-0,       1024,       1024,     2048,    24576, 97e888b4de888608d08d193aecd2bd6b
-0,       1536,       1536,     2048,    24576, 96d20b0b657183ee88a5ec7d919d5313
-0,       2048,       2048,     2048,    24576, d6a98e7cea8e9b397e89f178aa719b19
-0,       2560,       2560,     2048,    24576, fb3432fe46696579220baa1c49e7dcd5
+0,       2048,       2048,     2048,    24576, 91ff0dac5df86e798bfef5e573536b08
+0,       4096,       4096,     2048,    24576, 97e888b4de888608d08d193aecd2bd6b
+0,       6144,       6144,     2048,    24576, 96d20b0b657183ee88a5ec7d919d5313
+0,       8192,       8192,     2048,    24576, d6a98e7cea8e9b397e89f178aa719b19
+0,      10240,      10240,     2048,    24576, fb3432fe46696579220baa1c49e7dcd5
diff --git a/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_6 b/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_6
index 8977923..0e22d5d 100644
--- a/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_6
+++ b/tests/ref/fate/dca-xll_51_16_192_768_0-dmix_6
@@ -4,8 +4,8 @@
 #tb 0: 1/192000
 #stream#, dts,        pts, duration,     size, hash
 0,          0,          0,     2048,    24576, 91ff0dac5df86e798bfef5e573536b08
-0,        512,        512,     2048,    24576, 91ff0dac5df86e798bfef5e573536b08
-0,       1024,       1024,     2048,    24576, 97e888b4de888608d08d193aecd2bd6b
-0,       1536,       1536,     2048,    24576, 96d20b0b657183ee88a5ec7d919d5313
-0,       2048,       2048,     2048,    24576, d6a98e7cea8e9b397e89f178aa719b19
-0,       2560,       2560,     2048,    24576, fb3432fe46696579220baa1c49e7dcd5
+0,       2048,       2048,     2048,    24576, 91ff0dac5df86e798bfef5e573536b08
+0,       4096,       4096,     2048,    24576, 97e888b4de888608d08d193aecd2bd6b
+0,       6144,       6144,     2048,    24576, 96d20b0b657183ee88a5ec7d919d5313
+0,       8192,       8192,     2048,    24576, d6a98e7cea8e9b397e89f178aa719b19
+0,      10240,      10240,     2048,    24576, fb3432fe46696579220baa1c49e7dcd5
diff --git a/tests/ref/fate/dca-xll_51_16_192_768_1 b/tests/ref/fate/dca-xll_51_16_192_768_1
index 8977923..0e22d5d 100644
--- a/tests/ref/fate/dca-xll_51_16_192_768_1
+++ b/tests/ref/fate/dca-xll_51_16_192_768_1
@@ -4,8 +4,8 @@
 #tb 0: 1/192000
 #stream#, dts,        pts, duration,     size, hash
 0,          0,          0,     2048,    24576, 91ff0dac5df86e798bfef5e573536b08
-0,        512,        512,     2048,    24576, 91ff0dac5df86e798bfef5e573536b08
-0,       1024,       1024,     2048,    24576, 97e888b4de888608d08d193aecd2bd6b
-0,       1536,       1536,     2048,    24576, 96d20b0b657183ee88a5ec7d919d5313
-0,       2048,       2048,     2048,    24576, d6a98e7cea8e9b397e89f178aa719b19
-0,       2560,       2560,     2048,    24576, fb3432fe46696579220baa1c49e7dcd5
+0,       2048,       2048,     2048,    24576, 91ff0dac5df86e798bfef5e573536b08
+0,       4096,       4096,     2048,    24576, 97e888b4de888608d08d193aecd2bd6b
+0,       6144,       6144,     2048,    24576, 96d20b0b657183ee88a5ec7d919d5313
+0,       8192,       8192,     2048,    24576, d6a98e7cea8e9b397e89f178aa719b19
+0,      10240,      10240,     2048,    24576, fb3432fe46696579220baa1c49e7dcd5
diff --git a/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_2 b/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_2
index a014f76..d97ad2f 100644
--- a/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_2
+++ b/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_2
@@ -4,8 +4,8 @@
 #tb 0: 1/192000
 #stream#, dts,        pts, duration,     size, hash
 0,          0,          0,     2048,     8192, 0829f71740aab1ab98b33eae21dee122
-0,        512,        512,     2048,     8192, c8ca1cff44674809d464ec39cf1bd1e9
-0,       1024,       1024,     2048,     8192, d67d26915ca86554568aac685c9a6dc3
-0,       1536,       1536,     2048,     8192, 8fdf69fdac9985ac4f9470a7b8e8529d
-0,       2048,       2048,     2048,     8192, dc8a9ca39b38c98147f2308f985ff648
-0,       2560,       2560,     2048,     8192, ea13b97373762ab16d0f664013fdc962
+0,       2048,       2048,     2048,     8192, c8ca1cff44674809d464ec39cf1bd1e9
+0,       4096,       4096,     2048,     8192, d67d26915ca86554568aac685c9a6dc3
+0,       6144,       6144,     2048,     8192, 8fdf69fdac9985ac4f9470a7b8e8529d
+0,       8192,       8192,     2048,     8192, dc8a9ca39b38c98147f2308f985ff648
+0,      10240,      10240,     2048,     8192, ea13b97373762ab16d0f664013fdc962
diff --git a/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_6 b/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_6
index 8977923..0e22d5d 100644
--- a/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_6
+++ b/tests/ref/fate/dca-xll_51_16_192_768_1-dmix_6
@@ -4,8 +4,8 @@
 #tb 0: 1/192000
 #stream#, dts,        pts, duration,     size, hash
 0,          0,          0,     2048,    24576, 91ff0dac5df86e798bfef5e573536b08
-0,        512,        512,     2048,    24576, 91ff0dac5df86e798bfef5e573536b08
-0,       1024,       1024,     2048,    24576, 97e888b4de888608d08d193aecd2bd6b
-0,       1536,       1536,     2048,    24576, 96d20b0b657183ee88a5ec7d919d5313
-0,       2048,       2048,     2048,    24576, d6a98e7cea8e9b397e89f178aa719b19
-0,       2560,       2560,     2048,    24576, fb3432fe46696579220baa1c49e7dcd5
+0,       2048,       2048,     2048,    24576, 91ff0dac5df86e798bfef5e573536b08
+0,       4096,       4096,     2048,    24576, 97e888b4de888608d08d193aecd2bd6b
+0,       6144,       6144,     2048,    24576, 96d20b0b657183ee88a5ec7d919d5313
+0,       8192,       8192,     2048,    24576, d6a98e7cea8e9b397e89f178aa719b19
+0,      10240,      10240,     2048,    24576, fb3432fe46696579220baa1c49e7dcd5
diff --git a/tests/ref/fate/dca-xll_71_24_96_768 b/tests/ref/fate/dca-xll_71_24_96_768
index fbc9e96..72da526 100644
--- a/tests/ref/fate/dca-xll_71_24_96_768
+++ b/tests/ref/fate/dca-xll_71_24_96_768
@@ -4,8 +4,8 @@
 #tb 0: 1/96000
 #stream#, dts,        pts, duration,     size, hash
 0,          0,          0,     1024,    24576, 0b24a527d66f2b0cab97f37e4cd79987
-0,        512,        512,     1024,    24576, 91ff0dac5df86e798bfef5e573536b08
-0,       1024,       1024,     1024,    24576, c2b5e663fa260abc9c737d16110052a8
-0,       1536,       1536,     1024,    24576, 81f474e17d875f7c5a2cbaadef4f7c0a
-0,       2048,       2048,     1024,    24576, 959200e06f2f8489b9e36c74b073edae
-0,       2560,       2560,     1024,    24576, ef1ed14d39cce6ba1ab9736831aa1b30
+0,       1024,       1024,     1024,    24576, 91ff0dac5df86e798bfef5e573536b08
+0,       2048,       2048,     1024,    24576, c2b5e663fa260abc9c737d16110052a8
+0,       3072,       3072,     1024,    24576, 81f474e17d875f7c5a2cbaadef4f7c0a
+0,       4096,       4096,     1024,    24576, 959200e06f2f8489b9e36c74b073edae
+0,       5120,       5120,     1024,    24576, ef1ed14d39cce6ba1ab9736831aa1b30
diff --git a/tests/ref/fate/dca-xll_71_24_96_768-dmix_2 b/tests/ref/fate/dca-xll_71_24_96_768-dmix_2
index cee7307..b24c717 100644
--- a/tests/ref/fate/dca-xll_71_24_96_768-dmix_2
+++ b/tests/ref/fate/dca-xll_71_24_96_768-dmix_2
@@ -4,8 +4,8 @@
 #tb 0: 1/96000
 #stream#, dts,        pts, duration,     size, hash
 0,          0,          0,     1024,    18432, 0a675f172b0e1a171c46dfaa4f1d0f00
-0,        512,        512,     1024,    18432, f9debe3f07be68533bf0295e3d2ba68a
-0,       1024,       1024,     1024,    18432, 0a6efad6cc824656594d5d7abce1e547
-0,       1536,       1536,     1024,    18432, a1beb9f5afcf72b99671a7cef8c35505
-0,       2048,       2048,     1024,    18432, e73de9b6688ec463178f694540f71d61
-0,       2560,       2560,     1024,    18432, e2e326c2f61d28ad11cea665ea638ae4
+0,       1024,       1024,     1024,    18432, f9debe3f07be68533bf0295e3d2ba68a
+0,       2048,       2048,     1024,    18432, 0a6efad6cc824656594d5d7abce1e547
+0,       3072,       3072,     1024,    18432, a1beb9f5afcf72b99671a7cef8c35505
+0,       4096,       4096,     1024,    18432, e73de9b6688ec463178f694540f71d61
+0,       5120,       5120,     1024,    18432, e2e326c2f61d28ad11cea665ea638ae4
diff --git a/tests/ref/fate/dca-xll_71_24_96_768-dmix_6 b/tests/ref/fate/dca-xll_71_24_96_768-dmix_6
index cee7307..b24c717 100644
--- a/tests/ref/fate/dca-xll_71_24_96_768-dmix_6
+++ b/tests/ref/fate/dca-xll_71_24_96_768-dmix_6
@@ -4,8 +4,8 @@
 #tb 0: 1/96000
 #stream#, dts,        pts, duration,     size, hash
 0,          0,          0,     1024,    18432, 0a675f172b0e1a171c46dfaa4f1d0f00
-0,        512,        512,     1024,    18432, f9debe3f07be68533bf0295e3d2ba68a
-0,       1024,       1024,     1024,    18432, 0a6efad6cc824656594d5d7abce1e547
-0,       1536,       1536,     1024,    18432, a1beb9f5afcf72b99671a7cef8c35505
-0,       2048,       2048,     1024,    18432, e73de9b6688ec463178f694540f71d61
-0,       2560,       2560,     1024,    18432, e2e326c2f61d28ad11cea665ea638ae4
+0,       1024,       1024,     1024,    18432, f9debe3f07be68533bf0295e3d2ba68a
+0,       2048,       2048,     1024,    18432, 0a6efad6cc824656594d5d7abce1e547
+0,       3072,       3072,     1024,    18432, a1beb9f5afcf72b99671a7cef8c35505
+0,       4096,       4096,     1024,    18432, e73de9b6688ec463178f694540f71d61
+0,       5120,       5120,     1024,    18432, e2e326c2f61d28ad11cea665ea638ae4
diff --git a/tests/ref/fate/dca-xll_x96_51_24_96_1509 b/tests/ref/fate/dca-xll_x96_51_24_96_1509
index e957c20..150ab25 100644
--- a/tests/ref/fate/dca-xll_x96_51_24_96_1509
+++ b/tests/ref/fate/dca-xll_x96_51_24_96_1509
@@ -4,8 +4,8 @@
 #tb 0: 1/96000
 #stream#, dts,        pts, duration,     size, hash
 0,          0,          0,     1024,    18432, f9debe3f07be68533bf0295e3d2ba68a
-0,        512,        512,     1024,    18432, f9debe3f07be68533bf0295e3d2ba68a
-0,       1024,       1024,     1024,    18432, f68686e3f6dec5aa00fc8ef495c3a3fa
-0,       1536,       1536,     1024,    18432, 03adab4e2a4a5e9917d29de09e0afb22
-0,       2048,       2048,     1024,    18432, d7d1ab1efd7f2ff45f7374b41abaec51
-0,       2560,       2560,     1024,    18432, fe2aa09319ac1d7017e29fdab6207f27
+0,       1024,       1024,     1024,    18432, f9debe3f07be68533bf0295e3d2ba68a
+0,       2048,       2048,     1024,    18432, f68686e3f6dec5aa00fc8ef495c3a3fa
+0,       3072,       3072,     1024,    18432, 03adab4e2a4a5e9917d29de09e0afb22
+0,       4096,       4096,     1024,    18432, d7d1ab1efd7f2ff45f7374b41abaec51
+0,       5120,       5120,     1024,    18432, fe2aa09319ac1d7017e29fdab6207f27
diff --git a/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_2 b/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_2
index e957c20..150ab25 100644
--- a/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_2
+++ b/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_2
@@ -4,8 +4,8 @@
 #tb 0: 1/96000
 #stream#, dts,        pts, duration,     size, hash
 0,          0,          0,     1024,    18432, f9debe3f07be68533bf0295e3d2ba68a
-0,        512,        512,     1024,    18432, f9debe3f07be68533bf0295e3d2ba68a
-0,       1024,       1024,     1024,    18432, f68686e3f6dec5aa00fc8ef495c3a3fa
-0,       1536,       1536,     1024,    18432, 03adab4e2a4a5e9917d29de09e0afb22
-0,       2048,       2048,     1024,    18432, d7d1ab1efd7f2ff45f7374b41abaec51
-0,       2560,       2560,     1024,    18432, fe2aa09319ac1d7017e29fdab6207f27
+0,       1024,       1024,     1024,    18432, f9debe3f07be68533bf0295e3d2ba68a
+0,       2048,       2048,     1024,    18432, f68686e3f6dec5aa00fc8ef495c3a3fa
+0,       3072,       3072,     1024,    18432, 03adab4e2a4a5e9917d29de09e0afb22
+0,       4096,       4096,     1024,    18432, d7d1ab1efd7f2ff45f7374b41abaec51
+0,       5120,       5120,     1024,    18432, fe2aa09319ac1d7017e29fdab6207f27
diff --git a/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_6 b/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_6
index e957c20..150ab25 100644
--- a/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_6
+++ b/tests/ref/fate/dca-xll_x96_51_24_96_1509-dmix_6
@@ -4,8 +4,8 @@
 #tb 0: 1/96000
 #stream#, dts,        pts, duration,     size, hash
 0,          0,          0,     1024,    18432, f9debe3f07be68533bf0295e3d2ba68a
-0,        512,        512,     1024,    18432, f9debe3f07be68533bf0295e3d2ba68a
-0,       1024,       1024,     1024,    18432, f68686e3f6dec5aa00fc8ef495c3a3fa
-0,       1536,       1536,     1024,    18432, 03adab4e2a4a5e9917d29de09e0afb22
-0,       2048,       2048,     1024,    18432, d7d1ab1efd7f2ff45f7374b41abaec51
-0,       2560,       2560,     1024,    18432, fe2aa09319ac1d7017e29fdab6207f27
+0,       1024,       1024,     1024,    18432, f9debe3f07be68533bf0295e3d2ba68a
+0,       2048,       2048,     1024,    18432, f68686e3f6dec5aa00fc8ef495c3a3fa
+0,       3072,       3072,     1024,    18432, 03adab4e2a4a5e9917d29de09e0afb22
+0,       4096,       4096,     1024,    18432, d7d1ab1efd7f2ff45f7374b41abaec51
+0,       5120,       5120,     1024,    18432, fe2aa09319ac1d7017e29fdab6207f27



More information about the ffmpeg-cvslog mailing list