UltraGrid
UltraGrid Low-Latency High-Resolution Transmission System
Loading...
Searching...
No Matches
video_opts.cpp File Reference
#include <cstring>
#include <QLabel>
#include "video_opts.hpp"
#include "combobox_ui.hpp"
#include "lineedit_ui.hpp"
Include dependency graph for video_opts.cpp:

Go to the source code of this file.

Functions

std::vector< SettingItem > getCodecEncoders (const Codec &codec)
 
std::vector< SettingItem > getVideoCompress (AvailableSettings *availSettings)
 
std::vector< SettingItem > getVideoDisplay (AvailableSettings *availSettings)
 
std::vector< SettingItem > getVideoModes (AvailableSettings *availSettings)
 
std::vector< SettingItem > getVideoSrc (AvailableSettings *availSettings)
 
void videoCompressBitrateCallback (Option &opt, bool suboption, void *opaque)
 

Function Documentation

◆ getCodecEncoders()

std::vector< SettingItem > getCodecEncoders ( const Codec & codec)

Definition at line 123 of file video_opts.cpp.

123 {
124 std::vector<SettingItem> res;
125
126 for(const auto& encoder: codec.encoders){
128 item.name = encoder.name;
129 item.opts.push_back({"video.compress." + codec.module_name + ".codec." + codec.name + ".encoder", encoder.optStr});
130
131 res.emplace_back(std::move(item));
132 }
133
134 return res;
135}
std::string name
std::vector< encoder > encoders
std::string name
Definition hd-rum.c:27

References codec::encoders, codec::name, and encoder::name.

Referenced by SettingsUi::buildCodecOptControls().

◆ getVideoCompress()

std::vector< SettingItem > getVideoCompress ( AvailableSettings * availSettings)

Definition at line 137 of file video_opts.cpp.

137 {
138 std::vector<SettingItem> res;
139
140 const std::string optStr = "video.compress";
141
142 for(const auto& codec : availSettings->getVideoCompressCodecs()){
144 item.name = codec.name;
145 item.opts.push_back({"video.compress", codec.module_name});
146 item.opts.push_back({"video.compress." + codec.module_name + ".codec", codec.name});
147
148 res.push_back(std::move(item));
149 }
150
151 return res;
152}
const std::vector< Codec > & getVideoCompressCodecs() const

References AvailableSettings::getVideoCompressCodecs(), and codec::name.

Referenced by SettingsUi::initMainWin().

Here is the call graph for this function:

◆ getVideoDisplay()

std::vector< SettingItem > getVideoDisplay ( AvailableSettings * availSettings)

Definition at line 75 of file video_opts.cpp.

75 {
76 const char * const whiteList[] = {
77 "dvs",
78 "quicktime"
79 };
80
81 const std::string optStr = "video.display";
82
83 std::vector<SettingItem> res;
84
85 SettingItem defaultItem;
86 defaultItem.name = "None";
87 defaultItem.opts.push_back({optStr, ""});
88 defaultItem.opts.push_back({"video.display.embeddedAudioAvailable", "f"});
89 res.push_back(std::move(defaultItem));
90
91 for(const auto &i : availSettings->getDevices(VIDEO_DISPLAY)){
93 item.name = i.name;
94 item.opts.push_back({optStr, i.type});
95 item.opts.push_back({optStr + "." + i.type + ".device", i.deviceOpt});
96 auto embedAudioIt = i.extra.find("embeddedAudioAvailable");
97 bool enableAudio = embedAudioIt != i.extra.end()
98 && embedAudioIt->second == "t";
99 item.opts.push_back({"video.display.embeddedAudioAvailable",
100 enableAudio ? "t" : "f"});
101 res.push_back(std::move(item));
102 }
103
104 for(const auto &i : availSettings->getAvailableSettings(VIDEO_DISPLAY)){
106 item.name = i;
107 item.opts.push_back({optStr, i});
108 bool whiteListed = false;
109 for(const auto &white : whiteList){
110 if(std::strcmp(white, i.c_str()) == 0){
111 whiteListed = true;
112 }
113 }
114 if(!whiteListed){
115 item.conditions.push_back({{{"advanced", "t"}, false}});
116 }
117 res.push_back(std::move(item));
118 }
119
120 return res;
121}
const std::vector< Device > & getDevices(SettingType type) const
const std::vector< std::string > & getAvailableSettings(SettingType type) const
std::vector< SettingValue > opts
std::string name

References AvailableSettings::getAvailableSettings(), AvailableSettings::getDevices(), SettingItem::name, and SettingItem::opts.

Referenced by SettingsUi::initMainWin().

Here is the call graph for this function:

◆ getVideoModes()

std::vector< SettingItem > getVideoModes ( AvailableSettings * availSettings)

Definition at line 54 of file video_opts.cpp.

54 {
55 std::vector<SettingItem> res;
56
57 for(const auto &cap : availSettings->getDevices(VIDEO_SRC)){
58 for(const auto &mode : cap.modes){
60 item.name = mode.name;
61 item.conditions.push_back({{{"video.source", cap.type}, false}});
62 item.conditions.push_back({
63 {{"video.source." + cap.type + ".device", cap.deviceOpt}, false}});
64 for(const auto &opt : mode.opts){
65 item.opts.push_back(
66 {"video.source." + cap.type + "." + opt.opt, opt.val});
67 }
68 res.push_back(std::move(item));
69 }
70 }
71
72 return res;
73}
enum openssl_mode mode

References AvailableSettings::getDevices(), and mode.

Referenced by SettingsUi::initMainWin().

Here is the call graph for this function:

◆ getVideoSrc()

std::vector< SettingItem > getVideoSrc ( AvailableSettings * availSettings)

Definition at line 8 of file video_opts.cpp.

8 {
9 const char * const whiteList[] = {
10 "bitflow",
11 };
12 const std::string optStr = "video.source";
13
14 std::vector<SettingItem> res;
15
16 SettingItem defaultItem;
17 defaultItem.name = "None";
18 defaultItem.opts.push_back({optStr, ""});
19 defaultItem.opts.push_back({"video.source.embeddedAudioAvailable", "f"});
20 res.push_back(std::move(defaultItem));
21
22 for(const auto &i : availSettings->getDevices(VIDEO_SRC)){
24 item.name = i.name;
25 item.opts.push_back({optStr, i.type});
26 item.opts.push_back({optStr + "." + i.type + ".device", i.deviceOpt});
27 auto embedAudioIt = i.extra.find("embeddedAudioAvailable");
28 bool enableAudio = embedAudioIt != i.extra.end()
29 && embedAudioIt->second == "t";
30 item.opts.push_back({"video.source.embeddedAudioAvailable",
31 enableAudio ? "t" : "f"});
32 res.push_back(std::move(item));
33 }
34
35 for(const auto &i : availSettings->getAvailableSettings(VIDEO_SRC)){
37 item.name = i;
38 item.opts.push_back({optStr, i});
39 bool whiteListed = false;
40 for(const auto &white : whiteList){
41 if(std::strcmp(white, i.c_str()) == 0){
42 whiteListed = true;
43 }
44 }
45 if(!whiteListed){
46 item.conditions.push_back({{{"advanced", "t"}, false}});
47 }
48 res.push_back(std::move(item));
49 }
50
51 return res;
52}

References AvailableSettings::getAvailableSettings(), AvailableSettings::getDevices(), SettingItem::name, and SettingItem::opts.

Referenced by SettingsUi::initMainWin().

Here is the call graph for this function:

◆ videoCompressBitrateCallback()

void videoCompressBitrateCallback ( Option & opt,
bool suboption,
void * opaque )

Definition at line 154 of file video_opts.cpp.

154 {
155 VideoBitrateCallbackData *data = static_cast<VideoBitrateCallbackData *>(opaque);
156 if(suboption)
157 return;
158
159 Settings *settings = opt.getSettings();
160 std::string mod = settings->getOption("video.compress").getValue();
161 std::string codec = settings->getOption("video.compress." + mod + ".codec").getValue();
162
163 bool enableEdit = false;
164 QString toolTip;
165 QString qualityLabel;
166 QString placeholder;
167
168 for(const auto& compMod : data->availSettings->getVideoCompressModules()){
169 if(compMod.name == mod){
170 for(const auto& modOpt : compMod.opts){
171 if(modOpt.key == "quality"){
172 enableEdit = true;
173 toolTip = QString::fromStdString(modOpt.displayDesc);
174 qualityLabel = QString::fromStdString(modOpt.displayName);
175 placeholder = QString::fromStdString(modOpt.placeholder);
176 break;
177 }
178 }
179 }
180 }
181
182 data->lineEditUi->setOpt("video.compress." + mod + ".quality");
183 data->lineEditUi->setEnabled(enableEdit);
184 data->lineEditUi->setToolTip(toolTip);
186 if(data->label){
187 data->label->setEnabled(enableEdit);
188 data->label->setToolTip(toolTip);
189 if(!qualityLabel.isEmpty())
190 data->label->setText(qualityLabel);
191 }
192}
const std::vector< CompressModule > & getVideoCompressModules() const
void setToolTip(const QString &toolTip)
void setEnabled(bool enabled)
void setPlaceholder(const QString &placeholder)
std::string getValue() const
Definition settings.cpp:26
Settings * getSettings()
Definition settings.cpp:129
const Option & getOption(const std::string &opt) const
Definition settings.cpp:384
void setOpt(const std::string &opt)
Definition widget_ui.cpp:15
const AvailableSettings * availSettings
const char * placeholder
Definition cineform.cpp:128

References VideoBitrateCallbackData::availSettings, Settings::getOption(), Option::getSettings(), Option::getValue(), AvailableSettings::getVideoCompressModules(), VideoBitrateCallbackData::label, VideoBitrateCallbackData::lineEditUi, placeholder, LineEditUi::setEnabled(), WidgetUi::setOpt(), LineEditUi::setPlaceholder(), and LineEditUi::setToolTip().

Referenced by SettingsUi::initMainWin().

Here is the call graph for this function: