...ja ich habe das Problem auch!
h264 / xine-lib und "Klötzchenbildung"
- tbshl-vdr
- Geschlossen
-
-
Verwendet ihr nur diesen Patch: "xine-lib-1.2-stream-start-patch.diff"?
Werden die Patche von Durchflieger nicht mehr benötigt? -
Mahlzeit,
ich hab jetzt mal in einer Aufnahme das Springen zu und Versetzen von Schnittmarken getestet, das funktioniert hier sehr schön. Wo es nicht geht (bzw., gibts noch andere bei denen es geht?), wird xine-lib oder xinleiboutput verwendet? Könnt ihr mal die Konsolenausgabe posten, wenn ein Sprung gemacht wird?
@C-3PO
(Durchflieger-Patche - xine-lib-1.2-vdpau-extensions-v11?) Funktionieren an sich tut es auch ohne, hab erst bemerkt dass ich ihn nicht drin hatte, als ich mich wunderte, dass 'video.output.vdpau_sd_only_properties:noise+sharpness' keine Wirkung mehr hat.
Ebenso ist 'vdpau_display_queue_length' darin enthalten, und das Ändern von 'NOUTPUTSURFACE' macht glaube ich auch nur mit Patch Sinn (was wohl bei einigen Probleme lösen soll). Für 'Grabbing' wird er auch noch benötigt.
Ich meine, die Wiedergabe ist damit auch etwas besser.Gruss,
Thomas -
Ich muß mich etwas korrigieren, es werden hier NUR bei HD-Aufnahmen beim Sprung der Schnittmarken die Bilder NICHT aktualisiert! Bei SD geht es wie gewohnt - Und das alles auch nur mit xine... Kann das jemand verifizieren?
-
THX @ tbshl-vdr für die Info,
leider ist es aber so, dass ich da nicht mehr durchblicke, was denn nun eigentlich benötigt wird und was nicht?!
Ich habe mal Deinen Patch und den von Durchflieger zusammengefasst und an die aktuelle HG Version angepasst.
Funktionieren tut es damit auf jeden Fall mal.
Es wäre nett, wenn mal Jemand den Patch "ausmisten" könnte, denn ich weis leider nicht, was davon (noch) benötigt wird und was nicht.
-
Zitat
Original von Taipan
Ich muß mich etwas korrigieren, es werden hier NUR bei HD-Aufnahmen beim Sprung der Schnittmarken die Bilder NICHT aktualisiert! Bei SD geht es wie gewohnt - Und das alles auch nur mit xine... Kann das jemand verifizieren?Hi,
kann die Aussage von Taipan bestätigen.
Habe vdr-1.7.14 und aktuelle xine-llib-1.2 mit Durchflieger-Patch am laufen.
Bei HD-Material werden die Bilder nicht aktualisiert, bei SD schon.Konsolemeldungen kann ich momentan leider nicht posten.
Gruß
grappi -
Ich habe meinen VDR, wie schon weiter vorne in diesem Thread angekündigt, umgerüstet.
Voher: NVIDIA GT9500/512MB passiv, SAT: 1xTevii S650 (USB), 1xTT-S2 1600
Nacher: NVIDIA G210/512MB passiv, SAT: Digital Devices DuoFlex S2 miniPCIe
Das Eingrauen von Bildflächen beim Umschalten auf HD-Sendern ist komplett verschwunden. Ebenfalls die Klötzchen oder Streifen beim Zappen zwischen SD-Kanälen. Lediglich auf HD tritt noch in stark reduzierter Form das "Klötzchenproblem" auf.
Wie bereits von mir vermutet, ist das Problem also nicht nur auf der Softwareseite zu suchen. So war meine Nova-S2 HD vom Umschaltverhalten wesentlich besser, als die TT1600 oder eine Tevii S464. Die Grafikkarte habe ich nur Aufgrund der Bauhöhe getauscht. Auf die Bildausgabe oder das Zappen hatte sie keinen Einfluss.Gruß
iNOB -
Hi,
ZitatDas Eingrauen von Bildflächen beim Umschalten auf HD-Sendern ist komplett verschwunden. Ebenfalls die Klötzchen oder Streifen beim Zappen zwischen SD-Kanälen. Lediglich auf HD tritt noch in stark reduzierter Form das "Klötzchenproblem" auf.
Wie bereits von mir vermutet, ist das Problem also nicht nur auf der Softwareseite zu suchen.Ein "Eingrauen" kenne ich garnicht. Ich habe über meine VDPAU Zeit einige xine-libs ausprobiert und dabei viele Phänomene gesehen welche bei der nächsten Version plötzlich wieder verschwunden waren. Die Klötzchenbildung kenne ich erst seit vielleicht zwei Monaten. Auch das Umschaltverhalten auf HD Kanäle hat sich ständig verändert. Früher ging das immer völlig unproblematisch. Mit dem Patch ist es jetzt soweit OK. Bei die Aufnahmen muss ich nochmal schauen. 1080i Aufnahmen Spulen interessanterweise völlig Sauber. Die 720p Aufnahmen spinnen halt im moment rum.
Die Karte ist über die ganze Zeit die gleiche geblieben.
Gruß
Atech -
Hallo,
durch den Patch geht hier "Das Erste HD" aktuell gar nicht an zu schauen, ständig hängt das Bild um dann weiter zu springen.
Im Log dabei ständig folgendes:Code
Alles anzeigenvdpau_decoder_render: broken stream: current img wasn't processed -- freeing it! --> skip frame... vdpau_decoder_render: broken stream: current img wasn't processed -- freeing it! --> skip frame... vdpau_decoder_render: broken stream: current img wasn't processed -- freeing it! --> skip frame... vdpau_decoder_render: broken stream: current img wasn't processed -- freeing it! H264: mmc 1 failed: 8 not existent - curr_pic: 11 H264: mmc 1 failed: 10 not existent - curr_pic: 11 video jump -----> skipping 4 -------------> vdpau_h264_reset Broken NAL, skip it. ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set ERR: parse_sei: seq_parameter_set_id not found in buffers ERR: parse_slice_header: pic_parameter_set_id 0 not found in buffers ERR: interpret_slice_header: pic_parameter_set_id 0 not found in buffers ERR: calculate_pic_order: pic_parameter_set_id 0 not found in buffers WARNING: Picture contains no seq_parameter_set skip: ------------------------>set pocm to 0 H264: mmc 1 failed: 0 not existent - curr_pic: 3 H264: mmc 1 failed: 2 not existent - curr_pic: 3 --> skip frame... vdpau_decoder_render: broken stream: current img wasn't processed -- freeing it! --> skip frame... vdpau_decoder_render: broken stream: current img wasn't processed -- freeing it! --> skip frame... vdpau_decoder_render: broken stream: current img wasn't processed -- freeing it! --> skip frame... vdpau_decoder_render: broken stream: current img wasn't processed -- freeing it! --> skip frame... vdpau_decoder_render: broken stream: current img wasn't processed -- freeing it! --> skip frame... vdpau_decoder_render: broken stream: current img wasn't processed -- freeing it! --> skip frame... vdpau_decoder_render: broken stream: current img wasn't processed -- freeing it! --> skip frame... vdpau_decoder_render: broken stream: current img wasn't processed -- freeing it! --> skip frame... vdpau_decoder_render: broken stream: current img wasn't processed -- freeing it! --> skip frame... vdpau_decoder_render: broken stream: current img wasn't processed -- freeing it! --> skip frame... vdpau_decoder_render: broken stream: current img wasn't processed -- freeing it! --> skip frame... vdpau_decoder_render: broken stream: current img wasn't processed -- freeing it! --> skip frame... vdpau_decoder_render: broken stream: current img wasn't processed -- freeing it! --> skip frame... vdpau_decoder_render: broken stream: current img wasn't processed -- freeing it! --> skip frame... vdpau_decoder_render: broken stream: current img wasn't processed -- freeing it! H264: mmc 1 failed: 8 not existent - curr_pic: 11 H264: mmc 1 failed: 10 not existent - curr_pic: 11 video jump
Irgendwie blöd.
-
Zitat
Original von Björn
durch den Patch geht hier "Das Erste HD" aktuell gar nicht an zu schauen, ständig hängt das Bild um dann weiter zu springen.Autsch, ja, ist hier auch so. Werd ich gleich mal untersuchen...
-
Hmm, also, das kommt dadurch, dass ich die Rückgabe von decoded_pic->img->draw (in 'vdpau_decoder_render', ruft 'vo_frame_draw' in video_out.c auf) auswerte, was die Anzahl zu überspringender Frames ist. Das wird in 'vo_frame_draw' anhand der Zeit, die ein Frame 'zu alt' ist, berechnet, also wenn zu lange zum dekodieren gebraucht wird.
Als Abhilfe erstmal in 'vdpau_decoder_render' (vdpau_h264.c), Zeile 642 den Block von 'if(skip && !(this->stream->input_plugin->get_capabilities(this->stream->input_plugin) & INPUT_CAP_SEEKABLE))' auskommentieren, oder skip davor auf 0 setzen.edit:
Noch n Hinweis:
Es reicht 'make install' in dem/den Verzeichnis/sen mit geänderten Dateien (hier: 'src/video_dec/libvdpau') aufzurufen, das geht einiges schneller. Bei Multicores/Hyperthread-Prozessoren bringt ein -jx (x gleich oder auch höher Anzahl der Kerne, Idealwert gibts wohl nicht) als make-Parameter auch einiges. -
Ds Lustige ist, dass mit dem Patches von tbshl-vdr zwar live-TV nun perfekt ist, dafür ruckeln nun die HD-Aufnahmen bei der Wiedergabe.
-
Zitat
Original von tbshl-vdr
Hmm, also, das kommt dadurch, dass ich die Rückgabe von decoded_pic->img->draw (in 'vdpau_decoder_render', ruft 'vo_frame_draw' in video_out.c auf) auswerte, was die Anzahl zu überspringender Frames ist. Das wird in 'vo_frame_draw' anhand der Zeit, die ein Frame 'zu alt' ist, berechnet, also wenn zu lange zum dekodieren gebraucht wird.
Als Abhilfe erstmal in 'vdpau_decoder_render' (vdpau_h264.c), Zeile 642 den Block von 'if(skip && !(this->stream->input_plugin->get_capabilities(this->stream->input_plugin) & INPUT_CAP_SEEKABLE))' auskommentieren, oder skip davor auf 0 setzen.So, hab nun skip auf 0 gesetzt und es löppert wieder. Sehr schön.
Bei mir sieht das if zwar etwas karger aus (da steht nur "if(skip)"), aber egal.Achja, Klötzchen beim Umschalten gibt es nun auch wieder.
-
Zitat
Original von Björn
So, hab nun skip auf 0 gesetzt und es löppert wieder. Sehr schön.
Bei mir sieht das if zwar etwas karger aus (da steht nur "if(skip)"), aber egal.Ja, sorry, nur 'if(skip)', der Rest war in dem Patch noch gar nicht drin.
ZitatOriginal von Björn
Achja, Klötzchen beim Umschalten gibt es nun auch wieder.Das darf aber nicht sein, hab ich grad auch keine Erklärung für.
-
Zitat
Original von C-3PO
Ds Lustige ist, dass mit dem Patches von tbshl-vdr zwar live-TV nun perfekt ist, dafür ruckeln nun die HD-Aufnahmen bei der Wiedergabe.Wie ruckelt das, ständig oder sporadisch?
Bitte mal die Konsolenausgabe von vdr-sxfe, wenn das auftritt, posten. -
Zitat
Original von tbshl-vdr
Das darf aber nicht sein, hab ich grad auch keine Erklärung für.
Nee, war ein Irrtum von mir. Es gibt keine Klötzchen, hatte mich da vom ersten Umschalten verleiten lassen.
-
Zitat
Original von tbshl-vdr
Wie ruckelt das, ständig oder sporadisch?
Bitte mal die Konsolenausgabe von vdr-sxfe, wenn das auftritt, posten.Ständig, alle paar Sekunden:
Hier die Ausgabe dazu:
.....
Code
Alles anzeigenskip: ------------------------>set pocm to 0 --> skip frame... --> skip frame... -----> skipping 14 -------------> vdpau_h264_reset --> skip frame... --> skip frame... -----> skipping 2 -------------> vdpau_h264_reset skip: ------------------------>set pocm to 0 --> skip frame... --> skip frame... -----> skipping 14 -------------> vdpau_h264_reset ......
Hier noch das komplette Log: --> http://pastebin.com/ZNDakrca
-
Zitat
Original von C-3PO
Ständig, alle paar Sekunden:Hier die Ausgabe dazu:
Ah ja, danke.
ZitatAlso gleiche Ursache, wie bei dem was gerade bei ARD-HD auftrat, und sollte sich wie oben beschrieben erstmal beheben lassen.
Hast Du vorhin auch ARD gesehen und da trat es bei Dir nicht auf?
Jedenfalls muss ich das mit der Auswertung der zu überspingenden Frames nochmal überdenken. Der Aufruf von 'vdpau_h264_reset' darin ist auch etwas 'übertrieben', das müsste anders gehandelt werden, wenn das überhaupt geht, da ja folgende Bilder auch dekodierte Bilder benötigen, was das ganze wieder etwas sinnfrei macht...
Aber heute eher nicht mehr -
Zitat
Original von Björn
Nee, war ein Irrtum von mir. Es gibt keine Klötzchen, hatte mich da vom ersten Umschalten verleiten lassen.Ist das (jetzt) immer beim ersten Umschalten so?
-
Zitat
Original von tbshl-vdr
[...] Aber heute eher nicht mehrDas hat absolut keine Eile!
Ich bin ja schon mal froh, dass überhaupt Jemand dem Thema xine/xiniliboutput/vdpau annimmt. :[
Dafür mal schon im Voraus vielen 1000 Dank.
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!