You are not logged in.

Dear visitor, welcome to VDR Portal. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

BlueIcE

Professional

Posts: 737

Location: munich

  • Send private message

341

Wednesday, September 30th 2009, 3:36pm

Quoted

Original von gda
@BlueICE
Wieso compilierst du ein File bei dem das Patchen nicht funktioniert hat?

Gerald


Auf der Seite vorher stand sowas in der Richtung das es gehen könnte weil die Buffer Geschichte nur Doppelt im CVS ist...
Aber ja, du hast recht.. nicht wirklich sinnvoll :-)
Ubuntu/Jaunty (Kernel 2.6.28-15) VDR 1.7.9 (im Aufbau), xineliboutput 1.0.90-CSV mit Xine-VDPAU r284 + durchflieger Patch | ASUS M3N78-EM, DVB-S Nexus 2.1, PSOne TFT, IR-Einschalter, Atmolight

sparkie

Master

Posts: 2,981

Location: a child of the universe

Occupation: duct tape programmer

  • Send private message

342

Wednesday, September 30th 2009, 4:10pm

Hi durchflieger,

Quoted

Originally posted by durchflieger
im ersten Artikel des Thread steht jetzt der Patch gegen den aktuellen CVS Stand des xineliboutput sowie der Patch gegen xine-vdpau r284 bereit.
Ist allerdings von mir nicht getestet.


vielen Dank fuer die Patches:tup

Meine Testumgebung:
Graka: EN8400GS SILENT/HTP/512M
NVIDIA-Linux-x86_64-185.18.36-pkg2.run
xine-vdpau-r284
vdr-xineliboutput-cvs-20090926163500
xineliboutput-head-vdpau-support-v9.diff.gz
xine-vdpau-r284-crop-v9.diff.gz

Cropping funktioniert zumindest mit SD Material einwandfrei.

- sparkie

WICHTIG ist aber bei der derzeitigen CVS xineliboutput Version der Zusatzpatch im Anhang.
Das SCR Handling, wie es sich derzeit im CVS befindet, funktioniert zusammen mit VDPAU nicht.
Es kommt zu den vielzitierten Ton/Bildaussetzern bei Live-TV. Wiedergabe von Aufzeichnungen ist nicht betroffen.
sparkie has attached the following file:

This post has been edited 1 times, last edit by "sparkie" (Sep 30th 2009, 4:11pm)


343

Wednesday, September 30th 2009, 5:24pm

Quoted

Original von sparkie
...

WICHTIG ist aber bei der derzeitigen CVS xineliboutput Version der Zusatzpatch im Anhang.
Das SCR Handling, wie es sich derzeit im CVS befindet, funktioniert zusammen mit VDPAU nicht.
Es kommt zu den vielzitierten Ton/Bildaussetzern bei Live-TV. Wiedergabe von Aufzeichnungen ist nicht betroffen.


Kann man nicht alternativ das SCR Handling in der VDR setup.conf mit xineliboutput.Advanced.LiveModeSync = 0 einfach abschalten?

Gruss
durchflieger
Server: Asus M3N-H/HDMI, AMD X2 5600+, 4GB RAM, 500GB+1,5TB Samsung HD, 2xTevii S470, 1xTT-S3200, Ubuntu/V12.04, vdr 1.7.27
Client1: ZOTAC ION-ITX B, 2GB RAM, Diskless/Netboot per PXE, Xubuntu/V12.04, vdr 1.7.27+softhddevice, XBMC V12.1, LG42LC2R LCD-TV
Client2: Wie 1 aber ZOTAC ION-ITX E , DFAtmo, 2xDF10CH 19 Kanal Atmolight, LG37LC2R LCD-TV


sparkie

Master

Posts: 2,981

Location: a child of the universe

Occupation: duct tape programmer

  • Send private message

344

Wednesday, September 30th 2009, 5:51pm

Quoted

Originally posted by durchflieger
Kann man nicht alternativ das SCR Handling in der VDR setup.conf mit xineliboutput.Advanced.LiveModeSync = 0 einfach abschalten?


sehr gut, daran habe ich gar nicht mehr gedacht.

