diff --git a/libavcodec/dca_parser.c b/libavcodec/dca_parser.c index 70e64a89b8..bde7dfe885 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 8977923f14..0e22d5d277 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 8977923f14..0e22d5d277 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 8977923f14..0e22d5d277 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 8977923f14..0e22d5d277 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 a014f76d9c..d97ad2f314 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 8977923f14..0e22d5d277 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 fbc9e969ff..72da52659a 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 cee730723f..b24c71780e 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 cee730723f..b24c71780e 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 e957c20819..150ab25f7b 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 e957c20819..150ab25f7b 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 e957c20819..150ab25f7b 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