summaryrefslogtreecommitdiff
path: root/src/lib/sndfile_decoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-02-26 22:26:41 +0000
committerCarl Hetherington <cth@carlh.net>2014-02-26 22:26:41 +0000
commitc9f5634790254180a0a2b3275a1b878d1d422298 (patch)
tree3ce29cf45ef93253842298ec2402a9e91e3421f2 /src/lib/sndfile_decoder.cc
parente52d78a0ebf4852c56bcf4119ed7d4c1d0d9b8ff (diff)
Fix problems loading files into SndfileDecoder when
they have non-ASCII names. Reported-by: José Luis Rodríguez García
Diffstat (limited to 'src/lib/sndfile_decoder.cc')
-rw-r--r--src/lib/sndfile_decoder.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/lib/sndfile_decoder.cc b/src/lib/sndfile_decoder.cc
index e10f4f568..f66a7c7dc 100644
--- a/src/lib/sndfile_decoder.cc
+++ b/src/lib/sndfile_decoder.cc
@@ -18,6 +18,10 @@
*/
#include <iostream>
+#ifdef DCPOMATIC_WINDOWS
+#include <windows.h>
+#define ENABLE_SNDFILE_WINDOWS_PROTOTYPES 1
+#endif
#include <sndfile.h>
#include "sndfile_content.h"
#include "sndfile_decoder.h"
@@ -40,7 +44,14 @@ SndfileDecoder::SndfileDecoder (shared_ptr<const Film> f, shared_ptr<const Sndfi
, _deinterleave_buffer (0)
{
_info.format = 0;
+
+ /* Here be monsters. See fopen_boost for similar shenanigans */
+#ifdef DCPOMATIC_WINDOWS
+ _sndfile = sf_wchar_open (_sndfile_content->path(0).c_str(), SFM_READ, &_info);
+#else
_sndfile = sf_open (_sndfile_content->path(0).string().c_str(), SFM_READ, &_info);
+#endif
+
if (!_sndfile) {
throw DecodeError (_("could not open audio file for reading"));
}