News:

Latest versions:
Server plugin: 0.5.1
MVP dongle: 0.5.2
Raspberry Pi client: 0.5.2
Windows client: 0.5.2-1

Main Menu

Add simpler bob deinterlace for 1080i streams....

Started by Uwe, September 25, 2012, 05:46:13

Previous topic - Next topic

MartenR

Yes this is interesting., the question is if it also uses the Image fx filter ....


MartenR

Well, that looks easy, any way I can update git in the moment, I am currently away from my pi and I am working on openvg.

Marten

Uwe

it should be limited to SD and 1080i (not 720p) ... something crashes here, I look at tomorrow ...

Uwe

Quote from: Uwe on September 25, 2012, 21:16:58
it should be limited to SD and 1080i (not 720p) ... something crashes here, I look at tomorrow ...
I have now changed to
if (deinterlace!=0 && demux->getHorizontalSize()<=720 || deinterlace!=0 && demux->getHorizontalSize()>=1920)

But my vdr-1.7.30 crashes, when i access with vompclient-raspi... vdr-1.7.29 works with vompserver-git. Can anyone confirm this?

Quote#0  0x0811dd10 in cReceiver::~cReceiver() ()
No symbol table info available.
#1  0xb5488746 in MVPReceiver::~MVPReceiver() () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#2  0xb54887c2 in MVPReceiver::~MVPReceiver() () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#3  0xb547aa2c in VompClientRRProc::processStopStreaming() () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#4  0xb547cf20 in VompClientRRProc::processPacket() () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#5  0xb547d29e in VompClientRRProc::threadMethod() () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#6  0xb547fbd1 in Thread::threadInternalStart2() () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#7  0xb547fc2b in threadInternalStart(void*) () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#8  0xb7788053 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#9  0xb74e16ce in clone () from /lib/libc.so.6
No symbol table info available.
...
Thread 21 (Thread 30546):
#0  0xffffe424 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb74da461 in select () from /lib/libc.so.6
No symbol table info available.
#2  0xb546ef8f in DatagramSocket::waitforMessage(unsigned char) () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#3  0xb5470063 in UDPReplier::threadMethod() () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#4  0xb547fbd1 in Thread::threadInternalStart2() () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#5  0xb547fc2b in threadInternalStart(void*) () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#6  0xb7788053 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#7  0xb74e16ce in clone () from /lib/libc.so.6
No symbol table info available.

...
Thread 24 (Thread 30548):
#0  0xffffe424 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb778fdc8 in accept () from /lib/libpthread.so.0
No symbol table info available.
#2  0xb546f4ec in MVPServer::threadMethod() () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#3  0xb547fbd1 in Thread::threadInternalStart2() () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#4  0xb547fc2b in threadInternalStart(void*) () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#5  0xb7788053 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#6  0xb74e16ce in clone () from /lib/libc.so.6
No symbol table info available.

Thread 23 (Thread 30547):
#0  0xffffe424 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb74da461 in select () from /lib/libc.so.6
No symbol table info available.
#2  0xb546ef8f in DatagramSocket::waitforMessage(unsigned char) () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#3  0xb547716b in MVPRelay::threadMethod() () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#4  0xb547fbd1 in Thread::threadInternalStart2() () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#5  0xb547fc2b in threadInternalStart(void*) () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#6  0xb7788053 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#7  0xb74e16ce in clone () from /lib/libc.so.6
No symbol table info available.

...
Thread 32 (Thread 16990):
#0  0xffffe424 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb778917e in pthread_join () from /lib/libpthread.so.0
No symbol table info available.
#2  0xb547fe09 in Thread::threadStop() () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#3  0xb547ca1a in VompClientRRProc::~VompClientRRProc() () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#4  0xb5474964 in VompClient::~VompClient() () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#5  0xb5474a6e in VompClientStartThread(void*) () from /usr/lib/vdr/plugins/libvdr-vompserver.so.1.7.30
No symbol table info available.
#6  0xb7788053 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#7  0xb74e16ce in clone () from /lib/libc.so.6
No symbol table info available.

MartenR

@Uwe
Can you please run this with a build containing debugging symbols. (Please look at the manual of your distribution how to do this, normally for building it is a switch -g but it can be more complicated as in the case of debian)
Then please let the system create core files (activate with uname -c unlimited)
I need to know the exact line where it crashes with the value of the surronding variables.

Marten

P.S: I do not have the time to debug this myself, I want first to make progress to the client before I do an update of the server.

Uwe

Hi Marten.
I hope this is now what you need? :)
I start with the vompclient a HD channel, eg ARD HD. If i switch to a next channel, the image remains on the raspberry stand. The VDR Server ruled no more. I must kill the vompclient with "killall -9 vompclient". This creates the log is as shown below.

Thread 1 (Thread 24897):
#0  0x0812248f in cReceiver::~cReceiver (this=0x84edfc0, __in_chrg=<value optimized out>) at receiver.c:28
        msg = 0x818a6b8 "ERROR: cReceiver has not been detached yet! This is a design fault and VDR will segfault now!"
#1  0xb4698dad in MVPReceiver::~MVPReceiver (this=0x84edfc0, __in_chrg=<value optimized out>) at mvpreceiver.c:79
No locals.
#2  0xb4698e33 in MVPReceiver::~MVPReceiver (this=0x84edfc0, __in_chrg=<value optimized out>) at mvpreceiver.c:86
No locals.
#3  0xb46860d2 in VompClientRRProc::processStopStreaming (this=0x84ed4a0) at vompclientrrproc.c:1116
No locals.
#4  0xb468287b in VompClientRRProc::processPacket (this=0x84ed4a0) at vompclientrrproc.c:199
        result = 0
#5  0xb4682685 in VompClientRRProc::threadMethod (this=0x84ed4a0) at vompclientrrproc.c:147
No locals.
#6  0xb468d521 in Thread::threadInternalStart2 (this=0x84ed4a0) at thread.c:37
No locals.
#7  0xb468d502 in threadInternalStart (arg=0x84ed4a0) at thread.c:32
        sigs = {__val = {2147483647, 4294967294, 4294967295 <repeats 30 times>}}
        t = 0x84ed4a0
#8  0xb771e053 in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#9  0xb74776ce in clone () from /lib/libc.so.6
No symbol table info available.

MartenR

Yes, thanks, now I know what to do, so please add in mvpreceiver.h after
bool isVdrActivated();
the code
void detachMVPReceiver();
The add to mvpreceiver.cc
Quotevoid detachMVPReceiver(){
   Detach();
}
Remove Detach from
MVPReceiver::~MVPReceiver()
and then add in VompClientRRProc::processStopStreaming
before delete x.lp;
the code
Quotex.detachMVPReceiver();
Then test it and if it works, send a patch to Chris and post it  to the forum.

Marten

Uwe

That was fast! :)
I still have a problem!

( if [ -f .standalone ] ; then ( rm -f .standalone; make clean ; make objects ) ; else exit 0 ;fi )
g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -ggdb -O0 -c -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DUSE_CUTTERLIMIT -DUSE_DDEPGENTRY -DUSE_HARDLINKCUTTER -DUSE_JUMPINGSECONDS -DUSE_JUMPPLAY -DUSE_LIRCSETTINGS -DUSE_LIEMIKUUTIO -DUSE_MAINMENUHOOKS -DUSE_MENUORG -DUSE_NALUDUMP -DUSE_PLUGINMISSING -DUSE_WAREAGLEICON -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"vompserver"' -DVOMPSERVER -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I../../../include -I/include -o vompclientrrproc.o vompclientrrproc.c
vompclientrrproc.c: In member function >int VompClientRRProc::processStopStreaming()<:
vompclientrrproc.c:1116:5: error: >class VompClient< has no member named >detachMVPReceiver<
make: *** [vompclientrrproc.o] Error 1

MartenR


Uwe

Quote from: MartenR on October 02, 2012, 11:40:26
My fault it should be
x.lp.detachMVPReceiver();

Mhh, next fault is here... :)

g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -ggdb -O0 -c -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DUSE_CUTTERLIMIT -DUSE_DDEPGENTRY -DUSE_HARDLINKCUTTER -DUSE_JUMPINGSECONDS -DUSE_JUMPPLAY -DUSE_LIRCSETTINGS -DUSE_LIEMIKUUTIO -DUSE_MAINMENUHOOKS -DUSE_MENUORG -DUSE_NALUDUMP -DUSE_PLUGINMISSING -DUSE_WAREAGLEICON -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"vompserver"' -DVOMPSERVER -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I../../../include -I/include -o vompclientrrproc.o vompclientrrproc.c
vompclientrrproc.c: In member function >int VompClientRRProc::processStopStreaming()<:
vompclientrrproc.c:1116:10: error: request for member >detachMVPReceiver< in >((VompClientRRProc*)this)->VompClientRRProc::x->VompClient::lp<, which is of non-class type >MVPReceiver*<
make: *** [vompclientrrproc.o] Error 1

MartenR

Yep you are right:
x.lp->detachMVPReceiver();
should do it.

Uwe

Hi Marten,
Now it works a little bit. ;)
If I were to quickly switch to another channel or an HD channel use, then it crashes.
The Attachment even a complete log set

MartenR

So at least one bug fixed.

This is something different.
Can you please tell me which value result  and which values this in cCharSetConv has?