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