Sieht so aus, als wenn das alternativ ebenfalls (noch) funktioniert. Aber dann fehlt wieder
jegliche Synchronisation mit dem Live-Stream. Was frueher oder spaeter ebenfalls zu Framedrops
fuehren duerfte.

Es muesste mal das gesamte Bufferhandling von xineliboutput im Live-Betrieb debugged werden. Es gibt da ja
seit Monaten immer wieder Probleme.

Mit FRC-VGA2SCART laeuft die CVS xineliboutput Version einwandfrei. Sowohl Live-TV als auch Wiedergabe von Aufzeichnungen.

Jetzt, als ich mich zum ersten Mal mit VDPAU beschaeftige sehe ich aber , dass es mit VDPAU bei Live Betrieb wieder mal Buffer-Probleme gibt.

Die sich fuer's erste aber, wie oben beschrieben, weitgehend kaschieren lassen.

- sparkie

This post has been edited 2 times, last edit by "sparkie" (Sep 30th 2009, 7:54pm)


345

Wednesday, September 30th 2009, 6:31pm

Quoted

Original von durchflieger
@Ioannis
Bitte poste die Callstacks doch mal hier.


Die Datei mit den ursprünglichen Callstacks habe ich versehentlich überschrieben, aber ich habe heute
gleich ein paar neue produziert. Da tauchen jetzt zwar etwas andere Callstacks auf als die, die ich ursprünglich hatte, aber vieleicht kannst Du ja daraus trotzdem was erkennen.
Ioannis has attached the following file:
  • crash.txt (7.75 kB - 92 times downloaded - latest: May 2nd 2014, 4:20pm)

346

Wednesday, September 30th 2009, 10:34pm

So, ich habe jetzt mein System auch mal auf den aktuellen stand aktualisiert, d.h:
nvidia-driver-185.18.36
xine-vdpau-r284
vdr-xineliboutput-cvs-20090926163500
xineliboutput-head-vdpau-support-v9.diff
xine-vdpau-r284-crop-v9.diff
revert_src.patch

Nach meinen ersten Zapping Testläufen schauts so aus:
Es ist insgesammt schon stabiler geworden, anzahl der segfaults ist deutlich zurückgegangen.
Konnte bisher nur zwei mir der neuen SW provozieren:

Source code

1
2
3
4
5
6
7
8
9
10
#0  0x00007fb90a15d45e in _int_free (av=0x7fb90a430a00, mem=<value optimized out>) at malloc.c:4726 4726    malloc.c: No such file or directory.         in malloc.c (gdb)
bt 
#0  0x00007fb90a15d45e in _int_free (av=0x7fb90a430a00, mem=<value optimized out>) at malloc.c:4726
#1  0x00007fb90a15f278 in _int_realloc (av=0x7fb90a430a00, oldmem=0x12b8ec0, bytes=<value optimized out>) at malloc.c:5107 
#2  0x00007fb90a160851 in *__GI___libc_realloc (oldmem=0x12b8ec0, bytes=11752) at malloc.c:3708
#3  0x00007fb8fbcdabbc in parse_code (this_gen=0xd41d50, buf=0xd3fad0 "", len=3525) at vdpau_mpeg12.c:515 
#4  0x00007fb8fbcdaf53 in vdpau_mpeg12_decode_data (this_gen=0xd41d50, buf=<value optimized out>) at vdpau_mpeg12.c:814 
#5  0x00007fb90a885213 in video_decoder_loop (stream_gen=<value optimized out>) at video_decoder.c:382 
#6  0x00007fb909ed7097 in start_thread (arg=<value optimized out>) at pthread_create.c:297 
#7  0x00007fb90a1b277d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #8  0x0000000000000000 in ?? () (gdb)


Source code

1
2
3
4
5
6
7
#0  vdpau_gui_data_exchange (this_gen=0x0, data_type=<value optimized out>, data=0xd03d50) at video_out_vdpau.c:1990 1990	video_out_vdpau.c: No such file or directory. 	in video_out_vdpau.c (gdb)
 bt
#0  vdpau_gui_data_exchange (this_gen=0x0, data_type=<value optimized out>, data=0xd03d50) at video_out_vdpau.c:1990 
#1  0x00007f32d56590c9 in atmo_grab_loop (port_gen=0xc67620) at xine_post_atmo.c:576 
#2  0x00007f32e1347097 in start_thread (arg=<value optimized out>) at pthread_create.c:297 
#3  0x00007f32e162277d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 
#4  0x0000000000000000 in ?? ()

