Classe CMediaSample
[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.]
A CMediaSample
classe define um exemplo de mídia que dá suporte à interface IMediaSample2 . O exemplo de mídia contém um ponteiro para um buffer de memória e várias propriedades armazenadas como variáveis de membro protegidas.
Os exemplos de mídia são criados por alocadores, que são derivados da classe CBaseAllocator . O CMediaSample
construtor recebe um ponteiro para um buffer alocado, juntamente com o tamanho do buffer. Outras propriedades normalmente são definidas e recuperadas por meio de métodos de interface IMediaSample .
O ciclo de vida de um exemplo de mídia difere do da maioria dos objetos COM:
- O alocador contém uma lista de exemplos gratuitos. Quando um filtro precisa de um novo exemplo, ele chama o método IMemAllocator::GetBuffer do alocador. O alocador recupera um exemplo de sua lista gratuita, incrementa a contagem de referência do exemplo e retorna um ponteiro para o exemplo.
- Depois que o filtro for feito com o exemplo, ele chamará o método IUnknown::Release no exemplo. Ao contrário da maioria dos objetos, o exemplo não se exclui quando sua contagem de referência atinge zero. Em vez disso, ele chama o método IMemAllocator::ReleaseBuffer no alocador e o alocador retorna o exemplo para sua lista gratuita.
- O alocador não destrói amostras até que o método IMemAllocator::D ecommit seja chamado.
Variáveis de membro protegidas | Descrição |
---|---|
M_dwflags | Sinalizadores de propriedade de exemplo. |
m_dwTypeSpecificFlags | Sinalizadores específicos do tipo. |
m_pBuffer | Ponteiro para o buffer de memória que contém os dados de mídia. |
m_lActual | Comprimento dos dados válidos no buffer, em bytes. |
m_cbBuffer | Tamanho do buffer, em bytes. |
m_pAllocator | Ponteiro para o alocador que criou este exemplo. |
m_pNext | Ponteiro para o próximo exemplo na lista de exemplos do alocador. |
m_Start | Hora de início da amostra. |
m_End | Hora de término de exemplo. |
m_MediaStart | Hora de início da mídia. |
m_MediaEnd | Tempo de parada de mídia. |
m_pMediaType | Ponteiro para o tipo de mídia, se o tipo tiver sido alterado em relação ao exemplo anterior no fluxo de dados. |
m_dwStreamId | Identificador de fluxo. |
Variáveis de membro público | Descrição |
m_cRef | Contagem de referências. |
Métodos públicos | Descrição |
Cmediasample | Método de construtor. |
~Cmediasample | Método destruidor. Virtual. |
SetPointer | Define o ponteiro para o buffer de memória. |
Métodos IMediaSample | Descrição |
GetPointer | Recupera um ponteiro de leitura/gravação para o buffer. |
Getsize | Recupera o tamanho do buffer. |
GetTime | Recupera os horários de fluxo nos quais este exemplo deve começar e concluir. |
SetTime | Define os horários de fluxo nos quais este exemplo deve ser iniciado e concluído. |
IsSyncPoint | Determina se o início do exemplo é um ponto de sincronização. |
SetSyncPoint | Especifica se o início deste exemplo é um ponto de sincronização. |
IsPreroll | Determina se este exemplo é um exemplo de pré-registro. |
SetPreroll | Especifica se este exemplo é um exemplo de pré-registro. |
GetActualDataLength | Recupera o comprimento dos dados válidos no buffer. |
SetActualDataLength | Define o comprimento dos dados válidos no buffer. |
Getmediatype | Recupera o tipo de mídia, se o tipo de mídia for diferente do exemplo anterior. |
Setmediatype | Define o tipo de mídia para o exemplo. |
IsDiscontinuity | Determina se este exemplo representa uma quebra no fluxo de dados. |
SetDiscontinuity | Especifica se este exemplo representa uma quebra no fluxo de dados. |
GetMediaTime | Recupera os tempos de mídia para este exemplo. |
SetMediaTime | Define os tempos de mídia para este exemplo. |
Métodos IMediaSample2 | Descrição |
GetProperties | Recupera as propriedades do exemplo. |
SetProperties | Define as propriedades do exemplo. |
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|