mirror of
https://github.com/CCExtractor/ccextractor.git
synced 2026-02-03 21:23:48 +00:00
[PR #2048] [CLOSED] feat: Implement DVB Subtitle Splitting with Safe Parsing #2860
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/CCExtractor/ccextractor/pull/2048
Author: @Rahul-2k4
Created: 1/20/2026
Status: ❌ Closed
Base:
master← Head:dvb-split-clean📝 Commits (10+)
cca3e3cCleanup: Finalize DVB split feature implementation7505524Fix issues identified by CodeRabbit review042493fFix clap validation and remove dead unsafe codec6da9dbFix syntax errors and formatting in C filesf53026bFix remaining indentation issues in general_loop.cac35e84Fix issues identified by CodeRabbit (Round 2) and repair syntax394a994Apply clang-format to C files0de8a15Fix build: resolve brace mismatches in general_loop.c and apply clang-formatec9df11Fix DVB dedup PTS calc, guard process_cc_data in general_loop, and restore rcwt cleanup8db4939Apply manual formatting fixes to match CI clang-format📊 Changes
48 files changed (+2356 additions, -2623 deletions)
View changed files
➖
.github/workflows/build_deb.yml(+0 -283)➖
.github/workflows/build_deb_debian13.yml(+0 -275)📝
.github/workflows/build_docker.yml(+0 -4)📝
.github/workflows/build_linux.yml(+0 -4)📝
.github/workflows/build_mac.yml(+0 -4)📝
.github/workflows/build_windows.yml(+0 -4)📝
docs/CHANGES.TXT(+7 -0)📝
linux/Makefile.am(+4 -2)📝
linux/configure.ac(+2 -2)📝
mac/Makefile.am(+2 -0)📝
src/CMakeLists.txt(+1 -10)📝
src/ccextractor.c(+2 -0)📝
src/lib_ccx/CMakeLists.txt(+13 -6)📝
src/lib_ccx/ccx_common_option.c(+3 -0)📝
src/lib_ccx/ccx_common_option.h(+3 -1)📝
src/lib_ccx/ccx_decoders_common.c(+2 -2)📝
src/lib_ccx/ccx_decoders_structs.h(+3 -1)📝
src/lib_ccx/ccx_demuxer.c(+8 -0)📝
src/lib_ccx/ccx_demuxer.h(+28 -2)📝
src/lib_ccx/ccx_encoders_common.c(+12 -11)...and 28 more files
📄 Description
feat: Implement DVB Subtitle Splitting with Safe Parsing
Description
This PR implements the requested DVB subtitle splitting feature (
--split-dvb-subs) and includes significant refactoring to ensure memory safety and robustness in Rust-C interop.Key Changes
--split-dvb-subsflag to extracting DVB subtitle tracks into separate output files (e.g.,output_spa_0x00D3.srt).mkvlangparsing incommon.rsandparser.rsto replaceunwrap()/expect()with safe result handling, preventing panics on invalid inputs.parser.rsnow strictly rejects ambiguous comma-separatedmkvlanginputs (e.g.,eng,fre) or empty inputs with a clear error message, rather than silently ignoring them or panicking.process_cc_data_flagcheck inavc/sei.rs(ANSI/SCTE 128 branch) to correctly skip invalid caption blocks.parser.rsto correctly detect manual PID selection (ts_cappids) when validating against split logic.last_stringvslast_strstruct member mismatch inccx_encoders_srt.c.Verification
cargo test).multiprogram_spain.ts..srtfiles + 1 main file.mkvlanginputs (comma-separated, empty) are correctly rejected with helpful error messages.Checklist
cargo testpasses.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.