Try to fix windows build failure (#1071).
[dcpomatic.git] / src / lib / cross.cc
index 454fe044cb51b2e19b3c646ba4d87738cbf762dc..a484d17388c523d009e2f3d418cf2f75518bb91e 100644 (file)
@@ -22,6 +22,9 @@
 #include "compose.hpp"
 #include "log.h"
 #include "exceptions.h"
+extern "C" {
+#include <libavformat/avio.h>
+}
 #include <boost/algorithm/string.hpp>
 #ifdef DCPOMATIC_LINUX
 #include <unistd.h>
@@ -406,3 +409,18 @@ thread_id ()
        return (uint64_t) pthread_self ();
 #endif
 }
+
+int
+avio_open_boost (AVIOContext** s, boost::filesystem::path file, int flags)
+{
+#ifdef DCPOMATIC_WINDOWS
+       int const length = (file.length() + 1) * 2;
+       char* utf8 = new char[length];
+       WideCharToMultibyte (CP_UTF8, 0, file.c_str(), -1, utf8, length, 0, 0);
+       int const r = avio_open_boost (s, file.c_str(), flags);
+       delete[] utf8;
+       return r;
+#else
+       return avio_open_boost (s, file.c_str(), flags);
+#endif
+}