From 076eea283e989d913710d9739387ed2cb2cf1294 Mon Sep 17 00:00:00 2001 From: samrobinson Date: Tue, 24 Sep 2024 07:11:35 -0700 Subject: [PATCH] Adding API and internal export support for audio gaps in sequences. PiperOrigin-RevId: 678235289 --- RELEASENOTES.md | 1 + .../seq-gap_1000ms+seq-sample.wav.dump | 227 ++++ ..._100ms-sample_rf64.wav+seq-sample.wav.dump | 227 ++++ ...ple.wav_clipped100msTo400ms-gap_700ms.dump | 117 ++ ...deo.mov+seq-gap_200ms-sample_rf64.wav.dump | 1099 +++++++++++++++++ ...deo.mov+seq-sample_rf64.wav-gap_100ms.dump | 1099 +++++++++++++++++ ...s-sample_rf64.wav_clipped300msTo800ms.dump | 1099 +++++++++++++++++ .../assets/transformerdumps/gap/500ms.dump | 117 ++ .../gap_200ms/gap_500ms/sample.wav.dump | 377 ++++++ .../sample.wav/gap_200ms/sample.wav.dump | 592 +++++++++ .../gap_200ms/sample.wav/gap_500ms.dump | 302 +++++ .../sample.wav/gap_500ms/gap_200ms.dump | 192 +++ .../gap_500ms/gap_200ms/sample.wav.dump | 302 +++++ .../TransformerAndroidTestRunner.java | 3 + .../transformer/TransformerEndToEndTest.java | 68 + .../media3/transformer/Composition.java | 13 + .../media3/transformer/EditedMediaItem.java | 10 + .../transformer/EditedMediaItemSequence.java | 31 + .../transformer/SequenceAssetLoader.java | 123 +- .../media3/transformer/TransformerUtil.java | 3 + .../transformer/CompositionExportTest.java | 272 ++++ .../transformer/MediaItemExportTest.java | 20 + .../transformer/SequenceExportTest.java | 166 +++ 23 files changed, 6454 insertions(+), 6 deletions(-) create mode 100644 libraries/test_data/src/test/assets/transformerdumps/composition/seq-gap_1000ms+seq-sample.wav.dump create mode 100644 libraries/test_data/src/test/assets/transformerdumps/composition/seq-gap_100ms-sample_rf64.wav+seq-sample.wav.dump create mode 100644 libraries/test_data/src/test/assets/transformerdumps/composition/seq-sample.wav+seq-sample.wav_clipped100msTo400ms-gap_700ms.dump create mode 100644 libraries/test_data/src/test/assets/transformerdumps/composition/seq-sowt-with-video.mov+seq-gap_200ms-sample_rf64.wav.dump create mode 100644 libraries/test_data/src/test/assets/transformerdumps/composition/seq-sowt-with-video.mov+seq-sample_rf64.wav-gap_100ms.dump create mode 100644 libraries/test_data/src/test/assets/transformerdumps/composition/seq-sowt-with-video.mov+seq-sample_rf64.wav_clipped0msTo300ms-gap_200ms-sample_rf64.wav_clipped300msTo800ms.dump create mode 100644 libraries/test_data/src/test/assets/transformerdumps/gap/500ms.dump create mode 100644 libraries/test_data/src/test/assets/transformerdumps/sequence/gap_200ms/gap_500ms/sample.wav.dump create mode 100644 libraries/test_data/src/test/assets/transformerdumps/sequence/gap_500ms/sample.wav/gap_200ms/sample.wav.dump create mode 100644 libraries/test_data/src/test/assets/transformerdumps/sequence/sample.wav/gap_200ms/sample.wav/gap_500ms.dump create mode 100644 libraries/test_data/src/test/assets/transformerdumps/sequence/sample.wav/gap_500ms/gap_200ms.dump create mode 100644 libraries/test_data/src/test/assets/transformerdumps/sequence/sample.wav/gap_500ms/gap_200ms/sample.wav.dump diff --git a/RELEASENOTES.md b/RELEASENOTES.md index fb662efb34..30d3ac48cf 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -49,6 +49,7 @@ allow invoking events of subclass listeners ([1736](https://github.com/androidx/media/pull/1736)). * Transformer: + * Add export support for gaps in sequences of audio EditedMediaItems. * Track Selection: * Extractors: * Fix preroll sample handling for non-keyframe media start positions when diff --git a/libraries/test_data/src/test/assets/transformerdumps/composition/seq-gap_1000ms+seq-sample.wav.dump b/libraries/test_data/src/test/assets/transformerdumps/composition/seq-gap_1000ms+seq-sample.wav.dump new file mode 100644 index 0000000000..dd59bfed80 --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/composition/seq-gap_1000ms+seq-sample.wav.dump @@ -0,0 +1,227 @@ +format audio: + averageBitrate = 131072 + sampleMimeType = audio/mp4a-latm + channelCount = 2 + sampleRate = 44100 + pcmEncoding = 2 +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -2078200747 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1746076349 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1572855937 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 701978997 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1243111139 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1322796125 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 183250677 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1653767665 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1354849623 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -394780569 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1818125983 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -2040268451 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1205101453 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1680621511 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1417062205 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 391927517 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1602519453 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -889560817 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1844125309 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1254048247 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 862533775 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1056907509 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 614586437 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1422444303 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1521025139 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -645048879 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1964215627 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 794382801 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1742698007 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1820518143 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1778289323 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1268893547 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1838744749 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1671917515 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1340018589 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1917601633 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -265336963 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -784922721 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1193402155 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1103096997 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1473134533 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1817808281 + size = 272 + isKeyFrame = true +released = true diff --git a/libraries/test_data/src/test/assets/transformerdumps/composition/seq-gap_100ms-sample_rf64.wav+seq-sample.wav.dump b/libraries/test_data/src/test/assets/transformerdumps/composition/seq-gap_100ms-sample_rf64.wav+seq-sample.wav.dump new file mode 100644 index 0000000000..e3f44cb251 --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/composition/seq-gap_100ms-sample_rf64.wav+seq-sample.wav.dump @@ -0,0 +1,227 @@ +format audio: + averageBitrate = 131072 + sampleMimeType = audio/mp4a-latm + channelCount = 2 + sampleRate = 44100 + pcmEncoding = 2 +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -2078200747 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1746076349 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1572855937 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 701978997 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 459593640 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 177383240 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 565637567 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1269391254 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1473724630 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1365108398 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 15208603 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -149452152 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 568136563 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1569944195 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1581189639 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 344240733 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1247810281 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 723599439 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1844125309 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1254048247 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 862533775 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1056907509 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 614586437 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1422444303 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1521025139 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -645048879 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1964215627 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 794382801 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1742698007 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1820518143 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1778289323 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1268893547 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1838744749 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1671917515 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1340018589 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1917601633 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -265336963 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -784922721 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1193402155 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1103096997 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1473134533 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1817808281 + size = 272 + isKeyFrame = true +released = true diff --git a/libraries/test_data/src/test/assets/transformerdumps/composition/seq-sample.wav+seq-sample.wav_clipped100msTo400ms-gap_700ms.dump b/libraries/test_data/src/test/assets/transformerdumps/composition/seq-sample.wav+seq-sample.wav_clipped100msTo400ms-gap_700ms.dump new file mode 100644 index 0000000000..08cf4977fc --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/composition/seq-sample.wav+seq-sample.wav_clipped100msTo400ms-gap_700ms.dump @@ -0,0 +1,117 @@ +format audio: + averageBitrate = 131072 + sampleMimeType = audio/mp4a-latm + channelCount = 1 + sampleRate = 44100 + pcmEncoding = 2 +sample: + trackType = audio + dataHashCode = -477126770 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 779113371 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 45842530 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 2001000243 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -187462316 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -309708822 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1030869338 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1134039798 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -2131288947 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1159697593 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -889164698 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1380568930 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1722863050 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1365744081 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -81471997 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -6915052 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1634845963 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1252305359 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 2127515647 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 2077308846 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1055925064 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1128351030 + size = 2184 + isKeyFrame = true +released = true diff --git a/libraries/test_data/src/test/assets/transformerdumps/composition/seq-sowt-with-video.mov+seq-gap_200ms-sample_rf64.wav.dump b/libraries/test_data/src/test/assets/transformerdumps/composition/seq-sowt-with-video.mov+seq-gap_200ms-sample_rf64.wav.dump new file mode 100644 index 0000000000..c67c949313 --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/composition/seq-sowt-with-video.mov+seq-gap_200ms-sample_rf64.wav.dump @@ -0,0 +1,1099 @@ +format audio: + averageBitrate = 131072 + sampleMimeType = audio/mp4a-latm + channelCount = 2 + sampleRate = 48000 + pcmEncoding = 2 + metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000] +format video: + id = 1 + sampleMimeType = video/avc + codecs = avc1.64002A + maxInputSize = 41084 + maxNumReorderSamples = 2 + width = 1920 + height = 1080 + frameRate = 50.00 + colorInfo: + colorSpace = 1 + colorRange = 2 + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 34, hash 8D738018 + data = length 10, hash 7A0D0F2B +container metadata: + entry = Mp4Timestamp: creation time=0, modification time=0, timescale=1000 + entry = Mp4Timestamp: creation time=0, modification time=0, timescale=1000 +sample: + trackType = audio + dataHashCode = 1831484889 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1124113244 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1544973874 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -582482821 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -191772359 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -505360091 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1981702659 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 566215790 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1512511272 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 379933452 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 2123773516 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 947540601 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1204715699 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -845492851 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -224450442 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -832637147 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 838028863 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1274898709 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1036858119 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -757649110 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -887684582 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -895916259 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -910514404 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -678504136 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 25114417 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 977841946 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1583378414 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1010598904 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1601131727 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 476052144 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1722819382 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -104073993 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1183326444 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1471701996 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1721028706 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -835928084 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -752755934 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1014841053 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -5244765 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -189896781 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -816272711 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 287875876 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -493356528 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1683631739 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -861196079 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1804207347 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 196164772 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1100787564 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1345957974 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -488143400 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -10223628 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1536847847 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 753825301 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 462774015 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1959522750 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -852953535 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -795715262 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1096849459 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -10453887 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1764903846 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 383125128 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1991155096 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -2077760291 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 2096309171 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 306595787 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -2137344472 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1093707365 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -826848566 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 598267634 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -864852241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1809702128 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1614324273 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -671278854 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1596428232 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1491661393 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1345324901 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -494252355 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 628101539 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1559329530 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 33458315 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -346868389 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 793986204 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -790083813 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 318703351 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1886284670 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1358755786 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1054390499 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -797666266 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1248986964 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -843257838 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 640691272 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -622869771 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1995556891 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1813305126 + size = 3072 + isKeyFrame = true +sample: + trackType = video + dataHashCode = 33691269 + size = 41054 + isKeyFrame = true + presentationTimeUs = 0 +sample: + trackType = video + dataHashCode = 951153212 + size = 15163 + isKeyFrame = false + presentationTimeUs = 40000 +sample: + trackType = video + dataHashCode = 552307150 + size = 6490 + isKeyFrame = false + presentationTimeUs = 20000 +sample: + trackType = video + dataHashCode = -151063635 + size = 25484 + isKeyFrame = false + presentationTimeUs = 120000 +sample: + trackType = video + dataHashCode = -1847115463 + size = 14792 + isKeyFrame = false + presentationTimeUs = 80000 +sample: + trackType = video + dataHashCode = 775037055 + size = 8823 + isKeyFrame = false + presentationTimeUs = 60000 +sample: + trackType = video + dataHashCode = 1452603441 + size = 7905 + isKeyFrame = false + presentationTimeUs = 100000 +sample: + trackType = video + dataHashCode = 1732228513 + size = 21086 + isKeyFrame = false + presentationTimeUs = 200000 +sample: + trackType = video + dataHashCode = 1246814657 + size = 13181 + isKeyFrame = false + presentationTimeUs = 160000 +sample: + trackType = video + dataHashCode = 426081419 + size = 7666 + isKeyFrame = false + presentationTimeUs = 140000 +sample: + trackType = video + dataHashCode = -241872379 + size = 8627 + isKeyFrame = false + presentationTimeUs = 180000 +sample: + trackType = video + dataHashCode = 1109784816 + size = 23310 + isKeyFrame = false + presentationTimeUs = 280000 +sample: + trackType = video + dataHashCode = -377448231 + size = 16108 + isKeyFrame = false + presentationTimeUs = 240000 +sample: + trackType = video + dataHashCode = -688376574 + size = 10591 + isKeyFrame = false + presentationTimeUs = 220000 +sample: + trackType = video + dataHashCode = 496944885 + size = 9652 + isKeyFrame = false + presentationTimeUs = 260000 +sample: + trackType = video + dataHashCode = 591739725 + size = 26209 + isKeyFrame = false + presentationTimeUs = 360000 +sample: + trackType = video + dataHashCode = -469037805 + size = 14679 + isKeyFrame = false + presentationTimeUs = 320000 +sample: + trackType = video + dataHashCode = 2089439735 + size = 11258 + isKeyFrame = false + presentationTimeUs = 300000 +sample: + trackType = video + dataHashCode = -991522861 + size = 8380 + isKeyFrame = false + presentationTimeUs = 340000 +sample: + trackType = video + dataHashCode = 1228181765 + size = 21371 + isKeyFrame = false + presentationTimeUs = 420000 +sample: + trackType = video + dataHashCode = -881594031 + size = 15113 + isKeyFrame = false + presentationTimeUs = 380000 +sample: + trackType = video + dataHashCode = -1336355567 + size = 10553 + isKeyFrame = false + presentationTimeUs = 400000 +sample: + trackType = video + dataHashCode = -1156719720 + size = 34938 + isKeyFrame = false + presentationTimeUs = 480000 +sample: + trackType = video + dataHashCode = 396046716 + size = 17842 + isKeyFrame = false + presentationTimeUs = 440000 +sample: + trackType = video + dataHashCode = -1084632521 + size = 11502 + isKeyFrame = false + presentationTimeUs = 460000 +sample: + trackType = video + dataHashCode = -337819407 + size = 18009 + isKeyFrame = false + presentationTimeUs = 500000 +sample: + trackType = video + dataHashCode = 1295059940 + size = 24298 + isKeyFrame = false + presentationTimeUs = 520000 +sample: + trackType = video + dataHashCode = -929598998 + size = 21682 + isKeyFrame = false + presentationTimeUs = 540000 +sample: + trackType = video + dataHashCode = 1579805687 + size = 31833 + isKeyFrame = false + presentationTimeUs = 620000 +sample: + trackType = video + dataHashCode = 79553286 + size = 20853 + isKeyFrame = false + presentationTimeUs = 580000 +sample: + trackType = video + dataHashCode = -119845353 + size = 12906 + isKeyFrame = false + presentationTimeUs = 560000 +sample: + trackType = video + dataHashCode = -1242905044 + size = 17165 + isKeyFrame = false + presentationTimeUs = 600000 +sample: + trackType = video + dataHashCode = 1161132039 + size = 35065 + isKeyFrame = false + presentationTimeUs = 700000 +sample: + trackType = video + dataHashCode = 1801923857 + size = 19881 + isKeyFrame = false + presentationTimeUs = 660000 +sample: + trackType = video + dataHashCode = -1201934910 + size = 22571 + isKeyFrame = false + presentationTimeUs = 640000 +sample: + trackType = video + dataHashCode = -655417171 + size = 11566 + isKeyFrame = false + presentationTimeUs = 680000 +sample: + trackType = video + dataHashCode = 2011055114 + size = 24236 + isKeyFrame = false + presentationTimeUs = 780000 +sample: + trackType = video + dataHashCode = 1098159553 + size = 10515 + isKeyFrame = false + presentationTimeUs = 740000 +sample: + trackType = video + dataHashCode = 813195513 + size = 8188 + isKeyFrame = false + presentationTimeUs = 720000 +sample: + trackType = video + dataHashCode = 1610084647 + size = 9662 + isKeyFrame = false + presentationTimeUs = 760000 +sample: + trackType = video + dataHashCode = -389131647 + size = 22443 + isKeyFrame = false + presentationTimeUs = 860000 +sample: + trackType = video + dataHashCode = -49148581 + size = 12726 + isKeyFrame = false + presentationTimeUs = 820000 +sample: + trackType = video + dataHashCode = 650534699 + size = 8521 + isKeyFrame = false + presentationTimeUs = 800000 +sample: + trackType = video + dataHashCode = 554081714 + size = 7850 + isKeyFrame = false + presentationTimeUs = 840000 +sample: + trackType = video + dataHashCode = -539147636 + size = 30005 + isKeyFrame = false + presentationTimeUs = 940000 +sample: + trackType = video + dataHashCode = 863445487 + size = 19430 + isKeyFrame = false + presentationTimeUs = 900000 +sample: + trackType = video + dataHashCode = -210870675 + size = 12962 + isKeyFrame = false + presentationTimeUs = 880000 +sample: + trackType = video + dataHashCode = -1294790684 + size = 10767 + isKeyFrame = false + presentationTimeUs = 920000 +sample: + trackType = video + dataHashCode = -650391415 + size = 25914 + isKeyFrame = false + presentationTimeUs = 1000000 +sample: + trackType = video + dataHashCode = 1964249241 + size = 11471 + isKeyFrame = false + presentationTimeUs = 960000 +sample: + trackType = video + dataHashCode = 1901943199 + size = 8639 + isKeyFrame = false + presentationTimeUs = 980000 +sample: + trackType = video + dataHashCode = 754314804 + size = 22173 + isKeyFrame = false + presentationTimeUs = 1060000 +sample: + trackType = video + dataHashCode = 1631939129 + size = 10274 + isKeyFrame = false + presentationTimeUs = 1020000 +sample: + trackType = video + dataHashCode = -914580412 + size = 8625 + isKeyFrame = false + presentationTimeUs = 1040000 +sample: + trackType = video + dataHashCode = 464184359 + size = 19443 + isKeyFrame = false + presentationTimeUs = 1100000 +sample: + trackType = video + dataHashCode = 521590252 + size = 9189 + isKeyFrame = false + presentationTimeUs = 1080000 +sample: + trackType = video + dataHashCode = -1920606290 + size = 16242 + isKeyFrame = false + presentationTimeUs = 1120000 +sample: + trackType = video + dataHashCode = -1462753526 + size = 16036 + isKeyFrame = false + presentationTimeUs = 1140000 +sample: + trackType = video + dataHashCode = -2095257664 + size = 16431 + isKeyFrame = false + presentationTimeUs = 1160000 +sample: + trackType = video + dataHashCode = -1722510728 + size = 16421 + isKeyFrame = false + presentationTimeUs = 1180000 +sample: + trackType = video + dataHashCode = -2075073532 + size = 23643 + isKeyFrame = false + presentationTimeUs = 1240000 +sample: + trackType = video + dataHashCode = 1068866869 + size = 9962 + isKeyFrame = false + presentationTimeUs = 1200000 +sample: + trackType = video + dataHashCode = 2139806323 + size = 8627 + isKeyFrame = false + presentationTimeUs = 1220000 +sample: + trackType = video + dataHashCode = -75510961 + size = 20148 + isKeyFrame = false + presentationTimeUs = 1280000 +sample: + trackType = video + dataHashCode = -1734586788 + size = 8888 + isKeyFrame = false + presentationTimeUs = 1260000 +sample: + trackType = video + dataHashCode = 1689355701 + size = 19300 + isKeyFrame = false + presentationTimeUs = 1320000 +sample: + trackType = video + dataHashCode = 1014386281 + size = 8455 + isKeyFrame = false + presentationTimeUs = 1300000 +sample: + trackType = video + dataHashCode = 655967971 + size = 29708 + isKeyFrame = false + presentationTimeUs = 1400000 +sample: + trackType = video + dataHashCode = 651498019 + size = 12715 + isKeyFrame = false + presentationTimeUs = 1360000 +sample: + trackType = video + dataHashCode = -1326592134 + size = 8573 + isKeyFrame = false + presentationTimeUs = 1340000 +sample: + trackType = video + dataHashCode = -481876840 + size = 8982 + isKeyFrame = false + presentationTimeUs = 1380000 +sample: + trackType = video + dataHashCode = -1289166593 + size = 25026 + isKeyFrame = false + presentationTimeUs = 1460000 +sample: + trackType = video + dataHashCode = 1533284887 + size = 9600 + isKeyFrame = false + presentationTimeUs = 1420000 +sample: + trackType = video + dataHashCode = 931231084 + size = 8098 + isKeyFrame = false + presentationTimeUs = 1440000 +sample: + trackType = video + dataHashCode = 593905363 + size = 27032 + isKeyFrame = false + presentationTimeUs = 1540000 +sample: + trackType = video + dataHashCode = -61693143 + size = 11416 + isKeyFrame = false + presentationTimeUs = 1500000 +sample: + trackType = video + dataHashCode = 2034274294 + size = 8119 + isKeyFrame = false + presentationTimeUs = 1480000 +sample: + trackType = video + dataHashCode = -1382173825 + size = 7355 + isKeyFrame = false + presentationTimeUs = 1520000 +sample: + trackType = video + dataHashCode = 1141112289 + size = 27694 + isKeyFrame = false + presentationTimeUs = 1620000 +sample: + trackType = video + dataHashCode = 615108734 + size = 10665 + isKeyFrame = false + presentationTimeUs = 1580000 +sample: + trackType = video + dataHashCode = -192568269 + size = 7176 + isKeyFrame = false + presentationTimeUs = 1560000 +sample: + trackType = video + dataHashCode = 1139129648 + size = 7375 + isKeyFrame = false + presentationTimeUs = 1600000 +sample: + trackType = video + dataHashCode = -644623072 + size = 24651 + isKeyFrame = false + presentationTimeUs = 1700000 +sample: + trackType = video + dataHashCode = 1087668168 + size = 9679 + isKeyFrame = false + presentationTimeUs = 1660000 +sample: + trackType = video + dataHashCode = 1406222068 + size = 6862 + isKeyFrame = false + presentationTimeUs = 1640000 +sample: + trackType = video + dataHashCode = -622032068 + size = 6000 + isKeyFrame = false + presentationTimeUs = 1680000 +sample: + trackType = video + dataHashCode = 1191619637 + size = 22101 + isKeyFrame = false + presentationTimeUs = 1780000 +sample: + trackType = video + dataHashCode = 603349552 + size = 8537 + isKeyFrame = false + presentationTimeUs = 1740000 +sample: + trackType = video + dataHashCode = -1784449460 + size = 6288 + isKeyFrame = false + presentationTimeUs = 1720000 +sample: + trackType = video + dataHashCode = 1158465085 + size = 5152 + isKeyFrame = false + presentationTimeUs = 1760000 +sample: + trackType = video + dataHashCode = 147323155 + size = 19889 + isKeyFrame = false + presentationTimeUs = 1860000 +sample: + trackType = video + dataHashCode = 1714081095 + size = 8893 + isKeyFrame = false + presentationTimeUs = 1820000 +sample: + trackType = video + dataHashCode = -1894307035 + size = 5905 + isKeyFrame = false + presentationTimeUs = 1800000 +sample: + trackType = video + dataHashCode = -1208848015 + size = 5635 + isKeyFrame = false + presentationTimeUs = 1840000 +sample: + trackType = video + dataHashCode = 1015012687 + size = 14896 + isKeyFrame = false + presentationTimeUs = 1940000 +sample: + trackType = video + dataHashCode = 513736378 + size = 9260 + isKeyFrame = false + presentationTimeUs = 1900000 +sample: + trackType = video + dataHashCode = 1346700024 + size = 5850 + isKeyFrame = false + presentationTimeUs = 1880000 +sample: + trackType = video + dataHashCode = 279399292 + size = 7154 + isKeyFrame = false + presentationTimeUs = 1920000 +sample: + trackType = video + dataHashCode = 831498454 + size = 8605 + isKeyFrame = false + presentationTimeUs = 1980000 +sample: + trackType = video + dataHashCode = -20875598 + size = 6983 + isKeyFrame = false + presentationTimeUs = 1960000 +released = true diff --git a/libraries/test_data/src/test/assets/transformerdumps/composition/seq-sowt-with-video.mov+seq-sample_rf64.wav-gap_100ms.dump b/libraries/test_data/src/test/assets/transformerdumps/composition/seq-sowt-with-video.mov+seq-sample_rf64.wav-gap_100ms.dump new file mode 100644 index 0000000000..2a74a92b67 --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/composition/seq-sowt-with-video.mov+seq-sample_rf64.wav-gap_100ms.dump @@ -0,0 +1,1099 @@ +format audio: + averageBitrate = 131072 + sampleMimeType = audio/mp4a-latm + channelCount = 2 + sampleRate = 48000 + pcmEncoding = 2 + metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000] +format video: + id = 1 + sampleMimeType = video/avc + codecs = avc1.64002A + maxInputSize = 41084 + maxNumReorderSamples = 2 + width = 1920 + height = 1080 + frameRate = 50.00 + colorInfo: + colorSpace = 1 + colorRange = 2 + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 34, hash 8D738018 + data = length 10, hash 7A0D0F2B +container metadata: + entry = Mp4Timestamp: creation time=0, modification time=0, timescale=1000 + entry = Mp4Timestamp: creation time=0, modification time=0, timescale=1000 +sample: + trackType = audio + dataHashCode = 1831484889 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 249663982 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -952375988 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1104767232 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1071735193 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 11797379 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1312208757 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1049109782 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1406320840 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 554600029 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1771684952 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1475714894 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1988052938 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -22374423 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 173831080 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1779394374 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 773790323 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -570703176 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1176598744 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -913365417 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 521709915 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1512550842 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -977083996 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 151766236 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 290836596 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1293204143 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1583378414 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1010598904 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1601131727 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 476052144 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1722819382 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -104073993 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1183326444 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1471701996 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1721028706 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -835928084 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -752755934 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1014841053 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -5244765 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -189896781 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -816272711 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 287875876 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -493356528 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1683631739 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -861196079 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1804207347 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 196164772 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1100787564 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1345957974 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -488143400 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -10223628 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1536847847 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 753825301 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 462774015 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1959522750 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -852953535 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -795715262 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1096849459 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -10453887 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1764903846 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 383125128 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1991155096 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -2077760291 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 2096309171 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 306595787 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -2137344472 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1093707365 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -826848566 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 598267634 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -864852241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1809702128 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1614324273 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -671278854 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1596428232 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1491661393 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1345324901 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -494252355 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 628101539 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1559329530 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 33458315 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -346868389 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 793986204 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -790083813 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 318703351 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1886284670 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1358755786 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1054390499 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -797666266 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1248986964 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -843257838 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 640691272 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -622869771 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1995556891 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1813305126 + size = 3072 + isKeyFrame = true +sample: + trackType = video + dataHashCode = 33691269 + size = 41054 + isKeyFrame = true + presentationTimeUs = 0 +sample: + trackType = video + dataHashCode = 951153212 + size = 15163 + isKeyFrame = false + presentationTimeUs = 40000 +sample: + trackType = video + dataHashCode = 552307150 + size = 6490 + isKeyFrame = false + presentationTimeUs = 20000 +sample: + trackType = video + dataHashCode = -151063635 + size = 25484 + isKeyFrame = false + presentationTimeUs = 120000 +sample: + trackType = video + dataHashCode = -1847115463 + size = 14792 + isKeyFrame = false + presentationTimeUs = 80000 +sample: + trackType = video + dataHashCode = 775037055 + size = 8823 + isKeyFrame = false + presentationTimeUs = 60000 +sample: + trackType = video + dataHashCode = 1452603441 + size = 7905 + isKeyFrame = false + presentationTimeUs = 100000 +sample: + trackType = video + dataHashCode = 1732228513 + size = 21086 + isKeyFrame = false + presentationTimeUs = 200000 +sample: + trackType = video + dataHashCode = 1246814657 + size = 13181 + isKeyFrame = false + presentationTimeUs = 160000 +sample: + trackType = video + dataHashCode = 426081419 + size = 7666 + isKeyFrame = false + presentationTimeUs = 140000 +sample: + trackType = video + dataHashCode = -241872379 + size = 8627 + isKeyFrame = false + presentationTimeUs = 180000 +sample: + trackType = video + dataHashCode = 1109784816 + size = 23310 + isKeyFrame = false + presentationTimeUs = 280000 +sample: + trackType = video + dataHashCode = -377448231 + size = 16108 + isKeyFrame = false + presentationTimeUs = 240000 +sample: + trackType = video + dataHashCode = -688376574 + size = 10591 + isKeyFrame = false + presentationTimeUs = 220000 +sample: + trackType = video + dataHashCode = 496944885 + size = 9652 + isKeyFrame = false + presentationTimeUs = 260000 +sample: + trackType = video + dataHashCode = 591739725 + size = 26209 + isKeyFrame = false + presentationTimeUs = 360000 +sample: + trackType = video + dataHashCode = -469037805 + size = 14679 + isKeyFrame = false + presentationTimeUs = 320000 +sample: + trackType = video + dataHashCode = 2089439735 + size = 11258 + isKeyFrame = false + presentationTimeUs = 300000 +sample: + trackType = video + dataHashCode = -991522861 + size = 8380 + isKeyFrame = false + presentationTimeUs = 340000 +sample: + trackType = video + dataHashCode = 1228181765 + size = 21371 + isKeyFrame = false + presentationTimeUs = 420000 +sample: + trackType = video + dataHashCode = -881594031 + size = 15113 + isKeyFrame = false + presentationTimeUs = 380000 +sample: + trackType = video + dataHashCode = -1336355567 + size = 10553 + isKeyFrame = false + presentationTimeUs = 400000 +sample: + trackType = video + dataHashCode = -1156719720 + size = 34938 + isKeyFrame = false + presentationTimeUs = 480000 +sample: + trackType = video + dataHashCode = 396046716 + size = 17842 + isKeyFrame = false + presentationTimeUs = 440000 +sample: + trackType = video + dataHashCode = -1084632521 + size = 11502 + isKeyFrame = false + presentationTimeUs = 460000 +sample: + trackType = video + dataHashCode = -337819407 + size = 18009 + isKeyFrame = false + presentationTimeUs = 500000 +sample: + trackType = video + dataHashCode = 1295059940 + size = 24298 + isKeyFrame = false + presentationTimeUs = 520000 +sample: + trackType = video + dataHashCode = -929598998 + size = 21682 + isKeyFrame = false + presentationTimeUs = 540000 +sample: + trackType = video + dataHashCode = 1579805687 + size = 31833 + isKeyFrame = false + presentationTimeUs = 620000 +sample: + trackType = video + dataHashCode = 79553286 + size = 20853 + isKeyFrame = false + presentationTimeUs = 580000 +sample: + trackType = video + dataHashCode = -119845353 + size = 12906 + isKeyFrame = false + presentationTimeUs = 560000 +sample: + trackType = video + dataHashCode = -1242905044 + size = 17165 + isKeyFrame = false + presentationTimeUs = 600000 +sample: + trackType = video + dataHashCode = 1161132039 + size = 35065 + isKeyFrame = false + presentationTimeUs = 700000 +sample: + trackType = video + dataHashCode = 1801923857 + size = 19881 + isKeyFrame = false + presentationTimeUs = 660000 +sample: + trackType = video + dataHashCode = -1201934910 + size = 22571 + isKeyFrame = false + presentationTimeUs = 640000 +sample: + trackType = video + dataHashCode = -655417171 + size = 11566 + isKeyFrame = false + presentationTimeUs = 680000 +sample: + trackType = video + dataHashCode = 2011055114 + size = 24236 + isKeyFrame = false + presentationTimeUs = 780000 +sample: + trackType = video + dataHashCode = 1098159553 + size = 10515 + isKeyFrame = false + presentationTimeUs = 740000 +sample: + trackType = video + dataHashCode = 813195513 + size = 8188 + isKeyFrame = false + presentationTimeUs = 720000 +sample: + trackType = video + dataHashCode = 1610084647 + size = 9662 + isKeyFrame = false + presentationTimeUs = 760000 +sample: + trackType = video + dataHashCode = -389131647 + size = 22443 + isKeyFrame = false + presentationTimeUs = 860000 +sample: + trackType = video + dataHashCode = -49148581 + size = 12726 + isKeyFrame = false + presentationTimeUs = 820000 +sample: + trackType = video + dataHashCode = 650534699 + size = 8521 + isKeyFrame = false + presentationTimeUs = 800000 +sample: + trackType = video + dataHashCode = 554081714 + size = 7850 + isKeyFrame = false + presentationTimeUs = 840000 +sample: + trackType = video + dataHashCode = -539147636 + size = 30005 + isKeyFrame = false + presentationTimeUs = 940000 +sample: + trackType = video + dataHashCode = 863445487 + size = 19430 + isKeyFrame = false + presentationTimeUs = 900000 +sample: + trackType = video + dataHashCode = -210870675 + size = 12962 + isKeyFrame = false + presentationTimeUs = 880000 +sample: + trackType = video + dataHashCode = -1294790684 + size = 10767 + isKeyFrame = false + presentationTimeUs = 920000 +sample: + trackType = video + dataHashCode = -650391415 + size = 25914 + isKeyFrame = false + presentationTimeUs = 1000000 +sample: + trackType = video + dataHashCode = 1964249241 + size = 11471 + isKeyFrame = false + presentationTimeUs = 960000 +sample: + trackType = video + dataHashCode = 1901943199 + size = 8639 + isKeyFrame = false + presentationTimeUs = 980000 +sample: + trackType = video + dataHashCode = 754314804 + size = 22173 + isKeyFrame = false + presentationTimeUs = 1060000 +sample: + trackType = video + dataHashCode = 1631939129 + size = 10274 + isKeyFrame = false + presentationTimeUs = 1020000 +sample: + trackType = video + dataHashCode = -914580412 + size = 8625 + isKeyFrame = false + presentationTimeUs = 1040000 +sample: + trackType = video + dataHashCode = 464184359 + size = 19443 + isKeyFrame = false + presentationTimeUs = 1100000 +sample: + trackType = video + dataHashCode = 521590252 + size = 9189 + isKeyFrame = false + presentationTimeUs = 1080000 +sample: + trackType = video + dataHashCode = -1920606290 + size = 16242 + isKeyFrame = false + presentationTimeUs = 1120000 +sample: + trackType = video + dataHashCode = -1462753526 + size = 16036 + isKeyFrame = false + presentationTimeUs = 1140000 +sample: + trackType = video + dataHashCode = -2095257664 + size = 16431 + isKeyFrame = false + presentationTimeUs = 1160000 +sample: + trackType = video + dataHashCode = -1722510728 + size = 16421 + isKeyFrame = false + presentationTimeUs = 1180000 +sample: + trackType = video + dataHashCode = -2075073532 + size = 23643 + isKeyFrame = false + presentationTimeUs = 1240000 +sample: + trackType = video + dataHashCode = 1068866869 + size = 9962 + isKeyFrame = false + presentationTimeUs = 1200000 +sample: + trackType = video + dataHashCode = 2139806323 + size = 8627 + isKeyFrame = false + presentationTimeUs = 1220000 +sample: + trackType = video + dataHashCode = -75510961 + size = 20148 + isKeyFrame = false + presentationTimeUs = 1280000 +sample: + trackType = video + dataHashCode = -1734586788 + size = 8888 + isKeyFrame = false + presentationTimeUs = 1260000 +sample: + trackType = video + dataHashCode = 1689355701 + size = 19300 + isKeyFrame = false + presentationTimeUs = 1320000 +sample: + trackType = video + dataHashCode = 1014386281 + size = 8455 + isKeyFrame = false + presentationTimeUs = 1300000 +sample: + trackType = video + dataHashCode = 655967971 + size = 29708 + isKeyFrame = false + presentationTimeUs = 1400000 +sample: + trackType = video + dataHashCode = 651498019 + size = 12715 + isKeyFrame = false + presentationTimeUs = 1360000 +sample: + trackType = video + dataHashCode = -1326592134 + size = 8573 + isKeyFrame = false + presentationTimeUs = 1340000 +sample: + trackType = video + dataHashCode = -481876840 + size = 8982 + isKeyFrame = false + presentationTimeUs = 1380000 +sample: + trackType = video + dataHashCode = -1289166593 + size = 25026 + isKeyFrame = false + presentationTimeUs = 1460000 +sample: + trackType = video + dataHashCode = 1533284887 + size = 9600 + isKeyFrame = false + presentationTimeUs = 1420000 +sample: + trackType = video + dataHashCode = 931231084 + size = 8098 + isKeyFrame = false + presentationTimeUs = 1440000 +sample: + trackType = video + dataHashCode = 593905363 + size = 27032 + isKeyFrame = false + presentationTimeUs = 1540000 +sample: + trackType = video + dataHashCode = -61693143 + size = 11416 + isKeyFrame = false + presentationTimeUs = 1500000 +sample: + trackType = video + dataHashCode = 2034274294 + size = 8119 + isKeyFrame = false + presentationTimeUs = 1480000 +sample: + trackType = video + dataHashCode = -1382173825 + size = 7355 + isKeyFrame = false + presentationTimeUs = 1520000 +sample: + trackType = video + dataHashCode = 1141112289 + size = 27694 + isKeyFrame = false + presentationTimeUs = 1620000 +sample: + trackType = video + dataHashCode = 615108734 + size = 10665 + isKeyFrame = false + presentationTimeUs = 1580000 +sample: + trackType = video + dataHashCode = -192568269 + size = 7176 + isKeyFrame = false + presentationTimeUs = 1560000 +sample: + trackType = video + dataHashCode = 1139129648 + size = 7375 + isKeyFrame = false + presentationTimeUs = 1600000 +sample: + trackType = video + dataHashCode = -644623072 + size = 24651 + isKeyFrame = false + presentationTimeUs = 1700000 +sample: + trackType = video + dataHashCode = 1087668168 + size = 9679 + isKeyFrame = false + presentationTimeUs = 1660000 +sample: + trackType = video + dataHashCode = 1406222068 + size = 6862 + isKeyFrame = false + presentationTimeUs = 1640000 +sample: + trackType = video + dataHashCode = -622032068 + size = 6000 + isKeyFrame = false + presentationTimeUs = 1680000 +sample: + trackType = video + dataHashCode = 1191619637 + size = 22101 + isKeyFrame = false + presentationTimeUs = 1780000 +sample: + trackType = video + dataHashCode = 603349552 + size = 8537 + isKeyFrame = false + presentationTimeUs = 1740000 +sample: + trackType = video + dataHashCode = -1784449460 + size = 6288 + isKeyFrame = false + presentationTimeUs = 1720000 +sample: + trackType = video + dataHashCode = 1158465085 + size = 5152 + isKeyFrame = false + presentationTimeUs = 1760000 +sample: + trackType = video + dataHashCode = 147323155 + size = 19889 + isKeyFrame = false + presentationTimeUs = 1860000 +sample: + trackType = video + dataHashCode = 1714081095 + size = 8893 + isKeyFrame = false + presentationTimeUs = 1820000 +sample: + trackType = video + dataHashCode = -1894307035 + size = 5905 + isKeyFrame = false + presentationTimeUs = 1800000 +sample: + trackType = video + dataHashCode = -1208848015 + size = 5635 + isKeyFrame = false + presentationTimeUs = 1840000 +sample: + trackType = video + dataHashCode = 1015012687 + size = 14896 + isKeyFrame = false + presentationTimeUs = 1940000 +sample: + trackType = video + dataHashCode = 513736378 + size = 9260 + isKeyFrame = false + presentationTimeUs = 1900000 +sample: + trackType = video + dataHashCode = 1346700024 + size = 5850 + isKeyFrame = false + presentationTimeUs = 1880000 +sample: + trackType = video + dataHashCode = 279399292 + size = 7154 + isKeyFrame = false + presentationTimeUs = 1920000 +sample: + trackType = video + dataHashCode = 831498454 + size = 8605 + isKeyFrame = false + presentationTimeUs = 1980000 +sample: + trackType = video + dataHashCode = -20875598 + size = 6983 + isKeyFrame = false + presentationTimeUs = 1960000 +released = true diff --git a/libraries/test_data/src/test/assets/transformerdumps/composition/seq-sowt-with-video.mov+seq-sample_rf64.wav_clipped0msTo300ms-gap_200ms-sample_rf64.wav_clipped300msTo800ms.dump b/libraries/test_data/src/test/assets/transformerdumps/composition/seq-sowt-with-video.mov+seq-sample_rf64.wav_clipped0msTo300ms-gap_200ms-sample_rf64.wav_clipped300msTo800ms.dump new file mode 100644 index 0000000000..35816d02d9 --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/composition/seq-sowt-with-video.mov+seq-sample_rf64.wav_clipped0msTo300ms-gap_200ms-sample_rf64.wav_clipped300msTo800ms.dump @@ -0,0 +1,1099 @@ +format audio: + averageBitrate = 131072 + sampleMimeType = audio/mp4a-latm + channelCount = 2 + sampleRate = 48000 + pcmEncoding = 2 + metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000] +format video: + id = 1 + sampleMimeType = video/avc + codecs = avc1.64002A + maxInputSize = 41084 + maxNumReorderSamples = 2 + width = 1920 + height = 1080 + frameRate = 50.00 + colorInfo: + colorSpace = 1 + colorRange = 2 + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 34, hash 8D738018 + data = length 10, hash 7A0D0F2B +container metadata: + entry = Mp4Timestamp: creation time=0, modification time=0, timescale=1000 + entry = Mp4Timestamp: creation time=0, modification time=0, timescale=1000 +sample: + trackType = audio + dataHashCode = 1831484889 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 249663982 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -952375988 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1104767232 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1071735193 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 11797379 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1312208757 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1049109782 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1406320840 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 554600029 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1771684952 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1475714894 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1988052938 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -22374423 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1440309356 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1097526806 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -295108001 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -570703176 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1176598744 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -913365417 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 521709915 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1512550842 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -977083996 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 792621077 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 25114417 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 977841946 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1583378414 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1010598904 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1601131727 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 476052144 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1722819382 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -104073993 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1183326444 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1471701996 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1721028706 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -835928084 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -752755934 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1014841053 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -5244765 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -189896781 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -816272711 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 287875876 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -493356528 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1683631739 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -861196079 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1804207347 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 196164772 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1100787564 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1345957974 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -488143400 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -10223628 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1536847847 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 753825301 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 462774015 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1959522750 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -852953535 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -795715262 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1096849459 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -10453887 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1764903846 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 383125128 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1991155096 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -2077760291 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 2096309171 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 306595787 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -2137344472 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1093707365 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -826848566 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 598267634 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -864852241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1809702128 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1614324273 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -671278854 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1596428232 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1491661393 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1345324901 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -494252355 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 628101539 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1559329530 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 33458315 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -346868389 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 793986204 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -790083813 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 318703351 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1886284670 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1358755786 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1054390499 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -797666266 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1248986964 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -843257838 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 640691272 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -622869771 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1995556891 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1813305126 + size = 3072 + isKeyFrame = true +sample: + trackType = video + dataHashCode = 33691269 + size = 41054 + isKeyFrame = true + presentationTimeUs = 0 +sample: + trackType = video + dataHashCode = 951153212 + size = 15163 + isKeyFrame = false + presentationTimeUs = 40000 +sample: + trackType = video + dataHashCode = 552307150 + size = 6490 + isKeyFrame = false + presentationTimeUs = 20000 +sample: + trackType = video + dataHashCode = -151063635 + size = 25484 + isKeyFrame = false + presentationTimeUs = 120000 +sample: + trackType = video + dataHashCode = -1847115463 + size = 14792 + isKeyFrame = false + presentationTimeUs = 80000 +sample: + trackType = video + dataHashCode = 775037055 + size = 8823 + isKeyFrame = false + presentationTimeUs = 60000 +sample: + trackType = video + dataHashCode = 1452603441 + size = 7905 + isKeyFrame = false + presentationTimeUs = 100000 +sample: + trackType = video + dataHashCode = 1732228513 + size = 21086 + isKeyFrame = false + presentationTimeUs = 200000 +sample: + trackType = video + dataHashCode = 1246814657 + size = 13181 + isKeyFrame = false + presentationTimeUs = 160000 +sample: + trackType = video + dataHashCode = 426081419 + size = 7666 + isKeyFrame = false + presentationTimeUs = 140000 +sample: + trackType = video + dataHashCode = -241872379 + size = 8627 + isKeyFrame = false + presentationTimeUs = 180000 +sample: + trackType = video + dataHashCode = 1109784816 + size = 23310 + isKeyFrame = false + presentationTimeUs = 280000 +sample: + trackType = video + dataHashCode = -377448231 + size = 16108 + isKeyFrame = false + presentationTimeUs = 240000 +sample: + trackType = video + dataHashCode = -688376574 + size = 10591 + isKeyFrame = false + presentationTimeUs = 220000 +sample: + trackType = video + dataHashCode = 496944885 + size = 9652 + isKeyFrame = false + presentationTimeUs = 260000 +sample: + trackType = video + dataHashCode = 591739725 + size = 26209 + isKeyFrame = false + presentationTimeUs = 360000 +sample: + trackType = video + dataHashCode = -469037805 + size = 14679 + isKeyFrame = false + presentationTimeUs = 320000 +sample: + trackType = video + dataHashCode = 2089439735 + size = 11258 + isKeyFrame = false + presentationTimeUs = 300000 +sample: + trackType = video + dataHashCode = -991522861 + size = 8380 + isKeyFrame = false + presentationTimeUs = 340000 +sample: + trackType = video + dataHashCode = 1228181765 + size = 21371 + isKeyFrame = false + presentationTimeUs = 420000 +sample: + trackType = video + dataHashCode = -881594031 + size = 15113 + isKeyFrame = false + presentationTimeUs = 380000 +sample: + trackType = video + dataHashCode = -1336355567 + size = 10553 + isKeyFrame = false + presentationTimeUs = 400000 +sample: + trackType = video + dataHashCode = -1156719720 + size = 34938 + isKeyFrame = false + presentationTimeUs = 480000 +sample: + trackType = video + dataHashCode = 396046716 + size = 17842 + isKeyFrame = false + presentationTimeUs = 440000 +sample: + trackType = video + dataHashCode = -1084632521 + size = 11502 + isKeyFrame = false + presentationTimeUs = 460000 +sample: + trackType = video + dataHashCode = -337819407 + size = 18009 + isKeyFrame = false + presentationTimeUs = 500000 +sample: + trackType = video + dataHashCode = 1295059940 + size = 24298 + isKeyFrame = false + presentationTimeUs = 520000 +sample: + trackType = video + dataHashCode = -929598998 + size = 21682 + isKeyFrame = false + presentationTimeUs = 540000 +sample: + trackType = video + dataHashCode = 1579805687 + size = 31833 + isKeyFrame = false + presentationTimeUs = 620000 +sample: + trackType = video + dataHashCode = 79553286 + size = 20853 + isKeyFrame = false + presentationTimeUs = 580000 +sample: + trackType = video + dataHashCode = -119845353 + size = 12906 + isKeyFrame = false + presentationTimeUs = 560000 +sample: + trackType = video + dataHashCode = -1242905044 + size = 17165 + isKeyFrame = false + presentationTimeUs = 600000 +sample: + trackType = video + dataHashCode = 1161132039 + size = 35065 + isKeyFrame = false + presentationTimeUs = 700000 +sample: + trackType = video + dataHashCode = 1801923857 + size = 19881 + isKeyFrame = false + presentationTimeUs = 660000 +sample: + trackType = video + dataHashCode = -1201934910 + size = 22571 + isKeyFrame = false + presentationTimeUs = 640000 +sample: + trackType = video + dataHashCode = -655417171 + size = 11566 + isKeyFrame = false + presentationTimeUs = 680000 +sample: + trackType = video + dataHashCode = 2011055114 + size = 24236 + isKeyFrame = false + presentationTimeUs = 780000 +sample: + trackType = video + dataHashCode = 1098159553 + size = 10515 + isKeyFrame = false + presentationTimeUs = 740000 +sample: + trackType = video + dataHashCode = 813195513 + size = 8188 + isKeyFrame = false + presentationTimeUs = 720000 +sample: + trackType = video + dataHashCode = 1610084647 + size = 9662 + isKeyFrame = false + presentationTimeUs = 760000 +sample: + trackType = video + dataHashCode = -389131647 + size = 22443 + isKeyFrame = false + presentationTimeUs = 860000 +sample: + trackType = video + dataHashCode = -49148581 + size = 12726 + isKeyFrame = false + presentationTimeUs = 820000 +sample: + trackType = video + dataHashCode = 650534699 + size = 8521 + isKeyFrame = false + presentationTimeUs = 800000 +sample: + trackType = video + dataHashCode = 554081714 + size = 7850 + isKeyFrame = false + presentationTimeUs = 840000 +sample: + trackType = video + dataHashCode = -539147636 + size = 30005 + isKeyFrame = false + presentationTimeUs = 940000 +sample: + trackType = video + dataHashCode = 863445487 + size = 19430 + isKeyFrame = false + presentationTimeUs = 900000 +sample: + trackType = video + dataHashCode = -210870675 + size = 12962 + isKeyFrame = false + presentationTimeUs = 880000 +sample: + trackType = video + dataHashCode = -1294790684 + size = 10767 + isKeyFrame = false + presentationTimeUs = 920000 +sample: + trackType = video + dataHashCode = -650391415 + size = 25914 + isKeyFrame = false + presentationTimeUs = 1000000 +sample: + trackType = video + dataHashCode = 1964249241 + size = 11471 + isKeyFrame = false + presentationTimeUs = 960000 +sample: + trackType = video + dataHashCode = 1901943199 + size = 8639 + isKeyFrame = false + presentationTimeUs = 980000 +sample: + trackType = video + dataHashCode = 754314804 + size = 22173 + isKeyFrame = false + presentationTimeUs = 1060000 +sample: + trackType = video + dataHashCode = 1631939129 + size = 10274 + isKeyFrame = false + presentationTimeUs = 1020000 +sample: + trackType = video + dataHashCode = -914580412 + size = 8625 + isKeyFrame = false + presentationTimeUs = 1040000 +sample: + trackType = video + dataHashCode = 464184359 + size = 19443 + isKeyFrame = false + presentationTimeUs = 1100000 +sample: + trackType = video + dataHashCode = 521590252 + size = 9189 + isKeyFrame = false + presentationTimeUs = 1080000 +sample: + trackType = video + dataHashCode = -1920606290 + size = 16242 + isKeyFrame = false + presentationTimeUs = 1120000 +sample: + trackType = video + dataHashCode = -1462753526 + size = 16036 + isKeyFrame = false + presentationTimeUs = 1140000 +sample: + trackType = video + dataHashCode = -2095257664 + size = 16431 + isKeyFrame = false + presentationTimeUs = 1160000 +sample: + trackType = video + dataHashCode = -1722510728 + size = 16421 + isKeyFrame = false + presentationTimeUs = 1180000 +sample: + trackType = video + dataHashCode = -2075073532 + size = 23643 + isKeyFrame = false + presentationTimeUs = 1240000 +sample: + trackType = video + dataHashCode = 1068866869 + size = 9962 + isKeyFrame = false + presentationTimeUs = 1200000 +sample: + trackType = video + dataHashCode = 2139806323 + size = 8627 + isKeyFrame = false + presentationTimeUs = 1220000 +sample: + trackType = video + dataHashCode = -75510961 + size = 20148 + isKeyFrame = false + presentationTimeUs = 1280000 +sample: + trackType = video + dataHashCode = -1734586788 + size = 8888 + isKeyFrame = false + presentationTimeUs = 1260000 +sample: + trackType = video + dataHashCode = 1689355701 + size = 19300 + isKeyFrame = false + presentationTimeUs = 1320000 +sample: + trackType = video + dataHashCode = 1014386281 + size = 8455 + isKeyFrame = false + presentationTimeUs = 1300000 +sample: + trackType = video + dataHashCode = 655967971 + size = 29708 + isKeyFrame = false + presentationTimeUs = 1400000 +sample: + trackType = video + dataHashCode = 651498019 + size = 12715 + isKeyFrame = false + presentationTimeUs = 1360000 +sample: + trackType = video + dataHashCode = -1326592134 + size = 8573 + isKeyFrame = false + presentationTimeUs = 1340000 +sample: + trackType = video + dataHashCode = -481876840 + size = 8982 + isKeyFrame = false + presentationTimeUs = 1380000 +sample: + trackType = video + dataHashCode = -1289166593 + size = 25026 + isKeyFrame = false + presentationTimeUs = 1460000 +sample: + trackType = video + dataHashCode = 1533284887 + size = 9600 + isKeyFrame = false + presentationTimeUs = 1420000 +sample: + trackType = video + dataHashCode = 931231084 + size = 8098 + isKeyFrame = false + presentationTimeUs = 1440000 +sample: + trackType = video + dataHashCode = 593905363 + size = 27032 + isKeyFrame = false + presentationTimeUs = 1540000 +sample: + trackType = video + dataHashCode = -61693143 + size = 11416 + isKeyFrame = false + presentationTimeUs = 1500000 +sample: + trackType = video + dataHashCode = 2034274294 + size = 8119 + isKeyFrame = false + presentationTimeUs = 1480000 +sample: + trackType = video + dataHashCode = -1382173825 + size = 7355 + isKeyFrame = false + presentationTimeUs = 1520000 +sample: + trackType = video + dataHashCode = 1141112289 + size = 27694 + isKeyFrame = false + presentationTimeUs = 1620000 +sample: + trackType = video + dataHashCode = 615108734 + size = 10665 + isKeyFrame = false + presentationTimeUs = 1580000 +sample: + trackType = video + dataHashCode = -192568269 + size = 7176 + isKeyFrame = false + presentationTimeUs = 1560000 +sample: + trackType = video + dataHashCode = 1139129648 + size = 7375 + isKeyFrame = false + presentationTimeUs = 1600000 +sample: + trackType = video + dataHashCode = -644623072 + size = 24651 + isKeyFrame = false + presentationTimeUs = 1700000 +sample: + trackType = video + dataHashCode = 1087668168 + size = 9679 + isKeyFrame = false + presentationTimeUs = 1660000 +sample: + trackType = video + dataHashCode = 1406222068 + size = 6862 + isKeyFrame = false + presentationTimeUs = 1640000 +sample: + trackType = video + dataHashCode = -622032068 + size = 6000 + isKeyFrame = false + presentationTimeUs = 1680000 +sample: + trackType = video + dataHashCode = 1191619637 + size = 22101 + isKeyFrame = false + presentationTimeUs = 1780000 +sample: + trackType = video + dataHashCode = 603349552 + size = 8537 + isKeyFrame = false + presentationTimeUs = 1740000 +sample: + trackType = video + dataHashCode = -1784449460 + size = 6288 + isKeyFrame = false + presentationTimeUs = 1720000 +sample: + trackType = video + dataHashCode = 1158465085 + size = 5152 + isKeyFrame = false + presentationTimeUs = 1760000 +sample: + trackType = video + dataHashCode = 147323155 + size = 19889 + isKeyFrame = false + presentationTimeUs = 1860000 +sample: + trackType = video + dataHashCode = 1714081095 + size = 8893 + isKeyFrame = false + presentationTimeUs = 1820000 +sample: + trackType = video + dataHashCode = -1894307035 + size = 5905 + isKeyFrame = false + presentationTimeUs = 1800000 +sample: + trackType = video + dataHashCode = -1208848015 + size = 5635 + isKeyFrame = false + presentationTimeUs = 1840000 +sample: + trackType = video + dataHashCode = 1015012687 + size = 14896 + isKeyFrame = false + presentationTimeUs = 1940000 +sample: + trackType = video + dataHashCode = 513736378 + size = 9260 + isKeyFrame = false + presentationTimeUs = 1900000 +sample: + trackType = video + dataHashCode = 1346700024 + size = 5850 + isKeyFrame = false + presentationTimeUs = 1880000 +sample: + trackType = video + dataHashCode = 279399292 + size = 7154 + isKeyFrame = false + presentationTimeUs = 1920000 +sample: + trackType = video + dataHashCode = 831498454 + size = 8605 + isKeyFrame = false + presentationTimeUs = 1980000 +sample: + trackType = video + dataHashCode = -20875598 + size = 6983 + isKeyFrame = false + presentationTimeUs = 1960000 +released = true diff --git a/libraries/test_data/src/test/assets/transformerdumps/gap/500ms.dump b/libraries/test_data/src/test/assets/transformerdumps/gap/500ms.dump new file mode 100644 index 0000000000..ad75f6a2c3 --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/gap/500ms.dump @@ -0,0 +1,117 @@ +format audio: + averageBitrate = 131072 + sampleMimeType = audio/mp4a-latm + channelCount = 2 + sampleRate = 44100 + pcmEncoding = 2 +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1728208641 + size = 2184 + isKeyFrame = true +released = true diff --git a/libraries/test_data/src/test/assets/transformerdumps/sequence/gap_200ms/gap_500ms/sample.wav.dump b/libraries/test_data/src/test/assets/transformerdumps/sequence/gap_200ms/gap_500ms/sample.wav.dump new file mode 100644 index 0000000000..0da193ef00 --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/sequence/gap_200ms/gap_500ms/sample.wav.dump @@ -0,0 +1,377 @@ +format audio: + averageBitrate = 131072 + sampleMimeType = audio/mp4a-latm + channelCount = 2 + sampleRate = 44100 + pcmEncoding = 2 +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1549267417 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 189152495 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1814391561 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -422124093 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -155446957 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1488079801 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1669809701 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -894031225 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 40356789 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 971335451 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1732134737 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -446879687 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 868401927 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1206562483 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1400548769 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1068263999 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -2145054801 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1570577127 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 10822971 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 688645803 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -2108835899 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -722381595 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1250628323 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 244326497 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -698620401 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 271098305 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1004000469 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1556734443 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -903836437 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -177535827 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -595024459 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -2131779733 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1910157521 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 131901723 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 583017977 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 163786317 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 387678787 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -884773583 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1782565003 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -270552755 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -371096827 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1960606887 + size = 872 + isKeyFrame = true +released = true diff --git a/libraries/test_data/src/test/assets/transformerdumps/sequence/gap_500ms/sample.wav/gap_200ms/sample.wav.dump b/libraries/test_data/src/test/assets/transformerdumps/sequence/gap_500ms/sample.wav/gap_200ms/sample.wav.dump new file mode 100644 index 0000000000..6d2855d803 --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/sequence/gap_500ms/sample.wav/gap_200ms/sample.wav.dump @@ -0,0 +1,592 @@ +format audio: + averageBitrate = 131072 + sampleMimeType = audio/mp4a-latm + channelCount = 2 + sampleRate = 44100 + pcmEncoding = 2 +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1039756463 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 532104865 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -2624455 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 861767379 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 374370895 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -101038951 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1221457977 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 668147831 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -912268579 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1066036765 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1280807051 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -331910423 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -601176327 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1258553699 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1298154949 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1230948091 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1309853349 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1932471341 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1319660815 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 203254827 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -38648823 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 41026117 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 665344669 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1362552447 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -811356717 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1083196893 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 481568515 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1740292951 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 176097221 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1538356855 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1523294877 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1035272899 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 2006397059 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1229497131 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 575153873 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -180951997 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -155506985 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 771687811 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1771428289 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 415627769 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1851518133 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1491589801 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1451338191 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -2030338071 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -2140922517 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1748392625 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1287891629 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1923200619 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1521215509 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1640206823 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 210873943 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1744451301 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 2000153215 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1039735551 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -109960687 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -370495703 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1284650595 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1361253863 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -857651477 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1997614047 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1362337995 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1629579951 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1326900633 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1032738365 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 415627231 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 57107875 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1660454425 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 285979697 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1504030063 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1211281407 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 820691967 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 319369447 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -245890127 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 151928257 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 2008077475 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1938059573 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1983275801 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1943585545 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1433346369 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1711471215 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1312724333 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -675636013 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -12375949 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -180443079 + size = 1144 + isKeyFrame = true +released = true diff --git a/libraries/test_data/src/test/assets/transformerdumps/sequence/sample.wav/gap_200ms/sample.wav/gap_500ms.dump b/libraries/test_data/src/test/assets/transformerdumps/sequence/sample.wav/gap_200ms/sample.wav/gap_500ms.dump new file mode 100644 index 0000000000..96bb2a1746 --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/sequence/sample.wav/gap_200ms/sample.wav/gap_500ms.dump @@ -0,0 +1,302 @@ +format audio: + averageBitrate = 131072 + sampleMimeType = audio/mp4a-latm + channelCount = 1 + sampleRate = 44100 + pcmEncoding = 2 +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -77784020 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1487579866 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -955640128 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1797926221 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1304162335 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 87515422 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1134039798 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -2131288947 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1159697593 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -889164698 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1380568930 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1722863050 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1365744081 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -81471997 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -6915052 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1634845963 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1252305359 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 2127515647 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 2077308846 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1055925064 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1806711606 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1326368952 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -161801624 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 2080056822 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -716932048 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1439402914 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -793688784 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 34855870 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1205979058 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -690080937 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -542923942 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1305696330 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 785152593 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1048551992 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 522695938 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 575615445 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 372293125 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -547323125 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 119556475 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1819928231 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -2147026131 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -293825684 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -742988832 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1521393535 + size = 572 + isKeyFrame = true +released = true diff --git a/libraries/test_data/src/test/assets/transformerdumps/sequence/sample.wav/gap_500ms/gap_200ms.dump b/libraries/test_data/src/test/assets/transformerdumps/sequence/sample.wav/gap_500ms/gap_200ms.dump new file mode 100644 index 0000000000..f1bc51c37a --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/sequence/sample.wav/gap_500ms/gap_200ms.dump @@ -0,0 +1,192 @@ +format audio: + averageBitrate = 131072 + sampleMimeType = audio/mp4a-latm + channelCount = 1 + sampleRate = 44100 + pcmEncoding = 2 +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -77784020 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1487579866 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -955640128 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1797926221 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1304162335 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 87515422 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1134039798 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -2131288947 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1159697593 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -889164698 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1380568930 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1722863050 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1365744081 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -81471997 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -6915052 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1634845963 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1252305359 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 2127515647 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 2077308846 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1055925064 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1806711606 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1999233 + size = 2484 + isKeyFrame = true +released = true diff --git a/libraries/test_data/src/test/assets/transformerdumps/sequence/sample.wav/gap_500ms/gap_200ms/sample.wav.dump b/libraries/test_data/src/test/assets/transformerdumps/sequence/sample.wav/gap_500ms/gap_200ms/sample.wav.dump new file mode 100644 index 0000000000..05a03eb268 --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/sequence/sample.wav/gap_500ms/gap_200ms/sample.wav.dump @@ -0,0 +1,302 @@ +format audio: + averageBitrate = 131072 + sampleMimeType = audio/mp4a-latm + channelCount = 1 + sampleRate = 44100 + pcmEncoding = 2 +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -77784020 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1487579866 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -955640128 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1797926221 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1304162335 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 87515422 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1134039798 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -2131288947 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1159697593 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -889164698 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1380568930 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1722863050 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1365744081 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -81471997 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -6915052 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1634845963 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1252305359 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 2127515647 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 2077308846 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1055925064 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1806711606 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1742602241 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -635847032 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1881983178 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -728439441 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 515653227 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -391208104 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 166656461 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 330396328 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -116386074 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 569267689 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1316476459 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -223671612 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1465862447 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 2040352837 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1371156112 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1657641665 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1745756564 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 2067094482 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 2009678119 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -1673523012 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1191811455 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = -120295709 + size = 4096 + isKeyFrame = true +sample: + trackType = audio + dataHashCode = 1474861853 + size = 572 + isKeyFrame = true +released = true diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java index ab39426b93..c1c7486178 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java @@ -327,6 +327,9 @@ public class TransformerAndroidTestRunner { } for (EditedMediaItemSequence sequence : composition.sequences) { for (EditedMediaItem editedMediaItem : sequence.editedMediaItems) { + if (editedMediaItem.isGap()) { + continue; + } Uri mediaItemUri = checkNotNull(editedMediaItem.mediaItem.localConfiguration).uri; String scheme = mediaItemUri.getScheme(); if (scheme != null && (scheme.equals("http") || scheme.equals("https"))) { diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerEndToEndTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerEndToEndTest.java index 6f93d8b5b6..f9025c9c6b 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerEndToEndTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerEndToEndTest.java @@ -1610,6 +1610,74 @@ public class TransformerEndToEndTest { assertThat(new File(result.filePath).length()).isGreaterThan(0); } + @Test + public void start_audioCompositionWithFirstSequenceOffsetGap_isCorrect() throws Exception { + assumeFormatsSupported( + context, + testId, + /* inputFormat= */ MP4_ASSET.videoFormat, + /* outputFormat= */ MP4_ASSET.videoFormat); + EditedMediaItem editedMediaItem = + new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET.uri))) + .setRemoveVideo(true) + .build(); + Composition composition = + new Composition.Builder( + new EditedMediaItemSequence.Builder() + .addGap(100_000) + .addItem(editedMediaItem) + .build(), + new EditedMediaItemSequence.Builder(editedMediaItem).build()) + .build(); + + ExportTestResult result = + new TransformerAndroidTestRunner.Builder(context, new Transformer.Builder(context).build()) + .build() + .run(testId, composition); + + assertThat(new File(result.filePath).length()).isGreaterThan(0); + assertThat(result.exportResult.processedInputs).hasSize(3); + } + + @Test + public void start_audioVideoCompositionWithSecondSequenceIntervalGap_isCorrect() + throws Exception { + assumeFormatsSupported( + context, + testId, + /* inputFormat= */ MP4_ASSET.videoFormat, + /* outputFormat= */ MP4_ASSET.videoFormat); + + EditedMediaItem videoItem = + new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET.uri))).build(); + EditedMediaItem editedMediaItem = + new EditedMediaItem.Builder( + new MediaItem.Builder() + .setUri(MP4_ASSET.uri) + .setClippingConfiguration( + new MediaItem.ClippingConfiguration.Builder().setEndPositionMs(300).build()) + .build()) + .setRemoveVideo(true) + .build(); + Composition composition = + new Composition.Builder( + new EditedMediaItemSequence.Builder(videoItem).build(), + new EditedMediaItemSequence.Builder() + .addItem(editedMediaItem) + .addGap(200_000) + .addItem(editedMediaItem) + .build()) + .build(); + + ExportTestResult result = + new TransformerAndroidTestRunner.Builder(context, new Transformer.Builder(context).build()) + .build() + .run(testId, composition); + + assertThat(new File(result.filePath).length()).isGreaterThan(0); + assertThat(result.exportResult.processedInputs).hasSize(4); + } + @Test public void analyzeAudio_completesSuccessfully() throws Exception { assumeFormatsSupported( diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/Composition.java b/libraries/transformer/src/main/java/androidx/media3/transformer/Composition.java index d5860d8bec..e475e6d152 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/Composition.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/Composition.java @@ -440,4 +440,17 @@ public final class Composition { this.hdrMode = hdrMode; this.retainHdrFromUltraHdrImage = retainHdrFromUltraHdrImage; } + + /** + * Return whether any {@linkplain EditedMediaItemSequence sequences} contain a {@linkplain + * EditedMediaItemSequence.Builder#addGap(long) gap}. + */ + /* package */ boolean hasGaps() { + for (int i = 0; i < sequences.size(); i++) { + if (sequences.get(i).hasGaps()) { + return true; + } + } + return false; + } } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/EditedMediaItem.java b/libraries/transformer/src/main/java/androidx/media3/transformer/EditedMediaItem.java index b6e32289ff..f75846def5 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/EditedMediaItem.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/EditedMediaItem.java @@ -29,10 +29,12 @@ import androidx.media3.common.util.Util; import androidx.media3.exoplayer.source.MediaSource; import androidx.media3.extractor.mp4.Mp4Extractor; import com.google.errorprone.annotations.CanIgnoreReturnValue; +import java.util.Objects; /** A {@link MediaItem} with the transformations to apply to it. */ @UnstableApi public final class EditedMediaItem { + /* package */ static final String GAP_MEDIA_ID = "androidx-media3-GapMediaItem"; /** A builder for {@link EditedMediaItem} instances. */ public static final class Builder { @@ -341,4 +343,12 @@ public final class EditedMediaItem { } return max(audioDurationUs, videoDurationUs); } + + /** + * Returns whether this {@code EditedMediaItem} is a {@linkplain + * EditedMediaItemSequence.Builder#addGap(long) gap}. + */ + /* package */ boolean isGap() { + return Objects.equals(mediaItem.mediaId, GAP_MEDIA_ID); + } } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/EditedMediaItemSequence.java b/libraries/transformer/src/main/java/androidx/media3/transformer/EditedMediaItemSequence.java index aa38e2ca2d..b36fdd6721 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/EditedMediaItemSequence.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/EditedMediaItemSequence.java @@ -17,6 +17,7 @@ package androidx.media3.transformer; import static androidx.media3.common.util.Assertions.checkArgument; +import androidx.media3.common.MediaItem; import androidx.media3.common.util.UnstableApi; import com.google.common.collect.ImmutableList; import com.google.errorprone.annotations.CanIgnoreReturnValue; @@ -81,6 +82,26 @@ public final class EditedMediaItemSequence { return this; } + /** + * Adds a gap to the sequence. + * + *

A gap is a period of time with no media. + * + *

Gaps are only supported in sequences of audio. + * + * @param durationUs The duration of the gap, in milliseconds. + * @return This builder, for convenience. + */ + @CanIgnoreReturnValue + public Builder addGap(long durationUs) { + items.add( + new EditedMediaItem.Builder( + new MediaItem.Builder().setMediaId(EditedMediaItem.GAP_MEDIA_ID).build()) + .setDurationUs(durationUs) + .build()); + return this; + } + /** * See {@link EditedMediaItemSequence#isLooping}. * @@ -157,4 +178,14 @@ public final class EditedMediaItemSequence { !editedMediaItems.isEmpty(), "The sequence must contain at least one EditedMediaItem."); this.isLooping = builder.isLooping; } + + /** Return whether any items are a {@linkplain Builder#addGap(long) gap}. */ + /* package */ boolean hasGaps() { + for (int i = 0; i < editedMediaItems.size(); i++) { + if (editedMediaItems.get(i).isGap()) { + return true; + } + } + return false; + } } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/SequenceAssetLoader.java b/libraries/transformer/src/main/java/androidx/media3/transformer/SequenceAssetLoader.java index c542a86fb6..e35ee76248 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/SequenceAssetLoader.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/SequenceAssetLoader.java @@ -64,7 +64,7 @@ import java.util.concurrent.atomic.AtomicInteger; private final List editedMediaItems; private final boolean isLooping; private final boolean forceAudioTrack; - private final AssetLoader.Factory assetLoaderFactory; + private final Factory assetLoaderFactory; private final CompositionSettings compositionSettings; private final Listener sequenceAssetLoaderListener; private final HandlerWrapper handler; @@ -109,7 +109,7 @@ import java.util.concurrent.atomic.AtomicInteger; public SequenceAssetLoader( EditedMediaItemSequence sequence, boolean forceAudioTrack, - AssetLoader.Factory assetLoaderFactory, + Factory assetLoaderFactory, CompositionSettings compositionSettings, Listener listener, Clock clock, @@ -117,7 +117,7 @@ import java.util.concurrent.atomic.AtomicInteger; editedMediaItems = sequence.editedMediaItems; isLooping = sequence.isLooping; this.forceAudioTrack = forceAudioTrack; - this.assetLoaderFactory = assetLoaderFactory; + this.assetLoaderFactory = new GapInterceptingAssetLoaderFactory(assetLoaderFactory); this.compositionSettings = compositionSettings; sequenceAssetLoaderListener = listener; handler = clock.createHandler(looper, /* callback= */ null); @@ -131,7 +131,7 @@ import java.util.concurrent.atomic.AtomicInteger; // constructor. @SuppressWarnings("nullness:argument.type.incompatible") AssetLoader currentAssetLoader = - assetLoaderFactory.createAssetLoader( + this.assetLoaderFactory.createAssetLoader( editedMediaItems.get(0), looper, /* listener= */ this, compositionSettings); this.currentAssetLoader = currentAssetLoader; } @@ -340,12 +340,14 @@ import java.util.concurrent.atomic.AtomicInteger; return; } + EditedMediaItem editedMediaItem = editedMediaItems.get(currentMediaItemIndex); + onMediaItemChangedListener.onMediaItemChanged( - editedMediaItems.get(currentMediaItemIndex), + editedMediaItem, /* durationUs= */ (trackType == C.TRACK_TYPE_AUDIO && isLooping && decodeAudio) ? C.TIME_UNSET : currentAssetDurationUs, - /* decodedFormat= */ outputFormat, + /* decodedFormat= */ editedMediaItem.isGap() ? null : outputFormat, /* isLast= */ currentMediaItemIndex == editedMediaItems.size() - 1); } @@ -544,6 +546,13 @@ import java.util.concurrent.atomic.AtomicInteger; } } + private void onGapSignalled() { + nonEndedTrackCount.decrementAndGet(); + if (currentMediaItemIndex < editedMediaItems.size() - 1) { + switchAssetLoader(); + } + } + private void switchAssetLoader() { handler.post( () -> { @@ -611,4 +620,106 @@ import java.util.concurrent.atomic.AtomicInteger; return new ClippingIterator(iterator.copyOf(), clippingValue); } } + + /** + * Internally signals that the current asset is a {@linkplain + * EditedMediaItemSequence.Builder#addGap(long) gap}, but does no loading or processing of media. + * + *

This component requires downstream components to handle generation of the gap media. + */ + private final class GapSignalingAssetLoader implements AssetLoader { + + private static final int OUTPUT_FORMAT_RETRY_DELAY_MS = 10; + + private final long durationUs; + private final Format trackFormat; + private final Format decodedFormat; + + private boolean outputtedFormat; + + private GapSignalingAssetLoader(long durationUs) { + this.durationUs = durationUs; + this.trackFormat = new Format.Builder().setSampleMimeType(MimeTypes.AUDIO_RAW).build(); + this.decodedFormat = + new Format.Builder() + .setSampleMimeType(MimeTypes.AUDIO_RAW) + .setSampleRate(44100) + .setChannelCount(2) + .setPcmEncoding(C.ENCODING_PCM_16BIT) + .build(); + } + + @Override + public void start() { + onDurationUs(durationUs); + onTrackCount(1); + onTrackAdded(trackFormat, SUPPORTED_OUTPUT_TYPE_DECODED); + outputFormatToSequenceAssetLoader(); + } + + @Override + public @Transformer.ProgressState int getProgress(ProgressHolder progressHolder) { + progressHolder.progress = outputtedFormat ? 99 : 0; + return PROGRESS_STATE_AVAILABLE; + } + + @Override + public ImmutableMap getDecoderNames() { + return ImmutableMap.of(); + } + + @Override + public void release() {} + + /** Outputs the gap format, scheduling to try again if unsuccessful. */ + private void outputFormatToSequenceAssetLoader() { + try { + if (outputtedFormat) { + return; + } + + @Nullable SampleConsumerWrapper sampleConsumerWrapper = onOutputFormat(decodedFormat); + if (sampleConsumerWrapper != null) { + outputtedFormat = true; + sampleConsumerWrapper.onGapSignalled(); + } else { + handler.postDelayed( + this::outputFormatToSequenceAssetLoader, OUTPUT_FORMAT_RETRY_DELAY_MS); + } + + } catch (ExportException e) { + onError(e); + } catch (RuntimeException e) { + onError(ExportException.createForAssetLoader(e, ExportException.ERROR_CODE_UNSPECIFIED)); + } + } + } + + /** + * Intercepts {@link AssetLoader.Factory} calls, when {@linkplain + * EditedMediaItemSequence.Builder#addGap(long) a gap} is detected, otherwise forwards them to the + * provided {@link AssetLoader.Factory}. + * + *

In the case that a gap is detected, a {@link GapSignalingAssetLoader} is returned. + */ + private final class GapInterceptingAssetLoaderFactory implements AssetLoader.Factory { + + private final AssetLoader.Factory factory; + + public GapInterceptingAssetLoaderFactory(AssetLoader.Factory factory) { + this.factory = factory; + } + + @Override + public AssetLoader createAssetLoader( + EditedMediaItem editedMediaItem, + Looper looper, + Listener listener, + CompositionSettings compositionSettings) { + if (editedMediaItem.isGap()) { + return new GapSignalingAssetLoader(editedMediaItem.durationUs); + } + return factory.createAssetLoader(editedMediaItem, looper, listener, compositionSettings); + } + } } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerUtil.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerUtil.java index 7cf16ee4f3..ec7c5b9247 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerUtil.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerUtil.java @@ -83,6 +83,9 @@ public final class TransformerUtil { || composition.sequences.get(sequenceIndex).editedMediaItems.size() > 1) { return !composition.transmuxAudio; } + if (composition.hasGaps()) { + return true; + } if (encoderFactory.audioNeedsEncoding()) { return true; } diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/CompositionExportTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/CompositionExportTest.java index fa3b4b9c44..446bbf0e01 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/CompositionExportTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/CompositionExportTest.java @@ -447,6 +447,278 @@ public class CompositionExportTest { getCompositionDumpFilePath("seq-sample.wav+seq-sample.wav_clipped_100ms_to_400ms")); } + @Test + public void start_audioCompositionWithFirstSequenceAsGap_isCorrect() throws Exception { + CapturingMuxer.Factory muxerFactory = new CapturingMuxer.Factory(/* handleAudioAsPcm= */ true); + Transformer transformer = + createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build(); + EditedMediaItem audioItem1000ms = + new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW)).build(); + Composition composition = + new Composition.Builder( + new EditedMediaItemSequence.Builder().addGap(1_000_000).build(), + new EditedMediaItemSequence.Builder(audioItem1000ms).build()) + .build(); + + transformer.start(composition, outputDir.newFile().getPath()); + TransformerTestRunner.runLooper(transformer); + + // Gaps are 44.1kHz, stereo by default. Sample.wav is 44.1kHz mono, so this test needs its own + // dump file. + DumpFileAsserts.assertOutput( + context, + muxerFactory.getCreatedMuxer(), + getCompositionDumpFilePath("seq-" + "gap_1000ms" + "+seq-" + getFileName(FILE_AUDIO_RAW))); + } + + @Test + public void start_audioCompositionWithFirstSequenceOffsetGap_isCorrect() throws Exception { + CapturingMuxer.Factory muxerFactory = new CapturingMuxer.Factory(/* handleAudioAsPcm= */ true); + Transformer transformer = + createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build(); + EditedMediaItem audioEditedMediaItem = + new EditedMediaItem.Builder( + MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW_STEREO_48000KHZ)) + .build(); + EditedMediaItem otherAudioEditedMediaItem = + new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW)).build(); + Composition composition = + new Composition.Builder( + new EditedMediaItemSequence.Builder() + .addGap(100_000) + .addItem(audioEditedMediaItem) + .build(), + new EditedMediaItemSequence.Builder(otherAudioEditedMediaItem).build()) + .build(); + + transformer.start(composition, outputDir.newFile().getPath()); + ExportResult exportResult = TransformerTestRunner.runLooper(transformer); + + assertThat(exportResult.processedInputs).hasSize(3); + DumpFileAsserts.assertOutput( + context, + muxerFactory.getCreatedMuxer(), + getCompositionDumpFilePath( + "seq-" + + "gap_100ms-" + + getFileName(FILE_AUDIO_RAW_STEREO_48000KHZ) + + "+seq-" + + getFileName(FILE_AUDIO_RAW))); + } + + @Test + public void start_audioCompositionWithFirstSequencePaddingGap_isCorrect() throws Exception { + CapturingMuxer.Factory muxerFactory = new CapturingMuxer.Factory(/* handleAudioAsPcm= */ true); + Transformer transformer = + createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build(); + EditedMediaItem audioItem300ms = + new EditedMediaItem.Builder( + MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW) + .buildUpon() + .setClippingConfiguration( + new MediaItem.ClippingConfiguration.Builder() + .setStartPositionMs(100) + .setEndPositionMs(400) + .build()) + .build()) + .build(); + EditedMediaItem audioItem1000ms = + new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW)).build(); + Composition composition = + new Composition.Builder( + new EditedMediaItemSequence.Builder() + .addItem(audioItem300ms) + .addGap(700_000) + .build(), + new EditedMediaItemSequence.Builder(audioItem1000ms).build()) + .build(); + + transformer.start(composition, outputDir.newFile().getPath()); + TransformerTestRunner.runLooper(transformer); + + DumpFileAsserts.assertOutput( + context, + muxerFactory.getCreatedMuxer(), + getCompositionDumpFilePath( + "seq-" + + getFileName(FILE_AUDIO_RAW) + + "+seq-" + + getFileName(FILE_AUDIO_RAW) + + "_clipped100msTo400ms-gap_700ms")); + } + + @Test + public void start_audioVideoCompositionWithSecondSequenceOffsetGap_isCorrect() throws Exception { + CapturingMuxer.Factory muxerFactory = new CapturingMuxer.Factory(/* handleAudioAsPcm= */ true); + Transformer transformer = + createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build(); + EditedMediaItem audioVideoEditedMediaItem = + new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW_VIDEO)) + .build(); + EditedMediaItem audioEditedMediaItem = + new EditedMediaItem.Builder( + MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW_STEREO_48000KHZ)) + .setRemoveVideo(true) + .build(); + Composition composition = + new Composition.Builder( + new EditedMediaItemSequence.Builder(audioVideoEditedMediaItem).build(), + new EditedMediaItemSequence.Builder() + .addGap(200_000) + .addItem(audioEditedMediaItem) + .build()) + .setTransmuxVideo(true) + .build(); + + transformer.start(composition, outputDir.newFile().getPath()); + ExportResult exportResult = TransformerTestRunner.runLooper(transformer); + + assertThat(exportResult.processedInputs).hasSize(3); + DumpFileAsserts.assertOutput( + context, + muxerFactory.getCreatedMuxer(), + getCompositionDumpFilePath( + "seq-" + + getFileName(FILE_AUDIO_RAW_VIDEO) + + "+seq-gap_200ms-" + + getFileName(FILE_AUDIO_RAW_STEREO_48000KHZ))); + } + + @Test + public void start_audioVideoCompositionWithSecondSequenceIntervalGap_isCorrect() + throws Exception { + CapturingMuxer.Factory muxerFactory = new CapturingMuxer.Factory(/* handleAudioAsPcm= */ true); + Transformer transformer = + createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build(); + EditedMediaItem audioVideoEditedMediaItem = + new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW_VIDEO)) + .build(); + EditedMediaItem audio300msEditedMediaItem = + new EditedMediaItem.Builder( + new MediaItem.Builder() + .setUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW_STEREO_48000KHZ) + .setClippingConfiguration( + new MediaItem.ClippingConfiguration.Builder().setEndPositionMs(300).build()) + .build()) + .setRemoveVideo(true) + .build(); + EditedMediaItem audio500msEditedMediaItem = + new EditedMediaItem.Builder( + new MediaItem.Builder() + .setUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW_STEREO_48000KHZ) + .setClippingConfiguration( + new MediaItem.ClippingConfiguration.Builder() + .setStartPositionMs(300) + .setEndPositionMs(800) + .build()) + .build()) + .setRemoveVideo(true) + .build(); + Composition composition = + new Composition.Builder( + new EditedMediaItemSequence.Builder(audioVideoEditedMediaItem).build(), + new EditedMediaItemSequence.Builder() + .addItem(audio300msEditedMediaItem) + .addGap(200_000) + .addItem(audio500msEditedMediaItem) + .build()) + .setTransmuxVideo(true) + .build(); + + transformer.start(composition, outputDir.newFile().getPath()); + ExportResult exportResult = TransformerTestRunner.runLooper(transformer); + + assertThat(exportResult.processedInputs).hasSize(4); + DumpFileAsserts.assertOutput( + context, + muxerFactory.getCreatedMuxer(), + getCompositionDumpFilePath( + "seq-" + + getFileName(FILE_AUDIO_RAW_VIDEO) + + "+seq-" + + getFileName(FILE_AUDIO_RAW_STEREO_48000KHZ) + + "_clipped0msTo300ms-" + + "gap_200ms-" + + getFileName(FILE_AUDIO_RAW_STEREO_48000KHZ) + + "_clipped300msTo800ms")); + } + + @Test + public void start_audioVideoCompositionWithSecondSequencePaddingGap_isCorrect() throws Exception { + CapturingMuxer.Factory muxerFactory = new CapturingMuxer.Factory(/* handleAudioAsPcm= */ true); + Transformer transformer = + createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build(); + EditedMediaItem audioVideoEditedMediaItem = + new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW_VIDEO)) + .build(); + EditedMediaItem audioEditedMediaItem = + new EditedMediaItem.Builder( + MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW_STEREO_48000KHZ)) + .setRemoveVideo(true) + .build(); + Composition composition = + new Composition.Builder( + new EditedMediaItemSequence.Builder(audioVideoEditedMediaItem).build(), + new EditedMediaItemSequence.Builder() + .addItem(audioEditedMediaItem) + .addGap(100_000) + .build()) + .setTransmuxVideo(true) + .build(); + + transformer.start(composition, outputDir.newFile().getPath()); + ExportResult exportResult = TransformerTestRunner.runLooper(transformer); + + assertThat(exportResult.processedInputs).hasSize(3); + DumpFileAsserts.assertOutput( + context, + muxerFactory.getCreatedMuxer(), + getCompositionDumpFilePath( + "seq-" + + getFileName(FILE_AUDIO_RAW_VIDEO) + + "+seq-" + + getFileName(FILE_AUDIO_RAW_STEREO_48000KHZ) + + "-gap_100ms")); + } + + @Test + public void start_audioCompositionWithSecondSequenceAsGap_isCorrect() throws Exception { + CapturingMuxer.Factory muxerFactory = new CapturingMuxer.Factory(/* handleAudioAsPcm= */ true); + Transformer transformer = + createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build(); + EditedMediaItem audioItem1000ms = + new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW)).build(); + Composition composition = + new Composition.Builder( + new EditedMediaItemSequence.Builder(audioItem1000ms).build(), + new EditedMediaItemSequence.Builder().addGap(1_000_000).build()) + .build(); + + transformer.start(composition, outputDir.newFile().getPath()); + TransformerTestRunner.runLooper(transformer); + + DumpFileAsserts.assertOutput( + context, muxerFactory.getCreatedMuxer(), getDumpFileName(FILE_AUDIO_RAW)); + } + + @Test + public void start_audioCompositionWithBothSequencesAsGaps_isCorrect() throws Exception { + CapturingMuxer.Factory muxerFactory = new CapturingMuxer.Factory(/* handleAudioAsPcm= */ true); + Transformer transformer = + createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build(); + Composition composition = + new Composition.Builder( + new EditedMediaItemSequence.Builder().addGap(500_000).build(), + new EditedMediaItemSequence.Builder().addGap(500_000).build()) + .build(); + + transformer.start(composition, outputDir.newFile().getPath()); + TransformerTestRunner.runLooper(transformer); + + DumpFileAsserts.assertOutput( + context, muxerFactory.getCreatedMuxer(), getDumpFileName("gap", "500ms")); + } + private static String getFileName(String filePath) { int lastSeparator = filePath.lastIndexOf("/"); return filePath.substring(lastSeparator + 1); diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/MediaItemExportTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/MediaItemExportTest.java index c00b3f3924..64605e9aaf 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/MediaItemExportTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/MediaItemExportTest.java @@ -141,6 +141,26 @@ public final class MediaItemExportTest { removeEncodersAndDecoders(); } + @Test + public void start_gapOnlyExport_outputsSilence() throws Exception { + CapturingMuxer.Factory muxerFactory = new CapturingMuxer.Factory(/* handleAudioAsPcm= */ true); + Transformer transformer = + createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build(); + + EditedMediaItemSequence gapSequence = + new EditedMediaItemSequence.Builder().addGap(500_000).build(); + + transformer.start(new Composition.Builder(gapSequence).build(), outputDir.newFile().getPath()); + ExportResult result = TransformerTestRunner.runLooper(transformer); + + // TODO(b/355201372) - Assert 500ms duration. + assertThat(result.durationMs).isAtLeast(487); + assertThat(result.durationMs).isAtMost(500); + + DumpFileAsserts.assertOutput( + context, muxerFactory.getCreatedMuxer(), getDumpFileName("gap", "500ms")); + } + @Test public void start_audioAndVideoPassthrough_withClippingStartAtKeyFrame_completesSuccessfully() throws Exception { diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/SequenceExportTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/SequenceExportTest.java index a45d0d8dc5..120b87c176 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/SequenceExportTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/SequenceExportTest.java @@ -29,6 +29,7 @@ import static androidx.media3.transformer.TestUtil.createChannelCountChangingAud import static androidx.media3.transformer.TestUtil.createPitchChangingAudioProcessor; import static androidx.media3.transformer.TestUtil.createTransformerBuilder; import static androidx.media3.transformer.TestUtil.getDumpFileName; +import static androidx.media3.transformer.TestUtil.getSequenceDumpFilePath; import static androidx.media3.transformer.TestUtil.removeEncodersAndDecoders; import static com.google.common.truth.Truth.assertThat; @@ -498,6 +499,171 @@ public final class SequenceExportTest { "silenceHighPitch")); } + @Test + public void start_gapGap_completesSuccessfully() throws Exception { + CapturingMuxer.Factory muxerFactory = new CapturingMuxer.Factory(/* handleAudioAsPcm= */ true); + Transformer transformer = + createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build(); + EditedMediaItemSequence sequence = + new EditedMediaItemSequence.Builder().addGap(300_000).addGap(200_000).build(); + Composition composition = new Composition.Builder(sequence).build(); + + transformer.start(composition, outputDir.newFile().getPath()); + TransformerTestRunner.runLooper(transformer); + + DumpFileAsserts.assertOutput( + context, muxerFactory.getCreatedMuxer(), getDumpFileName("gap", "500ms")); + } + + @Test + public void start_itemGapGap_completesSuccessfully() throws Exception { + CapturingMuxer.Factory muxerFactory = new CapturingMuxer.Factory(/* handleAudioAsPcm= */ true); + Transformer transformer = + createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build(); + EditedMediaItem firstAudioItem = + new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW)).build(); + EditedMediaItemSequence sequence = + new EditedMediaItemSequence.Builder() + .addItem(firstAudioItem) + .addGap(500_000) + .addGap(200_000) + .build(); + Composition composition = new Composition.Builder(sequence).build(); + + transformer.start(composition, outputDir.newFile().getPath()); + TransformerTestRunner.runLooper(transformer); + + DumpFileAsserts.assertOutput( + context, + muxerFactory.getCreatedMuxer(), + getSequenceDumpFilePath( + ImmutableList.of(FILE_AUDIO_RAW.replace("wav/", ""), "gap_500ms", "gap_200ms"))); + } + + @Test + public void start_gapGapItem_completesSuccessfully() throws Exception { + CapturingMuxer.Factory muxerFactory = new CapturingMuxer.Factory(/* handleAudioAsPcm= */ true); + Transformer transformer = + createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build(); + EditedMediaItem audioItem = + new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW)).build(); + EditedMediaItemSequence sequence = + new EditedMediaItemSequence.Builder() + .addGap(200_000) + .addGap(500_000) + .addItem(audioItem) + .build(); + Composition composition = new Composition.Builder(sequence).build(); + + transformer.start(composition, outputDir.newFile().getPath()); + TransformerTestRunner.runLooper(transformer); + + DumpFileAsserts.assertOutput( + context, + muxerFactory.getCreatedMuxer(), + getSequenceDumpFilePath( + ImmutableList.of("gap_200ms", "gap_500ms", FILE_AUDIO_RAW.replace("wav/", "")))); + } + + @Test + public void start_itemGapGapItem_completesSuccessfully() throws Exception { + CapturingMuxer.Factory muxerFactory = new CapturingMuxer.Factory(/* handleAudioAsPcm= */ true); + Transformer transformer = + createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build(); + EditedMediaItem firstAudioItem = + new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW)).build(); + EditedMediaItem secondAudioItem = + new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW)).build(); + + EditedMediaItemSequence sequence = + new EditedMediaItemSequence.Builder() + .addItem(firstAudioItem) + .addGap(500_000) + .addGap(200_000) + .addItem(secondAudioItem) + .build(); + Composition composition = new Composition.Builder(sequence).build(); + + transformer.start(composition, outputDir.newFile().getPath()); + TransformerTestRunner.runLooper(transformer); + + DumpFileAsserts.assertOutput( + context, + muxerFactory.getCreatedMuxer(), + getSequenceDumpFilePath( + ImmutableList.of( + FILE_AUDIO_RAW.replace("wav/", ""), + "gap_500ms", + "gap_200ms", + FILE_AUDIO_RAW.replace("wav/", "")))); + } + + @Test + public void start_itemGapItemGap_completesSuccessfully() throws Exception { + CapturingMuxer.Factory muxerFactory = new CapturingMuxer.Factory(/* handleAudioAsPcm= */ true); + Transformer transformer = + createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build(); + EditedMediaItem firstAudioItem = + new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW)).build(); + EditedMediaItem secondAudioItem = + new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW)).build(); + + EditedMediaItemSequence sequence = + new EditedMediaItemSequence.Builder() + .addItem(firstAudioItem) + .addGap(200_000) + .addItem(secondAudioItem) + .addGap(500_000) + .build(); + Composition composition = new Composition.Builder(sequence).build(); + + transformer.start(composition, outputDir.newFile().getPath()); + TransformerTestRunner.runLooper(transformer); + + DumpFileAsserts.assertOutput( + context, + muxerFactory.getCreatedMuxer(), + getSequenceDumpFilePath( + ImmutableList.of( + FILE_AUDIO_RAW.replace("wav/", ""), + "gap_200ms", + FILE_AUDIO_RAW.replace("wav/", ""), + "gap_500ms"))); + } + + @Test + public void start_gapItemGapItem_completesSuccessfully() throws Exception { + CapturingMuxer.Factory muxerFactory = new CapturingMuxer.Factory(/* handleAudioAsPcm= */ true); + Transformer transformer = + createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build(); + EditedMediaItem firstAudioItem = + new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW)).build(); + EditedMediaItem secondAudioItem = + new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW)).build(); + + EditedMediaItemSequence sequence = + new EditedMediaItemSequence.Builder() + .addGap(500_000) + .addItem(firstAudioItem) + .addGap(200_000) + .addItem(secondAudioItem) + .build(); + Composition composition = new Composition.Builder(sequence).build(); + + transformer.start(composition, outputDir.newFile().getPath()); + TransformerTestRunner.runLooper(transformer); + + DumpFileAsserts.assertOutput( + context, + muxerFactory.getCreatedMuxer(), + getSequenceDumpFilePath( + ImmutableList.of( + "gap_500ms", + FILE_AUDIO_RAW.replace("wav/", ""), + "gap_200ms", + FILE_AUDIO_RAW.replace("wav/", "")))); + } + @Test public void concatenateTwoAudioItems_withSameFormat_completesSuccessfully() throws Exception { CapturingMuxer.Factory muxerFactory = new CapturingMuxer.Factory(/* handleAudioAsPcm= */ true);