#include "liveMedia.hh"#include "Locale.hh"#include "GroupsockHelper.hh"#include <ctype.h>Include dependency graph for MediaSession.cpp:

Go to the source code of this file.
Functions | |
| static char * | parseCLine (char const *sdpLine) |
| static Boolean | parseRangeAttribute (char const *sdpLine, double &startTime, double &endTime) |
| static Boolean | parseSourceFilterAttribute (char const *sdpLine, struct in_addr &sourceAddr) |
| static char* parseCLine | ( | char const * | sdpLine | ) | [static] |
Definition at line 277 of file MediaSession.cpp.
References NULL, strDup(), and strDupSize().
Referenced by MediaSubsession::parseSDPLine_c(), and MediaSession::parseSDPLine_c().
00277 { 00278 char* resultStr = NULL; 00279 char* buffer = strDupSize(sdpLine); // ensures we have enough space 00280 if (sscanf(sdpLine, "c=IN IP4 %[^/\r\n]", buffer) == 1) { 00281 // Later, handle the optional /<ttl> and /<numAddresses> ##### 00282 resultStr = strDup(buffer); 00283 } 00284 delete[] buffer; 00285 00286 return resultStr; 00287 }
| static Boolean parseRangeAttribute | ( | char const * | sdpLine, | |
| double & | startTime, | |||
| double & | endTime | |||
| ) | [static] |
Definition at line 346 of file MediaSession.cpp.
Referenced by MediaSubsession::parseSDPAttribute_range(), and MediaSession::parseSDPAttribute_range().
00346 { 00347 return sscanf(sdpLine, "a=range: npt = %lg - %lg", &startTime, &endTime) == 2; 00348 }
| static Boolean parseSourceFilterAttribute | ( | char const * | sdpLine, | |
| struct in_addr & | sourceAddr | |||
| ) | [static] |
Definition at line 384 of file MediaSession.cpp.
References NetAddress::data(), False, NetAddressList::firstAddress(), NetAddressList::numAddresses(), strDupSize(), and True.
Referenced by MediaSubsession::parseSDPAttribute_source_filter(), and MediaSession::parseSDPAttribute_source_filter().
00385 { 00386 // Check for a "a=source-filter:incl IN IP4 <something> <source>" line. 00387 // Note: At present, we don't check that <something> really matches 00388 // one of our multicast addresses. We also don't support more than 00389 // one <source> ##### 00390 Boolean result = False; // until we succeed 00391 char* sourceName = strDupSize(sdpLine); // ensures we have enough space 00392 do { 00393 if (sscanf(sdpLine, "a=source-filter: incl IN IP4 %*s %s", 00394 sourceName) != 1) break; 00395 00396 // Now, convert this name to an address, if we can: 00397 NetAddressList addresses(sourceName); 00398 if (addresses.numAddresses() == 0) break; 00399 00400 netAddressBits sourceAddrBits 00401 = *(netAddressBits*)(addresses.firstAddress()->data()); 00402 if (sourceAddrBits == 0) break; 00403 00404 sourceAddr.s_addr = sourceAddrBits; 00405 result = True; 00406 } while (0); 00407 00408 delete[] sourceName; 00409 return result; 00410 }
1.5.2