STRUCT VIDTV_CHANNEL(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct vidtv_channel(9) ✨

okay bestie, welcome to the struct vidtv_channel page from the Kernel API Manual πŸ’… this one's literally a 'channel' abstraction, and it's giving main character energy for the vidtv driver. let's get into it 🫢


🌸 SYNOPSIS 🌸

struct vidtv_channel {
    char *name;
    u16 transport_stream_id;
    struct vidtv_psi_table_sdt_service *service;
    u16 program_num;
    struct vidtv_psi_table_pat_program *program;
    struct vidtv_psi_table_pmt_stream *streams;
    struct vidtv_encoder *encoders;
    struct vidtv_psi_table_eit_event *events;
    struct vidtv_channel *next;
 };

πŸŽ€ Members πŸŽ€

  • name β€” the name of the channel, bestie. it's literally what it says πŸ’–
  • transport_stream_id β€” a number to identify the TS, chosen at will. no cap, you just pick it ✨
  • service β€” A _single_ service. Will be concatenated into the SDT. just one, okay? one service, no more πŸ™ˆ
  • program_num β€” The link between PAT, PMT and SDT. it's the glue holding this whole friend group together πŸ”₯
  • program β€” A _single_ program with one or more streams associated with it. Will be concatenated into the PAT. again with the singularity β€” one program, iconically πŸ’…
  • streams β€” A stream loop used to populate the PMT section for program. it's the stream loop, doing stream loop things πŸ¦‹
  • encoders β€” A encoder loop. There must be one encoder for each stream. periodt β€” one encoder per stream, no skipping πŸ’€
  • events β€” Optional event information. This will feed into the EIT. optional, so you can ghost this one if you want πŸ‘‘
  • next β€” Optionally chain this channel. chain them like a little charm bracelet πŸŽ€

🌈 Description 🌈

When vidtv boots, it will create some hardcoded channels. Their services will be concatenated to populate the SDT. Their programs will be concatenated to populate the PAT. For each program in the PAT, a PMT section will be created. The PMT section for a channel will be assigned its streams. Every stream will have its corresponding encoder polled to produce TS packets. These packets may be interleaved by the mux and then delivered to the bridge. like... the whole pipeline ate and left no crumbs πŸ”₯✨

so basically: boot β†’ hardcoded channels β†’ SDT gets the services β†’ PAT gets the programs β†’ PMT per program β†’ streams get assigned β†’ encoders polled β†’ TS packets β†’ mux may interleave β†’ bridge. it's a whole journey, fr fr 🧚


πŸ¦‹ SEE ALSO πŸ¦‹


ngl this struct is short but she's doing a LOT of work behind the scenes πŸ’œ go read those other two functions if you wanna see the rest of the lore, iykyk

okay that's the page bestie!! 🌸 from that <green>./drivers/media/test-drivers/v... source file, October 2026 edition β€” signed, sealed, and slayed by the Kernel API Manual πŸ’…πŸ’–πŸŽ€

πŸ“¦ where this page comes from