From 3f2c876a7e0bf18f1673aa55e7fea896ce4deb0c Mon Sep 17 00:00:00 2001 From: Thulinma Date: Thu, 6 Jun 2013 14:27:59 +0200 Subject: [PATCH] Initial RTMP DTSC2 support. --- src/connectors/conn_rtmp.cpp | 44 ++++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/src/connectors/conn_rtmp.cpp b/src/connectors/conn_rtmp.cpp index f9efde1f..abcb10da 100644 --- a/src/connectors/conn_rtmp.cpp +++ b/src/connectors/conn_rtmp.cpp @@ -37,7 +37,9 @@ namespace Connector_RTMP { //generic state keeping bool streamInited = false;///second["type"].asString() == "video"){ + videoID = objIt->second["trackid"].asInt(); + } + if (audioID == -1 && objIt->second["type"].asString() == "audio"){ + audioID = objIt->second["trackid"].asInt(); + } + } + //select the tracks and play + std::stringstream cmd; + cmd << "t"; + if (videoID != -1){ + cmd << " " << videoID; + } + if (audioID != -1){ + cmd << " " << audioID; + } + cmd << "\np\n"; + ss.SendNow(cmd.str().c_str()); inited = true; } if (inited && !noStats){ @@ -599,14 +629,14 @@ namespace Connector_RTMP { //sent init data if needed if ( !streamInited){ - init_tag.DTSCMetaInit(Strm); + init_tag.DTSCMetaInit(Strm, Strm.getTrackById(videoID), Strm.getTrackById(audioID)); Socket.SendNow(RTMPStream::SendMedia(init_tag)); - if (Strm.metadata.isMember("audio") && Strm.metadata["audio"].isMember("init")){ - init_tag.DTSCAudioInit(Strm); + if (audioID != -1 && Strm.getTrackById(audioID).isMember("init")){ + init_tag.DTSCAudioInit(Strm.getTrackById(audioID)); Socket.SendNow(RTMPStream::SendMedia(init_tag)); } - if (Strm.metadata.isMember("video") && Strm.metadata["video"].isMember("init")){ - init_tag.DTSCVideoInit(Strm); + if (videoID != -1 && Strm.getTrackById(videoID).isMember("init")){ + init_tag.DTSCVideoInit(Strm.getTrackById(videoID)); Socket.SendNow(RTMPStream::SendMedia(init_tag)); } streamInited = true;