Explorar o código

obs-outputs: Fix stuck "Connecting" with no key

With no stream key, no streams were actually being created.
This is a crazy configuration anyway, but it resulted in OBS getting
stuck in the "Connecting" state with no way to cancel.
We now just use the blank key and hope for the best.
Jess Mayo %!s(int64=10) %!d(string=hai) anos
pai
achega
cec88d2897

+ 3 - 0
plugins/obs-outputs/librtmp/parseurl.c

@@ -177,6 +177,9 @@ void RTMP_ParsePlaypath(AVal *in, AVal *out)
     out->av_val = NULL;
     out->av_val = NULL;
     out->av_len = 0;
     out->av_len = 0;
 
 
+    if (!playpath)
+        return;
+
     if ((*ppstart == '?') &&
     if ((*ppstart == '?') &&
             (temp=strstr(ppstart, "slist=")) != 0)
             (temp=strstr(ppstart, "slist=")) != 0)
     {
     {

+ 5 - 8
plugins/obs-outputs/librtmp/rtmp.c

@@ -633,16 +633,13 @@ int RTMP_SetupURL(RTMP *r, char *url)
 int RTMP_AddStream(RTMP *r, const char *playpath)
 int RTMP_AddStream(RTMP *r, const char *playpath)
 {
 {
     int idx = -1;
     int idx = -1;
+    AVal pp = { (char*)playpath, playpath?(int)strlen(playpath):0 };
 
 
-    if (playpath && *playpath)
-    {
-        AVal pp = {(char*)playpath, (int)strlen(playpath)};
-        RTMP_ParsePlaypath(&pp, &r->Link.streams[r->Link.nStreams].playpath);
-        r->Link.streams[r->Link.nStreams].id = -1;
+    RTMP_ParsePlaypath(&pp, &r->Link.streams[r->Link.nStreams].playpath);
+    r->Link.streams[r->Link.nStreams].id = -1;
 
 
-        idx = r->Link.nStreams;
-        r->Link.nStreams++;
-    }
+    idx = r->Link.nStreams;
+    r->Link.nStreams++;
 
 
     return idx;
     return idx;
 }
 }