Lines Matching refs:feed

423 				  struct dmx_ts_feed *feed,
426 struct dmxdev_filter *dmxdevfilter = feed->priv;
476 /* stop feed but only mark the specified filter as stopped (state set) */
479 struct dmxdev_feed *feed;
486 dmxdevfilter->feed.sec->stop_filtering(dmxdevfilter->feed.sec);
489 list_for_each_entry(feed, &dmxdevfilter->feed.ts, next)
490 feed->ts->stop_filtering(feed->ts);
498 /* start feed associated with the specified filter */
501 struct dmxdev_feed *feed;
508 return filter->feed.sec->start_filtering(filter->feed.sec);
510 list_for_each_entry(feed, &filter->feed.ts, next) {
511 ret = feed->ts->start_filtering(feed->ts);
525 /* restart section feed if it has filters left associated with it,
526 otherwise release the feed */
542 filter->feed.sec);
549 struct dmxdev_feed *feed;
557 if (!dmxdevfilter->feed.sec)
561 dmxdevfilter->feed.sec->
562 release_filter(dmxdevfilter->feed.sec,
565 dmxdevfilter->feed.sec = NULL;
570 list_for_each_entry(feed, &dmxdevfilter->feed.ts, next) {
571 demux->release_ts_feed(demux, feed->ts);
572 feed->ts = NULL;
587 struct dmxdev_feed *feed, *tmp;
590 list_for_each_entry_safe(feed, tmp, &dmxdevfilter->feed.ts, next) {
591 list_del(&feed->next);
592 kfree(feed);
595 BUG_ON(!list_empty(&dmxdevfilter->feed.ts));
613 struct dmxdev_feed *feed)
623 feed->ts = NULL;
640 ret = dmxdev->demux->allocate_ts_feed(dmxdev->demux, &feed->ts,
645 tsfeed = feed->ts;
648 ret = tsfeed->set(tsfeed, feed->pid, ts_type, ts_pes, timeout);
666 struct dmxdev_feed *feed;
692 struct dmx_section_feed **secfeed = &filter->feed.sec;
698 /* find active filter/feed with same PID */
703 *secfeed = dmxdev->filter[i].feed.sec;
708 /* if no feed found, try to allocate new one */
714 pr_err("DVB (%s): could not alloc feed\n",
722 pr_err("DVB (%s): could not set feed\n",
734 filter->feed.sec->start_filtering(*secfeed);
756 ret = filter->feed.sec->start_filtering(filter->feed.sec);
764 list_for_each_entry(feed, &filter->feed.ts, next) {
765 ret = dvb_dmxdev_start_feed(dmxdev, filter, feed);
870 struct dmxdev_feed *feed;
878 (!list_empty(&filter->feed.ts)))
881 feed = kzalloc(sizeof(struct dmxdev_feed), GFP_KERNEL);
882 if (feed == NULL)
885 feed->pid = pid;
886 list_add(&feed->next, &filter->feed.ts);
889 return dvb_dmxdev_start_feed(dmxdev, filter, feed);
897 struct dmxdev_feed *feed, *tmp;
903 list_for_each_entry_safe(feed, tmp, &filter->feed.ts, next) {
904 if ((feed->pid == pid) && (feed->ts != NULL)) {
905 feed->ts->stop_filtering(feed->ts);
907 feed->ts);
908 list_del(&feed->next);
909 kfree(feed);
952 INIT_LIST_HEAD(&dmxdevfilter->feed.ts);