Condividi tramite


Set di proprietà Rate Change

[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.

Il set di proprietà Rate Change consente ai filtri source/parser MPEG-2 di modificare la frequenza di riproduzione. I decodificatori MPEG-2 devono supportare questo set di proprietà. Il navigatore DVD e il motore del buffer di flusso usano entrambe questa proprietà impostata per controllare le velocità di riproduzione.

Etichetta Valore
GUID set di proprietà AM_KSPROPSETID_TSRateChange

 

ID proprietà Descrizione
AM_RATE_CorrectTS Informa il decodificatore che il navigatore imposta i timestamp corretti.
AM_RATE_ExactRateChange Obsoleta.
AM_RATE_MaxFullDataRate Esegue una query sul decodificatore per la velocità massima dei dati del decodificatore.
AM_RATE_QueryFullFrameRate Esegue una query sul decodificatore per la frequenza massima di fotogrammi completi del decodificatore.
AM_RATE_QueryLastRateSegPTS Esegue una query sul decodificatore per l'ora di inizio del segmento di frequenza impostato più di recente.
AM_RATE_SimpleRateChange Invia una modifica della frequenza al decodificatore.
AM_RATE_Step Obsoleta. Vedere Frame Stepping Property Set.
AM_RATE_UseRateVersion Specifica la versione del meccanismo di modifica della frequenza da usare.

 

Commenti

Nel contesto di questo set di proprietà, la frequenza misura la frequenza in cui i timestamp avanzano rispetto all'orologio di riferimento. Frequenza della velocità di riproduzione inversa. Ad esempio, se la velocità di riproduzione è 2x, i timestamp devono aumentare a 1/2 la frequenza normale. Ciò si traduce in una velocità di riproduzione più veloce, perché gli esempi vengono sottoposti a rendering in precedenza rispetto alla normale.

I campioni vengono inviati al decodificatore con un timestamp uguale al momento della presentazione a 1x frequenza. Il decodificatore deve ridimensionare i timestamp nei campioni di output per il tempo di presentazione corretto per la frequenza corrente. Ad esempio, se la frequenza è 1/2 (ovvero la velocità di riproduzione è 2x), il decodificatore deve ridimensionare i timestamp per 1/2. In genere, solo i fotogrammi hanno timestamp. Il decodificatore deve interpolare i timestamp per i fotogrammi B e P. Si noti che durante la riproduzione inversa, i timestamp continuano ad aumentare: i timestamp non vanno mai indietro.

Due versioni del set di proprietà Rate Change sono definite, versione 1.0 e versione 1.1. Il comportamento predefinito viene assegnato dalla versione 1.0. I fornitori di decodificatori sono invitati a supportare la versione 1.1, perché offre un'esperienza di riproduzione più fluida. Il navigatore DVD usa attualmente la versione 1.0. Il motore del buffer di flusso usa la versione 1.1.

Modifica frequenza versione 1.0

La versione 1.0 del set di proprietà Rate Change definisce il comportamento predefinito per i decodificatori MPEG-2.

Il filtro di origine segnala una modifica della frequenza impostando la proprietà AM_RATE_SimpleRateChange . I dati per questa proprietà sono la nuova frequenza e l'ora di inizio dell'esempio di input quando la frequenza ha effetto. Il decodificatore gestisce una coda di modifiche della frequenza in sospeso, ordinate in base all'ora di inizio.

Prima che lo strumento di navigazione DVD cambi a una velocità non 1x, restituisce tutti gli esempi in sospeso, imposta temporaneamente la frequenza su 1,0 e scarica il grafico. Imposta quindi la nuova frequenza. Tutte le modifiche della frequenza vengono pianificate per la fine dell'unità oggetto video corrente. Si noti che lo scaricamento del grafico reimposta il tempo di presentazione su zero.

Lo strumento di navigazione DVD funziona in modalità liscia o in modalità di analisi. In modalità liscia, invia ogni frame al decodificatore, inclusi fotogrammi B e fotogrammi P. Il navigatore DVD usa la modalità uniforme ogni volta che la velocità di riproduzione è maggiore di zero ma minore della velocità dei dati maxmimum del decodificatore. Se la velocità di riproduzione è minore di zero (riproduzione inversa) o supera la velocità massima dei dati del decodificatore, il navigatore DVD usa la modalità di analisi, in cui invia solo i fotogrammi al decodificatore. A velocità molto elevate, può ignorare alcuni fotogrammi I; ad esempio, può inviare ogni altro fotogramma I.

Per impostazione predefinita, il navigatore DVD disattiva il flusso audio per le tariffe diverse da 1,0. È possibile modificare questa operazione chiamando IDeviceControl2::SetOption con il flag di DVD_AudioDuringFFwdRew.

Modifica frequenza versione 1.1

La versione 1.1 del set di proprietà Rate Change segue gli stessi principi di base della versione 1.0, con le differenze seguenti:

  • Il filtro di origine segnala al decodificatore di usare la versione 1.1 impostando la proprietà AM_RATE_UseRateVersion . In caso contrario, il decodificatore deve usare il comportamento della versione 1.0.
  • Il filtro di origine non scarica il grafico tra le modifiche della frequenza. I timestamp aumentano quindi monotonicamente tra limiti di modifica della frequenza, anziché reimpostazione su zero.
  • Anziché accodare una modifica della frequenza per un determinato tempo di riferimento, il filtro di origine può specificare che una modifica della frequenza si applica al campione più avanti del decodificatore, definito come esempio nella parte principale della coda in uscita del decodificatore. A tale scopo, il filtro di origine usa la proprietà AM_RATE_SimpleRateChange , ma imposta l'ora di inizio uguale a -1.
  • Il filtro di origine può eseguire query sul decodificatore per l'ora di inizio della modifica della frequenza che è stata accodata più di recente. Usa la proprietà AM_RATE_QueryLastRateSegPTS per questo scopo.
  • Il filtro di origine non rilascia esempi. Se la frequenza supera la velocità massima dei dati del decodificatore, il decodificatore deve rilasciare fotogrammi in base alle esigenze.
  • Il filtro di origine non disattiva il flusso audio, indipendentemente dalla velocità massima dei dati del decodificatore audio. Il decodificatore audio può eliminare campioni se la velocità di riproduzione supera la velocità massima del decodificatore. Tuttavia, dovrebbe comunque mantenere la coda di modifiche della frequenza pianificata.

Requisiti

Requisito Valore
Intestazione
Dvdmedia.h

Vedi anche

Set di proprietà