STRUCT DVB_DEMUX_FEED(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 either feed.ts or feed.sec. pick your fighter. ✨
  • feed.ts β€” a struct dmx_ts_feed pointer. TS feed only, so don't come for it if you're on section duty.
  • feed.sec β€” a struct dmx_section_feed pointer. 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 either cb.ts or cb.sec. twin icons fr fr.
  • cb.ts β€” a dmx_ts_cb callback function pointer. for TS feed only. πŸ’«
  • cb.sec β€” a dmx_section_cb callback function pointer. for section feed only. no crossover episodes.

the rest of the cast πŸ’…

  • demux β€” pointer to struct 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 by enum dvb_dmx_filter_type.
  • state β€” state of the filter as defined by enum 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 to struct dvb_demux_filter.
  • buffer_flags β€” buffer flags used to report discontinuity users via the DVB memory mapped API, as defined by enum dmx_buffer_flags. say that five times fast, i dare you.
  • ts_type β€” type of TS, as defined by enum ts_filter_type.
  • pes_type β€” type of PES, as defined by enum 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:


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