acm: Port to MinGW
authorРуслан Ижбулатов <lrn1986@gmail.com>
Thu, 26 Mar 2009 10:37:28 +0000 (11:37 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 26 Mar 2009 10:37:28 +0000 (11:37 +0100)
Fixes bug #573595.

configure.ac
sys/acmenc/Makefile.am
sys/acmenc/acmenc.c
sys/acmmp3dec/Makefile.am
sys/acmmp3dec/acmmp3dec.c

index 839e50653336eb8481b5b0fc41e6b24a800c3d07..77eacfb22597ca32165e2721303dd39c8b6b8a20 100644 (file)
@@ -1365,7 +1365,10 @@ translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
   AC_MSG_CHECKING([Checking for ACM support])
   AC_CHECK_HEADERS([windows.h msacm.h],
-      [HAVE_ACM="yes"], [HAVE_ACM="no"])
+      [HAVE_ACM="yes"
+       AC_SUBST(ACMENC_CFLAGS)
+       AC_SUBST(ACMMP3DEC_CFLAGS)
+      ], [HAVE_ACM="no"])
 ])
 
 else
index 361ded6c2e20e53e6190144b152664e782615ff0..587868bd5bf5e5ed80e873c2064cc349d6ba6f58 100644 (file)
@@ -2,7 +2,7 @@ plugin_LTLIBRARIES = libgstacmencsink.la
 \r
 libgstacmencsink_la_SOURCES = acmenc.c\r
 libgstacmencsink_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \\r
-       $(GST_PLUGINS_BASE_CFLAGS)\r
+       $(GST_PLUGINS_BASE_CFLAGS) $(ACMENC_CFLAGS)\r
 libgstacmencsink_la_LIBADD = $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) \\r
        -lgstriff-$(GST_MAJORMINOR) -lmsacm32\r
 libgstacmencsink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)\r
index 7ba88fb672bf2e46350593be61c9d30a9aa9b6fb..c1da855c4c8c52ce5ddfd241fcaedcad4d21d913 100644 (file)
@@ -231,7 +231,7 @@ acmenc_setup (ACMEnc * enc)
   enc->header.dwSrcUser = 0;
 
   /* Ask what buffer size we need to use for our output */
