/*****************************************************************************
* common.c: misc common functions
*****************************************************************************
- * Copyright (C) 2003-2015 x264 project
+ * Copyright (C) 2003-2016 x264 project
*
* Authors: Loren Merritt <lorenm@u.washington.edu>
* Laurent Aimar <fenrir@via.ecp.fr>
int errortype = X264_PARAM_BAD_VALUE;
int name_was_bool;
int value_was_null = !value;
- int i;
if( !name )
return X264_PARAM_BAD_NAME;
name = name_buf;
}
- if( (!strncmp( name, "no-", 3 ) && (i = 3)) ||
- (!strncmp( name, "no", 2 ) && (i = 2)) )
+ if( !strncmp( name, "no", 2 ) )
{
- name += i;
+ name += 2;
+ if( name[0] == '-' )
+ name++;
value = atobool(value) ? "false" : "true";
}
name_was_bool = 0;
p->cpu = 0;
for( init=buf; (tok=strtok_r(init, ",", &saveptr)); init=NULL )
{
- for( i=0; x264_cpu_names[i].flags && strcasecmp(tok, x264_cpu_names[i].name); i++ );
+ int i = 0;
+ while( x264_cpu_names[i].flags && strcasecmp(tok, x264_cpu_names[i].name) )
+ i++;
p->cpu |= x264_cpu_names[i].flags;
if( !x264_cpu_names[i].flags )
b_error = 1;
}
OPT("fps")
{
- if( sscanf( value, "%u/%u", &p->i_fps_num, &p->i_fps_den ) == 2 )
- ;
- else
+ if( sscanf( value, "%u/%u", &p->i_fps_num, &p->i_fps_den ) != 2 )
{
- float fps = atof(value);
- if( fps > 0 && fps <= INT_MAX/1000 )
+ double fps = atof(value);
+ if( fps > 0.0 && fps <= INT_MAX/1000.0 )
{
- p->i_fps_num = (int)(fps * 1000 + .5);
+ p->i_fps_num = (int)(fps * 1000.0 + .5);
p->i_fps_den = 1000;
}
else
[X264_CSP_I420] = { 3, { 256*1, 256/2, 256/2 }, { 256*1, 256/2, 256/2 } },
[X264_CSP_YV12] = { 3, { 256*1, 256/2, 256/2 }, { 256*1, 256/2, 256/2 } },
[X264_CSP_NV12] = { 2, { 256*1, 256*1 }, { 256*1, 256/2 }, },
+ [X264_CSP_NV21] = { 2, { 256*1, 256*1 }, { 256*1, 256/2 }, },
[X264_CSP_I422] = { 3, { 256*1, 256/2, 256/2 }, { 256*1, 256*1, 256*1 } },
[X264_CSP_YV16] = { 3, { 256*1, 256/2, 256/2 }, { 256*1, 256*1, 256*1 } },
[X264_CSP_NV16] = { 2, { 256*1, 256*1 }, { 256*1, 256*1 }, },
char *x264_slurp_file( const char *filename )
{
int b_error = 0;
- size_t i_size;
+ int64_t i_size;
char *buf;
FILE *fh = x264_fopen( filename, "rb" );
if( !fh )
return NULL;
+
b_error |= fseek( fh, 0, SEEK_END ) < 0;
b_error |= ( i_size = ftell( fh ) ) <= 0;
+ if( WORD_SIZE == 4 )
+ b_error |= i_size > INT32_MAX;
b_error |= fseek( fh, 0, SEEK_SET ) < 0;
if( b_error )
goto error;
+
buf = x264_malloc( i_size+2 );
if( !buf )
goto error;
+
b_error |= fread( buf, 1, i_size, fh ) != i_size;
- if( buf[i_size-1] != '\n' )
- buf[i_size++] = '\n';
- buf[i_size] = 0;
fclose( fh );
if( b_error )
{
x264_free( buf );
return NULL;
}
+
+ if( buf[i_size-1] != '\n' )
+ buf[i_size++] = '\n';
+ buf[i_size] = '\0';
+
return buf;
error:
fclose( fh );