struttura KS_VIDEOINFOHEADER2 (ksmedia.h)
La struttura KS_VIDEOINFOHEADER2 descrive i dettagli di un flusso video, incluse le impostazioni bob o weave, la protezione della copia e le proporzioni dei 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;
Membri
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 utilizzare.
dwBitRate
Specifica un valore che indica la frequenza 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 bit errori al secondo.
AvgTimePerFrame
Specifica il tempo medio per fotogramma, in unità di 100 nanosecondi.
dwInterlaceFlags
Specifica le informazioni interlacciate. I flag non definiti devono essere impostati su zero oppure è possibile che la connessione venga rifiutata. Questo membro può essere impostato su uno o più valori (OR logici) definiti in ksmedia.h:
Bandiera | Descrizione |
---|---|
KS_INTERLACE_IsInterlaced | Indica un flusso interlacciato. Se 0, gli altri bit KS_INTERLACE_Xxx sono irrilevanti. |
KS_INTERLACE_1FieldPerSample | Indica un campo per campione di supporti. Se zero, indica due campi per campione 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, top field in NTSC is Field 2.Top field in PAL is Field 2. |
KS_INTERLACE_UNUSED | Inutilizzato |
KS_INTERLACE_FieldPatternMask | Indica i bit utilizzati per specificare il criterio 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 sarà presente un campo 2 per ogni campo 1. |
KS_INTERLACE_FieldPatBothIrregular | Indica un modello casuale di Field 1s e Field 2s. |
KS_INTERLACE_DisplayModeMask | Non valido per l'acquisizione video. |
KS_INTERLACE_DisplayModeBobOnly | Non valido per l'acquisizione video. |
KS_INTERLACE_DisplayModeWeaveOnly | Non valido per l'acquisizione video. |
KS_INTERLACE_DisplayModeBobOrWeave | Non valido per l'acquisizione video. |
dwCopyProtectFlags
Specifica un valore KSCOPYPROTECTRestrictDuplication (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 delle proporzioni dell'immagine, ad esempio 16 per un display da 16 × 9. Il valore è espresso in pollici per pollici, non pixel per pixel.
dwPictAspectRatioY
Specifica la dimensione y delle proporzioni dell'immagine, ad esempio 9 per 16 × 9 display. 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 era 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 utilizzati i flag di 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 | Informazioni aggiuntive sul colore sono contenute nei 24 bit superiori del campo dwControlFlags. |
Il flag AMCONTROL_USED garantisce la compatibilità con le versioni precedenti con i filtri precedenti. 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 AMCONTROL_USED.
I due flag AMCONTROL_PAD_xxx vengono usati dai decodificatori per determinare le proporzioni del rettangolo di output.
Se il flag 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'uso del sistema. Deve essere impostato su zero oppure la connessione verrà rifiutata.
bmiHeader
Indica una struttura KS_BITMAPINFOHEADER che contiene informazioni sul colore e sulla dimensione per la bitmap dell'immagine video.
Osservazioni
Per descrivere un flusso video senza impostazioni bob o weave, usare KS_VIDEOINFOHEADER.
La struttura KS_VIDEOINFOHEADER2 è identica alla struttura VIDEOINFOHEADER2 DirectShow.
I minidriver di acquisizione che producono campi video (invece di fotogrammi) devono 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 tutto il 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 zeri e impostare IsRectEmpty per controllare successivamente 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 zeri. Un filtro downstream può richiedere che il video venga inserito in una determinata area dei buffer forniti. In questo caso, chiama la funzione Win32 QueryAccept con una destinazione non vuota.
Se il flag AMCONTROL_COLORINFO_PRESENT è impostato nel membro dwControlFlags, è possibile eseguire il cast del valore dwControlFlags a una struttura DXVA_ExtendedFormat per accedere alle informazioni sul colore estese. Per altre informazioni, vedere VIDEOINFOHEADER2.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | ksmedia.h (include Ksmedia.h) |