|
@@ -156,53 +156,42 @@ public:
|
|
|
memset(m_FileName,0,MAX_PATH);
|
|
|
memset(m_WmvFileName,0,MAX_PATH);
|
|
|
memset(m_PathName,0,MAX_PATH);
|
|
|
+ memset(m_audioqueuename, 0, MAX_PATH);
|
|
|
+ memset(m_salesaudioqueuename, 0, MAX_PATH);
|
|
|
+ memset(m_videoqueuename, 0, MAX_PATH);
|
|
|
+ memset(m_videoqueue2name, 0, MAX_PATH);
|
|
|
+ memset(m_remotevideoqueuename, 0, MAX_PATH);
|
|
|
+ memset(m_remoteaudioqueuename, 0, MAX_PATH);
|
|
|
//音频传输队列,初始化为空
|
|
|
m_salestransqueue = NULL;
|
|
|
// 支持现场销售双录使用独立的音频队列 edit by ly@2018/06/13
|
|
|
m_audioqueue = NULL;
|
|
|
- m_localaudioqueue = new Clibaudioqueue((char *)audioqueuename);
|
|
|
+ //m_localaudioqueue = new Clibaudioqueue((char *)audioqueuename);
|
|
|
+ strncpy(m_audioqueuename, audioqueuename, (strlen(audioqueuename) > MAX_PATH) ? (MAX_PATH - 1): strlen(audioqueuename));
|
|
|
+ m_salesaudioqueue = NULL;
|
|
|
if (salesaudioqueuename)
|
|
|
{
|
|
|
- m_salesaudioqueue = new Clibaudioqueue((char*)salesaudioqueuename);
|
|
|
+ strncpy(m_salesaudioqueuename, salesaudioqueuename, (strlen(salesaudioqueuename) > MAX_PATH) ? (MAX_PATH - 1) : strlen(salesaudioqueuename));
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- m_salesaudioqueue = NULL;
|
|
|
- }
|
|
|
-
|
|
|
+ m_videoqueue = NULL;
|
|
|
if (videoqueuename)
|
|
|
{
|
|
|
- m_videoqueue = new Clibvideoqueue((char*)videoqueuename);
|
|
|
+ strncpy(m_videoqueuename, videoqueuename, (strlen(videoqueuename) > MAX_PATH) ? (MAX_PATH - 1) : strlen(videoqueuename));
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- m_videoqueue = NULL;
|
|
|
- }
|
|
|
-
|
|
|
+ m_videoqueue2 = NULL;
|
|
|
if (videoqueue2name)
|
|
|
{
|
|
|
- m_videoqueue2 = new Clibvideoqueue((char*)videoqueue2name);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- m_videoqueue2 = NULL;
|
|
|
+ strncpy(m_videoqueue2name, videoqueue2name, (strlen(videoqueue2name) > MAX_PATH) ? (MAX_PATH - 1) : strlen(videoqueue2name));
|
|
|
}
|
|
|
+ m_remotevideoqueue = NULL;
|
|
|
if (remotevideoqueuename)
|
|
|
{
|
|
|
- m_remotevideoqueue = new Clibvideoqueue((char*)remotevideoqueuename);
|
|
|
+ strncpy(m_remotevideoqueuename, remotevideoqueuename, (strlen(remotevideoqueuename) > MAX_PATH) ? (MAX_PATH - 1) : strlen(remotevideoqueuename));
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- m_remotevideoqueue = NULL;
|
|
|
- }
|
|
|
-
|
|
|
+ m_remoteaudioqueue = NULL;
|
|
|
if (remoteaudioqueuename)
|
|
|
{
|
|
|
- m_remoteaudioqueue = new Clibaudioqueue((char*)remoteaudioqueuename);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- m_remoteaudioqueue = NULL;
|
|
|
+ strncpy(m_remoteaudioqueuename, remoteaudioqueuename, (strlen(remoteaudioqueuename) > MAX_PATH) ? (MAX_PATH - 1) : strlen(remoteaudioqueuename));
|
|
|
}
|
|
|
|
|
|
m_pWriter = NULL;
|
|
@@ -221,51 +210,61 @@ public:
|
|
|
delete videoframe->data;
|
|
|
videoframe->data = NULL;
|
|
|
}
|
|
|
+
|
|
|
if (videoframe != NULL)
|
|
|
{
|
|
|
delete videoframe;
|
|
|
videoframe = NULL;
|
|
|
}
|
|
|
+
|
|
|
if (audioframe != NULL)
|
|
|
{
|
|
|
delete audioframe;
|
|
|
audioframe = NULL;
|
|
|
}
|
|
|
+
|
|
|
if (m_hRecordThread)
|
|
|
{
|
|
|
m_hRecordThread = NULL;
|
|
|
}
|
|
|
+
|
|
|
if (m_pWriter!= NULL)
|
|
|
{
|
|
|
delete m_pWriter;
|
|
|
m_pWriter = NULL;
|
|
|
}
|
|
|
+
|
|
|
if (m_localaudioqueue != NULL)
|
|
|
{
|
|
|
delete m_localaudioqueue;
|
|
|
m_localaudioqueue = NULL;
|
|
|
}
|
|
|
+
|
|
|
if (m_salesaudioqueue != NULL)
|
|
|
{
|
|
|
delete m_salesaudioqueue;
|
|
|
m_salesaudioqueue = NULL;
|
|
|
}
|
|
|
+
|
|
|
m_audioqueue = NULL;
|
|
|
if (m_remoteaudioqueue != NULL)
|
|
|
{
|
|
|
delete m_remoteaudioqueue;
|
|
|
m_remoteaudioqueue = NULL;
|
|
|
}
|
|
|
+
|
|
|
if (m_videoqueue != NULL)
|
|
|
{
|
|
|
delete m_videoqueue;
|
|
|
m_videoqueue = NULL;
|
|
|
}
|
|
|
+
|
|
|
if (m_videoqueue2 != NULL)
|
|
|
{
|
|
|
delete m_videoqueue2;
|
|
|
m_videoqueue2 = NULL;
|
|
|
}
|
|
|
+
|
|
|
if (m_remotevideoqueue != NULL)
|
|
|
{
|
|
|
delete m_remotevideoqueue;
|
|
@@ -282,18 +281,11 @@ public:
|
|
|
m_pAudioNsObj = NULL;
|
|
|
}
|
|
|
|
|
|
- //if (m_bIsAudioTransOn){
|
|
|
- // Dbg("before delete m_salestransqueue");
|
|
|
- //if (NULL != m_salestransqueue){
|
|
|
- // Dbg("delete m_salestransqueue ing .......");
|
|
|
- // delete m_salestransqueue;
|
|
|
- // m_salestransqueue = NULL;
|
|
|
- // }
|
|
|
- // Dbg("after delete m_salestransqueue;");
|
|
|
- //}
|
|
|
- //else{
|
|
|
- // Dbg("audio trans flag is false.");
|
|
|
- //}
|
|
|
+ if (NULL != m_salestransqueue){
|
|
|
+ //Dbg("delete m_salestransqueue ing .......");
|
|
|
+ delete m_salestransqueue;
|
|
|
+ m_salestransqueue = NULL;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private:
|
|
@@ -324,6 +316,12 @@ private:
|
|
|
Clibaudioqueue*m_remoteaudioqueue; //远端音频,用于双向录像,add by chh 20170320
|
|
|
Clibaudioqueue*m_localaudioqueue; //本地音频,add by ly@2018/06/13
|
|
|
Clibaudioqueue*m_salesaudioqueue; //现场销售音频,add by ly@2018/06/13
|
|
|
+ char m_audioqueuename[MAX_PATH];
|
|
|
+ char m_videoqueuename[MAX_PATH];
|
|
|
+ char m_videoqueue2name[MAX_PATH];
|
|
|
+ char m_salesaudioqueuename[MAX_PATH];
|
|
|
+ char m_remotevideoqueuename[MAX_PATH];
|
|
|
+ char m_remoteaudioqueuename[MAX_PATH];
|
|
|
|
|
|
Clibaudiotransqueue *m_salestransqueue;
|
|
|
|
|
@@ -369,6 +367,44 @@ private:
|
|
|
m_pAudioBufferTmp = NULL;
|
|
|
m_iAudioBufferSize = 0;
|
|
|
}
|
|
|
+
|
|
|
+ if (m_localaudioqueue != NULL)
|
|
|
+ {
|
|
|
+ delete m_localaudioqueue;
|
|
|
+ m_localaudioqueue = NULL;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (m_salesaudioqueue != NULL)
|
|
|
+ {
|
|
|
+ delete m_salesaudioqueue;
|
|
|
+ m_salesaudioqueue = NULL;
|
|
|
+ }
|
|
|
+
|
|
|
+ m_audioqueue = NULL;
|
|
|
+ if (m_remoteaudioqueue != NULL)
|
|
|
+ {
|
|
|
+ delete m_remoteaudioqueue;
|
|
|
+ m_remoteaudioqueue = NULL;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (m_videoqueue != NULL)
|
|
|
+ {
|
|
|
+ delete m_videoqueue;
|
|
|
+ m_videoqueue = NULL;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (m_videoqueue2 != NULL)
|
|
|
+ {
|
|
|
+ delete m_videoqueue2;
|
|
|
+ m_videoqueue2 = NULL;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (m_remotevideoqueue != NULL)
|
|
|
+ {
|
|
|
+ delete m_remotevideoqueue;
|
|
|
+ m_remotevideoqueue = NULL;
|
|
|
+ }
|
|
|
+
|
|
|
return TRUE;
|
|
|
}
|
|
|
|
|
@@ -1402,7 +1438,7 @@ private:
|
|
|
{
|
|
|
//取音频数据,合并成1S的音频
|
|
|
int nAudioLens = m_audioqueue->GetAudioLens();
|
|
|
- m_pHostApi->Debug("AudioLens: %d!", nAudioLens);
|
|
|
+ //m_pHostApi->Debug("AudioLens: %d!", nAudioLens);
|
|
|
if (nAudioLens>0)
|
|
|
{
|
|
|
if (nAudioBufferLens < nPerSecBufferLens)
|
|
@@ -1948,6 +1984,35 @@ public:
|
|
|
BOOL StartWmvRecord(int fps,int videoquality,const SubtitleParam *subtitleParam,BOOL bWholeSection,
|
|
|
BOOL bSessionManage,const char *pathname,int pathlength,const char *wmvfilename,int filenamelength, Rvc_RecordAudioParam_t* pAudioParam)//开始记录
|
|
|
{
|
|
|
+ m_salestransqueue = NULL;
|
|
|
+ m_audioqueue = NULL;
|
|
|
+ m_localaudioqueue = new Clibaudioqueue((char *)m_audioqueuename);
|
|
|
+ m_salesaudioqueue = NULL;
|
|
|
+ if (strlen(m_salesaudioqueuename) != 0)
|
|
|
+ {
|
|
|
+ m_salesaudioqueue = new Clibaudioqueue((char*)m_salesaudioqueuename);
|
|
|
+ }
|
|
|
+ m_videoqueue = NULL;
|
|
|
+ if (strlen(m_videoqueuename) != 0)
|
|
|
+ {
|
|
|
+ m_videoqueue = new Clibvideoqueue((char*)m_videoqueuename);
|
|
|
+ }
|
|
|
+ m_videoqueue2 = NULL;
|
|
|
+ if (strlen(m_videoqueue2name) != 0)
|
|
|
+ {
|
|
|
+ m_videoqueue2 = new Clibvideoqueue((char*)m_videoqueue2name);
|
|
|
+ }
|
|
|
+ m_remotevideoqueue = NULL;
|
|
|
+ if (strlen(m_remotevideoqueuename) != 0)
|
|
|
+ {
|
|
|
+ m_remotevideoqueue = new Clibvideoqueue((char*)m_remotevideoqueuename);
|
|
|
+ }
|
|
|
+ m_remoteaudioqueue = NULL;
|
|
|
+ if (strlen(m_remoteaudioqueuename) != 0)
|
|
|
+ {
|
|
|
+ m_remoteaudioqueue = new Clibaudioqueue((char*)m_remoteaudioqueuename);
|
|
|
+ }
|
|
|
+
|
|
|
memset(m_FileName,0,MAX_PATH);
|
|
|
memset(m_PathName,0,MAX_PATH);
|
|
|
if (filenamelength == 0){
|