diff options
author | Holger Waechtler <devnull@localhost> | 2002-10-21 16:46:51 +0000 |
---|---|---|
committer | Holger Waechtler <devnull@localhost> | 2002-10-21 16:46:51 +0000 |
commit | eef421e2b6b5f49df7ac5a1ecc7596d31b8578aa (patch) | |
tree | 525b27917d5e9c9a72ecd7caa5286087bbfbfa16 /linux/drivers/media/dvb | |
parent | 237e3bcd7bccd782cae45ae1cc20a5b5afd9518f (diff) | |
download | mediapointer-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.c | 23 |
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: |