Dafür ist ein neues Fehlerbild hinzugekommen, da wo sonst die restlichen segfaults sonst zugeschlagen hätten, friert jetzt stattdessen das frontend vdr-sxfe ein. D.h. das letzte TV-Bild bleibt eingefroreren stehen und weiter passiert nix. Der VDR selber läuft 1a weiter und lässt sich dank graph-lcd am Parallelport auch noch prima bedienen. ;) Das Problem heilt sich wenn ich den vdr-sxfe thread kille und neustarte.

Ich hab mich auch mal im eingefrorenen Zustand mit dem gdb an den Thread attached, das ist der Callstack dazu:

Source code

1
2
3
4
0x00007f8799eaf5d6 in *__GI___poll (fds=0x7fffa410d5f0, nfds=1, timeout=50) at ../sysdeps/unix/sysv/linux/poll.c:87 87      ../sysdeps/unix/sysv/linux/poll.c: No such file or directory.         in ../sysdeps/unix/sysv/linux/poll.c (gdb) bt 
#0  0x00007f8799eaf5d6 in *__GI___poll (fds=0x7fffa410d5f0, nfds=1, timeout=50) at ../sysdeps/unix/sysv/linux/poll.c:87 
#1  0x00000000004071ee in sxfe_run (this_gen=<value optimized out>) at xine_sxfe_frontend.c:1595 
#2  0x0000000000412631 in main (argc=<value optimized out>, argv=0x7fffa410dc58) at xine_frontend_main.c:811

This post has been edited 2 times, last edit by "Ioannis" (Sep 30th 2009, 10:39pm)


347

Thursday, October 1st 2009, 12:19am

Und noch ein paar vdr-sxfe Exceptions beim Zappen gehabt:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#0  0x00007f011e0aa205 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 64	../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory. 	in ../nptl/sysdeps/unix/sysv/linux/raise.c (gdb) 
bt 
#0  0x00007f011e0aa205 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 
#1  0x00007f011e0ab57e in *__GI_abort () at abort.c:88 
#2  0x00007f011e0e3de7 in __libc_message (do_abort=2, fmt=0x7f011e18bba0 "*** glibc detected *** %s: %s: 0x%s ***\n")     at ../sysdeps/unix/sysv/linux/libc_fatal.c:170 
#3  0x00007f011e0e90bd in malloc_printerr (action=2, str=0x7f011e1891bf "free(): invalid pointer",      ptr=<value optimized out>) at malloc.c:5994 
#4  0x00007f011e0eaa76 in *__GI___libc_free (mem=0x6) at malloc.c:3625 
#5  0x00007f01169695a6 in vdpau_update_frame_format (this_gen=0x6a0380, frame_gen=0xad3ba0, width=704, height=576,      ratio=1.7777777777777777, format=1095779414, flags=3) at video_out_vdpau.c:994 
#6  0x00007f011e8147bd in vo_get_frame (this_gen=0x6b0350, width=704, height=576, ratio=1.7777777777777777,      format=1095779414, flags=3) at video_out.c:421 
#7  0x00007f011e8239cf in post_video_get_frame (port_gen=0xc66ff0, width=704, height=576, ratio=1.7777777777777777,      format=1095779414, flags=3) at post.c:69 
#8  0x00007f011e8239cf in post_video_get_frame (port_gen=0xcf8ec0, width=704, height=576, ratio=1.7777777777777777,      format=1095779414, flags=3) at post.c:69 
#9  0x00007f010fa636aa in autocrop_get_frame (port_gen=0xcfa420, width=704, height=576, ratio=1.7777777777777777,      format=1095779414, flags=3) at xine_post_autocrop.c:1475 
#10 0x00007f010fc66c31 in decode_picture (vd=0x7f0108011b90) at vdpau_mpeg12.c:704
#11 0x00007f010fc67ffc in vdpau_mpeg12_decode_data (this_gen=0x7f0108011b90, buf=<value optimized out>)     at vdpau_mpeg12.c:815 
#12 0x00007f011e812213 in video_decoder_loop (stream_gen=<value optimized out>) at video_decoder.c:382 
#13 0x00007f011de64097 in start_thread (arg=<value optimized out>) at pthread_create.c:297 
#14 0x00007f011e13f77d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 
#15 0x0000000000000000 in ?? ()


