linux onvif 框架搭建,linux设备上的Onvif 实现12: 获取媒体配置数据

1 背景

通过GetProfiles命令可以获得设备的所有配置信息,这是比较全面的数据。通过GetVideoEncoderConfigurations()函数可以获得单独的媒体配置信息,返回的应答中包括主通道和子通道的数据。

2 函数原型

SOAP_FMAC5 int SOAP_FMAC6 soap_call___ns8__GetVideoEncoderConfigurations(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct _ns8__GetVideoEncoderConfigurations *ns8__GetVideoEncoderConfigurations, struct _ns8__GetVideoEncoderConfigurationsResponse *ns8__GetVideoEncoderConfigurationsResponse)

这个函数用法简单,只需指定媒体信息地址URI即可。

3 我的代码实例:

struct _ns8__GetVideoEncoderConfigurations getConfigReq;

struct _ns8__GetVideoEncoderConfigurationsResponse getConfigResponse;

struct ns3__VideoEncoderConfiguration *Configurations;

result = soap_call___ns8__GetVideoEncoderConfigurations(soap, deviceode->mediauri, NULL, &getConfigReq, &getConfigResponse);

if(result==-1)

{

printf("soap error: %d, %s, %s\n", soap->error, *soap_faultcode(soap), *soap_faultstring(soap));

result = soap->error;

return FALSE;

}

else

{

printf(" GetVideoEncoderConfigurations  OK!  \n");

count = getConfigResponse.__sizeConfigurations;

Configurations = getConfigResponse.Configurations;

printf(" getConfigResponse__sizeConfigurations=%d \n", count);

for(i=0;i{

#if 1

printf(" getConfigResponse.Configurations[%d]->Name=%s \n",                        i,Configurations->Name);

printf(" getConfigResponse.Configurations[%d]->UseCount=%d \n",                    i,Configurations->UseCount);

printf(" getConfigResponse.Configurations[%d]->token=%s \n",                       i,Configurations->token);

printf(" getConfigResponse.Configurations[%d]->Encoding=%d \n",                    i,Configurations->Encoding);

printf(" getConfigResponse.Configurations[%d]->Resolution->Width=%d \n",           i,Configurations->Resolution->Width);

printf(" getConfigResponse.Configurations[%d]->Resolution->Height=%d \n",          i,Configurations->Resolution->Height);

printf(" getConfigResponse.Configurations[%d]->Quality=%f \n",                     i,Configurations->Quality);

printf(" getConfigResponse.Configurations[%d]->RateControl->FrameRateLimit=%d \n", i,Configurations->RateControl->FrameRateLimit);

printf(" getConfigResponse.Configurations[%d]->RateControl->EncodingInterval=%d\n",i,Configurations->RateControl->EncodingInterval); // ??±à?????à:??n??±à??????

printf(" getConfigResponse.Configurations[%d]->RateControl->BitrateLimit=%d \n",   i,Configurations->RateControl->BitrateLimit);

printf(" getConfigResponse.Configurations[%d]->H264->GovLength=%d \n",             i,Configurations->H264->GovLength);  //I??????

printf(" getConfigResponse.Configurations[%d]->H264->H264Profile=%d \n",           i,Configurations->H264->H264Profile);

#endif

if(i+1{

Configurations++;  //指向下一个配置

}

}

}

4 命令应答报文:

linux服务器发出命令 GetVideoEncoderConfigurations,获取配置参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值