[PR #2058] [CLOSED] feat: implement DVB subtitle splitting (--split-dvb-subs) #2865

Open
opened 2026-01-29 17:24:19 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/CCExtractor/ccextractor/pull/2058
Author: @Rahul-2k4
Created: 1/24/2026
Status: Closed

Base: masterHead: dvb-split-fresh


📝 Commits (8)

  • 49b1e54 feat: implement DVB subtitle splitting (--split-dvb-subs)
  • 047c953 ci(windows): add GPAC install fallback for Chocolatey failures
  • 14d290b fix(ci): correct GPAC fallback download URL for Windows builds
  • 8d077fe fix(windows): add strcasecmp compatibility for MSVC builds
  • 68a3dc7 docs: add bug fixes to CHANGES.TXT
  • 39646da Fix flaky Rust test test_buffersize by avoiding race condition
  • a10e402 fix(dvb-split): prevent Rust panic during DVB subtitle pipeline cleanup
  • ebf6ad0 fix(dvb): suppress misleading messages and simplify split file naming

📊 Changes

32 files changed (+1717 additions, -273 deletions)

View changed files

📝 .github/workflows/build_windows.yml (+25 -2)
📝 docs/CHANGES.TXT (+7 -1)
📝 linux/Makefile.am (+4 -2)
📝 mac/Makefile.am (+2 -0)
📝 src/CMakeLists.txt (+1 -10)
📝 src/ccextractor.c (+3 -1)
📝 src/lib_ccx/CMakeLists.txt (+13 -6)
📝 src/lib_ccx/ccx_common_option.c (+3 -0)
📝 src/lib_ccx/ccx_common_option.h (+2 -0)
📝 src/lib_ccx/ccx_decoders_structs.h (+2 -0)
📝 src/lib_ccx/ccx_demuxer.c (+8 -0)
📝 src/lib_ccx/ccx_demuxer.h (+25 -0)
📝 src/lib_ccx/ccx_encoders_common.c (+11 -10)
src/lib_ccx/dvb_dedup.c (+48 -0)
src/lib_ccx/dvb_dedup.h (+34 -0)
📝 src/lib_ccx/dvb_subtitle_decoder.c (+449 -150)
📝 src/lib_ccx/dvb_subtitle_decoder.h (+17 -0)
📝 src/lib_ccx/general_loop.c (+247 -14)
📝 src/lib_ccx/lib_ccx.c (+403 -1)
📝 src/lib_ccx/lib_ccx.h (+43 -0)

...and 12 more files

📄 Description

In raising this pull request, I confirm the following (please check boxes):

I have read and understood the contributors guide
.

  • I have checked that another pull request for this purpose does not exist.
  • I have considered, and confirmed that this submission will be valuable to others.
  • I accept that this submission may not be used, and the pull request closed at the will of the maintainer.
  • I give this submission freely, and claim no ownership to its content.
  • I have mentioned this change in the changelog

.

My familiarity with the project is as follows (check one):

  • I have never used CCExtractor.
  • I have used CCExtractor just a couple of times.
  • I absolutely love CCExtractor, but have not contributed previously.
  • I am an active contributor to CCExtractor.

Summary

This PR completes verification of Issue #447 and applies a few small but necessary fixes identified during review. The --split-dvb-subs feature is confirmed to work correctly with real DVB broadcast samples.

Features

  • --split-dvb-subs: Extract each DVB stream to separate files (e.g., output_eng_0x0000.srt, output_spa_0x006F.srt)
  • --no-dvb-dedup: Disable ring buffer deduplication to retain all subtitles (useful for debugging)
  • Multi-pipeline: Parallel processing of multiple DVB streams
  • Post-EOF handling: Captures DVB packets after video EOF for complete extraction

Bug Fix: GPAC fallback URL

Fixed Windows CI failures when Chocolatey returns 503 errors. Corrected the fallback download URL from:

  • release/2.4.0/gpac-2.4.0-rev0-gc05db8ba-master-x64.exe (404)
  • release/2.4/gpac-2.4-rev0-g5d70253a-master-x64.exe (200 OK)

Test Results

Sample Streams Before After Result
multiprogram_spain.ts 5 1 file 5 files
tnt-uhf30-546MHz… 6 1 file 6 files
BBC1.ts 1 1 file 1 file
All other samples 1-2

Coverage: Split, deduplication (on/off), multi-pipeline, Windows CI, Linux CI


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/CCExtractor/ccextractor/pull/2058 **Author:** [@Rahul-2k4](https://github.com/Rahul-2k4) **Created:** 1/24/2026 **Status:** ❌ Closed **Base:** `master` ← **Head:** `dvb-split-fresh` --- ### 📝 Commits (8) - [`49b1e54`](https://github.com/CCExtractor/ccextractor/commit/49b1e54a7da533611e2a38660cdf6bed2cc43eaf) feat: implement DVB subtitle splitting (--split-dvb-subs) - [`047c953`](https://github.com/CCExtractor/ccextractor/commit/047c9539c1fadf02aeb69d29d73309db42018ff0) ci(windows): add GPAC install fallback for Chocolatey failures - [`14d290b`](https://github.com/CCExtractor/ccextractor/commit/14d290baa709eaea4b6e640dccbd0c8386f3520c) fix(ci): correct GPAC fallback download URL for Windows builds - [`8d077fe`](https://github.com/CCExtractor/ccextractor/commit/8d077feaef8829c5bb7ec63582a83549ddf09879) fix(windows): add strcasecmp compatibility for MSVC builds - [`68a3dc7`](https://github.com/CCExtractor/ccextractor/commit/68a3dc77fe43095ad6051610f4b7baf50f3faa92) docs: add bug fixes to CHANGES.TXT - [`39646da`](https://github.com/CCExtractor/ccextractor/commit/39646da05dac4da521cbc9d93b6898169f12ec04) Fix flaky Rust test test_buffersize by avoiding race condition - [`a10e402`](https://github.com/CCExtractor/ccextractor/commit/a10e4027137f471abaf62c540e4f53b39a160e00) fix(dvb-split): prevent Rust panic during DVB subtitle pipeline cleanup - [`ebf6ad0`](https://github.com/CCExtractor/ccextractor/commit/ebf6ad08941dff2c2de8289c396a03c2e6317de1) fix(dvb): suppress misleading messages and simplify split file naming ### 📊 Changes **32 files changed** (+1717 additions, -273 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/build_windows.yml` (+25 -2) 📝 `docs/CHANGES.TXT` (+7 -1) 📝 `linux/Makefile.am` (+4 -2) 📝 `mac/Makefile.am` (+2 -0) 📝 `src/CMakeLists.txt` (+1 -10) 📝 `src/ccextractor.c` (+3 -1) 📝 `src/lib_ccx/CMakeLists.txt` (+13 -6) 📝 `src/lib_ccx/ccx_common_option.c` (+3 -0) 📝 `src/lib_ccx/ccx_common_option.h` (+2 -0) 📝 `src/lib_ccx/ccx_decoders_structs.h` (+2 -0) 📝 `src/lib_ccx/ccx_demuxer.c` (+8 -0) 📝 `src/lib_ccx/ccx_demuxer.h` (+25 -0) 📝 `src/lib_ccx/ccx_encoders_common.c` (+11 -10) ➕ `src/lib_ccx/dvb_dedup.c` (+48 -0) ➕ `src/lib_ccx/dvb_dedup.h` (+34 -0) 📝 `src/lib_ccx/dvb_subtitle_decoder.c` (+449 -150) 📝 `src/lib_ccx/dvb_subtitle_decoder.h` (+17 -0) 📝 `src/lib_ccx/general_loop.c` (+247 -14) 📝 `src/lib_ccx/lib_ccx.c` (+403 -1) 📝 `src/lib_ccx/lib_ccx.h` (+43 -0) _...and 12 more files_ </details> ### 📄 Description In raising this pull request, I confirm the following (please check boxes): I have read and understood the [contributors guide](https://github.com/CCExtractor/ccextractor/blob/master/.github/CONTRIBUTING.md) . - [x] I have checked that another pull request for this purpose does not exist. - [x] I have considered, and confirmed that this submission will be valuable to others. - [x] I accept that this submission may not be used, and the pull request closed at the will of the maintainer. - [x] I give this submission freely, and claim no ownership to its content. - [x] I have mentioned this change in the [changelog](https://github.com/CCExtractor/ccextractor/blob/master/docs/CHANGES.TXT) . My familiarity with the project is as follows (check one): - [ ] I have never used CCExtractor. - [x] I have used CCExtractor just a couple of times. - [ ] I absolutely love CCExtractor, but have not contributed previously. - [x] I am an active contributor to CCExtractor. ___________________________________________________________________________________________________________ ### **Summary** This PR completes verification of Issue #447 and applies a few small but necessary fixes identified during review. The --split-dvb-subs feature is confirmed to work correctly with real DVB broadcast samples. ## Features - **`--split-dvb-subs`**: Extract each DVB stream to separate files (e.g., `output_eng_0x0000.srt`, `output_spa_0x006F.srt`) - **`--no-dvb-dedup`**: Disable ring buffer deduplication to retain all subtitles (useful for debugging) - **Multi-pipeline**: Parallel processing of multiple DVB streams - **Post-EOF handling**: Captures DVB packets after video EOF for complete extraction ## Bug Fix: GPAC fallback URL Fixed Windows CI failures when Chocolatey returns 503 errors. Corrected the fallback download URL from: - ❌ `release/2.4.0/gpac-2.4.0-rev0-gc05db8ba-master-x64.exe` (404) - ✅ `release/2.4/gpac-2.4-rev0-g5d70253a-master-x64.exe` (200 OK) ## Test Results | Sample | Streams | Before | After | Result | |--------|----------|---------|--------|---------| | multiprogram_spain.ts | 5 | 1 file | 5 files | ✅ | | tnt-uhf30-546MHz… | 6 | 1 file | 6 files | ✅ | | BBC1.ts | 1 | 1 file | 1 file | ✅ | | All other samples | 1-2 | ✓ | ✓ | ✅ | **Coverage**: Split, deduplication (on/off), multi-pipeline, Windows CI, Linux CI --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-29 17:24:19 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/ccextractor#2865