Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Problem getting dxr3 plugin to work



Hi, all. I've been toiling all day trying to make the dxr3-0.2.2 work in vdr-1.2.6. Both ffmpeg-0.4.6 and 0.4.8 exited with error with undefined symbols. They seemed to be to do with mmx optimization.

On 0.4.6, make exited with the following messages.

gcc -Wl, --warn-common -rdynamic -g -o ffmpeg_g ffmpeg.o -L./libavodec -L./libavformat -lavformat -lavcodec -lm -lz -ldl
./libavcodec/libavcodec.a(motion_est_mmx.o)(.text+0x943): In function `pix_abs8x8_xy2_mmx2':
i386/motion_est_mmx.c:118: undefined reference to `bone'
./libavcodec/libavcodec.a(motion_est_mmx.o)(.text+0xc63): In function `pix_abs16x16_xy2_mmx2':
i386/motion_est_mmx.c:118: undefined reference to `bone'
./libavcodec/libavcodec.a(motion_est_mmx.o)(.text+0xce3): i386/motion_est_mmx.c:118: undefined reference to `bone'
./libavcodec/libavcodec.a(simple_idct_mmx.o)(.text+0x24): In function `ff_simple_idct_mmx':
i386/simple_idct_mmx.c:209: undefined reference to `wm1010'
./libavcodec/libavcodec.a(simple_idct_mmx.o)(.text+0x120): i386/simple_idct_mmx.c:209: undefined reference to `d40000'
./libavcodec/libavcodec.a(simple_idct_mmx.o)(.text+0x1de4): In function `ff_simple_idct_add_mmx':
i386/simple_idct_mmx.c:209: undefined reference to `wm1010'
./libavcodec/libavcodec.a(simple_idct_mmx.o)(.text+0x1ee0): i386/simple_idct_mmx.c:209: undefined reference to `d40000'
./libavcodec/libavcodec.a(simple_idct_mmx.o)(.text+0x3bb4): In function `ff_simple_idct_put_mmx':
i386/simple_idct_mmx.c:209: undefined reference to `wm1010'
./libavcodec/libavcodec.a(simple_idct_mmx.o)(.text+0x3cb0): i386/simple_idct_mmx.c:209: undefined reference to `d40000'
collect2: ld returned 1 exit status
make: *** [ffmpeg_g] Error 1

I downloaded the ffmpeg-cvs-2004-07-05, did a ./configure, make and make install. All ran through without any problem.

I then proceeded to re-make the plugins. All went without any issue. However, upon starting ./vdr -Pxine -Pdxr3, it exited with libvdr-dxr3.so.1.2.6: undefined symbol: inflateReset.

Searching from the archive, one similar instance occurred with osd plugin. The poster solved that by including -lz in the compilation flag. I wouldn't think it's relevant but had tried without any success.

I'm running Suse 9.1 (2.6.4-52-default kernel). em8300 driver is patched and working fine as I'm able to play an mpeg onto my TV connected to the Creative DXR3 card.

The only patch made to dxr3-0.2.2 is

--- dxr3-0.2.2/dxr3abstractiondevice.c~ 2004-02-04 22:09:03.000000000 +0000
+++ dxr3-0.2.2/dxr3abstractiondevice.c 2004-03-27 00:45:29.363703568 +0000
@@ -368,8 +368,10 @@
 
     Lock();
     if (!bExternalReleased) {
+#if 0 /* Causes corruption during jump +- */
         ioval = EM8300_SUBDEVICE_VIDEO;
         ioctl(m_fdControl, EM8300_IOCTL_FLUSH, &ioval);
+#endif
         ioval = EM8300_SUBDEVICE_AUDIO;
         ioctl(m_fdControl, EM8300_IOCTL_FLUSH, &ioval);
         fsync(m_fdVideo);

This patch is said to make it 2.6.x compatible.

I did not follow dxr3's INSTALL to patch the em8300 driver source as I used the latest em8300-0.15.0.cvs version which seems to be compatible with both the 2.6.x kernel and the dxr3 plugin.


Home | Main Index | Thread Index