diff options
author | Baptiste Coudurier <baptiste.coudurier@gmail.com> | 2008-06-22 00:52:22 +0000 |
---|---|---|
committer | Baptiste Coudurier <baptiste.coudurier@gmail.com> | 2008-06-22 00:52:22 +0000 |
commit | d2a1ea1d9b43c7424cfa88a498c17599238b1042 (patch) | |
tree | 32ef1147cc471a268000143762d88e94d740218d /ffserver.c | |
parent | 3296409d5cbe124e367a3d7373a118faebbe8e8b (diff) | |
download | ffmpeg-d2a1ea1d9b43c7424cfa88a498c17599238b1042.tar.gz |
http or rtsp only support
Originally committed as revision 13859 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'ffserver.c')
-rw-r--r-- | ffserver.c | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/ffserver.c b/ffserver.c index b094217a7d..fa82b6147e 100644 --- a/ffserver.c +++ b/ffserver.c @@ -512,17 +512,27 @@ static void start_multicast(void) /* main loop of the http server */ static int http_server(void) { - int server_fd, ret, rtsp_server_fd, delay, delay1; + int server_fd = 0, rtsp_server_fd = 0; + int ret, delay, delay1; struct pollfd poll_table[HTTP_MAX_CONNECTIONS + 2], *poll_entry; HTTPContext *c, *c_next; + if (my_http_addr.sin_port) { server_fd = socket_open_listen(&my_http_addr); if (server_fd < 0) return -1; + } + if (my_rtsp_addr.sin_port) { rtsp_server_fd = socket_open_listen(&my_rtsp_addr); if (rtsp_server_fd < 0) return -1; + } + + if (!rtsp_server_fd && !server_fd) { + http_log("HTTP and RTSP disabled.\n"); + return -1; + } http_log("ffserver started.\n"); @@ -535,13 +545,16 @@ static int http_server(void) for(;;) { poll_entry = poll_table; + if (server_fd) { poll_entry->fd = server_fd; poll_entry->events = POLLIN; poll_entry++; - + } + if (rtsp_server_fd) { poll_entry->fd = rtsp_server_fd; poll_entry->events = POLLIN; poll_entry++; + } /* wait for events on each HTTP handle */ c = first_http_ctx; @@ -620,13 +633,17 @@ static int http_server(void) } poll_entry = poll_table; + if (server_fd) { /* new HTTP connection request ? */ if (poll_entry->revents & POLLIN) new_connection(server_fd, 0); poll_entry++; + } + if (rtsp_server_fd) { /* new RTSP connection request ? */ if (poll_entry->revents & POLLIN) new_connection(rtsp_server_fd, 1); + } } } @@ -4446,16 +4463,6 @@ int main(int argc, char **argv) av_init_random(av_gettime() + (getpid() << 16), &random_state); - /* address on which the server will handle HTTP connections */ - my_http_addr.sin_family = AF_INET; - my_http_addr.sin_port = htons (8080); - my_http_addr.sin_addr.s_addr = htonl (INADDR_ANY); - - /* address on which the server will handle RTSP connections */ - my_rtsp_addr.sin_family = AF_INET; - my_rtsp_addr.sin_port = htons (5454); - my_rtsp_addr.sin_addr.s_addr = htonl (INADDR_ANY); - nb_max_connections = 5; max_bandwidth = 1000; first_stream = NULL; |