-  acmStreamSize (enc->stream, ACM_BUFFER_SIZE, &destBufferSize,
+  acmStreamSize (enc->stream, ACM_BUFFER_SIZE, (LPDWORD) & destBufferSize,
       ACM_STREAMSIZEF_SOURCE);
   enc->header.pbDst = (BYTE *) g_malloc (destBufferSize);
   enc->header.cbDstLength = destBufferSize;
@@ -484,8 +484,12 @@ acmenc_base_init (ACMEncClass * klass)
   if (res) {
     GST_WARNING ("Could not get driver details: %d", res);
   }
-  shortname = g_utf16_to_utf8 (driverdetails.szShortName, -1, NULL, NULL, NULL);
-  longname = g_utf16_to_utf8 (driverdetails.szLongName, -1, NULL, NULL, NULL);
+  shortname =
+      g_utf16_to_utf8 ((gunichar2 *) driverdetails.szShortName, -1, NULL, NULL,
+      NULL);
+  longname =
+      g_utf16_to_utf8 ((gunichar2 *) driverdetails.szLongName, -1, NULL, NULL,
+      NULL);
   details.longname = g_strdup_printf ("ACM Encoder: %s", (shortname
           && *shortname) ? shortname : params->name);
   details.klass = "Codec/Encoder/Audio";
@@ -503,13 +507,12 @@ acmenc_base_init (ACMEncClass * klass)
 static ACMEncParams *
 acmenc_open_driver (wchar_t * filename)
 {
-  HACMDRIVER driver = NULL;
   HACMDRIVERID driverid = NULL;
   HMODULE mod = NULL;
   FARPROC func;
   MMRESULT res;
   ACMEncParams *params;
-  mod = LoadLibrary (filename);
+  mod = LoadLibraryW (filename);
   if (!mod) {
     GST_WARNING ("Failed to load ACM");
     goto done;
@@ -581,22 +584,24 @@ acmenc_register (GstPlugin * plugin)
 {
   int res;
   wchar_t dirname[1024];
-  WIN32_FIND_DATA filedata;
+  WIN32_FIND_DATAW filedata;
   HANDLE find;
-  res = GetSystemDirectory (dirname, sizeof (dirname) / sizeof (wchar_t));
+  res = GetSystemDirectoryW (dirname, sizeof (dirname) / sizeof (wchar_t));
   if (!res || res > 1000) {
     GST_WARNING ("Couldn't get system directory");
     return FALSE;
   }
   wcscat (dirname, L"\\*.acm");
-  find = FindFirstFile (dirname, &filedata);
+  find = FindFirstFileW (dirname, &filedata);
   if (find == INVALID_HANDLE_VALUE) {
     GST_WARNING ("Failed to find ACM files: %x", GetLastError ());
     return FALSE;
   }
 
   do {
-    char *filename = g_utf16_to_utf8 (filedata.cFileName, -1, NULL, NULL, NULL);
+    char *filename =
+        g_utf16_to_utf8 ((gunichar2 *) filedata.cFileName, -1, NULL, NULL,
+        NULL);
     GST_INFO ("Registering ACM filter from file %s", filename);
     if (acmenc_register_file (plugin, filedata.cFileName))
       GST_INFO ("Loading filter from ACM '%s' succeeded", filename);
@@ -604,7 +609,7 @@ acmenc_register (GstPlugin * plugin)
     else
       GST_WARNING ("Loading filter from ACM '%s' failed", filename);
     g_free (filename);
-  } while (FindNextFile (find, &filedata));
+  } while (FindNextFileW (find, &filedata));
   FindClose (find);
   return TRUE;
 }
index 1f143de0969951bbdf253b7f44deb61cc56b9c6a..c1a28e75f97b72e47d7a4e015959596dd5469452 100644 (file)
@@ -2,7 +2,7 @@ plugin_LTLIBRARIES = libgstacmmp3dec.la
 \r
 libgstacmmp3dec_la_SOURCES = acmmp3dec.c\r
 libgstacmmp3dec_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \\r
-       $(GST_PLUGINS_BASE_CFLAGS)\r
+       $(GST_PLUGINS_BASE_CFLAGS) $(ACMMP3DEC_CFLAGS)\r
 libgstacmmp3dec_la_LIBADD = $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) \\r
        -lgstriff-$(GST_MAJORMINOR) -lmsacm32\r
 libgstacmmp3dec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(DIRECTSOUND_LDFLAGS)\r
index 9930e96d6d73e188aa014eba12f0408cbf98fde2..3a158f731a58c623b183493e7673e77d6b753054 100644 (file)
@@ -153,8 +153,9 @@ acmmp3dec_setup (ACMMP3Dec * dec)
   acmmp3dec_set_input_format (dec);
   acmmp3dec_set_output_format (dec);
 
-  res = acmStreamOpen (&dec->stream, NULL, &dec->infmt, &dec->outfmt,
-      0, 0, 0, 0);
+  res =
+      acmStreamOpen (&dec->stream, NULL, (LPWAVEFORMATEX) & dec->infmt,
+      &dec->outfmt, 0, 0, 0, 0);
   if (res) {
     GST_WARNING_OBJECT (dec, "Failed to open ACM stream: %d", res);
     return FALSE;
@@ -171,7 +172,7 @@ acmmp3dec_setup (ACMMP3Dec * dec)
 
   /* Ask what buffer size we need to use for our output */
   acmStreamSize (dec->stream, ACM_BUFFER_SIZE,
-      &destBufferSize, ACM_STREAMSIZEF_SOURCE);
+      (LPDWORD) & destBufferSize, ACM_STREAMSIZEF_SOURCE);
 
   dec->header.pbDst = (BYTE *) g_malloc (destBufferSize);
   dec->header.cbDstLength = destBufferSize;
@@ -404,7 +405,7 @@ acmmp3dec_class_init (ACMMP3DecClass * klass)
 }
 
 static void
-acmmp3dec_base_init (ACMMP3DecClass * klass)
+acmmp3dec_base_init (gpointer klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);