1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

parse sdp

This commit is contained in:
xiaozhihong 2020-03-02 22:47:40 +08:00
parent 62563bdd81
commit 30d8b2209f
3 changed files with 122 additions and 8 deletions

View file

@ -25,6 +25,8 @@
using namespace std;
#include <sstream>
#include <srs_kernel_log.hpp>
#include <srs_kernel_error.hpp>
#include <srs_stun_stack.hpp>
@ -41,14 +43,77 @@ static bool is_dtls(const char* data, const int size) {
return data != NULL && size > 0 && (data[0] >= 20 && data[0] <= 64);
}
SrsSDP::SrsSDP()
SrsSdpMediaInfo::SrsSdpMediaInfo()
{
}
SrsSDP::~SrsSDP()
SrsSdpMediaInfo::~SrsSdpMediaInfo()
{
}
SrsSdp::SrsSdp()
{
}
SrsSdp::~SrsSdp()
{
}
srs_error_t SrsSdp::parse(const string& sdp)
{
srs_error_t err = srs_success;
if (sdp.size() < 2 || sdp[0] != 'v' || sdp[1] != '=') {
return srs_error_wrap(err, "invalid sdp");
}
string line;
istringstream is(sdp);
while (getline(is, line)) {
srs_trace("line=%s", line.c_str());
if (line.size() < 2 || line[1] != '=') {
return srs_error_wrap(err, "invalid sdp line=%s", line.c_str());
}
switch (line[1]) {
case 'v' :{
break;
}
case 'o' :{
break;
}
case 's' :{
break;
}
case 't' :{
break;
}
case 'c' :{
break;
}
case 'a' :{
if (parse_attr(line) != srs_success) {
return srs_error_wrap(err, "parse sdp line=%s failed", line.c_str());
}
break;
}
case 'm' :{
break;
}
}
}
return err;
}
srs_error_t SrsSdp::parse_attr(const string& line)
{
srs_error_t err = srs_success;
return err;
}
SrsRtcSession::SrsRtcSession()
{
session_state = INIT;