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

Reply via email to