0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 04:42:18 +02:00

libobs: Add obs_video_active() function

(This commit also modifies UI)

Adds a universal function for determining whether video output is
currently active, rather than having to use video_output_active() on the
value returned by obs_get_video().
This commit is contained in:
jp9000 2018-10-05 19:36:51 -07:00
parent 93fc61fa82
commit 82848d513e
4 changed files with 17 additions and 5 deletions

View File

@ -586,7 +586,7 @@ try {
auto ActiveOrGameCaptureLocked = [this] ()
{
if (video_output_active(obs_get_video())) {
if (obs_video_active()) {
if (manualUpdate)
info(QTStr("Updater.Running.Title"),
QTStr("Updater.Running.Text"));

View File

@ -1373,7 +1373,7 @@ void OBSBasicSettings::LoadVideoSettings()
{
loading = true;
if (video_output_active(obs_get_video())) {
if (obs_video_active()) {
ui->videoPage->setEnabled(false);
ui->videoMsg->setText(
QTStr("Basic.Settings.Video.CurrentlyActive"));
@ -1850,7 +1850,7 @@ void OBSBasicSettings::LoadOutputSettings()
LoadAdvOutputFFmpegSettings();
LoadAdvOutputAudioSettings();
if (video_output_active(obs_get_video())) {
if (obs_video_active()) {
ui->outputMode->setEnabled(false);
ui->outputModeLabel->setEnabled(false);
ui->simpleRecordingGroupBox->setEnabled(false);
@ -2228,7 +2228,7 @@ void OBSBasicSettings::LoadAdvancedSettings()
if (!SetComboByValue(ui->bindToIP, bindIP))
SetInvalidValue(ui->bindToIP, bindIP, bindIP);
if (video_output_active(obs_get_video())) {
if (obs_video_active()) {
ui->advancedVideoContainer->setEnabled(false);
}

View File

@ -1014,7 +1014,7 @@ int obs_reset_video(struct obs_video_info *ovi)
if (!obs) return OBS_VIDEO_FAIL;
/* don't allow changing of video settings if active. */
if (obs->video.video && video_output_active(obs->video.video))
if (obs->video.video && obs_video_active())
return OBS_VIDEO_CURRENTLY_ACTIVE;
if (!size_valid(ovi->output_width, ovi->output_height) ||
@ -2258,3 +2258,12 @@ obs_data_t *obs_get_private_data(void)
obs_data_addref(private_data);
return private_data;
}
bool obs_video_active(void)
{
struct obs_core_video *video = &obs->video;
if (!obs)
return false;
return os_atomic_load_long(&video->raw_active) > 0;
}

View File

@ -535,6 +535,9 @@ EXPORT audio_t *obs_get_audio(void);
/** Gets the main video output handler for this OBS context */
EXPORT video_t *obs_get_video(void);
/** Returns true if video is active, false otherwise */
EXPORT bool obs_video_active(void);
/** Sets the primary output source for a channel. */
EXPORT void obs_set_output_source(uint32_t channel, obs_source_t *source);