Información de parámetros
[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.
El método IMediaParamInfo::GetParamInfo devuelve una estructura MP_PARAMINFO que describe un parámetro. Esta estructura contiene la siguiente información:
- El miembro mpType indica el tipo de datos del valor del parámetro. Para mejorar la eficacia, todos los parámetros se implementan como valores de punto flotante de 32 bits. La enumeración MP_TYPE define si se debe interpretar el valor como un entero, un valor de punto flotante, un valor booleano o una enumeración (serie entera).
- El miembro mopCaps indica qué curvas admite este parámetro. Si el tipo de datos es booleano o enumeración, la única curva que el parámetro puede admitir es "Jump".
- Los miembros mpdMinValue y mpdMaxValue definen los valores mínimo y máximo de este parámetro. Las curvas de este parámetro deben estar dentro de este intervalo.
- El miembro mpdNeutralValue es el valor predeterminado del parámetro .
- El miembro szLabel es el nombre del parámetro y el miembro szUnitText es el nombre de la unidad de medida para el parámetro. Algunos ejemplos pueden incluir "Volumen" y "Decibeles", o "Frecuencia" y "kHz". Ambas cadenas son inglés y nunca se localizan. DMO puede proporcionar versiones localizadas a través del método IMediaParamInfo::GetParamText .
La información de cada parámetro permanece fija durante toda la vigencia del DMO. Por lo tanto, el cliente puede consultar esta información una vez y, a continuación, almacenarla en caché.
Formatos de hora
El cliente debe marcar la hora de los datos de entrada para que DMO pueda calcular los valores de parámetro correspondientes. De forma predeterminada, las marcas de tiempo representan unidades de 100 nanosegundos, también denominadas tiempo de referencia. Sin embargo, esta unidad de tiempo no es cómoda para cada aplicación, por lo que DMO tiene una opción para admitir otros formatos de hora. Los formatos de hora se identifican mediante GUID.
GUID | Descripción |
---|---|
GUID_TIME_REFERENCE | Hora de referencia |
GUID_TIME_MUSIC | Partes por nota trimestral (PPQN) |
GUID_TIME_SAMPLES | Ejemplos por segundo |
Se recomienda a terceros definir sus propios formatos de hora según sea necesario. Sin embargo, todas las DPO deben admitir el tiempo de referencia. Esto proporciona una línea base estándar que todos los usuarios pueden usar. Para determinar cuántos formatos de tiempo admite un DMO, llame al método IMediaParamInfo::GetNumTimeFormats . Para enumerar los formatos admitidos, llame al método IMediaParamInfo::GetSupportedTimeFormat .
Para establecer el formato de hora, llame a IMediaParams::SetTimeFormat. Este método especifica el GUID de formato de hora y los datos de hora, que es el número de unidades por tic de reloj. Por ejemplo, si el formato de hora es muestras por segundo y los datos de hora son 32, un valor de marca de tiempo de 10 corresponde a 320 muestras.
Temas relacionados