aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/dvb-core/dmxdev.c
diff options
context:
space:
mode:
authorAndreas Oberritter <obi@linuxtv.org>2008-04-22 14:45:47 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-04-24 14:07:48 -0300
commit4a24ce3a17ee713056db0a24cf558bd595211302 (patch)
tree0eeb14ce7a66a1c6a34fb353f3c7f1a63d9230d3 /drivers/media/dvb/dvb-core/dmxdev.c
parenta9317abfba0850b006aed000e2acc4bee150410a (diff)
downloadkernel_samsung_smdk4412-4a24ce3a17ee713056db0a24cf558bd595211302.zip
kernel_samsung_smdk4412-4a24ce3a17ee713056db0a24cf558bd595211302.tar.gz
kernel_samsung_smdk4412-4a24ce3a17ee713056db0a24cf558bd595211302.tar.bz2
V4L/DVB (7329): add flag to allow software demux to recognize the output type
Previously, the macro DVR_FEED, which is used to recognize and filter out duplicate packets going to the DVR device, used the TS_PAYLOAD_ONLY flag to identify a packet's destination. This kind of filtering was introduced by the following two changesets: Now, that it is possible to record TS PIDs using the demux device by setting the output type to DMX_OUT_TSDEMUX_TAP, checking TS_PAYLOAD_ONLY is not sufficient anymore. Therefore another flag, TS_DEMUX, is added to specify the output type of a feed. This allows multiple clients to filter the same TS PID on a demux device simultaneously. Signed-off-by: Andreas Oberritter <obi@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/dvb/dvb-core/dmxdev.c')
-rw-r--r--drivers/media/dvb/dvb-core/dmxdev.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/media/dvb/dvb-core/dmxdev.c b/drivers/media/dvb/dvb-core/dmxdev.c
index e7f7aef..716735f 100644
--- a/drivers/media/dvb/dvb-core/dmxdev.c
+++ b/drivers/media/dvb/dvb-core/dmxdev.c
@@ -619,11 +619,12 @@ static int dvb_dmxdev_filter_start(struct dmxdev_filter *filter)
else
ts_type = 0;
- if (otype == DMX_OUT_TS_TAP || otype == DMX_OUT_TSDEMUX_TAP)
+ if (otype == DMX_OUT_TS_TAP)
ts_type |= TS_PACKET;
-
- if (otype == DMX_OUT_TAP)
- ts_type |= TS_PAYLOAD_ONLY | TS_PACKET;
+ else if (otype == DMX_OUT_TSDEMUX_TAP)
+ ts_type |= TS_PACKET | TS_DEMUX;
+ else if (otype == DMX_OUT_TAP)
+ ts_type |= TS_PACKET | TS_DEMUX | TS_PAYLOAD_ONLY;
ret = dmxdev->demux->allocate_ts_feed(dmxdev->demux,
tsfeed,