summaryrefslogtreecommitdiff
path: root/drivers/media/dvb-core/dvb_demux.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/dvb-core/dvb_demux.h')
-rw-r--r--drivers/media/dvb-core/dvb_demux.h50
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 {