Browse Source

ffserver: reflow start_children()

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
Reynaldo H. Verdejo Pinochet 10 years ago
parent
commit
ec42251715
1 changed files with 23 additions and 17 deletions
  1. 23 17
      ffserver.c

+ 23 - 17
ffserver.c

@@ -384,11 +384,29 @@ static int compute_datarate(DataRateData *drd, int64_t count)
 
 static void start_children(FFServerStream *feed)
 {
+    char pathname[1024];
+    char *slash;
+    int i;
+
     if (no_launch)
         return;
 
+   /* replace "ffserver" with "ffmpeg" in the path of current
+    * program. Ignore user provided path */
+    av_strlcpy(pathname, my_program_name, sizeof(pathname));
+
+    slash = strrchr(pathname, '/');
+    if (!slash)
+        slash = pathname;
+    else
+        slash++;
+    strcpy(slash, "ffmpeg");
+
     for (; feed; feed = feed->next) {
-        if (feed->child_argv && !feed->pid) {
+
+        if (!feed->child_argv || feed->pid)
+            continue;
+
             feed->pid_start = time(0);
 
             feed->pid = fork();
@@ -397,21 +415,11 @@ static void start_children(FFServerStream *feed)
                 http_log("Unable to create children\n");
                 exit(1);
             }
-            if (!feed->pid) {
+
+            if (feed->pid)
+                continue;
+
                 /* In child */
-                char pathname[1024];
-                char *slash;
-                int i;
-
-                /* replace "ffserver" with "ffmpeg" in the path of current
-                 * program. Ignore user provided path */
-                av_strlcpy(pathname, my_program_name, sizeof(pathname));
-                slash = strrchr(pathname, '/');
-                if (!slash)
-                    slash = pathname;
-                else
-                    slash++;
-                strcpy(slash, "ffmpeg");
 
                 http_log("Launch command line: ");
                 http_log("%s ", pathname);
@@ -436,8 +444,6 @@ static void start_children(FFServerStream *feed)
                 execvp(pathname, feed->child_argv);
 
                 _exit(1);
-            }
-        }
     }
 }