@ -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 ( ; ; ) {