Changes of Revision 3

obs-studio.changes Changed
x
 
1
@@ -1,4 +1,30 @@
2
 -------------------------------------------------------------------
3
+Fri Mar 28 22:26:17 UTC 2025 - packman@nordisch.org
4
+
5
+- Update to version 31.0.3:
6
+  * libobs: Update version to 31.0.3
7
+  * libobs: Fix duplicating scene with custom size
8
+  * obs-websocket: Update version to 5.5.6
9
+  * UI: Only emit frontend events for existing scene collection
10
+  * rtmp-services: Add "VRCDN - Live" service
11
+  * rtmp-services: Update Castr.io ingests
12
+  * rtmp-services: Remove defunct servers/services
13
+  * mac-avcapture: Clear memory when creating frame struct
14
+  * obs-browser: Update version to 2.24.6
15
+  * nv-filters:  Silence initial load error for Blur
16
+  * nv-filters: Remove reset signal for Video effects
17
+  * nv-filters: Fix  CudaStream used in Video effects
18
+  * nv-filters: Reallocate state when resetting AIGS filters
19
+  * nv-filters: Fix destruction of Background Blur effect
20
+  * nv-filters: Set max effective threshold to 0.95 for Background removal
21
+  * obs-nvenc: Fix incorrect CUDA array size allocation
22
+  * libobs: Reset reconnecting state when can_reconnect is false
23
+  * Revert "libobs: Do not allow reconnect if stop code is OBS_OUTPUT_INVALID_STREAM"
24
+  * CI: Use rebuilt CEF to avoid memory allocation crashes on macOS
25
+  * win-capture: Add FragPunk to compatibility list
26
+  * rtmp-services: Remove unresponsive servers
27
+
28
+-------------------------------------------------------------------
29
 Fri Mar 07 23:49:06 UTC 2025 - packman@nordisch.org
30
 
31
 - Update to version 31.0.2:
32
obs-studio.spec Changed
10
 
1
@@ -35,7 +35,7 @@
2
 %endif
3
 
4
 Name:           obs-studio
5
-Version:        31.0.2
6
+Version:        31.0.3
7
 Release:        0
8
 Summary:        A recording/broadcasting program
9
 Group:          Productivity/Multimedia/Video/Editors and Convertors
10
_service Changed
10
 
1
@@ -1,7 +1,7 @@
2
 <services>
3
   <service name="tar_scm" mode="disabled">
4
     <param name="versionformat">@PARENT_TAG@</param>
5
-    <param name="revision">31.0.2</param>
6
+    <param name="revision">31.0.3</param>
7
     <param name="url">https://github.com/obsproject/obs-studio.git</param>
8
     <param name="versionrewrite-pattern">(\.\d+)-(a-z.*)</param>
9
     <param name="versionrewrite-replacement">\1~\2</param>
10
_servicedata Changed
10
 
1
@@ -1,6 +1,6 @@
2
 <servicedata>
3
   <service name="tar_scm">
4
     <param name="url">https://github.com/obsproject/obs-studio.git</param>
5
-    <param name="changesrevision">e6137e15e0fb26b3aa47a66df28e9f056d54b9af</param>
6
+    <param name="changesrevision">fcd1910bf5116b69404a6ecdda6efedd1d00ebdf</param>
7
   </service>
8
 </servicedata>
9
\ No newline at end of file
10
obs-studio-31.0.2.tar.xz/UI/window-basic-main.cpp -> obs-studio-31.0.3.tar.xz/UI/window-basic-main.cpp Changed
20
 
1
@@ -2195,14 +2195,14 @@
2
            disableSaving++;
3
        }
4
 
5
-       disableSaving--;
6
        if (foundCollection || configuredCollection) {
7
+           disableSaving--;
8
            OnEvent(OBS_FRONTEND_EVENT_SCENE_COLLECTION_LIST_CHANGED);
9
            OnEvent(OBS_FRONTEND_EVENT_SCENE_COLLECTION_CHANGED);
10
+           OnEvent(OBS_FRONTEND_EVENT_SCENE_CHANGED);
11
+           OnEvent(OBS_FRONTEND_EVENT_PREVIEW_SCENE_CHANGED);
12
+           disableSaving++;
13
        }
