diff --git a/common/osdep.c b/common/osdep.c index e97aaeda1..7670681a2 100644 --- a/common/osdep.c +++ b/common/osdep.c @@ -143,7 +143,7 @@ void x264_intel_cpu_indicator_init( void ) /* Functions for dealing with Unicode on Windows. */ FILE *x264_fopen( const char *filename, const char *mode ) { - wchar_t filename_utf16[MAX_PATH]; + wchar_t filename_utf16[MAX_PATH * 2]; wchar_t mode_utf16[16]; if( utf8_to_utf16( filename, filename_utf16 ) && utf8_to_utf16( mode, mode_utf16 ) ) return _wfopen( filename_utf16, mode_utf16 ); @@ -152,8 +152,8 @@ FILE *x264_fopen( const char *filename, const char *mode ) int x264_rename( const char *oldname, const char *newname ) { - wchar_t oldname_utf16[MAX_PATH]; - wchar_t newname_utf16[MAX_PATH]; + wchar_t oldname_utf16[MAX_PATH * 2]; + wchar_t newname_utf16[MAX_PATH * 2]; if( utf8_to_utf16( oldname, oldname_utf16 ) && utf8_to_utf16( newname, newname_utf16 ) ) { /* POSIX says that rename() removes the destination, but Win32 doesn't. */ @@ -165,7 +165,7 @@ int x264_rename( const char *oldname, const char *newname ) int x264_stat( const char *path, x264_struct_stat *buf ) { - wchar_t path_utf16[MAX_PATH]; + wchar_t path_utf16[MAX_PATH * 2]; if( utf8_to_utf16( path, path_utf16 ) ) return _wstati64( path_utf16, buf ); return -1; diff --git a/input/avs.c b/input/avs.c index b3ac9ffb5..6afb04b25 100644 --- a/input/avs.c +++ b/input/avs.c @@ -213,8 +213,8 @@ static int open_file( char *psz_filename, hnd_t *p_handle, video_info_t *info, c #ifdef _WIN32 /* Avisynth doesn't support Unicode filenames. */ - char ansi_filename[MAX_PATH]; - FAIL_IF_ERROR( !x264_ansi_filename( psz_filename, ansi_filename, MAX_PATH, 0 ), "invalid ansi filename\n" ); + char ansi_filename[MAX_PATH * 2]; + FAIL_IF_ERROR( !x264_ansi_filename( psz_filename, ansi_filename, MAX_PATH * 2, 0 ), "invalid ansi filename\n" ); AVS_Value arg = avs_new_value_string( ansi_filename ); #else AVS_Value arg = avs_new_value_string( psz_filename ); diff --git a/input/ffms.c b/input/ffms.c index d1ea567cb..94b9d8107 100644 --- a/input/ffms.c +++ b/input/ffms.c @@ -94,11 +94,11 @@ static int open_file( char *psz_filename, hnd_t *p_handle, video_info_t *info, c #ifdef __MINGW32__ /* FFMS supports UTF-8 filenames, but it uses std::fstream internally which is broken with Unicode in MinGW. */ FFMS_Init( 0, 0 ); - char src_filename[MAX_PATH]; - char idx_filename[MAX_PATH]; - FAIL_IF_ERROR( !x264_ansi_filename( psz_filename, src_filename, MAX_PATH, 0 ), "invalid ansi filename\n" ); + char src_filename[MAX_PATH * 2]; + char idx_filename[MAX_PATH * 2]; + FAIL_IF_ERROR( !x264_ansi_filename( psz_filename, src_filename, MAX_PATH * 2, 0 ), "invalid ansi filename\n" ); if( opt->index_file ) - FAIL_IF_ERROR( !x264_ansi_filename( opt->index_file, idx_filename, MAX_PATH, 1 ), "invalid ansi filename\n" ); + FAIL_IF_ERROR( !x264_ansi_filename( opt->index_file, idx_filename, MAX_PATH * 2, 1 ), "invalid ansi filename\n" ); #else FFMS_Init( 0, 1 ); char *src_filename = psz_filename; diff --git a/output/mp4.c b/output/mp4.c index c38119a58..341cabf18 100644 --- a/output/mp4.c +++ b/output/mp4.c @@ -181,8 +181,8 @@ static int open_file( char *psz_filename, hnd_t *p_handle, cli_output_opt_t *opt #ifdef _WIN32 /* GPAC doesn't support Unicode filenames. */ - char ansi_filename[MAX_PATH]; - FAIL_IF_ERR( !x264_ansi_filename( psz_filename, ansi_filename, MAX_PATH, 1 ), "mp4", "invalid ansi filename\n" ) + char ansi_filename[MAX_PATH * 2]; + FAIL_IF_ERR( !x264_ansi_filename( psz_filename, ansi_filename, MAX_PATH * 2, 1 ), "mp4", "invalid ansi filename\n" ) p_mp4->p_file = gf_isom_open( ansi_filename, GF_ISOM_OPEN_WRITE, NULL ); #else p_mp4->p_file = gf_isom_open( psz_filename, GF_ISOM_OPEN_WRITE, NULL );