Skip to content

Commit 0468f67

Browse files
committed
first commit
0 parents  commit 0468f67

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+4808
-0
lines changed

LICENSE

Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
GNU LESSER GENERAL PUBLIC LICENSE
2+
Version 3, 29 June 2007
3+
4+
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
5+
Everyone is permitted to copy and distribute verbatim copies
6+
of this license document, but changing it is not allowed.
7+
8+
9+
This version of the GNU Lesser General Public License incorporates
10+
the terms and conditions of version 3 of the GNU General Public
11+
License, supplemented by the additional permissions listed below.
12+
13+
0. Additional Definitions.
14+
15+
As used herein, "this License" refers to version 3 of the GNU Lesser
16+
General Public License, and the "GNU GPL" refers to version 3 of the GNU
17+
General Public License.
18+
19+
"The Library" refers to a covered work governed by this License,
20+
other than an Application or a Combined Work as defined below.
21+
22+
An "Application" is any work that makes use of an interface provided
23+
by the Library, but which is not otherwise based on the Library.
24+
Defining a subclass of a class defined by the Library is deemed a mode
25+
of using an interface provided by the Library.
26+
27+
A "Combined Work" is a work produced by combining or linking an
28+
Application with the Library. The particular version of the Library
29+
with which the Combined Work was made is also called the "Linked
30+
Version".
31+
32+
The "Minimal Corresponding Source" for a Combined Work means the
33+
Corresponding Source for the Combined Work, excluding any source code
34+
for portions of the Combined Work that, considered in isolation, are
35+
based on the Application, and not on the Linked Version.
36+
37+
The "Corresponding Application Code" for a Combined Work means the
38+
object code and/or source code for the Application, including any data
39+
and utility programs needed for reproducing the Combined Work from the
40+
Application, but excluding the System Libraries of the Combined Work.
41+
42+
1. Exception to Section 3 of the GNU GPL.
43+
44+
You may convey a covered work under sections 3 and 4 of this License
45+
without being bound by section 3 of the GNU GPL.
46+
47+
2. Conveying Modified Versions.
48+
49+
If you modify a copy of the Library, and, in your modifications, a
50+
facility refers to a function or data to be supplied by an Application
51+
that uses the facility (other than as an argument passed when the
52+
facility is invoked), then you may convey a copy of the modified
53+
version:
54+
55+
a) under this License, provided that you make a good faith effort to
56+
ensure that, in the event an Application does not supply the
57+
function or data, the facility still operates, and performs
58+
whatever part of its purpose remains meaningful, or
59+
60+
b) under the GNU GPL, with none of the additional permissions of
61+
this License applicable to that copy.
62+
63+
3. Object Code Incorporating Material from Library Header Files.
64+
65+
The object code form of an Application may incorporate material from
66+
a header file that is part of the Library. You may convey such object
67+
code under terms of your choice, provided that, if the incorporated
68+
material is not limited to numerical parameters, data structure
69+
layouts and accessors, or small macros, inline functions and templates
70+
(ten or fewer lines in length), you do both of the following:
71+
72+
a) Give prominent notice with each copy of the object code that the
73+
Library is used in it and that the Library and its use are
74+
covered by this License.
75+
76+
b) Accompany the object code with a copy of the GNU GPL and this license
77+
document.
78+
79+
4. Combined Works.
80+
81+
You may convey a Combined Work under terms of your choice that,
82+
taken together, effectively do not restrict modification of the
83+
portions of the Library contained in the Combined Work and reverse
84+
engineering for debugging such modifications, if you also do each of
85+
the following:
86+
87+
a) Give prominent notice with each copy of the Combined Work that
88+
the Library is used in it and that the Library and its use are
89+
covered by this License.
90+
91+
b) Accompany the Combined Work with a copy of the GNU GPL and this license
92+
document.
93+
94+
c) For a Combined Work that displays copyright notices during
95+
execution, include the copyright notice for the Library among
96+
these notices, as well as a reference directing the user to the
97+
copies of the GNU GPL and this license document.
98+
99+
d) Do one of the following:
100+
101+
0) Convey the Minimal Corresponding Source under the terms of this
102+
License, and the Corresponding Application Code in a form
103+
suitable for, and under terms that permit, the user to
104+
recombine or relink the Application with a modified version of
105+
the Linked Version to produce a modified Combined Work, in the
106+
manner specified by section 6 of the GNU GPL for conveying
107+
Corresponding Source.
108+
109+
1) Use a suitable shared library mechanism for linking with the
110+
Library. A suitable mechanism is one that (a) uses at run time
111+
a copy of the Library already present on the user's computer
112+
system, and (b) will operate properly with a modified version
113+
of the Library that is interface-compatible with the Linked
114+
Version.
115+
116+
e) Provide Installation Information, but only if you would otherwise
117+
be required to provide such information under section 6 of the
118+
GNU GPL, and only to the extent that such information is
119+
necessary to install and execute a modified version of the
120+
Combined Work produced by recombining or relinking the
121+
Application with a modified version of the Linked Version. (If
122+
you use option 4d0, the Installation Information must accompany
123+
the Minimal Corresponding Source and Corresponding Application
124+
Code. If you use option 4d1, you must provide the Installation
125+
Information in the manner specified by section 6 of the GNU GPL
126+
for conveying Corresponding Source.)
127+
128+
5. Combined Libraries.
129+
130+
You may place library facilities that are a work based on the
131+
Library side by side in a single library together with other library
132+
facilities that are not Applications and are not covered by this
133+
License, and convey such a combined library under terms of your
134+
choice, if you do both of the following:
135+
136+
a) Accompany the combined library with a copy of the same work based
137+
on the Library, uncombined with any other library facilities,
138+
conveyed under the terms of this License.
139+
140+
b) Give prominent notice with the combined library that part of it
141+
is a work based on the Library, and explaining where to find the
142+
accompanying uncombined form of the same work.
143+
144+
6. Revised Versions of the GNU Lesser General Public License.
145+
146+
The Free Software Foundation may publish revised and/or new versions
147+
of the GNU Lesser General Public License from time to time. Such new
148+
versions will be similar in spirit to the present version, but may
149+
differ in detail to address new problems or concerns.
150+
151+
Each version is given a distinguishing version number. If the
152+
Library as you received it specifies that a certain numbered version
153+
of the GNU Lesser General Public License "or any later version"
154+
applies to it, you have the option of following the terms and
155+
conditions either of that published version or of any later version
156+
published by the Free Software Foundation. If the Library as you
157+
received it does not specify a version number of the GNU Lesser
158+
General Public License, you may choose any version of the GNU Lesser
159+
General Public License ever published by the Free Software Foundation.
160+
161+
If the Library as you received it specifies that a proxy can decide
162+
whether future versions of the GNU Lesser General Public License shall
163+
apply, that proxy's public statement of acceptance of any version is
164+
permanent authorization for you to choose that version for the
165+
Library.

README.md

Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
Subtitle library
2+
================
3+
4+
fr.noop.subtitle provides parsers and writers for different subtitle formats:
5+
6+
- vtt
7+
- srt
8+
- sami (smi)
9+
- stl ebu
10+
- ttml
11+
12+
13+
VTT
14+
---
15+
16+
Advanced features
17+
=================
18+
19+
- voices (v tag)
20+
- styles
21+
- classes
22+
23+
Parser
24+
======
25+
26+
Supported advanced features:
27+
28+
- voices
29+
- styles
30+
- classes
31+
32+
Usage:
33+
34+
$ import fr.noop.subtitle.vtt.*;
35+
$ ...
36+
$ VttParser parser = new VttParser("utf-8");
37+
$ VttObject subtitle = parser.parse(new FileInputStream("/tmp/read/test.vtt"));
38+
39+
Writer
40+
======
41+
42+
No advanced features implemented.
43+
44+
Usage:
45+
46+
$ import fr.noop.subtitle.vtt.*;
47+
$ ...
48+
$ VttObject subtitle;
49+
$ ...
50+
$ VttWriter writer = new VttWriter("utf-8");
51+
$ writer.write(subtitle, new FileOutputStream("/tmp/write/test.vtt"));
52+
53+
SRT
54+
---
55+
56+
Parser
57+
======
58+
59+
Usage:
60+
61+
$ import fr.noop.subtitle.srt.*;
62+
$ ...
63+
$ SrtParser parser = new SrtParser("utf-8");
64+
$ SrtObject subtitle = parser.parse(new FileInputStream("/tmp/read/test.srt"));
65+
66+
Writer
67+
======
68+
69+
Usage:
70+
71+
$ import fr.noop.subtitle.srt.*;
72+
$ ...
73+
$ SrtObject subtitle;
74+
$ ...
75+
$ SrtWriter writer = new SrtWriter("utf-8");
76+
$ writer.write(subtitle, new FileOutputStream("/tmp/write/test.srt"));
77+
78+
SAMI
79+
----
80+
81+
Parser
82+
======
83+
84+
Usage:
85+
86+
$ import fr.noop.subtitle.sami.*;
87+
$ ...
88+
$ SamiParser parser = new SamiParser("utf-8");
89+
$ SamiObject subtitle = parser.parse(new FileInputStream("/tmp/read/test.smi"));
90+
91+
Writer
92+
======
93+
94+
Usage:
95+
96+
$ import fr.noop.subtitle.sami.*;
97+
$ ...
98+
$ SamiObject subtitle;
99+
$ ...
100+
$ SamiWriter writer = new SamiWriter("utf-8");
101+
$ writer.write(subtitle, new FileOutputStream("/tmp/write/test.smi"));
102+
103+
STL
104+
---
105+
106+
The implemented STL format is the binary version of STL EBU.
107+
Currently only the reader is provided.
108+
109+
All the specifications described in this document
110+
https://tech.ebu.ch/docs/tech/tech3264.pdf
111+
have been implemented, so you can get data from GSI and TTI blocks.
112+
113+
Advanced features
114+
=================
115+
116+
- styles
117+
- positioning
118+
119+
Parser
120+
======
121+
122+
Usage:
123+
124+
$ import fr.noop.subtitle.stl.*;
125+
$ ...
126+
$ StlParser parser = new StlParser();
127+
$ StlObject subtitle = parser.parse(new FileInputStream("/tmp/read/test.stl"));
128+
129+
TTML
130+
----
131+
132+
Currently only the writer is provided.
133+
134+
Advanced features
135+
=================
136+
137+
- styles
138+
- regions
139+
140+
Parser
141+
======
142+
143+
Usage:
144+
145+
$ import fr.noop.subtitle.ttml.*;
146+
$ import fr.noop.subtitle.model.*;
147+
$ ...
148+
$ SubtitleObject subtitle;
149+
$ ...
150+
$ TtmlWriter writer = new TtmlWriter();
151+
$ writer.write(subtitle, new FileOutputStream("/tmp/write/test.ttml"));
152+
153+
Jar package
154+
-----------
155+
156+
To create an executable jar using maven, run the following in the directory
157+
where pom.xml is (Note: Maven must already be installed):
158+
159+
$ mvn package
160+
161+
This will create the executable jar under target/subtitle-.*.jar
162+
163+
Convert from command line
164+
-------------------------
165+
166+
Usage:
167+
168+
$ java -jar subtitle-*.jar -i input-file -o output-file

0 commit comments

Comments
 (0)