14
-       OnEvent(OBS_FRONTEND_EVENT_SCENE_CHANGED);
15
-       OnEvent(OBS_FRONTEND_EVENT_PREVIEW_SCENE_CHANGED);
16
-       disableSaving++;
17
    }
18
 
19
    loaded = true;
20
obs-studio-31.0.2.tar.xz/buildspec.json -> obs-studio-31.0.3.tar.xz/buildspec.json Changed
21
 
1
@@ -27,15 +27,15 @@
2
             "baseUrl": "https://cdn-fastly.obsproject.com/downloads",
3
             "label": "Chromium Embedded Framework",
4
             "hashes": {
5
-                "macos-x86_64": "02478ad91d284d7717ea48aad90c4ecbe90f8c6a982c48861aa149b7466505eb",
6
-                "macos-arm64": "6a1084a985366f3f0695b1ecd902d326a2d6f286a067935d83567d4fe94bf62b",
7
+                "macos-x86_64": "d494f1a18746ae65846853c844c1dcf5efa2348e0f422bcbd97059a536f24496",
8
+                "macos-arm64": "1bb59dbb759150e170796f641a4a84c59c0dea4ffef89477e9d811520af5d15a",
9
                 "ubuntu-x86_64": "cb7225c7a937ac4cdc9c41700061f45cccc640d696902357782e57f8250bf43a",
10
                 "ubuntu-aarch64": "f92df7f076bdc8cac2e3c77e27be418008b7168723201cb73fdbc2f6d91bc778",
11
                 "windows-x64": "922efbda1f2f8be9e5b2754d878a14d90afc81f04e94fc9101a7513e2b5cecc1"
12
             },
13
             "revision": {
14
-                "macos-x86_64": 2,
15
-                "macos-arm64": 2,
16
+                "macos-x86_64": 3,
17
+                "macos-arm64": 3,
18
                 "ubuntu-x86_64": 3,
19
                 "ubuntu-aarch64": 3,
20
                 "windows-x64": 2
21
obs-studio-31.0.2.tar.xz/libobs/obs-config.h -> obs-studio-31.0.3.tar.xz/libobs/obs-config.h Changed
10
 
1
@@ -41,7 +41,7 @@
2
  *
3
  * Reset to zero each major or minor version
4
  */
5
-#define LIBOBS_API_PATCH_VER 2
6
+#define LIBOBS_API_PATCH_VER 3
7
 
8
 #define MAKE_SEMANTIC_VERSION(major, minor, patch) ((major << 24) | (minor << 16) | patch)
9
 
10
obs-studio-31.0.2.tar.xz/libobs/obs-output.c -> obs-studio-31.0.3.tar.xz/libobs/obs-output.c Changed
21
 
1
@@ -2878,8 +2878,8 @@
2
 {
3
    bool reconnect_active = output->reconnect_retry_max != 0;
4
 
5
-   return code != OBS_OUTPUT_INVALID_STREAM && ((reconnecting(output) && code != OBS_OUTPUT_SUCCESS) ||
6
-                            (reconnect_active && code == OBS_OUTPUT_DISCONNECTED));
7
+   return (reconnecting(output) && code != OBS_OUTPUT_SUCCESS) ||
8
+          (reconnect_active && code == OBS_OUTPUT_DISCONNECTED);
9
 }
10
 
11
 void obs_output_signal_stop(obs_output_t *output, int code)
12
@@ -2897,6 +2897,8 @@
13
    } else {
14
        if (delay_active(output))
15
            os_atomic_set_bool(&output->delay_active, false);
16
+       if (reconnecting(output))
17
+           os_atomic_set_bool(&output->reconnecting, false);
18
        obs_output_end_data_capture(output);
19
    }
20
 }
21
obs-studio-31.0.2.tar.xz/libobs/obs-scene.c -> obs-studio-31.0.3.tar.xz/libobs/obs-scene.c Changed
16
 
1
@@ -1990,6 +1990,14 @@
2
    new_scene = make_private ? create_private_id(scene->source->info.id, name)
3
                 : create_id(scene->source->info.id, name);
4
 
5
+   new_scene->is_group = scene->is_group;
6
+   new_scene->custom_size = scene->custom_size;
7
+   new_scene->cx = scene->cx;
8
+   new_scene->cy = scene->cy;
9
+   new_scene->absolute_coordinates = scene->absolute_coordinates;
10
+   new_scene->last_width = scene->last_width;
11
+   new_scene->last_height = scene->last_height;
12
+
13
    obs_source_copy_filters(new_scene->source, scene->source);
14
 
15
    obs_data_apply(new_scene->source->private_settings, scene->source->private_settings);
16
obs-studio-31.0.2.tar.xz/plugins/mac-avcapture/plugin-main.m -> obs-studio-31.0.3.tar.xz/plugins/mac-avcapture/plugin-main.m Changed
12
 
1
@@ -20,8 +20,8 @@
2
     capture_data->isFastPath = false;
3
     capture_data->settings = settings;
4
     capture_data->source = source;
5
-    capture_data->videoFrame = bmalloc(sizeof(OBSAVCaptureVideoFrame));
6
-    capture_data->audioFrame = bmalloc(sizeof(OBSAVCaptureAudioFrame));
7
+    capture_data->videoFrame = bzalloc(sizeof(OBSAVCaptureVideoFrame));
8
+    capture_data->audioFrame = bzalloc(sizeof(OBSAVCaptureAudioFrame));
9
 
10
     OBSAVCapture *capture = OBSAVCapture alloc initWithCaptureInfo:capture_data;
11
 
12
obs-studio-31.0.2.tar.xz/plugins/nv-filters/nvidia-videofx-filter.c -> obs-studio-31.0.3.tar.xz/plugins/nv-filters/nvidia-videofx-filter.c Changed
118
 
1
@@ -55,7 +55,6 @@
2
    bool processed_frame;
3
    bool target_valid;
4
    bool got_new_frame;
5
-   signal_handler_t *handler;
6
 
7
    /* RTX SDK vars */
8
    NvVFX_Handle handle;
9
@@ -145,10 +144,8 @@
10
        if (filter->strength != strength) {
11
            filter->strength = strength;
12
            vfxErr = NvVFX_SetF32(filter->handle_blur, NVVFX_STRENGTH, filter->strength);
13
+           vfxErr = NvVFX_Load(filter->handle_blur);
14
        }
15
-       vfxErr = NvVFX_Load(filter->handle_blur);
16
-       if (NVCV_SUCCESS != vfxErr)
17
-           error("Error loading blur FX %i", vfxErr);
18
    }
19
 }
20
 
21
@@ -183,10 +180,6 @@
22
            NvCVImage_Destroy(filter->blur_dst_img);
23
        }
24
    }
25
-   if (filter->stream)
26
-       NvVFX_CudaStreamDestroy(filter->stream);
27
-   if (filter->stream_blur)
28
-       NvVFX_CudaStreamDestroy(filter->stream_blur);
29
 