Source code

1
2
3
4
5
6
7
8
9
10
#0  0x00007f31b9579205 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 64	../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory. 	in ../nptl/sysdeps/unix/sysv/linux/raise.c (gdb) bt #0  0x00007f31b9579205 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 
#1  0x00007f31b957a57e in *__GI_abort () at abort.c:88 
#2  0x00007f31b95b2de7 in __libc_message (do_abort=2, fmt=0x7f31b965aba0 "*** glibc detected *** %s: %s: 0x%s ***\n")     at ../sysdeps/unix/sysv/linux/libc_fatal.c:170 
#3  0x00007f31b95b80bd in malloc_printerr (action=2, str=0x7f31b9658142 "corrupted double-linked list",      ptr=<value optimized out>) at malloc.c:5994 
#4  0x00007f31b95b947d in _int_free (av=0x7f31b988ca00, mem=<value optimized out>) at malloc.c:4726 
#5  0x00007f31b95b9a76 in *__GI___libc_free (mem=0x6) at malloc.c:3625 
#6  0x00007f31ad6453fc in atmo_grab_loop (port_gen=0xc66ff0) at xine_post_atmo.c:639 
#7  0x00007f31b9333097 in start_thread (arg=<value optimized out>) at pthread_create.c:297 
#8  0x00007f31b960e77d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 
#9  0x0000000000000000 in ?? ()


Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#0  0x00007fe6fc61c205 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 64	../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory. 	in ../nptl/sysdeps/unix/sysv/linux/raise.c (gdb) 
bt 
#0  0x00007fe6fc61c205 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 
#1  0x00007fe6fc61d57e in *__GI_abort () at abort.c:88 
#2  0x00007fe6fc655de7 in __libc_message (do_abort=2, fmt=0x7fe6fc6fdba0 "*** glibc detected *** %s: %s: 0x%s ***\n")     at ../sysdeps/unix/sysv/linux/libc_fatal.c:170 
#3  0x00007fe6fc65b0bd in malloc_printerr (action=2, str=0x7fe6fc6fb142 "corrupted double-linked list",      ptr=<value optimized out>) at malloc.c:5994 
#4  0x00007fe6fc65b15c in malloc_consolidate (av=0x7fe6fc92fa00) at malloc.c:4905 
#5  0x00007fe6fc65d378 in _int_malloc (av=0x7fe6fc92fa00, bytes=1024) at malloc.c:4229 
#6  0x00007fe6fc65f2da in *__GI___libc_malloc (bytes=1024) at malloc.c:3551 
#7  0x00007fe6ef428ba7 in handle_control_osdcmd (this=0xcf4b50) at xine_input_vdr.c:2394
#8  0x00007fe6ef42d76f in vdr_plugin_parse_control (this_if=0xcf4b50, cmd=0x7fe6eebda150 "OSDCMD") at xine_input_vdr.c:2697 
#9  0x00007fe6ef430faf in vdr_control_thread (this_gen=<value optimized out>) at xine_input_vdr.c:3184 
#10 0x00007fe6fc3d6097 in start_thread (arg=<value optimized out>) at pthread_create.c:297 
#11 0x00007fe6fc6b177d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 
#12 0x0000000000000000 in ?? ()

348

Thursday, October 1st 2009, 10:01am

@Ioannis

erstmal danke für deine Analysen. Das Problem ist offenbar eine korrupierte Heap-Speicherverwaltung. Die eigentliche Fehlerquelle läst sich da leider nicht so einfach rausfinden. Man müsste den vdr-sxfe mal unter Kontrolle des valgrind Tool (oder ähnlichen) ausführen.
Könntest du bitte mal den Test mit im Setup abgeschalteten autocrop und ohne das atmo-plugin ausführen um die Fehlerursache noch ein wenig einzugrenzen.

Gruss
durchflieger
Server: Asus M3N-H/HDMI, AMD X2 5600+, 4GB RAM, 500GB+1,5TB Samsung HD, 2xTevii S470, 1xTT-S3200, Ubuntu/V12.04, vdr 1.7.27
Client1: ZOTAC ION-ITX B, 2GB RAM, Diskless/Netboot per PXE, Xubuntu/V12.04, vdr 1.7.27+softhddevice, XBMC V12.1, LG42LC2R LCD-TV
Client2: Wie 1 aber ZOTAC ION-ITX E , DFAtmo, 2xDF10CH 19 Kanal Atmolight, LG37LC2R LCD-TV


349

Thursday, October 1st 2009, 9:23pm

@Ioannis

so ich habe mal in meiner Testumgebung (xineliboutput v1.0.4, xine-vdpau r284) mit valgrind getestet und siehe da es gibt ein Problem im xine atmo plugin. Beim umschalten von Kanälen kommt es in dem Plugin zu Zugriffen auf bereits freigegebenen Speicher. Obwohl das hier bei mir nicht zu Segfaults führte (habe auch mal mit automatischer svdrp Kanalumschaltung bin Kanal 100 laufen lassen), kann es durchaus in deiner Umgebung zu abstürzen führen.
Hier: Natives Xine Atmolight plugin findest du jetzt Version 0.2 des Plugin bei dem der Fehler gefixt ist.
Wäre schön wenn du das nochmal testen könntest.

Gruss durchflieger
Server: Asus M3N-H/HDMI, AMD X2 5600+, 4GB RAM, 500GB+1,5TB Samsung HD, 2xTevii S470, 1xTT-S3200, Ubuntu/V12.04, vdr 1.7.27
Client1: ZOTAC ION-ITX B, 2GB RAM, Diskless/Netboot per PXE, Xubuntu/V12.04, vdr 1.7.27+softhddevice, XBMC V12.1, LG42LC2R LCD-TV
Client2: Wie 1 aber ZOTAC ION-ITX E , DFAtmo, 2xDF10CH 19 Kanal Atmolight, LG37LC2R LCD-TV


350

Thursday, October 1st 2009, 9:54pm

Hallo,

das ist ja klasse das Du was in der Richtung gefunden hast, werde ich gleich mal testen. :)

Ich habe heute auch mal mit andern Konfiguration getestet, d.h. OHNE atmoplugin und das automatische 4:3->16:9 cropen AUS. Ergebnis: Läuft sehr stabil, test lief länger durch als alle anderen bisherigen tests zusammen. Anzahl Segfaults = 0. Picture freeze=1.

Dann habe ich das automatische croppen wieder aktiviert. Das führte schon in kurzer Zeit zu: Segfaults = 3, Picture freeze=3.

Das hier sind die dazugehörigen Backtraces:

Source code

