Messaggi di qualità
[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEnginee Acquisizione audio/video in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente di usare un nuovo codice MediaPlayer, IMFMediaEngine e Acquisizione audio/video 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.
I messaggi di qualità vengono definiti con la strutturaqualità. Questa struttura contiene i membri seguenti:
- Tipo: definito dall'enumerazioneQualityMessageType; Carestia, che indica che il filtro riceve dati troppo piccoli o Flood, a indicare che il filtro riceve troppi dati.
- Percentuale: Rettifica richiesta nella velocità dei dati, da una previsione di 1000. Ad esempio, 750 indica 75% e 1500 indica 150%.
- ritardo: ora di riferimento che indica la ritardo dell'ultimo esempio. Il valore è negativo se il campione è arrivato in anticipo.
- TimeStamp: timestamp nell'esempio più recente.
Si supponga, ad esempio, che un campione con un timestamp di 240 millisecondi (ms) raggiunga il renderer a 280 ms, ora del flusso. Il renderer crea un messaggio di qualità di tipo Carestia. L'esempio è arrivato in ritardo di 40 ms, quindi il membro late è 400000. Tutti i tempi di riferimento sono in unità di 100 nanosecondi. Il membro timestamp è 2400000.
Per il membro Proportion, il renderer potrebbe utilizzare una media in esecuzione per calcolare il valore. Alcuni esempi sono stati in arrivo in tempo e questo esempio è un'anomalia. In tal caso, il renderer potrebbe richiedere solo una piccola correzione. D'altra parte, se i campioni sono costantemente in ritardo, il renderer potrebbe richiedere una correzione più grande.
Il controllo qualità viene gestito tramite l'interfacciaIQualityControl. Contiene due metodi.
Oggetto che implementa IQualityControl riceve messaggi di qualità tramite il relativo metodo di Notify. Può gestire il messaggio o passare il messaggio a un altro oggetto. Se l'applicazione chiama il metodo SetSink dell'oggetto, l'oggetto deve delegare il controllo qualità al gestore qualità specificato.