[vdr] DVB-S2 + H.264 support for VDR-1.5.10

Grégoire FAVRE gregoire.favre at gmail.com
Fri Nov 2 23:30:25 CET 2007


On 01/11/2007, Reinhard Nissl <rnissl at gmx.de> wrote:

Hello :-)

> Please have a look at the patches referenced at
> http://www.vdr-portal.de/board/thread.php?postid=664938#post664938
>
> With theses patches, your recording looks much better.

I have recompiled ffmpeg svn with this patch, and xine-lib-1.2 (there
semmes to be included) and also my vdr which now segfault when I try
to
tune to BBC HD :

gdb ./vdr
GNU gdb 6.7.1
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show
copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu"...
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) run -u greg -c /etc/vdr -l 3 -s 'sudo
/usr/local/bin/vdrpoweroff.sh' -P'xine -r'
Starting program: /usr/src/vdr-1.5.10/vdr -u greg -c /etc/vdr -l 3 -s
'sudo /usr/local/bin/vdrpoweroff.sh'
+-P'xine -r'
warning: no loadable sections found in added symbol-file
system-supplied DSO at 0x7fff3effd000
-------------------------
MakePrimaryDevice: 1
=========================
SetVideoFormat: 1
SetVolumeDevice: 255
frame: (0, 0)-(-1, -1), zoom: (1.00, 1.00)
SetVideoWindow: 0, 0, 720, 576, 720, 576
SetVolumeDevice: 255
SetAudioChannelDevice: 0
SetDigitalAudioDevice: 0
SetAudioChannelDevice: 0
frame: (0, 0)-(-1, -1), zoom: (1.00, 1.00)
SetPlayMode: 1
video: synced early
[VM]
vdr-xine: Client connecting ...
vdr-xine: Client connected!
frame: (0, 0)-(720, 576), zoom: (1.00, 1.00)
[vVMA]buffered 20.4 frames (v:28.7, a:20.4)
frame: (0, 0)-(720, 576), zoom: (1.00, 1.00)
SetPlayMode: 0
frame: (0, 0)-(720, 576), zoom: (1.00, 1.00)
SetAudioChannelDevice: 0
SetDigitalAudioDevice: 1
SetAudioChannelDevice: 0
SetPlayMode: 1
audio: synced early
[AMMVframe: (0, 0)-(16, 32), zoom: (1.00, 1.00)
[New LWP 31657]

Program received signal SIGSEGV, Segmentation fault.
[Switching to LWP 31657]
0x00002b0f6c5e47f1 in PluginXine::cXineLib::execFuncOsdDrawBitmap
(this=0x2aaaaea15d98,
    needsScaling=PluginXine::cXineLib::shq, videoWidth=16,
videoHeight=29, xineOsd=<value optimized out>,
    window=0, bitmap=0x2aaaaeb355f0, x=0, y=0, width=672, height=187,
stride=672) at xineLib.c:1010
1010              *c++ = delinearize(c2 / sai) / FIX_POINT_FACTOR;
Current language:  auto; currently c++
(gdb) bt
#0  0x00002b0f6c5e47f1 in PluginXine::cXineLib::execFuncOsdDrawBitmap
(this=0x2aaaaea15d98,
    needsScaling=PluginXine::cXineLib::shq, videoWidth=16,
videoHeight=29, xineOsd=<value optimized out>,
    window=0, bitmap=0x2aaaaeb355f0, x=0, y=0, width=672, height=187,
stride=672) at xineLib.c:1010
#1  0x00002b0f6c5e59bd in PluginXine::cXineLib::sendWindow
(this=0x2aaaaea15d98, xineOsd=0x2aaaaeb35520,
    windowNum=0, bitmap=0x2aaaaeb355f0, videoLeft=0, videoTop=0,
videoWidth=16, videoHeight=32, videoZoomX=100,
    videoZoomY=100, dontOptimize=false) at xineLib.c:1867
#2  0x00002b0f6c5e6fcb in PluginXine::cXineOsd::ReshowCurrentOsd
(this=0x2aaaaeb35520, dontOptimize=false,
    frameLeft=<value optimized out>, frameTop=<value optimized out>,
frameWidth=<value optimized out>,
    frameHeight=<value optimized out>, frameZoomX=100, frameZoomY=100)
at xineOsd.c:136
#3  0x00002b0f6c5dae25 in PluginXine::cXineDevice::reshowCurrentOsd
(this=0x2aaaaea14ad0, dontOptimize=64,
    frameLeft=0, frameTop=0, frameWidth=16, frameHeight=32,
frameZoomX=100, frameZoomY=100) at xineDevice.c:3642
#4  0x00002b0f6c5dae81 in PluginXine::cXineDevice::ReshowCurrentOSD
(this=0x5580, frameLeft=1820500048,
    frameTop=2880, frameWidth=66187264, frameHeight=518684672,
frameZoomX=<value optimized out>, frameZoomY=100)
    at xineDevice.c:3739
#5  0x00002b0f6c5e97ea in PluginXine::cXineRemote::Action
(this=0x2aaaaea147f0) at xineRemote.c:135
#6  0x00000000004bffc5 in cThread::StartThread (Thread=0x2aaaaea14810)
at thread.c:244
#7  0x0000003054406597 in ?? () from /lib/libpthread.so.0
#8  0x0000003053cd406d in clone () from /lib/libc.so.6
#9  0x0000000000000000 in ?? ()

That's with OSD display mode : Blend scaled Auto, with X11 overlay
it don't crash (but that's not nice at all...).

By the way there is another annoying bug with xine-lib :
if you have a timer set, and VDR want to powerdown, but it can't
die to some external reason, you can't control it anymore :

#0  0x000000305440deef in waitpid () from /lib/libpthread.so.0
#1  0x00000000004bfb82 in SystemExec (
    Command=0x2aaaae9ee0c0 "sudo /usr/local/bin/vdrpoweroff.sh
1194037200 121229 317 \"C'EST PAS SORCIER\" 1",
    Detached=true) at thread.c:511
#2  0x00000000004ad2df in cShutdownHandler::CallShutdownCommand
(this=0x7275c0, WakeupTime=1194037200,
    Channel=317, File=0xfecdec "C'EST PAS SORCIER",
UserShutdown=<value optimized out>) at shutdown.c:129
#3  0x00000000004ad8ac in cShutdownHandler::DoShutdown (this=0x7275c0,
Force=false) at shutdown.c:247
#4  0x00000000004c962b in main (argc=14, argv=0x7fffcd756e48) at
vdr.c:1062

Maybe the bug don't come from xine-lib directly, but without xine-lib
it doesn't appear.

Thank,
-- 
Grégoire FAVRE
http://picasaweb.google.com/Gregoire.Favre
http://gregoire.favre.googlepages.com/



More information about the vdr mailing list