UNPKG

mp4box

Version:

JavaScript version of GPAC's MP4Box tool

42 lines (40 loc) 1.42 kB
BoxParser.createFullBoxCtor("sgpd", "SampleGroupDescriptionBox", function(stream) { this.grouping_type = stream.readString(4); Log.debug("BoxParser", "Found Sample Groups of type "+this.grouping_type); if (this.version === 1) { this.default_length = stream.readUint32(); } else { this.default_length = 0; } if (this.version >= 2) { this.default_group_description_index = stream.readUint32(); } this.entries = []; var entry_count = stream.readUint32(); for (var i = 0; i < entry_count; i++) { var entry; if (BoxParser[this.grouping_type+"SampleGroupEntry"]) { entry = new BoxParser[this.grouping_type+"SampleGroupEntry"](this.grouping_type); } else { entry = new BoxParser.SampleGroupEntry(this.grouping_type); } this.entries.push(entry); if (this.version === 1) { if (this.default_length === 0) { entry.description_length = stream.readUint32(); } else { entry.description_length = this.default_length; } } else { entry.description_length = this.default_length; } if (entry.write === BoxParser.SampleGroupEntry.prototype.write) { Log.info("BoxParser", "SampleGroup for type "+this.grouping_type+" writing not yet implemented, keeping unparsed data in memory for later write"); // storing data entry.data = stream.readUint8Array(entry.description_length); // rewinding stream.position -= entry.description_length; } entry.parse(stream); } });