Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions CI_TRIAGE_DEC_2025.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,16 @@ considers them regressions because the "ground truth" baseline is outdated. This
2. Systematically analyze each failing test
3. Determine whether to update ground truth or fix code

## Failing Tests to Triage
## Merged Fixes

Will be populated after CI run completes.
The following PRs have been merged and this run verifies their combined effect:

- **PR #1847**: Hardsubx crash fix, memory leak fixes, rcwt exit code fix
- **PR #1848**: XDS empty content entries fix

## Status

- [ ] CI run triggered
- [x] PR #1847 merged
- [x] PR #1848 merged
- [ ] Verification CI run triggered
- [ ] Results analyzed
- [ ] Triage decisions made
2 changes: 2 additions & 0 deletions src/ccextractor.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
/* CCExtractor, originally by carlos at ccextractor.org, now a lot of people.
Credits: See AUTHORS.TXT
License: GPL 2.0

CI verification run: 2025-12-19T08:30 - Testing merged fixes from PRs #1847 and #1848
*/
#include "ccextractor.h"
#include <stdio.h>
Expand Down
5 changes: 4 additions & 1 deletion src/lib_ccx/general_loop.c
Original file line number Diff line number Diff line change
Expand Up @@ -1392,9 +1392,12 @@ int rcwt_loop(struct lib_ccx_ctx *ctx)
dec_sub = &dec_ctx->dec_sub;
telctx = dec_ctx->private_data;

/* Set minimum and current pts since rcwt has correct time */
/* Set minimum and current pts since rcwt has correct time.
* Also set pts_set = 2 (MinPtsSet) so the Rust timing code knows
* that min_pts is valid and can calculate fts_now properly. */
dec_ctx->timing->min_pts = 0;
dec_ctx->timing->current_pts = 0;
dec_ctx->timing->pts_set = 2; // 2 = min_pts set

// Loop until no more data is found
while (1)
Expand Down
11 changes: 9 additions & 2 deletions src/lib_ccx/wtv_functions.c
Original file line number Diff line number Diff line change
Expand Up @@ -436,8 +436,15 @@ LLONG get_data(struct lib_ccx_ctx *ctx, struct wtv_chunked_buffer *cb, struct de
dbg_print(CCX_DMT_PARSE, "TIME: %ld\n", time);
if (time != -1 && time != WTV_CC_TIMESTAMP_MAGIC)
{ // Ignore -1 timestamps
set_current_pts(dec_ctx->timing, time_to_pes_time(time));
dec_ctx->timing->pts_set = 1;
LLONG pes_time = time_to_pes_time(time);
set_current_pts(dec_ctx->timing, pes_time);
// Set min_pts on first valid timestamp to enable fts_now calculation
if (dec_ctx->timing->min_pts == 0x01FFFFFFFF || pes_time < dec_ctx->timing->min_pts)
{
dec_ctx->timing->min_pts = pes_time;
}
// pts_set = 2 (MinPtsSet) is required for proper fts_now calculation
dec_ctx->timing->pts_set = 2;
frames_since_ref_time = 0;
set_fts(dec_ctx->timing);
}
Expand Down
4 changes: 2 additions & 2 deletions src/rust/lib_ccxr/src/util/encoding.rs
Original file line number Diff line number Diff line change
Expand Up @@ -584,7 +584,7 @@ fn latin1_to_line21(c: Latin1Char) -> Line21Char {
0xbf => 0x83, // Inverted (open) question mark
0xa2 => 0x85, // Cents symbol
0xa3 => 0x86, // Pounds sterling
0xb6 => 0x87, // Music note (pilcrow in Latin-1)
b'#' => 0x87, // Music note (# in Latin-1)
0xe0 => 0x88, // lowercase a, grave accent
0x20 => 0x89, // transparent space
0xe8 => 0x8a, // lowercase e, grave accent
Expand Down Expand Up @@ -682,7 +682,7 @@ pub fn line21_to_latin1(c: Line21Char) -> Latin1Char {
0x84 => UNAVAILABLE_CHAR, // Trademark symbol (TM) - Does not exist in Latin 1
0x85 => 0xa2, // Cents symbol
0x86 => 0xa3, // Pounds sterling
0x87 => 0xb6, // Music note - Not in latin 1, so we use 'pilcrow'
0x87 => b'#', // Music note - Not in latin 1, so we use '#'
0x88 => 0xe0, // lowercase a, grave accent
0x89 => 0x20, // transparent space, we make it regular
0x8a => 0xe8, // lowercase e, grave accent
Expand Down
Loading