Compare commits

..

722 Commits

Author SHA1 Message Date
canihavesomecoffee
7fdf31238a Backport the workflows and adapt release to only create portable version 2022-01-08 18:37:56 +01:00
carlos@ccextractor.org
1d7589e653 Bump version to 0.89 2021-06-13 19:05:33 +00:00
PunitLodha
e09abe7a83 Fix column length (#1345)
* Fix column length
Don't take column length from curr_window, as row could from any window

* update CHANGES.TXT
2021-06-11 07:39:31 -07:00
canihavesomecoffee
e86e8692a8 Fix formatting for mp4.c 2021-06-11 00:01:10 +02:00
canihavesomecoffee
961bfda727 Clang-format mp4.c, ocr.c and ts_functions.c 2021-06-10 23:57:18 +02:00
canihavesomecoffee
8218d5ff73 Do not run format on thirdparty or zvbi libraries 2021-06-10 23:54:47 +02:00
canihavesomecoffee
5850ef073d Apply clang-format
Apply to:
- ccextractor.c
- lib_ccx:
-- ccx_common_option.c
-- ccx_common_timing.c
-- ccx_encoders_common.c
-- general_loop.c
-- mp4.c
-- output.c
-- sequencing.c
2021-06-10 23:47:17 +02:00
Willem
7347440277 [FIX] Attempt to fix long-running regression in TeleText (#1341)
* Attempt to fix long-running regression in TeleText

Regression test 78 (https://sampleplatform.ccextractor.org/regression/test/78/view)
has been broken since #614 was merged to fix other issues.

It's been traced back to be caused by not setting t0 at the correct time
(setting it using a calculated PTS time rather than taking it from the video frame),
and this commits attempts to fix that.

* Add changes

* Clang-format changes

* Improved fix

This uses the current_pts rather than the min_pts because the value
of the delta should be relative to when the packet was received.

If min_pts wasn't set yet, it'll be retrieved and set as current_pts

* Fixup
2021-06-10 14:38:03 -07:00
PunitLodha
4007198342 fix for missing subtitles (#1344)
Avoid overwriting data, by processing it first
2021-06-10 08:01:28 -07:00
carlos@ccextractor.org
c09524d043 Add build notes for hardsubx on debian 2021-06-08 17:57:22 +00:00
carlos@ccextractor.org
d81c692bbb Fix frame number calculation in SCC. Closes #1340 2021-06-08 15:00:21 +00:00
PunitLodha
6d366bfdc6 fix for timing 0:00, when -dru is selected (#1342) 2021-06-05 08:30:29 -07:00
Carlos Fernandez Sanz
ceb0110378 Initialize MXFContext when the input format is manually specified.
Closes #1336
2021-06-01 15:02:51 -07:00
PunitLodha
f06436c1fe Fix min and max fts when PTS resets (#1338) 2021-05-27 08:03:43 -07:00
Carlos Fernandez Sanz
67e15aaf80 memset write structure on allocation.
Closes #1337
2021-05-26 15:12:57 -07:00
emkman99
5b29ef281a [FIX] Multitrack, WebVTT, and Segfault issues (#1332)
* [FIX] Must have two newlines after WEBVTT header

Bug introduced in #1092

* [FIX] segfault with multitrack reports

* [FIX] segfault with unsupported file reports

* [FIX] Write subtitle header to multitrack outputs

* [FIX] Write multitrack files to the output file directory
2021-05-19 14:28:06 -07:00
Jayesh Nirve
24b90970c7 modify gui output for easier parsing (#1335)
* modify gui output for easier parsing

* fix formatting

* make time tag consistent with subtitle
2021-05-18 21:21:47 -07:00
dependabot[bot]
84e6891922 Bump actions/checkout from 2 to 2.3.4 (#1334)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 2.3.4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v2.3.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-11 20:11:18 +02:00
Werner Robitza
0dcdf72042 fix links (#1333)
* fix links

Fix various links to the new website

* Update CHANGES.TXT
2021-05-10 11:58:02 -07:00
Suvigya
e3b939baad [FIX] Removed extra lines of code which added extra p tags (#1331)
* [FIX] Removed extra lines of code which added extra p tags

* [FIX] Removed extra lines of code which added extra p tags
2021-05-02 10:53:10 -07:00
KW781
0e5910ebee Update ts_functions.c (#1326)
Get rid of get_video_min_pts() as described in issue #1303
2021-05-02 10:51:32 -07:00
pranavrajpal
8a81a57a24 [IMPROVEMENT] Update GPAC to version 1.0.1 (#1328)
* Add update_gpac.py

Add a Python script that partially automates updating GPAC to a newer
version.

* Update GPAC to version 1.0.1

Update the vendored version of GPAC to version 1.0.1.

* Add necessary GPAC header files

Add some GPAC header files that GPAC needs to compile.

* Define _GF_CONFIG_H_ to fix Linux build failing

gpac/configuration.h has a series of default configuration options for
various platforms, but it doesn't have a case for Linux and it results
in a compilation error if it encounters an unknown platform.

The settings in configuration.h don't appear to try to set any defaults
for Linux anyway, so we can disable all use of those configuration.h
settings by defining _GF_CONFIG_H_.

* Add some more necessary GPAC header files

Add a few more header files necessary to get GPAC to compile.

* Fix renamed and removed media types

Some mp4 media types ("clcp", "c608") were renamed by GPAC. "c708"
appears to have been removed, so we can just add the definition of that
to the top of mp4.c.

* Remove Remotery from updated GPAC

Remotery appears to be some code for profiling GPAC which we aren't
using, and including Remotery.c and Remotery.h ends up pulling in a lot
of files, so it's easier to just remove the include of Remotery.h and
the single use of it in os_divers.c

* Remove unused box definitions

Remove box definitions that we don't use from box_funcs.c in order to
avoid adding too many files from GPAC.

* Replace alloc function declarations with defines

Replace the GPAC wrappers around the malloc-style functions (gf_malloc,
gf_free, etc.) with defines that use the standard C versions of these
functions so that we can avoid including GPAC's alloc.c

* Remove WebVTT handling code in gf_isom_dump_srt_track

Remove the code that handles WebVTT in gf_isom_dump_srt_track to avoid
needing to pull in a lot of other files from GPAC.

gf_isom_dump_srt_track doesn't appear to be used by ccextractor directly
or indirectly (it's only called in gf_isom_text_dump which doesn't
appear to be called anywhere else) so it should be fine removing it.

* Disable use of Remotery and gzip on Linux

Use GPAC_DISABLE_REMOTERY and NO_GZIP to disable Remotery because we
aren't interested in profiling (see
5c0c9cf71e for more info) and gzip
compression through gzio.c respectively.

* Fix compilation errors in GPAC on linux

GPAC on linux after the update requires some threading functions and
dynamic loading functions in pthread and dl respectively.

* Add necessary files for GPAC to compile

Add several C and header files that GPAC needs to compile

* Disable Remotery and Gzip in all build systems

Disable Remotery and gzip (using the same method as
f49dc371b5) for:

- The linux build script (linux/build)
- The mac build script (mac/build.command)
- The mac makefile
- cmake
- bazel
- Visual Studio

* Add extra GPAC files to several build systems

Add the names of several GPAC files that were added in the update to the
linux and mac Makefiles and to the Windows Visual Studio project.

Adding these filenames isn't necessary for CMake, Bazel, or the linux or
mac build scripts because all of them compile all C files recursively in
the src/thirdparty/gpacmp4 directory instead of having an explicit list
of files to compile.

* Change NO_GZIP to GPAC_DISABLE_ZLIB in VS project

Instead of defining NO_GZIP to disable gzip support, define
GPAC_DISABLE_ZLIB, which does the same thing but also prevents the
compiler from trying to zlib.

* Avoid using GPAC's configuration.h completely

GPAC's configuration.h has a few problems with the defaults that it
sets:
- It defines GPAC_MEMORY_TRACKING on Windows, which switches to an
  alternate implementation of malloc, meaning that we would have to pull
  in alloc.c
- It causes compilation errors on Linux (see 9164c08979)

This disables using configuration.h by:
- Defining GPAC_HAVE_CONFIG_H to make GPAC use a separate config.h file
  instead of the default configuration.h file
- Making an essentially empty config.h file to make attempts to include
  it not fail

This commit also removes configuration.h from the repo to make sure we
don't accidentally include it, and removes the _GF_CONFIG_H_ hack from
the previously mentioned commit because we don't need it anymore (it's
sole purpose was avoiding using configuration.h).

* Link pthread and dl on Mac and Linux

Add -lpthread and -ldl to link pthread and dl respectively on Mac and
Linux. Needed because the update to GPAC 1.0.1 introduced os_thread.c
(which uses pthread) and os_module.c (which uses dlsym and related
functions).

* Remove unused Remotery.h header file

5c0c9cf71e removed the only use of
Remotery.h in the GPAC files that we pulled in, so there's no need to
keep it around.

* Add GPAC update to changelog

* Fix cmake build error

Building with CMake currently fails because it can't find functions from
dl (dlopen, dlsym, etc.)

* Fix bazel build error

Bazel currently doesn't find the header files in gpac/modules/ when
building gpac, most likely because it isn't searching all directories in
gpac/ recursively for header files

* Define GPAC_HAVE_CONFIG_H in lib_ccx BUILD file

lib_ccx indirectly includes gpac/tools.h, which tries to include
gpac/configuration.h, which was removed in
b46c4e8a2d. This just copies the solution
from that commit to the bazel BUILD file (defining GPAC_HAVE_CONFIG_H so
GPAC uses gpac/config.h instead).

* Link to dl and pthread in bazel GPAC BUILD file

The updated GPAC version requires functions from dl and pthread, which
weren't linked to previously when building with bazel.
2021-04-30 04:59:13 -07:00
dependabot-preview[bot]
02d84d27d0 Upgrade to GitHub-native Dependabot (#1330)
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2021-04-29 23:03:48 +00:00
Suvigya
a2af0d7044 [FIX] segmentation fault on encoding McPoodle's raw to WebVTT (#1329) 2021-04-27 08:21:07 -07:00
Venkata Shravan
4f5bd7bf37 Add bazel build to Github Actions (#1321) 2021-04-12 21:16:35 +00:00
PunitLodha
91ef488dff Revert "Ignore extra padding data in the current_packet (#1304)" (#1325)
This reverts commit 7f4acae74b.
2021-04-12 10:45:14 -07:00
PunitLodha
1af107aef8 Fix 708 timing issue (#1319)
* Fix 708 timing issue
Process packet as soon as the packet len is equal to the specified len

* check if cc_valid

* fix formatting

* Check if header is parsed before parsing pkt data
2021-04-12 09:42:15 -07:00
Matej Plavevski
9a60796674 [IMPROVEMENT]Update LibPNG to 1.6.37 (#1271)
* Update LibPNG to 1.6.37
2021-04-05 16:25:54 -07:00
PunitLodha
7f4acae74b Ignore extra padding data in the current_packet (#1304)
* Ignore extra padding data in the current_packet

* refactor to avoid buffer overflow
2021-04-04 16:20:04 -07:00
Carlos Fernandez Sanz
fa8b0a3023 Build with Bazel (#1316)
Initial Bazel build files

Co-authored-by: Willem <github@canihavesome.coffee>
Co-authored-by: Divyam Ahuja <39771050+DivyamAhuja@users.noreply.github.com>
2021-04-04 16:07:12 -07:00
Sivaram D
acb55470f6 [DOCS] Documentation fix and mentioned alternatives that ccx accepts for -stdin and -cc2 options (#1295)
* added alternate params for -stdin and -cc2
* change readme text file to markdown
* deleted README.TXT
2021-04-04 12:46:17 -07:00
Abhik Jain
97da554da6 remove '-nots' flag from file-format parsing (#1315) 2021-04-03 01:53:12 -07:00
pranavrajpal
a121823adc [FIX] Fix segfault on Windows (#1313)
* Fix segfault on Windows

Using the format specifier %d to print out size is technically undefined
behavior, as size is defined as a u64, while %d is meant to print out
ints, which seems to be defined as 32 bits on most machines, and using a
format specifier with the wrong size is undefined behavior. This causes
a segfault on Windows as this apparently causes the wrong pointer to be
passed in for the filename.

* Add change to changelog
2021-04-02 10:09:40 -07:00
Carlos Fernandez Sanz
cb85740690 Remove -cf (#1312) 2021-03-31 12:28:47 -07:00
Carlos Fernandez Sanz
e91a13bb60 Remove python (#1311)
Since this code is both unused an unmaintained I'm making the executive decision to get rid of it to make our life easier.
2021-03-31 09:55:06 -07:00
Carlos Fernandez Sanz
a063be996b Minor file structure reorg (#1310)
Moved zvbi from thirdparty to lib_ccx.
Moved mp4 from gpacmp4 to libccx.
Adjusted build files as needed.
2021-03-31 09:39:54 -07:00
Abdul Malik
19da837232 docs : Fixed a typo (#1307) 2021-03-25 16:09:14 +00:00
Sivaram D
22a494d834 mentioned debug info on compilation docs (#1300) 2021-02-16 07:26:20 +00:00
Nils
2e68e9f600 Remove -Wimplicit-function-declaration warning #1296 (#1297) 2021-02-08 17:42:16 +00:00
Sivaram D
b1c22e5034 added block for if statement (#1291) 2021-01-14 09:13:46 -08:00
Venkata Shravan
e3c54327e8 Updated Github actions and reduced steps required to upload artifacts. (#1289)
Updated Github actions, reduced upload artifact steps [Windows]. Closes #1284.
2020-12-28 09:59:46 +01:00
Venkata Shravan
9e62f8c557 Documentation fix (#1290) 2020-12-26 08:49:08 -08:00
VaishnaviC
6216247ecb Created block of code for single line branches at lines between 660-670. (#1287)
* Commit 2 ocr.c

Added {} to single-line conditional statements to create blocks instead of keeping them as single line branches.

* Update ocr.c
2020-12-24 15:18:37 -08:00
Tim Gates
082100a0d4 docs: fix simple typo, commmon -> common (#1283)
There is a small typo in src/thirdparty/gpacmp4/gpac/isomedia.h.

Should read `common` rather than `commmon`.
2020-12-23 01:44:39 -08:00
Willem
cf828471d6 Fix Windows build pipeline
warrenbuckley/Setup-MSBuild has been deprecated in favour of microsoft/setup-msbuild, which includes a fix for the failure of the build pipelines (refer to https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/)
2020-12-21 10:26:56 +01:00
MackeyStingray
cf84757e02 Fix hardsubx segmentation fault (#1280) 2020-09-13 10:10:02 -07:00
Nils
f486efbb57 [FIX] -Wunused-result warnings (#1269)
* Fix -Wunused-result warnings

* Wrap checked writes into a function

* In write_wrapped, continue writing in case of partial write

If a partial write occurs, it doesn't necessarily mean that something
failed, according to write(2). If this is the case, then the following
write will return -1.

* Fix build on MSVC

https://stackoverflow.com/questions/37460579/error-c2036-void-unknown-size
2020-06-28 14:29:35 -07:00
Nils
0db5b0c838 [Formatting] Remove trailing whitespace (#1270) 2020-05-20 15:09:00 +02:00
hamelg
e411a75dcd [FIX] Disable BOM in non-Windows build (#1268)
* Disable BOM in non-Windows build

* Disable BOM in non-Windows build
2020-05-09 15:21:45 -07:00
hamelg
33ecccedce [FIX] Allow all oem modes with tesseract v4 (#1267)
* Allow all oem modes with tesseract v4

* Allow all oem modes with tesseract v4

* Fix formatting
2020-05-08 14:52:47 -07:00
Willem
28dd35b040 Add DLL's to artifact (#1263)
Expands the Windows build steps to include DLL's in the artifact, making an out-of-box use of said artifacts easier. The new artifacts will allow running ccextractor (not the GUI yet) directly.
2020-04-28 22:31:15 +02:00
Willem
e82a492c94 Update build_windows.yml
Add version information for all builds
2020-04-26 21:09:19 +02:00
Willem
4509b9daf5 Update build_windows.yml 2020-04-26 21:04:09 +02:00
Willem
d330b78f37 Update build_windows.yml 2020-04-26 20:54:19 +02:00
Willem
ab89f88aea Update build_windows.yml
Add a build information on the release build.
2020-04-26 20:50:09 +02:00
Willem
0227c2787a Update build_linux.yml
Correct path for version check for building with cmake
2020-04-26 20:48:25 +02:00
Willem
84dec36845 Update build_linux.yml
Add version information step on all Linux builds
2020-04-26 20:42:44 +02:00
Willem
b4f692807a Update build_linux.yml
Add a step to show version information
2020-04-26 20:38:59 +02:00
apovalyaev
1f5ec6cd8d Update VS project build settings (issue #1254) (#1261)
Improves the build for 32 bit variants.

Contains fixes:
- `/SAFESEH:NO`: needed for linking precompiled ffmpeg-lib libraries
- add paths from $(ProjectDir)libs\lib\ffmpeg-lib and avcodec.lib; avformat.lib; avutil.lib; swscale.lib
- add extra post-build actions to copy libraries
- add $(vcpkg) paths
2020-04-25 17:13:33 +02:00
Willem
6f375cd9b3 Update build_windows.yml
Split up artifacts for easier re-use; ensure paths are correct.
2020-04-25 13:00:27 +02:00
Willem
e959654c6f Update build_windows.yml
Fix wrong paths
2020-04-25 12:39:06 +02:00
Willem
18484d555f Add OCR build to Windows action
Adds a (likely non-working) build stage for building with OCR to the Windows GitHub actions, so we can assure that Windows keeps building with OCR just fine.
2020-04-25 12:32:04 +02:00
Carlos Fernandez Sanz
1534d81ae7 Added new utf8proc location to Windows project 2020-04-12 15:13:48 -07:00
Nils
84b5df2713 Mention where to send private invitation in the ISSUE_TEMPLATE (#1253)
Makes a small update to the ISSUE_TEMPLATE to clarify instructions for sending samples that cannot be made public.

Co-authored-by: Willem <github@canihavesome.coffee>
2020-04-07 13:55:49 +02:00
Anshul Maheshwari
8e729cc62c Merge pull request #1246 from anshul1912/master
put check for DVB duration with pagetimeout
2020-03-30 22:35:04 +05:30
Willem
0f1f4d889f Apply suggestions from code review 2020-03-29 22:22:49 +02:00
Willem
487b521c9b Merge branch 'master' into master 2020-03-29 22:19:26 +02:00
Willem
1aed90e42c [IMPROVEMENT] Apply clang-format to all remaining files (#1247)
Apply clang-format to all files aside from the icon file in the GUI and modify the action appropriately.
2020-03-29 22:16:39 +02:00
Anshul Maheshwari
e2d387bfa9 put check for DVB duration with pagetimeout 2020-03-28 22:26:40 +05:30
Nils
b974a7ed81 Remove installation of clang (#1244)
This is possible thanks to
https://github.com/actions/virtual-environments/pull/447
2020-03-20 13:08:19 +01:00
vishwesh-D-kumar
522ebae65e [FIX] Fixed paths in MakeFile, fixing the AutoConf compile error (#1242)
Closes #1241. 

Co-authored-by: Willem <github@canihavesome.coffee>
2020-03-03 20:50:55 +01:00
Willem
1b17a04b25 [FIX] Fix Mac build error for reproducible builds (#1232)
* Fix Mac build error for reproducible builds
* Shorten solution with vr8hub's suggestion

Closes #1230
2020-02-16 01:08:21 +01:00
Willem
588c4a8187 Merge pull request #1231 from NilsIrl/remove_branch_specification
[IMPROVEMENT] Remove the need for the push to be on the master branch
2020-02-15 23:50:34 +01:00
Nils André-Chang
88830e6c58 Remove the need for the push to be on the master branch
This is because contributors don't have branches called master it isn't
possible to manually trigger workflows as suggested by
https://github.community/t5/GitHub-Actions/GitHub-Actions-Manual-Trigger-Approvals/m-p/31517.

Also removed the workflow file from the path as it is implicitely set.
2020-02-15 22:12:55 +00:00
Carlos Fernandez Sanz
db646f50ac Update ISSUE_TEMPLATE.md 2020-02-12 17:39:12 -08:00
Nils
b1c9540085 [IMPROVEMENT] Comment out issue (#1178)
* [ISSUE_TEMPLATE.md] Comment out instructions

* [PULL_REQUEST_TEMPLATE.md] Comment out instructions

* Mention in ISSUE_TEMPLATE.md that only useful arguments should be put

* Follow feedback
2020-02-12 17:36:05 -08:00
Nils
e98137e059 [FIX] Fix tags displaying incorrectly (#1229)
This was caused by 19241744d7, moving from
`unsigned char` to `enums` for colors and fonts. The problem with this is
that each colour isn't one byte next to each other so memcpy and memset
didn't work anymore.

The problem:

```patch
6812,6813c6812,6813
< EDITION OF AMERICA'S NEXT TOP
< <i> MODEL</i> ON WEDNESDAYS.<i>          </i>
---
> EDITION OF<i> AMERICA'S NEXT TOP</i>
> <i> MODEL</i> ON WEDNESDAYS.
6817c6817
< EDITION OF AMERICA'S NEXT TOP
---
> EDITION OF<i> AMERICA'S NEXT TOP</i>
6819c6819
< >><i> THE VAMPIRE DIARIES         </i>
---
> >><i> THE VAMPIRE DIARIES</i>
6824,6825c6824,6825
< >><i> THE VA</i>MPIRE DIARIES
< AND<i> THE SECRET CIRCLE          </i>
---
> >><i> THE VAMPIRE DIARIES</i>
> AND<i> THE SECRET CIRCLE</i>
6829,6831c6829,6831
< >><i> THE VA</i>MPIRE DIARIES
< AND<i> THE S</i>ECRET CIRCLE
< ON THURSDAYS.<i>                  </i>
---
> >><i> THE VAMPIRE DIARIES</i>
> AND<i> THE SECRET CIRCLE</i>
> ON THURSDAYS.
6835c6835
< AND<i> THE S</i>ECRET CIRCLE
---
> AND<i> THE SECRET CIRCLE</i>
```
2020-02-12 15:01:15 -08:00
Willem
3c37d49764 Merge pull request #1228 from CCExtractor/canihavesomecoffee-patch-1
[FIX] Remove Windows XP workaround
2020-02-08 21:01:54 +01:00
Willem
a8d6b81baf Remove Windows XP workaround
Removes the workaround that was put in place while waiting for actions/virtual-environments#288 to being fixed.
2020-02-08 20:56:45 +01:00
Willem
b8321cac0f Finetune formatting action
Only trigger action when the action is edited, or when source code is actually being changed.
2020-02-08 20:52:36 +01:00
Ed Marshall
6697ed3496 [FIX] Fix multiple definitions with new -fno-common default in GCC 10 (#1226)
* Fix multiple definitions with new -fno-common default in GCC 10

* Add GCC 10 fix to changelog
2020-02-01 22:26:48 -08:00
Nils ANDRÉ-CHANG
722d52420c [IMPROVEMENT] Clang format (#1222)
* Add .clang-format

* Add clang-format github action

* Set more explicit name to GitHub workflow

Co-Authored-By: Willem <github@canihavesome.coffee>

Co-authored-by: Willem <github@canihavesome.coffee>
2020-01-30 09:00:00 -08:00
Nils ANDRÉ-CHANG
af6d8282cb [IMPROVEMENT] Move dependencies to a third party directory (#1219)
* Move dependencies in a folder

* Windows

* MacOS
2020-01-30 04:58:37 -08:00
kdrag0n
732b20aefa [FIX] Clang warning fixes (#1205)
* file_buffer: Fix unitialized variable usage warning

Clang warns:

In file included from src/lib_ccx/asf_functions.c:5:
src/lib_ccx/file_buffer.h:76:7: warning: variable 'result' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
                if (buffer)
                    ^~~~~~
src/lib_ccx/file_buffer.h:86:9: note: uninitialized use occurs here
        return result;
               ^~~~~~
src/lib_ccx/file_buffer.h:76:3: note: remove the 'if' if its condition is always true
                if (buffer)
                ^~~~~~~~~~~
src/lib_ccx/file_buffer.h:73:15: note: initialize the variable 'result' to silence this warning
        size_t result;
                     ^
                      = 0

* common_timing: Fix uninitialized variable usage warning

The vast majority of the code is already using fatal(), so I don't see
why this should be an exception.

Clang warns:

src/lib_ccx/ccx_common_timing.c:274:3: warning: variable 'fts' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized]
                default:
                ^~~~~~~
src/lib_ccx/ccx_common_timing.c:280:9: note: uninitialized use occurs here
        return fts;
               ^~~
src/lib_ccx/ccx_common_timing.c:261:11: note: initialize the variable 'fts' to silence this warning
        LLONG fts;
                 ^
                  = 0

* encoders: Fix handling of multibyte characters in UTF-8 converter

This is actually incorrect because characters longer than 1 byte will be
butchered.

Clang warns:

src/lib_ccx/ccx_encoders_common.c:178:12: warning: result of comparison of constant 256 with expression of
type 'unsigned char' is always true [-Wtautological-constant-out-of-range-compare]
                                        if (c < 256)
                                            ~ ^ ~~~
src/lib_ccx/ccx_encoders_common.c:193:12: warning: result of comparison of constant 256 with expression of
type 'unsigned char' is always true [-Wtautological-constant-out-of-range-compare]
                                        if (c < 256)
                                            ~ ^ ~~~
src/lib_ccx/ccx_encoders_common.c:209:12: warning: result of comparison of constant 256 with expression of
type 'unsigned char' is always true [-Wtautological-constant-out-of-range-compare]
                                        if (c < 256)
                                            ~ ^ ~~~
src/lib_ccx/ccx_encoders_common.c:229:12: warning: result of comparison of constant 256 with expression of type 'unsigned char' is always true [-Wtautological-constant-out-of-range-compare]
                                        if (c < 256)
                                            ~ ^ ~~~

* gxf: Fix tautological comparison warnings

Clang warns:

src/lib_ccx/ccx_gxf.c:425:17: warning: result of comparison of constant 256 with expression of type 'unsigned char' is always false [-Wtautological-constant-out-of-range-compare]
                                if (tag_len > STR_LEN)
                                    ~~~~~~~ ^ ~~~~~~~
src/lib_ccx/ccx_gxf.c:542:17: warning: result of comparison of constant 256 with expression of type 'unsigned char' is always false [-Wtautological-constant-out-of-range-compare]
                                if (tag_len > STR_LEN)
                                    ~~~~~~~ ^ ~~~~~~~
src/lib_ccx/ccx_gxf.c:617:17: warning: result of comparison of constant 256 with expression of type 'unsigned char' is always false [-Wtautological-constant-out-of-range-compare]
                                if (tag_len > STR_LEN)
                                    ~~~~~~~ ^ ~~~~~~~

* gxf: Fix uninitialized variable usage warnings

Clang warns:

src/lib_ccx/ccx_gxf.c:1449:8: warning: variable 'first_field_nb' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
                case TRACK_TYPE_MPEG1_525:
                     ^~~~~~~~~~~~~~~~~~~~
src/lib_ccx/ccx_gxf.c:1475:35: note: uninitialized use occurs here
        debug("first field number %d\n", first_field_nb);
                                         ^~~~~~~~~~~~~~
src/lib_ccx/ccx_gxf.c:28:115: note: expanded from macro 'debug'
                                                                                                                  ^~~~~~~~~~~
src/lib_ccx/ccx_gxf.c:1450:8: warning: variable 'first_field_nb' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
                case TRACK_TYPE_MPEG2_525:
                     ^~~~~~~~~~~~~~~~~~~~
src/lib_ccx/ccx_gxf.c:1475:35: note: uninitialized use occurs here
        debug("first field number %d\n", first_field_nb);
                                         ^~~~~~~~~~~~~~
src/lib_ccx/ccx_gxf.c:28:115: note: expanded from macro 'debug'
                                                                                                                  ^~~~~~~~~~~
src/lib_ccx/ccx_gxf.c:1456:3: warning: variable 'first_field_nb' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized]
                default:
                ^~~~~~~
src/lib_ccx/ccx_gxf.c:1475:35: note: uninitialized use occurs here
        debug("first field number %d\n", first_field_nb);
                                         ^~~~~~~~~~~~~~
src/lib_ccx/ccx_gxf.c:28:115: note: expanded from macro 'debug'
                                                                                                                  ^~~~~~~~~~~
src/lib_ccx/ccx_gxf.c:1410:30: note: initialize the variable 'first_field_nb' to silence this warning
        unsigned char first_field_nb;
                                    ^
                                     = '\0'
src/lib_ccx/ccx_gxf.c:1449:8: warning: variable 'last_field_nb' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
                case TRACK_TYPE_MPEG1_525:
                     ^~~~~~~~~~~~~~~~~~~~
src/lib_ccx/ccx_gxf.c:1476:34: note: uninitialized use occurs here
        debug("last field number %d\n", last_field_nb);
                                        ^~~~~~~~~~~~~
src/lib_ccx/ccx_gxf.c:28:115: note: expanded from macro 'debug'
                                                                                                                  ^~~~~~~~~~~
src/lib_ccx/ccx_gxf.c:1450:8: warning: variable 'last_field_nb' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
                case TRACK_TYPE_MPEG2_525:
                     ^~~~~~~~~~~~~~~~~~~~
src/lib_ccx/ccx_gxf.c:1476:34: note: uninitialized use occurs here
        debug("last field number %d\n", last_field_nb);
                                        ^~~~~~~~~~~~~
src/lib_ccx/ccx_gxf.c:28:115: note: expanded from macro 'debug'
                                                                                                                  ^~~~~~~~~~~
src/lib_ccx/ccx_gxf.c:1456:3: warning: variable 'last_field_nb' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized]
                default:
                ^~~~~~~
src/lib_ccx/ccx_gxf.c:1476:34: note: uninitialized use occurs here
        debug("last field number %d\n", last_field_nb);
                                        ^~~~~~~~~~~~~
src/lib_ccx/ccx_gxf.c:28:115: note: expanded from macro 'debug'
                                                                                                                  ^~~~~~~~~~~
src/lib_ccx/ccx_gxf.c:1411:29: note: initialize the variable 'last_field_nb' to silence this warning
        unsigned char last_field_nb;
                                   ^
                                    = '\0'

* ts_functions: Fix incorrect enumeration type in get_buffer_type

Clang warns:

src/lib_ccx/ts_functions.c:127:10: warning: implicit conversion from enumeration type 'enum ccx_bufferdata_type' to different enumeration type 'enum ccx_stream_type' [-Wenum-conversion]
                return CCX_PES;
                ~~~~~~ ^~~~~~~
src/lib_ccx/ts_functions.c:131:10: warning: implicit conversion from enumeration type 'enum ccx_bufferdata_type' to different enumeration type 'enum ccx_stream_type' [-Wenum-conversion]
                return CCX_H264;
                ~~~~~~ ^~~~~~~~
src/lib_ccx/ts_functions.c:135:10: warning: implicit conversion from enumeration type 'enum ccx_bufferdata_type' to different enumeration type 'enum ccx_stream_type' [-Wenum-conversion]
                return CCX_DVB_SUBTITLE;
                ~~~~~~ ^~~~~~~~~~~~~~~~
src/lib_ccx/ts_functions.c:139:10: warning: implicit conversion from enumeration type 'enum ccx_bufferdata_type' to different enumeration type 'enum ccx_stream_type' [-Wenum-conversion]
                return CCX_ISDB_SUBTITLE;
                ~~~~~~ ^~~~~~~~~~~~~~~~~
src/lib_ccx/ts_functions.c:143:10: warning: implicit conversion from enumeration type 'enum ccx_bufferdata_type' to different enumeration type 'enum ccx_stream_type' [-Wenum-conversion]
                return CCX_HAUPPAGE;
                ~~~~~~ ^~~~~~~~~~~~
src/lib_ccx/ts_functions.c:147:10: warning: implicit conversion from enumeration type 'enum ccx_bufferdata_type' to different enumeration type 'enum ccx_stream_type' [-Wenum-conversion]
                return CCX_TELETEXT;
                ~~~~~~ ^~~~~~~~~~~~
src/lib_ccx/ts_functions.c:151:10: warning: implicit conversion from enumeration type 'enum ccx_bufferdata_type' to different enumeration type 'enum ccx_stream_type' [-Wenum-conversion]
                return CCX_PRIVATE_MPEG2_CC;
                ~~~~~~ ^~~~~~~~~~~~~~~~~~~~
src/lib_ccx/ts_functions.c:155:10: warning: implicit conversion from enumeration type 'enum ccx_bufferdata_type' to different enumeration type 'enum ccx_stream_type' [-Wenum-conversion]
                return CCX_PES;
                ~~~~~~ ^~~~~~~
src/lib_ccx/ts_functions.c:491:24: warning: implicit conversion from enumeration type 'enum ccx_stream_type' to different enumeration type 'enum ccx_bufferdata_type' [-Wenum-conversion]
        ptr->bufferdatatype = get_buffer_type(cinfo);
                            ~ ^~~~~~~~~~~~~~~~~~~~~~

* utility: Fix tautological comparison warnings

Clang warns:

src/lib_ccx/utility.c:605:24: warning: result of comparison of constant 65536 with expression of type 'unsigned short' is always true [-Wtautological-constant-out-of-range-compare]
        } else if (utf16_char < 0x010000) {
                   ~~~~~~~~~~ ^ ~~~~~~~~
src/lib_ccx/utility.c:610:24: warning: result of comparison of constant 1114112 with expression of type 'unsigned short' is always true [-Wtautological-constant-out-of-range-compare]
        } else if (utf16_char < 0x110000) {
                   ~~~~~~~~~~ ^ ~~~~~~~~

* ocr: Fix floating point -> integer abs() warning

Clang warns:

src/lib_ccx/ocr.c:529:8: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
                                if(abs(h-h0)>50) // Color has changed
                                   ^
src/lib_ccx/ocr.c:529:8: note: use function 'fabsf' instead
                                if(abs(h-h0)>50) // Color has changed
                                   ^~~
                                   fabsf
src/lib_ccx/ocr.c:529:8: note: include the header <math.h> or explicitly provide a declaration for 'fabsf'

* encoders: Fix incorrect string types when EIA-608 is in use

Clang warns:

src/lib_ccx/ccx_encoders_helpers.c: In function ‘clever_capitalize’:
src/lib_ccx/ccx_encoders_helpers.c:186:4: warning: case label value exceeds maximum value for type
  186 |    case 0x89: // This is a transparent space
      |    ^~~~

* ocr: Fix implicit struct declaration warning

Clang warns:

In file included from src/lib_ccx/dvd_subtitle_decoder.c:10:
src/lib_ccx/ocr.h:18:54: warning: ‘struct encoder_ctx’ declared inside parameter list will not be visible outside of this definition or declaration
   18 | char *paraof_ocrtext(struct cc_subtitle *sub, struct encoder_ctx *context);
      |                                                      ^~~~~~~~~~~
2020-01-29 21:39:40 -08:00
Nils ANDRÉ-CHANG
54318d0402 Allow the user the choose between CRLF and LF (#1220)
Defaults to CRLF
2020-01-28 21:18:10 -08:00
kdrag0n
5f61fae0c7 scc: Switch to CRLF line endings (#1209)
All the SCC and CCD examples I can find have CRLF line endings. VLC and
libavformat (used by MPV) don't care, so just go with the popular
convention and switch to CRLF. There's no reason a user would want to
choose their line endings in this scenario.
2020-01-25 19:33:22 -08:00
kdrag0n
0afba56a26 scc: Implement colors (#1213) 2020-01-25 16:16:00 -08:00
Carlos Fernandez Sanz
0873953d9f Update CHANGES.TXT 2020-01-25 15:35:34 -08:00
Carlos Fernandez Sanz
75af5f2e8c Applied clang formatting to our .c files. Tried to leave everyone else's alone. 2020-01-25 13:29:18 -08:00
Nils ANDRÉ-CHANG
8d8dc9ccc2 Improve and simplify dprintf implementation (#1185)
It now returns a value like the rest of the printf family. It doesn't
brute force the amount of memory that needs to be allocated.

It also removes a warning.

I do not believe there should be any performance concerns with this
implementation as it is what `glibc` does:

https://code.woboq.org/userspace/glibc/libio/iovdprintf.c.html
2020-01-24 23:58:44 -08:00
Nils ANDRÉ-CHANG
e37a21aace Fix longer subtitles (#1216) 2020-01-23 19:05:19 -08:00
Nils ANDRÉ-CHANG
40a603d366 Fix documentation (#1218) 2020-01-23 18:49:58 -08:00
kdrag0n
c5bed1e3b2 [FIX] GCC warning fixes (#1204)
* cea708: Fix missing new line in log message

* subtype: Remove unused CC_708 type

CEA-708 inputs are coerced to CC_608 before hitting encode_sub.

GCC warns:

src/lib_ccx/ccx_encoders_common.c: In function ‘encode_sub’:
src/lib_ccx/ccx_encoders_common.c:1119:2: warning: enumeration value ‘CC_708’ not handled in switch [-Wswitch]
 1119 |  switch (sub->type)
      |  ^~~~~~

* build: Disable pointer-sign warning

This warning triggers all over the codebase due to the widespread use of
unsigned char arrays for parsed subtitle strings and them being passed
to string functions that expect signed ones. Since this won't actually
cause issues, silence the warning across the entire codebase.

* splitbysentence: Fix warnings

GCC warns:

src/lib_ccx/ccx_encoders_splitbysentence.c: In function ‘sbs_is_pointer_on_sentence_breaker’:
src/lib_ccx/ccx_encoders_splitbysentence.c:170:7: warning: variable ‘p’ set but not used [-Wunused-but-set-variable]
  170 |  char p = *(current - 1);
      |       ^
src/lib_ccx/ccx_encoders_splitbysentence.c: In function ‘sbs_find_insert_point_partial’:
src/lib_ccx/ccx_encoders_splitbysentence.c:231:1: warning: multi-line comment [-Wcomment]
  231 | //   sprintf(fmtbuf, "SBS: sbs_find_insert_point_partial: compare\n\
      | ^
src/lib_ccx/ccx_encoders_splitbysentence.c:263:1: warning: multi-line comment [-Wcomment]
  263 | //   LOG_DEBUG("SBS: sbs_find_insert_point_partial: LEFT CHANGED,\n\tbuf:[%s]\n\tstr:[%s]\n\
      | ^
src/lib_ccx/ccx_encoders_splitbysentence.c:297:1: warning: multi-line comment [-Wcomment]
  297 | //   sprintf(fmtbuf, "SBS: sbs_find_insert_point_partial: REPLACE ENTIRE TAIL !!\n\
      | ^
src/lib_ccx/ccx_encoders_splitbysentence.c:222:6: warning: unused variable ‘i’ [-Wunused-variable]
  222 |  int i; // top level indexer for strings
      |      ^
src/lib_ccx/ccx_encoders_splitbysentence.c: In function ‘reformat_cc_bitmap_through_sentence_buffer’:
src/lib_ccx/ccx_encoders_splitbysentence.c:730:8: warning: unused variable ‘str’ [-Wunused-variable]
  730 |  char *str;
      |        ^~~
src/lib_ccx/ccx_encoders_splitbysentence.c:729:6: warning: unused variable ‘i’ [-Wunused-variable]
  729 |  int i = 0;
      |      ^
src/lib_ccx/ccx_encoders_splitbysentence.c:728:6: warning: unused variable ‘used’ [-Wunused-variable]
  728 |  int used;
      |      ^~~~
src/lib_ccx/ccx_encoders_splitbysentence.c:727:18: warning: unused variable ‘ms_end’ [-Wunused-variable]
  727 |  LLONG ms_start, ms_end;
      |                  ^~~~~~
src/lib_ccx/ccx_encoders_splitbysentence.c:727:8: warning: unused variable ‘ms_start’ [-Wunused-variable]
  727 |  LLONG ms_start, ms_end;
      |        ^~~~~~~~
src/lib_ccx/ccx_encoders_splitbysentence.c:726:20: warning: unused variable ‘rect’ [-Wunused-variable]
  726 |  struct cc_bitmap* rect;
      |                    ^~~~

* spupng: Fix warnings

GCC warns:

src/lib_ccx/ccx_encoders_spupng.c: In function ‘init_face’:
src/lib_ccx/ccx_encoders_spupng.c:644:6: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
  644 |  if (error = FT_New_Face(ft_library, font, 0, face))
      |      ^~~~~
src/lib_ccx/ccx_encoders_spupng.c:651:6: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
  651 |  if (error = FT_Set_Pixel_Sizes(*face, 0, FONT_SIZE))
      |      ^~~~~
src/lib_ccx/ccx_encoders_spupng.c: In function ‘spupng_export_string2png’:
src/lib_ccx/ccx_encoders_spupng.c:698:7: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
  698 |   if (error = FT_Init_FreeType(&ft_library))
      |       ^~~~~
src/lib_ccx/ccx_encoders_spupng.c:706:6: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
  706 |  if (error = init_face(&face_regular, ccx_options.enc_cfg.render_font))
      |      ^~~~~
src/lib_ccx/ccx_encoders_spupng.c:708:6: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
  708 |  if (error = init_face(&face_italics, ccx_options.enc_cfg.render_font_italics))
      |      ^~~~~
src/lib_ccx/ccx_encoders_spupng.c:850:9: warning: unused variable ‘height’ [-Wunused-variable]
  850 |     int height = slot->bitmap.rows;
      |         ^~~~~~
src/lib_ccx/ccx_encoders_spupng.c:849:9: warning: unused variable ‘width’ [-Wunused-variable]
  849 |     int width = slot->bitmap.width;
      |         ^~~~~
src/lib_ccx/ccx_encoders_webvtt.c: In function ‘write_webvtt_header’:
src/lib_ccx/ccx_encoders_webvtt.c:263:1: warning: control reaches end of non-void function [-Wreturn-type]
  263 | }
      | ^

* webvtt: Fix missing return warning

The return value of this function is never used, so just drop the
values.

GCC warns:

src/lib_ccx/ccx_encoders_webvtt.c: In function ‘write_webvtt_header’:
src/lib_ccx/ccx_encoders_webvtt.c:263:1: warning: control reaches end of non-void function [-Wreturn-type]
  263 | }
      | ^

* gxf: Fix MIN macro redefinition warning

GCC warns:

src/lib_ccx/ccx_gxf.c:23: warning: "MIN" redefined
   23 | #define MIN(a, b) ( (a < b) ? a : b)
      |
In file included from src/lib_ccx/ccx_demuxer.h:8,
                 from src/lib_ccx/ccx_gxf.h:4,
                 from src/lib_ccx/ccx_gxf.c:13:
src/lib_ccx/utility.h:8: note: this is the location of the previous definition
    8 | #define MIN(X, Y) (((X) < (Y)) ? (X) : (Y))
      |

* dvd: Fix unused variable warnings

GCC warns:

src/lib_ccx/dvd_subtitle_decoder.c: In function ‘get_bitmap’:
src/lib_ccx/dvd_subtitle_decoder.c:133:9: warning: unused variable ‘discard’ [-Wunused-variable]
  133 |     int discard = get_bits(ctx, &nextbyte, &pos, &m);
      |         ^~~~~~~
src/lib_ccx/dvd_subtitle_decoder.c:172:9: warning: unused variable ‘discard’ [-Wunused-variable]
  172 |     int discard = get_bits(ctx, &nextbyte, &pos, &m);
      |         ^~~~~~~
src/lib_ccx/dvd_subtitle_decoder.c: In function ‘write_dvd_sub’:
src/lib_ccx/dvd_subtitle_decoder.c:320:6: warning: unused variable ‘ret’ [-Wunused-variable]
  320 |  int ret =0;
      |      ^~~

* es_functions: Fix unused variable warning

This also removes the stale commented code that used this variable.

GCC warns:

src/lib_ccx/es_functions.c: In function ‘read_pic_info’:
src/lib_ccx/es_functions.c:682:7: warning: unused variable ‘frame_type_to_char’ [-Wunused-variable]
  682 |  char frame_type_to_char[] = { '?', 'I', 'P','B', 'D', '?', '?','?' };
      |       ^~~~~~~~~~~~~~~~~~

* dvb: Fix unused variable warning when OCR is disabled

GCC warns:

src/lib_ccx/dvb_subtitle_decoder.c: In function ‘write_dvb_sub’:
src/lib_ccx/dvb_subtitle_decoder.c:1509:6: warning: unused variable ‘ret’ [-Wunused-variable]
 1509 |  int ret = 0;
      |      ^~~

* general_loop: Fix warnings

GCC warns:

src/lib_ccx/general_loop.c: In function ‘general_loop’:
src/lib_ccx/general_loop.c:1113:15: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
 1113 |      (enc_ctx && (enc_ctx->srt_counter || enc_ctx->cea_708_counter) ||
      |       ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
At top level:
src/lib_ccx/general_loop.c:25:28: warning: ‘DO_NOTHING’ defined but not used [-Wunused-const-variable=]
   25 | const static unsigned char DO_NOTHING[] = {0x80, 0x80};
      |                            ^~~~~~~~~~

* networking: Fix unknown pragma warning for non-MSVC compilers

GCC warns:

src/lib_ccx/networking.c:22: warning: ignoring #pragma warning  [-Wunknown-pragmas]
   22 | #pragma warning( suppress : 4005)
      |

* networking: Fix unused variable warnings on non-Windows platforms

GCC warns:

src/lib_ccx/networking.c: In function ‘net_udp_read’:
src/lib_ccx/networking.c:342:12: warning: variable ‘addr’ set but not used [-Wunused-but-set-variable]
  342 |  in_addr_t addr;
      |            ^~~~
src/lib_ccx/networking.c:340:12: warning: unused variable ‘len’ [-Wunused-variable]
  340 |  socklen_t len = sizeof(source_addr);
      |            ^~~
src/lib_ccx/networking.c:338:7: warning: unused variable ‘ip’ [-Wunused-variable]
  338 |  char ip[INET_ADDRSTRLEN];
      |       ^~

* params: Fix unused variable warning when OCR is disabled

GCC warns:

src/lib_ccx/params.c: In function ‘version’:
src/lib_ccx/params.c:1015:8: warning: unused variable ‘leptversion’ [-Wunused-variable]
 1015 |  char *leptversion;
      |        ^~~~~~~~~~~

* params_dump: Fix empty encoding when ASCII is used

GCC warns:

src/lib_ccx/params_dump.c: In function ‘params_dump’:
src/lib_ccx/params_dump.c:110:2: warning: enumeration value ‘CCX_ENC_ASCII’ not handled in switch [-Wswitch]
  110 |  switch (ccx_options.enc_cfg.encoding)
      |  ^~~~~~

* params_dump: Fix comparison between mismatching enums

GCC warns:

src/lib_ccx/params_dump.c: In function ‘print_file_report’:
src/lib_ccx/params_dump.c:402:18: warning: comparison between ‘enum ccx_stream_type’ and ‘enum ccx_stream_mode_enum’ [-Wenum-compare]
  402 |    (info->stream == CCX_SM_TRANSPORT ||
      |                  ^~
src/lib_ccx/params_dump.c:403:18: warning: comparison between ‘enum ccx_stream_type’ and ‘enum ccx_stream_mode_enum’ [-Wenum-compare]
  403 |     info->stream == CCX_SM_PROGRAM ||
      |                  ^~
src/lib_ccx/params_dump.c:404:18: warning: comparison between ‘enum ccx_stream_type’ and ‘enum ccx_stream_mode_enum’ [-Wenum-compare]
  404 |     info->stream == CCX_SM_ASF ||
      |                  ^~
src/lib_ccx/params_dump.c:405:18: warning: comparison between ‘enum ccx_stream_type’ and ‘enum ccx_stream_mode_enum’ [-Wenum-compare]
  405 |     info->stream == CCX_SM_WTV))
      |                  ^~

* telxcc: Fix unused variable warning

GCC warns:

src/lib_ccx/telxcc.c: In function ‘process_telx_packet’:
src/lib_ccx/telxcc.c:928:10: warning: unused variable ‘flag_subtitle’ [-Wunused-variable]
  928 |  uint8_t flag_subtitle;
      |          ^~~~~~~~~~~~~

* ts_functions: Fix unused variable warnings

GCC warns:

src/lib_ccx/ts_functions.c: In function ‘get_pts’:
src/lib_ccx/ts_functions.c:642:11: warning: variable ‘pes_packet_length’ set but not used [-Wunused-but-set-variable]
  642 |  uint16_t pes_packet_length;
      |           ^~~~~~~~~~~~~~~~~
src/lib_ccx/ts_functions.c:641:10: warning: variable ‘pes_stream_id’ set but not used [-Wunused-but-set-variable]
  641 |  uint8_t pes_stream_id;
      |          ^~~~~~~~~~~~~

* ts_tables_epg: Fix warnings

GCC warns:

src/lib_ccx/ts_tables_epg.c: In function ‘EPG_add_event’:
src/lib_ccx/ts_tables_epg.c:380:6: warning: unused variable ‘isnew’ [-Wunused-variable]
  380 |  int isnew=true, j;
      |      ^~~~~
src/lib_ccx/ts_tables_epg.c: In function ‘EPG_DVB_decode_string’:
src/lib_ccx/ts_tables_epg.c:469:6: warning: variable ‘ret’ set but not used [-Wunused-but-set-variable]
  469 |  int ret=-1;
      |      ^~~
src/lib_ccx/ts_tables_epg.c: In function ‘EPG_ATSC_decode_EIT’:
src/lib_ccx/ts_tables_epg.c:802:25: warning: variable ‘emt_location’ set but not used [-Wunused-but-set-variable]
  802 |   uint8_t title_length, emt_location;
      |                         ^~~~~~~~~~~~
src/lib_ccx/ts_tables_epg.c:764:10: warning: variable ‘table_id’ set but not used [-Wunused-but-set-variable]
  764 |  uint8_t table_id;
      |          ^~~~~~~~
src/lib_ccx/ts_tables_epg.c: In function ‘EPG_ATSC_decode_VCT’:
src/lib_ccx/ts_tables_epg.c:837:10: warning: variable ‘table_id’ set but not used [-Wunused-but-set-variable]
  837 |  uint8_t table_id;
      |          ^~~~~~~~
src/lib_ccx/ts_tables_epg.c: In function ‘EPG_DVB_decode_EIT’:
src/lib_ccx/ts_tables_epg.c:883:10: warning: variable ‘segment_last_section_number’ set but not used [-Wunused-but-set-variable]
  883 |  uint8_t segment_last_section_number;
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/lib_ccx/ts_tables_epg.c:882:10: warning: variable ‘last_section_number’ set but not used [-Wunused-but-set-variable]
  882 |  uint8_t last_section_number;
      |          ^~~~~~~~~~~~~~~~~~~
src/lib_ccx/ts_tables_epg.c: In function ‘parse_EPG_packet’:
src/lib_ccx/ts_tables_epg.c:1041:11: warning: unused variable ‘transport_error_indicator’ [-Wunused-variable]
 1041 |  unsigned transport_error_indicator = (tspacket[1]&0x80)>>7;
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~

* matroska: Fix unused variable warning

The call is left alone since it might create a decoder context.
GCC warns:

src/lib_ccx/matroska.c: In function ‘matroska_save_all’:
src/lib_ccx/matroska.c:1182:27: warning: unused variable ‘dec_ctx’ [-Wunused-variable]
 1182 |     struct lib_cc_decode *dec_ctx = update_decoder_list(mkv_ctx->ctx);
      |                           ^~~~~~~

* utility: Only define MIN when necessary

GCC warns:

In file included from src/lib_ccx/ccx_demuxer.h:8,
                 from src/lib_ccx/lib_ccx.h:15,
                 from src/gpacmp4/mp4.c:6:
src/lib_ccx/utility.h:8: warning: "MIN" redefined
    8 | #define MIN(X, Y) (((X) < (Y)) ? (X) : (Y))
      |
In file included from src/gpacmp4/gpac/tools.h:33,
                 from src/gpacmp4/gpac/isomedia.h:50,
                 from src/gpacmp4/mp4.c:5:
src/gpacmp4/gpac/setup.h:324: note: this is the location of the previous definition
  324 | #define MIN(X, Y) ((X)<(Y)?(X):(Y))
      |
2020-01-23 18:49:16 -08:00
Nils ANDRÉ-CHANG
8db3398eb7 [IMPROVEMENT] Implement subtitle modifications for each encoder (#1214)
* Implement subtitle modification for all 608 encoders

This is done by modifying the subtitles in `ccx_encoders_common.c`
rather than per encoder.

* Use `char *` instead of subtitle data to capitalize

* Implement subtitle modification for OCR encoders

* Remove signness warnings

* Remove two-word profanity

They do not work for the moment

* Deal with different encoding

* Mention in changelog
2020-01-23 18:45:56 -08:00
Nils ANDRÉ-CHANG
7b038ab649 Fix use-after-free (#1215) 2020-01-23 09:39:45 -08:00
kdrag0n
7d0c2ede26 [IMPROVEMENT] Clean up SCC control codes (#1212)
* scc: Reformat control code list

- Separate sections with a blank line
- Align with 4-wide tabs rather than spaces
- Rewrite some comments

* scc: Revamp control code handling

This can be made much more readable by adding a small info struct that
contains all the information about a control code (first byte odd &
even, second byte, and assembly). Information is stored in and retrieved
from an array, created using an array initializer with the enum values
as indices.

This allows us to remove the massive switch-case blocks, leading to much
cleaner and more streamlined code.
2020-01-22 23:26:23 -08:00
Nils ANDRÉ-CHANG
60773bb859 [IMPROVEMENT] Add noreturn attribute to fatal (#1179)
* Set no return

* Add MSVC
2020-01-22 23:25:43 -08:00
kdrag0n
a919ef4410 [FIX] SCC character pair writing (#1210)
* scc: Fix character pair writing

The space was being inserted in the wrong position, so the first
character of each caption was being cut off. The last character was also
cut off in captions with even lengths.

Reported-By: Nils ANDRÉ-CHANG <nils@nilsand.re>

* scc: Apply pair writing to control codes

The same mandatory pair logic applies here.
2020-01-22 23:23:00 -08:00
kdrag0n
424e67f5f4 [FIX] Fix SCC timing and lingering captions (#1211)
* scc: Fix timing and lingering captions

- Write EDM codes at end times to clear them from the screen as intended
  by the captioners
- Show captions at the correct times:
  - EOC+ENM *shows* the caption. It doesn't clear it -- that's EDM's job.
  - The caption is *not* shown immediately after loading. EOC (End Of
    Caption) is required for it to actually show.

Old behavior:
Start time: Load caption
End time: Show loaded caption

New behavior:
Start time: Load and show caption
End time: Clear displayed caption

These changes fix the issue where captions were always one line off --
that is, caption 1 would show when caption 2 was supposed to show.

* scc: Calculate frame number using a more precise frame rate

* scc: Fix timecode format specifiers

These are ints are unsigned.
2020-01-22 23:18:18 -08:00
Nils ANDRÉ-CHANG
4097831b9b Remove useless O(N) operations and memory allocations (#1207) 2020-01-22 09:03:21 -08:00
kdrag0n
1764aa1f92 scc: Write all characters in pairs (#1208)
This is how every example appears to be structured. MPV doesn't display
anything without this.

Before: "e5 f2 e5 20"
After: "e5f2 e520"
2020-01-22 08:01:53 -08:00
kdrag0n
19de49763a [FIX] Fix minor memory leak in OCR code (#1206)
* ocr: Fix minor memory leak

Detected by Valgrind:

==1203168== 2,880 bytes in 57 blocks are definitely lost in loss record 3 of 4
==1203168==    at 0x483877F: malloc (vg_replace_malloc.c:309)
==1203168==    by 0x51ADBEE: strdup (in /usr/lib/libc-2.30.so)
==1203168==    by 0x24D1F8: ocr_bitmap (ocr.c:569)
==1203168==    by 0x24E25B: ocr_rect (ocr.c:907)
==1203168==    by 0x284832: write_dvb_sub (dvb_subtitle_decoder.c:1665)
==1203168==    by 0x284B7A: dvbsub_handle_display_segment (dvb_subtitle_decoder.c:1720)
==1203168==    by 0x285024: dvbsub_decode (dvb_subtitle_decoder.c:1828)
==1203168==    by 0x2406AF: process_data (general_loop.c:648)
==1203168==    by 0x2416D0: general_loop (general_loop.c:1025)
==1203168==    by 0x1AC89A: api_start (ccextractor.c:214)
==1203168==    by 0x16EC03: main (ccextractor.c:536)

* changes: Document OCR memory leak fix
2020-01-21 08:19:19 -08:00
kdrag0n
a0b4e389f9 [FIX] EIA-608 screen clearing fix (#1203)
* eia608: Re-use constant rather than hard-coding length in arrays

Hard-coding them is less clear and more prone to breakage.

* eia608: Add and use constant for max number of rows

Hard-coding it everywhere is unclear and prone to breakage.

* eia608: Initialize colors and fonts properly with a loop

memset is for single-byte types; an enum is defined to be the size of an
int, so using memset to fill an array of enum values is incorrect.

Fix it by using a simple loop to fill the elements, as there is no
memset-like function for arbitrary item lengths in C.

GCC warns:

src/lib_ccx/ccx_decoders_608.c: In function ‘clear_eia608_cc_buffer’:
src/lib_ccx/ccx_decoders_608.c:111:3: warning: ‘memset’ used with length equal to number of elements without multiplication by element size [-Wmemset-elt-size]
  111 |   memset(data->colors[i], context->settings->default_color, CCX_DECODER_608_SCREEN_WIDTH + 1);
      |   ^~~~~~
src/lib_ccx/ccx_decoders_608.c:112:3: warning: ‘memset’ used with length equal to number of elements without multiplication by element size [-Wmemset-elt-size]
  112 |   memset(data->fonts[i], FONT_REGULAR, CCX_DECODER_608_SCREEN_WIDTH + 1);
      |   ^~~~~~
2020-01-20 19:06:06 -08:00
Nils ANDRÉ-CHANG
2281051d3d Remove warning when calling paraof_ocrtext (#1199) 2020-01-19 16:51:41 -08:00
Willem
fc21280857 Merge pull request #1201 from NilsIrl/ocr_hardsubx_cmake_actions
[IMPROVEMENT] Test with OCR and HARDSUBX
2020-01-19 21:36:06 +01:00
Nils André-Chang
746806dcef Cmake with OCR and Hardsubx in different job 2020-01-19 20:30:04 +00:00
Nils André-Chang
812734fd2a Add dependencies 2020-01-19 20:00:03 +00:00
Nils ANDRÉ-CHANG
66d59e498b Make -ocrlang work (#1200) 2020-01-19 11:44:16 -08:00
Nils André-Chang
5599ce9eaf Test with OCR and HARDSUBX 2020-01-19 19:16:15 +00:00
Willem
2e2075ca52 Add GitHub Action for Windows
Adds a GitHub Action that will build CCExtractor for Windows with msbuild. It will build in Release mode and Debug mode, without OCR or other features enabled.
2020-01-19 15:34:25 +01:00
Sam Poder
c69d2db52b [FEATURE] Simple MacOS GUI (#1138)
* Create info.md

* Add files via upload

* Update

* Rename info.md to README.md

* Delete InstallCCExtractor.zip

* Add files via upload

* fix bugs

* Update InstallCCExtractorMacGUI.zip

* Create placeholder.md

* Add Source Files

* Create HowToGenerateApp

* Rename HowToGenerateApp to HowToGenerateApp.md

* Done Alert
2020-01-18 17:34:19 -08:00
Willem
54ecce8b86 Merge pull request #1193 from NilsIrl/cmake_github_action
[IMPROVEMENT] Add Cmake job to github action
2020-01-18 21:45:30 +01:00
Nils André-Chang
82b60988bb Parallelize 2020-01-18 20:20:40 +00:00
Nils André-Chang
ab1af7c678 Add Cmake job to github action 2020-01-18 20:16:15 +00:00
Nils ANDRÉ-CHANG
84ba7c5238 Fix segfault (#1192) 2020-01-18 12:15:40 -08:00
Willem
676be1f193 Add GitHub Action for Linux
Adds a GitHub Action that will build CCExtractor for Linux (Ubuntu in this case) using the shell script and the autoconf option.
2020-01-18 20:05:42 +01:00
Nils ANDRÉ-CHANG
e8cb55e739 [FIX] Fix free segfault (#1190)
* Fix free segfault

I restricted the scope and used free because the features of freep
aren't needed here.

Restricting the scope makes it clear when freeing the variable should be
done.

* Mention that freeing should be done
2020-01-18 09:29:58 -08:00
Nils ANDRÉ-CHANG
30613b224a Fix memory leak (#1187)
Addresses https://github.com/CCExtractor/ccextractor/pull/402#discussion_r368041348
2020-01-18 08:53:43 -08:00
Nils ANDRÉ-CHANG
19241744d7 [FEATURE] SCC and CCD encoder (#1154)
* Fix indentation, use switch instead of if

* Remove confusing comment

Enums are abstractions and should be used as such. They shouldn't be
used like integers.

* Return a const char* instead of char * allocated on heap

* Test return value inline

* Add SCC output

* Add CCD format

* Add channel header to CCD

* Return const pointer

* Revert formatting change

* Colour -> Color

* Fix formatting

* Move comment to relevant place

* Improve readability

* Fix formatting

* Fix erroneous comment

* Use different parity function not requiring GNU extension

* Use enum instead of int

* Fix bug

* Implement channel functionality

* Fix CI errors

* Fix CI build

* Add options to help menu

* Mention change in changelog

* Add file to build systems

* Remove uneeded link against zlib

* Remove the use of <stdbool.h> and use const char

* Rewrite SCC formatter

* Use fdprintf
2020-01-18 08:52:03 -08:00
Willem
27288ccf89 Merge pull request #1189 from NilsIrl/warning_filter_word
[IMPROVEMENT] Fix implicit declaration of function 'add_word'

Closes #1188
2020-01-18 17:31:17 +01:00
Nils André-Chang
34282c17b8 Fix implicit declaration of function 'add_word'
Fix #1188
2020-01-18 16:16:34 +00:00
Nils ANDRÉ-CHANG
227f149670 [FIX] Allow -dvblang that doesn't follow ISO 639-2 (#1183)
* Allow `-dvblang` that doesn't follow ISO 639-2

Fix #1161

* Allows 'und' to be specified to `-dvblang`
2020-01-16 12:03:13 -08:00
Nils ANDRÉ-CHANG
27477e9f7c [IMPROVEMENT] Remove warnings (#1186)
* [Warning] Make subtitle modification work on unsigned char *

* Remove LOG_DEBUG no side effect warning
2020-01-16 08:25:25 -08:00
Jacob Shin
b3018e083e [FIX] Add FT_Done_Face to destroy face objects after they're used (#1184)
* Add FT_Done_Face to destroy face objects after they're used

* Update CHANGES.TXT
2020-01-14 17:11:18 -08:00
Nils ANDRÉ-CHANG
96de55429d Remove freep warnings (#1182) 2020-01-14 11:22:31 -08:00
Nils ANDRÉ-CHANG
863eacc440 Revert "Remove freep warning (#1180)" (#1181)
This reverts commit 78249045f8.
2020-01-13 14:12:39 -08:00
Nils ANDRÉ-CHANG
78249045f8 Remove freep warning (#1180) 2020-01-13 12:16:42 -08:00
Nils ANDRÉ-CHANG
dad108b7e1 Fix wrong format string (#1177) 2020-01-13 07:54:15 -08:00
Dhrumil Patel
79f18b996b [FIX] Added the option to disable timestamps for WebVTT (#1176)
* Added the option to disable timestamps for WebVTT

* Mentioned in changelog

* Added the option to params.c

* Encoder checks its context nwo

* Encoder checks its context
2020-01-12 18:06:26 -08:00
Nils ANDRÉ-CHANG
987c5cd301 Remove useless nulling of pointer (#1171) 2020-01-09 17:36:10 -08:00
Nils ANDRÉ-CHANG
34d0df1d96 [Fix] Make -delay all output formats (#1167)
* Fix indentation

* Calculate subs_delay in encode_sub rather than in the individual encoders

Fix #1103

* Use precalculated times when sub->type == CC_TEXT

* Use calculate delay in encode_sub when sub->type == CC_608
2020-01-09 17:35:19 -08:00
Willem
1db731a7a8 Update CHANGES.TXT 2020-01-05 18:44:05 +01:00
Willem
af67596e66 Merge pull request #1139 from NilsIrl/filter_bad_words
Adds a built-in method to filter bad words to the program.
2020-01-05 18:41:37 +01:00
Jacob Shin
86f98ddf5f Used the INET_ADDRSTRLEN constant for network functions (#1172) 2020-01-04 07:34:10 +01:00
eshandhawan51
bba6c4fcfd [FIX] Solved issue #1131 (#1169)
* Removed invalid free condition for multiple files

* Apply suggestions from code review

statement to free pointer

Co-Authored-By: Nils ANDRÉ-CHANG <nils@nilsand.re>

Co-authored-by: Nils ANDRÉ-CHANG <nils@nilsand.re>
2020-01-02 17:56:02 +01:00
Nils André-Chang
af64fa8a3d Remove multi word profanity 2020-01-01 21:44:02 +00:00
Nils André-Chang
e1d3060232 Fix crash 2020-01-01 17:15:53 +00:00
Willem
3a1815163f Merge pull request #1164 from NilsIrl/patch-1
[IMPROVEMENT] Mention -DWITH_OCR in compilation instruction
2019-12-31 05:26:08 +01:00
Willem
0954b47a24 Merge pull request #1165 from jshin313/xp
[FIX] Change inet_ntop to inet_ntoa for Windows XP compatibility
2019-12-30 19:32:58 +01:00
Jacob Shin
594a83cc4e Update CHANGES.TXT 2019-12-30 11:59:58 -05:00
Jacob Shin
ecec3ea22b Change inet_ntop to inet_ntoa for Windows XP compatibility 2019-12-30 11:55:30 -05:00
Nils ANDRÉ-CHANG
f9cfc7219d Mention -DWITH_OCR 2019-12-30 14:12:15 +00:00
Jacob Shin
c854d25963 [FIX] Get rid of a few compilation warnings (#1160)
* Added underline support

* Added changes to CHANGES.TXT

* Delete CHANGES.TXT~

* Delete .CHANGES.TXT.un~

* Update CHANGES.TXT

* Changed strncpy to memcpy when the size of the data being transferred is known

* Add declaration of struct image_copy before function

* Used strdup for duplicating strings

* Added error checking for strdup
2019-12-29 22:26:30 +01:00
Nils André-Chang
4fe32b1482 Fix syntax error because of forgotten brace 2019-12-28 23:34:55 +00:00
Nils ANDRÉ-CHANG
5fcb31d279 Rename spell_correct to capitalization_list 2019-12-28 23:24:04 +00:00
Nils ANDRÉ-CHANG
b2d3a2fefc Fix error where wrong return valued is checked 2019-12-28 23:24:04 +00:00
Nils ANDRÉ-CHANG
70ac7f9a40 Sort both capitalization and profanity lists 2019-12-28 23:24:04 +00:00
Nils ANDRÉ-CHANG
f739d54cbc Remove checking if function is called twice 2019-12-28 23:24:04 +00:00
Nils ANDRÉ-CHANG
fc78fc3192 Rename fix_subtitles to correct_spelling_and_censor_words_608 2019-12-28 23:24:04 +00:00
Nils ANDRÉ-CHANG
b0e5eb03e1 Feedback 2019-12-28 23:24:04 +00:00
Nils ANDRÉ-CHANG
84cff4d6d8 Fix subtitles for more encoders 2019-12-28 23:21:13 +00:00
Nils ANDRÉ-CHANG
e5575a0f50 Remove useless wrappers 2019-12-28 23:21:13 +00:00
Nils ANDRÉ-CHANG
f4961a0bd8 Remove lower_spell list as it's useless 2019-12-28 23:21:13 +00:00
Nils ANDRÉ-CHANG
e3e810f34e Fix bug with asterisk 2019-12-28 23:21:13 +00:00
Nils ANDRÉ-CHANG
57eb1795aa Make a fix_subtitles function 2019-12-28 23:21:13 +00:00
Nils ANDRÉ-CHANG
37e4d4163f Fix '\0' in output file 2019-12-28 23:21:13 +00:00
Nils ANDRÉ-CHANG
59a8c7a049 Censor word when in dictionary 2019-12-28 23:21:13 +00:00
Nils ANDRÉ-CHANG
8ef89f6bf1 Fix double free error 2019-12-28 23:21:13 +00:00
Nils ANDRÉ-CHANG
2739602575 Add missing continue 2019-12-28 23:21:13 +00:00
Nils ANDRÉ-CHANG
a7d2264cc1 Use correct function 2019-12-28 23:21:13 +00:00
Nils ANDRÉ-CHANG
7d8499a7fb Rename profanity_file to filter_profanity_file. Dump params 2019-12-28 23:21:13 +00:00
Nils ANDRÉ-CHANG
99a12b8737 Add --kf option and parse files 2019-12-28 23:21:13 +00:00
Nils ANDRÉ-CHANG
5b29db341f Remove space before ';' 2019-12-28 22:56:40 +00:00
MarcusGaiusPompey
777ce98aa5 Initialize fatal_ftn before first use (#1155) 2019-12-27 17:47:59 +01:00
Nils ANDRÉ-CHANG
fe9c94d50c Make hardsubx_classifier non executable as it's a C file (#1158) 2019-12-27 09:37:38 +01:00
Jacob Shin
6d074928b6 [FIX] Added underline support for -out=spupng with EIA608/teletext (#1157)
* Added underline support

* Added changes to CHANGES.TXT

* Delete CHANGES.TXT~

* Delete .CHANGES.TXT.un~

* Update CHANGES.TXT
2019-12-26 22:47:52 +01:00
Jacob Shin
1e32bee8e5 [FIX] Added support for font colors and italics (#1132)
* Added support for <i> and <b> tags

* Deleted code support bold

* Added -italics flag to sepcify italics font

* Added function for initializing freetype font face objects

* Added support for color
2019-12-22 19:36:50 -08:00
Nils ANDRÉ-CHANG
6281e128aa Use shebang line that can work on different distributions (#1156) 2019-12-22 13:43:57 -08:00
Fonseverin
c1c0627dab [IMPROVEMENT] Add fatals to params without args (#1152)
* Update cnf file. Correct and comment constants.

* Add URLs to standards.

* Add fatals.

* Add brackets to if-else.

* Update CHANGES.
2019-12-21 19:58:05 -08:00
MarcusGaiusPompey
9cfc345041 [IMPROVEMENT] Removed redundant check_configuration_file function (#1153)
* Removed redundant function

* Updated changelog
2019-12-21 19:51:56 -08:00
Jacob Shin
f3a72bff3d Added back define to make building on Windows work again (#1151) 2019-12-19 11:13:56 -08:00
Fonseverin
e906585287 [IMPROVEMENT] Minor styling improvement. (#1149)
* Add, remove spaces. Optimise if-clause.

* Update cnf file. Correct and comment constants.

* Unite style. Add/Remove spaces. Correct errors.

* Add URLs to standards.

* Correct order in enum.
2019-12-15 09:39:43 -08:00
Carlos Fernandez Sanz
b27c6fe415 Removed duplicated MIN / MAX #define's 2019-12-15 09:37:17 -08:00
Sudoxo
5e888ee895 [FIX] Hang while processing video #1121 (#1146) 2019-12-10 12:53:21 -08:00
Sam Poder
c9f55f5a39 [FIX]Update utf8proc (#1145)
* Create info.md

* Add files via upload

* Update

* Rename info.md to README.md

* Delete InstallCCExtractor.zip

* Add files via upload

* fix bugs

* Update InstallCCExtractorMacGUI.zip

* Create placeholder.md

* Add Source Files

* Create HowToGenerateApp

* Rename HowToGenerateApp to HowToGenerateApp.md

* To Remove Previous Commits to Fork

* UpdateFreeType

* Revert "UpdateFreeType"

This reverts commit fee2da1615.

* hi

* Revert "hi"

This reverts commit dfcd3aec13.

* UpdateFreeType

* fixmistake

* reboot

* reboot
2019-12-10 08:21:19 -08:00
Sudoxo
1e9939bc8a [FIX] Segmentation fault on VOB #1128 (#1142) 2019-12-09 21:18:09 -08:00
Nils ANDRÉ-CHANG
df66746e89 [FIX] Make header respect -lf for the webvtt encoder (#1134)
* Make header respect `-lf`

* [ccx_encoders_webvtt.c] Use the ternary operator to select line endings

* Use sprintf for choosing line ending and use ternary operator

* Revert
2019-12-08 16:46:01 -08:00
Fonseverin
5dac23f156 [FIX] Compilation warnings (#1133)
* Add comments clarifying ccextractor.cnf and locale

* Comments on unobvious ctx entries

* no_rollup explanation in ccx_s_options

* Unified mprint format. Removed obvious comment.

* Commented out unused lines and corrected if-clause

* Changed unsigned char * to char *

* Returned to unsigned buffers

* Unsigned buf converted to signed

* Correct some lines causing warnings

* Added cases TODO. Some minor corrections.

* Better fixes for some warnings

* Convert explicit convert unsigned to signed

* Update CHANGES.TXT

* Update CHANGES.TXT

* Fix typos. Initialization for variables.

* Change comment on no_rollup. No more magic sizeof

* Fix typos. Delete question-comments.

* Change comments.

* Fix vital bug with wrong memset.

* No ugly defines.

* Stash change on extern lib. Correct internal files
2019-12-08 16:44:34 -08:00
Willem
a3148f07ac Merge pull request #1136 from NilsIrl/patch-1
[IMPROVEMENT] Fix typo
2019-12-06 12:06:18 +01:00
Nils ANDRÉ-CHANG
75e21feee3 Fix typo 2019-12-06 09:48:34 +00:00
grave-panda
334a87aed1 [IMPROVEMENT] Update FFMpeg guide to use markdown. (#1130)
* Rename FFMPEG.TXT to FFMPEG.md

* Update FFMPEG.md

update file to use markdown.
2019-12-02 18:37:59 -08:00
Willem
ee3418cd60 Merge pull request #1129 from sampoder/add-tv-samples
[IMPROVEMENT] Add TV Samples to README
2019-12-02 11:29:39 +01:00
Sam Poder
b9ca8a1291 Add TV Samples to README
For people new to the software it can be a challenge to use it for the first time. By adding this to the README they can see the file formats supported and how the software works without having to search for their own file. This will be especially helpful to the many new GCI students who likely don't have much experience in the TV industry but want to learn how the software works.
2019-12-02 16:56:33 +08:00
Prabodh Ranjan Swain
280b4308f7 [FIX] Fixed X-TIMESTAMP-MAP formatting error (#1126)
* Fixed X-TIMESTAMP-MAP formatting error

* Removed reformatting of whole file

* Removed reformatting of whole file
2019-11-25 21:30:16 -08:00
rboy1
45eec1c919 Fix for #1115 (#1123)
Sentence case crash (-sc)
2019-11-11 18:01:19 -08:00
rboy1
7ad5859629 Fix for crash while fixing sentence case (#1122)
Check for null pointer before extracting data
2019-11-11 17:59:56 -08:00
Willem
bdfe4ca25b Merge pull request #1110 from thealphadollar/improve_contributionmd
[IMPROVEMENT] Make COMPILATION.md Easier To Use
2019-10-19 13:37:10 +02:00
thealphadollar
3020fd24e7 Improve COMPILATION.md
- Improve the structure of package installation command to make it easy to copy and paste
- Improve the formatting of code blocks by mentioning language as specified by MD
2019-09-28 07:49:54 +05:30
Carlos Fernandez Sanz
0f2a5b3b96 Make CCExtractor great again (as in at least compile on Windows) 2019-09-22 15:03:05 -07:00
Rob
8fec59e753 [FEATURE] Added support for encoding into an MCC File. (CCExtractor#733) (#1097)
* [FEATURE] Added support for encoding into an MCC File. (CCExtractor#733)

* Missed deleting an unused variable declaration as part of a refactor.
2019-09-20 19:58:56 -07:00
Daniel Barea
7598225ee1 [FIX] Fix several memory leaks using Leptonica API for hardcoded subtitle extraction (#1105)
* Rewritten Tesseract and Leptonica imports

* Fixed memory leak extracting hardcoded subtitles

* Minor code enhancements and cleanups

* Fixed memory leak using function pixSauvolaBinarize

* Updated changelog
2019-09-12 08:24:42 -07:00
Eric Mesa
8a9d924fc1 **[FIX]** Enable RPM creation to work correctly (#1106)
* edited Makefile so that RPMs can actually be created

* added what I intend for the pull request to changes.txt
2019-09-11 21:44:11 -07:00
Justin Greer
2bcd993c0f [IMPROVEMENT] MXF caption frame rates (#1101)
* Decode cdp frame rates in mxf files for accurate caption timings.

* Update changelog re: MXF frame rate parsing.
2019-08-15 20:54:05 -07:00
djaydev
e461c14b48 Update OCR.md (#1100)
I had to add "r" or I would get "configure: WARNING: unrecognized options: "--enable-oc""
2019-08-15 08:42:12 -07:00
Richard
c9a6707fdc avfilterhraph.h merged with avfilter.h. (#1098) 2019-08-05 07:55:56 -07:00
Ray Foss
6cb70be4a4 Add RHEL based distros instructions. (#1094)
These are CentOS 7 based, but should work across the board, specifically including 8. I've tested in CENTOS 7 and Fedora 30
2019-06-11 15:29:46 -07:00
Ray Foss
403581462e [FIX] Remove webvtt styling when not using webvtt-full (#1092)
* no styling unless in full mode

* part 1 of moving style to here

* no style header unless requested with webvtt-full

* only one new line to support x-timestamp-map

* move x-timestamp-map up to abide by specifications

and support ffmpeg and brightcove

* remove stray new line, crlfs are added upstream

297 seems to contain a null bug

* don't write null characters to sub file

* needed space after -full mode style

* typo
2019-06-05 16:55:31 -07:00
Willem
9e212fa104 Merge pull request #1089 from MatejMecka/patch-1
Fix Video links for not converting to Markdown
2019-05-23 14:10:35 +02:00
Matej Plavevski
b6978f2fd8 Fix Video links for not converting to Markdown 2019-05-23 13:55:30 +02:00
Willem
513372978c Merge pull request #1088 from aadibajpai/patch-3
[IMPROVEMENT] Update badge with total download count
2019-05-22 09:44:01 +02:00
Aadi Bajpai
de9b198496 Update badge with total download count
And link to latest release
2019-05-22 12:29:24 +05:30
Willem
dac9de4d67 Update Makefile
Bump version
2019-05-21 20:41:08 +02:00
Willem
d56728bd7f Update configure.ac
Bump version
2019-05-21 20:39:54 +02:00
Willem
7fe8ab767c Update configure.ac
Bump version
2019-05-21 20:36:05 +02:00
Carlos Fernandez
403d2fd8a4 Merge branch 'master' of https://github.com/CCExtractor/ccextractor 2019-05-21 11:35:19 -07:00
Willem
a9c3207773 Update PKGBUILD
Bump version
2019-05-21 20:34:41 +02:00
Carlos Fernandez
bf478c0ee2 build and builddebug: Updated reference to package in Ubuntu (tesseract has been renamed) 2019-05-21 11:34:18 -07:00
Willem
324667b3e6 Update ccextractor.spec
Bump version
2019-05-21 20:33:52 +02:00
Willem
3ccb250d18 Update debian.sh
Bump version to 0.88
2019-05-21 20:32:44 +02:00
Willem
15b42e2d0c Update README.md
Remove the Google Code In from the readme
2019-05-21 20:28:27 +02:00
Carlos Fernandez Sanz
181b8650ab Added release date for 0.88 in CHANGES.TXT 2019-05-21 11:21:35 -07:00
Carlos Fernandez
724d756aa6 Version bump (0.87 -> 0.88) 2019-05-21 10:59:20 -07:00
Artem Fedoskin
2f096879d5 Fixes #1086 by adding -latrusmap option that maps Latin symbols to Cyrillic ones in some of the Russian Teletext files (#1087) 2019-05-18 10:41:34 -07:00
Artem Fedoskin
d3543ff1a2 Fixes #1084 by adding check for NULL string in ocr.c (#1085) 2019-04-30 17:45:31 -07:00
Carlos Fernandez Sanz
17a6779146 Moved tesseract .h files (which we use for windows builds) into their own directory so the reference is consistent when building on linux from a tesseract in a standard location. 2019-04-04 09:54:39 -07:00
Artem Fedoskin
116f308a0b Improve the way Tesseract is initialized in hardsubx. Fix segfault during the cleaning the frame data in hardsubx. (#1083) 2019-03-25 16:20:45 -07:00
Saurabh Shrivastava
414a57d97e [FIX] Travis build for macOS. Also add cmake build test. (#1063)
* Fix macOS travis build and remove linux builds.

* Add Apple logo for macOS build badge.

* Link the apple logo to travis build.

* Correct redundant compiler type.
2019-03-23 15:24:42 -07:00
Matej Plavevski
6d7c60fe14 [IMPROVEMENT]Update Protobuf-c (#1022)
* Update Protobuf-c

* Try changing place?

* Remove Spaces
2019-03-23 15:21:02 -07:00
Artem Fedoskin
718cf55131 [FEATURE] Added support for DVB inside MKV (#1082)
* [FIX] Fix incorrect comparison of strings for AVC codec id in .mkv

* Initial work on adding DVB support to .mkv

* [REQUEST] Finished adding support for DVB inside MKV (#1000)

* Update CHANGES.TXT
2019-03-23 08:27:34 -07:00
Artyom Fedoskin
4d24568a0b [FEATURE] Added support for EIA-608 inside MKV (#1080)
* Initial work on adding EIA-608 support to Matroska

* [REQUEST] Finished adding support for EIA-608 inside MKV (#1068)
2019-03-15 17:30:48 -07:00
Artyom Fedoskin
ab4f3d0d26 Fixes #1077 by adding check for empty streams (#1079) 2019-03-09 11:04:39 -08:00
cweickhmann
9f308271b9 Update COMPILATION.MD (#1073)
At least in Ubuntu 18.04 (possibly the related Debian version and newer Ubuntus) the package `tesseract-ocr-dev` does not exist anymore. It was replaced by `libtesseract-dev`.
2019-02-20 10:52:23 -08:00
Matej Plavevski
b2d97eb627 Add Google Code-in Winners / finalists (#1066) 2019-01-20 22:03:52 +01:00
ShouryaAggarwal
6209c63ccf [FIX] for issue #668 (Windows and Multicast) (#1059)
* Fixed udp multicast stream issue on windows

* Optimized OS detection for source multicast.

* Moved the udp read code to networking.c file
2018-12-26 18:09:41 +01:00
ShouryaAggarwal
fbf99e8a5e [FIX] #995 for All platforms and removed the icons folder in source package (#1057)
* Fixed the icon file not found error for windows and linux.

* Optimized distribution of icons and removed CSW dependency while running GUI

* Font and icons are now loaded directly from memory

* Added source icons and icons to C array convertor
2018-12-25 23:08:06 +01:00
Anshul Maheshwari
ebcd2bc9ca Merge pull request #1060 from anshul1912/master
Add more tapping points while debugging tesseract
2018-12-22 18:00:07 +05:30
Anshul Maheshwari
0b76cc1991 Add more tapping points while debugging tesseract
When OCR_DEBUG is defined, code will dump more images
to find root cause of failed OCR
2018-12-22 15:12:46 +05:30
Saurabh Shrivastava
9c20e0afb1 Don't add files with empty filename. Also better message for multiple input files. (#994) 2018-12-18 12:16:04 -08:00
MakarovGCI2018
74eefaeea7 [FEATURE] Added support for non-Latin characters in stdout (#1056)
* Update ccextractor.c

* Update CHANGES.TXT
2018-12-14 12:36:35 -08:00
MakarovGCI2018
5a8758fdd2 [FIX] Fixed a minor reportng stats bug (#1054)
* Fixed a minor bug

* Update CHANGES.TXT

* Update CHANGES.TXT
2018-12-12 10:35:56 -08:00
Samuel Deng
7b4bf0b15a **[FIX]** Fix typos; **[IMPROVEMENT]** Update .gitignore for Visual Studio databases (#1052)
* Fix many typos

* Ignore Visual Studio temporary project files

* Log previous 2 commits in CHANGES.TXT
2018-12-11 12:29:21 -08:00
Carlos Fernandez Sanz
be34781a64 Clarify bugfix on encoder being NULL (CHANGES.TXT) 2018-12-02 12:50:25 -08:00
MakarovGCI2018
e3c14991b3 [FIX] Fixed /dev/null bug (#1048)
* Update general_loop.c

* Update general_loop.c

* Update CHANGES.TXT

* Update general_loop.c
2018-12-02 12:48:18 -08:00
Anshul Maheshwari
38fc6e5623 Merge pull request #1038 from anshul1912/master
Add support for 4.0 tesseract
2018-11-07 18:53:45 +05:30
Anshul Maheshwari
5dbbe654f0 Add support for 4.0 tesseract 2018-11-07 14:13:36 +05:30
Anshul Maheshwari
5df1dbb922 Merge pull request #1037 from anshul1912/master
[IMPROVEMENT]Remove multiple RGB to grey conversion while OCR
2018-11-05 16:31:02 +05:30
Anshul Maheshwari
ef3d25c25b Indentocr.
Some Space and Indentation
2018-11-05 15:09:08 +05:30
Anshul Maheshwari
d22ab6f9a1 remove multiple RGB to grey conversion while OCR 2018-11-05 15:03:10 +05:30
Anshul Maheshwari
b8a15f6f9d Merge pull request #1036 from AZtheAsian/master
[IMPROVEMENT] Added missing options to help text
2018-11-05 07:46:22 +05:30
Alan Zhu
ebf06a9c2b Added missing options to help text 2018-11-04 10:46:07 -07:00
Anshul Maheshwari
04abf755c2 Merge pull request #1035 from T1duS/cmake_warnings
[FIX] Removed some CMake Warnings
2018-11-02 19:52:26 +05:30
T1duS
a99bc37d88 Removed some CMake Warnings 2018-11-02 14:48:49 +05:30
Matej Plavevski
1807ea9098 [IMPROVEMENT] Warn instead of Crash for Missing Final 0xFF Marker! (#1032)
* Less Harsher when Marker is missing

* Update changelog

* Skip Block by breaking

* Reference GitHub issue

* Forgot {}

* Update docs/CHANGES.TXT

Co-Authored-By: MatejMecka <matej.plavevski+github@gmail.com>
2018-11-01 17:07:53 -07:00
Anshul Maheshwari
0b29fc2329 Merge pull request #1031 from T1duS/autotool_warning_removal
[FIX] Autotool warning removal
2018-11-01 15:58:47 +05:30
T1duS
ced636025e Merge branch 'autotool_warning_removal' of https://github.com/T1duS/ccextractor into autotool_warning_removal 2018-11-01 15:05:41 +05:30
Aadi Bajpai
3cfe406a79 Add downloads badge for v0.87 (#1033) 2018-10-31 14:50:51 -07:00
Udit Sanghi
23a745dcec Merge pull request #1 from CCExtractor/master
.
2018-10-31 22:34:34 +05:30
T1duS
03b1f5bfd2 Removed compile warnings caused by autotools 2018-10-31 22:23:23 +05:30
Udit Sanghi
b8c1499111 Fixed some warnings (#1030) 2018-10-29 17:06:06 -07:00
T1duS
3189fc915e Fixed some warnings 2018-10-29 16:14:16 +05:30
MakarovGCI2018
127756b838 Added Visual Studio compilation guide (#1029)
* Updated COMPILATION.MD

* Delete COMPILATION.MD

* Update COMPILATION.MD

* Update COMPILATION.MD

* Update COMPILATION.MD

* Update COMPILATION.MD

* Update COMPILATION.MD

* Update COMPILATION.MD

* Update COMPILATION.MD

* Update COMPILATION.MD

* Update COMPILATION.MD
2018-10-28 20:26:44 -07:00
Anshul Maheshwari
e0b909a67e Correct compilation guide for ocr 2018-10-28 13:27:45 +05:30
Willem
475865b3be Merge pull request #1009 from saurabhshri/gci
[IMPROVEMENT] Add GCI banner and change text.
2018-10-27 12:28:05 +02:00
Willem
3a6fd3450d Merge pull request #1012 from saurabhshri/changelog
Add a requirement in PR to update changelog.
2018-10-27 12:27:33 +02:00
Matej Plavevski
81a00ddf55 [IMPROVEMENT]Update LibPNG to 1.6.35 (#1017)
* Update LibPNG to 1.6.35

* Convert to Unix format
2018-10-26 14:17:05 -07:00
Carlos Fernandez
4ff40f1be8 Fix compilation of utf8proc on Windows 2018-10-26 14:07:59 -07:00
Matej Plavevski
8861f7b40a Take 2 on upgrading (#1019) 2018-10-26 13:57:39 -07:00
Saurabh Shrivastava
96edd9031e Add a requirement in PR to update changelog. 2018-10-24 04:42:39 +05:30
Carlos Fernandez Sanz
11f87f2b6d Added all relevant changes since 0.86 2018-10-23 14:36:20 -07:00
Anshul Maheshwari
86de4151d2 Release 0.87 2018-10-23 06:45:02 +05:30
Saurabh Shrivastava
edae5a3cea Add GCI banner and change text.
- Corrected and improved text
- Added link to GCI post on ccextractor website.
2018-10-22 23:48:51 +05:30
Anshul Maheshwari
d3cc65ce4e Numberd string for Visual studio steps 2018-10-21 22:21:21 +05:30
Anshul Maheshwari
6593fc1d32 Highlight bash command as code blocks 2018-10-21 22:00:53 +05:30
Anshul Maheshwari
633a1e8bb1 Add few space as md recommendation
Add few space to show newline as newline through md.
2018-10-21 21:52:58 +05:30
Neetika Rathi
6a058e69e7 Renamed txt file to md 2018-10-21 21:27:42 +05:30
Anshul Maheshwari
e3c5156de9 Fix Compilation using cmake on linux (#1004)
Linux Distribution Details:
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.5 LTS
Release:        14.04
Codename:       trusty

Failing cmake command:
cmake -DWITH_FFMPEG=ON ../src/

Passing cmake command:
cmake ../src/
2018-09-22 10:38:52 -07:00
Aadi Bajpai
8d379f7b5c Add GCI 2018 info (remove GSoC 2018) (#1003) 2018-09-20 17:35:46 -07:00
Krushan Bauva
45ed8456ee [FIX] Fix some minor memory leaks (#989)
* Destroy pix after use and release memory

* Free the frame and any dynamically allocated objects in it

* Fix typographical error

* Free the packet that was allocated by av_read_frame

* Add missing declarations
2018-07-17 22:45:27 -07:00
Naveen Saini
ef63d61f3d Update patch for windows priority with functions (#990)
* update for windows priority

* Update ccx_decoders_708.h

* to solve timing issue bugs

one of many instances where data is received without any window defined in decoder.

* Update ccx_decoders_708.c
2018-07-17 15:21:57 -07:00
Naveen Saini
6b1ad9951f Fix caption loss due to CW command (#991)
* add code to copy window data before CW command

* Update ccx_decoders_708.c

* Update ccx_decoders_708.c
2018-07-17 15:20:43 -07:00
Willem
c2c692fe0a Merge pull request #993 from aadibajpai/patch-1
[IMPROVEMENT] Update Logo
2018-07-17 08:17:20 +02:00
Aadi Bajpai
662299b324 [IMPROVEMENT] Update Logo
Replaced old logo with the new one.
2018-07-17 02:13:28 +05:30
Krushan Bauva
25a8b53ff5 Correct typographical error (#984) 2018-05-31 09:46:00 -07:00
atrottmann
466b50bca6 added missing break statement (#987) 2018-05-31 09:45:23 -07:00
Willem
1fac910c3e Merge pull request #980 from thealphadollar/correct_help
[IMPROVEMENTS] Update CLI help and HARDBUX Installation Instructions
2018-05-20 18:50:52 +02:00
thealphadollar
68e6f2616d Update instructions to install with HardSubx
Currently the instructions to install with hardsubx are vague and a new method was added in PR #966
This method makes installation with HARDSUBX easy and hence has been added to the documentation.
2018-05-15 12:39:23 +05:30
thealphadollar
d0d8529afa [FIX] Remove instance of o1 and o2 from help
There are no parameters as o1 or o2 in ccextractor but they have been mentioned in the help.

This commit removes such instances from file(s).

Change severity: trivial
2018-05-06 20:13:53 +05:30
Chris Lamb
b36429879d Make the build reproducible (#976)
Whilst working on the Reproducible Builds effort [0], we noticed
that ccextractor could not be built reproducibly.

This is due to it including the current date.

This was originally filed in Debian as #896867 [1] and uses the
SOURCE_DATE_EPOCH environment variable [2].

 [0] https://reproducible-builds.org/
 [1] https://bugs.debian.org/896867
 [2] https://reproducible-builds.org/specs/source-date-epoch/

Signed-off-by: Chris Lamb <lamby@debian.org>
2018-04-25 11:17:50 -07:00
Shivam Kumar Jha
c7bc2b78ac [IMPROVEMENT] Update libGPAC (#974)
* Add Updated GPAC

File changes have been directly inserted from libGPAC master into ccextractor's libGPAC.

This has resulted into removal of multiple custom functions and minor changes. These will be rectified in the next step of the updation.

Change severity: Very High

* Update libGPAC dependency

We use libGPAC for all our MP4 operations and, this commit updates it to the latest version.

All previous changes to the original library were restored post straight file updation and bugs have been removed.

change severity: very high

* Add Guide To Updating Dependencies

A small textual guide on how to update dependencies easily and efficiently.
2018-04-23 11:24:03 -07:00
Carlos Fernandez
1afe08af08 Extra line 2018-04-23 11:22:32 -07:00
Carlos Fernandez
52707267fc linux/builddebug: Added non-local directories to the incluye search path so we don't require a locally compiled tesseract or leptonica 2018-04-02 17:24:47 -07:00
Shivam Kumar Jha
e507b2092b [FIX] Correct -HARDSUBX Bug In CMake (#971) 2018-04-01 13:58:43 -07:00
Saurabh Shah
d23cb8571d Fix possible segfaults in hardsubx_classifier.c due to strdup (#963)
strdup will give a segmentation fault if the argument passed to it is
NULL. TessResultIteratorGetUTF8Text returns a char* which can be NULL
and we should not call strdup directly over it. Once we check if the
value returned is not NULL, then we can call strdup.
2018-03-16 11:22:20 -07:00
Shivam Kumar Jha
b2e83ea1a6 allow build with hardsubx using cmake (#966) 2018-03-13 12:40:09 -07:00
Shivam Kumar Jha
3d6a9f4d57 [IMPROVEMENT] Add LICENSE File (#959)
* [IMPROVEMENT] Add LICENSE File

We should be adding a LICENSE File to the root of the project. We do mention that we follow GPL v2 and hence can include it's declaration file.

* Rename LICENSE to LICENSE.txt
2018-03-12 11:19:47 -07:00
Saurabh Shah
86356ba4d2 Improve the start and end timestamps of extracted burned in captions (#962)
The start and end timestamps of extracted burned in captions are flawed
and off by a large difference. Also, the start time of the first burned
in caption extracted is always zero, which is not always the case. And
the extracted captions always appear in continuous timestamps.

This commit improves the start and end timestamps of the extracted
burned in captions and reduces the error significantly, bringing the
timestamps fairly close to the actual timings as they appear in the
media file.
2018-03-12 11:19:24 -07:00
Shivam Kumar Jha
801f9e8dc8 [IMPROVEMENT] Update COMPILATION.md (#960)
Add instructions to make the installation systemwide (on Linux) which can allow CCExtractor to be used from anywhere with just the below command in terminal:
`ccextractor [videofile]`
2018-03-08 13:33:52 -08:00
Carlos Fernandez
cbcedaf2bd Fixed crash with "-out=report" and "-out=null" 2018-03-07 17:26:08 -08:00
Shivam Kumar Jha
5ada966010 [FIX]-nocf not working with OCR'ing (#958)
* Fix -nocf not working with OCR'ing

* remove dvbcolor and nodvbcolor parameter
2018-03-06 13:16:26 -08:00
Shivam Kumar Jha
587f0b8609 Display quantisation mode in info box (#954) 2018-03-06 11:35:09 -08:00
Saurabh Shah
f46e3dcfc2 Fix segfault in add_cc_sub_text and initialize to NULL in init_encoder (#950)
This commit adds some checks to avoid segmentation faults.

* In `add_cc_sub_text()`, strdup will cause a segfault if we duplicate an
  empty string.

* In `init_encoder()`, initialize pointer fields to NULL to avoid random
  addressing so we can avoid illegal memory accessing and segfaults in
  other places.
2018-03-05 13:55:01 -08:00
Carlos Fernandez
a0e7ddd632 ccx_decoders_common.c: Copy data type when creating a copy of the subtitle structure 2018-02-28 19:42:38 +00:00
Krushan Bauva
3267c68c3b [FIX] Implicit declaration of these functions throws warning during build (#948)
* Declare gf_lang_find function in isom_write.c

* Declare gf_lang_get_3cc function in isom_write.c
2018-02-28 10:51:16 -08:00
Carlos Fernandez
c829c94e54 ccx_decoders_common.c: Properly release allocated resources on free_subtitle() 2018-02-27 22:28:01 +00:00
Carlos Fernandez
39b96cc544 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. 2018-02-27 14:15:52 -08:00
Carlos Fernandez
5a79b71e70 dvb_subtitle_decoder.c: When combining image regions verify that the offset is never negative.
ts_functions.c: Added an #ifdef block to save TS packets in a temp file. Just for debug purposes.
2018-02-27 20:48:13 +00:00
Saurabh Shah
57b230e91d Add instruction required to build ccextractor with HARDSUBX support (#946)
To build ccextractor with hardsubx support on linux, we need to configure
ccextractor with the `-enable-hardsubx` switch along with the
`ENABLE_HARDSUBX` flag passed during compilation with make. This commit
adds the missing configure instruction.
2018-02-27 12:17:14 -08:00
achaudhary997
b7a2aca34e Updated traivis.yml to fix osx build (#947) 2018-02-27 11:34:26 -08:00
Manish Mahalwal
cbda2deda2 [FIX] Add utf8proc src file to cmake, updated header file (#944)
* Add utf8proc source file to cmakelists

* Update utf8proc header file

* change "utf8proc.h" to "utf8proc/utf8proc.h"
2018-02-27 10:59:20 -08:00
Carlos Fernandez
779e9c64c1 Added required pointers on freep() calls 2018-02-27 02:49:11 +00:00
Carlos Fernandez
26d488a979 - Removed dvb_debug_traces_to_stdout and used the usual dbg_print instead
- struct cc_bitmap removed data[2] and replaced with two separate variables, since they are unrelated
2018-02-26 18:29:43 -08:00
Carlos Fernandez
ef7d4a2b4b Additional debug traces for DVB
Fix minor memory leak
2018-02-27 02:07:17 +00:00
Carlos Fernandez
c6102d3b2a Fix issue with displaying utf8proc version. 2018-02-26 11:17:13 -08:00
Manish Mahalwal
4d7d4cc109 Fix failing cmake due to liblept/tesseract header files (#941) 2018-02-26 11:11:59 -08:00
Manish Mahalwal
f717624bfa [FEATURE] Added version no. of libraries to --version (#939)
* Added version no. of libraries to --version

* Fix link

* ifdef used for tesseract/leptonica

* fix spelling
2018-02-25 09:16:48 -08:00
Carlos Fernandez Sanz
2114a80dbb Added GSoC to README.md (removed GCI) 2018-02-23 14:56:54 -08:00
Carlos Fernandez
5df3500a9f Added missing \n in params.c 2018-02-23 19:49:07 +00:00
Sourav Sahoo
393fbd30b0 [IMPROVEMENT] Corrected the tags file format of ctags in .gitignore (#908)
* Added tags file and removed the previosly wrongly writtern file

* Added .vscode to visual code section

* Added the .tags in .gitignore

* Changed *.tags to *.tags*
2018-02-23 11:36:59 -08:00
Shivam Kumar Jha
9dc1e0a9e2 Modify -quant 0 option (#932) 2018-02-23 11:34:43 -08:00
Carlos Fernandez
4875508f70 builddebug: Use -fsanitize=address -fno-omit-frame-pointer
write_dvb_sub(): Test for out of bounds and report details when this happens. Still doesn't fix the underlying issue but will help figure it out.
ocr.c: Solve malloc()/delete[] combinations that happened when operating on tesseract output. Now a malloc()'ed copy is immediately made, tesseract's results are unallocated using tesseract's delete function, and we continue using our own copy which is later free()'d.
2018-02-22 01:31:30 +00:00
Carlos Fernandez
b1c00233b3 ccx_decoders_common.c: Removed trivial memory leak.
ccx_encoders_srt.c: Made sure a pointer is non-NULL before dereferencing.
dvb_subtitle_decoder.c: Initialize pointer members to NULL when creating a structure.
lib_ccx.c: Initialize (memset 0) structure cc_subtitle after memory allocation.
README.TXT: Removed reference to sourceforge.
2018-02-21 20:31:09 +00:00
Carlos Fernandez
f85e65ba32 Updated mailing list (changed sourceforge for google groups) 2018-02-21 20:21:24 +00:00
Carlos Fernandez
150d2e7404 Add -quant (OCR quantization function) 2018-02-16 16:43:07 -08:00
Carlos Fernandez
2b997135e5 Added verboseness to error/warnings in dvb_subtitle_decoder.c 2018-02-16 14:38:54 -08:00
Carlos Fernandez
3e815ed590 Merge branch 'pr/n926_BPYap' (teletext fix)
Added verboseness to error/warnings on dvb_subtitle_decoder.c
2018-02-16 14:38:03 -08:00
Carlos Fernandez
550d3207ad Merge branch 'master' of https://github.com/CCExtractor/ccextractor 2018-02-15 22:44:11 +00:00
Carlos Fernandez
f78a1fdf95 dvb_subtitle_decoder.c: Start work on passing invalid streams errors upstream (plus some warning messages) so we can eventually recover from this situation instead of crashing.
general_loop.c: Display warning on DVB parse error. We will still crash though.
2018-02-15 22:42:23 +00:00
Yap Boon Peng
b7545e0092 Fix code indentation 2018-02-14 12:39:43 +08:00
mkver
679a69f25c Update telxcc.c (#930)
Currently setting a colour doesn't necessarily add a space even though the specifications mandate it. This commit is designed to change that.
2018-02-13 17:04:25 -08:00
Carlos Fernandez
20e439f9d8 dvb_subtitle_decoder.c: Fix null pointer derefence when region==NULL in write_dvb_sub 2018-02-13 16:43:45 -08:00
BPYap
5d3e2cdbb9 Fixing Bug #922 2018-02-14 01:16:14 +08:00
BPYap
93859297c1 Fix Bug #922
Provide checks to characters between 0xA and 0xB and set them to 0x20 while  maintaining color information
2018-02-13 20:40:24 +08:00
BPYap
2258ab23ef Fix Bug #922
Provide checks to characters between 0xA and 0xB and set them to 0x20
2018-02-13 20:31:14 +08:00
BPYap
9b0c12a1c2 Fix Bug #922 2018-02-13 18:20:23 +08:00
BPYap
8ff8443b5e Fixing Bug #922 2018-02-13 17:37:30 +08:00
BPYap
6295496d15 replace all 0xA characters within startbox with 0x20 2018-02-12 16:42:27 +08:00
Shivam Kumar Jha
6e2ce11b26 Upgrade code to be compatible with Python 3 (#925) 2018-02-09 12:57:09 -08:00
BPYap
bcffe2abb9 solving [BUG] DVB Teletext subtitle incomplete #922
attempt to solve issue #922 by replacing 0xB and 0xA in the middle of row with space character
2018-02-08 19:29:36 +08:00
Aadi Bajpai
da132b379a [FIX] Prevent GitHub from caching the README badge (#921)
* Tried auto-updating badge

* Value in seconds making it update in 30m
2018-02-05 08:59:27 -08:00
Null
116656e62e Fix a minor spelling error in mp4.c (#924) 2018-02-05 08:58:39 -08:00
Carlos Fernandez
7be11b4e08 Merge branch 'master' of https://github.com/CCExtractor/ccextractor 2018-01-31 13:04:49 -08:00
Carlos Fernandez
8521819a46 Add missing return value to one of the returns in process_tx3g(). 2018-01-31 13:04:27 -08:00
lennonwoo
9a6529b17f Tidy CMakeLists & vcxproj (#920) 2018-01-25 08:25:00 -08:00
Carlos Fernandez Sanz
26e96f362a Update ISSUE_TEMPLATE.md 2018-01-24 18:19:59 -08:00
Carlos Fernandez
267abc2050 Corrected an issue with the Windows builds after the previous merge 2018-01-24 18:12:26 -08:00
Carlos Fernandez
dcc9d0c4af Merge branch 'pr/n916_lennonwoo' 2018-01-24 18:11:38 -08:00
Carlos Fernandez
4b5c01e3e7 Merge branch 'master' of https://github.com/CCExtractor/ccextractor 2018-01-24 17:41:33 -08:00
Carlos Fernandez
1ef7add534 - Added m2ts and -mxf to help screen
- Added MKV to demuxer_print_cfg (this was a bug)
- Added MXF to demuxer_print_cfg
 BugFix: "Out of order packets" error had wrong print() parameters
2018-01-24 17:41:14 -08:00
Aadi Bajpai
93ca53d489 Added SourceForge Downloads Badge (#913)
Review whenever convenient :)
2018-01-24 12:30:22 -08:00
Willem
604dd4d648 Merge pull request #917 from TheClashster/patch-2
[IMPROVEMENT] Display Sample-Platform Build Badges on README
2018-01-24 18:46:23 +01:00
Aadi Bajpai
4d5d0c9063 Add Sample-Platform Badges to Readme 2018-01-24 22:58:24 +05:30
Willem
7f2b20dc98 Merge pull request #906 from thealphadollar/master
[IMPROVEMENT] Update .gitignore
2018-01-24 11:22:23 +01:00
lennonwoo
7ad5c226e6 update python extension doc 2018-01-24 16:00:50 +08:00
lennonwoo
a3bb05242f update api_testing 2018-01-24 15:47:26 +08:00
lennonwoo
180da3ed5a update build scripts 2018-01-24 15:46:22 +08:00
lennonwoo
ddc7c197c8 refactor pass_cc_buffer_to_python 2018-01-24 15:43:43 +08:00
lennonwoo
da72afeb7c move asprintf to utility 2018-01-24 15:42:52 +08:00
lennonwoo
913432232d clear up which function as api 2018-01-24 15:42:23 +08:00
lennonwoo
84ce45b8f0 be quiet when in PYTHON_API mode 2018-01-24 15:34:02 +08:00
lennonwoo
b003ed7394 remove trivial signal_python_api & global array func 2018-01-24 15:31:27 +08:00
lennonwoo
941077c11c remove swig Auto-generated files 2018-01-24 15:25:04 +08:00
thealphadollar
2116c4a964 Modify git-ignore 2018-01-22 21:28:22 +05:30
Null
0a5111d7eb Fix incorrect path in XML (#904) 2018-01-18 21:51:56 -08:00
Carlos Fernandez
c4962114b6 Merge branch 'master' of https://github.com/CCExtractor/ccextractor 2018-01-16 16:21:28 -08:00
Carlos Fernandez
8050c34174 Updated CHANGES.TXT with "- New: mp4 tx3g & multitrack subtitles" 2018-01-16 16:20:59 -08:00
Null
f172c50d2b [IMPROVEMENT] Minor changes - Add default fonts in the --help (#899)
* Minor changes - Add default fonts in the --help

* Revise
2018-01-16 16:19:36 -08:00
Carlos Fernandez
12b438d05a VS solution: box_dump.c was listed twice, removed one of them.
Added minor comment in networking.c
2018-01-16 10:51:41 -08:00
Null
26215c258b Fix compilation error in CMake 2018-01-16 16:03:08 +08:00
Null
71ac0ad43a [FEATURE] Support mp4 tx3g & multitrack subtitles (#898)
* Support mp4 tx3g & multitrack subtitles

* Fix indentation

* Minor changes

* Add a comment
2018-01-13 16:42:14 -08:00
Null
ca026ecbaa [IMPROVEMENT] Fix some warnings (#896 ) (#897)
* Fix some warnings

* Fix more warnings

* Fix more warnings
2018-01-11 23:19:40 -08:00
Carlos Fernandez
5b124c0ce2 linux build script (non-debug): Don't hide warnings from compiler.
linux build script (debug): Display what's step of the build script
we're in.
2018-01-12 00:05:23 +00:00
Carlos Fernandez
355b57b26f Version push to 0.87
Moved history and people to AUTHORS.TXT from README.TXT
2018-01-11 12:42:18 -08:00
Matej Plavevski
eeccc74128 Add Google Code In 2017 Participants (#875) 2018-01-11 11:05:49 -08:00
Carlos Fernandez
8751363df8 Merge branch 'pr/n894_harrynull' 2018-01-11 10:51:59 -08:00
Willem
f729181262 Merge pull request #895 from harrynull/ci
[FIX] Fix Travis CI not executing `linux/build`
2018-01-11 11:51:49 +01:00
Null
a6f2f33ccf Fix compilation in MacOS 2018-01-11 18:31:27 +08:00
Null
bb18bdb932 Merge branch 'libgpac' of https://github.com/harrynull/ccextractor into libgpac 2018-01-11 17:42:24 +08:00
Null
4a7946ab7d Fix more compilation error 2018-01-11 17:41:56 +08:00
Null
3203ac14d3 Change to before_install 2018-01-11 16:48:36 +08:00
Null
98edef2233 Add more cd 2018-01-11 16:47:22 +08:00
Harry Null
732c1a3926 Fix compilation in Linux 2018-01-11 16:44:14 +08:00
Null
9c1e7c5c98 Fix travis 2018-01-11 16:26:48 +08:00
Null
19352fdd03 debug travis 2018-01-11 16:07:54 +08:00
Null
8b159cc64d Add GSOC files back 2018-01-11 15:01:10 +08:00
Null
8d9e54130d More build files 2018-01-11 15:01:02 +08:00
Null
a473ef2e92 merge 2018-01-11 14:45:32 +08:00
Null
dfb26f49a2 Modification to libgpac 0.7.1 2018-01-11 14:36:54 +08:00
Null
86a39802d3 Upgrade gpac to 0.7.1 2018-01-11 12:56:49 +08:00
Null
a5f17c318d Merge branch 'master' into libgpac 2018-01-10 19:59:52 +08:00
Null
90733963e5 Minor fix 2018-01-10 18:50:23 +08:00
Carlos Fernandez
5dc06c341c Corrected date on CHANGES.TXT for 0.86 - it's 2018 already! 2018-01-09 15:13:35 -08:00
Carlos Fernandez
03646de1a5 Added release date (today) to CHANGES.TXT
Edited docs/README.TXT a bit
2018-01-09 14:51:22 -08:00
Carlos Fernandez
811a9a4992 Merge branch 'master' of https://github.com/CCExtractor/ccextractor 2018-01-09 14:49:03 -08:00
Carlos Fernandez
fa545d2806 Added release date for 0.86 (today), and modified README.TXT a bit. 2018-01-09 14:48:34 -08:00
Saurabh Shrivastava
5079d57766 Move show specific dictionaries to separate repo. (#891)
Show specific decitionaries are moved to https://github.com/CCExtractor/show_specific_dictionaries .
2018-01-09 12:14:18 -08:00
Carlos Fernandez
2d7c1718b4 Added FT2_BUILD_LIBRARY to the preprocessor definitions in debug_full, release and release_full configurations in the VS solution files - required for building. 2018-01-09 12:04:44 -08:00
Carlos Fernandez
b947601083 Minor change in params.c - specify that the value for -font is a full path. 2018-01-09 11:04:54 -08:00
Carlos Fernandez
fe8ef083aa Updated CHANGES.TXT 2018-01-09 10:58:28 -08:00
Null
930ca716ca [FEATURE] FreeType-based text renderer (-out=spupng with teletext/EIA608) (#877)
* Implementation of text renderer

* Fix some characters being cut

* Fix encoding and other bugs

* Add black background & fix bugs

* Fix more bugs

* Change to relative path

* Add a font option & Default font for MacOS & Fix anti-aliasing

* Document -font & enlarge default canvas
2018-01-09 10:24:26 -08:00
Null
8f0294b763 Add FreeType (#876) 2018-01-09 10:24:06 -08:00
Hori75
cde884faae Merge branch 'master' of https://github.com/Hori75/ccextractor 2018-01-04 09:14:52 +07:00
Willem
377dc2a48d Merge pull request #873 from AbhijithGanesan/development
Change contributor guide link
2018-01-02 19:58:50 +01:00
Hori75
7a4f4a8f79 Remove thread.h (it doesn't needed) 2018-01-02 18:38:23 +07:00
Abhijith Ganesan
97cc3ee2a7 Change contributor guide link
Original link no longer exists; replaced with User link
2018-01-01 21:05:50 +00:00
DHSYongJun
12e38343f8 New README for GCI (#872)
Documentation: Write a better README for our GitHub page
2018-01-01 10:50:16 +01:00
Aadi Bajpai
151d04a870 [IMPROVEMENT] Minor typographical fix (#868)
Looks better now
2018-01-01 10:46:44 +01:00
Hori75
a5317799e8 Configuring the vs project solution 2017-12-31 19:40:38 +07:00
Hori75
d96b8e0e83 Modify makefile.am for linux and mac 2017-12-31 19:39:39 +07:00
Hori75
bbe2f33399 The real changes (This gonna be messy) 2017-12-31 19:36:08 +07:00
William
c8008b441a {IMPROVEMENT] Whitespace changes (Part of libGPAC update) (#870)
* Whitespace changes

* Update tools.h
2017-12-31 13:05:44 +01:00
Null
d4f3c9c6a1 Fix dvb subtitle not extracted if there's no display segment (#866) 2017-12-31 09:41:51 +01:00
Null
f7d16d846c Fix a bug that caused -out=spupng sometimes crashes (#864) 2017-12-31 09:39:02 +01:00
Null
dd4032e515 Fix a heap corruption in add_ocrtext2str (#865) 2017-12-31 09:20:30 +01:00
Null
84a9ea5572 Fix OCR issue caused by separated dvb subtitle regions (#857) 2017-12-28 09:19:04 +01:00
Alex Huang
5e8a5590ce reworks scanning newlines to look for content in a line (#858) 2017-12-28 08:33:59 +01:00
Null
fb55d6d6d3 [Fix] Put OCR specific code inside ifdef (#855)
* Fix failing travis build.

Removed debug code. No idea why it causes travis fails to build

* Fix debug code
2017-12-27 07:33:16 +01:00
Null
b0afb983c9 [FIX] Fix a crash while processing DVB subtitles (#850)
* Add more debug info

* Fix crash in dvb process
2017-12-26 10:08:26 +01:00
Null
e56bab67b8 [Fix] Fix DVB bug (Multiple-line subtitle; Missing last line) (#844)
* multiple line & trying to fix the missing last line

* Fix format; move code into loop

* Revert some format changes
2017-12-26 06:14:11 +01:00
Carlos Fernandez Sanz
f3fd6762c3 Update CHANGES.TXT 2017-12-24 06:11:15 +01:00
Chuck Wilson
59b8f81283 [FEATURE] Support for Source-Specific Multicast (#802)
* Support for Source-Specific Multicast

* fixing whitespace issues

* updating changelog
2017-12-24 06:10:14 +01:00
Theodore Fabian Rudy
44a9e8b2af Added Supports and replace some things (#843)
* Added Supports and replace some things

* Update README.md
2017-12-24 05:01:31 +01:00
Null
31c39eea55 [FIX] Fix crash when image passed into OCR is empty (#841)
* Fix crash when image passed into OCR is empty

* Avoid OCR
2017-12-23 01:20:41 +01:00
Manish Mahalwal
f9a0874e58 Fixed -sentencecap for teletext samples (#842) 2017-12-23 01:20:16 +01:00
Anshul Maheshwari
1858425944 Merge pull request #822 from MatejMecka/master
[IMPROVEMENT] Upgrade UTF8proc
2017-12-16 15:43:59 +05:30
Anshul Maheshwari
b04228f0fd Merge pull request #833 from harrynull/cmake-windows
[FIX] Make CMakeFiles work with Windows Visual Studio
2017-12-16 15:35:37 +05:30
Null
4263a341e1 Turn on optimization 2017-12-16 10:41:40 +08:00
Willem
8b9f7a929b Merge pull request #837 from MatejMecka/master
[IMPROVEMENT]Improve README a little
2017-12-14 21:10:13 +01:00
MatejMecka
4d7edfd687 Remove a part from README 2017-12-14 21:05:02 +01:00
MatejMecka
289e9ca02a Update something with the header 2017-12-14 20:17:34 +01:00
MatejMecka
d7ce96a5d0 Revert badge back 2017-12-14 19:59:55 +01:00
MatejMecka
bf13b5c1e0 Update README part 3 2017-12-14 17:11:41 +01:00
Saurabh Shrivastava
0b31e5d7a1 Add compilation section to readme and improve instructions. (#836)
Also moved remaining .md files in docs.
2017-12-13 13:01:10 -08:00
Willem
f78303abef Update README.md
Update links to relative files
2017-12-13 20:48:47 +01:00
Willem
06c735ba8a Merge pull request #835 from MatejMecka/master
[IMPROVEMENT] Update README and add Installation file.
2017-12-13 20:09:17 +01:00
MatejMecka
e7fab1da26 Fix Installation instructions. 2017-12-13 19:51:21 +01:00
MatejMecka
22ff01e2a5 Fix some stuff 2017-12-13 17:18:16 +01:00
Matej Plavevski
f8f0d91386 Update README and add Installation file.
Add INSTALLATION file and update README
2017-12-12 21:02:29 +01:00
Null
d70c81d1d1 Make CMake work with Windows 2017-12-12 17:45:04 +08:00
Null
8e53d91682 histogram (#832) 2017-12-11 20:53:42 -08:00
Carlos Fernandez Sanz
c32d350550 Added mxf demuxer to mac/Makefile.am 2017-12-07 13:31:53 -08:00
Carlos Fernandez Sanz
fe17cddec8 Fixed 8 warnings 2017-12-07 13:17:09 -08:00
Carlos Fernandez
33c4c5a021 Import teletext.h from lib_ccx.h for function definitions that are used from general_loop 2017-12-07 12:34:15 -08:00
Carlos Fernandez
04ea39073b Moved some declarations from telxcc.c to teletext.h - needed to avoid some warnings about implicit declarations.
gzguts.h: Moved UNIX-only include to #ifdef to prevent build errors on Windows.
2017-12-07 12:29:30 -08:00
Carlos Fernandez Sanz
d7aa1f1bf4 - Fix some warnings (wrong parameter type, implicit function declarations...) 2017-12-07 12:14:50 -08:00
Carlos Fernandez
2c0e21b28b Merge branch 'master' of https://github.com/CCExtractor/ccextractor 2017-12-07 09:25:53 -08:00
Carlos Fernandez
487ac86d47 - Added MXF demuxer to Makefile 2017-12-07 09:25:26 -08:00
Matej Plavevski
726d87d15a Add leptonica and tesseract (#827) 2017-12-07 09:09:12 -08:00
Carlos Fernandez
d50e05315f The #ifdef PYTHON_API crap was preventing the write context to be deinitialized - meaning files not being closed, semaphores not deleted... 2017-12-06 18:25:22 -08:00
Null
3fb5bab343 Fix delay in DVB (#826) 2017-12-06 07:53:21 -08:00
Anshul Maheshwari
4bcd1edff5 Merge pull request #825 from anshul1912/master
Add MXF support
2017-12-06 14:14:46 +05:30
Anshul Maheshwari
42ab16405d Add MXF support 2017-12-06 11:36:41 +05:30
Null
c78db1dd24 Fix delay option (#824) 2017-12-05 08:45:47 -08:00
Willem
200b6a7eb9 Merge pull request #823 from MatejMecka/fixtravis
[FIX] Fix One of the Travis Builds
2017-12-04 23:50:20 +01:00
MatejMecka
410335c46d Fix One of the Travis Builds
Fix one of the builds for Travis

Revert "Upgrade UTF8proc"

This reverts commit 76dc969363.
2017-12-04 22:05:56 +01:00
MatejMecka
76dc969363 Upgrade UTF8proc 2017-12-04 21:41:53 +01:00
Willem
3772f83fe0 Update README.md 2017-12-04 21:25:43 +01:00
Willem
f2258e3eac Merge pull request #818 from MatejMecka/master
[IMPROVEMENT] Add Travis Ci
2017-12-04 11:19:06 +01:00
Matej Plavevski
a40c9e2ca1 Create .travis.yml
Update .travis.yml

Update .travis.yml
2017-12-03 21:36:14 +01:00
Null
241e2f5e14 Upgrade win_iconv (#815) 2017-12-02 20:52:29 -08:00
Matej Plavevski
afdf4e74be Upgrade zlib to 1.2.11 (#814) 2017-12-02 20:49:41 -08:00
govindbalaji-s
a9180719b6 Made fatal errror messages clearer (#811) 2017-12-01 07:38:41 -08:00
Matej Plavevski
88844fea42 Update LibPNG from 1.6.27 to 1.6.34 (#809) 2017-11-30 12:24:01 -08:00
HemangRajvanshy
f5700d5304 Making error messages clearer and less ambiguous. (#808) 2017-11-30 08:40:53 -08:00
Carlos Fernandez
dacd05b9fb Merge branch 'master' of https://github.com/CCExtractor/ccextractor
# Conflicts:
#	src/lib_ccx/ccx_encoders_python.c
2017-11-07 12:42:27 -08:00
Carlos Fernandez
5db65fa3a1 #fidef ENABLE_PYTHON in ccx_encoders_python.c. 2017-11-07 12:38:25 -08:00
Anshul Maheshwari
b7eb9e22d6 Make code compilable on windows 2017-11-05 18:52:58 +05:30
Saksham Gupta
b9de954690 Update dict_mr_robot.txt (#804) 2017-11-02 21:15:08 -07:00
Matej Plavevski
07c933e677 More Google Code In Participants (#801) 2017-11-01 15:48:51 -07:00
AlexBratosin2001
bdb8221213 Replace incorrect memset (#800) 2017-10-23 19:38:07 -07:00
Mayank Gupta
4573f5e8f6 [IMPROVEMENT]Modify Autoconf scripts to generate mac compatible tarball (#798)
* Modify Autoconf scripts to generate mac compatible tarball

* Update list of GSoC 2017 students
2017-10-18 17:33:58 -07:00
Evgeny Shulgin
a170f55a22 Merge pull request #799 from Izaron/something
Temporarily wrapped the Python API
2017-10-18 13:22:51 -07:00
Evgeny Shulgin
a6f0a07bf9 Merge branch 'master' into something 2017-10-18 13:22:23 -07:00
Evgeny Shulgin
1816894ccf Temporarily wrapped the Python API 2017-10-18 23:15:54 +03:00
Carlos Fernandez
07f289d1e0 Added missing function prototype.
Added ccextractor.h to solution.
2017-10-18 12:55:46 -07:00
Carlos Fernandez
b61918d516 Updated CHANGES.TXT 2017-10-13 15:26:16 -07:00
Vitor Massaru Iha
824dfeb166 [IMPROVEMENT] function header in "get_more_data" functions were standarlized. (#786)
* function header in "get_more_data" functions were standarlized.

* Unnecessary stream_mode check inside the while loop was removed.

* terminate_asap if condition was moved to while condition.

* Unnecessary condition was removed.
2017-10-13 14:53:37 -07:00
Vitor Massaru Iha
6aa90fc091 [gpacmp4/avilib.c]: Fix redefinition of VERSION and PACKAGE (#790)
compilation warnings before:

../src/gpacmp4/avilib.c:35:0: warning: "PACKAGE" redefined
 #define PACKAGE "GPAC/avilib"

<command-line>:0:0: note: this is the location of the previous definition
../src/gpacmp4/avilib.c:36:0: warning: "VERSION" redefined
 #define VERSION GPAC_FULL_VERSION
2017-10-13 14:47:27 -07:00
Saksham Gupta
5641c3116e Fixes Undeclared-Variable Warnings in extractor.c (#795)
Fixes https://github.com/CCExtractor/ccextractor/issues/780

Signed-off-by: Saksham Gupta <shucon01@gmail.com>
2017-10-13 14:42:29 -07:00
Mayank Gupta
e5c80a2c84 Add documentation for GUI (#796) 2017-10-13 14:42:03 -07:00
Mayank Gupta
fc3f505189 Add GUI for CCExtractor (GSoC 2017) (#794) 2017-10-11 14:11:39 -07:00
Mayank Gupta
ff950a035d Update Makefile.am for working Autotools build on mac (#791) 2017-10-09 12:30:42 -07:00
Jason Hancock
98114bd294 [IMPROVEMENT] Modify rpm.sh package script to preserve the source rpm (#788) 2017-10-06 16:35:35 -07:00
Jason Hancock
37d497d47a [IMPROVEMENT]: change rpm installation location from /usr/local/bin to /usr/bin (#789) 2017-10-06 16:35:07 -07:00
Jason Hancock
fae4957a71 Fix path to wrapper.h in Makefile.am (#787) 2017-10-06 16:34:56 -07:00
Saurabh Shrivastava
0d9872021d ¯\_(ツ)_/¯ Fix typo in name of Zlib directory in cmakefile. (#784) 2017-10-03 12:30:10 -07:00
Saurabh Shrivastava
30443a5b9a Use proper newlines while printing SRT from bitmaps. (#783)
Probably fixes #767 .
2017-10-03 08:24:34 -07:00
Saurabh Shrivastava
2eb5fd26de [FIX] Move files into appropriate directories & fix build scripts. (#781)
* Move wrappers and extracters inside src/ and update CMakeLists.

* Reflect change in path across build scripts.

* Remove redundant source file inclusion.

* Always use supplied libpng.
2017-10-02 12:16:04 -07:00
Hugh Mackworth
01852ef055 Compilation on the Mac (#777)
* Update README.md

* Delete README.MAC.TXT

No longer accurate given work done to integrate Mac into build processes.

* Change to use project's PNG/ZLIB libraries

* Fix Mac build command
Makes OCR an optional parameter
Adds python API file to build

* Update README.md
2017-10-02 11:59:00 -07:00
AlexBratosin2001
59c0de46e2 Fix Windows project files (#782) 2017-10-02 11:58:15 -07:00
Vinícius Lugão
f8d9e042bb Fix to output CC data when -out=raw is used (#775)
When the -out=raw option is used, the ccextractor jumped to spupng output
format, generating broken files in spupng format without CC data.
With this fix, now it generates CC data in McPoodle's Broadcast format.
2017-09-08 10:06:00 -07:00
Diptanshu Jamgade
0596d375b7 Python Extension Module (#773)
* Added self as contributor

* Added extension module documentation to docs/
2017-09-03 15:37:24 -07:00
Diptanshu Jamgade
47c5a6e73b Cleaning up the codebase and additional changes in Python SRT generator. (#771)
* Removed all extractors except the grid extractor.
Removed the call to transcript extractor in ccx_encoders_transcript.c

* Removed unnecessary array appening statements in python_grid_extractor.
WIP: switch in extractor.

* Added switch in g608 grid extractor.

* Deleted comments from wrappers.

* Refactored code in ccextractor.c and .h files.
Removed all the commented part.
Made proper changes according to the coding conventions.

* Removed calls to extractor from all the encoders.
The only call made to extractor is from ccx_encoders_python.c.

* Removed a comment from wrapper.c.
In init_write function of output.c added a call to free the output string returned by asprintf in case of
sending filename to callback function.

* Added calls to free the char* which is malloced by asprintf in
extractor.c
WIP: Free the global variable elements.

* Sample testing correctly for italics tag.
Also added a hack to print only 32 characters when unicode fails.
WIP: Font tag.

* Added support for handling font and italics in Python SRT generator.

* modified the font generator.
Also, added count method for checking blank strings in
python_srt_generator.

* Added free statements for avoiding memory leaks.

* added return code for failure of asprintf calls.

* Removing unnecessary code from api_testing.py

* Made modifications to Makefile and build script.

* Added recursive_tester.py
Autoconf builds successfully.

* BUG: Made change to get_line_encoded to encode the last \0 character in a
line. Otherwise the EOL characted is absent causing garbage value to be
present in SRT.

* Exporting the encoding of the captions from CCExtractor to Python so
that the python SRT generator can generate proper SRT files.

* Modified the include statement in extractor.h
2017-08-25 11:03:00 -07:00
Carlos Fernandez
022463b9a2 Moved ccx_encoders_python to right filter in project. 2017-08-21 14:25:35 -07:00
Saurabh Shrivastava
d19f471352 Correctly handle return codes. (#763)
Return code after parameter parsing were incorrectly handles leading to errors such as `Error: Invalid option to CCextractor Library`.
2017-08-21 14:11:19 -07:00
Saurabh Shrivastava
8f2f38bf07 Fix builddebug to include Python API changes. (#770) 2017-08-21 13:21:48 -07:00
Saurabh Shrivastava
4fe82abbfc Get commit hash and compilation date when built using cmake. (#764)
Who knew I would have to read so much documentation for such trivial task 😒
2017-08-20 08:55:09 -07:00
Mayank Gupta
32710eff1d Fix failing build with autoconf due to ccextractor.h (#765) 2017-08-20 08:54:51 -07:00
Diptanshu Jamgade
21eaa3de04 Python bindings with extraction of CE608 grid and writing to a SRT output. (#768)
* added python_extract to encoders_srt and the captions are being
extracted in needed format. Search for an alternative to asprintf

* Checking if the alternative to asprintf generate proper srts

* CC captions accessible via python script

* Removing python caption code from __wrap_write function

* removing old cc_to_python functions

* Removing python_subs structure and all the changes done for that struct

* Removing filename functions from ccextractor.*

* Renaming make_message to time_wrapper

* Applying to python_extract codebase: SSA format

* Added python_extract_time_based and done validation for ssa

* pplying python_extract_time_based: Done validation for srt and webvtt

* led attempt for SAMI support of python_extract. Code is commented

* Appluing python_extract_time_based: validate support for SMPTETT

* Added python_extract_transcript and made changes for time printing.

* added show_extracted_captions_wtih_timings function

* Added show_extracted_captions_with_timings to python script for testing
purpose.

* refactored extractors to api directory. commented out show captions in main()

* build and build library working for the extractors.

* made caption generator work with a 0.1 time sleep. Start refactoring

* added asprintf for windows.

* file being written in the running directory

* Auto -deletion of python temporary file

* Python captions printing status set to proper.

* termination of tail successful

* Writing successful for the sample

* Generating unalternating output

* adding api_support.py

* Adding bld_flags in build_api

* Added  to build_library

* Auto deletion of temporary file on SIGINT

* Discussing Seg fault with Izaron

* working for python and linux with samples. testing -out=pythonapi with stream

* Done adding bitmap support

* added -out=pythonapi support for bitmap

* Setting the messages_target to 0 for output = pythonapi

* Added wrapper for setting -out=pythonapi. Checking if -stdout value can be used in python.

* adding the cc_to_stdout=1 value for -out=pythonapi. Thus generation of output file has been avoided. May be needed to change in future.

* added extractor for g608 grid. removed sami extractor. need to work on overlap of -out=pythonapi and -out=g608

* Removed overlap of -out=pythonapi by adding -pythonapi and
signal_python_api global variable.

* added support for seperate c608 grid catching. Need to test the output
via python.

* added support for seperate printing of text font and color in CE608.
Need to make sure that the function is inbuilt.

* ADDED ce608 GRID SUPPORT FROM PYTHON
need to discuss whether to keep the print_cc_grid function specific to
the module or make it user accessible.
Mostly it would be better to make it user accessible.

* made changes in the call_from_python_api function such that only
api_options is needed to be passed.
An if statement before the call to g608_extractor has also been added.
Waiting for Carlos to comment on the output generated till this stage.

* added a signal_python_api check before calling every write function.
Thus basic writing output can be avoided.

* Commented all calls to python_extract_time_based.
making changes to python_extract_g608 to be called only from the point
when a g608 caption is detected.

* Added pass_cc_buffer_to_python in encoders_common.c temporarily
redefined get_*_encoded from static to normal
included the above functions in encoders_common.h

* Added if-else statement for switch in encode_sub function.
This is done mainly for making sure no output is generated in the api
call.

* Added ccx_encoders_python.c
Defined pass_cc_buffer_to_python in ccx_encoders_python.c
added if else statement in encode_sub's switch to make sure that the output is not generated in case of -pythonapi call

* Removed __wrap_write from the entire code base.
It's declaration and definition are only present in CCExtractor.*

* Commented out the /dev/null part in ccx_encoders_common.c.
Proceeding further on checking for file generation.

* Added output_filename in array global variable and is generated in
init_write function.
included ccextractor.h in output.c to access global variable
signal_python_api for avoiding output generation in init_write and
invalid free in dinit_write.

* Modified the definition of init_write function for accessing
signal_python_api.

* Deleted the commented part of /dev/null in ccx_encoders_common.c.

* Added target_message=0 in -pythonapi param parsing in param.c to avoid
the API from printing to STDOUT.
Deleted the commented part of -out=pythonapi.
Thinking of adding a different param for silencing the output when the
call is made from python api.

* Removed __wrap_write from ccextractor.c and ccextractor.h.

* Added ccx_to_python_g608 and modified api_support.py file.
added documentation in ccextractor.c.

* added the generate srt script. However, some random characters are
coming in first line. Need to talk about this.

* Added SRT generator for python.
Using string to remove the garbage value.
Add code for srt counter and also the start_time and end_time
conversion.

* removed the trash characters and added code to print the timings.
However, the last blank frame also results in a print. Need to take care
of this.

* rectified the mistake of writing only timings and not captions.
now next step is to just make the timings print properly

* some minor changes before diving into extracting srt_counter from the made codebase

* Added extraction of srt_counter in python_extract via fflush
srt_counter-value.
Need to modify the processing in python.

* Added the entire method to extract captions and generate srt files. Next, step would be a to define a concise function for writing the srt

* Processing into a srt working properly.
Next step is to add the information of font into the caption text.

* the data is getting generated for proper SRT counters.

* A turning point to the appraoch.
Added END OF FRAME line for printing the data for every particular
srt_counter.
Proceeding further with the generation of srt by data manipulation.

* some minor bugs but the output srt is being generated correctly. However, The font and colour encoding needs to be done.

* Taken care of random characters. Need to discuss this with Carlos. Moving further to font/color processing.

* Taken care of random characters. Need to discuss this with Carlos. Moving further to font/color processing.

* Added fflush and cleaned up the python code of srt generation

* Added <i> tag for italics.
Proceeding further with other types.

* Added the code to check for underline.
However, need to check how CCExtractor generates srt when both italics
and underline are present. For now a new line is added if both are
present.

* Shifting for making changes in th i/O work.

* Stable ouput for samples with italics is being generated.

* Added the PYTHONAPI macro definition and testing for its existence in the set_python_api function.

* build script for linux is working correctly.
Build_library is showing error of invalid def of set_pythonapi.
Moreover, extractor has some memory seg fault.

* Added mod to set a MACRO as my_python_api to set the callback function.
Till now all calls to the reporter are commented.
Working on getting the reporter to print the lines.

* Changes have been implemented to bring reporter in working state.
For now a constant string is passed from extractor. Need to make the
proper parsing possible.

* Changed the code in extractor such that entire grid is returned to the
callback function.
Need to provide this grid to the write function and also cleanup the
codebase.

* Writing the outputted srt in a file called "temp.srt".
Need to modify init_write to push filename that is to be created in
python using callback.

* Added code to get start and end time simultaneously.
entire SRT is getting generated.

* removed ccx_python_encoders.c

* Compiling and executing on Windows

* Moved definitions get_line_encoded, get_color_encoded, get_font_encoded from ccx_encoders_g608.c to ccx_encoders_common.c.
Also, deleted the static definition of get_font_encoded from
ccx_encoders_webvtt.c

* added a write statement in write_cc_bitmap_as_srt

* Rectified transfer of get_line_encoded, get_color_encoded and
get_font_encoded from ccx_decoders_common.c to ccx_encoders_common.c.
2017-08-20 08:54:35 -07:00
Carlos Fernandez Sanz
773ddf8bc2 Merge pull request #769 from Izaron/patch-1
**[IMPROVEMENT]** Added gui mode reports for Matroska decoder
2017-08-20 08:54:05 -07:00
Evgeny Shulgin
14e0d86df8 Added gui mode reports for Matroska decoder 2017-08-20 15:08:20 +03:00
Saurabh Shrivastava
333fb6eb6e Cleanly format the compiling documentation and cmake instructions. 2017-07-26 04:24:19 +05:30
Saurabh Shrivastava
da0893fdb3 Fix CMakeLists for MacOS and Linux.
With #742 and this, CCExtractor could be build across all three platforms using CMake.
2017-07-26 04:23:48 +05:30
Carlos Fernandez
ce2b680a43 Merge branch 'pr/n759_Abhinav95' 2017-07-21 11:25:24 -07:00
Abhinav95
b1cc95d972 Adding grayscale conversion for better OCR 2017-07-21 12:12:50 +05:30
Diptanshu8
10eb52e651 pushing 4 wrapper codes 2017-07-20 02:50:53 +00:00
Diptanshu8
13b3dadb45 Wrapper for debugdvbsub and pesheader 2017-07-20 02:50:53 +00:00
Diptanshu8
cff69bef5e added wrapper code for setstdout and setautoprogram 2017-07-20 02:50:53 +00:00
Carlos Fernandez
536082ae6e Merge branch 'pr/n751_Diptanshu8' 2017-07-19 10:59:56 -07:00
Diptanshu8
3f069b84c9 fixed -out=dvdraw sample error. 2017-07-18 04:48:08 +00:00
Carlos Fernandez
ddca8001cc Merge branch 'pr/n755_Abhinav95' 2017-07-17 11:44:11 -07:00
Diptanshu8
02b4427260 making changes to write wrapper 2017-07-17 08:59:00 +00:00
Abhinav95
ec5618dd1f Fixing end timestamp in DVB transcripts + spelling/readme improvements 2017-07-17 04:23:34 +05:30
Carlos Fernandez
e8f742a627 Corrected function prototype 2017-07-14 13:01:39 -07:00
Saurabh Shrivastava
45946e3ac9 Initialise timing for MP4 webvtt.
Fixes #753 .
2017-07-14 18:59:02 +05:30
Diptanshu8
e3e5f8b36e Apply write wrapper across entire database. 2017-07-13 07:26:49 +00:00
Diptanshu8
1435411861 Commenting out the file name related functions. 2017-07-13 05:48:14 +00:00
Diptanshu8
86b7e7348e Added extension to python_subs 2017-07-11 21:34:05 +00:00
Diptanshu8
d2bd2d1397 added basefilename to python_subs 2017-07-11 21:21:18 +00:00
Diptanshu8
8895b27552 CC being shown in python script. 2017-07-11 21:21:18 +00:00
Diptanshu8
57424857b0 Working on PR 2017-07-11 21:21:18 +00:00
Diptanshu8
2ced408994 build and build_library working correctly 2017-07-11 21:21:18 +00:00
Diptanshu8
976f01cee1 CCs to python_subs extracted properly 2017-07-11 21:17:46 +00:00
Diptanshu8
4d5f80a01d Found wrapper for write. Check file_handle and start processing. 2017-07-11 21:17:46 +00:00
Carlos Fernandez
0327e676dd Merge branch 'pr/n747_Diptanshu8' 2017-07-11 11:40:10 -07:00
Diptanshu8
91ea65d2a3 Removed ccextractor.pyc 2017-07-11 11:18:20 +00:00
Diptanshu8
de5fcf27f3 adding .pyc to gitignore 2017-07-06 23:34:08 +00:00
Diptanshu8
fe6813736c segregating the code and changing myarguments and argument_count. Also, gsoc directory has been created. 2017-07-06 22:58:23 +00:00
Diptanshu8
dc35af0bc0 Modifications to the code. 2017-07-06 22:22:59 +00:00
Carlos Fernandez
0c0bf1aafd -Added -nospupngocr (don't OCR bitmaps when generating spupng, faster) 2017-07-06 13:37:20 -07:00
Carlos Fernandez
62dab0dde9 Merge branch 'pr/n746_Abhinav95' 2017-07-06 12:59:26 -07:00
=
31a2d46996 Forcing -noru to cause deduplication in ISDB 2017-07-07 01:22:11 +05:30
Carlos Fernandez
710a205f99 Add support for file split on keyframe (-segmentonkeyonly)
Segmenting now doesn't destroys the whole encoding context, just closes and reopens the output file
Correct a wrong function prototype for process_hex()
OCR: Attempt to correctly deal with TessBaseAPIRecognize returning an error
Changed output for parse PMT to CCX_DMT_PMT instead of CCX_DMT_VERBOSE
2017-07-06 11:57:17 -07:00
Diptanshu8
69a956f3c2 removing api.so 2017-07-04 09:48:44 +00:00
Diptanshu8
7839403266 adding .so to .gitignore 2017-07-04 09:07:14 +00:00
Diptanshu8
6e50104da4 Cyclic rotation and python script argv passing solved 2017-06-28 21:35:32 +00:00
Diptanshu8
edb2431cf9 Cyclic rotation patch 2017-06-28 19:07:44 +00:00
Diptanshu8
67204d8e3c modifying the return value from main 2017-06-28 07:57:44 +00:00
Diptanshu8
a0047a9d3e changing the return status to EXIT_ON 2017-06-28 07:01:32 +00:00
Diptanshu8
cf4aa9021d Modified build_library script for generating the python module 2017-06-27 10:00:47 +00:00
Diptanshu8
3e99dc2955 Reflecting changes of library source code in the ccextractor source code 2017-06-27 10:00:47 +00:00
Diptanshu8
2ed2c27906 First phase evaluation outputs generated 2017-06-27 10:00:47 +00:00
Diptanshu8
a79bab670f modifying the test code for 5 samples 2017-06-27 10:00:47 +00:00
Diptanshu8
a7e2ac7686 Adding auto deletion of obj files to build_library 2017-06-27 10:00:47 +00:00
Diptanshu8
98e295e768 Commiting the build_library file 2017-06-27 10:00:47 +00:00
Diptanshu8
751a22fe68 Resolving merge conflicts in .gitignore 2017-06-27 10:00:47 +00:00
Diptanshu8
dba1d7b6eb Debugging the core dumped error 2017-06-27 10:00:07 +00:00
Diptanshu8
9fa2e3ebb0 adding the ccextractorapi.py file 2017-06-27 10:00:07 +00:00
Diptanshu8
f70f34e009 pushing the api code 2017-06-27 10:00:07 +00:00
Diptanshu8
644d26546c Facing VERSION attribute error in generated module 2017-06-27 10:00:07 +00:00
Diptanshu8
b0a0c92e50 library development done till api_start. Implementation of stop and status function is left. 2017-06-27 10:00:07 +00:00
diptanshuj@gmail.com
d3540ccc0a Made temp changes to initiate library coding 2017-06-27 10:00:07 +00:00
Carlos Fernandez
735f4392dd Merge branch 'pr/n742_saurabhshri' 2017-06-05 13:22:21 -07:00
Carlos Fernandez
95cd2370fc Merge branch 'pr/n743_anshul1912' 2017-06-05 13:21:24 -07:00
Carlos Fernandez
a0bea44274 Corrected CHANGES.TXT 2017-06-05 13:20:23 -07:00
Carlos Fernandez
989adde3ef Merge branch 'pr/n738_techfreakworm'
# Conflicts:
#	docs/CHANGES.TXT
2017-06-05 13:20:00 -07:00
Carlos Fernandez
399f59981d Added --analyzevideo to help page. 2017-06-05 11:00:03 -07:00
Anshul Maheshwari
37956ea4ef Adding info for ocr 2017-06-04 18:15:48 +05:30
Saurabh Shrivastava
51d936bc90 Fix CMake build for windows.
Thank you linker flags for eating my 3+ hours.
2017-06-03 22:32:15 +05:30
Carlos Fernandez
d9796410bc Added --analyzevideo 2017-06-02 12:32:45 -07:00
AlexBratosin2001
a842e1f7db Fix PTS and Length in preview section (Teletext subtitles) 2017-06-02 19:12:31 +03:00
Mayank Gupta
bc361a2e86 Add ocr, hardsubx and autotools support for mac 2017-05-11 06:19:16 +03:00
Carlos Fernandez Sanz
4d6ae27518 Merge pull request #734 from techfreakworm/rpm
[FEATURE]Add .rpm package generation script
2017-05-09 11:11:18 -07:00
Carlos Fernandez
adacb6235e Merge branch 'master' of https://github.com/CCExtractor/ccextractor 2017-04-24 12:07:00 -07:00
Carlos Fernandez
78c410cf50 Added -nolevdist to disable automatic typo fixing in teletext 2017-04-24 12:06:33 -07:00
Mayank Gupta
f2755ae5bb Add .rpm package generation script 2017-04-18 16:20:15 +05:30
Carlos Fernandez Sanz
fdd5b6bf9d Merge pull request #725 from Amey-Jain/master
Issue 699 solved
2017-04-11 09:23:03 -07:00
Carlos Fernandez Sanz
4438e6c780 Merge pull request #728 from fandango-/arch
[FEATURE] Arch Linux installation script (create .pkg.tar.xz archive or install directly)
2017-04-11 08:05:38 -07:00
Amey Jain
1513b7c42f Timing for sample #70 corrected. 2017-04-11 10:44:44 +05:30
Carlos Fernandez
76eea831ca When NAL decoding fails, don't dump the whole decoded thing, limit to 160 bytes. 2017-04-10 17:11:45 -07:00
Carlos Fernandez
1b6e05083d - TS: Skip NULL packets
- TS: If we don't have pinfo don't pay attention to the current_next_indicator bit.
(fixes problem with The Lion Guard_20170321_09301000.ts). Not sure this fix is the correct one but that's what VLC does.
2017-04-10 11:46:01 -07:00
Abhinav Baid
fddede57fd Update README.md 2017-04-10 17:47:54 +05:30
Abhinav Baid
58f7345b42 Update CHANGES.TXT 2017-04-10 17:37:59 +05:30
Abhinav Baid
83704e306f Update gitignore for pkg.tar.xz files 2017-04-10 17:33:29 +05:30
Abhinav Baid
27311f53e6 Use sudo when available; fallback to su 2017-04-10 17:30:34 +05:30
Abhinav Baid
d3946450eb Fix small grammatical mistake 2017-04-10 11:50:57 +05:30
Abhinav Baid
96ca325a25 Use bash as shell; su instead of sudo; don't proceed if a command fails; change default to not installing 2017-04-10 11:46:15 +05:30
Abhinav Baid
90f94d6053 Merge branch 'master' of https://github.com/CCExtractor/ccextractor into arch 2017-04-10 11:22:11 +05:30
Amey Jain
1b3598b2fe Timing mis-match corrected. 2017-04-08 08:34:18 +05:30
Carlos Fernandez Sanz
58e6bac74d Merge pull request #729 from LucasYoung/master
[FEATURE] Add WebVTT output from Matroska (Issue #724)
2017-03-31 11:42:08 -07:00
LucasYoung
5ffa442c5f Removed changes to ccextractor.vcxproj 2017-03-31 04:37:52 -07:00
LucasYoung
dd5c1ee243 Added WebVTT output from Matroska 2017-03-30 00:09:40 -07:00
Abhinav Baid
4c73649b9c Add --enable-ocr as a configure option by default 2017-03-30 11:42:15 +05:30
Abhinav Baid
8878aebe0b Allow option to build .pkg.tar.xz archive without installing package 2017-03-30 11:25:41 +05:30
Abhinav Baid
236840919d Use gcc as the C compiler during configure 2017-03-30 11:24:55 +05:30
Abhinav Baid
ab5544691a Initial commit 2017-03-29 19:52:22 +05:30
Carlos Fernandez Sanz
19557551fe Merge pull request #717 from techfreakworm/master
[IMPROVEMENT]Make CCExtractor more linux standard compliant #678
2017-03-22 08:53:56 -07:00
Mayank Gupta
8aa6aac2a7 Updated execution permissions for cleanup script 2017-03-22 11:17:38 +05:30
Mayank Gupta
23e6e44073 Updated cleanup script for complete cleanup after build 2017-03-22 11:16:26 +05:30
Mayank Gupta
5342b83345 Updated execute permissions for autogen.sh and tarball.sh 2017-03-22 10:49:38 +05:30
Mayank Gupta
b80e466533 Changed text in AC_MSG_ERROR to remove configure error 2017-03-21 23:06:08 +05:30
Mayank Gupta
77b54feeb6 Added check for pkg-config m4 macros 2017-03-21 19:33:21 +05:30
Mayank Gupta
6b08c123e2 Redirected error stderr stream to stdout stream 2017-03-21 14:59:01 +05:30
Mayank Gupta
c710b4c9b2 Corrected wrong flag order of LDADD 2017-03-21 12:07:58 +05:30
Amey Jain
094a8f295a Issue 699 solved. 2017-03-21 01:06:00 +05:30
Carlos Fernandez Sanz
753ece23d6 Merge pull request #722 from barun511/webvtt_another_fix
[FIX] # 680 Add missing line terminator in webvtt
2017-03-20 10:44:47 -07:00
Amey Jain
d2bea3802e In ref. to issue 699. 20 ms timing mis-match.
modified:   src/lib_ccx/general_loop.c
	modified:   src/lib_ccx/telxcc.c
2017-03-20 14:03:41 +05:30
Mayank Gupta
3ecacd3fa9 Updated .gitignore and configure.ac 2017-03-19 23:25:06 +05:30
Barun Parruck
4f692138fc Add missing line terminator in webvtt
Fix #680
2017-03-18 19:43:30 +05:30
Mayank Gupta
cb42a5fc2a gitignore packages created from package creation scripts 2017-03-17 23:58:47 +05:30
Mayank Gupta
316f959234 Corrected minor mistake in configure.ac 2017-03-17 23:48:27 +05:30
Mayank Gupta
6fdd4b75e8 Updated .gitignore, README.md, added checks in configure.ac, updated package creation scripts 2017-03-17 23:18:26 +05:30
Mayank Gupta
486d7ea002 Changed location of scripts and made tarball creation to work 2017-03-17 17:29:54 +05:30
Carlos Fernandez Sanz
ce9416e943 Merge pull request #721 from Diptanshu8/matroska
**[FIX]** Fixes issue #705
2017-03-16 11:40:27 -07:00
Diptanshu8
baa70a104a char pointer misconception for newline characters 2017-03-16 16:09:06 +05:30
Diptanshu8
7212d6848a Refactoring 2017-03-16 15:58:38 +05:30
Diptanshu8
b723378eb2 Quick fixes 2017-03-16 02:39:25 +05:30
Diptanshu8
5889d1edcd Quick fixes 2017-03-16 02:29:26 +05:30
Diptanshu8
c11ff21499 Done with mkvlang options basic checking 2017-03-16 01:45:31 +05:30
Mayank Gupta
31c8f85ba5 Merge branch 'autoconf' 2017-03-16 00:06:29 +05:30
Diptanshu8
b08c6285e6 Checking of the mkvlan for last option is left and checking for '-' in the code is left 2017-03-15 23:37:43 +05:30
Mayank Gupta
56f4c14318 Corrected package version in debian.sh 2017-03-15 23:31:53 +05:30
Mayank Gupta
c44e9ecfed Modifications for man pages to work 2017-03-15 22:12:12 +05:30
Diptanshu8
6aaaf6d9ae MKVlang support for a multi-language extraction has been added. 2017-03-15 16:57:52 +05:30
Diptanshu8
3b0031c251 MKVlang support for a single language has been added. 2017-03-15 16:47:26 +05:30
Diptanshu8
75a010fe77 Static option _eng_ for only english subtitles has been set 2017-03-15 15:14:06 +05:30
Diptanshu8
712e44e26c Checking the concatenated videos for subtitle errors and resolved 2017-03-15 14:36:43 +05:30
Mayank Gupta
44adf6427b Corrected debian.sh and Makefile.am for package creation 2017-03-15 13:14:34 +05:30
Mayank Gupta
0bc2dbac4a Merge remote-tracking branch 'upstream/master' 2017-03-15 00:50:34 +05:30
Diptanshu8
9bbab6b595 ASS/SSA newline character covered 2017-03-15 00:48:45 +05:30
Mayank Gupta
460f4e9866 Changes to create release tarball scripts 2017-03-15 00:46:36 +05:30
Diptanshu8
f944c93faa yet to cover ass/ssa subtitiles' newline 2017-03-15 00:35:40 +05:30
Diptanshu8
2c7bfef0f0 ASS/SSA support added for avoiding newline chars at the beginning of sentence. 2017-03-15 00:35:40 +05:30
Diptanshu8
6f5b2aa360 Changes made to avoid breakline/newline at the beginning of sentence. 2017-03-15 00:35:40 +05:30
Diptanshu8
d08cad3642 Rebasing 2017-03-15 00:35:17 +05:30
Diptanshu8
d2d055dd37 Done with removal of MATROSKA_MAX_TRACKS 2017-03-15 00:33:58 +05:30
Diptanshu8
7feb705d73 Rebasing 2017-03-15 00:33:12 +05:30
Mayank Gupta
b0ec1a073b Added man pages for ccextractor 2017-03-15 00:30:42 +05:30
Carlos Fernandez Sanz
c0a40529a9 Merge pull request #714 from saurabhshri/Cleaning
[IMPROVEMENT] Cleaning and replacing redundant code with already existing functions.
2017-03-13 22:54:16 -07:00
Mayank Gupta
7bb9a5f783 Updated Makefile.am and configure.ac 2017-03-13 13:17:30 +05:30
Mayank Gupta
00522bc950 Updated README.md 2017-03-13 11:40:11 +05:30
Mayank Gupta
0632c3a023 Updated configure.ac 2017-03-13 10:54:00 +05:30
Mayank Gupta
6f9b8a6d42 Corrected autogen.sh 2017-03-13 10:18:13 +05:30
Mayank Gupta
72c797bf83 created autogen.sh 2017-03-13 10:11:51 +05:30
Mayank Gupta
5f12bd7538 Autoconf scripts added 2017-03-13 10:05:30 +05:30
Saurabh Shrivastava
7b4c3bb26d Removed depricated function. 2017-03-12 00:39:57 +05:30
Saurabh Shrivastava
4bcc79fdb7 Use already available functions.
Removed code with redundant functionality.
-extracting filename without extension
-generating timestamp for srt format from milliseconds
2017-03-12 00:28:33 +05:30
Carlos Fernandez Sanz
7d4a6fb8d3 Merge pull request #712 from canihavesomecoffee/contributor-guide
[IMPROVEMENT] Add templates for issues and PR's
2017-03-06 12:33:24 -08:00
canihavesomecoffee
5194dea1b8 Add contributors guide, update readme 2017-03-06 21:29:21 +01:00
Carlos Fernandez
5f510cdfa2 filename_non_ext instead of filename_without_ext in matroska.c 2017-03-06 11:32:06 -08:00
Carlos Fernandez Sanz
564aff23a6 Merge pull request #711 from Izaron/platform-lld-spec
Added multiplatform LLD and LLU specs
2017-03-06 10:21:21 -08:00
Evgeny Shulgin
f057a7db05 Added multiplatform LLD and LLU specs 2017-03-06 16:48:54 +03:00
Carlos Fernandez Sanz
47c0bdcd47 Merge pull request #709 from kapilkd13/master
modified subtitle file name genrated by matroska(mkv) - remove 'mkv'
2017-03-05 11:36:43 -08:00
kapil kumar
d80a4f4b3c modified subtitle file name genrated by matroska(mkv) -some changes 2017-03-05 23:57:57 +05:30
kapil kumar
fac11ec5ed modified subtitle file name genrated by matroska(mkv) 2017-03-05 23:45:43 +05:30
Carlos Fernandez Sanz
66e8b280de Merge pull request #707 from Izaron/matroska
Replaced %lld with %I64d
2017-03-05 10:05:05 -08:00
Carlos Fernandez Sanz
ceed0e42b3 Merge pull request #708 from Izaron/bytestream
Removed builtin code in Matroska
2017-03-05 10:03:54 -08:00
Evgeny Shulgin
564093e0ec Removed builtin code in Matroska 2017-03-05 20:18:13 +03:00
Evgeny
af3fff4034 Replaced %lld with %I64d 2017-03-05 15:05:07 +03:00
Carlos Fernandez
254ffb3f39 Updated GSoC status in README.md 2017-03-02 15:05:36 -08:00
Evgeny
a66f3c3973 Added "No captions" code support in Matroska 2017-03-02 16:46:10 +03:00
Evgeny
edaa3b828b Fixed bug with sub name in Windows 2017-03-02 16:38:47 +03:00
Evgeny
76cb7b91ee Added matroska.c to filters and fixed _MSC_VER 2017-03-02 16:18:03 +03:00
Evgeny Shulgin
2048827c45 Added time for the activity progress 2017-03-02 15:49:22 +03:00
Evgeny Shulgin
1f478cfb22 Added matroska warnings about "-out=" 2017-03-02 15:43:02 +03:00
Evgeny Shulgin
e74074ffd0 Removed matroska int and byte types 2017-03-02 14:44:43 +03:00
Evgeny Shulgin
20b557ff97 Matroska main part integrated 2017-03-01 21:50:20 +03:00
Evgeny Shulgin
28f84c768e Added Matroska decoder skeleton 2017-03-01 19:40:09 +03:00
Carlos Fernandez
1d281004e7 Merge branch 'pr/n700_saurabhshri' 2017-02-28 16:35:22 -08:00
Carlos Fernandez
f6f0f79954 Merge branch 'pr/n702_kapilkd13' 2017-02-28 16:34:32 -08:00
Carlos Fernandez
656bac1a6f Merge branch 'master' of https://github.com/CCExtractor/ccextractor 2017-02-28 16:33:56 -08:00
Carlos Fernandez
66344c51fb Merge branch 'pr/n703_Izaron' 2017-02-28 16:33:44 -08:00
kapil kumar
23947beecc typo error 2017-02-28 21:14:22 +05:30
kapil kumar
876a442362 added usage for Levenshtein. fixed issue 701 2017-02-28 20:31:09 +05:30
Saurabh Shrivastava
4ef4a9b03e Teltext from .bin now honours -unixts
Also, fixed no caption found even when it was found from .bin for
teltext.
2017-02-26 23:28:17 +05:30
Saurabh Shrivastava
e9dd3d5845 Ignore CMake Build Stuff 2017-02-26 23:26:22 +05:30
Carlos Fernandez Sanz
eb24e34899 Merge pull request #697 from AlexBratosin2001/master
Sync Teletext to Private Stream 1 instead of all streams
2017-02-23 16:11:37 -08:00
Saurabh Shrivastava
b44fbefc97 Merge remote-tracking branch 'refs/remotes/CCExtractor/master' into ucla 2017-02-24 01:43:15 +05:30
AlexBratosin2001
cbffbb0358 Sync Teletext to Private Stream 1 instead of all streams 2017-02-23 16:33:07 +02:00
Evgeny Shulgin
52c7a8474f Added missing swscale library 2017-02-22 16:40:40 +03:00
Evgeny Shulgin
4f5f564b59 Automatically enable HARDSUBX whed FFMPEG used 2017-02-22 16:36:40 +03:00
Evgeny Shulgin
00ead85ab7 Fixed FFMPEG libs and set all libs non-static 2017-02-21 19:31:12 +03:00
Carlos Fernandez Sanz
9330b95147 Merge pull request #693 from Izaron/korean-fix
Rewritten output handler
2017-02-20 12:13:21 -08:00
Evgeny Shulgin
4ee9c847da Fixed CMake for OCR 2017-02-20 19:31:58 +03:00
Evgeny Shulgin
29180a95b1 Rewritten output handler 2017-02-20 17:39:43 +03:00
Carlos Fernandez Sanz
1124d82687 Merge pull request #685 from sidgairo18/fix_defects
Fix defects
2017-02-15 09:29:25 -08:00
Carlos Fernandez Sanz
795abf74ab Merge pull request #686 from barun511/webvtt_new_fix
Webvtt new fix
2017-02-15 09:27:35 -08:00
Carlos Fernandez Sanz
47cbdd9c1d Merge pull request #688 from Izaron/fedora-build
Updated "Compiling" section with Fedora
2017-02-15 09:26:38 -08:00
Evgeny Shulgin
9b527b7793 Updated "Compiling" section with Fedora 2017-02-15 20:20:42 +04:00
Barun Parruck
e919f1b9f5 Add comments, change array iteration 2017-02-15 01:49:58 +05:30
Barun Parruck
73f3c83940 Add -lf support | make line terminator consistent 2017-02-14 16:22:27 +05:30
Siddhartha Gairola
1425f426dc Update stbl_write.c 2017-02-14 12:28:17 +05:30
Siddhartha Gairola
3e37250d44 Update networking.c 2017-02-12 15:29:48 +05:30
sidgairo18
3be78775ca Fixing memory defects 2017-02-12 15:08:45 +05:30
Saurabh Shrivastava
ab1c7ab563 Fixed missing tpage number in UCLA from BIN. 2017-02-12 14:17:34 +05:30
Barun Parruck
7c2483d73e Fix webvtt formatting
The lack of CRLF after the header led to an invalid webvtt format.
2017-02-10 14:54:42 +05:30
Carlos Fernandez
1975848ecc Removed doku.php reference in README.md 2017-02-08 15:17:28 -08:00
Carlos Fernandez Sanz
e79506b303 Merge pull request #681 from Abhinav95/master
Template for upcoming additions to burned in extraction
2017-02-08 13:16:25 -08:00
Abhinav Shukla
9f32edad63 Merging change to Tesseract OEM mode with new hardsubx code 2017-02-09 02:40:01 +05:30
Abhinav Shukla
3278b31a8f Setting up tickertape parameter 2017-02-09 02:30:51 +05:30
Carlos Fernandez
ec6c7aede8 Typo in README.md 2017-02-07 15:09:46 -08:00
Carlos Fernandez
0516232bb3 Changes in README.md 2017-02-07 15:09:01 -08:00
Carlos Fernandez
44f97181ae Mentioned GSoC 2017 in README.md 2017-02-07 15:06:49 -08:00
Carlos Fernandez
cf762df972 Minor typo 2017-02-06 11:11:44 -08:00
Carlos Fernandez Sanz
6a90829744 Merge pull request #679 from saurabhshri/print_usage
Changes regarding output file name and minor print_usage corrections.
2017-02-06 11:09:37 -08:00
Saurabh Shrivastava
d37086a434 Removed depricated pramams and added missing one.
-o1 and -o2 were depricated in commit
0541a2fb62

--version was missing.
2017-02-06 03:21:34 +05:30
Saurabh Shrivastava
5ce5dc7fae Fix for NULL output filename.
If no -o is suppled with stdin/network etc, the output name generated
was NULL, leading to creation of files like `.srt` which were in
category of hidden files.
2017-02-06 03:11:53 +05:30
Saurabh Shrivastava
851894dceb Fatal if unable to open output file. 2017-02-06 03:11:53 +05:30
Saurabh Shrivastava
6837a1070b Printing end message after fatal. 2017-02-06 02:11:53 +05:30
Carlos Fernandez
dbad5f4cda Started 0.86 changelist. 2017-01-30 15:54:32 -08:00
Carlos Fernandez
482a20430d ffmpeg_intgr.c: Wrong directory was being used in ffmpeg #include. 2017-01-30 15:54:05 -08:00
Carlos Fernandez
85751cee2b dvbsub_parse_clut_segment: Changed return on fail (from 0 to -1, as expected by the caller). 2017-01-30 15:14:16 -08:00
Carlos Fernandez
12467815ae Closes #675
Moved final text after dinit().
2017-01-30 13:06:48 -08:00
Carlos Fernandez
883d5ccc77 Added windows/enc_temp_folder to .gitignore 2017-01-30 12:59:39 -08:00
Carlos Fernandez
0d7b33c362 Merge branch 'pr/n673_AlexBratosin2001' 2017-01-30 12:58:25 -08:00
Carlos Fernandez
79a6d3d04a Merge branch 'master' of https://github.com/CCExtractor/ccextractor 2017-01-30 12:57:01 -08:00
Carlos Fernandez
6bbb649ee6 Fix crash on -xmltv -out=null due to not having an encoder context. 2017-01-30 12:56:44 -08:00
AlexBratosin2001
919d3ec3b0 Fixed timing error caused by last commit 2017-01-28 23:24:50 +02:00
AlexBratosin2001
c5ea59aeb1 Fixed huge memory leak related to OCR init 2017-01-28 22:20:08 +02:00
Carlos Fernandez Sanz
b3010afba7 Merge pull request #672 from canihavesomecoffee/ds_store-fix
Delete .DS_Store files and add it to .gitignore file
2017-01-28 10:28:26 -08:00
Willem
de958c9383 Delete .DS_Store files and add it to .gitignore file 2017-01-28 18:03:22 +01:00
Carlos Fernandez
1bd3a43dbe Added 0.85b to CHANGES.TXT 2017-01-26 17:08:01 -08:00
Carlos Fernandez
5fa83394a0 Merge branch 'pr/n670_Izaron' 2017-01-26 10:20:13 -08:00
Carlos Fernandez
51537e8725 networking, multicast: In linux, bind to the specific IP address of the multicast source.
OCR: init some variables that didn't have a default value.
2017-01-26 10:16:52 -08:00
Evgeny
071386d552 Fixed DLL requiring in non-full version 2017-01-26 12:27:39 +03:00
Carlos Fernandez
ec9a0985ce Rework signals 2017-01-24 11:06:09 -08:00
Carlos Fernandez
71dffd6eb3 Use TessDeleteText to delete strings received from Tesseract 2017-01-23 16:05:05 -08:00
Carlos Fernandez
560a88b0b9 Merge branch 'master' of https://github.com/CCExtractor/ccextractor 2017-01-23 12:34:06 -08:00
Carlos Fernandez Sanz
8dc1964f8c Merge pull request #660 from Izaron/708-adventures
Fixed ttxt 708 files segfault
2017-01-23 10:05:10 -08:00
Evgeny Shulgin
d72e946213 Fixed ttxt 708 files segfault 2017-01-23 19:29:28 +04:00
Carlos Fernandez Sanz
24edbff859 Merge pull request #655 from saurabhshri/patch-1
Ability to extract Chapters from MP4 files.
2017-01-20 13:01:43 -08:00
Saurabh Shrivastava
77da2dc873 Added -chapters paramater for chapter extaraction from MP$. 2017-01-21 01:43:41 +05:30
Saurabh Shrivastava
d9414782b2 Function prototype for chapter extraction. 2017-01-21 01:38:12 +05:30
Saurabh Shrivastava
d1b127164e Option for chapter extraction. 2017-01-21 01:37:13 +05:30
Saurabh Shrivastava
db8d9c67b6 By default don't extract chapters. 2017-01-21 01:35:58 +05:30
Saurabh Shrivastava
c9a3a0c7f2 Extract chapters from mp4 file and write it in a file. 2017-01-21 01:33:59 +05:30
Saurabh Shrivastava
0e4d211eaf Extract chapter instead of subtitles if extract_chapters is True. 2017-01-21 01:29:04 +05:30
Abhinav Shukla
5933194570 Progress activity and more context 2017-01-09 21:14:52 +05:30
Abhinav Shukla
fbc7cb5452 Setting up skeleton for tickertext based burned in detection 2017-01-09 17:51:15 +05:30
Abhinav Shukla
5c646d214c Merge remote-tracking branch 'upstream/master' 2017-01-08 21:59:36 +05:30
Abhinav Shukla
588a8d6b7c Merge remote-tracking branch 'upstream/master' 2016-12-23 23:59:56 +05:30
Abhinav Shukla
0cb7cbcb49 Merge remote-tracking branch 'upstream/master' 2016-12-17 20:11:11 +05:30
Abhinav Shukla
b25a9f2ae4 Fix #454 : Removed ugly debug statement with local path 2016-12-11 10:01:55 +05:30
1067 changed files with 466706 additions and 94712 deletions

BIN
.DS_Store vendored

Binary file not shown.

7
.clang-format Normal file
View 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
View 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.

45
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,45 @@
Please prefix your issue with one of the following: [BUG], [PROPOSAL], [QUESTION].
To get the version of CCExtractor, you can use `--version`.
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
View 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
View 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

89
.github/workflows/build_linux.yml vendored Normal file
View File

@@ -0,0 +1,89 @@
name: Build CCExtractor on Linux
on:
push:
paths:
- '.github/workflows/build_linux.yml'
- '**.c'
- '**.h'
- '**Makefile**'
- 'linux/**'
- 'package_creators/**'
pull_request:
types: [opened, synchronize, reopened]
paths:
- '.github/workflows/build_linux.yml'
- '**.c'
- '**.h'
- '**Makefile**'
- 'linux/**'
- 'package_creators/**'
jobs:
build_shell:
runs-on: ubuntu-latest
steps:
- name: Install tesseract
run: sudo apt-get install libtesseract-dev
- uses: actions/checkout@v2.3.4
- name: build
run: ./build
working-directory: ./linux
- name: Display version information
run: ./linux/ccextractor --version
- 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.3.4
- name: run autogen
run: ./autogen.sh
working-directory: ./linux
- name: configure
run: ./configure
working-directory: ./linux
- name: make
run: make
working-directory: ./linux
- name: Display version information
run: ./linux/ccextractor --version
cmake:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.4
- 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.3.4
- 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
bazel:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.4
- name: bazel build
working-directory: ./
run: bazel build //src:ccextractor --verbose_failures
- name: Display version information
working-directory: ./bazel-bin
run: ./src/ccextractor --version

111
.github/workflows/build_windows.yml vendored Normal file
View File

@@ -0,0 +1,111 @@
name: Build CCExtractor on Windows
on:
push:
paths:
- '.github/workflows/build_windows.yml'
- '**.c'
- '**.h'
- 'windows/**'
tags-ignore:
- '*.*'
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.3.4
- name: Setup MSBuild.exe
uses: microsoft/setup-msbuild@v1.0.2
- name: build Release
run: msbuild ccextractor.sln /p:Configuration=Release
working-directory: ./windows
- name: Display version information
run: ./ccextractorwin.exe --version
working-directory: ./windows/Release
- uses: actions/upload-artifact@v2
with:
name: CCExtractor Windows Non-OCR Release build
path: |
./windows/Release/ccextractorwin.exe
./windows/Release/ccextractorgui.exe
./windows/Release/*.dll
build_non_ocr_debug:
runs-on: windows-latest
steps:
- name: Check out repository
uses: actions/checkout@v2.3.4
- name: Setup MSBuild.exe
uses: microsoft/setup-msbuild@v1.0.2
- name: build Debug
run: msbuild ccextractor.sln /p:Configuration=Debug
working-directory: ./windows
- name: Display version information
run: ./ccextractorwin.exe --version
working-directory: ./windows/Debug
- uses: actions/upload-artifact@v2
with:
name: CCExtractor Windows Non-OCR Debug build
path: |
./windows/Debug/ccextractorwin.exe
./windows/Debug/ccextractorwin.pdb
./windows/Debug/ccextractorgui.exe
./windows/Debug/*.dll
build_ocr_hardsubx_release:
runs-on: windows-latest
steps:
- name: Check out repository
uses: actions/checkout@v2.3.4
- name: Setup MSBuild.exe
uses: microsoft/setup-msbuild@v1.0.2
- name: build Release
run: msbuild ccextractor.sln /p:Configuration=Release-Full
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
- uses: actions/upload-artifact@v2
with:
name: CCExtractor Windows OCR and HardSubX Release build
path: |
./windows/Release/ccextractorgui.exe
build_ocr_hardsubx_debug:
runs-on: windows-latest
steps:
- name: Check out repository
uses: actions/checkout@v2.3.4
- name: Setup MSBuild.exe
uses: microsoft/setup-msbuild@v1.0.2
- name: build Debug
run: msbuild ccextractor.sln /p:Configuration=Debug-Full
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
- uses: actions/upload-artifact@v2
with:
name: CCExtractor Windows OCR and HardSubX Debug build
path: |
./windows/Debug/ccextractorgui.exe

22
.github/workflows/format.yml vendored Normal file
View File

@@ -0,0 +1,22 @@
name: Format sourcecode
on:
push:
paths:
- '.github/workflows/format.yml'
- 'src/**.c'
- 'src/**.h'
pull_request:
types: [opened, synchronize, reopened]
paths:
- '.github/workflows/format.yml'
- 'src/**.c'
- 'src/**.h'
jobs:
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.4
- 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)

38
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
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 Win 10 SDK
uses: ilammy/msvc-dev-cmd@v1
- name: build Release-Full
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/ccextractorgui.exe ./installer; cp ./Release-Full/ccextractorwinfull.exe ./installer; cp ./Release-Full/*.dll ./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: Upload as asset
uses: AButler/upload-release-assets@v2.0
with:
files: './windows/CCExtractor_win_portable.zip'
repo-token: ${{ secrets.GITHUB_TOKEN }}

88
.gitignore vendored
View File

@@ -13,6 +13,8 @@ CVS
####
# Linux Ignored binary and build folder
*.o
*.so
mac/ccextractor
linux/ccextractor
linux/depend
windows/Debug/**
@@ -25,14 +27,23 @@ 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
@@ -44,6 +55,7 @@ windows/libs/tesseract/**
# Ctags
*.tags*
tags
# Vagrant
.vagrant/
@@ -52,3 +64,79 @@ windows/libs/tesseract/**
.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
View 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

View File

@@ -1,637 +0,0 @@
A.R.G.U.S Tech
A.R.G.U.S. Agent
A.R.G.U.S. Guard
A.R.G.U.S. Tech
Adam Castwidth
Adam Donner
Adam Hoffman
Adam Hunt
Additional
Adrian Chase
Agent
Aglin
Aide
Akio Yamashiro
Al Ow-Al
Alan Chang
Alan Durand
Albie
Alderman Richard Ford
Alex Davis
Alex Salese
Alexi Leonov
Allison Lee
Alvarez
Amanda Waller
Ambushed Soldier
Anastasia
Anatoly Knyazev
Andy Diggle
Andy Jr.
Angry Crowd Riot
Angry Woman
Ankov
Anthony Venza
Anthony Walker
Armed Citizen
Armed Citizen #2
Armed Guard
Armored Truck Driver
Asian Driver
Assassin
Attendant
Attorney
Attractive Woman
Badass Inmate
Baker
Bank Guard
Bank Guard #1
Bank Guard #2
Bank Manager
Bar Guy
Barman
Baron Reiter
Barry Allen
Bartender
Barton Mathis
Bean Pole
Becky
Ben Turner
Benefit Patron
Benefit Security
Bertinelli's Thug
Bethany Snow
Big Donor
Biker
Biker Leader
Billy Malone
Black Hawk Guard
Blaine
Blake
Bo Travis
Bodyguard
Bodyguard #1
Bomb Squad Officer
Boss
Bouncer
Bouncer #1
Boy
Bratva Thug
Brick Thug #1
Brick Thug #2
Brie Larvan
Briefcase Man
Burly Guard
Business Suit
Businesswoman
Bystander
CSI Tech
CSU Tech Kelton
Caitlin Snow
Camille Declan
Captain
Captain Stein
Carl
Carl Roberto
Carly Diggle
Carrie Cutter
Carter Bowen
Carter Hall
Cass Derenick
Certo
Chase
Chauffeur
China White
Chinese Man
Chinese Pilot
Christopher Chance
Cisco Ramon
Claire Abbott
Clinton Hogue
Clock King
Cocktail Waitress
College Kid
Colonel Walker
Colton
Commissioner Brian Nudocerdo
Comptroller
Conklin
Constantine Drakon
Controller
Cooper Seldon
Cop
Cop #1
Cop's Wife
Coroner
Corrupt Cop #1
Costa
Councillor
Councilman Kullons
Count Vertigo
Counterfeiter
Courier
Court Clerk
Crewman
Cronan
Curtis Holt
Customs Agent
Cyrus Gold
Cyrus Vanch
D.B. Gavin Carnahan
D.O.C. Guard
DJ
Damian Darhk's Assistant
Damien Darhk
Dance Partner
Danny Brickwell
Danny De La Vega
Dark Archer
Dark Archer Stick
Daughter
Dead Girl
Dead Girl in Photograph
Deadshot
Dealer
Deathbolt
Deathstroke
Declan Lin
Delivery Clerk
Dennis
Dennis Fisk
Derek Reston
Derek Sampson
Desk Guard
Detective
Detective Lucas Hilton
Detective McKenna Hall
Deveau
Digger Harkness
Dignitary's Wife
Dina Salvati
Dinah Lance
District Attorney
Doctor
Dominic Alonzo
Donna Smoak
Double Down
Dr. Aldus Boardman
Dr. Anthony Ivo
Dr. Avery Pressnall
Dr. Douglas Miller
Dr. Lockhart
Dr. Neil Lamb
Dr. Schwartz
Dr. Vaca
Dr. Webb
Driver
Drug Dealer
Drug Dealer's Girlfriend
Drunk Guy
Drunk Partier
Dying Culebra Member
ESU Officer
ESU Sergeant
Eddie Walczak
Edward Fyers
Edward Rasmus
Elite Man
Emergency Services
Emily Nocenti
Engineer Antonov
Eric Dunn
Eric Moore
Erica Vendel
Erlich Kelso
Esrin Fortuna
Evan Wender
Evelyn Sharp
Ezra Barnes
FBI Agent
Federal Marshal
Felicity Smoak
Female Clubber
Female Hostage
Female Scientist
Fence
Field Reporter
Fire Chief Raynes
Firefly
Firestorm
First Mate
Fitzmartin
Frank Bertinelli
Frank Chen
Fred
Friendly Bratva
Galina
Gambler
Gang Leader
Gang Member
Gangbanger
Gangbanger #1
Gangbanger #2
Gardener
Gary
General Matthew Shrieve
General Vadimov
George Wolfman
German
Gerry Conway
Gholem Qadir
Gholem Security
Ghost
Ghost #2
Gideon
Girl
Glass Banger
Gora
Grandmother
Gravano
Greg Osborne
Grizzled Man
Guard
Guard #1
Guard #2
Guillermo Barrera
Gun Dealer
Gunman #2
Gus Sabatoni
Halcones Gang Member
Hardhat
Harley Quinn
Harold Backman
Hawkgirl
Heat Wave
Helena Bertinelli
Hendrick Von Arnim
Hive Scientist
Homeless Man
Hooded Man
Hoodie
Hoodlum
Hot Chick
Hot Girl
Housewife
Husband
Ian
Infected Man
Injured Chemist
Inmate
Intern
Isaac Stanzler
Isabel Rochev
Ishmael Gregor
Izzy Declan
Jackhammer
James Holder
Jana Washington
Janet Carroll
Janice Bowen
Jason Brodeur
Jean Loring
Jenn
Jenny Russo
Jermaine Fisher
Jessica Danforth
Jim Huffman
Joanna De La Vega
John Constantine
John Diggle
John Jr.
John Le
John Nickel
Jordan Kern
Jose Anton
Joseph Falk
Josiah Hudson
Judge
Judge Brackett
Judge Mandelbaum
Judge Moss
Judge Sakow
Junior Gangbanger
Junkie
Kandy Kane
Kara Danvers
Karla Groves
Kate Spencer
Katherine
Katsu Cheng
Keating
Kendrick Weller
Kirby Bates
Klaus Markos
Konstantin Kovar
Kyle Reston
LOA Soldier
Lady in Red
Landmine Soldier
Laura - Skull A
Laura Hoffman
Laura Washington
Laurel Lance
Lead Gangbanger
Lead Gunman
Lead Soldier
League Assassin
Leo Mueller
Li Khuan Hui
Lieutenant
Lieutenant Joyner
Liling
Linda Park
Little Boy
Liza Warner
Lonnie Machin
Lowlife
Lt. Conahan
Lt. Dave Ellet
Lt. Frank Pike
Lyla Michaels
M.I.T Student
MP #1
MP #2
MP #3
MP #4
Maddie
Madison Danforth
Maitre'd
Malcolm Merlyn
Malcolm's Friend
Male Scientist
Man
Man #2
Man in Suit
Man on Bus
Manny
Marcus Redmond
Margo
Mari McCabe
Mark Francis
Mark Scheffer
Mark Shaw
Markov
Martin Somers
Maseo Yamashiro
Matt Istook
Max Fuller
Maya Resik
Mayor Altman
Mayor Celia Castle
Mayor Queen's Assistant
Mercenary
Mercenary #3
Merlyn Security #1
Merlyn Security #2
Michael Amar
Michael Ancona
Middle Aged Woman
Milo Armitage
Mina Fayad
Minister
Mirakuru Soldier
Model
Moderator
Moira Queen
Morgan
Mother at Mall
Motorcycle Cop
Mouthpiece
Mr. Blank
Mr. Gardner
Mr. Russo
Mrs. Gardner
Mrs. Merlyn
Mrs. Reston
Mrs. Volodarsky
Myron Forest
Nancy Moore
Nate Heywood
Nathan Sierra
Ned Foster
Nelson Ravich
News Caster
News Reporter
Nick Salvati
Nico
Noah Kuttler
Nora Darhk
Nurse
Nyssa al Ghul
Obnoxious Clubber
Officer
Officer Benton
Officer Daily
Officer Jones
Officer Lopez
Officer Thompson
Officiant
Oliver Queen
Oliver's Security Detail
Ops Leader
Orderly
Orphan
Overlapping Personnel #1
Overlapping Personnel #2
Pablo Estevez
Palmer Tech Guard
Paparazzi
Parole Officer
Partner
Paul
Paul Copani
Paul Knox
Pedestrian
Peter
Peter Declan
Peter Kang
Petrov
Phaedra Nixon
Pharmacist
Phil
Pilot
Pino Bertinelli
Pirate
Pit Boss
Pretty Girl
Prison Guard
Prison Guard #1
Prison Guard #2
Prisoner
Prisoner #1
Prisoner #2
Private Collins
Protester
Pudgy Emcee
Pyotr Friedkin
QC Security Guard
Queen Family Lawyer
Quentin Lance
Ra's al Ghul
Ragman
Raisa
Rameses II
Raven
Ray Palmer
Real Estate Woman
Rebecca Merlyn
Recruit #1
Recruit #2
Redhead Girl
Refugee Woman
Rene Ramirez
Reporter
Reporter #1
Reporter #2
Reporter #3
Reporter #5
Richard
Rickie - Skull Man
Ripped
Rob Scott
Robert Joyce
Robert Queen
Rookie
Rosie
Roy Harper
Russian Cop #1
Russian Drugs Buyer
Russian Fight Arranger
Russian Policeman
Ruvé Adams
SCPD Clerk
SCPD Detective
SCPD Officer
SCPD Officer #1
SWAT #2
SWAT #3
SWAT #4
Samantha Clayton
Sara Lance
Scared Girl
Scientist
Screaming Woman
Sebastian Blood
Secretary
Security Guard
Security Guard #1
Security Guard #2
Senator Joseph Cray
Sentry
Sergei
Sergio
Servant
Sexy Hostess
Shado
Shadowspire Soldier
Shane Colvin
Shannon Groff
Sharp Gangster
Shimosawa
Shooter
Silhouetted Man
Simon
Simon Lacroix
Sin
Sin's Father
Skel
Skull B
Slade Wilson
Sleazy Businessman
Sleazy Clerk
Slim
Sobbing Man
Social Worker
Soldier
Soldier #2
Staffer #1
Staffer #2
Station Attendant
Steve Aoki
Street Kid
Street Tough
Striking Woman
Suited Bratva
Supporter #1
Supporter #2
Survivor
Susan Williams
Susie Lawton
Swat Team Leader
TV Host
Taiana
Talibah
Talking Head
Task Force Agent
Task Force Leader
Tatsu Yamashiro
Tattooed Inmate
Taylor Moore
Technician
Technician #2
Ted Gaynor
Ted Grant
Teddy Reston
Terrified Prisoner
The Butcher
The Captain
The Count
The Dodger
The Mayor
The Mechanic
The Priestess
Thea Queen
Thomas Flynn
Thomas Kemp
Thug
Thug #1
Tim Kaufman
Tim Sullivan
Tobias Church
Tom Weston
Tomas
Tommy Merlyn
Tony Daniel
Torque
Triad Accountant
Triad Thug
Turk
US Ambassador
Uniform
Uniform Cop
Untouchable #2
Untouchable #3
Vandal Savage
Vendor
Veronica Sparks
Victor Nocenti
Victor Swanstrom
Vigilante
Viktor
Viktor's Henchman
Vivian
Vixen
Vlad
Volkov
Volunteer
Waiter
Waitress
Walter Steele
Warehouse Worker
Wealthy Patron
Wheelman
Wife
William
Woman
Woman on Bus
Yao Fei
Young Boy
Young Girl with Glasses
Young Guard
Young Mother
Young Nyssa
Young Oliver
Young Thug
Young Tommy
Zhishan
Zoe Lawton

View File

@@ -1,370 +0,0 @@
ABQ Detective #1
ABQ Detective #2
APD Detective Tim Roberts
APD Officer
ASAC George Merkert
AUSA
Addict
Agent Buddy
Airport Traveler
Albuquerque Police Officer
Amber
Anchor #1
Anchor #2
Anchor #3
Anchor #4
Andrea Cantillo
Arms Dealer
Asst. US Attorney
Backhoe Operator
Bad Girl
Badger
Banger #1
Bank Customer
Bank Teller
Bar Fighter
Barfly
Barry
Bartender
Ben
Beneke Employee #1
Beneke Employee #2
Benicio Fuentes
Beto
Big Biker
Biker
Bingo Caller
Bingo Lady
Bob
Bogdan Wolynetz
Boy in Museum
Brock Cantillo
Burnout
Business Community Leader #1
Business Community Leader #2
Businessman
CID Special Agent
Cab Driver
Cancer Patient
Car Wash Attendant
Car Wash Customer
Car Wash Patron
CarWash Patron
Cara
Caregiver
Carmen Molina
Carol
Carpet Cleaner
Carpet Cleaner #2
Cartel Gunman #1
Cartel Gunman #2
Cartel Gunman #3
Cartel Gunman #4
Cartel Henchman
Carwash Customer
Chad
Chad's Girlfriend
Charlie Rose
Chemical Plant Guard
Chemistry Student
Chief Food Technician
Chris Mara
Chuck
Clovis
Colleen
Combo
Commercial Narrator
Commercial Voice Over
Concerned Parent
Conductor
Cop
Cop #1
Cop #2
Corpse
Customer
DEA
DEA Agent
DEA Agent #1
DEA Agent Artie
DEA Agent Scott
DEA Agent Tom
DEA Agent Vanco
DEA Point Man
Dan Wachsberger
Darla
Daughter
Dave
Declan
Declan's Crew Member
Declan's Driver
Delivery Man
Delores
Dennis Markowski
Deputy #1
Deputy Kee
Detective
Detective #1
Detective #2
Detective Kalanchoe
Detective Munn
Doctor
Dog Handler
Don Eladio
Donald Margolis
Dorothy Yobs
Dr. Barry Goodman
Dr. Belknap
Dr. Chavez
Dr. Delcavoli
Dr. Soper
Dr. Victor Bravenec
Drew Sharp
Duane Chow
Duty Officer
EMT
ER Doctor #1
ER Doctor #2
Ed
El Paso DEA Agent
Elliott Schwartz
Emilio Koyama
Emotional Woman
Engineer
Farley
Father
Federale
Female Employee
Female Homeowner
Fernando
Fireman
First Realtor
Fran
Francesca
Frankie
Friendly Agent
Friendly Guy
GYN
Gaff
Gale Boetticher
Garduño's Diner
Getz
Gonzo
Good Samaritan
Government Lawyer
Grandma
Gretchen Schwartz
Group Leader
Gunman #1
Gunman #2
Gus' Operative
Gustavo 'Gus' Fring
Hank Schrader
Henry Tyree
Herr Herzog
High School Student
Homeless Man
Homeless Man's Wife
Homeowner
Hospital Administrator
Hospital Patient
Hot Chick Cop
Huell
Hugo Archuleta
Ira
Irving
Jack's Henchman
Jake Pinkman
James Edward Kilkelly
Jane Margolis
Janice
Jeffrey
Jesse Pinkman
Jewelry Store Owner
Jock
Jock's Friend #1
Jock's Friend #2
Juan Bolsa
Kaylee Ehrmantraut
Ken Wins
Kenny
Kid
Kiira
Krazy-8
Kuby
Lady in Car
Laundry Woman 1
Laundry Woman 2
Laundry Woman 3
Laundry Worker
Lawson
Lawyer
Lead Doctor
Leonel Salamanca
Lester
Little Old Lady
Local Correspondant
Locksmith
Look out
Lookout
Los Pollos Hermanos Cook
Los Pollos Hermanos Patron
Louis
Lt. Adam Estiguez
Lucy
Lydia Rodarte-Quayle
Ma Kettle
Madrigal Suit
Magnet Guy #2
Mail Lady
Male Homeowner
Manager
Marco Salamanca
Mariano
Marie Schrader
Matt
Max Arsiniega
Medical Technician
Meth Cook
Meth Drug Dealer
Miguel
Mike Ehrmantraut
Mike's Security Team 1
Mike's Security Team 2
Min-Ye
Morning After Girl
Mortgage Broker
Mother
Mr. Gardiner
Mr. Pinkman
Mr. Wilson
Mrs. Ortega
Mrs. Pinkman
Mrs. Pope
Ms. Tromel
Music Producer
NA Sponsor
Narcocorridos Band #1
Narcocorridos Band #2
Native American Man
Neighbor
Neighborhood Boy
Neighborhood Kid
News Reporter
No-Doze
Nurse
O.M.I. Attendant
O.M.I. Officer
OPR Official #1
Ob-Gyn
Off Duty Cop
Office Manager
Office Worker
Old Crawler
Old Joe
Old Man
Orderly
Pa Kettle
Pamela
Parent
Party Girl
Partygoer
Paul Tyree
Pedestrian
Pediatric Nurse
Peng
Peter Schuler
Physical Therapist
Police Officer
Policeman
Pollos Manager
Preppy Shopper
Prison Guard
Prospective Buyer
Public Defender
Radio DJ #1
Radio DJ #2
Realtor
Receptionist
Rehab Group Girl
Rehab Patient
Restaurant Employee
Restaurant Patron
Rival Dealer #1
Rival Dealer #2
Ron Forenall
Rookie Officer
Rowdy Prisoner
SAC Ramey
Sad Faced Girl
Sales Girl
Salesman
Sara Tyree
Saul Goodman
Saul's Client
Scary Skell
Schlubby Guy #1
Schlubby Guy #2
School Office Worker
Scientist
Screaming Shopper
Secretary
Senior DEA Agent
Server
Sexy Cartel Girl
Sexy Neighbor
Skater
Skell
Sketchy
Skinny Pete
Skycap
Skyler White
Soren
Spooge
Spooge's Woman
Stephanie Doswell
Steven Gomez
Stew
Stripper #1
Stripper #2
Student
Supermarket Clerk
Support Group Leader
Support Group Member
TV Reporter
Tattooed Biker
Tattooed Woman
Teacher
Technician
Ted Beneke
The Assassin
Thug Buddy
Tio Salamanca
Tio's Nurse
Todd
Tomas
Tortuga
Trent
Truck Guard 1
Truck Guard 2
Tucker
Tuco Salamanca
Tweaker Thief
Tweaky Dude
Tyrus Kitt
Uncle Jack
Union Rep
Urinal Guy
Victor
Waiter
Waitress
Walter White
Walter White, Jr.
Warehouse Worker
Wendy
Wide Eyed Boy
Wino
Woman in Denny's
Young Boy
Young Leonel
Young Marco
Yuppie Woman

View File

@@ -1,614 +0,0 @@
'That's Right' Man
Addam Marbrand
Adrack Humble
Aeron Greyjoy
Aerys Targaryen
Aggo
Alliser Thorne
Alton Lannister
Amory Lorch
Anara
Anguy
Anya Waynwood
Areo Hotah
Armeca
Arthur
Arthur Dayne
Arya Stark
Ash
Axell Florent
Aya
Baby Sam
Balon Greyjoy
Baratheon Archer
Baratheon General
Baratheon Guard
Baratheon Officer
Baratheon Soldier
Baratheon Soldier #1
Baratheon Soldier #2
Barristan Selmy
Bathhouse Boy
Bathhouse Prostitute
Bear Island Maester
Beggar Woman
Belicho Paenymion
Benjen Stark
Beric Dondarrion
Bianca
Biter
Black Jack Bulwer
Black Lorren
Black Walder Rivers
Boat Commander
Bobono
Bolton General
Bolton Guard
Bolton Officer
Bolton Soldier
Bowen Marsh
Braavosi Captain
Braavosi Madam
Braavosi Theatre Server
Braavosi Theatre Sound Artist
Braavosi Woman #1
Braavosi Woman #2
Bran Stark
Brant
Brea
Brienne of Tarth
Bronn
Brothel Child #1
Brothel Child #2
Brothel Customer
Brothel Guard
Brother Ray
Brotherhood Member
Brusco
Brynden 'Blackfish' Tully
Camello
Captain of the Archers
Captain of the Bolton Archers
Captain's Daughter
Catelyn Stark
Catspaw Assassin
Cersei Body Double
Cersei Lannister
Chella
Child of the Forest
Citadel Maester
Clarenzo
Clea
Cley Cerwyn
Colen of Greenpools
Cooper
Craster
Craster's Wife
Craster's Wife #2
Craster's Wife #3
Craster's Younger Wife
Daario Naharis
Daenerys Targaryen
Dagmer Cleftjaw
Daisy
Davos Seaworth
Denys Mallister
Derek
Desmond Crakehall
Despondent Man
Dickon Tarly
Dim Dalba
Donnel Hill
Donnel Waynwood
Dontos Hollard
Doran Martell
Doreah
Dothraki
Dothraki Bloodrider #1
Dothraki Bloodrider #2
Dothraki Crone
Dothraki Man Having Sex
Dothraki Widow #1
Dothraki Widow #2
Dothraki Woman Having Sex
Dragonstone waiter
Drennan
Drowned Priest
Drummer
Drunk Patron
Dwarf Hunter #1
Dwarf Hunter #2
Dying Man
Eddard 'Ned' Stark
Eddison Tollett
Edmure Tully
Elder Meereen Slave
Ellaria Sand
Eon Hunter
Euron Greyjoy
Eyrie Guard
Faceless Man
Faith Militant
Faith Militant #1
Faith Militant #2
Farlen
Farmer Hamlet
Farmer's Daughter
Fennesz
Fighter
First Mate
Foreign Merchant
Frances
Frey Guard
Frey Guardsman
Frey Soldier #1
Frey Soldier #2
Frey Wedding Guest
Fruit Vendor
Gared
Gatins
Gendry
Genna
Gerald
Gerold Hightower
Ghita
Gilly
Glover General
Goatherd
Goatherd's Son
Goldcloak
Goldcloak #1
Goldcloak #2
Gordy
Grand Maester Pycelle
Great Master #1
Great Master #2
Great Master #3
Great Master #4
Great Master #5
Great Master #6
Great Master #7
Greatjon Umber
Gregor Clegane
Greizhen mo Ullhor
Grenn
Grey Worm
Guymon
Hallyne
Handmaid
Harald Karstark
Healtor Troop
High Priestess
High Septon
High Sparrow
Hizdahr zo Loraq
Hodor
Hog Farmer
Hoster Tully
Hot Pie
Howland Reed
Hugh of the Vale
Iggo
Illyrio Mopatis
Ilyn Payne
Imry Florent
Inn Waitress
Innkeeper
Innkeeper's Daughter
Ironborn #1
Ironborn #2
Ironborn #3
Ironborn Abusing a Volantene Whore
Ironborn at Brothel
Ironborn in Skiff
Irri
Izembaro
Jacks
Jaime Lannister
Janos Slynt
Jaqen H'ghar
Jaqen's Disguise
Jaremy Rykker
Jeor Mormont
Jhiqui
Joffrey Baratheon
Johnna
Jojen Reed
Jon Arryn
Jon Snow
Jon Snow Soldier
Jonos Bracken
Jorah Mormont
Jory Cassel
Joss
Joyeuse Erenford
Karl Tanner
Karsi
Karstark Lead Archer
Karstark Lookout
Karstark Soldier
Karstark Soldier #1
Karstark Soldier #2
Kayla
Kegs
Kesh
Kevan Lannister
Khal Brozho
Khal Drogo
Khal Forzho
Khal Moro
Khal Qorro
Khal Rhalko
Khaleesi Handmaiden #1
King Balon Greyjoy Dwarf
King Joffrey Baratheon Dwarf
King Renly Baratheon Dwarf
King Robb Stark Dwarf
King Stannis Baratheon Dwarf
King's Guard
King's Landing Baker
King's Landing Boaster
King's Landing Drunkard
King's Landing Flasher #1
King's Landing Flasher #2
King's Landing Handmaiden
King's Landing Rioter #1
King's Landing Rioter #2
King's Landing Rioter #3
King's Landing Tailor
King's Landing Urchin
King's Landing Whore
Kinvara
Knight of House Frey
Knight of House Lynderly
Kovarro
Kraznys mo Nakloz
Kurleket
Lady Crane
Lady Kitty Frey
Lancel Lannister
Lannister Archer
Lannister Army Member
Lannister Captain
Lannister Guard
Lannister Guard #1
Lannister Guard #2
Lannister Guard #3
Lannister Guardsman
Lannister Lord
Lannister Messenger
Lannister Scout
Lannister Soldier
Lannister Torturer
Lead Dornish Guard
Lead Kingsguard
Leaf
Lem Lemoncloak
Leo Lefford
Lhara
Little Bird
Little Bird #3
Little Bird #4
Little Bird #5
Little Bird #6
Little Bird #7
Loboda
Locke
Lollys Stokeworth
Lommy Greenhands
Loras Tyrell
Lord Blackmont
Lord Galbart Glover
Lord Portan
Lord Varys
Lord of Bones
Lordsport Dockhand
Lothar Frey
Loyal Night's Watchman #1
Loyal Night's Watchman #2
Lyanna Mormont
Lyanna Stark
Lysa Arryn
Mace Tyrell
Maester Aemon
Maester Caleotte
Maester Cressen
Maester Helliweg
Maester Luwin
Maester Wolkan
Mag the Mighty
Maggy
Mago
Male Prostitute
Malko
Mallister Supporter
Mance Rayder
Mandon Moore
Manservant
Marei
Margaery Tyrell
Margaery Tyrell Mummer
Margaery's Handmaiden
Marianne Frey
Marillion
Masha Heddle
Master Torturer
Matthos Seaworth
Meera Reed
Meereen Guard
Meereen Slave
Meereenese Homeless Mother
Melara Hetherspoon
Melessa Tarly
Melisandre
Merchant Captain
Merchant in Tavern
Mero
Merry Frey
Meryn Trant
Mhaegen
Mikken
Mirelle
Mirri Maz Duur
Missandei
Mole's Town Madam
Mole's Town Whore
Morag
Mord
Morgan
Morgan's Friend
Moro's Wife #1
Moro's Wife #2
Mossador
Mully
Mummer #2
Mummer #3
Mummer #4
Musician #1
Musician #2
Musician #3
Musician #4
Musician #5
Mycah
Myranda
Myrcella Baratheon
Night's Watch
Night's Watch Archer
Night's Watch Deserter
Night's Watch Messenger
Night's Watch Officer
Night's Watchman
Night's Watchman #1
Night's Watchman #2
Nobel Man
Noble Lady
Noble Man
Northern Lord
Northman Archer
Northman Rider
Northman Rioter
Nymeria Sand
Obara Sand
Oberyn Martell
Old Man
Old Nan
Old Woman
Old Woman Prisoner
Olenna Tyrell
Olly
Olly's Mother
Olyvar
Orell
Ornela
Orphan Kid
Osha
Othell Yarwyck
Oznak zo Pahl
Peasant
Pentoshi Servant
Petyr 'Littlefinger' Baelish
Pit Announcer
Pit Fighter
Podrick Payne
Polliver
Prendahl na Ghezn
Prisoner
Protestor
Pyat Pree
Pypar
Qartheen Woman
Qhono
Qhorin Halfhand
Qotho
Quaithe
Quent
Qyburn
Rakharo
Ralf Kenning
Ramsay Bolton
Randyll Tarly
Rast
Rattleshirt
Razdal mo Eraz
Red Keep Stableboy
Red Priestess
Reginald Lannister
Renly Baratheon
Rennick
Rhaego
Rickard Karstark
Rickard Stark
Rickon Stark
Riddell
Riverlands Traveller
Riverrun Nobleman
Robb Stark
Robert Baratheon
Robett Glover
Robin Arryn
Rodrik Cassel
Roose Bolton
Rorge
Ros
Roslin Frey
Royal Steward
Ryger Rivers
Sailor
Salladhor Saan
Samwell Tarly
Sandor 'The Hound' Clegane
Sansa Stark
Second Son
Sellsword #1
Sellsword #2
Selyse Baratheon
Septa Moelle
Septa Mordane
Septa Scolera
Septa Unella
Septon
Ser Endrew Tarth
Shae
Shagga
Shireen Baratheon
Silk King
Simpson
Singing Lannister Soldier
Sissy
Slaver
Smalljon Umber
Soldier
Son of the Harpy
Sorcerer
Sparring Boy
Spice King
Stannis Baratheon
Stark Guard
Stark Messenger
Stark Soldier
Steelshanks Walton
Steve
Stevron Frey
Stiv
Stone Man
Street Tough #1
Street Tough #2
Strong Fighter
Strong Sam Stone
Styr
Syrio Forel
Talisa Stark
Talla Tarly
Tansy
Ternesio Terys
The Bear
The Crone
The Maiden
The Mother
The Night King
The Tickler
The Waif
The Waif's Disguise
Thenn Warg
Theon Greyjoy
Theon's Master of Hounds
Thin Man
Thoros of Myr
Three-Eyed Raven
Timett
Tobho Mott
Todder
Tomard
Tommen Baratheon
Tommen's Attendant
Tommen's Manservant
Tommy
Tormund Giantsbane
Torrhen Karstark
Tortured Prisoner
Tortured Slave
Tourney Herald
Trystane Martell
Tully Bannerman
Tully Soldier
Tycho Nestoris
Tyene Sand
Tyrell Bannerman
Tyrell Guard
Tyrell Lady
Tyrell Servant
Tyrell Soldier
Tyrion Lannister
Tywin Lannister
Unsullied
Vala
Valyrian Slave
Vance Corbray
Vardis Egen
Varly
Vayon Poole
Violet
Viserys Targaryen
Volantene Whore
Volantene Whore #1
Volantene Whore #2
Volantene Whore #3
Volantene Whore #4
Volantene Whore #5
Waitress
Walda Bolton
Walder Frey
Warlock
Waymar Royce
Wedding Band
Wedding Guest
Wendel Manderly
Westerosi Trader
White Rat
White Walker
White Walker #2
Whore
Whore #1
Whore #2
Wight
Wight Wildling Girl
Wilding Gladiator
Wildling
Wildling Rioter
Will
Willa
Willem Lannister
Willis Wode
Wine Merchant
Winter Town Man
Winterfell Beekeeper
Winterfell Shepherd
Woodcutter
Wounded Lannister
Wun Wun
Wyllis
Wyman Manderly
Xaro Xhoan Daxos
Yara Greyjoy
Yezzan zo Qaggaz
Ygritte
Yohn Royce
Yoren
Young Benjen Stark
Young Braavosi
Young Cersei Lannister
Young Lyanna Stark
Young Nan
Young Ned
Young Ned Stark
Young Nobleman
Young Rodrik Cassel
Yunkai Citizen
Yunkai'i Slave #1
Yunkai'i Slave #2
Yunkai'i Slave #3
Yunkai'i Slave #4
Yunkai'i Slave #5
Yunkai'i Whore
Zanrush

File diff suppressed because it is too large Load Diff

View File

@@ -1,54 +0,0 @@
Ancient Psychic Tandem War Elephant
Banana Guard
Candy Kingdom
Candy People
Choose Goose
Cinnamon Bun
City of Thieves
Colonel Candycorn
Cosmic Owl
Crab Princess
Dr. Donut
Dr. Ice Cream
Duchess of Nuts
Earl of Lemongrab
Everything Burrito
Finn the Human
Fire Kingdom
Flame Princess
Flying Lettuce Bros.
Ghost Princess
Hotdog Knight
Ice King
Ice Kingdom
Jake the Dog
Lady Rainicorn
Lake Butterscotch
Land of Ooo
Lumpy Space Princess
Marauder Village
Marshmallow Kid
Mr. Cream Puff
Muscle Princess
Nice King
Nice Knights
Nightosphere
Nurse Poundcake
Old Lady Princess
Party Pat
Peppermint Butler
Pillow World
Princess Bubblegum
Raggedy Princess
Root Beer Guy
Sir Slicer
Skeleton Princess
Slime Princess
Snow Golem
The Enchiridion
The Lich
Toast Princess
Tree Fort
Tree Trunks
Wildberry Princess
Wizard Battle

View File

@@ -1,25 +0,0 @@
Adipose
Amy Pond
Clara Oswin Oswald
Cybermen
Dalek
Davros
Donna Noble
Jack Harkness
Judoon
K-9
Martha Jones
Master
Mickey Smith
Missy
Ood
River Song
Rory Williams
Rose Tyler
Sontarans
Tardis
Time Lord
The Doctor
The Silence
Weeping Angel
Zygon

View File

@@ -1,97 +0,0 @@
Glee Club
New Directions
Will Schuester
Sue Sylvester
Emma Pillsbury
Terri Schuester
Arthur Abrams
Artie Abrams
Tina Cohen-Chang
Brittany Pierce
Glease
Finn Hudson
Film School
Lima
Unique Adams
Vocal Adrenaline
Glee Club Regionals
Jesse St. James
Nationals
William McKinley High School
Rizzo
Grease
Ryder Lynn
Mr. Shue
Coach Shannon Beiste
Blaine Devon Anderson
Dalton Academy
The Warblers
Sectionals
NYADA
June Dolloway
Dave Karofsky
McKinley High Titans
Principal Figgins
Cooter Menkins
Roz Washington
Rachel Barbra Berry
Jesse St. James
Shelby Corcoran
Cassandra July
Brody Weston
Funny Girl
Michel Robert "Mike" Chang, Jr.
Joffrey Ballet
Asian Camp
Sam Evans
Lucy Quinn Fabray
Cheerios
Beth
Skanks
Finn Hudson
Marley Rose
Burt Hummel
Mercedes Jones
Santana Lopez
Ryder Lynn
Jake Puckerman
Noah Puckerman
Kitty Wilde
Alistair
Azimio
Jacob Ben Israel
Rory Flanagan
Joe Hart
Jane Hayward
Becky Jackson
Madison McCarthy
Sugar Motta
Myron Muskovitz
Bob Harris
Spencer Porter
Roderick
Matt Rutherford
Lauren Zizes
Jazz Ensemble
Hank Saunders
Suzy Pepper
Shane Tinsley
Rick "The Stick" Nelson
Lillian Adler
Holly Holliday
Acafellas
Sandy Ryerson
Ken Tanaka
Sunshine Corazón
Dustin Goolsby
Harmony
Grace Hitchens
Sebastian Smythe
Kendra Giardi
Carl Howell
Carole Hudson
Millie Rose
April Rhodes
Bryan Ryan

View File

@@ -1,59 +0,0 @@
Greys Anatomy
Meredith Grey
Lexie Grey
Ellis Grey
Thatcher Grey
Derek Shepherd
Amelia Shepherd
Owen Hunt
Dr. Margaret Pierce
Dr. Teddy Altman
Alex Karev
Callie Torres
Izzie Stevens
Christina Yang
Mark Sloan
Jackson Avery
Leah Murphy
April Kepner
Arizona Robbins
George O'Malley
Preston Bruke
Miranda Bailey
Denny Duquette
Dr. Addison Montgomery
Richard Webber
Adele Webber
Jo Wilson
Andrew Deluca
Nathan Riggs
Erica Hahn
Sadie Harris
Stephanie Edwards
Jason Myers
Dr. Nicole Herman
Hannah Davies
Shane Ross
Seattle Grace Hospital
Mercy West Medical Center
Seattle Grace Mercy West Hospital
Denny Duquette Memorial Clinic
Grey Sloan Memorial Hospital
Mayo Clinic
Cleveland Clinic
Portland General Hospital
Seattle Presbyterian Hospital
Klausman Institute for Medical Research
Roseridge Home for Extended Care
Veterans Rehabilitation Center
Trauma Center
Emergency Room
Intensive Care Unit
Neonatal Intensive Care Unit
Operating Room
On-Call Room
Chasing Cars
Snow Patrol

View File

@@ -1,42 +0,0 @@
Annalise Keating
Anna Mae Harkness
Nate Lahey
Wes Gibbins
Connor Walsh
Michaela Pratt
Asher Millstone
Laurel Castillo
Frank Delfino
Bonnie Winterbottom
Oliver Hampton
Rebecca Sutter
Sam Keating
Caleb Hapstall
Catherine Hapstall
Emily Sinclair
Meggy Travers
Simon Drake
Soraya Hargrove
Phillip Jessup
Eve Rothlow
Lila Stangard
Bill Millstone
A.D.A. Rene Atwood
Kan
Griffin O'Reilly
Rose
Detective Mumford
A.D.A. Todd Denver
D.A. Wendy Parks
Levi Sutter
Wallace Mahoney
Charles Mahoney
Vince Levin
Christophe
Hannah Keating
Middleton University
Keating 5
Who's Under the Sheet
Keating House
HTGAWM
pro-bono law clinic

View File

@@ -1,11 +0,0 @@
Dev
Rachel
Go-Gurt
Arnold
Brian
Denise
The Sickening
Nina
Nashville
Paro
Benjamin

View File

@@ -1,36 +0,0 @@
Elliot Alderson
Mr. Robot
Darlene
Angela Moss
Tyrell Wellick
Joanna Wellick
Phillip Price
Federal Bureau of Investigation
Fun Society
Gideon Goddard
Lloyd Chung
Ollie Parker
E Corp
Evil Corp
Terry Colby
Scott Knowles
Sharon Knowles
Mr. Sutherland
Antara Nayar
Krista Gordon
Shayla Nico
Fernando Vera
Elliot's Mother
The Hackers
fsociety
Romero
Trenton
Mobley
The Dark Army
Whiterose
Cisco
New York
Evil Corp Headquarters
Allsafe Cybersecurity
Rons Coffee
Python

View File

@@ -1,11 +0,0 @@
Jess
Jessica Day
Nick Miller
Winston Bishop
Schmidt
Cece Parekh
Coach
Latvian Basketball League
Ferguson
True American
Los Angeles middle school

View File

@@ -1,59 +0,0 @@
Sense8
Abraham
Amanita
Amondi Kabaka
Angelica Turing
Anton Bogdanow
Bug
Capheus "Van Damme"
Daniela Velasquez
Daya Dandekar
Diego Morales
Dr. Metzger
Felix Berner
Githu
Grace
Gunnar
Hassan Bogdanow
Hernando
Jacks
Janet Marks
Jela
Joaquin Flores
Jonas Maliki
Joong-Ki Bak
Kala Dandekar
Kang-Dae Bak
Wolfgang Bogdanow
Lina
Lito Rodriguez
Lúna Magnúsdóttir
Magnús Þórsson
Manendra Rasal
Mi-Cha
Michael Gorski
Min-Jung
Mr. Whispers
Niles Bolger
Nomi Marks
Nyx
Prisoner 818
Priya Dandekar
Purab Kohli
Rajan Rasal
Riley Blue
Sahana Rasal
Sanyam Dandekar
Sanyam Dendekar
Sara Patrell
Sergei Bogdanow
Shiro
Silas Kabaka
Soo-Jin
Steiner Bogdanow
Sun Bak
Sven
Teagan Marks
Will Gorski
Yrsa
Sensates

View File

@@ -1,37 +0,0 @@
Ajay
Alex
Anderson
Baker Street
Bill Wiggins
Charles Augustus Magnussen
Charlie Welsborough
Detective Inspector Lestrade
Gabriel
Greg Lestrade
Irene Adler
James Moriarty
Jim Moriarty
John Watson
John Hamish Watson
Karim
Lady Smallwood
Lestrade
Magnussen
Margaret Thatcher
Mary Morstan
Mary Watson
Mike Stamford
Molly Hooper
Moriarty
Mrs. Hudson
Mycroft Holmes
Norbury
Philip Anderson
Rosamund Mary
Rosie
Sally Donovan
Samarra
Sergeant Donovan
Sherlock Holmes
Tbilisi
Vivian Norbury

View File

@@ -1,42 +0,0 @@
Smash
Julia Houston
Derek Wills
Karen Cartwright
Tom Levitt
Ivy Lynn
Eileen Rand
Jimmy Collins
Sam Strickland
Kyle Bishop
Ana Vargas
Ellis Boyd
Dev Sundaram
Frank Houston
Lyle West
Leigh Conroy
Rebecca Duvall
Veronica Moore
Terrence Falls
Linda
Lisa McMann
Roger Cartwright
Mrs. Cartwright
Jerry Rand
Leo Houston
Bobby
Dennis
Jessica
Sue
Nick Felder
Michael Swift
John Goodwin
Daisy Parker
R.J.
Monica Swift
Scott Nichols
Margot
Agnes
Bombshell
Hit List
Heaven on Earth
Liaisons

View File

@@ -1,41 +0,0 @@
Arachne
Arachnophobia
Asura
Azusa
Black Star
Blair
Crona
Death City
Death the Kid
Death Weapon Meister Academy
DWMA
Eibon
Eruka
Excalibur
Franken Stein
Free
Giriko
Joe Buttataki
Justin
Kilik
Kishin
Liz
Lord Death
Maka
Maka Albarn
Marie
Masamune
Medusa
Meister
Mifune
Mizune
Mosquito
Ox Ford
Patty
Professor Stein
Sid
Soul
Soul Eater
Spirit
Tsubaki
Weapon

View File

@@ -1,16 +0,0 @@
Amethyst
Beach City
Cookie Cat
Crying Breakfast Friends
Crystal Gems
Crystal Temple
Earthlings
Fryman
Garnet
Lion
Pearl
Peridot
Rose Quartz
Ruby
Sapphire
Steven Universe

View File

@@ -1,84 +0,0 @@
Stranger Things
Murray Bauman
Becky Ives
Benny Hammond
Bill
Billy
Martin Brenner
Jonathan Byers
Joyce Byers
Lonnie Byers
Will Byers
Callahan
Carol
Russell Coleman
Connie Frazier
Cynthia
Dark dimension creature
David O'Bannon
Diane
Donald Melvald
Earl
Eel-like creature
Elevator Scientist
Eleven
El
011
The Weirdo
Eleanor
Florence
Tommy H.
Steve Harrington
Dustin Henderson
Barbara Holland
Jim Hopper
Sarah Hopper
James
Jeffrey
Jen
Jennifer Hayes
Lead Agent
Marissa
Max
The Monster
Mrs. Holland
Bob Newby
Nicole
Dr. Owens
Pastor Charles
Patrick
Powell
Roman
Russian Agent
Sandra
Scott Clarke
Shepard
Lucas Sinclair
Slug-like creature
Terry Ives
Troy
Troy's mother
Holly Wheeler
Karen Wheeler
Mike Wheeler
Nancy Wheeler
Ted Wheeler
Demogorgon
Hawkins National Laboratory
Upside Down
Hawkins Middle School
Project MKUltra
Dungeons & Dragons
Operation Mirkwood
Heathkit ham shack
Castle Byers
Hawkins General Hospital
Hawkins Police Station
Hawkins High School
Quarry
Etowah
Benny's Burgers
Bradley's Big Buy
Byers house
Downtown Hawkins
Roane County Coroner

View File

@@ -1,30 +0,0 @@
The Big Bang Theory
Penny
Leonard Hofstadter
Sheldon Cooper
Raj Koothrappali
Bernadette Rostenkowski
Howard Wolowitz
Amy Farrah Fowler
Leslie Winkle
Stuart Bloom
Arthur Jeffries
Mrs. Wolowitz
Barry Kripke
Priya Koothrappali
Mrs. Koothrappali
Mr. Koothrappali
Lucy
Sheldons Spot
The Apartment Building
Apartment 4A/B
The Laundry Room
The Roof
Wolowitzs' House
Capitol Comics
The Cheesecake Factory
The Comic Center of Pasadena
California Institute of Technology
Massachusetts Institute of Technology
Jet Propulsion Laboratory
Pasadena

View File

@@ -1,23 +0,0 @@
Arsenal Football Club
Aunt Irma
Big Ben
Countdown
Dragon's Den
Emergency Services
Employee of the Month
Friendface
Gay: A Gay Musical
Information Technology
Jen Barber
Lonely Hearts
Maurice Moss
Random Access Memory
Sea Parks
Spaceology
The Banner
The Evening Informer
The Internet
The London Echo
Tnetennba
Windows Vista
Word

View File

@@ -1,37 +0,0 @@
Neal Caffrey
Mozzie
Peter Burke
Sara Ellis
Elizabeth Burke
Diana Berrigan
Lauren Cruz
Clinton Jones
Kate Moreau
Garrett Fowler
Alex Hunter
Vincent Adler
Special Agent
White Collar Division
June Ellington
Reese Hughes
Matthew Keller
Rebecca Lowe
Rachel Turner
Cindy
Christie
Senator Terrence Pratt
Amanda Callaway
David Siegel
Operation Mentor
Office of Professional Responsibility
Samantha
Sterling-Bosch
Kali
Teddy Winters
Detroit Mob
Burke's Seven
Mrs. Suit
Special Agent in Charge
Satchmo
Dutchman

339
LICENSE.txt Normal file
View 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.

View File

@@ -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.89
DISTFILES = ccextractor.${V:S/.//}-src.zip
MASTER_SITES = ${MASTER_SITE_SOURCEFORGE:=ccextractor/}
DISTNAME = ccextractor-$V

View File

@@ -1,68 +1,73 @@
![logo](https://avatars3.githubusercontent.com/u/7253637?v=3&s=100)
<img src ="https://github.com/CCExtractor/ccextractor-org-media/blob/master/static/ccx_logo_transparent_800x600.png" width="200px" alt="logo" />
# CCExtractor
CCExtractor is a tool that produces subtitles from TV use. Global accessibility (all users, all content, all countries) is the goal. With so many different formats, this is a constantly moving target, but we intend to keep up with all sources and formats.
<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> [![Build Status](https://travis-ci.org/CCExtractor/ccextractor.svg?branch=master)](https://travis-ci.org/CCExtractor/ccextractor)
[![Sample-Platform Build Status Windows](https://sampleplatform.ccextractor.org/static/img/status/build-windows.svg?maxAge=1800)](https://sampleplatform.ccextractor.org/test/master/windows)
[![Sample-Platform Build Status Linux](https://sampleplatform.ccextractor.org/static/img/status/build-linux.svg?maxAge=1800)](https://sampleplatform.ccextractor.org/test/master/linux)
[![SourceForge](https://img.shields.io/badge/SourceForge%20downloads-213k%2Ftotal-brightgreen.svg)](https://sourceforge.net/projects/ccextractor/)
[![GitHub All Releases](https://img.shields.io/github/downloads/CCExtractor/CCExtractor/total.svg)](https://github.com/CCExtractor/ccextractor/releases/latest)
Carlos' version (mainstream) is the most stable branch.
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.
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](http://www.ccextractor.org/doku.php?id=public:general:downloads).
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>```
`ccextractor <input>`
This will extract the subtitles.
This will extract the subtitles.
More usage information can be found on our website:
- [Using the command line tool](http://www.ccextractor.org/doku.php?id=public:general:command_line_usage)
- [Using the Windows GUI](http://www.ccextractor.org/doku.php?id=public:general:win_gui_usage)
- [Using the command line tool](https://ccextractor.org/public/general/command_line_usage/)
- [Using the Windows GUI](https://ccextractor.org/public/general/win_gui_usage/)
You can also find the list of parameters and their brief description by running `ccextractor` without any arguments.
## Compiling
You can find sample files on [our website](https://ccextractor.org/public/general/tvsamples/) to test the software.
### Debian/Ubuntu
## Compiling CCExtractor
Install these packages in the terminal
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
Then run script linux/build or linux/builddebug.
### Windows
Open the windows/ccextractor.sln file with Visual Studio (2015 at least), and build it. Configurations "(Debug|Release)-Full" includes dependent libraries which are used for OCR.
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 a support ticket at our [issue tracker](https://github.com/CCExtractor/ccextractor/issues).
By far the best way to get support is by opening an issue at our [issue tracker](https://github.com/CCExtractor/ccextractor/issues).
When creating a ticket:
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.
- Make sure you are using the latest CCExtractor version.
- If it's a new issue (for example a video file that a previous CCExtractor version processed fine but now causes a crash), mention the last version you know was working.
- If the issue is about a specific file, make that file available for us. Don't just send us the output from CCExtractor, as we can't do anything about a screenshot that shows a crash. We need the input that actually causes it. You can upload the file to Dropbox, Google Drive, etc, and make it public so you get a download link to add to your ticket.
- If you cannot make the file public for any (reasonable) reason you can 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.
- 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 you set an alert in GitHub so you get notifications about your ticket. We may need to ask questions and we do everything inside GitHub's system.
- Please use English.
- It goes without saying, we like polite people.
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)
You can also [contact us by email or chat with the team in Slack](http://www.ccextractor.org/doku.php?id=public:general:support).
## Contributing
You can contribute to the project by forking it, modifying the code, and making a pull request to the repository.
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` file.
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: [http://www.ccextractor.org](http://www.ccextractor.org)
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)

0
WORKSPACE Normal file
View File

92
docs/AUTHORS.TXT Normal file
View 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

View File

@@ -1,3 +1,190 @@
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.
@@ -1028,4 +1215,3 @@ version of CCExtractor.
- Added video information (as extracted from sequence header).
- Some code clean-up.
- FF sanity check enabled by default.

245
docs/COMPILATION.MD Normal file
View File

@@ -0,0 +1,245 @@
# 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 tesseract-ocr-dev libleptonica-dev
```
RHEL:
```bash
yum install -y glew-devel glfw-devel cmake gcc libcurl-devel tesseract-devel leptonica-devel
```
**Note:** On Ubuntu Version 18.04 (Bionic) and (probably) later, install `libtesseract-dev` 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 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
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/
make
# test your build
./ccextractor
# make build systemwide
sudo make install
```
`cmake` also accepts the argument `-DWITH_OCR=ON` to enable OCR.
### 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. They can be installed via Homebrew as
```bash
brew install pkg-config
brew install autoconf automake libtool
brew install tesseract
brew install leptonica
```
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 OCR
# test your build
./ccextractor
```
If you don't want the OCR capabilities, then you don't need to configure the tesseract and leptonica packages, and build it with just
```bash
cd ccextractor/mac
./build.command
# 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/
make
# test your build
./ccextractor
```
#### Standard compilation through Autoconf scripts:
```bash
cd ccextractor/mac
./autogen.sh
./configure
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
make
```
Once set up you can run the GUI interface from the terminal `./ccextractorGUI`
## Windows
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).
![Project Files](img/projectFiles.png)
2.Accept the security prompt (if any), to proceed with compilation.
![A warning you can receive](img/Warning.png)
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.
![Project Section](img/ProjectSection.png)
![Properties, that you have to change](img/Properties.png)
5.Right click and select `build` to compile the project and generate executable file.
![Building button](img/Building.png)
6.Find the executable file in `Debug` or `Release` folder, based on selected configuration.
![Path to Binaries](img/Binaries.png)
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
```
## 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`

View File

@@ -1,58 +0,0 @@
Overview
========
FFmpeg Integration was done to support multiple encapsulations.
Dependency
=========
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-standard location, please change/update your
environment 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
View 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

View File

@@ -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,8 +40,17 @@ 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.

View File

@@ -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
View 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.

View File

@@ -1,94 +0,0 @@
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
==========
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.

View File

@@ -1,59 +1,16 @@
ccextractor, 0.85
-----------------
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
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
(more, but they forgot to add themselves...)
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).
@@ -70,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
@@ -89,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.

View 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.

View File

@@ -1,7 +1,7 @@
#######################################################
# Version 0.01
# Version 0.02
#
# To enable required option please uncommnent option
# To enable required option please uncomment option
#
@@ -12,12 +12,15 @@
# 0 = file
# 1 = stdin
# 2 = network
# 3 = tcp
INPUT_SOURCE=0
# The Buffer Input tag
# This tag takes number in its input.
# Is it ccx_bufferdata_type ?
#BUFFER_INPUT=0
# The Direct Rollup tag
@@ -45,22 +48,28 @@ INPUT_SOURCE=0
#NOTYPE_SETTING=
# The Codec Tag takes the preference of codec
# tag CCX_CODEC_ANY is by default
# 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 takes number in its input and their meanings
# 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=
@@ -68,15 +77,21 @@ INPUT_SOURCE=0
# by default output format is srt
# 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=

340
docs/freetype.TXT Normal file
View 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
View 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) &ast;ctx, int x, int y, int width, int height, struct [main_tab](#struct-main-tab) &ast;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 &ast;main_settings);
char&ast; [truncate_path_string](#func-truncate-path-string)(char &ast;filePath);
void [remove_path_entry](#func-remove-path-entry)(struct [main_tab](#struct-main-tab) &ast;main_settings, int indexToRemove);
ccx_cli_thread.c || ccx_cli_thread.h
void&ast; [read_activity_data](#func-read-activity-data)(void &ast;read_args);
void&ast; [read_data_from_thread](#func-read-data-from-thread)(void&ast; read_args);
void&ast; [extract_thread](#func-extract-thread)(void&ast; extract_args);
void&ast; [feed_files_for_extraction](#func-feed-files-for-extraction)(void&ast; file_args);
void [setup_and_create_thread](#fun-setup-and-create-thread)(struct [main_tab](#struct-main-tab) &ast;main_settings, struct [built_string](#struct-built-string) &ast;command);
void&asst; [find_hd_homerun_devices](#func-hd-homerun-devices)(void &ast;args);
void&ast; [setup_hd_homerun_device](#func-setup-hd-homerun-device)(void &ast;args);
command_builder.c || command_builder.h
void [command_builder](#func-command-builder)(struct [built_string](#struct-built-string) &ast;command,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [main_tab](#struct-main-tab) &ast;main_settings,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [network_popup](#struct-network-popup) &ast;network_settings,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [input_tab](#struct-input-tab) &ast;input,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [advanced_input_tab](#struct-advanced-input-tab) &ast;advanced_input,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [output_tab](#struct-output-tab) &ast;output,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [decoders_tab](#struct-output-tab) &ast;decoders,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [credits_tab](#struct-output-tab) &ast;credits,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [debug_tab](#struct-debug-tab) &ast;debug,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [burned_subs_tab](#struct-debug-tab) &ast;burned_subs);
file_browser.c || file_browser.h
void [die](#func-die)(const char &ast;fmt, ...);
char&ast; [file_load](#func-file-load)(const char&ast; path, size_t&ast; siz);
char&ast; [str_duplicate](#func-str-duplicate)(const char &ast;src);
void [dir_free_list](#func-dir-free-list)(char &ast;&ast;list, size_t size);
char&ast;&ast; [dir_list](#func-dir-list)(const char &ast;dir, int return_subdirs, size_t &ast;count);
struct file_group [FILE_GROUP](#func-file-group)(enum file_groups group, const char &ast;name, struct nk_image &ast;icon);
struct file [FILE_DEF](#func-file-def)(enum file_types type, const char &ast;suffix, enum file_groups group);
struct nk_image&ast; [media_icon_for_file](#func-media-icon-for-file)(struct media &ast;media, const char &ast;file);
void [media_init](#func-media-init)(struct media &ast;media);
void [file_browser_reload_directory_content](#func-file-browser-reload-directory-content)(struct file_browser &ast;browser, const char &ast;path);
void [get_drives](#func-get-drives)(struct file_browser &ast;browser);
void [file_browser_init](#func-file-browser-init)(struct file_browser &ast;browser, struct media &ast;media);
void [file_browser_free](#func-file-browser-free)(struct file_browser &ast;browser);
int [file_browser_run](#func-file-browser-run)(struct file_browser &ast;browser, struct [nk_context](#nk-context) &ast;ctx, struct [main_tab](#struct-main-tab) &ast;main_settings, struct [output_tab](#struct-output-tab) &ast;output, struct [debug_tab](#struct-debug-tab) &ast;debug, struct [hd_homerun_tab](#struct-hd-homerun-tab) &ast;hd_homerun);
popups.c || popups.h
void [draw_network_popup](#func-draw-network-popup)(struct [nk_context](#nk-context) &ast;ctx, int &ast;show_preferences_network, struct [network_popup](#struct-network-popup) &ast;network_settings);
void [draw_getting_started_popup](#func-draw-getting-started-popup)(struct [nk_context](#nk-context) &ast;ctx, int &ast;show_getting_started);
void [draw_about_ccx_popup](#func-draw-about-ccx-popup)(struct [nk_context](#nk-context) &ast;ctx, int &ast;show_about_ccx, struct nk_user_font &ast;droid_big, struct nk_user_font &ast;droid_head);
void [draw_progress_details_popup](#func-draw-progress-details-popup)(struct [nk_context](#nk-context) &ast;ctx, int &ast;show_progress_details, struct [main_tab](#struct-main-tab) &ast;main_settings);
void [draw_color_popup](#func-draw-color-popup)(struct [nk_context](#nk-context) &ast;ctx, struct [output_tab](#struct-output-tab) &ast;output);
void [draw_thread_popup](#fun-draw-thread-popup)(struct [nk_context](#nk-context) &ast;ctx, int &ast;show_thread_popup);
void [setup_network_settings](#func-setup-network-settings)(struct [network_popup](#struct-network-popup) &ast;network_settings);
preview.c || preview.h
int [preview](#func-preview)(struct [nk_context](#nk-context) &ast;ctx, int x, int y, int width, int height, struct [main_tab](#struct-main-tab) &ast;main_settings);
save_load_data.c || save_load_data.h
void [load_data](#func-load-data)(FILE *file,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [main_tab](#struct-main-tab) &ast;main_settings,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [input_tab](#struct-input-tab) &ast;input,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [advanced_input_tab](#struct-advanced-input-tab) &ast;advanced_input,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [output_tab](#struct-output-tab) &ast;output,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [decoders_tab](#struct-decoders-tab) &ast;decoders,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [credits_tab](#struct-credits-tab) &ast;credits,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [debug_tab](#struct-debug-tab) &ast;debug,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [hd_homerun_tab](#struct-hd-homerun-tab) &ast;hd_homerun,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [burned_subs_tab](#struct-burned-subs-tab) &ast;burned_subs);
void [save_data](#func-save-data)(FILE *file,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [main_tab](#struct-main-tab) &ast;main_settings,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [input_tab](#struct-input-tab) &ast;input,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [advanced_input_tab](#struct-advanced-input-tab) &ast;advanced_input,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [output_tab](#struct-output-tab) &ast;output,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [decoders_tab](#struct-decoders-tab) &ast;decoders,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [credits_tab](#struct-credits-tab) &ast;credits,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [debug_tab](#struct-debug-tab) &ast;debug,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [hd_homerun_tab](#struct-hd-homerun-tab) &ast;hd_homerun,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct [burned_subs_tab](#struct-burned-subs-tab) &ast;burned_subs);
void [write_credits](#func-write-credits)(FILE* file, struct [credits_tab](#struct-credits-tab) &ast;credits);
void [read_credits](#func-read-credits)(FILE* file, struct [credits_tab](#struct-credits-tab) &ast;credits);
terminal.c
int [terminal](#func-terminal)(struct [nk_context](#nk-context) &ast;ctx, int x, int y, int width, int height, char &ast;command);
### About CCExtractor specific functions
#### int <a id="func-activity">activity</a>(struct nk_context &ast;ctx, int x, int y, int width, int height, struct [main_tab](#struct-main-tab) &ast;main_settings);
##### Info:
--Contains the procedure to be carried out when Activity Window is toggled.
##### Parameters:
* &ast;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.
* &ast;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) &ast;main_settings);
##### Info:
Setups the required defaults of variables in [`main_tab`](#struct-main-tab) structure.
##### Parameters:
* &ast;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 &ast;filePath);
##### Info:
Truncated the Path String of file to visible area using `...`
##### Parameters:
* &ast;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) &ast;main_settings, int indexToRemove);
##### Info:
Removes the selected path in the extraction queue (Selected entry's index is passed).
##### Parameters:
* &ast;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&ast; <a id="func-read-activity-data">read_activity_data</a>(void &ast;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:
* &ast;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&ast;
#### void&ast; <a id="func-read-data-from-thread>read_data_from_thread</a>(void&ast; 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:
* &ast;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&ast;
#### void&ast; <a id="func-extract-thread">extract_thread</a>(void&ast; extract_args);
##### Info:
Passes command with all options from GUI to CLI CCExtractor.
##### Parameters:
* &ast;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&ast;
#### void&ast; <a id="func-feed-files-for-extraction">feed_files_for_extraction</a>(void&ast; 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:
* &ast;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&ast;
#### void <a id="func-setup-and-create-thread">setup_and_create_thread</a>(struct [main_tab](#struct-main-tab) &ast;main_settings, struct [built_string](#struct-built-string) &ast;command);
##### Info:
Initialises some values for the structure used in thread arguments and creates [feed_files_for_extraction](#feed-files-for-extraction).
##### Parameters:
* &ast;main_settings - Pointer to `main_tab` struct.
* &ast;command - Pointer to `built_string` struct.
##### Return type: void&ast;
#### void&ast; <a id="func-hind-hd-homerun-devices">find_hd_homerun_devices</a>(void &ast;args);
Finds devices connected to HD HomeRun Network.
#### Parameters:
* &ast;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&ast;
#### void&ast; <a id="func-setup-hd-homerun-device">setup_hd_homerun_device</a>(void &ast;args);
##### Info:
Sets up various parameters required to extract subtitle from incoming stream from a HD HomeRun Device.
##### Parameters:
* &ast;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&ast;
#### void [command_builder](#func-command-builder)(struct [built_string](#struct-built-string) &ast;command, struct [main_tab](#struct-main-tab) &ast;main_settings, struct [network_popup](#struct-network-popup) &ast;network_settings, struct [input_tab](#struct-input-tab) &ast;input, struct [advanced_input_tab](#struct-advanced-input-tab) &ast;advanced_input, struct [output_tab](#struct-output-tab) &ast;output, struct [decoders_tab](#struct-output-tab) &ast;decoders, struct [credits_tab](#struct-output-tab) &ast;credits, struct [debug_tab](#struct-debug-tab) &ast;debug, struct [burned_subs_tab](#struct-debug-tab) &ast;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:
* &ast;command - Pointer to `built_string` command.
* &ast;main_settings - Pointer to `main_tab` struct.
* &ast;network_settings - Pointer to `network_popup` struct.
* &ast;input - Pointer to `input_tab` struct.
* &ast;advance_input - Pointer to `advanced_input` struct.
* &ast;output - Pointer to `output_tab` struct.
* &ast;decoders - Pointer to `decoders_tab` struct.
* &ast;credits - Pointer to `credits_tab` struct.
* &ast;debug - Pointer to `debug_tab` struct.
* &ast;burned_subs - Pointer to `burned_subs_tab` struct.
##### Return type: void
#### void <a id="func-die">die</a>(const char &ast;fmt, ...);
##### Info:
Custom function to generate error if something in File Browser goes wrong.
##### Parameters:
* &ast;fmt - Format of char string along with place holder for variables.
* ... - Variables in order of their specified place holder.
##### Return type: void
#### char&ast; <a id="func-file-load">file_load</a>(const char&ast; path, size_t&ast; siz);
##### Info:
Custom function to load file and read data from loaded file.
##### Parameters:
* &ast;path - Pointer to string literal (Path of the file).
* &ast;siz - Size of string literal provided (To allocate memory accordingly).
##### Return type: void
#### char&ast; <a id="func-str-duplicate">str_duplicate</a>(const char &ast;src);
##### Info:
Dynamically copies specified string to memory.
##### Parameters:
* &ast;src - The String to be copied.
##### Return type: char&ast;
* Pointer to the string in the memory.
#### void <a id="func-dir-free-list">dir_free_list</a>(char &ast;&ast;list, size_t size);
##### Info:
Frees the memory allocated to Files' and Directories' name and path.
##### Parameters:
* &ast;&ast;char - Pointer to list (array of strings) to be freed
##### Return type: void
#### char&ast;&ast; <a id="func-dir-list">dir_list</a>(const char &ast;dir, int return_subdirs, size_t &ast;count);
##### Info:
Opens the selected directory and adds its path to list and returns the same list.
#####Parameters:
* &ast;dir - Pointer to string (name of directory to be opened).
* return_subdirs - `nk_true` if subdirectories are to be returned then.
* &ast;count - Number of directories in opened directories.
#### Retrun type: char&ast;&ast;
* 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 &ast;name, struct nk_image &ast;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`.
* &ast;name - Pointer to a string literal (to set `name` member in `file_group`.
* &ast;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 &ast;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`.
* &ast;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&ast; <a id="func-media-icon-for-file">media_icon_for_file</a>(struct media &ast;media, const char &ast;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:
* &ast;media - pointer to `media` struct.
* &ast;file - pointer to string literal (name of file with extension)
##### Return type: struct `nk_image`&ast;
* Returns appropriate `nk_image` corresponding to the file.
#### void <a id="func-media-init">media_init</a>(struct media &ast;media);
##### Info:
Assigns icons to `file` and `file_group` members from.
##### Parameters:
* &ast;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 &ast;browser, const char &ast;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:
* &ast;browser - Pointer to `file_browser` struct.
* &ast;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 &ast;browser);
##### Info:
NOTE: Windows Specific Function.
Detects the number of drives and their respective Drive Letters to show the same in File Browser.
#####Parameters:
* &ast;browser - pointer to `file_browser` struct.
##### Return type: void
#### void <a id="func-file-browser-init">file_browser_init</a>(struct file_browser &ast;browser, struct media &ast;media);
##### Info:
Initialised various variables/attributes required whenever the File Browser is run.
##### Parameters:
* &ast;browser - Pointer to `file_browser` struct.
* &ast;media - pointer to `media` struct.
##### Return type: void
#### void <a id="func-file-browser-free">file_browser_free</a>(struct file_browser &ast;browser);
##### Info:
Frees the memory allocated to various variables in [file_browser_init](#func-file-browser-init).
##### Parameters:
* &ast;browser - pointer to `file_browser` struct.
##### Return type: void
#### int <a id="func-file-browser-run">file_browser_run</a>(struct file_browser &ast;browser, struct [nk_context](#nk-context) &ast;ctx, struct [main_tab](#struct-main-tab) &ast;main_settings, struct [output_tab](#struct-output-tab) &ast;output, struct [debug_tab](#struct-debug-tab) &ast;debug, struct [hd_homerun_tab](#struct-hd-homerun-tab) &ast;hd_homerun);
##### Info:
Provides runtime of File Browser on GUI.
##### Parameters:
* &ast;browser - pointer to `file_browser` struct.
* &ast;ctx - pointer to `nk_context` struct.
* &ast;main_settings - pointer to `main_tab` struct.
* &ast;output - poiter to `output_tab` struct.
* &ast;debug - pointer to `debug_tab` struct.
* &ast;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) &ast;ctx, int &ast;show_preferences_network, struct [network_popup](#struct-network-popup) &ast;network_settings);
##### Info:
Draws popup with Network Settings on GUI.
##### Parameters:
* &ast;ctx - pointer to `nk_context` struct.
* &ast;show_preferences_network - pointer to variable status if which triggers the popup.
* &ast;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) &ast;ctx, int &ast;show_getting_started);
##### Info:
Draws popup on screen which shows Getting Started Info.
##### Parameters:
* &ast;ctx - pointer to `nk_context` struct.
* &ast;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) &ast;ctx, int &ast;show_about_ccx, struct nk_user_font &ast;droid_big, struct nk_user_font &ast;droid_head);
##### Info:
Draws popup on screen containing information about CCExtractor.
##### Parameters:
* &ast;ctx - pointer to `nk_context` struct.
* &ast;show_about_ccx - pointer to variable status if which triggers the popup.
* &ast;droid_big - pointer to `nk_user_font` struct.
* &ast;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) &ast;ctx, int &ast;show_progress_details, struct [main_tab](#struct-main-tab) &ast;main_settings);
##### Info:
Draws popup on screen which shows progress details.
##### Parameters:
* &ast;ctx - pointer to `nk_context` struct.
* &ast;show_pogress_details - pointer to variable status if which triggers the popup.
* &ast;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) &ast;ctx, struct [output_tab](#struct-output-tab) &ast;output);
##### Info:
Draws popup on screen which shows color-picker.
##### Parameters:
* &ast;ctx - pointer to `nk_context` struct.
* &ast;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) &ast;ctx, int &ast;show_thread_popup);
##### Info:
This popup is shown if anyhow the GUI is unable to read file.
##### Parameters:
* &ast;ctx - pointer to `nk_context` struct.
* &ast;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) &ast;network_settings);
##### Info:
Sets up defaults for Network Settings.
##### Parameters:
* &ast;network_settings - pointer to `network_popup` struct.
##### Return type: void
#### int <a id="func-preview">preview</a>(struct [nk_context](#nk-context) &ast;ctx, int x, int y, int width, int height, struct [main_tab](#struct-main-tab) &ast;main_settings);
##### Info:
Draws `Preview` Nuklear window and shows preview strings (lines of subtitles extracted in realtime).
##### Parameters:
* &ast;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.
* &ast;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) &ast;main_settings, struct [input_tab](#struct-input-tab) &ast;input, struct [advanced_input_tab](#struct-advanced-input-tab) &ast;advanced_input, struct [output_tab](#struct-output-tab) &ast;output, struct [decoders_tab](#struct-decoders-tab) &ast;decoders, struct [credits_tab](#struct-credits-tab) &ast;credits, struct [debug_tab](#struct-debug-tab) &ast;debug, struct [hd_homerun_tab](#struct-hd-homerun-tab) &ast;hd_homerun, struct [burned_subs_tab](#struct-burned-subs-tab) &ast;burned_subs);
##### Info:
Loads values of all the variables stored in a file at last exit of GUI.
##### Parameters:
* &ast;file - pointer to `FILE`.
* &ast;main_settings - pointer to `main_tab` struct.
* &ast;intput - pointer to `input_tab` struct.
* &ast;advanced_input - pointer to `advanced_input_tab` struct.
* &ast;output - pointer to `output_tab` struct.
* &ast;decoders - pointer to `decoders_tab` struct.
* &ast;credits - poitner to `credits_tab` struct.
* &ast;debug - pointer to `debug_tab` struct.
* &ast;hd_homerun - pointer to `hd_homerun_tab` struct.
* &ast;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) &ast;main_settings, struct [input_tab](#struct-input-tab) &ast;input, struct [advanced_input_tab](#struct-advanced-input-tab) &ast;advanced_input, struct [output_tab](#struct-output-tab) &ast;output, struct [decoders_tab](#struct-decoders-tab) &ast;decoders, struct [credits_tab](#struct-credits-tab) &ast;credits, struct [debug_tab](#struct-debug-tab) &ast;debug, struct [hd_homerun_tab](#struct-hd-homerun-tab) &ast;hd_homerun, struct [burned_subs_tab](#struct-burned-subs-tab) &ast;burned_subs);
##### info:
Saves values of all the variables as a "Current State" in a file on exit.
##### Parameters:
* &ast;file - pointer to `FILE`.
* &ast;main_settings - pointer to `main_tab` struct.
* &ast;intput - pointer to `input_tab` struct.
* &ast;advanced_input - pointer to `advanced_input_tab` struct.
* &ast;output - pointer to `output_tab` struct.
* &ast;decoders - pointer to `decoders_tab` struct.
* &ast;credits - poitner to `credits_tab` struct.
* &ast;debug - pointer to `debug_tab` struct.
* &ast;hd_homerun - pointer to `hd_homerun_tab` struct.
* &ast;burned_subs - pointer to `burned_subs_tab` struct.
##### Return type: void
#### void <a id="func-write-credits">write_credits</a>(FILE &ast;file, struct [credits_tab](#struct-credits-tab) &ast;credits);
##### Info:
Writes Credits to files after some operations, since extra`\n` character gives problems while reading file.
##### Parameters:
* &ast;file - pointer to `FILE`.
* &ast;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) &ast;credits);
##### Info:
Reads credits from file in a specific format (as written by [write_credits](#func-write-credits)) from file.
##### Parameters:
* &ast;file - pointer to `FILE`.
* &ast;credits - pointer to `credits_tab` struct.
##### Return type: void
#### int <a id="func-terminal">terminal</a>(struct [nk_context](#nk-context) &ast;ctx, int x, int y, int width, int height, char &ast;command);
##### Info:
Writes the command string (that would be passed to CLI CCExtractor) in "Terminal" Nuklear Window.
##### Parameters:
* &ast;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.
* &ast;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&ast;, const char &ast;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&ast; - Pointer to `nk_context` structure.
* &ast;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:
* &ast;ctx - Pointer to `nk_context` structure.
##### Return type: void
#### void <a id="nk-layout-row-dynamic">nk_layout_row_dynamic</a>(struct nk_context&ast;, 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:
* &ast;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&ast;, const char&ast;);
##### 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&ast; - Pointer to `nk_context` structure.
* char&ast; - Pointer to string literal (to view).
#### int <a id="nk-window-is-closed">nk_window_is_closed</a>(struct nk_context &ast;ctx, const char &ast;name);
##### Info:
Checks if the active Nuklear Window is closed (by any trigger).
##### Parameters:
* &ast;ctx - Pointer to `nk_context` structure.
* &ast;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 &ast;ctx);
##### Info:
Marks the end of Menu Bar definition(Menubar code).
##### Parameters:
* &ast;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:
* &ast;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&ast;, 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&ast; - 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 &ast;ctx, const char &ast;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:
* &ast;ctx - pointer to `nk_context` structure.
* &ast;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&ast;);
##### Info:
Marks the end of the MenuBar definition.
##### Parameters:
* nk_context&ast; - Pointer to `nk_context` structure.
##### Return type: void
#### void <a id="nk-layout-space-begin">nk_layout_space_begin</a>(struct nk_context &ast;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:
* &ast;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 &ast;ctx);
##### Info:
Marks the end of custom space (empty) definition.
##### Parameters:
* &ast;ctx - pointer to `nk_context` structure.
##### Return type: void
#### int <a id="nk-style-push-vec2">nk_style_push_vec2</a>(struct nk_context&ast; struct nk_vec2&ast;, 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&ast; - Pointer to `nk_context` structure.
* nk_vec2&ast; - Pointer to attribute to be modified.
* nk_vec2&ast; - 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&ast;, float&ast;, 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&ast; - Pointer to `nk_context` structure.
* float&ast; - 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&ast;, const char &ast;title);
##### Info:
Draws a Button with provided label.
##### Parameters:
* nk_context&ast; - Pointer to `nk_context` struct.
* &ast;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&ast;);
##### 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&ast; - 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 &ast;ctx, const char &ast;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:
* &ast;ctx - pointer to `nk_context` struct.
* &ast;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 &ast;ctx);
##### Info:
Marks the end of the group created by [nk_group_begin](#nk-group-begin).
##### Parameters:
* &ast;ctx - pointer to `nk_context` struct.
##### Return type: void
#### void <a id="nk-layout-row">nk_layout_row</a>(struct nk_context&ast;, enum nk_layout_format, float height, int cols, const float &ast;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&ast; - 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.
* &ast;ratio - Ratio for widget placement.
##### Return type: void
#### void <a id="nk-spacing">nk_spacing</a>(struct nk_context&ast;, int cols);
##### Info:
Used to create spacing (blank) of specified columns.
##### Parameters:
* nk_context&ast; - 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 &ast;ctx, const char &ast;label, int &ast;active);
##### Info:
Creates a checkbox with specified label.
##### Parameters:
* &ast;ctx - Pointer to `nk_context` struct.
* &ast; - Pointer to string literal(Label of checkbox).
* &ast; - 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 &ast;ctx, const char &ast;label, int active);
##### Info:
Draws radio button (among radio group) with specified label.
##### Parameters:
* &ast;ctx - pointer to `nk_context` struct.
* &ast;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&ast;, const char&ast;, nk_flags align, int &ast;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&ast; - pointer to `nk_context` struct.
* char&ast; - Pointer to string literal (Label to display on GUI).
* align - required alignment flags from `nk_flags` like `NK_TEXT_LEFT`.
* &ast;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&ast;, const char &ast;&ast;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&ast; - Pointer to `nk_context` structure.
* &ast;&ast;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 &ast;ctx, const char &ast;str, nk_flags alignment);
##### Info:
Draws a plain text on Nuklear Window, Popup or group.
##### Parameters:
* &ast;ctx - pointer to `nk_context` structure.
* &ast;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 &ast;ctx, nk_size &ast;cur, nk_size max, int is_modifyable);
##### Info:
Draws a progress bar.
##### Parameters:
* &ast;ctx - Poitner to `nk_context` struct.
* &ast;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

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

BIN
docs/img/Building.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
docs/img/ProjectSection.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

BIN
docs/img/Properties.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

BIN
docs/img/Warning.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

BIN
docs/img/projectFiles.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

View File

@@ -11,8 +11,10 @@ Step 2) create a separate directory where you want to build the target.
~> cd ccextractor
~> mkdir build
Step 3) make the build system 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
@@ -28,7 +30,10 @@ 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 ../src/
cmake -DWITH_SHARING=ON ../src/
If you want to build CCExtractor with HARDSUBX support
cmake -DWITH_HARDSUBX=ON ../src/
Hint for looking all the things you want to set from outside
cmake -LAH ../src/

BIN
fonts/Cousine-Regular.ttf Normal file

Binary file not shown.

BIN
fonts/DroidSans.ttf Normal file

Binary file not shown.

BIN
fonts/Karla-Regular.ttf Normal file

Binary file not shown.

BIN
fonts/ProggyClean.ttf Normal file

Binary file not shown.

BIN
fonts/ProggyTiny.ttf Normal file

Binary file not shown.

BIN
fonts/Raleway-Bold.ttf Normal file

Binary file not shown.

BIN
fonts/Roboto-Bold.ttf Normal file

Binary file not shown.

BIN
fonts/Roboto-Light.ttf Normal file

Binary file not shown.

BIN
fonts/Roboto-Regular.ttf Normal file

Binary file not shown.

BIN
fonts/kenvector_future.ttf Normal file

Binary file not shown.

Binary file not shown.

BIN
icon/computer.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 620 B

BIN
icon/default.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
icon/desktop.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 B

BIN
icon/directory.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
icon/drive.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
icon/font.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
icon/home.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 819 B

BIN
icon/img.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
icon/movie.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
icon/music.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
icon/text.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@@ -1,167 +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/protobuf-c -I../src/zlib -I../src/lib_ccx -I../src/.
INCLUDE += -I../src/zvbi -I../src/utf8proc
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:../src/utf8proc:../src/protobuf-c
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)
SRCS_UTF8_DIR = $(SRCS_DIR)/utf8proc
SRCS_UTF8 = $(SRCS_UTF8_DIR)/utf8proc.c
OBJS_UTF8 = $(SRCS_UTF8:$(SRCS_UTF8_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
LEPT_LDFLAGS+= $(shell pkg-config --libs lept)
ifneq ($(shell pkg-config --exists tesseract), $(EMPTY))
TESS_LDFLAGS+= $(shell pkg-config --libs tesseract)
TESS_CFLAGS+= $(shell pkg-config --cflags tesseract)
else
#fix for raspberry pi not having a pkgconfig file for tesseract
ifneq ($(wildcard /usr/include/tesseract/*),$(EMPTY))
TESS_LDFLAGS+= -ltesseract
TESS_CFLAGS+= -I/usr/include/tesseract
endif
endif
#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 += $(TESS_CFLAGS)
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) $(OBJS_UTF8)
$(CC) $(ALL_FLAGS) $(CFLAGS) $(OBJS) $(OBJS_CCX) $(OBJS_PNG) $(OBJS_ZVBI) $(OBJS_GPACMP4) $(OBJS_ZLIB) $(OBJS_HASH) $(OBJS_UTF8) $(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_UTF8) $(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_UTF8) $(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

438
linux/Makefile.am Normal file
View File

@@ -0,0 +1,438 @@
AUTOMAKE_OPTIONS = foreign
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/thirdparty/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
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/thirdparty/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 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
View File

@@ -0,0 +1,4 @@
#!/usr/bin/env bash
./pre-build.sh
autoreconf -i

View File

@@ -1,20 +1,67 @@
#!/bin/bash
BLD_FLAGS="-std=gnu99 -Wno-write-strings -DGPAC_CONFIG_LINUX -D_FILE_OFFSET_BITS=64 -DVERSION_FILE_PRESENT -DENABLE_OCR"
BLD_INCLUDE="-I../src -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 -I../src/protobuf-c -I../src/utf8proc"
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')"
SRC_PROTOBUF="$(find ../src/protobuf-c/ -name '*.c')"
SRC_UTF8PROC="../src/utf8proc/utf8proc.c"
BLD_SOURCES="../src/ccextractor.c $SRC_CCX $SRC_GPAC $SRC_ZLIB $SRC_ZVBI $SRC_LIBPNG $SRC_HASH $SRC_PROTOBUF $SRC_UTF8PROC"
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
echo "Trying to compile..."
out=$((LC_ALL=C gcc $BLD_FLAGS $BLD_INCLUDE -o ccextractor $BLD_SOURCES $BLD_LINKER) 2>&1)
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
@@ -28,7 +75,7 @@ then
fi
if [[ $out == *"capi.h: No such file or directory"* ]]
then
echo "Error: please install tesseract development library (tesseract-ocr-dev for Debian/Ubuntu)";
echo "Error: please install tesseract development library (libtesseract-dev for Debian/Ubuntu)";
exit 3
fi
if [[ $out == *"allheaders.h: No such file or directory"* ]]
@@ -42,4 +89,9 @@ then
>&2 echo "$out"
exit 5
fi
echo "Compilation successful";
if [[ "$out" != "" ]] ; then
echo "$out"
echo "Compilation successful, compiler message shown in previous lines"
else
echo "Compilation successful, no compiler messages."
fi

View File

@@ -1,4 +1,4 @@
#!/bin/sh -ex
#!/usr/bin/env sh -ex
####################################################################
# setup by tracey apr 2012
@@ -88,13 +88,13 @@ cd ccextractor/linux/;
# cd ccextractor.*/linux/;
perl -i -pe 's/O3 /O3 -static /' Makefile;
# quick patch:
perl -i -pe 's/(strchr|strstr)\(/$1((char *)/' ../src/gpacmp4/url.c ../src/gpacmp4/error.c;
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 -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 \
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 \

View File

@@ -1,17 +1,4 @@
#!/bin/bash
BLD_FLAGS="-g -std=gnu99 -Wno-write-strings -DGPAC_CONFIG_LINUX -D_FILE_OFFSET_BITS=64 -DVERSION_FILE_PRESENT -DENABLE_OCR -DENABLE_HARDSUBX"
BLD_INCLUDE="-I../src -I /usr/local/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 -I../src/protobuf-c"
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')"
SRC_UTF8="../src/utf8proc/utf8proc.c"
SRC_PROTOBUF="$(find ../src/protobuf-c/ -name '*.c')"
protobuf-c
BLD_SOURCES="../src/ccextractor.c $SRC_CCX $SRC_GPAC $SRC_ZLIB $SRC_ZVBI $SRC_LIBPNG $SRC_HASH $SRC_UTF8 $SRC_PROTOBUF"
BLD_LINKER="-lm -zmuldefs -l tesseract -l lept -L/usr/local/lib -lswscale -lavutil -pthread -lavformat -lavcodec -lxcb-shm -lxcb -lX11 -llzma -lz -lswresample"
./pre-build.sh
gcc $BLD_FLAGS $BLD_INCLUDE -o ccextractor $BLD_SOURCES $BLD_LINKER
#!/usr/bin/env bash
export BLD_FLAGS="-DENABLE_HARDSUBX"
export BLD_LINKER="-lswscale -lavutil -pthread -lavformat -lavcodec -lxcb-shm -lxcb -lX11 -llzma -lswresample"
./build

View File

@@ -1,16 +1,3 @@
#!/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../src -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 -I../src/protobuf-c -I../src/utf8proc"
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')"
SRC_PROTOBUF="$(find ../src/protobuf-c/ -name '*.c')"
SRC_UTF8PROC="../src/utf8proc/utf8proc.c"
BLD_SOURCES="../src/ccextractor.c $SRC_CCX $SRC_GPAC $SRC_ZLIB $SRC_ZVBI $SRC_LIBPNG $SRC_HASH $SRC_PROTOBUF $SRC_UTF8PROC"
BLD_LINKER="-lm -zmuldefs -l tesseract -l lept"
./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
View 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

121
linux/configure.ac Normal file
View File

@@ -0,0 +1,121 @@
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
AC_INIT([CCExtractor], [0.89], [carlos@ccextractor.org])
AC_CONFIG_AUX_DIR([build-conf])
AC_CONFIG_SRCDIR([../src/ccextractor.c])
AM_INIT_AUTOMAKE([foreign subdir-objects])
# 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])
#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(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

12
linux/module_generator Executable file
View 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

View File

@@ -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"

432
mac/Makefile.am Normal file
View File

@@ -0,0 +1,432 @@
AUTOMAKE_OPTIONS = foreign
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/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/thirdparty/zvbi/bcd.h \
../src/thirdparty/zvbi/bit_slicer.c \
../src/thirdparty/zvbi/bit_slicer.h \
../src/thirdparty/zvbi/decoder.c \
../src/thirdparty/zvbi/macros.h \
../src/thirdparty/zvbi/misc.h \
../src/thirdparty/zvbi/raw_decoder.c \
../src/thirdparty/zvbi/raw_decoder.h \
../src/thirdparty/zvbi/sampling_par.c \
../src/thirdparty/zvbi/sampling_par.h \
../src/thirdparty/zvbi/sliced.h \
../src/thirdparty/zvbi/zvbi_decoder.h \
../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
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/thirdparty/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 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 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 += -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

View File

@@ -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
View File

@@ -0,0 +1,4 @@
#!/bin/bash
./pre-build.sh
autoreconf -i

View File

@@ -1,17 +1,61 @@
#!/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/ -I../src/lib_ccx -I../src/gpacmp4 -I../src/lib_hash -I../src/libpng -I../src/utf8proc -I../src/protobuf-c -I../src/zlib -I../src/zvbi -I /usr/local/include/leptonica/ -I /usr/local/include/tesseract/"
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"
[[ $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/zvbi -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')"
SRC_LIBPNG="$(find ../src/libpng -name '*.c')"
SRC_PROTOBUF="$(find ../src/protobuf-c -name '*.c')"
SRC_UTF8="$(find ../src/utf8proc-c -name '*.c')"
SRC_ZLIB="$(find ../src/zlib -name '*.c')"
SRC_ZVBI="$(find ../src/zvbi -name '*.c')"
BLD_SOURCES="../src/ccextractor.c $SRC_CCX $SRC_GPAC $SRC_LIB_HASH $SRC_LIBPNG $SRC_PROTOBUF $SRC_UTF8 $SRC_ZLIB $SRC_ZVBI"
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_ZVBI="$(find ../src/thirdparty/zvbi -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
View 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

120
mac/configure.ac Normal file
View File

@@ -0,0 +1,120 @@
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
AC_INIT([CCExtractor], [0.89], [carlos@ccextractor.org])
AC_CONFIG_AUX_DIR([build-conf])
AC_CONFIG_SRCDIR([../src/ccextractor.c])
AM_INIT_AUTOMAKE([foreign subdir-objects])
# 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])
#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(BUILD_WITH_GUI, [test "x$with_gui" = "xyes"])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More