diff --git a/ffserver.c b/ffserver.c index 94d315f994..0094d2831c 100644 --- a/ffserver.c +++ b/ffserver.c @@ -489,12 +489,14 @@ static void start_multicast(void) HTTPContext *rtp_c; struct sockaddr_in dest_addr = {0}; int default_port, stream_index; + unsigned int random0, random1; default_port = 6000; for(stream = config.first_stream; stream; stream = stream->next) { - if (stream->is_multicast) { - unsigned random0 = av_lfg_get(&random_state); - unsigned random1 = av_lfg_get(&random_state); + if (!stream->is_multicast) + continue; + random0 = av_lfg_get(&random_state); + random1 = av_lfg_get(&random_state); /* open the RTP connection */ snprintf(session_id, sizeof(session_id), "%08x%08x", random0, random1); @@ -525,15 +527,16 @@ static void start_multicast(void) stream_index++) { dest_addr.sin_port = htons(stream->multicast_port + 2 * stream_index); - if (rtp_new_av_stream(rtp_c, stream_index, &dest_addr, NULL) < 0) { + if (rtp_new_av_stream(rtp_c, stream_index, &dest_addr, NULL) + >= 0) { + continue; + } http_log("Could not open output stream '%s/streamid=%d'\n", stream->filename, stream_index); exit(1); - } } rtp_c->state = HTTPSTATE_SEND_DATA; - } } }