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)

Vedi anche

KS_BITMAPINFOHEADER

KS_DATARANGE_VIDEO2

KS_VIDEOINFOHEADER