summaryrefslogtreecommitdiff
path: root/ffserver.c
diff options
context:
space:
mode:
authorPhilip Gladstone <philipjsg@users.sourceforge.net>2002-10-30 02:15:07 +0000
committerPhilip Gladstone <philipjsg@users.sourceforge.net>2002-10-30 02:15:07 +0000
commitd6562d2cfa1ca5adc8a0cb02132c356980f61426 (patch)
tree33b286eb1e94fdfb1f92b1932bdfae89ee284e55 /ffserver.c
parentb49d916512b045ebcd24235ee654e23d8377cb4b (diff)
Added VideoBitRateRange and VideoBitRAteTolerance settings
Also made the Launch directive work again if you invoke ffserver with a relative path. Originally committed as revision 1111 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'ffserver.c')
-rw-r--r--ffserver.c30
1 files changed, 29 insertions, 1 deletions
diff --git a/ffserver.c b/ffserver.c
index 2f3eae7ea2..aa8e72c896 100644
--- a/ffserver.c
+++ b/ffserver.c
@@ -244,6 +244,7 @@ static int rtp_new_av_stream(HTTPContext *c,
int stream_index, struct sockaddr_in *dest_addr);
static const char *my_program_name;
+static const char *my_program_dir;
static int ffserver_debug;
static int ffserver_daemon;
@@ -380,6 +381,9 @@ static void start_children(FFStream *feed)
}
strcpy(slash, "ffmpeg");
+ /* This is needed to make relative pathnames work */
+ chdir(my_program_dir);
+
execvp(pathname, feed->child_argv);
_exit(1);
@@ -3301,7 +3305,10 @@ void add_codec(FFStream *stream, AVCodecContext *av)
av->b_quant_factor = 1.25;
if (!av->b_quant_offset)
av->b_quant_offset = 1.25;
-
+ if (!av->rc_min_rate)
+ av->rc_min_rate = av->bit_rate / 2;
+ if (!av->rc_max_rate)
+ av->rc_max_rate = av->bit_rate * 2;
break;
default:
@@ -3695,6 +3702,26 @@ int parse_ffconfig(const char *filename)
if (stream) {
audio_enc.quality = atof(arg) * 1000;
}
+ } else if (!strcasecmp(cmd, "VideoBitRateRange")) {
+ if (stream) {
+ int minrate, maxrate;
+
+ get_arg(arg, sizeof(arg), &p);
+
+ if (sscanf(arg, "%d-%d", &minrate, &maxrate) == 2) {
+ video_enc.rc_min_rate = minrate * 1000;
+ video_enc.rc_max_rate = maxrate * 1000;
+ } else {
+ fprintf(stderr, "%s:%d: Incorrect format for VideoBitRateRange -- should be <min>-<max>: %s\n",
+ filename, line_num, arg);
+ errors++;
+ }
+ }
+ } else if (!strcasecmp(cmd, "VideoBitRateTolerance")) {
+ if (stream) {
+ get_arg(arg, sizeof(arg), &p);
+ video_enc.bit_rate_tolerance = atoi(arg) * 1000;
+ }
} else if (!strcasecmp(cmd, "VideoBitRate")) {
get_arg(arg, sizeof(arg), &p);
if (stream) {
@@ -4018,6 +4045,7 @@ int main(int argc, char **argv)
config_filename = "/etc/ffserver.conf";
my_program_name = argv[0];
+ my_program_dir = getcwd(0, 0);
ffserver_daemon = 1;
for(;;) {