Condividi tramite


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.

  • Notifica: invia un messaggio di qualità.
  • SetSink: specifica un gestore qualità personalizzato.

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.