[gstreamer-bugs] [Bug 345336] New: modplug plugin doesn't work on AMD64

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Mon Jun 19 10:24:21 PDT 2006


Do not reply to this via email (we are currently unable to handle email
responses and they get discarded).  You can add comments to this bug at
http://bugzilla.gnome.org/show_bug.cgi?id=345336
 GStreamer | gst-plugins-bad | Ver: HEAD CVS

           Summary: modplug plugin doesn't work on AMD64
           Product: GStreamer
           Version: HEAD CVS
          Platform: Other
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: stefan at space.twc.de
         QAContact: gstreamer-bugs at lists.sourceforge.net
     GNOME version: Unspecified
   GNOME milestone: Unspecified


Compiling the GStreamer modplug plugin from CVS on AMD64 produces a non-working
plugin (files can not be played correctly). Linking against the debian unstable
system supplied libmodplug instead of the version from the GStreamer CVS fixes
the problem.

I assume that the only problem is that the stdafx.h header of the version  of
libmodplug in the GStreamer CVS makes assumptions on the width of certain C
types that are no longer valid on AMD64. Where stdafx.h as found in the
GStreamer CVS does unconditionally define:

typedef unsigned long DWORD;
typedef long LONG;

and others (which are 32-bit types on 32-bit systems, and 64-bit types on
AMD64), the debian supplied libmodplug/stdafx.h has:

#if defined(__x86_64__)
typedef unsigned int ULONG;
typedef unsigned int UINT;
typedef unsigned int DWORD;
typedef int LONG;
typedef long LONGLONG;
typedef int * LPLONG;
typedef unsigned int * LPDWORD;
#else
typedef unsigned long ULONG;
typedef unsigned long UINT;
typedef unsigned long DWORD;
typedef long LONG;
typedef long long LONGLONG;
typedef long * LPLONG;
typedef unsigned long * LPDWORD;
#endif

I have checked the upstream version of libmodplug (which nowerdays is 0.8,
GStreamer CVS includes 0.7), and it also contains the #ifdef specialcasing.

So I think there are three ways of solving the problem:

1. update the GStreamer CVS to libmodplug-0.8
2. link against a system-supplied libmodplug when available
   (via configure check)
3. try to backfold the debian changes against libmodplug-0.7 into GStreamer

I suggest going with the first alternative. Let me know if you need a patch.


-- 
Configure bugmail: http://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.




More information about the Gstreamer-bugs mailing list