diff --git a/.gitmodules b/.gitmodules index bb295d1..415f1df 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "libogg"] - path = libogg - url = git://git.xiph.org/mirrors/ogg.git +[submodule "ogg"] + path = ogg + url = https://git.xiph.org/ogg.git diff --git a/compileOgg.sh b/compileOgg.sh index b7066bb..258ad29 100755 --- a/compileOgg.sh +++ b/compileOgg.sh @@ -1,26 +1,31 @@ #!/bin/bash +set -e # configure libogg -cd libogg +cd ogg if [ ! -f configure ]; then # generate configuration script ./autogen.sh - + # -O20 and -04 cause problems # see https://github.com/kripken/emscripten/issues/264 - sed -i '' 's/-O20/-O2/g' configure - sed -i '' 's/-O4/-O2/g' configure - - # finally, run configuration script - emconfigure ./configure --prefix="`pwd`" --disable-static + sed -i 's/-O20/-O2/g' configure + sed -i 's/-O4/-O2/g' configure fi +# finally, run configuration script +emconfigure ./configure --prefix="`pwd`" --disable-shared --enable-static + # compile libogg emmake make -emmake make install +emmake make -i install # compile wrapper cd .. mkdir -p build -emcc -O3 -s RESERVED_FUNCTION_POINTERS=50 -s EXPORTED_FUNCTIONS="['_AVOggInit', '_AVOggRead', '_AVOggDestroy']" -I libogg/include -Llibogg/lib -logg src/ogg.c -o build/libogg.js +emcc -s WASM=0 \ + -s RESERVED_FUNCTION_POINTERS=2 \ + -s EXTRA_EXPORTED_RUNTIME_METHODS="['addFunction', 'removeFunction']" \ + -s EXPORTED_FUNCTIONS="['_AVOggInit', '_AVOggRead', '_AVOggDestroy']" \ + -O3 -I ogg/include src/ogg.c ogg/lib/libogg.a -o build/libogg.js --memory-init-file 0 echo "module.exports = Module" >> build/libogg.js diff --git a/libogg b/libogg deleted file mode 160000 index ab78196..0000000 --- a/libogg +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ab78196fd59ad7a329a2b19d2bcec5d840a9a21f diff --git a/ogg b/ogg new file mode 160000 index 0000000..0acd32d --- /dev/null +++ b/ogg @@ -0,0 +1 @@ +Subproject commit 0acd32d7cabf7e41cc29ea7c2bbffde969ff1ba0 diff --git a/package.json b/package.json index 6664799..25482b4 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "av": "~0.4.0" }, "devDependencies": { - "browserify": "^4.1.10", + "browserify": "^16.2.3", "browserify-shim": "^3.5.0" }, "browserify-shim": { diff --git a/src/ogg.js b/src/ogg.js index d5a73a4..d6d227f 100644 --- a/src/ogg.js +++ b/src/ogg.js @@ -22,7 +22,7 @@ var OggDemuxer = AV.Demuxer.extend(function() { // copy the stream in case we override it, e.g. flac this._stream = this.stream; - this.callback = Ogg.Runtime.addFunction(function(packet, bytes) { + this.callback = Ogg.addFunction(function(packet, bytes) { var data = new Uint8Array(Ogg.HEAPU8.subarray(packet, packet + bytes)); // find plugin for codec @@ -60,7 +60,7 @@ var OggDemuxer = AV.Demuxer.extend(function() { this.prototype.destroy = function() { this._super(); - Ogg.Runtime.removeFunction(this.callback); + Ogg.removeFunction(this.callback); Ogg._AVOggDestroy(this.ogg); Ogg._free(this.buf);