[rust] add parser (#1619)

* feat: unpack gpac

* fix: linux ci

* fix: mac build

* fix: remove unused [no ci]

* fix: ignore config.h [no ci]

* temp commit, will drop this soon

* fix: install gpac

* fix: gpac

* fix: formatting

* fix: preproccessor directive

* fix: comment display version for now

* fix: display dlls code

* fix: bundle vcruntime in hardsubx windows

* fix: again

* fix: erros in ci

* fix: ci

* fix: add vcruntime in additional dependencies

* fix: try to copy vcruntime after build

* fix: space in runtime library

* fix: remove for now [no ci]

* fix: things in vcxproj

* fix: ci for leptonica sys

* fix: docs

* fix: copy dlls on post build event

* fix: copy vcruntime after build

* feat: add arguments through clap

* fix: type of some arguments

* fix: "-" and "--" in comments

* fix: format files

* fix: add argument parsing till mkvlang

* fix: one todo item

* chore: lint fixes

* fix: nocodec value

* fix: for nocodec

* fix: add cfg feature for hardsubx

* feat: complete till startcreditstext

* fix: add more notes, args: option affect processed

* feat: port all till network stuff

* fix: complete almost all argument parsing

* fix: error free code

* fix: complete params port

* fix: hardsubx erros

* feat: clean up main function

* fix: pr reviews

* fix: make input,output function better

* fix: variant not used warning

* fix: warnings

* fix: all clippy warnings

* feat: add tests

* feat: add tests

* chore: lint fixes

* fix: move unit tests to correct folder

* fix: remove unncessary files

* fix: make function for parse_args

* fix: review changes

* fix: Impl CcxOptions whenever I could

* fix: try to convert rust to c

* chore: push c code

* fix: add more rust to c conversions

* fix: use set methods for bitfield

* fix: errors

* fix: arguments parsing

* fix: all issues

* fix: many errors

* chore: lint fix

* fix: err

* fix: unsafe function error

* fix: unsafe warning

* fix: safety lint

* chore: add docs

* fix: windows build

* fix: function

* fix: dependencies

* fix: set_binary_mode

* chore: lint fix

* fix: set_binary_mode for windows

* fix: error

* fix: undefined reference error

* chore: remove comment

* fix: output field

* chore: fix lint

* fix: ru1, ru2, ru3

* fix: undef before

* fix: parameter and update deps

* chore: update vcpkg

* feat: add release-with-debug profile

* fix; uncomment code

* fix: update visual studio to 2022

* chore: update docs

* fix: use default vcpkg

* fix: caching logic on release ci

* fix: vcpkg caching

* fix: add setup vcpkg

* chore: remove unneccesary formatting

* fix: Always write 2 bytes for UTF-16BE

* fix: formatting

* feat: add rest of the notes to bring continuity

* fix: remove extra line

* fix: add hardsubx note

* fix: source code format error

* chore: lint fixes acc to rustfmt

* feat: add unit test ci

* fix: conversion of strings, add file queue handling

* fix: decoder cfg

* fix: update dependencies

* chore: lint fix

* chore: add safety doc

* fix: default value for CcxOptions

* fix(rust): default value for teletext

* fix: leptonica version for windows

* fix: format errors

* fix: workflow

* Revert "fix: leptonica version for windows"

This reverts commit 461ef55e7b.

* fix: pin ffmpeg to 6 for mac

* fix(parser): default values and unwrap's

* fix(parser): hardsubx fixes

* chore(parse): lint fixes

* fix(windows): switch back to sdk 2019

* fix(workflow): windows workflow revert

* fix(windows): revert to old files which were working before

* fix(workflow): pin vcpkg packages

* chore(rust): downgrade leptonica

* fix(windows): move vcpkg.json to correct place

* fix(windows): improve vcxproj

* fix(windows): workflow

* fix(windows): workflow

* fix(windows): workflow clone from vcpkg everytime

* fix(workflow): error

* fix(workflow): don't skip building vcpkg

* fix: remove depth from vcpkg

* temporary commit

* fix(windows): pin gpac and use local vcpkg manifest properly

* fix(windows): install vcpkg dependencies manually

* fix(windows): update dll names

* fix(windows); dependencies copy

* fix(windows): don't continue on error for release

* fix(macos): build ffmpeg for mac workflow

* fix: move ffmpeg to current workspace

* fix: re-add profile for windows

* fix: pkg config for mac

* fix(mac): use ffmpeg@6 from brew

* fix(macos): there is no ffmpeg_prebuilt

* fix(macos): specify ffmpeg pkg config

* fix(macos): globally define pkg config

* fix(macos): add ffmpeg include and libs dir

* fix(macos): include ffmpeg headers in makefile

* fix: include ffmpeg libraries and include directories

* fix: try to manually specify ffmpeg header in rust

* fix: also include leptonica headres

* fix: leptonica name

* fix: test

* fix: string null when output_filename is empty

* fix: error

* fix: remove cflgas

* fix(mac): disable cmake ocr hardsubx

* chore: update gitignore

* fix: null if string is empty

* fix: allow --in

* chore: bump version to 1.0 in rust

* chore: add space to trigger sp

* fix: don't panic with rust

* fix: add double dashes to indicate parameters

* chore: update CHANGES.txt

* fix: test

* fix(workflow): update workflow name

* fix(rust): linux output_filename in sampleplatform

* fix(rust): parser default values

* fix(rust): exit with MalformedParameter instead of panic

* fix(decoder): revert always write 2 bytes

* chore(rust): format

* chore: update lock file

* fix(test): test lib_ccxr and rename to test

* fix(mac): remove failing cmake_ocr test

* fix: ci errors

* fix: feature related changes

* fix: trim down default features

* fix: don't check clippy for all features
This commit is contained in:
Prateek Sunal
2024-08-10 16:25:21 +05:30
committed by GitHub
parent 90204d4cc6
commit 9340cc7df6
30 changed files with 6114 additions and 1072 deletions

View File

@@ -74,22 +74,6 @@ jobs:
working-directory: build
- name: Display version information
run: ./build/ccextractor --version
cmake_ocr_hardsubx:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: brew install pkg-config autoconf automake libtool tesseract leptonica gpac ffmpeg
- name: cmake
run: |
mkdir build && cd build
cmake -DWITH_OCR=ON -DWITH_HARDSUBX=ON ../src
- name: build
run: |
make -j$(nproc)
working-directory: build
- name: Display version information
run: ./build/ccextractor --version
build_rust:
runs-on: macos-latest
steps:

View File

@@ -51,4 +51,4 @@ jobs:
run: cargo fmt --all -- --check
- name: clippy
run: |
cargo clippy --all-features -- -D warnings
cargo clippy -- -D warnings

37
.github/workflows/test_rust.yml vendored Normal file
View File

@@ -0,0 +1,37 @@
name: Unit Test Rust
on:
push:
paths:
- ".github/workflows/test.yml"
- "src/rust/**"
tags-ignore:
- "*.*"
pull_request:
types: [opened, synchronize, reopened]
paths:
- ".github/workflows/test.yml"
- "src/rust/**"
jobs:
test_rust:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./src/rust
steps:
- uses: actions/checkout@v4
- name: cache
uses: actions/cache@v3
with:
path: |
src/rust/.cargo/registry
src/rust/.cargo/git
src/rust/target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Test main module
run: cargo test
working-directory: ./src/rust

3
.gitignore vendored
View File

@@ -17,8 +17,10 @@ CVS
mac/ccextractor
linux/ccextractor
linux/depend
windows/x86_64-pc-windows-msvc/**
windows/Debug/**
windows/Debug-OCR/**
windows/release-with-debug/**
windows/Release/**
windows/Release-Full/**
windows/Release-OCR/**
@@ -154,3 +156,4 @@ windows/ccx_rust.lib
windows/*/debug/*
windows/*/CACHEDIR.TAG
windows/.rustc_info.json
linux/configure~

View File

@@ -1,5 +1,6 @@
0.95 (to be released)
1.0 (to be released)
-----------------
- Breaking: Major argument flags revamp for CCExtractor (#1564 & #1619)
- New: Create a Docker image to simplify the CCExtractor usage without any environmental hustle (#1611)
- New: Add time units module in lib_ccxr (#1623)
- New: Add bits and levenshtein module in lib_ccxr (#1627)

View File

@@ -42,7 +42,7 @@ Note:If you installed ffmpeg on non-standard location, please change/update your
### On Windows:
#### Set preprocessor flag `ENABLE_FFMPEG=1`
1. In visual studio 2013 right click <Project> and select property.
1. In visual studio 2022 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.

View File

@@ -93,7 +93,7 @@ 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.
1. In visual studio 2022 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.
@@ -101,7 +101,7 @@ put the path of libs/include of leptonica and tesseract in library paths.
Set preprocessor flag ENABLE_OCR=1
1. In visual studio 2013 right click <Project> and select property.
1. In visual studio 2022 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.

View File

@@ -249,6 +249,7 @@ GPAC_CPPFLAGS = $(shell pkg-config --cflags gpac)
ccextractor_CPPFLAGS =-I../src/lib_ccx/ -I../src/thirdparty/libpng/ -I../src/thirdparty/zlib/ -I../src/lib_ccx/zvbi/ -I../src/thirdparty/lib_hash/ -I../src/thirdparty/protobuf-c/ -I../src/thirdparty -I../src/ -I../src/thirdparty/freetype/include/
ccextractor_CPPFLAGS += $(GPAC_CPPFLAGS)
ccextractor_CPPFLAGS += $(FFMPEG_CPPFLAGS)
ccextractor_LDADD=-lm -lpthread -ldl
@@ -271,7 +272,7 @@ if HARDSUBX_IS_ENABLED
ccextractor_CFLAGS += -DENABLE_HARDSUBX
ccextractor_CPPFLAGS+= ${libavcodec_CFLAGS}
ccextractor_CPPFLAGS+= ${libavformat_CFLAGS}
ccextractor_CPPFLAGS+= ${libavutil_CFALGS}
ccextractor_CPPFLAGS+= ${libavutil_CFLAGS}
ccextractor_CPPFLAGS+= ${libswscale_CFLAGS}
AV_LIB = ${libavcodec_LIBS}
AV_LIB += ${libavformat_LIBS}

View File

@@ -446,7 +446,11 @@ int main(int argc, char *argv[])
// If "ccextractor.cnf" is present, takes options from it.
// See docs/ccextractor.cnf.sample for more info.
#ifndef DISABLE_RUST
int compile_ret = ccxr_parse_parameters(api_options, argc, argv);
#else
int compile_ret = parse_parameters(api_options, argc, argv);
#endif
if (compile_ret == EXIT_NO_INPUT_FILES)
{

View File

@@ -161,6 +161,9 @@ extern void ccxr_init_basic_logger(struct ccx_s_options *opts);
void print_end_msg(void);
//params.c
#ifndef DISABLE_RUST
extern int ccxr_parse_parameters(struct ccx_s_options *opt, int argc, char *argv[]);
#endif
int parse_parameters (struct ccx_s_options *opt, int argc, char *argv[]);
void print_usage (void);
int atoi_hex (char *s);

View File

@@ -1362,8 +1362,8 @@ int matroska_loop(struct lib_ccx_ctx *ctx)
{
if (ccx_options.write_format_rewritten)
{
mprint(MATROSKA_WARNING "You are using -out=<format>, but Matroska parser extract subtitles in a recorded format\n");
mprint("-out=<format> will be ignored\n");
mprint(MATROSKA_WARNING "You are using --out=<format>, but Matroska parser extract subtitles in a recorded format\n");
mprint("--out=<format> will be ignored\n");
}
// Don't need generated input file

View File

@@ -127,6 +127,13 @@ int parsedelay(struct ccx_s_options *opt, char *par)
return 0;
}
void set_binary_mode()
{
#ifdef WIN32
setmode(fileno(stdin), O_BINARY);
#endif
}
int append_file_to_queue(struct ccx_s_options *opt, char *filename)
{
if (filename[0] == '\0') // skip files with empty file name (ex : ./ccextractor "")
@@ -978,14 +985,14 @@ void print_usage(void)
mprint(" a .d extension. Each .png file will contain an image representing one caption\n");
mprint(" and named subNNNN.png, starting with sub0000.png.\n");
mprint(" For example, the command:\n");
mprint(" ccextractor -out=spupng input.mpg\n");
mprint(" ccextractor --out=spupng input.mpg\n");
mprint(" will create the files:\n");
mprint(" input.xml\n");
mprint(" input.d/sub0000.png\n");
mprint(" input.d/sub0001.png\n");
mprint(" ...\n");
mprint(" The command:\n");
mprint(" ccextractor -out=spupng -o /tmp/output --12 input.mpg\n");
mprint(" ccextractor --out=spupng -o /tmp/output --12 input.mpg\n");
mprint(" will create the files:\n");
mprint(" /tmp/output_1.xml\n");
mprint(" /tmp/output_1.d/sub0000.png\n");
@@ -1245,9 +1252,8 @@ int parse_parameters(struct ccx_s_options *opt, int argc, char *argv[])
}
if (strcmp(argv[i], "-") == 0 || strcmp(argv[i], "--stdin") == 0)
{
#ifdef WIN32
setmode(fileno(stdin), O_BINARY);
#endif
set_binary_mode();
opt->input_source = CCX_DS_STDIN;
if (!opt->live_stream)
opt->live_stream = -1;
@@ -2934,7 +2940,7 @@ int parse_parameters(struct ccx_s_options *opt, int argc, char *argv[])
}
if (opt->write_format == CCX_OF_SPUPNG && opt->cc_to_stdout)
{
print_error(opt->gui_mode_reports, "You cannot use -out=spupng with -stdout.\n");
print_error(opt->gui_mode_reports, "You cannot use --out=spupng with -stdout.\n");
return EXIT_INCOMPATIBLE_PARAMETERS;
}

View File

@@ -332,7 +332,7 @@ int parse_PMT(struct ccx_demuxer *ctx, unsigned char *buf, int len, struct progr
#ifndef ENABLE_OCR
if (ccx_options.write_format != CCX_OF_SPUPNG)
{
mprint("DVB subtitles detected, OCR subsystem not present. Use -out=spupng for graphic output\n");
mprint("DVB subtitles detected, OCR subsystem not present. Use --out=spupng for graphic output\n");
continue;
}
#endif

274
src/rust/Cargo.lock generated
View File

@@ -11,6 +11,55 @@ dependencies = [
"memchr",
]
[[package]]
name = "anstream"
version = "0.6.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b"
dependencies = [
"anstyle",
"anstyle-parse",
"anstyle-query",
"anstyle-wincon",
"colorchoice",
"is_terminal_polyfill",
"utf8parse",
]
[[package]]
name = "anstyle"
version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
[[package]]
name = "anstyle-parse"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4"
dependencies = [
"utf8parse",
]
[[package]]
name = "anstyle-query"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5"
dependencies = [
"windows-sys",
]
[[package]]
name = "anstyle-wincon"
version = "3.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19"
dependencies = [
"anstyle",
"windows-sys",
]
[[package]]
name = "approx"
version = "0.5.1"
@@ -78,7 +127,7 @@ dependencies = [
"regex",
"rustc-hash",
"shlex",
"syn 2.0.71",
"syn 2.0.66",
"which",
]
@@ -105,14 +154,21 @@ name = "ccx_rust"
version = "0.1.0"
dependencies = [
"bindgen 0.64.0",
"cfg-if",
"clap",
"env_logger",
"iconv",
"leptonica-sys",
"lib_ccxr",
"log",
"num-integer",
"palette",
"pkg-config",
"rsmpeg",
"strum",
"strum_macros",
"tesseract-sys",
"time",
]
[[package]]
@@ -132,15 +188,61 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "clang-sys"
version = "1.8.1"
version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1"
dependencies = [
"glob",
"libc",
"libloading",
]
[[package]]
name = "clap"
version = "4.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
dependencies = [
"clap_builder",
"clap_derive",
]
[[package]]
name = "clap_builder"
version = "4.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
dependencies = [
"anstream",
"anstyle",
"clap_lex",
"strsim",
]
[[package]]
name = "clap_derive"
version = "4.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64"
dependencies = [
"heck 0.5.0",
"proc-macro2",
"quote",
"syn 2.0.66",
]
[[package]]
name = "clap_lex"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
[[package]]
name = "colorchoice"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
[[package]]
name = "convert_case"
version = "0.4.0"
@@ -166,7 +268,7 @@ dependencies = [
"proc-macro2",
"quote",
"rustc_version",
"syn 2.0.71",
"syn 2.0.66",
]
[[package]]
@@ -177,9 +279,9 @@ checksum = "74c57ab96715773d9cb9789b38eb7cbf04b3c6f5624a9d98f51761603376767c"
[[package]]
name = "either"
version = "1.13.0"
version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
[[package]]
name = "env_logger"
@@ -219,6 +321,18 @@ version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
[[package]]
name = "heck"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
[[package]]
name = "heck"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "hermit-abi"
version = "0.1.19"
@@ -253,6 +367,12 @@ dependencies = [
"libc",
]
[[package]]
name = "is_terminal_polyfill"
version = "1.70.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800"
[[package]]
name = "itertools"
version = "0.12.1"
@@ -282,9 +402,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
[[package]]
name = "leptonica-sys"
version = "0.4.8"
version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c924779fadc73838b9390ddda5fc1939f844fb43bd44ef6794c32bd6e52238a"
checksum = "eff3f1dc2f0112411228f8db99ca8a6a1157537a7887b28b1c91fdc4051fb326"
dependencies = [
"bindgen 0.64.0",
"pkg-config",
@@ -309,9 +429,9 @@ checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
[[package]]
name = "libloading"
version = "0.8.4"
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e310b3a6b5907f99202fcdb4960ff45b93735d7c7d96b760fcff8db2dc0e103d"
checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
dependencies = [
"cfg-if",
"windows-targets",
@@ -325,15 +445,15 @@ checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
[[package]]
name = "log"
version = "0.4.22"
version = "0.4.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
[[package]]
name = "memchr"
version = "2.7.4"
version = "2.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
[[package]]
name = "minimal-lexical"
@@ -357,6 +477,15 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
[[package]]
name = "num-integer"
version = "0.1.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
dependencies = [
"num-traits",
]
[[package]]
name = "num-traits"
version = "0.2.19"
@@ -438,7 +567,7 @@ dependencies = [
"phf_shared",
"proc-macro2",
"quote",
"syn 2.0.71",
"syn 2.0.66",
]
[[package]]
@@ -469,14 +598,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e"
dependencies = [
"proc-macro2",
"syn 2.0.71",
"syn 2.0.66",
]
[[package]]
name = "proc-macro2"
version = "1.0.86"
version = "1.0.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43"
dependencies = [
"unicode-ident",
]
@@ -507,9 +636,9 @@ checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
[[package]]
name = "regex"
version = "1.10.5"
version = "1.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f"
checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
dependencies = [
"aho-corasick",
"memchr",
@@ -519,9 +648,9 @@ dependencies = [
[[package]]
name = "regex-automata"
version = "0.4.7"
version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df"
checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
dependencies = [
"aho-corasick",
"memchr",
@@ -530,9 +659,9 @@ dependencies = [
[[package]]
name = "regex-syntax"
version = "0.8.4"
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
[[package]]
name = "rsmpeg"
@@ -574,6 +703,12 @@ dependencies = [
"windows-sys",
]
[[package]]
name = "rustversion"
version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
[[package]]
name = "rusty_ffmpeg"
version = "0.13.3+ffmpeg.6.1"
@@ -596,22 +731,22 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
[[package]]
name = "serde"
version = "1.0.204"
version = "1.0.202"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12"
checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.204"
version = "1.0.202"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222"
checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.71",
"syn 2.0.66",
]
[[package]]
@@ -626,6 +761,31 @@ version = "0.3.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
[[package]]
name = "strsim"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
[[package]]
name = "strum"
version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
[[package]]
name = "strum_macros"
version = "0.25.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
dependencies = [
"heck 0.4.1",
"proc-macro2",
"quote",
"rustversion",
"syn 2.0.66",
]
[[package]]
name = "syn"
version = "1.0.109"
@@ -639,9 +799,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.71"
version = "2.0.66"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b146dcf730474b4bcd16c311627b31ede9ab149045db4d6088b3becaea046462"
checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
dependencies = [
"proc-macro2",
"quote",
@@ -671,22 +831,22 @@ dependencies = [
[[package]]
name = "thiserror"
version = "1.0.62"
version = "1.0.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2675633b1499176c2dff06b0856a27976a8f9d436737b4cf4f312d4d91d8bbb"
checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.62"
version = "1.0.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d20468752b09f49e909e55a5d338caa8bedf615594e9d80bc4c565d30faf798c"
checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.71",
"syn 2.0.66",
]
[[package]]
@@ -735,6 +895,12 @@ version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
[[package]]
name = "utf8parse"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
[[package]]
name = "vcpkg"
version = "0.2.15"
@@ -795,9 +961,9 @@ dependencies = [
[[package]]
name = "windows-targets"
version = "0.52.6"
version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
dependencies = [
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
@@ -811,48 +977,48 @@ dependencies = [
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.52.6"
version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
[[package]]
name = "windows_aarch64_msvc"
version = "0.52.6"
version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
[[package]]
name = "windows_i686_gnu"
version = "0.52.6"
version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
[[package]]
name = "windows_i686_gnullvm"
version = "0.52.6"
version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
[[package]]
name = "windows_i686_msvc"
version = "0.52.6"
version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
[[package]]
name = "windows_x86_64_gnu"
version = "0.52.6"
version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.52.6"
version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
[[package]]
name = "windows_x86_64_msvc"
version = "0.52.6"
version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"

View File

@@ -15,15 +15,30 @@ log = "0.4.0"
env_logger = "0.8.4"
iconv = "0.1.1"
palette = "0.6.0"
rsmpeg = { version = "0.14.2", optional = true, features = [
"link_system_ffmpeg",
rsmpeg = { version = "0.14.1", optional = true, features = [
"link_system_ffmpeg",
] }
tesseract-sys = { version = "0.5.14", optional = true, default-features = false }
leptonica-sys = { version = "0.4.3", optional = true, default-features = false }
leptonica-sys = { version = "= 0.4.6", optional = true, default-features = false }
clap = { version = "4.4.4", features = ["derive"] }
strum = "0.25"
strum_macros = "0.25"
time = "0.3.25"
cfg-if = "1.0.0"
num-integer = "0.1.45"
lib_ccxr = { path = "lib_ccxr" }
[build-dependencies]
bindgen = "0.64.0"
pkg-config = "0.3.30"
[features]
enable_sharing = []
wtv_debug = []
enable_ffmpeg = []
with_libcurl = []
hardsubx_ocr = ["rsmpeg", "tesseract-sys", "leptonica-sys"]
[profile.release-with-debug]
inherits = "release"
debug = true

View File

@@ -1,3 +1,4 @@
extern crate pkg_config;
use std::env;
use std::path::PathBuf;
@@ -9,6 +10,8 @@ fn main() {
"get_fts",
"printdata",
"writercwtdata",
"version",
"set_binary_mode",
]);
#[cfg(feature = "hardsubx_ocr")]
@@ -27,6 +30,16 @@ fn main() {
"cc_subtitle",
"ccx_output_format",
"ccx_s_options",
"ccx_s_teletext_config",
"ccx_output_format",
"ccx_boundary_time",
"ccx_output_date_format",
"ccx_encoding_type",
"ccx_output_date_format",
"ccx_decoder_608_settings",
"ccx_decoder_608_report",
"ccx_output_format",
"uint8_t",
]);
#[cfg(feature = "hardsubx_ocr")]

View File

@@ -13,11 +13,7 @@ derive_more = "0.99.18"
[features]
default = [
"enable_sharing",
"wtv_debug",
"enable_ffmpeg",
"debug",
"with_libcurl",
]
enable_sharing = []
wtv_debug = []

15
src/rust/src/activity.rs Normal file
View File

@@ -0,0 +1,15 @@
use std::io;
use std::io::Write;
use crate::common::CcxOptions;
impl CcxOptions {
pub fn activity_report_version(&mut self) {
if self.gui_mode_reports {
let mut stderr = io::stderr();
let version = env!("CARGO_PKG_VERSION");
writeln!(stderr, "###VERSION#CCExtractor#{}", version).unwrap();
stderr.flush().unwrap();
}
}
}

1012
src/rust/src/args.rs Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,65 @@
// Some basic English words, so user-defined doesn't have to
// include the common stuff
pub static mut PROFANE: Vec<String> = Vec::new();
pub static mut CAPITALIZATION_LIST: Vec<String> = Vec::new();
pub const CAPITALIZED_BUILTIN: [&str; 29] = [
"I",
"I'd",
"I've",
"I'd",
"I'll",
"January",
"February",
"March",
"April", // May skipped intentionally
"June",
"July",
"August",
"September",
"October",
"November",
"December",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday",
"Halloween",
"United States",
"Spain",
"France",
"Italy",
"England",
];
pub const PROFANE_BUILTIN: [&str; 25] = [
"arse",
"ass",
"asshole",
"bastard",
"bitch",
"bollocks",
"child-fucker",
"crap",
"cunt",
"damn",
"frigger",
"fuck",
"goddamn",
"godsdamn",
"hell",
"holy",
"horseshit",
"motherfucker",
"nigga",
"nigger",
"prick",
"shit",
"shitass",
"slut",
"twat",
];

1316
src/rust/src/common.rs Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -12,27 +12,40 @@
pub mod bindings {
include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
}
pub mod activity;
pub mod args;
pub mod ccx_encoders_helpers;
pub mod common;
pub mod decoder;
#[cfg(feature = "hardsubx_ocr")]
pub mod hardsubx;
pub mod libccxr_exports;
pub mod parser;
pub mod utils;
#[cfg(windows)]
use std::os::windows::io::{FromRawHandle, RawHandle};
use std::{io::Write, os::raw::c_int};
use std::{io::Write, os::raw::c_char, os::raw::c_int};
use args::Args;
use bindings::*;
use clap::{error::ErrorKind, Parser};
use common::{CcxOptions, CcxTeletextConfig};
use decoder::Dtvcc;
use utils::is_true;
use env_logger::{builder, Target};
use log::{warn, LevelFilter};
use std::ffi::CStr;
use crate::common::ExitCode;
extern "C" {
static mut cb_708: c_int;
static mut cb_field1: c_int;
static mut cb_field2: c_int;
static mut MPEG_CLOCK_FREQ: c_int;
static mut tlt_config: ccx_s_teletext_config;
}
/// Initialize env logger with custom format, using stdout as target
@@ -170,3 +183,72 @@ extern "C" fn ccxr_close_handle(handle: RawHandle) {
let _file = File::from_raw_handle(handle);
}
}
extern "C" {
fn version(location: *const c_char);
fn set_binary_mode();
}
/// # Safety
/// Safe if argv is a valid pointer
///
/// Parse parameters from argv and argc
#[no_mangle]
pub unsafe extern "C" fn ccxr_parse_parameters(
mut _options: *mut ccx_s_options,
argc: c_int,
argv: *mut *mut c_char,
) -> c_int {
// Convert argv to Vec<String> and pass it to parse_parameters
let args = std::slice::from_raw_parts(argv, argc as usize)
.iter()
.map(|&arg| {
CStr::from_ptr(arg)
.to_str()
.expect("Invalid UTF-8 sequence in argument")
.to_owned()
})
.collect::<Vec<String>>();
if args.len() <= 1 {
return ExitCode::NoInputFiles as _;
}
let args: Args = match Args::try_parse_from(args) {
Ok(args) => args,
Err(e) => {
// Not all errors are actual errors, some are just help or version
// So handle them accordingly
match e.kind() {
ErrorKind::DisplayHelp => {
// Print the help string
println!("{}", e);
return ExitCode::WithHelp as _;
}
ErrorKind::DisplayVersion => {
version(*argv);
return ExitCode::WithHelp as _;
}
ErrorKind::UnknownArgument => {
println!("Unknown Argument");
println!("{}", e);
return 1;
}
_ => {
println!("{}", e);
return 1;
}
}
}
};
let mut opt = CcxOptions::default();
let mut _tlt_config = CcxTeletextConfig::default();
opt.parse_parameters(&args, &mut _tlt_config);
tlt_config = _tlt_config.to_ctype();
// Convert the rust struct (CcxOptions) to C struct (ccx_s_options), so that it can be used by the C code
opt.to_ctype(_options);
0
}

2284
src/rust/src/parser.rs Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -15,7 +15,43 @@ pub fn is_false<T: Into<i32>>(val: T) -> bool {
/// # Safety
/// The pointer returned has to be deallocated using from_raw() at some point
pub unsafe fn string_to_c_char(a: &str) -> *mut ::std::os::raw::c_char {
if a.is_empty() {
return string_null();
}
let s = ffi::CString::new(a).unwrap();
s.into_raw()
}
/// # Safety
/// The pointer returned has to be deallocated using from_raw() at some point
pub fn string_null() -> *mut c_char {
std::ptr::null_mut()
}
use std::ffi::CString;
use std::os::raw::c_char;
pub fn string_to_c_chars(strs: Vec<String>) -> *mut *mut c_char {
let mut cstr_vec: Vec<CString> = vec![];
for s in strs {
let cstr = CString::new(s.as_str()).unwrap();
cstr_vec.push(cstr);
}
cstr_vec.shrink_to_fit();
let mut c_char_vec: Vec<*const c_char> = vec![];
for s in &cstr_vec {
if s.as_bytes().is_empty() {
c_char_vec.push(string_null());
continue;
}
c_char_vec.push(s.as_ptr());
}
let ptr = c_char_vec.as_ptr();
std::mem::forget(cstr_vec);
std::mem::forget(c_char_vec);
ptr as *mut *mut c_char
}

View File

@@ -1,3 +1,6 @@
#include "../lib_ccx/ccx_common_option.h"
#include "../lib_ccx/ccx_common_constants.h"
#include "../lib_ccx/ccx_common_timing.h"
#include "../lib_ccx/ccx_decoders_708.h"
#include "../lib_ccx/ccx_decoders_common.h"
#include "../lib_ccx/ccx_dtvcc.h"

2
windows/.gitignore vendored
View File

@@ -1,2 +1,2 @@
ccextractor
ccextractor
vcpkg_installed

View File

@@ -1,346 +1,346 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug-Full|x64">
<Configuration>Debug-Full</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release-Full|x64">
<Configuration>Release-Full</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\src\ccextractor.h" />
<ClInclude Include="..\src\lib_ccx\ccx_encoders_structs.h" />
<ClInclude Include="..\src\lib_ccx\ccx_common_option.h" />
<ClInclude Include="..\src\lib_ccx\ccx_share.h" />
<ClInclude Include="..\src\lib_ccx\ccx_sub_entry_message.pb-c.h" />
<ClInclude Include="..\src\lib_ccx\compile_info.h" />
<ClInclude Include="..\src\lib_ccx\avc_functions.h" />
<ClInclude Include="..\src\lib_ccx\ccx_common_char_encoding.h" />
<ClInclude Include="..\src\lib_ccx\ccx_common_common.h" />
<ClInclude Include="..\src\lib_ccx\ccx_common_constants.h" />
<ClInclude Include="..\src\lib_ccx\ccx_common_platform.h" />
<ClInclude Include="..\src\lib_ccx\ccx_common_structs.h" />
<ClInclude Include="..\src\lib_ccx\ccx_common_timing.h" />
<ClInclude Include="..\src\lib_ccx\ccx_decoders_608.h" />
<ClInclude Include="..\src\lib_ccx\ccx_decoders_708.h" />
<ClInclude Include="..\src\lib_ccx\ccx_decoders_708_encoding.h" />
<ClInclude Include="..\src\lib_ccx\ccx_decoders_708_output.h" />
<ClInclude Include="..\src\lib_ccx\ccx_decoders_common.h" />
<ClInclude Include="..\src\lib_ccx\ccx_decoders_isdb.h" />
<ClInclude Include="..\src\lib_ccx\ccx_decoders_structs.h" />
<ClInclude Include="..\src\lib_ccx\ccx_decoders_xds.h" />
<ClInclude Include="..\src\lib_ccx\ccx_encoders_common.h" />
<ClInclude Include="..\src\lib_ccx\ccx_encoders_helpers.h" />
<ClInclude Include="..\src\lib_ccx\ccx_encoders_mcc.h" />
<ClInclude Include="..\src\lib_ccx\disable_warnings.h" />
<ClInclude Include="..\src\lib_ccx\dvb_subtitle_decoder.h" />
<ClInclude Include="..\src\lib_ccx\lib_ccx.h" />
<ClInclude Include="..\src\lib_ccx\teletext.h" />
<ClInclude Include="..\src\lib_ccx\utility.h" />
<ClInclude Include="..\src\thirdparty\lib_hash\sha2.h" />
<ClInclude Include="..\src\thirdparty\protobuf-c\protobuf-c.h" />
<ClInclude Include="..\src\thirdparty\utf8proc\utf8proc.h" />
<ClInclude Include="..\src\thirdparty\win_iconv\iconv.h" />
<ClInclude Include="..\src\thirdparty\win_spec_incld\dirent.h" />
<ClInclude Include="..\src\lib_ccx\zvbi\bcd.h" />
<ClInclude Include="..\src\lib_ccx\zvbi\bit_slicer.h" />
<ClInclude Include="..\src\lib_ccx\zvbi\macros.h" />
<ClInclude Include="..\src\lib_ccx\zvbi\misc.h" />
<ClInclude Include="..\src\lib_ccx\zvbi\raw_decoder.h" />
<ClInclude Include="..\src\lib_ccx\zvbi\sampling_par.h" />
<ClInclude Include="..\src\lib_ccx\zvbi\sliced.h" />
<ClInclude Include="..\src\lib_ccx\zvbi\zvbi_decoder.h" />
<ClInclude Include="..\src\thirdparty\win_spec_incld\inttypes.h" />
<ClInclude Include="..\src\thirdparty\win_spec_incld\stdint.h" />
<ClInclude Include="..\src\thirdparty\freetype\include\ft2build.h" />
<ClInclude Include="..\src\thirdparty\freetype\include\freetype\config\ftconfig.h" />
<ClInclude Include="..\src\thirdparty\freetype\include\freetype\config\ftheader.h" />
<ClInclude Include="..\src\thirdparty\freetype\include\freetype\config\ftmodule.h" />
<ClInclude Include="..\src\thirdparty\freetype\include\freetype\config\ftoption.h" />
<ClInclude Include="..\src\thirdparty\freetype\include\freetype\config\ftstdlib.h" />
<ClInclude Include="$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include\libpng16\*.h" />
<ClInclude Include="$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include\zlib.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include=" ..\src\thirdparty\freetype\gzip\ftgzip.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_demuxer_mxf.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_spupng.c" />
<ClCompile Include=" ..\src\ccextractor.c" />
<ClCompile Include=" ..\src\lib_ccx\mp4.c" />
<ClCompile Include=" ..\src\lib_ccx\activity.c" />
<ClCompile Include=" ..\src\lib_ccx\asf_functions.c" />
<ClCompile Include=" ..\src\lib_ccx\avc_functions.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_common_char_encoding.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_common_common.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_common_constants.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_common_option.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_common_timing.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_decoders_608.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_decoders_708.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_decoders_708_encoding.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_decoders_708_output.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_decoders_common.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_decoders_isdb.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_decoders_vbi.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_decoders_xds.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_demuxer.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_dtvcc.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_common.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_curl.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_g608.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_helpers.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_mcc.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_sami.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_scc.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_smptett.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_splitbysentence.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_srt.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_ssa.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_transcript.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_webvtt.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_xds.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_gxf.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_share.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_sub_entry_message.pb-c.c" />
<ClCompile Include=" ..\src\lib_ccx\cc_bitstream.c" />
<ClCompile Include=" ..\src\lib_ccx\configuration.c" />
<ClCompile Include=" ..\src\lib_ccx\dvb_subtitle_decoder.c" />
<ClCompile Include=" ..\src\lib_ccx\dvd_subtitle_decoder.c" />
<ClCompile Include=" ..\src\lib_ccx\es_functions.c" />
<ClCompile Include=" ..\src\lib_ccx\es_userdata.c" />
<ClCompile Include=" ..\src\lib_ccx\ffmpeg_intgr.c" />
<ClCompile Include=" ..\src\lib_ccx\file_functions.c" />
<ClCompile Include=" ..\src\lib_ccx\general_loop.c" />
<ClCompile Include=" ..\src\lib_ccx\hardsubx.c" />
<ClCompile Include=" ..\src\lib_ccx\hardsubx_classifier.c" />
<ClCompile Include=" ..\src\lib_ccx\hardsubx_decoder.c" />
<ClCompile Include=" ..\src\lib_ccx\hardsubx_imgops.c" />
<ClCompile Include=" ..\src\lib_ccx\hardsubx_utility.c" />
<ClCompile Include=" ..\src\lib_ccx\lib_ccx.c" />
<ClCompile Include=" ..\src\lib_ccx\matroska.c" />
<ClCompile Include=" ..\src\lib_ccx\myth.c" />
<ClCompile Include=" ..\src\lib_ccx\networking.c" />
<ClCompile Include=" ..\src\lib_ccx\ocr.c" />
<ClCompile Include=" ..\src\lib_ccx\output.c" />
<ClCompile Include=" ..\src\lib_ccx\params.c" />
<ClCompile Include=" ..\src\lib_ccx\params_dump.c" />
<ClCompile Include=" ..\src\lib_ccx\sequencing.c" />
<ClCompile Include=" ..\src\lib_ccx\stream_functions.c" />
<ClCompile Include=" ..\src\lib_ccx\telxcc.c" />
<ClCompile Include=" ..\src\lib_ccx\ts_functions.c" />
<ClCompile Include=" ..\src\lib_ccx\ts_info.c" />
<ClCompile Include=" ..\src\lib_ccx\ts_tables.c" />
<ClCompile Include=" ..\src\lib_ccx\ts_tables_epg.c" />
<ClCompile Include=" ..\src\lib_ccx\utility.c" />
<ClCompile Include=" ..\src\lib_ccx\wtv_functions.c" />
<ClCompile Include=" ..\src\thirdparty\lib_hash\sha2.c" />
<ClCompile Include=" ..\src\thirdparty\protobuf-c\protobuf-c.c" />
<ClCompile Include=" ..\src\thirdparty\utf8proc\utf8proc.c" />
<ClCompile Include=" ..\src\thirdparty\win_iconv\win_iconv.c" />
<ClCompile Include=" ..\src\lib_ccx\zvbi\bit_slicer.c" />
<ClCompile Include=" ..\src\lib_ccx\zvbi\decoder.c" />
<ClCompile Include=" ..\src\lib_ccx\zvbi\raw_decoder.c" />
<ClCompile Include=" ..\src\lib_ccx\zvbi\sampling_par.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\autofit\autofit.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\bdf\bdf.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\cff\cff.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftbase.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftbitmap.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\cache\ftcache.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftfstype.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftgasp.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftglyph.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftinit.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\lzw\ftlzw.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftstroke.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftsystem.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\smooth\smooth.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftbbox.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftfntfmt.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftmm.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftpfr.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftsynth.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\fttype1.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftwinfnt.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftlcdfil.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftgxval.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftotval.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftpatent.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\pcf\pcf.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\pfr\pfr.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\psaux\psaux.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\pshinter\pshinter.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\psnames\psmodule.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\raster\raster.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\sfnt\sfnt.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\truetype\truetype.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\type1\type1.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\cid\type1cid.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\type42\type42.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\winfonts\winfnt.c" />
</ItemGroup>
<ItemGroup>
<None Include=" ..\src\lib_ccx\ccx_sub_entry_message.proto" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{0F0063C4-BCBC-4379-A6D5-84A5669C940A}</ProjectGuid>
<RootNamespace>ccextractor</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0.22621.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<PropertyGroup Label="Vcpkg">
<VcpkgEnableManifest>true</VcpkgEnableManifest>
<VcpkgTriplet>x64-windows-static</VcpkgTriplet>
<VcpkgEnabled>true</VcpkgEnabled>
</PropertyGroup>
<Import Project=" $(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Full|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Full|x64'"
Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Full|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Full|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Full|x64'">
<LinkIncremental>true</LinkIncremental>
<TargetName>ccextractorwinfull</TargetName>
<IncludePath>
$(ProjectDir)\libs\include;$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include;
"C:\Program Files\GPAC\sdk\include";
$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include\zlib;$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include\libpng16;$(IncludePath)</IncludePath>
<LibraryPath>
$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\lib;
"C:\Program Files\GPAC\sdk\lib";$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Full|x64'">
<LinkIncremental>false</LinkIncremental>
<TargetName>ccextractorwinfull</TargetName>
<IncludePath>
$(ProjectDir)\libs\include;$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include;
"C:\Program Files\GPAC\sdk\include";
$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include\zlib;$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include\libpng16;$(IncludePath)</IncludePath>
<LibraryPath>
$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\lib;
"C:\Program Files\GPAC\sdk\lib";$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Full|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>
..\src\thirdparty\freetype\include;..\src;..\src\thirdparty\win_spec_incld;..\src\lib_ccx;..\src\thirdparty\lib_hash;..\src\lib_ccx\zvbi;..\src\thirdparty\protobuf-c;..\src\thirdparty\win_iconv;..\src\thirdparty\;..\src;$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include;
"C:\Program Files\GPAC\sdk\include";%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>
SEGMENT_BY_FILE_TIME;ENABLE_HARDSUBX;FT2_BUILD_LIBRARY;GPAC_DISABLE_VTT;GPAC_DISABLE_OD_DUMP;ENABLE_OCR;WIN32;_DEBUG;_CONSOLE;_FILE_OFFSET_BITS=64;GPAC_DISABLE_REMOTERY;GPAC_DISABLE_ZLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>
ccx_rust.lib;UserEnv.lib;Crypt32.lib;WS2_32.Lib;ntdll.lib;Bcrypt.lib;Mfplat.lib;Mfuuid.lib;Secur32.lib;Strmiids.lib;Ole32.lib;User32.lib;libcrypto.lib;libcurl.lib;avcodec.lib;avformat.lib;avutil.lib;avfilter.lib;swscale.lib;swresample.lib;leptonica-1.83.1.lib;tesseract53.lib;gif.lib;archive.lib;avdevice.lib;bz2.lib;charset.lib;iconv.lib;jpeg.lib;libpng16.lib;libsharpyuv.lib;libssl.lib;libwebp.lib;libwebpdecoder.lib;libwebpdemux.lib;libwebpmux.lib;libxml2.lib;lz4.lib;lzma.lib;openjp2.lib;tiff.lib;turbojpeg.lib;zlib.lib;zstd.lib;libgpac.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ShowProgress>NotSet</ShowProgress>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<AdditionalLibraryDirectories>
$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\lib;
"C:\Program Files\GPAC\sdk\lib";%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<PreBuildEvent>
<Command>call pre-build.bat
call rust.bat</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
xcopy /y "$(ProjectDir)\dll\vcruntime140.dll" "$(OutDir)"
xcopy /y "$(ProjectDir)\dll\vcruntime140_1.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\libgpac.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\OpenSVCDecoder.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\postproc-57.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\swresample-4.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\avfilter-9.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\swscale-7.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\avdevice-60.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\avcodec-60.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\avformat-60.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\avutil-58.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\libsslMD.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\libcryptoMD.dll" "$(OutDir)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Full|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>
..\src\thirdparty\freetype\include;..\src;..\src\thirdparty\win_spec_incld;..\src\lib_ccx;..\src\thirdparty\lib_hash;..\src\lib_ccx\zvbi;..\src\thirdparty\protobuf-c;..\src\thirdparty\win_iconv;..\src\thirdparty\;..\src;$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include;
"C:\Program Files\GPAC\sdk\include";%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>
ENABLE_HARDSUBX;FT2_BUILD_LIBRARY;GPAC_DISABLE_VTT;GPAC_DISABLE_OD_DUMP;VERSION_FILE_PRESENT;ENABLE_OCR;WIN32;NDEBUG;_CONSOLE;_FILE_OFFSET_BITS=64;GPAC_DISABLE_REMOTERY;GPAC_DISABLE_ZLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>
ccx_rust.lib;UserEnv.lib;Crypt32.lib;WS2_32.Lib;ntdll.lib;Bcrypt.lib;Mfplat.lib;Mfuuid.lib;Secur32.lib;Strmiids.lib;Ole32.lib;User32.lib;libcrypto.lib;libcurl.lib;avcodec.lib;avformat.lib;avutil.lib;avfilter.lib;swscale.lib;swresample.lib;leptonica-1.83.1.lib;tesseract53.lib;gif.lib;archive.lib;avdevice.lib;bz2.lib;charset.lib;iconv.lib;jpeg.lib;libpng16.lib;libsharpyuv.lib;libssl.lib;libwebp.lib;libwebpdecoder.lib;libwebpdemux.lib;libwebpmux.lib;libxml2.lib;lz4.lib;lzma.lib;openjp2.lib;tiff.lib;turbojpeg.lib;zlib.lib;zstd.lib;libgpac.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<AdditionalLibraryDirectories>
$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\lib;
"C:\Program Files\GPAC\sdk\lib";%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<PreBuildEvent>
<Command>call pre-build.bat
call rust.bat -r</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
xcopy /y "$(ProjectDir)\dll\vcruntime140.dll" "$(OutDir)"
xcopy /y "$(ProjectDir)\dll\vcruntime140_1.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\libgpac.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\OpenSVCDecoder.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\postproc-57.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\swresample-4.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\avfilter-9.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\swscale-7.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\avdevice-60.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\avcodec-60.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\avformat-60.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\avutil-58.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\libsslMD.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\libcryptoMD.dll" "$(OutDir)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug-Full|x64">
<Configuration>Debug-Full</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release-Full|x64">
<Configuration>Release-Full</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\src\ccextractor.h" />
<ClInclude Include="..\src\lib_ccx\ccx_encoders_structs.h" />
<ClInclude Include="..\src\lib_ccx\ccx_common_option.h" />
<ClInclude Include="..\src\lib_ccx\ccx_share.h" />
<ClInclude Include="..\src\lib_ccx\ccx_sub_entry_message.pb-c.h" />
<ClInclude Include="..\src\lib_ccx\compile_info.h" />
<ClInclude Include="..\src\lib_ccx\avc_functions.h" />
<ClInclude Include="..\src\lib_ccx\ccx_common_char_encoding.h" />
<ClInclude Include="..\src\lib_ccx\ccx_common_common.h" />
<ClInclude Include="..\src\lib_ccx\ccx_common_constants.h" />
<ClInclude Include="..\src\lib_ccx\ccx_common_platform.h" />
<ClInclude Include="..\src\lib_ccx\ccx_common_structs.h" />
<ClInclude Include="..\src\lib_ccx\ccx_common_timing.h" />
<ClInclude Include="..\src\lib_ccx\ccx_decoders_608.h" />
<ClInclude Include="..\src\lib_ccx\ccx_decoders_708.h" />
<ClInclude Include="..\src\lib_ccx\ccx_decoders_708_encoding.h" />
<ClInclude Include="..\src\lib_ccx\ccx_decoders_708_output.h" />
<ClInclude Include="..\src\lib_ccx\ccx_decoders_common.h" />
<ClInclude Include="..\src\lib_ccx\ccx_decoders_isdb.h" />
<ClInclude Include="..\src\lib_ccx\ccx_decoders_structs.h" />
<ClInclude Include="..\src\lib_ccx\ccx_decoders_xds.h" />
<ClInclude Include="..\src\lib_ccx\ccx_encoders_common.h" />
<ClInclude Include="..\src\lib_ccx\ccx_encoders_helpers.h" />
<ClInclude Include="..\src\lib_ccx\ccx_encoders_mcc.h" />
<ClInclude Include="..\src\lib_ccx\disable_warnings.h" />
<ClInclude Include="..\src\lib_ccx\dvb_subtitle_decoder.h" />
<ClInclude Include="..\src\lib_ccx\lib_ccx.h" />
<ClInclude Include="..\src\lib_ccx\teletext.h" />
<ClInclude Include="..\src\lib_ccx\utility.h" />
<ClInclude Include="..\src\thirdparty\lib_hash\sha2.h" />
<ClInclude Include="..\src\thirdparty\protobuf-c\protobuf-c.h" />
<ClInclude Include="..\src\thirdparty\utf8proc\utf8proc.h" />
<ClInclude Include="..\src\thirdparty\win_iconv\iconv.h" />
<ClInclude Include="..\src\thirdparty\win_spec_incld\dirent.h" />
<ClInclude Include="..\src\lib_ccx\zvbi\bcd.h" />
<ClInclude Include="..\src\lib_ccx\zvbi\bit_slicer.h" />
<ClInclude Include="..\src\lib_ccx\zvbi\macros.h" />
<ClInclude Include="..\src\lib_ccx\zvbi\misc.h" />
<ClInclude Include="..\src\lib_ccx\zvbi\raw_decoder.h" />
<ClInclude Include="..\src\lib_ccx\zvbi\sampling_par.h" />
<ClInclude Include="..\src\lib_ccx\zvbi\sliced.h" />
<ClInclude Include="..\src\lib_ccx\zvbi\zvbi_decoder.h" />
<ClInclude Include="..\src\thirdparty\win_spec_incld\inttypes.h" />
<ClInclude Include="..\src\thirdparty\win_spec_incld\stdint.h" />
<ClInclude Include="..\src\thirdparty\freetype\include\ft2build.h" />
<ClInclude Include="..\src\thirdparty\freetype\include\freetype\config\ftconfig.h" />
<ClInclude Include="..\src\thirdparty\freetype\include\freetype\config\ftheader.h" />
<ClInclude Include="..\src\thirdparty\freetype\include\freetype\config\ftmodule.h" />
<ClInclude Include="..\src\thirdparty\freetype\include\freetype\config\ftoption.h" />
<ClInclude Include="..\src\thirdparty\freetype\include\freetype\config\ftstdlib.h" />
<ClInclude Include="$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include\libpng16\*.h" />
<ClInclude Include="$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include\zlib.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include=" ..\src\thirdparty\freetype\gzip\ftgzip.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_demuxer_mxf.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_spupng.c" />
<ClCompile Include=" ..\src\ccextractor.c" />
<ClCompile Include=" ..\src\lib_ccx\mp4.c" />
<ClCompile Include=" ..\src\lib_ccx\activity.c" />
<ClCompile Include=" ..\src\lib_ccx\asf_functions.c" />
<ClCompile Include=" ..\src\lib_ccx\avc_functions.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_common_char_encoding.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_common_common.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_common_constants.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_common_option.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_common_timing.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_decoders_608.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_decoders_708.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_decoders_708_encoding.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_decoders_708_output.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_decoders_common.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_decoders_isdb.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_decoders_vbi.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_decoders_xds.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_demuxer.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_dtvcc.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_common.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_curl.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_g608.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_helpers.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_mcc.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_sami.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_scc.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_smptett.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_splitbysentence.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_srt.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_ssa.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_transcript.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_webvtt.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_encoders_xds.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_gxf.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_share.c" />
<ClCompile Include=" ..\src\lib_ccx\ccx_sub_entry_message.pb-c.c" />
<ClCompile Include=" ..\src\lib_ccx\cc_bitstream.c" />
<ClCompile Include=" ..\src\lib_ccx\configuration.c" />
<ClCompile Include=" ..\src\lib_ccx\dvb_subtitle_decoder.c" />
<ClCompile Include=" ..\src\lib_ccx\dvd_subtitle_decoder.c" />
<ClCompile Include=" ..\src\lib_ccx\es_functions.c" />
<ClCompile Include=" ..\src\lib_ccx\es_userdata.c" />
<ClCompile Include=" ..\src\lib_ccx\ffmpeg_intgr.c" />
<ClCompile Include=" ..\src\lib_ccx\file_functions.c" />
<ClCompile Include=" ..\src\lib_ccx\general_loop.c" />
<ClCompile Include=" ..\src\lib_ccx\hardsubx.c" />
<ClCompile Include=" ..\src\lib_ccx\hardsubx_classifier.c" />
<ClCompile Include=" ..\src\lib_ccx\hardsubx_decoder.c" />
<ClCompile Include=" ..\src\lib_ccx\hardsubx_imgops.c" />
<ClCompile Include=" ..\src\lib_ccx\hardsubx_utility.c" />
<ClCompile Include=" ..\src\lib_ccx\lib_ccx.c" />
<ClCompile Include=" ..\src\lib_ccx\matroska.c" />
<ClCompile Include=" ..\src\lib_ccx\myth.c" />
<ClCompile Include=" ..\src\lib_ccx\networking.c" />
<ClCompile Include=" ..\src\lib_ccx\ocr.c" />
<ClCompile Include=" ..\src\lib_ccx\output.c" />
<ClCompile Include=" ..\src\lib_ccx\params.c" />
<ClCompile Include=" ..\src\lib_ccx\params_dump.c" />
<ClCompile Include=" ..\src\lib_ccx\sequencing.c" />
<ClCompile Include=" ..\src\lib_ccx\stream_functions.c" />
<ClCompile Include=" ..\src\lib_ccx\telxcc.c" />
<ClCompile Include=" ..\src\lib_ccx\ts_functions.c" />
<ClCompile Include=" ..\src\lib_ccx\ts_info.c" />
<ClCompile Include=" ..\src\lib_ccx\ts_tables.c" />
<ClCompile Include=" ..\src\lib_ccx\ts_tables_epg.c" />
<ClCompile Include=" ..\src\lib_ccx\utility.c" />
<ClCompile Include=" ..\src\lib_ccx\wtv_functions.c" />
<ClCompile Include=" ..\src\thirdparty\lib_hash\sha2.c" />
<ClCompile Include=" ..\src\thirdparty\protobuf-c\protobuf-c.c" />
<ClCompile Include=" ..\src\thirdparty\utf8proc\utf8proc.c" />
<ClCompile Include=" ..\src\thirdparty\win_iconv\win_iconv.c" />
<ClCompile Include=" ..\src\lib_ccx\zvbi\bit_slicer.c" />
<ClCompile Include=" ..\src\lib_ccx\zvbi\decoder.c" />
<ClCompile Include=" ..\src\lib_ccx\zvbi\raw_decoder.c" />
<ClCompile Include=" ..\src\lib_ccx\zvbi\sampling_par.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\autofit\autofit.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\bdf\bdf.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\cff\cff.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftbase.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftbitmap.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\cache\ftcache.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftfstype.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftgasp.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftglyph.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftinit.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\lzw\ftlzw.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftstroke.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftsystem.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\smooth\smooth.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftbbox.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftfntfmt.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftmm.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftpfr.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftsynth.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\fttype1.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftwinfnt.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftlcdfil.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftgxval.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftotval.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\base\ftpatent.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\pcf\pcf.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\pfr\pfr.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\psaux\psaux.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\pshinter\pshinter.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\psnames\psmodule.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\raster\raster.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\sfnt\sfnt.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\truetype\truetype.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\type1\type1.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\cid\type1cid.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\type42\type42.c" />
<ClCompile Include=" ..\src\thirdparty\freetype\winfonts\winfnt.c" />
</ItemGroup>
<ItemGroup>
<None Include=" ..\src\lib_ccx\ccx_sub_entry_message.proto" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{0F0063C4-BCBC-4379-A6D5-84A5669C940A}</ProjectGuid>
<RootNamespace>ccextractor</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0.22621.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<PropertyGroup Label="Vcpkg">
<VcpkgEnableManifest>true</VcpkgEnableManifest>
<VcpkgTriplet>x64-windows-static</VcpkgTriplet>
<VcpkgEnabled>true</VcpkgEnabled>
</PropertyGroup>
<Import Project=" $(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Full|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Full|x64'"
Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Full|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Full|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Full|x64'">
<LinkIncremental>true</LinkIncremental>
<TargetName>ccextractorwinfull</TargetName>
<IncludePath>
$(ProjectDir)\libs\include;$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include;
"C:\Program Files\GPAC\sdk\include";
$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include\zlib;$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include\libpng16;$(IncludePath)</IncludePath>
<LibraryPath>
$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\lib;
"C:\Program Files\GPAC\sdk\lib";$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Full|x64'">
<LinkIncremental>false</LinkIncremental>
<TargetName>ccextractorwinfull</TargetName>
<IncludePath>
$(ProjectDir)\libs\include;$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include;
"C:\Program Files\GPAC\sdk\include";
$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include\zlib;$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include\libpng16;$(IncludePath)</IncludePath>
<LibraryPath>
$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\lib;
"C:\Program Files\GPAC\sdk\lib";$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Full|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>
..\src\thirdparty\freetype\include;..\src;..\src\thirdparty\win_spec_incld;..\src\lib_ccx;..\src\thirdparty\lib_hash;..\src\lib_ccx\zvbi;..\src\thirdparty\protobuf-c;..\src\thirdparty\win_iconv;..\src\thirdparty\;..\src;$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include;
"C:\Program Files\GPAC\sdk\include";%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>
SEGMENT_BY_FILE_TIME;ENABLE_HARDSUBX;FT2_BUILD_LIBRARY;GPAC_DISABLE_VTT;GPAC_DISABLE_OD_DUMP;ENABLE_OCR;WIN32;_DEBUG;_CONSOLE;_FILE_OFFSET_BITS=64;GPAC_DISABLE_REMOTERY;GPAC_DISABLE_ZLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>
ccx_rust.lib;UserEnv.lib;Crypt32.lib;WS2_32.Lib;ntdll.lib;Bcrypt.lib;Mfplat.lib;Mfuuid.lib;Secur32.lib;Strmiids.lib;Ole32.lib;User32.lib;libcrypto.lib;libcurl.lib;avcodec.lib;avformat.lib;avutil.lib;avfilter.lib;swscale.lib;swresample.lib;leptonica-1.83.1.lib;tesseract53.lib;gif.lib;archive.lib;avdevice.lib;bz2.lib;charset.lib;iconv.lib;jpeg.lib;libpng16.lib;libsharpyuv.lib;libssl.lib;libwebp.lib;libwebpdecoder.lib;libwebpdemux.lib;libwebpmux.lib;libxml2.lib;lz4.lib;lzma.lib;openjp2.lib;tiff.lib;turbojpeg.lib;zlib.lib;zstd.lib;libgpac.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ShowProgress>NotSet</ShowProgress>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<AdditionalLibraryDirectories>
$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\lib;
"C:\Program Files\GPAC\sdk\lib";%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<PreBuildEvent>
<Command>call pre-build.bat
call rust.bat "--profile=release-with-debug"</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
xcopy /y "$(ProjectDir)\dll\vcruntime140.dll" "$(OutDir)"
xcopy /y "$(ProjectDir)\dll\vcruntime140_1.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\libgpac.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\OpenSVCDecoder.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\postproc-57.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\swresample-4.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\avfilter-9.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\swscale-7.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\avdevice-60.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\avcodec-60.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\avformat-60.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\avutil-58.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\libsslMD.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\libcryptoMD.dll" "$(OutDir)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Full|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>
..\src\thirdparty\freetype\include;..\src;..\src\thirdparty\win_spec_incld;..\src\lib_ccx;..\src\thirdparty\lib_hash;..\src\lib_ccx\zvbi;..\src\thirdparty\protobuf-c;..\src\thirdparty\win_iconv;..\src\thirdparty\;..\src;$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include;
"C:\Program Files\GPAC\sdk\include";%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>
ENABLE_HARDSUBX;FT2_BUILD_LIBRARY;GPAC_DISABLE_VTT;GPAC_DISABLE_OD_DUMP;VERSION_FILE_PRESENT;ENABLE_OCR;WIN32;NDEBUG;_CONSOLE;_FILE_OFFSET_BITS=64;GPAC_DISABLE_REMOTERY;GPAC_DISABLE_ZLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>
ccx_rust.lib;UserEnv.lib;Crypt32.lib;WS2_32.Lib;ntdll.lib;Bcrypt.lib;Mfplat.lib;Mfuuid.lib;Secur32.lib;Strmiids.lib;Ole32.lib;User32.lib;libcrypto.lib;libcurl.lib;avcodec.lib;avformat.lib;avutil.lib;avfilter.lib;swscale.lib;swresample.lib;leptonica-1.83.1.lib;tesseract53.lib;gif.lib;archive.lib;avdevice.lib;bz2.lib;charset.lib;iconv.lib;jpeg.lib;libpng16.lib;libsharpyuv.lib;libssl.lib;libwebp.lib;libwebpdecoder.lib;libwebpdemux.lib;libwebpmux.lib;libxml2.lib;lz4.lib;lzma.lib;openjp2.lib;tiff.lib;turbojpeg.lib;zlib.lib;zstd.lib;libgpac.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<AdditionalLibraryDirectories>
$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\lib;
"C:\Program Files\GPAC\sdk\lib";%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<PreBuildEvent>
<Command>call pre-build.bat
call rust.bat -r</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
xcopy /y "$(ProjectDir)\dll\vcruntime140.dll" "$(OutDir)"
xcopy /y "$(ProjectDir)\dll\vcruntime140_1.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\libgpac.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\OpenSVCDecoder.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\postproc-57.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\swresample-4.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\avfilter-9.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\swscale-7.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\avdevice-60.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\avcodec-60.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\avformat-60.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\avutil-58.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\libsslMD.dll" "$(OutDir)"
xcopy /y "C:\Program Files\GPAC\libcryptoMD.dll" "$(OutDir)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

File diff suppressed because it is too large Load Diff

View File

@@ -6,5 +6,5 @@ cd ..\..\windows
IF "%~1"=="-r" (
copy x86_64-pc-windows-msvc\release\ccx_rust.lib .\ccx_rust.lib
) ELSE (
copy x86_64-pc-windows-msvc\debug\ccx_rust.lib .\ccx_rust.lib
copy x86_64-pc-windows-msvc\release-with-debug\ccx_rust.lib .\ccx_rust.lib
)

View File

@@ -1,10 +1,10 @@
{
"name": "ccextractor",
"version": "1.0.0",
"dependencies": [
"leptonica",
"tesseract",
"ffmpeg"
],
"builtin-baseline": "fba75d09065fcc76a25dcf386b1d00d33f5175af"
{
"name": "ccextractor",
"version": "1.0.0",
"dependencies": [
"leptonica",
"tesseract",
"ffmpeg"
],
"builtin-baseline": "fba75d09065fcc76a25dcf386b1d00d33f5175af"
}