Version Description
It's safe to update. The plugin is still completely free until version 5.0. Video.js users will notice an updated player design.
Download this release
Release Info
Developer | kylegilman |
Plugin | Video Embed & Thumbnail Generator |
Version | 4.6 |
Comparing to | |
See all releases |
Code changes from version 4.5.5 to 4.6
- css/kgvid_styles.css +266 -62
- css/video-embed-thumbnail-generator_admin.css +9 -3
- js/kgvid_video_embed.js +320 -96
- js/kgvid_video_plugin_admin.js +301 -130
- js/mep-feature-sourcechooser.js +154 -0
- languages/video-embed-thumbnail-generator-es_ES.mo +0 -0
- languages/video-embed-thumbnail-generator-es_ES.po +0 -2378
- readme.txt +57 -327
- video-embed-thumbnail-generator.php +1573 -664
- video-js/font/VideoJS.eot +0 -0
- video-js/font/VideoJS.svg +99 -0
- video-js/font/VideoJS.ttf +0 -0
- video-js/font/VideoJS.woff +0 -0
- video-js/font/vjs.eot +0 -0
- video-js/font/vjs.svg +0 -28
- video-js/font/vjs.ttf +0 -0
- video-js/font/vjs.woff +0 -0
- video-js/kg-video-js-skin.css +81 -1015
- video-js/lang/ar.js +5 -5
- video-js/lang/ba.js +26 -0
- video-js/lang/bg.js +5 -5
- video-js/lang/ca.js +5 -5
- video-js/lang/cs.js +5 -5
- video-js/lang/da.js +26 -0
- video-js/lang/de.js +5 -5
- video-js/lang/es.js +5 -5
- video-js/lang/fi.js +26 -0
- video-js/lang/fr.js +5 -5
- video-js/lang/hr.js +26 -0
- video-js/lang/hu.js +5 -5
- video-js/lang/it.js +5 -5
- video-js/lang/ja.js +5 -5
- video-js/lang/ko.js +5 -5
- video-js/lang/nb.js +26 -0
- video-js/lang/nl.js +13 -13
- video-js/lang/nn.js +26 -0
- video-js/lang/pt-BR.js +6 -6
- video-js/lang/ru.js +5 -5
- video-js/lang/sr.js +26 -0
- video-js/lang/sv.js +26 -0
- video-js/lang/tr.js +5 -5
- video-js/lang/uk.js +5 -5
- video-js/lang/vi.js +5 -5
- video-js/lang/zh-CN.js +6 -6
- video-js/lang/zh-TW.js +6 -6
- video-js/video-js.css +1 -5
- video-js/video-js.swf +0 -0
- video-js/video-quality-selector.js +72 -29
- video-js/video.js +24 -202
css/kgvid_styles.css
CHANGED
@@ -89,7 +89,6 @@ img.kgvid_ios_novideo {
|
|
89 |
}
|
90 |
|
91 |
.kgvid_video_meta {
|
92 |
-
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
93 |
line-height: normal;
|
94 |
color: white;
|
95 |
display: block;
|
@@ -113,34 +112,155 @@ img.kgvid_ios_novideo {
|
|
113 |
visibility: visible;
|
114 |
}
|
115 |
|
|
|
|
|
|
|
|
|
116 |
.kgvid_title {
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
padding-left: 4px;
|
122 |
-
margin: 6px;
|
123 |
-
width: auto;
|
124 |
}
|
125 |
|
126 |
-
.
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
line-height: 1.6em !important;
|
132 |
-
background-color: #999 !important;
|
133 |
-
border: none !important;
|
134 |
-
-moz-border-radius: 5px !important;
|
135 |
-
border-radius: 5px !important;
|
136 |
-
padding: 2px !important;
|
137 |
-
margin: 0px !important;
|
138 |
}
|
139 |
|
140 |
-
.
|
141 |
-
|
142 |
-
|
143 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
144 |
}
|
145 |
|
146 |
.kgvid_below_video {
|
@@ -225,43 +345,41 @@ img.kgvid_ios_novideo {
|
|
225 |
#kgvid-simplemodal-container { color:black; background-color:#000; height:auto; }
|
226 |
#kgvid-simplemodal-container .simplemodal-data {margin-top:-1em; padding:5px;}
|
227 |
#kgvid-simplemodal-container a.modalCloseImg {
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
text-decoration: none;
|
246 |
}
|
247 |
|
248 |
#kgvid-simplemodal-container .kgvid_gallery_nav {
|
249 |
cursor: pointer;
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
text-decoration: none;
|
265 |
}
|
266 |
|
267 |
#kgvid-simplemodal-container .wp-video {
|
@@ -269,17 +387,16 @@ img.kgvid_ios_novideo {
|
|
269 |
}
|
270 |
|
271 |
.kgvid_gallery_prev {
|
272 |
-
|
273 |
-
right: 58px;
|
274 |
}
|
275 |
|
276 |
.kgvid_gallery_next {
|
277 |
-
top: -20px;
|
278 |
right: 25px;
|
279 |
}
|
280 |
|
281 |
#kgvid-simplemodal-container a.modalCloseImg:hover, #kgvid-simplemodal-container .kgvid_gallery_nav:hover {
|
282 |
-
background-color:
|
|
|
283 |
}
|
284 |
|
285 |
.kgvid_gallery_pagination span {
|
@@ -313,6 +430,16 @@ span.kgvid_gallery_pagination_arrow {
|
|
313 |
text-decoration: none;
|
314 |
}
|
315 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
316 |
/* video-quality-selector Video.js plugin styles */
|
317 |
|
318 |
.vjs-res-button span.vjs-control-text {
|
@@ -320,7 +447,12 @@ span.kgvid_gallery_pagination_arrow {
|
|
320 |
}
|
321 |
|
322 |
.vjs-res-button:before {
|
323 |
-
|
|
|
|
|
|
|
|
|
|
|
324 |
}
|
325 |
|
326 |
|
@@ -341,3 +473,75 @@ ul li.vjs-menu-title.vjs-res-menu-title:hover {
|
|
341 |
height: auto;
|
342 |
clip: auto;
|
343 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
}
|
90 |
|
91 |
.kgvid_video_meta {
|
|
|
92 |
line-height: normal;
|
93 |
color: white;
|
94 |
display: block;
|
112 |
visibility: visible;
|
113 |
}
|
114 |
|
115 |
+
.kgvid_video_meta.kgvid_no_title_meta {
|
116 |
+
background: none;
|
117 |
+
}
|
118 |
+
|
119 |
.kgvid_title {
|
120 |
+
font-size: 10pt;
|
121 |
+
padding-left: 4px;
|
122 |
+
margin: 6px;
|
123 |
+
line-height: 23pt;
|
|
|
|
|
|
|
124 |
}
|
125 |
|
126 |
+
.kgvid_meta_icons {
|
127 |
+
position: relative;
|
128 |
+
float: right;
|
129 |
+
margin-top: 5px;
|
130 |
+
margin-right: 5px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
131 |
}
|
132 |
|
133 |
+
.kgvid_jwplayer_meta .kgvid_meta_icons {
|
134 |
+
float: left;
|
135 |
+
margin-left: 5px;
|
136 |
+
}
|
137 |
+
|
138 |
+
.kgvid_meta_icons a {
|
139 |
+
text-decoration: none;
|
140 |
+
border: none;
|
141 |
+
box-shadow: none;
|
142 |
+
}
|
143 |
+
|
144 |
+
.kgvid_meta_icons span {
|
145 |
+
cursor: pointer;
|
146 |
+
color: white;
|
147 |
+
margin-right: 5px;
|
148 |
+
}
|
149 |
+
|
150 |
+
.kgvid_no_title_meta .kgvid_meta_icons span {
|
151 |
+
font-size: 19pt;
|
152 |
+
text-shadow: 1px 1px rgba(20,20,20,0.8);
|
153 |
+
}
|
154 |
+
|
155 |
+
.kgvid_click_trap {
|
156 |
+
display: none;
|
157 |
+
width: 100%;
|
158 |
+
height: 100%;
|
159 |
+
background: none;
|
160 |
+
position: absolute;
|
161 |
+
top: 0;
|
162 |
+
z-index: 102;
|
163 |
+
}
|
164 |
+
|
165 |
+
.kgvid_click_trap:before {
|
166 |
+
content: '\20';
|
167 |
+
}
|
168 |
+
|
169 |
+
.kgvid_share_container {
|
170 |
+
display: none;
|
171 |
+
color: white;
|
172 |
+
top: 32px;
|
173 |
+
padding-top: 18px;
|
174 |
+
padding-bottom: 18px;
|
175 |
+
width: 100%;
|
176 |
+
z-index: 103;
|
177 |
+
position: absolute;
|
178 |
+
/* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#141414+0,141414+100&0.85+65,0+100 */
|
179 |
+
background: -moz-linear-gradient(top, rgba(20,20,20,0.85) 0%, rgba(20,20,20,0.85) 65%, rgba(20,20,20,0) 100%); /* FF3.6+ */
|
180 |
+
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(20,20,20,0.85)), color-stop(65%,rgba(20,20,20,0.85)), color-stop(100%,rgba(20,20,20,0))); /* Chrome,Safari4+ */
|
181 |
+
background: -webkit-linear-gradient(top, rgba(20,20,20,0.85) 0%,rgba(20,20,20,0.85) 65%,rgba(20,20,20,0) 100%); /* Chrome10+,Safari5.1+ */
|
182 |
+
background: -o-linear-gradient(top, rgba(20,20,20,0.85) 0%,rgba(20,20,20,0.85) 65%,rgba(20,20,20,0) 100%); /* Opera 11.10+ */
|
183 |
+
background: -ms-linear-gradient(top, rgba(20,20,20,0.85) 0%,rgba(20,20,20,0.85) 65%,rgba(20,20,20,0) 100%); /* IE10+ */
|
184 |
+
background: linear-gradient(to bottom, rgba(20,20,20,0.85) 0%,rgba(20,20,20,0.85) 65%,rgba(20,20,20,0) 100%); /* W3C */
|
185 |
+
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#d9141414', endColorstr='#00141414',GradientType=0 ); /* IE6-9 */
|
186 |
+
}
|
187 |
+
|
188 |
+
.kgvid_share_container.kgvid_no_title_meta {
|
189 |
+
top: 0;
|
190 |
+
z-index: 102;
|
191 |
+
padding-top: 32px;
|
192 |
+
}
|
193 |
+
|
194 |
+
.kgvid_share_icons {
|
195 |
+
text-align: center;
|
196 |
+
line-height: 26pt;
|
197 |
+
font-size: 22pt;
|
198 |
+
font-family: sans-serif;
|
199 |
+
word-wrap: normal;
|
200 |
+
overflow-wrap: normal;
|
201 |
+
}
|
202 |
+
|
203 |
+
.kgvid_share_icons a {
|
204 |
+
text-decoration: none;
|
205 |
+
border: none;
|
206 |
+
box-shadow: none;
|
207 |
+
}
|
208 |
+
|
209 |
+
.kgvid_share_icons span {
|
210 |
+
font-size: 13pt;
|
211 |
+
line-height: 29pt;
|
212 |
+
width: inherit;
|
213 |
+
height: inherit;
|
214 |
+
margin: 0;
|
215 |
+
padding: 0;
|
216 |
+
}
|
217 |
+
|
218 |
+
.kgvid_share_icons span.dashicons.dashicons-editor-code {
|
219 |
+
font-size: 22pt;
|
220 |
+
}
|
221 |
+
|
222 |
+
.kgvid_share_icons input[type="text"] {
|
223 |
+
font-family: sans-serif !important;
|
224 |
+
font-size: 10pt !important;
|
225 |
+
color: white !important;
|
226 |
+
width: 50% !important;
|
227 |
+
background: #ABACA8 !important;
|
228 |
+
padding: 4px !important;
|
229 |
+
border-radius: 6px !important;
|
230 |
+
border: none !important;
|
231 |
+
display: inline-block !important;
|
232 |
+
}
|
233 |
+
|
234 |
+
.kgvid_share_icons .kgvid_social_icons {
|
235 |
+
margin-top: 8px;
|
236 |
+
font-size: 19pt;
|
237 |
+
}
|
238 |
+
|
239 |
+
.kgvid_share_icons span.dashicons.dashicons-twitter {
|
240 |
+
color: #55acee;
|
241 |
+
font-size: 32pt;
|
242 |
+
}
|
243 |
+
|
244 |
+
span.kgvid_facebook_icon_holder {
|
245 |
+
font-family: sans-serif;
|
246 |
+
position: relative;
|
247 |
+
vertical-align: middle;
|
248 |
+
}
|
249 |
+
|
250 |
+
.kgvid_share_icons span.dashicons.dashicons-facebook {
|
251 |
+
color: #3b5998;
|
252 |
+
font-size: 32pt;
|
253 |
+
}
|
254 |
+
|
255 |
+
.kgvid_share_icons span.dashicons.dashicons-facebook:after {
|
256 |
+
content: "\20";
|
257 |
+
background: white;
|
258 |
+
width: 20pt;
|
259 |
+
height: 21.25pt;
|
260 |
+
position: absolute;
|
261 |
+
left: 9px;
|
262 |
+
top: -2px;
|
263 |
+
z-index: -1;
|
264 |
}
|
265 |
|
266 |
.kgvid_below_video {
|
345 |
#kgvid-simplemodal-container { color:black; background-color:#000; height:auto; }
|
346 |
#kgvid-simplemodal-container .simplemodal-data {margin-top:-1em; padding:5px;}
|
347 |
#kgvid-simplemodal-container a.modalCloseImg {
|
348 |
+
display: inline;
|
349 |
+
box-sizing: border-box;
|
350 |
+
padding: 2px 2px 2px 3px;
|
351 |
+
z-index: 10003;
|
352 |
+
position: absolute;
|
353 |
+
top: -25px;
|
354 |
+
right: -5px;
|
355 |
+
cursor: pointer;
|
356 |
+
text-align: center;
|
357 |
+
font-size: 13px;
|
358 |
+
border-radius: 8px;
|
359 |
+
background-color: rgba(0,0,0,0.5);
|
360 |
+
color: #ccc;
|
361 |
+
font-family: Arial, sans-serif;
|
362 |
+
line-height: 18px;
|
363 |
+
font-weight: 900;
|
364 |
+
text-decoration: none;
|
|
|
365 |
}
|
366 |
|
367 |
#kgvid-simplemodal-container .kgvid_gallery_nav {
|
368 |
cursor: pointer;
|
369 |
+
display: inline-block;
|
370 |
+
padding: 3px 7px 4px 7px;
|
371 |
+
background-color: rgba(0,0,0,0.5);
|
372 |
+
text-align: center;
|
373 |
+
color: white;
|
374 |
+
border-radius: 5px;
|
375 |
+
font-family: Arial, sans-serif;
|
376 |
+
font-size: 16px;
|
377 |
+
font-weight: 900;
|
378 |
+
line-height: 12px;
|
379 |
+
z-index: 10003;
|
380 |
+
position: absolute;
|
381 |
+
text-decoration: none;
|
382 |
+
top: -22px;
|
|
|
383 |
}
|
384 |
|
385 |
#kgvid-simplemodal-container .wp-video {
|
387 |
}
|
388 |
|
389 |
.kgvid_gallery_prev {
|
390 |
+
right: 59px;
|
|
|
391 |
}
|
392 |
|
393 |
.kgvid_gallery_next {
|
|
|
394 |
right: 25px;
|
395 |
}
|
396 |
|
397 |
#kgvid-simplemodal-container a.modalCloseImg:hover, #kgvid-simplemodal-container .kgvid_gallery_nav:hover {
|
398 |
+
background-color: black;
|
399 |
+
box-shadow: 0px 0px 4px #fff;
|
400 |
}
|
401 |
|
402 |
.kgvid_gallery_pagination span {
|
430 |
text-decoration: none;
|
431 |
}
|
432 |
|
433 |
+
.kgvid_temp_thumb {
|
434 |
+
position: absolute;
|
435 |
+
top: 0;
|
436 |
+
left: 0;
|
437 |
+
width: 100%;
|
438 |
+
height: 100%;
|
439 |
+
margin: 0;
|
440 |
+
padding: 0;
|
441 |
+
}
|
442 |
+
|
443 |
/* video-quality-selector Video.js plugin styles */
|
444 |
|
445 |
.vjs-res-button span.vjs-control-text {
|
447 |
}
|
448 |
|
449 |
.vjs-res-button:before {
|
450 |
+
font-family: VideoJs;
|
451 |
+
content: "\f110"; /* Gear icon */
|
452 |
+
}
|
453 |
+
|
454 |
+
.vjs-loading-spinner {
|
455 |
+
z-index: 1;
|
456 |
}
|
457 |
|
458 |
|
473 |
height: auto;
|
474 |
clip: auto;
|
475 |
}
|
476 |
+
|
477 |
+
/* mep-feature-sourcechooser plugin styles */
|
478 |
+
|
479 |
+
.kgvid_wrapper .mejs-controls div.mejs-sourcechooser-button button {
|
480 |
+
background: none;
|
481 |
+
font-family: dashicons;
|
482 |
+
color: white;
|
483 |
+
font-size: 11pt;
|
484 |
+
line-height: 0pt;
|
485 |
+
}
|
486 |
+
|
487 |
+
.kgvid_wrapper .mejs-controls .mejs-sourcechooser-button button:before {
|
488 |
+
content: "\f111";
|
489 |
+
}
|
490 |
+
|
491 |
+
.mejs-container .mejs-controls div.mejs-menu-arrow {
|
492 |
+
display: none;
|
493 |
+
position: absolute;
|
494 |
+
bottom: -7px;
|
495 |
+
left: -8px;
|
496 |
+
width: 0em;
|
497 |
+
height: 0em;
|
498 |
+
margin-bottom: 3em;
|
499 |
+
border-left: 2em solid transparent;
|
500 |
+
border-right: 2em solid transparent;
|
501 |
+
border-top: 1.55em solid #000000;
|
502 |
+
border-top-color: rgba(40, 40, 40, 0.5);
|
503 |
+
}
|
504 |
+
|
505 |
+
div.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector {
|
506 |
+
visibility: inherit;
|
507 |
+
bottom: 17px;
|
508 |
+
right: -28px;
|
509 |
+
width: auto;
|
510 |
+
height: auto;
|
511 |
+
padding: 9px 0 0 0;
|
512 |
+
text-align: center;
|
513 |
+
-webkit-box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2);
|
514 |
+
-moz-box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2);
|
515 |
+
box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2);
|
516 |
+
}
|
517 |
+
|
518 |
+
div.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector span {
|
519 |
+
color: white;
|
520 |
+
padding: 0px 10px 5px 10px;
|
521 |
+
display: block;
|
522 |
+
white-space: nowrap;
|
523 |
+
}
|
524 |
+
|
525 |
+
div.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li {
|
526 |
+
margin: 3px 0 3px 0;
|
527 |
+
padding: 2px 10px 5px 10px;
|
528 |
+
cursor: pointer;
|
529 |
+
}
|
530 |
+
|
531 |
+
div.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li.mejs-sourcechooser-selected {
|
532 |
+
background: rgba(20,20,20,0.8);
|
533 |
+
}
|
534 |
+
|
535 |
+
div.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li:hover {
|
536 |
+
color: #111;
|
537 |
+
background-color: #ffffff;
|
538 |
+
background-color: rgba(255, 255, 255, 0.75);
|
539 |
+
}
|
540 |
+
|
541 |
+
.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li input {
|
542 |
+
display: none;
|
543 |
+
}
|
544 |
+
|
545 |
+
div.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li label {
|
546 |
+
width: auto;
|
547 |
+
}
|
css/video-embed-thumbnail-generator_admin.css
CHANGED
@@ -212,7 +212,6 @@ div.kgvid_chosen_thumbnail_box {
|
|
212 |
|
213 |
div.kgvid_thumbnail_overlay {
|
214 |
width: 100%;
|
215 |
-
height:100%;
|
216 |
background: #fff;
|
217 |
opacity: 0.5;
|
218 |
filter: alpha(opacity = 50); /* required for opacity to work in IE */
|
@@ -268,6 +267,13 @@ font-weight: normal;
|
|
268 |
.kgvid_setting_nearvid div {
|
269 |
margin: 5px;
|
270 |
font-weight: bold;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
271 |
}
|
272 |
|
273 |
.kgvid_htaccess td {
|
@@ -295,13 +301,14 @@ font-weight: normal;
|
|
295 |
}
|
296 |
|
297 |
.kgvid_tooltip:hover span {
|
298 |
-
font-family: Calibri, Tahoma, Geneva, sans-serif;
|
299 |
position: absolute;
|
300 |
left: 1em;
|
301 |
top: 2em;
|
302 |
z-index: 99;
|
303 |
margin-left: 0;
|
304 |
width: 250px;
|
|
|
|
|
305 |
border-radius: 5px 5px;
|
306 |
-moz-border-radius: 5px;
|
307 |
-webkit-border-radius: 5px;
|
@@ -569,7 +576,6 @@ td.media-icon img {
|
|
569 |
|
570 |
.kgvid_queue_message {
|
571 |
font-size: 129%;
|
572 |
-
margin-left: 10px;
|
573 |
color: #298CBA;
|
574 |
}
|
575 |
|
212 |
|
213 |
div.kgvid_thumbnail_overlay {
|
214 |
width: 100%;
|
|
|
215 |
background: #fff;
|
216 |
opacity: 0.5;
|
217 |
filter: alpha(opacity = 50); /* required for opacity to work in IE */
|
267 |
.kgvid_setting_nearvid div {
|
268 |
margin: 5px;
|
269 |
font-weight: bold;
|
270 |
+
white-space: nowrap;
|
271 |
+
|
272 |
+
}
|
273 |
+
|
274 |
+
.kgvid_setting_nearvid span {
|
275 |
+
display: inline-block;
|
276 |
+
width: 33%;
|
277 |
}
|
278 |
|
279 |
.kgvid_htaccess td {
|
301 |
}
|
302 |
|
303 |
.kgvid_tooltip:hover span {
|
|
|
304 |
position: absolute;
|
305 |
left: 1em;
|
306 |
top: 2em;
|
307 |
z-index: 99;
|
308 |
margin-left: 0;
|
309 |
width: 250px;
|
310 |
+
font-weight: normal;
|
311 |
+
white-space: normal;
|
312 |
border-radius: 5px 5px;
|
313 |
-moz-border-radius: 5px;
|
314 |
-webkit-border-radius: 5px;
|
576 |
|
577 |
.kgvid_queue_message {
|
578 |
font-size: 129%;
|
|
|
579 |
color: #298CBA;
|
580 |
}
|
581 |
|
js/kgvid_video_embed.js
CHANGED
@@ -1,29 +1,71 @@
|
|
1 |
kgvid_video_vars = {};
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
jQuery(document).ready(kgvid_document_ready());
|
|
|
4 |
|
5 |
function kgvid_document_ready() {
|
6 |
|
7 |
-
jQuery('.kgvid_videodiv').each(function(){ //setup individual videos
|
|
|
8 |
var video_vars = jQuery(this).data('kgvid_video_vars');
|
9 |
-
|
10 |
-
|
|
|
|
|
|
|
|
|
11 |
}
|
12 |
|
13 |
-
|
|
|
|
|
|
|
14 |
|
15 |
});
|
16 |
|
|
|
|
|
|
|
|
|
17 |
jQuery('.kgvid_gallerywrapper').each(function(){ //setup gallery thumbnails
|
18 |
|
19 |
var gallery_id = this.id;
|
20 |
kgvid_resize_gallery_play_button(gallery_id);
|
21 |
jQuery(window).resize( function(){ kgvid_resize_gallery_play_button(gallery_id) } );
|
22 |
-
|
23 |
});
|
24 |
|
25 |
}
|
26 |
|
|
|
|
|
|
|
|
|
|
|
27 |
function kgvid_SetVideo(id) { //for galleries
|
28 |
|
29 |
//set the viewport meta tag so the gallery fits in iOS
|
@@ -60,7 +102,7 @@ function kgvid_SetVideo(id) { //for galleries
|
|
60 |
minHeight:frame_height,
|
61 |
autoResize: false,
|
62 |
overlayClose:true,
|
63 |
-
closeHTML:'<a class="modalCloseImg simplemodal-close" title="Close"
|
64 |
zIndex:10000,
|
65 |
onShow: function(dialog) {
|
66 |
|
@@ -123,12 +165,12 @@ function kgvid_SetVideo(id) { //for galleries
|
|
123 |
jQuery('#kgvid_popup_video_holder_'+id).html(popup_code);
|
124 |
jQuery('#video_'+id+'_div').data('kgvid_video_vars', video_vars);
|
125 |
|
126 |
-
if ( video_vars.player_type == "
|
127 |
swfobject.embedSWF(video_vars.swfurl, 'video_'+id, video_vars.width, video_vars.height, '10.1.0', video_vars.expressinstallswfurl, video_vars.flashvars, video_vars.params);
|
128 |
}
|
129 |
|
130 |
jQuery.modal.setContainerDimensions();
|
131 |
-
kgvid_setup_video(id);
|
132 |
jQuery.modal.setPosition();
|
133 |
|
134 |
dialog.wrap.css('overflow', 'hidden'); //disable scroll bars
|
@@ -160,7 +202,8 @@ function kgvid_SetVideo(id) { //for galleries
|
|
160 |
}, false);
|
161 |
}//end if flash or silverlight
|
162 |
else { mediaElement.play(); }
|
163 |
-
}
|
|
|
164 |
});
|
165 |
}//end if WordPress Default
|
166 |
}//end check to make sure video still needs to load
|
@@ -198,10 +241,34 @@ function kgvid_video_gallery_end_action(id, action) {
|
|
198 |
}
|
199 |
}
|
200 |
|
201 |
-
function
|
202 |
jQuery('#'+this.id()+' > .vjs-poster').fadeOut();
|
203 |
}
|
204 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
205 |
function kgvid_setup_video(id) {
|
206 |
|
207 |
var video_vars = jQuery('#video_'+id+'_div').data('kgvid_video_vars');
|
@@ -209,11 +276,13 @@ function kgvid_setup_video(id) {
|
|
209 |
if ( typeof (jQuery) == 'function' ) { jQuery.fn.fitVids=function(){}; }; //disable fitvids
|
210 |
|
211 |
var iOS = ( navigator.userAgent.match(/(iPad|iPhone|iPod)/i) ? true : false );
|
212 |
-
if (iOS && video_vars.player_type == "
|
213 |
|
214 |
jQuery('#video_'+id+'_div').prepend(jQuery('#video_'+id+'_watermark'));
|
215 |
jQuery('#video_'+id+'_watermark').attr('style', ''); //shows the hidden watermark div
|
216 |
jQuery('#video_'+id+'_div').prepend(jQuery('#video_'+id+'_meta'));
|
|
|
|
|
217 |
jQuery('#video_'+id+'_meta').attr('style', ''); //shows the hidden meta div
|
218 |
if ( video_vars.autoplay == "true" ) { jQuery('#video_'+id+'_meta').removeClass('kgvid_video_meta_hover'); }
|
219 |
|
@@ -234,11 +303,11 @@ function kgvid_setup_video(id) {
|
|
234 |
player.on('loadedmetadata', function(){
|
235 |
|
236 |
var text_tracks = player.textTracks();
|
237 |
-
var
|
238 |
|
239 |
-
if (
|
240 |
jQuery(text_tracks).each(function(index, track) {
|
241 |
-
if (
|
242 |
});
|
243 |
}
|
244 |
|
@@ -248,21 +317,39 @@ function kgvid_setup_video(id) {
|
|
248 |
});
|
249 |
|
250 |
player.on('play', function kgvid_play_start(){
|
251 |
-
player.off('timeupdate',
|
252 |
if ( video_vars.meta ) {
|
253 |
-
|
254 |
-
function(){
|
255 |
-
jQuery('#video_'+id+'_meta').addClass('kgvid_video_meta_hover');
|
256 |
-
},
|
257 |
-
function(){
|
258 |
-
jQuery('#video_'+id+'_meta').removeClass('kgvid_video_meta_hover');
|
259 |
-
}
|
260 |
-
);
|
261 |
jQuery('#video_'+id+'_meta').removeClass('kgvid_video_meta_hover');
|
262 |
}
|
263 |
if ( video_vars.autoplay == "true" ) { jQuery('#video_'+id+' > .vjs-control-bar').removeClass('vjs-fade-in'); }
|
264 |
if ( video_vars.endofvideooverlay != "" ) { jQuery('#video_'+id+' > .vjs-poster').hide(); }
|
265 |
kgvid_video_counter(id, 'play');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
266 |
});
|
267 |
|
268 |
player.on('ended', function kgvid_play_end(){
|
@@ -273,7 +360,7 @@ function kgvid_setup_video(id) {
|
|
273 |
'background-image':'url('+video_vars.endofvideooverlay+')'
|
274 |
}).fadeIn();
|
275 |
|
276 |
-
setTimeout(function() { player.on('timeupdate',
|
277 |
|
278 |
}
|
279 |
if ( jQuery('#kgvid_video_gallery_thumb_'+id).data('gallery_end') != "" && jQuery('#kgvid_video_gallery_thumb_'+id).data('gallery_end') != null ) {
|
@@ -308,10 +395,13 @@ function kgvid_setup_video(id) {
|
|
308 |
}
|
309 |
}
|
310 |
|
311 |
-
if (
|
312 |
-
|
313 |
-
|
314 |
-
|
|
|
|
|
|
|
315 |
}
|
316 |
|
317 |
if ( fullScreenApi.supportsFullScreen == false ) {
|
@@ -327,46 +417,88 @@ function kgvid_setup_video(id) {
|
|
327 |
|
328 |
});
|
329 |
|
330 |
-
player.on( 'changeRes', function() {
|
331 |
-
if ( jQuery('#video_'+id).hasClass('vjs-has-started') == true ) {
|
332 |
-
var poster = jQuery('#video_'+id+' video').attr('poster');
|
333 |
-
jQuery('#video_'+id+' video').removeAttr('poster'); //prevents poster from showing during resolution switch
|
334 |
-
player.on ( 'ended', function() { jQuery('#video_'+id+' video').attr('poster', poster); } );
|
335 |
-
}
|
336 |
-
});
|
337 |
-
|
338 |
if ( video_vars.autoplay == "true" && player.paused() ) { player.play(); }
|
339 |
|
340 |
} //end if Video.js
|
341 |
|
342 |
-
if ( video_vars.player_type == "Strobe Media Playback" || video_vars.player_type == "WordPressDefault" ) {
|
343 |
-
|
344 |
-
jQuery('#video_'+id+'_div').hover(
|
345 |
-
function(){
|
346 |
-
jQuery('#video_'+id+'_meta').addClass('kgvid_video_meta_hover');
|
347 |
-
},
|
348 |
-
function(){
|
349 |
-
jQuery('#video_'+id+'_meta').removeClass('kgvid_video_meta_hover');
|
350 |
-
}
|
351 |
-
);
|
352 |
-
} //end if Strobe Media Playback
|
353 |
-
|
354 |
if ( video_vars.player_type == "WordPressDefault" ) {
|
355 |
|
356 |
-
player = jQuery('#video_'+id+'_div video');
|
|
|
357 |
|
358 |
player.on('loadedmetadata', function() {
|
|
|
|
|
|
|
|
|
|
|
359 |
if ( video_vars.set_volume != "" ) { player[0].volume = video_vars.set_volume; }
|
360 |
if ( video_vars.mute == "true" ) { player[0].setMuted(true); }
|
361 |
jQuery('#video_'+id+'_div .mejs-container').append(jQuery('#video_'+id+'_watermark'));
|
362 |
-
});
|
363 |
|
364 |
-
|
365 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
366 |
});
|
367 |
|
368 |
player.on('play', function(){
|
|
|
|
|
|
|
369 |
kgvid_video_counter(id, 'play');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
370 |
});
|
371 |
|
372 |
player.on('ended', function(){
|
@@ -393,7 +525,8 @@ function kgvid_setup_video(id) {
|
|
393 |
} //end if WordPress Default
|
394 |
|
395 |
if ( video_vars.player_type == "JWPlayer" ) {
|
396 |
-
player_id = jQuery('#video_'+id+'_div').children('div[id^="jwplayer"]').attr('id');
|
|
|
397 |
var player = jwplayer(player_id);
|
398 |
|
399 |
if ( video_vars.set_volume != "" ) { player.setVolume(Math.round(video_vars.set_volume*100)); }
|
@@ -403,17 +536,28 @@ function kgvid_setup_video(id) {
|
|
403 |
kgvid_video_counter(id, 'play');
|
404 |
|
405 |
if ( video_vars.meta ) {
|
406 |
-
|
407 |
-
function(){
|
408 |
-
jQuery('#video_'+id+'_meta').addClass('kgvid_video_meta_hover');
|
409 |
-
},
|
410 |
-
function(){
|
411 |
-
jQuery('#video_'+id+'_meta').removeClass('kgvid_video_meta_hover');
|
412 |
-
}
|
413 |
-
);
|
414 |
jQuery('#video_'+id+'_meta').removeClass('kgvid_video_meta_hover');
|
415 |
}
|
416 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
417 |
});
|
418 |
|
419 |
player.onComplete( function() {
|
@@ -437,6 +581,7 @@ function kgvid_setup_video(id) {
|
|
437 |
kgvid_resize_video(id);
|
438 |
jQuery(window).resize( function(){ kgvid_resize_video(id) } );
|
439 |
}
|
|
|
440 |
}
|
441 |
|
442 |
function kgvid_resize_video(id) {
|
@@ -452,7 +597,7 @@ function kgvid_resize_video(id) {
|
|
452 |
var set_height = video_vars.height;
|
453 |
var aspect_ratio = Math.round(set_height/set_width*1000)/1000
|
454 |
var reference_div = jQuery('#kgvid_'+id+'_wrapper').parent();
|
455 |
-
if ( reference_div.is('body') ) { parent_width = window.innerWidth; }
|
456 |
else if ( reference_div.attr('id') == 'kgvid_popup_video_holder_'+id ) { //if it's a pop-up video
|
457 |
var window_width = jQuery(window).width();
|
458 |
var window_height = jQuery(window).height();
|
@@ -474,7 +619,10 @@ function kgvid_resize_video(id) {
|
|
474 |
set_width = Math.round(set_height / aspect_ratio);
|
475 |
}
|
476 |
|
477 |
-
if (
|
|
|
|
|
|
|
478 |
var player = videojs('video_'+id);
|
479 |
player.width(set_width).height(set_height);
|
480 |
|
@@ -492,46 +640,59 @@ function kgvid_resize_video(id) {
|
|
492 |
}
|
493 |
}
|
494 |
else { jQuery('#kgvid_'+id+'_wrapper .vjs-big-play-button').removeAttr('style'); }
|
495 |
-
|
496 |
-
if ( video_vars.auto_res == 'automatic' && player.availableRes !== undefined ) {
|
497 |
-
var resolutions = player.availableRes;
|
498 |
-
var resNumbers = [];
|
499 |
-
jQuery.each(resolutions, function(){
|
500 |
-
if ( this[0] != undefined && !isNaN(parseInt(this[0]['data-res'])) ) {
|
501 |
-
resNumbers.push(parseInt(this[0]['data-res']));
|
502 |
-
}
|
503 |
-
});
|
504 |
-
var current_resolution = parseInt(player.getCurrentRes());
|
505 |
-
|
506 |
-
if ( !isNaN(current_resolution) ) {
|
507 |
-
if ( window.devicePixelRatio != undefined ) { var pixel_height = set_height * window.devicePixelRatio; } //don't shortchange retina displays
|
508 |
-
else { pixel_height = set_height; }
|
509 |
-
var res_options = jQuery.map(resNumbers, function(n) {
|
510 |
-
if ( n >= pixel_height ) { return n; }
|
511 |
-
});
|
512 |
-
var set_res = Math.min.apply(Math,res_options);
|
513 |
-
if ( set_res != current_resolution && !jQuery('#video_'+id).hasClass('vjs-fullscreen') ) {
|
514 |
-
player.changeRes(set_res+'p');
|
515 |
-
}
|
516 |
-
if ( jQuery('#video_'+id).hasClass('vjs-has-started') == false ) {
|
517 |
-
if ( player.muted() == true ) { player.muted(false); player.muted(true); } // reset volume and mute otherwise player doesn't display properly
|
518 |
-
if ( player.volume() != 1 ) {
|
519 |
-
var current_volume = player.volume();
|
520 |
-
player.volume(1);
|
521 |
-
player.volume(current_volume);
|
522 |
-
}
|
523 |
-
}
|
524 |
-
}
|
525 |
-
}
|
526 |
-
|
527 |
}
|
528 |
-
|
|
|
529 |
jQuery('#video_'+id+'_div').height(set_height);
|
530 |
jQuery('#video_'+id).attr('width',set_width).attr('height',set_height);
|
531 |
jQuery('#video_'+id+'_html5_api').attr('width',set_width).attr('height',set_height);
|
532 |
}
|
|
|
533 |
if ( video_vars.player_type == "WordPressDefault" ) {
|
534 |
jQuery('#kgvid_'+id+'_wrapper').find('.wp-video').attr('style', 'width:'+set_width+'px; height:'+set_height+'px;');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
535 |
}
|
536 |
|
537 |
var meta = jQuery('#kgvid_video_gallery_thumb_'+id).data('meta');
|
@@ -620,6 +781,14 @@ function kgvid_video_counter(id, event) {
|
|
620 |
else if (typeof _gaq != "undefined") { _gaq.push(["_trackEvent", "Videos", kgvidL10n_frontend.playstart, title]); }
|
621 |
|
622 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
623 |
if ( event == "end" ) {
|
624 |
if (video_vars.countable) { //video is in the db
|
625 |
changed = true;
|
@@ -668,3 +837,58 @@ function kgvid_switch_gallery_page(obj, post_action) {
|
|
668 |
}, "json");
|
669 |
|
670 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
kgvid_video_vars = {};
|
2 |
|
3 |
+
jQuery('.kgvid_videodiv').each(function(){ //setup individual videos. WordPress Default has its own success callback
|
4 |
+
|
5 |
+
var video_vars = jQuery(this).data('kgvid_video_vars');
|
6 |
+
|
7 |
+
if ( video_vars.player_type == "Video.js" ) {
|
8 |
+
|
9 |
+
var videojs_options = { "html5": { "nativeTextTracks" : false }, "language": video_vars.locale };
|
10 |
+
if ( video_vars.resize == "true" ) {
|
11 |
+
videojs_options.fluid = true;
|
12 |
+
}
|
13 |
+
if ( video_vars.nativecontrolsfortouch == "true" ) {
|
14 |
+
videojs_options.nativeControlsForTouch = true;
|
15 |
+
}
|
16 |
+
if ( video_vars.enable_resolutions_plugin == "true" ) {
|
17 |
+
videojs_options.plugins = { "resolutionSelector" : { "force_types" : ["video/mp4"] } };
|
18 |
+
if ( video_vars.default_res ) {
|
19 |
+
videojs_options.plugins.resolutionSelector.default_res = video_vars.default_res;
|
20 |
+
}
|
21 |
+
}
|
22 |
+
|
23 |
+
videojs('video_'+video_vars.id, videojs_options ).ready(function(){ kgvid_setup_video(video_vars.id); });
|
24 |
+
}
|
25 |
+
});
|
26 |
+
|
27 |
jQuery(document).ready(kgvid_document_ready());
|
28 |
+
jQuery(window).load(kgvid_window_load());
|
29 |
|
30 |
function kgvid_document_ready() {
|
31 |
|
32 |
+
jQuery('.kgvid_videodiv').each(function(){ //setup individual videos. WordPress Default has its own success callback
|
33 |
+
|
34 |
var video_vars = jQuery(this).data('kgvid_video_vars');
|
35 |
+
|
36 |
+
if ( video_vars.player_type == "JWPlayer" ) {
|
37 |
+
var player_id = jQuery('#video_'+video_vars.id+'_div').children('div[id^="jwplayer"]').attr('id');
|
38 |
+
player_id = player_id.replace('_wrapper', ''); //Flash JW Players have wrapper in the id
|
39 |
+
var player = jwplayer(player_id);
|
40 |
+
player.onReady( kgvid_setup_video(video_vars.id) );
|
41 |
}
|
42 |
|
43 |
+
if ( video_vars.player_type == "StrobeMediaPlayback" ) {
|
44 |
+
swfobject.embedSWF(video_vars.swfurl, 'video_'+video_vars.id, video_vars.width, video_vars.height, '10.1.0', video_vars.expressinstallswfurl, video_vars.flashvars, video_vars.params);
|
45 |
+
kgvid_setup_video(video_vars.id);
|
46 |
+
}
|
47 |
|
48 |
});
|
49 |
|
50 |
+
}
|
51 |
+
|
52 |
+
function kgvid_window_load() {
|
53 |
+
|
54 |
jQuery('.kgvid_gallerywrapper').each(function(){ //setup gallery thumbnails
|
55 |
|
56 |
var gallery_id = this.id;
|
57 |
kgvid_resize_gallery_play_button(gallery_id);
|
58 |
jQuery(window).resize( function(){ kgvid_resize_gallery_play_button(gallery_id) } );
|
59 |
+
setTimeout(function(){ kgvid_resize_gallery_play_button(gallery_id) }, 200);
|
60 |
});
|
61 |
|
62 |
}
|
63 |
|
64 |
+
function kgvid_mejs_success(mediaElement, domObject) {
|
65 |
+
var id = jQuery(domObject).parents('.kgvid_videodiv').data('id');
|
66 |
+
kgvid_setup_video(id);
|
67 |
+
}
|
68 |
+
|
69 |
function kgvid_SetVideo(id) { //for galleries
|
70 |
|
71 |
//set the viewport meta tag so the gallery fits in iOS
|
102 |
minHeight:frame_height,
|
103 |
autoResize: false,
|
104 |
overlayClose:true,
|
105 |
+
closeHTML:'<a class="modalCloseImg simplemodal-close" title="Close"><span class="dashicons dashicons-no-alt"></span></a>',
|
106 |
zIndex:10000,
|
107 |
onShow: function(dialog) {
|
108 |
|
165 |
jQuery('#kgvid_popup_video_holder_'+id).html(popup_code);
|
166 |
jQuery('#video_'+id+'_div').data('kgvid_video_vars', video_vars);
|
167 |
|
168 |
+
if ( video_vars.player_type == "StrobeMediaPlayback" ) {
|
169 |
swfobject.embedSWF(video_vars.swfurl, 'video_'+id, video_vars.width, video_vars.height, '10.1.0', video_vars.expressinstallswfurl, video_vars.flashvars, video_vars.params);
|
170 |
}
|
171 |
|
172 |
jQuery.modal.setContainerDimensions();
|
173 |
+
setTimeout(function() { kgvid_setup_video(id); }, 0);
|
174 |
jQuery.modal.setPosition();
|
175 |
|
176 |
dialog.wrap.css('overflow', 'hidden'); //disable scroll bars
|
202 |
}, false);
|
203 |
}//end if flash or silverlight
|
204 |
else { mediaElement.play(); }
|
205 |
+
},
|
206 |
+
features : [ 'playpause', 'progress', 'volume', 'tracks', 'sourcechooser', 'fullscreen' ]
|
207 |
});
|
208 |
}//end if WordPress Default
|
209 |
}//end check to make sure video still needs to load
|
241 |
}
|
242 |
}
|
243 |
|
244 |
+
function kgvid_timeupdate_poster() {
|
245 |
jQuery('#'+this.id()+' > .vjs-poster').fadeOut();
|
246 |
}
|
247 |
|
248 |
+
function kgvid_add_hover(id) {
|
249 |
+
|
250 |
+
jQuery('#video_'+id+'_div').hover(
|
251 |
+
function(){
|
252 |
+
jQuery('#video_'+id+'_meta').addClass('kgvid_video_meta_hover');
|
253 |
+
},
|
254 |
+
function(){
|
255 |
+
jQuery('#video_'+id+'_meta').removeClass('kgvid_video_meta_hover');
|
256 |
+
}
|
257 |
+
);
|
258 |
+
|
259 |
+
jQuery('#video_'+id+'_div').focus(
|
260 |
+
function(){
|
261 |
+
jQuery('#video_'+id+'_meta').addClass('kgvid_video_meta_hover');
|
262 |
+
}
|
263 |
+
)
|
264 |
+
.focusout(
|
265 |
+
function(){
|
266 |
+
jQuery('#video_'+id+'_meta').removeClass('kgvid_video_meta_hover');
|
267 |
+
}
|
268 |
+
);
|
269 |
+
|
270 |
+
}
|
271 |
+
|
272 |
function kgvid_setup_video(id) {
|
273 |
|
274 |
var video_vars = jQuery('#video_'+id+'_div').data('kgvid_video_vars');
|
276 |
if ( typeof (jQuery) == 'function' ) { jQuery.fn.fitVids=function(){}; }; //disable fitvids
|
277 |
|
278 |
var iOS = ( navigator.userAgent.match(/(iPad|iPhone|iPod)/i) ? true : false );
|
279 |
+
if (iOS && video_vars.player_type == "StrobeMediaPlayback" ) { video_vars.player_type = "Video.js"; }
|
280 |
|
281 |
jQuery('#video_'+id+'_div').prepend(jQuery('#video_'+id+'_watermark'));
|
282 |
jQuery('#video_'+id+'_watermark').attr('style', ''); //shows the hidden watermark div
|
283 |
jQuery('#video_'+id+'_div').prepend(jQuery('#video_'+id+'_meta'));
|
284 |
+
jQuery('#video_'+id+'_embed, #click_trap_'+id).appendTo('#video_'+id+'_div');
|
285 |
+
jQuery('#click_trap_'+id).on('click', function(){ kgvid_share_icon_click(id); });
|
286 |
jQuery('#video_'+id+'_meta').attr('style', ''); //shows the hidden meta div
|
287 |
if ( video_vars.autoplay == "true" ) { jQuery('#video_'+id+'_meta').removeClass('kgvid_video_meta_hover'); }
|
288 |
|
303 |
player.on('loadedmetadata', function(){
|
304 |
|
305 |
var text_tracks = player.textTracks();
|
306 |
+
var track_elements = player.options_.tracks;
|
307 |
|
308 |
+
if ( track_elements != null ) {
|
309 |
jQuery(text_tracks).each(function(index, track) {
|
310 |
+
if ( track_elements[index].default == true && track.mode != 'showing' ) { player.textTracks()[index].mode = 'showing'; }
|
311 |
});
|
312 |
}
|
313 |
|
317 |
});
|
318 |
|
319 |
player.on('play', function kgvid_play_start(){
|
320 |
+
player.off('timeupdate', kgvid_timeupdate_poster);
|
321 |
if ( video_vars.meta ) {
|
322 |
+
kgvid_add_hover(id);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
323 |
jQuery('#video_'+id+'_meta').removeClass('kgvid_video_meta_hover');
|
324 |
}
|
325 |
if ( video_vars.autoplay == "true" ) { jQuery('#video_'+id+' > .vjs-control-bar').removeClass('vjs-fade-in'); }
|
326 |
if ( video_vars.endofvideooverlay != "" ) { jQuery('#video_'+id+' > .vjs-poster').hide(); }
|
327 |
kgvid_video_counter(id, 'play');
|
328 |
+
|
329 |
+
player.on('timeupdate', function(){
|
330 |
+
|
331 |
+
var percent_duration = Math.round(player.currentTime() / player.duration() * 100);
|
332 |
+
|
333 |
+
if ( jQuery('#video_'+id+'_div').data("25") == undefined && percent_duration >= 25 && percent_duration < 50 ) {
|
334 |
+
jQuery('#video_'+id+'_div').data("25", true);
|
335 |
+
kgvid_video_counter(id, '25');
|
336 |
+
}
|
337 |
+
else if ( jQuery('#video_'+id+'_div').data("50") == undefined && percent_duration >= 50 && percent_duration < 75 ) {
|
338 |
+
jQuery('#video_'+id+'_div').data("50", true);
|
339 |
+
kgvid_video_counter(id, '50');
|
340 |
+
}
|
341 |
+
else if ( jQuery('#video_'+id+'_div').data("75") == undefined && percent_duration >= 75 && percent_duration < 100 ) {
|
342 |
+
jQuery('#video_'+id+'_div').data("75", true);
|
343 |
+
kgvid_video_counter(id, '75');
|
344 |
+
|
345 |
+
}
|
346 |
+
|
347 |
+
});
|
348 |
+
|
349 |
+
});
|
350 |
+
|
351 |
+
player.on('pause', function kgvid_play_pause(){
|
352 |
+
jQuery('#video_'+id+'_meta').addClass('kgvid_video_meta_hover');
|
353 |
});
|
354 |
|
355 |
player.on('ended', function kgvid_play_end(){
|
360 |
'background-image':'url('+video_vars.endofvideooverlay+')'
|
361 |
}).fadeIn();
|
362 |
|
363 |
+
setTimeout(function() { player.on('timeupdate', kgvid_timeupdate_poster); }, 500);
|
364 |
|
365 |
}
|
366 |
if ( jQuery('#kgvid_video_gallery_thumb_'+id).data('gallery_end') != "" && jQuery('#kgvid_video_gallery_thumb_'+id).data('gallery_end') != null ) {
|
395 |
}
|
396 |
}
|
397 |
|
398 |
+
if ( player.availableRes != undefined ) {
|
399 |
+
if ( jQuery('#video_'+id).hasClass('vjs-fullscreen') ) {
|
400 |
+
var resolutions = player.availableRes;
|
401 |
+
var highest_res = Object.keys(resolutions)[Object.keys(resolutions).length - 1];
|
402 |
+
player.changeRes(highest_res);
|
403 |
+
}
|
404 |
+
else { kgvid_resize_video(id); }
|
405 |
}
|
406 |
|
407 |
if ( fullScreenApi.supportsFullScreen == false ) {
|
417 |
|
418 |
});
|
419 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
420 |
if ( video_vars.autoplay == "true" && player.paused() ) { player.play(); }
|
421 |
|
422 |
} //end if Video.js
|
423 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
424 |
if ( video_vars.player_type == "WordPressDefault" ) {
|
425 |
|
426 |
+
var player = jQuery('#video_'+id+'_div video');
|
427 |
+
var mejs_id = jQuery('#video_'+id+'_div .mejs-container').attr('id');
|
428 |
|
429 |
player.on('loadedmetadata', function() {
|
430 |
+
|
431 |
+
var mejs_player = eval('mejs.players.'+mejs_id);
|
432 |
+
var resolutions = player.availableRes;
|
433 |
+
var played = jQuery('#video_'+id+'_div').data("played") || "not played";
|
434 |
+
|
435 |
if ( video_vars.set_volume != "" ) { player[0].volume = video_vars.set_volume; }
|
436 |
if ( video_vars.mute == "true" ) { player[0].setMuted(true); }
|
437 |
jQuery('#video_'+id+'_div .mejs-container').append(jQuery('#video_'+id+'_watermark'));
|
|
|
438 |
|
439 |
+
if ( played == "not played" ) { //only turn on the default captions on first load
|
440 |
+
|
441 |
+
|
442 |
+
jQuery.each(mejs_player.tracks, function(key, item) {
|
443 |
+
if ( item.srclang == jQuery('#'+mejs_id+' track[default]').attr('srclang') ) {
|
444 |
+
mejs_player.setTrack(item.srclang);
|
445 |
+
jQuery('#'+mejs_id+' .mejs-captions-selector input[value="en"]').prop('checked',true);
|
446 |
+
}
|
447 |
+
});
|
448 |
+
|
449 |
+
}
|
450 |
+
|
451 |
});
|
452 |
|
453 |
player.on('play', function(){
|
454 |
+
kgvid_add_hover(id);
|
455 |
+
jQuery('#video_'+id+'_meta').removeClass('kgvid_video_meta_hover');
|
456 |
+
|
457 |
kgvid_video_counter(id, 'play');
|
458 |
+
|
459 |
+
player.on('timeupdate', function(){
|
460 |
+
|
461 |
+
var percent_duration = Math.round(player[0].currentTime / player[0].duration * 100);
|
462 |
+
|
463 |
+
if ( jQuery('#video_'+id+'_div').data("25") == undefined && percent_duration >= 25 && percent_duration < 50 ) {
|
464 |
+
jQuery('#video_'+id+'_div').data("25", true);
|
465 |
+
kgvid_video_counter(id, '25');
|
466 |
+
}
|
467 |
+
else if ( jQuery('#video_'+id+'_div').data("50") == undefined && percent_duration >= 50 && percent_duration < 75 ) {
|
468 |
+
jQuery('#video_'+id+'_div').data("50", true);
|
469 |
+
kgvid_video_counter(id, '50');
|
470 |
+
}
|
471 |
+
else if ( jQuery('#video_'+id+'_div').data("75") == undefined && percent_duration >= 75 && percent_duration < 100 ) {
|
472 |
+
jQuery('#video_'+id+'_div').data("75", true);
|
473 |
+
kgvid_video_counter(id, '75');
|
474 |
+
}
|
475 |
+
|
476 |
+
});
|
477 |
+
|
478 |
+
});
|
479 |
+
|
480 |
+
player.on('pause', function(){
|
481 |
+
jQuery('#video_'+id+'_meta').addClass('kgvid_video_meta_hover');
|
482 |
+
});
|
483 |
+
|
484 |
+
jQuery(document).on('mozfullscreenchange webkitfullscreenchange fullscreenchange', function(){
|
485 |
+
|
486 |
+
var mejs_player = eval('mejs.players.'+mejs_id);
|
487 |
+
|
488 |
+
if ( mejs_player.isFullScreen && mejs_player.hasOwnProperty('availableRes') ) {
|
489 |
+
var resolutions = mejs_player.availableRes;
|
490 |
+
|
491 |
+
var resNumbers = new Array();
|
492 |
+
jQuery.each(resolutions, function(key, value){
|
493 |
+
if ( typeof key !== 'undefined' && !isNaN(parseInt(key)) ) {
|
494 |
+
resNumbers.push(parseInt(key));
|
495 |
+
}
|
496 |
+
});
|
497 |
+
var highest_res = Math.max.apply( Math, resNumbers );
|
498 |
+
|
499 |
+
mejs_player.changeRes(highest_res+'p');
|
500 |
+
|
501 |
+
}
|
502 |
});
|
503 |
|
504 |
player.on('ended', function(){
|
525 |
} //end if WordPress Default
|
526 |
|
527 |
if ( video_vars.player_type == "JWPlayer" ) {
|
528 |
+
var player_id = jQuery('#video_'+id+'_div').children('div[id^="jwplayer"]').attr('id');
|
529 |
+
player_id = player_id.replace('_wrapper', ''); //Flash JW Players have wrapper in the id
|
530 |
var player = jwplayer(player_id);
|
531 |
|
532 |
if ( video_vars.set_volume != "" ) { player.setVolume(Math.round(video_vars.set_volume*100)); }
|
536 |
kgvid_video_counter(id, 'play');
|
537 |
|
538 |
if ( video_vars.meta ) {
|
539 |
+
kgvid_add_hover(id);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
540 |
jQuery('#video_'+id+'_meta').removeClass('kgvid_video_meta_hover');
|
541 |
}
|
542 |
|
543 |
+
player.on('timeupdate', function(){
|
544 |
+
|
545 |
+
if ( jQuery('#video_'+id+'_div').data("25") == undefined && Math.round(player.currentTime() / player.duration() * 100) == 25 ) {
|
546 |
+
jQuery('#video_'+id+'_div').data("25", true);
|
547 |
+
kgvid_video_counter(id, '25');
|
548 |
+
}
|
549 |
+
else if ( jQuery('#video_'+id+'_div').data("50") == undefined && Math.round(player.currentTime() / player.duration() * 100) == 50 ) {
|
550 |
+
jQuery('#video_'+id+'_div').data("50", true);
|
551 |
+
kgvid_video_counter(id, '50');
|
552 |
+
}
|
553 |
+
else if ( jQuery('#video_'+id+'_div').data("75") == undefined && Math.round(player.currentTime() / player.duration() * 100) == 75 ) {
|
554 |
+
jQuery('#video_'+id+'_div').data("75", true);
|
555 |
+
kgvid_video_counter(id, '75');
|
556 |
+
|
557 |
+
}
|
558 |
+
|
559 |
+
});
|
560 |
+
|
561 |
});
|
562 |
|
563 |
player.onComplete( function() {
|
581 |
kgvid_resize_video(id);
|
582 |
jQuery(window).resize( function(){ kgvid_resize_video(id) } );
|
583 |
}
|
584 |
+
|
585 |
}
|
586 |
|
587 |
function kgvid_resize_video(id) {
|
597 |
var set_height = video_vars.height;
|
598 |
var aspect_ratio = Math.round(set_height/set_width*1000)/1000
|
599 |
var reference_div = jQuery('#kgvid_'+id+'_wrapper').parent();
|
600 |
+
if ( reference_div.is('body') ) { parent_width = window.innerWidth; set_width = window.innerWidth; }
|
601 |
else if ( reference_div.attr('id') == 'kgvid_popup_video_holder_'+id ) { //if it's a pop-up video
|
602 |
var window_width = jQuery(window).width();
|
603 |
var window_height = jQuery(window).height();
|
619 |
set_width = Math.round(set_height / aspect_ratio);
|
620 |
}
|
621 |
|
622 |
+
if ( ( video_vars.player_type == "Video.js" && eval('videojs.getPlayers()["video_'+id+'"]') != null ) ) {
|
623 |
+
|
624 |
+
video_vars.player_type == "Video.js"
|
625 |
+
|
626 |
var player = videojs('video_'+id);
|
627 |
player.width(set_width).height(set_height);
|
628 |
|
640 |
}
|
641 |
}
|
642 |
else { jQuery('#kgvid_'+id+'_wrapper .vjs-big-play-button').removeAttr('style'); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
643 |
}
|
644 |
+
|
645 |
+
if ( video_vars.player_type == "StrobeMediaPlayback" ) {
|
646 |
jQuery('#video_'+id+'_div').height(set_height);
|
647 |
jQuery('#video_'+id).attr('width',set_width).attr('height',set_height);
|
648 |
jQuery('#video_'+id+'_html5_api').attr('width',set_width).attr('height',set_height);
|
649 |
}
|
650 |
+
|
651 |
if ( video_vars.player_type == "WordPressDefault" ) {
|
652 |
jQuery('#kgvid_'+id+'_wrapper').find('.wp-video').attr('style', 'width:'+set_width+'px; height:'+set_height+'px;');
|
653 |
+
if ( typeof mejs !== 'undefined' ) { player = eval('mejs.players.'+jQuery('#kgvid_'+id+'_wrapper div.wp-video-shortcode').attr('id')); }
|
654 |
+
}
|
655 |
+
|
656 |
+
if ( ( video_vars.player_type == "Video.js" && eval('videojs.getPlayers()["video_'+id+'"]') != null )
|
657 |
+
|| ( video_vars.player_type == "WordPressDefault" && typeof mejs !== 'undefined' )
|
658 |
+
) {
|
659 |
+
if ( player.availableRes !== undefined ) {
|
660 |
+
|
661 |
+
var resolutions = player.availableRes;
|
662 |
+
|
663 |
+
if ( video_vars.auto_res == 'automatic' ) {
|
664 |
+
|
665 |
+
var resNumbers = new Array();
|
666 |
+
jQuery.each(resolutions, function(key, value){
|
667 |
+
if ( typeof key !== 'undefined' && !isNaN(parseInt(key)) ) {
|
668 |
+
resNumbers.push(parseInt(key));
|
669 |
+
}
|
670 |
+
});
|
671 |
+
var current_resolution = parseInt(player.getCurrentRes());
|
672 |
+
if ( !isNaN(current_resolution) ) {
|
673 |
+
if ( video_vars.pixel_ratio == "true" && window.devicePixelRatio != undefined ) { var pixel_height = set_height * window.devicePixelRatio; } //for retina displays
|
674 |
+
else { pixel_height = set_height; }
|
675 |
+
var res_options = jQuery.map(resNumbers, function(n) {
|
676 |
+
if ( n >= pixel_height ) { return n; }
|
677 |
+
});
|
678 |
+
var set_res = Math.min.apply(Math,res_options);
|
679 |
+
|
680 |
+
if ( set_res != current_resolution && !jQuery('#video_'+id).hasClass('vjs-fullscreen') && !jQuery('#video_'+id+'_div .mejs-container').hasClass('mejs-container-fullscreen') ) {
|
681 |
+
player.changeRes(set_res+'p');
|
682 |
+
|
683 |
+
}
|
684 |
+
|
685 |
+
if ( video_vars.player_type == "Video.js" && jQuery('#video_'+id).hasClass('vjs-has-started') == false ) {
|
686 |
+
if ( player.muted() == true ) { player.muted(false); player.muted(true); } // reset volume and mute otherwise player doesn't display properly
|
687 |
+
if ( player.volume() != 1 ) {
|
688 |
+
var current_volume = player.volume();
|
689 |
+
player.volume(1);
|
690 |
+
player.volume(current_volume);
|
691 |
+
}
|
692 |
+
}
|
693 |
+
}
|
694 |
+
} //automatic
|
695 |
+
}
|
696 |
}
|
697 |
|
698 |
var meta = jQuery('#kgvid_video_gallery_thumb_'+id).data('meta');
|
781 |
else if (typeof _gaq != "undefined") { _gaq.push(["_trackEvent", "Videos", kgvidL10n_frontend.playstart, title]); }
|
782 |
|
783 |
}
|
784 |
+
|
785 |
+
if ( !isNaN(event) ) {
|
786 |
+
|
787 |
+
if (typeof ga != "undefined") { ga("send", "event", "Videos", event+"%", title); }
|
788 |
+
else if (typeof _gaq != "undefined") { _gaq.push(["_trackEvent", "Videos", event+"%", title]); }
|
789 |
+
|
790 |
+
}
|
791 |
+
|
792 |
if ( event == "end" ) {
|
793 |
if (video_vars.countable) { //video is in the db
|
794 |
changed = true;
|
837 |
}, "json");
|
838 |
|
839 |
}
|
840 |
+
|
841 |
+
function kgvid_share_icon_click(id) {
|
842 |
+
|
843 |
+
var player_element;
|
844 |
+
var event;
|
845 |
+
|
846 |
+
if ( jQuery('#kgvid_'+id+'_shareicon').hasClass('dashicons-share') ) {
|
847 |
+
event = 'turn on';
|
848 |
+
jQuery('#kgvid_'+id+'_shareicon').removeClass('dashicons-share').addClass('dashicons-no');
|
849 |
+
}
|
850 |
+
else {
|
851 |
+
event = 'turn off';
|
852 |
+
jQuery('#kgvid_'+id+'_shareicon').removeClass('dashicons-no').addClass('dashicons-share');
|
853 |
+
}
|
854 |
+
|
855 |
+
var video_vars = jQuery('#video_'+id+'_div').data('kgvid_video_vars');
|
856 |
+
|
857 |
+
if ( video_vars.player_type == "Video.js" ) {
|
858 |
+
|
859 |
+
videojs('video_'+id).pause();
|
860 |
+
|
861 |
+
if ( jQuery('#video_'+id).hasClass('vjs-has-started') ) {
|
862 |
+
player_element = ' .vjs-control-bar';
|
863 |
+
}
|
864 |
+
else { //hasn't started playing yet
|
865 |
+
player_element = ' .vjs-big-play-button';
|
866 |
+
}
|
867 |
+
|
868 |
+
if ( jQuery('#video_'+id+'_div'+player_element).attr('style') == undefined ) {
|
869 |
+
jQuery('#video_'+id+'_div'+player_element).hide();
|
870 |
+
}
|
871 |
+
else {
|
872 |
+
jQuery('#video_'+id+'_div'+player_element).removeAttr('style');
|
873 |
+
}
|
874 |
+
|
875 |
+
}// if Video.js player
|
876 |
+
else if ( video_vars.player_type == "WordPressDefault" ) {
|
877 |
+
|
878 |
+
jQuery('#video_'+id+'_div video')[0].pause();
|
879 |
+
jQuery('#video_'+id+'_div .mejs-overlay-button').toggle();
|
880 |
+
|
881 |
+
}//if WordPress Default player
|
882 |
+
else if ( video_vars.player_type == "JWPlayer" ) {
|
883 |
+
var player_id = jQuery('#video_'+id+'_div').children('div[id^="jwplayer"]').attr('id');
|
884 |
+
player_id = player_id.replace('_wrapper', ''); //Flash JW Players have wrapper in the id
|
885 |
+
var player = jwplayer(player_id);
|
886 |
+
player.pause(true);
|
887 |
+
}
|
888 |
+
|
889 |
+
if ( event == 'turn on' ) { jQuery('#video_'+id+'_div').off('mouseenter mouseleave focus focusout').addClass('kgvid_video_meta_hover'); }
|
890 |
+
else { kgvid_add_hover(id); }
|
891 |
+
|
892 |
+
jQuery('#video_'+id+'_embed, #click_trap_'+id).slideToggle();
|
893 |
+
|
894 |
+
}
|
js/kgvid_video_plugin_admin.js
CHANGED
@@ -122,6 +122,10 @@ function kgvid_thumb_video_loaded(postID) { //sets up mini custom player for mak
|
|
122 |
}
|
123 |
}
|
124 |
|
|
|
|
|
|
|
|
|
125 |
video.removeAttribute("controls");
|
126 |
video.muted=true;
|
127 |
|
@@ -199,6 +203,27 @@ function kgvid_thumb_video_loaded(postID) { //sets up mini custom player for mak
|
|
199 |
}
|
200 |
}
|
201 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
202 |
function kgvid_reveal_thumb_video(postID) {
|
203 |
jQuery('#show-thumb-video-'+postID+' :first').toggleClass( 'kgvid-down-arrow kgvid-right-arrow' );
|
204 |
var text = jQuery('#show-thumb-video-'+postID+' :nth-child(2)');
|
@@ -305,7 +330,7 @@ function kgvid_generate_thumb(postID, buttonPushed) {
|
|
305 |
else { document.getElementById(widthID).value = document.getElementsByName(maxwidthID)[0].value; }
|
306 |
document.getElementById(heightID).value = Math.round(kgvid_aspect*parseInt(document.getElementById(widthID).value));
|
307 |
|
308 |
-
kgvid_redraw_encode_checkboxes(attachmentURL, postID, page);
|
309 |
|
310 |
}, "json");
|
311 |
|
@@ -343,11 +368,7 @@ function kgvid_generate_thumb(postID, buttonPushed) {
|
|
343 |
|
344 |
jQuery(thumbnailboxID).append('<div style="display:none;" class="kgvid_thumbnail_select" name="attachments['+postID+'][thumb'+time_id+']" id="attachments-'+postID+'-thumb'+time_id+'"><label for="kgflashmedia-'+postID+'-thumbradio'+time_id+'"><canvas class="kgvid_thumbnail" style="width:200px;height:'+Math.round(200*video_aspect)+'px;" id="'+postID+'_thumb_'+time_id+'"></canvas></label><br /><input type="radio" name="attachments['+postID+'][thumbradio'+time_id+']" id="kgflashmedia-'+postID+'-thumbradio'+time_id+'" value="'+video.currentTime+'" onchange="document.getElementById(\'attachments-'+postID+'-kgflashmediaplayer-thumbtime\').value = \''+time_display+'\'; document.getElementById(\'attachments-'+postID+'-kgflashmediaplayer-numberofthumbs\').value =\'1\';kgvid_save_canvas_thumb(\''+postID+'\', \''+time_id+'\', 1, 1);"></div>');
|
345 |
var canvas = document.getElementById(postID+'_thumb_'+time_id);
|
346 |
-
canvas
|
347 |
-
canvas.height = video_height;
|
348 |
-
var context = canvas.getContext('2d');
|
349 |
-
context.fillRect(0, 0, video_width, video_height);
|
350 |
-
context.drawImage(video, 0, 0, video_width, video_height);
|
351 |
jQuery('#attachments-'+postID+'-thumb'+time_id).animate({opacity: 'toggle', height: 'toggle', width: 'toggle'}, 1000);
|
352 |
|
353 |
thumbnail_saved.splice(0,1);
|
@@ -400,11 +421,43 @@ function kgvid_generate_thumb(postID, buttonPushed) {
|
|
400 |
}
|
401 |
}
|
402 |
|
403 |
-
function kgvid_select_thumbnail(thumb_url, post_id, movieoffset) {
|
|
|
404 |
jQuery('[name="attachments['+post_id+'][kgflashmediaplayer-poster]"]').val(thumb_url); //get this by name because it's the same before WP v3.5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
405 |
var time_display = kgvid_convert_to_timecode(movieoffset);
|
406 |
jQuery('#attachments-'+post_id+'-kgflashmediaplayer-thumbtime').val(time_display);
|
407 |
jQuery('#attachments-'+post_id+'-kgflashmediaplayer-numberofthumbs').val('1');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
408 |
}
|
409 |
|
410 |
function kgvid_save_canvas_thumb(postID, time_id, total, index) {
|
@@ -413,7 +466,7 @@ function kgvid_save_canvas_thumb(postID, time_id, total, index) {
|
|
413 |
|
414 |
var video_url = document.getElementsByName('attachments['+postID+'][kgflashmediaplayer-url]')[0].value;
|
415 |
var canvas = document.getElementById(postID+'_thumb_'+time_id);
|
416 |
-
var png64dataURL = canvas.toDataURL(); //this is what saves the image. Do this after selection.
|
417 |
|
418 |
jQuery('#attachments-'+postID+'-thumbnailplaceholder canvas').fadeTo(500, .25);
|
419 |
jQuery('#attachments-'+postID+'-thumbnailplaceholder input').attr('disabled', true);
|
@@ -422,17 +475,29 @@ function kgvid_save_canvas_thumb(postID, time_id, total, index) {
|
|
422 |
jQuery.ajax({
|
423 |
type: "POST",
|
424 |
url: ajaxurl,
|
425 |
-
data: { action:"kgvid_save_html5_thumb", security: kgflashmediaplayersecurity,
|
426 |
})
|
427 |
.done( function(thumb_url) {
|
428 |
if ( total == 1 ) {
|
429 |
document.getElementsByName('attachments['+postID+'][kgflashmediaplayer-autothumb-error]')[0].value = '';
|
430 |
jQuery('#attachments-'+postID+'-kgflashmediaplayer-poster').val(thumb_url).change();
|
431 |
-
if ( pagenow == 'attachment' ) { jQuery('#publish').click(); }
|
|
|
432 |
}
|
433 |
else {
|
434 |
kgvid_thumbnail_saveall_progress(postID, total);
|
435 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
436 |
})
|
437 |
.fail( function(xhr, textStatus, errorThrown) {
|
438 |
document.getElementsByName('attachments['+postID+'][kgflashmediaplayer-autothumb-error]')[0].value = errorThrown;
|
@@ -451,8 +516,8 @@ function kgvid_thumbnail_saveall_progress(postID, total) {
|
|
451 |
|
452 |
if ( number == total ) {
|
453 |
jQuery('#saveallthumbs-'+postID+'-div').slideUp(1000);
|
454 |
-
jQuery('#attachments-'+postID+'-thumbnailplaceholder .kgvid_save_overlay').fadeOut();
|
455 |
-
jQuery('#attachments-'+postID+'-kgflashmediaplayer-thumbnailboxoverlay').fadeTo(500, 1);
|
456 |
jQuery('#attachments-'+postID+'-thumbnailplaceholder input').removeAttr('disabled');
|
457 |
}
|
458 |
|
@@ -510,23 +575,21 @@ function kgvid_thumb_video_manual(postID) {
|
|
510 |
document.getElementById('attachments-'+postID+'-kgflashmediaplayer-thumbtime').value = time_display;
|
511 |
jQuery("#attachments-"+postID+"-thumbnailplaceholder").html('<div class="kgvid_thumbnail_box kgvid_chosen_thumbnail_box"><canvas style="height:'+Math.round(200*video_aspect)+'px;" id="'+postID+'_thumb_'+time_id+'"></canvas></div>');
|
512 |
var canvas = document.getElementById(postID+'_thumb_'+time_id);
|
513 |
-
canvas
|
514 |
-
canvas.height = video.videoHeight;
|
515 |
-
var context = canvas.getContext('2d');
|
516 |
-
context.fillRect(0, 0, video.videoWidth, video.videoHeight);
|
517 |
-
context.drawImage(video, 0, 0, video.videoWidth, video.videoHeight);
|
518 |
kgvid_save_canvas_thumb(postID, time_id, 1, 1);
|
519 |
|
520 |
}
|
521 |
|
522 |
-
function kgvid_enqueue_video_encode(postID) {
|
523 |
|
524 |
-
var
|
525 |
-
|
|
|
|
|
526 |
var parent_post_id = jQuery('#post_ID').val();
|
527 |
if ( parent_post_id == undefined ) { parent_post_id = jQuery('#post_ID', window.parent.document).val(); }
|
528 |
-
var encodeplaceholderid = "#attachments-"+postID+"-encodeplaceholder";
|
529 |
-
var encodeprogressplaceholderid = "#attachments-"+postID+"-encodeprogressplaceholder";
|
530 |
|
531 |
var page = "attachment";
|
532 |
var document_url = document.URL;
|
@@ -540,8 +603,8 @@ function kgvid_enqueue_video_encode(postID) {
|
|
540 |
var kgvid_encode = new Object();
|
541 |
jQuery.each(formats, function(key,formats) {
|
542 |
kgvid_encode[formats] = "";
|
543 |
-
if ( jQuery('#attachments-'+postID+'-kgflashmediaplayer-encode'+formats).length > 0) {
|
544 |
-
kgvid_encode[formats] = document.getElementById('attachments-'+postID+'-kgflashmediaplayer-encode'+formats).checked;
|
545 |
}
|
546 |
});
|
547 |
JSON.stringify(kgvid_encode);
|
@@ -550,7 +613,7 @@ function kgvid_enqueue_video_encode(postID) {
|
|
550 |
jQuery(encodeprogressplaceholderid).empty();
|
551 |
jQuery(encodeplaceholderid).append('<strong>'+kgvidL10n.loading+'</strong>');
|
552 |
|
553 |
-
jQuery.post(ajaxurl, { action:"kgvid_callffmpeg", security: kgflashmediaplayersecurity, movieurl: attachmentURL, ffmpeg_action: 'enqueue', encodeformats: kgvid_encode, attachmentID: postID, parent_id: parent_post_id }, function(data) {
|
554 |
|
555 |
jQuery(encodeplaceholderid).empty();
|
556 |
jQuery(encodeprogressplaceholderid).empty();
|
@@ -560,8 +623,8 @@ function kgvid_enqueue_video_encode(postID) {
|
|
560 |
jQuery(encodeplaceholderid).append(data.embed_display);
|
561 |
|
562 |
setTimeout(function(){
|
563 |
-
jQuery('#attachments-'+postID+'-kgflashmediaplayer-encodeboxes').css('opacity', '0.5');
|
564 |
-
kgvid_redraw_encode_checkboxes(attachmentURL, postID, page);
|
565 |
}, 2000);
|
566 |
}, "json");
|
567 |
|
@@ -636,7 +699,7 @@ function kgvid_set_singleurl() {
|
|
636 |
url = data.movieurl;
|
637 |
kgvid_change_singleurl(url, basename, oldbasename);
|
638 |
jQuery('#attachments-'+basename+'-kgflashmediaplayer-encodeboxes').css('opacity', '0.5');
|
639 |
-
kgvid_redraw_encode_checkboxes(url, basename, 'attachment');
|
640 |
}, "json");
|
641 |
break;
|
642 |
}
|
@@ -713,16 +776,46 @@ function kgvid_rescan_external_server(movieurl, postID) {
|
|
713 |
jQuery('#attachments-'+postID+'-kgflashmediaplayer-rescanplaceholder').append('<strong>Scanning...</strong>');
|
714 |
jQuery.post(ajaxurl, { action:"kgvid_rescan_external_server", security: kgflashmediaplayersecurity, movieurl:movieurl, postID:postID }, function() {
|
715 |
jQuery('#attachments-'+postID+'-kgflashmediaplayer-encodeboxes').css('opacity', '0.5');
|
716 |
-
kgvid_redraw_encode_checkboxes(movieurl, postID, 'queue');
|
717 |
jQuery('#attachments-'+postID+'-kgflashmediaplayer-rescanplaceholder').empty();
|
718 |
});
|
719 |
}
|
720 |
|
721 |
-
function kgvid_cancel_encode(kgvid_pid, postID, video_key, format) {
|
722 |
|
723 |
-
|
724 |
-
|
725 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
726 |
jQuery.post(ajaxurl, { action:"kgvid_cancel_encode", security: kgflashmediaplayersecurity, kgvid_pid: kgvid_pid, video_key: video_key, format: format } );
|
727 |
|
728 |
}
|
@@ -733,16 +826,18 @@ function kgvid_delete_video(movieurl, postID, format, childID, blogID) {
|
|
733 |
|
734 |
if ( delete_for_sure == true ) {
|
735 |
|
736 |
-
|
737 |
-
|
738 |
-
jQuery('#attachments-'+postID+'-kgflashmediaplayer-encode').
|
739 |
-
jQuery('#attachments-'+postID+'-kgflashmediaplayer-
|
740 |
-
jQuery('#attachments-'+postID+'-kgflashmediaplayer-
|
741 |
-
|
|
|
|
|
742 |
|
743 |
jQuery.post(ajaxurl, { action: "kgvid_delete_video", security: kgflashmediaplayersecurity, movieurl: movieurl, postid: postID, format: format, childid: childID, blogid: blogID }, function(data) {
|
744 |
jQuery('#attachments-'+postID+'-kgflashmediaplayer-encode'+format).change();
|
745 |
-
if ( pagenow == 'settings_page_kgvid_network_video_encoding_queue-network' || pagenow == 'tools_page_kgvid_video_encoding_queue' ) { page = 'queue'; }
|
746 |
else { page = 'attachment'; }
|
747 |
kgvid_redraw_encode_checkboxes(movieurl, postID, page, blogID);
|
748 |
}, "json" );
|
@@ -769,7 +864,7 @@ function kgvid_cancel_thumbs(postID) {
|
|
769 |
|
770 |
function kgvid_update_encode_queue() {
|
771 |
|
772 |
-
if ( pagenow == 'tools_page_kgvid_video_encoding_queue' || pagenow == 'settings_page_kgvid_network_video_encoding_queue-network' ) {
|
773 |
var page = 'queue';
|
774 |
var kgflashmediaplayersecurity = document.getElementsByName('attachments[kgflashmediaplayer-security]')[0].value;
|
775 |
}
|
@@ -797,84 +892,89 @@ function kgvid_update_encode_queue() {
|
|
797 |
var queued = false;
|
798 |
var time_to_wait = 5000;
|
799 |
|
800 |
-
|
|
|
801 |
|
802 |
-
|
803 |
|
804 |
-
|
805 |
|
806 |
-
|
807 |
|
808 |
-
|
809 |
|
810 |
-
|
811 |
|
812 |
-
|
813 |
-
check_again = true;
|
814 |
|
815 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
816 |
|
817 |
-
if ( jQuery('#clear_'+video_entry.attachmentID).css("display") != "none" ) {
|
818 |
-
jQuery('#clear_'+video_entry.attachmentID).css("display", "none");
|
819 |
-
}
|
820 |
-
if ( !jQuery('#tr_'+video_entry.attachmentID).hasClass('currently_encoding') ) {
|
821 |
-
jQuery('#tr_'+video_entry.attachmentID).addClass('currently_encoding');
|
822 |
-
}
|
823 |
-
if ( jQuery('#tr_'+video_entry.attachmentID).hasClass('kgvid_complete') ) {
|
824 |
-
jQuery('#tr_'+video_entry.attachmentID).removeClass('kgvid_complete');
|
825 |
}
|
826 |
|
827 |
}
|
828 |
|
829 |
-
|
|
|
|
|
830 |
|
831 |
-
|
832 |
-
queued = true;
|
833 |
-
}
|
834 |
|
835 |
-
|
|
|
836 |
|
837 |
-
|
838 |
-
var checkbox = jQuery('#attachments-'+video_entry.attachmentID+'-kgflashmediaplayer-encode'+format);
|
839 |
|
840 |
-
|
|
|
|
|
|
|
|
|
841 |
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
-
}
|
847 |
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
|
853 |
-
if ( format_entry.meta_array.disabled != '' ) {
|
854 |
-
checkbox.attr('disabled', true);
|
855 |
}
|
856 |
-
else { checkbox.removeAttr('disabled'); }
|
857 |
|
858 |
-
}
|
859 |
|
860 |
-
}
|
861 |
|
862 |
-
|
863 |
|
864 |
-
|
865 |
|
866 |
-
|
|
|
|
|
|
|
|
|
|
|
867 |
|
868 |
-
if ( jQuery('#tr_'+video_entry.attachmentID).hasClass('currently_encoding') ) {
|
869 |
-
jQuery('#tr_'+video_entry.attachmentID).removeClass('currently_encoding');
|
870 |
-
}
|
871 |
-
if ( jQuery('#tr_'+video_entry.attachmentID+' #clear_'+video_entry.attachmentID).css("display") != "block" ) {
|
872 |
-
jQuery('#tr_'+video_entry.attachmentID+' #clear_'+video_entry.attachmentID).css("display", "block");
|
873 |
}
|
874 |
|
875 |
-
}
|
876 |
|
877 |
-
}
|
878 |
|
879 |
if ( check_again == true ) {
|
880 |
var encode_queue_timeouts = container_element.data('encode_queue_timeouts');
|
@@ -892,43 +992,46 @@ function kgvid_update_encode_queue() {
|
|
892 |
|
893 |
function kgvid_redraw_encode_checkboxes(movieurl, postID, page, blogID) {
|
894 |
|
895 |
-
var
|
|
|
|
|
896 |
|
897 |
if ( kgflashmediaplayersecurity ) { //sometimes this tries to run after the media modal is closed
|
898 |
|
899 |
var formats = new Array("fullres", "1080", "720", "mobile", "ogg", "webm");
|
900 |
var kgvid_encode = new Object();
|
|
|
901 |
jQuery.each(formats, function(key,formats) {
|
902 |
kgvid_encode[formats] = "";
|
903 |
-
if ( jQuery('#attachments-'+postID+'-kgflashmediaplayer-encode'+formats).length > 0) {
|
904 |
-
kgvid_encode[formats] = document.getElementById('attachments-'+postID+'-kgflashmediaplayer-encode'+formats).checked;
|
905 |
}
|
906 |
});
|
907 |
JSON.stringify(kgvid_encode);
|
908 |
|
909 |
-
jQuery.post(ajaxurl, { action:"kgvid_generate_encode_checkboxes", security: kgflashmediaplayersecurity, movieurl: movieurl, post_id: postID, page: page, blog_id:
|
910 |
-
jQuery('#attachments-'+postID+'-kgflashmediaplayer-encodeboxes').empty();
|
911 |
-
jQuery('#attachments-'+postID+'-kgflashmediaplayer-encodeboxes').append(data.checkboxes);
|
912 |
if ( page == "queue" ) {
|
913 |
-
jQuery('#
|
914 |
-
jQuery('#
|
915 |
if ( data.encoding == true ) {
|
916 |
-
jQuery('#
|
917 |
-
jQuery('#
|
918 |
}
|
919 |
|
920 |
}
|
921 |
|
922 |
setTimeout( function(){ kgvid_update_encode_queue() }, 3000 ); //start the loop
|
923 |
|
924 |
-
jQuery('#attachments-'+postID+'-kgflashmediaplayer-encodeboxes').removeAttr('style');
|
925 |
}, "json" );
|
926 |
}
|
927 |
}
|
928 |
|
929 |
function kgvid_redraw_thumbnail_box(postID) {
|
930 |
|
931 |
-
var kgflashmediaplayersecurity =
|
932 |
|
933 |
if ( kgflashmediaplayersecurity ) {
|
934 |
|
@@ -954,26 +1057,25 @@ function kgvid_redraw_thumbnail_box(postID) {
|
|
954 |
}
|
955 |
}
|
956 |
|
957 |
-
function kgvid_encode_queue(action, order, id) {
|
958 |
|
959 |
-
var
|
960 |
|
961 |
var CheckboxTimeout = jQuery('#wpwrap').data("KGVIDCheckboxTimeout") || null;
|
962 |
if ( CheckboxTimeout ) { clearTimeout(CheckboxTimeout); }
|
963 |
|
964 |
-
var
|
965 |
-
if ( pagenow == 'settings_page_kgvid_network_video_encoding_queue-network' ) { scope = 'network' }
|
966 |
|
967 |
if ( action == "delete" ) {
|
968 |
-
jQuery('#
|
969 |
-
jQuery.post(ajaxurl, { action:"kgvid_clear_queue_entry", security: kgflashmediaplayersecurity, index: order, scope: scope }, function(data) {
|
970 |
jQuery('table.widefat > tbody').replaceWith("<tbody class='rows'>"+data+"</tbody>");
|
971 |
}, "html" );
|
972 |
}
|
973 |
|
974 |
if ( action == "clear_completed" ) {
|
975 |
jQuery('tbody > .kgvid_complete').fadeTo('slow', 0.5);
|
976 |
-
jQuery.post(ajaxurl, { action:"kgvid_clear_completed_queue", security: kgflashmediaplayersecurity, type:"manual", scope: scope }, function(data) {
|
977 |
jQuery('table.widefat > tbody').replaceWith("<tbody class='rows'>"+data+"</tbody>");
|
978 |
}, "html" );
|
979 |
}
|
@@ -984,7 +1086,20 @@ function kgvid_encode_queue(action, order, id) {
|
|
984 |
|
985 |
if ( clear_for_sure == true ) {
|
986 |
jQuery('tbody > .kgvid_queued').fadeTo('slow', 0.5);
|
987 |
-
jQuery.post(ajaxurl, { action:"kgvid_clear_completed_queue", security: kgflashmediaplayersecurity, type:"queued", scope: scope }, function(data) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
988 |
jQuery('table.widefat > tbody').replaceWith("<tbody class='rows'>"+data+"</tbody>");
|
989 |
}, "html" );
|
990 |
}
|
@@ -1115,10 +1230,16 @@ function kgvid_switch_settings_tab(tab) {
|
|
1115 |
jQuery("#general_tab").removeClass("nav-tab-active");
|
1116 |
jQuery("#encoding_tab").addClass("nav-tab-active");
|
1117 |
|
1118 |
-
jQuery('h3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1119 |
jQuery('table:eq(0), table:eq(1), table:eq(2), table:eq(3)').hide();
|
1120 |
jQuery(".kgvid_setting_nearvid").hide();
|
1121 |
-
jQuery('h3:eq(3)').show();
|
1122 |
jQuery('table:eq(4)').show();
|
1123 |
|
1124 |
if ( jQuery('#app_path').data('ffmpeg_exists') == "on" && jQuery('#ffmpeg_output').html() == "" ) {
|
@@ -1140,10 +1261,17 @@ function kgvid_switch_settings_tab(tab) {
|
|
1140 |
|
1141 |
jQuery("#general_tab").addClass("nav-tab-active");
|
1142 |
jQuery("#encoding_tab").removeClass("nav-tab-active");
|
1143 |
-
jQuery('h3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1144 |
jQuery('table:eq(0), table:eq(1), table:eq(3)').show();
|
1145 |
jQuery(".kgvid_setting_nearvid").show();
|
1146 |
-
|
1147 |
jQuery('table:eq(4)').hide();
|
1148 |
|
1149 |
}
|
@@ -1162,21 +1290,31 @@ function kgvid_hide_plugin_settings() {
|
|
1162 |
|
1163 |
if ( playback_option != "Strobe Media Playback" || encoding_tab ) {
|
1164 |
jQuery('table:eq(2)').hide();
|
1165 |
-
jQuery('h3
|
|
|
|
|
|
|
|
|
|
|
1166 |
}
|
1167 |
|
1168 |
if ( general_tab ) {
|
1169 |
|
1170 |
if ( playback_option == "Strobe Media Playback" ) {
|
1171 |
jQuery('table:eq(2)').show();
|
1172 |
-
jQuery('h3
|
|
|
|
|
|
|
|
|
|
|
1173 |
}
|
1174 |
|
1175 |
if ( playback_option == "WordPress Default" || playback_option == "JW Player" ) {
|
1176 |
jQuery('#nativecontrolsfortouch').parents().eq(1).hide();
|
1177 |
jQuery('#js_skin').parents().eq(1).hide();
|
1178 |
jQuery('#chromecast').parents().eq(1).hide();
|
1179 |
-
jQuery('#
|
1180 |
}
|
1181 |
|
1182 |
if ( playback_option == "Video.js" || playback_option == "Strobe Media Playback" ) {
|
@@ -1184,10 +1322,16 @@ function kgvid_hide_plugin_settings() {
|
|
1184 |
jQuery('#js_skin').parents().eq(1).show();
|
1185 |
jQuery('#chromecast').parents().eq(1).show();
|
1186 |
jQuery('#auto_res').parents().eq(1).show();
|
|
|
|
|
|
|
|
|
|
|
1187 |
}
|
1188 |
|
1189 |
if ( playback_option == "JW Player" ) {
|
1190 |
jQuery('#endofvideooverlay').parents().eq(1).hide();
|
|
|
1191 |
jQuery('#jw_player_id_select').fadeIn();
|
1192 |
}
|
1193 |
else {
|
@@ -1195,22 +1339,28 @@ function kgvid_hide_plugin_settings() {
|
|
1195 |
jQuery('#jw_player_id_select').fadeOut();
|
1196 |
}
|
1197 |
|
1198 |
-
|
1199 |
-
|
1200 |
-
|
1201 |
-
|
1202 |
-
|
|
|
1203 |
|
1204 |
-
if (
|
1205 |
-
jQuery('#
|
1206 |
}
|
1207 |
else {
|
1208 |
-
jQuery('
|
1209 |
-
jQuery('#moov_path_p').show();
|
1210 |
}
|
1211 |
|
1212 |
}
|
1213 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1214 |
if ( ffmpeg_exists == "notinstalled" ) {
|
1215 |
jQuery(".kgvid_video_app_required").addClass("kgvid_thumbnail_overlay");
|
1216 |
jQuery(".kgvid_video_app_required").attr('title', kgvidL10n.ffmpegrequired);
|
@@ -1242,6 +1392,27 @@ function kgvid_hide_ffmpeg_settings() {
|
|
1242 |
|
1243 |
}
|
1244 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1245 |
function kgvid_hide_watermark_url(obj) {
|
1246 |
|
1247 |
if ( obj.value == 'custom' ) {
|
@@ -1452,7 +1623,7 @@ function kgvid_pick_attachment(button) {
|
|
1452 |
|
1453 |
}
|
1454 |
|
1455 |
-
function kgvid_pick_format(button, parentID, mime, format, movieurl) {
|
1456 |
|
1457 |
var frame;
|
1458 |
|
@@ -1493,8 +1664,8 @@ function kgvid_pick_format(button, parentID, mime, format, movieurl) {
|
|
1493 |
var video = frame.state().get('selection').first();
|
1494 |
var kgflashmediaplayersecurity = document.getElementsByName('attachments['+parentID+'][kgflashmediaplayer-security]')[0].value;
|
1495 |
|
1496 |
-
jQuery.post(ajaxurl, { action:"kgvid_update_child_format", security: kgflashmediaplayersecurity, parent_id: parentID, video_id: video.id, format: format }, function(data) {
|
1497 |
-
kgvid_redraw_encode_checkboxes(movieurl, parentID, 'attachment');
|
1498 |
}, "json");
|
1499 |
|
1500 |
});
|
@@ -1509,7 +1680,7 @@ function kgvid_clear_video(movieurl, postID, video_id, blog_id) {
|
|
1509 |
var kgflashmediaplayersecurity = document.getElementsByName('attachments['+postID+'][kgflashmediaplayer-security]')[0].value;
|
1510 |
|
1511 |
jQuery.post(ajaxurl, { action:"kgvid_clear_child_format", security: kgflashmediaplayersecurity, video_id: video_id, blog_id: blog_id }, function(data) {
|
1512 |
-
kgvid_redraw_encode_checkboxes(movieurl, postID, 'attachment');
|
1513 |
}, "json");
|
1514 |
|
1515 |
}
|
122 |
}
|
123 |
}
|
124 |
|
125 |
+
video.removeAttribute('height'); //disables changes made by mejs
|
126 |
+
video.removeAttribute('style');
|
127 |
+
video.setAttribute('width', '200');
|
128 |
+
|
129 |
video.removeAttribute("controls");
|
130 |
video.muted=true;
|
131 |
|
203 |
}
|
204 |
}
|
205 |
|
206 |
+
function kgvid_draw_thumb_canvas(canvas, canvas_source) {
|
207 |
+
|
208 |
+
if ( canvas_source.nodeName.toLowerCase() === 'video' ) {
|
209 |
+
canvas_width = canvas_source.videoWidth;
|
210 |
+
canvas_height = canvas_source.videoHeight;
|
211 |
+
}
|
212 |
+
else {
|
213 |
+
canvas_width = canvas_source.width;
|
214 |
+
canvas_height = canvas_source.height;
|
215 |
+
}
|
216 |
+
|
217 |
+
canvas.width = canvas_width;
|
218 |
+
canvas.height = canvas_height;
|
219 |
+
var context = canvas.getContext('2d');
|
220 |
+
context.fillRect(0, 0, canvas_width, canvas_height);
|
221 |
+
context.drawImage(canvas_source, 0, 0, canvas_width, canvas_height);
|
222 |
+
|
223 |
+
return canvas;
|
224 |
+
|
225 |
+
}
|
226 |
+
|
227 |
function kgvid_reveal_thumb_video(postID) {
|
228 |
jQuery('#show-thumb-video-'+postID+' :first').toggleClass( 'kgvid-down-arrow kgvid-right-arrow' );
|
229 |
var text = jQuery('#show-thumb-video-'+postID+' :nth-child(2)');
|
330 |
else { document.getElementById(widthID).value = document.getElementsByName(maxwidthID)[0].value; }
|
331 |
document.getElementById(heightID).value = Math.round(kgvid_aspect*parseInt(document.getElementById(widthID).value));
|
332 |
|
333 |
+
kgvid_redraw_encode_checkboxes(attachmentURL, postID, page, false);
|
334 |
|
335 |
}, "json");
|
336 |
|
368 |
|
369 |
jQuery(thumbnailboxID).append('<div style="display:none;" class="kgvid_thumbnail_select" name="attachments['+postID+'][thumb'+time_id+']" id="attachments-'+postID+'-thumb'+time_id+'"><label for="kgflashmedia-'+postID+'-thumbradio'+time_id+'"><canvas class="kgvid_thumbnail" style="width:200px;height:'+Math.round(200*video_aspect)+'px;" id="'+postID+'_thumb_'+time_id+'"></canvas></label><br /><input type="radio" name="attachments['+postID+'][thumbradio'+time_id+']" id="kgflashmedia-'+postID+'-thumbradio'+time_id+'" value="'+video.currentTime+'" onchange="document.getElementById(\'attachments-'+postID+'-kgflashmediaplayer-thumbtime\').value = \''+time_display+'\'; document.getElementById(\'attachments-'+postID+'-kgflashmediaplayer-numberofthumbs\').value =\'1\';kgvid_save_canvas_thumb(\''+postID+'\', \''+time_id+'\', 1, 1);"></div>');
|
370 |
var canvas = document.getElementById(postID+'_thumb_'+time_id);
|
371 |
+
canvas = kgvid_draw_thumb_canvas(canvas, video);
|
|
|
|
|
|
|
|
|
372 |
jQuery('#attachments-'+postID+'-thumb'+time_id).animate({opacity: 'toggle', height: 'toggle', width: 'toggle'}, 1000);
|
373 |
|
374 |
thumbnail_saved.splice(0,1);
|
421 |
}
|
422 |
}
|
423 |
|
424 |
+
function kgvid_select_thumbnail(thumb_url, post_id, movieoffset, thumbnail) {
|
425 |
+
|
426 |
jQuery('[name="attachments['+post_id+'][kgflashmediaplayer-poster]"]').val(thumb_url); //get this by name because it's the same before WP v3.5
|
427 |
+
|
428 |
+
var unscaledThumb = new Image();
|
429 |
+
unscaledThumb.src = thumbnail.src;
|
430 |
+
var canvas = document.createElement("canvas");
|
431 |
+
canvas = kgvid_draw_thumb_canvas(canvas, unscaledThumb);
|
432 |
+
var thumb_url = canvas.toDataURL('image/jpeg', 0.8);
|
433 |
+
|
434 |
+
kgvid_change_media_library_video_poster(post_id, thumb_url);
|
435 |
+
|
436 |
+
/* this breaks the media modal
|
437 |
+
setTimeout( function() {
|
438 |
+
if(wp.media.frame.content.get()!==null){
|
439 |
+
wp.media.frame.content.get().collection.props.set({ignore: (+ new Date())});
|
440 |
+
}
|
441 |
+
else{
|
442 |
+
wp.media.frame.library.props.set({ignore: (+ new Date())});
|
443 |
+
}
|
444 |
+
}, 2000); */
|
445 |
+
|
446 |
var time_display = kgvid_convert_to_timecode(movieoffset);
|
447 |
jQuery('#attachments-'+post_id+'-kgflashmediaplayer-thumbtime').val(time_display);
|
448 |
jQuery('#attachments-'+post_id+'-kgflashmediaplayer-numberofthumbs').val('1');
|
449 |
+
|
450 |
+
|
451 |
+
}
|
452 |
+
|
453 |
+
function kgvid_change_media_library_video_poster(post_id, thumb_url) {
|
454 |
+
|
455 |
+
if ( jQuery('div[data-id='+post_id+'] .wp-video-shortcode video').length > 0 ) {
|
456 |
+
jQuery('div[data-id='+post_id+'] .mejs-poster').css('background-image', 'url("'+thumb_url+'")');
|
457 |
+
jQuery('div[data-id='+post_id+'] .mejs-poster img').attr('src', thumb_url);
|
458 |
+
jQuery('div[data-id='+post_id+'] .wp-video-shortcode video').attr('poster', thumb_url);
|
459 |
+
}
|
460 |
+
|
461 |
}
|
462 |
|
463 |
function kgvid_save_canvas_thumb(postID, time_id, total, index) {
|
466 |
|
467 |
var video_url = document.getElementsByName('attachments['+postID+'][kgflashmediaplayer-url]')[0].value;
|
468 |
var canvas = document.getElementById(postID+'_thumb_'+time_id);
|
469 |
+
var png64dataURL = canvas.toDataURL('image/jpeg', 0.8); //this is what saves the image. Do this after selection.
|
470 |
|
471 |
jQuery('#attachments-'+postID+'-thumbnailplaceholder canvas').fadeTo(500, .25);
|
472 |
jQuery('#attachments-'+postID+'-thumbnailplaceholder input').attr('disabled', true);
|
475 |
jQuery.ajax({
|
476 |
type: "POST",
|
477 |
url: ajaxurl,
|
478 |
+
data: { action:"kgvid_save_html5_thumb", security: kgflashmediaplayersecurity, url: video_url, offset: time_id, postID: postID, total: total, index: index, raw_png: png64dataURL }
|
479 |
})
|
480 |
.done( function(thumb_url) {
|
481 |
if ( total == 1 ) {
|
482 |
document.getElementsByName('attachments['+postID+'][kgflashmediaplayer-autothumb-error]')[0].value = '';
|
483 |
jQuery('#attachments-'+postID+'-kgflashmediaplayer-poster').val(thumb_url).change();
|
484 |
+
if ( typeof pagenow === 'undefined' || pagenow == 'attachment' ) { jQuery('#publish').click(); }
|
485 |
+
kgvid_change_media_library_video_poster(postID, png64dataURL);
|
486 |
}
|
487 |
else {
|
488 |
kgvid_thumbnail_saveall_progress(postID, total);
|
489 |
}
|
490 |
+
|
491 |
+
/* this breaks the media modal
|
492 |
+
setTimeout( function() {
|
493 |
+
if(wp.media.frame.content.get()!==null){
|
494 |
+
wp.media.frame.content.get().collection.props.set({ignore: (+ new Date())});
|
495 |
+
}
|
496 |
+
else{
|
497 |
+
wp.media.frame.library.props.set({ignore: (+ new Date())});
|
498 |
+
}
|
499 |
+
}, 2000); */
|
500 |
+
|
501 |
})
|
502 |
.fail( function(xhr, textStatus, errorThrown) {
|
503 |
document.getElementsByName('attachments['+postID+'][kgflashmediaplayer-autothumb-error]')[0].value = errorThrown;
|
516 |
|
517 |
if ( number == total ) {
|
518 |
jQuery('#saveallthumbs-'+postID+'-div').slideUp(1000);
|
519 |
+
jQuery('#attachments-'+postID+'-thumbnailplaceholder .kgvid_save_overlay').fadeOut("normal", function(){ jQuery(this).remove(); });
|
520 |
+
jQuery('#attachments-'+postID+'-kgflashmediaplayer-thumbnailboxoverlay, #attachments-'+postID+'-thumbnailplaceholder canvas').fadeTo(500, 1);
|
521 |
jQuery('#attachments-'+postID+'-thumbnailplaceholder input').removeAttr('disabled');
|
522 |
}
|
523 |
|
575 |
document.getElementById('attachments-'+postID+'-kgflashmediaplayer-thumbtime').value = time_display;
|
576 |
jQuery("#attachments-"+postID+"-thumbnailplaceholder").html('<div class="kgvid_thumbnail_box kgvid_chosen_thumbnail_box"><canvas style="height:'+Math.round(200*video_aspect)+'px;" id="'+postID+'_thumb_'+time_id+'"></canvas></div>');
|
577 |
var canvas = document.getElementById(postID+'_thumb_'+time_id);
|
578 |
+
canvas = kgvid_draw_thumb_canvas(canvas, video);
|
|
|
|
|
|
|
|
|
579 |
kgvid_save_canvas_thumb(postID, time_id, 1, 1);
|
580 |
|
581 |
}
|
582 |
|
583 |
+
function kgvid_enqueue_video_encode(postID, blogID) {
|
584 |
|
585 |
+
var blog = kgvid_get_multisite_data(blogID);
|
586 |
+
|
587 |
+
var kgflashmediaplayersecurity = document.getElementsByName('attachments'+blog.name_text+'['+postID+'][kgflashmediaplayer-security]')[0].value;
|
588 |
+
var attachmentURL = document.getElementsByName('attachments'+blog.name_text+'['+postID+'][kgflashmediaplayer-url]')[0].value;
|
589 |
var parent_post_id = jQuery('#post_ID').val();
|
590 |
if ( parent_post_id == undefined ) { parent_post_id = jQuery('#post_ID', window.parent.document).val(); }
|
591 |
+
var encodeplaceholderid = "#attachments-"+blog.id_text+postID+"-encodeplaceholder";
|
592 |
+
var encodeprogressplaceholderid = "#attachments-"+blog.id_text+postID+"-encodeprogressplaceholder";
|
593 |
|
594 |
var page = "attachment";
|
595 |
var document_url = document.URL;
|
603 |
var kgvid_encode = new Object();
|
604 |
jQuery.each(formats, function(key,formats) {
|
605 |
kgvid_encode[formats] = "";
|
606 |
+
if ( jQuery('#attachments-'+blog.id_text+postID+'-kgflashmediaplayer-encode'+formats).length > 0) {
|
607 |
+
kgvid_encode[formats] = document.getElementById('attachments-'+blog.id_text+postID+'-kgflashmediaplayer-encode'+formats).checked;
|
608 |
}
|
609 |
});
|
610 |
JSON.stringify(kgvid_encode);
|
613 |
jQuery(encodeprogressplaceholderid).empty();
|
614 |
jQuery(encodeplaceholderid).append('<strong>'+kgvidL10n.loading+'</strong>');
|
615 |
|
616 |
+
jQuery.post(ajaxurl, { action:"kgvid_callffmpeg", security: kgflashmediaplayersecurity, movieurl: attachmentURL, ffmpeg_action: 'enqueue', encodeformats: kgvid_encode, attachmentID: postID, parent_id: parent_post_id, blog_id: blogID }, function(data) {
|
617 |
|
618 |
jQuery(encodeplaceholderid).empty();
|
619 |
jQuery(encodeprogressplaceholderid).empty();
|
623 |
jQuery(encodeplaceholderid).append(data.embed_display);
|
624 |
|
625 |
setTimeout(function(){
|
626 |
+
jQuery('#attachments-'+blog.id_text+postID+'-kgflashmediaplayer-encodeboxes').css('opacity', '0.5');
|
627 |
+
kgvid_redraw_encode_checkboxes(attachmentURL, postID, page, blogID);
|
628 |
}, 2000);
|
629 |
}, "json");
|
630 |
|
699 |
url = data.movieurl;
|
700 |
kgvid_change_singleurl(url, basename, oldbasename);
|
701 |
jQuery('#attachments-'+basename+'-kgflashmediaplayer-encodeboxes').css('opacity', '0.5');
|
702 |
+
kgvid_redraw_encode_checkboxes(url, basename, 'attachment', false);
|
703 |
}, "json");
|
704 |
break;
|
705 |
}
|
776 |
jQuery('#attachments-'+postID+'-kgflashmediaplayer-rescanplaceholder').append('<strong>Scanning...</strong>');
|
777 |
jQuery.post(ajaxurl, { action:"kgvid_rescan_external_server", security: kgflashmediaplayersecurity, movieurl:movieurl, postID:postID }, function() {
|
778 |
jQuery('#attachments-'+postID+'-kgflashmediaplayer-encodeboxes').css('opacity', '0.5');
|
779 |
+
kgvid_redraw_encode_checkboxes(movieurl, postID, 'queue', false);
|
780 |
jQuery('#attachments-'+postID+'-kgflashmediaplayer-rescanplaceholder').empty();
|
781 |
});
|
782 |
}
|
783 |
|
|
|
784 |
|
785 |
+
function kgvid_get_multisite_data(blogID) {
|
786 |
+
|
787 |
+
var blog = {};
|
788 |
+
|
789 |
+
if ( typeof pagenow !== 'undefined' && pagenow == 'settings_page_kgvid_network_video_encoding_queue-network' ) {
|
790 |
+
blog.scope = 'network';
|
791 |
+
blog.name_text = '['+blogID+']';
|
792 |
+
blog.id_text = blogID+'-';
|
793 |
+
blog.ID = blogID;
|
794 |
+
}
|
795 |
+
else if ( typeof pagenow !== 'undefined' && pagenow == 'tools_page_kgvid_video_encoding_queue' && !isNaN(parseInt(blogID)) ) {
|
796 |
+
blog.scope = 'site';
|
797 |
+
blog.name_text = '['+blogID+']';
|
798 |
+
blog.id_text = blogID+'-';
|
799 |
+
blog.ID = blogID;
|
800 |
+
}
|
801 |
+
else {
|
802 |
+
blog.scope = 'site';
|
803 |
+
blog.name_text = '';
|
804 |
+
blog.id_text = '';
|
805 |
+
blog.ID = false;
|
806 |
+
}
|
807 |
+
|
808 |
+
return blog;
|
809 |
+
|
810 |
+
}
|
811 |
+
|
812 |
+
function kgvid_cancel_encode(kgvid_pid, postID, video_key, format, blogID) {
|
813 |
+
|
814 |
+
var blog = kgvid_get_multisite_data(blogID);
|
815 |
+
|
816 |
+
var kgflashmediaplayersecurity = document.getElementsByName('attachments'+blog.name_text+'['+postID+'][kgflashmediaplayer-security]')[0].value;
|
817 |
+
jQuery('#attachments-'+blog.id_text+postID+'-kgflashmediaplayer-meta'+format).empty();
|
818 |
+
jQuery('#attachments-'+blog.id_text+postID+'-kgflashmediaplayer-meta'+format).append('<strong>Canceling</strong>');
|
819 |
jQuery.post(ajaxurl, { action:"kgvid_cancel_encode", security: kgflashmediaplayersecurity, kgvid_pid: kgvid_pid, video_key: video_key, format: format } );
|
820 |
|
821 |
}
|
826 |
|
827 |
if ( delete_for_sure == true ) {
|
828 |
|
829 |
+
var blog = kgvid_get_multisite_data(blogID);
|
830 |
+
|
831 |
+
jQuery('#attachments-'+blog.id_text+postID+'-kgflashmediaplayer-encode'+format).removeAttr('disabled');
|
832 |
+
jQuery('#attachments-'+blog.id_text+postID+'-kgflashmediaplayer-encode').removeAttr('disabled');
|
833 |
+
jQuery('#attachments-'+blog.id_text+postID+'-kgflashmediaplayer-encode').css('display', 'inline');
|
834 |
+
jQuery('#attachments-'+blog.id_text+postID+'-kgflashmediaplayer-meta'+format).empty();
|
835 |
+
jQuery('#attachments-'+blog.id_text+postID+'-kgflashmediaplayer-meta'+format).append('<strong>Deleted</strong>');
|
836 |
+
var kgflashmediaplayersecurity = document.getElementsByName('attachments'+blog.name_text+'['+postID+'][kgflashmediaplayer-security]')[0].value;
|
837 |
|
838 |
jQuery.post(ajaxurl, { action: "kgvid_delete_video", security: kgflashmediaplayersecurity, movieurl: movieurl, postid: postID, format: format, childid: childID, blogid: blogID }, function(data) {
|
839 |
jQuery('#attachments-'+postID+'-kgflashmediaplayer-encode'+format).change();
|
840 |
+
if ( typeof pagenow !== 'undefined' && ( pagenow == 'settings_page_kgvid_network_video_encoding_queue-network' || pagenow == 'tools_page_kgvid_video_encoding_queue' ) ) { page = 'queue'; }
|
841 |
else { page = 'attachment'; }
|
842 |
kgvid_redraw_encode_checkboxes(movieurl, postID, page, blogID);
|
843 |
}, "json" );
|
864 |
|
865 |
function kgvid_update_encode_queue() {
|
866 |
|
867 |
+
if ( typeof pagenow !== 'undefined' && ( pagenow == 'tools_page_kgvid_video_encoding_queue' || pagenow == 'settings_page_kgvid_network_video_encoding_queue-network' ) ) {
|
868 |
var page = 'queue';
|
869 |
var kgflashmediaplayersecurity = document.getElementsByName('attachments[kgflashmediaplayer-security]')[0].value;
|
870 |
}
|
892 |
var queued = false;
|
893 |
var time_to_wait = 5000;
|
894 |
|
895 |
+
if ( data.queue.length !== 0 && data.queue.length !== undefined ) {
|
896 |
+
jQuery.each(data.queue, function(video_key, video_entry) {
|
897 |
|
898 |
+
var blog = kgvid_get_multisite_data(video_entry.blog_id);
|
899 |
|
900 |
+
if ( page != "queue" && jQuery('#attachments-'+blog.id_text+video_entry.attachmentID+'-kgflashmediaplayer-encodeboxes').length == 0 ) { return true; }
|
901 |
|
902 |
+
if ( video_entry.hasOwnProperty('encode_formats') ) {
|
903 |
|
904 |
+
var currently_encoding = false;
|
905 |
|
906 |
+
jQuery.each(video_entry.encode_formats, function(format, format_entry) {
|
907 |
|
908 |
+
if ( format_entry.status == 'encoding' ) {
|
|
|
909 |
|
910 |
+
currently_encoding = true;
|
911 |
+
check_again = true;
|
912 |
+
|
913 |
+
if ( page == "queue" ) {
|
914 |
+
|
915 |
+
if ( jQuery('#clear-'+blog.id_text+video_entry.attachmentID).css("display") != "none" ) {
|
916 |
+
jQuery('#clear-'+blog.id_text+video_entry.attachmentID).css("display", "none");
|
917 |
+
}
|
918 |
+
if ( !jQuery('#tr-'+blog.id_text+video_entry.attachmentID).hasClass('currently_encoding') ) {
|
919 |
+
jQuery('#tr-'+blog.id_text+video_entry.attachmentID).addClass('currently_encoding');
|
920 |
+
}
|
921 |
+
if ( jQuery('#tr-'+blog.id_text+video_entry.attachmentID).hasClass('kgvid_complete') ) {
|
922 |
+
jQuery('#tr-'+blog.id_text+video_entry.attachmentID).removeClass('kgvid_complete');
|
923 |
+
}
|
924 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
925 |
}
|
926 |
|
927 |
}
|
928 |
|
929 |
+
if ( format_entry.status == 'queued' ) {
|
930 |
+
queued = true;
|
931 |
+
}
|
932 |
|
933 |
+
if ( format_entry.hasOwnProperty('meta_array') ) {
|
|
|
|
|
934 |
|
935 |
+
var meta_entry = jQuery('#attachments-'+blog.id_text+video_entry.attachmentID+'-kgflashmediaplayer-meta'+format);
|
936 |
+
var checkbox = jQuery('#attachments-'+blog.id_text+video_entry.attachmentID+'-kgflashmediaplayer-encode'+format);
|
937 |
|
938 |
+
if ( format_entry.status == 'encoding') { time_to_wait = format_entry.meta_array.time_to_wait; }
|
|
|
939 |
|
940 |
+
if ( meta_entry.html() != undefined && format_entry.meta_array.meta != meta_entry.html() ) {
|
941 |
+
check_again = true;
|
942 |
+
meta_entry.empty();
|
943 |
+
meta_entry.html(format_entry.meta_array.meta);
|
944 |
+
}
|
945 |
|
946 |
+
if ( format_entry.meta_array.checked != '' ) {
|
947 |
+
checkbox.attr('checked', true);
|
948 |
+
}
|
949 |
+
else if ( format_entry.status == 'Encoding Complete' ) { checkbox.removeAttr('checked'); }
|
|
|
950 |
|
951 |
+
if ( format_entry.meta_array.disabled != '' ) {
|
952 |
+
checkbox.attr('disabled', true);
|
953 |
+
}
|
954 |
+
else { checkbox.removeAttr('disabled'); }
|
955 |
|
|
|
|
|
956 |
}
|
|
|
957 |
|
958 |
+
}); //end loop through encode formats
|
959 |
|
960 |
+
}
|
961 |
|
962 |
+
if ( page == 'queue' && currently_encoding == false ) {
|
963 |
|
964 |
+
if ( queued == false ) { jQuery('#tr-'+blog.id_text+video_entry.attachmentID).addClass('kgvid_complete'); }
|
965 |
|
966 |
+
if ( jQuery('#tr-'+blog.id_text+video_entry.attachmentID).hasClass('currently_encoding') ) {
|
967 |
+
jQuery('#tr-'+blog.id_text+video_entry.attachmentID).removeClass('currently_encoding');
|
968 |
+
}
|
969 |
+
if ( jQuery('#tr-'+blog.id_text+video_entry.attachmentID+' #clear-'+blog.id_text+video_entry.attachmentID).css("display") != "block" ) {
|
970 |
+
jQuery('#tr-'+blog.id_text+video_entry.attachmentID+' #clear-'+blog.id_text+video_entry.attachmentID).css("display", "block");
|
971 |
+
}
|
972 |
|
|
|
|
|
|
|
|
|
|
|
973 |
}
|
974 |
|
975 |
+
}); //end loop through queue
|
976 |
|
977 |
+
}
|
978 |
|
979 |
if ( check_again == true ) {
|
980 |
var encode_queue_timeouts = container_element.data('encode_queue_timeouts');
|
992 |
|
993 |
function kgvid_redraw_encode_checkboxes(movieurl, postID, page, blogID) {
|
994 |
|
995 |
+
var blog = kgvid_get_multisite_data(blogID);
|
996 |
+
|
997 |
+
var kgflashmediaplayersecurity = document.getElementsByName('attachments'+blog.name_text+'['+postID+'][kgflashmediaplayer-security]')[0].value;
|
998 |
|
999 |
if ( kgflashmediaplayersecurity ) { //sometimes this tries to run after the media modal is closed
|
1000 |
|
1001 |
var formats = new Array("fullres", "1080", "720", "mobile", "ogg", "webm");
|
1002 |
var kgvid_encode = new Object();
|
1003 |
+
|
1004 |
jQuery.each(formats, function(key,formats) {
|
1005 |
kgvid_encode[formats] = "";
|
1006 |
+
if ( jQuery('#attachments-'+blog.id_text+postID+'-kgflashmediaplayer-encode'+formats).length > 0) {
|
1007 |
+
kgvid_encode[formats] = document.getElementById('attachments-'+blog.id_text+postID+'-kgflashmediaplayer-encode'+formats).checked;
|
1008 |
}
|
1009 |
});
|
1010 |
JSON.stringify(kgvid_encode);
|
1011 |
|
1012 |
+
jQuery.post(ajaxurl, { action:"kgvid_generate_encode_checkboxes", security: kgflashmediaplayersecurity, movieurl: movieurl, post_id: postID, page: page, blog_id: blog.ID, encodeformats: kgvid_encode }, function(data) {
|
1013 |
+
jQuery('#attachments-'+blog.id_text+postID+'-kgflashmediaplayer-encodeboxes').empty();
|
1014 |
+
jQuery('#attachments-'+blog.id_text+postID+'-kgflashmediaplayer-encodeboxes').append(data.checkboxes);
|
1015 |
if ( page == "queue" ) {
|
1016 |
+
jQuery('#tr-'+blog.id_text+postID+'.currently_encoding').removeClass('currently_encoding');
|
1017 |
+
jQuery('#tr-'+blog.id_text+postID+' #clear-'+postID).css("display", "block");
|
1018 |
if ( data.encoding == true ) {
|
1019 |
+
jQuery('#clear-'+blog.id_text+postID).css("display", "none");
|
1020 |
+
jQuery('#tr-'+blog.id_text+postID).addClass('currently_encoding');
|
1021 |
}
|
1022 |
|
1023 |
}
|
1024 |
|
1025 |
setTimeout( function(){ kgvid_update_encode_queue() }, 3000 ); //start the loop
|
1026 |
|
1027 |
+
jQuery('#attachments-'+blog.id_text+postID+'-kgflashmediaplayer-encodeboxes').removeAttr('style');
|
1028 |
}, "json" );
|
1029 |
}
|
1030 |
}
|
1031 |
|
1032 |
function kgvid_redraw_thumbnail_box(postID) {
|
1033 |
|
1034 |
+
var kgflashmediaplayersecurity = document.getElementsByName('attachments['+postID+'][kgflashmediaplayer-security]')[0].value;
|
1035 |
|
1036 |
if ( kgflashmediaplayersecurity ) {
|
1037 |
|
1057 |
}
|
1058 |
}
|
1059 |
|
1060 |
+
function kgvid_encode_queue(action, order, id, blogID) {
|
1061 |
|
1062 |
+
var blog = kgvid_get_multisite_data(blogID);
|
1063 |
|
1064 |
var CheckboxTimeout = jQuery('#wpwrap').data("KGVIDCheckboxTimeout") || null;
|
1065 |
if ( CheckboxTimeout ) { clearTimeout(CheckboxTimeout); }
|
1066 |
|
1067 |
+
var kgflashmediaplayersecurity = document.getElementsByName('attachments[kgflashmediaplayer-security]')[0].value;
|
|
|
1068 |
|
1069 |
if ( action == "delete" ) {
|
1070 |
+
jQuery('#tr-'+blog.id_text+id).fadeTo('slow', 0.5);
|
1071 |
+
jQuery.post(ajaxurl, { action:"kgvid_clear_queue_entry", security: kgflashmediaplayersecurity, index: order, scope: blog.scope }, function(data) {
|
1072 |
jQuery('table.widefat > tbody').replaceWith("<tbody class='rows'>"+data+"</tbody>");
|
1073 |
}, "html" );
|
1074 |
}
|
1075 |
|
1076 |
if ( action == "clear_completed" ) {
|
1077 |
jQuery('tbody > .kgvid_complete').fadeTo('slow', 0.5);
|
1078 |
+
jQuery.post(ajaxurl, { action:"kgvid_clear_completed_queue", security: kgflashmediaplayersecurity, type:"manual", scope: blog.scope }, function(data) {
|
1079 |
jQuery('table.widefat > tbody').replaceWith("<tbody class='rows'>"+data+"</tbody>");
|
1080 |
}, "html" );
|
1081 |
}
|
1086 |
|
1087 |
if ( clear_for_sure == true ) {
|
1088 |
jQuery('tbody > .kgvid_queued').fadeTo('slow', 0.5);
|
1089 |
+
jQuery.post(ajaxurl, { action:"kgvid_clear_completed_queue", security: kgflashmediaplayersecurity, type:"queued", scope: blog.scope }, function(data) {
|
1090 |
+
jQuery('table.widefat > tbody').replaceWith("<tbody class='rows'>"+data+"</tbody>");
|
1091 |
+
}, "html" );
|
1092 |
+
}
|
1093 |
+
|
1094 |
+
}
|
1095 |
+
|
1096 |
+
if ( action == "clear_all" ) {
|
1097 |
+
|
1098 |
+
var clear_for_sure = confirm(kgvidL10n.clearallwarning+"\n"+kgvidL10n.cancel_ok);
|
1099 |
+
|
1100 |
+
if ( clear_for_sure == true ) {
|
1101 |
+
jQuery('tbody > .kgvid_queued').fadeTo('slow', 0.5);
|
1102 |
+
jQuery.post(ajaxurl, { action:"kgvid_clear_completed_queue", security: kgflashmediaplayersecurity, type:"all", scope: blog.scope }, function(data) {
|
1103 |
jQuery('table.widefat > tbody').replaceWith("<tbody class='rows'>"+data+"</tbody>");
|
1104 |
}, "html" );
|
1105 |
}
|
1230 |
jQuery("#general_tab").removeClass("nav-tab-active");
|
1231 |
jQuery("#encoding_tab").addClass("nav-tab-active");
|
1232 |
|
1233 |
+
if ( jQuery('h3').length < 1 ) { // WP version 4.4 or later
|
1234 |
+
jQuery('h2:eq(1), h2:eq(3)').hide();
|
1235 |
+
jQuery('h2:eq(4)').show();
|
1236 |
+
}
|
1237 |
+
else { // before WP version 4.4
|
1238 |
+
jQuery('h3:eq(0), h3:eq(2)').hide();
|
1239 |
+
jQuery('h3:eq(3)').show();
|
1240 |
+
}
|
1241 |
jQuery('table:eq(0), table:eq(1), table:eq(2), table:eq(3)').hide();
|
1242 |
jQuery(".kgvid_setting_nearvid").hide();
|
|
|
1243 |
jQuery('table:eq(4)').show();
|
1244 |
|
1245 |
if ( jQuery('#app_path').data('ffmpeg_exists') == "on" && jQuery('#ffmpeg_output').html() == "" ) {
|
1261 |
|
1262 |
jQuery("#general_tab").addClass("nav-tab-active");
|
1263 |
jQuery("#encoding_tab").removeClass("nav-tab-active");
|
1264 |
+
if ( jQuery('h3').length < 1 ) { // WP version 4.4 or later
|
1265 |
+
jQuery('h2:eq(1), h2:eq(3)').show();
|
1266 |
+
jQuery('h2:eq(4)').hide();
|
1267 |
+
}
|
1268 |
+
else { // before WP version 4.4
|
1269 |
+
jQuery('h3:eq(0), h3:eq(2)').show();
|
1270 |
+
jQuery('h3:eq(3)').hide();
|
1271 |
+
}
|
1272 |
jQuery('table:eq(0), table:eq(1), table:eq(3)').show();
|
1273 |
jQuery(".kgvid_setting_nearvid").show();
|
1274 |
+
|
1275 |
jQuery('table:eq(4)').hide();
|
1276 |
|
1277 |
}
|
1290 |
|
1291 |
if ( playback_option != "Strobe Media Playback" || encoding_tab ) {
|
1292 |
jQuery('table:eq(2)').hide();
|
1293 |
+
if ( jQuery('h3').length < 1 ) { // WP version 4.4 or later
|
1294 |
+
jQuery('h2:eq(2)').hide();
|
1295 |
+
}
|
1296 |
+
else { // before WP version 4.4
|
1297 |
+
jQuery('h3:eq(1)').hide();
|
1298 |
+
}
|
1299 |
}
|
1300 |
|
1301 |
if ( general_tab ) {
|
1302 |
|
1303 |
if ( playback_option == "Strobe Media Playback" ) {
|
1304 |
jQuery('table:eq(2)').show();
|
1305 |
+
if ( jQuery('h3').length < 1 ) { // WP version 4.4 or later
|
1306 |
+
jQuery('h2:eq(2)').show();
|
1307 |
+
}
|
1308 |
+
else {
|
1309 |
+
jQuery('h3:eq(1)').show();
|
1310 |
+
}
|
1311 |
}
|
1312 |
|
1313 |
if ( playback_option == "WordPress Default" || playback_option == "JW Player" ) {
|
1314 |
jQuery('#nativecontrolsfortouch').parents().eq(1).hide();
|
1315 |
jQuery('#js_skin').parents().eq(1).hide();
|
1316 |
jQuery('#chromecast').parents().eq(1).hide();
|
1317 |
+
jQuery('#resize_div').hide();
|
1318 |
}
|
1319 |
|
1320 |
if ( playback_option == "Video.js" || playback_option == "Strobe Media Playback" ) {
|
1322 |
jQuery('#js_skin').parents().eq(1).show();
|
1323 |
jQuery('#chromecast').parents().eq(1).show();
|
1324 |
jQuery('#auto_res').parents().eq(1).show();
|
1325 |
+
jQuery('#resize_div').show();
|
1326 |
+
}
|
1327 |
+
|
1328 |
+
if ( playback_option == "WordPress Default" ) {
|
1329 |
+
jQuery('#auto_res').parents().eq(1).show();
|
1330 |
}
|
1331 |
|
1332 |
if ( playback_option == "JW Player" ) {
|
1333 |
jQuery('#endofvideooverlay').parents().eq(1).hide();
|
1334 |
+
jQuery('#auto_res').parents().eq(1).hide();
|
1335 |
jQuery('#jw_player_id_select').fadeIn();
|
1336 |
}
|
1337 |
else {
|
1339 |
jQuery('#jw_player_id_select').fadeOut();
|
1340 |
}
|
1341 |
|
1342 |
+
if ( jQuery('#twitter_button').prop('checked') || jQuery('#twitter_card').prop('checked') ) {
|
1343 |
+
jQuery('#twitter_username_div').slideDown();
|
1344 |
+
}
|
1345 |
+
else {
|
1346 |
+
jQuery('#twitter_username_div').slideUp();
|
1347 |
+
}
|
1348 |
|
1349 |
+
if ( jQuery('#auto_res').val() == 'automatic' ) {
|
1350 |
+
jQuery('#pixel_ratio_p').slideDown();
|
1351 |
}
|
1352 |
else {
|
1353 |
+
jQuery('#pixel_ratio_p').slideUp();
|
|
|
1354 |
}
|
1355 |
|
1356 |
}
|
1357 |
|
1358 |
+
if ( encoding_tab ) {
|
1359 |
+
|
1360 |
+
kgvid_moov_setting();
|
1361 |
+
|
1362 |
+
}
|
1363 |
+
|
1364 |
if ( ffmpeg_exists == "notinstalled" ) {
|
1365 |
jQuery(".kgvid_video_app_required").addClass("kgvid_thumbnail_overlay");
|
1366 |
jQuery(".kgvid_video_app_required").attr('title', kgvidL10n.ffmpegrequired);
|
1392 |
|
1393 |
}
|
1394 |
|
1395 |
+
function kgvid_moov_setting() {
|
1396 |
+
|
1397 |
+
var moov = jQuery('#moov').val();
|
1398 |
+
|
1399 |
+
if ( moov == 'none' || moov == 'movflag' ) {
|
1400 |
+
jQuery('#moov_path_p').hide();
|
1401 |
+
}
|
1402 |
+
else {
|
1403 |
+
jQuery('.kgvid_moov_option').html(moov);
|
1404 |
+
jQuery('#moov_path_p').show();
|
1405 |
+
}
|
1406 |
+
|
1407 |
+
}
|
1408 |
+
|
1409 |
+
function kgvid_change_replace_format() {
|
1410 |
+
|
1411 |
+
var replace_format_text = jQuery('#replace_format option:selected').text();
|
1412 |
+
jQuery('span.kgvid_replace_format').html(replace_format_text);
|
1413 |
+
|
1414 |
+
}
|
1415 |
+
|
1416 |
function kgvid_hide_watermark_url(obj) {
|
1417 |
|
1418 |
if ( obj.value == 'custom' ) {
|
1623 |
|
1624 |
}
|
1625 |
|
1626 |
+
function kgvid_pick_format(button, parentID, mime, format, movieurl, blog_id) {
|
1627 |
|
1628 |
var frame;
|
1629 |
|
1664 |
var video = frame.state().get('selection').first();
|
1665 |
var kgflashmediaplayersecurity = document.getElementsByName('attachments['+parentID+'][kgflashmediaplayer-security]')[0].value;
|
1666 |
|
1667 |
+
jQuery.post(ajaxurl, { action:"kgvid_update_child_format", security: kgflashmediaplayersecurity, parent_id: parentID, video_id: video.id, format: format, blog_id: blog_id }, function(data) {
|
1668 |
+
kgvid_redraw_encode_checkboxes(movieurl, parentID, 'attachment', blog_id);
|
1669 |
}, "json");
|
1670 |
|
1671 |
});
|
1680 |
var kgflashmediaplayersecurity = document.getElementsByName('attachments['+postID+'][kgflashmediaplayer-security]')[0].value;
|
1681 |
|
1682 |
jQuery.post(ajaxurl, { action:"kgvid_clear_child_format", security: kgflashmediaplayersecurity, video_id: video_id, blog_id: blog_id }, function(data) {
|
1683 |
+
kgvid_redraw_encode_checkboxes(movieurl, postID, 'attachment', blog_id);
|
1684 |
}, "json");
|
1685 |
|
1686 |
}
|
js/mep-feature-sourcechooser.js
ADDED
@@ -0,0 +1,154 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Source Chooser Plugin
|
2 |
+
(function($) {
|
3 |
+
|
4 |
+
$.extend(mejs.MepDefaults, {
|
5 |
+
sourcechooserText: 'Source Chooser'
|
6 |
+
});
|
7 |
+
|
8 |
+
$.extend(MediaElementPlayer.prototype, {
|
9 |
+
buildsourcechooser: function(player, controls, layers, media) {
|
10 |
+
|
11 |
+
var t = this;
|
12 |
+
var enable_plugin = false;
|
13 |
+
|
14 |
+
for (var i in this.node.children) {
|
15 |
+
var src = this.node.children[i];
|
16 |
+
if (src.nodeName === 'SOURCE' && src.dataset.res != undefined && src.dataset.res !== '' && (media.canPlayType(src.type) == 'probably' || media.canPlayType(src.type) == 'maybe')) {
|
17 |
+
var enable_plugin = true;
|
18 |
+
}
|
19 |
+
}
|
20 |
+
|
21 |
+
if ( enable_plugin == true ) {
|
22 |
+
|
23 |
+
player.sourcechooserButton =
|
24 |
+
$('<div class="mejs-button mejs-sourcechooser-button">'+
|
25 |
+
'<button type="button" aria-controls="' + t.id + '" title="' + t.options.sourcechooserText + '" aria-label="' + t.options.sourcechooserText + '"></button>'+
|
26 |
+
'<div class="mejs-menu-arrow">'+
|
27 |
+
'<div class="mejs-sourcechooser-selector">'+
|
28 |
+
'<span>'+kgvidL10n_frontend.quality+'</span>'+
|
29 |
+
'<ul>'+
|
30 |
+
'</ul>'+
|
31 |
+
'</div>'+
|
32 |
+
'</div>'+
|
33 |
+
'</div>')
|
34 |
+
.appendTo(controls)
|
35 |
+
|
36 |
+
// hover
|
37 |
+
.hover(function() {
|
38 |
+
$(this).find('.mejs-menu-arrow').show();
|
39 |
+
}, function() {
|
40 |
+
$(this).find('.mejs-menu-arrow').hide();
|
41 |
+
})
|
42 |
+
|
43 |
+
// handle clicks to the source radio buttons
|
44 |
+
.delegate('li', 'click', function() {
|
45 |
+
|
46 |
+
player.changeRes(this.innerHTML);
|
47 |
+
|
48 |
+
});
|
49 |
+
|
50 |
+
// add to list
|
51 |
+
player.availableRes = new Object();
|
52 |
+
for (var i in this.node.children) {
|
53 |
+
var src = this.node.children[i];
|
54 |
+
if (src.nodeName === 'SOURCE' && src.dataset.res != undefined && src.dataset.res !== '' && (media.canPlayType(src.type) == 'probably' || media.canPlayType(src.type) == 'maybe')) {
|
55 |
+
player.addSourceButton(src.src, src.dataset.res, src.type, media.src == src.src);
|
56 |
+
player.availableRes[src.dataset.res] = src.src;
|
57 |
+
|
58 |
+
if ( src.dataset.default_res != undefined ) {
|
59 |
+
if ( this.currentRes != src.dataset.res ) {
|
60 |
+
this.changeRes(src.dataset.res);
|
61 |
+
}
|
62 |
+
}
|
63 |
+
|
64 |
+
}
|
65 |
+
}
|
66 |
+
|
67 |
+
}
|
68 |
+
|
69 |
+
},
|
70 |
+
|
71 |
+
addSourceButton: function(src, label, type, isCurrent) {
|
72 |
+
var t = this;
|
73 |
+
if (label === '' || label == undefined) {
|
74 |
+
label = src;
|
75 |
+
}
|
76 |
+
type = type.split('/')[1];
|
77 |
+
|
78 |
+
t.sourcechooserButton.find('ul').append(
|
79 |
+
$('<li' + (isCurrent ? ' class="mejs-sourcechooser-selected"' : '') + ' name="' + t.id + '_sourcechooser" id="' + t.id + '_sourcechooser_' + label + type + '" >'+
|
80 |
+
label+
|
81 |
+
'</li>')
|
82 |
+
);
|
83 |
+
|
84 |
+
},
|
85 |
+
|
86 |
+
getCurrentRes: function() {
|
87 |
+
|
88 |
+
if ( typeof this.currentRes !== 'undefined' ) {
|
89 |
+
|
90 |
+
return this.currentRes;
|
91 |
+
|
92 |
+
} else {
|
93 |
+
|
94 |
+
try {
|
95 |
+
|
96 |
+
return res = this.node.children[0].dataset.res;
|
97 |
+
|
98 |
+
} catch(e) {
|
99 |
+
|
100 |
+
return '';
|
101 |
+
}
|
102 |
+
}
|
103 |
+
},
|
104 |
+
|
105 |
+
changeRes: function(target_res) {
|
106 |
+
|
107 |
+
var media = this.media;
|
108 |
+
var src = this.availableRes[target_res];
|
109 |
+
|
110 |
+
if (media.currentSrc != src) {
|
111 |
+
var currentTime = media.currentTime;
|
112 |
+
var paused = media.paused;
|
113 |
+
media.pause();
|
114 |
+
|
115 |
+
if ( currentTime != 0 ) {
|
116 |
+
var canvas = document.createElement("canvas");
|
117 |
+
canvas.className = 'kgvid_temp_thumb';
|
118 |
+
canvas.width = this.width;
|
119 |
+
canvas.height = this.height;
|
120 |
+
var context = canvas.getContext('2d');
|
121 |
+
context.fillRect(0, 0, this.width, this.height);
|
122 |
+
context.drawImage(media, 0, 0, this.width, this.height);
|
123 |
+
jQuery('#'+this.id+' .mejs-layers').append(canvas);
|
124 |
+
|
125 |
+
jQuery(media).one( 'seeked', function() {
|
126 |
+
jQuery(canvas).remove();
|
127 |
+
});
|
128 |
+
}
|
129 |
+
|
130 |
+
setTimeout(function(){ media.setSrc(src); }, 0);
|
131 |
+
this.currentRes = target_res;
|
132 |
+
jQuery(this.sourcechooserButton).find('li').removeClass('mejs-sourcechooser-selected');
|
133 |
+
jQuery(this.sourcechooserButton).find('li:contains('+target_res+')').addClass('mejs-sourcechooser-selected');
|
134 |
+
|
135 |
+
media.addEventListener('loadedmetadata', function(e) {
|
136 |
+
media.currentTime = currentTime;
|
137 |
+
}, true);
|
138 |
+
|
139 |
+
var canPlayAfterSourceSwitchHandler = function(e) {
|
140 |
+
if (!paused) {
|
141 |
+
media.play();
|
142 |
+
}
|
143 |
+
media.removeEventListener('canplay', canPlayAfterSourceSwitchHandler, true);
|
144 |
+
};
|
145 |
+
media.addEventListener('canplay', canPlayAfterSourceSwitchHandler, true);
|
146 |
+
media.load();
|
147 |
+
|
148 |
+
}
|
149 |
+
|
150 |
+
}
|
151 |
+
|
152 |
+
});
|
153 |
+
|
154 |
+
})(mejs.$);
|
languages/video-embed-thumbnail-generator-es_ES.mo
DELETED
Binary file
|
languages/video-embed-thumbnail-generator-es_ES.po
DELETED
@@ -1,2378 +0,0 @@
|
|
1 |
-
# Copyright (C) 2014 Video Embed & Thumbnail Generator
|
2 |
-
# This file is distributed under the same license as the Video Embed & Thumbnail Generator package.
|
3 |
-
msgid ""
|
4 |
-
msgstr ""
|
5 |
-
"Project-Id-Version: Video Embed & Thumbnail Generator 4.5\n"
|
6 |
-
"Report-Msgid-Bugs-To: http://wordpress.org/tag/video-embed-thumbnail-generator\n"
|
7 |
-
"POT-Creation-Date: 2015-06-24 10:04-0000\n"
|
8 |
-
"PO-Revision-Date: 2015-06-24 10:16-0000\n"
|
9 |
-
"Last-Translator: Agustin Luis Estevez <aluiest@gmail.com>\n"
|
10 |
-
"Language-Team: Agustin Luis <aluiest@gmail.com>\n"
|
11 |
-
"Language: es_ES\n"
|
12 |
-
"MIME-Version: 1.0\n"
|
13 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
14 |
-
"Content-Transfer-Encoding: 8bit\n"
|
15 |
-
"X-Generator: Poedit 1.7.4\n"
|
16 |
-
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
17 |
-
"X-Poedit-SourceCharset: UTF-8\n"
|
18 |
-
"X-Poedit-KeywordsList: __;_x:1,2c;_n:1,2;_n_noop:1,2;_nc;_nx:4c,1,2;_nx_noop:3c,1,2;_ex:1,2c;"
|
19 |
-
"esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;__ngettext_noop:1,2;"
|
20 |
-
"_e\n"
|
21 |
-
"X-Poedit-Basepath: ..\n"
|
22 |
-
"X-Poedit-SearchPath-0: .\n"
|
23 |
-
|
24 |
-
#: video-embed-thumbnail-generator.php:333 video-embed-thumbnail-generator.php:3735
|
25 |
-
msgid "same resolution H.264"
|
26 |
-
msgstr "H.264 de la misma resolución"
|
27 |
-
|
28 |
-
#: video-embed-thumbnail-generator.php:459
|
29 |
-
#, php-format
|
30 |
-
msgid "Replace original with %s"
|
31 |
-
msgstr "Reemplazar el original con %s"
|
32 |
-
|
33 |
-
#: video-embed-thumbnail-generator.php:566
|
34 |
-
msgid "Settings"
|
35 |
-
msgstr "Configuración"
|
36 |
-
|
37 |
-
#: video-embed-thumbnail-generator.php:574
|
38 |
-
msgid "Network Settings"
|
39 |
-
msgstr "Configuración de red"
|
40 |
-
|
41 |
-
#: video-embed-thumbnail-generator.php:1451
|
42 |
-
msgctxt "please wait"
|
43 |
-
msgid "Wait"
|
44 |
-
msgstr "Espere"
|
45 |
-
|
46 |
-
#: video-embed-thumbnail-generator.php:1452
|
47 |
-
msgid "Hide video..."
|
48 |
-
msgstr "Ocultar vídeo ..."
|
49 |
-
|
50 |
-
#: video-embed-thumbnail-generator.php:1453 video-embed-thumbnail-generator.php:4742
|
51 |
-
msgid "Choose from video..."
|
52 |
-
msgstr "Elija vídeo ..."
|
53 |
-
|
54 |
-
#: video-embed-thumbnail-generator.php:1454
|
55 |
-
msgid "Can't load video"
|
56 |
-
msgstr "No se puede cargar el vídeo"
|
57 |
-
|
58 |
-
#: video-embed-thumbnail-generator.php:1455
|
59 |
-
msgid "Choose Thumbnail:"
|
60 |
-
msgstr "Elija miniatura:"
|
61 |
-
|
62 |
-
#: video-embed-thumbnail-generator.php:1456
|
63 |
-
msgid "Save All Thumbnails"
|
64 |
-
msgstr "Guarde todas las miniaturas"
|
65 |
-
|
66 |
-
#: video-embed-thumbnail-generator.php:1457
|
67 |
-
msgid "Saving..."
|
68 |
-
msgstr "Guardando..."
|
69 |
-
|
70 |
-
#: video-embed-thumbnail-generator.php:1458
|
71 |
-
msgid "Loading..."
|
72 |
-
msgstr "Cargando…"
|
73 |
-
|
74 |
-
#: video-embed-thumbnail-generator.php:1459 video-embed-thumbnail-generator.php:5370
|
75 |
-
msgid "Generate"
|
76 |
-
msgstr "Generar"
|
77 |
-
|
78 |
-
#: video-embed-thumbnail-generator.php:1460 video-embed-thumbnail-generator.php:5371
|
79 |
-
msgid "Randomize"
|
80 |
-
msgstr "Aleatorizar"
|
81 |
-
|
82 |
-
#: video-embed-thumbnail-generator.php:1461
|
83 |
-
#, php-format
|
84 |
-
msgid "%s not found"
|
85 |
-
msgstr "%s no encontrado"
|
86 |
-
|
87 |
-
#: video-embed-thumbnail-generator.php:1462
|
88 |
-
msgid ""
|
89 |
-
"Please enter a URL that points to a valid video file. Video sharing sites are not supported by "
|
90 |
-
"this plugin.\n"
|
91 |
-
"To embed from YouTube, Vimeo, etc, just paste the link directly into the post window and "
|
92 |
-
"WordPress will handle the rest."
|
93 |
-
msgstr ""
|
94 |
-
"Por favor introduzca una URL que apunte a un archivo de vídeo válido. Sitios de intercambio de "
|
95 |
-
"video no son compatibles con este plugin. \n"
|
96 |
-
"Para incrustar desde YouTube, Vimeo, etc., basta con pegar el enlace directamente en la ventana "
|
97 |
-
"del mensaje y WordPress se encargará del resto."
|
98 |
-
|
99 |
-
#: video-embed-thumbnail-generator.php:1463 video-embed-thumbnail-generator.php:2700
|
100 |
-
#: video-embed-thumbnail-generator.php:5370 video-embed-thumbnail-generator.php:5371
|
101 |
-
#: video-embed-thumbnail-generator.php:5405
|
102 |
-
msgid "Please enter a valid video URL"
|
103 |
-
msgstr "Introduce una URL de vídeo válida"
|
104 |
-
|
105 |
-
#: video-embed-thumbnail-generator.php:1464
|
106 |
-
msgid ""
|
107 |
-
"You are about to permanently delete the encoded video.\n"
|
108 |
-
" 'Cancel' to stop, 'OK' to delete."
|
109 |
-
msgstr ""
|
110 |
-
"Vas a eliminar permanentemente el video codificado. \n"
|
111 |
-
" \"Cancelar\" para detener, 'OK' para borrar."
|
112 |
-
|
113 |
-
#: video-embed-thumbnail-generator.php:1465
|
114 |
-
msgid "Saved."
|
115 |
-
msgstr "Guardado."
|
116 |
-
|
117 |
-
#: video-embed-thumbnail-generator.php:1466
|
118 |
-
msgid "Running test..."
|
119 |
-
msgstr "Ejecutando la prueba ..."
|
120 |
-
|
121 |
-
#: video-embed-thumbnail-generator.php:1467
|
122 |
-
msgid "FFMPEG or LIBAV required for these functions."
|
123 |
-
msgstr "FFMPEG o LIBAV requerido para estas funciones."
|
124 |
-
|
125 |
-
#: video-embed-thumbnail-generator.php:1468
|
126 |
-
msgid ""
|
127 |
-
"You are about to set all existing video thumbnails previously generated by this plugin as the "
|
128 |
-
"featured images for their posts. There is no 'undo' button, so proceed at your own risk."
|
129 |
-
msgstr ""
|
130 |
-
"Usted está a punto de establecer todas las miniaturas de vídeo existentes previamente generados "
|
131 |
-
"por este plugin como las imágenes destacadas para sus puestos. No hay botón de \"deshacer\", así "
|
132 |
-
"que proceda a su propio riesgo."
|
133 |
-
|
134 |
-
#: video-embed-thumbnail-generator.php:1469
|
135 |
-
msgid ""
|
136 |
-
"You are about to create thumbnails for every video in your Media Library that doesn't already "
|
137 |
-
"have one. This might take a long time. There is no 'undo' button, so proceed at your own risk.\n"
|
138 |
-
"\n"
|
139 |
-
"Number of videos without thumbnails: "
|
140 |
-
msgstr ""
|
141 |
-
"Usted está a punto de crear miniaturas para cada vídeo en su Librería de Medios que no tenga una "
|
142 |
-
"previamente. Esto puede tardar bastante. No ha hay botón de deshacer, por tanto ejecútelo bajo "
|
143 |
-
"su responsabilidad.\n"
|
144 |
-
"\n"
|
145 |
-
"Número de vídeos sin miniatura:"
|
146 |
-
|
147 |
-
#: video-embed-thumbnail-generator.php:1470
|
148 |
-
msgid ""
|
149 |
-
"You are about to add every video in your Media Library to the video encode queue if it hasn't "
|
150 |
-
"already been encoded. This might take a long time."
|
151 |
-
msgstr ""
|
152 |
-
"Estás a punto de añadir cada video de tu Librería de Medios en la cola de codificación de video "
|
153 |
-
"si todavía no han sido codificados. Esto puede tardar bastante tiempo."
|
154 |
-
|
155 |
-
#: video-embed-thumbnail-generator.php:1471
|
156 |
-
msgid "No thumbnails generated. All videos have thumbnails already."
|
157 |
-
msgstr "No se ha generado ninguna miniatura. Todos los vídeo ya tiene miniatura."
|
158 |
-
|
159 |
-
#: video-embed-thumbnail-generator.php:1472
|
160 |
-
msgid "'Cancel' to stop, 'OK' to proceed."
|
161 |
-
msgstr "\"Cancelar\" para detener, en 'Aceptar' para continuar."
|
162 |
-
|
163 |
-
#: video-embed-thumbnail-generator.php:1473
|
164 |
-
msgid "Processing..."
|
165 |
-
msgstr "Processing ..."
|
166 |
-
|
167 |
-
#: video-embed-thumbnail-generator.php:1474
|
168 |
-
msgid ""
|
169 |
-
"You are about to set all existing video thumbnails previously generated by this plugin as "
|
170 |
-
"attachments of their posts rather than their associated videos. Proceed at your own risk."
|
171 |
-
msgstr ""
|
172 |
-
"Usted está a punto de establecer todas las miniaturas de vídeo existentes previamente generados "
|
173 |
-
"por este plugin como archivos adjuntos de sus mensajes en lugar de sus vídeos asociados. Proceda "
|
174 |
-
"a su propio riesgo."
|
175 |
-
|
176 |
-
#: video-embed-thumbnail-generator.php:1475
|
177 |
-
msgid ""
|
178 |
-
"You are about to set all existing video thumbnails previously generated by this plugin as "
|
179 |
-
"attachments of their videos rather than their associated posts. Proceed at your own risk."
|
180 |
-
msgstr ""
|
181 |
-
"Usted está a punto de establecer todas las miniaturas de vídeo existentes previamente generados "
|
182 |
-
"por este plugin como archivos adjuntos de sus videos en lugar de sus mensajes asociados. Proceda "
|
183 |
-
"a su propio riesgopista:."
|
184 |
-
|
185 |
-
#: video-embed-thumbnail-generator.php:1476
|
186 |
-
msgid "Complete"
|
187 |
-
msgstr "Completo"
|
188 |
-
|
189 |
-
#: video-embed-thumbnail-generator.php:1477 video-embed-thumbnail-generator.php:4811
|
190 |
-
#: video-embed-thumbnail-generator.php:5397
|
191 |
-
msgid "Track type:"
|
192 |
-
msgstr "Tipo de Rastreo:"
|
193 |
-
|
194 |
-
#: video-embed-thumbnail-generator.php:1478 video-embed-thumbnail-generator.php:4802
|
195 |
-
#: video-embed-thumbnail-generator.php:5397
|
196 |
-
msgid "subtitles"
|
197 |
-
msgstr "Subtítulos"
|
198 |
-
|
199 |
-
#: video-embed-thumbnail-generator.php:1479 video-embed-thumbnail-generator.php:4802
|
200 |
-
#: video-embed-thumbnail-generator.php:5397
|
201 |
-
msgid "captions"
|
202 |
-
msgstr "Subtítulos"
|
203 |
-
|
204 |
-
#: video-embed-thumbnail-generator.php:1480 video-embed-thumbnail-generator.php:4802
|
205 |
-
#: video-embed-thumbnail-generator.php:5397
|
206 |
-
msgid "chapters"
|
207 |
-
msgstr "Capítulos"
|
208 |
-
|
209 |
-
#: video-embed-thumbnail-generator.php:1481 video-embed-thumbnail-generator.php:4812
|
210 |
-
msgid "Choose a Text File"
|
211 |
-
msgstr "Elija un archivo de texto"
|
212 |
-
|
213 |
-
#: video-embed-thumbnail-generator.php:1482 video-embed-thumbnail-generator.php:4812
|
214 |
-
msgid "Set as track source"
|
215 |
-
msgstr "Establecer como fuente de rastreo"
|
216 |
-
|
217 |
-
#: video-embed-thumbnail-generator.php:1483 video-embed-thumbnail-generator.php:2773
|
218 |
-
#: video-embed-thumbnail-generator.php:3377 video-embed-thumbnail-generator.php:3383
|
219 |
-
#: video-embed-thumbnail-generator.php:3389 video-embed-thumbnail-generator.php:3826
|
220 |
-
#: video-embed-thumbnail-generator.php:4777 video-embed-thumbnail-generator.php:4812
|
221 |
-
msgid "Choose from Library"
|
222 |
-
msgstr "Elija desde Biblioteca"
|
223 |
-
|
224 |
-
#: video-embed-thumbnail-generator.php:1484 video-embed-thumbnail-generator.php:5397
|
225 |
-
msgid "Language code:"
|
226 |
-
msgstr "Código Idioma:"
|
227 |
-
|
228 |
-
#: video-embed-thumbnail-generator.php:1485
|
229 |
-
msgctxt "noun"
|
230 |
-
msgid "Label:"
|
231 |
-
msgstr "Etiqueta:"
|
232 |
-
|
233 |
-
#: video-embed-thumbnail-generator.php:1486 video-embed-thumbnail-generator.php:4816
|
234 |
-
#: video-embed-thumbnail-generator.php:5397
|
235 |
-
msgid "Default:"
|
236 |
-
msgstr "Por defecto:"
|
237 |
-
|
238 |
-
#: video-embed-thumbnail-generator.php:1487
|
239 |
-
msgctxt "Custom format"
|
240 |
-
msgid "Custom"
|
241 |
-
msgstr "Personalizado"
|
242 |
-
|
243 |
-
#: video-embed-thumbnail-generator.php:1629
|
244 |
-
msgctxt "noun for Google Analytics event"
|
245 |
-
msgid "Play Start"
|
246 |
-
msgstr "Comenzar reproducción"
|
247 |
-
|
248 |
-
#: video-embed-thumbnail-generator.php:1630
|
249 |
-
msgctxt "noun for Google Analytics event"
|
250 |
-
msgid "Complete View"
|
251 |
-
msgstr "Vista completa"
|
252 |
-
|
253 |
-
#: video-embed-thumbnail-generator.php:1631
|
254 |
-
msgctxt "button text to play next video"
|
255 |
-
msgid "Next"
|
256 |
-
msgstr "Siguiente"
|
257 |
-
|
258 |
-
#: video-embed-thumbnail-generator.php:1632
|
259 |
-
msgctxt "button text to play previous video"
|
260 |
-
msgid "Previous"
|
261 |
-
msgstr "Anterior"
|
262 |
-
|
263 |
-
#: video-embed-thumbnail-generator.php:1754
|
264 |
-
msgid "Previous"
|
265 |
-
msgstr "Anterior"
|
266 |
-
|
267 |
-
#: video-embed-thumbnail-generator.php:1761
|
268 |
-
msgid "Next"
|
269 |
-
msgstr "Siguiente"
|
270 |
-
|
271 |
-
#: video-embed-thumbnail-generator.php:2303
|
272 |
-
#, php-format
|
273 |
-
msgid "%s view"
|
274 |
-
msgid_plural "%s views"
|
275 |
-
msgstr[0] "%s reproducción"
|
276 |
-
msgstr[1] "%s reproducciones"
|
277 |
-
|
278 |
-
#: video-embed-thumbnail-generator.php:2313
|
279 |
-
msgid "Click on this link to download"
|
280 |
-
msgstr "Pulse en este enlace para descargar"
|
281 |
-
|
282 |
-
#: video-embed-thumbnail-generator.php:2316
|
283 |
-
msgid "Right-click or ctrl-click on this link to download"
|
284 |
-
msgstr "Haga clic derecho o ctrl-clic en este enlace para descargar"
|
285 |
-
|
286 |
-
#: video-embed-thumbnail-generator.php:2330
|
287 |
-
msgctxt "precedes code for embedding video"
|
288 |
-
msgid "Embed:"
|
289 |
-
msgstr "Incrustar"
|
290 |
-
|
291 |
-
#: video-embed-thumbnail-generator.php:2574
|
292 |
-
msgid "Clear Format"
|
293 |
-
msgstr "Borrar Formato"
|
294 |
-
|
295 |
-
#: video-embed-thumbnail-generator.php:2577
|
296 |
-
msgid "Delete Permanently"
|
297 |
-
msgstr "Eliminar permanentemente"
|
298 |
-
|
299 |
-
#: video-embed-thumbnail-generator.php:2594
|
300 |
-
msgid "Currently encoding"
|
301 |
-
msgstr "Codificando Actualmente"
|
302 |
-
|
303 |
-
#: video-embed-thumbnail-generator.php:2602
|
304 |
-
msgid "Format already exists"
|
305 |
-
msgstr "Formato ya existe"
|
306 |
-
|
307 |
-
#: video-embed-thumbnail-generator.php:2609
|
308 |
-
msgid "You don't have permission to encode videos"
|
309 |
-
msgstr "Usted no tiene permiso para codificar vídeos"
|
310 |
-
|
311 |
-
#: video-embed-thumbnail-generator.php:2708
|
312 |
-
#, php-format
|
313 |
-
msgctxt "ex: FFMPEG not found at /usr/local/bin"
|
314 |
-
msgid "%1$s not found at %2$s"
|
315 |
-
msgstr "%1$s no se encontró en %2$s"
|
316 |
-
|
317 |
-
#: video-embed-thumbnail-generator.php:2773
|
318 |
-
#, php-format
|
319 |
-
msgid "Choose %s"
|
320 |
-
msgstr "Elija %s"
|
321 |
-
|
322 |
-
#: video-embed-thumbnail-generator.php:2773
|
323 |
-
#, php-format
|
324 |
-
msgid "Set as %s"
|
325 |
-
msgstr "Establecer como %s"
|
326 |
-
|
327 |
-
#: video-embed-thumbnail-generator.php:2782
|
328 |
-
msgid "Nothing to encode"
|
329 |
-
msgstr "Nada para codificar"
|
330 |
-
|
331 |
-
#: video-embed-thumbnail-generator.php:2786
|
332 |
-
msgctxt "Button text"
|
333 |
-
msgid "Update"
|
334 |
-
msgstr "Actualizar"
|
335 |
-
|
336 |
-
#: video-embed-thumbnail-generator.php:2789
|
337 |
-
msgctxt "Button text"
|
338 |
-
msgid "Encode selected"
|
339 |
-
msgstr "Codificar selección"
|
340 |
-
|
341 |
-
#: video-embed-thumbnail-generator.php:2795
|
342 |
-
msgid "Generates additional video formats compatible with most mobile & HTML5-compatible browsers"
|
343 |
-
msgstr ""
|
344 |
-
"Genera formatos de vídeo adicionales compatibles con los navegadores más móviles y compatibles "
|
345 |
-
"con HTML5"
|
346 |
-
|
347 |
-
#: video-embed-thumbnail-generator.php:2823
|
348 |
-
msgctxt "noun, column header"
|
349 |
-
msgid "Order"
|
350 |
-
msgstr "Orden"
|
351 |
-
|
352 |
-
#: video-embed-thumbnail-generator.php:2824
|
353 |
-
msgctxt "username, column header"
|
354 |
-
msgid "User"
|
355 |
-
msgstr "Usuario"
|
356 |
-
|
357 |
-
#: video-embed-thumbnail-generator.php:2825
|
358 |
-
msgctxt "noun, column header"
|
359 |
-
msgid "Thumbnail"
|
360 |
-
msgstr "Miniatura"
|
361 |
-
|
362 |
-
#: video-embed-thumbnail-generator.php:2826
|
363 |
-
msgctxt "noun, column header"
|
364 |
-
msgid "File"
|
365 |
-
msgstr "Archivo"
|
366 |
-
|
367 |
-
#: video-embed-thumbnail-generator.php:2827
|
368 |
-
msgctxt "noun, column header"
|
369 |
-
msgid "Formats"
|
370 |
-
msgstr "Formatos"
|
371 |
-
|
372 |
-
#: video-embed-thumbnail-generator.php:2828
|
373 |
-
msgctxt "noun, column header"
|
374 |
-
msgid "Actions"
|
375 |
-
msgstr "Acciones"
|
376 |
-
|
377 |
-
#: video-embed-thumbnail-generator.php:2832
|
378 |
-
msgctxt "multisite site name, column header"
|
379 |
-
msgid "Site"
|
380 |
-
msgstr "Sitio"
|
381 |
-
|
382 |
-
#: video-embed-thumbnail-generator.php:2953
|
383 |
-
msgid "Other user's video"
|
384 |
-
msgstr "Vídeo de otro usuario"
|
385 |
-
|
386 |
-
#: video-embed-thumbnail-generator.php:2960
|
387 |
-
msgid "Queue is empty"
|
388 |
-
msgstr "La cola está vacía"
|
389 |
-
|
390 |
-
#: video-embed-thumbnail-generator.php:2969 video-embed-thumbnail-generator.php:2976
|
391 |
-
msgctxt "Tools page title"
|
392 |
-
msgid "Video Embed & Thumbnail Generator Encoding Queue"
|
393 |
-
msgstr "Cola de codificación de Video Embed & Thumbnail Generator"
|
394 |
-
|
395 |
-
#: video-embed-thumbnail-generator.php:2969
|
396 |
-
msgctxt "Title in admin sidebar"
|
397 |
-
msgid "Video Encode Queue"
|
398 |
-
msgstr "Cola de codificación de vídeo"
|
399 |
-
|
400 |
-
#: video-embed-thumbnail-generator.php:2976
|
401 |
-
msgctxt "Title in network admin sidebar"
|
402 |
-
msgid "Network Video Encode Queue"
|
403 |
-
msgstr "Cola de codificación de vídeo de la red"
|
404 |
-
|
405 |
-
#: video-embed-thumbnail-generator.php:2986
|
406 |
-
msgid "Video Embed & Thumbnail Generator Encoding Queue"
|
407 |
-
msgstr "Cola para codificación de generador de miniaturas y video incrustado"
|
408 |
-
|
409 |
-
#: video-embed-thumbnail-generator.php:3003
|
410 |
-
msgid "Clear All Completed"
|
411 |
-
msgstr "Borrar Todo lo Completado"
|
412 |
-
|
413 |
-
#: video-embed-thumbnail-generator.php:3011 video-embed-thumbnail-generator.php:3127
|
414 |
-
msgctxt "Settings page title"
|
415 |
-
msgid "Video Embed & Thumbnail Generator"
|
416 |
-
msgstr "Video Embed & Thumbnail Generator"
|
417 |
-
|
418 |
-
#: video-embed-thumbnail-generator.php:3011 video-embed-thumbnail-generator.php:3127
|
419 |
-
msgctxt "Settings page title in admin sidebar"
|
420 |
-
msgid "Video Embed & Thumbnail Generator"
|
421 |
-
msgstr "Video Embed & Thumbnail Generator"
|
422 |
-
|
423 |
-
#: video-embed-thumbnail-generator.php:3047
|
424 |
-
msgid "Video Embed & Thumbnail Generator network settings reset to default values."
|
425 |
-
msgstr "Ajustes de red de Video Embed & Thumbnail Generator restablecidas a valores por defecto."
|
426 |
-
|
427 |
-
#: video-embed-thumbnail-generator.php:3069
|
428 |
-
msgid "Path to applications on the server:"
|
429 |
-
msgstr "Ruta a las aplicaciones en el servidor:"
|
430 |
-
|
431 |
-
#: video-embed-thumbnail-generator.php:3072 video-embed-thumbnail-generator.php:3286
|
432 |
-
msgid "Application for thumbnails & encoding:"
|
433 |
-
msgstr "Aplicación para miniaturas y codificación:"
|
434 |
-
|
435 |
-
#: video-embed-thumbnail-generator.php:3076 video-embed-thumbnail-generator.php:3296
|
436 |
-
msgid "Method to fix encoded H.264 headers for streaming:"
|
437 |
-
msgstr "Método para corregir encabezados H.264 codificados para la transmisión:"
|
438 |
-
|
439 |
-
#: video-embed-thumbnail-generator.php:3080 video-embed-thumbnail-generator.php:3305
|
440 |
-
msgid "FFMPEG legacy options:"
|
441 |
-
msgstr "Opciones adicionales FFMPEG:"
|
442 |
-
|
443 |
-
#: video-embed-thumbnail-generator.php:3084
|
444 |
-
msgid "Execution:"
|
445 |
-
msgstr "Ejecución:"
|
446 |
-
|
447 |
-
#: video-embed-thumbnail-generator.php:3088
|
448 |
-
msgid "User capabilties for new sites:"
|
449 |
-
msgstr "Capacidades de los usuarios para nuevos sitios:"
|
450 |
-
|
451 |
-
#: video-embed-thumbnail-generator.php:3092
|
452 |
-
msgid "Super Admins only:"
|
453 |
-
msgstr "Sólo Super Administradores:"
|
454 |
-
|
455 |
-
#: video-embed-thumbnail-generator.php:3098 video-embed-thumbnail-generator.php:3154
|
456 |
-
msgid "Save Changes"
|
457 |
-
msgstr "Guardar cambios"
|
458 |
-
|
459 |
-
#: video-embed-thumbnail-generator.php:3099 video-embed-thumbnail-generator.php:3155
|
460 |
-
msgid "Reset Options"
|
461 |
-
msgstr "Resetear opciones"
|
462 |
-
|
463 |
-
#: video-embed-thumbnail-generator.php:3103 video-embed-thumbnail-generator.php:3159
|
464 |
-
msgid ""
|
465 |
-
"If you're getting some use out of this plugin, please consider donating a few dollars to support "
|
466 |
-
"its future development."
|
467 |
-
msgstr ""
|
468 |
-
"Si saca algún partido de este plugin, por favor considere hacer un donativo para dar soporte a "
|
469 |
-
"los futuros desarrollos."
|
470 |
-
|
471 |
-
#: video-embed-thumbnail-generator.php:3122
|
472 |
-
#, php-format
|
473 |
-
msgctxt "FFMPEG settings tab"
|
474 |
-
msgid "%s settings tab."
|
475 |
-
msgstr "%s pestaña de configuración."
|
476 |
-
|
477 |
-
#: video-embed-thumbnail-generator.php:3145
|
478 |
-
msgctxt "Adjective, tab title"
|
479 |
-
msgid "General"
|
480 |
-
msgstr "General"
|
481 |
-
|
482 |
-
#: video-embed-thumbnail-generator.php:3146
|
483 |
-
#, php-format
|
484 |
-
msgctxt "FFMPEG Settings, tab title"
|
485 |
-
msgid "%s Settings"
|
486 |
-
msgstr "%s Configuraciones"
|
487 |
-
|
488 |
-
#: video-embed-thumbnail-generator.php:3246
|
489 |
-
msgid "Default Video Playback Settings"
|
490 |
-
msgstr "Configuración predeterminada de reproducción de vídeo"
|
491 |
-
|
492 |
-
#: video-embed-thumbnail-generator.php:3247
|
493 |
-
msgid "The following options will only affect Flash playback"
|
494 |
-
msgstr "Las siguientes opciones sólo afectarán Reproducción de Flash"
|
495 |
-
|
496 |
-
#: video-embed-thumbnail-generator.php:3248
|
497 |
-
msgid "Plugin Settings"
|
498 |
-
msgstr "Configuración Plugin"
|
499 |
-
|
500 |
-
#: video-embed-thumbnail-generator.php:3249
|
501 |
-
msgid "Video Encoding Settings"
|
502 |
-
msgstr "Configuración de codificación de Vídeo"
|
503 |
-
|
504 |
-
#: video-embed-thumbnail-generator.php:3251
|
505 |
-
msgid "Default thumbnail:"
|
506 |
-
msgstr "Miniaturas por defecto:"
|
507 |
-
|
508 |
-
#: video-embed-thumbnail-generator.php:3252
|
509 |
-
msgid "End of video image:"
|
510 |
-
msgstr "Imagen de vídeo final:"
|
511 |
-
|
512 |
-
#: video-embed-thumbnail-generator.php:3253
|
513 |
-
msgid "Watermark overlay:"
|
514 |
-
msgstr "Superposición de Marca de Agua"
|
515 |
-
|
516 |
-
#: video-embed-thumbnail-generator.php:3254
|
517 |
-
msgid "Video alignment:"
|
518 |
-
msgstr "Alineación del vídeo:"
|
519 |
-
|
520 |
-
#: video-embed-thumbnail-generator.php:3255
|
521 |
-
msgid "Automatically adjust videos:"
|
522 |
-
msgstr "Ajustar vídeos automáticamente:"
|
523 |
-
|
524 |
-
#: video-embed-thumbnail-generator.php:3256
|
525 |
-
msgid "Inline videos:"
|
526 |
-
msgstr "Vídeos Inline:"
|
527 |
-
|
528 |
-
#: video-embed-thumbnail-generator.php:3257
|
529 |
-
msgid "Max embedded video dimensions:"
|
530 |
-
msgstr "Dimensiones máximas del vídeo incrustado:"
|
531 |
-
|
532 |
-
#: video-embed-thumbnail-generator.php:3258
|
533 |
-
msgid "Video gallery:"
|
534 |
-
msgstr "Galería de vídeo:"
|
535 |
-
|
536 |
-
#: video-embed-thumbnail-generator.php:3259
|
537 |
-
msgid "Video controls:"
|
538 |
-
msgstr "Controles de vídeo:"
|
539 |
-
|
540 |
-
#: video-embed-thumbnail-generator.php:3260
|
541 |
-
msgid "Autoplay:"
|
542 |
-
msgstr "Reproducción automática:"
|
543 |
-
|
544 |
-
#: video-embed-thumbnail-generator.php:3261
|
545 |
-
msgctxt "verb"
|
546 |
-
msgid "Loop:"
|
547 |
-
msgstr "Bucle:"
|
548 |
-
|
549 |
-
#: video-embed-thumbnail-generator.php:3262
|
550 |
-
msgid "Volume:"
|
551 |
-
msgstr "Volumen:"
|
552 |
-
|
553 |
-
#: video-embed-thumbnail-generator.php:3263
|
554 |
-
msgid "Preload:"
|
555 |
-
msgstr "Precarga:"
|
556 |
-
|
557 |
-
#: video-embed-thumbnail-generator.php:3264
|
558 |
-
msgctxt "CSS class for video skin"
|
559 |
-
msgid "Skin class:"
|
560 |
-
msgstr "Clase para el skin:"
|
561 |
-
|
562 |
-
#: video-embed-thumbnail-generator.php:3265
|
563 |
-
msgid "Custom attributes:"
|
564 |
-
msgstr "Atributos personalizados:"
|
565 |
-
|
566 |
-
#: video-embed-thumbnail-generator.php:3267
|
567 |
-
msgid "Background color:"
|
568 |
-
msgstr "Color de fondo:"
|
569 |
-
|
570 |
-
#: video-embed-thumbnail-generator.php:3268
|
571 |
-
msgid "XML configuration file:"
|
572 |
-
msgstr "Archivo de configuración XML:"
|
573 |
-
|
574 |
-
#: video-embed-thumbnail-generator.php:3269
|
575 |
-
msgid "Video skin file:"
|
576 |
-
msgstr "Archivo de máscara de vídeo:"
|
577 |
-
|
578 |
-
#: video-embed-thumbnail-generator.php:3270
|
579 |
-
msgid "Video stream type:"
|
580 |
-
msgstr "Tipo de stream de video:"
|
581 |
-
|
582 |
-
#: video-embed-thumbnail-generator.php:3271
|
583 |
-
msgid "Video scale mode:"
|
584 |
-
msgstr "Modo de escala de vídeo:"
|
585 |
-
|
586 |
-
#: video-embed-thumbnail-generator.php:3272
|
587 |
-
msgid "Autohide:"
|
588 |
-
msgstr "Ocultar automáticamente:"
|
589 |
-
|
590 |
-
#: video-embed-thumbnail-generator.php:3273
|
591 |
-
msgid "Play button overlay:"
|
592 |
-
msgstr "Superposición del Botón de reproducción:"
|
593 |
-
|
594 |
-
#: video-embed-thumbnail-generator.php:3275
|
595 |
-
msgid "Default number of thumbnails to generate:"
|
596 |
-
msgstr "Número predeterminado de miniaturas para generar:"
|
597 |
-
|
598 |
-
#: video-embed-thumbnail-generator.php:3276
|
599 |
-
msgid "User capabilities:"
|
600 |
-
msgstr "Capacidades de los usuarios:"
|
601 |
-
|
602 |
-
#: video-embed-thumbnail-generator.php:3277
|
603 |
-
msgid "Video security:"
|
604 |
-
msgstr "Seguridad del vídeo:"
|
605 |
-
|
606 |
-
#: video-embed-thumbnail-generator.php:3278
|
607 |
-
msgid "Featured image:"
|
608 |
-
msgstr "Imagen destacada:"
|
609 |
-
|
610 |
-
#: video-embed-thumbnail-generator.php:3279
|
611 |
-
msgid "Attach thumbnails to:"
|
612 |
-
msgstr "Adjuntar miniaturas a:"
|
613 |
-
|
614 |
-
#: video-embed-thumbnail-generator.php:3280
|
615 |
-
msgid "Delete associated attachments:"
|
616 |
-
msgstr "Eliminar archivos adjuntos asociados:"
|
617 |
-
|
618 |
-
#: video-embed-thumbnail-generator.php:3281
|
619 |
-
msgid "Video title text HTML formatting:"
|
620 |
-
msgstr "Formato HTML del texto de título de vídeo:"
|
621 |
-
|
622 |
-
#: video-embed-thumbnail-generator.php:3282
|
623 |
-
msgid "Attachment page design:"
|
624 |
-
msgstr "Visualización de la plantilla adjuntos:"
|
625 |
-
|
626 |
-
#: video-embed-thumbnail-generator.php:3285
|
627 |
-
msgid "Path to applications folder on server:"
|
628 |
-
msgstr "Ruta a la carpeta de aplicaciones en el servidor:"
|
629 |
-
|
630 |
-
#: video-embed-thumbnail-generator.php:3289
|
631 |
-
msgid "Enable in-browser thumbnails:"
|
632 |
-
msgstr "Activar miniaturas en el navegador:"
|
633 |
-
|
634 |
-
#: video-embed-thumbnail-generator.php:3290
|
635 |
-
msgid "Default video encode formats:"
|
636 |
-
msgstr "Formatos de codificación de vídeo por defecto:"
|
637 |
-
|
638 |
-
#: video-embed-thumbnail-generator.php:3291
|
639 |
-
msgid "Do automatically on upload:"
|
640 |
-
msgstr "Realice automáticamente al cargar:"
|
641 |
-
|
642 |
-
#: video-embed-thumbnail-generator.php:3292
|
643 |
-
msgid "For previously uploaded videos:"
|
644 |
-
msgstr "Para vídeos subidos anteriormente:"
|
645 |
-
|
646 |
-
#: video-embed-thumbnail-generator.php:3293
|
647 |
-
msgid "htaccess login:"
|
648 |
-
msgstr "Inicio de sesión htaccess:"
|
649 |
-
|
650 |
-
#: video-embed-thumbnail-generator.php:3294
|
651 |
-
msgid "Add watermark to encoded files:"
|
652 |
-
msgstr "Añadir marca de agua a los archivos codificados:"
|
653 |
-
|
654 |
-
#: video-embed-thumbnail-generator.php:3298
|
655 |
-
msgid "Encode quality control method:"
|
656 |
-
msgstr "Método de control de calidad de codificación:"
|
657 |
-
|
658 |
-
#: video-embed-thumbnail-generator.php:3299
|
659 |
-
msgid "Constant Rate Factors (CRF):"
|
660 |
-
msgstr "Factores constantes de tasa (CRF):"
|
661 |
-
|
662 |
-
#: video-embed-thumbnail-generator.php:3300
|
663 |
-
msgid "Average Bit Rate:"
|
664 |
-
msgstr "Tasa de bits promedio:"
|
665 |
-
|
666 |
-
#: video-embed-thumbnail-generator.php:3301
|
667 |
-
msgid "H.264 profile:"
|
668 |
-
msgstr "perfil H.264:"
|
669 |
-
|
670 |
-
#: video-embed-thumbnail-generator.php:3302
|
671 |
-
msgid "Audio bit rate:"
|
672 |
-
msgstr "Tasa de bits de audio:"
|
673 |
-
|
674 |
-
#: video-embed-thumbnail-generator.php:3306
|
675 |
-
msgctxt "program execution options"
|
676 |
-
msgid "Execution:"
|
677 |
-
msgstr "Ejecución:"
|
678 |
-
|
679 |
-
#: video-embed-thumbnail-generator.php:3309
|
680 |
-
msgid "Test FFMPEG:"
|
681 |
-
msgstr "Prueba FFMPEG:"
|
682 |
-
|
683 |
-
#: video-embed-thumbnail-generator.php:3331 video-embed-thumbnail-generator.php:4825
|
684 |
-
msgid "WordPress Default"
|
685 |
-
msgstr "WordPress por defecto"
|
686 |
-
|
687 |
-
#: video-embed-thumbnail-generator.php:3353
|
688 |
-
msgid "(deprecated)"
|
689 |
-
msgstr "( desuso)"
|
690 |
-
|
691 |
-
#: video-embed-thumbnail-generator.php:3355
|
692 |
-
msgid "Video player:"
|
693 |
-
msgstr "Reproductor de vídeo:"
|
694 |
-
|
695 |
-
#: video-embed-thumbnail-generator.php:3360
|
696 |
-
msgid ""
|
697 |
-
"Video.js is the default player. Users running WordPress 3.6 or higher can choose the WordPress "
|
698 |
-
"Default Mediaelement.js player which may already be skinned to match your theme. If the JW "
|
699 |
-
"Player WordPress plugin is active it should be available as a video player. In the past this "
|
700 |
-
"plugin used Adobe's Strobe Media Playback Flash player, which hasn't been updated since 2011 and "
|
701 |
-
"is not recommended. It should still work, but new plugin functions are not guaranteed to be "
|
702 |
-
"compatible."
|
703 |
-
msgstr ""
|
704 |
-
"Video.js es el reproductor predeterminado. Los usuarios que ejecutan WordPress 3.6 o superior "
|
705 |
-
"pueden elegir el reproductor Mediaelement.js WordPress por defecto que puede ya tener una piel "
|
706 |
-
"para que coincida con su tema. Si el plugin JW Player WordPress está activo debe estar "
|
707 |
-
"disponible como un reproductor de vídeo. En el pasado este plugin utilizaba el reproductor "
|
708 |
-
"Adobe's Strobe Media Playback Flash, que no ha sido actualizado desde 2011 y no se recomienda. "
|
709 |
-
"Aún debería funcionar, pero las nuevas funciones del plugin no se garantiza que sea compatible."
|
710 |
-
|
711 |
-
#: video-embed-thumbnail-generator.php:3364
|
712 |
-
msgid "Overlay video title"
|
713 |
-
msgstr "Título de vídeo sobrepuesto"
|
714 |
-
|
715 |
-
#: video-embed-thumbnail-generator.php:3365
|
716 |
-
msgid "Overlay embed code"
|
717 |
-
msgstr "Código de incrustación sobrepuesto"
|
718 |
-
|
719 |
-
#: video-embed-thumbnail-generator.php:3368
|
720 |
-
msgid "Show download link"
|
721 |
-
msgstr "Mostrar enlace de descarga"
|
722 |
-
|
723 |
-
#: video-embed-thumbnail-generator.php:3369
|
724 |
-
msgid "Show view count"
|
725 |
-
msgstr "Mostrar contador de reproducciones"
|
726 |
-
|
727 |
-
#: video-embed-thumbnail-generator.php:3377 video-embed-thumbnail-generator.php:4777
|
728 |
-
msgid "Choose a Thumbnail"
|
729 |
-
msgstr "Elija una miniatura"
|
730 |
-
|
731 |
-
#: video-embed-thumbnail-generator.php:3377 video-embed-thumbnail-generator.php:4777
|
732 |
-
msgid "Set as video thumbnail"
|
733 |
-
msgstr "Establecer como miniatura de vídeo"
|
734 |
-
|
735 |
-
#: video-embed-thumbnail-generator.php:3382
|
736 |
-
msgid "Display thumbnail image again when video ends."
|
737 |
-
msgstr "Mostrar la miniatura de nuevo cuando el vídeo termina."
|
738 |
-
|
739 |
-
#: video-embed-thumbnail-generator.php:3383
|
740 |
-
msgid "Choose End of Video Image"
|
741 |
-
msgstr "Elija imagen de fin de vídeo"
|
742 |
-
|
743 |
-
#: video-embed-thumbnail-generator.php:3383
|
744 |
-
msgid "Set as end of video image"
|
745 |
-
msgstr "Establecer como miniatura de vídeo"
|
746 |
-
|
747 |
-
#: video-embed-thumbnail-generator.php:3384
|
748 |
-
msgid "Display alternate image when video ends."
|
749 |
-
msgstr "Mostrar la miniatura de nuevo cuando el vídeo termina."
|
750 |
-
|
751 |
-
#: video-embed-thumbnail-generator.php:3389
|
752 |
-
msgid "Image:"
|
753 |
-
msgstr "Imagen:"
|
754 |
-
|
755 |
-
#: video-embed-thumbnail-generator.php:3389 video-embed-thumbnail-generator.php:3826
|
756 |
-
msgid "Choose a Watermark"
|
757 |
-
msgstr "elegir una Marca de Agua"
|
758 |
-
|
759 |
-
#: video-embed-thumbnail-generator.php:3389 video-embed-thumbnail-generator.php:3826
|
760 |
-
msgid "Set as watermark"
|
761 |
-
msgstr "conjuntocomo marca de agua"
|
762 |
-
|
763 |
-
#: video-embed-thumbnail-generator.php:3390
|
764 |
-
msgid "Link to:"
|
765 |
-
msgstr "Enlazar a:"
|
766 |
-
|
767 |
-
#: video-embed-thumbnail-generator.php:3392
|
768 |
-
msgid "Home page"
|
769 |
-
msgstr "Pagina de inicio"
|
770 |
-
|
771 |
-
#: video-embed-thumbnail-generator.php:3393
|
772 |
-
msgid "Parent post"
|
773 |
-
msgstr "Vídeo padre"
|
774 |
-
|
775 |
-
#: video-embed-thumbnail-generator.php:3394
|
776 |
-
msgid "Video attachment page"
|
777 |
-
msgstr "Página de adjunto del vídeo"
|
778 |
-
|
779 |
-
#: video-embed-thumbnail-generator.php:3395
|
780 |
-
msgid "Download video"
|
781 |
-
msgstr "Descargar vídeo"
|
782 |
-
|
783 |
-
#: video-embed-thumbnail-generator.php:3396
|
784 |
-
msgid "Custom URL"
|
785 |
-
msgstr "URL personalizada"
|
786 |
-
|
787 |
-
#: video-embed-thumbnail-generator.php:3397
|
788 |
-
msgid "None"
|
789 |
-
msgstr "Ninguno"
|
790 |
-
|
791 |
-
#: video-embed-thumbnail-generator.php:3416 video-embed-thumbnail-generator.php:3828
|
792 |
-
msgid "left"
|
793 |
-
msgstr "izquierda"
|
794 |
-
|
795 |
-
#: video-embed-thumbnail-generator.php:3416
|
796 |
-
msgid "center"
|
797 |
-
msgstr "Centro"
|
798 |
-
|
799 |
-
#: video-embed-thumbnail-generator.php:3416 video-embed-thumbnail-generator.php:3828
|
800 |
-
msgid "right"
|
801 |
-
msgstr "Derecha"
|
802 |
-
|
803 |
-
#: video-embed-thumbnail-generator.php:3427
|
804 |
-
msgid "Make video player responsive."
|
805 |
-
msgstr "Haga respondido el reproductor de vídeo"
|
806 |
-
|
807 |
-
#: video-embed-thumbnail-generator.php:3428
|
808 |
-
msgid "automatic"
|
809 |
-
msgstr "automático"
|
810 |
-
|
811 |
-
#: video-embed-thumbnail-generator.php:3428
|
812 |
-
msgid "highest"
|
813 |
-
msgstr "más alto"
|
814 |
-
|
815 |
-
#: video-embed-thumbnail-generator.php:3428
|
816 |
-
msgid "lowest"
|
817 |
-
msgstr "más bajo"
|
818 |
-
|
819 |
-
#: video-embed-thumbnail-generator.php:3429
|
820 |
-
msgid "Default playback resolution"
|
821 |
-
msgstr "Resolución por defecto de reproducción"
|
822 |
-
|
823 |
-
#: video-embed-thumbnail-generator.php:3434
|
824 |
-
msgid ""
|
825 |
-
"If multiple H.264 resolutions for a video are available, you can choose to load the highest or "
|
826 |
-
"lowest available resolution by default, or automatically select the resolution based on the size "
|
827 |
-
"of the video window."
|
828 |
-
msgstr ""
|
829 |
-
"Si están disponibles múltiples resoluciones para vídeo H264, puede elegir cargar la resolución "
|
830 |
-
"mas alta o la mas baja por defecto, o seleccionar automáticamente lar resolución basándose en el "
|
831 |
-
"tamaño de la ventana de vídeo."
|
832 |
-
|
833 |
-
#: video-embed-thumbnail-generator.php:3440
|
834 |
-
msgid "Allow other content on the same line as the video."
|
835 |
-
msgstr "Permitir otros contenidos en la misma línea que el video"
|
836 |
-
|
837 |
-
#: video-embed-thumbnail-generator.php:3445 video-embed-thumbnail-generator.php:4786
|
838 |
-
#: video-embed-thumbnail-generator.php:5386
|
839 |
-
msgid "Width:"
|
840 |
-
msgstr "Ancho:"
|
841 |
-
|
842 |
-
#: video-embed-thumbnail-generator.php:3445 video-embed-thumbnail-generator.php:4786
|
843 |
-
#: video-embed-thumbnail-generator.php:5386
|
844 |
-
msgid "Height:"
|
845 |
-
msgstr "Altura:"
|
846 |
-
|
847 |
-
#: video-embed-thumbnail-generator.php:3446
|
848 |
-
msgid "Enlarge lower resolution videos to max width."
|
849 |
-
msgstr "Ampliar vídeos de baja resolución al ancho máximo."
|
850 |
-
|
851 |
-
#: video-embed-thumbnail-generator.php:3446
|
852 |
-
msgid ""
|
853 |
-
"Usually if a video's resolution is less than the max width, the video player is set to the "
|
854 |
-
"actual width of the video. Enabling this will always set the same width regardless of the "
|
855 |
-
"quality of the video. When necessary you can override by setting the dimensions manually."
|
856 |
-
msgstr ""
|
857 |
-
"Por lo general, si una resolución de vídeo es menor que el ancho máximo, el reproductor de "
|
858 |
-
"vídeo está ajustado a la anchura real del vídeo. Al habilitar esto siempre se establece la misma "
|
859 |
-
"anchura, independientemente de la calidad del vídeo. Cuando es necesario, puede anular ajustando "
|
860 |
-
"las dimensiones de forma manual."
|
861 |
-
|
862 |
-
#: video-embed-thumbnail-generator.php:3447
|
863 |
-
msgid "Set all videos to expand to fill their containers."
|
864 |
-
msgstr "Los vídeos se expanden para rellenar sus contenedores."
|
865 |
-
|
866 |
-
#: video-embed-thumbnail-generator.php:3447
|
867 |
-
msgid ""
|
868 |
-
"Enabling this will ignore any other width settings and set the width of the video to the width "
|
869 |
-
"of the container it's in."
|
870 |
-
msgstr ""
|
871 |
-
"Habilitando esto se ignorará cualquier otra configuración de ancho y se establecerá el ancho del "
|
872 |
-
"video al de su contenedor."
|
873 |
-
|
874 |
-
#: video-embed-thumbnail-generator.php:3452
|
875 |
-
msgid "Maximum popup width:"
|
876 |
-
msgstr "Ancho máximo de la ventana emergente:"
|
877 |
-
|
878 |
-
#: video-embed-thumbnail-generator.php:3453
|
879 |
-
msgid "Thumbnail width:"
|
880 |
-
msgstr "Ancho de la miniatura:"
|
881 |
-
|
882 |
-
#: video-embed-thumbnail-generator.php:3457
|
883 |
-
msgid "Stop, but leave popup window open"
|
884 |
-
msgstr "Parar, pero dejar la ventana emergente abierta"
|
885 |
-
|
886 |
-
#: video-embed-thumbnail-generator.php:3458
|
887 |
-
msgid "Autoplay next video in the gallery"
|
888 |
-
msgstr "Reproduce automáticamente el siguiente vídeo de la galería"
|
889 |
-
|
890 |
-
#: video-embed-thumbnail-generator.php:3459
|
891 |
-
msgid "Close popup window"
|
892 |
-
msgstr "Cerrar la ventana emergente"
|
893 |
-
|
894 |
-
#: video-embed-thumbnail-generator.php:3466
|
895 |
-
msgid "Paginate video galleries."
|
896 |
-
msgstr "Paginar las galerías de vídeo."
|
897 |
-
|
898 |
-
#: video-embed-thumbnail-generator.php:3469
|
899 |
-
msgid "videos per gallery page."
|
900 |
-
msgstr "vídeos por página de la galería."
|
901 |
-
|
902 |
-
#: video-embed-thumbnail-generator.php:3470
|
903 |
-
msgid "Show video title overlay on thumbnails."
|
904 |
-
msgstr "Mostrar el título del vídeo sobrepuesto en las miniaturas."
|
905 |
-
|
906 |
-
#: video-embed-thumbnail-generator.php:3477
|
907 |
-
msgid "docked"
|
908 |
-
msgstr "Atracado"
|
909 |
-
|
910 |
-
#: video-embed-thumbnail-generator.php:3478
|
911 |
-
msgid "floating"
|
912 |
-
msgstr "Flotante"
|
913 |
-
|
914 |
-
#: video-embed-thumbnail-generator.php:3479 video-embed-thumbnail-generator.php:3519
|
915 |
-
#: video-embed-thumbnail-generator.php:3572 video-embed-thumbnail-generator.php:3669
|
916 |
-
#: video-embed-thumbnail-generator.php:3857
|
917 |
-
msgid "none"
|
918 |
-
msgstr "ninguno"
|
919 |
-
|
920 |
-
#: video-embed-thumbnail-generator.php:3490
|
921 |
-
msgid "Play automatically when page loads."
|
922 |
-
msgstr "Reproducir automáticamente cuando se carga la página."
|
923 |
-
|
924 |
-
#: video-embed-thumbnail-generator.php:3495
|
925 |
-
msgid "Loop to beginning when video ends."
|
926 |
-
msgstr "Bucle al inicio cuando termina el video."
|
927 |
-
|
928 |
-
#: video-embed-thumbnail-generator.php:3503
|
929 |
-
#, php-format
|
930 |
-
msgctxt "a list of percentages. eg: 15%"
|
931 |
-
msgid "%d%%"
|
932 |
-
msgstr "%d%%"
|
933 |
-
|
934 |
-
#: video-embed-thumbnail-generator.php:3510
|
935 |
-
msgid "Mute"
|
936 |
-
msgstr "Quitar sonido"
|
937 |
-
|
938 |
-
#: video-embed-thumbnail-generator.php:3517
|
939 |
-
msgid "metadata"
|
940 |
-
msgstr "metadato"
|
941 |
-
|
942 |
-
#: video-embed-thumbnail-generator.php:3518
|
943 |
-
msgid "auto"
|
944 |
-
msgstr "auto"
|
945 |
-
|
946 |
-
#: video-embed-thumbnail-generator.php:3525
|
947 |
-
msgctxt "Suggest not translating the words in quotation marks"
|
948 |
-
msgid ""
|
949 |
-
"Controls how much of a video to load before the user starts playback. Mobile browsers never "
|
950 |
-
"preload any video information. Selecting \"metadata\" will load the height and width and format "
|
951 |
-
"information along with a few seconds of the video in some desktop browsers. \"Auto\" will "
|
952 |
-
"preload nearly a minute of video in most desktop browsers. \"None\" will prevent all data from "
|
953 |
-
"preloading."
|
954 |
-
msgstr ""
|
955 |
-
"Controla cuanto se recarga de un vídeo antes comenzar la reproducción. Los navegadores móviles "
|
956 |
-
"nuca precargan ninguna información de vídeo. Seleccionando \"medatados\" cargará información de "
|
957 |
-
"dimensiones y formato en algunos navegadores de escritorio. \"auto\" preparará aproximadamente "
|
958 |
-
"un minuto en la mayoría de navegadores de escritorio. \"ninguno\" no preparará nada."
|
959 |
-
|
960 |
-
#: video-embed-thumbnail-generator.php:3530
|
961 |
-
#, php-format
|
962 |
-
msgid "Use %s for a nice, circular play button. Leave blank for the default square play button."
|
963 |
-
msgstr ""
|
964 |
-
"Utilice %s para un botón bonito, circular para reproducir. Dejar en blanco para el botón "
|
965 |
-
"predeterminado cuadrado."
|
966 |
-
|
967 |
-
#: video-embed-thumbnail-generator.php:3530
|
968 |
-
msgid "Or build your own CSS skin."
|
969 |
-
msgstr "O construir su propia piel CSS."
|
970 |
-
|
971 |
-
#: video-embed-thumbnail-generator.php:3535
|
972 |
-
#, php-format
|
973 |
-
msgid "Space-separated list to add to all videos. Example: %s"
|
974 |
-
msgstr "Lista separada por espacios para añadir a todos los vídeos. Ejemplo: %s"
|
975 |
-
|
976 |
-
#: video-embed-thumbnail-generator.php:3550
|
977 |
-
#, php-format
|
978 |
-
msgid "Use %s for a modern, circular play button."
|
979 |
-
msgstr "Utilice %s para un botón moderno, circular para reproducir."
|
980 |
-
|
981 |
-
#: video-embed-thumbnail-generator.php:3550
|
982 |
-
msgid "Leave blank for the off-center square play button."
|
983 |
-
msgstr "Dejar en blanco para el botón no centrado para reproducir."
|
984 |
-
|
985 |
-
#: video-embed-thumbnail-generator.php:3556
|
986 |
-
msgid "liveOrRecorded"
|
987 |
-
msgstr "directoOGrabado"
|
988 |
-
|
989 |
-
#: video-embed-thumbnail-generator.php:3557
|
990 |
-
msgid "live"
|
991 |
-
msgstr "directo"
|
992 |
-
|
993 |
-
#: video-embed-thumbnail-generator.php:3558
|
994 |
-
msgid "recorded"
|
995 |
-
msgstr "grabado"
|
996 |
-
|
997 |
-
#: video-embed-thumbnail-generator.php:3559
|
998 |
-
msgid "dvr"
|
999 |
-
msgstr "dvr"
|
1000 |
-
|
1001 |
-
#: video-embed-thumbnail-generator.php:3571
|
1002 |
-
msgid "letterbox"
|
1003 |
-
msgstr "Buzón"
|
1004 |
-
|
1005 |
-
#: video-embed-thumbnail-generator.php:3573
|
1006 |
-
msgid "stretch"
|
1007 |
-
msgstr "Estirar"
|
1008 |
-
|
1009 |
-
#: video-embed-thumbnail-generator.php:3574
|
1010 |
-
msgid "zoom"
|
1011 |
-
msgstr "Acercar"
|
1012 |
-
|
1013 |
-
#: video-embed-thumbnail-generator.php:3586
|
1014 |
-
msgid "Autohide controlbar."
|
1015 |
-
msgstr "Ocultar automáticamente barra de control."
|
1016 |
-
|
1017 |
-
#: video-embed-thumbnail-generator.php:3591
|
1018 |
-
msgid "Overlay play button on poster frame."
|
1019 |
-
msgstr "Botón de reproducción en el marco del cartel."
|
1020 |
-
|
1021 |
-
#: video-embed-thumbnail-generator.php:3603
|
1022 |
-
msgid "Can make thumbnails"
|
1023 |
-
msgstr "Puede hacer miniaturas"
|
1024 |
-
|
1025 |
-
#: video-embed-thumbnail-generator.php:3603
|
1026 |
-
msgid "Can encode videos"
|
1027 |
-
msgstr "Puede codificar videos"
|
1028 |
-
|
1029 |
-
#: video-embed-thumbnail-generator.php:3603
|
1030 |
-
msgid "Can view & modify other users encode queue"
|
1031 |
-
msgstr "Puede ver y modificar la cola de codificación de otros usuarios"
|
1032 |
-
|
1033 |
-
#: video-embed-thumbnail-generator.php:3643
|
1034 |
-
msgid "Allow users to embed your videos on other sites."
|
1035 |
-
msgstr "Permitir a los usuarios incrustar sus videos en otros sitios."
|
1036 |
-
|
1037 |
-
#: video-embed-thumbnail-generator.php:3644
|
1038 |
-
msgctxt "\"Open Graph\" is a proper noun and might not need translation"
|
1039 |
-
msgid "Enable Open Graph video tags"
|
1040 |
-
msgstr "Permite etiquetas de vídeo Open Grapa"
|
1041 |
-
|
1042 |
-
#: video-embed-thumbnail-generator.php:3644
|
1043 |
-
msgid ""
|
1044 |
-
"Facebook and some other social media sites will use these tags to embed the first video in your "
|
1045 |
-
"post. For the majority of Facebook users who have enabled secure browsing, your video must be "
|
1046 |
-
"served via https in order to be embedded directly on the page."
|
1047 |
-
msgstr ""
|
1048 |
-
"Facebook y otros sitios de medios sociales van a usar las siguientes etiquetas para incrustar el "
|
1049 |
-
"primer video en tu mensaje. Para la mayoría de usuarios de Facebook que han habilitado "
|
1050 |
-
"navegación segura, el vídeo debe ser servido a través de https para ser incorporado directamente "
|
1051 |
-
"en la página."
|
1052 |
-
|
1053 |
-
#: video-embed-thumbnail-generator.php:3645
|
1054 |
-
msgctxt "\"oEmbed\" is a proper noun and might not need translation"
|
1055 |
-
msgid "Enable oEmbed provider"
|
1056 |
-
msgstr "Permite oEmbed"
|
1057 |
-
|
1058 |
-
#: video-embed-thumbnail-generator.php:3645
|
1059 |
-
msgid ""
|
1060 |
-
"Allows users of other websites to embed your videos using just the post URL rather than the full "
|
1061 |
-
"iframe embed code. For security reasons, this will not work on other WordPress sites unless "
|
1062 |
-
"they've enabled oEmbed discovery from unkown providers."
|
1063 |
-
msgstr ""
|
1064 |
-
"Permite a otros sitios web incrustar sus vídeos usando la URL del mismo en lugar del código de "
|
1065 |
-
"incrustración en iframe. Por razones de seguridad, esto no funcionará en otros sitios con "
|
1066 |
-
"WordPress, a menos que permitan descubrimiento oEmbed desde proveedores desconocidos."
|
1067 |
-
|
1068 |
-
#: video-embed-thumbnail-generator.php:3646
|
1069 |
-
msgctxt "\"oEmbed\" is a proper noun and might not need translation"
|
1070 |
-
msgid "Enable oEmbeds from unknown providers"
|
1071 |
-
msgstr "Permite oEmbed desde proveedores desconocidos"
|
1072 |
-
|
1073 |
-
#: video-embed-thumbnail-generator.php:3646
|
1074 |
-
msgid ""
|
1075 |
-
"Allows your own users to embed content from any oEmbed provider. User must have the "
|
1076 |
-
"\"unfiltered_html\" capability which is limited to Administrators and Editors by default."
|
1077 |
-
msgstr ""
|
1078 |
-
"Permite a sus usuarios incrustar contenido desde cualquier proveedor oEmbed. El usuario debe "
|
1079 |
-
"tener la capacidad \"unfiltered_html\" la cual está limitada a Administradores y editores por "
|
1080 |
-
"defecto."
|
1081 |
-
|
1082 |
-
#: video-embed-thumbnail-generator.php:3647
|
1083 |
-
msgid "Allow right-clicking on videos."
|
1084 |
-
msgstr "Permitir clic derecho sobre los vídeos."
|
1085 |
-
|
1086 |
-
#: video-embed-thumbnail-generator.php:3647
|
1087 |
-
msgid ""
|
1088 |
-
"We can't prevent a user from simply saving the downloaded video file from the browser's cache, "
|
1089 |
-
"but disabling right-clicking will make it more difficult for casual users to save your videos."
|
1090 |
-
msgstr ""
|
1091 |
-
"No podemos evitar que un usuario simplemente guarde el archivo de vídeo descargado desde la "
|
1092 |
-
"caché del navegador, pero desactivando el botón derecho hará que sea más difícil para los "
|
1093 |
-
"usuarios ocasionales guardar sus videos."
|
1094 |
-
|
1095 |
-
#: video-embed-thumbnail-generator.php:3652
|
1096 |
-
msgid "Set generated video thumbnails as featured images."
|
1097 |
-
msgstr "Establecer miniaturas de vídeo generadas como imágenes destacadas."
|
1098 |
-
|
1099 |
-
#: video-embed-thumbnail-generator.php:3652
|
1100 |
-
msgid ""
|
1101 |
-
"If your theme uses the featured image meta tag, this will automatically set a video's parent "
|
1102 |
-
"post's featured image to the most recently saved thumbnail image."
|
1103 |
-
msgstr ""
|
1104 |
-
"Si el tema utiliza la etiqueta meta de la imagen destacada, esto establecerá automáticamente "
|
1105 |
-
"después la imagen destacada de una publicación padre de un vídeo a la miniatura guardada más "
|
1106 |
-
"recientemente."
|
1107 |
-
|
1108 |
-
#: video-embed-thumbnail-generator.php:3652
|
1109 |
-
msgctxt "implied \"Set all thumbnails as featured\""
|
1110 |
-
msgid "Set all as featured"
|
1111 |
-
msgstr "Establecer todas como destacadas"
|
1112 |
-
|
1113 |
-
#: video-embed-thumbnail-generator.php:3652
|
1114 |
-
msgid ""
|
1115 |
-
"If you've generated thumbnails before enabling this option, this will set all existing "
|
1116 |
-
"thumbnails as featured images. Be careful!"
|
1117 |
-
msgstr ""
|
1118 |
-
"Si usted ha generado miniaturas antes de habilitar esta opción, esto hará que todas las "
|
1119 |
-
"miniaturas existentes se establezcan como imágenes destacadas. ¡Tenga cuidado!"
|
1120 |
-
|
1121 |
-
#: video-embed-thumbnail-generator.php:3663
|
1122 |
-
msgid ""
|
1123 |
-
"This depends on your theme. Thumbnails generated by the plugin can be saved as children of the "
|
1124 |
-
"video attachment or the post. Some themes use an image attached to a post instead of the built-"
|
1125 |
-
"in featured image meta tag. Version 3.x of this plugin saved all thumbnails as children of the "
|
1126 |
-
"video."
|
1127 |
-
msgstr ""
|
1128 |
-
"Esto depende de su tema. Miniaturas generadas por el plugin se pueden guardar como hijos del "
|
1129 |
-
"adjunto de video o en la publicación. Algunos temas usan una imagen adjunta a un mensaje en "
|
1130 |
-
"lugar de la etiqueta meta de la imagen destacada incorporada. La Versión 3.x de este plugin "
|
1131 |
-
"guardaba todas las miniaturas como hijos del vídeo."
|
1132 |
-
|
1133 |
-
#: video-embed-thumbnail-generator.php:3663
|
1134 |
-
msgid "Set all parents"
|
1135 |
-
msgstr "Establecer todos los padres"
|
1136 |
-
|
1137 |
-
#: video-embed-thumbnail-generator.php:3663
|
1138 |
-
msgid ""
|
1139 |
-
"If you've generated thumbnails before changing this option, this will set all existing "
|
1140 |
-
"thumbnails as children of your currently selected option."
|
1141 |
-
msgstr ""
|
1142 |
-
"Si usted ha generado miniaturas antes de cambiar esta opción, esto establecerá todas las "
|
1143 |
-
"miniaturas existentes como hijas de la opción seleccionada actualmente."
|
1144 |
-
|
1145 |
-
#: video-embed-thumbnail-generator.php:3670
|
1146 |
-
msgid "all"
|
1147 |
-
msgstr "todo"
|
1148 |
-
|
1149 |
-
#: video-embed-thumbnail-generator.php:3671
|
1150 |
-
msgid "encoded videos only"
|
1151 |
-
msgstr "solo videos codificados"
|
1152 |
-
|
1153 |
-
#: video-embed-thumbnail-generator.php:3677
|
1154 |
-
msgid ""
|
1155 |
-
"If you delete the original video you can choose to delete all associated attachments (thumbnails "
|
1156 |
-
"& videos) or keep the thumbnail."
|
1157 |
-
msgstr ""
|
1158 |
-
"Si elimina el vídeo original usted puede optar por eliminar todos los archivos adjuntos "
|
1159 |
-
"asociados (miniaturas y videos) o mantener la vista en miniatura."
|
1160 |
-
|
1161 |
-
#: video-embed-thumbnail-generator.php:3682
|
1162 |
-
#, php-format
|
1163 |
-
msgid ""
|
1164 |
-
"HTML tag applied to titles inserted above the video. Examples: %s. Corresponding closing tags "
|
1165 |
-
"will be applied to the end of the title automatically."
|
1166 |
-
msgstr ""
|
1167 |
-
"Etiqueta HTML aplicada a títulos insertados por encima del vídeo. Ejemplos: %s. Las etiquetas de "
|
1168 |
-
"cierre correspondientes se aplicarán al final del título de forma automática."
|
1169 |
-
|
1170 |
-
#: video-embed-thumbnail-generator.php:3687
|
1171 |
-
msgid "Match plugin settings"
|
1172 |
-
msgstr "Ajustar la configuración del plugin"
|
1173 |
-
|
1174 |
-
#: video-embed-thumbnail-generator.php:3687
|
1175 |
-
msgid "WordPress default"
|
1176 |
-
msgstr "Por defecto de WordPress "
|
1177 |
-
|
1178 |
-
#: video-embed-thumbnail-generator.php:3687
|
1179 |
-
msgid "Video only (deprecated)"
|
1180 |
-
msgstr "Sólo Video (obsoleto)"
|
1181 |
-
|
1182 |
-
#: video-embed-thumbnail-generator.php:3693
|
1183 |
-
msgid ""
|
1184 |
-
"The plugin can filter your media attachment page to display videos using your chosen settings, "
|
1185 |
-
"or completely replace your attachment template to show only the video. If you were one of the "
|
1186 |
-
"few people using iframe embed codes before version 4.0 of this plugin then you should continue "
|
1187 |
-
"to use \"Video only\" but otherwise it's not recommended."
|
1188 |
-
msgstr ""
|
1189 |
-
"El plugin puede filtrar su página de adjuntos de medios de comunicación para mostrar videos "
|
1190 |
-
"utilizando la configuración seleccionada, o reemplazar completamente la plantilla de adjuntos "
|
1191 |
-
"para mostrar sólo el video. Si usted es una de las pocas personas que utilizaban códigos dentro "
|
1192 |
-
"de un iframe antes de la versión 4.0 de este plugin, entonces usted debe seguir usando \"Video "
|
1193 |
-
"solamente\" pero no se recomienda utilizarlo de otra forma."
|
1194 |
-
|
1195 |
-
#: video-embed-thumbnail-generator.php:3707
|
1196 |
-
#, php-format
|
1197 |
-
msgid ""
|
1198 |
-
"This should be the folder where applications are installed on your server, not a direct path to "
|
1199 |
-
"an application, so it doesn't usually end with %1$s. Example: %2$s."
|
1200 |
-
msgstr ""
|
1201 |
-
"Esto debería ser la carpeta donde las aplicaciones se instalan en el servidor, no un camino "
|
1202 |
-
"directo a una aplicación, por lo que no suelen acabar con %1$s. Ejemplo: %2$s"
|
1203 |
-
|
1204 |
-
#: video-embed-thumbnail-generator.php:3719
|
1205 |
-
msgid ""
|
1206 |
-
"FFMPEG split into two separate branches in 2011. The new branch is called LIBAV and executes "
|
1207 |
-
"using \"avconv\" instead of \"ffmpeg.\" Both are still actively developed and FFMPEG frequently "
|
1208 |
-
"incorporates LIBAV features. Debian & Ubuntu users probably have LIBAV installed."
|
1209 |
-
msgstr ""
|
1210 |
-
"FFMPEG se divide en dos ramas separadas en 2011. La nueva rama se llama LIBAV y se ejecuta "
|
1211 |
-
"usando \"avconv\" en vez de \"ffmpeg.\" Ambos aún se están desarrollando activamente y FFMPEG "
|
1212 |
-
"con frecuencia incorpora características LIBAV. Los usuarios de Debian y Ubuntu, probablemente "
|
1213 |
-
"tienen LIBAV instalado."
|
1214 |
-
|
1215 |
-
#: video-embed-thumbnail-generator.php:3725
|
1216 |
-
#, php-format
|
1217 |
-
msgid ""
|
1218 |
-
"When possible, use the browser's built-in video capabilities to make thumbnails instead of %s."
|
1219 |
-
msgstr ""
|
1220 |
-
"Cuando sea posible, utilice las capacidades de vídeo integradas de su navegador para hacer "
|
1221 |
-
"miniaturas en lugar de %s."
|
1222 |
-
|
1223 |
-
#: video-embed-thumbnail-generator.php:3736 video-embed-thumbnail-generator.php:4008
|
1224 |
-
msgid "Custom"
|
1225 |
-
msgstr "Personalizado"
|
1226 |
-
|
1227 |
-
#: video-embed-thumbnail-generator.php:3739
|
1228 |
-
msgid "Replace original with"
|
1229 |
-
msgstr "Reemplazar el original con"
|
1230 |
-
|
1231 |
-
#: video-embed-thumbnail-generator.php:3749
|
1232 |
-
msgid ""
|
1233 |
-
"If you have FFMPEG/LIBAV and the proper libraries installed, you can choose to replace your "
|
1234 |
-
"uploaded video with your preferred format, and also transcode into as many as seven additional "
|
1235 |
-
"formats depending on the resolution of your original source. Different browsers have different "
|
1236 |
-
"playback capabilities. Most desktop browsers can play H.264, and all modern mobile devices can "
|
1237 |
-
"play at least 360p H.264. If you create multiple H.264 resolutions, the highest resolution "
|
1238 |
-
"supported by the device will be served up automatically. The plugin will not upconvert your "
|
1239 |
-
"video, so if you upload a 720p video, it will not waste your time creating a 1080p version. "
|
1240 |
-
"There was a time when it seemed like a good idea to provide OGV or WEBM for some desktop "
|
1241 |
-
"browsers, but even Firefox allows H.264 playback on most operating systems now. I no longer "
|
1242 |
-
"recommend encoding OGV or WEBM unless you expect a large number of no-Flash sticklers visiting "
|
1243 |
-
"your site. WEBM VP9 is a new technology and requires a version of FFMPEG or LIBAV newer than "
|
1244 |
-
"October 2013."
|
1245 |
-
msgstr ""
|
1246 |
-
"Si tiene FFMPEG/LIBAV y sus librerías instaladas, puede seleccionar reemplazar el vídeo subido "
|
1247 |
-
"por su formato preferido, e incluso transcodificarlo en hasta siete formatos adicionales "
|
1248 |
-
"dependiendo de la resolución del original. Los navegadores web tienen diferentes capacidades de "
|
1249 |
-
"reproducción. La mayoría de navegadores puede reproducir H.264, y todos los dispositivos móviles "
|
1250 |
-
"modernos puede reproducir al menos 360p H.264. Si crea múltiples resoluciones en H.264, ser "
|
1251 |
-
"servirá automáticamente la más alta que soporte el dispositivo. Este plugin no aumenta la "
|
1252 |
-
"resolución de su vídeo, por tanto si sube un vídeo de 720p, no perderá tiempo creando una "
|
1253 |
-
"versión de 1080p. Hubo un momento en el que parecía buena idea proveer formatos OGV o WEBM para "
|
1254 |
-
"algunos navegadores de escritorio, pero incluso Firefox permite reproducir H.264 en la mayoría "
|
1255 |
-
"de dispositivos ahora. No se recomienda codificar OGV o WEBM a menos que espere un gran número "
|
1256 |
-
"de visitas sin Flash a su sitio. WEBM VP9 es una nueva tecnología y requiere una versión de "
|
1257 |
-
"FFMPEG o LIBAV posterior a Octubre de 2013."
|
1258 |
-
|
1259 |
-
#: video-embed-thumbnail-generator.php:3750
|
1260 |
-
msgid "(iPhone 4s+, iPad 2+, modern Android, Windows Phone 8, Chrome, Safari, IE 9+, Firefox)"
|
1261 |
-
msgstr "(iPhone 4s+, iPad 2+, modern Android, Windows Phone 8, Chrome, Safari, IE 9+, Firefox)"
|
1262 |
-
|
1263 |
-
#: video-embed-thumbnail-generator.php:3751
|
1264 |
-
msgid "(iPhone 4+, iPad, most Android, Chrome, Safari, IE 9+, Firefox)"
|
1265 |
-
msgstr "(iPhone 4+, iPad, most Android, Chrome, Safari, IE 9+, Firefox)"
|
1266 |
-
|
1267 |
-
#: video-embed-thumbnail-generator.php:3782
|
1268 |
-
#, php-format
|
1269 |
-
msgid "Generate %1$s thumbnail from %2$s%% of the way through the video."
|
1270 |
-
msgid_plural "Generate %1$s thumbnails and set #%2$s as the main image."
|
1271 |
-
msgstr[0] "Generar %1$s miniatura desde %2$s%% sobre la marcha a través del vídeo."
|
1272 |
-
msgstr[1] "Generar %1$s miniaturas desde %2$s%% sobre la marcha a través del vídeo."
|
1273 |
-
|
1274 |
-
#: video-embed-thumbnail-generator.php:3790
|
1275 |
-
msgid "Encode formats selected above."
|
1276 |
-
msgstr "Formatos de codificación seleccionados arriba"
|
1277 |
-
|
1278 |
-
#: video-embed-thumbnail-generator.php:3810
|
1279 |
-
msgid "Generate thumbnails"
|
1280 |
-
msgstr "Generar miniaturas"
|
1281 |
-
|
1282 |
-
#: video-embed-thumbnail-generator.php:3810
|
1283 |
-
#, php-format
|
1284 |
-
msgid ""
|
1285 |
-
"Use %s to automatically generate thumbnails for every video in the Media Library that doesn't "
|
1286 |
-
"already have them. Uses the automatic thumbnail settings above. This could take a very long time "
|
1287 |
-
"if you have a lot of videos. Proceed with caution!"
|
1288 |
-
msgstr ""
|
1289 |
-
"Usar %s para automáticamente generar miniaturas para cada vídeo de la Librería de Medios que no "
|
1290 |
-
"la tenga previamente. Utiliza la configuración de miniaturas automáticas de más arriba. Este "
|
1291 |
-
"procesos puede tardar bastante tiempo. ¡Ejecútalo con precaución!"
|
1292 |
-
|
1293 |
-
#: video-embed-thumbnail-generator.php:3811
|
1294 |
-
msgid "Encode videos"
|
1295 |
-
msgstr "Codificar vídeos"
|
1296 |
-
|
1297 |
-
#: video-embed-thumbnail-generator.php:3811
|
1298 |
-
msgid ""
|
1299 |
-
"Add every video in the Media Library to the encode queue if it hasn't already been encoded. Uses "
|
1300 |
-
"the default encode formats chosen above."
|
1301 |
-
msgstr ""
|
1302 |
-
"Añadir cada vídeo en la Librería de Medios a la cola de codificación si todavía no ha sido "
|
1303 |
-
"codificado. Utiliza el formato por defecto seleccionado más arriba."
|
1304 |
-
|
1305 |
-
#: video-embed-thumbnail-generator.php:3818
|
1306 |
-
msgid "Username:"
|
1307 |
-
msgstr "Nombre de Usuario:"
|
1308 |
-
|
1309 |
-
#: video-embed-thumbnail-generator.php:3819
|
1310 |
-
msgid "Password:"
|
1311 |
-
msgstr "Contraseña:"
|
1312 |
-
|
1313 |
-
#: video-embed-thumbnail-generator.php:3819
|
1314 |
-
#, php-format
|
1315 |
-
msgid "If your videos are htaccess protected, %s will access them using these credentials."
|
1316 |
-
msgstr ""
|
1317 |
-
"Si sus vídeos están protegidos por htaccess,%s accederá a ellos utilizando estas credenciales."
|
1318 |
-
|
1319 |
-
#: video-embed-thumbnail-generator.php:3827
|
1320 |
-
#, php-format
|
1321 |
-
msgid "Scale: %s%% of video covered by the watermark."
|
1322 |
-
msgstr "Escala: %s%% del vídeo cubierta por la marca de agua."
|
1323 |
-
|
1324 |
-
#: video-embed-thumbnail-generator.php:3828
|
1325 |
-
msgctxt "horizontal center"
|
1326 |
-
msgid "center"
|
1327 |
-
msgstr "centrar"
|
1328 |
-
|
1329 |
-
#: video-embed-thumbnail-generator.php:3829
|
1330 |
-
msgid "Horizontal align:"
|
1331 |
-
msgstr "Alineación horizontal:"
|
1332 |
-
|
1333 |
-
#: video-embed-thumbnail-generator.php:3836 video-embed-thumbnail-generator.php:3846
|
1334 |
-
msgid "offset"
|
1335 |
-
msgstr "desplazamiento"
|
1336 |
-
|
1337 |
-
#: video-embed-thumbnail-generator.php:3838
|
1338 |
-
msgid "Vertical align:"
|
1339 |
-
msgstr "Alineación vertical"
|
1340 |
-
|
1341 |
-
#: video-embed-thumbnail-generator.php:3840
|
1342 |
-
msgid "top"
|
1343 |
-
msgstr "parte superior"
|
1344 |
-
|
1345 |
-
#: video-embed-thumbnail-generator.php:3840
|
1346 |
-
msgctxt "vertical center"
|
1347 |
-
msgid "center"
|
1348 |
-
msgstr "centrar"
|
1349 |
-
|
1350 |
-
#: video-embed-thumbnail-generator.php:3840
|
1351 |
-
msgid "bottom"
|
1352 |
-
msgstr "inferior"
|
1353 |
-
|
1354 |
-
#: video-embed-thumbnail-generator.php:3863
|
1355 |
-
#, php-format
|
1356 |
-
msgid ""
|
1357 |
-
"By default %1$s places moov atoms at the end of H.264 encoded files, which forces the entire "
|
1358 |
-
"file to download before playback can start and can prevent Flash players from playing them at "
|
1359 |
-
"all. Since approximately October 2012 %1$s can fix the problem at the end of the encoding "
|
1360 |
-
"process by using the option `movflags faststart`. This is the easiest and fastest way to correct "
|
1361 |
-
"the problem, but older versions of %1$s will not work if you select the movflags option. If you "
|
1362 |
-
"can't update to a new version of %1$s, select qt-faststart or MP4Box which will run after "
|
1363 |
-
"encoding is finished if they are installed on your server."
|
1364 |
-
msgstr ""
|
1365 |
-
"Por defecto %1$s coloca átomos moov al final de archivos H.264 codificados, lo que obliga a todo "
|
1366 |
-
"el archivo a descargar antes de que la reproducción se pueda iniciar y se puede evitar que los "
|
1367 |
-
"reproductores Flash los puedan re´roducir. Desde aproximadamente en Octubre de 2012 %1$s puede "
|
1368 |
-
"corregir el problema al final del proceso de codificación mediante el uso de la opción `movflags "
|
1369 |
-
"faststart`. Esta es la forma más fácil y rápida para corregir el problema, pero las versiones "
|
1370 |
-
"anteriores de %1$s no funcionarán si se selecciona la opción movflags. Si no se puede actualizar "
|
1371 |
-
"a una nueva versión de %1$s, seleccione qt-faststart o MP4Box que se ejecutarán después de que "
|
1372 |
-
"la codificación termine si están instalados en su servidor."
|
1373 |
-
|
1374 |
-
#: video-embed-thumbnail-generator.php:3864
|
1375 |
-
#, php-format
|
1376 |
-
msgid "Path to %s:"
|
1377 |
-
msgstr "Ruta a %s:"
|
1378 |
-
|
1379 |
-
#: video-embed-thumbnail-generator.php:3877
|
1380 |
-
msgid ""
|
1381 |
-
"Constant Rate Factor (CRF) attempts to maintain a particular quality output for the entire video "
|
1382 |
-
"and only uses bits the encoder determines are necessary. Average Bit Rate is similar to the "
|
1383 |
-
"method used in older versions of this plugin. If CRF is selected, WEBM encoding will also use "
|
1384 |
-
"the ABR setting to set a max bit rate 25% higher than the ABR. Without a max bit rate setting "
|
1385 |
-
"WEBM files are terrible quality."
|
1386 |
-
msgstr ""
|
1387 |
-
"Constant Rate Factor (CRF) (Factor de Tasa Constante) intenta mantener una salida de calidad "
|
1388 |
-
"especial para todo el vídeo y sólo utiliza bits que el codificador determina que son necesarios. "
|
1389 |
-
"Velocidad de bits media es similar al método utilizado en las versiones anteriores de este "
|
1390 |
-
"plugin. Si se selecciona el CRF, la codificación WEBM también utilizará la configuración de ABR "
|
1391 |
-
"para establecer una tasa de bits máxima de 25% más alta que el ABR. Sin una tasa de bits máxima "
|
1392 |
-
"los archivos de configuración WEBM son de terrible calidad."
|
1393 |
-
|
1394 |
-
#: video-embed-thumbnail-generator.php:3889
|
1395 |
-
msgid "Lower values are higher quality. 18 is considered visually lossless. Default is 23."
|
1396 |
-
msgstr ""
|
1397 |
-
"Los valores más bajos son de mayor calidad. 18 se considera visualmente sin pérdidas. El valor "
|
1398 |
-
"predeterminado es 23."
|
1399 |
-
|
1400 |
-
#: video-embed-thumbnail-generator.php:3896
|
1401 |
-
msgid "Lower values are higher quality. Default is 10."
|
1402 |
-
msgstr "Los valores más bajos son de mayor calidad. El valor predeterminado es 10."
|
1403 |
-
|
1404 |
-
#: video-embed-thumbnail-generator.php:3903
|
1405 |
-
msgid "Higher values are higher quality. Default is 6."
|
1406 |
-
msgstr "Los valores más altos son de mayor calidad. El valor predeterminado es 6."
|
1407 |
-
|
1408 |
-
#: video-embed-thumbnail-generator.php:3915
|
1409 |
-
msgid "bits per pixel."
|
1410 |
-
msgstr "Bits por píxel."
|
1411 |
-
|
1412 |
-
#: video-embed-thumbnail-generator.php:3915
|
1413 |
-
msgid "Default is 0.1"
|
1414 |
-
msgstr "Por defecto es 0.1"
|
1415 |
-
|
1416 |
-
#: video-embed-thumbnail-generator.php:3931
|
1417 |
-
msgctxt "H.264 profile. Might not need translation"
|
1418 |
-
msgid "profile"
|
1419 |
-
msgstr "perfil"
|
1420 |
-
|
1421 |
-
#: video-embed-thumbnail-generator.php:3931
|
1422 |
-
msgid ""
|
1423 |
-
"Lower profiles will slightly increase file sizes. This mostly depends on your need for "
|
1424 |
-
"compatability with Android devices. Main profile seems to work on recent phones, although "
|
1425 |
-
"officially Android only supports baseline. High profile is not recommended for mobile or Flash "
|
1426 |
-
"compatibility, and anything above high is designed for professional video and probably "
|
1427 |
-
"incompatible with consumer devices. Older versions of FFMPEG might ignore this setting "
|
1428 |
-
"altogether."
|
1429 |
-
msgstr ""
|
1430 |
-
"Perfiles menores aumentan ligeramente el tamaño de los archivos. Esto depende principalmente de "
|
1431 |
-
"su necesidad de compatibilidad con los dispositivos Android. Perfil principal parece funcionar "
|
1432 |
-
"en los teléfonos más recientes, aunque oficialmente Android sólo es compatible con la línea de "
|
1433 |
-
"base. Alto perfil, no se recomienda para la compatibilidad móvil o Flash, y cualquier cosa por "
|
1434 |
-
"encima de alto está diseñada para vídeo profesional y probablemente incompatible con los "
|
1435 |
-
"dispositivos de consumo. Las versiones anteriores de FFMPEG pueden ignorar esta configuración "
|
1436 |
-
"por completo."
|
1437 |
-
|
1438 |
-
#: video-embed-thumbnail-generator.php:3938
|
1439 |
-
msgctxt "H.264 level. Might not need translation"
|
1440 |
-
msgid "level"
|
1441 |
-
msgstr "nivel"
|
1442 |
-
|
1443 |
-
#: video-embed-thumbnail-generator.php:3938
|
1444 |
-
msgid ""
|
1445 |
-
"3.0 is default. Lower levels will lower maximum bit rates and decoding complexity. This mostly "
|
1446 |
-
"depends on your need for compatability with mobile devices. Older versions of FFMPEG might "
|
1447 |
-
"ignore this setting altogether."
|
1448 |
-
msgstr ""
|
1449 |
-
"3.0 es el predeterminado. Los niveles más bajos reducirán las tasas de bits máxima y la "
|
1450 |
-
"complejidad de decodificación. Esto depende principalmente de su necesidad de compatibilidad con "
|
1451 |
-
"dispositivos móviles. Las versiones anteriores de FFMPEG pueden ignorar esta configuración por "
|
1452 |
-
"completo."
|
1453 |
-
|
1454 |
-
#: video-embed-thumbnail-generator.php:3958
|
1455 |
-
msgid "Enable legacy FFMPEG \"-b\" and \"-ba\" bitrate flags."
|
1456 |
-
msgstr "Habilitar banderas de bitratio FFMPEG \"b\" y \"-ba\" legacy."
|
1457 |
-
|
1458 |
-
#: video-embed-thumbnail-generator.php:3958
|
1459 |
-
msgid ""
|
1460 |
-
"Enable if your installed version of FFMPEG is old enough that you can't use the newer -b:v flags "
|
1461 |
-
"(Dreamhost users must turn this on). It may cause newer versions of FFMPEG to fail."
|
1462 |
-
msgstr ""
|
1463 |
-
"Habilitar si la versión instalada de FFMPEG es tan antigua que no puede utilizar las banderas –b:"
|
1464 |
-
"v más nuevas (usuarios Dreamhost deben habilitar esta función). Puede causar que nuevas "
|
1465 |
-
"versiones de FFMPEG fallen."
|
1466 |
-
|
1467 |
-
#: video-embed-thumbnail-generator.php:3959
|
1468 |
-
msgid "Enable legacy libx264 parameters."
|
1469 |
-
msgstr "Habilitar parámetros nativos de libx264"
|
1470 |
-
|
1471 |
-
#: video-embed-thumbnail-generator.php:3959
|
1472 |
-
msgid ""
|
1473 |
-
"Enable if your installed version of FFMPEG is old enough that libx264 requires additional "
|
1474 |
-
"configuration to operate (Dreamhost users must turn this on). This should help if you can encode "
|
1475 |
-
"WEBM or OGV files but H264/Mobile files fail. It could cause newer versions of FFMPEG to fail."
|
1476 |
-
msgstr ""
|
1477 |
-
"Habilitar si la versión instalada de FFMPEG es tan antigua que libx264 requiere una "
|
1478 |
-
"configuración adicional para operar (usuarios Dreamhost deben habilitar esta función). Esto "
|
1479 |
-
"debería ayudar si usted puede codificar archivos WEBM o OGV pero los archivos H264/Mobile "
|
1480 |
-
"fallan. Podría causar que nuevas versiones de ffmpeg para fallen."
|
1481 |
-
|
1482 |
-
#: video-embed-thumbnail-generator.php:3960
|
1483 |
-
msgid "Enable legacy FFMPEG rotation method."
|
1484 |
-
msgstr "Habilitar método de rotación nativo de FFMPEG"
|
1485 |
-
|
1486 |
-
#: video-embed-thumbnail-generator.php:3960
|
1487 |
-
msgid ""
|
1488 |
-
"Enable if vertical videos shot on mobile devices don't rotate correctly or generate errors. If "
|
1489 |
-
"legacy libx264 paramaters are necessary, rotation won't work at all."
|
1490 |
-
msgstr ""
|
1491 |
-
"Habilitar si los vídeos tomados en vertical en dispositivos móviles no rotan correctamente o "
|
1492 |
-
"generan errores. Si son necesarios los parámetros nativos de libx26, la rotación no funcionará."
|
1493 |
-
|
1494 |
-
#: video-embed-thumbnail-generator.php:3961
|
1495 |
-
msgid "Disable stdin."
|
1496 |
-
msgstr "Desactivar stdin."
|
1497 |
-
|
1498 |
-
#: video-embed-thumbnail-generator.php:3961
|
1499 |
-
msgid ""
|
1500 |
-
"Turn off this checkbox if your installed version of FFMPEG is old enough that it does not "
|
1501 |
-
"recognize the nostdin flag (Dreamhost users must turn this off)."
|
1502 |
-
msgstr ""
|
1503 |
-
"Habilitar si la versión instalada de FFMPEG es tan antigua que no reconoce la bandera nostdin "
|
1504 |
-
"(Los usuarios de Dreamhost deben deshabilitar esta función)."
|
1505 |
-
|
1506 |
-
#: video-embed-thumbnail-generator.php:3974
|
1507 |
-
msgid "Simultaneous encodes."
|
1508 |
-
msgstr "Codificaciones simultáneas."
|
1509 |
-
|
1510 |
-
#: video-embed-thumbnail-generator.php:3974
|
1511 |
-
#, php-format
|
1512 |
-
msgid ""
|
1513 |
-
"Increasing the number will allow %1$s to encode more than one file at a time, but may lead to "
|
1514 |
-
"%1$s monopolizing system resources."
|
1515 |
-
msgstr ""
|
1516 |
-
"Aumentar el número permitirá %1$s para codificar más de un archivo a la vez, pero pueden dar "
|
1517 |
-
"lugar a %1$s monopolizando los recursos del sistema."
|
1518 |
-
|
1519 |
-
#: video-embed-thumbnail-generator.php:3981
|
1520 |
-
msgctxt "CPU threads. Might not need translating"
|
1521 |
-
msgid "threads"
|
1522 |
-
msgstr "hilos"
|
1523 |
-
|
1524 |
-
#: video-embed-thumbnail-generator.php:3981
|
1525 |
-
#, php-format
|
1526 |
-
msgid ""
|
1527 |
-
"Default is 1, which limits encoding speed but prevents encoding from using too many system "
|
1528 |
-
"resources. Selecting 0 will allow %1$s to optimize the number of threads or you can set the "
|
1529 |
-
"number manually. This may lead to %1$s monopolizing system resources."
|
1530 |
-
msgstr ""
|
1531 |
-
"Por defecto es 1, que limita la velocidad de codificación, pero evita a la codificación utilizar "
|
1532 |
-
"demasiados recursos del sistema. Seleccionar 0 permitirá %1$s para optimizar el número de hilos "
|
1533 |
-
"o puede configurar el número manualmente. Esto puede llevar a %1$s a monopolizar los recursos "
|
1534 |
-
"del sistema"
|
1535 |
-
|
1536 |
-
#: video-embed-thumbnail-generator.php:3983
|
1537 |
-
msgctxt "execute program"
|
1538 |
-
msgid "Run"
|
1539 |
-
msgstr "Ejecutar"
|
1540 |
-
|
1541 |
-
#: video-embed-thumbnail-generator.php:3983
|
1542 |
-
#, php-format
|
1543 |
-
msgid "Tells %1$s to run at a lower priority to avoid monopolizing system resources."
|
1544 |
-
msgstr ""
|
1545 |
-
"Dice a %1$s que se ejecute con una prioridad más baja para evitar la monopolización de los "
|
1546 |
-
"recursos delsistema."
|
1547 |
-
|
1548 |
-
#: video-embed-thumbnail-generator.php:4007
|
1549 |
-
msgid "Replace"
|
1550 |
-
msgstr "Reemplazar"
|
1551 |
-
|
1552 |
-
#: video-embed-thumbnail-generator.php:4017
|
1553 |
-
#, php-format
|
1554 |
-
msgid "%1$s sample %2$s encode command"
|
1555 |
-
msgstr "%1$s muestra %2$s comando de codificación"
|
1556 |
-
|
1557 |
-
#: video-embed-thumbnail-generator.php:4018
|
1558 |
-
#, php-format
|
1559 |
-
msgid "%s test output:"
|
1560 |
-
msgstr "%s salida de prueba:"
|
1561 |
-
|
1562 |
-
#: video-embed-thumbnail-generator.php:4018
|
1563 |
-
#, php-format
|
1564 |
-
msgid "For help interpreting this output, %s try our Wiki page on Github"
|
1565 |
-
msgstr "Para ayudar a la interpretación de esta salida,%s, pruebe nuestra página Wiki en Github"
|
1566 |
-
|
1567 |
-
#: video-embed-thumbnail-generator.php:4226
|
1568 |
-
#, php-format
|
1569 |
-
msgid ""
|
1570 |
-
"%1$s is disabled in PHP settings. You can embed existing videos and make thumbnails with "
|
1571 |
-
"compatible browsers, but video encoding will not work. Contact your System Administrator to find "
|
1572 |
-
"out if you can enable %1$s."
|
1573 |
-
msgstr ""
|
1574 |
-
"%1$s está deshabilitado en la configuración de PHP. Puede insertar vídeos existentes y crear las "
|
1575 |
-
"miniaturas con los navegadores compatibles, pero la codificación de vídeo no funcionará. Póngase "
|
1576 |
-
"en contacto con el administrador del sistema para averiguar si se puede habilitar %1$s."
|
1577 |
-
|
1578 |
-
#: video-embed-thumbnail-generator.php:4234
|
1579 |
-
#, php-format
|
1580 |
-
msgid ""
|
1581 |
-
"%1$s is not executing correctly at %2$s. You can embed existing videos and make thumbnails with "
|
1582 |
-
"compatible browsers, but video encoding is not possible without %1$s."
|
1583 |
-
msgstr ""
|
1584 |
-
"%1$s no se encuentra en %2$s. Puede insertar videos existentes y hacer miniaturas con los "
|
1585 |
-
"navegadores compatibles, pero la codificación de vídeo no es posible sin %1$s."
|
1586 |
-
|
1587 |
-
#: video-embed-thumbnail-generator.php:4234
|
1588 |
-
msgid "Error message:"
|
1589 |
-
msgstr "Mensaje de error:"
|
1590 |
-
|
1591 |
-
#: video-embed-thumbnail-generator.php:4249
|
1592 |
-
msgid "Video Embed & Thumbnail Generator settings reset to default values."
|
1593 |
-
msgstr "Ajustes de Video Embed & Thumbnail Generator restablecidas a valores por defecto."
|
1594 |
-
|
1595 |
-
#: video-embed-thumbnail-generator.php:4260
|
1596 |
-
msgid "You must enter a value for the maximum video width."
|
1597 |
-
msgstr "Debe ingresar un valor para el ancho máximo del video."
|
1598 |
-
|
1599 |
-
#: video-embed-thumbnail-generator.php:4264
|
1600 |
-
msgid "You must enter a value for the maximum video height."
|
1601 |
-
msgstr "Debe ingresar un valor para la altura máxima del video."
|
1602 |
-
|
1603 |
-
#: video-embed-thumbnail-generator.php:4268
|
1604 |
-
msgid "You must enter a value for the maximum gallery video width."
|
1605 |
-
msgstr "Debe ingresar un valor para el ancho máximo de la galería del vídeo."
|
1606 |
-
|
1607 |
-
#: video-embed-thumbnail-generator.php:4667 video-embed-thumbnail-generator.php:4882
|
1608 |
-
msgid "Video Stats"
|
1609 |
-
msgstr "Estadísticas Vídeo"
|
1610 |
-
|
1611 |
-
#. translators: Start refers to the number of times a video has been started
|
1612 |
-
#: video-embed-thumbnail-generator.php:4669 video-embed-thumbnail-generator.php:4895
|
1613 |
-
#, php-format
|
1614 |
-
msgid "%d Start"
|
1615 |
-
msgid_plural "%d Starts"
|
1616 |
-
msgstr[0] "%d reproducción comenzada"
|
1617 |
-
msgstr[1] "%d reproducciones comenzadas"
|
1618 |
-
|
1619 |
-
#: video-embed-thumbnail-generator.php:4669 video-embed-thumbnail-generator.php:4897
|
1620 |
-
#, php-format
|
1621 |
-
msgid "%d Complete View"
|
1622 |
-
msgid_plural "%d Complete Views"
|
1623 |
-
msgstr[0] "%d reproducción completa"
|
1624 |
-
msgstr[1] "%d reproducciones completas"
|
1625 |
-
|
1626 |
-
#: video-embed-thumbnail-generator.php:4669
|
1627 |
-
msgid "Video ID:"
|
1628 |
-
msgstr "ID de Vídeo:"
|
1629 |
-
|
1630 |
-
#: video-embed-thumbnail-generator.php:4698
|
1631 |
-
#, php-format
|
1632 |
-
msgid "%1$s not found at %2$s and unable to load video in browser for thumbnail generation."
|
1633 |
-
msgstr ""
|
1634 |
-
"%1$s no encontrado en %2$s y no puede cargar el video en el navegador para la generación de "
|
1635 |
-
"imágenes en miniatura."
|
1636 |
-
|
1637 |
-
#: video-embed-thumbnail-generator.php:4759
|
1638 |
-
msgctxt "Button text. Implied \"Generate thumbnails\""
|
1639 |
-
msgid "Generate"
|
1640 |
-
msgstr "Generar"
|
1641 |
-
|
1642 |
-
#: video-embed-thumbnail-generator.php:4760
|
1643 |
-
msgctxt "Button text. Implied \"Randomize thumbnail generation\""
|
1644 |
-
msgid "Randomize"
|
1645 |
-
msgstr "Aleatorio"
|
1646 |
-
|
1647 |
-
#: video-embed-thumbnail-generator.php:4761
|
1648 |
-
msgid "Force 1st frame thumbnail"
|
1649 |
-
msgstr "Forzar el 1er cuadro de la miniatura"
|
1650 |
-
|
1651 |
-
#: video-embed-thumbnail-generator.php:4763 video-embed-thumbnail-generator.php:5374
|
1652 |
-
msgid "Thumbnail timecode:"
|
1653 |
-
msgstr "Código de tiempo de la miniatura:"
|
1654 |
-
|
1655 |
-
#: video-embed-thumbnail-generator.php:4770
|
1656 |
-
msgctxt "Header for thumbnail section"
|
1657 |
-
msgid "Thumbnails"
|
1658 |
-
msgstr "Miniaturas"
|
1659 |
-
|
1660 |
-
#: video-embed-thumbnail-generator.php:4778 video-embed-thumbnail-generator.php:5375
|
1661 |
-
msgid "Set thumbnail as featured image"
|
1662 |
-
msgstr "Establecer miniatura como imagen destacada"
|
1663 |
-
|
1664 |
-
#: video-embed-thumbnail-generator.php:4780 video-embed-thumbnail-generator.php:5380
|
1665 |
-
msgid "Thumbnail URL"
|
1666 |
-
msgstr "URL de Miniatura"
|
1667 |
-
|
1668 |
-
#: video-embed-thumbnail-generator.php:4782 video-embed-thumbnail-generator.php:5382
|
1669 |
-
#, php-format
|
1670 |
-
msgid "Leave blank to use %sdefault thumbnail"
|
1671 |
-
msgstr "Dejar en blanco para usar miniatura %s por defecto"
|
1672 |
-
|
1673 |
-
#: video-embed-thumbnail-generator.php:4784
|
1674 |
-
msgid "Video Embed Dimensions"
|
1675 |
-
msgstr "Dimensiones Incrustación de Video"
|
1676 |
-
|
1677 |
-
#: video-embed-thumbnail-generator.php:4789
|
1678 |
-
msgid "Lock to aspect ratio"
|
1679 |
-
msgstr "Bloquear a la relación de aspecto"
|
1680 |
-
|
1681 |
-
#: video-embed-thumbnail-generator.php:4790 video-embed-thumbnail-generator.php:5387
|
1682 |
-
#, php-format
|
1683 |
-
msgid "Leave blank to use %sdefault dimensions"
|
1684 |
-
msgstr "Dejar en blanco para usar %s dimensiones por defecto"
|
1685 |
-
|
1686 |
-
#: video-embed-thumbnail-generator.php:4795 video-embed-thumbnail-generator.php:5391
|
1687 |
-
msgid "Additional Formats"
|
1688 |
-
msgstr "Formatos adicionales"
|
1689 |
-
|
1690 |
-
#: video-embed-thumbnail-generator.php:4810
|
1691 |
-
msgctxt "captions track"
|
1692 |
-
msgid "Track"
|
1693 |
-
msgstr "Pista"
|
1694 |
-
|
1695 |
-
#: video-embed-thumbnail-generator.php:4814
|
1696 |
-
msgctxt "two-letter code indicating track's language"
|
1697 |
-
msgid "Language code:"
|
1698 |
-
msgstr "Código de idioma:"
|
1699 |
-
|
1700 |
-
#: video-embed-thumbnail-generator.php:4815 video-embed-thumbnail-generator.php:5397
|
1701 |
-
msgid "Label:"
|
1702 |
-
msgstr "Etiqueta:"
|
1703 |
-
|
1704 |
-
#: video-embed-thumbnail-generator.php:4820 video-embed-thumbnail-generator.php:5396
|
1705 |
-
msgid "Subtitles & Captions"
|
1706 |
-
msgstr "Subtítulos y capciones"
|
1707 |
-
|
1708 |
-
#: video-embed-thumbnail-generator.php:4822
|
1709 |
-
msgid "Add track"
|
1710 |
-
msgstr "Añadir pista"
|
1711 |
-
|
1712 |
-
#: video-embed-thumbnail-generator.php:4825
|
1713 |
-
msgid "Single Video"
|
1714 |
-
msgstr "Vídeo Único"
|
1715 |
-
|
1716 |
-
#: video-embed-thumbnail-generator.php:4825
|
1717 |
-
msgid "Video Gallery"
|
1718 |
-
msgstr "Galería Vídeo"
|
1719 |
-
|
1720 |
-
#: video-embed-thumbnail-generator.php:4833
|
1721 |
-
msgid "Video Embed Options"
|
1722 |
-
msgstr "Opciones Incrustación Video"
|
1723 |
-
|
1724 |
-
#: video-embed-thumbnail-generator.php:4836
|
1725 |
-
msgid "Insert title above video"
|
1726 |
-
msgstr "Insertar título vídeo de arriba"
|
1727 |
-
|
1728 |
-
#: video-embed-thumbnail-generator.php:4838
|
1729 |
-
msgid "Insert download link below video"
|
1730 |
-
msgstr "Insertar enlace de descarga a continuación"
|
1731 |
-
|
1732 |
-
#: video-embed-thumbnail-generator.php:4838
|
1733 |
-
msgid "Makes it easier for users to download file."
|
1734 |
-
msgstr "Hace que sea más fácil para los usuarios descargar el archivo."
|
1735 |
-
|
1736 |
-
#: video-embed-thumbnail-generator.php:4839
|
1737 |
-
msgctxt "verb"
|
1738 |
-
msgid "Insert"
|
1739 |
-
msgstr "Insertar"
|
1740 |
-
|
1741 |
-
#: video-embed-thumbnail-generator.php:4863
|
1742 |
-
msgid "Gallery Settings (all optional)"
|
1743 |
-
msgstr "Configuración de la Galería (todos opcionales)"
|
1744 |
-
|
1745 |
-
#: video-embed-thumbnail-generator.php:4865
|
1746 |
-
msgid "Thumbnail Width"
|
1747 |
-
msgstr "Ancho Miniatura"
|
1748 |
-
|
1749 |
-
#: video-embed-thumbnail-generator.php:4866
|
1750 |
-
msgid "Order By"
|
1751 |
-
msgstr "Ordenar Por"
|
1752 |
-
|
1753 |
-
#: video-embed-thumbnail-generator.php:4867
|
1754 |
-
msgid "Sort Order"
|
1755 |
-
msgstr "Orden de Clasificación"
|
1756 |
-
|
1757 |
-
#: video-embed-thumbnail-generator.php:4868
|
1758 |
-
msgid "Exclude"
|
1759 |
-
msgstr "Excluir"
|
1760 |
-
|
1761 |
-
#: video-embed-thumbnail-generator.php:4869
|
1762 |
-
msgid "Include"
|
1763 |
-
msgstr "Incluir"
|
1764 |
-
|
1765 |
-
#: video-embed-thumbnail-generator.php:4870
|
1766 |
-
msgid "Post ID"
|
1767 |
-
msgstr "Identificación de la publicación"
|
1768 |
-
|
1769 |
-
#: video-embed-thumbnail-generator.php:5071
|
1770 |
-
msgctxt "text appended to newly created thumbnail titles"
|
1771 |
-
msgid "thumbnail"
|
1772 |
-
msgstr "miniatura"
|
1773 |
-
|
1774 |
-
#: video-embed-thumbnail-generator.php:5326
|
1775 |
-
msgctxt "Title in \"Add Media\" popup sidebar"
|
1776 |
-
msgid "Embed Video from URL"
|
1777 |
-
msgstr "Incrustar Vídeo desde la URL"
|
1778 |
-
|
1779 |
-
#: video-embed-thumbnail-generator.php:5356
|
1780 |
-
msgid "Video Title"
|
1781 |
-
msgstr "Título del vídeo"
|
1782 |
-
|
1783 |
-
#: video-embed-thumbnail-generator.php:5358
|
1784 |
-
msgid "Add an optional header above the video."
|
1785 |
-
msgstr "Añade una cabecera opcional sobre el vídeo."
|
1786 |
-
|
1787 |
-
#: video-embed-thumbnail-generator.php:5363
|
1788 |
-
msgid "Specify the URL of the video file."
|
1789 |
-
msgstr "Especifique la URL del archivo de vídeo."
|
1790 |
-
|
1791 |
-
#: video-embed-thumbnail-generator.php:5367
|
1792 |
-
msgid "Thumbnails"
|
1793 |
-
msgstr "Miniaturas"
|
1794 |
-
|
1795 |
-
#: video-embed-thumbnail-generator.php:5369
|
1796 |
-
msgid "Number of Thumbnails"
|
1797 |
-
msgstr "Número de miniaturas"
|
1798 |
-
|
1799 |
-
#: video-embed-thumbnail-generator.php:5372
|
1800 |
-
msgid "Force 1st Frame Thumbnail"
|
1801 |
-
msgstr "Fuerza la primera imagen como miniatura"
|
1802 |
-
|
1803 |
-
#: video-embed-thumbnail-generator.php:5385
|
1804 |
-
msgid "Dimensions"
|
1805 |
-
msgstr "Dimensiones"
|
1806 |
-
|
1807 |
-
#: video-embed-thumbnail-generator.php:5386
|
1808 |
-
msgid "Lock to Aspect Ratio"
|
1809 |
-
msgstr "Bloque el ratio de aspecto"
|
1810 |
-
|
1811 |
-
#: video-embed-thumbnail-generator.php:5400
|
1812 |
-
msgid "Generate Download Link Below Video"
|
1813 |
-
msgstr "Genera enlace de descarga por debajo del vídeo"
|
1814 |
-
|
1815 |
-
#: video-embed-thumbnail-generator.php:5400
|
1816 |
-
msgid "Makes it easier for users to download video file"
|
1817 |
-
msgstr "Hace más fácil a los usuarios descargar el archivo de vídeo"
|
1818 |
-
|
1819 |
-
#: video-embed-thumbnail-generator.php:5405
|
1820 |
-
msgid "Insert into Post"
|
1821 |
-
msgstr "Insertar en el Post"
|
1822 |
-
|
1823 |
-
#: video-embed-thumbnail-generator.php:5459
|
1824 |
-
msgctxt "example video"
|
1825 |
-
msgid "Sample Video"
|
1826 |
-
msgstr "Vídeo de ejemplo"
|
1827 |
-
|
1828 |
-
#: video-embed-thumbnail-generator.php:5460
|
1829 |
-
msgid "Sample Embed Code"
|
1830 |
-
msgstr "Muestra de Código Incrustado"
|
1831 |
-
|
1832 |
-
#: video-embed-thumbnail-generator.php:5461
|
1833 |
-
msgid "If text is entered in the attachment's caption field it is displayed here automatically."
|
1834 |
-
msgstr ""
|
1835 |
-
"Si se introduce texto en el campo de título del adjunto, se muestra aquí de forma automática."
|
1836 |
-
|
1837 |
-
#: video-embed-thumbnail-generator.php:5809 video-embed-thumbnail-generator.php:5954
|
1838 |
-
msgid "Can't open movie file."
|
1839 |
-
msgstr "No se puede abrir el archivo de película."
|
1840 |
-
|
1841 |
-
#: video-embed-thumbnail-generator.php:5932
|
1842 |
-
#, php-format
|
1843 |
-
msgid "%1$s updated in existing queue entry in position %2$s."
|
1844 |
-
msgstr "%1$s actualizad en la cola de entrada en la posición %2$s."
|
1845 |
-
|
1846 |
-
#: video-embed-thumbnail-generator.php:5933
|
1847 |
-
#, php-format
|
1848 |
-
msgid "Video is already queued in position %s."
|
1849 |
-
msgstr "El vídeo ya está en la cola en la posición %s."
|
1850 |
-
|
1851 |
-
#: video-embed-thumbnail-generator.php:5940
|
1852 |
-
msgid "Starting"
|
1853 |
-
msgstr "Iniciando"
|
1854 |
-
|
1855 |
-
#: video-embed-thumbnail-generator.php:5941
|
1856 |
-
#, php-format
|
1857 |
-
msgid "%1$s added to queue in position %2$s."
|
1858 |
-
msgstr "%1$s añadido a la cola en la posición %2$s."
|
1859 |
-
|
1860 |
-
#: video-embed-thumbnail-generator.php:5945
|
1861 |
-
msgid "Nothing to encode."
|
1862 |
-
msgstr "Nada para codificar"
|
1863 |
-
|
1864 |
-
#: video-embed-thumbnail-generator.php:6007
|
1865 |
-
#, php-format
|
1866 |
-
msgid ""
|
1867 |
-
"Error: %1$s not found. Verify that %1$s is installed at %2$s and check the %3$sapplication path "
|
1868 |
-
"plugin setting"
|
1869 |
-
msgstr ""
|
1870 |
-
"Error: %1$s no encontrado. Verifiqueque %1$s está instalado en %2$s y compruebe la configuración "
|
1871 |
-
"de ruta del plugin a la aplicación %3$s."
|
1872 |
-
|
1873 |
-
#: video-embed-thumbnail-generator.php:6102
|
1874 |
-
#, php-format
|
1875 |
-
msgid "%s already encoded"
|
1876 |
-
msgstr "%s ya se encuentra codificado"
|
1877 |
-
|
1878 |
-
#: video-embed-thumbnail-generator.php:6106
|
1879 |
-
#, php-format
|
1880 |
-
msgid "%s missing library libx264 required for H.264 encoding"
|
1881 |
-
msgstr "%s falta biblioteca libx264 necesaria para la codificación H.264"
|
1882 |
-
|
1883 |
-
#: video-embed-thumbnail-generator.php:6111
|
1884 |
-
msgid "or"
|
1885 |
-
msgstr "o"
|
1886 |
-
|
1887 |
-
#: video-embed-thumbnail-generator.php:6112
|
1888 |
-
#, php-format
|
1889 |
-
msgid "and missing an AAC encoding library. Please install and enable libx264 and %s"
|
1890 |
-
msgstr "y falta una biblioteca de codificación AAC.Por favor, instalar y habilitar libx264 y %s"
|
1891 |
-
|
1892 |
-
#: video-embed-thumbnail-generator.php:6116 video-embed-thumbnail-generator.php:6135
|
1893 |
-
msgid "Missing libraries"
|
1894 |
-
msgstr "Bibliotecas faltantes"
|
1895 |
-
|
1896 |
-
#: video-embed-thumbnail-generator.php:6126
|
1897 |
-
#, php-format
|
1898 |
-
msgid "Encoding %s"
|
1899 |
-
msgstr "Codificando %s"
|
1900 |
-
|
1901 |
-
#: video-embed-thumbnail-generator.php:6132
|
1902 |
-
#, php-format
|
1903 |
-
msgid "%1$s missing library %2$s required for %3$s encoding."
|
1904 |
-
msgstr "%1$s biblioteca faltante %2$s necesaria para la codificación %3$s."
|
1905 |
-
|
1906 |
-
#: video-embed-thumbnail-generator.php:6138
|
1907 |
-
#, php-format
|
1908 |
-
msgid "%s already encoded."
|
1909 |
-
msgstr "%s ya se encuentra codificada"
|
1910 |
-
|
1911 |
-
#: video-embed-thumbnail-generator.php:6155
|
1912 |
-
msgid "Error: Command 'escapeshellcmd' is disabled on your server."
|
1913 |
-
msgstr "Error: Comando 'escapeshellcmd' está deshabilitado en el servidor"
|
1914 |
-
|
1915 |
-
#: video-embed-thumbnail-generator.php:6342 video-embed-thumbnail-generator.php:6352
|
1916 |
-
msgid "Encoding"
|
1917 |
-
msgstr "Codificando"
|
1918 |
-
|
1919 |
-
#: video-embed-thumbnail-generator.php:6345
|
1920 |
-
msgid "Cancel"
|
1921 |
-
msgstr "Cancelar"
|
1922 |
-
|
1923 |
-
#: video-embed-thumbnail-generator.php:6348
|
1924 |
-
msgid "Elapsed:"
|
1925 |
-
msgstr "Transcurrido:"
|
1926 |
-
|
1927 |
-
#: video-embed-thumbnail-generator.php:6348
|
1928 |
-
msgid "Remaining:"
|
1929 |
-
msgstr "Quedan:"
|
1930 |
-
|
1931 |
-
#: video-embed-thumbnail-generator.php:6348
|
1932 |
-
msgctxt "Frames per second"
|
1933 |
-
msgid "FPS:"
|
1934 |
-
msgstr "FPS:"
|
1935 |
-
|
1936 |
-
#: video-embed-thumbnail-generator.php:6428 video-embed-thumbnail-generator.php:6440
|
1937 |
-
msgid "Encoding Complete"
|
1938 |
-
msgstr "Codificación completa"
|
1939 |
-
|
1940 |
-
#: video-embed-thumbnail-generator.php:6451
|
1941 |
-
msgid "Encoding was canceled."
|
1942 |
-
msgstr "Codificación se canceló."
|
1943 |
-
|
1944 |
-
#: video-embed-thumbnail-generator.php:6461
|
1945 |
-
msgid "No log file"
|
1946 |
-
msgstr "ningún archivo de registro"
|
1947 |
-
|
1948 |
-
#: video-embed-thumbnail-generator.php:6468
|
1949 |
-
msgid "Error:"
|
1950 |
-
msgstr "Error:"
|
1951 |
-
|
1952 |
-
#: video-embed-thumbnail-generator.php:6480
|
1953 |
-
msgid "Waiting..."
|
1954 |
-
msgstr "Esperando ..."
|
1955 |
-
|
1956 |
-
#: video-embed-thumbnail-generator.php:6707
|
1957 |
-
msgid "Fixing moov atom for streaming"
|
1958 |
-
msgstr "Corregir átomo moov para el streaming"
|
1959 |
-
|
1960 |
-
#: video-embed-thumbnail-generator.php:7159
|
1961 |
-
msgid "Video Embed & Thumbnail Generator Shortcode Reference"
|
1962 |
-
msgstr "Referencia Código corto Video Embed & Thumbnail Generator"
|
1963 |
-
|
1964 |
-
#: video-embed-thumbnail-generator.php:7160
|
1965 |
-
msgid "Use these optional attributes in the [KGVID] shortcode:"
|
1966 |
-
msgstr "Usar estos atributos opcionales en el código corto [KGVID]:"
|
1967 |
-
|
1968 |
-
#: video-embed-thumbnail-generator.php:7161
|
1969 |
-
msgid "video attachment ID (instead of using a URL)."
|
1970 |
-
msgstr "ID video adjunto (en lugar de mediante una dirección URL)."
|
1971 |
-
|
1972 |
-
#: video-embed-thumbnail-generator.php:7162
|
1973 |
-
msgid "number of attached videos to display if no URL or ID is given."
|
1974 |
-
msgstr "número de videos adjuntos a mostrar si hay URL o ID es dado."
|
1975 |
-
|
1976 |
-
#: video-embed-thumbnail-generator.php:7163
|
1977 |
-
msgid "criteria for sorting attached videos if no URL or ID is given."
|
1978 |
-
msgstr "criterios para clasificar los vídeos adjuntos si no se da el URL o ID."
|
1979 |
-
|
1980 |
-
#: video-embed-thumbnail-generator.php:7164
|
1981 |
-
msgid "sort order."
|
1982 |
-
msgstr "orden de clasificación."
|
1983 |
-
|
1984 |
-
#: video-embed-thumbnail-generator.php:7165
|
1985 |
-
msgid "sets the thumbnail."
|
1986 |
-
msgstr "establece la miniatura."
|
1987 |
-
|
1988 |
-
#: video-embed-thumbnail-generator.php:7166
|
1989 |
-
msgid "sets the image shown when the video ends."
|
1990 |
-
msgstr "establece la imagen que aparece cuando termina el video."
|
1991 |
-
|
1992 |
-
#: video-embed-thumbnail-generator.php:7169
|
1993 |
-
msgid "set video to always expand to fill its container."
|
1994 |
-
msgstr "establece que el vídeo siempre se expande para rellenar su contenedor."
|
1995 |
-
|
1996 |
-
#: video-embed-thumbnail-generator.php:7171
|
1997 |
-
msgid "allow other content on the same line as the video"
|
1998 |
-
msgstr "permitir otras contenidos en la misma línea que el vídeo"
|
1999 |
-
|
2000 |
-
#: video-embed-thumbnail-generator.php:7172
|
2001 |
-
msgid "pre-sets the volume for unusually loud videos. Value between 0 and 1."
|
2002 |
-
msgstr "pre-configura el volumen para videos inusualmente fuertes. Valor entre 0 y 1."
|
2003 |
-
|
2004 |
-
#: video-embed-thumbnail-generator.php:7173
|
2005 |
-
msgid "sets the mute button on or off."
|
2006 |
-
msgstr "selecciona el botón de silencio encendido o apagado."
|
2007 |
-
|
2008 |
-
#: video-embed-thumbnail-generator.php:7174
|
2009 |
-
msgid "sets the controlbar position. \"Floating\" option only works with Strobe Media Playback."
|
2010 |
-
msgstr ""
|
2011 |
-
"Establece la posición de barra de control. La opción \"Flotante \" sólo funciona con Strobe "
|
2012 |
-
"Media Playback."
|
2013 |
-
|
2014 |
-
#: video-embed-thumbnail-generator.php:7177 video-embed-thumbnail-generator.php:7180
|
2015 |
-
#, php-format
|
2016 |
-
msgid "or %s to disable."
|
2017 |
-
msgstr "o %s para desactivar."
|
2018 |
-
|
2019 |
-
#: video-embed-thumbnail-generator.php:7179
|
2020 |
-
#, php-format
|
2021 |
-
msgid "or %s to disable. If this is set, it will override the watermark_link_to setting."
|
2022 |
-
msgstr ""
|
2023 |
-
"o %s para deshabilitar. Si se configura ésta, desactiva la configuración de enlace a en marca de "
|
2024 |
-
"agua."
|
2025 |
-
|
2026 |
-
#: video-embed-thumbnail-generator.php:7181
|
2027 |
-
#, php-format
|
2028 |
-
msgid ""
|
2029 |
-
"changes text displayed in the embed code overlay in order to provide a custom method for "
|
2030 |
-
"embedding a video or %s to disable."
|
2031 |
-
msgstr ""
|
2032 |
-
"Cambia el texto que aparece en la superposición de código de inserción con el fin de "
|
2033 |
-
"proporcionar un método personalizado para incrustar un vídeo ó %s para desactivarlo."
|
2034 |
-
|
2035 |
-
#: video-embed-thumbnail-generator.php:7182
|
2036 |
-
msgid "turns the view count on or off."
|
2037 |
-
msgstr "Enciende o apaga el conteo de vistas."
|
2038 |
-
|
2039 |
-
#: video-embed-thumbnail-generator.php:7183
|
2040 |
-
msgid "text that is displayed below the video (not subtitles or closed captioning)"
|
2041 |
-
msgstr "texto que se muestra debajo del video (no subtítulos o capciones)"
|
2042 |
-
|
2043 |
-
#: video-embed-thumbnail-generator.php:7184
|
2044 |
-
msgid "Used for metadata only."
|
2045 |
-
msgstr "Se utiliza sólo para metadatos."
|
2046 |
-
|
2047 |
-
#: video-embed-thumbnail-generator.php:7185
|
2048 |
-
msgid ""
|
2049 |
-
"generates a link below the video to make it easier for users to save the video file to their "
|
2050 |
-
"computers."
|
2051 |
-
msgstr ""
|
2052 |
-
"genera un enlace debajo del video para que sea más fácil para los usuarios guardar el archivo de "
|
2053 |
-
"vídeo en sus ordenadores."
|
2054 |
-
|
2055 |
-
#: video-embed-thumbnail-generator.php:7186
|
2056 |
-
msgid "allow or disable right-clicking on the video player."
|
2057 |
-
msgstr "permitir o deshabilitar el botón derecho sobre el reproductor de vídeo."
|
2058 |
-
|
2059 |
-
#: video-embed-thumbnail-generator.php:7187
|
2060 |
-
msgid "allow or disable responsive resizing."
|
2061 |
-
msgstr "permitir o deshabilitar el cambio de tamaño responsivo."
|
2062 |
-
|
2063 |
-
#: video-embed-thumbnail-generator.php:7188
|
2064 |
-
msgid "specify the video resolution when the page loads."
|
2065 |
-
msgstr "especifique la resolución del vídeo cuando la página carga."
|
2066 |
-
|
2067 |
-
#: video-embed-thumbnail-generator.php:7190
|
2068 |
-
msgid "These options will add a subtitle/caption track."
|
2069 |
-
msgstr "Estas opciones añaden una pista para subtítulo/capción."
|
2070 |
-
|
2071 |
-
#: video-embed-thumbnail-generator.php:7191
|
2072 |
-
msgid "URL of the WebVTT file."
|
2073 |
-
msgstr "URL del archivo WebVTT."
|
2074 |
-
|
2075 |
-
#: video-embed-thumbnail-generator.php:7193
|
2076 |
-
msgid "the track's two-character language code (en, fr, es, etc)"
|
2077 |
-
msgstr "Idioma del Código de dos caracteres de la pista (in, fr, es, etc.)"
|
2078 |
-
|
2079 |
-
#: video-embed-thumbnail-generator.php:7194
|
2080 |
-
msgid "text that will be shown to the user when selecting the track."
|
2081 |
-
msgstr "el texto que se mostrará al usuario cuando seleccione la pista."
|
2082 |
-
|
2083 |
-
#: video-embed-thumbnail-generator.php:7195
|
2084 |
-
msgid "track is enabled by default."
|
2085 |
-
msgstr "la pista está habilitada por defecto."
|
2086 |
-
|
2087 |
-
#: video-embed-thumbnail-generator.php:7197
|
2088 |
-
msgid "These options will only affect Video.js playback"
|
2089 |
-
msgstr "Estas opciones sólo afectan la reproducción de Video.js"
|
2090 |
-
|
2091 |
-
#: video-embed-thumbnail-generator.php:7198 video-embed-thumbnail-generator.php:7207
|
2092 |
-
#, php-format
|
2093 |
-
msgid "Completely change the look of the video player. %sInstructions here."
|
2094 |
-
msgstr "Cambiar completamente el aspecto del reproductor de vídeo. %sInstrucciones aquí."
|
2095 |
-
|
2096 |
-
#: video-embed-thumbnail-generator.php:7200
|
2097 |
-
msgid ""
|
2098 |
-
"These options will only affect Flash playback in Strobe Media Playback video elements. They will "
|
2099 |
-
"have no effect on other players."
|
2100 |
-
msgstr ""
|
2101 |
-
"Estas opciones sólo afectan la reproducción de Flash en elementos de vídeo Strobe Media "
|
2102 |
-
"Playback. Ellas no tendrán ningún efecto sobre otros reproductores."
|
2103 |
-
|
2104 |
-
#: video-embed-thumbnail-generator.php:7201
|
2105 |
-
msgid "specify whether to autohide the control bar after a few seconds."
|
2106 |
-
msgstr "Especificar si se oculta automáticamente la barra de control al cabo de unos segundos."
|
2107 |
-
|
2108 |
-
#: video-embed-thumbnail-generator.php:7202
|
2109 |
-
msgid "turns the big play button overlay in the middle of the video on or off."
|
2110 |
-
msgstr "Enciende o apaga el overlay del botón jugar en el medio del video."
|
2111 |
-
|
2112 |
-
#: video-embed-thumbnail-generator.php:7203
|
2113 |
-
msgid "I honestly don't know what this is for."
|
2114 |
-
msgstr "Sinceramente, no sé para qué es esto."
|
2115 |
-
|
2116 |
-
#: video-embed-thumbnail-generator.php:7204
|
2117 |
-
msgid ""
|
2118 |
-
"If the video display size isn't the same as the video file, this determines how the video will "
|
2119 |
-
"be scaled."
|
2120 |
-
msgstr ""
|
2121 |
-
"Si el tamaño de la pantalla de vídeo no es el mismo que el archivo de vídeo, esto determina cómo "
|
2122 |
-
"se escalará el video."
|
2123 |
-
|
2124 |
-
#: video-embed-thumbnail-generator.php:7205
|
2125 |
-
msgid "#rrggbb"
|
2126 |
-
msgstr "# rrggbb"
|
2127 |
-
|
2128 |
-
#: video-embed-thumbnail-generator.php:7205
|
2129 |
-
msgid "set the background color to whatever hex code you want."
|
2130 |
-
msgstr "establezca el color de fondo alo código hex que desee."
|
2131 |
-
|
2132 |
-
#: video-embed-thumbnail-generator.php:7206
|
2133 |
-
msgid "Lets you specify all these flashvars in an XML file."
|
2134 |
-
msgstr "Permite especificar todos estos flashvars en un archivo XML."
|
2135 |
-
|
2136 |
-
#: video-embed-thumbnail-generator.php:7209
|
2137 |
-
msgid ""
|
2138 |
-
"These options are available for video galleries (options work the same as standard WordPress "
|
2139 |
-
"image galleries)"
|
2140 |
-
msgstr ""
|
2141 |
-
"Estas opciones están disponibles para las galerías de vídeo (las opciones funcionan igual que "
|
2142 |
-
"las galerías de imágenes de WordPress estándar)"
|
2143 |
-
|
2144 |
-
#: video-embed-thumbnail-generator.php:7210
|
2145 |
-
msgid "turns on the gallery"
|
2146 |
-
msgstr "Enciende la galería"
|
2147 |
-
|
2148 |
-
#: video-embed-thumbnail-generator.php:7211
|
2149 |
-
msgid "width in pixels to display gallery thumbnails"
|
2150 |
-
msgstr "anchoen píxeles para mostrar imágenes en miniatura de la galería"
|
2151 |
-
|
2152 |
-
#: video-embed-thumbnail-generator.php:7212
|
2153 |
-
msgid "comma separated video attachment IDs. Excludes the videos from the gallery."
|
2154 |
-
msgstr "IDs de adjuntos de vídeo separados por comas. Excluye los vídeos de la galería."
|
2155 |
-
|
2156 |
-
#: video-embed-thumbnail-generator.php:7213
|
2157 |
-
msgid ""
|
2158 |
-
"comma separated video attachment IDs. Includes only these videos in the gallery. Please note "
|
2159 |
-
"that include and exclude cannot be used together."
|
2160 |
-
msgstr ""
|
2161 |
-
"IDs de adjuntos de vídeo separados por comas. Incluye sólo estos videos en la galería. Tenga en "
|
2162 |
-
"cuenta que incluir y excluir no se pueden utilizar juntos."
|
2163 |
-
|
2164 |
-
#: video-embed-thumbnail-generator.php:7214
|
2165 |
-
msgid "criteria for sorting the gallery"
|
2166 |
-
msgstr "Criterios para clasificar la galería"
|
2167 |
-
|
2168 |
-
#: video-embed-thumbnail-generator.php:7215
|
2169 |
-
msgid "sort order"
|
2170 |
-
msgstr "Orden de la clasificación"
|
2171 |
-
|
2172 |
-
#: video-embed-thumbnail-generator.php:7216
|
2173 |
-
msgid "post ID to display a gallery made up of videos associated with a different post."
|
2174 |
-
msgstr ""
|
2175 |
-
"ID del mensaje para mostrar una galería compuesta por vídeos asociados a una publicación "
|
2176 |
-
"diferente."
|
2177 |
-
|
2178 |
-
#: video-embed-thumbnail-generator.php:7217
|
2179 |
-
msgid ""
|
2180 |
-
"either close the pop-up or start playing the next video when the current video finishes playing."
|
2181 |
-
msgstr ""
|
2182 |
-
"Ya sea cerrar el pop-up o empezar a reproducir el siguiente video cuando el vídeo actual termine "
|
2183 |
-
"de reproducirse."
|
2184 |
-
|
2185 |
-
#: video-embed-thumbnail-generator.php:7218
|
2186 |
-
#, php-format
|
2187 |
-
msgid "or %s to disable pagination. Number of video thumbnails to show on each gallery page."
|
2188 |
-
msgstr ""
|
2189 |
-
"o %s para deshabilitar la paginación. Número de miniaturas de vídeo a mostrar en cada página de "
|
2190 |
-
"la galería."
|
2191 |
-
|
2192 |
-
#: video-embed-thumbnail-generator.php:7219
|
2193 |
-
msgid "display the title overlay on gallery thumbnails."
|
2194 |
-
msgstr "muestra el título sobrepuesto en las miniaturas de las galerías."
|
2195 |
-
|
2196 |
-
#~ msgid "Videos per gallery page:"
|
2197 |
-
#~ msgstr "Vídeos por página de la galería:"
|
2198 |
-
|
2199 |
-
#~ msgid "-1 disables video gallery pagination and shows all gallery thumbnails on one page"
|
2200 |
-
#~ msgstr ""
|
2201 |
-
#~ "-1 deshabilita la paginación en la galería de video y muestra todas las miniaturas de la "
|
2202 |
-
#~ "galería en una página"
|
2203 |
-
|
2204 |
-
#~ msgid "Wait"
|
2205 |
-
#~ msgstr "Espere"
|
2206 |
-
|
2207 |
-
#~ msgid "Embed:"
|
2208 |
-
#~ msgstr "Incrustar:"
|
2209 |
-
|
2210 |
-
#~ msgid "Play Start"
|
2211 |
-
#~ msgstr "Iniciar reproducción"
|
2212 |
-
|
2213 |
-
#~ msgid "Complete View"
|
2214 |
-
#~ msgstr "Vista completa"
|
2215 |
-
|
2216 |
-
#~ msgid "%1$s not found at %2$s"
|
2217 |
-
#~ msgstr "%1$s no encontrado en %2$s"
|
2218 |
-
|
2219 |
-
#~ msgid "Update"
|
2220 |
-
#~ msgstr "Actualizar"
|
2221 |
-
|
2222 |
-
#~ msgid "Encode selected"
|
2223 |
-
#~ msgstr "Codificar los seleccionados"
|
2224 |
-
|
2225 |
-
#~ msgid "Order"
|
2226 |
-
#~ msgstr "Orden"
|
2227 |
-
|
2228 |
-
#~ msgid "User"
|
2229 |
-
#~ msgstr "Usuario"
|
2230 |
-
|
2231 |
-
#~ msgid "Thumbnail"
|
2232 |
-
#~ msgstr "Miniatura"
|
2233 |
-
|
2234 |
-
#~ msgid "File"
|
2235 |
-
#~ msgstr "Archivo"
|
2236 |
-
|
2237 |
-
#~ msgid "Formats"
|
2238 |
-
#~ msgstr "Formatos"
|
2239 |
-
|
2240 |
-
#~ msgid "Actions"
|
2241 |
-
#~ msgstr "Acciones"
|
2242 |
-
|
2243 |
-
#~ msgid "Site"
|
2244 |
-
#~ msgstr "Sitio"
|
2245 |
-
|
2246 |
-
#~ msgid "Video Encode Queue"
|
2247 |
-
#~ msgstr "Cola para codificación de video"
|
2248 |
-
|
2249 |
-
#~ msgid "Network Video Encode Queue"
|
2250 |
-
#~ msgstr "Cola para codificación de video en red"
|
2251 |
-
|
2252 |
-
#~ msgid "Video Embed & Thumbnail Generator"
|
2253 |
-
#~ msgstr "Video Embed & Thumbnail Generator "
|
2254 |
-
|
2255 |
-
#~ msgid "%s settings tab."
|
2256 |
-
#~ msgstr "%s pestaña de configuración."
|
2257 |
-
|
2258 |
-
#~ msgid "%s Settings"
|
2259 |
-
#~ msgstr "Configuración %s"
|
2260 |
-
|
2261 |
-
#~ msgid "Automatically resize videos:"
|
2262 |
-
#~ msgstr "Cambio de tamaño automático vídeos:"
|
2263 |
-
|
2264 |
-
#~ msgid "Max gallery video dimensions:"
|
2265 |
-
#~ msgstr "Dimensiones máximas de galería de vídeo:"
|
2266 |
-
|
2267 |
-
#~ msgid "Gallery thumbnail width:"
|
2268 |
-
#~ msgstr "Ancho Galería de miniaturas:"
|
2269 |
-
|
2270 |
-
#~ msgid "Gallery playback end action:"
|
2271 |
-
#~ msgstr "Acción final de la reproducción de la Galería:"
|
2272 |
-
|
2273 |
-
#~ msgid "Loop:"
|
2274 |
-
#~ msgstr "Repetir:"
|
2275 |
-
|
2276 |
-
#~ msgid "Skin class:"
|
2277 |
-
#~ msgstr "Clase de la máscara:"
|
2278 |
-
|
2279 |
-
#~ msgid "Choose video resolution automatically based on player size."
|
2280 |
-
#~ msgstr "Selecciona automáticamente la resolución del vídeo basado en el tamaño del reproductor."
|
2281 |
-
|
2282 |
-
#~ msgid "%d%%"
|
2283 |
-
#~ msgstr "%d%%"
|
2284 |
-
|
2285 |
-
#~ msgid ""
|
2286 |
-
#~ "Controls how much of a video to load before the user starts playback. Mobile browsers never "
|
2287 |
-
#~ "preload any video information. Selecting \"metadata\" will load the height and width and "
|
2288 |
-
#~ "format information along with a few seconds of the video in some desktop browsers. \"Auto\" "
|
2289 |
-
#~ "will preload nearly a minute of video in most desktop browsers. \"None\" will prevent all "
|
2290 |
-
#~ "data from preloading."
|
2291 |
-
#~ msgstr ""
|
2292 |
-
#~ "Controla la cantidad de un vídeo a cargar antes de que el usuario inicie la reproducción. Los "
|
2293 |
-
#~ "navegadores móviles nunca precargan información de vídeo. Seleccionar \"metadata\" cargará la "
|
2294 |
-
#~ "altura y la anchura y la información de formato, junto con unos pocos segundos de vídeo en "
|
2295 |
-
#~ "algunos navegadores de escritorio. \"Auto\" precarga casi un minuto de vídeo en la mayoría de "
|
2296 |
-
#~ "los navegadores de escritorio. \"No\" evitará que todos los datos se precarguen."
|
2297 |
-
|
2298 |
-
#~ msgid "Enable Open Graph video tags"
|
2299 |
-
#~ msgstr "Habilitar etiquetas de video Open Graph"
|
2300 |
-
|
2301 |
-
#~ msgid "Set all as featured"
|
2302 |
-
#~ msgstr "Establece todas como destacadas"
|
2303 |
-
|
2304 |
-
#~ msgid ""
|
2305 |
-
#~ "If you have FFMPEG/LIBAV and the proper libraries installed, you can choose to replace your "
|
2306 |
-
#~ "uploaded video with your preferred format, and also transcode into as many as six additional "
|
2307 |
-
#~ "formats depending on the resolution of your original source. Different browsers have "
|
2308 |
-
#~ "different playback capabilities. Most desktop browsers can play H.264, and all modern mobile "
|
2309 |
-
#~ "devices can play at least 360p H.264. If you create multiple H.264 resolutions, the highest "
|
2310 |
-
#~ "resolution supported by the device will be served up automatically. The plugin will not "
|
2311 |
-
#~ "upconvert your video, so if you upload a 720p video, it will not waste your time creating a "
|
2312 |
-
#~ "1080p version. There was a time when it seemed like a good idea to provide OGV or WEBM for "
|
2313 |
-
#~ "some desktop browsers, but even Firefox allows H.264 playback on Windows now. I no longer "
|
2314 |
-
#~ "recommend encoding OGV or WEBM unless you expect a large number of no-Flash sticklers "
|
2315 |
-
#~ "visiting your site."
|
2316 |
-
#~ msgstr ""
|
2317 |
-
#~ "Si tiene FFMPEG/LIBAV y las bibliotecas adecuadas instaladas, puede optar por reemplazar su "
|
2318 |
-
#~ "vídeo subido con un video de H.264, y también transcodificar en un máximo de cinco formatos "
|
2319 |
-
#~ "adicionales dependiendo de la resolución de su fuente original. Diferentes navegadores tienen "
|
2320 |
-
#~ "diferentes capacidades de reproducción. La mayoría de los navegadores de escritorio puede "
|
2321 |
-
#~ "reproducir H.264, y todos los dispositivos móviles modernos pueden reproducir al menos 480p "
|
2322 |
-
#~ "H.264. Si crea varias resoluciones H.264, la resolución más alta admitida por el dispositivo "
|
2323 |
-
#~ "se servirá de forma automática. El plugin no convierte el vídeo, por lo que si sube un video "
|
2324 |
-
#~ "de 720p, no va a perder el tiempo creando una versión 1080p. Hubo un momento en que parecía "
|
2325 |
-
#~ "como una buena idea proporcionar OGV o WEBM para algunos navegadores de escritorio, pero "
|
2326 |
-
#~ "incluso Firefox permite la reproducción de H.264 en Windows ahora. Ya no recomiendo codificar "
|
2327 |
-
#~ "OGV o WEBM a menos que usted espera un gran número de rigoristas no-Flash visitando su sitio."
|
2328 |
-
|
2329 |
-
#~ msgid ""
|
2330 |
-
#~ "(iPhone 4s+, iPad 2+, modern Android, Windows Phone 8, Chrome, Safari, IE 9+, Firefox Windows)"
|
2331 |
-
#~ msgstr ""
|
2332 |
-
#~ "(IPhone 4s +, iPad 2 +, Android moderno, Windows Phone 8, Chrome, Safari, IE 9 +, Firefox "
|
2333 |
-
#~ "Windows)"
|
2334 |
-
|
2335 |
-
#~ msgid "(iPhone 4+, iPad, most Android, Chrome, Safari, IE 9+, Firefox Windows)"
|
2336 |
-
#~ msgstr "( iPhone 4 +, iPad, casi todos los Android, Chrome, Safari, IE 9 +, Firefox Windows)"
|
2337 |
-
|
2338 |
-
#~ msgid "profile"
|
2339 |
-
#~ msgstr "perfil"
|
2340 |
-
|
2341 |
-
#~ msgid "level"
|
2342 |
-
#~ msgstr "nivel"
|
2343 |
-
|
2344 |
-
#~ msgid "Enable legacy FFMPEG parameters."
|
2345 |
-
#~ msgstr "Habilitar parámetros FFMPEG heredados."
|
2346 |
-
|
2347 |
-
#~ msgid "threads"
|
2348 |
-
#~ msgstr "hilos"
|
2349 |
-
|
2350 |
-
#~ msgid "Run"
|
2351 |
-
#~ msgstr "Ejecutar"
|
2352 |
-
|
2353 |
-
#~ msgid "You must enter a value for the maximum gallery video height."
|
2354 |
-
#~ msgstr "Debe ingresar un valor para la altura máxima de la galería de vídeo."
|
2355 |
-
|
2356 |
-
#~ msgid "%1$s Starts, %2$s Complete Views"
|
2357 |
-
#~ msgstr "%1$s Comenzadas, %2$s Reproducciones completas"
|
2358 |
-
|
2359 |
-
#~ msgid "Track"
|
2360 |
-
#~ msgstr "Pista"
|
2361 |
-
|
2362 |
-
#~ msgid "Insert"
|
2363 |
-
#~ msgstr "Insertar"
|
2364 |
-
|
2365 |
-
#~ msgid "thumbnail"
|
2366 |
-
#~ msgstr "miniatura"
|
2367 |
-
|
2368 |
-
#~ msgid "Embed Video from URL"
|
2369 |
-
#~ msgstr "Incrustar el vídeo desde la URL"
|
2370 |
-
|
2371 |
-
#~ msgid "Sample Video"
|
2372 |
-
#~ msgstr "Muestra de video"
|
2373 |
-
|
2374 |
-
#~ msgid "FPS:"
|
2375 |
-
#~ msgstr "FPS:"
|
2376 |
-
|
2377 |
-
#~ msgid "let the plugin select the best resolution for the size of the player."
|
2378 |
-
#~ msgstr "dejar que el plugin seleccione la mejor resolución según el tamaño del reproductor."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
readme.txt
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
=== Video Embed & Thumbnail Generator ===
|
2 |
Contributors: kylegilman
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=kylegilman@gmail.com&item_name=Video%20Embed%20And%20Thumbnail%20Generator%20Plugin%20Donation
|
4 |
-
Tags: video, video player, video gallery, html5, shortcode, thumbnail, video thumbnail, preview, poster, ffmpeg, libav, embed, oembed, mobile, webm, ogg, h.264, h264, vp9, responsive, mp4, jwplayer, resolution
|
5 |
-
Requires at least:
|
6 |
-
Tested up to: 4.
|
7 |
-
Stable tag: 4.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -14,20 +14,18 @@ Generates thumbnails, encodes HTML5-compliant videos, and embeds locally hosted
|
|
14 |
|
15 |
= A plugin to make embedding videos, generating thumbnails, and encoding HTML5-compatible files a little bit easier. =
|
16 |
|
17 |
-
|
18 |
|
19 |
This plugin adds several fields to any video uploaded to the WordPress Media Library. Just choose a few options, make thumbnails, click "Insert into Post" and you'll get a shortcode in the post editor that will embed a flexible, responsive HTML5 video player with Flash fallback for unsupported browsers.
|
20 |
|
21 |
You have the option to use a few different video players:
|
22 |
|
23 |
-
* Video.js
|
24 |
* The WordPress default player using MediaElement.js, which was introduced in WordPress version 3.6
|
25 |
-
* JW Player (if
|
26 |
-
* Adobe's Strobe Media Playback Flash player
|
27 |
|
28 |
-
|
29 |
-
|
30 |
-
No matter which player you use, the video will responsively resize to fit the container it's in. There is no need to use FitVids.js and in fact FitVids.js will break playback for some players. If you provide multiple H.264 resolutions, the Video.js player can automatically select the one closest to the size of the player and provide a button for users to select the resolution manually. Because the player uses native controls on mobile devices, the manual resolution button is only available on desktop browsers.
|
31 |
|
32 |
You can also use the plugin to create a popup video gallery. The shortcode uses options similar to the WordPress image gallery shortcode. In its simplest form use the code `[KGVID gallery="true"]` to create a gallery of all videos attached to the post. Thumbnail size and video popup size can be set on the plugin settings page or in the shortcode. To make a custom gallery that includes videos that aren't attached to the current post you'll need to determine the video's ID, which is shown under the Video Stats section when viewing the attachment. Switch the "insert" option from "Single Video" to "Video Gallery" and you'll get a number of additional options (all of which are optional). Add a comma-separated list of video IDs in the "Include" field to create a gallery manually. Note: the "Create Gallery" section of the Add Media window is a built-in WordPress function and is only for making image galleries.
|
33 |
|
@@ -39,11 +37,13 @@ After you select a thumbnail it will be registered in the Wordpress Media Librar
|
|
39 |
|
40 |
In the plugin settings you can set the default maximum video width and height based on the dimensions of your particular template and those values will be filled in when you open the window. If you generate thumbnails, the video display dimensions will be adjusted automatically to match the size and aspect ratio of the video file. You can make further adjustments if you want. There are options to always fill the width of the template or to always set videos to the maximum width setting regardless of their resolution.
|
41 |
|
|
|
|
|
42 |
You can add subtitle and caption tracks by choosing properly formatted WebVTT files from the media library or entering a URL directly. Enter the two-letter language code and the label text that will be shown to users. Enabling the "default" option will turn the text track on when the page loads. The WordPress default player does not differentiate between captions and subtitles, but Video.js will show a different icon depending on the selection.
|
43 |
|
44 |
I highly recommend using <a href="http://handbrake.fr/">Handbrake</a> to make a file with H.264 video and AAC audio in an MP4 container before uploading. If you're encoding with Handbrake make sure that "Web Optimized" is checked. Using Apple's Compressor, the "Streaming" setting should be "Fast Start" (not Fast Start - Compressed Header).
|
45 |
|
46 |
-
The plugin can use FFMPEG or LIBAV to encode videos and make thumbnails if you have one of them installed on your server. You can choose to generate thumbnails and additional video formats automatically whenever a new video is uploaded to the media library, and there are buttons to generate thumbnails and additional video formats for every video already in the media library.
|
47 |
|
48 |
By default the plugin looks for FFMPEG in `/usr/local/bin` but if the application is installed in a different place on your server, you can point it to the correct place in the plugin settings. Users running WordPress on Windows servers should try using Linux-style paths (with forward slashes instead of backslashes and a forward slash `/` instead of `C:\`). Multisite Super Admins must set the FFMPEG path in the Network settings page which will enable FFMPEG throughout the network.
|
49 |
|
@@ -69,6 +69,8 @@ If you enable oEmbed provider data in the plugin settings, the URL of a post wit
|
|
69 |
|
70 |
`[KGVID]http://www.kylegilman.net/wp-content/uploads/2006/09/Reel-2012-05-15-720.mp4[/KGVID]`
|
71 |
|
|
|
|
|
72 |
= Translations included: =
|
73 |
|
74 |
* Español por Andrew Kurtis de <a href="http://www.webhostinghub.com/">WebHostingHub</a>.
|
@@ -77,7 +79,7 @@ If you enable oEmbed provider data in the plugin settings, the URL of a post wit
|
|
77 |
|
78 |
I'm not really a software developer. I'm just a film editor with some time on his hands who wanted to post video for clients and wasn't happy with the current state of any available software. But I want to really make this thing work, so please help me out by posting your feedback on <a href="https://github.com/kylegilman/video-embed-thumbnail-generator/issues?state=open">Github</a>.
|
79 |
|
80 |
-
= If you want to further modify the way the video player works, you can add the following options inside the `[KGVID]` tag. These will override anything you've set in the plugin settings or attachment details. If the plugin is installed on your site, this
|
81 |
|
82 |
* `id="xxx"` video attachment ID (instead of using a URL).
|
83 |
* `videos="x"` number of attached videos to display if no URL or ID is given.
|
@@ -107,6 +109,8 @@ I'm not really a software developer. I'm just a film editor with some time on hi
|
|
107 |
* `right_click="true/false"` allow or disable right-clicking on the video player.
|
108 |
* `resize="true/false"` allow or disable responsive resizing.
|
109 |
* `auto_res="automatic/highest/lowest"` specify the video resolution when the page loads.
|
|
|
|
|
110 |
|
111 |
= These options will add a subtitle/caption track =
|
112 |
|
@@ -119,6 +123,7 @@ I'm not really a software developer. I'm just a film editor with some time on hi
|
|
119 |
= These options will only affect Video.js playback =
|
120 |
|
121 |
* `skin="example-css-class"` Completely change the look of the video player. <a href="http://designer.videojs.com/">Video.js provides a custom skin designer here.</a>
|
|
|
122 |
|
123 |
= These options will only affect Flash playback in Strobe Media Playback video elements. They will have no effect on other players. =
|
124 |
|
@@ -231,6 +236,38 @@ Enter the username & password in the plugin settings "FFMPEG Settings" tab, or u
|
|
231 |
|
232 |
== Changelog ==
|
233 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
234 |
= 4.5.5 - August 20, 2015 =
|
235 |
* Fixed a number of potential infinite loops and other recursion issues related to longstanding WordPress bug <a href='https://core.trac.wordpress.org/ticket/17817'>#17817</a>.
|
236 |
* Changed video player names with spaces (WordPress Default, JW Player) to one word camel case for JavaScript functions (WordPressDefault, JWPlayer).
|
@@ -417,323 +454,16 @@ Enter the username & password in the plugin settings "FFMPEG Settings" tab, or u
|
|
417 |
* Fixed several user capability related bugs related to users who were not assigned any roles and capabilities that were not assigned to any roles.
|
418 |
* Changed video title overlay z-index to 103 to avoid floating over other elements.
|
419 |
|
420 |
-
=
|
421 |
-
* Fixed bug that interfered with database queries that do not have post_meta (The Events Calendar revealed the bug, but it likely had an effect on other plugins).
|
422 |
-
* Fixed bug that assigned auto-encoded videos to nobody.
|
423 |
-
* Restored process to set featured image for video attachments when thumbnails are assigned.
|
424 |
-
|
425 |
-
= 4.2.8 - November 11, 2013 =
|
426 |
-
* Updated Video.js to version 4.3.0.
|
427 |
-
* Fixed iframe embedded video auto-sizing bug.
|
428 |
-
* Improved sizing of videos using the WordPress Default player.
|
429 |
-
* Removed shortcode text from RSS feeds.
|
430 |
-
* Now checking for cross-origin when making thumbnails. If video files are hosted on a different domain FFMPEG will make thumbnails to avoid cross-origin errors when saving canvas elements.
|
431 |
-
* Fixed bug that assigned auto-generated thumbnails to nobody.
|
432 |
-
* Fixed bug that would cause divide by zero errors when generating thumbnails from .mpg videos that had already encoded an alternate format with FFMPEG.
|
433 |
-
|
434 |
-
= 4.2.7 - October 24, 2013 =
|
435 |
-
* Fixed several video sizing issues.
|
436 |
-
* Updated Video.js to version 4.2.2.
|
437 |
-
* No longer loading Video.js files when using the WordPress Default player.
|
438 |
-
* Restored [/KGVID] closing tag to inserted gallery shortcodes to avoid confusion if more than one [KGVID] is in the post.
|
439 |
-
* Changed Settings and Donate links on Installed Plugins admin page and fixed 404 error on network dashboards.
|
440 |
-
|
441 |
-
= 4.2.6 - October 19, 2013 =
|
442 |
-
* Fixed bug that broke playback in some cases when using the shortcode without a URL.
|
443 |
-
* Fixed bug that ignored width and height saved in the attachment meta if width and height were not set in the shortcode.
|
444 |
-
* Fixed bug that broke WordPress Default player when embedding M4V files.
|
445 |
-
* Removed line breaks from generated code to avoid adding extra line breaks in the rendered video in some situations where wpautop is run after the code is created.
|
446 |
-
|
447 |
-
= 4.2.5 - October 12, 2013 =
|
448 |
-
* Fixed bug that disabled FFMPEG when other plugin settings were changed.
|
449 |
-
|
450 |
-
= 4.2.4 - October 12, 2013 =
|
451 |
-
* Fixed bug that ignored "Enlarge lower resolution videos to max width" plugin setting after thumbnails were generated.
|
452 |
-
* Fixed bug that caused in-browser thumbnail generation to fail after switching between several attachments in Chrome.
|
453 |
-
* Fixed bug that prevented fallback to FFMPEG/LIBAV when the video format was not compatible with the browser.
|
454 |
-
* Fixed bug that lost disabled plugin settings if the "Save Changes" button was pressed.
|
455 |
-
* Fixed bug that fixed moov atom incorrectly when using qt-faststart.
|
456 |
-
* Added verification of the "Path to applications folder on server" setting to strip extra slashes and unnecessary subfolders.
|
457 |
-
* Added "Fixing moov atom for streaming" section to FFMPEG test output.
|
458 |
-
* Added legacy FFMPEG libx264 flags manually so we don't have to rely on finding vpre files.
|
459 |
-
* Now multiplying H.264 level flags by 10 for better compatibility.
|
460 |
-
* Removed unnecessary & inconsistent check for existing thumbnail files on attachment pages.
|
461 |
-
|
462 |
-
= 4.2.3 - October 9, 2013 =
|
463 |
-
* Fixed bug that caused encoding on Windows servers to hang and not show progress.
|
464 |
-
* Fixed bug that only disabled right-clicking when using the Video.js player.
|
465 |
-
* Fixed bug that prevented encoding videos from the External URL tab.
|
466 |
-
* Fixed bug that showed an empty "Replace original with H.264" checkbox if the filename changed.
|
467 |
-
* Better error reporting when encoding or auto thumbnail creation fails.
|
468 |
-
* Modified method for determining video's dimensions from FFMPEG/LIBAV output. This will cause videos with single-digit resolutions to fail.
|
469 |
-
* Adjusted video gallery CSS.
|
470 |
-
|
471 |
-
= 4.2.2 - October 7, 2013 =
|
472 |
-
* Fixed bug that was setting the global $content_width to 2048 on every page.
|
473 |
-
|
474 |
-
= 4.2.1 - October 6, 2013 =
|
475 |
-
* Featured images are now set for the post currently being edited, which does not have to be the video's parent.
|
476 |
-
* Rounded offset values when generating thumbnails with FFMPEG and LIBAV for backwards compatibility with older versions of FFMPEG.
|
477 |
-
* Added check to ensure server supports ImageMagick or GD libraries necessary to save thumbnails created in the browser.
|
478 |
-
* Added check to avoid saving thumbnails twice.
|
479 |
-
* Fixed saving disabled plugin settings.
|
480 |
-
* Changed FFMPEG encoding string to double quotes for Windows compatibility.
|
481 |
-
|
482 |
-
= 4.2 - October 5, 2013 =
|
483 |
-
* THUMBNAILS FOR EVERYBODY! Added in-browser thumbnail generation. Any video in the media library that can be played natively in the current browser can now be used to generate thumbnails without requiring special software on your server.
|
484 |
-
* Updated shortcode to support the simplest possible implementation: [KGVID]. Without any additional information, it will automatically find and display all videos attached to the post.
|
485 |
-
* Added "id" and "videos" attributes to shortcode to display specific video IDs or show a specific number of attached videos.
|
486 |
-
* If a video thumbnail is set, the video will now use its thumbnail as an icon in the WordPress admin area instead of the generic "video" icon.
|
487 |
-
* To avoid clutter, additional video formats encoded by the plugin are now hidden from lists of media, unless "Video" is specifically selected.
|
488 |
-
* When a master video is deleted and additional video formats are not deleted, the next highest quality format automatically becomes the master video.
|
489 |
-
* Updated Video.js to version 4.2.1, updated the included skin to work with it, and removed the unused image video-js.png.
|
490 |
-
* Added option to use the WordPress default video player introduced in WordPress version 3.6.
|
491 |
-
* Added buttons to choose thumbnails, end of video image, and watermark from the media library.
|
492 |
-
* Added option to add Open Graph tags for posting videos on Facebook. However, for the many Facebook users who browse with https, your own videos must be served via https in order to work.
|
493 |
-
* Added options to automatically generate a thumbnail and encode videos to multiple formats as soon as they are uploaded (FFMPEG/LIBAV only).
|
494 |
-
* Added option to disable responsive video resizing.
|
495 |
-
* Added options to restrict thumbnail making and video encoding to particular user roles.
|
496 |
-
* Added option to enter username and password to give FFMPEG/LIBAV access to .htaccess protected videos.
|
497 |
-
* Added option to disable right-clicking on videos.
|
498 |
-
* Added option to replace original video file with an H.264 video of the same resolution.
|
499 |
-
* Added advanced FFMPEG/LIBAV encoding options. New options include choice between Constant Rate Factor and Average Bit Rate, H.264 profiles and levels, audio bit rate, disabling `nice` on Linux, and the ability to encode with more than one thread.
|
500 |
-
* Added `-movflags faststart` option available in newer versions of FFMPEG/LIBAV, eliminating the need for qt-faststart or MP4Box.
|
501 |
-
* Added a test encoding output on the settings page for easier troubleshooting.
|
502 |
-
* Split plugin settings page in to two tabs.
|
503 |
-
* Fixed saving plugin settings when multiple settings are changed rapidly.
|
504 |
-
* No longer starting video encodes using `nohup` command on Linux servers.
|
505 |
-
* FFMPEG vpre flag switched from slow to fast.
|
506 |
-
* Enabled actual support for encoding with libfdk_aac, and the experimental built-in aac encoder as a last resort.
|
507 |
-
* Fixed cases where the encode queue would not advance if an unexpected error happened.
|
508 |
-
* Fixed encoding library messages so the errors are saved to the encode queue and don't disappear immediately.
|
509 |
-
* Changed endOfVideoOverlay and endOfVideoOverlaySame options to lowercase.
|
510 |
-
* Revised method for determining if a video URL refers to an attachment in the WordPress database to account for differences between urls using http and https and filenames that slip into the database with spaces intact.
|
511 |
-
|
512 |
-
= 4.1.5 - June 30, 2013 =
|
513 |
-
* Updated Video.js to version 4.1.0
|
514 |
-
* Restored code to show captions and download links in gallery pop-ups.
|
515 |
-
* Fixed conflict with fitVids.js by disabling the function whenever a video is embedded with the KGVID shortcode. fitVids.js is not compatible with the Video.js player and is not necessary to make videos responsive when you are using this plugin.
|
516 |
-
* Increased bitrate of encoded videos.
|
517 |
-
* Increased play button circle thickness and triangle size.
|
518 |
-
* Made video title overlay background slightly transparent and the title width fluid through CSS rather than JS.
|
519 |
-
|
520 |
-
= 4.1.4 - May 30, 2013 =
|
521 |
-
* Updated Video.js to version 4.0.3 which includes fixes when hitting esc to exit fullscreen that this plugin had previously dealt with through additional JavaScript.
|
522 |
-
* Restored ability to use percentages for video width (I didn't even know you could do this before and I apologize for breaking it arbitrarily).
|
523 |
-
* Fixed Video.js play button triangle vertical alignment problem on many themes (where were all the complaints on this one?) and tweaked the :hover settings.
|
524 |
-
* Moved play button overlay behind gallery thumbnail title if they happen to overlap.
|
525 |
-
* Changed WordPress user capability required to access plugin settings menu page from 'administrator' to 'manage_options' to allow access to multisite Super Admins and anyone else who has the manage_options capability.
|
526 |
-
|
527 |
-
= 4.1.3 - May 25, 2013 =
|
528 |
-
* Updated Video.js to version 4.0.2 which is supposed to solve IE play-button loading issues.
|
529 |
-
* Added option to show image at end of video in Video.js player (similar to the feature already available in Strobe Media Playback).
|
530 |
-
* Fixed bug that ignored `gallery_id` setting in gallery shortcodes and was preventing `gallery_include` setting for videos that are not children of the current post.
|
531 |
-
* Brought download link into shortcode rather than old method of inserting it into the post as text below the shortcode.
|
532 |
-
* Automatically adjust pop-up gallery window height to display captions, view counts, and download links.
|
533 |
-
* Rolled back responsive video resize method. Only the width of the immediate container will be used to calculate the correct size.
|
534 |
-
* For very small videos, Video.js controls are now selectively removed as the width drops below 260 pixels to prevent them from dropping outside of the video window.
|
535 |
-
|
536 |
-
= 4.1.2 - May 23, 2013 =
|
537 |
-
* Changed check for FFMPEG to use the H.264 sample video as input to avoid any PNG-related red herrings.
|
538 |
-
* Added `-f mjpeg` to thumbnail-generating command to maintain compatibility with versions of FFMPEG that can't figure it out on their own.
|
539 |
-
|
540 |
-
= 4.1.1 - May 21, 2013 =
|
541 |
-
* Removed second argument from json_encode() which caused video setup & resizing features to fail when servers were running PHP 5.2.
|
542 |
-
|
543 |
-
= 4.1 - May 19, 2013 =
|
544 |
-
* Updated Video.js to version 4.0 and created a new skin that approximates the old one. Older versions of Video.js had some security holes, so this update is highly recommended.
|
545 |
-
* Significantly reduced inline JavaScript generated by the plugin.
|
546 |
-
* Fixed bug that disabled Strobe Media Playback player and caused "TypeError: Error #1034" messages, particularly in Internet Explorer.
|
547 |
-
* Fixed bug that caused view count to be replaced by complete views when the end of the video is reached.
|
548 |
-
* Fixed bug that disabled video encode status monitoring in media modal popup when the same video was already in the post edit window.
|
549 |
-
* Fixed missing "document." in JavaScript when choosing thumbnails which prevented some users from properly selecting and saving generated thumbnails.
|
550 |
-
* Fixed bug that displayed WordPress thumbnail-sized poster image if no poster URL was in shortcode.
|
551 |
-
* Tweaked video resize method to support more kinds of themes.
|
552 |
-
* Added ability to turn off watermark on individual videos by entering `watermark="false"` in the shortcode.
|
553 |
-
* Added option to disable embedding on other websites.
|
554 |
-
* Added option to allow videos to be placed next to each other on the page.
|
555 |
-
* Added support for AAC library libfdk_aac.
|
556 |
-
* Adjusted embedded video and gallery CSS to account for colored backgrounds.
|
557 |
-
* Renamed "Poster image" plugin setting to "Default thumbnail"
|
558 |
-
* Removed post meta box below post editing window until I can work out a way to generate them without disabling video encode status monitoring in media modal popup when the same video is already in the post edit window.
|
559 |
-
* Replaced deprecated ereg PHP function with preg_match and used a more precise regular expression when determining the height and width of videos.
|
560 |
-
|
561 |
-
= 4.0.3 - May 1, 2013 =
|
562 |
-
* Fixed bug that caused video control text to display below videos on iPhones.
|
563 |
-
* Changed method for saving video plays to the database. Now more secure and accurate.
|
564 |
-
|
565 |
-
= 4.0.2 - April 25, 2013 =
|
566 |
-
* Plugin settings are no longer re-saved to the database on every page load. Should speed things up a little.
|
567 |
-
* Changed CSS to discourage theme styles from overriding embed code overlay styles.
|
568 |
-
|
569 |
-
= 4.0.1 - April 23, 2013 =
|
570 |
-
* Added options to display video title and embed code overlays on video player, and captions and view counts below videos.
|
571 |
-
* Added option to filter your theme's video attachment page template to display the video instead of WordPress's default behavior of just showing the title of the video. For backwards compatibility retained old method of completely replacing the video attachment template with a video player.
|
572 |
-
* Redesigned settings page to save using AJAX, and added a sample video player so changes are seen immediately.
|
573 |
-
* Added validation to settings page to require maximum width & height values for embedded videos.
|
574 |
-
* Added iframe method to embed your videos on other websites.
|
575 |
-
* Additional video formats encoded by the plugin are now added to the WordPress database as video attachments. To avoid a Russian nesting doll scenario these child attachments do not have the fields for creating thumbnails and encoding additional formats.
|
576 |
-
* Changed encoded H.264 extensions from .m4v to .mp4 to increase compatibility with WordPress 3.6's new video capabilities. Existing M4V files will still work.
|
577 |
-
* Checks only one time for alternate video sources when videos are embedded from other servers. This should speed up page load times considerably.
|
578 |
-
* Added ability to rotate and replace the original file for videos recorded vertically on cell phones.
|
579 |
-
* Added post meta box to posts with embedded videos that lists alternate formats found for each video.
|
580 |
-
* Added option to set a post's featured image to the most recently generated thumbnail, and a button to set all previously generated thumbnails as featured images.
|
581 |
-
* Added option to save generated thumbnails as children of either the video or the post the video is attached to, and a button to convert all thumbnails to the chosen hierarchy.
|
582 |
-
* Added option to delete associated thumbnails and additional encoded video formats when original video attachment is deleted.
|
583 |
-
* Added backwards compatibility for WordPress versions 3.2 and above.
|
584 |
-
* If Strobe Media Playback player is selected, the Video.js player is used in situations where Flash doesn't work (webm, ogg playback) instead of the ugly default browser players.
|
585 |
-
* Added watermark, view counts, volume attribute, and Google Analytics event tracking when using Strobe Media Playback player.
|
586 |
-
* Added alignment option to center or right-justify videos.
|
587 |
-
* Revised video player setup to properly resize the player if the containing DIV is smaller than the video, and resize again if the window size changes (or orientation changes on Android).
|
588 |
-
* No matter which player is selected, iOS now displays the built-in controls so AirPlay works.
|
589 |
-
* Added schema.org videoobject markup for improved SEO.
|
590 |
-
* Fixed FLV embedding with Video.js player and improved selection of embedded formats for Strobe Media Playback.
|
591 |
-
* Adjusted video gallery CSS and added a play button overlay to gallery thumbnails.
|
592 |
-
* Adjusted watermark and Video.js play button CSS so the overlays don't overwhelm small videos.
|
593 |
-
* Set Video.js controls to fade out on autoplay and on iOS, without having to mouseover the video.
|
594 |
-
* Fixed endless "loading" spinner shown at the end of videos in some browsers in Video.js player.
|
595 |
-
* Clicking "Insert into post" immediately after upload without changing any options now inserts shortcode instead of just the title of the video.
|
596 |
-
* Inserting shortcode without a thumbnail no longer attempts to save the nonexistent thumbnail. Thumbnail cleanup is handled better.
|
597 |
-
* Fixed error message "array_key_exists() expects parameter 2 to be array" when shortcode didn't have attributes.
|
598 |
-
* Escaped all shell commands for increased security.
|
599 |
-
* Fixed bug that made "Encode" button disappear if all formats were checked.
|
600 |
-
* Fixed missing argument for kgvid_clear_completed_queue() when scheduling cleanup.
|
601 |
-
|
602 |
-
= 4.0 - April 22, 2013 =
|
603 |
-
* Accidental release caused by programmer's incompetence.
|
604 |
-
|
605 |
-
= 3.1.1 - March 5, 2013 =
|
606 |
-
* Fixed missing ) in uninstall.php
|
607 |
-
|
608 |
-
= 3.1 - January 30, 2013 =
|
609 |
-
* Added video watermark overlay option. (Video.js only)
|
610 |
-
* Changed front-end CSS file name to kgvid_styles.css and made it always available, not just when galleries are on the page.
|
611 |
-
* Removed my watermark testing logo which was accidentally inserted above videos in version 3.0.3.
|
612 |
-
* Added option to choose -b:v or legacy -b flags when encoding. Recent FFMPEG versions only accept -b:v.
|
613 |
-
* Added automatic encode queue cleanup. Any completed entry older than a week will be removed.
|
614 |
-
* Added deactivation hook to remove queue and scheduled queue cleanup on deactivation.
|
615 |
-
* Added uninstall.php to remove settings from the database on uninstall.
|
616 |
-
* Disabled "Delete Permanently" link while encoding is canceling.
|
617 |
-
* Checked for escapeshellcmd. If it's disabled on the server, encoding can't start.
|
618 |
-
* Fixed insert title and download link checkboxes. They will actually insert something now.
|
619 |
-
* Changed method for determining if a video has been played or paused and played again, for counting purposes.
|
620 |
-
* Fixed check for mime type when generating H.264 video encode checkboxes to avoid showing options for QuickTime files that are higher resolution than the original video.
|
621 |
-
|
622 |
-
= 3.0.3 - January 29, 2013 =
|
623 |
-
* Fixed bug that added a blank line to JavaScript embedded in the page if "volume" wasn't set in the short code (Video.js only).
|
624 |
-
* If video player is set larger than the containing DIV and the player size is reduced to fit, the height is now rounded to the nearest integer.
|
625 |
-
|
626 |
-
= 3.0.2 - January 24, 2013 =
|
627 |
-
* Fixed bug that permanently disabled buttons on the Embed Video from URL tab.
|
628 |
-
* Disabled "Delete Permanently" option for encoded files found on other servers.
|
629 |
-
* Reduced the jQuery UI Dialog css and put it in its own scope to avoid conflicts with existing jQuery UI Dialog themes.
|
630 |
-
* Cleaned out some leftover code.
|
631 |
-
|
632 |
-
= 3.0.1 - January 24, 2013 =
|
633 |
-
* Fixed bug that inserted empty options into gallery shortcodes.
|
634 |
-
|
635 |
-
= 3.0 - January 23, 2013 =
|
636 |
-
* Updated to provide compatibility with several media changes in WordPress 3.5. With this version, thumbnail generating & video encoding will only work in WordPress 3.5 and above.
|
637 |
-
* Added popup video gallery.
|
638 |
-
* Changed shortcode tag to [KGVID]. Retained [FMP] for backwards compatibility.
|
639 |
-
* Added Video.js player option. Older Strobe Media Playback Flash player is still included for backwards compatibility, but Video.js is highly recommended.
|
640 |
-
* Added video play counting which is recorded to the WordPress database (Video.js only).
|
641 |
-
* Added Google Analytics event tracking for video plays (Video.js only)
|
642 |
-
* Added ability to encode multiple H.264 video resolutions.
|
643 |
-
* Added video encoding queue.
|
644 |
-
* Added qt-faststart and MP4Box processing to MP4/M4V H.264 videos encoded by the plugin to allow playback of videos as they download.
|
645 |
-
* Added option to change default number of thumbnails generated by the plugin.
|
646 |
-
* Changed any https FFMPEG input to http.
|
647 |
-
* Thumbnail images are now added to the WordPress database as soon as they are selected.
|
648 |
-
* Added option to use LIBAV instead of FFMPEG for thumbnail generating and video encoding.
|
649 |
-
* Added wmode parameter to fix Chrome z-index issue. (Strobe Media Playback only)
|
650 |
-
* Improved swfobject.js script enqueuing method to prevent conflicts (Strobe Media Playback only)
|
651 |
-
* Rewrote plugin settings to work with the WordPress plugin settings API.
|
652 |
-
* Removed dropdown list for embedding alternate encoded formats of video. All formats are made available to the player and the browser chooses best compatible format.
|
653 |
-
* Removed mdetect.php and removed forced downgrading of quality when on mobile devices. Mobile browsers now automatically choose best compatible format.
|
654 |
-
|
655 |
-
= 2.0.6 - April 27, 2012 =
|
656 |
-
* Removed swfobject.js from the plugin package. Now using the one included with WordPress. WordPress 3.3.2 contains a security fix for swfobject.js and the plugin will use the fixed version if you have upgraded WordPress (which is highly recommended).
|
657 |
-
* Added setting to customize the formatting of titles inserted by the plugin.
|
658 |
-
* Added settings to display a custom image when videos end instead of the first frame of the video (Flash only).
|
659 |
-
* Fixed problem with embedded FLV files giving message "Argument Error - Invalid parameter passed to method" when loading poster images.
|
660 |
-
|
661 |
-
= 2.0.5 - April 20, 2012 =
|
662 |
-
* Fixed "Wrong datatype for second argument" error on line 339 and subsequent automatic replacement of original videos with Mobile/H.264 versions whether they exist or not.
|
663 |
-
|
664 |
-
= 2.0.4 - April 19, 2012 =
|
665 |
-
* Once again changed the process checking for FFMPEG installations. Should be universal now.
|
666 |
-
* Added setting to turn on vpre flags for users with installed versions of FFMPEG old enough that libx264 requires vpre flags to operate.
|
667 |
-
* Added setting to replace the video attachment template with a page containing only the code necessary to display the video. Makes embedding your hosted videos on other sites easier.
|
668 |
-
* Fixed progress bar for older versions of FFMPEG.
|
669 |
-
* Added Flash fallback when OGV or WEBM videos are embedded.
|
670 |
-
* Removed restriction on number of thumbnails that can be generated at once and added a cancel button while generating thumbnails.
|
671 |
-
|
672 |
-
= 2.0.3 - February 24, 2012 =
|
673 |
-
* When working with file formats that can't be embedded (WMV, AVI, etc) the option to embed the original file will be disabled if Mobile/H.264, WEBM, or OGV files are found.
|
674 |
-
* Changed encoding bitrate flag back to -b instead of -b:v to retain compatibility with older versions of FFMPEG.
|
675 |
-
* Cosmetic changes in encoding progress bar.
|
676 |
-
* No longer deleting encoded files if progress can't be properly established.
|
677 |
-
* Added "nice" to the encode commond (not on Windows) to prevent FFMPEG from overusing system resources.
|
678 |
-
* Updated plugin settings panel generation function to require "Administrator" role instead of deprecated capability number system.
|
679 |
-
|
680 |
-
= 2.0.2 - February 21, 2012 =
|
681 |
-
* Fixed check for FFMPEG again, to work with Windows.
|
682 |
-
|
683 |
-
= 2.0.1 - February 21, 2012 =
|
684 |
-
* Fixed check for FFMPEG again. Should be more universal.
|
685 |
-
|
686 |
-
= 2.0 - February 20, 2012 =
|
687 |
-
* Large rewrite to fix several security issues. Full server paths are no longer exposed in the Media Upload form, all AJAX calls are handled through wp_ajax, and nonces are checked.
|
688 |
-
* Added video encoding progress bar on Linux servers.
|
689 |
-
* Added button to cancel encoding.
|
690 |
-
* Added option to encode 720p or 1080p H.264 videos.
|
691 |
-
* Changed requirements for AAC encoding. Will work with libfaac or libvo-aacenc.
|
692 |
-
* Improved error reporting to help diagnose problems.
|
693 |
-
* Videos recorded on phones in portrait mode (tall and skinny) will not end up sideways if FFMPEG version .10 or later is installed.
|
694 |
-
* Thumbnail generation process uses fancy jQuery animation.
|
695 |
-
* Fixed check for FFMPEG. Should actually work in Windows now.
|
696 |
-
* Fixed unenclosed generate, embed, submit, delete strings in kg_call_ffmpeg
|
697 |
-
|
698 |
-
= 1.1 - January 8, 2012 =
|
699 |
-
* Includes Strobe Media Playback files so Flash Player is now hosted locally, which allows skinning.
|
700 |
-
* Added skin with new, more modern looking play button. Upgraders should check the plugin settings for more details.
|
701 |
-
* Fixed "Insert into Post" button in "Embed from URL" tab when editor is in HTML view mode. Used to do nothing! Now does something.
|
702 |
-
* Added option to override default Mobile/HTML5 encode formats for each video
|
703 |
-
* Added check for FFMPEG. Generate & Encode buttons are disabled if FFMPEG isn't found.
|
704 |
-
|
705 |
-
= 1.0.5 - November 6, 2011 =
|
706 |
-
* Fixed "Embed from URL" thumbnail creation. Generated thumbnails don't disappear anymore.
|
707 |
-
|
708 |
-
= 1.0.4 - November 4, 2011 =
|
709 |
-
* More thorough check made for existing attachments before registering poster images with the Wordpress Media Library. Avoids registering duplicates or medium/small/thumb image sizes if they're used as poster image.
|
710 |
-
* Added loop, autoplay, and controls options to HTML5 video elements.
|
711 |
-
* When saving attachments, won't try to delete thumb_tmp directory if it doesn't exist.
|
712 |
-
|
713 |
-
= 1.0.3 - October 27, 2011 =
|
714 |
-
* Revised thumbnail cleanup to make sure temp files aren't deleted when generating thumbnails for more than one video at a time.
|
715 |
-
|
716 |
-
= 1.0.2 - October 21, 2011 =
|
717 |
-
* Fixed a shocking number of unenclosed stings in get_options() calls. Bad programming. Didn't affect functionality, but will stop generating errors.
|
718 |
-
* Removed clumsy check for FFMPEG running. Was preventing encoding if ANY user on the server was running FFMPEG. Be wary of overusing your system resources though.
|
719 |
-
|
720 |
-
= 1.0.1 - October 21, 2011 =
|
721 |
-
* Quick fix to add mdetect.php to the plugin package from Wordpress
|
722 |
-
|
723 |
-
= 1.0 - October 20, 2011 =
|
724 |
-
* Huge re-write.
|
725 |
-
* Integrated with Wordpress Media Library and added WEBM support.
|
726 |
-
* Increased control over thumbnail generation.
|
727 |
-
* Added tab to Insert Video dialog box for adding by URL (like the old version).
|
728 |
-
|
729 |
-
= 0.2.1 - October 9, 2011 =
|
730 |
-
* Check made to ensure iPhone/iPod/Android compatible encode video height is an even number when HTML5 video encodes are made.
|
731 |
-
|
732 |
-
= 0.2 - January 18, 2011 =
|
733 |
-
* First Release
|
734 |
|
735 |
== Upgrade Notice ==
|
736 |
|
|
|
|
|
|
|
|
|
|
|
|
|
737 |
= 4.5.2 =
|
738 |
This is probably the last completely free major release. Some advanced features will be converted to premium add-ons in the future. More info in the support forum.
|
739 |
|
1 |
=== Video Embed & Thumbnail Generator ===
|
2 |
Contributors: kylegilman
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=kylegilman@gmail.com&item_name=Video%20Embed%20And%20Thumbnail%20Generator%20Plugin%20Donation
|
4 |
+
Tags: video, video player, video gallery, html5, shortcode, thumbnail, video thumbnail, preview, poster, ffmpeg, libav, embed, oembed, mobile, webm, ogg, h.264, h264, vp9, responsive, mp4, jwplayer, resolution, analytics
|
5 |
+
Requires at least: 4.4
|
6 |
+
Tested up to: 4.5
|
7 |
+
Stable tag: 4.6
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
14 |
|
15 |
= A plugin to make embedding videos, generating thumbnails, and encoding HTML5-compatible files a little bit easier. =
|
16 |
|
17 |
+
Still 100% free, but some advanced features will be converted to premium add-ons in the future. More info in the <a href="https://wordpress.org/support/topic/version-50-will-convert-some-free-features-to-paid-add-ons">support forum</a>.
|
18 |
|
19 |
This plugin adds several fields to any video uploaded to the WordPress Media Library. Just choose a few options, make thumbnails, click "Insert into Post" and you'll get a shortcode in the post editor that will embed a flexible, responsive HTML5 video player with Flash fallback for unsupported browsers.
|
20 |
|
21 |
You have the option to use a few different video players:
|
22 |
|
23 |
+
* Video.js (files are included with the plugin)
|
24 |
* The WordPress default player using MediaElement.js, which was introduced in WordPress version 3.6
|
25 |
+
* JW Player 6 (if their old, discontinued plugin is already installed. This plugin does not work with JW Player 7 yet.)
|
26 |
+
* Adobe's Strobe Media Playback Flash player (deprecated)
|
27 |
|
28 |
+
No matter which player you use, the video will responsively resize to fit the container it's in. There is no need to use FitVids.js and in fact FitVids.js will break playback for some players. If you provide multiple H.264 resolutions, the plugin can automatically select the one closest to the size of the player or a resolution of your choice, and provide a button for users to select the resolution manually. If you have Google Analytics set up on your site, the plugin will automatically send Google Analytics Events when users start, reach 25%, 50%, 75%, and complete watching your videos.
|
|
|
|
|
29 |
|
30 |
You can also use the plugin to create a popup video gallery. The shortcode uses options similar to the WordPress image gallery shortcode. In its simplest form use the code `[KGVID gallery="true"]` to create a gallery of all videos attached to the post. Thumbnail size and video popup size can be set on the plugin settings page or in the shortcode. To make a custom gallery that includes videos that aren't attached to the current post you'll need to determine the video's ID, which is shown under the Video Stats section when viewing the attachment. Switch the "insert" option from "Single Video" to "Video Gallery" and you'll get a number of additional options (all of which are optional). Add a comma-separated list of video IDs in the "Include" field to create a gallery manually. Note: the "Create Gallery" section of the Add Media window is a built-in WordPress function and is only for making image galleries.
|
31 |
|
37 |
|
38 |
In the plugin settings you can set the default maximum video width and height based on the dimensions of your particular template and those values will be filled in when you open the window. If you generate thumbnails, the video display dimensions will be adjusted automatically to match the size and aspect ratio of the video file. You can make further adjustments if you want. There are options to always fill the width of the template or to always set videos to the maximum width setting regardless of their resolution.
|
39 |
|
40 |
+
If enabled in the plugin settings, Facebook, Twitter, and Schema.org video search engine metadata will be generated for your videos. If your site supports https, your videos can play directly in the Facebook timeline or on Twitter. Twitter requires whitelisting for each domain that provides player cards so you will be required to request whitelisting using the <a href="https://cards-dev.twitter.com/validator">Twitter Card Validator tool</a>. Once you've installed the plugin and enabled the Twitter Cards setting, go to the Twitter Card Validator, enter a secure URL from your site that has a video embedded using this plugin, click "Preview card" and you'll probably see a warning that your site isn't whitelisted. Request whitelisting and Twitter should approve you fairly quickly. Enabling the Facebook or Twitter metadata options will override Jetpack's corresponding metadata whenever a video is embedded on the page. However, your theme or SEO plugins might generate their own metadata that could conflict with this plugin's.
|
41 |
+
|
42 |
You can add subtitle and caption tracks by choosing properly formatted WebVTT files from the media library or entering a URL directly. Enter the two-letter language code and the label text that will be shown to users. Enabling the "default" option will turn the text track on when the page loads. The WordPress default player does not differentiate between captions and subtitles, but Video.js will show a different icon depending on the selection.
|
43 |
|
44 |
I highly recommend using <a href="http://handbrake.fr/">Handbrake</a> to make a file with H.264 video and AAC audio in an MP4 container before uploading. If you're encoding with Handbrake make sure that "Web Optimized" is checked. Using Apple's Compressor, the "Streaming" setting should be "Fast Start" (not Fast Start - Compressed Header).
|
45 |
|
46 |
+
The plugin can use FFMPEG or LIBAV to encode videos and make thumbnails if you have one of them installed on your server. You can choose to generate thumbnails and additional video formats automatically whenever a new video is uploaded to the media library, and there are buttons to generate thumbnails and additional video formats for every video already in the media library. If you want most videos to be re-encoded and replaced with a particular format but sometimes want to keep the original video, you can add the suffix '-noreplace' (awesomevid-noreplace.mp4) to your filename and the uploaded video will not be replaced. Other automatic formats will still encode.
|
47 |
|
48 |
By default the plugin looks for FFMPEG in `/usr/local/bin` but if the application is installed in a different place on your server, you can point it to the correct place in the plugin settings. Users running WordPress on Windows servers should try using Linux-style paths (with forward slashes instead of backslashes and a forward slash `/` instead of `C:\`). Multisite Super Admins must set the FFMPEG path in the Network settings page which will enable FFMPEG throughout the network.
|
49 |
|
69 |
|
70 |
`[KGVID]http://www.kylegilman.net/wp-content/uploads/2006/09/Reel-2012-05-15-720.mp4[/KGVID]`
|
71 |
|
72 |
+
<em>The JW Player 6 plugin has been removed from the WordPress plugin repository and JW Player 7 uses a very different system for embedding videos. JW Player 7 support is not available in this plugin yet. The Strobe Media Playback option hasn't been updated since 2011 and is not recommended, but I'm keeping it around for longtime users of this plugin who don't want to change. Most features of the plugin will work when using Strobe Media Playback, but new features will not be tested with it. Selecting Strobe Media Playback will default to a Flash video player if you're using a Flash-compatible file (flv, f4v, mp4, mov, or m4v). Otherwise it will use the Video.js player as a fallback.</em>
|
73 |
+
|
74 |
= Translations included: =
|
75 |
|
76 |
* Español por Andrew Kurtis de <a href="http://www.webhostinghub.com/">WebHostingHub</a>.
|
79 |
|
80 |
I'm not really a software developer. I'm just a film editor with some time on his hands who wanted to post video for clients and wasn't happy with the current state of any available software. But I want to really make this thing work, so please help me out by posting your feedback on <a href="https://github.com/kylegilman/video-embed-thumbnail-generator/issues?state=open">Github</a>.
|
81 |
|
82 |
+
= If you want to further modify the way the video player works, you can add the following options inside the `[KGVID]` tag. These will override anything you've set in the plugin settings or attachment details. If the plugin is installed on your site, this documentation is also available in the post edit help screen. =
|
83 |
|
84 |
* `id="xxx"` video attachment ID (instead of using a URL).
|
85 |
* `videos="x"` number of attached videos to display if no URL or ID is given.
|
109 |
* `right_click="true/false"` allow or disable right-clicking on the video player.
|
110 |
* `resize="true/false"` allow or disable responsive resizing.
|
111 |
* `auto_res="automatic/highest/lowest"` specify the video resolution when the page loads.
|
112 |
+
* `pixel_ratio="true/false"` account for high-density (retina) displays when choosing automatic video resolution.
|
113 |
+
* `schema="true/false"` allow or disable Schema.org search engine metadata.
|
114 |
|
115 |
= These options will add a subtitle/caption track =
|
116 |
|
123 |
= These options will only affect Video.js playback =
|
124 |
|
125 |
* `skin="example-css-class"` Completely change the look of the video player. <a href="http://designer.videojs.com/">Video.js provides a custom skin designer here.</a>
|
126 |
+
* `nativecontrolsfortouch="true/false` enables or disables native controls on touchscreen devices. Native controls allow for streaming services like AirPlay and Chromecast, but don't always look as nice.
|
127 |
|
128 |
= These options will only affect Flash playback in Strobe Media Playback video elements. They will have no effect on other players. =
|
129 |
|
236 |
|
237 |
== Changelog ==
|
238 |
|
239 |
+
= 4.6 - April 29, 2016 =
|
240 |
+
* Still 100% free. More info in the <a href="https://wordpress.org/support/topic/version-50-will-convert-some-free-features-to-paid-add-ons">support forum</a>.
|
241 |
+
* Updated Video.js to version 5.5.3 which includes a revised skin.
|
242 |
+
* Added resolution switching for WordPress Default player.
|
243 |
+
* Added Twitter Player Cards.
|
244 |
+
* Added animated GIF video conversion.
|
245 |
+
* Added option to select a specific video resolution when the page first loads.
|
246 |
+
* Added option to ignore pixel ratios when calculating automatic resolution selection in order to prioritize lower resolutions on mobile devices.
|
247 |
+
* Added '-noreplace' filename option to prevent automatic video encoding for some videos.
|
248 |
+
* Added button to clear the whole video encoding queue.
|
249 |
+
* Added option to send an email when there is a video encoding error.
|
250 |
+
* Added Google Analytics Event tracking when users watch 25%, 50%, and 75% of a video.
|
251 |
+
* Added Twitter and Facebook share buttons.
|
252 |
+
* Significantly redesigned video sharing overlay appearance.
|
253 |
+
* Moved download link to an icon overlay and stopped inserting unnecessary downloadlink attribute in shortcode for videos in the WordPress database.
|
254 |
+
* Moved resolution switching icon to the left of the fullscreen button.
|
255 |
+
* Now showing paused video frame while switching resolutions instead of black frame or thumbnail (browser experience may vary).
|
256 |
+
* Updated oEmbed system to work with new oEmbed features introduced in WordPress 4.4.
|
257 |
+
* Revised Facebook Open Graph tags so they actually work on Facebook.
|
258 |
+
* Changed in-browser base64 thumbnail encoding to JPG in order to reduce data transferred when saving. Should reduce 404 errors.
|
259 |
+
* Improved user role security to prevent unauthorized users from modifying video settings or deleting encoded videos.
|
260 |
+
* Now using Yoast SEO or All In One SEO Pack post descriptions for description metadata, when available.
|
261 |
+
* Removed Spanish translation from the distribution in order to favor the new <a href="https://translate.wordpress.org/projects/wp-plugins/video-embed-thumbnail-generator">WordPress language packs</a>.
|
262 |
+
* Fixed several multisite encoding queue bugs, particularly when videos have identical post IDs on different sites.
|
263 |
+
* Fixed bug that broke FFMPEG sample encode output and video rotation when a watermark overlay was enabled.
|
264 |
+
* Fixed bug that incorrectly interpreted FFMPEG output as an error when the last line came from the AAC encoder.
|
265 |
+
* Fixed bug that didn't initialize the nativecontrolsfortouch plugin setting.
|
266 |
+
* Fixed bug that didn't set featured images on some videos uploaded using frontend uploaders.
|
267 |
+
* Fixed bug that hid the wrong headers on the plugin settings tabs in WordPress 4.4+.
|
268 |
+
* Fixed bug that disabled the text track remove button when editing videos in the media library.
|
269 |
+
* Fixed bug that redundantly localized the frontend script every time a video was embedded on a page.
|
270 |
+
|
271 |
= 4.5.5 - August 20, 2015 =
|
272 |
* Fixed a number of potential infinite loops and other recursion issues related to longstanding WordPress bug <a href='https://core.trac.wordpress.org/ticket/17817'>#17817</a>.
|
273 |
* Changed video player names with spaces (WordPress Default, JW Player) to one word camel case for JavaScript functions (WordPressDefault, JWPlayer).
|
454 |
* Fixed several user capability related bugs related to users who were not assigned any roles and capabilities that were not assigned to any roles.
|
455 |
* Changed video title overlay z-index to 103 to avoid floating over other elements.
|
456 |
|
457 |
+
<a href="http://www.kylegilman.net/2011/01/18/video-embed-thumbnail-generator-wordpress-plugin/">See the full changelog on my website.</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
458 |
|
459 |
== Upgrade Notice ==
|
460 |
|
461 |
+
= 4.6 =
|
462 |
+
It's safe to update. The plugin is still completely free until version 5.0. Video.js users will notice an updated player design.
|
463 |
+
|
464 |
+
= 4.5.6 =
|
465 |
+
Some advanced features will be converted to premium add-ons in the future. More info in the support forum.
|
466 |
+
|
467 |
= 4.5.2 =
|
468 |
This is probably the last completely free major release. Some advanced features will be converted to premium add-ons in the future. More info in the support forum.
|
469 |
|
video-embed-thumbnail-generator.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Video Embed & Thumbnail Generator
|
4 |
Plugin URI: http://www.kylegilman.net/2011/01/18/video-embed-thumbnail-generator-wordpress-plugin/
|
5 |
Description: Generates thumbnails, HTML5-compliant videos, and embed codes for locally hosted videos. Requires FFMPEG or LIBAV for encoding.
|
6 |
-
Version: 4.
|
7 |
Author: Kyle Gilman
|
8 |
Author URI: http://www.kylegilman.net/
|
9 |
Text Domain: video-embed-thumbnail-generator
|
@@ -59,7 +59,7 @@ function kgvid_default_options_fn() {
|
|
59 |
$edit_others_capable = kgvid_check_if_capable('edit_others_posts');
|
60 |
|
61 |
$options = array(
|
62 |
-
"version" => 4.
|
63 |
"embed_method" => "Video.js",
|
64 |
"jw_player_id" => "",
|
65 |
"template" => false,
|
@@ -97,6 +97,9 @@ function kgvid_default_options_fn() {
|
|
97 |
"watermark_url" => "",
|
98 |
"overlay_title" => "on",
|
99 |
"overlay_embedcode" => false,
|
|
|
|
|
|
|
100 |
"downloadlink" => false,
|
101 |
"click_download" => "on",
|
102 |
"view_count" => false,
|
@@ -106,13 +109,14 @@ function kgvid_default_options_fn() {
|
|
106 |
"width" => "640",
|
107 |
"height" => "360",
|
108 |
"minimum_width" => false,
|
109 |
-
"fullwidth" =>
|
110 |
"gallery_width" => "960",
|
111 |
"gallery_thumb" => "250",
|
112 |
"gallery_end" => "",
|
113 |
"gallery_pagination" => false,
|
114 |
"gallery_per_page" => false,
|
115 |
"gallery_title" => "on",
|
|
|
116 |
"controlbar_style" => "docked",
|
117 |
"autoplay" => false,
|
118 |
"loop" => false,
|
@@ -142,23 +146,28 @@ function kgvid_default_options_fn() {
|
|
142 |
"h264_profile" => "baseline",
|
143 |
"h264_level" => "3.0",
|
144 |
"auto_encode" => false,
|
|
|
145 |
"auto_thumb" => false,
|
146 |
"auto_thumb_number" => 1,
|
147 |
"auto_thumb_position" => 50,
|
148 |
"right_click" => "on",
|
149 |
"resize" => "on",
|
150 |
"auto_res" => "automatic",
|
|
|
151 |
"capabilities" => array(
|
152 |
"make_video_thumbnails" => $upload_capable,
|
153 |
"encode_videos" => $upload_capable,
|
154 |
"edit_others_video_encodes" => $edit_others_capable
|
155 |
),
|
156 |
-
"open_graph" =>
|
157 |
-
"
|
|
|
|
|
158 |
"oembed_security" => false,
|
159 |
"htaccess_login" => "",
|
160 |
"htaccess_password" => "",
|
161 |
"sample_format" => "mobile",
|
|
|
162 |
"ffmpeg_watermark" => array(
|
163 |
"url" => "",
|
164 |
"scale" => "9",
|
@@ -167,7 +176,8 @@ function kgvid_default_options_fn() {
|
|
167 |
"x" => "6",
|
168 |
"y" => "5"
|
169 |
),
|
170 |
-
"simultaneous_encodes" => 1
|
|
|
171 |
);
|
172 |
|
173 |
return $options;
|
@@ -189,7 +199,8 @@ function kgvid_default_network_options() {
|
|
189 |
'ffmpeg_exists' => $default_options['ffmpeg_exists'],
|
190 |
'default_capabilities' => $default_options['capabilities'],
|
191 |
'superadmin_only_ffmpeg_settings' => false,
|
192 |
-
'simultaneous_encodes' => $default_options['simultaneous_encodes']
|
|
|
193 |
);
|
194 |
|
195 |
return $network_options;
|
@@ -209,6 +220,27 @@ function kgvid_get_options() {
|
|
209 |
|
210 |
}
|
211 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
212 |
function kgvid_get_attachment_meta($post_id) {
|
213 |
|
214 |
$options = kgvid_get_options();
|
@@ -252,7 +284,8 @@ function kgvid_get_attachment_meta($post_id) {
|
|
252 |
'gallery_order' => '',
|
253 |
'gallery_id' => '',
|
254 |
'duration' => '',
|
255 |
-
'aspect' => ''
|
|
|
256 |
);
|
257 |
|
258 |
if ( $kgvid_postmeta == '' ) {
|
@@ -340,7 +373,7 @@ function kgvid_video_formats( $return_replace = false, $return_customs = true )
|
|
340 |
$video_formats = array(
|
341 |
"fullres" => array(
|
342 |
"name" => __("same resolution H.264", 'video-embed-thumbnail-generator'),
|
343 |
-
"label" => 'Full',
|
344 |
"width" => INF,
|
345 |
"height" => INF,
|
346 |
"type" => "h264",
|
@@ -424,8 +457,8 @@ function kgvid_video_formats( $return_replace = false, $return_customs = true )
|
|
424 |
|
425 |
$video_formats = $video_formats + array(
|
426 |
"custom_h264" => array(
|
427 |
-
"name" =>
|
428 |
-
"label" => 'Custom MP4',
|
429 |
"width" => 0,
|
430 |
"height" => 0,
|
431 |
"type" => "h264",
|
@@ -435,8 +468,8 @@ function kgvid_video_formats( $return_replace = false, $return_customs = true )
|
|
435 |
"vcodec" => "libx264"
|
436 |
),
|
437 |
"custom_webm" => array(
|
438 |
-
"name" =>
|
439 |
-
"label" => 'Custom WEBM',
|
440 |
"width" => 0,
|
441 |
"height" => 0,
|
442 |
"type" => "webm",
|
@@ -446,8 +479,8 @@ function kgvid_video_formats( $return_replace = false, $return_customs = true )
|
|
446 |
"vcodec" => "libvpx"
|
447 |
),
|
448 |
"custom_ogg" => array(
|
449 |
-
"name" =>
|
450 |
-
"label" => 'Custom OGV',
|
451 |
"width" => 0,
|
452 |
"height" => 0,
|
453 |
"type" => "ogv",
|
@@ -668,7 +701,7 @@ function kgvid_set_capabilities($capabilities) {
|
|
668 |
function kgvid_aac_encoders() {
|
669 |
|
670 |
$aac_array = array("libfdk_aac", "libfaac", "aac", "libvo_aacenc");
|
671 |
-
return $aac_array;
|
672 |
|
673 |
}
|
674 |
|
@@ -699,6 +732,51 @@ function kgvid_url_to_id($url) {
|
|
699 |
|
700 |
}
|
701 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
702 |
function kgvid_url_exists($url) {
|
703 |
$hdrs = @get_headers($url);
|
704 |
return is_array($hdrs) ? preg_match('/^HTTP\\/\\d+\\.\\d+\\s+2\\d\\d\\s+.*$/',$hdrs[0]) : false;
|
@@ -905,6 +983,7 @@ function kgvid_set_video_dimensions($id, $gallery = false) {
|
|
905 |
$kgvid_postmeta['height'] = round(intval($kgvid_postmeta['width'])*$aspect_ratio);
|
906 |
|
907 |
$dimensions = array( 'width' => strval($kgvid_postmeta['width']), 'height' => strval($kgvid_postmeta['height']), 'actualwidth' => strval($kgvid_postmeta['actualwidth']), 'actualheight' => strval($kgvid_postmeta['actualheight']) );
|
|
|
908 |
return $dimensions;
|
909 |
|
910 |
}
|
@@ -1047,7 +1126,7 @@ function kgvid_encodevideo_info($movieurl, $postID) {
|
|
1047 |
if ( is_writable($location['filepath']) ) { $encodevideo_info[$format]['writable'] = true; }
|
1048 |
break;
|
1049 |
}
|
1050 |
-
elseif ( !$encodevideo_info['sameserver'] &&
|
1051 |
|
1052 |
$already_checked_url = get_post_meta($postID, '_kgflashmediaplayer-'.$sanitized_url['singleurl_id'].'-'.$format, true);
|
1053 |
if ( empty($already_checked_url) ) {
|
@@ -1070,13 +1149,19 @@ function kgvid_encodevideo_info($movieurl, $postID) {
|
|
1070 |
}//end potential locations loop
|
1071 |
|
1072 |
if ( !$encodevideo_info[$format]['exists'] ) {
|
1073 |
-
$
|
1074 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1075 |
}
|
1076 |
|
1077 |
}//end format loop
|
1078 |
|
1079 |
-
return $encodevideo_info;
|
1080 |
}
|
1081 |
|
1082 |
/**
|
@@ -1133,10 +1218,10 @@ function kgvid_get_video_dimensions($video = false) {
|
|
1133 |
else { $rotate = "0"; }
|
1134 |
|
1135 |
switch ($rotate) {
|
1136 |
-
case "90": $movie_info['rotate'] =
|
1137 |
-
case "180": $movie_info['rotate'] =
|
1138 |
-
case "270": $movie_info['rotate'] =
|
1139 |
-
case "-90": $movie_info['rotate'] =
|
1140 |
default: $movie_info['rotate'] = ""; break;
|
1141 |
}
|
1142 |
|
@@ -1158,7 +1243,7 @@ function kgvid_get_video_dimensions($video = false) {
|
|
1158 |
$movie_info['worked'] = false;
|
1159 |
}
|
1160 |
|
1161 |
-
return $movie_info;
|
1162 |
}
|
1163 |
|
1164 |
function kgvid_generate_flashvars($content, $query_atts, $encodevideo_info, $id) {
|
@@ -1249,6 +1334,69 @@ function kgvid_generate_encode_string($input, $output, $movie_info, $format, $wi
|
|
1249 |
$rate_control_flag = " -".$video_bitrate_flag." ".round(floatval($options['bitrate_multiplier'])*$width*$height*30/1024)."k";
|
1250 |
}
|
1251 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1252 |
if ( $options['ffmpeg_watermark']['url'] != "" ) {
|
1253 |
|
1254 |
$watermark_width = strval(round(intval($movie_info['width'])*(intval($options['ffmpeg_watermark']['scale'])/100)));
|
@@ -1280,31 +1428,13 @@ function kgvid_generate_encode_string($input, $output, $movie_info, $format, $wi
|
|
1280 |
}
|
1281 |
|
1282 |
$watermark_input = '-i "'.$options['ffmpeg_watermark']['url'].'" ';
|
1283 |
-
$watermark_filter = ' -filter_complex "[1:v]scale='.$watermark_width.':-1[watermark];[0:v][watermark]overlay='.$watermark_align.'main_w*'.round($options['ffmpeg_watermark']['x']/100, 3).':'.$watermark_valign.'main_w*'.round($options['ffmpeg_watermark']['y']/100, 3).'"';
|
1284 |
}
|
1285 |
else {
|
1286 |
$watermark_input = "";
|
1287 |
$watermark_filter = "";
|
1288 |
}
|
1289 |
|
1290 |
-
if ( $rotate === false || $options['ffmpeg_vpre'] == "on" ) { $rotate = ""; }
|
1291 |
-
switch ($rotate) { //if it's a sideways mobile video
|
1292 |
-
case ' -vf "transpose=1"': //90 degrees
|
1293 |
-
case ' -vf "transpose=2"': //270 degrees
|
1294 |
-
if ( $options['video_bitrate_flag'] == "on" || $options['ffmpeg_old_rotation'] == "on" ) {
|
1295 |
-
$rotate .= " -metadata rotate=0";
|
1296 |
-
}
|
1297 |
-
else {
|
1298 |
-
$rotate .= " -metadata:s:v:0 rotate=0";
|
1299 |
-
$width ^= $height ^= $width ^= $height; //swap height & width
|
1300 |
-
}
|
1301 |
-
break;
|
1302 |
-
case ' -vf "hflip,vflip"': //180 degrees
|
1303 |
-
if ( $options['video_bitrate_flag'] == "on" || $options['ffmpeg_old_rotation'] == "on" ) { $rotate .= " -metadata rotate=0"; }
|
1304 |
-
else { $rotate .= " -metadata:s:v:0 rotate=0"; }
|
1305 |
-
break;
|
1306 |
-
}
|
1307 |
-
|
1308 |
if ( $video_formats[$format]['type'] == 'h264' ) {
|
1309 |
|
1310 |
$aac_array = kgvid_aac_encoders();
|
@@ -1365,7 +1495,7 @@ function kgvid_generate_encode_string($input, $output, $movie_info, $format, $wi
|
|
1365 |
|
1366 |
} //if FFMPEG is found
|
1367 |
|
1368 |
-
return $encode_string;
|
1369 |
|
1370 |
}
|
1371 |
|
@@ -1425,176 +1555,264 @@ class kgvid_Process{
|
|
1425 |
}// class Process
|
1426 |
|
1427 |
function kgvid_video_embed_enqueue_scripts() {
|
|
|
1428 |
$options = kgvid_get_options();
|
1429 |
|
1430 |
//Video.js styles
|
1431 |
if ( $options['embed_method'] == "Video.js" || $options['embed_method'] == "Strobe Media Playback" ) {
|
1432 |
-
wp_enqueue_style( 'video-js', plugins_url("", __FILE__).'/video-js/video-js.css', '', '
|
1433 |
if ( $options['js_skin'] == 'kg-video-js-skin' ){ wp_enqueue_style( 'video-js-kg-skin', plugins_url("", __FILE__).'/video-js/kg-video-js-skin.css', '', $options['version'] ); }
|
1434 |
}
|
1435 |
|
1436 |
-
//plugin-related frontend styles
|
1437 |
-
wp_enqueue_style( 'kgvid_video_styles', plugins_url("/css/kgvid_styles.css", __FILE__), '', $options['version'] );
|
1438 |
|
1439 |
}
|
1440 |
add_action('wp_enqueue_scripts', 'kgvid_video_embed_enqueue_scripts', 12);
|
1441 |
|
1442 |
function enqueue_kgvid_script() { //loads plugin-related scripts in the admin area
|
1443 |
|
1444 |
-
|
|
|
|
|
1445 |
|
1446 |
-
|
1447 |
-
|
1448 |
-
|
1449 |
-
|
1450 |
-
|
1451 |
-
|
1452 |
-
|
1453 |
-
|
1454 |
-
|
1455 |
-
|
1456 |
-
|
1457 |
-
|
1458 |
-
|
1459 |
-
|
1460 |
-
|
1461 |
-
|
1462 |
-
|
1463 |
-
|
1464 |
-
|
1465 |
-
|
1466 |
-
|
1467 |
-
|
1468 |
-
|
1469 |
-
|
1470 |
-
|
1471 |
-
|
1472 |
-
|
1473 |
-
|
1474 |
-
|
1475 |
-
|
1476 |
-
|
1477 |
-
|
1478 |
-
|
1479 |
-
|
1480 |
-
|
1481 |
-
|
1482 |
-
|
1483 |
-
|
1484 |
-
|
1485 |
-
|
1486 |
-
|
1487 |
-
|
1488 |
-
|
|
|
|
|
1489 |
|
1490 |
}
|
1491 |
add_action('admin_enqueue_scripts', 'enqueue_kgvid_script');
|
1492 |
add_action('wp_enqueue_media', 'enqueue_kgvid_script');
|
1493 |
|
1494 |
-
function
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1495 |
|
1496 |
-
global $wp_query;
|
1497 |
-
global $wpdb;
|
1498 |
-
$posts = $wp_query->posts;
|
1499 |
$pattern = get_shortcode_regex();
|
1500 |
-
$
|
1501 |
|
1502 |
-
|
|
|
|
|
|
|
1503 |
|
1504 |
-
|
1505 |
-
foreach ( $posts as $post ) {
|
1506 |
-
if ( $options['open_graph'] == "on"
|
1507 |
-
&& ( ( is_attachment() && strpos($post->post_mime_type, 'video') !== false )
|
1508 |
-
|| ( preg_match_all( '/'. $pattern .'/s', $post->post_content, $matches )
|
1509 |
-
&& is_array($matches)
|
1510 |
-
&& array_key_exists( 2, $matches ) && array_key_exists( 5, $matches )
|
1511 |
-
&& ( in_array( 'KGVID', $matches[2] ) || in_array( 'FMP', $matches[2] ) ) ) ) ) { //if KGVID or FMP shortcode is in posts on this page.
|
1512 |
|
1513 |
-
|
|
|
1514 |
|
1515 |
-
|
1516 |
-
if ( $first_key === false ) { $first_key = array_search('FMP', $matches[2]); }
|
1517 |
|
1518 |
-
|
|
|
1519 |
|
1520 |
-
|
1521 |
-
|
1522 |
-
|
1523 |
|
1524 |
-
|
1525 |
-
$attributes = shortcode_parse_atts($matches[3][$first_key]);
|
1526 |
-
}
|
1527 |
|
1528 |
-
|
|
|
1529 |
|
1530 |
-
|
1531 |
-
$attributes['id'] = kgvid_url_to_id($matches[5][$first_key]);
|
1532 |
|
1533 |
-
|
|
|
|
|
1534 |
|
1535 |
-
|
1536 |
-
|
1537 |
-
|
1538 |
|
1539 |
-
|
1540 |
-
|| empty($attributes)
|
1541 |
-
) {
|
1542 |
|
1543 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1544 |
|
1545 |
-
|
1546 |
-
|
1547 |
-
|
1548 |
-
|
1549 |
-
'post_status' => null,
|
1550 |
-
'post_type' => 'attachment'
|
1551 |
-
);
|
1552 |
-
$video_attachment = get_posts($args);
|
1553 |
|
1554 |
-
|
1555 |
-
$attributes['id'] = $video_attachment[0]->ID;
|
1556 |
-
$url = wp_get_attachment_url($attributes['id']);
|
1557 |
-
}
|
1558 |
|
1559 |
-
|
1560 |
-
|
1561 |
-
|
1562 |
-
|
1563 |
-
|
1564 |
-
|
1565 |
-
$attributes = array( 'width' => $kgvid_postmeta['width'], 'height' => $kgvid_postmeta['height'], 'id' => $post->ID );
|
1566 |
-
$mime_type_check['type'] = $post->post_mime_type;
|
1567 |
|
1568 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1569 |
|
1570 |
-
|
|
|
|
|
|
|
1571 |
|
1572 |
-
|
1573 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1574 |
echo '<meta property="og:video:secure_url" content="'.$secure_url.'" />'."\n";
|
1575 |
-
$mime_type_check = wp_check_filetype($url);
|
1576 |
echo '<meta property="og:video:type" content="'.$mime_type_check['type'].'" />'."\n";
|
1577 |
|
1578 |
-
if (
|
1579 |
-
echo '<meta property="og:video:width" content="'.$
|
1580 |
-
if ( array_key_exists( 'height', $
|
1581 |
-
echo '<meta property="og:video:height" content="'.$
|
1582 |
}
|
1583 |
}
|
1584 |
-
}
|
1585 |
|
1586 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1587 |
|
1588 |
-
|
1589 |
-
echo '<meta property="og:video:secure_url" content="'.site_url('/', 'https')."?attachment_id=".$attributes['id']."&kgvid_video_embed[enable]=true".'" />'."\n";
|
1590 |
-
echo '<meta property="og:video:type" content="text/html" />'."\n";
|
1591 |
|
1592 |
-
|
1593 |
|
1594 |
-
|
1595 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1596 |
|
|
|
|
|
|
|
|
|
1597 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1598 |
|
1599 |
}
|
1600 |
|
@@ -1605,7 +1823,74 @@ function kgvid_video_embed_print_scripts() {
|
|
1605 |
}//end if posts
|
1606 |
|
1607 |
}
|
1608 |
-
add_action('wp_head', 'kgvid_video_embed_print_scripts',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1609 |
|
1610 |
function kgvid_enqueue_shortcode_scripts() {
|
1611 |
|
@@ -1613,7 +1898,7 @@ function kgvid_enqueue_shortcode_scripts() {
|
|
1613 |
|
1614 |
if ( $options['embed_method'] == "Video.js" || $options['embed_method'] == "Strobe Media Playback" ) {
|
1615 |
wp_enqueue_script( 'video-quality-selector', plugins_url("", __FILE__).'/video-js/video-quality-selector.js', array('video-js'), $options['version'], true );
|
1616 |
-
wp_enqueue_script( 'video-js', plugins_url("", __FILE__).'/video-js/video.js', '', '
|
1617 |
add_action('wp_footer', 'kgvid_print_videojs_footer', 99);
|
1618 |
}
|
1619 |
|
@@ -1621,22 +1906,27 @@ function kgvid_enqueue_shortcode_scripts() {
|
|
1621 |
wp_enqueue_script( 'swfobject' );
|
1622 |
}
|
1623 |
|
1624 |
-
|
1625 |
|
1626 |
-
|
1627 |
-
|
1628 |
-
'
|
1629 |
-
|
1630 |
-
|
1631 |
-
|
1632 |
-
|
1633 |
-
|
|
|
|
|
|
|
|
|
|
|
1634 |
|
1635 |
}
|
1636 |
|
1637 |
function kgvid_print_videojs_footer() { //called by the shortcode if Video.js is used
|
1638 |
|
1639 |
-
echo '<script type="text/javascript">if(typeof videojs !== "undefined") { videojs.options.flash.swf = "'.plugins_url("", __FILE__).'/video-js/video-js.swf?
|
1640 |
|
1641 |
}
|
1642 |
|
@@ -1701,7 +1991,6 @@ function kgvid_gallery_page($page_number, $query_atts, $last_video_id = 0) {
|
|
1701 |
$below_video = 0;
|
1702 |
if ( !empty($query_atts['caption']) ) { $below_video = 1; }
|
1703 |
$kgvid_postmeta = kgvid_get_attachment_meta( $attachment->ID );
|
1704 |
-
if ( $kgvid_postmeta['downloadlink'] == "on" ) { ++$below_video; }
|
1705 |
|
1706 |
$play_button_html = '';
|
1707 |
|
@@ -1737,10 +2026,10 @@ function kgvid_gallery_page($page_number, $query_atts, $last_video_id = 0) {
|
|
1737 |
if ( $kgvid_postmeta['downloadlink'] == "on" ) { $atts['downloadlink'] = "true"; }
|
1738 |
|
1739 |
$popup_atts = kgvid_shortcode_atts($atts);
|
1740 |
-
if ( in_the_loop() ) { $
|
1741 |
-
else { $
|
1742 |
$content = '';
|
1743 |
-
$popup_code = kgvid_single_video_code($popup_atts, $atts, $content, $
|
1744 |
|
1745 |
preg_match('/data-kgvid_video_vars=.*? /', $popup_code, $video_vars);
|
1746 |
$popup_code = str_replace(array("\r", "\n", "\t", $video_vars[0]), "", $popup_code);
|
@@ -1778,7 +2067,7 @@ function kgvid_gallery_page($page_number, $query_atts, $last_video_id = 0) {
|
|
1778 |
|
1779 |
} //if there are attachments
|
1780 |
|
1781 |
-
return $code;
|
1782 |
|
1783 |
}
|
1784 |
|
@@ -1798,7 +2087,41 @@ function kgvid_switch_gallery_page() {
|
|
1798 |
add_action( 'wp_ajax_kgvid_switch_gallery_page', 'kgvid_switch_gallery_page' ); // ajax for logged in users
|
1799 |
add_action( 'wp_ajax_nopriv_kgvid_switch_gallery_page', 'kgvid_switch_gallery_page' ); // ajax for not logged in users
|
1800 |
|
1801 |
-
function
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1802 |
|
1803 |
global $content_width;
|
1804 |
$content_width_save = $content_width;
|
@@ -1810,16 +2133,18 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_ID) {
|
|
1810 |
$code = "";
|
1811 |
$id_array = array();
|
1812 |
$video_formats = kgvid_video_formats();
|
|
|
|
|
1813 |
|
1814 |
if ( empty($content) ) {
|
1815 |
if ( !empty($query_atts["id"]) ) {
|
1816 |
$id_array[0] = $query_atts["id"];
|
1817 |
}
|
1818 |
-
elseif ( $
|
1819 |
$args = array(
|
1820 |
'numberposts' => $query_atts['videos'],
|
1821 |
'post_mime_type' => 'video',
|
1822 |
-
'post_parent' => $
|
1823 |
'post_status' => null,
|
1824 |
'post_type' => 'attachment',
|
1825 |
'orderby' => $query_atts['orderby'],
|
@@ -1854,8 +2179,14 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_ID) {
|
|
1854 |
$mp4already = false;
|
1855 |
$dimensions = array();
|
1856 |
|
1857 |
-
$
|
1858 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1859 |
|
1860 |
if ( !empty($id) ) { //if the video is an attachment in the WordPress db
|
1861 |
|
@@ -1895,14 +2226,14 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_ID) {
|
|
1895 |
$stats_title = $query_atts['title'];
|
1896 |
}
|
1897 |
else { $stats_title = $attachment_info->post_title; }
|
1898 |
-
if ( empty($query_atts['caption']) ) { $query_atts['caption'] = $attachment_info->post_excerpt; }
|
1899 |
-
if ( empty($query_atts['description']) ) { $query_atts['description'] = $attachment_info->post_content; }
|
1900 |
|
1901 |
$countable = true;
|
1902 |
}
|
1903 |
else { //video is not in the database
|
1904 |
|
1905 |
-
$encodevideo_info = kgvid_encodevideo_info($content, $
|
1906 |
if ( $query_atts['title'] == "true" ) {
|
1907 |
$query_atts['title'] = "false";
|
1908 |
}
|
@@ -1962,7 +2293,11 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_ID) {
|
|
1962 |
}
|
1963 |
|
1964 |
if ( ( $query_atts['title'] != "false" && $options['embed_method'] != "JW Player" )
|
1965 |
-
|
|
|
|
|
|
|
|
|
1966 |
$kgvid_meta = true;
|
1967 |
}
|
1968 |
else { $kgvid_meta = false; }
|
@@ -1982,9 +2317,60 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_ID) {
|
|
1982 |
'endofvideooverlay' => $query_atts['endofvideooverlay'],
|
1983 |
'resize' => $query_atts['resize'],
|
1984 |
'auto_res' => $query_atts['auto_res'],
|
|
|
1985 |
'right_click' => $query_atts['right_click']
|
1986 |
);
|
1987 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1988 |
if ( $options['embed_method'] == "Strobe Media Playback" && $flash_settings['flash_source_found'] ) {
|
1989 |
|
1990 |
$video_variables['swfurl'] = plugins_url('', __FILE__)."/flash/StrobeMediaPlayback.swf";
|
@@ -1995,33 +2381,31 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_ID) {
|
|
1995 |
} //if Strobe Media
|
1996 |
|
1997 |
$code .= '<div id="kgvid_'.$div_suffix.'_wrapper" class="kgvid_wrapper'.$aligncode.'">'."\n\t\t\t";
|
1998 |
-
$code .= '<div id="video_'.$div_suffix.'_div" class="fitvidsignore kgvid_videodiv" data-id="'.$div_suffix.'" data-kgvid_video_vars="'.esc_attr(json_encode($video_variables)).'"
|
1999 |
-
if ( $query_atts["
|
2000 |
-
|
2001 |
-
|
2002 |
-
|
2003 |
-
|
2004 |
-
|
2005 |
-
|
2006 |
-
|
2007 |
-
|
2008 |
-
|
2009 |
-
|
2010 |
-
|
2011 |
-
if ( !empty($post->post_excerpt) ) {
|
2012 |
-
$description = $post->post_excerpt;
|
2013 |
}
|
2014 |
-
else {
|
2015 |
-
$description = esc_attr(wp_trim_words(strip_tags(strip_shortcodes($post->post_content))));
|
2016 |
-
}
|
2017 |
-
}
|
2018 |
-
if ( empty($description) ) { $description = __('Video', 'video-embed-thumbnail-generator'); }
|
2019 |
-
$code .= '<meta itemprop="description" content="'.esc_attr($description).'" />';
|
2020 |
|
2021 |
-
|
2022 |
-
|
2023 |
-
|
2024 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
2025 |
|
2026 |
$track_keys = array('kind', 'srclang', 'src', 'label', 'default');
|
2027 |
if ( !isset($kgvid_postmeta) || ( is_array($kgvid_postmeta) && !is_array($kgvid_postmeta['track']) ) ) {
|
@@ -2038,26 +2422,76 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_ID) {
|
|
2038 |
foreach ( $track_attribute as $attribute => $value ) {
|
2039 |
if ( empty($value) ) { $track_attribute[$attribute] = $query_atts['track_'.$attribute]; }
|
2040 |
}
|
|
|
2041 |
if ( $options['embed_method'] == "WordPress Default" && $track_attribute['kind'] == 'captions' ) { $track_attribute['kind'] = 'subtitles'; }
|
2042 |
-
$track_code .= "
|
2043 |
}
|
2044 |
}
|
2045 |
|
2046 |
if ( $options['embed_method'] == "WordPress Default" ) {
|
2047 |
-
|
|
|
|
|
|
|
2048 |
$attr = array();
|
|
|
2049 |
foreach ($video_formats as $format => $format_stats) {
|
|
|
2050 |
if ( $format != "original" && $encodevideo_info[$format]["url"] == $content ) { unset($sources['original']); }
|
|
|
2051 |
if ( $encodevideo_info[$format]["exists"] ) {
|
2052 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2053 |
$shortcode_type = wp_check_filetype( $encodevideo_info[$format]["url"], wp_get_mime_types() );
|
2054 |
$attr[$shortcode_type['ext']] = $encodevideo_info[$format]["url"];
|
2055 |
-
if ( $format_stats['type'] == "h264" ) {
|
2056 |
$mp4already = true;
|
2057 |
}
|
2058 |
}
|
2059 |
-
else { $sources_hack .= '<source type="'.$format_stats['mime'].'" src="'.esc_attr($encodevideo_info[$format]["url"]).'" />'; }
|
2060 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2061 |
}
|
2062 |
|
2063 |
if ( $query_atts["poster"] != '' ) { $attr['poster'] = esc_attr($query_atts["poster"]); }
|
@@ -2067,18 +2501,34 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_ID) {
|
|
2067 |
$attr['width'] = $query_atts['width'];
|
2068 |
$attr['height'] = $query_atts['height'];
|
2069 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2070 |
$content_width = $query_atts['width'];
|
2071 |
if ( function_exists('wp_video_shortcode') ) { $executed_shortcode = wp_video_shortcode($attr); }
|
2072 |
else { $executed_shortcode = 'WordPress video shortcode function does not exist.'; }
|
2073 |
$content_width = $content_width_save;
|
2074 |
-
|
2075 |
-
|
2076 |
-
$executed_shortcode =
|
2077 |
}
|
2078 |
-
if ( !empty($track_code) ) {
|
2079 |
-
$
|
2080 |
-
$executed_shortcode = substr_replace( $executed_shortcode, $track_code, $position, 0 );
|
2081 |
}
|
|
|
2082 |
$code .= $executed_shortcode;
|
2083 |
}
|
2084 |
|
@@ -2124,9 +2574,9 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_ID) {
|
|
2124 |
if ( $query_atts["autoplay"] == 'true' ) { $jw_shortcode .= 'autostart="true" '; }
|
2125 |
if ( $query_atts["controlbar"] == 'none') { $jw_shortcode .= 'controls="false" '; }
|
2126 |
if ( $query_atts['title'] != "false" ) { $jw_shortcode .= ' title="'.$query_atts['title'].'" '; }
|
2127 |
-
if ( $
|
2128 |
-
$jw_player_config = get_option('jwp6_player_config_'.$
|
2129 |
-
if ( !empty($jw_player_config) ) { $jw_shortcode .= ' player="'.$
|
2130 |
}
|
2131 |
|
2132 |
if ( !empty($query_atts['custom_atts']) && is_array($query_atts['custom_atts']) ) {
|
@@ -2151,60 +2601,18 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_ID) {
|
|
2151 |
|
2152 |
if ( $options['embed_method'] == "Video.js" || $options['embed_method'] == "Strobe Media Playback" ) {
|
2153 |
|
2154 |
-
$
|
2155 |
-
$x = 20;
|
2156 |
-
$h264_resolutions = array();
|
2157 |
-
|
2158 |
-
foreach ($video_formats as $format => $format_stats) {
|
2159 |
-
if ( $format != "original" && $encodevideo_info[$format]["url"] == $content ) { unset($sources['original']); }
|
2160 |
-
if ( $encodevideo_info[$format]["exists"] ) {
|
2161 |
-
|
2162 |
-
if ( array_key_exists('height', $encodevideo_info[$format]) && $format_stats['type'] == 'h264' ) {
|
2163 |
-
$source_key = $encodevideo_info[$format]['height'];
|
2164 |
-
$format_stats['label'] = $encodevideo_info[$format]['height'].'p';
|
2165 |
-
}
|
2166 |
-
else { $source_key = $x; }
|
2167 |
-
|
2168 |
-
$sources[$source_key] = "\t\t\t\t\t".'<source src="'.esc_attr($encodevideo_info[$format]["url"]).'?id='.$kgvid_video_id.'" type="'.$format_stats["mime"].'"';
|
2169 |
-
if ( $format == 'vp9' ) { $sources[$source_key] .= ' codecs="vp9, vorbis"'; }
|
2170 |
-
if ( $format_stats['type'] == 'h264' ) {
|
2171 |
-
$sources[$source_key] .= ' data-res="'.$format_stats['label'].'"';
|
2172 |
-
if ( $mp4already ) { //there is more than one resolution available
|
2173 |
-
$enable_resolutions_plugin = true;
|
2174 |
-
}
|
2175 |
-
$mp4already = true;
|
2176 |
-
$h264_resolutions[] = $format_stats['label'];
|
2177 |
-
}
|
2178 |
-
else { $sources[$source_key] .= ' data-res="'.$format_stats['name'].'"'; }
|
2179 |
-
$sources[$source_key] .= '>'."\n";
|
2180 |
-
}
|
2181 |
-
$x--;
|
2182 |
-
}
|
2183 |
-
krsort($sources);
|
2184 |
-
natsort($h264_resolutions);
|
2185 |
-
|
2186 |
-
$code .= '<video id="video_'.$div_suffix.'" ';
|
2187 |
if ( $query_atts["loop"] == 'true') { $code .= 'loop '; }
|
2188 |
if ( $query_atts["autoplay"] == 'true') { $code .= 'autoplay '; }
|
2189 |
if ( $query_atts["controlbar"] != 'none') { $code .= 'controls '; }
|
2190 |
$code .= 'preload="'.$options['preload'].'" ';
|
2191 |
if ( $query_atts["poster"] != '' ) { $code .= 'poster="'.esc_attr($query_atts["poster"]).'" '; }
|
2192 |
$code .= 'width="'.$query_atts["width"].'" height="'.esc_attr($query_atts["height"]).'"';
|
2193 |
-
$locale = get_locale();
|
2194 |
if ( $options['js_skin'] == "" ) { $options['js_skin'] = "vjs-default-skin"; }
|
2195 |
if ( is_array($atts) && array_key_exists('skin', $atts) ) {
|
2196 |
$options['js_skin'] = $atts['skin']; //allows user to set skin for individual videos using the skin="" attribute
|
2197 |
}
|
2198 |
-
$code .= ' class="fitvidsignore '.esc_attr('video-js '.$options['js_skin']).'"
|
2199 |
-
if ( $options['nativecontrolsfortouch'] == "on" ) { $code .= '"nativeControlsForTouch": true, '; }
|
2200 |
-
$code .= '"language": "'.substr($locale, 0, 2).'"';
|
2201 |
-
if ( $enable_resolutions_plugin ) { $code .= ', "plugins" : { "resolutionSelector" : { "force_types" : ["video/mp4"]';
|
2202 |
-
if ( $query_atts["auto_res"] == "highest" ) { $code .= ', "default_res": "'.end($h264_resolutions).'"'; }
|
2203 |
-
if ( $query_atts["auto_res"] == "lowest" ) { $code .= ', "default_res": "'.reset($h264_resolutions).'"'; }
|
2204 |
-
$code .= ' } }';
|
2205 |
-
}
|
2206 |
-
$code .= ' }\'';
|
2207 |
-
$code .= ">\n";
|
2208 |
|
2209 |
$code .= implode("", $sources); //add the <source> tags created earlier
|
2210 |
$code .= $track_code; //if there's a text track
|
@@ -2213,7 +2621,7 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_ID) {
|
|
2213 |
}
|
2214 |
$code .= "\t\t\t</div>\n";
|
2215 |
$show_views = false;
|
2216 |
-
if ( !empty($id)
|
2217 |
if ( is_array($kgvid_postmeta) && array_key_exists('starts', $kgvid_postmeta) ) { $view_count = number_format(intval($kgvid_postmeta['starts'])); }
|
2218 |
else { $view_count = "0"; }
|
2219 |
if ( $content == plugins_url('/images/sample-video-h264.mp4', __FILE__) ) { $view_count = "XX"; }
|
@@ -2221,38 +2629,90 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_ID) {
|
|
2221 |
if ( !empty($query_atts['caption']) || $show_views || $query_atts['downloadlink'] == "true" ) {
|
2222 |
$code .= "\t\t\t".'<div class="kgvid_below_video" id="video_'.$div_suffix.'_below">';
|
2223 |
if ( $show_views ) { $code .= '<div class="kgvid-viewcount" id="video_'.$div_suffix.'_viewcount">'.sprintf( _n( '%s view', '%s views', intval(str_replace(',', '', $view_count)) , 'video-embed-thumbnail-generator'), $view_count ).'</div>'; }
|
2224 |
-
if ( !empty($query_atts['caption'])
|
2225 |
-
$code .= '<div class="kgvid-caption" id="video_'.$div_suffix.'_caption">'.$query_atts['caption'];
|
2226 |
-
if ( $query_atts['downloadlink'] == "true" ) {
|
2227 |
-
if ( !empty($query_atts['caption']) ) { $code .= '<br>'; }
|
2228 |
-
$forceable = false;
|
2229 |
-
if ( !empty($id) && $options['click_download'] == 'on' ) {
|
2230 |
-
$filepath = get_attached_file($id);
|
2231 |
-
if ( file_exists($filepath) ) {
|
2232 |
-
$forceable = true;
|
2233 |
-
$code .= '<a href="'.site_url('/').'?attachment_id='.$id.'&kgvid_video_embed[download]=true">'.__('Click on this link to download', 'video-embed-thumbnail-generator').'</a>';
|
2234 |
-
}
|
2235 |
-
}
|
2236 |
-
if ( !$forceable ) { $code .= '<a href="'.$content.'">'.__('Right-click or ctrl-click on this link to download', 'video-embed-thumbnail-generator').'</a>'; }
|
2237 |
-
}
|
2238 |
-
$code .= '</div>';
|
2239 |
}
|
2240 |
$code .= '</div>';
|
2241 |
}
|
2242 |
}
|
2243 |
|
2244 |
if ( $kgvid_meta == true ) { //generate content overlaid on video
|
2245 |
-
$code .= "\t\t\t<div style=\"display:none;\" id=\"video_".$div_suffix."_meta\" class=\"kgvid_video_meta kgvid_video_meta_hover
|
2246 |
-
if ( $query_atts['embedcode'] != "false" ) {
|
2247 |
-
if ( $query_atts['embedcode'] == "true" ) { $iframeurl = site_url('/')."?attachment_id=".$id."&kgvid_video_embed[enable]=true"; }
|
2248 |
-
else { $iframeurl = $query_atts['embedcode']; }
|
2249 |
-
$iframecode = "<iframe allowfullscreen src='".$iframeurl."' frameborder='0' scrolling='no' width='".esc_attr($query_atts['width'])."' height='".esc_attr($query_atts["height"])."'></iframe>";
|
2250 |
-
$code .= "\t\t\t\t<div id=\"video_".$div_suffix."_embed\" class=\"kgvid_share\"><span>"._x('Embed:', 'precedes code for embedding video', 'video-embed-thumbnail-generator')." </span><input type=\"text\" value=\"".esc_attr($iframecode)."\" onClick=\"this.select();\"></div>\n";
|
2251 |
-
}
|
2252 |
if ( $query_atts['title'] != "false" && $options['embed_method'] != "JW Player" ) {
|
2253 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2254 |
}
|
2255 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
2256 |
}
|
2257 |
|
2258 |
if ( !empty($query_atts["watermark"]) && $query_atts["watermark"] != "false" ) {
|
@@ -2307,7 +2767,7 @@ function kgvid_single_video_code($query_atts, $atts, $content, $post_ID) {
|
|
2307 |
|
2308 |
} //end id_array loop
|
2309 |
|
2310 |
-
return $code;
|
2311 |
|
2312 |
}
|
2313 |
|
@@ -2315,8 +2775,8 @@ function kgvid_shortcode_atts($atts) {
|
|
2315 |
|
2316 |
$options = kgvid_get_options();
|
2317 |
|
2318 |
-
if ( in_the_loop() ) { $
|
2319 |
-
else { $
|
2320 |
|
2321 |
$default_atts = array(
|
2322 |
'id' => '',
|
@@ -2350,7 +2810,7 @@ function kgvid_shortcode_atts($atts) {
|
|
2350 |
'gallery_order' => 'ASC',
|
2351 |
'gallery_exclude' => '',
|
2352 |
'gallery_include' => '',
|
2353 |
-
'gallery_id' => $
|
2354 |
'gallery_end' => $options['gallery_end'],
|
2355 |
'gallery_title' => $options['gallery_title'],
|
2356 |
'volume' => $options['volume'],
|
@@ -2365,6 +2825,10 @@ function kgvid_shortcode_atts($atts) {
|
|
2365 |
'right_click' => $options['right_click'],
|
2366 |
'resize' => $options['resize'],
|
2367 |
'auto_res' => $options['auto_res'],
|
|
|
|
|
|
|
|
|
2368 |
'track_kind' => 'subtitles',
|
2369 |
'track_srclang' => substr(get_bloginfo('language'), 0, 2),
|
2370 |
'track_src' => '',
|
@@ -2401,7 +2865,10 @@ function kgvid_shortcode_atts($atts) {
|
|
2401 |
"downloadlink",
|
2402 |
"mute",
|
2403 |
"fullwidth",
|
2404 |
-
"gallery_title"
|
|
|
|
|
|
|
2405 |
);
|
2406 |
foreach ( $checkbox_convert as $query ) {
|
2407 |
if ( $query_atts[$query] == "on" ) { $query_atts[$query] = "true"; }
|
@@ -2413,7 +2880,7 @@ function kgvid_shortcode_atts($atts) {
|
|
2413 |
if ( $query_atts['orderby'] == 'menu_order' ) { $query_atts['orderby'] = 'menu_order ID'; }
|
2414 |
if ( $query_atts['track_default'] == 'true' ) { $query_atts['track_default'] = 'default'; }
|
2415 |
|
2416 |
-
return $query_atts;
|
2417 |
|
2418 |
}
|
2419 |
|
@@ -2426,14 +2893,14 @@ function KGVID_shortcode($atts, $content = ''){
|
|
2426 |
|
2427 |
kgvid_enqueue_shortcode_scripts();
|
2428 |
|
2429 |
-
if ( in_the_loop() ) { $
|
2430 |
-
else { $
|
2431 |
|
2432 |
$query_atts = kgvid_shortcode_atts($atts);
|
2433 |
|
2434 |
if ( $query_atts["gallery"] != "true" ) { //if this is not a pop-up gallery
|
2435 |
|
2436 |
-
$code = kgvid_single_video_code($query_atts, $atts, $content, $
|
2437 |
|
2438 |
} //if not gallery
|
2439 |
|
@@ -2474,7 +2941,7 @@ function KGVID_shortcode($atts, $content = ''){
|
|
2474 |
|
2475 |
} //if not feed
|
2476 |
|
2477 |
-
return $code;
|
2478 |
|
2479 |
}
|
2480 |
add_shortcode('FMP', 'KGVID_shortcode');
|
@@ -2494,8 +2961,29 @@ function kgvid_update_child_format() {
|
|
2494 |
$video_id = $_POST['video_id'];
|
2495 |
$parent_id = $_POST['parent_id'];
|
2496 |
$format = $_POST['format'];
|
2497 |
-
$
|
|
|
|
|
|
|
2498 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2499 |
|
2500 |
$post = get_post($video_id);
|
2501 |
update_post_meta( $video_id, '_kgflashmediaplayer-format', $format );
|
@@ -2503,8 +2991,10 @@ function kgvid_update_child_format() {
|
|
2503 |
$post->post_parent = $parent_id;
|
2504 |
wp_update_post($post);
|
2505 |
|
|
|
2506 |
|
2507 |
die();
|
|
|
2508 |
}
|
2509 |
add_action('wp_ajax_kgvid_update_child_format', 'kgvid_update_child_format');
|
2510 |
|
@@ -2536,6 +3026,7 @@ function kgvid_update_encode_queue() {
|
|
2536 |
check_ajax_referer( 'video-embed-thumbnail-generator-nonce', 'security' );
|
2537 |
|
2538 |
if ( isset( $_POST['page'] ) ) { $page = $_POST['page']; }
|
|
|
2539 |
|
2540 |
$video_encode_queue = kgvid_get_encode_queue();
|
2541 |
|
@@ -2543,6 +3034,11 @@ function kgvid_update_encode_queue() {
|
|
2543 |
|
2544 |
foreach ( $video_encode_queue as $video_key => $video_entry ) {
|
2545 |
|
|
|
|
|
|
|
|
|
|
|
2546 |
if ( !empty($video_entry['movieurl']) && !empty($video_entry['attachmentID']) ) {
|
2547 |
$encodevideo_info = kgvid_encodevideo_info($video_entry['movieurl'], $video_entry['attachmentID']);
|
2548 |
}
|
@@ -2580,11 +3076,23 @@ function kgvid_encode_format_meta( $encodevideo_info, $video_key, $format, $stat
|
|
2580 |
$something_to_encode = false;
|
2581 |
$encoding_now = false;
|
2582 |
$time_to_wait = 5000;
|
|
|
|
|
|
|
|
|
2583 |
|
2584 |
if ( get_post_type($post_id) == "attachment" ) {
|
2585 |
$kgvid_postmeta = kgvid_get_attachment_meta($post_id);
|
2586 |
if ( array_key_exists('encode'.$format, $kgvid_postmeta) ) { $encodeset = $kgvid_postmeta['encode'.$format]; }
|
2587 |
else { $encodeset = 'false'; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2588 |
}
|
2589 |
if ( $encodeset == "false" && strpos($format, 'custom_') === false ) { $encodeset = $options['encode_'.$format]; }
|
2590 |
|
@@ -2598,25 +3106,26 @@ function kgvid_encode_format_meta( $encodevideo_info, $video_key, $format, $stat
|
|
2598 |
}
|
2599 |
|
2600 |
if ( !empty($encodevideo_info) ) {
|
|
|
2601 |
if ( $encodevideo_info[$format]['exists'] ) { //if the video file exists
|
2602 |
|
2603 |
if ( array_key_exists('id', $encodevideo_info[$format]) ) {
|
2604 |
$child_id = $encodevideo_info[$format]['id'];
|
2605 |
-
$was_picked = get_post_meta( $child_id
|
2606 |
}
|
2607 |
else { $was_picked = false; }
|
2608 |
|
2609 |
if ( $status != "encoding" ) { // not currently encoding
|
|
|
2610 |
if ( $status == "notchecked" ) {
|
2611 |
if ( $was_picked != false ) { $meta = ' <strong>Set: '.basename($encodevideo_info[$format]['filepath']).'</strong>'; }
|
2612 |
else { $meta = ' <strong>Encoded</strong>'; }
|
2613 |
}
|
2614 |
if ( $status != "canceling" ) {
|
2615 |
|
2616 |
-
if ( is_multisite() ) { $blog_id = get_current_blog_id(); }
|
2617 |
-
else { $blog_id = false; }
|
2618 |
if ( $encodevideo_info[$format]['writable']
|
2619 |
&& current_user_can('encode_videos')
|
|
|
2620 |
&& $format != "fullres" ) {
|
2621 |
if ( $was_picked != false ) {
|
2622 |
$meta .= '<a id="unpick-'.$post_id.'-'.$format.'" class="kgvid_delete-format" onclick="kgvid_clear_video(\''.$movieurl.'\', \''.$post_id.'\', \''.$child_id.'\', \''.$blog_id.'\');" href="javascript:void(0)">'.__('Clear Format', 'video-embed-thumbnail-generator').'</a>';
|
@@ -2658,7 +3167,7 @@ function kgvid_encode_format_meta( $encodevideo_info, $video_key, $format, $stat
|
|
2658 |
$something_to_encode = false;
|
2659 |
}
|
2660 |
|
2661 |
-
$meta_array = array( 'checked' => $checked, 'disabled' => $disabled, 'meta' => $meta, 'time_to_wait'=> $time_to_wait, 'something_to_encode' => $something_to_encode, 'encoding_now' => $encoding_now );
|
2662 |
|
2663 |
return $meta_array;
|
2664 |
|
@@ -2693,6 +3202,8 @@ add_action('wp_ajax_kgvid_generate_encode_checkboxes', 'kgvid_ajax_generate_enco
|
|
2693 |
|
2694 |
function kgvid_generate_encode_checkboxes($movieurl, $post_id, $page, $blog_id = false) {
|
2695 |
|
|
|
|
|
2696 |
$options = kgvid_get_options();
|
2697 |
$video_encode_queue = kgvid_get_encode_queue();
|
2698 |
$video_formats = kgvid_video_formats();
|
@@ -2707,25 +3218,36 @@ function kgvid_generate_encode_checkboxes($movieurl, $post_id, $page, $blog_id =
|
|
2707 |
$encodevideo_info = array();
|
2708 |
$is_attachment = false;
|
2709 |
|
2710 |
-
if ( !empty($
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2711 |
|
2712 |
-
|
2713 |
|
2714 |
$encodevideo_info = kgvid_encodevideo_info($movieurl, $post_id);
|
2715 |
$sanitized_url = kgvid_sanitize_url($movieurl);
|
2716 |
$movieurl = $sanitized_url['movieurl'];
|
2717 |
if ( get_post_type($post_id) == "attachment" ) { //if the video is in the database
|
2718 |
$is_attachment = true;
|
|
|
2719 |
$post_mime_type = get_post_mime_type($post_id);
|
2720 |
$dimensions = kgvid_set_video_dimensions($post_id);
|
2721 |
$actualwidth = $dimensions['actualwidth'];
|
2722 |
$actualheight = $dimensions['actualheight'];
|
|
|
2723 |
}
|
2724 |
else { //video's not in the database
|
2725 |
$is_attachment = false;
|
2726 |
unset($video_formats['fullres']);
|
2727 |
|
2728 |
-
$
|
|
|
2729 |
|
2730 |
if ( !empty($video_encode_queue) ) {
|
2731 |
foreach ($video_encode_queue as $video_key => $video_entry) {
|
@@ -2757,6 +3279,12 @@ function kgvid_generate_encode_checkboxes($movieurl, $post_id, $page, $blog_id =
|
|
2757 |
}
|
2758 |
else { $ffmpeg_disabled_text = ""; }
|
2759 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2760 |
$video_key = false;
|
2761 |
if ( !empty($video_encode_queue) && !empty($movieurl) ) {
|
2762 |
foreach ($video_encode_queue as $video_key => $video_entry) {
|
@@ -2788,7 +3316,12 @@ function kgvid_generate_encode_checkboxes($movieurl, $post_id, $page, $blog_id =
|
|
2788 |
}
|
2789 |
}
|
2790 |
|
2791 |
-
$
|
|
|
|
|
|
|
|
|
|
|
2792 |
|
2793 |
foreach ( $video_formats as $format => $format_stats ) {
|
2794 |
|
@@ -2810,15 +3343,31 @@ function kgvid_generate_encode_checkboxes($movieurl, $post_id, $page, $blog_id =
|
|
2810 |
|
2811 |
if ( !empty($encodevideo_info) && !$encodevideo_info[$format]['exists'] && strpos($format, 'custom_') === 0 ) { continue; } //skip custom formats that don't exist
|
2812 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2813 |
if ( !array_key_exists('lastline', $format_stats) ) { $format_stats['lastline'] = ''; }
|
2814 |
$meta_array = kgvid_encode_format_meta($encodevideo_info, $video_key, $format, $format_stats['status'], $format_stats['lastline'], $post_id, $movieurl, $page);
|
2815 |
|
2816 |
if ( $meta_array['something_to_encode'] == true ) { $something_to_encode = true; }
|
2817 |
if ( $meta_array['encoding_now'] == true ) { $encoding_now = true; }
|
2818 |
|
2819 |
-
$checkboxes .= "\n\t\t\t".'<li><input class="kgvid_encode_checkbox" type="checkbox" id="attachments-'.$post_id.'-kgflashmediaplayer-encode'.$format.'" name="attachments['.$post_id.'][kgflashmediaplayer-encode'.$format.']" '.$meta_array['checked'].' '.$ffmpeg_disabled_text.$meta_array['disabled'].'> <label for="attachments-'.$post_id.'-kgflashmediaplayer-encode'.$format.'">'.$format_stats['name'].'</label> <span id="attachments-'.$post_id.'-kgflashmediaplayer-meta'.$format.'" class="kgvid_format_meta">'.$meta_array['meta'].'</span>';
|
2820 |
|
2821 |
-
if ( $is_attachment && empty($meta_array['disabled']) && $format != 'fullres' && $
|
2822 |
}
|
2823 |
$checkboxes .= '</li>';
|
2824 |
|
@@ -2832,12 +3381,11 @@ function kgvid_generate_encode_checkboxes($movieurl, $post_id, $page, $blog_id =
|
|
2832 |
|
2833 |
if ( $page == "queue" ) {
|
2834 |
$button_text = _x('Update', 'Button text', 'video-embed-thumbnail-generator');
|
2835 |
-
$checkboxes .= "\n\t\t\t".'<input type="hidden" name="attachments['.$post_id.'][kgflashmediaplayer-url]" value="'.$movieurl.'">';
|
2836 |
}
|
2837 |
else { $button_text = _x('Encode selected', 'Button text', 'video-embed-thumbnail-generator'); }
|
2838 |
|
2839 |
-
|
2840 |
-
$checkboxes .= '<input type="button" id="attachments-'.$post_id.'-kgflashmediaplayer-encode" name="attachments['.$post_id.'][kgflashmediaplayer-encode]" class="button-secondary" value="'.$button_text.'" onclick="kgvid_enqueue_video_encode(\''.$post_id.'\');" '.$ffmpeg_disabled_text.$encode_disabled.'/><div style="display:block;" id="attachments-'.$post_id.'-encodeplaceholder"></div>';
|
2841 |
|
2842 |
if ( $page != "queue" ) {
|
2843 |
$checkboxes .= '<small><em>'.__('Generates additional video formats compatible with most mobile & HTML5-compatible browsers', 'video-embed-thumbnail-generator').'</em></small>';
|
@@ -2850,7 +3398,7 @@ function kgvid_generate_encode_checkboxes($movieurl, $post_id, $page, $blog_id =
|
|
2850 |
}
|
2851 |
|
2852 |
if ( !$encoding_now && ($last_format['status'] == "queued" || $last_format['status'] == "canceling") ) {
|
2853 |
-
$checkboxes .= '<script type="text/javascript">percent_timeout = setTimeout(function(){ kgvid_redraw_encode_checkboxes("'.$video_entry['movieurl'].'", "'.$video_entry['attachmentID'].'", "'.$page.'") }, 5000); jQuery(\'#wpwrap\').data("KGVIDCheckboxTimeout", percent_timeout);</script>';
|
2854 |
}
|
2855 |
|
2856 |
if ( $encoding_now ) {
|
@@ -2859,7 +3407,7 @@ function kgvid_generate_encode_checkboxes($movieurl, $post_id, $page, $blog_id =
|
|
2859 |
}
|
2860 |
$checkboxes .= '</div>'; //close encodeboxes div
|
2861 |
|
2862 |
-
if ( $blog_id ) { restore_current_blog(); }
|
2863 |
|
2864 |
$arr = array('checkboxes'=>$checkboxes, 'encoding'=>$encoding_now );
|
2865 |
|
@@ -2895,6 +3443,7 @@ function kgvid_generate_queue_table( $scope = 'site' ) {
|
|
2895 |
$html = "";
|
2896 |
$current_user = wp_get_current_user();
|
2897 |
$video_encode_queue = kgvid_get_encode_queue();
|
|
|
2898 |
|
2899 |
$crons = _get_cron_array();
|
2900 |
|
@@ -2926,12 +3475,36 @@ function kgvid_generate_queue_table( $scope = 'site' ) {
|
|
2926 |
$video_formats = kgvid_video_formats();
|
2927 |
$currently_encoding = array();
|
2928 |
$queued = array();
|
2929 |
-
|
2930 |
$html .= "<input type='hidden' name='attachments[kgflashmediaplayer-security]' value='".$nonce."' />";
|
2931 |
|
2932 |
foreach ( $video_encode_queue as $order => $video_entry ) {
|
2933 |
|
2934 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2935 |
|
2936 |
if ( is_array($video_entry['encode_formats']) ) {
|
2937 |
foreach ( $video_formats as $format => $format_stats ) {
|
@@ -2962,24 +3535,24 @@ function kgvid_generate_queue_table( $scope = 'site' ) {
|
|
2962 |
elseif ( $queued[$order] ) { $html .= " class='kgvid_queued' "; }
|
2963 |
else { $html .= " class='kgvid_complete' "; }
|
2964 |
|
2965 |
-
if ( array_key_exists('blog_id', $video_entry) ) { $blog_id = $video_entry['blog_id']; }
|
2966 |
-
else { $blog_id = false; }
|
2967 |
-
|
2968 |
$html .= ">";
|
2969 |
|
2970 |
//Order
|
2971 |
-
$html .= "<td id='
|
2972 |
|
2973 |
//User
|
2974 |
-
if ( (is_network_admin() || 'network' == $scope) && $blog_id ) { switch_to_blog($blog_id); }
|
2975 |
$post = get_post( $video_entry['attachmentID'] );
|
2976 |
|
2977 |
if ( ( is_network_admin() || 'network' == $scope )
|
2978 |
-
|| ( $post && $current_user->ID == $post->post_author )
|
2979 |
-
|| ( current_user_can('edit_others_video_encodes') &&
|
2980 |
-
|
2981 |
|
2982 |
-
if ( $
|
|
|
|
|
|
|
|
|
2983 |
$user = get_userdata( $post->post_author );
|
2984 |
$html .= "<td>".$user->display_name."</td>\n";
|
2985 |
}
|
@@ -2988,7 +3561,7 @@ function kgvid_generate_queue_table( $scope = 'site' ) {
|
|
2988 |
//Site
|
2989 |
if ( (is_network_admin() || 'network' == $scope) && $blog_id ) {
|
2990 |
$blog_details = get_bloginfo();
|
2991 |
-
$html .= "<td>".$blog_details."</td>\n";
|
2992 |
}
|
2993 |
|
2994 |
//Thumbnail
|
@@ -3010,11 +3583,11 @@ function kgvid_generate_queue_table( $scope = 'site' ) {
|
|
3010 |
$html .= "\t\t\t\t\t<td><a href='".$attachmentlink."'> ".$thumbnail_html."</a></td>\n";
|
3011 |
$path_info = pathinfo($moviefilepath);
|
3012 |
$file_name = basename($moviefilepath,'.'.$path_info['extension']);
|
3013 |
-
$html .= "\t\t\t\t\t<td><a
|
3014 |
|
3015 |
//Formats
|
3016 |
$html .= "\t\t\t\t\t<td class='queue_encode_formats' id='formats_".$video_entry['attachmentID']."'>";
|
3017 |
-
$html .= "<input type='hidden' id='attachments-".$video_entry['attachmentID']."-kgflashmediaplayer-security' name='attachments[".$video_entry['attachmentID']."][kgflashmediaplayer-security]' value='".$nonce."' />";
|
3018 |
|
3019 |
if ( is_array($video_entry['encode_formats']) ) { $checkboxes = kgvid_generate_encode_checkboxes($video_entry['movieurl'], $video_entry['attachmentID'], 'queue', $blog_id); }
|
3020 |
else { $checkboxes = array('checkboxes' => __('Please wait while this video is automatically added to the queue...', 'video-embed-thumbnail-generator') ); }
|
@@ -3023,20 +3596,25 @@ function kgvid_generate_queue_table( $scope = 'site' ) {
|
|
3023 |
|
3024 |
//Actions
|
3025 |
$html .= "\t\t\t\t\t<td>";
|
3026 |
-
$html .= "<a id='
|
3027 |
if ( $currently_encoding[$order] ) { $html .= " style='display:none;'"; }
|
3028 |
$html .= ">Clear</a>";
|
3029 |
|
3030 |
}//end if current user can see this stuff
|
3031 |
-
|
3032 |
-
|
|
|
|
|
|
|
|
|
3033 |
$html .= "</td></tr>\n";
|
3034 |
|
3035 |
if ( (is_network_admin() || 'network' == $scope) && $blog_id ) { restore_current_blog(); }
|
3036 |
|
3037 |
}
|
3038 |
}
|
3039 |
-
|
|
|
3040 |
|
3041 |
return $html;
|
3042 |
|
@@ -3059,10 +3637,12 @@ add_action('network_admin_menu', 'kgvid_add_network_queue_page');
|
|
3059 |
|
3060 |
function kgvid_FFMPEG_Queue_Page() {
|
3061 |
|
|
|
|
|
3062 |
?>
|
3063 |
<div class="wrap">
|
3064 |
<div id="icon-tools" class="icon32"><br /></div>
|
3065 |
-
<
|
3066 |
<p></p>
|
3067 |
<form method="post" action="tools.php?page=kgvid_video_encoding_queue">
|
3068 |
<?php wp_nonce_field('video-embed-thumbnail-generator-nonce','video-embed-thumbnail-generator-nonce'); ?>
|
@@ -3079,7 +3659,7 @@ function kgvid_FFMPEG_Queue_Page() {
|
|
3079 |
</tbody>
|
3080 |
</table>
|
3081 |
<p>
|
3082 |
-
<?php if ( current_user_can('edit_others_video_encodes') ) { echo "<div class='attachment-info'><div class='actions'><a href='javascript:void(0)' onclick='kgvid_encode_queue(\"clear_completed\", 0, 0);'>". __('Clear All Completed', 'video-embed-thumbnail-generator') ."</a> | <a href='javascript:void(0)' onclick='kgvid_encode_queue(\"clear_queued\", 0, 0);'>". __('Clear All Queued', 'video-embed-thumbnail-generator') ."</a></div></div>"; } ?>
|
3083 |
</p>
|
3084 |
</form>
|
3085 |
</div>
|
@@ -3140,7 +3720,7 @@ function kgvid_network_settings_page() {
|
|
3140 |
?>
|
3141 |
<div class="wrap">
|
3142 |
<div class="icon32" id="icon-options-general"><br></div>
|
3143 |
-
<
|
3144 |
<?php settings_errors( __FILE__ ); ?>
|
3145 |
<form method="post">
|
3146 |
<input type="hidden" name="action" value="update_kgvid_network_settings" />
|
@@ -3188,6 +3768,7 @@ function kgvid_network_settings_page() {
|
|
3188 |
<script type='text/javascript'>
|
3189 |
jQuery(document).ready(function() {
|
3190 |
kgvid_hide_plugin_settings();
|
|
|
3191 |
jQuery('form :input').change(function() {
|
3192 |
kgvid_save_plugin_settings(this);
|
3193 |
});
|
@@ -3201,7 +3782,29 @@ function kgvid_network_settings_page() {
|
|
3201 |
function kgvid_superadmin_capabilities_callback() {
|
3202 |
|
3203 |
$network_options = get_site_option('kgvid_video_embed_network_options');
|
3204 |
-
echo "<input ".checked( $network_options['superadmin_only_ffmpeg_settings'], "on", false )." id='superadmin_only_ffmpeg_settings' name='kgvid_video_embed_options[superadmin_only_ffmpeg_settings]' type='checkbox' /> <label for='superadmin_only_ffmpeg_settings'>".sprintf( _x('%s settings tab.', 'FFMPEG settings tab', 'video-embed-thumbnail-generator'), "<strong class='video_app_name'>".strtoupper($network_options['video_app'])."</strong>" )."</label> <
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3205 |
|
3206 |
}
|
3207 |
|
@@ -3219,7 +3822,7 @@ function kgvid_settings_page() {
|
|
3219 |
?>
|
3220 |
<div class="wrap">
|
3221 |
<div class="icon32" id="icon-options-general"><br></div>
|
3222 |
-
<
|
3223 |
<?php if ( !is_multisite()
|
3224 |
|| ( function_exists( 'is_plugin_active_for_network' ) && is_plugin_active_for_network( plugin_basename(__FILE__) ) && $options['ffmpeg_exists'] == "on" && is_array($network_options) && (is_super_admin() || $network_options['superadmin_only_ffmpeg_settings'] == false) )
|
3225 |
) { ?>
|
@@ -3284,9 +3887,18 @@ function kgvid_video_embed_options_init() {
|
|
3284 |
}//end setting initial network options
|
3285 |
else { //network options introduced in version 4.3 exist already
|
3286 |
|
|
|
|
|
3287 |
if ( !array_key_exists('superadmin_only_ffmpeg_settings', $network_options) ) {
|
3288 |
$default_network_options = kgvid_default_network_options();
|
3289 |
$network_options['superadmin_only_ffmpeg_settings'] = $default_network_options['superadmin_only_ffmpeg_settings'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3290 |
update_site_option('kgvid_video_embed_network_options', $network_options);
|
3291 |
}
|
3292 |
|
@@ -3355,10 +3967,10 @@ function kgvid_video_embed_options_init() {
|
|
3355 |
add_settings_field('playbutton', __('Play button overlay:', 'video-embed-thumbnail-generator'), 'kgvid_playbutton_callback', __FILE__, 'kgvid_video_embed_flash_settings', array( 'label_for' => 'playbutton' ) );
|
3356 |
|
3357 |
add_settings_field('generate_thumbs', __('Default number of thumbnails to generate:', 'video-embed-thumbnail-generator'), 'kgvid_generate_thumbs_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'generate_thumbs' ) );
|
3358 |
-
add_settings_field('
|
3359 |
-
add_settings_field('security', __('Video security:', 'video-embed-thumbnail-generator'), 'kgvid_security_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'embeddable' ) );
|
3360 |
add_settings_field('featured', __('Featured image:', 'video-embed-thumbnail-generator'), 'kgvid_featured_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'featured' ) );
|
3361 |
add_settings_field('thumb_parent', __('Attach thumbnails to:', 'video-embed-thumbnail-generator'), 'kgvid_thumb_parent_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'thumb_parent' ) );
|
|
|
3362 |
add_settings_field('delete_children', __('Delete associated attachments:', 'video-embed-thumbnail-generator'), 'kgvid_delete_children_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'delete_children' ) );
|
3363 |
add_settings_field('titlecode', __('Video title text HTML formatting:', 'video-embed-thumbnail-generator'), 'kgvid_titlecode_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'titlecode' ) );
|
3364 |
add_settings_field('template', __('Attachment page design:', 'video-embed-thumbnail-generator'), 'kgvid_template_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'template' ) );
|
@@ -3372,6 +3984,7 @@ function kgvid_video_embed_options_init() {
|
|
3372 |
add_settings_field('encode_formats', __('Default video encode formats:', 'video-embed-thumbnail-generator'), 'kgvid_encode_formats_callback', __FILE__, 'kgvid_video_embed_encode_settings');
|
3373 |
add_settings_field('automatic', __('Do automatically on upload:', 'video-embed-thumbnail-generator'), 'kgvid_automatic_callback', __FILE__, 'kgvid_video_embed_encode_settings', array( 'label_for' => 'auto_encode' ) );
|
3374 |
add_settings_field('old_videos', __('For previously uploaded videos:', 'video-embed-thumbnail-generator'), 'kgvid_old_video_buttons_callback', __FILE__, 'kgvid_video_embed_encode_settings' );
|
|
|
3375 |
add_settings_field('htaccess', __('htaccess login:', 'video-embed-thumbnail-generator'), 'kgvid_htaccess_callback', __FILE__, 'kgvid_video_embed_encode_settings', array( 'label_for' => 'htaccess_username' ) );
|
3376 |
add_settings_field('ffmpeg_watermark', __('Add watermark to encoded files:', 'video-embed-thumbnail-generator'), 'kgvid_ffmpeg_watermark_callback', __FILE__, 'kgvid_video_embed_encode_settings', array( 'label_for' => 'ffmpeg_watermark' ) );
|
3377 |
if ( !is_plugin_active_for_network( plugin_basename(__FILE__) ) ) {
|
@@ -3415,7 +4028,7 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3415 |
//add the JW Player if available
|
3416 |
$jw_player_select = "";
|
3417 |
if ( class_exists('JWP6_Shortcode') ) {
|
3418 |
-
$players["JW Player"] = "JW Player";
|
3419 |
$jw_players = get_option('jwp6_players');
|
3420 |
if ( count($jw_players) > 1 ) {
|
3421 |
$jw_player_select = " <div style='display:none;' id='jw_player_id_select'><select class='affects_player' onchange='kgvid_hide_plugin_settings();' id='jw_player_id' name='kgvid_video_embed_options[jw_player_id]'>";
|
@@ -3428,7 +4041,7 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3428 |
else { $jw_player_config_description = $jw_player_id; }
|
3429 |
$jw_player_select .= "<option value='$jw_player_id' $selected>".stripcslashes($jw_player_config_description)."</option>";
|
3430 |
}
|
3431 |
-
$jw_player_select .= "</select> JW Player player</div>";
|
3432 |
}
|
3433 |
}
|
3434 |
|
@@ -3439,15 +4052,19 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3439 |
$selected = ($options['embed_method']==$value) ? 'selected="selected"' : '';
|
3440 |
echo "<option value='$value' $selected>$name</option>";
|
3441 |
}
|
3442 |
-
echo "</select> <
|
3443 |
|
3444 |
$sampleheight = intval($options['height']) + 50;
|
3445 |
echo "<div class='kgvid_setting_nearvid' style='width:".$options['width']."px;'>";
|
3446 |
-
echo "<div
|
3447 |
-
echo "<
|
|
|
|
|
|
|
|
|
|
|
3448 |
$iframeurl = site_url('/')."?kgvid_video_embed[enable]=true&kgvid_video_embed[sample]=true";
|
3449 |
echo "<iframe id='kgvid_samplevideo' style='border:2px;' src='".$iframeurl."' scrolling='no' width='".$options['width']."' height='".$sampleheight."'></iframe>";
|
3450 |
-
echo "<div style='float:left;'><input class='affects_player' ".checked( $options['downloadlink'], "on", false )." id='downloadlink' name='kgvid_video_embed_options[downloadlink]' type='checkbox' /> <label for='downloadlink'>".__('Show download link', 'video-embed-thumbnail-generator')."</label></div>";
|
3451 |
echo "<div style='float:right;'><input class='affects_player' ".checked( $options['view_count'], "on", false )." id='view_count' name='kgvid_video_embed_options[view_count]' type='checkbox' /> <label for='view_count'>".__('Show view count', 'video-embed-thumbnail-generator')."</label></div>";
|
3452 |
echo "<hr style='width:100%;'></div>\n\t";
|
3453 |
}
|
@@ -3506,22 +4123,29 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3506 |
|
3507 |
function kgvid_resize_callback() {
|
3508 |
$options = kgvid_get_options();
|
3509 |
-
|
|
|
3510 |
$items = array( __("automatic", 'video-embed-thumbnail-generator'), __("highest", 'video-embed-thumbnail-generator'), __("lowest", 'video-embed-thumbnail-generator') );
|
3511 |
-
|
3512 |
-
|
|
|
|
|
|
|
|
|
|
|
3513 |
$selected = ($options['auto_res']==$name) ? 'selected="selected"' : '';
|
3514 |
echo "<option value='$name' $selected>$name</option>";
|
3515 |
}
|
3516 |
-
echo "</select> <
|
|
|
3517 |
|
3518 |
}
|
3519 |
|
3520 |
function kgvid_dimensions_callback() {
|
3521 |
$options = kgvid_get_options();
|
3522 |
echo __('Width:', 'video-embed-thumbnail-generator')." <input class='small-text affects_player' id='width' name='kgvid_video_embed_options[width]' type='text' value='".$options['width']."' /> ".__('Height:', 'video-embed-thumbnail-generator')." <input class='small-text affects_player' id='height' name='kgvid_video_embed_options[height]' type='text' value='".$options['height']."' /><br />";
|
3523 |
-
echo "<input ".checked( $options['minimum_width'], "on", false )." id='minimum_width' name='kgvid_video_embed_options[minimum_width]' type='checkbox' /> <label for='minimum_width'>".__('Enlarge lower resolution videos to max width.', 'video-embed-thumbnail-generator')."</label> <
|
3524 |
-
echo "<input ".checked( $options['fullwidth'], "on", false )." id='fullwidth' name='kgvid_video_embed_options[fullwidth]' type='checkbox' /> <label for='fullwidth'>".__('Set all videos to expand to fill their containers.', 'video-embed-thumbnail-generator')."</label> <
|
3525 |
echo "<input ".checked( $options['inline'], "on", false )." id='inline' name='kgvid_video_embed_options[inline]' type='checkbox' /> <label for='inline'>".__('Allow other content on the same line as the video.', 'video-embed-thumbnail-generator')."</label>\n\t";
|
3526 |
}
|
3527 |
|
@@ -3600,7 +4224,7 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3600 |
$selected = ($options['preload']==$value) ? 'selected="selected"' : '';
|
3601 |
echo "<option value='$value' $selected>$name</option>";
|
3602 |
}
|
3603 |
-
echo "</select><
|
3604 |
}
|
3605 |
|
3606 |
function kgvid_js_skin_callback() {
|
@@ -3610,7 +4234,7 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3610 |
|
3611 |
function kgvid_nativecontrolsfortouch_callback() {
|
3612 |
$options = kgvid_get_options();
|
3613 |
-
echo "<input class='affects_player' ".checked( $options['nativecontrolsfortouch'], "on", false )." id='nativecontrolsfortouch' name='kgvid_video_embed_options[nativecontrolsfortouch]' type='checkbox' /> <label for='nativecontrolsfortouch'>".__('Show native controls on mobile devices.', 'video-embed-thumbnail-generator')."</label
|
3614 |
}
|
3615 |
|
3616 |
function kgvid_custom_attributes_callback() {
|
@@ -3679,11 +4303,33 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3679 |
echo "<input class='small-text' id='generate_thumbs' name='kgvid_video_embed_options[generate_thumbs]' maxlength='2' type='text' value='".strval($options['generate_thumbs'])."' />\n\t";
|
3680 |
}
|
3681 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3682 |
function kgvid_user_roles_callback($page_scope = 'site') {
|
3683 |
global $wp_roles;
|
3684 |
$options = kgvid_get_options();
|
3685 |
$capabilities_checkboxes = array();
|
3686 |
-
$capabilities = array( 'make_video_thumbnails'=>__('Can make thumbnails', 'video-embed-thumbnail-generator'), 'encode_videos'=>__('Can encode videos', 'video-embed-thumbnail-generator'), 'edit_others_video_encodes' => __('Can view & modify other users
|
3687 |
foreach ( $capabilities as $capability => $capability_name ) {
|
3688 |
$capabilities_checkboxes[] = "<div class='kgvid_user_roles'><strong>".$capability_name.":</strong><br>";
|
3689 |
|
@@ -3719,23 +4365,6 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3719 |
echo implode("", $capabilities_checkboxes)."\n\t";
|
3720 |
}
|
3721 |
|
3722 |
-
function kgvid_security_callback() {
|
3723 |
-
$options = kgvid_get_options();
|
3724 |
-
if ( $options['embeddable'] != "on" ) { $embed_disabled = " disabled='disabled'"; }
|
3725 |
-
else { $embed_disabled = ""; }
|
3726 |
-
echo "<input class='affects_player' ".checked( $options['embeddable'], "on", false )." id='embeddable' name='kgvid_video_embed_options[embeddable]' type='checkbox' onclick='kgvid_embeddable_switch(this.checked);' /> <label for='embeddable'>".__('Allow users to embed your videos on other sites.', 'video-embed-thumbnail-generator')."</label><br />";
|
3727 |
-
echo "<input ".checked( $options['open_graph'], "on", false )." id='open_graph' name='kgvid_video_embed_options[open_graph]' type='checkbox'".$embed_disabled." /> <label for='open_graph'>"._x('Enable Open Graph video tags.', '"Open Graph" is a proper noun and might not need translation', 'video-embed-thumbnail-generator')."</label><a class='kgvid_tooltip wp-ui-text-highlight' href='javascript:void(0);'><span class='kgvid_tooltip_classic'>".__('Facebook and some other social media sites will use these tags to embed the first video in your post. For the majority of Facebook users who have enabled secure browsing, your video must be served via https in order to be embedded directly on the page.', 'video-embed-thumbnail-generator')."</span></a><br />";
|
3728 |
-
echo "<input ".checked( $options['oembed_provider'], "on", false )." id='oembed_provider' name='kgvid_video_embed_options[oembed_provider]' type='checkbox'".$embed_disabled." /> <label for='oembed_provider'>"._x('Enable oEmbed provider.', '"oEmbed" is a proper noun and might not need translation', 'video-embed-thumbnail-generator')."</label><a class='kgvid_tooltip wp-ui-text-highlight' href='javascript:void(0);'><span class='kgvid_tooltip_classic'>".__('Allows users of other websites to embed your videos using just the post URL rather than the full iframe embed code. For security reasons, this will not work on other WordPress sites unless they\'ve enabled oEmbed discovery from unkown providers.', 'video-embed-thumbnail-generator')."</span></a><br />";
|
3729 |
-
echo "<input ".checked( $options['oembed_security'], "on", false )." id='oembed_security' name='kgvid_video_embed_options[oembed_security]' type='checkbox' /> <label for='oembed_security'>"._x('Enable oEmbeds from unknown providers.', '"oEmbed" is a proper noun and might not need translation', 'video-embed-thumbnail-generator')."</label><a class='kgvid_tooltip wp-ui-text-highlight' href='javascript:void(0);'><span class='kgvid_tooltip_classic'>".__('Allows your own users to embed content from any oEmbed provider. User must have the "unfiltered_html" capability which is limited to Administrators and Editors by default.', 'video-embed-thumbnail-generator')."</span></a><br />";
|
3730 |
-
echo "<input class='affects_player' ".checked( $options['right_click'], "on", false )." id='right_click' name='kgvid_video_embed_options[right_click]' type='checkbox' /> <label for='right_click'>".__('Allow right-clicking on videos.', 'video-embed-thumbnail-generator')."</label> <a class='kgvid_tooltip wp-ui-text-highlight' href='javascript:void(0);'><span class='kgvid_tooltip_classic'>".__('We can\'t prevent a user from simply saving the downloaded video file from the browser\'s cache, but disabling right-clicking will make it more difficult for casual users to save your videos.', 'video-embed-thumbnail-generator')."</span></a><br />";
|
3731 |
-
echo "<input ".checked( $options['click_download'], "on", false )." id='click_download' name='kgvid_video_embed_options[click_download]' type='checkbox' /> <label for='click_download'>".__('Allow single-click download link for videos.', 'video-embed-thumbnail-generator')."</label> <a class='kgvid_tooltip wp-ui-text-highlight' href='javascript:void(0);'><span class='kgvid_tooltip_classic'>".__('The plugin creates a one-click method for users who want to allow easy video downloading, but if some of your videos are hidden or private, depending on the methods you use, someone who guesses a video\'s WordPress database ID could potentially use the method to download videos they might not otherwise have access to.', 'video-embed-thumbnail-generator')."</span></a>\n\t";
|
3732 |
-
}
|
3733 |
-
|
3734 |
-
function kgvid_featured_callback() {
|
3735 |
-
$options = kgvid_get_options();
|
3736 |
-
echo "<input ".checked( $options['featured'], "on", false )." id='featured' name='kgvid_video_embed_options[featured]' type='checkbox' /> <label for='featured'>".__('Set generated video thumbnails as featured images.', 'video-embed-thumbnail-generator')."</label> <a class='kgvid_tooltip wp-ui-text-highlight' href='javascript:void(0);'><span class='kgvid_tooltip_classic'>".__('If your theme uses the featured image meta tag, this will automatically set a video\'s parent post\'s featured image to the most recently saved thumbnail image.', 'video-embed-thumbnail-generator')."</span></a><br /> <a class='button-secondary' href='javascript:void(0);' onclick='kgvid_set_all_featured();'>"._x('Set all as featured', 'implied "Set all thumbnails as featured"', 'video-embed-thumbnail-generator')."</a> <a class='kgvid_tooltip wp-ui-text-highlight' href='javascript:void(0);'><span class='kgvid_tooltip_classic'>".__('If you\'ve generated thumbnails before enabling this option, this will set all existing thumbnails as featured images. Be careful!', 'video-embed-thumbnail-generator')."</span></a>\n\t";
|
3737 |
-
}
|
3738 |
-
|
3739 |
function kgvid_thumb_parent_callback() {
|
3740 |
$options = kgvid_get_options();
|
3741 |
$items = array("post", "video");
|
@@ -3744,7 +4373,7 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3744 |
$selected = ($options['thumb_parent']==$item) ? 'selected="selected"' : '';
|
3745 |
echo "<option value='$item' $selected>$item</option>";
|
3746 |
}
|
3747 |
-
echo "</select> <
|
3748 |
}
|
3749 |
|
3750 |
function kgvid_delete_children_callback() {
|
@@ -3758,12 +4387,12 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3758 |
$selected = ($options['delete_children']==$value) ? 'selected="selected"' : '';
|
3759 |
echo "<option value='$value' $selected>$name</option>";
|
3760 |
}
|
3761 |
-
echo "</select> <
|
3762 |
}
|
3763 |
|
3764 |
function kgvid_titlecode_callback() {
|
3765 |
$options = kgvid_get_options();
|
3766 |
-
echo "<input class='regular-text code' id='titlecode' name='kgvid_video_embed_options[titlecode]' type='text' value='".htmlentities(stripslashes($options['titlecode']))."' /> <
|
3767 |
}
|
3768 |
|
3769 |
function kgvid_template_callback() {
|
@@ -3774,7 +4403,7 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3774 |
$selected = ($options['template']==$value) ? 'selected="selected"' : '';
|
3775 |
echo "<option value='$value' $selected>$name</option>";
|
3776 |
}
|
3777 |
-
echo "</select> <
|
3778 |
}
|
3779 |
|
3780 |
function kgvid_encode_settings_section_callback() {
|
@@ -3788,7 +4417,7 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3788 |
function kgvid_app_path_callback() {
|
3789 |
$options = kgvid_get_options();
|
3790 |
//if ( is_plugin_active_for_network( plugin_basename(__FILE__) ) ) { $options = get_site_option( 'kgvid_video_embed_network_options' ); }
|
3791 |
-
echo "<input class='affects_ffmpeg regular-text code' id='app_path' data-ffmpeg_exists='".$options['ffmpeg_exists']."' name='kgvid_video_embed_options[app_path]' type='text' value='".$options['app_path']."' /><
|
3792 |
}
|
3793 |
|
3794 |
function kgvid_video_app_callback() {
|
@@ -3800,7 +4429,7 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3800 |
$selected = ($options['video_app']==$value) ? 'selected="selected"' : '';
|
3801 |
echo "<option value='$value' $selected>$name</option>";
|
3802 |
}
|
3803 |
-
echo "</select> <
|
3804 |
}
|
3805 |
|
3806 |
function kgvid_browser_thumbnails_callback() {
|
@@ -3822,7 +4451,7 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3822 |
echo "<div class='kgvid_video_app_required'>";
|
3823 |
echo "<input ".checked( $options['encode_fullres'], "on", false )." id='encode_fullres' name='kgvid_video_embed_options[encode_fullres]' type='checkbox' /> <label for='encode_fullres'>".__('Replace original with', 'video-embed-thumbnail-generator');
|
3824 |
|
3825 |
-
echo " <select id='replace_format' name='kgvid_video_embed_options[replace_format]' class='affects_ffmpeg'>";
|
3826 |
foreach($items as $value=>$name) {
|
3827 |
$selected = ($options['replace_format']==$value) ? 'selected="selected"' : '';
|
3828 |
echo "<option value='$value' $selected>$name</option>";
|
@@ -3830,7 +4459,7 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3830 |
echo "</select> ";
|
3831 |
|
3832 |
|
3833 |
-
echo "</label> <
|
3834 |
echo "<input ".checked( $options['encode_1080'], "on", false )." id='encode_1080' name='kgvid_video_embed_options[encode_1080]' type='checkbox' /> <label for='encode_1080'>1080p H.264 <small><em>".__('(iPhone 4s+, iPad 2+, modern Android, Windows Phone 8, Chrome, Safari, IE 9+, Firefox)', 'video-embed-thumbnail-generator')."</em></small></label><br />";
|
3835 |
echo "<input ".checked( $options['encode_720'], "on", false )." id='encode_720' name='kgvid_video_embed_options[encode_720]' type='checkbox' /> <label for='encode_720'>720p H.264 <small><em>".__('(iPhone 4+, iPad, most Android, Chrome, Safari, IE 9+, Firefox)', 'video-embed-thumbnail-generator')."</em></small></label><br />";
|
3836 |
echo "<input ".checked( $options['encode_mobile'], "on", false )." id='encode_mobile' name='kgvid_video_embed_options[encode_mobile]' type='checkbox' /> <label for='encode_mobile'>360p H.264 <small><em>(iOS, Android, Windows Phone 7+, Chrome, Safari, IE 9+, Firefox)</em></small></label><br />";
|
@@ -3870,8 +4499,10 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3870 |
|
3871 |
function kgvid_automatic_callback() {
|
3872 |
$options = kgvid_get_options();
|
|
|
3873 |
echo "<div class='kgvid_video_app_required'>";
|
3874 |
echo "<input ".checked( $options['auto_encode'], "on", false )." id='auto_encode' name='kgvid_video_embed_options[auto_encode]' type='checkbox' /> <label for='auto_encode'>".__('Encode formats selected above.', 'video-embed-thumbnail-generator')."</label><br />";
|
|
|
3875 |
if ( intval($options['auto_thumb_number']) == 1 ) {
|
3876 |
$items = array(0, 25, 50, 75);
|
3877 |
$percentage_select = "<select id='auto_thumb_position' name='kgvid_video_embed_options[auto_thumb_position]'>";
|
@@ -3891,8 +4522,32 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3891 |
function kgvid_old_video_buttons_callback() {
|
3892 |
$options = kgvid_get_options();
|
3893 |
echo "<div class='kgvid_video_app_required'>";
|
3894 |
-
echo "<p><a id='generate_old_thumbs_button' class='button-secondary' href='javascript:void(0);' onclick='kgvid_auto_generate_old(\"thumbs\");'>".__('Generate thumbnails', 'video-embed-thumbnail-generator')."</a> <
|
3895 |
-
echo "<p><a id='generate_old_encode_button' class='button-secondary' href='javascript:void(0);' onclick='kgvid_auto_generate_old(\"encode\");'>".__('Encode videos', 'video-embed-thumbnail-generator')."</a> <
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3896 |
echo "</div>\n\t";
|
3897 |
}
|
3898 |
|
@@ -3900,7 +4555,7 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3900 |
$options = kgvid_get_options();
|
3901 |
echo "<div class='kgvid_video_app_required'>";
|
3902 |
echo "<table class='kgvid_htaccess'><tbody><tr><td>".__('Username:', 'video-embed-thumbnail-generator')."</td><td><input class='regular-text affects_ffmpeg' id='htaccess_login' name='kgvid_video_embed_options[htaccess_login]' type='text' value='".$options['htaccess_login']."' /></td></tr>";
|
3903 |
-
echo "<tr><td>".__('Password:', 'video-embed-thumbnail-generator')."</td><td><input class='regular-text affects_ffmpeg' id='htaccess_password' name='kgvid_video_embed_options[htaccess_password]' type='text' value='".$options['htaccess_password']."' /> <
|
3904 |
echo "</div>\n\t";
|
3905 |
}
|
3906 |
|
@@ -3939,12 +4594,12 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3939 |
if ( empty($options['moov_path']) ) { $options['moov_path'] = $options['app_path']; }
|
3940 |
echo "<div class='kgvid_video_app_required'>";
|
3941 |
$items = array(__("none", 'video-embed-thumbnail-generator')=>"none", "movflags faststart"=>"movflag", "qt-faststart"=>"qt-faststart", "MP4Box"=>"MP4Box");
|
3942 |
-
echo "<select onchange='
|
3943 |
foreach($items as $name => $value) {
|
3944 |
$selected = ($options['moov']==$value) ? 'selected="selected"' : '';
|
3945 |
echo "<option value='$value' $selected>$name</option>";
|
3946 |
}
|
3947 |
-
echo "</select> <
|
3948 |
echo "<p id='moov_path_p'>".sprintf( __('Path to %s:', 'video-embed-thumbnail-generator'), "<span class='kgvid_moov_option'>".$options['moov']."</span>")." <input class='regular-text code affects_ffmpeg' id='moov_path' name='kgvid_video_embed_options[moov_path]' type='text' value='".$options['moov_path']."' /></p>";
|
3949 |
echo "</div>\n\t";
|
3950 |
}
|
@@ -3958,7 +4613,7 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3958 |
$selected = ($options['rate_control']==$value) ? 'selected="selected"' : '';
|
3959 |
echo "<option value='$value' $selected>$name</option>";
|
3960 |
}
|
3961 |
-
echo "</select> <
|
3962 |
echo "</div>\n\t";
|
3963 |
}
|
3964 |
|
@@ -3970,21 +4625,21 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3970 |
$selected = ($options['h264_CRF']==$i) ? 'selected="selected"' : '';
|
3971 |
echo "<option value='".$i."' $selected>".$i."</option>";
|
3972 |
}
|
3973 |
-
echo "</select> H.264 <
|
3974 |
|
3975 |
echo "<select id='webm_CRF' name='kgvid_video_embed_options[webm_CRF]' class='affects_ffmpeg'>";
|
3976 |
for ($i = 4; $i <= 63; $i++ ) {
|
3977 |
$selected = ($options['webm_CRF']==$i) ? 'selected="selected"' : '';
|
3978 |
echo "<option value='".$i."' $selected>".$i."</option>";
|
3979 |
}
|
3980 |
-
echo "</select> WEBM <
|
3981 |
|
3982 |
echo "<select id='ogv_CRF' name='kgvid_video_embed_options[ogv_CRF]' class='affects_ffmpeg'>";
|
3983 |
for ($i = 1; $i <= 10; $i++ ) {
|
3984 |
$selected = ($options['ogv_CRF']==$i) ? 'selected="selected"' : '';
|
3985 |
echo "<option value='".$i."' $selected>".$i."</option>";
|
3986 |
}
|
3987 |
-
echo "</select> OGV (qscale) <
|
3988 |
echo "</div>\n\t";
|
3989 |
}
|
3990 |
|
@@ -3996,7 +4651,7 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
3996 |
$selected = ($options['bitrate_multiplier']==strval($i)) ? 'selected="selected"' : '';
|
3997 |
echo "<option value='$i' $selected>$i</option>";
|
3998 |
}
|
3999 |
-
echo "</select> ".__('bits per pixel.', 'video-embed-thumbnail-generator')." <
|
4000 |
echo "<span class='kgvid_gray_text'>1080p = <span id='1080_bitrate'>".round(floatval($options['bitrate_multiplier'])*1920*1080*30/1024)."</span> kbps<br />";
|
4001 |
echo "720p = <span id='720_bitrate'>".round(floatval($options['bitrate_multiplier'])*1280*720*30/1024)."</span> kbps<br />";
|
4002 |
echo "360p = <span id='360_bitrate'>".round(floatval($options['bitrate_multiplier'])*640*360*30/1024)."</span> kbps</span>";
|
@@ -4012,14 +4667,14 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
4012 |
$selected = ($options['h264_profile']==$item) ? 'selected="selected"' : '';
|
4013 |
echo "<option value='$item' $selected>$item</option>";
|
4014 |
}
|
4015 |
-
echo "</select> "._x('profile', 'H.264 profile. Might not need translation', 'video-embed-thumbnail-generator')." <
|
4016 |
echo "<select id='h264_level' name='kgvid_video_embed_options[h264_level]' class='affects_ffmpeg'>";
|
4017 |
$items = array("none", "1", "1.1", "1.2", "1.3", "2", "2.1", "2.2", "3", "3.1", "3.2", "4", "4.1", "4.2", "5", "5.1");
|
4018 |
foreach($items as $item) {
|
4019 |
$selected = ($options['h264_level']==$item) ? 'selected="selected"' : '';
|
4020 |
echo "<option value='$item' $selected>$item</option>";
|
4021 |
}
|
4022 |
-
echo "</select> "._x('level', 'H.264 level. Might not need translation', 'video-embed-thumbnail-generator')." <
|
4023 |
echo "</div>\n\t";
|
4024 |
}
|
4025 |
|
@@ -4039,10 +4694,10 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
4039 |
function kgvid_ffmpeg_options_callback() {
|
4040 |
$options = kgvid_get_options();
|
4041 |
echo "<div class='kgvid_video_app_required'>";
|
4042 |
-
echo "<input class='affects_ffmpeg' onchange='if(jQuery(\"#ffmpeg_vpre\").attr(\"checked\")==\"checked\"){jQuery(\"#video_bitrate_flag\").attr(\"checked\", \"checked\"); jQuery(\"#nostdin\").removeAttr(\"checked\");}' ".checked( $options['video_bitrate_flag'], "on", false )." id='video_bitrate_flag' name='kgvid_video_embed_options[video_bitrate_flag]' type='checkbox' /> <label for='video_bitrate_flag'>".__('Enable legacy FFMPEG "-b" and "-ba" bitrate flags.', 'video-embed-thumbnail-generator')."</label> <
|
4043 |
-
echo "<input class='affects_ffmpeg' onchange='if(jQuery(\"#ffmpeg_vpre\").attr(\"checked\")==\"checked\"){jQuery(\"#video_bitrate_flag\").attr(\"checked\", \"checked\"); jQuery(\"#nostdin\").removeAttr(\"checked\");}' ".checked( $options['ffmpeg_vpre'], "on", false )." id='ffmpeg_vpre' name='kgvid_video_embed_options[ffmpeg_vpre]' type='checkbox' /> <label for='ffmpeg_vpre'>".__('Enable legacy libx264 parameters.', 'video-embed-thumbnail-generator')."</label> <
|
4044 |
-
echo "<input class='affects_ffmpeg' ".checked( $options['ffmpeg_old_rotation'], "on", false )." id='ffmpeg_old_rotation' name='kgvid_video_embed_options[ffmpeg_old_rotation]' type='checkbox' /> <label for='ffmpeg_old_rotation'>".__('Enable legacy FFMPEG rotation method.', 'video-embed-thumbnail-generator')."</label> <
|
4045 |
-
echo "<input class='affects_ffmpeg' ".checked( $options['nostdin'], "on", false )." id='nostdin' name='kgvid_video_embed_options[nostdin]' type='checkbox' /> <label for='nostdin'>".__('Disable stdin.', 'video-embed-thumbnail-generator')."</label> <
|
4046 |
echo "</div>\n\t";
|
4047 |
}
|
4048 |
|
@@ -4055,16 +4710,16 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
4055 |
$selected = ($options['simultaneous_encodes']==$i) ? 'selected="selected"' : '';
|
4056 |
echo "<option value='".$i."' $selected>".$i."</option>";
|
4057 |
}
|
4058 |
-
echo "</select> ".__('Simultaneous encodes.', 'video-embed-thumbnail-generator')." <
|
4059 |
|
4060 |
echo "<select id='threads' name='kgvid_video_embed_options[threads]' class='affects_ffmpeg'>";
|
4061 |
for ($i = 0; $i <= 16; $i++ ) {
|
4062 |
$selected = ($options['threads']==$i) ? 'selected="selected"' : '';
|
4063 |
echo "<option value='".$i."' $selected>".$i."</option>";
|
4064 |
}
|
4065 |
-
echo "</select> "._x('threads', 'CPU threads. Might not need translating', 'video-embed-thumbnail-generator')." <
|
4066 |
|
4067 |
-
echo "<input ".checked( $options['nice'], "on", false )." id='nice' name='kgvid_video_embed_options[nice]' class='affects_ffmpeg' type='checkbox' /> <label for='nice'>"._x('Run', 'execute program', 'video-embed-thumbnail-generator')." <code>nice</code>.</label> <
|
4068 |
echo "</div>";
|
4069 |
|
4070 |
}
|
@@ -4072,14 +4727,14 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
4072 |
function kgvid_test_ffmpeg_options_callback( $scope = 'site' ) {
|
4073 |
|
4074 |
$options = kgvid_get_options();
|
4075 |
-
$video_formats = kgvid_video_formats(
|
4076 |
$encode_string = "";
|
4077 |
if ( $options['ffmpeg_exists'] == "on" ) {
|
4078 |
|
4079 |
$movie_info = kgvid_get_video_dimensions(plugin_dir_path(__FILE__)."images/sample-video-h264.mp4");
|
4080 |
$uploads = wp_upload_dir();
|
4081 |
$encode_dimensions = kgvid_set_encode_dimensions($movie_info, $video_formats[$options['sample_format']]);
|
4082 |
-
$encode_string = kgvid_generate_encode_string(plugin_dir_path(__FILE__)."images/sample-video-h264.mp4", $uploads['path']."/sample-video-h264".$video_formats[$options['sample_format']]['suffix'], $movie_info, $options['sample_format'], $encode_dimensions['width'], $encode_dimensions['height'], '
|
4083 |
}
|
4084 |
|
4085 |
if ( is_array($encode_string) ) { $encode_string_implode = implode('' , $encode_string); }
|
@@ -4098,7 +4753,8 @@ add_action('admin_init', 'kgvid_video_embed_options_init' );
|
|
4098 |
}
|
4099 |
$sample_format_select .= "</select>";
|
4100 |
|
4101 |
-
echo "<div id='ffmpeg_sample_div'".$display_div."><p>".sprintf( __('
|
|
|
4102 |
echo "<p>".sprintf( __('%s test output:', 'video-embed-thumbnail-generator'), "<strong class='video_app_name'>".strtoupper($options['video_app'])."</strong>")."<br /><textarea id='ffmpeg_output' class='ffmpeg_sample_code code' cols='100' rows='20' wrap='soft' readonly='yes'></textarea><br>".sprintf( __('For help interpreting this output, %s try our Wiki page on Github', 'video-embed-thumbnail-generator'), "<a href='https://github.com/kylegilman/video-embed-thumbnail-generator/wiki/Interpreting-FFMPEG-or-LIBAV-messages'>")."</a>.</p></div>\n\t";
|
4103 |
}
|
4104 |
|
@@ -4293,9 +4949,19 @@ function kgvid_update_settings() {
|
|
4293 |
$options['ffmpeg_old_rotation'] = "on";
|
4294 |
$options['click_download'] = "on";
|
4295 |
}
|
4296 |
-
if ( $options['version'] < 4.
|
4297 |
-
$options['version'] = 4.
|
4298 |
-
$options['nativecontrolsfortouch'] = "on";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4299 |
}
|
4300 |
|
4301 |
if ( $options['version'] != $default_options['version'] ) { $options['version'] = $default_options['version']; }
|
@@ -4462,7 +5128,7 @@ function kgvid_ajax_save_settings() {
|
|
4462 |
$uploads = wp_upload_dir();
|
4463 |
$video_formats = kgvid_video_formats();
|
4464 |
$encode_dimensions = kgvid_set_encode_dimensions($movie_info, $video_formats[$validated_options['sample_format']]);
|
4465 |
-
$encode_string = kgvid_generate_encode_string(plugin_dir_path(__FILE__)."images/sample-video-h264.mp4", $uploads['path']."/sample-video-h264".$video_formats[$validated_options['sample_format']]['suffix'], $movie_info, $validated_options['sample_format'], $encode_dimensions['width'], $encode_dimensions['height'], '
|
4466 |
$auto_thumb_label = kgvid_generate_auto_thumb_label();
|
4467 |
}
|
4468 |
}
|
@@ -4481,21 +5147,21 @@ add_action('wp_ajax_kgvid_save_settings', 'kgvid_ajax_save_settings');
|
|
4481 |
function kgvid_add_attachment_handler($post_id) {
|
4482 |
|
4483 |
$options = kgvid_get_options();
|
|
|
4484 |
|
4485 |
if ( $options['auto_encode'] == "on" || $options['auto_thumb'] == "on" ) {
|
4486 |
|
4487 |
$post = get_post($post_id);
|
|
|
4488 |
|
4489 |
-
if (
|
4490 |
-
&& (empty($post->post_parent)
|
4491 |
-
|| (strpos(get_post_mime_type( $post->post_parent ), 'video') === false && get_post_meta($post->ID, '_kgflashmediaplayer-externalurl', true) == false)) ) {
|
4492 |
|
4493 |
wp_schedule_single_event( time() + rand(0,10), 'kgvid_cron_new_attachment', array($post_id) );
|
4494 |
-
|
4495 |
$transient = get_transient( 'kgvid_new_attachment_transient' ); //error checking to avoid race conditions when using Add From Server
|
4496 |
if ( is_array($transient) ) { $transient[] = $post_id; }
|
4497 |
else { $transient = array($post_id); }
|
4498 |
set_transient( 'kgvid_new_attachment_transient', $transient, DAY_IN_SECONDS );
|
|
|
4499 |
}
|
4500 |
|
4501 |
}
|
@@ -4506,11 +5172,15 @@ add_action('add_attachment', 'kgvid_add_attachment_handler');
|
|
4506 |
function kgvid_cron_new_attachment_handler($post_id, $force = false) {
|
4507 |
|
4508 |
$options = kgvid_get_options();
|
|
|
|
|
4509 |
|
4510 |
$post = get_post($post_id);
|
4511 |
$movieurl = wp_get_attachment_url($post_id);
|
|
|
|
|
4512 |
|
4513 |
-
if ( $force == 'thumbs' || $options['auto_thumb'] == "on" ) {
|
4514 |
|
4515 |
$thumb_output = array();
|
4516 |
$thumb_id = array();
|
@@ -4595,36 +5265,59 @@ function kgvid_cron_new_attachment_handler($post_id, $force = false) {
|
|
4595 |
}
|
4596 |
}//end setting main thumbnail
|
4597 |
|
4598 |
-
|
4599 |
}//end if auto_thumb is on
|
4600 |
|
4601 |
-
if ( $force == 'encode' || $options['auto_encode'] == "on" )
|
|
|
|
|
|
|
4602 |
$video_formats = kgvid_video_formats();
|
|
|
|
|
4603 |
$something_to_encode = false;
|
4604 |
$encode_checked = array();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4605 |
foreach ( $video_formats as $format => $format_stats ) {
|
|
|
4606 |
if ( array_key_exists('encode_'.$format, $options) && $options['encode_'.$format] == "on" ) {
|
4607 |
$encode_checked[$format] = "true";
|
4608 |
$something_to_encode = true;
|
4609 |
}
|
|
|
4610 |
else { $encode_checked[$format] = "notchecked"; }
|
|
|
4611 |
}
|
|
|
4612 |
if ( $something_to_encode ) {
|
4613 |
$output = kgvid_enqueue_videos($post_id, $movieurl, $encode_checked, $post->post_parent);
|
4614 |
$output = kgvid_encode_videos();
|
|
|
4615 |
}
|
4616 |
-
|
|
|
|
|
4617 |
}
|
4618 |
add_action('kgvid_cron_new_attachment', 'kgvid_cron_new_attachment_handler');
|
4619 |
|
4620 |
-
function kgvid_change_thumbnail_parent( $
|
4621 |
|
4622 |
$args = array(
|
4623 |
'post_type' => 'attachment',
|
4624 |
'post_mime_type' => 'image',
|
4625 |
'numberposts' => '-1',
|
4626 |
'meta_key' => '_kgflashmediaplayer-video-id',
|
4627 |
-
'meta_value' => $
|
4628 |
);
|
4629 |
$thumbnails = get_posts( $args ); //find all thumbnail children of the video in the database
|
4630 |
|
@@ -4635,10 +5328,10 @@ function kgvid_change_thumbnail_parent( $post_ID, $parent_id ) {
|
|
4635 |
if ( $thumbnail->post_parent != $parent_id ) {
|
4636 |
|
4637 |
if ( empty($parent_id) ) {
|
4638 |
-
$thumbnail->post_parent = $
|
4639 |
}
|
4640 |
|
4641 |
-
else {
|
4642 |
$thumbnail->post_parent = $parent_id;
|
4643 |
}
|
4644 |
|
@@ -4667,9 +5360,16 @@ function kgvid_upload_page_change_thumbnail_parent( $location ) {
|
|
4667 |
if ( isset( $_REQUEST['found_post_id'] ) ) { $parent_id = (int) $_REQUEST['found_post_id']; }
|
4668 |
else { $parent_id = 0; }
|
4669 |
|
4670 |
-
foreach ( $_REQUEST['media'] as $
|
|
|
|
|
4671 |
|
4672 |
-
|
|
|
|
|
|
|
|
|
|
|
4673 |
|
4674 |
}//end loop through modified attachments
|
4675 |
|
@@ -4680,20 +5380,24 @@ function kgvid_upload_page_change_thumbnail_parent( $location ) {
|
|
4680 |
}
|
4681 |
add_filter( 'wp_redirect', 'kgvid_upload_page_change_thumbnail_parent' ); //when attachment parent is manually changed on the Media Library page
|
4682 |
|
4683 |
-
function kgvid_validate_post_updated( $
|
4684 |
|
4685 |
$options = kgvid_get_options();
|
4686 |
-
$post = get_post($
|
|
|
4687 |
|
4688 |
-
if ( $
|
4689 |
-
&& substr($post->post_mime_type, 0, 5) == 'video'
|
4690 |
-
&& ( empty($post->post_parent)
|
4691 |
-
|| (strpos(get_post_mime_type( $post->post_parent ), 'video') === false && get_post_meta($post->ID, '_kgflashmediaplayer-externalurl', true) == '' )
|
4692 |
-
)
|
4693 |
-
) { //if the attachment is a video with no parent or if it has a parent the parent is not a video and the video doesn't have the externalurl post meta
|
4694 |
|
4695 |
-
|
|
|
|
|
4696 |
|
|
|
|
|
|
|
|
|
|
|
|
|
4697 |
}
|
4698 |
|
4699 |
}
|
@@ -4709,21 +5413,30 @@ add_action( 'edit_attachment', 'kgvid_validate_post_updated' );
|
|
4709 |
function kgvid_image_attachment_fields_to_edit($form_fields, $post) {
|
4710 |
|
4711 |
$options = kgvid_get_options();
|
|
|
4712 |
|
4713 |
-
if (
|
4714 |
-
( empty($post->post_parent)
|
4715 |
-
|| (strpos(get_post_mime_type( $post->post_parent ), 'video') === false && get_post_meta($post->ID, '_kgflashmediaplayer-externalurl', true) == '' )
|
4716 |
-
)
|
4717 |
-
) { //if the attachment is a video with no parent or if it has a parent the parent is not a video and the video doesn't have the externalurl post meta
|
4718 |
|
4719 |
wp_enqueue_media(); //allows using the media modal in the Media Library
|
4720 |
wp_enqueue_script( 'kgvid_video_plugin_admin' );
|
4721 |
wp_enqueue_style( 'video_embed_thumbnail_generator_style' );
|
4722 |
|
|
|
|
|
4723 |
$field_id = kgvid_backwards_compatible($post->ID);
|
4724 |
$movieurl = wp_get_attachment_url($post->ID);
|
4725 |
$moviefile = get_attached_file($post->ID);
|
4726 |
$kgvid_postmeta = kgvid_get_attachment_meta($post->ID);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4727 |
|
4728 |
$form_fields["kgflashmediaplayer-url"]["input"] = "hidden";
|
4729 |
$form_fields["kgflashmediaplayer-url"]["value"] = $movieurl;
|
@@ -4761,132 +5474,139 @@ function kgvid_image_attachment_fields_to_edit($form_fields, $post) {
|
|
4761 |
$form_fields["kgflashmediaplayer-aspect"]["value"] = round($set['height']/$set['width'], 5);
|
4762 |
|
4763 |
$nonce = wp_create_nonce('video-embed-thumbnail-generator-nonce');
|
|
|
|
|
4764 |
|
4765 |
-
$
|
4766 |
-
|
4767 |
-
|
4768 |
-
|
4769 |
-
// ** Thumbnail section **//
|
4770 |
-
|
4771 |
-
$thumbnail_url = get_post_meta($post->ID, "_kgflashmediaplayer-poster", true);
|
4772 |
|
4773 |
-
|
4774 |
-
if ( !empty($kgvid_postmeta['autothumb-error']) ) {
|
4775 |
-
$thumbnail_html = '<div class="kgvid_thumbnail_box kgvid_chosen_thumbnail_box">'.$kgvid_postmeta['autothumb-error'].'</div>';
|
4776 |
-
}
|
4777 |
-
elseif ($thumbnail_url != "" ) {
|
4778 |
-
$thumbnail_html = '<div class="kgvid_thumbnail_box kgvid_chosen_thumbnail_box"><img width="200" src="'.$thumbnail_url.'"></div>';
|
4779 |
-
}
|
4780 |
|
4781 |
-
|
|
|
4782 |
|
4783 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
4784 |
|
4785 |
-
$
|
4786 |
-
|
4787 |
-
|
4788 |
-
'save'
|
4789 |
-
)
|
4790 |
-
);
|
4791 |
-
$img_editor_works = wp_image_editor_supports($args);
|
4792 |
|
4793 |
if ( !isset($options['ffmpeg_exists']) || $options['ffmpeg_exists'] == "notchecked" ) {
|
4794 |
-
|
4795 |
-
|
4796 |
if ( $options['ffmpeg_exists'] == "notinstalled" ) { $ffmpeg_disabled_text = 'disabled="disabled" title="'.sprintf( __('%1$s not found at %2$s and unable to load video in browser for thumbnail generation.', 'video-embed-thumbnail-generator'), strtoupper($options['video_app']), $options['app_path'] ).'"'; }
|
4797 |
else { $ffmpeg_disabled_text = ""; }
|
4798 |
|
4799 |
$update_script = "";
|
4800 |
-
$
|
4801 |
-
|
4802 |
-
$
|
4803 |
-
if ( $options['ffmpeg_exists'] == "on" && $options['auto_encode'] == "on" ) {
|
4804 |
-
$update_script .= 'percent_timeout = setTimeout(function(){ kgvid_redraw_encode_checkboxes("'.$movieurl.'", "'.$post->ID.'", "attachment") }, 5000); jQuery(\'#wpwrap\').data("KGVIDCheckboxTimeout", percent_timeout);';
|
4805 |
-
}
|
4806 |
-
if ( $options['ffmpeg_exists'] == "on" && $options['auto_thumb'] == "on" && !$thumbnail_url ) {
|
4807 |
-
$thumbnail_html = '<div class="kgvid_thumbnail_box kgvid_chosen_thumbnail_box" style="height:112px;"><span style="margin-top: 45px;
|
4808 |
display: inline-block;">Loading thumbnail...</span></div>';
|
4809 |
-
$update_script .= ' setTimeout(function(){ kgvid_redraw_thumbnail_box("'.$post->ID.'") }, 5000);';
|
4810 |
-
}
|
4811 |
-
$update_script .= '});</script>';
|
4812 |
}
|
4813 |
|
4814 |
-
$
|
4815 |
-
$generate_content = "";
|
4816 |
-
$thumbnail_timecode = "";
|
4817 |
|
4818 |
-
|
4819 |
-
$h264compatible = array("mp4", "mov", "m4v");
|
4820 |
-
if ( $moviefiletype == "mov" || $moviefiletype == "m4v" ) { $moviefiletype = "mp4"; }
|
4821 |
|
4822 |
-
|
4823 |
-
|
4824 |
-
|
4825 |
-
|
4826 |
-
|
4827 |
-
|
4828 |
-
|
4829 |
-
else { $encodevideo_info["original"]["exists"] = false; }
|
4830 |
|
4831 |
-
|
|
|
|
|
4832 |
|
4833 |
-
|
4834 |
-
|
4835 |
-
if ( $
|
4836 |
-
|
4837 |
-
|
4838 |
-
|
4839 |
-
|
4840 |
-
|
4841 |
-
|
4842 |
-
|
4843 |
-
|
4844 |
-
|
4845 |
-
|
4846 |
-
|
4847 |
-
|
4848 |
-
|
4849 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4850 |
</div>
|
4851 |
-
|
4852 |
-
|
4853 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4854 |
}
|
4855 |
-
$generate_content = '<div id="generate-thumb-'.$post->ID.'-container" class="kgvid-tabs-content">
|
4856 |
-
<input id="attachments-'. $post->ID .'-kgflashmediaplayer-numberofthumbs" name="attachments['.$post->ID.'][kgflashmediaplayer-numberofthumbs]" type="text" value="'.$kgvid_postmeta['numberofthumbs'].'" maxlength="2" style="width:35px;text-align:center;" onchange="kgvid_disable_thumb_buttons(\''.$post->ID.'\', \'onchange\');document.getElementById(\''.$field_id['thumbtime'].'\').value =\'\';" '.$ffmpeg_disabled_text.'/>
|
4857 |
-
<input type="button" id="attachments-'. $post->ID .'-thumbgenerate" class="button-secondary" value="'._x('Generate', 'Button text. Implied "Generate thumbnails"', 'video-embed-thumbnail-generator').'" name="thumbgenerate" onclick="kgvid_generate_thumb('. $post->ID .', \'generate\');" '.$ffmpeg_disabled_text.'/>
|
4858 |
-
<input type="button" id="attachments-'. $post->ID .'-thumbrandomize" class="button-secondary" value="'._x('Randomize', 'Button text. Implied "Randomize thumbnail generation"', 'video-embed-thumbnail-generator').'" name="thumbrandomize" onclick="kgvid_generate_thumb('. $post->ID .', \'random\');" '.$ffmpeg_disabled_text.'/>
|
4859 |
-
<span style="white-space:nowrap;"><input type="checkbox" id="attachments-'. $post->ID .'-firstframe" name="attachments['.$post->ID.'][kgflashmediaplayer-forcefirst]" onchange="document.getElementById(\''.$field_id['thumbtime'].'\').value =\'\';" '.checked( $kgvid_postmeta['forcefirst'], 'on', false ).' '.$ffmpeg_disabled_text.'/> <label for="attachments-'. $post->ID .'-firstframe">'.__('Force 1st frame thumbnail', 'video-embed-thumbnail-generator').'</label></span></div>';
|
4860 |
|
4861 |
-
$thumbnail_timecode = __('Thumbnail timecode:', 'video-embed-thumbnail-generator').' <input name="attachments['. $post->ID .'][kgflashmediaplayer-thumbtime]" id="attachments-'. $post->ID .'-kgflashmediaplayer-thumbtime" type="text" value="'. $kgvid_postmeta['thumbtime'] .'" style="width:60px;"><br>';
|
4862 |
|
4863 |
-
|
|
|
|
|
4864 |
|
4865 |
-
|
4866 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4867 |
|
4868 |
-
|
4869 |
-
$form_fields["generator"]["input"] = "html";
|
4870 |
-
$form_fields["generator"]["html"] = '<input type="hidden" name="attachments['.$post->ID.'][kgflashmediaplayer-security]" id="attachments-'.$post->ID.'-kgflashmediaplayer-security" value="'.$nonce.'" />
|
4871 |
-
'.$choose_from_video_content.'
|
4872 |
-
'.$generate_content.'
|
4873 |
-
'.$thumbnail_timecode.'
|
4874 |
-
<div id="attachments-'.$post->ID.'-thumbnailplaceholder" style="position:relative;">'. $thumbnail_html .'</div>
|
4875 |
-
<span id="pick-thumbnail" class="button-secondary" style="margin:10px 0;" data-choose="'.__('Choose a Thumbnail', 'video-embed-thumbnail-generator').'" data-update="'.__('Set as video thumbnail', 'video-embed-thumbnail-generator').'" data-change="attachments-'. $post->ID .'-kgflashmediaplayer-poster" onclick="kgvid_pick_image(this);">'.__('Choose from Library', 'video-embed-thumbnail-generator').'</span><br />
|
4876 |
-
<input type="checkbox" id="attachments-'. $post->ID .'-featured" name="attachments['.$post->ID.'][kgflashmediaplayer-featured]" '.checked( $kgvid_postmeta['featured'], 'on', false ).' '.$ffmpeg_disabled_text.'/> <label for="attachments-'. $post->ID .'-featured">'.__('Set thumbnail as featured image', 'video-embed-thumbnail-generator').'</label>'.$update_script;
|
4877 |
|
4878 |
-
|
4879 |
-
|
4880 |
-
|
|
|
|
|
4881 |
|
4882 |
-
|
4883 |
-
|
4884 |
-
|
4885 |
-
|
4886 |
-
|
4887 |
-
|
4888 |
-
|
4889 |
|
|
|
4890 |
|
4891 |
$checkboxes = kgvid_generate_encode_checkboxes($movieurl, $post->ID, "attachment");
|
4892 |
|
@@ -4894,83 +5614,100 @@ function kgvid_image_attachment_fields_to_edit($form_fields, $post) {
|
|
4894 |
$form_fields["kgflashmediaplayer-encode"]["input"] = "html";
|
4895 |
$form_fields["kgflashmediaplayer-encode"]["html"] = $checkboxes['checkboxes'];
|
4896 |
|
4897 |
-
$
|
4898 |
-
|
4899 |
-
foreach ( $kgvid_postmeta['track'] as $track => $track_attribute ) {
|
4900 |
-
$items = array(__("subtitles", 'video-embed-thumbnail-generator')=>"subtitles", __("captions", 'video-embed-thumbnail-generator')=>"captions", __("chapters", 'video-embed-thumbnail-generator')=>"chapters");
|
4901 |
-
$track_type_select = '<select name="attachments['.$post->ID.'][kgflashmediaplayer-track]['.$track.'][kind]" id="attachments-'.$post->ID.'-kgflashmediaplayer-track_'.$track.'_kind]">';
|
4902 |
-
foreach($items as $name=>$value) {
|
4903 |
-
$selected = ($kgvid_postmeta['track'][$track]['kind']==$value) ? 'selected="selected"' : '';
|
4904 |
-
$track_type_select .= "<option value='$value'>$name</option>";
|
4905 |
-
}
|
4906 |
-
$track_type_select .= "</select>";
|
4907 |
-
|
4908 |
-
if ( !array_key_exists( 'default', $kgvid_postmeta['track'][$track] ) ) { $kgvid_postmeta['track'][$track]['default'] = false; }
|
4909 |
-
|
4910 |
-
$tracks_html .= '<div id="kgflashmediaplayer-'.$post->ID.'-trackdiv-'.$track.'" class="kgvid_thumbnail_box kgvid_track_box"><strong>'._x('Track', 'captions track', 'video-embed-thumbnail-generator').' '.strval($track+1).'</strong><span class="kgvid_track_box_removeable" onclick="jQuery(this).parent().remove();jQuery(\'form.compat-item input\').first().change();">X</span><br />
|
4911 |
-
'.__('Track type:', 'video-embed-thumbnail-generator').' '.$track_type_select.'<br />
|
4912 |
-
<span id="pick-track'.$track.'" class="button-secondary" style="margin:10px 0;" data-choose="'.__('Choose a Text File', 'video-embed-thumbnail-generator').'" data-update="'.__('Set as track source', 'video-embed-thumbnail-generator').'" data-change="attachments-'. $post->ID .'-kgflashmediaplayer-track_'.$track.'_src" onclick="kgvid_pick_attachment(this);">'.__('Choose from Library', 'video-embed-thumbnail-generator').'</span><br />
|
4913 |
-
URL: <input name="attachments['. $post->ID .'][kgflashmediaplayer-track]['.$track.'][src]" id="attachments-'. $post->ID .'-kgflashmediaplayer-track_'.$track.'_src" type="text" value="'.$kgvid_postmeta['track'][$track]['src'].'" class="text" style="width:180px;"><br />
|
4914 |
-
'._x('Language code:', 'two-letter code indicating track\'s language', 'video-embed-thumbnail-generator').' <input name="attachments['. $post->ID .'][kgflashmediaplayer-track]['.$track.'][srclang]" id="attachments-'. $post->ID .'-kgflashmediaplayer-track_'.$track.'_srclang" type="text" value="'.$kgvid_postmeta['track'][$track]['srclang'].'" maxlength="2" style="width:40px;"><br />
|
4915 |
-
'.__('Label:', 'video-embed-thumbnail-generator').' <input name="attachments['. $post->ID .'][kgflashmediaplayer-track]['.$track.'][label]" id="attachments-'. $post->ID .'-kgflashmediaplayer-track_'.$track.'_label" type="text" value="'.$kgvid_postmeta['track'][$track]['label'].'" class="text" style="width:172px;"><br />
|
4916 |
-
'.__('Default:', 'video-embed-thumbnail-generator').'<input '.checked($kgvid_postmeta['track'][$track]['default'], 'default', false).' name="attachments['. $post->ID .'][kgflashmediaplayer-track]['.$track.'][default]" id="attachments-'. $post->ID .'-kgflashmediaplayer-track_'.$track.'_default" type="checkbox" value="default"></div>';
|
4917 |
-
}
|
4918 |
}
|
4919 |
|
4920 |
-
$form_fields["kgflashmediaplayer-track"]["label"] = __("Subtitles & Captions", 'video-embed-thumbnail-generator');
|
4921 |
-
$form_fields["kgflashmediaplayer-track"]["input"] = "html";
|
4922 |
-
$form_fields["kgflashmediaplayer-track"]["html"] = '<div id="kgflashmediaplayer-'.$post->ID.'-trackdiv">'.$tracks_html.'</div><span class="button-secondary" id="kgflashmediaplayer-add_track" onclick="kgvid_add_subtitles('.$post->ID.')">'.__('Add track', 'video-embed-thumbnail-generator').'</span>';
|
4923 |
|
|
|
4924 |
|
4925 |
-
|
4926 |
-
|
4927 |
-
|
4928 |
-
|
4929 |
-
|
4930 |
-
|
4931 |
-
|
|
|
|
|
|
|
|
|
4932 |
|
4933 |
-
|
4934 |
-
$form_fields["kgflashmediaplayer-options"]["input"] = "html";
|
4935 |
-
$form_fields["kgflashmediaplayer-options"]["html"] = '<input type="checkbox" name="attachments['.$post->ID.'][kgflashmediaplayer-showtitle]" id="attachments-'.$post->ID.'-kgflashmediaplayer-showtitle" '.checked( $kgvid_postmeta['showtitle'], 'on', false ).'>
|
4936 |
-
<label for="attachments-'.$post->ID.'-kgflashmediaplayer-showtitle">'.__('Insert title above video', 'video-embed-thumbnail-generator').'</label><br />
|
4937 |
-
<input type="checkbox" name="attachments['.$post->ID.'][kgflashmediaplayer-downloadlink]" id="attachments-'.$post->ID.'-kgflashmediaplayer-downloadlink" '.checked( $kgvid_postmeta['downloadlink'], 'on', false ).'>
|
4938 |
-
<label for="attachments-'.$post->ID.'-kgflashmediaplayer-downloadlink">'.__('Insert download link below video', 'video-embed-thumbnail-generator').'<em><small><br />'.__('Makes it easier for users to download file.', 'video-embed-thumbnail-generator').'</em></small></label><br />
|
4939 |
-
<label for="attachments-'.$post->ID.'-kgflashmediaplayer-embed">'._x('Insert', 'verb', 'video-embed-thumbnail-generator').'</label>
|
4940 |
-
'.$shortcode_select.'
|
4941 |
-
<script type="text/javascript">jQuery(document).ready(function(){kgvid_hide_standard_wordpress_display_settings('.$post->ID.');});</script>';
|
4942 |
|
4943 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4944 |
|
4945 |
-
|
|
|
|
|
|
|
|
|
|
|
4946 |
|
4947 |
-
$items = array("
|
4948 |
-
$
|
4949 |
-
foreach($items as $
|
4950 |
-
$selected = ($kgvid_postmeta['
|
4951 |
-
$
|
4952 |
}
|
4953 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4954 |
|
4955 |
-
|
4956 |
-
|
4957 |
-
|
4958 |
-
|
4959 |
-
|
4960 |
-
|
4961 |
-
|
4962 |
-
|
4963 |
-
|
4964 |
-
|
4965 |
-
|
4966 |
-
|
4967 |
-
|
4968 |
-
|
4969 |
-
|
4970 |
-
|
4971 |
-
|
4972 |
-
|
4973 |
-
|
|
|
4974 |
} //only add fields if attachment is the right kind of video
|
4975 |
return $form_fields;
|
4976 |
}
|
@@ -5063,6 +5800,19 @@ function kgvid_video_icon_dir($dir) {
|
|
5063 |
}
|
5064 |
add_filter('icon_dir', 'kgvid_video_icon_dir');
|
5065 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5066 |
function kgvid_ajax_save_html5_thumb() {
|
5067 |
|
5068 |
if ( current_user_can('make_video_thumbnails') ) {
|
@@ -5080,30 +5830,42 @@ function kgvid_ajax_save_html5_thumb() {
|
|
5080 |
$tmp_posterpath = $uploads['path'].'/thumb_tmp/'.$posterfile.'.png';
|
5081 |
$thumb_url = $uploads['url'].'/'.$posterfile.'.jpg';
|
5082 |
|
5083 |
-
$
|
5084 |
-
|
5085 |
-
|
5086 |
-
|
|
|
|
|
|
|
5087 |
|
5088 |
-
$editor = wp_get_image_editor( $tmp_posterpath );
|
5089 |
-
$thumb_dimensions = $editor->get_size();
|
5090 |
-
if ( $thumb_dimensions ) {
|
5091 |
-
$kgvid_postmeta = kgvid_get_attachment_meta($post_id);
|
5092 |
-
$kgvid_postmeta['actualwidth'] = $thumb_dimensions['width'];
|
5093 |
-
$kgvid_postmeta['actualheight'] = $thumb_dimensions['height'];
|
5094 |
-
kgvid_save_attachment_meta($post_id, $kgvid_postmeta);
|
5095 |
}
|
5096 |
-
|
5097 |
-
|
5098 |
-
|
5099 |
-
|
5100 |
-
|
5101 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5102 |
}
|
|
|
5103 |
kgvid_schedule_cleanup_generated_files('thumbs');
|
5104 |
echo ($thumb_url);
|
5105 |
-
die();
|
5106 |
}
|
|
|
|
|
|
|
5107 |
}
|
5108 |
add_action('wp_ajax_kgvid_save_html5_thumb', 'kgvid_ajax_save_html5_thumb');
|
5109 |
|
@@ -5124,9 +5886,10 @@ function kgvid_ajax_save_thumb() {
|
|
5124 |
$thumb_id = kgvid_save_thumb($post_id, $post_name, $thumb_url, $index);
|
5125 |
|
5126 |
echo $thumb_id;
|
5127 |
-
die();
|
5128 |
}
|
5129 |
|
|
|
|
|
5130 |
}
|
5131 |
add_action('wp_ajax_kgvid_save_thumb', 'kgvid_ajax_save_thumb');
|
5132 |
|
@@ -5419,7 +6182,6 @@ class kgInsertMedia {
|
|
5419 |
if ( !empty($kgvid_postmeta['poster']) && empty($kgvid_postmeta['poster-id']) ) { $html .= ' poster="'.$kgvid_postmeta["poster"].'"'; }
|
5420 |
if ( !empty($kgvid_postmeta['width']) ) { $html .= ' width="'.$kgvid_postmeta["width"].'"'; }
|
5421 |
if ( !empty($kgvid_postmeta['height']) ) { $html .= ' height="'.$kgvid_postmeta["height"].'"'; }
|
5422 |
-
if ( $kgvid_postmeta['downloadlink'] == "on" ) { $html .= ' downloadlink="true"'; }
|
5423 |
$html .= ']'.$kgvid_postmeta["url"].'[/KGVID]<br />';
|
5424 |
} //if embed code is enabled
|
5425 |
|
@@ -5523,7 +6285,7 @@ function kgvid_media_embedurl_process() {
|
|
5523 |
<td><div id="kgflashmediaplayer-singleurl-trackdiv" class="kgvid_thumbnail_box kgvid_track_box"><?php _e('Track type:', 'video-embed-thumbnail-generator') ?><select name="attachments[singleurl][kgflashmediaplayer-track][kind]" id="attachments-singleurl-kgflashmediaplayer-track_kind"><option value="subtitles"><?php _e('subtitles', 'video-embed-thumbnail-generator') ?></option><option value="captions"><?php _e('captions', 'video-embed-thumbnail-generator') ?></option><option value="chapters"><?php _e('chapters', 'video-embed-thumbnail-generator') ?></option></select><br />URL: <input name="attachments[singleurl][kgflashmediaplayer-track][src]" id="attachments-singleurl-kgflashmediaplayer-track_src" type="text" value="" class="text"><br /><?php _e('Language code:', 'video-embed-thumbnail-generator') ?> <input name="attachments[singleurl][kgflashmediaplayer-track][srclang]" id="attachments-singleurl-kgflashmediaplayer-track_srclang" type="text" value="" maxlength="2" style="width:40px;"><br /><?php _e('Label:', 'video-embed-thumbnail-generator') ?> <input name="attachments[singleurl][kgflashmediaplayer-track][label]" id="attachments-singleurl-kgflashmediaplayer-track_label" type="text" value="" class="text"><br /><?php _e('Default:', 'video-embed-thumbnail-generator') ?> <input name="attachments[singleurl][kgflashmediaplayer-track][default]" id="attachments-singleurl-kgflashmediaplayer-track_default" type="checkbox" value="default"></div></td>
|
5524 |
<tr>
|
5525 |
<th valign="top" scope="row" class="label"><span class="alignleft"><label>Options</span></label></th>
|
5526 |
-
<td><input type="checkbox" <?php echo checked( $options["downloadlink"], "on", false ); ?> name="downloadlink" id="downloadlink" value="true" class="field" /><label for="downloadlink"><?php _e('
|
5527 |
</tr>
|
5528 |
<tr class="submit">
|
5529 |
<td></td>
|
@@ -5579,6 +6341,7 @@ function kgvid_generate_attachment_shortcode($kgvid_video_embed) {
|
|
5579 |
if ( $poster !="" ) { $shortcode .= ' poster="'.$poster.'"'; }
|
5580 |
if ( !empty($dimensions['width']) ) { $shortcode .= ' width="'.$dimensions['width'].'"'; }
|
5581 |
if ( !empty($dimensions['height']) ) { $shortcode .= ' height="'.$dimensions['height'].'"'; }
|
|
|
5582 |
if ( $kgvid_postmeta['downloadlink'] == "on" ) { $shortcode .= ' downloadlink="true"'; }
|
5583 |
if (is_array($kgvid_video_embed) && array_key_exists('gallery', $kgvid_video_embed)) { $shortcode .= ' autoplay="true"'; }
|
5584 |
if (is_array($kgvid_video_embed) && array_key_exists('sample', $kgvid_video_embed)) {
|
@@ -5623,7 +6386,7 @@ function kgvid_generate_embeddable_video( $kgvid_video_embed ) {
|
|
5623 |
ob_start();
|
5624 |
wp_head();
|
5625 |
$html .= ob_get_clean();
|
5626 |
-
$html .= '<style
|
5627 |
if ( array_key_exists('gallery', $kgvid_video_embed) ) { $html .= ' .kgvid_below_video { color:white; } .kgvid_below_video a { color:aaa; }'; }
|
5628 |
$html .= '</style>';
|
5629 |
$html .= '</head><body class="content" style="margin:0px; font-family: sans-serif; padding:0px; border:none;';
|
@@ -5637,7 +6400,7 @@ function kgvid_generate_embeddable_video( $kgvid_video_embed ) {
|
|
5637 |
$html .= '</body></html>';
|
5638 |
$content_width = $content_width_save; //reset $content_width
|
5639 |
|
5640 |
-
return $html;
|
5641 |
|
5642 |
}
|
5643 |
|
@@ -5876,8 +6639,8 @@ function kgvid_make_thumbs($postID, $movieurl, $numberofthumbs, $i, $iincreaser,
|
|
5876 |
|
5877 |
if ( $movie_info['rotate'] === false || $options['ffmpeg_vpre'] == "on" ) { $movie_info['rotate'] = ""; }
|
5878 |
switch ($movie_info['rotate']) { //if it's a sideways mobile video
|
5879 |
-
case
|
5880 |
-
case
|
5881 |
$movie_width ^= $movie_height ^= $movie_width ^= $movie_height; //swap height & width
|
5882 |
break;
|
5883 |
}
|
@@ -5927,7 +6690,7 @@ function kgvid_make_thumbs($postID, $movieurl, $numberofthumbs, $i, $iincreaser,
|
|
5927 |
if ( is_file($thumbnailfilename[$i]) )
|
5928 |
kgvid_schedule_cleanup_generated_files('thumbs');
|
5929 |
|
5930 |
-
$thumbnaildisplaycode = '<div class="kgvid_thumbnail_select" name="attachments['.$postID.'][thumb'.$i.']" id="attachments-'.$postID.'-thumb'.$i.'"><label for="kgflashmedia-'.$postID.'-thumbradio'.$i.'"><img src="'.$thumbnailurl.'?'.rand().'" width="200" height="'.$thumbnailheight.'" class="kgvid_thumbnail"></label><br /><input type="radio" name="attachments['.$postID.'][thumbradio_'.$postID.']" id="kgflashmedia-'.$postID.'-thumbradio'.$i.'" value="'.str_replace('/thumb_tmp/', '/', $thumbnailurl).'" onchange="kgvid_select_thumbnail(this.value, \''.$postID.'\', '.$movieoffset.');"></div>';
|
5931 |
|
5932 |
$i++;
|
5933 |
|
@@ -5945,7 +6708,9 @@ function kgvid_make_thumbs($postID, $movieurl, $numberofthumbs, $i, $iincreaser,
|
|
5945 |
|
5946 |
}
|
5947 |
|
5948 |
-
function kgvid_enqueue_videos($postID, $movieurl, $encode_checked, $parent_id) {
|
|
|
|
|
5949 |
|
5950 |
$options = kgvid_get_options();
|
5951 |
$ffmpegPath = $options['app_path']."/".$options['video_app'];
|
@@ -5960,8 +6725,8 @@ function kgvid_enqueue_videos($postID, $movieurl, $encode_checked, $parent_id) {
|
|
5960 |
$video_formats = kgvid_video_formats(false, false);
|
5961 |
$sanitized_url = kgvid_sanitize_url($movieurl);
|
5962 |
$movieurl = $sanitized_url['movieurl'];
|
5963 |
-
|
5964 |
-
if (
|
5965 |
else { $filepath = $movieurl; }
|
5966 |
$movie_info = kgvid_get_video_dimensions($filepath);
|
5967 |
|
@@ -5970,7 +6735,7 @@ function kgvid_enqueue_videos($postID, $movieurl, $encode_checked, $parent_id) {
|
|
5970 |
$movie_width = $movie_info['width'];
|
5971 |
$movie_height = $movie_info['height'];
|
5972 |
|
5973 |
-
if (
|
5974 |
|
5975 |
$kgvid_postmeta = kgvid_get_attachment_meta($postID);
|
5976 |
$keys = array( 'width' => 'actualwidth', 'height' => 'actualheight', 'duration' => 'duration', 'rotate' => 'rotate' );
|
@@ -5983,7 +6748,7 @@ function kgvid_enqueue_videos($postID, $movieurl, $encode_checked, $parent_id) {
|
|
5983 |
$encodevideo_info = kgvid_encodevideo_info($movieurl, $postID);
|
5984 |
|
5985 |
foreach ( $video_formats as $format => $format_stats ) {
|
5986 |
-
if ( $encode_checked[$format] == "true" ) {
|
5987 |
if ( !$encodevideo_info[$format]['exists'] ) {
|
5988 |
if ( ($format == "1080" && $movie_height <= 1080) || ($format == "720" && $movie_height <= 720) ) {
|
5989 |
$movie_extension = pathinfo($movieurl, PATHINFO_EXTENSION);
|
@@ -6006,19 +6771,22 @@ function kgvid_enqueue_videos($postID, $movieurl, $encode_checked, $parent_id) {
|
|
6006 |
}
|
6007 |
}//end loop through video formats
|
6008 |
|
6009 |
-
kgvid_save_attachment_meta($postID, $kgvid_postmeta);
|
6010 |
|
6011 |
if ( !empty($encode_list) ) { //if there's anything to encode
|
6012 |
|
6013 |
$video_encode_queue = kgvid_get_encode_queue();
|
6014 |
-
if ( empty($parent_id) ) { $parent_id = get_post($postID)->post_parent; }
|
|
|
|
|
6015 |
|
6016 |
$queue_entry = array (
|
6017 |
'attachmentID' => $postID,
|
6018 |
'parent_id' => $parent_id,
|
6019 |
'movieurl' => $movieurl,
|
6020 |
'encode_formats'=> $encode_formats,
|
6021 |
-
'movie_info' => $movie_info
|
|
|
6022 |
);
|
6023 |
if ( function_exists( 'is_plugin_active_for_network' ) && is_plugin_active_for_network( plugin_basename(__FILE__) ) ) {
|
6024 |
$queue_entry['blog_id'] = get_current_blog_id();
|
@@ -6116,14 +6884,22 @@ function kgvid_enqueue_videos($postID, $movieurl, $encode_checked, $parent_id) {
|
|
6116 |
if ( empty($transient) ) { delete_transient( 'kgvid_new_attachment_transient' ); }
|
6117 |
else { set_transient( 'kgvid_new_attachment_transient', $transient, DAY_IN_SECONDS ); }
|
6118 |
|
6119 |
-
|
6120 |
$arr = array ( "embed_display"=>$embed_display );
|
|
|
|
|
|
|
6121 |
return $arr;
|
|
|
6122 |
}
|
6123 |
else {
|
|
|
6124 |
$thumbnaildisplaycode = "<strong>".__('Can\'t open movie file.', 'video-embed-thumbnail-generator')."</strong><br />".$movie_info['output'];
|
6125 |
$arr = array ( "thumbnaildisplaycode"=>$thumbnaildisplaycode, "embed_display"=>$thumbnaildisplaycode, "lastthumbnumber"=>"break" );
|
|
|
|
|
|
|
6126 |
return $arr;
|
|
|
6127 |
} //can't open movie
|
6128 |
|
6129 |
}
|
@@ -6154,6 +6930,8 @@ function kgvid_callffmpeg() {
|
|
6154 |
if (isset($_POST['generate_button'])) { $generate_button = $_POST['generate_button']; }
|
6155 |
|
6156 |
if (isset($_POST['encodeformats'])) { $encode_checked = $_POST['encodeformats']; }
|
|
|
|
|
6157 |
|
6158 |
if (isset($_POST['poster'])) { $poster = $_POST['poster']; }
|
6159 |
if (isset($_POST['parent_id'])) { $parent_id = $_POST['parent_id']; }
|
@@ -6169,7 +6947,7 @@ function kgvid_callffmpeg() {
|
|
6169 |
echo json_encode($arr);
|
6170 |
}
|
6171 |
if ( $action == "enqueue" && current_user_can('encode_videos') ) {
|
6172 |
-
$arr = kgvid_enqueue_videos($postID, $movieurl, $encode_checked, $parent_id);
|
6173 |
echo json_encode($arr);
|
6174 |
}
|
6175 |
if ( $action == "submit" && current_user_can('make_video_thumbnails') ) { kgivd_save_singleurl_poster($parent_id, $poster, $movieurl, $set_featured); }
|
@@ -6234,6 +7012,8 @@ function kgvid_encode_videos() {
|
|
6234 |
extract($queue_info, EXTR_OVERWRITE);
|
6235 |
$video = $video_encode_queue[$video_key];
|
6236 |
|
|
|
|
|
6237 |
$ffmpegPath = $options['app_path']."/".$options['video_app'];
|
6238 |
$moviefilepath = '';
|
6239 |
if ( get_post_type($video['attachmentID']) == "attachment" ) { $moviefilepath = get_attached_file($video['attachmentID']); }
|
@@ -6363,6 +7143,9 @@ function kgvid_encode_videos() {
|
|
6363 |
|
6364 |
} //if there's a queue
|
6365 |
$arr = array ( "embed_display"=>"<strong>".$embed_display."</strong>", "video_key"=>$video_key, "format"=>$queued_format, "actualwidth"=>$movie_info['width'], "actualheight"=>$movie_info['height'] );
|
|
|
|
|
|
|
6366 |
return $arr;
|
6367 |
|
6368 |
}
|
@@ -6396,9 +7179,9 @@ function kgvid_test_ffmpeg() {
|
|
6396 |
$arr['output'] .= kgvid_fix_moov_atom($uploads['path']."/sample-video-h264".$suffix);
|
6397 |
}
|
6398 |
|
6399 |
-
if ( $options['ffmpeg_watermark']['url']
|
6400 |
if (!file_exists($uploads['path'].'/thumb_tmp')) { mkdir($uploads['path'].'/thumb_tmp'); }
|
6401 |
-
$cmd = escapeshellcmd($options['app_path'].'/'.$options['video_app'].' -y -i "'.$uploads['path']."/sample-video-h264".$suffix.'" -vframes 1 -f mjpeg '.$uploads['path'].'/thumb_tmp/watermark_test.jpg');
|
6402 |
kgvid_schedule_cleanup_generated_files('thumbs');
|
6403 |
exec ( $cmd );
|
6404 |
if ( file_exists($uploads['path'].'/thumb_tmp/watermark_test.jpg') ) {
|
@@ -6425,7 +7208,10 @@ function kgvid_encode_progress($video_key, $format, $page) {
|
|
6425 |
|
6426 |
$video_entry = $video_encode_queue[$video_key];
|
6427 |
|
6428 |
-
if ( array_key_exists('blog_id', $video_entry) ) {
|
|
|
|
|
|
|
6429 |
else { $blog_id = false; }
|
6430 |
|
6431 |
$script_function = 'kgvid_redraw_encode_checkboxes("'.$video_entry['movieurl'].'", "'.$video_entry['attachmentID'].'", "'.$page.'", "'.$blog_id.'")';
|
@@ -6478,6 +7264,7 @@ function kgvid_encode_progress($video_key, $format, $page) {
|
|
6478 |
if ( is_array($time_matches) && array_key_exists(1, $time_matches) != true ) { //if something other than the regular FFMPEG encoding output check for these
|
6479 |
preg_match('/video:(.*?) /', $lastline, $video_matches);
|
6480 |
preg_match('/libx264 (.*?) /', $lastline, $libx264_matches);
|
|
|
6481 |
$queue_match = preg_match('/queue on closing/', $lastline);
|
6482 |
}
|
6483 |
|
@@ -6516,7 +7303,7 @@ function kgvid_encode_progress($video_key, $format, $page) {
|
|
6516 |
$embed_display = '<strong>'.__('Encoding', 'video-embed-thumbnail-generator').'</strong><br /><div class="kgvid_meter"><div class="kgvid_meter_bar" style="width:'.$percent_done.'%;"><div class="kgvid_meter_text">'.$percent_done_text.'</div></div></div>';
|
6517 |
|
6518 |
if ( current_user_can('encode_videos') && $pid ) {
|
6519 |
-
$embed_display .= '<a href="javascript:void(0);" class="kgvid_cancel_button" id="attachments-'.$video_entry["attachmentID"].'-kgflashmediaplayer-cancelencode" onclick="kgvid_cancel_encode('.$pid.', \''.$video_entry["attachmentID"].'\', \''.$video_key.'\', \''.$format.'\');">'.__('Cancel', 'video-embed-thumbnail-generator').'</a>';
|
6520 |
}
|
6521 |
|
6522 |
$embed_display .= '<div class="kgvid_encoding_small_text"><small>'.__('Elapsed:', 'video-embed-thumbnail-generator').' '.date('H:i:s',$time_elapsed).'. '.__('Remaining:', 'video-embed-thumbnail-generator').' '.$time_remaining.'. '._x('FPS:', 'Frames per second', 'video-embed-thumbnail-generator').' '.$fps_match.'</small></div>';
|
@@ -6530,11 +7317,10 @@ function kgvid_encode_progress($video_key, $format, $page) {
|
|
6530 |
elseif (
|
6531 |
( is_array($video_matches) && array_key_exists(1, $video_matches) == true )
|
6532 |
|| ( is_array($libx264_matches) && array_key_exists(1, $libx264_matches) == true )
|
|
|
6533 |
|| ( $queue_match )
|
6534 |
) { //encoding complete
|
6535 |
|
6536 |
-
if ( $blog_id ) { switch_to_blog($blog_id); }
|
6537 |
-
|
6538 |
$percent_done = 100;
|
6539 |
$ended = filemtime($logfile);
|
6540 |
$time_elapsed = $ended - $started;
|
@@ -6609,14 +7395,12 @@ function kgvid_encode_progress($video_key, $format, $page) {
|
|
6609 |
|
6610 |
if ( (empty($next_video['format']) || $next_video['video_key'] != $video_key) && $video_encode_queue[$video_key]['encode_formats']['fullres']['status'] == "Encoding Complete" ) { //if there's nothing left to encode in this video and we've encoded the fullres
|
6611 |
$new_movie_url = kgvid_replace_video( $video_key, 'fullres' );
|
6612 |
-
$script_function = 'kgvid_redraw_encode_checkboxes("'.$new_movie_url.'", "'.$video_entry['attachmentID'].'", "'.$page.'")';
|
6613 |
|
6614 |
$embed_display = '<strong>'.__('Encoding Complete', 'video-embed-thumbnail-generator').'</strong>';
|
6615 |
|
6616 |
}//fullres encoding complete
|
6617 |
|
6618 |
-
if ( $blog_id ) { restore_current_blog(); }
|
6619 |
-
|
6620 |
}//encoding complete
|
6621 |
|
6622 |
else { //there was an unexpected output and the encoded file hasn't been modified in more than 10 seconds
|
@@ -6624,7 +7408,7 @@ function kgvid_encode_progress($video_key, $format, $page) {
|
|
6624 |
if ( strpos($lastline, "signal 15") !== false ) { //if the encoding was intentionally canceled
|
6625 |
$lastline = __("Encoding was canceled.", 'video-embed-thumbnail-generator');
|
6626 |
}
|
6627 |
-
$video_encode_queue[$video_key]['encode_formats'][$format]['status'] = "
|
6628 |
|
6629 |
}
|
6630 |
|
@@ -6636,10 +7420,70 @@ function kgvid_encode_progress($video_key, $format, $page) {
|
|
6636 |
|
6637 |
}
|
6638 |
|
6639 |
-
if ( $video_encode_queue[$video_key]['encode_formats'][$format]['status'] == "error" ) {
|
|
|
6640 |
$video_encode_queue[$video_key]['encode_formats'][$format]['lastline'] = addslashes($lastline);
|
6641 |
-
|
6642 |
$embed_display = '<strong>'.__('Error:', 'video-embed-thumbnail-generator').' </strong><span class="kgvid_warning">'.stripslashes($lastline).'.</span>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6643 |
$next_video = kgvid_encode_videos(); //start the next queued video
|
6644 |
if ( !empty($next_video['format']) ) {
|
6645 |
$args = array($next_video['video_key'], $next_video['format'], $page);
|
@@ -6654,6 +7498,9 @@ function kgvid_encode_progress($video_key, $format, $page) {
|
|
6654 |
else { $embed_display = "<strong>".__('Waiting...', 'video-embed-thumbnail-generator')."</strong>"; }
|
6655 |
|
6656 |
$arr = array ( 'embed_display' => $embed_display, 'time_to_wait' => $time_to_wait );
|
|
|
|
|
|
|
6657 |
return $arr;
|
6658 |
|
6659 |
}//end if queue entry exists
|
@@ -6676,6 +7523,7 @@ add_action('wp_ajax_kgvid_encode_progress', 'kgvid_ajax_encode_progress');
|
|
6676 |
|
6677 |
function kgvid_replace_video( $video_key, $format ) {
|
6678 |
|
|
|
6679 |
$video_encode_queue = kgvid_get_encode_queue();
|
6680 |
$video_formats = kgvid_video_formats();
|
6681 |
$encoded_filename = $video_encode_queue[$video_key]['encode_formats'][$format]['filepath'];
|
@@ -6724,6 +7572,18 @@ function kgvid_replace_video( $video_key, $format ) {
|
|
6724 |
if ( file_exists($encoded_filename) ) {
|
6725 |
rename($encoded_filename, $new_filename);
|
6726 |
if ( file_exists($original_filename) && $original_filename != $new_filename ) { unlink($original_filename); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6727 |
}
|
6728 |
$video_encode_queue[$video_key]['encode_formats'][$format]['url'] = $new_url;
|
6729 |
|
@@ -6764,8 +7624,6 @@ function kgvid_replace_video( $video_key, $format ) {
|
|
6764 |
$post = get_post($video_id);
|
6765 |
$new_guid = str_replace( $path_parts['extension'], $new_mime['ext'], $post->guid );
|
6766 |
|
6767 |
-
|
6768 |
-
|
6769 |
if ( $new_guid != $post->guid ) {
|
6770 |
$post->guid = $new_guid;
|
6771 |
global $wpdb;
|
@@ -6783,6 +7641,12 @@ function kgvid_replace_video( $video_key, $format ) {
|
|
6783 |
$post_update = array('ID' => $video_id, 'post_mime_type' => $new_mime['type']);
|
6784 |
wp_update_post($post_update);
|
6785 |
|
|
|
|
|
|
|
|
|
|
|
|
|
6786 |
return $new_url;
|
6787 |
|
6788 |
}//end replace true
|
@@ -6792,6 +7656,8 @@ add_action('kgvid_cron_replace_video_check', 'kgvid_replace_video', 10, 2);
|
|
6792 |
|
6793 |
function kgvid_clear_completed_queue($type, $scope = 'site') {
|
6794 |
|
|
|
|
|
6795 |
$video_encode_queue = kgvid_get_encode_queue();
|
6796 |
|
6797 |
if ( !empty($video_encode_queue) ) {
|
@@ -6803,8 +7669,18 @@ function kgvid_clear_completed_queue($type, $scope = 'site') {
|
|
6803 |
if ( !empty($queue_entry['encode_formats']) ) {
|
6804 |
foreach ( $queue_entry['encode_formats'] as $format => $value ) {
|
6805 |
if ( $value['status'] == "encoding" ) { //if it's not completed yet
|
6806 |
-
$keep[$video_key] = true;
|
6807 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6808 |
}
|
6809 |
if ( ($type == "manual" && $value['status'] == "queued")
|
6810 |
|| ($type == "queued" && $value['status'] == "Encoding Complete")
|
@@ -6816,7 +7692,11 @@ function kgvid_clear_completed_queue($type, $scope = 'site') {
|
|
6816 |
$keep[$video_key] = true;
|
6817 |
}
|
6818 |
}
|
6819 |
-
if (
|
|
|
|
|
|
|
|
|
6820 |
$keep[$video_key] = true;
|
6821 |
break;
|
6822 |
}
|
@@ -7364,7 +8244,9 @@ function kgvid_add_contextual_help_tab() {
|
|
7364 |
<li><code>downloadlink="true/false"</code> '.__('generates a link below the video to make it easier for users to save the video file to their computers.', 'video-embed-thumbnail-generator').'</li>
|
7365 |
<li><code>right_click="true/false"</code> '.__('allow or disable right-clicking on the video player.', 'video-embed-thumbnail-generator').'</li>
|
7366 |
<li><code>resize="true/false"</code> '.__('allow or disable responsive resizing.', 'video-embed-thumbnail-generator').'</li>
|
7367 |
-
<li><code>auto_res="automatic/highest/lowest"</code> '.__('specify the video resolution when the page loads.', 'video-embed-thumbnail-generator').'</li
|
|
|
|
|
7368 |
|
7369 |
<p><strong>'.__('These options will add a subtitle/caption track.', 'video-embed-thumbnail-generator').'</strong></p>
|
7370 |
<ul><li><code>track_src="http://www.example.com/subtitles.vtt_.txt"</code> '.__('URL of the WebVTT file.', 'video-embed-thumbnail-generator').'</li>
|
@@ -7374,7 +8256,9 @@ function kgvid_add_contextual_help_tab() {
|
|
7374 |
<li><code>track_default="default"</code> '.__('track is enabled by default.', 'video-embed-thumbnail-generator').'</li></ul>
|
7375 |
|
7376 |
<p><strong>'.__('These options will only affect Video.js playback', 'video-embed-thumbnail-generator').'</strong></p>
|
7377 |
-
<ul><li><code>skin="example-css-class"</code> '.sprintf( __('Completely change the look of the video player. %sInstructions here.', 'video-embed-thumbnail-generator'), '<a href="https://github.com/zencoder/video-js/blob/master/docs/skins.md">' ).'</a></li
|
|
|
|
|
7378 |
|
7379 |
<p><strong>'.__('These options will only affect Flash playback in Strobe Media Playback video elements. They will have no effect on other players.', 'video-embed-thumbnail-generator').'</p></strong>
|
7380 |
<ul><li><code>autohide="true/false"</code> '.__('specify whether to autohide the control bar after a few seconds.', 'video-embed-thumbnail-generator').'</li>
|
@@ -7402,6 +8286,31 @@ function kgvid_add_contextual_help_tab() {
|
|
7402 |
add_action( 'admin_head-post.php', 'kgvid_add_contextual_help_tab' );
|
7403 |
add_action( 'admin_head-post-new.php', 'kgvid_add_contextual_help_tab' );
|
7404 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7405 |
|
7406 |
function kgvid_clear_cron_and_roles() {
|
7407 |
|
3 |
Plugin Name: Video Embed & Thumbnail Generator
|
4 |
Plugin URI: http://www.kylegilman.net/2011/01/18/video-embed-thumbnail-generator-wordpress-plugin/
|
5 |
Description: Generates thumbnails, HTML5-compliant videos, and embed codes for locally hosted videos. Requires FFMPEG or LIBAV for encoding.
|
6 |
+
Version: 4.6
|
7 |
Author: Kyle Gilman
|
8 |
Author URI: http://www.kylegilman.net/
|
9 |
Text Domain: video-embed-thumbnail-generator
|
59 |
$edit_others_capable = kgvid_check_if_capable('edit_others_posts');
|
60 |
|
61 |
$options = array(
|
62 |
+
"version" => 4.6,
|
63 |
"embed_method" => "Video.js",
|
64 |
"jw_player_id" => "",
|
65 |
"template" => false,
|
97 |
"watermark_url" => "",
|
98 |
"overlay_title" => "on",
|
99 |
"overlay_embedcode" => false,
|
100 |
+
"twitter_button" => false,
|
101 |
+
"twitter_username" => kgvid_get_jetpack_twitter_username(),
|
102 |
+
"facebook_button" => false,
|
103 |
"downloadlink" => false,
|
104 |
"click_download" => "on",
|
105 |
"view_count" => false,
|
109 |
"width" => "640",
|
110 |
"height" => "360",
|
111 |
"minimum_width" => false,
|
112 |
+
"fullwidth" => "on",
|
113 |
"gallery_width" => "960",
|
114 |
"gallery_thumb" => "250",
|
115 |
"gallery_end" => "",
|
116 |
"gallery_pagination" => false,
|
117 |
"gallery_per_page" => false,
|
118 |
"gallery_title" => "on",
|
119 |
+
"nativecontrolsfortouch" => false,
|
120 |
"controlbar_style" => "docked",
|
121 |
"autoplay" => false,
|
122 |
"loop" => false,
|
146 |
"h264_profile" => "baseline",
|
147 |
"h264_level" => "3.0",
|
148 |
"auto_encode" => false,
|
149 |
+
"auto_encode_gif" => false,
|
150 |
"auto_thumb" => false,
|
151 |
"auto_thumb_number" => 1,
|
152 |
"auto_thumb_position" => 50,
|
153 |
"right_click" => "on",
|
154 |
"resize" => "on",
|
155 |
"auto_res" => "automatic",
|
156 |
+
"pixel_ratio" => "on",
|
157 |
"capabilities" => array(
|
158 |
"make_video_thumbnails" => $upload_capable,
|
159 |
"encode_videos" => $upload_capable,
|
160 |
"edit_others_video_encodes" => $edit_others_capable
|
161 |
),
|
162 |
+
"open_graph" => false,
|
163 |
+
"schema" => "on",
|
164 |
+
"twitter_card" => false,
|
165 |
+
"oembed_provider" => false,
|
166 |
"oembed_security" => false,
|
167 |
"htaccess_login" => "",
|
168 |
"htaccess_password" => "",
|
169 |
"sample_format" => "mobile",
|
170 |
+
"sample_rotate" => false,
|
171 |
"ffmpeg_watermark" => array(
|
172 |
"url" => "",
|
173 |
"scale" => "9",
|
176 |
"x" => "6",
|
177 |
"y" => "5"
|
178 |
),
|
179 |
+
"simultaneous_encodes" => 1,
|
180 |
+
"error_email" => "nobody"
|
181 |
);
|
182 |
|
183 |
return $options;
|
199 |
'ffmpeg_exists' => $default_options['ffmpeg_exists'],
|
200 |
'default_capabilities' => $default_options['capabilities'],
|
201 |
'superadmin_only_ffmpeg_settings' => false,
|
202 |
+
'simultaneous_encodes' => $default_options['simultaneous_encodes'],
|
203 |
+
'network_error_email' => $default_options['error_email']
|
204 |
);
|
205 |
|
206 |
return $network_options;
|
220 |
|
221 |
}
|
222 |
|
223 |
+
function kgvid_get_jetpack_twitter_username() {
|
224 |
+
|
225 |
+
$jetpack_options = get_option('jetpack_options');
|
226 |
+
$jetpack_twitter_cards_site_tag = get_option('jetpack-twitter-cards-site-tag');
|
227 |
+
if ( is_array($jetpack_options)
|
228 |
+
&& array_key_exists('publicize_connections', $jetpack_options)
|
229 |
+
&& array_key_exists('twitter', $jetpack_options['publicize_connections'])
|
230 |
+
&& array_key_exists('external_name', $jetpack_options['publicize_connections']['twitter'])
|
231 |
+
&& !empty($jetpack_options['publicize_connections']['twitter']['external_name'])
|
232 |
+
) {
|
233 |
+
$twitter_username = $jetpack_options['publicize_connections']['twitter']['external_name'];
|
234 |
+
}
|
235 |
+
elseif ( !empty($jetpack_twitter_cards_site_tag) ) {
|
236 |
+
$twitter_username = $jetpack_twitter_cards_site_tag;
|
237 |
+
}
|
238 |
+
else { $twitter_username = ''; }
|
239 |
+
|
240 |
+
return $twitter_username;
|
241 |
+
|
242 |
+
}
|
243 |
+
|
244 |
function kgvid_get_attachment_meta($post_id) {
|
245 |
|
246 |
$options = kgvid_get_options();
|
284 |
'gallery_order' => '',
|
285 |
'gallery_id' => '',
|
286 |
'duration' => '',
|
287 |
+
'aspect' => '',
|
288 |
+
'original_replaced' => ''
|
289 |
);
|
290 |
|
291 |
if ( $kgvid_postmeta == '' ) {
|
373 |
$video_formats = array(
|
374 |
"fullres" => array(
|
375 |
"name" => __("same resolution H.264", 'video-embed-thumbnail-generator'),
|
376 |
+
"label" => __('Full', 'video-embed-thumbnail-generator'),
|
377 |
"width" => INF,
|
378 |
"height" => INF,
|
379 |
"type" => "h264",
|
457 |
|
458 |
$video_formats = $video_formats + array(
|
459 |
"custom_h264" => array(
|
460 |
+
"name" => __('Custom MP4', 'video-embed-thumbnail-generator'),
|
461 |
+
"label" => __('Custom MP4', 'video-embed-thumbnail-generator'),
|
462 |
"width" => 0,
|
463 |
"height" => 0,
|
464 |
"type" => "h264",
|
468 |
"vcodec" => "libx264"
|
469 |
),
|
470 |
"custom_webm" => array(
|
471 |
+
"name" => __('Custom WEBM', 'video-embed-thumbnail-generator'),
|
472 |
+
"label" => __('Custom WEBM', 'video-embed-thumbnail-generator'),
|
473 |
"width" => 0,
|
474 |
"height" => 0,
|
475 |
"type" => "webm",
|
479 |
"vcodec" => "libvpx"
|
480 |
),
|
481 |
"custom_ogg" => array(
|
482 |
+
"name" => __('Custom OGV', 'video-embed-thumbnail-generator'),
|
483 |
+
"label" => __('Custom OGV', 'video-embed-thumbnail-generator'),
|
484 |
"width" => 0,
|
485 |
"height" => 0,
|
486 |
"type" => "ogv",
|
701 |
function kgvid_aac_encoders() {
|
702 |
|
703 |
$aac_array = array("libfdk_aac", "libfaac", "aac", "libvo_aacenc");
|
704 |
+
return apply_filters('kgvid_aac_encoders', $aac_array);
|
705 |
|
706 |
}
|
707 |
|
732 |
|
733 |
}
|
734 |
|
735 |
+
function kgvid_is_animated_gif($filename) {
|
736 |
+
if(!($fh = @fopen($filename, 'rb')))
|
737 |
+
return false;
|
738 |
+
$count = 0;
|
739 |
+
//an animated gif contains multiple "frames", with each frame having a
|
740 |
+
//header made up of:
|
741 |
+
// * a static 4-byte sequence (\x00\x21\xF9\x04)
|
742 |
+
// * 4 variable bytes
|
743 |
+
// * a static 2-byte sequence (\x00\x2C) (some variants may use \x00\x21 ?)
|
744 |
+
|
745 |
+
// We read through the file til we reach the end of the file, or we've found
|
746 |
+
// at least 2 frame headers
|
747 |
+
while(!feof($fh) && $count < 2) {
|
748 |
+
$chunk = fread($fh, 1024 * 100); //read 100kb at a time
|
749 |
+
$count += preg_match_all('#\x00\x21\xF9\x04.{4}\x00(\x2C|\x21)#s', $chunk, $matches);
|
750 |
+
}
|
751 |
+
|
752 |
+
fclose($fh);
|
753 |
+
return $count > 1;
|
754 |
+
}
|
755 |
+
|
756 |
+
function kgvid_is_video($post) {
|
757 |
+
|
758 |
+
if ( $post->post_mime_type == 'image/gif' ) {
|
759 |
+
$moviefile = get_attached_file($post->ID);
|
760 |
+
$is_animated = kgvid_is_animated_gif($moviefile);
|
761 |
+
}
|
762 |
+
else { $is_animated = false; }
|
763 |
+
|
764 |
+
if ( substr($post->post_mime_type, 0, 5) == 'video' &&
|
765 |
+
( empty($post->post_parent)
|
766 |
+
|| (strpos(get_post_mime_type( $post->post_parent ), 'video') === false && get_post_meta($post->ID, '_kgflashmediaplayer-externalurl', true) == '' )
|
767 |
+
)
|
768 |
+
|| $is_animated
|
769 |
+
) { //if the attachment is a video with no parent or if it has a parent the parent is not a video and the video doesn't have the externalurl post meta
|
770 |
+
|
771 |
+
return true;
|
772 |
+
|
773 |
+
}
|
774 |
+
else {
|
775 |
+
return false;
|
776 |
+
}
|
777 |
+
|
778 |
+
}
|
779 |
+
|
780 |
function kgvid_url_exists($url) {
|
781 |
$hdrs = @get_headers($url);
|
782 |
return is_array($hdrs) ? preg_match('/^HTTP\\/\\d+\\.\\d+\\s+2\\d\\d\\s+.*$/',$hdrs[0]) : false;
|
983 |
$kgvid_postmeta['height'] = round(intval($kgvid_postmeta['width'])*$aspect_ratio);
|
984 |
|
985 |
$dimensions = array( 'width' => strval($kgvid_postmeta['width']), 'height' => strval($kgvid_postmeta['height']), 'actualwidth' => strval($kgvid_postmeta['actualwidth']), 'actualheight' => strval($kgvid_postmeta['actualheight']) );
|
986 |
+
|
987 |
return $dimensions;
|
988 |
|
989 |
}
|
1126 |
if ( is_writable($location['filepath']) ) { $encodevideo_info[$format]['writable'] = true; }
|
1127 |
break;
|
1128 |
}
|
1129 |
+
elseif ( !empty($postID) && !$encodevideo_info['sameserver'] && $name != "html5encodes" ) { //last resort if it's not on the same server, check url_exists
|
1130 |
|
1131 |
$already_checked_url = get_post_meta($postID, '_kgflashmediaplayer-'.$sanitized_url['singleurl_id'].'-'.$format, true);
|
1132 |
if ( empty($already_checked_url) ) {
|
1149 |
}//end potential locations loop
|
1150 |
|
1151 |
if ( !$encodevideo_info[$format]['exists'] ) {
|
1152 |
+
if ( get_post_type($postID) == "attachment" && is_writeable($encodevideo_info['encodepath']) ) {
|
1153 |
+
$encodevideo_info[$format]['url'] = $sanitized_url['noextension'].$format_stats['suffix'];
|
1154 |
+
$encodevideo_info[$format]['filepath'] = $encodevideo_info['encodepath'].$encodevideo_info['moviefilebasename'].$format_stats['suffix'];
|
1155 |
+
}
|
1156 |
+
else {
|
1157 |
+
$encodevideo_info[$format]['url'] = $uploads['url'].'/'.$encodevideo_info['moviefilebasename'].$format_stats['suffix'];
|
1158 |
+
$encodevideo_info[$format]['filepath'] = $uploads['path'].'/'.$encodevideo_info['moviefilebasename'].$format_stats['suffix'];
|
1159 |
+
}
|
1160 |
}
|
1161 |
|
1162 |
}//end format loop
|
1163 |
|
1164 |
+
return apply_filters('kgvid_encodevideo_info', $encodevideo_info, $movieurl, $postID);
|
1165 |
}
|
1166 |
|
1167 |
/**
|
1218 |
else { $rotate = "0"; }
|
1219 |
|
1220 |
switch ($rotate) {
|
1221 |
+
case "90": $movie_info['rotate'] = 90; break;
|
1222 |
+
case "180": $movie_info['rotate'] = 180; break;
|
1223 |
+
case "270": $movie_info['rotate'] = 270; break;
|
1224 |
+
case "-90": $movie_info['rotate'] = 270; break;
|
1225 |
default: $movie_info['rotate'] = ""; break;
|
1226 |
}
|
1227 |
|
1243 |
$movie_info['worked'] = false;
|
1244 |
}
|
1245 |
|
1246 |
+
return apply_filters('kgvid_get_video_dimensions', $movie_info, $video);
|
1247 |
}
|
1248 |
|
1249 |
function kgvid_generate_flashvars($content, $query_atts, $encodevideo_info, $id) {
|
1334 |
$rate_control_flag = " -".$video_bitrate_flag." ".round(floatval($options['bitrate_multiplier'])*$width*$height*30/1024)."k";
|
1335 |
}
|
1336 |
|
1337 |
+
if ( $rotate === false || $options['ffmpeg_vpre'] == "on" ) { $rotate = ""; }
|
1338 |
+
switch ($rotate) { //if it's a sideways mobile video
|
1339 |
+
|
1340 |
+
case 90:
|
1341 |
+
if ( empty($options['ffmpeg_watermark']['url']) ) {
|
1342 |
+
$rotate = ' -vf "transpose=1"';
|
1343 |
+
}
|
1344 |
+
else {
|
1345 |
+
$rotate = '';
|
1346 |
+
$rotate_complex = 'transpose=1[rotate];[rotate]';
|
1347 |
+
}
|
1348 |
+
|
1349 |
+
if ( $options['video_bitrate_flag'] == "on" || $options['ffmpeg_old_rotation'] == "on" ) {
|
1350 |
+
$rotate .= " -metadata rotate=0";
|
1351 |
+
}
|
1352 |
+
else {
|
1353 |
+
$rotate .= " -metadata:s:v:0 rotate=0";
|
1354 |
+
$width ^= $height ^= $width ^= $height; //swap height & width
|
1355 |
+
}
|
1356 |
+
|
1357 |
+
break;
|
1358 |
+
|
1359 |
+
case 270:
|
1360 |
+
|
1361 |
+
if ( empty($options['ffmpeg_watermark']['url']) ) {
|
1362 |
+
$rotate = ' -vf "transpose=2"';
|
1363 |
+
}
|
1364 |
+
else {
|
1365 |
+
$rotate = '';
|
1366 |
+
$rotate_complex = 'transpose=2[rotate];[rotate]';
|
1367 |
+
}
|
1368 |
+
|
1369 |
+
if ( $options['video_bitrate_flag'] == "on" || $options['ffmpeg_old_rotation'] == "on" ) {
|
1370 |
+
$rotate .= " -metadata rotate=0";
|
1371 |
+
}
|
1372 |
+
else {
|
1373 |
+
$rotate .= " -metadata:s:v:0 rotate=0";
|
1374 |
+
$width ^= $height ^= $width ^= $height; //swap height & width
|
1375 |
+
}
|
1376 |
+
|
1377 |
+
break;
|
1378 |
+
|
1379 |
+
case 180:
|
1380 |
+
|
1381 |
+
if ( empty($options['ffmpeg_watermark']['url']) ) {
|
1382 |
+
$rotate = ' -vf "hflip,vflip"';
|
1383 |
+
}
|
1384 |
+
else {
|
1385 |
+
$rotate = '';
|
1386 |
+
$rotate_complex = 'hflip,vflip[rotate];[rotate]';
|
1387 |
+
}
|
1388 |
+
|
1389 |
+
if ( $options['video_bitrate_flag'] == "on" || $options['ffmpeg_old_rotation'] == "on" ) { $rotate .= " -metadata rotate=0"; }
|
1390 |
+
else { $rotate .= " -metadata:s:v:0 rotate=0"; }
|
1391 |
+
|
1392 |
+
break;
|
1393 |
+
|
1394 |
+
default:
|
1395 |
+
$rotate = '';
|
1396 |
+
$rotate_complex = '';
|
1397 |
+
break;
|
1398 |
+
}
|
1399 |
+
|
1400 |
if ( $options['ffmpeg_watermark']['url'] != "" ) {
|
1401 |
|
1402 |
$watermark_width = strval(round(intval($movie_info['width'])*(intval($options['ffmpeg_watermark']['scale'])/100)));
|
1428 |
}
|
1429 |
|
1430 |
$watermark_input = '-i "'.$options['ffmpeg_watermark']['url'].'" ';
|
1431 |
+
$watermark_filter = ' -filter_complex "[1:v]scale='.$watermark_width.':-1[watermark];[0:v]'.$rotate_complex.'[watermark]overlay='.$watermark_align.'main_w*'.round($options['ffmpeg_watermark']['x']/100, 3).':'.$watermark_valign.'main_w*'.round($options['ffmpeg_watermark']['y']/100, 3).'"';
|
1432 |
}
|
1433 |
else {
|
1434 |
$watermark_input = "";
|
1435 |
$watermark_filter = "";
|
1436 |
}
|
1437 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1438 |
if ( $video_formats[$format]['type'] == 'h264' ) {
|
1439 |
|
1440 |
$aac_array = kgvid_aac_encoders();
|
1495 |
|
1496 |
} //if FFMPEG is found
|
1497 |
|
1498 |
+
return apply_filters('kgvid_generate_encode_string', $encode_string, $input, $output, $movie_info, $format, $width, $height, $rotate);
|
1499 |
|
1500 |
}
|
1501 |
|
1555 |
}// class Process
|
1556 |
|
1557 |
function kgvid_video_embed_enqueue_scripts() {
|
1558 |
+
|
1559 |
$options = kgvid_get_options();
|
1560 |
|
1561 |
//Video.js styles
|
1562 |
if ( $options['embed_method'] == "Video.js" || $options['embed_method'] == "Strobe Media Playback" ) {
|
1563 |
+
wp_enqueue_style( 'video-js', plugins_url("", __FILE__).'/video-js/video-js.css', '', '5.5.3' );
|
1564 |
if ( $options['js_skin'] == 'kg-video-js-skin' ){ wp_enqueue_style( 'video-js-kg-skin', plugins_url("", __FILE__).'/video-js/kg-video-js-skin.css', '', $options['version'] ); }
|
1565 |
}
|
1566 |
|
1567 |
+
//plugin-related frontend styles, requires dashicons
|
1568 |
+
wp_enqueue_style( 'kgvid_video_styles', plugins_url("/css/kgvid_styles.css", __FILE__), array( 'dashicons' ), $options['version'] );
|
1569 |
|
1570 |
}
|
1571 |
add_action('wp_enqueue_scripts', 'kgvid_video_embed_enqueue_scripts', 12);
|
1572 |
|
1573 |
function enqueue_kgvid_script() { //loads plugin-related scripts in the admin area
|
1574 |
|
1575 |
+
if ( !wp_script_is('kgvid_video_plugin_admin', 'enqueued') ) {
|
1576 |
+
|
1577 |
+
$options = kgvid_get_options();
|
1578 |
|
1579 |
+
wp_enqueue_script( 'kgvid_video_plugin_admin', plugins_url('/js/kgvid_video_plugin_admin.js', __FILE__), array('jquery'), $options['version'], true );
|
1580 |
+
wp_enqueue_style( 'video_embed_thumbnail_generator_style', plugins_url('/css/video-embed-thumbnail-generator_admin.css', __FILE__), '', $options['version'] );
|
1581 |
+
|
1582 |
+
wp_localize_script( 'kgvid_video_plugin_admin', 'kgvidL10n', array(
|
1583 |
+
'wait' => _x('Wait', 'please wait', 'video-embed-thumbnail-generator'),
|
1584 |
+
'hidevideo' => __('Hide video...', 'video-embed-thumbnail-generator'),
|
1585 |
+
'choosefromvideo' => __('Choose from video...', 'video-embed-thumbnail-generator'),
|
1586 |
+
'cantloadvideo' => __('Can\'t load video', 'video-embed-thumbnail-generator'),
|
1587 |
+
'choosethumbnail' => __('Choose Thumbnail:', 'video-embed-thumbnail-generator'),
|
1588 |
+
'saveallthumbnails' => __('Save All Thumbnails', 'video-embed-thumbnail-generator'),
|
1589 |
+
'saving' => __('Saving...', 'video-embed-thumbnail-generator'),
|
1590 |
+
'loading' => __('Loading...', 'video-embed-thumbnail-generator'),
|
1591 |
+
'generate' => __('Generate', 'video-embed-thumbnail-generator'),
|
1592 |
+
'randomize' => __('Randomize', 'video-embed-thumbnail-generator'),
|
1593 |
+
'ffmpegnotfound' => sprintf( __('%s not found', 'video-embed-thumbnail-generator'), strtoupper($options['video_app']) ),
|
1594 |
+
'validurlalert' => __("Please enter a URL that points to a valid video file. Video sharing sites are not supported by this plugin.\nTo embed from YouTube, Vimeo, etc, just paste the link directly into the post window and WordPress will handle the rest.", 'video-embed-thumbnail-generator'),
|
1595 |
+
'pleasevalidurl' => __('Please enter a valid video URL', 'video-embed-thumbnail-generator'),
|
1596 |
+
'deletemessage' => __("You are about to permanently delete the encoded video.\n 'Cancel' to stop, 'OK' to delete.", 'video-embed-thumbnail-generator'),
|
1597 |
+
'saved' => __('Saved.', 'video-embed-thumbnail-generator'),
|
1598 |
+
'runningtest' => __('Running test...', 'video-embed-thumbnail-generator'),
|
1599 |
+
'ffmpegrequired' => __('FFMPEG or LIBAV required for these functions.', 'video-embed-thumbnail-generator'),
|
1600 |
+
'featuredwarning' => __("You are about to set all existing video thumbnails previously generated by this plugin as the featured images for their posts. There is no 'undo' button, so proceed at your own risk.", 'video-embed-thumbnail-generator'),
|
1601 |
+
'autothumbnailwarning' => __("You are about to create thumbnails for every video in your Media Library that doesn't already have one. This might take a long time. There is no 'undo' button, so proceed at your own risk.\n\nNumber of videos without thumbnails: ", 'video-embed-thumbnail-generator'),
|
1602 |
+
'autoencodewarning' => __("You are about to add every video in your Media Library to the video encode queue if it hasn't already been encoded. This might take a long time.", 'video-embed-thumbnail-generator'),
|
1603 |
+
'nothumbstomake' => __("No thumbnails generated. All videos have thumbnails already.", 'video-embed-thumbnail-generator'),
|
1604 |
+
'cancel_ok' => __("'Cancel' to stop, 'OK' to proceed.", 'video-embed-thumbnail-generator'),
|
1605 |
+
'processing' => __('Processing...', 'video-embed-thumbnail-generator'),
|
1606 |
+
'parentwarning_posts' => __("You are about to set all existing video thumbnails previously generated by this plugin as attachments of their posts rather than their associated videos. Proceed at your own risk.", 'video-embed-thumbnail-generator'),
|
1607 |
+
'parentwarning_videos' => __("You are about to set all existing video thumbnails previously generated by this plugin as attachments of their videos rather than their associated posts. Proceed at your own risk.", 'video-embed-thumbnail-generator'),
|
1608 |
+
'clearqueuedwarning' => __("You are about to clear all videos not yet encoded.", 'video-embed-thumbnail-generator'),
|
1609 |
+
'clearallwarning' => __("You are about to clear all videos currently encoding, not yet encoded, completed successfully, and completed with errors.", 'video-embed-thumbnail-generator'),
|
1610 |
+
'complete' => __('Complete', 'video-embed-thumbnail-generator'),
|
1611 |
+
'tracktype' => __('Track type:', 'video-embed-thumbnail-generator'),
|
1612 |
+
'subtitles' => __('subtitles', 'video-embed-thumbnail-generator'),
|
1613 |
+
'captions' => __('captions', 'video-embed-thumbnail-generator'),
|
1614 |
+
'chapters' => __('chapters', 'video-embed-thumbnail-generator'),
|
1615 |
+
'choosetextfile' => __('Choose a Text File', 'video-embed-thumbnail-generator'),
|
1616 |
+
'settracksource' => __('Set as track source', 'video-embed-thumbnail-generator'),
|
1617 |
+
'choosefromlibrary' => __('Choose from Library', 'video-embed-thumbnail-generator'),
|
1618 |
+
'languagecode' => __('Language code:', 'video-embed-thumbnail-generator'),
|
1619 |
+
'label' => _x('Label:', 'noun', 'video-embed-thumbnail-generator'),
|
1620 |
+
'trackdefault' => __('Default:', 'video-embed-thumbnail-generator'),
|
1621 |
+
'custom' => _x('Custom', 'Custom format', 'video-embed-thumbnail-generator')
|
1622 |
+
) );
|
1623 |
+
}
|
1624 |
|
1625 |
}
|
1626 |
add_action('admin_enqueue_scripts', 'enqueue_kgvid_script');
|
1627 |
add_action('wp_enqueue_media', 'enqueue_kgvid_script');
|
1628 |
|
1629 |
+
function kgvid_get_first_embedded_video( $post ) {
|
1630 |
+
|
1631 |
+
$url = '';
|
1632 |
+
$attributes = array();
|
1633 |
+
|
1634 |
+
$first_embedded_video_meta = get_post_meta($post->ID, '_kgvid_first_embedded_video', true);
|
1635 |
+
|
1636 |
+
if ( !empty($first_embedded_video_meta) ) {
|
1637 |
+
|
1638 |
+
if ( is_array($first_embedded_video_meta['atts']) ) {
|
1639 |
+
$dataattributes = array_map(function($value, $key) {
|
1640 |
+
return $key.'="'.$value.'"';
|
1641 |
+
}, array_values($first_embedded_video_meta['atts']), array_keys($first_embedded_video_meta['atts']));
|
1642 |
+
|
1643 |
+
$dataattributes = ' '.implode(' ', $dataattributes);
|
1644 |
+
}
|
1645 |
+
else { $dataattributes = $first_embedded_video_meta['atts']; }
|
1646 |
+
|
1647 |
+
$shortcode_text = '[KGVID'.$dataattributes.']'.$first_embedded_video_meta['content'].'[/KGVID]';
|
1648 |
+
|
1649 |
+
}
|
1650 |
+
else { $shortcode_text = $post->post_content; }
|
1651 |
|
|
|
|
|
|
|
1652 |
$pattern = get_shortcode_regex();
|
1653 |
+
preg_match_all( '/'. $pattern .'/s', $shortcode_text, $matches );
|
1654 |
|
1655 |
+
if ( is_array($matches)
|
1656 |
+
&& array_key_exists( 2, $matches ) && array_key_exists( 5, $matches )
|
1657 |
+
&& ( in_array( 'KGVID', $matches[2] ) || in_array( 'FMP', $matches[2] ) )
|
1658 |
+
) { //if KGVID or FMP shortcode is in posts on this page.
|
1659 |
|
1660 |
+
if ( isset($matches) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1661 |
|
1662 |
+
$first_key = array_search('KGVID', $matches[2]);
|
1663 |
+
if ( $first_key === false ) { $first_key = array_search('FMP', $matches[2]); }
|
1664 |
|
1665 |
+
if ( $first_key !== false ) {
|
|
|
1666 |
|
1667 |
+
$attributes = array();
|
1668 |
+
$url = "";
|
1669 |
|
1670 |
+
if ( array_key_exists( 3, $matches ) ) {
|
1671 |
+
$attributes = shortcode_parse_atts($matches[3][$first_key]);
|
1672 |
+
}
|
1673 |
|
1674 |
+
if ( !empty($matches[5][$first_key]) ) { //there's a URL
|
|
|
|
|
1675 |
|
1676 |
+
$url = $matches[5][$first_key];
|
1677 |
+
$attributes['id'] = kgvid_url_to_id($matches[5][$first_key]);
|
1678 |
|
1679 |
+
}//if there's a URL
|
|
|
1680 |
|
1681 |
+
elseif ( is_array($attributes) && array_key_exists( 'id', $attributes ) ) {
|
1682 |
+
$url = wp_get_attachment_url($attributes['id']);
|
1683 |
+
}//if there's no URL but there's an ID attribute
|
1684 |
|
1685 |
+
elseif ( ( is_array($attributes) && !array_key_exists( 'id', $attributes ) )
|
1686 |
+
|| empty($attributes)
|
1687 |
+
) {
|
1688 |
|
1689 |
+
$post_id = $post->ID;
|
|
|
|
|
1690 |
|
1691 |
+
$args = array(
|
1692 |
+
'numberposts' => 1,
|
1693 |
+
'post_mime_type' => 'video',
|
1694 |
+
'post_parent' => $post_id,
|
1695 |
+
'post_status' => null,
|
1696 |
+
'post_type' => 'attachment'
|
1697 |
+
);
|
1698 |
+
$video_attachment = get_posts($args);
|
1699 |
|
1700 |
+
if ( $video_attachment ) {
|
1701 |
+
$attributes['id'] = $video_attachment[0]->ID;
|
1702 |
+
$url = wp_get_attachment_url($attributes['id']);
|
1703 |
+
}
|
|
|
|
|
|
|
|
|
1704 |
|
1705 |
+
}//if no URL or ID attribute
|
|
|
|
|
|
|
1706 |
|
1707 |
+
}//if there's a KGVID shortcode in the post
|
1708 |
+
}//if there's a shortcode in the post
|
1709 |
+
elseif ( is_attachment() ) {
|
1710 |
+
$attributes['id'] = $post->ID;
|
1711 |
+
$attributes['url'] = wp_get_attachment_url($post->ID);
|
1712 |
+
}
|
|
|
|
|
1713 |
|
1714 |
+
if ( array_key_exists( 'id', $attributes ) ) {
|
1715 |
+
|
1716 |
+
$kgvid_postmeta = kgvid_get_attachment_meta($attributes['id']);
|
1717 |
+
$kgvid_postmeta['poster'] = get_post_meta($attributes['id'], "_kgflashmediaplayer-poster", true);
|
1718 |
+
$dimensions = kgvid_set_video_dimensions($attributes['id']);
|
1719 |
+
$attributes = array_merge($dimensions, array_filter($kgvid_postmeta), $attributes);
|
1720 |
+
|
1721 |
+
}
|
1722 |
+
|
1723 |
+
}
|
1724 |
+
|
1725 |
+
$attributes['url'] = $url;
|
1726 |
+
return $attributes;
|
1727 |
+
|
1728 |
+
}
|
1729 |
+
|
1730 |
+
function kgvid_video_embed_print_scripts() {
|
1731 |
+
|
1732 |
+
global $wp_query;
|
1733 |
+
global $wpdb;
|
1734 |
+
global $wp_version;
|
1735 |
+
$posts = $wp_query->posts;
|
1736 |
+
$pattern = get_shortcode_regex();
|
1737 |
+
$options = kgvid_get_options();
|
1738 |
+
|
1739 |
+
//echo '<script type="text/javascript">document.createElement(\'video\');document.createElement(\'audio\');</script>'."\n";
|
1740 |
|
1741 |
+
if ( !empty($posts) && is_array($posts) ) {
|
1742 |
+
foreach ( $posts as $post ) {
|
1743 |
+
$first_embedded_video = kgvid_get_first_embedded_video( $post );
|
1744 |
+
if ( !empty($first_embedded_video['url']) ) { //if KGVID or FMP shortcode is in posts on this page.
|
1745 |
|
1746 |
+
if ( $options['open_graph'] == "on" ) {
|
1747 |
+
|
1748 |
+
remove_action('wp_head','jetpack_og_tags');
|
1749 |
+
echo '<meta property="og:url" content="'.esc_attr(get_permalink($post)).'" />'."\n";
|
1750 |
+
echo '<meta property="og:title" content="'.esc_attr(get_the_title($post)).'" />'."\n";
|
1751 |
+
echo '<meta property="og:description" content="'.esc_attr(kgvid_generate_video_description($first_embedded_video, $post)).'" />'."\n";
|
1752 |
+
echo '<meta property="og:video" content="'.$first_embedded_video['url'].'" />'."\n";
|
1753 |
+
$secure_url = str_replace('http://', 'https://', $first_embedded_video['url']);
|
1754 |
echo '<meta property="og:video:secure_url" content="'.$secure_url.'" />'."\n";
|
1755 |
+
$mime_type_check = wp_check_filetype($first_embedded_video['url']);
|
1756 |
echo '<meta property="og:video:type" content="'.$mime_type_check['type'].'" />'."\n";
|
1757 |
|
1758 |
+
if ( array_key_exists( 'width', $first_embedded_video ) ) {
|
1759 |
+
echo '<meta property="og:video:width" content="'.$first_embedded_video['width'].'" />'."\n";
|
1760 |
+
if ( array_key_exists( 'height', $first_embedded_video ) ) {
|
1761 |
+
echo '<meta property="og:video:height" content="'.$first_embedded_video['height'].'" />'."\n";
|
1762 |
}
|
1763 |
}
|
|
|
1764 |
|
1765 |
+
if ( array_key_exists( 'poster', $first_embedded_video) ) {
|
1766 |
+
echo '<meta property="og:image" content="'.$first_embedded_video['poster'].'" />'."\n";
|
1767 |
+
if ( array_key_exists( 'width', $first_embedded_video ) ) {
|
1768 |
+
echo '<meta property="og:image:width" content="'.$first_embedded_video['width'].'" />'."\n";
|
1769 |
+
if ( array_key_exists( 'height', $first_embedded_video ) ) {
|
1770 |
+
echo '<meta property="og:image:height" content="'.$first_embedded_video['height'].'" />'."\n";
|
1771 |
+
}
|
1772 |
+
}
|
1773 |
+
}
|
1774 |
+
|
1775 |
+
}
|
1776 |
|
1777 |
+
if ( $options['twitter_card'] == "on" && array_key_exists('id', $first_embedded_video) && !empty($first_embedded_video['id']) ) {
|
|
|
|
|
1778 |
|
1779 |
+
add_filter( 'jetpack_disable_twitter_cards', '__return_true', 99 );
|
1780 |
|
1781 |
+
echo '<meta name="twitter:card" content="player">'."\n";
|
1782 |
+
if ( !empty($options['twitter_username']) ) { echo '<meta name="twitter:site" content="@'.esc_attr($options['twitter_username']).'">'."\n"; }
|
1783 |
+
echo '<meta name="twitter:title" content="'.esc_attr($post->post_title).'">'."\n";
|
1784 |
+
echo '<meta name="twitter:description" content="'.substr(esc_attr(kgvid_generate_video_description($first_embedded_video, $post)), 0, 200).'">'."\n";
|
1785 |
+
if ( array_key_exists('poster', $first_embedded_video) ) {
|
1786 |
+
echo '<meta name="twitter:image" content="'.esc_attr(str_replace('http://', 'https://', $first_embedded_video['poster'])).'">'."\n";
|
1787 |
+
}
|
1788 |
+
echo '<meta name="twitter:player" content="'.esc_attr(str_replace('http://', 'https://', get_attachment_link($first_embedded_video['id']))).'?kgvid_video_embed%5Benable%5D=true'.'">'."\n";
|
1789 |
+
if ( array_key_exists( 'width', $first_embedded_video ) ) {
|
1790 |
+
echo '<meta name="twitter:player:width" content="'.esc_attr($first_embedded_video['width']).'">'."\n";
|
1791 |
+
}
|
1792 |
+
if ( array_key_exists( 'height', $first_embedded_video ) ) {
|
1793 |
+
echo '<meta name="twitter:player:height" content="'.esc_attr($first_embedded_video['height']).'">'."\n";
|
1794 |
+
}
|
1795 |
|
1796 |
+
$encodevideo_info = kgvid_encodevideo_info($first_embedded_video['url'], $first_embedded_video['id']);
|
1797 |
+
$twitter_stream = false;
|
1798 |
+
if ( array_key_exists('mobile', $encodevideo_info) && $encodevideo_info['mobile']['exists'] ) {
|
1799 |
+
$twitter_stream = $encodevideo_info['mobile']['url'];
|
1800 |
}
|
1801 |
+
elseif ( get_post_mime_type($first_embedded_video['id']) == 'video/mp4' ) {
|
1802 |
+
$twitter_stream = $first_embedded_video['url'];
|
1803 |
+
}
|
1804 |
+
if ( $twitter_stream ) {
|
1805 |
+
echo '<meta name="twitter:player:stream" content="'.esc_attr(str_replace('http://', 'https://', $twitter_stream)).'">'."\n";
|
1806 |
+
echo '<meta name="twitter:player:stream:content_type" content="video/mp4; codecs="avc1.42E01E1, mp4a.40.2"">'."\n";
|
1807 |
+
}
|
1808 |
+
|
1809 |
+
|
1810 |
+
}
|
1811 |
+
|
1812 |
+
if ( $wp_version < 4.4 && array_key_exists( 'id', $first_embedded_video ) && $options['oembed_provider'] == "on" && is_singular() ) {
|
1813 |
+
|
1814 |
+
echo '<link rel="alternate" type="application/json+oembed" href="' . site_url('/?kgvid_video_embed[oembed]=json&kgvid_video_embed[post_id]=' .$first_embedded_video['id']).'" />'."\n";
|
1815 |
+
echo '<link rel="alternate" type="application/xml+oembed" href="' . site_url('/?kgvid_video_embed[oembed]=xml&kgvid_video_embed[post_id]='.$first_embedded_video['id']).'" />'."\n";
|
1816 |
|
1817 |
}
|
1818 |
|
1823 |
}//end if posts
|
1824 |
|
1825 |
}
|
1826 |
+
add_action('wp_head', 'kgvid_video_embed_print_scripts', 9 );
|
1827 |
+
|
1828 |
+
function kgvid_change_oembed_data( $data, $post, $width, $height ) {
|
1829 |
+
|
1830 |
+
$options = kgvid_get_options();
|
1831 |
+
|
1832 |
+
$first_embedded_video = kgvid_get_first_embedded_video( $post );
|
1833 |
+
|
1834 |
+
if ( !empty($data) && !empty($first_embedded_video['url']) && $options['oembed_provider'] == "on" ) {
|
1835 |
+
|
1836 |
+
$data['type'] = 'video';
|
1837 |
+
|
1838 |
+
if ( !empty($first_embedded_video['poster']) ) { $data['thumbnail_url'] = $first_embedded_video['poster']; }
|
1839 |
+
|
1840 |
+
}
|
1841 |
+
|
1842 |
+
return apply_filters('kgvid_change_oembed_data', $data, $post, $width, $height );
|
1843 |
+
|
1844 |
+
}
|
1845 |
+
if ( function_exists('get_oembed_response_data') ) { add_filter( 'oembed_response_data', 'kgvid_change_oembed_data', 11, 4 ); }
|
1846 |
+
|
1847 |
+
function kgvid_change_oembed_iframe_url ( $embed_url, $post ) {
|
1848 |
+
|
1849 |
+
$options = kgvid_get_options();
|
1850 |
+
|
1851 |
+
if ( $options['oembed_provider'] == "on" ) {
|
1852 |
+
|
1853 |
+
$first_embedded_video = kgvid_get_first_embedded_video( $post );
|
1854 |
+
|
1855 |
+
if ( array_key_exists( 'id', $first_embedded_video ) ) {
|
1856 |
+
|
1857 |
+
$embed_url = site_url('/')."?attachment_id=".$first_embedded_video['id']."&kgvid_video_embed[enable]=true";
|
1858 |
+
|
1859 |
+
}
|
1860 |
+
|
1861 |
+
}
|
1862 |
+
|
1863 |
+
return apply_filters('kgvid_change_oembed_iframe_url', $embed_url, $post);
|
1864 |
+
|
1865 |
+
}
|
1866 |
+
if ( function_exists('get_post_embed_url') ) { add_filter( 'post_embed_url', 'kgvid_change_oembed_iframe_url', 11, 2 ); } //added in WP version 4.4
|
1867 |
+
|
1868 |
+
function kgvid_change_oembed_html($output, $post, $width, $height) {
|
1869 |
+
|
1870 |
+
$output = preg_replace('/<blockquote(.*)<\/script>/s', '', $output);
|
1871 |
+
|
1872 |
+
return $output;
|
1873 |
+
|
1874 |
+
}
|
1875 |
+
if ( function_exists('get_post_embed_html') ) { add_filter( 'embed_html', 'kgvid_change_oembed_html', 11, 4 ); } //added in WP version 4.4
|
1876 |
+
|
1877 |
+
/* function kgvid_replace_oembed_content($template) {
|
1878 |
+
|
1879 |
+
$options = kgvid_get_options();
|
1880 |
+
|
1881 |
+
if ( $options['oembed_provider'] == "on" ) {
|
1882 |
+
|
1883 |
+
global $post;
|
1884 |
+
if ( $post ) { $first_embedded_video = kgvid_get_first_embedded_video( $post ); }
|
1885 |
+
if ( $first_embedded_video && !empty($first_embedded_video['id']) && basename($template) == 'embed.php' ) {
|
1886 |
+
$template = plugin_dir_path( __FILE__ ) . 'includes/embed.php';
|
1887 |
+
}
|
1888 |
+
}
|
1889 |
+
|
1890 |
+
return $template;
|
1891 |
+
|
1892 |
+
}
|
1893 |
+
add_filter( 'template_include', 'kgvid_replace_oembed_content', 99 ); */
|
1894 |
|
1895 |
function kgvid_enqueue_shortcode_scripts() {
|
1896 |
|
1898 |
|
1899 |
if ( $options['embed_method'] == "Video.js" || $options['embed_method'] == "Strobe Media Playback" ) {
|
1900 |
wp_enqueue_script( 'video-quality-selector', plugins_url("", __FILE__).'/video-js/video-quality-selector.js', array('video-js'), $options['version'], true );
|
1901 |
+
wp_enqueue_script( 'video-js', plugins_url("", __FILE__).'/video-js/video.js', '', '5.5.3', true );
|
1902 |
add_action('wp_footer', 'kgvid_print_videojs_footer', 99);
|
1903 |
}
|
1904 |
|
1906 |
wp_enqueue_script( 'swfobject' );
|
1907 |
}
|
1908 |
|
1909 |
+
if ( !wp_script_is('kgvid_video_embed', 'enqueued') ) {
|
1910 |
|
1911 |
+
wp_enqueue_script( 'kgvid_video_embed', plugins_url("/js/kgvid_video_embed.js", __FILE__), array('jquery'), $options['version'], true );
|
1912 |
+
|
1913 |
+
wp_localize_script( 'kgvid_video_embed', 'kgvidL10n_frontend', array(
|
1914 |
+
'ajaxurl' => admin_url( 'admin-ajax.php', is_ssl() ? 'admin' : 'http' ),
|
1915 |
+
'ajax_nonce' => wp_create_nonce('kgvid_frontend_nonce'),
|
1916 |
+
'playstart' => _x("Play Start", 'noun for Google Analytics event', 'video-embed-thumbnail-generator'),
|
1917 |
+
'completeview' => _x("Complete View", 'noun for Google Analytics event', 'video-embed-thumbnail-generator'),
|
1918 |
+
'next' => _x("Next", 'button text to play next video', 'video-embed-thumbnail-generator'),
|
1919 |
+
'previous' => _x("Previous", 'button text to play previous video', 'video-embed-thumbnail-generator'),
|
1920 |
+
'quality' => _x("Quality", 'text above list of video resolutions', 'video-embed-thumbnail-generator')
|
1921 |
+
) );
|
1922 |
+
|
1923 |
+
}
|
1924 |
|
1925 |
}
|
1926 |
|
1927 |
function kgvid_print_videojs_footer() { //called by the shortcode if Video.js is used
|
1928 |
|
1929 |
+
echo '<script type="text/javascript">if(typeof videojs !== "undefined") { videojs.options.flash.swf = "'.plugins_url("", __FILE__).'/video-js/video-js.swf?5.0.1"; }</script>'."\n";
|
1930 |
|
1931 |
}
|
1932 |
|
1991 |
$below_video = 0;
|
1992 |
if ( !empty($query_atts['caption']) ) { $below_video = 1; }
|
1993 |
$kgvid_postmeta = kgvid_get_attachment_meta( $attachment->ID );
|
|
|
1994 |
|
1995 |
$play_button_html = '';
|
1996 |
|
2026 |
if ( $kgvid_postmeta['downloadlink'] == "on" ) { $atts['downloadlink'] = "true"; }
|
2027 |
|
2028 |
$popup_atts = kgvid_shortcode_atts($atts);
|
2029 |
+
if ( in_the_loop() ) { $post_id = get_the_ID(); }
|
2030 |
+
else { $post_id = 1; }
|
2031 |
$content = '';
|
2032 |
+
$popup_code = kgvid_single_video_code($popup_atts, $atts, $content, $post_id);
|
2033 |
|
2034 |
preg_match('/data-kgvid_video_vars=.*? /', $popup_code, $video_vars);
|
2035 |
$popup_code = str_replace(array("\r", "\n", "\t", $video_vars[0]), "", $popup_code);
|
2067 |
|
2068 |
} //if there are attachments
|
2069 |
|
2070 |
+
return apply_filters('kgvid_gallery_page', $code, $kgvid_video_id);
|
2071 |
|
2072 |
}
|
2073 |
|
2087 |
add_action( 'wp_ajax_kgvid_switch_gallery_page', 'kgvid_switch_gallery_page' ); // ajax for logged in users
|
2088 |
add_action( 'wp_ajax_nopriv_kgvid_switch_gallery_page', 'kgvid_switch_gallery_page' ); // ajax for not logged in users
|
2089 |
|
2090 |
+
function kgvid_generate_video_description($query_atts, $post = false) {
|
2091 |
+
|
2092 |
+
if ( array_key_exists('description', $query_atts) && !empty($query_atts['description']) && $query_atts['description'] != "false" ) {
|
2093 |
+
$description = $query_atts['description'];
|
2094 |
+
}
|
2095 |
+
elseif ( array_key_exists('description', $query_atts) && !empty($query_atts['caption']) && $query_atts['caption'] != "false" ) {
|
2096 |
+
$description = $query_atts['caption'];
|
2097 |
+
}
|
2098 |
+
elseif ( $post != false || ( in_the_loop() && !is_attachment() ) ) {
|
2099 |
+
|
2100 |
+
if ( $post == false ) { global $post; }
|
2101 |
+
|
2102 |
+
$yoast_meta = get_post_meta( $post->ID, '_yoast_wpseo_metadesc', true ); //try Yoast SEO meta description tag
|
2103 |
+
$aioseop_meta = get_post_meta( $post->ID, '_aioseop_description', true ); //try All in one SEO Pack meta description tag
|
2104 |
+
|
2105 |
+
if ( !empty($yoast_meta) ) {
|
2106 |
+
$description = $yoast_meta;
|
2107 |
+
}
|
2108 |
+
elseif ( !empty($aioseop_meta) ) {
|
2109 |
+
$description = $aioseop_meta;
|
2110 |
+
}
|
2111 |
+
elseif ( !empty($post->post_excerpt) ) {
|
2112 |
+
$description = $post->post_excerpt;
|
2113 |
+
}
|
2114 |
+
else {
|
2115 |
+
$description = wp_trim_words(strip_tags(strip_shortcodes($post->post_content)));
|
2116 |
+
}
|
2117 |
+
}
|
2118 |
+
if ( empty($description) ) { $description = __('Video', 'video-embed-thumbnail-generator'); }
|
2119 |
+
|
2120 |
+
return apply_filters('kgvid_generate_video_description', $description, $query_atts);
|
2121 |
+
|
2122 |
+
}
|
2123 |
+
|
2124 |
+
function kgvid_single_video_code($query_atts, $atts, $content, $post_id) {
|
2125 |
|
2126 |
global $content_width;
|
2127 |
$content_width_save = $content_width;
|
2133 |
$code = "";
|
2134 |
$id_array = array();
|
2135 |
$video_formats = kgvid_video_formats();
|
2136 |
+
$compatible = array("flv", "f4v", "mp4", "mov", "m4v", "ogv", "ogg", "webm");
|
2137 |
+
$h264compatible = array("mp4", "mov", "m4v");
|
2138 |
|
2139 |
if ( empty($content) ) {
|
2140 |
if ( !empty($query_atts["id"]) ) {
|
2141 |
$id_array[0] = $query_atts["id"];
|
2142 |
}
|
2143 |
+
elseif ( $post_id != 1 ) {
|
2144 |
$args = array(
|
2145 |
'numberposts' => $query_atts['videos'],
|
2146 |
'post_mime_type' => 'video',
|
2147 |
+
'post_parent' => $post_id,
|
2148 |
'post_status' => null,
|
2149 |
'post_type' => 'attachment',
|
2150 |
'orderby' => $query_atts['orderby'],
|
2179 |
$mp4already = false;
|
2180 |
$dimensions = array();
|
2181 |
|
2182 |
+
if ( $query_atts['gallery'] == 'false' && $kgvid_video_id === 0 && $post_id != 1 ) {
|
2183 |
+
$first_embedded_video['atts'] = $atts;
|
2184 |
+
$first_embedded_video['content'] = $content;
|
2185 |
+
$first_embedded_video_meta = get_post_meta($post_id, '_kgvid_first_embedded_video', true);
|
2186 |
+
if ( $first_embedded_video_meta != $first_embedded_video ) {
|
2187 |
+
update_post_meta($post_id, '_kgvid_first_embedded_video', $first_embedded_video);
|
2188 |
+
}
|
2189 |
+
}
|
2190 |
|
2191 |
if ( !empty($id) ) { //if the video is an attachment in the WordPress db
|
2192 |
|
2226 |
$stats_title = $query_atts['title'];
|
2227 |
}
|
2228 |
else { $stats_title = $attachment_info->post_title; }
|
2229 |
+
if ( empty($query_atts['caption']) ) { $query_atts['caption'] = trim($attachment_info->post_excerpt); }
|
2230 |
+
if ( empty($query_atts['description']) ) { $query_atts['description'] = trim($attachment_info->post_content); }
|
2231 |
|
2232 |
$countable = true;
|
2233 |
}
|
2234 |
else { //video is not in the database
|
2235 |
|
2236 |
+
$encodevideo_info = kgvid_encodevideo_info($content, $post_id); //send the id of the post the video's embedded in
|
2237 |
if ( $query_atts['title'] == "true" ) {
|
2238 |
$query_atts['title'] = "false";
|
2239 |
}
|
2293 |
}
|
2294 |
|
2295 |
if ( ( $query_atts['title'] != "false" && $options['embed_method'] != "JW Player" )
|
2296 |
+
|| $query_atts['embedcode'] != "false"
|
2297 |
+
|| $query_atts['downloadlink'] == "true"
|
2298 |
+
|| $options['twitter_button'] == 'on'
|
2299 |
+
|| $options['facebook_button'] == 'on'
|
2300 |
+
) { //generate content overlaid on video
|
2301 |
$kgvid_meta = true;
|
2302 |
}
|
2303 |
else { $kgvid_meta = false; }
|
2317 |
'endofvideooverlay' => $query_atts['endofvideooverlay'],
|
2318 |
'resize' => $query_atts['resize'],
|
2319 |
'auto_res' => $query_atts['auto_res'],
|
2320 |
+
'pixel_ratio' => $query_atts['pixel_ratio'],
|
2321 |
'right_click' => $query_atts['right_click']
|
2322 |
);
|
2323 |
|
2324 |
+
if ( $options['embed_method'] == "Video.js" || $options['embed_method'] == "Strobe Media Playback" ) {
|
2325 |
+
|
2326 |
+
$locale = get_locale();
|
2327 |
+
|
2328 |
+
$enable_resolutions_plugin = false;
|
2329 |
+
$x = 20;
|
2330 |
+
$h264_resolutions = array();
|
2331 |
+
|
2332 |
+
foreach ($video_formats as $format => $format_stats) {
|
2333 |
+
if ( $format != "original" && $encodevideo_info[$format]["url"] == $content ) { unset($sources['original']); }
|
2334 |
+
if ( $encodevideo_info[$format]["exists"] ) {
|
2335 |
+
|
2336 |
+
if ( array_key_exists('height', $encodevideo_info[$format]) && $format_stats['type'] == 'h264' ) {
|
2337 |
+
$source_key = $encodevideo_info[$format]['height'];
|
2338 |
+
$format_stats['label'] = $encodevideo_info[$format]['height'].'p';
|
2339 |
+
}
|
2340 |
+
else { $source_key = $x; }
|
2341 |
+
|
2342 |
+
$sources[$source_key] = "\t\t\t\t\t".'<source src="'.esc_attr($encodevideo_info[$format]["url"]).'?id='.$kgvid_video_id.'" type="'.$format_stats["mime"].'"';
|
2343 |
+
if ( $format == 'vp9' ) { $sources[$source_key] .= ' codecs="vp9, vorbis"'; }
|
2344 |
+
if ( $format_stats['type'] == 'h264' ) {
|
2345 |
+
$sources[$source_key] .= ' data-res="'.$format_stats['label'].'"';
|
2346 |
+
if ( $mp4already ) { //there is more than one resolution available
|
2347 |
+
$enable_resolutions_plugin = true;
|
2348 |
+
}
|
2349 |
+
$mp4already = true;
|
2350 |
+
$h264_resolutions[] = $format_stats['label'];
|
2351 |
+
}
|
2352 |
+
else { $sources[$source_key] .= ' data-res="'.$format_stats['name'].'"'; }
|
2353 |
+
$sources[$source_key] .= '>'."\n";
|
2354 |
+
}
|
2355 |
+
$x--;
|
2356 |
+
}
|
2357 |
+
krsort($sources);
|
2358 |
+
natsort($h264_resolutions);
|
2359 |
+
|
2360 |
+
$video_variables['nativecontrolsfortouch'] = $query_atts['nativecontrolsfortouch'];
|
2361 |
+
$video_variables['locale'] = substr($locale, 0, 2);
|
2362 |
+
|
2363 |
+
if ( $enable_resolutions_plugin ) {
|
2364 |
+
$video_variables['enable_resolutions_plugin'] = "true";
|
2365 |
+
if ( $query_atts["auto_res"] == "highest" ) { $video_variables['default_res'] = end($h264_resolutions); }
|
2366 |
+
if ( $query_atts["auto_res"] == "lowest" ) { $video_variables['default_res'] = reset($h264_resolutions); }
|
2367 |
+
elseif ( in_array($query_atts["auto_res"], $h264_resolutions) ) { $video_variables['default_res'] = $query_atts["auto_res"]; }
|
2368 |
+
else { $video_variables['default_res'] = false; }
|
2369 |
+
}
|
2370 |
+
else { $video_variables['enable_resolutions_plugin'] = false; }
|
2371 |
+
|
2372 |
+
}
|
2373 |
+
|
2374 |
if ( $options['embed_method'] == "Strobe Media Playback" && $flash_settings['flash_source_found'] ) {
|
2375 |
|
2376 |
$video_variables['swfurl'] = plugins_url('', __FILE__)."/flash/StrobeMediaPlayback.swf";
|
2381 |
} //if Strobe Media
|
2382 |
|
2383 |
$code .= '<div id="kgvid_'.$div_suffix.'_wrapper" class="kgvid_wrapper'.$aligncode.'">'."\n\t\t\t";
|
2384 |
+
$code .= '<div id="video_'.$div_suffix.'_div" class="fitvidsignore kgvid_videodiv" data-id="'.$div_suffix.'" data-kgvid_video_vars="'.esc_attr(json_encode($video_variables)).'" ';
|
2385 |
+
if ( $query_atts["schema"] == "true" ) {
|
2386 |
+
$code .= 'itemprop="video" itemscope itemtype="https://schema.org/VideoObject">';
|
2387 |
+
if ( $query_atts["poster"] != '' ) { $code .= '<meta itemprop="thumbnailUrl" content="'.esc_attr($query_atts["poster"]).'" />'; }
|
2388 |
+
if ( !empty($id) && $options['embeddable'] == "on" ) { $schema_embedURL = site_url('/')."?attachment_id=".$id."&kgvid_video_embed[enable]=true"; }
|
2389 |
+
else { $schema_embedURL = $content; }
|
2390 |
+
$code .= '<meta itemprop="embedUrl" content="'.esc_attr($schema_embedURL).'" />';
|
2391 |
+
$code .= '<meta itemprop="contentUrl" content="'.$content.'" />';
|
2392 |
+
|
2393 |
+
if ( !empty($query_atts['title']) && $query_atts['title'] != "false" ) { $code .= '<meta itemprop="name" content="'.esc_attr($query_atts['title']).'" />'; }
|
2394 |
+
elseif ( in_the_loop() && !is_attachment() ) {
|
2395 |
+
global $post;
|
2396 |
+
if ( !empty($post->post_title) ) { $code .= '<meta itemprop="name" content="'.esc_attr($post->post_title).'" />'; }
|
|
|
|
|
2397 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2398 |
|
2399 |
+
$description = kgvid_generate_video_description($query_atts);
|
2400 |
+
|
2401 |
+
$code .= '<meta itemprop="description" content="'.esc_attr($description).'" />';
|
2402 |
+
|
2403 |
+
if ( !empty($id) ) { $upload_date = get_the_date('c', $id); }
|
2404 |
+
elseif ( $post_id != 1 ) { $upload_date = get_the_date('c', $post_id); }
|
2405 |
+
else { $upload_date = current_time('c'); }
|
2406 |
+
$code .= '<meta itemprop="uploadDate" content="'.esc_attr($upload_date).'" />';
|
2407 |
+
}
|
2408 |
+
else { $code .= '>'; } //schema disabled
|
2409 |
|
2410 |
$track_keys = array('kind', 'srclang', 'src', 'label', 'default');
|
2411 |
if ( !isset($kgvid_postmeta) || ( is_array($kgvid_postmeta) && !is_array($kgvid_postmeta['track']) ) ) {
|
2422 |
foreach ( $track_attribute as $attribute => $value ) {
|
2423 |
if ( empty($value) ) { $track_attribute[$attribute] = $query_atts['track_'.$attribute]; }
|
2424 |
}
|
2425 |
+
|
2426 |
if ( $options['embed_method'] == "WordPress Default" && $track_attribute['kind'] == 'captions' ) { $track_attribute['kind'] = 'subtitles'; }
|
2427 |
+
$track_code .= "<track id='".$div_suffix."_text_".$track."' kind='".esc_attr($track_attribute['kind'])."' src='".esc_attr($track_attribute['src'])."' srclang='".esc_attr($track_attribute['srclang'])."' label='".esc_attr($track_attribute['label'])."' ".$track_attribute['default']." />";
|
2428 |
}
|
2429 |
}
|
2430 |
|
2431 |
if ( $options['embed_method'] == "WordPress Default" ) {
|
2432 |
+
|
2433 |
+
$enable_resolutions_plugin = false;
|
2434 |
+
$x = 20;
|
2435 |
+
$h264_resolutions = array();
|
2436 |
$attr = array();
|
2437 |
+
|
2438 |
foreach ($video_formats as $format => $format_stats) {
|
2439 |
+
|
2440 |
if ( $format != "original" && $encodevideo_info[$format]["url"] == $content ) { unset($sources['original']); }
|
2441 |
+
|
2442 |
if ( $encodevideo_info[$format]["exists"] ) {
|
2443 |
+
|
2444 |
+
if ( array_key_exists('height', $encodevideo_info[$format]) && $format_stats['type'] == 'h264' ) {
|
2445 |
+
$source_key = $encodevideo_info[$format]['height'];
|
2446 |
+
$format_stats['label'] = $encodevideo_info[$format]['height'].'p';
|
2447 |
+
}
|
2448 |
+
else { $source_key = $x; }
|
2449 |
+
|
2450 |
+
$sources[$source_key] = '<source src="'.esc_attr($encodevideo_info[$format]["url"]).'?id='.$kgvid_video_id.'" type="'.$format_stats["mime"].'"';
|
2451 |
+
if ( $format == 'vp9' ) { $sources[$source_key] .= ' codecs="vp9, vorbis"'; }
|
2452 |
+
if ( $format_stats['type'] == 'h264' ) {
|
2453 |
+
$sources[$source_key] .= ' data-res="'.$format_stats['label'].'"';
|
2454 |
+
if ( $mp4already ) { //there is more than one resolution available
|
2455 |
+
$enable_resolutions_plugin = true;
|
2456 |
+
}
|
2457 |
+
$h264_resolutions[] = $format_stats['label'];
|
2458 |
+
}
|
2459 |
+
else { $sources[$source_key] .= ' data-res="'.$format_stats['name'].'"'; }
|
2460 |
+
|
2461 |
+
if ( $format_stats['type'] != "h264" || !$mp4already ) { //build wp_video_shortcode attributes. Sources will be replaced later
|
2462 |
$shortcode_type = wp_check_filetype( $encodevideo_info[$format]["url"], wp_get_mime_types() );
|
2463 |
$attr[$shortcode_type['ext']] = $encodevideo_info[$format]["url"];
|
2464 |
+
if ( $format_stats['type'] == "h264" ) {
|
2465 |
$mp4already = true;
|
2466 |
}
|
2467 |
}
|
|
|
2468 |
}
|
2469 |
+
$x--;
|
2470 |
+
}
|
2471 |
+
krsort($sources);
|
2472 |
+
natsort($h264_resolutions);
|
2473 |
+
|
2474 |
+
if ( $enable_resolutions_plugin ) {
|
2475 |
+
|
2476 |
+
$default_key = false;
|
2477 |
+
|
2478 |
+
if ( $query_atts["auto_res"] == "highest" ) {
|
2479 |
+
$res_label = end($h264_resolutions);
|
2480 |
+
}
|
2481 |
+
elseif ( $query_atts["auto_res"] == "lowest" ) {
|
2482 |
+
$res_label = reset($h264_resolutions);
|
2483 |
+
}
|
2484 |
+
elseif ( in_array($query_atts["auto_res"], $h264_resolutions) ) {
|
2485 |
+
$res_label = $query_atts["auto_res"];
|
2486 |
+
}
|
2487 |
+
else { $res_label = false; }
|
2488 |
+
|
2489 |
+
foreach ( $sources as $key => $source ) {
|
2490 |
+
if ( strpos($source, 'data-res="'.$res_label.'"') !== false ) { $default_key = $key; }
|
2491 |
+
}
|
2492 |
+
|
2493 |
+
if ( $default_key !== false ) { $sources[$default_key] .= ' data-default_res="true"'; }
|
2494 |
+
|
2495 |
}
|
2496 |
|
2497 |
if ( $query_atts["poster"] != '' ) { $attr['poster'] = esc_attr($query_atts["poster"]); }
|
2501 |
$attr['width'] = $query_atts['width'];
|
2502 |
$attr['height'] = $query_atts['height'];
|
2503 |
|
2504 |
+
if ( $enable_resolutions_plugin && !wp_script_is('mejs_sourcechooser', 'enqueued') ) {
|
2505 |
+
wp_enqueue_script( 'mejs_sourcechooser', plugins_url( 'js/mep-feature-sourcechooser.js', __FILE__ ), array( 'mediaelement' ), $options['version'], true );
|
2506 |
+
wp_localize_script( 'wp-mediaelement', '_wpmejsSettings', array(
|
2507 |
+
'features' => array( 'playpause', 'progress', 'volume', 'tracks', 'sourcechooser', 'fullscreen' ),
|
2508 |
+
'pluginPath' => includes_url( 'js/mediaelement/', 'relative' ),
|
2509 |
+
'success' => 'kgvid_mejs_success'
|
2510 |
+
) );
|
2511 |
+
}
|
2512 |
+
elseif ( $kgvid_video_id === 0 ) {
|
2513 |
+
wp_localize_script( 'wp-mediaelement', '_wpmejsSettings', array(
|
2514 |
+
'features' => array( 'playpause', 'progress', 'volume', 'fullscreen' ),
|
2515 |
+
'pluginPath' => includes_url( 'js/mediaelement/', 'relative' ),
|
2516 |
+
'success' => 'kgvid_mejs_success'
|
2517 |
+
) );
|
2518 |
+
}
|
2519 |
+
|
2520 |
$content_width = $query_atts['width'];
|
2521 |
if ( function_exists('wp_video_shortcode') ) { $executed_shortcode = wp_video_shortcode($attr); }
|
2522 |
else { $executed_shortcode = 'WordPress video shortcode function does not exist.'; }
|
2523 |
$content_width = $content_width_save;
|
2524 |
+
|
2525 |
+
if ( $enable_resolutions_plugin ) {
|
2526 |
+
$executed_shortcode = preg_replace( '/<source .*<a /', implode(' />', $sources).'<a ', $executed_shortcode );
|
2527 |
}
|
2528 |
+
if ( !empty($track_code) ) {
|
2529 |
+
$executed_shortcode = preg_replace( '/<a /', $track_code.'<a ', $executed_shortcode );
|
|
|
2530 |
}
|
2531 |
+
|
2532 |
$code .= $executed_shortcode;
|
2533 |
}
|
2534 |
|
2574 |
if ( $query_atts["autoplay"] == 'true' ) { $jw_shortcode .= 'autostart="true" '; }
|
2575 |
if ( $query_atts["controlbar"] == 'none') { $jw_shortcode .= 'controls="false" '; }
|
2576 |
if ( $query_atts['title'] != "false" ) { $jw_shortcode .= ' title="'.$query_atts['title'].'" '; }
|
2577 |
+
if ( $query_atts['jw_player_id'] != "") {
|
2578 |
+
$jw_player_config = get_option('jwp6_player_config_'.$query_atts['jw_player_id']);
|
2579 |
+
if ( !empty($jw_player_config) ) { $jw_shortcode .= ' player="'.$query_atts['jw_player_id'].'" '; }
|
2580 |
}
|
2581 |
|
2582 |
if ( !empty($query_atts['custom_atts']) && is_array($query_atts['custom_atts']) ) {
|
2601 |
|
2602 |
if ( $options['embed_method'] == "Video.js" || $options['embed_method'] == "Strobe Media Playback" ) {
|
2603 |
|
2604 |
+
$code .= "\n\t\t\t\t".'<video id="video_'.$div_suffix.'" ';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2605 |
if ( $query_atts["loop"] == 'true') { $code .= 'loop '; }
|
2606 |
if ( $query_atts["autoplay"] == 'true') { $code .= 'autoplay '; }
|
2607 |
if ( $query_atts["controlbar"] != 'none') { $code .= 'controls '; }
|
2608 |
$code .= 'preload="'.$options['preload'].'" ';
|
2609 |
if ( $query_atts["poster"] != '' ) { $code .= 'poster="'.esc_attr($query_atts["poster"]).'" '; }
|
2610 |
$code .= 'width="'.$query_atts["width"].'" height="'.esc_attr($query_atts["height"]).'"';
|
|
|
2611 |
if ( $options['js_skin'] == "" ) { $options['js_skin'] = "vjs-default-skin"; }
|
2612 |
if ( is_array($atts) && array_key_exists('skin', $atts) ) {
|
2613 |
$options['js_skin'] = $atts['skin']; //allows user to set skin for individual videos using the skin="" attribute
|
2614 |
}
|
2615 |
+
$code .= ' class="fitvidsignore '.esc_attr('video-js '.$options['js_skin']).'">'."\n";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2616 |
|
2617 |
$code .= implode("", $sources); //add the <source> tags created earlier
|
2618 |
$code .= $track_code; //if there's a text track
|
2621 |
}
|
2622 |
$code .= "\t\t\t</div>\n";
|
2623 |
$show_views = false;
|
2624 |
+
if ( ( !empty($id) && $query_atts['view_count'] == "true" ) || !empty($query_atts['caption']) || $content == plugins_url('/images/sample-video-h264.mp4', __FILE__) ) { //generate content below the video
|
2625 |
if ( is_array($kgvid_postmeta) && array_key_exists('starts', $kgvid_postmeta) ) { $view_count = number_format(intval($kgvid_postmeta['starts'])); }
|
2626 |
else { $view_count = "0"; }
|
2627 |
if ( $content == plugins_url('/images/sample-video-h264.mp4', __FILE__) ) { $view_count = "XX"; }
|
2629 |
if ( !empty($query_atts['caption']) || $show_views || $query_atts['downloadlink'] == "true" ) {
|
2630 |
$code .= "\t\t\t".'<div class="kgvid_below_video" id="video_'.$div_suffix.'_below">';
|
2631 |
if ( $show_views ) { $code .= '<div class="kgvid-viewcount" id="video_'.$div_suffix.'_viewcount">'.sprintf( _n( '%s view', '%s views', intval(str_replace(',', '', $view_count)) , 'video-embed-thumbnail-generator'), $view_count ).'</div>'; }
|
2632 |
+
if ( !empty($query_atts['caption']) ) {
|
2633 |
+
$code .= '<div class="kgvid-caption" id="video_'.$div_suffix.'_caption">'.$query_atts['caption'].'</div>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2634 |
}
|
2635 |
$code .= '</div>';
|
2636 |
}
|
2637 |
}
|
2638 |
|
2639 |
if ( $kgvid_meta == true ) { //generate content overlaid on video
|
2640 |
+
$code .= "\t\t\t<div style=\"display:none;\" id=\"video_".$div_suffix."_meta\" class=\"kgvid_video_meta kgvid_video_meta_hover ";
|
|
|
|
|
|
|
|
|
|
|
|
|
2641 |
if ( $query_atts['title'] != "false" && $options['embed_method'] != "JW Player" ) {
|
2642 |
+
$show_title = true;
|
2643 |
+
$code .= "\">";
|
2644 |
+
}
|
2645 |
+
else {
|
2646 |
+
$show_title = false;
|
2647 |
+
if ( $options['embed_method'] == "JW Player" ) { $code .= "kgvid_jwplayer_meta "; }
|
2648 |
+
$code .= "kgvid_no_title_meta\">";
|
2649 |
+
} //no title
|
2650 |
+
|
2651 |
+
$code .= "\n\t\t\t\t<span class='kgvid_meta_icons'>";
|
2652 |
+
|
2653 |
+
if ( $query_atts['downloadlink'] == "true" ) {
|
2654 |
+
$forceable = false;
|
2655 |
+
if ( !empty($id) && $options['click_download'] == 'on' ) {
|
2656 |
+
$filepath = get_attached_file($id);
|
2657 |
+
if ( file_exists($filepath) ) {
|
2658 |
+
$forceable = true;
|
2659 |
+
$download_code = '<a href="'.site_url('/').'?attachment_id='.$id.'&kgvid_video_embed[download]=true" title="'.__('Click to download', 'video-embed-thumbnail-generator').'">';
|
2660 |
+
}
|
2661 |
+
}
|
2662 |
+
if ( !$forceable ) { $download_code = '<a href="'.$content.'" title="'.__('Right-click or ctrl-click to download', 'video-embed-thumbnail-generator').'">'; }
|
2663 |
+
$download_code .= '<span class="dashicons dashicons-download"></span></a>';
|
2664 |
+
}
|
2665 |
+
else { $download_code = ''; }
|
2666 |
+
|
2667 |
+
if ( $query_atts['embedcode'] != "false" || $options['twitter_button'] == 'on' || $options['facebook_button'] == 'on' ) {
|
2668 |
+
|
2669 |
+
$embed_code = "\t\t\t\t<span id='kgvid_".$div_suffix."_shareicon' class='dashicons dashicons-share' onclick='kgvid_share_icon_click(\"".$div_suffix."\");'></span>\n";
|
2670 |
+
$embed_code .= "\t\t\t\t<div id='click_trap_".$div_suffix."' class='kgvid_click_trap'></div><div id='video_".$div_suffix."_embed' class='kgvid_share_container";
|
2671 |
+
if ( $show_title == false ) { $embed_code .= " kgvid_no_title_meta"; }
|
2672 |
+
$embed_code .= "'><div class='kgvid_share_icons'>";
|
2673 |
+
if ( $query_atts['embedcode'] != "false" ) {
|
2674 |
+
if ( $query_atts['embedcode'] == "true" ) { $iframeurl = site_url('/')."?attachment_id=".$id."&kgvid_video_embed[enable]=true"; }
|
2675 |
+
else { $iframeurl = $query_atts['embedcode']; }
|
2676 |
+
$iframecode = "<iframe allowfullscreen src='".$iframeurl."' frameborder='0' scrolling='no' width='".esc_attr($query_atts['width'])."' height='".esc_attr($query_atts["height"])."'></iframe>";
|
2677 |
+
$iframecode = apply_filters('kgvid_embedcode', $iframecode, $iframeurl, $id, $query_atts);
|
2678 |
+
$embed_code .= "<span class='dashicons dashicons-editor-code'></span><span>"._x('Embed:', 'precedes code for embedding video', 'video-embed-thumbnail-generator')." </span><input type='text' value='".esc_attr($iframecode)."' onClick='this.select();'></span>";
|
2679 |
+
} //embed code
|
2680 |
+
|
2681 |
+
if ( $options['twitter_button'] == 'on' || $options['facebook_button'] == 'on' ) {
|
2682 |
+
|
2683 |
+
$embed_code .= "<div class='kgvid_social_icons'>";
|
2684 |
+
if ( in_the_loop() ) { $permalink = get_permalink(); }
|
2685 |
+
elseif ( !empty($id) ) { $permalink = get_attachment_link($id); }
|
2686 |
+
else { $permalink = $content; }
|
2687 |
+
|
2688 |
+
if ( $options['twitter_button'] == 'on' ) {
|
2689 |
+
$embed_code .= "<a href='https://twitter.com/share?text=".urlencode($query_atts['title'])."&url=".urlencode($permalink);
|
2690 |
+
if ( !empty($options['twitter_username']) ) { $embed_code .= "&via=".urlencode($options['twitter_username']); }
|
2691 |
+
$embed_code .= "' onclick='window.open(this.href, \"\", \"menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=260,width=600\");return false;'><span class='dashicons dashicons-twitter'></span></a>";
|
2692 |
+
}
|
2693 |
+
|
2694 |
+
if ( $options['facebook_button'] == 'on' ) {
|
2695 |
+
$embed_code .= " <a href='https://www.facebook.com/sharer/sharer.php?u=".urlencode($permalink)."' onclick='window.open(this.href, \"\", \"menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=260,width=600\");return false;'><span class='kgvid_facebook_icon_holder'><span class='dashicons dashicons-facebook'></span></span></a>";
|
2696 |
+
}
|
2697 |
+
|
2698 |
+
$embed_code .= "</div>";
|
2699 |
+
|
2700 |
+
}
|
2701 |
+
|
2702 |
+
$embed_code .= "</div></div>\n";
|
2703 |
+
}
|
2704 |
+
else { $embed_code = ''; }
|
2705 |
+
|
2706 |
+
if ( $options['embed_method'] != "JW Player" ) {
|
2707 |
+
$code .= $download_code.$embed_code;
|
2708 |
}
|
2709 |
+
else {
|
2710 |
+
$code .= $embed_code.$download_code;
|
2711 |
+
}
|
2712 |
+
|
2713 |
+
$code .= "</span>";
|
2714 |
+
if ( $show_title == true ) { $code .= "\n\t\t\t\t<span id='video_".$div_suffix."_title' class='kgvid_title'>".$query_atts['title']."</span>\n"; }
|
2715 |
+
$code .= "</div>\n";
|
2716 |
}
|
2717 |
|
2718 |
if ( !empty($query_atts["watermark"]) && $query_atts["watermark"] != "false" ) {
|
2767 |
|
2768 |
} //end id_array loop
|
2769 |
|
2770 |
+
return apply_filters('kgvid_single_video_code', $code, $query_atts, $atts, $content, $post_id);
|
2771 |
|
2772 |
}
|
2773 |
|
2775 |
|
2776 |
$options = kgvid_get_options();
|
2777 |
|
2778 |
+
if ( in_the_loop() ) { $post_id = get_the_ID(); }
|
2779 |
+
else { $post_id = 1; }
|
2780 |
|
2781 |
$default_atts = array(
|
2782 |
'id' => '',
|
2810 |
'gallery_order' => 'ASC',
|
2811 |
'gallery_exclude' => '',
|
2812 |
'gallery_include' => '',
|
2813 |
+
'gallery_id' => $post_id,
|
2814 |
'gallery_end' => $options['gallery_end'],
|
2815 |
'gallery_title' => $options['gallery_title'],
|
2816 |
'volume' => $options['volume'],
|
2825 |
'right_click' => $options['right_click'],
|
2826 |
'resize' => $options['resize'],
|
2827 |
'auto_res' => $options['auto_res'],
|
2828 |
+
'pixel_ratio' => $options['pixel_ratio'],
|
2829 |
+
'nativecontrolsfortouch' => $options['nativecontrolsfortouch'],
|
2830 |
+
'jw_player_id' => $options['jw_player_id'],
|
2831 |
+
'schema' => $options['schema'],
|
2832 |
'track_kind' => 'subtitles',
|
2833 |
'track_srclang' => substr(get_bloginfo('language'), 0, 2),
|
2834 |
'track_src' => '',
|
2865 |
"downloadlink",
|
2866 |
"mute",
|
2867 |
"fullwidth",
|
2868 |
+
"gallery_title",
|
2869 |
+
"nativecontrolsfortouch",
|
2870 |
+
"pixel_ratio",
|
2871 |
+
"schema"
|
2872 |
);
|
2873 |
foreach ( $checkbox_convert as $query ) {
|
2874 |
if ( $query_atts[$query] == "on" ) { $query_atts[$query] = "true"; }
|
2880 |
if ( $query_atts['orderby'] == 'menu_order' ) { $query_atts['orderby'] = 'menu_order ID'; }
|
2881 |
if ( $query_atts['track_default'] == 'true' ) { $query_atts['track_default'] = 'default'; }
|
2882 |
|
2883 |
+
return apply_filters('kgvid_shortcode_atts', $query_atts);
|
2884 |
|
2885 |
}
|
2886 |
|
2893 |
|
2894 |
kgvid_enqueue_shortcode_scripts();
|
2895 |
|
2896 |
+
if ( in_the_loop() ) { $post_id = get_the_ID(); }
|
2897 |
+
else { $post_id = 1; }
|
2898 |
|
2899 |
$query_atts = kgvid_shortcode_atts($atts);
|
2900 |
|
2901 |
if ( $query_atts["gallery"] != "true" ) { //if this is not a pop-up gallery
|
2902 |
|
2903 |
+
$code = kgvid_single_video_code($query_atts, $atts, $content, $post_id);
|
2904 |
|
2905 |
} //if not gallery
|
2906 |
|
2941 |
|
2942 |
} //if not feed
|
2943 |
|
2944 |
+
return apply_filters('KGVID_shortcode', $code, $query_atts, $content);
|
2945 |
|
2946 |
}
|
2947 |
add_shortcode('FMP', 'KGVID_shortcode');
|
2961 |
$video_id = $_POST['video_id'];
|
2962 |
$parent_id = $_POST['parent_id'];
|
2963 |
$format = $_POST['format'];
|
2964 |
+
if ( isset($_POST['blog_id']) ) { $blog_id = $_POST['blog_id']; }
|
2965 |
+
else { $blog_id = false; }
|
2966 |
+
|
2967 |
+
if ( !empty($blog_id) && $blog_id != 'false' ) { switch_to_blog($blog_id); }
|
2968 |
|
2969 |
+
$video_encode_queue = kgvid_get_encode_queue();
|
2970 |
+
|
2971 |
+
if ( $video_encode_queue ) {
|
2972 |
+
|
2973 |
+
foreach ( $video_encode_queue as $video_key => $video_entry ) {
|
2974 |
+
if ( !empty($video_entry['attachmentID']) && $video_entry['attachmentID'] == $parent_id
|
2975 |
+
&& ( array_key_exists('blog_id', $video_entry) && $video_entry['blog_id'] == $blog_id || $blog_id == 'false' )
|
2976 |
+
&& array_key_exists('encode_formats', $video_entry)
|
2977 |
+
&& array_key_exists($format, $video_entry['encode_formats'])
|
2978 |
+
&& array_key_exists('status', $video_entry['encode_formats'][$format])
|
2979 |
+
) {
|
2980 |
+
$video_encode_queue[$video_key]['encode_formats'][$format]['status'] = 'notchecked';
|
2981 |
+
kgvid_save_encode_queue($video_encode_queue);
|
2982 |
+
break;
|
2983 |
+
}
|
2984 |
+
}
|
2985 |
+
|
2986 |
+
}
|
2987 |
|
2988 |
$post = get_post($video_id);
|
2989 |
update_post_meta( $video_id, '_kgflashmediaplayer-format', $format );
|
2991 |
$post->post_parent = $parent_id;
|
2992 |
wp_update_post($post);
|
2993 |
|
2994 |
+
if ( !empty($blog_id) && $blog_id != 'false' ) { restore_current_blog(); }
|
2995 |
|
2996 |
die();
|
2997 |
+
|
2998 |
}
|
2999 |
add_action('wp_ajax_kgvid_update_child_format', 'kgvid_update_child_format');
|
3000 |
|
3026 |
check_ajax_referer( 'video-embed-thumbnail-generator-nonce', 'security' );
|
3027 |
|
3028 |
if ( isset( $_POST['page'] ) ) { $page = $_POST['page']; }
|
3029 |
+
else { die(); }
|
3030 |
|
3031 |
$video_encode_queue = kgvid_get_encode_queue();
|
3032 |
|
3034 |
|
3035 |
foreach ( $video_encode_queue as $video_key => $video_entry ) {
|
3036 |
|
3037 |
+
if ( $page == 'attachment' && array_key_exists('blog_id', $video_entry) && get_current_blog_id() != $video_entry['blog_id'] ) { //remove all entries from other blogs on attachment pages
|
3038 |
+
unset($video_encode_queue[$video_key]);
|
3039 |
+
continue;
|
3040 |
+
}
|
3041 |
+
|
3042 |
if ( !empty($video_entry['movieurl']) && !empty($video_entry['attachmentID']) ) {
|
3043 |
$encodevideo_info = kgvid_encodevideo_info($video_entry['movieurl'], $video_entry['attachmentID']);
|
3044 |
}
|
3076 |
$something_to_encode = false;
|
3077 |
$encoding_now = false;
|
3078 |
$time_to_wait = 5000;
|
3079 |
+
$user_delete_capability = false;
|
3080 |
+
|
3081 |
+
if ( is_multisite() ) { $blog_id = get_current_blog_id(); }
|
3082 |
+
else { $blog_id = false; }
|
3083 |
|
3084 |
if ( get_post_type($post_id) == "attachment" ) {
|
3085 |
$kgvid_postmeta = kgvid_get_attachment_meta($post_id);
|
3086 |
if ( array_key_exists('encode'.$format, $kgvid_postmeta) ) { $encodeset = $kgvid_postmeta['encode'.$format]; }
|
3087 |
else { $encodeset = 'false'; }
|
3088 |
+
$post = get_post($post_id);
|
3089 |
+
$current_user = wp_get_current_user();
|
3090 |
+
if ( $post && ( $current_user->ID == $post->post_author )
|
3091 |
+
|| ( current_user_can('edit_others_video_encodes') )
|
3092 |
+
) {
|
3093 |
+
$user_delete_capability = true;
|
3094 |
+
}
|
3095 |
+
|
3096 |
}
|
3097 |
if ( $encodeset == "false" && strpos($format, 'custom_') === false ) { $encodeset = $options['encode_'.$format]; }
|
3098 |
|
3106 |
}
|
3107 |
|
3108 |
if ( !empty($encodevideo_info) ) {
|
3109 |
+
|
3110 |
if ( $encodevideo_info[$format]['exists'] ) { //if the video file exists
|
3111 |
|
3112 |
if ( array_key_exists('id', $encodevideo_info[$format]) ) {
|
3113 |
$child_id = $encodevideo_info[$format]['id'];
|
3114 |
+
$was_picked = get_post_meta( $child_id, '_kgflashmediaplayer-pickedformat', true );
|
3115 |
}
|
3116 |
else { $was_picked = false; }
|
3117 |
|
3118 |
if ( $status != "encoding" ) { // not currently encoding
|
3119 |
+
|
3120 |
if ( $status == "notchecked" ) {
|
3121 |
if ( $was_picked != false ) { $meta = ' <strong>Set: '.basename($encodevideo_info[$format]['filepath']).'</strong>'; }
|
3122 |
else { $meta = ' <strong>Encoded</strong>'; }
|
3123 |
}
|
3124 |
if ( $status != "canceling" ) {
|
3125 |
|
|
|
|
|
3126 |
if ( $encodevideo_info[$format]['writable']
|
3127 |
&& current_user_can('encode_videos')
|
3128 |
+
&& $user_delete_capability == true
|
3129 |
&& $format != "fullres" ) {
|
3130 |
if ( $was_picked != false ) {
|
3131 |
$meta .= '<a id="unpick-'.$post_id.'-'.$format.'" class="kgvid_delete-format" onclick="kgvid_clear_video(\''.$movieurl.'\', \''.$post_id.'\', \''.$child_id.'\', \''.$blog_id.'\');" href="javascript:void(0)">'.__('Clear Format', 'video-embed-thumbnail-generator').'</a>';
|
3167 |
$something_to_encode = false;
|
3168 |
}
|
3169 |
|
3170 |
+
$meta_array = array( 'checked' => $checked, 'disabled' => $disabled, 'meta' => $meta, 'time_to_wait'=> $time_to_wait, 'something_to_encode' => $something_to_encode, 'encoding_now' => $encoding_now, 'blog_id' => $blog_id );
|
3171 |
|
3172 |
return $meta_array;
|
3173 |
|
3202 |
|
3203 |
function kgvid_generate_encode_checkboxes($movieurl, $post_id, $page, $blog_id = false) {
|
3204 |
|
3205 |
+
global $user_ID;
|
3206 |
+
|
3207 |
$options = kgvid_get_options();
|
3208 |
$video_encode_queue = kgvid_get_encode_queue();
|
3209 |
$video_formats = kgvid_video_formats();
|
3218 |
$encodevideo_info = array();
|
3219 |
$is_attachment = false;
|
3220 |
|
3221 |
+
if ( !empty($blog_id) && $blog_id != 'false' ) {
|
3222 |
+
switch_to_blog($blog_id);
|
3223 |
+
$blog_name_text = '['.$blog_id.']';
|
3224 |
+
$blog_id_text = $blog_id.'-';
|
3225 |
+
}
|
3226 |
+
else {
|
3227 |
+
$blog_name_text = '';
|
3228 |
+
$blog_id_text = '';
|
3229 |
+
}
|
3230 |
|
3231 |
+
if ( !empty($movieurl) ) {
|
3232 |
|
3233 |
$encodevideo_info = kgvid_encodevideo_info($movieurl, $post_id);
|
3234 |
$sanitized_url = kgvid_sanitize_url($movieurl);
|
3235 |
$movieurl = $sanitized_url['movieurl'];
|
3236 |
if ( get_post_type($post_id) == "attachment" ) { //if the video is in the database
|
3237 |
$is_attachment = true;
|
3238 |
+
$kgvid_postmeta = kgvid_get_attachment_meta($post_id);
|
3239 |
$post_mime_type = get_post_mime_type($post_id);
|
3240 |
$dimensions = kgvid_set_video_dimensions($post_id);
|
3241 |
$actualwidth = $dimensions['actualwidth'];
|
3242 |
$actualheight = $dimensions['actualheight'];
|
3243 |
+
$post = get_post($post_id);
|
3244 |
}
|
3245 |
else { //video's not in the database
|
3246 |
$is_attachment = false;
|
3247 |
unset($video_formats['fullres']);
|
3248 |
|
3249 |
+
$check_mime_type = wp_check_filetype($movieurl);
|
3250 |
+
$post_mime_type = $check_mime_type['type'];
|
3251 |
|
3252 |
if ( !empty($video_encode_queue) ) {
|
3253 |
foreach ($video_encode_queue as $video_key => $video_entry) {
|
3279 |
}
|
3280 |
else { $ffmpeg_disabled_text = ""; }
|
3281 |
|
3282 |
+
if ( ($is_attachment && $user_ID != $post->post_author && !current_user_can('edit_others_video_encodes') ) || !current_user_can('encode_videos') ) {
|
3283 |
+
$ffmpeg_disabled_text = ' disabled title="'.__('Insufficient priveleges to encode this video', 'video-embed-thumbnail-generator').'"';
|
3284 |
+
$security_disabled = true;
|
3285 |
+
}
|
3286 |
+
else { $security_disabled = false; }
|
3287 |
+
|
3288 |
$video_key = false;
|
3289 |
if ( !empty($video_encode_queue) && !empty($movieurl) ) {
|
3290 |
foreach ($video_encode_queue as $video_key => $video_entry) {
|
3316 |
}
|
3317 |
}
|
3318 |
|
3319 |
+
if ( $post_mime_type == 'image/gif' ) {
|
3320 |
+
$fullres_only = array('fullres');
|
3321 |
+
$video_formats = array_intersect_key($video_formats, array_flip($fullres_only));
|
3322 |
+
}
|
3323 |
+
|
3324 |
+
$checkboxes = '<div id="attachments-'.$blog_id_text.$post_id.'-kgflashmediaplayer-encodeboxes" class="kgvid_checkboxes_section"><ul>';
|
3325 |
|
3326 |
foreach ( $video_formats as $format => $format_stats ) {
|
3327 |
|
3343 |
|
3344 |
if ( !empty($encodevideo_info) && !$encodevideo_info[$format]['exists'] && strpos($format, 'custom_') === 0 ) { continue; } //skip custom formats that don't exist
|
3345 |
|
3346 |
+
if ( $format == 'fullres' ) {
|
3347 |
+
|
3348 |
+
if ( $encodevideo_info['fullres']['exists'] == true && $format_stats['status'] != "encoding" ) {
|
3349 |
+
unlink($encodevideo_info[$format]['filepath']);
|
3350 |
+
$encodevideo_info['fullres']['exists'] = false;
|
3351 |
+
}
|
3352 |
+
|
3353 |
+
if ( isset($kgvid_postmeta)
|
3354 |
+
&& array_key_exists('original_replaced', $kgvid_postmeta)
|
3355 |
+
&& $kgvid_postmeta['original_replaced'] == $options['replace_format']
|
3356 |
+
) {
|
3357 |
+
$format_stats['name'] = sprintf( _x('%s again', 'Replace original with full resolution format again', 'video-embed-thumbnail-generator'), $format_stats['name']);
|
3358 |
+
}
|
3359 |
+
|
3360 |
+
}
|
3361 |
+
|
3362 |
if ( !array_key_exists('lastline', $format_stats) ) { $format_stats['lastline'] = ''; }
|
3363 |
$meta_array = kgvid_encode_format_meta($encodevideo_info, $video_key, $format, $format_stats['status'], $format_stats['lastline'], $post_id, $movieurl, $page);
|
3364 |
|
3365 |
if ( $meta_array['something_to_encode'] == true ) { $something_to_encode = true; }
|
3366 |
if ( $meta_array['encoding_now'] == true ) { $encoding_now = true; }
|
3367 |
|
3368 |
+
$checkboxes .= "\n\t\t\t".'<li><input class="kgvid_encode_checkbox" type="checkbox" id="attachments-'.$blog_id_text.$post_id.'-kgflashmediaplayer-encode'.$format.'" name="attachments'.$blog_name_text.'['.$post_id.'][kgflashmediaplayer-encode'.$format.']" '.$meta_array['checked'].' '.$ffmpeg_disabled_text.$meta_array['disabled'].'> <label for="attachments-'.$blog_id_text.$post_id.'-kgflashmediaplayer-encode'.$format.'">'.$format_stats['name'].'</label> <span id="attachments-'.$blog_id_text.$post_id.'-kgflashmediaplayer-meta'.$format.'" class="kgvid_format_meta">'.$meta_array['meta'].'</span>';
|
3369 |
|
3370 |
+
if ( !$security_disabled && $is_attachment && empty($meta_array['disabled']) && $format != 'fullres' && $page != 'queue' ) { $checkboxes .= "<span id='pick-".$post_id."-".$format."' class='button-secondary kgvid_encode_checkbox_button' data-choose='".sprintf( __('Choose %s', 'video-embed-thumbnail-generator'), $format_stats['name'] )."' data-update='".sprintf( __('Set as %s', 'video-embed-thumbnail-generator'), $format_stats['name'] )."' onclick='kgvid_pick_format(this, \"".$post_id."\", \"".esc_attr($format_stats['mime'])."\", \"".$format."\", \"".esc_attr($movieurl)."\", \"".$blog_id."\");'>".__('Choose from Library', 'video-embed-thumbnail-generator')."</span>";
|
3371 |
}
|
3372 |
$checkboxes .= '</li>';
|
3373 |
|
3381 |
|
3382 |
if ( $page == "queue" ) {
|
3383 |
$button_text = _x('Update', 'Button text', 'video-embed-thumbnail-generator');
|
3384 |
+
$checkboxes .= "\n\t\t\t".'<input type="hidden" name="attachments'.$blog_name_text.'['.$post_id.'][kgflashmediaplayer-url]" value="'.$movieurl.'">';
|
3385 |
}
|
3386 |
else { $button_text = _x('Encode selected', 'Button text', 'video-embed-thumbnail-generator'); }
|
3387 |
|
3388 |
+
$checkboxes .= '<input type="button" id="attachments-'.$blog_id_text.$post_id.'-kgflashmediaplayer-encode" name="attachments'.$blog_name_text.'['.$post_id.'][kgflashmediaplayer-encode]" class="button-secondary" value="'.$button_text.'" onclick="kgvid_enqueue_video_encode(\''.$post_id.'\', \''.$blog_id.'\');" '.$ffmpeg_disabled_text.$encode_disabled.'/><div style="display:block;" id="attachments-'.$blog_id_text.$post_id.'-encodeplaceholder"></div>';
|
|
|
3389 |
|
3390 |
if ( $page != "queue" ) {
|
3391 |
$checkboxes .= '<small><em>'.__('Generates additional video formats compatible with most mobile & HTML5-compatible browsers', 'video-embed-thumbnail-generator').'</em></small>';
|
3398 |
}
|
3399 |
|
3400 |
if ( !$encoding_now && ($last_format['status'] == "queued" || $last_format['status'] == "canceling") ) {
|
3401 |
+
$checkboxes .= '<script type="text/javascript">percent_timeout = setTimeout(function(){ kgvid_redraw_encode_checkboxes("'.$video_entry['movieurl'].'", "'.$video_entry['attachmentID'].'", "'.$page.'", "'.$blog_id.'") }, 5000); jQuery(\'#wpwrap\').data("KGVIDCheckboxTimeout", percent_timeout);</script>';
|
3402 |
}
|
3403 |
|
3404 |
if ( $encoding_now ) {
|
3407 |
}
|
3408 |
$checkboxes .= '</div>'; //close encodeboxes div
|
3409 |
|
3410 |
+
if ( !empty($blog_id) && $blog_id != 'false' ) { restore_current_blog(); }
|
3411 |
|
3412 |
$arr = array('checkboxes'=>$checkboxes, 'encoding'=>$encoding_now );
|
3413 |
|
3443 |
$html = "";
|
3444 |
$current_user = wp_get_current_user();
|
3445 |
$video_encode_queue = kgvid_get_encode_queue();
|
3446 |
+
$nonce = wp_create_nonce('video-embed-thumbnail-generator-nonce');
|
3447 |
|
3448 |
$crons = _get_cron_array();
|
3449 |
|
3475 |
$video_formats = kgvid_video_formats();
|
3476 |
$currently_encoding = array();
|
3477 |
$queued = array();
|
3478 |
+
|
3479 |
$html .= "<input type='hidden' name='attachments[kgflashmediaplayer-security]' value='".$nonce."' />";
|
3480 |
|
3481 |
foreach ( $video_encode_queue as $order => $video_entry ) {
|
3482 |
|
3483 |
+
if ( array_key_exists('blog_id', $video_entry) ) {
|
3484 |
+
|
3485 |
+
$blog_id = $video_entry['blog_id'];
|
3486 |
+
$blog_name_text = '['.$blog_id.']';
|
3487 |
+
$blog_id_text = $blog_id.'-';
|
3488 |
+
|
3489 |
+
$same_blog = true;
|
3490 |
+
|
3491 |
+
if ( $video_entry['blog_id'] == get_current_blog_id() ) {
|
3492 |
+
$same_blog = true;
|
3493 |
+
}
|
3494 |
+
else {
|
3495 |
+
$same_blog = false;
|
3496 |
+
if ( is_network_admin() || $scope == "network" ) { switch_to_blog($blog_id); }
|
3497 |
+
}
|
3498 |
+
|
3499 |
+
}
|
3500 |
+
else {
|
3501 |
+
$blog_id = false;
|
3502 |
+
$blog_name_text = '';
|
3503 |
+
$blog_id_text = '';
|
3504 |
+
$same_blog = true;
|
3505 |
+
}
|
3506 |
+
|
3507 |
+
$html .= "\t<tr id='tr-".$blog_id_text.$video_entry['attachmentID']."'";
|
3508 |
|
3509 |
if ( is_array($video_entry['encode_formats']) ) {
|
3510 |
foreach ( $video_formats as $format => $format_stats ) {
|
3535 |
elseif ( $queued[$order] ) { $html .= " class='kgvid_queued' "; }
|
3536 |
else { $html .= " class='kgvid_complete' "; }
|
3537 |
|
|
|
|
|
|
|
3538 |
$html .= ">";
|
3539 |
|
3540 |
//Order
|
3541 |
+
$html .= "<td id='td-".$blog_id_text.$video_entry['attachmentID']."'>".strval(intval($order)+1)."</td>\n";
|
3542 |
|
3543 |
//User
|
|
|
3544 |
$post = get_post( $video_entry['attachmentID'] );
|
3545 |
|
3546 |
if ( ( is_network_admin() || 'network' == $scope )
|
3547 |
+
|| ( $same_blog && $post && $current_user->ID == $post->post_author )
|
3548 |
+
|| ( current_user_can('edit_others_video_encodes') && $same_blog )
|
3549 |
+
) {
|
3550 |
|
3551 |
+
if ( array_key_exists('user_id', $video_entry) && !empty($video_entry['user_id']) ) {
|
3552 |
+
$user = get_userdata($video_entry['user_id']);
|
3553 |
+
$html .= "<td>".$user->display_name."</td>\n";
|
3554 |
+
}
|
3555 |
+
elseif ( $post ) {
|
3556 |
$user = get_userdata( $post->post_author );
|
3557 |
$html .= "<td>".$user->display_name."</td>\n";
|
3558 |
}
|
3561 |
//Site
|
3562 |
if ( (is_network_admin() || 'network' == $scope) && $blog_id ) {
|
3563 |
$blog_details = get_bloginfo();
|
3564 |
+
$html .= "<td><a href='".get_admin_url($blog_id)."'>".$blog_details."</a><input type='hidden' name='attachments[blog_id][".$video_entry['attachmentID']."]' value='".$blog_id."'></td>\n";
|
3565 |
}
|
3566 |
|
3567 |
//Thumbnail
|
3583 |
$html .= "\t\t\t\t\t<td><a href='".$attachmentlink."'> ".$thumbnail_html."</a></td>\n";
|
3584 |
$path_info = pathinfo($moviefilepath);
|
3585 |
$file_name = basename($moviefilepath,'.'.$path_info['extension']);
|
3586 |
+
$html .= "\t\t\t\t\t<td><a href='".$attachmentlink."'>".urldecode($file_name)."</a><input type='hidden' name='attachments".$blog_name_text."[".$video_entry['attachmentID']."][kgflashmediaplayer-url]' value='".$video_entry['movieurl']."'></td>\n";
|
3587 |
|
3588 |
//Formats
|
3589 |
$html .= "\t\t\t\t\t<td class='queue_encode_formats' id='formats_".$video_entry['attachmentID']."'>";
|
3590 |
+
$html .= "<input type='hidden' id='attachments-".$blog_id_text.$video_entry['attachmentID']."-kgflashmediaplayer-security' name='attachments".$blog_name_text."[".$video_entry['attachmentID']."][kgflashmediaplayer-security]' value='".$nonce."' />";
|
3591 |
|
3592 |
if ( is_array($video_entry['encode_formats']) ) { $checkboxes = kgvid_generate_encode_checkboxes($video_entry['movieurl'], $video_entry['attachmentID'], 'queue', $blog_id); }
|
3593 |
else { $checkboxes = array('checkboxes' => __('Please wait while this video is automatically added to the queue...', 'video-embed-thumbnail-generator') ); }
|
3596 |
|
3597 |
//Actions
|
3598 |
$html .= "\t\t\t\t\t<td>";
|
3599 |
+
$html .= "<a id='clear-".$blog_id_text.$video_entry['attachmentID']."' class='submitdelete' href='javascript:void(0)' onclick='kgvid_encode_queue(\"delete\", ".$order.", ".$video_entry['attachmentID'].", \"".$blog_id."\")'";
|
3600 |
if ( $currently_encoding[$order] ) { $html .= " style='display:none;'"; }
|
3601 |
$html .= ">Clear</a>";
|
3602 |
|
3603 |
}//end if current user can see this stuff
|
3604 |
+
elseif ( $same_blog == false ) {
|
3605 |
+
$html .= "<td colspan='".strval($total_columns-1)."'><strong class='kgvid_queue_message'>".__("Other site's video", 'video-embed-thumbnail-generator')."</strong></td>";
|
3606 |
+
}
|
3607 |
+
else {
|
3608 |
+
$html .= "<td colspan='".strval($total_columns-1)."'><strong class='kgvid_queue_message'>".__("Other user's video", 'video-embed-thumbnail-generator')."</strong></td>";
|
3609 |
+
}
|
3610 |
$html .= "</td></tr>\n";
|
3611 |
|
3612 |
if ( (is_network_admin() || 'network' == $scope) && $blog_id ) { restore_current_blog(); }
|
3613 |
|
3614 |
}
|
3615 |
}
|
3616 |
+
|
3617 |
+
if ( empty($html) || $html == "<input type='hidden' name='attachments[kgflashmediaplayer-security]' value='".$nonce."' />" ) { $html = "\t<tr><td colspan='".strval($total_columns)."'><strong class='kgvid_queue_message'>".__('Queue is empty', 'video-embed-thumbnail-generator')."</strong></td></tr>\n"; }
|
3618 |
|
3619 |
return $html;
|
3620 |
|
3637 |
|
3638 |
function kgvid_FFMPEG_Queue_Page() {
|
3639 |
|
3640 |
+
wp_enqueue_media();
|
3641 |
+
|
3642 |
?>
|
3643 |
<div class="wrap">
|
3644 |
<div id="icon-tools" class="icon32"><br /></div>
|
3645 |
+
<h1><?php _e('Video Embed & Thumbnail Generator Encoding Queue', 'video-embed-thumbnail-generator') ?></h1>
|
3646 |
<p></p>
|
3647 |
<form method="post" action="tools.php?page=kgvid_video_encoding_queue">
|
3648 |
<?php wp_nonce_field('video-embed-thumbnail-generator-nonce','video-embed-thumbnail-generator-nonce'); ?>
|
3659 |
</tbody>
|
3660 |
</table>
|
3661 |
<p>
|
3662 |
+
<?php if ( current_user_can('edit_others_video_encodes') ) { echo "<div class='attachment-info'><div class='actions'><a href='javascript:void(0)' onclick='kgvid_encode_queue(\"clear_completed\", 0, 0);'>". __('Clear All Completed', 'video-embed-thumbnail-generator') ."</a> | <a href='javascript:void(0)' onclick='kgvid_encode_queue(\"clear_queued\", 0, 0, \"\");'>". __('Clear All Queued', 'video-embed-thumbnail-generator') ."</a> | <a href='javascript:void(0)' onclick='kgvid_encode_queue(\"clear_all\", 0, 0, \"\");'>". __('Clear All', 'video-embed-thumbnail-generator') ."</a></div></div>"; } ?>
|
3663 |
</p>
|
3664 |
</form>
|
3665 |
</div>
|
3720 |
?>
|
3721 |
<div class="wrap">
|
3722 |
<div class="icon32" id="icon-options-general"><br></div>
|
3723 |
+
<h1>Video Embed & Thumbnail Generator Network Settings</h1>
|
3724 |
<?php settings_errors( __FILE__ ); ?>
|
3725 |
<form method="post">
|
3726 |
<input type="hidden" name="action" value="update_kgvid_network_settings" />
|
3768 |
<script type='text/javascript'>
|
3769 |
jQuery(document).ready(function() {
|
3770 |
kgvid_hide_plugin_settings();
|
3771 |
+
kgvid_moov_setting();
|
3772 |
jQuery('form :input').change(function() {
|
3773 |
kgvid_save_plugin_settings(this);
|
3774 |
});
|
3782 |
function kgvid_superadmin_capabilities_callback() {
|
3783 |
|
3784 |
$network_options = get_site_option('kgvid_video_embed_network_options');
|
3785 |
+
echo "<input ".checked( $network_options['superadmin_only_ffmpeg_settings'], "on", false )." id='superadmin_only_ffmpeg_settings' name='kgvid_video_embed_options[superadmin_only_ffmpeg_settings]' type='checkbox' /> <label for='superadmin_only_ffmpeg_settings'>".sprintf( _x('Access %s settings tab.', 'Access FFMPEG settings tab', 'video-embed-thumbnail-generator'), "<strong class='video_app_name'>".strtoupper($network_options['video_app'])."</strong>" )."</label> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__( sprintf( 'Only Super admins will be allowed to view and modify %s settings.', "<strong class='video_app_name'>".strtoupper($network_options['video_app'])."</strong>" ), 'video-embed-thumbnail-generator' )."</span></a><br>\n\t";
|
3786 |
+
|
3787 |
+
echo "<div class='kgvid_video_app_required'>";
|
3788 |
+
echo __('Email all encoding errors on the network to:', 'video-embed-thumbnail-generator')." <select id='network_error_email' name='kgvid_video_embed_options[network_error_email]'>";
|
3789 |
+
$network_super_admins = get_super_admins();
|
3790 |
+
if ( $network_super_admins ) {
|
3791 |
+
$authorized_users = array();
|
3792 |
+
foreach ( $network_super_admins as $network_super_admin ) {
|
3793 |
+
$user = get_user_by('login', $network_super_admin);
|
3794 |
+
$authorized_users[$network_super_admin] = $user->ID;
|
3795 |
+
}
|
3796 |
+
}
|
3797 |
+
$items = array_merge( array(
|
3798 |
+
__('Nobody', 'video-embed-thumbnail-generator') => 'nobody',
|
3799 |
+
__('User who initiated encoding', 'video-embed-thumbnail-generator') => 'encoder'
|
3800 |
+
), $authorized_users
|
3801 |
+
);
|
3802 |
+
foreach($items as $name=>$value) {
|
3803 |
+
$selected = ($network_options['network_error_email']==$value) ? 'selected="selected"' : '';
|
3804 |
+
echo "<option value='$value' $selected>$name</option>";
|
3805 |
+
}
|
3806 |
+
echo "</select> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".sprintf( __( 'Can also be set on individual sites if the %s settings tab isn\'t disabled.' , 'video-embed-thumbnail-generator'), "<strong class='video_app_name'>".strtoupper($network_options['video_app'])."</strong>" )."</a></span>";
|
3807 |
+
echo "</div>\n\t";
|
3808 |
|
3809 |
}
|
3810 |
|
3822 |
?>
|
3823 |
<div class="wrap">
|
3824 |
<div class="icon32" id="icon-options-general"><br></div>
|
3825 |
+
<h1>Video Embed & Thumbnail Generator</h1>
|
3826 |
<?php if ( !is_multisite()
|
3827 |
|| ( function_exists( 'is_plugin_active_for_network' ) && is_plugin_active_for_network( plugin_basename(__FILE__) ) && $options['ffmpeg_exists'] == "on" && is_array($network_options) && (is_super_admin() || $network_options['superadmin_only_ffmpeg_settings'] == false) )
|
3828 |
) { ?>
|
3887 |
}//end setting initial network options
|
3888 |
else { //network options introduced in version 4.3 exist already
|
3889 |
|
3890 |
+
$network_options_old = $network_options;
|
3891 |
+
|
3892 |
if ( !array_key_exists('superadmin_only_ffmpeg_settings', $network_options) ) {
|
3893 |
$default_network_options = kgvid_default_network_options();
|
3894 |
$network_options['superadmin_only_ffmpeg_settings'] = $default_network_options['superadmin_only_ffmpeg_settings'];
|
3895 |
+
}
|
3896 |
+
|
3897 |
+
if ( !array_key_exists('network_error_email', $network_options) ) {
|
3898 |
+
$network_options['network_error_email'] = 'nobody';
|
3899 |
+
}
|
3900 |
+
|
3901 |
+
if ( $network_options_old != $network_options ) {
|
3902 |
update_site_option('kgvid_video_embed_network_options', $network_options);
|
3903 |
}
|
3904 |
|
3967 |
add_settings_field('playbutton', __('Play button overlay:', 'video-embed-thumbnail-generator'), 'kgvid_playbutton_callback', __FILE__, 'kgvid_video_embed_flash_settings', array( 'label_for' => 'playbutton' ) );
|
3968 |
|
3969 |
add_settings_field('generate_thumbs', __('Default number of thumbnails to generate:', 'video-embed-thumbnail-generator'), 'kgvid_generate_thumbs_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'generate_thumbs' ) );
|
3970 |
+
add_settings_field('security', __('Video sharing:', 'video-embed-thumbnail-generator'), 'kgvid_security_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'right_click' ) );
|
|
|
3971 |
add_settings_field('featured', __('Featured image:', 'video-embed-thumbnail-generator'), 'kgvid_featured_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'featured' ) );
|
3972 |
add_settings_field('thumb_parent', __('Attach thumbnails to:', 'video-embed-thumbnail-generator'), 'kgvid_thumb_parent_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'thumb_parent' ) );
|
3973 |
+
add_settings_field('user_roles', __('User capabilities:', 'video-embed-thumbnail-generator'), 'kgvid_user_roles_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'user_roles' ) );
|
3974 |
add_settings_field('delete_children', __('Delete associated attachments:', 'video-embed-thumbnail-generator'), 'kgvid_delete_children_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'delete_children' ) );
|
3975 |
add_settings_field('titlecode', __('Video title text HTML formatting:', 'video-embed-thumbnail-generator'), 'kgvid_titlecode_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'titlecode' ) );
|
3976 |
add_settings_field('template', __('Attachment page design:', 'video-embed-thumbnail-generator'), 'kgvid_template_callback', __FILE__, 'kgvid_video_embed_plugin_settings', array( 'label_for' => 'template' ) );
|
3984 |
add_settings_field('encode_formats', __('Default video encode formats:', 'video-embed-thumbnail-generator'), 'kgvid_encode_formats_callback', __FILE__, 'kgvid_video_embed_encode_settings');
|
3985 |
add_settings_field('automatic', __('Do automatically on upload:', 'video-embed-thumbnail-generator'), 'kgvid_automatic_callback', __FILE__, 'kgvid_video_embed_encode_settings', array( 'label_for' => 'auto_encode' ) );
|
3986 |
add_settings_field('old_videos', __('For previously uploaded videos:', 'video-embed-thumbnail-generator'), 'kgvid_old_video_buttons_callback', __FILE__, 'kgvid_video_embed_encode_settings' );
|
3987 |
+
add_settings_field('error_email', __('Email encoding errors to:', 'video-embed-thumbnail-generator'), 'kgvid_error_email_callback', __FILE__, 'kgvid_video_embed_encode_settings', array( 'label_for' => 'error_email' ) );
|
3988 |
add_settings_field('htaccess', __('htaccess login:', 'video-embed-thumbnail-generator'), 'kgvid_htaccess_callback', __FILE__, 'kgvid_video_embed_encode_settings', array( 'label_for' => 'htaccess_username' ) );
|
3989 |
add_settings_field('ffmpeg_watermark', __('Add watermark to encoded files:', 'video-embed-thumbnail-generator'), 'kgvid_ffmpeg_watermark_callback', __FILE__, 'kgvid_video_embed_encode_settings', array( 'label_for' => 'ffmpeg_watermark' ) );
|
3990 |
if ( !is_plugin_active_for_network( plugin_basename(__FILE__) ) ) {
|
4028 |
//add the JW Player if available
|
4029 |
$jw_player_select = "";
|
4030 |
if ( class_exists('JWP6_Shortcode') ) {
|
4031 |
+
$players["JW Player"] = "JW Player 6";
|
4032 |
$jw_players = get_option('jwp6_players');
|
4033 |
if ( count($jw_players) > 1 ) {
|
4034 |
$jw_player_select = " <div style='display:none;' id='jw_player_id_select'><select class='affects_player' onchange='kgvid_hide_plugin_settings();' id='jw_player_id' name='kgvid_video_embed_options[jw_player_id]'>";
|
4041 |
else { $jw_player_config_description = $jw_player_id; }
|
4042 |
$jw_player_select .= "<option value='$jw_player_id' $selected>".stripcslashes($jw_player_config_description)."</option>";
|
4043 |
}
|
4044 |
+
$jw_player_select .= "</select> ".__('JW Player player', 'video-embed-thumbnail-generator')."</div>";
|
4045 |
}
|
4046 |
}
|
4047 |
|
4052 |
$selected = ($options['embed_method']==$value) ? 'selected="selected"' : '';
|
4053 |
echo "<option value='$value' $selected>$name</option>";
|
4054 |
}
|
4055 |
+
echo "</select> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Video.js is the default player. Users running WordPress 3.6 or higher can choose the WordPress Default Mediaelement.js player which may already be skinned to match your theme. If the JW Player WordPress plugin is active it should be available as a video player. In the past this plugin used Adobe\'s Strobe Media Playback Flash player, which hasn\'t been updated since 2011 and is not recommended. It should still work, but new plugin functions are not guaranteed to be compatible.', 'video-embed-thumbnail-generator')."</span></span>".$jw_player_select."</td></tr></tbody></table>\n";
|
4056 |
|
4057 |
$sampleheight = intval($options['height']) + 50;
|
4058 |
echo "<div class='kgvid_setting_nearvid' style='width:".$options['width']."px;'>";
|
4059 |
+
echo "<div id='#kgvid_above_sample_vid'>";
|
4060 |
+
echo "<span><input class='affects_player' ".checked( $options['overlay_title'], "on", false )." id='overlay_title' name='kgvid_video_embed_options[overlay_title]' type='checkbox' /><label for='overlay_title'>".__('Overlay video title', 'video-embed-thumbnail-generator')."</label></span>";
|
4061 |
+
echo "<span><input class='affects_player' ".checked( $options['downloadlink'], "on", false )." id='downloadlink' name='kgvid_video_embed_options[downloadlink]' type='checkbox' /> <label for='downloadlink'>".__('Show download link', 'video-embed-thumbnail-generator')."</label></span>";
|
4062 |
+
echo "<span><span>".__('Sharing:','video-embed-thumbnail-generator')."</span><br>";
|
4063 |
+
echo "<input class='affects_player' ".checked( $options['overlay_embedcode'], "on", false )." id='overlay_embedcode' name='kgvid_video_embed_options[overlay_embedcode]' type='checkbox' ".$embed_disabled."/> <label for='overlay_embedcode'>".__('Embed code', 'video-embed-thumbnail-generator')."</label><br>";
|
4064 |
+
echo "<input class='affects_player' ".checked( $options['twitter_button'], "on", false )." id='twitter_button' name='kgvid_video_embed_options[twitter_button]' type='checkbox' onchange='kgvid_hide_plugin_settings();' /> <label for='twitter_button'>".__('Twitter button', 'video-embed-thumbnail-generator')."</label><span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Enter your Twitter username in the Video Sharing section below.', 'video-embed-thumbnail-generator')."</span></span><br />";
|
4065 |
+
echo "<input class='affects_player' ".checked( $options['facebook_button'], "on", false )." id='facebook_button' name='kgvid_video_embed_options[facebook_button]' type='checkbox' /> <label for='facebook_button'>".__('Facebook button', 'video-embed-thumbnail-generator')."</label></span></div>";
|
4066 |
$iframeurl = site_url('/')."?kgvid_video_embed[enable]=true&kgvid_video_embed[sample]=true";
|
4067 |
echo "<iframe id='kgvid_samplevideo' style='border:2px;' src='".$iframeurl."' scrolling='no' width='".$options['width']."' height='".$sampleheight."'></iframe>";
|
|
|
4068 |
echo "<div style='float:right;'><input class='affects_player' ".checked( $options['view_count'], "on", false )." id='view_count' name='kgvid_video_embed_options[view_count]' type='checkbox' /> <label for='view_count'>".__('Show view count', 'video-embed-thumbnail-generator')."</label></div>";
|
4069 |
echo "<hr style='width:100%;'></div>\n\t";
|
4070 |
}
|
4123 |
|
4124 |
function kgvid_resize_callback() {
|
4125 |
$options = kgvid_get_options();
|
4126 |
+
$video_formats = kgvid_video_formats();
|
4127 |
+
echo "<div id='resize_div'><input ".checked( $options['resize'], "on", false )." id='resize' name='kgvid_video_embed_options[resize]' type='checkbox' /> <label for='resize'>".__('Make video player responsive.', 'video-embed-thumbnail-generator')."</label><br /></div>";
|
4128 |
$items = array( __("automatic", 'video-embed-thumbnail-generator'), __("highest", 'video-embed-thumbnail-generator'), __("lowest", 'video-embed-thumbnail-generator') );
|
4129 |
+
foreach ( $video_formats as $format => $format_stats ) {
|
4130 |
+
if ( $format_stats['type'] == 'h264' && !empty($format_stats['label']) ) {
|
4131 |
+
$items[] = $format_stats['label'];
|
4132 |
+
}
|
4133 |
+
}
|
4134 |
+
echo __('Default playback resolution', 'video-embed-thumbnail-generator')." <select id='auto_res' name='kgvid_video_embed_options[auto_res]' onchange='kgvid_hide_plugin_settings()'>";
|
4135 |
+
foreach( $items as $name ) {
|
4136 |
$selected = ($options['auto_res']==$name) ? 'selected="selected"' : '';
|
4137 |
echo "<option value='$name' $selected>$name</option>";
|
4138 |
}
|
4139 |
+
echo "</select> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('If multiple H.264 resolutions for a video are available, you can choose to load the highest or lowest available resolution by default, automatically select the resolution based on the size of the video window, or indicate a particular resolution to use every time.', 'video-embed-thumbnail-generator')."</span></span>";
|
4140 |
+
echo "<p id='pixel_ratio_p'><input ".checked( $options['pixel_ratio'], "on", false )." id='pixel_ratio' name='kgvid_video_embed_options[pixel_ratio]' type='checkbox' /><label for='pixel_ratio'>".__('Use display pixel ratio for resolution calculation', 'video-embed-thumbnail-generator')."</label><span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Most modern mobile devices and some very high-resolution desktop displays (what Apple calls a Retina display) use a pixel ratio to calculate the size of their viewport. Using the pixel ratio can result in a higher resolution being selected on mobile devices than on desktop devices. Because these devices actually have extremely high resolutions, and in a responsive design the video player usually takes up more of the screen than on a desktop browser, this is not a mistake, but your users might prefer to use less mobile data.', 'video-embed-thumbnail-generator')."</span></span></p>\n\t";
|
4141 |
|
4142 |
}
|
4143 |
|
4144 |
function kgvid_dimensions_callback() {
|
4145 |
$options = kgvid_get_options();
|
4146 |
echo __('Width:', 'video-embed-thumbnail-generator')." <input class='small-text affects_player' id='width' name='kgvid_video_embed_options[width]' type='text' value='".$options['width']."' /> ".__('Height:', 'video-embed-thumbnail-generator')." <input class='small-text affects_player' id='height' name='kgvid_video_embed_options[height]' type='text' value='".$options['height']."' /><br />";
|
4147 |
+
echo "<input ".checked( $options['minimum_width'], "on", false )." id='minimum_width' name='kgvid_video_embed_options[minimum_width]' type='checkbox' /> <label for='minimum_width'>".__('Enlarge lower resolution videos to max width.', 'video-embed-thumbnail-generator')."</label> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Usually if a video\'s resolution is less than the max width, the video player is set to the actual width of the video. Enabling this will always set the same width regardless of the quality of the video. When necessary you can override by setting the dimensions manually.', 'video-embed-thumbnail-generator')."</span></span><br />";
|
4148 |
+
echo "<input ".checked( $options['fullwidth'], "on", false )." id='fullwidth' name='kgvid_video_embed_options[fullwidth]' type='checkbox' /> <label for='fullwidth'>".__('Set all videos to expand to fill their containers.', 'video-embed-thumbnail-generator')."</label> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Enabling this will ignore any other width settings and set the width of the video to the width of the container it\'s in.', 'video-embed-thumbnail-generator')."</span></span><br />";
|
4149 |
echo "<input ".checked( $options['inline'], "on", false )." id='inline' name='kgvid_video_embed_options[inline]' type='checkbox' /> <label for='inline'>".__('Allow other content on the same line as the video.', 'video-embed-thumbnail-generator')."</label>\n\t";
|
4150 |
}
|
4151 |
|
4224 |
$selected = ($options['preload']==$value) ? 'selected="selected"' : '';
|
4225 |
echo "<option value='$value' $selected>$name</option>";
|
4226 |
}
|
4227 |
+
echo "</select><span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>"._x('Controls how much of a video to load before the user starts playback. Mobile browsers never preload any video information. Selecting "metadata" will load the height and width and format information along with a few seconds of the video in some desktop browsers. "Auto" will preload nearly a minute of video in most desktop browsers. "None" will prevent all data from preloading.', 'Suggest not translating the words in quotation marks', 'video-embed-thumbnail-generator')."</span></span>\n\t";
|
4228 |
}
|
4229 |
|
4230 |
function kgvid_js_skin_callback() {
|
4234 |
|
4235 |
function kgvid_nativecontrolsfortouch_callback() {
|
4236 |
$options = kgvid_get_options();
|
4237 |
+
echo "<input class='affects_player' ".checked( $options['nativecontrolsfortouch'], "on", false )." id='nativecontrolsfortouch' name='kgvid_video_embed_options[nativecontrolsfortouch]' type='checkbox' /> <label for='nativecontrolsfortouch'>".__('Show native controls on mobile devices.', 'video-embed-thumbnail-generator')."</label><span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Disable Video.js styling and show the built-in video controls on mobile devices. This will disable the resolution selection button.', 'video-embed-thumbnail-generator')."</span></span>\n\t";
|
4238 |
}
|
4239 |
|
4240 |
function kgvid_custom_attributes_callback() {
|
4303 |
echo "<input class='small-text' id='generate_thumbs' name='kgvid_video_embed_options[generate_thumbs]' maxlength='2' type='text' value='".strval($options['generate_thumbs'])."' />\n\t";
|
4304 |
}
|
4305 |
|
4306 |
+
function kgvid_security_callback() {
|
4307 |
+
$options = kgvid_get_options();
|
4308 |
+
|
4309 |
+
if ( $options['embeddable'] != "on" ) { $embed_disabled = " disabled='disabled' title='".__('Embedding disabled', 'video-embed-thumbnail-generator')."'"; }
|
4310 |
+
else { $embed_disabled = ""; }
|
4311 |
+
|
4312 |
+
echo "<input class='affects_player' ".checked( $options['embeddable'], "on", false )." id='embeddable' name='kgvid_video_embed_options[embeddable]' type='checkbox' onclick='kgvid_embeddable_switch(this.checked);' /> <label for='embeddable'>".__('Allow users to embed your videos on other sites.', 'video-embed-thumbnail-generator')."</label><br />";
|
4313 |
+
echo "<input ".checked( $options['open_graph'], "on", false )." id='open_graph' name='kgvid_video_embed_options[open_graph]' type='checkbox'".$embed_disabled." /> <label for='open_graph'>"._x('Enable Facebook Open Graph video tags.', '"Open Graph" is a proper noun and might not need translation', 'video-embed-thumbnail-generator')."</label><span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Facebook and some other social media sites will use these tags to embed the first video in your post. Your video must be served via https in order to be embedded directly in Facebook and playback is handled by the unstyled built-in browser player. No statistics will be recorded for videos embedded this way and Open Graph tags generated by Jetpack will be disabled on pages with videos.', 'video-embed-thumbnail-generator')."</span></span><br />\n\t";
|
4314 |
+
echo "<input ".checked( $options['schema'], "on", false )." id='schema' name='kgvid_video_embed_options[schema]' type='checkbox'".$embed_disabled." /> <label for='schema'>".__('Enable Schema.org structured data markup for search engines.', 'video-embed-thumbnail-generator')."</label><span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Helps your videos appear in video searches on Google, Yahoo, and Bing.', 'video-embed-thumbnail-generator')."</span></span><br />\n\t";
|
4315 |
+
echo "<input ".checked( $options['twitter_card'], "on", false )." id='twitter_card' name='kgvid_video_embed_options[twitter_card]' type='checkbox'".$embed_disabled." onchange='kgvid_hide_plugin_settings();' /> <label for='twitter_card'>".__('Enable Twitter Cards.', 'video-embed-thumbnail-generator')."</label><span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".sprintf( __('Generates metadata for "player" Twitter Cards that will show a thumbnail and playable video in Twitter. Disables Jetpack Twitter metadata on any page with a video. Your site must have https enabled and you must request whitelist approval for your site using the %1$sTwitter card validator%2$s. Don\'t worry if your player card doesn\'t render. Twitter will most likely approve your request.', 'video-embed-thumbnail-generator'), '<a href="https://cards-dev.twitter.com/validator">', '</a>')."</span></span><br />\n\t";
|
4316 |
+
echo "<div id='twitter_username_div' style='margin:0px;'><input class='regular-text' id='twitter_username' style='width: 100px;' name='kgvid_video_embed_options[twitter_username]' type='text' value='".$options['twitter_username']."' /> <label for='twitter_username'>".__('Twitter username', 'video-embed-thumbnail-generator')."</label></div>";
|
4317 |
+
echo "<input class='affects_player' ".checked( $options['right_click'], "on", false )." id='right_click' name='kgvid_video_embed_options[right_click]' type='checkbox' /> <label for='right_click'>".__('Allow right-clicking on videos.', 'video-embed-thumbnail-generator')."</label> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('We can\'t prevent a user from simply saving the downloaded video file from the browser\'s cache, but disabling right-clicking will make it more difficult for casual users to save your videos.', 'video-embed-thumbnail-generator')."</span></span><br />";
|
4318 |
+
echo "<input ".checked( $options['click_download'], "on", false )." id='click_download' name='kgvid_video_embed_options[click_download]' type='checkbox' /> <label for='click_download'>".__('Allow single-click download link for videos.', 'video-embed-thumbnail-generator')."</label> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('The plugin creates a one-click method for users who want to allow easy video downloading, but if some of your videos are hidden or private, depending on the methods you use, someone who guesses a video\'s WordPress database ID could potentially use the method to download videos they might not otherwise have access to.', 'video-embed-thumbnail-generator')."</span></span><br />";
|
4319 |
+
echo "<input ".checked( $options['oembed_provider'], "on", false )." id='oembed_provider' name='kgvid_video_embed_options[oembed_provider]' type='checkbox'".$embed_disabled." /> <label for='oembed_provider'>"._x('Change oEmbed to video instead of WordPress default photo/excerpt.', '"oEmbed" is a proper noun and might not need translation', 'video-embed-thumbnail-generator')."</label><span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Allows users of other websites to embed your videos using just the post URL rather than the full iframe embed code, much like Vimeo or YouTube. However, most social media sites (including Facebook & Twitter) will not show videos through oEmbed unless your link is https. In order to display the video properly, this will also remove some of the security features included in the built-in WordPress oEmbed system.', 'video-embed-thumbnail-generator')."</span></span><br />";
|
4320 |
+
echo "<input ".checked( $options['oembed_security'], "on", false )." id='oembed_security' name='kgvid_video_embed_options[oembed_security]' type='checkbox' /> <label for='oembed_security'>"._x('Enable oEmbeds from unknown providers.', '"oEmbed" is a proper noun and might not need translation', 'video-embed-thumbnail-generator')."</label><span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Allows your own users to embed content from any oEmbed provider. User must have the "unfiltered_html" capability which is limited to Administrators and Editors by default.', 'video-embed-thumbnail-generator')."</span></span><br />\n\t";
|
4321 |
+
}
|
4322 |
+
|
4323 |
+
function kgvid_featured_callback() {
|
4324 |
+
$options = kgvid_get_options();
|
4325 |
+
echo "<input ".checked( $options['featured'], "on", false )." id='featured' name='kgvid_video_embed_options[featured]' type='checkbox' /> <label for='featured'>".__('Set generated video thumbnails as featured images.', 'video-embed-thumbnail-generator')."</label> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('If your theme uses the featured image meta tag, this will automatically set a video\'s parent post\'s featured image to the most recently saved thumbnail image.', 'video-embed-thumbnail-generator')."</span></span><br /> <a class='button-secondary' href='javascript:void(0);' onclick='kgvid_set_all_featured();'>"._x('Set all as featured', 'implied "Set all thumbnails as featured"', 'video-embed-thumbnail-generator')."</a> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('If you\'ve generated thumbnails before enabling this option, this will set all existing thumbnails as featured images. Be careful!', 'video-embed-thumbnail-generator')."</span></span>\n\t";
|
4326 |
+
}
|
4327 |
+
|
4328 |
function kgvid_user_roles_callback($page_scope = 'site') {
|
4329 |
global $wp_roles;
|
4330 |
$options = kgvid_get_options();
|
4331 |
$capabilities_checkboxes = array();
|
4332 |
+
$capabilities = array( 'make_video_thumbnails'=>__('Can make thumbnails', 'video-embed-thumbnail-generator'), 'encode_videos'=>__('Can encode videos', 'video-embed-thumbnail-generator'), 'edit_others_video_encodes' => __('Can view & modify other users encoded videos', 'video-embed-thumbnail-generator') );
|
4333 |
foreach ( $capabilities as $capability => $capability_name ) {
|
4334 |
$capabilities_checkboxes[] = "<div class='kgvid_user_roles'><strong>".$capability_name.":</strong><br>";
|
4335 |
|
4365 |
echo implode("", $capabilities_checkboxes)."\n\t";
|
4366 |
}
|
4367 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4368 |
function kgvid_thumb_parent_callback() {
|
4369 |
$options = kgvid_get_options();
|
4370 |
$items = array("post", "video");
|
4373 |
$selected = ($options['thumb_parent']==$item) ? 'selected="selected"' : '';
|
4374 |
echo "<option value='$item' $selected>$item</option>";
|
4375 |
}
|
4376 |
+
echo "</select> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('This depends on your theme. Thumbnails generated by the plugin can be saved as children of the video attachment or the post. Some themes use an image attached to a post instead of the built-in featured image meta tag. Version 3.x of this plugin saved all thumbnails as children of the video.', 'video-embed-thumbnail-generator')."</span></span><br /> <a class='button-secondary' href='javascript:void(0);' onclick='kgvid_switch_parents();'>".__('Set all parents', 'video-embed-thumbnail-generator')."</a> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('If you\'ve generated thumbnails before changing this option, this will set all existing thumbnails as children of your currently selected option.', 'video-embed-thumbnail-generator')."</span></span>\n\t";
|
4377 |
}
|
4378 |
|
4379 |
function kgvid_delete_children_callback() {
|
4387 |
$selected = ($options['delete_children']==$value) ? 'selected="selected"' : '';
|
4388 |
echo "<option value='$value' $selected>$name</option>";
|
4389 |
}
|
4390 |
+
echo "</select> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('If you delete the original video you can choose to delete all associated attachments (thumbnails & videos) or keep the thumbnail.', 'video-embed-thumbnail-generator')."</span></span>\n\t";
|
4391 |
}
|
4392 |
|
4393 |
function kgvid_titlecode_callback() {
|
4394 |
$options = kgvid_get_options();
|
4395 |
+
echo "<input class='regular-text code' id='titlecode' name='kgvid_video_embed_options[titlecode]' type='text' value='".htmlentities(stripslashes($options['titlecode']))."' /> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".sprintf( __('HTML tag applied to titles inserted above the video. Examples: %s. Corresponding closing tags will be applied to the end of the title automatically.', 'video-embed-thumbnail-generator'), "<strong>, <em>, <H2>, <span class='videotitle'>")."</span></span>\n\t";
|
4396 |
}
|
4397 |
|
4398 |
function kgvid_template_callback() {
|
4403 |
$selected = ($options['template']==$value) ? 'selected="selected"' : '';
|
4404 |
echo "<option value='$value' $selected>$name</option>";
|
4405 |
}
|
4406 |
+
echo "</select> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('The plugin can filter your media attachment page to display videos using your chosen settings, or completely replace your attachment template to show only the video. If you were one of the few people using iframe embed codes before version 4.0 of this plugin then you should continue to use "Video only" but otherwise it\'s not recommended.', 'video-embed-thumbnail-generator')."</span></span>\n\t";
|
4407 |
}
|
4408 |
|
4409 |
function kgvid_encode_settings_section_callback() {
|
4417 |
function kgvid_app_path_callback() {
|
4418 |
$options = kgvid_get_options();
|
4419 |
//if ( is_plugin_active_for_network( plugin_basename(__FILE__) ) ) { $options = get_site_option( 'kgvid_video_embed_network_options' ); }
|
4420 |
+
echo "<input class='affects_ffmpeg regular-text code' id='app_path' data-ffmpeg_exists='".$options['ffmpeg_exists']."' name='kgvid_video_embed_options[app_path]' type='text' value='".$options['app_path']."' /><span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".sprintf( __('This should be the folder where applications are installed on your server, not a direct path to an application, so it doesn\'t usually end with %1$s. Example: %2$s.', 'video-embed-thumbnail-generator'), "<code><strong class='video_app_name'>".strtoupper($options['video_app'])."</strong></code>", "<code>/usr/local/bin</code>" )."\n\t";
|
4421 |
}
|
4422 |
|
4423 |
function kgvid_video_app_callback() {
|
4429 |
$selected = ($options['video_app']==$value) ? 'selected="selected"' : '';
|
4430 |
echo "<option value='$value' $selected>$name</option>";
|
4431 |
}
|
4432 |
+
echo "</select> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('FFMPEG split into two separate branches in 2011. The new branch is called LIBAV and executes using "avconv" instead of "ffmpeg." Both are still actively developed and FFMPEG frequently incorporates LIBAV features. Debian & Ubuntu users probably have LIBAV installed.', 'video-embed-thumbnail-generator')."</span></span>\n\t";
|
4433 |
}
|
4434 |
|
4435 |
function kgvid_browser_thumbnails_callback() {
|
4451 |
echo "<div class='kgvid_video_app_required'>";
|
4452 |
echo "<input ".checked( $options['encode_fullres'], "on", false )." id='encode_fullres' name='kgvid_video_embed_options[encode_fullres]' type='checkbox' /> <label for='encode_fullres'>".__('Replace original with', 'video-embed-thumbnail-generator');
|
4453 |
|
4454 |
+
echo " <select id='replace_format' name='kgvid_video_embed_options[replace_format]' class='affects_ffmpeg' onchange='kgvid_change_replace_format();'>";
|
4455 |
foreach($items as $value=>$name) {
|
4456 |
$selected = ($options['replace_format']==$value) ? 'selected="selected"' : '';
|
4457 |
echo "<option value='$value' $selected>$name</option>";
|
4459 |
echo "</select> ";
|
4460 |
|
4461 |
|
4462 |
+
echo "</label> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('If you have FFMPEG/LIBAV and the proper libraries installed, you can choose to replace your uploaded video with your preferred format, and also transcode into as many as seven additional formats depending on the resolution of your original source. Different browsers have different playback capabilities. Most desktop browsers can play H.264, and all modern mobile devices can play at least 360p H.264. If you create multiple H.264 resolutions, the highest resolution supported by the device will be served up automatically. The plugin will not upconvert your video, so if you upload a 720p video, it will not waste your time creating a 1080p version. There was a time when it seemed like a good idea to provide OGV or WEBM for some desktop browsers, but even Firefox allows H.264 playback on most operating systems now. I no longer recommend encoding OGV or WEBM unless you expect a large number of no-Flash sticklers visiting your site. WEBM VP9 is a new technology and requires a version of FFMPEG or LIBAV newer than October 2013.', 'video-embed-thumbnail-generator')."</span></span><br />";
|
4463 |
echo "<input ".checked( $options['encode_1080'], "on", false )." id='encode_1080' name='kgvid_video_embed_options[encode_1080]' type='checkbox' /> <label for='encode_1080'>1080p H.264 <small><em>".__('(iPhone 4s+, iPad 2+, modern Android, Windows Phone 8, Chrome, Safari, IE 9+, Firefox)', 'video-embed-thumbnail-generator')."</em></small></label><br />";
|
4464 |
echo "<input ".checked( $options['encode_720'], "on", false )." id='encode_720' name='kgvid_video_embed_options[encode_720]' type='checkbox' /> <label for='encode_720'>720p H.264 <small><em>".__('(iPhone 4+, iPad, most Android, Chrome, Safari, IE 9+, Firefox)', 'video-embed-thumbnail-generator')."</em></small></label><br />";
|
4465 |
echo "<input ".checked( $options['encode_mobile'], "on", false )." id='encode_mobile' name='kgvid_video_embed_options[encode_mobile]' type='checkbox' /> <label for='encode_mobile'>360p H.264 <small><em>(iOS, Android, Windows Phone 7+, Chrome, Safari, IE 9+, Firefox)</em></small></label><br />";
|
4499 |
|
4500 |
function kgvid_automatic_callback() {
|
4501 |
$options = kgvid_get_options();
|
4502 |
+
$video_formats = kgvid_video_formats();
|
4503 |
echo "<div class='kgvid_video_app_required'>";
|
4504 |
echo "<input ".checked( $options['auto_encode'], "on", false )." id='auto_encode' name='kgvid_video_embed_options[auto_encode]' type='checkbox' /> <label for='auto_encode'>".__('Encode formats selected above.', 'video-embed-thumbnail-generator')."</label><br />";
|
4505 |
+
echo "<input ".checked( $options['auto_encode_gif'], "on", false )." id='auto_encode_gif' name='kgvid_video_embed_options[auto_encode_gif]' type='checkbox' /> <label for='auto_encode_gif'>".sprintf( __('Convert animated GIFs to %s.', 'video-embed-thumbnail-generator'), '<span class="kgvid_replace_format">'.strtoupper($video_formats['fullres']['type']).'</span>')."</label><br />";
|
4506 |
if ( intval($options['auto_thumb_number']) == 1 ) {
|
4507 |
$items = array(0, 25, 50, 75);
|
4508 |
$percentage_select = "<select id='auto_thumb_position' name='kgvid_video_embed_options[auto_thumb_position]'>";
|
4522 |
function kgvid_old_video_buttons_callback() {
|
4523 |
$options = kgvid_get_options();
|
4524 |
echo "<div class='kgvid_video_app_required'>";
|
4525 |
+
echo "<p><a id='generate_old_thumbs_button' class='button-secondary' href='javascript:void(0);' onclick='kgvid_auto_generate_old(\"thumbs\");'>".__('Generate thumbnails', 'video-embed-thumbnail-generator')."</a> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".sprintf( __('Use %s to automatically generate thumbnails for every video in the Media Library that doesn\'t already have them. Uses the automatic thumbnail settings above. This could take a very long time if you have a lot of videos. Proceed with caution!', 'video-embed-thumbnail-generator'), "<strong class='video_app_name'>".strtoupper($options['video_app'])."</strong>" )."</span></span></p>";
|
4526 |
+
echo "<p><a id='generate_old_encode_button' class='button-secondary' href='javascript:void(0);' onclick='kgvid_auto_generate_old(\"encode\");'>".__('Encode videos', 'video-embed-thumbnail-generator')."</a> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".sprintf( __('Add every video in the Media Library to the encode queue if it hasn\'t already been encoded. Uses the default encode formats chosen above.', 'video-embed-thumbnail-generator'), "<strong class='video_app_name'>".strtoupper($options['video_app'])."</strong>" )."</span></span></p>";
|
4527 |
+
echo "</div>\n\t";
|
4528 |
+
}
|
4529 |
+
|
4530 |
+
function kgvid_error_email_callback() {
|
4531 |
+
$options = kgvid_get_options();
|
4532 |
+
echo "<div class='kgvid_video_app_required'>";
|
4533 |
+
echo " <select id='error_email' name='kgvid_video_embed_options[error_email]'>";
|
4534 |
+
$users = get_users( array( 'role__in' => array_keys($options['capabilities']['edit_others_video_encodes']) ) );
|
4535 |
+
if ( $users ) {
|
4536 |
+
$authorized_users = array();
|
4537 |
+
foreach ( $users as $user ) {
|
4538 |
+
$authorized_users[$user->user_login] = $user->ID;
|
4539 |
+
}
|
4540 |
+
}
|
4541 |
+
$items = array_merge( array(
|
4542 |
+
__('Nobody', 'video-embed-thumbnail-generator') => 'nobody',
|
4543 |
+
__('User who initiated encoding', 'video-embed-thumbnail-generator') => 'encoder'
|
4544 |
+
), $authorized_users
|
4545 |
+
);
|
4546 |
+
foreach($items as $name=>$value) {
|
4547 |
+
$selected = ($options['error_email']==$value) ? 'selected="selected"' : '';
|
4548 |
+
echo "<option value='$value' $selected>$name</option>";
|
4549 |
+
}
|
4550 |
+
echo "</select>";
|
4551 |
echo "</div>\n\t";
|
4552 |
}
|
4553 |
|
4555 |
$options = kgvid_get_options();
|
4556 |
echo "<div class='kgvid_video_app_required'>";
|
4557 |
echo "<table class='kgvid_htaccess'><tbody><tr><td>".__('Username:', 'video-embed-thumbnail-generator')."</td><td><input class='regular-text affects_ffmpeg' id='htaccess_login' name='kgvid_video_embed_options[htaccess_login]' type='text' value='".$options['htaccess_login']."' /></td></tr>";
|
4558 |
+
echo "<tr><td>".__('Password:', 'video-embed-thumbnail-generator')."</td><td><input class='regular-text affects_ffmpeg' id='htaccess_password' name='kgvid_video_embed_options[htaccess_password]' type='text' value='".$options['htaccess_password']."' /> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".sprintf( __('If your videos are htaccess protected, %s will access them using these credentials.', 'video-embed-thumbnail-generator'), "<strong class='video_app_name'>".strtoupper($options['video_app'])."</strong>" )."</span></span></td></tr></tbody></table>";
|
4559 |
echo "</div>\n\t";
|
4560 |
}
|
4561 |
|
4594 |
if ( empty($options['moov_path']) ) { $options['moov_path'] = $options['app_path']; }
|
4595 |
echo "<div class='kgvid_video_app_required'>";
|
4596 |
$items = array(__("none", 'video-embed-thumbnail-generator')=>"none", "movflags faststart"=>"movflag", "qt-faststart"=>"qt-faststart", "MP4Box"=>"MP4Box");
|
4597 |
+
echo "<select onchange='kgvid_moov_setting()' id='moov' name='kgvid_video_embed_options[moov]' class='affects_ffmpeg'>";
|
4598 |
foreach($items as $name => $value) {
|
4599 |
$selected = ($options['moov']==$value) ? 'selected="selected"' : '';
|
4600 |
echo "<option value='$value' $selected>$name</option>";
|
4601 |
}
|
4602 |
+
echo "</select> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".sprintf( __('By default %1$s places moov atoms at the end of H.264 encoded files, which forces the entire file to download before playback can start and can prevent Flash players from playing them at all. Since approximately October 2012 %1$s can fix the problem at the end of the encoding process by using the option `movflags faststart`. This is the easiest and fastest way to correct the problem, but older versions of %1$s will not work if you select the movflags option. If you can\'t update to a new version of %1$s, select qt-faststart or MP4Box which will run after encoding is finished if they are installed on your server.', 'video-embed-thumbnail-generator'), "<strong class='video_app_name'>".strtoupper($options['video_app'])."</strong>")."</span></span>";
|
4603 |
echo "<p id='moov_path_p'>".sprintf( __('Path to %s:', 'video-embed-thumbnail-generator'), "<span class='kgvid_moov_option'>".$options['moov']."</span>")." <input class='regular-text code affects_ffmpeg' id='moov_path' name='kgvid_video_embed_options[moov_path]' type='text' value='".$options['moov_path']."' /></p>";
|
4604 |
echo "</div>\n\t";
|
4605 |
}
|
4613 |
$selected = ($options['rate_control']==$value) ? 'selected="selected"' : '';
|
4614 |
echo "<option value='$value' $selected>$name</option>";
|
4615 |
}
|
4616 |
+
echo "</select> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Constant Rate Factor (CRF) attempts to maintain a particular quality output for the entire video and only uses bits the encoder determines are necessary. Average Bit Rate is similar to the method used in older versions of this plugin. If CRF is selected, WEBM encoding will also use the ABR setting to set a max bit rate 25% higher than the ABR. Without a max bit rate setting WEBM files are terrible quality.', 'video-embed-thumbnail-generator')."</span></span>";
|
4617 |
echo "</div>\n\t";
|
4618 |
}
|
4619 |
|
4625 |
$selected = ($options['h264_CRF']==$i) ? 'selected="selected"' : '';
|
4626 |
echo "<option value='".$i."' $selected>".$i."</option>";
|
4627 |
}
|
4628 |
+
echo "</select> H.264 <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Lower values are higher quality. 18 is considered visually lossless. Default is 23.', 'video-embed-thumbnail-generator')."</span></span><br />";
|
4629 |
|
4630 |
echo "<select id='webm_CRF' name='kgvid_video_embed_options[webm_CRF]' class='affects_ffmpeg'>";
|
4631 |
for ($i = 4; $i <= 63; $i++ ) {
|
4632 |
$selected = ($options['webm_CRF']==$i) ? 'selected="selected"' : '';
|
4633 |
echo "<option value='".$i."' $selected>".$i."</option>";
|
4634 |
}
|
4635 |
+
echo "</select> WEBM <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Lower values are higher quality. Default is 10.', 'video-embed-thumbnail-generator')."</span></span><br />\n\t";
|
4636 |
|
4637 |
echo "<select id='ogv_CRF' name='kgvid_video_embed_options[ogv_CRF]' class='affects_ffmpeg'>";
|
4638 |
for ($i = 1; $i <= 10; $i++ ) {
|
4639 |
$selected = ($options['ogv_CRF']==$i) ? 'selected="selected"' : '';
|
4640 |
echo "<option value='".$i."' $selected>".$i."</option>";
|
4641 |
}
|
4642 |
+
echo "</select> OGV (qscale) <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Higher values are higher quality. Default is 6.', 'video-embed-thumbnail-generator')."</span></span>";
|
4643 |
echo "</div>\n\t";
|
4644 |
}
|
4645 |
|
4651 |
$selected = ($options['bitrate_multiplier']==strval($i)) ? 'selected="selected"' : '';
|
4652 |
echo "<option value='$i' $selected>$i</option>";
|
4653 |
}
|
4654 |
+
echo "</select> ".__('bits per pixel.', 'video-embed-thumbnail-generator')." <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Default is 0.1', 'video-embed-thumbnail-generator')."</span></span><br />";
|
4655 |
echo "<span class='kgvid_gray_text'>1080p = <span id='1080_bitrate'>".round(floatval($options['bitrate_multiplier'])*1920*1080*30/1024)."</span> kbps<br />";
|
4656 |
echo "720p = <span id='720_bitrate'>".round(floatval($options['bitrate_multiplier'])*1280*720*30/1024)."</span> kbps<br />";
|
4657 |
echo "360p = <span id='360_bitrate'>".round(floatval($options['bitrate_multiplier'])*640*360*30/1024)."</span> kbps</span>";
|
4667 |
$selected = ($options['h264_profile']==$item) ? 'selected="selected"' : '';
|
4668 |
echo "<option value='$item' $selected>$item</option>";
|
4669 |
}
|
4670 |
+
echo "</select> "._x('profile', 'H.264 profile. Might not need translation', 'video-embed-thumbnail-generator')." <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Lower profiles will slightly increase file sizes. This mostly depends on your need for compatability with Android devices. Main profile seems to work on recent phones, although officially Android only supports baseline. High profile is not recommended for mobile or Flash compatibility, and anything above high is designed for professional video and probably incompatible with consumer devices. Older versions of FFMPEG might ignore this setting altogether.', 'video-embed-thumbnail-generator')."</span></span><br />";
|
4671 |
echo "<select id='h264_level' name='kgvid_video_embed_options[h264_level]' class='affects_ffmpeg'>";
|
4672 |
$items = array("none", "1", "1.1", "1.2", "1.3", "2", "2.1", "2.2", "3", "3.1", "3.2", "4", "4.1", "4.2", "5", "5.1");
|
4673 |
foreach($items as $item) {
|
4674 |
$selected = ($options['h264_level']==$item) ? 'selected="selected"' : '';
|
4675 |
echo "<option value='$item' $selected>$item</option>";
|
4676 |
}
|
4677 |
+
echo "</select> "._x('level', 'H.264 level. Might not need translation', 'video-embed-thumbnail-generator')." <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('3.0 is default. Lower levels will lower maximum bit rates and decoding complexity. This mostly depends on your need for compatability with mobile devices. Older versions of FFMPEG might ignore this setting altogether.', 'video-embed-thumbnail-generator')."</span></span>";
|
4678 |
echo "</div>\n\t";
|
4679 |
}
|
4680 |
|
4694 |
function kgvid_ffmpeg_options_callback() {
|
4695 |
$options = kgvid_get_options();
|
4696 |
echo "<div class='kgvid_video_app_required'>";
|
4697 |
+
echo "<input class='affects_ffmpeg' onchange='if(jQuery(\"#ffmpeg_vpre\").attr(\"checked\")==\"checked\"){jQuery(\"#video_bitrate_flag\").attr(\"checked\", \"checked\"); jQuery(\"#nostdin\").removeAttr(\"checked\");}' ".checked( $options['video_bitrate_flag'], "on", false )." id='video_bitrate_flag' name='kgvid_video_embed_options[video_bitrate_flag]' type='checkbox' /> <label for='video_bitrate_flag'>".__('Enable legacy FFMPEG "-b" and "-ba" bitrate flags.', 'video-embed-thumbnail-generator')."</label> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Enable if your installed version of FFMPEG is old enough that you can\'t use the newer -b:v flags (Dreamhost users must turn this on). It may cause newer versions of FFMPEG to fail.', 'video-embed-thumbnail-generator')."</span></span><br />";
|
4698 |
+
echo "<input class='affects_ffmpeg' onchange='if(jQuery(\"#ffmpeg_vpre\").attr(\"checked\")==\"checked\"){jQuery(\"#video_bitrate_flag\").attr(\"checked\", \"checked\"); jQuery(\"#nostdin\").removeAttr(\"checked\");}' ".checked( $options['ffmpeg_vpre'], "on", false )." id='ffmpeg_vpre' name='kgvid_video_embed_options[ffmpeg_vpre]' type='checkbox' /> <label for='ffmpeg_vpre'>".__('Enable legacy libx264 parameters.', 'video-embed-thumbnail-generator')."</label> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Enable if your installed version of FFMPEG is old enough that libx264 requires additional configuration to operate (Dreamhost users must turn this on). This should help if you can encode WEBM or OGV files but H264/Mobile files fail. It could cause newer versions of FFMPEG to fail.', 'video-embed-thumbnail-generator')."</span></span><br />";
|
4699 |
+
echo "<input class='affects_ffmpeg' ".checked( $options['ffmpeg_old_rotation'], "on", false )." id='ffmpeg_old_rotation' name='kgvid_video_embed_options[ffmpeg_old_rotation]' type='checkbox' /> <label for='ffmpeg_old_rotation'>".__('Enable legacy FFMPEG rotation method.', 'video-embed-thumbnail-generator')."</label> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Enable if vertical videos shot on mobile devices don\'t rotate correctly or generate errors. If legacy libx264 paramaters are necessary, rotation won\'t work at all.', 'video-embed-thumbnail-generator')."</span></span><br />";
|
4700 |
+
echo "<input class='affects_ffmpeg' ".checked( $options['nostdin'], "on", false )." id='nostdin' name='kgvid_video_embed_options[nostdin]' type='checkbox' /> <label for='nostdin'>".__('Disable stdin.', 'video-embed-thumbnail-generator')."</label> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".__('Turn off this checkbox if your installed version of FFMPEG is old enough that it does not recognize the nostdin flag (Dreamhost users must turn this off).', 'video-embed-thumbnail-generator')."</span></span>";
|
4701 |
echo "</div>\n\t";
|
4702 |
}
|
4703 |
|
4710 |
$selected = ($options['simultaneous_encodes']==$i) ? 'selected="selected"' : '';
|
4711 |
echo "<option value='".$i."' $selected>".$i."</option>";
|
4712 |
}
|
4713 |
+
echo "</select> ".__('Simultaneous encodes.', 'video-embed-thumbnail-generator')." <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".sprintf( __('Increasing the number will allow %1$s to encode more than one file at a time, but may lead to %1$s monopolizing system resources.', 'video-embed-thumbnail-generator'), "<strong class='video_app_name'>".strtoupper($options['video_app'])."</strong>" )."</span></span><br />";
|
4714 |
|
4715 |
echo "<select id='threads' name='kgvid_video_embed_options[threads]' class='affects_ffmpeg'>";
|
4716 |
for ($i = 0; $i <= 16; $i++ ) {
|
4717 |
$selected = ($options['threads']==$i) ? 'selected="selected"' : '';
|
4718 |
echo "<option value='".$i."' $selected>".$i."</option>";
|
4719 |
}
|
4720 |
+
echo "</select> "._x('threads', 'CPU threads. Might not need translating', 'video-embed-thumbnail-generator')." <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".sprintf( __('Default is 1, which limits encoding speed but prevents encoding from using too many system resources. Selecting 0 will allow %1$s to optimize the number of threads or you can set the number manually. This may lead to %1$s monopolizing system resources.', 'video-embed-thumbnail-generator'), "<strong class='video_app_name'>".strtoupper($options['video_app'])."</strong>" )."</span></span><br />";
|
4721 |
|
4722 |
+
echo "<input ".checked( $options['nice'], "on", false )." id='nice' name='kgvid_video_embed_options[nice]' class='affects_ffmpeg' type='checkbox' /> <label for='nice'>"._x('Run', 'execute program', 'video-embed-thumbnail-generator')." <code>nice</code>.</label> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".sprintf( __('Tells %1$s to run at a lower priority to avoid monopolizing system resources.', 'video-embed-thumbnail-generator'), "<strong class='video_app_name'>".strtoupper($options['video_app'])."</strong>" )."</span></span>";
|
4723 |
echo "</div>";
|
4724 |
|
4725 |
}
|
4727 |
function kgvid_test_ffmpeg_options_callback( $scope = 'site' ) {
|
4728 |
|
4729 |
$options = kgvid_get_options();
|
4730 |
+
$video_formats = kgvid_video_formats(false, false);
|
4731 |
$encode_string = "";
|
4732 |
if ( $options['ffmpeg_exists'] == "on" ) {
|
4733 |
|
4734 |
$movie_info = kgvid_get_video_dimensions(plugin_dir_path(__FILE__)."images/sample-video-h264.mp4");
|
4735 |
$uploads = wp_upload_dir();
|
4736 |
$encode_dimensions = kgvid_set_encode_dimensions($movie_info, $video_formats[$options['sample_format']]);
|
4737 |
+
$encode_string = kgvid_generate_encode_string(plugin_dir_path(__FILE__)."images/sample-video-h264.mp4", $uploads['path']."/sample-video-h264".$video_formats[$options['sample_format']]['suffix'], $movie_info, $options['sample_format'], $encode_dimensions['width'], $encode_dimensions['height'], intval($options['sample_rotate']));
|
4738 |
}
|
4739 |
|
4740 |
if ( is_array($encode_string) ) { $encode_string_implode = implode('' , $encode_string); }
|
4753 |
}
|
4754 |
$sample_format_select .= "</select>";
|
4755 |
|
4756 |
+
echo "<div id='ffmpeg_sample_div'".$display_div."><p>".sprintf( __('Sample %2$s encode command', 'video-embed-thumbnail-generator'), "<strong class='video_app_name'>".strtoupper($options['video_app'])."</strong>", $sample_format_select)."<br>";
|
4757 |
+
echo "<input ".checked( $options['sample_rotate'], 90, false )." id='sample_rotate' name='kgvid_video_embed_options[sample_rotate]' class='affects_ffmpeg' value='90' type='checkbox' /> <label for='sample_rotate'>".__('Test video rotation.', 'video-embed-thumbnail-generator')."</label> <span class='kgvid_tooltip wp-ui-text-highlight'><span class='kgvid_tooltip_classic'>".sprintf( __('Tests %1$s\'s ability to rotate vertical videos shot on mobile devices.', 'video-embed-thumbnail-generator'), "<strong class='video_app_name'>".strtoupper($options['video_app'])."</strong>" )."</span></span><br /><textarea id='ffmpeg_h264_sample' class='ffmpeg_sample_code code' cols='100' rows='5' wrap='soft' readonly='yes'>".$encode_string_implode."</textarea></p>";
|
4758 |
echo "<p>".sprintf( __('%s test output:', 'video-embed-thumbnail-generator'), "<strong class='video_app_name'>".strtoupper($options['video_app'])."</strong>")."<br /><textarea id='ffmpeg_output' class='ffmpeg_sample_code code' cols='100' rows='20' wrap='soft' readonly='yes'></textarea><br>".sprintf( __('For help interpreting this output, %s try our Wiki page on Github', 'video-embed-thumbnail-generator'), "<a href='https://github.com/kylegilman/video-embed-thumbnail-generator/wiki/Interpreting-FFMPEG-or-LIBAV-messages'>")."</a>.</p></div>\n\t";
|
4759 |
}
|
4760 |
|
4949 |
$options['ffmpeg_old_rotation'] = "on";
|
4950 |
$options['click_download'] = "on";
|
4951 |
}
|
4952 |
+
if ( $options['version'] < 4.6 ) {
|
4953 |
+
$options['version'] = 4.6;
|
4954 |
+
if ( !array_key_exists('nativecontrolsfortouch', $options) ) { $options['nativecontrolsfortouch'] = "on"; }
|
4955 |
+
$options['facebook_button'] = false;
|
4956 |
+
$options['sample_rotate'] = false;
|
4957 |
+
$options['twitter_button'] = false;
|
4958 |
+
$options['twitter_card'] = false;
|
4959 |
+
$options['schema'] = 'on';
|
4960 |
+
$options['error_email'] = 'nobody';
|
4961 |
+
$options['auto_encode_gif'] = false;
|
4962 |
+
$options['pixel_ratio'] = 'on';
|
4963 |
+
$options['twitter_username'] = kgvid_get_jetpack_twitter_username();
|
4964 |
+
|
4965 |
}
|
4966 |
|
4967 |
if ( $options['version'] != $default_options['version'] ) { $options['version'] = $default_options['version']; }
|
5128 |
$uploads = wp_upload_dir();
|
5129 |
$video_formats = kgvid_video_formats();
|
5130 |
$encode_dimensions = kgvid_set_encode_dimensions($movie_info, $video_formats[$validated_options['sample_format']]);
|
5131 |
+
$encode_string = kgvid_generate_encode_string(plugin_dir_path(__FILE__)."images/sample-video-h264.mp4", $uploads['path']."/sample-video-h264".$video_formats[$validated_options['sample_format']]['suffix'], $movie_info, $validated_options['sample_format'], $encode_dimensions['width'], $encode_dimensions['height'], intval($validated_options['sample_rotate']));
|
5132 |
$auto_thumb_label = kgvid_generate_auto_thumb_label();
|
5133 |
}
|
5134 |
}
|
5147 |
function kgvid_add_attachment_handler($post_id) {
|
5148 |
|
5149 |
$options = kgvid_get_options();
|
5150 |
+
$filename = get_attached_file($post_id);
|
5151 |
|
5152 |
if ( $options['auto_encode'] == "on" || $options['auto_thumb'] == "on" ) {
|
5153 |
|
5154 |
$post = get_post($post_id);
|
5155 |
+
$is_video = kgvid_is_video($post);
|
5156 |
|
5157 |
+
if ( $is_video ) {
|
|
|
|
|
5158 |
|
5159 |
wp_schedule_single_event( time() + rand(0,10), 'kgvid_cron_new_attachment', array($post_id) );
|
|
|
5160 |
$transient = get_transient( 'kgvid_new_attachment_transient' ); //error checking to avoid race conditions when using Add From Server
|
5161 |
if ( is_array($transient) ) { $transient[] = $post_id; }
|
5162 |
else { $transient = array($post_id); }
|
5163 |
set_transient( 'kgvid_new_attachment_transient', $transient, DAY_IN_SECONDS );
|
5164 |
+
|
5165 |
}
|
5166 |
|
5167 |
}
|
5172 |
function kgvid_cron_new_attachment_handler($post_id, $force = false) {
|
5173 |
|
5174 |
$options = kgvid_get_options();
|
5175 |
+
if ( $force == 'thumbs' ) { $options['auto_encode'] = false; }
|
5176 |
+
if ( $force == 'encode' ) { $options['auto_thumb'] = false; }
|
5177 |
|
5178 |
$post = get_post($post_id);
|
5179 |
$movieurl = wp_get_attachment_url($post_id);
|
5180 |
+
$filepath = get_attached_file($post_id);
|
5181 |
+
$is_animated = kgvid_is_animated_gif($filepath);
|
5182 |
|
5183 |
+
if ( $post && $post->post_mime_type != 'image/gif' && ( $force == 'thumbs' || $options['auto_thumb'] == "on" ) ) {
|
5184 |
|
5185 |
$thumb_output = array();
|
5186 |
$thumb_id = array();
|
5265 |
}
|
5266 |
}//end setting main thumbnail
|
5267 |
|
|
|
5268 |
}//end if auto_thumb is on
|
5269 |
|
5270 |
+
if ( $post && ( $force == 'encode' || $options['auto_encode'] == "on" )
|
5271 |
+
&& ( !$is_animated || $options['auto_encode_gif'] == "on" )
|
5272 |
+
) {
|
5273 |
+
|
5274 |
$video_formats = kgvid_video_formats();
|
5275 |
+
$kgvid_postmeta = kgvid_get_attachment_meta($post_id);
|
5276 |
+
$extension = pathinfo($filepath, PATHINFO_EXTENSION);
|
5277 |
$something_to_encode = false;
|
5278 |
$encode_checked = array();
|
5279 |
+
|
5280 |
+
if ( substr(basename($filepath, '.'.$extension), -10) == '-noreplace'
|
5281 |
+
|| ( array_key_exists('original_replaced', $kgvid_postmeta) && $kgvid_postmeta['original_replaced'] == $options['replace_format'] )
|
5282 |
+
) {
|
5283 |
+
$options['encode_fullres'] = false;
|
5284 |
+
}
|
5285 |
+
|
5286 |
+
if ( $post->post_mime_type == 'image/gif' ) {
|
5287 |
+
$fullres_only = array('fullres');
|
5288 |
+
$video_formats = array_intersect_key($video_formats, array_flip($fullres_only));
|
5289 |
+
}
|
5290 |
+
|
5291 |
foreach ( $video_formats as $format => $format_stats ) {
|
5292 |
+
|
5293 |
if ( array_key_exists('encode_'.$format, $options) && $options['encode_'.$format] == "on" ) {
|
5294 |
$encode_checked[$format] = "true";
|
5295 |
$something_to_encode = true;
|
5296 |
}
|
5297 |
+
|
5298 |
else { $encode_checked[$format] = "notchecked"; }
|
5299 |
+
|
5300 |
}
|
5301 |
+
|
5302 |
if ( $something_to_encode ) {
|
5303 |
$output = kgvid_enqueue_videos($post_id, $movieurl, $encode_checked, $post->post_parent);
|
5304 |
$output = kgvid_encode_videos();
|
5305 |
+
|
5306 |
}
|
5307 |
+
|
5308 |
+
}//end if auto_encode
|
5309 |
+
|
5310 |
}
|
5311 |
add_action('kgvid_cron_new_attachment', 'kgvid_cron_new_attachment_handler');
|
5312 |
|
5313 |
+
function kgvid_change_thumbnail_parent( $post_id, $parent_id ) {
|
5314 |
|
5315 |
$args = array(
|
5316 |
'post_type' => 'attachment',
|
5317 |
'post_mime_type' => 'image',
|
5318 |
'numberposts' => '-1',
|
5319 |
'meta_key' => '_kgflashmediaplayer-video-id',
|
5320 |
+
'meta_value' => $post_id,
|
5321 |
);
|
5322 |
$thumbnails = get_posts( $args ); //find all thumbnail children of the video in the database
|
5323 |
|
5328 |
if ( $thumbnail->post_parent != $parent_id ) {
|
5329 |
|
5330 |
if ( empty($parent_id) ) {
|
5331 |
+
$thumbnail->post_parent = $post_id;
|
5332 |
}
|
5333 |
|
5334 |
+
else { //parent post exists
|
5335 |
$thumbnail->post_parent = $parent_id;
|
5336 |
}
|
5337 |
|
5360 |
if ( isset( $_REQUEST['found_post_id'] ) ) { $parent_id = (int) $_REQUEST['found_post_id']; }
|
5361 |
else { $parent_id = 0; }
|
5362 |
|
5363 |
+
foreach ( $_REQUEST['media'] as $post_id ) {
|
5364 |
+
|
5365 |
+
kgvid_change_thumbnail_parent( $post_id, $parent_id );
|
5366 |
|
5367 |
+
if ( $options['featured'] == 'on' && !has_post_thumbnail( $parent_id ) ) {
|
5368 |
+
$featured_id = get_post_meta($post_id, '_kgflashmediaplayer-poster-id', true);
|
5369 |
+
if ( !empty($featured_id) ) {
|
5370 |
+
set_post_thumbnail($parent_id, $featured_id);
|
5371 |
+
}
|
5372 |
+
}
|
5373 |
|
5374 |
}//end loop through modified attachments
|
5375 |
|
5380 |
}
|
5381 |
add_filter( 'wp_redirect', 'kgvid_upload_page_change_thumbnail_parent' ); //when attachment parent is manually changed on the Media Library page
|
5382 |
|
5383 |
+
function kgvid_validate_post_updated( $post_id ) {
|
5384 |
|
5385 |
$options = kgvid_get_options();
|
5386 |
+
$post = get_post($post_id);
|
5387 |
+
$is_video = kgvid_is_video($post);
|
5388 |
|
5389 |
+
if ( $is_video ) {
|
|
|
|
|
|
|
|
|
|
|
5390 |
|
5391 |
+
if ( $options['thumb_parent'] == 'post' ) {
|
5392 |
+
kgvid_change_thumbnail_parent( $post_id, $post->post_parent );
|
5393 |
+
}
|
5394 |
|
5395 |
+
if ( $options['featured'] == 'on' && !has_post_thumbnail( $post->post_parent ) ) {
|
5396 |
+
$featured_id = get_post_meta($post_id, '_kgflashmediaplayer-poster-id', true);
|
5397 |
+
if ( !empty($featured_id) ) {
|
5398 |
+
set_post_thumbnail($post->post_parent, $featured_id);
|
5399 |
+
}
|
5400 |
+
}
|
5401 |
}
|
5402 |
|
5403 |
}
|
5413 |
function kgvid_image_attachment_fields_to_edit($form_fields, $post) {
|
5414 |
|
5415 |
$options = kgvid_get_options();
|
5416 |
+
$is_video = kgvid_is_video($post);
|
5417 |
|
5418 |
+
if ( $is_video ) {
|
|
|
|
|
|
|
|
|
5419 |
|
5420 |
wp_enqueue_media(); //allows using the media modal in the Media Library
|
5421 |
wp_enqueue_script( 'kgvid_video_plugin_admin' );
|
5422 |
wp_enqueue_style( 'video_embed_thumbnail_generator_style' );
|
5423 |
|
5424 |
+
global $user_ID;
|
5425 |
+
|
5426 |
$field_id = kgvid_backwards_compatible($post->ID);
|
5427 |
$movieurl = wp_get_attachment_url($post->ID);
|
5428 |
$moviefile = get_attached_file($post->ID);
|
5429 |
$kgvid_postmeta = kgvid_get_attachment_meta($post->ID);
|
5430 |
+
$created_time = time()-get_post_time('U', true, $post->ID);
|
5431 |
+
|
5432 |
+
if ( $user_ID == $post->post_author || current_user_can('edit_others_posts') ) {
|
5433 |
+
$readonly = '';
|
5434 |
+
$security_disabled = '';
|
5435 |
+
}
|
5436 |
+
else {
|
5437 |
+
$readonly = ' readonly';
|
5438 |
+
$security_disabled = ' disabled';
|
5439 |
+
}
|
5440 |
|
5441 |
$form_fields["kgflashmediaplayer-url"]["input"] = "hidden";
|
5442 |
$form_fields["kgflashmediaplayer-url"]["value"] = $movieurl;
|
5474 |
$form_fields["kgflashmediaplayer-aspect"]["value"] = round($set['height']/$set['width'], 5);
|
5475 |
|
5476 |
$nonce = wp_create_nonce('video-embed-thumbnail-generator-nonce');
|
5477 |
+
$form_fields["kgflashmediaplayer-security"]["input"] = "hidden";
|
5478 |
+
$form_fields["kgflashmediaplayer-security"]["value"] = $nonce;
|
5479 |
|
5480 |
+
if ( $post->post_mime_type != 'image/gif' ) {
|
5481 |
+
$form_fields["views"]["label"] = __('Video Stats', 'video-embed-thumbnail-generator');
|
5482 |
+
$form_fields["views"]["input"] = "html";
|
5483 |
+
$form_fields["views"]["html"] = sprintf( _n('%d Start', '%d Starts', intval($kgvid_postmeta['starts']), 'video-embed-thumbnail-generator'), intval($kgvid_postmeta['starts']) ).', '.sprintf( _n('%d Complete View', '%d Complete Views', intval($kgvid_postmeta['completeviews']), 'video-embed-thumbnail-generator'), intval($kgvid_postmeta['completeviews']) ).'<br />'.__('Video ID:', 'video-embed-thumbnail-generator').' '.$post->ID;
|
|
|
|
|
|
|
5484 |
|
5485 |
+
// ** Thumbnail section **//
|
|
|
|
|
|
|
|
|
|
|
|
|
5486 |
|
5487 |
+
$thumbnail_url = get_post_meta($post->ID, "_kgflashmediaplayer-poster", true);
|
5488 |
+
if ( is_ssl() ) { $thumbnail_url = str_replace('http:', 'https:', $thumbnail_url); }
|
5489 |
|
5490 |
+
$thumbnail_html = "";
|
5491 |
+
if ( !empty($kgvid_postmeta['autothumb-error']) && empty($thumbnail_url) ) {
|
5492 |
+
$thumbnail_html = '<div class="kgvid_thumbnail_box kgvid_chosen_thumbnail_box">'.$kgvid_postmeta['autothumb-error'].'</div>';
|
5493 |
+
}
|
5494 |
+
elseif ( !empty($thumbnail_url) ) {
|
5495 |
+
$thumbnail_html = '<div class="kgvid_thumbnail_box kgvid_chosen_thumbnail_box"><img width="200" src="'.$thumbnail_url.'"></div>';
|
5496 |
+
}
|
5497 |
|
5498 |
+
$choose_from_video_content = "";
|
5499 |
+
$generate_content = "";
|
5500 |
+
$thumbnail_timecode = "";
|
|
|
|
|
|
|
|
|
5501 |
|
5502 |
if ( !isset($options['ffmpeg_exists']) || $options['ffmpeg_exists'] == "notchecked" ) {
|
5503 |
+
kgvid_check_ffmpeg_exists($options, true);
|
5504 |
+
}
|
5505 |
if ( $options['ffmpeg_exists'] == "notinstalled" ) { $ffmpeg_disabled_text = 'disabled="disabled" title="'.sprintf( __('%1$s not found at %2$s and unable to load video in browser for thumbnail generation.', 'video-embed-thumbnail-generator'), strtoupper($options['video_app']), $options['app_path'] ).'"'; }
|
5506 |
else { $ffmpeg_disabled_text = ""; }
|
5507 |
|
5508 |
$update_script = "";
|
5509 |
+
if ( $options['ffmpeg_exists'] == "on" && $options['auto_thumb'] == "on" && !$thumbnail_url && $created_time < 60 ) {
|
5510 |
+
$update_script = '<script type="text/javascript">jQuery(document).ready(function() { setTimeout(function(){ kgvid_redraw_thumbnail_box("'.$post->ID.'") }, 5000); });</script>';
|
5511 |
+
$thumbnail_html = '<div class="kgvid_thumbnail_box kgvid_chosen_thumbnail_box" style="height:112px;"><span style="margin-top: 45px;
|
|
|
|
|
|
|
|
|
|
|
5512 |
display: inline-block;">Loading thumbnail...</span></div>';
|
|
|
|
|
|
|
5513 |
}
|
5514 |
|
5515 |
+
if ( empty($security_disabled) && current_user_can('make_video_thumbnails') ) {
|
|
|
|
|
5516 |
|
5517 |
+
if ( !empty($kgvid_postmeta['thumbtime']) ) { $kgvid_postmeta['numberofthumbs'] = "1"; }
|
|
|
|
|
5518 |
|
5519 |
+
$args = array(
|
5520 |
+
'mime_type' => 'image/jpeg',
|
5521 |
+
'methods' => array(
|
5522 |
+
'save'
|
5523 |
+
)
|
5524 |
+
);
|
5525 |
+
$img_editor_works = wp_image_editor_supports($args);
|
|
|
5526 |
|
5527 |
+
$moviefiletype = pathinfo($movieurl, PATHINFO_EXTENSION);
|
5528 |
+
$h264compatible = array("mp4", "mov", "m4v");
|
5529 |
+
if ( $moviefiletype == "mov" || $moviefiletype == "m4v" ) { $moviefiletype = "mp4"; }
|
5530 |
|
5531 |
+
$video_formats = kgvid_video_formats();
|
5532 |
+
$encodevideo_info = kgvid_encodevideo_info($movieurl, $post->ID);
|
5533 |
+
if ( in_array($moviefiletype, $h264compatible) ) {
|
5534 |
+
$encodevideo_info["original"]["exists"] = true;
|
5535 |
+
$encodevideo_info["original"]["url"] = $movieurl;
|
5536 |
+
$video_formats = array( "original" => array("mime" => "video/".$moviefiletype) ) + $video_formats;
|
5537 |
+
}
|
5538 |
+
else { $encodevideo_info["original"]["exists"] = false; }
|
5539 |
+
|
5540 |
+
$sources = array();
|
5541 |
+
|
5542 |
+
foreach ($video_formats as $format => $format_stats) {
|
5543 |
+
if ( $format != "original" && $encodevideo_info[$format]["url"] == $movieurl ) { unset($sources['original']); }
|
5544 |
+
if ( $encodevideo_info[$format]["exists"] ) { $sources[$format] = '<source src="'.$encodevideo_info[$format]["url"].'" type="'.$format_stats["mime"].'">'; }
|
5545 |
+
}
|
5546 |
+
|
5547 |
+
if ( $img_editor_works ) {
|
5548 |
+
$choose_from_video_content = '<div style="display:none;" class="kgvid_thumbnail_box kgvid-tabs-content" id="thumb-video-'.$post->ID.'-container">
|
5549 |
+
<div class="kgvid-reveal-thumb-video" onclick="kgvid_reveal_thumb_video('.$post->ID.')" id="show-thumb-video-'.$post->ID.'"><span class="kgvid-right-arrow"></span><span class="kgvid-show-video">'.__('Choose from video...', 'video-embed-thumbnail-generator').'</span></div>
|
5550 |
+
<div style="display:none;" id="thumb-video-'.$post->ID.'-player">
|
5551 |
+
<video crossorigin="anonymous" preload="metadata" class="kgvid-thumb-video" width="200" data-allowed="'.$options['browser_thumbnails'].'" onloadedmetadata="kgvid_thumb_video_loaded(\''.$post->ID.'\');" id="thumb-video-'.$post->ID.'" controls>'.
|
5552 |
+
implode("\n", $sources).'
|
5553 |
+
</video>
|
5554 |
+
<div class="kgvid-video-controls">
|
5555 |
+
<div class="kgvid-play-pause"></div>
|
5556 |
+
<div class="kgvid-seek-bar">
|
5557 |
+
<div class="kgvid-play-progress"></div>
|
5558 |
+
<div class="kgvid-seek-handle"></div></div>
|
5559 |
+
</div>
|
5560 |
+
<span id="manual-thumbnail" class="button-secondary" onclick="kgvid_thumb_video_manual('.$post->ID.');">Use this frame</span>
|
5561 |
</div>
|
5562 |
+
</div>';
|
5563 |
+
}
|
5564 |
+
else {
|
5565 |
+
$choose_from_video_content = '<div class="kgvid_thumbnail_box">Thumbnail selection requires GD or Imagick PHP libraries.</div>';
|
5566 |
+
}
|
5567 |
+
$generate_content = '<div id="generate-thumb-'.$post->ID.'-container" class="kgvid-tabs-content">
|
5568 |
+
<input id="attachments-'. $post->ID .'-kgflashmediaplayer-numberofthumbs" name="attachments['.$post->ID.'][kgflashmediaplayer-numberofthumbs]" type="text" value="'.$kgvid_postmeta['numberofthumbs'].'" maxlength="2" style="width:35px;text-align:center;" onchange="kgvid_disable_thumb_buttons(\''.$post->ID.'\', \'onchange\');document.getElementById(\''.$field_id['thumbtime'].'\').value =\'\';" '.$ffmpeg_disabled_text.$readonly.'/>
|
5569 |
+
<input type="button" id="attachments-'. $post->ID .'-thumbgenerate" class="button-secondary" value="'._x('Generate', 'Button text. Implied "Generate thumbnails"', 'video-embed-thumbnail-generator').'" name="thumbgenerate" onclick="kgvid_generate_thumb('. $post->ID .', \'generate\');" '.$ffmpeg_disabled_text.'/>
|
5570 |
+
<input type="button" id="attachments-'. $post->ID .'-thumbrandomize" class="button-secondary" value="'._x('Randomize', 'Button text. Implied "Randomize thumbnail generation"', 'video-embed-thumbnail-generator').'" name="thumbrandomize" onclick="kgvid_generate_thumb('. $post->ID .', \'random\');" '.$ffmpeg_disabled_text.'/>
|
5571 |
+
<span style="white-space:nowrap;"><input type="checkbox" id="attachments-'. $post->ID .'-firstframe" name="attachments['.$post->ID.'][kgflashmediaplayer-forcefirst]" onchange="document.getElementById(\''.$field_id['thumbtime'].'\').value =\'\';" '.checked( $kgvid_postmeta['forcefirst'], 'on', false ).' '.$ffmpeg_disabled_text.$readonly.'/> <label for="attachments-'. $post->ID .'-firstframe">'.__('Force 1st frame thumbnail', 'video-embed-thumbnail-generator').'</label></span></div>';
|
5572 |
+
|
5573 |
+
$thumbnail_timecode = __('Thumbnail timecode:', 'video-embed-thumbnail-generator').' <input name="attachments['. $post->ID .'][kgflashmediaplayer-thumbtime]" id="attachments-'. $post->ID .'-kgflashmediaplayer-thumbtime" type="text" value="'. $kgvid_postmeta['thumbtime'] .'" style="width:60px;"'.$readonly.'><br>';
|
5574 |
+
|
5575 |
}
|
|
|
|
|
|
|
|
|
|
|
5576 |
|
|
|
5577 |
|
5578 |
+
$form_fields["kgflashmediaplayer-autothumb-error"]["input"] = "hidden";
|
5579 |
+
$form_fields["kgflashmediaplayer-autothumb-error"]["value"] = $kgvid_postmeta['autothumb-error'];
|
5580 |
+
|
5581 |
|
5582 |
+
$form_fields["generator"]["label"] = _x("Thumbnails", 'Header for thumbnail section', 'video-embed-thumbnail-generator');
|
5583 |
+
$form_fields["generator"]["input"] = "html";
|
5584 |
+
$form_fields["generator"]["html"] = $choose_from_video_content.'
|
5585 |
+
'.$generate_content.'
|
5586 |
+
'.$thumbnail_timecode.'
|
5587 |
+
<div id="attachments-'.$post->ID.'-thumbnailplaceholder" style="position:relative;">'. $thumbnail_html .'</div>';
|
5588 |
+
if ( empty($security_disabled) ) {
|
5589 |
+
$form_fields["generator"]["html"] .= '<span id="pick-thumbnail" class="button-secondary" style="margin:10px 0;" data-choose="'.__('Choose a Thumbnail', 'video-embed-thumbnail-generator').'" data-update="'.__('Set as video thumbnail', 'video-embed-thumbnail-generator').'" data-change="attachments-'. $post->ID .'-kgflashmediaplayer-poster" onclick="kgvid_pick_image(this);">'.__('Choose from Library', 'video-embed-thumbnail-generator').'</span><br />
|
5590 |
+
<input type="checkbox" id="attachments-'. $post->ID .'-featured" name="attachments['.$post->ID.'][kgflashmediaplayer-featured]" '.checked( $kgvid_postmeta['featured'], 'on', false ).' '.$ffmpeg_disabled_text.'/> <label for="attachments-'. $post->ID .'-featured">'.__('Set thumbnail as featured image', 'video-embed-thumbnail-generator').'</label>';
|
5591 |
+
}
|
5592 |
|
5593 |
+
$form_fields["generator"]["html"] .= $update_script;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5594 |
|
5595 |
+
if ( empty($security_disabled) ) {
|
5596 |
+
$form_fields["kgflashmediaplayer-poster"]["label"] = __("Thumbnail URL", 'video-embed-thumbnail-generator');
|
5597 |
+
$form_fields["kgflashmediaplayer-poster"]["value"] = get_post_meta($post->ID, "_kgflashmediaplayer-poster", true);
|
5598 |
+
$form_fields["kgflashmediaplayer-poster"]["helps"] = "<small>".sprintf( __('Leave blank to use %sdefault thumbnail', 'video-embed-thumbnail-generator'), "<a href='options-general.php?page=video-embed-thumbnail-generator/video-embed-thumbnail-generator.php' target='_blank'>" )."</a>.</small>";
|
5599 |
+
}
|
5600 |
|
5601 |
+
$form_fields["kgflashmediaplayer-dimensions"]["label"] = __("Video Embed Dimensions", 'video-embed-thumbnail-generator');
|
5602 |
+
$form_fields["kgflashmediaplayer-dimensions"]["input"] = "html";
|
5603 |
+
$form_fields["kgflashmediaplayer-dimensions"]["html"] = __('Width:', 'video-embed-thumbnail-generator').' <input name="attachments['. $post->ID .'][kgflashmediaplayer-width]" id="attachments-'. $post->ID .'-kgflashmediaplayer-width" type="text" value="'.$kgvid_postmeta['width'].'" style="width:50px;" data-minimum="'.$options['minimum_width'].'" onchange="kgvid_set_dimension('.$post->ID.', \'height\', this.value);" onkeyup="kgvid_set_dimension('.$post->ID.', \'height\', this.value);"'.$readonly.'> '.__('Height:', 'video-embed-thumbnail-generator').'
|
5604 |
+
<input name="attachments['. $post->ID .'][kgflashmediaplayer-height]" id="attachments-'. $post->ID .'-kgflashmediaplayer-height" type="text" value="'.$kgvid_postmeta['height'].'" style="width:50px;" onchange="kgvid_set_dimension('.$post->ID.', \'width\', this.value);" onkeyup="kgvid_set_dimension('.$post->ID.', \'width\', this.value);"'.$readonly.'> <br />
|
5605 |
+
<input type="checkbox" name="attachments['. $post->ID .'][kgflashmediaplayer-lockaspect]" id="attachments-'. $post->ID .'-kgflashmediaplayer-lockaspect" onclick="kgvid_set_aspect('.$post->ID.', this.checked);" '.checked( $kgvid_postmeta['lockaspect'], 'on', false ).$security_disabled.'>
|
5606 |
+
<label for="attachments-'. $post->ID .'-kgflashmediaplayer-lockaspect"><small>'.__('Lock to aspect ratio', 'video-embed-thumbnail-generator').'</small></label>';
|
5607 |
+
$form_fields["kgflashmediaplayer-dimensions"]["helps"] = "<small>".sprintf( __('Leave blank to use %sdefault dimensions', 'video-embed-thumbnail-generator'), "<a href='options-general.php?page=video-embed-thumbnail-generator/video-embed-thumbnail-generator.php' target='_blank'>" )."</a>.</small>";
|
5608 |
|
5609 |
+
} //end if not GIF
|
5610 |
|
5611 |
$checkboxes = kgvid_generate_encode_checkboxes($movieurl, $post->ID, "attachment");
|
5612 |
|
5614 |
$form_fields["kgflashmediaplayer-encode"]["input"] = "html";
|
5615 |
$form_fields["kgflashmediaplayer-encode"]["html"] = $checkboxes['checkboxes'];
|
5616 |
|
5617 |
+
if ( $options['ffmpeg_exists'] == "on" && $options['auto_encode'] == "on" && $created_time < 60 ) {
|
5618 |
+
$form_fields["kgflashmediaplayer-encode"]["html"] .= '<script type="text/javascript">jQuery(document).ready(function() { percent_timeout = setTimeout(function(){ kgvid_redraw_encode_checkboxes("'.$movieurl.'", "'.$post->ID.'", "attachment", "") }, 5000); jQuery(\'#wpwrap\').data("KGVIDCheckboxTimeout", percent_timeout); });</script>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5619 |
}
|
5620 |
|
|
|
|
|
|
|
5621 |
|
5622 |
+
if ( $post->post_mime_type != 'image/gif' ) {
|
5623 |
|
5624 |
+
$tracks_html = '';
|
5625 |
+
if ( is_array($kgvid_postmeta['track']) ) {
|
5626 |
+
foreach ( $kgvid_postmeta['track'] as $track => $track_attribute ) {
|
5627 |
+
if ( !empty($kgvid_postmeta['track'][$track]['src']) ) {
|
5628 |
+
$items = array(__("subtitles", 'video-embed-thumbnail-generator')=>"subtitles", __("captions", 'video-embed-thumbnail-generator')=>"captions", __("chapters", 'video-embed-thumbnail-generator')=>"chapters");
|
5629 |
+
$track_type_select = '<select name="attachments['.$post->ID.'][kgflashmediaplayer-track]['.$track.'][kind]" id="attachments-'.$post->ID.'-kgflashmediaplayer-track_'.$track.'_kind]"'.$security_disabled.'>';
|
5630 |
+
foreach($items as $name=>$value) {
|
5631 |
+
$selected = ($kgvid_postmeta['track'][$track]['kind']==$value) ? 'selected="selected"' : '';
|
5632 |
+
$track_type_select .= "<option value='$value'>$name</option>";
|
5633 |
+
}
|
5634 |
+
$track_type_select .= "</select>";
|
5635 |
|
5636 |
+
if ( !array_key_exists( 'default', $kgvid_postmeta['track'][$track] ) ) { $kgvid_postmeta['track'][$track]['default'] = false; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5637 |
|
5638 |
+
$tracks_html .= '<div id="kgflashmediaplayer-'.$post->ID.'-trackdiv-'.$track.'" class="kgvid_thumbnail_box kgvid_track_box"><strong>'._x('Track', 'captions track', 'video-embed-thumbnail-generator').' '.strval($track+1).'</strong>';
|
5639 |
+
if ( empty($security_disabled) ) {
|
5640 |
+
$tracks_html .= '<span class="kgvid_track_box_removeable" data-trackid="'.$track.'" onclick="jQuery(this).siblings(\'input\').val(\'\').attr(\'checked\', \'\').change();">X</span>';
|
5641 |
+
}
|
5642 |
+
$tracks_html .= '<br />'.__('Track type:', 'video-embed-thumbnail-generator').' '.$track_type_select.'<br />';
|
5643 |
+
if ( empty($security_disabled) ) {
|
5644 |
+
$tracks_html .= '<span id="pick-track'.$track.'" class="button-secondary" style="margin:10px 0;" data-choose="'.__('Choose a Text File', 'video-embed-thumbnail-generator').'" data-update="'.__('Set as track source', 'video-embed-thumbnail-generator').'" data-change="attachments-'. $post->ID .'-kgflashmediaplayer-track_'.$track.'_src" onclick="kgvid_pick_attachment(this);">'.__('Choose from Library', 'video-embed-thumbnail-generator').'</span><br />';
|
5645 |
+
}
|
5646 |
+
$tracks_html .= 'URL: <input name="attachments['. $post->ID .'][kgflashmediaplayer-track]['.$track.'][src]" id="attachments-'. $post->ID .'-kgflashmediaplayer-track_'.$track.'_src" type="text" value="'.$kgvid_postmeta['track'][$track]['src'].'" class="text" style="width:180px;"'.$readonly.'><br />
|
5647 |
+
'._x('Language code:', 'two-letter code indicating track\'s language', 'video-embed-thumbnail-generator').' <input name="attachments['. $post->ID .'][kgflashmediaplayer-track]['.$track.'][srclang]" id="attachments-'. $post->ID .'-kgflashmediaplayer-track_'.$track.'_srclang" type="text" value="'.$kgvid_postmeta['track'][$track]['srclang'].'" maxlength="2" style="width:40px;"'.$readonly.'><br />
|
5648 |
+
'.__('Label:', 'video-embed-thumbnail-generator').' <input name="attachments['. $post->ID .'][kgflashmediaplayer-track]['.$track.'][label]" id="attachments-'. $post->ID .'-kgflashmediaplayer-track_'.$track.'_label" type="text" value="'.$kgvid_postmeta['track'][$track]['label'].'" class="text" style="width:172px;"'.$readonly.'><br />
|
5649 |
+
'.__('Default:', 'video-embed-thumbnail-generator').'<input '.checked($kgvid_postmeta['track'][$track]['default'], 'default', false).' name="attachments['. $post->ID .'][kgflashmediaplayer-track]['.$track.'][default]" id="attachments-'. $post->ID .'-kgflashmediaplayer-track_'.$track.'_default" type="checkbox" value="default"'.$security_disabled.'></div>';
|
5650 |
+
}
|
5651 |
+
}
|
5652 |
+
}
|
5653 |
|
5654 |
+
$form_fields["kgflashmediaplayer-track"]["label"] = __("Subtitles & Captions", 'video-embed-thumbnail-generator');
|
5655 |
+
$form_fields["kgflashmediaplayer-track"]["input"] = "html";
|
5656 |
+
$form_fields["kgflashmediaplayer-track"]["html"] = '<div id="kgflashmediaplayer-'.$post->ID.'-trackdiv">'.$tracks_html.'</div>';
|
5657 |
+
if ( empty($security_disabled) ) {
|
5658 |
+
$form_fields["kgflashmediaplayer-track"]["html"] .= '<span class="button-secondary" id="kgflashmediaplayer-add_track" onclick="kgvid_add_subtitles('.$post->ID.')">'.__('Add track', 'video-embed-thumbnail-generator').'</span>';
|
5659 |
+
}
|
5660 |
|
5661 |
+
$items = array(__("Single Video", 'video-embed-thumbnail-generator')=>"Single Video", __("Video Gallery", 'video-embed-thumbnail-generator')=>"Video Gallery", __("WordPress Default", 'video-embed-thumbnail-generator')=>"WordPress Default");
|
5662 |
+
$shortcode_select = '<select name="attachments['.$post->ID.'][kgflashmediaplayer-embed]" id="attachments['.$post->ID.'][kgflashmediaplayer-embed]">';
|
5663 |
+
foreach($items as $name=>$value) {
|
5664 |
+
$selected = ($kgvid_postmeta['embed']==$value) ? 'selected="selected"' : '';
|
5665 |
+
$shortcode_select .= "<option value='$value' $selected>$name</option>";
|
5666 |
}
|
5667 |
+
$shortcode_select .= "</select>";
|
5668 |
+
|
5669 |
+
$form_fields["kgflashmediaplayer-options"]["label"] = __("Video Embed Options", 'video-embed-thumbnail-generator');
|
5670 |
+
$form_fields["kgflashmediaplayer-options"]["input"] = "html";
|
5671 |
+
$form_fields["kgflashmediaplayer-options"]["html"] = '<input type="checkbox" name="attachments['.$post->ID.'][kgflashmediaplayer-showtitle]" id="attachments-'.$post->ID.'-kgflashmediaplayer-showtitle" '.checked( $kgvid_postmeta['showtitle'], 'on', false ).$security_disabled.'>
|
5672 |
+
<label for="attachments-'.$post->ID.'-kgflashmediaplayer-showtitle">'.__('Insert title above video', 'video-embed-thumbnail-generator').'</label><br />
|
5673 |
+
<input type="checkbox" name="attachments['.$post->ID.'][kgflashmediaplayer-downloadlink]" id="attachments-'.$post->ID.'-kgflashmediaplayer-downloadlink" '.checked( $kgvid_postmeta['downloadlink'], 'on', false ).$security_disabled.'>
|
5674 |
+
<label for="attachments-'.$post->ID.'-kgflashmediaplayer-downloadlink">'.__('Show download icon', 'video-embed-thumbnail-generator').'<em><small><br />'.__('Makes it easier for users to download file.', 'video-embed-thumbnail-generator').'</em></small></label><br />
|
5675 |
+
<label for="attachments-'.$post->ID.'-kgflashmediaplayer-embed">'._x('Insert', 'verb', 'video-embed-thumbnail-generator').'</label>
|
5676 |
+
'.$shortcode_select.'
|
5677 |
+
<script type="text/javascript">jQuery(document).ready(function(){kgvid_hide_standard_wordpress_display_settings('.$post->ID.');});</script>';
|
5678 |
+
|
5679 |
+
if ( $kgvid_postmeta['embed'] == "Video Gallery" ) {
|
5680 |
+
|
5681 |
+
if ( empty($kgvid_postmeta['gallery_id']) ) { $kgvid_postmeta['gallery_id'] = $post->post_parent; }
|
5682 |
+
|
5683 |
+
$items = array("menu_order", "title", "post_date", "rand", "ID");
|
5684 |
+
$gallery_orderby_select = '<select name="attachments['.$post->ID.'][kgflashmediaplayer-gallery_orderby]" id="attachments-'.$post->ID.'-kgflashmediaplayer-gallery_orderby">';
|
5685 |
+
foreach($items as $item) {
|
5686 |
+
$selected = ($kgvid_postmeta['gallery_orderby']==$item) ? 'selected="selected"' : '';
|
5687 |
+
$gallery_orderby_select .= "<option value='$item' $selected>$item</option>";
|
5688 |
+
}
|
5689 |
+
$gallery_orderby_select .= "</select>";
|
5690 |
|
5691 |
+
$items = array("ASC", "DESC");
|
5692 |
+
$gallery_order_select = '<select name="attachments['.$post->ID.'][kgflashmediaplayer-gallery_order]" id="attachments-'.$post->ID.'-kgflashmediaplayer-gallery_order">';
|
5693 |
+
foreach($items as $item) {
|
5694 |
+
$selected = ($kgvid_postmeta['gallery_order']==$item) ? 'selected="selected"' : '';
|
5695 |
+
$gallery_order_select .= "<option value='$item' $selected>$item</option>";
|
5696 |
+
}
|
5697 |
+
$gallery_order_select .= "</select>";
|
5698 |
+
|
5699 |
+
$form_fields["kgflashmediaplayer-gallery"]["label"] = __("Gallery Settings (all optional)", 'video-embed-thumbnail-generator');
|
5700 |
+
$form_fields["kgflashmediaplayer-gallery"]["input"] = "html";
|
5701 |
+
$form_fields["kgflashmediaplayer-gallery"]["html"] = '<input name="attachments['.$post->ID.'][kgflashmediaplayer-gallery_thumb_width]" id="attachments-'.$post->ID.'-kgflashmediaplayer-gallery_thumb_width" type ="text" value="'.$kgvid_postmeta['gallery_thumb_width'].'" class="kgvid_50_width"> <label for="attachments-'.$post->ID.'-kgflashmediaplayer-gallery_thumb_width">'.__('Thumbnail Width', 'video-embed-thumbnail-generator').'</label><br />
|
5702 |
+
'.$gallery_orderby_select.' '.__('Order By', 'video-embed-thumbnail-generator').'<br />
|
5703 |
+
'.$gallery_order_select.' '.__('Sort Order', 'video-embed-thumbnail-generator').'<br />
|
5704 |
+
<input name="attachments['.$post->ID.'][kgflashmediaplayer-gallery_exclude]" id="attachments-'.$post->ID.'-kgflashmediaplayer-gallery_exclude" type ="text" value="'.$kgvid_postmeta['gallery_exclude'].'" class="kgvid_50_width"> <label for="attachments-'.$post->ID.'-kgflashmediaplayer-gallery_exclude">'.__('Exclude', 'video-embed-thumbnail-generator').'</label><br />
|
5705 |
+
<input name="attachments['.$post->ID.'][kgflashmediaplayer-gallery_include]" id="attachments-'.$post->ID.'-kgflashmediaplayer-gallery_include" type ="text" value="'.$kgvid_postmeta['gallery_include'].'" class="kgvid_50_width"> <label for="attachments-'.$post->ID.'-kgflashmediaplayer-gallery_include">'.__('Include', 'video-embed-thumbnail-generator').'</label><br />
|
5706 |
+
<input name="attachments['.$post->ID.'][kgflashmediaplayer-gallery_id]" id="attachments-'.$post->ID.'-kgflashmediaplayer-gallery_id" type ="text" value="'.$kgvid_postmeta['gallery_id'].'" class="kgvid_50_width"> <label for="attachments-'.$post->ID.'-kgflashmediaplayer-gallery_id">'.__('Post ID', 'video-embed-thumbnail-generator').'</label>
|
5707 |
+
';
|
5708 |
+
|
5709 |
+
} //if video gallery
|
5710 |
+
} //if not GIF
|
5711 |
} //only add fields if attachment is the right kind of video
|
5712 |
return $form_fields;
|
5713 |
}
|
5800 |
}
|
5801 |
add_filter('icon_dir', 'kgvid_video_icon_dir');
|
5802 |
|
5803 |
+
function kgvid_decode_base64_png($raw_png, $tmp_posterpath) {
|
5804 |
+
|
5805 |
+
$raw_png = str_replace('data:image/png;base64,', '', $raw_png);
|
5806 |
+
$raw_png = str_replace('data:image/jpeg;base64,', '', $raw_png);
|
5807 |
+
$raw_png = str_replace(' ', '+', $raw_png);
|
5808 |
+
$decoded_png = base64_decode($raw_png);
|
5809 |
+
$success = file_put_contents($tmp_posterpath, $decoded_png);
|
5810 |
+
$editor = wp_get_image_editor( $tmp_posterpath );
|
5811 |
+
|
5812 |
+
return $editor;
|
5813 |
+
|
5814 |
+
}
|
5815 |
+
|
5816 |
function kgvid_ajax_save_html5_thumb() {
|
5817 |
|
5818 |
if ( current_user_can('make_video_thumbnails') ) {
|
5830 |
$tmp_posterpath = $uploads['path'].'/thumb_tmp/'.$posterfile.'.png';
|
5831 |
$thumb_url = $uploads['url'].'/'.$posterfile.'.jpg';
|
5832 |
|
5833 |
+
$editor = kgvid_decode_base64_png($raw_png, $tmp_posterpath);
|
5834 |
+
|
5835 |
+
if ( is_wp_error($editor) ) { //couldn't open the image. Try the alternate php://input
|
5836 |
+
|
5837 |
+
$raw_post = file_get_contents("php://input");
|
5838 |
+
parse_str($raw_post, $alt_post);
|
5839 |
+
$editor = kgvid_decode_base64_png($alt_post['raw_png'], $tmp_posterpath);
|
5840 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5841 |
}
|
5842 |
+
|
5843 |
+
if ( is_wp_error($editor) ) {
|
5844 |
+
$thumb_url = '';
|
5845 |
+
}
|
5846 |
+
else {
|
5847 |
+
$thumb_dimensions = $editor->get_size();
|
5848 |
+
if ( $thumb_dimensions ) {
|
5849 |
+
$kgvid_postmeta = kgvid_get_attachment_meta($post_id);
|
5850 |
+
$kgvid_postmeta['actualwidth'] = $thumb_dimensions['width'];
|
5851 |
+
$kgvid_postmeta['actualheight'] = $thumb_dimensions['height'];
|
5852 |
+
kgvid_save_attachment_meta($post_id, $kgvid_postmeta);
|
5853 |
+
}
|
5854 |
+
$editor->set_quality( 90 );
|
5855 |
+
$new_image_info = $editor->save( $uploads['path'].'/thumb_tmp/'.$posterfile.'.jpg', 'image/jpeg' );
|
5856 |
+
unlink($tmp_posterpath);
|
5857 |
+
if ( $total > 1 ) {
|
5858 |
+
$post_name = get_the_title($post_id);
|
5859 |
+
$thumb_id = kgvid_save_thumb($post_id, $post_name, $thumb_url, $index);
|
5860 |
+
}
|
5861 |
}
|
5862 |
+
|
5863 |
kgvid_schedule_cleanup_generated_files('thumbs');
|
5864 |
echo ($thumb_url);
|
|
|
5865 |
}
|
5866 |
+
|
5867 |
+
die();
|
5868 |
+
|
5869 |
}
|
5870 |
add_action('wp_ajax_kgvid_save_html5_thumb', 'kgvid_ajax_save_html5_thumb');
|
5871 |
|
5886 |
$thumb_id = kgvid_save_thumb($post_id, $post_name, $thumb_url, $index);
|
5887 |
|
5888 |
echo $thumb_id;
|
|
|
5889 |
}
|
5890 |
|
5891 |
+
die();
|
5892 |
+
|
5893 |
}
|
5894 |
add_action('wp_ajax_kgvid_save_thumb', 'kgvid_ajax_save_thumb');
|
5895 |
|
6182 |
if ( !empty($kgvid_postmeta['poster']) && empty($kgvid_postmeta['poster-id']) ) { $html .= ' poster="'.$kgvid_postmeta["poster"].'"'; }
|
6183 |
if ( !empty($kgvid_postmeta['width']) ) { $html .= ' width="'.$kgvid_postmeta["width"].'"'; }
|
6184 |
if ( !empty($kgvid_postmeta['height']) ) { $html .= ' height="'.$kgvid_postmeta["height"].'"'; }
|
|
|
6185 |
$html .= ']'.$kgvid_postmeta["url"].'[/KGVID]<br />';
|
6186 |
} //if embed code is enabled
|
6187 |
|
6285 |
<td><div id="kgflashmediaplayer-singleurl-trackdiv" class="kgvid_thumbnail_box kgvid_track_box"><?php _e('Track type:', 'video-embed-thumbnail-generator') ?><select name="attachments[singleurl][kgflashmediaplayer-track][kind]" id="attachments-singleurl-kgflashmediaplayer-track_kind"><option value="subtitles"><?php _e('subtitles', 'video-embed-thumbnail-generator') ?></option><option value="captions"><?php _e('captions', 'video-embed-thumbnail-generator') ?></option><option value="chapters"><?php _e('chapters', 'video-embed-thumbnail-generator') ?></option></select><br />URL: <input name="attachments[singleurl][kgflashmediaplayer-track][src]" id="attachments-singleurl-kgflashmediaplayer-track_src" type="text" value="" class="text"><br /><?php _e('Language code:', 'video-embed-thumbnail-generator') ?> <input name="attachments[singleurl][kgflashmediaplayer-track][srclang]" id="attachments-singleurl-kgflashmediaplayer-track_srclang" type="text" value="" maxlength="2" style="width:40px;"><br /><?php _e('Label:', 'video-embed-thumbnail-generator') ?> <input name="attachments[singleurl][kgflashmediaplayer-track][label]" id="attachments-singleurl-kgflashmediaplayer-track_label" type="text" value="" class="text"><br /><?php _e('Default:', 'video-embed-thumbnail-generator') ?> <input name="attachments[singleurl][kgflashmediaplayer-track][default]" id="attachments-singleurl-kgflashmediaplayer-track_default" type="checkbox" value="default"></div></td>
|
6286 |
<tr>
|
6287 |
<th valign="top" scope="row" class="label"><span class="alignleft"><label>Options</span></label></th>
|
6288 |
+
<td><input type="checkbox" <?php echo checked( $options["downloadlink"], "on", false ); ?> name="downloadlink" id="downloadlink" value="true" class="field" /><label for="downloadlink"><?php _e('Show download icon', 'video-embed-thumbnail-generator') ?><br /><small></em><?php _e('Makes it easier for users to download video file', 'video-embed-thumbnail-generator') ?></em></small></label></td>
|
6289 |
</tr>
|
6290 |
<tr class="submit">
|
6291 |
<td></td>
|
6341 |
if ( $poster !="" ) { $shortcode .= ' poster="'.$poster.'"'; }
|
6342 |
if ( !empty($dimensions['width']) ) { $shortcode .= ' width="'.$dimensions['width'].'"'; }
|
6343 |
if ( !empty($dimensions['height']) ) { $shortcode .= ' height="'.$dimensions['height'].'"'; }
|
6344 |
+
if ( is_array($kgvid_video_embed) && array_key_exists('enable', $kgvid_video_embed) && $kgvid_video_embed['enable'] == 'true' ) { $shortcode .= ' fullwidth="true"'; }
|
6345 |
if ( $kgvid_postmeta['downloadlink'] == "on" ) { $shortcode .= ' downloadlink="true"'; }
|
6346 |
if (is_array($kgvid_video_embed) && array_key_exists('gallery', $kgvid_video_embed)) { $shortcode .= ' autoplay="true"'; }
|
6347 |
if (is_array($kgvid_video_embed) && array_key_exists('sample', $kgvid_video_embed)) {
|
6386 |
ob_start();
|
6387 |
wp_head();
|
6388 |
$html .= ob_get_clean();
|
6389 |
+
$html .= '<style>body:before, body:after{ content: none; } .kgvid_wrapper { margin:0 !important; }';
|
6390 |
if ( array_key_exists('gallery', $kgvid_video_embed) ) { $html .= ' .kgvid_below_video { color:white; } .kgvid_below_video a { color:aaa; }'; }
|
6391 |
$html .= '</style>';
|
6392 |
$html .= '</head><body class="content" style="margin:0px; font-family: sans-serif; padding:0px; border:none;';
|
6400 |
$html .= '</body></html>';
|
6401 |
$content_width = $content_width_save; //reset $content_width
|
6402 |
|
6403 |
+
return apply_filters('kgvid_generate_embeddable_video', $html, $kgvid_video_embed);
|
6404 |
|
6405 |
}
|
6406 |
|
6639 |
|
6640 |
if ( $movie_info['rotate'] === false || $options['ffmpeg_vpre'] == "on" ) { $movie_info['rotate'] = ""; }
|
6641 |
switch ($movie_info['rotate']) { //if it's a sideways mobile video
|
6642 |
+
case 90:
|
6643 |
+
case 270:
|
6644 |
$movie_width ^= $movie_height ^= $movie_width ^= $movie_height; //swap height & width
|
6645 |
break;
|
6646 |
}
|
6690 |
if ( is_file($thumbnailfilename[$i]) )
|
6691 |
kgvid_schedule_cleanup_generated_files('thumbs');
|
6692 |
|
6693 |
+
$thumbnaildisplaycode = '<div class="kgvid_thumbnail_select" name="attachments['.$postID.'][thumb'.$i.']" id="attachments-'.$postID.'-thumb'.$i.'"><label for="kgflashmedia-'.$postID.'-thumbradio'.$i.'"><img src="'.$thumbnailurl.'?'.rand().'" width="200" height="'.$thumbnailheight.'" class="kgvid_thumbnail"></label><br /><input type="radio" name="attachments['.$postID.'][thumbradio_'.$postID.']" id="kgflashmedia-'.$postID.'-thumbradio'.$i.'" value="'.str_replace('/thumb_tmp/', '/', $thumbnailurl).'" onchange="kgvid_select_thumbnail(this.value, \''.$postID.'\', '.$movieoffset.', jQuery(this).parent().find(\'img\')[0]);"></div>';
|
6694 |
|
6695 |
$i++;
|
6696 |
|
6708 |
|
6709 |
}
|
6710 |
|
6711 |
+
function kgvid_enqueue_videos($postID, $movieurl, $encode_checked, $parent_id, $blog_id = false) {
|
6712 |
+
|
6713 |
+
if ( !empty($blog_id) && $blog_id != 'false' ) { switch_to_blog( $blog_id ); }
|
6714 |
|
6715 |
$options = kgvid_get_options();
|
6716 |
$ffmpegPath = $options['app_path']."/".$options['video_app'];
|
6725 |
$video_formats = kgvid_video_formats(false, false);
|
6726 |
$sanitized_url = kgvid_sanitize_url($movieurl);
|
6727 |
$movieurl = $sanitized_url['movieurl'];
|
6728 |
+
$post_type = get_post_type($postID);
|
6729 |
+
if ( $post_type == "attachment" ) { $filepath = get_attached_file($postID); }
|
6730 |
else { $filepath = $movieurl; }
|
6731 |
$movie_info = kgvid_get_video_dimensions($filepath);
|
6732 |
|
6735 |
$movie_width = $movie_info['width'];
|
6736 |
$movie_height = $movie_info['height'];
|
6737 |
|
6738 |
+
if ( $post_type == "attachment" ) { //if the video is in the database
|
6739 |
|
6740 |
$kgvid_postmeta = kgvid_get_attachment_meta($postID);
|
6741 |
$keys = array( 'width' => 'actualwidth', 'height' => 'actualheight', 'duration' => 'duration', 'rotate' => 'rotate' );
|
6748 |
$encodevideo_info = kgvid_encodevideo_info($movieurl, $postID);
|
6749 |
|
6750 |
foreach ( $video_formats as $format => $format_stats ) {
|
6751 |
+
if ( array_key_exists($format, $encode_checked) && $encode_checked[$format] == "true" ) {
|
6752 |
if ( !$encodevideo_info[$format]['exists'] ) {
|
6753 |
if ( ($format == "1080" && $movie_height <= 1080) || ($format == "720" && $movie_height <= 720) ) {
|
6754 |
$movie_extension = pathinfo($movieurl, PATHINFO_EXTENSION);
|
6771 |
}
|
6772 |
}//end loop through video formats
|
6773 |
|
6774 |
+
if ( isset($kgvid_postmeta) ) { kgvid_save_attachment_meta($postID, $kgvid_postmeta); }
|
6775 |
|
6776 |
if ( !empty($encode_list) ) { //if there's anything to encode
|
6777 |
|
6778 |
$video_encode_queue = kgvid_get_encode_queue();
|
6779 |
+
if ( empty($parent_id) && $post_type == "attachment" ) { $parent_id = get_post($postID)->post_parent; }
|
6780 |
+
$current_user_id = get_current_user_id();
|
6781 |
+
if ( $current_user_id == 0 && $post_type == "attachment" ) { $current_user_id = get_post($postID)->post_author; }
|
6782 |
|
6783 |
$queue_entry = array (
|
6784 |
'attachmentID' => $postID,
|
6785 |
'parent_id' => $parent_id,
|
6786 |
'movieurl' => $movieurl,
|
6787 |
'encode_formats'=> $encode_formats,
|
6788 |
+
'movie_info' => $movie_info,
|
6789 |
+
'user_id' => $current_user_id
|
6790 |
);
|
6791 |
if ( function_exists( 'is_plugin_active_for_network' ) && is_plugin_active_for_network( plugin_basename(__FILE__) ) ) {
|
6792 |
$queue_entry['blog_id'] = get_current_blog_id();
|
6884 |
if ( empty($transient) ) { delete_transient( 'kgvid_new_attachment_transient' ); }
|
6885 |
else { set_transient( 'kgvid_new_attachment_transient', $transient, DAY_IN_SECONDS ); }
|
6886 |
|
|
|
6887 |
$arr = array ( "embed_display"=>$embed_display );
|
6888 |
+
|
6889 |
+
if ( !empty($blog_id) && $blog_id != 'false' ) { restore_current_blog(); }
|
6890 |
+
|
6891 |
return $arr;
|
6892 |
+
|
6893 |
}
|
6894 |
else {
|
6895 |
+
|
6896 |
$thumbnaildisplaycode = "<strong>".__('Can\'t open movie file.', 'video-embed-thumbnail-generator')."</strong><br />".$movie_info['output'];
|
6897 |
$arr = array ( "thumbnaildisplaycode"=>$thumbnaildisplaycode, "embed_display"=>$thumbnaildisplaycode, "lastthumbnumber"=>"break" );
|
6898 |
+
|
6899 |
+
if ( !empty($blog_id) && $blog_id != 'false' ) { restore_current_blog(); }
|
6900 |
+
|
6901 |
return $arr;
|
6902 |
+
|
6903 |
} //can't open movie
|
6904 |
|
6905 |
}
|
6930 |
if (isset($_POST['generate_button'])) { $generate_button = $_POST['generate_button']; }
|
6931 |
|
6932 |
if (isset($_POST['encodeformats'])) { $encode_checked = $_POST['encodeformats']; }
|
6933 |
+
if (isset($_POST['blog_id'])) { $blog_id = $_POST['blog_id']; }
|
6934 |
+
else { $blog_id = false; }
|
6935 |
|
6936 |
if (isset($_POST['poster'])) { $poster = $_POST['poster']; }
|
6937 |
if (isset($_POST['parent_id'])) { $parent_id = $_POST['parent_id']; }
|
6947 |
echo json_encode($arr);
|
6948 |
}
|
6949 |
if ( $action == "enqueue" && current_user_can('encode_videos') ) {
|
6950 |
+
$arr = kgvid_enqueue_videos($postID, $movieurl, $encode_checked, $parent_id, $blog_id);
|
6951 |
echo json_encode($arr);
|
6952 |
}
|
6953 |
if ( $action == "submit" && current_user_can('make_video_thumbnails') ) { kgivd_save_singleurl_poster($parent_id, $poster, $movieurl, $set_featured); }
|
7012 |
extract($queue_info, EXTR_OVERWRITE);
|
7013 |
$video = $video_encode_queue[$video_key];
|
7014 |
|
7015 |
+
if ( array_key_exists('blog_id', $video) ) { switch_to_blog( $video['blog_id'] ); }
|
7016 |
+
|
7017 |
$ffmpegPath = $options['app_path']."/".$options['video_app'];
|
7018 |
$moviefilepath = '';
|
7019 |
if ( get_post_type($video['attachmentID']) == "attachment" ) { $moviefilepath = get_attached_file($video['attachmentID']); }
|
7143 |
|
7144 |
} //if there's a queue
|
7145 |
$arr = array ( "embed_display"=>"<strong>".$embed_display."</strong>", "video_key"=>$video_key, "format"=>$queued_format, "actualwidth"=>$movie_info['width'], "actualheight"=>$movie_info['height'] );
|
7146 |
+
|
7147 |
+
if ( array_key_exists('blog_id', $video) ) { restore_current_blog(); }
|
7148 |
+
|
7149 |
return $arr;
|
7150 |
|
7151 |
}
|
7179 |
$arr['output'] .= kgvid_fix_moov_atom($uploads['path']."/sample-video-h264".$suffix);
|
7180 |
}
|
7181 |
|
7182 |
+
if ( !empty($options['ffmpeg_watermark']['url']) ) {
|
7183 |
if (!file_exists($uploads['path'].'/thumb_tmp')) { mkdir($uploads['path'].'/thumb_tmp'); }
|
7184 |
+
$cmd = escapeshellcmd($options['app_path'].'/'.$options['video_app'].' -y -i "'.$uploads['path']."/sample-video-h264".$suffix.'" -qscale 1 -vframes 1 -f mjpeg '.$uploads['path'].'/thumb_tmp/watermark_test.jpg');
|
7185 |
kgvid_schedule_cleanup_generated_files('thumbs');
|
7186 |
exec ( $cmd );
|
7187 |
if ( file_exists($uploads['path'].'/thumb_tmp/watermark_test.jpg') ) {
|
7208 |
|
7209 |
$video_entry = $video_encode_queue[$video_key];
|
7210 |
|
7211 |
+
if ( array_key_exists('blog_id', $video_entry) ) {
|
7212 |
+
$blog_id = $video_entry['blog_id'];
|
7213 |
+
switch_to_blog($blog_id);
|
7214 |
+
}
|
7215 |
else { $blog_id = false; }
|
7216 |
|
7217 |
$script_function = 'kgvid_redraw_encode_checkboxes("'.$video_entry['movieurl'].'", "'.$video_entry['attachmentID'].'", "'.$page.'", "'.$blog_id.'")';
|
7264 |
if ( is_array($time_matches) && array_key_exists(1, $time_matches) != true ) { //if something other than the regular FFMPEG encoding output check for these
|
7265 |
preg_match('/video:(.*?) /', $lastline, $video_matches);
|
7266 |
preg_match('/libx264 (.*?) /', $lastline, $libx264_matches);
|
7267 |
+
preg_match('/aac (.*?) /', $lastline, $aac_matches);
|
7268 |
$queue_match = preg_match('/queue on closing/', $lastline);
|
7269 |
}
|
7270 |
|
7303 |
$embed_display = '<strong>'.__('Encoding', 'video-embed-thumbnail-generator').'</strong><br /><div class="kgvid_meter"><div class="kgvid_meter_bar" style="width:'.$percent_done.'%;"><div class="kgvid_meter_text">'.$percent_done_text.'</div></div></div>';
|
7304 |
|
7305 |
if ( current_user_can('encode_videos') && $pid ) {
|
7306 |
+
$embed_display .= '<a href="javascript:void(0);" class="kgvid_cancel_button" id="attachments-'.$video_entry["attachmentID"].'-kgflashmediaplayer-cancelencode" onclick="kgvid_cancel_encode('.$pid.', \''.$video_entry["attachmentID"].'\', \''.$video_key.'\', \''.$format.'\', \''.$blog_id.'\');">'.__('Cancel', 'video-embed-thumbnail-generator').'</a>';
|
7307 |
}
|
7308 |
|
7309 |
$embed_display .= '<div class="kgvid_encoding_small_text"><small>'.__('Elapsed:', 'video-embed-thumbnail-generator').' '.date('H:i:s',$time_elapsed).'. '.__('Remaining:', 'video-embed-thumbnail-generator').' '.$time_remaining.'. '._x('FPS:', 'Frames per second', 'video-embed-thumbnail-generator').' '.$fps_match.'</small></div>';
|
7317 |
elseif (
|
7318 |
( is_array($video_matches) && array_key_exists(1, $video_matches) == true )
|
7319 |
|| ( is_array($libx264_matches) && array_key_exists(1, $libx264_matches) == true )
|
7320 |
+
|| ( is_array($aac_matches) && array_key_exists(1, $aac_matches) == true )
|
7321 |
|| ( $queue_match )
|
7322 |
) { //encoding complete
|
7323 |
|
|
|
|
|
7324 |
$percent_done = 100;
|
7325 |
$ended = filemtime($logfile);
|
7326 |
$time_elapsed = $ended - $started;
|
7395 |
|
7396 |
if ( (empty($next_video['format']) || $next_video['video_key'] != $video_key) && $video_encode_queue[$video_key]['encode_formats']['fullres']['status'] == "Encoding Complete" ) { //if there's nothing left to encode in this video and we've encoded the fullres
|
7397 |
$new_movie_url = kgvid_replace_video( $video_key, 'fullres' );
|
7398 |
+
$script_function = 'kgvid_redraw_encode_checkboxes("'.$new_movie_url.'", "'.$video_entry['attachmentID'].'", "'.$page.'", "'.$blog_id.'")';
|
7399 |
|
7400 |
$embed_display = '<strong>'.__('Encoding Complete', 'video-embed-thumbnail-generator').'</strong>';
|
7401 |
|
7402 |
}//fullres encoding complete
|
7403 |
|
|
|
|
|
7404 |
}//encoding complete
|
7405 |
|
7406 |
else { //there was an unexpected output and the encoded file hasn't been modified in more than 10 seconds
|
7408 |
if ( strpos($lastline, "signal 15") !== false ) { //if the encoding was intentionally canceled
|
7409 |
$lastline = __("Encoding was canceled.", 'video-embed-thumbnail-generator');
|
7410 |
}
|
7411 |
+
$video_encode_queue[$video_key]['encode_formats'][$format]['status'] = "canceled";
|
7412 |
|
7413 |
}
|
7414 |
|
7420 |
|
7421 |
}
|
7422 |
|
7423 |
+
if ( $video_encode_queue[$video_key]['encode_formats'][$format]['status'] == "error" || $video_encode_queue[$video_key]['encode_formats'][$format]['status'] == "canceled" ) {
|
7424 |
+
|
7425 |
$video_encode_queue[$video_key]['encode_formats'][$format]['lastline'] = addslashes($lastline);
|
7426 |
+
|
7427 |
$embed_display = '<strong>'.__('Error:', 'video-embed-thumbnail-generator').' </strong><span class="kgvid_warning">'.stripslashes($lastline).'.</span>';
|
7428 |
+
|
7429 |
+
if ( $video_encode_queue[$video_key]['encode_formats'][$format]['status'] == "error" ) {
|
7430 |
+
|
7431 |
+
$options = kgvid_get_options();
|
7432 |
+
|
7433 |
+
if ( ( $options['error_email'] != 'nobody'
|
7434 |
+
|| ( array_key_exists('network_error_email', $options) && $options['network_error_email'] != 'nobody' )
|
7435 |
+
)
|
7436 |
+
&& !array_key_exists('mailed', $video_encode_queue[$video_key]['encode_formats'][$format])
|
7437 |
+
) {
|
7438 |
+
$mailed = false;
|
7439 |
+
$blog_title = get_bloginfo();
|
7440 |
+
$admin_url = get_admin_url();
|
7441 |
+
$user = false;
|
7442 |
+
$super_user = false;
|
7443 |
+
|
7444 |
+
if ( $options['error_email'] == 'encoder'
|
7445 |
+
|| ( array_key_exists('network_error_email', $options) && $options['network_error_email'] == 'encoder' )
|
7446 |
+
) {
|
7447 |
+
if ( !empty($video_encode_queue[$video_key]['user_id']) ) {
|
7448 |
+
$user = get_userdata( $video_encode_queue[$video_key]['user_id'] );
|
7449 |
+
}
|
7450 |
+
}
|
7451 |
+
elseif( is_numeric($options['error_email']) ) {
|
7452 |
+
$user = get_userdata($options['error_email']);
|
7453 |
+
}
|
7454 |
+
|
7455 |
+
if ( array_key_exists('network_error_email', $options) && is_numeric($options['network_error_email']) ) {
|
7456 |
+
$super_user = get_userdata($options['network_error_email']);
|
7457 |
+
}
|
7458 |
+
|
7459 |
+
$headers = array('Content-Type: text/html; charset=UTF-8');
|
7460 |
+
|
7461 |
+
if ( $user instanceof WP_User ) {
|
7462 |
+
$mailed = wp_mail(
|
7463 |
+
$user->user_email,
|
7464 |
+
__('Video Encode Error', 'video-embed-thumbnail-generator'),
|
7465 |
+
sprintf( _x('Error message "%1$s" while encoding video file %2$s at %3$s', '1 is the error message, 2 is the filename, 3 is the website name.', 'video-embed-thumbnail-generator'), $video_encode_queue[$video_key]['encode_formats'][$format]['lastline'], basename($video_encode_queue[$video_key]['encode_formats'][$format]['filepath']), '<a href="'.$admin_url.'/tools.php?page=kgvid_video_encoding_queue">'.$blog_title.'</a>' ),
|
7466 |
+
$headers
|
7467 |
+
);
|
7468 |
+
}
|
7469 |
+
|
7470 |
+
if ( $super_user instanceof WP_User && $super_user != $user ) {
|
7471 |
+
$network_info = get_current_site();
|
7472 |
+
$mailed = wp_mail(
|
7473 |
+
$super_user->user_email,
|
7474 |
+
__('Video Encode Error', 'video-embed-thumbnail-generator'),
|
7475 |
+
sprintf( _x('Error message "%1$s" while encoding video file %2$s at %3$s', '1 is the error message, 2 is the filename, 3 is the website name.', 'video-embed-thumbnail-generator'), $video_encode_queue[$video_key]['encode_formats'][$format]['lastline'], basename($video_encode_queue[$video_key]['encode_formats'][$format]['filepath']), '<a href="'.$admin_url.'/tools.php?page=kgvid_video_encoding_queue">'.$blog_title.'</a>' ).' '.sprintf( _x('on the %s network.', 'on the [name of multisite network] network.', 'video-embed-thumbnail-generator'), '<a href="'.network_admin_url("settings.php?page=kgvid_network_video_encoding_queue").'">'.$network_info->site_name.'</a>' ),
|
7476 |
+
$headers
|
7477 |
+
);
|
7478 |
+
}
|
7479 |
+
|
7480 |
+
if ( $mailed ) { $video_encode_queue[$video_key]['encode_formats'][$format]['mailed'] = true; }
|
7481 |
+
}
|
7482 |
+
|
7483 |
+
}
|
7484 |
+
|
7485 |
+
kgvid_save_encode_queue($video_encode_queue);
|
7486 |
+
|
7487 |
$next_video = kgvid_encode_videos(); //start the next queued video
|
7488 |
if ( !empty($next_video['format']) ) {
|
7489 |
$args = array($next_video['video_key'], $next_video['format'], $page);
|
7498 |
else { $embed_display = "<strong>".__('Waiting...', 'video-embed-thumbnail-generator')."</strong>"; }
|
7499 |
|
7500 |
$arr = array ( 'embed_display' => $embed_display, 'time_to_wait' => $time_to_wait );
|
7501 |
+
|
7502 |
+
if ( $blog_id ) { restore_current_blog(); }
|
7503 |
+
|
7504 |
return $arr;
|
7505 |
|
7506 |
}//end if queue entry exists
|
7523 |
|
7524 |
function kgvid_replace_video( $video_key, $format ) {
|
7525 |
|
7526 |
+
$options = kgvid_get_options();
|
7527 |
$video_encode_queue = kgvid_get_encode_queue();
|
7528 |
$video_formats = kgvid_video_formats();
|
7529 |
$encoded_filename = $video_encode_queue[$video_key]['encode_formats'][$format]['filepath'];
|
7572 |
if ( file_exists($encoded_filename) ) {
|
7573 |
rename($encoded_filename, $new_filename);
|
7574 |
if ( file_exists($original_filename) && $original_filename != $new_filename ) { unlink($original_filename); }
|
7575 |
+
|
7576 |
+
if ( get_post_mime_type($video_id) == 'image/gif' ) {
|
7577 |
+
$was_gif = true;
|
7578 |
+
$gif_metadata = wp_get_attachment_metadata($video_id);
|
7579 |
+
if ( array_key_exists( 'sizes', $gif_metadata) ) {
|
7580 |
+
$uploads = wp_upload_dir();
|
7581 |
+
foreach ( $gif_metadata['sizes'] as $size => $info ) {
|
7582 |
+
$size_filename = $uploads['path'].'/'.$info['file'];
|
7583 |
+
if ( file_exists($size_filename) ) { unlink($size_filename); }
|
7584 |
+
}
|
7585 |
+
}
|
7586 |
+
}
|
7587 |
}
|
7588 |
$video_encode_queue[$video_key]['encode_formats'][$format]['url'] = $new_url;
|
7589 |
|
7624 |
$post = get_post($video_id);
|
7625 |
$new_guid = str_replace( $path_parts['extension'], $new_mime['ext'], $post->guid );
|
7626 |
|
|
|
|
|
7627 |
if ( $new_guid != $post->guid ) {
|
7628 |
$post->guid = $new_guid;
|
7629 |
global $wpdb;
|
7641 |
$post_update = array('ID' => $video_id, 'post_mime_type' => $new_mime['type']);
|
7642 |
wp_update_post($post_update);
|
7643 |
|
7644 |
+
$kgvid_postmeta = kgvid_get_attachment_meta($video_id);
|
7645 |
+
$kgvid_postmeta['original_replaced'] = $options['replace_format'];
|
7646 |
+
kgvid_save_attachment_meta($video_id, $kgvid_postmeta);
|
7647 |
+
|
7648 |
+
if ( $options['auto_thumb'] == 'on' && isset($was_gif) ) { kgvid_cron_new_attachment_handler($video_id, 'thumbs'); }
|
7649 |
+
|
7650 |
return $new_url;
|
7651 |
|
7652 |
}//end replace true
|
7656 |
|
7657 |
function kgvid_clear_completed_queue($type, $scope = 'site') {
|
7658 |
|
7659 |
+
global $user_ID;
|
7660 |
+
|
7661 |
$video_encode_queue = kgvid_get_encode_queue();
|
7662 |
|
7663 |
if ( !empty($video_encode_queue) ) {
|
7669 |
if ( !empty($queue_entry['encode_formats']) ) {
|
7670 |
foreach ( $queue_entry['encode_formats'] as $format => $value ) {
|
7671 |
if ( $value['status'] == "encoding" ) { //if it's not completed yet
|
7672 |
+
if ( $type != "all" ) { $keep[$video_key] = true; }
|
7673 |
+
elseif ( (is_network_admin() && $scope == 'network')
|
7674 |
+
|| (array_key_exists('blog_id', $queue_entry) && $queue_entry['blog_id'] == get_current_blog_id())
|
7675 |
+
) {
|
7676 |
+
if ( array_key_exists( 'PID', $value ) && intval($value['PID']) > 0 ) {
|
7677 |
+
posix_kill($value['PID'], 15);
|
7678 |
+
}
|
7679 |
+
if ( array_key_exists( 'filepath', $value ) && file_exists($value['filepath']) ) {
|
7680 |
+
unlink($value['filepath']);
|
7681 |
+
}
|
7682 |
+
}
|
7683 |
+
else { $keep[$video_key] = true; }
|
7684 |
}
|
7685 |
if ( ($type == "manual" && $value['status'] == "queued")
|
7686 |
|| ($type == "queued" && $value['status'] == "Encoding Complete")
|
7692 |
$keep[$video_key] = true;
|
7693 |
}
|
7694 |
}
|
7695 |
+
if ( ( $scope == 'site' && array_key_exists('blog_id', $queue_entry) && $queue_entry['blog_id'] != get_current_blog_id() )
|
7696 |
+
|| ( !current_user_can('edit_others_video_encodes') && $user_ID != $queue_entry['user_id'] )
|
7697 |
+
|| !current_user_can('encode_videos')
|
7698 |
+
|| ( $scope != 'site' && !current_user_can('manage_network') )
|
7699 |
+
) { //only clear entries from current blog
|
7700 |
$keep[$video_key] = true;
|
7701 |
break;
|
7702 |
}
|
8244 |
<li><code>downloadlink="true/false"</code> '.__('generates a link below the video to make it easier for users to save the video file to their computers.', 'video-embed-thumbnail-generator').'</li>
|
8245 |
<li><code>right_click="true/false"</code> '.__('allow or disable right-clicking on the video player.', 'video-embed-thumbnail-generator').'</li>
|
8246 |
<li><code>resize="true/false"</code> '.__('allow or disable responsive resizing.', 'video-embed-thumbnail-generator').'</li>
|
8247 |
+
<li><code>auto_res="automatic/highest/lowest/1080p/720p/360p/custom"</code> '.__('specify the video resolution when the page loads.', 'video-embed-thumbnail-generator').'</li>
|
8248 |
+
<li><code>pixel_ratio="true/false"</code> '.__('account for high-density (retina) displays when choosing automatic video resolution.', 'video-embed-thumbnail-generator').'</li>
|
8249 |
+
<li><code>schema="true/false"</code> '.__('allow or disable Schema.org search engine metadata.', 'video-embed-thumbnail-generator').'</li></ul>
|
8250 |
|
8251 |
<p><strong>'.__('These options will add a subtitle/caption track.', 'video-embed-thumbnail-generator').'</strong></p>
|
8252 |
<ul><li><code>track_src="http://www.example.com/subtitles.vtt_.txt"</code> '.__('URL of the WebVTT file.', 'video-embed-thumbnail-generator').'</li>
|
8256 |
<li><code>track_default="default"</code> '.__('track is enabled by default.', 'video-embed-thumbnail-generator').'</li></ul>
|
8257 |
|
8258 |
<p><strong>'.__('These options will only affect Video.js playback', 'video-embed-thumbnail-generator').'</strong></p>
|
8259 |
+
<ul><li><code>skin="example-css-class"</code> '.sprintf( __('Completely change the look of the video player. %sInstructions here.', 'video-embed-thumbnail-generator'), '<a href="https://github.com/zencoder/video-js/blob/master/docs/skins.md">' ).'</a></li>
|
8260 |
+
<li><code>nativecontrolsfortouch="true/false"</code> '.__('enables or disables native controls on touchscreen devices.', 'video-embed-thumbnail-generator').'</li>
|
8261 |
+
</ul>
|
8262 |
|
8263 |
<p><strong>'.__('These options will only affect Flash playback in Strobe Media Playback video elements. They will have no effect on other players.', 'video-embed-thumbnail-generator').'</p></strong>
|
8264 |
<ul><li><code>autohide="true/false"</code> '.__('specify whether to autohide the control bar after a few seconds.', 'video-embed-thumbnail-generator').'</li>
|
8286 |
add_action( 'admin_head-post.php', 'kgvid_add_contextual_help_tab' );
|
8287 |
add_action( 'admin_head-post-new.php', 'kgvid_add_contextual_help_tab' );
|
8288 |
|
8289 |
+
function kgvid_save_post($post_id) {
|
8290 |
+
|
8291 |
+
$options = kgvid_get_options();
|
8292 |
+
|
8293 |
+
if ( $options['open_graph'] == "on" ) {
|
8294 |
+
//render the post when it's saved in case there's a do_shortcode call in it so open graph metadata makes it into wp_head()
|
8295 |
+
$response = wp_remote_get( get_permalink($post_id), array('blocking' => false) );
|
8296 |
+
}
|
8297 |
+
|
8298 |
+
}
|
8299 |
+
add_action( 'save_post', 'kgvid_save_post' );
|
8300 |
+
|
8301 |
+
function kgvid_clear_first_embedded_video_meta() {
|
8302 |
+
|
8303 |
+
global $kgvid_video_id;
|
8304 |
+
global $post;
|
8305 |
+
|
8306 |
+
if ( $kgvid_video_id == null && $post ) {
|
8307 |
+
$first_embedded_video_meta = get_post_meta($post->ID, '_kgvid_first_embedded_video', true);
|
8308 |
+
if ( !empty($first_embedded_video_meta) ) {
|
8309 |
+
delete_post_meta($post->ID, '_kgvid_first_embedded_video');
|
8310 |
+
}
|
8311 |
+
}
|
8312 |
+
}
|
8313 |
+
add_action( 'wp_footer', 'kgvid_clear_first_embedded_video_meta', 12 );
|
8314 |
|
8315 |
function kgvid_clear_cron_and_roles() {
|
8316 |
|
video-js/font/VideoJS.eot
ADDED
Binary file
|
video-js/font/VideoJS.svg
ADDED
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" standalone="no"?>
|
2 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
3 |
+
<svg xmlns="http://www.w3.org/2000/svg">
|
4 |
+
<defs>
|
5 |
+
<font id="VideoJS" horiz-adv-x="1792">
|
6 |
+
<font-face font-family="VideoJS"
|
7 |
+
units-per-em="1792" ascent="1792"
|
8 |
+
descent="0" />
|
9 |
+
<missing-glyph horiz-adv-x="0" />
|
10 |
+
<glyph glyph-name="play"
|
11 |
+
unicode=""
|
12 |
+
horiz-adv-x="1792" d=" M597.3333333333334 1418.6666666666665V373.3333333333333L1418.6666666666667 896z" />
|
13 |
+
<glyph glyph-name="play-circle"
|
14 |
+
unicode=""
|
15 |
+
horiz-adv-x="1792" d=" M746.6666666666667 560L1194.6666666666667 896L746.6666666666667 1232V560zM896 1642.6666666666667C483.4666666666667 1642.6666666666667 149.3333333333334 1308.5333333333333 149.3333333333334 896S483.4666666666667 149.3333333333333 896 149.3333333333333S1642.6666666666667 483.4666666666667 1642.6666666666667 896S1308.5333333333333 1642.6666666666667 896 1642.6666666666667zM896 298.6666666666665C566.72 298.6666666666665 298.6666666666667 566.7199999999998 298.6666666666667 896S566.72 1493.3333333333333 896 1493.3333333333333S1493.3333333333335 1225.28 1493.3333333333335 896S1225.2800000000002 298.6666666666665 896 298.6666666666665z" />
|
16 |
+
<glyph glyph-name="pause"
|
17 |
+
unicode=""
|
18 |
+
horiz-adv-x="1792" d=" M448 373.3333333333333H746.6666666666667V1418.6666666666665H448V373.3333333333333zM1045.3333333333335 1418.6666666666665V373.3333333333333H1344V1418.6666666666665H1045.3333333333335z" />
|
19 |
+
<glyph glyph-name="volume-mute"
|
20 |
+
unicode=""
|
21 |
+
horiz-adv-x="1792" d=" M1232 896C1232 1027.7866666666666 1155.8400000000001 1141.6533333333332 1045.3333333333335 1196.5333333333333V1031.52L1228.6399999999999 848.2133333333334C1230.88 863.8933333333334 1232 879.9466666666667 1232 896.0000000000001zM1418.6666666666667 896C1418.6666666666667 825.8133333333333 1403.3600000000001 759.7333333333333 1378.3466666666668 698.8799999999999L1491.466666666667 585.7599999999998C1540 678.72 1568 783.9999999999999 1568 896C1568 1215.5733333333333 1344.3733333333334 1482.88 1045.3333333333335 1550.8266666666666V1396.6399999999999C1261.1200000000001 1332.4266666666667 1418.6666666666667 1132.6933333333332 1418.6666666666667 896zM319.2000000000001 1568L224 1472.8L576.8 1120H224V672H522.6666666666667L896 298.6666666666665V800.8L1213.7066666666667 483.0933333333332C1163.68 444.6399999999999 1107.3066666666666 413.6533333333332 1045.3333333333335 394.9866666666665V240.7999999999998C1148 264.32 1241.7066666666667 311.3599999999997 1320.48 375.9466666666663L1472.8000000000002 224L1568 319.1999999999998L896 991.1999999999998L319.2000000000001 1568zM896 1493.3333333333333L739.9466666666667 1337.28L896 1181.2266666666667V1493.3333333333333z" />
|
22 |
+
<glyph glyph-name="volume-low"
|
23 |
+
unicode=""
|
24 |
+
horiz-adv-x="1792" d=" M522.6666666666667 1120V672H821.3333333333334L1194.6666666666667 298.6666666666665V1493.3333333333333L821.3333333333334 1120H522.6666666666667z" />
|
25 |
+
<glyph glyph-name="volume-mid"
|
26 |
+
unicode=""
|
27 |
+
horiz-adv-x="1792" d=" M1381.3333333333335 896C1381.3333333333335 1027.7866666666666 1305.1733333333334 1141.6533333333332 1194.6666666666667 1196.5333333333333V595.0933333333332C1305.1733333333334 650.3466666666666 1381.3333333333335 764.2133333333331 1381.3333333333335 896zM373.3333333333334 1120V672H672L1045.3333333333335 298.6666666666665V1493.3333333333333L672 1120H373.3333333333334z" />
|
28 |
+
<glyph glyph-name="volume-high"
|
29 |
+
unicode=""
|
30 |
+
horiz-adv-x="1792" d=" M224 1120V672H522.6666666666667L896 298.6666666666665V1493.3333333333333L522.6666666666667 1120H224zM1232 896C1232 1027.7866666666666 1155.8400000000001 1141.6533333333332 1045.3333333333335 1196.5333333333333V595.0933333333332C1155.8400000000001 650.3466666666666 1232 764.2133333333331 1232 896zM1045.3333333333335 1550.8266666666666V1396.6399999999999C1261.1200000000001 1332.4266666666667 1418.6666666666667 1132.6933333333332 1418.6666666666667 896S1261.1200000000001 459.5733333333333 1045.3333333333335 395.3600000000002V241.1733333333332C1344.3733333333334 309.1199999999999 1568 576.0533333333333 1568 896S1344.3733333333334 1482.88 1045.3333333333335 1550.8266666666666z" />
|
31 |
+
<glyph glyph-name="fullscreen-enter"
|
32 |
+
unicode=""
|
33 |
+
horiz-adv-x="1792" d=" M522.6666666666667 746.6666666666665H373.3333333333334V373.3333333333333H746.6666666666667V522.6666666666665H522.6666666666667V746.6666666666665zM373.3333333333334 1045.3333333333333H522.6666666666667V1269.3333333333333H746.6666666666667V1418.6666666666665H373.3333333333334V1045.3333333333333zM1269.3333333333335 522.6666666666665H1045.3333333333335V373.3333333333333H1418.6666666666667V746.6666666666665H1269.3333333333335V522.6666666666665zM1045.3333333333335 1418.6666666666665V1269.3333333333333H1269.3333333333335V1045.3333333333333H1418.6666666666667V1418.6666666666665H1045.3333333333335z" />
|
34 |
+
<glyph glyph-name="fullscreen-exit"
|
35 |
+
unicode=""
|
36 |
+
horiz-adv-x="1792" d=" M373.3333333333334 597.3333333333333H597.3333333333334V373.3333333333333H746.6666666666667V746.6666666666665H373.3333333333334V597.3333333333333zM597.3333333333334 1194.6666666666665H373.3333333333334V1045.3333333333333H746.6666666666667V1418.6666666666665H597.3333333333334V1194.6666666666665zM1045.3333333333335 373.3333333333333H1194.6666666666667V597.3333333333333H1418.6666666666667V746.6666666666665H1045.3333333333335V373.3333333333333zM1194.6666666666667 1194.6666666666665V1418.6666666666665H1045.3333333333335V1045.3333333333333H1418.6666666666667V1194.6666666666665H1194.6666666666667z" />
|
37 |
+
<glyph glyph-name="square"
|
38 |
+
unicode=""
|
39 |
+
horiz-adv-x="1792" d=" M1344 1493.3333333333333H448C365.4933333333334 1493.3333333333333 298.6666666666667 1426.5066666666667 298.6666666666667 1344V448C298.6666666666667 365.4933333333331 365.4933333333334 298.6666666666665 448 298.6666666666665H1344C1426.506666666667 298.6666666666665 1493.3333333333335 365.4933333333331 1493.3333333333335 448V1344C1493.3333333333335 1426.5066666666667 1426.506666666667 1493.3333333333333 1344 1493.3333333333333zM1344 448H448V1344H1344V448z" />
|
40 |
+
<glyph glyph-name="spinner"
|
41 |
+
unicode=""
|
42 |
+
horiz-adv-x="1792" d=" M701.8666666666668 1008L1057.6533333333334 1624.3733333333334C1005.7600000000002 1635.9466666666667 951.6266666666666 1642.6666666666667 896 1642.6666666666667C716.8000000000001 1642.6666666666667 552.9066666666668 1579.5733333333333 424.1066666666667 1474.2933333333333L697.76 1000.5333333333334L701.8666666666666 1008zM1608.32 1120C1539.6266666666666 1338.4 1373.1200000000001 1512.7466666666667 1160.6933333333332 1593.3866666666668L887.4133333333334 1120H1608.32zM1627.7333333333336 1045.3333333333333H1068.48L1090.1333333333334 1008L1445.92 392C1567.6266666666668 524.9066666666668 1642.6666666666667 701.4933333333333 1642.6666666666667 896C1642.6666666666667 947.1466666666666 1637.44 997.1733333333332 1627.7333333333336 1045.3333333333333zM637.2800000000001 896L346.08 1400C224.3733333333333 1267.0933333333332 149.3333333333334 1090.5066666666667 149.3333333333334 896C149.3333333333334 844.8533333333332 154.56 794.8266666666666 164.2666666666667 746.6666666666665H723.5200000000001L637.2800000000002 896zM183.68 672C252.3733333333334 453.5999999999999 418.88 279.2533333333334 631.3066666666667 198.6133333333332L904.5866666666668 672H183.68zM1025.1733333333334 672L733.9733333333334 167.6266666666666C786.24 156.0533333333333 840.3733333333334 149.3333333333333 896 149.3333333333333C1075.2 149.3333333333333 1239.0933333333332 212.4266666666665 1367.8933333333334 317.7066666666665L1094.24 791.4666666666666L1025.1733333333334 672z" />
|
43 |
+
<glyph glyph-name="subtitles"
|
44 |
+
unicode=""
|
45 |
+
horiz-adv-x="1792" d=" M1493.3333333333335 1493.3333333333333H298.6666666666667C216.16 1493.3333333333333 149.3333333333334 1426.5066666666667 149.3333333333334 1344V448C149.3333333333334 365.4933333333331 216.16 298.6666666666665 298.6666666666667 298.6666666666665H1493.3333333333335C1575.8400000000001 298.6666666666665 1642.6666666666667 365.4933333333331 1642.6666666666667 448V1344C1642.6666666666667 1426.5066666666667 1575.8400000000001 1493.3333333333333 1493.3333333333335 1493.3333333333333zM298.6666666666667 896H597.3333333333334V746.6666666666665H298.6666666666667V896zM1045.3333333333335 448H298.6666666666667V597.3333333333333H1045.3333333333335V448zM1493.3333333333335 448H1194.6666666666667V597.3333333333333H1493.3333333333335V448zM1493.3333333333335 746.6666666666665H746.6666666666667V896H1493.3333333333335V746.6666666666665z" />
|
46 |
+
<glyph glyph-name="captions"
|
47 |
+
unicode=""
|
48 |
+
horiz-adv-x="1792" d=" M1418.6666666666667 1493.3333333333333H373.3333333333334C290.8266666666667 1493.3333333333333 224 1426.5066666666667 224 1344V448C224 365.4933333333331 290.8266666666667 298.6666666666665 373.3333333333334 298.6666666666665H1418.6666666666667C1501.1733333333334 298.6666666666665 1568 365.4933333333331 1568 448V1344C1568 1426.5066666666667 1501.1733333333334 1493.3333333333333 1418.6666666666667 1493.3333333333333zM821.3333333333334 970.6666666666666H709.3333333333334V1008H560V783.9999999999999H709.3333333333334V821.3333333333333H821.3333333333334V746.6666666666665C821.3333333333334 705.5999999999999 788.1066666666667 672 746.6666666666667 672H522.6666666666667C481.2266666666667 672 448 705.5999999999999 448 746.6666666666665V1045.3333333333333C448 1086.4 481.2266666666667 1120 522.6666666666667 1120H746.6666666666667C788.1066666666667 1120 821.3333333333334 1086.4 821.3333333333334 1045.3333333333333V970.6666666666666zM1344 970.6666666666666H1232V1008H1082.6666666666667V783.9999999999999H1232V821.3333333333333H1344V746.6666666666665C1344 705.5999999999999 1310.7733333333333 672 1269.3333333333335 672H1045.3333333333335C1003.8933333333334 672 970.6666666666669 705.5999999999999 970.6666666666669 746.6666666666665V1045.3333333333333C970.6666666666669 1086.4 1003.8933333333334 1120 1045.3333333333335 1120H1269.3333333333335C1310.7733333333333 1120 1344 1086.4 1344 1045.3333333333333V970.6666666666666z" />
|
49 |
+
<glyph glyph-name="chapters"
|
50 |
+
unicode=""
|
51 |
+
horiz-adv-x="1792" d=" M224 821.3333333333333H373.3333333333334V970.6666666666666H224V821.3333333333333zM224 522.6666666666665H373.3333333333334V672H224V522.6666666666665zM224 1120H373.3333333333334V1269.3333333333333H224V1120zM522.6666666666667 821.3333333333333H1568V970.6666666666666H522.6666666666667V821.3333333333333zM522.6666666666667 522.6666666666665H1568V672H522.6666666666667V522.6666666666665zM522.6666666666667 1269.3333333333333V1120H1568V1269.3333333333333H522.6666666666667z" />
|
52 |
+
<glyph glyph-name="share"
|
53 |
+
unicode=""
|
54 |
+
horiz-adv-x="1792" d=" M1344 590.9866666666665C1287.2533333333333 590.9866666666665 1236.1066666666668 568.9599999999998 1197.2800000000002 533.4933333333331L665.2800000000001 843.7333333333333C669.3866666666667 860.5333333333333 672 878.08 672 896S669.3866666666667 931.4666666666666 665.2800000000001 948.2666666666667L1191.68 1255.52C1231.6266666666668 1218.1866666666665 1285.0133333333335 1195.04 1344 1195.04C1467.5733333333335 1195.04 1568 1295.4666666666665 1568 1419.04S1467.5733333333335 1643.04 1344 1643.04S1120 1542.6133333333332 1120 1419.04C1120 1401.12 1122.6133333333335 1383.5733333333333 1126.72 1366.773333333333L600.3199999999999 1059.5199999999998C560.3733333333333 1096.853333333333 506.9866666666666 1119.9999999999998 448 1119.9999999999998C324.4266666666666 1119.9999999999998 224 1019.5733333333332 224 895.9999999999998S324.4266666666666 671.9999999999998 448 671.9999999999998C506.9866666666666 671.9999999999998 560.3733333333333 695.1466666666665 600.3199999999999 732.4799999999998L1132.32 422.2399999999998C1128.5866666666666 406.5599999999997 1126.3466666666666 390.133333333333 1126.3466666666666 373.3333333333331C1126.3466666666666 253.1199999999997 1223.7866666666669 155.6799999999996 1344 155.6799999999996S1561.6533333333334 253.1199999999997 1561.6533333333334 373.3333333333331S1464.2133333333334 590.9866666666662 1344 590.9866666666662z" />
|
55 |
+
<glyph glyph-name="cog"
|
56 |
+
unicode=""
|
57 |
+
horiz-adv-x="1792" d=" M1450.7733333333333 823.1999999999999C1453.76 847.0933333333334 1456 871.3599999999999 1456 896S1453.76 944.9066666666666 1450.7733333333333 968.8L1608.6933333333336 1092.3733333333332C1622.8800000000003 1103.5733333333333 1626.986666666667 1123.7333333333331 1617.6533333333336 1140.1599999999999L1468.3200000000004 1398.8799999999999C1458.986666666667 1414.9333333333334 1439.5733333333335 1421.6533333333332 1422.7733333333338 1414.9333333333334L1236.8533333333337 1339.8933333333332C1198.4000000000003 1369.3866666666668 1156.2133333333338 1394.3999999999999 1110.6666666666672 1413.44L1082.6666666666667 1611.3066666666666C1079.3066666666668 1628.8533333333332 1064 1642.6666666666667 1045.3333333333335 1642.6666666666667H746.6666666666667C728 1642.6666666666667 712.6933333333334 1628.8533333333332 709.7066666666668 1611.3066666666666L681.7066666666668 1413.44C636.1600000000002 1394.4 593.9733333333335 1369.76 555.5200000000001 1339.8933333333332L369.6 1414.9333333333334C352.8000000000001 1421.28 333.3866666666667 1414.9333333333334 324.0533333333334 1398.88L174.72 1140.1599999999999C165.3866666666667 1124.1066666666666 169.4933333333334 1103.9466666666667 183.68 1092.3733333333332L341.2266666666667 968.8C338.2400000000001 944.9066666666666 336 920.64 336 896S338.2400000000001 847.0933333333334 341.2266666666667 823.1999999999999L183.68 699.6266666666668C169.4933333333334 688.4266666666667 165.3866666666667 668.2666666666667 174.72 651.8399999999999L324.0533333333334 393.1199999999999C333.3866666666667 377.0666666666666 352.8 370.3466666666666 369.6 377.0666666666666L555.5200000000001 452.1066666666666C593.9733333333334 422.6133333333333 636.16 397.5999999999999 681.7066666666668 378.56L709.7066666666668 180.6933333333334C712.6933333333334 163.1466666666668 728 149.3333333333333 746.6666666666667 149.3333333333333H1045.3333333333335C1064 149.3333333333333 1079.3066666666668 163.1466666666665 1082.2933333333333 180.6933333333334L1110.2933333333333 378.56C1155.84 397.5999999999999 1198.0266666666666 422.24 1236.48 452.1066666666666L1422.3999999999999 377.0666666666666C1439.2 370.7199999999998 1458.6133333333332 377.0666666666666 1467.9466666666665 393.1199999999999L1617.2799999999997 651.8399999999999C1626.6133333333332 667.8933333333332 1622.5066666666664 688.0533333333333 1608.3199999999997 699.6266666666668L1450.773333333333 823.1999999999999zM896 634.6666666666665C751.52 634.6666666666665 634.6666666666667 751.52 634.6666666666667 896S751.52 1157.3333333333333 896 1157.3333333333333S1157.3333333333335 1040.48 1157.3333333333335 896S1040.48 634.6666666666665 896 634.6666666666665z" />
|
58 |
+
<glyph glyph-name="circle"
|
59 |
+
unicode=""
|
60 |
+
horiz-adv-x="1792" d=" M149.3333333333334 896C149.3333333333334 483.6273867930074 483.6273867930075 149.3333333333333 896 149.3333333333333C1308.3726132069926 149.3333333333333 1642.6666666666667 483.6273867930074 1642.6666666666667 896C1642.6666666666667 1308.3726132069926 1308.3726132069926 1642.6666666666667 896 1642.6666666666667C483.6273867930075 1642.6666666666667 149.3333333333334 1308.3726132069926 149.3333333333334 896z" />
|
61 |
+
<glyph glyph-name="circle-outline"
|
62 |
+
unicode=""
|
63 |
+
horiz-adv-x="1792" d=" M896 1642.6666666666667C483.4666666666667 1642.6666666666667 149.3333333333334 1308.5333333333333 149.3333333333334 896S483.4666666666667 149.3333333333333 896 149.3333333333333S1642.6666666666667 483.4666666666667 1642.6666666666667 896S1308.5333333333333 1642.6666666666667 896 1642.6666666666667zM896 298.6666666666665C566.72 298.6666666666665 298.6666666666667 566.7199999999998 298.6666666666667 896S566.72 1493.3333333333333 896 1493.3333333333333S1493.3333333333335 1225.28 1493.3333333333335 896S1225.2800000000002 298.6666666666665 896 298.6666666666665z" />
|
64 |
+
<glyph glyph-name="circle-inner-circle"
|
65 |
+
unicode=""
|
66 |
+
horiz-adv-x="1792" d=" M896 1642.6666666666667C484.2133333333334 1642.6666666666667 149.3333333333334 1307.7866666666666 149.3333333333334 896S484.2133333333334 149.3333333333333 896 149.3333333333333S1642.6666666666667 484.2133333333331 1642.6666666666667 896S1307.7866666666669 1642.6666666666667 896 1642.6666666666667zM896 298.6666666666665C566.72 298.6666666666665 298.6666666666667 566.7199999999998 298.6666666666667 896S566.72 1493.3333333333333 896 1493.3333333333333S1493.3333333333335 1225.28 1493.3333333333335 896S1225.2800000000002 298.6666666666665 896 298.6666666666665zM1120 896C1120 772.4266666666666 1019.5733333333334 672 896 672S672 772.4266666666666 672 896S772.4266666666667 1120 896 1120S1120 1019.5733333333332 1120 896z" />
|
67 |
+
<glyph glyph-name="hd"
|
68 |
+
unicode=""
|
69 |
+
horiz-adv-x="1792" d=" M1418.6666666666667 1568H373.3333333333334C290.4533333333333 1568 224 1500.8 224 1418.6666666666665V373.3333333333333C224 291.1999999999998 290.4533333333334 224 373.3333333333334 224H1418.6666666666667C1500.8000000000002 224 1568 291.1999999999998 1568 373.3333333333333V1418.6666666666665C1568 1500.8 1500.8000000000002 1568 1418.6666666666667 1568zM821.3333333333334 672H709.3333333333334V821.3333333333333H560V672H448V1120H560V933.3333333333331H709.3333333333334V1120H821.3333333333334V672zM970.6666666666669 1120H1269.3333333333335C1310.4 1120 1344 1086.4 1344 1045.3333333333333V746.6666666666665C1344 705.5999999999999 1310.4 672 1269.3333333333335 672H970.6666666666669V1120zM1082.6666666666667 783.9999999999999H1232V1008H1082.6666666666667V783.9999999999999z" />
|
70 |
+
<glyph glyph-name="cancel"
|
71 |
+
unicode=""
|
72 |
+
horiz-adv-x="1792" d=" M896 1642.6666666666667C483.4666666666667 1642.6666666666667 149.3333333333334 1308.5333333333333 149.3333333333334 896S483.4666666666667 149.3333333333333 896 149.3333333333333S1642.6666666666667 483.4666666666667 1642.6666666666667 896S1308.5333333333333 1642.6666666666667 896 1642.6666666666667zM1269.3333333333335 628.3199999999999L1163.68 522.6666666666665L896 790.3466666666667L628.3199999999999 522.6666666666665L522.6666666666667 628.3199999999999L790.3466666666668 896L522.6666666666667 1163.68L628.3199999999999 1269.3333333333333L896 1001.6533333333332L1163.68 1269.3333333333333L1269.3333333333335 1163.68L1001.6533333333334 896L1269.3333333333335 628.3199999999999z" />
|
73 |
+
<glyph glyph-name="replay"
|
74 |
+
unicode=""
|
75 |
+
horiz-adv-x="1792" d=" M896 1418.6666666666665V1717.3333333333333L522.6666666666667 1344L896 970.6666666666666V1269.3333333333333C1143.52 1269.3333333333333 1344 1068.8533333333332 1344 821.3333333333333S1143.52 373.3333333333333 896 373.3333333333333S448 573.813333333333 448 821.3333333333333H298.6666666666667C298.6666666666667 491.3066666666664 565.9733333333334 224 896 224S1493.3333333333335 491.3066666666664 1493.3333333333335 821.3333333333333S1226.0266666666669 1418.6666666666665 896 1418.6666666666665z" />
|
76 |
+
<glyph glyph-name="facebook"
|
77 |
+
unicode=""
|
78 |
+
horiz-adv-x="1792" d=" M1343 1780V1516H1186Q1100 1516 1070 1480T1040 1372V1183H1333L1294 887H1040V128H734V887H479V1183H734V1401Q734 1587 838 1689.5T1115 1792Q1262 1792 1343 1780z" />
|
79 |
+
<glyph glyph-name="gplus"
|
80 |
+
unicode=""
|
81 |
+
horiz-adv-x="1792" d=" M799 996Q799 960 831 925.5T908.5 857.5T999 784T1076 680T1108 538Q1108 448 1060 365Q988 243 849 185.5T551 128Q419 128 304.5 169.5T133 307Q96 367 96 438Q96 519 140.5 588T259 703Q390 785 663 803Q631 845 615.5 877T600 950Q600 986 621 1035Q575 1031 553 1031Q405 1031 303.5 1127.5T202 1372Q202 1454 238 1531T337 1662Q414 1728 519.5 1760T737 1792H1155L1017 1704H886Q960 1641 998 1571T1036 1411Q1036 1339 1011.5 1281.5T952.5 1188.5T883 1123.5T823.5 1062T799 996zM653 1092Q691 1092 731 1108.5T797 1152Q850 1209 850 1311Q850 1369 833 1436T784.5 1565.5T700 1669T583 1710Q541 1710 500.5 1690.5T435 1638Q388 1579 388 1478Q388 1432 398 1380.5T429.5 1277.5T481.5 1185T556.5 1118T653 1092zM655 219Q713 219 766.5 232T865.5 271T938.5 344T966 453Q966 478 959 502T944.5 544T917.5 585.5T888 620.5T849.5 655T813 684T771.5 714T735 740Q719 742 687 742Q634 742 582 735T474.5 710T377.5 664T309 589.5T282 484Q282 414 317 360.5T408.5 277.5T527.5 233.5T655 219zM1465 1095H1678V987H1465V768H1360V987H1148V1095H1360V1312H1465V1095z" />
|
82 |
+
<glyph glyph-name="linkedin"
|
83 |
+
unicode=""
|
84 |
+
horiz-adv-x="1792" d=" M477 1167V176H147V1167H477zM498 1473Q499 1400 447.5 1351T312 1302H310Q228 1302 178 1351T128 1473Q128 1547 179.5 1595.5T314 1644T447 1595.5T498 1473zM1664 744V176H1335V706Q1335 811 1294.5 870.5T1168 930Q1105 930 1062.5 895.5T999 810Q988 780 988 729V176H659Q661 575 661 823T660 1119L659 1167H988V1023H986Q1006 1055 1027 1079T1083.5 1131T1170.5 1174.5T1285 1190Q1456 1190 1560 1076.5T1664 744z" />
|
85 |
+
<glyph glyph-name="twitter"
|
86 |
+
unicode=""
|
87 |
+
horiz-adv-x="1792" d=" M1684 1384Q1617 1286 1522 1217Q1523 1203 1523 1175Q1523 1045 1485 915.5T1369.5 667T1185 456.5T927 310.5T604 256Q333 256 108 401Q143 397 186 397Q411 397 587 535Q482 537 399 599.5T285 759Q318 754 346 754Q389 754 431 765Q319 788 245.5 876.5T172 1082V1086Q240 1048 318 1045Q252 1089 213 1160T174 1314Q174 1402 218 1477Q339 1328 512.5 1238.5T884 1139Q876 1177 876 1213Q876 1347 970.5 1441.5T1199 1536Q1339 1536 1435 1434Q1544 1455 1640 1512Q1603 1397 1498 1334Q1591 1344 1684 1384z" />
|
88 |
+
<glyph glyph-name="tumblr"
|
89 |
+
unicode=""
|
90 |
+
horiz-adv-x="1792" d=" M1328 463L1408 226Q1385 191 1297 160T1120 128Q1016 126 929.5 154T787 228T692 334T636.5 454T620 572V1116H452V1331Q524 1357 581 1400.5T672 1490.5T730 1592.5T764 1691.5T779 1780Q780 1785 783.5 1788.5T791 1792H1035V1368H1368V1116H1034V598Q1034 568 1040.5 542T1063 489.5T1112.5 448T1194 434Q1272 436 1328 463z" />
|
91 |
+
<glyph glyph-name="pinterest"
|
92 |
+
unicode=""
|
93 |
+
horiz-adv-x="1792" d=" M1664 896Q1664 687 1561 510.5T1281.5 231T896 128Q785 128 678 160Q737 253 756 324Q765 358 810 535Q830 496 883 467.5T997 439Q1118 439 1213 507.5T1360 696T1412 966Q1412 1080 1352.5 1180T1180 1343T925 1406Q820 1406 729 1377T574.5 1300T465.5 1189.5T398.5 1060T377 926Q377 822 417 743T534 632Q564 620 572 652Q574 659 580 683T588 713Q594 736 577 756Q526 817 526 907Q526 1058 630.5 1166.5T904 1275Q1055 1275 1139.5 1193T1224 980Q1224 810 1155.5 691T980 572Q919 572 882 615.5T859 720Q867 755 885.5 813.5T915.5 916.5T927 992Q927 1042 900 1075T823 1108Q761 1108 718 1051T675 909Q675 836 700 787L601 369Q584 299 588 192Q382 283 255 473T128 896Q128 1105 231 1281.5T510.5 1561T896 1664T1281.5 1561T1561 1281.5T1664 896z" />
|
94 |
+
<glyph glyph-name="audio-description"
|
95 |
+
unicode=""
|
96 |
+
horiz-adv-x="1792" d=" M795.5138904615 457.270933L795.5138904615 1221.5248286325C971.84576475 1225.085121904 1107.39330415 1232.12360523 1207.223857 1161.5835220499998C1303.033991 1093.8857027 1377.7922305 962.20560625 1364.3373135 792.9476205000001C1350.102593 613.9029365000001 1219.6655764999998 463.4600215 1050.12389545 448.2843645000001C965.8259268 440.7398275000001 798.21890505 448.2843645000001 798.21890505 448.2843645000001C798.21890505 448.2843645000001 795.2791410655 453.016494 795.5138904615 457.270933M966.1564647 649.0863960000001C1076.16084135 644.6767075 1152.385591 707.3020429999999 1163.8910079999998 807.9351875C1179.2994744999999 942.71878505 1089.73043585 1030.3691748 960.74508635 1020.7227954L960.74508635 658.08043C960.6196169500002 652.9482330000001 962.7606933 650.3134680000001 966.1564647 649.0863960000001 M1343.2299685 457.3517725000002C1389.9059734 444.3690160000001 1404.0840274999998 496.0596970000001 1424.48294065 532.2791494999999C1469.0084255 611.2788500000001 1502.5101322 712.8584189999999 1503.0416912 828.9881705C1503.8147453000001 995.5680973 1438.8404296 1117.7973688000002 1378.4383305 1200.62456881045L1348.652139905 1200.62456881045C1346.6001063899998 1187.06858424 1356.44474056 1175.024791325 1362.18395859 1164.6588891000001C1408.2649952 1081.49431985 1450.96645015 966.7230041 1451.57490975 834.9817034999999C1452.27106325 683.8655425000002 1402.00636065 557.5072264999999 1343.2299685 457.3517725000002 M1488.0379675 457.3517725000002C1534.7139723999999 444.3690160000001 1548.8825828 496.0671625 1569.29093965 532.2791494999999C1613.8164245 611.2788500000001 1647.3113856500001 712.8584189999999 1647.8496902000002 828.9881705C1648.6227442999998 995.5680973 1583.6484286 1117.7973688000002 1523.2463295 1200.62456881045L1493.460138905 1200.62456881045C1491.40810539 1187.06858424 1501.250041305 1175.021805755 1506.9919575899999 1164.6588891000001C1553.0729942 1081.49431985 1595.7757984 966.7230041 1596.3829087499998 834.9817034999999C1597.07906225 683.8655425000002 1546.8143596500001 557.5072264999999 1488.0379675 457.3517725000002 M1631.9130380000001 457.3517725000002C1678.5890429 444.3690160000001 1692.7576533 496.0671625 1713.1660101500001 532.2791494999999C1757.691495 611.2788500000001 1791.1864561500001 712.8584189999999 1791.7247607000002 828.9881705C1792.4978148 995.5680973 1727.5234991000002 1117.7973688000002 1667.1214 1200.62456881045L1637.3352094050001 1200.62456881045C1635.28317589 1187.06858424 1645.1251118050002 1175.02329854 1650.86702809 1164.6588891000001C1696.9480647 1081.49431985 1739.64951965 966.7230041 1740.25797925 834.9817034999999C1740.95413275 683.8655425000002 1690.6894301500001 557.5072264999999 1631.9130380000001 457.3517725000002 M15.66796875 451.481947L254.03034755 451.481947L319.0356932 551.1747990000001L543.6261075 551.6487970000001C543.6261075 551.6487970000001 543.8541115 483.7032095 543.8541115 451.481947L714.4993835 451.481947L714.4993835 1230.9210795L508.643051 1230.9210795C488.8579955 1197.5411595 15.66796875 451.481947 15.66796875 451.481947L15.66796875 451.481947zM550.0048155000001 959.9708615L550.0048155000001 710.916297L408.4199 711.8642895L550.0048155000001 959.9708615L550.0048155000001 959.9708615z" />
|
97 |
+
</font>
|
98 |
+
</defs>
|
99 |
+
</svg>
|
video-js/font/VideoJS.ttf
ADDED
Binary file
|
video-js/font/VideoJS.woff
ADDED
Binary file
|
video-js/font/vjs.eot
DELETED
Binary file
|
video-js/font/vjs.svg
DELETED
@@ -1,28 +0,0 @@
|
|
1 |
-
<?xml version="1.0" standalone="no"?>
|
2 |
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
3 |
-
<svg xmlns="http://www.w3.org/2000/svg">
|
4 |
-
<metadata>Generated by IcoMoon</metadata>
|
5 |
-
<defs>
|
6 |
-
<font id="icomoon" horiz-adv-x="1024">
|
7 |
-
<font-face units-per-em="1024" ascent="960" descent="-64" />
|
8 |
-
<missing-glyph horiz-adv-x="1024" />
|
9 |
-
<glyph unicode=" " d="" horiz-adv-x="512" />
|
10 |
-
<glyph unicode="" d="M1024 960v-416l-160 160-192-192-96 96 192 192-160 160zM448 288l-192-192 160-160h-416v416l160-160 192 192z" />
|
11 |
-
<glyph unicode="" d="M192 832l640-384-640-384z" />
|
12 |
-
<glyph unicode="" d="M128 832h320v-768h-320zM576 832h320v-768h-320z" />
|
13 |
-
<glyph unicode="" d="M401.332 881.332c25.668 25.668 46.668 16.968 46.668-19.332v-828c0-36.3-21-44.998-46.668-19.33l-241.332 241.33h-160v384h160l241.332 241.332z" />
|
14 |
-
<glyph unicode="" d="M549.020 218.98c-12.286 0-24.568 4.686-33.942 14.058-18.746 18.746-18.746 49.136 0 67.882 81.1 81.1 81.1 213.058 0 294.156-18.746 18.746-18.746 49.138 0 67.882 18.746 18.744 49.136 18.744 67.882 0 118.53-118.53 118.53-311.392 0-429.922-9.372-9.37-21.656-14.056-33.94-14.056zM401.332 881.332c25.668 25.668 46.668 16.968 46.668-19.332v-828c0-36.3-21-44.998-46.668-19.33l-241.332 241.33h-160v384h160l241.332 241.332z" />
|
15 |
-
<glyph unicode="" d="M719.53 128.47c-12.286 0-24.568 4.686-33.942 14.058-18.744 18.744-18.744 49.136 0 67.882 131.006 131.006 131.006 344.17 0 475.176-18.744 18.746-18.744 49.138 0 67.882 18.744 18.742 49.138 18.744 67.882 0 81.594-81.592 126.53-190.076 126.53-305.468 0-115.39-44.936-223.876-126.53-305.47-9.372-9.374-21.656-14.060-33.94-14.060zM549.020 218.98c-12.286 0-24.568 4.686-33.942 14.058-18.746 18.746-18.746 49.136 0 67.882 81.1 81.1 81.1 213.058 0 294.156-18.746 18.746-18.746 49.138 0 67.882 18.746 18.744 49.136 18.744 67.882 0 118.53-118.53 118.53-311.392 0-429.922-9.372-9.37-21.656-14.056-33.94-14.056zM401.332 881.332c25.668 25.668 46.668 16.968 46.668-19.332v-828c0-36.3-21-44.998-46.668-19.33l-241.332 241.33h-160v384h160l241.332 241.332z" />
|
16 |
-
<glyph unicode="" d="M890.040 37.96c-12.286 0-24.568 4.686-33.942 14.058-18.744 18.746-18.744 49.136 0 67.882 87.638 87.642 135.904 204.16 135.904 328.1 0 123.938-48.266 240.458-135.904 328.098-18.744 18.746-18.744 49.138 0 67.882 18.744 18.744 49.138 18.744 67.882 0 105.77-105.772 164.022-246.4 164.022-395.98 0-149.582-58.252-290.208-164.022-395.98-9.372-9.374-21.656-14.060-33.94-14.060zM719.53 128.47c-12.286 0-24.568 4.686-33.942 14.058-18.744 18.744-18.744 49.136 0 67.882 131.006 131.006 131.006 344.17 0 475.176-18.744 18.746-18.744 49.138 0 67.882 18.744 18.742 49.138 18.744 67.882 0 81.594-81.592 126.53-190.076 126.53-305.468 0-115.39-44.936-223.876-126.53-305.47-9.372-9.374-21.656-14.060-33.94-14.060zM549.020 218.98c-12.286 0-24.568 4.686-33.942 14.058-18.746 18.746-18.746 49.136 0 67.882 81.1 81.1 81.1 213.058 0 294.156-18.746 18.746-18.746 49.138 0 67.882 18.746 18.744 49.136 18.744 67.882 0 118.53-118.53 118.53-311.392 0-429.922-9.372-9.37-21.656-14.056-33.94-14.056zM401.332 881.332c25.668 25.668 46.668 16.968 46.668-19.332v-828c0-36.3-21-44.998-46.668-19.33l-241.332 241.33h-160v384h160l241.332 241.332z" horiz-adv-x="1088" />
|
17 |
-
<glyph unicode="" d="M512 960l-320-512 320-512 320 512z" />
|
18 |
-
<glyph unicode="" d="M0 960h1374.316v-1030.414h-1374.316v1030.414zM1245.462 449.276c-1.706 180.052-8.542 258.568-51.2 314.036-7.68 11.946-22.186 18.772-34.132 27.296-41.814 30.73-238.944 41.814-467.636 41.814-228.702 0-435.21-11.084-476.17-41.814-12.8-8.524-27.316-15.35-35.84-27.296-41.822-55.468-47.786-133.984-50.346-314.036 2.56-180.062 8.524-258.57 50.346-314.036 8.524-12.8 23.040-18.774 35.84-27.306 40.96-31.574 247.468-41.814 476.17-43.52 228.692 1.706 425.822 11.946 467.636 43.52 11.946 8.532 26.452 14.506 34.132 27.306 42.658 55.466 49.494 133.974 51.2 314.036zM662.358 495.904c-11.58 140.898-86.51 223.906-220.556 223.906-122.458 0-218.722-110.432-218.722-287.88 0-178.212 87.73-289.396 232.734-289.396 115.766 0 196.798 85.298 209.588 226.95h-138.302c-5.48-52.548-27.414-92.914-73.72-92.914-73.108 0-86.51 72.354-86.51 149.27 0 105.868 30.46 159.932 81.032 159.932 45.082 0 73.718-32.75 77.976-89.868h136.48zM1140.026 495.904c-11.57 140.898-86.51 223.906-220.546 223.906-122.466 0-218.722-110.432-218.722-287.88 0-178.212 87.73-289.396 232.734-289.396 115.758 0 196.788 85.298 209.58 226.95h-138.304c-5.47-52.548-27.404-92.914-73.71-92.914-73.116 0-86.518 72.354-86.518 149.27 0 105.868 30.468 159.932 81.030 159.932 45.084 0 73.728-32.75 77.986-89.868h136.47z" horiz-adv-x="1374" />
|
19 |
-
<glyph unicode="" d="M128 832h768v-768h-768z" />
|
20 |
-
<glyph unicode="" d="M384 832c0-70.692 57.308-128 128-128s128 57.308 128 128c0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128zM655.53 719.53c0-70.692 57.308-128 128-128s128 57.308 128 128c0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128zM832 448c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64zM719.53 176.47c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64zM448.002 64c0 0 0 0 0 0 0-35.346 28.654-64 64-64 35.346 0 64 28.654 64 64 0 0 0 0 0 0 0 0 0 0 0 0 0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64s0 0 0 0zM176.472 176.47c0 0 0 0 0 0 0-35.346 28.654-64 64-64 35.346 0 64 28.654 64 64 0 0 0 0 0 0 0 0 0 0 0 0 0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64s0 0 0 0zM144.472 719.53c0 0 0 0 0 0 0-53.019 42.981-96 96-96 53.019 0 96 42.981 96 96 0 0 0 0 0 0 0 0 0 0 0 0 0 53.019-42.981 96-96 96-53.019 0-96-42.981-96-96s0 0 0 0zM56 448c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.765-32.235 72-72 72-39.765 0-72-32.235-72-72z" />
|
21 |
-
<glyph unicode="" d="M448 384v-416l-160 160-192-192-96 96 192 192-160 160zM1024 864l-192-192 160-160h-416v416l160-160 192 192z" />
|
22 |
-
<glyph unicode="" d="M512 896c282.77 0 512-186.25 512-416 0-229.752-229.23-416-512-416-27.156 0-53.81 1.734-79.824 5.044-109.978-109.978-241.25-129.7-368.176-132.596v26.916c68.536 33.578 128 94.74 128 164.636 0 9.754-0.758 19.33-2.164 28.696-115.796 76.264-189.836 192.754-189.836 323.304 0 229.75 229.23 416 512 416z" />
|
23 |
-
<glyph unicode="" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 704c141.384 0 256-114.616 256-256s-114.616-256-256-256-256 114.616-256 256 114.616 256 256 256zM817.47 142.53c-81.594-81.594-190.080-126.53-305.47-126.53-115.392 0-223.876 44.936-305.47 126.53-81.594 81.594-126.53 190.078-126.53 305.47 0 115.39 44.936 223.876 126.53 305.47l67.882-67.882c0 0 0 0 0 0-131.006-131.006-131.006-344.17 0-475.176 63.462-63.462 147.838-98.412 237.588-98.412 89.748 0 174.124 34.95 237.588 98.412 131.006 131.006 131.006 344.168 0 475.176l67.882 67.882c81.594-81.594 126.53-190.080 126.53-305.47 0-115.392-44.936-223.876-126.53-305.47z" />
|
24 |
-
<glyph unicode="" d="M864 256c-45.16 0-85.92-18.738-115.012-48.83l-431.004 215.502c1.314 8.252 2.016 16.706 2.016 25.328s-0.702 17.076-2.016 25.326l431.004 215.502c29.092-30.090 69.852-48.828 115.012-48.828 88.366 0 160 71.634 160 160s-71.634 160-160 160-160-71.634-160-160c0-8.622 0.704-17.076 2.016-25.326l-431.004-215.504c-29.092 30.090-69.852 48.83-115.012 48.83-88.366 0-160-71.636-160-160 0-88.368 71.634-160 160-160 45.16 0 85.92 18.738 115.012 48.828l431.004-215.502c-1.312-8.25-2.016-16.704-2.016-25.326 0-88.368 71.634-160 160-160s160 71.632 160 160c0 88.364-71.634 160-160 160z" />
|
25 |
-
<glyph unicode="" d="M1024 448c-1.278 66.862-15.784 133.516-42.576 194.462-26.704 61-65.462 116.258-113.042 161.92-47.552 45.696-103.944 81.82-164.984 105.652-61.004 23.924-126.596 35.352-191.398 33.966-64.81-1.282-129.332-15.374-188.334-41.356-59.048-25.896-112.542-63.47-156.734-109.576-44.224-46.082-79.16-100.708-102.186-159.798-23.114-59.062-34.128-122.52-32.746-185.27 1.286-62.76 14.964-125.148 40.134-182.206 25.088-57.1 61.476-108.828 106.11-151.548 44.61-42.754 97.472-76.504 154.614-98.72 57.118-22.304 118.446-32.902 179.142-31.526 60.708 1.29 120.962 14.554 176.076 38.914 55.15 24.282 105.116 59.48 146.366 102.644 41.282 43.14 73.844 94.236 95.254 149.43 13.034 33.458 21.88 68.4 26.542 103.798 1.246-0.072 2.498-0.12 3.762-0.12 35.346 0 64 28.652 64 64 0 1.796-0.094 3.572-0.238 5.332h0.238zM922.306 278.052c-23.472-53.202-57.484-101.4-99.178-141.18-41.67-39.81-91-71.186-144.244-91.79-53.228-20.678-110.29-30.452-166.884-29.082-56.604 1.298-112.596 13.736-163.82 36.474-51.25 22.666-97.684 55.49-135.994 95.712-38.338 40.198-68.528 87.764-88.322 139.058-19.87 51.284-29.228 106.214-27.864 160.756 1.302 54.552 13.328 108.412 35.254 157.69 21.858 49.3 53.498 93.97 92.246 130.81 38.73 36.868 84.53 65.87 133.874 84.856 49.338 19.060 102.136 28.006 154.626 26.644 52.5-1.306 104.228-12.918 151.562-34.034 47.352-21.050 90.256-51.502 125.624-88.782 35.396-37.258 63.21-81.294 81.39-128.688 18.248-47.392 26.782-98.058 25.424-148.496h0.238c-0.144-1.76-0.238-3.536-0.238-5.332 0-33.012 24.992-60.174 57.086-63.624-6.224-34.822-16.53-68.818-30.78-100.992z" />
|
26 |
-
<glyph unicode="" d="M512 960c-278.748 0-505.458-222.762-511.848-499.974 5.92 241.864 189.832 435.974 415.848 435.974 229.75 0 416-200.576 416-448 0-53.020 42.98-96 96-96 53.020 0 96 42.98 96 96 0 282.77-229.23 512-512 512zM512-64c278.748 0 505.458 222.762 511.848 499.974-5.92-241.864-189.832-435.974-415.848-435.974-229.75 0-416 200.576-416 448 0 53.020-42.98 96-96 96-53.020 0-96-42.98-96-96 0-282.77 229.23-512 512-512z" />
|
27 |
-
<glyph unicode="" d="M1024 351.906v192.188l-146.774 24.462c-5.958 18.132-13.222 35.668-21.694 52.5l86.454 121.034-135.896 135.898-120.826-86.304c-16.91 8.554-34.538 15.888-52.768 21.902l-24.402 146.414h-192.188l-24.402-146.416c-18.23-6.014-35.858-13.348-52.766-21.902l-120.828 86.304-135.898-135.898 86.454-121.036c-8.47-16.83-15.734-34.366-21.692-52.498l-146.774-24.46v-192.188l147.118-24.52c5.96-17.968 13.21-35.348 21.642-52.030l-86.748-121.448 135.898-135.896 121.654 86.894c16.602-8.35 33.89-15.528 51.764-21.434l24.578-147.472h192.188l24.578 147.474c17.874 5.906 35.162 13.084 51.766 21.432l121.652-86.892 135.896 135.896-86.744 121.446c8.432 16.682 15.678 34.062 21.64 52.032l147.118 24.518zM512 320c-70.692 0-128 57.306-128 128 0 70.692 57.308 128 128 128 70.694 0 128-57.308 128-128 0-70.694-57.306-128-128-128z" />
|
28 |
-
</font></defs></svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
video-js/font/vjs.ttf
DELETED
Binary file
|
video-js/font/vjs.woff
DELETED
Binary file
|
video-js/kg-video-js-skin.css
CHANGED
@@ -1,1039 +1,105 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
/* Custom Icon Font
|
5 |
-
--------------------------------------------------------------------------------
|
6 |
-
The control icons are from a custom font. Each icon corresponds to a character
|
7 |
-
(e.g. "\e001"). Font icons allow for easy scaling and coloring of icons.
|
8 |
-
*/
|
9 |
-
@font-face {
|
10 |
-
font-family: 'VideoJS';
|
11 |
-
src: url('font/vjs.eot');
|
12 |
-
src: url('font/vjs.eot?#iefix') format('embedded-opentype'), url('font/vjs.woff') format('woff'), url('font/vjs.ttf') format('truetype'), url('font/vjs.svg#icomoon') format('svg');
|
13 |
-
font-weight: normal;
|
14 |
-
font-style: normal;
|
15 |
-
}
|
16 |
-
/* Base UI Component Classes
|
17 |
-
--------------------------------------------------------------------------------
|
18 |
-
*/
|
19 |
-
/* Slider - used for Volume bar and Seek bar */
|
20 |
-
.kg-video-js-skin .vjs-slider {
|
21 |
-
/* Replace browser focus highlight with handle highlight */
|
22 |
-
outline: 0;
|
23 |
-
position: relative;
|
24 |
-
cursor: pointer;
|
25 |
-
padding: 0;
|
26 |
-
/* background-color-with-alpha */
|
27 |
-
background-color: #333333;
|
28 |
-
background-color: rgba(51, 51, 51, 0.9);
|
29 |
-
}
|
30 |
-
.kg-video-js-skin .vjs-slider:focus {
|
31 |
-
/* box-shadow */
|
32 |
-
-webkit-box-shadow: 0 0 2em #ffffff;
|
33 |
-
-moz-box-shadow: 0 0 2em #ffffff;
|
34 |
-
box-shadow: 0 0 2em #ffffff;
|
35 |
-
}
|
36 |
-
.kg-video-js-skin .vjs-slider-handle {
|
37 |
-
position: absolute;
|
38 |
-
/* Needed for IE6 */
|
39 |
-
left: 0;
|
40 |
-
top: 0;
|
41 |
-
}
|
42 |
-
.kg-video-js-skin .vjs-slider-handle:before {
|
43 |
-
content: "\e009";
|
44 |
-
font-family: VideoJS;
|
45 |
-
font-size: 1em;
|
46 |
-
line-height: 1;
|
47 |
-
text-align: center;
|
48 |
-
text-shadow: 0em 0em 1em #fff;
|
49 |
-
position: absolute;
|
50 |
-
top: 0;
|
51 |
-
left: 0;
|
52 |
-
/* Rotate the square icon to make a diamond */
|
53 |
-
/* transform */
|
54 |
-
-webkit-transform: rotate(-45deg);
|
55 |
-
-moz-transform: rotate(-45deg);
|
56 |
-
-ms-transform: rotate(-45deg);
|
57 |
-
-o-transform: rotate(-45deg);
|
58 |
-
transform: rotate(-45deg);
|
59 |
-
}
|
60 |
-
/* Control Bar
|
61 |
-
--------------------------------------------------------------------------------
|
62 |
-
The default control bar that is a container for most of the controls.
|
63 |
-
*/
|
64 |
-
.kg-video-js-skin .vjs-control-bar {
|
65 |
-
/* Start hidden */
|
66 |
-
display: none;
|
67 |
-
position: absolute;
|
68 |
-
/* Place control bar at the bottom of the player box/video.
|
69 |
-
If you want more margin below the control bar, add more height. */
|
70 |
-
bottom: 0;
|
71 |
-
/* Use left/right to stretch to 100% width of player div */
|
72 |
-
left: 0;
|
73 |
-
right: 0;
|
74 |
-
/* Height includes any margin you want above or below control items */
|
75 |
-
height: 3.0em;
|
76 |
-
/* background-color-with-alpha */
|
77 |
-
background-color: #282828;
|
78 |
-
background-color: rgba(40, 40, 40, 0.7);
|
79 |
-
}
|
80 |
-
/* Show the control bar only once the video has started playing */
|
81 |
-
.kg-video-js-skin.vjs-has-started .vjs-control-bar {
|
82 |
-
display: block;
|
83 |
-
/* Visibility needed to make sure things hide in older browsers too. */
|
84 |
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
-
|
90 |
-
-o-transition: visibility 0.1s, opacity 0.1s;
|
91 |
-
transition: visibility 0.1s, opacity 0.1s;
|
92 |
-
}
|
93 |
-
/* Hide the control bar when the video is playing and the user is inactive */
|
94 |
-
.kg-video-js-skin.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {
|
95 |
-
display: block;
|
96 |
-
visibility: hidden;
|
97 |
-
opacity: 0;
|
98 |
-
/* transition */
|
99 |
-
-webkit-transition: visibility 1s, opacity 1s;
|
100 |
-
-moz-transition: visibility 1s, opacity 1s;
|
101 |
-
-o-transition: visibility 1s, opacity 1s;
|
102 |
-
transition: visibility 1s, opacity 1s;
|
103 |
-
}
|
104 |
-
.kg-video-js-skin.vjs-controls-disabled .vjs-control-bar {
|
105 |
-
display: none;
|
106 |
-
}
|
107 |
-
.kg-video-js-skin.vjs-using-native-controls .vjs-control-bar {
|
108 |
-
display: none;
|
109 |
-
}
|
110 |
-
/* The control bar shouldn't show after an error */
|
111 |
-
.kg-video-js-skin.vjs-error .vjs-control-bar {
|
112 |
-
display: none;
|
113 |
-
}
|
114 |
-
/* Don't hide the control bar if it's audio */
|
115 |
-
.vjs-audio.kg-video-js-skin.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {
|
116 |
-
opacity: 1;
|
117 |
-
visibility: visible;
|
118 |
-
}
|
119 |
-
/* IE8 is flakey with fonts, and you have to change the actual content to force
|
120 |
-
fonts to show/hide properly.
|
121 |
-
- "\9" IE8 hack didn't work for this
|
122 |
-
- Found in XP IE8 from http://modern.ie. Does not show up in "IE8 mode" in IE9
|
123 |
-
*/
|
124 |
-
@media \0screen {
|
125 |
-
.kg-video-js-skin.vjs-user-inactive.vjs-playing .vjs-control-bar :before {
|
126 |
-
content: "";
|
127 |
-
}
|
128 |
-
}
|
129 |
-
/* General styles for individual controls. */
|
130 |
-
.kg-video-js-skin .vjs-control {
|
131 |
-
outline: none;
|
132 |
-
position: relative;
|
133 |
-
float: left;
|
134 |
-
text-align: center;
|
135 |
-
margin: 0;
|
136 |
-
padding: 0;
|
137 |
-
height: 3.0em;
|
138 |
-
width: 4em;
|
139 |
-
}
|
140 |
-
/* Font button icons */
|
141 |
-
.kg-video-js-skin .vjs-control:before {
|
142 |
-
font-family: VideoJS;
|
143 |
-
font-size: 1.5em;
|
144 |
-
line-height: 2;
|
145 |
-
position: absolute;
|
146 |
-
top: 0;
|
147 |
-
left: 0;
|
148 |
-
width: 100%;
|
149 |
-
height: 100%;
|
150 |
-
text-align: center;
|
151 |
-
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
|
152 |
-
}
|
153 |
-
/* Replacement for focus outline */
|
154 |
-
.kg-video-js-skin .vjs-control:focus:before,
|
155 |
-
.kg-video-js-skin .vjs-control:hover:before {
|
156 |
-
text-shadow: 0em 0em 1em #ffffff;
|
157 |
-
}
|
158 |
-
.kg-video-js-skin .vjs-control:focus {
|
159 |
-
/* outline: 0; */
|
160 |
-
/* keyboard-only users cannot see the focus on several of the UI elements when
|
161 |
-
this is set to 0 */
|
162 |
|
163 |
-
|
164 |
-
|
165 |
-
.kg-video-js-skin .vjs-control-text {
|
166 |
-
/* hide-visually */
|
167 |
-
border: 0;
|
168 |
-
clip: rect(0 0 0 0);
|
169 |
-
height: 1px;
|
170 |
-
margin: -1px;
|
171 |
-
overflow: hidden;
|
172 |
-
padding: 0;
|
173 |
-
position: absolute;
|
174 |
-
width: 1px;
|
175 |
-
}
|
176 |
-
/* Play/Pause
|
177 |
-
--------------------------------------------------------------------------------
|
178 |
*/
|
179 |
-
.kg-video-js-skin
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
.kg-video-js-skin.vjs-playing .vjs-play-control:before {
|
187 |
-
content: "\e002";
|
188 |
-
}
|
189 |
-
/* Playback toggle
|
190 |
-
--------------------------------------------------------------------------------
|
191 |
-
*/
|
192 |
-
.kg-video-js-skin .vjs-playback-rate .vjs-playback-rate-value {
|
193 |
-
font-size: 1.5em;
|
194 |
-
line-height: 2;
|
195 |
-
position: absolute;
|
196 |
-
top: 0;
|
197 |
-
left: 0;
|
198 |
-
width: 100%;
|
199 |
-
height: 100%;
|
200 |
-
text-align: center;
|
201 |
-
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
|
202 |
-
}
|
203 |
-
.kg-video-js-skin .vjs-playback-rate.vjs-menu-button .vjs-menu .vjs-menu-content {
|
204 |
-
width: 4em;
|
205 |
-
left: -2em;
|
206 |
-
list-style: none;
|
207 |
-
}
|
208 |
-
/* Volume/Mute
|
209 |
-
-------------------------------------------------------------------------------- */
|
210 |
-
.kg-video-js-skin .vjs-mute-control,
|
211 |
-
.kg-video-js-skin .vjs-volume-menu-button {
|
212 |
-
cursor: pointer;
|
213 |
-
float: right;
|
214 |
-
}
|
215 |
-
.kg-video-js-skin .vjs-mute-control:before,
|
216 |
-
.kg-video-js-skin .vjs-volume-menu-button:before {
|
217 |
-
content: "\e006";
|
218 |
-
}
|
219 |
-
.kg-video-js-skin .vjs-mute-control.vjs-vol-0:before,
|
220 |
-
.kg-video-js-skin .vjs-volume-menu-button.vjs-vol-0:before {
|
221 |
-
content: "\e003";
|
222 |
-
}
|
223 |
-
.kg-video-js-skin .vjs-mute-control.vjs-vol-1:before,
|
224 |
-
.kg-video-js-skin .vjs-volume-menu-button.vjs-vol-1:before {
|
225 |
-
content: "\e004";
|
226 |
-
}
|
227 |
-
.kg-video-js-skin .vjs-mute-control.vjs-vol-2:before,
|
228 |
-
.kg-video-js-skin .vjs-volume-menu-button.vjs-vol-2:before {
|
229 |
-
content: "\e005";
|
230 |
-
}
|
231 |
-
.kg-video-js-skin .vjs-volume-control {
|
232 |
-
width: 5em;
|
233 |
-
float: right;
|
234 |
-
}
|
235 |
-
.kg-video-js-skin .vjs-volume-bar {
|
236 |
-
width: 5em;
|
237 |
-
height: 0.6em;
|
238 |
-
margin: 1.1em auto 0;
|
239 |
-
}
|
240 |
-
.kg-video-js-skin .vjs-volume-menu-button .vjs-menu-content {
|
241 |
-
height: 2.9em;
|
242 |
-
}
|
243 |
-
.kg-video-js-skin .vjs-volume-level {
|
244 |
-
position: absolute;
|
245 |
-
top: 0;
|
246 |
-
left: 0;
|
247 |
-
height: 0.5em;
|
248 |
-
/* assuming volume starts at 1.0 */
|
249 |
-
|
250 |
-
width: 100%;
|
251 |
-
background: #66a8cc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC) -50% 0 repeat;
|
252 |
-
}
|
253 |
-
.kg-video-js-skin .vjs-volume-bar .vjs-volume-handle {
|
254 |
-
width: 0.5em;
|
255 |
-
height: 0.5em;
|
256 |
-
/* Assumes volume starts at 1.0. If you change the size of the
|
257 |
-
handle relative to the volume bar, you'll need to update this value
|
258 |
-
too. */
|
259 |
-
|
260 |
-
left: 4.5em;
|
261 |
-
}
|
262 |
-
.kg-video-js-skin .vjs-volume-handle:before {
|
263 |
-
font-size: 0.9em;
|
264 |
-
top: -0.2em;
|
265 |
-
left: -0.2em;
|
266 |
-
width: 1em;
|
267 |
-
height: 1em;
|
268 |
-
}
|
269 |
-
/* The volume menu button is like menu buttons (captions/subtitles) but works
|
270 |
-
a little differently. It needs to be possible to tab to the volume slider
|
271 |
-
without hitting space bar on the menu button. To do this we're not using
|
272 |
-
display:none to hide the slider menu by default, and instead setting the
|
273 |
-
width and height to zero. */
|
274 |
-
.kg-video-js-skin .vjs-volume-menu-button .vjs-menu {
|
275 |
-
display: block;
|
276 |
-
width: 0;
|
277 |
-
height: 0;
|
278 |
-
border-top-color: transparent;
|
279 |
-
}
|
280 |
-
.kg-video-js-skin .vjs-volume-menu-button .vjs-menu .vjs-menu-content {
|
281 |
-
height: 0;
|
282 |
-
width: 0;
|
283 |
}
|
284 |
-
.kg-video-js-skin .vjs-volume-menu-button:hover .vjs-menu,
|
285 |
-
.kg-video-js-skin .vjs-volume-menu-button .vjs-menu.vjs-lock-showing {
|
286 |
-
border-top-color: rgba(7, 40, 50, 0.5);
|
287 |
-
/* Same as ul background */
|
288 |
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
299 |
position: absolute;
|
300 |
-
left: 0;
|
301 |
-
right: 0;
|
302 |
-
width: auto;
|
303 |
-
font-size: 0.3em;
|
304 |
-
height: 1em;
|
305 |
-
/* Set above the rest of the controls. */
|
306 |
-
top: -1em;
|
307 |
-
/* Shrink the bar slower than it grows. */
|
308 |
-
/* transition */
|
309 |
-
-webkit-transition: all 0.4s;
|
310 |
-
-moz-transition: all 0.4s;
|
311 |
-
-o-transition: all 0.4s;
|
312 |
-
transition: all 0.4s;
|
313 |
-
}
|
314 |
-
/* On hover, make the progress bar grow to something that's more clickable.
|
315 |
-
This simply changes the overall font for the progress bar, and this
|
316 |
-
updates both the em-based widths and heights, as wells as the icon font */
|
317 |
-
.kg-video-js-skin:hover .vjs-progress-control {
|
318 |
-
font-size: .9em;
|
319 |
-
/* Even though we're not changing the top/height, we need to include them in
|
320 |
-
the transition so they're handled correctly. */
|
321 |
|
322 |
-
|
323 |
-
-webkit-transition: all 0.2s;
|
324 |
-
-moz-transition: all 0.2s;
|
325 |
-
-o-transition: all 0.2s;
|
326 |
-
transition: all 0.2s;
|
327 |
-
}
|
328 |
-
/* Box containing play and load progresses. Also acts as seek scrubber. */
|
329 |
-
.kg-video-js-skin .vjs-progress-holder {
|
330 |
-
height: 100%;
|
331 |
}
|
332 |
-
/* Progress Bars */
|
333 |
-
.kg-video-js-skin .vjs-progress-holder .vjs-play-progress,
|
334 |
-
.kg-video-js-skin .vjs-progress-holder .vjs-load-progress {
|
335 |
-
position: absolute;
|
336 |
-
display: block;
|
337 |
-
height: 100%;
|
338 |
-
margin: 0;
|
339 |
-
padding: 0;
|
340 |
-
/* updated by javascript during playback */
|
341 |
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
|
|
|
|
|
|
|
|
|
|
346 |
}
|
347 |
-
.kg-video-js-skin .vjs-play-progress {
|
348 |
-
/*
|
349 |
-
Using a data URI to create the white diagonal lines with a transparent
|
350 |
-
background. Surprisingly works in IE8.
|
351 |
-
Created using http://www.patternify.com
|
352 |
-
Changing the first color value will change the bar color.
|
353 |
-
Also using a paralax effect to make the lines move backwards.
|
354 |
-
The -50% left position makes that happen.
|
355 |
-
*/
|
356 |
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
background:
|
361 |
-
background: rgba(255, 255, 255, 0.4);
|
362 |
-
}
|
363 |
-
/* there are child elements of the load progress bar that represent the
|
364 |
-
specific time ranges that have been buffered */
|
365 |
-
.kg-video-js-skin .vjs-load-progress div {
|
366 |
-
background: #787878 /* IE8- Fallback */;
|
367 |
-
background: rgba(255, 255, 255, 0.1);
|
368 |
-
}
|
369 |
-
.kg-video-js-skin .vjs-seek-handle {
|
370 |
-
width: 1.5em;
|
371 |
-
height: 100%;
|
372 |
-
}
|
373 |
-
.kg-video-js-skin .vjs-seek-handle:before {
|
374 |
-
padding-top: 0.1em /* Minor adjustment */;
|
375 |
-
}
|
376 |
-
/* Live Mode
|
377 |
-
--------------------------------------------------------------------------------
|
378 |
-
*/
|
379 |
-
.kg-video-js-skin.vjs-live .vjs-time-controls,
|
380 |
-
.kg-video-js-skin.vjs-live .vjs-time-divider,
|
381 |
-
.kg-video-js-skin.vjs-live .vjs-progress-control {
|
382 |
-
display: none;
|
383 |
-
}
|
384 |
-
.kg-video-js-skin.vjs-live .vjs-live-display {
|
385 |
-
display: block;
|
386 |
-
}
|
387 |
-
/* Live Display
|
388 |
-
--------------------------------------------------------------------------------
|
389 |
-
*/
|
390 |
-
.kg-video-js-skin .vjs-live-display {
|
391 |
-
display: none;
|
392 |
-
font-size: 1em;
|
393 |
-
line-height: 3em;
|
394 |
-
}
|
395 |
-
/* Time Display
|
396 |
-
--------------------------------------------------------------------------------
|
397 |
-
*/
|
398 |
-
.kg-video-js-skin .vjs-time-controls {
|
399 |
-
font-size: 1em;
|
400 |
-
/* Align vertically by making the line height the same as the control bar */
|
401 |
-
line-height: 3em;
|
402 |
-
}
|
403 |
-
.kg-video-js-skin .vjs-current-time {
|
404 |
-
float: left;
|
405 |
-
}
|
406 |
-
.kg-video-js-skin .vjs-duration {
|
407 |
-
float: left;
|
408 |
-
}
|
409 |
-
/* Remaining time is in the HTML, but not included in default design */
|
410 |
-
.kg-video-js-skin .vjs-remaining-time {
|
411 |
-
display: none;
|
412 |
-
float: left;
|
413 |
-
}
|
414 |
-
.vjs-time-divider {
|
415 |
-
float: left;
|
416 |
-
line-height: 3em;
|
417 |
-
}
|
418 |
-
/* Fullscreen
|
419 |
-
--------------------------------------------------------------------------------
|
420 |
-
*/
|
421 |
-
.kg-video-js-skin .vjs-fullscreen-control {
|
422 |
-
width: 3.8em;
|
423 |
-
cursor: pointer;
|
424 |
-
float: right;
|
425 |
-
}
|
426 |
-
.kg-video-js-skin .vjs-fullscreen-control:before {
|
427 |
-
content: "\e000";
|
428 |
-
}
|
429 |
-
/* Switch to the exit icon when the player is in fullscreen */
|
430 |
-
.kg-video-js-skin.vjs-fullscreen .vjs-fullscreen-control:before {
|
431 |
-
content: "\e00b";
|
432 |
}
|
433 |
-
/* Big Play Button (play button at start)
|
434 |
-
--------------------------------------------------------------------------------
|
435 |
-
Positioning of the play button in the center or other corners can be done more
|
436 |
-
easily in the skin designer. http://designer.videojs.com/
|
437 |
-
*/
|
438 |
-
.kg-video-js-skin .vjs-big-play-button {
|
439 |
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
height: 8em;
|
447 |
-
margin: -4em;
|
448 |
-
text-align: center;
|
449 |
-
vertical-align: middle;
|
450 |
-
cursor: pointer;
|
451 |
-
opacity: 1;
|
452 |
-
box-sizing: content-box !important;
|
453 |
-
-moz-box-sizing: content-box !important;
|
454 |
-
-webkit-box-sizing: content-box !important;
|
455 |
-
/* Need a slightly gray bg so it can be seen on black backgrounds */
|
456 |
-
/* background-color-with-alpha */
|
457 |
-
background-color: rgb(40, 40, 40);
|
458 |
-
background-color: rgba(40, 40, 40, 0.6);
|
459 |
-
border: 0.6em solid rgb(255, 255, 255);
|
460 |
-
border-color: rgba(255, 255, 255, 0.7);
|
461 |
-
/* border-radius */
|
462 |
-
-webkit-border-radius: 100px;
|
463 |
-
-moz-border-radius: 100px;
|
464 |
-
border-radius: 100px;
|
465 |
-
/* box-shadow
|
466 |
-
-webkit-box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
|
467 |
-
-moz-box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
|
468 |
-
box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
|
469 |
-
*/
|
470 |
-
/* transition */
|
471 |
-
-webkit-transition: all 0.4s;
|
472 |
-
-moz-transition: all 0.4s;
|
473 |
-
-o-transition: all 0.4s;
|
474 |
-
transition: all 0.4s;
|
475 |
-
}
|
476 |
-
/* Hide if controls are disabled */
|
477 |
-
.kg-video-js-skin.vjs-controls-disabled .vjs-big-play-button {
|
478 |
-
display: none;
|
479 |
-
}
|
480 |
-
/* Hide when video starts playing */
|
481 |
-
.kg-video-js-skin.vjs-has-started .vjs-big-play-button {
|
482 |
-
display: none;
|
483 |
-
}
|
484 |
-
/* Hide on mobile devices. Remove when we stop using native controls
|
485 |
-
by default on mobile */
|
486 |
-
.kg-video-js-skin.vjs-using-native-controls .vjs-big-play-button {
|
487 |
-
display: none;
|
488 |
-
}
|
489 |
-
.kg-video-js-skin:hover .vjs-big-play-button,
|
490 |
-
.kg-video-js-skin .vjs-big-play-button:focus {
|
491 |
-
outline: 0;
|
492 |
-
border-color: #fff;
|
493 |
-
/* IE8 needs a non-glow hover state */
|
494 |
-
background-color: #505050;
|
495 |
-
background-color: rgba(50, 50, 50, 0.75);
|
496 |
-
/* box-shadow
|
497 |
-
-webkit-box-shadow: 0 0 3em #ffffff;
|
498 |
-
-moz-box-shadow: 0 0 3em #ffffff;
|
499 |
-
box-shadow: 0 0 3em #ffffff;
|
500 |
-
*/
|
501 |
-
/* transition */
|
502 |
-
-webkit-transition: all 0s;
|
503 |
-
-moz-transition: all 0s;
|
504 |
-
-o-transition: all 0s;
|
505 |
-
transition: all 0s;
|
506 |
-
}
|
507 |
-
.kg-video-js-skin:hover .vjs-big-play-button:before {
|
508 |
-
color: white;
|
509 |
-
transition-property: color;
|
510 |
-
transition-duration: 0s;
|
511 |
-
}
|
512 |
-
.kg-video-js-skin .vjs-big-play-button:before {
|
513 |
-
content: "\e001";
|
514 |
-
font-family: VideoJS;
|
515 |
-
line-height: 1.5em;
|
516 |
-
font-size: 5.5em;
|
517 |
-
text-align: center /* Needed for IE8 */;
|
518 |
-
position: absolute;
|
519 |
-
left: 2px;
|
520 |
-
width: 100%;
|
521 |
-
height: 100%;
|
522 |
-
transition-property: color;
|
523 |
-
transition-duration: 0.4s;
|
524 |
}
|
525 |
-
/* Error Display
|
526 |
-
--------------------------------------------------------------------------------
|
527 |
-
*/
|
528 |
-
.vjs-error-display {
|
529 |
-
display: none;
|
530 |
-
}
|
531 |
-
.vjs-error .vjs-error-display {
|
532 |
-
display: block;
|
533 |
-
position: absolute;
|
534 |
-
left: 0;
|
535 |
-
top: 0;
|
536 |
-
width: 100%;
|
537 |
-
height: 100%;
|
538 |
-
}
|
539 |
-
.vjs-error .vjs-error-display:before {
|
540 |
-
content: 'X';
|
541 |
-
font-family: Arial;
|
542 |
-
font-size: 4em;
|
543 |
-
color: #666666;
|
544 |
-
/* In order to center the play icon vertically we need to set the line height
|
545 |
-
to the same as the button height */
|
546 |
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
top: 50%;
|
554 |
-
margin-top: -0.5em;
|
555 |
-
width: 100%;
|
556 |
-
}
|
557 |
-
.vjs-error-display div {
|
558 |
-
position: absolute;
|
559 |
-
bottom: 1em;
|
560 |
-
right: 0;
|
561 |
-
left: 0;
|
562 |
-
font-size: 1.4em;
|
563 |
-
text-align: center;
|
564 |
-
padding: 3px;
|
565 |
-
background: #000000;
|
566 |
-
background: rgba(0, 0, 0, 0.5);
|
567 |
-
}
|
568 |
-
.vjs-error-display a,
|
569 |
-
.vjs-error-display a:visited {
|
570 |
-
color: #F4A460;
|
571 |
-
}
|
572 |
-
/* Loading Spinner
|
573 |
-
--------------------------------------------------------------------------------
|
574 |
-
*/
|
575 |
-
.vjs-loading-spinner {
|
576 |
-
/* Should be hidden by default */
|
577 |
-
display: none;
|
578 |
-
position: absolute;
|
579 |
-
top: 50%;
|
580 |
-
left: 50%;
|
581 |
-
font-size: 4em;
|
582 |
-
line-height: 1;
|
583 |
-
width: 1em;
|
584 |
-
height: 1em;
|
585 |
-
margin-left: -0.5em;
|
586 |
-
margin-top: -0.5em;
|
587 |
-
opacity: 0.75;
|
588 |
-
}
|
589 |
-
/* Show the spinner when waiting for data and seeking to a new time */
|
590 |
-
.vjs-waiting .vjs-loading-spinner,
|
591 |
-
.vjs-seeking .vjs-loading-spinner {
|
592 |
-
display: block;
|
593 |
-
/* only animate when showing because it can be processor heavy */
|
594 |
-
/* animation */
|
595 |
-
-webkit-animation: spin 1.5s infinite linear;
|
596 |
-
-moz-animation: spin 1.5s infinite linear;
|
597 |
-
-o-animation: spin 1.5s infinite linear;
|
598 |
-
animation: spin 1.5s infinite linear;
|
599 |
-
}
|
600 |
-
/* Errors are unrecoverable without user interaction so hide the spinner */
|
601 |
-
.vjs-error .vjs-loading-spinner {
|
602 |
-
display: none;
|
603 |
-
/* ensure animation doesn't continue while hidden */
|
604 |
-
/* animation */
|
605 |
-
-webkit-animation: none;
|
606 |
-
-moz-animation: none;
|
607 |
-
-o-animation: none;
|
608 |
-
animation: none;
|
609 |
-
}
|
610 |
-
.kg-video-js-skin .vjs-loading-spinner:before {
|
611 |
-
content: "\e01e";
|
612 |
-
font-family: VideoJS;
|
613 |
-
position: absolute;
|
614 |
-
top: 0;
|
615 |
-
left: 0;
|
616 |
-
width: 1em;
|
617 |
-
height: 1em;
|
618 |
-
text-align: center;
|
619 |
-
text-shadow: 0em 0em 0.1em #000;
|
620 |
-
}
|
621 |
-
@-moz-keyframes spin {
|
622 |
-
0% {
|
623 |
-
-moz-transform: rotate(0deg);
|
624 |
-
}
|
625 |
-
100% {
|
626 |
-
-moz-transform: rotate(359deg);
|
627 |
-
}
|
628 |
-
}
|
629 |
-
@-webkit-keyframes spin {
|
630 |
-
0% {
|
631 |
-
-webkit-transform: rotate(0deg);
|
632 |
-
}
|
633 |
-
100% {
|
634 |
-
-webkit-transform: rotate(359deg);
|
635 |
-
}
|
636 |
-
}
|
637 |
-
@-o-keyframes spin {
|
638 |
-
0% {
|
639 |
-
-o-transform: rotate(0deg);
|
640 |
-
}
|
641 |
-
100% {
|
642 |
-
-o-transform: rotate(359deg);
|
643 |
-
}
|
644 |
-
}
|
645 |
-
@keyframes spin {
|
646 |
-
0% {
|
647 |
-
transform: rotate(0deg);
|
648 |
-
}
|
649 |
-
100% {
|
650 |
-
transform: rotate(359deg);
|
651 |
-
}
|
652 |
-
}
|
653 |
-
/* Menu Buttons (Captions/Subtitles/etc.)
|
654 |
-
--------------------------------------------------------------------------------
|
655 |
-
*/
|
656 |
-
.kg-video-js-skin .vjs-menu-button {
|
657 |
-
float: right;
|
658 |
-
cursor: pointer;
|
659 |
}
|
660 |
-
.kg-video-js-skin .vjs-menu {
|
661 |
-
display: none;
|
662 |
-
position: absolute;
|
663 |
-
bottom: 0;
|
664 |
-
left: 0em;
|
665 |
-
/* (Width of vjs-menu - width of button) / 2 */
|
666 |
-
|
667 |
-
width: 0em;
|
668 |
-
height: 0em;
|
669 |
-
margin-bottom: 3em;
|
670 |
-
border-left: 2em solid transparent;
|
671 |
-
border-right: 2em solid transparent;
|
672 |
-
border-top: 1.55em solid #000000;
|
673 |
-
/* Same width top as ul bottom */
|
674 |
-
|
675 |
-
border-top-color: rgba(7, 40, 50, 0.5);
|
676 |
-
/* Same as ul background */
|
677 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
678 |
}
|
679 |
-
/* Button Pop-up Menu */
|
680 |
-
.kg-video-js-skin .vjs-menu-button .vjs-menu .vjs-menu-content {
|
681 |
-
display: block;
|
682 |
-
padding: 0;
|
683 |
-
margin: 0;
|
684 |
-
position: absolute;
|
685 |
-
width: 10em;
|
686 |
-
bottom: 1.5em;
|
687 |
-
/* Same bottom as vjs-menu border-top */
|
688 |
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
/* background-color-with-alpha */
|
695 |
-
background-color: #333321;
|
696 |
-
background-color: rgba(20, 20, 20, 0.7);
|
697 |
-
/* box-shadow */
|
698 |
-
-webkit-box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2);
|
699 |
-
-moz-box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2);
|
700 |
-
box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2);
|
701 |
-
}
|
702 |
-
.kg-video-js-skin .vjs-menu-button:hover .vjs-control-content .vjs-menu,
|
703 |
-
.kg-video-js-skin .vjs-control-content .vjs-menu.vjs-lock-showing {
|
704 |
-
display: block;
|
705 |
-
}
|
706 |
-
/* prevent menus from opening while scrubbing (FF, IE) */
|
707 |
-
.kg-video-js-skin.vjs-scrubbing .vjs-menu-button:hover .vjs-control-content .vjs-menu {
|
708 |
-
display: none;
|
709 |
-
}
|
710 |
-
.kg-video-js-skin .vjs-menu-button ul li {
|
711 |
-
list-style: none;
|
712 |
-
margin: 0;
|
713 |
-
padding: 0.3em 0 0.3em 0;
|
714 |
-
line-height: 1.4em;
|
715 |
-
font-size: 1.2em;
|
716 |
-
text-align: center;
|
717 |
-
text-transform: lowercase;
|
718 |
-
}
|
719 |
-
.kg-video-js-skin .vjs-menu-button ul li.vjs-selected {
|
720 |
-
background-color: #000;
|
721 |
-
}
|
722 |
-
.kg-video-js-skin .vjs-menu-button ul li:focus,
|
723 |
-
.kg-video-js-skin .vjs-menu-button ul li:hover,
|
724 |
-
.kg-video-js-skin .vjs-menu-button ul li.vjs-selected:focus,
|
725 |
-
.kg-video-js-skin .vjs-menu-button ul li.vjs-selected:hover {
|
726 |
-
outline: 0;
|
727 |
-
color: #111;
|
728 |
-
/* background-color-with-alpha */
|
729 |
-
background-color: #ffffff;
|
730 |
-
background-color: rgba(255, 255, 255, 0.75);
|
731 |
-
/* box-shadow */
|
732 |
-
-webkit-box-shadow: 0 0 1em #ffffff;
|
733 |
-
-moz-box-shadow: 0 0 1em #ffffff;
|
734 |
-
box-shadow: 0 0 1em #ffffff;
|
735 |
-
}
|
736 |
-
.kg-video-js-skin .vjs-menu-button ul li.vjs-menu-title {
|
737 |
text-align: center;
|
738 |
-
text-transform: uppercase;
|
739 |
-
font-size: 1em;
|
740 |
-
line-height: 2em;
|
741 |
-
padding: 0;
|
742 |
-
margin: 0 0 0.3em 0;
|
743 |
-
font-weight: bold;
|
744 |
-
cursor: default;
|
745 |
-
}
|
746 |
-
/* Subtitles Button */
|
747 |
-
.kg-video-js-skin .vjs-subtitles-button:before {
|
748 |
-
content: "\e00c";
|
749 |
-
}
|
750 |
-
/* Captions Button */
|
751 |
-
.kg-video-js-skin .vjs-captions-button:before {
|
752 |
-
content: "\e008";
|
753 |
-
}
|
754 |
-
/* Chapters Button */
|
755 |
-
.kg-video-js-skin .vjs-chapters-button:before {
|
756 |
-
content: "\e00c";
|
757 |
-
}
|
758 |
-
.kg-video-js-skin .vjs-chapters-button.vjs-menu-button .vjs-menu .vjs-menu-content {
|
759 |
-
width: 24em;
|
760 |
-
left: -12em;
|
761 |
-
}
|
762 |
-
/* Replacement for focus outline */
|
763 |
-
.kg-video-js-skin .vjs-captions-button:focus .vjs-control-content:before,
|
764 |
-
.kg-video-js-skin .vjs-captions-button:hover .vjs-control-content:before {
|
765 |
-
/* box-shadow */
|
766 |
-
-webkit-box-shadow: 0 0 1em #ffffff;
|
767 |
-
-moz-box-shadow: 0 0 1em #ffffff;
|
768 |
-
box-shadow: 0 0 1em #ffffff;
|
769 |
-
}
|
770 |
-
/*
|
771 |
-
REQUIRED STYLES (be careful overriding)
|
772 |
-
================================================================================
|
773 |
-
When loading the player, the video tag is replaced with a DIV,
|
774 |
-
that will hold the video tag or object tag for other playback methods.
|
775 |
-
The div contains the video playback element (Flash or HTML5) and controls,
|
776 |
-
and sets the width and height of the video.
|
777 |
-
|
778 |
-
** If you want to add some kind of border/padding (e.g. a frame), or special
|
779 |
-
positioning, use another containing element. Otherwise you risk messing up
|
780 |
-
control positioning and full window mode. **
|
781 |
-
*/
|
782 |
-
.video-js {
|
783 |
-
background-color: #000;
|
784 |
-
position: relative;
|
785 |
-
padding: 0;
|
786 |
-
/* Start with 10px for base font size so other dimensions can be em based and
|
787 |
-
easily calculable. */
|
788 |
-
|
789 |
-
font-size: 10px;
|
790 |
-
/* Allow poster to be vertically aligned. */
|
791 |
-
|
792 |
-
vertical-align: middle;
|
793 |
-
/* display: table-cell; */
|
794 |
-
/*This works in Safari but not Firefox.*/
|
795 |
-
|
796 |
-
/* Provide some basic defaults for fonts */
|
797 |
-
|
798 |
-
font-weight: normal;
|
799 |
-
font-style: normal;
|
800 |
-
/* Avoiding helvetica: issue #376 */
|
801 |
-
|
802 |
-
font-family: Arial, sans-serif;
|
803 |
-
/* Turn off user selection (text highlighting) by default.
|
804 |
-
The majority of player components will not be text blocks.
|
805 |
-
Text areas will need to turn user selection back on. */
|
806 |
-
|
807 |
-
/* user-select */
|
808 |
-
-webkit-user-select: none;
|
809 |
-
-moz-user-select: none;
|
810 |
-
-ms-user-select: none;
|
811 |
-
user-select: none;
|
812 |
-
}
|
813 |
-
/* Playback technology elements expand to the width/height of the containing div
|
814 |
-
<video> or <object> */
|
815 |
-
.video-js .vjs-tech {
|
816 |
-
position: absolute;
|
817 |
-
top: 0;
|
818 |
-
left: 0;
|
819 |
width: 100%;
|
820 |
height: 100%;
|
821 |
-
}
|
822 |
-
/* Fix for Firefox 9 fullscreen (only if it is enabled). Not needed when
|
823 |
-
checking fullScreenEnabled. */
|
824 |
-
.video-js:-moz-full-screen {
|
825 |
-
position: absolute;
|
826 |
-
}
|
827 |
-
/* Fullscreen Styles */
|
828 |
-
body.vjs-full-window {
|
829 |
-
padding: 0;
|
830 |
-
margin: 0;
|
831 |
-
height: 100%;
|
832 |
-
/* Fix for IE6 full-window. http://www.cssplay.co.uk/layouts/fixed.html */
|
833 |
-
overflow-y: auto;
|
834 |
-
}
|
835 |
-
.video-js.vjs-fullscreen {
|
836 |
-
position: fixed;
|
837 |
-
overflow: hidden;
|
838 |
-
z-index: 1000;
|
839 |
-
left: 0;
|
840 |
-
top: 0;
|
841 |
-
bottom: 0;
|
842 |
-
right: 0;
|
843 |
-
width: 100% !important;
|
844 |
-
height: 100% !important;
|
845 |
-
/* IE6 full-window (underscore hack) */
|
846 |
-
_position: absolute;
|
847 |
-
}
|
848 |
-
.video-js:-webkit-full-screen {
|
849 |
-
width: 100% !important;
|
850 |
-
height: 100% !important;
|
851 |
-
}
|
852 |
-
.video-js.vjs-fullscreen.vjs-user-inactive {
|
853 |
-
cursor: none;
|
854 |
-
}
|
855 |
-
/* Poster Styles */
|
856 |
-
.vjs-poster {
|
857 |
-
background-repeat: no-repeat;
|
858 |
-
background-position: 50% 50%;
|
859 |
-
background-size: contain;
|
860 |
-
background-color: #000000;
|
861 |
-
cursor: pointer;
|
862 |
-
margin: 0;
|
863 |
-
padding: 0;
|
864 |
-
position: absolute;
|
865 |
-
top: 0;
|
866 |
-
right: 0;
|
867 |
-
bottom: 0;
|
868 |
-
left: 0;
|
869 |
-
}
|
870 |
-
.vjs-poster img {
|
871 |
-
display: block;
|
872 |
-
margin: 0 auto;
|
873 |
-
max-height: 100%;
|
874 |
-
padding: 0;
|
875 |
-
width: 100%;
|
876 |
-
}
|
877 |
-
/* Hide the poster after the video has started playing */
|
878 |
-
.video-js.vjs-has-started .vjs-poster {
|
879 |
-
display: none;
|
880 |
-
}
|
881 |
-
/* Don't hide the poster if we're playing audio */
|
882 |
-
.video-js.vjs-audio.vjs-has-started .vjs-poster {
|
883 |
-
display: block;
|
884 |
-
}
|
885 |
-
/* Hide the poster when controls are disabled because it's clickable
|
886 |
-
and the native poster can take over */
|
887 |
-
.video-js.vjs-controls-disabled .vjs-poster {
|
888 |
-
display: none;
|
889 |
-
}
|
890 |
-
/* Hide the poster when native controls are used otherwise it covers them */
|
891 |
-
.video-js.vjs-using-native-controls .vjs-poster {
|
892 |
-
display: none;
|
893 |
-
}
|
894 |
-
/* Text Track Styles */
|
895 |
-
/* Overall track holder for both captions and subtitles */
|
896 |
-
.video-js .vjs-text-track-display {
|
897 |
-
position: absolute;
|
898 |
-
top: 0;
|
899 |
-
left: 0;
|
900 |
-
bottom: 3em;
|
901 |
-
right: 0;
|
902 |
-
pointer-events: none;
|
903 |
-
}
|
904 |
-
/* Captions Settings Dialog */
|
905 |
-
.vjs-caption-settings {
|
906 |
-
position: relative;
|
907 |
-
top: 1em;
|
908 |
-
background-color: #000;
|
909 |
-
opacity: 0.75;
|
910 |
-
color: #FFF;
|
911 |
-
margin: 0 auto;
|
912 |
-
padding: 0.5em;
|
913 |
-
height: 15em;
|
914 |
-
font-family: Arial, Helvetica, sans-serif;
|
915 |
-
font-size: 12px;
|
916 |
-
width: 40em;
|
917 |
-
}
|
918 |
-
.vjs-caption-settings .vjs-tracksettings {
|
919 |
-
top: 0;
|
920 |
-
bottom: 2em;
|
921 |
-
left: 0;
|
922 |
-
right: 0;
|
923 |
-
position: absolute;
|
924 |
-
overflow: auto;
|
925 |
-
}
|
926 |
-
.vjs-caption-settings .vjs-tracksettings-colors,
|
927 |
-
.vjs-caption-settings .vjs-tracksettings-font {
|
928 |
-
float: left;
|
929 |
-
}
|
930 |
-
.vjs-caption-settings .vjs-tracksettings-colors:after,
|
931 |
-
.vjs-caption-settings .vjs-tracksettings-font:after,
|
932 |
-
.vjs-caption-settings .vjs-tracksettings-controls:after {
|
933 |
-
clear: both;
|
934 |
-
}
|
935 |
-
.vjs-caption-settings .vjs-tracksettings-controls {
|
936 |
position: absolute;
|
937 |
-
|
938 |
-
right: 1em;
|
939 |
}
|
940 |
-
.vjs-caption-settings .vjs-tracksetting {
|
941 |
-
margin: 5px;
|
942 |
-
padding: 3px;
|
943 |
-
min-height: 40px;
|
944 |
-
}
|
945 |
-
.vjs-caption-settings .vjs-tracksetting label {
|
946 |
-
display: block;
|
947 |
-
width: 100px;
|
948 |
-
margin-bottom: 5px;
|
949 |
-
}
|
950 |
-
.vjs-caption-settings .vjs-tracksetting span {
|
951 |
-
display: inline;
|
952 |
-
margin-left: 5px;
|
953 |
-
}
|
954 |
-
.vjs-caption-settings .vjs-tracksetting > div {
|
955 |
-
margin-bottom: 5px;
|
956 |
-
min-height: 20px;
|
957 |
-
}
|
958 |
-
.vjs-caption-settings .vjs-tracksetting > div:last-child {
|
959 |
-
margin-bottom: 0;
|
960 |
-
padding-bottom: 0;
|
961 |
-
min-height: 0;
|
962 |
-
}
|
963 |
-
.vjs-caption-settings label > input {
|
964 |
-
margin-right: 10px;
|
965 |
-
}
|
966 |
-
.vjs-caption-settings input[type="button"] {
|
967 |
-
width: 40px;
|
968 |
-
height: 40px;
|
969 |
-
}
|
970 |
-
/* Hide disabled or unsupported controls */
|
971 |
-
.vjs-hidden {
|
972 |
-
display: none !important;
|
973 |
-
}
|
974 |
-
.vjs-lock-showing {
|
975 |
-
display: block !important;
|
976 |
-
opacity: 1;
|
977 |
-
visibility: visible;
|
978 |
-
}
|
979 |
-
/* In IE8 w/ no JavaScript (no HTML5 shim), the video tag doesn't register.
|
980 |
-
The .video-js classname on the video tag also isn't considered.
|
981 |
-
This optional paragraph inside the video tag can provide a message to users
|
982 |
-
about what's required to play video. */
|
983 |
-
.vjs-no-js {
|
984 |
-
padding: 2em;
|
985 |
-
color: #ccc;
|
986 |
-
background-color: #333;
|
987 |
-
font-size: 1.8em;
|
988 |
-
font-family: Arial, sans-serif;
|
989 |
-
text-align: center;
|
990 |
-
width: 30em;
|
991 |
-
height: 15em;
|
992 |
-
margin: 0 auto;
|
993 |
-
}
|
994 |
-
.vjs-no-js a,
|
995 |
-
.vjs-no-js a:visited {
|
996 |
-
color: #F4A460;
|
997 |
-
}
|
998 |
-
|
999 |
-
|
1000 |
-
|
1001 |
-
/* Resolutions
|
1002 |
-
-------------------------------------------------------------------------------- */
|
1003 |
-
|
1004 |
-
@font-face{
|
1005 |
-
font-family: 'VideoJS-Resolutions';
|
1006 |
-
src: url('resolutions/Font/fonts/VideoJS-Resolutions.eot');
|
1007 |
-
src: url('resolutions/Font/fonts/VideoJS-Resolutions.eot?#iefix') format('embedded-opentype'),
|
1008 |
-
url('resolutions/Font/fonts/VideoJS-Resolutions.woff') format('woff'),
|
1009 |
-
url('resolutions/Font/fonts/VideoJS-Resolutions.ttf') format('truetype');
|
1010 |
-
font-weight: normal;
|
1011 |
-
font-style: normal;
|
1012 |
-
}
|
1013 |
-
|
1014 |
-
.kg-video-js-skin .vjs-resolutions-button {
|
1015 |
-
width: 5em;
|
1016 |
-
cursor: pointer !important;
|
1017 |
-
}
|
1018 |
-
|
1019 |
-
/* Resolutions Icon */
|
1020 |
-
|
1021 |
-
.kg-video-js-skin .vjs-resolutions-button .vjs-control-content:before {
|
1022 |
-
font-family: VideoJS-Resolutions;
|
1023 |
-
font-size: 1.5em;
|
1024 |
-
line-height: 2em;
|
1025 |
-
content: "\e000"; /* Gear icon */
|
1026 |
-
width: 17px;
|
1027 |
-
height: 17px;
|
1028 |
-
margin: 0.5em auto 0;
|
1029 |
-
}
|
1030 |
-
|
1031 |
-
.kg-video-js-skin .vjs-control-content:hover:before {
|
1032 |
-
text-shadow: 0em 0em 1em #FFF;
|
1033 |
-
}
|
1034 |
-
|
1035 |
-
|
1036 |
-
|
1037 |
-
/* -----------------------------------------------------------------------------
|
1038 |
-
The original source of this file lives at
|
1039 |
-
https://github.com/videojs/video.js/blob/master/src/css/video-js.less */
|
1 |
+
/*
|
2 |
+
Player Skin Designer for Video.js
|
3 |
+
http://videojs.com
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
5 |
+
To customize the player skin edit
|
6 |
+
the CSS below. Click "details"
|
7 |
+
below to add comments or questions.
|
8 |
+
This file uses some SCSS. Learn more
|
9 |
+
at http://sass-lang.com/guide)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
11 |
+
This designer can be linked to at:
|
12 |
+
http://codepen.io/heff/pen/EarCt/left/?editors=010
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
*/
|
14 |
+
.kg-video-js-skin {
|
15 |
+
/* The base font size controls the size of everything, not just text.
|
16 |
+
All dimensions use em-based sizes so that the scale along with the font size.
|
17 |
+
Try increasing it to 15px and see what happens. */
|
18 |
+
font-size: 10px;
|
19 |
+
/* The main font color changes the ICON COLORS as well as the text */
|
20 |
+
color: #fff;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
}
|
|
|
|
|
|
|
|
|
22 |
|
23 |
+
/* The "Big Play Button" is the play button that shows before the video plays.
|
24 |
+
To center it set the align values to center and middle. The typical location
|
25 |
+
of the button is the center, but there is trend towards moving it to a corner
|
26 |
+
where it gets out of the way of valuable content in the poster image.*/
|
27 |
+
.kg-video-js-skin .vjs-big-play-button {
|
28 |
+
/* The font size is what makes the big play button...big.
|
29 |
+
All width/height values use ems, which are a multiple of the font size.
|
30 |
+
If the .kg-video-js-skin font-size is 10px, then 3em equals 30px.*/
|
31 |
+
font-size: 3em;
|
32 |
+
/* We're using SCSS vars here because the values are used in multiple places.
|
33 |
+
Now that font size is set, the following em values will be a multiple of the
|
34 |
+
new font size. If the font-size is 3em (30px), then setting any of
|
35 |
+
the following values to 3em would equal 30px. 3 * font-size. */
|
36 |
+
/* 1.5em = 45px default */
|
37 |
+
line-height: 3em;
|
38 |
+
height: 3em;
|
39 |
+
width: 3em;
|
40 |
+
/* 0.06666em = 2px default */
|
41 |
+
border: 0.16666em solid #fff;
|
42 |
+
/* 0.3em = 9px default */
|
43 |
+
border-radius: 3em;
|
44 |
+
/* Align center */
|
45 |
+
left: 50%;
|
46 |
+
top: 50%;
|
47 |
+
margin-left: -1.5em;
|
48 |
+
margin-top: -1.5em;
|
49 |
position: absolute;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
|
51 |
+
box-sizing: border-box;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
|
54 |
+
/* The default color of control backgrounds is mostly black but with a little
|
55 |
+
bit of blue so it can still be seen on all-black video frames, which are common. */
|
56 |
+
.kg-video-js-skin .vjs-control-bar,
|
57 |
+
.kg-video-js-skin .vjs-big-play-button,
|
58 |
+
.kg-video-js-skin .vjs-menu-button .vjs-menu-content {
|
59 |
+
/* IE8 - has no alpha support */
|
60 |
+
background-color: #2B333F;
|
61 |
+
/* Opacity: 1.0 = 100%, 0.0 = 0% */
|
62 |
+
background-color: rgba(40, 40, 40, 0.75);
|
63 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
|
65 |
+
/* Slider - used for Volume bar and Progress bar */
|
66 |
+
.kg-video-js-skin .vjs-slider {
|
67 |
+
background-color: #73859f;
|
68 |
+
background-color: rgba(115, 133, 159, 0.5);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
|
71 |
+
/* The slider bar color is used for the progress bar and the volume bar
|
72 |
+
(the first two can be removed after a fix that's coming) */
|
73 |
+
.kg-video-js-skin .vjs-volume-level,
|
74 |
+
.kg-video-js-skin .vjs-play-progress,
|
75 |
+
.kg-video-js-skin .vjs-slider-bar {
|
76 |
+
background: #fff;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
|
79 |
+
/* The main progress bar also has a bar that shows how much has been loaded. */
|
80 |
+
.kg-video-js-skin .vjs-load-progress {
|
81 |
+
/* For IE8 we'll lighten the color */
|
82 |
+
background: ligthen(#73859f, 25%);
|
83 |
+
/* Otherwise we'll rely on stacked opacities */
|
84 |
+
background: rgba(115, 133, 159, 0.5);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
|
87 |
+
/* The load progress bar also has internal divs that represent
|
88 |
+
smaller disconnected loaded time ranges */
|
89 |
+
.kg-video-js-skin .vjs-load-progress div {
|
90 |
+
/* For IE8 we'll lighten the color */
|
91 |
+
background: ligthen(#73859f, 50%);
|
92 |
+
/* Otherwise we'll rely on stacked opacities */
|
93 |
+
background: rgba(115, 133, 159, 0.75);
|
94 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
|
96 |
+
.kg-video-js-skin .vjs-big-play-button::before {
|
97 |
+
content: '\f101';
|
98 |
+
font-size: 2.1em;
|
99 |
+
font-family: 'Videojs';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
text-align: center;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
width: 100%;
|
102 |
height: 100%;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
position: absolute;
|
104 |
+
line-height: 1.3em;
|
|
|
105 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
video-js/lang/ar.js
CHANGED
@@ -18,9 +18,9 @@ videojs.addLanguage("ar",{
|
|
18 |
"Captions": "التعليقات",
|
19 |
"captions off": "ايقاف التعليقات",
|
20 |
"Chapters": "فصول",
|
21 |
-
"You aborted the
|
22 |
-
"A network error caused the
|
23 |
-
"The
|
24 |
-
"The
|
25 |
-
"No compatible source was found for this
|
26 |
});
|
18 |
"Captions": "التعليقات",
|
19 |
"captions off": "ايقاف التعليقات",
|
20 |
"Chapters": "فصول",
|
21 |
+
"You aborted the media playback": "لقد ألغيت تشغيل الفيديو",
|
22 |
+
"A network error caused the media download to fail part-way.": "تسبب خطأ في الشبكة بفشل تحميل الفيديو بالكامل.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "لا يمكن تحميل الفيديو بسبب فشل في الخادم أو الشبكة ، أو فشل بسبب عدم امكانية قراءة تنسيق الفيديو.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "تم ايقاف تشغيل الفيديو بسبب مشكلة فساد أو لأن الفيديو المستخدم يستخدم ميزات غير مدعومة من متصفحك.",
|
25 |
+
"No compatible source was found for this media.": "فشل العثور على أي مصدر متوافق مع هذا الفيديو."
|
26 |
});
|
video-js/lang/ba.js
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
videojs.addLanguage("ba",{
|
2 |
+
"Play": "Pusti",
|
3 |
+
"Pause": "Pauza",
|
4 |
+
"Current Time": "Trenutno vrijeme",
|
5 |
+
"Duration Time": "Vrijeme trajanja",
|
6 |
+
"Remaining Time": "Preostalo vrijeme",
|
7 |
+
"Stream Type": "Način strimovanja",
|
8 |
+
"LIVE": "UŽIVO",
|
9 |
+
"Loaded": "Učitan",
|
10 |
+
"Progress": "Progres",
|
11 |
+
"Fullscreen": "Puni ekran",
|
12 |
+
"Non-Fullscreen": "Mali ekran",
|
13 |
+
"Mute": "Prigušen",
|
14 |
+
"Unmuted": "Ne-prigušen",
|
15 |
+
"Playback Rate": "Stopa reprodukcije",
|
16 |
+
"Subtitles": "Podnaslov",
|
17 |
+
"subtitles off": "Podnaslov deaktiviran",
|
18 |
+
"Captions": "Titlovi",
|
19 |
+
"captions off": "Titlovi deaktivirani",
|
20 |
+
"Chapters": "Poglavlja",
|
21 |
+
"You aborted the media playback": "Isključili ste reprodukciju videa.",
|
22 |
+
"A network error caused the media download to fail part-way.": "Video se prestao preuzimati zbog greške na mreži.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video se ne može reproducirati zbog servera, greške u mreži ili je format ne podržan.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Reprodukcija videa je zaustavljenja zbog greške u formatu ili zbog verzije vašeg pretraživača.",
|
25 |
+
"No compatible source was found for this media.": "Nije nađen nijedan kompatibilan izvor ovog videa."
|
26 |
+
});
|
video-js/lang/bg.js
CHANGED
@@ -18,9 +18,9 @@ videojs.addLanguage("bg",{
|
|
18 |
"Captions": "Аудио надписи",
|
19 |
"captions off": "Спряни аудио надписи",
|
20 |
"Chapters": "Глави",
|
21 |
-
"You aborted the
|
22 |
-
"A network error caused the
|
23 |
-
"The
|
24 |
-
"The
|
25 |
-
"No compatible source was found for this
|
26 |
});
|
18 |
"Captions": "Аудио надписи",
|
19 |
"captions off": "Спряни аудио надписи",
|
20 |
"Chapters": "Глави",
|
21 |
+
"You aborted the media playback": "Спряхте възпроизвеждането на видеото",
|
22 |
+
"A network error caused the media download to fail part-way.": "Грешка в мрежата провали изтеглянето на видеото.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Видеото не може да бъде заредено заради проблем със сървъра или мрежата или защото този формат не е поддържан.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Възпроизвеждането на видеото беше прекъснато заради проблем с файла или защото видеото използва опции които браузърът Ви не поддържа.",
|
25 |
+
"No compatible source was found for this media.": "Не беше намерен съвместим източник за това видео."
|
26 |
});
|
video-js/lang/ca.js
CHANGED
@@ -18,9 +18,9 @@ videojs.addLanguage("ca",{
|
|
18 |
"Captions": "Llegendes",
|
19 |
"captions off": "Llegendes desactivades",
|
20 |
"Chapters": "Capítols",
|
21 |
-
"You aborted the
|
22 |
-
"A network error caused the
|
23 |
-
"The
|
24 |
-
"The
|
25 |
-
"No compatible source was found for this
|
26 |
});
|
18 |
"Captions": "Llegendes",
|
19 |
"captions off": "Llegendes desactivades",
|
20 |
"Chapters": "Capítols",
|
21 |
+
"You aborted the media playback": "Heu interromput la reproducció del vídeo.",
|
22 |
+
"A network error caused the media download to fail part-way.": "Un error de la xarxa ha interromput la baixada del vídeo.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "No s'ha pogut carregar el vídeo perquè el servidor o la xarxa han fallat, o bé perquè el seu format no és compatible.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La reproducció de vídeo s'ha interrumput per un problema de corrupció de dades o bé perquè el vídeo demanava funcions que el vostre navegador no ofereix.",
|
25 |
+
"No compatible source was found for this media.": "No s'ha trobat cap font compatible amb el vídeo."
|
26 |
});
|
video-js/lang/cs.js
CHANGED
@@ -18,9 +18,9 @@ videojs.addLanguage("cs",{
|
|
18 |
"Captions": "Popisky",
|
19 |
"captions off": "Popisky vypnuty",
|
20 |
"Chapters": "Kapitoly",
|
21 |
-
"You aborted the
|
22 |
-
"A network error caused the
|
23 |
-
"The
|
24 |
-
"The
|
25 |
-
"No compatible source was found for this
|
26 |
});
|
18 |
"Captions": "Popisky",
|
19 |
"captions off": "Popisky vypnuty",
|
20 |
"Chapters": "Kapitoly",
|
21 |
+
"You aborted the media playback": "Přehrávání videa je přerušeno.",
|
22 |
+
"A network error caused the media download to fail part-way.": "Video nemohlo být načteno, kvůli chybě v síti.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video nemohlo být načteno, buď kvůli chybě serveru nebo sítě nebo proto, že daný formát není podporován.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Váš prohlížeč nepodporuje formát videa.",
|
25 |
+
"No compatible source was found for this media.": "Špatně zadaný zdroj videa."
|
26 |
});
|
video-js/lang/da.js
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
videojs.addLanguage("da",{
|
2 |
+
"Play": "Afspil",
|
3 |
+
"Pause": "Pause",
|
4 |
+
"Current Time": "Aktuel tid",
|
5 |
+
"Duration Time": "Varighed",
|
6 |
+
"Remaining Time": "Resterende tid",
|
7 |
+
"Stream Type": "Stream-type",
|
8 |
+
"LIVE": "LIVE",
|
9 |
+
"Loaded": "Indlæst",
|
10 |
+
"Progress": "Status",
|
11 |
+
"Fullscreen": "Fuldskærm",
|
12 |
+
"Non-Fullscreen": "Luk fuldskærm",
|
13 |
+
"Mute": "Uden lyd",
|
14 |
+
"Unmuted": "Med lyd",
|
15 |
+
"Playback Rate": "Afspilningsrate",
|
16 |
+
"Subtitles": "Undertekster",
|
17 |
+
"subtitles off": "Uden undertekster",
|
18 |
+
"Captions": "Undertekster for hørehæmmede",
|
19 |
+
"captions off": "Uden undertekster for hørehæmmede",
|
20 |
+
"Chapters": "Kapitler",
|
21 |
+
"You aborted the media playback": "Du afbrød videoafspilningen.",
|
22 |
+
"A network error caused the media download to fail part-way.": "En netværksfejl fik download af videoen til at fejle.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikke indlæses, enten fordi serveren eller netværket fejlede, eller fordi formatet ikke er understøttet.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoafspilningen blev afbrudt på grund af ødelagte data eller fordi videoen benyttede faciliteter som din browser ikke understøtter.",
|
25 |
+
"No compatible source was found for this media.": "Fandt ikke en kompatibel kilde for denne media."
|
26 |
+
});
|
video-js/lang/de.js
CHANGED
@@ -18,9 +18,9 @@ videojs.addLanguage("de",{
|
|
18 |
"Captions": "Untertitel",
|
19 |
"captions off": "Untertitel aus",
|
20 |
"Chapters": "Kapitel",
|
21 |
-
"You aborted the
|
22 |
-
"A network error caused the
|
23 |
-
"The
|
24 |
-
"The
|
25 |
-
"No compatible source was found for this
|
26 |
});
|
18 |
"Captions": "Untertitel",
|
19 |
"captions off": "Untertitel aus",
|
20 |
"Chapters": "Kapitel",
|
21 |
+
"You aborted the media playback": "Sie haben die Videowiedergabe abgebrochen.",
|
22 |
+
"A network error caused the media download to fail part-way.": "Der Videodownload ist aufgrund eines Netzwerkfehlers fehlgeschlagen.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Die Videowiedergabe wurde entweder wegen eines Problems mit einem beschädigten Video oder wegen verwendeten Funktionen, die vom Browser nicht unterstützt werden, abgebrochen.",
|
25 |
+
"No compatible source was found for this media.": "Für dieses Video wurde keine kompatible Quelle gefunden."
|
26 |
});
|
video-js/lang/es.js
CHANGED
@@ -18,9 +18,9 @@ videojs.addLanguage("es",{
|
|
18 |
"Captions": "Subtítulos especiales",
|
19 |
"captions off": "Subtítulos especiales desactivados",
|
20 |
"Chapters": "Capítulos",
|
21 |
-
"You aborted the
|
22 |
-
"A network error caused the
|
23 |
-
"The
|
24 |
-
"The
|
25 |
-
"No compatible source was found for this
|
26 |
});
|
18 |
"Captions": "Subtítulos especiales",
|
19 |
"captions off": "Subtítulos especiales desactivados",
|
20 |
"Chapters": "Capítulos",
|
21 |
+
"You aborted the media playback": "Ha interrumpido la reproducción del vídeo.",
|
22 |
+
"A network error caused the media download to fail part-way.": "Un error de red ha interrumpido la descarga del vídeo.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "No se ha podido cargar el vídeo debido a un fallo de red o del servidor o porque el formato es incompatible.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La reproducción de vídeo se ha interrumpido por un problema de corrupción de datos o porque el vídeo precisa funciones que su navegador no ofrece.",
|
25 |
+
"No compatible source was found for this media.": "No se ha encontrado ninguna fuente compatible con este vídeo."
|
26 |
});
|
video-js/lang/fi.js
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
videojs.addLanguage("fi",{
|
2 |
+
"Play": "Toisto",
|
3 |
+
"Pause": "Tauko",
|
4 |
+
"Current Time": "Tämänhetkinen aika",
|
5 |
+
"Duration Time": "Kokonaisaika",
|
6 |
+
"Remaining Time": "Jäljellä oleva aika",
|
7 |
+
"Stream Type": "Lähetystyyppi",
|
8 |
+
"LIVE": "LIVE",
|
9 |
+
"Loaded": "Ladattu",
|
10 |
+
"Progress": "Edistyminen",
|
11 |
+
"Fullscreen": "Koko näyttö",
|
12 |
+
"Non-Fullscreen": "Koko näyttö pois",
|
13 |
+
"Mute": "Ääni pois",
|
14 |
+
"Unmuted": "Ääni päällä",
|
15 |
+
"Playback Rate": "Toistonopeus",
|
16 |
+
"Subtitles": "Tekstitys",
|
17 |
+
"subtitles off": "Tekstitys pois",
|
18 |
+
"Captions": "Tekstitys",
|
19 |
+
"captions off": "Tekstitys pois",
|
20 |
+
"Chapters": "Kappaleet",
|
21 |
+
"You aborted the media playback": "Olet keskeyttänyt videotoiston.",
|
22 |
+
"A network error caused the media download to fail part-way.": "Verkkovirhe keskeytti videon latauksen.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videon lataus ei onnistunut joko palvelin- tai verkkovirheestä tai väärästä formaatista johtuen.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videon toisto keskeytyi, koska media on vaurioitunut tai käyttää käyttää toimintoja, joita selaimesi ei tue.",
|
25 |
+
"No compatible source was found for this media.": "Tälle videolle ei löytynyt yhteensopivaa lähdettä."
|
26 |
+
});
|
video-js/lang/fr.js
CHANGED
@@ -18,9 +18,9 @@ videojs.addLanguage("fr",{
|
|
18 |
"Captions": "Sous-titres",
|
19 |
"captions off": "Sous-titres désactivés",
|
20 |
"Chapters": "Chapitres",
|
21 |
-
"You aborted the
|
22 |
-
"A network error caused the
|
23 |
-
"The
|
24 |
-
"The
|
25 |
-
"No compatible source was found for this
|
26 |
});
|
18 |
"Captions": "Sous-titres",
|
19 |
"captions off": "Sous-titres désactivés",
|
20 |
"Chapters": "Chapitres",
|
21 |
+
"You aborted the media playback": "Vous avez interrompu la lecture de la vidéo.",
|
22 |
+
"A network error caused the media download to fail part-way.": "Une erreur de réseau a interrompu le téléchargement de la vidéo.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Cette vidéo n'a pas pu être chargée, soit parce que le serveur ou le réseau a échoué ou parce que le format n'est pas reconnu.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La lecture de la vidéo a été interrompue à cause d'un problème de corruption ou parce que la vidéo utilise des fonctionnalités non prises en charge par votre navigateur.",
|
25 |
+
"No compatible source was found for this media.": "Aucune source compatible n'a été trouvée pour cette vidéo."
|
26 |
});
|
video-js/lang/hr.js
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
videojs.addLanguage("hr",{
|
2 |
+
"Play": "Pusti",
|
3 |
+
"Pause": "Pauza",
|
4 |
+
"Current Time": "Trenutno vrijeme",
|
5 |
+
"Duration Time": "Vrijeme trajanja",
|
6 |
+
"Remaining Time": "Preostalo vrijeme",
|
7 |
+
"Stream Type": "Način strimovanja",
|
8 |
+
"LIVE": "UŽIVO",
|
9 |
+
"Loaded": "Učitan",
|
10 |
+
"Progress": "Progres",
|
11 |
+
"Fullscreen": "Puni ekran",
|
12 |
+
"Non-Fullscreen": "Mali ekran",
|
13 |
+
"Mute": "Prigušen",
|
14 |
+
"Unmuted": "Ne-prigušen",
|
15 |
+
"Playback Rate": "Stopa reprodukcije",
|
16 |
+
"Subtitles": "Podnaslov",
|
17 |
+
"subtitles off": "Podnaslov deaktiviran",
|
18 |
+
"Captions": "Titlovi",
|
19 |
+
"captions off": "Titlovi deaktivirani",
|
20 |
+
"Chapters": "Poglavlja",
|
21 |
+
"You aborted the media playback": "Isključili ste reprodukciju videa.",
|
22 |
+
"A network error caused the media download to fail part-way.": "Video se prestao preuzimati zbog greške na mreži.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video se ne može reproducirati zbog servera, greške u mreži ili je format ne podržan.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Reprodukcija videa je zaustavljenja zbog greške u formatu ili zbog verzije vašeg pretraživača.",
|
25 |
+
"No compatible source was found for this media.": "Nije nađen nijedan kompatibilan izvor ovog videa."
|
26 |
+
});
|
video-js/lang/hu.js
CHANGED
@@ -18,9 +18,9 @@ videojs.addLanguage("hu",{
|
|
18 |
"Captions": "Magyarázó szöveg",
|
19 |
"captions off": "Magyarázó szöveg kikapcsolva",
|
20 |
"Chapters": "Fejezetek",
|
21 |
-
"You aborted the
|
22 |
-
"A network error caused the
|
23 |
-
"The
|
24 |
-
"The
|
25 |
-
"No compatible source was found for this
|
26 |
});
|
18 |
"Captions": "Magyarázó szöveg",
|
19 |
"captions off": "Magyarázó szöveg kikapcsolva",
|
20 |
"Chapters": "Fejezetek",
|
21 |
+
"You aborted the media playback": "Leállította a lejátszást",
|
22 |
+
"A network error caused the media download to fail part-way.": "Hálózati hiba miatt a videó részlegesen töltődött le.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "A videó nem tölthető be hálózati vagy kiszolgálói hiba miatt, vagy a formátuma nem támogatott.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "A lejátszás adatsérülés miatt leállt, vagy a videó egyes tulajdonságait a böngészője nem támogatja.",
|
25 |
+
"No compatible source was found for this media.": "Nincs kompatibilis forrás ehhez a videóhoz."
|
26 |
});
|
video-js/lang/it.js
CHANGED
@@ -18,9 +18,9 @@ videojs.addLanguage("it",{
|
|
18 |
"Captions": "Sottotitoli non udenti",
|
19 |
"captions off": "Senza sottotitoli non udenti",
|
20 |
"Chapters": "Capitolo",
|
21 |
-
"You aborted the
|
22 |
-
"A network error caused the
|
23 |
-
"The
|
24 |
-
"The
|
25 |
-
"No compatible source was found for this
|
26 |
});
|
18 |
"Captions": "Sottotitoli non udenti",
|
19 |
"captions off": "Senza sottotitoli non udenti",
|
20 |
"Chapters": "Capitolo",
|
21 |
+
"You aborted the media playback": "La riproduzione del filmato è stata interrotta.",
|
22 |
+
"A network error caused the media download to fail part-way.": "Il download del filmato è stato interrotto a causa di un problema rete.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Il filmato non può essere caricato a causa di un errore nel server o nella rete o perché il formato non viene supportato.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "La riproduzione del filmato è stata interrotta a causa di un file danneggiato o per l’utilizzo di impostazioni non supportate dal browser.",
|
25 |
+
"No compatible source was found for this media.": "Non ci sono fonti compatibili per questo filmato."
|
26 |
});
|
video-js/lang/ja.js
CHANGED
@@ -18,9 +18,9 @@ videojs.addLanguage("ja",{
|
|
18 |
"Captions": "キャプション",
|
19 |
"captions off": "キャプション オフ",
|
20 |
"Chapters": "チャプター",
|
21 |
-
"You aborted the
|
22 |
-
"A network error caused the
|
23 |
-
"The
|
24 |
-
"The
|
25 |
-
"No compatible source was found for this
|
26 |
});
|
18 |
"Captions": "キャプション",
|
19 |
"captions off": "キャプション オフ",
|
20 |
"Chapters": "チャプター",
|
21 |
+
"You aborted the media playback": "動画再生を中止しました",
|
22 |
+
"A network error caused the media download to fail part-way.": "ネットワーク エラーにより動画のダウンロードが途中で失敗しました",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "サーバーまたはネットワークのエラー、またはフォーマットがサポートされていないため、動画をロードできませんでした",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "破損の問題、またはお使いのブラウザがサポートしていない機能が動画に使用されていたため、動画の再生が中止されました",
|
25 |
+
"No compatible source was found for this media.": "この動画に対して互換性のあるソースが見つかりませんでした"
|
26 |
});
|
video-js/lang/ko.js
CHANGED
@@ -18,9 +18,9 @@ videojs.addLanguage("ko",{
|
|
18 |
"Captions": "자막",
|
19 |
"captions off": "자막 끄기",
|
20 |
"Chapters": "챕터",
|
21 |
-
"You aborted the
|
22 |
-
"A network error caused the
|
23 |
-
"The
|
24 |
-
"The
|
25 |
-
"No compatible source was found for this
|
26 |
});
|
18 |
"Captions": "자막",
|
19 |
"captions off": "자막 끄기",
|
20 |
"Chapters": "챕터",
|
21 |
+
"You aborted the media playback": "비디오 재생을 취소했습니다.",
|
22 |
+
"A network error caused the media download to fail part-way.": "네트워크 오류로 인하여 비디오 일부를 다운로드하지 못 했습니다.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "비디오를 로드할 수 없습니다. 서버 혹은 네트워크 오류 때문이거나 지원되지 않는 형식 때문일 수 있습니다.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "비디오 재생이 취소됐습니다. 비디오가 손상되었거나 비디오가 사용하는 기능을 브라우저에서 지원하지 않는 것 같습니다.",
|
25 |
+
"No compatible source was found for this media.": "비디오에 호환되지 않는 소스가 있습니다."
|
26 |
});
|
video-js/lang/nb.js
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
videojs.addLanguage("nb",{
|
2 |
+
"Play": "Spill",
|
3 |
+
"Pause": "Pause",
|
4 |
+
"Current Time": "Aktuell tid",
|
5 |
+
"Duration Time": "Varighet",
|
6 |
+
"Remaining Time": "Gjenstående tid",
|
7 |
+
"Stream Type": "Type strøm",
|
8 |
+
"LIVE": "DIREKTE",
|
9 |
+
"Loaded": "Lastet inn",
|
10 |
+
"Progress": "Status",
|
11 |
+
"Fullscreen": "Fullskjerm",
|
12 |
+
"Non-Fullscreen": "Lukk fullskjerm",
|
13 |
+
"Mute": "Lyd av",
|
14 |
+
"Unmute": "Lyd på",
|
15 |
+
"Playback Rate": "Avspillingsrate",
|
16 |
+
"Subtitles": "Undertekst på",
|
17 |
+
"subtitles off": "Undertekst av",
|
18 |
+
"Captions": "Undertekst for hørselshemmede på",
|
19 |
+
"captions off": "Undertekst for hørselshemmede av",
|
20 |
+
"Chapters": "Kapitler",
|
21 |
+
"You aborted the media playback": "Du avbrøt avspillingen.",
|
22 |
+
"A network error caused the media download to fail part-way.": "En nettverksfeil avbrøt nedlasting av videoen.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikke lastes ned, på grunn av nettverksfeil eller serverfeil, eller fordi formatet ikke er støttet.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoavspillingen ble avbrudt på grunn av ødelagte data eller fordi videoen ville gjøre noe som nettleseren din ikke har støtte for.",
|
25 |
+
"No compatible source was found for this media.": "Fant ikke en kompatibel kilde for dette mediainnholdet."
|
26 |
+
});
|
video-js/lang/nl.js
CHANGED
@@ -1,26 +1,26 @@
|
|
1 |
videojs.addLanguage("nl",{
|
2 |
"Play": "Afspelen",
|
3 |
"Pause": "Pauze",
|
4 |
-
"Current Time": "Huidige
|
5 |
"Duration Time": "Looptijd",
|
6 |
-
"Remaining Time": "Resterende
|
7 |
-
"Stream Type": "
|
8 |
"LIVE": "LIVE",
|
9 |
"Loaded": "Geladen",
|
10 |
"Progress": "Status",
|
11 |
"Fullscreen": "Volledig scherm",
|
12 |
"Non-Fullscreen": "Geen volledig scherm",
|
13 |
-
"Mute": "Geluid
|
14 |
-
"Unmuted": "Geluid
|
15 |
-
"Playback Rate": "
|
16 |
"Subtitles": "Ondertiteling",
|
17 |
"subtitles off": "Ondertiteling uit",
|
18 |
-
"Captions": "
|
19 |
-
"captions off": "
|
20 |
"Chapters": "Hoofdstukken",
|
21 |
-
"You aborted the
|
22 |
-
"A network error caused the
|
23 |
-
"The
|
24 |
-
"The
|
25 |
-
"No compatible source was found for this
|
26 |
});
|
1 |
videojs.addLanguage("nl",{
|
2 |
"Play": "Afspelen",
|
3 |
"Pause": "Pauze",
|
4 |
+
"Current Time": "Huidige tijd",
|
5 |
"Duration Time": "Looptijd",
|
6 |
+
"Remaining Time": "Resterende tijd",
|
7 |
+
"Stream Type": "Streamtype",
|
8 |
"LIVE": "LIVE",
|
9 |
"Loaded": "Geladen",
|
10 |
"Progress": "Status",
|
11 |
"Fullscreen": "Volledig scherm",
|
12 |
"Non-Fullscreen": "Geen volledig scherm",
|
13 |
+
"Mute": "Geluid uit",
|
14 |
+
"Unmuted": "Geluid aan",
|
15 |
+
"Playback Rate": "Weergavesnelheid",
|
16 |
"Subtitles": "Ondertiteling",
|
17 |
"subtitles off": "Ondertiteling uit",
|
18 |
+
"Captions": "Ondertiteling",
|
19 |
+
"captions off": "Ondertiteling uit",
|
20 |
"Chapters": "Hoofdstukken",
|
21 |
+
"You aborted the media playback": "U hebt de mediaweergave afgebroken.",
|
22 |
+
"A network error caused the media download to fail part-way.": "De mediadownload is mislukt door een netwerkfout.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "De media kon niet worden geladen, vanwege een server- of netwerkfout of doordat het formaat niet wordt ondersteund.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "De mediaweergave is afgebroken vanwege beschadigde data of het mediabestand gebruikt functies die niet door uw browser worden ondersteund.",
|
25 |
+
"No compatible source was found for this media.": "Voor deze media is geen ondersteunde bron gevonden."
|
26 |
});
|
video-js/lang/nn.js
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
videojs.addLanguage("nn",{
|
2 |
+
"Play": "Spel",
|
3 |
+
"Pause": "Pause",
|
4 |
+
"Current Time": "Aktuell tid",
|
5 |
+
"Duration Time": "Varigheit",
|
6 |
+
"Remaining Time": "Tid attende",
|
7 |
+
"Stream Type": "Type straum",
|
8 |
+
"LIVE": "DIREKTE",
|
9 |
+
"Loaded": "Lasta inn",
|
10 |
+
"Progress": "Status",
|
11 |
+
"Fullscreen": "Fullskjerm",
|
12 |
+
"Non-Fullscreen": "Stenga fullskjerm",
|
13 |
+
"Mute": "Ljod av",
|
14 |
+
"Unmute": "Ljod på",
|
15 |
+
"Playback Rate": "Avspelingsrate",
|
16 |
+
"Subtitles": "Teksting på",
|
17 |
+
"subtitles off": "Teksting av",
|
18 |
+
"Captions": "Teksting for høyrselshemma på",
|
19 |
+
"captions off": "Teksting for høyrselshemma av",
|
20 |
+
"Chapters": "Kapitel",
|
21 |
+
"You aborted the media playback": "Du avbraut avspelinga.",
|
22 |
+
"A network error caused the media download to fail part-way.": "Ein nettverksfeil avbraut nedlasting av videoen.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Videoen kunne ikkje lastas ned, på grunn av ein nettverksfeil eller serverfeil, eller av di formatet ikkje er stoda.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Videoavspelinga blei broten på grunn av øydelagde data eller av di videoen ville gjera noe som nettlesaren din ikkje stodar.",
|
25 |
+
"No compatible source was found for this media.": "Fant ikke en kompatibel kilde for dette mediainnholdet."
|
26 |
+
});
|
video-js/lang/pt-BR.js
CHANGED
@@ -7,7 +7,7 @@ videojs.addLanguage("pt-BR",{
|
|
7 |
"Stream Type": "Tipo de Stream",
|
8 |
"LIVE": "AO VIVO",
|
9 |
"Loaded": "Carregado",
|
10 |
-
"Progress": "
|
11 |
"Fullscreen": "Tela Cheia",
|
12 |
"Non-Fullscreen": "Tela Normal",
|
13 |
"Mute": "Mudo",
|
@@ -18,9 +18,9 @@ videojs.addLanguage("pt-BR",{
|
|
18 |
"Captions": "Anotações",
|
19 |
"captions off": "Sem Anotações",
|
20 |
"Chapters": "Capítulos",
|
21 |
-
"You aborted the
|
22 |
-
"A network error caused the
|
23 |
-
"The
|
24 |
-
"The
|
25 |
-
"No compatible source was found for this
|
26 |
});
|
7 |
"Stream Type": "Tipo de Stream",
|
8 |
"LIVE": "AO VIVO",
|
9 |
"Loaded": "Carregado",
|
10 |
+
"Progress": "Progresso",
|
11 |
"Fullscreen": "Tela Cheia",
|
12 |
"Non-Fullscreen": "Tela Normal",
|
13 |
"Mute": "Mudo",
|
18 |
"Captions": "Anotações",
|
19 |
"captions off": "Sem Anotações",
|
20 |
"Chapters": "Capítulos",
|
21 |
+
"You aborted the media playback": "Você parou a execução de vídeo.",
|
22 |
+
"A network error caused the media download to fail part-way.": "Um erro na rede fez o vídeo parar parcialmente.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "O vídeo não pode ser carregado, ou porque houve um problema com sua rede ou pelo formato do vídeo não ser suportado.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "A Execução foi interrompida por um problema com o vídeo ou por seu navegador não dar suporte ao seu formato.",
|
25 |
+
"No compatible source was found for this media.": "Não foi encontrada fonte de vídeo compatível."
|
26 |
});
|
video-js/lang/ru.js
CHANGED
@@ -18,9 +18,9 @@ videojs.addLanguage("ru",{
|
|
18 |
"Captions": "Подписи",
|
19 |
"captions off": "Подписи выкл.",
|
20 |
"Chapters": "Главы",
|
21 |
-
"You aborted the
|
22 |
-
"A network error caused the
|
23 |
-
"The
|
24 |
-
"The
|
25 |
-
"No compatible source was found for this
|
26 |
});
|
18 |
"Captions": "Подписи",
|
19 |
"captions off": "Подписи выкл.",
|
20 |
"Chapters": "Главы",
|
21 |
+
"You aborted the media playback": "Вы прервали воспроизведение видео",
|
22 |
+
"A network error caused the media download to fail part-way.": "Ошибка сети вызвала сбой во время загрузки видео.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Невозможно загрузить видео из-за сетевого или серверного сбоя либо формат не поддерживается.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Воспроизведение видео было приостановлено из-за повреждения либо в связи с тем, что видео использует функции, неподдерживаемые вашим браузером.",
|
25 |
+
"No compatible source was found for this media.": "Совместимые источники для этого видео отсутствуют."
|
26 |
});
|
video-js/lang/sr.js
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
videojs.addLanguage("sr",{
|
2 |
+
"Play": "Pusti",
|
3 |
+
"Pause": "Pauza",
|
4 |
+
"Current Time": "Trenutno vrijeme",
|
5 |
+
"Duration Time": "Vrijeme trajanja",
|
6 |
+
"Remaining Time": "Preostalo vrijeme",
|
7 |
+
"Stream Type": "Način strimovanja",
|
8 |
+
"LIVE": "UŽIVO",
|
9 |
+
"Loaded": "Učitan",
|
10 |
+
"Progress": "Progres",
|
11 |
+
"Fullscreen": "Puni ekran",
|
12 |
+
"Non-Fullscreen": "Mali ekran",
|
13 |
+
"Mute": "Prigušen",
|
14 |
+
"Unmuted": "Ne-prigušen",
|
15 |
+
"Playback Rate": "Stopa reprodukcije",
|
16 |
+
"Subtitles": "Podnaslov",
|
17 |
+
"subtitles off": "Podnaslov deaktiviran",
|
18 |
+
"Captions": "Titlovi",
|
19 |
+
"captions off": "Titlovi deaktivirani",
|
20 |
+
"Chapters": "Poglavlja",
|
21 |
+
"You aborted the media playback": "Isključili ste reprodukciju videa.",
|
22 |
+
"A network error caused the media download to fail part-way.": "Video se prestao preuzimati zbog greške na mreži.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video se ne može reproducirati zbog servera, greške u mreži ili je format ne podržan.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Reprodukcija videa je zaustavljenja zbog greške u formatu ili zbog verzije vašeg pretraživača.",
|
25 |
+
"No compatible source was found for this media.": "Nije nađen nijedan kompatibilan izvor ovog videa."
|
26 |
+
});
|
video-js/lang/sv.js
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
videojs.addLanguage("sv",{
|
2 |
+
"Play": "Spela",
|
3 |
+
"Pause": "Pausa",
|
4 |
+
"Current Time": "Aktuell tid",
|
5 |
+
"Duration Time": "Total tid",
|
6 |
+
"Remaining Time": "Återstående tid",
|
7 |
+
"Stream Type": "Strömningstyp",
|
8 |
+
"LIVE": "LIVE",
|
9 |
+
"Loaded": "Laddad",
|
10 |
+
"Progress": "Förlopp",
|
11 |
+
"Fullscreen": "Fullskärm",
|
12 |
+
"Non-Fullscreen": "Ej fullskärm",
|
13 |
+
"Mute": "Ljud av",
|
14 |
+
"Unmuted": "Ljud på",
|
15 |
+
"Playback Rate": "Uppspelningshastighet",
|
16 |
+
"Subtitles": "Text på",
|
17 |
+
"subtitles off": "Text av",
|
18 |
+
"Captions": "Text på",
|
19 |
+
"captions off": "Text av",
|
20 |
+
"Chapters": "Kapitel",
|
21 |
+
"You aborted the media playback": "Du har avbrutit videouppspelningen.",
|
22 |
+
"A network error caused the media download to fail part-way.": "Ett nätverksfel gjorde att nedladdningen av videon avbröts.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Det gick inte att ladda videon, antingen på grund av ett server- eller nätverksfel, eller för att formatet inte stöds.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Uppspelningen avbröts på grund av att videon är skadad, eller också för att videon använder funktioner som din webbläsare inte stöder.",
|
25 |
+
"No compatible source was found for this media.": "Det gick inte att hitta någon kompatibel källa för den här videon."
|
26 |
+
});
|
video-js/lang/tr.js
CHANGED
@@ -18,9 +18,9 @@ videojs.addLanguage("tr",{
|
|
18 |
"Captions": "Ek Açıklamalar",
|
19 |
"captions off": "Ek Açıklamalar Kapalı",
|
20 |
"Chapters": "Bölümler",
|
21 |
-
"You aborted the
|
22 |
-
"A network error caused the
|
23 |
-
"The
|
24 |
-
"The
|
25 |
-
"No compatible source was found for this
|
26 |
});
|
18 |
"Captions": "Ek Açıklamalar",
|
19 |
"captions off": "Ek Açıklamalar Kapalı",
|
20 |
"Chapters": "Bölümler",
|
21 |
+
"You aborted the media playback": "Video oynatmayı iptal ettiniz",
|
22 |
+
"A network error caused the media download to fail part-way.": "Video indirilirken bağlantı sorunu oluştu.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video oynatılamadı, ağ ya da sunucu hatası veya belirtilen format desteklenmiyor.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Tarayıcınız desteklemediği için videoda hata oluştu.",
|
25 |
+
"No compatible source was found for this media.": "Video için kaynak bulunamadı."
|
26 |
});
|
video-js/lang/uk.js
CHANGED
@@ -18,9 +18,9 @@ videojs.addLanguage("uk",{
|
|
18 |
"Captions": "Підписи",
|
19 |
"captions off": "Без підписів",
|
20 |
"Chapters": "Розділи",
|
21 |
-
"You aborted the
|
22 |
-
"A network error caused the
|
23 |
-
"The
|
24 |
-
"The
|
25 |
-
"No compatible source was found for this
|
26 |
});
|
18 |
"Captions": "Підписи",
|
19 |
"captions off": "Без підписів",
|
20 |
"Chapters": "Розділи",
|
21 |
+
"You aborted the media playback": "Ви припинили відтворення відео",
|
22 |
+
"A network error caused the media download to fail part-way.": "Помилка мережі викликала збій під час завантаження відео.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Неможливо завантажити відео через мережевий чи серверний збій або формат не підтримується.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Відтворення відео було припинено через пошкодження або у зв'язку з тим, що відео використовує функції, які не підтримуються вашим браузером.",
|
25 |
+
"No compatible source was found for this media.": "Сумісні джерела для цього відео відсутні."
|
26 |
});
|
video-js/lang/vi.js
CHANGED
@@ -18,9 +18,9 @@ videojs.addLanguage("vi",{
|
|
18 |
"Captions": "Chú thích",
|
19 |
"captions off": "Tắt chú thích",
|
20 |
"Chapters": "Chương",
|
21 |
-
"You aborted the
|
22 |
-
"A network error caused the
|
23 |
-
"The
|
24 |
-
"The
|
25 |
-
"No compatible source was found for this
|
26 |
});
|
18 |
"Captions": "Chú thích",
|
19 |
"captions off": "Tắt chú thích",
|
20 |
"Chapters": "Chương",
|
21 |
+
"You aborted the media playback": "Bạn đã hủy việc phát media.",
|
22 |
+
"A network error caused the media download to fail part-way.": "Một lỗi mạng dẫn đến việc tải media bị lỗi.",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "Video không tải được, mạng hay server có lỗi hoặc định dạng không được hỗ trợ.",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "Phát media đã bị hủy do một sai lỗi hoặc media sử dụng những tính năng trình duyệt không hỗ trợ.",
|
25 |
+
"No compatible source was found for this media.": "Không có nguồn tương thích cho media này."
|
26 |
});
|
video-js/lang/zh-CN.js
CHANGED
@@ -18,10 +18,10 @@ videojs.addLanguage("zh-CN",{
|
|
18 |
"Captions": "内嵌字幕",
|
19 |
"captions off": "内嵌字幕关闭",
|
20 |
"Chapters": "节目段落",
|
21 |
-
"You aborted the
|
22 |
-
"A network error caused the
|
23 |
-
"The
|
24 |
-
"The
|
25 |
-
"No compatible source was found for this
|
26 |
-
"The
|
27 |
});
|
18 |
"Captions": "内嵌字幕",
|
19 |
"captions off": "内嵌字幕关闭",
|
20 |
"Chapters": "节目段落",
|
21 |
+
"You aborted the media playback": "视频播放被终止",
|
22 |
+
"A network error caused the media download to fail part-way.": "网络错误导致视频下载中途失败。",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "视频因格式不支持或者服务器或网络的问题无法加载。",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "由于视频文件损坏或是该视频使用了你的浏览器不支持的功能,播放终止。",
|
25 |
+
"No compatible source was found for this media.": "无法找到此视频兼容的源。",
|
26 |
+
"The media is encrypted and we do not have the keys to decrypt it.": "视频已加密,无法解密。"
|
27 |
});
|
video-js/lang/zh-TW.js
CHANGED
@@ -18,10 +18,10 @@ videojs.addLanguage("zh-TW",{
|
|
18 |
"Captions": "內嵌字幕",
|
19 |
"captions off": "關閉內嵌字幕",
|
20 |
"Chapters": "章節",
|
21 |
-
"You aborted the
|
22 |
-
"A network error caused the
|
23 |
-
"The
|
24 |
-
"The
|
25 |
-
"No compatible source was found for this
|
26 |
-
"The
|
27 |
});
|
18 |
"Captions": "內嵌字幕",
|
19 |
"captions off": "關閉內嵌字幕",
|
20 |
"Chapters": "章節",
|
21 |
+
"You aborted the media playback": "影片播放已終止",
|
22 |
+
"A network error caused the media download to fail part-way.": "網路錯誤導致影片下載失敗。",
|
23 |
+
"The media could not be loaded, either because the server or network failed or because the format is not supported.": "影片因格式不支援或者伺服器或網路的問題無法載入。",
|
24 |
+
"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "由於影片檔案損毀或是該影片使用了您的瀏覽器不支援的功能,播放終止。",
|
25 |
+
"No compatible source was found for this media.": "無法找到相容此影片的來源。",
|
26 |
+
"The media is encrypted and we do not have the keys to decrypt it.": "影片已加密,無法解密。"
|
27 |
});
|
video-js/video-js.css
CHANGED
@@ -1,5 +1 @@
|
|
1 |
-
/*!
|
2 |
-
Video.js Default Styles (http://videojs.com)
|
3 |
-
Version 4.12.11
|
4 |
-
Create your own skin at http://designer.videojs.com
|
5 |
-
*/.vjs-default-skin{color:#ccc}@font-face{font-family:VideoJS;src:url(font/vjs.eot);src:url(font/vjs.eot?#iefix) format('embedded-opentype'),url(font/vjs.woff) format('woff'),url(font/vjs.ttf) format('truetype'),url(font/vjs.svg#icomoon) format('svg');font-weight:400;font-style:normal}.vjs-default-skin .vjs-slider{outline:0;position:relative;cursor:pointer;padding:0;background-color:#333;background-color:rgba(51,51,51,.9)}.vjs-default-skin .vjs-slider:focus{-webkit-box-shadow:0 0 2em #fff;-moz-box-shadow:0 0 2em #fff;box-shadow:0 0 2em #fff}.vjs-default-skin .vjs-slider-handle{position:absolute;left:0;top:0}.vjs-default-skin .vjs-slider-handle:before{content:"\e009";font-family:VideoJS;font-size:1em;line-height:1;text-align:center;text-shadow:0 0 1em #fff;position:absolute;top:0;left:0;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)}.vjs-default-skin .vjs-control-bar{display:none;position:absolute;bottom:0;left:0;right:0;height:3em;background-color:#07141e;background-color:rgba(7,20,30,.7)}.vjs-default-skin.vjs-has-started .vjs-control-bar{display:block;visibility:visible;opacity:1;-webkit-transition:visibility .1s,opacity .1s;-moz-transition:visibility .1s,opacity .1s;-o-transition:visibility .1s,opacity .1s;transition:visibility .1s,opacity .1s}.vjs-default-skin.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{display:block;visibility:hidden;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.vjs-default-skin.vjs-controls-disabled .vjs-control-bar{display:none}.vjs-default-skin.vjs-using-native-controls .vjs-control-bar{display:none}.vjs-default-skin.vjs-error .vjs-control-bar{display:none}.vjs-audio.vjs-default-skin.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{opacity:1;visibility:visible}@media \0screen{.vjs-default-skin.vjs-user-inactive.vjs-playing .vjs-control-bar :before{content:""}}.vjs-default-skin .vjs-control{outline:0;position:relative;float:left;text-align:center;margin:0;padding:0;height:3em;width:4em}.vjs-default-skin .vjs-control:before{font-family:VideoJS;font-size:1.5em;line-height:2;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;text-shadow:1px 1px 1px rgba(0,0,0,.5)}.vjs-default-skin .vjs-control:focus:before,.vjs-default-skin .vjs-control:hover:before{text-shadow:0 0 1em #fff}.vjs-default-skin .vjs-control:focus{}.vjs-default-skin .vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.vjs-default-skin .vjs-play-control{width:5em;cursor:pointer}.vjs-default-skin .vjs-play-control:before{content:"\e001"}.vjs-default-skin.vjs-playing .vjs-play-control:before{content:"\e002"}.vjs-default-skin .vjs-playback-rate .vjs-playback-rate-value{font-size:1.5em;line-height:2;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;text-shadow:1px 1px 1px rgba(0,0,0,.5)}.vjs-default-skin .vjs-playback-rate.vjs-menu-button .vjs-menu .vjs-menu-content{width:4em;left:-2em;list-style:none}.vjs-default-skin .vjs-mute-control,.vjs-default-skin .vjs-volume-menu-button{cursor:pointer;float:right}.vjs-default-skin .vjs-mute-control:before,.vjs-default-skin .vjs-volume-menu-button:before{content:"\e006"}.vjs-default-skin .vjs-mute-control.vjs-vol-0:before,.vjs-default-skin .vjs-volume-menu-button.vjs-vol-0:before{content:"\e003"}.vjs-default-skin .vjs-mute-control.vjs-vol-1:before,.vjs-default-skin .vjs-volume-menu-button.vjs-vol-1:before{content:"\e004"}.vjs-default-skin .vjs-mute-control.vjs-vol-2:before,.vjs-default-skin .vjs-volume-menu-button.vjs-vol-2:before{content:"\e005"}.vjs-default-skin .vjs-volume-control{width:5em;float:right}.vjs-default-skin .vjs-volume-bar{width:5em;height:.6em;margin:1.1em auto 0}.vjs-default-skin .vjs-volume-level{position:absolute;top:0;left:0;height:.5em;width:100%;background:#66a8cc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC) -50% 0 repeat}.vjs-default-skin .vjs-volume-bar .vjs-volume-handle{width:.5em;height:.5em;left:4.5em}.vjs-default-skin .vjs-volume-handle:before{font-size:.9em;top:-.2em;left:-.2em;width:1em;height:1em}.vjs-default-skin .vjs-volume-menu-button .vjs-menu{display:block;width:0;height:0;border-top-color:transparent}.vjs-default-skin .vjs-volume-menu-button .vjs-menu .vjs-menu-content{height:0;width:0}.vjs-default-skin .vjs-volume-menu-button:hover .vjs-menu,.vjs-default-skin .vjs-volume-menu-button .vjs-menu.vjs-lock-showing{border-top-color:rgba(7,40,50,.5)}.vjs-default-skin .vjs-volume-menu-button:hover .vjs-menu .vjs-menu-content,.vjs-default-skin .vjs-volume-menu-button .vjs-menu.vjs-lock-showing .vjs-menu-content{height:2.9em;width:10em}.vjs-default-skin .vjs-progress-control{position:absolute;left:0;right:0;width:auto;font-size:.3em;height:1em;top:-1em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.vjs-default-skin:hover .vjs-progress-control{font-size:.9em;-webkit-transition:all .2s;-moz-transition:all .2s;-o-transition:all .2s;transition:all .2s}.vjs-default-skin .vjs-progress-holder{height:100%}.vjs-default-skin .vjs-progress-holder .vjs-play-progress,.vjs-default-skin .vjs-progress-holder .vjs-load-progress,.vjs-default-skin .vjs-progress-holder .vjs-load-progress div{position:absolute;display:block;height:100%;margin:0;padding:0;width:0;left:0;top:0}.vjs-default-skin .vjs-play-progress{background:#66a8cc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC) -50% 0 repeat}.vjs-default-skin .vjs-load-progress{background:#646464;background:rgba(255,255,255,.2)}.vjs-default-skin .vjs-load-progress div{background:#787878;background:rgba(255,255,255,.1)}.vjs-default-skin .vjs-seek-handle{width:1.5em;height:100%}.vjs-default-skin .vjs-seek-handle:before{padding-top:.1em}.vjs-default-skin.vjs-live .vjs-time-controls,.vjs-default-skin.vjs-live .vjs-time-divider,.vjs-default-skin.vjs-live .vjs-progress-control{display:none}.vjs-default-skin.vjs-live .vjs-live-display{display:block}.vjs-default-skin .vjs-live-display{display:none;font-size:1em;line-height:3em}.vjs-default-skin .vjs-time-controls{font-size:1em;line-height:3em}.vjs-default-skin .vjs-current-time{float:left}.vjs-default-skin .vjs-duration{float:left}.vjs-default-skin .vjs-remaining-time{display:none;float:left}.vjs-time-divider{float:left;line-height:3em}.vjs-default-skin .vjs-fullscreen-control{width:3.8em;cursor:pointer;float:right}.vjs-default-skin .vjs-fullscreen-control:before{content:"\e000"}.vjs-default-skin.vjs-fullscreen .vjs-fullscreen-control:before{content:"\e00b"}.vjs-default-skin .vjs-big-play-button{left:.5em;top:.5em;font-size:3em;display:block;z-index:2;position:absolute;width:4em;height:2.6em;text-align:center;vertical-align:middle;cursor:pointer;opacity:1;background-color:#07141e;background-color:rgba(7,20,30,.7);border:.1em solid #3b4249;-webkit-border-radius:.8em;-moz-border-radius:.8em;border-radius:.8em;-webkit-box-shadow:0 0 1em rgba(255,255,255,.25);-moz-box-shadow:0 0 1em rgba(255,255,255,.25);box-shadow:0 0 1em rgba(255,255,255,.25);-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.vjs-default-skin.vjs-big-play-centered .vjs-big-play-button{left:50%;margin-left:-2.1em;top:50%;margin-top:-1.4000000000000001em}.vjs-default-skin.vjs-controls-disabled .vjs-big-play-button{display:none}.vjs-default-skin.vjs-has-started .vjs-big-play-button{display:none}.vjs-default-skin.vjs-using-native-controls .vjs-big-play-button{display:none}.vjs-default-skin:hover .vjs-big-play-button,.vjs-default-skin .vjs-big-play-button:focus{outline:0;border-color:#fff;background-color:#505050;background-color:rgba(50,50,50,.75);-webkit-box-shadow:0 0 3em #fff;-moz-box-shadow:0 0 3em #fff;box-shadow:0 0 3em #fff;-webkit-transition:all 0s;-moz-transition:all 0s;-o-transition:all 0s;transition:all 0s}.vjs-default-skin .vjs-big-play-button:before{content:"\e001";font-family:VideoJS;line-height:2.6em;text-shadow:.05em .05em .1em #000;text-align:center;position:absolute;left:0;width:100%;height:100%}.vjs-error .vjs-big-play-button{display:none}.vjs-error-display{display:none}.vjs-error .vjs-error-display{display:block;position:absolute;left:0;top:0;width:100%;height:100%}.vjs-error .vjs-error-display:before{content:'X';font-family:Arial;font-size:4em;color:#666;line-height:1;text-shadow:.05em .05em .1em #000;text-align:center;vertical-align:middle;position:absolute;left:0;top:50%;margin-top:-.5em;width:100%}.vjs-error-display div{position:absolute;bottom:1em;right:0;left:0;font-size:1.4em;text-align:center;padding:3px;background:#000;background:rgba(0,0,0,.5)}.vjs-error-display a,.vjs-error-display a:visited{color:#F4A460}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;font-size:4em;line-height:1;width:1em;height:1em;margin-left:-.5em;margin-top:-.5em;opacity:.75}.vjs-waiting .vjs-loading-spinner,.vjs-seeking .vjs-loading-spinner{display:block;-webkit-animation:spin 1.5s infinite linear;-moz-animation:spin 1.5s infinite linear;-o-animation:spin 1.5s infinite linear;animation:spin 1.5s infinite linear}.vjs-error .vjs-loading-spinner{display:none;-webkit-animation:none;-moz-animation:none;-o-animation:none;animation:none}.vjs-default-skin .vjs-loading-spinner:before{content:"\e01e";font-family:VideoJS;position:absolute;top:0;left:0;width:1em;height:1em;text-align:center;text-shadow:0 0 .1em #000}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.vjs-default-skin .vjs-menu-button{float:right;cursor:pointer}.vjs-default-skin .vjs-menu{display:none;position:absolute;bottom:0;left:0;width:0;height:0;margin-bottom:3em;border-left:2em solid transparent;border-right:2em solid transparent;border-top:1.55em solid #000;border-top-color:rgba(7,40,50,.5)}.vjs-default-skin .vjs-menu-button .vjs-menu .vjs-menu-content{display:block;padding:0;margin:0;position:absolute;width:10em;bottom:1.5em;max-height:15em;overflow:auto;left:-5em;background-color:#07141e;background-color:rgba(7,20,30,.7);-webkit-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);-moz-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);box-shadow:-.2em -.2em .3em rgba(255,255,255,.2)}.vjs-default-skin .vjs-menu-button:hover .vjs-control-content .vjs-menu,.vjs-default-skin .vjs-control-content .vjs-menu.vjs-lock-showing{display:block}.vjs-default-skin.vjs-scrubbing .vjs-menu-button:hover .vjs-control-content .vjs-menu{display:none}.vjs-default-skin .vjs-menu-button ul li{list-style:none;margin:0;padding:.3em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase}.vjs-default-skin .vjs-menu-button ul li.vjs-selected{background-color:#000}.vjs-default-skin .vjs-menu-button ul li:focus,.vjs-default-skin .vjs-menu-button ul li:hover,.vjs-default-skin .vjs-menu-button ul li.vjs-selected:focus,.vjs-default-skin .vjs-menu-button ul li.vjs-selected:hover{outline:0;color:#111;background-color:#fff;background-color:rgba(255,255,255,.75);-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.vjs-default-skin .vjs-menu-button ul li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.vjs-default-skin .vjs-subtitles-button:before{content:"\e00c"}.vjs-default-skin .vjs-captions-button:before{content:"\e008"}.vjs-default-skin .vjs-chapters-button:before{content:"\e00c"}.vjs-default-skin .vjs-chapters-button.vjs-menu-button .vjs-menu .vjs-menu-content{width:24em;left:-12em}.vjs-default-skin .vjs-captions-button:focus .vjs-control-content:before,.vjs-default-skin .vjs-captions-button:hover .vjs-control-content:before{-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.video-js{background-color:#000;position:relative;padding:0;font-size:10px;vertical-align:middle;font-weight:400;font-style:normal;font-family:Arial,sans-serif;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.video-js .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}.video-js:-moz-full-screen{position:absolute}body.vjs-full-window{padding:0;margin:0;height:100%;overflow-y:auto}.video-js.vjs-fullscreen{position:fixed;overflow:hidden;z-index:1000;left:0;top:0;bottom:0;right:0;width:100%!important;height:100%!important;_position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.video-js.vjs-fullscreen.vjs-user-inactive{cursor:none}.vjs-poster{background-repeat:no-repeat;background-position:50% 50%;background-size:contain;background-color:#000;cursor:pointer;margin:0;padding:0;position:absolute;top:0;right:0;bottom:0;left:0}.vjs-poster img{display:block;margin:0 auto;max-height:100%;padding:0;width:100%}.video-js.vjs-has-started .vjs-poster{display:none}.video-js.vjs-audio.vjs-has-started .vjs-poster{display:block}.video-js.vjs-controls-disabled .vjs-poster{display:none}.video-js.vjs-using-native-controls .vjs-poster{display:none}.video-js .vjs-text-track-display{position:absolute;top:0;left:0;bottom:3em;right:0;pointer-events:none}.vjs-caption-settings{position:relative;top:1em;background-color:#000;opacity:.75;color:#FFF;margin:0 auto;padding:.5em;height:15em;font-family:Arial,Helvetica,sans-serif;font-size:12px;width:40em}.vjs-caption-settings .vjs-tracksettings{top:0;bottom:2em;left:0;right:0;position:absolute;overflow:auto}.vjs-caption-settings .vjs-tracksettings-colors,.vjs-caption-settings .vjs-tracksettings-font{float:left}.vjs-caption-settings .vjs-tracksettings-colors:after,.vjs-caption-settings .vjs-tracksettings-font:after,.vjs-caption-settings .vjs-tracksettings-controls:after{clear:both}.vjs-caption-settings .vjs-tracksettings-controls{position:absolute;bottom:1em;right:1em}.vjs-caption-settings .vjs-tracksetting{margin:5px;padding:3px;min-height:40px}.vjs-caption-settings .vjs-tracksetting label{display:block;width:100px;margin-bottom:5px}.vjs-caption-settings .vjs-tracksetting span{display:inline;margin-left:5px}.vjs-caption-settings .vjs-tracksetting>div{margin-bottom:5px;min-height:20px}.vjs-caption-settings .vjs-tracksetting>div:last-child{margin-bottom:0;padding-bottom:0;min-height:0}.vjs-caption-settings label>input{margin-right:10px}.vjs-caption-settings input[type=button]{width:40px;height:40px}.vjs-hidden{display:none!important}.vjs-lock-showing{display:block!important;opacity:1;visibility:visible}.vjs-no-js{padding:2em;color:#ccc;background-color:#333;font-size:1.8em;font-family:Arial,sans-serif;text-align:center;width:30em;height:15em;margin:0 auto}.vjs-no-js a,.vjs-no-js a:visited{color:#F4A460}
|
1 |
+
@charset "UTF-8";.video-js .vjs-big-play-button:before,.video-js .vjs-control:before,.video-js .vjs-modal-dialog,.vjs-modal-dialog .vjs-modal-dialog-content{position:absolute;top:0;left:0;width:100%;height:100%}.video-js .vjs-big-play-button:before,.video-js .vjs-control:before{text-align:center}@font-face{font-family:VideoJS;src:url(font/VideoJS.eot?#iefix) format("eot")}@font-face{font-family:VideoJS;src:url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAA4wAAoAAAAAFfAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAAA9AAAAD4AAABWUZFeBGNtYXAAAAE0AAAAOgAAAUriLxC2Z2x5ZgAAAXAAAAnnAAAO5OV/F/5oZWFkAAALWAAAACsAAAA2C4eUa2hoZWEAAAuEAAAAGAAAACQOogcfaG10eAAAC5wAAAAPAAAAeNIAAABsb2NhAAALrAAAAD4AAAA+MMgtQm1heHAAAAvsAAAAHwAAACABLwB5bmFtZQAADAwAAAElAAACCtXH9aBwb3N0AAANNAAAAPkAAAF5vawAenicY2BkZ2CcwMDKwMFSyPKMgYHhF4RmjmEIZzzHwMDEwMrMgBUEpLmmMDh8ZPwoyw7iLmSHCDOCCADu/Qo9AAB4nGNgYGBmgGAZBkYGEHAB8hjBfBYGDSDNBqQZGZgYGD7K/v8PUvCREUTzM0DVAwEjG8OIBwCOWgbUAAB4nI1XfVBU1xV/574vlsUlj/14grDs48FuAgaR3X2LEnY3UZSgEkTwAySAgkIwI8bRfFDjTszYCWRMW9lNa4y2meokmq+2k5ia0dpkmknbkWgSSW3GyaaNf0RTx0wxX7A3Pe/tQmIgHXf3vXvvueeee+45v3POXQYY/PCD/CBDGAYkIE2sxg+OXSJmhmH1OaFX6MU5C5PDMCZi5Rg2i+ELGSthwM14NCbgYGSBIZfhFA1H6Zu0OS0NDkMVfg+npdFm+maCvigI0JBIQIMg0BdJGdTj9ylj7nr+b97+Hl8C1+H2xNAvjPqxjIgaKtItICkSnIISeo40QQls4xxjlzgHsnGGvi7BxQiMlSlkPMhfCh67rAUEUQ6CHxW2O7JARCkKnlUQ7UEIyAEQZe4MdDW9xr5OPFuKbubpRxcPDY8da4MOelDfAYJLW+sGKn/Vlmjfv5+NdB4oOfTazJn3tGxZtL9xFNZX7PPRUbjcRg/SMB2EL+gblXn7shbO/WUbF9u/H5XQ9eKO8iMMr9tY35qYoRi20wGuXV/CHaGDk2fdgHwCk5HUXQpCcgHfBV2NjV3jkq4PHTSUSBwuOQALvxPAps6fiftk6P6yJpcm5bB4dFkgoh195mbiSTnkL3jupq7jh4ZZdvjQRVB4PPx3SsVTu5D/6kd85RU66ttXAeuuXYN1E/Y2sMMzZkZiZNRZlRS/ynr9Xr8Cql2RVNbutXslYo7B9ngsFqcDbCQO22PxeIxcpgMxkh6PjUdwkvw6hvRpZeoCFKshDQzJVr++DWyLx+hAXJcGp3TJMV1ME45xCNvHLsWRrpOZSduOoG0zERuIIwuIkhNkBREglQKLiODD45FQE0BTiE214xE2wp8zOt9NjH3GRtDMk7Ehoq2tzCzGxdyMEQJuD0qGIrQ58ApoWQE3D2h1h6zwuB14wYFIDAA5CZ11jT+92gFZ7B7/p7+hV8jFxBl4aG03wLiVXtBbCylLfIJzkPUAvWAw0yvsVdKdBbC6nnruP/RFkHqWJLZ2Auxdtgy+6qTf7l1WswTJcJ6mGVxwXj92UtfU2WXUNX+qBUCxK6D4FR4f/cufG1sZbiSkMcwdMdoxBxTTEXIp4SCXMNhHoFjvTTFP4vkoPReNRmPRCTwa+3qY0DR7qn7Vjh612wRRTaI04HWCnZ+gIzvS/ZJP0+mynphCui4hzmG0id6+aLSv2BV3FQMYDTHrlGQ/SZ+q4ZdF8aLa5Ar8GW3tVNKEj13cF0buMaesx1i9CL/Uo1tM0h+74o9HjQ+UcPaxy8mH9ccwK8KpKA3rHdIUjTKpfIBxuokpxUGBIILm84ATvHh8tAIe2iZj8KvYwUOXawHMVNgxZvlwSa0z8Zkokkxn3ey2nYTsbMO3mPh8cji7zklsPLD9a9f2s2w/uSt/FgSytWzw5bmS3PielU1P56aGrlz6NzlnbT8h/Wtb+1OxIqxBbC9g7kINUbtAEDxsKWSCe46eltCPmaiUxy2IrODIB8EmixaQrU4IAQ6THg6BFpAdWsCquT16DkL9ccIC/FGeP5AuiDExe8bx+QtzWVsmHcm0kdzqecdn5IhRkTc/zfNPm3ns5sw4Pq86l9gyofh6jkTF5iFChjYbbzZQWFvYb8qZAWyGiV9ya+5bFgnzpuWt3FuX8KYMmsiYZepPseBgGhZcOMt0+4Q8fDOTftJjHIuhdaLsFXFM9AclTi9jbGRq8ZvIOykZei77kfo53eoppVPovbGiyV63p/p/dkWETTjmhjTIm8RP284b04bcNYlRsvO6Gp2JeaiIueVHsgJGF2aASlCQLuG8EsBomzb++/AXmwhaOoLhL7iQ4/uc449gWJ56/XWDARn74v/PL1bRBB4TBEyYrqezSkUPHaWjPWCm13ogAzJ66LVpbTEuXccDZlyXxBQ/IrzKOPS7gAkkIyZ0N6joE6M246aDsO1kgucTJ/EdFWA5pbAcTfoSP4hJeBCni7nEn5IclL4kpDgmMMuH8Kpk0+WrBUIeKCyWS0nPVz7NW86Hnl55GxR5KB3+9tszL+wVRulXNTUn6D8SJvIl3PzP46eZST/tQTllTDXTzmxCaTYna7eJAqcWuD1ulBXQsMz5fQEBCfowCF5FVDF/2yysB9OW5veVEtRAFOy41FoeJEiAOZhDiFstsKAwJ8Hijs72q1jWvWx+uKU5XFZDLx189OK8ojW1u0By5dtLHUN/rwkte68PnhnYVbt0bvWiub9w1+f4C0L3hIuXZ8+xlVSt0eb3tgQsmVZnem5R3U0uf/fmFdqiLTvY3nPnet5/v4f9pLB6QX2krnnFQ1tXtN+2ePlAaUNWcfiWwrncn4ca9ml3hFeHHm+u2bq4MhxUZs3bMH/3jgaPUtlVunFjg2/8yRzf3cHsssKZqlnOqyCWworWykW9lXnspk0ffrjpfCreIpjPWbwnFxt3PAkcQgkUuH1auUMf+txJQ0hK1k1zsNaqQdaLMxfoq9AGGxtJQ+fGw53cE/TY8pWhJruZHiMAcCexFS/eGDp6hntiXGE/gvI7163b29ExfiHxNsnqub/a6/QmPoAn4GpZ2c9cZRX5/57IWUNYuubiQBAddhuxAKe6PA5vuV5dkk0VXkMM3zk42W3Awrgka8LQgjZY+tQIffd5+vnHasnHL/cczldyS4r79i6su6Nu9oPQ8lbaid2Pt9/bXtTTynevq7bkPkITV47d+3NugOzo4M3y77Zxbnb2nhWrl0T/kO4u3H1ig33e1lD6JDYjiKkCHOioF0pZv6T6gxxipxLNhFc8xERA48vq5ZfXdL/QV6c8W3PfwjIsZyI3Csvo72e4FpTVwTv/UYNAKtY+8MB84vogZ1Xr5lW38iJdPZ74xunzO4Gk7BARIkytjlyCoPVoIb3IluMfAYRhEoAO2aGXKc2TNAJaSwdzQEeq7jC7TWYF2Y2jrEIXlyVEhunBs5t7K62a7Z6qB0923/+vPT2v7mwpqV/mTEsTiCB5zz735HOP9VbVWtKKZK08uDJ7vcQN02HogGegY5iNnKUHh12ti9/zzHvsauy+tx+e375j94LuA64MV/5MQbZVNT95/re7jlxZVaVuW5Nffsd9TXfOpXcv6m2Bn3x6FgXg/oz+P0h/ce8g2mTEWxVTzzQzrTruNCcRdbu6VY87gLVXc4uSjXfosak7XxWM4oyl+ockmzCFhJXaGwK8e6sCW2T3sLmPnh5qSZtx9JHFL6QBHGnsTjdtWQ8PFygWtQTIkrI84NILfQSC65FUMFsnOYFHEoSmUCD49a4rt3985PTsd8GzB/5KEnzmhhORgVOZPM+yb5KmpRu38jQqviH6826Lrdrxx6DZdFPo2fVbTiy9AUpDJ3SxGYvpK7u+Rhz8D4BCxssAeJxjYGRgYABi/vcdWfH8Nl8ZuNkZQODSliXbkWl2BrA4BwMTiAIAKDsJfgB4nGNgZGBgZwCChWASxGZkQAVyABOTANd4nGNnYGBgHwAMADNUANMAAAAAAAAOAFAAZgCyAMYA5gEeAUgBdAGcAfICLgKOAroDCgOOA7AD6gQ4BHwEuAToBQwFogXoBjYGbAbaB3IAAHicY2BkYGCQY8hlYGcAASYg5gJCBob/YD4DABa6AakAeJxdkE1qg0AYhl8Tk9AIoVDaVSmzahcF87PMARLIMoFAl0ZHY1BHdBJIT9AT9AQ9RQ9Qeqy+yteNMzDzfM+88w0K4BY/cNAMB6N2bUaPPBLukybCLvleeAAPj8JD+hfhMV7hC3u4wxs7OO4NzQSZcI/8Ltwnfwi75E/hAR7wJTyk/xYeY49fYQ/PztM+jbTZ7LY6OWdBJdX/pqs6NYWa+zMxa13oKrA6Uoerqi/JwtpYxZXJ1coUVmeZUWVlTjq0/tHacjmdxuL90OR8O0UEDYMNdtiSEpz5XQGqzlm30kzUdAYFFOb8R7NOZk0q2lwAyz1i7oAr1xoXvrOgtYhZx8wY5KRV269JZ5yGpmzPTjQhvY9je6vEElPOuJP3mWKnP5M3V+YAAAB4nG2P2XLCMAxFfYE4CWlZSveFP8hHOY4gHhw79VLav68hMNOH6kG60mg5YhM22pr9b1vGMMEUM2TgyFGgxBwVbnCLBZZYYY07bHCPBzziCc94wSve8I4PbGeDFj/VydVSOakpG0T0VH1ZHXuq+xhoftHaHq+yV+21o1P7brWLWnvpiExNJpBb/i18q8D9ZxSOcj8oY8iVPjZBBU2+kGIIypokuqTI+cx3qXMq7Z6PQIsx1DYGrQxtLul50YV50rVcCiNJc0enX4qdkNRYe8j2g46+SIMHapXJw1GFdIWH2DfalQknZeTDWsRW2bqlBK3ORIz9AqJUapQAAAA=) format("woff"),url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAAKAIAAAwAgT1MvMlGRXgQAAAEoAAAAVmNtYXDiLxC2AAAB+AAAAUpnbHlm5X8X/gAAA4QAAA7kaGVhZAuHlGsAAADQAAAANmhoZWEOogcfAAAArAAAACRobXR40gAAAAAAAYAAAAB4bG9jYTDILUIAAANEAAAAPm1heHABLwB5AAABCAAAACBuYW1l1cf1oAAAEmgAAAIKcG9zdL2sAHoAABR0AAABeQABAAAHAAAAAKEHAAAAAAAHAAABAAAAAAAAAAAAAAAAAAAAHgABAAAAAQAAD+/W/l8PPPUACwcAAAAAANK0pLcAAAAA0rSktwAAAAAHAAcAAAAACAACAAAAAAAAAAEAAAAeAG0ABwAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAQcAAZAABQAIBHEE5gAAAPoEcQTmAAADXABXAc4AAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA8QHxHQcAAAAAoQcAAAAAAAABAAAAAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAAAAAAAwAAAAMAAAAcAAEAAAAAAEQAAwABAAAAHAAEACgAAAAGAAQAAQACAADxHf//AAAAAPEB//8AAA8AAAEAAAAAAAAAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AUABmALIAxgDmAR4BSAF0AZwB8gIuAo4CugMKA44DsAPqBDgEfAS4BOgFDAWiBegGNgZsBtoHcgAAAAEAAAAABYsFiwACAAABEQECVQM2BYv76gILAAADAAAAAAZrBmsAAgAOABoAAAkCEwQAAxIABSQAEwIAASYAJzYANxYAFwYAAusBwP5Alf7D/loICAGmAT0BPQGmCAj+Wv7D/f6uBgYBUv39AVIGBv6uAjABUAFQAZsI/lr+w/7D/loICAGmAT0BPQGm+sgGAVL9/QFSBgb+rv39/q4AAAACAAAAAAVABYsAAwAHAAABIREpAREhEQHAASv+1QJVASsBdQQW++oEFgAAAAQAAAAABiAGIAAGABMAJAAnAAABLgEnFRc2NwYHFz4BNSYAJxUWEgEHASERIQERAQYHFT4BNxc3AQcXBNABZVW4A7sCJ3ElKAX+3+Wlzvu3XwFh/p8BKwF1AT5MXU6KO5lf/WCcnAOAZJ4rpbgYGGpbcUacVPQBYziaNP70Aetf/p/+QP6LAfb+wjsdmhJEMZhfBJacnAAAAQAAAAAEqwXWAAUAAAERIQERAQILASoBdv6KBGD+QP6LBKr+iwAAAAIAAAAABWYF1gAGAAwAAAEuAScRPgEBESEBEQEFZQFlVFRl/BEBKwF1/osDgGSeK/2mK54BRP5A/osEqv6LAAADAAAAAAYgBg8ABQAMABoAABMRIQERAQUuAScRPgEDFRYSFwYCBxU2ADcmAOABKwF1/osCxQFlVVVluqXOAwPOpeUBIQUF/t8EYP5A/osEqv6L4GSeK/2mK54C85o0/vS1tf70NJo4AWL19QFiAAAABAAAAAAFiwWLAAUACwARABcAAAEjESE1IwMzNTM1IQEjFSERIwMVMxUzEQILlgF24JaW4P6KA4DgAXaW4OCWAuv+ipYCCuCW/ICWAXYCoJbgAXYABAAAAAAFiwWLAAUACwARABcAAAEzFTMRIRMjFSERIwEzNTM1IRM1IxEhNQF14Jb+iuDgAXaWAcCW4P6KlpYBdgJV4AF2AcCWAXb76uCWAcDg/oqWAAAAAAIAAAAABdYF1gAPABMAAAEhDgEHER4BFyE+ATcRLgEDIREhBUD8gD9VAQFVPwOAP1UBAVU//IADgAXVAVU//IA/VQEBVT8DgD9V++wDgAAABgAAAAAGawZrAAcADAATABsAIAAoAAAJASYnDgEHASUuAScBBSEBNhI3JgUBBgIHFhchBR4BFwEzARYXPgE3AQK+AWROVIfwYQESA4416aH+7gLl/dABelxoAQH8E/7dXGgBAQ4CMP3kNemhARJ4/t1OVIfwYf7uA/ACaBIBAVhQ/id3pfY+/idL/XNkAQGTTU0B+GT+/5NNSEul9j4B2f4IEgEBWFAB2QAAAAUAAAAABmsF1gAPABMAFwAbAB8AAAEhDgEHER4BFyE+ATcRLgEBIRUhASE1IQUhNSE1ITUhBdX7VkBUAgJUQASqQFQCAlT7FgEq/tYC6v0WAuoBwP7WASr9FgLqBdUBVT/8gD9VAQFVPwOAP1X9rJX+1ZWVlZaVAAMAAAAABiAF1gAPACcAPwAAASEOAQcRHgEXIT4BNxEuAQEjNSMVMzUzFRQGByMuAScRPgE3Mx4BFQUjNSMVMzUzFQ4BByMuATURNDY3Mx4BFwWL++o/VAICVD8EFj9UAgJU/WtwlZVwKiDgICoBASog4CAqAgtwlZVwASog4CAqKiDgICoBBdUBVT/8gD9VAQFVPwOAP1X99yXgJUogKgEBKiABKiAqAQEqIEol4CVKICoBASogASogKgEBKiAAAAYAAAAABiAE9gADAAcACwAPABMAFwAAEzM1IxEzNSMRMzUjASE1IREhNSERFSE14JWVlZWVlQErBBX76wQV++sEFQM1lv5AlQHAlf5Alv5AlQJVlZUAAAABAAAAAAYgBmwALgAAASIGBwE2NCcBHgEzPgE3LgEnDgEHFBcBLgEjDgEHHgEXMjY3AQYHHgEXPgE3LgEFQCtKHv3sBwcCDx5OLF9/AgJ/X19/Agf98R5OLF9/AgJ/XyxOHgIUBQEDe1xcewMDewJPHxsBNxk2GQE0HSACf19ffwICf18bGf7NHCACf19ffwIgHP7KFxpcewICe1xdewAAAgAAAAAGWQZrAEMATwAAATY0Jzc+AScDLgEPASYvAS4BJyEOAQ8BBgcnJgYHAwYWHwEGFBcHDgEXEx4BPwEWHwEeARchPgE/ATY3FxY2NxM2JicFLgEnPgE3HgEXDgEFqwUFngoGB5YHGQ26OkQcAxQP/tYPFAIcRTm6DRoHlQcFC50FBZ0LBQeVBxoNujlFHAIUDwEqDxQCHEU5ug0aB5UHBQv9OG+UAgKUb2+UAgKUAzckSiR7CRoNAQMMCQVLLRzGDhEBAREOxhwtSwUJDP79DBsJeyRKJHsJGg3+/QwJBUstHMYOEQEBEQ7GHC1LBQkMAQMMGwlBApRvb5QCApRvb5QAAAAAAQAAAAAGawZrAAsAABMSAAUkABMCACUEAJUIAaYBPQE9AaYICP5a/sP+w/5aA4D+w/5aCAgBpgE9AT0BpggI/loAAAACAAAAAAZrBmsACwAXAAABBAADEgAFJAATAgABJgAnNgA3FgAXBgADgP7D/loICAGmAT0BPQGmCAj+Wv7D/f6uBgYBUv39AVIGBv6uBmsI/lr+w/7D/loICAGmAT0BPQGm+sgGAVL9/QFSBgb+rv39/q4AAAMAAAAABmsGawALABcAIwAAAQQAAxIABSQAEwIAASYAJzYANxYAFwYAAw4BBy4BJz4BNx4BA4D+w/5aCAgBpgE9AT0BpggI/lr+w/3+rgYGAVL9/QFSBgb+rh0Cf19ffwICf19ffwZrCP5a/sP+w/5aCAgBpgE9AT0BpvrIBgFS/f0BUgYG/q79/f6uAk9ffwICf19ffwICfwAAAAQAAAAABiAGIAAPABsAJQApAAABIQ4BBxEeARchPgE3ES4BASM1IxUjETMVMzU7ASEeARcRDgEHITczNSMFi/vqP1QCAlQ/BBY/VAICVP1rcJVwcJVwlgEqICoBASog/tZwlZUGIAJUP/vqP1QCAlQ/BBY/VPyClZUBwLu7ASog/tYgKgFw4AACAAAAAAZrBmsACwAXAAABBAADEgAFJAATAgATBwkBJwkBNwkBFwEDgP7D/loICAGmAT0BPQGmCAj+Wjhp/vT+9GkBC/71aQEMAQxp/vUGawj+Wv7D/sP+WggIAaYBPQE9Aab8EWkBC/71aQEMAQxp/vUBC2n+9AABAAAAAAXWBrYAFgAAAREJAREeARcOAQcuAScjFgAXNgA3JgADgP6LAXW+/QUF/b6+/QWVBgFR/v4BUQYG/q8FiwEq/ov+iwEqBP2/vv0FBf2+/v6vBgYBUf7+AVEAAAABAAAAAAU/BwAAFAAAAREjIgYdASEDIxEhESMRMzU0NjMyBT+dVjwBJSf+/s7//9Ctkwb0/vhISL3+2P0JAvcBKNq6zQAAAAAEAAAAAAaOBwAAMABFAGAAbAAAARQeAxUUBwYEIyImJyY1NDY3NiUuATU0NwYjIiY1NDY3PgEzIQcjHgEVFA4DJzI2NzY1NC4CIyIGBwYVFB4DEzI+AjU0LgEvASYvAiYjIg4DFRQeAgEzFSMVIzUjNTM1MwMfQFtaQDBI/uqfhOU5JVlKgwERIB8VLhaUy0g/TdNwAaKKg0pMMUVGMZImUBo1Ij9qQCpRGS8UKz1ZNjprWzcODxMeChwlThAgNWhvUzZGcX0Da9XVadTUaQPkJEVDUIBOWlN6c1NgPEdRii5SEipAKSQxBMGUUpo2QkBYP4xaSHNHO0A+IRs5ZjqGfVInITtlLmdnUjT8lxo0Xj4ZMCQYIwsXHTgCDiQ4XTtGazsdA2xs29ts2QADAAAAAAaABmwAAwAOACoAAAERIREBFgYrASImNDYyFgERIRE0JiMiBgcGFREhEhAvASEVIz4DMzIWAd3+tgFfAWdUAlJkZ6ZkBI/+t1FWP1UVC/63AgEBAUkCFCpHZz+r0ASP/CED3wEySWJik2Fh/N39yAISaXdFMx4z/dcBjwHwMDCQIDA4H+MAAAEAAAAABpQGAAAxAAABBgcWFRQCDgEEIyAnFjMyNy4BJxYzMjcuAT0BFhcuATU0NxYEFyY1NDYzMhc2NwYHNgaUQ18BTJvW/tKs/vHhIyvhsGmmHyEcKypwk0ROQk4seQFbxgi9hoxgbWAlaV0FaGJFDhyC/v3ut22RBIoCfWEFCxexdQQmAyyOU1hLlbMKJiSGvWYVOXM/CgAAAAEAAAAABYAHAAAiAAABFw4BBwYuAzURIzU+BDc+ATsBESEVIREUHgI3NgUwUBewWWitcE4hqEhyRDAUBQEHBPQBTf6yDSBDME4Bz+0jPgECOFx4eDoCINcaV11vVy0FB/5Y/P36HjQ1HgECAAEAAAAABoAGgABKAAABFAIEIyInNj8BHgEzMj4BNTQuASMiDgMVFBYXFj8BNjc2JyY1NDYzMhYVFAYjIiY3PgI1NCYjIgYVFBcDBhcmAjU0EiQgBBIGgM7+n9FvazsTNhRqPXm+aHfijmm2f1srUE0eCAgGAgYRM9Gpl6mJaz1KDgglFzYyPlYZYxEEzv7OAWEBogFhzgOA0f6fziBdR9MnOYnwlnLIfjpgfYZDaJ4gDCAfGAYXFD1al9mkg6ruVz0jdVkfMkJyVUkx/l5Ga1sBfOnRAWHOzv6fAAAHAAAAAAcABM8ADgAXACoAPQBQAFoAXQAAARE2HgIHDgEHBiYjJyY3FjY3NiYHERQFFjY3PgE3LgEnIwYfAR4BFw4BFxY2Nz4BNy4BJyMGHwEeARcUBhcWNjc+ATcuAScjBh8BHgEXDgEFMz8BFTMRIwYDJRUnAxyEzZRbCA2rgketCAEBqlRoCglxYwF+IiEOIysBAkswHQEECiQ0AgE+YyIhDiIsAQJLMB4BBQokNAE/YyIhDiIsAQJLMB4BBQokNAEBPvmD7kHhqs0s0gEnjgHJAv0FD2a9gIrADwUFAwPDAlVMZ3MF/pUHwgc1HTyWV325PgsJED+oY3G9TAc1HTyWV325PgsJED+oY3G9TAc1HTyWV325PgsJED+oY3G9UmQBZQMMR/61g/kBAAAAAAAQAMYAAQAAAAAAAQAHAAAAAQAAAAAAAgAHAAcAAQAAAAAAAwAHAA4AAQAAAAAABAAHABUAAQAAAAAABQALABwAAQAAAAAABgAHACcAAQAAAAAACgArAC4AAQAAAAAACwATAFkAAwABBAkAAQAOAGwAAwABBAkAAgAOAHoAAwABBAkAAwAOAIgAAwABBAkABAAOAJYAAwABBAkABQAWAKQAAwABBAkABgAOALoAAwABBAkACgBWAMgAAwABBAkACwAmAR5WaWRlb0pTUmVndWxhclZpZGVvSlNWaWRlb0pTVmVyc2lvbiAxLjBWaWRlb0pTR2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20AVgBpAGQAZQBvAEoAUwBSAGUAZwB1AGwAYQByAFYAaQBkAGUAbwBKAFMAVgBpAGQAZQBvAEoAUwBWAGUAcgBzAGkAbwBuACAAMQAuADAAVgBpAGQAZQBvAEoAUwBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAACAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4EcGxheQtwbGF5LWNpcmNsZQVwYXVzZQt2b2x1bWUtbXV0ZQp2b2x1bWUtbG93CnZvbHVtZS1taWQLdm9sdW1lLWhpZ2gQZnVsbHNjcmVlbi1lbnRlcg9mdWxsc2NyZWVuLWV4aXQGc3F1YXJlB3NwaW5uZXIJc3VidGl0bGVzCGNhcHRpb25zCGNoYXB0ZXJzBXNoYXJlA2NvZwZjaXJjbGUOY2lyY2xlLW91dGxpbmUTY2lyY2xlLWlubmVyLWNpcmNsZQJoZAZjYW5jZWwGcmVwbGF5CGZhY2Vib29rBWdwbHVzCGxpbmtlZGluB3R3aXR0ZXIGdHVtYmxyCXBpbnRlcmVzdBFhdWRpby1kZXNjcmlwdGlvbgAAAAAA) format("truetype");font-weight:400;font-style:normal}.vjs-icon-play,.video-js .vjs-big-play-button,.video-js .vjs-play-control{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play:before,.video-js .vjs-big-play-button:before,.video-js .vjs-play-control:before{content:'\f101'}.vjs-icon-play-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play-circle:before{content:'\f102'}.vjs-icon-pause,.video-js .vjs-play-control.vjs-playing{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pause:before,.video-js .vjs-play-control.vjs-playing:before{content:'\f103'}.vjs-icon-volume-mute,.video-js .vjs-mute-control.vjs-vol-0,.video-js .vjs-volume-menu-button.vjs-vol-0{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-mute:before,.video-js .vjs-mute-control.vjs-vol-0:before,.video-js .vjs-volume-menu-button.vjs-vol-0:before{content:'\f104'}.vjs-icon-volume-low,.video-js .vjs-mute-control.vjs-vol-1,.video-js .vjs-volume-menu-button.vjs-vol-1{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-low:before,.video-js .vjs-mute-control.vjs-vol-1:before,.video-js .vjs-volume-menu-button.vjs-vol-1:before{content:'\f105'}.vjs-icon-volume-mid,.video-js .vjs-mute-control.vjs-vol-2,.video-js .vjs-volume-menu-button.vjs-vol-2{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-mid:before,.video-js .vjs-mute-control.vjs-vol-2:before,.video-js .vjs-volume-menu-button.vjs-vol-2:before{content:'\f106'}.vjs-icon-volume-high,.video-js .vjs-mute-control,.video-js .vjs-volume-menu-button{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-high:before,.video-js .vjs-mute-control:before,.video-js .vjs-volume-menu-button:before{content:'\f107'}.vjs-icon-fullscreen-enter,.video-js .vjs-fullscreen-control{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-fullscreen-enter:before,.video-js .vjs-fullscreen-control:before{content:'\f108'}.vjs-icon-fullscreen-exit,.video-js.vjs-fullscreen .vjs-fullscreen-control{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-fullscreen-exit:before,.video-js.vjs-fullscreen .vjs-fullscreen-control:before{content:'\f109'}.vjs-icon-square{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-square:before{content:'\f10a'}.vjs-icon-spinner{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-spinner:before{content:'\f10b'}.vjs-icon-subtitles,.video-js .vjs-subtitles-button{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-subtitles:before,.video-js .vjs-subtitles-button:before{content:'\f10c'}.vjs-icon-captions,.video-js .vjs-captions-button{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-captions:before,.video-js .vjs-captions-button:before{content:'\f10d'}.vjs-icon-chapters,.video-js .vjs-chapters-button{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-chapters:before,.video-js .vjs-chapters-button:before{content:'\f10e'}.vjs-icon-share{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-share:before{content:'\f10f'}.vjs-icon-cog{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cog:before{content:'\f110'}.vjs-icon-circle,.video-js .vjs-mouse-display,.video-js .vjs-play-progress,.video-js .vjs-volume-level{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle:before,.video-js .vjs-mouse-display:before,.video-js .vjs-play-progress:before,.video-js .vjs-volume-level:before{content:'\f111'}.vjs-icon-circle-outline{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-outline:before{content:'\f112'}.vjs-icon-circle-inner-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-inner-circle:before{content:'\f113'}.vjs-icon-hd{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-hd:before{content:'\f114'}.vjs-icon-cancel,.video-js .vjs-control.vjs-close-button{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cancel:before,.video-js .vjs-control.vjs-close-button:before{content:'\f115'}.vjs-icon-replay{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-replay:before{content:'\f116'}.vjs-icon-facebook{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-facebook:before{content:'\f117'}.vjs-icon-gplus{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-gplus:before{content:'\f118'}.vjs-icon-linkedin{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-linkedin:before{content:'\f119'}.vjs-icon-twitter{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-twitter:before{content:'\f11a'}.vjs-icon-tumblr{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-tumblr:before{content:'\f11b'}.vjs-icon-pinterest{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pinterest:before{content:'\f11c'}.vjs-icon-audio-description{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-audio-description:before{content:'\f11d'}.video-js{display:block;vertical-align:top;box-sizing:border-box;color:#fff;background-color:#000;position:relative;padding:0;font-size:10px;line-height:1;font-weight:400;font-style:normal;font-family:Arial,Helvetica,sans-serif;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.video-js:-moz-full-screen{position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.video-js *,.video-js :before,.video-js :after{box-sizing:inherit}.video-js ul{font-family:inherit;font-size:inherit;line-height:inherit;list-style-position:outside;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.video-js.vjs-fluid,.video-js.vjs-16-9,.video-js.vjs-4-3{width:100%;max-width:100%;height:0}.video-js.vjs-16-9{padding-top:56.25%}.video-js.vjs-4-3{padding-top:75%}.video-js.vjs-fill{width:100%;height:100%}.video-js .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}body.vjs-full-window{padding:0;margin:0;height:100%;overflow-y:auto}.vjs-full-window .video-js.vjs-fullscreen{position:fixed;overflow:hidden;z-index:1000;left:0;top:0;bottom:0;right:0}.video-js.vjs-fullscreen{width:100%!important;height:100%!important;padding-top:0!important}.video-js.vjs-fullscreen.vjs-user-inactive{cursor:none}.vjs-hidden{display:none!important}.video-js .vjs-offscreen{height:1px;left:-9999px;position:absolute;top:0;width:1px}.vjs-lock-showing{display:block!important;opacity:1;visibility:visible}.vjs-no-js{padding:20px;color:#fff;background-color:#000;font-size:18px;font-family:Arial,Helvetica,sans-serif;text-align:center;width:300px;height:150px;margin:0 auto}.vjs-no-js a,.vjs-no-js a:visited{color:#66A8CC}.video-js .vjs-big-play-button{font-size:3em;line-height:1.5em;height:1.5em;width:3em;display:block;position:absolute;top:10px;left:10px;padding:0;cursor:pointer;opacity:1;border:.06666em solid #fff;background-color:#2B333F;background-color:rgba(43,51,63,.7);-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.vjs-big-play-centered .vjs-big-play-button{top:50%;left:50%;margin-top:-.75em;margin-left:-1.5em}.video-js:hover .vjs-big-play-button,.video-js .vjs-big-play-button:focus{outline:0;border-color:#fff;background-color:#73859f;background-color:rgba(115,133,159,.5);-webkit-transition:all 0s;-moz-transition:all 0s;-o-transition:all 0s;transition:all 0s}.vjs-controls-disabled .vjs-big-play-button,.vjs-has-started .vjs-big-play-button,.vjs-using-native-controls .vjs-big-play-button,.vjs-error .vjs-big-play-button{display:none}.video-js button{background:0 0;border:0;color:inherit;display:inline-block;overflow:visible;font-size:inherit;line-height:inherit;text-transform:none;text-decoration:none;transition:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.video-js .vjs-control.vjs-close-button{cursor:pointer;height:3em;position:absolute;right:0;top:.5em;z-index:2}.vjs-menu-button{cursor:pointer}.vjs-menu .vjs-menu-content{display:block;padding:0;margin:0;overflow:auto}.vjs-scrubbing .vjs-menu-button:hover .vjs-menu{display:none}.vjs-menu li{list-style:none;margin:0;padding:.2em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase}.vjs-menu li:focus,.vjs-menu li:hover{outline:0;background-color:#73859f;background-color:rgba(115,133,159,.5)}.vjs-menu li.vjs-selected,.vjs-menu li.vjs-selected:focus,.vjs-menu li.vjs-selected:hover{background-color:#fff;color:#2B333F}.vjs-menu li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.vjs-menu-button-popup .vjs-menu{display:none;position:absolute;bottom:0;width:10em;left:-3em;height:0;margin-bottom:1.5em;border-top-color:rgba(43,51,63,.7)}.vjs-menu-button-popup .vjs-menu .vjs-menu-content{background-color:#2B333F;background-color:rgba(43,51,63,.7);position:absolute;width:100%;bottom:1.5em;max-height:15em}.vjs-menu-button-popup:hover .vjs-menu,.vjs-menu-button-popup .vjs-menu.vjs-lock-showing{display:block}.video-js .vjs-menu-button-inline{-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s;overflow:hidden}.video-js .vjs-menu-button-inline:before{width:2.222222222em}.video-js .vjs-menu-button-inline:hover,.video-js .vjs-menu-button-inline:focus,.video-js .vjs-menu-button-inline.vjs-slider-active,.video-js.vjs-no-flex .vjs-menu-button-inline{width:12em}.video-js .vjs-menu-button-inline.vjs-slider-active{-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.vjs-menu-button-inline .vjs-menu{opacity:0;height:100%;width:auto;position:absolute;left:4em;top:0;padding:0;margin:0;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.vjs-menu-button-inline:hover .vjs-menu,.vjs-menu-button-inline:focus .vjs-menu,.vjs-menu-button-inline.vjs-slider-active .vjs-menu{display:block;opacity:1}.vjs-no-flex .vjs-menu-button-inline .vjs-menu{display:block;opacity:1;position:relative;width:auto}.vjs-no-flex .vjs-menu-button-inline:hover .vjs-menu,.vjs-no-flex .vjs-menu-button-inline:focus .vjs-menu,.vjs-no-flex .vjs-menu-button-inline.vjs-slider-active .vjs-menu{width:auto}.vjs-menu-button-inline .vjs-menu-content{width:auto;height:100%;margin:0;overflow:hidden}.video-js .vjs-control-bar{display:none;width:100%;position:absolute;bottom:0;left:0;right:0;height:3em;background-color:#2B333F;background-color:rgba(43,51,63,.7)}.vjs-has-started .vjs-control-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;visibility:visible;opacity:1;-webkit-transition:visibility .1s,opacity .1s;-moz-transition:visibility .1s,opacity .1s;-o-transition:visibility .1s,opacity .1s;transition:visibility .1s,opacity .1s}.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{visibility:hidden;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.vjs-controls-disabled .vjs-control-bar,.vjs-using-native-controls .vjs-control-bar,.vjs-error .vjs-control-bar{display:none!important}.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{opacity:1;visibility:visible}@media �screen{.vjs-user-inactive.vjs-playing .vjs-control-bar :before{content:""}}.vjs-has-started.vjs-no-flex .vjs-control-bar{display:table}.video-js .vjs-control{outline:0;position:relative;text-align:center;margin:0;padding:0;height:100%;width:4em;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none}.video-js .vjs-control:before{font-size:1.8em;line-height:1.67}.video-js .vjs-control:focus:before,.video-js .vjs-control:hover:before,.video-js .vjs-control:focus{text-shadow:0 0 1em #fff}.video-js .vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.vjs-no-flex .vjs-control{display:table-cell;vertical-align:middle}.video-js .vjs-custom-control-spacer{display:none}.video-js .vjs-progress-control{-webkit-box-flex:auto;-moz-box-flex:auto;-webkit-flex:auto;-ms-flex:auto;flex:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.vjs-live .vjs-progress-control{display:none}.video-js .vjs-progress-holder{-webkit-box-flex:auto;-moz-box-flex:auto;-webkit-flex:auto;-ms-flex:auto;flex:auto;-webkit-transition:all .2s;-moz-transition:all .2s;-o-transition:all .2s;transition:all .2s;height:.3em}.video-js .vjs-progress-control:hover .vjs-progress-holder{font-size:1.666666666666666666em}.video-js .vjs-progress-control:hover .vjs-mouse-display:after,.video-js .vjs-progress-control:hover .vjs-play-progress:after{display:block;font-size:.6em}.video-js .vjs-progress-holder .vjs-play-progress,.video-js .vjs-progress-holder .vjs-load-progress,.video-js .vjs-progress-holder .vjs-load-progress div{position:absolute;display:block;height:.3em;margin:0;padding:0;width:0;left:0;top:0}.video-js .vjs-mouse-display:before{display:none}.video-js .vjs-play-progress{background-color:#fff}.video-js .vjs-play-progress:before{position:absolute;top:-.333333333333333em;right:-.5em;font-size:.9em}.video-js .vjs-mouse-display:after,.video-js .vjs-play-progress:after{display:none;position:absolute;top:-2.4em;right:-1.5em;font-size:.9em;color:#000;content:attr(data-current-time);padding:.2em .5em;background-color:#fff;background-color:rgba(255,255,255,.8);-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em}.video-js .vjs-play-progress:before,.video-js .vjs-play-progress:after{z-index:1}.video-js .vjs-load-progress{background:#bfc7d3;background:rgba(115,133,159,.5)}.video-js .vjs-load-progress div{background:#fff;background:rgba(115,133,159,.75)}.video-js.vjs-no-flex .vjs-progress-control{width:auto}.video-js .vjs-progress-control .vjs-mouse-display{display:none;position:absolute;width:1px;height:100%;background-color:#000;z-index:1}.vjs-no-flex .vjs-progress-control .vjs-mouse-display{z-index:0}.video-js .vjs-progress-control:hover .vjs-mouse-display{display:block}.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display,.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display:after{visibility:hidden;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.video-js.vjs-user-inactive.vjs-no-flex .vjs-progress-control .vjs-mouse-display,.video-js.vjs-user-inactive.vjs-no-flex .vjs-progress-control .vjs-mouse-display:after{display:none}.video-js .vjs-progress-control .vjs-mouse-display:after{color:#fff;background-color:#000;background-color:rgba(0,0,0,.8)}.video-js .vjs-slider{outline:0;position:relative;cursor:pointer;padding:0;margin:0 .45em;background-color:#73859f;background-color:rgba(115,133,159,.5)}.video-js .vjs-slider:focus{text-shadow:0 0 1em #fff;-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.video-js .vjs-mute-control,.video-js .vjs-volume-menu-button{cursor:pointer;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none}.video-js .vjs-volume-control{width:5em;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.video-js .vjs-volume-bar{margin:1.35em .45em}.vjs-volume-bar.vjs-slider-horizontal{width:5em;height:.3em}.vjs-volume-bar.vjs-slider-vertical{width:.3em;height:5em;margin:1.35em auto}.video-js .vjs-volume-level{position:absolute;bottom:0;left:0;background-color:#fff}.video-js .vjs-volume-level:before{position:absolute;font-size:.9em}.vjs-slider-vertical .vjs-volume-level{width:.3em}.vjs-slider-vertical .vjs-volume-level:before{top:-.5em;left:-.3em}.vjs-slider-horizontal .vjs-volume-level{height:.3em}.vjs-slider-horizontal .vjs-volume-level:before{top:-.3em;right:-.5em}.vjs-volume-bar.vjs-slider-vertical .vjs-volume-level{height:100%}.vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level{width:100%}.vjs-menu-button-popup.vjs-volume-menu-button .vjs-menu{display:block;width:0;height:0;border-top-color:transparent}.vjs-menu-button-popup.vjs-volume-menu-button-vertical .vjs-menu{left:.5em;height:8em}.vjs-menu-button-popup.vjs-volume-menu-button-horizontal .vjs-menu{left:-2em}.vjs-menu-button-popup.vjs-volume-menu-button .vjs-menu-content{height:0;width:0;overflow-x:hidden;overflow-y:hidden}.vjs-volume-menu-button-vertical:hover .vjs-menu-content,.vjs-volume-menu-button-vertical .vjs-lock-showing .vjs-menu-content{height:8em;width:2.9em}.vjs-volume-menu-button-horizontal:hover .vjs-menu-content,.vjs-volume-menu-button-horizontal .vjs-lock-showing .vjs-menu-content{height:2.9em;width:8em}.vjs-volume-menu-button.vjs-menu-button-inline .vjs-menu-content{background-color:transparent!important}.vjs-poster{display:inline-block;vertical-align:middle;background-repeat:no-repeat;background-position:50% 50%;background-size:contain;cursor:pointer;margin:0;padding:0;position:absolute;top:0;right:0;bottom:0;left:0;height:100%}.vjs-poster img{display:block;vertical-align:middle;margin:0 auto;max-height:100%;padding:0;width:100%}.vjs-has-started .vjs-poster{display:none}.vjs-audio.vjs-has-started .vjs-poster{display:block}.vjs-controls-disabled .vjs-poster{display:none}.vjs-using-native-controls .vjs-poster{display:none}.video-js .vjs-live-control{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:flex-start;-webkit-align-items:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-flex:auto;-moz-box-flex:auto;-webkit-flex:auto;-ms-flex:auto;flex:auto;font-size:1em;line-height:3em}.vjs-no-flex .vjs-live-control{display:table-cell;width:auto;text-align:left}.video-js .vjs-time-control{-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none;font-size:1em;line-height:3em}.vjs-live .vjs-time-control{display:none}.video-js .vjs-current-time,.vjs-no-flex .vjs-current-time{display:none}.video-js .vjs-duration,.vjs-no-flex .vjs-duration{display:none}.vjs-time-divider{display:none;line-height:3em}.vjs-live .vjs-time-divider{display:none}.video-js .vjs-play-control{cursor:pointer;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none}.vjs-text-track-display{position:absolute;bottom:3em;left:0;right:0;top:0;pointer-events:none}.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display{bottom:1em}.video-js .vjs-text-track{font-size:1.4em;text-align:center;margin-bottom:.1em;background-color:#000;background-color:rgba(0,0,0,.5)}.vjs-subtitles{color:#fff}.vjs-captions{color:#fc6}.vjs-tt-cue{display:block}video::-webkit-media-text-track-display{-moz-transform:translateY(-3em);-ms-transform:translateY(-3em);-o-transform:translateY(-3em);-webkit-transform:translateY(-3em);transform:translateY(-3em)}.video-js.vjs-user-inactive.vjs-playing video::-webkit-media-text-track-display{-moz-transform:translateY(-1.5em);-ms-transform:translateY(-1.5em);-o-transform:translateY(-1.5em);-webkit-transform:translateY(-1.5em);transform:translateY(-1.5em)}.video-js .vjs-fullscreen-control{width:3.8em;cursor:pointer;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none}.vjs-playback-rate .vjs-playback-rate-value{font-size:1.5em;line-height:2;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center}.vjs-playback-rate .vjs-menu{width:4em;left:0}.vjs-error .vjs-error-display .vjs-modal-dialog-content{font-size:1.4em;text-align:center}.vjs-error .vjs-error-display:before{color:#fff;content:'X';font-family:Arial,Helvetica,sans-serif;font-size:4em;left:0;line-height:1;margin-top:-.5em;position:absolute;text-shadow:.05em .05em .1em #000;text-align:center;top:50%;vertical-align:middle;width:100%}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;margin:-25px 0 0 -25px;opacity:.85;text-align:left;border:6px solid rgba(43,51,63,.7);box-sizing:border-box;background-clip:padding-box;width:50px;height:50px;border-radius:25px}.vjs-seeking .vjs-loading-spinner,.vjs-waiting .vjs-loading-spinner{display:block}.vjs-loading-spinner:before,.vjs-loading-spinner:after{content:"";position:absolute;margin:-6px;box-sizing:inherit;width:inherit;height:inherit;border-radius:inherit;opacity:1;border:inherit;border-color:transparent;border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:before,.vjs-seeking .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:after{-webkit-animation:vjs-spinner-spin 1.1s cubic-bezier(0.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite;animation:vjs-spinner-spin 1.1s cubic-bezier(0.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite}.vjs-seeking .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:before{border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:after{border-top-color:#fff;-webkit-animation-delay:.44s;animation-delay:.44s}@keyframes vjs-spinner-spin{100%{transform:rotate(360deg)}}@-webkit-keyframes vjs-spinner-spin{100%{-webkit-transform:rotate(360deg)}}@keyframes vjs-spinner-fade{0%{border-top-color:#73859f}20%{border-top-color:#73859f}35%{border-top-color:#fff}60%{border-top-color:#73859f}100%{border-top-color:#73859f}}@-webkit-keyframes vjs-spinner-fade{0%{border-top-color:#73859f}20%{border-top-color:#73859f}35%{border-top-color:#fff}60%{border-top-color:#73859f}100%{border-top-color:#73859f}}.vjs-chapters-button .vjs-menu{left:-10em;width:0}.vjs-chapters-button .vjs-menu ul{width:24em}.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-custom-control-spacer{-webkit-box-flex:auto;-moz-box-flex:auto;-webkit-flex:auto;-ms-flex:auto;flex:auto}.video-js.vjs-layout-tiny:not(.vjs-fullscreen).vjs-no-flex .vjs-custom-control-spacer{width:auto}.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-current-time,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-time-divider,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-progress-control,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-duration,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-remaining-time,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-playback-rate,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-mute-control,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-volume-control,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-chapters-button,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-subtitles-button,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-volume-menu-button{display:none}.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-current-time,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-time-divider,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-duration,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-remaining-time,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-playback-rate,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-mute-control,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-volume-control,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-chapters-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-subtitles-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-volume-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-fullscreen-control{display:none}.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-current-time,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-time-divider,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-duration,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-remaining-time,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-playback-rate,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-mute-control,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-volume-control,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-chapters-button,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-subtitles-button{display:none}.vjs-caption-settings{position:relative;top:1em;background-color:#2B333F;background-color:rgba(43,51,63,.75);color:#fff;margin:0 auto;padding:.5em;height:15em;font-size:12px;width:40em}.vjs-caption-settings .vjs-tracksettings{top:0;bottom:2em;left:0;right:0;position:absolute;overflow:auto}.vjs-caption-settings .vjs-tracksettings-colors,.vjs-caption-settings .vjs-tracksettings-font{float:left}.vjs-caption-settings .vjs-tracksettings-colors:after,.vjs-caption-settings .vjs-tracksettings-font:after,.vjs-caption-settings .vjs-tracksettings-controls:after{clear:both}.vjs-caption-settings .vjs-tracksettings-controls{position:absolute;bottom:1em;right:1em}.vjs-caption-settings .vjs-tracksetting{margin:5px;padding:3px;min-height:40px}.vjs-caption-settings .vjs-tracksetting label{display:block;width:100px;margin-bottom:5px}.vjs-caption-settings .vjs-tracksetting span{display:inline;margin-left:5px}.vjs-caption-settings .vjs-tracksetting>div{margin-bottom:5px;min-height:20px}.vjs-caption-settings .vjs-tracksetting>div:last-child{margin-bottom:0;padding-bottom:0;min-height:0}.vjs-caption-settings label>input{margin-right:10px}.vjs-caption-settings input[type=button]{width:40px;height:40px}.video-js .vjs-modal-dialog{background:rgba(0,0,0,.8);background:-webkit-linear-gradient(-90deg,rgba(0,0,0,.8),rgba(255,255,255,0));background:linear-gradient(180deg,rgba(0,0,0,.8),rgba(255,255,255,0))}.vjs-modal-dialog .vjs-modal-dialog-content{font-size:1.2em;line-height:1.5;padding:20px 24px;z-index:1}
|
|
|
|
|
|
|
|
video-js/video-js.swf
CHANGED
Binary file
|
video-js/video-quality-selector.js
CHANGED
@@ -8,6 +8,8 @@
|
|
8 |
* <source data-res="480" src="..." />
|
9 |
* <source data-res="240" src="..." />
|
10 |
* </video>
|
|
|
|
|
11 |
*/
|
12 |
|
13 |
(function( _V_ ) {
|
@@ -35,13 +37,13 @@
|
|
35 |
/***********************************************************************************
|
36 |
* Setup our resolution menu items
|
37 |
***********************************************************************************/
|
38 |
-
_V_.ResolutionMenuItem = _V_.
|
39 |
|
40 |
// Call variable to prevent the resolution change from being called twice
|
41 |
call_count : 0,
|
42 |
|
43 |
/** @constructor */
|
44 |
-
|
45 |
|
46 |
var touchstart = false;
|
47 |
|
@@ -50,7 +52,7 @@
|
|
50 |
options.selected = ( options.res.toString() === player.getCurrentRes().toString() );
|
51 |
|
52 |
// Call the parent constructor
|
53 |
-
_V_.MenuItem.call( this, player, options );
|
54 |
|
55 |
// Store the resolution as a property
|
56 |
this.resolution = options.res;
|
@@ -92,12 +94,12 @@
|
|
92 |
/***********************************************************************************
|
93 |
* Setup our resolution menu title item
|
94 |
***********************************************************************************/
|
95 |
-
_V_.ResolutionTitleMenuItem = _V_.
|
96 |
|
97 |
-
|
98 |
|
99 |
// Call the parent constructor
|
100 |
-
_V_.MenuItem.call( this, player, options );
|
101 |
|
102 |
// No click handler for the menu title
|
103 |
this.off( 'click' );
|
@@ -107,24 +109,26 @@
|
|
107 |
/***********************************************************************************
|
108 |
* Define our resolution selector button
|
109 |
***********************************************************************************/
|
110 |
-
_V_.ResolutionSelector = _V_.
|
111 |
|
112 |
/** @constructor */
|
113 |
-
|
114 |
|
115 |
// Add our list of available resolutions to the player object
|
116 |
player.availableRes = options.available_res;
|
117 |
|
118 |
// Call the parent constructor
|
119 |
-
_V_.MenuButton.call( this, player, options );
|
120 |
|
121 |
// Set the button text based on the option provided
|
122 |
-
this.el().firstChild.
|
123 |
}
|
124 |
});
|
125 |
|
126 |
// Set class for resolution selector button
|
127 |
-
_V_.ResolutionSelector.prototype.
|
|
|
|
|
128 |
|
129 |
// Create a menu item for each available resolution
|
130 |
_V_.ResolutionSelector.prototype.createItems = function() {
|
@@ -136,10 +140,10 @@
|
|
136 |
// Add the menu title item
|
137 |
items.push( new _V_.ResolutionTitleMenuItem( player, {
|
138 |
|
139 |
-
el : _V_.Component.prototype.createEl( 'li', {
|
140 |
|
141 |
className : 'vjs-menu-title vjs-res-menu-title',
|
142 |
-
innerHTML : 'Quality'
|
143 |
})
|
144 |
}));
|
145 |
|
@@ -182,13 +186,13 @@
|
|
182 |
* Setup variables, parse settings
|
183 |
*******************************************************************/
|
184 |
var player = this,
|
185 |
-
sources =
|
186 |
i = sources.length,
|
187 |
j,
|
188 |
found_type,
|
189 |
|
190 |
// Override default options with those provided
|
191 |
-
settings = _V_.
|
192 |
|
193 |
default_res : '', // (string) The resolution that should be selected by default ( '480' or '480,1080,240' )
|
194 |
force_types : false // (array) List of media types. If passed, we need to have source for each type in each resolution or that resolution will not be an option
|
@@ -282,6 +286,15 @@
|
|
282 |
* Add methods to player object
|
283 |
*******************************************************************/
|
284 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
285 |
// Helper function to get the current resolution
|
286 |
player.getCurrentRes = function() {
|
287 |
|
@@ -293,7 +306,7 @@
|
|
293 |
|
294 |
try {
|
295 |
|
296 |
-
return res =
|
297 |
|
298 |
} catch(e) {
|
299 |
|
@@ -319,28 +332,54 @@
|
|
319 |
// Make sure the loadedmetadata event will fire
|
320 |
if ( 'none' == video_el.preload ) { video_el.preload = 'metadata'; }
|
321 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
322 |
// Change the source and make sure we don't start the video over
|
323 |
-
player.src( player.availableRes[target_resolution] )
|
|
|
324 |
|
325 |
-
|
326 |
|
327 |
-
|
328 |
-
|
329 |
-
player.one( 'loadeddata', function() { player.currentTime( current_time ); } );
|
330 |
-
}
|
331 |
-
if ( current_time != 0 ) { player.addClass( 'vjs-has-started' ); } // If the video was paused, don't show the big play button
|
332 |
|
333 |
-
|
|
|
|
|
|
|
|
|
334 |
|
335 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
336 |
|
337 |
// Save the newly selected resolution in our player options property
|
338 |
player.currentRes = target_resolution;
|
339 |
|
340 |
// Make sure the button has been added to the control bar
|
341 |
-
if ( player.controlBar.resolutionSelector ) {
|
342 |
|
343 |
-
button_nodes = player.controlBar.resolutionSelector.el().firstChild.children;
|
344 |
button_node_count = button_nodes.length;
|
345 |
|
346 |
// Update the button text
|
@@ -371,12 +410,16 @@
|
|
371 |
|
372 |
// Add the resolution selector button
|
373 |
resolutionSelector = new _V_.ResolutionSelector( player, {
|
374 |
-
buttonText : ( current_res || 'Quality' ),
|
375 |
available_res : available_res
|
376 |
});
|
377 |
|
378 |
// Add the button to the control bar object and the DOM
|
379 |
-
|
|
|
|
|
|
|
|
|
380 |
});
|
381 |
|
382 |
})( videojs );
|
8 |
* <source data-res="480" src="..." />
|
9 |
* <source data-res="240" src="..." />
|
10 |
* </video>
|
11 |
+
*
|
12 |
+
* FIXME with hacks by User:TheDJ to make this video-js 5.0 compatible
|
13 |
*/
|
14 |
|
15 |
(function( _V_ ) {
|
37 |
/***********************************************************************************
|
38 |
* Setup our resolution menu items
|
39 |
***********************************************************************************/
|
40 |
+
_V_.ResolutionMenuItem = _V_.extend( _V_.getComponent( 'MenuItem' ), {
|
41 |
|
42 |
// Call variable to prevent the resolution change from being called twice
|
43 |
call_count : 0,
|
44 |
|
45 |
/** @constructor */
|
46 |
+
constructor : function( player, options ){
|
47 |
|
48 |
var touchstart = false;
|
49 |
|
52 |
options.selected = ( options.res.toString() === player.getCurrentRes().toString() );
|
53 |
|
54 |
// Call the parent constructor
|
55 |
+
_V_.getComponent( 'MenuItem' ).call( this, player, options );
|
56 |
|
57 |
// Store the resolution as a property
|
58 |
this.resolution = options.res;
|
94 |
/***********************************************************************************
|
95 |
* Setup our resolution menu title item
|
96 |
***********************************************************************************/
|
97 |
+
_V_.ResolutionTitleMenuItem = _V_.extend( _V_.getComponent( 'MenuItem' ), {
|
98 |
|
99 |
+
constructor : function( player, options ) {
|
100 |
|
101 |
// Call the parent constructor
|
102 |
+
_V_.getComponent( 'MenuItem' ).call( this, player, options );
|
103 |
|
104 |
// No click handler for the menu title
|
105 |
this.off( 'click' );
|
109 |
/***********************************************************************************
|
110 |
* Define our resolution selector button
|
111 |
***********************************************************************************/
|
112 |
+
_V_.ResolutionSelector = _V_.extend( _V_.getComponent( 'MenuButton' ), {
|
113 |
|
114 |
/** @constructor */
|
115 |
+
constructor : function( player, options ) {
|
116 |
|
117 |
// Add our list of available resolutions to the player object
|
118 |
player.availableRes = options.available_res;
|
119 |
|
120 |
// Call the parent constructor
|
121 |
+
_V_.getComponent( 'MenuButton' ).call( this, player, options );
|
122 |
|
123 |
// Set the button text based on the option provided
|
124 |
+
this.el().firstChild.innerHTML = options.buttonText;
|
125 |
}
|
126 |
});
|
127 |
|
128 |
// Set class for resolution selector button
|
129 |
+
_V_.ResolutionSelector.prototype.buildCSSClass = function buildCSSClass() {
|
130 |
+
return 'vjs-res-button ' + _V_.getComponent( 'MenuButton' ).prototype.buildCSSClass.call( this );
|
131 |
+
};
|
132 |
|
133 |
// Create a menu item for each available resolution
|
134 |
_V_.ResolutionSelector.prototype.createItems = function() {
|
140 |
// Add the menu title item
|
141 |
items.push( new _V_.ResolutionTitleMenuItem( player, {
|
142 |
|
143 |
+
el : _V_.getComponent( 'Component' ).prototype.createEl( 'li', {
|
144 |
|
145 |
className : 'vjs-menu-title vjs-res-menu-title',
|
146 |
+
innerHTML : player.localize( 'Quality' )
|
147 |
})
|
148 |
}));
|
149 |
|
186 |
* Setup variables, parse settings
|
187 |
*******************************************************************/
|
188 |
var player = this,
|
189 |
+
sources = this.options_.sources,
|
190 |
i = sources.length,
|
191 |
j,
|
192 |
found_type,
|
193 |
|
194 |
// Override default options with those provided
|
195 |
+
settings = _V_.mergeOptions({
|
196 |
|
197 |
default_res : '', // (string) The resolution that should be selected by default ( '480' or '480,1080,240' )
|
198 |
force_types : false // (array) List of media types. If passed, we need to have source for each type in each resolution or that resolution will not be an option
|
286 |
* Add methods to player object
|
287 |
*******************************************************************/
|
288 |
|
289 |
+
// Make sure we have player.localize() if it's not defined by Video.js
|
290 |
+
if ( typeof player.localize !== 'function' ) {
|
291 |
+
|
292 |
+
player.localize = function( string ) {
|
293 |
+
|
294 |
+
return string;
|
295 |
+
};
|
296 |
+
}
|
297 |
+
|
298 |
// Helper function to get the current resolution
|
299 |
player.getCurrentRes = function() {
|
300 |
|
306 |
|
307 |
try {
|
308 |
|
309 |
+
return res = sources[0]['data-res'];
|
310 |
|
311 |
} catch(e) {
|
312 |
|
332 |
// Make sure the loadedmetadata event will fire
|
333 |
if ( 'none' == video_el.preload ) { video_el.preload = 'metadata'; }
|
334 |
|
335 |
+
if ( current_time != 0 ) {
|
336 |
+
|
337 |
+
player.pause();
|
338 |
+
|
339 |
+
var canvas = document.createElement("canvas");
|
340 |
+
canvas.className = 'kgvid_temp_thumb';
|
341 |
+
canvas.width = player.width();
|
342 |
+
canvas.height = player.height();
|
343 |
+
var context = canvas.getContext('2d');
|
344 |
+
context.fillRect(0, 0, player.width(), player.height());
|
345 |
+
context.drawImage(video_el, 0, 0, player.width(), player.height());
|
346 |
+
jQuery(video_el).parent().append(canvas);
|
347 |
+
|
348 |
+
player.bigPlayButton.hide();
|
349 |
+
|
350 |
+
}
|
351 |
+
|
352 |
// Change the source and make sure we don't start the video over
|
353 |
+
player.src( player.availableRes[target_resolution] )
|
354 |
+
.one( 'loadedmetadata', function() {
|
355 |
|
356 |
+
if ( current_time != 0 ) {
|
357 |
|
358 |
+
player.currentTime( current_time );
|
359 |
+
player.pause();
|
|
|
|
|
|
|
360 |
|
361 |
+
// If the video was paused, don't show the poster image again
|
362 |
+
player.addClass( 'vjs-has-started' );
|
363 |
+
|
364 |
+
if ( ! is_paused ) { player.play(); }
|
365 |
+
}
|
366 |
|
367 |
+
})
|
368 |
+
.one( 'seeked', function() {
|
369 |
+
if ( current_time != 0 ) {
|
370 |
+
|
371 |
+
jQuery(canvas).remove();
|
372 |
+
|
373 |
+
}
|
374 |
+
});
|
375 |
|
376 |
// Save the newly selected resolution in our player options property
|
377 |
player.currentRes = target_resolution;
|
378 |
|
379 |
// Make sure the button has been added to the control bar
|
380 |
+
if ( player.getChild( 'controlBar' ).getChild( 'resolutionSelector' ) ) {
|
381 |
|
382 |
+
button_nodes = player.getChild( 'controlBar' ).getChild( 'resolutionSelector' ).el().firstChild.children;
|
383 |
button_node_count = button_nodes.length;
|
384 |
|
385 |
// Update the button text
|
410 |
|
411 |
// Add the resolution selector button
|
412 |
resolutionSelector = new _V_.ResolutionSelector( player, {
|
413 |
+
buttonText : player.localize( current_res || 'Quality' ),
|
414 |
available_res : available_res
|
415 |
});
|
416 |
|
417 |
// Add the button to the control bar object and the DOM
|
418 |
+
this.on( 'ready' , function() {
|
419 |
+
player.controlBar.addChild( resolutionSelector );
|
420 |
+
|
421 |
+
player.controlBar.el().insertBefore(jQuery(player.controlBar.el()).find('.vjs-res-button')[0], player.controlBar.customControlSpacer.el());
|
422 |
+
} );
|
423 |
});
|
424 |
|
425 |
})( videojs );
|
video-js/video.js
CHANGED
@@ -1,203 +1,25 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
t.N=function(a,c,d){function e(){t.n(a,c,e);d.apply(this,arguments)}if(t.i.isArray(c))return v(t.N,a,c,d);e.s=d.s=d.s||t.s++;t.b(a,c,e)};function v(a,c,d,e){t.xc.forEach(d,function(d){a(c,d,e)})}var w=Object.prototype.hasOwnProperty;t.f=function(a,c){var d;c=c||{};d=document.createElement(a||"div");t.i.da(c,function(a,c){-1!==a.indexOf("aria-")||"role"==a?d.setAttribute(a,c):d[a]=c});return d};t.wa=function(a){return a.charAt(0).toUpperCase()+a.slice(1)};t.i={};
|
13 |
-
t.i.create=Object.create||function(a){function c(){}c.prototype=a;return new c};t.i.da=function(a,c,d){for(var e in a)w.call(a,e)&&c.call(d||this,e,a[e])};t.i.D=function(a,c){if(!c)return a;for(var d in c)w.call(c,d)&&(a[d]=c[d]);return a};t.i.Sd=function(a,c){var d,e,g;a=t.i.copy(a);for(d in c)w.call(c,d)&&(e=a[d],g=c[d],a[d]=t.i.lb(e)&&t.i.lb(g)?t.i.Sd(e,g):c[d]);return a};t.i.copy=function(a){return t.i.D({},a)};
|
14 |
-
t.i.lb=function(a){return!!a&&"object"===typeof a&&"[object Object]"===a.toString()&&a.constructor===Object};t.i.isArray=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)};t.le=function(a){return a!==a};t.bind=function(a,c,d){function e(){return c.apply(a,arguments)}c.s||(c.s=t.s++);e.s=d?d+"_"+c.s:c.s;return e};t.va={};t.s=1;t.expando="vdata"+(new Date).getTime();t.getData=function(a){var c=a[t.expando];c||(c=a[t.expando]=t.s++);t.va[c]||(t.va[c]={});return t.va[c]};
|
15 |
-
t.Mc=function(a){a=a[t.expando];return!(!a||t.kb(t.va[a]))};t.cd=function(a){var c=a[t.expando];if(c){delete t.va[c];try{delete a[t.expando]}catch(d){a.removeAttribute?a.removeAttribute(t.expando):a[t.expando]=j}}};t.kb=function(a){for(var c in a)if(a[c]!==j)return l;return f};t.Qa=function(a,c){return-1!==(" "+a.className+" ").indexOf(" "+c+" ")};t.p=function(a,c){t.Qa(a,c)||(a.className=""===a.className?c:a.className+" "+c)};
|
16 |
-
t.r=function(a,c){var d,e;if(t.Qa(a,c)){d=a.className.split(" ");for(e=d.length-1;0<=e;e--)d[e]===c&&d.splice(e,1);a.className=d.join(" ")}};t.A=t.f("video");var x=document.createElement("track");x.Xb="captions";x.jd="en";x.label="English";t.A.appendChild(x);t.P=navigator.userAgent;t.Dd=/iPhone/i.test(t.P);t.Cd=/iPad/i.test(t.P);t.Ed=/iPod/i.test(t.P);t.Bd=t.Dd||t.Cd||t.Ed;var aa=t,y;var z=t.P.match(/OS (\d+)_/i);y=z&&z[1]?z[1]:b;aa.lf=y;t.Ad=/Android/i.test(t.P);var ba=t,B;
|
17 |
-
var C=t.P.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i),D,E;C?(D=C[1]&&parseFloat(C[1]),E=C[2]&&parseFloat(C[2]),B=D&&E?parseFloat(C[1]+"."+C[2]):D?D:j):B=j;ba.ic=B;t.Fd=t.Ad&&/webkit/i.test(t.P)&&2.3>t.ic;t.kc=/Firefox/i.test(t.P);t.mf=/Chrome/i.test(t.P);t.qa=/MSIE\s8\.0/.test(t.P);t.Gb=!!("ontouchstart"in window||window.yd&&document instanceof window.yd);t.xd="backgroundSize"in t.A.style;
|
18 |
-
t.ed=function(a,c){t.i.da(c,function(c,e){e===j||"undefined"===typeof e||e===l?a.removeAttribute(c):a.setAttribute(c,e===f?"":e)})};t.Pa=function(a){var c,d,e,g;c={};if(a&&a.attributes&&0<a.attributes.length){d=a.attributes;for(var h=d.length-1;0<=h;h--){e=d[h].name;g=d[h].value;if("boolean"===typeof a[e]||-1!==",autoplay,controls,loop,muted,default,".indexOf(","+e+","))g=g!==j?f:l;c[e]=g}}return c};
|
19 |
-
t.wf=function(a,c){var d="";document.defaultView&&document.defaultView.getComputedStyle?d=document.defaultView.getComputedStyle(a,"").getPropertyValue(c):a.currentStyle&&(d=a["client"+c.substr(0,1).toUpperCase()+c.substr(1)]+"px");return d};t.Vb=function(a,c){c.firstChild?c.insertBefore(a,c.firstChild):c.appendChild(a)};t.eb={};t.m=function(a){0===a.indexOf("#")&&(a=a.slice(1));return document.getElementById(a)};
|
20 |
-
t.Oa=function(a,c){c=c||a;var d=Math.floor(a%60),e=Math.floor(a/60%60),g=Math.floor(a/3600),h=Math.floor(c/60%60),k=Math.floor(c/3600);if(isNaN(a)||Infinity===a)g=e=d="-";g=0<g||0<k?g+":":"";return g+(((g||10<=h)&&10>e?"0"+e:e)+":")+(10>d?"0"+d:d)};t.Md=function(){document.body.focus();document.onselectstart=p(l)};t.bf=function(){document.onselectstart=p(f)};t.trim=function(a){return(a+"").replace(/^\s+|\s+$/g,"")};t.round=function(a,c){c||(c=0);return Math.round(a*Math.pow(10,c))/Math.pow(10,c)};
|
21 |
-
t.ya=function(a,c){return a===b&&c===b?{length:0,start:function(){throw Error("This TimeRanges object is empty");},end:function(){throw Error("This TimeRanges object is empty");}}:{length:1,start:function(){return a},end:function(){return c}}};t.Ne=function(a){try{var c=window.localStorage||l;c&&(c.volume=a)}catch(d){22==d.code||1014==d.code?t.log("LocalStorage Full (VideoJS)",d):18==d.code?t.log("LocalStorage not allowed (VideoJS)",d):t.log("LocalStorage Error (VideoJS)",d)}};
|
22 |
-
t.ae=function(a){a.match(/^https?:\/\//)||(a=t.f("div",{innerHTML:'<a href="'+a+'">x</a>'}).firstChild.href);return a};
|
23 |
-
t.Fe=function(a){var c,d,e,g;g="protocol hostname port pathname search hash host".split(" ");d=t.f("a",{href:a});if(e=""===d.host&&"file:"!==d.protocol)c=t.f("div"),c.innerHTML='<a href="'+a+'"></a>',d=c.firstChild,c.setAttribute("style","display:none; position:absolute;"),document.body.appendChild(c);a={};for(var h=0;h<g.length;h++)a[g[h]]=d[g[h]];"http:"===a.protocol&&(a.host=a.host.replace(/:80$/,""));"https:"===a.protocol&&(a.host=a.host.replace(/:443$/,""));e&&document.body.removeChild(c);return a};
|
24 |
-
function F(a,c){var d,e;d=Array.prototype.slice.call(c);e=m();e=window.console||{log:e,warn:e,error:e};a?d.unshift(a.toUpperCase()+":"):a="log";t.log.history.push(d);d.unshift("VIDEOJS:");if(e[a].apply)e[a].apply(e,d);else e[a](d.join(" "))}t.log=function(){F(j,arguments)};t.log.history=[];t.log.error=function(){F("error",arguments)};t.log.warn=function(){F("warn",arguments)};
|
25 |
-
t.Zd=function(a){var c,d;a.getBoundingClientRect&&a.parentNode&&(c=a.getBoundingClientRect());if(!c)return{left:0,top:0};a=document.documentElement;d=document.body;return{left:t.round(c.left+(window.pageXOffset||d.scrollLeft)-(a.clientLeft||d.clientLeft||0)),top:t.round(c.top+(window.pageYOffset||d.scrollTop)-(a.clientTop||d.clientTop||0))}};t.xc={};t.xc.forEach=function(a,c,d){if(t.i.isArray(a)&&c instanceof Function)for(var e=0,g=a.length;e<g;++e)c.call(d||t,a[e],e,a);return a};
|
26 |
-
t.gf=function(a,c){var d,e,g,h,k,q,r;"string"===typeof a&&(a={uri:a});videojs.$.Ba({method:"GET",timeout:45E3},a);c=c||m();q=function(){window.clearTimeout(k);c(j,e,e.response||e.responseText)};r=function(a){window.clearTimeout(k);if(!a||"string"===typeof a)a=Error(a);c(a,e)};d=window.XMLHttpRequest;"undefined"===typeof d&&(d=function(){try{return new window.ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(a){}try{return new window.ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(c){}try{return new window.ActiveXObject("Msxml2.XMLHTTP")}catch(d){}throw Error("This browser does not support XMLHttpRequest.");
|
27 |
-
});e=new d;e.uri=a.uri;d=t.Fe(a.uri);g=window.location;d.protocol+d.host!==g.protocol+g.host&&window.XDomainRequest&&!("withCredentials"in e)?(e=new window.XDomainRequest,e.onload=q,e.onerror=r,e.onprogress=m(),e.ontimeout=m()):(h="file:"==d.protocol||"file:"==g.protocol,e.onreadystatechange=function(){if(4===e.readyState){if(e.Ze)return r("timeout");200===e.status||h&&0===e.status?q():r()}},a.timeout&&(k=window.setTimeout(function(){4!==e.readyState&&(e.Ze=f,e.abort())},a.timeout)));try{e.open(a.method||
|
28 |
-
"GET",a.uri,f)}catch(u){r(u);return}a.withCredentials&&(e.withCredentials=f);a.responseType&&(e.responseType=a.responseType);try{e.send()}catch(A){r(A)}};t.$={};t.$.Ba=function(a,c){var d,e,g;a=t.i.copy(a);for(d in c)c.hasOwnProperty(d)&&(e=a[d],g=c[d],a[d]=t.i.lb(e)&&t.i.lb(g)?t.$.Ba(e,g):c[d]);return a};t.z=m();s=t.z.prototype;s.cb={};s.b=function(a,c){var d=this.addEventListener;this.addEventListener=Function.prototype;t.b(this,a,c);this.addEventListener=d};s.addEventListener=t.z.prototype.b;
|
29 |
-
s.n=function(a,c){t.n(this,a,c)};s.removeEventListener=t.z.prototype.n;s.N=function(a,c){t.N(this,a,c)};s.o=function(a){var c=a.type||a;"string"===typeof a&&(a={type:c});a=t.Qb(a);if(this.cb[c]&&this["on"+c])this["on"+c](a);t.o(this,a)};s.dispatchEvent=t.z.prototype.o;
|
30 |
-
t.a=t.Ha.extend({l:function(a,c,d){this.d=a;this.q=t.i.copy(this.q);c=this.options(c);this.Ra=c.id||c.el&&c.el.id;this.Ra||(this.Ra=(a.id&&a.id()||"no_player")+"_component_"+t.s++);this.ue=c.name||j;this.c=c.el||this.f();this.R=[];this.gb={};this.hb={};this.Oc();this.I(d);if(c.dd!==l){var e,g;this.k().reportUserActivity&&(e=t.bind(this.k(),this.k().reportUserActivity),this.b("touchstart",function(){e();this.clearInterval(g);g=this.setInterval(e,250)}),a=function(){e();this.clearInterval(g)},this.b("touchmove",
|
31 |
-
e),this.b("touchend",a),this.b("touchcancel",a))}}});s=t.a.prototype;s.dispose=function(){this.o({type:"dispose",bubbles:l});if(this.R)for(var a=this.R.length-1;0<=a;a--)this.R[a].dispose&&this.R[a].dispose();this.hb=this.gb=this.R=j;this.n();this.c.parentNode&&this.c.parentNode.removeChild(this.c);t.cd(this.c);this.c=j};s.d=f;s.k=n("d");s.options=function(a){return a===b?this.q:this.q=t.$.Ba(this.q,a)};s.f=function(a,c){return t.f(a,c)};
|
32 |
-
s.v=function(a){var c=this.d.language(),d=this.d.languages();return d&&d[c]&&d[c][a]?d[c][a]:a};s.m=n("c");s.xa=function(){return this.B||this.c};s.id=n("Ra");s.name=n("ue");s.children=n("R");s.be=function(a){return this.gb[a]};s.ea=function(a){return this.hb[a]};
|
33 |
-
s.ba=function(a,c){var d,e;"string"===typeof a?(e=a,c=c||{},d=c.componentClass||t.wa(e),c.name=e,d=new window.videojs[d](this.d||this,c)):d=a;this.R.push(d);"function"===typeof d.id&&(this.gb[d.id()]=d);(e=e||d.name&&d.name())&&(this.hb[e]=d);"function"===typeof d.el&&d.el()&&this.xa().appendChild(d.el());return d};
|
34 |
-
s.removeChild=function(a){"string"===typeof a&&(a=this.ea(a));if(a&&this.R){for(var c=l,d=this.R.length-1;0<=d;d--)if(this.R[d]===a){c=f;this.R.splice(d,1);break}c&&(this.gb[a.id()]=j,this.hb[a.name()]=j,(c=a.m())&&c.parentNode===this.xa()&&this.xa().removeChild(a.m()))}};
|
35 |
-
s.Oc=function(){var a,c,d,e,g,h;a=this;c=a.options();if(d=c.children)if(h=function(d,e){c[d]!==b&&(e=c[d]);e!==l&&(a[d]=a.ba(d,e))},t.i.isArray(d))for(var k=0;k<d.length;k++)e=d[k],"string"==typeof e?(g=e,e={}):g=e.name,h(g,e);else t.i.da(d,h)};s.V=p("");
|
36 |
-
s.b=function(a,c,d){var e,g,h;"string"===typeof a||t.i.isArray(a)?t.b(this.c,a,t.bind(this,c)):(e=t.bind(this,d),h=this,g=function(){h.n(a,c,e)},g.s=e.s,this.b("dispose",g),d=function(){h.n("dispose",g)},d.s=e.s,a.nodeName?(t.b(a,c,e),t.b(a,"dispose",d)):"function"===typeof a.b&&(a.b(c,e),a.b("dispose",d)));return this};
|
37 |
-
s.n=function(a,c,d){!a||"string"===typeof a||t.i.isArray(a)?t.n(this.c,a,c):(d=t.bind(this,d),this.n("dispose",d),a.nodeName?(t.n(a,c,d),t.n(a,"dispose",d)):(a.n(c,d),a.n("dispose",d)));return this};s.N=function(a,c,d){var e,g,h;"string"===typeof a||t.i.isArray(a)?t.N(this.c,a,t.bind(this,c)):(e=t.bind(this,d),g=this,h=function(){g.n(a,c,h);e.apply(this,arguments)},h.s=e.s,this.b(a,c,h));return this};s.o=function(a){t.o(this.c,a);return this};
|
38 |
-
s.I=function(a){a&&(this.za?a.call(this):(this.pb===b&&(this.pb=[]),this.pb.push(a)));return this};s.Xa=function(){this.za=f;var a=this.pb;if(a&&0<a.length){for(var c=0,d=a.length;c<d;c++)a[c].call(this);this.pb=[];this.o("ready")}};s.Qa=function(a){return t.Qa(this.c,a)};s.p=function(a){t.p(this.c,a);return this};s.r=function(a){t.r(this.c,a);return this};s.show=function(){this.r("vjs-hidden");return this};s.Y=function(){this.p("vjs-hidden");return this};function G(a){a.r("vjs-lock-showing")}
|
39 |
-
s.width=function(a,c){return ca(this,"width",a,c)};s.height=function(a,c){return ca(this,"height",a,c)};s.Ud=function(a,c){return this.width(a,f).height(c)};function ca(a,c,d,e){if(d!==b){if(d===j||t.le(d))d=0;a.c.style[c]=-1!==(""+d).indexOf("%")||-1!==(""+d).indexOf("px")?d:"auto"===d?"":d+"px";e||a.o("resize");return a}if(!a.c)return 0;d=a.c.style[c];e=d.indexOf("px");return-1!==e?parseInt(d.slice(0,e),10):parseInt(a.c["offset"+t.wa(c)],10)}
|
40 |
-
function da(a){var c,d,e,g,h,k,q,r;c=0;d=j;a.b("touchstart",function(a){1===a.touches.length&&(d=t.i.copy(a.touches[0]),c=(new Date).getTime(),g=f)});a.b("touchmove",function(a){1<a.touches.length?g=l:d&&(k=a.touches[0].pageX-d.pageX,q=a.touches[0].pageY-d.pageY,r=Math.sqrt(k*k+q*q),10<r&&(g=l))});h=function(){g=l};a.b("touchleave",h);a.b("touchcancel",h);a.b("touchend",function(a){d=j;g===f&&(e=(new Date).getTime()-c,200>e&&(a.preventDefault(),this.o("tap")))})}
|
41 |
-
s.setTimeout=function(a,c){function d(){this.clearTimeout(e)}a=t.bind(this,a);var e=setTimeout(a,c);d.s="vjs-timeout-"+e;this.b("dispose",d);return e};s.clearTimeout=function(a){function c(){}clearTimeout(a);c.s="vjs-timeout-"+a;this.n("dispose",c);return a};s.setInterval=function(a,c){function d(){this.clearInterval(e)}a=t.bind(this,a);var e=setInterval(a,c);d.s="vjs-interval-"+e;this.b("dispose",d);return e};
|
42 |
-
s.clearInterval=function(a){function c(){}clearInterval(a);c.s="vjs-interval-"+a;this.n("dispose",c);return a};t.w=t.a.extend({l:function(a,c){t.a.call(this,a,c);da(this);this.b("tap",this.u);this.b("click",this.u);this.b("focus",this.nb);this.b("blur",this.mb)}});s=t.w.prototype;
|
43 |
-
s.f=function(a,c){var d;c=t.i.D({className:this.V(),role:"button","aria-live":"polite",tabIndex:0},c);d=t.a.prototype.f.call(this,a,c);c.innerHTML||(this.B=t.f("div",{className:"vjs-control-content"}),this.Lb=t.f("span",{className:"vjs-control-text",innerHTML:this.v(this.ua)||"Need Text"}),this.B.appendChild(this.Lb),d.appendChild(this.B));return d};s.V=function(){return"vjs-control "+t.a.prototype.V.call(this)};s.u=m();s.nb=function(){t.b(document,"keydown",t.bind(this,this.la))};
|
44 |
-
s.la=function(a){if(32==a.which||13==a.which)a.preventDefault(),this.u()};s.mb=function(){t.n(document,"keydown",t.bind(this,this.la))};t.U=t.a.extend({l:function(a,c){t.a.call(this,a,c);this.Ld=this.ea(this.q.barName);this.handle=this.ea(this.q.handleName);this.b("mousedown",this.ob);this.b("touchstart",this.ob);this.b("focus",this.nb);this.b("blur",this.mb);this.b("click",this.u);this.b(a,"controlsvisible",this.update);this.b(a,this.Yc,this.update)}});s=t.U.prototype;
|
45 |
-
s.f=function(a,c){c=c||{};c.className+=" vjs-slider";c=t.i.D({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},c);return t.a.prototype.f.call(this,a,c)};s.ob=function(a){a.preventDefault();t.Md();this.p("vjs-sliding");this.b(document,"mousemove",this.ma);this.b(document,"mouseup",this.Ca);this.b(document,"touchmove",this.ma);this.b(document,"touchend",this.Ca);this.ma(a)};s.ma=m();
|
46 |
-
s.Ca=function(){t.bf();this.r("vjs-sliding");this.n(document,"mousemove",this.ma);this.n(document,"mouseup",this.Ca);this.n(document,"touchmove",this.ma);this.n(document,"touchend",this.Ca);this.update()};s.update=function(){if(this.c){var a,c=this.Tb(),d=this.handle,e=this.Ld;if("number"!==typeof c||c!==c||0>c||Infinity===c)c=0;a=c;if(d){a=this.c.offsetWidth;var g=d.m().offsetWidth;a=g?g/a:0;c*=1-a;a=c+a/2;d.m().style.left=t.round(100*c,2)+"%"}e&&(e.m().style.width=t.round(100*a,2)+"%")}};
|
47 |
-
function ea(a,c){var d,e,g,h;d=a.c;e=t.Zd(d);h=g=d.offsetWidth;d=a.handle;if(a.options().vertical)return h=e.top,e=c.changedTouches?c.changedTouches[0].pageY:c.pageY,d&&(d=d.m().offsetHeight,h+=d/2,g-=d),Math.max(0,Math.min(1,(h-e+g)/g));g=e.left;e=c.changedTouches?c.changedTouches[0].pageX:c.pageX;d&&(d=d.m().offsetWidth,g+=d/2,h-=d);return Math.max(0,Math.min(1,(e-g)/h))}s.nb=function(){this.b(document,"keydown",this.la)};
|
48 |
-
s.la=function(a){if(37==a.which||40==a.which)a.preventDefault(),this.kd();else if(38==a.which||39==a.which)a.preventDefault(),this.ld()};s.mb=function(){this.n(document,"keydown",this.la)};s.u=function(a){a.stopImmediatePropagation();a.preventDefault()};t.ha=t.a.extend();t.ha.prototype.defaultValue=0;t.ha.prototype.f=function(a,c){c=c||{};c.className+=" vjs-slider-handle";c=t.i.D({innerHTML:'<span class="vjs-control-text">'+this.defaultValue+"</span>"},c);return t.a.prototype.f.call(this,"div",c)};
|
49 |
-
t.ra=t.a.extend();function fa(a,c){a.ba(c);c.b("click",t.bind(a,function(){G(this)}))}t.ra.prototype.f=function(){var a=this.options().Dc||"ul";this.B=t.f(a,{className:"vjs-menu-content"});a=t.a.prototype.f.call(this,"div",{append:this.B,className:"vjs-menu"});a.appendChild(this.B);t.b(a,"click",function(a){a.preventDefault();a.stopImmediatePropagation()});return a};t.M=t.w.extend({l:function(a,c){t.w.call(this,a,c);this.selected(c.selected)}});
|
50 |
-
t.M.prototype.f=function(a,c){return t.w.prototype.f.call(this,"li",t.i.D({className:"vjs-menu-item",innerHTML:this.v(this.q.label)},c))};t.M.prototype.u=function(){this.selected(f)};t.M.prototype.selected=function(a){a?(this.p("vjs-selected"),this.c.setAttribute("aria-selected",f)):(this.r("vjs-selected"),this.c.setAttribute("aria-selected",l))};
|
51 |
-
t.O=t.w.extend({l:function(a,c){t.w.call(this,a,c);this.update();this.b("keydown",this.la);this.c.setAttribute("aria-haspopup",f);this.c.setAttribute("role","button")}});s=t.O.prototype;s.update=function(){var a=this.Ma();this.Aa&&this.removeChild(this.Aa);this.Aa=a;this.ba(a);this.H&&0===this.H.length?this.Y():this.H&&1<this.H.length&&this.show()};s.Ka=l;
|
52 |
-
s.Ma=function(){var a=new t.ra(this.d);this.options().title&&a.xa().appendChild(t.f("li",{className:"vjs-menu-title",innerHTML:t.wa(this.options().title),Xe:-1}));if(this.H=this.createItems())for(var c=0;c<this.H.length;c++)fa(a,this.H[c]);return a};s.La=m();s.V=function(){return this.className+" vjs-menu-button "+t.w.prototype.V.call(this)};s.nb=m();s.mb=m();s.u=function(){this.N("mouseout",t.bind(this,function(){G(this.Aa);this.c.blur()}));this.Ka?H(this):ga(this)};
|
53 |
-
s.la=function(a){32==a.which||13==a.which?(this.Ka?H(this):ga(this),a.preventDefault()):27==a.which&&(this.Ka&&H(this),a.preventDefault())};function ga(a){a.Ka=f;a.Aa.p("vjs-lock-showing");a.c.setAttribute("aria-pressed",f);a.H&&0<a.H.length&&a.H[0].m().focus()}function H(a){a.Ka=l;G(a.Aa);a.c.setAttribute("aria-pressed",l)}t.J=function(a){"number"===typeof a?this.code=a:"string"===typeof a?this.message=a:"object"===typeof a&&t.i.D(this,a);this.message||(this.message=t.J.Td[this.code]||"")};
|
54 |
-
t.J.prototype.code=0;t.J.prototype.message="";t.J.prototype.status=j;t.J.jb="MEDIA_ERR_CUSTOM MEDIA_ERR_ABORTED MEDIA_ERR_NETWORK MEDIA_ERR_DECODE MEDIA_ERR_SRC_NOT_SUPPORTED MEDIA_ERR_ENCRYPTED".split(" ");
|
55 |
-
t.J.Td={1:"You aborted the video playback",2:"A network error caused the video download to fail part-way.",3:"The video playback was aborted due to a corruption problem or because the video used features your browser did not support.",4:"The video could not be loaded, either because the server or network failed or because the format is not supported.",5:"The video is encrypted and we do not have the keys to decrypt it."};for(var I=0;I<t.J.jb.length;I++)t.J[t.J.jb[I]]=I,t.J.prototype[t.J.jb[I]]=I;
|
56 |
-
var J,ha,K,L;
|
57 |
-
J=["requestFullscreen exitFullscreen fullscreenElement fullscreenEnabled fullscreenchange fullscreenerror".split(" "),"webkitRequestFullscreen webkitExitFullscreen webkitFullscreenElement webkitFullscreenEnabled webkitfullscreenchange webkitfullscreenerror".split(" "),"webkitRequestFullScreen webkitCancelFullScreen webkitCurrentFullScreenElement webkitCancelFullScreen webkitfullscreenchange webkitfullscreenerror".split(" "),"mozRequestFullScreen mozCancelFullScreen mozFullScreenElement mozFullScreenEnabled mozfullscreenchange mozfullscreenerror".split(" "),"msRequestFullscreen msExitFullscreen msFullscreenElement msFullscreenEnabled MSFullscreenChange MSFullscreenError".split(" ")];
|
58 |
-
ha=J[0];for(L=0;L<J.length;L++)if(J[L][1]in document){K=J[L];break}if(K){t.eb.Sb={};for(L=0;L<K.length;L++)t.eb.Sb[ha[L]]=K[L]}
|
59 |
-
t.Player=t.a.extend({l:function(a,c,d){this.L=a;a.id=a.id||"vjs_video_"+t.s++;this.Ye=a&&t.Pa(a);c=t.i.D(ia(a),c);this.Tc=c.language||t.options.language;this.oe=c.languages||t.options.languages;this.K={};this.Zc=c.poster||"";this.Mb=!!c.controls;a.controls=l;c.dd=l;ja(this,"audio"===this.L.nodeName.toLowerCase());t.a.call(this,this,c,d);this.controls()?this.p("vjs-controls-enabled"):this.p("vjs-controls-disabled");ja(this)&&this.p("vjs-audio");t.Da[this.Ra]=this;c.plugins&&t.i.da(c.plugins,function(a,
|
60 |
-
c){this[a](c)},this);var e,g,h,k,q;e=t.bind(this,this.reportUserActivity);this.b("mousedown",function(){e();this.clearInterval(g);g=this.setInterval(e,250)});this.b("mousemove",function(a){if(a.screenX!=k||a.screenY!=q)k=a.screenX,q=a.screenY,e()});this.b("mouseup",function(){e();this.clearInterval(g)});this.b("keydown",e);this.b("keyup",e);this.setInterval(function(){if(this.Ga){this.Ga=l;this.userActive(f);this.clearTimeout(h);var a=this.options().inactivityTimeout;0<a&&(h=this.setTimeout(function(){this.Ga||
|
61 |
-
this.userActive(l)},a))}},250)}});s=t.Player.prototype;s.language=function(a){if(a===b)return this.Tc;this.Tc=a;return this};s.languages=n("oe");s.q=t.options;s.dispose=function(){this.o("dispose");this.n("dispose");t.Da[this.Ra]=j;this.L&&this.L.player&&(this.L.player=j);this.c&&this.c.player&&(this.c.player=j);this.h&&this.h.dispose();t.a.prototype.dispose.call(this)};
|
62 |
-
function ia(a){var c,d,e={sources:[],tracks:[]};c=t.Pa(a);d=c["data-setup"];d!==j&&t.i.D(c,t.JSON.parse(d||"{}"));t.i.D(e,c);if(a.hasChildNodes()){var g,h;a=a.childNodes;g=0;for(h=a.length;g<h;g++)c=a[g],d=c.nodeName.toLowerCase(),"source"===d?e.sources.push(t.Pa(c)):"track"===d&&e.tracks.push(t.Pa(c))}return e}
|
63 |
-
s.f=function(){var a=this.c=t.a.prototype.f.call(this,"div"),c=this.L,d;c.removeAttribute("width");c.removeAttribute("height");d=t.Pa(c);t.i.da(d,function(c){"class"==c?a.className=d[c]:a.setAttribute(c,d[c])});c.id+="_html5_api";c.className="vjs-tech";c.player=a.player=this;this.p("vjs-paused");this.width(this.q.width,f);this.height(this.q.height,f);c.he=c.networkState;c.parentNode&&c.parentNode.insertBefore(a,c);t.Vb(c,a);this.c=a;this.b("loadstart",this.ye);this.b("waiting",this.Ee);this.b(["canplay",
|
64 |
-
"canplaythrough","playing","ended"],this.De);this.b("seeking",this.Be);this.b("seeked",this.Ae);this.b("ended",this.ve);this.b("play",this.ac);this.b("firstplay",this.we);this.b("pause",this.$b);this.b("progress",this.ze);this.b("durationchange",this.Wc);this.b("fullscreenchange",this.xe);return a};
|
65 |
-
function ka(a,c,d){a.h&&(a.za=l,a.h.dispose(),a.h=l);"Html5"!==c&&a.L&&(t.e.Nb(a.L),a.L=j);a.Va=c;a.za=l;var e=t.i.D({source:d,parentEl:a.c},a.q[c.toLowerCase()]);d&&(a.Gc=d.type,d.src==a.K.src&&0<a.K.currentTime&&(e.startTime=a.K.currentTime),a.K.src=d.src);a.h=new window.videojs[c](a,e);a.h.I(function(){this.d.Xa()})}s.ye=function(){this.r("vjs-ended");this.error(j);this.paused()?la(this,l):this.o("firstplay")};s.Nc=l;
|
66 |
-
function la(a,c){c!==b&&a.Nc!==c&&((a.Nc=c)?(a.p("vjs-has-started"),a.o("firstplay")):a.r("vjs-has-started"))}s.ac=function(){this.r("vjs-ended");this.r("vjs-paused");this.p("vjs-playing");la(this,f)};s.Ee=function(){this.p("vjs-waiting")};s.De=function(){this.r("vjs-waiting")};s.Be=function(){this.p("vjs-seeking")};s.Ae=function(){this.r("vjs-seeking")};s.we=function(){this.q.starttime&&this.currentTime(this.q.starttime);this.p("vjs-has-started")};s.$b=function(){this.r("vjs-playing");this.p("vjs-paused")};
|
67 |
-
s.ze=function(){1==this.bufferedPercent()&&this.o("loadedalldata")};s.ve=function(){this.p("vjs-ended");this.q.loop?(this.currentTime(0),this.play()):this.paused()||this.pause()};s.Wc=function(){var a=M(this,"duration");a&&(0>a&&(a=Infinity),this.duration(a),Infinity===a?this.p("vjs-live"):this.r("vjs-live"))};s.xe=function(){this.isFullscreen()?this.p("vjs-fullscreen"):this.r("vjs-fullscreen")};
|
68 |
-
function N(a,c,d){if(a.h&&!a.h.za)a.h.I(function(){this[c](d)});else try{a.h[c](d)}catch(e){throw t.log(e),e;}}function M(a,c){if(a.h&&a.h.za)try{return a.h[c]()}catch(d){throw a.h[c]===b?t.log("Video.js: "+c+" method not defined for "+a.Va+" playback technology.",d):"TypeError"==d.name?(t.log("Video.js: "+c+" unavailable on "+a.Va+" playback technology element.",d),a.h.za=l):t.log(d),d;}}s.play=function(){N(this,"play");return this};s.pause=function(){N(this,"pause");return this};
|
69 |
-
s.paused=function(){return M(this,"paused")===l?l:f};s.currentTime=function(a){return a!==b?(N(this,"setCurrentTime",a),this):this.K.currentTime=M(this,"currentTime")||0};s.duration=function(a){if(a!==b)return this.K.duration=parseFloat(a),this;this.K.duration===b&&this.Wc();return this.K.duration||0};s.remainingTime=function(){return this.duration()-this.currentTime()};s.buffered=function(){var a=M(this,"buffered");if(!a||!a.length)a=t.ya(0,0);return a};
|
70 |
-
s.bufferedPercent=function(){var a=this.duration(),c=this.buffered(),d=0,e,g;if(!a)return 0;for(var h=0;h<c.length;h++)e=c.start(h),g=c.end(h),g>a&&(g=a),d+=g-e;return d/a};s.volume=function(a){if(a!==b)return a=Math.max(0,Math.min(1,parseFloat(a))),this.K.volume=a,N(this,"setVolume",a),t.Ne(a),this;a=parseFloat(M(this,"volume"));return isNaN(a)?1:a};s.muted=function(a){return a!==b?(N(this,"setMuted",a),this):M(this,"muted")||l};s.Ua=function(){return M(this,"supportsFullScreen")||l};s.Qc=l;
|
71 |
-
s.isFullscreen=function(a){return a!==b?(this.Qc=!!a,this):this.Qc};s.isFullScreen=function(a){t.log.warn('player.isFullScreen() has been deprecated, use player.isFullscreen() with a lowercase "s")');return this.isFullscreen(a)};
|
72 |
-
s.requestFullscreen=function(){var a=t.eb.Sb;this.isFullscreen(f);a?(t.b(document,a.fullscreenchange,t.bind(this,function(c){this.isFullscreen(document[a.fullscreenElement]);this.isFullscreen()===l&&t.n(document,a.fullscreenchange,arguments.callee);this.o("fullscreenchange")})),this.c[a.requestFullscreen]()):this.h.Ua()?N(this,"enterFullScreen"):(this.Jc(),this.o("fullscreenchange"));return this};
|
73 |
-
s.requestFullScreen=function(){t.log.warn('player.requestFullScreen() has been deprecated, use player.requestFullscreen() with a lowercase "s")');return this.requestFullscreen()};s.exitFullscreen=function(){var a=t.eb.Sb;this.isFullscreen(l);if(a)document[a.exitFullscreen]();else this.h.Ua()?N(this,"exitFullScreen"):(this.Ob(),this.o("fullscreenchange"));return this};s.cancelFullScreen=function(){t.log.warn("player.cancelFullScreen() has been deprecated, use player.exitFullscreen()");return this.exitFullscreen()};
|
74 |
-
s.Jc=function(){this.ke=f;this.Vd=document.documentElement.style.overflow;t.b(document,"keydown",t.bind(this,this.Kc));document.documentElement.style.overflow="hidden";t.p(document.body,"vjs-full-window");this.o("enterFullWindow")};s.Kc=function(a){27===a.keyCode&&(this.isFullscreen()===f?this.exitFullscreen():this.Ob())};s.Ob=function(){this.ke=l;t.n(document,"keydown",this.Kc);document.documentElement.style.overflow=this.Vd;t.r(document.body,"vjs-full-window");this.o("exitFullWindow")};
|
75 |
-
s.selectSource=function(a){for(var c=0,d=this.q.techOrder;c<d.length;c++){var e=t.wa(d[c]),g=window.videojs[e];if(g){if(g.isSupported())for(var h=0,k=a;h<k.length;h++){var q=k[h];if(g.canPlaySource(q))return{source:q,h:e}}}else t.log.error('The "'+e+'" tech is undefined. Skipped browser support check for that tech.')}return l};
|
76 |
-
s.src=function(a){if(a===b)return M(this,"src");t.i.isArray(a)?ma(this,a):"string"===typeof a?this.src({src:a}):a instanceof Object&&(a.type&&!window.videojs[this.Va].canPlaySource(a)?ma(this,[a]):(this.K.src=a.src,this.Gc=a.type||"",this.I(function(){window.videojs[this.Va].prototype.hasOwnProperty("setSource")?N(this,"setSource",a):N(this,"src",a.src);"auto"==this.q.preload&&this.load();this.q.autoplay&&this.play()})));return this};
|
77 |
-
function ma(a,c){var d=a.selectSource(c);d?d.h===a.Va?a.src(d.source):ka(a,d.h,d.source):(a.setTimeout(function(){this.error({code:4,message:this.v(this.options().notSupportedMessage)})},0),a.Xa())}s.load=function(){N(this,"load");return this};s.currentSrc=function(){return M(this,"currentSrc")||this.K.src||""};s.Rd=function(){return this.Gc||""};s.Sa=function(a){return a!==b?(N(this,"setPreload",a),this.q.preload=a,this):M(this,"preload")};
|
78 |
-
s.autoplay=function(a){return a!==b?(N(this,"setAutoplay",a),this.q.autoplay=a,this):M(this,"autoplay")};s.loop=function(a){return a!==b?(N(this,"setLoop",a),this.q.loop=a,this):M(this,"loop")};s.poster=function(a){if(a===b)return this.Zc;a||(a="");this.Zc=a;N(this,"setPoster",a);this.o("posterchange");return this};
|
79 |
-
s.controls=function(a){return a!==b?(a=!!a,this.Mb!==a&&((this.Mb=a)?(this.r("vjs-controls-disabled"),this.p("vjs-controls-enabled"),this.o("controlsenabled")):(this.r("vjs-controls-enabled"),this.p("vjs-controls-disabled"),this.o("controlsdisabled"))),this):this.Mb};t.Player.prototype.fc;s=t.Player.prototype;
|
80 |
-
s.usingNativeControls=function(a){return a!==b?(a=!!a,this.fc!==a&&((this.fc=a)?(this.p("vjs-using-native-controls"),this.o("usingnativecontrols")):(this.r("vjs-using-native-controls"),this.o("usingcustomcontrols"))),this):this.fc};s.ka=j;s.error=function(a){if(a===b)return this.ka;if(a===j)return this.ka=a,this.r("vjs-error"),this;this.ka=a instanceof t.J?a:new t.J(a);this.o("error");this.p("vjs-error");t.log.error("(CODE:"+this.ka.code+" "+t.J.jb[this.ka.code]+")",this.ka.message,this.ka);return this};
|
81 |
-
s.ended=function(){return M(this,"ended")};s.seeking=function(){return M(this,"seeking")};s.seekable=function(){return M(this,"seekable")};s.Ga=f;s.reportUserActivity=function(){this.Ga=f};s.ec=f;
|
82 |
-
s.userActive=function(a){return a!==b?(a=!!a,a!==this.ec&&((this.ec=a)?(this.Ga=f,this.r("vjs-user-inactive"),this.p("vjs-user-active"),this.o("useractive")):(this.Ga=l,this.h&&this.h.N("mousemove",function(a){a.stopPropagation();a.preventDefault()}),this.r("vjs-user-active"),this.p("vjs-user-inactive"),this.o("userinactive"))),this):this.ec};s.playbackRate=function(a){return a!==b?(N(this,"setPlaybackRate",a),this):this.h&&this.h.featuresPlaybackRate?M(this,"playbackRate"):1};s.Pc=l;
|
83 |
-
function ja(a,c){return c!==b?(a.Pc=!!c,a):a.Pc}s.networkState=function(){return M(this,"networkState")};s.readyState=function(){return M(this,"readyState")};s.textTracks=function(){return this.h&&this.h.textTracks()};s.Z=function(){return this.h&&this.h.remoteTextTracks()};s.addTextTrack=function(a,c,d){return this.h&&this.h.addTextTrack(a,c,d)};s.ia=function(a){return this.h&&this.h.addRemoteTextTrack(a)};s.Ea=function(a){this.h&&this.h.removeRemoteTextTrack(a)};t.wb=t.a.extend();
|
84 |
-
t.wb.prototype.q={xf:"play",children:{playToggle:{},currentTimeDisplay:{},timeDivider:{},durationDisplay:{},remainingTimeDisplay:{},liveDisplay:{},progressControl:{},fullscreenToggle:{},volumeControl:{},muteToggle:{},playbackRateMenuButton:{},subtitlesButton:{},captionsButton:{},chaptersButton:{}}};t.wb.prototype.f=function(){return t.f("div",{className:"vjs-control-bar"})};t.lc=t.a.extend({l:function(a,c){t.a.call(this,a,c)}});
|
85 |
-
t.lc.prototype.f=function(){var a=t.a.prototype.f.call(this,"div",{className:"vjs-live-controls vjs-control"});this.B=t.f("div",{className:"vjs-live-display",innerHTML:'<span class="vjs-control-text">'+this.v("Stream Type")+"</span>"+this.v("LIVE"),"aria-live":"off"});a.appendChild(this.B);return a};t.oc=t.w.extend({l:function(a,c){t.w.call(this,a,c);this.b(a,"play",this.ac);this.b(a,"pause",this.$b)}});s=t.oc.prototype;s.ua="Play";s.V=function(){return"vjs-play-control "+t.w.prototype.V.call(this)};
|
86 |
-
s.u=function(){this.d.paused()?this.d.play():this.d.pause()};s.ac=function(){this.r("vjs-paused");this.p("vjs-playing");this.c.children[0].children[0].innerHTML=this.v("Pause")};s.$b=function(){this.r("vjs-playing");this.p("vjs-paused");this.c.children[0].children[0].innerHTML=this.v("Play")};t.xb=t.a.extend({l:function(a,c){t.a.call(this,a,c);this.b(a,"timeupdate",this.ga)}});
|
87 |
-
t.xb.prototype.f=function(){var a=t.a.prototype.f.call(this,"div",{className:"vjs-current-time vjs-time-controls vjs-control"});this.B=t.f("div",{className:"vjs-current-time-display",innerHTML:'<span class="vjs-control-text">Current Time </span>0:00',"aria-live":"off"});a.appendChild(this.B);return a};t.xb.prototype.ga=function(){var a=this.d.qb?this.d.K.currentTime:this.d.currentTime();this.B.innerHTML='<span class="vjs-control-text">'+this.v("Current Time")+"</span> "+t.Oa(a,this.d.duration())};
|
88 |
-
t.yb=t.a.extend({l:function(a,c){t.a.call(this,a,c);this.b(a,"timeupdate",this.ga);this.b(a,"loadedmetadata",this.ga)}});t.yb.prototype.f=function(){var a=t.a.prototype.f.call(this,"div",{className:"vjs-duration vjs-time-controls vjs-control"});this.B=t.f("div",{className:"vjs-duration-display",innerHTML:'<span class="vjs-control-text">'+this.v("Duration Time")+"</span> 0:00","aria-live":"off"});a.appendChild(this.B);return a};
|
89 |
-
t.yb.prototype.ga=function(){var a=this.d.duration();a&&(this.B.innerHTML='<span class="vjs-control-text">'+this.v("Duration Time")+"</span> "+t.Oa(a))};t.uc=t.a.extend({l:function(a,c){t.a.call(this,a,c)}});t.uc.prototype.f=function(){return t.a.prototype.f.call(this,"div",{className:"vjs-time-divider",innerHTML:"<div><span>/</span></div>"})};t.Fb=t.a.extend({l:function(a,c){t.a.call(this,a,c);this.b(a,"timeupdate",this.ga)}});
|
90 |
-
t.Fb.prototype.f=function(){var a=t.a.prototype.f.call(this,"div",{className:"vjs-remaining-time vjs-time-controls vjs-control"});this.B=t.f("div",{className:"vjs-remaining-time-display",innerHTML:'<span class="vjs-control-text">'+this.v("Remaining Time")+"</span> -0:00","aria-live":"off"});a.appendChild(this.B);return a};t.Fb.prototype.ga=function(){this.d.duration()&&(this.B.innerHTML='<span class="vjs-control-text">'+this.v("Remaining Time")+"</span> -"+t.Oa(this.d.remainingTime()))};
|
91 |
-
t.$a=t.w.extend({l:function(a,c){t.w.call(this,a,c)}});t.$a.prototype.ua="Fullscreen";t.$a.prototype.V=function(){return"vjs-fullscreen-control "+t.w.prototype.V.call(this)};t.$a.prototype.u=function(){this.d.isFullscreen()?(this.d.exitFullscreen(),this.Lb.innerHTML=this.v("Fullscreen")):(this.d.requestFullscreen(),this.Lb.innerHTML=this.v("Non-Fullscreen"))};t.Eb=t.a.extend({l:function(a,c){t.a.call(this,a,c)}});t.Eb.prototype.q={children:{seekBar:{}}};
|
92 |
-
t.Eb.prototype.f=function(){return t.a.prototype.f.call(this,"div",{className:"vjs-progress-control vjs-control"})};t.rc=t.U.extend({l:function(a,c){t.U.call(this,a,c);this.b(a,"timeupdate",this.Fa);a.I(t.bind(this,this.Fa))}});s=t.rc.prototype;s.q={children:{loadProgressBar:{},playProgressBar:{},seekHandle:{}},barName:"playProgressBar",handleName:"seekHandle"};s.Yc="timeupdate";s.f=function(){return t.U.prototype.f.call(this,"div",{className:"vjs-progress-holder","aria-label":"video progress bar"})};
|
93 |
-
s.Fa=function(){var a=this.d.qb?this.d.K.currentTime:this.d.currentTime();this.c.setAttribute("aria-valuenow",t.round(100*this.Tb(),2));this.c.setAttribute("aria-valuetext",t.Oa(a,this.d.duration()))};s.Tb=function(){return this.d.currentTime()/this.d.duration()};s.ob=function(a){t.U.prototype.ob.call(this,a);this.d.qb=f;this.d.p("vjs-scrubbing");this.ef=!this.d.paused();this.d.pause()};s.ma=function(a){a=ea(this,a)*this.d.duration();a==this.d.duration()&&(a-=0.1);this.d.currentTime(a)};
|
94 |
-
s.Ca=function(a){t.U.prototype.Ca.call(this,a);this.d.qb=l;this.d.r("vjs-scrubbing");this.ef&&this.d.play()};s.ld=function(){this.d.currentTime(this.d.currentTime()+5)};s.kd=function(){this.d.currentTime(this.d.currentTime()-5)};t.Bb=t.a.extend({l:function(a,c){t.a.call(this,a,c);this.b(a,"progress",this.update)}});t.Bb.prototype.f=function(){return t.a.prototype.f.call(this,"div",{className:"vjs-load-progress",innerHTML:'<span class="vjs-control-text"><span>'+this.v("Loaded")+"</span>: 0%</span>"})};
|
95 |
-
t.Bb.prototype.update=function(){var a,c,d,e,g=this.d.buffered();a=this.d.duration();var h,k=this.d;h=k.buffered();k=k.duration();h=h.end(h.length-1);h>k&&(h=k);k=this.c.children;this.c.style.width=100*(h/a||0)+"%";for(a=0;a<g.length;a++)c=g.start(a),d=g.end(a),(e=k[a])||(e=this.c.appendChild(t.f())),e.style.left=100*(c/h||0)+"%",e.style.width=100*((d-c)/h||0)+"%";for(a=k.length;a>g.length;a--)this.c.removeChild(k[a-1])};t.nc=t.a.extend({l:function(a,c){t.a.call(this,a,c)}});
|
96 |
-
t.nc.prototype.f=function(){return t.a.prototype.f.call(this,"div",{className:"vjs-play-progress",innerHTML:'<span class="vjs-control-text"><span>'+this.v("Progress")+"</span>: 0%</span>"})};t.ab=t.ha.extend({l:function(a,c){t.ha.call(this,a,c);this.b(a,"timeupdate",this.ga)}});t.ab.prototype.defaultValue="00:00";t.ab.prototype.f=function(){return t.ha.prototype.f.call(this,"div",{className:"vjs-seek-handle","aria-live":"off"})};
|
97 |
-
t.ab.prototype.ga=function(){var a=this.d.qb?this.d.K.currentTime:this.d.currentTime();this.c.innerHTML='<span class="vjs-control-text">'+t.Oa(a,this.d.duration())+"</span>"};t.Ib=t.a.extend({l:function(a,c){t.a.call(this,a,c);a.h&&a.h.featuresVolumeControl===l&&this.p("vjs-hidden");this.b(a,"loadstart",function(){a.h.featuresVolumeControl===l?this.p("vjs-hidden"):this.r("vjs-hidden")})}});t.Ib.prototype.q={children:{volumeBar:{}}};
|
98 |
-
t.Ib.prototype.f=function(){return t.a.prototype.f.call(this,"div",{className:"vjs-volume-control vjs-control"})};t.Hb=t.U.extend({l:function(a,c){t.U.call(this,a,c);this.b(a,"volumechange",this.Fa);a.I(t.bind(this,this.Fa))}});s=t.Hb.prototype;s.Fa=function(){this.c.setAttribute("aria-valuenow",t.round(100*this.d.volume(),2));this.c.setAttribute("aria-valuetext",t.round(100*this.d.volume(),2)+"%")};s.q={children:{volumeLevel:{},volumeHandle:{}},barName:"volumeLevel",handleName:"volumeHandle"};
|
99 |
-
s.Yc="volumechange";s.f=function(){return t.U.prototype.f.call(this,"div",{className:"vjs-volume-bar","aria-label":"volume level"})};s.ma=function(a){this.d.muted()&&this.d.muted(l);this.d.volume(ea(this,a))};s.Tb=function(){return this.d.muted()?0:this.d.volume()};s.ld=function(){this.d.volume(this.d.volume()+0.1)};s.kd=function(){this.d.volume(this.d.volume()-0.1)};t.vc=t.a.extend({l:function(a,c){t.a.call(this,a,c)}});
|
100 |
-
t.vc.prototype.f=function(){return t.a.prototype.f.call(this,"div",{className:"vjs-volume-level",innerHTML:'<span class="vjs-control-text"></span>'})};t.Jb=t.ha.extend();t.Jb.prototype.defaultValue="00:00";t.Jb.prototype.f=function(){return t.ha.prototype.f.call(this,"div",{className:"vjs-volume-handle"})};
|
101 |
-
t.sa=t.w.extend({l:function(a,c){t.w.call(this,a,c);this.b(a,"volumechange",this.update);a.h&&a.h.featuresVolumeControl===l&&this.p("vjs-hidden");this.b(a,"loadstart",function(){a.h.featuresVolumeControl===l?this.p("vjs-hidden"):this.r("vjs-hidden")})}});t.sa.prototype.f=function(){return t.w.prototype.f.call(this,"div",{className:"vjs-mute-control vjs-control",innerHTML:'<div><span class="vjs-control-text">'+this.v("Mute")+"</span></div>"})};
|
102 |
-
t.sa.prototype.u=function(){this.d.muted(this.d.muted()?l:f)};t.sa.prototype.update=function(){var a=this.d.volume(),c=3;0===a||this.d.muted()?c=0:0.33>a?c=1:0.67>a&&(c=2);this.d.muted()?this.c.children[0].children[0].innerHTML!=this.v("Unmute")&&(this.c.children[0].children[0].innerHTML=this.v("Unmute")):this.c.children[0].children[0].innerHTML!=this.v("Mute")&&(this.c.children[0].children[0].innerHTML=this.v("Mute"));for(a=0;4>a;a++)t.r(this.c,"vjs-vol-"+a);t.p(this.c,"vjs-vol-"+c)};
|
103 |
-
t.Ia=t.O.extend({l:function(a,c){t.O.call(this,a,c);this.b(a,"volumechange",this.ff);a.h&&a.h.featuresVolumeControl===l&&this.p("vjs-hidden");this.b(a,"loadstart",function(){a.h.featuresVolumeControl===l?this.p("vjs-hidden"):this.r("vjs-hidden")});this.p("vjs-menu-button")}});t.Ia.prototype.Ma=function(){var a=new t.ra(this.d,{Dc:"div"}),c=new t.Hb(this.d,this.q.volumeBar);c.b("focus",function(){a.p("vjs-lock-showing")});c.b("blur",function(){G(a)});a.ba(c);return a};
|
104 |
-
t.Ia.prototype.u=function(){t.sa.prototype.u.call(this);t.O.prototype.u.call(this)};t.Ia.prototype.f=function(){return t.w.prototype.f.call(this,"div",{className:"vjs-volume-menu-button vjs-menu-button vjs-control",innerHTML:'<div><span class="vjs-control-text">'+this.v("Mute")+"</span></div>"})};t.Ia.prototype.ff=t.sa.prototype.update;t.pc=t.O.extend({l:function(a,c){t.O.call(this,a,c);this.td();this.sd();this.b(a,"loadstart",this.td);this.b(a,"ratechange",this.sd)}});s=t.pc.prototype;s.ua="Playback Rate";
|
105 |
-
s.className="vjs-playback-rate";s.f=function(){var a=t.O.prototype.f.call(this);this.Sc=t.f("div",{className:"vjs-playback-rate-value",innerHTML:1});a.appendChild(this.Sc);return a};s.Ma=function(){var a=new t.ra(this.k()),c=this.k().options().playbackRates;if(c)for(var d=c.length-1;0<=d;d--)a.ba(new t.Db(this.k(),{rate:c[d]+"x"}));return a};s.Fa=function(){this.m().setAttribute("aria-valuenow",this.k().playbackRate())};
|
106 |
-
s.u=function(){for(var a=this.k().playbackRate(),c=this.k().options().playbackRates,d=c[0],e=0;e<c.length;e++)if(c[e]>a){d=c[e];break}this.k().playbackRate(d)};function na(a){return a.k().h&&a.k().h.featuresPlaybackRate&&a.k().options().playbackRates&&0<a.k().options().playbackRates.length}s.td=function(){na(this)?this.r("vjs-hidden"):this.p("vjs-hidden")};s.sd=function(){na(this)&&(this.Sc.innerHTML=this.k().playbackRate()+"x")};
|
107 |
-
t.Db=t.M.extend({Dc:"button",l:function(a,c){var d=this.label=c.rate,e=this.$c=parseFloat(d,10);c.label=d;c.selected=1===e;t.M.call(this,a,c);this.b(a,"ratechange",this.update)}});t.Db.prototype.u=function(){t.M.prototype.u.call(this);this.k().playbackRate(this.$c)};t.Db.prototype.update=function(){this.selected(this.k().playbackRate()==this.$c)};t.qc=t.w.extend({l:function(a,c){t.w.call(this,a,c);this.update();a.b("posterchange",t.bind(this,this.update))}});s=t.qc.prototype;
|
108 |
-
s.dispose=function(){this.k().n("posterchange",this.update);t.w.prototype.dispose.call(this)};s.f=function(){var a=t.f("div",{className:"vjs-poster",tabIndex:-1});t.xd||(this.Pb=t.f("img"),a.appendChild(this.Pb));return a};s.update=function(){var a=this.k().poster();this.oa(a);a?this.show():this.Y()};s.oa=function(a){var c;this.Pb?this.Pb.src=a:(c="",a&&(c='url("'+a+'")'),this.c.style.backgroundImage=c)};s.u=function(){this.d.play()};t.mc=t.a.extend({l:function(a,c){t.a.call(this,a,c)}});
|
109 |
-
t.mc.prototype.f=function(){return t.a.prototype.f.call(this,"div",{className:"vjs-loading-spinner"})};t.ub=t.w.extend();t.ub.prototype.f=function(){return t.w.prototype.f.call(this,"div",{className:"vjs-big-play-button",innerHTML:'<span aria-hidden="true"></span>',"aria-label":"play video"})};t.ub.prototype.u=function(){this.d.play()};t.zb=t.a.extend({l:function(a,c){t.a.call(this,a,c);this.update();this.b(a,"error",this.update)}});
|
110 |
-
t.zb.prototype.f=function(){var a=t.a.prototype.f.call(this,"div",{className:"vjs-error-display"});this.B=t.f("div");a.appendChild(this.B);return a};t.zb.prototype.update=function(){this.k().error()&&(this.B.innerHTML=this.v(this.k().error().message))};var O;t.j=t.a.extend({l:function(a,c,d){c=c||{};c.dd=l;t.a.call(this,a,c,d);this.featuresProgressEvents||this.se();this.featuresTimeupdateEvents||this.te();this.ge();this.featuresNativeTextTracks||this.Wd();this.ie()}});s=t.j.prototype;
|
111 |
-
s.ge=function(){var a,c;a=this.k();c=function(){a.controls()&&!a.usingNativeControls()&&this.Jd()};this.I(c);this.b(a,"controlsenabled",c);this.b(a,"controlsdisabled",this.Ie);this.I(function(){this.networkState&&0<this.networkState()&&this.k().o("loadstart")})};
|
112 |
-
s.Jd=function(){var a;this.b("mousedown",this.u);this.b("touchstart",function(){a=this.d.userActive()});this.b("touchmove",function(){a&&this.k().reportUserActivity()});this.b("touchend",function(a){a.preventDefault()});da(this);this.b("tap",this.Ce)};s.Ie=function(){this.n("tap");this.n("touchstart");this.n("touchmove");this.n("touchleave");this.n("touchcancel");this.n("touchend");this.n("click");this.n("mousedown")};
|
113 |
-
s.u=function(a){0===a.button&&this.k().controls()&&(this.k().paused()?this.k().play():this.k().pause())};s.Ce=function(){this.k().userActive(!this.k().userActive())};s.se=function(){this.Uc=f;this.af()};s.re=function(){this.Uc=l;this.md()};s.af=function(){this.He=this.setInterval(function(){var a=this.k().bufferedPercent();this.Nd!=a&&this.k().o("progress");this.Nd=a;1===a&&this.md()},500)};s.md=function(){this.clearInterval(this.He)};
|
114 |
-
s.te=function(){var a=this.d;this.Zb=f;this.b(a,"play",this.qd);this.b(a,"pause",this.tb);this.N("timeupdate",function(){this.featuresTimeupdateEvents=f;this.Vc()})};s.Vc=function(){var a=this.d;this.Zb=l;this.tb();this.n(a,"play",this.qd);this.n(a,"pause",this.tb)};s.qd=function(){this.Fc&&this.tb();this.Fc=this.setInterval(function(){this.k().o("timeupdate")},250)};s.tb=function(){this.clearInterval(this.Fc);this.k().o("timeupdate")};s.dispose=function(){this.Uc&&this.re();this.Zb&&this.Vc();t.a.prototype.dispose.call(this)};
|
115 |
-
s.cc=function(){this.Zb&&this.k().o("timeupdate")};s.ie=function(){function a(){var a=c.ea("textTrackDisplay");a&&a.C()}var c=this.d,d;if(d=this.textTracks())d.addEventListener("removetrack",a),d.addEventListener("addtrack",a),this.b("dispose",t.bind(this,function(){d.removeEventListener("removetrack",a);d.removeEventListener("addtrack",a)}))};
|
116 |
-
s.Wd=function(){var a=this.d,c,d,e;window.WebVTT||(e=document.createElement("script"),e.src=a.options()["vtt.js"]||"../node_modules/vtt.js/dist/vtt.js",a.m().appendChild(e),window.WebVTT=f);if(d=this.textTracks())c=function(){var c,d,e;e=a.ea("textTrackDisplay");e.C();for(c=0;c<this.length;c++)d=this[c],d.removeEventListener("cuechange",t.bind(e,e.C)),"showing"===d.mode&&d.addEventListener("cuechange",t.bind(e,e.C))},d.addEventListener("change",c),this.b("dispose",t.bind(this,function(){d.removeEventListener("change",
|
117 |
-
c)}))};s.textTracks=function(){this.d.pd=this.d.pd||new t.F;return this.d.pd};s.Z=function(){this.d.ad=this.d.ad||new t.F;return this.d.ad};O=function(a,c,d,e,g){var h=a.textTracks();g=g||{};g.kind=c;d&&(g.label=d);e&&(g.language=e);g.player=a.d;a=new t.t(g);P(h,a);return a};t.j.prototype.addTextTrack=function(a,c,d){if(!a)throw Error("TextTrack kind is required but was not provided");return O(this,a,c,d)};t.j.prototype.ia=function(a){a=O(this,a.kind,a.label,a.language,a);P(this.Z(),a);return{T:a}};
|
118 |
-
t.j.prototype.Ea=function(a){Q(this.textTracks(),a);Q(this.Z(),a)};t.j.prototype.fd=m();t.j.prototype.featuresVolumeControl=f;t.j.prototype.featuresFullscreenResize=l;t.j.prototype.featuresPlaybackRate=l;t.j.prototype.featuresProgressEvents=l;t.j.prototype.featuresTimeupdateEvents=l;t.j.prototype.featuresNativeTextTracks=l;
|
119 |
-
t.j.hc=function(a){a.Ta=function(c,d){var e=a.gd;e||(e=a.gd=[]);d===b&&(d=e.length);e.splice(d,0,c)};a.rb=function(c){for(var d=a.gd||[],e,g=0;g<d.length;g++)if(e=d[g].fb(c))return d[g];return j};a.Ac=function(c){var d=a.rb(c);return d?d.fb(c):""};a.prototype.na=function(c){var d=a.rb(c);d||(a.S?d=a.S:t.log.error("No source hander found for the current source."));this.ja();this.n("dispose",this.ja);this.ib=c;this.dc=d.Ub(c,this);this.b("dispose",this.ja);return this};a.prototype.ja=function(){this.dc&&
|
120 |
-
this.dc.dispose&&this.dc.dispose()}};t.media={};
|
121 |
-
t.e=t.j.extend({l:function(a,c,d){var e,g,h;if(c.nativeCaptions===l||c.nativeTextTracks===l)this.featuresNativeTextTracks=l;t.j.call(this,a,c,d);for(d=t.e.Ab.length-1;0<=d;d--)this.b(t.e.Ab[d],this.Xd);(c=c.source)&&(this.c.currentSrc!==c.src||a.L&&3===a.L.he)&&this.na(c);if(this.c.hasChildNodes()){d=this.c.childNodes;e=d.length;for(c=[];e--;)g=d[e],h=g.nodeName.toLowerCase(),"track"===h&&(this.featuresNativeTextTracks?P(this.Z(),g.track):c.push(g));for(d=0;d<c.length;d++)this.c.removeChild(c[d])}this.featuresNativeTextTracks&&
|
122 |
-
this.b("loadstart",t.bind(this,this.fe));if(t.Gb&&a.options().nativeControlsForTouch===f){var k,q,r,u;k=this;q=this.k();c=q.controls();k.c.controls=!!c;r=function(){k.c.controls=f};u=function(){k.c.controls=l};q.b("controlsenabled",r);q.b("controlsdisabled",u);c=function(){q.n("controlsenabled",r);q.n("controlsdisabled",u)};k.b("dispose",c);q.b("usingcustomcontrols",c);q.usingNativeControls(f)}a.I(function(){this.src()&&(this.L&&this.q.autoplay&&this.paused())&&(delete this.L.poster,this.play())});
|
123 |
-
this.Xa()}});s=t.e.prototype;s.dispose=function(){t.e.Nb(this.c);t.j.prototype.dispose.call(this)};
|
124 |
-
s.f=function(){var a=this.d,c,d,e,g=a.L;if(!g||this.movingMediaElementInDOM===l){g?(e=g.cloneNode(l),t.e.Nb(g),g=e,a.L=j):(g=t.f("video"),e=videojs.$.Ba({},a.Ye),(!t.Gb||a.options().nativeControlsForTouch!==f)&&delete e.controls,t.ed(g,t.i.D(e,{id:a.id()+"_html5_api","class":"vjs-tech"})));g.player=a;if(a.q.rd)for(e=0;e<a.q.rd.length;e++)c=a.q.rd[e],d=document.createElement("track"),d.Xb=c.Xb,d.label=c.label,d.jd=c.jd,d.src=c.src,"default"in c&&d.setAttribute("default","default"),g.appendChild(d);
|
125 |
-
t.Vb(g,a.m())}c=["autoplay","preload","loop","muted"];for(e=c.length-1;0<=e;e--){d=c[e];var h={};"undefined"!==typeof a.q[d]&&(h[d]=a.q[d]);t.ed(g,h)}return g};s.fe=function(){for(var a=this.c.querySelectorAll("track"),c,d=a.length,e={captions:1,subtitles:1};d--;)if((c=a[d].T)&&c.kind in e&&!a[d]["default"])c.mode="disabled"};s.Xd=function(a){"error"==a.type&&this.error()?this.k().error(this.error().code):(a.bubbles=l,this.k().o(a))};s.play=function(){this.c.play()};s.pause=function(){this.c.pause()};
|
126 |
-
s.paused=function(){return this.c.paused};s.currentTime=function(){return this.c.currentTime};s.cc=function(a){try{this.c.currentTime=a}catch(c){t.log(c,"Video is not ready. (Video.js)")}};s.duration=function(){return this.c.duration||0};s.buffered=function(){return this.c.buffered};s.volume=function(){return this.c.volume};s.Te=function(a){this.c.volume=a};s.muted=function(){return this.c.muted};s.Pe=function(a){this.c.muted=a};s.width=function(){return this.c.offsetWidth};s.height=function(){return this.c.offsetHeight};
|
127 |
-
s.Ua=function(){return"function"==typeof this.c.webkitEnterFullScreen&&(/Android/.test(t.P)||!/Chrome|Mac OS X 10.5/.test(t.P))?f:l};s.Ic=function(){var a=this.c;"webkitDisplayingFullscreen"in a&&this.N("webkitbeginfullscreen",function(){this.d.isFullscreen(f);this.N("webkitendfullscreen",function(){this.d.isFullscreen(l);this.d.o("fullscreenchange")});this.d.o("fullscreenchange")});a.paused&&a.networkState<=a.kf?(this.c.play(),this.setTimeout(function(){a.pause();a.webkitEnterFullScreen()},0)):a.webkitEnterFullScreen()};
|
128 |
-
s.Yd=function(){this.c.webkitExitFullScreen()};function oa(a,c){var d=/^blob\:/i;return c&&a&&d.test(a)?c:a}s.src=function(a){var c=this.c.src;if(a===b)return oa(c,this.hd);this.oa(a)};s.oa=function(a){this.c.src=a};s.load=function(){this.c.load()};s.currentSrc=function(){var a=this.c.currentSrc;return!this.ib?a:oa(a,this.ib.src)};s.poster=function(){return this.c.poster};s.fd=function(a){this.c.poster=a};s.Sa=function(){return this.c.Sa};s.Re=function(a){this.c.Sa=a};s.autoplay=function(){return this.c.autoplay};
|
129 |
-
s.Me=function(a){this.c.autoplay=a};s.controls=function(){return this.c.controls};s.loop=function(){return this.c.loop};s.Oe=function(a){this.c.loop=a};s.error=function(){return this.c.error};s.seeking=function(){return this.c.seeking};s.seekable=function(){return this.c.seekable};s.ended=function(){return this.c.ended};s.playbackRate=function(){return this.c.playbackRate};s.Qe=function(a){this.c.playbackRate=a};s.networkState=function(){return this.c.networkState};s.readyState=function(){return this.c.readyState};
|
130 |
-
s.textTracks=function(){return!this.featuresNativeTextTracks?t.j.prototype.textTracks.call(this):this.c.textTracks};s.addTextTrack=function(a,c,d){return!this.featuresNativeTextTracks?t.j.prototype.addTextTrack.call(this,a,c,d):this.c.addTextTrack(a,c,d)};
|
131 |
-
s.ia=function(a){if(!this.featuresNativeTextTracks)return t.j.prototype.ia.call(this,a);var c=document.createElement("track");a=a||{};a.kind&&(c.kind=a.kind);a.label&&(c.label=a.label);if(a.language||a.srclang)c.srclang=a.language||a.srclang;a["default"]&&(c["default"]=a["default"]);a.id&&(c.id=a.id);a.src&&(c.src=a.src);this.m().appendChild(c);c.track.mode="metadata"===c.T.kind?"hidden":"disabled";c.onload=function(){var a=c.track;2<=c.readyState&&("metadata"===a.kind&&"hidden"!==a.mode?a.mode="hidden":
|
132 |
-
"metadata"!==a.kind&&"disabled"!==a.mode&&(a.mode="disabled"),c.onload=j)};P(this.Z(),c.T);return c};s.Ea=function(a){if(!this.featuresNativeTextTracks)return t.j.prototype.Ea.call(this,a);var c,d;Q(this.Z(),a);c=this.m().querySelectorAll("track");for(d=0;d<c.length;d++)if(c[d]===a||c[d].track===a){c[d].parentNode.removeChild(c[d]);break}};t.e.isSupported=function(){try{t.A.volume=0.5}catch(a){return l}return!!t.A.canPlayType};t.j.hc(t.e);var pa=t.e.prototype.na,qa=t.e.prototype.ja;
|
133 |
-
t.e.prototype.na=function(a){var c=pa.call(this,a);this.hd=a.src;return c};t.e.prototype.ja=function(){this.hd=b;return qa.call(this)};t.e.S={};t.e.S.fb=function(a){function c(a){try{return t.A.canPlayType(a)}catch(c){return""}}return a.type?c(a.type):a.src?(a=(a=a.src.match(/\.([^.\/\?]+)(\?[^\/]+)?$/i))&&a[1],c("video/"+a)):""};t.e.S.Ub=function(a,c){c.oa(a.src)};t.e.S.dispose=m();t.e.Ta(t.e.S);t.e.Pd=function(){var a=t.A.volume;t.A.volume=a/2+0.1;return a!==t.A.volume};
|
134 |
-
t.e.Od=function(){var a=t.A.playbackRate;t.A.playbackRate=a/2+0.1;return a!==t.A.playbackRate};t.e.We=function(){var a;(a=!!t.A.textTracks)&&0<t.A.textTracks.length&&(a="number"!==typeof t.A.textTracks[0].mode);a&&t.kc&&(a=l);return a};t.e.prototype.featuresVolumeControl=t.e.Pd();t.e.prototype.featuresPlaybackRate=t.e.Od();t.e.prototype.movingMediaElementInDOM=!t.Bd;t.e.prototype.featuresFullscreenResize=f;t.e.prototype.featuresProgressEvents=f;t.e.prototype.featuresNativeTextTracks=t.e.We();
|
135 |
-
var S,ra=/^application\/(?:x-|vnd\.apple\.)mpegurl/i,sa=/^video\/mp4/i;t.e.Xc=function(){4<=t.ic&&(S||(S=t.A.constructor.prototype.canPlayType),t.A.constructor.prototype.canPlayType=function(a){return a&&ra.test(a)?"maybe":S.call(this,a)});t.Fd&&(S||(S=t.A.constructor.prototype.canPlayType),t.A.constructor.prototype.canPlayType=function(a){return a&&sa.test(a)?"maybe":S.call(this,a)})};t.e.cf=function(){var a=t.A.constructor.prototype.canPlayType;t.A.constructor.prototype.canPlayType=S;S=j;return a};
|
136 |
-
t.e.Xc();t.e.Ab="loadstart suspend abort error emptied stalled loadedmetadata loadeddata canplay canplaythrough playing waiting seeking seeked ended durationchange timeupdate progress play pause ratechange volumechange".split(" ");t.e.Nb=function(a){if(a){a.player=j;for(a.parentNode&&a.parentNode.removeChild(a);a.hasChildNodes();)a.removeChild(a.firstChild);a.removeAttribute("src");if("function"===typeof a.load)try{a.load()}catch(c){}}};
|
137 |
-
t.g=t.j.extend({l:function(a,c,d){t.j.call(this,a,c,d);var e=c.source;d=a.id()+"_flash_api";var g=a.q,g=t.i.D({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:g.autoplay,preload:g.Sa,loop:g.loop,muted:g.muted},c.flashVars),h=t.i.D({wmode:"opaque",bgcolor:"#000000"},c.params);d=t.i.D({id:d,name:d,"class":"vjs-tech"},c.attributes);e&&this.I(function(){this.na(e)});t.Vb(this.c,c.parentEl);c.startTime&&this.I(function(){this.load();
|
138 |
-
this.play();this.currentTime(c.startTime)});t.kc&&this.I(function(){this.b("mousemove",function(){this.k().o({type:"mousemove",bubbles:l})})});a.b("stageclick",a.reportUserActivity);this.c=t.g.Hc(c.swf,this.c,g,h,d)}});s=t.g.prototype;s.dispose=function(){t.j.prototype.dispose.call(this)};s.play=function(){this.c.vjs_play()};s.pause=function(){this.c.vjs_pause()};s.src=function(a){return a===b?this.currentSrc():this.oa(a)};
|
139 |
-
s.oa=function(a){a=t.ae(a);this.c.vjs_src(a);if(this.d.autoplay()){var c=this;this.setTimeout(function(){c.play()},0)}};t.g.prototype.setCurrentTime=function(a){this.pe=a;this.c.vjs_setProperty("currentTime",a);t.j.prototype.cc.call(this)};t.g.prototype.currentTime=function(){return this.seeking()?this.pe||0:this.c.vjs_getProperty("currentTime")};t.g.prototype.currentSrc=function(){return this.ib?this.ib.src:this.c.vjs_getProperty("currentSrc")};t.g.prototype.load=function(){this.c.vjs_load()};
|
140 |
-
t.g.prototype.poster=function(){this.c.vjs_getProperty("poster")};t.g.prototype.setPoster=m();s=t.g.prototype;s.seekable=function(){return 0===this.duration()?t.ya():t.ya(0,this.duration())};s.buffered=function(){return!this.c.vjs_getProperty?t.ya():t.ya(0,this.c.vjs_getProperty("buffered"))};s.duration=function(){return!this.c.vjs_getProperty?0:this.c.vjs_getProperty("duration")};s.Ua=p(l);s.Ic=p(l);
|
141 |
-
function ta(){var a=T[U],c=a.charAt(0).toUpperCase()+a.slice(1);ua["set"+c]=function(c){return this.c.vjs_setProperty(a,c)}}function va(a){ua[a]=function(){return this.c.vjs_getProperty(a)}}
|
142 |
-
var ua=t.g.prototype,T="rtmpConnection rtmpStream preload defaultPlaybackRate playbackRate autoplay loop mediaGroup controller controls volume muted defaultMuted".split(" "),wa="error networkState readyState seeking initialTime startOffsetTime paused played ended videoTracks audioTracks videoWidth videoHeight".split(" "),U;for(U=0;U<T.length;U++)va(T[U]),ta();for(U=0;U<wa.length;U++)va(wa[U]);t.g.isSupported=function(){return 10<=t.g.version()[0]};t.j.hc(t.g);t.g.S={};
|
143 |
-
t.g.S.fb=function(a){return!a.type?"":a.type.replace(/;.*/,"").toLowerCase()in t.g.$d?"maybe":""};t.g.S.Ub=function(a,c){c.oa(a.src)};t.g.S.dispose=m();t.g.Ta(t.g.S);t.g.$d={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"};t.g.onReady=function(a){var c;if(c=(a=t.m(a))&&a.parentNode&&a.parentNode.player)a.player=c,t.g.checkReady(c.h)};t.g.checkReady=function(a){a.m()&&(a.m().vjs_getProperty?a.Xa():this.setTimeout(function(){t.g.checkReady(a)},50))};
|
144 |
-
t.g.onEvent=function(a,c){t.m(a).player.o(c)};t.g.onError=function(a,c){var d=t.m(a).player,e="FLASH: "+c;"srcnotfound"==c?d.error({code:4,message:e}):d.error(e)};
|
145 |
-
t.g.version=function(){var a="0,0,0";try{a=(new window.ActiveXObject("ShockwaveFlash.ShockwaveFlash")).GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(c){try{navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(d){}}return a.split(",")};
|
146 |
-
t.g.Hc=function(a,c,d,e,g){a=t.g.de(a,d,e,g);a=t.f("div",{innerHTML:a}).childNodes[0];d=c.parentNode;c.parentNode.replaceChild(a,c);a[t.expando]=c[t.expando];var h=d.childNodes[0];setTimeout(function(){h.style.display="block"},1E3);return a};
|
147 |
-
t.g.de=function(a,c,d,e){var g="",h="",k="";c&&t.i.da(c,function(a,c){g+=a+"="+c+"&"});d=t.i.D({movie:a,flashvars:g,allowScriptAccess:"always",allowNetworking:"all"},d);t.i.da(d,function(a,c){h+='<param name="'+a+'" value="'+c+'" />'});e=t.i.D({data:a,width:"100%",height:"100%"},e);t.i.da(e,function(a,c){k+=a+'="'+c+'" '});return'<object type="application/x-shockwave-flash" '+k+">"+h+"</object>"};t.g.Ve={"rtmp/mp4":"MP4","rtmp/flv":"FLV"};t.g.If=function(a,c){return a+"&"+c};
|
148 |
-
t.g.Ue=function(a){var c={Cc:"",nd:""};if(!a)return c;var d=a.indexOf("&"),e;-1!==d?e=d+1:(d=e=a.lastIndexOf("/")+1,0===d&&(d=e=a.length));c.Cc=a.substring(0,d);c.nd=a.substring(e,a.length);return c};t.g.ne=function(a){return a in t.g.Ve};t.g.Hd=/^rtmp[set]?:\/\//i;t.g.me=function(a){return t.g.Hd.test(a)};t.g.bc={};t.g.bc.fb=function(a){return t.g.ne(a.type)||t.g.me(a.src)?"maybe":""};t.g.bc.Ub=function(a,c){var d=t.g.Ue(a.src);c.setRtmpConnection(d.Cc);c.setRtmpStream(d.nd)};t.g.Ta(t.g.bc);
|
149 |
-
t.Gd=t.a.extend({l:function(a,c,d){t.a.call(this,a,c,d);if(!a.q.sources||0===a.q.sources.length){c=0;for(d=a.q.techOrder;c<d.length;c++){var e=t.wa(d[c]),g=window.videojs[e];if(g&&g.isSupported()){ka(a,e);break}}}else a.src(a.q.sources)}});t.sc={disabled:"disabled",hidden:"hidden",showing:"showing"};t.Id={subtitles:"subtitles",captions:"captions",descriptions:"descriptions",chapters:"chapters",metadata:"metadata"};
|
150 |
-
t.t=function(a){var c,d,e,g,h,k,q,r,u,A,R;a=a||{};if(!a.player)throw Error("A player was not provided.");c=this;if(t.qa)for(R in c=document.createElement("custom"),t.t.prototype)c[R]=t.t.prototype[R];c.d=a.player;e=t.sc[a.mode]||"disabled";g=t.Id[a.kind]||"subtitles";h=a.label||"";k=a.language||a.srclang||"";d=a.id||"vjs_text_track_"+t.s++;if("metadata"===g||"chapters"===g)e="hidden";c.X=[];c.Ja=[];q=new t.W(c.X);r=new t.W(c.Ja);A=l;u=t.bind(c,function(){this.activeCues;A&&(this.trigger("cuechange"),
|
151 |
-
A=l)});"disabled"!==e&&c.d.b("timeupdate",u);Object.defineProperty(c,"kind",{get:function(){return g},set:Function.prototype});Object.defineProperty(c,"label",{get:function(){return h},set:Function.prototype});Object.defineProperty(c,"language",{get:function(){return k},set:Function.prototype});Object.defineProperty(c,"id",{get:function(){return d},set:Function.prototype});Object.defineProperty(c,"mode",{get:function(){return e},set:function(a){t.sc[a]&&(e=a,"showing"===e&&this.d.b("timeupdate",u),
|
152 |
-
this.o("modechange"))}});Object.defineProperty(c,"cues",{get:function(){return!this.Yb?j:q},set:Function.prototype});Object.defineProperty(c,"activeCues",{get:function(){var a,c,d,e,g;if(!this.Yb)return j;if(0===this.cues.length)return r;e=this.d.currentTime();a=0;c=this.cues.length;for(d=[];a<c;a++)g=this.cues[a],g.startTime<=e&&g.endTime>=e?d.push(g):g.startTime===g.endTime&&(g.startTime<=e&&g.startTime+0.5>=e)&&d.push(g);A=l;if(d.length!==this.Ja.length)A=f;else for(a=0;a<d.length;a++)-1===xa.call(this.Ja,
|
153 |
-
d[a])&&(A=f);this.Ja=d;r.sb(this.Ja);return r},set:Function.prototype});a.src?ya(a.src,c):c.Yb=f;if(t.qa)return c};t.t.prototype=t.i.create(t.z.prototype);t.t.prototype.constructor=t.t;t.t.prototype.cb={cuechange:"cuechange"};t.t.prototype.wc=function(a){var c=this.d.textTracks(),d=0;if(c)for(;d<c.length;d++)c[d]!==this&&c[d].bd(a);this.X.push(a);this.cues.sb(this.X)};t.t.prototype.bd=function(a){for(var c=0,d=this.X.length,e,g=l;c<d;c++)e=this.X[c],e===a&&(this.X.splice(c,1),g=f);g&&this.Ec.sb(this.X)};
|
154 |
-
var ya,V,xa;ya=function(a,c){t.gf(a,t.bind(this,function(a,e,g){if(a)return t.log.error(a);c.Yb=f;V(g,c)}))};V=function(a,c){if("function"!==typeof window.WebVTT)window.setTimeout(function(){V(a,c)},25);else{var d=new window.WebVTT.Parser(window,window.vttjs,window.WebVTT.StringDecoder());d.oncue=function(a){c.wc(a)};d.onparsingerror=function(a){t.log.error(a)};d.parse(a);d.flush()}};
|
155 |
-
xa=function(a,c){var d;if(this==j)throw new TypeError('"this" is null or not defined');var e=Object(this),g=e.length>>>0;if(0===g)return-1;d=+c||0;Infinity===Math.abs(d)&&(d=0);if(d>=g)return-1;for(d=Math.max(0<=d?d:g-Math.abs(d),0);d<g;){if(d in e&&e[d]===a)return d;d++}return-1};
|
156 |
-
t.F=function(a){var c=this,d,e=0;if(t.qa)for(d in c=document.createElement("custom"),t.F.prototype)c[d]=t.F.prototype[d];a=a||[];c.Wa=[];for(Object.defineProperty(c,"length",{get:function(){return this.Wa.length}});e<a.length;e++)P(c,a[e]);if(t.qa)return c};t.F.prototype=t.i.create(t.z.prototype);t.F.prototype.constructor=t.F;t.F.prototype.cb={change:"change",addtrack:"addtrack",removetrack:"removetrack"};for(var za in t.F.prototype.cb)t.F.prototype["on"+za]=j;
|
157 |
-
function P(a,c){var d=a.Wa.length;""+d in a||Object.defineProperty(a,d,{get:function(){return this.Wa[d]}});c.addEventListener("modechange",t.bind(a,function(){this.o("change")}));a.Wa.push(c);a.o({type:"addtrack",T:c})}function Q(a,c){for(var d=0,e=a.length,g;d<e;d++)if(g=a[d],g===c){a.Wa.splice(d,1);break}a.o({type:"removetrack",T:c})}t.F.prototype.ee=function(a){for(var c=0,d=this.length,e=j,g;c<d;c++)if(g=this[c],g.id===a){e=g;break}return e};
|
158 |
-
t.W=function(a){var c=this,d;if(t.qa)for(d in c=document.createElement("custom"),t.W.prototype)c[d]=t.W.prototype[d];t.W.prototype.sb.call(c,a);Object.defineProperty(c,"length",{get:n("qe")});if(t.qa)return c};t.W.prototype.sb=function(a){var c=this.length||0,d=0,e=a.length;this.X=a;this.qe=a.length;a=function(a){""+a in this||Object.defineProperty(this,""+a,{get:function(){return this.X[a]}})};if(c<e)for(d=c;d<e;d++)a.call(this,d)};
|
159 |
-
t.W.prototype.ce=function(a){for(var c=0,d=this.length,e=j,g;c<d;c++)if(g=this[c],g.id===a){e=g;break}return e};t.ta=t.a.extend({l:function(a,c,d){t.a.call(this,a,c,d);a.b("loadstart",t.bind(this,this.$e));a.I(t.bind(this,function(){if(a.h&&a.h.featuresNativeTextTracks)this.Y();else{var c,d,h;a.b("fullscreenchange",t.bind(this,this.C));d=a.q.tracks||[];for(c=0;c<d.length;c++)h=d[c],this.d.ia(h)}}))}});t.ta.prototype.$e=function(){this.d.h&&this.d.h.featuresNativeTextTracks?this.Y():this.show()};
|
160 |
-
t.ta.prototype.f=function(){return t.a.prototype.f.call(this,"div",{className:"vjs-text-track-display"})};t.ta.prototype.Qd=function(){"function"===typeof window.WebVTT&&window.WebVTT.processCues(window,[],this.c)};function W(a,c){return"rgba("+parseInt(a[1]+a[1],16)+","+parseInt(a[2]+a[2],16)+","+parseInt(a[3]+a[3],16)+","+c+")"}
|
161 |
-
var Aa={yf:"monospace",Ef:"sans-serif",Gf:"serif",zf:'"Andale Mono", "Lucida Console", monospace',Af:'"Courier New", monospace',Cf:"sans-serif",Df:"serif",pf:'"Comic Sans MS", Impact, fantasy',Ff:'"Monotype Corsiva", cursive',Hf:'"Andale Mono", "Lucida Console", monospace, sans-serif'};t.ta.prototype.C=function(){var a=this.d.textTracks(),c=0,d;this.Qd();if(a)for(;c<a.length;c++)d=a[c],"showing"===d.mode&&this.df(d)};
|
162 |
-
t.ta.prototype.df=function(a){if("function"===typeof window.WebVTT&&a.activeCues){for(var c=0,d=this.d.textTrackSettings.Lc(),e,g=[];c<a.activeCues.length;c++)g.push(a.activeCues[c]);window.WebVTT.processCues(window,a.activeCues,this.c);for(c=g.length;c--;){a=g[c].qf;d.color&&(a.firstChild.style.color=d.color);if(d.od)try{a.firstChild.style.color=W(d.color||"#fff",d.od)}catch(h){}d.backgroundColor&&(a.firstChild.style.backgroundColor=d.backgroundColor);if(d.zc)try{a.firstChild.style.backgroundColor=
|
163 |
-
W(d.backgroundColor||"#000",d.zc)}catch(k){}if(d.gc)if(d.vd)try{a.style.backgroundColor=W(d.gc,d.vd)}catch(q){}else a.style.backgroundColor=d.gc;d.Na&&("dropshadow"===d.Na?a.firstChild.style.textShadow="2px 2px 3px #222, 2px 2px 4px #222, 2px 2px 5px #222":"raised"===d.Na?a.firstChild.style.textShadow="1px 1px #222, 2px 2px #222, 3px 3px #222":"depressed"===d.Na?a.firstChild.style.textShadow="1px 1px #ccc, 0 1px #ccc, -1px -1px #222, 0 -1px #222":"uniform"===d.Na&&(a.firstChild.style.textShadow="0 0 4px #222, 0 0 4px #222, 0 0 4px #222, 0 0 4px #222"));
|
164 |
-
d.Rb&&1!==d.Rb&&(e=window.Bf(a.style.fontSize),a.style.fontSize=e*d.Rb+"px",a.style.height="auto",a.style.top="auto",a.style.bottom="2px");d.fontFamily&&"default"!==d.fontFamily&&("small-caps"===d.fontFamily?a.firstChild.style.fontVariant="small-caps":a.firstChild.style.fontFamily=Aa[d.fontFamily])}}};
|
165 |
-
t.aa=t.M.extend({l:function(a,c){var d=this.T=c.track,e=a.textTracks(),g,h;e&&(g=t.bind(this,function(){var a="showing"===this.T.mode,c,d,g;if(this instanceof t.Cb){a=f;d=0;for(g=e.length;d<g;d++)if(c=e[d],c.kind===this.T.kind&&"showing"===c.mode){a=l;break}}this.selected(a)}),e.addEventListener("change",g),a.b("dispose",function(){e.removeEventListener("change",g)}));c.label=d.label||d.language||"Unknown";c.selected=d["default"]||"showing"===d.mode;t.M.call(this,a,c);e&&e.onchange===b&&this.b(["tap",
|
166 |
-
"click"],function(){if("object"!==typeof window.zd)try{h=new window.zd("change")}catch(a){}h||(h=document.createEvent("Event"),h.initEvent("change",f,f));e.dispatchEvent(h)})}});t.aa.prototype.u=function(){var a=this.T.kind,c=this.d.textTracks(),d,e=0;t.M.prototype.u.call(this);if(c)for(;e<c.length;e++)d=c[e],d.kind===a&&(d.mode=d===this.T?"showing":"disabled")};t.Cb=t.aa.extend({l:function(a,c){c.track={kind:c.kind,player:a,label:c.kind+" off","default":l,mode:"disabled"};t.aa.call(this,a,c);this.selected(f)}});
|
167 |
-
t.vb=t.aa.extend({l:function(a,c){c.track={kind:c.kind,player:a,label:c.kind+" settings","default":l,mode:"disabled"};t.aa.call(this,a,c);this.p("vjs-texttrack-settings")}});t.vb.prototype.u=function(){this.k().ea("textTrackSettings").show()};
|
168 |
-
t.Q=t.O.extend({l:function(a,c){var d,e;t.O.call(this,a,c);d=this.d.textTracks();1>=this.H.length&&this.Y();d&&(e=t.bind(this,this.update),d.addEventListener("removetrack",e),d.addEventListener("addtrack",e),this.d.b("dispose",function(){d.removeEventListener("removetrack",e);d.removeEventListener("addtrack",e)}))}});
|
169 |
-
t.Q.prototype.La=function(){var a=[],c,d;this instanceof t.pa&&(!this.k().h||!this.k().h.featuresNativeTextTracks)&&a.push(new t.vb(this.d,{kind:this.fa}));a.push(new t.Cb(this.d,{kind:this.fa}));d=this.d.textTracks();if(!d)return a;for(var e=0;e<d.length;e++)c=d[e],c.kind===this.fa&&a.push(new t.aa(this.d,{track:c}));return a};t.pa=t.Q.extend({l:function(a,c,d){t.Q.call(this,a,c,d);this.c.setAttribute("aria-label","Captions Menu")}});t.pa.prototype.fa="captions";t.pa.prototype.ua="Captions";
|
170 |
-
t.pa.prototype.className="vjs-captions-button";t.pa.prototype.update=function(){var a=2;t.Q.prototype.update.call(this);this.k().h&&this.k().h.featuresNativeTextTracks&&(a=1);this.H&&this.H.length>a?this.show():this.Y()};t.bb=t.Q.extend({l:function(a,c,d){t.Q.call(this,a,c,d);this.c.setAttribute("aria-label","Subtitles Menu")}});t.bb.prototype.fa="subtitles";t.bb.prototype.ua="Subtitles";t.bb.prototype.className="vjs-subtitles-button";
|
171 |
-
t.Ya=t.Q.extend({l:function(a,c,d){t.Q.call(this,a,c,d);this.c.setAttribute("aria-label","Chapters Menu")}});s=t.Ya.prototype;s.fa="chapters";s.ua="Chapters";s.className="vjs-chapters-button";s.La=function(){var a=[],c,d;d=this.d.textTracks();if(!d)return a;for(var e=0;e<d.length;e++)c=d[e],c.kind===this.fa&&a.push(new t.aa(this.d,{track:c}));return a};
|
172 |
-
s.Ma=function(){for(var a=this.d.textTracks()||[],c=0,d=a.length,e,g,h=this.H=[];c<d;c++)if(e=a[c],e.kind==this.fa)if(e.Ec){g=e;break}else e.mode="hidden",window.setTimeout(t.bind(this,function(){this.Ma()}),100);a=this.Aa;a===b&&(a=new t.ra(this.d),a.xa().appendChild(t.f("li",{className:"vjs-menu-title",innerHTML:t.wa(this.fa),Xe:-1})));if(g){e=g.cues;for(var k,c=0,d=e.length;c<d;c++)k=e[c],k=new t.Za(this.d,{track:g,cue:k}),h.push(k),a.ba(k);this.ba(a)}0<this.H.length&&this.show();return a};
|
173 |
-
t.Za=t.M.extend({l:function(a,c){var d=this.T=c.track,e=this.cue=c.cue,g=a.currentTime();c.label=e.text;c.selected=e.startTime<=g&&g<e.endTime;t.M.call(this,a,c);d.addEventListener("cuechange",t.bind(this,this.update))}});t.Za.prototype.u=function(){t.M.prototype.u.call(this);this.d.currentTime(this.cue.startTime);this.update(this.cue.startTime)};t.Za.prototype.update=function(){var a=this.cue,c=this.d.currentTime();this.selected(a.startTime<=c&&c<a.endTime)};
|
174 |
-
function X(a){var c;a.Le?c=a.Le[0]:a.options&&(c=a.options[a.options.selectedIndex]);return c.value}function Y(a,c){var d,e;if(c){for(d=0;d<a.options.length&&!(e=a.options[d],e.value===c);d++);a.selectedIndex=d}}
|
175 |
-
t.tc=t.a.extend({l:function(a,c){t.a.call(this,a,c);this.Y();t.b(this.m().querySelector(".vjs-done-button"),"click",t.bind(this,function(){this.Ke();this.Y()}));t.b(this.m().querySelector(".vjs-default-button"),"click",t.bind(this,function(){this.m().querySelector(".vjs-fg-color > select").selectedIndex=0;this.m().querySelector(".vjs-bg-color > select").selectedIndex=0;this.m().querySelector(".window-color > select").selectedIndex=0;this.m().querySelector(".vjs-text-opacity > select").selectedIndex=
|
176 |
-
0;this.m().querySelector(".vjs-bg-opacity > select").selectedIndex=0;this.m().querySelector(".vjs-window-opacity > select").selectedIndex=0;this.m().querySelector(".vjs-edge-style select").selectedIndex=0;this.m().querySelector(".vjs-font-family select").selectedIndex=0;this.m().querySelector(".vjs-font-percent select").selectedIndex=2;this.C()}));t.b(this.m().querySelector(".vjs-fg-color > select"),"change",t.bind(this,this.C));t.b(this.m().querySelector(".vjs-bg-color > select"),"change",t.bind(this,
|
177 |
-
this.C));t.b(this.m().querySelector(".window-color > select"),"change",t.bind(this,this.C));t.b(this.m().querySelector(".vjs-text-opacity > select"),"change",t.bind(this,this.C));t.b(this.m().querySelector(".vjs-bg-opacity > select"),"change",t.bind(this,this.C));t.b(this.m().querySelector(".vjs-window-opacity > select"),"change",t.bind(this,this.C));t.b(this.m().querySelector(".vjs-font-percent select"),"change",t.bind(this,this.C));t.b(this.m().querySelector(".vjs-edge-style select"),"change",t.bind(this,
|
178 |
-
this.C));t.b(this.m().querySelector(".vjs-font-family select"),"change",t.bind(this,this.C));a.options().persistTextTrackSettings&&this.Je()}});s=t.tc.prototype;s.f=function(){return t.a.prototype.f.call(this,"div",{className:"vjs-caption-settings vjs-modal-overlay",innerHTML:'<div class="vjs-tracksettings"><div class="vjs-tracksettings-colors"><div class="vjs-fg-color vjs-tracksetting"><label class="vjs-label">Foreground</label><select><option value="">---</option><option value="#FFF">White</option><option value="#000">Black</option><option value="#F00">Red</option><option value="#0F0">Green</option><option value="#00F">Blue</option><option value="#FF0">Yellow</option><option value="#F0F">Magenta</option><option value="#0FF">Cyan</option></select><span class="vjs-text-opacity vjs-opacity"><select><option value="">---</option><option value="1">Opaque</option><option value="0.5">Semi-Opaque</option></select></span></div><div class="vjs-bg-color vjs-tracksetting"><label class="vjs-label">Background</label><select><option value="">---</option><option value="#FFF">White</option><option value="#000">Black</option><option value="#F00">Red</option><option value="#0F0">Green</option><option value="#00F">Blue</option><option value="#FF0">Yellow</option><option value="#F0F">Magenta</option><option value="#0FF">Cyan</option></select><span class="vjs-bg-opacity vjs-opacity"><select><option value="">---</option><option value="1">Opaque</option><option value="0.5">Semi-Transparent</option><option value="0">Transparent</option></select></span></div><div class="window-color vjs-tracksetting"><label class="vjs-label">Window</label><select><option value="">---</option><option value="#FFF">White</option><option value="#000">Black</option><option value="#F00">Red</option><option value="#0F0">Green</option><option value="#00F">Blue</option><option value="#FF0">Yellow</option><option value="#F0F">Magenta</option><option value="#0FF">Cyan</option></select><span class="vjs-window-opacity vjs-opacity"><select><option value="">---</option><option value="1">Opaque</option><option value="0.5">Semi-Transparent</option><option value="0">Transparent</option></select></span></div></div><div class="vjs-tracksettings-font"><div class="vjs-font-percent vjs-tracksetting"><label class="vjs-label">Font Size</label><select><option value="0.50">50%</option><option value="0.75">75%</option><option value="1.00" selected>100%</option><option value="1.25">125%</option><option value="1.50">150%</option><option value="1.75">175%</option><option value="2.00">200%</option><option value="3.00">300%</option><option value="4.00">400%</option></select></div><div class="vjs-edge-style vjs-tracksetting"><label class="vjs-label">Text Edge Style</label><select><option value="none">None</option><option value="raised">Raised</option><option value="depressed">Depressed</option><option value="uniform">Uniform</option><option value="dropshadow">Dropshadow</option></select></div><div class="vjs-font-family vjs-tracksetting"><label class="vjs-label">Font Family</label><select><option value="">Default</option><option value="monospaceSerif">Monospace Serif</option><option value="proportionalSerif">Proportional Serif</option><option value="monospaceSansSerif">Monospace Sans-Serif</option><option value="proportionalSansSerif">Proportional Sans-Serif</option><option value="casual">Casual</option><option value="script">Script</option><option value="small-caps">Small Caps</option></select></div></div></div><div class="vjs-tracksettings-controls"><button class="vjs-default-button">Defaults</button><button class="vjs-done-button">Done</button></div>'})};
|
179 |
-
s.Lc=function(){var a,c,d,e,g,h,k,q,r,u;a=this.m();g=X(a.querySelector(".vjs-edge-style select"));h=X(a.querySelector(".vjs-font-family select"));k=X(a.querySelector(".vjs-fg-color > select"));d=X(a.querySelector(".vjs-text-opacity > select"));q=X(a.querySelector(".vjs-bg-color > select"));c=X(a.querySelector(".vjs-bg-opacity > select"));r=X(a.querySelector(".window-color > select"));e=X(a.querySelector(".vjs-window-opacity > select"));a=window.parseFloat(X(a.querySelector(".vjs-font-percent > select")));
|
180 |
-
c={backgroundOpacity:c,textOpacity:d,windowOpacity:e,edgeStyle:g,fontFamily:h,color:k,backgroundColor:q,windowColor:r,fontPercent:a};for(u in c)(""===c[u]||"none"===c[u]||"fontPercent"===u&&1===c[u])&&delete c[u];return c};
|
181 |
-
s.Se=function(a){var c=this.m();Y(c.querySelector(".vjs-edge-style select"),a.Na);Y(c.querySelector(".vjs-font-family select"),a.fontFamily);Y(c.querySelector(".vjs-fg-color > select"),a.color);Y(c.querySelector(".vjs-text-opacity > select"),a.od);Y(c.querySelector(".vjs-bg-color > select"),a.backgroundColor);Y(c.querySelector(".vjs-bg-opacity > select"),a.zc);Y(c.querySelector(".window-color > select"),a.gc);Y(c.querySelector(".vjs-window-opacity > select"),a.vd);(a=a.Rb)&&(a=a.toFixed(2));Y(c.querySelector(".vjs-font-percent > select"),
|
182 |
-
a)};s.Je=function(){var a;try{a=JSON.parse(window.localStorage.getItem("vjs-text-track-settings"))}catch(c){}a&&this.Se(a)};s.Ke=function(){var a;if(this.d.options().persistTextTrackSettings){a=this.Lc();try{t.kb(a)?window.localStorage.removeItem("vjs-text-track-settings"):window.localStorage.setItem("vjs-text-track-settings",JSON.stringify(a))}catch(c){}}};s.C=function(){var a=this.d.ea("textTrackDisplay");a&&a.C()};
|
183 |
-
if("undefined"!==typeof window.JSON&&"function"===typeof window.JSON.parse)t.JSON=window.JSON;else{t.JSON={};var Z=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;t.JSON.parse=function(a,c){function d(a,e){var k,q,r=a[e];if(r&&"object"===typeof r)for(k in r)Object.prototype.hasOwnProperty.call(r,k)&&(q=d(r,k),q!==b?r[k]=q:delete r[k]);return c.call(a,e,r)}var e;a=String(a);Z.lastIndex=0;Z.test(a)&&(a=a.replace(Z,function(a){return"\\u"+("0000"+
|
184 |
-
a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof c?d({"":e},""):e;throw new SyntaxError("JSON.parse(): invalid or malformed JSON data");}}
|
185 |
-
t.yc=function(){var a,c,d,e;a=document.getElementsByTagName("video");c=document.getElementsByTagName("audio");var g=[];if(a&&0<a.length){d=0;for(e=a.length;d<e;d++)g.push(a[d])}if(c&&0<c.length){d=0;for(e=c.length;d<e;d++)g.push(c[d])}if(g&&0<g.length){d=0;for(e=g.length;d<e;d++)if((c=g[d])&&c.getAttribute)c.player===b&&(a=c.getAttribute("data-setup"),a!==j&&videojs(c));else{t.Kb();break}}else t.ud||t.Kb()};t.Kb=function(){setTimeout(t.yc,1)};
|
186 |
-
"complete"===document.readyState?t.ud=f:t.N(window,"load",function(){t.ud=f});t.Kb();t.Ge=function(a,c){t.Player.prototype[a]=c};var Ba=this;function $(a,c){var d=a.split("."),e=Ba;!(d[0]in e)&&e.execScript&&e.execScript("var "+d[0]);for(var g;d.length&&(g=d.shift());)!d.length&&c!==b?e[g]=c:e=e[g]?e[g]:e[g]={}};$("videojs",t);$("_V_",t);$("videojs.options",t.options);$("videojs.players",t.Da);$("videojs.TOUCH_ENABLED",t.Gb);$("videojs.cache",t.va);$("videojs.Component",t.a);t.a.prototype.player=t.a.prototype.k;t.a.prototype.options=t.a.prototype.options;t.a.prototype.init=t.a.prototype.l;t.a.prototype.dispose=t.a.prototype.dispose;t.a.prototype.createEl=t.a.prototype.f;t.a.prototype.contentEl=t.a.prototype.xa;t.a.prototype.el=t.a.prototype.m;t.a.prototype.addChild=t.a.prototype.ba;
|
187 |
-
t.a.prototype.getChild=t.a.prototype.ea;t.a.prototype.getChildById=t.a.prototype.be;t.a.prototype.children=t.a.prototype.children;t.a.prototype.initChildren=t.a.prototype.Oc;t.a.prototype.removeChild=t.a.prototype.removeChild;t.a.prototype.on=t.a.prototype.b;t.a.prototype.off=t.a.prototype.n;t.a.prototype.one=t.a.prototype.N;t.a.prototype.trigger=t.a.prototype.o;t.a.prototype.triggerReady=t.a.prototype.Xa;t.a.prototype.show=t.a.prototype.show;t.a.prototype.hide=t.a.prototype.Y;
|
188 |
-
t.a.prototype.width=t.a.prototype.width;t.a.prototype.height=t.a.prototype.height;t.a.prototype.dimensions=t.a.prototype.Ud;t.a.prototype.ready=t.a.prototype.I;t.a.prototype.addClass=t.a.prototype.p;t.a.prototype.removeClass=t.a.prototype.r;t.a.prototype.hasClass=t.a.prototype.Qa;t.a.prototype.buildCSSClass=t.a.prototype.V;t.a.prototype.localize=t.a.prototype.v;t.a.prototype.setInterval=t.a.prototype.setInterval;t.a.prototype.setTimeout=t.a.prototype.setTimeout;$("videojs.EventEmitter",t.z);
|
189 |
-
t.z.prototype.on=t.z.prototype.b;t.z.prototype.addEventListener=t.z.prototype.addEventListener;t.z.prototype.off=t.z.prototype.n;t.z.prototype.removeEventListener=t.z.prototype.removeEventListener;t.z.prototype.one=t.z.prototype.N;t.z.prototype.trigger=t.z.prototype.o;t.z.prototype.dispatchEvent=t.z.prototype.dispatchEvent;t.Player.prototype.ended=t.Player.prototype.ended;t.Player.prototype.enterFullWindow=t.Player.prototype.Jc;t.Player.prototype.exitFullWindow=t.Player.prototype.Ob;
|
190 |
-
t.Player.prototype.preload=t.Player.prototype.Sa;t.Player.prototype.remainingTime=t.Player.prototype.remainingTime;t.Player.prototype.supportsFullScreen=t.Player.prototype.Ua;t.Player.prototype.currentType=t.Player.prototype.Rd;t.Player.prototype.requestFullScreen=t.Player.prototype.requestFullScreen;t.Player.prototype.requestFullscreen=t.Player.prototype.requestFullscreen;t.Player.prototype.cancelFullScreen=t.Player.prototype.cancelFullScreen;t.Player.prototype.exitFullscreen=t.Player.prototype.exitFullscreen;
|
191 |
-
t.Player.prototype.isFullScreen=t.Player.prototype.isFullScreen;t.Player.prototype.isFullscreen=t.Player.prototype.isFullscreen;t.Player.prototype.textTracks=t.Player.prototype.textTracks;t.Player.prototype.remoteTextTracks=t.Player.prototype.Z;t.Player.prototype.addTextTrack=t.Player.prototype.addTextTrack;t.Player.prototype.addRemoteTextTrack=t.Player.prototype.ia;t.Player.prototype.removeRemoteTextTrack=t.Player.prototype.Ea;t.Player.prototype.seekable=t.Player.prototype.seekable;
|
192 |
-
$("videojs.MediaLoader",t.Gd);$("videojs.TextTrackDisplay",t.ta);$("videojs.ControlBar",t.wb);$("videojs.Button",t.w);$("videojs.PlayToggle",t.oc);$("videojs.FullscreenToggle",t.$a);$("videojs.BigPlayButton",t.ub);$("videojs.LoadingSpinner",t.mc);$("videojs.CurrentTimeDisplay",t.xb);$("videojs.DurationDisplay",t.yb);$("videojs.TimeDivider",t.uc);$("videojs.RemainingTimeDisplay",t.Fb);$("videojs.LiveDisplay",t.lc);$("videojs.ErrorDisplay",t.zb);$("videojs.Slider",t.U);$("videojs.ProgressControl",t.Eb);
|
193 |
-
$("videojs.SeekBar",t.rc);$("videojs.LoadProgressBar",t.Bb);$("videojs.PlayProgressBar",t.nc);$("videojs.SeekHandle",t.ab);$("videojs.VolumeControl",t.Ib);$("videojs.VolumeBar",t.Hb);$("videojs.VolumeLevel",t.vc);$("videojs.VolumeMenuButton",t.Ia);$("videojs.VolumeHandle",t.Jb);$("videojs.MuteToggle",t.sa);$("videojs.PosterImage",t.qc);$("videojs.Menu",t.ra);$("videojs.MenuItem",t.M);$("videojs.MenuButton",t.O);$("videojs.PlaybackRateMenuButton",t.pc);$("videojs.ChaptersTrackMenuItem",t.Za);
|
194 |
-
$("videojs.TextTrackButton",t.Q);$("videojs.TextTrackMenuItem",t.aa);$("videojs.OffTextTrackMenuItem",t.Cb);$("videojs.CaptionSettingsMenuItem",t.vb);t.O.prototype.createItems=t.O.prototype.La;t.Q.prototype.createItems=t.Q.prototype.La;t.Ya.prototype.createItems=t.Ya.prototype.La;$("videojs.SubtitlesButton",t.bb);$("videojs.CaptionsButton",t.pa);$("videojs.ChaptersButton",t.Ya);$("videojs.MediaTechController",t.j);t.j.withSourceHandlers=t.j.hc;t.j.prototype.featuresVolumeControl=t.j.prototype.vf;
|
195 |
-
t.j.prototype.featuresFullscreenResize=t.j.prototype.rf;t.j.prototype.featuresPlaybackRate=t.j.prototype.sf;t.j.prototype.featuresProgressEvents=t.j.prototype.tf;t.j.prototype.featuresTimeupdateEvents=t.j.prototype.uf;t.j.prototype.setPoster=t.j.prototype.fd;t.j.prototype.textTracks=t.j.prototype.textTracks;t.j.prototype.remoteTextTracks=t.j.prototype.Z;t.j.prototype.addTextTrack=t.j.prototype.addTextTrack;t.j.prototype.addRemoteTextTrack=t.j.prototype.ia;t.j.prototype.removeRemoteTextTrack=t.j.prototype.Ea;
|
196 |
-
$("videojs.Html5",t.e);t.e.Events=t.e.Ab;t.e.isSupported=t.e.isSupported;t.e.canPlaySource=t.e.Ac;t.e.patchCanPlayType=t.e.Xc;t.e.unpatchCanPlayType=t.e.cf;t.e.prototype.setCurrentTime=t.e.prototype.cc;t.e.prototype.setVolume=t.e.prototype.Te;t.e.prototype.setMuted=t.e.prototype.Pe;t.e.prototype.setPreload=t.e.prototype.Re;t.e.prototype.setAutoplay=t.e.prototype.Me;t.e.prototype.setLoop=t.e.prototype.Oe;t.e.prototype.enterFullScreen=t.e.prototype.Ic;t.e.prototype.exitFullScreen=t.e.prototype.Yd;
|
197 |
-
t.e.prototype.playbackRate=t.e.prototype.playbackRate;t.e.prototype.setPlaybackRate=t.e.prototype.Qe;t.e.registerSourceHandler=t.e.Ta;t.e.selectSourceHandler=t.e.rb;t.e.prototype.setSource=t.e.prototype.na;t.e.prototype.disposeSourceHandler=t.e.prototype.ja;t.e.prototype.textTracks=t.e.prototype.textTracks;t.e.prototype.remoteTextTracks=t.e.prototype.Z;t.e.prototype.addTextTrack=t.e.prototype.addTextTrack;t.e.prototype.addRemoteTextTrack=t.e.prototype.ia;t.e.prototype.removeRemoteTextTrack=t.e.prototype.Ea;
|
198 |
-
$("videojs.Flash",t.g);t.g.isSupported=t.g.isSupported;t.g.canPlaySource=t.g.Ac;t.g.onReady=t.g.onReady;t.g.embed=t.g.Hc;t.g.version=t.g.version;t.g.prototype.setSource=t.g.prototype.na;t.g.registerSourceHandler=t.g.Ta;t.g.selectSourceHandler=t.g.rb;t.g.prototype.setSource=t.g.prototype.na;t.g.prototype.disposeSourceHandler=t.g.prototype.ja;$("videojs.TextTrack",t.t);$("videojs.TextTrackList",t.F);$("videojs.TextTrackCueList",t.W);$("videojs.TextTrackSettings",t.tc);t.t.prototype.id=t.t.prototype.id;
|
199 |
-
t.t.prototype.label=t.t.prototype.label;t.t.prototype.kind=t.t.prototype.Xb;t.t.prototype.mode=t.t.prototype.mode;t.t.prototype.cues=t.t.prototype.Ec;t.t.prototype.activeCues=t.t.prototype.of;t.t.prototype.addCue=t.t.prototype.wc;t.t.prototype.removeCue=t.t.prototype.bd;t.F.prototype.getTrackById=t.F.prototype.ee;t.W.prototype.getCueById=t.F.prototype.ce;$("videojs.CaptionsTrack",t.hf);$("videojs.SubtitlesTrack",t.nf);$("videojs.ChaptersTrack",t.jf);$("videojs.autoSetup",t.yc);
|
200 |
-
$("videojs.plugin",t.Ge);$("videojs.createTimeRange",t.ya);$("videojs.util",t.$);t.$.mergeOptions=t.$.Ba;t.addLanguage=t.Kd;})();
|
201 |
|
202 |
-
/* vtt.js - v0.12.1 (https://github.com/mozilla/vtt.js) built on 08-07-2015 */
|
203 |
-
!function(a){var b=a.vttjs={},c=b.VTTCue,d=b.VTTRegion,e=a.VTTCue,f=a.VTTRegion;b.shim=function(){b.VTTCue=c,b.VTTRegion=d},b.restore=function(){b.VTTCue=e,b.VTTRegion=f}}(this),function(a,b){function c(a){if("string"!=typeof a)return!1;var b=h[a.toLowerCase()];return b?a.toLowerCase():!1}function d(a){if("string"!=typeof a)return!1;var b=i[a.toLowerCase()];return b?a.toLowerCase():!1}function e(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)a[d]=c[d]}return a}function f(a,b,f){var h=this,i=/MSIE\s8\.0/.test(navigator.userAgent),j={};i?h=document.createElement("custom"):j.enumerable=!0,h.hasBeenReset=!1;var k="",l=!1,m=a,n=b,o=f,p=null,q="",r=!0,s="auto",t="start",u=50,v="middle",w=50,x="middle";return Object.defineProperty(h,"id",e({},j,{get:function(){return k},set:function(a){k=""+a}})),Object.defineProperty(h,"pauseOnExit",e({},j,{get:function(){return l},set:function(a){l=!!a}})),Object.defineProperty(h,"startTime",e({},j,{get:function(){return m},set:function(a){if("number"!=typeof a)throw new TypeError("Start time must be set to a number.");m=a,this.hasBeenReset=!0}})),Object.defineProperty(h,"endTime",e({},j,{get:function(){return n},set:function(a){if("number"!=typeof a)throw new TypeError("End time must be set to a number.");n=a,this.hasBeenReset=!0}})),Object.defineProperty(h,"text",e({},j,{get:function(){return o},set:function(a){o=""+a,this.hasBeenReset=!0}})),Object.defineProperty(h,"region",e({},j,{get:function(){return p},set:function(a){p=a,this.hasBeenReset=!0}})),Object.defineProperty(h,"vertical",e({},j,{get:function(){return q},set:function(a){var b=c(a);if(b===!1)throw new SyntaxError("An invalid or illegal string was specified.");q=b,this.hasBeenReset=!0}})),Object.defineProperty(h,"snapToLines",e({},j,{get:function(){return r},set:function(a){r=!!a,this.hasBeenReset=!0}})),Object.defineProperty(h,"line",e({},j,{get:function(){return s},set:function(a){if("number"!=typeof a&&a!==g)throw new SyntaxError("An invalid number or illegal string was specified.");s=a,this.hasBeenReset=!0}})),Object.defineProperty(h,"lineAlign",e({},j,{get:function(){return t},set:function(a){var b=d(a);if(!b)throw new SyntaxError("An invalid or illegal string was specified.");t=b,this.hasBeenReset=!0}})),Object.defineProperty(h,"position",e({},j,{get:function(){return u},set:function(a){if(0>a||a>100)throw new Error("Position must be between 0 and 100.");u=a,this.hasBeenReset=!0}})),Object.defineProperty(h,"positionAlign",e({},j,{get:function(){return v},set:function(a){var b=d(a);if(!b)throw new SyntaxError("An invalid or illegal string was specified.");v=b,this.hasBeenReset=!0}})),Object.defineProperty(h,"size",e({},j,{get:function(){return w},set:function(a){if(0>a||a>100)throw new Error("Size must be between 0 and 100.");w=a,this.hasBeenReset=!0}})),Object.defineProperty(h,"align",e({},j,{get:function(){return x},set:function(a){var b=d(a);if(!b)throw new SyntaxError("An invalid or illegal string was specified.");x=b,this.hasBeenReset=!0}})),h.displayState=void 0,i?h:void 0}var g="auto",h={"":!0,lr:!0,rl:!0},i={start:!0,middle:!0,end:!0,left:!0,right:!0};f.prototype.getCueAsHTML=function(){return WebVTT.convertCueToDOMTree(window,this.text)},a.VTTCue=a.VTTCue||f,b.VTTCue=f}(this,this.vttjs||{}),function(a,b){function c(a){if("string"!=typeof a)return!1;var b=f[a.toLowerCase()];return b?a.toLowerCase():!1}function d(a){return"number"==typeof a&&a>=0&&100>=a}function e(){var a=100,b=3,e=0,f=100,g=0,h=100,i="";Object.defineProperties(this,{width:{enumerable:!0,get:function(){return a},set:function(b){if(!d(b))throw new Error("Width must be between 0 and 100.");a=b}},lines:{enumerable:!0,get:function(){return b},set:function(a){if("number"!=typeof a)throw new TypeError("Lines must be set to a number.");b=a}},regionAnchorY:{enumerable:!0,get:function(){return f},set:function(a){if(!d(a))throw new Error("RegionAnchorX must be between 0 and 100.");f=a}},regionAnchorX:{enumerable:!0,get:function(){return e},set:function(a){if(!d(a))throw new Error("RegionAnchorY must be between 0 and 100.");e=a}},viewportAnchorY:{enumerable:!0,get:function(){return h},set:function(a){if(!d(a))throw new Error("ViewportAnchorY must be between 0 and 100.");h=a}},viewportAnchorX:{enumerable:!0,get:function(){return g},set:function(a){if(!d(a))throw new Error("ViewportAnchorX must be between 0 and 100.");g=a}},scroll:{enumerable:!0,get:function(){return i},set:function(a){var b=c(a);if(b===!1)throw new SyntaxError("An invalid or illegal string was specified.");i=b}}})}var f={"":!0,up:!0};a.VTTRegion=a.VTTRegion||e,b.VTTRegion=e}(this,this.vttjs||{}),function(a){function b(a,b){this.name="ParsingError",this.code=a.code,this.message=b||a.message}function c(a){function b(a,b,c,d){return 3600*(0|a)+60*(0|b)+(0|c)+(0|d)/1e3}var c=a.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);return c?c[3]?b(c[1],c[2],c[3].replace(":",""),c[4]):c[1]>59?b(c[1],c[2],0,c[4]):b(0,c[1],c[2],c[4]):null}function d(){this.values=o(null)}function e(a,b,c,d){var e=d?a.split(d):[a];for(var f in e)if("string"==typeof e[f]){var g=e[f].split(c);if(2===g.length){var h=g[0],i=g[1];b(h,i)}}}function f(a,f,g){function h(){var d=c(a);if(null===d)throw new b(b.Errors.BadTimeStamp,"Malformed timestamp: "+k);return a=a.replace(/^[^\sa-zA-Z-]+/,""),d}function i(a,b){var c=new d;e(a,function(a,b){switch(a){case"region":for(var d=g.length-1;d>=0;d--)if(g[d].id===b){c.set(a,g[d].region);break}break;case"vertical":c.alt(a,b,["rl","lr"]);break;case"line":var e=b.split(","),f=e[0];c.integer(a,f),c.percent(a,f)?c.set("snapToLines",!1):null,c.alt(a,f,["auto"]),2===e.length&&c.alt("lineAlign",e[1],["start","middle","end"]);break;case"position":e=b.split(","),c.percent(a,e[0]),2===e.length&&c.alt("positionAlign",e[1],["start","middle","end"]);break;case"size":c.percent(a,b);break;case"align":c.alt(a,b,["start","middle","end","left","right"])}},/:/,/\s/),b.region=c.get("region",null),b.vertical=c.get("vertical",""),b.line=c.get("line","auto"),b.lineAlign=c.get("lineAlign","start"),b.snapToLines=c.get("snapToLines",!0),b.size=c.get("size",100),b.align=c.get("align","middle"),b.position=c.get("position",{start:0,left:0,middle:50,end:100,right:100},b.align),b.positionAlign=c.get("positionAlign",{start:"start",left:"start",middle:"middle",end:"end",right:"end"},b.align)}function j(){a=a.replace(/^\s+/,"")}var k=a;if(j(),f.startTime=h(),j(),"-->"!==a.substr(0,3))throw new b(b.Errors.BadTimeStamp,"Malformed time stamp (time stamps must be separated by '-->'): "+k);a=a.substr(3),j(),f.endTime=h(),j(),i(a,f)}function g(a,b){function d(){function a(a){return b=b.substr(a.length),a}if(!b)return null;var c=b.match(/^([^<]*)(<[^>]+>?)?/);return a(c[1]?c[1]:c[2])}function e(a){return p[a]}function f(a){for(;o=a.match(/&(amp|lt|gt|lrm|rlm|nbsp);/);)a=a.replace(o[0],e);return a}function g(a,b){return!s[b.localName]||s[b.localName]===a.localName}function h(b,c){var d=q[b];if(!d)return null;var e=a.document.createElement(d);e.localName=d;var f=r[b];return f&&c&&(e[f]=c.trim()),e}for(var i,j=a.document.createElement("div"),k=j,l=[];null!==(i=d());)if("<"!==i[0])k.appendChild(a.document.createTextNode(f(i)));else{if("/"===i[1]){l.length&&l[l.length-1]===i.substr(2).replace(">","")&&(l.pop(),k=k.parentNode);continue}var m,n=c(i.substr(1,i.length-2));if(n){m=a.document.createProcessingInstruction("timestamp",n),k.appendChild(m);continue}var o=i.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/);if(!o)continue;if(m=h(o[1],o[3]),!m)continue;if(!g(k,m))continue;o[2]&&(m.className=o[2].substr(1).replace("."," ")),l.push(o[1]),k.appendChild(m),k=m}return j}function h(a){function b(a,b){for(var c=b.childNodes.length-1;c>=0;c--)a.push(b.childNodes[c])}function c(a){if(!a||!a.length)return null;var d=a.pop(),e=d.textContent||d.innerText;if(e){var f=e.match(/^.*(\n|\r)/);return f?(a.length=0,f[0]):e}return"ruby"===d.tagName?c(a):d.childNodes?(b(a,d),c(a)):void 0}var d,e=[],f="";if(!a||!a.childNodes)return"ltr";for(b(e,a);f=c(e);)for(var g=0;g<f.length;g++){d=f.charCodeAt(g);for(var h=0;h<t.length;h++)if(t[h]===d)return"rtl"}return"ltr"}function i(a){if("number"==typeof a.line&&(a.snapToLines||a.line>=0&&a.line<=100))return a.line;if(!a.track||!a.track.textTrackList||!a.track.textTrackList.mediaElement)return-1;for(var b=a.track,c=b.textTrackList,d=0,e=0;e<c.length&&c[e]!==b;e++)"showing"===c[e].mode&&d++;return-1*++d}function j(){}function k(a,b,c){var d=/MSIE\s8\.0/.test(navigator.userAgent),e="rgba(255, 255, 255, 1)",f="rgba(0, 0, 0, 0.8)";d&&(e="rgb(255, 255, 255)",f="rgb(0, 0, 0)"),j.call(this),this.cue=b,this.cueDiv=g(a,b.text);var i={color:e,backgroundColor:f,position:"relative",left:0,right:0,top:0,bottom:0,display:"inline"};d||(i.writingMode=""===b.vertical?"horizontal-tb":"lr"===b.vertical?"vertical-lr":"vertical-rl",i.unicodeBidi="plaintext"),this.applyStyles(i,this.cueDiv),this.div=a.document.createElement("div"),i={textAlign:"middle"===b.align?"center":b.align,font:c.font,whiteSpace:"pre-line",position:"absolute"},d||(i.direction=h(this.cueDiv),i.writingMode=""===b.vertical?"horizontal-tb":"lr"===b.vertical?"vertical-lr":"vertical-rl".stylesunicodeBidi="plaintext"),this.applyStyles(i),this.div.appendChild(this.cueDiv);var k=0;switch(b.positionAlign){case"start":k=b.position;break;case"middle":k=b.position-b.size/2;break;case"end":k=b.position-b.size}this.applyStyles(""===b.vertical?{left:this.formatStyle(k,"%"),width:this.formatStyle(b.size,"%")}:{top:this.formatStyle(k,"%"),height:this.formatStyle(b.size,"%")}),this.move=function(a){this.applyStyles({top:this.formatStyle(a.top,"px"),bottom:this.formatStyle(a.bottom,"px"),left:this.formatStyle(a.left,"px"),right:this.formatStyle(a.right,"px"),height:this.formatStyle(a.height,"px"),width:this.formatStyle(a.width,"px")})}}function l(a){var b,c,d,e,f=/MSIE\s8\.0/.test(navigator.userAgent);if(a.div){c=a.div.offsetHeight,d=a.div.offsetWidth,e=a.div.offsetTop;var g=(g=a.div.childNodes)&&(g=g[0])&&g.getClientRects&&g.getClientRects();a=a.div.getBoundingClientRect(),b=g?Math.max(g[0]&&g[0].height||0,a.height/g.length):0}this.left=a.left,this.right=a.right,this.top=a.top||e,this.height=a.height||c,this.bottom=a.bottom||e+(a.height||c),this.width=a.width||d,this.lineHeight=void 0!==b?b:a.lineHeight,f&&!this.lineHeight&&(this.lineHeight=13)}function m(a,b,c,d){function e(a,b){for(var e,f=new l(a),g=1,h=0;h<b.length;h++){for(;a.overlapsOppositeAxis(c,b[h])||a.within(c)&&a.overlapsAny(d);)a.move(b[h]);if(a.within(c))return a;var i=a.intersectPercentage(c);g>i&&(e=new l(a),g=i),a=new l(f)}return e||f}var f=new l(b),g=b.cue,h=i(g),j=[];if(g.snapToLines){var k;switch(g.vertical){case"":j=["+y","-y"],k="height";break;case"rl":j=["+x","-x"],k="width";break;case"lr":j=["-x","+x"],k="width"}var m=f.lineHeight,n=m*Math.round(h),o=c[k]+m,p=j[0];Math.abs(n)>o&&(n=0>n?-1:1,n*=Math.ceil(o/m)*m),0>h&&(n+=""===g.vertical?c.height:c.width,j=j.reverse()),f.move(p,n)}else{var q=f.lineHeight/c.height*100;switch(g.lineAlign){case"middle":h-=q/2;break;case"end":h-=q}switch(g.vertical){case"":b.applyStyles({top:b.formatStyle(h,"%")});break;case"rl":b.applyStyles({left:b.formatStyle(h,"%")});break;case"lr":b.applyStyles({right:b.formatStyle(h,"%")})}j=["+y","-x","+x","-y"],f=new l(b)}var r=e(f,j);b.move(r.toCSSCompatValues(c))}function n(){}var o=Object.create||function(){function a(){}return function(b){if(1!==arguments.length)throw new Error("Object.create shim only accepts one parameter.");return a.prototype=b,new a}}();b.prototype=o(Error.prototype),b.prototype.constructor=b,b.Errors={BadSignature:{code:0,message:"Malformed WebVTT signature."},BadTimeStamp:{code:1,message:"Malformed time stamp."}},d.prototype={set:function(a,b){this.get(a)||""===b||(this.values[a]=b)},get:function(a,b,c){return c?this.has(a)?this.values[a]:b[c]:this.has(a)?this.values[a]:b},has:function(a){return a in this.values},alt:function(a,b,c){for(var d=0;d<c.length;++d)if(b===c[d]){this.set(a,b);break}},integer:function(a,b){/^-?\d+$/.test(b)&&this.set(a,parseInt(b,10))},percent:function(a,b){var c;return(c=b.match(/^([\d]{1,3})(\.[\d]*)?%$/))&&(b=parseFloat(b),b>=0&&100>=b)?(this.set(a,b),!0):!1}};var p={"&":"&","<":"<",">":">","‎":"","‏":""," ":" "},q={c:"span",i:"i",b:"b",u:"u",ruby:"ruby",rt:"rt",v:"span",lang:"span"},r={v:"title",lang:"lang"},s={rt:"ruby"},t=[1470,1472,1475,1478,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1520,1521,1522,1523,1524,1544,1547,1549,1563,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1645,1646,1647,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1765,1766,1774,1775,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1807,1808,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1969,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2e3,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2036,2037,2042,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2074,2084,2088,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2142,2208,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,8207,64285,64287,64288,64289,64290,64291,64292,64293,64294,64295,64296,64298,64299,64300,64301,64302,64303,64304,64305,64306,64307,64308,64309,64310,64312,64313,64314,64315,64316,64318,64320,64321,64323,64324,64326,64327,64328,64329,64330,64331,64332,64333,64334,64335,64336,64337,64338,64339,64340,64341,64342,64343,64344,64345,64346,64347,64348,64349,64350,64351,64352,64353,64354,64355,64356,64357,64358,64359,64360,64361,64362,64363,64364,64365,64366,64367,64368,64369,64370,64371,64372,64373,64374,64375,64376,64377,64378,64379,64380,64381,64382,64383,64384,64385,64386,64387,64388,64389,64390,64391,64392,64393,64394,64395,64396,64397,64398,64399,64400,64401,64402,64403,64404,64405,64406,64407,64408,64409,64410,64411,64412,64413,64414,64415,64416,64417,64418,64419,64420,64421,64422,64423,64424,64425,64426,64427,64428,64429,64430,64431,64432,64433,64434,64435,64436,64437,64438,64439,64440,64441,64442,64443,64444,64445,64446,64447,64448,64449,64467,64468,64469,64470,64471,64472,64473,64474,64475,64476,64477,64478,64479,64480,64481,64482,64483,64484,64485,64486,64487,64488,64489,64490,64491,64492,64493,64494,64495,64496,64497,64498,64499,64500,64501,64502,64503,64504,64505,64506,64507,64508,64509,64510,64511,64512,64513,64514,64515,64516,64517,64518,64519,64520,64521,64522,64523,64524,64525,64526,64527,64528,64529,64530,64531,64532,64533,64534,64535,64536,64537,64538,64539,64540,64541,64542,64543,64544,64545,64546,64547,64548,64549,64550,64551,64552,64553,64554,64555,64556,64557,64558,64559,64560,64561,64562,64563,64564,64565,64566,64567,64568,64569,64570,64571,64572,64573,64574,64575,64576,64577,64578,64579,64580,64581,64582,64583,64584,64585,64586,64587,64588,64589,64590,64591,64592,64593,64594,64595,64596,64597,64598,64599,64600,64601,64602,64603,64604,64605,64606,64607,64608,64609,64610,64611,64612,64613,64614,64615,64616,64617,64618,64619,64620,64621,64622,64623,64624,64625,64626,64627,64628,64629,64630,64631,64632,64633,64634,64635,64636,64637,64638,64639,64640,64641,64642,64643,64644,64645,64646,64647,64648,64649,64650,64651,64652,64653,64654,64655,64656,64657,64658,64659,64660,64661,64662,64663,64664,64665,64666,64667,64668,64669,64670,64671,64672,64673,64674,64675,64676,64677,64678,64679,64680,64681,64682,64683,64684,64685,64686,64687,64688,64689,64690,64691,64692,64693,64694,64695,64696,64697,64698,64699,64700,64701,64702,64703,64704,64705,64706,64707,64708,64709,64710,64711,64712,64713,64714,64715,64716,64717,64718,64719,64720,64721,64722,64723,64724,64725,64726,64727,64728,64729,64730,64731,64732,64733,64734,64735,64736,64737,64738,64739,64740,64741,64742,64743,64744,64745,64746,64747,64748,64749,64750,64751,64752,64753,64754,64755,64756,64757,64758,64759,64760,64761,64762,64763,64764,64765,64766,64767,64768,64769,64770,64771,64772,64773,64774,64775,64776,64777,64778,64779,64780,64781,64782,64783,64784,64785,64786,64787,64788,64789,64790,64791,64792,64793,64794,64795,64796,64797,64798,64799,64800,64801,64802,64803,64804,64805,64806,64807,64808,64809,64810,64811,64812,64813,64814,64815,64816,64817,64818,64819,64820,64821,64822,64823,64824,64825,64826,64827,64828,64829,64848,64849,64850,64851,64852,64853,64854,64855,64856,64857,64858,64859,64860,64861,64862,64863,64864,64865,64866,64867,64868,64869,64870,64871,64872,64873,64874,64875,64876,64877,64878,64879,64880,64881,64882,64883,64884,64885,64886,64887,64888,64889,64890,64891,64892,64893,64894,64895,64896,64897,64898,64899,64900,64901,64902,64903,64904,64905,64906,64907,64908,64909,64910,64911,64914,64915,64916,64917,64918,64919,64920,64921,64922,64923,64924,64925,64926,64927,64928,64929,64930,64931,64932,64933,64934,64935,64936,64937,64938,64939,64940,64941,64942,64943,64944,64945,64946,64947,64948,64949,64950,64951,64952,64953,64954,64955,64956,64957,64958,64959,64960,64961,64962,64963,64964,64965,64966,64967,65008,65009,65010,65011,65012,65013,65014,65015,65016,65017,65018,65019,65020,65136,65137,65138,65139,65140,65142,65143,65144,65145,65146,65147,65148,65149,65150,65151,65152,65153,65154,65155,65156,65157,65158,65159,65160,65161,65162,65163,65164,65165,65166,65167,65168,65169,65170,65171,65172,65173,65174,65175,65176,65177,65178,65179,65180,65181,65182,65183,65184,65185,65186,65187,65188,65189,65190,65191,65192,65193,65194,65195,65196,65197,65198,65199,65200,65201,65202,65203,65204,65205,65206,65207,65208,65209,65210,65211,65212,65213,65214,65215,65216,65217,65218,65219,65220,65221,65222,65223,65224,65225,65226,65227,65228,65229,65230,65231,65232,65233,65234,65235,65236,65237,65238,65239,65240,65241,65242,65243,65244,65245,65246,65247,65248,65249,65250,65251,65252,65253,65254,65255,65256,65257,65258,65259,65260,65261,65262,65263,65264,65265,65266,65267,65268,65269,65270,65271,65272,65273,65274,65275,65276,67584,67585,67586,67587,67588,67589,67592,67594,67595,67596,67597,67598,67599,67600,67601,67602,67603,67604,67605,67606,67607,67608,67609,67610,67611,67612,67613,67614,67615,67616,67617,67618,67619,67620,67621,67622,67623,67624,67625,67626,67627,67628,67629,67630,67631,67632,67633,67634,67635,67636,67637,67639,67640,67644,67647,67648,67649,67650,67651,67652,67653,67654,67655,67656,67657,67658,67659,67660,67661,67662,67663,67664,67665,67666,67667,67668,67669,67671,67672,67673,67674,67675,67676,67677,67678,67679,67840,67841,67842,67843,67844,67845,67846,67847,67848,67849,67850,67851,67852,67853,67854,67855,67856,67857,67858,67859,67860,67861,67862,67863,67864,67865,67866,67867,67872,67873,67874,67875,67876,67877,67878,67879,67880,67881,67882,67883,67884,67885,67886,67887,67888,67889,67890,67891,67892,67893,67894,67895,67896,67897,67903,67968,67969,67970,67971,67972,67973,67974,67975,67976,67977,67978,67979,67980,67981,67982,67983,67984,67985,67986,67987,67988,67989,67990,67991,67992,67993,67994,67995,67996,67997,67998,67999,68e3,68001,68002,68003,68004,68005,68006,68007,68008,68009,68010,68011,68012,68013,68014,68015,68016,68017,68018,68019,68020,68021,68022,68023,68030,68031,68096,68112,68113,68114,68115,68117,68118,68119,68121,68122,68123,68124,68125,68126,68127,68128,68129,68130,68131,68132,68133,68134,68135,68136,68137,68138,68139,68140,68141,68142,68143,68144,68145,68146,68147,68160,68161,68162,68163,68164,68165,68166,68167,68176,68177,68178,68179,68180,68181,68182,68183,68184,68192,68193,68194,68195,68196,68197,68198,68199,68200,68201,68202,68203,68204,68205,68206,68207,68208,68209,68210,68211,68212,68213,68214,68215,68216,68217,68218,68219,68220,68221,68222,68223,68352,68353,68354,68355,68356,68357,68358,68359,68360,68361,68362,68363,68364,68365,68366,68367,68368,68369,68370,68371,68372,68373,68374,68375,68376,68377,68378,68379,68380,68381,68382,68383,68384,68385,68386,68387,68388,68389,68390,68391,68392,68393,68394,68395,68396,68397,68398,68399,68400,68401,68402,68403,68404,68405,68416,68417,68418,68419,68420,68421,68422,68423,68424,68425,68426,68427,68428,68429,68430,68431,68432,68433,68434,68435,68436,68437,68440,68441,68442,68443,68444,68445,68446,68447,68448,68449,68450,68451,68452,68453,68454,68455,68456,68457,68458,68459,68460,68461,68462,68463,68464,68465,68466,68472,68473,68474,68475,68476,68477,68478,68479,68608,68609,68610,68611,68612,68613,68614,68615,68616,68617,68618,68619,68620,68621,68622,68623,68624,68625,68626,68627,68628,68629,68630,68631,68632,68633,68634,68635,68636,68637,68638,68639,68640,68641,68642,68643,68644,68645,68646,68647,68648,68649,68650,68651,68652,68653,68654,68655,68656,68657,68658,68659,68660,68661,68662,68663,68664,68665,68666,68667,68668,68669,68670,68671,68672,68673,68674,68675,68676,68677,68678,68679,68680,126464,126465,126466,126467,126469,126470,126471,126472,126473,126474,126475,126476,126477,126478,126479,126480,126481,126482,126483,126484,126485,126486,126487,126488,126489,126490,126491,126492,126493,126494,126495,126497,126498,126500,126503,126505,126506,126507,126508,126509,126510,126511,126512,126513,126514,126516,126517,126518,126519,126521,126523,126530,126535,126537,126539,126541,126542,126543,126545,126546,126548,126551,126553,126555,126557,126559,126561,126562,126564,126567,126568,126569,126570,126572,126573,126574,126575,126576,126577,126578,126580,126581,126582,126583,126585,126586,126587,126588,126590,126592,126593,126594,126595,126596,126597,126598,126599,126600,126601,126603,126604,126605,126606,126607,126608,126609,126610,126611,126612,126613,126614,126615,126616,126617,126618,126619,126625,126626,126627,126629,126630,126631,126632,126633,126635,126636,126637,126638,126639,126640,126641,126642,126643,126644,126645,126646,126647,126648,126649,126650,126651,1114109];j.prototype.applyStyles=function(a,b){b=b||this.div;for(var c in a)a.hasOwnProperty(c)&&(b.style[c]=a[c])},j.prototype.formatStyle=function(a,b){return 0===a?0:a+b},k.prototype=o(j.prototype),k.prototype.constructor=k,l.prototype.move=function(a,b){switch(b=void 0!==b?b:this.lineHeight,a){case"+x":this.left+=b,this.right+=b;break;case"-x":this.left-=b,this.right-=b;break;case"+y":this.top+=b,this.bottom+=b;break;case"-y":this.top-=b,this.bottom-=b}},l.prototype.overlaps=function(a){return this.left<a.right&&this.right>a.left&&this.top<a.bottom&&this.bottom>a.top},l.prototype.overlapsAny=function(a){for(var b=0;b<a.length;b++)if(this.overlaps(a[b]))return!0;return!1},l.prototype.within=function(a){return this.top>=a.top&&this.bottom<=a.bottom&&this.left>=a.left&&this.right<=a.right},l.prototype.overlapsOppositeAxis=function(a,b){switch(b){case"+x":return this.left<a.left;case"-x":return this.right>a.right;case"+y":return this.top<a.top;case"-y":return this.bottom>a.bottom}},l.prototype.intersectPercentage=function(a){var b=Math.max(0,Math.min(this.right,a.right)-Math.max(this.left,a.left)),c=Math.max(0,Math.min(this.bottom,a.bottom)-Math.max(this.top,a.top)),d=b*c;return d/(this.height*this.width)},l.prototype.toCSSCompatValues=function(a){return{top:this.top-a.top,bottom:a.bottom-this.bottom,left:this.left-a.left,right:a.right-this.right,height:this.height,width:this.width}},l.getSimpleBoxPosition=function(a){var b=a.div?a.div.offsetHeight:a.tagName?a.offsetHeight:0,c=a.div?a.div.offsetWidth:a.tagName?a.offsetWidth:0,d=a.div?a.div.offsetTop:a.tagName?a.offsetTop:0;a=a.div?a.div.getBoundingClientRect():a.tagName?a.getBoundingClientRect():a;var e={left:a.left,right:a.right,top:a.top||d,height:a.height||b,bottom:a.bottom||d+(a.height||b),width:a.width||c};return e},n.StringDecoder=function(){return{decode:function(a){if(!a)return"";if("string"!=typeof a)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(a))}}},n.convertCueToDOMTree=function(a,b){return a&&b?g(a,b):null};var u=.05,v="sans-serif",w="1.5%";n.processCues=function(a,b,c){function d(a){for(var b=0;b<a.length;b++)if(a[b].hasBeenReset||!a[b].displayState)return!0;return!1}if(!a||!b||!c)return null;for(;c.firstChild;)c.removeChild(c.firstChild);var e=a.document.createElement("div");if(e.style.position="absolute",e.style.left="0",e.style.right="0",e.style.top="0",e.style.bottom="0",e.style.margin=w,c.appendChild(e),d(b)){var f=[],g=l.getSimpleBoxPosition(e),h=Math.round(g.height*u*100)/100,i={font:h+"px "+v};!function(){for(var c,d,h=0;h<b.length;h++)d=b[h],c=new k(a,d,i),e.appendChild(c.div),m(a,c,g,f),d.displayState=c.div,f.push(l.getSimpleBoxPosition(c))}()}else for(var j=0;j<b.length;j++)e.appendChild(b[j].displayState)},n.Parser=function(a,b,c){c||(c=b,b={}),b||(b={}),this.window=a,this.vttjs=b,this.state="INITIAL",this.buffer="",this.decoder=c||new TextDecoder("utf8"),this.regionList=[]},n.Parser.prototype={reportOrThrowError:function(a){if(!(a instanceof b))throw a;this.onparsingerror&&this.onparsingerror(a)},parse:function(a){function c(){for(var a=i.buffer,b=0;b<a.length&&"\r"!==a[b]&&"\n"!==a[b];)++b;var c=a.substr(0,b);return"\r"===a[b]&&++b,"\n"===a[b]&&++b,i.buffer=a.substr(b),c}function g(a){var b=new d;if(e(a,function(a,c){switch(a){case"id":b.set(a,c);break;case"width":b.percent(a,c);break;case"lines":b.integer(a,c);break;case"regionanchor":case"viewportanchor":var e=c.split(",");if(2!==e.length)break;var f=new d;if(f.percent("x",e[0]),f.percent("y",e[1]),!f.has("x")||!f.has("y"))break;b.set(a+"X",f.get("x")),b.set(a+"Y",f.get("y"));break;case"scroll":b.alt(a,c,["up"])}},/=/,/\s/),b.has("id")){var c=new(i.vttjs.VTTRegion||i.window.VTTRegion);c.width=b.get("width",100),c.lines=b.get("lines",3),c.regionAnchorX=b.get("regionanchorX",0),c.regionAnchorY=b.get("regionanchorY",100),c.viewportAnchorX=b.get("viewportanchorX",0),c.viewportAnchorY=b.get("viewportanchorY",100),c.scroll=b.get("scroll",""),i.onregion&&i.onregion(c),i.regionList.push({id:b.get("id"),region:c})}}function h(a){e(a,function(a,b){switch(a){case"Region":g(b)}},/:/)}var i=this;a&&(i.buffer+=i.decoder.decode(a,{stream:!0}));try{var j;if("INITIAL"===i.state){if(!/\r\n|\n/.test(i.buffer))return this;j=c();var k=j.match(/^WEBVTT([ \t].*)?$/);if(!k||!k[0])throw new b(b.Errors.BadSignature);i.state="HEADER"}for(var l=!1;i.buffer;){if(!/\r\n|\n/.test(i.buffer))return this;switch(l?l=!1:j=c(),i.state){case"HEADER":/:/.test(j)?h(j):j||(i.state="ID");continue;case"NOTE":j||(i.state="ID");continue;case"ID":if(/^NOTE($|[ \t])/.test(j)){i.state="NOTE";break}if(!j)continue;if(i.cue=new(i.vttjs.VTTCue||i.window.VTTCue)(0,0,""),i.state="CUE",-1===j.indexOf("-->")){i.cue.id=j;continue}case"CUE":try{f(j,i.cue,i.regionList)}catch(m){i.reportOrThrowError(m),i.cue=null,i.state="BADCUE";continue}i.state="CUETEXT";continue;case"CUETEXT":var n=-1!==j.indexOf("-->");if(!j||n&&(l=!0)){i.oncue&&i.oncue(i.cue),i.cue=null,i.state="ID";continue}i.cue.text&&(i.cue.text+="\n"),i.cue.text+=j;continue;case"BADCUE":j||(i.state="ID");continue}}}catch(m){i.reportOrThrowError(m),"CUETEXT"===i.state&&i.cue&&i.oncue&&i.oncue(i.cue),i.cue=null,i.state="INITIAL"===i.state?"BADWEBVTT":"BADCUE"}return this},flush:function(){var a=this;try{if(a.buffer+=a.decoder.decode(),(a.cue||"HEADER"===a.state)&&(a.buffer+="\n\n",a.parse()),"INITIAL"===a.state)throw new b(b.Errors.BadSignature)}catch(c){a.reportOrThrowError(c)}return a.onflush&&a.onflush(),this}},a.WebVTT=n}(this,this.vttjs||{});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* @license
|
3 |
+
* Video.js 5.5.3 <http://videojs.com/>
|
4 |
+
* Copyright Brightcove, Inc. <https://www.brightcove.com/>
|
5 |
+
* Available under Apache License Version 2.0
|
6 |
+
* <https://github.com/videojs/video.js/blob/master/LICENSE>
|
7 |
+
*
|
8 |
+
* Includes vtt.js <https://github.com/mozilla/vtt.js>
|
9 |
+
* Available under Apache License Version 2.0
|
10 |
+
* <https://github.com/mozilla/vtt.js/blob/master/LICENSE>
|
11 |
+
*/
|
12 |
+
!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.videojs=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b){(function(c){var d="undefined"!=typeof c?c:"undefined"!=typeof window?window:{},e=a("min-document");if("undefined"!=typeof document)b.exports=document;else{var f=d["__GLOBAL_DOCUMENT_CACHE@4"];f||(f=d["__GLOBAL_DOCUMENT_CACHE@4"]=e),b.exports=f}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"min-document":3}],2:[function(a,b){(function(a){b.exports="undefined"!=typeof window?window:"undefined"!=typeof a?a:"undefined"!=typeof self?self:{}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],3:[function(){},{}],4:[function(a,b){var c=a("../internal/getNative"),d=c(Date,"now"),e=d||function(){return(new Date).getTime()};b.exports=e},{"../internal/getNative":20}],5:[function(a,b){function c(a,b,c){function h(){r&&clearTimeout(r),n&&clearTimeout(n),t=0,n=r=s=void 0}function i(b,c){c&&clearTimeout(c),n=r=s=void 0,b&&(t=e(),o=a.apply(q,m),r||n||(m=q=void 0))}function j(){var a=b-(e()-p);0>=a||a>b?i(s,n):r=setTimeout(j,a)}function k(){i(v,r)}function l(){if(m=arguments,p=e(),q=this,s=v&&(r||!w),u===!1)var c=w&&!r;else{n||w||(t=p);var d=u-(p-t),f=0>=d||d>u;f?(n&&(n=clearTimeout(n)),t=p,o=a.apply(q,m)):n||(n=setTimeout(k,d))}return f&&r?r=clearTimeout(r):r||b===u||(r=setTimeout(j,b)),c&&(f=!0,o=a.apply(q,m)),!f||r||n||(m=q=void 0),o}var m,n,o,p,q,r,s,t=0,u=!1,v=!0;if("function"!=typeof a)throw new TypeError(f);if(b=0>b?0:+b||0,c===!0){var w=!0;v=!1}else d(c)&&(w=!!c.leading,u="maxWait"in c&&g(+c.maxWait||0,b),v="trailing"in c?!!c.trailing:v);return l.cancel=h,l}var d=a("../lang/isObject"),e=a("../date/now"),f="Expected a function",g=Math.max;b.exports=c},{"../date/now":4,"../lang/isObject":33}],6:[function(a,b){function c(a,b){if("function"!=typeof a)throw new TypeError(d);return b=e(void 0===b?a.length-1:+b||0,0),function(){for(var c=arguments,d=-1,f=e(c.length-b,0),g=Array(f);++d<f;)g[d]=c[b+d];switch(b){case 0:return a.call(this,g);case 1:return a.call(this,c[0],g);case 2:return a.call(this,c[0],c[1],g)}var h=Array(b+1);for(d=-1;++d<b;)h[d]=c[d];return h[b]=g,a.apply(this,h)}}var d="Expected a function",e=Math.max;b.exports=c},{}],7:[function(a,b){function c(a,b,c){var g=!0,h=!0;if("function"!=typeof a)throw new TypeError(f);return c===!1?g=!1:e(c)&&(g="leading"in c?!!c.leading:g,h="trailing"in c?!!c.trailing:h),d(a,b,{leading:g,maxWait:+b,trailing:h})}var d=a("./debounce"),e=a("../lang/isObject"),f="Expected a function";b.exports=c},{"../lang/isObject":33,"./debounce":5}],8:[function(a,b){function c(a,b){var c=-1,d=a.length;for(b||(b=Array(d));++c<d;)b[c]=a[c];return b}b.exports=c},{}],9:[function(a,b){function c(a,b){for(var c=-1,d=a.length;++c<d&&b(a[c],c,a)!==!1;);return a}b.exports=c},{}],10:[function(a,b){function c(a,b,c){c||(c={});for(var d=-1,e=b.length;++d<e;){var f=b[d];c[f]=a[f]}return c}b.exports=c},{}],11:[function(a,b){var c=a("./createBaseFor"),d=c();b.exports=d},{"./createBaseFor":18}],12:[function(a,b){function c(a,b){return d(a,b,e)}var d=a("./baseFor"),e=a("../object/keysIn");b.exports=c},{"../object/keysIn":39,"./baseFor":11}],13:[function(a,b){function c(a,b,l,m,n){if(!h(a))return a;var o=g(b)&&(f(b)||j(b)),p=o?void 0:k(b);return d(p||b,function(d,f){if(p&&(f=d,d=b[f]),i(d))m||(m=[]),n||(n=[]),e(a,b,f,c,l,m,n);else{var g=a[f],h=l?l(g,d,f,a,b):void 0,j=void 0===h;j&&(h=d),void 0===h&&(!o||f in a)||!j&&(h===h?h===g:g!==g)||(a[f]=h)}}),a}var d=a("./arrayEach"),e=a("./baseMergeDeep"),f=a("../lang/isArray"),g=a("./isArrayLike"),h=a("../lang/isObject"),i=a("./isObjectLike"),j=a("../lang/isTypedArray"),k=a("../object/keys");b.exports=c},{"../lang/isArray":30,"../lang/isObject":33,"../lang/isTypedArray":36,"../object/keys":38,"./arrayEach":9,"./baseMergeDeep":14,"./isArrayLike":21,"./isObjectLike":26}],14:[function(a,b){function c(a,b,c,k,l,m,n){for(var o=m.length,p=b[c];o--;)if(m[o]==p)return void(a[c]=n[o]);var q=a[c],r=l?l(q,p,c,a,b):void 0,s=void 0===r;s&&(r=p,g(p)&&(f(p)||i(p))?r=f(q)?q:g(q)?d(q):[]:h(p)||e(p)?r=e(q)?j(q):h(q)?q:{}:s=!1),m.push(p),n.push(r),s?a[c]=k(r,p,l,m,n):(r===r?r!==q:q===q)&&(a[c]=r)}var d=a("./arrayCopy"),e=a("../lang/isArguments"),f=a("../lang/isArray"),g=a("./isArrayLike"),h=a("../lang/isPlainObject"),i=a("../lang/isTypedArray"),j=a("../lang/toPlainObject");b.exports=c},{"../lang/isArguments":29,"../lang/isArray":30,"../lang/isPlainObject":34,"../lang/isTypedArray":36,"../lang/toPlainObject":37,"./arrayCopy":8,"./isArrayLike":21}],15:[function(a,b){function c(a){return function(b){return null==b?void 0:d(b)[a]}}var d=a("./toObject");b.exports=c},{"./toObject":28}],16:[function(a,b){function c(a,b,c){if("function"!=typeof a)return d;if(void 0===b)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 3:return function(c,d,e){return a.call(b,c,d,e)};case 4:return function(c,d,e,f){return a.call(b,c,d,e,f)};case 5:return function(c,d,e,f,g){return a.call(b,c,d,e,f,g)}}return function(){return a.apply(b,arguments)}}var d=a("../utility/identity");b.exports=c},{"../utility/identity":42}],17:[function(a,b){function c(a){return f(function(b,c){var f=-1,g=null==b?0:c.length,h=g>2?c[g-2]:void 0,i=g>2?c[2]:void 0,j=g>1?c[g-1]:void 0;for("function"==typeof h?(h=d(h,j,5),g-=2):(h="function"==typeof j?j:void 0,g-=h?1:0),i&&e(c[0],c[1],i)&&(h=3>g?void 0:h,g=1);++f<g;){var k=c[f];k&&a(b,k,h)}return b})}var d=a("./bindCallback"),e=a("./isIterateeCall"),f=a("../function/restParam");b.exports=c},{"../function/restParam":6,"./bindCallback":16,"./isIterateeCall":24}],18:[function(a,b){function c(a){return function(b,c,e){for(var f=d(b),g=e(b),h=g.length,i=a?h:-1;a?i--:++i<h;){var j=g[i];if(c(f[j],j,f)===!1)break}return b}}var d=a("./toObject");b.exports=c},{"./toObject":28}],19:[function(a,b){var c=a("./baseProperty"),d=c("length");b.exports=d},{"./baseProperty":15}],20:[function(a,b){function c(a,b){var c=null==a?void 0:a[b];return d(c)?c:void 0}var d=a("../lang/isNative");b.exports=c},{"../lang/isNative":32}],21:[function(a,b){function c(a){return null!=a&&e(d(a))}var d=a("./getLength"),e=a("./isLength");b.exports=c},{"./getLength":19,"./isLength":25}],22:[function(a,b){var c=function(){try{Object({toString:0}+"")}catch(a){return function(){return!1}}return function(a){return"function"!=typeof a.toString&&"string"==typeof(a+"")}}();b.exports=c},{}],23:[function(a,b){function c(a,b){return a="number"==typeof a||d.test(a)?+a:-1,b=null==b?e:b,a>-1&&a%1==0&&b>a}var d=/^\d+$/,e=9007199254740991;b.exports=c},{}],24:[function(a,b){function c(a,b,c){if(!f(c))return!1;var g=typeof b;if("number"==g?d(c)&&e(b,c.length):"string"==g&&b in c){var h=c[b];return a===a?a===h:h!==h}return!1}var d=a("./isArrayLike"),e=a("./isIndex"),f=a("../lang/isObject");b.exports=c},{"../lang/isObject":33,"./isArrayLike":21,"./isIndex":23}],25:[function(a,b){function c(a){return"number"==typeof a&&a>-1&&a%1==0&&d>=a}var d=9007199254740991;b.exports=c},{}],26:[function(a,b){function c(a){return!!a&&"object"==typeof a}b.exports=c},{}],27:[function(a,b){function c(a){for(var b=i(a),c=b.length,j=c&&a.length,l=!!j&&g(j)&&(e(a)||d(a)||h(a)),m=-1,n=[];++m<c;){var o=b[m];(l&&f(o,j)||k.call(a,o))&&n.push(o)}return n}var d=a("../lang/isArguments"),e=a("../lang/isArray"),f=a("./isIndex"),g=a("./isLength"),h=a("../lang/isString"),i=a("../object/keysIn"),j=Object.prototype,k=j.hasOwnProperty;b.exports=c},{"../lang/isArguments":29,"../lang/isArray":30,"../lang/isString":35,"../object/keysIn":39,"./isIndex":23,"./isLength":25}],28:[function(a,b){function c(a){if(f.unindexedChars&&e(a)){for(var b=-1,c=a.length,g=Object(a);++b<c;)g[b]=a.charAt(b);return g}return d(a)?a:Object(a)}var d=a("../lang/isObject"),e=a("../lang/isString"),f=a("../support");b.exports=c},{"../lang/isObject":33,"../lang/isString":35,"../support":41}],29:[function(a,b){function c(a){return e(a)&&d(a)&&g.call(a,"callee")&&!h.call(a,"callee")}var d=a("../internal/isArrayLike"),e=a("../internal/isObjectLike"),f=Object.prototype,g=f.hasOwnProperty,h=f.propertyIsEnumerable;b.exports=c},{"../internal/isArrayLike":21,"../internal/isObjectLike":26}],30:[function(a,b){var c=a("../internal/getNative"),d=a("../internal/isLength"),e=a("../internal/isObjectLike"),f="[object Array]",g=Object.prototype,h=g.toString,i=c(Array,"isArray"),j=i||function(a){return e(a)&&d(a.length)&&h.call(a)==f};b.exports=j},{"../internal/getNative":20,"../internal/isLength":25,"../internal/isObjectLike":26}],31:[function(a,b){function c(a){return d(a)&&g.call(a)==e}var d=a("./isObject"),e="[object Function]",f=Object.prototype,g=f.toString;b.exports=c},{"./isObject":33}],32:[function(a,b){function c(a){return null==a?!1:d(a)?k.test(i.call(a)):f(a)&&(e(a)?k:g).test(a)}var d=a("./isFunction"),e=a("../internal/isHostObject"),f=a("../internal/isObjectLike"),g=/^\[object .+?Constructor\]$/,h=Object.prototype,i=Function.prototype.toString,j=h.hasOwnProperty,k=RegExp("^"+i.call(j).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");b.exports=c},{"../internal/isHostObject":22,"../internal/isObjectLike":26,"./isFunction":31}],33:[function(a,b){function c(a){var b=typeof a;return!!a&&("object"==b||"function"==b)}b.exports=c},{}],34:[function(a,b){function c(a){var b;if(!g(a)||l.call(a)!=i||f(a)||e(a)||!k.call(a,"constructor")&&(b=a.constructor,"function"==typeof b&&!(b instanceof b)))return!1;var c;return h.ownLast?(d(a,function(a,b,d){return c=k.call(d,b),!1}),c!==!1):(d(a,function(a,b){c=b}),void 0===c||k.call(a,c))}var d=a("../internal/baseForIn"),e=a("./isArguments"),f=a("../internal/isHostObject"),g=a("../internal/isObjectLike"),h=a("../support"),i="[object Object]",j=Object.prototype,k=j.hasOwnProperty,l=j.toString;b.exports=c},{"../internal/baseForIn":12,"../internal/isHostObject":22,"../internal/isObjectLike":26,"../support":41,"./isArguments":29}],35:[function(a,b){function c(a){return"string"==typeof a||d(a)&&g.call(a)==e}var d=a("../internal/isObjectLike"),e="[object String]",f=Object.prototype,g=f.toString;b.exports=c},{"../internal/isObjectLike":26}],36:[function(a,b){function c(a){return e(a)&&d(a.length)&&!!C[E.call(a)]}var d=a("../internal/isLength"),e=a("../internal/isObjectLike"),f="[object Arguments]",g="[object Array]",h="[object Boolean]",i="[object Date]",j="[object Error]",k="[object Function]",l="[object Map]",m="[object Number]",n="[object Object]",o="[object RegExp]",p="[object Set]",q="[object String]",r="[object WeakMap]",s="[object ArrayBuffer]",t="[object Float32Array]",u="[object Float64Array]",v="[object Int8Array]",w="[object Int16Array]",x="[object Int32Array]",y="[object Uint8Array]",z="[object Uint8ClampedArray]",A="[object Uint16Array]",B="[object Uint32Array]",C={};C[t]=C[u]=C[v]=C[w]=C[x]=C[y]=C[z]=C[A]=C[B]=!0,C[f]=C[g]=C[s]=C[h]=C[i]=C[j]=C[k]=C[l]=C[m]=C[n]=C[o]=C[p]=C[q]=C[r]=!1;var D=Object.prototype,E=D.toString;b.exports=c},{"../internal/isLength":25,"../internal/isObjectLike":26}],37:[function(a,b){function c(a){return d(a,e(a))}var d=a("../internal/baseCopy"),e=a("../object/keysIn");b.exports=c},{"../internal/baseCopy":10,"../object/keysIn":39}],38:[function(a,b){var c=a("../internal/getNative"),d=a("../internal/isArrayLike"),e=a("../lang/isObject"),f=a("../internal/shimKeys"),g=a("../support"),h=c(Object,"keys"),i=h?function(a){var b=null==a?void 0:a.constructor;return"function"==typeof b&&b.prototype===a||("function"==typeof a?g.enumPrototypes:d(a))?f(a):e(a)?h(a):[]}:f;b.exports=i},{"../internal/getNative":20,"../internal/isArrayLike":21,"../internal/shimKeys":27,"../lang/isObject":33,"../support":41}],39:[function(a,b){function c(a){if(null==a)return[];j(a)||(a=Object(a));var b=a.length;b=b&&i(b)&&(f(a)||e(a)||k(a))&&b||0;for(var c=a.constructor,d=-1,m=g(c)&&c.prototype||x,n=m===a,o=Array(b),q=b>0,r=l.enumErrorProps&&(a===w||a instanceof Error),t=l.enumPrototypes&&g(a);++d<b;)o[d]=d+"";for(var C in a)t&&"prototype"==C||r&&("message"==C||"name"==C)||q&&h(C,b)||"constructor"==C&&(n||!z.call(a,C))||o.push(C);if(l.nonEnumShadows&&a!==x){var D=a===y?u:a===w?p:A.call(a),E=B[D]||B[s];for(D==s&&(m=x),b=v.length;b--;){C=v[b];var F=E[C];n&&F||(F?!z.call(a,C):a[C]===m[C])||o.push(C)}}return o}var d=a("../internal/arrayEach"),e=a("../lang/isArguments"),f=a("../lang/isArray"),g=a("../lang/isFunction"),h=a("../internal/isIndex"),i=a("../internal/isLength"),j=a("../lang/isObject"),k=a("../lang/isString"),l=a("../support"),m="[object Array]",n="[object Boolean]",o="[object Date]",p="[object Error]",q="[object Function]",r="[object Number]",s="[object Object]",t="[object RegExp]",u="[object String]",v=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],w=Error.prototype,x=Object.prototype,y=String.prototype,z=x.hasOwnProperty,A=x.toString,B={};B[m]=B[o]=B[r]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},B[n]=B[u]={constructor:!0,toString:!0,valueOf:!0},B[p]=B[q]=B[t]={constructor:!0,toString:!0},B[s]={constructor:!0},d(v,function(a){for(var b in B)if(z.call(B,b)){var c=B[b];c[a]=z.call(c,a)}}),b.exports=c},{"../internal/arrayEach":9,"../internal/isIndex":23,"../internal/isLength":25,"../lang/isArguments":29,"../lang/isArray":30,"../lang/isFunction":31,"../lang/isObject":33,"../lang/isString":35,"../support":41}],40:[function(a,b){var c=a("../internal/baseMerge"),d=a("../internal/createAssigner"),e=d(c);b.exports=e},{"../internal/baseMerge":13,"../internal/createAssigner":17}],41:[function(a,b){var c=Array.prototype,d=Error.prototype,e=Object.prototype,f=e.propertyIsEnumerable,g=c.splice,h={};!function(a){var b=function(){this.x=a},c={0:a,length:a},e=[];b.prototype={valueOf:a,y:a};for(var i in new b)e.push(i);h.enumErrorProps=f.call(d,"message")||f.call(d,"name"),h.enumPrototypes=f.call(b,"prototype"),h.nonEnumShadows=!/valueOf/.test(e),h.ownLast="x"!=e[0],h.spliceObjects=(g.call(c,0,1),!c[0]),h.unindexedChars="x"[0]+Object("x")[0]!="xx"}(1,0),b.exports=h},{}],42:[function(a,b){function c(a){return a}b.exports=c},{}],43:[function(a,b){"use strict";var c=a("object-keys");b.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var a={},b=Symbol("test");if("string"==typeof b)return!1;var d=42;a[b]=d;for(b in a)return!1;if(0!==c(a).length)return!1;if("function"==typeof Object.keys&&0!==Object.keys(a).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(a).length)return!1;var e=Object.getOwnPropertySymbols(a);if(1!==e.length||e[0]!==b)return!1;if(!Object.prototype.propertyIsEnumerable.call(a,b))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var f=Object.getOwnPropertyDescriptor(a,b);if(f.value!==d||f.enumerable!==!0)return!1}return!0}},{"object-keys":49}],44:[function(a,b){"use strict";var c=a("object-keys"),d=a("function-bind"),e=function(a){return"undefined"!=typeof a&&null!==a},f=a("./hasSymbols")(),g=Object,h=d.call(Function.call,Array.prototype.push),i=d.call(Function.call,Object.prototype.propertyIsEnumerable);b.exports=function(a){if(!e(a))throw new TypeError("target must be an object");var b,d,j,k,l,m,n,o=g(a);for(b=1;b<arguments.length;++b){if(d=g(arguments[b]),k=c(d),f&&Object.getOwnPropertySymbols)for(l=Object.getOwnPropertySymbols(d),j=0;j<l.length;++j)n=l[j],i(d,n)&&h(k,n);for(j=0;j<k.length;++j)n=k[j],m=d[n],i(d,n)&&(o[n]=m)}return o}},{"./hasSymbols":43,"function-bind":48,"object-keys":49}],45:[function(a,b){"use strict";var c=a("define-properties"),d=a("./implementation"),e=a("./polyfill"),f=a("./shim");c(d,{implementation:d,getPolyfill:e,shim:f}),b.exports=d},{"./implementation":44,"./polyfill":51,"./shim":52,"define-properties":46}],46:[function(a,b){"use strict";var c=a("object-keys"),d=a("foreach"),e="function"==typeof Symbol&&"symbol"==typeof Symbol(),f=Object.prototype.toString,g=function(a){return"function"==typeof a&&"[object Function]"===f.call(a)},h=function(){var a={};try{Object.defineProperty(a,"x",{enumerable:!1,value:a});for(var b in a)return!1;return a.x===a}catch(c){return!1}},i=Object.defineProperty&&h(),j=function(a,b,c,d){(!(b in a)||g(d)&&d())&&(i?Object.defineProperty(a,b,{configurable:!0,enumerable:!1,value:c,writable:!0}):a[b]=c)},k=function(a,b){var f=arguments.length>2?arguments[2]:{},g=c(b);e&&(g=g.concat(Object.getOwnPropertySymbols(b))),d(g,function(c){j(a,c,b[c],f[c])})};k.supportsDescriptors=!!i,b.exports=k},{foreach:47,"object-keys":49}],47:[function(a,b){var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString;b.exports=function(a,b,e){if("[object Function]"!==d.call(b))throw new TypeError("iterator must be a function");var f=a.length;if(f===+f)for(var g=0;f>g;g++)b.call(e,a[g],g,a);else for(var h in a)c.call(a,h)&&b.call(e,a[h],h,a)}},{}],48:[function(a,b){var c="Function.prototype.bind called on incompatible ",d=Array.prototype.slice,e=Object.prototype.toString,f="[object Function]";b.exports=function(a){var b=this;if("function"!=typeof b||e.call(b)!==f)throw new TypeError(c+b);for(var g=d.call(arguments,1),h=function(){if(this instanceof l){var c=b.apply(this,g.concat(d.call(arguments)));return Object(c)===c?c:this}return b.apply(a,g.concat(d.call(arguments)))},i=Math.max(0,b.length-g.length),j=[],k=0;i>k;k++)j.push("$"+k);var l=Function("binder","return function ("+j.join(",")+"){ return binder.apply(this,arguments); }")(h);if(b.prototype){var m=function(){};m.prototype=b.prototype,l.prototype=new m,m.prototype=null}return l}},{}],49:[function(a,b){"use strict";var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString,e=Array.prototype.slice,f=a("./isArguments"),g=!{toString:null}.propertyIsEnumerable("toString"),h=function(){}.propertyIsEnumerable("prototype"),i=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],j=function(a){var b=a.constructor;return b&&b.prototype===a},k={$console:!0,$frame:!0,$frameElement:!0,$frames:!0,$parent:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},l=function(){if("undefined"==typeof window)return!1;for(var a in window)try{if(!k["$"+a]&&c.call(window,a)&&null!==window[a]&&"object"==typeof window[a])try{j(window[a])}catch(b){return!0}}catch(b){return!0}return!1}(),m=function(a){if("undefined"==typeof window||!l)return j(a);try{return j(a)}catch(b){return!1}},n=function(a){var b=null!==a&&"object"==typeof a,e="[object Function]"===d.call(a),j=f(a),k=b&&"[object String]"===d.call(a),l=[];if(!b&&!e&&!j)throw new TypeError("Object.keys called on a non-object");var n=h&&e;if(k&&a.length>0&&!c.call(a,0))for(var o=0;o<a.length;++o)l.push(String(o));if(j&&a.length>0)for(var p=0;p<a.length;++p)l.push(String(p));else for(var q in a)n&&"prototype"===q||!c.call(a,q)||l.push(String(q));if(g)for(var r=m(a),s=0;s<i.length;++s)r&&"constructor"===i[s]||!c.call(a,i[s])||l.push(i[s]);return l};n.shim=function(){if(Object.keys){var a=function(){return 2===(Object.keys(arguments)||"").length}(1,2);if(!a){var b=Object.keys;Object.keys=function(a){return b(f(a)?e.call(a):a)}}}else Object.keys=n;return Object.keys||n},b.exports=n},{"./isArguments":50}],50:[function(a,b){"use strict";var c=Object.prototype.toString;b.exports=function(a){var b=c.call(a),d="[object Arguments]"===b;return d||(d="[object Array]"!==b&&null!==a&&"object"==typeof a&&"number"==typeof a.length&&a.length>=0&&"[object Function]"===c.call(a.callee)),d}},{}],51:[function(a,b){"use strict";var c=a("./implementation"),d=function(){if(!Object.assign)return!1;for(var a="abcdefghijklmnopqrst",b=a.split(""),c={},d=0;d<b.length;++d)c[b[d]]=b[d];var e=Object.assign({},c),f="";for(var g in e)f+=g;return a!==f},e=function(){if(!Object.assign||!Object.preventExtensions)return!1;var a=Object.preventExtensions({1:2});try{Object.assign(a,"xy")}catch(b){return"y"===a[1]}};b.exports=function(){return Object.assign?d()?c:e()?c:Object.assign:c}},{"./implementation":44}],52:[function(a,b){"use strict";var c=a("define-properties"),d=a("./polyfill");b.exports=function(){var a=d();return c(Object,{assign:a},{assign:function(){return Object.assign!==a}}),a}},{"./polyfill":51,"define-properties":46}],53:[function(a,b){function c(a,b){var c,d=null;try{c=JSON.parse(a,b)}catch(e){d=e}return[d,c]}b.exports=c},{}],54:[function(a,b){function c(a){return a.replace(/\n\r?\s*/g,"")}b.exports=function(a){for(var b="",d=0;d<arguments.length;d++)b+=c(a[d])+(arguments[d+1]||"");return b}},{}],55:[function(a,b){"use strict";function c(a,b){for(var c=0;c<a.length;c++)b(a[c])}function d(a){for(var b in a)if(a.hasOwnProperty(b))return!1;return!0}function e(a,b,c){var d=a;return k(b)?(c=b,"string"==typeof a&&(d={uri:a})):d=m(b,{uri:a}),d.callback=c,d}function f(a,b,c){return b=e(a,b,c),g(b)}function g(a){function b(){4===k.readyState&&g()}function c(){var a=void 0;if(k.response?a=k.response:"text"!==k.responseType&&k.responseType||(a=k.responseText||k.responseXML),u)try{a=JSON.parse(a)}catch(b){}return a}function e(a){clearTimeout(o),a instanceof Error||(a=new Error(""+(a||"Unknown XMLHttpRequest Error"))),a.statusCode=0,h(a,i)}function g(){if(!n){var b;clearTimeout(o),b=a.useXDR&&void 0===k.status?200:1223===k.status?204:k.status;var d=i,e=null;0!==b?(d={body:c(),statusCode:b,method:q,headers:{},url:p,rawRequest:k},k.getAllResponseHeaders&&(d.headers=l(k.getAllResponseHeaders()))):e=new Error("Internal XMLHttpRequest Error"),h(e,d,d.body)}}var h=a.callback;if("undefined"==typeof h)throw new Error("callback argument missing");h=j(h);var i={body:void 0,headers:{},statusCode:0,method:q,url:p,rawRequest:k},k=a.xhr||null;k||(k=a.cors||a.useXDR?new f.XDomainRequest:new f.XMLHttpRequest);var m,n,o,p=k.url=a.uri||a.url,q=k.method=a.method||"GET",r=a.body||a.data||null,s=k.headers=a.headers||{},t=!!a.sync,u=!1;if("json"in a&&(u=!0,s.accept||s.Accept||(s.Accept="application/json"),"GET"!==q&&"HEAD"!==q&&(s["content-type"]||s["Content-Type"]||(s["Content-Type"]="application/json"),r=JSON.stringify(a.json))),k.onreadystatechange=b,k.onload=g,k.onerror=e,k.onprogress=function(){},k.ontimeout=e,k.open(q,p,!t,a.username,a.password),t||(k.withCredentials=!!a.withCredentials),!t&&a.timeout>0&&(o=setTimeout(function(){n=!0,k.abort("timeout");var a=new Error("XMLHttpRequest timeout");a.code="ETIMEDOUT",e(a)},a.timeout)),k.setRequestHeader)for(m in s)s.hasOwnProperty(m)&&k.setRequestHeader(m,s[m]);else if(a.headers&&!d(a.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in a&&(k.responseType=a.responseType),"beforeSend"in a&&"function"==typeof a.beforeSend&&a.beforeSend(k),k.send(r),k}function h(){}var i=a("global/window"),j=a("once"),k=a("is-function"),l=a("parse-headers"),m=a("xtend");b.exports=f,f.XMLHttpRequest=i.XMLHttpRequest||h,f.XDomainRequest="withCredentials"in new f.XMLHttpRequest?f.XMLHttpRequest:i.XDomainRequest,c(["get","put","post","patch","head","delete"],function(a){f["delete"===a?"del":a]=function(b,c,d){return c=e(b,c,d),c.method=a.toUpperCase(),g(c)}})},{"global/window":2,"is-function":56,once:57,"parse-headers":60,xtend:61}],56:[function(a,b){function c(a){var b=d.call(a);return"[object Function]"===b||"function"==typeof a&&"[object RegExp]"!==b||"undefined"!=typeof window&&(a===window.setTimeout||a===window.alert||a===window.confirm||a===window.prompt)}b.exports=c;var d=Object.prototype.toString},{}],57:[function(a,b){function c(a){var b=!1;return function(){return b?void 0:(b=!0,a.apply(this,arguments))}}b.exports=c,c.proto=c(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return c(this)},configurable:!0})})},{}],58:[function(a,b){function c(a,b,c){if(!g(b))throw new TypeError("iterator must be a function");arguments.length<3&&(c=this),"[object Array]"===h.call(a)?d(a,b,c):"string"==typeof a?e(a,b,c):f(a,b,c)}function d(a,b,c){for(var d=0,e=a.length;e>d;d++)i.call(a,d)&&b.call(c,a[d],d,a)}function e(a,b,c){for(var d=0,e=a.length;e>d;d++)b.call(c,a.charAt(d),d,a)}function f(a,b,c){for(var d in a)i.call(a,d)&&b.call(c,a[d],d,a)}var g=a("is-function");b.exports=c;var h=Object.prototype.toString,i=Object.prototype.hasOwnProperty},{"is-function":56}],59:[function(a,b,c){function d(a){return a.replace(/^\s*|\s*$/g,"")}c=b.exports=d,c.left=function(a){return a.replace(/^\s*/,"")},c.right=function(a){return a.replace(/\s*$/,"")}},{}],60:[function(a,b){var c=a("trim"),d=a("for-each"),e=function(a){return"[object Array]"===Object.prototype.toString.call(a)};b.exports=function(a){if(!a)return{};var b={};return d(c(a).split("\n"),function(a){var d=a.indexOf(":"),f=c(a.slice(0,d)).toLowerCase(),g=c(a.slice(d+1));"undefined"==typeof b[f]?b[f]=g:e(b[f])?b[f].push(g):b[f]=[b[f],g]}),b}},{"for-each":58,trim:59}],61:[function(a,b){function c(){for(var a={},b=0;b<arguments.length;b++){var c=arguments[b];for(var e in c)d.call(c,e)&&(a[e]=c[e])}return a}b.exports=c;var d=Object.prototype.hasOwnProperty},{}],62:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./button.js"),h=d(g),i=a("./component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-big-play-button"},b.prototype.handleClick=function(){this.player_.play()},b}(h["default"]);k.prototype.controlText_="Play Video",j["default"].registerComponent("BigPlayButton",k),c["default"]=k,b.exports=c["default"]},{"./button.js":63,"./component.js":65}],63:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component"),i=e(h),j=a("./utils/dom.js"),k=d(j),l=a("./utils/events.js"),m=d(l),n=a("./utils/fn.js"),o=d(n),p=a("global/document"),q=e(p),r=a("object.assign"),s=e(r),t=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.emitTapEvents(),this.on("tap",this.handleClick),this.on("click",this.handleClick),this.on("focus",this.handleFocus),this.on("blur",this.handleBlur)}return g(b,a),b.prototype.createEl=function(){var b=arguments.length<=0||void 0===arguments[0]?"button":arguments[0],c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];c=s["default"]({className:this.buildCSSClass(),tabIndex:0},c),d=s["default"]({role:"button",type:"button","aria-live":"polite"},d);var e=a.prototype.createEl.call(this,b,c,d);return this.controlTextEl_=k.createEl("span",{className:"vjs-control-text"}),e.appendChild(this.controlTextEl_),this.controlText(this.controlText_),e},b.prototype.controlText=function(a){return a?(this.controlText_=a,this.controlTextEl_.innerHTML=this.localize(this.controlText_),this):this.controlText_||"Need Text"},b.prototype.buildCSSClass=function(){return"vjs-control vjs-button "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){},b.prototype.handleFocus=function(){m.on(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b.prototype.handleKeyPress=function(a){(32===a.which||13===a.which)&&(a.preventDefault(),this.handleClick(a))},b.prototype.handleBlur=function(){m.off(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b}(i["default"]);i["default"].registerComponent("Button",t),c["default"]=t,b.exports=c["default"]},{"./component":65,"./utils/dom.js":128,"./utils/events.js":129,"./utils/fn.js":130,"global/document":1,"object.assign":45}],64:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./button"),h=d(g),i=a("./component"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.controlText(d&&d.controlText||this.localize("Close"))}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-close-button "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.trigger({type:"close",bubbles:!1})},b}(h["default"]);j["default"].registerComponent("CloseButton",k),c["default"]=k,b.exports=c["default"]},{"./button":63,"./component":65}],65:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}c.__esModule=!0;var g=a("global/window"),h=e(g),i=a("./utils/dom.js"),j=d(i),k=a("./utils/fn.js"),l=d(k),m=a("./utils/guid.js"),n=d(m),o=a("./utils/events.js"),p=d(o),q=a("./utils/log.js"),r=e(q),s=a("./utils/to-title-case.js"),t=e(s),u=a("object.assign"),v=e(u),w=a("./utils/merge-options.js"),x=e(w),y=function(){function a(b,c,d){if(f(this,a),this.player_=!b&&this.play?b=this:b,this.options_=x["default"]({},this.options_),c=this.options_=x["default"](this.options_,c),this.id_=c.id||c.el&&c.el.id,!this.id_){var e=b&&b.id&&b.id()||"no_player";this.id_=e+"_component_"+n.newGUID()}this.name_=c.name||null,c.el?this.el_=c.el:c.createEl!==!1&&(this.el_=this.createEl()),this.children_=[],this.childIndex_={},this.childNameIndex_={},c.initChildren!==!1&&this.initChildren(),this.ready(d),c.reportTouchActivity!==!1&&this.enableTouchActivity()}return a.prototype.dispose=function(){if(this.trigger({type:"dispose",bubbles:!1}),this.children_)for(var a=this.children_.length-1;a>=0;a--)this.children_[a].dispose&&this.children_[a].dispose();this.children_=null,this.childIndex_=null,this.childNameIndex_=null,this.off(),this.el_.parentNode&&this.el_.parentNode.removeChild(this.el_),j.removeElData(this.el_),this.el_=null},a.prototype.player=function(){return this.player_},a.prototype.options=function(a){return r["default"].warn("this.options() has been deprecated and will be moved to the constructor in 6.0"),a?(this.options_=x["default"](this.options_,a),this.options_):this.options_},a.prototype.el=function(){return this.el_},a.prototype.createEl=function(a,b,c){return j.createEl(a,b,c)},a.prototype.localize=function(a){
|
13 |
+
var b=this.player_.language&&this.player_.language(),c=this.player_.languages&&this.player_.languages();if(!b||!c)return a;var d=c[b];if(d&&d[a])return d[a];var e=b.split("-")[0],f=c[e];return f&&f[a]?f[a]:a},a.prototype.contentEl=function(){return this.contentEl_||this.el_},a.prototype.id=function(){return this.id_},a.prototype.name=function(){return this.name_},a.prototype.children=function(){return this.children_},a.prototype.getChildById=function(a){return this.childIndex_[a]},a.prototype.getChild=function(a){return this.childNameIndex_[a]},a.prototype.addChild=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=void 0,e=void 0;if("string"==typeof b){e=b,c||(c={}),c===!0&&(r["default"].warn("Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`."),c={});var f=c.componentClass||t["default"](e);c.name=e;var g=a.getComponent(f);if(!g)throw new Error("Component "+f+" does not exist");if("function"!=typeof g)return null;d=new g(this.player_||this,c)}else d=b;return this.children_.push(d),"function"==typeof d.id&&(this.childIndex_[d.id()]=d),e=e||d.name&&d.name(),e&&(this.childNameIndex_[e]=d),"function"==typeof d.el&&d.el()&&this.contentEl().appendChild(d.el()),d},a.prototype.removeChild=function(a){if("string"==typeof a&&(a=this.getChild(a)),a&&this.children_){for(var b=!1,c=this.children_.length-1;c>=0;c--)if(this.children_[c]===a){b=!0,this.children_.splice(c,1);break}if(b){this.childIndex_[a.id()]=null,this.childNameIndex_[a.name()]=null;var d=a.el();d&&d.parentNode===this.contentEl()&&this.contentEl().removeChild(a.el())}}},a.prototype.initChildren=function(){var b=this,c=this.options_.children;c&&!function(){var d=b.options_,e=function(a){var c=a.name,e=a.opts;if(void 0!==d[c]&&(e=d[c]),e!==!1){e===!0&&(e={}),e.playerOptions=b.options_.playerOptions;var f=b.addChild(c,e);f&&(b[c]=f)}},f=void 0,g=a.getComponent("Tech");f=Array.isArray(c)?c:Object.keys(c),f.concat(Object.keys(b.options_).filter(function(a){return!f.some(function(b){return"string"==typeof b?a===b:a===b.name})})).map(function(a){var d=void 0,e=void 0;return"string"==typeof a?(d=a,e=c[d]||b.options_[d]||{}):(d=a.name,e=a),{name:d,opts:e}}).filter(function(b){var c=a.getComponent(b.opts.componentClass||t["default"](b.name));return c&&!g.isTech(c)}).forEach(e)}()},a.prototype.buildCSSClass=function(){return""},a.prototype.on=function(a,b,c){var d=this;return"string"==typeof a||Array.isArray(a)?p.on(this.el_,a,l.bind(this,b)):!function(){var e=a,f=b,g=l.bind(d,c),h=function(){return d.off(e,f,g)};h.guid=g.guid,d.on("dispose",h);var i=function(){return d.off("dispose",h)};i.guid=g.guid,a.nodeName?(p.on(e,f,g),p.on(e,"dispose",i)):"function"==typeof a.on&&(e.on(f,g),e.on("dispose",i))}(),this},a.prototype.off=function(a,b,c){if(!a||"string"==typeof a||Array.isArray(a))p.off(this.el_,a,b);else{var d=a,e=b,f=l.bind(this,c);this.off("dispose",f),a.nodeName?(p.off(d,e,f),p.off(d,"dispose",f)):(d.off(e,f),d.off("dispose",f))}return this},a.prototype.one=function(a,b,c){var d=this,e=arguments;return"string"==typeof a||Array.isArray(a)?p.one(this.el_,a,l.bind(this,b)):!function(){var f=a,g=b,h=l.bind(d,c),i=function j(){d.off(f,g,j),h.apply(null,e)};i.guid=h.guid,d.on(f,g,i)}(),this},a.prototype.trigger=function(a,b){return p.trigger(this.el_,a,b),this},a.prototype.ready=function(a){var b=arguments.length<=1||void 0===arguments[1]?!1:arguments[1];return a&&(this.isReady_?b?a.call(this):this.setTimeout(a,1):(this.readyQueue_=this.readyQueue_||[],this.readyQueue_.push(a))),this},a.prototype.triggerReady=function(){this.isReady_=!0,this.setTimeout(function(){var a=this.readyQueue_;this.readyQueue_=[],a&&a.length>0&&a.forEach(function(a){a.call(this)},this),this.trigger("ready")},1)},a.prototype.$=function(a,b){return j.$(a,b||this.contentEl())},a.prototype.$$=function(a,b){return j.$$(a,b||this.contentEl())},a.prototype.hasClass=function(a){return j.hasElClass(this.el_,a)},a.prototype.addClass=function(a){return j.addElClass(this.el_,a),this},a.prototype.removeClass=function(a){return j.removeElClass(this.el_,a),this},a.prototype.toggleClass=function(a,b){return j.toggleElClass(this.el_,a,b),this},a.prototype.show=function(){return this.removeClass("vjs-hidden"),this},a.prototype.hide=function(){return this.addClass("vjs-hidden"),this},a.prototype.lockShowing=function(){return this.addClass("vjs-lock-showing"),this},a.prototype.unlockShowing=function(){return this.removeClass("vjs-lock-showing"),this},a.prototype.width=function(a,b){return this.dimension("width",a,b)},a.prototype.height=function(a,b){return this.dimension("height",a,b)},a.prototype.dimensions=function(a,b){return this.width(a,!0).height(b)},a.prototype.dimension=function(a,b,c){if(void 0!==b)return(null===b||b!==b)&&(b=0),this.el_.style[a]=-1!==(""+b).indexOf("%")||-1!==(""+b).indexOf("px")?b:"auto"===b?"":b+"px",c||this.trigger("resize"),this;if(!this.el_)return 0;var d=this.el_.style[a],e=d.indexOf("px");return-1!==e?parseInt(d.slice(0,e),10):parseInt(this.el_["offset"+t["default"](a)],10)},a.prototype.emitTapEvents=function(){var a=0,b=null,c=10,d=200,e=void 0;this.on("touchstart",function(c){1===c.touches.length&&(b=v["default"]({},c.touches[0]),a=(new Date).getTime(),e=!0)}),this.on("touchmove",function(a){if(a.touches.length>1)e=!1;else if(b){var d=a.touches[0].pageX-b.pageX,f=a.touches[0].pageY-b.pageY,g=Math.sqrt(d*d+f*f);g>c&&(e=!1)}});var f=function(){e=!1};this.on("touchleave",f),this.on("touchcancel",f),this.on("touchend",function(c){if(b=null,e===!0){var f=(new Date).getTime()-a;d>f&&(c.preventDefault(),this.trigger("tap"))}})},a.prototype.enableTouchActivity=function(){if(this.player()&&this.player().reportUserActivity){var a=l.bind(this.player(),this.player().reportUserActivity),b=void 0;this.on("touchstart",function(){a(),this.clearInterval(b),b=this.setInterval(a,250)});var c=function(){a(),this.clearInterval(b)};this.on("touchmove",a),this.on("touchend",c),this.on("touchcancel",c)}},a.prototype.setTimeout=function(a,b){a=l.bind(this,a);var c=h["default"].setTimeout(a,b),d=function(){this.clearTimeout(c)};return d.guid="vjs-timeout-"+c,this.on("dispose",d),c},a.prototype.clearTimeout=function(a){h["default"].clearTimeout(a);var b=function(){};return b.guid="vjs-timeout-"+a,this.off("dispose",b),a},a.prototype.setInterval=function(a,b){a=l.bind(this,a);var c=h["default"].setInterval(a,b),d=function(){this.clearInterval(c)};return d.guid="vjs-interval-"+c,this.on("dispose",d),c},a.prototype.clearInterval=function(a){h["default"].clearInterval(a);var b=function(){};return b.guid="vjs-interval-"+a,this.off("dispose",b),a},a.registerComponent=function(b,c){return a.components_||(a.components_={}),a.components_[b]=c,c},a.getComponent=function(b){return a.components_&&a.components_[b]?a.components_[b]:h["default"]&&h["default"].videojs&&h["default"].videojs[b]?(r["default"].warn("The "+b+" component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)"),h["default"].videojs[b]):void 0},a.extend=function(b){b=b||{},r["default"].warn("Component.extend({}) has been deprecated, use videojs.extend(Component, {}) instead");var c=b.init||b.init||this.prototype.init||this.prototype.init||function(){},d=function(){c.apply(this,arguments)};d.prototype=Object.create(this.prototype),d.prototype.constructor=d,d.extend=a.extend;for(var e in b)b.hasOwnProperty(e)&&(d.prototype[e]=b[e]);return d},a}();y.registerComponent("Component",y),c["default"]=y,b.exports=c["default"]},{"./utils/dom.js":128,"./utils/events.js":129,"./utils/fn.js":130,"./utils/guid.js":132,"./utils/log.js":133,"./utils/merge-options.js":134,"./utils/to-title-case.js":137,"global/window":2,"object.assign":45}],66:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../component.js"),h=d(g),i=a("./play-toggle.js"),j=(d(i),a("./time-controls/current-time-display.js")),k=(d(j),a("./time-controls/duration-display.js")),l=(d(k),a("./time-controls/time-divider.js")),m=(d(l),a("./time-controls/remaining-time-display.js")),n=(d(m),a("./live-display.js")),o=(d(n),a("./progress-control/progress-control.js")),p=(d(o),a("./fullscreen-toggle.js")),q=(d(p),a("./volume-control/volume-control.js")),r=(d(q),a("./volume-menu-button.js")),s=(d(r),a("./mute-toggle.js")),t=(d(s),a("./text-track-controls/chapters-button.js")),u=(d(t),a("./text-track-controls/subtitles-button.js")),v=(d(u),a("./text-track-controls/captions-button.js")),w=(d(v),a("./playback-rate-menu/playback-rate-menu-button.js")),x=(d(w),a("./spacer-controls/custom-control-spacer.js")),y=(d(x),function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-control-bar"})},b}(h["default"]));y.prototype.options_={loadEvent:"play",children:["playToggle","volumeMenuButton","currentTimeDisplay","timeDivider","durationDisplay","progressControl","liveDisplay","remainingTimeDisplay","customControlSpacer","playbackRateMenuButton","chaptersButton","subtitlesButton","captionsButton","fullscreenToggle"]},h["default"].registerComponent("ControlBar",y),c["default"]=y,b.exports=c["default"]},{"../component.js":65,"./fullscreen-toggle.js":67,"./live-display.js":68,"./mute-toggle.js":69,"./play-toggle.js":70,"./playback-rate-menu/playback-rate-menu-button.js":71,"./progress-control/progress-control.js":76,"./spacer-controls/custom-control-spacer.js":78,"./text-track-controls/captions-button.js":81,"./text-track-controls/chapters-button.js":82,"./text-track-controls/subtitles-button.js":85,"./time-controls/current-time-display.js":88,"./time-controls/duration-display.js":89,"./time-controls/remaining-time-display.js":90,"./time-controls/time-divider.js":91,"./volume-control/volume-control.js":93,"./volume-menu-button.js":95}],67:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-fullscreen-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.isFullscreen()?(this.player_.exitFullscreen(),this.controlText("Fullscreen")):(this.player_.requestFullscreen(),this.controlText("Non-Fullscreen"))},b}(h["default"]);k.prototype.controlText_="Fullscreen",j["default"].registerComponent("FullscreenToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":63,"../component.js":65}],68:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateShowing(),this.on(this.player(),"durationchange",this.updateShowing)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-live-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-live-display",innerHTML:'<span class="vjs-control-text">'+this.localize("Stream Type")+"</span>"+this.localize("LIVE")},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateShowing=function(){this.player().duration()===1/0?this.show():this.hide()},b}(i["default"]);i["default"].registerComponent("LiveDisplay",l),c["default"]=l,b.exports=c["default"]},{"../component":65,"../utils/dom.js":128}],69:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../button"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.update),c.tech_&&c.tech_.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){this.update(),c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-mute-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.muted(this.player_.muted()?!1:!0)},b.prototype.update=function(){var a=this.player_.volume(),b=3;0===a||this.player_.muted()?b=0:.33>a?b=1:.67>a&&(b=2);var c=this.player_.muted()?"Unmute":"Mute",d=this.localize(c);this.controlText()!==d&&this.controlText(d);for(var e=0;4>e;e++)m.removeElClass(this.el_,"vjs-vol-"+e);m.addElClass(this.el_,"vjs-vol-"+b)},b}(i["default"]);n.prototype.controlText_="Mute",k["default"].registerComponent("MuteToggle",n),c["default"]=n,b.exports=c["default"]},{"../button":63,"../component":65,"../utils/dom.js":128}],70:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"play",this.handlePlay),this.on(c,"pause",this.handlePause)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-play-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.paused()?this.player_.play():this.player_.pause()},b.prototype.handlePlay=function(){this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.controlText("Pause")},b.prototype.handlePause=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.controlText("Play")},b}(h["default"]);k.prototype.controlText_="Play",j["default"].registerComponent("PlayToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":63,"../component.js":65}],71:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-button.js"),i=e(h),j=a("../../menu/menu.js"),k=e(j),l=a("./playback-rate-menu-item.js"),m=e(l),n=a("../../component.js"),o=e(n),p=a("../../utils/dom.js"),q=d(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateVisibility(),this.updateLabel(),this.on(c,"loadstart",this.updateVisibility),this.on(c,"ratechange",this.updateLabel)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this);return this.labelEl_=q.createEl("div",{className:"vjs-playback-rate-value",innerHTML:1}),b.appendChild(this.labelEl_),b},b.prototype.buildCSSClass=function(){return"vjs-playback-rate "+a.prototype.buildCSSClass.call(this)},b.prototype.createMenu=function(){var a=new k["default"](this.player()),b=this.playbackRates();if(b)for(var c=b.length-1;c>=0;c--)a.addChild(new m["default"](this.player(),{rate:b[c]+"x"}));return a},b.prototype.updateARIAAttributes=function(){this.el().setAttribute("aria-valuenow",this.player().playbackRate())},b.prototype.handleClick=function(){for(var a=this.player().playbackRate(),b=this.playbackRates(),c=b[0],d=0;d<b.length;d++)if(b[d]>a){c=b[d];break}this.player().playbackRate(c)},b.prototype.playbackRates=function(){return this.options_.playbackRates||this.options_.playerOptions&&this.options_.playerOptions.playbackRates},b.prototype.playbackRateSupported=function(){return this.player().tech_&&this.player().tech_.featuresPlaybackRate&&this.playbackRates()&&this.playbackRates().length>0},b.prototype.updateVisibility=function(){this.playbackRateSupported()?this.removeClass("vjs-hidden"):this.addClass("vjs-hidden")},b.prototype.updateLabel=function(){this.playbackRateSupported()&&(this.labelEl_.innerHTML=this.player().playbackRate()+"x")},b}(i["default"]);r.prototype.controlText_="Playback Rate",o["default"].registerComponent("PlaybackRateMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":65,"../../menu/menu-button.js":102,"../../menu/menu.js":104,"../../utils/dom.js":128,"./playback-rate-menu-item.js":72}],72:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../menu/menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b);var f=d.rate,g=parseFloat(f,10);d.label=f,d.selected=1===g,a.call(this,c,d),this.label=f,this.rate=g,this.on(c,"ratechange",this.update)}return f(b,a),b.prototype.handleClick=function(){a.prototype.handleClick.call(this),this.player().playbackRate(this.rate)},b.prototype.update=function(){this.selected(this.player().playbackRate()===this.rate)},b}(h["default"]);k.prototype.contentElType="button",j["default"].registerComponent("PlaybackRateMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":65,"../../menu/menu-item.js":103}],73:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"progress",this.update)}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-load-progress",innerHTML:'<span class="vjs-control-text"><span>'+this.localize("Loaded")+"</span>: 0%</span>"})},b.prototype.update=function(){var a=this.player_.buffered(),b=this.player_.duration(),c=this.player_.bufferedEnd(),d=this.el_.children,e=function(a,b){var c=a/b||0;return 100*(c>=1?1:c)+"%"};this.el_.style.width=e(c,b);for(var f=0;f<a.length;f++){var g=a.start(f),h=a.end(f),i=d[f];i||(i=this.el_.appendChild(k.createEl())),i.style.left=e(g,c),i.style.width=e(h-g,c)}for(var f=d.length;f>a.length;f--)this.el_.removeChild(d[f-1])},b}(i["default"]);i["default"].registerComponent("LoadProgressBar",l),c["default"]=l,b.exports=c["default"]},{"../../component.js":65,"../../utils/dom.js":128}],74:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=a("../../utils/fn.js"),m=d(l),n=a("../../utils/format-time.js"),o=e(n),p=a("lodash-compat/function/throttle"),q=e(p),r=function(a){function b(c,d){var e=this;f(this,b),a.call(this,c,d),this.update(0,0),c.on("ready",function(){e.on(c.controlBar.progressControl.el(),"mousemove",q["default"](m.bind(e,e.handleMouseMove),25))})}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-mouse-display"})},b.prototype.handleMouseMove=function(a){var b=this.player_.duration(),c=this.calculateDistance(a)*b,d=a.pageX-k.findElPosition(this.el().parentNode).left;this.update(c,d)},b.prototype.update=function(a,b){var c=o["default"](a,this.player_.duration());this.el().style.left=b+"px",this.el().setAttribute("data-current-time",c)},b.prototype.calculateDistance=function(a){return k.getPointerPosition(this.el().parentNode,a).x},b}(i["default"]);i["default"].registerComponent("MouseTimeDisplay",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":65,"../../utils/dom.js":128,"../../utils/fn.js":130,"../../utils/format-time.js":131,"lodash-compat/function/throttle":7}],75:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/fn.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateDataAttr(),this.on(c,"timeupdate",this.updateDataAttr),c.ready(k.bind(this,this.updateDataAttr))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-play-progress vjs-slider-bar",innerHTML:'<span class="vjs-control-text"><span>'+this.localize("Progress")+"</span>: 0%</span>"})},b.prototype.updateDataAttr=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("data-current-time",m["default"](a,this.player_.duration()))},b}(i["default"]);i["default"].registerComponent("PlayProgressBar",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":65,"../../utils/fn.js":130,"../../utils/format-time.js":131}],76:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("./seek-bar.js"),j=(d(i),a("./mouse-time-display.js")),k=(d(j),function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-control vjs-control"})},b}(h["default"]));k.prototype.options_={children:["seekBar"]},h["default"].registerComponent("ProgressControl",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":65,"./mouse-time-display.js":74,"./seek-bar.js":77}],77:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("./load-progress-bar.js"),m=(e(l),a("./play-progress-bar.js")),n=(e(m),a("../../utils/fn.js")),o=d(n),p=a("../../utils/format-time.js"),q=e(p),r=a("object.assign"),s=(e(r),function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateARIAAttributes),c.ready(o.bind(this,this.updateARIAAttributes))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-holder"},{"aria-label":"video progress bar"})},b.prototype.updateARIAAttributes=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("aria-valuenow",(100*this.getPercent()).toFixed(2)),this.el_.setAttribute("aria-valuetext",q["default"](a,this.player_.duration()))},b.prototype.getPercent=function(){var a=this.player_.currentTime()/this.player_.duration();return a>=1?1:a},b.prototype.handleMouseDown=function(b){a.prototype.handleMouseDown.call(this,b),this.player_.scrubbing(!0),this.videoWasPlaying=!this.player_.paused(),this.player_.pause()},b.prototype.handleMouseMove=function(a){var b=this.calculateDistance(a)*this.player_.duration();b===this.player_.duration()&&(b-=.1),this.player_.currentTime(b)},b.prototype.handleMouseUp=function(b){a.prototype.handleMouseUp.call(this,b),this.player_.scrubbing(!1),this.videoWasPlaying&&this.player_.play()},b.prototype.stepForward=function(){this.player_.currentTime(this.player_.currentTime()+5)},b.prototype.stepBack=function(){this.player_.currentTime(this.player_.currentTime()-5)},b}(i["default"]));s.prototype.options_={children:["loadProgressBar","mouseTimeDisplay","playProgressBar"],barName:"playProgressBar"},s.prototype.playerEvent="timeupdate",k["default"].registerComponent("SeekBar",s),c["default"]=s,b.exports=c["default"]},{"../../component.js":65,"../../slider/slider.js":110,"../../utils/fn.js":130,"../../utils/format-time.js":131,"./load-progress-bar.js":73,"./play-progress-bar.js":75,"object.assign":45}],78:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./spacer.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-custom-control-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,{className:this.buildCSSClass()});return b.innerHTML=" ",b},b}(h["default"]);j["default"].registerComponent("CustomControlSpacer",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":65,"./spacer.js":79}],79:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},b}(h["default"]);h["default"].registerComponent("Spacer",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":65}],80:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),d.track={kind:d.kind,player:c,label:d.kind+" settings","default":!1,mode:"disabled"},a.call(this,c,d),this.addClass("vjs-texttrack-settings")}return f(b,a),b.prototype.handleClick=function(){this.player().getChild("textTrackSettings").show()},b}(h["default"]);j["default"].registerComponent("CaptionSettingsMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":65,"./text-track-menu-item.js":87}],81:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
|
15 |
+
}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=a("./caption-settings-menu-item.js"),l=d(k),m=function(a){function b(c,d,f){e(this,b),a.call(this,c,d,f),this.el_.setAttribute("aria-label","Captions Menu")}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-captions-button "+a.prototype.buildCSSClass.call(this)},b.prototype.update=function(){var b=2;a.prototype.update.call(this),this.player().tech_&&this.player().tech_.featuresNativeTextTracks&&(b=1),this.items&&this.items.length>b?this.show():this.hide()},b.prototype.createItems=function(){var b=[];return this.player().tech_&&this.player().tech_.featuresNativeTextTracks||b.push(new l["default"](this.player_,{kind:this.kind_})),a.prototype.createItems.call(this,b)},b}(h["default"]);m.prototype.kind_="captions",m.prototype.controlText_="Captions",j["default"].registerComponent("CaptionsButton",m),c["default"]=m,b.exports=c["default"]},{"../../component.js":65,"./caption-settings-menu-item.js":80,"./text-track-button.js":86}],82:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./text-track-button.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("./text-track-menu-item.js"),m=e(l),n=a("./chapters-track-menu-item.js"),o=e(n),p=a("../../menu/menu.js"),q=e(p),r=a("../../utils/dom.js"),s=d(r),t=a("../../utils/fn.js"),u=(d(t),a("../../utils/to-title-case.js")),v=e(u),w=a("global/window"),x=(e(w),function(a){function b(c,d,e){f(this,b),a.call(this,c,d,e),this.el_.setAttribute("aria-label","Chapters Menu")}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-chapters-button "+a.prototype.buildCSSClass.call(this)},b.prototype.createItems=function(){var a=[],b=this.player_.textTracks();if(!b)return a;for(var c=0;c<b.length;c++){var d=b[c];d.kind===this.kind_&&a.push(new m["default"](this.player_,{track:d}))}return a},b.prototype.createMenu=function(){for(var a=this,b=this.player_.textTracks()||[],c=void 0,d=this.items=[],e=0,f=b.length;f>e;e++){var g=b[e];if(g.kind===this.kind_){c=g;break}}var h=this.menu;if(void 0===h&&(h=new q["default"](this.player_),h.contentEl().appendChild(s.createEl("li",{className:"vjs-menu-title",innerHTML:v["default"](this.kind_),tabIndex:-1}))),c&&null==c.cues){c.mode="hidden";var i=this.player_.remoteTextTrackEls().getTrackElementByTrack_(c);i&&i.addEventListener("load",function(){return a.update()})}if(c&&c.cues&&c.cues.length>0){for(var j=c.cues,k=void 0,e=0,l=j.length;l>e;e++){k=j[e];var m=new o["default"](this.player_,{track:c,cue:k});d.push(m),h.addChild(m)}this.addChild(h)}return this.items.length>0&&this.show(),h},b}(i["default"]));x.prototype.kind_="chapters",x.prototype.controlText_="Chapters",k["default"].registerComponent("ChaptersButton",x),c["default"]=x,b.exports=c["default"]},{"../../component.js":65,"../../menu/menu.js":104,"../../utils/dom.js":128,"../../utils/fn.js":130,"../../utils/to-title-case.js":137,"./chapters-track-menu-item.js":83,"./text-track-button.js":86,"./text-track-menu-item.js":87,"global/window":2}],83:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-item.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=function(a){function b(c,d){f(this,b);var e=d.track,g=d.cue,h=c.currentTime();d.label=g.text,d.selected=g.startTime<=h&&h<g.endTime,a.call(this,c,d),this.track=e,this.cue=g,e.addEventListener("cuechange",m.bind(this,this.update))}return g(b,a),b.prototype.handleClick=function(){a.prototype.handleClick.call(this),this.player_.currentTime(this.cue.startTime),this.update(this.cue.startTime)},b.prototype.update=function(){var a=this.cue,b=this.player_.currentTime();this.selected(a.startTime<=b&&b<a.endTime)},b}(i["default"]);k["default"].registerComponent("ChaptersTrackMenuItem",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":65,"../../menu/menu-item.js":103,"../../utils/fn.js":130}],84:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),d.track={kind:d.kind,player:c,label:d.kind+" off","default":!1,mode:"disabled"},a.call(this,c,d),this.selected(!0)}return f(b,a),b.prototype.handleTracksChange=function(){for(var a=this.player().textTracks(),b=!0,c=0,d=a.length;d>c;c++){var e=a[c];if(e.kind===this.track.kind&&"showing"===e.mode){b=!1;break}}this.selected(b)},b}(h["default"]);j["default"].registerComponent("OffTextTrackMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":65,"./text-track-menu-item.js":87}],85:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d,f){e(this,b),a.call(this,c,d,f),this.el_.setAttribute("aria-label","Subtitles Menu")}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-subtitles-button "+a.prototype.buildCSSClass.call(this)},b}(h["default"]);k.prototype.kind_="subtitles",k.prototype.controlText_="Subtitles",j["default"].registerComponent("SubtitlesButton",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":65,"./text-track-button.js":86}],86:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-button.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./text-track-menu-item.js"),o=e(n),p=a("./off-text-track-menu-item.js"),q=e(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=this.player_.textTracks();if(this.items.length<=1&&this.hide(),e){var g=m.bind(this,this.update);e.addEventListener("removetrack",g),e.addEventListener("addtrack",g),this.player_.on("dispose",function(){e.removeEventListener("removetrack",g),e.removeEventListener("addtrack",g)})}}return g(b,a),b.prototype.createItems=function(){var a=arguments.length<=0||void 0===arguments[0]?[]:arguments[0];a.push(new q["default"](this.player_,{kind:this.kind_}));var b=this.player_.textTracks();if(!b)return a;for(var c=0;c<b.length;c++){var d=b[c];d.kind===this.kind_&&a.push(new o["default"](this.player_,{track:d}))}return a},b}(i["default"]);k["default"].registerComponent("TextTrackButton",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":65,"../../menu/menu-button.js":102,"../../utils/fn.js":130,"./off-text-track-menu-item.js":84,"./text-track-menu-item.js":87}],87:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-item.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("global/window"),o=e(n),p=a("global/document"),q=e(p),r=function(a){function b(c,d){var e=this;f(this,b);var g=d.track,h=c.textTracks();d.label=g.label||g.language||"Unknown",d.selected=g["default"]||"showing"===g.mode,a.call(this,c,d),this.track=g,h&&!function(){var a=m.bind(e,e.handleTracksChange);h.addEventListener("change",a),e.on("dispose",function(){h.removeEventListener("change",a)})}(),h&&void 0===h.onchange&&!function(){var a=void 0;e.on(["tap","click"],function(){if("object"!=typeof o["default"].Event)try{a=new o["default"].Event("change")}catch(b){}a||(a=q["default"].createEvent("Event"),a.initEvent("change",!0,!0)),h.dispatchEvent(a)})}()}return g(b,a),b.prototype.handleClick=function(b){var c=this.track.kind,d=this.player_.textTracks();if(a.prototype.handleClick.call(this,b),d)for(var e=0;e<d.length;e++){var f=d[e];f.kind===c&&(f.mode=f===this.track?"showing":"disabled")}},b.prototype.handleTracksChange=function(){this.selected("showing"===this.track.mode)},b}(i["default"]);k["default"].registerComponent("TextTrackMenuItem",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":65,"../../menu/menu-item.js":103,"../../utils/fn.js":130,"global/document":1,"global/window":2}],88:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-current-time vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-current-time-display",innerHTML:'<span class="vjs-control-text">Current Time </span>0:00'},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime(),b=this.localize("Current Time"),c=m["default"](a,this.player_.duration());this.contentEl_.innerHTML='<span class="vjs-control-text">'+b+"</span> "+c},b}(i["default"]);i["default"].registerComponent("CurrentTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":65,"../../utils/dom.js":128,"../../utils/format-time.js":131}],89:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent),this.on(c,"loadedmetadata",this.updateContent)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-duration vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-duration-display",innerHTML:'<span class="vjs-control-text">'+this.localize("Duration Time")+"</span> 0:00"},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){var a=this.player_.duration();if(a){var b=this.localize("Duration Time"),c=m["default"](a);this.contentEl_.innerHTML='<span class="vjs-control-text">'+b+"</span> "+c}},b}(i["default"]);i["default"].registerComponent("DurationDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":65,"../../utils/dom.js":128,"../../utils/format-time.js":131}],90:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-remaining-time vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-remaining-time-display",innerHTML:'<span class="vjs-control-text">'+this.localize("Remaining Time")+"</span> -0:00"},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){if(this.player_.duration()){var a=this.localize("Remaining Time"),b=m["default"](this.player_.remainingTime());this.contentEl_.innerHTML='<span class="vjs-control-text">'+a+"</span> -"+b}},b}(i["default"]);i["default"].registerComponent("RemainingTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":65,"../../utils/dom.js":128,"../../utils/format-time.js":131}],91:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-time-control vjs-time-divider",innerHTML:"<div><span>/</span></div>"})},b}(h["default"]);h["default"].registerComponent("TimeDivider",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":65}],92:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./volume-level.js"),o=(e(n),function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.updateARIAAttributes),c.ready(m.bind(this,this.updateARIAAttributes))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-bar vjs-slider-bar"},{"aria-label":"volume level"})},b.prototype.handleMouseMove=function(a){this.player_.muted()&&this.player_.muted(!1),this.player_.volume(this.calculateDistance(a))},b.prototype.getPercent=function(){return this.player_.muted()?0:this.player_.volume()},b.prototype.stepForward=function(){this.player_.volume(this.player_.volume()+.1)},b.prototype.stepBack=function(){this.player_.volume(this.player_.volume()-.1)},b.prototype.updateARIAAttributes=function(){var a=(100*this.player_.volume()).toFixed(2);this.el_.setAttribute("aria-valuenow",a),this.el_.setAttribute("aria-valuetext",a+"%")},b}(i["default"]));o.prototype.options_={children:["volumeLevel"],barName:"volumeLevel"},o.prototype.playerEvent="volumechange",k["default"].registerComponent("VolumeBar",o),c["default"]=o,b.exports=c["default"]},{"../../component.js":65,"../../slider/slider.js":110,"../../utils/fn.js":130,"./volume-level.js":94}],93:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("./volume-bar.js"),j=(d(i),function(a){function b(c,d){e(this,b),a.call(this,c,d),c.tech_&&c.tech_.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-control vjs-control"})},b}(h["default"]));j.prototype.options_={children:["volumeBar"]},h["default"].registerComponent("VolumeControl",j),c["default"]=j,b.exports=c["default"]},{"../../component.js":65,"./volume-bar.js":92}],94:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-level",innerHTML:'<span class="vjs-control-text"></span>'})},b}(h["default"]);h["default"].registerComponent("VolumeLevel",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":65}],95:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../button.js"),i=(e(h),a("../utils/fn.js")),j=d(i),k=a("../component.js"),l=e(k),m=a("../menu/menu.js"),n=e(m),o=a("../menu/menu-button.js"),p=e(o),q=a("./mute-toggle.js"),r=e(q),s=a("./volume-control/volume-bar.js"),t=e(s),u=a("global/document"),v=e(u),w=function(a){function b(c){function d(){c.tech_&&c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];f(this,b),void 0===e.inline&&(e.inline=!0),void 0===e.vertical&&(e.vertical=e.inline?!1:!0),e.volumeBar=e.volumeBar||{},e.volumeBar.vertical=!!e.vertical,a.call(this,c,e),this.on(c,"volumechange",this.volumeUpdate),this.on(c,"loadstart",this.volumeUpdate),d.call(this),this.on(c,"loadstart",d),this.on(this.volumeBar,["slideractive","focus"],function(){this.addClass("vjs-slider-active")}),this.on(this.volumeBar,["sliderinactive","blur"],function(){this.removeClass("vjs-slider-active")})}return g(b,a),b.prototype.buildCSSClass=function(){var b="";return b=this.options_.vertical?"vjs-volume-menu-button-vertical":"vjs-volume-menu-button-horizontal","vjs-volume-menu-button "+a.prototype.buildCSSClass.call(this)+" "+b},b.prototype.createMenu=function(){var a=new n["default"](this.player_,{contentElType:"div"}),b=new t["default"](this.player_,this.options_.volumeBar);return a.addChild(b),this.volumeBar=b,this.attachVolumeBarEvents(),a},b.prototype.handleClick=function(){r["default"].prototype.handleClick.call(this),a.prototype.handleClick.call(this)},b.prototype.attachVolumeBarEvents=function(){this.on(["mousedown","touchdown"],this.handleMouseDown)},b.prototype.handleMouseDown=function(){this.on(["mousemove","touchmove"],j.bind(this.volumeBar,this.volumeBar.handleMouseMove)),this.on(v["default"],["mouseup","touchend"],this.handleMouseUp)},b.prototype.handleMouseUp=function(){this.off(["mousemove","touchmove"],j.bind(this.volumeBar,this.volumeBar.handleMouseMove))},b}(p["default"]);w.prototype.volumeUpdate=r["default"].prototype.update,w.prototype.controlText_="Mute",l["default"].registerComponent("VolumeMenuButton",w),c["default"]=w,b.exports=c["default"]},{"../button.js":63,"../component.js":65,"../menu/menu-button.js":102,"../menu/menu.js":104,"../utils/fn.js":130,"./mute-toggle.js":69,"./volume-control/volume-bar.js":92,"global/document":1}],96:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component"),i=e(h),j=a("./modal-dialog"),k=e(j),l=a("./utils/dom"),m=(d(l),a("./utils/merge-options")),n=e(m),o=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"error",this.open)}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-error-display "+a.prototype.buildCSSClass.call(this)},b.prototype.content=function(){var a=this.player().error();return a?this.localize(a.message):""},b}(k["default"]);o.prototype.options_=n["default"](k["default"].prototype.options_,{fillAlways:!0,temporary:!1,uncloseable:!0}),i["default"].registerComponent("ErrorDisplay",o),c["default"]=o,b.exports=c["default"]},{"./component":65,"./modal-dialog":105,"./utils/dom":128,"./utils/merge-options":134}],97:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}c.__esModule=!0;var e=a("./utils/events.js"),f=d(e),g=function(){};g.prototype.allowedEvents_={},g.prototype.on=function(a,b){var c=this.addEventListener;this.addEventListener=Function.prototype,f.on(this,a,b),this.addEventListener=c},g.prototype.addEventListener=g.prototype.on,g.prototype.off=function(a,b){f.off(this,a,b)},g.prototype.removeEventListener=g.prototype.off,g.prototype.one=function(a,b){f.one(this,a,b)},g.prototype.trigger=function(a){var b=a.type||a;"string"==typeof a&&(a={type:b}),a=f.fixEvent(a),this.allowedEvents_[b]&&this["on"+b]&&this["on"+b](a),f.trigger(this,a)},g.prototype.dispatchEvent=g.prototype.trigger,c["default"]=g,b.exports=c["default"]},{"./utils/events.js":129}],98:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./utils/log"),f=d(e),g=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.super_=b)},h=function(a){var b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],c=function(){a.apply(this,arguments)},d={};"object"==typeof b?("function"==typeof b.init&&(f["default"].warn("Constructor logic via init() is deprecated; please use constructor() instead."),b.constructor=b.init),b.constructor!==Object.prototype.constructor&&(c=b.constructor),d=b):"function"==typeof b&&(c=b),g(c,a);for(var e in d)d.hasOwnProperty(e)&&(c.prototype[e]=d[e]);return c};c["default"]=h,b.exports=c["default"]},{"./utils/log":133}],99:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;for(var e=a("global/document"),f=d(e),g={},h=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=h[0],j=void 0,k=0;k<h.length;k++)if(h[k][1]in f["default"]){j=h[k];break}if(j)for(var k=0;k<j.length;k++)g[i[k]]=j[k];c["default"]=g,b.exports=c["default"]},{"global/document":1}],100:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./component"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-loading-spinner"})},b}(h["default"]);h["default"].registerComponent("LoadingSpinner",i),c["default"]=i,b.exports=c["default"]},{"./component":65}],101:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("object.assign"),f=d(e),g=function i(a){"number"==typeof a?this.code=a:"string"==typeof a?this.message=a:"object"==typeof a&&f["default"](this,a),this.message||(this.message=i.defaultMessages[this.code]||"")};g.prototype.code=0,g.prototype.message="",g.prototype.status=null,g.errorTypes=["MEDIA_ERR_CUSTOM","MEDIA_ERR_ABORTED","MEDIA_ERR_NETWORK","MEDIA_ERR_DECODE","MEDIA_ERR_SRC_NOT_SUPPORTED","MEDIA_ERR_ENCRYPTED"],g.defaultMessages={1:"You aborted the media playback",2:"A network error caused the media download to fail part-way.",3:"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.",4:"The media could not be loaded, either because the server or network failed or because the format is not supported.",5:"The media is encrypted and we do not have the keys to decrypt it."};for(var h=0;h<g.errorTypes.length;h++)g[g.errorTypes[h]]=h,g.prototype[g.errorTypes[h]]=h;c["default"]=g,b.exports=c["default"]},{"object.assign":45}],102:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../button.js"),i=e(h),j=a("../component.js"),k=e(j),l=a("./menu.js"),m=e(l),n=a("../utils/dom.js"),o=d(n),p=a("../utils/fn.js"),q=d(p),r=a("../utils/to-title-case.js"),s=e(r),t=function(a){function b(c){var d=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];f(this,b),a.call(this,c,d),this.update(),this.on("keydown",this.handleKeyPress),this.el_.setAttribute("aria-haspopup",!0),this.el_.setAttribute("role","button")}return g(b,a),b.prototype.update=function(){var a=this.createMenu();this.menu&&this.removeChild(this.menu),this.menu=a,this.addChild(a),this.buttonPressed_=!1,this.items&&0===this.items.length?this.hide():this.items&&this.items.length>1&&this.show();
|
16 |
+
|
17 |
+
},b.prototype.createMenu=function(){var a=new m["default"](this.player_);if(this.options_.title&&a.contentEl().appendChild(o.createEl("li",{className:"vjs-menu-title",innerHTML:s["default"](this.options_.title),tabIndex:-1})),this.items=this.createItems(),this.items)for(var b=0;b<this.items.length;b++)a.addItem(this.items[b]);return a},b.prototype.createItems=function(){},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},b.prototype.buildCSSClass=function(){var b="vjs-menu-button";return b+=this.options_.inline===!0?"-inline":"-popup","vjs-menu-button "+b+" "+a.prototype.buildCSSClass.call(this)},b.prototype.handleFocus=function(){},b.prototype.handleBlur=function(){},b.prototype.handleClick=function(){this.one("mouseout",q.bind(this,function(){this.menu.unlockShowing(),this.el_.blur()})),this.buttonPressed_?this.unpressButton():this.pressButton()},b.prototype.handleKeyPress=function(a){32===a.which||13===a.which?(this.buttonPressed_?this.unpressButton():this.pressButton(),a.preventDefault()):27===a.which&&(this.buttonPressed_&&this.unpressButton(),a.preventDefault())},b.prototype.pressButton=function(){this.buttonPressed_=!0,this.menu.lockShowing(),this.el_.setAttribute("aria-pressed",!0),this.items&&this.items.length>0&&this.items[0].el().focus()},b.prototype.unpressButton=function(){this.buttonPressed_=!1,this.menu.unlockShowing(),this.el_.setAttribute("aria-pressed",!1)},b}(i["default"]);k["default"].registerComponent("MenuButton",t),c["default"]=t,b.exports=c["default"]},{"../button.js":63,"../component.js":65,"../utils/dom.js":128,"../utils/fn.js":130,"../utils/to-title-case.js":137,"./menu.js":104}],103:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=a("object.assign"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.selected(d.selected)}return f(b,a),b.prototype.createEl=function(b,c,d){return a.prototype.createEl.call(this,"li",l["default"]({className:"vjs-menu-item",innerHTML:this.localize(this.options_.label)},c),d)},b.prototype.handleClick=function(){this.selected(!0)},b.prototype.selected=function(a){a?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-selected",!0)):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-selected",!1))},b}(h["default"]);j["default"].registerComponent("MenuItem",m),c["default"]=m,b.exports=c["default"]},{"../button.js":63,"../component.js":65,"object.assign":45}],104:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component.js"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=a("../utils/fn.js"),m=d(l),n=a("../utils/events.js"),o=d(n),p=function(a){function b(){f(this,b),a.apply(this,arguments)}return g(b,a),b.prototype.addItem=function(a){this.addChild(a),a.on("click",m.bind(this,function(){this.unlockShowing()}))},b.prototype.createEl=function(){var b=this.options_.contentElType||"ul";this.contentEl_=k.createEl(b,{className:"vjs-menu-content"});var c=a.prototype.createEl.call(this,"div",{append:this.contentEl_,className:"vjs-menu"});return c.appendChild(this.contentEl_),o.on(c,"click",function(a){a.preventDefault(),a.stopImmediatePropagation()}),c},b}(i["default"]);i["default"].registerComponent("Menu",p),c["default"]=p,b.exports=c["default"]},{"../component.js":65,"../utils/dom.js":128,"../utils/events.js":129,"../utils/fn.js":130}],105:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("global/document"),i=e(h),j=a("./utils/dom"),k=d(j),l=a("./utils/fn"),m=d(l),n=a("./utils/log"),o=(e(n),a("./component")),p=e(o),q=a("./close-button"),r=(e(q),"vjs-modal-dialog"),s=27,t=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.opened_=this.hasBeenOpened_=this.hasBeenFilled_=!1,this.closeable(!this.options_.uncloseable),this.content(this.options_.content),this.contentEl_=k.createEl("div",{className:r+"-content"},{role:"document"}),this.descEl_=k.createEl("p",{className:r+"-description vjs-offscreen",id:this.el().getAttribute("aria-describedby")}),k.textContent(this.descEl_,this.description()),this.el_.appendChild(this.descEl_),this.el_.appendChild(this.contentEl_)}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass(),tabIndex:-1},{"aria-describedby":this.id()+"_description","aria-hidden":"true","aria-label":this.label(),role:"dialog"})},b.prototype.buildCSSClass=function(){return r+" vjs-hidden "+a.prototype.buildCSSClass.call(this)},b.prototype.handleKeyPress=function(a){a.which===s&&this.closeable()&&this.close()},b.prototype.label=function(){return this.options_.label||this.localize("Modal Window")},b.prototype.description=function(){var a=this.options_.description||this.localize("This is a modal window.");return this.closeable()&&(a+=" "+this.localize("This modal can be closed by pressing the Escape key or activating the close button.")),a},b.prototype.open=function(){if(!this.opened_){var a=this.player();this.trigger("beforemodalopen"),this.opened_=!0,(this.options_.fillAlways||!this.hasBeenOpened_&&!this.hasBeenFilled_)&&this.fill(),this.wasPlaying_=!a.paused(),this.wasPlaying_&&a.pause(),this.closeable()&&this.on(i["default"],"keydown",m.bind(this,this.handleKeyPress)),a.controls(!1),this.show(),this.el().setAttribute("aria-hidden","false"),this.trigger("modalopen"),this.hasBeenOpened_=!0}return this},b.prototype.opened=function(a){return"boolean"==typeof a&&this[a?"open":"close"](),this.opened_},b.prototype.close=function(){if(this.opened_){var a=this.player();this.trigger("beforemodalclose"),this.opened_=!1,this.wasPlaying_&&a.play(),this.closeable()&&this.off(i["default"],"keydown",m.bind(this,this.handleKeyPress)),a.controls(!0),this.hide(),this.el().setAttribute("aria-hidden","true"),this.trigger("modalclose"),this.options_.temporary&&this.dispose()}return this},b.prototype.closeable=function c(a){if("boolean"==typeof a){var c=this.closeable_=!!a,b=this.getChild("closeButton");if(c&&!b){var d=this.contentEl_;this.contentEl_=this.el_,b=this.addChild("closeButton"),this.contentEl_=d,this.on(b,"close",this.close)}!c&&b&&(this.off(b,"close",this.close),this.removeChild(b),b.dispose())}return this.closeable_},b.prototype.fill=function(){return this.fillWith(this.content())},b.prototype.fillWith=function(a){var b=this.contentEl(),c=b.parentNode,d=b.nextSibling;return this.trigger("beforemodalfill"),this.hasBeenFilled_=!0,c.removeChild(b),this.empty(),k.insertContent(b,a),this.trigger("modalfill"),d?c.insertBefore(b,d):c.appendChild(b),this},b.prototype.empty=function(){return this.trigger("beforemodalempty"),k.emptyEl(this.contentEl()),this.trigger("modalempty"),this},b.prototype.content=function(a){return"undefined"!=typeof a&&(this.content_=a),this.content_},b}(p["default"]);t.prototype.options_={temporary:!0},p["default"].registerComponent("ModalDialog",t),c["default"]=t,b.exports=c["default"]},{"./close-button":64,"./component":65,"./utils/dom":128,"./utils/fn":130,"./utils/log":133,"global/document":1}],106:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component.js"),i=e(h),j=a("global/document"),k=e(j),l=a("global/window"),m=e(l),n=a("./utils/events.js"),o=d(n),p=a("./utils/dom.js"),q=d(p),r=a("./utils/fn.js"),s=d(r),t=a("./utils/guid.js"),u=d(t),v=a("./utils/browser.js"),w=(d(v),a("./utils/log.js")),x=e(w),y=a("./utils/to-title-case.js"),z=e(y),A=a("./utils/time-ranges.js"),B=a("./utils/buffer.js"),C=a("./utils/stylesheet.js"),D=d(C),E=a("./fullscreen-api.js"),F=e(E),G=a("./media-error.js"),H=e(G),I=a("safe-json-parse/tuple"),J=e(I),K=a("object.assign"),L=e(K),M=a("./utils/merge-options.js"),N=e(M),O=a("./tracks/text-track-list-converter.js"),P=e(O),Q=a("./tech/loader.js"),R=(e(Q),a("./poster-image.js")),S=(e(R),a("./tracks/text-track-display.js")),T=(e(S),a("./loading-spinner.js")),U=(e(T),a("./big-play-button.js")),V=(e(U),a("./control-bar/control-bar.js")),W=(e(V),a("./error-display.js")),X=(e(W),a("./tracks/text-track-settings.js")),Y=(e(X),a("./modal-dialog")),Z=e(Y),$=a("./tech/tech.js"),_=e($),aa=a("./tech/html5.js"),ba=(e(aa),function(a){function b(c,d,e){var g=this;if(f(this,b),c.id=c.id||"vjs_video_"+u.newGUID(),d=L["default"](b.getTagSettings(c),d),d.initChildren=!1,d.createEl=!1,d.reportTouchActivity=!1,a.call(this,null,d,e),!this.options_||!this.options_.techOrder||!this.options_.techOrder.length)throw new Error("No techOrder specified. Did you overwrite videojs.options instead of just changing the properties you want to override?");this.tag=c,this.tagAttributes=c&&q.getElAttributes(c),this.language(this.options_.language),d.languages?!function(){var a={};Object.getOwnPropertyNames(d.languages).forEach(function(b){a[b.toLowerCase()]=d.languages[b]}),g.languages_=a}():this.languages_=b.prototype.options_.languages,this.cache_={},this.poster_=d.poster||"",this.controls_=!!d.controls,c.controls=!1,this.scrubbing_=!1,this.el_=this.createEl();var h=N["default"](this.options_);d.plugins&&!function(){var a=d.plugins;Object.getOwnPropertyNames(a).forEach(function(b){"function"==typeof this[b]?this[b](a[b]):x["default"].error("Unable to find plugin:",b)},g)}(),this.options_.playerOptions=h,this.initChildren(),this.isAudio("audio"===c.nodeName.toLowerCase()),this.addClass(this.controls()?"vjs-controls-enabled":"vjs-controls-disabled"),this.isAudio()&&this.addClass("vjs-audio"),this.flexNotSupported_()&&this.addClass("vjs-no-flex"),b.players[this.id_]=this,this.userActive(!0),this.reportUserActivity(),this.listenForUserActivity_(),this.on("fullscreenchange",this.handleFullscreenChange_),this.on("stageclick",this.handleStageClick_)}return g(b,a),b.prototype.dispose=function(){this.trigger("dispose"),this.off("dispose"),this.styleEl_&&this.styleEl_.parentNode&&this.styleEl_.parentNode.removeChild(this.styleEl_),b.players[this.id_]=null,this.tag&&this.tag.player&&(this.tag.player=null),this.el_&&this.el_.player&&(this.el_.player=null),this.tech_&&this.tech_.dispose(),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var b=this.el_=a.prototype.createEl.call(this,"div"),c=this.tag;c.removeAttribute("width"),c.removeAttribute("height");var d=q.getElAttributes(c);Object.getOwnPropertyNames(d).forEach(function(a){"class"===a?b.className=d[a]:b.setAttribute(a,d[a])}),c.playerId=c.id,c.id+="_html5_api",c.className="vjs-tech",c.player=b.player=this,this.addClass("vjs-paused"),this.styleEl_=D.createStyleElement("vjs-styles-dimensions");var e=q.$(".vjs-styles-defaults"),f=q.$("head");return f.insertBefore(this.styleEl_,e?e.nextSibling:f.firstChild),this.width(this.options_.width),this.height(this.options_.height),this.fluid(this.options_.fluid),this.aspectRatio(this.options_.aspectRatio),c.initNetworkState_=c.networkState,c.parentNode&&c.parentNode.insertBefore(b,c),q.insertElFirst(c,b),this.el_=b,b},b.prototype.width=function(a){return this.dimension("width",a)},b.prototype.height=function(a){return this.dimension("height",a)},b.prototype.dimension=function(a,b){var c=a+"_";if(void 0===b)return this[c]||0;if(""===b)this[c]=void 0;else{var d=parseFloat(b);if(isNaN(d))return x["default"].error('Improper value "'+b+'" supplied for for '+a),this;this[c]=d}return this.updateStyleEl_(),this},b.prototype.fluid=function(a){return void 0===a?!!this.fluid_:(this.fluid_=!!a,void(a?this.addClass("vjs-fluid"):this.removeClass("vjs-fluid")))},b.prototype.aspectRatio=function(a){if(void 0===a)return this.aspectRatio_;if(!/^\d+\:\d+$/.test(a))throw new Error("Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.");this.aspectRatio_=a,this.fluid(!0),this.updateStyleEl_()},b.prototype.updateStyleEl_=function(){var a=void 0,b=void 0,c=void 0,d=void 0;c=void 0!==this.aspectRatio_&&"auto"!==this.aspectRatio_?this.aspectRatio_:this.videoWidth()?this.videoWidth()+":"+this.videoHeight():"16:9";var e=c.split(":"),f=e[1]/e[0];a=void 0!==this.width_?this.width_:void 0!==this.height_?this.height_/f:this.videoWidth()||300,b=void 0!==this.height_?this.height_:a*f,d=/^[^a-zA-Z]/.test(this.id())?"dimensions-"+this.id():this.id()+"-dimensions",this.addClass(d),D.setTextContent(this.styleEl_,"\n ."+d+" {\n width: "+a+"px;\n height: "+b+"px;\n }\n\n ."+d+".vjs-fluid {\n padding-top: "+100*f+"%;\n }\n ")},b.prototype.loadTech_=function(a,b){this.tech_&&this.unloadTech_(),"Html5"!==a&&this.tag&&(_["default"].getTech("Html5").disposeMediaElement(this.tag),this.tag.player=null,this.tag=null),this.techName_=a,this.isReady_=!1;var c=L["default"]({nativeControlsForTouch:this.options_.nativeControlsForTouch,source:b,playerId:this.id(),techId:this.id()+"_"+a+"_api",textTracks:this.textTracks_,autoplay:this.options_.autoplay,preload:this.options_.preload,loop:this.options_.loop,muted:this.options_.muted,poster:this.poster(),language:this.language(),"vtt.js":this.options_["vtt.js"]},this.options_[a.toLowerCase()]);this.tag&&(c.tag=this.tag),b&&(this.currentType_=b.type,b.src===this.cache_.src&&this.cache_.currentTime>0&&(c.startTime=this.cache_.currentTime),this.cache_.src=b.src);var d=_["default"].getTech(a);d||(d=i["default"].getComponent(a)),this.tech_=new d(c),this.tech_.ready(s.bind(this,this.handleTechReady_),!0),P["default"].jsonToTextTracks(this.textTracksJson_||[],this.tech_),this.on(this.tech_,"loadstart",this.handleTechLoadStart_),this.on(this.tech_,"waiting",this.handleTechWaiting_),this.on(this.tech_,"canplay",this.handleTechCanPlay_),this.on(this.tech_,"canplaythrough",this.handleTechCanPlayThrough_),this.on(this.tech_,"playing",this.handleTechPlaying_),this.on(this.tech_,"ended",this.handleTechEnded_),this.on(this.tech_,"seeking",this.handleTechSeeking_),this.on(this.tech_,"seeked",this.handleTechSeeked_),this.on(this.tech_,"play",this.handleTechPlay_),this.on(this.tech_,"firstplay",this.handleTechFirstPlay_),this.on(this.tech_,"pause",this.handleTechPause_),this.on(this.tech_,"progress",this.handleTechProgress_),this.on(this.tech_,"durationchange",this.handleTechDurationChange_),this.on(this.tech_,"fullscreenchange",this.handleTechFullscreenChange_),this.on(this.tech_,"error",this.handleTechError_),this.on(this.tech_,"suspend",this.handleTechSuspend_),this.on(this.tech_,"abort",this.handleTechAbort_),this.on(this.tech_,"emptied",this.handleTechEmptied_),this.on(this.tech_,"stalled",this.handleTechStalled_),this.on(this.tech_,"loadedmetadata",this.handleTechLoadedMetaData_),this.on(this.tech_,"loadeddata",this.handleTechLoadedData_),this.on(this.tech_,"timeupdate",this.handleTechTimeUpdate_),this.on(this.tech_,"ratechange",this.handleTechRateChange_),this.on(this.tech_,"volumechange",this.handleTechVolumeChange_),this.on(this.tech_,"texttrackchange",this.handleTechTextTrackChange_),this.on(this.tech_,"loadedmetadata",this.updateStyleEl_),this.on(this.tech_,"posterchange",this.handleTechPosterChange_),this.usingNativeControls(this.techGet_("controls")),this.controls()&&!this.usingNativeControls()&&this.addTechControlsListeners_(),this.tech_.el().parentNode===this.el()||"Html5"===a&&this.tag||q.insertElFirst(this.tech_.el(),this.el()),this.tag&&(this.tag.player=null,this.tag=null)},b.prototype.unloadTech_=function(){this.textTracks_=this.textTracks(),this.textTracksJson_=P["default"].textTracksToJson(this.tech_),this.isReady_=!1,this.tech_.dispose(),this.tech_=!1},b.prototype.tech=function(a){if(a&&a.IWillNotUseThisInPlugins)return this.tech_;var b="\n Please make sure that you are not using this inside of a plugin.\n To disable this alert and error, please pass in an object with\n `IWillNotUseThisInPlugins` to the `tech` method. See\n https://github.com/videojs/video.js/issues/2617 for more info.\n ";throw m["default"].alert(b),new Error(b)},b.prototype.addTechControlsListeners_=function(){this.removeTechControlsListeners_(),this.on(this.tech_,"mousedown",this.handleTechClick_),this.on(this.tech_,"touchstart",this.handleTechTouchStart_),this.on(this.tech_,"touchmove",this.handleTechTouchMove_),this.on(this.tech_,"touchend",this.handleTechTouchEnd_),this.on(this.tech_,"tap",this.handleTechTap_)},b.prototype.removeTechControlsListeners_=function(){this.off(this.tech_,"tap",this.handleTechTap_),this.off(this.tech_,"touchstart",this.handleTechTouchStart_),this.off(this.tech_,"touchmove",this.handleTechTouchMove_),this.off(this.tech_,"touchend",this.handleTechTouchEnd_),this.off(this.tech_,"mousedown",this.handleTechClick_)},b.prototype.handleTechReady_=function(){this.triggerReady(),this.cache_.volume&&this.techCall_("setVolume",this.cache_.volume),this.handleTechPosterChange_(),this.handleTechDurationChange_(),this.src()&&this.tag&&this.options_.autoplay&&this.paused()&&(delete this.tag.poster,this.play())},b.prototype.handleTechLoadStart_=function(){this.removeClass("vjs-ended"),this.error(null),this.paused()?(this.hasStarted(!1),this.trigger("loadstart")):(this.trigger("loadstart"),this.trigger("firstplay"))},b.prototype.hasStarted=function(a){return void 0!==a?(this.hasStarted_!==a&&(this.hasStarted_=a,a?(this.addClass("vjs-has-started"),this.trigger("firstplay")):this.removeClass("vjs-has-started")),this):!!this.hasStarted_},b.prototype.handleTechPlay_=function(){this.removeClass("vjs-ended"),this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.hasStarted(!0),this.trigger("play")},b.prototype.handleTechWaiting_=function(){this.addClass("vjs-waiting"),this.trigger("waiting")},b.prototype.handleTechCanPlay_=function(){this.removeClass("vjs-waiting"),this.trigger("canplay")},b.prototype.handleTechCanPlayThrough_=function(){this.removeClass("vjs-waiting"),this.trigger("canplaythrough")},b.prototype.handleTechPlaying_=function(){this.removeClass("vjs-waiting"),this.trigger("playing")},b.prototype.handleTechSeeking_=function(){this.addClass("vjs-seeking"),this.trigger("seeking")},b.prototype.handleTechSeeked_=function(){this.removeClass("vjs-seeking"),this.trigger("seeked")},b.prototype.handleTechFirstPlay_=function(){this.options_.starttime&&this.currentTime(this.options_.starttime),this.addClass("vjs-has-started"),this.trigger("firstplay")},b.prototype.handleTechPause_=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.trigger("pause")},b.prototype.handleTechProgress_=function(){this.trigger("progress")},b.prototype.handleTechEnded_=function(){this.addClass("vjs-ended"),this.options_.loop?(this.currentTime(0),this.play()):this.paused()||this.pause(),this.trigger("ended")},b.prototype.handleTechDurationChange_=function(){this.duration(this.techGet_("duration"))},b.prototype.handleTechClick_=function(a){0===a.button&&this.controls()&&(this.paused()?this.play():this.pause())},b.prototype.handleTechTap_=function(){this.userActive(!this.userActive())},b.prototype.handleTechTouchStart_=function(){this.userWasActive=this.userActive()},b.prototype.handleTechTouchMove_=function(){this.userWasActive&&this.reportUserActivity()},b.prototype.handleTechTouchEnd_=function(a){a.preventDefault()},b.prototype.handleFullscreenChange_=function(){this.isFullscreen()?this.addClass("vjs-fullscreen"):this.removeClass("vjs-fullscreen")},b.prototype.handleStageClick_=function(){this.reportUserActivity()},b.prototype.handleTechFullscreenChange_=function(a,b){b&&this.isFullscreen(b.isFullscreen),this.trigger("fullscreenchange")},b.prototype.handleTechError_=function(){var a=this.tech_.error();this.error(a&&a.code)},b.prototype.handleTechSuspend_=function(){this.trigger("suspend")},b.prototype.handleTechAbort_=function(){this.trigger("abort")},b.prototype.handleTechEmptied_=function(){this.trigger("emptied")},b.prototype.handleTechStalled_=function(){this.trigger("stalled")},b.prototype.handleTechLoadedMetaData_=function(){this.trigger("loadedmetadata")},b.prototype.handleTechLoadedData_=function(){this.trigger("loadeddata")},b.prototype.handleTechTimeUpdate_=function(){this.trigger("timeupdate")},b.prototype.handleTechRateChange_=function(){this.trigger("ratechange")},b.prototype.handleTechVolumeChange_=function(){this.trigger("volumechange")},b.prototype.handleTechTextTrackChange_=function(){this.trigger("texttrackchange")},b.prototype.getCache=function(){return this.cache_},b.prototype.techCall_=function(a,b){if(this.tech_&&!this.tech_.isReady_)this.tech_.ready(function(){this[a](b)},!0);else try{this.tech_[a](b)}catch(c){throw x["default"](c),c}},b.prototype.techGet_=function(a){if(this.tech_&&this.tech_.isReady_)try{return this.tech_[a]()}catch(b){throw void 0===this.tech_[a]?x["default"]("Video.js: "+a+" method not defined for "+this.techName_+" playback technology.",b):"TypeError"===b.name?(x["default"]("Video.js: "+a+" unavailable on "+this.techName_+" playback technology element.",b),this.tech_.isReady_=!1):x["default"](b),b}},b.prototype.play=function(){return this.techCall_("play"),this},b.prototype.pause=function(){return this.techCall_("pause"),this},b.prototype.paused=function(){return this.techGet_("paused")===!1?!1:!0},b.prototype.scrubbing=function(a){return void 0!==a?(this.scrubbing_=!!a,a?this.addClass("vjs-scrubbing"):this.removeClass("vjs-scrubbing"),this):this.scrubbing_},b.prototype.currentTime=function(a){return void 0!==a?(this.techCall_("setCurrentTime",a),this):this.cache_.currentTime=this.techGet_("currentTime")||0},b.prototype.duration=function(a){return void 0===a?this.cache_.duration||0:(a=parseFloat(a)||0,0>a&&(a=1/0),a!==this.cache_.duration&&(this.cache_.duration=a,a===1/0?this.addClass("vjs-live"):this.removeClass("vjs-live"),this.trigger("durationchange")),this)},b.prototype.remainingTime=function(){return this.duration()-this.currentTime()},b.prototype.buffered=function c(){var c=this.techGet_("buffered");return c&&c.length||(c=A.createTimeRange(0,0)),c},b.prototype.bufferedPercent=function(){return B.bufferedPercent(this.buffered(),this.duration())},b.prototype.bufferedEnd=function(){var a=this.buffered(),b=this.duration(),c=a.end(a.length-1);return c>b&&(c=b),c},b.prototype.volume=function(a){var b=void 0;return void 0!==a?(b=Math.max(0,Math.min(1,parseFloat(a))),this.cache_.volume=b,this.techCall_("setVolume",b),this):(b=parseFloat(this.techGet_("volume")),isNaN(b)?1:b)},b.prototype.muted=function(a){return void 0!==a?(this.techCall_("setMuted",a),this):this.techGet_("muted")||!1},b.prototype.supportsFullScreen=function(){return this.techGet_("supportsFullScreen")||!1},b.prototype.isFullscreen=function(a){return void 0!==a?(this.isFullscreen_=!!a,this):!!this.isFullscreen_},b.prototype.requestFullscreen=function(){var a=F["default"];return this.isFullscreen(!0),a.requestFullscreen?(o.on(k["default"],a.fullscreenchange,s.bind(this,function b(){this.isFullscreen(k["default"][a.fullscreenElement]),this.isFullscreen()===!1&&o.off(k["default"],a.fullscreenchange,b),this.trigger("fullscreenchange")})),this.el_[a.requestFullscreen]()):this.tech_.supportsFullScreen()?this.techCall_("enterFullScreen"):(this.enterFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.exitFullscreen=function(){var a=F["default"];return this.isFullscreen(!1),a.requestFullscreen?k["default"][a.exitFullscreen]():this.tech_.supportsFullScreen()?this.techCall_("exitFullScreen"):(this.exitFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.enterFullWindow=function(){this.isFullWindow=!0,this.docOrigOverflow=k["default"].documentElement.style.overflow,o.on(k["default"],"keydown",s.bind(this,this.fullWindowOnEscKey)),k["default"].documentElement.style.overflow="hidden",q.addElClass(k["default"].body,"vjs-full-window"),this.trigger("enterFullWindow")},b.prototype.fullWindowOnEscKey=function(a){27===a.keyCode&&(this.isFullscreen()===!0?this.exitFullscreen():this.exitFullWindow())},b.prototype.exitFullWindow=function(){this.isFullWindow=!1,o.off(k["default"],"keydown",this.fullWindowOnEscKey),k["default"].documentElement.style.overflow=this.docOrigOverflow,q.removeElClass(k["default"].body,"vjs-full-window"),this.trigger("exitFullWindow")},b.prototype.canPlayType=function(a){for(var b=void 0,c=0,d=this.options_.techOrder;c<d.length;c++){var e=z["default"](d[c]),f=_["default"].getTech(e);if(f||(f=i["default"].getComponent(e)),f){if(f.isSupported()&&(b=f.canPlayType(a)))return b}else x["default"].error('The "'+e+'" tech is undefined. Skipped browser support check for that tech.')}return""},b.prototype.selectSource=function(a){var b=this.options_.techOrder.map(z["default"]).map(function(a){return[a,_["default"].getTech(a)||i["default"].getComponent(a)]}).filter(function(a){var b=a[0],c=a[1];return c?c.isSupported():(x["default"].error('The "'+b+'" tech is undefined. Skipped browser support check for that tech.'),!1)}),c=function(a,b,c){var d=void 0;return a.some(function(a){return b.some(function(b){return d=c(a,b),d?!0:void 0})}),d},d=void 0,e=function(a){return function(b,c){return a(c,b)}},f=function(a,b){var c=a[0],d=a[1];return d.canPlaySource(b)?{source:b,tech:c}:void 0};return d=this.options_.sourceOrder?c(a,b,e(f)):c(b,a,f),d||!1},b.prototype.src=function(a){if(void 0===a)return this.techGet_("src");var b=_["default"].getTech(this.techName_);return b||(b=i["default"].getComponent(this.techName_)),Array.isArray(a)?this.sourceList_(a):"string"==typeof a?this.src({src:a}):a instanceof Object&&(a.type&&!b.canPlaySource(a)?this.sourceList_([a]):(this.cache_.src=a.src,this.currentType_=a.type||"",this.ready(function(){b.prototype.hasOwnProperty("setSource")?this.techCall_("setSource",a):this.techCall_("src",a.src),"auto"===this.options_.preload&&this.load(),this.options_.autoplay&&this.play()},!0))),this},b.prototype.sourceList_=function(a){var b=this.selectSource(a);b?b.tech===this.techName_?this.src(b.source):this.loadTech_(b.tech,b.source):(this.setTimeout(function(){this.error({code:4,message:this.localize(this.options_.notSupportedMessage)})},0),this.triggerReady())},b.prototype.load=function(){return this.techCall_("load"),this},b.prototype.reset=function(){return this.loadTech_(z["default"](this.options_.techOrder[0]),null),this.techCall_("reset"),this},b.prototype.currentSrc=function(){return this.techGet_("currentSrc")||this.cache_.src||""},b.prototype.currentType=function(){return this.currentType_||""},b.prototype.preload=function(a){return void 0!==a?(this.techCall_("setPreload",a),this.options_.preload=a,this):this.techGet_("preload")},b.prototype.autoplay=function(a){return void 0!==a?(this.techCall_("setAutoplay",a),this.options_.autoplay=a,this):this.techGet_("autoplay",a)},b.prototype.loop=function(a){return void 0!==a?(this.techCall_("setLoop",a),this.options_.loop=a,this):this.techGet_("loop")},b.prototype.poster=function(a){return void 0===a?this.poster_:(a||(a=""),this.poster_=a,this.techCall_("setPoster",a),this.trigger("posterchange"),this)},b.prototype.handleTechPosterChange_=function(){!this.poster_&&this.tech_&&this.tech_.poster&&(this.poster_=this.tech_.poster()||"",this.trigger("posterchange"))},b.prototype.controls=function(a){return void 0!==a?(a=!!a,this.controls_!==a&&(this.controls_=a,this.usingNativeControls()&&this.techCall_("setControls",a),a?(this.removeClass("vjs-controls-disabled"),this.addClass("vjs-controls-enabled"),this.trigger("controlsenabled"),this.usingNativeControls()||this.addTechControlsListeners_()):(this.removeClass("vjs-controls-enabled"),this.addClass("vjs-controls-disabled"),this.trigger("controlsdisabled"),this.usingNativeControls()||this.removeTechControlsListeners_())),this):!!this.controls_},b.prototype.usingNativeControls=function(a){return void 0!==a?(a=!!a,this.usingNativeControls_!==a&&(this.usingNativeControls_=a,a?(this.addClass("vjs-using-native-controls"),this.trigger("usingnativecontrols")):(this.removeClass("vjs-using-native-controls"),this.trigger("usingcustomcontrols"))),this):!!this.usingNativeControls_},b.prototype.error=function(a){return void 0===a?this.error_||null:null===a?(this.error_=a,this.removeClass("vjs-error"),this.errorDisplay.close(),this):(this.error_=a instanceof H["default"]?a:new H["default"](a),this.addClass("vjs-error"),x["default"].error("(CODE:"+this.error_.code+" "+H["default"].errorTypes[this.error_.code]+")",this.error_.message,this.error_),this.trigger("error"),this)},b.prototype.ended=function(){return this.techGet_("ended")},b.prototype.seeking=function(){return this.techGet_("seeking")},b.prototype.seekable=function(){return this.techGet_("seekable")},b.prototype.reportUserActivity=function(){this.userActivity_=!0},b.prototype.userActive=function(a){return void 0!==a?(a=!!a,a!==this.userActive_&&(this.userActive_=a,a?(this.userActivity_=!0,this.removeClass("vjs-user-inactive"),this.addClass("vjs-user-active"),this.trigger("useractive")):(this.userActivity_=!1,this.tech_&&this.tech_.one("mousemove",function(a){a.stopPropagation(),a.preventDefault()}),this.removeClass("vjs-user-active"),this.addClass("vjs-user-inactive"),this.trigger("userinactive"))),this):this.userActive_},b.prototype.listenForUserActivity_=function(){var a=void 0,b=void 0,c=void 0,d=s.bind(this,this.reportUserActivity),e=function(a){(a.screenX!==b||a.screenY!==c)&&(b=a.screenX,c=a.screenY,d())},f=function(){d(),this.clearInterval(a),a=this.setInterval(d,250)},g=function(){d(),this.clearInterval(a)};this.on("mousedown",f),this.on("mousemove",e),this.on("mouseup",g),this.on("keydown",d),this.on("keyup",d);{var h=void 0;this.setInterval(function(){if(this.userActivity_){this.userActivity_=!1,this.userActive(!0),this.clearTimeout(h);var a=this.options_.inactivityTimeout;a>0&&(h=this.setTimeout(function(){this.userActivity_||this.userActive(!1)},a))}},250)}},b.prototype.playbackRate=function(a){return void 0!==a?(this.techCall_("setPlaybackRate",a),this):this.tech_&&this.tech_.featuresPlaybackRate?this.techGet_("playbackRate"):1},b.prototype.isAudio=function(a){
|
18 |
+
return void 0!==a?(this.isAudio_=!!a,this):!!this.isAudio_},b.prototype.networkState=function(){return this.techGet_("networkState")},b.prototype.readyState=function(){return this.techGet_("readyState")},b.prototype.textTracks=function(){return this.tech_&&this.tech_.textTracks()},b.prototype.remoteTextTracks=function(){return this.tech_&&this.tech_.remoteTextTracks()},b.prototype.remoteTextTrackEls=function(){return this.tech_&&this.tech_.remoteTextTrackEls()},b.prototype.addTextTrack=function(a,b,c){return this.tech_&&this.tech_.addTextTrack(a,b,c)},b.prototype.addRemoteTextTrack=function(a){return this.tech_&&this.tech_.addRemoteTextTrack(a)},b.prototype.removeRemoteTextTrack=function(a){this.tech_&&this.tech_.removeRemoteTextTrack(a)},b.prototype.videoWidth=function(){return this.tech_&&this.tech_.videoWidth&&this.tech_.videoWidth()||0},b.prototype.videoHeight=function(){return this.tech_&&this.tech_.videoHeight&&this.tech_.videoHeight()||0},b.prototype.language=function(a){return void 0===a?this.language_:(this.language_=(""+a).toLowerCase(),this)},b.prototype.languages=function(){return N["default"](b.prototype.options_.languages,this.languages_)},b.prototype.toJSON=function(){var a=N["default"](this.options_),b=a.tracks;a.tracks=[];for(var c=0;c<b.length;c++){var d=b[c];d=N["default"](d),d.player=void 0,a.tracks[c]=d}return a},b.prototype.createModal=function(a,b){var c=this;b=b||{},b.content=a||"";var d=new Z["default"](c,b);return c.addChild(d),d.on("dispose",function(){c.removeChild(d)}),d.open()},b.getTagSettings=function(a){var b={sources:[],tracks:[]},c=q.getElAttributes(a),d=c["data-setup"];if(null!==d){var e=J["default"](d||"{}"),f=e[0],g=e[1];f&&x["default"].error(f),L["default"](c,g)}if(L["default"](b,c),a.hasChildNodes())for(var h=a.childNodes,i=0,j=h.length;j>i;i++){var k=h[i],l=k.nodeName.toLowerCase();"source"===l?b.sources.push(q.getElAttributes(k)):"track"===l&&b.tracks.push(q.getElAttributes(k))}return b},b}(i["default"]));ba.players={};var ca=m["default"].navigator;ba.prototype.options_={techOrder:["html5","flash"],html5:{},flash:{},defaultVolume:0,inactivityTimeout:2e3,playbackRates:[],children:["mediaLoader","posterImage","textTrackDisplay","loadingSpinner","bigPlayButton","controlBar","errorDisplay","textTrackSettings"],language:k["default"].getElementsByTagName("html")[0].getAttribute("lang")||ca.languages&&ca.languages[0]||ca.userLanguage||ca.language||"en",languages:{},notSupportedMessage:"No compatible source was found for this video."},ba.prototype.handleLoadedMetaData_,ba.prototype.handleLoadedData_,ba.prototype.handleUserActive_,ba.prototype.handleUserInactive_,ba.prototype.handleTimeUpdate_,ba.prototype.handleTechEnded_,ba.prototype.handleVolumeChange_,ba.prototype.handleError_,ba.prototype.flexNotSupported_=function(){var a=k["default"].createElement("i");return!("flexBasis"in a.style||"webkitFlexBasis"in a.style||"mozFlexBasis"in a.style||"msFlexBasis"in a.style||"msFlexOrder"in a.style)},i["default"].registerComponent("Player",ba),c["default"]=ba,b.exports=c["default"]},{"./big-play-button.js":62,"./component.js":65,"./control-bar/control-bar.js":66,"./error-display.js":96,"./fullscreen-api.js":99,"./loading-spinner.js":100,"./media-error.js":101,"./modal-dialog":105,"./poster-image.js":108,"./tech/html5.js":113,"./tech/loader.js":114,"./tech/tech.js":115,"./tracks/text-track-display.js":119,"./tracks/text-track-list-converter.js":121,"./tracks/text-track-settings.js":123,"./utils/browser.js":125,"./utils/buffer.js":126,"./utils/dom.js":128,"./utils/events.js":129,"./utils/fn.js":130,"./utils/guid.js":132,"./utils/log.js":133,"./utils/merge-options.js":134,"./utils/stylesheet.js":135,"./utils/time-ranges.js":136,"./utils/to-title-case.js":137,"global/document":1,"global/window":2,"object.assign":45,"safe-json-parse/tuple":53}],107:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./player.js"),f=d(e),g=function(a,b){f["default"].prototype[a]=b};c["default"]=g,b.exports=c["default"]},{"./player.js":106}],108:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./button.js"),i=e(h),j=a("./component.js"),k=e(j),l=a("./utils/fn.js"),m=d(l),n=a("./utils/dom.js"),o=d(n),p=a("./utils/browser.js"),q=d(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.update(),c.on("posterchange",m.bind(this,this.update))}return g(b,a),b.prototype.dispose=function(){this.player().off("posterchange",this.update),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var a=o.createEl("div",{className:"vjs-poster",tabIndex:-1});return q.BACKGROUND_SIZE_SUPPORTED||(this.fallbackImg_=o.createEl("img"),a.appendChild(this.fallbackImg_)),a},b.prototype.update=function(){var a=this.player().poster();this.setSrc(a),a?this.show():this.hide()},b.prototype.setSrc=function(a){if(this.fallbackImg_)this.fallbackImg_.src=a;else{var b="";a&&(b='url("'+a+'")'),this.el_.style.backgroundImage=b}},b.prototype.handleClick=function(){this.player_.paused()?this.player_.play():this.player_.pause()},b}(i["default"]);k["default"].registerComponent("PosterImage",r),c["default"]=r,b.exports=c["default"]},{"./button.js":63,"./component.js":65,"./utils/browser.js":125,"./utils/dom.js":128,"./utils/fn.js":130}],109:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}c.__esModule=!0;var f=a("./utils/events.js"),g=e(f),h=a("global/document"),i=d(h),j=a("global/window"),k=d(j),l=!1,m=void 0,n=function(){var a=i["default"].getElementsByTagName("video"),b=i["default"].getElementsByTagName("audio"),c=[];if(a&&a.length>0)for(var d=0,e=a.length;e>d;d++)c.push(a[d]);if(b&&b.length>0)for(var d=0,e=b.length;e>d;d++)c.push(b[d]);if(c&&c.length>0)for(var d=0,e=c.length;e>d;d++){var f=c[d];if(!f||!f.getAttribute){o(1);break}if(void 0===f.player){var g=f.getAttribute("data-setup");if(null!==g){m(f)}}}else l||o(1)},o=function(a,b){m=b,setTimeout(n,a)};"complete"===i["default"].readyState?l=!0:g.one(k["default"],"load",function(){l=!0});var p=function(){return l};c.autoSetup=n,c.autoSetupTimeout=o,c.hasLoaded=p},{"./utils/events.js":129,"global/document":1,"global/window":2}],110:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component.js"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=a("global/document"),m=e(l),n=a("object.assign"),o=e(n),p=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.bar=this.getChild(this.options_.barName),this.vertical(!!this.options_.vertical),this.on("mousedown",this.handleMouseDown),this.on("touchstart",this.handleMouseDown),this.on("focus",this.handleFocus),this.on("blur",this.handleBlur),this.on("click",this.handleClick),this.on(c,"controlsvisible",this.update),this.on(c,this.playerEvent,this.update)}return g(b,a),b.prototype.createEl=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];return c.className=c.className+" vjs-slider",c=o["default"]({tabIndex:0},c),d=o["default"]({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},d),a.prototype.createEl.call(this,b,c,d)},b.prototype.handleMouseDown=function(a){a.preventDefault(),k.blockTextSelection(),this.addClass("vjs-sliding"),this.trigger("slideractive"),this.on(m["default"],"mousemove",this.handleMouseMove),this.on(m["default"],"mouseup",this.handleMouseUp),this.on(m["default"],"touchmove",this.handleMouseMove),this.on(m["default"],"touchend",this.handleMouseUp),this.handleMouseMove(a)},b.prototype.handleMouseMove=function(){},b.prototype.handleMouseUp=function(){k.unblockTextSelection(),this.removeClass("vjs-sliding"),this.trigger("sliderinactive"),this.off(m["default"],"mousemove",this.handleMouseMove),this.off(m["default"],"mouseup",this.handleMouseUp),this.off(m["default"],"touchmove",this.handleMouseMove),this.off(m["default"],"touchend",this.handleMouseUp),this.update()},b.prototype.update=function(){if(this.el_){var a=this.getPercent(),b=this.bar;if(b){("number"!=typeof a||a!==a||0>a||a===1/0)&&(a=0);var c=(100*a).toFixed(2)+"%";this.vertical()?b.el().style.height=c:b.el().style.width=c}}},b.prototype.calculateDistance=function(a){var b=k.getPointerPosition(this.el_,a);return this.vertical()?b.y:b.x},b.prototype.handleFocus=function(){this.on(m["default"],"keydown",this.handleKeyPress)},b.prototype.handleKeyPress=function(a){37===a.which||40===a.which?(a.preventDefault(),this.stepBack()):(38===a.which||39===a.which)&&(a.preventDefault(),this.stepForward())},b.prototype.handleBlur=function(){this.off(m["default"],"keydown",this.handleKeyPress)},b.prototype.handleClick=function(a){a.stopImmediatePropagation(),a.preventDefault()},b.prototype.vertical=function(a){return void 0===a?this.vertical_||!1:(this.vertical_=!!a,this.addClass(this.vertical_?"vjs-slider-vertical":"vjs-slider-horizontal"),this)},b}(i["default"]);i["default"].registerComponent("Slider",p),c["default"]=p,b.exports=c["default"]},{"../component.js":65,"../utils/dom.js":128,"global/document":1,"object.assign":45}],111:[function(a,b,c){"use strict";function d(a){return a.streamingFormats={"rtmp/mp4":"MP4","rtmp/flv":"FLV"},a.streamFromParts=function(a,b){return a+"&"+b},a.streamToParts=function(a){var b={connection:"",stream:""};if(!a)return b;var c=a.search(/&(?!\w+=)/),d=void 0;return-1!==c?d=c+1:(c=d=a.lastIndexOf("/")+1,0===c&&(c=d=a.length)),b.connection=a.substring(0,c),b.stream=a.substring(d,a.length),b},a.isStreamingType=function(b){return b in a.streamingFormats},a.RTMP_RE=/^rtmp[set]?:\/\//i,a.isStreamingSrc=function(b){return a.RTMP_RE.test(b)},a.rtmpSourceHandler={},a.rtmpSourceHandler.canPlayType=function(b){return a.isStreamingType(b)?"maybe":""},a.rtmpSourceHandler.canHandleSource=function(b){var c=a.rtmpSourceHandler.canPlayType(b.type);return c?c:a.isStreamingSrc(b.src)?"maybe":""},a.rtmpSourceHandler.handleSource=function(b,c){var d=a.streamToParts(b.src);c.setRtmpConnection(d.connection),c.setRtmpStream(d.stream)},a.registerSourceHandler(a.rtmpSourceHandler),a}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],112:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a){var b=a.charAt(0).toUpperCase()+a.slice(1);A["set"+b]=function(b){return this.el_.vjs_setProperty(a,b)}}function i(a){A[a]=function(){return this.el_.vjs_getProperty(a)}}c.__esModule=!0;for(var j=a("./tech"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/time-ranges.js"),q=a("./flash-rtmp"),r=e(q),s=a("../component"),t=e(s),u=a("global/window"),v=e(u),w=a("object.assign"),x=e(w),y=v["default"].navigator,z=function(a){function b(c,d){f(this,b),a.call(this,c,d),c.source&&this.ready(function(){this.setSource(c.source)},!0),c.startTime&&this.ready(function(){this.load(),this.play(),this.currentTime(c.startTime)},!0),v["default"].videojs=v["default"].videojs||{},v["default"].videojs.Flash=v["default"].videojs.Flash||{},v["default"].videojs.Flash.onReady=b.onReady,v["default"].videojs.Flash.onEvent=b.onEvent,v["default"].videojs.Flash.onError=b.onError,this.on("seeked",function(){this.lastSeekTarget_=void 0})}return g(b,a),b.prototype.createEl=function(){var a=this.options_;a.swf||(a.swf="//vjs.zencdn.net/swf/5.0.1/video-js.swf");var c=a.techId,d=x["default"]({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:a.autoplay,preload:a.preload,loop:a.loop,muted:a.muted},a.flashVars),e=x["default"]({wmode:"opaque",bgcolor:"#000000"},a.params),f=x["default"]({id:c,name:c,"class":"vjs-tech"},a.attributes);return this.el_=b.embed(a.swf,d,e,f),this.el_.tech=this,this.el_},b.prototype.play=function(){this.ended()&&this.setCurrentTime(0),this.el_.vjs_play()},b.prototype.pause=function(){this.el_.vjs_pause()},b.prototype.src=function(a){return void 0===a?this.currentSrc():this.setSrc(a)},b.prototype.setSrc=function(a){if(a=o.getAbsoluteURL(a),this.el_.vjs_src(a),this.autoplay()){var b=this;this.setTimeout(function(){b.play()},0)}},b.prototype.seeking=function(){return void 0!==this.lastSeekTarget_},b.prototype.setCurrentTime=function(b){var c=this.seekable();c.length&&(b=b>c.start(0)?b:c.start(0),b=b<c.end(c.length-1)?b:c.end(c.length-1),this.lastSeekTarget_=b,this.trigger("seeking"),this.el_.vjs_setProperty("currentTime",b),a.prototype.setCurrentTime.call(this))},b.prototype.currentTime=function(){return this.seeking()?this.lastSeekTarget_||0:this.el_.vjs_getProperty("currentTime")},b.prototype.currentSrc=function(){return this.currentSource_?this.currentSource_.src:this.el_.vjs_getProperty("currentSrc")},b.prototype.load=function(){this.el_.vjs_load()},b.prototype.poster=function(){this.el_.vjs_getProperty("poster")},b.prototype.setPoster=function(){},b.prototype.seekable=function(){var a=this.duration();return 0===a?p.createTimeRange():p.createTimeRange(0,a)},b.prototype.buffered=function(){var a=this.el_.vjs_getProperty("buffered");return 0===a.length?p.createTimeRange():p.createTimeRange(a[0][0],a[0][1])},b.prototype.supportsFullScreen=function(){return!1},b.prototype.enterFullScreen=function(){return!1},b}(k["default"]),A=z.prototype,B="rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted".split(","),C="networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight".split(","),D=0;D<B.length;D++)i(B[D]),h(B[D]);for(var D=0;D<C.length;D++)i(C[D]);z.isSupported=function(){return z.version()[0]>=10},k["default"].withSourceHandlers(z),z.nativeSourceHandler={},z.nativeSourceHandler.canPlayType=function(a){return a in z.formats?"maybe":""},z.nativeSourceHandler.canHandleSource=function(a){function b(a){var b=o.getFileExtension(a);return b?"video/"+b:""}var c;return c=a.type?a.type.replace(/;.*/,"").toLowerCase():b(a.src),z.nativeSourceHandler.canPlayType(c)},z.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},z.nativeSourceHandler.dispose=function(){},z.registerSourceHandler(z.nativeSourceHandler),z.formats={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},z.onReady=function(a){var b=m.getEl(a),c=b&&b.tech;c&&c.el()&&z.checkReady(c)},z.checkReady=function(a){a.el()&&(a.el().vjs_getProperty?a.triggerReady():this.setTimeout(function(){z.checkReady(a)},50))},z.onEvent=function(a,b){var c=m.getEl(a).tech;c.trigger(b)},z.onError=function(a,b){var c=m.getEl(a).tech;return"srcnotfound"===b?c.error(4):void c.error("FLASH: "+b)},z.version=function(){var a="0,0,0";try{a=new v["default"].ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(b){try{y.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(y.plugins["Shockwave Flash 2.0"]||y.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(c){}}return a.split(",")},z.embed=function(a,b,c,d){var e=z.getEmbedCode(a,b,c,d),f=m.createEl("div",{innerHTML:e}).childNodes[0];return f},z.getEmbedCode=function(a,b,c,d){var e='<object type="application/x-shockwave-flash" ',f="",g="",h="";return b&&Object.getOwnPropertyNames(b).forEach(function(a){f+=a+"="+b[a]+"&"}),c=x["default"]({movie:a,flashvars:f,allowScriptAccess:"always",allowNetworking:"all"},c),Object.getOwnPropertyNames(c).forEach(function(a){g+='<param name="'+a+'" value="'+c[a]+'" />'}),d=x["default"]({data:a,width:"100%",height:"100%"},d),Object.getOwnPropertyNames(d).forEach(function(a){h+=a+'="'+d[a]+'" '}),""+e+h+">"+g+"</object>"},r["default"](z),t["default"].registerComponent("Flash",z),k["default"].registerTech("Flash",z),c["default"]=z,b.exports=c["default"]},{"../component":65,"../utils/dom.js":128,"../utils/time-ranges.js":136,"../utils/url.js":138,"./flash-rtmp":111,"./tech":115,"global/window":2,"object.assign":45}],113:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./tech.js"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/fn.js"),q=d(p),r=a("../utils/log.js"),s=e(r),t=a("../utils/browser.js"),u=d(t),v=a("global/document"),w=e(v),x=a("global/window"),y=e(x),z=a("object.assign"),A=e(z),B=a("../utils/merge-options.js"),C=e(B),D=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=c.source;if(e&&(this.el_.currentSrc!==e.src||c.tag&&3===c.tag.initNetworkState_)?this.setSource(e):this.handleLateInit_(this.el_),this.el_.hasChildNodes()){for(var g=this.el_.childNodes,h=g.length,i=[];h--;){var j=g[h],k=j.nodeName.toLowerCase();"track"===k&&(this.featuresNativeTextTracks?(this.remoteTextTrackEls().addTrackElement_(j),this.remoteTextTracks().addTrack_(j.track)):i.push(j))}for(var l=0;l<i.length;l++)this.el_.removeChild(i[l])}this.featuresNativeTextTracks&&(this.handleTextTrackChange_=q.bind(this,this.handleTextTrackChange),this.handleTextTrackAdd_=q.bind(this,this.handleTextTrackAdd),this.handleTextTrackRemove_=q.bind(this,this.handleTextTrackRemove),this.proxyNativeTextTracks_()),(u.TOUCH_ENABLED&&c.nativeControlsForTouch===!0||u.IS_IPHONE||u.IS_NATIVE_ANDROID)&&this.setControls(!0),this.triggerReady()}return g(b,a),b.prototype.dispose=function(){var c=this.el().textTracks,d=this.textTracks();c&&c.removeEventListener&&(c.removeEventListener("change",this.handleTextTrackChange_),c.removeEventListener("addtrack",this.handleTextTrackAdd_),c.removeEventListener("removetrack",this.handleTextTrackRemove_));for(var e=d.length;e--;)d.removeTrack_(d[e]);b.disposeMediaElement(this.el_),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var a=this.options_.tag;if(!a||this.movingMediaElementInDOM===!1)if(a){var c=a.cloneNode(!0);a.parentNode.insertBefore(c,a),b.disposeMediaElement(a),a=c}else{a=w["default"].createElement("video");var d=this.options_.tag&&m.getElAttributes(this.options_.tag),e=C["default"]({},d);u.TOUCH_ENABLED&&this.options_.nativeControlsForTouch===!0||delete e.controls,m.setElAttributes(a,A["default"](e,{id:this.options_.techId,"class":"vjs-tech"}))}for(var f=["autoplay","preload","loop","muted"],g=f.length-1;g>=0;g--){var h=f[g],i={};"undefined"!=typeof this.options_[h]&&(i[h]=this.options_[h]),m.setElAttributes(a,i)}return a},b.prototype.handleLateInit_=function(a){var b=this;if(0!==a.networkState&&3!==a.networkState){if(0===a.readyState){var c=function(){var a=!1,c=function(){a=!0};b.on("loadstart",c);var d=function(){a||this.trigger("loadstart")};return b.on("loadedmetadata",d),b.ready(function(){this.off("loadstart",c),this.off("loadedmetadata",d),a||this.trigger("loadstart")}),{v:void 0}}();if("object"==typeof c)return c.v}var d=["loadstart"];d.push("loadedmetadata"),a.readyState>=2&&d.push("loadeddata"),a.readyState>=3&&d.push("canplay"),a.readyState>=4&&d.push("canplaythrough"),this.ready(function(){d.forEach(function(a){this.trigger(a)},this)})}},b.prototype.proxyNativeTextTracks_=function(){var a=this.el().textTracks;a&&a.addEventListener&&(a.addEventListener("change",this.handleTextTrackChange_),a.addEventListener("addtrack",this.handleTextTrackAdd_),a.addEventListener("removetrack",this.handleTextTrackRemove_))},b.prototype.handleTextTrackChange=function(){var a=this.textTracks();this.textTracks().trigger({type:"change",target:a,currentTarget:a,srcElement:a})},b.prototype.handleTextTrackAdd=function(a){this.textTracks().addTrack_(a.track)},b.prototype.handleTextTrackRemove=function(a){this.textTracks().removeTrack_(a.track)},b.prototype.play=function(){this.el_.play()},b.prototype.pause=function(){this.el_.pause()},b.prototype.paused=function(){return this.el_.paused},b.prototype.currentTime=function(){return this.el_.currentTime},b.prototype.setCurrentTime=function(a){try{this.el_.currentTime=a}catch(b){s["default"](b,"Video is not ready. (Video.js)")}},b.prototype.duration=function(){return this.el_.duration||0},b.prototype.buffered=function(){return this.el_.buffered},b.prototype.volume=function(){return this.el_.volume},b.prototype.setVolume=function(a){this.el_.volume=a},b.prototype.muted=function(){return this.el_.muted},b.prototype.setMuted=function(a){this.el_.muted=a},b.prototype.width=function(){return this.el_.offsetWidth},b.prototype.height=function(){return this.el_.offsetHeight},b.prototype.supportsFullScreen=function(){if("function"==typeof this.el_.webkitEnterFullScreen){var a=y["default"].navigator.userAgent;if(/Android/.test(a)||!/Chrome|Mac OS X 10.5/.test(a))return!0}return!1},b.prototype.enterFullScreen=function(){var a=this.el_;"webkitDisplayingFullscreen"in a&&this.one("webkitbeginfullscreen",function(){this.one("webkitendfullscreen",function(){this.trigger("fullscreenchange",{isFullscreen:!1})}),this.trigger("fullscreenchange",{isFullscreen:!0})}),a.paused&&a.networkState<=a.HAVE_METADATA?(this.el_.play(),this.setTimeout(function(){a.pause(),a.webkitEnterFullScreen()},0)):a.webkitEnterFullScreen()},b.prototype.exitFullScreen=function(){this.el_.webkitExitFullScreen()},b.prototype.src=function(a){return void 0===a?this.el_.src:void this.setSrc(a)},b.prototype.setSrc=function(a){this.el_.src=a},b.prototype.load=function(){this.el_.load()},b.prototype.reset=function(){b.resetMediaElement(this.el_)},b.prototype.currentSrc=function(){return this.currentSource_?this.currentSource_.src:this.el_.currentSrc},b.prototype.poster=function(){return this.el_.poster},b.prototype.setPoster=function(a){this.el_.poster=a},b.prototype.preload=function(){return this.el_.preload},b.prototype.setPreload=function(a){this.el_.preload=a},b.prototype.autoplay=function(){return this.el_.autoplay},b.prototype.setAutoplay=function(a){this.el_.autoplay=a},b.prototype.controls=function(){return this.el_.controls},b.prototype.setControls=function(a){this.el_.controls=!!a},b.prototype.loop=function(){return this.el_.loop},b.prototype.setLoop=function(a){this.el_.loop=a},b.prototype.error=function(){return this.el_.error},b.prototype.seeking=function(){return this.el_.seeking},b.prototype.seekable=function(){return this.el_.seekable},b.prototype.ended=function(){return this.el_.ended},b.prototype.defaultMuted=function(){return this.el_.defaultMuted},b.prototype.playbackRate=function(){return this.el_.playbackRate},b.prototype.played=function(){return this.el_.played},b.prototype.setPlaybackRate=function(a){this.el_.playbackRate=a},b.prototype.networkState=function(){return this.el_.networkState},b.prototype.readyState=function(){return this.el_.readyState},b.prototype.videoWidth=function(){return this.el_.videoWidth},b.prototype.videoHeight=function(){return this.el_.videoHeight},b.prototype.textTracks=function(){return a.prototype.textTracks.call(this)},b.prototype.addTextTrack=function(b,c,d){return this.featuresNativeTextTracks?this.el_.addTextTrack(b,c,d):a.prototype.addTextTrack.call(this,b,c,d)},b.prototype.addRemoteTextTrack=function(){var b=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!this.featuresNativeTextTracks)return a.prototype.addRemoteTextTrack.call(this,b);var c=w["default"].createElement("track");return b.kind&&(c.kind=b.kind),b.label&&(c.label=b.label),(b.language||b.srclang)&&(c.srclang=b.language||b.srclang),b["default"]&&(c["default"]=b["default"]),b.id&&(c.id=b.id),b.src&&(c.src=b.src),this.el().appendChild(c),this.remoteTextTrackEls().addTrackElement_(c),this.remoteTextTracks().addTrack_(c.track),c},b.prototype.removeRemoteTextTrack=function(b){if(!this.featuresNativeTextTracks)return a.prototype.removeRemoteTextTrack.call(this,b);var c=void 0,d=void 0,e=this.remoteTextTrackEls().getTrackElementByTrack_(b);for(this.remoteTextTrackEls().removeTrackElement_(e),this.remoteTextTracks().removeTrack_(b),c=this.$$("track"),d=c.length;d--;)(b===c[d]||b===c[d].track)&&this.el().removeChild(c[d])},b}(i["default"]);D.TEST_VID=w["default"].createElement("video");var E=w["default"].createElement("track");E.kind="captions",E.srclang="en",E.label="English",D.TEST_VID.appendChild(E),D.isSupported=function(){try{D.TEST_VID.volume=.5}catch(a){return!1}return!!D.TEST_VID.canPlayType},i["default"].withSourceHandlers(D),D.nativeSourceHandler={},D.nativeSourceHandler.canPlayType=function(a){try{return D.TEST_VID.canPlayType(a)}catch(b){return""}},D.nativeSourceHandler.canHandleSource=function(a){var b;return a.type?D.nativeSourceHandler.canPlayType(a.type):a.src?(b=o.getFileExtension(a.src),D.nativeSourceHandler.canPlayType("video/"+b)):""},D.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},D.nativeSourceHandler.dispose=function(){},D.registerSourceHandler(D.nativeSourceHandler),D.canControlVolume=function(){var a=D.TEST_VID.volume;return D.TEST_VID.volume=a/2+.1,a!==D.TEST_VID.volume},D.canControlPlaybackRate=function(){var a=D.TEST_VID.playbackRate;return D.TEST_VID.playbackRate=a/2+.1,a!==D.TEST_VID.playbackRate},D.supportsNativeTextTracks=function(){var a;return a=!!D.TEST_VID.textTracks,a&&D.TEST_VID.textTracks.length>0&&(a="number"!=typeof D.TEST_VID.textTracks[0].mode),a&&u.IS_FIREFOX&&(a=!1),!a||"onremovetrack"in D.TEST_VID.textTracks||(a=!1),a},D.Events=["loadstart","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","ended","durationchange","timeupdate","progress","play","pause","ratechange","volumechange"],D.prototype.featuresVolumeControl=D.canControlVolume(),D.prototype.featuresPlaybackRate=D.canControlPlaybackRate(),D.prototype.movingMediaElementInDOM=!u.IS_IOS,D.prototype.featuresFullscreenResize=!0,D.prototype.featuresProgressEvents=!0,D.prototype.featuresNativeTextTracks=D.supportsNativeTextTracks();var F=void 0,G=/^application\/(?:x-|vnd\.apple\.)mpegurl/i,H=/^video\/mp4/i;D.patchCanPlayType=function(){u.ANDROID_VERSION>=4&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&G.test(a)?"maybe":F.call(this,a)}),u.IS_OLD_ANDROID&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&H.test(a)?"maybe":F.call(this,a)})},D.unpatchCanPlayType=function(){var a=D.TEST_VID.constructor.prototype.canPlayType;return D.TEST_VID.constructor.prototype.canPlayType=F,F=null,a},D.patchCanPlayType(),D.disposeMediaElement=function(a){if(a){for(a.parentNode&&a.parentNode.removeChild(a);a.hasChildNodes();)a.removeChild(a.firstChild);a.removeAttribute("src"),"function"==typeof a.load&&!function(){try{a.load()}catch(b){}}()}},D.resetMediaElement=function(a){if(a){for(var b=a.querySelectorAll("source"),c=b.length;c--;)a.removeChild(b[c]);a.removeAttribute("src"),"function"==typeof a.load&&!function(){try{a.load()}catch(b){}}()}},k["default"].registerComponent("Html5",D),i["default"].registerTech("Html5",D),c["default"]=D,b.exports=c["default"]},{"../component":65,"../utils/browser.js":125,"../utils/dom.js":128,"../utils/fn.js":130,"../utils/log.js":133,"../utils/merge-options.js":134,"../utils/url.js":138,"./tech.js":115,"global/document":1,"global/window":2,"object.assign":45}],114:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../component.js"),h=d(g),i=a("./tech.js"),j=d(i),k=a("global/window"),l=(d(k),a("../utils/to-title-case.js")),m=d(l),n=function(a){function b(c,d,f){if(e(this,b),a.call(this,c,d,f),d.playerOptions.sources&&0!==d.playerOptions.sources.length)c.src(d.playerOptions.sources);else for(var g=0,i=d.playerOptions.techOrder;g<i.length;g++){var k=m["default"](i[g]),l=j["default"].getTech(k);if(k||(l=h["default"].getComponent(k)),l&&l.isSupported()){c.loadTech_(k);break}}}return f(b,a),b}(h["default"]);h["default"].registerComponent("MediaLoader",n),c["default"]=n,b.exports=c["default"]},{"../component.js":65,"../utils/to-title-case.js":137,"./tech.js":115,"global/window":2}],115:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component"),i=e(h),j=a("../tracks/html-track-element"),k=e(j),l=a("../tracks/html-track-element-list"),m=e(l),n=a("../utils/merge-options.js"),o=e(n),p=a("../tracks/text-track"),q=e(p),r=a("../tracks/text-track-list"),s=e(r),t=a("../utils/fn.js"),u=d(t),v=a("../utils/log.js"),w=e(v),x=a("../utils/time-ranges.js"),y=a("../utils/buffer.js"),z=a("../media-error.js"),A=e(z),B=a("global/window"),C=e(B),D=a("global/document"),E=e(D),F=function(a){function b(){var c=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],d=arguments.length<=1||void 0===arguments[1]?function(){}:arguments[1];
|
19 |
+
|
20 |
+
f(this,b),c.reportTouchActivity=!1,a.call(this,null,c,d),this.hasStarted_=!1,this.on("playing",function(){this.hasStarted_=!0}),this.on("loadstart",function(){this.hasStarted_=!1}),this.textTracks_=c.textTracks,this.featuresProgressEvents||this.manualProgressOn(),this.featuresTimeupdateEvents||this.manualTimeUpdatesOn(),(c.nativeCaptions===!1||c.nativeTextTracks===!1)&&(this.featuresNativeTextTracks=!1),this.featuresNativeTextTracks||this.on("ready",this.emulateTextTracks),this.initTextTrackListeners(),this.emitTapEvents()}/*! Time Tracking -------------------------------------------------------------- */
|
21 |
+
return g(b,a),b.prototype.manualProgressOn=function(){this.on("durationchange",this.onDurationChange),this.manualProgress=!0,this.one("ready",this.trackProgress)},b.prototype.manualProgressOff=function(){this.manualProgress=!1,this.stopTrackingProgress(),this.off("durationchange",this.onDurationChange)},b.prototype.trackProgress=function(){this.stopTrackingProgress(),this.progressInterval=this.setInterval(u.bind(this,function(){var a=this.bufferedPercent();this.bufferedPercent_!==a&&this.trigger("progress"),this.bufferedPercent_=a,1===a&&this.stopTrackingProgress()}),500)},b.prototype.onDurationChange=function(){this.duration_=this.duration()},b.prototype.buffered=function(){return x.createTimeRange(0,0)},b.prototype.bufferedPercent=function(){return y.bufferedPercent(this.buffered(),this.duration_)},b.prototype.stopTrackingProgress=function(){this.clearInterval(this.progressInterval)},b.prototype.manualTimeUpdatesOn=function(){this.manualTimeUpdates=!0,this.on("play",this.trackCurrentTime),this.on("pause",this.stopTrackingCurrentTime)},b.prototype.manualTimeUpdatesOff=function(){this.manualTimeUpdates=!1,this.stopTrackingCurrentTime(),this.off("play",this.trackCurrentTime),this.off("pause",this.stopTrackingCurrentTime)},b.prototype.trackCurrentTime=function(){this.currentTimeInterval&&this.stopTrackingCurrentTime(),this.currentTimeInterval=this.setInterval(function(){this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},250)},b.prototype.stopTrackingCurrentTime=function(){this.clearInterval(this.currentTimeInterval),this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},b.prototype.dispose=function(){var b=this.textTracks();if(b)for(var c=b.length;c--;)this.removeRemoteTextTrack(b[c]);this.manualProgress&&this.manualProgressOff(),this.manualTimeUpdates&&this.manualTimeUpdatesOff(),a.prototype.dispose.call(this)},b.prototype.reset=function(){},b.prototype.error=function(a){return void 0!==a&&(this.error_=a instanceof A["default"]?a:new A["default"](a),this.trigger("error")),this.error_},b.prototype.played=function(){return this.hasStarted_?x.createTimeRange(0,0):x.createTimeRange()},b.prototype.setCurrentTime=function(){this.manualTimeUpdates&&this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},b.prototype.initTextTrackListeners=function(){var a=u.bind(this,function(){this.trigger("texttrackchange")}),b=this.textTracks();b&&(b.addEventListener("removetrack",a),b.addEventListener("addtrack",a),this.on("dispose",u.bind(this,function(){b.removeEventListener("removetrack",a),b.removeEventListener("addtrack",a)})))},b.prototype.emulateTextTracks=function(){var a=this,b=this.textTracks();if(b){if(!C["default"].WebVTT&&null!=this.el().parentNode){var c=E["default"].createElement("script");c.src=this.options_["vtt.js"]||"https://cdn.rawgit.com/gkatsev/vtt.js/vjs-v0.12.1/dist/vtt.min.js",this.el().parentNode.appendChild(c),C["default"].WebVTT=!0}var d=function(){return a.trigger("texttrackchange")},e=function(){d();for(var a=0;a<b.length;a++){var c=b[a];c.removeEventListener("cuechange",d),"showing"===c.mode&&c.addEventListener("cuechange",d)}};e(),b.addEventListener("change",e),this.on("dispose",function(){b.removeEventListener("change",e)})}},b.prototype.textTracks=function(){return this.textTracks_=this.textTracks_||new s["default"],this.textTracks_},b.prototype.remoteTextTracks=function(){return this.remoteTextTracks_=this.remoteTextTracks_||new s["default"],this.remoteTextTracks_},b.prototype.remoteTextTrackEls=function(){return this.remoteTextTrackEls_=this.remoteTextTrackEls_||new m["default"],this.remoteTextTrackEls_},b.prototype.addTextTrack=function(a,b,c){if(!a)throw new Error("TextTrack kind is required but was not provided");return G(this,a,b,c)},b.prototype.addRemoteTextTrack=function(a){var b=o["default"](a,{tech:this}),c=new k["default"](b);return this.remoteTextTrackEls().addTrackElement_(c),this.remoteTextTracks().addTrack_(c.track),this.textTracks().addTrack_(c.track),c},b.prototype.removeRemoteTextTrack=function(a){this.textTracks().removeTrack_(a);var b=this.remoteTextTrackEls().getTrackElementByTrack_(a);this.remoteTextTrackEls().removeTrackElement_(b),this.remoteTextTracks().removeTrack_(a)},b.prototype.setPoster=function(){},b.prototype.canPlayType=function(){return""},b.isTech=function(a){return a.prototype instanceof b||a instanceof b||a===b},b.registerTech=function(a,c){if(b.techs_||(b.techs_={}),!b.isTech(c))throw new Error("Tech "+a+" must be a Tech");return b.techs_[a]=c,c},b.getTech=function(a){return b.techs_&&b.techs_[a]?b.techs_[a]:C["default"]&&C["default"].videojs&&C["default"].videojs[a]?(w["default"].warn("The "+a+" tech was added to the videojs object when it should be registered using videojs.registerTech(name, tech)"),C["default"].videojs[a]):void 0},b}(i["default"]);F.prototype.textTracks_;var G=function(a,b,c,d){var e=arguments.length<=4||void 0===arguments[4]?{}:arguments[4],f=a.textTracks();e.kind=b,c&&(e.label=c),d&&(e.language=d),e.tech=a;var g=new q["default"](e);return f.addTrack_(g),g};F.prototype.featuresVolumeControl=!0,F.prototype.featuresFullscreenResize=!1,F.prototype.featuresPlaybackRate=!1,F.prototype.featuresProgressEvents=!1,F.prototype.featuresTimeupdateEvents=!1,F.prototype.featuresNativeTextTracks=!1,F.withSourceHandlers=function(a){a.registerSourceHandler=function(b,c){var d=a.sourceHandlers;d||(d=a.sourceHandlers=[]),void 0===c&&(c=d.length),d.splice(c,0,b)},a.canPlayType=function(b){for(var c=a.sourceHandlers||[],d=void 0,e=0;e<c.length;e++)if(d=c[e].canPlayType(b))return d;return""},a.selectSourceHandler=function(b){for(var c=a.sourceHandlers||[],d=void 0,e=0;e<c.length;e++)if(d=c[e].canHandleSource(b))return c[e];return null},a.canPlaySource=function(b){var c=a.selectSourceHandler(b);return c?c.canHandleSource(b):""};var b=["seekable","duration"];b.forEach(function(a){var b=this[a];"function"==typeof b&&(this[a]=function(){return this.sourceHandler_&&this.sourceHandler_[a]?this.sourceHandler_[a].apply(this.sourceHandler_,arguments):b.apply(this,arguments)})},a.prototype),a.prototype.setSource=function(b){var c=a.selectSourceHandler(b);return c||(a.nativeSourceHandler?c=a.nativeSourceHandler:w["default"].error("No source hander found for the current source.")),this.disposeSourceHandler(),this.off("dispose",this.disposeSourceHandler),this.currentSource_=b,this.sourceHandler_=c.handleSource(b,this),this.on("dispose",this.disposeSourceHandler),this},a.prototype.disposeSourceHandler=function(){this.sourceHandler_&&this.sourceHandler_.dispose&&this.sourceHandler_.dispose()}},i["default"].registerComponent("Tech",F),i["default"].registerComponent("MediaTechController",F),F.registerTech("Tech",F),c["default"]=F,b.exports=c["default"]},{"../component":65,"../media-error.js":101,"../tracks/html-track-element":117,"../tracks/html-track-element-list":116,"../tracks/text-track":124,"../tracks/text-track-list":122,"../utils/buffer.js":126,"../utils/fn.js":130,"../utils/log.js":133,"../utils/merge-options.js":134,"../utils/time-ranges.js":136,"global/document":1,"global/window":2}],116:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}c.__esModule=!0;var g=a("../utils/browser.js"),h=e(g),i=a("global/document"),j=d(i),k=function(){function a(){var b=arguments.length<=0||void 0===arguments[0]?[]:arguments[0];f(this,a);var c=this;if(h.IS_IE8){c=j["default"].createElement("custom");for(var d in a.prototype)"constructor"!==d&&(c[d]=a.prototype[d])}c.trackElements_=[],Object.defineProperty(c,"length",{get:function(){return this.trackElements_.length}});for(var e=0,g=b.length;g>e;e++)c.addTrackElement_(b[e]);return h.IS_IE8?c:void 0}return a.prototype.addTrackElement_=function(a){this.trackElements_.push(a)},a.prototype.getTrackElementByTrack_=function(a){for(var b=void 0,c=0,d=this.trackElements_.length;d>c;c++)if(a===this.trackElements_[c].track){b=this.trackElements_[c];break}return b},a.prototype.removeTrackElement_=function(a){for(var b=0,c=this.trackElements_.length;c>b;b++)if(a===this.trackElements_[b]){this.trackElements_.splice(b,1);break}},a}();c["default"]=k,b.exports=c["default"]},{"../utils/browser.js":125,"global/document":1}],117:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../utils/browser.js"),i=e(h),j=a("global/document"),k=d(j),l=a("../event-target"),m=d(l),n=a("../tracks/text-track"),o=d(n),p=0,q=1,r=2,s=3,t=function(a){function b(){var c=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];f(this,b),a.call(this);var d=void 0,e=this;if(i.IS_IE8){e=k["default"].createElement("custom");for(var g in b.prototype)"constructor"!==g&&(e[g]=b.prototype[g])}var h=new o["default"](c);return e.kind=h.kind,e.src=h.src,e.srclang=h.language,e.label=h.label,e["default"]=h["default"],Object.defineProperty(e,"readyState",{get:function(){return d}}),Object.defineProperty(e,"track",{get:function(){return h}}),d=p,h.addEventListener("loadeddata",function(){d=r,e.trigger({type:"load",target:e})}),i.IS_IE8?e:void 0}return g(b,a),b}(m["default"]);t.prototype.allowedEvents_={load:"load"},t.NONE=p,t.LOADING=q,t.LOADED=r,t.ERROR=s,c["default"]=t,b.exports=c["default"]},{"../event-target":97,"../tracks/text-track":124,"../utils/browser.js":125,"global/document":1}],118:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}c.__esModule=!0;var f=a("../utils/browser.js"),g=e(f),h=a("global/document"),i=d(h),j=function k(a){var b=this;if(g.IS_IE8){b=i["default"].createElement("custom");for(var c in k.prototype)"constructor"!==c&&(b[c]=k.prototype[c])}return k.prototype.setCues_.call(b,a),Object.defineProperty(b,"length",{get:function(){return this.length_}}),g.IS_IE8?b:void 0};j.prototype.setCues_=function(a){var b=this.length||0,c=0,d=a.length;this.cues_=a,this.length_=a.length;var e=function(a){""+a in this||Object.defineProperty(this,""+a,{get:function(){return this.cues_[a]}})};if(d>b)for(c=b;d>c;c++)e.call(this,c)},j.prototype.getCueById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=j,b.exports=c["default"]},{"../utils/browser.js":125,"global/document":1}],119:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a,b){return"rgba("+parseInt(a[1]+a[1],16)+","+parseInt(a[2]+a[2],16)+","+parseInt(a[3]+a[3],16)+","+b+")"}function i(a,b,c){try{a.style[b]=c}catch(d){}}c.__esModule=!0;var j=a("../component"),k=e(j),l=a("../menu/menu.js"),m=(e(l),a("../menu/menu-item.js")),n=(e(m),a("../menu/menu-button.js")),o=(e(n),a("../utils/fn.js")),p=d(o),q=a("global/document"),r=(e(q),a("global/window")),s=e(r),t="#222",u="#ccc",v={monospace:"monospace",sansSerif:"sans-serif",serif:"serif",monospaceSansSerif:'"Andale Mono", "Lucida Console", monospace',monospaceSerif:'"Courier New", monospace',proportionalSansSerif:"sans-serif",proportionalSerif:"serif",casual:'"Comic Sans MS", Impact, fantasy',script:'"Monotype Corsiva", cursive',smallcaps:'"Andale Mono", "Lucida Console", monospace, sans-serif'},w=function(a){function b(c,d,e){f(this,b),a.call(this,c,d,e),c.on("loadstart",p.bind(this,this.toggleDisplay)),c.on("texttrackchange",p.bind(this,this.updateDisplay)),c.ready(p.bind(this,function(){if(c.tech_&&c.tech_.featuresNativeTextTracks)return void this.hide();c.on("fullscreenchange",p.bind(this,this.updateDisplay));for(var a=this.options_.playerOptions.tracks||[],b=0;b<a.length;b++){var d=a[b];this.player_.addRemoteTextTrack(d)}}))}return g(b,a),b.prototype.toggleDisplay=function(){this.player_.tech_&&this.player_.tech_.featuresNativeTextTracks?this.hide():this.show()},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-text-track-display"})},b.prototype.clearDisplay=function(){"function"==typeof s["default"].WebVTT&&s["default"].WebVTT.processCues(s["default"],[],this.el_)},b.prototype.updateDisplay=function(){var a=this.player_.textTracks();if(this.clearDisplay(),a)for(var b=0;b<a.length;b++){var c=a[b];"showing"===c.mode&&this.updateForTrack(c)}},b.prototype.updateForTrack=function(a){if("function"==typeof s["default"].WebVTT&&a.activeCues){for(var b=this.player_.textTrackSettings.getValues(),c=[],d=0;d<a.activeCues.length;d++)c.push(a.activeCues[d]);s["default"].WebVTT.processCues(s["default"],a.activeCues,this.el_);for(var e=c.length;e--;){var f=c[e];if(f){var g=f.displayState;if(b.color&&(g.firstChild.style.color=b.color),b.textOpacity&&i(g.firstChild,"color",h(b.color||"#fff",b.textOpacity)),b.backgroundColor&&(g.firstChild.style.backgroundColor=b.backgroundColor),b.backgroundOpacity&&i(g.firstChild,"backgroundColor",h(b.backgroundColor||"#000",b.backgroundOpacity)),b.windowColor&&(b.windowOpacity?i(g,"backgroundColor",h(b.windowColor,b.windowOpacity)):g.style.backgroundColor=b.windowColor),b.edgeStyle&&("dropshadow"===b.edgeStyle?g.firstChild.style.textShadow="2px 2px 3px "+t+", 2px 2px 4px "+t+", 2px 2px 5px "+t:"raised"===b.edgeStyle?g.firstChild.style.textShadow="1px 1px "+t+", 2px 2px "+t+", 3px 3px "+t:"depressed"===b.edgeStyle?g.firstChild.style.textShadow="1px 1px "+u+", 0 1px "+u+", -1px -1px "+t+", 0 -1px "+t:"uniform"===b.edgeStyle&&(g.firstChild.style.textShadow="0 0 4px "+t+", 0 0 4px "+t+", 0 0 4px "+t+", 0 0 4px "+t)),b.fontPercent&&1!==b.fontPercent){var j=s["default"].parseFloat(g.style.fontSize);g.style.fontSize=j*b.fontPercent+"px",g.style.height="auto",g.style.top="auto",g.style.bottom="2px"}b.fontFamily&&"default"!==b.fontFamily&&("small-caps"===b.fontFamily?g.firstChild.style.fontVariant="small-caps":g.firstChild.style.fontFamily=v[b.fontFamily])}}}},b}(k["default"]);k["default"].registerComponent("TextTrackDisplay",w),c["default"]=w,b.exports=c["default"]},{"../component":65,"../menu/menu-button.js":102,"../menu/menu-item.js":103,"../menu/menu.js":104,"../utils/fn.js":130,"global/document":1,"global/window":2}],120:[function(a,b,c){"use strict";c.__esModule=!0;var d={disabled:"disabled",hidden:"hidden",showing:"showing"},e={subtitles:"subtitles",captions:"captions",descriptions:"descriptions",chapters:"chapters",metadata:"metadata"};c.TextTrackMode=d,c.TextTrackKind=e},{}],121:[function(a,b,c){"use strict";c.__esModule=!0;var d=function(a){var b=["kind","label","language","id","inBandMetadataTrackDispatchType","mode","src"].reduce(function(b,c){return a[c]&&(b[c]=a[c]),b},{cues:a.cues&&Array.prototype.map.call(a.cues,function(a){return{startTime:a.startTime,endTime:a.endTime,text:a.text,id:a.id}})});return b},e=function(a){var b=a.$$("track"),c=Array.prototype.map.call(b,function(a){return a.track}),e=Array.prototype.map.call(b,function(a){var b=d(a.track);return a.src&&(b.src=a.src),b});return e.concat(Array.prototype.filter.call(a.textTracks(),function(a){return-1===c.indexOf(a)}).map(d))},f=function(a,b){return a.forEach(function(a){var c=b.addRemoteTextTrack(a).track;!a.src&&a.cues&&a.cues.forEach(function(a){return c.addCue(a)})}),b.textTracks()};c["default"]={textTracksToJson:e,jsonToTextTracks:f,trackToJson_:d},b.exports=c["default"]},{}],122:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var f=a("../event-target"),g=e(f),h=a("../utils/fn.js"),i=d(h),j=a("../utils/browser.js"),k=d(j),l=a("global/document"),m=e(l),n=function p(a){var b=this;if(k.IS_IE8){b=m["default"].createElement("custom");for(var c in p.prototype)"constructor"!==c&&(b[c]=p.prototype[c])}a=a||[],b.tracks_=[],Object.defineProperty(b,"length",{get:function(){return this.tracks_.length}});for(var d=0;d<a.length;d++)b.addTrack_(a[d]);return k.IS_IE8?b:void 0};n.prototype=Object.create(g["default"].prototype),n.prototype.constructor=n,n.prototype.allowedEvents_={change:"change",addtrack:"addtrack",removetrack:"removetrack"};for(var o in n.prototype.allowedEvents_)n.prototype["on"+o]=null;n.prototype.addTrack_=function(a){var b=this.tracks_.length;""+b in this||Object.defineProperty(this,b,{get:function(){return this.tracks_[b]}}),a.addEventListener("modechange",i.bind(this,function(){this.trigger("change")})),this.tracks_.push(a),this.trigger({type:"addtrack",track:a})},n.prototype.removeTrack_=function(a){for(var b=void 0,c=0,d=this.length;d>c;c++)if(this[c]===a){b=this[c],this.tracks_.splice(c,1);break}b&&this.trigger({type:"removetrack",track:b})},n.prototype.getTrackById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=n,b.exports=c["default"]},{"../event-target":97,"../utils/browser.js":125,"../utils/fn.js":130,"global/document":1}],123:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a){var b=void 0;return a.selectedOptions?b=a.selectedOptions[0]:a.options&&(b=a.options[a.options.selectedIndex]),b.value}function i(a,b){if(b){var c=void 0;for(c=0;c<a.options.length;c++){var d=a.options[c];if(d.value===b)break}a.selectedIndex=c}}function j(){var a='<div class="vjs-tracksettings">\n <div class="vjs-tracksettings-colors">\n <div class="vjs-fg-color vjs-tracksetting">\n <label class="vjs-label">Foreground</label>\n <select>\n <option value="">---</option>\n <option value="#FFF">White</option>\n <option value="#000">Black</option>\n <option value="#F00">Red</option>\n <option value="#0F0">Green</option>\n <option value="#00F">Blue</option>\n <option value="#FF0">Yellow</option>\n <option value="#F0F">Magenta</option>\n <option value="#0FF">Cyan</option>\n </select>\n <span class="vjs-text-opacity vjs-opacity">\n <select>\n <option value="">---</option>\n <option value="1">Opaque</option>\n <option value="0.5">Semi-Opaque</option>\n </select>\n </span>\n </div> <!-- vjs-fg-color -->\n <div class="vjs-bg-color vjs-tracksetting">\n <label class="vjs-label">Background</label>\n <select>\n <option value="">---</option>\n <option value="#FFF">White</option>\n <option value="#000">Black</option>\n <option value="#F00">Red</option>\n <option value="#0F0">Green</option>\n <option value="#00F">Blue</option>\n <option value="#FF0">Yellow</option>\n <option value="#F0F">Magenta</option>\n <option value="#0FF">Cyan</option>\n </select>\n <span class="vjs-bg-opacity vjs-opacity">\n <select>\n <option value="">---</option>\n <option value="1">Opaque</option>\n <option value="0.5">Semi-Transparent</option>\n <option value="0">Transparent</option>\n </select>\n </span>\n </div> <!-- vjs-bg-color -->\n <div class="window-color vjs-tracksetting">\n <label class="vjs-label">Window</label>\n <select>\n <option value="">---</option>\n <option value="#FFF">White</option>\n <option value="#000">Black</option>\n <option value="#F00">Red</option>\n <option value="#0F0">Green</option>\n <option value="#00F">Blue</option>\n <option value="#FF0">Yellow</option>\n <option value="#F0F">Magenta</option>\n <option value="#0FF">Cyan</option>\n </select>\n <span class="vjs-window-opacity vjs-opacity">\n <select>\n <option value="">---</option>\n <option value="1">Opaque</option>\n <option value="0.5">Semi-Transparent</option>\n <option value="0">Transparent</option>\n </select>\n </span>\n </div> <!-- vjs-window-color -->\n </div> <!-- vjs-tracksettings -->\n <div class="vjs-tracksettings-font">\n <div class="vjs-font-percent vjs-tracksetting">\n <label class="vjs-label">Font Size</label>\n <select>\n <option value="0.50">50%</option>\n <option value="0.75">75%</option>\n <option value="1.00" selected>100%</option>\n <option value="1.25">125%</option>\n <option value="1.50">150%</option>\n <option value="1.75">175%</option>\n <option value="2.00">200%</option>\n <option value="3.00">300%</option>\n <option value="4.00">400%</option>\n </select>\n </div> <!-- vjs-font-percent -->\n <div class="vjs-edge-style vjs-tracksetting">\n <label class="vjs-label">Text Edge Style</label>\n <select>\n <option value="none">None</option>\n <option value="raised">Raised</option>\n <option value="depressed">Depressed</option>\n <option value="uniform">Uniform</option>\n <option value="dropshadow">Dropshadow</option>\n </select>\n </div> <!-- vjs-edge-style -->\n <div class="vjs-font-family vjs-tracksetting">\n <label class="vjs-label">Font Family</label>\n <select>\n <option value="">Default</option>\n <option value="monospaceSerif">Monospace Serif</option>\n <option value="proportionalSerif">Proportional Serif</option>\n <option value="monospaceSansSerif">Monospace Sans-Serif</option>\n <option value="proportionalSansSerif">Proportional Sans-Serif</option>\n <option value="casual">Casual</option>\n <option value="script">Script</option>\n <option value="small-caps">Small Caps</option>\n </select>\n </div> <!-- vjs-font-family -->\n </div>\n </div>\n <div class="vjs-tracksettings-controls">\n <button class="vjs-default-button">Defaults</button>\n <button class="vjs-done-button">Done</button>\n </div>';return a}c.__esModule=!0;var k=a("../component"),l=e(k),m=a("../utils/events.js"),n=d(m),o=a("../utils/fn.js"),p=d(o),q=a("../utils/log.js"),r=e(q),s=a("safe-json-parse/tuple"),t=e(s),u=a("global/window"),v=e(u),w=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.hide(),void 0===d.persistTextTrackSettings&&(this.options_.persistTextTrackSettings=this.options_.playerOptions.persistTextTrackSettings),n.on(this.$(".vjs-done-button"),"click",p.bind(this,function(){this.saveSettings(),this.hide()})),n.on(this.$(".vjs-default-button"),"click",p.bind(this,function(){this.$(".vjs-fg-color > select").selectedIndex=0,this.$(".vjs-bg-color > select").selectedIndex=0,this.$(".window-color > select").selectedIndex=0,this.$(".vjs-text-opacity > select").selectedIndex=0,this.$(".vjs-bg-opacity > select").selectedIndex=0,this.$(".vjs-window-opacity > select").selectedIndex=0,this.$(".vjs-edge-style select").selectedIndex=0,this.$(".vjs-font-family select").selectedIndex=0,this.$(".vjs-font-percent select").selectedIndex=2,this.updateDisplay()})),n.on(this.$(".vjs-fg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.$(".vjs-bg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.$(".window-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.$(".vjs-text-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.$(".vjs-bg-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.$(".vjs-window-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.$(".vjs-font-percent select"),"change",p.bind(this,this.updateDisplay)),n.on(this.$(".vjs-edge-style select"),"change",p.bind(this,this.updateDisplay)),n.on(this.$(".vjs-font-family select"),"change",p.bind(this,this.updateDisplay)),this.options_.persistTextTrackSettings&&this.restoreSettings()}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-caption-settings vjs-modal-overlay",innerHTML:j()})},b.prototype.getValues=function(){var a=h(this.$(".vjs-edge-style select")),b=h(this.$(".vjs-font-family select")),c=h(this.$(".vjs-fg-color > select")),d=h(this.$(".vjs-text-opacity > select")),e=h(this.$(".vjs-bg-color > select")),f=h(this.$(".vjs-bg-opacity > select")),g=h(this.$(".window-color > select")),i=h(this.$(".vjs-window-opacity > select")),j=v["default"].parseFloat(h(this.$(".vjs-font-percent > select"))),k={backgroundOpacity:f,textOpacity:d,windowOpacity:i,edgeStyle:a,fontFamily:b,color:c,backgroundColor:e,windowColor:g,fontPercent:j};for(var l in k)(""===k[l]||"none"===k[l]||"fontPercent"===l&&1===k[l])&&delete k[l];return k},b.prototype.setValues=function(a){i(this.$(".vjs-edge-style select"),a.edgeStyle),i(this.$(".vjs-font-family select"),a.fontFamily),i(this.$(".vjs-fg-color > select"),a.color),i(this.$(".vjs-text-opacity > select"),a.textOpacity),i(this.$(".vjs-bg-color > select"),a.backgroundColor),i(this.$(".vjs-bg-opacity > select"),a.backgroundOpacity),i(this.$(".window-color > select"),a.windowColor),i(this.$(".vjs-window-opacity > select"),a.windowOpacity);var b=a.fontPercent;b&&(b=b.toFixed(2)),i(this.$(".vjs-font-percent > select"),b)},b.prototype.restoreSettings=function(){var a=t["default"](v["default"].localStorage.getItem("vjs-text-track-settings")),b=a[0],c=a[1];b&&r["default"].error(b),c&&this.setValues(c)},b.prototype.saveSettings=function(){if(this.options_.persistTextTrackSettings){var a=this.getValues();try{Object.getOwnPropertyNames(a).length>0?v["default"].localStorage.setItem("vjs-text-track-settings",JSON.stringify(a)):v["default"].localStorage.removeItem("vjs-text-track-settings")}catch(b){}}},b.prototype.updateDisplay=function(){var a=this.player_.getChild("textTrackDisplay");a&&a.updateDisplay()},b}(l["default"]);l["default"].registerComponent("TextTrackSettings",w),c["default"]=w,b.exports=c["default"]},{"../component":65,"../utils/events.js":129,"../utils/fn.js":130,"../utils/log.js":133,"global/window":2,"safe-json-parse/tuple":53}],124:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var f=a("./text-track-cue-list"),g=e(f),h=a("../utils/fn.js"),i=d(h),j=a("../utils/guid.js"),k=d(j),l=a("../utils/browser.js"),m=d(l),n=a("./text-track-enums"),o=d(n),p=a("../utils/log.js"),q=e(p),r=a("../event-target"),s=e(r),t=a("global/document"),u=e(t),v=a("global/window"),w=e(v),x=a("../utils/url.js"),y=a("xhr"),z=e(y),A=function E(){var a=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!a.tech)throw new Error("A tech was not provided.");var b=this;if(m.IS_IE8){b=u["default"].createElement("custom");for(var c in E.prototype)"constructor"!==c&&(b[c]=E.prototype[c])}b.tech_=a.tech;var d=o.TextTrackMode[a.mode]||"disabled",e=o.TextTrackKind[a.kind]||"subtitles",f=a.label||"",h=a.language||a.srclang||"",j=a.id||"vjs_text_track_"+k.newGUID();("metadata"===e||"chapters"===e)&&(d="hidden"),b.cues_=[],b.activeCues_=[];var l=new g["default"](b.cues_),n=new g["default"](b.activeCues_),p=!1,q=i.bind(b,function(){this.activeCues,p&&(this.trigger("cuechange"),p=!1)});return"disabled"!==d&&b.tech_.on("timeupdate",q),Object.defineProperty(b,"kind",{get:function(){return e},set:Function.prototype}),Object.defineProperty(b,"label",{get:function(){return f},set:Function.prototype}),Object.defineProperty(b,"language",{get:function(){return h},set:Function.prototype}),Object.defineProperty(b,"id",{get:function(){return j},set:Function.prototype}),Object.defineProperty(b,"mode",{get:function(){return d},set:function(a){o.TextTrackMode[a]&&(d=a,"showing"===d&&this.tech_.on("timeupdate",q),this.trigger("modechange"))}}),Object.defineProperty(b,"cues",{get:function(){return this.loaded_?l:null},set:Function.prototype}),Object.defineProperty(b,"activeCues",{get:function(){if(!this.loaded_)return null;if(0===this.cues.length)return n;for(var a=this.tech_.currentTime(),b=[],c=0,d=this.cues.length;d>c;c++){var e=this.cues[c];e.startTime<=a&&e.endTime>=a?b.push(e):e.startTime===e.endTime&&e.startTime<=a&&e.startTime+.5>=a&&b.push(e)}if(p=!1,b.length!==this.activeCues_.length)p=!0;else for(var c=0;c<b.length;c++)-1===D.call(this.activeCues_,b[c])&&(p=!0);return this.activeCues_=b,n.setCues_(this.activeCues_),n},set:Function.prototype}),a.src?(b.src=a.src,C(a.src,b)):b.loaded_=!0,m.IS_IE8?b:void 0};A.prototype=Object.create(s["default"].prototype),A.prototype.constructor=A,A.prototype.allowedEvents_={cuechange:"cuechange"},A.prototype.addCue=function(a){var b=this.tech_.textTracks();if(b)for(var c=0;c<b.length;c++)b[c]!==this&&b[c].removeCue(a);this.cues_.push(a),this.cues.setCues_(this.cues_)},A.prototype.removeCue=function(a){for(var b=!1,c=0,d=this.cues_.length;d>c;c++){var e=this.cues_[c];e===a&&(this.cues_.splice(c,1),b=!0)}b&&this.cues.setCues_(this.cues_)};var B=function(a,b){var c=new w["default"].WebVTT.Parser(w["default"],w["default"].vttjs,w["default"].WebVTT.StringDecoder());c.oncue=function(a){b.addCue(a)},c.onparsingerror=function(a){q["default"].error(a)},c.onflush=function(){b.trigger({type:"loadeddata",target:b})},c.parse(a),c.flush()},C=function(a,b){var c={uri:a},d=x.isCrossOrigin(a);d&&(c.cors=d),z["default"](c,i.bind(this,function(a,c,d){return a?q["default"].error(a,c):(b.loaded_=!0,void("function"!=typeof w["default"].WebVTT?w["default"].setTimeout(function(){B(d,b)},100):B(d,b)))}))},D=function(a,b){if(null==this)throw new TypeError('"this" is null or not defined');var c=Object(this),d=c.length>>>0;if(0===d)return-1;
|
22 |
+
|
23 |
+
var e=+b||0;if(Math.abs(e)===1/0&&(e=0),e>=d)return-1;for(var f=Math.max(e>=0?e:d-Math.abs(e),0);d>f;){if(f in c&&c[f]===a)return f;f++}return-1};c["default"]=A,b.exports=c["default"]},{"../event-target":97,"../utils/browser.js":125,"../utils/fn.js":130,"../utils/guid.js":132,"../utils/log.js":133,"../utils/url.js":138,"./text-track-cue-list":118,"./text-track-enums":120,"global/document":1,"global/window":2,xhr:55}],125:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=a("global/window"),h=d(g),i=h["default"].navigator.userAgent,j=/AppleWebKit\/([\d.]+)/i.exec(i),k=j?parseFloat(j.pop()):null,l=/iPhone/i.test(i);c.IS_IPHONE=l;var m=/iPad/i.test(i);c.IS_IPAD=m;var n=/iPod/i.test(i);c.IS_IPOD=n;var o=l||m||n;c.IS_IOS=o;var p=function(){var a=i.match(/OS (\d+)_/i);return a&&a[1]?a[1]:void 0}();c.IOS_VERSION=p;var q=/Android/i.test(i);c.IS_ANDROID=q;var r=function(){var a,b,c=i.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);return c?(a=c[1]&&parseFloat(c[1]),b=c[2]&&parseFloat(c[2]),a&&b?parseFloat(c[1]+"."+c[2]):a?a:null):null}();c.ANDROID_VERSION=r;var s=q&&/webkit/i.test(i)&&2.3>r;c.IS_OLD_ANDROID=s;var t=q&&5>r&&537>k;c.IS_NATIVE_ANDROID=t;var u=/Firefox/i.test(i);c.IS_FIREFOX=u;var v=/Chrome/i.test(i);c.IS_CHROME=v;var w=/MSIE\s8\.0/.test(i);c.IS_IE8=w;var x=!!("ontouchstart"in h["default"]||h["default"].DocumentTouch&&f["default"]instanceof h["default"].DocumentTouch);c.TOUCH_ENABLED=x;var y="backgroundSize"in f["default"].createElement("video").style;c.BACKGROUND_SIZE_SUPPORTED=y},{"global/document":1,"global/window":2}],126:[function(a,b,c){"use strict";function d(a,b){var c,d,f=0;if(!b)return 0;a&&a.length||(a=e.createTimeRange(0,0));for(var g=0;g<a.length;g++)c=a.start(g),d=a.end(g),d>b&&(d=b),f+=d-c;return f/b}c.__esModule=!0,c.bufferedPercent=d;var e=a("./time-ranges.js")},{"./time-ranges.js":136}],127:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./log.js"),f=d(e),g={get:function(a,b){return a[b]},set:function(a,b,c){return a[b]=c,!0}};c["default"]=function(a){var b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if("function"==typeof Proxy){var c=function(){var c={};return Object.keys(b).forEach(function(a){g.hasOwnProperty(a)&&(c[a]=function(){return f["default"].warn(b[a]),g[a].apply(this,arguments)})}),{v:new Proxy(a,c)}}();if("object"==typeof c)return c.v}return a},b.exports=c["default"]},{"./log.js":133}],128:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){return a.raw=b,a}function g(a){return"string"==typeof a&&/\S/.test(a)}function h(a){if(/\s/.test(a))throw new Error("class has illegal whitespace characters")}function i(a){return new RegExp("(^|\\s)"+a+"($|\\s)")}function j(a){return function(b,c){return g(b)?(g(c)&&(c=J["default"].querySelector(c)),(B(c)?c:J["default"])[a](b)):J["default"][a](null)}}function k(a){return 0===a.indexOf("#")&&(a=a.slice(1)),J["default"].getElementById(a)}function l(){var a=arguments.length<=0||void 0===arguments[0]?"div":arguments[0],b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],c=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],d=J["default"].createElement(a);return Object.getOwnPropertyNames(b).forEach(function(a){var c=b[a];-1!==a.indexOf("aria-")||"role"===a||"type"===a?(P["default"].warn(R["default"](H,a,c)),d.setAttribute(a,c)):d[a]=c}),Object.getOwnPropertyNames(c).forEach(function(a){c[a];d.setAttribute(a,c[a])}),d}function m(a,b){"undefined"==typeof a.textContent?a.innerText=b:a.textContent=b}function n(a,b){b.firstChild?b.insertBefore(a,b.firstChild):b.appendChild(a)}function o(a){var b=a[T];return b||(b=a[T]=N.newGUID()),S[b]||(S[b]={}),S[b]}function p(a){var b=a[T];return b?!!Object.getOwnPropertyNames(S[b]).length:!1}function q(a){var b=a[T];if(b){delete S[b];try{delete a[T]}catch(c){a.removeAttribute?a.removeAttribute(T):a[T]=null}}}function r(a,b){return a.classList?a.classList.contains(b):(h(b),i(b).test(a.className))}function s(a,b){return a.classList?a.classList.add(b):r(a,b)||(a.className=(a.className+" "+b).trim()),a}function t(a,b){return a.classList?a.classList.remove(b):(h(b),a.className=a.className.split(/\s+/).filter(function(a){return a!==b}).join(" ")),a}function u(a,b,c){var d=r(a,b);return"function"==typeof c&&(c=c(a,b)),"boolean"!=typeof c&&(c=!d),c!==d?(c?s(a,b):t(a,b),a):void 0}function v(a,b){Object.getOwnPropertyNames(b).forEach(function(c){var d=b[c];null===d||"undefined"==typeof d||d===!1?a.removeAttribute(c):a.setAttribute(c,d===!0?"":d)})}function w(a){var b,c,d,e,f;if(b={},c=",autoplay,controls,loop,muted,default,",a&&a.attributes&&a.attributes.length>0){d=a.attributes;for(var g=d.length-1;g>=0;g--)e=d[g].name,f=d[g].value,("boolean"==typeof a[e]||-1!==c.indexOf(","+e+","))&&(f=null!==f?!0:!1),b[e]=f}return b}function x(){J["default"].body.focus(),J["default"].onselectstart=function(){return!1}}function y(){J["default"].onselectstart=function(){return!0}}function z(a){var b=void 0;if(a.getBoundingClientRect&&a.parentNode&&(b=a.getBoundingClientRect()),!b)return{left:0,top:0};var c=J["default"].documentElement,d=J["default"].body,e=c.clientLeft||d.clientLeft||0,f=L["default"].pageXOffset||d.scrollLeft,g=b.left+f-e,h=c.clientTop||d.clientTop||0,i=L["default"].pageYOffset||d.scrollTop,j=b.top+i-h;return{left:Math.round(g),top:Math.round(j)}}function A(a,b){var c={},d=z(a),e=a.offsetWidth,f=a.offsetHeight,g=d.top,h=d.left,i=b.pageY,j=b.pageX;return b.changedTouches&&(j=b.changedTouches[0].pageX,i=b.changedTouches[0].pageY),c.y=Math.max(0,Math.min(1,(g-i+f)/f)),c.x=Math.max(0,Math.min(1,(j-h)/e)),c}function B(a){return!!a&&"object"==typeof a&&1===a.nodeType}function C(a){return!!a&&"object"==typeof a&&3===a.nodeType}function D(a){for(;a.firstChild;)a.removeChild(a.firstChild);return a}function E(a){return"function"==typeof a&&(a=a()),(Array.isArray(a)?a:[a]).map(function(a){return"function"==typeof a&&(a=a()),B(a)||C(a)?a:"string"==typeof a&&/\S/.test(a)?J["default"].createTextNode(a):void 0}).filter(function(a){return a})}function F(a,b){return E(b).forEach(function(b){return a.appendChild(b)}),a}function G(a,b){return F(D(a),b)}c.__esModule=!0,c.getEl=k,c.createEl=l,c.textContent=m,c.insertElFirst=n,c.getElData=o,c.hasElData=p,c.removeElData=q,c.hasElClass=r,c.addElClass=s,c.removeElClass=t,c.toggleElClass=u,c.setElAttributes=v,c.getElAttributes=w,c.blockTextSelection=x,c.unblockTextSelection=y,c.findElPosition=z,c.getPointerPosition=A,c.isEl=B,c.isTextNode=C,c.emptyEl=D,c.normalizeContent=E,c.appendContent=F,c.insertContent=G;var H=f(["Setting attributes in the second argument of createEl()\n has been deprecated. Use the third argument instead.\n createEl(type, properties, attributes). Attempting to set "," to ","."],["Setting attributes in the second argument of createEl()\n has been deprecated. Use the third argument instead.\n createEl(type, properties, attributes). Attempting to set "," to ","."]),I=a("global/document"),J=e(I),K=a("global/window"),L=e(K),M=a("./guid.js"),N=d(M),O=a("./log.js"),P=e(O),Q=a("tsml"),R=e(Q),S={},T="vdata"+(new Date).getTime(),U=j("querySelector");c.$=U;var V=j("querySelectorAll");c.$$=V},{"./guid.js":132,"./log.js":133,"global/document":1,"global/window":2,tsml:54}],129:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b,c){if(Array.isArray(b))return l(f,a,b,c);var d=n.getElData(a);d.handlers||(d.handlers={}),d.handlers[b]||(d.handlers[b]=[]),c.guid||(c.guid=p.newGUID()),d.handlers[b].push(c),d.dispatcher||(d.disabled=!1,d.dispatcher=function(b,c){if(!d.disabled){b=j(b);var e=d.handlers[b.type];if(e)for(var f=e.slice(0),g=0,h=f.length;h>g&&!b.isImmediatePropagationStopped();g++)f[g].call(a,b,c)}}),1===d.handlers[b].length&&(a.addEventListener?a.addEventListener(b,d.dispatcher,!1):a.attachEvent&&a.attachEvent("on"+b,d.dispatcher))}function g(a,b,c){if(n.hasElData(a)){var d=n.getElData(a);if(d.handlers){if(Array.isArray(b))return l(g,a,b,c);var e=function(b){d.handlers[b]=[],k(a,b)};if(b){var f=d.handlers[b];if(f){if(!c)return void e(b);if(c.guid)for(var h=0;h<f.length;h++)f[h].guid===c.guid&&f.splice(h--,1);k(a,b)}}else for(var i in d.handlers)e(i)}}}function h(a,b,c){var d=n.hasElData(a)?n.getElData(a):{},e=a.parentNode||a.ownerDocument;if("string"==typeof b&&(b={type:b,target:a}),b=j(b),d.dispatcher&&d.dispatcher.call(a,b,c),e&&!b.isPropagationStopped()&&b.bubbles===!0)h.call(null,e,b,c);else if(!e&&!b.defaultPrevented){var f=n.getElData(b.target);b.target[b.type]&&(f.disabled=!0,"function"==typeof b.target[b.type]&&b.target[b.type](),f.disabled=!1)}return!b.defaultPrevented}function i(a,b,c){if(Array.isArray(b))return l(i,a,b,c);var d=function e(){g(a,b,e),c.apply(this,arguments)};d.guid=c.guid=c.guid||p.newGUID(),f(a,b,d)}function j(a){function b(){return!0}function c(){return!1}if(!a||!a.isPropagationStopped){var d=a||r["default"].event;a={};for(var e in d)"layerX"!==e&&"layerY"!==e&&"keyLocation"!==e&&"webkitMovementX"!==e&&"webkitMovementY"!==e&&("returnValue"===e&&d.preventDefault||(a[e]=d[e]));if(a.target||(a.target=a.srcElement||t["default"]),a.relatedTarget||(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement),a.preventDefault=function(){d.preventDefault&&d.preventDefault(),a.returnValue=!1,d.returnValue=!1,a.defaultPrevented=!0},a.defaultPrevented=!1,a.stopPropagation=function(){d.stopPropagation&&d.stopPropagation(),a.cancelBubble=!0,d.cancelBubble=!0,a.isPropagationStopped=b},a.isPropagationStopped=c,a.stopImmediatePropagation=function(){d.stopImmediatePropagation&&d.stopImmediatePropagation(),a.isImmediatePropagationStopped=b,a.stopPropagation()},a.isImmediatePropagationStopped=c,null!=a.clientX){var f=t["default"].documentElement,g=t["default"].body;a.pageX=a.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=a.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)}a.which=a.charCode||a.keyCode,null!=a.button&&(a.button=1&a.button?0:4&a.button?1:2&a.button?2:0)}return a}function k(a,b){var c=n.getElData(a);0===c.handlers[b].length&&(delete c.handlers[b],a.removeEventListener?a.removeEventListener(b,c.dispatcher,!1):a.detachEvent&&a.detachEvent("on"+b,c.dispatcher)),Object.getOwnPropertyNames(c.handlers).length<=0&&(delete c.handlers,delete c.dispatcher,delete c.disabled),0===Object.getOwnPropertyNames(c).length&&n.removeElData(a)}function l(a,b,c,d){c.forEach(function(c){a(b,c,d)})}c.__esModule=!0,c.on=f,c.off=g,c.trigger=h,c.one=i,c.fixEvent=j;var m=a("./dom.js"),n=e(m),o=a("./guid.js"),p=e(o),q=a("global/window"),r=d(q),s=a("global/document"),t=d(s)},{"./dom.js":128,"./guid.js":132,"global/document":1,"global/window":2}],130:[function(a,b,c){"use strict";c.__esModule=!0;var d=a("./guid.js"),e=function(a,b,c){b.guid||(b.guid=d.newGUID());var e=function(){return b.apply(a,arguments)};return e.guid=c?c+"_"+b.guid:b.guid,e};c.bind=e},{"./guid.js":132}],131:[function(a,b,c){"use strict";function d(a){var b=arguments.length<=1||void 0===arguments[1]?a:arguments[1];return function(){a=0>a?0:a;var c=Math.floor(a%60),d=Math.floor(a/60%60),e=Math.floor(a/3600),f=Math.floor(b/60%60),g=Math.floor(b/3600);return(isNaN(a)||a===1/0)&&(e=d=c="-"),e=e>0||g>0?e+":":"",d=((e||f>=10)&&10>d?"0"+d:d)+":",c=10>c?"0"+c:c,e+d+c}()}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],132:[function(a,b,c){"use strict";function d(){return e++}c.__esModule=!0,c.newGUID=d;var e=1},{}],133:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){var c=Array.prototype.slice.call(b),d=function(){},e=g["default"].console||{log:d,warn:d,error:d};a?c.unshift(a.toUpperCase()+":"):a="log",h.history.push(c),c.unshift("VIDEOJS:"),e[a].apply?e[a].apply(e,c):e[a](c.join(" "))}c.__esModule=!0;var f=a("global/window"),g=d(f),h=function(){e(null,arguments)};h.history=[],h.error=function(){e("error",arguments)},h.warn=function(){e("warn",arguments)},c["default"]=h,b.exports=c["default"]},{"global/window":2}],134:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){return!!a&&"object"==typeof a&&"[object Object]"===a.toString()&&a.constructor===Object}function f(){var a=Array.prototype.slice.call(arguments);return a.unshift({}),a.push(i),h["default"].apply(null,a),a[0]}c.__esModule=!0,c["default"]=f;var g=a("lodash-compat/object/merge"),h=d(g),i=function(a,b){return e(b)?e(a)?void 0:f(b):b};b.exports=c["default"]},{"lodash-compat/object/merge":40}],135:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=function(a){var b=f["default"].createElement("style");return b.className=a,b};c.createStyleElement=g;var h=function(a,b){a.styleSheet?a.styleSheet.cssText=b:a.textContent=b};c.setTextContent=h},{"global/document":1}],136:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){return Array.isArray(a)?f(a):void 0===a||void 0===b?f():f([[a,b]])}function f(a){return void 0===a||0===a.length?{length:0,start:function(){throw new Error("This TimeRanges object is empty")},end:function(){throw new Error("This TimeRanges object is empty")}}:{length:a.length,start:g.bind(null,"start",0,a),end:g.bind(null,"end",1,a)}}function g(a,b,c,d){return void 0===d&&(j["default"].warn("DEPRECATED: Function '"+a+"' on 'TimeRanges' called without an index argument."),d=0),h(a,d,c.length-1),c[d][b]}function h(a,b,c){if(0>b||b>c)throw new Error("Failed to execute '"+a+"' on 'TimeRanges': The index provided ("+b+") is greater than or equal to the maximum bound ("+c+").")}c.__esModule=!0,c.createTimeRanges=e;var i=a("./log.js"),j=d(i);c.createTimeRange=e},{"./log.js":133}],137:[function(a,b,c){"use strict";function d(a){return a.charAt(0).toUpperCase()+a.slice(1)}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],138:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=a("global/window"),h=d(g),i=function(a){var b=["protocol","hostname","port","pathname","search","hash","host"],c=f["default"].createElement("a");c.href=a;var d=""===c.host&&"file:"!==c.protocol,e=void 0;d&&(e=f["default"].createElement("div"),e.innerHTML='<a href="'+a+'"></a>',c=e.firstChild,e.setAttribute("style","display:none; position:absolute;"),f["default"].body.appendChild(e));for(var g={},h=0;h<b.length;h++)g[b[h]]=c[b[h]];return"http:"===g.protocol&&(g.host=g.host.replace(/:80$/,"")),"https:"===g.protocol&&(g.host=g.host.replace(/:443$/,"")),d&&f["default"].body.removeChild(e),g};c.parseUrl=i;var j=function(a){if(!a.match(/^https?:\/\//)){var b=f["default"].createElement("div");b.innerHTML='<a href="'+a+'">x</a>',a=b.firstChild.href}return a};c.getAbsoluteURL=j;var k=function(a){if("string"==typeof a){var b=/^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/i,c=b.exec(a);if(c)return c.pop().toLowerCase()}return""};c.getFileExtension=k;var l=function(a){var b=h["default"].location,c=i(a),d=":"===c.protocol?b.protocol:c.protocol,e=d+c.host!==b.protocol+b.host;return e};c.isCrossOrigin=l},{"global/document":1,"global/window":2}],139:[function(b,c,d){"use strict";function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a){return a&&a.__esModule?a:{"default":a}}d.__esModule=!0;{var g=b("global/document"),h=f(g),i=b("./setup"),j=e(i),k=b("./utils/stylesheet.js"),l=e(k),m=b("./component"),n=f(m),o=b("./event-target"),p=f(o),q=b("./utils/events.js"),r=e(q),s=b("./player"),t=f(s),u=b("./plugins.js"),v=f(u),w=b("../../src/js/utils/merge-options.js"),x=f(w),y=b("./utils/fn.js"),z=e(y),A=b("./tracks/text-track.js"),B=f(A),C=b("object.assign"),D=(f(C),b("./utils/time-ranges.js")),E=b("./utils/format-time.js"),F=f(E),G=b("./utils/log.js"),H=f(G),I=b("./utils/dom.js"),J=e(I),K=b("./utils/browser.js"),L=e(K),M=b("./utils/url.js"),N=e(M),O=b("./extend.js"),P=f(O),Q=b("lodash-compat/object/merge"),R=f(Q),S=b("./utils/create-deprecation-proxy.js"),T=f(S),U=b("xhr"),V=f(U),W=b("./tech/tech.js"),X=f(W),Y=b("./tech/html5.js"),Z=(f(Y),b("./tech/flash.js"));f(Z)}"undefined"==typeof HTMLVideoElement&&(h["default"].createElement("video"),h["default"].createElement("audio"),h["default"].createElement("track"));var $=function ba(a,b,c){var d=void 0;if("string"==typeof a){if(0===a.indexOf("#")&&(a=a.slice(1)),ba.getPlayers()[a])return b&&H["default"].warn('Player "'+a+'" is already initialised. Options will not be applied.'),c&&ba.getPlayers()[a].ready(c),ba.getPlayers()[a];d=J.getEl(a)}else d=a;if(!d||!d.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");return d.player||t["default"].players[d.playerId]||new t["default"](d,b,c)},_=J.$(".vjs-styles-defaults");if(!_){_=l.createStyleElement("vjs-styles-defaults");var aa=J.$("head");aa.insertBefore(_,aa.firstChild),l.setTextContent(_,"\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n ")}j.autoSetupTimeout(1,$),$.VERSION="5.5.3",$.options=t["default"].prototype.options_,$.getPlayers=function(){return t["default"].players},$.players=T["default"](t["default"].players,{get:"Access to videojs.players is deprecated; use videojs.getPlayers instead",set:"Modification of videojs.players is deprecated"}),$.getComponent=n["default"].getComponent,$.registerComponent=function(a,b){X["default"].isTech(b)&&H["default"].warn("The "+a+" tech was registered as a component. It should instead be registered using videojs.registerTech(name, tech)"),n["default"].registerComponent.call(n["default"],a,b)},$.getTech=X["default"].getTech,$.registerTech=X["default"].registerTech,$.browser=L,$.TOUCH_ENABLED=L.TOUCH_ENABLED,$.extend=P["default"],$.mergeOptions=x["default"],$.bind=z.bind,$.plugin=v["default"],$.addLanguage=function(a,b){var c;return a=(""+a).toLowerCase(),R["default"]($.options.languages,(c={},c[a]=b,c))[a]},$.log=H["default"],$.createTimeRange=$.createTimeRanges=D.createTimeRanges,$.formatTime=F["default"],$.parseUrl=N.parseUrl,$.isCrossOrigin=N.isCrossOrigin,$.EventTarget=p["default"],$.on=r.on,$.one=r.one,$.off=r.off,$.trigger=r.trigger,$.xhr=V["default"],$.TextTrack=B["default"],$.isEl=J.isEl,$.isTextNode=J.isTextNode,$.createEl=J.createEl,$.hasClass=J.hasElClass,$.addClass=J.addElClass,$.removeClass=J.removeElClass,$.toggleClass=J.toggleElClass,$.setAttributes=J.setElAttributes,$.getAttributes=J.getElAttributes,$.emptyEl=J.emptyEl,$.appendContent=J.appendContent,$.insertContent=J.insertContent,"function"==typeof a&&a.amd?a("videojs",[],function(){return $}):"object"==typeof d&&"object"==typeof c&&(c.exports=$),d["default"]=$,c.exports=d["default"]},{"../../src/js/utils/merge-options.js":134,"./component":65,"./event-target":97,"./extend.js":98,"./player":106,"./plugins.js":107,"./setup":109,"./tech/flash.js":112,"./tech/html5.js":113,"./tech/tech.js":115,"./tracks/text-track.js":124,"./utils/browser.js":125,"./utils/create-deprecation-proxy.js":127,"./utils/dom.js":128,"./utils/events.js":129,"./utils/fn.js":130,"./utils/format-time.js":131,"./utils/log.js":133,"./utils/stylesheet.js":135,"./utils/time-ranges.js":136,"./utils/url.js":138,"global/document":1,"lodash-compat/object/merge":40,"object.assign":45,xhr:55}]},{},[139])(139)}),function(a){var b=a.vttjs={},c=b.VTTCue,d=b.VTTRegion,e=a.VTTCue,f=a.VTTRegion;b.shim=function(){b.VTTCue=c,b.VTTRegion=d},b.restore=function(){b.VTTCue=e,b.VTTRegion=f}}(this),function(a,b){function c(a){if("string"!=typeof a)return!1;var b=h[a.toLowerCase()];return b?a.toLowerCase():!1}function d(a){if("string"!=typeof a)return!1;var b=i[a.toLowerCase()];return b?a.toLowerCase():!1}function e(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)a[d]=c[d]}return a}function f(a,b,f){var h=this,i=/MSIE\s8\.0/.test(navigator.userAgent),j={};i?h=document.createElement("custom"):j.enumerable=!0,h.hasBeenReset=!1;var k="",l=!1,m=a,n=b,o=f,p=null,q="",r=!0,s="auto",t="start",u=50,v="middle",w=50,x="middle";return Object.defineProperty(h,"id",e({},j,{get:function(){return k},set:function(a){k=""+a}})),Object.defineProperty(h,"pauseOnExit",e({},j,{get:function(){return l},set:function(a){l=!!a}})),Object.defineProperty(h,"startTime",e({},j,{get:function(){return m},set:function(a){if("number"!=typeof a)throw new TypeError("Start time must be set to a number.");m=a,this.hasBeenReset=!0}})),Object.defineProperty(h,"endTime",e({},j,{get:function(){return n},set:function(a){if("number"!=typeof a)throw new TypeError("End time must be set to a number.");n=a,this.hasBeenReset=!0}})),Object.defineProperty(h,"text",e({},j,{get:function(){return o},set:function(a){o=""+a,this.hasBeenReset=!0}})),Object.defineProperty(h,"region",e({},j,{get:function(){return p},set:function(a){p=a,this.hasBeenReset=!0}})),Object.defineProperty(h,"vertical",e({},j,{get:function(){return q},set:function(a){var b=c(a);if(b===!1)throw new SyntaxError("An invalid or illegal string was specified.");q=b,this.hasBeenReset=!0}})),Object.defineProperty(h,"snapToLines",e({},j,{get:function(){return r},set:function(a){r=!!a,this.hasBeenReset=!0}})),Object.defineProperty(h,"line",e({},j,{get:function(){return s},set:function(a){if("number"!=typeof a&&a!==g)throw new SyntaxError("An invalid number or illegal string was specified.");s=a,this.hasBeenReset=!0}})),Object.defineProperty(h,"lineAlign",e({},j,{get:function(){return t},set:function(a){var b=d(a);if(!b)throw new SyntaxError("An invalid or illegal string was specified.");t=b,this.hasBeenReset=!0}})),Object.defineProperty(h,"position",e({},j,{get:function(){return u},set:function(a){if(0>a||a>100)throw new Error("Position must be between 0 and 100.");u=a,this.hasBeenReset=!0}})),Object.defineProperty(h,"positionAlign",e({},j,{get:function(){return v},set:function(a){var b=d(a);if(!b)throw new SyntaxError("An invalid or illegal string was specified.");v=b,this.hasBeenReset=!0}})),Object.defineProperty(h,"size",e({},j,{get:function(){return w},set:function(a){if(0>a||a>100)throw new Error("Size must be between 0 and 100.");w=a,this.hasBeenReset=!0}})),Object.defineProperty(h,"align",e({},j,{get:function(){return x},set:function(a){var b=d(a);if(!b)throw new SyntaxError("An invalid or illegal string was specified.");x=b,this.hasBeenReset=!0}})),h.displayState=void 0,i?h:void 0}var g="auto",h={"":!0,lr:!0,rl:!0},i={start:!0,middle:!0,end:!0,left:!0,right:!0};f.prototype.getCueAsHTML=function(){return WebVTT.convertCueToDOMTree(window,this.text)},a.VTTCue=a.VTTCue||f,b.VTTCue=f}(this,this.vttjs||{}),function(a,b){function c(a){if("string"!=typeof a)return!1;var b=f[a.toLowerCase()];return b?a.toLowerCase():!1}function d(a){return"number"==typeof a&&a>=0&&100>=a}function e(){var a=100,b=3,e=0,f=100,g=0,h=100,i="";Object.defineProperties(this,{width:{enumerable:!0,get:function(){return a},set:function(b){if(!d(b))throw new Error("Width must be between 0 and 100.");a=b}},lines:{enumerable:!0,get:function(){return b},set:function(a){if("number"!=typeof a)throw new TypeError("Lines must be set to a number.");b=a}},regionAnchorY:{enumerable:!0,get:function(){return f},set:function(a){if(!d(a))throw new Error("RegionAnchorX must be between 0 and 100.");f=a}},regionAnchorX:{enumerable:!0,get:function(){return e},set:function(a){if(!d(a))throw new Error("RegionAnchorY must be between 0 and 100.");e=a}},viewportAnchorY:{enumerable:!0,get:function(){return h},set:function(a){if(!d(a))throw new Error("ViewportAnchorY must be between 0 and 100.");h=a}},viewportAnchorX:{enumerable:!0,get:function(){return g},set:function(a){if(!d(a))throw new Error("ViewportAnchorX must be between 0 and 100.");g=a}},scroll:{enumerable:!0,get:function(){return i},set:function(a){var b=c(a);if(b===!1)throw new SyntaxError("An invalid or illegal string was specified.");i=b}}})}var f={"":!0,up:!0};a.VTTRegion=a.VTTRegion||e,b.VTTRegion=e}(this,this.vttjs||{}),function(a){function b(a,b){this.name="ParsingError",this.code=a.code,this.message=b||a.message}function c(a){function b(a,b,c,d){return 3600*(0|a)+60*(0|b)+(0|c)+(0|d)/1e3}var c=a.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);return c?c[3]?b(c[1],c[2],c[3].replace(":",""),c[4]):c[1]>59?b(c[1],c[2],0,c[4]):b(0,c[1],c[2],c[4]):null}function d(){this.values=o(null)}function e(a,b,c,d){var e=d?a.split(d):[a];for(var f in e)if("string"==typeof e[f]){var g=e[f].split(c);if(2===g.length){var h=g[0],i=g[1];b(h,i)}}}function f(a,f,g){function h(){var d=c(a);if(null===d)throw new b(b.Errors.BadTimeStamp,"Malformed timestamp: "+k);return a=a.replace(/^[^\sa-zA-Z-]+/,""),d}function i(a,b){var c=new d;e(a,function(a,b){switch(a){case"region":for(var d=g.length-1;d>=0;d--)if(g[d].id===b){c.set(a,g[d].region);break}break;case"vertical":c.alt(a,b,["rl","lr"]);break;case"line":var e=b.split(","),f=e[0];c.integer(a,f),c.percent(a,f)?c.set("snapToLines",!1):null,c.alt(a,f,["auto"]),2===e.length&&c.alt("lineAlign",e[1],["start","middle","end"]);break;case"position":e=b.split(","),c.percent(a,e[0]),2===e.length&&c.alt("positionAlign",e[1],["start","middle","end"]);break;case"size":c.percent(a,b);break;case"align":c.alt(a,b,["start","middle","end","left","right"])}},/:/,/\s/),b.region=c.get("region",null),b.vertical=c.get("vertical",""),b.line=c.get("line","auto"),b.lineAlign=c.get("lineAlign","start"),b.snapToLines=c.get("snapToLines",!0),b.size=c.get("size",100),b.align=c.get("align","middle"),b.position=c.get("position",{start:0,left:0,middle:50,end:100,right:100},b.align),b.positionAlign=c.get("positionAlign",{start:"start",left:"start",middle:"middle",end:"end",right:"end"},b.align)}function j(){a=a.replace(/^\s+/,"")}var k=a;if(j(),f.startTime=h(),j(),"-->"!==a.substr(0,3))throw new b(b.Errors.BadTimeStamp,"Malformed time stamp (time stamps must be separated by '-->'): "+k);a=a.substr(3),j(),f.endTime=h(),j(),i(a,f)}function g(a,b){function d(){function a(a){return b=b.substr(a.length),a}if(!b)return null;var c=b.match(/^([^<]*)(<[^>]+>?)?/);return a(c[1]?c[1]:c[2])}function e(a){return p[a]}function f(a){for(;o=a.match(/&(amp|lt|gt|lrm|rlm|nbsp);/);)a=a.replace(o[0],e);return a}function g(a,b){return!s[b.localName]||s[b.localName]===a.localName}function h(b,c){var d=q[b];if(!d)return null;var e=a.document.createElement(d);e.localName=d;var f=r[b];return f&&c&&(e[f]=c.trim()),e}for(var i,j=a.document.createElement("div"),k=j,l=[];null!==(i=d());)if("<"!==i[0])k.appendChild(a.document.createTextNode(f(i)));else{if("/"===i[1]){l.length&&l[l.length-1]===i.substr(2).replace(">","")&&(l.pop(),k=k.parentNode);continue}var m,n=c(i.substr(1,i.length-2));if(n){m=a.document.createProcessingInstruction("timestamp",n),k.appendChild(m);continue}var o=i.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/);if(!o)continue;if(m=h(o[1],o[3]),!m)continue;if(!g(k,m))continue;o[2]&&(m.className=o[2].substr(1).replace("."," ")),l.push(o[1]),k.appendChild(m),k=m}return j}function h(a){function b(a,b){for(var c=b.childNodes.length-1;c>=0;c--)a.push(b.childNodes[c])}function c(a){if(!a||!a.length)return null;var d=a.pop(),e=d.textContent||d.innerText;if(e){var f=e.match(/^.*(\n|\r)/);return f?(a.length=0,f[0]):e}return"ruby"===d.tagName?c(a):d.childNodes?(b(a,d),c(a)):void 0}var d,e=[],f="";if(!a||!a.childNodes)return"ltr";for(b(e,a);f=c(e);)for(var g=0;g<f.length;g++){d=f.charCodeAt(g);for(var h=0;h<t.length;h++)if(t[h]===d)return"rtl"}return"ltr"}function i(a){if("number"==typeof a.line&&(a.snapToLines||a.line>=0&&a.line<=100))return a.line;if(!a.track||!a.track.textTrackList||!a.track.textTrackList.mediaElement)return-1;for(var b=a.track,c=b.textTrackList,d=0,e=0;e<c.length&&c[e]!==b;e++)"showing"===c[e].mode&&d++;return-1*++d}function j(){}function k(a,b,c){var d=/MSIE\s8\.0/.test(navigator.userAgent),e="rgba(255, 255, 255, 1)",f="rgba(0, 0, 0, 0.8)";d&&(e="rgb(255, 255, 255)",f="rgb(0, 0, 0)"),j.call(this),this.cue=b,this.cueDiv=g(a,b.text);var i={color:e,backgroundColor:f,position:"relative",left:0,right:0,top:0,bottom:0,display:"inline"};d||(i.writingMode=""===b.vertical?"horizontal-tb":"lr"===b.vertical?"vertical-lr":"vertical-rl",i.unicodeBidi="plaintext"),this.applyStyles(i,this.cueDiv),this.div=a.document.createElement("div"),i={textAlign:"middle"===b.align?"center":b.align,font:c.font,whiteSpace:"pre-line",position:"absolute"},d||(i.direction=h(this.cueDiv),i.writingMode=""===b.vertical?"horizontal-tb":"lr"===b.vertical?"vertical-lr":"vertical-rl".stylesunicodeBidi="plaintext"),this.applyStyles(i),this.div.appendChild(this.cueDiv);var k=0;switch(b.positionAlign){case"start":k=b.position;break;case"middle":k=b.position-b.size/2;break;case"end":k=b.position-b.size}this.applyStyles(""===b.vertical?{left:this.formatStyle(k,"%"),width:this.formatStyle(b.size,"%")}:{top:this.formatStyle(k,"%"),height:this.formatStyle(b.size,"%")}),this.move=function(a){this.applyStyles({top:this.formatStyle(a.top,"px"),bottom:this.formatStyle(a.bottom,"px"),left:this.formatStyle(a.left,"px"),right:this.formatStyle(a.right,"px"),height:this.formatStyle(a.height,"px"),width:this.formatStyle(a.width,"px")})}}function l(a){var b,c,d,e,f=/MSIE\s8\.0/.test(navigator.userAgent);if(a.div){c=a.div.offsetHeight,d=a.div.offsetWidth,e=a.div.offsetTop;var g=(g=a.div.childNodes)&&(g=g[0])&&g.getClientRects&&g.getClientRects();a=a.div.getBoundingClientRect(),b=g?Math.max(g[0]&&g[0].height||0,a.height/g.length):0}this.left=a.left,this.right=a.right,this.top=a.top||e,this.height=a.height||c,this.bottom=a.bottom||e+(a.height||c),this.width=a.width||d,this.lineHeight=void 0!==b?b:a.lineHeight,f&&!this.lineHeight&&(this.lineHeight=13)}function m(a,b,c,d){function e(a,b){for(var e,f=new l(a),g=1,h=0;h<b.length;h++){for(;a.overlapsOppositeAxis(c,b[h])||a.within(c)&&a.overlapsAny(d);)a.move(b[h]);if(a.within(c))return a;var i=a.intersectPercentage(c);g>i&&(e=new l(a),g=i),a=new l(f)}return e||f}var f=new l(b),g=b.cue,h=i(g),j=[];if(g.snapToLines){var k;switch(g.vertical){case"":j=["+y","-y"],k="height";break;case"rl":j=["+x","-x"],k="width";break;case"lr":j=["-x","+x"],k="width"}var m=f.lineHeight,n=m*Math.round(h),o=c[k]+m,p=j[0];Math.abs(n)>o&&(n=0>n?-1:1,n*=Math.ceil(o/m)*m),0>h&&(n+=""===g.vertical?c.height:c.width,j=j.reverse()),f.move(p,n)}else{var q=f.lineHeight/c.height*100;switch(g.lineAlign){case"middle":h-=q/2;break;case"end":h-=q}switch(g.vertical){case"":b.applyStyles({top:b.formatStyle(h,"%")});break;case"rl":b.applyStyles({left:b.formatStyle(h,"%")});break;case"lr":b.applyStyles({right:b.formatStyle(h,"%")})}j=["+y","-x","+x","-y"],f=new l(b)}var r=e(f,j);b.move(r.toCSSCompatValues(c))}function n(){}var o=Object.create||function(){function a(){}return function(b){if(1!==arguments.length)throw new Error("Object.create shim only accepts one parameter.");return a.prototype=b,new a}}();b.prototype=o(Error.prototype),b.prototype.constructor=b,b.Errors={BadSignature:{code:0,message:"Malformed WebVTT signature."},BadTimeStamp:{code:1,message:"Malformed time stamp."}},d.prototype={set:function(a,b){this.get(a)||""===b||(this.values[a]=b)},get:function(a,b,c){return c?this.has(a)?this.values[a]:b[c]:this.has(a)?this.values[a]:b},has:function(a){return a in this.values},alt:function(a,b,c){for(var d=0;d<c.length;++d)if(b===c[d]){this.set(a,b);break}},integer:function(a,b){/^-?\d+$/.test(b)&&this.set(a,parseInt(b,10))},percent:function(a,b){var c;return(c=b.match(/^([\d]{1,3})(\.[\d]*)?%$/))&&(b=parseFloat(b),
|
24 |
+
b>=0&&100>=b)?(this.set(a,b),!0):!1}};var p={"&":"&","<":"<",">":">","‎":"","‏":""," ":" "},q={c:"span",i:"i",b:"b",u:"u",ruby:"ruby",rt:"rt",v:"span",lang:"span"},r={v:"title",lang:"lang"},s={rt:"ruby"},t=[1470,1472,1475,1478,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1520,1521,1522,1523,1524,1544,1547,1549,1563,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1645,1646,1647,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1765,1766,1774,1775,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1807,1808,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1969,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2e3,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2036,2037,2042,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2074,2084,2088,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2142,2208,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,8207,64285,64287,64288,64289,64290,64291,64292,64293,64294,64295,64296,64298,64299,64300,64301,64302,64303,64304,64305,64306,64307,64308,64309,64310,64312,64313,64314,64315,64316,64318,64320,64321,64323,64324,64326,64327,64328,64329,64330,64331,64332,64333,64334,64335,64336,64337,64338,64339,64340,64341,64342,64343,64344,64345,64346,64347,64348,64349,64350,64351,64352,64353,64354,64355,64356,64357,64358,64359,64360,64361,64362,64363,64364,64365,64366,64367,64368,64369,64370,64371,64372,64373,64374,64375,64376,64377,64378,64379,64380,64381,64382,64383,64384,64385,64386,64387,64388,64389,64390,64391,64392,64393,64394,64395,64396,64397,64398,64399,64400,64401,64402,64403,64404,64405,64406,64407,64408,64409,64410,64411,64412,64413,64414,64415,64416,64417,64418,64419,64420,64421,64422,64423,64424,64425,64426,64427,64428,64429,64430,64431,64432,64433,64434,64435,64436,64437,64438,64439,64440,64441,64442,64443,64444,64445,64446,64447,64448,64449,64467,64468,64469,64470,64471,64472,64473,64474,64475,64476,64477,64478,64479,64480,64481,64482,64483,64484,64485,64486,64487,64488,64489,64490,64491,64492,64493,64494,64495,64496,64497,64498,64499,64500,64501,64502,64503,64504,64505,64506,64507,64508,64509,64510,64511,64512,64513,64514,64515,64516,64517,64518,64519,64520,64521,64522,64523,64524,64525,64526,64527,64528,64529,64530,64531,64532,64533,64534,64535,64536,64537,64538,64539,64540,64541,64542,64543,64544,64545,64546,64547,64548,64549,64550,64551,64552,64553,64554,64555,64556,64557,64558,64559,64560,64561,64562,64563,64564,64565,64566,64567,64568,64569,64570,64571,64572,64573,64574,64575,64576,64577,64578,64579,64580,64581,64582,64583,64584,64585,64586,64587,64588,64589,64590,64591,64592,64593,64594,64595,64596,64597,64598,64599,64600,64601,64602,64603,64604,64605,64606,64607,64608,64609,64610,64611,64612,64613,64614,64615,64616,64617,64618,64619,64620,64621,64622,64623,64624,64625,64626,64627,64628,64629,64630,64631,64632,64633,64634,64635,64636,64637,64638,64639,64640,64641,64642,64643,64644,64645,64646,64647,64648,64649,64650,64651,64652,64653,64654,64655,64656,64657,64658,64659,64660,64661,64662,64663,64664,64665,64666,64667,64668,64669,64670,64671,64672,64673,64674,64675,64676,64677,64678,64679,64680,64681,64682,64683,64684,64685,64686,64687,64688,64689,64690,64691,64692,64693,64694,64695,64696,64697,64698,64699,64700,64701,64702,64703,64704,64705,64706,64707,64708,64709,64710,64711,64712,64713,64714,64715,64716,64717,64718,64719,64720,64721,64722,64723,64724,64725,64726,64727,64728,64729,64730,64731,64732,64733,64734,64735,64736,64737,64738,64739,64740,64741,64742,64743,64744,64745,64746,64747,64748,64749,64750,64751,64752,64753,64754,64755,64756,64757,64758,64759,64760,64761,64762,64763,64764,64765,64766,64767,64768,64769,64770,64771,64772,64773,64774,64775,64776,64777,64778,64779,64780,64781,64782,64783,64784,64785,64786,64787,64788,64789,64790,64791,64792,64793,64794,64795,64796,64797,64798,64799,64800,64801,64802,64803,64804,64805,64806,64807,64808,64809,64810,64811,64812,64813,64814,64815,64816,64817,64818,64819,64820,64821,64822,64823,64824,64825,64826,64827,64828,64829,64848,64849,64850,64851,64852,64853,64854,64855,64856,64857,64858,64859,64860,64861,64862,64863,64864,64865,64866,64867,64868,64869,64870,64871,64872,64873,64874,64875,64876,64877,64878,64879,64880,64881,64882,64883,64884,64885,64886,64887,64888,64889,64890,64891,64892,64893,64894,64895,64896,64897,64898,64899,64900,64901,64902,64903,64904,64905,64906,64907,64908,64909,64910,64911,64914,64915,64916,64917,64918,64919,64920,64921,64922,64923,64924,64925,64926,64927,64928,64929,64930,64931,64932,64933,64934,64935,64936,64937,64938,64939,64940,64941,64942,64943,64944,64945,64946,64947,64948,64949,64950,64951,64952,64953,64954,64955,64956,64957,64958,64959,64960,64961,64962,64963,64964,64965,64966,64967,65008,65009,65010,65011,65012,65013,65014,65015,65016,65017,65018,65019,65020,65136,65137,65138,65139,65140,65142,65143,65144,65145,65146,65147,65148,65149,65150,65151,65152,65153,65154,65155,65156,65157,65158,65159,65160,65161,65162,65163,65164,65165,65166,65167,65168,65169,65170,65171,65172,65173,65174,65175,65176,65177,65178,65179,65180,65181,65182,65183,65184,65185,65186,65187,65188,65189,65190,65191,65192,65193,65194,65195,65196,65197,65198,65199,65200,65201,65202,65203,65204,65205,65206,65207,65208,65209,65210,65211,65212,65213,65214,65215,65216,65217,65218,65219,65220,65221,65222,65223,65224,65225,65226,65227,65228,65229,65230,65231,65232,65233,65234,65235,65236,65237,65238,65239,65240,65241,65242,65243,65244,65245,65246,65247,65248,65249,65250,65251,65252,65253,65254,65255,65256,65257,65258,65259,65260,65261,65262,65263,65264,65265,65266,65267,65268,65269,65270,65271,65272,65273,65274,65275,65276,67584,67585,67586,67587,67588,67589,67592,67594,67595,67596,67597,67598,67599,67600,67601,67602,67603,67604,67605,67606,67607,67608,67609,67610,67611,67612,67613,67614,67615,67616,67617,67618,67619,67620,67621,67622,67623,67624,67625,67626,67627,67628,67629,67630,67631,67632,67633,67634,67635,67636,67637,67639,67640,67644,67647,67648,67649,67650,67651,67652,67653,67654,67655,67656,67657,67658,67659,67660,67661,67662,67663,67664,67665,67666,67667,67668,67669,67671,67672,67673,67674,67675,67676,67677,67678,67679,67840,67841,67842,67843,67844,67845,67846,67847,67848,67849,67850,67851,67852,67853,67854,67855,67856,67857,67858,67859,67860,67861,67862,67863,67864,67865,67866,67867,67872,67873,67874,67875,67876,67877,67878,67879,67880,67881,67882,67883,67884,67885,67886,67887,67888,67889,67890,67891,67892,67893,67894,67895,67896,67897,67903,67968,67969,67970,67971,67972,67973,67974,67975,67976,67977,67978,67979,67980,67981,67982,67983,67984,67985,67986,67987,67988,67989,67990,67991,67992,67993,67994,67995,67996,67997,67998,67999,68e3,68001,68002,68003,68004,68005,68006,68007,68008,68009,68010,68011,68012,68013,68014,68015,68016,68017,68018,68019,68020,68021,68022,68023,68030,68031,68096,68112,68113,68114,68115,68117,68118,68119,68121,68122,68123,68124,68125,68126,68127,68128,68129,68130,68131,68132,68133,68134,68135,68136,68137,68138,68139,68140,68141,68142,68143,68144,68145,68146,68147,68160,68161,68162,68163,68164,68165,68166,68167,68176,68177,68178,68179,68180,68181,68182,68183,68184,68192,68193,68194,68195,68196,68197,68198,68199,68200,68201,68202,68203,68204,68205,68206,68207,68208,68209,68210,68211,68212,68213,68214,68215,68216,68217,68218,68219,68220,68221,68222,68223,68352,68353,68354,68355,68356,68357,68358,68359,68360,68361,68362,68363,68364,68365,68366,68367,68368,68369,68370,68371,68372,68373,68374,68375,68376,68377,68378,68379,68380,68381,68382,68383,68384,68385,68386,68387,68388,68389,68390,68391,68392,68393,68394,68395,68396,68397,68398,68399,68400,68401,68402,68403,68404,68405,68416,68417,68418,68419,68420,68421,68422,68423,68424,68425,68426,68427,68428,68429,68430,68431,68432,68433,68434,68435,68436,68437,68440,68441,68442,68443,68444,68445,68446,68447,68448,68449,68450,68451,68452,68453,68454,68455,68456,68457,68458,68459,68460,68461,68462,68463,68464,68465,68466,68472,68473,68474,68475,68476,68477,68478,68479,68608,68609,68610,68611,68612,68613,68614,68615,68616,68617,68618,68619,68620,68621,68622,68623,68624,68625,68626,68627,68628,68629,68630,68631,68632,68633,68634,68635,68636,68637,68638,68639,68640,68641,68642,68643,68644,68645,68646,68647,68648,68649,68650,68651,68652,68653,68654,68655,68656,68657,68658,68659,68660,68661,68662,68663,68664,68665,68666,68667,68668,68669,68670,68671,68672,68673,68674,68675,68676,68677,68678,68679,68680,126464,126465,126466,126467,126469,126470,126471,126472,126473,126474,126475,126476,126477,126478,126479,126480,126481,126482,126483,126484,126485,126486,126487,126488,126489,126490,126491,126492,126493,126494,126495,126497,126498,126500,126503,126505,126506,126507,126508,126509,126510,126511,126512,126513,126514,126516,126517,126518,126519,126521,126523,126530,126535,126537,126539,126541,126542,126543,126545,126546,126548,126551,126553,126555,126557,126559,126561,126562,126564,126567,126568,126569,126570,126572,126573,126574,126575,126576,126577,126578,126580,126581,126582,126583,126585,126586,126587,126588,126590,126592,126593,126594,126595,126596,126597,126598,126599,126600,126601,126603,126604,126605,126606,126607,126608,126609,126610,126611,126612,126613,126614,126615,126616,126617,126618,126619,126625,126626,126627,126629,126630,126631,126632,126633,126635,126636,126637,126638,126639,126640,126641,126642,126643,126644,126645,126646,126647,126648,126649,126650,126651,1114109];j.prototype.applyStyles=function(a,b){b=b||this.div;for(var c in a)a.hasOwnProperty(c)&&(b.style[c]=a[c])},j.prototype.formatStyle=function(a,b){return 0===a?0:a+b},k.prototype=o(j.prototype),k.prototype.constructor=k,l.prototype.move=function(a,b){switch(b=void 0!==b?b:this.lineHeight,a){case"+x":this.left+=b,this.right+=b;break;case"-x":this.left-=b,this.right-=b;break;case"+y":this.top+=b,this.bottom+=b;break;case"-y":this.top-=b,this.bottom-=b}},l.prototype.overlaps=function(a){return this.left<a.right&&this.right>a.left&&this.top<a.bottom&&this.bottom>a.top},l.prototype.overlapsAny=function(a){for(var b=0;b<a.length;b++)if(this.overlaps(a[b]))return!0;return!1},l.prototype.within=function(a){return this.top>=a.top&&this.bottom<=a.bottom&&this.left>=a.left&&this.right<=a.right},l.prototype.overlapsOppositeAxis=function(a,b){switch(b){case"+x":return this.left<a.left;case"-x":return this.right>a.right;case"+y":return this.top<a.top;case"-y":return this.bottom>a.bottom}},l.prototype.intersectPercentage=function(a){var b=Math.max(0,Math.min(this.right,a.right)-Math.max(this.left,a.left)),c=Math.max(0,Math.min(this.bottom,a.bottom)-Math.max(this.top,a.top)),d=b*c;return d/(this.height*this.width)},l.prototype.toCSSCompatValues=function(a){return{top:this.top-a.top,bottom:a.bottom-this.bottom,left:this.left-a.left,right:a.right-this.right,height:this.height,width:this.width}},l.getSimpleBoxPosition=function(a){var b=a.div?a.div.offsetHeight:a.tagName?a.offsetHeight:0,c=a.div?a.div.offsetWidth:a.tagName?a.offsetWidth:0,d=a.div?a.div.offsetTop:a.tagName?a.offsetTop:0;a=a.div?a.div.getBoundingClientRect():a.tagName?a.getBoundingClientRect():a;var e={left:a.left,right:a.right,top:a.top||d,height:a.height||b,bottom:a.bottom||d+(a.height||b),width:a.width||c};return e},n.StringDecoder=function(){return{decode:function(a){if(!a)return"";if("string"!=typeof a)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(a))}}},n.convertCueToDOMTree=function(a,b){return a&&b?g(a,b):null};var u=.05,v="sans-serif",w="1.5%";n.processCues=function(a,b,c){function d(a){for(var b=0;b<a.length;b++)if(a[b].hasBeenReset||!a[b].displayState)return!0;return!1}if(!a||!b||!c)return null;for(;c.firstChild;)c.removeChild(c.firstChild);var e=a.document.createElement("div");if(e.style.position="absolute",e.style.left="0",e.style.right="0",e.style.top="0",e.style.bottom="0",e.style.margin=w,c.appendChild(e),d(b)){var f=[],g=l.getSimpleBoxPosition(e),h=Math.round(g.height*u*100)/100,i={font:h+"px "+v};!function(){for(var c,d,h=0;h<b.length;h++)d=b[h],c=new k(a,d,i),e.appendChild(c.div),m(a,c,g,f),d.displayState=c.div,f.push(l.getSimpleBoxPosition(c))}()}else for(var j=0;j<b.length;j++)e.appendChild(b[j].displayState)},n.Parser=function(a,b,c){c||(c=b,b={}),b||(b={}),this.window=a,this.vttjs=b,this.state="INITIAL",this.buffer="",this.decoder=c||new TextDecoder("utf8"),this.regionList=[]},n.Parser.prototype={reportOrThrowError:function(a){if(!(a instanceof b))throw a;this.onparsingerror&&this.onparsingerror(a)},parse:function(a){function c(){for(var a=i.buffer,b=0;b<a.length&&"\r"!==a[b]&&"\n"!==a[b];)++b;var c=a.substr(0,b);return"\r"===a[b]&&++b,"\n"===a[b]&&++b,i.buffer=a.substr(b),c}function g(a){var b=new d;if(e(a,function(a,c){switch(a){case"id":b.set(a,c);break;case"width":b.percent(a,c);break;case"lines":b.integer(a,c);break;case"regionanchor":case"viewportanchor":var e=c.split(",");if(2!==e.length)break;var f=new d;if(f.percent("x",e[0]),f.percent("y",e[1]),!f.has("x")||!f.has("y"))break;b.set(a+"X",f.get("x")),b.set(a+"Y",f.get("y"));break;case"scroll":b.alt(a,c,["up"])}},/=/,/\s/),b.has("id")){var c=new(i.vttjs.VTTRegion||i.window.VTTRegion);c.width=b.get("width",100),c.lines=b.get("lines",3),c.regionAnchorX=b.get("regionanchorX",0),c.regionAnchorY=b.get("regionanchorY",100),c.viewportAnchorX=b.get("viewportanchorX",0),c.viewportAnchorY=b.get("viewportanchorY",100),c.scroll=b.get("scroll",""),i.onregion&&i.onregion(c),i.regionList.push({id:b.get("id"),region:c})}}function h(a){e(a,function(a,b){switch(a){case"Region":g(b)}},/:/)}var i=this;a&&(i.buffer+=i.decoder.decode(a,{stream:!0}));try{var j;if("INITIAL"===i.state){if(!/\r\n|\n/.test(i.buffer))return this;j=c();var k=j.match(/^WEBVTT([ \t].*)?$/);if(!k||!k[0])throw new b(b.Errors.BadSignature);i.state="HEADER"}for(var l=!1;i.buffer;){if(!/\r\n|\n/.test(i.buffer))return this;switch(l?l=!1:j=c(),i.state){case"HEADER":/:/.test(j)?h(j):j||(i.state="ID");continue;case"NOTE":j||(i.state="ID");continue;case"ID":if(/^NOTE($|[ \t])/.test(j)){i.state="NOTE";break}if(!j)continue;if(i.cue=new(i.vttjs.VTTCue||i.window.VTTCue)(0,0,""),i.state="CUE",-1===j.indexOf("-->")){i.cue.id=j;continue}case"CUE":try{f(j,i.cue,i.regionList)}catch(m){i.reportOrThrowError(m),i.cue=null,i.state="BADCUE";continue}i.state="CUETEXT";continue;case"CUETEXT":var n=-1!==j.indexOf("-->");if(!j||n&&(l=!0)){i.oncue&&i.oncue(i.cue),i.cue=null,i.state="ID";continue}i.cue.text&&(i.cue.text+="\n"),i.cue.text+=j;continue;case"BADCUE":j||(i.state="ID");continue}}}catch(m){i.reportOrThrowError(m),"CUETEXT"===i.state&&i.cue&&i.oncue&&i.oncue(i.cue),i.cue=null,i.state="INITIAL"===i.state?"BADWEBVTT":"BADCUE"}return this},flush:function(){var a=this;try{if(a.buffer+=a.decoder.decode(),(a.cue||"HEADER"===a.state)&&(a.buffer+="\n\n",a.parse()),"INITIAL"===a.state)throw new b(b.Errors.BadSignature)}catch(c){a.reportOrThrowError(c)}return a.onflush&&a.onflush(),this}},a.WebVTT=n}(this,this.vttjs||{});
|
25 |
+
//# sourceMappingURL=video.min.js.map
|