Skip to content

Add ATSC PSIP parsing and guide views - #92

Open
znbsf wants to merge 32 commits into
EricBerendsen:masterfrom
znbsf:feature/atsc-psip-core
Open

Add ATSC PSIP parsing and guide views#92
znbsf wants to merge 32 commits into
EricBerendsen:masterfrom
znbsf:feature/atsc-psip-core

Conversation

@znbsf

@znbsf znbsf commented May 26, 2026

Copy link
Copy Markdown

Summary

This adds ATSC PSIP support, including STT, MGT, TVCT/CVCT, EIT, ETT, and RRT parsing, plus ATSC descriptor support and UI summaries for PSIP-driven program/channel information.

Highlights:

  • Add ATSC PSIP table model under psi/atsc
  • Add ATSC descriptors including service location, extended channel name, caption service, content advisory, AC-3/E-AC-3, genre, and related descriptors
  • Link VCT, PAT, and PMT information for ATSC channel/program summaries
  • Add ATSC EIT/ETT timeline/grid style guide views while preserving DVB EIT behavior
  • Add MGT/STT summary views
  • Add ATSC parser tests and sample-section coverage

DVB compatibility notes

The existing DVB behavior is kept as the primary path:

  • DVB service names still come from SDT first
  • ATSC VCT names are only used as fallback
  • EIT View uses DVB EIT data first and falls back to ATSC EIT only when DVB EIT data is absent
  • ATSC private audio handling is limited to streams where PSIP is present

Validation

  • mvn test passes: 71 tests, 0 failures, 0 errors
  • mvn -Dmaven.test.skip=true package passes
  • git diff --check upstream/master...HEAD passes

@znbsf
znbsf marked this pull request as ready for review May 31, 2026 06:00
@znbsf

znbsf commented May 31, 2026

Copy link
Copy Markdown
Author

A few compatibility notes for review:

  • Existing DVB behavior should remain the primary path. DVB service names are still resolved from SDT first; ATSC VCT names are only used as a fallback.
  • The EIT View keeps using the existing DVB EIT data when present. It only falls back to ATSC EIT/PSIP data when no DVB EIT events are available.
  • ATSC private descriptors are only selected for ATSC PSIP table ids, so regular DVB private descriptor handling should not be affected.
  • ATSC private audio stream handlers for stream types such as 0x81/0x87 are limited to streams where PSIP tables are present.
  • The VCT/PAT/PMT linkage is used to improve ATSC channel/program labels and summaries without changing DVB SDT-first naming.

Local validation:

  • mvn test passes: 71 tests, 0 failures, 0 errors.
  • mvn -Dmaven.test.skip=true package passes.
  • git diff --check upstream/master...HEAD passes.

The added ATSC tests cover STT, MGT, TVCT/CVCT, EIT, ETT, RRT, ATSC descriptors, version/section handling, channel/event ETT separation, and the ATSC Programs / Channels summary model.

@EricBerendsen

Copy link
Copy Markdown
Owner

Thank you very much for this impressive PR. I don't have a lot of time right now, so it might take some time for me to review it. Looks like e very useful addition.

@znbsf

znbsf commented Jun 1, 2026

Copy link
Copy Markdown
Author

Thank you! No rush at all. I appreciate you taking a look, and I’ll be happy to address any review comments whenever you get to it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants