AM_MEDIA_TYPE estructura (strmif.h)
[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.
La estructura AM_MEDIA_TYPE describe el formato de un ejemplo multimedia.
Sintaxis
typedef struct _AMMediaType {
GUID majortype;
GUID subtype;
BOOL bFixedSizeSamples;
BOOL bTemporalCompression;
ULONG lSampleSize;
GUID formattype;
IUnknown *pUnk;
ULONG cbFormat;
BYTE *pbFormat;
} AM_MEDIA_TYPE;
Miembros
majortype
Identificador único global (GUID) que especifica el tipo principal del ejemplo multimedia. Para obtener una lista de posibles tipos principales, vea Tipos de medios.
subtype
GUID que especifica el subtipo del ejemplo multimedia. Para obtener una lista de posibles subtipos, vea Tipos de medios. Para algunos formatos, el valor puede ser MEDIASUBTYPE_None, lo que significa que el formato no requiere un subtipo.
bFixedSizeSamples
Si es TRUE, las muestras tienen un tamaño fijo. Este campo solo es informativo. En el caso del audio, generalmente se establece en TRUE. En el caso del vídeo, normalmente es TRUE para el vídeo sin comprimir y FALSE para el vídeo comprimido.
bTemporalCompression
Si es TRUE, los ejemplos se comprimen mediante la compresión temporal (interframe). Un valor true indica que no todos los fotogramas son fotogramas clave. Este campo solo es informativo.
lSampleSize
Tamaño del ejemplo en bytes. Para los datos comprimidos, el valor puede ser cero.
formattype
GUID que especifica la estructura utilizada para el bloque de formato. El miembro pbFormat apunta a la estructura de formato correspondiente. Los tipos de formato incluyen lo siguiente:
Tipo de formato | Estructura de formato |
---|---|
|
|
|
|
|
|
|
|
|
Ninguno. |
|
|
|
|
|
|
|
Ninguno |
pUnk
No se usa. Se establece en NULL.
cbFormat
Tamaño del bloque de formato, en bytes.
pbFormat
Puntero al bloque de formato. El tipo de estructura se especifica mediante el miembro formattype . La estructura de formato debe estar presente, a menos que el tipo de formato sea GUID_NULL o FORMAT_None.
El búfer pbFormat debe asignarse llamando a CoTaskMemAlloc. Para liberar el bloque de formato, llame a FreeMediaType.
Observaciones
Cuando se conectan dos patillas, negocian un tipo de medio, que se define mediante una estructura AM_MEDIA_TYPE . El tipo de medio describe el formato de los datos que intercambiarán los filtros. Si los filtros no están de acuerdo con un tipo de medio, no se pueden conectar.
El tipo de secuencia se especifica mediante dos GUID, denominado tipo principal y subtipo. El tipo principal define la categoría general, como vídeo, audio o secuencia de bytes. El subtipo define una categoría más estrecha dentro del tipo principal. Por ejemplo, los subtipos de vídeo incluyen RGB de 8 bits, 16 bits, 24 bits y RGB de 32 bits.
La estructura AM_MEDIA_TYPE va seguida de un bloque de datos de longitud variable que contiene información específica del formato. El miembro pbFormat apunta a este bloque, denominado bloque de formato. El diseño del bloque de formato depende del tipo de datos de la secuencia y lo especifica el miembro formattype . El bloque de formato puede ser NULL. Compruebe el miembro cbFormat para determinar el tamaño. Convierta el miembro pbFormat para acceder al bloque de formato. Por ejemplo:
C++ |
---|
if (pmt->formattype == FORMAT_VideoInfo) { // Check the buffer size. if (pmt->cbFormat >= sizeof(VIDEOINFOHEADER)) { VIDEOINFOHEADER *pVih = reinterpret_cast<VIDEOINFOHEADER*>(pmt->pbFormat); /* Access VIDEOINFOHEADER members through pVih. */ } } |
Para obtener información detallada sobre un tipo de medio especificado con fines de depuración, use el método DisplayType .
Requisitos
Encabezado | strmif.h (incluye Dshow.h) |