Share via


Informações de Parâmetro

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O método IMediaParamInfo::GetParamInfo retorna uma estrutura MP_PARAMINFO que descreve um parâmetro. Essa estrutura contém as seguintes informações:

  • O membro mpType indica o tipo de dados do valor do parâmetro. Para eficiência, todos os parâmetros são implementados como valores de ponto flutuante de 32 bits. A enumeração MP_TYPE define se o valor deve ser interpretado como um inteiro, valor de ponto flutuante, booliano ou enumeração (série de inteiros).
  • O membro mopCaps indica quais curvas esse parâmetro dá suporte. Se o tipo de dados for booliano ou enumeração, a única curva que o parâmetro pode dar suporte será "Jump".
  • Os membros mpdMinValue e mpdMaxValue definem os valores mínimo e máximo para esse parâmetro. Todas as curvas para esse parâmetro devem se enquadrar nesse intervalo.
  • O membro mpdNeutralValue é o valor padrão do parâmetro .
  • O membro szLabel é o nome do parâmetro e o membro szUnitText é o nome da unidade de medida para o parâmetro . Exemplos podem incluir "Volume" e "Decibéis" ou "Frequência" e "kHz". Ambas as cadeias de caracteres são inglesas e nunca são localizadas. O DMO pode fornecer versões localizadas por meio do método IMediaParamInfo::GetParamText .

As informações de cada parâmetro permanecem fixas durante todo o tempo de vida do DMO. Portanto, o cliente pode consultar essas informações uma vez e, em seguida, armazená-la em cache.

Formatos de tempo

O cliente deve carimbo de data/hora dos dados de entrada, para que o DMO possa calcular os valores de parâmetro correspondentes. Por padrão, os carimbos de data/hora representam unidades de 100 nanossegundos, também chamados de hora de referência. No entanto, essa unidade de tempo não é conveniente para cada aplicativo, portanto, um DMO tem uma opção para dar suporte a outros formatos de hora. Os formatos de tempo são identificados pelo GUID.

GUID Descrição
GUID_TIME_REFERENCE Hora da referência
GUID_TIME_MUSIC Nota de partes por trimestre (PPQN)
GUID_TIME_SAMPLES Exemplos por segundo

 

Terceiros são incentivados a definir seus próprios formatos de tempo conforme necessário. No entanto, todos os DMOs devem dar suporte ao tempo de referência. Isso fornece uma linha de base padrão que todos podem usar. Para determinar quantos formatos de tempo um DMO dá suporte, chame o método IMediaParamInfo::GetNumTimeFormats . Para enumerar os formatos com suporte, chame o método IMediaParamInfo::GetSupportedTimeFormat .

Para definir o formato de hora, chame IMediaParams::SetTimeFormat. Esse método especifica o GUID de formato de tempo e os dados de tempo, que é o número de unidades por tique de relógio. Por exemplo, se o formato de hora for exemplos por segundo e os dados de hora forem 32, um valor de carimbo de data/hora de 10 corresponderá a 320 amostras.

Parâmetros de mídia