aja: Fix for invalid default settings and empty cardID string
parent
cdb5b6e812
commit
8f8b522ca7
|
@ -51,17 +51,16 @@ void AJAOutputUI::SetupPropertiesView()
|
|||
static_cast<long long>(IOSelection::Invalid));
|
||||
obs_data_set_default_int(
|
||||
settings, kUIPropVideoFormatSelect.id,
|
||||
static_cast<long long>(NTV2_FORMAT_720p_5994));
|
||||
static_cast<long long>(kDefaultAJAVideoFormat));
|
||||
obs_data_set_default_int(
|
||||
settings, kUIPropPixelFormatSelect.id,
|
||||
static_cast<long long>(NTV2_FBF_8BIT_YCBCR));
|
||||
static_cast<long long>(kDefaultAJAPixelFormat));
|
||||
obs_data_set_default_int(
|
||||
settings, kUIPropSDITransport.id,
|
||||
static_cast<long long>(SDITransport::SingleLink));
|
||||
static_cast<long long>(kDefaultAJASDITransport));
|
||||
obs_data_set_default_int(
|
||||
settings, kUIPropSDITransport4K.id,
|
||||
static_cast<long long>(
|
||||
SDITransport4K::TwoSampleInterleave));
|
||||
static_cast<long long>(kDefaultAJASDITransport4K));
|
||||
}
|
||||
|
||||
// Assign an ID to the program output plugin instance for channel usage tracking
|
||||
|
@ -109,17 +108,16 @@ void AJAOutputUI::SetupPreviewPropertiesView()
|
|||
static_cast<long long>(IOSelection::Invalid));
|
||||
obs_data_set_default_int(
|
||||
settings, kUIPropVideoFormatSelect.id,
|
||||
static_cast<long long>(NTV2_FORMAT_720p_5994));
|
||||
static_cast<long long>(kDefaultAJAVideoFormat));
|
||||
obs_data_set_default_int(
|
||||
settings, kUIPropPixelFormatSelect.id,
|
||||
static_cast<long long>(NTV2_FBF_8BIT_YCBCR));
|
||||
static_cast<long long>(kDefaultAJAPixelFormat));
|
||||
obs_data_set_default_int(
|
||||
settings, kUIPropSDITransport.id,
|
||||
static_cast<long long>(SDITransport::SingleLink));
|
||||
static_cast<long long>(kDefaultAJASDITransport));
|
||||
obs_data_set_default_int(
|
||||
settings, kUIPropSDITransport4K.id,
|
||||
static_cast<long long>(
|
||||
SDITransport4K::TwoSampleInterleave));
|
||||
static_cast<long long>(kDefaultAJASDITransport4K));
|
||||
}
|
||||
|
||||
// Assign an ID to the program output plugin instance for channel usage tracking
|
||||
|
|
|
@ -224,7 +224,7 @@ bool on_misc_device_selected(void *data, obs_properties_t *props,
|
|||
obs_property_t *list, obs_data_t *settings)
|
||||
{
|
||||
const char *cardID = obs_data_get_string(settings, kUIPropDevice.id);
|
||||
if (!cardID)
|
||||
if (!cardID || !cardID[0])
|
||||
return false;
|
||||
aja::CardManager *cardManager = (aja::CardManager *)data;
|
||||
if (!cardManager)
|
||||
|
@ -305,7 +305,7 @@ bool on_multi_view_toggle(void *data, obs_properties_t *props,
|
|||
const int audioInputSource =
|
||||
obs_data_get_int(settings, kUIPropMultiViewAudioSource.id);
|
||||
const char *cardID = obs_data_get_string(settings, kUIPropDevice.id);
|
||||
if (!cardID)
|
||||
if (!cardID || !cardID[0])
|
||||
return false;
|
||||
aja::CardManager *cardManager = (aja::CardManager *)data;
|
||||
if (!cardManager)
|
||||
|
|
|
@ -90,7 +90,8 @@ void populate_io_selection_input_list(const std::string &cardID,
|
|||
{
|
||||
obs_property_list_clear(list);
|
||||
|
||||
obs_property_list_add_int(list, obs_module_text(kUIPropIOSelect.text),
|
||||
obs_property_list_add_int(list,
|
||||
obs_module_text(kUIPropIOSelectNone.text),
|
||||
static_cast<long long>(IOSelection::Invalid));
|
||||
|
||||
for (auto i = 0; i < static_cast<int32_t>(IOSelection::NumIOSelections);
|
||||
|
@ -118,7 +119,8 @@ void populate_io_selection_output_list(const std::string &cardID,
|
|||
{
|
||||
obs_property_list_clear(list);
|
||||
|
||||
obs_property_list_add_int(list, obs_module_text(kUIPropIOSelect.text),
|
||||
obs_property_list_add_int(list,
|
||||
obs_module_text(kUIPropIOSelectNone.text),
|
||||
static_cast<long long>(IOSelection::Invalid));
|
||||
|
||||
if (deviceID == DEVICE_ID_TTAP_PRO) {
|
||||
|
|
|
@ -18,7 +18,11 @@ static const uint32_t kDefaultAudioChannels = 8;
|
|||
static const uint32_t kDefaultAudioSampleRate = 48000;
|
||||
static const uint32_t kDefaultAudioSampleSize = 4;
|
||||
static const int kAutoDetect = -1;
|
||||
static const NTV2VideoFormat kDefaultAJAVideoFormat = NTV2_FORMAT_720p_5994;
|
||||
static const NTV2PixelFormat kDefaultAJAPixelFormat = NTV2_FBF_8BIT_YCBCR;
|
||||
static const SDITransport kDefaultAJASDITransport = SDITransport::SingleLink;
|
||||
static const SDITransport4K kDefaultAJASDITransport4K =
|
||||
SDITransport4K::TwoSampleInterleave;
|
||||
|
||||
// Common OBS property helpers used by both the capture and output plugins
|
||||
extern void filter_io_selection_input_list(const std::string &cardID,
|
||||
|
|
|
@ -765,7 +765,7 @@ bool aja_output_device_changed(void *data, obs_properties_t *props,
|
|||
populate_output_device_list(list);
|
||||
|
||||
const char *cardID = obs_data_get_string(settings, kUIPropDevice.id);
|
||||
if (!cardID)
|
||||
if (!cardID || !cardID[0])
|
||||
return false;
|
||||
|
||||
const char *outputID =
|
||||
|
@ -908,10 +908,9 @@ static void *aja_output_create(obs_data_t *settings, obs_output_t *output)
|
|||
blog(LOG_INFO, "Creating AJA Output...");
|
||||
|
||||
const char *cardID = obs_data_get_string(settings, kUIPropDevice.id);
|
||||
if (!cardID) {
|
||||
blog(LOG_ERROR, "aja_output_create: Card ID is null!");
|
||||
if (!cardID || !cardID[0])
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const char *outputID =
|
||||
obs_data_get_string(settings, kUIPropAJAOutputID.id);
|
||||
|
||||
|
@ -934,11 +933,6 @@ static void *aja_output_create(obs_data_t *settings, obs_output_t *output)
|
|||
OutputProps outputProps(deviceID);
|
||||
outputProps.ioSelect = static_cast<IOSelection>(
|
||||
obs_data_get_int(settings, kUIPropOutput.id));
|
||||
if (outputProps.ioSelect == IOSelection::Invalid) {
|
||||
blog(LOG_DEBUG,
|
||||
"aja_output_create: Select a valid AJA Output IOSelection!");
|
||||
return nullptr;
|
||||
}
|
||||
outputProps.videoFormat = static_cast<NTV2VideoFormat>(
|
||||
obs_data_get_int(settings, kUIPropVideoFormatSelect.id));
|
||||
outputProps.pixelFormat = static_cast<NTV2PixelFormat>(
|
||||
|
@ -959,6 +953,18 @@ static void *aja_output_create(obs_data_t *settings, obs_output_t *output)
|
|||
}
|
||||
}
|
||||
|
||||
if (outputProps.ioSelect == IOSelection::Invalid) {
|
||||
blog(LOG_DEBUG,
|
||||
"aja_output_create: Select a valid AJA Output IOSelection!");
|
||||
return nullptr;
|
||||
}
|
||||
if (outputProps.videoFormat == NTV2_FORMAT_UNKNOWN ||
|
||||
outputProps.pixelFormat == NTV2_FBF_INVALID) {
|
||||
blog(LOG_ERROR,
|
||||
"aja_output_create: Select a valid video and/or pixel format!");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const std::string &ioSelectStr =
|
||||
aja::IOSelectionToString(outputProps.ioSelect);
|
||||
|
||||
|
@ -1222,6 +1228,24 @@ static const char *aja_output_get_name(void *)
|
|||
return obs_module_text(kUIPropOutputModule.text);
|
||||
}
|
||||
|
||||
static void aja_output_defaults(obs_data_t *settings)
|
||||
{
|
||||
obs_data_set_default_int(settings, kUIPropOutput.id,
|
||||
static_cast<long long>(IOSelection::Invalid));
|
||||
obs_data_set_default_int(
|
||||
settings, kUIPropVideoFormatSelect.id,
|
||||
static_cast<long long>(kDefaultAJAVideoFormat));
|
||||
obs_data_set_default_int(
|
||||
settings, kUIPropPixelFormatSelect.id,
|
||||
static_cast<long long>(kDefaultAJAPixelFormat));
|
||||
obs_data_set_default_int(
|
||||
settings, kUIPropSDITransport.id,
|
||||
static_cast<long long>(kDefaultAJASDITransport));
|
||||
obs_data_set_default_int(
|
||||
settings, kUIPropSDITransport4K.id,
|
||||
static_cast<long long>(kDefaultAJASDITransport4K));
|
||||
}
|
||||
|
||||
struct obs_output_info create_aja_output_info()
|
||||
{
|
||||
struct obs_output_info aja_output_info = {};
|
||||
|
@ -1236,6 +1260,7 @@ struct obs_output_info create_aja_output_info()
|
|||
aja_output_info.raw_video = aja_output_raw_video;
|
||||
aja_output_info.raw_audio = aja_output_raw_audio;
|
||||
aja_output_info.update = aja_output_update;
|
||||
aja_output_info.get_defaults = aja_output_defaults;
|
||||
aja_output_info.get_properties = aja_output_get_properties;
|
||||
return aja_output_info;
|
||||
}
|
||||
|
|
|
@ -602,7 +602,7 @@ bool aja_source_device_changed(void *data, obs_properties_t *props,
|
|||
}
|
||||
|
||||
const char *cardID = obs_data_get_string(settings, kUIPropDevice.id);
|
||||
if (!cardID)
|
||||
if (!cardID || !cardID[0])
|
||||
return false;
|
||||
|
||||
auto &cardManager = aja::CardManager::Instance();
|
||||
|
@ -696,7 +696,7 @@ bool aja_io_selection_changed(void *data, obs_properties_t *props,
|
|||
}
|
||||
|
||||
const char *cardID = obs_data_get_string(settings, kUIPropDevice.id);
|
||||
if (!cardID)
|
||||
if (!cardID || !cardID[0])
|
||||
return false;
|
||||
|
||||
auto &cardManager = aja::CardManager::Instance();
|
||||
|
@ -1100,7 +1100,7 @@ void aja_source_save(void *data, obs_data_t *settings)
|
|||
}
|
||||
|
||||
const char *cardID = obs_data_get_string(settings, kUIPropDevice.id);
|
||||
if (!cardID)
|
||||
if (!cardID || !cardID[0])
|
||||
return;
|
||||
|
||||
auto &cardManager = aja::CardManager::Instance();
|
||||
|
|
|
@ -51,8 +51,9 @@ static const UIProperty kUIPropInput = {
|
|||
"",
|
||||
};
|
||||
|
||||
static const UIProperty kUIPropIOSelect = {"ui_prop_select_input", "IOSelect",
|
||||
""};
|
||||
// Used for showing "Select..." item in Input/Output selection drop-downs
|
||||
static const UIProperty kUIPropIOSelectNone = {"ui_prop_select_input",
|
||||
"IOSelect", ""};
|
||||
|
||||
static const UIProperty kUIPropSDITransport = {
|
||||
"ui_prop_sdi_transport",
|
||||
|
|
Loading…
Reference in New Issue