Compare commits
1178 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
97b381a2b0 | ||
|
|
03b0749e91 | ||
|
|
7bcdd6729f | ||
|
|
3dd3d5f6aa | ||
|
|
ba37cc41c8 | ||
|
|
6efa41a7e6 | ||
|
|
9b90c91f07 | ||
|
|
35936618e3 | ||
|
|
e98a584e98 | ||
|
|
1a8c8a86f3 | ||
|
|
57663b8cf1 | ||
|
|
2b3d759e20 | ||
|
|
ed1b5dddce | ||
|
|
86fede6af8 | ||
|
|
68e6390c76 | ||
|
|
0ebeec4183 | ||
|
|
8c10ded107 | ||
|
|
3a1851f904 | ||
|
|
50aceb45fb | ||
|
|
cad6b0495c | ||
|
|
c7ebd45d9f | ||
|
|
77abe01885 | ||
|
|
98cec31516 | ||
|
|
46b145a396 | ||
|
|
ccf2a031e9 | ||
|
|
9784cd5bd1 | ||
|
|
5d8dc3b9eb | ||
|
|
a42e847bcb | ||
|
|
b7a1dd1030 | ||
|
|
b18e696c85 | ||
|
|
d58f078c38 | ||
|
|
0bbdfc13ee | ||
|
|
5127da50d1 | ||
|
|
352f035214 | ||
|
|
f04ba8d0c4 | ||
|
|
1ea94d0b14 | ||
|
|
7f99603859 | ||
|
|
3713283dfc | ||
|
|
09129f1e63 | ||
|
|
c56840ff2c | ||
|
|
2a34bd99e6 | ||
|
|
c7886ed615 | ||
|
|
948531a4be | ||
|
|
022987c804 | ||
|
|
db6c852fae | ||
|
|
b793f16343 | ||
|
|
ceaaa65a26 | ||
|
|
1d7589e653 | ||
|
|
e09abe7a83 | ||
|
|
e86e8692a8 | ||
|
|
961bfda727 | ||
|
|
8218d5ff73 | ||
|
|
5850ef073d | ||
|
|
7347440277 | ||
|
|
4007198342 | ||
|
|
c09524d043 | ||
|
|
d81c692bbb | ||
|
|
6d366bfdc6 | ||
|
|
ceb0110378 | ||
|
|
f06436c1fe | ||
|
|
67e15aaf80 | ||
|
|
5b29ef281a | ||
|
|
24b90970c7 | ||
|
|
84e6891922 | ||
|
|
0dcdf72042 | ||
|
|
e3b939baad | ||
|
|
0e5910ebee | ||
|
|
8a81a57a24 | ||
|
|
02d84d27d0 | ||
|
|
a2af0d7044 | ||
|
|
4f5bd7bf37 | ||
|
|
91ef488dff | ||
|
|
1af107aef8 | ||
|
|
9a60796674 | ||
|
|
7f4acae74b | ||
|
|
fa8b0a3023 | ||
|
|
acb55470f6 | ||
|
|
97da554da6 | ||
|
|
a121823adc | ||
|
|
cb85740690 | ||
|
|
e91a13bb60 | ||
|
|
a063be996b | ||
|
|
19da837232 | ||
|
|
22a494d834 | ||
|
|
2e68e9f600 | ||
|
|
b1c22e5034 | ||
|
|
e3c54327e8 | ||
|
|
9e62f8c557 | ||
|
|
6216247ecb | ||
|
|
082100a0d4 | ||
|
|
cf828471d6 | ||
|
|
cf84757e02 | ||
|
|
f486efbb57 | ||
|
|
0db5b0c838 | ||
|
|
e411a75dcd | ||
|
|
33ecccedce | ||
|
|
28dd35b040 | ||
|
|
e82a492c94 | ||
|
|
4509b9daf5 | ||
|
|
d330b78f37 | ||
|
|
ab89f88aea | ||
|
|
0227c2787a | ||
|
|
84dec36845 | ||
|
|
b4f692807a | ||
|
|
1f5ec6cd8d | ||
|
|
6f375cd9b3 | ||
|
|
e959654c6f | ||
|
|
18484d555f | ||
|
|
1534d81ae7 | ||
|
|
84b5df2713 | ||
|
|
8e729cc62c | ||
|
|
0f1f4d889f | ||
|
|
487b521c9b | ||
|
|
1aed90e42c | ||
|
|
e2d387bfa9 | ||
|
|
b974a7ed81 | ||
|
|
522ebae65e | ||
|
|
1b17a04b25 | ||
|
|
588c4a8187 | ||
|
|
88830e6c58 | ||
|
|
db646f50ac | ||
|
|
b1c9540085 | ||
|
|
e98137e059 | ||
|
|
3c37d49764 | ||
|
|
a8d6b81baf | ||
|
|
b8321cac0f | ||
|
|
6697ed3496 | ||
|
|
722d52420c | ||
|
|
af6d8282cb | ||
|
|
732b20aefa | ||
|
|
54318d0402 | ||
|
|
5f61fae0c7 | ||
|
|
0afba56a26 | ||
|
|
0873953d9f | ||
|
|
75af5f2e8c | ||
|
|
8d8dc9ccc2 | ||
|
|
e37a21aace | ||
|
|
40a603d366 | ||
|
|
c5bed1e3b2 | ||
|
|
8db3398eb7 | ||
|
|
7b038ab649 | ||
|
|
7d0c2ede26 | ||
|
|
60773bb859 | ||
|
|
a919ef4410 | ||
|
|
424e67f5f4 | ||
|
|
4097831b9b | ||
|
|
1764aa1f92 | ||
|
|
19de49763a | ||
|
|
a0b4e389f9 | ||
|
|
2281051d3d | ||
|
|
fc21280857 | ||
|
|
746806dcef | ||
|
|
812734fd2a | ||
|
|
66d59e498b | ||
|
|
5599ce9eaf | ||
|
|
2e2075ca52 | ||
|
|
c69d2db52b | ||
|
|
54ecce8b86 | ||
|
|
82b60988bb | ||
|
|
ab1af7c678 | ||
|
|
84ba7c5238 | ||
|
|
676be1f193 | ||
|
|
e8cb55e739 | ||
|
|
30613b224a | ||
|
|
19241744d7 | ||
|
|
27288ccf89 | ||
|
|
34282c17b8 | ||
|
|
227f149670 | ||
|
|
27477e9f7c | ||
|
|
b3018e083e | ||
|
|
96de55429d | ||
|
|
863eacc440 | ||
|
|
78249045f8 | ||
|
|
dad108b7e1 | ||
|
|
79f18b996b | ||
|
|
987c5cd301 | ||
|
|
34d0df1d96 | ||
|
|
1db731a7a8 | ||
|
|
af67596e66 | ||
|
|
86f98ddf5f | ||
|
|
bba6c4fcfd | ||
|
|
af64fa8a3d | ||
|
|
e1d3060232 | ||
|
|
3a1815163f | ||
|
|
0954b47a24 | ||
|
|
594a83cc4e | ||
|
|
ecec3ea22b | ||
|
|
f9cfc7219d | ||
|
|
c854d25963 | ||
|
|
4fe32b1482 | ||
|
|
5fcb31d279 | ||
|
|
b2d3a2fefc | ||
|
|
70ac7f9a40 | ||
|
|
f739d54cbc | ||
|
|
fc78fc3192 | ||
|
|
b0e5eb03e1 | ||
|
|
84cff4d6d8 | ||
|
|
e5575a0f50 | ||
|
|
f4961a0bd8 | ||
|
|
e3e810f34e | ||
|
|
57eb1795aa | ||
|
|
37e4d4163f | ||
|
|
59a8c7a049 | ||
|
|
8ef89f6bf1 | ||
|
|
2739602575 | ||
|
|
a7d2264cc1 | ||
|
|
7d8499a7fb | ||
|
|
99a12b8737 | ||
|
|
5b29db341f | ||
|
|
777ce98aa5 | ||
|
|
fe9c94d50c | ||
|
|
6d074928b6 | ||
|
|
1e32bee8e5 | ||
|
|
6281e128aa | ||
|
|
c1c0627dab | ||
|
|
9cfc345041 | ||
|
|
f3a72bff3d | ||
|
|
e906585287 | ||
|
|
b27c6fe415 | ||
|
|
5e888ee895 | ||
|
|
c9f55f5a39 | ||
|
|
1e9939bc8a | ||
|
|
df66746e89 | ||
|
|
5dac23f156 | ||
|
|
a3148f07ac | ||
|
|
75e21feee3 | ||
|
|
334a87aed1 | ||
|
|
ee3418cd60 | ||
|
|
b9ca8a1291 | ||
|
|
280b4308f7 | ||
|
|
45eec1c919 | ||
|
|
7ad5859629 | ||
|
|
bdfe4ca25b | ||
|
|
3020fd24e7 | ||
|
|
0f2a5b3b96 | ||
|
|
8fec59e753 | ||
|
|
7598225ee1 | ||
|
|
8a9d924fc1 | ||
|
|
2bcd993c0f | ||
|
|
e461c14b48 | ||
|
|
c9a6707fdc | ||
|
|
6cb70be4a4 | ||
|
|
403581462e | ||
|
|
9e212fa104 | ||
|
|
b6978f2fd8 | ||
|
|
513372978c | ||
|
|
de9b198496 | ||
|
|
dac9de4d67 | ||
|
|
d56728bd7f | ||
|
|
7fe8ab767c | ||
|
|
403d2fd8a4 | ||
|
|
a9c3207773 | ||
|
|
bf478c0ee2 | ||
|
|
324667b3e6 | ||
|
|
3ccb250d18 | ||
|
|
15b42e2d0c | ||
|
|
181b8650ab | ||
|
|
724d756aa6 | ||
|
|
2f096879d5 | ||
|
|
d3543ff1a2 | ||
|
|
17a6779146 | ||
|
|
116f308a0b | ||
|
|
414a57d97e | ||
|
|
6d7c60fe14 | ||
|
|
718cf55131 | ||
|
|
4d24568a0b | ||
|
|
ab4f3d0d26 | ||
|
|
9f308271b9 | ||
|
|
b2d97eb627 | ||
|
|
6209c63ccf | ||
|
|
fbf99e8a5e | ||
|
|
ebcd2bc9ca | ||
|
|
0b76cc1991 | ||
|
|
9c20e0afb1 | ||
|
|
74eefaeea7 | ||
|
|
5a8758fdd2 | ||
|
|
7b4bf0b15a | ||
|
|
be34781a64 | ||
|
|
e3c14991b3 | ||
|
|
38fc6e5623 | ||
|
|
5dbbe654f0 | ||
|
|
5df1dbb922 | ||
|
|
ef3d25c25b | ||
|
|
d22ab6f9a1 | ||
|
|
b8a15f6f9d | ||
|
|
ebf06a9c2b | ||
|
|
04abf755c2 | ||
|
|
a99bc37d88 | ||
|
|
1807ea9098 | ||
|
|
0b29fc2329 | ||
|
|
ced636025e | ||
|
|
3cfe406a79 | ||
|
|
23a745dcec | ||
|
|
03b1f5bfd2 | ||
|
|
b8c1499111 | ||
|
|
3189fc915e | ||
|
|
127756b838 | ||
|
|
e0b909a67e | ||
|
|
475865b3be | ||
|
|
3a6fd3450d | ||
|
|
81a00ddf55 | ||
|
|
4ff40f1be8 | ||
|
|
8861f7b40a | ||
|
|
96edd9031e | ||
|
|
11f87f2b6d | ||
|
|
86de4151d2 | ||
|
|
edae5a3cea | ||
|
|
d3cc65ce4e | ||
|
|
6593fc1d32 | ||
|
|
633a1e8bb1 | ||
|
|
6a058e69e7 | ||
|
|
e3c5156de9 | ||
|
|
8d379f7b5c | ||
|
|
45ed8456ee | ||
|
|
ef63d61f3d | ||
|
|
6b1ad9951f | ||
|
|
c2c692fe0a | ||
|
|
662299b324 | ||
|
|
25a8b53ff5 | ||
|
|
466b50bca6 | ||
|
|
1fac910c3e | ||
|
|
68e6f2616d | ||
|
|
d0d8529afa | ||
|
|
b36429879d | ||
|
|
c7bc2b78ac | ||
|
|
1afe08af08 | ||
|
|
52707267fc | ||
|
|
e507b2092b | ||
|
|
d23cb8571d | ||
|
|
b2e83ea1a6 | ||
|
|
3d6a9f4d57 | ||
|
|
86356ba4d2 | ||
|
|
801f9e8dc8 | ||
|
|
cbcedaf2bd | ||
|
|
5ada966010 | ||
|
|
587f0b8609 | ||
|
|
f46e3dcfc2 | ||
|
|
a0e7ddd632 | ||
|
|
3267c68c3b | ||
|
|
c829c94e54 | ||
|
|
39b96cc544 | ||
|
|
5a79b71e70 | ||
|
|
57b230e91d | ||
|
|
b7a2aca34e | ||
|
|
cbda2deda2 | ||
|
|
779e9c64c1 | ||
|
|
26d488a979 | ||
|
|
ef7d4a2b4b | ||
|
|
c6102d3b2a | ||
|
|
4d7d4cc109 | ||
|
|
f717624bfa | ||
|
|
2114a80dbb | ||
|
|
5df3500a9f | ||
|
|
393fbd30b0 | ||
|
|
9dc1e0a9e2 | ||
|
|
4875508f70 | ||
|
|
b1c00233b3 | ||
|
|
f85e65ba32 | ||
|
|
150d2e7404 | ||
|
|
2b997135e5 | ||
|
|
3e815ed590 | ||
|
|
550d3207ad | ||
|
|
f78a1fdf95 | ||
|
|
b7545e0092 | ||
|
|
679a69f25c | ||
|
|
20e439f9d8 | ||
|
|
5d3e2cdbb9 | ||
|
|
93859297c1 | ||
|
|
2258ab23ef | ||
|
|
9b0c12a1c2 | ||
|
|
8ff8443b5e | ||
|
|
6295496d15 | ||
|
|
6e2ce11b26 | ||
|
|
bcffe2abb9 | ||
|
|
da132b379a | ||
|
|
116656e62e | ||
|
|
7be11b4e08 | ||
|
|
8521819a46 | ||
|
|
9a6529b17f | ||
|
|
26e96f362a | ||
|
|
267abc2050 | ||
|
|
dcc9d0c4af | ||
|
|
4b5c01e3e7 | ||
|
|
1ef7add534 | ||
|
|
93ca53d489 | ||
|
|
604dd4d648 | ||
|
|
4d5d0c9063 | ||
|
|
7f2b20dc98 | ||
|
|
7ad5c226e6 | ||
|
|
a3bb05242f | ||
|
|
180da3ed5a | ||
|
|
ddc7c197c8 | ||
|
|
da72afeb7c | ||
|
|
913432232d | ||
|
|
84ce45b8f0 | ||
|
|
b003ed7394 | ||
|
|
941077c11c | ||
|
|
2116c4a964 | ||
|
|
0a5111d7eb | ||
|
|
c4962114b6 | ||
|
|
8050c34174 | ||
|
|
f172c50d2b | ||
|
|
12b438d05a | ||
|
|
26215c258b | ||
|
|
71ac0ad43a | ||
|
|
ca026ecbaa | ||
|
|
5b124c0ce2 | ||
|
|
355b57b26f | ||
|
|
eeccc74128 | ||
|
|
8751363df8 | ||
|
|
f729181262 | ||
|
|
a6f2f33ccf | ||
|
|
bb18bdb932 | ||
|
|
4a7946ab7d | ||
|
|
3203ac14d3 | ||
|
|
98edef2233 | ||
|
|
732c1a3926 | ||
|
|
9c1e7c5c98 | ||
|
|
19352fdd03 | ||
|
|
8b159cc64d | ||
|
|
8d9e54130d | ||
|
|
a473ef2e92 | ||
|
|
dfb26f49a2 | ||
|
|
86a39802d3 | ||
|
|
a5f17c318d | ||
|
|
90733963e5 | ||
|
|
5dc06c341c | ||
|
|
03646de1a5 | ||
|
|
811a9a4992 | ||
|
|
fa545d2806 | ||
|
|
5079d57766 | ||
|
|
2d7c1718b4 | ||
|
|
b947601083 | ||
|
|
fe8ef083aa | ||
|
|
930ca716ca | ||
|
|
8f0294b763 | ||
|
|
cde884faae | ||
|
|
377dc2a48d | ||
|
|
7a4f4a8f79 | ||
|
|
97cc3ee2a7 | ||
|
|
12e38343f8 | ||
|
|
151d04a870 | ||
|
|
a5317799e8 | ||
|
|
d96b8e0e83 | ||
|
|
bbe2f33399 | ||
|
|
c8008b441a | ||
|
|
d4f3c9c6a1 | ||
|
|
f7d16d846c | ||
|
|
dd4032e515 | ||
|
|
84a9ea5572 | ||
|
|
5e8a5590ce | ||
|
|
fb55d6d6d3 | ||
|
|
b0afb983c9 | ||
|
|
e56bab67b8 | ||
|
|
f3fd6762c3 | ||
|
|
59b8f81283 | ||
|
|
44a9e8b2af | ||
|
|
31c39eea55 | ||
|
|
f9a0874e58 | ||
|
|
1858425944 | ||
|
|
b04228f0fd | ||
|
|
4263a341e1 | ||
|
|
8b9f7a929b | ||
|
|
4d7edfd687 | ||
|
|
289e9ca02a | ||
|
|
d7ce96a5d0 | ||
|
|
bf13b5c1e0 | ||
|
|
0b31e5d7a1 | ||
|
|
f78303abef | ||
|
|
06c735ba8a | ||
|
|
e7fab1da26 | ||
|
|
22ff01e2a5 | ||
|
|
f8f0d91386 | ||
|
|
d70c81d1d1 | ||
|
|
8e53d91682 | ||
|
|
c32d350550 | ||
|
|
fe17cddec8 | ||
|
|
33c4c5a021 | ||
|
|
04ea39073b | ||
|
|
d7aa1f1bf4 | ||
|
|
2c0e21b28b | ||
|
|
487ac86d47 | ||
|
|
726d87d15a | ||
|
|
d50e05315f | ||
|
|
3fb5bab343 | ||
|
|
4bcd1edff5 | ||
|
|
42ab16405d | ||
|
|
c78db1dd24 | ||
|
|
200b6a7eb9 | ||
|
|
410335c46d | ||
|
|
76dc969363 | ||
|
|
3772f83fe0 | ||
|
|
f2258e3eac | ||
|
|
a40c9e2ca1 | ||
|
|
241e2f5e14 | ||
|
|
afdf4e74be | ||
|
|
a9180719b6 | ||
|
|
88844fea42 | ||
|
|
f5700d5304 | ||
|
|
dacd05b9fb | ||
|
|
5db65fa3a1 | ||
|
|
b7eb9e22d6 | ||
|
|
b9de954690 | ||
|
|
07c933e677 | ||
|
|
bdb8221213 | ||
|
|
4573f5e8f6 | ||
|
|
a170f55a22 | ||
|
|
a6f0a07bf9 | ||
|
|
1816894ccf | ||
|
|
07f289d1e0 | ||
|
|
b61918d516 | ||
|
|
824dfeb166 | ||
|
|
6aa90fc091 | ||
|
|
5641c3116e | ||
|
|
e5c80a2c84 | ||
|
|
fc3f505189 | ||
|
|
ff950a035d | ||
|
|
98114bd294 | ||
|
|
37d497d47a | ||
|
|
fae4957a71 | ||
|
|
0d9872021d | ||
|
|
30443a5b9a | ||
|
|
2eb5fd26de | ||
|
|
01852ef055 | ||
|
|
59c0de46e2 | ||
|
|
f8d9e042bb | ||
|
|
0596d375b7 | ||
|
|
47c5a6e73b | ||
|
|
022463b9a2 | ||
|
|
d19f471352 | ||
|
|
8f2f38bf07 | ||
|
|
4fe82abbfc | ||
|
|
32710eff1d | ||
|
|
21eaa3de04 | ||
|
|
773ddf8bc2 | ||
|
|
14e0d86df8 | ||
|
|
333fb6eb6e | ||
|
|
da0893fdb3 | ||
|
|
ce2b680a43 | ||
|
|
b1cc95d972 | ||
|
|
10eb52e651 | ||
|
|
13b3dadb45 | ||
|
|
cff69bef5e | ||
|
|
536082ae6e | ||
|
|
3f069b84c9 | ||
|
|
ddca8001cc | ||
|
|
02b4427260 | ||
|
|
ec5618dd1f | ||
|
|
e8f742a627 | ||
|
|
45946e3ac9 | ||
|
|
e3e5f8b36e | ||
|
|
1435411861 | ||
|
|
86b7e7348e | ||
|
|
d2bd2d1397 | ||
|
|
8895b27552 | ||
|
|
57424857b0 | ||
|
|
2ced408994 | ||
|
|
976f01cee1 | ||
|
|
4d5f80a01d | ||
|
|
0327e676dd | ||
|
|
91ea65d2a3 | ||
|
|
de5fcf27f3 | ||
|
|
fe6813736c | ||
|
|
dc35af0bc0 | ||
|
|
0c0bf1aafd | ||
|
|
62dab0dde9 | ||
|
|
31a2d46996 | ||
|
|
710a205f99 | ||
|
|
69a956f3c2 | ||
|
|
7839403266 | ||
|
|
6e50104da4 | ||
|
|
edb2431cf9 | ||
|
|
67204d8e3c | ||
|
|
a0047a9d3e | ||
|
|
cf4aa9021d | ||
|
|
3e99dc2955 | ||
|
|
2ed2c27906 | ||
|
|
a79bab670f | ||
|
|
a7e2ac7686 | ||
|
|
98e295e768 | ||
|
|
751a22fe68 | ||
|
|
dba1d7b6eb | ||
|
|
9fa2e3ebb0 | ||
|
|
f70f34e009 | ||
|
|
644d26546c | ||
|
|
b0a0c92e50 | ||
|
|
d3540ccc0a | ||
|
|
735f4392dd | ||
|
|
95cd2370fc | ||
|
|
a0bea44274 | ||
|
|
989adde3ef | ||
|
|
399f59981d | ||
|
|
37956ea4ef | ||
|
|
51d936bc90 | ||
|
|
d9796410bc | ||
|
|
a842e1f7db | ||
|
|
bc361a2e86 | ||
|
|
4d6ae27518 | ||
|
|
adacb6235e | ||
|
|
78c410cf50 | ||
|
|
f2755ae5bb | ||
|
|
fdd5b6bf9d | ||
|
|
4438e6c780 | ||
|
|
1513b7c42f | ||
|
|
76eea831ca | ||
|
|
1b6e05083d | ||
|
|
fddede57fd | ||
|
|
58f7345b42 | ||
|
|
83704e306f | ||
|
|
27311f53e6 | ||
|
|
d3946450eb | ||
|
|
96ca325a25 | ||
|
|
90f94d6053 | ||
|
|
1b3598b2fe | ||
|
|
58e6bac74d | ||
|
|
5ffa442c5f | ||
|
|
dd5c1ee243 | ||
|
|
4c73649b9c | ||
|
|
8878aebe0b | ||
|
|
236840919d | ||
|
|
ab5544691a | ||
|
|
19557551fe | ||
|
|
8aa6aac2a7 | ||
|
|
23e6e44073 | ||
|
|
5342b83345 | ||
|
|
b80e466533 | ||
|
|
77b54feeb6 | ||
|
|
6b08c123e2 | ||
|
|
c710b4c9b2 | ||
|
|
094a8f295a | ||
|
|
753ece23d6 | ||
|
|
d2bea3802e | ||
|
|
3ecacd3fa9 | ||
|
|
4f692138fc | ||
|
|
cb42a5fc2a | ||
|
|
316f959234 | ||
|
|
6fdd4b75e8 | ||
|
|
486d7ea002 | ||
|
|
ce9416e943 | ||
|
|
baa70a104a | ||
|
|
7212d6848a | ||
|
|
b723378eb2 | ||
|
|
5889d1edcd | ||
|
|
c11ff21499 | ||
|
|
31c8f85ba5 | ||
|
|
b08c6285e6 | ||
|
|
56f4c14318 | ||
|
|
c44e9ecfed | ||
|
|
6aaaf6d9ae | ||
|
|
3b0031c251 | ||
|
|
75a010fe77 | ||
|
|
712e44e26c | ||
|
|
44adf6427b | ||
|
|
0bc2dbac4a | ||
|
|
9bbab6b595 | ||
|
|
460f4e9866 | ||
|
|
f944c93faa | ||
|
|
2c7bfef0f0 | ||
|
|
6f5b2aa360 | ||
|
|
d08cad3642 | ||
|
|
d2d055dd37 | ||
|
|
7feb705d73 | ||
|
|
b0ec1a073b | ||
|
|
c0a40529a9 | ||
|
|
7bb9a5f783 | ||
|
|
00522bc950 | ||
|
|
0632c3a023 | ||
|
|
6f9b8a6d42 | ||
|
|
72c797bf83 | ||
|
|
5f12bd7538 | ||
|
|
7b4c3bb26d | ||
|
|
4bcc79fdb7 | ||
|
|
7d4a6fb8d3 | ||
|
|
5194dea1b8 | ||
|
|
5f510cdfa2 | ||
|
|
564aff23a6 | ||
|
|
f057a7db05 | ||
|
|
47c0bdcd47 | ||
|
|
d80a4f4b3c | ||
|
|
fac11ec5ed | ||
|
|
66e8b280de | ||
|
|
ceed0e42b3 | ||
|
|
564093e0ec | ||
|
|
af3fff4034 | ||
|
|
254ffb3f39 | ||
|
|
a66f3c3973 | ||
|
|
edaa3b828b | ||
|
|
76cb7b91ee | ||
|
|
2048827c45 | ||
|
|
1f478cfb22 | ||
|
|
e74074ffd0 | ||
|
|
20b557ff97 | ||
|
|
28f84c768e | ||
|
|
1d281004e7 | ||
|
|
f6f0f79954 | ||
|
|
656bac1a6f | ||
|
|
66344c51fb | ||
|
|
23947beecc | ||
|
|
876a442362 | ||
|
|
4ef4a9b03e | ||
|
|
e9dd3d5845 | ||
|
|
eb24e34899 | ||
|
|
b44fbefc97 | ||
|
|
cbffbb0358 | ||
|
|
52c7a8474f | ||
|
|
4f5f564b59 | ||
|
|
00ead85ab7 | ||
|
|
9330b95147 | ||
|
|
4ee9c847da | ||
|
|
29180a95b1 | ||
|
|
1124d82687 | ||
|
|
795abf74ab | ||
|
|
47cbdd9c1d | ||
|
|
9b527b7793 | ||
|
|
e919f1b9f5 | ||
|
|
73f3c83940 | ||
|
|
1425f426dc | ||
|
|
3e37250d44 | ||
|
|
3be78775ca | ||
|
|
ab1c7ab563 | ||
|
|
7c2483d73e | ||
|
|
1975848ecc | ||
|
|
e79506b303 | ||
|
|
9f32edad63 | ||
|
|
3278b31a8f | ||
|
|
ec6c7aede8 | ||
|
|
0516232bb3 | ||
|
|
44f97181ae | ||
|
|
cf762df972 | ||
|
|
6a90829744 | ||
|
|
d37086a434 | ||
|
|
5ce5dc7fae | ||
|
|
851894dceb | ||
|
|
6837a1070b | ||
|
|
dbad5f4cda | ||
|
|
482a20430d | ||
|
|
85751cee2b | ||
|
|
12467815ae | ||
|
|
883d5ccc77 | ||
|
|
0d7b33c362 | ||
|
|
79a6d3d04a | ||
|
|
6bbb649ee6 | ||
|
|
919d3ec3b0 | ||
|
|
c5ea59aeb1 | ||
|
|
b3010afba7 | ||
|
|
de958c9383 | ||
|
|
1bd3a43dbe | ||
|
|
5fa83394a0 | ||
|
|
51537e8725 | ||
|
|
071386d552 | ||
|
|
ec9a0985ce | ||
|
|
71dffd6eb3 | ||
|
|
560a88b0b9 | ||
|
|
626717cc28 | ||
|
|
8dc1964f8c | ||
|
|
d72e946213 | ||
|
|
24edbff859 | ||
|
|
77da2dc873 | ||
|
|
d9414782b2 | ||
|
|
d1b127164e | ||
|
|
db8d9c67b6 | ||
|
|
c9a3a0c7f2 | ||
|
|
0e4d211eaf | ||
|
|
57daaf3e4d | ||
|
|
bc1e309b13 | ||
|
|
09778b2d14 | ||
|
|
89c00a7e21 | ||
|
|
bb026a7318 | ||
|
|
566d1284f2 | ||
|
|
b5b2a7d70d | ||
|
|
93e407f4a5 | ||
|
|
ad7b141cc6 | ||
|
|
f23beab07e | ||
|
|
c582175d35 | ||
|
|
1b1a572f73 | ||
|
|
7c9ffbbde9 | ||
|
|
5404108cc1 | ||
|
|
5c2d6956fd | ||
|
|
fad623ed6a | ||
|
|
263dd2cb40 | ||
|
|
2d56d067e3 | ||
|
|
759507f196 | ||
|
|
e048c65cdb | ||
|
|
41cd5f00bc | ||
|
|
7ab968c4a6 | ||
|
|
462f63a294 | ||
|
|
f75793c5e4 | ||
|
|
521ee29ab8 | ||
|
|
91690f9453 | ||
|
|
aa0db3c528 | ||
|
|
a727d2df26 | ||
|
|
8f818051b0 | ||
|
|
1fb98118c6 | ||
|
|
967e2bc695 | ||
|
|
0855c0a41d | ||
|
|
bff384e677 | ||
|
|
3b2545cf82 | ||
|
|
762ab7ce36 | ||
|
|
ab31e7b4d4 | ||
|
|
cd17aa3a53 | ||
|
|
d99fda59a3 | ||
|
|
ddbd03760b | ||
|
|
7078f10150 | ||
|
|
6c733e96c9 | ||
|
|
720008f9fb | ||
|
|
ade11eb80f | ||
|
|
d8a6642d5f | ||
|
|
2464064226 | ||
|
|
591d74d0c5 | ||
|
|
14286a0025 | ||
|
|
ddce5829d5 | ||
|
|
ebd9fc4bfe | ||
|
|
6f8d99b39e | ||
|
|
65634a18d1 | ||
|
|
827ace8dca | ||
|
|
baa5b0d14f | ||
|
|
b633491b91 | ||
|
|
9f331b6a92 | ||
|
|
b5de22ff13 | ||
|
|
e4c9a95f7c | ||
|
|
90001b6c23 | ||
|
|
19fec61902 | ||
|
|
acc63cc478 | ||
|
|
7a4bcd3b52 | ||
|
|
4017b59f97 | ||
|
|
407a40e32e | ||
|
|
714700f6b5 | ||
|
|
d60baf1895 | ||
|
|
14418d6fa1 | ||
|
|
2db16f09c7 | ||
|
|
178aa1de9c | ||
|
|
6716704dc3 | ||
|
|
d7d7d62971 | ||
|
|
737c0f4205 | ||
|
|
766145275a | ||
|
|
7517a5448e | ||
|
|
80a0f1a1c1 | ||
|
|
5933194570 | ||
|
|
898ce5bf87 | ||
|
|
fbc7cb5452 | ||
|
|
5c646d214c | ||
|
|
6f11230a87 | ||
|
|
a63acf4f45 | ||
|
|
a41cd3f0c4 | ||
|
|
9fc0402b0f | ||
|
|
4852987aae | ||
|
|
83632761a4 | ||
|
|
2229a51b66 | ||
|
|
86a826edaf | ||
|
|
b6dc6dd876 | ||
|
|
4ed60073d2 | ||
|
|
7d01c963b8 | ||
|
|
80047e536d | ||
|
|
4bcabff630 | ||
|
|
be4ad97832 | ||
|
|
f2b8b43bae | ||
|
|
00f1ec7906 | ||
|
|
f8aae84bc4 | ||
|
|
2a7df734de | ||
|
|
4308247624 | ||
|
|
5f19a9f89d | ||
|
|
34a21a931d | ||
|
|
2b0c8ba7a0 | ||
|
|
2c30f5eb5b | ||
|
|
dfb7d8472c | ||
|
|
d87b269bae | ||
|
|
c84c7b5fa0 | ||
|
|
03de867572 | ||
|
|
483540488a | ||
|
|
f55876514f | ||
|
|
bf7ec06957 | ||
|
|
874a850087 | ||
|
|
4b0a455147 | ||
|
|
624f1722b6 | ||
|
|
72f12bbff5 | ||
|
|
57ef958250 | ||
|
|
2814599943 | ||
|
|
2942e84a6f | ||
|
|
148a70ccb8 | ||
|
|
5f0c6cb961 | ||
|
|
bb3ae7eb88 | ||
|
|
64d2805c72 | ||
|
|
533599e5d4 | ||
|
|
cec527453a | ||
|
|
2d35bbb4da | ||
|
|
7091101b04 | ||
|
|
848ad08efc | ||
|
|
2620373fb6 | ||
|
|
afc8a3d764 | ||
|
|
6c1ba95f89 | ||
|
|
c5cd400eb8 | ||
|
|
bd2868746d | ||
|
|
cc7692d7eb | ||
|
|
fd01232a26 | ||
|
|
5fa93764b2 | ||
|
|
588ed3c77e | ||
|
|
6e3f669c13 | ||
|
|
23a9c5da4d | ||
|
|
344a3e633a | ||
|
|
0a0881017a | ||
|
|
76e0987c57 | ||
|
|
e0b6ae275d | ||
|
|
c9fe87014e | ||
|
|
2b94b5e316 | ||
|
|
0c4bf2a6b1 | ||
|
|
b9448026d7 | ||
|
|
90745b07ac | ||
|
|
40d97292d2 | ||
|
|
06fdd51104 | ||
|
|
a09a7e4930 | ||
|
|
121ac2bdfe | ||
|
|
e9c088a86b | ||
|
|
d4e03ec759 | ||
|
|
2d767569c9 | ||
|
|
eecec39725 | ||
|
|
99ec42bf35 | ||
|
|
e2f6fce850 | ||
|
|
9f2cd33a82 | ||
|
|
556cc482d8 | ||
|
|
fe9cd61d1d | ||
|
|
08b2bcb88b | ||
|
|
0072e98fad | ||
|
|
0befb3c5b1 | ||
|
|
5e0f9a4898 | ||
|
|
588a8d6b7c | ||
|
|
331a64e387 | ||
|
|
f40781a9eb | ||
|
|
490fedf463 | ||
|
|
12466ef9cb | ||
|
|
c75fc7f1eb | ||
|
|
4c78e47404 | ||
|
|
4b80441164 | ||
|
|
e2cc2f9fd7 | ||
|
|
b669733bd8 | ||
|
|
5a769fa22b | ||
|
|
8bbf27526e | ||
|
|
4270450a03 | ||
|
|
802360b008 | ||
|
|
ccd11d38f8 | ||
|
|
996c18fca0 | ||
|
|
0cb7cbcb49 | ||
|
|
19f12038cd | ||
|
|
ebc7c070f3 | ||
|
|
7acb3c3874 | ||
|
|
e3ca2c3fbc | ||
|
|
ac1accce96 | ||
|
|
c39185abab | ||
|
|
6729c9c33f | ||
|
|
4e4a7aa19e | ||
|
|
5d8ce8bfb8 | ||
|
|
92b811b329 | ||
|
|
8c8a357aa7 | ||
|
|
f2770b4609 | ||
|
|
7c21754b74 | ||
|
|
547a9e9fbf | ||
|
|
fd6a223876 | ||
|
|
2fd71f00d6 | ||
|
|
0301a40560 | ||
|
|
05da03a259 | ||
|
|
6e1763332a | ||
|
|
5bbf27de9c | ||
|
|
54f628f7a6 | ||
|
|
4743eb46c1 | ||
|
|
66393a80f2 | ||
|
|
c6c8de7357 | ||
|
|
cbbbb20751 | ||
|
|
604f4d8046 | ||
|
|
579d5e0844 | ||
|
|
5c3e1d06c0 | ||
|
|
d1663de1d7 | ||
|
|
1571040eae | ||
|
|
8221a26c2d | ||
|
|
9996836253 | ||
|
|
7aaa1e3edb | ||
|
|
532ecbd449 | ||
|
|
e66059f621 | ||
|
|
3344040630 | ||
|
|
6afe786cad | ||
|
|
5f4307932a | ||
|
|
4978c3e648 | ||
|
|
f0223a2505 | ||
|
|
727c407435 | ||
|
|
c63a250f2b | ||
|
|
161b98ef43 | ||
|
|
2417b74ea5 | ||
|
|
620ed70246 | ||
|
|
847dc0080a | ||
|
|
d12600e076 | ||
|
|
7d60f558d5 | ||
|
|
5602e420fc | ||
|
|
7a25006fa5 | ||
|
|
5846093a7f | ||
|
|
88bd1d9c16 | ||
|
|
dc4797bb59 | ||
|
|
15b5bddab8 | ||
|
|
2b8444b78f | ||
|
|
f1d276c988 | ||
|
|
b695a8c469 | ||
|
|
0d0cb83ed6 | ||
|
|
943bb576a9 | ||
|
|
08e9c3d596 | ||
|
|
209e6ebb08 | ||
|
|
202e539cca | ||
|
|
edcd2df6bc | ||
|
|
3f679d72cf | ||
|
|
2e09541c84 | ||
|
|
6885f41b61 | ||
|
|
69d33e7483 | ||
|
|
d175082520 | ||
|
|
2ef31d2e08 | ||
|
|
eab439d450 | ||
|
|
27417cda70 | ||
|
|
2959d2a2ae | ||
|
|
289aecc1ed | ||
|
|
01d2ce36d1 | ||
|
|
cbea9ee045 | ||
|
|
ea980a4150 | ||
|
|
2910b10f99 | ||
|
|
d5f14d56f3 | ||
|
|
c3a80b086c | ||
|
|
7616cef9cc | ||
|
|
1f54d88867 | ||
|
|
12c388093f | ||
|
|
190a4203eb | ||
|
|
0fdd608828 | ||
|
|
697132baf9 | ||
|
|
b25a9f2ae4 | ||
|
|
7b55f61396 | ||
|
|
f3faaf06f8 | ||
|
|
6dc941d4e6 | ||
|
|
ce15155956 | ||
|
|
8ab68b94ac | ||
|
|
0753f23078 | ||
|
|
859296885f | ||
|
|
a37961ef9c | ||
|
|
8802c7ccc3 | ||
|
|
941d5544cf | ||
|
|
d453d9327e | ||
|
|
ac00131153 | ||
|
|
796cc6c1bb | ||
|
|
8709e30841 | ||
|
|
8f9f9a48a6 | ||
|
|
cfeb63b855 | ||
|
|
904a3c26df | ||
|
|
764c890892 | ||
|
|
3553b4da51 | ||
|
|
0f6a24a2fb | ||
|
|
3704111fb0 | ||
|
|
f8e378863e | ||
|
|
9526df1b84 | ||
|
|
e9ea1ce659 | ||
|
|
9f4e6c3f06 | ||
|
|
4292ceb062 | ||
|
|
2609124346 | ||
|
|
902da70ee3 | ||
|
|
dd9243d459 | ||
|
|
014181a653 | ||
|
|
92bf709d65 | ||
|
|
842ec2728e | ||
|
|
b8d0751509 | ||
|
|
514909aa05 | ||
|
|
85922dbad7 | ||
|
|
a7b70df915 | ||
|
|
36237ef658 | ||
|
|
743d3209e8 | ||
|
|
814eaab300 | ||
|
|
40d277b666 | ||
|
|
a1411968b8 | ||
|
|
2ba25a5922 | ||
|
|
e54a5982e3 | ||
|
|
203cf029d1 | ||
|
|
dac7e45651 | ||
|
|
0dc07384eb | ||
|
|
e58e166428 | ||
|
|
4ad45db655 | ||
|
|
2683896f41 | ||
|
|
2e13d9f7a4 | ||
|
|
1f90648347 | ||
|
|
6bf2185257 | ||
|
|
6f2becc42e | ||
|
|
cf21a1daee | ||
|
|
79501bceec | ||
|
|
64d300d15e | ||
|
|
eead25896f | ||
|
|
2f4fb88e07 | ||
|
|
2ac200cdb2 | ||
|
|
7f589ecade | ||
|
|
0b4a368d03 | ||
|
|
e8da9bce72 | ||
|
|
e488c43eb7 | ||
|
|
b1cb94ef71 | ||
|
|
56a6658bf1 | ||
|
|
4be8324767 | ||
|
|
09a5593e2f | ||
|
|
c987b72033 | ||
|
|
cbd894a634 | ||
|
|
33273e3954 | ||
|
|
f28698f71a | ||
|
|
56719e7bcd | ||
|
|
febc9727bf | ||
|
|
2ae3b8bca0 | ||
|
|
352283d0b6 | ||
|
|
f0696d396f | ||
|
|
8729ae1210 | ||
|
|
17c0d8125e | ||
|
|
67a3ed3b57 | ||
|
|
342238325e | ||
|
|
080280c268 | ||
|
|
17dd6696df | ||
|
|
d0a4851a67 | ||
|
|
a09ba7c603 | ||
|
|
a734aa2b26 | ||
|
|
1987951014 | ||
|
|
c8f6e8c084 | ||
|
|
4101fe3880 | ||
|
|
9833090318 | ||
|
|
8169d9863b | ||
|
|
ecac87dc6a | ||
|
|
4865649d0f | ||
|
|
fe20494d30 | ||
|
|
b356b1b0d6 | ||
|
|
fc3c841d03 | ||
|
|
3d0d1df324 | ||
|
|
789ae74e0a | ||
|
|
bcccc5d1d5 | ||
|
|
5c7a766658 | ||
|
|
abdf5423f5 | ||
|
|
8775436cdb | ||
|
|
3557ea50c6 | ||
|
|
2c4ae3ea42 | ||
|
|
e5e62fd2d9 | ||
|
|
f3b2b05169 | ||
|
|
b00f8e75f6 | ||
|
|
b604fe74b5 | ||
|
|
3082fb7a15 | ||
|
|
41ff65162b | ||
|
|
f778beaafd | ||
|
|
a018b55038 | ||
|
|
03b600fb67 | ||
|
|
358b8ef579 | ||
|
|
b2c11f5984 | ||
|
|
5d19fe127c | ||
|
|
78fa5c92bc | ||
|
|
438ce2f33a | ||
|
|
cd4dfa5f76 | ||
|
|
05767df99d | ||
|
|
ebd2afa43f | ||
|
|
89e98a6797 | ||
|
|
b924f7a323 | ||
|
|
3ee6aa61a7 | ||
|
|
a047262eb6 | ||
|
|
c208c2aed2 | ||
|
|
8c85870c25 | ||
|
|
6fa1dc7b30 | ||
|
|
35ae5599c1 | ||
|
|
5fe2c8c8a7 | ||
|
|
6b52cabbac | ||
|
|
6a4f196940 | ||
|
|
e21f787125 | ||
|
|
e44852a7e4 | ||
|
|
45a37f390b | ||
|
|
5c0ee9ca53 | ||
|
|
2cc8ecf20a | ||
|
|
9ca3dc91ee | ||
|
|
89eba5e3e8 | ||
|
|
8bc1782589 | ||
|
|
93a55bff8c | ||
|
|
39dec02dc4 | ||
|
|
24dc763c4f | ||
|
|
38f9f65ad8 | ||
|
|
eaed758aa0 | ||
|
|
705766a5ee | ||
|
|
23a99c04e9 | ||
|
|
1a1e9732b9 | ||
|
|
4cafcc053e | ||
|
|
30e2c7117c | ||
|
|
7190af4e79 | ||
|
|
2898584ee3 |
7
.clang-format
Normal file
@@ -0,0 +1,7 @@
|
||||
BreakBeforeBraces: Allman
|
||||
ColumnLimit: 0
|
||||
IndentCaseLabels: true
|
||||
IndentWidth: 8
|
||||
TabWidth: 8
|
||||
UseTab: Always
|
||||
SortIncludes: false
|
||||
36
.github/CONTRIBUTING.md
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
# Contributors Guide
|
||||
|
||||
Please read and understand the contribution guide before creating an issue or pull request. We would like to thank [Nishad TR](https://github.com/nishad) for their contributor's guide, upon which we based ours.
|
||||
|
||||
## Etiquette
|
||||
|
||||
This project is open source, and as such, we (the maintainers) give our **free time** to build, maintain and **provide user support** for the CCExtractor program. We make the code freely available in the hope that it will be of use to other developers and users. It would be extremely unfair for us to suffer abuse or anger for our hard work.
|
||||
|
||||
Please be considerate towards the developers and other users when raising issues or presenting pull requests.
|
||||
|
||||
It's the duty of the maintainer to ensure that all submissions to the project are of sufficient quality to benefit the project. Many developers have different skillsets, strengths, and weaknesses. Respect the decision of the maintainers, and do not be upset or abusive if your submission is not used.
|
||||
|
||||
## Viability
|
||||
|
||||
When requesting or submitting new features, first consider whether it might be useful to others. Open source projects are used by many developers, who may have entirely different needs to your own. Think about whether or not your feature is likely to be used by other users of the project.
|
||||
|
||||
## Procedure
|
||||
|
||||
**Before filing an issue**:
|
||||
|
||||
- Attempt to replicate the problem, to ensure that it wasn't a coincidental incident.
|
||||
- Check to make sure your feature suggestion isn't already present within the project.
|
||||
- Check the pull requests tab to ensure that the bug doesn't have a fix in progress.
|
||||
- Check the pull requests tab to ensure that the feature isn't already in progress.
|
||||
|
||||
**Before submitting a pull request**:
|
||||
|
||||
- Ensure that your submission is [viable](#viability) for the project.
|
||||
- Check the codebase to ensure that your feature doesn't already exist.
|
||||
- Check the pull requests to ensure that another person hasn't already submitted the feature or fix.
|
||||
|
||||
## Technical requirements
|
||||
|
||||
- Before Submitting your Pull Request, merge `master` with your new branch and fix any conflicts. (Make sure you don't break anything in development!)
|
||||
- Commit Unix line endings.
|
||||
- Make sure to reasonably test your code. We have a sample platform that runs a test-suite for you, but it only covers a general set of tests.
|
||||
47
.github/ISSUE_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
Please prefix your issue with one of the following: [BUG], [PROPOSAL], [QUESTION].
|
||||
|
||||
To get the version of CCExtractor, you can use `--version`.
|
||||
|
||||
If this issue is related to the flutter GUI, please make the issue on the GUI repo [here](https://github.com/CCExtractor/ccextractorfluttergui/issues/new)
|
||||
|
||||
Please check all that apply and **remove the ones that do not**.
|
||||
|
||||
In the necessary information section, if this is a regression (something that used to work does not work anymore), make sure to specify the last known working version.
|
||||
|
||||
Only specify the minimum number of arguments needed to reproduce the issue.
|
||||
|
||||
In the additional information section, describe your problem.
|
||||
|
||||
Please make the affected input file available for us (no screenshots, those don't help!). Public links to Dropbox, Google Drive, etc, are all fine. If it is not possible to make it available publicly, send us a private invitation (both Dropbox and Google Drive allow that). In this case we will download the file and upload it to the private developer repository. Methods to send the private invitation to us can be found [here](https://ccextractor.org/public:general:support#email).
|
||||
|
||||
Do **not** upload your file to any location that will require us to sign up or endure a wait list, slow downloads, etc. If your upload expires make sure you keep it active somehow (replace links if needed). Keep in mind that while we go over all tickets some may take a few days, and it's important we have the file available when we actually need it.
|
||||
|
||||
Make sure to enable notifications in GitHub so you get notifications about your ticket. We may need to ask questions and we do everything inside GitHub's system.
|
||||
|
||||
Once you have read all of the instructions **delete all the text from here to the top**.
|
||||
|
||||
CCExtractor version: {replace with the version}
|
||||
|
||||
# In raising this issue, I confirm the following:
|
||||
|
||||
- [ ] I have read and understood the [contributors guide](https://github.com/CCExtractor/ccextractor/blob/master/.github/CONTRIBUTING.md).
|
||||
- [ ] I have checked that the bug-fix I am reporting can be replicated, or that the feature I am suggesting isn't already present.
|
||||
- [ ] I have checked that the issue I'm posting isn't already reported.
|
||||
- [ ] I have checked that the issue I'm porting isn't already solved and no duplicates exist in [closed issues](https://github.com/CCExtractor/ccextractor/issues?q=is%3Aissue+is%3Aclosed) and in [opened issues](https://github.com/CCExtractor/ccextractor/issues)
|
||||
- [ ] I have checked the pull requests tab for existing solutions/implementations to my issue/suggestion.
|
||||
- [ ] I have used the latest available version of CCExtractor to verify this issue exists.
|
||||
- [ ] I have ticked all the boxes in this section and to prove it I'm deleting the section completely to remove boilerplate text.
|
||||
|
||||
# Necessary information
|
||||
|
||||
- Is this a regression (i.e. did it work before)? {YES/NO}
|
||||
- What platform did you use? {Window/Linux/Mac}
|
||||
- What were the used arguments? `{replace with the arguments}`
|
||||
|
||||
# Video links
|
||||
|
||||
* {Replace with a link to a video file}
|
||||
|
||||
# Additional information
|
||||
|
||||
{issue content here, replace this line with your issue content}
|
||||
21
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
<!-- Please prefix your pull request with one of the following: **[FEATURE]** **[FIX]** **[IMPROVEMENT]**. -->
|
||||
|
||||
**In raising this pull request, I confirm the following (please check boxes):**
|
||||
|
||||
- [ ] I have read and understood the [contributors guide](https://github.com/CCExtractor/ccextractor/blob/master/.github/CONTRIBUTING.md).
|
||||
- [ ] I have checked that another pull request for this purpose does not exist.
|
||||
- [ ] I have considered, and confirmed that this submission will be valuable to others.
|
||||
- [ ] I accept that this submission may not be used, and the pull request closed at the will of the maintainer.
|
||||
- [ ] I give this submission freely, and claim no ownership to its content.
|
||||
- [ ] **I have mentioned this change in the [changelog](https://github.com/CCExtractor/ccextractor/blob/master/docs/CHANGES.TXT).**
|
||||
|
||||
**My familiarity with the project is as follows (check one):**
|
||||
|
||||
- [ ] I have never used CCExtractor.
|
||||
- [ ] I have used CCExtractor just a couple of times.
|
||||
- [ ] I absolutely love CCExtractor, but have not contributed previously.
|
||||
- [ ] I am an active contributor to CCExtractor.
|
||||
|
||||
---
|
||||
|
||||
{pull request content here}
|
||||
9
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: github-actions
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: daily
|
||||
time: "10:00"
|
||||
timezone: America/Los_Angeles
|
||||
open-pull-requests-limit: 10
|
||||
105
.github/workflows/build_linux.yml
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
name: Build CCExtractor on Linux
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- '.github/workflows/build_linux.yml'
|
||||
- '**.c'
|
||||
- '**.h'
|
||||
- '**Makefile**'
|
||||
- 'linux/**'
|
||||
- 'package_creators/**'
|
||||
- 'src/rust/**'
|
||||
tags-ignore: # ignore push via new tag
|
||||
- '*.*'
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened]
|
||||
paths:
|
||||
- '.github/workflows/build_linux.yml'
|
||||
- '**.c'
|
||||
- '**.h'
|
||||
- '**Makefile**'
|
||||
- 'linux/**'
|
||||
- 'package_creators/**'
|
||||
- 'src/rust/**'
|
||||
jobs:
|
||||
build_shell:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Install tesseract
|
||||
run: sudo apt-get install libtesseract-dev
|
||||
- uses: actions/checkout@v2.4.0
|
||||
- name: build
|
||||
run: ./build
|
||||
working-directory: ./linux
|
||||
- name: Display version information
|
||||
run: ./ccextractor --version
|
||||
working-directory: ./linux
|
||||
- name: Prepare artifacts
|
||||
run: mkdir ./linux/artifacts
|
||||
- name: Copy release artifact
|
||||
run: cp ./linux/ccextractor ./linux/artifacts/
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: CCExtractor Linux build
|
||||
path: ./linux/artifacts
|
||||
build_autoconf:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2.4.0
|
||||
- name: run autogen
|
||||
run: ./autogen.sh
|
||||
working-directory: ./linux
|
||||
- name: configure
|
||||
run: ./configure --enable-debug
|
||||
working-directory: ./linux
|
||||
- name: make
|
||||
run: make
|
||||
working-directory: ./linux
|
||||
- name: Display version information
|
||||
run: ./ccextractor --version
|
||||
working-directory: ./linux
|
||||
cmake:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2.4.0
|
||||
- name: cmake
|
||||
run: mkdir build && cd build && cmake ../src
|
||||
- name: build
|
||||
run: make -j$(nproc)
|
||||
working-directory: build
|
||||
- name: Display version information
|
||||
run: ./build/ccextractor --version
|
||||
cmake_ocr_hardsubx:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2.4.0
|
||||
- name: dependencies
|
||||
run: sudo apt update && sudo apt install libtesseract-dev libavformat-dev libswscale-dev
|
||||
- name: cmake
|
||||
run: mkdir build && cd build && cmake -DWITH_OCR=ON -DWITH_HARDSUBX=ON ../src
|
||||
- name: build
|
||||
run: make -j$(nproc)
|
||||
working-directory: build
|
||||
- name: Display version information
|
||||
run: ./build/ccextractor --version
|
||||
build_rust:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2.4.0
|
||||
- name: cache
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
src/rust/.cargo/registry
|
||||
src/rust/.cargo/git
|
||||
src/rust/target
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||
restore-keys: ${{ runner.os }}-cargo-
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
override: true
|
||||
- name: build
|
||||
run: cargo build
|
||||
working-directory: ./src/rust
|
||||
158
.github/workflows/build_windows.yml
vendored
Normal file
@@ -0,0 +1,158 @@
|
||||
name: Build CCExtractor on Windows
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- ".github/workflows/build_windows.yml"
|
||||
- "**.c"
|
||||
- "**.h"
|
||||
- "windows/**"
|
||||
tags-ignore: # ignore push via new tag
|
||||
- "*.*"
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened]
|
||||
paths:
|
||||
- ".github/workflows/build_windows.yml"
|
||||
- "**.c"
|
||||
- "**.h"
|
||||
- "windows/**"
|
||||
|
||||
jobs:
|
||||
build_non_ocr_release:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v2.4.0
|
||||
- name: Setup MSBuild.exe
|
||||
uses: microsoft/setup-msbuild@v1.0.2
|
||||
- name: Install llvm and clang
|
||||
run: choco install llvm
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: 1.56.0
|
||||
override: true
|
||||
- name: Install Win 10 SDK
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
- name: build Release
|
||||
env:
|
||||
LIBCLANG_PATH: "C:\\Program Files\\LLVM\\lib"
|
||||
LLVM_CONFIG_PATH: "C:\\Program Files\\LLVM\\bin\\llvm-config"
|
||||
CARGO_TARGET_DIR: "..\\..\\windows"
|
||||
BINDGEN_EXTRA_CLANG_ARGS: -fmsc-version=0
|
||||
run: msbuild ccextractor.sln /p:Configuration=Release /p:Platform=x64
|
||||
working-directory: ./windows
|
||||
- name: Display version information
|
||||
run: ./ccextractorwin.exe --version
|
||||
working-directory: ./windows/x64/Release
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: CCExtractor Windows Non-OCR Release build
|
||||
path: |
|
||||
./windows/x64/Release/ccextractorwin.exe
|
||||
./windows/x64/Release/*.dll
|
||||
build_non_ocr_debug:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v2.4.0
|
||||
- name: Setup MSBuild.exe
|
||||
uses: microsoft/setup-msbuild@v1.0.2
|
||||
- name: Install llvm and clang
|
||||
run: choco install llvm
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: 1.56.0
|
||||
override: true
|
||||
- name: Install Win 10 SDK
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
- name: build Debug
|
||||
env:
|
||||
LIBCLANG_PATH: "C:\\Program Files\\LLVM\\lib"
|
||||
LLVM_CONFIG_PATH: "C:\\Program Files\\LLVM\\bin\\llvm-config"
|
||||
CARGO_TARGET_DIR: "..\\..\\windows"
|
||||
BINDGEN_EXTRA_CLANG_ARGS: -fmsc-version=0
|
||||
run: msbuild ccextractor.sln /p:Configuration=Debug /p:Platform=x64
|
||||
working-directory: ./windows
|
||||
- name: Display version information
|
||||
run: ./ccextractorwin.exe --version
|
||||
working-directory: ./windows/x64/Debug
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: CCExtractor Windows Non-OCR Debug build
|
||||
path: |
|
||||
./windows/x64/Debug/ccextractorwin.exe
|
||||
./windows/x64/Debug/ccextractorwin.pdb
|
||||
./windows/x64/Debug/*.dll
|
||||
build_ocr_hardsubx_release:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v2.4.0
|
||||
- name: Setup MSBuild.exe
|
||||
uses: microsoft/setup-msbuild@v1.0.2
|
||||
- name: Install llvm and clang
|
||||
uses: egor-tensin/setup-clang@v1
|
||||
with:
|
||||
version: latest
|
||||
platform: x86
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: 1.56.0
|
||||
override: true
|
||||
target: i686-pc-windows-msvc
|
||||
- name: Install Win 10 SDK
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
- name: build Release-Full
|
||||
env:
|
||||
LIBCLANG_PATH: "C:\\Program Files\\LLVM\\lib"
|
||||
LLVM_CONFIG_PATH: "C:\\Program Files\\LLVM\\bin\\llvm-config"
|
||||
CARGO_TARGET_DIR: "..\\..\\windows"
|
||||
BINDGEN_EXTRA_CLANG_ARGS: -fmsc-version=0
|
||||
run: msbuild ccextractor.sln /p:Configuration=Release-Full /p:Platform=Win32
|
||||
working-directory: ./windows
|
||||
- name: Display version information
|
||||
run: ./ccextractorwinfull.exe --version
|
||||
working-directory: ./windows/Release-Full
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: CCExtractor Windows OCR and HardSubX Release build
|
||||
path: |
|
||||
./windows/Release-Full/ccextractorwinfull.exe
|
||||
./windows/Release-Full/*.dll
|
||||
build_ocr_hardsubx_debug:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v2.4.0
|
||||
- name: Setup MSBuild.exe
|
||||
uses: microsoft/setup-msbuild@v1.0.2
|
||||
- name: Install llvm and clang
|
||||
uses: egor-tensin/setup-clang@v1
|
||||
with:
|
||||
version: latest
|
||||
platform: x86
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: 1.56.0
|
||||
override: true
|
||||
target: i686-pc-windows-msvc
|
||||
- name: Install Win 10 SDK
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
- name: build Debug-Full
|
||||
env:
|
||||
LIBCLANG_PATH: "C:\\Program Files\\LLVM\\lib"
|
||||
LLVM_CONFIG_PATH: "C:\\Program Files\\LLVM\\bin\\llvm-config"
|
||||
CARGO_TARGET_DIR: "..\\..\\windows"
|
||||
BINDGEN_EXTRA_CLANG_ARGS: -fmsc-version=0
|
||||
run: msbuild ccextractor.sln /p:Configuration=Debug-Full /p:Platform=Win32
|
||||
working-directory: ./windows
|
||||
- name: Display version information
|
||||
run: ./ccextractorwinfull.exe --version
|
||||
working-directory: ./windows/Debug-Full
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: CCExtractor Windows OCR and HardSubX Debug build
|
||||
path: |
|
||||
./windows/Debug-Full/ccextractorwinfull.exe
|
||||
./windows/Debug-Full/ccextractorwinfull.pdb
|
||||
./windows/Debug-Full/*.dll
|
||||
51
.github/workflows/format.yml
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
name: Format sourcecode
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- '.github/workflows/format.yml'
|
||||
- 'src/**.c'
|
||||
- 'src/**.h'
|
||||
- 'src/rust/**'
|
||||
tags-ignore: # ignore push via new tag
|
||||
- '*.*'
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened]
|
||||
paths:
|
||||
- '.github/workflows/format.yml'
|
||||
- 'src/**.c'
|
||||
- 'src/**.h'
|
||||
- 'src/rust/**'
|
||||
jobs:
|
||||
format:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2.4.0
|
||||
- name: Format code
|
||||
run: |
|
||||
find src/ -type f -not -path "src/thirdparty/*" -not -path "src/lib_ccx/zvbi/*" -name '*.c' -not -path "src/GUI/icon_data.c" | xargs clang-format -i
|
||||
git diff-index --quiet HEAD -- || (git diff && exit 1)
|
||||
format_rust:
|
||||
runs-on: ubuntu-latest
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ./src/rust
|
||||
steps:
|
||||
- uses: actions/checkout@v2.4.0
|
||||
- name: cache
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
src/rust/.cargo/registry
|
||||
src/rust/.cargo/git
|
||||
src/rust/target
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||
restore-keys: ${{ runner.os }}-cargo-
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
override: true
|
||||
components: rustfmt, clippy
|
||||
- name: rustfmt
|
||||
run: cargo fmt --all -- --check
|
||||
- name: clippy
|
||||
run: cargo clippy -- -D warnings
|
||||
82
.github/workflows/release.yml
vendored
Normal file
@@ -0,0 +1,82 @@
|
||||
name: Upload releases
|
||||
|
||||
on:
|
||||
release:
|
||||
types:
|
||||
- created
|
||||
|
||||
jobs:
|
||||
build_windows:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v2.4.0
|
||||
- name: Get the version
|
||||
id: get_version
|
||||
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\/v/}
|
||||
shell: bash
|
||||
- name: Setup MSBuild.exe
|
||||
uses: microsoft/setup-msbuild@v1.0.2
|
||||
- name: Install llvm and clang
|
||||
uses: egor-tensin/setup-clang@v1
|
||||
with:
|
||||
version: latest
|
||||
platform: x86
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: 1.56.0
|
||||
override: true
|
||||
target: i686-pc-windows-msvc
|
||||
- name: Install Win 10 SDK
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
- name: build Release-Full
|
||||
env:
|
||||
LIBCLANG_PATH: "C:\\Program Files\\LLVM\\lib"
|
||||
LLVM_CONFIG_PATH: "C:\\Program Files\\LLVM\\bin\\llvm-config"
|
||||
CARGO_TARGET_DIR: "..\\..\\windows"
|
||||
BINDGEN_EXTRA_CLANG_ARGS: -fmsc-version=0
|
||||
run: msbuild ccextractor.sln /p:Configuration=Release-Full /p:Platform=Win32
|
||||
working-directory: ./windows
|
||||
- name: Copy files to directory for installer
|
||||
run: mkdir installer; cp ./Release-Full/ccextractorwinfull.exe ./installer; cp ./Release-Full/*.dll ./installer
|
||||
working-directory: ./windows
|
||||
- name: install WiX
|
||||
run: dotnet tool install --global wix --version 4.0.0-preview.0 && wix extension -g add WixToolset.UI.wixext
|
||||
- name: Make sure WiX works
|
||||
run: wix --version && wix extension -g list
|
||||
- name: Download Flutter GUI
|
||||
run: ((Invoke-WebRequest -UseBasicParsing https://api.github.com/repos/CCExtractor/ccextractorfluttergui/releases/latest).Content | ConvertFrom-Json).assets | ForEach-Object {if ($_.name -eq "windows.zip") { Invoke-WebRequest -UseBasicParsing -Uri $_.browser_download_url -OutFile windows.zip}}
|
||||
working-directory: ./windows
|
||||
- name: Display contents of dir
|
||||
run: ls
|
||||
working-directory: ./windows
|
||||
- name: Unzip Flutter GUI
|
||||
run: Expand-Archive -Path ./windows.zip -DestinationPath ./installer
|
||||
working-directory: ./windows
|
||||
- name: Display installer folder contents
|
||||
run: Get-ChildItem -Recurse ./installer
|
||||
working-directory: ./windows
|
||||
- name: Create portable zip
|
||||
run: Compress-Archive -Path ./installer/* -DestinationPath ./CCExtractor_win_portable.zip
|
||||
working-directory: ./windows
|
||||
- name: Build installer
|
||||
run: wix build -ext "$HOME\.wix\extensions\WixToolset.UI.wixext\4.0.0-preview.0\tools\WixToolset.UI.wixext.dll" -d "AppVersion=${{ steps.get_version.outputs.VERSION }}.0.0" -o CCExtractor.msi installer.wxs
|
||||
working-directory: ./windows
|
||||
- name: Upload as asset
|
||||
uses: AButler/upload-release-assets@v2.0
|
||||
with:
|
||||
files: './windows/CCExtractor.msi;./windows/CCExtractor_win_portable.zip'
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
create_linux_package:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2.4.0
|
||||
with:
|
||||
path: ./ccextractor
|
||||
- name: Create .tar.gz without git and windows folders
|
||||
run: tar -pczf ./ccextractor_minimal.tar.gz --exclude "ccextractor/windows" --exclude "ccextractor/.git" ccextractor
|
||||
- name: Upload as asset
|
||||
uses: AButler/upload-release-assets@v2.0
|
||||
with:
|
||||
files: './ccextractor_minimal.tar.gz'
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
113
.gitignore
vendored
@@ -1,3 +1,9 @@
|
||||
####
|
||||
# Ignore tests tmp files and results
|
||||
tests/runtest
|
||||
tests/**/*.gcda
|
||||
tests/**/*.gcno
|
||||
|
||||
####
|
||||
# Ignore CVS related files
|
||||
|
||||
@@ -7,20 +13,37 @@ CVS
|
||||
####
|
||||
# Linux Ignored binary and build folder
|
||||
*.o
|
||||
*.so
|
||||
mac/ccextractor
|
||||
linux/ccextractor
|
||||
linux/depend
|
||||
windows/Debug/**
|
||||
windows/Debug-OCR/**
|
||||
windows/Release/**
|
||||
windows/Release-Full/**
|
||||
windows/Release-OCR/**
|
||||
windows/Debug-Full/**
|
||||
windows/x64/**
|
||||
windows/ccextractor.VC.db
|
||||
build/
|
||||
|
||||
####
|
||||
# Python
|
||||
*.pyc
|
||||
|
||||
####
|
||||
# Visual Studio project Ignored files
|
||||
|
||||
.vs/**
|
||||
windows/.vs/**
|
||||
!windows/.vs/config/applicationhost.config
|
||||
*.suo
|
||||
*.sdf
|
||||
*.opensdf
|
||||
*.user
|
||||
*.opendb
|
||||
*.db
|
||||
*.vscode
|
||||
|
||||
####
|
||||
# Ignore the header file that is updated upon build
|
||||
@@ -29,5 +52,91 @@ src/lib_ccx/compile_info_real.h
|
||||
#### Ignore windows OCR libraries and folders
|
||||
windows/libs/leptonica/**
|
||||
windows/libs/tesseract/**
|
||||
windows/Release-OCR/**
|
||||
windows/Debug-OCR/**
|
||||
|
||||
# Ctags
|
||||
*.tags*
|
||||
tags
|
||||
|
||||
# Vagrant
|
||||
.vagrant/
|
||||
|
||||
# Eclipse stuff
|
||||
.cproject
|
||||
.project
|
||||
.settings/
|
||||
|
||||
# Mac
|
||||
.DS_Store
|
||||
windows/enc_temp_folder/*
|
||||
|
||||
#CMake
|
||||
src/cmake-build-debug/
|
||||
src/.idea/
|
||||
|
||||
|
||||
#Autotools
|
||||
linux/config.h
|
||||
linux/config.log
|
||||
linux/config.status
|
||||
linux/Makefile
|
||||
linux/autom4te.cache
|
||||
linux/aclocal.m4
|
||||
linux/*.in
|
||||
linux/configure
|
||||
linux/build-conf/
|
||||
mac/config.h
|
||||
mac/config.log
|
||||
mac/config.status
|
||||
mac/Makefile
|
||||
mac/autom4te.cache
|
||||
mac/aclocal.m4
|
||||
mac/*.in
|
||||
mac/configure
|
||||
mac/build-conf/
|
||||
package_creators/*tar.gz
|
||||
package_creators/build/*.deb
|
||||
src/.deps/
|
||||
src/.dirstamp
|
||||
src/gpacmp4/.deps/
|
||||
src/gpacmp4/.dirstamp
|
||||
src/lib_ccx/.deps/
|
||||
src/lib_ccx/.dirstamp
|
||||
src/lib_hash/.deps/
|
||||
src/lib_hash/.dirstamp
|
||||
src/libpng/.deps/
|
||||
src/libpng/.dirstamp
|
||||
src/protobuf-c/.deps/
|
||||
src/protobuf-c/.dirstamp
|
||||
src/utf8proc/.deps/
|
||||
src/utf8proc/.dirstamp
|
||||
src/zlib/.deps/
|
||||
src/zlib/.dirstamp
|
||||
src/zvbi/.deps/
|
||||
src/zvbi/.dirstamp
|
||||
|
||||
# Arch
|
||||
package_creators/*.pkg.tar.xz
|
||||
|
||||
#RPMs
|
||||
package_creators/*.rpm
|
||||
src/lib_ccx/ccx.pc
|
||||
windows/combase.pdb/
|
||||
src/**/.deps
|
||||
src/**/.dirstamp
|
||||
mac/ccextractorGUI
|
||||
linux/ccextractorGUI
|
||||
linux/ccxGUI.ini
|
||||
linux/CMakeCache.txt
|
||||
linux/CMakeFiles/
|
||||
linux/cmake_install.cmake
|
||||
linux/install_manifest.txt
|
||||
linux/lib_ccx/
|
||||
mac/lib_ccx/
|
||||
mac/install_manifest.txt
|
||||
mac/cmake_install.cmake
|
||||
mac/CMakeFiles/
|
||||
mac/CMakeCache.txt
|
||||
*.py.bak
|
||||
|
||||
# Bazel
|
||||
bazel*
|
||||
|
||||
101
.travis.yml
Normal file
@@ -0,0 +1,101 @@
|
||||
language: c
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode10.1
|
||||
compiler: gcc
|
||||
addons:
|
||||
homebrew:
|
||||
packages:
|
||||
autoconf
|
||||
libtool
|
||||
tesseract
|
||||
leptonica
|
||||
script:
|
||||
- cd mac
|
||||
- ./build.command
|
||||
- ./ccextractor --version
|
||||
|
||||
- os: osx
|
||||
osx_image: xcode10.1
|
||||
compiler: clang
|
||||
addons:
|
||||
homebrew:
|
||||
packages:
|
||||
autoconf
|
||||
libtool
|
||||
tesseract
|
||||
leptonica
|
||||
script:
|
||||
- cd mac
|
||||
- ./build.command
|
||||
- ./ccextractor --version
|
||||
|
||||
- os: osx
|
||||
osx_image: xcode10.1
|
||||
compiler: gcc
|
||||
addons:
|
||||
homebrew:
|
||||
packages:
|
||||
autoconf
|
||||
libtool
|
||||
tesseract
|
||||
leptonica
|
||||
script:
|
||||
- cd mac
|
||||
- ./autogen.sh
|
||||
- ./configure
|
||||
- make
|
||||
- ./ccextractor --version
|
||||
|
||||
- os: osx
|
||||
osx_image: xcode10.1
|
||||
compiler: clang
|
||||
addons:
|
||||
homebrew:
|
||||
packages:
|
||||
autoconf
|
||||
libtool
|
||||
tesseract
|
||||
leptonica
|
||||
script:
|
||||
- cd mac
|
||||
- ./autogen.sh
|
||||
- ./configure
|
||||
- make
|
||||
- ./ccextractor --version
|
||||
|
||||
- os: osx
|
||||
osx_image: xcode10.1
|
||||
compiler: gcc
|
||||
addons:
|
||||
homebrew:
|
||||
packages:
|
||||
autoconf
|
||||
libtool
|
||||
tesseract
|
||||
leptonica
|
||||
script:
|
||||
- mkdir build
|
||||
- cd build
|
||||
- cmake ../src/
|
||||
- make
|
||||
- ./ccextractor --version
|
||||
|
||||
- os: osx
|
||||
osx_image: xcode10.1
|
||||
compiler: clang
|
||||
addons:
|
||||
homebrew:
|
||||
packages:
|
||||
autoconf
|
||||
libtool
|
||||
tesseract
|
||||
leptonica
|
||||
script:
|
||||
- mkdir build
|
||||
- cd build
|
||||
- cmake ../src/
|
||||
- make
|
||||
- ./ccextractor --version
|
||||
339
LICENSE.txt
Normal file
@@ -0,0 +1,339 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
||||
@@ -3,8 +3,8 @@
|
||||
MAINTAINER = Marc Espie <espie@openbsd.org>
|
||||
CATEGORIES = multimedia
|
||||
COMMENT = closed caption subtitles extractor
|
||||
HOMEPAGE = http://ccextractor.sourceforge.net/
|
||||
V = 0.77
|
||||
HOMEPAGE = https://ccextractor.org
|
||||
V = 0.94
|
||||
DISTFILES = ccextractor.${V:S/.//}-src.zip
|
||||
MASTER_SITES = ${MASTER_SITE_SOURCEFORGE:=ccextractor/}
|
||||
DISTNAME = ccextractor-$V
|
||||
|
||||
77
README.md
@@ -1,12 +1,73 @@
|
||||
ccextractor
|
||||
===========
|
||||
<img src ="https://github.com/CCExtractor/ccextractor-org-media/blob/master/static/ccx_logo_transparent_800x600.png" width="200px" alt="logo" />
|
||||
|
||||
Carlos' version (mainstream) is the most stable branch.
|
||||
# CCExtractor
|
||||
|
||||
Extracting subtitles has never been so easy. Just type the following command:
|
||||
ccextractor "name of input"
|
||||
<a href="https://travis-ci.org/CCExtractor/ccextractor"><img src="https://raw.githubusercontent.com/CCExtractor/ccextractor-org-media/master/static/macOS-build-badge-logo.png" width="20"></a> [](https://travis-ci.org/CCExtractor/ccextractor)
|
||||
[](https://sampleplatform.ccextractor.org/test/master/windows)
|
||||
[](https://sampleplatform.ccextractor.org/test/master/linux)
|
||||
[](https://sourceforge.net/projects/ccextractor/)
|
||||
[](https://github.com/CCExtractor/ccextractor/releases/latest)
|
||||
|
||||
GUI lovers should download the Sourceforge version of CCExtractor, the Git Version is not your cup of tea.
|
||||
http://ccextractor.sourceforge.net/download-ccextractor.html
|
||||
CCExtractor is a tool used to produce subtitles for TV recordings from almost anywhere in the world. We intend to keep up with all sources and formats.
|
||||
|
||||
For News about release, please find CHANGES.TXT
|
||||
Subtitles are important for many people. If you're learning a new language, subtitles are a great way to learn it from movies or TV shows. If you are hard of hearing, subtitles can help you better understand what's happening on the screen. We aim to make it easy to generate subtitles by using the command line tool or Windows GUI.
|
||||
|
||||
The official repository is ([CCExtractor/ccextractor](https://github.com/CCExtractor/ccextractor)) and master being the most stable branch.
|
||||
|
||||
### **Features**
|
||||
|
||||
- Extract subtitles in real-time
|
||||
- Translate subtitles
|
||||
- Extract closed captions from DVDs
|
||||
- Convert closed captions to subtitles
|
||||
|
||||
### Programming Languages & Technologies
|
||||
|
||||
The core functionality is written in C. Other languages used include C++ and Python.
|
||||
|
||||
## Installation and Usage
|
||||
|
||||
Downloads for precompiled binaries and source code can be found [on our website](https://ccextractor.org/public/general/downloads/).
|
||||
|
||||
Extracting subtitles is relatively simple. Just run the following command:
|
||||
|
||||
`ccextractor <input>`
|
||||
|
||||
This will extract the subtitles.
|
||||
|
||||
More usage information can be found on our website:
|
||||
|
||||
- [Using the command line tool](https://ccextractor.org/public/general/command_line_usage/)
|
||||
- [Using the Flutter GUI](https://ccextractor.org/public/general/flutter_gui/)
|
||||
|
||||
You can also find the list of parameters and their brief description by running `ccextractor` without any arguments.
|
||||
|
||||
You can find sample files on [our website](https://ccextractor.org/public/general/tvsamples/) to test the software.
|
||||
|
||||
## Compiling CCExtractor
|
||||
|
||||
To learn more about how to compile and build CCExtractor for your platform check the [compilation guide](https://github.com/CCExtractor/ccextractor/blob/master/docs/COMPILATION.MD).
|
||||
|
||||
## Support
|
||||
|
||||
By far the best way to get support is by opening an issue at our [issue tracker](https://github.com/CCExtractor/ccextractor/issues).
|
||||
|
||||
When you create a new issue, please fill in the needed details in the provided template. That makes it easier for us to help you more efficiently.
|
||||
|
||||
If you have a question or a problem you can also [contact us by email or chat with the team in Slack](https://ccextractor.org/public/general/support/).
|
||||
|
||||
If you want to contribute to CCExtractor but can't submit some code patches or issues or video samples, you can also [donate to us](https://sourceforge.net/donate/index.php?group_id=190832)
|
||||
|
||||
## Contributing
|
||||
|
||||
You can contribute to the project by reporting issues, forking it, modifying the code and making a pull request to the repository. We have some rules, outlined in the [contributor's guide](.github/CONTRIBUTING.md).
|
||||
|
||||
## News & Other Information
|
||||
|
||||
News about releases and modifications to the code can be found in the [CHANGES.TXT](docs/CHANGES.TXT) file.
|
||||
|
||||
For more information visit the CCExtractor website: [https://www.ccextractor.org](https://www.ccextractor.org)
|
||||
|
||||
## License
|
||||
|
||||
GNU General Public License version 2.0 (GPL-2.0)
|
||||
|
||||
16
Vagrantfile
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
Vagrant.configure(2) do |config|
|
||||
config.vm.box = "ubuntu/xenial64"
|
||||
|
||||
# Uncomment this line if you want to sync other folders
|
||||
# config.vm.synced_folder "/home/user/video", "/video"
|
||||
|
||||
config.vm.provision "shell", inline: <<-SHELL
|
||||
sudo apt-get install -y gcc
|
||||
sudo apt-get install -y libcurl4-gnutls-dev
|
||||
sudo apt-get install -y tesseract-ocr
|
||||
sudo apt-get install -y tesseract-ocr-dev
|
||||
sudo apt-get install -y libleptonica-dev
|
||||
SHELL
|
||||
|
||||
end
|
||||
|
||||
92
docs/AUTHORS.TXT
Normal file
@@ -0,0 +1,92 @@
|
||||
ccextractor was originally a mildly optimized C port of McPoodle's excellent
|
||||
but painfully slow Perl script SCC_RIP. That port (ccextractor 0.01) was
|
||||
written by Carlos Fernández (cfsmp3).
|
||||
|
||||
After a number of versions that did something semiuseful Volker Quetschke
|
||||
joined the effort and together Carlos and Volker to CCExtractor a point in
|
||||
which it was actually really usable, at least for the cases that interested
|
||||
them.
|
||||
|
||||
Unfortunately Volker moved on once CCExtractor did what he needed to do for
|
||||
him.
|
||||
|
||||
At some point David Liontooth from UCLA started to use CCExtractor as a
|
||||
replacement for libzvbi because libzvbi wasn't working for some specific
|
||||
streams. UCLA became the primary key user as they were using CCExtractor
|
||||
24x7 to process a huge amount of stream from several countries, and was
|
||||
therefore able to provide samples, proper bug reports, etc.
|
||||
|
||||
At that time CCEXtractor was still US-centric, because it was originally
|
||||
written so Carlos could get subtitles for US TV shows. But UCLA wanted
|
||||
European subtitles too, and they already had recording nodes in Denmark
|
||||
(which use teletext) and Spain (which uses DVB).
|
||||
|
||||
For teletext a good solution existed already: Petr Kutalek's telxcc.
|
||||
We contacted Petr and asked for permission to integrate his code into
|
||||
CCExtractor. Petr's absolutely brilliantly clean code was easy to
|
||||
integrate and build upon - and with it, we added support for the first
|
||||
kind of European subtitles.
|
||||
|
||||
Around that time, we decided to apply for Google Summer of Code. That
|
||||
was also a game changer, with Willem, Ruslan and Anshul being the first
|
||||
3 students. They are still around, now as mentors and year round
|
||||
contributors.
|
||||
|
||||
Since them, many more people have been involved: More than 10 as
|
||||
Google Summer of Code students, Code-In students, companies that
|
||||
sponsored development by hiring team members to do custom development
|
||||
(Comcast was the first one, and we'll always be grateful for the
|
||||
opportunity).
|
||||
|
||||
List of students is below (if they added themselves). For a complete
|
||||
list, just check the pull requests at GitHub.
|
||||
|
||||
Home: https://www.ccextractor.org
|
||||
|
||||
Google Summer of Code 2014 students
|
||||
- Willem Van Iseghem
|
||||
- Ruslan Kuchumov
|
||||
- Anshul Maheshwari
|
||||
|
||||
Google Summer of Code 2015 students
|
||||
- Willem Van Iseghem
|
||||
- Ruslan Kuchumov
|
||||
- Anshul Maheshwari
|
||||
- Nurendra Choudhary
|
||||
- Oleg Kiselev
|
||||
- Vasanth Kalingeri
|
||||
|
||||
Google Summer of Code 2016 students
|
||||
- Willem Van Iseghem
|
||||
- Ruslan Kuchumov
|
||||
- Abhishek Vinjamoori
|
||||
- Abhinav Shukla
|
||||
- Rishabh Garg
|
||||
|
||||
Google Code-in 2016 students
|
||||
- Evgeny Shulgin
|
||||
- Manveer Basra
|
||||
- Alexandru Bratosin
|
||||
- Matej Plavevski
|
||||
- Danila Fedorin
|
||||
|
||||
Google Code-in 2017 students
|
||||
- Matej Plavevski
|
||||
- Harry Yu
|
||||
- Theodore Fabian
|
||||
- Nikunj Taneja
|
||||
- John Chew
|
||||
- Aadi Bajpai
|
||||
- Wiliam(Hori75)
|
||||
|
||||
Google Summer of Code 2017 students
|
||||
- Diptanshu Jamgade
|
||||
- Mayank Gupta
|
||||
|
||||
Google Code-in 2018 students
|
||||
- Matej Plavevski
|
||||
- Ivan Makarov
|
||||
- Albert (alufers)
|
||||
- Brian M
|
||||
- John Chew
|
||||
- T1duS
|
||||
565
docs/CHANGES.TXT
@@ -1,4 +1,294 @@
|
||||
0.82(2016-08-15)
|
||||
0.94 (2021-12-14)
|
||||
-----------------
|
||||
- BOM is no longer enabled by default on windows platforms
|
||||
- CEA-708: Rust decoder is now default instead of C decoder
|
||||
- CEA-708 subs are now extracted by default
|
||||
- New: Add check for Minimum supported rust version (MSRV) (#1387)
|
||||
- Fix: Fix CEA-708 Carriage Return command implementation
|
||||
- Fix: Fix bug with startat/endat parameter (#1396)
|
||||
- Fix: Mac Build processes (#1390)
|
||||
- Fix: Fix bug with negative delay parameter (#1365)
|
||||
|
||||
0.93 (2021-08-16)
|
||||
-----------------
|
||||
- Minor Rust updates (format, typos, docs)
|
||||
- Updated GUI
|
||||
|
||||
0.92 (2021-08-10)
|
||||
-----------------
|
||||
- Rust updates: Added srt writer
|
||||
- Rust updates:-Added writers for transcripts and SAMI
|
||||
- Added missing DLL to Windows installer
|
||||
- Updated Windows GUI
|
||||
|
||||
0.91 (2021-07-26)
|
||||
-----------------
|
||||
- More Rust in the 708 decoder (Add Pen Presets and timing functions)
|
||||
- Updated GUI
|
||||
|
||||
0.90 (2021-07-14)
|
||||
-----------------
|
||||
- New installer (WiX based)
|
||||
- New GUI (flutter based)
|
||||
- More Rust (the 708 decoder is being rewritten)
|
||||
|
||||
0.89 (2021-06-13)
|
||||
-----------------
|
||||
- Fix: Fix broken links in README
|
||||
- Fix: Timing in DVB, sub duration check for timeout.
|
||||
- New: Added support for SCC and CCD encoder formats
|
||||
- New: Added support to output captions to MCC file (#733).
|
||||
- New: Add support for censoring words ("Kid Friendly") (#1139)
|
||||
- New: Extend support of capitalization for all BITMAP and 608 subtitles (#1214)
|
||||
- New: Added an option to disable timestamps for WebVTT (In response to issue #1127)
|
||||
- Fix: Change inet_ntop to inet_ntoa for Windows XP compatibility
|
||||
- Fix: Added italics, underline, and color rendering support for -out=spupng with EIA608/teletext
|
||||
- Fix: ccx_demuxer_mxf.c: Parse framerate from MXF captions to fix caption timings.
|
||||
- Fix: hardsubx_decoder.c: Fix memory leaks using Leptonica API.
|
||||
- Fix: linux/Makefile.am: added some sources to enable rpms to be created.
|
||||
- Fix: Crash when using -sc (sentence case) option (#1115)
|
||||
- Fix: Segmentation fault on VOB #1128
|
||||
- Fix: Hang while processing video #1121
|
||||
- Fix: lib_ccx.c: Initialize fatal error logging function before first usage in init_libraries
|
||||
- Fix: A few (minor) memory leaks around the code.
|
||||
- Fix: General code clean up / reformatting
|
||||
- Fix: Fix multiple definitions with new -fno-common default in GCC 10
|
||||
- Fix: Mac now builds reproducibly again without errors on the date command (#1230)
|
||||
- Fix: Allow all oem modes with tesseract v4 (#1264)
|
||||
- Doc: Updated ccextractor.cnf.sample.
|
||||
- Update: Updated LibPNG to 1.6.37
|
||||
- Remove: Python API (since no one cares about it and it's unmaintained)
|
||||
- Remove: -cf , just use FFmpeg if you want a ES from a TS or PS, CCExtractor is a bad tool
|
||||
for this.
|
||||
- Fix: Segmentation fault on Windows
|
||||
- Update: Updated libGPAC to 1.0.1
|
||||
- Fix: Segmentation fault with unsupported and multitrack file reports
|
||||
- Fix: Write subtitle header to multitrack outputs
|
||||
- Fix: Write multitrack files to the output file directory
|
||||
- Fix: Correct frame number calculation in SCC (#1340)
|
||||
- Fix: Regression on Teletext that caused dates to be wrong (RT 78 on the sample platform)
|
||||
- Fix: CEA-708: Better timing, fixes for missing subtitles
|
||||
- Fix: timing for direct rollup
|
||||
- Fix: timing for VOB files with multiple chapters
|
||||
|
||||
0.88 (2019-05-21)
|
||||
-----------------
|
||||
- New: More tapping points for debug image in ccextractor.
|
||||
- New: Add support for tesseract 4.0
|
||||
- Optimize: Remove multiple RGB to grey conversion in OCR.
|
||||
- Fix: Update UTF8Proc to 2.2.0
|
||||
- Fix: Update LibPNG to 1.6.35
|
||||
- Fix: Update Protobuf-c to 1.3.1
|
||||
- Fix: Warn instead of fatal when a 0xFF marker is missing
|
||||
- Fix: Segfault in general_loop.c due to null pointer dereference (case of no encoder)
|
||||
- Fix: Enable printing hdtv stats to console.
|
||||
- Fix: Many typos in comments and output messages
|
||||
- Fix: Ignore Visual Studio temporary project files
|
||||
- New: Add support for non-Latin characters in stdout
|
||||
- Fix: Check whether stream is empty
|
||||
- New: Add support for EIA-608 inside .mkv
|
||||
- New: Add support for DVB inside .mkv
|
||||
- Fix: Added -latrusmap Map Latin symbols to Cyrillic ones in special cases
|
||||
of Russian Teletext files (issue #1086)
|
||||
- Fix: Several OCR crashes
|
||||
|
||||
0.87 (2018-10-23)
|
||||
-----------------
|
||||
- New: Upgrade libGPAC to 0.7.1.
|
||||
- New: mp4 tx3g & multitrack subtitles.
|
||||
- New: Guide to update dependencies (docs/Updating_Dependencies.txt).
|
||||
- New: Add LICENSE File (#959).
|
||||
- New: Display quantisation mode in info box (#954).
|
||||
- New: Add instruction required to build ccextractor with HARDSUBX support (#946).
|
||||
- New: Added version no. of libraries to --version.
|
||||
- New: Added -quant (OCR quantization function).
|
||||
- New: Python API now compatible with Python 3.
|
||||
- Fix: linux/builddebug: Added non-local directories to the incluye search path so we don't
|
||||
require a locally compiled tesseract or leptonica.
|
||||
- Fix: Correct -HARDSUBX Bug In CMake, allow build with hardsubx using cmake (#966).
|
||||
- Fix: possible segfaults in hardsubx_classifier.c due to strdup (#963).
|
||||
- Fix: Improve the start and end timestamps of extracted burned in captions (#962).
|
||||
- Fix: Update COMPILATION.md (#960).
|
||||
- Fix: Fixed crash with "-out=report" and "-out=null".
|
||||
- Fix: -nocf not working with OCR'ing (#958).
|
||||
- Fix: segfault in add_cc_sub_text and initialize to NULL in init_encoder (#950).
|
||||
- Fix: ccx_decoders_common.c: Copy data type when creating a copy of the subtitle structure.
|
||||
- Fix: Implicit declaration of these functions throws warning during build (#948).
|
||||
- Fix: ccx_decoders_common.c: Properly release allocated resources on free_subtitle().
|
||||
- Fix: Added a datatype member to struct cc_subtitle - needed so we can properly free all
|
||||
memory when void *data points to a structure that has its own pointers.
|
||||
- Fix: dvb_subtitle_decoder.c: When combining image regions verify that the offset is
|
||||
never negative.
|
||||
- Fix: Updated traivis.yml to fix osx build (#947).
|
||||
- Fix: Add utf8proc src file to cmake, updated header file (#944).
|
||||
- Fix: Added required pointers on freep() calls.
|
||||
- Fix: Removed dvb_debug_traces_to_stdout and used the usual dbg_print instead.
|
||||
- Fix: Additional debug traces for DVB.
|
||||
- Fix: Fix minor memory leak in ocr.c.
|
||||
- Fix: Fix issue with displaying utf8proc version.
|
||||
- Fix: Fix failing cmake due to liblept/tesseract header files.
|
||||
- Fix: Added missing \n in params.c.
|
||||
- Fix: builddebug: Use -fsanitize=address -fno-omit-frame-pointer.
|
||||
- Fix: ccx_decoders_common.c: Removed trivial memory leak.
|
||||
- Fix: ccx_encoders_srt.c: Made sure a pointer is non-NULL before dereferencing.
|
||||
- Fix: dvb_subtitle_decoder.c: Initialize pointer members to NULL when creating a structure.
|
||||
- Fix: lib_ccx.c: Initialize (memset 0) structure cc_subtitle after memory allocation.
|
||||
- Fix: Added verboseness to error/warnings in dvb_subtitle_decoder.c.
|
||||
- Fix: dvb_subtitle_decoder.c: Work on passing invalid streams errors upstream (plus some
|
||||
warning messages) so we can eventually recover from this situation instead of crashing.
|
||||
- Fix: telxcc.c: Currently setting a colour doesn't necessarily add a space even though the
|
||||
specifications mandate it. (#930).
|
||||
- Fix: dvb_subtitle_decoder.c: Fix null pointer derefence when region==NULL in write_dvb_sub.
|
||||
- Fix: DVB Teletext subtitle incomplete.
|
||||
- Fix: replace all 0xA characters within startbox with 0x20.
|
||||
- Fix: DVB Teletext subtitle incomplete (#922).
|
||||
- Fix: Add missing return value to one of the returns in process_tx3g().
|
||||
- Fix: Typos and other minor bugs.
|
||||
- Fix: Tidy CMakeLists & vcxproj (#920).
|
||||
- Fix: Added m2ts and -mxf to help screen.
|
||||
- Fix: Added MKV to demuxer_print_cfg.
|
||||
- Fix: Added MXF to demuxer_print_cfg.
|
||||
- Fix: "Out of order packets" error had wrong print() parameters.
|
||||
- Fix: Updated Python documentation.
|
||||
- Fix: Fix incorrect path in XML (#904).
|
||||
- Fix: linux build script (non-debug): Don't hide warnings from compiler.
|
||||
- Fix: linux build script (debug): Display what's step of the build script we're in.
|
||||
- Fix: Make the build reproducible (#976).
|
||||
- Fix: Remove instance of o1 and o2 from help.
|
||||
- Fix: Colors of DVB subtitles with depth 2 broken due to a missing break.
|
||||
- Fix: CEA-708: Caption loss due to CW command (#991).
|
||||
- Fix: CEA-708: Update patch for windows priority with functions (#990).
|
||||
|
||||
0.86 (2018-01-09)
|
||||
-----------------
|
||||
- New: Preliminary MXF support
|
||||
- New: Added a histogram in one-minute increments of the number of lines in a subtitle.
|
||||
- New: Added Autoconf build scripts for CCExtractor to generate makefiles (mac).
|
||||
- New: Added Autoconf build scripts for CCExtractor to generate makefiles (linux).
|
||||
- New: Added .rpm package generation script.
|
||||
- New: Added build/installation script for .pkg.tar.xz (Arch Linux).
|
||||
- New: Added tarball generation script.
|
||||
- New: Added --analyzevideo. If present the video stream will be processed even if the
|
||||
subtitles are in a different stream. This is useful when we want video information
|
||||
(resolution, frame type, etc). -vides now implies this option too.
|
||||
[Note: Tentative - some possibly breaking changed were made for this, so if you
|
||||
use it validate results]
|
||||
- New: Added a GUI in the main CCExtractor binary (separate from the external GUIs
|
||||
such as CCExtractorGUI).
|
||||
- New: A Python binding extension so it's possible to use CCExtractor's tools from
|
||||
Python.
|
||||
- New: Added -nospupngocr (don't OCR bitmaps when generating spupng, faster)
|
||||
- New: Add support for file split on keyframe (-segmentonkeyonly)
|
||||
- New: Added WebVTT output from Matroska.
|
||||
- New: Support for source-specific multicast.
|
||||
- New: FreeType-based text renderer (-out=spupng with teletext/EIA608).
|
||||
- New: Upgrade library UTF8proc
|
||||
- New: Upgrade library win_iconv
|
||||
- New: Upgrade library zlib
|
||||
- New: Upgrade library LibPNG
|
||||
- New: Support for Source-Specific Multicast
|
||||
- New: Added Travis CI support
|
||||
- New: Made error messages clearer, less ambiguous
|
||||
- Fix: Prevent the OCR being initialized more than once (happened on multiprogram and
|
||||
PAT changes)
|
||||
- Fix: Makefiles, build scripts, etc... everything updated and corrected for all
|
||||
platforms.
|
||||
-Fix: Proper line ending for .srt files from bitmaps.
|
||||
- Fix: OCR corrections using grayscale before extracting texts.
|
||||
- Fix: End timestamps in transcripts from DVB.
|
||||
- Fix: Forcing -noru to cause deduplication in ISDB
|
||||
- Fix: TS: Skip NULL packets
|
||||
- Fix: When NAL decoding fails, don't dump the whole decoded thing, limit to 160 bytes.
|
||||
- Fix: Modify Autoconf scripts to generate tarball for mac from `/package_creators/tarball.sh`
|
||||
and include GUI files in tarball
|
||||
- Fix: Started work on libGPAC upgrade.
|
||||
- Fix: DVB subtitle not extracted if there's no display segment
|
||||
- Fix: Heap corruption in add_ocrtext2str
|
||||
- Fix: bug that caused -out=spupng sometimes crashes
|
||||
- Fix: Checks for text before newlines on DVB subtitles
|
||||
- Fix: OCR issue caused by separated dvb subtitle regions
|
||||
- Fix: DVB crash on specific condition (!rect->ocr_text)
|
||||
- Fix: DVB bug (Multiple-line subtitle; Missing last line)
|
||||
- Fix: --sentencecap for teletext samples
|
||||
- Fix: Crash when image passed into OCR is empty
|
||||
- Fix: Temporarily wrapped the Python API, not production ready yet
|
||||
- Fix: -delay option in DVB
|
||||
|
||||
|
||||
0.85b (2017-01-26)
|
||||
------------------
|
||||
- Fix: Base Windows binary (without OCR) compiled without DLL dependencies.
|
||||
|
||||
0.85 (2017-01-23)
|
||||
-----------------
|
||||
- New: Added FFMPEG 3.0 to Windows build - last one that is XP compatible.
|
||||
- New: Major improvements in CEA-608 to WebVTT (styles, etc).
|
||||
- New: Return a non-zero return code if no subtitles are found.
|
||||
- New: Windows build files updated to Visual Studio 2015, new target platform is 140_xp.
|
||||
- New: Added basic support of Tesseract 4.0.0.
|
||||
- New: Added build script for .deb.
|
||||
- New: Updated -debugdvbsub parameter to get the most relevant DVB traces for debugging.
|
||||
- New: SMPTE-TT files are now compatible with Adobe Premiere.
|
||||
- New: Updated libpng.
|
||||
- New: Added 3rd party (Tracy from archive.org) static linux build script.
|
||||
- New: Add chapter extraction for MP4 files.
|
||||
- New: Return code 10 if no captions are found at all.
|
||||
- Fix: Teletext duplicate lines in certain cases.
|
||||
- Fix: Improved teletext timing.
|
||||
- Fix: DVB timing is finally good.
|
||||
- Fix: A few minor memory leaks.
|
||||
- Fix: tesseract library file included in mac build command.
|
||||
- Fix: Bad WTV timings in some cases.
|
||||
- Fix: Mac build script.
|
||||
- Fix: Memory optimization in HARDSUBX edit_distance.
|
||||
- Fix: SubStation Alpha subtitles in bitmap.
|
||||
- Fix: lept msg severity in linux.
|
||||
- Fix: SSA, SPUPNG and VTT timing and skipping of subtitles for SAMI and TTML.
|
||||
- Fix: SMPTE-TT : Added support for font color.
|
||||
- Fix: SAMI unnecessary empty subtitle when extracting DVB subs.
|
||||
- Fix: Skip the packet if the adaptation field length is broken.
|
||||
- Fix: 708 - lots of work done in the decoder. Implementation of more commands. Better timing.
|
||||
|
||||
|
||||
|
||||
0.84 (2016-12-16)
|
||||
-----------------
|
||||
- New: In Windows, both with and without-OCR binaries are bundled, since the OCR one causes problems due to
|
||||
dependencies in some system. So unless you need the OCR just use the non-OCR version.
|
||||
- New: Added -sbs (sentence by sentence) for DVB output. Each frame in the output file contains a complete
|
||||
sentence (experimental).
|
||||
- New: Added -curlposturl. If used each output frame will be sent with libcurl by doing a POST to that URL.
|
||||
- Fix: More code consistency checking in function names.
|
||||
- Fix: linux build script now tries to verify dependencies.
|
||||
- Fix: Mac build script was missing a directory.
|
||||
|
||||
|
||||
0.83 (2016-12-13)
|
||||
-----------------
|
||||
- Fix: Duplicate lines in mp4 (specifically affects itunes).
|
||||
- Fix: Timing in .mp4, timing now calculated for each CC pair instead of per atom.
|
||||
- Fix: Typos everywhere in the documentation and source code.
|
||||
- Fix: CMakeLists for build in cmake.
|
||||
- Fix: -unixts option.
|
||||
- Fix: FPS switching messages.
|
||||
- Fix: Removed ugly debug statement with local path in HardsubX.
|
||||
- Fix: Changed platform target to v120_xp in Visual Studio (so XP is supported again).
|
||||
- Fix: Added detail in many error messages.
|
||||
- Fix: Memory leaks in videos with XDS.
|
||||
- Fix: Makefile compatibility issues with Raspberry pi.
|
||||
- Fix: missing separation between WebVTT header and body.
|
||||
- Fix: Stupid bug in M2TS that preventing it from working.
|
||||
- Fix: OCR libraries dependencies for the release version in Windows.
|
||||
- Fix: non-buffered reading from pipes.
|
||||
- Fix: --stream option with stdin.
|
||||
- New: terminate_asap to buffered_read_opt
|
||||
- New: Added some TV-show specific spelling dictionaries.
|
||||
- New: Updated GPAC library.
|
||||
- New: ASS/SSA.
|
||||
- New: Capture sigterm to do some clean up before terminating.
|
||||
- New: Work on 708: Changed DefineWindow behavior, only clear text of an existing window is style has changed.
|
||||
|
||||
0.82 (2016-08-15)
|
||||
-----------------
|
||||
- New: HardsubX - Burned in subtitle extraction subsystem.
|
||||
- New: Color Detection in DVB Subtitles
|
||||
@@ -33,7 +323,7 @@
|
||||
- Fix: Timing in -ucla
|
||||
- Fix: Timing in ISDB (some instances)
|
||||
- Fix: "mfra" mp4 box weight changed to 1 (this helps with correct file format detection)
|
||||
- Fix: Fix for TARGET File is null.
|
||||
- Fix: Fix for TARGET File is null.
|
||||
- Fix: Fixed SegFaults while parsing parameters (if mandatory parameter is not present in -outinterval, -codec or -nocodec)
|
||||
- Fix: Crash when input small is too small
|
||||
- Fix: Update some URLs in code (references to docs)
|
||||
@@ -83,7 +373,7 @@
|
||||
-----------------
|
||||
- Added basic M2TS support
|
||||
- Added EPG support - you can now export the Program Guide to XML
|
||||
- Some bugfixes
|
||||
- Some bug fixes
|
||||
|
||||
0.75 (2015-01-15)
|
||||
-----------------
|
||||
@@ -91,7 +381,7 @@
|
||||
- CCExtractor can be used as library if compiled using cmake
|
||||
- By default the Windows version adds BOM to generated UTF files (this is
|
||||
because it's needed to open the files correctly) while all other
|
||||
builds don't add it (because it messes with text processing tools).
|
||||
builds don't add it (because it messes with text processing tools).
|
||||
You can use -bom and -nobom to change the behaviour.
|
||||
|
||||
0.74 (2014-09-24)
|
||||
@@ -107,7 +397,7 @@
|
||||
0.73 - GSOC (2014-08-19)
|
||||
------------------------
|
||||
- Added support of BIN format for Teletext
|
||||
- Added start of librarisation. This will allow in the future for other programs to use encoder/decoder functions and more.
|
||||
- Added start of librarization. This will allow in the future for other programs to use encoder/decoder functions and more.
|
||||
|
||||
0.72 - GSOC (2014-08-12)
|
||||
------------------------
|
||||
@@ -130,7 +420,7 @@
|
||||
------------------------
|
||||
This is the first release that is part of Google's Summer of Code.
|
||||
Anshul, Ruslan and Willem joined CCExtractor to work on a number of things
|
||||
over the summer, and their work is already reaching the mainstream
|
||||
over the summer, and their work is already reaching the mainstream
|
||||
version of CCExtractor.
|
||||
|
||||
- Added a huge dictionary submitted by Matt Stockard.
|
||||
@@ -156,14 +446,14 @@ version of CCExtractor.
|
||||
- Display end time
|
||||
- Display caption mode
|
||||
- Display caption channel
|
||||
- Use a relative timestamp ( relative to the sample)
|
||||
- Use a relative timestamp (relative to the sample)
|
||||
- Display XDS info
|
||||
- Use colors
|
||||
Examples:
|
||||
0000101 is the default setting for transcripts
|
||||
1110101 is the default for timed transcripts
|
||||
1111001 is the default setting for -ucla
|
||||
Make sure you use this parameter after others that might affect these
|
||||
Make sure you use this parameter after others that might affect these
|
||||
settings (-out, -ucla, -xds, -txt, -ttxt, ...)
|
||||
- Fixed Negative timing Bug
|
||||
|
||||
@@ -181,7 +471,7 @@ version of CCExtractor.
|
||||
- Started refactoring and clean-up.
|
||||
- Fix: MPEG clock rollover (happens each 26 hours) caused a time
|
||||
discontinuity.
|
||||
- Windows GUI: Started work on HDHomeRun support. For now it just looks
|
||||
- Windows GUI: Started work on HDHomeRun support. For now it just looks
|
||||
for HDHomeRun devices. Lots of other things will arrive in the next
|
||||
versions.
|
||||
- Windows GUI: Some code refactoring, since the HDHomeRun support makes
|
||||
@@ -198,7 +488,7 @@ version of CCExtractor.
|
||||
a good test sample file...
|
||||
- Color and fonts in PAC commands were ignored, fixed (Helen Buus).
|
||||
- Added a new output format, spupng. It consists on one .png file
|
||||
for each subtitle frame and one .xml with all the timing
|
||||
for each subtitle frame and one .xml with all the timing
|
||||
(Heleen Buus).
|
||||
- Some fixes (Chris Small).
|
||||
|
||||
@@ -209,7 +499,7 @@ version of CCExtractor.
|
||||
.raw, which depends on padding. Fixed.
|
||||
- MythTV's branch had a fixed size buffer that could not be enough
|
||||
some times. Made dynamic.
|
||||
- Better support for PAT changing mid stream.
|
||||
- Better support for PAT changing mid-stream.
|
||||
- Removed quotes in Start in .smi (format fix).
|
||||
- Added multicast support (Chris Small)
|
||||
- Added ability to select IP address to bind in UDP (Chris Small)
|
||||
@@ -220,12 +510,12 @@ version of CCExtractor.
|
||||
- Added -latin1 to select Latin 1 as encoding. Default is now
|
||||
UTF-8 (-utf8 still exists but it's not needed).
|
||||
- Added -ru1, which emulates a (non-existing in real life) 1 line
|
||||
roll-up mode.
|
||||
roll-up mode.
|
||||
|
||||
|
||||
0.66 (2013-07-01)
|
||||
-----------------
|
||||
- Fixed bug in auto detection code that triggered a message
|
||||
- Fixed bug in auto detection code that triggered a message
|
||||
about file being auto of sync.
|
||||
- Added -investigate_packets
|
||||
The PMT is used to select the most promising elementary stream
|
||||
@@ -234,39 +524,39 @@ version of CCExtractor.
|
||||
manually, in case the CC location is not obvious from the PMT
|
||||
contents. To assist looking for the right stream, the parameter
|
||||
"-investigate_packets" will have CCExtractor look inside each
|
||||
stream, looking for CC markers, and report the streams that
|
||||
stream, looking for CC markers, and report the streams that
|
||||
are likely to contain CC data even if it can't be determined from
|
||||
their PMT entry.
|
||||
- Added -datastreamtype to manually selecting a stream based on
|
||||
its type instead of its PID. Useful if your recording program
|
||||
always hides the caption under the stream stream type.
|
||||
always hides the caption under the stream type.
|
||||
- Added -streamtype so if an elementary stream is selected manually
|
||||
for processing the streamtype can be selected too. This can be
|
||||
needed if you process for example a stream that is declared as
|
||||
for processing, the streamtype can be selected too. This can be
|
||||
needed if you process, for example a stream that is declared as
|
||||
"private MPEG" in the PMT, so CCExtractor can't tell what it is.
|
||||
Usually you'll want -streamtype 2 (MPEG video) or -streamtype 6
|
||||
(MPEG private data).
|
||||
- PMT content listing improved, it now shows the stream type for
|
||||
more types.
|
||||
- Fixes in roll-up, cursor was being moved to column 1 if a
|
||||
- Fixes in roll-up, cursor was being moved to column 1 if a
|
||||
RU2, RU3 or RU4 was received even if already in roll-up mode.
|
||||
- Added -autoprogram. If a multiprogram TS is processed and
|
||||
-autoprogram is used CCExtractor will analyze all PMTs and use
|
||||
- Added -autoprogram. If a multiprogram TS is processed and
|
||||
-autoprogram is used, CCExtractor will analyze all PMTs and use
|
||||
the first program that has a suitable data stream.
|
||||
- Timed transcript (ttxt) now also exports the caption mode
|
||||
(roll-up, paint-on, etc) next to each line, as it's useful to
|
||||
- Timed transcript (ttxt) now also exports the caption mode
|
||||
(roll-up, paint-on, etc.) next to each line, as it's useful to
|
||||
detect things like commercials.
|
||||
- Content Advisory information from XDS is now decoded if it's
|
||||
transmitted in "US TV parental guidelines" or "MPA".
|
||||
Other encoding such as Canada's are not supported yet due
|
||||
transmitted in "US TV parental guidelines" or "MPA".
|
||||
Other encoding such as Canada's are not supported yet due
|
||||
to lack of samples.
|
||||
- Copy Management information from XDS is now decoded.
|
||||
- Added -xds. If present and export format is timed transcript
|
||||
(only), XDS information will be saved to file (same file as the
|
||||
transcript, with XDS being clearly marked). Note that for now
|
||||
all XDS data is exported even if it doesn't change, so the
|
||||
all XDS data is exported even if it doesn't change, so the
|
||||
transcript file will be significantly larger.
|
||||
- Added some PaintOn support, at least enough to prevent it
|
||||
- Added some PaintOn support, at least enough to prevent it
|
||||
from breaking things when the other modes are used.
|
||||
- Removed afd_data() warning. AFD doesn't carry any caption related
|
||||
data. AFD still detected in code in case we want to do something
|
||||
@@ -284,21 +574,21 @@ version of CCExtractor.
|
||||
calculated distance, the maximum allowed distance, and whether
|
||||
the strings are ultimately considered equivalent or not, i.e.
|
||||
the calculated distance is less or equal than the max allowed.
|
||||
-levdistmincnt value: Minimum distance we always allow
|
||||
regardless of the length of the strings. Default 2. This means
|
||||
that if the calculated distance is 0, 1 or 2, we consider the
|
||||
-levdistmincnt value: Minimum distance we always allow
|
||||
regardless of the length of the strings. Default 2. This means
|
||||
that if the calculated distance is 0, 1 or 2, we consider the
|
||||
strings to be equivalent.
|
||||
-levdistmaxpct value: Maximum distance we allow, as a
|
||||
percentage of the shortest string length. Default 10%. For
|
||||
example, consider a comparison of one string of 30 characters
|
||||
and one of 60 characters. We want to determine whether the
|
||||
first 30 characters of the longer string are more or less the
|
||||
same as the shortest string, i.e. whether the longest string
|
||||
is the shortest one plus new characters and maybe some
|
||||
corrections. Since the shortest string is 30 characters and
|
||||
the default percentage is 10%, we would allow a distance of
|
||||
-levdistmaxpct value: Maximum distance we allow, as a
|
||||
percentage of the shortest string length. Default 10%. For
|
||||
example, consider a comparison of one string of 30 characters
|
||||
and one of 60 characters. We want to determine whether the
|
||||
first 30 characters of the longer string are more or less the
|
||||
same as the shortest string, i.e. whether the longest string
|
||||
is the shortest one plus new characters and maybe some
|
||||
corrections. Since the shortest string is 30 characters and
|
||||
the default percentage is 10%, we would allow a distance of
|
||||
up to 3 between the first 30 characters.
|
||||
- Added -lf : Use UNIX line terminator (LF) instead of Windows (CRLF).
|
||||
- Added -lf : Use UNIX line terminator (LF) instead of Windows (CRLF).
|
||||
- Added -noautotimeref: Prevent UTC reference from being auto set from
|
||||
the stream data.
|
||||
|
||||
@@ -308,7 +598,7 @@ version of CCExtractor.
|
||||
- Added end timestamps in timed transcripts
|
||||
- Added support for SMPTE (patch by John Kemp)
|
||||
- Initial support for MPEG2 video tracks inside MP4 files (thanks a
|
||||
lot to GPAC's Jean who assisted in analyzing the sample and
|
||||
lot to GPAC's Jean who assisted in analyzing the sample and
|
||||
doing the required changes in GPAC).
|
||||
- Improved MP4 auto detection
|
||||
- Support for PCR if PTS is not available (needed for some teletext
|
||||
@@ -334,7 +624,7 @@ version of CCExtractor.
|
||||
data (bypassing detections).
|
||||
- Added -ru2 and -ru3 to limit the number of visible lines in roll-up
|
||||
captions (bypassing whatever the broadcast says).
|
||||
- Added support for a .hex (hexadecimal) dump of data.
|
||||
- Added support for a .hex (hexadecimal) dump of data.
|
||||
- Added support for wtv in Windows. This is done by using a new program
|
||||
(wtvccdump.exe) and a new DirectShow filter (CCExtractorDump.dll) that
|
||||
process the .wtv using DirecShow's filters and export the line 21 data
|
||||
@@ -345,9 +635,9 @@ version of CCExtractor.
|
||||
0.63 (2012-08-17)
|
||||
-----------------
|
||||
- Telext support added, by integrating Petr Kutalek's telxcc. Integration is
|
||||
still quite basic (there's equivalent code from both CCExtractor and
|
||||
telxcc) and some clean up is needed, but it works. Petr has announced that
|
||||
he's abandoning telxcc so further development will happen directly in
|
||||
still quite basic (there's equivalent code from both CCExtractor and
|
||||
telxcc) and some clean up is needed, but it works. Petr has announced that
|
||||
he's abandoning telxcc so further development will happen directly in
|
||||
CCExtractor.
|
||||
- Some bug fixes, as usual.
|
||||
|
||||
@@ -357,14 +647,14 @@ version of CCExtractor.
|
||||
Mac users that sent this.
|
||||
- Hauppauge mode now uses PES timing, needed for files that don't have
|
||||
caption data during all the video (such as in commercial breaks).
|
||||
- Added -mp4 and -in:mp4 to force the input to be processed as MP4.
|
||||
- Added -mp4 and -in:mp4 to force the input to be processed as MP4.
|
||||
- CC608 data embedded in a separate stream (as opposed as in the video
|
||||
stream itself) in MP4 files is now supported (not heavily tested).
|
||||
stream itself) in MP4 files is now supported (not heavily tested).
|
||||
This should be rather useful since closed captioned files from iTunes
|
||||
use this format.
|
||||
- More CEA-708 work. The debugger is now able to dump the "TV" contents for
|
||||
the first time. Also, a .srt can be generated, however timing is not quite
|
||||
good yet (still need to figure out why).
|
||||
the first time. Also, a .srt can be generated, however timing is not quite
|
||||
good yet (still need to figure out why).
|
||||
- Added -svc (or --service) to select the CEA-708 services to be processed.
|
||||
For example, -svc 1,2 will process the primary and secondary language
|
||||
services. Valid values are 1-63, where 1 is the primary language, 2 is
|
||||
@@ -379,9 +669,9 @@ version of CCExtractor.
|
||||
- Fix: GCC 3.4.4 can now build CCExtractor.
|
||||
- Fix: Damaged TS packets (those that come with 'error in transport' bit
|
||||
on) are now skipped.
|
||||
- Fix: Part of the changes for MP4 support (CC packets buffering in
|
||||
particular) broke some stuff for other files, causing at least very
|
||||
annoying character duplication. We hope we've fixed it without breaking
|
||||
- Fix: Part of the changes for MP4 support (CC packets buffering in
|
||||
particular) broke some stuff for other files, causing at least very
|
||||
annoying character duplication. We hope we've fixed it without breaking
|
||||
anything but please report).
|
||||
- Some non-interesting cleanup.
|
||||
|
||||
@@ -392,13 +682,13 @@ version of CCExtractor.
|
||||
code, the stream must be a file (no streaming), etc.
|
||||
- Fix: The Windows version was writing text files with double \r.
|
||||
- Fix: Closed captions blocks with no data could cause a crash.
|
||||
- Fix: -noru (to generate files without duplicate lines in
|
||||
- Fix: -noru (to generate files without duplicate lines in
|
||||
roll-up) was broken, with complete lines being missing.
|
||||
- Fix: bin format not working as input.
|
||||
- Fix: bin format not working as input.
|
||||
|
||||
0.59 (2011-10-07)
|
||||
-----------------
|
||||
- More AVC/H.264 work. pic_order_cnt_type != 0 will be processed now.
|
||||
- More AVC/H.264 work. pic_order_cnt_type != 0 will be processed now.
|
||||
- Fix: Roll-up captions with interruptions for Text (with ResumeTextDisplay
|
||||
in the middle of the caption data) were missing complete lines.
|
||||
- Added a timed text transcript output format, probably only useful for
|
||||
@@ -421,7 +711,7 @@ version of CCExtractor.
|
||||
- Added -stdout => If used, the captions will be sent to stdout (console)
|
||||
instead of file. Combined with -, CCExtractor can work as a filter in
|
||||
a larger process, receiving the stream from stdin and sending the
|
||||
captions to stdout.
|
||||
captions to stdout.
|
||||
- Some code clean up, minor refactoring.
|
||||
- Teletext detection (not yet processing).
|
||||
|
||||
@@ -430,20 +720,20 @@ version of CCExtractor.
|
||||
- Implemented new PTS based mode to order the caption information
|
||||
of AVC/H.264 data streams. The old pic_order_cnt_lsb based method
|
||||
is still available via the -poc or --usepicorder command switches.
|
||||
- Removed a couple of those annoying "Impossible!" error messages
|
||||
- Removed a couple of those annoying "Impossible!" error messages
|
||||
that appears when processing some (possibly broken, unsure) files.
|
||||
- Added -nots --notypesettings to prevent italics and underline
|
||||
- Added -nots --notypesettings to prevent italics and underline
|
||||
codes from being displayed.
|
||||
- Note to those not liking the paragraph symbol being used for the
|
||||
- Note to those not liking the paragraph symbol being used for the
|
||||
music note: Submit a VALID replacement in latin-1.
|
||||
- Added preliminary support for multiple program TS files. The
|
||||
- Added preliminary support for multiple program TS files. The
|
||||
parameter --program-number (or -pn) will let you choose which
|
||||
program number to process. If no number is passed and the TS
|
||||
program number to process. If no number is passed and the TS
|
||||
file contains more than one, CCExtractor will display a list of
|
||||
found programs and terminate.
|
||||
- Added support (basic, because I only received one sample) for some
|
||||
Hauppauge cards that save CC data in their own format. Use the
|
||||
parameter -haup to enable it (CCExtractor will display a notice
|
||||
parameter -haup to enable it (CCExtractor will display a notice
|
||||
if it thinks that it's processing a Hauppauge capture anyway).
|
||||
- Fixed bug in roll-up.
|
||||
- More AVC work, now TS files from echostar that provided garbled
|
||||
@@ -452,8 +742,8 @@ version of CCExtractor.
|
||||
|
||||
0.57 (2010-12-16)
|
||||
-----------------
|
||||
- Bugfixes in the Windows version. Some debug code was unintentionally
|
||||
left in the released version.
|
||||
- Bug fixes in the Windows version. Some debug code was unintentionally
|
||||
left in the released version.
|
||||
|
||||
0.56 (2010-12-09)
|
||||
-----------------
|
||||
@@ -470,22 +760,22 @@ version of CCExtractor.
|
||||
- Start implementation of EIA-708 decoding (not active yet).
|
||||
- Add -gt / --goptime switch to use GOP timing instead of PTS timing.
|
||||
- Start implementation of AVC/H.264 decoding (not active yet).
|
||||
- Fixed: The basic problem is that when 24fps movie film gets converted to 30fps NTSC
|
||||
they repeat every 4th frame. Some pics have 3 fields of CC data with field 3 CC data
|
||||
belongs to the same channel as field 1. The following pics have the fields reversed
|
||||
because of the odd number of fields. I used top_field_first to tell when the channels
|
||||
- Fixed: The basic problem is that when 24fps movie film gets converted to 30fps NTSC
|
||||
they repeat every 4th frame. Some pics have 3 fields of CC data with field 3 CC data
|
||||
belongs to the same channel as field 1. The following pics have the fields reversed
|
||||
because of the odd number of fields. I used top_field_first to tell when the channels
|
||||
are reversed. See Table 6-1 of the SCTE 20 [Paul Fernquist]
|
||||
|
||||
0.54 (2009-04-16)
|
||||
-----------------
|
||||
- Add -nosync and -fullbin switches for debugging purposes.
|
||||
- Remove -lg (--largegops) switch.
|
||||
- Improve syncronization of captions for source files with
|
||||
- Improve synchronization of captions for source files with
|
||||
jumps in their time information or gaps in the caption
|
||||
information.
|
||||
- [R. Abarca] Changed Mac script, it now compiles/link
|
||||
everything from the /src directory.
|
||||
- It's now possible to have CCExtractor add credits
|
||||
- [R. Abarca] Changed Mac script, it now compiles/link
|
||||
everything from the /src directory.
|
||||
- It's now possible to have CCExtractor add credits
|
||||
automatically.
|
||||
- Added a feature to add start and end messages (for credits).
|
||||
See help screen for details.
|
||||
@@ -506,13 +796,13 @@ version of CCExtractor.
|
||||
for Raw Captions With Time). This new format
|
||||
allows one file to contain all the available
|
||||
closed caption data instead of just one stream.
|
||||
- Added --no_progress_bar to disable status
|
||||
- Added --no_progress_bar to disable status
|
||||
information (mostly used when debugging, as the
|
||||
progress information is annoying in the middle
|
||||
of debug logs).
|
||||
- The Windows GUI was reported to freeze in some
|
||||
- The Windows GUI was reported to freeze in some
|
||||
conditions. Fixed.
|
||||
- The Windows GUI is now targeted for .NET 2.0
|
||||
- The Windows GUI is now targeted for .NET 2.0
|
||||
instead of 3.5. This allows Windows 2000 to run
|
||||
it (there's not .NET 3.5 for Windows 2000), as
|
||||
requested by a couple of key users.
|
||||
@@ -520,17 +810,17 @@ version of CCExtractor.
|
||||
0.51 (unreleased)
|
||||
-----------------
|
||||
- Removed -autopad and -goppad, no longer needed.
|
||||
- In preparation to a new binary format we have
|
||||
renamed the current .bin to .raw. Raw files
|
||||
have only CC data (with no header, timing, etc).
|
||||
- In preparation to a new binary format we have
|
||||
renamed the current .bin to .raw. Raw files
|
||||
have only CC data (with no header, timing, etc.).
|
||||
- The input file format (when forced) is now
|
||||
specified with
|
||||
specified with
|
||||
-in=format
|
||||
such as -in=ts, -in=raw, -in=ps ...
|
||||
The old switches (-ts, -ps, etc) still work.
|
||||
The old switches (-ts, -ps, etc.) still work.
|
||||
The only exception is -bin which has been removed
|
||||
(reserved for the new binary format). Use
|
||||
-in=raw to process a raw file.
|
||||
-in=raw to process a raw file.
|
||||
- Removed -d, which when produced a raw file used
|
||||
a DVD format. This has been merged into a new
|
||||
output type "dvdraw". So now instead of using
|
||||
@@ -539,7 +829,7 @@ version of CCExtractor.
|
||||
- Removed --noff
|
||||
- Added gui_mode_reports for frontend communications,
|
||||
see related file.
|
||||
- Windows GUI rewritten. Source code now included,
|
||||
- Windows GUI rewritten. Source code now included,
|
||||
too.
|
||||
- [Volker] Dish Network clean-up
|
||||
|
||||
@@ -552,12 +842,12 @@ version of CCExtractor.
|
||||
0.49 (2008-12-10)
|
||||
-----------------
|
||||
- [Volker] Major MPEG parser rework. Code much
|
||||
cleaner now.
|
||||
cleaner now.
|
||||
- Some stations transmit broken roll-up captions,
|
||||
and for some reason don't send CRs but RUs...
|
||||
Added work-around code to make captions readable.
|
||||
- Started work on EIA-708 (DTV). Right now you can
|
||||
add -debug-708 to get a dump of the 708 data.
|
||||
add -debug-708 to get a dump of the 708 data.
|
||||
An actually useful decoder will come soon.
|
||||
- Some of the changes MIGHT HAVE BROKEN MythTV's
|
||||
code. I don't use MythTV myself so I rely on
|
||||
@@ -565,17 +855,17 @@ version of CCExtractor.
|
||||
is broken please let me know.
|
||||
- Added new debug options.
|
||||
- [Volker] Added support for DVR-MS NTSC files.
|
||||
- Other minor bugfixes and changes.
|
||||
- Other minor bug fixes and changes.
|
||||
|
||||
0.46 (2008-11-24)
|
||||
-----------------
|
||||
- Added support for live streaming, ccextractor
|
||||
- Added support for live streaming, CCExtractor
|
||||
can now process files that are being recorded
|
||||
at the same time.
|
||||
|
||||
- [Volker] Added a new DVR-MS loop - this is
|
||||
- [Volker] Added a new DVR-MS loop - this is
|
||||
completely new, DVR-MS specific code, so we no
|
||||
longer use the generic MPEG code for DVR-MS.
|
||||
longer use the generic MPEG code for DVR-MS.
|
||||
DVR-MS should (or will be eventually at least)
|
||||
be as reliable as TS.
|
||||
Note: For now, it's only ATSC recordings, not
|
||||
@@ -583,22 +873,22 @@ version of CCExtractor.
|
||||
|
||||
0.45 (2008-11-14)
|
||||
-----------------
|
||||
- Added autodetection of DVR-MS files.
|
||||
- Added auto-detection of DVR-MS files.
|
||||
- Added -asf to force DVR-MS mode.
|
||||
- Added some specific support for DVR-MS
|
||||
files. These format used to work
|
||||
correcty in 0.34 (pure luck) but the
|
||||
correctly in 0.34 (pure luck) but the
|
||||
MPEG code rework broke it. It should
|
||||
work as it used to.
|
||||
- Updated Windows GUI to support the
|
||||
new options.
|
||||
- Added -lg --largegops
|
||||
From the help screen:
|
||||
Each Group-of-Picture comes with timing
|
||||
information. When this info is too separate
|
||||
(for example because there are a lot of
|
||||
frames in a GOP) ccextractor may prefer not
|
||||
to use GOP timing. Use this option is you
|
||||
Each Group-of-Picture comes with timing
|
||||
information. When this info is too separate
|
||||
(for example because there are a lot of
|
||||
frames in a GOP) ccextractor may prefer not
|
||||
to use GOP timing. Use this option is you
|
||||
need ccextractor to use GOP timing in large
|
||||
GOPs.
|
||||
|
||||
@@ -611,15 +901,15 @@ version of CCExtractor.
|
||||
in one go.
|
||||
- Added an option to prevent duplicate
|
||||
lines in roll-up captions.
|
||||
- Several minor bugfixes.
|
||||
- Several minor bug fixes.
|
||||
- Updated the GUI to add the new options.
|
||||
|
||||
0.43 (2008-06-20)
|
||||
-----------------
|
||||
- Fixed a bug in the read loop (no less)
|
||||
that caused some files to fail when
|
||||
reading without buffering (which is
|
||||
the default in the linux build).
|
||||
that caused some files to fail when
|
||||
reading without buffering (which is
|
||||
the default in the Linux build).
|
||||
- Several improvements in the GUI, such as
|
||||
saving current options as default.
|
||||
|
||||
@@ -635,19 +925,19 @@ version of CCExtractor.
|
||||
-----------------
|
||||
- Default output is now .srt instead of .bin,
|
||||
use -raw if you need the data dump instead of
|
||||
.srt.
|
||||
- Added -trim, which removes blank spaces at
|
||||
.srt.
|
||||
- Added -trim, which removes blank spaces at
|
||||
the left and rights of each line in .srt.
|
||||
Note that those spaces are there to help
|
||||
deaf people know if the person talking is
|
||||
at the left or the right of the screen, i.e.
|
||||
there aren't useless. But if they annoy
|
||||
you go ahead...
|
||||
you, go ahead...
|
||||
|
||||
0.40 (2008-05-20)
|
||||
-----------------
|
||||
- Fixed a bug in the sanity check function
|
||||
that caused the Myth branch to abort.
|
||||
- Fixed a bug in the sanity check function
|
||||
that caused the Myth branch to abort.
|
||||
- Fixed the OSX build script, it needed a
|
||||
new #define to work.
|
||||
|
||||
@@ -657,30 +947,30 @@ version of CCExtractor.
|
||||
have no time information. Also, if in roll-up
|
||||
mode there will be no repeated lines.
|
||||
- Lots of changes in the MPEG parser, most of
|
||||
them submitted by Volker Quetschke.
|
||||
them submitted by Volker Quetschke.
|
||||
- Fixed a bug in the CC decoder that could cause
|
||||
the first line not to be cleared in roll-up
|
||||
mode.
|
||||
- ccextractor can now follow number sequences in
|
||||
mode.
|
||||
- CCExtractor can now follow number sequences in
|
||||
file names, by suffixing the name with +.
|
||||
For example,
|
||||
|
||||
DVD0001.VOB+
|
||||
DVD0001.VOB+
|
||||
|
||||
means DVD0001.VOB, DVD0002.VOB, etc. This works
|
||||
for all files, so part001.ts+ does what you
|
||||
could expect.
|
||||
- Added -90090 which changes the clock frequency
|
||||
from the MPEG standard 90000 to 90090. It
|
||||
from the MPEG standard 90000 to 90090. It
|
||||
*could* (remains to be seen) help if there are
|
||||
timing issues.
|
||||
timing issues.
|
||||
- Better support for Tivo files.
|
||||
- By default ccextractor now considers the whole
|
||||
input file list a one large file, instead of
|
||||
several, independent, video files. This has
|
||||
been changed because most programs (for example
|
||||
DVDDecrypt) just cut the files by size.
|
||||
If you need the old behaviour (because you
|
||||
DVDDecrypt) just cut the files by size.
|
||||
If you need the old behaviour (because you
|
||||
actually edited the video files and want to
|
||||
join the subs), use -ve.
|
||||
|
||||
@@ -693,12 +983,12 @@ version of CCExtractor.
|
||||
being closed).
|
||||
- Displayed memory is now written to disk at end
|
||||
of stream even if there is no command requesting
|
||||
so (may prevent losing the last screenful).
|
||||
so (may prevent losing the last screen-full).
|
||||
- Important change that could break scripts, but
|
||||
that have been added because old behaviour was
|
||||
annoying to most people: _1 and _2 at the end
|
||||
of the output file names is now added ONLY if
|
||||
-12 is used (ie when there are two output
|
||||
-12 is used (i.e. when there are two output
|
||||
files to produce). So
|
||||
|
||||
ccextractor -srt sopranos.mpg
|
||||
@@ -759,7 +1049,7 @@ version of CCExtractor.
|
||||
Alan
|
||||
Tony
|
||||
|
||||
So you get
|
||||
So you get
|
||||
|
||||
You better respect
|
||||
this robe, Alan.
|
||||
@@ -768,7 +1058,7 @@ version of CCExtractor.
|
||||
have a different spelling file per TV
|
||||
show, or a large file with a lot of
|
||||
words, etc.
|
||||
- ccextractor has been reported to
|
||||
- ccextractor has been reported to
|
||||
compile and run on Mac with a minor
|
||||
change in the build script, so I've
|
||||
created a mac directory with the
|
||||
@@ -782,17 +1072,17 @@ version of CCExtractor.
|
||||
-----------------
|
||||
- Added -scr or --screenfuls, to select the
|
||||
number of screenfuls ccextractor should
|
||||
write before exiting. A screenful is
|
||||
write before exiting. A screenful is
|
||||
a change of screen contents caused by
|
||||
a CC command (not new characters). In
|
||||
practice, this means that for .srt each
|
||||
group of lines is a screenful, except when
|
||||
using -dru (which produces a lot of
|
||||
using -dru (which produces a lot of
|
||||
groups of lines because each new character
|
||||
produces a new group).
|
||||
- Completed tables for all encodings.
|
||||
- Fixed bug in .srt related to milliseconds
|
||||
in time lines.
|
||||
in time lines.
|
||||
- Font colors are back for .srt (apparently
|
||||
some programs do support them after all).
|
||||
Use -nofc or --nofontcolor if you don't
|
||||
@@ -800,8 +1090,8 @@ version of CCExtractor.
|
||||
|
||||
0.32 (unreleased)
|
||||
-----------------
|
||||
- Added -delay ms, which adds (or substracts)
|
||||
a number of milliseconds to all times in
|
||||
- Added -delay ms, which adds (or subtracts)
|
||||
a number of milliseconds to all times in
|
||||
.srt/.sami files. For example,
|
||||
|
||||
-delay 400
|
||||
@@ -811,7 +1101,7 @@ version of CCExtractor.
|
||||
|
||||
-delay -400
|
||||
|
||||
causes all substitles to appear 400 ms before
|
||||
causes all subtitles to appear 400 ms before
|
||||
they would normally do.
|
||||
- Added -startat at -endat which lets you
|
||||
select just a portion of data to be processed,
|
||||
@@ -832,12 +1122,12 @@ version of CCExtractor.
|
||||
- Fix in extended char decoding, I wasn't
|
||||
replacing the previous char.
|
||||
- When a sequence code was found before
|
||||
having a PTS, reported time was
|
||||
undefined.
|
||||
having a PTS, reported time was
|
||||
undefined.
|
||||
|
||||
0.29 (unreleased)
|
||||
-----------------
|
||||
- Minor bugfix.
|
||||
- Minor bug fix.
|
||||
|
||||
0.28 (unreleased)
|
||||
-----------------
|
||||
@@ -851,14 +1141,14 @@ version of CCExtractor.
|
||||
|
||||
0.27 (unreleased)
|
||||
-----------------
|
||||
- Modified sanitizing code, it's less aggresive
|
||||
- Modified sanitizing code, it's less aggressive
|
||||
now. Ideally it should mean that characters
|
||||
won't be missed anymore. We'll see.
|
||||
|
||||
0.26 (unreleased)
|
||||
-----------------
|
||||
- Added -gp (or -goppad) to make ccextractor use
|
||||
GOP timing. Try it for non TS files where
|
||||
GOP timing. Try it for non TS files where
|
||||
subs start OK but desync as the video advances.
|
||||
|
||||
0.25 (unreleased)
|
||||
@@ -867,7 +1157,7 @@ version of CCExtractor.
|
||||
-nomyth to prevent the MytvTV code path to be
|
||||
called. I've seen apparently correct files that
|
||||
make MythTV's MPEG decoder to choke. So, if it
|
||||
doesn't work correctly automatically: Try
|
||||
doesn't work correctly automatically: Try
|
||||
-nomyth and -myth. Hopefully one of the two
|
||||
options will work.
|
||||
|
||||
@@ -880,7 +1170,7 @@ version of CCExtractor.
|
||||
- Reworked input buffer code, faster now.
|
||||
- Completed MythTV's MPEG decoder for Program Streams,
|
||||
which results in better processing of some specific
|
||||
files.
|
||||
files.
|
||||
- Automatic file format detection for all kind of
|
||||
files and closed caption storage method. No need to
|
||||
tell ccextractor anything about your file (but you
|
||||
@@ -889,10 +1179,10 @@ version of CCExtractor.
|
||||
|
||||
0.22 (2007-05-15)
|
||||
-----------------
|
||||
- Added text mode handling into decoder, which gets rids
|
||||
- Added text mode handling into decoder, which gets rids
|
||||
of junk when text mode data is present.
|
||||
- Added support for certain (possibly non standard
|
||||
compliant) DVDs that add more captions block in a
|
||||
compliant) DVDs that add more captions block in a
|
||||
user data block than they should (such as Red October).
|
||||
- Fix in roll-up init code that caused the previous popup
|
||||
captions not to be written to disk.
|
||||
@@ -903,13 +1193,13 @@ version of CCExtractor.
|
||||
-----------------
|
||||
- Unicode should be decent now.
|
||||
- Added support for Hauppauge PVR 250 cards, and (possibly)
|
||||
many others (bttv) with the same closed caption recording
|
||||
many others (bttv) with the same closed caption recording
|
||||
format.
|
||||
This is the result of hacking MythTV's MPEG parser into
|
||||
ccextractor. Integration is not very good (to put it
|
||||
CCExtractor. Integration is not very good (to put it
|
||||
midly) but it seems to work. Depending on the feedback I
|
||||
may continue working on this or just leave it 'as it'
|
||||
(good enough).
|
||||
(good enough).
|
||||
If you want to process a file generated by one of these
|
||||
analog cards, use -myth. This is essential as it will
|
||||
make the program take a totally different code path.
|
||||
@@ -919,11 +1209,11 @@ version of CCExtractor.
|
||||
|
||||
0.19 (2007-05-03)
|
||||
-----------------
|
||||
- Work on Dish Network streams, timing was completely broken.
|
||||
- Work on Dish Network streams, timing was completely broken.
|
||||
It's fixed now at least for the samples I have, if it's not
|
||||
completely fixed let me know. Credit for this goes to
|
||||
Jack Ha who sent me a couple of samples and a first
|
||||
implementation of a semiworking fix.
|
||||
Jack Ha who sent me a couple of samples and a first
|
||||
implementation of a semi working-fix.
|
||||
- Added support for several input files (see help screen for
|
||||
details).
|
||||
- Added Unicode and Latin-1 encoding.
|
||||
@@ -955,8 +1245,7 @@ version of CCExtractor.
|
||||
0.07 (2007-04-19)
|
||||
-----------------
|
||||
- Added MPEG reference clock parsing.
|
||||
- Added autopadding in TS. Does miracles with timing.
|
||||
- Added auto padding in TS. Does miracles with timing.
|
||||
- Added video information (as extracted from sequence header).
|
||||
- Some code clean-up.
|
||||
- FF sanity check enabled by default.
|
||||
|
||||
|
||||
263
docs/COMPILATION.MD
Normal file
@@ -0,0 +1,263 @@
|
||||
# Compiling CCExtractor
|
||||
|
||||
You may compile CCExtractor across all major platforms using `CMakeLists.txt` stored under `ccextractor/src/` directory. Autoconf and custom build scripts are also available. See platform specific instructions in the below sections.
|
||||
|
||||
Downloads for precompiled binaries and source code can be found [on our website](https://www.ccextractor.org?id=public:general:downloads).
|
||||
|
||||
Clone the latest repository from Github
|
||||
|
||||
```
|
||||
git clone https://github.com/CCExtractor/ccextractor.git
|
||||
```
|
||||
|
||||
## Linux
|
||||
|
||||
1. Make sure all the dependencies are met.
|
||||
|
||||
Debian:
|
||||
|
||||
```bash
|
||||
sudo apt-get install -y libglew-dev libglfw3-dev cmake gcc libcurl4-gnutls-dev tesseract-ocr libtesseract-dev libleptonica-dev clang libclang-dev
|
||||
```
|
||||
|
||||
RHEL:
|
||||
|
||||
```bash
|
||||
yum install -y glew-devel glfw-devel cmake gcc libcurl-devel tesseract-devel leptonica-devel clang
|
||||
```
|
||||
Rust 1.54 or above is also required.[Install Rust](https://www.rust-lang.org/tools/install). Check specific compilation methods below, on how to compile without rust
|
||||
|
||||
**Note:** On Ubuntu Version 18.04 (Bionic) and later, `libtesseract-dev` is installed rather than `tesseract-ocr-dev`, which does not exist anymore.
|
||||
|
||||
**Note:** On Ubuntu Version 14.04 (Trusty) and earlier, you should build leptonica and tesseract from source
|
||||
|
||||
2. Compiling
|
||||
|
||||
### Using the build script
|
||||
By default build script does not include debugging information hence, you cannot debug the executable produced (i.e. `./ccextractor`) on a debugger. To include debugging information, use the `builddebug` script.
|
||||
|
||||
```bash
|
||||
#Navigate to linux directory and call the build script
|
||||
|
||||
cd ccextractor/linux
|
||||
|
||||
# compile without debug flags
|
||||
./build
|
||||
|
||||
# compile without rust
|
||||
./build -without-rust
|
||||
|
||||
# compile with debug info
|
||||
./builddebug
|
||||
|
||||
# test your build
|
||||
./ccextractor
|
||||
```
|
||||
|
||||
### Standard linux compilation through Autoconf scripts
|
||||
|
||||
```bash
|
||||
sudo apt-get install autoconf #Dependency to generate configuration script
|
||||
cd ccextractor/linux
|
||||
./autogen.sh
|
||||
./configure # OR ./configure --without-rust
|
||||
make
|
||||
|
||||
# test your build
|
||||
./ccextractor
|
||||
|
||||
# make build systemwide
|
||||
sudo make install
|
||||
```
|
||||
|
||||
### Using CMake
|
||||
|
||||
```bash
|
||||
#Create and navigate to directory where you want to store built files
|
||||
cd ccextractor/
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
#Generate makefile using cmake and then compile
|
||||
cmake ../src/ # options here
|
||||
make
|
||||
|
||||
# test your build
|
||||
./ccextractor
|
||||
|
||||
# make build systemwide
|
||||
sudo make install
|
||||
```
|
||||
|
||||
`cmake` also accepts the options:
|
||||
`-DWITH_OCR=ON` to enable OCR
|
||||
`-DWITHOUT_RUST=ON` to disable rust.
|
||||
`-DWITH_HARDSUBX=ON` to enable burned-in subtitles
|
||||
|
||||
### Compiling with GUI:
|
||||
|
||||
To build CCExtractor with a GUI, you will additionally need to install [GLEW](http://glew.sourceforge.net/build.html) and [GLFW](http://www.glfw.org/docs/latest/compile.html)
|
||||
|
||||
In order to compile it, you'll need to configure it using autoconf by passing the `-with-gui` option.
|
||||
|
||||
```bash
|
||||
./autogen.sh
|
||||
./configure --with-gui
|
||||
make
|
||||
|
||||
# make build systemwide
|
||||
sudo make install
|
||||
```
|
||||
|
||||
Once set up you can run the GUI interface from the terminal `./ccextractorGUI`
|
||||
|
||||
## macOS
|
||||
|
||||
1. Make sure all the dependencies are met. Decide if you want OCR; if so, you'll need to install tesseract and leptonica.
|
||||
Dependencies can be installed via Homebrew as:
|
||||
|
||||
```bash
|
||||
brew install pkg-config
|
||||
brew install autoconf automake libtool
|
||||
# optional if you want OCR:
|
||||
brew install tesseract
|
||||
brew install leptonica
|
||||
```
|
||||
|
||||
If configuring OCR, use pkg-config to verify tesseract and leptonica dependencies, e.g.
|
||||
|
||||
```bash
|
||||
pkg-config --exists --print-errors tesseract
|
||||
pkg-config --exists --print-errors lept
|
||||
```
|
||||
|
||||
### Compiling
|
||||
|
||||
#### Using build.command script:
|
||||
|
||||
```bash
|
||||
cd ccextractor/mac
|
||||
./build.command # OR ./build.command OCR
|
||||
|
||||
# test your build
|
||||
./ccextractor
|
||||
```
|
||||
|
||||
#### Using CMake
|
||||
|
||||
```bash
|
||||
#Create and navigate to directory where you want to store built files
|
||||
cd ccextractor/
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
#Generate makefile using cmake and then compile
|
||||
cmake ../src/ # options here
|
||||
make
|
||||
|
||||
# test your build
|
||||
./ccextractor
|
||||
```
|
||||
|
||||
`cmake` also accepts the options:
|
||||
`-DWITH_OCR=ON` to enable OCR
|
||||
`-DWITHOUT_RUST=ON` to disable rust.
|
||||
`-DWITH_HARDSUBX=ON` to enable burned-in subtitles
|
||||
|
||||
#### Standard compilation through Autoconf scripts:
|
||||
|
||||
```bash
|
||||
cd ccextractor/mac
|
||||
./autogen.sh
|
||||
./configure # OR ./configure --without-rust
|
||||
make
|
||||
|
||||
# test your build
|
||||
./ccextractor
|
||||
```
|
||||
|
||||
#### Compiling with GUI:
|
||||
|
||||
To use CCExtractor with a gui you will additionally need to install GLEW and GLFW. You can do that by installing it via homebrew using:
|
||||
|
||||
```bash
|
||||
brew install glfw
|
||||
brew install glew
|
||||
```
|
||||
|
||||
In order to compile it, you'll need to configure it using autoconf by passing the `-with-gui` option.
|
||||
|
||||
```bash
|
||||
./autogen.sh
|
||||
./configure --with-gui #OR .configure --with-gui --without-rust
|
||||
make
|
||||
```
|
||||
|
||||
Once set up, you can run the GUI interface from the terminal `./ccextractorGUI`
|
||||
|
||||
## Windows
|
||||
Dependencies are clang and rust. To enable OCR, rust i686-pc-windows-msvc target should be installed
|
||||
|
||||
Note: Following screenshots and steps are based on Visual Studio 2017, but they should be more or less same for other versions.
|
||||
|
||||
1.Open `windows/` directory to locate `ccextractor.vcxproj`, `ccextractorGUI.vcxproj` (blue arrows) and `ccextractor.sln` (red arrow).
|
||||
|
||||

|
||||
|
||||
2.Accept the security prompt (if any), to proceed with compilation.
|
||||

|
||||
|
||||
3.Using Visual Studio (2015 or above), open ccextractor.sln. This will build both CCExtractor and its GUI. To build them separately, open the respective .vcxproj file.
|
||||
|
||||
4.In Solution Explorer, you'll see two projects with the VS version and Windows release version in parenthesis. Change them to parameters which are true for you by clicking right mouse button on project and selecting properties.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
5.Right click and select `build` to compile the project and generate executable file.
|
||||
|
||||

|
||||
|
||||
6.Find the executable file in `Debug` or `Release` folder, based on selected configuration.
|
||||
|
||||

|
||||
|
||||
Configurations options are: `(Debug|Release)-Full`
|
||||
|
||||
Configurations options include dependent libraries which are used for OCR.
|
||||
|
||||
### Using CMake
|
||||
|
||||
You may also generate `.sln` files for Visual Studio and build using build tools, or open `.sln` files using Visual Studio.
|
||||
|
||||
```bash
|
||||
cmake ../src/ -G "Visual Studio 14 2015"
|
||||
cmake --build . --config Release --ccextractor
|
||||
```
|
||||
|
||||
### Using MSBuild
|
||||
|
||||
Run the following command in `windows/` directory
|
||||
|
||||
```bash
|
||||
msbuild ccextractor.sln /p:Configuration=Release /p:Platform=x64
|
||||
```
|
||||
Different configuration options are,
|
||||
|
||||
| Configuration | Platform | Rust target required |
|
||||
| ------------- |:-------------:| -----:|
|
||||
| Release | x64 | default |
|
||||
| Debug | x64 | default |
|
||||
| Release-Full(OCR) | Win32 | i686-pc-windows-msvc |
|
||||
| Debug-Full(OCR) | Win32 | i686-pc-windows-msvc |
|
||||
|
||||
## Building Installation Packages
|
||||
|
||||
### Arch Linux
|
||||
|
||||
Go to the package_creators folder using `cd` and run the `./arch.sh`
|
||||
|
||||
### Redhat Package Manager (rpm) based Linux Distributions
|
||||
|
||||
Go to the package_creators folder using `cd` and run the `./rpm.sh`
|
||||
@@ -1,58 +0,0 @@
|
||||
Overview
|
||||
========
|
||||
FFmpeg Intigration was done to support multiple encapsulator.
|
||||
|
||||
Dependecy
|
||||
=========
|
||||
FFmpeg library's
|
||||
|
||||
Download and Install FFmpeg on your linux pc.
|
||||
---------------------------------------------
|
||||
|
||||
Download latest source code from following link
|
||||
https://ffmpeg.org/download.html
|
||||
|
||||
then following command to install ffmpeg
|
||||
./configure && make && make install
|
||||
|
||||
Note:If you installed ffmpeg on non standurd location, please change/update your
|
||||
enviorment variable $PATH and $LD_LIBRARY_PATH
|
||||
|
||||
Download and Install FFmpeg on your Windows pc.
|
||||
----------------------------------------------
|
||||
Download prebuild library from following link
|
||||
http://ffmpeg.zeranoe.com/builds/
|
||||
|
||||
You need to download Shared Versions to run the program and Dev Versions to compile.
|
||||
|
||||
How to compile ccextractor
|
||||
==========================
|
||||
|
||||
In Linux
|
||||
--------
|
||||
make ENABLE_FFMPEG=yes
|
||||
|
||||
On Windows
|
||||
----------
|
||||
put the path of libs/include of ffmpeg library in library paths.
|
||||
step 1) In visual studio 2013 right click <Project> and select property.
|
||||
step 2) Select Configuration properties in left panel(column) of property.
|
||||
step 3) Select VC++ Directory.
|
||||
step 4) In the right pane, in the right-hand column of the VC++ Directory property,
|
||||
open the drop-down menu and choose Edit.
|
||||
Step 5) Add path of Directory where you have kept uncompressed library of FFmpeg.
|
||||
|
||||
|
||||
Set preprocessor flag ENABLE_FFMPEG=1
|
||||
Step 1)In visual studio 2013 right click <Project> and select property.
|
||||
Step 2)In the left panel, select Configuration Properties, C/C++, Preprocessor.
|
||||
Step 3)In the right panel, in the right-hand column of the Preprocessor Definitions property, open the drop-down menu and choose Edit.
|
||||
Step 4)In the Preprocessor Definitions dialog box, add ENABLE_FFMPEG=1. Choose OK to save your changes.
|
||||
|
||||
Add library in linker
|
||||
step 1)Open property of project
|
||||
Step 2)Select Configuration properties
|
||||
Step 3)Select Linker in left panel(column)
|
||||
Step 4)Select Input
|
||||
Step 5)Select Additional dependencies in right panel
|
||||
Step 6)Add all FFmpeg's lib in new line
|
||||
50
docs/FFMPEG.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# Overview
|
||||
|
||||
FFmpeg Integration was done to support multiple encapsulations.
|
||||
|
||||
## Dependencies
|
||||
FFmpeg libraries
|
||||
|
||||
### Download and Install FFmpeg on your Linux pc:
|
||||
Download latest source code from following link
|
||||
https://ffmpeg.org/download.html
|
||||
|
||||
Then following command to install ffmpeg:
|
||||
`./configure && make && make install`
|
||||
|
||||
Note:If you installed ffmpeg on non-standard location, please change/update your
|
||||
environment variable `$PATH` and `$LD_LIBRARY_PATH`
|
||||
|
||||
### Download and Install FFmpeg on your Windows pc:
|
||||
Download prebuilt library from following link:
|
||||
http://ffmpeg.zeranoe.com/builds/
|
||||
|
||||
You need to download Shared Versions to run the program and Dev Versions to compile.
|
||||
|
||||
## How to compile ccextractor
|
||||
|
||||
### On Linux:
|
||||
`make ENABLE_FFMPEG=yes`
|
||||
|
||||
### On Windows:
|
||||
#### Put the path of libs/include of ffmpeg library in library paths.
|
||||
1. In visual studio 2013 right click <Project> and select property.
|
||||
2. Select Configuration properties in left panel(column) of property.
|
||||
3. Select VC++ Directory.
|
||||
4. In the right pane, in the right-hand column of the VC++ Directory property, open the drop-down menu and choose Edit.
|
||||
5. Add path of Directory where you have kept uncompressed library of FFmpeg.
|
||||
|
||||
|
||||
#### Set preprocessor flag `ENABLE_FFMPEG=1`
|
||||
1. In visual studio 2013 right click <Project> and select property.
|
||||
2. In the left panel, select Configuration Properties, C/C++, Preprocessor.
|
||||
3. In the right panel, in the right-hand column of the Preprocessor Definitions property, open the drop-down menu and choose Edit.
|
||||
4. In the Preprocessor Definitions dialog box, add `ENABLE_FFMPEG=1`. Choose OK to save your changes.
|
||||
|
||||
#### Add library in linker
|
||||
1. Open property of project
|
||||
2. Select Configuration properties
|
||||
3. Select Linker in left panel(column)
|
||||
4. Select Input
|
||||
5. Select Additional dependencies in right panel
|
||||
6. Add all FFmpeg's lib in new line
|
||||
@@ -1,4 +1,4 @@
|
||||
Starting with version 0.51, ccextractor has a mode
|
||||
Starting with version 0.51, CCExtractor has a mode
|
||||
that allows frontends and other programs know what
|
||||
the current progress is as well as get information
|
||||
on interesting events, such as a file being open
|
||||
@@ -80,7 +80,7 @@ VIDEOINFO - New video information found
|
||||
Horizontal resolution
|
||||
Vertical resolution
|
||||
Aspect ratio
|
||||
Framerate
|
||||
Frame rate
|
||||
|
||||
Example: ###VIDEOINFO#1980#1080#16:9#29.97
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ G608
|
||||
G608 (for grid 608) is generated by CCExtractor by using -out=g608.
|
||||
|
||||
This is a verbose format that exports the contents of the 608 grid verbatim
|
||||
so there's no loss of positioning or colors due the limitations or complexy
|
||||
so there's no loss of positioning or colors due the limitations or complexity
|
||||
or other output formats.
|
||||
|
||||
G608 is a text file with a structure based on .srt and looks like this:
|
||||
@@ -46,13 +46,13 @@ The possible color values are:
|
||||
|
||||
And the possible font values are:
|
||||
R => Regular
|
||||
I => Italic
|
||||
I => Italics
|
||||
U => Underlined
|
||||
B => Underlined + italic
|
||||
B => Underlined + Italics
|
||||
|
||||
If a 'E' is found in ether color or font that means a bug in CCExtractor. Should you ever get
|
||||
If a 'E' is found in either color or font that means a bug in CCExtractor. Should you ever get
|
||||
an E please send us a .bin file that causes it.
|
||||
|
||||
This format is intended for post processing tools that need to represent the output of a 608
|
||||
decoder accurately but that don't want to deal with the madness of other more generic subtitle
|
||||
formats.
|
||||
formats.
|
||||
|
||||
@@ -20,6 +20,10 @@ Linux
|
||||
Make sure Tesseract, Leptonica and FFMPeg are installed, and that their libraries can be found using pkg-config.
|
||||
Refer to OCR.txt for installation details.
|
||||
|
||||
FFmpeg from packages (on Debian) plus a couple of other dependencies you will need:
|
||||
sudo apt-get install libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libxcb-shm0-dev liblzma-dev
|
||||
|
||||
FFmpeg from source:
|
||||
To install FFmpeg (libav), follow the steps at:-
|
||||
https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu - For Ubuntu, Debian and Linux Mint
|
||||
https://trac.ffmpeg.org/wiki/CompilationGuide/Generic - For generic Linux compilation
|
||||
@@ -36,10 +40,21 @@ pkg-config --libs libswscale
|
||||
|
||||
On success, you should see the correct include directory path and the linker flags.
|
||||
|
||||
To build the program with hardsubx support, from the linux directory run:-
|
||||
make ENABLE_HARDSUBX=yes
|
||||
To build the program with hardsubx support,
|
||||
|
||||
== from the Linux directory run:-
|
||||
./configure --enable-hardsubx
|
||||
make ENABLE_HARDSUBX=yes
|
||||
|
||||
== using cmake from root directory
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DWITH_OCR=on -DWITH_HARDSUBX=on ../src/
|
||||
make
|
||||
|
||||
NOTE: The build has been tested with FFMpeg version 3.1.0, and Tesseract 3.04.
|
||||
|
||||
Windows
|
||||
-------
|
||||
|
||||
Coming Soon
|
||||
Coming Soon
|
||||
|
||||
@@ -1,17 +1,9 @@
|
||||
A mailing list is now available from sourceforge:
|
||||
A mailing list is now available from google groups:
|
||||
|
||||
https://groups.google.com/forum/#!forum/ccextractor-dev
|
||||
|
||||
The old one, hosted in sourceforge, is discontinued, but here is the link just in case:
|
||||
|
||||
https://lists.sourceforge.net/lists/listinfo/ccextractor-users
|
||||
|
||||
I expect it to be very low traffic (right now there's around 10
|
||||
people actively helping with ccextractor in one way or
|
||||
another), so almost everything goes here:
|
||||
|
||||
- Bug reports
|
||||
- Feature requests
|
||||
- Announcements
|
||||
|
||||
NOT here:
|
||||
|
||||
- Samples
|
||||
|
||||
|
||||
|
||||
123
docs/OCR.md
Normal file
@@ -0,0 +1,123 @@
|
||||
# Overview
|
||||
OCR (Optical Character Recognition) is a technique used to
|
||||
extract text from images. In the World of Subtitle, subtitle stored
|
||||
in bitmap format are common and even necessary. For converting subtitle
|
||||
in bitmap format to subtitle in text format OCR is used.
|
||||
|
||||
# Dependency
|
||||
1. Tesseract (OCR library by Google)
|
||||
2. Leptonica (Image processing library)
|
||||
|
||||
# How to compile CCExtractor on Linux with OCR
|
||||
|
||||
## Install Dependency
|
||||
|
||||
### Using package manager
|
||||
#### Ubuntu, Debian
|
||||
```
|
||||
sudo apt-get install libleptonica-dev libtesseract-dev tesseract-ocr-eng
|
||||
```
|
||||
#### Suse
|
||||
```
|
||||
zypper install leptonica-devel
|
||||
```
|
||||
|
||||
### Downloading source code and compiling it.
|
||||
|
||||
#### Leptonnica.
|
||||
This package is available in your distro, you need liblept-devel library.
|
||||
|
||||
If Leptonica isn't available for your distribution, or you want to use a newer version
|
||||
than they offer, you can compile your own.
|
||||
|
||||
you can download lib leptonica source code from http://www.leptonica.com/download.html
|
||||
|
||||
#### Tesseract.
|
||||
Tesseract is available directly from many Linux distributions. The package is generally
|
||||
called 'tesseract' or 'tesseract-ocr' - search your distribution's repositories to
|
||||
find it. Packages are also generally available for language training data (search the
|
||||
repositories,) but if not you will need to download the appropriate training data,
|
||||
unpack it, and copy the .traineddata file into the 'tessdata' directory, probably
|
||||
/usr/share/tesseract-ocr/tessdata or /usr/share/tessdata.
|
||||
|
||||
If Tesseract isn't available for your distribution, or you want to use a newer version
|
||||
than they offer, you can compile your own.
|
||||
|
||||
If you compile Tesseract then following command in its source code are enough
|
||||
```
|
||||
./autogen.sh
|
||||
./configure
|
||||
make
|
||||
sudo make install
|
||||
sudo ldconfig
|
||||
```
|
||||
|
||||
Note:
|
||||
1. CCExtractor is tested with Tesseract 3.04 version but it works with older versions.
|
||||
2. Useful Download links:
|
||||
1. *Tesseract* https://github.com/tesseract-ocr/tesseract/archive/3.04.00.tar.gz
|
||||
2. *Tesseract training data* https://github.com/tesseract-ocr/tessdata/archive/3.04.00.tar.gz
|
||||
|
||||
|
||||
##Compilation
|
||||
|
||||
###using Build script
|
||||
```
|
||||
cd ccextractor/linux
|
||||
./build
|
||||
```
|
||||
|
||||
### Passing flags to configure
|
||||
```
|
||||
cd ccextractor/linux
|
||||
./autogen.sh
|
||||
./configure --with-gui --enable-ocr
|
||||
make
|
||||
```
|
||||
|
||||
### Passing flags to cmake
|
||||
```
|
||||
cd <CCExrtactor cloned code>
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DWITH_OCR=ON ../src
|
||||
make
|
||||
```
|
||||
|
||||
|
||||
|
||||
How to compile CCExtractor on Windows with OCR
|
||||
===============================================
|
||||
|
||||
Download prebuild library of leptonica and tesseract from following link
|
||||
https://drive.google.com/file/d/0B2ou7ZfB-2nZOTRtc3hJMHBtUFk/view?usp=sharing
|
||||
|
||||
put the path of libs/include of leptonica and tesseract in library paths.
|
||||
1. In visual studio 2013 right click <Project> and select property.
|
||||
2. Select Configuration properties in left panel(column) of property.
|
||||
3. Select VC++ Directory.
|
||||
4. In the right pane, in the right-hand column of the VC++ Directory property, open the drop-down menu and choose Edit.
|
||||
5. Add path of Directory where you have kept uncompressed library of leptonica and tesseract.
|
||||
|
||||
|
||||
Set preprocessor flag ENABLE_OCR=1
|
||||
1. In visual studio 2013 right click <Project> and select property.
|
||||
2. In the left panel, select Configuration Properties, C/C++, Preprocessor.
|
||||
3. In the right panel, in the right-hand column of the Preprocessor Definitions property, open the drop-down menu and choose Edit.
|
||||
4. In the Preprocessor Definitions dialog box, add ENABLE_OCR=1. Choose OK to save your changes.
|
||||
|
||||
Add library in linker
|
||||
1. Open property of project
|
||||
2. Select Configuration properties
|
||||
3. Select Linker in left panel(column)
|
||||
4. Select Input
|
||||
5. Select Additional dependencies in right panel
|
||||
6. Add libtesseract304d.lib in new line
|
||||
7. Add liblept172.lib in new line
|
||||
|
||||
Download language data from following link
|
||||
https://code.google.com/p/tesseract-ocr/downloads/list
|
||||
after downloading the tesseract-ocr-3.02.eng.tar.gz extract the tar file and put
|
||||
tessdata folder where you have kept CCExtractor executable
|
||||
|
||||
Copy the tesseract and leptonica dll from lib folder downloaded from above link to folder of executable or in system32.
|
||||
94
docs/OCR.txt
@@ -1,94 +0,0 @@
|
||||
|
||||
Overview
|
||||
========
|
||||
OCR (Optical Character Recognisation ) is an technique used to
|
||||
extract text from images. In the World of Subtile, subtitle stored
|
||||
in bitmap format are common and even neccassary. for converting subtile
|
||||
in bitmap format to subtilte in text format ocr is used.
|
||||
|
||||
Dependency
|
||||
==========
|
||||
Tesseract (OCR library by google)
|
||||
Leptonica (image processing library)
|
||||
|
||||
How to compile ccextractor on linux with OCR
|
||||
=============================================
|
||||
|
||||
Download and Install Leptonnica.
|
||||
-------------------------------
|
||||
This package is available, you need liblept-devel library.
|
||||
|
||||
If Leptonica isn't available for your distribution, or you want to use a newer version
|
||||
than they offer, you can compile your own.
|
||||
|
||||
you can download lib leptonica from http://www.leptonica.com/download.html
|
||||
|
||||
Download and Install Tesseract.
|
||||
-------------------------------
|
||||
Tesseract is available directly from many Linux distributions. The package is generally
|
||||
called 'tesseract' or 'tesseract-ocr' - search your distribution's repositories to
|
||||
find it. Packages are also generally available for language training data (search the
|
||||
repositories,) but if not you will need to download the appropriate training data,
|
||||
unpack it, and copy the .traineddata file into the 'tessdata' directory, probably
|
||||
/usr/share/tesseract-ocr/tessdata or /usr/share/tessdata.
|
||||
|
||||
If Tesseract isn't available for your distribution, or you want to use a newer version
|
||||
than they offer, you can compile your own.
|
||||
|
||||
If you compile Tesseract then following command in its source code are enough
|
||||
./autogen.sh
|
||||
./configure
|
||||
make
|
||||
sudo make install
|
||||
sudo ldconfig
|
||||
|
||||
Note:
|
||||
1) CCExtractor is tested with Tesseract 3.04 version but it works with older versions.
|
||||
|
||||
you can download tesseract from https://github.com/tesseract-ocr/tesseract/archive/3.04.00.tar.gz
|
||||
you can download tesseract training data from https://github.com/tesseract-ocr/tessdata/archive/3.04.00.tar.gz
|
||||
|
||||
|
||||
|
||||
Compile CCextractor passing flags like following
|
||||
-------------------------------------------------
|
||||
make ENABLE_OCR=yes
|
||||
|
||||
|
||||
How to compile ccextractor on Windows with OCR
|
||||
===============================================
|
||||
|
||||
Download prebuild library of leptonica and tesseract from following link
|
||||
https://drive.google.com/file/d/0B2ou7ZfB-2nZOTRtc3hJMHBtUFk/view?usp=sharing
|
||||
|
||||
put the path of libs/include of leptonica and tesseract in library paths.
|
||||
step 1) In visual studio 2013 right click <Project> and select property.
|
||||
step 2) Select Configuration properties in left panel(column) of property.
|
||||
step 3) Select VC++ Directory.
|
||||
step 4) In the right pane, in the right-hand column of the VC++ Directory property,
|
||||
open the drop-down menu and choose Edit.
|
||||
Step 5) Add path of Directory where you have kept uncompressed library of leptonica
|
||||
and tesseract.
|
||||
|
||||
|
||||
Set preprocessor flag ENABLE_OCR=1
|
||||
Step 1)In visual studio 2013 right click <Project> and select property.
|
||||
Step 2)In the left panel, select Configuration Properties, C/C++, Preprocessor.
|
||||
Step 3)In the right panel, in the right-hand column of the Preprocessor Definitions property, open the drop-down menu and choose Edit.
|
||||
Step 4)In the Preprocessor Definitions dialog box, add ENABLE_OCR=1. Choose OK to save your changes.
|
||||
|
||||
Add library in linker
|
||||
step 1)Open property of project
|
||||
Step 2)Select Configuration properties
|
||||
Step 3)Select Linker in left panel(column)
|
||||
Step 4)Select Input
|
||||
Step 5)Select Additional dependencies in right panel
|
||||
Step 6)Add libtesseract304d.lib in new line
|
||||
Step 7)Add liblept172.lib in new line
|
||||
|
||||
Download language data from following link
|
||||
https://code.google.com/p/tesseract-ocr/downloads/list
|
||||
after downloading the tesseract-ocr-3.02.eng.tar.gz extract the tar file and put
|
||||
tessdata folder where you have kept ccextractor executable
|
||||
|
||||
Copy the tesseract and leptonica dll from lib folder downloaded from above link to folder of executable or in system32.
|
||||
@@ -1,49 +1,16 @@
|
||||
ccextractor, 0.81
|
||||
-----------------
|
||||
Authors: Carlos Fernández (cfsmp3), Volker Quetschke.
|
||||
Maintainer: cfsmp3
|
||||
## CCExtractor
|
||||
check AUTHORS.TXT for history and developers
|
||||
|
||||
Lots of credit goes to other people, though:
|
||||
McPoodle (author of the original SCC_RIP), Neuron2, and others (see source
|
||||
code).
|
||||
|
||||
Home: http://www.ccextractor.org
|
||||
|
||||
You can subscribe to new releases notifications at freshmeat:
|
||||
|
||||
http://freshmeat.net/projects/ccextractor
|
||||
|
||||
Google Summer of Code 2014 students
|
||||
- Willem Van Iseghem
|
||||
- Ruslan KuchumoV
|
||||
- Anshul Maheshwari
|
||||
|
||||
Google Summer of Code 2015 students
|
||||
- Willem Van Iseghem
|
||||
- Ruslan Kuchumov
|
||||
- Anshul Maheshwari
|
||||
- Nurendra Choudhary
|
||||
- Oleg Kiselev
|
||||
- Vasanth Kalingeri
|
||||
|
||||
|
||||
License
|
||||
-------
|
||||
## License
|
||||
GPL 2.0.
|
||||
|
||||
Description
|
||||
-----------
|
||||
ccextractor was originally a mildly optimized C port of McPoodle's excellent
|
||||
but painfully slow Perl script SCC_RIP. It lets you rip the raw closed
|
||||
captions (read: subtitles) data from a number of sources, such as DVD or
|
||||
ATSC (digital TV) streams.
|
||||
|
||||
Since the original port, lots of changes have been made, such as HDTV
|
||||
support, analog captures support (via bttv cards), direct .srt/.smi
|
||||
generation, time adjusting, and more.
|
||||
## Description
|
||||
Since the original port, the whole code has been rewritten (more than once,
|
||||
one might add) and support for most subtitle formats around the world has
|
||||
been added (teletext, DVB, CEA-708, ISDB...)
|
||||
|
||||
Basic Usage
|
||||
-----------
|
||||
## Basic Usage
|
||||
(please run ccextractor with no parameters for the complete manual -
|
||||
this is for your convenience, really).
|
||||
|
||||
@@ -60,8 +27,7 @@ trivial - you just need to pass the input file and (optionally) some
|
||||
details about the input and output files.
|
||||
|
||||
|
||||
Languages
|
||||
---------
|
||||
## Languages
|
||||
Usually English captions are transmitted in line 21 field 1 data,
|
||||
using channel 1, so the default values are correct so you don't
|
||||
need to do anything and you don't need to understand what it all
|
||||
@@ -79,20 +45,17 @@ So try adding these parameter combinations to your other parameters.
|
||||
|
||||
If there are Spanish subtitles, one of them should work.
|
||||
|
||||
McPoodle's page
|
||||
---------------
|
||||
## McPoodle's page
|
||||
http://www.theneitherworld.com/mcpoodle/SCC_TOOLS/DOCS/SCC_TOOLS.HTML
|
||||
|
||||
Essential CC related information and free (with source) tools.
|
||||
|
||||
Encoding
|
||||
--------
|
||||
## Encoding
|
||||
This version, in both its Linux and Windows builds generates by
|
||||
default Unicode files. You can use -latin1 and -utf8 if you prefer
|
||||
these encodings (usually it just depends on what your specific
|
||||
player likes).
|
||||
|
||||
Future work
|
||||
-----------
|
||||
## Future work
|
||||
- Please check www.ccextractor.org for news and future work.
|
||||
|
||||
27
docs/Updating_Dependencies.txt
Normal file
@@ -0,0 +1,27 @@
|
||||
A guide to how dependencies should be updated in CCExtractor.
|
||||
|
||||
Author: thealphadollar
|
||||
======================
|
||||
|
||||
CCExtractor depends on multiple dependencies and they are updated from time to time. On every major revision of the dependencies, the changes need to be incorporated into our repository.
|
||||
|
||||
It is not straightforward since we make minor (or sometimes major) changes into the library to use it and these changes are lost in case of direct file replacement. To overcome this issue, we should follow the below pathway.
|
||||
|
||||
*) Create a duplicate copy of the CCExtractor's folder of the library, to be updated (we will be calling this folder lib(copy) in steps and original one as lib).
|
||||
*) Download the latest files of the library from official source (the folder is called as lib(orig) in further steps).
|
||||
*) Look for files with the same name in lib and lib(orig). It can be done manually in case of small libraries (libpng), otherwise a script can be written utilising the grep command to find out files from the library which we use.
|
||||
*) In lib, replace all the files (found in previous step) with their updated versions from lib(orig). A copy command can be used in the script written for the previous step to accomplish this step.
|
||||
|
||||
Now, the files in our repository have been updated. In steps to follow, we will try to grab lost changes using lib(copy).
|
||||
|
||||
*) Run diff command between lib(copy) and lib for all files and store the output in a text document. Here files from lib(copy) should be given as first argument to notice deletions clearly.
|
||||
*) Look for deletions in an updated file and manually inspect (or ask mentor) whether that part is to be restored or not. In most cases, it is to be restored but it's better to ask than to break.
|
||||
|
||||
Once the changes have been restored, try to compile CCExtractor. It is very much likely that the compilation will fail. The most probably reason for this could be inclusion of unnecessary lines of code and their accompanying dependencies.
|
||||
e.g "X is not defined" can be an error when we don't include the file in which X is defined nor remove the unnecessary line using X.
|
||||
CCExtractor doesn't use a library fully, we use only the code and files necessary. This requires manual removal of extra lines and dependencies.
|
||||
|
||||
*) Output the compilation erros in a text document while compiling.
|
||||
*) Use inspection and comparison with lib(copy) to decide whether the line causing error is to be removed.
|
||||
|
||||
Compile again, debug and push the change for the Continuous Integration tests on samples.
|
||||
@@ -1,27 +1,30 @@
|
||||
#######################################################
|
||||
# Version 0.01
|
||||
# Version 0.02
|
||||
#
|
||||
# To enable required option please uncommnent option
|
||||
# To enable required option please uncomment option
|
||||
#
|
||||
|
||||
|
||||
# The Input Source tag option give ability to user
|
||||
# to take imput from file, standurd input or network
|
||||
# This tag take number in its input and there meanings
|
||||
# The Input Source tag option gives ability to user
|
||||
# to take input from file, standard input or network
|
||||
# This tag takes number in its input and their meanings
|
||||
# are following
|
||||
# 0 = file
|
||||
# 1 = stdin
|
||||
# 2 = network
|
||||
# 3 = tcp
|
||||
|
||||
INPUT_SOURCE=0
|
||||
|
||||
# The Buffer Input tag
|
||||
# This tag take number in its input.
|
||||
# This tag takes number in its input.
|
||||
|
||||
# Is it ccx_bufferdata_type ?
|
||||
|
||||
#BUFFER_INPUT=0
|
||||
|
||||
# The Direct Rollup tag
|
||||
# This tag take number in its input and there meanings
|
||||
# This tag takes number in its input and their meanings
|
||||
# are following
|
||||
# 0 = no
|
||||
# 1 = yes
|
||||
@@ -29,7 +32,7 @@ INPUT_SOURCE=0
|
||||
#DIRECT_ROLLUP=
|
||||
|
||||
#The No font Color Tag
|
||||
# This tag take number in its input and there meanings
|
||||
# This tag takes number in its input and their meanings
|
||||
# are following
|
||||
# 0 = no
|
||||
# 1 = yes
|
||||
@@ -37,46 +40,58 @@ INPUT_SOURCE=0
|
||||
#NOFONT_COLOR=
|
||||
|
||||
#The No type Setting Tag
|
||||
# This tag take number in its input and there meanings
|
||||
# This tag takes number in its input and their meanings
|
||||
# are following
|
||||
# 0 = no
|
||||
# 1 = yes
|
||||
|
||||
#NOTYPE_SETTING=
|
||||
|
||||
# The Codec Tag take the preference of codec
|
||||
# tag CCX_CODEC_ANY is by default
|
||||
# This tag take number in its input and there meaning
|
||||
# The Codec Tag takes the preference of codec
|
||||
# tag CCX_CODEC_ANY by default
|
||||
# This tag takes number in its input and their meanings
|
||||
# are following
|
||||
# 0 = CCX_CODEC_ANY (default)
|
||||
# 1 = CCX_CODEC_TELETEXT
|
||||
# 2 = CCX_CODEC_DVB
|
||||
# 3 = CCX_CODEC_ISDB_CC
|
||||
# 4 = CCX_CODEC_ATSC_CC
|
||||
# 5 = CCX_CODEC_NONE
|
||||
|
||||
#CODEC=
|
||||
|
||||
# The NO Codec Tag uses codec specified
|
||||
# tag CCX_CODEC_NONE by default
|
||||
# This tag takes number in its input and their meanings
|
||||
# are following
|
||||
# 0 = CCX_CODEC_ANY
|
||||
# 1 = CCX_CODEC_TELETEXT
|
||||
# 2 = CCX_CODEC_DVB
|
||||
|
||||
#CODEC=
|
||||
|
||||
# The NO Codec Tag do not use codec specified
|
||||
# tag CCX_CODEC_NONE is by default
|
||||
# This tag take number in its input and there meaning
|
||||
# are following
|
||||
# 1 = CCX_CODEC_TELETEXT
|
||||
# 2 = CCX_CODEC_DVB
|
||||
# 3 = CCX_CODEC_NONE
|
||||
# 3 = CCX_CODEC_ISDB_CC
|
||||
# 4 = CCX_CODEC_ATSC_CC
|
||||
# 5 = CCX_CODEC_NONE (default)
|
||||
|
||||
#NOCODEC=
|
||||
|
||||
# OUTPUT_FORMAT tag specify format of output
|
||||
# by default output format is srt
|
||||
# This tag take number in its input and there meaning
|
||||
# This tag takes number in its input and their meanings
|
||||
# are following
|
||||
# 0 = CCX_OF_RAW
|
||||
# 1 = CCX_OF_SRT (default)
|
||||
# 2 = CCX_OF_SAMI
|
||||
# 3 = CCX_OF_TRANSCRIPT
|
||||
# 4 = CCX_OF_RCWT
|
||||
# 5 = CCX_OF_NULL
|
||||
# 6 = CCX_OF_SMPTETT
|
||||
# 7 = CCX_OF_SPUPNG
|
||||
# 8 = CCX_OF_DVDRAW
|
||||
# 0 = CCX_OF_RAW
|
||||
# 1 = CCX_OF_SRT (default)
|
||||
# 2 = CCX_OF_SAMI
|
||||
# 3 = CCX_OF_TRANSCRIPT
|
||||
# 4 = CCX_OF_RCWT
|
||||
# 5 = CCX_OF_NULL
|
||||
# 6 = CCX_OF_SMPTETT
|
||||
# 7 = CCX_OF_SPUPNG
|
||||
# 8 = CCX_OF_DVDRAW
|
||||
# 9 = CCX_OF_WEBVTT
|
||||
# 10 = CCX_OF_SIMPLE_XML
|
||||
# 11 = CCX_OF_G608
|
||||
# 12 = CCX_OF_CURL
|
||||
# 13 = CCX_OF_SSA
|
||||
# 14 = CCX_OF_MCC
|
||||
|
||||
#OUTPUT_FORMAT=
|
||||
|
||||
@@ -87,7 +102,7 @@ INPUT_SOURCE=0
|
||||
|
||||
#START_CREDIT_TEXT=
|
||||
|
||||
# Start credit do not start before apecified time in tag
|
||||
# Start credit do not start before specified time in tag
|
||||
# this tag only accepts SS, MM:SS or HH:MM:SS
|
||||
|
||||
#START_CREDIT_NOT_BEFORE=
|
||||
@@ -124,7 +139,7 @@ INPUT_SOURCE=0
|
||||
|
||||
#END_CREDITS_FOR_ATMOST
|
||||
|
||||
# Is Video edited or splitted by tool
|
||||
# Is Video edited or split by tool
|
||||
# By default its 1, ccextractor will process input files in
|
||||
# sequence as if they were all one large file i.e
|
||||
# split by a generic, non video-aware tool. If you
|
||||
@@ -140,7 +155,7 @@ INPUT_SOURCE=0
|
||||
# overrides the default PTS timing,GOP timing is always
|
||||
# used for Elementary Streams.
|
||||
#
|
||||
# This tag take number in its input and there meaning
|
||||
# This tag takes number in its input and their meanings
|
||||
# are following
|
||||
# 0 = use pts for time (when reasonable)
|
||||
# 1 = use gop for time (when reasonable)
|
||||
@@ -164,7 +179,7 @@ INPUT_SOURCE=0
|
||||
# emulation, you can have ccextractor write only one
|
||||
# line at a time, getting rid of these repeated lines.
|
||||
#
|
||||
# This tag take number in its input and there meaning
|
||||
# This tag take number in its input and their meanings
|
||||
# are following
|
||||
# 0 = no (default)
|
||||
# 1 = yes
|
||||
|
||||
340
docs/freetype.TXT
Normal file
@@ -0,0 +1,340 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
821
docs/guidoc.md
Normal file
@@ -0,0 +1,821 @@
|
||||
# Documentation
|
||||
## CCExtractor Graphical User Interface
|
||||
### Code Structure:
|
||||
```
|
||||
src/GUI
|
||||
├── activity.c -Activity window definitions
|
||||
├── activity.h -Activity window declarations
|
||||
├── ccextractorGUI.c -Contains main() and GUI code for 'Main' Tab + 'Menu'
|
||||
├── ccextractorGUI.h -Function and structure declarations
|
||||
├── ccx_cli_thread.c -All the functions (definitions) passed in threads
|
||||
├── ccx_cli_thread.h -Function, variables & structs declaration used in thread
|
||||
├── command_builder.c -Builds command to pass to CLI CCExtractor
|
||||
├── command_builder.h -Function, variables & structs declaration used
|
||||
├── file_browser.c -Function definition for File Browser
|
||||
├── file_browser.h -Function, struct & variable declaration
|
||||
├── nuklear_lib -Diretory contains Library Files
|
||||
│ ├── nuklear_glfw_gl2.h -GLFW backend source header to interact with Nuklear
|
||||
│ └── nuklear.h -Nuklear library source code
|
||||
├── popups.c -Function definitions for all Popups used
|
||||
├── popups.h -Function & network struct declaration for all Popups
|
||||
├── preview.c -Preview window definitions
|
||||
├── preview.h -Preview window definitions
|
||||
├── save_load_data.c -Function definition to save last run state
|
||||
├── save_load_data.h -Function declaration to save last run state
|
||||
├── stb_image.h -Code to load images
|
||||
├── tabs.c -Function definitions for all tabs except 'Main' tab
|
||||
├── tabs.h -Function, variable and structure declarations
|
||||
├── terminal.c -Code for terminal Window
|
||||
└── win_dirent.h -Dirent API for Windows
|
||||
```
|
||||
### File by File functions:
|
||||
activity.c
|
||||
[nk_begin](#nk-begin)(ctx, "Activity", nk_rect(x, y, width, height), NK_WINDOW_TITLE|NK_WINDOW_BACKGROUND);
|
||||
[nk_end](#nk-end)(ctx);
|
||||
[nk_layout_row_dynamic](#nk-layout-row-dynamic)(ctx, 40, 1);
|
||||
[nk_label_wrap](#nk-label-wrap)(ctx, [main_settings](#struct-main-tab)->activity_string[i]);
|
||||
[nk_window_is_closed](#nk-window-is-closed)(ctx, "Activity");
|
||||
|
||||
activity.h
|
||||
int [activity](#func-activity)(struct [nk_context](#nk-context) *ctx, int x, int y, int width, int height, struct [main_tab](#struct-main-tab) *main_settings);
|
||||
|
||||
ccextractorGUI.c
|
||||
[nk_menubar_begin](#nk-menubar-begin)(ctx);
|
||||
[nk_layout_row_begin](#nk-layout-row-begin)(ctx, NK_STATIC, 30, 3);
|
||||
[nk_layout_row_push](#nk-layout-row-push)(ctx, 80);
|
||||
[nk_menu_begin_label](#nk-menu-begin-label)(ctx, "Preferences", NK_TEXT_LEFT, [nk_vec2](#nk-vec2)(120, 200));
|
||||
[nk_menu_end](#nk-menu-end)(ctx);
|
||||
[nk_menubar_end](#nk-menubar-end)(ctx);
|
||||
[nk_layout_space_begin](#nk-layout-space-begin)(ctx, NK_STATIC, 15, 1);
|
||||
[nk_layout_space_end](#nk-layout-space-end)(ctx);
|
||||
[nk_style_push_vec2](#nk-style-push-vec2)(ctx, &ctx->style.window.spacing, [nk_vec2(](#nk-vec2)0, 0));
|
||||
[nk_style_push_float](#nk-style-push-float)(ctx, &ctx->style.button.rounding, 0);
|
||||
[nk_button_label](#nk-label-button)(ctx, names[i]);
|
||||
[nk_style_pop_float](#nk-style-pop-float)(ctx);
|
||||
[nk_group_begin](#nk-group-begin)(ctx, "Advanced Tabs", NK_WINDOW_NO_SCROLLBAR);
|
||||
[nk_group_end](#nk-group-end)(ctx);
|
||||
[nk_layout_row](#nk-layout-row)(ctx, NK_DYNAMIC, 20, 3, ratio_adv_mode);
|
||||
[nk_spacing](#nk-spacing)(ctx, 1);
|
||||
[nk_checkbox_label](#nk-checkbox-label)(ctx, "Advanced Mode", &advanced_mode_check);
|
||||
[nk_option_label](#nk-option-label)(ctx, "Extract from files below:", [main_settings](#struct-main-tab).port_or_files == FILES));
|
||||
[nk_selectable_label](#nk-selectable-label)(ctx, [truncate_path_string](#func-truncate-path-string)([main_settings](#struct-main-tab).filenames[i]), NK_TEXT_LEFT, &[main_settings](#struct-main-tab).is_file_selected[i]);
|
||||
[nk_combo](#nk-combo)(ctx, [main_settings](#struct-main-tab).port_type, 2, [main_settings](#struct-main-tab).port_select, 20, [nk_vec2](#nk-vec2)_(85,100));
|
||||
[nk_label](#nk-label)(ctx, "Drag and Drop files for extraction.", NK_TEXT_CENTERED
|
||||
[nk_progress](#nk-progress)(ctx, &[main_settings](#struct-main-tab).progress_cursor, 101, nk_true);
|
||||
|
||||
ccextractorGUI.h
|
||||
void [setup_main_settings](#func-setup-main-settings)(struct main_tab *main_settings);
|
||||
char* [truncate_path_string](#func-truncate-path-string)(char *filePath);
|
||||
void [remove_path_entry](#func-remove-path-entry)(struct [main_tab](#struct-main-tab) *main_settings, int indexToRemove);
|
||||
|
||||
ccx_cli_thread.c || ccx_cli_thread.h
|
||||
void* [read_activity_data](#func-read-activity-data)(void *read_args);
|
||||
void* [read_data_from_thread](#func-read-data-from-thread)(void* read_args);
|
||||
void* [extract_thread](#func-extract-thread)(void* extract_args);
|
||||
void* [feed_files_for_extraction](#func-feed-files-for-extraction)(void* file_args);
|
||||
void [setup_and_create_thread](#fun-setup-and-create-thread)(struct [main_tab](#struct-main-tab) *main_settings, struct [built_string](#struct-built-string) *command);
|
||||
void&asst; [find_hd_homerun_devices](#func-hd-homerun-devices)(void *args);
|
||||
void* [setup_hd_homerun_device](#func-setup-hd-homerun-device)(void *args);
|
||||
|
||||
command_builder.c || command_builder.h
|
||||
void [command_builder](#func-command-builder)(struct [built_string](#struct-built-string) *command,
|
||||
struct [main_tab](#struct-main-tab) *main_settings,
|
||||
struct [network_popup](#struct-network-popup) *network_settings,
|
||||
struct [input_tab](#struct-input-tab) *input,
|
||||
struct [advanced_input_tab](#struct-advanced-input-tab) *advanced_input,
|
||||
struct [output_tab](#struct-output-tab) *output,
|
||||
struct [decoders_tab](#struct-output-tab) *decoders,
|
||||
struct [credits_tab](#struct-output-tab) *credits,
|
||||
struct [debug_tab](#struct-debug-tab) *debug,
|
||||
struct [burned_subs_tab](#struct-debug-tab) *burned_subs);
|
||||
|
||||
file_browser.c || file_browser.h
|
||||
void [die](#func-die)(const char *fmt, ...);
|
||||
char* [file_load](#func-file-load)(const char* path, size_t* siz);
|
||||
char* [str_duplicate](#func-str-duplicate)(const char *src);
|
||||
void [dir_free_list](#func-dir-free-list)(char **list, size_t size);
|
||||
char** [dir_list](#func-dir-list)(const char *dir, int return_subdirs, size_t *count);
|
||||
struct file_group [FILE_GROUP](#func-file-group)(enum file_groups group, const char *name, struct nk_image *icon);
|
||||
struct file [FILE_DEF](#func-file-def)(enum file_types type, const char *suffix, enum file_groups group);
|
||||
struct nk_image* [media_icon_for_file](#func-media-icon-for-file)(struct media *media, const char *file);
|
||||
void [media_init](#func-media-init)(struct media *media);
|
||||
void [file_browser_reload_directory_content](#func-file-browser-reload-directory-content)(struct file_browser *browser, const char *path);
|
||||
void [get_drives](#func-get-drives)(struct file_browser *browser);
|
||||
void [file_browser_init](#func-file-browser-init)(struct file_browser *browser, struct media *media);
|
||||
void [file_browser_free](#func-file-browser-free)(struct file_browser *browser);
|
||||
int [file_browser_run](#func-file-browser-run)(struct file_browser *browser, struct [nk_context](#nk-context) *ctx, struct [main_tab](#struct-main-tab) *main_settings, struct [output_tab](#struct-output-tab) *output, struct [debug_tab](#struct-debug-tab) *debug, struct [hd_homerun_tab](#struct-hd-homerun-tab) *hd_homerun);
|
||||
|
||||
popups.c || popups.h
|
||||
void [draw_network_popup](#func-draw-network-popup)(struct [nk_context](#nk-context) *ctx, int *show_preferences_network, struct [network_popup](#struct-network-popup) *network_settings);
|
||||
void [draw_getting_started_popup](#func-draw-getting-started-popup)(struct [nk_context](#nk-context) *ctx, int *show_getting_started);
|
||||
void [draw_about_ccx_popup](#func-draw-about-ccx-popup)(struct [nk_context](#nk-context) *ctx, int *show_about_ccx, struct nk_user_font *droid_big, struct nk_user_font *droid_head);
|
||||
void [draw_progress_details_popup](#func-draw-progress-details-popup)(struct [nk_context](#nk-context) *ctx, int *show_progress_details, struct [main_tab](#struct-main-tab) *main_settings);
|
||||
void [draw_color_popup](#func-draw-color-popup)(struct [nk_context](#nk-context) *ctx, struct [output_tab](#struct-output-tab) *output);
|
||||
void [draw_thread_popup](#fun-draw-thread-popup)(struct [nk_context](#nk-context) *ctx, int *show_thread_popup);
|
||||
void [setup_network_settings](#func-setup-network-settings)(struct [network_popup](#struct-network-popup) *network_settings);
|
||||
|
||||
preview.c || preview.h
|
||||
int [preview](#func-preview)(struct [nk_context](#nk-context) *ctx, int x, int y, int width, int height, struct [main_tab](#struct-main-tab) *main_settings);
|
||||
|
||||
save_load_data.c || save_load_data.h
|
||||
void [load_data](#func-load-data)(FILE *file,
|
||||
struct [main_tab](#struct-main-tab) *main_settings,
|
||||
struct [input_tab](#struct-input-tab) *input,
|
||||
struct [advanced_input_tab](#struct-advanced-input-tab) *advanced_input,
|
||||
struct [output_tab](#struct-output-tab) *output,
|
||||
struct [decoders_tab](#struct-decoders-tab) *decoders,
|
||||
struct [credits_tab](#struct-credits-tab) *credits,
|
||||
struct [debug_tab](#struct-debug-tab) *debug,
|
||||
struct [hd_homerun_tab](#struct-hd-homerun-tab) *hd_homerun,
|
||||
struct [burned_subs_tab](#struct-burned-subs-tab) *burned_subs);
|
||||
|
||||
void [save_data](#func-save-data)(FILE *file,
|
||||
struct [main_tab](#struct-main-tab) *main_settings,
|
||||
struct [input_tab](#struct-input-tab) *input,
|
||||
struct [advanced_input_tab](#struct-advanced-input-tab) *advanced_input,
|
||||
struct [output_tab](#struct-output-tab) *output,
|
||||
struct [decoders_tab](#struct-decoders-tab) *decoders,
|
||||
struct [credits_tab](#struct-credits-tab) *credits,
|
||||
struct [debug_tab](#struct-debug-tab) *debug,
|
||||
struct [hd_homerun_tab](#struct-hd-homerun-tab) *hd_homerun,
|
||||
struct [burned_subs_tab](#struct-burned-subs-tab) *burned_subs);
|
||||
|
||||
void [write_credits](#func-write-credits)(FILE* file, struct [credits_tab](#struct-credits-tab) *credits);
|
||||
void [read_credits](#func-read-credits)(FILE* file, struct [credits_tab](#struct-credits-tab) *credits);
|
||||
|
||||
terminal.c
|
||||
int [terminal](#func-terminal)(struct [nk_context](#nk-context) *ctx, int x, int y, int width, int height, char *command);
|
||||
|
||||
### About CCExtractor specific functions
|
||||
#### int <a id="func-activity">activity</a>(struct nk_context *ctx, int x, int y, int width, int height, struct [main_tab](#struct-main-tab) *main_settings);
|
||||
##### Info:
|
||||
--Contains the procedure to be carried out when Activity Window is toggled.
|
||||
##### Parameters:
|
||||
* *ctx - pointer to `nk_context` structure.
|
||||
* x - X co-ordinate to draw Activity Window
|
||||
* y - Y co-ordinate to draw Activty Window.
|
||||
* width - width of window to draw.
|
||||
* height - height of window to draw.
|
||||
* *main_settings - pointer to [`main_tab`](#struct-main-tab) structure.
|
||||
##### Return Type: int
|
||||
* Returns non-zero value if window is not closed.
|
||||
* Returns zero if window is closed.
|
||||
#### void <a id="func-setup-main-settings">setup_main_settings</a>(struct [main_tab](#struct-main-tab) *main_settings);
|
||||
##### Info:
|
||||
Setups the required defaults of variables in [`main_tab`](#struct-main-tab) structure.
|
||||
##### Parameters:
|
||||
* *main_settings - pointer to [`main_tab`](#struct-main-tab) structure.
|
||||
##### Return Type: void
|
||||
#### char* <a id="func-truncate-path-string">truncate_path_string</a>(char *filePath);
|
||||
##### Info:
|
||||
Truncated the Path String of file to visible area using `...`
|
||||
##### Parameters:
|
||||
* *filePath - Pointer to string to be truncated.
|
||||
##### Return Type: *char
|
||||
* Returns pointer to truncated string.
|
||||
#### void <a id="func-remove-path-entry">remove_path_entry</a>(struct [main_tab](#struct-main-tab) *main_settings, int indexToRemove);
|
||||
##### Info:
|
||||
Removes the selected path in the extraction queue (Selected entry's index is passed).
|
||||
##### Parameters:
|
||||
* *main_settings - pointer to [`main_tab`](#struct-main-tab) structure.
|
||||
* indexToRemove - index of the string to be removed from dynamic array of many strings.
|
||||
##### Return Type: void
|
||||
|
||||
#### void* <a id="func-read-activity-data">read_activity_data</a>(void *read_args);
|
||||
##### Info:
|
||||
Reads activity data related to CCExtractor on `stdout`. And outputs to activity window (Updates variables that code of activity window uses).
|
||||
##### Parameters:
|
||||
* *read_args - Pointer to void, because thread functions don't allow any datatype as argument or return type. Therefore they are passed as void then typecasted later in the function.
|
||||
##### Return type: void*
|
||||
|
||||
#### void* <a id="func-read-data-from-thread>read_data_from_thread</a>(void* read_args);
|
||||
##### Info:
|
||||
Reads data from`--gui_mode_reports` redirected from `stderr` to a file. Reads the subtitles extracted in realtime and updates the variables for the same, updates the state of progress bar. Also, lanches [read_activity_data](#func-read-activity-data) in a new thread.
|
||||
##### Parameters:
|
||||
* *read_args - Pointer to void, because thread functions don't allow any datatype as argument or return type. Therefore they are passed as void then typecasted later in the function.
|
||||
##### Return type: void*
|
||||
|
||||
#### void* <a id="func-extract-thread">extract_thread</a>(void* extract_args);
|
||||
##### Info:
|
||||
Passes command with all options from GUI to CLI CCExtractor.
|
||||
##### Parameters:
|
||||
* *extract_args - Pointer to void, because thread functions don't allow any datatype as argument or return type. Therefore they are passed as void then typecasted later in the function.
|
||||
##### Return type: void*
|
||||
|
||||
#### void* <a id="func-feed-files-for-extraction">feed_files_for_extraction</a>(void* file_args);
|
||||
##### Info:
|
||||
Feeds file by file to a new thread and waits until its extraction is done. This is done until all the files in extraction queue are extracted.
|
||||
##### Parameters:
|
||||
* *file_args - Pointer to void, because thread functions don't allow any datatype as argument or return type. Therefore they are passed as void then typecasted later in the function.
|
||||
##### Return type: void*
|
||||
|
||||
#### void <a id="func-setup-and-create-thread">setup_and_create_thread</a>(struct [main_tab](#struct-main-tab) *main_settings, struct [built_string](#struct-built-string) *command);
|
||||
##### Info:
|
||||
Initialises some values for the structure used in thread arguments and creates [feed_files_for_extraction](#feed-files-for-extraction).
|
||||
##### Parameters:
|
||||
* *main_settings - Pointer to `main_tab` struct.
|
||||
* *command - Pointer to `built_string` struct.
|
||||
##### Return type: void*
|
||||
|
||||
#### void* <a id="func-hind-hd-homerun-devices">find_hd_homerun_devices</a>(void *args);
|
||||
Finds devices connected to HD HomeRun Network.
|
||||
#### Parameters:
|
||||
* *args - Pointer to void, because thread functions don't allow any datatype as argument or return type. Therefore they are passed as void then typecasted later in the function.
|
||||
#### Return type: void*
|
||||
|
||||
#### void* <a id="func-setup-hd-homerun-device">setup_hd_homerun_device</a>(void *args);
|
||||
##### Info:
|
||||
Sets up various parameters required to extract subtitle from incoming stream from a HD HomeRun Device.
|
||||
##### Parameters:
|
||||
* *args - Pointer to void, because thread functions don't allow any datatype as argument or return type. Therefore they are passed as void then typecasted later in the function.
|
||||
##### Return type: void*
|
||||
|
||||
#### void [command_builder](#func-command-builder)(struct [built_string](#struct-built-string) *command, struct [main_tab](#struct-main-tab) *main_settings, struct [network_popup](#struct-network-popup) *network_settings, struct [input_tab](#struct-input-tab) *input, struct [advanced_input_tab](#struct-advanced-input-tab) *advanced_input, struct [output_tab](#struct-output-tab) *output, struct [decoders_tab](#struct-output-tab) *decoders, struct [credits_tab](#struct-output-tab) *credits, struct [debug_tab](#struct-debug-tab) *debug, struct [burned_subs_tab](#struct-debug-tab) *burned_subs);
|
||||
##### Info:
|
||||
Fetches the options from the whole GUI and adds the respective CLI commands to the `term_string` in `built_string` struct.
|
||||
##### Parameters:
|
||||
* *command - Pointer to `built_string` command.
|
||||
* *main_settings - Pointer to `main_tab` struct.
|
||||
* *network_settings - Pointer to `network_popup` struct.
|
||||
* *input - Pointer to `input_tab` struct.
|
||||
* *advance_input - Pointer to `advanced_input` struct.
|
||||
* *output - Pointer to `output_tab` struct.
|
||||
* *decoders - Pointer to `decoders_tab` struct.
|
||||
* *credits - Pointer to `credits_tab` struct.
|
||||
* *debug - Pointer to `debug_tab` struct.
|
||||
* *burned_subs - Pointer to `burned_subs_tab` struct.
|
||||
##### Return type: void
|
||||
|
||||
#### void <a id="func-die">die</a>(const char *fmt, ...);
|
||||
##### Info:
|
||||
Custom function to generate error if something in File Browser goes wrong.
|
||||
##### Parameters:
|
||||
* *fmt - Format of char string along with place holder for variables.
|
||||
* ... - Variables in order of their specified place holder.
|
||||
##### Return type: void
|
||||
|
||||
#### char* <a id="func-file-load">file_load</a>(const char* path, size_t* siz);
|
||||
##### Info:
|
||||
Custom function to load file and read data from loaded file.
|
||||
##### Parameters:
|
||||
* *path - Pointer to string literal (Path of the file).
|
||||
* *siz - Size of string literal provided (To allocate memory accordingly).
|
||||
##### Return type: void
|
||||
|
||||
#### char* <a id="func-str-duplicate">str_duplicate</a>(const char *src);
|
||||
##### Info:
|
||||
Dynamically copies specified string to memory.
|
||||
##### Parameters:
|
||||
* *src - The String to be copied.
|
||||
##### Return type: char*
|
||||
* Pointer to the string in the memory.
|
||||
|
||||
#### void <a id="func-dir-free-list">dir_free_list</a>(char **list, size_t size);
|
||||
##### Info:
|
||||
Frees the memory allocated to Files' and Directories' name and path.
|
||||
##### Parameters:
|
||||
* **char - Pointer to list (array of strings) to be freed
|
||||
##### Return type: void
|
||||
|
||||
#### char** <a id="func-dir-list">dir_list</a>(const char *dir, int return_subdirs, size_t *count);
|
||||
##### Info:
|
||||
Opens the selected directory and adds its path to list and returns the same list.
|
||||
#####Parameters:
|
||||
* *dir - Pointer to string (name of directory to be opened).
|
||||
* return_subdirs - `nk_true` if subdirectories are to be returned then.
|
||||
* *count - Number of directories in opened directories.
|
||||
#### Retrun type: char**
|
||||
* Pointer to List (Array of strings, name of directories and files) is returned.
|
||||
|
||||
#### struct file_group <a id="func-file-group">FILE_GROUP</a>(enum file_groups group, const char *name, struct nk_image *icon);
|
||||
##### Info:
|
||||
Initialises variables for `file_group` struct.
|
||||
##### Parameters:
|
||||
* group - specifies to which group does the file belong to. Selected from `file_groups` enum, like `FILE_GROUP_MUSIC`.
|
||||
* *name - Pointer to a string literal (to set `name` member in `file_group`.
|
||||
* *icon - Pointer to `nk_image` struct (Holds attributes for loaded image file) to set to `icon`member of `file_group`.
|
||||
##### Returnt type: struct `file_group`
|
||||
* Returns a `file_group` instance with set variables.
|
||||
|
||||
#### struct file <a id="func-file-def">FILE_DEF</a>(enum file_types type, const char *suffix, enum file_groups group);
|
||||
##### Info:
|
||||
Initialises variables for `file` struct.
|
||||
##### Parameters:
|
||||
* type - specifies which type does the file belong to. Selected from `file_types` enum, like `FILE_TEXT`.
|
||||
* *suffix - Pointer to string( to set `suffix` member in `file`).
|
||||
* group - specifies to which group does the file belong to. Selected from `file_groups` enum, like `FILE_GROUP_MUSIC`.
|
||||
##### Return type: struct `file`
|
||||
* Returns a `file` instance with set variables.
|
||||
|
||||
#### struct nk_image* <a id="func-media-icon-for-file">media_icon_for_file</a>(struct media *media, const char *file);
|
||||
##### Info:
|
||||
Analyses the files and checks to which `file` or `file_group` they belong and assign appropriate icon to the file and returns the same.
|
||||
##### Parameters:
|
||||
* *media - pointer to `media` struct.
|
||||
* *file - pointer to string literal (name of file with extension)
|
||||
##### Return type: struct `nk_image`*
|
||||
* Returns appropriate `nk_image` corresponding to the file.
|
||||
|
||||
#### void <a id="func-media-init">media_init</a>(struct media *media);
|
||||
##### Info:
|
||||
Assigns icons to `file` and `file_group` members from.
|
||||
##### Parameters:
|
||||
* *media - pointer to `media` struct.
|
||||
#### Return type: void
|
||||
|
||||
#### void <a is="func-file-browser-reload-directory-content">file_browser_reload_directory_content</a>(struct file_browser *browser, const char *path);
|
||||
##### Info:
|
||||
Updates various variables related to Files/Directories path and names when screen of File Browser reloads. (Due to clicking on a directory or any other button leading to different directory).
|
||||
##### Parameters:
|
||||
* *browser - Pointer to `file_browser` struct.
|
||||
* *path - Path of the new directory whose contents are to be reloaded and showed on file browser.
|
||||
##### Return type: void
|
||||
|
||||
#### void <a id="func-get-drives">get_drives</a>(struct file_browser *browser);
|
||||
##### Info:
|
||||
NOTE: Windows Specific Function.
|
||||
Detects the number of drives and their respective Drive Letters to show the same in File Browser.
|
||||
#####Parameters:
|
||||
* *browser - pointer to `file_browser` struct.
|
||||
##### Return type: void
|
||||
|
||||
#### void <a id="func-file-browser-init">file_browser_init</a>(struct file_browser *browser, struct media *media);
|
||||
##### Info:
|
||||
Initialised various variables/attributes required whenever the File Browser is run.
|
||||
##### Parameters:
|
||||
* *browser - Pointer to `file_browser` struct.
|
||||
* *media - pointer to `media` struct.
|
||||
##### Return type: void
|
||||
|
||||
#### void <a id="func-file-browser-free">file_browser_free</a>(struct file_browser *browser);
|
||||
##### Info:
|
||||
Frees the memory allocated to various variables in [file_browser_init](#func-file-browser-init).
|
||||
##### Parameters:
|
||||
* *browser - pointer to `file_browser` struct.
|
||||
##### Return type: void
|
||||
|
||||
#### int <a id="func-file-browser-run">file_browser_run</a>(struct file_browser *browser, struct [nk_context](#nk-context) *ctx, struct [main_tab](#struct-main-tab) *main_settings, struct [output_tab](#struct-output-tab) *output, struct [debug_tab](#struct-debug-tab) *debug, struct [hd_homerun_tab](#struct-hd-homerun-tab) *hd_homerun);
|
||||
##### Info:
|
||||
Provides runtime of File Browser on GUI.
|
||||
##### Parameters:
|
||||
* *browser - pointer to `file_browser` struct.
|
||||
* *ctx - pointer to `nk_context` struct.
|
||||
* *main_settings - pointer to `main_tab` struct.
|
||||
* *output - poiter to `output_tab` struct.
|
||||
* *debug - pointer to `debug_tab` struct.
|
||||
* *hd_homerun - pointer to `hd_homerun_tab` struct.
|
||||
##### Return type: int
|
||||
* Returns `1` if any File name/path is copied to current variable.
|
||||
* Returns `0` otherwise.
|
||||
|
||||
#### void <a -d="func-draw-network-popup">draw_network_popup</a>(struct [nk_context](#nk-context) *ctx, int *show_preferences_network, struct [network_popup](#struct-network-popup) *network_settings);
|
||||
##### Info:
|
||||
Draws popup with Network Settings on GUI.
|
||||
##### Parameters:
|
||||
* *ctx - pointer to `nk_context` struct.
|
||||
* *show_preferences_network - pointer to variable status if which triggers the popup.
|
||||
* *network_settings - pointer to `network_popup` struct.
|
||||
##### Return type: void
|
||||
|
||||
#### void <a id="func-draw-getting-started-popup">draw_getting_started_popup</a>(struct [nk_context](#nk-context) *ctx, int *show_getting_started);
|
||||
##### Info:
|
||||
Draws popup on screen which shows Getting Started Info.
|
||||
##### Parameters:
|
||||
* *ctx - pointer to `nk_context` struct.
|
||||
* *show_getting_started - pointer to variable status if which triggers the popup.
|
||||
##### Return type: void
|
||||
|
||||
#### void <a id="func-draw-about-ccx-popup">draw_about_ccx_popup</a>(struct [nk_context](#nk-context) *ctx, int *show_about_ccx, struct nk_user_font *droid_big, struct nk_user_font *droid_head);
|
||||
##### Info:
|
||||
Draws popup on screen containing information about CCExtractor.
|
||||
##### Parameters:
|
||||
* *ctx - pointer to `nk_context` struct.
|
||||
* *show_about_ccx - pointer to variable status if which triggers the popup.
|
||||
* *droid_big - pointer to `nk_user_font` struct.
|
||||
* *droid_head - pointer to `nk_user_font` struct.
|
||||
##### Return type: void
|
||||
|
||||
#### void <a id="func-draw-progress-details-popup">draw_progress_details_popup</a>(struct [nk_context](#nk-context) *ctx, int *show_progress_details, struct [main_tab](#struct-main-tab) *main_settings);
|
||||
##### Info:
|
||||
Draws popup on screen which shows progress details.
|
||||
##### Parameters:
|
||||
* *ctx - pointer to `nk_context` struct.
|
||||
* *show_pogress_details - pointer to variable status if which triggers the popup.
|
||||
* *main_settings - pointer to `main_tab` struct.
|
||||
##### Return type: void
|
||||
#### void <a id="func-draw-color-popup">draw_color_popup</a>(struct [nk_context](#nk-context) *ctx, struct [output_tab](#struct-output-tab) *output);
|
||||
##### Info:
|
||||
Draws popup on screen which shows color-picker.
|
||||
##### Parameters:
|
||||
* *ctx - pointer to `nk_context` struct.
|
||||
* *output - pointer to `output_tab` struct.
|
||||
##### Return type: void
|
||||
|
||||
#### void <a id="func-draw-thread-popup">draw_thread_popup</a>(struct [nk_context](#nk-context) *ctx, int *show_thread_popup);
|
||||
##### Info:
|
||||
This popup is shown if anyhow the GUI is unable to read file.
|
||||
##### Parameters:
|
||||
* *ctx - pointer to `nk_context` struct.
|
||||
* *show_thread_popup - pointer to variable status if which triggers the popup.
|
||||
##### Return type: void
|
||||
|
||||
#### void <a id="func-setup-network-settings">setup_network_settings</a>(struct [network_popup](#struct-network-popup) *network_settings);
|
||||
##### Info:
|
||||
Sets up defaults for Network Settings.
|
||||
##### Parameters:
|
||||
* *network_settings - pointer to `network_popup` struct.
|
||||
##### Return type: void
|
||||
|
||||
#### int <a id="func-preview">preview</a>(struct [nk_context](#nk-context) *ctx, int x, int y, int width, int height, struct [main_tab](#struct-main-tab) *main_settings);
|
||||
##### Info:
|
||||
Draws `Preview` Nuklear window and shows preview strings (lines of subtitles extracted in realtime).
|
||||
##### Parameters:
|
||||
* *ctx - pointer to `nk_context` struct.
|
||||
* x - X co-ordinate from where to draw window.
|
||||
* y - Y co-ordinate from where to draw window.
|
||||
* width - width of window.
|
||||
* height - height of window.
|
||||
* *main_settings - pointer to `main_tab ` struct.
|
||||
##### Return type:
|
||||
* Returns non-zero value if window is not closed.
|
||||
* Returns zero if window is closed.
|
||||
|
||||
#### void <a id="func-load-data">load_data</a>(FILE *file, struct [main_tab](#struct-main-tab) *main_settings, struct [input_tab](#struct-input-tab) *input, struct [advanced_input_tab](#struct-advanced-input-tab) *advanced_input, struct [output_tab](#struct-output-tab) *output, struct [decoders_tab](#struct-decoders-tab) *decoders, struct [credits_tab](#struct-credits-tab) *credits, struct [debug_tab](#struct-debug-tab) *debug, struct [hd_homerun_tab](#struct-hd-homerun-tab) *hd_homerun, struct [burned_subs_tab](#struct-burned-subs-tab) *burned_subs);
|
||||
##### Info:
|
||||
Loads values of all the variables stored in a file at last exit of GUI.
|
||||
##### Parameters:
|
||||
* *file - pointer to `FILE`.
|
||||
* *main_settings - pointer to `main_tab` struct.
|
||||
* *intput - pointer to `input_tab` struct.
|
||||
* *advanced_input - pointer to `advanced_input_tab` struct.
|
||||
* *output - pointer to `output_tab` struct.
|
||||
* *decoders - pointer to `decoders_tab` struct.
|
||||
* *credits - poitner to `credits_tab` struct.
|
||||
* *debug - pointer to `debug_tab` struct.
|
||||
* *hd_homerun - pointer to `hd_homerun_tab` struct.
|
||||
* *burned_subs - pointer to `burned_subs_tab` struct.
|
||||
##### Return type: void
|
||||
|
||||
#### void <a id="func-save-data">save_data</a>(FILE *file, struct [main_tab](#struct-main-tab) *main_settings, struct [input_tab](#struct-input-tab) *input, struct [advanced_input_tab](#struct-advanced-input-tab) *advanced_input, struct [output_tab](#struct-output-tab) *output, struct [decoders_tab](#struct-decoders-tab) *decoders, struct [credits_tab](#struct-credits-tab) *credits, struct [debug_tab](#struct-debug-tab) *debug, struct [hd_homerun_tab](#struct-hd-homerun-tab) *hd_homerun, struct [burned_subs_tab](#struct-burned-subs-tab) *burned_subs);
|
||||
##### info:
|
||||
Saves values of all the variables as a "Current State" in a file on exit.
|
||||
##### Parameters:
|
||||
* *file - pointer to `FILE`.
|
||||
* *main_settings - pointer to `main_tab` struct.
|
||||
* *intput - pointer to `input_tab` struct.
|
||||
* *advanced_input - pointer to `advanced_input_tab` struct.
|
||||
* *output - pointer to `output_tab` struct.
|
||||
* *decoders - pointer to `decoders_tab` struct.
|
||||
* *credits - poitner to `credits_tab` struct.
|
||||
* *debug - pointer to `debug_tab` struct.
|
||||
* *hd_homerun - pointer to `hd_homerun_tab` struct.
|
||||
* *burned_subs - pointer to `burned_subs_tab` struct.
|
||||
##### Return type: void
|
||||
|
||||
#### void <a id="func-write-credits">write_credits</a>(FILE *file, struct [credits_tab](#struct-credits-tab) *credits);
|
||||
##### Info:
|
||||
Writes Credits to files after some operations, since extra`\n` character gives problems while reading file.
|
||||
##### Parameters:
|
||||
* *file - pointer to `FILE`.
|
||||
* *credits - pointer to `credits_tab` struct.
|
||||
##### Return type: void
|
||||
|
||||
#### void <a id="func-read-credits">read_credits</a>(FILE* file, struct [credits_tab](#struct-credits-tab) *credits);
|
||||
##### Info:
|
||||
Reads credits from file in a specific format (as written by [write_credits](#func-write-credits)) from file.
|
||||
##### Parameters:
|
||||
* *file - pointer to `FILE`.
|
||||
* *credits - pointer to `credits_tab` struct.
|
||||
##### Return type: void
|
||||
|
||||
#### int <a id="func-terminal">terminal</a>(struct [nk_context](#nk-context) *ctx, int x, int y, int width, int height, char *command);
|
||||
##### Info:
|
||||
Writes the command string (that would be passed to CLI CCExtractor) in "Terminal" Nuklear Window.
|
||||
##### Parameters:
|
||||
* *ctx - pointer to `nk_context` struct.
|
||||
* x - X co-ordinate from where to draw the window.
|
||||
* y - Y co-ordinate from where to draw the window.
|
||||
* width - Width of the window.
|
||||
* height - height of the window.
|
||||
* *command - String to write on window (the command to be passed).
|
||||
##### Return type: int
|
||||
* Returns non-zero value if window is not closed.
|
||||
* Returns zero if window is closed.
|
||||
|
||||
|
||||
### About CCExtractor specific Structures/Variables
|
||||
#### <a id="struct-main-tab">main_tab</a>
|
||||
##### Info:
|
||||
Contains all the variables for `Main` tab.
|
||||
##### Variables worth noting:
|
||||
* `int is_file_browser_active`
|
||||
* `nk_true` if File Browser is triggered by any event.
|
||||
* `nk_false` otherwise.
|
||||
* `int scaleWindowForFileBrowser`
|
||||
* Sets to `nk_true` if `is_file_browser_active` is `nk_true` to scale the `glfwWindow` to required size to accommodate File Browser.
|
||||
* Sets to `nk_false` otherwise.
|
||||
|
||||
#### <a id="struct-input-tab">input_tab</a>
|
||||
##### Info:
|
||||
Contains all variables to hold data of options selected/changed and view dynamically generated data to GUI in `Input` tab.
|
||||
|
||||
#### <a id="struct-advanced-input">advanced_input_tab</a>
|
||||
Info:
|
||||
Contains all variables to hold data of options selected/changed and view dynamically generated data to GUI in `Advanced Input` tab.
|
||||
|
||||
#### <a id="struct-output-tab">output_tab</a>
|
||||
#####Info:
|
||||
Contains all variables to hold data of options selected/changed and view dynamically generated data to GUI in `Advanced Input` tab.
|
||||
|
||||
#### <a id="struct-decoders-tab">decoders_tab</a>
|
||||
##### Info:
|
||||
Contains all variables to hold data of options selected/changed and view dynamically generated data to GUI in `Decoders` tab.
|
||||
|
||||
#### <a id="struct-credits-tab">credits_tab</a>
|
||||
##### Info:
|
||||
Contains all variables to hold data of options selected/changed and view dynamically generated data to GUI in `Credits` tab.
|
||||
|
||||
#### <a id="struct-debug-tab">debug_tab</a>
|
||||
##### Info:
|
||||
Contains all variables to hold data of options selected/changed and view dynamically generated data to GUI in `Debug` tab.
|
||||
|
||||
#### <a id="struct-hd-homerun-tab">hd_homerun_tab</a>
|
||||
##### Info:
|
||||
Contains all variables to hold data of options selected/changed and view dynamically generated data to GUI in `HDHomeRun` tab.
|
||||
|
||||
#### <a id="struct-burned-subs-tab">burned_subs</a>
|
||||
##### Info:
|
||||
Contains all variables to hold data of options selected/changed and view dynamically generated data to GUI in `HDHomeRun` tab.
|
||||
|
||||
#### <a id="struct-network-popup">networ_popup</a>
|
||||
##### Info:
|
||||
Contains all the variables to store all the Network related options or showing them in GUI dynamically.
|
||||
|
||||
### About Nuklear Specific functions
|
||||
#### int <a id="nk-begin">nk_begin</a>(struct nk_context*, const char *title, struct nk_rect bounds, nk_flags flags);
|
||||
##### Info:
|
||||
Draws a basic(and blank) window(Nuklear Window inside main GLFW window) to hold other Nuklear widgets.
|
||||
##### Parameters:
|
||||
* nk_context* - Pointer to `nk_context` structure.
|
||||
* *title - Title for the so drawn Nuklear Window.
|
||||
* bounds - instance of `nk_rect` structure to hold co-ordinates, width and height of the Nuklear Window.
|
||||
* flags - Which flags to pass( from those contained in `enum flags`) to change behaviour of the Nuklear Window.
|
||||
##### Return Type: int
|
||||
* Returns true if window creation is successful.
|
||||
* Returns false if window creation fails.
|
||||
|
||||
#### void <a id="nk-end">nk_end</a>(struct nk_context *ctx)
|
||||
##### Info:
|
||||
Marks the end of the Nuklear Window.
|
||||
##### Parameter:
|
||||
* *ctx - Pointer to `nk_context` structure.
|
||||
##### Return type: void
|
||||
|
||||
#### void <a id="nk-layout-row-dynamic">nk_layout_row_dynamic</a>(struct nk_context*, float height, int cols);
|
||||
##### Info:
|
||||
Used to define a dynamic row layout(to hold widgets), dynamic in the sense that the width is dynamically allocated to widgets.
|
||||
##### Parameters:
|
||||
* *nk_context - Pointer to `nk_context` structure.
|
||||
* height - height to set for widgets of that row.
|
||||
* cols - Columns to set for layout (generally the number of widgets to place).
|
||||
##### Return Type: void
|
||||
|
||||
#### void <a id="nk-label-wrap">nk_label_wrap</a>(struct nk_context*, const char*);
|
||||
##### Info:
|
||||
Writes a label ( A plain String) and wraps it to the next line if the border of Nuklear Window, Group or Popup is reached.
|
||||
*Note*: If the text wraps to next line, height for a new line must be considered while defining a layout, else the wrapped text won't be visible (but it will be there).
|
||||
##### Parameters:
|
||||
* nk_context* - Pointer to `nk_context` structure.
|
||||
* char* - Pointer to string literal (to view).
|
||||
|
||||
#### int <a id="nk-window-is-closed">nk_window_is_closed</a>(struct nk_context *ctx, const char *name);
|
||||
##### Info:
|
||||
Checks if the active Nuklear Window is closed (by any trigger).
|
||||
##### Parameters:
|
||||
* *ctx - Pointer to `nk_context` structure.
|
||||
* *name - Pointer to String literal(Name of window to check).
|
||||
##### Return type: int
|
||||
* Returns true if window is closed (by any trigger).
|
||||
* Returns false of window is not closed.
|
||||
|
||||
#### void <a id="nk-menubar-begin">nk_menubar_begin</a>(struct nk_context *ctx);
|
||||
##### Info:
|
||||
Marks the end of Menu Bar definition(Menubar code).
|
||||
##### Parameters:
|
||||
* *ctx - Pointer to `nk_context` structure.
|
||||
##### Return type: void
|
||||
|
||||
#### void <a id="nk-layout-row-begin">nk_layout_row_begin</a>(struct nk_context *ctx, enum nk_layout_format fmt, float row_height, int cols);
|
||||
##### Info:
|
||||
Marks the beginning of custom layout. Which means, marking that layout has begun, now the widgets will be pushed row by row as per requirement using [nk_layout_row_push](#nk-layout-row-push).
|
||||
##### Parameters:
|
||||
* *ctx - Pointer to `nk_context` structure.
|
||||
* fmt - Layout format from provided formats (`enum nk_layout_format`), example - `NK_STATIC`, `NK_DYNAMIC`.
|
||||
* row_height - height of row pushed.
|
||||
* cols - Number of columns pushed in row.
|
||||
##### Return type: void
|
||||
|
||||
#### void <a id="nk-layout-row-push">nk_layout_row_push</a>(struct nk_context*, float value);
|
||||
##### Info:
|
||||
Pushes a row to hold widgets after defining the beginning of custom layout by [nk_layout_row_begin](#nk-layout-row-begin).
|
||||
##### Parameters:
|
||||
* nk_context* - Pointer to `nk_context` structure.
|
||||
* value - ratio or width of the widget to be pushed next.
|
||||
##### Return Type: void
|
||||
|
||||
#### int <a id="nk-menu-begin-label">nk_menu_begin_label</a>(struct nk_context *ctx, const char *text, nk_flags align, struct [nk_vec2](#nk-vec2) size);
|
||||
##### Info:
|
||||
The label of the Menu Item to be pushed, for example - "Preferences" is marked by this function.
|
||||
##### Parameters:
|
||||
* *ctx - pointer to `nk_context` structure.
|
||||
* *text - pointer to string literal (Title of the Menu, example - "Settings").
|
||||
* align - alignment enumeration in `nk_flags`, example `NK_TEXT_LEFT`.
|
||||
* size - Size of label (as `nk_vec2` struct)
|
||||
##### Return type: int
|
||||
* Returns true if label creation successful.
|
||||
* Returns false if label creation fails.
|
||||
|
||||
#### void <a id="nk-menubar-end">nk_menubar_end</a>(struct nk_context*);
|
||||
##### Info:
|
||||
Marks the end of the MenuBar definition.
|
||||
##### Parameters:
|
||||
* nk_context* - Pointer to `nk_context` structure.
|
||||
##### Return type: void
|
||||
|
||||
#### void <a id="nk-layout-space-begin">nk_layout_space_begin</a>(struct nk_context *ctx, enum nk_layout_format fmt, float height, int widget_count);
|
||||
##### Info:
|
||||
Marks the beginning of an empty space (Custom space for proper placement of widgets).
|
||||
##### Parameters:
|
||||
* *ctx - pointer to `nk_context` structure.
|
||||
* fmt - Layout format as in `enu nk_layout_format`, example - `NK_STATIC`, `NK_DYNAMIC`.
|
||||
* height = height of space to be added.
|
||||
* widget_count - Number of spaces to add.
|
||||
##### Return type: void
|
||||
|
||||
#### void <a id="nk-layout-space-end">nk_layout_space_end</a>(struct nk_context *ctx);
|
||||
##### Info:
|
||||
Marks the end of custom space (empty) definition.
|
||||
##### Parameters:
|
||||
* *ctx - pointer to `nk_context` structure.
|
||||
##### Return type: void
|
||||
|
||||
#### int <a id="nk-style-push-vec2">nk_style_push_vec2</a>(struct nk_context* struct nk_vec2*, struct nk_vec2);
|
||||
##### Info:
|
||||
Comes under `Style Stack`. Used to temporarily modify length, width, spacing related attributes of Styles of Nuklear Context.
|
||||
##### Parameters:
|
||||
* nk_context* - Pointer to `nk_context` structure.
|
||||
* nk_vec2* - Pointer to attribute to be modified.
|
||||
* nk_vec2* - New value in the form `nk_vec2(x, y)` as an instance of nk_vec2 structure.
|
||||
##### Return type: int
|
||||
* Returns true if successful.
|
||||
* Returns false if unsuccessful.
|
||||
|
||||
#### int <a id="nk-style-push-float">nk_style_push_float</a>(struct nk_context*, float*, float);
|
||||
##### Info:
|
||||
Comes under `Style Stack`. Used to temporarily modify attributes requiring precision with floating point such as rounding value for buttons.
|
||||
##### Parameters:
|
||||
* nk_context* - Pointer to `nk_context` structure.
|
||||
* float* - Pointer to variable whose value is to be changed.
|
||||
* float - new value to set.
|
||||
|
||||
#### int <a id="nk-button-label">nk_button_label</a>(struct nk_context*, const char *title);
|
||||
##### Info:
|
||||
Draws a Button with provided label.
|
||||
##### Parameters:
|
||||
* nk_context* - Pointer to `nk_context` struct.
|
||||
* *title - Pointer to string literal (Label to put on button).
|
||||
##### Return type: int
|
||||
* Returns true of Button is clicked.
|
||||
* Returns false of Button is in 'unclicked' state.
|
||||
|
||||
#### int <a id="nk-style-pop-float">nk_style_pop_float</a>(struct nk_context*);
|
||||
##### Info:
|
||||
Pops the float values modified off the `Style Stack`. Which means, returns them to original state as they were before being modified by [nk_style_push_float](#nk-style-push-float).
|
||||
##### Paramaters:
|
||||
* nk_context* - Pointer to `nk_context` struct.
|
||||
##### Return type: int
|
||||
* Returns true if successful.
|
||||
* Returns false if unsuccessful.
|
||||
|
||||
#### int <a id="nk-group-begin">nk_group_begin</a>(struct nk_context *ctx, const char *title, nk_flags flags);
|
||||
##### Info:
|
||||
Makes a group with given flags. Looks just like a window created by [nk_begin](#nk-begin) but can be created inside a window.
|
||||
##### Parameters:
|
||||
* *ctx - pointer to `nk_context` struct.
|
||||
* *title - string literal (Title of the group).
|
||||
* flags - All the required flags among available flags in `nk_flags`.
|
||||
##### Return Type: int
|
||||
* Returns false if creation unsuccessful.
|
||||
* Returns true if creation successful.
|
||||
|
||||
#### void <a id="nk-group-end">nk_group_end</a>(struct nk_context *ctx);
|
||||
##### Info:
|
||||
Marks the end of the group created by [nk_group_begin](#nk-group-begin).
|
||||
##### Parameters:
|
||||
* *ctx - pointer to `nk_context` struct.
|
||||
##### Return type: void
|
||||
|
||||
#### void <a id="nk-layout-row">nk_layout_row</a>(struct nk_context*, enum nk_layout_format, float height, int cols, const float *ratio);
|
||||
##### Info:
|
||||
Used to create custom row layout in which widget placement (including spacing) is done using ratios in floating point. Maximum ratio allowed is one. So, if there are two widgets (say buttons) need to placed in 50% available area each. Then `ratio` will be {0.5f, 0.5f}.
|
||||
##### Parameters:
|
||||
* nk_context* - pointer to `nk_context` struct.
|
||||
* nk_layout_format - format from available formats in `enum nk_layout_format` like `NK_STATIC` , `NK_DYNAMIC`.
|
||||
* height - height of the layout.
|
||||
* cols - Number of widgets(including spaces) to be used.
|
||||
* *ratio - Ratio for widget placement.
|
||||
##### Return type: void
|
||||
|
||||
#### void <a id="nk-spacing">nk_spacing</a>(struct nk_context*, int cols);
|
||||
##### Info:
|
||||
Used to create spacing (blank) of specified columns.
|
||||
##### Parameters:
|
||||
* nk_context* - pointer to `nk_context` struct.
|
||||
* cols - Number of columns for which spacing has to be true.
|
||||
##### Return type: void
|
||||
|
||||
#### int <a id="nk-checkbox-label">nk_checkbox_label</a>(struct nk_context *ctx, const char *label, int *active);
|
||||
##### Info:
|
||||
Creates a checkbox with specified label.
|
||||
##### Parameters:
|
||||
* *ctx - Pointer to `nk_context` struct.
|
||||
* * - Pointer to string literal(Label of checkbox).
|
||||
* * - Pointer to variable to store the active value. `nk_false` if unchecked, `nk_true` if checked.
|
||||
##### Return type: int
|
||||
* Returns false if unable to draw widget or old value of `*active` = new value of `*active`.
|
||||
* Returns true of old value of `*active` != new value of `*active`.
|
||||
|
||||
#### int <a id="nk-option-label">nk_option_label</a>(struct nk_context *ctx, const char *label, int active);
|
||||
##### Info:
|
||||
Draws radio button (among radio group) with specified label.
|
||||
##### Parameters:
|
||||
* *ctx - pointer to `nk_context` struct.
|
||||
* *label - Pointer to string literal (label of radio button).
|
||||
* active - Any check to specify if the radio button is active.
|
||||
##### Return type: int
|
||||
* Returns true if radio button is active.
|
||||
* Returns false if radio button is inactive.
|
||||
|
||||
#### int <a id="nk-selectable-label">nk_selectable_label</a>(struct nk_context*, const char*, nk_flags align, int *value);
|
||||
##### Info:
|
||||
Draws a selectable label. (Just like a regular [nk_label](#nk-label) but with a difference that it can be selected)
|
||||
##### Parameters:
|
||||
* nk_context* - pointer to `nk_context` struct.
|
||||
* char* - Pointer to string literal (Label to display on GUI).
|
||||
* align - required alignment flags from `nk_flags` like `NK_TEXT_LEFT`.
|
||||
* *value - Pointer to integer variable to store the value if the label is triggered or not.
|
||||
* Sets to `nk_true` if label selected.
|
||||
* Sets to `nk_false` if label is in unselected state.
|
||||
##### Return type: int
|
||||
* Returns false if unable to draw widget or old value of `*value` = new value of `*value`.
|
||||
* Returns true of old value of `*value` != new value of `*value`.
|
||||
|
||||
#### int <a id="nk-combo">nk_combo</a>(struct nk_context*, const char **items, int count, int selected, int item_height, struct nk_vec2 size);
|
||||
##### Info:
|
||||
Draws combobox with given items as array of strings.
|
||||
##### Parameters:
|
||||
* nk_context* - Pointer to `nk_context` structure.
|
||||
* **items - Array of strings of items to populate the list of combobox.
|
||||
* count - Number of items in the combobox.
|
||||
* selected - variable to store the index of selected item.
|
||||
* item_height - Height to allocate to each item in combobox.
|
||||
* size - size of combobox after expansion(when dropdown arrow is clicked). Given as [nk_vec2](#nk-vec2)(x, y).
|
||||
##### Return type: int
|
||||
* Returns the index of selected item.
|
||||
|
||||
#### void <a id="nk-label">nk_label</a>(struct nk_context *ctx, const char *str, nk_flags alignment);
|
||||
##### Info:
|
||||
Draws a plain text on Nuklear Window, Popup or group.
|
||||
##### Parameters:
|
||||
* *ctx - pointer to `nk_context` structure.
|
||||
* *str - Pointer to string literal (Text to draw).
|
||||
* alignment - required flags for text alignment from `nk_flags`, like `NK_TEXT_LEFT`.
|
||||
##### Return type: void
|
||||
|
||||
#### int <a id="nk-progress">nk_progress</a>(struct nk_context *ctx, nk_size *cur, nk_size max, int is_modifyable);
|
||||
##### Info:
|
||||
Draws a progress bar.
|
||||
##### Parameters:
|
||||
* *ctx - Poitner to `nk_context` struct.
|
||||
* *cur - Realtime value to update in progress bar.
|
||||
* max - Maximum value `*cur` can achieve (usually 100, for 100% progress).
|
||||
* is_modifyable -
|
||||
* `nk_true` if progress bar can be modified with other events like mouse click and drag.
|
||||
* `nk_false` if progress bar needs to be modified only by value of `*cur`
|
||||
##### Return type: int
|
||||
* Returns false if unable to draw widget or old value of `*cur` = new value of `*cur`.
|
||||
* Returns true of old value of `*cur` != new value of `*cur`.
|
||||
|
||||
|
||||
|
||||
|
||||
### About Nuklear Specific Structures/Variables
|
||||
#### <a id="nk-context">nk_context</a>
|
||||
##### Info:
|
||||
Contains various Variables/attributes related to current Window.
|
||||
|
||||
#### <a id="nk-vec2">nk_vec2</a>
|
||||
##### Info:
|
||||
A simple structure containing 2 variables `x` and `y`. Used for various purposes where 2 variables are required for example.. using offset for position or size of any widget/window.
|
||||
|
||||
|
||||
BIN
docs/img/Binaries.png
Normal file
|
After Width: | Height: | Size: 129 KiB |
BIN
docs/img/Building.png
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
docs/img/ProjectSection.png
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
docs/img/Properties.png
Normal file
|
After Width: | Height: | Size: 99 KiB |
BIN
docs/img/Warning.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
docs/img/projectFiles.png
Normal file
|
After Width: | Height: | Size: 106 KiB |
12
docs/raspberrypi.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# Installing on a Raspberry Pi
|
||||
|
||||
dependencies for ocr mode:
|
||||
|
||||
* libleptonica-dev
|
||||
* libtesseract-dev
|
||||
|
||||
```bash
|
||||
sudo apt-get install libleptonica-dev libtesseract-dev
|
||||
```
|
||||
|
||||
Other than this you just need to cd into the linux directory and run `make` or `make ENABLE_OCR=yes` if you want ocr enabled.
|
||||
@@ -1,4 +1,4 @@
|
||||
For building ccextractor using cmake folllow below steps..
|
||||
For building CCExtractor using cmake follow steps below..
|
||||
|
||||
Step 1) Check you have right version of cmake installed. ( version >= 3.0.2 )
|
||||
We are using CMP0037 policy of cmake which was introduced in 3.0.0
|
||||
@@ -6,13 +6,15 @@ Step 1) Check you have right version of cmake installed. ( version >= 3.0.2 )
|
||||
suggest to use 3.0.2 or higher version.
|
||||
|
||||
|
||||
Step 2) create a seprate directory where you want to build the target.
|
||||
In Unix you can do it using follwing commands.
|
||||
Step 2) create a separate directory where you want to build the target.
|
||||
In Unix you can do it using following commands.
|
||||
~> cd ccextractor
|
||||
~> mkdir build
|
||||
|
||||
Step 3) make the build sytem using cmake
|
||||
~> cmake ../src/
|
||||
Step 3) make the build system using cmake. Params in [] are optional and have
|
||||
been explained later in the document.
|
||||
~> cmake [-DWITH_FFMPEG=ON] [-DWITH_OCR=ON] [-DWITH_SHARING=ON]
|
||||
[-DWITH_HARDSUBX=ON] ../src/
|
||||
|
||||
Step 4) Compile the code.
|
||||
~> make
|
||||
@@ -27,5 +29,14 @@ cmake -DWITH_FFMPEG=ON ../src/
|
||||
If you want to build CCExtractor with OCR you need to pass
|
||||
cmake -DWITH_OCR=ON ../src/
|
||||
|
||||
If you want to build CCExtractor with Sharing and Translating service:
|
||||
cmake -DWITH_SHARING=ON ../src/
|
||||
|
||||
If you want to build CCExtractor with HARDSUBX support
|
||||
cmake -DWITH_HARDSUBX=ON ../src/
|
||||
|
||||
If you want to build CCExtractor with rust disabled you need to pass
|
||||
cmake -DWITHOUT_RUST=ON ../src/
|
||||
|
||||
Hint for looking all the things you want to set from outside
|
||||
cmake -LAH ../src/
|
||||
|
||||
BIN
fonts/Cousine-Regular.ttf
Normal file
BIN
fonts/DroidSans.ttf
Normal file
BIN
fonts/Karla-Regular.ttf
Normal file
BIN
fonts/ProggyClean.ttf
Normal file
BIN
fonts/ProggyTiny.ttf
Normal file
BIN
fonts/Raleway-Bold.ttf
Normal file
BIN
fonts/Roboto-Bold.ttf
Normal file
BIN
fonts/Roboto-Light.ttf
Normal file
BIN
fonts/Roboto-Regular.ttf
Normal file
BIN
fonts/kenvector_future.ttf
Normal file
BIN
fonts/kenvector_future_thin.ttf
Normal file
BIN
icon/computer.png
Normal file
|
After Width: | Height: | Size: 620 B |
BIN
icon/default.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
icon/desktop.png
Normal file
|
After Width: | Height: | Size: 583 B |
BIN
icon/directory.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
icon/drive.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
icon/font.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
icon/home.png
Normal file
|
After Width: | Height: | Size: 819 B |
BIN
icon/img.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
icon/movie.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
icon/music.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
icon/text.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
2
linux/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
libccx_rust.a
|
||||
rust
|
||||
152
linux/Makefile
@@ -1,152 +0,0 @@
|
||||
SHELL = /bin/sh
|
||||
|
||||
CC = gcc
|
||||
SYS := $(shell gcc -dumpmachine)
|
||||
CFLAGS = -O3 -std=gnu99 -s
|
||||
INCLUDE = -I../src/gpacmp4/ -I../src/libpng -I../src/lib_hash -I../src/zlib -I../src/lib_ccx -I../src/.
|
||||
INCLUDE += -I../src/zvbi
|
||||
ALL_FLAGS = -Wno-write-strings -D_FILE_OFFSET_BITS=64 -DVERSION_FILE_PRESENT
|
||||
LDFLAGS = -lm
|
||||
|
||||
ifneq (, $(findstring linux, $(SYS)))
|
||||
CFLAGS +=-DGPAC_CONFIG_LINUX
|
||||
endif
|
||||
TARGET = ccextractor
|
||||
|
||||
OBJS_DIR = objs
|
||||
VPATH = ../src:../src/gpacmp4:../src/libpng:../src/zlib:../src/lib_ccx:../src/zvbi:../src/lib_hash
|
||||
|
||||
SRCS_DIR = ../src
|
||||
SRCS_C = $(wildcard $(SRCS_DIR)/*.c)
|
||||
OBJS = $(SRCS_C:$(SRCS_DIR)/%.c=$(OBJS_DIR)/%.o)
|
||||
|
||||
SRCS_CCX_DIR = $(SRCS_DIR)/lib_ccx
|
||||
SRCS_CCX = $(wildcard $(SRCS_CCX_DIR)/*.c)
|
||||
OBJS_CCX = $(SRCS_CCX:$(SRCS_CCX_DIR)/%.c=$(OBJS_DIR)/%.o)
|
||||
|
||||
SRCS_PNG_DIR = $(SRCS_DIR)/libpng
|
||||
SRCS_PNG = $(wildcard $(SRCS_PNG_DIR)/*.c)
|
||||
OBJS_PNG = $(SRCS_PNG:$(SRCS_PNG_DIR)/%.c=$(OBJS_DIR)/%.o)
|
||||
|
||||
SRCS_ZVBI_DIR = $(SRCS_DIR)/zvbi
|
||||
SRCS_ZVBI = $(wildcard $(SRCS_ZVBI_DIR)/*.c)
|
||||
OBJS_ZVBI = $(SRCS_ZVBI:$(SRCS_ZVBI_DIR)/%.c=$(OBJS_DIR)/%.o)
|
||||
|
||||
SRCS_GPACMP4_DIR = $(SRCS_DIR)/gpacmp4
|
||||
SRCS_GPACMP4_C = $(wildcard $(SRCS_GPACMP4_DIR)/*.c)
|
||||
SRCS_GPACMP4_CPP = $(wildcard $(SRCS_GPACMP4_DIR)/*.cpp)
|
||||
OBJS_GPACMP4 = $(SRCS_GPACMP4_C:$(SRCS_GPACMP4_DIR)/%.c=$(OBJS_DIR)/%.o) \
|
||||
$(SRCS_GPACMP4_CPP:$(SRCS_GPACMP4_DIR)/%.cpp=$(OBJS_DIR)/%.o)
|
||||
|
||||
SRCS_ZLIB_DIR = $(SRCS_DIR)/zlib
|
||||
SRCS_ZLIB = $(wildcard $(SRCS_ZLIB_DIR)/*.c)
|
||||
OBJS_ZLIB = $(SRCS_ZLIB:$(SRCS_ZLIB_DIR)/%.c=$(OBJS_DIR)/%.o)
|
||||
|
||||
SRCS_HASH_DIR = $(SRCS_DIR)/lib_hash
|
||||
SRCS_HASH = $(wildcard $(SRCS_HASH_DIR)/*.c)
|
||||
OBJS_HASH = $(SRCS_HASH:$(SRCS_HASH_DIR)/%.c=$(OBJS_DIR)/%.o)
|
||||
|
||||
INSTLALL = cp -f -p
|
||||
INSTLALL_PROGRAM = $(INSTLALL)
|
||||
DESTDIR = /usr/bin
|
||||
|
||||
ifeq ($(ENABLE_HARDSUBX),yes)
|
||||
ENABLE_OCR=yes
|
||||
CFLAGS+=-DENABLE_HARDSUBX
|
||||
CFLAGS+= $(shell pkg-config --cflags libavcodec)
|
||||
CFLAGS+= $(shell pkg-config --cflags libavformat)
|
||||
CFLAGS+= $(shell pkg-config --cflags libavutil)
|
||||
CFLAGS+= $(shell pkg-config --cflags libswscale)
|
||||
AV_LDFLAGS+= $(shell pkg-config --libs libavcodec )
|
||||
AV_LDFLAGS+= $(shell pkg-config --libs libavformat )
|
||||
AV_LDFLAGS+= $(shell pkg-config --libs libavutil )
|
||||
AV_LDFLAGS+= $(shell pkg-config --libs libswscale )
|
||||
ifeq ($(AV_LDFLAGS),$(EMPTY))
|
||||
$(error **ERROR** "libav not found")
|
||||
else
|
||||
$(info "libav found")
|
||||
endif
|
||||
LDFLAGS+= $(AV_LDFLAGS)
|
||||
endif
|
||||
|
||||
ifeq ($(ENABLE_OCR),yes)
|
||||
CFLAGS+=-DENABLE_OCR -DPNG_NO_CONFIG_H
|
||||
TESS_LDFLAGS+= $(shell pkg-config --libs tesseract)
|
||||
LEPT_LDFLAGS+= $(shell pkg-config --libs lept)
|
||||
|
||||
#error checking of library are there or not
|
||||
ifeq ($(TESS_LDFLAGS),$(EMPTY))
|
||||
$(error **ERROR** "tesseract not found")
|
||||
else
|
||||
#TODO print the version of library found
|
||||
$(info "tesseract found")
|
||||
endif
|
||||
ifeq ($(LEPT_LDFLAGS),$(EMPTY))
|
||||
$(error **ERROR** "leptonica not found")
|
||||
else
|
||||
#TODO print the version of library found
|
||||
$(info "Leptonica found")
|
||||
endif
|
||||
|
||||
CFLAGS += $(shell pkg-config --cflags tesseract)
|
||||
CFLAGS += $(shell pkg-config --cflags lept)
|
||||
LDFLAGS += $(TESS_LDFLAGS)
|
||||
LDFLAGS += $(LEPT_LDFLAGS)
|
||||
endif
|
||||
|
||||
|
||||
ifeq ($(ENABLE_FFMPEG),yes)
|
||||
CFLAGS+=-DENABLE_FFMPEG
|
||||
CFLAGS+= $(shell pkg-config --cflags libavcodec)
|
||||
CFLAGS+= $(shell pkg-config --cflags libavformat)
|
||||
CFLAGS+= $(shell pkg-config --cflags libavutil)
|
||||
LDFLAGS+= $(shell pkg-config --libs libavcodec )
|
||||
LDFLAGS+= $(shell pkg-config --libs libavformat )
|
||||
LDFLAGS+= $(shell pkg-config --libs libavutil )
|
||||
endif
|
||||
|
||||
.PHONY: all
|
||||
all: pre-build objs_dir $(TARGET)
|
||||
|
||||
.PHONY: objs_dir
|
||||
objs_dir:
|
||||
mkdir -p $(OBJS_DIR)
|
||||
|
||||
$(TARGET): $(OBJS) $(OBJS_PNG) $(OBJS_GPACMP4) $(OBJS_ZVBI) $(OBJS_ZLIB) $(OBJS_HASH) $(OBJS_CCX)
|
||||
$(CC) $(ALL_FLAGS) $(CFLAGS) $(OBJS) $(OBJS_CCX) $(OBJS_PNG) $(OBJS_ZVBI) $(OBJS_GPACMP4) $(OBJS_ZLIB) $(OBJS_HASH) $(LDFLAGS) -o $@
|
||||
|
||||
$(OBJS_DIR)/%.o: %.c
|
||||
$(CC) -c $(ALL_FLAGS) $(INCLUDE) $(CFLAGS) $< -o $@
|
||||
|
||||
$(OBJS_DIR)/%.o: %.cpp
|
||||
$(CC) -c $(ALL_FLAGS) $(INCLUDE) $(CFLAGS) $< -o $@ -I../src/gpacmp4
|
||||
|
||||
$(OBJS_DIR)/ccextractor.o: ccextractor.c
|
||||
$(CC) -c $(ALL_FLAGS) $(INCLUDE) $(CFLAGS) -O0 $< -o $@
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf $(TARGET) 2>/dev/null || true
|
||||
rm -rf $(OBJS_CCX) $(OBJS_PNG) $(OBJS_ZLIB) $(OBJS_GPACMP4) $(OBJS_HASH) $(OBJS) 2>/dev/null || true
|
||||
rm -rdf $(OBJS_DIR) 2>/dev/null || true
|
||||
rm -rf .depend 2>/dev/null || true
|
||||
|
||||
.PHONY: install
|
||||
install: $(TARGET)
|
||||
$(INSTLALL_PROGRAM) $(TARGET) $(DESTDIR)
|
||||
|
||||
.PHONY: uninstall
|
||||
uninstall:
|
||||
rm -iv $(DESTDIR)/$(TARGET)
|
||||
|
||||
.PHONY: depend dep
|
||||
depend dep:
|
||||
$(CC) $(CFLAGS) $(INCLUDE) -E -MM $(SRCS_C) $(SRCS_PNG) $(SRCS_ZVBI) $(SRCS_ZLIB) $(SRCS_HASH) $(SRCS_CCX) \
|
||||
$(SRCS_GPACMP4_C) $(SRCS_GPACMP4_CPP) |\
|
||||
sed 's/^[a-zA-Z_0-9]*.o/$(OBJS_DIR)\/&/' > .depend
|
||||
|
||||
.PHONY: pre-build
|
||||
pre-build:
|
||||
./pre-build.sh
|
||||
|
||||
-include .depend
|
||||
461
linux/Makefile.am
Normal file
@@ -0,0 +1,461 @@
|
||||
AUTOMAKE_OPTIONS = foreign
|
||||
ACLOCAL_AMFLAGS = -I m4/
|
||||
|
||||
bin_PROGRAMS = ccextractor
|
||||
ccextractor_SOURCES = \
|
||||
../src/ccextractor.c \
|
||||
../src/ccextractor.h \
|
||||
../src/thirdparty/gpacmp4/avc_ext.c \
|
||||
../src/thirdparty/gpacmp4/avilib.c \
|
||||
../src/thirdparty/gpacmp4/av_parsers.c \
|
||||
../src/thirdparty/gpacmp4/base_encoding.c \
|
||||
../src/thirdparty/gpacmp4/bitstream.c \
|
||||
../src/thirdparty/gpacmp4/box_code_3gpp.c \
|
||||
../src/thirdparty/gpacmp4/box_code_adobe.c \
|
||||
../src/thirdparty/gpacmp4/box_code_apple.c \
|
||||
../src/thirdparty/gpacmp4/box_code_base.c \
|
||||
../src/thirdparty/gpacmp4/box_code_drm.c \
|
||||
../src/thirdparty/gpacmp4/box_dump.c \
|
||||
../src/thirdparty/gpacmp4/box_code_meta.c \
|
||||
../src/thirdparty/gpacmp4/box_funcs.c \
|
||||
../src/thirdparty/gpacmp4/color.c \
|
||||
../src/thirdparty/gpacmp4/configfile.c \
|
||||
../src/thirdparty/gpacmp4/data_map.c \
|
||||
../src/thirdparty/gpacmp4/desc_private.c \
|
||||
../src/thirdparty/gpacmp4/descriptors.c \
|
||||
../src/thirdparty/gpacmp4/drm_sample.c \
|
||||
../src/thirdparty/gpacmp4/error.c \
|
||||
../src/thirdparty/gpacmp4/gpac_ogg.c \
|
||||
../src/thirdparty/gpacmp4/hint_track.c \
|
||||
../src/thirdparty/gpacmp4/hinting.c \
|
||||
../src/thirdparty/gpacmp4/ipmpx_code.c \
|
||||
../src/thirdparty/gpacmp4/ipmpx_parse.c \
|
||||
../src/thirdparty/gpacmp4/isom_intern.c \
|
||||
../src/thirdparty/gpacmp4/isom_read.c \
|
||||
../src/thirdparty/gpacmp4/isom_store.c \
|
||||
../src/thirdparty/gpacmp4/isom_write.c \
|
||||
../src/thirdparty/gpacmp4/list.c \
|
||||
../src/thirdparty/gpacmp4/math.c \
|
||||
../src/thirdparty/gpacmp4/media.c \
|
||||
../src/thirdparty/gpacmp4/media_odf.c \
|
||||
../src/thirdparty/gpacmp4/meta.c \
|
||||
../src/thirdparty/gpacmp4/movie_fragments.c \
|
||||
../src/thirdparty/gpacmp4/odf_code.c \
|
||||
../src/thirdparty/gpacmp4/odf_codec.c \
|
||||
../src/thirdparty/gpacmp4/odf_command.c \
|
||||
../src/thirdparty/gpacmp4/os_config_init.c \
|
||||
../src/thirdparty/gpacmp4/os_divers.c \
|
||||
../src/thirdparty/gpacmp4/os_file.c \
|
||||
../src/thirdparty/gpacmp4/qos.c \
|
||||
../src/thirdparty/gpacmp4/sample_descs.c \
|
||||
../src/thirdparty/gpacmp4/slc.c \
|
||||
../src/thirdparty/gpacmp4/stbl_read.c \
|
||||
../src/thirdparty/gpacmp4/stbl_write.c \
|
||||
../src/thirdparty/gpacmp4/track.c \
|
||||
../src/thirdparty/gpacmp4/tx3g.c \
|
||||
../src/thirdparty/gpacmp4/url.c \
|
||||
../src/thirdparty/gpacmp4/utf.c \
|
||||
../src/thirdparty/gpacmp4/os_thread.c \
|
||||
../src/thirdparty/gpacmp4/module.c \
|
||||
../src/thirdparty/gpacmp4/os_module.c \
|
||||
../src/thirdparty/gpacmp4/xml_parser.c \
|
||||
../src/thirdparty/gpacmp4/constants.c \
|
||||
../src/thirdparty/gpacmp4/gpac/avparse.h \
|
||||
../src/thirdparty/gpacmp4/gpac/base_coding.h \
|
||||
../src/thirdparty/gpacmp4/gpac/bitstream.h \
|
||||
../src/thirdparty/gpacmp4/gpac/color.h \
|
||||
../src/thirdparty/gpacmp4/gpac/config_file.h \
|
||||
../src/thirdparty/gpacmp4/gpac/configuration.h \
|
||||
../src/thirdparty/gpacmp4/gpac/constants.h \
|
||||
../src/thirdparty/gpacmp4/gpac/events_constants.h \
|
||||
../src/thirdparty/gpacmp4/gpac/ietf.h \
|
||||
../src/thirdparty/gpacmp4/gpac/isomedia.h \
|
||||
../src/thirdparty/gpacmp4/gpac/list.h \
|
||||
../src/thirdparty/gpacmp4/gpac/maths.h \
|
||||
../src/thirdparty/gpacmp4/gpac/media_tools.h \
|
||||
../src/thirdparty/gpacmp4/gpac/mpeg4_odf.h \
|
||||
../src/thirdparty/gpacmp4/gpac/network.h \
|
||||
../src/thirdparty/gpacmp4/gpac/revision.h \
|
||||
../src/thirdparty/gpacmp4/gpac/setup.h \
|
||||
../src/thirdparty/gpacmp4/gpac/tools.h \
|
||||
../src/thirdparty/gpacmp4/gpac/utf.h \
|
||||
../src/thirdparty/gpacmp4/gpac/version.h \
|
||||
../src/thirdparty/gpacmp4/gpac/iso639.h \
|
||||
../src/thirdparty/gpacmp4/gpac/internal/avilib.h \
|
||||
../src/thirdparty/gpacmp4/gpac/internal/isomedia_dev.h \
|
||||
../src/thirdparty/gpacmp4/gpac/internal/media_dev.h \
|
||||
../src/thirdparty/gpacmp4/gpac/internal/odf_dev.h \
|
||||
../src/thirdparty/gpacmp4/gpac/internal/odf_parse_common.h \
|
||||
../src/thirdparty/gpacmp4/gpac/internal/ogg.h \
|
||||
../src/thirdparty/libpng/pngstruct.h \
|
||||
../src/thirdparty/libpng/pngpriv.h \
|
||||
../src/thirdparty/libpng/pnginfo.h \
|
||||
../src/thirdparty/libpng/pnglibconf.h \
|
||||
../src/thirdparty/libpng/pngconf.h \
|
||||
../src/thirdparty/libpng/pngdebug.h \
|
||||
../src/thirdparty/libpng/png.h \
|
||||
../src/thirdparty/libpng/png.c \
|
||||
../src/thirdparty/libpng/pngerror.c \
|
||||
../src/thirdparty/libpng/pngget.c \
|
||||
../src/thirdparty/libpng/pngmem.c \
|
||||
../src/thirdparty/libpng/pngpread.c \
|
||||
../src/thirdparty/libpng/pngread.c \
|
||||
../src/thirdparty/libpng/pngrio.c \
|
||||
../src/thirdparty/libpng/pngrtran.c \
|
||||
../src/thirdparty/libpng/pngrutil.c \
|
||||
../src/thirdparty/libpng/pngset.c \
|
||||
../src/thirdparty/libpng/pngtrans.c \
|
||||
../src/thirdparty/libpng/pngwio.c \
|
||||
../src/thirdparty/libpng/pngwrite.c \
|
||||
../src/thirdparty/libpng/pngwtran.c \
|
||||
../src/thirdparty/libpng/pngwutil.c \
|
||||
../src/lib_ccx/ccx_common_common.h \
|
||||
../src/lib_ccx/ccx_common_option.h \
|
||||
../src/lib_ccx/utility.h \
|
||||
../src/lib_ccx/activity.h \
|
||||
../src/lib_ccx/asf_constants.h \
|
||||
../src/lib_ccx/avc_functions.h \
|
||||
../src/lib_ccx/bitstream.h \
|
||||
../src/lib_ccx/ccx_common_option.c \
|
||||
../src/lib_ccx/ccx_common_common.c \
|
||||
../src/lib_ccx/utility.c \
|
||||
../src/lib_ccx/activity.c \
|
||||
../src/lib_ccx/asf_functions.c \
|
||||
../src/lib_ccx/avc_functions.c \
|
||||
../src/lib_ccx/cc_bitstream.c \
|
||||
../src/lib_ccx/ccx_common_char_encoding.c \
|
||||
../src/lib_ccx/ccx_common_char_encoding.h \
|
||||
../src/lib_ccx/ccx_common_constants.c \
|
||||
../src/lib_ccx/ccx_common_constants.h \
|
||||
../src/lib_ccx/ccx_common_platform.h \
|
||||
../src/lib_ccx/ccx_common_structs.h \
|
||||
../src/lib_ccx/ccx_common_timing.c \
|
||||
../src/lib_ccx/ccx_common_timing.h \
|
||||
../src/lib_ccx/ccx_decoders_608.c \
|
||||
../src/lib_ccx/ccx_decoders_608.h \
|
||||
../src/lib_ccx/ccx_decoders_708.c \
|
||||
../src/lib_ccx/ccx_decoders_708_encoding.c \
|
||||
../src/lib_ccx/ccx_decoders_708_encoding.h \
|
||||
../src/lib_ccx/ccx_decoders_708.h \
|
||||
../src/lib_ccx/ccx_decoders_708_output.c \
|
||||
../src/lib_ccx/ccx_decoders_708_output.h \
|
||||
../src/lib_ccx/ccx_decoders_common.c \
|
||||
../src/lib_ccx/ccx_decoders_common.h \
|
||||
../src/lib_ccx/ccx_decoders_isdb.c \
|
||||
../src/lib_ccx/ccx_decoders_isdb.h \
|
||||
../src/lib_ccx/ccx_decoders_structs.h \
|
||||
../src/lib_ccx/ccx_decoders_vbi.c \
|
||||
../src/lib_ccx/ccx_decoders_vbi.h \
|
||||
../src/lib_ccx/ccx_decoders_xds.c \
|
||||
../src/lib_ccx/ccx_decoders_xds.h \
|
||||
../src/lib_ccx/ccx_demuxer.c \
|
||||
../src/lib_ccx/ccx_demuxer.h \
|
||||
../src/lib_ccx/ccx_demuxer_mxf.c \
|
||||
../src/lib_ccx/ccx_demuxer_mxf.h \
|
||||
../src/lib_ccx/ccx_dtvcc.c \
|
||||
../src/lib_ccx/ccx_dtvcc.h \
|
||||
../src/lib_ccx/ccx_encoders_common.c \
|
||||
../src/lib_ccx/ccx_encoders_common.h \
|
||||
../src/lib_ccx/ccx_encoders_curl.c \
|
||||
../src/lib_ccx/ccx_encoders_g608.c \
|
||||
../src/lib_ccx/ccx_encoders_helpers.c \
|
||||
../src/lib_ccx/ccx_encoders_helpers.h \
|
||||
../src/lib_ccx/ccx_encoders_mcc.c \
|
||||
../src/lib_ccx/ccx_encoders_mcc.h \
|
||||
../src/lib_ccx/ccx_encoders_sami.c \
|
||||
../src/lib_ccx/ccx_encoders_scc.c \
|
||||
../src/lib_ccx/ccx_encoders_smptett.c \
|
||||
../src/lib_ccx/ccx_encoders_splitbysentence.c \
|
||||
../src/lib_ccx/ccx_encoders_spupng.c \
|
||||
../src/lib_ccx/ccx_encoders_srt.c \
|
||||
../src/lib_ccx/ccx_encoders_ssa.c \
|
||||
../src/lib_ccx/ccx_encoders_structs.h \
|
||||
../src/lib_ccx/ccx_encoders_transcript.c \
|
||||
../src/lib_ccx/ccx_encoders_webvtt.c \
|
||||
../src/lib_ccx/ccx_encoders_xds.c \
|
||||
../src/lib_ccx/ccx_encoders_xds.h \
|
||||
../src/lib_ccx/ccx_gxf.c \
|
||||
../src/lib_ccx/ccx_gxf.h \
|
||||
../src/lib_ccx/ccx_mp4.h \
|
||||
../src/lib_ccx/ccx_share.c \
|
||||
../src/lib_ccx/ccx_share.h \
|
||||
../src/lib_ccx/ccx_sub_entry_message.pb-c.c \
|
||||
../src/lib_ccx/ccx_sub_entry_message.pb-c.h \
|
||||
../src/lib_ccx/compile_info.h \
|
||||
../src/lib_ccx/compile_info_real.h \
|
||||
../src/lib_ccx/configuration.c \
|
||||
../src/lib_ccx/configuration.h \
|
||||
../src/lib_ccx/disable_warnings.h \
|
||||
../src/lib_ccx/dvb_subtitle_decoder.c \
|
||||
../src/lib_ccx/dvb_subtitle_decoder.h \
|
||||
../src/lib_ccx/dvd_subtitle_decoder.c \
|
||||
../src/lib_ccx/dvd_subtitle_decoder.h \
|
||||
../src/lib_ccx/es_functions.c \
|
||||
../src/lib_ccx/es_userdata.c \
|
||||
../src/lib_ccx/ffmpeg_intgr.c \
|
||||
../src/lib_ccx/ffmpeg_intgr.h \
|
||||
../src/lib_ccx/file_buffer.h \
|
||||
../src/lib_ccx/file_functions.c \
|
||||
../src/lib_ccx/general_loop.c \
|
||||
../src/lib_ccx/hamming.h \
|
||||
../src/lib_ccx/hardsubx.c \
|
||||
../src/lib_ccx/hardsubx_classifier.c \
|
||||
../src/lib_ccx/hardsubx_decoder.c \
|
||||
../src/lib_ccx/hardsubx.h \
|
||||
../src/lib_ccx/hardsubx_imgops.c \
|
||||
../src/lib_ccx/hardsubx_utility.c \
|
||||
../src/lib_ccx/lib_ccx.c \
|
||||
../src/lib_ccx/lib_ccx.h \
|
||||
../src/lib_ccx/list.h \
|
||||
../src/lib_ccx/matroska.c \
|
||||
../src/lib_ccx/matroska.h \
|
||||
../src/lib_ccx/mp4.c \
|
||||
../src/lib_ccx/myth.c \
|
||||
../src/lib_ccx/networking.c \
|
||||
../src/lib_ccx/networking.h \
|
||||
../src/lib_ccx/ocr.c \
|
||||
../src/lib_ccx/ocr.h \
|
||||
../src/lib_ccx/output.c \
|
||||
../src/lib_ccx/params.c \
|
||||
../src/lib_ccx/params_dump.c \
|
||||
../src/lib_ccx/sequencing.c \
|
||||
../src/lib_ccx/stdintmsc.h \
|
||||
../src/lib_ccx/stream_functions.c \
|
||||
../src/lib_ccx/teletext.h \
|
||||
../src/lib_ccx/telxcc.c \
|
||||
../src/lib_ccx/ts_functions.c \
|
||||
../src/lib_ccx/ts_functions.h \
|
||||
../src/lib_ccx/ts_info.c \
|
||||
../src/lib_ccx/ts_tables.c \
|
||||
../src/lib_ccx/ts_tables_epg.c \
|
||||
../src/lib_ccx/wtv_constants.h \
|
||||
../src/lib_ccx/wtv_functions.c \
|
||||
../src/thirdparty/zlib/adler32.c \
|
||||
../src/thirdparty/zlib/compress.c \
|
||||
../src/thirdparty/zlib/crc32.c \
|
||||
../src/thirdparty/zlib/crc32.h \
|
||||
../src/thirdparty/zlib/deflate.c \
|
||||
../src/thirdparty/zlib/deflate.h \
|
||||
../src/thirdparty/zlib/gzclose.c \
|
||||
../src/thirdparty/zlib/gzguts.h \
|
||||
../src/thirdparty/zlib/gzlib.c \
|
||||
../src/thirdparty/zlib/gzread.c \
|
||||
../src/thirdparty/zlib/gzwrite.c \
|
||||
../src/thirdparty/zlib/infback.c \
|
||||
../src/thirdparty/zlib/inffast.c \
|
||||
../src/thirdparty/zlib/inffast.h \
|
||||
../src/thirdparty/zlib/inffixed.h \
|
||||
../src/thirdparty/zlib/inflate.c \
|
||||
../src/thirdparty/zlib/inflate.h \
|
||||
../src/thirdparty/zlib/inftrees.c \
|
||||
../src/thirdparty/zlib/inftrees.h \
|
||||
../src/thirdparty/zlib/trees.c \
|
||||
../src/thirdparty/zlib/trees.h \
|
||||
../src/thirdparty/zlib/uncompr.c \
|
||||
../src/thirdparty/zlib/zconf.h \
|
||||
../src/thirdparty/zlib/zlib.h \
|
||||
../src/thirdparty/zlib/zutil.c \
|
||||
../src/thirdparty/zlib/zutil.h \
|
||||
../src/thirdparty/utf8proc/utf8proc.c \
|
||||
../src/thirdparty/utf8proc/utf8proc.h \
|
||||
../src/thirdparty/lib_hash/sha2.c \
|
||||
../src/thirdparty/lib_hash/sha2.h \
|
||||
../src/thirdparty/protobuf-c/protobuf-c.c \
|
||||
../src/thirdparty/protobuf-c/protobuf-c.h \
|
||||
../src/lib_ccx/zvbi/bcd.h \
|
||||
../src/lib_ccx/zvbi/bit_slicer.c \
|
||||
../src/lib_ccx/zvbi/bit_slicer.h \
|
||||
../src/lib_ccx/zvbi/decoder.c \
|
||||
../src/lib_ccx/zvbi/macros.h \
|
||||
../src/lib_ccx/zvbi/misc.h \
|
||||
../src/lib_ccx/zvbi/raw_decoder.c \
|
||||
../src/lib_ccx/zvbi/raw_decoder.h \
|
||||
../src/lib_ccx/zvbi/sampling_par.c \
|
||||
../src/lib_ccx/zvbi/sampling_par.h \
|
||||
../src/lib_ccx/zvbi/sliced.h \
|
||||
../src/lib_ccx/zvbi/zvbi_decoder.h \
|
||||
../src/freetype/* \
|
||||
../src/thirdparty/freetype/autofit/autofit.c \
|
||||
../src/thirdparty/freetype/base/ftbase.c \
|
||||
../src/thirdparty/freetype/base/ftbbox.c \
|
||||
../src/thirdparty/freetype/base/ftbdf.c \
|
||||
../src/thirdparty/freetype/base/ftbitmap.c \
|
||||
../src/thirdparty/freetype/base/ftcid.c \
|
||||
../src/thirdparty/freetype/base/ftfntfmt.c \
|
||||
../src/thirdparty/freetype/base/ftfstype.c \
|
||||
../src/thirdparty/freetype/base/ftgasp.c \
|
||||
../src/thirdparty/freetype/base/ftglyph.c \
|
||||
../src/thirdparty/freetype/base/ftgxval.c \
|
||||
../src/thirdparty/freetype/base/ftinit.c \
|
||||
../src/thirdparty/freetype/base/ftlcdfil.c \
|
||||
../src/thirdparty/freetype/base/ftmm.c \
|
||||
../src/thirdparty/freetype/base/ftotval.c \
|
||||
../src/thirdparty/freetype/base/ftpatent.c \
|
||||
../src/thirdparty/freetype/base/ftpfr.c \
|
||||
../src/thirdparty/freetype/base/ftstroke.c \
|
||||
../src/thirdparty/freetype/base/ftsynth.c \
|
||||
../src/thirdparty/freetype/base/ftsystem.c \
|
||||
../src/thirdparty/freetype/base/fttype1.c \
|
||||
../src/thirdparty/freetype/base/ftwinfnt.c \
|
||||
../src/thirdparty/freetype/bdf/bdf.c \
|
||||
../src/thirdparty/freetype/bzip2/ftbzip2.c \
|
||||
../src/thirdparty/freetype/cache/ftcache.c \
|
||||
../src/thirdparty/freetype/cff/cff.c \
|
||||
../src/thirdparty/freetype/cid/type1cid.c \
|
||||
../src/thirdparty/freetype/gzip/ftgzip.c \
|
||||
../src/thirdparty/freetype/include/ft2build.h \
|
||||
../src/thirdparty/freetype/lzw/ftlzw.c \
|
||||
../src/thirdparty/freetype/pcf/pcf.c \
|
||||
../src/thirdparty/freetype/pfr/pfr.c \
|
||||
../src/thirdparty/freetype/psaux/psaux.c \
|
||||
../src/thirdparty/freetype/pshinter/pshinter.c \
|
||||
../src/thirdparty/freetype/psnames/psnames.c \
|
||||
../src/thirdparty/freetype/raster/raster.c \
|
||||
../src/thirdparty/freetype/sfnt/sfnt.c \
|
||||
../src/thirdparty/freetype/smooth/smooth.c \
|
||||
../src/thirdparty/freetype/truetype/truetype.c \
|
||||
../src/thirdparty/freetype/type1/type1.c \
|
||||
../src/thirdparty/freetype/type42/type42.c \
|
||||
../src/thirdparty/freetype/winfonts/winfnt.c
|
||||
|
||||
if SYS_IS_APPLE_SILICON
|
||||
ccextractor_SOURCES += ../src/thirdparty/libpng/arm/arm_init.c \
|
||||
../src/thirdparty/libpng/arm/filter_neon_intrinsics.c \
|
||||
../src/thirdparty/libpng/arm/palette_neon_intrinsics.c
|
||||
endif
|
||||
|
||||
ccextractor_CFLAGS = -std=gnu99 -Wno-write-strings -Wno-pointer-sign -D_FILE_OFFSET_BITS=64 -DVERSION_FILE_PRESENT -DFT2_BUILD_LIBRARY -DGPAC_DISABLE_VTT -DGPAC_DISABLE_OD_DUMP -DGPAC_DISABLE_REMOTERY -DNO_GZIP -DGPAC_HAVE_CONFIG_H
|
||||
|
||||
ccextractor_CPPFLAGS =-I../src/lib_ccx/ -I../src/thirdparty/gpacmp4/ -I../src/thirdparty/libpng/ -I../src/thirdparty/zlib/ -I../src/lib_ccx/zvbi/ -I../src/thirdparty/lib_hash/ -I../src/thirdparty/protobuf-c/ -I../src/thirdparty -I../src/ -I../src/thirdparty/freetype/include/
|
||||
|
||||
|
||||
ccextractor_LDADD=-lm -lpthread -ldl
|
||||
|
||||
if WITH_RUST
|
||||
ccextractor_LDADD += ./rust/@RUST_TARGET_SUBDIR@/libccx_rust.a
|
||||
else
|
||||
ccextractor_CFLAGS += -DDISABLE_RUST
|
||||
ccextractor_CPPFLAGS += -DDISABLE_RUST
|
||||
endif
|
||||
|
||||
if DEBUG_RELEASE
|
||||
CARGO_RELEASE_ARGS=
|
||||
else
|
||||
CARGO_RELEASE_ARGS=--release
|
||||
endif
|
||||
|
||||
./rust/@RUST_TARGET_SUBDIR@/libccx_rust.a:
|
||||
cd ../src/rust && \
|
||||
CARGO_TARGET_DIR=../../linux/rust $(CARGO) build $(CARGO_RELEASE_ARGS);
|
||||
|
||||
if SYS_IS_LINUX
|
||||
ccextractor_CFLAGS += -O3 -s -DGPAC_CONFIG_LINUX
|
||||
endif
|
||||
|
||||
if SYS_IS_MAC
|
||||
ccextractor_CFLAGS += -DPAC_CONFIG_DARWIN -Dfopen64=fopen -Dopen64=open -Dlseek64=lseek
|
||||
ccextractor_LDADD += -liconv -lz
|
||||
endif
|
||||
|
||||
if SYS_IS_64_BIT
|
||||
ccextractor_CFLAGS += -DGPAC_64_BITS
|
||||
endif
|
||||
|
||||
if HARDSUBX_IS_ENABLED
|
||||
ccextractor_CFLAGS += -DENABLE_HARDSUBX
|
||||
ccextractor_CPPFLAGS+= ${libavcodec_CFLAGS}
|
||||
ccextractor_CPPFLAGS+= ${libavformat_CFLAGS}
|
||||
ccextractor_CPPFLAGS+= ${libavutil_CFALGS}
|
||||
ccextractor_CPPFLAGS+= ${libswscale_CFLAGS}
|
||||
AV_LIB = ${libavcodec_LIBS}
|
||||
AV_LIB += ${libavformat_LIBS}
|
||||
AV_LIB += ${libavutil_LIBS}
|
||||
AV_LIB += ${libswscale_LIBS}
|
||||
ccextractor_LDADD += $(AV_LIB)
|
||||
endif
|
||||
|
||||
if OCR_IS_ENABLED
|
||||
ccextractor_CFLAGS += -DENABLE_OCR -DPN3G_NO_CONFIG_H
|
||||
LEPT_LIB = ${lept_LIBS}
|
||||
LEPT_CPPFLAG = ${lept_CFLAGS}
|
||||
|
||||
if TESSERACT_PRESENT
|
||||
TESS_LIB = ${tesseract_LIBS}
|
||||
TESS_CPPFLAG = ${tesseract_CFLAGS}
|
||||
else
|
||||
|
||||
#fix for raspberry pi not having a pkgconfig file for tesseract
|
||||
|
||||
if TESSERACT_PRESENT_RPI
|
||||
TESS_LIB = -ltesseract
|
||||
TESS_CPPFLAG = -I/usr/include/tesseract
|
||||
endif
|
||||
endif
|
||||
|
||||
ccextractor_CPPFLAGS += $(TESS_CPPFLAG)
|
||||
ccextractor_CPPFLAGS += $(LEPT_CPPFLAG)
|
||||
ccextractor_LDADD += $(TESS_LIB)
|
||||
ccextractor_LDADD += $(LEPT_LIB)
|
||||
endif
|
||||
|
||||
EXTRA_DIST = ../src/thirdparty/gpacmp4/gpac/sync_layer.h ../src/lib_ccx/ccfont2.xbm ../src/thirdparty/utf8proc/utf8proc_data.c fonts/ icon/
|
||||
|
||||
#For GUI
|
||||
if BUILD_WITH_GUI
|
||||
bin_PROGRAMS += ccextractorGUI
|
||||
|
||||
ccextractorGUI_SOURCES = \
|
||||
../src/GUI/ccextractorGUI.c \
|
||||
../src/GUI/ccextractorGUI.h \
|
||||
../src/GUI/activity.c \
|
||||
../src/GUI/activity.h \
|
||||
../src/GUI/terminal.c \
|
||||
../src/GUI/preview.c \
|
||||
../src/GUI/preview.h \
|
||||
../src/GUI/ccx_cli_thread.c \
|
||||
../src/GUI/ccx_cli_thread.h \
|
||||
../src/GUI/command_builder.c \
|
||||
../src/GUI/command_builder.h \
|
||||
../src/GUI/save_load_data.c \
|
||||
../src/GUI/save_load_data.h \
|
||||
../src/GUI/file_browser.c \
|
||||
../src/GUI/file_browser.h \
|
||||
../src/GUI/popups.c \
|
||||
../src/GUI/popups.h \
|
||||
../src/GUI/tabs.c \
|
||||
../src/GUI/tabs.h \
|
||||
../src/GUI/stb_image.h \
|
||||
../src/GUI/nuklear_lib/nuklear.h \
|
||||
../src/GUI/nuklear_lib/nuklear_glfw_gl2.h
|
||||
|
||||
ccextractorGUI_CFLAGS = -std=gnu99
|
||||
|
||||
|
||||
ccextractorGUI_LDADD = ${glfw3_LIBS}
|
||||
|
||||
|
||||
if SYS_IS_LINUX
|
||||
ccextractorGUI_CFLAGS += -s -O3 -DUNIX
|
||||
ccextractorGUI_CFLAGS += ${glew_CFLAGS}
|
||||
ccextractorGUI_LDADD += ${glew_LIBS}
|
||||
ccextractorGUI_LDADD += -lX11 -lXinerama -lXcursor -lXi -lXrandr -lXxf86vm -lm -ldl -lpthread
|
||||
endif
|
||||
|
||||
if SYS_IS_MAC
|
||||
ccextractorGUI_CFLAGS += -O3 -DUNIX
|
||||
ccextractorGUI_CFLAGS += ${glew_CFLAGS}
|
||||
ccextractorGUI_LDADD += ${glew_LIBS}
|
||||
ccextractorGUI_LDFLAGS = -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo
|
||||
ccextractorGUI_LDADD += -lglfw -lm -L/usr/local/lib -lpthread
|
||||
endif
|
||||
|
||||
if HARDSUBX_IS_ENABLED
|
||||
if OCR_IS_ENABLED
|
||||
ccextractorGUI_CFLAGS += -DENABLE_OCR
|
||||
endif
|
||||
endif
|
||||
|
||||
EXTRA_DIST += ../icon/ ../fonts/
|
||||
|
||||
endif
|
||||
|
||||
4
linux/autogen.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
./pre-build.sh
|
||||
autoreconf -i
|
||||
133
linux/build
@@ -1,14 +1,125 @@
|
||||
#!/bin/bash
|
||||
BLD_FLAGS="-g -std=gnu99 -Wno-write-strings -DGPAC_CONFIG_LINUX -D_FILE_OFFSET_BITS=64 -DVERSION_FILE_PRESENT -DENABLE_OCR"
|
||||
BLD_INCLUDE="-I /usr/include/leptonica/ -I /usr/include/tesseract/ -I../src/lib_ccx/ -I../src/gpacmp4/ -I../src/libpng/ -I../src/zlib/ -I../src/zvbi -I../src/lib_hash"
|
||||
SRC_LIBPNG="$(find ../src/libpng/ -name '*.c')"
|
||||
SRC_ZLIB="$(find ../src/zlib/ -name '*.c')"
|
||||
SRC_ZVBI="$(find ../src/zvbi/ -name '*.c')"
|
||||
#!/usr/bin/env bash
|
||||
BLD_FLAGS="$BLD_FLAGS -std=gnu99 -Wno-write-strings -Wno-pointer-sign -DGPAC_CONFIG_LINUX -D_FILE_OFFSET_BITS=64 -DVERSION_FILE_PRESENT -DENABLE_OCR -DFT2_BUILD_LIBRARY -DGPAC_DISABLE_VTT -DGPAC_DISABLE_OD_DUMP -DGPAC_DISABLE_REMOTERY -DNO_GZIP -DGPAC_HAVE_CONFIG_H"
|
||||
bit_os=$(getconf LONG_BIT)
|
||||
if [ "$bit_os"=="64" ]
|
||||
then
|
||||
BLD_FLAGS="$BLD_FLAGS -DGPAC_64_BITS"
|
||||
fi
|
||||
BLD_INCLUDE="-I../src -I /usr/include/leptonica/ -I /usr/include/tesseract/ -I../src/lib_ccx/ -I../src/thirdparty/gpacmp4/ -I../src/thirdparty/libpng -I../src/thirdparty/zlib -I../src/lib_ccx/zvbi -I../src/thirdparty/lib_hash -I../src/thirdparty/protobuf-c -I../src/thirdparty -I../src/thirdparty/freetype/include"
|
||||
SRC_LIBPNG="$(find ../src/thirdparty/libpng/ -name '*.c')"
|
||||
SRC_ZLIB="$(find ../src/thirdparty/zlib/ -name '*.c')"
|
||||
SRC_CCX="$(find ../src/lib_ccx/ -name '*.c')"
|
||||
SRC_GPAC="$(find ../src/gpacmp4/ -name '*.c')"
|
||||
SRC_HASH="$(find ../src/lib_hash/ -name '*.c')"
|
||||
BLD_SOURCES="../src/ccextractor.c $SRC_CCX $SRC_GPAC $SRC_ZLIB $SRC_ZVBI $SRC_LIBPNG $SRC_HASH"
|
||||
BLD_LINKER="-lm -zmuldefs -l tesseract -l lept"
|
||||
SRC_GPAC="$(find ../src/thirdparty/gpacmp4/ -name '*.c')"
|
||||
SRC_HASH="$(find ../src/thirdparty/lib_hash/ -name '*.c')"
|
||||
SRC_PROTOBUF="$(find ../src/thirdparty/protobuf-c/ -name '*.c')"
|
||||
SRC_UTF8PROC="../src/thirdparty/utf8proc/utf8proc.c"
|
||||
SRC_FREETYPE="../src/thirdparty/freetype/autofit/autofit.c
|
||||
../src/thirdparty/freetype/base/ftbase.c
|
||||
../src/thirdparty/freetype/base/ftbbox.c
|
||||
../src/thirdparty/freetype/base/ftbdf.c
|
||||
../src/thirdparty/freetype/base/ftbitmap.c
|
||||
../src/thirdparty/freetype/base/ftcid.c
|
||||
../src/thirdparty/freetype/base/ftfntfmt.c
|
||||
../src/thirdparty/freetype/base/ftfstype.c
|
||||
../src/thirdparty/freetype/base/ftgasp.c
|
||||
../src/thirdparty/freetype/base/ftglyph.c
|
||||
../src/thirdparty/freetype/base/ftgxval.c
|
||||
../src/thirdparty/freetype/base/ftinit.c
|
||||
../src/thirdparty/freetype/base/ftlcdfil.c
|
||||
../src/thirdparty/freetype/base/ftmm.c
|
||||
../src/thirdparty/freetype/base/ftotval.c
|
||||
../src/thirdparty/freetype/base/ftpatent.c
|
||||
../src/thirdparty/freetype/base/ftpfr.c
|
||||
../src/thirdparty/freetype/base/ftstroke.c
|
||||
../src/thirdparty/freetype/base/ftsynth.c
|
||||
../src/thirdparty/freetype/base/ftsystem.c
|
||||
../src/thirdparty/freetype/base/fttype1.c
|
||||
../src/thirdparty/freetype/base/ftwinfnt.c
|
||||
../src/thirdparty/freetype/bdf/bdf.c
|
||||
../src/thirdparty/freetype/bzip2/ftbzip2.c
|
||||
../src/thirdparty/freetype/cache/ftcache.c
|
||||
../src/thirdparty/freetype/cff/cff.c
|
||||
../src/thirdparty/freetype/cid/type1cid.c
|
||||
../src/thirdparty/freetype/gzip/ftgzip.c
|
||||
../src/thirdparty/freetype/lzw/ftlzw.c
|
||||
../src/thirdparty/freetype/pcf/pcf.c
|
||||
../src/thirdparty/freetype/pfr/pfr.c
|
||||
../src/thirdparty/freetype/psaux/psaux.c
|
||||
../src/thirdparty/freetype/pshinter/pshinter.c
|
||||
../src/thirdparty/freetype/psnames/psnames.c
|
||||
../src/thirdparty/freetype/raster/raster.c
|
||||
../src/thirdparty/freetype/sfnt/sfnt.c
|
||||
../src/thirdparty/freetype/smooth/smooth.c
|
||||
../src/thirdparty/freetype/truetype/truetype.c
|
||||
../src/thirdparty/freetype/type1/type1.c
|
||||
../src/thirdparty/freetype/type42/type42.c
|
||||
../src/thirdparty/freetype/winfonts/winfnt.c"
|
||||
BLD_SOURCES="../src/ccextractor.c $SRC_CCX $SRC_GPAC $SRC_ZLIB $SRC_LIBPNG $SRC_HASH $SRC_PROTOBUF $SRC_UTF8PROC $SRC_FREETYPE"
|
||||
BLD_LINKER="$BLD_LINKER -lm -zmuldefs -l tesseract -l lept -lpthread -ldl"
|
||||
|
||||
echo "Running pre-build script..."
|
||||
./pre-build.sh
|
||||
gcc $BLD_FLAGS $BLD_INCLUDE -o ccextractor $BLD_SOURCES $BLD_LINKER
|
||||
echo "Trying to compile..."
|
||||
|
||||
if [ "$1" = "-without-rust" ]; then
|
||||
echo "Building without rust files..."
|
||||
BLD_FLAGS="$BLD_FLAGS -DDISABLE_RUST"
|
||||
else
|
||||
BLD_LINKER="$BLD_LINKER ./libccx_rust.a"
|
||||
echo "Checking for cargo..."
|
||||
if ! [ -x "$(command -v cargo)" ]; then
|
||||
echo 'Error: cargo is not installed.' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rustc_version="$(rustc --version)"
|
||||
semver=( ${rustc_version//./ } )
|
||||
version="${semver[1]}.${semver[2]}.${semver[3]}"
|
||||
MSRV="1.54.0"
|
||||
if [ "$(printf '%s\n' "$MSRV" "$version" | sort -V | head -n1)" = "$MSRV" ]; then
|
||||
echo "rustc >= MSRV(${MSRV})"
|
||||
else
|
||||
echo "Minimum supported rust version(MSRV) is ${MSRV}, please upgrade rust"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Building rust files..."
|
||||
(cd ../src/rust && CARGO_TARGET_DIR=../../linux/rust cargo build) || { echo "Failed. " ; exit 1; }
|
||||
cp rust/debug/libccx_rust.a ./libccx_rust.a
|
||||
fi
|
||||
|
||||
echo "Building ccextractor"
|
||||
out=$((LC_ALL=C gcc $BLD_FLAGS $BLD_INCLUDE -o ccextractor $BLD_SOURCES $BLD_LINKER)2>&1)
|
||||
res=$?
|
||||
if [[ $out == *"gcc: command not found"* ]]
|
||||
then
|
||||
echo "Error: please install gcc";
|
||||
exit 1
|
||||
fi
|
||||
if [[ $out == *"curl.h: No such file or directory"* ]]
|
||||
then
|
||||
echo "Error: please install curl development library (libcurl4-gnutls-dev for Debian/Ubuntu)";
|
||||
exit 2
|
||||
fi
|
||||
if [[ $out == *"capi.h: No such file or directory"* ]]
|
||||
then
|
||||
echo "Error: please install tesseract development library (libtesseract-dev for Debian/Ubuntu)";
|
||||
exit 3
|
||||
fi
|
||||
if [[ $out == *"allheaders.h: No such file or directory"* ]]
|
||||
then
|
||||
echo "Error: please install leptonica development library (libleptonica-dev for Debian/Ubuntu)";
|
||||
exit 4
|
||||
fi
|
||||
if [[ $res -ne 0 ]] # Unknown error
|
||||
then
|
||||
echo "Compiled with errors"
|
||||
>&2 echo "$out"
|
||||
exit 5
|
||||
fi
|
||||
if [[ "$out" != "" ]] ; then
|
||||
echo "$out"
|
||||
echo "Compilation successful, compiler message shown in previous lines"
|
||||
else
|
||||
echo "Compilation successful, no compiler messages."
|
||||
fi
|
||||
|
||||
109
linux/build-static.sh
Executable file
@@ -0,0 +1,109 @@
|
||||
#!/usr/bin/env -S sh -ex
|
||||
|
||||
####################################################################
|
||||
# setup by tracey apr 2012
|
||||
# updated version dec 2016
|
||||
# see: http://www.ccextractor.org/doku.php
|
||||
####################################################################
|
||||
|
||||
|
||||
# build it static!
|
||||
# simplest way is with linux alpine
|
||||
# hop onto box with docker on it and cd to dir of the file you are staring at
|
||||
# You will get a static-compiled binary and english language library file in the end.
|
||||
if [ ! -e /tmp/cc/ccextractor-README.txt ]; then
|
||||
rm -rf /tmp/cc;
|
||||
mkdir -p -m777 /tmp/cc;
|
||||
mkdir -p -m777 ../lib/tessdata/;
|
||||
cp ccextractor-README.txt /tmp/cc/;
|
||||
sudo docker run -v /tmp/cc:/tmp/cc --rm -it alpine:latest /tmp/cc/ccextractor-README.txt;
|
||||
# NOTE: _AFTER_ testing/validating, you can promote it from "ccextractor.next" to "ccextractor"... ;-)
|
||||
cp /tmp/cc/*traineddata ../lib/tessdata/;
|
||||
chmod go-w ../lib/tessdata/;
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
# NOW we are inside docker container...
|
||||
cd /tmp/cc;
|
||||
|
||||
|
||||
# we want tesseract (for OCR)
|
||||
echo '
|
||||
http://dl-cdn.alpinelinux.org/alpine/v3.5/main
|
||||
http://dl-cdn.alpinelinux.org/alpine/v3.5/community
|
||||
' >| /etc/apk/repositories;
|
||||
apk update; apk upgrade;
|
||||
|
||||
apk add --update bash zsh alpine-sdk perl;
|
||||
|
||||
# (needed by various static builds below)
|
||||
# Even though we're going to (re)builid tesseract from source statically, get its dependencies setup by
|
||||
# installing it now, too.
|
||||
apk add autoconf automake libtool tesseract-ocr-dev;
|
||||
|
||||
|
||||
# Now comes the not-so-fun parts... Many packages _only_ provide .so files in their distros -- not the .a
|
||||
# needed files for building something with it statically. Step through them now...
|
||||
|
||||
|
||||
# libgif
|
||||
wget https://sourceforge.net/projects/giflib/files/giflib-5.1.4.tar.gz;
|
||||
zcat giflib*tar.gz | tar xf -;
|
||||
cd giflib*/;
|
||||
./configure --disable-shared --enable-static; make; make install;
|
||||
hash -r;
|
||||
cd -;
|
||||
|
||||
|
||||
# libwebp
|
||||
git clone https://github.com/webmproject/libwebp;
|
||||
cd libwebp;
|
||||
./autogen.sh;
|
||||
./configure --disable-shared --enable-static; make; make install;
|
||||
cd -;
|
||||
|
||||
|
||||
# leptonica
|
||||
wget http://www.leptonica.org/source/leptonica-1.73.tar.gz;
|
||||
zcat leptonica*tar.gz | tar xf -;
|
||||
cd leptonica*/;
|
||||
./configure --disable-shared --enable-static; make; make install;
|
||||
hash -r;
|
||||
cd -;
|
||||
|
||||
|
||||
# tesseract
|
||||
git clone https://github.com/tesseract-ocr/tesseract;
|
||||
cd tesseract;
|
||||
./autogen.sh;
|
||||
./configure --disable-shared --enable-static; make; make install;
|
||||
cd -;
|
||||
|
||||
|
||||
# ccextractor -- build static
|
||||
git clone https://github.com/CCExtractor/ccextractor;
|
||||
cd ccextractor/linux/;
|
||||
perl -i -pe 's/O3 /O3 -static /' Makefile;
|
||||
# quick patch:
|
||||
perl -i -pe 's/(strchr|strstr)\(/$1((char *)/' ../src/thirdparty/gpacmp4/url.c ../src/thirdparty/gpacmp4/error.c;
|
||||
set +e; # this _will_ FAIL at the end..
|
||||
make ENABLE_OCR=yes;
|
||||
set -e;
|
||||
# I confess hand-compiling (cherrypicking which .a to use when there are 2, etc.) is fragile...
|
||||
# But it was the _only_ way I could get a fully static build after hours of thrashing...
|
||||
gcc -Wno-write-strings -Wno-pointer-sign -D_FILE_OFFSET_BITS=64 -DVERSION_FILE_PRESENT -O3 -std=gnu99 -s -DGPAC_CONFIG_LINUX -DENABLE_OCR -DPNG_NO_CONFIG_H -I/usr/local/include/tesseract -I/usr/local/include/leptonica objs/*.o -o ccextractor \
|
||||
--static -lm \
|
||||
/usr/local/lib/libtesseract.a \
|
||||
/usr/local/lib/liblept.a \
|
||||
/usr/local/lib/libgif.a \
|
||||
/usr/local/lib/libwebp.a \
|
||||
/usr/lib/libjpeg.a \
|
||||
/usr/lib/libtiff.a \
|
||||
/usr/lib/libgomp.a \
|
||||
-lstdc++;
|
||||
|
||||
cp ccextractor /tmp/cc/ccextractor.next;
|
||||
cd -;
|
||||
|
||||
# get english lang trained data
|
||||
wget https://github.com/tesseract-ocr/tessdata/raw/master/eng.traineddata;
|
||||
4
linux/build_hardsubx
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
export BLD_FLAGS="-DENABLE_HARDSUBX"
|
||||
export BLD_LINKER="-lswscale -lavutil -pthread -lavformat -lavcodec -lxcb-shm -lxcb -lX11 -llzma -lswresample"
|
||||
./build
|
||||
@@ -1,14 +1,3 @@
|
||||
#!/bin/bash
|
||||
BLD_FLAGS="-g -std=gnu99 -Wno-write-strings -DGPAC_CONFIG_LINUX -D_FILE_OFFSET_BITS=64 -DVERSION_FILE_PRESENT"
|
||||
BLD_INCLUDE="-I../src/lib_ccx/ -I../src/gpacmp4/ -I../src/libpng/ -I../src/zlib/ -I../src/zvbi -I../src/lib_hash"
|
||||
SRC_LIBPNG="$(find ../src/libpng/ -name '*.c')"
|
||||
SRC_ZLIB="$(find ../src/zlib/ -name '*.c')"
|
||||
SRC_ZVBI="$(find ../src/zvbi/ -name '*.c')"
|
||||
SRC_CCX="$(find ../src/lib_ccx/ -name '*.c')"
|
||||
SRC_GPAC="$(find ../src/gpacmp4/ -name '*.c')"
|
||||
SRC_HASH="$(find ../src/lib_hash/ -name '*.c')"
|
||||
BLD_SOURCES="../src/ccextractor.c $SRC_CCX $SRC_GPAC $SRC_ZLIB $SRC_ZVBI $SRC_LIBPNG $SRC_HASH"
|
||||
BLD_LINKER="-lm -zmuldefs"
|
||||
|
||||
./pre-build.sh
|
||||
gcc $BLD_FLAGS $BLD_INCLUDE -o ccextractor $BLD_SOURCES $BLD_LINKER
|
||||
#!/usr/bin/env bash
|
||||
export BLD_FLAGS="-g"
|
||||
./build
|
||||
|
||||
4
linux/cleanup
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
make distclean > /dev/null 2>&1 || true
|
||||
rm -rf Makefile configure *.in config.status config.log aclocal.m4 build-conf autom4te.cache
|
||||
166
linux/configure.ac
Normal file
@@ -0,0 +1,166 @@
|
||||
# -*- Autoconf -*-
|
||||
# Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_PREREQ([2.69])
|
||||
AC_INIT([CCExtractor], [0.94], [carlos@ccextractor.org])
|
||||
AC_CONFIG_AUX_DIR([build-conf])
|
||||
AC_CONFIG_SRCDIR([../src/ccextractor.c])
|
||||
AM_INIT_AUTOMAKE([foreign subdir-objects])
|
||||
AC_CONFIG_MACRO_DIRS([m4])
|
||||
|
||||
# Checks for programs.
|
||||
AC_PROG_CC
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_MAKE_SET
|
||||
|
||||
#Checks for "pkg-config" utility
|
||||
AC_MSG_CHECKING([pkg-config m4 macros])
|
||||
if test m4_ifdef([PKG_CHECK_MODULES], [yes], [no]) == yes; then
|
||||
AC_MSG_RESULT([yes]);
|
||||
else
|
||||
AC_MSG_RESULT([no]);
|
||||
AC_MSG_ERROR([
|
||||
pkg-config is required.])
|
||||
fi
|
||||
|
||||
# Checks for libraries.
|
||||
AC_CHECK_LIB([m], [sin], [], [AC_MSG_ERROR(Math library not installed. Install it before proceeding.)])
|
||||
AC_CHECK_LIB([lept], [getLeptonicaVersion], [HAS_LEPT=1 && PKG_CHECK_MODULES([lept], [lept])], [HAS_LEPT=0])
|
||||
AC_CHECK_LIB([tesseract], [TessVersion], [HAS_TESSERACT=1 && PKG_CHECK_MODULES([tesseract], [tesseract])], [HAS_TESSERACT=0])
|
||||
AC_CHECK_LIB([avcodec], [avcodec_version], [HAS_AVCODEC=1 && PKG_CHECK_MODULES([libavcodec], [libavcodec])], [HAS_AVCODEC=0])
|
||||
AC_CHECK_LIB([avformat], [avformat_version], [HAS_AVFORMAT=1 && PKG_CHECK_MODULES([libavformat], [libavformat])], [HAS_AVFORMAT=0])
|
||||
AC_CHECK_LIB([avutil], [avutil_version], [HAS_AVUTIL=1 && PKG_CHECK_MODULES([libavutil], [libavutil])], [HAS_AVUTIL=0])
|
||||
AC_CHECK_LIB([swscale], [swscale_version], [HAS_SWSCALE=1 && PKG_CHECK_MODULES([libswscale], [libswscale])], [HAS_SWSCALE=0])
|
||||
|
||||
# Checks for header files.
|
||||
AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h malloc.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h sys/socket.h sys/time.h sys/timeb.h termios.h unistd.h wchar.h])
|
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_CHECK_HEADER_STDBOOL
|
||||
AC_C_INLINE
|
||||
AC_TYPE_INT16_T
|
||||
AC_TYPE_INT32_T
|
||||
AC_TYPE_INT64_T
|
||||
AC_TYPE_INT8_T
|
||||
AC_TYPE_OFF_T
|
||||
AC_TYPE_PID_T
|
||||
AC_TYPE_SIZE_T
|
||||
AC_TYPE_SSIZE_T
|
||||
AC_TYPE_UINT16_T
|
||||
AC_TYPE_UINT32_T
|
||||
AC_TYPE_UINT64_T
|
||||
AC_TYPE_UINT8_T
|
||||
AC_CHECK_TYPES([ptrdiff_t])
|
||||
|
||||
# Checks for library functions.
|
||||
AC_FUNC_ERROR_AT_LINE
|
||||
AC_FUNC_FSEEKO
|
||||
AC_FUNC_MALLOC
|
||||
AC_FUNC_MKTIME
|
||||
AC_FUNC_REALLOC
|
||||
AC_FUNC_STRERROR_R
|
||||
AC_CHECK_FUNCS([floor ftruncate gethostbyname gettimeofday inet_ntoa mblen memchr memmove memset mkdir modf pow realpath rmdir select setlocale socket sqrt strcasecmp strchr strdup strerror strndup strrchr strstr strtol])
|
||||
|
||||
# Checks for arguments with configure
|
||||
AC_ARG_ENABLE([hardsubx],
|
||||
AC_HELP_STRING([--enable-hardsubx], [Enables extraction of burnt subtitles (hard subtitles)]),
|
||||
[case "${enableval}" in
|
||||
yes) hardsubx=true ;;
|
||||
no) hardsubx=false ;;
|
||||
*) AC_MSG_ERROR([bad value ${enableval} for --enable-hardsubx]) ;;
|
||||
esac],[hardsubx=false])
|
||||
|
||||
AC_ARG_ENABLE([ocr],
|
||||
AC_HELP_STRING([--enable-ocr], [Enables Optical Character Recognition]),
|
||||
[case "${enableval}" in
|
||||
yes) ocr=true ;;
|
||||
no) ocr=false ;;
|
||||
*) AC_MSG_ERROR([bad value ${enableval} for --enable-ocr]) ;;
|
||||
esac],[ocr=false])
|
||||
|
||||
AC_ARG_ENABLE([ffmpeg],
|
||||
AC_HELP_STRING([--enable-ffmpeg], [Enable FFmpeg integration]),
|
||||
[case "${enableval}" in
|
||||
yes) ffmpeg=true ;;
|
||||
no) ffmpeg=false ;;
|
||||
*) AC_MSG_ERROR([bad value ${enableval} for --enable-ffmpeg]) ;;
|
||||
esac],[ffmpeg=false])
|
||||
|
||||
AC_ARG_WITH([gui],
|
||||
AC_HELP_STRING([--with-gui], [Builds CCExtractor with GUI (requires GLFW and GLEW)]),
|
||||
[PKG_CHECK_MODULES([glfw3], [glfw3]) && PKG_CHECK_MODULES([glew], [glew])],
|
||||
[with_gui=no])
|
||||
|
||||
#Add argument for rust
|
||||
AC_ARG_WITH([rust],
|
||||
AC_HELP_STRING([--with-rust], [Builds CCExtractor with rust library]),
|
||||
[with_rust=$withval],
|
||||
[with_rust=yes])
|
||||
|
||||
AC_MSG_CHECKING(whether to build with rust library)
|
||||
if test "x$with_rust" = "xyes" ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
|
||||
#Check if cargo and rust is installed
|
||||
AC_PATH_PROG([CARGO], [cargo], [notfound])
|
||||
AS_IF([test "$CARGO" = "notfound"], [AC_MSG_ERROR([cargo is required])])
|
||||
|
||||
AC_PATH_PROG([RUSTC], [rustc], [notfound])
|
||||
AS_IF([test "$RUSTC" = "notfound"], [AC_MSG_ERROR([rustc is required])])
|
||||
|
||||
rustc_version=$(rustc --version)
|
||||
MSRV="1.54.0"
|
||||
AX_COMPARE_VERSION($rustc_version, [ge], [$MSRV],
|
||||
[AC_MSG_RESULT(rustc >= $MSRV)],
|
||||
[AC_MSG_ERROR([Minimum supported rust version(MSRV) is $MSRV, please upgrade rust])])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
AM_CONDITIONAL([WITH_RUST], [test "x$with_rust" = "xyes"])
|
||||
|
||||
AC_ARG_ENABLE(debug,
|
||||
AC_HELP_STRING([--enable-debug],
|
||||
[Build Rust code with debugging information [default=no]]),
|
||||
[debug_release=$enableval],
|
||||
[debug_release=no])
|
||||
|
||||
AC_MSG_CHECKING(whether to build Rust code with debugging information)
|
||||
if test "x$debug_release" = "xyes" ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
RUST_TARGET_SUBDIR=debug
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
RUST_TARGET_SUBDIR=release
|
||||
fi
|
||||
AM_CONDITIONAL([DEBUG_RELEASE], [test "x$debug_release" = "xyes"])
|
||||
|
||||
AC_SUBST([RUST_TARGET_SUBDIR])
|
||||
|
||||
#Checks and prompts if libraries found/not found to avoild failure while building
|
||||
AS_IF([ test x$hardsubx = xtrue && test $HAS_AVCODEC -gt 0 ], [AC_MSG_NOTICE(avcodec library found)])
|
||||
AS_IF([ test x$hardsubx = xtrue && test ! $HAS_AVCODEC -gt 0 ], [AC_MSG_ERROR(avcodec library not found. Please install the avcodec library before proceeding)])
|
||||
AS_IF([ test x$hardsubx = xtrue && test $HAS_AVFORMAT -gt 0 ], [AC_MSG_NOTICE(avformat library found)])
|
||||
AS_IF([ test x$hardsubx = xtrue && test ! $HAS_AVFORMAT -gt 0 ], [AC_MSG_ERROR(avformat library not found. Please install the avformat library before proceeding)])
|
||||
AS_IF([ test x$hardsubx = xtrue && test $HAS_AVUTIL -gt 0 ], [AC_MSG_NOTICE(avutil library found)])
|
||||
AS_IF([ test x$hardsubx = xtrue && test ! $HAS_AVUTIL -gt 0 ], [AC_MSG_ERROR(avutil library not found. Please install the avutil library before proceeding)])
|
||||
AS_IF([ test x$hardsubx = xtrue && test $HAS_SWSCALE -gt 0 ], [AC_MSG_NOTICE(swscale library found)])
|
||||
AS_IF([ test x$hardsubx = xtrue && test ! $HAS_SWSCALE -gt 0 ], [AC_MSG_ERROR(swscale library not found. Please install the swscale library before proceeding)])
|
||||
AS_IF([ (test x$ocr = xtrue || test x$hardsubx = xtrue) && test $HAS_TESSERACT -gt 0 ], [TESS_VERSION=`tesseract --version 2>&1 | grep tesseract` && AC_MSG_NOTICE(tesseract library found... $TESS_VERSION)])
|
||||
AS_IF([ (test x$ocr = xtrue || test x$hardsubx = xtrue) && test ! $HAS_TESSERACT -gt 0 ], [AC_MSG_ERROR(tesserect library not found. Please install the tesseract library before proceeding)])
|
||||
AS_IF([ (test x$ocr = xtrue || test x$hardsubx = xtrue) && test $HAS_LEPT -gt 0 ], [LEPT_VERSION=`tesseract --version 2>&1 | grep leptonica` && AC_MSG_NOTICE(leptonica library found... $LEPT_VERSION)])
|
||||
AS_IF([ (test x$ocr = xtrue || test x$hardsubx = xtrue) && test ! $HAS_LEPT -gt 0 ], [AC_MSG_ERROR(leptonica library not found. Please install the leptonica library before proceeding)])
|
||||
|
||||
#AM_CONDITIONAL(s) for setting values to enable/disable flags in Makefile.am
|
||||
AM_CONDITIONAL(HARDSUBX_IS_ENABLED, [ test x$hardsubx = xtrue ])
|
||||
AM_CONDITIONAL(OCR_IS_ENABLED, [ test x$ocr = xtrue || test x$hardsubx = xtrue ])
|
||||
AM_CONDITIONAL(FFMPEG_IS_ENABLED, [ test x$ffmpeg = xtrue ])
|
||||
AM_CONDITIONAL(TESSERACT_PRESENT, [ test ! -z `pkg-config --libs-only-l --silence-errors tesseract` ])
|
||||
AM_CONDITIONAL(TESSERACT_PRESENT_RPI, [ test -d "/usr/include/tesseract" && test `ls -A /usr/include/tesseract | wc -l` -gt 0 ])
|
||||
AM_CONDITIONAL(SYS_IS_LINUX, [ test `uname -s` = "Linux"])
|
||||
AM_CONDITIONAL(SYS_IS_MAC, [ test `uname -s` = "Darwin"])
|
||||
AM_CONDITIONAL(SYS_IS_APPLE_SILICON, [ test `uname -a | awk '{print $NF}'` = "arm64" ])
|
||||
AM_CONDITIONAL(BUILD_WITH_GUI, [test "x$with_gui" = "xyes"])
|
||||
AM_CONDITIONAL(SYS_IS_64_BIT,[test `getconf LONG_BIT` = "64"])
|
||||
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
AC_OUTPUT
|
||||
1
linux/description-pak
Normal file
@@ -0,0 +1 @@
|
||||
Best open source tool for a subtitled world
|
||||
177
linux/m4/ax_compare_version.m4
Normal file
@@ -0,0 +1,177 @@
|
||||
# ===========================================================================
|
||||
# https://www.gnu.org/software/autoconf-archive/ax_compare_version.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_COMPARE_VERSION(VERSION_A, OP, VERSION_B, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# This macro compares two version strings. Due to the various number of
|
||||
# minor-version numbers that can exist, and the fact that string
|
||||
# comparisons are not compatible with numeric comparisons, this is not
|
||||
# necessarily trivial to do in a autoconf script. This macro makes doing
|
||||
# these comparisons easy.
|
||||
#
|
||||
# The six basic comparisons are available, as well as checking equality
|
||||
# limited to a certain number of minor-version levels.
|
||||
#
|
||||
# The operator OP determines what type of comparison to do, and can be one
|
||||
# of:
|
||||
#
|
||||
# eq - equal (test A == B)
|
||||
# ne - not equal (test A != B)
|
||||
# le - less than or equal (test A <= B)
|
||||
# ge - greater than or equal (test A >= B)
|
||||
# lt - less than (test A < B)
|
||||
# gt - greater than (test A > B)
|
||||
#
|
||||
# Additionally, the eq and ne operator can have a number after it to limit
|
||||
# the test to that number of minor versions.
|
||||
#
|
||||
# eq0 - equal up to the length of the shorter version
|
||||
# ne0 - not equal up to the length of the shorter version
|
||||
# eqN - equal up to N sub-version levels
|
||||
# neN - not equal up to N sub-version levels
|
||||
#
|
||||
# When the condition is true, shell commands ACTION-IF-TRUE are run,
|
||||
# otherwise shell commands ACTION-IF-FALSE are run. The environment
|
||||
# variable 'ax_compare_version' is always set to either 'true' or 'false'
|
||||
# as well.
|
||||
#
|
||||
# Examples:
|
||||
#
|
||||
# AX_COMPARE_VERSION([3.15.7],[lt],[3.15.8])
|
||||
# AX_COMPARE_VERSION([3.15],[lt],[3.15.8])
|
||||
#
|
||||
# would both be true.
|
||||
#
|
||||
# AX_COMPARE_VERSION([3.15.7],[eq],[3.15.8])
|
||||
# AX_COMPARE_VERSION([3.15],[gt],[3.15.8])
|
||||
#
|
||||
# would both be false.
|
||||
#
|
||||
# AX_COMPARE_VERSION([3.15.7],[eq2],[3.15.8])
|
||||
#
|
||||
# would be true because it is only comparing two minor versions.
|
||||
#
|
||||
# AX_COMPARE_VERSION([3.15.7],[eq0],[3.15])
|
||||
#
|
||||
# would be true because it is only comparing the lesser number of minor
|
||||
# versions of the two values.
|
||||
#
|
||||
# Note: The characters that separate the version numbers do not matter. An
|
||||
# empty string is the same as version 0. OP is evaluated by autoconf, not
|
||||
# configure, so must be a string, not a variable.
|
||||
#
|
||||
# The author would like to acknowledge Guido Draheim whose advice about
|
||||
# the m4_case and m4_ifvaln functions make this macro only include the
|
||||
# portions necessary to perform the specific comparison specified by the
|
||||
# OP argument in the final configure script.
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2008 Tim Toolan <toolan@ele.uri.edu>
|
||||
#
|
||||
# Copying and distribution of this file, with or without modification, are
|
||||
# permitted in any medium without royalty provided the copyright notice
|
||||
# and this notice are preserved. This file is offered as-is, without any
|
||||
# warranty.
|
||||
|
||||
#serial 13
|
||||
|
||||
dnl #########################################################################
|
||||
AC_DEFUN([AX_COMPARE_VERSION], [
|
||||
AC_REQUIRE([AC_PROG_AWK])
|
||||
|
||||
# Used to indicate true or false condition
|
||||
ax_compare_version=false
|
||||
|
||||
# Convert the two version strings to be compared into a format that
|
||||
# allows a simple string comparison. The end result is that a version
|
||||
# string of the form 1.12.5-r617 will be converted to the form
|
||||
# 0001001200050617. In other words, each number is zero padded to four
|
||||
# digits, and non digits are removed.
|
||||
AS_VAR_PUSHDEF([A],[ax_compare_version_A])
|
||||
A=`echo "$1" | sed -e 's/\([[0-9]]*\)/Z\1Z/g' \
|
||||
-e 's/Z\([[0-9]]\)Z/Z0\1Z/g' \
|
||||
-e 's/Z\([[0-9]][[0-9]]\)Z/Z0\1Z/g' \
|
||||
-e 's/Z\([[0-9]][[0-9]][[0-9]]\)Z/Z0\1Z/g' \
|
||||
-e 's/[[^0-9]]//g'`
|
||||
|
||||
AS_VAR_PUSHDEF([B],[ax_compare_version_B])
|
||||
B=`echo "$3" | sed -e 's/\([[0-9]]*\)/Z\1Z/g' \
|
||||
-e 's/Z\([[0-9]]\)Z/Z0\1Z/g' \
|
||||
-e 's/Z\([[0-9]][[0-9]]\)Z/Z0\1Z/g' \
|
||||
-e 's/Z\([[0-9]][[0-9]][[0-9]]\)Z/Z0\1Z/g' \
|
||||
-e 's/[[^0-9]]//g'`
|
||||
|
||||
dnl # In the case of le, ge, lt, and gt, the strings are sorted as necessary
|
||||
dnl # then the first line is used to determine if the condition is true.
|
||||
dnl # The sed right after the echo is to remove any indented white space.
|
||||
m4_case(m4_tolower($2),
|
||||
[lt],[
|
||||
ax_compare_version=`echo "x$A
|
||||
x$B" | sed 's/^ *//' | sort -r | sed "s/x${A}/false/;s/x${B}/true/;1q"`
|
||||
],
|
||||
[gt],[
|
||||
ax_compare_version=`echo "x$A
|
||||
x$B" | sed 's/^ *//' | sort | sed "s/x${A}/false/;s/x${B}/true/;1q"`
|
||||
],
|
||||
[le],[
|
||||
ax_compare_version=`echo "x$A
|
||||
x$B" | sed 's/^ *//' | sort | sed "s/x${A}/true/;s/x${B}/false/;1q"`
|
||||
],
|
||||
[ge],[
|
||||
ax_compare_version=`echo "x$A
|
||||
x$B" | sed 's/^ *//' | sort -r | sed "s/x${A}/true/;s/x${B}/false/;1q"`
|
||||
],[
|
||||
dnl Split the operator from the subversion count if present.
|
||||
m4_bmatch(m4_substr($2,2),
|
||||
[0],[
|
||||
# A count of zero means use the length of the shorter version.
|
||||
# Determine the number of characters in A and B.
|
||||
ax_compare_version_len_A=`echo "$A" | $AWK '{print(length)}'`
|
||||
ax_compare_version_len_B=`echo "$B" | $AWK '{print(length)}'`
|
||||
|
||||
# Set A to no more than B's length and B to no more than A's length.
|
||||
A=`echo "$A" | sed "s/\(.\{$ax_compare_version_len_B\}\).*/\1/"`
|
||||
B=`echo "$B" | sed "s/\(.\{$ax_compare_version_len_A\}\).*/\1/"`
|
||||
],
|
||||
[[0-9]+],[
|
||||
# A count greater than zero means use only that many subversions
|
||||
A=`echo "$A" | sed "s/\(\([[0-9]]\{4\}\)\{m4_substr($2,2)\}\).*/\1/"`
|
||||
B=`echo "$B" | sed "s/\(\([[0-9]]\{4\}\)\{m4_substr($2,2)\}\).*/\1/"`
|
||||
],
|
||||
[.+],[
|
||||
AC_WARNING(
|
||||
[invalid OP numeric parameter: $2])
|
||||
],[])
|
||||
|
||||
# Pad zeros at end of numbers to make same length.
|
||||
ax_compare_version_tmp_A="$A`echo $B | sed 's/./0/g'`"
|
||||
B="$B`echo $A | sed 's/./0/g'`"
|
||||
A="$ax_compare_version_tmp_A"
|
||||
|
||||
# Check for equality or inequality as necessary.
|
||||
m4_case(m4_tolower(m4_substr($2,0,2)),
|
||||
[eq],[
|
||||
test "x$A" = "x$B" && ax_compare_version=true
|
||||
],
|
||||
[ne],[
|
||||
test "x$A" != "x$B" && ax_compare_version=true
|
||||
],[
|
||||
AC_WARNING([invalid OP parameter: $2])
|
||||
])
|
||||
])
|
||||
|
||||
AS_VAR_POPDEF([A])dnl
|
||||
AS_VAR_POPDEF([B])dnl
|
||||
|
||||
dnl # Execute ACTION-IF-TRUE / ACTION-IF-FALSE.
|
||||
if test "$ax_compare_version" = "true" ; then
|
||||
m4_ifvaln([$4],[$4],[:])dnl
|
||||
m4_ifvaln([$5],[else $5])dnl
|
||||
fi
|
||||
]) dnl AX_COMPARE_VERSION
|
||||
12
linux/module_generator
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
SRC_LIBPNG="$(find ../src/thirdparty/libpng/ -name '*.c')"
|
||||
SRC_ZLIB="$(find ../sr/thirdpartyc/zlib/ -name '*.c')"
|
||||
SRC_ZVBI="$(find ../sr/thirdpartyc/zvbi/ -name '*.c')"
|
||||
SRC_CCX="$(find ../src/lib_ccx/ -name '*.c')"
|
||||
SRC_GPAC="$(find ../sr/thirdpartyc/gpacmp4/ -name '*.c')"
|
||||
SRC_HASH="$(find ../sr/thirdpartyc/lib_hash/ -name '*.c')"
|
||||
SRC_PROTOBUF="$(find ../src/thirdparty/protobuf-c/ -name '*.c')"
|
||||
SRC_UTF8PROC="../src/utf8proc/utf8proc.c"
|
||||
BLD_SOURCES="../src/ccextractor.c ../src/ccextractorapi_wrap.c $SRC_CCX $SRC_GPAC $SRC_ZLIB $SRC_ZVBI $SRC_LIBPNG $SRC_HASH $SRC_PROTOBUF $SRC_UTF8PROC"
|
||||
|
||||
python setup.py $BLD_SOURCES
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
echo "Obtaining Git commit"
|
||||
commit=(`git rev-parse HEAD 2>/dev/null`)
|
||||
if [ -z "$commit" ]; then
|
||||
@@ -21,7 +21,7 @@ fi
|
||||
if [ -z "$commit" ]; then
|
||||
commit="Unknown"
|
||||
fi
|
||||
builddate=`date +%Y-%m-%d`
|
||||
builddate=`date --utc --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y-%m-%d`
|
||||
echo "Storing variables in file"
|
||||
echo "Commit: $commit"
|
||||
echo "Date: $builddate"
|
||||
@@ -30,5 +30,5 @@ echo "#define CCX_CCEXTRACTOR_COMPILE_REAL_H" >> ../src/lib_ccx/compile_info_rea
|
||||
echo "#define GIT_COMMIT \"$commit\"" >> ../src/lib_ccx/compile_info_real.h
|
||||
echo "#define COMPILE_DATE \"$builddate\"" >> ../src/lib_ccx/compile_info_real.h
|
||||
echo "#endif" >> ../src/lib_ccx/compile_info_real.h
|
||||
echo "Stored all in compile.h"
|
||||
echo "Stored all in compile_info_real.h"
|
||||
echo "Done."
|
||||
|
||||
461
mac/Makefile.am
Normal file
@@ -0,0 +1,461 @@
|
||||
AUTOMAKE_OPTIONS = foreign
|
||||
ACLOCAL_AMFLAGS = -I m4/
|
||||
|
||||
bin_PROGRAMS = ccextractor
|
||||
ccextractor_SOURCES = \
|
||||
../src/ccextractor.c \
|
||||
../src/ccextractor.h \
|
||||
../src/thirdparty/gpacmp4/avc_ext.c \
|
||||
../src/thirdparty/gpacmp4/avilib.c \
|
||||
../src/thirdparty/gpacmp4/av_parsers.c \
|
||||
../src/thirdparty/gpacmp4/base_encoding.c \
|
||||
../src/thirdparty/gpacmp4/bitstream.c \
|
||||
../src/thirdparty/gpacmp4/box_code_3gpp.c \
|
||||
../src/thirdparty/gpacmp4/box_code_adobe.c \
|
||||
../src/thirdparty/gpacmp4/box_code_apple.c \
|
||||
../src/thirdparty/gpacmp4/box_code_base.c \
|
||||
../src/thirdparty/gpacmp4/box_code_drm.c \
|
||||
../src/thirdparty/gpacmp4/box_dump.c \
|
||||
../src/thirdparty/gpacmp4/box_code_meta.c \
|
||||
../src/thirdparty/gpacmp4/box_funcs.c \
|
||||
../src/thirdparty/gpacmp4/color.c \
|
||||
../src/thirdparty/gpacmp4/configfile.c \
|
||||
../src/thirdparty/gpacmp4/data_map.c \
|
||||
../src/thirdparty/gpacmp4/desc_private.c \
|
||||
../src/thirdparty/gpacmp4/descriptors.c \
|
||||
../src/thirdparty/gpacmp4/drm_sample.c \
|
||||
../src/thirdparty/gpacmp4/error.c \
|
||||
../src/thirdparty/gpacmp4/gpac_ogg.c \
|
||||
../src/thirdparty/gpacmp4/hint_track.c \
|
||||
../src/thirdparty/gpacmp4/hinting.c \
|
||||
../src/thirdparty/gpacmp4/ipmpx_code.c \
|
||||
../src/thirdparty/gpacmp4/ipmpx_parse.c \
|
||||
../src/thirdparty/gpacmp4/isom_intern.c \
|
||||
../src/thirdparty/gpacmp4/isom_read.c \
|
||||
../src/thirdparty/gpacmp4/isom_store.c \
|
||||
../src/thirdparty/gpacmp4/isom_write.c \
|
||||
../src/thirdparty/gpacmp4/list.c \
|
||||
../src/thirdparty/gpacmp4/math.c \
|
||||
../src/thirdparty/gpacmp4/media.c \
|
||||
../src/thirdparty/gpacmp4/media_odf.c \
|
||||
../src/thirdparty/gpacmp4/meta.c \
|
||||
../src/thirdparty/gpacmp4/movie_fragments.c \
|
||||
../src/thirdparty/gpacmp4/odf_code.c \
|
||||
../src/thirdparty/gpacmp4/odf_codec.c \
|
||||
../src/thirdparty/gpacmp4/odf_command.c \
|
||||
../src/thirdparty/gpacmp4/os_config_init.c \
|
||||
../src/thirdparty/gpacmp4/os_divers.c \
|
||||
../src/thirdparty/gpacmp4/os_file.c \
|
||||
../src/thirdparty/gpacmp4/qos.c \
|
||||
../src/thirdparty/gpacmp4/sample_descs.c \
|
||||
../src/thirdparty/gpacmp4/slc.c \
|
||||
../src/thirdparty/gpacmp4/stbl_read.c \
|
||||
../src/thirdparty/gpacmp4/stbl_write.c \
|
||||
../src/thirdparty/gpacmp4/track.c \
|
||||
../src/thirdparty/gpacmp4/tx3g.c \
|
||||
../src/thirdparty/gpacmp4/url.c \
|
||||
../src/thirdparty/gpacmp4/utf.c \
|
||||
../src/thirdparty/gpacmp4/os_thread.c \
|
||||
../src/thirdparty/gpacmp4/module.c \
|
||||
../src/thirdparty/gpacmp4/os_module.c \
|
||||
../src/thirdparty/gpacmp4/xml_parser.c \
|
||||
../src/thirdparty/gpacmp4/constants.c \
|
||||
../src/thirdparty/gpacmp4/gpac/avparse.h \
|
||||
../src/thirdparty/gpacmp4/gpac/base_coding.h \
|
||||
../src/thirdparty/gpacmp4/gpac/bitstream.h \
|
||||
../src/thirdparty/gpacmp4/gpac/color.h \
|
||||
../src/thirdparty/gpacmp4/gpac/config_file.h \
|
||||
../src/thirdparty/gpacmp4/gpac/configuration.h \
|
||||
../src/thirdparty/gpacmp4/gpac/constants.h \
|
||||
../src/thirdparty/gpacmp4/gpac/events_constants.h \
|
||||
../src/thirdparty/gpacmp4/gpac/ietf.h \
|
||||
../src/thirdparty/gpacmp4/gpac/isomedia.h \
|
||||
../src/thirdparty/gpacmp4/gpac/list.h \
|
||||
../src/thirdparty/gpacmp4/gpac/maths.h \
|
||||
../src/thirdparty/gpacmp4/gpac/media_tools.h \
|
||||
../src/thirdparty/gpacmp4/gpac/mpeg4_odf.h \
|
||||
../src/thirdparty/gpacmp4/gpac/network.h \
|
||||
../src/thirdparty/gpacmp4/gpac/revision.h \
|
||||
../src/thirdparty/gpacmp4/gpac/setup.h \
|
||||
../src/thirdparty/gpacmp4/gpac/tools.h \
|
||||
../src/thirdparty/gpacmp4/gpac/utf.h \
|
||||
../src/thirdparty/gpacmp4/gpac/version.h \
|
||||
../src/thirdparty/gpacmp4/gpac/iso639.h \
|
||||
../src/thirdparty/gpacmp4/gpac/internal/avilib.h \
|
||||
../src/thirdparty/gpacmp4/gpac/internal/isomedia_dev.h \
|
||||
../src/thirdparty/gpacmp4/gpac/internal/media_dev.h \
|
||||
../src/thirdparty/gpacmp4/gpac/internal/odf_dev.h \
|
||||
../src/thirdparty/gpacmp4/gpac/internal/odf_parse_common.h \
|
||||
../src/thirdparty/gpacmp4/gpac/internal/ogg.h \
|
||||
../src/thirdparty/libpng/pngstruct.h \
|
||||
../src/thirdparty/libpng/pngpriv.h \
|
||||
../src/thirdparty/libpng/pnginfo.h \
|
||||
../src/thirdparty/libpng/pnglibconf.h \
|
||||
../src/thirdparty/libpng/pngconf.h \
|
||||
../src/thirdparty/libpng/pngdebug.h \
|
||||
../src/thirdparty/libpng/png.h \
|
||||
../src/thirdparty/libpng/png.c \
|
||||
../src/thirdparty/libpng/pngerror.c \
|
||||
../src/thirdparty/libpng/pngget.c \
|
||||
../src/thirdparty/libpng/pngmem.c \
|
||||
../src/thirdparty/libpng/pngpread.c \
|
||||
../src/thirdparty/libpng/pngread.c \
|
||||
../src/thirdparty/libpng/pngrio.c \
|
||||
../src/thirdparty/libpng/pngrtran.c \
|
||||
../src/thirdparty/libpng/pngrutil.c \
|
||||
../src/thirdparty/libpng/pngset.c \
|
||||
../src/thirdparty/libpng/pngtrans.c \
|
||||
../src/thirdparty/libpng/pngwio.c \
|
||||
../src/thirdparty/libpng/pngwrite.c \
|
||||
../src/thirdparty/libpng/pngwtran.c \
|
||||
../src/thirdparty/libpng/pngwutil.c \
|
||||
../src/lib_ccx/ccx_common_common.h \
|
||||
../src/lib_ccx/ccx_common_option.h \
|
||||
../src/lib_ccx/utility.h \
|
||||
../src/lib_ccx/activity.h \
|
||||
../src/lib_ccx/asf_constants.h \
|
||||
../src/lib_ccx/avc_functions.h \
|
||||
../src/lib_ccx/bitstream.h \
|
||||
../src/lib_ccx/ccx_common_option.c \
|
||||
../src/lib_ccx/ccx_common_common.c \
|
||||
../src/lib_ccx/utility.c \
|
||||
../src/lib_ccx/activity.c \
|
||||
../src/lib_ccx/asf_functions.c \
|
||||
../src/lib_ccx/avc_functions.c \
|
||||
../src/lib_ccx/cc_bitstream.c \
|
||||
../src/lib_ccx/ccx_common_char_encoding.c \
|
||||
../src/lib_ccx/ccx_common_char_encoding.h \
|
||||
../src/lib_ccx/ccx_common_constants.c \
|
||||
../src/lib_ccx/ccx_common_constants.h \
|
||||
../src/lib_ccx/ccx_common_platform.h \
|
||||
../src/lib_ccx/ccx_common_structs.h \
|
||||
../src/lib_ccx/ccx_common_timing.c \
|
||||
../src/lib_ccx/ccx_common_timing.h \
|
||||
../src/lib_ccx/ccx_decoders_608.c \
|
||||
../src/lib_ccx/ccx_decoders_608.h \
|
||||
../src/lib_ccx/ccx_decoders_708.c \
|
||||
../src/lib_ccx/ccx_decoders_708_encoding.c \
|
||||
../src/lib_ccx/ccx_decoders_708_encoding.h \
|
||||
../src/lib_ccx/ccx_decoders_708.h \
|
||||
../src/lib_ccx/ccx_decoders_708_output.c \
|
||||
../src/lib_ccx/ccx_decoders_708_output.h \
|
||||
../src/lib_ccx/ccx_decoders_common.c \
|
||||
../src/lib_ccx/ccx_decoders_common.h \
|
||||
../src/lib_ccx/ccx_decoders_isdb.c \
|
||||
../src/lib_ccx/ccx_decoders_isdb.h \
|
||||
../src/lib_ccx/ccx_decoders_structs.h \
|
||||
../src/lib_ccx/ccx_decoders_vbi.c \
|
||||
../src/lib_ccx/ccx_decoders_vbi.h \
|
||||
../src/lib_ccx/ccx_decoders_xds.c \
|
||||
../src/lib_ccx/ccx_decoders_xds.h \
|
||||
../src/lib_ccx/ccx_demuxer.c \
|
||||
../src/lib_ccx/ccx_demuxer.h \
|
||||
../src/lib_ccx/ccx_demuxer_mxf.c \
|
||||
../src/lib_ccx/ccx_demuxer_mxf.h \
|
||||
../src/lib_ccx/ccx_dtvcc.c \
|
||||
../src/lib_ccx/ccx_dtvcc.h \
|
||||
../src/lib_ccx/ccx_encoders_common.c \
|
||||
../src/lib_ccx/ccx_encoders_common.h \
|
||||
../src/lib_ccx/ccx_encoders_curl.c \
|
||||
../src/lib_ccx/ccx_encoders_g608.c \
|
||||
../src/lib_ccx/ccx_encoders_helpers.c \
|
||||
../src/lib_ccx/ccx_encoders_helpers.h \
|
||||
../src/lib_ccx/ccx_encoders_mcc.c \
|
||||
../src/lib_ccx/ccx_encoders_mcc.h \
|
||||
../src/lib_ccx/ccx_encoders_sami.c \
|
||||
../src/lib_ccx/ccx_encoders_scc.c \
|
||||
../src/lib_ccx/ccx_encoders_smptett.c \
|
||||
../src/lib_ccx/ccx_encoders_splitbysentence.c \
|
||||
../src/lib_ccx/ccx_encoders_spupng.c \
|
||||
../src/lib_ccx/ccx_encoders_srt.c \
|
||||
../src/lib_ccx/ccx_encoders_ssa.c \
|
||||
../src/lib_ccx/ccx_encoders_structs.h \
|
||||
../src/lib_ccx/ccx_encoders_transcript.c \
|
||||
../src/lib_ccx/ccx_encoders_webvtt.c \
|
||||
../src/lib_ccx/ccx_encoders_xds.c \
|
||||
../src/lib_ccx/ccx_encoders_xds.h \
|
||||
../src/lib_ccx/ccx_gxf.c \
|
||||
../src/lib_ccx/ccx_gxf.h \
|
||||
../src/lib_ccx/ccx_mp4.h \
|
||||
../src/lib_ccx/ccx_share.c \
|
||||
../src/lib_ccx/ccx_share.h \
|
||||
../src/lib_ccx/ccx_sub_entry_message.pb-c.c \
|
||||
../src/lib_ccx/ccx_sub_entry_message.pb-c.h \
|
||||
../src/lib_ccx/compile_info.h \
|
||||
../src/lib_ccx/compile_info_real.h \
|
||||
../src/lib_ccx/configuration.c \
|
||||
../src/lib_ccx/configuration.h \
|
||||
../src/lib_ccx/disable_warnings.h \
|
||||
../src/lib_ccx/dvb_subtitle_decoder.c \
|
||||
../src/lib_ccx/dvb_subtitle_decoder.h \
|
||||
../src/lib_ccx/dvd_subtitle_decoder.c \
|
||||
../src/lib_ccx/dvd_subtitle_decoder.h \
|
||||
../src/lib_ccx/es_functions.c \
|
||||
../src/lib_ccx/es_userdata.c \
|
||||
../src/lib_ccx/ffmpeg_intgr.c \
|
||||
../src/lib_ccx/ffmpeg_intgr.h \
|
||||
../src/lib_ccx/file_buffer.h \
|
||||
../src/lib_ccx/file_functions.c \
|
||||
../src/lib_ccx/general_loop.c \
|
||||
../src/lib_ccx/hamming.h \
|
||||
../src/lib_ccx/hardsubx.c \
|
||||
../src/lib_ccx/hardsubx_classifier.c \
|
||||
../src/lib_ccx/hardsubx_decoder.c \
|
||||
../src/lib_ccx/hardsubx.h \
|
||||
../src/lib_ccx/hardsubx_imgops.c \
|
||||
../src/lib_ccx/hardsubx_utility.c \
|
||||
../src/lib_ccx/lib_ccx.c \
|
||||
../src/lib_ccx/lib_ccx.h \
|
||||
../src/lib_ccx/list.h \
|
||||
../src/lib_ccx/matroska.c \
|
||||
../src/lib_ccx/matroska.h \
|
||||
../src/lib_ccx/mp4.c \
|
||||
../src/lib_ccx/myth.c \
|
||||
../src/lib_ccx/networking.c \
|
||||
../src/lib_ccx/networking.h \
|
||||
../src/lib_ccx/ocr.c \
|
||||
../src/lib_ccx/ocr.h \
|
||||
../src/lib_ccx/output.c \
|
||||
../src/lib_ccx/params.c \
|
||||
../src/lib_ccx/params_dump.c \
|
||||
../src/lib_ccx/sequencing.c \
|
||||
../src/lib_ccx/stdintmsc.h \
|
||||
../src/lib_ccx/stream_functions.c \
|
||||
../src/lib_ccx/teletext.h \
|
||||
../src/lib_ccx/telxcc.c \
|
||||
../src/lib_ccx/ts_functions.c \
|
||||
../src/lib_ccx/ts_functions.h \
|
||||
../src/lib_ccx/ts_info.c \
|
||||
../src/lib_ccx/ts_tables.c \
|
||||
../src/lib_ccx/ts_tables_epg.c \
|
||||
../src/lib_ccx/wtv_constants.h \
|
||||
../src/lib_ccx/wtv_functions.c \
|
||||
../src/thirdparty/zlib/adler32.c \
|
||||
../src/thirdparty/zlib/compress.c \
|
||||
../src/thirdparty/zlib/crc32.c \
|
||||
../src/thirdparty/zlib/crc32.h \
|
||||
../src/thirdparty/zlib/deflate.c \
|
||||
../src/thirdparty/zlib/deflate.h \
|
||||
../src/thirdparty/zlib/gzclose.c \
|
||||
../src/thirdparty/zlib/gzguts.h \
|
||||
../src/thirdparty/zlib/gzlib.c \
|
||||
../src/thirdparty/zlib/gzread.c \
|
||||
../src/thirdparty/zlib/gzwrite.c \
|
||||
../src/thirdparty/zlib/infback.c \
|
||||
../src/thirdparty/zlib/inffast.c \
|
||||
../src/thirdparty/zlib/inffast.h \
|
||||
../src/thirdparty/zlib/inffixed.h \
|
||||
../src/thirdparty/zlib/inflate.c \
|
||||
../src/thirdparty/zlib/inflate.h \
|
||||
../src/thirdparty/zlib/inftrees.c \
|
||||
../src/thirdparty/zlib/inftrees.h \
|
||||
../src/thirdparty/zlib/trees.c \
|
||||
../src/thirdparty/zlib/trees.h \
|
||||
../src/thirdparty/zlib/uncompr.c \
|
||||
../src/thirdparty/zlib/zconf.h \
|
||||
../src/thirdparty/zlib/zlib.h \
|
||||
../src/thirdparty/zlib/zutil.c \
|
||||
../src/thirdparty/zlib/zutil.h \
|
||||
../src/thirdparty/utf8proc/utf8proc.c \
|
||||
../src/thirdparty/utf8proc/utf8proc.h \
|
||||
../src/thirdparty/lib_hash/sha2.c \
|
||||
../src/thirdparty/lib_hash/sha2.h \
|
||||
../src/thirdparty/protobuf-c/protobuf-c.c \
|
||||
../src/thirdparty/protobuf-c/protobuf-c.h \
|
||||
../src/lib_ccx/zvbi/bcd.h \
|
||||
../src/lib_ccx/zvbi/bit_slicer.c \
|
||||
../src/lib_ccx/zvbi/bit_slicer.h \
|
||||
../src/lib_ccx/zvbi/decoder.c \
|
||||
../src/lib_ccx/zvbi/macros.h \
|
||||
../src/lib_ccx/zvbi/misc.h \
|
||||
../src/lib_ccx/zvbi/raw_decoder.c \
|
||||
../src/lib_ccx/zvbi/raw_decoder.h \
|
||||
../src/lib_ccx/zvbi/sampling_par.c \
|
||||
../src/lib_ccx/zvbi/sampling_par.h \
|
||||
../src/lib_ccx/zvbi/sliced.h \
|
||||
../src/lib_ccx/zvbi/zvbi_decoder.h \
|
||||
../src/freetype/* \
|
||||
../src/thirdparty/freetype/autofit/autofit.c \
|
||||
../src/thirdparty/freetype/base/ftbase.c \
|
||||
../src/thirdparty/freetype/base/ftbbox.c \
|
||||
../src/thirdparty/freetype/base/ftbdf.c \
|
||||
../src/thirdparty/freetype/base/ftbitmap.c \
|
||||
../src/thirdparty/freetype/base/ftcid.c \
|
||||
../src/thirdparty/freetype/base/ftfntfmt.c \
|
||||
../src/thirdparty/freetype/base/ftfstype.c \
|
||||
../src/thirdparty/freetype/base/ftgasp.c \
|
||||
../src/thirdparty/freetype/base/ftglyph.c \
|
||||
../src/thirdparty/freetype/base/ftgxval.c \
|
||||
../src/thirdparty/freetype/base/ftinit.c \
|
||||
../src/thirdparty/freetype/base/ftlcdfil.c \
|
||||
../src/thirdparty/freetype/base/ftmm.c \
|
||||
../src/thirdparty/freetype/base/ftotval.c \
|
||||
../src/thirdparty/freetype/base/ftpatent.c \
|
||||
../src/thirdparty/freetype/base/ftpfr.c \
|
||||
../src/thirdparty/freetype/base/ftstroke.c \
|
||||
../src/thirdparty/freetype/base/ftsynth.c \
|
||||
../src/thirdparty/freetype/base/ftsystem.c \
|
||||
../src/thirdparty/freetype/base/fttype1.c \
|
||||
../src/thirdparty/freetype/base/ftwinfnt.c \
|
||||
../src/thirdparty/freetype/bdf/bdf.c \
|
||||
../src/thirdparty/freetype/bzip2/ftbzip2.c \
|
||||
../src/thirdparty/freetype/cache/ftcache.c \
|
||||
../src/thirdparty/freetype/cff/cff.c \
|
||||
../src/thirdparty/freetype/cid/type1cid.c \
|
||||
../src/thirdparty/freetype/gzip/ftgzip.c \
|
||||
../src/thirdparty/freetype/include/ft2build.h \
|
||||
../src/thirdparty/freetype/lzw/ftlzw.c \
|
||||
../src/thirdparty/freetype/pcf/pcf.c \
|
||||
../src/thirdparty/freetype/pfr/pfr.c \
|
||||
../src/thirdparty/freetype/psaux/psaux.c \
|
||||
../src/thirdparty/freetype/pshinter/pshinter.c \
|
||||
../src/thirdparty/freetype/psnames/psnames.c \
|
||||
../src/thirdparty/freetype/raster/raster.c \
|
||||
../src/thirdparty/freetype/sfnt/sfnt.c \
|
||||
../src/thirdparty/freetype/smooth/smooth.c \
|
||||
../src/thirdparty/freetype/truetype/truetype.c \
|
||||
../src/thirdparty/freetype/type1/type1.c \
|
||||
../src/thirdparty/freetype/type42/type42.c \
|
||||
../src/thirdparty/freetype/winfonts/winfnt.c
|
||||
|
||||
if SYS_IS_APPLE_SILICON
|
||||
ccextractor_SOURCES += ../src/thirdparty/libpng/arm/arm_init.c \
|
||||
../src/thirdparty/libpng/arm/filter_neon_intrinsics.c \
|
||||
../src/thirdparty/libpng/arm/palette_neon_intrinsics.c
|
||||
endif
|
||||
|
||||
ccextractor_CFLAGS = -std=gnu99 -Wno-write-strings -Wno-pointer-sign -D_FILE_OFFSET_BITS=64 -DVERSION_FILE_PRESENT -DFT2_BUILD_LIBRARY -DGPAC_DISABLE_VTT -DGPAC_DISABLE_OD_DUMP -DGPAC_DISABLE_REMOTERY -DNO_GZIP -DGPAC_HAVE_CONFIG_H
|
||||
|
||||
ccextractor_CPPFLAGS =-I../src/lib_ccx/ -I../src/thirdparty/gpacmp4/ -I../src/thirdparty/libpng/ -I../src/thirdparty/zlib/ -I../src/lib_ccx/zvbi/ -I../src/thirdparty/lib_hash/ -I../src/thirdparty/protobuf-c/ -I../src/thirdparty -I../src/ -I../src/thirdparty/freetype/include/
|
||||
|
||||
|
||||
ccextractor_LDADD=-lm -lpthread -ldl
|
||||
|
||||
if WITH_RUST
|
||||
ccextractor_LDADD += ./rust/@RUST_TARGET_SUBDIR@/libccx_rust.a
|
||||
else
|
||||
ccextractor_CFLAGS += -DDISABLE_RUST
|
||||
ccextractor_CPPFLAGS += -DDISABLE_RUST
|
||||
endif
|
||||
|
||||
if DEBUG_RELEASE
|
||||
CARGO_RELEASE_ARGS=
|
||||
else
|
||||
CARGO_RELEASE_ARGS=--release
|
||||
endif
|
||||
|
||||
./rust/@RUST_TARGET_SUBDIR@/libccx_rust.a:
|
||||
cd ../src/rust && \
|
||||
CARGO_TARGET_DIR=../../linux/rust $(CARGO) build $(CARGO_RELEASE_ARGS);
|
||||
|
||||
if SYS_IS_LINUX
|
||||
ccextractor_CFLAGS += -O3 -s -DGPAC_CONFIG_LINUX
|
||||
endif
|
||||
|
||||
if SYS_IS_MAC
|
||||
ccextractor_CFLAGS += -DPAC_CONFIG_DARWIN -Dfopen64=fopen -Dopen64=open -Dlseek64=lseek
|
||||
ccextractor_LDADD += -liconv -lz
|
||||
endif
|
||||
|
||||
if SYS_IS_64_BIT
|
||||
ccextractor_CFLAGS += -DGPAC_64_BITS
|
||||
endif
|
||||
|
||||
if HARDSUBX_IS_ENABLED
|
||||
ccextractor_CFLAGS += -DENABLE_HARDSUBX
|
||||
ccextractor_CPPFLAGS+= ${libavcodec_CFLAGS}
|
||||
ccextractor_CPPFLAGS+= ${libavformat_CFLAGS}
|
||||
ccextractor_CPPFLAGS+= ${libavutil_CFALGS}
|
||||
ccextractor_CPPFLAGS+= ${libswscale_CFLAGS}
|
||||
AV_LIB = ${libavcodec_LIBS}
|
||||
AV_LIB += ${libavformat_LIBS}
|
||||
AV_LIB += ${libavutil_LIBS}
|
||||
AV_LIB += ${libswscale_LIBS}
|
||||
ccextractor_LDADD += $(AV_LIB)
|
||||
endif
|
||||
|
||||
if OCR_IS_ENABLED
|
||||
ccextractor_CFLAGS += -DENABLE_OCR -DPN3G_NO_CONFIG_H
|
||||
LEPT_LIB = ${lept_LIBS}
|
||||
LEPT_CPPFLAG = ${lept_CFLAGS}
|
||||
|
||||
if TESSERACT_PRESENT
|
||||
TESS_LIB = ${tesseract_LIBS}
|
||||
TESS_CPPFLAG = ${tesseract_CFLAGS}
|
||||
else
|
||||
|
||||
#fix for raspberry pi not having a pkgconfig file for tesseract
|
||||
|
||||
if TESSERACT_PRESENT_RPI
|
||||
TESS_LIB = -ltesseract
|
||||
TESS_CPPFLAG = -I/usr/include/tesseract
|
||||
endif
|
||||
endif
|
||||
|
||||
ccextractor_CPPFLAGS += $(TESS_CPPFLAG)
|
||||
ccextractor_CPPFLAGS += $(LEPT_CPPFLAG)
|
||||
ccextractor_LDADD += $(TESS_LIB)
|
||||
ccextractor_LDADD += $(LEPT_LIB)
|
||||
endif
|
||||
|
||||
EXTRA_DIST = ../src/thirdparty/gpacmp4/gpac/sync_layer.h ../src/lib_ccx/ccfont2.xbm ../src/thirdparty/utf8proc/utf8proc_data.c fonts/ icon/
|
||||
|
||||
#For GUI
|
||||
if BUILD_WITH_GUI
|
||||
bin_PROGRAMS += ccextractorGUI
|
||||
|
||||
ccextractorGUI_SOURCES = \
|
||||
../src/GUI/ccextractorGUI.c \
|
||||
../src/GUI/ccextractorGUI.h \
|
||||
../src/GUI/activity.c \
|
||||
../src/GUI/activity.h \
|
||||
../src/GUI/terminal.c \
|
||||
../src/GUI/preview.c \
|
||||
../src/GUI/preview.h \
|
||||
../src/GUI/ccx_cli_thread.c \
|
||||
../src/GUI/ccx_cli_thread.h \
|
||||
../src/GUI/command_builder.c \
|
||||
../src/GUI/command_builder.h \
|
||||
../src/GUI/save_load_data.c \
|
||||
../src/GUI/save_load_data.h \
|
||||
../src/GUI/file_browser.c \
|
||||
../src/GUI/file_browser.h \
|
||||
../src/GUI/popups.c \
|
||||
../src/GUI/popups.h \
|
||||
../src/GUI/tabs.c \
|
||||
../src/GUI/tabs.h \
|
||||
../src/GUI/stb_image.h \
|
||||
../src/GUI/nuklear_lib/nuklear.h \
|
||||
../src/GUI/nuklear_lib/nuklear_glfw_gl2.h
|
||||
|
||||
ccextractorGUI_CFLAGS = -std=gnu99
|
||||
|
||||
|
||||
ccextractorGUI_LDADD = ${glfw3_LIBS}
|
||||
|
||||
|
||||
if SYS_IS_LINUX
|
||||
ccextractorGUI_CFLAGS += -s -O3 -DUNIX
|
||||
ccextractorGUI_CFLAGS += ${glew_CFLAGS}
|
||||
ccextractorGUI_LDADD += ${glew_LIBS}
|
||||
ccextractorGUI_LDADD += -lX11 -lXinerama -lXcursor -lXi -lXrandr -lXxf86vm -lm -ldl -lpthread
|
||||
endif
|
||||
|
||||
if SYS_IS_MAC
|
||||
ccextractorGUI_CFLAGS += -O3 -DUNIX
|
||||
ccextractorGUI_CFLAGS += ${glew_CFLAGS}
|
||||
ccextractorGUI_LDADD += ${glew_LIBS}
|
||||
ccextractorGUI_LDFLAGS = -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo
|
||||
ccextractorGUI_LDADD += -lglfw -lm -L/usr/local/lib -lpthread
|
||||
endif
|
||||
|
||||
if HARDSUBX_IS_ENABLED
|
||||
if OCR_IS_ENABLED
|
||||
ccextractorGUI_CFLAGS += -DENABLE_OCR
|
||||
endif
|
||||
endif
|
||||
|
||||
EXTRA_DIST += ../icon/ ../fonts/
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
Note: I don't currently have a Mac to test Mac builds. An effort is done to ensure that CCExtractor is portable,
|
||||
which is why it compiles and works in Mac without any effort. But the build script (any of its 2 lines) is not
|
||||
maintained. If it doesn't compile for this version please fix and send me the new file so I can add it to the
|
||||
official version.
|
||||
|
||||
I know this sucks but I can't really do much more.
|
||||
|
||||
Carlos
|
||||
4
mac/autogen.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
./pre-build.sh
|
||||
autoreconf -i
|
||||
@@ -1,17 +1,60 @@
|
||||
#!/bin/bash
|
||||
cd `dirname $0`
|
||||
BLD_FLAGS="-std=gnu99 -Wno-write-strings -DGPAC_CONFIG_DARWIN -D_FILE_OFFSET_BITS=64 -DVERSION_FILE_PRESENT -Dfopen64=fopen -Dopen64=open -Dlseek64=lseek"
|
||||
BLD_INCLUDE="-I../src/lib_ccx -I../src/gpacmp4 -I../src/libpng -I../src/zlib -I../src/zvbi -I../src/lib_hash"
|
||||
SRC_LIBPNG="$(find ../src/libpng -name '*.c')"
|
||||
SRC_ZLIB="$(find ../src/zlib -name '*.c')"
|
||||
SRC_ZVBI="$(find ../src/zvbi -name '*.c')"
|
||||
BLD_FLAGS="-std=gnu99 -Wno-write-strings -Wno-pointer-sign -DGPAC_CONFIG_DARWIN -D_FILE_OFFSET_BITS=64 -DVERSION_FILE_PRESENT -Dfopen64=fopen -Dopen64=open -Dlseek64=lseek -DFT2_BUILD_LIBRARY -DGPAC_DISABLE_VTT -DGPAC_DISABLE_OD_DUMP -DGPAC_DISABLE_REMOTERY -DNO_GZIP -DGPAC_HAVE_CONFIG_H -DDISABLE_RUST"
|
||||
[[ $1 = "OCR" ]] && BLD_FLAGS="$BLD_FLAGS -DENABLE_OCR"
|
||||
BLD_INCLUDE="-I../src/ -I../src/lib_ccx -I../src/thirdparty/gpacmp4 -I../src/lib_hash -I../src/thirdparty/libpng -I../src/thirdparty -I../src/thirdparty/protobuf-c -I../src/thirdparty/zlib -I../src/thirdparty/freetype/include"
|
||||
[[ $1 = "OCR" ]] && BLD_INCLUDE="$BLD_INCLUDE `pkg-config --cflags --silence-errors tesseract`"
|
||||
SRC_CCX="$(find ../src/lib_ccx -name '*.c')"
|
||||
SRC_GPAC="$(find ../src/gpacmp4 -name '*.c')"
|
||||
SRC_LIB_HASH="$(find ../src/lib_hash -name '*.c')"
|
||||
BLD_SOURCES="../src/ccextractor.c $SRC_CCX $SRC_GPAC $SRC_ZVBI $SRC_ZLIB $SRC_LIBPNG $SRC_LIB_HASH"
|
||||
BLD_LINKER="-lm -liconv"
|
||||
SRC_GPAC="$(find ../src/thirdparty/gpacmp4 -name '*.c')"
|
||||
SRC_LIB_HASH="$(find ../src/thirdparty/lib_hash -name '*.c')"
|
||||
SRC_LIBPNG="$(find ../src/thirdparty/libpng -name '*.c')"
|
||||
SRC_PROTOBUF="$(find ../src/thirdparty/protobuf-c -name '*.c')"
|
||||
SRC_UTF8="../src/thirdparty/utf8proc/utf8proc.c"
|
||||
SRC_ZLIB="$(find ../src/thirdparty/zlib -name '*.c')"
|
||||
SRC_FREETYPE="../src/thirdparty/freetype/autofit/autofit.c \
|
||||
../src/thirdparty/freetype/base/ftbase.c \
|
||||
../src/thirdparty/freetype/base/ftbbox.c \
|
||||
../src/thirdparty/freetype/base/ftbdf.c \
|
||||
../src/thirdparty/freetype/base/ftbitmap.c \
|
||||
../src/thirdparty/freetype/base/ftcid.c \
|
||||
../src/thirdparty/freetype/base/ftfntfmt.c \
|
||||
../src/thirdparty/freetype/base/ftfstype.c \
|
||||
../src/thirdparty/freetype/base/ftgasp.c \
|
||||
../src/thirdparty/freetype/base/ftglyph.c \
|
||||
../src/thirdparty/freetype/base/ftgxval.c \
|
||||
../src/thirdparty/freetype/base/ftinit.c \
|
||||
../src/thirdparty/freetype/base/ftlcdfil.c \
|
||||
../src/thirdparty/freetype/base/ftmm.c \
|
||||
../src/thirdparty/freetype/base/ftotval.c \
|
||||
../src/thirdparty/freetype/base/ftpatent.c \
|
||||
../src/thirdparty/freetype/base/ftpfr.c \
|
||||
../src/thirdparty/freetype/base/ftstroke.c \
|
||||
../src/thirdparty/freetype/base/ftsynth.c \
|
||||
../src/thirdparty/freetype/base/ftsystem.c \
|
||||
../src/thirdparty/freetype/base/fttype1.c \
|
||||
../src/thirdparty/freetype/base/ftwinfnt.c \
|
||||
../src/thirdparty/freetype/bdf/bdf.c \
|
||||
../src/thirdparty/freetype/bzip2/ftbzip2.c \
|
||||
../src/thirdparty/freetype/cache/ftcache.c \
|
||||
../src/thirdparty/freetype/cff/cff.c \
|
||||
../src/thirdparty/freetype/cid/type1cid.c \
|
||||
../src/thirdparty/freetype/gzip/ftgzip.c \
|
||||
../src/thirdparty/freetype/lzw/ftlzw.c \
|
||||
../src/thirdparty/freetype/pcf/pcf.c \
|
||||
../src/thirdparty/freetype/pfr/pfr.c \
|
||||
../src/thirdparty/freetype/psaux/psaux.c \
|
||||
../src/thirdparty/freetype/pshinter/pshinter.c \
|
||||
../src/thirdparty/freetype/psnames/psnames.c \
|
||||
../src/thirdparty/freetype/raster/raster.c \
|
||||
../src/thirdparty/freetype/sfnt/sfnt.c \
|
||||
../src/thirdparty/freetype/smooth/smooth.c \
|
||||
../src/thirdparty/freetype/truetype/truetype.c \
|
||||
../src/thirdparty/freetype/type1/type1.c \
|
||||
../src/thirdparty/freetype/type42/type42.c \
|
||||
../src/thirdparty/freetype/winfonts/winfnt.c"
|
||||
BLD_SOURCES="../src/ccextractor.c $SRC_API $SRC_CCX $SRC_GPAC $SRC_LIB_HASH $SRC_LIBPNG $SRC_PROTOBUF $SRC_UTF8 $SRC_ZLIB $SRC_ZVBI $SRC_FREETYPE"
|
||||
BLD_LINKER="-lm -liconv -lpthread -ldl"
|
||||
[[ $1 = "OCR" ]] && BLD_LINKER="$BLD_LINKER `pkg-config --libs --silence-errors tesseract` `pkg-config --libs --silence-errors lept`"
|
||||
|
||||
./pre-build.sh
|
||||
gcc $BLD_FLAGS $BLD_INCLUDE -o ccextractor $BLD_SOURCES $BLD_LINKER
|
||||
|
||||
|
||||
|
||||
4
mac/cleanup
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
make distclean > /dev/null 2>&1 || true
|
||||
rm -rf Makefile configure *.in config.status config.log aclocal.m4 build-conf autom4te.cache
|
||||
165
mac/configure.ac
Normal file
@@ -0,0 +1,165 @@
|
||||
# -*- Autoconf -*-
|
||||
# Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_PREREQ([2.71])
|
||||
AC_INIT([CCExtractor],[0.94],[carlos@ccextractor.org])
|
||||
AC_CONFIG_AUX_DIR([build-conf])
|
||||
AC_CONFIG_SRCDIR([../src/ccextractor.c])
|
||||
AM_INIT_AUTOMAKE([foreign subdir-objects])
|
||||
AC_CONFIG_MACRO_DIRS([m4])
|
||||
|
||||
# Checks for programs.
|
||||
AC_PROG_CC
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_MAKE_SET
|
||||
|
||||
#Checks for "pkg-config" utility
|
||||
AC_MSG_CHECKING([pkg-config m4 macros])
|
||||
if test m4_ifdef([PKG_CHECK_MODULES], [yes], [no]) == yes; then
|
||||
AC_MSG_RESULT([yes]);
|
||||
else
|
||||
AC_MSG_RESULT([no]);
|
||||
AC_MSG_ERROR([
|
||||
pkg-config is required.])
|
||||
fi
|
||||
|
||||
# Checks for libraries.
|
||||
AC_CHECK_LIB([m], [sin], [], [AC_MSG_ERROR(Math library not installed. Install it before proceeding.)])
|
||||
AC_CHECK_LIB([lept], [getLeptonicaVersion], [HAS_LEPT=1 && PKG_CHECK_MODULES([lept], [lept])], [HAS_LEPT=0])
|
||||
AC_CHECK_LIB([tesseract], [TessVersion], [HAS_TESSERACT=1 && PKG_CHECK_MODULES([tesseract], [tesseract])], [HAS_TESSERACT=0])
|
||||
AC_CHECK_LIB([avcodec], [avcodec_version], [HAS_AVCODEC=1 && PKG_CHECK_MODULES([libavcodec], [libavcodec])], [HAS_AVCODEC=0])
|
||||
AC_CHECK_LIB([avformat], [avformat_version], [HAS_AVFORMAT=1 && PKG_CHECK_MODULES([libavformat], [libavformat])], [HAS_AVFORMAT=0])
|
||||
AC_CHECK_LIB([avutil], [avutil_version], [HAS_AVUTIL=1 && PKG_CHECK_MODULES([libavutil], [libavutil])], [HAS_AVUTIL=0])
|
||||
AC_CHECK_LIB([swscale], [swscale_version], [HAS_SWSCALE=1 && PKG_CHECK_MODULES([libswscale], [libswscale])], [HAS_SWSCALE=0])
|
||||
|
||||
# Checks for header files.
|
||||
AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h limits.h locale.h malloc.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h sys/socket.h sys/time.h sys/timeb.h termios.h unistd.h wchar.h])
|
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_CHECK_HEADER_STDBOOL
|
||||
AC_C_INLINE
|
||||
AC_TYPE_INT16_T
|
||||
AC_TYPE_INT32_T
|
||||
AC_TYPE_INT64_T
|
||||
AC_TYPE_INT8_T
|
||||
AC_TYPE_OFF_T
|
||||
AC_TYPE_PID_T
|
||||
AC_TYPE_SIZE_T
|
||||
AC_TYPE_SSIZE_T
|
||||
AC_TYPE_UINT16_T
|
||||
AC_TYPE_UINT32_T
|
||||
AC_TYPE_UINT64_T
|
||||
AC_TYPE_UINT8_T
|
||||
AC_CHECK_TYPES([ptrdiff_t])
|
||||
|
||||
# Checks for library functions.
|
||||
AC_FUNC_ERROR_AT_LINE
|
||||
AC_FUNC_FSEEKO
|
||||
AC_FUNC_MALLOC
|
||||
AC_FUNC_MKTIME
|
||||
AC_FUNC_REALLOC
|
||||
AC_FUNC_STRERROR_R
|
||||
AC_CHECK_FUNCS([floor ftruncate gethostbyname gettimeofday inet_ntoa mblen memchr memmove memset mkdir modf pow realpath rmdir select setlocale socket sqrt strcasecmp strchr strdup strerror strndup strrchr strstr strtol])
|
||||
|
||||
# Checks for arguments with configure
|
||||
AC_ARG_ENABLE([hardsubx],
|
||||
AS_HELP_STRING([--enable-hardsubx],[Enables extraction of burnt subtitles (hard subtitles)]),
|
||||
[case "${enableval}" in
|
||||
yes) hardsubx=true ;;
|
||||
no) hardsubx=false ;;
|
||||
*) AC_MSG_ERROR([bad value ${enableval} for --enable-hardsubx]) ;;
|
||||
esac],[hardsubx=false])
|
||||
|
||||
AC_ARG_ENABLE([ocr],
|
||||
AS_HELP_STRING([--enable-ocr],[Enables Optical Character Recognition]),
|
||||
[case "${enableval}" in
|
||||
yes) ocr=true ;;
|
||||
no) ocr=false ;;
|
||||
*) AC_MSG_ERROR([bad value ${enableval} for --enable-ocr]) ;;
|
||||
esac],[ocr=false])
|
||||
|
||||
AC_ARG_ENABLE([ffmpeg],
|
||||
AS_HELP_STRING([--enable-ffmpeg],[Enable FFmpeg integration]),
|
||||
[case "${enableval}" in
|
||||
yes) ffmpeg=true ;;
|
||||
no) ffmpeg=false ;;
|
||||
*) AC_MSG_ERROR([bad value ${enableval} for --enable-ffmpeg]) ;;
|
||||
esac],[ffmpeg=false])
|
||||
|
||||
AC_ARG_WITH([gui],
|
||||
AS_HELP_STRING([--with-gui],[Builds CCExtractor with GUI (requires GLFW and GLEW)]),
|
||||
[PKG_CHECK_MODULES([glfw3], [glfw3]) && PKG_CHECK_MODULES([glew], [glew])],
|
||||
[with_gui=no])
|
||||
|
||||
#Add argument for rust
|
||||
AC_ARG_WITH([rust],
|
||||
AS_HELP_STRING([--with-rust],[Builds CCExtractor with rust library]),
|
||||
[with_rust=$withval],
|
||||
[with_rust=yes])
|
||||
|
||||
AC_MSG_CHECKING(whether to build with rust library)
|
||||
if test "x$with_rust" = "xyes" ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
|
||||
#Check if cargo and rust is installed
|
||||
AC_PATH_PROG([CARGO], [cargo], [notfound])
|
||||
AS_IF([test "$CARGO" = "notfound"], [AC_MSG_ERROR([cargo is required])])
|
||||
|
||||
AC_PATH_PROG([RUSTC], [rustc], [notfound])
|
||||
AS_IF([test "$RUSTC" = "notfound"], [AC_MSG_ERROR([rustc is required])])
|
||||
|
||||
rustc_version=$(rustc --version)
|
||||
MSRV="1.54.0"
|
||||
AX_COMPARE_VERSION($rustc_version, [ge], [$MSRV],
|
||||
[AC_MSG_RESULT(rustc >= $MSRV)],
|
||||
[AC_MSG_ERROR([Minimum supported rust version(MSRV) is $MSRV, please upgrade rust])])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
AM_CONDITIONAL([WITH_RUST], [test "x$with_rust" = "xyes"])
|
||||
|
||||
AC_ARG_ENABLE(debug,
|
||||
AS_HELP_STRING([--enable-debug],[Build Rust code with debugging information [default=no]]),
|
||||
[debug_release=$enableval],
|
||||
[debug_release=no])
|
||||
|
||||
AC_MSG_CHECKING(whether to build Rust code with debugging information)
|
||||
if test "x$debug_release" = "xyes" ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
RUST_TARGET_SUBDIR=debug
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
RUST_TARGET_SUBDIR=release
|
||||
fi
|
||||
AM_CONDITIONAL([DEBUG_RELEASE], [test "x$debug_release" = "xyes"])
|
||||
|
||||
AC_SUBST([RUST_TARGET_SUBDIR])
|
||||
|
||||
#Checks and prompts if libraries found/not found to avoid failure while building
|
||||
AS_IF([ test x$hardsubx = xtrue && test $HAS_AVCODEC -gt 0 ], [AC_MSG_NOTICE(avcodec library found)])
|
||||
AS_IF([ test x$hardsubx = xtrue && test ! $HAS_AVCODEC -gt 0 ], [AC_MSG_ERROR(avcodec library not found. Please install the avcodec library before proceeding)])
|
||||
AS_IF([ test x$hardsubx = xtrue && test $HAS_AVFORMAT -gt 0 ], [AC_MSG_NOTICE(avformat library found)])
|
||||
AS_IF([ test x$hardsubx = xtrue && test ! $HAS_AVFORMAT -gt 0 ], [AC_MSG_ERROR(avformat library not found. Please install the avformat library before proceeding)])
|
||||
AS_IF([ test x$hardsubx = xtrue && test $HAS_AVUTIL -gt 0 ], [AC_MSG_NOTICE(avutil library found)])
|
||||
AS_IF([ test x$hardsubx = xtrue && test ! $HAS_AVUTIL -gt 0 ], [AC_MSG_ERROR(avutil library not found. Please install the avutil library before proceeding)])
|
||||
AS_IF([ test x$hardsubx = xtrue && test $HAS_SWSCALE -gt 0 ], [AC_MSG_NOTICE(swscale library found)])
|
||||
AS_IF([ test x$hardsubx = xtrue && test ! $HAS_SWSCALE -gt 0 ], [AC_MSG_ERROR(swscale library not found. Please install the swscale library before proceeding)])
|
||||
AS_IF([ (test x$ocr = xtrue || test x$hardsubx = xtrue) && test $HAS_TESSERACT -gt 0 ], [TESS_VERSION=`tesseract --version 2>&1 | grep tesseract` && AC_MSG_NOTICE(tesseract library found... $TESS_VERSION)])
|
||||
AS_IF([ (test x$ocr = xtrue || test x$hardsubx = xtrue) && test ! $HAS_TESSERACT -gt 0 ], [AC_MSG_ERROR(tesserect library not found. Please install the tesseract library before proceeding)])
|
||||
AS_IF([ (test x$ocr = xtrue || test x$hardsubx = xtrue) && test $HAS_LEPT -gt 0 ], [LEPT_VERSION=`tesseract --version 2>&1 | grep leptonica` && AC_MSG_NOTICE(leptonica library found... $LEPT_VERSION)])
|
||||
AS_IF([ (test x$ocr = xtrue || test x$hardsubx = xtrue) && test ! $HAS_LEPT -gt 0 ], [AC_MSG_ERROR(leptonica library not found. Please install the leptonica library before proceeding)])
|
||||
|
||||
#AM_CONDITIONAL(s) for setting values to enable/disable flags in Makefile.am
|
||||
AM_CONDITIONAL(HARDSUBX_IS_ENABLED, [ test x$hardsubx = xtrue ])
|
||||
AM_CONDITIONAL(OCR_IS_ENABLED, [ test x$ocr = xtrue || test x$hardsubx = xtrue ])
|
||||
AM_CONDITIONAL(FFMPEG_IS_ENABLED, [ test x$ffmpeg = xtrue ])
|
||||
AM_CONDITIONAL(TESSERACT_PRESENT, [ test ! -z `pkg-config --libs-only-l --silence-errors tesseract` ])
|
||||
AM_CONDITIONAL(TESSERACT_PRESENT_RPI, [ test -d "/usr/include/tesseract" && test `ls -A /usr/include/tesseract | wc -l` -gt 0 ])
|
||||
AM_CONDITIONAL(SYS_IS_LINUX, [ test `uname -s` = "Linux"])
|
||||
AM_CONDITIONAL(SYS_IS_MAC, [ test `uname -s` = "Darwin"])
|
||||
AM_CONDITIONAL(SYS_IS_APPLE_SILICON, [ test `uname -a | awk '{print $NF}'` = "arm64" ])
|
||||
AM_CONDITIONAL(BUILD_WITH_GUI, [test "x$with_gui" = "xyes"])
|
||||
AM_CONDITIONAL(SYS_IS_64_BIT,[test `getconf LONG_BIT` = "64"])
|
||||
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
AC_OUTPUT
|
||||
BIN
mac/gui/InstallCCExtractorMacGUI.app.zip
Normal file
BIN
mac/gui/InstallCCExtractorMacGUI.app/Contents/Info.plist
Normal file
BIN
mac/gui/InstallCCExtractorMacGUI.app/Contents/MacOS/InstallCCExtractorMacGUI
Executable file
BIN
mac/gui/InstallCCExtractorMacGUI.app/Contents/Resources/MainMenu.nib
generated
Normal file
BIN
mac/gui/InstallCCExtractorMacGUI.app/Contents/Resources/script
Executable file
2
mac/gui/README.md
Normal file
@@ -0,0 +1,2 @@
|
||||
## Simple MacOS GUI for CCExtractor
|
||||
This is a simple GUI for MacOS. It was generated using the open source Platypus tool created by [Sveinbjörn Þórðarson](https://sveinbjorn.org). You can learn more about Platypus [here.](https://sveinbjorn.org/platypus) It is recommended if you need more customization please use the CLI tool as this app only has the default settings.
|
||||
BIN
mac/gui/src/CCExtractor.app/Contents/Info.plist
Normal file
BIN
mac/gui/src/CCExtractor.app/Contents/MacOS/CCExtractor
Executable file
BIN
mac/gui/src/CCExtractor.app/Contents/Resources/AppIcon.icns
Normal file
BIN
mac/gui/src/CCExtractor.app/Contents/Resources/AppSettings.plist
Normal file
BIN
mac/gui/src/CCExtractor.app/Contents/Resources/MainMenu.nib
generated
Normal file
12
mac/gui/src/CCExtractor.app/Contents/Resources/script
Executable file
@@ -0,0 +1,12 @@
|
||||
/usr/local/bin/ccextractor $1
|
||||
|
||||
function display() {
|
||||
osascript <<EOT
|
||||
tell app "System Events"
|
||||
display dialog "$1" buttons {"OK"} default button 1 with title "CCExtractor"
|
||||
return
|
||||
end tell
|
||||
EOT
|
||||
}
|
||||
echo "Done"
|
||||
display "Process Complete. Check the source file's folder for the subtitles."
|
||||
BIN
mac/gui/src/CCExtractor.dmg
Normal file
25
mac/gui/src/HowToGenerateApp.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# HowToGenerateApp
|
||||
|
||||
## Main App
|
||||
|
||||
Script Type: Shell
|
||||
|
||||
Script Path: script.sh located in src folder
|
||||
|
||||
Interface: Droplet
|
||||
|
||||
Remain running after execution: Enabled
|
||||
|
||||
Accept Dropped Files: Enabled
|
||||
|
||||
## Install App
|
||||
|
||||
Script Type: Apple Script
|
||||
|
||||
Script Path: InstallCCExtractor.scpt located in src folder
|
||||
|
||||
Interface: Progress Bar
|
||||
|
||||
Bundled Files: CCExtractor.dmg located in src folder
|
||||
|
||||
Remain running after execution: Disabled
|
||||