#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 | parseRangeAttribute (char const *sdpLine, char *&absStartTime, char *&absEndTime) |
| static Boolean | parseSourceFilterAttribute (char const *sdpLine, struct in_addr &sourceAddr) |
Variables | |
| static Boolean const | honorSDPPortChoice = True |
| static char* parseCLine | ( | char const * | sdpLine | ) | [static] |
Definition at line 279 of file MediaSession.cpp.
References NULL, strDup(), and strDupSize().
Referenced by MediaSubsession::parseSDPLine_c(), and MediaSession::parseSDPLine_c().
00279 { 00280 char* resultStr = NULL; 00281 char* buffer = strDupSize(sdpLine); // ensures we have enough space 00282 if (sscanf(sdpLine, "c=IN IP4 %[^/\r\n]", buffer) == 1) { 00283 // Later, handle the optional /<ttl> and /<numAddresses> ##### 00284 resultStr = strDup(buffer); 00285 } 00286 delete[] buffer; 00287 00288 return resultStr; 00289 }
| static Boolean parseRangeAttribute | ( | char const * | sdpLine, | |
| char *& | absStartTime, | |||
| char *& | absEndTime | |||
| ) | [static] |
Definition at line 366 of file MediaSession.cpp.
00366 { 00367 size_t len = strlen(sdpLine) + 1; 00368 char* as = new char[len]; 00369 char* ae = new char[len]; 00370 int sscanfResult = sscanf(sdpLine, "a=range: clock = %[^-\r\n]-%[^\r\n]", as, ae); 00371 if (sscanfResult == 2) { 00372 absStartTime = as; 00373 absEndTime = ae; 00374 } else if (sscanfResult == 1) { 00375 absStartTime = as; 00376 delete[] ae; 00377 } else { 00378 delete[] as; delete[] ae; 00379 return False; 00380 } 00381 00382 return True; 00383 }
| static Boolean parseRangeAttribute | ( | char const * | sdpLine, | |
| double & | startTime, | |||
| double & | endTime | |||
| ) | [static] |
Definition at line 362 of file MediaSession.cpp.
Referenced by MediaSubsession::parseSDPAttribute_range(), and MediaSession::parseSDPAttribute_range().
00362 { 00363 return sscanf(sdpLine, "a=range: npt = %lg - %lg", &startTime, &endTime) == 2; 00364 }
| static Boolean parseSourceFilterAttribute | ( | char const * | sdpLine, | |
| struct in_addr & | sourceAddr | |||
| ) | [static] |
Definition at line 407 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().
00408 { 00409 // Check for a "a=source-filter:incl IN IP4 <something> <source>" line. 00410 // Note: At present, we don't check that <something> really matches 00411 // one of our multicast addresses. We also don't support more than 00412 // one <source> ##### 00413 Boolean result = False; // until we succeed 00414 char* sourceName = strDupSize(sdpLine); // ensures we have enough space 00415 do { 00416 if (sscanf(sdpLine, "a=source-filter: incl IN IP4 %*s %s", 00417 sourceName) != 1) break; 00418 00419 // Now, convert this name to an address, if we can: 00420 NetAddressList addresses(sourceName); 00421 if (addresses.numAddresses() == 0) break; 00422 00423 netAddressBits sourceAddrBits 00424 = *(netAddressBits*)(addresses.firstAddress()->data()); 00425 if (sourceAddrBits == 0) break; 00426 00427 sourceAddr.s_addr = sourceAddrBits; 00428 result = True; 00429 } while (0); 00430 00431 delete[] sourceName; 00432 return result; 00433 }
Boolean const honorSDPPortChoice = True [static] |
1.5.2