Skip to content

Commit b631d4d

Browse files
committed
obs-browser: Update default size
1 parent 8be8910 commit b631d4d

File tree

1 file changed

+116
-1
lines changed

1 file changed

+116
-1
lines changed

obs-browser-plugin.cpp

+116-1
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,27 @@ static void browser_source_get_defaults(obs_data_t *settings)
126126
obs_data_set_default_bool(settings, "reroute_audio", false);
127127
}
128128

129+
static void browser_source_get_defaults_v2(obs_data_t *settings)
130+
{
131+
struct obs_video_info ovi;
132+
obs_get_video_info(&ovi);
133+
134+
obs_data_set_default_string(settings, "url",
135+
"https://obsproject.com/browser-source");
136+
obs_data_set_default_int(settings, "width", ovi.base_width);
137+
obs_data_set_default_int(settings, "height", ovi.base_height);
138+
obs_data_set_default_int(settings, "fps", 30);
139+
#if EXPERIMENTAL_SHARED_TEXTURE_SUPPORT_ENABLED
140+
obs_data_set_default_bool(settings, "fps_custom", false);
141+
#else
142+
obs_data_set_default_bool(settings, "fps_custom", true);
143+
#endif
144+
obs_data_set_default_bool(settings, "shutdown", false);
145+
obs_data_set_default_bool(settings, "restart_when_active", false);
146+
obs_data_set_default_string(settings, "css", default_css);
147+
obs_data_set_default_bool(settings, "reroute_audio", false);
148+
}
149+
129150
static bool is_local_file_modified(obs_properties_t *props, obs_property_t *,
130151
obs_data_t *settings)
131152
{
@@ -325,7 +346,8 @@ void RegisterBrowserSource()
325346
OBS_SOURCE_AUDIO |
326347
#endif
327348
OBS_SOURCE_CUSTOM_DRAW | OBS_SOURCE_INTERACTION |
328-
OBS_SOURCE_DO_NOT_DUPLICATE;
349+
OBS_SOURCE_DO_NOT_DUPLICATE |
350+
OBS_SOURCE_CAP_OBSOLETE;
329351
info.get_properties = browser_source_get_properties;
330352
info.get_defaults = browser_source_get_defaults;
331353
info.icon_type = OBS_ICON_TYPE_BROWSER;
@@ -407,6 +429,98 @@ void RegisterBrowserSource()
407429
obs_register_source(&info);
408430
}
409431

432+
void RegisterBrowserSourceV2()
433+
{
434+
struct obs_source_info info = {};
435+
info.id = "browser_source_v2";
436+
info.type = OBS_SOURCE_TYPE_INPUT;
437+
info.output_flags = OBS_SOURCE_VIDEO |
438+
#if CHROME_VERSION_BUILD >= 3683
439+
OBS_SOURCE_AUDIO |
440+
#endif
441+
OBS_SOURCE_CUSTOM_DRAW | OBS_SOURCE_INTERACTION |
442+
OBS_SOURCE_DO_NOT_DUPLICATE;
443+
info.get_properties = browser_source_get_properties;
444+
info.get_defaults = browser_source_get_defaults_v2;
445+
info.icon_type = OBS_ICON_TYPE_BROWSER;
446+
447+
info.get_name = [](void *) { return obs_module_text("BrowserSource"); };
448+
info.create = [](obs_data_t *settings, obs_source_t *source) -> void * {
449+
obs_browser_initialize();
450+
return new BrowserSource(settings, source);
451+
};
452+
info.destroy = [](void *data) {
453+
delete static_cast<BrowserSource *>(data);
454+
};
455+
info.update = [](void *data, obs_data_t *settings) {
456+
static_cast<BrowserSource *>(data)->Update(settings);
457+
};
458+
info.get_width = [](void *data) {
459+
return (uint32_t) static_cast<BrowserSource *>(data)->width;
460+
};
461+
info.get_height = [](void *data) {
462+
return (uint32_t) static_cast<BrowserSource *>(data)->height;
463+
};
464+
info.video_tick = [](void *data, float) {
465+
static_cast<BrowserSource *>(data)->Tick();
466+
};
467+
info.video_render = [](void *data, gs_effect_t *) {
468+
static_cast<BrowserSource *>(data)->Render();
469+
};
470+
#if CHROME_VERSION_BUILD >= 3683
471+
info.audio_mix = [](void *data, uint64_t *ts_out,
472+
struct audio_output_data *audio_output,
473+
size_t channels, size_t sample_rate) {
474+
return static_cast<BrowserSource *>(data)->AudioMix(
475+
ts_out, audio_output, channels, sample_rate);
476+
};
477+
info.enum_active_sources = [](void *data, obs_source_enum_proc_t cb,
478+
void *param) {
479+
static_cast<BrowserSource *>(data)->EnumAudioStreams(cb, param);
480+
};
481+
#endif
482+
info.mouse_click = [](void *data, const struct obs_mouse_event *event,
483+
int32_t type, bool mouse_up,
484+
uint32_t click_count) {
485+
static_cast<BrowserSource *>(data)->SendMouseClick(
486+
event, type, mouse_up, click_count);
487+
};
488+
info.mouse_move = [](void *data, const struct obs_mouse_event *event,
489+
bool mouse_leave) {
490+
static_cast<BrowserSource *>(data)->SendMouseMove(event,
491+
mouse_leave);
492+
};
493+
info.mouse_wheel = [](void *data, const struct obs_mouse_event *event,
494+
int x_delta, int y_delta) {
495+
static_cast<BrowserSource *>(data)->SendMouseWheel(
496+
event, x_delta, y_delta);
497+
};
498+
info.focus = [](void *data, bool focus) {
499+
static_cast<BrowserSource *>(data)->SendFocus(focus);
500+
};
501+
info.key_click = [](void *data, const struct obs_key_event *event,
502+
bool key_up) {
503+
static_cast<BrowserSource *>(data)->SendKeyClick(event, key_up);
504+
};
505+
info.show = [](void *data) {
506+
static_cast<BrowserSource *>(data)->SetShowing(true);
507+
};
508+
info.hide = [](void *data) {
509+
static_cast<BrowserSource *>(data)->SetShowing(false);
510+
};
511+
info.activate = [](void *data) {
512+
BrowserSource *bs = static_cast<BrowserSource *>(data);
513+
if (bs->restart)
514+
bs->Refresh();
515+
bs->SetActive(true);
516+
};
517+
info.deactivate = [](void *data) {
518+
static_cast<BrowserSource *>(data)->SetActive(false);
519+
};
520+
521+
obs_register_source(&info);
522+
}
523+
410524
/* ========================================================================= */
411525

412526
extern void DispatchJSEvent(std::string eventName, std::string jsonString,
@@ -565,6 +679,7 @@ bool obs_module_load(void)
565679
EnumAdapterCount();
566680
#endif
567681
RegisterBrowserSource();
682+
RegisterBrowserSourceV2();
568683
obs_frontend_add_event_callback(handle_obs_frontend_event, nullptr);
569684

570685
#if EXPERIMENTAL_SHARED_TEXTURE_SUPPORT_ENABLED

0 commit comments

Comments
 (0)