UNPKG

mp4box

Version:

JavaScript version of GPAC's MP4Box tool

136 lines (115 loc) 5.13 kB
/** Maps an Int32Array into the DataStream buffer, swizzling it to native endianness in-place. The current offset from the start of the buffer needs to be a multiple of element size, just like with typed array views. Nice for quickly reading in data. Warning: potentially modifies the buffer contents. @param {number} length Number of elements to map. @param {?boolean} e Endianness of the data to read. @return {Object} Int32Array to the DataStream backing buffer. */ DataStream.prototype.mapInt32Array = function(length, e) { this._realloc(length * 4); var arr = new Int32Array(this._buffer, this.byteOffset+this.position, length); DataStream.arrayToNative(arr, e == null ? this.endianness : e); this.position += length * 4; return arr; }; /** Maps an Int16Array into the DataStream buffer, swizzling it to native endianness in-place. The current offset from the start of the buffer needs to be a multiple of element size, just like with typed array views. Nice for quickly reading in data. Warning: potentially modifies the buffer contents. @param {number} length Number of elements to map. @param {?boolean} e Endianness of the data to read. @return {Object} Int16Array to the DataStream backing buffer. */ DataStream.prototype.mapInt16Array = function(length, e) { this._realloc(length * 2); var arr = new Int16Array(this._buffer, this.byteOffset+this.position, length); DataStream.arrayToNative(arr, e == null ? this.endianness : e); this.position += length * 2; return arr; }; /** Maps an Int8Array into the DataStream buffer. Nice for quickly reading in data. @param {number} length Number of elements to map. @param {?boolean} e Endianness of the data to read. @return {Object} Int8Array to the DataStream backing buffer. */ DataStream.prototype.mapInt8Array = function(length) { this._realloc(length * 1); var arr = new Int8Array(this._buffer, this.byteOffset+this.position, length); this.position += length * 1; return arr; }; /** Maps a Uint32Array into the DataStream buffer, swizzling it to native endianness in-place. The current offset from the start of the buffer needs to be a multiple of element size, just like with typed array views. Nice for quickly reading in data. Warning: potentially modifies the buffer contents. @param {number} length Number of elements to map. @param {?boolean} e Endianness of the data to read. @return {Object} Uint32Array to the DataStream backing buffer. */ DataStream.prototype.mapUint32Array = function(length, e) { this._realloc(length * 4); var arr = new Uint32Array(this._buffer, this.byteOffset+this.position, length); DataStream.arrayToNative(arr, e == null ? this.endianness : e); this.position += length * 4; return arr; }; /** Maps a Uint16Array into the DataStream buffer, swizzling it to native endianness in-place. The current offset from the start of the buffer needs to be a multiple of element size, just like with typed array views. Nice for quickly reading in data. Warning: potentially modifies the buffer contents. @param {number} length Number of elements to map. @param {?boolean} e Endianness of the data to read. @return {Object} Uint16Array to the DataStream backing buffer. */ DataStream.prototype.mapUint16Array = function(length, e) { this._realloc(length * 2); var arr = new Uint16Array(this._buffer, this.byteOffset+this.position, length); DataStream.arrayToNative(arr, e == null ? this.endianness : e); this.position += length * 2; return arr; }; /** Maps a Float64Array into the DataStream buffer, swizzling it to native endianness in-place. The current offset from the start of the buffer needs to be a multiple of element size, just like with typed array views. Nice for quickly reading in data. Warning: potentially modifies the buffer contents. @param {number} length Number of elements to map. @param {?boolean} e Endianness of the data to read. @return {Object} Float64Array to the DataStream backing buffer. */ DataStream.prototype.mapFloat64Array = function(length, e) { this._realloc(length * 8); var arr = new Float64Array(this._buffer, this.byteOffset+this.position, length); DataStream.arrayToNative(arr, e == null ? this.endianness : e); this.position += length * 8; return arr; }; /** Maps a Float32Array into the DataStream buffer, swizzling it to native endianness in-place. The current offset from the start of the buffer needs to be a multiple of element size, just like with typed array views. Nice for quickly reading in data. Warning: potentially modifies the buffer contents. @param {number} length Number of elements to map. @param {?boolean} e Endianness of the data to read. @return {Object} Float32Array to the DataStream backing buffer. */ DataStream.prototype.mapFloat32Array = function(length, e) { this._realloc(length * 4); var arr = new Float32Array(this._buffer, this.byteOffset+this.position, length); DataStream.arrayToNative(arr, e == null ? this.endianness : e); this.position += length * 4; return arr; };