diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/bbb_176x144_128kbps_15fps_h263.3gp/transmuxed_with_inappmuxer.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/bbb_176x144_128kbps_15fps_h263.3gp/transmuxed_with_inappmuxer.dump new file mode 100644 index 0000000000..19fd0812c3 --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/bbb_176x144_128kbps_15fps_h263.3gp/transmuxed_with_inappmuxer.dump @@ -0,0 +1,84 @@ +seekMap: + isSeekable = true + duration = 933300 + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(1) = [[timeUs=0, position=400052], [timeUs=533322, position=428455]] + getPosition(466650) = [[timeUs=0, position=400052], [timeUs=533322, position=428455]] + getPosition(933300) = [[timeUs=533322, position=428455]] +numberOfTracks = 1 +track 0: + total output bytes = 50100 + sample count = 15 + format 0: + id = 1 + sampleMimeType = video/3gpp + maxInputSize = 10464 + width = 176 + height = 144 + frameRate = 16.072002 + colorInfo: + colorRange = 2 + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[Mp4Timestamp: creation time=3000000000, modification time=4000000000, timescale=10000] + sample 0: + time = 0 + flags = 1 + data = length 10434, hash AE44B225 + sample 1: + time = 66655 + flags = 0 + data = length 2615, hash A0DA11FE + sample 2: + time = 133322 + flags = 0 + data = length 1812, hash 7088FD15 + sample 3: + time = 200000 + flags = 0 + data = length 2812, hash C8A9745F + sample 4: + time = 266655 + flags = 0 + data = length 3127, hash 15B392C5 + sample 5: + time = 333322 + flags = 0 + data = length 3362, hash 77B8F06A + sample 6: + time = 400000 + flags = 0 + data = length 3295, hash 24A31310 + sample 7: + time = 466655 + flags = 0 + data = length 946, hash B1E4247C + sample 8: + time = 533322 + flags = 1 + data = length 10399, hash 65BB0623 + sample 9: + time = 600000 + flags = 0 + data = length 3373, hash 6884A84C + sample 10: + time = 666655 + flags = 0 + data = length 878, hash BFC0DD04 + sample 11: + time = 733322 + flags = 0 + data = length 1530, hash 55CB846F + sample 12: + time = 800000 + flags = 0 + data = length 1834, hash ECF4E9AA + sample 13: + time = 866655 + flags = 0 + data = length 1776, hash 63A892E4 + sample 14: + time = 933322 + flags = 536870912 + data = length 1907, hash 99D43466 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/bbb_176x144_192kbps_15fps_mpeg4.mp4/transmuxed_with_inappmuxer.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/bbb_176x144_192kbps_15fps_mpeg4.mp4/transmuxed_with_inappmuxer.dump new file mode 100644 index 0000000000..2d46e02863 --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/bbb_176x144_192kbps_15fps_mpeg4.mp4/transmuxed_with_inappmuxer.dump @@ -0,0 +1,88 @@ +seekMap: + isSeekable = true + duration = 933300 + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(1) = [[timeUs=0, position=400052]] + getPosition(466650) = [[timeUs=0, position=400052]] + getPosition(933300) = [[timeUs=0, position=400052]] +numberOfTracks = 1 +track 0: + total output bytes = 45694 + sample count = 15 + format 0: + averageBitrate = 365552 + peakBitrate = 365552 + id = 1 + sampleMimeType = video/mp4v-es + maxInputSize = 9256 + width = 176 + height = 144 + frameRate = 16.072002 + colorInfo: + colorRange = 2 + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[Mp4Timestamp: creation time=3000000000, modification time=4000000000, timescale=10000] + initializationData: + data = length 47, hash DC4DD041 + sample 0: + time = 0 + flags = 1 + data = length 9226, hash 7C636E69 + sample 1: + time = 66655 + flags = 0 + data = length 2560, hash C7A69F47 + sample 2: + time = 133322 + flags = 0 + data = length 1720, hash 32B683D + sample 3: + time = 200000 + flags = 0 + data = length 2684, hash A77F20B0 + sample 4: + time = 266655 + flags = 0 + data = length 2966, hash CDB6D380 + sample 5: + time = 333322 + flags = 0 + data = length 3160, hash 5A1455FB + sample 6: + time = 400000 + flags = 0 + data = length 3128, hash 8F3EA8F2 + sample 7: + time = 466655 + flags = 0 + data = length 3164, hash 40A33F45 + sample 8: + time = 533322 + flags = 0 + data = length 3309, hash 4ACFEBD1 + sample 9: + time = 600000 + flags = 0 + data = length 3332, hash 7902F5A6 + sample 10: + time = 666655 + flags = 0 + data = length 3082, hash 57E4EBB9 + sample 11: + time = 733322 + flags = 0 + data = length 3210, hash FDA3CC0F + sample 12: + time = 800000 + flags = 0 + data = length 981, hash FA98FC90 + sample 13: + time = 866655 + flags = 0 + data = length 1611, hash 3F58EEE9 + sample 14: + time = 933322 + flags = 536870912 + data = length 1561, hash 24FA5A54 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/bbb_1ch_16kHz_q10_vorbis.ogg/transmuxed_with_inappmuxer.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/bbb_1ch_16kHz_q10_vorbis.ogg/transmuxed_with_inappmuxer.dump new file mode 100644 index 0000000000..e4d41e918e --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/bbb_1ch_16kHz_q10_vorbis.ogg/transmuxed_with_inappmuxer.dump @@ -0,0 +1,436 @@ +seekMap: + isSeekable = true + duration = 2992000 + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(1) = [[timeUs=1, position=400241]] + getPosition(1496000) = [[timeUs=1496000, position=412467]] + getPosition(2992000) = [[timeUs=2992000, position=424658]] +numberOfTracks = 1 +track 0: + total output bytes = 24785 + sample count = 103 + format 0: + averageBitrate = 99992 + id = 1 + sampleMimeType = audio/vorbis + maxInputSize = 295 + channelCount = 1 + sampleRate = 16000 + language = ``` + metadata = entries=[Mp4Timestamp: creation time=3000000000, modification time=4000000000, timescale=10000] + initializationData: + data = length 30, hash C22462B1 + data = length 3539, hash F8106892 + sample 0: + time = 0 + flags = 1 + data = length 189, hash 52415563 + sample 1: + time = 0 + flags = 1 + data = length 179, hash 8C3EF02 + sample 2: + time = 16000 + flags = 1 + data = length 242, hash 154901F6 + sample 3: + time = 40000 + flags = 1 + data = length 255, hash 9824CF65 + sample 4: + time = 72000 + flags = 1 + data = length 240, hash 71BE7C9B + sample 5: + time = 104000 + flags = 1 + data = length 253, hash EFD45BC1 + sample 6: + time = 136000 + flags = 1 + data = length 242, hash AAD0021A + sample 7: + time = 168000 + flags = 1 + data = length 245, hash 1CC90320 + sample 8: + time = 200000 + flags = 1 + data = length 250, hash FD1A7782 + sample 9: + time = 232000 + flags = 1 + data = length 250, hash 8AF2F144 + sample 10: + time = 264000 + flags = 1 + data = length 242, hash B821B187 + sample 11: + time = 296000 + flags = 1 + data = length 249, hash 38241C21 + sample 12: + time = 328000 + flags = 1 + data = length 245, hash D2FB9E26 + sample 13: + time = 360000 + flags = 1 + data = length 246, hash C1FCFB2C + sample 14: + time = 392000 + flags = 1 + data = length 247, hash 25993CAD + sample 15: + time = 424000 + flags = 1 + data = length 248, hash 56C4314E + sample 16: + time = 456000 + flags = 1 + data = length 253, hash A93F1600 + sample 17: + time = 488000 + flags = 1 + data = length 250, hash B06E5AE0 + sample 18: + time = 520000 + flags = 1 + data = length 242, hash 26EC7288 + sample 19: + time = 552000 + flags = 1 + data = length 258, hash 3541384 + sample 20: + time = 584000 + flags = 1 + data = length 253, hash C4C2E8F1 + sample 21: + time = 616000 + flags = 1 + data = length 254, hash 47974412 + sample 22: + time = 648000 + flags = 1 + data = length 245, hash DDED7539 + sample 23: + time = 680000 + flags = 1 + data = length 252, hash 5D24B207 + sample 24: + time = 712000 + flags = 1 + data = length 189, hash AA28447D + sample 25: + time = 736000 + flags = 1 + data = length 184, hash 87DA25A7 + sample 26: + time = 752000 + flags = 1 + data = length 187, hash C94C8DBF + sample 27: + time = 768000 + flags = 1 + data = length 256, hash 3691E001 + sample 28: + time = 792000 + flags = 1 + data = length 262, hash B72A768B + sample 29: + time = 824000 + flags = 1 + data = length 252, hash 1AF4532D + sample 30: + time = 856000 + flags = 1 + data = length 260, hash 9C2D1FC8 + sample 31: + time = 888000 + flags = 1 + data = length 257, hash CDC91ABF + sample 32: + time = 920000 + flags = 1 + data = length 247, hash 425E7E56 + sample 33: + time = 952000 + flags = 1 + data = length 254, hash 97F31FD1 + sample 34: + time = 984000 + flags = 1 + data = length 259, hash 5CFC46D4 + sample 35: + time = 1016000 + flags = 1 + data = length 262, hash A1B43368 + sample 36: + time = 1048000 + flags = 1 + data = length 258, hash A5438075 + sample 37: + time = 1080000 + flags = 1 + data = length 242, hash 1CCEE43E + sample 38: + time = 1112000 + flags = 1 + data = length 249, hash 6B91FE03 + sample 39: + time = 1144000 + flags = 1 + data = length 246, hash 8632C6F3 + sample 40: + time = 1176000 + flags = 1 + data = length 263, hash 4B997C76 + sample 41: + time = 1208000 + flags = 1 + data = length 247, hash 16B7D892 + sample 42: + time = 1240000 + flags = 1 + data = length 189, hash CD699252 + sample 43: + time = 1264000 + flags = 1 + data = length 183, hash 1538EF60 + sample 44: + time = 1280000 + flags = 1 + data = length 183, hash 4711F10A + sample 45: + time = 1296000 + flags = 1 + data = length 188, hash 7E7B8692 + sample 46: + time = 1312000 + flags = 1 + data = length 185, hash 5A28B890 + sample 47: + time = 1328000 + flags = 1 + data = length 254, hash 7A1CFD71 + sample 48: + time = 1352000 + flags = 1 + data = length 257, hash 41814A91 + sample 49: + time = 1384000 + flags = 1 + data = length 256, hash 392C7958 + sample 50: + time = 1416000 + flags = 1 + data = length 259, hash 36E2E5D7 + sample 51: + time = 1448000 + flags = 1 + data = length 258, hash E7A5A3B2 + sample 52: + time = 1480000 + flags = 1 + data = length 254, hash BB999F59 + sample 53: + time = 1512000 + flags = 1 + data = length 264, hash EBD27D11 + sample 54: + time = 1544000 + flags = 1 + data = length 256, hash EF202703 + sample 55: + time = 1576000 + flags = 1 + data = length 253, hash AA18AEC + sample 56: + time = 1608000 + flags = 1 + data = length 258, hash C99D73A + sample 57: + time = 1640000 + flags = 1 + data = length 243, hash 3766FAC8 + sample 58: + time = 1672000 + flags = 1 + data = length 254, hash A126BA62 + sample 59: + time = 1704000 + flags = 1 + data = length 194, hash E7B1777E + sample 60: + time = 1728000 + flags = 1 + data = length 192, hash 9406055C + sample 61: + time = 1744000 + flags = 1 + data = length 254, hash A0BCB7AF + sample 62: + time = 1768000 + flags = 1 + data = length 249, hash 2B81D755 + sample 63: + time = 1800000 + flags = 1 + data = length 254, hash 8A84DD11 + sample 64: + time = 1832000 + flags = 1 + data = length 247, hash 32E47F57 + sample 65: + time = 1864000 + flags = 1 + data = length 185, hash DC974CDC + sample 66: + time = 1888000 + flags = 1 + data = length 191, hash 9EF9935E + sample 67: + time = 1904000 + flags = 1 + data = length 251, hash 8AE73C65 + sample 68: + time = 1928000 + flags = 1 + data = length 251, hash 2A351E03 + sample 69: + time = 1960000 + flags = 1 + data = length 254, hash C49F780 + sample 70: + time = 1992000 + flags = 1 + data = length 240, hash 233BD522 + sample 71: + time = 2024000 + flags = 1 + data = length 259, hash 1956DA78 + sample 72: + time = 2056000 + flags = 1 + data = length 248, hash 1EE08648 + sample 73: + time = 2088000 + flags = 1 + data = length 245, hash C5DAE098 + sample 74: + time = 2120000 + flags = 1 + data = length 243, hash B5DFF3D8 + sample 75: + time = 2152000 + flags = 1 + data = length 263, hash 43CF66BF + sample 76: + time = 2184000 + flags = 1 + data = length 257, hash 4B30E500 + sample 77: + time = 2216000 + flags = 1 + data = length 262, hash 2C3C043C + sample 78: + time = 2248000 + flags = 1 + data = length 246, hash A53A0B2F + sample 79: + time = 2280000 + flags = 1 + data = length 252, hash 5403984B + sample 80: + time = 2312000 + flags = 1 + data = length 243, hash CD41ED4B + sample 81: + time = 2344000 + flags = 1 + data = length 247, hash 37948AD6 + sample 82: + time = 2376000 + flags = 1 + data = length 255, hash E597B359 + sample 83: + time = 2408000 + flags = 1 + data = length 250, hash EEF813EE + sample 84: + time = 2440000 + flags = 1 + data = length 255, hash D3E452D6 + sample 85: + time = 2472000 + flags = 1 + data = length 250, hash 5CC2B1A4 + sample 86: + time = 2504000 + flags = 1 + data = length 252, hash 5545BFBD + sample 87: + time = 2536000 + flags = 1 + data = length 265, hash 665BF09 + sample 88: + time = 2568000 + flags = 1 + data = length 264, hash A8031354 + sample 89: + time = 2600000 + flags = 1 + data = length 262, hash A001ECA0 + sample 90: + time = 2632000 + flags = 1 + data = length 257, hash 6487AE2C + sample 91: + time = 2664000 + flags = 1 + data = length 245, hash 29A59674 + sample 92: + time = 2696000 + flags = 1 + data = length 250, hash 3A9F0E85 + sample 93: + time = 2728000 + flags = 1 + data = length 252, hash 78D6CCAB + sample 94: + time = 2760000 + flags = 1 + data = length 250, hash 4CABC5FC + sample 95: + time = 2792000 + flags = 1 + data = length 249, hash A10818C8 + sample 96: + time = 2824000 + flags = 1 + data = length 255, hash EEAAE5F6 + sample 97: + time = 2856000 + flags = 1 + data = length 256, hash BFD7F019 + sample 98: + time = 2888000 + flags = 1 + data = length 249, hash 9ED88233 + sample 99: + time = 2920000 + flags = 1 + data = length 252, hash 2C32868A + sample 100: + time = 2952000 + flags = 1 + data = length 134, hash AA53E314 + sample 101: + time = 2976000 + flags = 1 + data = length 180, hash 6321FAFE + sample 102: + time = 2992000 + flags = 536870913 + data = length 179, hash 8563EF28 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/bbb_6ch_8kHz_opus.ogg/transmuxed_with_inappmuxer.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/bbb_6ch_8kHz_opus.ogg/transmuxed_with_inappmuxer.dump new file mode 100644 index 0000000000..cd9b0f5b94 --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/bbb_6ch_8kHz_opus.ogg/transmuxed_with_inappmuxer.dump @@ -0,0 +1,628 @@ +seekMap: + isSeekable = true + duration = 3000000 + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(1) = [[timeUs=1, position=400052]] + getPosition(1500000) = [[timeUs=1500000, position=449844]] + getPosition(3000000) = [[timeUs=3000000, position=499769]] +numberOfTracks = 1 +track 0: + total output bytes = 100872 + sample count = 151 + format 0: + id = 1 + sampleMimeType = audio/opus + maxInputSize = 1185 + channelCount = 6 + sampleRate = 48000 + language = ``` + metadata = entries=[Mp4Timestamp: creation time=3000000000, modification time=4000000000, timescale=10000] + initializationData: + data = length 27, hash 9EE6F879 + data = length 8, hash CA22068C + data = length 8, hash 79C07075 + sample 0: + time = 0 + flags = 1 + data = length 949, hash E49C1A9D + sample 1: + time = 20000 + flags = 1 + data = length 608, hash F65C6881 + sample 2: + time = 40000 + flags = 1 + data = length 650, hash 914AF7E1 + sample 3: + time = 60000 + flags = 1 + data = length 603, hash B3EC7A47 + sample 4: + time = 80000 + flags = 1 + data = length 650, hash 162CA2A3 + sample 5: + time = 100000 + flags = 1 + data = length 678, hash 192785A9 + sample 6: + time = 120000 + flags = 1 + data = length 685, hash 96C2F2BB + sample 7: + time = 140000 + flags = 1 + data = length 665, hash 5922AAEB + sample 8: + time = 160000 + flags = 1 + data = length 646, hash 8619B832 + sample 9: + time = 180000 + flags = 1 + data = length 644, hash AFAFE536 + sample 10: + time = 200000 + flags = 1 + data = length 629, hash 9E73B0B7 + sample 11: + time = 220000 + flags = 1 + data = length 610, hash 669587E0 + sample 12: + time = 240000 + flags = 1 + data = length 663, hash D7642DB7 + sample 13: + time = 260000 + flags = 1 + data = length 648, hash 6D0CD0D2 + sample 14: + time = 280000 + flags = 1 + data = length 642, hash 412DC4E2 + sample 15: + time = 300000 + flags = 1 + data = length 607, hash F9582E56 + sample 16: + time = 320000 + flags = 1 + data = length 645, hash 657B023B + sample 17: + time = 340000 + flags = 1 + data = length 672, hash AA362E4A + sample 18: + time = 360000 + flags = 1 + data = length 629, hash 9E527BB + sample 19: + time = 380000 + flags = 1 + data = length 646, hash F3B96232 + sample 20: + time = 400000 + flags = 1 + data = length 611, hash 9B3061C + sample 21: + time = 420000 + flags = 1 + data = length 664, hash 50774FBE + sample 22: + time = 440000 + flags = 1 + data = length 650, hash 52AA7B95 + sample 23: + time = 460000 + flags = 1 + data = length 636, hash F5CB417D + sample 24: + time = 480000 + flags = 1 + data = length 665, hash 34C938BB + sample 25: + time = 500000 + flags = 1 + data = length 626, hash 5CD7E3F8 + sample 26: + time = 520000 + flags = 1 + data = length 651, hash AF7BDD5F + sample 27: + time = 540000 + flags = 1 + data = length 635, hash FF8E92FE + sample 28: + time = 560000 + flags = 1 + data = length 655, hash CC0821A7 + sample 29: + time = 580000 + flags = 1 + data = length 636, hash 1BDC263F + sample 30: + time = 600000 + flags = 1 + data = length 641, hash 5ECE0258 + sample 31: + time = 620000 + flags = 1 + data = length 632, hash FA762551 + sample 32: + time = 640000 + flags = 1 + data = length 656, hash 97F5501A + sample 33: + time = 660000 + flags = 1 + data = length 657, hash 462517A5 + sample 34: + time = 680000 + flags = 1 + data = length 651, hash 8863CCAD + sample 35: + time = 700000 + flags = 1 + data = length 648, hash B0330C37 + sample 36: + time = 720000 + flags = 1 + data = length 674, hash 60E12F33 + sample 37: + time = 740000 + flags = 1 + data = length 674, hash DEFEB445 + sample 38: + time = 760000 + flags = 1 + data = length 583, hash C8326130 + sample 39: + time = 780000 + flags = 1 + data = length 677, hash 5FADD0 + sample 40: + time = 800000 + flags = 1 + data = length 637, hash CB97E2B8 + sample 41: + time = 820000 + flags = 1 + data = length 637, hash 7D230BE4 + sample 42: + time = 840000 + flags = 1 + data = length 651, hash 230EE90B + sample 43: + time = 860000 + flags = 1 + data = length 637, hash F0CCCAE + sample 44: + time = 880000 + flags = 1 + data = length 634, hash D0F5AEEB + sample 45: + time = 900000 + flags = 1 + data = length 620, hash 680A7962 + sample 46: + time = 920000 + flags = 1 + data = length 701, hash 18050131 + sample 47: + time = 940000 + flags = 1 + data = length 700, hash B948FC3B + sample 48: + time = 960000 + flags = 1 + data = length 732, hash 5F8C11AD + sample 49: + time = 980000 + flags = 1 + data = length 632, hash 66D306D1 + sample 50: + time = 1000000 + flags = 1 + data = length 666, hash C7130EE0 + sample 51: + time = 1020000 + flags = 1 + data = length 706, hash A3199353 + sample 52: + time = 1040000 + flags = 1 + data = length 717, hash E98C450C + sample 53: + time = 1060000 + flags = 1 + data = length 699, hash E55D6BF1 + sample 54: + time = 1080000 + flags = 1 + data = length 654, hash 6788EEF5 + sample 55: + time = 1100000 + flags = 1 + data = length 668, hash 104C1F00 + sample 56: + time = 1120000 + flags = 1 + data = length 632, hash 57EEBA22 + sample 57: + time = 1140000 + flags = 1 + data = length 633, hash 8ECAA570 + sample 58: + time = 1160000 + flags = 1 + data = length 631, hash 2583F94B + sample 59: + time = 1180000 + flags = 1 + data = length 657, hash 47C82A61 + sample 60: + time = 1200000 + flags = 1 + data = length 734, hash CB4105D8 + sample 61: + time = 1220000 + flags = 1 + data = length 626, hash FFFFF6A0 + sample 62: + time = 1240000 + flags = 1 + data = length 647, hash 12B4EE0 + sample 63: + time = 1260000 + flags = 1 + data = length 625, hash 33781766 + sample 64: + time = 1280000 + flags = 1 + data = length 642, hash 4EFBA7BD + sample 65: + time = 1300000 + flags = 1 + data = length 802, hash 1E1ECCCC + sample 66: + time = 1320000 + flags = 1 + data = length 831, hash 3B6EB119 + sample 67: + time = 1340000 + flags = 1 + data = length 803, hash 1A6D1B26 + sample 68: + time = 1360000 + flags = 1 + data = length 724, hash 373CBA2 + sample 69: + time = 1380000 + flags = 1 + data = length 697, hash B88E6225 + sample 70: + time = 1400000 + flags = 1 + data = length 684, hash 582095ED + sample 71: + time = 1420000 + flags = 1 + data = length 642, hash E3396634 + sample 72: + time = 1440000 + flags = 1 + data = length 660, hash 6B7A6B93 + sample 73: + time = 1460000 + flags = 1 + data = length 658, hash BD7B7172 + sample 74: + time = 1480000 + flags = 1 + data = length 682, hash 1B77F311 + sample 75: + time = 1500000 + flags = 1 + data = length 635, hash 4993E2E8 + sample 76: + time = 1520000 + flags = 1 + data = length 670, hash 1F1F426A + sample 77: + time = 1540000 + flags = 1 + data = length 633, hash 1A6AE4 + sample 78: + time = 1560000 + flags = 1 + data = length 653, hash 55540278 + sample 79: + time = 1580000 + flags = 1 + data = length 618, hash A50A27BC + sample 80: + time = 1600000 + flags = 1 + data = length 657, hash C61CC3D5 + sample 81: + time = 1620000 + flags = 1 + data = length 608, hash 2691ABBB + sample 82: + time = 1640000 + flags = 1 + data = length 673, hash 6CFC36BC + sample 83: + time = 1660000 + flags = 1 + data = length 646, hash C12DD9A3 + sample 84: + time = 1680000 + flags = 1 + data = length 665, hash FF2B77B0 + sample 85: + time = 1700000 + flags = 1 + data = length 644, hash 2BBF36A5 + sample 86: + time = 1720000 + flags = 1 + data = length 750, hash 4510EA7E + sample 87: + time = 1740000 + flags = 1 + data = length 763, hash 22955796 + sample 88: + time = 1760000 + flags = 1 + data = length 638, hash 8AC8492E + sample 89: + time = 1780000 + flags = 1 + data = length 659, hash 6CCFCDC4 + sample 90: + time = 1800000 + flags = 1 + data = length 653, hash ED5CB356 + sample 91: + time = 1820000 + flags = 1 + data = length 625, hash A49FB079 + sample 92: + time = 1840000 + flags = 1 + data = length 681, hash 29FCE7E6 + sample 93: + time = 1860000 + flags = 1 + data = length 719, hash B6E2BE04 + sample 94: + time = 1880000 + flags = 1 + data = length 659, hash 455A8590 + sample 95: + time = 1900000 + flags = 1 + data = length 711, hash D970780F + sample 96: + time = 1920000 + flags = 1 + data = length 649, hash 7B05E203 + sample 97: + time = 1940000 + flags = 1 + data = length 621, hash A06A54BD + sample 98: + time = 1960000 + flags = 1 + data = length 740, hash F5B727FA + sample 99: + time = 1980000 + flags = 1 + data = length 829, hash 24C8AD34 + sample 100: + time = 2000000 + flags = 1 + data = length 646, hash E8292CD3 + sample 101: + time = 2020000 + flags = 1 + data = length 628, hash D2CF6E04 + sample 102: + time = 2040000 + flags = 1 + data = length 621, hash B1DEB04E + sample 103: + time = 2060000 + flags = 1 + data = length 783, hash 35A1171 + sample 104: + time = 2080000 + flags = 1 + data = length 661, hash 7BFCA7CB + sample 105: + time = 2100000 + flags = 1 + data = length 616, hash 27080B66 + sample 106: + time = 2120000 + flags = 1 + data = length 700, hash E3450B94 + sample 107: + time = 2140000 + flags = 1 + data = length 631, hash 4223054B + sample 108: + time = 2160000 + flags = 1 + data = length 650, hash DB573283 + sample 109: + time = 2180000 + flags = 1 + data = length 649, hash 619E7468 + sample 110: + time = 2200000 + flags = 1 + data = length 628, hash 9BD367C7 + sample 111: + time = 2220000 + flags = 1 + data = length 693, hash 85E9290 + sample 112: + time = 2240000 + flags = 1 + data = length 645, hash CAC17B47 + sample 113: + time = 2260000 + flags = 1 + data = length 639, hash 88A52980 + sample 114: + time = 2280000 + flags = 1 + data = length 657, hash DAF95EA7 + sample 115: + time = 2300000 + flags = 1 + data = length 635, hash 2F950D30 + sample 116: + time = 2320000 + flags = 1 + data = length 649, hash 48E900E + sample 117: + time = 2340000 + flags = 1 + data = length 657, hash 4505A6CE + sample 118: + time = 2360000 + flags = 1 + data = length 682, hash DC4C8CD8 + sample 119: + time = 2380000 + flags = 1 + data = length 711, hash 21B58FD3 + sample 120: + time = 2400000 + flags = 1 + data = length 692, hash 4CDFB1C7 + sample 121: + time = 2420000 + flags = 1 + data = length 693, hash B531D8C8 + sample 122: + time = 2440000 + flags = 1 + data = length 650, hash AF15E260 + sample 123: + time = 2460000 + flags = 1 + data = length 643, hash EDF00663 + sample 124: + time = 2480000 + flags = 1 + data = length 623, hash 1B0243A + sample 125: + time = 2500000 + flags = 1 + data = length 639, hash 21B0BA43 + sample 126: + time = 2520000 + flags = 1 + data = length 694, hash 46FA242C + sample 127: + time = 2540000 + flags = 1 + data = length 637, hash 1CEAEA46 + sample 128: + time = 2560000 + flags = 1 + data = length 672, hash A8FE01B1 + sample 129: + time = 2580000 + flags = 1 + data = length 655, hash F4ACFC61 + sample 130: + time = 2600000 + flags = 1 + data = length 674, hash 3B3D15B6 + sample 131: + time = 2620000 + flags = 1 + data = length 695, hash DF376589 + sample 132: + time = 2640000 + flags = 1 + data = length 688, hash A2425D57 + sample 133: + time = 2660000 + flags = 1 + data = length 690, hash BBD3DA9B + sample 134: + time = 2680000 + flags = 1 + data = length 732, hash F7B00D40 + sample 135: + time = 2700000 + flags = 1 + data = length 684, hash 9158FEAB + sample 136: + time = 2720000 + flags = 1 + data = length 674, hash 40C7501A + sample 137: + time = 2740000 + flags = 1 + data = length 680, hash BB132A40 + sample 138: + time = 2760000 + flags = 1 + data = length 648, hash 1114376E + sample 139: + time = 2780000 + flags = 1 + data = length 661, hash DE71BACA + sample 140: + time = 2800000 + flags = 1 + data = length 642, hash A2316E7 + sample 141: + time = 2820000 + flags = 1 + data = length 662, hash C7117D4 + sample 142: + time = 2840000 + flags = 1 + data = length 638, hash 2CF77EF4 + sample 143: + time = 2860000 + flags = 1 + data = length 655, hash E5A75C8B + sample 144: + time = 2880000 + flags = 1 + data = length 635, hash C9E2B5B1 + sample 145: + time = 2900000 + flags = 1 + data = length 655, hash 6F99C63E + sample 146: + time = 2920000 + flags = 1 + data = length 638, hash 64436E98 + sample 147: + time = 2940000 + flags = 1 + data = length 671, hash 5DFDE09A + sample 148: + time = 2960000 + flags = 1 + data = length 661, hash 5203D894 + sample 149: + time = 2980000 + flags = 1 + data = length 664, hash CF30C6D7 + sample 150: + time = 3000000 + flags = 536870913 + data = length 1155, hash F5AFA236 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/bbb_mono_16kHz_23.05kbps_amrwb.3gp/transmuxed_with_inappmuxer.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/bbb_mono_16kHz_23.05kbps_amrwb.3gp/transmuxed_with_inappmuxer.dump new file mode 100644 index 0000000000..99696a4b44 --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/bbb_mono_16kHz_23.05kbps_amrwb.3gp/transmuxed_with_inappmuxer.dump @@ -0,0 +1,620 @@ +seekMap: + isSeekable = true + duration = 2980000 + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(1) = [[timeUs=1, position=400052]] + getPosition(1490000) = [[timeUs=1490000, position=404418]] + getPosition(2980000) = [[timeUs=2980000, position=408843]] +numberOfTracks = 1 +track 0: + total output bytes = 8850 + sample count = 150 + format 0: + id = 1 + sampleMimeType = audio/amr-wb + maxInputSize = 89 + channelCount = 2 + sampleRate = 16000 + language = und + metadata = entries=[Mp4Timestamp: creation time=3000000000, modification time=4000000000, timescale=10000] + sample 0: + time = 0 + flags = 1 + data = length 59, hash 7CD1831D + sample 1: + time = 20000 + flags = 1 + data = length 59, hash D3770C4A + sample 2: + time = 40000 + flags = 1 + data = length 59, hash 9FE1F1DC + sample 3: + time = 60000 + flags = 1 + data = length 59, hash E01D2E94 + sample 4: + time = 80000 + flags = 1 + data = length 59, hash 9F0F1148 + sample 5: + time = 100000 + flags = 1 + data = length 59, hash 84844FC5 + sample 6: + time = 120000 + flags = 1 + data = length 59, hash E1BA9151 + sample 7: + time = 140000 + flags = 1 + data = length 59, hash 809C53C7 + sample 8: + time = 160000 + flags = 1 + data = length 59, hash CF7C326C + sample 9: + time = 180000 + flags = 1 + data = length 59, hash 9493FCC5 + sample 10: + time = 200000 + flags = 1 + data = length 59, hash 7E1C0B55 + sample 11: + time = 220000 + flags = 1 + data = length 59, hash 590CE70F + sample 12: + time = 240000 + flags = 1 + data = length 59, hash AE96EA + sample 13: + time = 260000 + flags = 1 + data = length 59, hash 101B6F1F + sample 14: + time = 280000 + flags = 1 + data = length 59, hash A7B53E8 + sample 15: + time = 300000 + flags = 1 + data = length 59, hash ADFF0186 + sample 16: + time = 320000 + flags = 1 + data = length 59, hash 62429AE2 + sample 17: + time = 340000 + flags = 1 + data = length 59, hash C0DE98C4 + sample 18: + time = 360000 + flags = 1 + data = length 59, hash 38248344 + sample 19: + time = 380000 + flags = 1 + data = length 59, hash 6FA9C78D + sample 20: + time = 400000 + flags = 1 + data = length 59, hash 70E62506 + sample 21: + time = 420000 + flags = 1 + data = length 59, hash C5852B4D + sample 22: + time = 440000 + flags = 1 + data = length 59, hash 3963835 + sample 23: + time = 460000 + flags = 1 + data = length 59, hash 12332285 + sample 24: + time = 480000 + flags = 1 + data = length 59, hash 6992A084 + sample 25: + time = 500000 + flags = 1 + data = length 59, hash 5F571FDF + sample 26: + time = 520000 + flags = 1 + data = length 59, hash 3897B324 + sample 27: + time = 540000 + flags = 1 + data = length 59, hash E55F2655 + sample 28: + time = 560000 + flags = 1 + data = length 59, hash 2EEF8B7B + sample 29: + time = 580000 + flags = 1 + data = length 59, hash 5C36A7D6 + sample 30: + time = 600000 + flags = 1 + data = length 59, hash EA18CD8F + sample 31: + time = 620000 + flags = 1 + data = length 59, hash 2C2702ED + sample 32: + time = 640000 + flags = 1 + data = length 59, hash 31438CAF + sample 33: + time = 660000 + flags = 1 + data = length 59, hash 5F8FD154 + sample 34: + time = 680000 + flags = 1 + data = length 59, hash 9D352097 + sample 35: + time = 700000 + flags = 1 + data = length 59, hash D7EA644 + sample 36: + time = 720000 + flags = 1 + data = length 59, hash 8905564B + sample 37: + time = 740000 + flags = 1 + data = length 59, hash 8FCB240C + sample 38: + time = 760000 + flags = 1 + data = length 59, hash B74A9E26 + sample 39: + time = 780000 + flags = 1 + data = length 59, hash EA79D25B + sample 40: + time = 800000 + flags = 1 + data = length 59, hash 798EC537 + sample 41: + time = 820000 + flags = 1 + data = length 59, hash F4D614DE + sample 42: + time = 840000 + flags = 1 + data = length 59, hash 9F3F5B91 + sample 43: + time = 860000 + flags = 1 + data = length 59, hash B04F058 + sample 44: + time = 880000 + flags = 1 + data = length 59, hash 8758EDC0 + sample 45: + time = 900000 + flags = 1 + data = length 59, hash DFBCAE27 + sample 46: + time = 920000 + flags = 1 + data = length 59, hash BF6AF6FD + sample 47: + time = 940000 + flags = 1 + data = length 59, hash 319B3149 + sample 48: + time = 960000 + flags = 1 + data = length 59, hash 8CA30C36 + sample 49: + time = 980000 + flags = 1 + data = length 59, hash 74CD82DA + sample 50: + time = 1000000 + flags = 1 + data = length 59, hash 8123D422 + sample 51: + time = 1020000 + flags = 1 + data = length 59, hash 697DFCCA + sample 52: + time = 1040000 + flags = 1 + data = length 59, hash 40EC178E + sample 53: + time = 1060000 + flags = 1 + data = length 59, hash C8418BE1 + sample 54: + time = 1080000 + flags = 1 + data = length 59, hash 7AC2CF25 + sample 55: + time = 1100000 + flags = 1 + data = length 59, hash BCCEFF19 + sample 56: + time = 1120000 + flags = 1 + data = length 59, hash 975A96 + sample 57: + time = 1140000 + flags = 1 + data = length 59, hash 8F187C30 + sample 58: + time = 1160000 + flags = 1 + data = length 59, hash D7797178 + sample 59: + time = 1180000 + flags = 1 + data = length 59, hash CE6E8CA6 + sample 60: + time = 1200000 + flags = 1 + data = length 59, hash 5A50B1A8 + sample 61: + time = 1220000 + flags = 1 + data = length 59, hash ADDECF9A + sample 62: + time = 1240000 + flags = 1 + data = length 59, hash C5F376FF + sample 63: + time = 1260000 + flags = 1 + data = length 59, hash 1A83DF9A + sample 64: + time = 1280000 + flags = 1 + data = length 59, hash AC44CC85 + sample 65: + time = 1300000 + flags = 1 + data = length 59, hash FE8D7E6D + sample 66: + time = 1320000 + flags = 1 + data = length 59, hash 50269ED4 + sample 67: + time = 1340000 + flags = 1 + data = length 59, hash 1CC6FC25 + sample 68: + time = 1360000 + flags = 1 + data = length 59, hash 6A4092A7 + sample 69: + time = 1380000 + flags = 1 + data = length 59, hash 68C46314 + sample 70: + time = 1400000 + flags = 1 + data = length 59, hash 5964275A + sample 71: + time = 1420000 + flags = 1 + data = length 59, hash 3130A785 + sample 72: + time = 1440000 + flags = 1 + data = length 59, hash 83F2D996 + sample 73: + time = 1460000 + flags = 1 + data = length 59, hash 515A062A + sample 74: + time = 1480000 + flags = 1 + data = length 59, hash 1D64DD8B + sample 75: + time = 1500000 + flags = 1 + data = length 59, hash 63587E3 + sample 76: + time = 1520000 + flags = 1 + data = length 59, hash 68DCB927 + sample 77: + time = 1540000 + flags = 1 + data = length 59, hash CDBA3C67 + sample 78: + time = 1560000 + flags = 1 + data = length 59, hash 12A67F90 + sample 79: + time = 1580000 + flags = 1 + data = length 59, hash 61159E34 + sample 80: + time = 1600000 + flags = 1 + data = length 59, hash 45A73FB9 + sample 81: + time = 1620000 + flags = 1 + data = length 59, hash 5A841075 + sample 82: + time = 1640000 + flags = 1 + data = length 59, hash EBCDC2CA + sample 83: + time = 1660000 + flags = 1 + data = length 59, hash F751E192 + sample 84: + time = 1680000 + flags = 1 + data = length 59, hash 5F8907C6 + sample 85: + time = 1700000 + flags = 1 + data = length 59, hash FC73C275 + sample 86: + time = 1720000 + flags = 1 + data = length 59, hash 2D4154EB + sample 87: + time = 1740000 + flags = 1 + data = length 59, hash ECA668E1 + sample 88: + time = 1760000 + flags = 1 + data = length 59, hash 8C27620A + sample 89: + time = 1780000 + flags = 1 + data = length 59, hash 8D8BC449 + sample 90: + time = 1800000 + flags = 1 + data = length 59, hash 332FDB24 + sample 91: + time = 1820000 + flags = 1 + data = length 59, hash 33C2F5AF + sample 92: + time = 1840000 + flags = 1 + data = length 59, hash E08089D5 + sample 93: + time = 1860000 + flags = 1 + data = length 59, hash A0A51B67 + sample 94: + time = 1880000 + flags = 1 + data = length 59, hash 14B84283 + sample 95: + time = 1900000 + flags = 1 + data = length 59, hash BB7F61C6 + sample 96: + time = 1920000 + flags = 1 + data = length 59, hash C870B629 + sample 97: + time = 1940000 + flags = 1 + data = length 59, hash DA557DDA + sample 98: + time = 1960000 + flags = 1 + data = length 59, hash 4E7D8042 + sample 99: + time = 1980000 + flags = 1 + data = length 59, hash 91060D4A + sample 100: + time = 2000000 + flags = 1 + data = length 59, hash 676F457A + sample 101: + time = 2020000 + flags = 1 + data = length 59, hash 8BE7A3E2 + sample 102: + time = 2040000 + flags = 1 + data = length 59, hash 8B5F28E4 + sample 103: + time = 2060000 + flags = 1 + data = length 59, hash 88288529 + sample 104: + time = 2080000 + flags = 1 + data = length 59, hash 52EF420D + sample 105: + time = 2100000 + flags = 1 + data = length 59, hash DA4DA53B + sample 106: + time = 2120000 + flags = 1 + data = length 59, hash CC3284E + sample 107: + time = 2140000 + flags = 1 + data = length 59, hash 371BB544 + sample 108: + time = 2160000 + flags = 1 + data = length 59, hash E40EE9CA + sample 109: + time = 2180000 + flags = 1 + data = length 59, hash C070679F + sample 110: + time = 2200000 + flags = 1 + data = length 59, hash F62B5F23 + sample 111: + time = 2220000 + flags = 1 + data = length 59, hash 1C265EC6 + sample 112: + time = 2240000 + flags = 1 + data = length 59, hash AF49562 + sample 113: + time = 2260000 + flags = 1 + data = length 59, hash F3E1441B + sample 114: + time = 2280000 + flags = 1 + data = length 59, hash 808BA758 + sample 115: + time = 2300000 + flags = 1 + data = length 59, hash 17931F4C + sample 116: + time = 2320000 + flags = 1 + data = length 59, hash 59EBFB2C + sample 117: + time = 2340000 + flags = 1 + data = length 59, hash 48CBD767 + sample 118: + time = 2360000 + flags = 1 + data = length 59, hash 37F0E68C + sample 119: + time = 2380000 + flags = 1 + data = length 59, hash 78D9C594 + sample 120: + time = 2400000 + flags = 1 + data = length 59, hash BC29DE1A + sample 121: + time = 2420000 + flags = 1 + data = length 59, hash 30D57FD8 + sample 122: + time = 2440000 + flags = 1 + data = length 59, hash 11EBFCA7 + sample 123: + time = 2460000 + flags = 1 + data = length 59, hash 4A073D0 + sample 124: + time = 2480000 + flags = 1 + data = length 59, hash AAE23356 + sample 125: + time = 2500000 + flags = 1 + data = length 59, hash 8CD60F62 + sample 126: + time = 2520000 + flags = 1 + data = length 59, hash 413DF0E5 + sample 127: + time = 2540000 + flags = 1 + data = length 59, hash E0A6E95 + sample 128: + time = 2560000 + flags = 1 + data = length 59, hash 3E41A79F + sample 129: + time = 2580000 + flags = 1 + data = length 59, hash 74E52392 + sample 130: + time = 2600000 + flags = 1 + data = length 59, hash 4730E2F8 + sample 131: + time = 2620000 + flags = 1 + data = length 59, hash F76800F3 + sample 132: + time = 2640000 + flags = 1 + data = length 59, hash 6EAFD6A7 + sample 133: + time = 2660000 + flags = 1 + data = length 59, hash F22E2D70 + sample 134: + time = 2680000 + flags = 1 + data = length 59, hash 70229933 + sample 135: + time = 2700000 + flags = 1 + data = length 59, hash 6FF33D1C + sample 136: + time = 2720000 + flags = 1 + data = length 59, hash 83EC00FE + sample 137: + time = 2740000 + flags = 1 + data = length 59, hash 292A2AFD + sample 138: + time = 2760000 + flags = 1 + data = length 59, hash A4ECB34E + sample 139: + time = 2780000 + flags = 1 + data = length 59, hash 7B1A9983 + sample 140: + time = 2800000 + flags = 1 + data = length 59, hash 486E9059 + sample 141: + time = 2820000 + flags = 1 + data = length 59, hash 2255918 + sample 142: + time = 2840000 + flags = 1 + data = length 59, hash 33DC9432 + sample 143: + time = 2860000 + flags = 1 + data = length 59, hash 41D0A458 + sample 144: + time = 2880000 + flags = 1 + data = length 59, hash DBA9CED6 + sample 145: + time = 2900000 + flags = 1 + data = length 59, hash FA055524 + sample 146: + time = 2920000 + flags = 1 + data = length 59, hash A4146B9E + sample 147: + time = 2940000 + flags = 1 + data = length 59, hash 2DC246A0 + sample 148: + time = 2960000 + flags = 1 + data = length 59, hash 4A8B5F2A + sample 149: + time = 2980000 + flags = 536870913 + data = length 59, hash D3223AAC +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/bbb_mono_8kHz_12.2kbps_amrnb.3gp/transmuxed_with_inappmuxer.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/bbb_mono_8kHz_12.2kbps_amrnb.3gp/transmuxed_with_inappmuxer.dump new file mode 100644 index 0000000000..4f8e086cbc --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/bbb_mono_8kHz_12.2kbps_amrnb.3gp/transmuxed_with_inappmuxer.dump @@ -0,0 +1,624 @@ +seekMap: + isSeekable = true + duration = 3000000 + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(1) = [[timeUs=1, position=400052]] + getPosition(1500000) = [[timeUs=1500000, position=402452]] + getPosition(3000000) = [[timeUs=3000000, position=404852]] +numberOfTracks = 1 +track 0: + total output bytes = 4832 + sample count = 151 + format 0: + id = 1 + sampleMimeType = audio/3gpp + maxInputSize = 62 + channelCount = 2 + sampleRate = 8000 + language = und + metadata = entries=[Mp4Timestamp: creation time=3000000000, modification time=4000000000, timescale=10000] + sample 0: + time = 0 + flags = 1 + data = length 32, hash 53582FC7 + sample 1: + time = 20000 + flags = 1 + data = length 32, hash 5685F9D6 + sample 2: + time = 40000 + flags = 1 + data = length 32, hash 979442D3 + sample 3: + time = 60000 + flags = 1 + data = length 32, hash D6C2D2B3 + sample 4: + time = 80000 + flags = 1 + data = length 32, hash 4D7A467C + sample 5: + time = 100000 + flags = 1 + data = length 32, hash D24FBF21 + sample 6: + time = 120000 + flags = 1 + data = length 32, hash 39A010D0 + sample 7: + time = 140000 + flags = 1 + data = length 32, hash 238FB065 + sample 8: + time = 160000 + flags = 1 + data = length 32, hash 7F460D8F + sample 9: + time = 180000 + flags = 1 + data = length 32, hash 4144D57A + sample 10: + time = 200000 + flags = 1 + data = length 32, hash 17FAFC32 + sample 11: + time = 220000 + flags = 1 + data = length 32, hash BBB92AF1 + sample 12: + time = 240000 + flags = 1 + data = length 32, hash 8662DF11 + sample 13: + time = 260000 + flags = 1 + data = length 32, hash ADE12517 + sample 14: + time = 280000 + flags = 1 + data = length 32, hash 42A2F90 + sample 15: + time = 300000 + flags = 1 + data = length 32, hash BA4736EE + sample 16: + time = 320000 + flags = 1 + data = length 32, hash DC3899EE + sample 17: + time = 340000 + flags = 1 + data = length 32, hash 9680E057 + sample 18: + time = 360000 + flags = 1 + data = length 32, hash 9DD4439A + sample 19: + time = 380000 + flags = 1 + data = length 32, hash A187A2E8 + sample 20: + time = 400000 + flags = 1 + data = length 32, hash 2181AFA7 + sample 21: + time = 420000 + flags = 1 + data = length 32, hash 2C46A44 + sample 22: + time = 440000 + flags = 1 + data = length 32, hash 45492E08 + sample 23: + time = 460000 + flags = 1 + data = length 32, hash 7E8B40BC + sample 24: + time = 480000 + flags = 1 + data = length 32, hash 8A572FB6 + sample 25: + time = 500000 + flags = 1 + data = length 32, hash 271382F7 + sample 26: + time = 520000 + flags = 1 + data = length 32, hash 31B52A2C + sample 27: + time = 540000 + flags = 1 + data = length 32, hash 1C0C6ACD + sample 28: + time = 560000 + flags = 1 + data = length 32, hash 12AF988B + sample 29: + time = 580000 + flags = 1 + data = length 32, hash 1EC318A2 + sample 30: + time = 600000 + flags = 1 + data = length 32, hash F0082E10 + sample 31: + time = 620000 + flags = 1 + data = length 32, hash 6F21FBC4 + sample 32: + time = 640000 + flags = 1 + data = length 32, hash A52D353D + sample 33: + time = 660000 + flags = 1 + data = length 32, hash C1B9C8E2 + sample 34: + time = 680000 + flags = 1 + data = length 32, hash 3BC2F23F + sample 35: + time = 700000 + flags = 1 + data = length 32, hash 7ACFCF02 + sample 36: + time = 720000 + flags = 1 + data = length 32, hash 296A9084 + sample 37: + time = 740000 + flags = 1 + data = length 32, hash 87B5C8E2 + sample 38: + time = 760000 + flags = 1 + data = length 32, hash C1C5851 + sample 39: + time = 780000 + flags = 1 + data = length 32, hash AD17B487 + sample 40: + time = 800000 + flags = 1 + data = length 32, hash E6806069 + sample 41: + time = 820000 + flags = 1 + data = length 32, hash AB5007B5 + sample 42: + time = 840000 + flags = 1 + data = length 32, hash 29DA3044 + sample 43: + time = 860000 + flags = 1 + data = length 32, hash 680DE283 + sample 44: + time = 880000 + flags = 1 + data = length 32, hash E5BB6CEF + sample 45: + time = 900000 + flags = 1 + data = length 32, hash 654EFBD4 + sample 46: + time = 920000 + flags = 1 + data = length 32, hash 3BFBC4E5 + sample 47: + time = 940000 + flags = 1 + data = length 32, hash 10F1217A + sample 48: + time = 960000 + flags = 1 + data = length 32, hash E37EF991 + sample 49: + time = 980000 + flags = 1 + data = length 32, hash 42723B2D + sample 50: + time = 1000000 + flags = 1 + data = length 32, hash 2D52F18B + sample 51: + time = 1020000 + flags = 1 + data = length 32, hash 6F62245B + sample 52: + time = 1040000 + flags = 1 + data = length 32, hash BA89ADED + sample 53: + time = 1060000 + flags = 1 + data = length 32, hash FCF8C5E2 + sample 54: + time = 1080000 + flags = 1 + data = length 32, hash F9AEEE3D + sample 55: + time = 1100000 + flags = 1 + data = length 32, hash 2E465113 + sample 56: + time = 1120000 + flags = 1 + data = length 32, hash 59CF2666 + sample 57: + time = 1140000 + flags = 1 + data = length 32, hash 3AB7A8D9 + sample 58: + time = 1160000 + flags = 1 + data = length 32, hash EB9D3A8E + sample 59: + time = 1180000 + flags = 1 + data = length 32, hash 6539E15F + sample 60: + time = 1200000 + flags = 1 + data = length 32, hash 2CAB1170 + sample 61: + time = 1220000 + flags = 1 + data = length 32, hash D0CA4456 + sample 62: + time = 1240000 + flags = 1 + data = length 32, hash DB3DBEE6 + sample 63: + time = 1260000 + flags = 1 + data = length 32, hash 6D094AC4 + sample 64: + time = 1280000 + flags = 1 + data = length 32, hash 2D6471B + sample 65: + time = 1300000 + flags = 1 + data = length 32, hash 86D257FB + sample 66: + time = 1320000 + flags = 1 + data = length 32, hash D8733063 + sample 67: + time = 1340000 + flags = 1 + data = length 32, hash C975C837 + sample 68: + time = 1360000 + flags = 1 + data = length 32, hash 2D548A68 + sample 69: + time = 1380000 + flags = 1 + data = length 32, hash 7A4907BA + sample 70: + time = 1400000 + flags = 1 + data = length 32, hash 6BDFDEB5 + sample 71: + time = 1420000 + flags = 1 + data = length 32, hash 272D422E + sample 72: + time = 1440000 + flags = 1 + data = length 32, hash BBFDCD7B + sample 73: + time = 1460000 + flags = 1 + data = length 32, hash 81F7CBF2 + sample 74: + time = 1480000 + flags = 1 + data = length 32, hash C18523A + sample 75: + time = 1500000 + flags = 1 + data = length 32, hash E062FDDB + sample 76: + time = 1520000 + flags = 1 + data = length 32, hash A756C4C8 + sample 77: + time = 1540000 + flags = 1 + data = length 32, hash A4FA6865 + sample 78: + time = 1560000 + flags = 1 + data = length 32, hash 6BC22B + sample 79: + time = 1580000 + flags = 1 + data = length 32, hash 37041F06 + sample 80: + time = 1600000 + flags = 1 + data = length 32, hash A9049020 + sample 81: + time = 1620000 + flags = 1 + data = length 32, hash E3C9552A + sample 82: + time = 1640000 + flags = 1 + data = length 32, hash 6EB2559 + sample 83: + time = 1660000 + flags = 1 + data = length 32, hash 988FD295 + sample 84: + time = 1680000 + flags = 1 + data = length 32, hash 6E0FFFA8 + sample 85: + time = 1700000 + flags = 1 + data = length 32, hash 4A16A2E5 + sample 86: + time = 1720000 + flags = 1 + data = length 32, hash 8526E110 + sample 87: + time = 1740000 + flags = 1 + data = length 32, hash 9C0F881C + sample 88: + time = 1760000 + flags = 1 + data = length 32, hash 68DF67F7 + sample 89: + time = 1780000 + flags = 1 + data = length 32, hash A789F088 + sample 90: + time = 1800000 + flags = 1 + data = length 32, hash B9CF3A20 + sample 91: + time = 1820000 + flags = 1 + data = length 32, hash 2AFD3C01 + sample 92: + time = 1840000 + flags = 1 + data = length 32, hash 3F61D3F4 + sample 93: + time = 1860000 + flags = 1 + data = length 32, hash 2D210ECA + sample 94: + time = 1880000 + flags = 1 + data = length 32, hash B8143A84 + sample 95: + time = 1900000 + flags = 1 + data = length 32, hash FE8EBC16 + sample 96: + time = 1920000 + flags = 1 + data = length 32, hash 85A9EE5D + sample 97: + time = 1940000 + flags = 1 + data = length 32, hash 3BDF48D1 + sample 98: + time = 1960000 + flags = 1 + data = length 32, hash 8EBCE992 + sample 99: + time = 1980000 + flags = 1 + data = length 32, hash B22AFFF + sample 100: + time = 2000000 + flags = 1 + data = length 32, hash 5F01BAC9 + sample 101: + time = 2020000 + flags = 1 + data = length 32, hash C6B7BD37 + sample 102: + time = 2040000 + flags = 1 + data = length 32, hash 5102216 + sample 103: + time = 2060000 + flags = 1 + data = length 32, hash 8FE06144 + sample 104: + time = 2080000 + flags = 1 + data = length 32, hash ED90D421 + sample 105: + time = 2100000 + flags = 1 + data = length 32, hash 15971BF0 + sample 106: + time = 2120000 + flags = 1 + data = length 32, hash 1B2D1ADE + sample 107: + time = 2140000 + flags = 1 + data = length 32, hash A8A54AD2 + sample 108: + time = 2160000 + flags = 1 + data = length 32, hash 270646A2 + sample 109: + time = 2180000 + flags = 1 + data = length 32, hash 27DB772F + sample 110: + time = 2200000 + flags = 1 + data = length 32, hash FBD3938 + sample 111: + time = 2220000 + flags = 1 + data = length 32, hash FA27CAFB + sample 112: + time = 2240000 + flags = 1 + data = length 32, hash 828AB2A4 + sample 113: + time = 2260000 + flags = 1 + data = length 32, hash 5788D8F1 + sample 114: + time = 2280000 + flags = 1 + data = length 32, hash B7A5AEB0 + sample 115: + time = 2300000 + flags = 1 + data = length 32, hash 272DC4BC + sample 116: + time = 2320000 + flags = 1 + data = length 32, hash 56C2540E + sample 117: + time = 2340000 + flags = 1 + data = length 32, hash 3236D8C + sample 118: + time = 2360000 + flags = 1 + data = length 32, hash 6C0650B + sample 119: + time = 2380000 + flags = 1 + data = length 32, hash 1EA3E6C3 + sample 120: + time = 2400000 + flags = 1 + data = length 32, hash 6512496C + sample 121: + time = 2420000 + flags = 1 + data = length 32, hash 82CD3C74 + sample 122: + time = 2440000 + flags = 1 + data = length 32, hash 7EDFB3A4 + sample 123: + time = 2460000 + flags = 1 + data = length 32, hash AAFD22AB + sample 124: + time = 2480000 + flags = 1 + data = length 32, hash 8577D9D1 + sample 125: + time = 2500000 + flags = 1 + data = length 32, hash B8A22921 + sample 126: + time = 2520000 + flags = 1 + data = length 32, hash 5E4EFC87 + sample 127: + time = 2540000 + flags = 1 + data = length 32, hash 35A5463F + sample 128: + time = 2560000 + flags = 1 + data = length 32, hash 3EBC0376 + sample 129: + time = 2580000 + flags = 1 + data = length 32, hash F515CB86 + sample 130: + time = 2600000 + flags = 1 + data = length 32, hash B113F72C + sample 131: + time = 2620000 + flags = 1 + data = length 32, hash 420AE0 + sample 132: + time = 2640000 + flags = 1 + data = length 32, hash 86D53F0F + sample 133: + time = 2660000 + flags = 1 + data = length 32, hash 5600867C + sample 134: + time = 2680000 + flags = 1 + data = length 32, hash EB4D89B6 + sample 135: + time = 2700000 + flags = 1 + data = length 32, hash 9BCD0B44 + sample 136: + time = 2720000 + flags = 1 + data = length 32, hash 4629F424 + sample 137: + time = 2740000 + flags = 1 + data = length 32, hash DFAA65F7 + sample 138: + time = 2760000 + flags = 1 + data = length 32, hash 9CF2BD6A + sample 139: + time = 2780000 + flags = 1 + data = length 32, hash 7A36CAB4 + sample 140: + time = 2800000 + flags = 1 + data = length 32, hash 1B9BCD43 + sample 141: + time = 2820000 + flags = 1 + data = length 32, hash 409B739C + sample 142: + time = 2840000 + flags = 1 + data = length 32, hash 126CAB5A + sample 143: + time = 2860000 + flags = 1 + data = length 32, hash 58173930 + sample 144: + time = 2880000 + flags = 1 + data = length 32, hash 32F281F + sample 145: + time = 2900000 + flags = 1 + data = length 32, hash D3F26DE + sample 146: + time = 2920000 + flags = 1 + data = length 32, hash C13BE9A7 + sample 147: + time = 2940000 + flags = 1 + data = length 32, hash 854B6181 + sample 148: + time = 2960000 + flags = 1 + data = length 32, hash 1E217D84 + sample 149: + time = 2980000 + flags = 1 + data = length 32, hash B121F36A + sample 150: + time = 3000000 + flags = 536870913 + data = length 32, hash 67FBC502 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/h265_with_metadata_track.mp4/transmuxed_with_inappmuxer.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/h265_with_metadata_track.mp4/transmuxed_with_inappmuxer.dump new file mode 100644 index 0000000000..4712d1b3a2 --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/h265_with_metadata_track.mp4/transmuxed_with_inappmuxer.dump @@ -0,0 +1,71 @@ +seekMap: + isSeekable = true + duration = 66700 + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(1) = [[timeUs=0, position=400052]] + getPosition(33350) = [[timeUs=0, position=400052]] + getPosition(66700) = [[timeUs=0, position=400052]] +numberOfTracks = 2 +track 0: + total output bytes = 678996 + sample count = 3 + format 0: + id = 1 + sampleMimeType = video/hevc + codecs = hvc1.1.6.L153.B0 + maxInputSize = 420494 + maxNumReorderSamples = 0 + width = 1920 + height = 1080 + frameRate = 44.977512 + rotationDegrees = 90 + colorInfo: + colorSpace = 2 + colorRange = 1 + colorTransfer = 3 + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[mdta: key=com.android.capture.fps, value=30.0, xyz: latitude=51.5932, longitude=-0.2431, Mp4Timestamp: creation time=3000000000, modification time=4000000000, timescale=10000] + initializationData: + data = length 85, hash 6F3CAA16 + sample 0: + time = 0 + flags = 1 + data = length 420464, hash 9C6E9B09 + sample 1: + time = 33344 + flags = 0 + data = length 131591, hash A1895540 + sample 2: + time = 66700 + flags = 536870912 + data = length 126941, hash 7B26BBA6 +track 1: + total output bytes = 1726 + sample count = 3 + format 0: + averageBitrate = 192000 + peakBitrate = 192000 + id = 2 + sampleMimeType = audio/mp4a-latm + codecs = mp4a.40.2 + maxInputSize = 627 + channelCount = 2 + sampleRate = 48000 + language = ``` + metadata = entries=[xyz: latitude=51.5932, longitude=-0.2431, Mp4Timestamp: creation time=3000000000, modification time=4000000000, timescale=10000] + initializationData: + data = length 2, hash 560 + sample 0: + time = 0 + flags = 1 + data = length 597, hash 36BCB84D + sample 1: + time = 38041 + flags = 1 + data = length 571, hash FD73DCB0 + sample 2: + time = 59375 + flags = 536870913 + data = length 558, hash 6A62DD7F +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_av1.mp4/transmuxed_with_inappmuxer.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_av1.mp4/transmuxed_with_inappmuxer.dump new file mode 100644 index 0000000000..8dbba16fa4 --- /dev/null +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_av1.mp4/transmuxed_with_inappmuxer.dump @@ -0,0 +1,342 @@ +seekMap: + isSeekable = true + duration = 1064600 + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(1) = [[timeUs=0, position=400052]] + getPosition(532300) = [[timeUs=0, position=400052]] + getPosition(1064600) = [[timeUs=0, position=400052]] +numberOfTracks = 2 +track 0: + total output bytes = 69084 + sample count = 30 + format 0: + id = 1 + sampleMimeType = video/av01 + maxInputSize = 46460 + width = 1080 + height = 720 + frameRate = 31.004547 + colorInfo: + colorRange = 2 + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[Mp4Timestamp: creation time=3000000000, modification time=4000000000, timescale=10000] + initializationData: + data = length 17, hash 54AC4E6D + sample 0: + time = 0 + flags = 1 + data = length 46430, hash 6B637CB2 + sample 1: + time = 33355 + flags = 0 + data = length 18221, hash BDFC1DF5 + sample 2: + time = 66722 + flags = 0 + data = length 46, hash 61FBED63 + sample 3: + time = 100100 + flags = 0 + data = length 3, hash D5E0 + sample 4: + time = 133455 + flags = 0 + data = length 228, hash 12CA418E + sample 5: + time = 166822 + flags = 0 + data = length 3, hash D610 + sample 6: + time = 200200 + flags = 0 + data = length 42, hash 89850AD7 + sample 7: + time = 233555 + flags = 0 + data = length 3, hash D5D0 + sample 8: + time = 266922 + flags = 0 + data = length 622, hash 825F13E + sample 9: + time = 300300 + flags = 0 + data = length 31, hash A716FCF3 + sample 10: + time = 333655 + flags = 0 + data = length 3, hash D5E0 + sample 11: + time = 367022 + flags = 0 + data = length 303, hash A10916F7 + sample 12: + time = 400400 + flags = 0 + data = length 3, hash D600 + sample 13: + time = 433755 + flags = 0 + data = length 206, hash 9560CECD + sample 14: + time = 467122 + flags = 0 + data = length 3, hash D5C0 + sample 15: + time = 500500 + flags = 0 + data = length 1871, hash 33AF2CC4 + sample 16: + time = 533855 + flags = 0 + data = length 84, hash 8814D81E + sample 17: + time = 567222 + flags = 0 + data = length 3, hash D5E0 + sample 18: + time = 600600 + flags = 0 + data = length 291, hash 39EE2619 + sample 19: + time = 633955 + flags = 0 + data = length 3, hash D5F0 + sample 20: + time = 667322 + flags = 0 + data = length 34, hash 1BA7DF18 + sample 21: + time = 700700 + flags = 0 + data = length 3, hash D610 + sample 22: + time = 734055 + flags = 0 + data = length 336, hash FA3BC9BE + sample 23: + time = 767422 + flags = 0 + data = length 36, hash 8165203A + sample 24: + time = 800800 + flags = 0 + data = length 3, hash D600 + sample 25: + time = 834155 + flags = 0 + data = length 148, hash 7828A82B + sample 26: + time = 867522 + flags = 0 + data = length 3, hash D5F0 + sample 27: + time = 900900 + flags = 0 + data = length 36, hash 3D5B6002 + sample 28: + time = 934255 + flags = 0 + data = length 25, hash E9EFF2B7 + sample 29: + time = 967622 + flags = 536870912 + data = length 61, hash 40B232C5 +track 1: + total output bytes = 9312 + sample count = 45 + format 0: + averageBitrate = 71295 + peakBitrate = 71295 + id = 2 + sampleMimeType = audio/mp4a-latm + codecs = mp4a.40.2 + maxInputSize = 612 + channelCount = 1 + sampleRate = 44100 + language = und + metadata = entries=[Mp4Timestamp: creation time=3000000000, modification time=4000000000, timescale=10000] + initializationData: + data = length 5, hash 2B7623A + sample 0: + time = 0 + flags = 1 + data = length 21, hash 77102128 + sample 1: + time = 66208 + flags = 1 + data = length 17, hash BA75F5D4 + sample 2: + time = 89437 + flags = 1 + data = length 582, hash B5064B53 + sample 3: + time = 112645 + flags = 1 + data = length 218, hash 46000EEF + sample 4: + time = 135875 + flags = 1 + data = length 206, hash 7B12EC38 + sample 5: + time = 159083 + flags = 1 + data = length 215, hash C05E2F91 + sample 6: + time = 182312 + flags = 1 + data = length 217, hash 1E457BBF + sample 7: + time = 205520 + flags = 1 + data = length 195, hash DFD6F480 + sample 8: + time = 228750 + flags = 1 + data = length 198, hash 2BC702E + sample 9: + time = 251958 + flags = 1 + data = length 216, hash ED964B3D + sample 10: + time = 275187 + flags = 1 + data = length 204, hash DAF6FDC6 + sample 11: + time = 298416 + flags = 1 + data = length 205, hash D249FD76 + sample 12: + time = 321625 + flags = 1 + data = length 200, hash C8F844E4 + sample 13: + time = 344854 + flags = 1 + data = length 196, hash FDD0CA03 + sample 14: + time = 368062 + flags = 1 + data = length 196, hash E4E3A7B0 + sample 15: + time = 391291 + flags = 1 + data = length 207, hash 157773E3 + sample 16: + time = 414500 + flags = 1 + data = length 207, hash C9F46F0F + sample 17: + time = 437729 + flags = 1 + data = length 210, hash 127AC739 + sample 18: + time = 460958 + flags = 1 + data = length 217, hash B2649830 + sample 19: + time = 484166 + flags = 1 + data = length 188, hash 4D280759 + sample 20: + time = 507395 + flags = 1 + data = length 205, hash EAE6D6AD + sample 21: + time = 530604 + flags = 1 + data = length 226, hash BDD0EC44 + sample 22: + time = 553833 + flags = 1 + data = length 199, hash 60C719A2 + sample 23: + time = 577041 + flags = 1 + data = length 215, hash EDDE842F + sample 24: + time = 600270 + flags = 1 + data = length 201, hash D17187B + sample 25: + time = 623479 + flags = 1 + data = length 217, hash 58DD698C + sample 26: + time = 646708 + flags = 1 + data = length 202, hash 5168D405 + sample 27: + time = 669937 + flags = 1 + data = length 194, hash 7139AF8 + sample 28: + time = 693145 + flags = 1 + data = length 203, hash F775D9ED + sample 29: + time = 716375 + flags = 1 + data = length 200, hash 774C5045 + sample 30: + time = 739583 + flags = 1 + data = length 211, hash ED3C6FBC + sample 31: + time = 762812 + flags = 1 + data = length 205, hash FC4754A9 + sample 32: + time = 786020 + flags = 1 + data = length 216, hash 72F4AF29 + sample 33: + time = 809250 + flags = 1 + data = length 204, hash 1AF98D40 + sample 34: + time = 832458 + flags = 1 + data = length 200, hash E0004171 + sample 35: + time = 855687 + flags = 1 + data = length 215, hash B413079A + sample 36: + time = 878916 + flags = 1 + data = length 211, hash 107CEE52 + sample 37: + time = 902125 + flags = 1 + data = length 214, hash 1E588A0D + sample 38: + time = 925354 + flags = 1 + data = length 210, hash 84E5BBBD + sample 39: + time = 948562 + flags = 1 + data = length 211, hash 32D7ACAB + sample 40: + time = 971791 + flags = 1 + data = length 201, hash 1567F919 + sample 41: + time = 995000 + flags = 1 + data = length 196, hash 2F050463 + sample 42: + time = 1018229 + flags = 1 + data = length 215, hash 4BDD9C81 + sample 43: + time = 1041437 + flags = 1 + data = length 242, hash DD6FD967 + sample 44: + time = 1064666 + flags = 536870913 + data = length 184, hash DAFC330D +tracksEnded = true diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/InAppMuxer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/InAppMuxer.java index a876d416b5..c2ac9815e8 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/InAppMuxer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/InAppMuxer.java @@ -108,11 +108,21 @@ public final class InAppMuxer implements Muxer { /** A list of supported video sample MIME types. */ private static final ImmutableList SUPPORTED_VIDEO_SAMPLE_MIME_TYPES = - ImmutableList.of(MimeTypes.VIDEO_H264, MimeTypes.VIDEO_H265, MimeTypes.VIDEO_AV1); + ImmutableList.of( + MimeTypes.VIDEO_AV1, + MimeTypes.VIDEO_H263, + MimeTypes.VIDEO_H264, + MimeTypes.VIDEO_H265, + MimeTypes.VIDEO_MP4V); /** A list of supported audio sample MIME types. */ private static final ImmutableList SUPPORTED_AUDIO_SAMPLE_MIME_TYPES = - ImmutableList.of(MimeTypes.AUDIO_AAC); + ImmutableList.of( + MimeTypes.AUDIO_AAC, + MimeTypes.AUDIO_AMR_NB, + MimeTypes.AUDIO_AMR_WB, + MimeTypes.AUDIO_OPUS, + MimeTypes.AUDIO_VORBIS); private final @Nullable MetadataProvider metadataProvider; private final boolean outputFragmentedMp4; diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerWithInAppMuxerEndToEndTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerWithInAppMuxerEndToEndNonParameterizedTest.java similarity index 89% rename from libraries/transformer/src/test/java/androidx/media3/transformer/TransformerWithInAppMuxerEndToEndTest.java rename to libraries/transformer/src/test/java/androidx/media3/transformer/TransformerWithInAppMuxerEndToEndNonParameterizedTest.java index 8eb7cefc3d..07eea41d18 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerWithInAppMuxerEndToEndTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerWithInAppMuxerEndToEndNonParameterizedTest.java @@ -50,9 +50,8 @@ import org.junit.runner.RunWith; /** End-to-end test for {@link Transformer} with {@link InAppMuxer}. */ @RunWith(AndroidJUnit4.class) -public class TransformerWithInAppMuxerEndToEndTest { +public class TransformerWithInAppMuxerEndToEndNonParameterizedTest { private static final String MP4_FILE_PATH = "asset:///media/mp4/sample_no_bframes.mp4"; - private static final String MP4_FILE_NAME = "mp4/sample_no_bframes.mp4"; @Rule public final TemporaryFolder outputDir = new TemporaryFolder(); @@ -64,40 +63,6 @@ public class TransformerWithInAppMuxerEndToEndTest { outputPath = outputDir.newFile().getPath(); } - @Test - public void transmux_mp4File_outputMatchesExpected() throws Exception { - Muxer.Factory inAppMuxerFactory = - new InAppMuxer.Factory.Builder() - .setMetadataProvider( - metadataEntries -> - // Add timestamp to make output file deterministic. - metadataEntries.add( - new Mp4TimestampData( - /* creationTimestampSeconds= */ 3_000_000_000L, - /* modificationTimestampSeconds= */ 4_000_000_000L))) - .build(); - - Transformer transformer = - new Transformer.Builder(context) - .setClock(new FakeClock(/* isAutoAdvancing= */ true)) - .setMuxerFactory(inAppMuxerFactory) - .build(); - MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_FILE_PATH)); - - transformer.start(mediaItem, outputPath); - TransformerTestRunner.runLooper(transformer); - - FakeExtractorOutput fakeExtractorOutput = - extractAllSamplesFromFilePath( - new Mp4Extractor(new DefaultSubtitleParserFactory()), outputPath); - DumpFileAsserts.assertOutput( - context, - fakeExtractorOutput, - TestUtil.getDumpFileName( - /* originalFileName= */ MP4_FILE_NAME, - /* modifications...= */ "transmuxed_with_inappmuxer")); - } - @Test public void transmux_tsFileHavingThreeByteNalStartCode_outputMatchesExpected() throws Exception { String tsFilePath = "asset:///media/ts/sample_h264.ts"; diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerWithInAppMuxerEndToEndParameterizedTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerWithInAppMuxerEndToEndParameterizedTest.java new file mode 100644 index 0000000000..464c3739c6 --- /dev/null +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerWithInAppMuxerEndToEndParameterizedTest.java @@ -0,0 +1,116 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package androidx.media3.transformer; + +import static androidx.media3.common.util.Assertions.checkNotNull; +import static androidx.media3.test.utils.TestUtil.extractAllSamplesFromFilePath; +import static androidx.media3.transformer.TestUtil.ASSET_URI_PREFIX; + +import android.content.Context; +import androidx.media3.common.MediaItem; +import androidx.media3.container.Mp4TimestampData; +import androidx.media3.extractor.mp4.Mp4Extractor; +import androidx.media3.extractor.text.DefaultSubtitleParserFactory; +import androidx.media3.muxer.Muxer; +import androidx.media3.test.utils.DumpFileAsserts; +import androidx.media3.test.utils.FakeClock; +import androidx.media3.test.utils.FakeExtractorOutput; +import androidx.test.core.app.ApplicationProvider; +import com.google.common.collect.ImmutableList; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; +import org.junit.runner.RunWith; +import org.robolectric.ParameterizedRobolectricTestRunner; +import org.robolectric.ParameterizedRobolectricTestRunner.Parameter; +import org.robolectric.ParameterizedRobolectricTestRunner.Parameters; + +/** End to end parameterized tests for {@link Transformer} with {@link InAppMuxer}. */ +@RunWith(ParameterizedRobolectricTestRunner.class) +public class TransformerWithInAppMuxerEndToEndParameterizedTest { + + private static final String H263_3GP = "mp4/bbb_176x144_128kbps_15fps_h263.3gp"; + private static final String H264_MP4 = "mp4/sample_no_bframes.mp4"; + private static final String H265_MP4 = "mp4/h265_with_metadata_track.mp4"; + private static final String AV1_MP4 = "mp4/sample_av1.mp4"; + private static final String MPEG4_MP4 = "mp4/bbb_176x144_192kbps_15fps_mpeg4.mp4"; + private static final String AMR_NB_3GP = "mp4/bbb_mono_8kHz_12.2kbps_amrnb.3gp"; + private static final String AMR_WB_3GP = "mp4/bbb_mono_16kHz_23.05kbps_amrwb.3gp"; + private static final String OPUS_OGG = "mp4/bbb_6ch_8kHz_opus.ogg"; + private static final String VORBIS_OGG = "mp4/bbb_1ch_16kHz_q10_vorbis.ogg"; + + @Parameters(name = "{0}") + public static ImmutableList mediaFiles() { + return ImmutableList.of( + H263_3GP, + H264_MP4, + H265_MP4, + AV1_MP4, + MPEG4_MP4, + AMR_NB_3GP, + AMR_WB_3GP, + OPUS_OGG, + VORBIS_OGG); + } + + @Parameter public @MonotonicNonNull String inputFile; + + @Rule public final TemporaryFolder outputDir = new TemporaryFolder(); + + private final Context context = ApplicationProvider.getApplicationContext(); + private @MonotonicNonNull String outputPath; + + @Before + public void setup() throws Exception { + outputPath = outputDir.newFile("muxeroutput.mp4").getPath(); + } + + @Test + public void transmux_mp4File_outputMatchesExpected() throws Exception { + Muxer.Factory inAppMuxerFactory = + new InAppMuxer.Factory.Builder() + .setMetadataProvider( + metadataEntries -> + // Add timestamp to make output file deterministic. + metadataEntries.add( + new Mp4TimestampData( + /* creationTimestampSeconds= */ 3_000_000_000L, + /* modificationTimestampSeconds= */ 4_000_000_000L))) + .build(); + + Transformer transformer = + new Transformer.Builder(context) + .setClock(new FakeClock(/* isAutoAdvancing= */ true)) + .setMuxerFactory(inAppMuxerFactory) + .build(); + MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + checkNotNull(inputFile)); + + transformer.start(mediaItem, outputPath); + TransformerTestRunner.runLooper(transformer); + + FakeExtractorOutput fakeExtractorOutput = + extractAllSamplesFromFilePath( + new Mp4Extractor(new DefaultSubtitleParserFactory()), outputPath); + DumpFileAsserts.assertOutput( + context, + fakeExtractorOutput, + TestUtil.getDumpFileName( + /* originalFileName= */ checkNotNull(inputFile), + /* modifications...= */ "transmuxed_with_inappmuxer")); + } +}