test_debug_data_helpers.html (2560B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>Test the special debug APIs give expected data</title> 5 <script src="/tests/SimpleTest/SimpleTest.js"></script> 6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 7 <script type="text/javascript" src="manifest.js"></script> 8 <script class="testbody" type="text/javascript"> 9 add_task(async function testMozRequestDebugInfo() { 10 let video = document.createElement("video"); 11 video.src = "gizmo.mp4"; 12 document.body.appendChild(video); 13 await video.play(); 14 let debugData = await SpecialPowers.wrap(video).mozRequestDebugInfo(); 15 // Verify various members are present and as expected. 16 ok(debugData, "Should get some debug data"); 17 ok(debugData.decoder.hasAudio, "Should have audio"); 18 ok(debugData.decoder.hasVideo, "Should have video"); 19 is( 20 debugData.decoder.reader.videoWidth, 21 560, 22 "Video should have expected width" 23 ); 24 is( 25 debugData.decoder.reader.videoHeight, 26 320, 27 "Video should have expected height" 28 ); 29 ok( 30 debugData.decoder.stateMachine.mediaTime >= 0, 31 "Media time should be positive" 32 ); 33 removeNodeAndSource(video); 34 }); 35 36 add_task(async function testMozDebugReaderData() { 37 let video = document.createElement("video"); 38 let mediaSource = new MediaSource(); 39 video.src = URL.createObjectURL(mediaSource); 40 await once(mediaSource, "sourceopen"); 41 const sourceBuffer = mediaSource.addSourceBuffer("video/webm"); 42 let fetchResponse = await fetch("bipbop_short_vp8.webm"); 43 sourceBuffer.appendBuffer(await fetchResponse.arrayBuffer()); 44 await once(sourceBuffer, "updateend"); 45 mediaSource.endOfStream(); 46 await once(mediaSource, "sourceended"); 47 document.body.appendChild(video); 48 await video.play(); 49 let debugData = await SpecialPowers.wrap(mediaSource).mozDebugReaderData(); 50 // Verify various members are present and as expected. 51 ok(debugData, "Should get some debug data"); 52 is(debugData.reader.videoWidth, 400, "Video should have expected width"); 53 is(debugData.reader.videoHeight, 300, "Video should have expected height"); 54 ok( 55 debugData.demuxer.audioTrack.numSamples > 0, 56 "Audio track should have demuxed some samples" 57 ); 58 ok( 59 debugData.demuxer.audioTrack.ranges.length, 60 "Audio track should have some buffered range" 61 ); 62 ok( 63 debugData.demuxer.videoTrack.numSamples > 0, 64 "Video track should have demuxed some samples" 65 ); 66 ok( 67 debugData.demuxer.videoTrack.ranges.length, 68 "Video track should have some buffered range" 69 ); 70 removeNodeAndSource(video); 71 }); 72 </script> 73 </head> 74 </html>