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

Reply via email to