Opened 8 years ago

Closed 8 years ago

#3104 closed defect (worksforme)

Impossible to disable jack or SDL

Reported by: william Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no


Summary of the bug:

If you have libjack installed in the system it is impossible to build ffmpeg with linking it to

It seems the same is valid for SDL. It may as well be for other libraries.

How to reproduce:

  1. Have libjack installed in the system
  1. ./configure --disable-indev=jack

$ cat work/ffmpeg-2.1/config.log | grep jack
jack_indev_deps='jack_jack_h sem_timedwait'

$ cat work/ffmpeg-2.1/config.h | grep -i jack

$ ldd work/stage/usr/local/bin/ffmpeg|grep -i jack => /usr/local/lib/ (0x803a78000)

Change History (3)

in reply to:  description comment:1 by Nicolas George, 8 years ago

Replying to william:

$ cat work/ffmpeg-2.1/config.log | grep jack


$ ldd work/stage/usr/local/bin/ffmpeg|grep -i jack => /usr/local/lib/ (0x803a78000)

Are you sure ffmpeg itself is linked with libjack? It could be brought by another library. You can use objdump -p to see the libraries ffmpeg directly links, in the NEEDED entries.

comment:2 by william, 8 years ago

Yes, sorry, I may not have been clear enough, it is not ffmpeg binary that links to the libjack, it is

readelf -a work/stage/usr/local/lib/|grep jack|grep NEEDED

0x0000000000000001 (NEEDED) Shared library: []

But libavdevice is built and part of ffmpeg.

Sorry if I am missing anything.

comment:3 by Carl Eugen Hoyos, 8 years ago

Component: build systemundetermined
Resolution: worksforme
Status: newclosed
Version: 2.1unspecified
$ make distclean
$ configure && make ffmpeg
$ ldd ffmpeg
... => /usr/lib64/ (0x00007fc7e5520000) => /usr/lib64/ (0x00007fc7e4fa9000)
$ make distclean
$ configure --disable-indev=jack --disable-outdev=sdl && make ffmpeg
$ ldd ffmpeg
(no sdl, no jack)
$ make distclean
$ configure --enable-shared && make libavdevice/
$ ldd libavdevice/
... => /usr/lib64/ (0x00007fe5d8a3a000) => /usr/lib64/ (0x00007fe5d84c3000)
$ make distclean
$ configure --enable-shared --disable-indev=jack --disable-outdev=sdl && make libavdevice/
$ ldd libavdevice/
(no sdl, no jack)
Note: See TracTickets for help on using tickets.