mobile CCTV,mobile surveillance,police body worn cameras

 forgetPW
 registerNow
search
Owner: meige
打印 prevThread nextThread

适配BVCSP.h接口出现问题

[copyURL]

11

主题

157

帖子

533

积分

advMem

Rank: 4

积分
533
41#
 Owner| poston 2019-6-11 19:58 | 显示全部楼层
yumengtao post on2019-6-11 19:47
如果传输文件时得到的返回值为 BVCU_RESULT_E_NOTIMPL(-65526) 可能是一次传输的数据太大了,建议等待一会 ...

每次上传数据改成800字节,有等待上传,返回值还是BVCU_RESULT_E_NOTIMPL(-65526)
reply agree Against

使用道具 report

11

主题

157

帖子

533

积分

advMem

Rank: 4

积分
533
42#
 Owner| poston 2019-6-12 09:05 | 显示全部楼层
yumengtao post on2019-6-11 22:03
在回调通知你上传之后,你一个包都无法上传是吗?

是的,没有一组数据写入通道上传成功的。
reply agree Against

使用道具 report

11

主题

157

帖子

533

积分

advMem

Rank: 4

积分
533
43#
 Owner| poston 2019-6-12 09:57 | 显示全部楼层
yumengtao post on2019-6-11 22:03
在回调通知你上传之后,你一个包都无法上传是吗?

回调的log信息
06-12 09:55:03.701 16816 16820 D MG_LOG  : Log_Callback ,level=1,log=jni-r19c/../src/ThreadNetwork.cpp, line 190, function Login, call Login:1 CUID:8953 user:admin server:192.168.0.175:9701 agent:BVCSP_PU_Test
06-12 09:55:03.724 16816 16820 D MG_LOG  : Log_Callback ,level=1,log=jni-r19c/../src/Session.cpp, line 257, function OnEvent, CSession::OnEvent:1 evetCode:1 result:0
06-12 09:55:03.800 16816 16820 D MG_LOG  : Log_Callback ,level=1,log=jni-r19c/../src/BVDialog.cpp, line 361, function OnEvent, CBVDialog::OnEvent:2 eventCode:1 result:0
06-12 09:55:04.042 16816 16820 D MG_LOG  : Log_Callback ,level=1,log=jni-r19c/../src/Session.cpp, line 276, function OnCommand, 1 CSession::OnCommand: method:1 submothod:65541
06-12 09:55:04.052 16816 16820 D MG_LOG  : Log_Callback ,level=1,log=jni-r19c/../src/Session.cpp, line 276, function OnCommand, 1 CSession::OnCommand: method:1 submothod:65542
06-12 09:55:04.062 16816 16820 D MG_LOG  : Log_Callback ,level=1,log=jni-r19c/../src/Session.cpp, line 276, function OnCommand, 1 CSession::OnCommand: method:1 submothod:65543
06-12 09:55:07.717 16816 16820 D MG_LOG  : Log_Callback ,level=1,log=jni-r19c/../src/ThreadNetwork.cpp, line 354, function Invite, 1 call Invite:3 targetID:NRU_ index:66064 media:16 bOverTCP:1 iResult:0
06-12 09:55:07.789 16816 16820 D MG_LOG  : Log_Callback ,level=1,log=jni-r19c/../src/BVDialog.cpp, line 361, function OnEvent, CBVDialog::OnEvent:3 eventCode:1 result:0
06-12 09:55:34.045 16816 16820 D MG_LOG  : Log_Callback ,level=1,log=jni-r19c/../src/Session.cpp, line 286, function CommandOnEvent, 1 CSession::CommandOnEvent: method:1 submothod:65541 result:-65516
06-12 09:55:34.052 16816 16820 D MG_LOG  : Log_Callback ,level=1,log=jni-r19c/../src/Session.cpp, line 286, function CommandOnEvent, 1 CSession::CommandOnEvent: method:1 submothod:65542 result:-65516
06-12 09:55:34.062 16816 16820 D MG_LOG  : Log_Callback ,level=1,log=jni-r19c/../src/Session.cpp, line 286, function CommandOnEvent, 1 CSession::CommandOnEvent: method:1 submothod:65543 result:-65516
帮忙分析下。
reply agree Against

