Apoorv Darshan
538e39db67
Fix null pointer dereference in Matroska parser on file open failure ( #2171 )
...
create_file() returns the result of fopen() which can be NULL if the
file cannot be opened. matroska_loop() never checked this, passing
the NULL pointer into matroska_parse() where it is immediately used
in feof(), causing a crash.
Add a NULL check that calls fatal(EXIT_READ_ERROR, ...) on failure,
consistent with other file-open error handling in the codebase.
2026-03-14 10:03:39 -07:00
Arun
af53968611
Fix: Heap OOB buffer over-read in MP4 atom parsing ( #2179 ) ( #2180 )
...
* Fix: Heap OOB buffer over-read in MP4 atom parsing (#2179 )
* formatting
---------
Co-authored-by: Arun kumar <arunkumar@Aruns-MacBook-Air.local >
2026-03-12 20:54:28 -07:00
Carlos Fernandez Sanz
0f41b70a6e
style: add missing braces to if blocks in lib_ccx.c ( #2147 follow-up) ( #2197 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-12 18:56:52 -07:00
Atul Chahar
58a8ded621
Fix MSVC cross-CRT invalid free on output_filename ( #2147 )
2026-03-12 18:54:47 -07:00
Carlos Fernandez Sanz
ee57fb46f3
chore: clean up #2168 merge — drop internal CHANGES.TXT entry, fix whitespace ( #2196 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-12 18:49:44 -07:00
Varad Raj Agrawal
dc1d8d9592
fix: move VBI_DEBUG to CMake opt-in, fix MSVC empty struct error ( #2168 )
...
- Remove unconditional #define VBI_DEBUG from ccx_decoders_vbi.h
- Add CMake option VBI_DEBUG (OFF by default) in src/CMakeLists.txt
- Use #ifdef VBI_DEBUG / #else for debug_file_name vs reserved member,
preventing MSVC C2016 empty struct error in non-debug builds
- Add changelog entry in docs/CHANGES.TXT under 0.96.7 unreleased
Fixes #2167
2026-03-12 18:47:43 -07:00
dependabot[bot]
d0c73362ed
chore(deps): bump docker/build-push-action from 6 to 7 ( #2181 )
...
Bumps [docker/build-push-action](https://github.com/docker/build-push-action ) from 6 to 7.
- [Release notes](https://github.com/docker/build-push-action/releases )
- [Commits](https://github.com/docker/build-push-action/compare/v6...v7 )
---
updated-dependencies:
- dependency-name: docker/build-push-action
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-08 13:28:04 -07:00
dependabot[bot]
80ed678f98
chore(deps): bump docker/setup-buildx-action from 3 to 4 ( #2178 )
...
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action ) from 3 to 4.
- [Release notes](https://github.com/docker/setup-buildx-action/releases )
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-07 23:16:15 -08:00
Varad Raj Agrawal
90128d8c28
fix: memory leaks and invalid CSS in WebVTT encoder ( #2164 )
...
* fix: memory leaks and invalid CSS in WebVTT encoder
- Remove 6 unnecessary strdup() calls on string literals in
write_cc_buffer_as_webvtt() — literals are passed directly to
write_wrapped() which takes void*, no heap allocation needed.
This runs in a per-character inner loop and leaked on every
styled subtitle in a broadcast.
- Fix invalid CSS: rgba(0, 256, 0, 0.5) -> rgba(0, 255, 0, 0.5)
CSS color channels are 0-255; 256 is out of range.
- Fix missing free(unescaped) on write-error path in
write_stringz_as_webvtt() — matched the existing pattern on
the adjacent error path which correctly freed both el and unescaped.
Fixes #2154
* fix: move WebVTT changelog entry to unreleased 0.96.7 section
2026-03-07 00:37:12 -08:00
Pranav Sharma
b2c1babf90
Feat(rust): Implement WebVTT-specific timestamp format and layout anchor ( #2135 )
...
* Feat(rust): Implement WebVTT-specific timestamp format and layout anchor
* style: apply rustfmt to g608.rs
* fix(rust): use WebVTT-spec dot separator for milliseconds in timestamp line
2026-03-07 00:26:55 -08:00
Anayo Anyafulu
a44db9f617
Port hex_string_to_int from C to Rust and support uppercase hex ( #2141 )
2026-03-06 23:55:33 -08:00
rhythmcache
e4bcade799
Fix potential out-of-bounds access in write_stringz_as_srt_to_output ( #2128 )
...
* Fix loop condition for reading unescaped string
* Fix condition to check for newline escape sequence
* Fix formatting
2026-03-06 23:44:40 -08:00
cheron2000
f377be9578
cmake: guard Unix-only linker flags on non-Windows platforms ( #2156 )
2026-03-01 12:05:37 -08:00
Carlos Fernandez Sanz
8de778af32
fix(report): NULL guard and deduplicate call in teletext JSON report ( #2155 )
...
Follow-up to #2137 :
- Add NULL check on private_data in tlt_print_seen_pages_json
- Remove duplicate get_sib_stream_by_type call in print_file_report_json
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-28 15:56:36 -08:00
Carlos Fernandez Sanz
c3c5d9c0a0
Merge pull request #2045 from pranavshar223/docs-userdata-debug-log
...
docs/debug: add verbose log when user data is skipped
2026-02-28 15:48:43 -08:00
Gaurav karmakar
02c524f693
[FIX]Fix panic when using --mp4/--mkv without explicit input format ( #2107 )
...
* Fix panic when using --mp4/--mkv without explicit input format
* Restored Autodetection Logic &Fixed TCP Input Regressio
* style: apply cargo fmt
* ix(parser): add --mp4/--mkv handling and remove unwrap panic
Properly handle mp4/mkv flags in set_input_format()
and replace args.input.unwrap() with unwrap_or().
* resolve the formatting issue
---------
Co-authored-by: GAURAV KARMAKAR <gaurav.k@graeon.ai >
2026-02-28 15:35:56 -08:00
Carlos Fernandez Sanz
9614f58187
Merge pull request #2137 from ananyaaa66/master
...
Add teletext pages and PID type tagging to JSON report output (#1399 )
2026-02-28 14:25:22 -08:00
Carlos Fernandez Sanz
5de265d64f
Merge pull request #2152 from Varadraj75/feat/mkv-mpeg2-cc-extraction
...
FEATURE: Add V_MPEG2 track support in MKV demuxer for CC extraction
2026-02-28 14:02:09 -08:00
Carlos Fernandez Sanz
d80bf92820
test(dtvcc): add lazy decoder allocation lifecycle test
2026-02-28 13:52:00 -08:00
Carlos Fernandez
6ee370cafe
style: cargo fmt
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-28 13:18:40 -08:00
Carlos Fernandez
e9a84ac2aa
test(dtvcc): add lazy decoder allocation lifecycle test
...
Verify that CEA-708 service decoders are not allocated at startup
and are only created on first use when data arrives for that service.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-28 13:14:25 -08:00
Carlos Fernandez Sanz
ffb380601a
Merge pull request #2151 from x15sr71/fix/x86-decoder-alloc-panic
...
Fix: Lazy CEA-708 service decoder allocation to prevent OOM panic on x86 (32-bit Windows)
2026-02-28 13:08:11 -08:00
Carlos Fernandez
36711b9d3b
Merge origin/master into fix/x86-decoder-alloc-panic
...
Resolve CHANGES.TXT conflict: keep both entries.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-28 13:07:54 -08:00
Carlos Fernandez Sanz
c919dafd4a
Merge pull request #2150 from Varadraj75/fix/scc-framerate-help-and-23.98-alias
...
[FEATURE] : Add 23.98fps alias for --scc-framerate and clarify help text
2026-02-28 12:59:17 -08:00
Carlos Fernandez Sanz
af57a0c425
Merge pull request #2148 from CCExtractor/dependabot/github_actions/actions/upload-artifact-7
...
chore(deps): bump actions/upload-artifact from 6 to 7
2026-02-28 12:55:15 -08:00
Carlos Fernandez Sanz
f457348a43
Merge pull request #2138 from x15sr71/fix/rust-timing-unwrap-panic
...
FIX(rust): prevent panic when formatting out-of-range timestamps in timing.rs and c_functions.rs
2026-02-28 10:30:05 -08:00
Varadraj75
a87ad2bec7
style: remove BOM from matroska.c
2026-02-28 22:57:58 +05:30
Varadraj75
0cf5abfa9c
style: apply clang-format to matroska.c
2026-02-28 22:51:39 +05:30
Varadraj75
934398fc86
feat: support V_MPEG2 tracks in MKV demuxer for CC extraction
...
MKV files with MPEG-2 video (common in DVD sources) were silently skipped.
Add V_MPEG2 track detection and processing using the existing process_m2v()
infrastructure, matching how mp4.c handles MPEG-2 streams.
Fixes #2149
2026-02-28 21:43:42 +05:30
Varadraj75
1189433c06
fix: address Copilot review comments on PR #2150
...
- Fix mapping comments: 4=23.976 (aka 23.98) in ccx_encoders_scc.c
- Update help text to document 23.976 and 29 as accepted aliases
- Add test_scc_framerate_23_976 unit test for the 23.976 alias
2026-02-28 18:04:24 +05:30
Chandragupt Singh
7047583cdf
Merge branch 'master' into fix/x86-decoder-alloc-panic
2026-02-28 17:52:49 +05:30
Chandragupt Singh
3af7a6a336
chore: add changelog entry and update test comment for lazy allocation
2026-02-28 17:38:38 +05:30
Varadraj75
f7bdb86504
feat: add 23.98fps as valid --scc-framerate value and fix help text
...
- Add case 4 (23.976f) to both get_scc_fps() and get_scc_fps_internal()
in ccx_encoders_scc.c so --scc-framerate 23.98 produces correct output
- Add "23.98" | "23.976" match arm in parser.rs mapping to value 4
- Add test_scc_framerate_23_98() unit test in parser.rs
- Update --scc-framerate help text to clarify it affects both input
parsing AND output encoding (not input only)
- Add 23.98 to the listed valid values in the help text
Follows up on discussion in #2145 and #2146 .
2026-02-28 16:58:58 +05:30
dependabot[bot]
738d482ea7
chore(deps): bump actions/upload-artifact from 6 to 7
...
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact ) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases )
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7 )
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-27 18:02:42 +00:00
Chandragupt Singh
801a5446bf
debug: revert artifact freshness sentinel string
...
TIMING_PATCH_ACTIVE was a temporary diagnostic string added to
verify that GitHub Actions was building fresh artifacts from the
correct branch commit, and not serving a stale cached binary.
Build freshness was confirmed. Reverted back to INVALID.
2026-02-27 20:32:40 +05:30
Chandragupt Singh
f5cede7c58
debug: add a small sentinel string to check if the artifact is fresh
2026-02-27 18:35:21 +05:30
Chandragupt Singh
76e37ba64e
fix(rust): lazily allocate CEA-708 service decoders to avoid x86 startup OOM
2026-02-27 10:43:08 +05:30
Carlos Fernandez Sanz
733ed89feb
Merge pull request #2134 from x15sr71/fix/spupng-indexing-and-path
...
[Fix]: SPUPNG indexing, EOD counter advance, and header path determinism
2026-02-25 14:19:30 -08:00
Carlos Fernandez Sanz
6da2b7f8e1
Merge pull request #2136 from apoorvdarshan/fix/config-file-parser-bugs
...
Fix configuration file parsing bugs and typos
2026-02-25 14:17:24 -08:00
Carlos Fernandez Sanz
85aa833e01
Merge pull request #2130 from pranavshar223/fix-scte20-syntax-check
...
Fix: Add missing SCTE-20 marker bit syntax check (resolves TODO)
2026-02-25 14:04:23 -08:00
Chandragupt Singh
17d1c14c99
fix(rust): replace alloc panic with handle_alloc_error and add null guard to prevent UB on x86
2026-02-26 00:13:45 +05:30
Chandragupt Singh
9039c80d19
fix(rust): replace unwrap in print_mstime_static to avoid panic on out-of-range timestamps
2026-02-24 18:08:15 +05:30
Chandragupt Singh
10c612f90c
docs: add changelog entry
2026-02-24 02:31:16 +05:30
Chandragupt Singh
ef33eb8c13
fix(rust): prevent panic in timing.rs when formatting invalid timestamps
2026-02-24 01:00:54 +05:30
ananyaaa66
b1cb5c98fa
feat: Add functions for dumping CCExtractor parameters and generating file reports, including JSON output.
2026-02-23 02:54:07 +05:30
ananyaaa66
3d9027a913
feat: Add parameter dumping, JSON report generation, and teletext support.
2026-02-23 01:18:47 +05:30
Apoorv Darshan
3865385763
Fix configuration file parsing bugs and typos
...
Fix multiple bugs in parse_file(): heap buffer overflow on long lines
(no bounds check on 128-byte buffer), broken EOF detection (fgetc()
return stored in char instead of int), missing NULL check after malloc,
missing null-terminator on accumulated string, and last line silently
dropped if file lacks trailing newline.
Also fix typos in configuration_map[]: FIX_PADDINDG → FIX_PADDING,
INVASTIGATE_PACKET → INVESTIGATE_PACKET.
2026-02-23 00:14:31 +05:30
Chandragupt Singh
3857a5756f
docs: add changelog entry
2026-02-22 22:58:37 +05:30
Chandragupt Singh
041413817b
fix(spupng): fix file numbering, EOD index waste, and non-deterministic XML path
2026-02-22 22:01:53 +05:30
Pranav Sharma
381489f82c
Fix: Add missing SCTE-20 marker bit syntax check (resolves TODO)
2026-02-20 10:03:50 +00:00