summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb
diff options
context:
space:
mode:
authorHolger Waechtler <devnull@localhost>2002-10-21 16:46:51 +0000
committerHolger Waechtler <devnull@localhost>2002-10-21 16:46:51 +0000
commiteef421e2b6b5f49df7ac5a1ecc7596d31b8578aa (patch)
tree525b27917d5e9c9a72ecd7caa5286087bbfbfa16 /linux/drivers/media/dvb
parent237e3bcd7bccd782cae45ae1cc20a5b5afd9518f (diff)
downloadmediapointer-dvb-s2-eef421e2b6b5f49df7ac5a1ecc7596d31b8578aa.tar.gz
mediapointer-dvb-s2-eef421e2b6b5f49df7ac5a1ecc7596d31b8578aa.tar.bz2
reset ringbuffer in dmx_dev_filter_start()
Diffstat (limited to 'linux/drivers/media/dvb')
-rw-r--r--linux/drivers/media/dvb/dvb-core/dmxdev.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/linux/drivers/media/dvb/dvb-core/dmxdev.c b/linux/drivers/media/dvb/dvb-core/dmxdev.c
index 377e72bf1..4fd88123b 100644
--- a/linux/drivers/media/dvb/dvb-core/dmxdev.c
+++ b/linux/drivers/media/dvb/dvb-core/dmxdev.c
@@ -567,6 +567,8 @@ dvb_dmxdev_filter_start(dmxdev_filter_t *dmxdevfilter)
return -ENOMEM;
}
+ dmxdevfilter->buffer.pwrite=dmxdevfilter->buffer.pread=0;
+
switch (dmxdevfilter->type) {
case DMXDEV_TYPE_SEC:
{
@@ -589,10 +591,9 @@ dvb_dmxdev_filter_start(dmxdev_filter_t *dmxdevfilter)
/* if no feed found, try to allocate new one */
if (!*secfeed) {
- ret=dmxdev->demux->
- allocate_section_feed(dmxdev->demux,
- secfeed,
- dvb_dmxdev_section_callback);
+ ret=dmxdev->demux->allocate_section_feed(dmxdev->demux,
+ secfeed,
+ dvb_dmxdev_section_callback);
if (ret<0) {
printk ("DVB (%s): could not alloc feed\n",
__FUNCTION__);
@@ -615,8 +616,7 @@ dvb_dmxdev_filter_start(dmxdev_filter_t *dmxdevfilter)
ret=(*secfeed)->allocate_filter(*secfeed, secfilter);
if (ret<0) {
dvb_dmxdev_feed_restart(dmxdevfilter);
- dmxdevfilter->feed.sec->
- start_filtering(*secfeed);
+ dmxdevfilter->feed.sec->start_filtering(*secfeed);
dprintk ("could not get filter\n");
return ret;
}
@@ -637,15 +637,14 @@ dvb_dmxdev_filter_start(dmxdev_filter_t *dmxdevfilter)
(*secfilter)->filter_mask[2]=0;
dmxdevfilter->todo=0;
- dmxdevfilter->feed.sec->
- start_filtering(dmxdevfilter->feed.sec);
+ dmxdevfilter->feed.sec->start_filtering(dmxdevfilter->feed.sec);
dvb_dmxdev_filter_timer(dmxdevfilter);
break;
}
case DMXDEV_TYPE_PES:
{
- struct timespec timeout = {0 };
+ struct timespec timeout = { 0 };
struct dmx_pes_filter_params *para=&dmxdevfilter->params.pes;
dmx_output_t otype;
int ret;
@@ -678,12 +677,10 @@ dvb_dmxdev_filter_start(dmxdev_filter_t *dmxdevfilter)
(*tsfeed)->priv=(void *) dmxdevfilter;
ret=(*tsfeed)->set(*tsfeed, para->pid, ts_type, ts_pes, 188, 32768, 0, timeout);
if (ret<0) {
- dmxdev->demux->
- release_ts_feed(dmxdev->demux, *tsfeed);
+ dmxdev->demux->release_ts_feed(dmxdev->demux, *tsfeed);
return ret;
}
- dmxdevfilter->feed.ts->
- start_filtering(dmxdevfilter->feed.ts);
+ dmxdevfilter->feed.ts->start_filtering(dmxdevfilter->feed.ts);
break;
}
default: