| <html> |
| <head> |
| <script src="../../../LayoutTests/media/video-test.js"></script> |
| <script> |
| |
| var seekedCount = 0; |
| var counter = 0; |
| |
| function trySeek(seekTo) |
| { |
| if (isInTimeRanges(video.seekable, seekTo)) { |
| if (isInTimeRanges(video.buffered, seekTo)) { |
| consoleWrite("Warining: Seeking into buffered region. May not generate waiting or seeking events."); |
| } |
| run("video.currentTime = " + seekTo); |
| } else { |
| failTest("Cannot seek to " + seekTo + ". Does engine support seeking into unbuffered region?"); |
| } |
| } |
| |
| function seeked() |
| { |
| ++seekedCount; |
| consoleWrite(""); |
| } |
| |
| function scheduleSeek() { |
| setTimeout(someTimeLater, 200); |
| } |
| |
| function someTimeLater() |
| { |
| consoleWrite("Running scheduled seek"); |
| testExpected("seekedCount", counter); |
| testExpected("video.currentTime", counter, ">="); |
| |
| if (counter == 3) |
| { |
| consoleWrite(""); |
| return; |
| endTest(); |
| } |
| |
| ++counter; |
| |
| scheduleSeek(); |
| trySeek(counter); |
| consoleWrite(""); |
| } |
| |
| function start() |
| { |
| findMediaElement(); |
| |
| waitForEvent('waiting'); |
| waitForEvent('seeking'); |
| waitForEvent('seeked', seeked); |
| waitForEvent('play', someTimeLater); |
| |
| consoleWrite("Start Load"); |
| video.src = "http://127.0.0.1:8000/media/video-throttled-load.cgi?name=../../../media/content/test.mp4&throttle=25"; |
| video.load(); |
| video.play(); |
| } |
| </script> |
| </head> |
| <body onload="start()"> |
| <video controls></video> |
| |
| <p>Attempt to seek out of the buffered range. If supported, this |
| should cause a waiting and seeking event to be fired for each seek. |
| This test makes assumptions on the size of the input file, the bitrate |
| of delivery, and the duration of the file. |
| </p> |
| <p> |
| Source is assumed to be about 188k with a uniform bitrate, > 4 |
| seconds in length, and served at 25kb/s. This should make seeking one |
| second ahead every 200ms always leave the buffered region. |
| </p> |
| </body> |
| </html> |