Put together a working minimal media segment example
Create example binary data that is a valid Media Segment and does not produce decode errors when coupled with an appropriate media segment. Add some free-form notes from media source extensions research so far. Update the testing sandbox player.
Showing
3 changed files
with
579 additions
and
19 deletions
docs/mse.md
0 → 100644
1 | # Media Source Extensions Notes | ||
2 | A collection of findings experimenting with Media Source Extensions on | ||
3 | Chrome 36. | ||
4 | |||
5 | * Specifying an audio and video codec when creating a source buffer | ||
6 | but passing in an initialization segment with only a video track | ||
7 | results in a decode error | ||
8 | |||
9 | ## ISO Base Media File Format (BMFF) | ||
10 | |||
11 | ### Init Segment | ||
12 | - `ftyp` | ||
13 | - `moov` | ||
14 | - `mvex` | ||
15 | |||
16 | ### Media Segment | ||
17 | The structure of a minimal media segment that actually encapsulates | ||
18 | movie data is outlined below: | ||
19 | |||
20 | - `moof` | ||
21 | - `mfhd` | ||
22 | - `traf` | ||
23 | - `tfhd` | ||
24 | - `tfdt` | ||
25 | - `trun` | ||
26 | - `mdat` | ||
27 | |||
28 | ### Structure | ||
29 | |||
30 | sample: time {number}, data {array} | ||
31 | chunk: samples {array} | ||
32 | track: samples {array} | ||
33 | segment: moov {box}, mdats {array} | moof {box}, mdats {array}, data {array} | ||
34 | |||
35 | track | ||
36 | chunk | ||
37 | sample | ||
38 | |||
39 | movie fragment -> track fragment -> [samples] | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
test/muxer/min-m4s.js
0 → 100644
1 | // a minimal set of boxes assembled to form a valid BMFF media segment | ||
2 | var mfhd = [ | ||
3 | 0, 0, 0, 16, 109, 102, 104, 100, 0, 0, 0, 0, 0, 0, 0, 1 | ||
4 | ]; // sequence number 1 | ||
5 | var tfhd = [ | ||
6 | 0, 0, 0, 16, 116, 102, 104, 100, 0, 2, 0, 0, 0, 0, 0, 1 | ||
7 | ]; // track id 1 | ||
8 | var tfdt = [ | ||
9 | 0, 0, 0, 16, 116, 102, 100, 116, 0, 0, 0, 0, 0, 0, 0, 0 | ||
10 | ]; | ||
11 | var trun = [ | ||
12 | 0, 0, 0, 124, 116, 114, 117, 110, 0, 0, 2, 5, 0, 0, 0, 25, 0, 0, 0, | ||
13 | 196, 0, 0, 0, 0, 0, 0, 12, 219, 0, 0, 0, 183, 0, 0, 0, 172, 0, 0, 0, | ||
14 | 182, 0, 0, 0, 183, 0, 0, 0, 198, 0, 0, 0, 146, 0, 0, 0, 176, 0, 0, | ||
15 | 0, 190, 0, 0, 0, 169, 0, 0, 0, 243, 0, 0, 0, 174, 0, 0, 0, 131, 0, | ||
16 | 0, 0, 161, 0, 0, 0, 144, 0, 0, 0, 163, 0, 0, 0, 128, 0, 0, 0, 174, | ||
17 | 0, 0, 0, 194, 0, 0, 0, 133, 0, 0, 0, 183, 0, 0, 0, 154, 0, 0, 0, | ||
18 | 150, 0, 0, 0, 169, 0, 0, 0, 157 | ||
19 | ]; | ||
20 | var mdat = [ | ||
21 | 0, 0, 28, 188, 109, 100, 97, 116, 0, 0, 2, 151, 6, 5, 255, 255, 147, | ||
22 | 220, 69, 233, 189, 230, 217, 72, 183, 150, 44, 216, 32, 217, 35, 238, | ||
23 | 239, 120, 50, 54, 52, 32, 45, 32, 99, 111, 114, 101, 32, 49, 49, 56, | ||
24 | 32, 114, 50, 48, 56, 53, 32, 56, 97, 54, 50, 56, 51, 53, 32, 45, 32, | ||
25 | 72, 46, 50, 54, 52, 47, 77, 80, 69, 71, 45, 52, 32, 65, 86, 67, 32, | ||
26 | 99, 111, 100, 101, 99, 32, 45, 32, 67, 111, 112, 121, 108, 101, 102, | ||
27 | 116, 32, 50, 48, 48, 51, 45, 50, 48, 49, 49, 32, 45, 32, 104, 116, | ||
28 | 116, 112, 58, 47, 47, 119, 119, 119, 46, 118, 105, 100, 101, 111, 108, | ||
29 | 97, 110, 46, 111, 114, 103, 47, 120, 50, 54, 52, 46, 104, 116, 109, | ||
30 | 108, 32, 45, 32, 111, 112, 116, 105, 111, 110, 115, 58, 32, 99, 97, | ||
31 | 98, 97, 99, 61, 48, 32, 114, 101, 102, 61, 51, 32, 100, 101, 98, 108, | ||
32 | 111, 99, 107, 61, 49, 58, 48, 58, 48, 32, 97, 110, 97, 108, 121, 115, | ||
33 | 101, 61, 48, 120, 49, 58, 48, 120, 49, 49, 49, 32, 109, 101, 61, 104, | ||
34 | 101, 120, 32, 115, 117, 98, 109, 101, 61, 55, 32, 112, 115, 121, 61, | ||
35 | 49, 32, 112, 115, 121, 95, 114, 100, 61, 49, 46, 48, 48, 58, 48, 46, | ||
36 | 48, 48, 32, 109, 105, 120, 101, 100, 95, 114, 101, 102, 61, 49, 32, | ||
37 | 109, 101, 95, 114, 97, 110, 103, 101, 61, 49, 54, 32, 99, 104, 114, | ||
38 | 111, 109, 97, 95, 109, 101, 61, 49, 32, 116, 114, 101, 108, 108, 105, | ||
39 | 115, 61, 49, 32, 56, 120, 56, 100, 99, 116, 61, 48, 32, 99, 113, 109, | ||
40 | 61, 48, 32, 100, 101, 97, 100, 122, 111, 110, 101, 61, 50, 49, 44, 49, | ||
41 | 49, 32, 102, 97, 115, 116, 95, 112, 115, 107, 105, 112, 61, 49, 32, | ||
42 | 99, 104, 114, 111, 109, 97, 95, 113, 112, 95, 111, 102, 102, 115, 101, | ||
43 | 116, 61, 45, 50, 32, 116, 104, 114, 101, 97, 100, 115, 61, 51, 32, | ||
44 | 115, 108, 105, 99, 101, 100, 95, 116, 104, 114, 101, 97, 100, 115, 61, | ||
45 | 48, 32, 110, 114, 61, 48, 32, 100, 101, 99, 105, 109, 97, 116, 101, | ||
46 | 61, 49, 32, 105, 110, 116, 101, 114, 108, 97, 99, 101, 100, 61, 48, | ||
47 | 32, 98, 108, 117, 114, 97, 121, 95, 99, 111, 109, 112, 97, 116, 61, | ||
48 | 48, 32, 99, 111, 110, 115, 116, 114, 97, 105, 110, 101, 100, 95, 105, | ||
49 | 110, 116, 114, 97, 61, 48, 32, 98, 102, 114, 97, 109, 101, 115, 61, | ||
50 | 48, 32, 119, 101, 105, 103, 104, 116, 112, 61, 48, 32, 107, 101, 121, | ||
51 | 105, 110, 116, 61, 50, 53, 32, 107, 101, 121, 105, 110, 116, 95, 109, | ||
52 | 105, 110, 61, 49, 51, 32, 115, 99, 101, 110, 101, 99, 117, 116, 61, | ||
53 | 52, 48, 32, 105, 110, 116, 114, 97, 95, 114, 101, 102, 114, 101, 115, | ||
54 | 104, 61, 48, 32, 114, 99, 95, 108, 111, 111, 107, 97, 104, 101, 97, | ||
55 | 100, 61, 52, 48, 32, 114, 99, 61, 99, 98, 114, 32, 109, 98, 116, 114, | ||
56 | 101, 101, 61, 49, 32, 98, 105, 116, 114, 97, 116, 101, 61, 52, 56, 32, | ||
57 | 114, 97, 116, 101, 116, 111, 108, 61, 49, 46, 48, 32, 113, 99, 111, | ||
58 | 109, 112, 61, 48, 46, 54, 48, 32, 113, 112, 109, 105, 110, 61, 48, 32, | ||
59 | 113, 112, 109, 97, 120, 61, 54, 57, 32, 113, 112, 115, 116, 101, 112, | ||
60 | 61, 52, 32, 118, 98, 118, 95, 109, 97, 120, 114, 97, 116, 101, 61, 52, | ||
61 | 56, 32, 118, 98, 118, 95, 98, 117, 102, 115, 105, 122, 101, 61, 50, | ||
62 | 48, 48, 48, 32, 110, 97, 108, 95, 104, 114, 100, 61, 110, 111, 110, | ||
63 | 101, 32, 105, 112, 95, 114, 97, 116, 105, 111, 61, 49, 46, 52, 48, 32, | ||
64 | 97, 113, 61, 49, 58, 49, 46, 48, 48, 0, 128, 0, 0, 10, 60, 101, 136, | ||
65 | 132, 25, 201, 6, 34, 128, 0, 195, 76, 156, 156, 156, 156, 156, 156, | ||
66 | 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 157, 117, | ||
67 | 215, 93, 117, 215, 93, 117, 215, 93, 117, 215, 93, 117, 215, 93, 117, | ||
68 | 215, 93, 117, 215, 93, 117, 215, 95, 255, 222, 238, 80, 168, 38, 192, | ||
69 | 35, 16, 144, 238, 68, 216, 105, 218, 55, 168, 0, 162, 196, 199, 82, | ||
70 | 63, 12, 225, 73, 161, 167, 199, 63, 255, 119, 220, 120, 86, 40, 104, | ||
71 | 195, 139, 254, 42, 238, 91, 250, 153, 255, 255, 85, 225, 81, 64, 72, | ||
72 | 185, 204, 154, 55, 71, 225, 39, 244, 108, 42, 251, 175, 255, 254, 171, | ||
73 | 134, 8, 60, 160, 192, 171, 24, 186, 235, 174, 186, 235, 174, 186, 235, | ||
74 | 174, 186, 235, 254, 68, 82, 105, 120, 193, 48, 3, 216, 90, 173, 113, | ||
75 | 18, 222, 1, 212, 208, 33, 57, 132, 214, 13, 165, 0, 49, 178, 166, 201, | ||
76 | 246, 232, 31, 159, 114, 199, 225, 248, 120, 43, 94, 172, 137, 32, 75, | ||
77 | 180, 11, 247, 223, 215, 60, 255, 225, 240, 208, 6, 179, 209, 69, 200, | ||
78 | 98, 8, 78, 127, 56, 167, 193, 4, 10, 86, 12, 135, 128, 50, 171, 244, | ||
79 | 132, 239, 23, 93, 117, 215, 93, 117, 255, 255, 174, 21, 39, 0, 34, 47, | ||
80 | 146, 109, 95, 99, 121, 145, 164, 252, 245, 215, 93, 127, 218, 223, | ||
81 | 102, 56, 80, 108, 162, 144, 4, 45, 36, 192, 200, 180, 217, 171, 107, | ||
82 | 207, 0, 5, 118, 124, 132, 86, 222, 3, 228, 95, 255, 135, 132, 133, 95, | ||
83 | 63, 201, 94, 237, 216, 117, 215, 93, 253, 52, 167, 211, 72, 160, 150, | ||
84 | 220, 152, 252, 49, 23, 119, 68, 166, 120, 38, 182, 158, 46, 186, 235, | ||
85 | 174, 186, 235, 237, 7, 14, 24, 92, 172, 85, 41, 52, 237, 176, 36, 7, | ||
86 | 36, 243, 235, 141, 132, 30, 250, 171, 62, 170, 183, 14, 146, 109, 247, | ||
87 | 254, 0, 216, 166, 193, 132, 65, 114, 198, 145, 17, 236, 4, 181, 80, | ||
88 | 52, 183, 125, 238, 240, 182, 55, 155, 38, 215, 252, 231, 217, 97, 81, | ||
89 | 252, 12, 81, 121, 32, 222, 64, 100, 123, 224, 117, 17, 49, 226, 133, | ||
90 | 65, 77, 215, 128, 8, 79, 114, 61, 95, 127, 46, 199, 213, 220, 111, | ||
91 | 165, 80, 103, 234, 179, 148, 4, 110, 94, 206, 245, 255, 196, 106, 207, | ||
92 | 10, 148, 0, 134, 53, 178, 28, 75, 239, 243, 54, 131, 72, 65, 84, 194, | ||
93 | 41, 207, 235, 70, 173, 59, 32, 134, 180, 210, 191, 128, 35, 215, 219, | ||
94 | 55, 10, 106, 126, 109, 51, 86, 17, 157, 104, 20, 103, 247, 214, 44, | ||
95 | 196, 132, 32, 28, 171, 255, 255, 206, 255, 213, 147, 97, 133, 76, 214, | ||
96 | 102, 231, 231, 241, 72, 156, 56, 161, 87, 89, 7, 57, 85, 100, 65, 255, | ||
97 | 32, 110, 253, 1, 25, 209, 163, 106, 105, 49, 152, 90, 243, 182, 81, | ||
98 | 195, 130, 157, 24, 201, 118, 229, 255, 196, 106, 39, 10, 138, 240, 68, | ||
99 | 214, 2, 163, 144, 173, 82, 203, 73, 174, 70, 10, 101, 231, 250, 63, | ||
100 | 97, 37, 178, 3, 121, 219, 125, 96, 145, 38, 57, 34, 37, 63, 255, 240, | ||
101 | 160, 68, 109, 118, 202, 61, 227, 203, 210, 102, 142, 153, 173, 76, | ||
102 | 111, 174, 186, 235, 254, 31, 252, 40, 104, 20, 109, 73, 102, 245, 50, | ||
103 | 154, 153, 215, 235, 174, 186, 235, 174, 190, 19, 221, 127, 225, 35, | ||
104 | 195, 124, 193, 179, 16, 239, 119, 251, 25, 126, 181, 143, 140, 216, | ||
105 | 122, 35, 194, 225, 107, 76, 143, 235, 124, 22, 30, 202, 27, 52, 188, | ||
106 | 80, 232, 136, 132, 137, 94, 110, 191, 59, 210, 95, 223, 177, 114, 10, | ||
107 | 191, 252, 37, 187, 154, 7, 140, 177, 57, 255, 61, 186, 4, 194, 206, | ||
108 | 129, 208, 186, 187, 46, 52, 63, 207, 183, 245, 54, 237, 191, 235, 221, | ||
109 | 35, 76, 197, 84, 140, 63, 186, 52, 41, 129, 82, 166, 149, 255, 25, | ||
110 | 149, 23, 231, 53, 175, 219, 243, 232, 67, 11, 191, 252, 37, 252, 130, | ||
111 | 111, 2, 166, 217, 10, 0, 94, 211, 194, 101, 84, 68, 17, 31, 35, 242, | ||
112 | 222, 132, 139, 208, 130, 103, 95, 84, 113, 195, 68, 84, 93, 169, 150, | ||
113 | 64, 204, 207, 71, 253, 211, 174, 141, 133, 58, 135, 205, 35, 27, 187, | ||
114 | 30, 176, 178, 60, 125, 14, 145, 16, 145, 43, 206, 175, 130, 255, 194, | ||
115 | 66, 51, 199, 59, 5, 57, 117, 243, 84, 108, 168, 126, 150, 206, 255, | ||
116 | 93, 135, 142, 157, 191, 20, 156, 122, 213, 80, 172, 179, 98, 143, 80, | ||
117 | 240, 154, 158, 36, 146, 159, 145, 86, 194, 237, 251, 110, 225, 169, | ||
118 | 127, 194, 66, 29, 151, 107, 53, 213, 93, 120, 115, 180, 1, 184, 180, | ||
119 | 21, 41, 249, 151, 77, 200, 172, 235, 159, 179, 35, 35, 123, 180, 189, | ||
120 | 31, 190, 255, 79, 130, 82, 20, 8, 128, 212, 22, 177, 22, 61, 232, 247, | ||
121 | 30, 120, 3, 79, 232, 150, 179, 54, 225, 239, 11, 174, 186, 235, 255, | ||
122 | 183, 177, 182, 20, 52, 2, 228, 166, 105, 102, 193, 76, 2, 71, 210, 89, | ||
123 | 246, 226, 238, 235, 245, 215, 93, 117, 215, 93, 119, 223, 125, 255, | ||
124 | 210, 31, 240, 248, 94, 2, 25, 231, 73, 255, 255, 47, 210, 129, 224, | ||
125 | 115, 207, 22, 18, 209, 12, 2, 92, 233, 134, 237, 191, 192, 43, 214, | ||
126 | 64, 109, 19, 255, 8, 48, 37, 118, 186, 235, 255, 255, 224, 132, 188, | ||
127 | 0, 126, 81, 156, 120, 8, 99, 90, 123, 107, 101, 41, 126, 19, 52, 38, | ||
128 | 229, 238, 98, 61, 176, 47, 32, 11, 119, 32, 54, 137, 225, 215, 93, | ||
129 | 117, 215, 93, 117, 215, 93, 117, 215, 95, 234, 112, 255, 135, 197, | ||
130 | 224, 7, 75, 35, 133, 156, 62, 179, 243, 170, 233, 134, 170, 56, 177, | ||
131 | 31, 4, 254, 52, 151, 134, 30, 112, 37, 243, 126, 6, 143, 41, 153, 143, | ||
132 | 255, 250, 172, 84, 120, 32, 142, 236, 197, 21, 248, 182, 229, 187, | ||
133 | 255, 254, 239, 194, 176, 33, 18, 156, 200, 41, 70, 241, 254, 52, 125, | ||
134 | 104, 216, 72, 212, 245, 255, 238, 69, 191, 248, 75, 128, 27, 108, 204, | ||
135 | 4, 130, 175, 242, 117, 231, 180, 128, 23, 218, 89, 154, 72, 63, 147, | ||
136 | 174, 186, 235, 174, 186, 235, 175, 255, 244, 30, 20, 62, 0, 9, 26, | ||
137 | 140, 152, 187, 140, 173, 72, 149, 57, 9, 16, 162, 250, 87, 66, 43, 56, | ||
138 | 215, 99, 158, 154, 53, 171, 127, 255, 219, 76, 111, 60, 203, 19, 244, | ||
139 | 247, 127, 143, 144, 0, 152, 42, 176, 51, 6, 179, 229, 217, 225, 160, | ||
140 | 149, 17, 207, 16, 87, 78, 248, 9, 225, 95, 163, 21, 113, 70, 213, 129, | ||
141 | 40, 107, 116, 216, 109, 178, 200, 144, 31, 117, 163, 49, 39, 243, 81, | ||
142 | 141, 245, 71, 73, 230, 249, 246, 126, 239, 209, 240, 255, 168, 97, | ||
143 | 180, 45, 192, 178, 117, 74, 198, 219, 174, 10, 140, 240, 22, 146, 16, | ||
144 | 77, 184, 39, 91, 18, 251, 142, 15, 32, 71, 84, 247, 230, 161, 195, | ||
145 | 240, 0, 168, 132, 78, 73, 49, 199, 205, 5, 192, 67, 254, 193, 46, 21, | ||
146 | 175, 76, 229, 19, 0, 26, 100, 168, 43, 230, 37, 9, 66, 51, 3, 90, 66, | ||
147 | 243, 186, 94, 187, 232, 26, 151, 217, 89, 85, 99, 255, 86, 166, 46, | ||
148 | 38, 206, 80, 185, 255, 88, 94, 45, 103, 228, 8, 76, 122, 227, 98, 250, | ||
149 | 34, 184, 114, 238, 200, 171, 26, 49, 98, 139, 255, 103, 87, 173, 64, | ||
150 | 119, 90, 66, 176, 207, 147, 189, 132, 144, 105, 120, 183, 18, 140, | ||
151 | 253, 105, 131, 221, 240, 202, 191, 246, 169, 111, 254, 223, 160, 138, | ||
152 | 73, 34, 149, 138, 238, 62, 184, 175, 27, 224, 184, 253, 44, 134, 172, | ||
153 | 190, 120, 26, 228, 92, 187, 202, 254, 192, 220, 79, 205, 151, 190, | ||
154 | 216, 230, 3, 7, 219, 166, 104, 91, 206, 38, 255, 233, 85, 85, 143, | ||
155 | 136, 231, 102, 196, 227, 158, 181, 26, 17, 82, 208, 205, 91, 9, 69, | ||
156 | 255, 185, 238, 98, 122, 133, 85, 19, 132, 125, 95, 251, 34, 196, 231, | ||
157 | 154, 186, 208, 233, 249, 168, 247, 255, 127, 106, 63, 32, 51, 67, 163, | ||
158 | 1, 190, 176, 66, 92, 198, 212, 84, 186, 39, 254, 119, 31, 56, 251, | ||
159 | 223, 4, 166, 108, 149, 89, 78, 236, 0, 180, 201, 156, 173, 94, 153, | ||
160 | 111, 254, 252, 17, 108, 29, 69, 70, 221, 79, 156, 2, 201, 254, 41, | ||
161 | 118, 45, 169, 255, 216, 93, 195, 83, 174, 18, 107, 125, 167, 192, 226, | ||
162 | 217, 88, 184, 46, 127, 238, 193, 177, 38, 168, 69, 139, 159, 223, 114, | ||
163 | 99, 37, 109, 32, 53, 38, 184, 207, 253, 205, 158, 205, 231, 141, 74, | ||
164 | 171, 76, 139, 140, 193, 242, 246, 180, 56, 178, 144, 18, 162, 41, 16, | ||
165 | 43, 255, 155, 120, 145, 25, 202, 221, 219, 239, 184, 14, 234, 58, 129, | ||
166 | 128, 223, 214, 124, 110, 155, 150, 205, 118, 175, 251, 192, 14, 148, | ||
167 | 58, 73, 44, 180, 15, 29, 201, 184, 122, 56, 103, 137, 231, 0, 45, 144, | ||
168 | 127, 145, 96, 157, 75, 37, 3, 180, 104, 193, 173, 166, 114, 208, 214, | ||
169 | 159, 223, 214, 123, 73, 163, 0, 5, 117, 61, 156, 14, 52, 198, 157, | ||
170 | 135, 213, 215, 211, 130, 136, 185, 173, 120, 160, 245, 142, 245, 169, | ||
171 | 208, 22, 106, 52, 233, 254, 183, 121, 49, 53, 105, 86, 96, 66, 175, | ||
172 | 35, 148, 64, 126, 18, 240, 88, 215, 207, 255, 251, 73, 32, 112, 196, | ||
173 | 160, 73, 215, 74, 223, 186, 240, 6, 64, 7, 80, 27, 252, 60, 91, 228, | ||
174 | 206, 175, 251, 35, 194, 137, 161, 5, 148, 166, 55, 254, 195, 187, 101, | ||
175 | 2, 100, 39, 246, 127, 205, 191, 128, 128, 243, 166, 153, 163, 24, 82, | ||
176 | 210, 161, 152, 149, 209, 204, 101, 111, 187, 252, 105, 224, 236, 86, | ||
177 | 165, 56, 18, 115, 255, 255, 19, 11, 171, 107, 34, 156, 76, 111, 152, | ||
178 | 1, 108, 42, 188, 73, 174, 110, 189, 157, 143, 172, 198, 139, 246, 182, | ||
179 | 99, 88, 234, 237, 171, 127, 161, 133, 33, 241, 63, 39, 31, 194, 101, | ||
180 | 244, 58, 204, 82, 50, 28, 62, 166, 246, 128, 220, 58, 42, 111, 17, 86, | ||
181 | 140, 183, 219, 133, 4, 72, 74, 141, 148, 103, 54, 62, 213, 36, 74, 68, | ||
182 | 137, 87, 255, 208, 253, 117, 215, 93, 117, 215, 93, 117, 255, 255, 8, | ||
183 | 66, 135, 225, 191, 64, 31, 51, 34, 6, 19, 247, 9, 99, 159, 227, 240, | ||
184 | 8, 11, 56, 216, 140, 0, 171, 94, 141, 16, 247, 76, 216, 98, 241, 23, | ||
185 | 172, 125, 190, 96, 61, 54, 112, 80, 180, 192, 176, 239, 166, 82, 195, | ||
186 | 32, 168, 103, 107, 73, 19, 16, 119, 126, 122, 54, 227, 251, 62, 187, | ||
187 | 145, 247, 164, 96, 213, 91, 12, 71, 194, 230, 205, 4, 77, 193, 43, 38, | ||
188 | 167, 48, 98, 200, 67, 194, 185, 211, 85, 240, 127, 235, 140, 66, 34, | ||
189 | 35, 190, 3, 243, 47, 131, 132, 172, 43, 63, 255, 85, 46, 12, 155, 217, | ||
190 | 238, 172, 55, 73, 48, 115, 152, 251, 227, 16, 194, 71, 82, 93, 43, 20, | ||
191 | 25, 8, 144, 50, 139, 168, 52, 255, 242, 75, 9, 170, 96, 249, 57, 6, | ||
192 | 239, 15, 154, 49, 205, 152, 41, 18, 214, 74, 42, 204, 86, 193, 72, | ||
193 | 239, 245, 120, 127, 195, 224, 24, 7, 10, 192, 157, 166, 143, 46, 49, | ||
194 | 16, 103, 240, 10, 28, 252, 128, 38, 98, 217, 40, 152, 86, 240, 248, | ||
195 | 65, 34, 153, 30, 175, 230, 88, 23, 251, 139, 26, 107, 20, 55, 246, | ||
196 | 234, 167, 193, 135, 235, 50, 68, 92, 135, 184, 126, 0, 41, 205, 147, | ||
197 | 8, 129, 210, 235, 224, 31, 154, 244, 105, 117, 255, 253, 224, 104, | ||
198 | 210, 82, 92, 144, 252, 7, 24, 71, 87, 220, 90, 79, 141, 97, 177, 21, | ||
199 | 191, 216, 120, 146, 204, 15, 63, 140, 157, 223, 73, 11, 152, 130, 71, | ||
200 | 124, 161, 189, 225, 253, 132, 239, 73, 84, 11, 55, 230, 109, 209, 166, | ||
201 | 131, 160, 248, 153, 53, 167, 193, 252, 84, 86, 133, 241, 126, 252, | ||
202 | 103, 226, 229, 213, 170, 59, 131, 255, 246, 166, 96, 221, 56, 138, 82, | ||
203 | 119, 81, 126, 210, 136, 228, 36, 142, 8, 148, 27, 191, 220, 34, 22, | ||
204 | 228, 86, 109, 140, 200, 181, 129, 226, 39, 82, 198, 74, 115, 255, 43, | ||
205 | 57, 17, 28, 243, 227, 119, 223, 73, 132, 73, 57, 22, 140, 177, 53, | ||
206 | 246, 255, 143, 75, 122, 68, 86, 182, 39, 217, 212, 20, 152, 234, 175, | ||
207 | 239, 251, 108, 128, 166, 114, 66, 141, 192, 137, 255, 193, 219, 140, | ||
208 | 13, 81, 113, 178, 233, 155, 82, 69, 68, 113, 13, 204, 180, 31, 192, | ||
209 | 12, 70, 64, 60, 68, 247, 212, 6, 130, 174, 179, 151, 13, 188, 29, 109, | ||
210 | 18, 3, 119, 208, 43, 37, 115, 65, 5, 204, 144, 184, 33, 24, 69, 30, | ||
211 | 254, 54, 205, 201, 63, 115, 80, 217, 127, 127, 244, 67, 49, 80, 247, | ||
212 | 168, 139, 249, 83, 255, 123, 114, 1, 170, 237, 67, 99, 234, 219, 144, | ||
213 | 215, 4, 18, 236, 169, 215, 251, 223, 213, 178, 113, 148, 52, 75, 191, | ||
214 | 239, 242, 96, 125, 81, 77, 29, 40, 219, 89, 162, 35, 20, 198, 227, | ||
215 | 120, 31, 248, 154, 52, 64, 85, 194, 230, 91, 22, 142, 6, 104, 173, 3, | ||
216 | 77, 147, 26, 164, 111, 254, 42, 84, 1, 204, 72, 61, 140, 96, 5, 191, | ||
217 | 5, 174, 85, 179, 228, 84, 8, 175, 2, 58, 99, 107, 14, 98, 44, 13, 255, | ||
218 | 46, 67, 245, 94, 70, 125, 53, 90, 241, 209, 237, 160, 203, 225, 219, | ||
219 | 3, 37, 181, 152, 21, 246, 12, 25, 243, 249, 20, 173, 224, 251, 164, | ||
220 | 130, 119, 149, 151, 188, 64, 118, 134, 136, 243, 192, 253, 26, 236, | ||
221 | 17, 244, 3, 6, 161, 56, 241, 241, 227, 58, 192, 119, 65, 2, 85, 69, | ||
222 | 101, 194, 147, 105, 35, 212, 64, 201, 135, 43, 129, 87, 131, 254, 24, | ||
223 | 153, 225, 6, 226, 250, 93, 242, 223, 246, 161, 232, 38, 235, 82, 149, | ||
224 | 186, 208, 131, 255, 224, 119, 239, 223, 128, 8, 91, 254, 167, 223, | ||
225 | 255, 193, 54, 146, 56, 131, 228, 158, 254, 240, 20, 219, 226, 181, | ||
226 | 174, 62, 91, 97, 110, 120, 231, 111, 181, 135, 34, 0, 55, 131, 15, | ||
227 | 194, 73, 33, 218, 198, 76, 123, 70, 176, 25, 60, 252, 123, 173, 180, | ||
228 | 121, 252, 31, 255, 220, 98, 1, 198, 120, 0, 43, 164, 153, 155, 68, 70, | ||
229 | 100, 1, 68, 194, 33, 145, 96, 191, 16, 42, 212, 112, 86, 184, 139, | ||
230 | 195, 63, 221, 241, 194, 72, 146, 175, 1, 192, 89, 134, 143, 188, 80, | ||
231 | 73, 161, 214, 37, 255, 238, 53, 252, 5, 209, 205, 66, 96, 119, 255, 3, | ||
232 | 135, 207, 225, 15, 193, 0, 155, 16, 161, 27, 102, 216, 136, 122, 189, | ||
233 | 255, 93, 117, 215, 255, 255, 194, 65, 87, 125, 223, 120, 99, 44, 240, | ||
234 | 251, 44, 240, 198, 89, 225, 246, 88, 127, 99, 45, 199, 31, 255, 239, | ||
235 | 15, 178, 207, 12, 101, 158, 31, 101, 158, 24, 203, 15, 195, 236, 183, | ||
236 | 199, 255, 199, 225, 140, 183, 143, 255, 247, 135, 217, 103, 134, 50, | ||
237 | 195, 251, 236, 183, 31, 255, 247, 134, 50, 207, 15, 178, 207, 12, 101, | ||
238 | 158, 31, 101, 158, 24, 203, 64, 0, 0, 0, 179, 65, 154, 56, 59, 131, | ||
239 | 107, 152, 241, 64, 0, 64, 43, 20, 0, 4, 2, 190, 82, 5, 192, 0, 247, | ||
240 | 128, 198, 49, 192, 39, 2, 192, 0, 244, 164, 248, 64, 96, 240, 64, 253, | ||
241 | 159, 205, 107, 125, 155, 241, 99, 57, 170, 177, 157, 93, 248, 182, 8, | ||
242 | 109, 152, 126, 10, 240, 110, 177, 6, 248, 127, 240, 66, 43, 128, 99, | ||
243 | 196, 97, 211, 109, 246, 255, 15, 66, 111, 243, 73, 209, 139, 47, 134, | ||
244 | 99, 29, 98, 48, 1, 125, 106, 153, 161, 178, 253, 244, 246, 249, 131, | ||
245 | 47, 164, 243, 35, 56, 252, 184, 75, 220, 168, 36, 246, 188, 21, 127, | ||
246 | 32, 59, 136, 136, 162, 27, 251, 125, 184, 80, 240, 104, 149, 63, 146, | ||
247 | 34, 151, 230, 114, 9, 227, 27, 21, 177, 0, 74, 89, 242, 49, 208, 115, | ||
248 | 240, 219, 227, 245, 103, 207, 211, 115, 8, 63, 2, 158, 55, 17, 226, | ||
249 | 60, 71, 136, 241, 29, 97, 10, 194, 21, 132, 43, 8, 86, 16, 196, 120, | ||
250 | 143, 17, 226, 60, 0, 0, 0, 168, 65, 154, 84, 12, 224, 221, 231, 129, | ||
251 | 36, 38, 44, 176, 156, 92, 6, 185, 112, 11, 92, 114, 7, 113, 149, 193, | ||
252 | 72, 145, 228, 141, 60, 127, 205, 254, 21, 63, 130, 15, 192, 7, 170, | ||
253 | 117, 110, 189, 221, 229, 54, 108, 180, 121, 249, 13, 255, 246, 99, | ||
254 | 133, 13, 192, 72, 185, 113, 236, 236, 105, 199, 251, 34, 10, 8, 193, | ||
255 | 67, 254, 41, 138, 92, 65, 225, 119, 155, 218, 91, 49, 124, 72, 107, | ||
256 | 130, 57, 27, 177, 97, 254, 203, 237, 159, 136, 39, 218, 16, 75, 110, | ||
257 | 35, 42, 240, 11, 80, 206, 48, 189, 1, 147, 138, 63, 9, 220, 40, 66, | ||
258 | 39, 69, 239, 255, 37, 151, 128, 21, 215, 218, 239, 174, 131, 83, 97, | ||
259 | 234, 147, 152, 139, 131, 185, 72, 39, 128, 140, 212, 213, 233, 155, | ||
260 | 255, 252, 61, 12, 164, 199, 246, 126, 48, 158, 247, 251, 17, 144, 94, | ||
261 | 14, 242, 82, 182, 121, 212, 65, 248, 25, 224, 0, 0, 0, 178, 65, 154, | ||
262 | 96, 87, 7, 15, 124, 167, 192, 18, 53, 31, 218, 6, 61, 141, 142, 205, | ||
263 | 92, 19, 19, 230, 174, 168, 39, 229, 227, 2, 0, 10, 183, 113, 149, 63, | ||
264 | 192, 33, 216, 167, 15, 46, 9, 194, 65, 237, 121, 45, 194, 101, 248, | ||
265 | 20, 66, 226, 40, 92, 212, 161, 241, 238, 98, 34, 255, 252, 60, 83, 1, | ||
266 | 63, 20, 186, 196, 19, 128, 31, 102, 153, 100, 123, 224, 20, 114, 141, | ||
267 | 131, 206, 60, 51, 158, 194, 203, 247, 183, 231, 102, 23, 132, 143, 61, | ||
268 | 32, 3, 45, 244, 60, 16, 178, 23, 173, 139, 117, 202, 43, 115, 77, 225, | ||
269 | 30, 169, 193, 69, 83, 167, 122, 34, 225, 89, 115, 17, 17, 127, 252, | ||
270 | 61, 113, 245, 236, 79, 23, 228, 40, 6, 169, 7, 167, 17, 57, 117, 35, | ||
271 | 16, 11, 22, 133, 167, 87, 140, 121, 239, 247, 190, 205, 100, 221, 143, | ||
272 | 232, 90, 43, 151, 59, 7, 215, 105, 70, 45, 255, 62, 105, 143, 190, 3, | ||
273 | 53, 194, 24, 142, 34, 0, 0, 0, 179, 65, 154, 128, 71, 2, 57, 249, 75, | ||
274 | 248, 177, 32, 81, 128, 135, 144, 161, 22, 7, 178, 4, 222, 253, 152, | ||
275 | 69, 227, 177, 153, 255, 238, 253, 116, 5, 64, 33, 150, 0, 44, 80, 105, | ||
276 | 154, 147, 173, 10, 20, 107, 95, 176, 88, 0, 45, 226, 145, 39, 130, | ||
277 | 197, 244, 232, 73, 63, 111, 242, 226, 114, 1, 36, 194, 184, 8, 186, | ||
278 | 247, 21, 130, 0, 32, 141, 65, 35, 67, 126, 2, 249, 243, 225, 57, 91, | ||
279 | 87, 247, 132, 123, 173, 150, 190, 111, 183, 137, 39, 167, 152, 115, | ||
280 | 248, 140, 4, 122, 245, 231, 190, 135, 220, 13, 90, 146, 206, 43, 92, | ||
281 | 154, 19, 138, 155, 201, 89, 120, 3, 24, 115, 44, 221, 231, 129, 54, | ||
282 | 141, 235, 85, 175, 136, 184, 70, 93, 226, 96, 129, 188, 33, 86, 192, | ||
283 | 236, 175, 218, 229, 255, 204, 4, 108, 79, 17, 228, 8, 194, 47, 4, 57, | ||
284 | 43, 99, 132, 137, 155, 13, 255, 26, 175, 110, 223, 191, 40, 142, 179, | ||
285 | 1, 2, 6, 136, 0, 0, 0, 194, 65, 154, 160, 71, 6, 190, 44, 94, 96, 48, | ||
286 | 227, 45, 145, 132, 143, 200, 39, 175, 41, 56, 2, 85, 90, 52, 141, 108, | ||
287 | 37, 167, 137, 196, 159, 240, 168, 17, 247, 135, 244, 17, 9, 4, 251, | ||
288 | 172, 84, 36, 195, 134, 252, 4, 198, 205, 227, 198, 31, 52, 64, 90, | ||
289 | 255, 207, 196, 37, 124, 70, 0, 85, 146, 38, 50, 154, 206, 248, 37, | ||
290 | 104, 141, 18, 45, 51, 251, 254, 239, 48, 220, 0, 33, 2, 237, 5, 20, | ||
291 | 244, 140, 183, 91, 5, 92, 219, 29, 77, 26, 202, 43, 11, 118, 66, 98, | ||
292 | 193, 45, 112, 187, 113, 59, 217, 57, 204, 38, 12, 191, 250, 208, 37, | ||
293 | 196, 10, 224, 140, 49, 200, 67, 126, 11, 119, 45, 252, 62, 12, 4, 21, | ||
294 | 94, 166, 225, 41, 245, 228, 13, 99, 252, 25, 6, 51, 241, 110, 246, | ||
295 | 200, 126, 180, 86, 192, 210, 182, 41, 58, 202, 137, 128, 197, 160, | ||
296 | 158, 202, 159, 239, 202, 154, 101, 163, 143, 119, 235, 65, 93, 245, | ||
297 | 23, 174, 196, 84, 174, 39, 58, 72, 225, 245, 173, 138, 86, 250, 120, | ||
298 | 27, 224, 0, 0, 0, 142, 65, 154, 192, 71, 2, 179, 114, 196, 98, 132, | ||
299 | 121, 125, 240, 152, 59, 30, 12, 199, 225, 7, 6, 235, 232, 46, 155, 71, | ||
300 | 19, 30, 2, 192, 210, 165, 133, 37, 172, 253, 26, 9, 190, 112, 167, | ||
301 | 226, 60, 64, 232, 16, 174, 150, 108, 134, 173, 184, 93, 60, 158, 253, | ||
302 | 173, 195, 145, 236, 39, 148, 176, 38, 110, 234, 96, 1, 153, 116, 166, | ||
303 | 138, 242, 246, 182, 129, 241, 41, 94, 220, 78, 83, 30, 28, 103, 223, | ||
304 | 55, 248, 255, 133, 68, 97, 150, 91, 216, 219, 47, 55, 253, 247, 30, 8, | ||
305 | 53, 18, 250, 202, 8, 66, 192, 92, 17, 199, 124, 43, 114, 211, 2, 186, | ||
306 | 97, 51, 85, 93, 236, 159, 198, 123, 35, 72, 180, 177, 177, 116, 126, | ||
307 | 200, 56, 152, 190, 184, 251, 180, 13, 240, 0, 0, 0, 172, 65, 154, 224, | ||
308 | 220, 10, 205, 33, 17, 115, 113, 223, 97, 66, 123, 88, 177, 225, 111, | ||
309 | 143, 17, 0, 55, 155, 49, 17, 89, 92, 140, 34, 78, 190, 200, 12, 74, | ||
310 | 147, 26, 139, 188, 129, 15, 254, 242, 50, 129, 239, 151, 37, 98, 248, | ||
311 | 0, 94, 87, 77, 175, 86, 4, 116, 45, 66, 214, 162, 61, 99, 27, 127, | ||
312 | 147, 179, 30, 1, 187, 116, 141, 230, 255, 21, 245, 24, 84, 64, 38, | ||
313 | 125, 75, 248, 18, 249, 191, 7, 26, 233, 226, 111, 255, 215, 10, 151, | ||
314 | 5, 155, 82, 0, 125, 189, 81, 183, 51, 124, 63, 248, 80, 108, 1, 0, 88, | ||
315 | 95, 191, 99, 163, 209, 160, 43, 110, 72, 247, 117, 224, 13, 234, 183, | ||
316 | 30, 225, 12, 101, 108, 49, 113, 47, 19, 244, 53, 91, 63, 55, 144, 108, | ||
317 | 8, 201, 106, 103, 230, 21, 197, 173, 237, 108, 80, 140, 74, 109, 116, | ||
318 | 189, 25, 148, 223, 242, 41, 93, 242, 27, 232, 217, 224, 104, 128, 0, | ||
319 | 0, 0, 186, 65, 155, 0, 220, 10, 205, 175, 133, 43, 16, 34, 0, 192, | ||
320 | 135, 54, 189, 189, 200, 125, 206, 235, 108, 6, 116, 18, 246, 85, 235, | ||
321 | 38, 127, 189, 27, 75, 215, 183, 234, 97, 56, 5, 158, 35, 50, 80, 43, | ||
322 | 183, 4, 246, 125, 151, 214, 254, 81, 24, 78, 163, 48, 232, 148, 215, | ||
323 | 100, 136, 145, 24, 117, 201, 57, 76, 88, 36, 236, 211, 252, 223, 250, | ||
324 | 174, 120, 32, 247, 14, 207, 44, 252, 107, 246, 136, 65, 98, 154, 160, | ||
325 | 238, 150, 28, 53, 9, 120, 180, 183, 215, 137, 49, 164, 239, 81, 174, | ||
326 | 107, 194, 61, 136, 134, 184, 36, 45, 62, 255, 2, 215, 154, 105, 101, | ||
327 | 174, 27, 94, 121, 173, 20, 170, 97, 77, 29, 87, 255, 135, 207, 28, 44, | ||
328 | 188, 199, 85, 207, 234, 188, 19, 155, 203, 146, 231, 55, 194, 203, 85, | ||
329 | 99, 108, 96, 184, 2, 22, 18, 77, 214, 61, 49, 209, 100, 173, 232, 163, | ||
330 | 216, 98, 25, 144, 1, 111, 18, 252, 197, 239, 129, 65, 249, 190, 234, | ||
331 | 141, 243, 254, 6, 120, 0, 0, 0, 165, 65, 155, 32, 71, 2, 179, 245, | ||
332 | 133, 11, 232, 173, 213, 8, 21, 9, 5, 57, 230, 2, 56, 148, 20, 189, | ||
333 | 247, 242, 19, 241, 58, 207, 111, 193, 42, 162, 42, 252, 188, 149, 148, | ||
334 | 184, 1, 115, 100, 52, 157, 237, 228, 4, 244, 208, 215, 234, 155, 123, | ||
335 | 241, 56, 147, 97, 151, 191, 4, 32, 132, 167, 224, 71, 95, 159, 248, | ||
336 | 250, 216, 192, 86, 56, 226, 153, 36, 244, 245, 126, 241, 155, 223, | ||
337 | 253, 176, 101, 50, 156, 115, 63, 159, 10, 19, 31, 25, 60, 240, 230, | ||
338 | 255, 58, 159, 193, 1, 122, 223, 2, 13, 152, 78, 0, 123, 221, 125, 87, | ||
339 | 191, 159, 132, 150, 12, 0, 131, 136, 25, 6, 174, 87, 175, 4, 61, 98, | ||
340 | 107, 3, 52, 165, 33, 248, 145, 176, 8, 235, 248, 251, 219, 7, 255, | ||
341 | 228, 160, 196, 237, 151, 27, 94, 233, 195, 128, 22, 245, 179, 65, 168, | ||
342 | 137, 184, 31, 224, 84, 128, 0, 0, 0, 239, 65, 155, 64, 71, 2, 179, | ||
343 | 195, 60, 220, 0, 147, 92, 254, 223, 250, 216, 62, 99, 33, 14, 228, | ||
344 | 126, 77, 255, 175, 224, 128, 94, 27, 218, 114, 225, 255, 127, 190, 19, | ||
345 | 39, 181, 98, 70, 138, 120, 129, 130, 2, 16, 3, 199, 41, 63, 71, 214, | ||
346 | 191, 3, 56, 206, 136, 250, 213, 83, 198, 58, 98, 184, 96, 29, 115, | ||
347 | 161, 214, 92, 173, 70, 96, 99, 69, 192, 239, 175, 178, 206, 34, 43, | ||
348 | 224, 32, 67, 250, 231, 243, 142, 172, 55, 182, 224, 48, 232, 52, 252, | ||
349 | 227, 205, 128, 140, 205, 207, 200, 33, 89, 187, 48, 76, 28, 165, 237, | ||
350 | 101, 55, 193, 71, 85, 133, 142, 116, 119, 13, 109, 175, 94, 118, 19, | ||
351 | 156, 217, 80, 65, 86, 165, 63, 29, 228, 128, 22, 49, 10, 23, 179, 167, | ||
352 | 53, 136, 20, 138, 201, 196, 45, 72, 31, 253, 225, 5, 106, 109, 183, | ||
353 | 125, 246, 32, 191, 97, 202, 53, 135, 148, 199, 52, 249, 233, 48, 130, | ||
354 | 120, 214, 63, 183, 159, 250, 48, 220, 51, 22, 39, 194, 24, 68, 223, | ||
355 | 73, 255, 195, 226, 163, 166, 94, 109, 62, 105, 63, 139, 19, 201, 41, | ||
356 | 189, 193, 50, 208, 165, 224, 3, 242, 155, 135, 70, 113, 109, 61, 242, | ||
357 | 192, 67, 120, 35, 32, 215, 135, 159, 132, 188, 132, 2, 24, 161, 13, | ||
358 | 160, 255, 225, 136, 16, 32, 0, 0, 0, 170, 65, 155, 96, 87, 2, 183, | ||
359 | 102, 224, 89, 165, 0, 17, 238, 159, 109, 76, 41, 228, 55, 213, 34, | ||
360 | 157, 128, 144, 176, 30, 127, 238, 76, 242, 192, 4, 44, 211, 223, 245, | ||
361 | 173, 148, 192, 34, 20, 196, 204, 192, 34, 20, 196, 205, 189, 132, 242, | ||
362 | 154, 4, 205, 221, 76, 92, 8, 107, 104, 15, 137, 74, 246, 226, 113, | ||
363 | 230, 203, 24, 46, 229, 47, 80, 17, 49, 239, 70, 217, 128, 150, 102, | ||
364 | 145, 246, 194, 31, 152, 75, 141, 125, 159, 126, 228, 147, 16, 242, | ||
365 | 248, 68, 21, 226, 57, 97, 26, 210, 252, 252, 37, 249, 169, 76, 62, | ||
366 | 148, 193, 57, 97, 50, 136, 206, 48, 99, 175, 124, 4, 143, 71, 225, 31, | ||
367 | 36, 16, 251, 177, 96, 0, 83, 130, 104, 196, 70, 151, 193, 240, 47, | ||
368 | 252, 64, 184, 9, 141, 180, 48, 1, 111, 37, 142, 101, 228, 71, 220, | ||
369 | 215, 211, 192, 233, 66, 161, 228, 201, 119, 175, 15, 19, 192, 129, 0, | ||
370 | 0, 0, 127, 65, 155, 128, 87, 2, 181, 112, 165, 100, 52, 0, 134, 39, 4, | ||
371 | 108, 206, 82, 180, 11, 82, 210, 68, 0, 117, 69, 199, 175, 246, 80, | ||
372 | 106, 169, 48, 12, 44, 99, 159, 243, 250, 42, 132, 133, 58, 177, 126, | ||
373 | 6, 239, 41, 176, 2, 164, 166, 218, 221, 238, 128, 219, 76, 138, 115, | ||
374 | 249, 158, 39, 10, 248, 67, 30, 222, 246, 41, 191, 222, 183, 216, 90, | ||
375 | 132, 254, 69, 137, 7, 225, 16, 18, 121, 248, 76, 223, 10, 127, 195, | ||
376 | 226, 120, 213, 56, 20, 37, 22, 243, 182, 20, 48, 127, 64, 27, 191, 22, | ||
377 | 40, 234, 35, 104, 50, 11, 117, 184, 42, 34, 139, 71, 129, 143, 172, | ||
378 | 139, 22, 51, 71, 224, 66, 128, 0, 0, 0, 157, 65, 155, 160, 87, 3, 87, | ||
379 | 144, 208, 17, 25, 156, 21, 13, 152, 240, 46, 65, 222, 185, 111, 101, | ||
380 | 9, 24, 120, 214, 205, 93, 143, 83, 63, 153, 77, 63, 21, 54, 26, 185, | ||
381 | 64, 18, 47, 73, 157, 35, 31, 0, 65, 181, 83, 235, 121, 77, 193, 229, | ||
382 | 106, 56, 17, 191, 210, 21, 210, 206, 194, 112, 249, 132, 224, 47, 141, | ||
383 | 126, 113, 60, 115, 244, 200, 32, 20, 182, 254, 35, 18, 229, 202, 223, | ||
384 | 172, 194, 81, 190, 23, 247, 223, 171, 210, 149, 125, 246, 42, 79, 104, | ||
385 | 166, 43, 74, 175, 15, 249, 37, 49, 191, 225, 239, 18, 44, 80, 16, 194, | ||
386 | 64, 40, 115, 240, 153, 189, 161, 242, 150, 9, 163, 244, 255, 26, 164, | ||
387 | 252, 38, 104, 126, 177, 5, 194, 19, 60, 89, 147, 40, 233, 131, 190, | ||
388 | 183, 78, 253, 224, 128, 249, 79, 4, 47, 92, 112, 33, 64, 0, 0, 0, 140, | ||
389 | 65, 155, 192, 87, 6, 250, 195, 247, 155, 192, 36, 253, 125, 156, 248, | ||
390 | 174, 226, 111, 32, 136, 22, 159, 86, 19, 46, 115, 234, 254, 64, 175, | ||
391 | 59, 65, 199, 49, 141, 106, 115, 246, 92, 104, 57, 87, 166, 214, 75, | ||
392 | 157, 238, 178, 147, 0, 46, 226, 68, 185, 89, 192, 111, 52, 103, 173, | ||
393 | 86, 207, 19, 133, 12, 124, 1, 106, 159, 146, 89, 225, 6, 173, 108, | ||
394 | 117, 137, 36, 6, 249, 13, 237, 45, 173, 240, 247, 132, 35, 36, 19, | ||
395 | 243, 97, 11, 37, 21, 17, 97, 51, 91, 229, 254, 30, 41, 189, 243, 240, | ||
396 | 145, 142, 170, 204, 216, 235, 226, 188, 212, 225, 212, 137, 153, 235, | ||
397 | 172, 71, 172, 177, 252, 223, 226, 186, 248, 32, 18, 82, 135, 250, 112, | ||
398 | 91, 114, 223, 129, 14, 0, 0, 0, 159, 65, 155, 224, 87, 2, 181, 102, | ||
399 | 241, 179, 190, 240, 157, 100, 17, 0, 53, 90, 66, 59, 247, 166, 223, | ||
400 | 191, 74, 214, 202, 4, 243, 68, 74, 176, 186, 185, 251, 70, 188, 197, | ||
401 | 132, 204, 239, 96, 12, 34, 87, 141, 51, 8, 241, 229, 137, 230, 94, | ||
402 | 247, 90, 202, 43, 130, 187, 110, 133, 74, 233, 183, 91, 46, 228, 156, | ||
403 | 32, 99, 151, 193, 11, 67, 139, 31, 228, 48, 71, 173, 61, 53, 179, 127, | ||
404 | 255, 146, 132, 159, 246, 255, 251, 16, 24, 142, 255, 235, 207, 188, 8, | ||
405 | 0, 175, 52, 155, 229, 254, 18, 44, 252, 178, 249, 225, 51, 121, 74, | ||
406 | 196, 95, 137, 240, 223, 155, 23, 252, 255, 193, 198, 18, 242, 4, 96, | ||
407 | 4, 57, 106, 121, 146, 247, 230, 42, 175, 199, 85, 224, 156, 103, 10, | ||
408 | 4, 205, 198, 245, 148, 55, 129, 47, 155, 241, 14, 166, 88, 255, 2, 36, | ||
409 | 0, 0, 0, 124, 65, 154, 0, 87, 2, 181, 253, 44, 39, 228, 17, 0, 99, 95, | ||
410 | 101, 95, 124, 67, 216, 204, 130, 141, 43, 87, 123, 46, 119, 95, 149, | ||
411 | 49, 183, 176, 158, 82, 64, 153, 187, 169, 128, 13, 255, 162, 201, 251, | ||
412 | 247, 189, 173, 160, 62, 37, 43, 219, 136, 190, 18, 23, 226, 120, 4, | ||
413 | 121, 24, 189, 191, 225, 10, 216, 162, 85, 203, 163, 180, 113, 226, 77, | ||
414 | 62, 251, 204, 191, 132, 64, 176, 8, 129, 164, 60, 94, 27, 247, 193, | ||
415 | 128, 41, 207, 194, 47, 193, 36, 35, 136, 97, 193, 169, 119, 227, 127, | ||
416 | 244, 2, 32, 4, 110, 35, 132, 176, 176, 64, 129, 60, 33, 106, 95, 133, | ||
417 | 194, 48, 34, 64, 0, 0, 0, 170, 65, 154, 32, 87, 2, 181, 102, 240, 9, | ||
418 | 203, 70, 151, 249, 167, 132, 201, 245, 247, 228, 17, 9, 249, 24, 9, | ||
419 | 145, 5, 223, 207, 64, 183, 242, 130, 143, 200, 45, 58, 79, 124, 64, | ||
420 | 36, 253, 148, 39, 251, 170, 191, 209, 227, 18, 187, 203, 192, 1, 187, | ||
421 | 45, 249, 241, 178, 189, 47, 76, 77, 188, 95, 245, 249, 215, 175, 67, | ||
422 | 133, 147, 4, 150, 165, 153, 54, 144, 11, 212, 55, 219, 251, 92, 188, | ||
423 | 109, 236, 66, 123, 135, 246, 141, 53, 94, 255, 204, 126, 1, 30, 190, | ||
424 | 218, 240, 43, 2, 64, 88, 13, 5, 147, 182, 105, 177, 236, 191, 47, 195, | ||
425 | 37, 4, 158, 248, 212, 175, 96, 104, 194, 57, 36, 13, 194, 102, 201, | ||
426 | 175, 83, 255, 127, 127, 172, 16, 135, 144, 128, 128, 73, 102, 191, | ||
427 | 182, 104, 176, 82, 200, 67, 88, 194, 37, 90, 2, 247, 127, 224, 66, | ||
428 | 125, 1, 58, 249, 252, 252, 35, 254, 92, 8, 176, 0, 0, 0, 190, 65, 154, | ||
429 | 64, 103, 2, 181, 126, 35, 9, 214, 67, 64, 38, 226, 151, 163, 226, 153, | ||
430 | 253, 214, 181, 179, 133, 156, 135, 203, 25, 15, 188, 243, 89, 107, | ||
431 | 116, 253, 179, 75, 32, 89, 190, 0, 64, 50, 242, 11, 72, 190, 220, 37, | ||
432 | 8, 102, 103, 169, 68, 232, 255, 111, 41, 184, 112, 201, 24, 19, 42, | ||
433 | 62, 37, 214, 238, 87, 152, 95, 2, 107, 212, 201, 191, 241, 125, 198, | ||
434 | 21, 25, 166, 122, 130, 3, 58, 50, 8, 207, 4, 99, 170, 38, 248, 123, | ||
435 | 223, 194, 184, 11, 79, 84, 114, 11, 120, 224, 254, 63, 201, 20, 199, | ||
436 | 39, 35, 230, 112, 195, 224, 251, 249, 159, 235, 192, 103, 186, 228, | ||
437 | 221, 190, 196, 89, 110, 141, 168, 240, 222, 161, 163, 246, 76, 110, | ||
438 | 253, 95, 123, 1, 205, 224, 8, 94, 41, 72, 80, 104, 4, 41, 170, 237, | ||
439 | 249, 60, 122, 96, 100, 87, 198, 176, 63, 0, 71, 47, 200, 82, 230, 109, | ||
440 | 195, 222, 38, 190, 239, 135, 248, 120, 66, 60, 177, 159, 95, 208, 4, | ||
441 | 3, 215, 9, 159, 129, 98, 0, 0, 0, 129, 65, 154, 96, 103, 2, 189, 147, | ||
442 | 9, 249, 4, 64, 7, 58, 225, 200, 74, 114, 18, 173, 80, 104, 244, 223, | ||
443 | 213, 214, 206, 42, 216, 191, 207, 249, 151, 169, 149, 66, 119, 186, | ||
444 | 202, 76, 0, 209, 69, 10, 120, 252, 220, 4, 245, 163, 62, 212, 187, | ||
445 | 244, 222, 22, 12, 32, 28, 41, 13, 211, 48, 148, 197, 29, 87, 123, 230, | ||
446 | 135, 155, 5, 255, 0, 225, 226, 117, 155, 252, 3, 0, 225, 89, 236, 125, | ||
447 | 150, 215, 251, 243, 127, 128, 64, 60, 42, 83, 224, 203, 71, 66, 203, | ||
448 | 124, 33, 91, 20, 48, 139, 232, 126, 5, 187, 191, 203, 248, 128, 247, | ||
449 | 144, 104, 18, 158, 105, 103, 255, 129, 227, 66, 56, 76, 252, 11, 16, | ||
450 | 0, 0, 0, 179, 65, 154, 128, 87, 2, 111, 150, 120, 110, 37, 226, 185, | ||
451 | 184, 34, 184, 122, 108, 190, 108, 1, 213, 136, 177, 184, 0, 53, 73, | ||
452 | 102, 81, 224, 0, 0, 64, 27, 49, 127, 58, 174, 167, 22, 103, 255, 12, | ||
453 | 154, 8, 175, 65, 170, 246, 57, 213, 98, 4, 64, 24, 22, 245, 79, 215, | ||
454 | 60, 230, 48, 98, 109, 58, 34, 45, 130, 196, 158, 52, 1, 141, 84, 33, | ||
455 | 152, 148, 70, 229, 184, 63, 178, 144, 255, 249, 245, 121, 184, 4, 196, | ||
456 | 245, 118, 192, 86, 158, 137, 95, 30, 255, 118, 178, 155, 15, 119, 97, | ||
457 | 253, 108, 217, 13, 108, 30, 32, 110, 65, 97, 236, 106, 211, 143, 126, | ||
458 | 171, 246, 1, 128, 144, 94, 2, 34, 218, 111, 207, 204, 171, 173, 71, | ||
459 | 254, 18, 10, 95, 153, 157, 159, 81, 213, 155, 85, 135, 235, 225, 63, | ||
460 | 86, 248, 251, 200, 122, 183, 125, 211, 175, 114, 117, 123, 255, 189, | ||
461 | 136, 27, 20, 17, 223, 253, 71, 252, 249, 252, 71, 136, 224, 107, 128, | ||
462 | 0, 0, 0, 150, 65, 154, 160, 103, 2, 183, 155, 192, 2, 30, 233, 246, | ||
463 | 202, 101, 232, 81, 96, 6, 23, 171, 227, 35, 60, 168, 192, 97, 173, | ||
464 | 242, 16, 45, 158, 50, 28, 25, 69, 55, 252, 120, 20, 132, 8, 21, 142, | ||
465 | 205, 13, 44, 241, 86, 124, 69, 1, 255, 195, 79, 4, 64, 146, 131, 55, | ||
466 | 19, 127, 169, 215, 80, 133, 72, 63, 43, 248, 89, 211, 27, 228, 54, | ||
467 | 241, 241, 101, 130, 206, 228, 63, 2, 91, 10, 81, 169, 196, 61, 158, 7, | ||
468 | 173, 221, 243, 198, 221, 183, 176, 157, 148, 210, 216, 17, 231, 44, | ||
469 | 238, 103, 142, 146, 55, 59, 207, 216, 6, 195, 155, 235, 255, 195, 229, | ||
470 | 218, 230, 58, 172, 15, 235, 225, 226, 119, 8, 61, 26, 71, 76, 46, 38, | ||
471 | 208, 241, 239, 35, 91, 243, 191, 114, 81, 252, 71, 136, 224, 107, 128, | ||
472 | 0, 0, 0, 146, 65, 154, 192, 103, 2, 57, 252, 191, 38, 8, 65, 176, 49, | ||
473 | 2, 48, 71, 128, 50, 95, 3, 134, 120, 190, 0, 91, 154, 22, 208, 170, | ||
474 | 62, 168, 55, 210, 243, 213, 120, 173, 101, 255, 203, 224, 10, 170, | ||
475 | 198, 65, 55, 94, 245, 36, 144, 195, 16, 66, 10, 165, 152, 197, 255, | ||
476 | 254, 30, 132, 235, 254, 61, 255, 153, 78, 121, 252, 206, 112, 248, | ||
477 | 140, 124, 100, 252, 18, 70, 83, 144, 208, 9, 201, 68, 206, 84, 41, 74, | ||
478 | 131, 239, 61, 246, 246, 85, 140, 238, 176, 173, 10, 116, 47, 91, 59, | ||
479 | 221, 229, 38, 2, 81, 207, 150, 254, 204, 37, 119, 134, 126, 234, 176, | ||
480 | 36, 0, 152, 239, 204, 103, 56, 31, 207, 195, 217, 225, 132, 43, 125, | ||
481 | 131, 113, 21, 95, 105, 244, 127, 63, 136, 239, 168, 26, 32, 0, 0, 0, | ||
482 | 165, 65, 154, 224, 87, 6, 190, 83, 224, 1, 218, 159, 240, 88, 229, 55, | ||
483 | 216, 34, 250, 115, 161, 158, 176, 131, 240, 70, 8, 2, 70, 128, 22, | ||
484 | 152, 174, 215, 248, 182, 0, 77, 199, 110, 96, 224, 128, 230, 176, 137, | ||
485 | 193, 41, 126, 176, 110, 4, 40, 32, 30, 48, 191, 26, 152, 174, 191, | ||
486 | 141, 174, 131, 222, 28, 29, 32, 161, 127, 132, 252, 129, 120, 23, 78, | ||
487 | 136, 254, 95, 243, 5, 62, 154, 124, 16, 7, 57, 56, 207, 33, 96, 75, | ||
488 | 77, 245, 92, 66, 197, 106, 62, 205, 236, 165, 69, 11, 74, 150, 124, | ||
489 | 183, 154, 214, 188, 220, 5, 187, 93, 128, 70, 9, 201, 147, 55, 217, | ||
490 | 111, 41, 178, 140, 60, 158, 219, 165, 228, 240, 134, 139, 225, 188, | ||
491 | 119, 199, 191, 82, 77, 130, 242, 147, 251, 250, 255, 184, 63, 211, 41, | ||
492 | 199, 91, 7, 80, 239, 155, 27, 191, 103, 123, 1, 163, 240, 54, 192, 0, | ||
493 | 0, 0, 145, 65, 155, 0, 87, 6, 135, 247, 228, 139, 46, 224, 3, 233, 94, | ||
494 | 198, 82, 128, 75, 0, 17, 102, 68, 109, 63, 35, 64, 31, 4, 50, 0, 0, 3, | ||
495 | 0, 128, 116, 240, 0, 16, 14, 252, 161, 15, 132, 37, 30, 97, 62, 2, | ||
496 | 193, 135, 64, 2, 58, 253, 189, 155, 109, 134, 30, 184, 10, 8, 47, 18, | ||
497 | 8, 153, 249, 190, 126, 49, 222, 87, 231, 204, 127, 52, 41, 244, 244, | ||
498 | 195, 218, 120, 203, 201, 128, 1, 251, 68, 190, 119, 228, 51, 49, 204, | ||
499 | 76, 136, 172, 67, 105, 158, 63, 161, 211, 215, 205, 12, 109, 182, 175, | ||
500 | 148, 152, 3, 218, 62, 72, 2, 207, 88, 15, 200, 156, 60, 73, 54, 59, | ||
501 | 76, 33, 74, 224, 206, 188, 122, 19, 127, 118, 250, 63, 5, 91, 152, 92, | ||
502 | 119, 220, 8, 112, 0, 0, 0, 4, 104, 203, 140, 178 | ||
503 | ]; | ||
504 | |||
505 | var trafLength = 8 + tfdt.length + tfdt.length + trun.length; | ||
506 | var m4s = [ | ||
507 | 8 + mfhd.length + trafLength, // size | ||
508 | 109, 111, 111, 102 // 'moof' | ||
509 | ] | ||
510 | .concat(mfhd) | ||
511 | .concat([ | ||
512 | trafLength, // size | ||
513 | 116, 114, 97, 102 // 'traf' | ||
514 | ].concat(tfhd).concat(tfdt).concat(trun)) | ||
515 | .concat(mdat); |
... | @@ -14,6 +14,7 @@ | ... | @@ -14,6 +14,7 @@ |
14 | <link rel="stylesheet" href="css/main.css"> | 14 | <link rel="stylesheet" href="css/main.css"> |
15 | 15 | ||
16 | <script src="js/vendor/modernizr-2.6.2.min.js"></script> | 16 | <script src="js/vendor/modernizr-2.6.2.min.js"></script> |
17 | <script src="min-m4s.js"></script> | ||
17 | </head> | 18 | </head> |
18 | <body> | 19 | <body> |
19 | <!--[if lt IE 7]> | 20 | <!--[if lt IE 7]> |
... | @@ -60,37 +61,36 @@ | ... | @@ -60,37 +61,36 @@ |
60 | 61 | ||
61 | 62 | ||
62 | function closed() { | 63 | function closed() { |
63 | window.alert("MediaSource Closed."); | 64 | console.log("MediaSource Closed."); |
64 | } | ||
65 | |||
66 | function append(buffer, bytes) { | ||
67 | if ("append" in buffer) { | ||
68 | buffer.append(bytes); | ||
69 | } else if ("appendBuffer" in buffer) { | ||
70 | buffer.appendBuffer(bytes); | ||
71 | } | ||
72 | } | 65 | } |
73 | 66 | ||
67 | var done = false; | ||
74 | function loadFragment() { | 68 | function loadFragment() { |
69 | if (done) { | ||
70 | return; | ||
71 | } | ||
75 | console.log("LOAD FRAGMENT"); | 72 | console.log("LOAD FRAGMENT"); |
73 | /* | ||
76 | var req = new XMLHttpRequest(); | 74 | var req = new XMLHttpRequest(); |
77 | req.responseType = "arraybuffer"; | 75 | req.responseType = "arraybuffer"; |
78 | req.open("GET", "./0.m4s", true); | 76 | req.open("GET", "../fixtures/dash/1-avc1.42c00d.m4s", true); |
77 | */ | ||
79 | 78 | ||
80 | 79 | ||
81 | req.onload = function () { | 80 | //req.onload = function () { |
82 | console.log("FRAGMENT DONE LOADING"); | 81 | console.log("FRAGMENT DONE LOADING"); |
83 | 82 | ||
84 | append(sourceBuffer, new Uint8Array(req.response)); | 83 | sourceBuffer.appendBuffer(new Uint8Array(m4s)); |
85 | video.play(); | 84 | done = true; |
86 | }; | 85 | //}; |
87 | 86 | ||
87 | /* | ||
88 | req.onerror = function () { | 88 | req.onerror = function () { |
89 | window.alert("Could not load fragment."); | 89 | window.alert("Could not load fragment."); |
90 | }; | 90 | }; |
91 | 91 | ||
92 | req.send(); | 92 | req.send(); |
93 | 93 | */ | |
94 | } | 94 | } |
95 | 95 | ||
96 | function loadInit() { | 96 | function loadInit() { |
... | @@ -98,12 +98,12 @@ | ... | @@ -98,12 +98,12 @@ |
98 | console.log("LOAD INIT"); | 98 | console.log("LOAD INIT"); |
99 | var req = new XMLHttpRequest(); | 99 | var req = new XMLHttpRequest(); |
100 | req.responseType = "arraybuffer"; | 100 | req.responseType = "arraybuffer"; |
101 | req.open("GET", "./Header.m4s", true); | 101 | req.open("GET", "../fixtures/dash/init.mp4", true); |
102 | 102 | ||
103 | req.onload = function () { | 103 | req.onload = function () { |
104 | console.log("INIT DONE LOADING"); | 104 | console.log("INIT DONE LOADING"); |
105 | append(sourceBuffer, new Uint8Array(req.response)); | 105 | sourceBuffer.appendBuffer(new Uint8Array(req.response)); |
106 | loadFragment(); | 106 | sourceBuffer.addEventListener('update', loadFragment); |
107 | }; | 107 | }; |
108 | 108 | ||
109 | req.onerror = function () { | 109 | req.onerror = function () { |
... | @@ -117,8 +117,11 @@ | ... | @@ -117,8 +117,11 @@ |
117 | function opened() { | 117 | function opened() { |
118 | 118 | ||
119 | console.log("OPENED"); | 119 | console.log("OPENED"); |
120 | sourceBuffer = ms.addSourceBuffer('video/mp4;codecs="avc1.4D400D"'); | 120 | sourceBuffer = ms.addSourceBuffer('video/mp4;codecs="avc1.42c00d"'); |
121 | 121 | ||
122 | sourceBuffer.addEventListener('updateend', console.log.bind(console)); | ||
123 | sourceBuffer.addEventListener('updatestart', console.log.bind(console)); | ||
124 | sourceBuffer.addEventListener('update', console.log.bind(console)); | ||
122 | loadInit(); | 125 | loadInit(); |
123 | } | 126 | } |
124 | 127 | ||
... | @@ -136,6 +139,9 @@ | ... | @@ -136,6 +139,9 @@ |
136 | 139 | ||
137 | ms.addEventListener('sourceopen', opened, false); | 140 | ms.addEventListener('sourceopen', opened, false); |
138 | ms.addEventListener('sourceclose', closed, false); | 141 | ms.addEventListener('sourceclose', closed, false); |
142 | |||
143 | ms.addEventListener('update', console.log.bind(console)); | ||
144 | ms.addEventListener('updateend', console.log.bind(console)); | ||
139 | } | 145 | } |
140 | load(); | 146 | load(); |
141 | </script> | 147 | </script> | ... | ... |
-
Please register or sign in to post a comment