diff options
Diffstat (limited to 'drivers/media/dvb-core/dvb_demux.h')
-rw-r--r-- | drivers/media/dvb-core/dvb_demux.h | 50 |
1 files changed, 48 insertions, 2 deletions
diff --git a/drivers/media/dvb-core/dvb_demux.h b/drivers/media/dvb-core/dvb_demux.h index c9e94bc3a2e5..08cc86247f08 100644 --- a/drivers/media/dvb-core/dvb_demux.h +++ b/drivers/media/dvb-core/dvb_demux.h @@ -60,6 +60,21 @@ enum dvb_dmx_state { #define SPEED_PKTS_INTERVAL 50000 +/** + * struct dvb_demux_filter - Describes a DVB demux section filter. + * + * @filter: Section filter as defined by &struct dmx_section_filter. + * @maskandmode: logical ``and`` bit mask. + * @maskandnotmode: logical ``and not`` bit mask. + * @doneq: flag that indicates when a filter is ready. + * @next: pointer to the next section filter. + * @feed: &struct dvb_demux_feed pointer. + * @index: index of the used demux filter. + * @state: state of the filter as described by &enum dvb_dmx_state. + * @type: type of the filter as described + * by &enum dvb_dmx_filter_type. + */ + struct dvb_demux_filter { struct dmx_section_filter filter; u8 maskandmode[DMX_MAX_FILTER_SIZE]; @@ -72,9 +87,40 @@ struct dvb_demux_filter { enum dvb_dmx_state state; enum dvb_dmx_filter_type type; + /* private: used only by av7110 */ u16 hw_handle; }; +/** + * struct dvb_demux_feed - describes a DVB field + * + * @feed: a digital TV feed. It can either be a TS or a section feed: + * - if the feed is TS, it contains &struct dvb_ts_feed; + * - if the feed is section, it contains + * &struct dmx_section_feed. + * @cb: digital TV callbacks. depending on the feed type, it can be: + * - if the feed is TS, it contains a dmx_ts_cb() callback; + * - if the feed is section, it contains a dmx_section_cb() + * callback. + * + * @demux: pointer to &struct dvb_demux. + * @priv: private data for the filter handling routine. + * @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. + * @pid: PID to be filtered. + * @timeout: feed timeout. + * @filter: pointer to &struct dvb_demux_filter. + * @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 + * @pusi_seen: if true, indicates that a discontinuity was detected. + * it is used to prevent feeding of garbage from previous section. + * @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 hardware + * pid filter index. + * + */ struct dvb_demux_feed { union { struct dmx_ts_feed ts; @@ -99,12 +145,12 @@ struct dvb_demux_feed { enum dmx_ts_pes pes_type; int cc; - bool pusi_seen; /* prevents feeding of garbage from previous section */ + bool pusi_seen; u16 peslen; struct list_head list_head; - unsigned int index; /* a unique index for each feed (can be used as hardware pid filter index) */ + unsigned int index; }; struct dvb_demux { |