[SCM] Mumudvb packaging branch, upstream, updated. 24c2efb080b56abb8e7be67bae30ba7fe457759e

Brice DUBOST braice at braice.net
Sat Nov 1 13:31:05 UTC 2008


The following commit has been merged in the upstream branch:
commit 56e10a08e70814eb5f227fdf0c3744dbab668903
Author: Brice DUBOST <braice at braice.net>
Date:   Sun Oct 19 14:27:55 2008 +0200

    New option : multicast_ttl to override the default ttl

diff --git a/Changelog b/Changelog
index ec11825..6688c01 100644
--- a/Changelog
+++ b/Changelog
@@ -1,3 +1,11 @@
+-- Mumudvb 1.5.3 --
+
+New features : 
+ * Option multicast_ttl to override default ttl
+	
+Bugs corrected : 
+ * Better conformances to RFC for sap announces (this correct issues with VLC < 0.8.6f)
+	
 -- Mumudvb 1.5.2 --
 
 New features : 
diff --git a/doc/README_CONF b/doc/README_CONF
index 63d5cc1..e5f0941 100644
--- a/doc/README_CONF
+++ b/doc/README_CONF
@@ -22,6 +22,7 @@ All parameters are in the form : name=value
 ||timeout_accord                 ||tuning timeout (in seconds) (default : 300 (5min)) ||
 ||timeout_no_diff                ||if the program doesn't stream any chanels, he will kill himself at the end of this time (in seconds) (default : 600 (10min)) ||
 ||common_port                    ||If you don't want to specify the port for each channel, it will be the default port (if you use autoconfiguration=2 default : 1234) ||
+||multicast_ttl                  ||If you want to override the default multicast ttl, use this option. ||
 ||rewrite_pat                    ||specify if we wants the PAT rewriting feature ||
 ||cam_support                    ||specify if we wants the support for scrambled channels ||
 ||cam_number                     ||the number of the CAM we want to use (default 0) ||
diff --git a/doc/README_CONF-fr b/doc/README_CONF-fr
index 14a1f19..d9385cb 100644
--- a/doc/README_CONF-fr
+++ b/doc/README_CONF-fr
@@ -21,6 +21,7 @@ Tous les param
 ||timeout_accord                 ||temps que l'on laisse à la carte pour s'accorder sur la fréquence (en secondes) (défaut : 300 (5min)) ||
 ||timeout_no_diff                ||si le programme ne diffuse aucune chaîne, il se tuera au bout de ce temps (en secondes) (défaut : 600 (10min)) ||
 ||common_port                    ||Si vous ne voulez pas spécifier le port pour chaque chaine c'est le port qui sera utilisé par défaut (si vous utilisez autoconfiguration=2, défaut : 1234) ||
+||multicast_ttl                  ||Si vous voulez utiliser un Time to Live différent de celui par défaut. ||
 ||rewrite_pat                    ||Spécifie si l'on veut la réécriture du PID PAT à la volée ||
 ||cam_support                    ||Spécifie si l'on veut le support pour les chaines cryptées ||
 ||cam_number                     ||Le numéro du module cam (défaut : 0) ||
@@ -46,7 +47,7 @@ Tous les param
 
 == Note ==
 
-Vous devez spécifier
+Si vous n'utilisez pas l'autoconfiguration, vous devez spécifier
  * Le pid audio
  * Le pid Vidéo
  * Le pid PMT
diff --git a/src/mumudvb.c b/src/mumudvb.c
index e67a89b..5953693 100644
--- a/src/mumudvb.c
+++ b/src/mumudvb.c
@@ -56,6 +56,8 @@
 
 extern uint32_t       crc32_table[256];
 
+int multicast_ttl=DEFAULT_TTL;
+
 /* Signal handling code shamelessly copied from VDR by Klaus Schmidinger 
    - see http://www.cadsoft.de/people/kls/vdr/index.htm */
 
@@ -499,6 +501,11 @@ main (int argc, char **argv)
 	  substring = strtok (NULL, delimiteurs);
 	  common_port = atoi (substring);
 	}
+      else if (!strcmp (substring, "multicast_ttl"))
+	{
+	  substring = strtok (NULL, delimiteurs);
+	  multicast_ttl = atoi (substring);
+	}
       else if (!strcmp (substring, "port"))
 	{
 	  substring = strtok (NULL, delimiteurs);
@@ -971,7 +978,7 @@ main (int argc, char **argv)
     {
       //we use makeclientsocket in order to join the multicast group associated with the channel
       //Some switches (like HP Procurve 26xx) broadcast multicast traffic when there is no client to the group
-      channels[curr_channel].socketOut = makeclientsocket (channels[curr_channel].ipOut, channels[curr_channel].portOut, DEFAULT_TTL, &channels[curr_channel].sOut);
+      channels[curr_channel].socketOut = makeclientsocket (channels[curr_channel].ipOut, channels[curr_channel].portOut, multicast_ttl, &channels[curr_channel].sOut);
     }
 
 
@@ -1076,7 +1083,7 @@ main (int argc, char **argv)
 			      set_ts_filt (fds.fd[curr_channel][0], channels[curr_channel].pids[0], DMX_PES_OTHER);
 			      // Init udp
 			      //TODO explain
-			      channels[curr_channel].socketOut = makeclientsocket (channels[curr_channel].ipOut, channels[curr_channel].portOut, DEFAULT_TTL, &channels[curr_channel].sOut);
+			      channels[curr_channel].socketOut = makeclientsocket (channels[curr_channel].ipOut, channels[curr_channel].portOut, multicast_ttl, &channels[curr_channel].sOut);
 			    }
 
 			  log_message(MSG_DEBUG,"Autoconf : Step TWO, we get the video ond audio PIDs\n");
@@ -1348,8 +1355,7 @@ int mumudvb_close(int Interrupted, mumudvb_ts_packet_t *cam_pmt_ptr)
  * This function also catches SIGPIPE and SIGUSR1
  * 
  ******************************************************/
-static void
-SignalHandler (int signum)
+static void SignalHandler (int signum)
 {
 
   struct timeval tv;
diff --git a/src/sap.c b/src/sap.c
index 21d1e83..93be8a4 100644
--- a/src/sap.c
+++ b/src/sap.c
@@ -29,6 +29,7 @@
 
 extern char sap_sending_ip[20];
 
+extern int multicast_ttl;
 
 //SAP_send : send the sap message
 void sap_send(mumudvb_sap_message_t *sap_messages, int num_messages)
@@ -139,7 +140,7 @@ int sap_add_program(mumudvb_channel_t channel, mumudvb_sap_message_t *sap_messag
   sprintf(temp_string,"v=0\r\no=%s %d %d IN IP4 %s\r\ns=%s\r\nc=IN IP4 %s/%d\r\n", 
 	  sap_organisation, sap_serial, sap_message->version, channel.ipOut,
 	  channel.name, 
-	  channel.ipOut, DEFAULT_TTL);
+	  channel.ipOut, multicast_ttl);
   if( (sap_message->len+payload_len+strlen(temp_string))>1024)
     {
       log_message(MSG_WARN,"Warning : SAP message too long for channel %s\n",channel.name);

-- 
Mumudvb packaging



More information about the pkg-vdr-dvb-changes mailing list