#include "ChannelVI.h"#include <math.h>#include <QFile>#include "Config.h"ChannelVI::ChannelVI(QObject *parent) :Channel(parent){vi=Link::create("InputVi");encA=Link::create("EncodeA");encV=Link::create("EncodeV");encV2=Link::create("EncodeV");alsa=NULL;#if (defined HI3519A) || (defined HI3559A)viR=Link::create("InputVi");AVS=Link::create("SAVS");video=AVS;#elsevideo=vi;#ifdef HI3516CV610dei = NULL;#elif SS928V100dei = NULL;#elsedei = Link::create("Deinterlace");#endif#endif}void ChannelVI::init(QVariantMap cfg){if(cfg.contains("alsa")){alsa=Link::create("InputAlsa");audio=Link::create("Resample");audio->start();alsa->linkA(audio);}elseaudio=Link::create("InputAi");gain->linkA(encA);if(cfg["encv"].toMap()["lowLatency"].toBool())video->linkV(encV);elseoverlay->linkV(encV);if(cfg["encv2"].toMap()["lowLatency"].toBool())video->linkV(encV2);elseoverlay->linkV(encV2);#if (defined HI3519A) || (defined HI3559A)if(enableAVS){vi->linkV(AVS);viR->linkV(AVS);AVS->start();}else{video=vi;}#elseif(dei!=NULL)vi->linkV(dei);#endifChannel::init(cfg);}void ChannelVI::updateConfig(QVariantMap cfg){#if (defined HI3519A) || (defined HI3559A)if(enableAVS){QVariantMap vd;vd["interface"]=cfg["interface"].toString()+"-L";vi->start(vd);vd["interface"]=cfg["interface"].toString()+"-R";viR->start(vd);}else{QVariantMap vd;vd["interface"]=cfg["interface"].toString();vi->start(vd);}#elseif(cfg["cap"].toMap()["deinterlace"].toBool() && dei!=NULL){video=dei;dei->start();vi->unLinkV(overlay);dei->linkV(overlay);}else{video=vi;if(dei!=NULL){dei->stop();dei->unLinkV(overlay);}vi->linkV(overlay);}QVariantMap vd;vd["interface"]=cfg["interface"].toString();vd["crop"]=cfg["cap"].toMap()["crop"].toMap();if(cfg["cap"].toMap().contains("rotate"))vd["rotate"]=cfg["cap"].toMap()["rotate"].toInt();if(cfg["cap"].toMap().contains("contrast"))vd["contrast"]=cfg["cap"].toMap()["contrast"].toInt();#endifif(cfg["enable"].toBool()){vi->start(vd);QVariantMap ad;if(cfg.contains("alsa")){ad["interface"]=cfg["interface"].toString();alsa->start(ad);}else if(Link::getConfig()["interfaceA"].toMap().contains(cfg["interface"].toString())){ad["interface"]=cfg["interface"].toString();#if defined HI3516E || defined HI3516CV610ad["type"]=(cfg["enca"].toMap()["audioSrc"].toString()=="line")?"codec":"i2s";#endifif(cfg["enca"].toMap().contains("audioTrack"))ad["track"] = cfg["enca"].toMap()["audioTrack"].toInt();audio->start(ad);}if(cfg["enca"].toMap()["codec"].toString()!="close"){QVariantMap dd=cfg["enca"].toMap();dd.remove("audioSrc");dd.remove("audioTrack");encA->start(dd);}elseencA->stop();if(cfg["encv"].toMap()["codec"].toString()!="close"){QVariantMap dataEncv=cfg["encv"].toMap();#if (defined HI3519A) || (defined HI3559A)dataEncv["scaleUp"]=true;#endifdataEncv["ntsc"]=cfg["cap"].toMap()["ntsc"].toBool();encV->start(dataEncv);}elseencV->stop();if(cfg["enable2"].toBool() && cfg["encv2"].toMap()["codec"].toString()!="close")encV2->start(cfg["encv2"].toMap());elseencV2->stop();// {// QVariantMap dataSnap;// dataSnap["width"]=cfg["encv"].toMap()["width"].toInt();// dataSnap["height"]=cfg["encv"].toMap()["height"].toInt();// snap->setData(dataSnap);// }}else{encA->stop();encV->stop();}Channel::updateConfig(cfg);}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。