Compartilhar via


estrutura KS_VIDEOINFOHEADER2 (ksmedia.h)

A estrutura KS_VIDEOINFOHEADER2 descreve os detalhes de um fluxo de vídeo, incluindo as configurações bob ou weave, a proteção de cópia e a taxa de proporção de pixel.

Sintaxe

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;

Membros

rcSource

Especifica um retângulo de recorte que seleciona a parte do sinal de vídeo ativo a ser usado.

rcTarget

Especifica um retângulo que indica qual parte do buffer de destino usar.

dwBitRate

Especifica um valor que indica a taxa de dados apropriada do fluxo de vídeo, em bits por segundo.

dwBitErrorRate

Especifica um valor que indica a taxa de erro de dados do fluxo de vídeo, em erros de bits por segundo.

AvgTimePerFrame

Especifica o tempo médio por quadro, em unidades de 100 nanossegundos.

dwInterlaceFlags

Especifica informações de entrelaçamento. Sinalizadores indefinidos devem ser definidos como zero ou a conexão pode ser rejeitada. Esse membro pode ser definido como um ou mais valores (OR lógicos) definidos em ksmedia.h:

Sinalizador Descrição
KS_INTERLACE_IsInterlaced Indica um fluxo de entrelaçamento. Se 0, os outros KS_INTERLACE_Xxx bits serão irrelevantes.
KS_INTERLACE_1FieldPerSample Indica um campo por exemplo de mídia. Se zero, indica dois campos por exemplo de mídia.
KS_INTERLACE_Field1First Indica que o Campo 1 é o primeiro. Se zero, indica que o Campo 2 é o primeiro. O campo superior no PAL é o Campo 1, o campo superior no NTSC é o Campo 2.
KS_INTERLACE_UNUSED Não usado
KS_INTERLACE_FieldPatternMask Indica os bits usados para especificar o padrão de campo.
KS_INTERLACE_FieldPatField1Only Indica que um fluxo nunca contém um Campo 2.
KS_INTERLACE_FieldPatField2Only Indica que um fluxo nunca contém um Campo 1.
KS_INTERLACE_FieldPatBothRegular Indica que haverá um Campo 2 para cada Campo 1.
KS_INTERLACE_FieldPatBothIrregular Indica um padrão aleatório de Campo 1 e Campo 2s.
KS_INTERLACE_DisplayModeMask Inválido para captura de vídeo.
KS_INTERLACE_DisplayModeBobOnly Inválido para captura de vídeo.
KS_INTERLACE_DisplayModeWeaveOnly Inválido para captura de vídeo.
KS_INTERLACE_DisplayModeBobOrWeave Inválido para captura de vídeo.

dwCopyProtectFlags

Especifica um valor KSCOPYPROTECTRestrictDuplication (0x00000001) para indicar se a duplicação de um fluxo deve ser restrita. Se indefinido, especifique zero ou a conexão será rejeitada.

dwPictAspectRatioX

Especifica a dimensão x da taxa de proporção de imagem (por exemplo, 16 para uma exibição de 16 × 9). O valor é expresso em polegadas por polegadas, não pixels por pixels.

dwPictAspectRatioY

Especifica a dimensão y da taxa de proporção da imagem (por exemplo, 9 para exibição de 16 × 9). O valor é expresso em polegadas por polegadas, não pixels por pixels.

dwControlFlags

Em sistemas operacionais anteriores ao Windows Vista, esse membro era chamado dwReserved1 e era necessário ser zero. No Windows Vista, dwReserved1 foi combinado em uma união com um novo membro chamado dwControlFlags. Se usado, dwControlFlags contém um OR bit a bit dos sinalizadores na tabela a seguir.

Valor Descrição
AMCONTROL_USED Indica que os sinalizadores dwControlFlags são usados .
AMCONTROL_PAD_TO_4x3 A imagem deve ser acolchoada e exibida em uma área 4 x 3.
AMCONTROL_PAD_TO_16x9 A imagem deve ser acolchoada e exibida em uma área de 16 x 9.
AMCONTROL_COLORINFO_PRESENT Informações adicionais de cor estão contidas nos 24 bits superiores do campo dwControlFlags .

O sinalizador AMCONTROL_USED fornece compatibilidade com versões anteriores com filtros mais antigos. Se o sinalizador AMCONTROL_USED não estiver definido, os bits restantes neste campo deverão ser ignorados. Se um filtro usar outros sinalizadores, ele deverá definir o sinalizador AMCONTROL_USED.

Os dois sinalizadores AMCONTROL_PAD_xxx são usados por decodificadores para determinar a taxa de proporção do retângulo de saída.

Se o sinalizador AMCONTROL_COLORINFO_PRESENT estiver definido, isso significa que os 24 bits superiores do campo dwControlFlags são tratados como uma estrutura DXVA_ExtendedFormat .

Consulte a seção Comentários mais adiante neste tópico para obter mais informações sobre dwControlFlags.

dwReserved1

Esse membro é para compatibilidade com versões anteriores. Consulte dwControlFlags para obter mais informações.

dwReserved2

Reservado para uso do sistema. Deve ser definido como zero ou a conexão será rejeitada.

bmiHeader

Indica uma estrutura KS_BITMAPINFOHEADER que contém informações de cor e dimensão para o bitmap da imagem de vídeo.

Comentários

Para descrever um fluxo de vídeo sem configurações bob ou weave, use KS_VIDEOINFOHEADER.

A estrutura KS_VIDEOINFOHEADER2 é idêntica à estrutura de VIDEOINFOHEADER2 do DirectShow.

Os minidrivers de captura que produzem campos de vídeo (em vez de quadros) devem usar a estrutura KS_DATARANGE_VIDEO2 , que contém a estrutura KS_VIDEOINFOHEADER2.

Um filtro de origem pode solicitar que o filtro de coletor use apenas uma seção do vídeo fornecendo valores que definem efetivamente um retângulo de recorte no membro rcSource . No entanto, se o filtro de coletor não marcar para o retângulo de recorte na conexão, o filtro de coletor simplesmente renderiza todo o vídeo, ignorando efetivamente todas as informações de recorte passadas do filtro de origem para o filtro de coletor.

O ideal é que um filtro de coletor verifique rcSource e, se o filtro de coletor não der suporte à extração de imagem e o retângulo não estiver vazio, ele rejeitará a conexão. Um filtro deve usar a função Win32 SetRectEmpty para redefinir um retângulo para todos os zeros (e definir IsRectEmpty como posteriormente marcar retângulo).

O membro rcTarget especifica o retângulo de destino para o vídeo. A maioria dos filtros de origem define esse membro como todos os zeros. Um filtro downstream pode solicitar que o vídeo seja colocado em uma área específica dos buffers que ele fornece. Nesse caso, ele chama a função Win32 QueryAccept com um destino não vazio.

Se o sinalizador AMCONTROL_COLORINFO_PRESENT estiver definido no membro dwControlFlags , você poderá converter o valor dwControlFlags em uma estrutura DXVA_ExtendedFormat para acessar as informações de cor estendidas. Para obter mais informações, consulte VIDEOINFOHEADER2.

Requisitos

Requisito Valor
Cabeçalho ksmedia.h (inclua Ksmedia.h)

Confira também

KS_BITMAPINFOHEADER

KS_DATARANGE_VIDEO2

KS_VIDEOINFOHEADER