First release
This commit is contained in:
commit
fa6c85266e
2339 changed files with 761050 additions and 0 deletions
89
node_modules/mux.js/test/aac-utils.test.js
generated
vendored
Normal file
89
node_modules/mux.js/test/aac-utils.test.js
generated
vendored
Normal file
|
@ -0,0 +1,89 @@
|
|||
'use strict';
|
||||
|
||||
var segments = require('data-files!segments');
|
||||
|
||||
var
|
||||
QUnit = require('qunit'),
|
||||
utils = require('../lib/aac/utils.js'),
|
||||
testSegment = segments['test-aac-segment.aac']();
|
||||
|
||||
var id3TagOffset = 0;
|
||||
var audioFrameOffset = 73;
|
||||
|
||||
|
||||
QUnit.module('AAC Utils');
|
||||
|
||||
QUnit.test('correctly determines aac data', function(assert) {
|
||||
assert.ok(utils.isLikelyAacData(testSegment), 'test segment is aac');
|
||||
|
||||
|
||||
var id3Offset = utils.parseId3TagSize(testSegment, 0);
|
||||
var id3 = Array.prototype.slice.call(testSegment, 0, id3Offset);
|
||||
var segmentOnly = testSegment.subarray(id3Offset);
|
||||
var multipleId3 = new Uint8Array([]
|
||||
.concat(id3)
|
||||
.concat(id3)
|
||||
.concat(id3)
|
||||
.concat(id3)
|
||||
.concat(Array.prototype.slice.call(segmentOnly))
|
||||
);
|
||||
|
||||
assert.ok(utils.isLikelyAacData(segmentOnly), 'test segment is aac without id3');
|
||||
assert.notOk(utils.isLikelyAacData(testSegment.subarray(id3Offset + 25)), 'non aac data not recognized');
|
||||
assert.notOk(utils.isLikelyAacData(testSegment.subarray(0, 5)), 'not enough aac data is not recognized');
|
||||
assert.ok(utils.isLikelyAacData(multipleId3), 'test segment with multilpe id3');
|
||||
});
|
||||
|
||||
|
||||
QUnit.test('correctly parses aac packet type', function(assert) {
|
||||
assert.equal(utils.parseType(testSegment, id3TagOffset), 'timed-metadata',
|
||||
'parsed timed-metadata type');
|
||||
assert.equal(utils.parseType(testSegment, 1), null,
|
||||
'parsed unknown type');
|
||||
assert.equal(utils.parseType(testSegment, audioFrameOffset), 'audio',
|
||||
'parsed audio type');
|
||||
});
|
||||
|
||||
QUnit.test('correctly parses ID3 tag size', function(assert) {
|
||||
assert.equal(utils.parseId3TagSize(testSegment, id3TagOffset), 73,
|
||||
'correct id3 tag size');
|
||||
});
|
||||
|
||||
QUnit.test('correctly parses timestamp from ID3 metadata', function(assert) {
|
||||
var frameSize = utils.parseId3TagSize(testSegment, id3TagOffset);
|
||||
var frame = testSegment.subarray(id3TagOffset, id3TagOffset + frameSize);
|
||||
|
||||
assert.equal(utils.parseAacTimestamp(frame), 895690, 'correct aac timestamp');
|
||||
});
|
||||
|
||||
QUnit.test('correctly parses adts frame size', function(assert) {
|
||||
assert.equal(utils.parseAdtsSize(testSegment, audioFrameOffset), 13,
|
||||
'correct adts frame size');
|
||||
});
|
||||
|
||||
QUnit.test('correctly parses packet sample rate', function(assert) {
|
||||
var frameSize = utils.parseAdtsSize(testSegment, audioFrameOffset);
|
||||
var frame = testSegment.subarray(audioFrameOffset, audioFrameOffset + frameSize);
|
||||
|
||||
assert.equal(utils.parseSampleRate(frame), 44100, 'correct sample rate');
|
||||
});
|
||||
|
||||
QUnit.test('parses correct ID3 tag size', function(assert) {
|
||||
var packetStream = new Uint8Array(10);
|
||||
|
||||
packetStream[9] = 63;
|
||||
|
||||
assert.equal(utils.parseId3TagSize(packetStream, 0),
|
||||
73,
|
||||
'correctly parsed a header without a footer');
|
||||
});
|
||||
|
||||
QUnit.test('parses correct ADTS Frame size', function(assert) {
|
||||
var packetStream = new Uint8Array(6);
|
||||
|
||||
packetStream[3] = 128;
|
||||
packetStream[4] = 29;
|
||||
packetStream[5] = 255;
|
||||
|
||||
assert.equal(utils.parseAdtsSize(packetStream, 0), 239, 'correctly parsed framesize');
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue