Skip to content

Commit 6ec87b4

Browse files
authored
Merge branch 'CCExtractor:master' into migration-demuxer-module
2 parents a57a838 + 810e02f commit 6ec87b4

File tree

10 files changed

+66
-33
lines changed

10 files changed

+66
-33
lines changed

.github/workflows/build_linux.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
steps:
2828
- name: Install dependencies
2929
run: sudo apt update && sudo apt-get install libgpac-dev libtesseract-dev libavcodec-dev libavdevice-dev libx11-dev libxcb1-dev libxcb-shm0-dev
30-
- uses: actions/checkout@v4
30+
- uses: actions/checkout@v6
3131
- name: build
3232
run: ./build -hardsubx
3333
working-directory: ./linux
@@ -38,7 +38,7 @@ jobs:
3838
run: mkdir ./linux/artifacts
3939
- name: Copy release artifact
4040
run: cp ./linux/ccextractor ./linux/artifacts/
41-
- uses: actions/upload-artifact@v4
41+
- uses: actions/upload-artifact@v5
4242
with:
4343
name: CCExtractor Linux build
4444
path: ./linux/artifacts
@@ -47,7 +47,7 @@ jobs:
4747
steps:
4848
- name: Install dependencies
4949
run: sudo apt update && sudo apt-get install libgpac-dev
50-
- uses: actions/checkout@v4
50+
- uses: actions/checkout@v6
5151
- name: run autogen
5252
run: ./autogen.sh
5353
working-directory: ./linux
@@ -65,7 +65,7 @@ jobs:
6565
steps:
6666
- name: Install dependencies
6767
run: sudo apt update && sudo apt-get install libgpac-dev
68-
- uses: actions/checkout@v4
68+
- uses: actions/checkout@v6
6969
- name: cmake
7070
run: mkdir build && cd build && cmake ../src
7171
- name: build
@@ -76,7 +76,7 @@ jobs:
7676
cmake_ocr_hardsubx:
7777
runs-on: ubuntu-latest
7878
steps:
79-
- uses: actions/checkout@v4
79+
- uses: actions/checkout@v6
8080
- name: Install dependencies
8181
run: sudo apt update && sudo apt install libgpac-dev libtesseract-dev libavformat-dev libavdevice-dev libswscale-dev yasm
8282
- name: cmake
@@ -94,7 +94,7 @@ jobs:
9494
steps:
9595
- name: Install dependencies
9696
run: sudo apt update && sudo apt-get install libgpac-dev
97-
- uses: actions/checkout@v4
97+
- uses: actions/checkout@v6
9898
- name: cache
9999
uses: actions/cache@v4
100100
with:

.github/workflows/build_mac.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
steps:
2828
- name: Install dependencies
2929
run: brew install pkg-config autoconf automake libtool tesseract leptonica gpac
30-
- uses: actions/checkout@v4
30+
- uses: actions/checkout@v6
3131
- name: build
3232
run: ./build.command
3333
working-directory: ./mac
@@ -38,14 +38,14 @@ jobs:
3838
run: mkdir ./mac/artifacts
3939
- name: Copy release artifact
4040
run: cp ./mac/ccextractor ./mac/artifacts/
41-
- uses: actions/upload-artifact@v4
41+
- uses: actions/upload-artifact@v5
4242
with:
4343
name: CCExtractor mac build
4444
path: ./mac/artifacts
4545
build_autoconf:
4646
runs-on: macos-latest
4747
steps:
48-
- uses: actions/checkout@v4
48+
- uses: actions/checkout@v6
4949
- name: Install dependencies
5050
run: brew install pkg-config autoconf automake libtool gpac
5151
- name: run autogen
@@ -63,10 +63,10 @@ jobs:
6363
cmake:
6464
runs-on: macos-latest
6565
steps:
66-
- uses: actions/checkout@v4
66+
- uses: actions/checkout@v6
6767
- name: dependencies
6868
run: brew install gpac
69-
- uses: actions/checkout@v4
69+
- uses: actions/checkout@v6
7070
- name: cmake
7171
run: mkdir build && cd build && cmake ../src
7272
- name: build
@@ -77,7 +77,7 @@ jobs:
7777
cmake_ocr_hardsubx:
7878
runs-on: macos-latest
7979
steps:
80-
- uses: actions/checkout@v4
80+
- uses: actions/checkout@v6
8181
- name: Install dependencies
8282
run: brew install pkg-config autoconf automake libtool tesseract leptonica gpac ffmpeg
8383
- name: cmake
@@ -93,7 +93,7 @@ jobs:
9393
build_rust:
9494
runs-on: macos-latest
9595
steps:
96-
- uses: actions/checkout@v4
96+
- uses: actions/checkout@v6
9797
- name: cache
9898
uses: actions/cache@v4
9999
with:

.github/workflows/build_windows.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ env:
44
RUSTFLAGS: -Ctarget-feature=+crt-static
55
VCPKG_DEFAULT_TRIPLET: x64-windows-static
66
VCPKG_DEFAULT_BINARY_CACHE: C:\vcpkg\.cache
7-
VCPKG_COMMIT: fba75d09065fcc76a25dcf386b1d00d33f5175af
7+
VCPKG_COMMIT: ab2977be50c702126336e5088f4836060733c899
88

99
on:
1010
workflow_dispatch:
@@ -29,7 +29,7 @@ jobs:
2929
runs-on: windows-2022
3030
steps:
3131
- name: Check out repository
32-
uses: actions/checkout@v4
32+
uses: actions/checkout@v6
3333
- name: Setup MSBuild.exe
3434
uses: microsoft/setup-msbuild@v2.0.0
3535
with:
@@ -70,7 +70,7 @@ jobs:
7070
- name: Display version information
7171
run: ./ccextractorwinfull.exe --version
7272
working-directory: ./windows/x64/Release-Full
73-
- uses: actions/upload-artifact@v4
73+
- uses: actions/upload-artifact@v5
7474
with:
7575
name: CCExtractor Windows Release build
7676
path: |
@@ -80,7 +80,7 @@ jobs:
8080
runs-on: windows-2022
8181
steps:
8282
- name: Check out repository
83-
uses: actions/checkout@v4
83+
uses: actions/checkout@v6
8484
- name: Setup MSBuild.exe
8585
uses: microsoft/setup-msbuild@v2.0.0
8686
with:
@@ -122,7 +122,7 @@ jobs:
122122
continue-on-error: true
123123
run: ./ccextractorwinfull.exe --version
124124
working-directory: ./windows/x64/Debug-Full
125-
- uses: actions/upload-artifact@v4
125+
- uses: actions/upload-artifact@v5
126126
with:
127127
name: CCExtractor Windows Debug build
128128
path: |

.github/workflows/format.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
format:
2020
runs-on: ubuntu-latest
2121
steps:
22-
- uses: actions/checkout@v4
22+
- uses: actions/checkout@v6
2323
- name: Format code
2424
run: |
2525
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
@@ -33,7 +33,7 @@ jobs:
3333
run:
3434
working-directory: ${{ matrix.workdir }}
3535
steps:
36-
- uses: actions/checkout@v4
36+
- uses: actions/checkout@v6
3737
- name: cache
3838
uses: actions/cache@v4
3939
with:

.github/workflows/release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
runs-on: windows-latest
1111
steps:
1212
- name: Check out repository
13-
uses: actions/checkout@v4
13+
uses: actions/checkout@v6
1414
- name: Get the version
1515
id: get_version
1616
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\/v/}
@@ -69,7 +69,7 @@ jobs:
6969
create_linux_package:
7070
runs-on: ubuntu-latest
7171
steps:
72-
- uses: actions/checkout@v4
72+
- uses: actions/checkout@v6
7373
with:
7474
path: ./ccextractor
7575
- name: Create .tar.gz without git and windows folders

.github/workflows/test_rust.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
run:
1919
working-directory: ./src/rust
2020
steps:
21-
- uses: actions/checkout@v4
21+
- uses: actions/checkout@v6
2222
- name: cache
2323
uses: actions/cache@v4
2424
with:

src/lib_ccx/ccx_encoders_spupng.c

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,38 @@ void write_sputag_close(struct spupng_t *sp)
186186
}
187187
void write_spucomment(struct spupng_t *sp, const char *str)
188188
{
189-
fprintf(sp->fpxml, "<!--\n%s\n-->\n", str);
189+
fprintf(sp->fpxml, "<!--\n");
190+
191+
const char *p = str;
192+
const char *last_safe_pos = str; // Track the last safe position to flush
193+
194+
while (*p)
195+
{
196+
197+
if (*p == '-' && *(p + 1) == '-')
198+
{
199+
200+
if (p > last_safe_pos)
201+
{
202+
fwrite(last_safe_pos, 1, p - last_safe_pos, sp->fpxml);
203+
}
204+
205+
fputc('-', sp->fpxml);
206+
p += 2;
207+
last_safe_pos = p;
208+
}
209+
else
210+
{
211+
p++;
212+
}
213+
}
214+
215+
if (p > last_safe_pos)
216+
{
217+
fwrite(last_safe_pos, 1, p - last_safe_pos, sp->fpxml);
218+
}
219+
220+
fprintf(sp->fpxml, "\n-->\n");
190221
}
191222

192223
char *get_spupng_filename(void *ctx)

src/rust/Cargo.toml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,17 @@ url = "2.5.4"
2626
serial_test = "3.2.0"
2727
encoding_rs = "0.8.35"
2828

29-
# Use rsmpeg with platform-specific FFmpeg features and versions
29+
# Use CCExtractor's forked rsmpeg with FFmpeg 7
30+
# All platforms use ffmpeg7 feature with prebuilt bindings for API consistency
3031
[target.'cfg(target_os = "linux")'.dependencies]
31-
rsmpeg = { version = "0.14.2", default-features = false, features = ["ffmpeg6", "link_system_ffmpeg"], optional = true }
32+
rsmpeg = { git = "https://github.com/CCExtractor/rsmpeg.git", default-features = false, features = ["ffmpeg7", "link_system_ffmpeg", "use_prebuilt_binding"], optional = true }
3233

3334
[target.'cfg(target_os = "windows")'.dependencies]
34-
rsmpeg = { version = "0.14.2", default-features = false, features = ["ffmpeg6", "link_system_ffmpeg"], optional = true }
35+
rsmpeg = { git = "https://github.com/CCExtractor/rsmpeg.git", default-features = false, features = ["ffmpeg7", "link_vcpkg_ffmpeg"], optional = true }
3536

36-
# Fallback for other platforms (FreeBSD, etc.)
37+
# macOS and other platforms use FFmpeg 7
3738
[target.'cfg(not(any(target_os = "linux", target_os = "windows")))'.dependencies]
38-
rsmpeg = { version = "0.18.0", default-features = false, features = ["ffmpeg8", "link_system_ffmpeg"], optional = true }
39+
rsmpeg = { git = "https://github.com/CCExtractor/rsmpeg.git", default-features = false, features = ["ffmpeg7", "link_system_ffmpeg"], optional = true }
3940

4041
[build-dependencies]
4142
bindgen = "0.64.0"

windows/ccextractor.vcxproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@
248248
</ClCompile>
249249
<Link>
250250
<AdditionalDependencies>
251-
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>
251+
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.85.0.lib;tesseract55.lib;gif.lib;archive.lib;avdevice.lib;bz2.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>
252252
<ShowProgress>NotSet</ShowProgress>
253253
<GenerateDebugInformation>true</GenerateDebugInformation>
254254
<SubSystem>Console</SubSystem>
@@ -294,7 +294,7 @@
294294
</ClCompile>
295295
<Link>
296296
<AdditionalDependencies>
297-
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>
297+
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.85.0.lib;tesseract55.lib;gif.lib;archive.lib;avdevice.lib;bz2.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>
298298
<GenerateDebugInformation>true</GenerateDebugInformation>
299299
<SubSystem>Console</SubSystem>
300300
<OptimizeReferences>true</OptimizeReferences>

windows/vcpkg.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@
66
"tesseract",
77
"ffmpeg"
88
],
9-
"builtin-baseline": "fba75d09065fcc76a25dcf386b1d00d33f5175af"
10-
}
9+
"builtin-baseline": "189fcdcb953b871d206ffada6db047496fc3f496"
10+
11+
}

0 commit comments

Comments
 (0)