aboutsummaryrefslogtreecommitdiff
path: root/drivers/media/dvb/dvb-core/dmxdev.h
diff options
context:
space:
mode:
authorAndreas Oberritter <obi@linuxtv.org>2009-07-14 20:28:50 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-09-12 12:17:43 -0300
commit1cb662a3144992259edfd3cf9f54a6b25a913a0f (patch)
treedc3336680a9a3a143bac1056aae51315c3cec68f /drivers/media/dvb/dvb-core/dmxdev.h
parenta98f6af96ec5b22453054b36eaa325ebf20ea429 (diff)
V4L/DVB (12275): Add two new ioctls: DMX_ADD_PID and DMX_REMOVE_PID
DMX_ADD_PID allows to add multiple PIDs to a transport stream filter previously set up with DMX_SET_PES_FILTER and output=DMX_OUT_TSDEMUX_TAP. DMX_REMOVE_PID is used to drop a PID from a filter. These ioctls are to be used by readers of /dev/dvb/adapterX/demuxY. They may be called at any time, i.e. before or after the first filter on the shared file descriptor was started. They make it possible to record multiple services without the need to de- or re-multiplex TS packets. To accomplish this, dmxdev_filter->feed.ts has been converted to a list of struct dmxdev_feeds, each containing a PID value and a pointer to a struct dmx_ts_feed. Signed-off-by: Andreas Oberritter <obi@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/dvb-core/dmxdev.h')
-rw-r--r--drivers/media/dvb/dvb-core/dmxdev.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/media/dvb/dvb-core/dmxdev.h b/drivers/media/dvb/dvb-core/dmxdev.h
index 29746e70d32..c1379b56dfb 100644
--- a/drivers/media/dvb/dvb-core/dmxdev.h
+++ b/drivers/media/dvb/dvb-core/dmxdev.h
@@ -53,13 +53,20 @@ enum dmxdev_state {
DMXDEV_STATE_TIMEDOUT
};
+struct dmxdev_feed {
+ u16 pid;
+ struct dmx_ts_feed *ts;
+ struct list_head next;
+};
+
struct dmxdev_filter {
union {
struct dmx_section_filter *sec;
} filter;
union {
- struct dmx_ts_feed *ts;
+ /* list of TS and PES feeds (struct dmxdev_feed) */
+ struct list_head ts;
struct dmx_section_feed *sec;
} feed;