mirror of
https://github.com/videojs/video.js.git
synced 2025-02-14 12:20:48 +02:00
@heff replaced Closure Compiler with Uglify for minification. closes #1940
This commit is contained in:
parent
93ea3cee1c
commit
9dea6bed33
@ -4,6 +4,7 @@ CHANGELOG
|
||||
## HEAD (Unreleased)
|
||||
* @mmcc updated the slider to allow for vertical orientation ([view](https://github.com/videojs/video.js/pull/1816))
|
||||
* @dmlap removed an ie6 hack for flash object embedding ([view](https://github.com/videojs/video.js/pull/1946))
|
||||
* @heff replaced Closure Compiler with Uglify for minification ([view](https://github.com/videojs/video.js/pull/1940))
|
||||
|
||||
--------------------
|
||||
|
||||
|
73
Gruntfile.js
73
Gruntfile.js
@ -1,5 +1,5 @@
|
||||
module.exports = function(grunt) {
|
||||
var pkg, version, verParts;
|
||||
var pkg, version, verParts, license, licenseNoVtt;
|
||||
|
||||
pkg = grunt.file.readJSON('package.json');
|
||||
|
||||
@ -13,6 +13,21 @@ module.exports = function(grunt) {
|
||||
version.majorMinor = version.major + '.' + version.minor;
|
||||
grunt.vjsVersion = version;
|
||||
|
||||
licenseNoVtt = '/**\n'+
|
||||
' * @license\n'+
|
||||
' * Video.js '+version.full+' <http://videojs.com/>\n'+
|
||||
' * <%= pkg.copyright %>\n'+
|
||||
' * Available under Apache License Version 2.0\n'+
|
||||
' * <https://github.com/videojs/video.js/blob/master/LICENSE>\n'+
|
||||
' */\n';
|
||||
|
||||
license = licenseNoVtt.slice(0, -4) +
|
||||
' * \n'+
|
||||
' * Includes vtt.js <https://github.com/mozilla/vtt.js>\n'+
|
||||
' * Available under Apache License Version 2.0\n'+
|
||||
' * <https://github.com/mozilla/vtt.js/blob/master/LICENSE>\n'+
|
||||
' */\n';
|
||||
|
||||
// loading predefined source order from source-loader.js
|
||||
// trust me, this is the easist way to do it so far
|
||||
/*jshint undef:false, evil:true */
|
||||
@ -43,16 +58,32 @@ module.exports = function(grunt) {
|
||||
}
|
||||
}
|
||||
},
|
||||
minify: {
|
||||
source:{
|
||||
src: ['build/files/combined.video.js', 'build/compiler/goog.base.js', 'src/js/exports.js'],
|
||||
externs: ['src/js/player.externs.js', 'src/js/media/flash.externs.js'],
|
||||
dest: 'build/files/minified.video.js'
|
||||
uglify: {
|
||||
options: {
|
||||
sourceMap: true,
|
||||
preserveComments: 'some',
|
||||
mangle: true,
|
||||
compress: {
|
||||
sequences: true,
|
||||
dead_code: true,
|
||||
conditionals: true,
|
||||
booleans: true,
|
||||
unused: true,
|
||||
if_return: true,
|
||||
join_vars: true,
|
||||
drop_console: true
|
||||
}
|
||||
},
|
||||
source: {
|
||||
files: {
|
||||
'build/files/minified.video.js': 'build/files/combined.video.js',
|
||||
'build/files/minified.video.novtt.js': 'build/files/combined.video.novtt.js'
|
||||
}
|
||||
},
|
||||
tests: {
|
||||
src: ['build/files/combined.video.js', 'build/compiler/goog.base.js', 'src/js/exports.js', 'test/unit/*.js'],
|
||||
externs: ['src/js/player.externs.js', 'src/js/media/flash.externs.js', 'test/qunit-externs.js', 'test/sinon-externs.js'],
|
||||
dest: 'build/files/test.minified.video.js'
|
||||
files: {
|
||||
'build/files/test.minified.video.js': ['build/files/combined.video.js', 'test/unit/*.js']
|
||||
}
|
||||
}
|
||||
},
|
||||
dist: {},
|
||||
@ -293,14 +324,25 @@ module.exports = function(grunt) {
|
||||
}
|
||||
},
|
||||
usebanner: {
|
||||
options: {
|
||||
position: 'top',
|
||||
banner: license,
|
||||
linebreak: true
|
||||
},
|
||||
dist: {
|
||||
options: {
|
||||
position: 'top',
|
||||
banner: '/*! Video.js v' + version.full + ' <%= pkg.copyright %> */ ',
|
||||
linebreak: true
|
||||
banner: license
|
||||
},
|
||||
files: {
|
||||
src: [ 'build/files/minified.video.js']
|
||||
src: [ 'build/files/combined.video.js']
|
||||
}
|
||||
},
|
||||
novtt: {
|
||||
options: {
|
||||
banner: licenseNoVtt
|
||||
},
|
||||
files: {
|
||||
src: [ 'build/files/combined.video.novtt.js']
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -365,15 +407,16 @@ module.exports = function(grunt) {
|
||||
grunt.loadNpmTasks('grunt-fastly');
|
||||
grunt.loadNpmTasks('grunt-github-releaser');
|
||||
grunt.loadNpmTasks('grunt-aws-s3');
|
||||
grunt.loadNpmTasks('grunt-contrib-uglify');
|
||||
|
||||
// grunt.loadTasks('./docs/tasks/');
|
||||
// grunt.loadTasks('../videojs-doc-generator/tasks/');
|
||||
|
||||
grunt.registerTask('pretask', ['jshint', 'less', 'vjslanguages', 'build', 'minify', 'vttjs', 'usebanner']);
|
||||
grunt.registerTask('pretask', ['jshint', 'less', 'vjslanguages', 'build', 'usebanner', 'uglify']);
|
||||
// Default task.
|
||||
grunt.registerTask('default', ['pretask', 'dist']);
|
||||
// Development watch task
|
||||
grunt.registerTask('dev', ['jshint', 'less', 'vjslanguages', 'build', 'qunit:source']);
|
||||
grunt.registerTask('dev', ['jshint', 'less', 'vjslanguages', 'build', 'usebanner', 'qunit:source']);
|
||||
grunt.registerTask('test-qunit', ['pretask', 'qunit']);
|
||||
|
||||
grunt.registerTask('dist', 'Creating distribution', ['dist-copy', 'zip:dist']);
|
||||
|
@ -1,202 +0,0 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
@ -1,292 +0,0 @@
|
||||
/*
|
||||
* Copyright 2009 The Closure Compiler Authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
//
|
||||
// Contents
|
||||
//
|
||||
|
||||
The Closure Compiler performs checking, instrumentation, and
|
||||
optimizations on JavaScript code. The purpose of this README is to
|
||||
explain how to build and run the Closure Compiler.
|
||||
|
||||
The Closure Compiler requires Java 6 or higher.
|
||||
http://www.java.com/
|
||||
|
||||
|
||||
//
|
||||
// Building The Closure Compiler
|
||||
//
|
||||
|
||||
There are three ways to get a Closure Compiler executable.
|
||||
|
||||
1) Use one we built for you.
|
||||
|
||||
Pre-built Closure binaries can be found at
|
||||
http://code.google.com/p/closure-compiler/downloads/list
|
||||
|
||||
|
||||
2) Check out the source and build it with Apache Ant.
|
||||
|
||||
First, check out the full source tree of the Closure Compiler. There
|
||||
are instructions on how to do this at the project site.
|
||||
http://code.google.com/p/closure-compiler/source/checkout
|
||||
|
||||
Apache Ant is a cross-platform build tool.
|
||||
http://ant.apache.org/
|
||||
|
||||
At the root of the source tree, there is an Ant file named
|
||||
build.xml. To use it, navigate to the same directory and type the
|
||||
command
|
||||
|
||||
ant jar
|
||||
|
||||
This will produce a jar file called "build/compiler.jar".
|
||||
|
||||
|
||||
3) Check out the source and build it with Eclipse.
|
||||
|
||||
Eclipse is a cross-platform IDE.
|
||||
http://www.eclipse.org/
|
||||
|
||||
Under Eclipse's File menu, click "New > Project ..." and create a
|
||||
"Java Project." You will see an options screen. Give the project a
|
||||
name, select "Create project from existing source," and choose the
|
||||
root of the checked-out source tree as the existing directory. Verify
|
||||
that you are using JRE version 6 or higher.
|
||||
|
||||
Eclipse can use the build.xml file to discover rules. When you
|
||||
navigate to the build.xml file, you will see all the build rules in
|
||||
the "Outline" pane. Run the "jar" rule to build the compiler in
|
||||
build/compiler.jar.
|
||||
|
||||
|
||||
//
|
||||
// Running The Closure Compiler
|
||||
//
|
||||
|
||||
Once you have the jar binary, running the Closure Compiler is straightforward.
|
||||
|
||||
On the command line, type
|
||||
|
||||
java -jar compiler.jar
|
||||
|
||||
This starts the compiler in interactive mode. Type
|
||||
|
||||
var x = 17 + 25;
|
||||
|
||||
then hit "Enter", then hit "Ctrl-Z" (on Windows) or "Ctrl-D" (on Mac or Linux)
|
||||
and "Enter" again. The Compiler will respond:
|
||||
|
||||
var x=42;
|
||||
|
||||
The Closure Compiler has many options for reading input from a file,
|
||||
writing output to a file, checking your code, and running
|
||||
optimizations. To learn more, type
|
||||
|
||||
java -jar compiler.jar --help
|
||||
|
||||
You can read more detailed documentation about the many flags at
|
||||
http://code.google.com/closure/compiler/docs/gettingstarted_app.html
|
||||
|
||||
|
||||
//
|
||||
// Compiling Multiple Scripts
|
||||
//
|
||||
|
||||
If you have multiple scripts, you should compile them all together with
|
||||
one compile command.
|
||||
|
||||
java -jar compiler.jar --js=in1.js --js=in2.js ... --js_output_file=out.js
|
||||
|
||||
The Closure Compiler will concatenate the files in the order they're
|
||||
passed at the command line.
|
||||
|
||||
If you need to compile many, many scripts together, you may start to
|
||||
run into problems with managing dependencies between scripts. You
|
||||
should check out the Closure Library. It contains functions for
|
||||
enforcing dependencies between scripts, and a tool called calcdeps.py
|
||||
that knows how to give scripts to the Closure Compiler in the right
|
||||
order.
|
||||
|
||||
http://code.google.com/p/closure-library/
|
||||
|
||||
//
|
||||
// Licensing
|
||||
//
|
||||
|
||||
Unless otherwise stated, all source files are licensed under
|
||||
the Apache License, Version 2.0.
|
||||
|
||||
|
||||
-----
|
||||
Code under:
|
||||
src/com/google/javascript/rhino
|
||||
test/com/google/javascript/rhino
|
||||
|
||||
URL: http://www.mozilla.org/rhino
|
||||
Version: 1.5R3, with heavy modifications
|
||||
License: Netscape Public License and MPL / GPL dual license
|
||||
|
||||
Description: A partial copy of Mozilla Rhino. Mozilla Rhino is an
|
||||
implementation of JavaScript for the JVM. The JavaScript parser and
|
||||
the parse tree data structures were extracted and modified
|
||||
significantly for use by Google's JavaScript compiler.
|
||||
|
||||
Local Modifications: The packages have been renamespaced. All code not
|
||||
relevant to parsing has been removed. A JsDoc parser and static typing
|
||||
system have been added.
|
||||
|
||||
|
||||
-----
|
||||
Code in:
|
||||
lib/rhino
|
||||
|
||||
Rhino
|
||||
URL: http://www.mozilla.org/rhino
|
||||
Version: Trunk
|
||||
License: Netscape Public License and MPL / GPL dual license
|
||||
|
||||
Description: Mozilla Rhino is an implementation of JavaScript for the JVM.
|
||||
|
||||
Local Modifications: Minor changes to parsing JSDoc that usually get pushed
|
||||
up-stream to Rhino trunk.
|
||||
|
||||
|
||||
-----
|
||||
Code in:
|
||||
lib/args4j.jar
|
||||
|
||||
Args4j
|
||||
URL: https://args4j.dev.java.net/
|
||||
Version: 2.0.16
|
||||
License: MIT
|
||||
|
||||
Description:
|
||||
args4j is a small Java class library that makes it easy to parse command line
|
||||
options/arguments in your CUI application.
|
||||
|
||||
Local Modifications: None.
|
||||
|
||||
|
||||
-----
|
||||
Code in:
|
||||
lib/guava.jar
|
||||
|
||||
Guava Libraries
|
||||
URL: http://code.google.com/p/guava-libraries/
|
||||
Version: 13.0.1
|
||||
License: Apache License 2.0
|
||||
|
||||
Description: Google's core Java libraries.
|
||||
|
||||
Local Modifications: None.
|
||||
|
||||
|
||||
-----
|
||||
Code in:
|
||||
lib/jsr305.jar
|
||||
|
||||
Annotations for software defect detection
|
||||
URL: http://code.google.com/p/jsr-305/
|
||||
Version: svn revision 47
|
||||
License: BSD License
|
||||
|
||||
Description: Annotations for software defect detection.
|
||||
|
||||
Local Modifications: None.
|
||||
|
||||
|
||||
-----
|
||||
Code in:
|
||||
lib/jarjar.jar
|
||||
|
||||
Jar Jar Links
|
||||
URL: http://jarjar.googlecode.com/
|
||||
Version: 1.1
|
||||
License: Apache License 2.0
|
||||
|
||||
Description:
|
||||
A utility for repackaging Java libraries.
|
||||
|
||||
Local Modifications: None.
|
||||
|
||||
|
||||
----
|
||||
Code in:
|
||||
lib/junit.jar
|
||||
|
||||
JUnit
|
||||
URL: http://sourceforge.net/projects/junit/
|
||||
Version: 4.10
|
||||
License: Common Public License 1.0
|
||||
|
||||
Description: A framework for writing and running automated tests in Java.
|
||||
|
||||
Local Modifications: None.
|
||||
|
||||
|
||||
---
|
||||
Code in:
|
||||
lib/protobuf-java.jar
|
||||
|
||||
Protocol Buffers
|
||||
URL: http://code.google.com/p/protobuf/
|
||||
Version: 2.4.1
|
||||
License: New BSD License
|
||||
|
||||
Description: Supporting libraries for protocol buffers,
|
||||
an encoding of structured data.
|
||||
|
||||
Local Modifications: None
|
||||
|
||||
|
||||
---
|
||||
Code in:
|
||||
lib/ant.jar
|
||||
lib/ant-launcher.jar
|
||||
|
||||
URL: http://ant.apache.org/bindownload.cgi
|
||||
Version: 1.8.1
|
||||
License: Apache License 2.0
|
||||
Description:
|
||||
Ant is a Java based build tool. In theory it is kind of like "make"
|
||||
without make's wrinkles and with the full portability of pure java code.
|
||||
|
||||
Local Modifications: None
|
||||
|
||||
|
||||
---
|
||||
Code in:
|
||||
lib/json.jar
|
||||
URL: http://json.org/java/index.html
|
||||
Version: JSON version 20090211
|
||||
License: MIT license
|
||||
Description:
|
||||
JSON is a set of java files for use in transmitting data in JSON format.
|
||||
|
||||
Local Modifications: None
|
||||
|
||||
---
|
||||
Code in:
|
||||
tools/maven-ant-tasks-2.1.3.jar
|
||||
URL: http://maven.apache.org
|
||||
Version 2.1.3
|
||||
License: Apache License 2.0
|
||||
Description:
|
||||
Maven Ant tasks are used to manage dependencies and to install/deploy to
|
||||
maven repositories.
|
||||
|
||||
Local Modifications: None
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -2,7 +2,8 @@
|
||||
"name": "video.js",
|
||||
"description": "An HTML5 and Flash video player with a common API and skin for both.",
|
||||
"version": "4.12.4",
|
||||
"copyright": "Copyright 2014 Brightcove, Inc. https://github.com/videojs/video.js/blob/master/LICENSE",
|
||||
"copyright": "Copyright Brightcove, Inc. <https://www.brightcove.com/>",
|
||||
"license": "Apache-2.0",
|
||||
"keywords": [
|
||||
"videojs",
|
||||
"html5",
|
||||
@ -40,6 +41,7 @@
|
||||
"grunt-contrib-jshint": "~0.4.3",
|
||||
"grunt-contrib-less": "~0.6.4",
|
||||
"grunt-contrib-qunit": "~0.2.1",
|
||||
"grunt-contrib-uglify": "^0.8.0",
|
||||
"grunt-contrib-watch": "~0.1.4",
|
||||
"grunt-fastly": "^0.1.3",
|
||||
"grunt-github-releaser": "^0.1.17",
|
||||
|
@ -163,7 +163,7 @@ vjs.addLanguage = function(code, data){
|
||||
*/
|
||||
vjs.players = {};
|
||||
|
||||
/*!
|
||||
/**
|
||||
* Custom Universal Module Definition (UMD)
|
||||
*
|
||||
* Video.js will never be a non-browser lib so we can simplify UMD a bunch and
|
||||
|
@ -1,235 +0,0 @@
|
||||
/**
|
||||
* @fileoverview Exports for Video.js.
|
||||
* Exports are publicly available variables.
|
||||
* All other variables (including function names) will probably
|
||||
* be renamed by closure compiler.
|
||||
*/
|
||||
|
||||
/**
|
||||
* vjs (internal only) = videojs = _V_ (external only)
|
||||
*
|
||||
* vjs is the same as the goog var in Closure Library. It holds all variables
|
||||
* used in Video.js development. Closure compiler will rename all variables,
|
||||
* including class prototype functions, except those specifically
|
||||
* exported (eports.js). Don't assume any function you can use in Video.js
|
||||
* development will be available on window.videojs for use with other js.
|
||||
*
|
||||
* For example, vjs.trim is an internal function and will be renamed by compiler
|
||||
* to something like 'a.b', or actually more likely 'a' removing it from
|
||||
* a parent object.
|
||||
*
|
||||
* videojs is a var that helps bridge between internal and external development.
|
||||
* Avoid using it over vjs when developing the Video.js core.
|
||||
*
|
||||
* _V_ is only external. It's just cute and short(er). Like jQuery === $.
|
||||
* Also because it's nice having a different var for internal (vjs) vs.
|
||||
* external (_V_) because it makes it clearer what context we're in.
|
||||
*/
|
||||
goog.exportSymbol('videojs', vjs);
|
||||
goog.exportSymbol('_V_', vjs);
|
||||
|
||||
goog.exportSymbol('videojs.options', vjs.options);
|
||||
goog.exportSymbol('videojs.players', vjs.players);
|
||||
goog.exportSymbol('videojs.TOUCH_ENABLED', vjs.TOUCH_ENABLED);
|
||||
|
||||
// Allow external components to use global cache
|
||||
goog.exportSymbol('videojs.cache', vjs.cache);
|
||||
|
||||
// goog.exportSymbol('videojs.CoreObject', vjs.CoreObject);
|
||||
// goog.exportProperty(vjs.CoreObject, 'create', vjs.CoreObject.create);
|
||||
|
||||
goog.exportSymbol('videojs.Component', vjs.Component);
|
||||
// already in default externs: id, name
|
||||
goog.exportProperty(vjs.Component.prototype, 'player', vjs.Component.prototype.player);
|
||||
goog.exportProperty(vjs.Component.prototype, 'options', vjs.Component.prototype.options);
|
||||
goog.exportProperty(vjs.Component.prototype, 'init', vjs.Component.prototype.init);
|
||||
goog.exportProperty(vjs.Component.prototype, 'dispose', vjs.Component.prototype.dispose);
|
||||
goog.exportProperty(vjs.Component.prototype, 'createEl', vjs.Component.prototype.createEl);
|
||||
goog.exportProperty(vjs.Component.prototype, 'contentEl', vjs.Component.prototype.contentEl);
|
||||
goog.exportProperty(vjs.Component.prototype, 'el', vjs.Component.prototype.el);
|
||||
goog.exportProperty(vjs.Component.prototype, 'addChild', vjs.Component.prototype.addChild);
|
||||
goog.exportProperty(vjs.Component.prototype, 'getChild', vjs.Component.prototype.getChild);
|
||||
goog.exportProperty(vjs.Component.prototype, 'getChildById', vjs.Component.prototype.getChildById);
|
||||
goog.exportProperty(vjs.Component.prototype, 'children', vjs.Component.prototype.children);
|
||||
goog.exportProperty(vjs.Component.prototype, 'initChildren', vjs.Component.prototype.initChildren);
|
||||
goog.exportProperty(vjs.Component.prototype, 'removeChild', vjs.Component.prototype.removeChild);
|
||||
goog.exportProperty(vjs.Component.prototype, 'on', vjs.Component.prototype.on);
|
||||
goog.exportProperty(vjs.Component.prototype, 'off', vjs.Component.prototype.off);
|
||||
goog.exportProperty(vjs.Component.prototype, 'one', vjs.Component.prototype.one);
|
||||
goog.exportProperty(vjs.Component.prototype, 'trigger', vjs.Component.prototype.trigger);
|
||||
goog.exportProperty(vjs.Component.prototype, 'triggerReady', vjs.Component.prototype.triggerReady);
|
||||
goog.exportProperty(vjs.Component.prototype, 'show', vjs.Component.prototype.show);
|
||||
goog.exportProperty(vjs.Component.prototype, 'hide', vjs.Component.prototype.hide);
|
||||
goog.exportProperty(vjs.Component.prototype, 'width', vjs.Component.prototype.width);
|
||||
goog.exportProperty(vjs.Component.prototype, 'height', vjs.Component.prototype.height);
|
||||
goog.exportProperty(vjs.Component.prototype, 'dimensions', vjs.Component.prototype.dimensions);
|
||||
goog.exportProperty(vjs.Component.prototype, 'ready', vjs.Component.prototype.ready);
|
||||
goog.exportProperty(vjs.Component.prototype, 'addClass', vjs.Component.prototype.addClass);
|
||||
goog.exportProperty(vjs.Component.prototype, 'removeClass', vjs.Component.prototype.removeClass);
|
||||
goog.exportProperty(vjs.Component.prototype, 'hasClass', vjs.Component.prototype.hasClass);
|
||||
goog.exportProperty(vjs.Component.prototype, 'buildCSSClass', vjs.Component.prototype.buildCSSClass);
|
||||
goog.exportProperty(vjs.Component.prototype, 'localize', vjs.Component.prototype.localize);
|
||||
goog.exportProperty(vjs.Component.prototype, 'setInterval', vjs.Component.prototype.setInterval);
|
||||
goog.exportProperty(vjs.Component.prototype, 'setTimeout', vjs.Component.prototype.setTimeout);
|
||||
|
||||
goog.exportSymbol('videojs.EventEmitter', vjs.EventEmitter);
|
||||
goog.exportProperty(vjs.EventEmitter.prototype, 'on', vjs.EventEmitter.prototype.on);
|
||||
goog.exportProperty(vjs.EventEmitter.prototype, 'addEventListener', vjs.EventEmitter.prototype.addEventListener);
|
||||
goog.exportProperty(vjs.EventEmitter.prototype, 'off', vjs.EventEmitter.prototype.off);
|
||||
goog.exportProperty(vjs.EventEmitter.prototype, 'removeEventListener', vjs.EventEmitter.prototype.removeEventListener);
|
||||
goog.exportProperty(vjs.EventEmitter.prototype, 'one', vjs.EventEmitter.prototype.one);
|
||||
goog.exportProperty(vjs.EventEmitter.prototype, 'trigger', vjs.EventEmitter.prototype.trigger);
|
||||
goog.exportProperty(vjs.EventEmitter.prototype, 'dispatchEvent', vjs.EventEmitter.prototype.dispatchEvent);
|
||||
|
||||
|
||||
// Need to export ended to ensure it's not removed by CC, since it's not used internally
|
||||
goog.exportProperty(vjs.Player.prototype, 'ended', vjs.Player.prototype.ended);
|
||||
goog.exportProperty(vjs.Player.prototype, 'enterFullWindow', vjs.Player.prototype.enterFullWindow);
|
||||
goog.exportProperty(vjs.Player.prototype, 'exitFullWindow', vjs.Player.prototype.exitFullWindow);
|
||||
goog.exportProperty(vjs.Player.prototype, 'preload', vjs.Player.prototype.preload);
|
||||
goog.exportProperty(vjs.Player.prototype, 'remainingTime', vjs.Player.prototype.remainingTime);
|
||||
goog.exportProperty(vjs.Player.prototype, 'supportsFullScreen', vjs.Player.prototype.supportsFullScreen);
|
||||
goog.exportProperty(vjs.Player.prototype, 'currentType', vjs.Player.prototype.currentType);
|
||||
goog.exportProperty(vjs.Player.prototype, 'requestFullScreen', vjs.Player.prototype.requestFullScreen);
|
||||
goog.exportProperty(vjs.Player.prototype, 'requestFullscreen', vjs.Player.prototype.requestFullscreen);
|
||||
goog.exportProperty(vjs.Player.prototype, 'cancelFullScreen', vjs.Player.prototype.cancelFullScreen);
|
||||
goog.exportProperty(vjs.Player.prototype, 'exitFullscreen', vjs.Player.prototype.exitFullscreen);
|
||||
goog.exportProperty(vjs.Player.prototype, 'isFullScreen', vjs.Player.prototype.isFullScreen);
|
||||
goog.exportProperty(vjs.Player.prototype, 'isFullscreen', vjs.Player.prototype.isFullscreen);
|
||||
goog.exportProperty(vjs.Player.prototype, 'textTracks', vjs.Player.prototype.textTracks);
|
||||
goog.exportProperty(vjs.Player.prototype, 'remoteTextTracks', vjs.Player.prototype.remoteTextTracks);
|
||||
goog.exportProperty(vjs.Player.prototype, 'addTextTrack', vjs.Player.prototype.addTextTrack);
|
||||
goog.exportProperty(vjs.Player.prototype, 'addRemoteTextTrack', vjs.Player.prototype.addRemoteTextTrack);
|
||||
goog.exportProperty(vjs.Player.prototype, 'removeRemoteTextTrack', vjs.Player.prototype.removeRemoteTextTrack);
|
||||
|
||||
goog.exportSymbol('videojs.MediaLoader', vjs.MediaLoader);
|
||||
goog.exportSymbol('videojs.TextTrackDisplay', vjs.TextTrackDisplay);
|
||||
|
||||
goog.exportSymbol('videojs.ControlBar', vjs.ControlBar);
|
||||
goog.exportSymbol('videojs.Button', vjs.Button);
|
||||
goog.exportSymbol('videojs.PlayToggle', vjs.PlayToggle);
|
||||
goog.exportSymbol('videojs.FullscreenToggle', vjs.FullscreenToggle);
|
||||
goog.exportSymbol('videojs.BigPlayButton', vjs.BigPlayButton);
|
||||
goog.exportSymbol('videojs.LoadingSpinner', vjs.LoadingSpinner);
|
||||
goog.exportSymbol('videojs.CurrentTimeDisplay', vjs.CurrentTimeDisplay);
|
||||
goog.exportSymbol('videojs.DurationDisplay', vjs.DurationDisplay);
|
||||
goog.exportSymbol('videojs.TimeDivider', vjs.TimeDivider);
|
||||
goog.exportSymbol('videojs.RemainingTimeDisplay', vjs.RemainingTimeDisplay);
|
||||
goog.exportSymbol('videojs.LiveDisplay', vjs.LiveDisplay);
|
||||
goog.exportSymbol('videojs.ErrorDisplay', vjs.ErrorDisplay);
|
||||
goog.exportSymbol('videojs.Slider', vjs.Slider);
|
||||
goog.exportSymbol('videojs.ProgressControl', vjs.ProgressControl);
|
||||
goog.exportSymbol('videojs.SeekBar', vjs.SeekBar);
|
||||
goog.exportSymbol('videojs.LoadProgressBar', vjs.LoadProgressBar);
|
||||
goog.exportSymbol('videojs.PlayProgressBar', vjs.PlayProgressBar);
|
||||
goog.exportSymbol('videojs.SeekHandle', vjs.SeekHandle);
|
||||
goog.exportSymbol('videojs.VolumeControl', vjs.VolumeControl);
|
||||
goog.exportSymbol('videojs.VolumeBar', vjs.VolumeBar);
|
||||
goog.exportSymbol('videojs.VolumeLevel', vjs.VolumeLevel);
|
||||
goog.exportSymbol('videojs.VolumeMenuButton', vjs.VolumeMenuButton);
|
||||
goog.exportSymbol('videojs.VolumeHandle', vjs.VolumeHandle);
|
||||
goog.exportSymbol('videojs.MuteToggle', vjs.MuteToggle);
|
||||
goog.exportSymbol('videojs.PosterImage', vjs.PosterImage);
|
||||
goog.exportSymbol('videojs.Menu', vjs.Menu);
|
||||
goog.exportSymbol('videojs.MenuItem', vjs.MenuItem);
|
||||
goog.exportSymbol('videojs.MenuButton', vjs.MenuButton);
|
||||
goog.exportSymbol('videojs.PlaybackRateMenuButton', vjs.PlaybackRateMenuButton);
|
||||
goog.exportSymbol('videojs.ChaptersTrackMenuItem', vjs.ChaptersTrackMenuItem);
|
||||
goog.exportSymbol('videojs.TextTrackButton', vjs.TextTrackButton);
|
||||
goog.exportSymbol('videojs.TextTrackMenuItem', vjs.TextTrackMenuItem);
|
||||
goog.exportSymbol('videojs.OffTextTrackMenuItem', vjs.OffTextTrackMenuItem);
|
||||
goog.exportSymbol('videojs.CaptionSettingsMenuItem', vjs.CaptionSettingsMenuItem);
|
||||
|
||||
goog.exportProperty(vjs.MenuButton.prototype, 'createItems', vjs.MenuButton.prototype.createItems);
|
||||
goog.exportProperty(vjs.TextTrackButton.prototype, 'createItems', vjs.TextTrackButton.prototype.createItems);
|
||||
goog.exportProperty(vjs.ChaptersButton.prototype, 'createItems', vjs.ChaptersButton.prototype.createItems);
|
||||
|
||||
goog.exportSymbol('videojs.SubtitlesButton', vjs.SubtitlesButton);
|
||||
goog.exportSymbol('videojs.CaptionsButton', vjs.CaptionsButton);
|
||||
goog.exportSymbol('videojs.ChaptersButton', vjs.ChaptersButton);
|
||||
|
||||
goog.exportSymbol('videojs.MediaTechController', vjs.MediaTechController);
|
||||
goog.exportProperty(vjs.MediaTechController, 'withSourceHandlers', vjs.MediaTechController.withSourceHandlers);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype, 'featuresVolumeControl', vjs.MediaTechController.prototype.featuresVolumeControl);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype, 'featuresFullscreenResize', vjs.MediaTechController.prototype.featuresFullscreenResize);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype, 'featuresPlaybackRate', vjs.MediaTechController.prototype.featuresPlaybackRate);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype, 'featuresProgressEvents', vjs.MediaTechController.prototype.featuresProgressEvents);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype, 'featuresTimeupdateEvents', vjs.MediaTechController.prototype.featuresTimeupdateEvents);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype, 'setPoster', vjs.MediaTechController.prototype.setPoster);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype, 'textTracks', vjs.MediaTechController.prototype.textTracks);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype, 'remoteTextTracks', vjs.MediaTechController.prototype.remoteTextTracks);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype, 'addTextTrack', vjs.MediaTechController.prototype.addTextTrack);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype, 'addRemoteTextTrack', vjs.MediaTechController.prototype.addRemoteTextTrack);
|
||||
goog.exportProperty(vjs.MediaTechController.prototype, 'removeRemoteTextTrack', vjs.MediaTechController.prototype.removeRemoteTextTrack);
|
||||
|
||||
goog.exportSymbol('videojs.Html5', vjs.Html5);
|
||||
goog.exportProperty(vjs.Html5, 'Events', vjs.Html5.Events);
|
||||
goog.exportProperty(vjs.Html5, 'isSupported', vjs.Html5.isSupported);
|
||||
goog.exportProperty(vjs.Html5, 'canPlaySource', vjs.Html5.canPlaySource);
|
||||
goog.exportProperty(vjs.Html5, 'patchCanPlayType', vjs.Html5.patchCanPlayType);
|
||||
goog.exportProperty(vjs.Html5, 'unpatchCanPlayType', vjs.Html5.unpatchCanPlayType);
|
||||
|
||||
// Export non-standard HTML5 video API methods.
|
||||
// Standard method names already protected by default externs.
|
||||
goog.exportProperty(vjs.Html5.prototype, 'setCurrentTime', vjs.Html5.prototype.setCurrentTime);
|
||||
goog.exportProperty(vjs.Html5.prototype, 'setVolume', vjs.Html5.prototype.setVolume);
|
||||
goog.exportProperty(vjs.Html5.prototype, 'setMuted', vjs.Html5.prototype.setMuted);
|
||||
goog.exportProperty(vjs.Html5.prototype, 'setPreload', vjs.Html5.prototype.setPreload);
|
||||
goog.exportProperty(vjs.Html5.prototype, 'setAutoplay', vjs.Html5.prototype.setAutoplay);
|
||||
goog.exportProperty(vjs.Html5.prototype, 'setLoop', vjs.Html5.prototype.setLoop);
|
||||
goog.exportProperty(vjs.Html5.prototype, 'enterFullScreen', vjs.Html5.prototype.enterFullScreen);
|
||||
goog.exportProperty(vjs.Html5.prototype, 'exitFullScreen', vjs.Html5.prototype.exitFullScreen);
|
||||
goog.exportProperty(vjs.Html5.prototype, 'playbackRate', vjs.Html5.prototype.playbackRate);
|
||||
goog.exportProperty(vjs.Html5.prototype, 'setPlaybackRate', vjs.Html5.prototype.setPlaybackRate);
|
||||
// Source Handler Functions
|
||||
goog.exportProperty(vjs.Html5, 'registerSourceHandler', vjs.Html5.registerSourceHandler);
|
||||
goog.exportProperty(vjs.Html5, 'selectSourceHandler', vjs.Html5.selectSourceHandler);
|
||||
goog.exportProperty(vjs.Html5.prototype, 'setSource', vjs.Html5.prototype.setSource);
|
||||
goog.exportProperty(vjs.Html5.prototype, 'disposeSourceHandler', vjs.Html5.prototype.disposeSourceHandler);
|
||||
goog.exportProperty(vjs.Html5.prototype, 'textTracks', vjs.Html5.prototype.textTracks);
|
||||
goog.exportProperty(vjs.Html5.prototype, 'remoteTextTracks', vjs.Html5.prototype.remoteTextTracks);
|
||||
goog.exportProperty(vjs.Html5.prototype, 'addTextTrack', vjs.Html5.prototype.addTextTrack);
|
||||
goog.exportProperty(vjs.Html5.prototype, 'addRemoteTextTrack', vjs.Html5.prototype.addRemoteTextTrack);
|
||||
goog.exportProperty(vjs.Html5.prototype, 'removeRemoteTextTrack', vjs.Html5.prototype.removeRemoteTextTrack);
|
||||
|
||||
goog.exportSymbol('videojs.Flash', vjs.Flash);
|
||||
goog.exportProperty(vjs.Flash, 'isSupported', vjs.Flash.isSupported);
|
||||
goog.exportProperty(vjs.Flash, 'canPlaySource', vjs.Flash.canPlaySource);
|
||||
goog.exportProperty(vjs.Flash, 'onReady', vjs.Flash['onReady']);
|
||||
goog.exportProperty(vjs.Flash, 'embed', vjs.Flash.embed);
|
||||
goog.exportProperty(vjs.Flash, 'version', vjs.Flash.version);
|
||||
goog.exportProperty(vjs.Flash.prototype, 'setSource', vjs.Flash.prototype.setSource);
|
||||
// Source Handler Functions
|
||||
goog.exportProperty(vjs.Flash, 'registerSourceHandler', vjs.Flash.registerSourceHandler);
|
||||
goog.exportProperty(vjs.Flash, 'selectSourceHandler', vjs.Flash.selectSourceHandler);
|
||||
goog.exportProperty(vjs.Flash.prototype, 'setSource', vjs.Flash.prototype.setSource);
|
||||
goog.exportProperty(vjs.Flash.prototype, 'disposeSourceHandler', vjs.Flash.prototype.disposeSourceHandler);
|
||||
|
||||
goog.exportSymbol('videojs.TextTrack', vjs.TextTrack);
|
||||
goog.exportSymbol('videojs.TextTrackList', vjs.TextTrackList);
|
||||
goog.exportSymbol('videojs.TextTrackCueList', vjs.TextTrackCueList);
|
||||
goog.exportSymbol('videojs.TextTrackSettings', vjs.TextTrackSettings);
|
||||
goog.exportProperty(vjs.TextTrack.prototype, 'id', vjs.TextTrack.prototype.id);
|
||||
goog.exportProperty(vjs.TextTrack.prototype, 'label', vjs.TextTrack.prototype.label);
|
||||
goog.exportProperty(vjs.TextTrack.prototype, 'kind', vjs.TextTrack.prototype.kind);
|
||||
goog.exportProperty(vjs.TextTrack.prototype, 'mode', vjs.TextTrack.prototype.mode);
|
||||
goog.exportProperty(vjs.TextTrack.prototype, 'cues', vjs.TextTrack.prototype.cues);
|
||||
goog.exportProperty(vjs.TextTrack.prototype, 'activeCues', vjs.TextTrack.prototype.activeCues);
|
||||
goog.exportProperty(vjs.TextTrack.prototype, 'addCue', vjs.TextTrack.prototype.addCue);
|
||||
goog.exportProperty(vjs.TextTrack.prototype, 'removeCue', vjs.TextTrack.prototype.removeCue);
|
||||
goog.exportProperty(vjs.TextTrackList.prototype, 'getTrackById', vjs.TextTrackList.prototype.getTrackById);
|
||||
goog.exportProperty(vjs.TextTrackCueList.prototype, 'getCueById', vjs.TextTrackList.prototype.getCueById);
|
||||
|
||||
goog.exportSymbol('videojs.CaptionsTrack', vjs.CaptionsTrack);
|
||||
goog.exportSymbol('videojs.SubtitlesTrack', vjs.SubtitlesTrack);
|
||||
goog.exportSymbol('videojs.ChaptersTrack', vjs.ChaptersTrack);
|
||||
|
||||
goog.exportSymbol('videojs.autoSetup', vjs.autoSetup);
|
||||
|
||||
goog.exportSymbol('videojs.plugin', vjs.plugin);
|
||||
|
||||
goog.exportSymbol('videojs.createTimeRange', vjs.createTimeRange);
|
||||
|
||||
goog.exportSymbol('videojs.util', vjs.util);
|
||||
goog.exportProperty(vjs.util, 'mergeOptions', vjs.util.mergeOptions);
|
||||
goog.exportProperty(vjs, 'addLanguage', vjs.addLanguage);
|
@ -1,27 +0,0 @@
|
||||
/**
|
||||
* @fileoverview Externs for video-js.swf. Externs are functions
|
||||
* that the compiler shouldn't obfuscate.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @param {string} name
|
||||
*/
|
||||
HTMLObjectElement.prototype.vjs_getProperty = function(name) {};
|
||||
|
||||
/**
|
||||
* @param {string} name
|
||||
* @param {string|number} value
|
||||
*/
|
||||
HTMLObjectElement.prototype.vjs_setProperty = function(name, value) {};
|
||||
|
||||
/**
|
||||
* Control methods
|
||||
*/
|
||||
HTMLObjectElement.prototype.vjs_play = function() {};
|
||||
HTMLObjectElement.prototype.vjs_pause = function() {};
|
||||
HTMLObjectElement.prototype.vjs_load = function() {};
|
||||
|
||||
/**
|
||||
* @param {string} src
|
||||
*/
|
||||
HTMLObjectElement.prototype.vjs_src = function(src) {};
|
@ -1,96 +0,0 @@
|
||||
/**
|
||||
* @fileoverview Externs for videojs.Player. Externs are functions that the
|
||||
* compiler shouldn't obfuscate.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends {videojs.Component}
|
||||
*/
|
||||
videojs.Player = function(){};
|
||||
|
||||
/**
|
||||
* Native HTML5 video properties
|
||||
* Most likely covered by the default closure compiler externs
|
||||
* Copied list from http://code.google.com/p/closure-compiler/source/browse/externs/html5.js?spec=svne2e531de906d9ccccf23516bd2dd6152a93f6468&r=e2e531de906d9ccccf23516bd2dd6152a93f6468
|
||||
* May not all be available on a videojs player yet
|
||||
*/
|
||||
videojs.Player.prototype.error = function(){};
|
||||
videojs.Player.prototype.src = function(){};
|
||||
videojs.Player.prototype.currentSrc = function(){};
|
||||
videojs.Player.prototype.networkState = function(){};
|
||||
videojs.Player.prototype.buffered = function(){};
|
||||
videojs.Player.prototype.load = function(){};
|
||||
videojs.Player.prototype.canPlayType = function(){};
|
||||
videojs.Player.prototype.readyState = function(){};
|
||||
videojs.Player.prototype.seeking = function(){};
|
||||
videojs.Player.prototype.currentTime = function(){};
|
||||
videojs.Player.prototype.remainingTime = function(){};
|
||||
videojs.Player.prototype.startTime = function(){};
|
||||
videojs.Player.prototype.duration = function(){};
|
||||
videojs.Player.prototype.paused = function(){};
|
||||
videojs.Player.prototype.defaultPlaybackRate = function(){};
|
||||
videojs.Player.prototype.playbackRate = function(){};
|
||||
videojs.Player.prototype.played = function(){};
|
||||
videojs.Player.prototype.seekable = function(){};
|
||||
videojs.Player.prototype.ended = function(){};
|
||||
videojs.Player.prototype.autoplay = function(){};
|
||||
videojs.Player.prototype.loop = function(){};
|
||||
videojs.Player.prototype.play = function() {};
|
||||
videojs.Player.prototype.pause = function() {};
|
||||
videojs.Player.prototype.controls = function(){};
|
||||
videojs.Player.prototype.volume = function(){};
|
||||
videojs.Player.prototype.muted = function(){};
|
||||
videojs.Player.prototype.width = function(){};
|
||||
videojs.Player.prototype.height = function(){};
|
||||
videojs.Player.prototype.videoWidth = function(){};
|
||||
videojs.Player.prototype.videoHeight = function(){};
|
||||
videojs.Player.prototype.poster = function(){};
|
||||
|
||||
/**
|
||||
* Fullscreen functionality
|
||||
*/
|
||||
videojs.Player.prototype.isFullscreen = function(){};
|
||||
videojs.Player.prototype.isFullScreen = function(){}; /* deprecated */
|
||||
videojs.Player.prototype.requestFullscreen = function(){};
|
||||
videojs.Player.prototype.requestFullScreen = function(){}; /* deprecated */
|
||||
videojs.Player.prototype.exitFullscreen = function(){};
|
||||
videojs.Player.prototype.cancelFullScreen = function(){}; /* deprecated */
|
||||
|
||||
/**
|
||||
* Text tracks
|
||||
*/
|
||||
videojs.Player.prototype.textTracks = function(){};
|
||||
videojs.Player.prototype.addTextTrack = function(){};
|
||||
|
||||
/**
|
||||
* Language support
|
||||
*/
|
||||
videojs.Player.prototype.language = function(){};
|
||||
videojs.Player.prototype.languages = function(){};
|
||||
|
||||
/**
|
||||
* Component functions
|
||||
*/
|
||||
videojs.Player.prototype.dispose = function(){};
|
||||
|
||||
/**
|
||||
* Buffered percent
|
||||
*/
|
||||
videojs.Player.prototype.bufferedPercent = function(){};
|
||||
|
||||
/**
|
||||
* User activity functions
|
||||
*/
|
||||
videojs.Player.prototype.reportUserActivity = function(){};
|
||||
videojs.Player.prototype.userActive = function(){};
|
||||
|
||||
/**
|
||||
* Native controls
|
||||
*/
|
||||
videojs.Player.prototype.usingNativeControls = function(){};
|
||||
|
||||
/**
|
||||
* Source selection
|
||||
*/
|
||||
videojs.Player.prototype.selectSource = function(){};
|
@ -1,5 +1,6 @@
|
||||
module.exports = function(grunt) {
|
||||
grunt.registerMultiTask('build', 'Building Source', function(){
|
||||
var vtt, novtt;
|
||||
|
||||
// Fix windows file path delimiter issue
|
||||
var i = grunt.sourceFiles.length;
|
||||
@ -16,7 +17,12 @@ module.exports = function(grunt) {
|
||||
combined = combined.replace(/GENERATED_CDN_VSN/g, grunt.vjsVersion.majorMinor);
|
||||
combined = combined.replace(/GENERATED_FULL_VSN/g, grunt.vjsVersion.full);
|
||||
|
||||
vtt = grunt.file.read('node_modules/vtt.js/dist/vtt.js');
|
||||
novtt = combined;
|
||||
combined += '\n'+vtt;
|
||||
|
||||
grunt.file.write('build/files/combined.video.js', combined);
|
||||
grunt.file.write('build/files/combined.video.novtt.js', novtt);
|
||||
|
||||
// Copy over other files
|
||||
// grunt.file.copy('src/css/video-js.png', 'build/files/video-js.png');
|
||||
|
@ -1,55 +0,0 @@
|
||||
module.exports = function(grunt) {
|
||||
grunt.registerMultiTask('minify', 'Minify JS files using Closure Compiler.', function() {
|
||||
var done = this.async();
|
||||
var exec = require('child_process').exec;
|
||||
|
||||
var externs = this.data.externs || [];
|
||||
var dest = this.data.dest;
|
||||
var filePatterns = [];
|
||||
|
||||
// Make sure deeper directories exist for compiler
|
||||
grunt.file.write(dest, '');
|
||||
|
||||
if (this.data.sourcelist) {
|
||||
filePatterns = filePatterns.concat(grunt.file.read(this.data.sourcelist).split(','));
|
||||
}
|
||||
if (this.data.src) {
|
||||
filePatterns = filePatterns.concat(this.data.src);
|
||||
}
|
||||
|
||||
// Build closure compiler shell command
|
||||
var command = 'java -jar build/compiler/compiler.jar'
|
||||
+ ' --compilation_level ADVANCED_OPTIMIZATIONS'
|
||||
// + ' --formatting=pretty_print'
|
||||
+ ' --js_output_file=' + dest
|
||||
+ ' --create_source_map ' + dest + '.map --source_map_format=V3'
|
||||
+ ' --jscomp_warning=checkTypes --warning_level=VERBOSE'
|
||||
+ ' --output_wrapper "(function() {%output%})();"';
|
||||
//@ sourceMappingURL=video.js.map
|
||||
|
||||
// Add each js file
|
||||
grunt.file.expand(filePatterns).forEach(function(file){
|
||||
command += ' --js='+file;
|
||||
});
|
||||
|
||||
// Add externs
|
||||
externs.forEach(function(extern){
|
||||
command += ' --externs='+extern;
|
||||
});
|
||||
|
||||
// Run command
|
||||
exec(command, { maxBuffer: 500*1024 }, function(err, stdout, stderr){
|
||||
|
||||
if (err) {
|
||||
grunt.warn(err);
|
||||
done(false);
|
||||
}
|
||||
|
||||
if (stdout) {
|
||||
grunt.log.writeln(stdout);
|
||||
}
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
}
|
20
tasks/vtt.js
20
tasks/vtt.js
@ -1,20 +0,0 @@
|
||||
module.exports = function(grunt) {
|
||||
grunt.registerTask('vttjs', 'prepend vttjs to videojs source files', function() {
|
||||
var vttjs, vttjsMin, vjs, vjsMin;
|
||||
|
||||
// copy the current files to make a novttjs build
|
||||
grunt.file.copy('build/files/combined.video.js', 'build/files/combined.video.novtt.js');
|
||||
grunt.file.copy('build/files/minified.video.js', 'build/files/minified.video.novtt.js');
|
||||
|
||||
// read in vttjs files
|
||||
vttjs = grunt.file.read('node_modules/vtt.js/dist/vtt.js');
|
||||
vttjsMin = grunt.file.read('node_modules/vtt.js/dist/vtt.min.js');
|
||||
// read in videojs files
|
||||
vjs = grunt.file.read('build/files/combined.video.js');
|
||||
vjsMin = grunt.file.read('build/files/minified.video.js');
|
||||
|
||||
// write out the concatenated files
|
||||
grunt.file.write('build/files/combined.video.js', vjs + '\n' + vttjs);
|
||||
grunt.file.write('build/files/minified.video.js', vjsMin + '\n' + vttjsMin);
|
||||
});
|
||||
};
|
@ -1,84 +0,0 @@
|
||||
// https://github.com/lukeasrodgers/qunit-js-externs/blob/master/qunit-externs.js
|
||||
|
||||
/**
|
||||
* @param {string} name
|
||||
* @param {Object=} lifecycle
|
||||
*/
|
||||
function module(name, lifecycle) {}
|
||||
|
||||
/**
|
||||
* @param {string} title
|
||||
* @param {number|Function} expected
|
||||
* @param {Function=} test_func
|
||||
*/
|
||||
function test(title, expected, test_func){}
|
||||
|
||||
/**
|
||||
* @param {string} name
|
||||
* @param {number|Function} expected
|
||||
* @param {Function=} test_func
|
||||
*/
|
||||
function asyncTest(name, expected, test_func){}
|
||||
|
||||
/**
|
||||
* @param {number} amount
|
||||
*/
|
||||
function expect(amount){}
|
||||
|
||||
/**
|
||||
* @param {*} state
|
||||
* @param {string=} message
|
||||
*/
|
||||
function ok(state, message){}
|
||||
|
||||
/**
|
||||
* @param {*} actual
|
||||
* @param {*} expected
|
||||
* @param {string=} message
|
||||
*/
|
||||
function equal(actual, expected, message){}
|
||||
|
||||
/**
|
||||
* @param {*} actual
|
||||
* @param {*} expected
|
||||
* @param {string=} message
|
||||
*/
|
||||
function notEqual(actual, expected, message){}
|
||||
|
||||
/**
|
||||
* @param {*} actual
|
||||
* @param {*} expected
|
||||
* @param {string=} message
|
||||
*/
|
||||
function deepEqual(actual, expected, message){}
|
||||
|
||||
/**
|
||||
* @param {*} actual
|
||||
* @param {*} expected
|
||||
* @param {string=} message
|
||||
*/
|
||||
function notDeepEqual(actual, expected, message){}
|
||||
|
||||
/**
|
||||
* @param {*} actual
|
||||
* @param {*} expected
|
||||
* @param {string=} message
|
||||
*/
|
||||
function strictEqual(actual, expected, message){}
|
||||
|
||||
/**
|
||||
* @param {*} actual
|
||||
* @param {*} expected
|
||||
* @param {string=} message
|
||||
*/
|
||||
function notStrictEqual(actual, expected, message){}
|
||||
|
||||
/**
|
||||
* @param {number=} increment
|
||||
*/
|
||||
function start(increment){}
|
||||
|
||||
/**
|
||||
* @param {number=} increment
|
||||
*/
|
||||
function stop(increment){}
|
@ -1,101 +0,0 @@
|
||||
/**
|
||||
* Sinon externs
|
||||
*/
|
||||
function sinon(){}
|
||||
|
||||
sinon.stub = function(){};
|
||||
sinon.spy = function(){};
|
||||
sinon.mock = function(){};
|
||||
sinon.useFakeTimers = function(){};
|
||||
sinon.clock.tick = function(){};
|
||||
|
||||
Function.prototype.alwaysCalledOn = function(){};
|
||||
Function.prototype.alwaysCalledWith = function(){};
|
||||
Function.prototype.alwaysCalledWithExactly = function(){};
|
||||
Function.prototype.alwaysCalledWithMatch = function(){};
|
||||
Function.prototype.alwaysCalledWithNew = function(){};
|
||||
Function.prototype.alwaysReturned = function(){};
|
||||
Function.prototype.alwaysThrew = function(){};
|
||||
Function.prototype.args;
|
||||
Function.prototype.arguments;
|
||||
Function.prototype.behaviors;
|
||||
Function.prototype.callArg = function(){};
|
||||
Function.prototype.callArgOn = function(){};
|
||||
Function.prototype.callArgOnWith = function(){};
|
||||
Function.prototype.callArgWith = function(){};
|
||||
Function.prototype.callCount;
|
||||
Function.prototype.callIds;
|
||||
Function.prototype.called;
|
||||
Function.prototype.calledAfter = function(){};
|
||||
Function.prototype.calledBefore = function(){};
|
||||
Function.prototype.calledOn = function(){};
|
||||
Function.prototype.calledOnce;
|
||||
Function.prototype.calledThrice;
|
||||
Function.prototype.calledTwice;
|
||||
Function.prototype.calledWith = function(){};
|
||||
Function.prototype.calledWithExactly = function(){};
|
||||
Function.prototype.calledWithMatch = function(){};
|
||||
Function.prototype.calledWithNew = function(){};
|
||||
Function.prototype.caller;
|
||||
Function.prototype.callsArg = function(){};
|
||||
Function.prototype.callsArgAsync = function(){};
|
||||
Function.prototype.callsArgOn = function(){};
|
||||
Function.prototype.callsArgOnAsync = function(){};
|
||||
Function.prototype.callsArgOnWith = function(){};
|
||||
Function.prototype.callsArgOnWithAsync = function(){};
|
||||
Function.prototype.callsArgWith = function(){};
|
||||
Function.prototype.callsArgWithAsync = function(){};
|
||||
Function.prototype.create = function(){};
|
||||
Function.prototype.defaultBehavior;
|
||||
Function.prototype.displayName;
|
||||
Function.prototype.exceptions;
|
||||
Function.prototype.firstCall;
|
||||
Function.prototype.formatters;
|
||||
Function.prototype.func;
|
||||
Function.prototype.getCall = function(){};
|
||||
Function.prototype.getCalls = function(){};
|
||||
Function.prototype.id;
|
||||
Function.prototype.invoke = function(){};
|
||||
Function.prototype.invokeCallback = function(){};
|
||||
Function.prototype.isPresent = function(){};
|
||||
Function.prototype.lastCall;
|
||||
Function.prototype.length;
|
||||
Function.prototype.matches = function(){};
|
||||
Function.prototype.name;
|
||||
Function.prototype.neverCalledWith = function(){};
|
||||
Function.prototype.neverCalledWithMatch = function(){};
|
||||
Function.prototype.notCalled;
|
||||
Function.prototype.onCall = function(){};
|
||||
Function.prototype.onFirstCall = function(){};
|
||||
Function.prototype.onSecondCall = function(){};
|
||||
Function.prototype.onThirdCall = function(){};
|
||||
Function.prototype.printf = function(){};
|
||||
Function.prototype.reset = function(){};
|
||||
Function.prototype.resetBehavior = function(){};
|
||||
Function.prototype.restore = function(){};
|
||||
Function.prototype.returnValues;
|
||||
Function.prototype.returned = function(){};
|
||||
Function.prototype.returns = function(){};
|
||||
Function.prototype.returnsArg = function(){};
|
||||
Function.prototype.returnsThis = function(){};
|
||||
Function.prototype.secondCall;
|
||||
Function.prototype.spyCall;
|
||||
Function.prototype.thirdCall;
|
||||
Function.prototype.thisValues;
|
||||
Function.prototype.threw = function(){};
|
||||
Function.prototype['throws'] = function(){};
|
||||
Function.prototype.throwsException = function(){};
|
||||
Function.prototype.toString = function(){};
|
||||
Function.prototype.withArgs = function(){};
|
||||
Function.prototype.yield = function(){};
|
||||
Function.prototype.yieldOn = function(){};
|
||||
Function.prototype.yieldTo = function(){};
|
||||
Function.prototype.yieldToOn = function(){};
|
||||
Function.prototype.yields = function(){};
|
||||
Function.prototype.yieldsAsync = function(){};
|
||||
Function.prototype.yieldsOn = function(){};
|
||||
Function.prototype.yieldsOnAsync = function(){};
|
||||
Function.prototype.yieldsTo = function(){};
|
||||
Function.prototype.yieldsToAsync = function(){};
|
||||
Function.prototype.yieldsToOn = function(){};
|
||||
Function.prototype.yieldsToOnAsync = function(){};
|
Loading…
x
Reference in New Issue
Block a user