<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Right Stationery</TITLE>
<META content="text/html; charset=us-ascii" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 9.00.8112.16446"></HEAD>
<BODY 
style="BACKGROUND-COLOR: #e0e0e0; FONT-FAMILY: Arial; COLOR: #000000; FONT-SIZE: 10pt" 
background="" bgColor=#e0e0e0>
<DIV><FONT color=#005080 face="Trebuchet MS"><SPAN class=817503906-18062012>Hi 
Ross,</SPAN></FONT></DIV>
<DIV><FONT color=#005080 face="Trebuchet MS"><SPAN 
class=817503906-18062012></SPAN></FONT> </DIV>
<DIV><FONT color=#005080 face="Trebuchet MS"><SPAN class=817503906-18062012>I 
built a small application based on your testRTSPClient for multiple streams (<A 
href="http://www.live555.com/liveMedia/doxygen/html/testRTSPClient_8cpp-source.html">http://www.live555.com/liveMedia/doxygen/html/testRTSPClient_8cpp-source.html</A>).  
I am however experiencing a problem that my application crashes in 
AdvacnedHashTable::keyMatches because key2 is NULL.  This happens after 
trying to create a media sink. I have compared my program with the 
testRTSPClient and they seem very similar.  The major difference is that I 
am using a FileSink instead of the dummy sink found in the test 
program.</SPAN></FONT></DIV>
<DIV><FONT color=#005080 face="Trebuchet MS"><SPAN 
class=817503906-18062012></SPAN></FONT> </DIV>
<DIV><FONT color=#005080 face="Trebuchet MS"><SPAN class=817503906-18062012>I 
will appreciate any assistance in tracking down the cause of 
this problem.  I attach the callstack.  Thank 
you</SPAN></FONT></DIV>
<DIV><FONT color=#005080 face="Trebuchet MS"><SPAN 
class=817503906-18062012></SPAN></FONT> </DIV>
<DIV><FONT color=#005080 face="Trebuchet MS"><SPAN 
class=817503906-18062012>  msvcr90d.dll!strcmp(unsigned char * 
str1=0x00000000, unsigned char * str2=0x044ff424)  Line 
83 Asm<BR>  minimal.exe!AdvancedHashTable::keyMatches(const char 
* key1=0x01fba530, const char * key2=0x00000000)  Line 145 + 0xd 
bytes C++<BR>  minimal.exe!AdvancedHashTable::lookupKey(const 
char * key=0x01fba530, unsigned int & index=0)  Line 135 + 0x13 
bytes C++<BR>  minimal.exe!AdvancedHashTable::Add(const char * 
key=0x01fba530, void * value=0x01fba528)  Line 59 + 0x10 
bytes C++<BR>  minimal.exe!MediaLookupTable::addNew(Medium * 
medium=0x01fba528, char * mediumName=0x01fba530)  Line 160 + 0x1d 
bytes C++<BR>  minimal.exe!Medium::Medium(UsageEnvironment & 
env={...})  Line 
58 C++<BR>  minimal.exe!MediaSink::MediaSink(UsageEnvironment 
& env={...})  Line 28 + 0x1a 
bytes C++<BR>  minimal.exe!FileSink::FileSink(UsageEnvironment 
& env={...}, _iobuf * fid=0x73f01448, unsigned int bufferSize=20000, const 
char * perFrameFileNamePrefix=0x00000000)  Line 33 + 0x49 
bytes C++<BR>  minimal.exe!FileSink::createNew(UsageEnvironment 
& env={...}, const char * fileName=0x01fba23c, unsigned int 
bufferSize=20000, unsigned int oneFilePerFrame=0)  Line 67 + 0x32 
bytes C++<BR>> minimal.exe!CStreamReceiver::ContinueAfterSETUP(RTSPClient 
* rtspClient=0x01fa7e98, int resultCode=0, char * resultString=0x00000000)  
Line 157 + 0x1c 
bytes C++<BR>  minimal.exe!RTSPClient::handleResponseBytes(int 
newBytesRead=203)  Line 1570 + 0x20 
bytes C++<BR>  minimal.exe!RTSPClient::incomingDataHandler1()  
Line 
1319 C++<BR>  minimal.exe!RTSPClient::incomingDataHandler(void * 
instance=0x01fa7e98, int __formal=2)  Line 
1312 C++<BR>  minimal.exe!BasicTaskScheduler::SingleStep(unsigned 
int maxDelayTime=0)  Line 146 + 0x1e 
bytes C++<BR>  minimal.exe!BasicTaskScheduler0::doEventLoop(char 
* watchVariable=0x0072ce70)  Line 80 + 0x11 
bytes C++<BR>  minimal.exe!CStreamReceiver::RunEventLoop(UsageEnvironment 
* env=0x01fa5fa0, char * watchVariable=0x0072ce70)  Line 
46 C++<BR>  minimal.exe!boost::_mfi::mf2<void,CStreamReceiver,UsageEnvironment 
*,char *>::operator()(CStreamReceiver * p=0x01fa5a10, UsageEnvironment * 
a1=0x01fa5fa0, char * a2=0x0072ce70)  Line 
275 C++<BR>  minimal.exe!boost::_bi::list3<boost::_bi::value<CStreamReceiver 
*>,boost::_bi::value<UsageEnvironment *>,boost::_bi::value<char 
*> 
>::operator()<boost::_mfi::mf2<void,CStreamReceiver,UsageEnvironment 
*,char *>,boost::_bi::list0>(boost::_bi::type<void> __formal={...}, 
boost::_mfi::mf2<void,CStreamReceiver,UsageEnvironment *,char *> & 
f={...}, boost::_bi::list0 & a={...}, boost::_bi::type<void> 
__formal={...})  Line 
349 C++<BR>  minimal.exe!boost::_bi::bind_t<void,boost::_mfi::mf2<void,CStreamReceiver,UsageEnvironment 
*,char *>,boost::_bi::list3<boost::_bi::value<CStreamReceiver 
*>,boost::_bi::value<UsageEnvironment *>,boost::_bi::value<char 
*> > >::operator()()  Line 
21 C++<BR>  minimal.exe!boost::thread::thread_data<boost::_bi::bind_t<void,boost::_mfi::mf2<void,CStreamReceiver,UsageEnvironment 
*,char *>,boost::_bi::list3<boost::_bi::value<CStreamReceiver 
*>,boost::_bi::value<UsageEnvironment *>,boost::_bi::value<char 
*> > > >::run()  Line 
186 C++<BR>  minimal.exe!boost::thread::thread_start_function(void 
* param=0x009299b8)  Line 
177 C++<BR>  msvcr90d.dll!_callthreadstartex()  Line 348 + 
0xf bytes C<BR>  msvcr90d.dll!_threadstartex(void * 
ptd=0x01fadbb0)  Line 331 C<BR>  kernel32.dll!764e339a() 
 <BR>  [Frames below may be incorrect and/or missing, no symbols 
loaded for kernel32.dll] <BR>  ntdll.dll!77519ef2() 
 <BR>  ntdll.dll!77519ec5()  </SPAN></FONT></DIV></BODY></HTML>