ffserver: reflow start_children()

Signed-off-by: 's avatarReynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
parent 1abdfb10
...@@ -384,28 +384,17 @@ static int compute_datarate(DataRateData *drd, int64_t count) ...@@ -384,28 +384,17 @@ static int compute_datarate(DataRateData *drd, int64_t count)
static void start_children(FFServerStream *feed) static void start_children(FFServerStream *feed)
{ {
if (no_launch)
return;
for (; feed; feed = feed->next) {
if (feed->child_argv && !feed->pid) {
feed->pid_start = time(0);
feed->pid = fork();
if (feed->pid < 0) {
http_log("Unable to create children\n");
exit(1);
}
if (!feed->pid) {
/* In child */
char pathname[1024]; char pathname[1024];
char *slash; char *slash;
int i; int i;
if (no_launch)
return;
/* replace "ffserver" with "ffmpeg" in the path of current /* replace "ffserver" with "ffmpeg" in the path of current
* program. Ignore user provided path */ * program. Ignore user provided path */
av_strlcpy(pathname, my_program_name, sizeof(pathname)); av_strlcpy(pathname, my_program_name, sizeof(pathname));
slash = strrchr(pathname, '/'); slash = strrchr(pathname, '/');
if (!slash) if (!slash)
slash = pathname; slash = pathname;
...@@ -413,6 +402,25 @@ static void start_children(FFServerStream *feed) ...@@ -413,6 +402,25 @@ static void start_children(FFServerStream *feed)
slash++; slash++;
strcpy(slash, "ffmpeg"); strcpy(slash, "ffmpeg");
for (; feed; feed = feed->next) {
if (!feed->child_argv || feed->pid)
continue;
feed->pid_start = time(0);
feed->pid = fork();
if (feed->pid < 0) {
http_log("Unable to create children\n");
exit(1);
}
if (feed->pid)
continue;
/* In child */
http_log("Launch command line: "); http_log("Launch command line: ");
http_log("%s ", pathname); http_log("%s ", pathname);
for (i = 1; feed->child_argv[i] && feed->child_argv[i][0]; i++) for (i = 1; feed->child_argv[i] && feed->child_argv[i][0]; i++)
...@@ -437,8 +445,6 @@ static void start_children(FFServerStream *feed) ...@@ -437,8 +445,6 @@ static void start_children(FFServerStream *feed)
_exit(1); _exit(1);
} }
}
}
} }
/* open a listening socket */ /* open a listening socket */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment