xgplayer-mp4 1.2.4 → 2.0.2

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.
Files changed (84) hide show
  1. package/browser/index.js +1 -1
  2. package/browser/index.js.map +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/package.json +5 -4
  6. package/src/constants.js +14 -0
  7. package/src/fmp4/buffer.js +6 -0
  8. package/src/fmp4/mp4.js +181 -84
  9. package/src/gap_jump.js +151 -0
  10. package/src/index.js +550 -315
  11. package/src/media/mse.js +77 -22
  12. package/src/media/task.js +68 -17
  13. package/src/mp4.js +284 -268
  14. package/src/parse/box/MP4DecConfigDescrTag.js +3 -0
  15. package/src/parse/box/MP4DecSpecificDescrTag.js +4 -0
  16. package/src/parse/box/avcC.js +4 -1
  17. package/src/parse/box/elst.js +0 -13
  18. package/src/parse/box/esds.js +9 -4
  19. package/src/parse/box/frma.js +10 -0
  20. package/src/parse/box/golomb.js +88 -0
  21. package/src/parse/box/hvc1.js +30 -0
  22. package/src/parse/box/hvcC.js +55 -0
  23. package/src/parse/box/pasp.js +2 -3
  24. package/src/parse/box/schm.js +18 -0
  25. package/src/parse/box/sps.js +286 -0
  26. package/src/parse/box/stsz.js +6 -1
  27. package/src/parse/box/tfhd.js +43 -0
  28. package/src/parse/box.js +5 -1
  29. package/src/parse/stream.js +4 -0
  30. package/src/util/getHeaders.js +18 -0
  31. package/src/util/index.js +138 -20
  32. package/src/util/intervalTimer.js +36 -0
  33. package/src/util/isSupport.js +20 -0
  34. package/src/util/proxyPromise.js +27 -0
  35. package/src/util/timer.js +46 -0
  36. package/src/util/xhr.js +46 -0
  37. package/version.json +1 -1
  38. package/webpack.config.js +45 -39
  39. package/src/util/download.js +0 -13
  40. package/src/write/box/MP4DecConfigDescrTag.js +0 -21
  41. package/src/write/box/MP4DecSpecificDescrTag.js +0 -19
  42. package/src/write/box/MP4ESDescrTag.js +0 -19
  43. package/src/write/box/SLConfigDescriptor.js +0 -16
  44. package/src/write/box/avc1.js +0 -33
  45. package/src/write/box/avcC.js +0 -32
  46. package/src/write/box/btrt.js +0 -14
  47. package/src/write/box/co64.js +0 -17
  48. package/src/write/box/ctts.js +0 -19
  49. package/src/write/box/dref.js +0 -25
  50. package/src/write/box/elst.js +0 -27
  51. package/src/write/box/esds.js +0 -11
  52. package/src/write/box/ftyp.js +0 -17
  53. package/src/write/box/hdlr.js +0 -15
  54. package/src/write/box/iods.js +0 -14
  55. package/src/write/box/mdat.js +0 -5
  56. package/src/write/box/mdhd.js +0 -27
  57. package/src/write/box/mehd.js +0 -12
  58. package/src/write/box/mfhd.js +0 -12
  59. package/src/write/box/mfro.js +0 -14
  60. package/src/write/box/mp4a.js +0 -26
  61. package/src/write/box/mvhd.js +0 -34
  62. package/src/write/box/pasp.js +0 -10
  63. package/src/write/box/smhd.js +0 -17
  64. package/src/write/box/stco.js +0 -17
  65. package/src/write/box/stsc.js +0 -19
  66. package/src/write/box/stsd.js +0 -23
  67. package/src/write/box/stss.js +0 -17
  68. package/src/write/box/stsz.js +0 -18
  69. package/src/write/box/stts.js +0 -18
  70. package/src/write/box/tfdt.js +0 -16
  71. package/src/write/box/tfhd.js +0 -18
  72. package/src/write/box/tfra.js +0 -29
  73. package/src/write/box/tkhd.js +0 -44
  74. package/src/write/box/trex.js +0 -16
  75. package/src/write/box/trun.js +0 -40
  76. package/src/write/box/udta.js +0 -5
  77. package/src/write/box/url.js +0 -16
  78. package/src/write/box/vmhd.js +0 -19
  79. package/src/write/box/wide.js +0 -12
  80. package/src/write/box.js +0 -37
  81. package/src/write/buffer.js +0 -12
  82. package/src/write/index.js +0 -33
  83. package/src/write/stream.js +0 -99
  84. package/webpack.config.test.js +0 -8