30
    if (filter->handle) {
31
        if (filter->stateObjectHandle) {
32
@@ -197,6 +190,10 @@
33
    if (filter->handle_blur) {
34
        NvVFX_DestroyEffect(filter->handle_blur);
35
    }
36
+   if (filter->stream)
37
+       NvVFX_CudaStreamDestroy(filter->stream);
38
+   if (filter->stream_blur)
39
+       NvVFX_CudaStreamDestroy(filter->stream_blur);
40
 
41
    if (filter->effect) {
42
        obs_enter_graphics();
43
@@ -295,7 +292,6 @@
44
    filter->height = 0;
45
    filter->initial_render = false;
46
    os_atomic_set_bool(&filter->processing_stop, false);
47
-   filter->handler = NULL;
48
    filter->processing_interval = 1;
49
    filter->processing_counter = 0;
50
    // set nvvfx_fx_id
51
@@ -378,12 +374,6 @@
52
 
53
    os_atomic_set_bool(&filter->processing_stop, true);
54
    // A first destroy
55
-   if (filter->stream) {
56
-       NvVFX_CudaStreamDestroy(filter->stream);
57
-   }
58
-   if (filter->stream_blur) {
59
-       NvVFX_CudaStreamDestroy(filter->stream_blur);
60
-   }
61
    if (filter->handle) {
62
        if (filter->stateObjectHandle) {
63
            NvVFX_DeallocateState(filter->handle, filter->stateObjectHandle);
64
@@ -393,6 +383,12 @@
65
    if (filter->handle_blur) {
66
        NvVFX_DestroyEffect(filter->handle_blur);
67
    }
68
+   if (filter->stream) {
69
+       NvVFX_CudaStreamDestroy(filter->stream);
70
+   }
71
+   if (filter->stream_blur) {
72
+       NvVFX_CudaStreamDestroy(filter->stream_blur);
73
+   }
74
    // B recreate
75
    /* 1. Create FX */
76
    /* 2. Set models path & initialize CudaStream */
77
@@ -407,7 +403,9 @@
78
        vfxErr = NvVFX_Load(filter->handle);
79
        if (NVCV_SUCCESS != vfxErr)
80
            error("Error loading NVIDIA Video FX %i", vfxErr);
81
-       vfxErr = NvVFX_ResetState(filter->handle, filter->stateObjectHandle);
82
+       // reallocate state object
83
+       vfxErr = NvVFX_AllocateState(filter->handle, &filter->stateObjectHandle);
84
+       vfxErr = NvVFX_SetStateObjectHandleArray(filter->handle, NVVFX_STATE, &filter->stateObjectHandle);
85
    }
86
    if (filter->filter_id != S_FX_AIGS) {
87
        vfxErr = NvVFX_SetF32(filter->handle_blur, NVVFX_STRENGTH, filter->strength);
88
@@ -632,7 +630,7 @@
89
    }
90
 
91
    /* 2. Convert to BGR. */
92
-   vfxErr = NvCVImage_Transfer(filter->src_img, filter->BGR_src_img, 1.0f, filter->stream_blur, filter->stage);
93
+   vfxErr = NvCVImage_Transfer(filter->src_img, filter->BGR_src_img, 1.0f, process_stream, filter->stage);
94
    if (vfxErr != NVCV_SUCCESS) {
95
        const char *errString = NvCV_GetErrorStringFromCode(vfxErr);
96
        error("Error converting src to BGR img; error %i: %s", vfxErr, errString);
97
@@ -834,7 +832,7 @@
98
            gs_effect_set_texture_srgb(filter->blur_param, filter->blur_texture);
99
        } else {
100
            gs_effect_set_texture(filter->mask_param, filter->alpha_texture);
101
-           gs_effect_set_float(filter->threshold_param, filter->threshold);
102
+           gs_effect_set_float(filter->threshold_param, min(filter->threshold, 0.95f));
103
        }
104
        gs_effect_set_texture_srgb(filter->image_param, gs_texrender_get_texture(filter->render));
105
 
106
@@ -874,11 +872,6 @@
107
        return;
108
    }
109
 
110
-   if (parent && !filter->handler) {
111
-       filter->handler = obs_source_get_signal_handler(parent);
112
-       signal_handler_connect(filter->handler, "update", nvvfx_filter_reset, filter);
113
-   }
114
-
115
    /* 1. Render to retrieve texture. */
116
    if (!filter->render) {
117
        obs_source_skip_video_filter(filter->context);
118
obs-studio-31.0.2.tar.xz/plugins/obs-browser/browser-client.cpp -> obs-studio-31.0.3.tar.xz/plugins/obs-browser/browser-client.cpp Changed
22
 
1
@@ -86,9 +86,18 @@
2
 void BrowserClient::OnRenderProcessTerminated(CefRefPtr<CefBrowser>, TerminationStatus, int,
3
                          const CefString &error_string)
4
 {
5
+   if (!valid())
6
+       return;
7
+
8
    std::string str_text = error_string;
9
-   blog(LOG_ERROR, "obs-browser: '%s' Webpage has crashed unexpectedly! Reason: '%s'",
10
-        obs_source_get_name(bs->source), str_text.c_str());
11
+
12
+   const char *sourceName = "<unknown>";
13
+
14
+   if (bs && bs->source)
15
+       sourceName = obs_source_get_name(bs->source);
16
+
17
+   blog(LOG_ERROR, "obs-browser: '%s' Webpage has crashed unexpectedly! Reason: '%s'", sourceName,
18
+        str_text.c_str());
19
 }
20
 
21
 CefResourceRequestHandler::ReturnValue BrowserClient::OnBeforeResourceLoad(CefRefPtr<CefBrowser>, CefRefPtr<CefFrame>,
22
obs-studio-31.0.2.tar.xz/plugins/obs-browser/browser-version.h -> obs-studio-31.0.3.tar.xz/plugins/obs-browser/browser-version.h Changed
10
 
1
@@ -2,7 +2,7 @@
2
 
3
 #define OBS_BROWSER_VERSION_MAJOR 2
4
 #define OBS_BROWSER_VERSION_MINOR 24
5
-#define OBS_BROWSER_VERSION_PATCH 5
6
+#define OBS_BROWSER_VERSION_PATCH 6
7
 
8
 #ifndef MAKE_SEMANTIC_VERSION
9
 #define MAKE_SEMANTIC_VERSION(major, minor, patch) ((major << 24) | (minor << 16) | patch)
10
obs-studio-31.0.2.tar.xz/plugins/obs-browser/obs-browser-plugin.cpp -> obs-studio-31.0.3.tar.xz/plugins/obs-browser/obs-browser-plugin.cpp Changed
12
 
1
@@ -779,8 +779,8 @@
2
    BrowserShutdown();
3
 #else
4
    if (manager_thread.joinable()) {
5
-       while (!QueueCEFTask(() { CefQuitMessageLoop(); }))
6
-           os_sleep_ms(5);
7
+       if (!QueueCEFTask(() { CefQuitMessageLoop(); }))
8
+           blog(LOG_DEBUG, "obs-browser: Failed to post CefQuit task to loop");
9
 
10
        manager_thread.join();
11
    }
12
obs-studio-31.0.2.tar.xz/plugins/obs-nvenc/nvenc-cuda.c -> obs-studio-31.0.3.tar.xz/plugins/obs-nvenc/nvenc-cuda.c Changed
12
 
1
@@ -118,9 +118,8 @@
2
            desc.Height += enc->cy / 2;
3
            break;
4
        case NV_ENC_BUFFER_FORMAT_YUV420_10BIT:
5
-           desc.Format = CU_AD_FORMAT_UNSIGNED_INT16;
6
+           desc.Format = CU_AD_FORMAT_UNSIGNED_INT16; // 2 bytes per element
7
            desc.Height += enc->cy / 2;
8
-           desc.NumChannels = 2; // number of bytes per element
9
            break;
10
        case NV_ENC_BUFFER_FORMAT_YUV444:
11
            desc.Format = CU_AD_FORMAT_UNSIGNED_INT8;
12
obs-studio-31.0.2.tar.xz/plugins/obs-websocket/CMakeLists.txt -> obs-studio-31.0.3.tar.xz/plugins/obs-websocket/CMakeLists.txt Changed
9
 
1
@@ -1,6 +1,6 @@
2
 cmake_minimum_required(VERSION 3.16...3.25)
3
 
4
-set(obs-websocket_VERSION 5.5.5)
5
+set(obs-websocket_VERSION 5.5.6)
6
 set(OBS_WEBSOCKET_RPC_VERSION 1)
7
 
8
 include(cmake/obs-websocket-api.cmake)
9
obs-studio-31.0.2.tar.xz/plugins/obs-websocket/src/eventhandler/EventHandler_Scenes.cpp -> obs-studio-31.0.3.tar.xz/plugins/obs-websocket/src/eventhandler/EventHandler_Scenes.cpp Changed
11
 
1
@@ -109,6 +109,9 @@
2
 {
3
    OBSSourceAutoRelease currentScene = obs_frontend_get_current_scene();
4
 
5
+   if (!currentScene)
6
+       return;
7
+
8
    json eventData;
9
    eventData"sceneName" = obs_source_get_name(currentScene);
10
    eventData"sceneUuid" = obs_source_get_uuid(currentScene);
11
obs-studio-31.0.2.tar.xz/plugins/rtmp-services/data/package.json -> obs-studio-31.0.3.tar.xz/plugins/rtmp-services/data/package.json Changed
15
 
1
@@ -1,11 +1,11 @@
2
 {
3
     "$schema": "schema/package-schema.json",
4
     "url": "https://obsproject.com/obs2_update/rtmp-services/v5",
5
-    "version": 264,
6
+    "version": 268,
7
     "files": 
8
         {
9
             "name": "services.json",
10
-            "version": 264
11
+            "version": 268
12
         }
13
     
14
 }
15
obs-studio-31.0.2.tar.xz/plugins/rtmp-services/data/services.json -> obs-studio-31.0.3.tar.xz/plugins/rtmp-services/data/services.json Changed
151
 
1
@@ -708,18 +708,58 @@
2
                     "url": "rtmp://qc.castr.io/static"
3
                 },
4
                 {
5
-                    "name": "SA (Sao Paulo, BR)",
6
+                    "name": "Mexico",
7
+                    "url": "rtmp://mexico.castr.io/static"
8
+                },
9
+                {
10
+                    "name": "Sao Paulo, BR",
11
                     "url": "rtmp://br.castr.io/static"
12
                 },
13
                 {
14
+                    "name": "Colombia",
15
+                    "url": "rtmp://bogota.castr.io/static"
16
+                },
17
+                {
18
+                    "name": "Santiago, Chile",
19
+                    "url": "rtmp://santiago.castr.io/static"
20
+                },
21
+                {
22
+                    "name": "Istanbul, TR",
23
+                    "url": "rtmp://istanbul.castr.io/static"
24
+                },
25
+                {
26
+                    "name": "Tel Aviv, IL",
27
+                    "url": "rtmp://telaviv.castr.io/static"
28
+                },
29
+                {
30
                     "name": "EU-West (London, UK)",
31
                     "url": "rtmp://uk.castr.io/static"
32
                 },
33
                 {
34
+                    "name": "EU-West (Paris, FR)",
35
+                    "url": "rtmp://paris.castr.io/static"
36
+                },
37
+                {
38
+                    "name": "EU-West (Madrid, ES)",
39
+                    "url": "rtmp://madrid.castr.io/static"
40
+                },
41
+                {
42
                     "name": "EU-Central (Frankfurt, DE)",
43
                     "url": "rtmp://fr.castr.io/static"
44
                 },
45
                 {
46
+                    "name": "EU-Central (Milan, IT)",
47
+                    "url": "rtmp://milan.castr.io/static"
48
+                },
49
+                {
50
+                    "name": "EU-North (Stockholm, SE)",
51
+                    "url": "rtmp://stockholm.castr.io/static"
52
+                },
53
+                {
54
+                    "name": "EU-North (Copenhagen, DK)",
55
+                    "url": "rtmp://copenhagen.castr.io/static"
56
+                },
57
+                {
58
                     "name": "Russia (Moscow)",
59
                     "url": "rtmp://ru.castr.io/static"
60
                 },
61
@@ -728,6 +768,10 @@
62
                     "url": "rtmp://sg.castr.io/static"
63
                 },
64
                 {
65
+                    "name": "Asia (Hong Kong, HK)",
66
+                    "url": "rtmp://hongkong.castr.io/static"
67
+                },
68
+                {
69
                     "name": "Asia (India)",
70
                     "url": "rtmp://in.castr.io/static"
71
                 },
72
@@ -736,6 +780,18 @@
73
                     "url": "rtmp://au.castr.io/static"
74
                 },
75
                 {
76
+                    "name": "UAE (Dubai)",
77
+                    "url": "rtmp://dubai.castr.io/static"
78
+                },
79
+                {
80
+                    "name": "Africa (Johannesburg, ZA)",
81
+                    "url": "rtmp://southafrica.castr.io/static"
82
+                },
83
+                {
84
+                    "name": "Africa (Lagos, NG)",
85
+                    "url": "rtmp://lagos.castr.io/static"
86
+                },
87
+                {
88
                     "name": "US Central",
89
                     "url": "rtmp://us-central.castr.io/static"
90
                 },
91
@@ -1563,14 +1619,6 @@
92
                 {
93
                     "name": "CloudBeta",
94
                     "url": "rtmp://cloudbetastreaming.onlyfans.com/live"
95
-                },
96
-                {
97
-                    "name": "Backup (USA)",
98
-                    "url": "rtmp://route0.onlyfans.com/live"
99
-                },
100
-                {
101
-                    "name": "Backup (Europe)",
102
-                    "url": "rtmp://route0-dc2.onlyfans.com/live"
103
                 }
104
             ,
105
             "recommended": {
106
@@ -2675,22 +2723,10 @@
107
                     "url": "rtmp://live-us-lax-stream.shareplay.tv"
108
                 },
109
                 {
110
-                    "name": "Seattle, Washington, USA",
111
-                    "url": "rtmp://live-us-sea-stream.shareplay.tv"
112
-                },
113
-                {
114
-                    "name": "Paris, France",
115
-                    "url": "rtmp://live-fr-par-stream.shareplay.tv"
116
-                },
117
-                {
118
                     "name": "Milan, Italy",
119
                     "url": "rtmp://live-it-mil-stream.shareplay.tv"
120
                 },
121
                 {
122
-                    "name": "Sydney, Australia",
123
-                    "url": "rtmp://live-au-syd-stream.shareplay.tv"
124
-                },
125
-                {
126
                     "name": "Toronto, Canada",
127
                     "url": "rtmp://live-ca-yyz-stream.shareplay.tv"
128
                 },
129
@@ -3530,6 +3566,21 @@
130
             "supported video codecs": 
131
                 "h264"
132
             
133
+        },
134
+        {
135
+            "name": "VRCDN - Live",
136
+            "more_info_link": "https://vrcdn.live",
137
+            "servers": 
138
+                {
139
+                    "name": "Automatic",
140
+                    "url": "rtmp://ingest.vrcdn.live/live"
141
+                }
142
+            ,
143
+            "supported video codecs": "h264",
144
+            "recommended": {
145
+                "keyint": 1,
146
+                "max video bitrate": 6000
147
+            }
148
         }
149
     
150
 }
151
obs-studio-31.0.2.tar.xz/plugins/win-capture/data/compatibility.json -> obs-studio-31.0.3.tar.xz/plugins/win-capture/data/compatibility.json Changed
22
 
1
@@ -603,6 +603,20 @@
2
             "window_capture_wgc": false,
3
             "message": "The Bazaar may require OBS to be run as admin to use Game Capture.",
4
             "url": "https://obsproject.com/kb/game-capture-troubleshooting"
5
+        },
6
+        {
7
+            "name": "FragPunk",
8
+            "translation_key": "Compatibility.GameCapture.Admin",
9
+            "severity": 1,
10
+            "executable": "FragPunk.exe",
11
+            "window_class": "",
12
+            "window_title": "",
13
+            "match_flags": 1,
14
+            "game_capture": true,
15
+            "window_capture": false,
16
+            "window_capture_wgc": false,
17
+            "message": "FragPunk may require OBS to be run as admin to use Game Capture.",
18
+            "url": "https://obsproject.com/kb/game-capture-troubleshooting"
19
         }
20
     
21
 }
22
obs-studio-31.0.2.tar.xz/plugins/win-capture/data/package.json -> obs-studio-31.0.3.tar.xz/plugins/win-capture/data/package.json Changed
15
 
1
@@ -1,11 +1,11 @@
2
 {
3
     "$schema": "schema/package-schema.json",
4
     "url": "https://obsproject.com/obs2_update/win-capture/v1",
5
-    "version": 6,
6
+    "version": 7,
7
     "files": 
8
         {
9
             "name": "compatibility.json",
10
-            "version": 6
11
+            "version": 7
12
         }
13
     
14
 }
15