Index: TVLibrary/Implementations/DVB/Graphs/DVBIP/TvCardDVBIP.cs =================================================================== --- TVLibrary/Implementations/DVB/Graphs/DVBIP/TvCardDVBIP.cs (revision 26819) +++ TVLibrary/Implementations/DVB/Graphs/DVBIP/TvCardDVBIP.cs (working copy) @@ -141,15 +141,37 @@ if (!CheckThreadId()) return null; return new DVBIPScanning(this); } + } + + /// + /// Scans the specified channel. + /// + /// The sub channel id + /// The channel. + /// + public override ITvSubChannel Scan(int subChannelId, IChannel channel) + { + return DoTune(subChannelId, channel, true); } /// + /// Tunes the specified channel. + /// + /// The sub channel id + /// The channel. + /// + public override ITvSubChannel Tune(int subChannelId, IChannel channel) + { + return DoTune(subChannelId, channel, false); + } + + /// /// Tune to channel /// /// /// /// - public ITvSubChannel Tune(int subChannelId, IChannel channel) + private ITvSubChannel DoTune(int subChannelId, IChannel channel, bool ignorePMT) { Log.Log.WriteFile("dvbip: Tune:{0}", channel); ITvSubChannel ch = null; @@ -214,7 +236,19 @@ ch = _mapSubChannels[subChannelId]; Log.Log.Info("dvbip: tune: Running graph for channel {0}", ch.ToString()); Log.Log.Info("dvbip: tune: SubChannel {0}", ch.SubChannelId); - RunGraph(ch.SubChannelId, dvbipChannel.Url); + + try + { + RunGraph(ch.SubChannelId, dvbipChannel.Url); + } + catch (TvExceptionNoPMT) + { + if (!ignorePMT) + { + throw; + } + } + Log.Log.Info("dvbip: tune: Graph running. Returning {0}", ch.ToString()); return ch; }