static int mpq_tspp_dmx_start_filtering(struct dvb_demux_feed *feed) { int ret; struct mpq_demux *mpq_demux = feed->demux->priv; MPQ_DVB_DBG_PRINT( "%s(pid=%d) executed\n", __func__, feed->pid); if (mpq_demux == NULL) { MPQ_DVB_ERR_PRINT( "%s: invalid mpq_demux handle\n", __func__); return -EINVAL; } if (mpq_demux->source < DMX_SOURCE_DVR0) { /* source from TSPP, need to configure tspp pipe */ ret = mpq_tspp_dmx_add_channel(feed); if (ret < 0) { MPQ_DVB_DBG_PRINT( "%s: mpq_tspp_dmx_add_channel failed(%d)\n", __func__, ret); return ret; } } /* * Always feed sections/PES starting from a new one and * do not partial transfer data from older one */ feed->pusi_seen = 0; ret = mpq_dmx_init_mpq_feed(feed); if (ret) { MPQ_DVB_ERR_PRINT( "%s: mpq_dmx_init_mpq_feed failed(%d)\n", __func__, ret); if (mpq_demux->source < DMX_SOURCE_DVR0) mpq_tspp_dmx_remove_channel(feed); return ret; } return 0; }
static int mpq_tspp_dmx_start_filtering(struct dvb_demux_feed *feed) { int ret; struct mpq_demux *mpq_demux = feed->demux->priv; MPQ_DVB_DBG_PRINT( "%s(pid=%d) executed\n", __func__, feed->pid); if (mpq_demux == NULL) { MPQ_DVB_ERR_PRINT( "%s: invalid mpq_demux handle\n", __func__); return -EINVAL; } if (mpq_demux->source < DMX_SOURCE_DVR0) { ret = mpq_tspp_dmx_add_channel(feed); if (ret < 0) { MPQ_DVB_DBG_PRINT( "%s: mpq_tspp_dmx_add_channel failed(%d)\n", __func__, ret); return ret; } } feed->pusi_seen = 0; ret = mpq_dmx_init_mpq_feed(feed); if (ret) { MPQ_DVB_ERR_PRINT( "%s: mpq_dmx_init_mpq_feed failed(%d)\n", __func__, ret); if (mpq_demux->source < DMX_SOURCE_DVR0) mpq_tspp_dmx_remove_channel(feed); return ret; } return 0; }