[feature][T8TSK-195][TCAM_T800_SW_0284][rtp] add interface to set call rtp ssrc

Change-Id: Ic4b319e1ab93de4e9c053a779e67aae27f52ccae
(cherry picked from commit 4df0b51fe88b5a322114304ccc36f1b5d6f3df06)
diff --git a/lib/liblynq-call/lynq_call_rtp.cpp b/lib/liblynq-call/lynq_call_rtp.cpp
index e22b016..9e0d546 100755
--- a/lib/liblynq-call/lynq_call_rtp.cpp
+++ b/lib/liblynq-call/lynq_call_rtp.cpp
@@ -19,14 +19,18 @@
 #include "lynq_call_common.h"

 

 #define RTP_FROM_CMD "gst-launch-1.0 -v udpsrc port=%d caps=\'application/x-rtp, media=(string)audio, clock-rate=(int)%d, channels=(int)%d\' ! rtpjitterbuffer latency=%d ! rtppcmadepay ! alawdec ! audioresample ! audioconvert ! alsasink device=\'hw:0,2\'"

-#define RTP_TO_CMD   "gst-launch-1.0 -v alsasrc device=\'hw:0,6\' ! audioconvert ! audioresample ! alawenc ! rtppcmapay ! udpsink host=%s %s auto-multicast=true port=%d"

+#define RTP_TO_CMD   "gst-launch-1.0 -v alsasrc device=\'hw:0,6\' ! audioconvert ! audioresample ! alawenc ! rtppcmapay ! %s udpsink host=%s %s auto-multicast=true port=%d"

 #define RTP_VLAN_INFO_FORMAT "multicast-iface=\"%s\""

+#define RTP_SSRC_INFO_FORMAT " rtpmux name=mux ssrc=%u !"

+

 #define USER_LOG_TAG "LYNQ_CALL"

 

 typedef struct

 {   

     char ip[MAX_IP_LENGTH];

     int port;   

+    LYNQ_Rtp_Ssrc_Mode ssrc_mode;

+    unsigned int ssrc;

     char vlan_info[MAX_VLAN_INFO_LENGTH];

 }lynq_rtp_server_info;

 

@@ -105,6 +109,7 @@
     int* rtp_mode= (int*) arg;

     char cmd[384];

     char vlan_para_string[sizeof(RTP_VLAN_INFO_FORMAT)+MAX_VLAN_INFO_LENGTH-2/*sizeof "%s"*/]={0};

+    char ssrc_para_string[sizeof(RTP_SSRC_INFO_FORMAT)+MAX_SSRC_INFO_LENGTH-2/*sizeof "%u"*/]={0};

     LYINFLOG("lynq_start_rtp_cmd: rtp_mode is %d",(*rtp_mode));    

     if ((*rtp_mode) == RTP_CLIENT)

     {

@@ -120,10 +125,15 @@
         {

            sprintf(vlan_para_string,RTP_VLAN_INFO_FORMAT,g_rtp_server_info.vlan_info);

         }

+

+        if(g_rtp_server_info.ssrc_mode == RTP_Ssrc_specific)

+        {

+           sprintf(ssrc_para_string,RTP_SSRC_INFO_FORMAT,g_rtp_server_info.ssrc);

+        }

         sprintf(cmd,RTP_TO_CMD,   \

-        g_rtp_server_info.ip,vlan_para_string,g_rtp_server_info.port);       

+        ssrc_para_string, g_rtp_server_info.ip,vlan_para_string,g_rtp_server_info.port);       

         

-    //  LYINFLOG("start to rtp play: cmd is %s",cmd);

+        LYINFLOG("start to rtp play: cmd is %s",cmd);

         system(cmd);    

     }

     return NULL;

@@ -275,6 +285,17 @@
     LYINFLOG("lynq_set_rtp_param suc: clockrate is %d, channels is %d, latency is %d", clock_rate, channels, latency);

     return RESULT_OK;  

 }

+int lynq_set_call_rtp_ssrc(const LYNQ_Rtp_Ssrc_Mode ssrc_mode,const unsigned int ssrc)

+{

+    if(ssrc_mode < Rtp_Ssrc_random || ssrc_mode > RTP_Ssrc_specific)

+    {

+        return LYNQ_E_PARAMETER_ANONALY;

+    }

+    g_rtp_server_info.ssrc_mode = ssrc_mode;

+    g_rtp_server_info.ssrc = ssrc ;

+    LYINFLOG("%s suc: param is %d %d", __func__, ssrc_mode, ssrc);

+    return RESULT_OK;

+}

 /*get*/

 LYNQ_Audio_Mode lynq_get_voice_audio_mode()

 {

@@ -355,3 +376,16 @@
 

     return RESULT_OK;  

 }

+int lynq_get_call_rtp_ssrc(LYNQ_Rtp_Ssrc_Mode* ssrc_mode, unsigned int* ssrc)

+{

+    if(ssrc_mode == NULL || ssrc ==NULL)

+    {

+        LYERRLOG("input parameter is NULL");

+        return LYNQ_E_PARAMETER_ANONALY;

+    }

+    

+    *ssrc_mode = g_rtp_server_info.ssrc_mode;

+    *ssrc = g_rtp_server_info.ssrc ;   

+    

+    return RESULT_OK;

+}