From 4e220ae1186c44da895a774e6c3eee11064f98f4 Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Sat, 30 Apr 2005 17:56:56 +0000 Subject: [PATCH] - fixed bogus channel sharing --- lib/dvb/dvb.cpp | 5 ++++- lib/dvb/idvb.h | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp index 9a355615..d4cc462c 100644 --- a/lib/dvb/dvb.cpp +++ b/lib/dvb/dvb.cpp @@ -232,10 +232,13 @@ RESULT eDVBResourceManager::allocateChannel(const eDVBChannelID &channelid, ePtr { /* first, check if a channel is already existing. */ - for (std::list::iterator i(m_active_channels.begin()); i != m_active_channels.end();) +// eDebug("allocate channel.. %04x:%04x", channelid.transport_stream_id.get(), channelid.original_network_id.get()); + for (std::list::iterator i(m_active_channels.begin()); i != m_active_channels.end(); ++i) { +// eDebug("available channel.. %04x:%04x", i->m_channel_id.transport_stream_id.get(), i->m_channel_id.original_network_id.get()); if (i->m_channel_id == channelid) { +// eDebug("found shared channel.."); channel = i->m_channel; return 0; } diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index 1ee92837..0dc5ce57 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -77,6 +77,14 @@ struct eDVBChannelID eDVBNamespace dvbnamespace; eTransportStreamID transport_stream_id; eOriginalNetworkID original_network_id; + + bool operator==(const eDVBChannelID &c) const + { + return dvbnamespace == c.dvbnamespace && + transport_stream_id == c.transport_stream_id && + original_network_id == c.original_network_id; + } + bool operator<(const eDVBChannelID &c) const { if (dvbnamespace < c.dvbnamespace) @@ -417,12 +425,14 @@ public: }; class iDVBSectionReader; +class iDVBTSRecorder; class iTSMPEGDecoder; class iDVBDemux: public iObject { public: virtual RESULT createSectionReader(eMainloop *context, ePtr &reader)=0; + virtual RESULT createTSRecorder(ePtr &recorder)=0; virtual RESULT getMPEGDecoder(ePtr &reader)=0; }; -- 2.30.2