[FFmpeg-trac] #314(avdevice:new): OpenAL device does not work on OS X

FFmpeg trac at avcodec.org
Mon Jun 27 17:22:47 CEST 2011


#314: OpenAL device does not work on OS X
----------------------+--------------------------
 Reporter:  nieder    |        Type:  enhancement
   Status:  new       |    Priority:  normal
Component:  avdevice  |     Version:  git-master
 Keywords:            |  Blocked By:
 Blocking:            |  Reproduced:  0
 Analyzed:  0         |
----------------------+--------------------------
 configure is not set to find openal on OS X.

 The fix for the linker check is easy: add "-Wl,-framework,OpenAL" to the
 list of flags to check

 {{{
 -enabled openal     && { { for al_libs in "${OPENAL_LIBS}" "-lopenal"
 "-lOpenAL32"; do
 +enabled openal     && { { for al_libs in "${OPENAL_LIBS}" "-lopenal"
 "-lOpenAL32" "-Wl,-framework,OpenAL"; do
 }}}

 I don't know how to fix the header check to look for multiple
 possibilities, but on OS X the header in the OpenAL framework is found in
 OpenAL/al.h (not AL/al.h like in linux).  If I change the header check in
 configure and the includes in libavdevice/openal-dec.c, the build and
 linkage works well.

 However, running 'ffmpeg -f openal' as suggested in the manual fails with
 an malloc error, so this might just not be doable on OS X.

 {{{
 nieder $ /usr/local/ffmpeg-git/bin/ffmpeg -list_devices true -f openal -i
 dummy out.ogg
 ffmpeg version N-31036-g65eae2a, Copyright (c) 2000-2011 the FFmpeg
 developers
   built on Jun 27 2011 10:29:19 with gcc 4.0.1 (Apple Inc. build 5493)
   configuration: --prefix=/usr/local/ffmpeg-git --mandir=/usr/local
 /ffmpeg-git/share/man --disable-static --enable-shared --enable-gpl
 --enable-version3 --enable-postproc --enable-pthreads --enable-x11grab
 --enable-bzlib --enable-libcelt --enable-libopencore-amrnb --enable-
 libopencore-amrwb --enable-libdirac --enable-libfreetype --enable-
 libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libschroedinger
 --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx
 --enable-libx264 --enable-libxvid --enable-openal --enable-zlib --disable-
 debug --extra-cflags='-I/sw/lib/libspeex1/include -I/sw/include
 -I/usr/X11R6/include' --extra-ldflags='-L/sw/lib/libspeex1/lib -L/sw/lib
 -L/usr/X11R6/lib'
   libavutil    51. 10. 0 / 51. 10. 0
   libavcodec   53.  7. 0 / 53.  7. 0
   libavformat  53.  4. 0 / 53.  4. 0
   libavdevice  53.  2. 0 / 53.  2. 0
   libavfilter   2. 24. 0 /  2. 24. 0
   libswscale    2.  0. 0 /  2.  0. 0
   libpostproc  51.  2. 0 / 51.  2. 0
 [openal @ 0x200a800] List of OpenAL capture devices on this system:
 [openal @ 0x200a800]   Built-in Microphone
 dummy: Immediate exit requested

 nieder $ /usr/local/ffmpeg-git/bin/ffmpeg -f openal -i 'Built-in
 Microphone' out.ogg
 ffmpeg version N-31036-g65eae2a, Copyright (c) 2000-2011 the FFmpeg
 developers
   built on Jun 27 2011 10:29:19 with gcc 4.0.1 (Apple Inc. build 5493)
   configuration: --prefix=/usr/local/ffmpeg-git --mandir=/usr/local
 /ffmpeg-git/share/man --disable-static --enable-shared --enable-gpl
 --enable-version3 --enable-postproc --enable-pthreads --enable-x11grab
 --enable-bzlib --enable-libcelt --enable-libopencore-amrnb --enable-
 libopencore-amrwb --enable-libdirac --enable-libfreetype --enable-
 libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libschroedinger
 --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx
 --enable-libx264 --enable-libxvid --enable-openal --enable-zlib --disable-
 debug --extra-cflags='-I/sw/lib/libspeex1/include -I/sw/include
 -I/usr/X11R6/include' --extra-ldflags='-L/sw/lib/libspeex1/lib -L/sw/lib
 -L/usr/X11R6/lib'
   libavutil    51. 10. 0 / 51. 10. 0
   libavcodec   53.  7. 0 / 53.  7. 0
   libavformat  53.  4. 0 / 53.  4. 0
   libavdevice  53.  2. 0 / 53.  2. 0
   libavfilter   2. 24. 0 /  2. 24. 0
   libswscale    2.  0. 0 /  2.  0. 0
   libpostproc  51.  2. 0 / 51.  2. 0
 mpeg(49840,0xa025b720) malloc: *** error for object 0x1e2c0e0: incorrect
 checksum for freed object - object was probably modified after being
 freed.
 *** set a breakpoint in malloc_error_break to debug
 mpeg(49840,0xa025b720) malloc: *** error for object 0x1e2c0e0: incorrect
 checksum for freed object - object was probably modified after being
 freed.
 *** set a breakpoint in malloc_error_break to debug
 [openal @ 0x200a800] Error: ALC Invalid Device
 Bus error
 }}}

-- 
Ticket URL: <http://ffmpeg.org/trac/ffmpeg/ticket/314>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list