int MediaSession::EndpointAttachToEndpoint(int endpointId,int sourceId,MediaFrame::Type media) { //Get endpoint Endpoints::iterator it = endpoints.find(endpointId); //If not found if (it==endpoints.end()) //Exit return Error("Endpoint not found\n"); //Get it Endpoint* endpoint = it->second; //Log endpoint tag name Log("-EndpointAttachToEndpoint [%ls]\n",endpoint->GetName().c_str()); //Get source endpoint it = endpoints.find(sourceId); //If not found if (it==endpoints.end()) //Exit return Error("Endpoint not found\n"); //Get it Endpoint* source = it->second; //Attach return endpoint->Attach(media,source->GetJoinable(media)); }
int MediaSession::AudioMixerPortAttachToEndpoint(int mixerId,int portId,int endpointId) { //Get mixer AudioMixers::iterator it = audioMixers.find(mixerId); //If not found if (it==audioMixers.end()) //Exit return Error("AudioMixerResource not found\n"); //Get it AudioMixerResource* audioMixer = it->second; //Get endpoint Endpoints::iterator itEnd = endpoints.find(endpointId); //If not found if (itEnd==endpoints.end()) //Exit return Error("Endpoint not found\n"); //Get it Endpoint* endpoint = itEnd->second; //Log endpoint tag name Log("-AudioMixerPortAttachToEndpoint [%ls]\n",endpoint->GetName().c_str()); //Attach return audioMixer->Attach(portId,endpoint->GetJoinable(MediaFrame::Audio)); }
int MediaSession::EndpointAttachToVideoMixerPort(int endpointId,int mixerId,int portId) { //Get endpoint Endpoints::iterator it = endpoints.find(endpointId); //If not found if (it==endpoints.end()) //Exit return Error("Endpoint not found\n"); //Get it Endpoint* endpoint = it->second; //Log endpoint tag name Log("-EndpointAttachToVideoMixerPort [%ls]\n",endpoint->GetName().c_str()); //Get Player VideoMixers::iterator itMixer = videoMixers.find(mixerId); //If not found if (itMixer==videoMixers.end()) //Exit return Error("VideoMixerResource not found\n"); //Get it VideoMixerResource* videoMixer = itMixer->second; //And attach return endpoint->Attach(MediaFrame::Video,videoMixer->GetJoinable(portId)); }
int MediaSession::EndpointAttachToVideoTranscoder(int endpointId,int videoTranscoderId) { //Get endpoint Endpoints::iterator it = endpoints.find(endpointId); //If not found if (it==endpoints.end()) //Exit return Error("Endpoint not found [%d]\n",endpointId); //Get it Endpoint* endpoint = it->second; //Get Video transcoder VideoTranscoders::iterator itTranscoder = videoTranscoders.find(videoTranscoderId); //If not found if (itTranscoder==videoTranscoders.end()) //Exit return Error("VideoTranscoder not found[%d]\n",videoTranscoderId); //Get it VideoTranscoder* videoTranscoder = itTranscoder->second; //Log endpoint tag name Log("-EndpointAttachToVideoTranscoder [endpoint:%ls,transcoder:%ls]\n",endpoint->GetName().c_str(),videoTranscoder->GetName().c_str()); //And attach return endpoint->Attach(MediaFrame::Video,videoTranscoder); }
int MediaSession::EndpointDelete(int endpointId) { //Get Player Endpoints::iterator it = endpoints.find(endpointId); //If not found if (it==endpoints.end()) //Exit return Error("Endpoint not found\n"); //Get it Endpoint* endpoint = it->second; //Log endpoint tag name Log("-EndpointDelete [%ls]\n",endpoint->GetName().c_str()); //Remove from list endpoints.erase(it); //End it endpoint->End(); //Relete endpoint delete(endpoint); return 1; }
int MediaSession::EndpointAttachToPlayer(int endpointId,int playerId,MediaFrame::Type media) { //Get endpoint Endpoints::iterator it = endpoints.find(endpointId); //If not found if (it==endpoints.end()) //Exit return Error("Endpoint not found\n"); //Get it Endpoint* endpoint = it->second; //Log endpoint tag name Log("-EndpointAttachToPlayer [%ls]\n",endpoint->GetName().c_str()); //Get Player Players::iterator itPlayer = players.find(playerId); //If not found if (itPlayer==players.end()) //Exit return Error("Player not found\n"); //Get it Player* player = itPlayer->second; //Attach return endpoint->Attach(media,player->GetJoinable(media)); }
int MediaSession::EndpointCreate(std::wstring name,bool audioSupported,bool videoSupported,bool textSupport) { //Create endpoint Endpoint* endpoint = new Endpoint(name,audioSupported,videoSupported,textSupport); //Init it endpoint->Init(); //Create ID int endpointId = maxEndpointId++; //Log endpoint tag name Log("-EndpointCreate [%d,%ls]\n",endpointId,endpoint->GetName().c_str()); //Append endpoints[endpointId] = endpoint; //Return it return endpointId; }
int MediaSession::EndpointRequestUpdate(int endpointId,MediaFrame::Type media) { //Get endpoint Endpoints::iterator it = endpoints.find(endpointId); //If not found if (it==endpoints.end()) //Exit return Error("Endpoint not found\n"); //Get it Endpoint* endpoint = it->second; //Log endpoint tag name Log("-EndpointRequestUpdate [%ls]\n",endpoint->GetName().c_str()); //Execute return endpoint->RequestUpdate(media); }
int MediaSession::EndpointStopReceiving(int endpointId,MediaFrame::Type media) { //Get Player Endpoints::iterator it = endpoints.find(endpointId); //If not found if (it==endpoints.end()) //Exit return Error("Endpoint not found\n"); //Get it Endpoint* endpoint = it->second; //Log endpoint tag name Log("-EndpointStartReceiving [%ls]\n",endpoint->GetName().c_str()); //Execute return endpoint->StopReceiving(media); }
//Endpoint Video functionality int MediaSession::EndpointStartSending(int endpointId,MediaFrame::Type media,char *sendVideoIp,int sendVideoPort,RTPMap& rtpMap) { //Get Player Endpoints::iterator it = endpoints.find(endpointId); //If not found if (it==endpoints.end()) //Exit return Error("Endpoint not found\n"); //Get it Endpoint* endpoint = it->second; //Log endpoint tag name Log("-EndpointStartSending [%ls]\n",endpoint->GetName().c_str()); //Execute return endpoint->StartSending(media,sendVideoIp, sendVideoPort, rtpMap); }
int MediaSession::VideoTranscoderAttachToEndpoint(int videoTranscoderId,int endpointId) { //Get mixer VideoTranscoders::iterator it = videoTranscoders.find(videoTranscoderId); //If not found if (it==videoTranscoders.end()) //Exit return Error("VideoTranscoder not found [%d]\n",videoTranscoderId); //Get it VideoTranscoder* videoTranscoder = it->second; //Get endpoint Endpoints::iterator itEnd = endpoints.find(endpointId); //If not found if (itEnd==endpoints.end()) //Exit return Error("Endpoint not found [%d]\n",endpointId); //Get it Endpoint* endpoint = itEnd->second; //Log endpoint tag name Log("-VideoTranscoderAttachToEndpoint [transcoder:%ls,endpoint:%ls]\n",videoTranscoder->GetName().c_str(),endpoint->GetName().c_str()); //Attach return videoTranscoder->Attach(endpoint->GetJoinable(MediaFrame::Video)); }