使用道具 report

11

主题

157

帖子

533

积分

advMem

Rank: 4

积分
533
44#
 Owner| poston 2019-6-12 11:07 | 显示全部楼层
yumengtao post on2019-6-12 10:16
我将我写的思路发给你,你对比一下我们之间的异同
1.登陆时注册文件传输通道。

还是不行,我把我的代码贴给你分析下:
OpenDialog(){
BVCSP_DialogParam dialogParam;

      memset(&dialogParam, 0, sizeof(dialogParam));

      dialogParam.iSize = sizeof(dialogParam);

      dialogParam.hSession = g_hSession;

      strcpy(dialogParam.stTarget.szID, "NRU_");//NRU_

      dialogParam.stTarget.iIndexMajor = BVCU_SUBDEV_INDEXMAJOR_DOWNLOAD;

      dialogParam.iAVStreamDir = BVCU_MEDIADIR_DATASEND;
      dialogParam.stFileTarget.pPathFileName="/temp/Audio/20190611/PU_20190611_172552.aac";//"/PU_8953/Video/20181011/PU_1234567_20181011121314000_00001.JPG";
      dialogParam.stFileTarget.iStartTime_iOffset=0;
      FILE *fp=fopen("/sdcard/sdcard/audio/20190611_172552.aac","rb");
          if(!fp) return false;
          fseek(fp,0L,SEEK_END);
          int size=ftell(fp);
          fclose(fp);
          printf("open lib Dialog_Open size=%d\n",size);
      dialogParam.stFileTarget.iEndTime_iFileSize=size;
      printf("open lib Dialog_Open \n");
      dialogParam.OnEvent = OnDialogEvent;

      dialogParam.afterRecv = OnDialogAfterRecv;


      BVCSP_DialogControlParam dialogControlParam;

      memset(&dialogControlParam, 0, sizeof(dialogControlParam));

      dialogControlParam.iTimeOut = 30 * 1000;

      dialogControlParam.iDelayMax = 5000;

      dialogControlParam.iDelayMin = 500;

      dialogControlParam.iDelayVsSmooth = 3;
      //hejianfeng add start
                 void *handle=getHandle();
                 typedef BVCU_Result (*BVCSP_Dialog_Open)(BVCSP_HDialog* phDialog, BVCSP_DialogParam* pParam, BVCSP_DialogControlParam* pControl);
                 BVCSP_Dialog_Open Dialog_Open = (BVCSP_Dialog_Open) dlsym(handle, "BVCSP_Dialog_Open");
                if(!Dialog_Open)
                {
                        printf("open lib Dialog_Open fail\n");
                        cout<<dlerror()<<endl;
                        dlclose(handle);
                        return false;
                }
                 //hejianfeng add end
                BVCU_Result bvReulst=Dialog_Open(&g_hDialog, &dialogParam, &dialogControlParam);
                printf("open lib Dialog_Open \n");
                cout<<bvReulst<<endl;
}

回调方法OnDialogEvent:
FILE *fd=fopen("/sdcard/sdcard/audio/20190611_172552.aac","r");
                        if(!fd) return;
                        const int iDataLen = 1;

                            char szData[iDataLen] = { 0 };
                             while (1)
                             {
                                     memset(szData, 0, sizeof(szData));
                                 int iReadSize = fread(szData, sizeof(char), iDataLen, fd);

//                                 memset(szData, 0, sizeof(szData));
                                 LOGD("iReadSize=%d,szData size=%d,char size=%d,g_hDialog=%d",iReadSize,sizeof(szData),sizeof(char),g_hDialog);
                                 BVCSP_Packet packet;

                                 memset(&packet, 0, sizeof (packet));

                                 packet.iDataType = BVCSP_DATA_TYPE_TSP;

                                 packet.iDataSize = iReadSize;
                                 packet.bKeyFrame=1;
//                                 fread(szData, 1, iReadSize, fd);

                                 packet.pData = szData;
                                 BVCU_Result result=BVCSP_Dialog_Write(g_hDialog,&packet);
                                 LOGD("BVCSP_Dialog_Write result=%d",result);
                                 if (iReadSize < iDataLen){
                                     break;
                                 }
                                 sleep(1);
                             }

                             fclose(fd);
