@@ -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+
129150static bool is_local_file_modified (obs_properties_t *props, obs_property_t *,
130151 obs_data_t *settings)
131152{
@@ -315,19 +336,37 @@ extern "C" EXPORT void obs_browser_initialize(void)
315336 }
316337}
317338
318- void RegisterBrowserSource ()
339+ void RegisterBrowserSource (int version )
319340{
320341 struct obs_source_info info = {};
321- info.id = " browser_source" ;
322- info.type = OBS_SOURCE_TYPE_INPUT;
323- info.output_flags = OBS_SOURCE_VIDEO |
342+
343+ switch (version) {
344+ case 1 :
345+ info.id = " browser_source" ;
346+ info.output_flags =
347+ OBS_SOURCE_VIDEO |
348+ #if CHROME_VERSION_BUILD >= 3683
349+ OBS_SOURCE_AUDIO |
350+ #endif
351+ OBS_SOURCE_CUSTOM_DRAW | OBS_SOURCE_INTERACTION |
352+ OBS_SOURCE_DO_NOT_DUPLICATE | OBS_SOURCE_CAP_OBSOLETE;
353+ info.get_defaults = browser_source_get_defaults;
354+ break ;
355+ case 2 :
356+ info.id = " browser_source_v2" ;
357+ info.output_flags = OBS_SOURCE_VIDEO |
324358#if CHROME_VERSION_BUILD >= 3683
325- OBS_SOURCE_AUDIO |
359+ OBS_SOURCE_AUDIO |
326360#endif
327- OBS_SOURCE_CUSTOM_DRAW | OBS_SOURCE_INTERACTION |
328- OBS_SOURCE_DO_NOT_DUPLICATE;
361+ OBS_SOURCE_CUSTOM_DRAW |
362+ OBS_SOURCE_INTERACTION |
363+ OBS_SOURCE_DO_NOT_DUPLICATE;
364+ info.get_defaults = browser_source_get_defaults_v2;
365+ break ;
366+ }
367+
368+ info.type = OBS_SOURCE_TYPE_INPUT;
329369 info.get_properties = browser_source_get_properties;
330- info.get_defaults = browser_source_get_defaults;
331370 info.icon_type = OBS_ICON_TYPE_BROWSER;
332371
333372 info.get_name = [](void *) { return obs_module_text (" BrowserSource" ); };
@@ -564,7 +603,8 @@ bool obs_module_load(void)
564603#ifdef _WIN32
565604 EnumAdapterCount ();
566605#endif
567- RegisterBrowserSource ();
606+ RegisterBrowserSource (1 );
607+ RegisterBrowserSource (2 );
568608 obs_frontend_add_event_callback (handle_obs_frontend_event, nullptr );
569609
570610#if EXPERIMENTAL_SHARED_TEXTURE_SUPPORT_ENABLED
0 commit comments