Richtlinien zum Registrieren von Filtern
Die Filterregistrierungsinformationen bestimmen, wie der Filter Graph Manager während intelligentVerbinden. Daher wirkt sich dies auf jede Anwendung aus, die für DirectShow geschrieben wurde, und nicht nur auf die Anwendungen, die Ihren Filter verwenden. Sie sollten sicherstellen, dass sich Ihr Filter ordnungsgemäß verhält, indem Sie diese Richtlinien befolgen.
Benötigen Sie die Filterdaten in der Registrierung? Für viele benutzerdefinierte Filter gibt es keinen Grund, den Filter für die Filterzuordnung oder den Systemgeräte-Enumerator sichtbar zu machen. Solange Sie die DLL registrieren, kann Ihre Anwendung den Filter mit CoCreateInstance erstellen. Lassen Sie in diesem Fall einfach die AMOVIESETUP _ FILTER-Struktur aus der Factoryvorlage weg. (Ein Nachteil ist, dass Ihr Filter in GraphEdit nicht sichtbar ist. Um dies zu lösen, können Sie mithilfe der IFilterMapper2::CreateCategory-Methode eine private Kategorie "Testing" erstellen. Dies sollten Sie nur für Debugbuilds tun.)
Wählen Sie die richtige Filterkategorie aus. Die Standardkategorie "DirectShow-Filter" ist für allgemeine Filter. Registrieren Sie Ihren Filter nach Bedarf in einer spezifischeren Kategorie. Wenn IFilterMapper2 nach einem Filter sucht, werden alle Kategorien ignoriert, deren 100%000%amp;100%amp;160;USE-Wert oder _ kleiner _ _ ist. Kategorien, die nicht für die normale Wiedergabe vorgesehen sind, haben geringe Vorteile.
Vermeiden Sie die Angabe von MEDIATYPE _ None, MEDIASUBTYPE None oder GUID NULL in den _ _ AMOVIESETUP _ MEDIATYPE-Informationen für einen Pin. IFilterMapper2 behandelt diese als Platzhalter, was den Graphenprozess verlangsamen kann.
Wählen Sie den niedrigsten möglichen Wert aus. Hier sind einige Richtlinien:
Filtertyp Empfohlene Empfehlung Standardrenderer MERIT _ PREFERRED. Bei Standardmedientypen sollte ein benutzerdefinierter Renderer jedoch nie die Standardeinstellung sein. Nicht standardmäßiger Renderer _UNWAHRSCHEINLICHE NICHT VERWENDEN ODER _ _ UNWAHRSCHEINLICH _ Mux NICHT _ _ VERWENDEN _ Decoder MERIT _ NORMAL Flatter, Parser NORMAL _ NORMAL oder niedriger Filter für besondere Zwecke; Filter, die direkt von der Anwendung erstellt werden NICHT _ _ VERWENDEN _ Erfassung NICHT _ _ VERWENDEN _ Filter "Fallback"; Beispiel: Farbraumkonverterfilter WAHRSCHEINLICHKEIT _ UNWAHRSCHEINLICH Wenn Sie einem Filter den Vorteil VON NICHT VERWENDEN GEBEN, sollten Sie überlegen, ob Sie diese Informationen von Anfang an _ _ registrieren _ müssen. (Siehe Element 1.)
Registrieren Sie keinen Filter in der Kategorie "DirectShow Filters", der 24-Bit-RGB akzeptiert. Ihr Filter beeinträchtigt den Farbraumkonverter-Filter.