Skip to content

Instantly share code, notes, and snippets.

@notmasteryet
notmasteryet / gist:1195361
Created September 5, 2011 16:12
FF pdf.js #436 screenshot
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABKYAAAaUCAYAAADKMxRpAAAgAElEQVR4nOzdbaw7b17f9+tBVfUBQi1C2i4sDRVJiAI7tNmVSNtlwwCFzS67rpa2pBsTIiLcFsriBsTKVKTUUdRYpSkO22BFS82GOiF1VorbPzJNMJRpFg3QQTAF3ERm5f9KQ6RBGqThwTyYB58+mBuP7bE9Puf8zvW7eb+ko///d45v5uaayzMfX9d3jAAAAAAAAAALjO0FAAAAAAAAwJuJYAoAAAAAAABWEEwBAAAAAADACoIpAAAAAAAAWEEwBQAAAAAAACsIpgAAAAAAAGAFwRQAAAAAAACsIJgCAAAAAACAFQRTAAAAAAAAsIJgCgAAAAAAAFYQTAEAAAAAAMAKgikAAAAAAABYQTAFAAAAAAAAKwimAAAAAAAAYAXBFAAAAAAAAKwgmAIAAAAAAIAVBFMAAAAAAACwgmAKAAAAAAAAVhBMAQAAAAAAwAqCKQAAAAAAAFhBMAUAAAAAAAArCKYAAAAAAABgBcEUAAAAAAAArCCYAgAAAAAAgBUEUwAAAAAAALCCYAoAAAAAAABWEEwBAAAAAADACoIpAAAAAAAAWEEwBQAAAAAAACsIpgAAAAAAAGAFwRQAAAAAAACsIJgCAAAAAACAFQRTAAAAAAAAsIJgCgAAAAAAAFYQTAEAAAAAAMAKgikAAAAAAABYQTAFAAAAAAAAKwimAAAAAAAAYAXBFAAAAAAAAKwgmAIAAAAAAIAVBFMAAAAAAACwgmAKAAAAAAAAVhBMAQAAAAAAwAqCKQAAAAAAAFhBMAUAAAAAAAArCKYAAAAAAABgBcEUAAAAAAAArCCYAgAAAAAAgBUEUwAAAAAAALCCYAoAAAAAAABWEEwBAAAAAADACoIpAAAAAAAAWEEwBQAAAAAAACsIpgAAAAAAAGAFwRQAAAAAAACsIJgCAAAAAACAFQRTAAAAAAAAsIJgCgAAAAAAAFYQTAEAAA
@notmasteryet
notmasteryet / hacks.js
Created July 1, 2011 05:26
Hack for IE to support pdf.js
(function() {
try {
var a = new Uint8Array(1);
return; //no need
} catch(e) { }
function subarray(start, end) {
return this.slice(start, end);
}
@notmasteryet
notmasteryet / audioForWorker1.diff
Created May 11, 2011 01:33
Audio for Worker v1
diff --git a/content/base/public/Makefile.in b/content/base/public/Makefile.in
--- a/content/base/public/Makefile.in
+++ b/content/base/public/Makefile.in
@@ -119,12 +119,13 @@ XPIDLSRCS = \
nsIScriptEventManager.idl \
nsIImageLoadingContent.idl \
nsIObjectLoadingContent.idl \
nsIFrameLoader.idl \
nsIXMLHttpRequest.idl \
nsIContentSecurityPolicy.idl \
@notmasteryet
notmasteryet / genpjstest.java
Created April 2, 2011 03:37
generate pjs test from p5
StringBuffer buf = new StringBuffer();
buf.append("//[").append(width).append(",").append(height).append("]");
loadPixels();
for (int i = 0, pos = 0; i < height; ++i) {
for (int j = 0; j < width; ++j) {
color c = pixels[pos++];
buf.append(255 & (c >> 16)).append(",").append(255 & (c>>8)).append(",").
append(255 & c).append(",").append(255 & (c >> 24)).append(",");
}
}
--- a/Audiolet.js 2011-03-11 22:44:58.856274000 -0600
+++ b/Audiolet.js 2011-03-11 22:44:02.196274002 -0600
@@ -213,16 +213,17 @@
},
tick: function() {
var outputPosition = this.output.mozCurrentSampleOffset();
// Check if some data was not written in previous attempts
var numSamplesWritten;
if (this.overflow) {
diff -r 54d40057f55a media/libsydneyaudio/src/sydney_audio_mac.c
--- a/media/libsydneyaudio/src/sydney_audio_mac.c Thu Sep 23 20:09:00 2010 -0700
+++ b/media/libsydneyaudio/src/sydney_audio_mac.c Fri Sep 24 20:51:57 2010 -0500
@@ -72,6 +72,7 @@
bool playing;
int64_t bytes_played;
int64_t total_bytes_played;
+ int64_t bytes_lost;
/* audio format info */
diff -r 54d40057f55a content/media/nsAudioAvailableEventManager.cpp
--- a/content/media/nsAudioAvailableEventManager.cpp Thu Sep 23 20:09:00 2010 -0700
+++ b/content/media/nsAudioAvailableEventManager.cpp Thu Sep 23 22:13:31 2010 -0500
@@ -219,9 +219,10 @@
(mSignalBufferLength - mSignalBufferPosition) * sizeof(float));
// Force this last event to go now.
+ PRUint64 time = aEndTime - MILLISECONDS_PER_SECOND * mSignalBufferPosition / mSamplesPerSecond;
nsCOMPtr<nsIRunnable> lastEvent =
new nsAudioAvailableEventRunner(mDecoder, mSignalBuffer.forget(),
diff --git a/source/dynamicaudio.js b/source/dynamicaudio.js
index 18a8901..1bb2736 100644
--- a/source/dynamicaudio.js
+++ b/source/dynamicaudio.js
@@ -32,7 +32,7 @@ DynamicAudio.prototype = {
if (typeof Audio != 'undefined') {
self.audioElement = new Audio();
if (self.audioElement.mozSetup) {
- self.audioElement.mozSetup(2, 44100, 1);
+ self.audioElement.mozSetup(2, 44100);
// $JSSHELL -j -f dsp.js -f testfft.js
FFT.prototype.compile = function() {
// Locally scope variables for speed up
var bufferSize = this.bufferSize,
cosTable = this.cosTable,
sinTable = this.sinTable,
reverseTable = this.reverseTable;
function AudioNode(context, numberOfOutputs, numberOfInputs, sampleRate) {
this.numberOfInputs = numberOfInputs;
this.numberOfOutputs = numberOfOutputs;
this.sampleRate = sampleRate;
this.__context = context;
this.__connectedTo = [];
this.__connectedFrom = [];