|
| 1 | +Upcoming (unreleased) |
| 2 | +--------------------- |
| 3 | +- New: Multi-page teletext extraction support (#665) |
| 4 | + - Extract multiple teletext pages simultaneously with separate output files |
| 5 | + - Use --tpage multiple times (e.g., --tpage 100 --tpage 200) |
| 6 | + - Output files are named with page suffix (e.g., output_p100.srt, output_p200.srt) |
| 7 | + |
1 | 8 | 0.96 (2025-12-21) |
2 | 9 | ----------------- |
3 | 10 | - New: Added --list-tracks (-L) option to list all tracks in media files without processing |
4 | | -- Fix: Garbled captions from HDHomeRun and I/P-only H.264 streams (#1109) |
5 | | -- Fix: Enable stdout output for CEA-708 captions on Windows (#1693) |
6 | | -- Fix: McPoodle DVD raw format read/write - properly handle loop markers (#1524) |
7 | | -- Fix: Variable shadowing in general_loop causing false "premature end of file" messages |
8 | | -- Fix: Double-free crash in teletext cleanup when processing multiple files |
9 | | -- Fix: Uninitialized memory and memory leaks found by Valgrind testing |
10 | | -- Fix: Dangling pointers in Rust FFI copy_from_rust functions |
11 | | -- New: Improve -out=report to show detected Teletext subtitle pages (#1034) |
12 | | -- FIX: Include ATSC VCT virtual channel numbers and call signs in XMLTV output |
13 | | -- FIX: Restore ATSC XMLTV generation with ETT parsing for extended descriptions, multi-segment handling, extended table ID's (EIT/VCT), corrected <programme> XMLTV formatting, buffer bounds fixes |
14 | | -- Fix: DVB subtitle extraction improvements for Chinese broadcasts (#224): |
15 | | - - Fix crash in parse_PMT() due to missing bounds checks |
16 | | - - Fix negative timestamps in DVB subtitle output |
17 | | - - Fix crash in ignore_alpha_at_edge() OCR cropping |
18 | | - - Improve DVB subtitle OCR accuracy with image inversion |
19 | | - - Fix --ocrlang to accept Tesseract language names (chi_tra, chi_sim, etc.) |
20 | | - - Add case-insensitive matching for --dvblang parameter |
21 | | -- FIX: Add HEVC/H.265 stream type recognition to prevent crashes on ATSC 3.0 streams |
22 | | -- New: Add demuxer and file_functions module in lib_ccxr (#1662) |
23 | | -- Fix: handle row_count decrease in CEA-708 C decoder |
24 | | -- Fix: Bounds checks to prevent panic on malformed CEA-708 data |
25 | | -- Fix: Multiprogram logic in is_decoder_processed_enough() causing false warnings |
26 | | -- Fix: Write consistent 2-byte UTF-16BE encoding for CEA-708 captions (Japanese/Chinese) |
27 | | -- New: Add --ttxtforcelatin option to force Latin G0 charset in Teletext |
28 | | -- Fix: Add fallback for TS files without PAT/PMT tables |
29 | | -- Fix: PTS jump handling to continue fts_now updates after jump |
30 | | -- Fix: Null checks for unchecked memory allocations throughout codebase |
31 | | -- Fix: Null checks and invalid UTF-8 handling in Rust FFI functions |
32 | | -- Fix: Panics in timing code when processing multiple files |
33 | | -- Fix: Caption start/end times to match FFmpeg timing in MP4/MPEG/TS |
34 | | -- Fix: Correctly count and store multiple input files |
35 | | -- Fix: Handle MP4 c608 tracks and improve garbage frame detection |
36 | | -- Fix: Update fts_now for each frame in elementary streams |
37 | | -- Fix: Preserve CR time during pop-on to roll-up transition |
38 | | -- Fix: Defer min_pts until frame type is known |
39 | | -- Fix: Skip leading non-I-frames when setting min_pts |
40 | | -- Fix: Memory leaks in ts_tables_epg, ocr, and ccx_encoders_spupng |
41 | | -- Fix: Buffer overruns in 708_output, mcc_encoder, utility, xds_decoder |
42 | | -- Fix: Replace sprintf/strcpy with bounds-checked snprintf/strncpy in encoders |
43 | | -- Fix: HHMMSSFFF format for ttxt output timestamps |
44 | | -- Fix: Always emit position codes at start of SCC caption |
45 | | -- Fix: Memory safety issues in ccx_decoders_common |
46 | | -- Fix: Null checks after malloc calls in dvb_subtitle_decoder |
47 | | -- Fix: Memory safety checks and memory leaks in Matroska parser |
48 | | - |
49 | | -0.95 (2025-09-15) |
50 | | ------------------ |
51 | | -- Fix: ARM64/aarch64 build failure due to c_char type mismatch in nal.rs |
52 | | -- Fix: HardSubX OCR on Rust |
53 | | -- Removed the Share Module |
54 | | -- Fix: Regression failures on DVD files |
55 | | -- Fix: Segmentation faults on MP4 files with CEA-708 captions |
56 | | -- Refactor: Remove API structures from ccextractor |
57 | | -- New: Add Encoder Module to Rust |
58 | | -- Fix: Elementary stream regressions |
59 | | -- Fix: Segmentation faults on XDS files |
60 | | -- Fix: Clippy Errors Based on Rust 1.88 |
61 | | -- IMPROVEMENT: Refactor and optimize Dockerfile |
62 | | -- Fix: Improved handling of IETF language tags in Matroska files (#1665) |
63 | | -- New: Create unit test for rust code (#1615) |
64 | | -- Breaking: Major argument flags revamp for CCExtractor (#1564 & #1619) |
| 11 | + New: Chinese, Korean, Japanese support - proper encoding and OCR. |
| 12 | + New: Correct McPoodle DVD raw format support |
| 13 | + Fix: Timing is now frame perfect (using FFMpeg timing dump as reference) in all formats. |
| 14 | + Fix: Solved garbling in all the pending issues we had on GitHub. |
| 15 | + Fix: All causes of "premature end of file" messages due to bugs and not actual file cuts. |
| 16 | + Fix: All memory leaks, double frees and usual C nastyness that valgrind could find. |
| 17 | +- Fix Include ATSC VCT virtual channel numbers and call signs in XMLTV output |
| 18 | +- Fix: Restore ATSC XMLTV generation with ETT parsing for extended descriptions, multi-segment handling, extended table ID's (EIT/VCT), corrected <programme> XMLTV formatting, buffer bounds fixes |
| 19 | +- Fix: Add HEVC/H.265 stream type recognition to prevent crashes on ATSC 3.0 streams. |
| 20 | + Fix: Tolerance to damaged streams - recover where possible instead of terminating. |
| 21 | + Issues closed: Over 40! Too many to list here, but each of them was either a bug squashed or a feature implemented. |
| 22 | + |
| 23 | +0.95 (2025-09-15 - never formally packaged) |
| 24 | +----------------- |
65 | 25 | - New: Create a Docker image to simplify the CCExtractor usage without any environmental hustle (#1611) |
66 | | -- New: Add time units module in lib_ccxr (#1623) |
67 | | -- New: Add bits and levenshtein module in lib_ccxr (#1627) |
68 | | -- New: Add constants module in lib_ccxr (#1624) |
69 | | -- New: Add log module in lib_ccxr (#1622) |
70 | | -- New: Create `lib_ccxr` and `libccxr_exports` (#1621) |
71 | | -- Fix: Unexpected behavior of get_write_interval (#1609) |
72 | | -- Update: Bump rsmpeg to latest version for ffmpeg bindings (#1600) |
73 | 26 | - New: Add SCC support for CEA-708 decoder (#1595) |
74 | | -- Fix: respect `-stdout` even if multiple CC tracks are present in a Matroska input file (#1453) |
75 | | -- Fix: crash in Rust decoder on ATSC1.0 TS Files (#1407) |
76 | | -- Removed the --with-gui flag for linux/configure and mac/configure (use the Flutter GUI instead) |
| 27 | + Refactor: Lots of code ported to Rust. |
| 28 | +- Fix: Improved handling of IETF language tags in Matroska files (#1665) |
| 29 | +- Breaking: Major argument flags revamp for CCExtractor (#1564 & #1619) |
77 | 30 | - Fix: segmentation fault in using hardsubx |
78 | | -- New: Add function (and command) that extracts closed caption subtitles as well as burnt-in subtitles from a file in a single pass. (As proposed in issue 726) |
79 | | -- Refactored: the `general_loop` function has some code moved to a new function |
80 | 31 | - Fix: WebVTT X-TIMESTAMP-MAP placement (#1463) |
81 | | -- Disable X-TIMESTAMP-MAP by default (changed option --no-timestamp-map to --timestamp-map) |
82 | | -- Fix: missing `#` in color attribute of font tag |
83 | 32 | - Fix: ffmpeg 5.0, tesseract 5.0 compatibility and remove deprecated methods |
84 | 33 | - Fix: tesseract 5.x traineddata location in ocr |
85 | | -- Fix: fix autoconf tesseract detection problem (#1503) |
86 | | -- Fix: add missing compile_info_real.h source to Autotools build |
87 | | -- Fix: add missing `-lavfilter` for hardsubx linking |
88 | | -- Fix: make webvtt-full work correctly with multi-byte utf-8 characters |
89 | | -- Fix: encoding of solid block in latin-1 and unicode |
90 | | -- Fix: McPoodle Broadcast Raw format for field 1 |
91 | | -- Fix: Incorrect skipping of packets |
92 | | -- Fix: Repeated values for enums |
93 | | -- Cleanup: Remove the (unmaintained) Nuklear GUI code |
94 | | -- Cleanup: Reduce the amount of Windows build options in the project file |
95 | | -- Fix: infinite loop in MP4 file type detector. |
96 | | -- Improvement: Use Corrosion to build Rust code |
97 | 34 | - Improvement: Ignore MXF Caption Essence Container version byte to enhance SRT subtitle extraction compatibility |
98 | 35 | - New: Add tesseract page segmentation modes control with `--psm` flag |
99 | | -- Fix: Resolve compile-time error about implicit declarations (#1646) |
100 | | -- Fix: fatal out of memory error extracting from a VOB PS |
101 | | -- Fix: Unit Test Rust failing due to changes in Rust Version 1.86.0 |
102 | 36 | - Fix: Support for MINGW-w64 cross compiling |
103 | | -- Fix: Build with ENABLE_FFMPEG to support ffmpeg 5 |
104 | 37 |
|
105 | 38 | 0.94 (2021-12-14) |
106 | 39 | ----------------- |
|
0 commit comments