summaryrefslogtreecommitdiff
path: root/ffserver.c
diff options
context:
space:
mode:
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>2008-06-22 00:52:22 +0000
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>2008-06-22 00:52:22 +0000
commitd2a1ea1d9b43c7424cfa88a498c17599238b1042 (patch)
tree32ef1147cc471a268000143762d88e94d740218d /ffserver.c
parent3296409d5cbe124e367a3d7373a118faebbe8e8b (diff)
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.c31
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;