Bug #14940, was updated on 2008-Dec-18 15:28 Here is a current snapshot of the bug.
Project: Vdr Softdevice Category: None Status: Open Resolution: None Bug Group: None Priority: 5 Submitted by: erbse Assigned to : lucke Summary: undefined symbol: avcodec_build Details: Hallo, beim Start von vdr mit -psoftdevice -vo shm bekomme ich diese Fehlermeldung: vdr starten: vdr: /usr/local/vdr/lib/libvdr-softdevice.so.1.6.0: undefined symbol: avcodec_build FFmpeg und das Softdevice-Plugin habe ich jeweils aus der cvs gezogen (heute), bei ffmpeg bin ich nach der Anleitung aus dem VDR-Wiki (von der Softdevice-Seite) vorgegangen. Einziges Problem bei dieser Anleitung: bei ffmpeg geht "make install-lib" nicht, weil es anscheinend keine Regel dafür im Makefile gibt. softdevice hat aber ohne Fehlermeldung kompiliert. Gruß Erbse Follow-Ups: Date: 2008-Dec-20 20:12 By: lucke Comment: 1. The first error message of your log from 2008-12-19 14:43 are NOT dangerous, as we are trying to find out locations of FFmpeg. Message: Checking ffmpeg for member of AVCodecContext: error_recognition ---- is not followed by errors, so we will use this member. 2. Copying FFmpeg headers manually to other locations will lead to problems later when searching of old versions. 3. Your 'E: client..' messages .. , never seen that before. Googling for that, shows several hits (as mentioned in the 2nd line) related to pulseaudio. 4. Why do you use softdevice on a headless system ? In such an enviroment I would prefer a streamdev client/server setup, accessing server OSD via plugin remoteosd... ------------------------------------------------------- Date: 2008-Dec-20 10:57 By: erbse Comment: I should have added that vdr runs on a headless server without X. But that was never a Problem before and softdevice ran fine with vdr -Psoftdevice -vo shm. Problems began only when I updated ffmpeg (via yum) ------------------------------------------------------- Date: 2008-Dec-19 15:10 By: erbse Comment: Update: I copied the files from /usr/local/include/libavutil/, .../libavformat, .../libavcodec and .../postproc to /usr/local/include/ Config.log looks better now, at least the headers are being found: ------- Parameters '' PKG_CONFIG_PATH 'lib-dir/pkgconfig:datadir/pkgconfig:/home/local/lib/pkgconfig:/usr/local/lib/pkgconfig' Testing system and cpu type.---------------------------- uname -a: Linux gondor.npg.net 2.6.25.9-40.fc8 #1 SMP Fri Jun 27 16:25:53 EDT 2008 i686 i686 i386 GNU/Linux g++ -dumpmache: i386-redhat-linux Checking for pkg-config.------------------------------- 0.22 Checking for ffmpeg.------------------------------------ try to use pkg-config. -L/usr/local/lib -lpostproc Checking for ffmpeg/libswscale.------------------------------------ Checking for pp_postprocess 1st arg. ----- Checking ffmpeg for member of AVCodecContext: error_recognition ---- Checking for ALSA sound.------------------ Checking for OSS sound.------------------ Checking for linux framebuffer.------------------ Checking for yaepg patch.------------------ g++ -O2 -g -Wall -D_GNU_SOURCE -I../../.. -c -o /tmp/softdevice-conf-24189-3967-19141 /tmp/softdevice-conf-12946-3967-4906.c >> config.log 2>&1 /tmp/softdevice-conf-12946-3967-4906.c: In function »int test_func(cOsd*)«: /tmp/softdevice-conf-12946-3967-4906.c:3: Fehler: »class cOsd« hat kein Element namens »vidWin« make: *** [/tmp/softdevice-conf-24189-3967-19141] Fehler 1 Checking for DirectFB and DFB++.------------------ Package dfb++ was not found in the pkg-config search path. Perhaps you should add the directory containing `dfb++.pc' to the PKG_CONFIG_PATH environment variable No package 'dfb++' found Checking for vidix.------------------------ Checking for Xv.----------------------------- Checking for Xinerama.----------------------------- -------------------- output of ./configure : Testing system and cpu type... found Linux on i386 cpu. Checking for pkg-config... Found. Checking for ffmpeg... Ok. Checking for ffmpeg/libswscale... Using libswscale. Checking for pp_postprocess 1st arg ... is: const uint8_t ** Checking ffmpeg for member of AVCodecContext: error_recognition ... 'error_recognition' found Checking for ALSA sound... Enabled audio-alsa. Checking for OSS sound... Enabled audio-oss. Checking for linux frambuffer... Enabled video-fb. Checking for yaepg patch... Not Found. Checking for DirectFB and DFB++... Not Found. Checking for vidix... Enabled video-out vidix. Checking for Xv... Enabled video-xv. Checking for Xinerama... Enabled Xinerama. Creating temporary config.h and config.mak config.h is unchanged config.mak is unchanged Configure is finished. Please check config.log in case of problems. -------------- vdr startup output: vdr starten: softdevice: Got ctl_shmid 32769 shm ctl! softdevice: Error attatching existing setupStore shm! setupStoreShmId -1 setupStore (nil) softdevice: Created setupStoreId 1212420! softdevice: Attatched to setupStoreId 1212420 at 0xb7d64000. [softdevice] processing args [softdevice] argv [0] = softdevice [softdevice] argv [1] = -vo [setup-softdevice] alsa ac3Mode set to: 0 [setup-softdevice] alsa AC3 device set to: [setup-softdevice] alsa device set to: [setup-softdevice] autodetectAspect 0 [setup-softdevice] A/V Offset set to (0) [setup-softdevice] Cropping 0 lines from bottom [setup-softdevice] Cropping 0 columns from left [setup-softdevice] cropping mode set to 0 (none) [setup-softdevice] cropping mode toggle key set to 0 (none) [setup-softdevice] Cropping 0 columns from right [setup-softdevice] Cropping 0 lines from top [setup-softdevice] deinterlace method set to 0 none [setup-softdevice] Expanding 0 columns at left and right [setup-softdevice] Expanding 0 columns at top and bottom [setup-softdevice] mainMenu: 1 [setup-softdevice] setting alpha blend mode to software [softdevice] picture mirroring set to 0 (off) [setup-softdevice] pixel format set to (I420) [setup-softdevice] shouldSuspend to: 0 [setup-softdevice] syncTimerMode: sig [softdevice] UseSetSourceRectangle to off [softdevice] UseStretchBlitset to off [setup-softdevice] vidBrightness: -1 [setup-softdevice] vidContrast: -1 [setup-softdevice] vidHue: -1 [setup-softdevice] vidSaturation: -1 [setup-softdevice] startup aspect set to (4:3 normal) [softdevice] initializing Plugin [softdevice] Initializing Video Out [softdevice] ffmpeg build(3409664) cShmVideoOut: Got ctl_shmid 32769 shm ctl! [softdevice] Subplugin successfully opend [softdevice] Video Out seems to be OK [softdevice] Initializing Audio Out E: client-conf-x11.c: XOpenDisplay() failed *** PULSEAUDIO: Unable to connect: Connection refused [FEHLGESCHLAGEN] ------------------------------------------------------- Date: 2008-Dec-19 14:43 By: erbse Comment: Hi, I installed some missing packages (e.g. alsa-devel) and the error disappeared. Unfortunately, on starting vdr I now get this: vdr starten: softdevice: Got ctl_shmid 32769 shm ctl! softdevice: Error attatching existing setupStore shm! setupStoreShmId -1 setupStore (nil) softdevice: Created setupStoreId 1146884! softdevice: Attatched to setupStoreId 1146884 at 0xb7cc0000. [softdevice] processing args [softdevice] argv [0] = softdevice [softdevice] argv [1] = -vo [setup-softdevice] alsa ac3Mode set to: 0 [setup-softdevice] alsa AC3 device set to: [setup-softdevice] alsa device set to: [setup-softdevice] autodetectAspect 0 [setup-softdevice] A/V Offset set to (0) [setup-softdevice] Cropping 0 lines from bottom [setup-softdevice] Cropping 0 columns from left [setup-softdevice] cropping mode set to 0 (none) [setup-softdevice] cropping mode toggle key set to 0 (none) [setup-softdevice] Cropping 0 columns from right [setup-softdevice] Cropping 0 lines from top [setup-softdevice] deinterlace method set to 0 none [setup-softdevice] Expanding 0 columns at left and right [setup-softdevice] Expanding 0 columns at top and bottom [setup-softdevice] mainMenu: 1 [setup-softdevice] setting alpha blend mode to software [softdevice] picture mirroring set to 0 (off) [setup-softdevice] pixel format set to (I420) [setup-softdevice] shouldSuspend to: 0 [setup-softdevice] syncTimerMode: sig [softdevice] UseSetSourceRectangle to off [softdevice] UseStretchBlitset to off [setup-softdevice] vidBrightness: -1 [setup-softdevice] vidContrast: -1 [setup-softdevice] vidHue: -1 [setup-softdevice] vidSaturation: -1 [setup-softdevice] startup aspect set to (4:3 normal) [softdevice] initializing Plugin [softdevice] Initializing Video Out [softdevice] ffmpeg build(3409664) cShmVideoOut: Got ctl_shmid 32769 shm ctl! [softdevice] Subplugin successfully opend [softdevice] Video Out seems to be OK [softdevice] Initializing Audio Out E: client-conf-x11.c: XOpenDisplay() failed *** PULSEAUDIO: Unable to connect: Connection refused ------- Running ./configure produces this output: --------- Testing system and cpu type... found Linux on i386 cpu. Checking for pkg-config... Found. Checking for ffmpeg... Ok. Checking for ffmpeg/libswscale... Using libswscale. Checking for pp_postprocess 1st arg ... is: const uint8_t ** Checking ffmpeg for member of AVCodecContext: error_recognition ... 'error_recognition' found Checking for ALSA sound... Enabled audio-alsa. Checking for OSS sound... Enabled audio-oss. Checking for linux frambuffer... Enabled video-fb. Checking for yaepg patch... Not Found. Checking for DirectFB and DFB++... Not Found. Checking for vidix... Enabled video-out vidix. Checking for Xv... Enabled video-xv. Checking for Xinerama... Enabled Xinerama. Creating temporary config.h and config.mak config.h is unchanged config.mak is unchanged Configure is finished. Please check config.log in case of problems. ----------- latest config.log: ----------- Parameters '' PKG_CONFIG_PATH 'lib-dir/pkgconfig:datadir/pkgconfig:/home/local/lib/pkgconfig:/usr/local/lib/pkgconfig' Testing system and cpu type.---------------------------- uname -a: Linux gondor.npg.net 2.6.25.9-40.fc8 #1 SMP Fri Jun 27 16:25:53 EDT 2008 i686 i686 i386 GNU/Linux g++ -dumpmache: i386-redhat-linux Checking for pkg-config.------------------------------- 0.22 Checking for ffmpeg.------------------------------------ try to use pkg-config. -L/usr/local/lib -lpostproc /tmp/softdevice-conf-16396-3314-21938.c:4:21: Fehler: avcodec.h: Datei oder Verzeichnis nicht gefunden /usr/local/include/avio.h:114: Fehler: »uint8_t« wurde nicht deklariert /usr/local/include/avio.h:115: Fehler: »uint8_t« wurde nicht deklariert /usr/local/include/avio.h:125: Fehler: expected »,« or »...« before »*« token /usr/local/include/avio.h:134: Fehler: »uint8_t« wurde nicht deklariert /usr/local/include/avio.h:135: Fehler: »uint8_t« wurde nicht deklariert /usr/local/include/avio.h:140: Fehler: »uint64_t« wurde nicht deklariert /usr/local/include/avio.h:141: Fehler: »uint64_t« wurde nicht deklariert /usr/local/include/avio.h:184: Fehler: »uint64_t« bezeichnet keinen Typ /usr/local/include/avio.h:191: Fehler: »uint64_t« bezeichnet keinen Typ /usr/local/include/avio.h:219: Fehler: »uint8_t« wurde nicht deklariert /usr/local/include/avio.h:250: Fehler: »uint8_t« wurde nicht deklariert /usr/local/include/avio.h:253: Fehler: expected »,« or »...« before »*« token /usr/local/include/avformat.h:41: Fehler: expected »;« before »*« token /usr/local/include/avformat.h: In function »void av_init_packet(AVPacket*)«: /usr/local/include/avformat.h:62: Fehler: »AV_NOPTS_VALUE« wurde in diesem Gültigkeitsbereich nicht definiert /usr/local/include/avformat.h: At global scope: /usr/local/include/avformat.h:117: Fehler: expected initializer before »attribute_deprecated« /usr/local/include/avformat.h:137: Fehler: »AVRational« bezeichnet keinen Typ /usr/local/include/avformat.h:142: Fehler: Verwendung des enum »PixelFormat« ohne vorherige Deklaration /usr/local/include/avformat.h:155: Fehler: Verwendung des enum »CodecID« ohne vorherige Deklaration /usr/local/include/avformat.h:156: Fehler: Verwendung des enum »CodecID« ohne vorherige Deklaration /usr/local/include/avformat.h:177: Fehler: Verwendung des enum »CodecID« ohne vorherige Deklaration /usr/local/include/avformat.h:178: Fehler: Verwendung des enum »CodecID« ohne vorherige Deklaration /usr/local/include/avformat.h:274: Fehler: expected »;« before »*« token /usr/local/include/avformat.h:283: Fehler: »AVRational« bezeichnet keinen Typ /usr/local/include/avformat.h:299: Fehler: »AVRational« bezeichnet keinen Typ /usr/local/include/avformat.h:303: Fehler: Verwendung des enum »AVDiscard« ohne vorherige Deklaration /usr/local/include/avformat.h:341: Fehler: expected »;« before »*« token /usr/local/include/avformat.h:385: Fehler: expected »;« before »*« token /usr/local/include/avformat.h:416: Fehler: expected »;« before »*« token /usr/local/include/avformat.h:428: Fehler: Verwendung des enum »CodecID« ohne vorherige Deklaration /usr/local/include/avformat.h:428: Fehler: invalid type in declaration before »;« token /usr/local/include/rtp.h:28: Fehler: »AVCodecContext« wurde in diesem Gültigkeitsbereich nicht definiert /usr/local/include/rtp.h:28: Fehler: »codec« wurde in diesem Gültigkeitsbereich nicht definiert /usr/local/include/rtp.h:28: Fehler: expected primary-expression before »int« /usr/local/include/rtp.h:28: Fehler: initializer Ausdrucksliste als zusammengesetzten Ausdruck behandelt /usr/local/include/rtp.h:31: Fehler: »AVCodecContext« wurde in diesem Gültigkeitsbereich nicht definiert /usr/local/include/rtp.h:31: Fehler: »codec« wurde in diesem Gültigkeitsbereich nicht definiert /usr/local/include/rtp.h:37: Fehler: expected »,« or »...« before »*« token /usr/local/include/rtp.h:95: Fehler: Verwendung des enum »CodecType« ohne vorherige Deklaration /usr/local/include/rtp.h:96: Fehler: Verwendung des enum »CodecID« ohne vorherige Deklaration /usr/local/include/rtsp.h:46: Fehler: »uint32_t« bezeichnet keinen Typ /usr/local/include/rtsp.h:70: Fehler: »uint32_t« bezeichnet keinen Typ /usr/local/include/avformat.h:448: Fehler: Verwendung des enum »CodecID« ohne vorherige Deklaration /usr/local/include/avformat.h:449: Fehler: Verwendung des enum »CodecType« ohne vorherige Deklaration /usr/local/include/avformat.h:449: Fehler: invalid type in declaration before »;« token /usr/local/include/avformat.h:460: Fehler: »uint8_t« wurde nicht deklariert /usr/local/include/avformat.h:474: Fehler: »uint8_t« wurde nicht deklariert /usr/local/include/avformat.h:500: Fehler: Verwendung des enum »CodecID« ohne vorherige Deklaration /usr/local/include/avformat.h:500: Fehler: invalid type in declaration before »;« token /usr/local/include/avformat.h:501: Fehler: Verwendung des enum »CodecID« ohne vorherige Deklaration /tmp/softdevice-conf-16396-3314-21938.c: In function »int main()«: /tmp/softdevice-conf-16396-3314-21938.c:8: Fehler: »avcodec_init« wurde in diesem Gültigkeitsbereich nicht definiert /tmp/softdevice-conf-16396-3314-21938.c:9: Fehler: »avcodec_register_all« wurde in diesem Gültigkeitsbereich nicht definiert Checking for ffmpeg/libswscale.------------------------------------ Checking for pp_postprocess 1st arg. ----- Checking ffmpeg for member of AVCodecContext: error_recognition ---- Checking for ALSA sound.------------------ Checking for OSS sound.------------------ Checking for linux framebuffer.------------------ Checking for yaepg patch.------------------ g++ -O2 -g -Wall -D_GNU_SOURCE -I../../.. -c -o /tmp/softdevice-conf-18340-3314-12704 /tmp/softdevice-conf-16396-3314-21938.c >> config.log 2>&1 /tmp/softdevice-conf-16396-3314-21938.c: In function »int test_func(cOsd*)«: /tmp/softdevice-conf-16396-3314-21938.c:3: Fehler: »class cOsd« hat kein Element namens »vidWin« make: *** [/tmp/softdevice-conf-18340-3314-12704] Fehler 1 Checking for DirectFB and DFB++.------------------ Package dfb++ was not found in the pkg-config search path. Perhaps you should add the directory containing `dfb++.pc' to the PKG_CONFIG_PATH environment variable No package 'dfb++' found Checking for vidix.------------------------ Checking for Xv.----------------------------- Checking for Xinerama.----------------------------- ------------- Obviously avcodec.h is not found, but it exists in /usr/local/include/libavcodec (but then why does it compile at all?) I eliminated all existing avcodec.h on my system and reinstalled ffmpeg yesterday (from cvs) ??? Thanks! ------------------------------------------------------- Date: 2008-Dec-19 11:14 By: lucke Comment: I was not concerned about the directory of running your 'make plugins'. Our configure script checks for precence of member 'error_recognition' in struct 'AVCodecContext' which is declared in file (guess which): 'avcodec.h' . Concluding backward: If this member is not detected, there is an old version of avcodec.h on your system which doesn't provide it (or and unexpected error happens) and 'error_resilience' will be used instead. Checking for this is logged via stdout and in config.log. Please attach/show both information. ------------------------------------------------------- Date: 2008-Dec-19 08:51 By: erbse Comment: Yes I reran configure. I was not quite precise, the error occurs on starting "make all plugins" or "make install" in $SOURCEDIR (not when I start "make" in $SOURCEDIR/PLUGINS/src/softdevice) ------------------------------------------------------- Date: 2008-Dec-19 00:42 By: lucke Comment: Did you rerun configure ? error_recognition vs. error_resilience should be detected by configure since the last change on sept. 21 2008. ------------------------------------------------------- Date: 2008-Dec-18 22:39 By: erbse Comment: Hi, thank you so much for replying so quickly. I eliminated all occurrencies of avcodec.h (I had thought I had deleted any former ffmpeg but indeed found one instance where I had not supected it) and eliminated an reincompiled ffmepg just to be sure. I also recompiled softdevice but nos on starting "make" I get the following error: ----------------- make[1]: Entering directory `/root/vdr-1.6.0/PLUGINS/src/softdevice' g++ -O2 -g -Wall -fPIC -Woverloaded-virtual -c -DHAVE_CONFIG -D__STDC_CONSTANT_MACROS -DPLUGIN_NAME_I18N='"softdevice"' -D_GNU_SOURCE -DPLUGINLIBDIR='"./PLUGINS/lib"' -DSHM_SUPPORT -I../../../include -I../../../../DVB/include -I/usr/local/include utils.c g++ -O2 -g -Wall -fPIC -Woverloaded-virtual -c -DHAVE_CONFIG -D__STDC_CONSTANT_MACROS -DPLUGIN_NAME_I18N='"softdevice"' -D_GNU_SOURCE -DPLUGINLIBDIR='"./PLUGINS/lib"' -DSHM_SUPPORT -I../../../include -I../../../../DVB/include -I/usr/local/include i18n.c g++ -O2 -g -Wall -fPIC -Woverloaded-virtual -c -DHAVE_CONFIG -D__STDC_CONSTANT_MACROS -DPLUGIN_NAME_I18N='"softdevice"' -D_GNU_SOURCE -DPLUGINLIBDIR='"./PLUGINS/lib"' -DSHM_SUPPORT -I../../../include -I../../../../DVB/include -I/usr/local/include video.c g++ -O2 -g -Wall -fPIC -Woverloaded-virtual -c -DHAVE_CONFIG -D__STDC_CONSTANT_MACROS -DPLUGIN_NAME_I18N='"softdevice"' -D_GNU_SOURCE -DPLUGINLIBDIR='"./PLUGINS/lib"' -DSHM_SUPPORT -I../../../include -I../../../../DVB/include -I/usr/local/include mpeg2decoder.c mpeg2decoder.c: In constructor �cStreamDecoder::cStreamDecoder(AVCodecContext*, bool)�: mpeg2decoder.c:146: Fehler: �struct AVCodecContext� hat kein Element namens �error_resilience� make[1]: *** [mpeg2decoder.o] Fehler 1 make[1]: Leaving directory `/root/vdr-1.6.0/PLUGINS/src/softdevice' Plugin status: make[1]: Entering directory `/root/vdr-1.6.0/PLUGINS/src/status' make[1]: F�r das Ziel �all� ist nichts zu tun. make[1]: Leaving directory `/root/vdr-1.6.0/PLUGINS/src/status' Plugin streamdev: make[1]: Entering directory `/root/vdr-1.6.0/PLUGINS/src/streamdev' make[1]: F�r das Ziel �all� ist nichts zu tun. make[1]: Leaving directory `/root/vdr-1.6.0/PLUGINS/src/streamdev' Plugin svdrpdemo: make[1]: Entering directory `/root/vdr-1.6.0/PLUGINS/src/svdrpdemo' make[1]: F�r das Ziel �all� ist nichts zu tun. make[1]: Leaving directory `/root/vdr-1.6.0/PLUGINS/src/svdrpdemo' Plugin vdrrip: make[1]: Entering directory `/root/vdr-1.6.0/PLUGINS/src/vdrrip-0.3.0' make[1]: F�r das Ziel �all� ist nichts zu tun. make[1]: Leaving directory `/root/vdr-1.6.0/PLUGINS/src/vdrrip-0.3.0' *** failed plugins: softdevice -------- Hoping for further advice - good night Erbse ------------------------------------------------------- Date: 2008-Dec-18 18:23 By: lucke Comment: Sollte nicht passieren. Da gibt es bei Dir eine alte Version von avcodec.h in der LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0) definiert ist. Entferne die alten Header-Files von FFmpeg und rekonfiguriere und übersetzte softdevice neu. Should not happen. There is an old version of avcodec.h on your system which defines LIBAVCODEC_VERSION_INT less than ((52<<16)+(0<<8)+0). Remove old FFmpeg headers and reconfigure and recompile softdevice. ------------------------------------------------------- For detailed info, follow this link: http://developer.berlios.de/bugs/?func=detailbug&bug_id=14940&group_id=2051
_______________________________________________ Softdevice-devel mailing list Softdevice-devel@lists.berlios.de https://lists.berlios.de/mailman/listinfo/softdevice-devel