[FFmpeg-cvslog] ffserver: reflow start_children()

Reynaldo H. Verdejo Pinochet git at videolan.org
Fri Dec 26 21:46:34 CET 2014


ffmpeg | branch: master | Reynaldo H. Verdejo Pinochet <reynaldo at osg.samsung.com> | Tue Dec  9 02:57:02 2014 -0300| [ec42251715294719e790e4cc48b29f99e74b2a65] | committer: Reynaldo H. Verdejo Pinochet

ffserver: reflow start_children()

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo at osg.samsung.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ec42251715294719e790e4cc48b29f99e74b2a65
---

 ffserver.c |   40 +++++++++++++++++++++++-----------------
 1 file changed, 23 insertions(+), 17 deletions(-)

diff --git a/ffserver.c b/ffserver.c
index 5ae7406..d1e6638 100644
--- a/ffserver.c
+++ b/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);
-            }
-        }
     }
 }
 



More information about the ffmpeg-cvslog mailing list