Premiere NVOD Channels fix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello @all,

Fix Premiere NVOD Channels.

Link for new Channels over TransponderID added.

diff -Nru vdr-1.4.7-org/channels.c vdr-1.4.7/channels.c
--- vdr-1.4.7-org/channels.c	2006-05-28 17:03:40.000000000 +0200
+++ vdr-1.4.7/channels.c	2007-07-04 21:28:36.000000000 +0200
@@ -1007,6 +1007,18 @@
      }
   return NULL;
 }
+cChannel *cChannels::GetByTransponderID(tChannelID ChannelID)
+{
+  int source = ChannelID.Source();
+  int nid = ChannelID.Nid(); // networkd
+  int tid = ChannelID.Tid(); // transponderId 
+ 
+     for (cChannel *channel = Channels.First(); channel; channel = Channels.Next(channel)) {
+        if (channel->Tid() == tid &&  channel->Nid() == nid && channel->Source() == source)
+           return channel;
+        }
+    return NULL;
+}
 
 bool cChannels::HasUniqueChannelID(cChannel *NewChannel, cChannel *OldChannel)
 {
diff -Nru vdr-1.4.7-org/channels.h vdr-1.4.7/channels.h
--- vdr-1.4.7-org/channels.h	2006-05-28 17:03:56.000000000 +0200
+++ vdr-1.4.7/channels.h	2007-07-04 21:29:24.000000000 +0200
@@ -238,6 +238,7 @@
   cChannel *GetByNumber(int Number, int SkipGap = 0);
   cChannel *GetByServiceID(int Source, int Transponder, unsigned short ServiceID);
   cChannel *GetByChannelID(tChannelID ChannelID, bool TryWithoutRid = false, bool TryWithoutPolarization = false);
+  cChannel *cChannels::GetByTransponderID(tChannelID ChannelID);
   int BeingEdited(void) { return beingEdited; }
   void IncBeingEdited(void) { beingEdited++; }
   void DecBeingEdited(void) { beingEdited--; }
diff -Nru vdr-1.4.7-org/eit.c vdr-1.4.7/eit.c
--- vdr-1.4.7-org/eit.c	2006-10-09 18:14:36.000000000 +0200
+++ vdr-1.4.7/eit.c	2007-07-04 21:27:20.000000000 +0200
@@ -196,7 +196,12 @@
                                 link->SetName(linkName, "", "");
                              }
                           else if (Setup.UpdateChannels >= 4) {
-                             link = Channels.NewChannel(channel, linkName, "", "", ld->getOriginalNetworkId(), ld->getTransportStreamId(), ld->getServiceId());
+                              if (channel->Tid() != ld->getTransportStreamId()) {
+                                 cChannel *transponder = Channels.GetByTransponderID(linkID);
+                                  link = Channels.NewChannel(transponder, linkName, "", "", ld->getOriginalNetworkId(), ld->getTransportStreamId(), ld->getServiceId());
+                                 }
+                              else 
+                                 link = Channels.NewChannel(channel, linkName, "", "", ld->getOriginalNetworkId(), ld->getTransportStreamId(), ld->getServiceId());
                              //XXX patFilter->Trigger();
                              }
                           if (link) {
_______________________________________________
vdr mailing list
vdr@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr

[Index of Archives]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Big List of Linux Books]     [Fedora Users]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux