2007/11/22, Ross Finlayson <<a href="mailto:finlayson@live555.com">finlayson@live555.com</a>>:<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't follow this. The "forceMulticastOnUnspecified" 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'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;">
>Besides, the ws2tcpip.h provided in a newly installed Visual Studio<br>>C++ 6 doesn't define IP_ADD_SOURCE_MEMBERSHIP and<br>>IP_DROP_SOURCE_MEMBERSHIP so the following conditional macro in<br>>GroupHelper.cpp
wiill define them as wrong values on Windows.<br>><br>>#ifdef LINUX<br>>#define IP_ADD_SOURCE_MEMBERSHIP 39<br>>#define IP_DROP_SOURCE_MEMBERSHIP 40<br>>#else<br>>#define IP_ADD_SOURCE_MEMBERSHIP 25 // should be 15 on Windows
<br>>#define IP_DROP_SOURCE_MEMBERSHIP 26 // should be 16 on Windows<br>>#endif<br>><br>>Therefore, I suggest modify the above as the following:<br>><br>>#ifdef LINUX<br>>#define IP_ADD_SOURCE_MEMBERSHIP 39
<br>>#define IP_DROP_SOURCE_MEMBERSHIP 40<br>>#elif defined(WINNT) || defined(_WINNT)<br>>#define IP_ADD_SOURCE_MEMBERSHIP 15 /* join IP group/source */<br>>#define IP_DROP_SOURCE_MEMBERSHIP 16 /* leave IP group/source */
<br>>#else<br>>#define IP_ADD_SOURCE_MEMBERSHIP 25<br>>#define IP_DROP_SOURCE_MEMBERSHIP 26<br>>#endif<br><br>Can anyone else (preferably someone who doesn'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? (But why<br>doesn't WIndows actually define those constants??)</blockquote><div><br>
Sorry, I am that guy using a @gmail ^_~<br><br>It'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;">
>#define IP_BLOCK_SOURCE 17 /* block IP group/source */<br>>#define IP_UNBLOCK_SOURCE 18 /* unblock IP group/source */<br>>#define IP_PKTINFO 19 /* receive packet information for ipv4*/
<br>>#define IP_RECEIVE_BROADCAST 22 /* allow/block broadcast reception */<br><br>No, I won't be defining those, because they're not used anywhere in our code.<br>--</blockquote><div><br>They are mentioned just in case. It's welcome to ignore them currently.
<br><br></div></div>BR.<br>Brain Lai<br>