b=983066 pad out resampler input past track end only to the end of the block r=padenot

The extra null samples were mostly harmless, and may have even helped avoid
bug 983062 sometimes, but caused the "Samples missing" assertion to fail.

--HG--
extra : transplant_source : M%D6%B4ra2%AE%DA%EC%82%E1%D8_%83%9F%FBw%F2%ECh
This commit is contained in:
Karl Tomlinson 2014-03-31 18:32:32 +13:00
Родитель 9394b6fd31
Коммит d729f892b6
3 изменённых файлов: 25 добавлений и 1 удалений

Просмотреть файл

@ -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());
}
}

Просмотреть файл

@ -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

Просмотреть файл

@ -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>