STRUCT DVB_DEMUX_FEED(9)
π struct dvb_demux_feed(9) β like, the whole Kernel API Manual, but make it make sense π
okay so bestie, welcome to the glow-up of struct dvb_demux_feed(9) β it's a kernel API manual page, and today we're learning what this little struct actually is. no cap, it's genuinely iconic. π¦
β¨ NAME β¨
struct dvb_demux_feed β literally describes a DVB field. that's the whole vibe. πΈ
π SYNOPSIS π
here's the struct in all its main-character glory, copied exactly, do not touch:
struct dvb_demux_feed {
union {
struct dmx_ts_feed ts;
struct dmx_section_feed sec;
} feed;
union {
dmx_ts_cb ts;
dmx_section_cb sec;
} cb;
struct dvb_demux *demux;
void *priv;
enum dvb_dmx_filter_type type;
enum dvb_dmx_state state;
u16 pid;
ktime_t timeout;
struct dvb_demux_filter *filter;
u32 buffer_flags;
enum ts_filter_type ts_type;
enum dmx_ts_pes pes_type;
int cc;
bool pusi_seen;
u16 peslen;
struct list_head list_head;
unsigned int index;
};
like, look at those nested unions. the way that it's giving "two personalities, one struct." obsessed. π
π Members π
the feed union π
feedβ a union describing a digital TV feed bestie. depending on the feed type, it can be eitherfeed.tsorfeed.sec. pick your fighter. β¨feed.tsβ astruct dmx_ts_feedpointer. TS feed only, so don't come for it if you're on section duty.feed.secβ astruct dmx_section_feedpointer. section feed only β the other half of the union, slay.
the cb union π
cbβ a union describing digital TV callbacks. depending on the feed type, it can be eithercb.tsorcb.sec. twin icons fr fr.cb.tsβ admx_ts_cbcallback function pointer. for TS feed only. π«cb.secβ admx_section_cbcallback function pointer. for section feed only. no crossover episodes.
the rest of the cast π
demuxβ pointer tostruct dvb_demux. the main character it answers to.privβ private data that can optionally be used by a DVB driver. it's giving "personal diary, do not read." πtypeβ type of the filter, as defined byenum dvb_dmx_filter_type.stateβ state of the filter as defined byenum dvb_dmx_state. vibe check, but official.pidβ PID to be filtered. the actual thing you're stalking. π₯timeoutβ feed timeout. clock is ticking bestie. βfilterβ pointer tostruct dvb_demux_filter.buffer_flagsβ buffer flags used to report discontinuity users via the DVB memory mapped API, as defined byenum dmx_buffer_flags. say that five times fast, i dare you.ts_typeβ type of TS, as defined byenum ts_filter_type.pes_typeβ type of PES, as defined byenum dmx_ts_pes.ccβ MPEG-TS packet continuity counter. it's counting, that's its whole job, and it ate. πpusi_seenβ if true, indicates that a discontinuity was detected. it is used to prevent feeding of garbage from the previous section. ποΈ lowkey a hero for that.peslenβ length of the PES (Packet Elementary Stream).list_headβ head for the list of digital TV demux feeds.indexβ a unique index for each feed. can be used as a hardware pid filter index. every feed gets its own little name tag π·οΈβ¨
π«Ά SEE ALSO π«Ά
go read these next, they're all in the kernel file ./include/media/dvb_demux.h:
enum dvb_dmx_filter_type(9)enum dvb_dmx_state(9)struct dvb_demux_filter(9)struct dvb_demux(9)dvb_dmx_init(9)dvb_dmx_release(9)dvb_dmx_swfilter_packets(9)dvb_dmx_swfilter(9)dvb_dmx_swfilter_204(9)dvb_dmx_swfilter_raw(9)
ngl bestie, this whole page lives in ./include/media, and it's dated October 2026 β so it's a little time traveler. π
and that's the tea on struct dvb_demux_feed(9) β you ate, you understood, periodt. ππ¦π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms