Scrittura di filtri di trasformazione
[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
Questa sezione descrive come scrivere un filtro di trasformazione, definito come filtro con esattamente un pin di input e un pin di output. Per illustrare i passaggi, questa sezione descrive un filtro di trasformazione ipotetico che restituisce video con codifica RLE (run-length). Non descrive l'algoritmo di codifica RLE stesso, solo le attività specifiche di DirectShow. DirectShow fornisce già un codec RLE tramite il filtro AVI Compressor .
In questa sezione si presuppone che si userà la libreria di classi di base DirectShow per creare filtri. Anche se è possibile scrivere un filtro senza di esso, la libreria di classi di base è fortemente consigliata.
Nota
Prima di scrivere un filtro di trasformazione, valutare se un oggetto DMO (DirectX Media Object) soddisfa i requisiti. I DMO possono eseguire molte delle stesse operazioni dei filtri e il modello di programmazione per i DMO è più semplice. I DMO sono ospitati in DirectShow tramite il filtro Wrapper DMO , ma possono essere usati anche all'esterno di DirectShow. I DMO sono ora la soluzione consigliata per codificatori e decodificatori.
Questa sezione include gli argomenti seguenti:
- Passaggio 1. Scegliere una classe di base
- Passaggio 2. Dichiarare la classe Filter
- Passaggio 3. Supporto della negoziazione dei tipi di supporto
- Passaggio 4. Impostare le proprietà dell'allocatore
- Passaggio 5. Trasformare l'immagine
- Passaggio 6. Aggiungere il supporto per COM
Argomenti correlati