| OLD | NEW |
| 1 <!doctype html> | 1 <!DOCTYPE html> |
| 2 <html> | 2 <html> |
| 3 <head> |
| 4 <title> |
| 5 Test webm Decoding |
| 6 </title> |
| 7 <script src="../../../resources/testharness.js"></script> |
| 8 <script src="../../../resources/testharnessreport.js"></script> |
| 9 <script src="../../resources/audit-util.js"></script> |
| 10 <script src="../../resources/audit.js"></script> |
| 11 <script src="../../resources/buffer-loader.js"></script> |
| 12 </head> |
| 13 <body> |
| 14 <script id="layout-test-code"> |
| 15 let audit = Audit.createTaskRunner(); |
| 16 let decodedAudio; |
| 17 let expectedAudio; |
| 3 | 18 |
| 4 <head> | 19 audit.define( |
| 5 <title>Test webm Decoding</title> | 20 {label: 'test', description: 'Test webm decoding'}, |
| 6 <script src="../../../resources/testharness.js"></script> | 21 function(task, should) { |
| 7 <script src="../../../resources/testharnessreport.js"></script> | |
| 8 <script src="../../resources/audit-util.js"></script> | |
| 9 <script src="../../resources/audit.js"></script> | |
| 10 <script src="../../resources/buffer-loader.js"></script> | |
| 11 </head> | |
| 12 | 22 |
| 13 <body> | 23 let context = new AudioContext(); |
| 14 <script> | |
| 15 let audit = Audit.createTaskRunner(); | |
| 16 let decodedAudio; | |
| 17 let expectedAudio; | |
| 18 | 24 |
| 19 audit.define( | 25 let bufferLoader = new BufferLoader( |
| 20 {label: 'test', description: 'Test webm decoding'}, | 26 context, ['webm-decode-expected.wav', 'test-webm.webm'], |
| 21 function(task, should) { | 27 function(bufferList) { |
| 28 expectedAudio = bufferList[0]; |
| 29 decodedAudio = bufferList[1]; |
| 22 | 30 |
| 23 let context = new AudioContext(); | 31 // Verify that we have the right number of channels and |
| 32 // frames. |
| 33 should(decodedAudio.numberOfChannels, 'Number of channels') |
| 34 .beEqualTo(expectedAudio.numberOfChannels); |
| 35 should(decodedAudio.length, 'Decoded number of frames') |
| 36 .beEqualTo(expectedAudio.length); |
| 24 | 37 |
| 25 let bufferLoader = new BufferLoader( | 38 // Verify that the actual data matches the expected data very |
| 26 context, ['webm-decode-expected.wav', 'test-webm.webm'], | 39 // closely. |
| 27 function(bufferList) { | 40 for (let c = 0; c < expectedAudio.numberOfChannels; ++c) { |
| 28 expectedAudio = bufferList[0]; | 41 let snrdB = 10 * |
| 29 decodedAudio = bufferList[1]; | 42 Math.log10(computeSNR( |
| 43 decodedAudio.getChannelData(c), |
| 44 expectedAudio.getChannelData(c))); |
| 45 should(snrdB, 'SNR between actual expected channel ' + c) |
| 46 .beGreaterThanOrEqualTo(109.56); |
| 47 should( |
| 48 decodedAudio.getChannelData(c), 'Decoded channel ' + c) |
| 49 .beCloseToArray( |
| 50 expectedAudio.getChannelData(c), |
| 51 {absoluteThreshold: 4.0234e-5}); |
| 52 } |
| 53 let filename = 'webm-decode-actual.wav'; |
| 54 if (downloadAudioBuffer(decodedAudio, filename)) |
| 55 should(true, 'Saved reference file').message(filename, ''); |
| 56 task.done(); |
| 57 }); |
| 30 | 58 |
| 31 // Verify that we have the right number of channels and | 59 bufferLoader.load(); |
| 32 // frames. | 60 }); |
| 33 should(decodedAudio.numberOfChannels, 'Number of channels') | |
| 34 .beEqualTo(expectedAudio.numberOfChannels); | |
| 35 should(decodedAudio.length, 'Decoded number of frames') | |
| 36 .beEqualTo(expectedAudio.length); | |
| 37 | 61 |
| 38 // Verify that the actual data matches the expected data very | 62 audit.run(); |
| 39 // closely. | 63 </script> |
| 40 for (let c = 0; c < expectedAudio.numberOfChannels; ++c) { | 64 </body> |
| 41 let snrdB = 10 * | 65 </html> |
| 42 Math.log10(computeSNR( | |
| 43 decodedAudio.getChannelData(c), | |
| 44 expectedAudio.getChannelData(c))); | |
| 45 should(snrdB, 'SNR between actual expected channel ' + c) | |
| 46 .beGreaterThanOrEqualTo(109.56); | |
| 47 should(decodedAudio.getChannelData(c), 'Decoded channel ' + c) | |
| 48 .beCloseToArray( | |
| 49 expectedAudio.getChannelData(c), | |
| 50 {absoluteThreshold: 4.0234e-5}); | |
| 51 } | |
| 52 var filename = 'webm-decode-actual.wav'; | |
| 53 if (downloadAudioBuffer(decodedAudio, filename)) | |
| 54 should(true, 'Saved reference file').message(filename, ''); | |
| 55 task.done(); | |
| 56 }); | |
| 57 | |
| 58 bufferLoader.load(); | |
| 59 }); | |
| 60 | |
| 61 audit.run(); | |
| 62 </script> | |
| 63 </body> | |
| 64 | |
| 65 </html> | |
| OLD | NEW |