package/src/write/box.js DELETED
@@ -1,37 +0,0 @@
1
- import Stream from './stream'
2
- class Box {
3
- constructor (obj, output) {
4
- this.size = obj.size
5
- this.type = obj.type
6
- this.stream = new Stream(new Uint8Array(this.size - 8).buffer)
7
- this.data = obj
8
- this.output = output
9
- this.subBox = []
10
- let header = new Stream(new Uint8Array(8).buffer)
11
- header.writeUint32(obj.size)
12
- header.writeStr(obj.type)
13
- output.write(new Uint8Array(header.buffer))
14
- }
15
- writeBody () {
16
- let self = this
17
- let data = this.data
18
- if (Box.containerBox.find(item => item === self.type)) {
19
- data.subBox.forEach(item => {
20
- let box = new Box(item, self.output)
21
- self.subBox.push(box)
22
- box.writeBody()
23
- })
24
- } else {
25
- let run = Box[self.type]
26
- if (run && run instanceof Function) {
27
- run.call(self, data, self.output)
28
- } else {
29
- throw new Error(`write:error,${self.type} write nothing`)
30
- }
31
- }
32
- }
33
- }
34
-
35
- Box.containerBox = ['moov', 'trak', 'edts', 'mdia', 'minf', 'dinf', 'stbl', 'mvex', 'moof', 'mvex', 'traf', 'mfra']
36
-
37
- export default Box
@@ -1,12 +0,0 @@
1
- import Concat from 'concat-typed-array'
2
-
3
- class Buffer {
4
- constructor () {
5
- this.buffer = new Uint8Array(0)
6
- }
7
- write (buffer) {
8
- this.buffer = Concat(Uint8Array, this.buffer, buffer)
9
- }
10
- }
11
-
12
- export default Buffer
@@ -1,33 +0,0 @@
1
- import Box from './box'
2
- import Buffer from './buffer'
3
-
4
- // 引入整个目录
5
- var context = require.context('./box', true, /\.js$/)
6
- context.keys().forEach(function (key) {
7
- context(key)
8
- })
9
-
10
- class Write {
11
- writeMeta (boxes) {
12
- let out = new Buffer()
13
- boxes.forEach(item => {
14
- let box = new Box(item, out)
15
- box.writeBody()
16
- })
17
- return out.buffer
18
- }
19
-
20
- writeFragment (...args) {
21
- let out = new Buffer()
22
- args.forEach(item => {
23
- if (!item) {
24
- return false
25
- }
26
- let box = new Box(item, out)
27
- box.writeBody()
28
- })
29
- return out.buffer
30
- }
31
- }
32
-
33
- export default Write
@@ -1,99 +0,0 @@
1
- class Stream {
2
- constructor (buffer) {
3
- this.buffer = buffer
4
- this.dataview = new DataView(buffer)
5
- this.dataview.position = 0
6
- }
7
-
8
- fill (count) {
9
- for (let i = 0; i < count; i++) {
10
- this.writeUint8(0)
11
- }
12
- }
13
-
14
- set position (value) {
15
- this.dataview.position = value
16
- }
17
-
18
- get position () {
19
- return this.dataview.position || 0
20
- }
21
-
22
- static writeByte (buffer, value, size, sign) {
23
- switch (size) {
24
- case 1:
25
- if (sign) {
26
- buffer.setInt8(buffer.position, value)
27
- } else {
28
- buffer.setUint8(buffer.position, value)
29
- }
30
- break
31
- case 2:
32
- if (sign) {
33
- buffer.setInt16(buffer.position, value)
34
- } else {
35
- buffer.setUint16(buffer.position, value)
36
- }
37
- break
38
- case 3:
39
- if (sign) {
40
- for (let i = 0; i < 3; i++) {
41
- buffer.setInt8(buffer.position + i, value >> (16 - i * 8) & 0xff)
42
- }
43
- } else {
44
- for (let i = 0; i < 3; i++) {
45
- buffer.setUint8(buffer.position + i, value >> (16 - i * 8) & 0xff)
46
- }
47
- }
48
- break
49
- case 4:
50
- if (sign) {
51
- buffer.setInt32(buffer.position, value)
52
- } else {
53
- buffer.setUint32(buffer.position, value)
54
- }
55
- break
56
- default:
57
- throw new Error(`not support ${size} write`)
58
- }
59
- buffer.position += size
60
- }
61
-
62
- writeUint8 (value) {
63
- Stream.writeByte(this.dataview, value, 1)
64
- }
65
- writeInt8 (value) {
66
- Stream.writeByte(this.dataview, value, 1, true)
67
- }
68
- writeUint16 (value) {
69
- Stream.writeByte(this.dataview, value, 2)
70
- }
71
- writeInt16 (value) {
72
- Stream.writeByte(this.dataview, value, 2, true)
73
- }
74
- writeUint24 (value) {
75
- Stream.writeByte(this.dataview, value, 3)
76
- }
77
- writeInt24 (value) {
78
- Stream.writeByte(this.dataview, value, 3, true)
79
- }
80
- writeUint32 (value) {
81
- Stream.writeByte(this.dataview, value, 4)
82
- }
83
- writeInt32 (value) {
84
- Stream.writeByte(this.dataview, value, 4, true)
85
- }
86
- writeUint64 (value) {
87
- Stream.writeByte(this.dataview, (value & 0xFFFFFFFF00000000) >> 32, 4)
88
- Stream.writeByte(this.dataview, (value & 0x00000000FFFFFFFF), 4)
89
- }
90
- writeStr (value) {
91
- value = value.toString()
92
- let length = value.length
93
- for (let i = 0; i < length; i++) {
94
- this.writeUint8(value.charCodeAt(i))
95
- }
96
- }
97
- }
98
-
99
- export default Stream
@@ -1,8 +0,0 @@
1
- const webpackConfigs = require('./webpack.config.js')
2
-
3
- webpackConfigs[0].mode = 'development'
4
- webpackConfigs[0].output = {
5
- filename: '[name].js',
6
- }
7
-
8
- module.exports = webpackConfigs[0]