1
2
3
4
5
6
7
8
9
10
11
#0  _int_malloc (av=0x7fc387ec8a00, bytes=313360) at malloc.c:4384 4384    malloc.c: No such file or directory.         in malloc.c (gdb)
bt
#0  _int_malloc (av=0x7fc387ec8a00, bytes=313360) at malloc.c:4384 
#1  0x00007fc387bf7b90 in __libc_calloc (n=<value optimized out>, elem_size=<value optimized out>) at malloc.c:3946 
#2  0x00007fc3883387b9 in xine_xmalloc_aligned (alignment=16, size=<value optimized out>, base=0x7fc387ec9220)     at utils.c:278 
#3  0x00007fc3804748eb in vdpau_update_frame_format (this_gen=0x6a0330, frame_gen=0xad2490, width=544, height=576,     ratio=1.3333333333333333, format=842094169, flags=3) at video_out_vdpau.c:1005 
#4  0x00007fc38831f13d in duplicate_frame (this=0x6b0300, img=0xad30d0) at video_out.c:730 
#5  0x00007fc388320d7d in video_out_loop (this_gen=<value optimized out>) at video_out.c:984 
#6  0x00007fc38796f097 in start_thread (arg=<value optimized out>) at pthread_create.c:297 
#7  0x00007fc387c4a77d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 
#8  0x0000000000000000 in ?? ()


Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#0  0x00007f5aae06f205 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 
#1  0x00007f5aae07057e in *__GI_abort () at abort.c:88 
#2  0x00007f5aae0a8de7 in __libc_message (do_abort=2,     fmt=0x7f5aae150ba0 "*** glibc detected *** %s: %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:170 
#3  0x00007f5aae0ae0bd in malloc_printerr (action=2, str=0x7f5aae150c88 "double free or corruption (out)",     ptr=<value optimized out>) at malloc.c:5994 
#4  0x00007f5aae0afa76 in *__GI___libc_free (mem=0x6) at malloc.c:3625 
#5  0x00007f5aa692e5b7 in vdpau_update_frame_format (this_gen=0x6a0330, frame_gen=0xad4090, width=480, height=576,     ratio=1.7777777777777777, format=1095779414, flags=3) at video_out_vdpau.c:996 
#6  0x00007f5aae7d97bd in vo_get_frame (this_gen=0x6b0300, width=480, height=576, ratio=1.7777777777777777,     format=1095779414, flags=3) at video_out.c:421 
#7  0x00007f5aae7e89cf in post_video_get_frame (port_gen=0xcf6200, width=480, height=576, ratio=1.7777777777777777,     format=1095779414, flags=3) at post.c:69 
#8  0x00007f5aa04326aa in autocrop_get_frame (port_gen=0xcf7810, width=480, height=576, ratio=0, format=1095779414,     flags=3) at xine_post_autocrop.c:1475 
#9  0x00007f5aa0635c31 in decode_picture (vd=0x92b7510) at vdpau_mpeg12.c:704 
#10 0x00007f5aa0636ffc in vdpau_mpeg12_decode_data (this_gen=0x92b7510, buf=<value optimized out>)     at vdpau_mpeg12.c:815 
#11 0x00007f5aae7d7213 in video_decoder_loop (stream_gen=<value optimized out>) at video_decoder.c:382 
#12 0x00007f5aade29097 in start_thread (arg=<value optimized out>) at pthread_create.c:297 
#13 0x00007f5aae10477d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 
#14 0x0000000000000000 in ?? ()


Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#0  0x00007f07ac483205 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 
#1  0x00007f07ac48457e in *__GI_abort () at abort.c:88 
#2  0x00007f07ac4bcde7 in __libc_message (do_abort=2, fmt=0x7f07ac564ba0 "*** glibc detected *** %s: %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:170 
#3  0x00007f07ac4c20bd in malloc_printerr (action=2, str=0x7f07ac5621bf "free(): invalid pointer", ptr=<value optimized out>) at malloc.c:5994 
#4  0x00007f07ac4c3a76 in *__GI___libc_free (mem=0x6) at malloc.c:3625 
#5  0x00007f07a4d425a6 in vdpau_update_frame_format (this_gen=0x6a0330, frame_gen=0xad3ed0, width=544, height=576, ratio=1.3333333333333333, format=1095779414, flags=3) at video_out_vdpau.c:994 
#6  0x00007f07acbed7bd in vo_get_frame (this_gen=0x6b0300, width=544, height=576, ratio=1.3333333333333333, format=1095779414, flags=3) at video_out.c:421 
#7  0x00007f07acbfc9cf in post_video_get_frame (port_gen=0xcf7e00, width=544, height=576, ratio=1.3333333333333333, format=1095779414, flags=3) at post.c:69 
#8  0x00007f079e0456aa in autocrop_get_frame (port_gen=0xcf9320, width=544, height=576, ratio=1.3333333333333333, format=1095779414, flags=3) at xine_post_autocrop.c:1475 
#9  0x00007f079e248c31 in decode_picture (vd=0x7f0794002610) at vdpau_mpeg12.c:704 
#10 0x00007f079e249ffc in vdpau_mpeg12_decode_data (this_gen=0x7f0794002610, buf=<value optimized out>) at vdpau_mpeg12.c:815 
#11 0x00007f07acbeb213 in video_decoder_loop (stream_gen=<value optimized out>) at video_decoder.c:382 
#12 0x00007f07ac23d097 in start_thread (arg=<value optimized out>) at pthread_create.c:297 
#13 0x00007f07ac51877d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 
#14 0x0000000000000000 in ?? ()


