KS_VIDEO_STREAM_CONFIG_CAPS struttura (ksmedia.h)
La struttura KS_VIDEO_STREAM_CONFIG_CAPS descrive la configurazione e le funzionalità di un flusso video, incluso lo standard video analogico (ad esempio, NTSC, PAL o SECAM), la scalabilità e le funzionalità di ritaglio; velocità minima e massima dei fotogrammi; e velocità minima e massima dei dati.
Sintassi
typedef struct _KS_VIDEO_STREAM_CONFIG_CAPS {
GUID guid;
ULONG VideoStandard;
SIZE InputSize;
SIZE MinCroppingSize;
SIZE MaxCroppingSize;
int CropGranularityX;
int CropGranularityY;
int CropAlignX;
int CropAlignY;
SIZE MinOutputSize;
SIZE MaxOutputSize;
int OutputGranularityX;
int OutputGranularityY;
int StretchTapsX;
int StretchTapsY;
int ShrinkTapsX;
int ShrinkTapsY;
LONGLONG MinFrameInterval;
LONGLONG MaxFrameInterval;
LONG MinBitsPerSecond;
LONG MaxBitsPerSecond;
} KS_VIDEO_STREAM_CONFIG_CAPS, *PKS_VIDEO_STREAM_CONFIG_CAPS;
Members
guid
GUID che specifica il tipo di formato video. I valori possibili sono:
KSDATAFORMAT_SPECIFIER_VIDEOINFO
KSDATAFORMAT_SPECIFIER_VIDEOINFO2
KSDATAFORMAT_SPECIFIER_ANALOGVIDEO
KSDATAFORMAT_SPECIFIER_VBI
KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO
KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO
Questo GUID è identico all'enumerazione DirectShow AM_MEDIA_TYPE. Per altre informazioni su AM_MEDIA_TYPE, vedere la documentazione di DirectX SDK.
VideoStandard
Specifica gli standard video analogici supportati dal flusso. Questo membro può essere impostato su uno o più valori (logicamente ORed) dall'enumerazione KS_AnalogVideoStandard .
InputSize
Specifica le dimensioni del segnale in ingresso. InputSize indica la larghezza e l'altezza del rettangolo di immagine, in pixel. Questo è il segnale più grande che il filtro può digitalizzare con ogni pixel rimanente univoco.
MinCroppingSize
Specifica il rettangolo di ritaglio più piccolo consentito, come specificato nel membro rcSource della struttura KS_VIDEOINFOHEADER , associato al membro DataRange .
MaxCroppingSize
Specifica il rettangolo di ritaglio più grande consentito, come specificato nel membro rcSource della struttura KS_VIDEOINFOHEADER, associato al membro DataRange .
CropGranularityX
Specifica la granularità orizzontale delle dimensioni di ritaglio. Ad esempio, le larghezze valide possono essere specificate come anche più di quattro.
CropGranularityY
Specifica la granularità verticale delle dimensioni di ritaglio. Ad esempio, le altezze valide possono essere specificate come anche più di quattro.
CropAlignX
Specifica l'allineamento orizzontale del rettangolo di ritaglio all'interno di InputSize. Ad esempio, il minidriver potrebbe specificare che i rettangoli validi devono iniziare su un limite che è un multiplo di quattro.
CropAlignY
Specifica l'allineamento verticale del rettangolo di ritaglio all'interno di InputSize. Ad esempio, il minidriver potrebbe specificare che i rettangoli validi devono iniziare su un limite che è un multiplo di quattro.
MinOutputSize
Specifica la bitmap più piccola che questo pin può produrre.
MaxOutputSize
Specifica la bitmap più grande che questo pin può produrre.
OutputGranularityX
Specifica la granularità della larghezza bitmap di output.
OutputGranularityY
Specifica la granularità dell'altezza bitmap di output.
StretchTapsX
Specifica uno dei valori seguenti per indicare il modo in cui il filtro può estendere la larghezza dell'immagine.
Valore | Significato |
---|---|
0 | Impossibile estendere il filtro. |
1 | Il filtro usa il raddoppio dei pixel per ottenere l'estensione. |
2 | Il filtro usa l'interpolazione (2 tap). |
3 | Il filtro usa una forma di interpolazione più uniforme (più uniforme). |
StretchTapsY
Specifica uno dei valori seguenti per indicare il modo in cui il filtro può estendere l'altezza dell'immagine.
Valore | Significato |
---|---|
0 | Impossibile estendere il filtro. |
1 | Il filtro usa il raddoppio dei pixel per ottenere l'estensione. |
2 | Il filtro usa l'interpolazione (2 tap). |
3 | Il filtro usa una forma di interpolazione più uniforme (più uniforme). |
ShrinkTapsX
Specifica uno dei valori seguenti per indicare il modo in cui il filtro può ridurre la larghezza dell'immagine.
Valore | Significato |
---|---|
0 | Impossibile compattare il filtro. |
1 | Il filtro elimina alcune righe di pixel per ottenere la compattazione. |
2 | Il filtro usa l'interpolazione (2 tap). |
3 | Il filtro usa una forma di interpolazione più uniforme (più uniforme). |
ShrinkTapsY
Specifica uno dei valori seguenti per indicare il modo in cui il filtro può ridurre l'altezza dell'immagine.
Valore | Significato |
---|---|
0 | Impossibile compattare il filtro. |
1 | Il filtro elimina alcune colonne di pixel per ottenere la compattazione. |
2 | Il filtro usa l'interpolazione (2 tap). |
3 | Il filtro usa una forma di interpolazione più uniforme (più uniforme). |
MinFrameInterval
Specifica la frequenza minima di fotogrammi consentita. Questo valore si applica solo ai filtri di acquisizione.
MaxFrameInterval
Specifica la frequenza massima di fotogrammi consentita. Questo valore si applica solo ai filtri di acquisizione.
MinBitsPerSecond
Specifica la velocità minima dei dati, in bit al secondo, che questo pin può produrre.
MaxBitsPerSecond
Specifica la velocità massima dei dati, in bit al secondo, che questo pin può produrre.
Commenti
La struttura KS_VIDEO_STREAM_CONFIG_CAPS è identica alla struttura di VIDEO_STREAM_CONFIG_CAPS DirectShow.
È importante comprendere le relazioni tra i membri di questa struttura. Si supponga ad esempio i valori seguenti per alcuni dei membri della struttura:
MinCroppingSize = (160, 120)
MaxCroppingSize = (320, 240)
CropGranularityX = 4
CropGranularityY = 8
Questi valori indicano che le dimensioni di ritaglio valide iniziano a MinCroppingSize e aumentano nei passaggi nella direzione x di CropGranularityX e nella direzione y di CropGranularityY. In questo caso, il valore x può essere ovunque da 160 a 320 pixel, in passaggi di quattro e il valore y può essere ovunque da 120 a 240 pixel in passaggi di otto.
Nello scenario di esempio, alcune delle dimensioni valide sono:
160 × 120, 164 × 120, 168 × 120, 172 × 120 e così via.
160 × 128, 164 × 128, 168 × 128, 172 × 128 e così via.
160 × 136, 164 × 136, 168 × 136, 172 × 136 e così via.
CropAlignX e CropAlignY indicano dove il rettangolo di ritaglio può trovarsi all'interno del rettangolo delle dimensioni di input. Dato un rettangolo di ritaglio 160 × 120 e un valore pari a 2 per CropAlignX e un valore pari a 4 per CropAlignY, alcuni dei valori validi per il membro rcSource della struttura KS_VIDEOINFOHEADER saranno:
(0, 0, 160, 120)
(2, 0, 162, 120)
(2, 4, 162, 124)
(2, 8, 162, 128)
Per un rettangolo di ritaglio 320 × 240 e gli stessi valori di allineamento ritaglio, (2, 4, 322, 244) è un esempio dei numerosi rettangoli validi.
I membri MinCroppingSize, MaxCroppingSize, CropGranularityX, CropGranularityY, CropAlignX e CropAlignY descritti in precedenza interagiscono per specificare quali valori di rcSource sono validi per la struttura KS_VIDEOINFOHEADER che descrive il tipo di supporto del pin di output. I membri della struttura rimanenti (MinOutputSize, MaxOutputSize, OutputGranularityX e OutputGranularityY) descrivono i membri biWidth e biHeight della struttura KS_BITMAPINFOHEADER , contenuto nel tipo di supporto del pin KS_VIDEOINFOHEADER struttura.
Requisiti
Requisito | Valore |
---|---|
Intestazione | ksmedia.h (include Ksmedia.h) |