Projects
Multimedia
obs-studio
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 69
View file
obs-studio.changes
Changed
@@ -1,4 +1,21 @@ ------------------------------------------------------------------- +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:
View file
obs-studio.spec
Changed
@@ -1,5 +1,5 @@ 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
View file
_service
Changed
@@ -1,7 +1,7 @@ <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>
View file
_servicedata
Changed
@@ -1,6 +1,6 @@ <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>
View file
obs-studio-24.0.0.tar.xz/UI/auth-mixer.cpp -> obs-studio-24.0.1.tar.xz/UI/auth-mixer.cpp
Changed
@@ -204,7 +204,7 @@ 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()));
View file
obs-studio-24.0.0.tar.xz/UI/data/locale.ini -> obs-studio-24.0.1.tar.xz/UI/data/locale.ini
Changed
@@ -68,7 +68,7 @@ Name=简体中文 [zh-TW] -Name=正體中文(臺灣) +Name=繁體中文 [bg-BG] Name=Български
View file
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
@@ -1411,6 +1411,12 @@ 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); } @@ -2961,6 +2967,8 @@ { if (SourceMixerHidden(source)) return; + if (!obs_source_audio_active(source)) + return; bool vertical = config_get_bool(GetGlobalConfig(), "BasicWindow", "VerticalVolControl"); @@ -3282,6 +3290,24 @@ 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");
View file
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
@@ -570,6 +570,8 @@ 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);
View file
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
@@ -14,7 +14,7 @@ panel_version = obs_browser_qcef_version(); } - if (panel_version >= 2) { + if (panel_version >= 2 && !!cefWidget) { cefWidget->closeBrowser(); } }
View file
obs-studio-24.0.0.tar.xz/libobs/obs-config.h -> obs-studio-24.0.1.tar.xz/libobs/obs-config.h
Changed
@@ -41,7 +41,7 @@ * * 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)
View file
obs-studio-24.0.0.tar.xz/libobs/obs-internal.h -> obs-studio-24.0.1.tar.xz/libobs/obs-internal.h
Changed
@@ -563,6 +563,7 @@ /* 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; @@ -602,6 +603,7 @@ bool audio_failed; bool audio_pending; bool pending_stop; + bool audio_active; bool user_muted; bool muted; struct obs_source *next_audio_source; @@ -736,6 +738,11 @@ 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 {
View file
obs-studio-24.0.0.tar.xz/libobs/obs-source.c -> obs-studio-24.0.1.tar.xz/libobs/obs-source.c
Changed
@@ -72,6 +72,8 @@ "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)", @@ -152,6 +154,7 @@ 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); @@ -304,11 +307,10 @@ 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)); @@ -333,6 +335,7 @@ 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)) @@ -385,13 +388,23 @@ 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) @@ -4669,3 +4682,33 @@ ? 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; +}
View file
obs-studio-24.0.0.tar.xz/libobs/obs.c -> obs-studio-24.0.1.tar.xz/libobs/obs.c
Changed
@@ -703,6 +703,8 @@ "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, " @@ -1773,11 +1775,13 @@ 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);
View file
obs-studio-24.0.0.tar.xz/libobs/obs.h -> obs-studio-24.0.1.tar.xz/libobs/obs.h
Changed
@@ -1312,6 +1312,11 @@ 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 {
View file
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
@@ -2,7 +2,7 @@ #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) \
View file
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
@@ -10,4 +10,4 @@ RestartCEF="Restart CEF" BrowserSource="Browser" CustomFrameRate="Use custom frame rate" -RerouteAudio="Reroute audio to OBS" +RerouteAudio="Control audio via OBS"
View file
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
@@ -123,7 +123,7 @@ 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 *, @@ -188,6 +188,9 @@ 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); @@ -202,9 +205,6 @@ static_cast<BrowserSource *>(data)->Refresh(); return false; }); - - obs_properties_add_bool(props, "reroute_audio", - obs_module_text("RerouteAudio")); return props; }
View file
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
@@ -449,6 +449,8 @@ restart = n_restart; css = n_css; url = n_url; + + obs_source_set_audio_active(source, reroute_audio); } DestroyBrowser(true);
View file
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
@@ -209,20 +209,7 @@ } #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; } }
View file
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
@@ -25,8 +25,7 @@ #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)
View file
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
@@ -31,7 +31,7 @@ #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))
View file
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
@@ -182,7 +182,7 @@ 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;
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.