xgplayer-mp4 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xgplayer-mp4",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "xgplayer plugin for mp4 transform to fmp4",
5
5
  "main": "./dist/index.js",
6
6
  "scripts": {
@@ -8,7 +8,8 @@
8
8
  "build": "node ./src/version.js && webpack --progress --display-chunks -p",
9
9
  "watch": "webpack --progress --display-chunks -p --watch",
10
10
  "test": "karma start --single-run",
11
- "test:watch": "karma start"
11
+ "test:watch": "karma start",
12
+ "publish": "npm publish --registry=https://registry.npmjs.org"
12
13
  },
13
14
  "repository": {
14
15
  "type": "git",
@@ -36,8 +37,8 @@
36
37
  "deepmerge": "^2.0.1",
37
38
  "event-emitter": "^0.3.5"
38
39
  },
39
- "peerDependency": {
40
- "xgplayer": "^0.1.0"
40
+ "peerDependencies": {
41
+ "xgplayer": "^2.0.0"
41
42
  },
42
43
  "devDependencies": {
43
44
  "babel-core": "^6.26.3",
package/src/mp4.js CHANGED
@@ -254,7 +254,13 @@ class MP4 {
254
254
  if (nextBox) {
255
255
  if (nextBox.type === 'moov') {
256
256
  self.getData(moovStart, moovStart + nextBox.size + 28).then(res => {
257
- let parsed = new Parser(res)
257
+ let parsed
258
+ // try {
259
+ parsed = new Parser(res)
260
+ // }catch(e) {
261
+
262
+ // }
263
+
258
264
  self._boxes = self._boxes.concat(parsed.boxes)
259
265
  moov = parsed.boxes.filter(box => box.type === 'moov')
260
266
  if (moov.length) {
@@ -301,7 +307,6 @@ class MP4 {
301
307
  let stsz = util.findBox(trak, 'stsz') // sample-size
302
308
  let stts = util.findBox(trak, 'stts') // sample-time
303
309
  let stco = util.findBox(trak, 'stco') // chunk-offset
304
-
305
310
  let cttsObj = type === 'video' ? this._cttsObj : null;
306
311
  let stscObj = type === 'video' ? this._stscVideoObj : this._stscAudioObj;
307
312
  let mdatStart = this.mdatStart
@@ -328,11 +333,12 @@ class MP4 {
328
333
  })
329
334
  }
330
335
  } else {
336
+ let offset = util.seekSampleOffset(stsc, stco, stsz, start, mdatStart, stscObj)
331
337
  samples = {
332
338
  idx: start,
333
339
  size: stsz.entries[start],
334
340
  time: util.seekSampleTime(stts, cttsObj, start),
335
- offset: util.seekSampleOffset(stsc, stco, stsz, start, mdatStart, stscObj)
341
+ offset: offset
336
342
  }
337
343
  }
338
344
  return samples
@@ -475,7 +481,7 @@ class MP4 {
475
481
  end = videoNextFrame.offset
476
482
  if (this.audioTrak) {
477
483
  let audioNextFrame = this.getSamplesByOrders('audio', this.audioKeyFrames[fragIndex + 1].order, 0)
478
- end = Math.max(end, audioNextFrame.offset)
484
+ end = Math.max(end, audioNextFrame.offset || 0)
479
485
  }
480
486
  }
481
487
  if (window.isNaN(start) || (end !== undefined && window.isNaN(end))) {
@@ -487,7 +493,10 @@ class MP4 {
487
493
  loadFragment (fragIndex) {
488
494
  let self = this
489
495
  let range = this.getFragRange(fragIndex)
490
- if(range === [0, 0]) return false;
496
+ if(range === [0, 0]) {
497
+ debugger
498
+ return false;
499
+ }
491
500
  return this.getData(range[0], range[1]).then((dat) => {
492
501
  return self.createFragment(new Uint8Array(dat), range[0] - this.mdatStart, fragIndex)
493
502
  })
@@ -5,6 +5,9 @@ Box.MP4DecConfigDescrTag = function (stream) {
5
5
  let box = new Box()
6
6
  let size
7
7
  box.type = stream.readUint8()
8
+ if (box.type !== 4) {
9
+ return box
10
+ }
8
11
  size = stream.readUint8()
9
12
  if (size === 0x80) {
10
13
  box.extend = true
@@ -4,6 +4,10 @@ Box.MP4DecSpecificDescrTag = function (stream) {
4
4
  let box = new Box()
5
5
  let size, dataSize
6
6
  box.type = stream.readUint8()
7
+ if (box.type !== 5) {
8
+ stream.position = stream.position - 1
9
+ return box
10
+ }
7
11
  size = stream.readUint8()
8
12
  if (size === 0x80) {
9
13
  box.extend = true
@@ -5,8 +5,13 @@ Box.esds = function () {
5
5
  let stream = new Stream(this.data)
6
6
  this.version = stream.readUint8()
7
7
  this.flag = Stream.readByte(stream.dataview, 3)
8
- let box = Box.MP4ESDescrTag(stream)
9
- this.subBox.push(box)
10
- delete this.data
11
- stream = null
8
+ try {
9
+ let box = Box.MP4ESDescrTag(stream)
10
+ this.subBox.push(box)
11
+ delete this.data
12
+ stream = null
13
+ }catch(e) {
14
+ console.error(e)
15
+ }
16
+
12
17
  }
package/src/util/index.js CHANGED
@@ -94,7 +94,9 @@ util.stscOffset = function (stsc, sample_order, stscObj) {
94
94
 
95
95
  util.seekSampleOffset = function (stsc, stco, stsz, order, mdatStart, stscObj) {
96
96
  let chunkOffset = util.stscOffset(stsc, order + 1, stscObj)
97
- let result = stco.entries[chunkOffset.chunk_index - 1] + util.sum.apply(null, stsz.entries.slice(chunkOffset.samples_offset[0] - 1, chunkOffset.samples_offset[1] - 1)) - mdatStart
97
+ let sum = util.sum.apply(null, stsz.entries.slice(chunkOffset.samples_offset[0] - 1, chunkOffset.samples_offset[1] - 1))
98
+ let ss = stco.entries[chunkOffset.chunk_index - 1]
99
+ let result = ss + sum - mdatStart
98
100
  if (result === undefined) {
99
101
  throw `result=${result},stco.length=${stco.entries.length},sum=${util.sum.apply(null, stsz.entries.slice(0, order))}`
100
102
  } else if (result < 0) {
package/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "2.0.0"
2
+ "version": "2.0.1"
3
3
  }
package/webpack.config.js CHANGED
@@ -41,7 +41,7 @@ const client = {
41
41
  library: 'Mp4Player',
42
42
  libraryTarget: 'window'
43
43
  },
44
- devtool: argv.watch ? 'source-map' : 'none',
44
+ // devtool: argv.watch ? 'source-map' : 'none',
45
45
  module: {
46
46
  rules: [
47
47
  {