KS_VIDEOINFOHEADER2 struttura (ksmedia.h)
La struttura KS_VIDEOINFOHEADER2 descrive i dettagli di un flusso video, tra cui bob o weave impostazioni, protezione copia e proporzioni pixel.
Sintassi
typedef struct tagKS_VIDEOINFOHEADER2 {
RECT rcSource;
RECT rcTarget;
DWORD dwBitRate;
DWORD dwBitErrorRate;
REFERENCE_TIME AvgTimePerFrame;
DWORD dwInterlaceFlags;
DWORD dwCopyProtectFlags;
DWORD dwPictAspectRatioX;
DWORD dwPictAspectRatioY;
union {
DWORD dwControlFlags;
DWORD dwReserved1;
};
DWORD dwReserved2;
KS_BITMAPINFOHEADER bmiHeader;
} KS_VIDEOINFOHEADER2, *PKS_VIDEOINFOHEADER2;
Members
rcSource
Specifica un rettangolo di ritaglio che seleziona la parte del segnale video attivo da usare.
rcTarget
Specifica un rettangolo che indica quale parte del buffer di destinazione usare.
dwBitRate
Specifica un valore che indica la velocità di dati appropriata del flusso video, in bit al secondo.
dwBitErrorRate
Specifica un valore che indica la frequenza di errore dei dati del flusso video, in errori di bit al secondo.
AvgTimePerFrame
Specifica il tempo medio per fotogramma, in 100-nanosecondi.
dwInterlaceFlags
Specifica le informazioni interlace. I flag non definiti devono essere impostati su zero oppure la connessione può essere rifiutata. Questo membro può essere impostato su uno o più valori (OR logici) definiti in ksmedia.h:
Flag | Descrizione |
---|---|
KS_INTERLACE_IsInterlaced | Indica un flusso interlacciato. Se 0, gli altri bit di KS_INTERLACE_Xxx sono irrilevanti. |
KS_INTERLACE_1FieldPerSample | Indica un campo per esempio multimediale. Se zero, indica due campi per esempio multimediale. |
KS_INTERLACE_Field1First | Indica che il campo 1 è il primo. Se zero, indica che il campo 2 è il primo. Il campo superiore in PAL è Field 1, il campo superiore in NTSC è Field 2. |
KS_INTERLACE_UNUSED | Non utilizzato |
KS_INTERLACE_FieldPatternMask | Indica i bit usati per specificare il modello di campo. |
KS_INTERLACE_FieldPatField1Only | Indica che un flusso non contiene mai un campo 2. |
KS_INTERLACE_FieldPatField2Only | Indica che un flusso non contiene mai un campo 1. |
KS_INTERLACE_FieldPatBothRegular | Indica che ci sarà un campo 2 per ogni campo 1. |
KS_INTERLACE_FieldPatBothIrregular | Indica un modello casuale di Campi 1 e Campi 2. |
KS_INTERLACE_DisplayModeMask | Non valido per l'acquisizione di video. |
KS_INTERLACE_DisplayModeBobOnly | Non valido per l'acquisizione di video. |
KS_INTERLACE_DisplayModeWeaveOnly | Non valido per l'acquisizione di video. |
KS_INTERLACE_DisplayModeBobOrWeave | Non valido per l'acquisizione di video. |
dwCopyProtectFlags
Specifica un valore KSCOPYPROTECTRestrictDuplicazione (0x00000001) per indicare se la duplicazione di un flusso deve essere limitata. Se non definito, specificare zero o la connessione verrà rifiutata.
dwPictAspectRatioX
Specifica la dimensione x del rapporto immagine-aspetto ,ad esempio 16 per una visualizzazione 16 × 9. Il valore è espresso in pollici per pollici, non pixel per pixel.
dwPictAspectRatioY
Specifica la dimensione y del rapporto di aspetto dell'immagine, ad esempio 9 per 16 × 9 visualizzazione. Il valore è espresso in pollici per pollici, non pixel per pixel.
dwControlFlags
Nei sistemi operativi precedenti a Windows Vista, questo membro è stato denominato dwReserved1 ed è stato necessario essere zero. In Windows Vista, dwReserved1 è stato combinato in un'unione con un nuovo membro denominato dwControlFlags. Se usato, dwControlFlags contiene un OR bit per bit dei flag nella tabella seguente.
Valore | Descrizione |
---|---|
AMCONTROL_USED | Indica che vengono usati i flag dwControlFlags . |
AMCONTROL_PAD_TO_4x3 | L'immagine deve essere riempita e visualizzata in un'area 4 x 3. |
AMCONTROL_PAD_TO_16x9 | L'immagine deve essere riempita e visualizzata in un'area 16 x 9. |
AMCONTROL_COLORINFO_PRESENT | Altre informazioni sul colore sono contenute nei 24 bit superiori del campo dwControlFlags . |
Il flag AMCONTROL_USED offre compatibilità con le versioni precedenti con filtri meno recenti. Se il flag AMCONTROL_USED non è impostato, i bit rimanenti in questo campo devono essere ignorati. Se un filtro usa altri flag, deve impostare il flag di AMCONTROL_USED.
I due flag AMCONTROL_PAD_xxx vengono usati dai decodificatori per determinare il rapporto di aspetto del rettangolo di output.
Se il flag di AMCONTROL_COLORINFO_PRESENT è impostato, significa che i 24 bit superiori del campo dwControlFlags vengono considerati come una struttura DXVA_ExtendedFormat .
Vedere la sezione Osservazioni più avanti in questo argomento per altre informazioni su dwControlFlags.
dwReserved1
Questo membro è per compatibilità con le versioni precedenti. Per altre informazioni, vedere dwControlFlags .
dwReserved2
Riservato per l'utilizzo nel sistema. Deve essere impostato su zero o la connessione verrà rifiutata.
bmiHeader
Indica una struttura KS_BITMAPINFOHEADER che contiene informazioni sul colore e sulla dimensione per la bitmap dell'immagine video.
Commenti
Per descrivere un flusso video senza impostazioni bob o weave, usare KS_VIDEOINFOHEADER.
La struttura KS_VIDEOINFOHEADER2 è identica alla struttura di VIDEOINFOHEADER2 DirectShow.
Acquisire minidriver che producono campi video (anziché fotogrammi) deve usare la struttura KS_DATARANGE_VIDEO2 , che contiene la struttura KS_VIDEOINFOHEADER2.
Un filtro di origine può richiedere che il filtro sink prenda solo una sezione del video fornendo valori che definiscono in modo efficace un rettangolo di ritaglio nel membro rcSource . Tuttavia, se il filtro sink non verifica la presenza del rettangolo di ritaglio sulla connessione, il filtro sink esegue semplicemente il rendering di tutti i video, ignorando in modo efficace eventuali informazioni di ritaglio passate dal filtro di origine al filtro sink.
Idealmente, un filtro sink controlla rcSource e se il filtro sink non supporta l'estrazione di immagini e il rettangolo non è vuoto, quindi rifiuta la connessione. Un filtro deve usare la funzione Win32 SetRectEmpty per reimpostare un rettangolo su tutti gli zero (e impostare IsRectEmpty per controllare più avanti il rettangolo).
Il membro rcTarget specifica il rettangolo di destinazione per il video. La maggior parte dei filtri di origine imposta questo membro su tutti gli zero. Un filtro downstream può richiedere che il video venga inserito in un'area specifica dei buffer forniti. In questo caso, chiama la funzione Win32 QueryAccept con una destinazione non interrotta.
Se il flag di AMCONTROL_COLORINFO_PRESENT è impostato nel membro dwControlFlags , è possibile eseguire il cast del valore dwControlFlags su una struttura DXVA_ExtendedFormat per accedere alle informazioni sul colore estese. Per altre informazioni, vedere VIDEOINFOHEADER2.
Requisiti
Requisito | Valore |
---|---|
Intestazione | ksmedia.h (includere Ksmedia.h) |