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