# HG changeset patch # User Nicholas Jillings # Date 1450706089 0 # Node ID 1a72ddac0e175be47ea694d20548d612ee1a2490 # Parent 57c7dd771212c5ed0185f54ed9dbdb7972144bf3 Offline Context no longer promise type for Safari OSX support. diff -r 57c7dd771212 -r 1a72ddac0e17 loudness.js --- a/loudness.js Mon Dec 21 13:17:45 2015 +0000 +++ b/loudness.js Mon Dec 21 13:54:49 2015 +0000 @@ -8,6 +8,10 @@ var interval_cal_loudness_event = null; +if (typeof OfflineAudioContext == "undefined"){ + var OfflineAudioContext = webkitOfflineAudioContext; +} + function calculateLoudness(buffer, timescale, target, offlineContext) { // This function returns the EBU R 128 specification loudness model and sets the linear gain required to match -23 LUFS @@ -50,8 +54,11 @@ KFilter.connect(HPFilter); HPFilter.connect(offlineContext.destination); processSource.start(); - offlineContext.startRendering().then(function(renderedBuffer) { + offlineContext.oncomplete = function(renderedBuffer) { // Have the renderedBuffer information, now continue processing + if (typeof renderedBuffer.renderedBuffer == 'object') { + renderedBuffer = renderedBuffer.renderedBuffer; + } switch(timescale) { case "I": @@ -95,10 +102,8 @@ var overallRelLoudness = calculateOverallLoudnessFromChannelBlocks(relgateEnergy); buffer.lufs = overallRelLoudness; } - }).catch(function(err) { - console.log(err); - buffer.lufs = 1; - }); + }; + offlineContext.startRendering(); } function calculateProcessedLoudness(buffer, winDur, overlap)