gSOAP을 사용하여 ONVIF 호환 카메라를 구성하고 있습니다. 현재 요청에서 모든 매개 변수를 수동으로 설정하고 있습니다. 이것은 SetVideEncoderConfigurationgSOAP 요청/응답에 값을 설정하거나 가져 오는 더 쉬운 방법이 있습니까?
MediaBindingProxy mediaDevice (uri);
AUTHENTICATE (mediaDevice);
_trt__SetVideoEncoderConfiguration req;
_trt__SetVideoEncoderConfigurationResponse resp;
struct tt__VideoEncoderConfiguration encoderConfig;
struct tt__VideoResolution resolutionConfig;
encoderConfig.Name = strdup (name);
encoderConfig.UseCount = 1;
encoderConfig.Quality = 50;
if (strcmp (encoding, "H264") == 0)
encoderConfig.Encoding = tt__VideoEncoding__H264;
else if (strcmp (encoding, "JPEG") == 0)
encoderConfig.Encoding = tt__VideoEncoding__JPEG;
encoderConfig.token = strdup (profileToken);
encoderConfig.SessionTimeout = (LONG64)"PT0S";
resolutionConfig.Width=1280;
resolutionConfig.Height=720;
encoderConfig.Resolution = &resolutionConfig;
tt__VideoRateControl rateControl;
rateControl.FrameRateLimit = 15;
rateControl.EncodingInterval = 1;
rateControl.BitrateLimit = 4500;
encoderConfig.RateControl = &rateControl;
struct tt__H264Configuration h264;
h264.GovLength = 30;
h264.H264Profile = tt__H264Profile__Baseline;
encoderConfig.H264 = &h264;
struct tt__MulticastConfiguration multicast;
struct tt__IPAddress address;
address.IPv4Address = strdup ("0.0.0.0");
multicast.Address = &address;
encoderConfig.Multicast = &multicast;
req.Configuration = &encoderConfig;
req.ForcePersistence = true;
int ret = mediaDevice.SetVideoEncoderConfiguration (&req, resp);
qDebug() << "Set Encoder: " << ret;
이 작업을 수행하는 쉬운 방법이 있나요입니다? 요청 매개 변수를 설정하는 함수 호출이있을 수 있습니까? 내가 GetMediaUri 발견하는 또 다른 방법은
soap_new_req__trt__GetStreamUri (mediaDevice.soap,soap_new_req_tt__StreamSetup (mediaDevice.soap, (enum tt__StreamType)0, soap_new_tt__Transport(mediaDevice.soap), 1, NULL), "profile1");
같은 것을 사용하는 것이 었습니다 이러한 gSOAP와 클라이언트 측 코드에 대한 두 가지 방법이 있습니까?
-Mandar 조시
메모리 누수에주의하십시오.'stapdup'가 아닌'soap_malloc'을 사용하여 문자열을 할당해야합니다. – mpromonet