public bool MakeIFrame(string hostNo, int channel, MediaServer cameraMediaServer)
{
MediaServer clientMediaServer = this.sdkMediaServer;
if (clientMediaServer == null)
{
clientMediaServer = cameraMediaServer;
}
NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log);
logEx.Trace("Enter: TiandySdkClient.MakeIFrame({0},{1},{2}).", hostNo, channel, cameraMediaServer.No);
try
{
//调用SDK接口,登陆主机(编码器)()
int loginResult = client_sdk_login2_by_id(hostNo,
clientMediaServer.User,
clientMediaServer.Pwd,
clientMediaServer.No,
cameraMediaServer.No,
clientMediaServer.Ip,
clientMediaServer.Port,
0);
if (loginResult == CgwConst.START_RECEIVE_VIDEO_DATA_FAILED)
{
logEx.Error("Call Tiandy sdk function client_sdk_login2_by_id failed.dev_id:{0},username:{1},client_sup_id:{2},dev_sup_id:{3},client_sup_ip:{4},client_sup_port:{5}.",
hostNo,
clientMediaServer.User,
clientMediaServer.No,
cameraMediaServer.No,
clientMediaServer.Port);
return false;
}
else
{
logEx.Info("Call Tiandy sdk function client_sdk_login2_by_id success.");
}
//生成I帧
if (client_sdk_make_key_frame(loginResult, channel))
{
logEx.Info("Call Tiandy sdk function client_sdk_make_key_frame success.");
return true;
}
else
{
logEx.Error("Call Tiandy sdk function client_sdk_make_key_frame failed.channel:{0}", channel);
return false;
}
//发完关键帧后,要退出登录
}
catch (Exception e)
{
logEx.Error("Maker I frame failed.channel:{0},Exception message:{1}.", channel, e.Message);
return false;
}
}