Ohne von dem vdpau code auch nur nen Hauch einer Ahnung zu haben, fällt mir hier auf das in jedem Callstack die Funktion vdpau_update_frame_format() auftaucht, und in zwei von dreien die Funktion autocrop_get_frame(). Das richt ja schon verdächtig danach das da in der Gegend auch noch ne Baustelle offen ist. ;)

Ich werde jetzt erstmal das neue xine atmolight plugin testen (mit deaktiviertem 4:3/16:9 crop) und dann die Ergebnisse hier posten.

351

Friday, October 2nd 2009, 12:04am

Quoted

Original von durchflieger
Hier: Natives Xine Atmolight plugin findest du jetzt Version 0.2 des Plugin bei dem der Fehler gefixt ist.
Wäre schön wenn du das nochmal testen könntest.


So, habs mal ordentlich gequäult und es sieht sehr gut aus, keinen einzigen segfault mit der neuen Version vom xine-atmolight-plugin gehabt. :)

This post has been edited 1 times, last edit by "Ioannis" (Oct 2nd 2009, 12:04am)


352

Friday, October 2nd 2009, 3:08pm

@Ioannis

deine Segfaults in Verbindung mit dem autocrop bekomme ich in meiner Testumgebung nicht reproduziert. Auch das valgrind zeigt keine Probleme auf.

Könntest du mal bei dir das vdr-sxfe unter valgrind Kontrolle laufen lassen?

Dazu das Paket valgrind installieren.
Dann einfach:

valgrind --log-file=sxfemem.log vdr-sxfe .....

ausführen.
Nach einem Segfault dann die Logdatei mal hier einstellen.
Das vdr-sxfe und die xine-lib sollten mit "-g -O0" übersetzt sein.

Gruss
durchflieger
Server: Asus M3N-H/HDMI, AMD X2 5600+, 4GB RAM, 500GB+1,5TB Samsung HD, 2xTevii S470, 1xTT-S3200, Ubuntu/V12.04, vdr 1.7.27
Client1: ZOTAC ION-ITX B, 2GB RAM, Diskless/Netboot per PXE, Xubuntu/V12.04, vdr 1.7.27+softhddevice, XBMC V12.1, LG42LC2R LCD-TV
Client2: Wie 1 aber ZOTAC ION-ITX E , DFAtmo, 2xDF10CH 19 Kanal Atmolight, LG37LC2R LCD-TV


353

Saturday, October 3rd 2009, 7:59am

Hi,

werde ich mal ausprobieren. Werde aber wohl zu ausgiebigen tests nicht vor Anfang nächster Woche kommen. Valgrind habe ich schon installiert und auch me ne unoptimierte debug version von xine-lib/vdr-sxfe gebaut und mal mit valgrind gestartet, meine fresse bremst das vdr-sxfe aus, ist dann ja nur noch ne verpixelte Standbildshow. Ich hoffe mal das sich das timing dadurch nicht so ändert das der Fehler nicht mehr auftritt, aber mal schauen. ;)

354

Tuesday, October 6th 2009, 10:05pm

So, hab die -O0 -g gebaute xinelib/vdr-sxfe Variante jetzt stundenlang mit und ohne valgrind im Test gehabt, aber die Segfaults tretten in dieser Konfiguration nicht mehr auf. Was geblieben ist sind die "Hänger", also das vdr-sxfe nur ein Standbild produziert und neu gestartet werden muß damits wieder normal weitergeht.

Und nun? Machts Sinn valgrind auf O2 optimierten Code loszulassen? Oder mal mit O1 probieren? Fragen über Fragen... :schiel

355

Tuesday, October 6th 2009, 10:24pm

Oh-man, mein Fehler, ich hatte vergessen nach meinen letzten Tests Autocrop wieder zu aktiviern... :wand
Kaum hatte ich Autocrop an, ist das Ding auch schon weggeschmiert, valgrindlog ist angehängt.
Ioannis has attached the following file:
  • sxfemem.txt (47.72 kB - 67 times downloaded - latest: Jul 13th 2014, 4:07pm)

356

Tuesday, October 6th 2009, 10:54pm

