加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
ChannelUSB.cpp 1.93 KB
一键复制 编辑 原始数据 按行查看 历史
wangc 提交于 2022-08-15 17:33 . usb相机增加设置帧率
#include "ChannelUSB.h"
#include <QDateTime>
#include <QDir>
#include <QFileInfo>
ChannelUSB::ChannelUSB(QObject *parent) : Channel(parent)
{
alsa=Link::create("InputAlsa");
audio=Link::create("Resample");
video=Link::create("DecodeV");
encA=Link::create("EncodeA");
encV=Link::create("EncodeV");
encV2=Link::create("EncodeV");
usb=Link::create("InputV4l2");
}
void ChannelUSB::init(QVariantMap)
{
video->start();
usb->linkV(video);
overlay->linkV(encV);
overlay->linkV(encV2);
audio->start();
alsa->linkA(audio);
gain->linkA(encA);
Channel::init();
}
void ChannelUSB::updateConfig(QVariantMap cfg)
{
if(cfg["enable"].toBool())
{
if(cfg.contains("alsa"))
{
QVariantMap data;
data["path"] = cfg["alsa"].toString();
if(cfg.contains("lnk"))
data["lnk"] = cfg["lnk"].toString();
if(cfg.contains("channels"))
data["channels"] = cfg["channels"].toInt();
alsa->start(data);
}
else
alsa->start();
{
QVariantMap data;
data["width"]=cfg["encv"].toMap()["width"].toInt();
data["height"]=cfg["encv"].toMap()["height"].toInt();
data["framerate"]=cfg["encv"].toMap()["framerate"].toInt();
usb->start(data);
}
if(cfg["encv"].toMap()["codec"].toString()!="close")
encV->start(cfg["encv"].toMap());
else
encV->stop();
if(cfg["encv2"].toMap()["codec"].toString()!="close")
encV2->start(cfg["encv2"].toMap());
else
encV2->stop();
if(cfg["enca"].toMap()["codec"].toString()!="close")
encA->start(cfg["enca"].toMap());
else
encA->stop();
}
else
{
alsa->stop();
usb->stop();
encV->stop();
encV2->stop();
}
Channel::updateConfig(cfg);
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化