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-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