[FFmpeg-cvslog] libspeexenc: Use speex_lib_get_mode instead of the speex_foo_mode data symbols

Martin Storsjö git at videolan.org
Sun Nov 12 05:45:01 EET 2017


ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Fri Nov  3 11:36:49 2017 +0200| [1746c7c8f2f9a6c5eacb486426dd0a579b4b7498] | committer: Martin Storsjö

libspeexenc: Use speex_lib_get_mode instead of the speex_foo_mode data symbols

This avoids issues linking to a DLL version of libspeex, since the
libspeex headers lack proper dllimport declarations for the data
symbols.

This isn't an issue when building with mingw with GNU binutils, since
GNU ld can fix up that kind of data import automatically.

libspeexdec.c already uses speex_lib_get_mode as well.

Signed-off-by: Martin Storsjö <martin at martin.st>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1746c7c8f2f9a6c5eacb486426dd0a579b4b7498
---

 libavcodec/libspeexenc.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/libavcodec/libspeexenc.c b/libavcodec/libspeexenc.c
index f3a31e9879..eb02e8ec6d 100644
--- a/libavcodec/libspeexenc.c
+++ b/libavcodec/libspeexenc.c
@@ -158,9 +158,9 @@ static av_cold int encode_init(AVCodecContext *avctx)
 
     /* sample rate and encoding mode */
     switch (avctx->sample_rate) {
-    case  8000: mode = &speex_nb_mode;  break;
-    case 16000: mode = &speex_wb_mode;  break;
-    case 32000: mode = &speex_uwb_mode; break;
+    case  8000: mode = speex_lib_get_mode(SPEEX_MODEID_NB);  break;
+    case 16000: mode = speex_lib_get_mode(SPEEX_MODEID_WB);  break;
+    case 32000: mode = speex_lib_get_mode(SPEEX_MODEID_UWB); break;
     default:
         av_log(avctx, AV_LOG_ERROR, "Sample rate of %d Hz is not supported. "
                "Resample to 8, 16, or 32 kHz.\n", avctx->sample_rate);



More information about the ffmpeg-cvslog mailing list