After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 630378 - speexenc/speexdec crash with MSVC
speexenc/speexdec crash with MSVC
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Windows
: Normal normal
: 0.10.26
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-09-22 22:55 UTC by David Hoyt
Modified: 2010-09-23 19:59 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Speex patch using speex_lib_get_mode() (3.12 KB, patch)
2010-09-22 22:55 UTC, David Hoyt
committed Details | Review

Description David Hoyt 2010-09-22 22:55:33 UTC
Created attachment 170872 [details] [review]
Speex patch using speex_lib_get_mode()

Using speex rc1 compiled with GCC against GStreamer compiled with MSVC results in fatal crashes using a simple pipeline such as:

audiotestsrc ! speexenc ! speexdec ! fakesink

The attached patch resolves the problem by accessing speex modes through speex_lib_get_mode() instead of directly through speex_nb_mode, speex_wb_mode, and friends.

Speex had to be compiled with --disable-sse presumably because of stack alignment issues between GCC and MSVC (but that's an issue for the speex folks to resolve).

I do not know if it works with a statically linked libspeex. Works fine with a shared library.
Comment 1 Sebastian Dröge (slomo) 2010-09-23 19:58:33 UTC
Please attach patches in git format-patch format in the future.

commit 9f8619e5ca87c6abef11babcaf7fc41cc9d99002
Author: David Hoyt <dhoyt@llnl.gov>
Date:   Thu Sep 23 21:57:18 2010 +0200

    speex: Fix crashes with MSVC
    
    Using the symbols for the different Speex modes results
    in crashes when using MSVC. Use the library functions to
    get the modes instead.
    
    Fixes bug #630378.