changeset 752:fab881bdeeac

Offline Context no longer promise type for Safari OSX support.
author Nicholas Jillings <nicholas.jillings@eecs.qmul.ac.uk>
date Mon, 21 Dec 2015 13:54:49 +0000
parents 3b8069ea47d2
children 56ee920d5d85
files loudness.js
diffstat 1 files changed, 10 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- 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)