diff --git a/content/media/AudioNodeExternalInputStream.cpp b/content/media/AudioNodeExternalInputStream.cpp index daeaad7c7b2319c5d17318dec2dcf06dbebc5fd7..50c8cba32ae50a6428580eeb59cee00f76fb7b74 100644 --- a/content/media/AudioNodeExternalInputStream.cpp +++ b/content/media/AudioNodeExternalInputStream.cpp @@ -412,7 +412,7 @@ AudioNodeExternalInputStream::ProcessInput(GraphTime aFrom, GraphTime aTo, std::min(inputTrackEndPoint, inputEndTicks)); } // Pad if we're looking past the end of the track - segment.AppendNullData(std::max<TrackTicks>(0, inputEndTicks - inputTrackEndPoint)); + segment.AppendNullData(ticks - segment.GetDuration()); } } diff --git a/content/media/test/crashtests/crashtests.list b/content/media/test/crashtests/crashtests.list index 8768d6d3f441ad122fb9e5d289d3c7150b74f9a6..1a4ca130159928146a87fe7c4e80974b341a7cb0 100644 --- a/content/media/test/crashtests/crashtests.list +++ b/content/media/test/crashtests/crashtests.list @@ -65,6 +65,7 @@ load 933156.html load 952756.html load buffer-source-ended-1.html load offline-buffer-source-ended-1.html +HTTP load media-element-source-seek-1.html skip-if(B2G) load oscillator-ended-1.html # intermittent B2G timeouts, bug 920338 skip-if(B2G) load oscillator-ended-2.html # intermittent B2G timeouts, bug 920338 test-pref(media.mediasource.enabled,true) load 926665.html diff --git a/content/media/test/crashtests/media-element-source-seek-1.html b/content/media/test/crashtests/media-element-source-seek-1.html new file mode 100644 index 0000000000000000000000000000000000000000..9564657236258940b378ac38392f9adb6e675707 --- /dev/null +++ b/content/media/test/crashtests/media-element-source-seek-1.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> +var audioElement = document.createElement("audio"); +audioElement.autoplay = true; +audioElement.src = "sound.ogg"; +audioElement.onplaying = + function() { + audioElement.onseeked = + function() { + setTimeout( + function() { + document.documentElement.removeAttribute("class"); + }, 100); + }; + audioElement.currentTime = 0; + }; + +var context = new window.AudioContext(); +var source = context.createMediaElementSource(audioElement); +source.connect(context.destination); +</script> +</html>