Overview
Request 4565 (accepted)
- Update to version 24.0.1:
* obs-browser: Fix a deadlock
* libobs: Update version to 24.0.1
* libobs: Add API to get last OBS version of a source
* obs-browser: Signal whether audio active/inactive
* UI: Hide mixer sources if audio deactivated
* libobs: Add funcs to determine whether audio active
* obs-browser: Turn rerouting audio off by default
* UI: Check for null pointer
* UI: Fix crash closing mixer dock panels
* win-dshow: Do not allow H264 to have same priority as MJPEG
* win-dshow: Disable HW decode in DirectShow for now
* UI: Adjust locale name for zh-TW
- Created by boombatower over 5 years ago
- In state accepted
-
Package maintainers:
boombatower,
darix, and
frispete
obs-studio.changes
Changed
-------------------------------------------------------------------
+Sun Sep 22 21:04:42 UTC 2019 - jimmy@boombatower.com
+
+- Update to version 24.0.1:
+ * obs-browser: Fix a deadlock
+ * libobs: Update version to 24.0.1
+ * libobs: Add API to get last OBS version of a source
+ * obs-browser: Signal whether audio active/inactive
+ * UI: Hide mixer sources if audio deactivated
+ * libobs: Add funcs to determine whether audio active
+ * obs-browser: Turn rerouting audio off by default
+ * UI: Check for null pointer
+ * UI: Fix crash closing mixer dock panels
+ * win-dshow: Do not allow H264 to have same priority as MJPEG
+ * win-dshow: Disable HW decode in DirectShow for now
+ * UI: Adjust locale name for zh-TW
+
+-------------------------------------------------------------------
Thu Sep 19 02:55:09 UTC 2019 - jimmy@boombatower.com
- Update to version 24.0.0:
obs-studio.spec
Changed
Name: obs-studio
-Version: 24.0.0
+Version: 24.0.1
Release: 0
Summary: A recording/broadcasting program
Group: Productivity/Multimedia/Video/Editors and Convertors
_service
Changed
<services>
<service name="tar_scm" mode="disabled">
<param name="versionformat">@PARENT_TAG@</param>
- <param name="revision">refs/tags/24.0.0</param>
+ <param name="revision">refs/tags/24.0.1</param>
<param name="url">git://github.com/jp9000/obs-studio.git</param>
<param name="scm">git</param>
<param name="changesgenerate">enable</param>
_servicedata
Changed
<servicedata>
<service name="tar_scm">
<param name="url">git://github.com/jp9000/obs-studio.git</param>
- <param name="changesrevision">5d95cfc3614d6d720d204be1a14ca90486e64498</param>
+ <param name="changesrevision">94570478b7d1f8c097a0bf8d8dabfb5613e4ab92</param>
</service>
</servicedata>
obs-studio-24.0.0.tar.xz/UI/auth-mixer.cpp -> obs-studio-24.0.1.tar.xz/UI/auth-mixer.cpp
Changed
chat->setAllowedAreas(Qt::AllDockWidgetAreas);
QCefWidget *browser = cef->create_widget(nullptr, url, panel_cookies);
- chat->setWidget(browser);
+ chat->SetWidget(browser);
main->addDockWidget(Qt::RightDockWidgetArea, chat.data());
chatMenu.reset(main->AddDockWidget(chat.data()));
obs-studio-24.0.0.tar.xz/UI/data/locale.ini -> obs-studio-24.0.1.tar.xz/UI/data/locale.ini
Changed
Name=简体中文
[zh-TW]
-Name=正體中文(臺灣)
+Name=繁體中文
[bg-BG]
Name=Български
obs-studio-24.0.0.tar.xz/UI/window-basic-main.cpp -> obs-studio-24.0.1.tar.xz/UI/window-basic-main.cpp
Changed
signalHandlers.emplace_back(obs_get_signal_handler(),
"source_deactivate",
OBSBasic::SourceDeactivated, this);
+ signalHandlers.emplace_back(obs_get_signal_handler(),
+ "source_audio_activate",
+ OBSBasic::SourceAudioActivated, this);
+ signalHandlers.emplace_back(obs_get_signal_handler(),
+ "source_audio_deactivate",
+ OBSBasic::SourceAudioDeactivated, this);
signalHandlers.emplace_back(obs_get_signal_handler(), "source_rename",
OBSBasic::SourceRenamed, this);
}
{
if (SourceMixerHidden(source))
return;
+ if (!obs_source_audio_active(source))
+ return;
bool vertical = config_get_bool(GetGlobalConfig(), "BasicWindow",
"VerticalVolControl");
Q_ARG(OBSSource, OBSSource(source)));
}
+void OBSBasic::SourceAudioActivated(void *data, calldata_t *params)
+{
+ obs_source_t *source = (obs_source_t *)calldata_ptr(params, "source");
+
+ if (obs_source_active(source))
+ QMetaObject::invokeMethod(static_cast<OBSBasic *>(data),
+ "ActivateAudioSource",
+ Q_ARG(OBSSource, OBSSource(source)));
+}
+
+void OBSBasic::SourceAudioDeactivated(void *data, calldata_t *params)
+{
+ obs_source_t *source = (obs_source_t *)calldata_ptr(params, "source");
+ QMetaObject::invokeMethod(static_cast<OBSBasic *>(data),
+ "DeactivateAudioSource",
+ Q_ARG(OBSSource, OBSSource(source)));
+}
+
void OBSBasic::SourceRenamed(void *data, calldata_t *params)
{
obs_source_t *source = (obs_source_t *)calldata_ptr(params, "source");
obs-studio-24.0.0.tar.xz/UI/window-basic-main.hpp -> obs-studio-24.0.1.tar.xz/UI/window-basic-main.hpp
Changed
static void SourceRemoved(void *data, calldata_t *params);
static void SourceActivated(void *data, calldata_t *params);
static void SourceDeactivated(void *data, calldata_t *params);
+ static void SourceAudioActivated(void *data, calldata_t *params);
+ static void SourceAudioDeactivated(void *data, calldata_t *params);
static void SourceRenamed(void *data, calldata_t *params);
static void RenderMain(void *data, uint32_t cx, uint32_t cy);
obs-studio-24.0.0.tar.xz/UI/window-dock-browser.cpp -> obs-studio-24.0.1.tar.xz/UI/window-dock-browser.cpp
Changed
panel_version = obs_browser_qcef_version();
}
- if (panel_version >= 2) {
+ if (panel_version >= 2 && !!cefWidget) {
cefWidget->closeBrowser();
}
}
obs-studio-24.0.0.tar.xz/libobs/obs-config.h -> obs-studio-24.0.1.tar.xz/libobs/obs-config.h
Changed
*
* Reset to zero each major or minor version
*/
-#define LIBOBS_API_PATCH_VER 0
+#define LIBOBS_API_PATCH_VER 1
#define MAKE_SEMANTIC_VERSION(major, minor, patch) \
((major << 24) | (minor << 16) | patch)
obs-studio-24.0.0.tar.xz/libobs/obs-internal.h -> obs-studio-24.0.1.tar.xz/libobs/obs-internal.h
Changed
/* general exposed flags that can be set for the source */
uint32_t flags;
uint32_t default_flags;
+ uint32_t last_obs_ver;
/* indicates ownership of the info.id buffer */
bool owns_info_id;
bool audio_failed;
bool audio_pending;
bool pending_stop;
+ bool audio_active;
bool user_muted;
bool muted;
struct obs_source *next_audio_source;
void audio_monitor_reset(struct audio_monitor *monitor);
extern void audio_monitor_destroy(struct audio_monitor *monitor);
+extern obs_source_t *obs_source_create_set_last_ver(const char *id,
+ const char *name,
+ obs_data_t *settings,
+ obs_data_t *hotkey_data,
+ uint32_t last_obs_ver);
extern void obs_source_destroy(struct obs_source *source);
enum view_type {
obs-studio-24.0.0.tar.xz/libobs/obs-source.c -> obs-studio-24.0.1.tar.xz/libobs/obs-source.c
Changed
"void update_flags(ptr source, int flags)",
"void audio_sync(ptr source, int out int offset)",
"void audio_mixers(ptr source, in out int mixers)",
+ "void audio_activate(ptr source)",
+ "void audio_deactivate(ptr source)",
"void filter_add(ptr source, ptr filter)",
"void filter_remove(ptr source, ptr filter)",
"void reorder_filters(ptr source)",
source->volume = 1.0f;
source->sync_offset = 0;
source->balance = 0.5f;
+ source->audio_active = true;
pthread_mutex_init_value(&source->filter_mutex);
pthread_mutex_init_value(&source->async_mutex);
pthread_mutex_init_value(&source->audio_mutex);
obs_source_hotkey_push_to_talk, source);
}
-static obs_source_t *obs_source_create_internal(const char *id,
- const char *name,
- obs_data_t *settings,
- obs_data_t *hotkey_data,
- bool private)
+static obs_source_t *
+obs_source_create_internal(const char *id, const char *name,
+ obs_data_t *settings, obs_data_t *hotkey_data,
+ bool private, uint32_t last_obs_ver)
{
struct obs_source *source = bzalloc(sizeof(struct obs_source));
source->mute_unmute_key = OBS_INVALID_HOTKEY_PAIR_ID;
source->push_to_mute_key = OBS_INVALID_HOTKEY_ID;
source->push_to_talk_key = OBS_INVALID_HOTKEY_ID;
+ source->last_obs_ver = last_obs_ver;
if (!obs_source_init_context(source, settings, name, hotkey_data,
private))
obs_data_t *settings, obs_data_t *hotkey_data)
{
return obs_source_create_internal(id, name, settings, hotkey_data,
- false);
+ false, LIBOBS_API_VER);
}
obs_source_t *obs_source_create_private(const char *id, const char *name,
obs_data_t *settings)
{
- return obs_source_create_internal(id, name, settings, NULL, true);
+ return obs_source_create_internal(id, name, settings, NULL, true,
+ LIBOBS_API_VER);
+}
+
+obs_source_t *obs_source_create_set_last_ver(const char *id, const char *name,
+ obs_data_t *settings,
+ obs_data_t *hotkey_data,
+ uint32_t last_obs_ver)
+{
+ return obs_source_create_internal(id, name, settings, hotkey_data,
+ false, last_obs_ver);
}
static char *get_new_filter_name(obs_source_t *dst, const char *name)
? source->balance
: 0.5f;
}
+
+void obs_source_set_audio_active(obs_source_t *source, bool active)
+{
+ if (!obs_source_valid(source, "obs_source_set_audio_active"))
+ return;
+
+ if (os_atomic_set_bool(&source->audio_active, active) == active)
+ return;
+
+ if (active)
+ obs_source_dosignal(source, "source_audio_activate",
+ "audio_activate");
+ else
+ obs_source_dosignal(source, "source_audio_deactivate",
+ "audio_deactivate");
+}
+
+bool obs_source_audio_active(const obs_source_t *source)
+{
+ return obs_source_valid(source, "obs_source_audio_active")
+ ? os_atomic_load_bool(&source->audio_active)
+ : false;
+}
+
+uint32_t obs_source_get_last_obs_version(const obs_source_t *source)
+{
+ return obs_source_valid(source, "obs_source_get_last_obs_version")
+ ? source->last_obs_ver
+ : 0;
+}
obs-studio-24.0.0.tar.xz/libobs/obs.c -> obs-studio-24.0.1.tar.xz/libobs/obs.c
Changed
"void source_deactivate(ptr source)",
"void source_show(ptr source)",
"void source_hide(ptr source)",
+ "void source_audio_activate(ptr source)",
+ "void source_audio_deactivate(ptr source)",
"void source_rename(ptr source, string new_name, string prev_name)",
"void source_volume(ptr source, in out float volume)",
"void source_volume_level(ptr source, float level, float magnitude, "
int di_mode;
int monitoring_type;
- source = obs_source_create(id, name, settings, hotkeys);
+ prev_ver = (uint32_t)obs_data_get_int(source_data, "prev_ver");
+
+ source = obs_source_create_set_last_ver(id, name, settings, hotkeys,
+ prev_ver);
obs_data_release(hotkeys);
- prev_ver = (uint32_t)obs_data_get_int(source_data, "prev_ver");
caps = obs_source_get_output_flags(source);
obs_data_set_default_double(source_data, "volume", 1.0);
obs-studio-24.0.0.tar.xz/libobs/obs.h -> obs-studio-24.0.1.tar.xz/libobs/obs.h
Changed
EXPORT void obs_source_set_async_decoupled(obs_source_t *source, bool decouple);
EXPORT bool obs_source_async_decoupled(const obs_source_t *source);
+EXPORT void obs_source_set_audio_active(obs_source_t *source, bool show);
+EXPORT bool obs_source_audio_active(const obs_source_t *source);
+
+EXPORT uint32_t obs_source_get_last_obs_version(const obs_source_t *source);
+
/* ------------------------------------------------------------------------- */
/* Transition-specific functions */
enum obs_transition_target {
obs-studio-24.0.0.tar.xz/plugins/obs-browser/browser-version.h -> obs-studio-24.0.1.tar.xz/plugins/obs-browser/browser-version.h
Changed
#define OBS_BROWSER_VERSION_MAJOR 2
#define OBS_BROWSER_VERSION_MINOR 7
-#define OBS_BROWSER_VERSION_PATCH 8
+#define OBS_BROWSER_VERSION_PATCH 11
#ifndef MAKE_SEMANTIC_VERSION
#define MAKE_SEMANTIC_VERSION(major, minor, patch) \
obs-studio-24.0.0.tar.xz/plugins/obs-browser/data/locale/en-US.ini -> obs-studio-24.0.1.tar.xz/plugins/obs-browser/data/locale/en-US.ini
Changed
RestartCEF="Restart CEF"
BrowserSource="Browser"
CustomFrameRate="Use custom frame rate"
-RerouteAudio="Reroute audio to OBS"
+RerouteAudio="Control audio via OBS"
obs-studio-24.0.0.tar.xz/plugins/obs-browser/obs-browser-plugin.cpp -> obs-studio-24.0.1.tar.xz/plugins/obs-browser/obs-browser-plugin.cpp
Changed
obs_data_set_default_bool(settings, "shutdown", false);
obs_data_set_default_bool(settings, "restart_when_active", false);
obs_data_set_default_string(settings, "css", default_css);
- obs_data_set_default_bool(settings, "reroute_audio", true);
+ obs_data_set_default_bool(settings, "reroute_audio", false);
}
static bool is_local_file_modified(obs_properties_t *props, obs_property_t *,
obs_property_set_enabled(fps_set, false);
#endif
+ obs_properties_add_bool(props, "reroute_audio",
+ obs_module_text("RerouteAudio"));
+
obs_properties_add_int(props, "fps", obs_module_text("FPS"), 1, 60, 1);
obs_properties_add_text(props, "css", obs_module_text("CSS"),
OBS_TEXT_MULTILINE);
static_cast<BrowserSource *>(data)->Refresh();
return false;
});
-
- obs_properties_add_bool(props, "reroute_audio",
- obs_module_text("RerouteAudio"));
return props;
}
obs-studio-24.0.0.tar.xz/plugins/obs-browser/obs-browser-source.cpp -> obs-studio-24.0.1.tar.xz/plugins/obs-browser/obs-browser-source.cpp
Changed
restart = n_restart;
css = n_css;
url = n_url;
+
+ obs_source_set_audio_active(source, reroute_audio);
}
DestroyBrowser(true);
obs-studio-24.0.0.tar.xz/plugins/obs-browser/panel/browser-panel.cpp -> obs-studio-24.0.1.tar.xz/plugins/obs-browser/panel/browser-panel.cpp
Changed
}
#endif
-#ifdef USE_QT_LOOP
destroyBrowser(browser);
-#else
- os_event_t *finishedEvent;
- os_event_init(&finishedEvent, OS_EVENT_TYPE_AUTO);
- bool success = QueueCEFTask([=]() {
- destroyBrowser(browser);
- os_event_signal(finishedEvent);
- });
- if (success) {
- os_event_wait(finishedEvent);
- }
- os_event_destroy(finishedEvent);
-#endif
cefBrowser = nullptr;
}
}
obs-studio-24.0.0.tar.xz/plugins/win-dshow/ffmpeg-decode.c -> obs-studio-24.0.1.tar.xz/plugins/win-dshow/ffmpeg-decode.c
Changed
#ifdef USE_NEW_HARDWARE_CODEC_METHOD
enum AVHWDeviceType hw_priority[] = {
- AV_HWDEVICE_TYPE_D3D11VA, AV_HWDEVICE_TYPE_DXVA2, AV_HWDEVICE_TYPE_QSV,
- AV_HWDEVICE_TYPE_CUDA, AV_HWDEVICE_TYPE_NONE,
+ AV_HWDEVICE_TYPE_NONE,
};
static bool has_hw_type(AVCodec *c, enum AVHWDeviceType type)
obs-studio-24.0.0.tar.xz/plugins/win-dshow/libdshowcapture/dshowcapture.hpp -> obs-studio-24.0.1.tar.xz/plugins/win-dshow/libdshowcapture/dshowcapture.hpp
Changed
#define DSHOWCAPTURE_VERSION_MAJOR 0
#define DSHOWCAPTURE_VERSION_MINOR 6
-#define DSHOWCAPTURE_VERSION_PATCH 1
+#define DSHOWCAPTURE_VERSION_PATCH 2
#define MAKE_DSHOWCAPTURE_VERSION(major, minor, patch) \
((major << 24) | (minor << 16) | (patch))
obs-studio-24.0.0.tar.xz/plugins/win-dshow/libdshowcapture/source/dshow-enum.cpp -> obs-studio-24.0.1.tar.xz/plugins/win-dshow/libdshowcapture/source/dshow-enum.cpp
Changed
return 0;
else if (format >= VideoFormat::YVYU && format < VideoFormat::MJPEG)
return 5;
- else if (format >= VideoFormat::MJPEG)
+ else if (format == VideoFormat::MJPEG)
return 10;
return 15;
No build results available
No rpmlint results available
Request History
boombatower created request over 5 years ago
- Update to version 24.0.1:
* obs-browser: Fix a deadlock
* libobs: Update version to 24.0.1
* libobs: Add API to get last OBS version of a source
* obs-browser: Signal whether audio active/inactive
* UI: Hide mixer sources if audio deactivated
* libobs: Add funcs to determine whether audio active
* obs-browser: Turn rerouting audio off by default
* UI: Check for null pointer
* UI: Fix crash closing mixer dock panels
* win-dshow: Do not allow H264 to have same priority as MJPEG
* win-dshow: Disable HW decode in DirectShow for now
* UI: Adjust locale name for zh-TW
boombatower accepted request over 5 years ago
ok