[FIX]: Properly decode DVB EIT start time BCD field in XMLTV output #2100
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In raising this pull request, I confirm the following (please check boxes):
My familiarity with the project is as follows (check one):
Description
This PR fixes improper BCD decoding in DVB EIT start time fields, which was causing invalid XMLTV timestamps.
Problem
As reported by @TPeterson94070 in #1835 (comment), CCExtractor was generating invalid start times in XMLTV output for DVB streams:
Example of broken output:
Root Cause
The
EPG_DVB_calc_start_time()function printed the raw 24-bit BCD time field as a numeric value without decoding individual BCD nibbles into HH/MM/SS, which resulted in invalid timestamps.Solution
Properly decode BCD nibbles for hours, minutes, and seconds, then use
struct tm+mktime()for normalization - aligning with the existingEPG_DVB_calc_end_time()implementation.Testing
Test stream: channel41.ts
Before Fix:
After Fix:
Validation:
And Successfully imported into @TPeterson94070's PVR application -#1835 (comment)
Impact