patch update.

From: Oka Motofumi <[email protected]>
Date: Thu, 31 May 2012 02:14:43 +0900
Subject: [PATCH] libavformat/avisynth.c: fix input filepath issue

avisynth is a non-unicode application and cannot accept UTF-8 characters.
therefore, input filename should be converted to the correct code page
that it expected.
---
 libavformat/avisynth.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/libavformat/avisynth.c b/libavformat/avisynth.c
index 3b695a9..c4c523d 100644
--- a/libavformat/avisynth.c
+++ b/libavformat/avisynth.c
@@ -49,10 +49,15 @@ static int avisynth_read_header(AVFormatContext *s)
   DWORD id;
   AVStream *st;
   AVISynthStream *stream;
+  wchar_t filename_wchar[1024] = { 0 };
+  char filename_char[1024] = { 0 };

   AVIFileInit();

-  res = AVIFileOpen(&avs->file, s->filename, OF_READ|OF_SHARE_DENY_WRITE,
NULL);
+  /* avisynth can't accept UTF-8 filename */
+  MultiByteToWideChar(CP_UTF8, 0, s->filename, -1, filename_wchar, 1024);
+  WideCharToMultiByte(CP_THREAD_ACP, 0, filename_wchar, -1, filename_char,
1024, NULL, NULL);
+  res = AVIFileOpen(&avs->file, filename_char,
OF_READ|OF_SHARE_DENY_WRITE, NULL);
   if (res != S_OK)
     {
       av_log(s, AV_LOG_ERROR, "AVIFileOpen failed with error %ld", res);
-- 
1.7.9
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to