From f066903d980cd384f2eb3593d9b8605489a86632 Mon Sep 17 00:00:00 2001 From: Karl Blomster Date: Sun, 26 Jul 2009 23:10:12 +0000 Subject: [PATCH] FFMS2 a/v providers should use UTF8 strings for the cache filenames, just like for every other file. Updates #955 but does not fix it since you still get bizarre popups that I have no idea where they're coming from if the write/touch operations fail. This change should be merged into 2.1.8. Originally committed to SVN as r3294. --- aegisub/src/audio_provider_ffmpegsource.cpp | 4 +++- aegisub/src/ffmpegsource_common.cpp | 2 +- aegisub/src/ffmpegsource_common.h | 1 + aegisub/src/video_provider_ffmpegsource.cpp | 5 ++++- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/aegisub/src/audio_provider_ffmpegsource.cpp b/aegisub/src/audio_provider_ffmpegsource.cpp index 24254a2d2..db68fd6f4 100644 --- a/aegisub/src/audio_provider_ffmpegsource.cpp +++ b/aegisub/src/audio_provider_ffmpegsource.cpp @@ -164,7 +164,9 @@ void FFmpegSourceAudioProvider::LoadAudio(wxString filename) { } // update access time of index file so it won't get cleaned away - wxFileName(CacheName).Touch(); + if (!wxFileName(CacheName).Touch()) { + // warn user? + } AudioSource = FFMS_CreateAudioSource(FileNameShort.utf8_str(), TrackNumber, Index, FFMSErrMsg, MsgSize); FFMS_DestroyIndex(Index); diff --git a/aegisub/src/ffmpegsource_common.cpp b/aegisub/src/ffmpegsource_common.cpp index 923ea5a2d..de562c008 100644 --- a/aegisub/src/ffmpegsource_common.cpp +++ b/aegisub/src/ffmpegsource_common.cpp @@ -96,7 +96,7 @@ FFIndex *FFmpegSourceProvider::DoIndexing(FFIndexer *Indexer, const wxString &Ca // write index to disk for later use // ignore write errors for now - FFMS_WriteIndex(CacheName.char_str(), Index, FFMSErrMsg, MsgSize); + FFMS_WriteIndex(CacheName.utf8_str(), Index, FFMSErrMsg, MsgSize); /*if (FFMS_WriteIndex(CacheName.char_str(), Index, FFMSErrMsg, MsgSize)) { wxString temp(FFMSErrMsg, wxConvUTF8); MsgString << _T("Failed to write index: ") << temp; diff --git a/aegisub/src/ffmpegsource_common.h b/aegisub/src/ffmpegsource_common.h index 43977d9ee..0958e8337 100644 --- a/aegisub/src/ffmpegsource_common.h +++ b/aegisub/src/ffmpegsource_common.h @@ -41,6 +41,7 @@ #include #include #include "include/aegisub/aegisub.h" +#define FFMS_BETA_10_COMPAT #include #include "dialog_progress.h" diff --git a/aegisub/src/video_provider_ffmpegsource.cpp b/aegisub/src/video_provider_ffmpegsource.cpp index db8c0448e..799bd7b5e 100644 --- a/aegisub/src/video_provider_ffmpegsource.cpp +++ b/aegisub/src/video_provider_ffmpegsource.cpp @@ -174,7 +174,10 @@ void FFmpegSourceVideoProvider::LoadVideo(wxString filename) { } // update access time of index file so it won't get cleaned away - wxFileName(CacheName).Touch(); + if (!wxFileName(CacheName).Touch()) { + // warn user? + // FIND OUT WHY IT'S POPPING UP ERROR MESSAGES HERE + } // we have now read the index and may proceed with cleaning the index cache if (!CleanCache()) {