Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
[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 |
|