You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	avisynth: Make sure the filename passed to Avisynth is in the right code page
Avisynth is a non-unicode application and cannot accept UTF-8 characters. Therefore, the input filename should be converted to the code page that it expects. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
This commit is contained in:
		
				
					committed by
					
						 Derek Buitenhuis
						Derek Buitenhuis
					
				
			
			
				
	
			
			
			
						parent
						
							8bdbabfaa4
						
					
				
				
					commit
					81c5ceeda2
				
			| @@ -355,11 +355,22 @@ static int avisynth_open_file(AVFormatContext *s) { | ||||
|     AviSynthContext *avs = (AviSynthContext *)s->priv_data; | ||||
|     AVS_Value arg, val; | ||||
|     int ret; | ||||
| #ifdef _WIN32 | ||||
|     char filename_ansi[MAX_PATH * 4]; | ||||
|     wchar_t filename_wc[MAX_PATH * 4]; | ||||
| #endif | ||||
|  | ||||
|     if (ret = avisynth_context_create(s)) | ||||
|         return ret; | ||||
|  | ||||
| #ifdef _WIN32 | ||||
|     // Convert UTF-8 to ANSI code page | ||||
|     MultiByteToWideChar(CP_UTF8, 0, s->filename, -1, filename_wc, MAX_PATH * 4); | ||||
|     WideCharToMultiByte(CP_THREAD_ACP, 0, filename_wc, -1, filename_ansi, MAX_PATH * 4, NULL, NULL); | ||||
|     arg = avs_new_value_string(filename_ansi); | ||||
| #else | ||||
|     arg = avs_new_value_string(s->filename); | ||||
| #endif | ||||
|     val = avs_library->avs_invoke(avs->env, "Import", arg, 0); | ||||
|     if (avs_is_error(val)) { | ||||
|         av_log(s, AV_LOG_ERROR, "%s\n", avs_as_error(val)); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user