vb_fan Posted February 21, 2012 Posted February 21, 2012 Hallo! Habe folgendes Problem: In DVBViewer Pro mit MainConcept decoder funktioniert das Deinterlacing nicht (z.B. hässliche sägezahnartige Laufschirft bei N24 usw.), während in der Technisat Gratisversion TE2 das perfekt klappt! (Laufschrift absolut glatt). Habe beide Programme parallel installiert (egal ob Windows XP SP3 oder Windows 7, gleiches Problem). D.h. also: * gleicher Grafikchip (Radeon onboard HD 3200) * gleicher Treiber (AMD 6.14.10.7240) mit DXVA-2 vector adaptive unterstützt und aktiviert (sagt auch der DXVA Checker) * glecher MPEG-2 Decoder (MainConcept 7.5.0.27713), sämtliche Einstellungen im Filter ebenfalls gleich * gleicher Renderer (VMR9, ist aber bei VMR7 und EVR auch gleich) * Der einzige Unterschied ist in der DVBViewer Version: TE2 1.0.4.372 kontra Pro 4.9.0.0 !!! Wie kann das sein? Übersehe ich etwas Offensichtliches, oder gibt's da noch irgendein Hacken? Übrigens, mit dem Microsoft DVB decoder unter Win7 klappt das Deinterlacing auch unter Pro Version perfekt... Bin für jede Idee dankbar! Grüße, Alex Quote
vb_fan Posted February 21, 2012 Author Posted February 21, 2012 Hier die support Datei für die Pro Version, mit TE2 funktioniert das Tool nicht... Grüße, Alex support_pro.zip Quote
nuts Posted February 21, 2012 Posted February 21, 2012 Ich würde mal vermuten, dass die TE den VMR9 custom (WinXP) oder den EVR custom (Win7) verwendet. Hast du diese schon ausprobiert? Quote
vb_fan Posted February 21, 2012 Author Posted February 21, 2012 Ja, ich habe alle Renderer in der Pro Version ausprobiert, auch custom, hilft nichts. In TE kann man nur zwischen VMR7, VMR9 und EVR wählen, und es steht nirgends, dass das custom Versionen sind. Deinterlacing funktioniert dort aber mit allen drei. Quote
nuts Posted February 21, 2012 Posted February 21, 2012 Hm dann könnte ich mir nurnoch vorstellen, dass in den beiden Programmen nicht die gleiche Filterkette verwendet wird. Hast du in der Pro und in der TE mal nachgesehen ob der Mainconcept auch wirklich verwendet wird? Quote
vb_fan Posted February 22, 2012 Author Posted February 22, 2012 Meinst du etwa während der Showtime auf Ansicht -> Filter -> ... ? Da steht in beiden Versionen Mainconcept decoder, und wenn ich dessen Eigenschaften aufrufe, wird dieselbe Version mit den gleichen Einstellungen angezeigt. Ich werde noch probieren, hier die Decodereinstellungen für Deinterlacing ändern und nachsehen, welche Auswirkungen es in beiden Versionen hat. Quote
mague Posted February 22, 2012 Posted February 22, 2012 (edited) nix Edited February 22, 2012 by mague Quote
vb_fan Posted February 25, 2012 Author Posted February 25, 2012 Hat niemand mehr irgendeine Idee? Hab nochmals alles durchprobiert: in TE funktioniert alles tadellos. Ich kann z.B. in den Settings für Mainconcept das Deinterlacing deaktivieren, indem ich die Methode auf "weave" oder Conditions for deinterlacing auf "progressive only" setze, mit dem sichbaren Effekt, dass de facto kein Deinterlacing gemacht wird, und wenn ich alles zurück stelle, funktioniert Deinterlacing wieder. Und in Pro sind alle diese Einstellungen bzw. Änderungen wirkunslos. Warum??? Kann doch nicht sein. Die support.zip Datei habe ich bereits gepostet, ist da alles i.O.? Grüße Alex Quote
vb_fan Posted February 25, 2012 Author Posted February 25, 2012 So, es wird immer interessanter. Habe jetzt 2 ältere Versionen von DVBViewer Pro ausprobiert: bei 3.9.0.0 funktioniert das Deinterlacing in zusammenspiel mit Mainconcept und DXVA wurderbar, gleich wie unter TE2! Aber bei 4.2.1 tritt gleiches Problem auf wie bei der akluellen Version. Nun habe ich in allen Versionen die Graphs mit Graphstidio gecheckt. Und siehe da: unter TE2 und Pro 3.9.0.0 (also bei funktionierendem Deinterlacing) ist in Properties von Mainconcept codec (Video out) bzw. von VMR9 (VMR Input 0) im Abschnitt VIDEOINFOHEADER2 der Flag dwInterlaceFlags auf 0x00000081 gesetzt, während unter Pro 4.2.1 und 4.9 (also bei nicht funktioonierendem Deinterlacing) hier 0x00000000 steht. Ein kurzes Recherche nach "dwInterlaceFlags" zeigt, dass das genau DIE Flags in DirectShow sind, die es bestimmen, wie das (insbesondere hardwarebeschleunigtes) Deinterlacing durchgeführt wird, siehe dazu z.B.: http://msdn.microsoft.com/en-us/library/windows/desktop/dd407326%28v=vs.85%29.aspx http://msdn.microsoft.com/en-us/library/windows/desktop/dd377583%28v=vs.85%29.aspx Diese Flags werden, sofern ich es richtig verstehe, von der jeweiligen Anwendung (in dem Fall also von DVBViewer) gesetzt. Kann es also sein, dass DVBViewer Pro ab einer Version irgendwo zwischen 3.9.0.0 und 4.2.1 die Flags nicht mehr (oder nicht mehr richtig) setzt (zumindest in Kombination mit Mainconcept)??? Quote
Griga Posted February 25, 2012 Posted February 25, 2012 Diese Flags werden, sofern ich es richtig verstehe, von der jeweiligen Anwendung (in dem Fall also von DVBViewer) gesetzt. In der Verantwortung des DVBViewers liegt das Verbindungsformat zwischen dem Output Pin des DVBViewer Filters (Video) und dem Input Pin des Videodecoders (beim Mainconcept MPEG In). Mit den Verhandlungen zwischen Decoder und Videorenderer hat der DVBViewer höchstens indirekt etwas zu tun. Ansonsten kann ich deinen Befund bestätigen. Am Input Pin des Mainconcept ist AMINTERLACE_IsInterlaced (0x00000001) gesetzt, am Output Pin jedoch nicht, woraus man schließen könnte, dass der Decoder selbst ein Deinterlacing durchführt, aber es scheint effektiv nicht stattzufinden, oder jedenfalls nicht richtig... Bei allen anderen MPEG2 Decodern, die DXVA verwenden, sind hier unter gleichen Bedingungen am Output Pin AMINTERLACE_IsInterlaced und AMINTERLACE_DisplayModeBobOrWeave gesetzt (0x00000081). Quote
Griga Posted February 26, 2012 Posted February 26, 2012 Die Sache steht und fällt damit, den Mainconcept Decoder dazu zu bringen, das Deinterlacing an den Videorenderer und damit die Graka-Hardware zu delegieren, statt selbst daran herumzupfuschen. Nach etwas Herumprobieren setzt mein Mainconcept MPEG 2 Decoder (Version 7.5 vom März 2008 aus einem TechniSat-Installationspaket) jetzt die richtigen Flags (0x00000081) an seinem Output Pin. Die erforderlichen Voraussetzungen: - Auf der Eigenschaftsseite des Mainconsept Decoders (siehe Ansicht -> Filter) unter Deinterlacing "VMR" einstellen. Die Bezeichnung ist irreführend, da die Einstellung auch bei Overlay und mit dem EVR wirkt. Bedeutet wohl "der Videorender soll das machen". - Im DVBViewer Optionen -> DirectX -> DVBViewer Filter -> TV/Radio-Vorab-Formaterkennung -> Video einschalten. Verzögert die Senderumschaltung etwas, aber ohne kriegt der Mainconcept es nicht geregelt. Die Änderungen werden erst nach Ansicht -> Wiedergabe neu aufbauen im DVBViewer wirksam. Zu beachten ist auch, dass der Decoder die Einstellung für jede Anwendung separat in der Registry speichert. Quote
gwr Posted February 26, 2012 Posted February 26, 2012 Hallo, Das muss Versionsabhängig sein, die Demo-Version aus einer Mainconcept-Reference macht das nicht. (Version 7.2.0.19115 vom 30.8.2007) weder mit noch ohne DXVA. (Das Wasserzeichen wird nur ohne DXVA angezeigt) Da funktioniert Deinterlace auch ohne Voraberkennung durch den DVBSource. Quote
vb_fan Posted February 26, 2012 Author Posted February 26, 2012 @Griga: Volltreffer!!! Das mit "VMR" statt "Auto" in Mainconcept Einstellungen hatte ich schon früher probiert, alleine brachte es nichts. Aber auf die Voraberkennung des Videoformats bin ich nicht gekommen... Jetzt läuft alles wunderbar! Danke vielmals!!! LG Alex Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.