#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, float &startTime, float &endTime) |
| static Boolean | parseSourceFilterAttribute (char const *sdpLine, struct in_addr &sourceAddr) |
| static char* parseCLine | ( | char const * | sdpLine | ) | [static] |
Definition at line 286 of file MediaSession.cpp.
References NULL, strDup(), and strDupSize().
Referenced by MediaSubsession::parseSDPLine_c(), and MediaSession::parseSDPLine_c().
00286 { 00287 char* resultStr = NULL; 00288 char* buffer = strDupSize(sdpLine); // ensures we have enough space 00289 if (sscanf(sdpLine, "c=IN IP4 %[^/ ]", buffer) == 1) { 00290 // Later, handle the optional /<ttl> and /<numAddresses> ##### 00291 resultStr = strDup(buffer); 00292 } 00293 delete[] buffer; 00294 00295 return resultStr; 00296 }
| static Boolean parseRangeAttribute | ( | char const * | sdpLine, | |
| float & | startTime, | |||
| float & | endTime | |||
| ) | [static] |
Definition at line 355 of file MediaSession.cpp.
Referenced by MediaSubsession::parseSDPAttribute_range(), and MediaSession::parseSDPAttribute_range().
00355 { 00356 return sscanf(sdpLine, "a=range: npt = %g - %g", &startTime, &endTime) == 2; 00357 }
| static Boolean parseSourceFilterAttribute | ( | char const * | sdpLine, | |
| struct in_addr & | sourceAddr | |||
| ) | [static] |
Definition at line 393 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().
00394 { 00395 // Check for a "a=source-filter:incl IN IP4 <something> <source>" line. 00396 // Note: At present, we don't check that <something> really matches 00397 // one of our multicast addresses. We also don't support more than 00398 // one <source> ##### 00399 Boolean result = False; // until we succeed 00400 char* sourceName = strDupSize(sdpLine); // ensures we have enough space 00401 do { 00402 if (sscanf(sdpLine, "a=source-filter: incl IN IP4 %*s %s", 00403 sourceName) != 1) break; 00404 00405 // Now, convert this name to an address, if we can: 00406 NetAddressList addresses(sourceName); 00407 if (addresses.numAddresses() == 0) break; 00408 00409 netAddressBits sourceAddrBits 00410 = *(netAddressBits*)(addresses.firstAddress()->data()); 00411 if (sourceAddrBits == 0) break; 00412 00413 sourceAddr.s_addr = sourceAddrBits; 00414 result = True; 00415 } while (0); 00416 00417 delete[] sourceName; 00418 return result; 00419 }
1.5.2