From 6b0bdc754b2197d027c26589ed63a41ad19f87eb Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Sun, 13 Nov 2005 03:26:43 +0000 Subject: [PATCH] support for unlimited feed size Originally committed as revision 4697 to svn://svn.ffmpeg.org/ffmpeg/trunk --- doc/ffserver.conf | 2 +- ffserver.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/ffserver.conf b/doc/ffserver.conf index 6ce7aae4fc..431ef93a94 100644 --- a/doc/ffserver.conf +++ b/doc/ffserver.conf @@ -41,7 +41,7 @@ NoDaemon # previously recorded live stream. The request should contain: # "http://xxxx?date=[YYYY-MM-DDT][[HH:]MM:]SS[.m...]".You must specify # a path where the feed is stored on disk. You also specify the -# maximum size of the feed (100M bytes here). Default: +# maximum size of the feed, where zero means unlimited. Default: # File=/tmp/feed_name.ffm FileMaxSize=5M File /tmp/feed1.ffm FileMaxSize 200K diff --git a/ffserver.c b/ffserver.c index c2b9097862..bbff9f5b74 100644 --- a/ffserver.c +++ b/ffserver.c @@ -218,7 +218,7 @@ typedef struct FFStream { int readonly; /* True if writing is prohibited to the file */ int conns_served; int64_t bytes_served; - int64_t feed_max_size; /* maximum storage size */ + int64_t feed_max_size; /* maximum storage size, zero means unlimited */ int64_t feed_write_index; /* current write position in feed (it wraps round) */ int64_t feed_size; /* current size of feed */ struct FFStream *next_feed; @@ -2417,7 +2417,7 @@ static int http_receive_data(HTTPContext *c) feed->feed_size = feed->feed_write_index; /* handle wrap around if max file size reached */ - if (feed->feed_write_index >= c->stream->feed_max_size) + if (c->stream->feed_max_size && feed->feed_write_index >= c->stream->feed_max_size) feed->feed_write_index = FFM_PACKET_SIZE; /* write index */ @@ -3539,7 +3539,7 @@ static void build_feed_streams(void) feed->feed_write_index = ffm_read_write_index(fd); feed->feed_size = lseek(fd, 0, SEEK_END); /* ensure that we do not wrap before the end of file */ - if (feed->feed_max_size < feed->feed_size) + if (feed->feed_max_size && feed->feed_max_size < feed->feed_size) feed->feed_max_size = feed->feed_size; close(fd);