Lines Matching defs:feed
424 struct dmx_ts_feed *feed,
427 struct dmxdev_filter *dmxdevfilter = feed->priv;
477 /* stop feed but only mark the specified filter as stopped (state set) */
480 struct dmxdev_feed *feed;
487 dmxdevfilter->feed.sec->stop_filtering(dmxdevfilter->feed.sec);
490 list_for_each_entry(feed, &dmxdevfilter->feed.ts, next)
491 feed->ts->stop_filtering(feed->ts);
499 /* start feed associated with the specified filter */
502 struct dmxdev_feed *feed;
509 return filter->feed.sec->start_filtering(filter->feed.sec);
511 list_for_each_entry(feed, &filter->feed.ts, next) {
512 ret = feed->ts->start_filtering(feed->ts);
526 /* restart section feed if it has filters left associated with it,
527 otherwise release the feed */
543 filter->feed.sec);
550 struct dmxdev_feed *feed;
558 if (!dmxdevfilter->feed.sec)
562 dmxdevfilter->feed.sec->
563 release_filter(dmxdevfilter->feed.sec,
566 dmxdevfilter->feed.sec = NULL;
571 list_for_each_entry(feed, &dmxdevfilter->feed.ts, next) {
572 demux->release_ts_feed(demux, feed->ts);
573 feed->ts = NULL;
588 struct dmxdev_feed *feed, *tmp;
591 list_for_each_entry_safe(feed, tmp, &dmxdevfilter->feed.ts, next) {
592 list_del(&feed->next);
593 kfree(feed);
596 BUG_ON(!list_empty(&dmxdevfilter->feed.ts));
614 struct dmxdev_feed *feed)
624 feed->ts = NULL;
641 ret = dmxdev->demux->allocate_ts_feed(dmxdev->demux, &feed->ts,
646 tsfeed = feed->ts;
649 ret = tsfeed->set(tsfeed, feed->pid, ts_type, ts_pes, timeout);
667 struct dmxdev_feed *feed;
693 struct dmx_section_feed **secfeed = &filter->feed.sec;
699 /* find active filter/feed with same PID */
704 *secfeed = dmxdev->filter[i].feed.sec;
709 /* if no feed found, try to allocate new one */
715 pr_err("DVB (%s): could not alloc feed\n",
723 pr_err("DVB (%s): could not set feed\n",
757 ret = filter->feed.sec->start_filtering(filter->feed.sec);
765 list_for_each_entry(feed, &filter->feed.ts, next) {
766 ret = dvb_dmxdev_start_feed(dmxdev, filter, feed);
871 struct dmxdev_feed *feed;
879 (!list_empty(&filter->feed.ts)))
882 feed = kzalloc(sizeof(struct dmxdev_feed), GFP_KERNEL);
883 if (feed == NULL)
886 feed->pid = pid;
887 list_add(&feed->next, &filter->feed.ts);
890 return dvb_dmxdev_start_feed(dmxdev, filter, feed);
898 struct dmxdev_feed *feed, *tmp;
904 list_for_each_entry_safe(feed, tmp, &filter->feed.ts, next) {
905 if ((feed->pid == pid) && (feed->ts != NULL)) {
906 feed->ts->stop_filtering(feed->ts);
908 feed->ts);
909 list_del(&feed->next);
910 kfree(feed);
953 INIT_LIST_HEAD(&dmxdevfilter->feed.ts);