2007/11/22, Ross Finlayson &lt;<a href="mailto:finlayson@live555.com">finlayson@live555.com</a>&gt;:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I don&#39;t follow this.&nbsp;&nbsp;The &quot;forceMulticastOnUnspecified&quot; hack - which<br>is used only if a multicast address was *not* specified in SDP -<br>cannot possibly be expected to work for SSM sessions, because, for<br>
such sessions, the source filter address can only be specified within<br>a SDP description. <br></blockquote><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I have no plans to change the existing code at this time.<br><br></blockquote><div><br>Do you mean according to RFC 2326 that an RTSP server should or must explicitly specify whether the session is unicast or multicast (by providing a multicast address) rather than give the client a chance to choose either?
<br><br>And if the server doesn&#39;t specify the multicast address in its SDP, the client should only try a regular multicast setup(join/leave) even if the SDP has source-filter attribute?<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
&gt;Besides, the ws2tcpip.h provided in a newly installed Visual Studio<br>&gt;C++ 6 doesn&#39;t define IP_ADD_SOURCE_MEMBERSHIP and<br>&gt;IP_DROP_SOURCE_MEMBERSHIP so the following conditional macro in<br>&gt;GroupHelper.cpp
 wiill&nbsp;&nbsp;define them as wrong values on&nbsp;&nbsp;Windows.<br>&gt;<br>&gt;#ifdef LINUX<br>&gt;#define IP_ADD_SOURCE_MEMBERSHIP&nbsp;&nbsp; 39<br>&gt;#define IP_DROP_SOURCE_MEMBERSHIP 40<br>&gt;#else<br>&gt;#define IP_ADD_SOURCE_MEMBERSHIP&nbsp;&nbsp; 25&nbsp;&nbsp; // should be 15 on Windows
<br>&gt;#define IP_DROP_SOURCE_MEMBERSHIP 26&nbsp;&nbsp;// should be 16 on Windows<br>&gt;#endif<br>&gt;<br>&gt;Therefore, I suggest modify the above as the following:<br>&gt;<br>&gt;#ifdef LINUX<br>&gt;#define IP_ADD_SOURCE_MEMBERSHIP&nbsp;&nbsp; 39
<br>&gt;#define IP_DROP_SOURCE_MEMBERSHIP 40<br>&gt;#elif defined(WINNT) || defined(_WINNT)<br>&gt;#define IP_ADD_SOURCE_MEMBERSHIP&nbsp;&nbsp;15 /* join IP group/source */<br>&gt;#define IP_DROP_SOURCE_MEMBERSHIP 16 /* leave IP group/source */
<br>&gt;#else<br>&gt;#define IP_ADD_SOURCE_MEMBERSHIP&nbsp;&nbsp; 25<br>&gt;#define IP_DROP_SOURCE_MEMBERSHIP 26<br>&gt;#endif<br><br>Can anyone else (preferably someone who doesn&#39;t use a @<a href="http://gmail.com">gmail.com</a>
<br>email address :-) confirm that Windows uses the values 25 and 26 for<br>IP_ADD_SOURCE_MEMBERSHIP and IP_DROP_SOURCE_MEMBERSHIP?&nbsp;&nbsp;(But why<br>doesn&#39;t WIndows actually define those constants??)</blockquote><div><br>
Sorry, I am that guy using a @gmail ^_~<br><br>It&#39;s easy to reason. <a href="http://msdn2.microsoft.com/en-us/library/ms738586.aspx">MSDN</a> tells that MS supports IP_ADD_SOURCE_MEMBERSHIP and IP_DROP_SOURCE_MEMBERSHIP since Windows XP but Visual C++ 
6.0 was release early(1998) before XP(2001). The ws2tcpip.h is updated in newer versions of Visual Studio or the Platform SDK.<br><br>See <a href="http://www.cs.colorado.edu/%7Emain/cs1300/include/ws2tcpip.h">ws2tcpip.h</a>
 provided by mingw or <a href="http://source.winehq.org/source/include/ws2tcpip.h">that</a> by wine online for their values for Windows.<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
&gt;#define IP_BLOCK_SOURCE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 17 /* block IP group/source */<br>&gt;#define IP_UNBLOCK_SOURCE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 18 /* unblock IP group/source */<br>&gt;#define IP_PKTINFO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;19 /* receive packet information for ipv4*/
<br>&gt;#define IP_RECEIVE_BROADCAST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;22 /* allow/block broadcast reception */<br><br>No, I won&#39;t be defining those, because they&#39;re not used anywhere in our code.<br>--</blockquote><div><br>They are mentioned just in case. It&#39;s welcome to ignore them currently.
<br><br></div></div>BR.<br>Brain Lai<br>