Und gleich noch ein (paar) Valgrind Log(s). ;)
Ioannis has attached the following files:
  • sxfemem1.txt (45.82 kB - 54 times downloaded - latest: Jun 30th 2014, 11:36am)
  • sxfemem2.txt (36.49 kB - 60 times downloaded - latest: Jun 2nd 2014, 12:21pm)
  • sxfemem3.txt (35.82 kB - 83 times downloaded - latest: Jun 9th 2014, 7:21am)
  • sxfemem4.txt (36.21 kB - 62 times downloaded - latest: Jun 2nd 2014, 1:48am)
  • sxfemem5.txt (39.47 kB - 66 times downloaded - latest: Jul 7th 2014, 12:37am)

This post has been edited 4 times, last edit by "Ioannis" (Oct 6th 2009, 11:26pm)


357

Wednesday, October 7th 2009, 12:25pm

@Ioannis

danke für die valgrind logs.
Man kann erkennen das offenbar was schief läuft beim Zugriff auf die Frameinhalte. Das dürfte wohl der Auslöser für die Segfaults sein.
Warum das bei dir passiert ist mir leider noch nicht klar. Es scheint wohl bei Frames zu passieren die im standard Frame-Format (yv12) vorliegen, also nicht durch den vdpau decoder generiert wurden.
Ich habe da so einen "Verdacht" das evt. ungerade cropping Zeilen der Auslöser sein könnte. Im Anhang findest du einen Patch für die cvs Version des xineliboutput beim dem ungerade Zeilen vermieden werden.
Wäre schön wenn du den mal ausprobieren könntest.

Weiterhin benötige ich die beim Test verwendeten Einstellungen zum autocrop aus der setup.conf des VDR.

Gruss
durchflieger
durchflieger has attached the following file:
Server: Asus M3N-H/HDMI, AMD X2 5600+, 4GB RAM, 500GB+1,5TB Samsung HD, 2xTevii S470, 1xTT-S3200, Ubuntu/V12.04, vdr 1.7.27
Client1: ZOTAC ION-ITX B, 2GB RAM, Diskless/Netboot per PXE, Xubuntu/V12.04, vdr 1.7.27+softhddevice, XBMC V12.1, LG42LC2R LCD-TV
Client2: Wie 1 aber ZOTAC ION-ITX E , DFAtmo, 2xDF10CH 19 Kanal Atmolight, LG37LC2R LCD-TV


358

Wednesday, October 7th 2009, 12:45pm

Alles klar, ich werde dann mal das Diff einspielen und testen.
Die Autocrop Einstellungen bei mir sind wie folgt:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
xineliboutput.Video.AutoCrop = 1
xineliboutput.Video.AutoCrop.AnalysisRate = 6
xineliboutput.Video.AutoCrop.AutoDetect = 1
xineliboutput.Video.AutoCrop.BarToneTolerance = 8
xineliboutput.Video.AutoCrop.DetectSubs = 1
xineliboutput.Video.AutoCrop.DetectSubsLifetime = 1500
xineliboutput.Video.AutoCrop.DetectSubsStabilizeTime = 12
xineliboutput.Video.AutoCrop.FixedSize = 0
xineliboutput.Video.AutoCrop.LogoWidth = 20
xineliboutput.Video.AutoCrop.Overscan = 3
xineliboutput.Video.AutoCrop.SoftStart = 0
xineliboutput.Video.AutoCrop.SoftStartStep = 4
xineliboutput.Video.AutoCrop.StabilizeTime = 125

359

Wednesday, October 7th 2009, 7:37pm

So, habe den neuen Patch mal getestet. Bringt leider noch nicht den gewünschten Effekt.
Die Segfaults sind immer noch vorhanden, ausserdem hat sich das Fehlerbild beim Einfrieren von vdr-sxfe geändert: Die CPU Auslastung geht jetzt beim Standbild auf 100%.
Ioannis has attached the following file:
  • sxfemem-9b.txt (44.22 kB - 39 times downloaded - latest: Jul 15th 2014, 2:10am)

360

Wednesday, October 7th 2009, 9:16pm

Und noch ein crash log, diesmal ist das Ding so groß geworden (200kb) das ich es packen musste fürs Forum. ;)
Ioannis has attached the following files:

This post has been edited 1 times, last edit by "Ioannis" (Oct 8th 2009, 12:54am)