Lines Matching refs:feed
425 struct dmx_ts_feed *feed, in dvb_dmxdev_ts_callback() argument
428 struct dmxdev_filter *dmxdevfilter = feed->priv; in dvb_dmxdev_ts_callback()
481 struct dmxdev_feed *feed; in dvb_dmxdev_feed_stop() local
488 dmxdevfilter->feed.sec->stop_filtering(dmxdevfilter->feed.sec); in dvb_dmxdev_feed_stop()
491 list_for_each_entry(feed, &dmxdevfilter->feed.ts, next) in dvb_dmxdev_feed_stop()
492 feed->ts->stop_filtering(feed->ts); in dvb_dmxdev_feed_stop()
503 struct dmxdev_feed *feed; in dvb_dmxdev_feed_start() local
510 return filter->feed.sec->start_filtering(filter->feed.sec); in dvb_dmxdev_feed_start()
512 list_for_each_entry(feed, &filter->feed.ts, next) { in dvb_dmxdev_feed_start()
513 ret = feed->ts->start_filtering(feed->ts); in dvb_dmxdev_feed_start()
544 filter->feed.sec); in dvb_dmxdev_feed_restart()
551 struct dmxdev_feed *feed; in dvb_dmxdev_filter_stop() local
559 if (!dmxdevfilter->feed.sec) in dvb_dmxdev_filter_stop()
563 dmxdevfilter->feed.sec-> in dvb_dmxdev_filter_stop()
564 release_filter(dmxdevfilter->feed.sec, in dvb_dmxdev_filter_stop()
567 dmxdevfilter->feed.sec = NULL; in dvb_dmxdev_filter_stop()
572 list_for_each_entry(feed, &dmxdevfilter->feed.ts, next) { in dvb_dmxdev_filter_stop()
573 demux->release_ts_feed(demux, feed->ts); in dvb_dmxdev_filter_stop()
574 feed->ts = NULL; in dvb_dmxdev_filter_stop()
589 struct dmxdev_feed *feed, *tmp; in dvb_dmxdev_delete_pids() local
592 list_for_each_entry_safe(feed, tmp, &dmxdevfilter->feed.ts, next) { in dvb_dmxdev_delete_pids()
593 list_del(&feed->next); in dvb_dmxdev_delete_pids()
594 kfree(feed); in dvb_dmxdev_delete_pids()
597 BUG_ON(!list_empty(&dmxdevfilter->feed.ts)); in dvb_dmxdev_delete_pids()
615 struct dmxdev_feed *feed) in dvb_dmxdev_start_feed() argument
625 feed->ts = NULL; in dvb_dmxdev_start_feed()
642 ret = dmxdev->demux->allocate_ts_feed(dmxdev->demux, &feed->ts, in dvb_dmxdev_start_feed()
647 tsfeed = feed->ts; in dvb_dmxdev_start_feed()
650 ret = tsfeed->set(tsfeed, feed->pid, ts_type, ts_pes, timeout); in dvb_dmxdev_start_feed()
668 struct dmxdev_feed *feed; in dvb_dmxdev_filter_start() local
694 struct dmx_section_feed **secfeed = &filter->feed.sec; in dvb_dmxdev_filter_start()
705 *secfeed = dmxdev->filter[i].feed.sec; in dvb_dmxdev_filter_start()
758 ret = filter->feed.sec->start_filtering(filter->feed.sec); in dvb_dmxdev_filter_start()
766 list_for_each_entry(feed, &filter->feed.ts, next) { in dvb_dmxdev_filter_start()
767 ret = dvb_dmxdev_start_feed(dmxdev, filter, feed); in dvb_dmxdev_filter_start()
884 struct dmxdev_feed *feed; in dvb_dmxdev_add_pid() local
892 (!list_empty(&filter->feed.ts))) in dvb_dmxdev_add_pid()
895 feed = kzalloc_obj(struct dmxdev_feed); in dvb_dmxdev_add_pid()
896 if (feed == NULL) in dvb_dmxdev_add_pid()
899 feed->pid = pid; in dvb_dmxdev_add_pid()
900 list_add(&feed->next, &filter->feed.ts); in dvb_dmxdev_add_pid()
903 return dvb_dmxdev_start_feed(dmxdev, filter, feed); in dvb_dmxdev_add_pid()
911 struct dmxdev_feed *feed, *tmp; in dvb_dmxdev_remove_pid() local
917 list_for_each_entry_safe(feed, tmp, &filter->feed.ts, next) { in dvb_dmxdev_remove_pid()
918 if ((feed->pid == pid) && (feed->ts != NULL)) { in dvb_dmxdev_remove_pid()
919 feed->ts->stop_filtering(feed->ts); in dvb_dmxdev_remove_pid()
921 feed->ts); in dvb_dmxdev_remove_pid()
922 list_del(&feed->next); in dvb_dmxdev_remove_pid()
923 kfree(feed); in dvb_dmxdev_remove_pid()
966 INIT_LIST_HEAD(&dmxdevfilter->feed.ts); in dvb_dmxdev_pes_filter_set()