reply agree Against

使用道具 report

11

主题

157

帖子

533

积分

advMem

Rank: 4

积分
533
45#
 Owner| poston 2019-6-12 16:36 | 显示全部楼层
yumengtao post on2019-6-12 16:00
您尝试一下起一个线程上传文件数据,不要阻塞onEvent回调。

上传文件现在可以了,问下 dialogParam.stFileTarget.pPathFileName="/temp/Audio/20190611/PU_20190611_172552.aac";
temp不能修改吗?如修改成PU_8953.
reply agree Against

使用道具 report

11

主题

157

帖子

533

积分

advMem

Rank: 4

积分
533
46#
 Owner| poston 2019-6-12 16:41 | 显示全部楼层
meige post on2019-6-12 16:36
上传文件现在可以了,问下 dialogParam.stFileTarget.pPathFileName="/temp/Audio/20190611/PU_20190611_ ...

问下,怎样获取文件上传的进度百分比。
reply agree Against

使用道具 report

11

主题

157

帖子

533

积分

advMem

Rank: 4

积分
533
47#
 Owner| poston 2019-6-12 16:46 | 显示全部楼层
实时图传时,向音视频通道BVCSP_Dialog_Write写数据是返回值为-65521,向里面写的是H264数据。
reply agree Against

使用道具 report

11

主题

157

帖子

533

积分

advMem

Rank: 4

积分
533
48#
 Owner| poston 2019-6-12 17:12 | 显示全部楼层
yumengtao post on2019-6-12 16:40
您能再描述一下您的需求吗?

目录是temp,cu端文件检索查不到的,没达到我们的需求,现在修改成PU_***,打开会话会失败。
reply agree Against

使用道具 report

11

主题

157

帖子

533

积分

advMem

Rank: 4

积分
533
49#
 Owner| poston 2019-6-12 17:23 | 显示全部楼层
yumengtao post on2019-6-12 15:43
strcpy(dialogParam.stTarget.szID, "NRU_");//NRU_ 这个地方 "NRU_" 即 NRU_ 有对应 其他设备吗?还是随意 ...

dialogParam.stTarget.szID,不清楚赋什么值。
reply agree Against

使用道具 report

11

主题

157

帖子

533

积分

advMem

Rank: 4

积分
533
50#
 Owner| poston 2019-6-12 17:50 | 显示全部楼层
meige post on2019-6-12 16:46
实时图传时,向音视频通道BVCSP_Dialog_Write写数据是返回值为-65521,向里面写的是H264数据。

BVCU_Result OnDialogCommand(BVCSP_HDialog hDialog, int iEventCode, BVCSP_DialogParam* pParam)

{
         printf(" OnDialogCommand success iEventCode =%d\n",iEventCode);
         printf(" OnDialogCommand success IndexMajor =%d\n",pParam->stTarget.iIndexMajor);
         bvhDialog=hDialog;
         LOGV("bvhDialog=%d",hDialog);
         pParam->OnEvent=OnEventDialog;
         printf(" OnDialogCommand success end\n");
     return BVCU_RESULT_S_OK;

}
void OnEventDialog(BVCSP_HDialog hDialog, int iEventCode, BVCSP_Event_DialogCmd* pParam){
         LOGD(" OnEventDialog success iEventCode =%d\n",iEventCode);
         LOGD(" OnEventDialog success iResult=%d\n",pParam->iResult);
         LOGD(" OnEventDialog success iIndexMajor =%d\n",pParam->pDialogParam->stTarget.iIndexMajor);
         if (iEventCode == BVCSP_EVENT_SESSION_OPEN && pParam->iResult==BVCU_RESULT_S_OK){
                 if(pParam->pDialogParam->stTarget.iIndexMajor==0){
                         pthread_create(&thr[0], NULL, Dialog_Write, NULL);//在这里开始向通道里写入数据
                 }
         }
}
帮忙分析下什么原因写入数据失败。
reply agree Against

使用道具 report

creditRule

QQ|wireless surveillance

GMT+8, 2024-5-3 20:33 , Processed in 0.066409 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

QuickReply backToTop BackToList