Método IMFTimecodeTranslate::BeginConvertTimecodeToHNS (mfidl.h)
Inicia uma chamada assíncrona para converter o código de tempo da Society of Motion Picture and Television Engineers (SMPTE) em unidades de 100 nanossegundos.
Sintaxe
HRESULT BeginConvertTimecodeToHNS(
[in] const PROPVARIANT *pPropVarTimecode,
[in] IMFAsyncCallback *pCallback,
[in] IUnknown *punkState
);
Parâmetros
[in] pPropVarTimecode
Tempo no código de tempo SMPTE a ser convertido. O membro vt da estrutura PROPVARIANT é definido como VT_I8. O membro hVal.QuadPart contém o tempo no formulário decimal codificado binário (BCD). Consulte Observações.
[in] pCallback
Ponteiro para a interface IMFAsyncCallback de um objeto de retorno de chamada. O chamador deve implementar essa interface.
[in] punkState
PPointer para a interface IUnknown de um objeto de estado, definida pelo chamador. Este parâmetro pode ser NULL. Você pode usar esse objeto para armazenar informações de estado. O objeto é retornado ao chamador quando o retorno de chamada é invocado.
Retornar valor
O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.
Código de retorno | Descrição |
---|---|
|
pPropVarTimecode não é VT_I8. |
|
O método Shutdown do objeto foi chamado. |
|
O fluxo de bytes não é buscado. O código de hora não pode ser lido do final do fluxo de bytes. |
Comentários
Quando o método assíncrono é concluído, o método IMFAsyncCallback::Invoke do objeto de retorno de chamada é chamado. Nesse ponto, o aplicativo deve chamar IMFTimecodeTranslate::EndConvertTimecodeToHNS para concluir a solicitação assíncrona.
O valor de pPropVarTimecode é um valor sem sinal de 64 bits digitado como LONGLONG. O DWORD superior contém o intervalo. (Um intervalo é uma série contínua de códigos de tempo.) O DWORD inferior contém o código de tempo na forma de um número hexadecimal 0xhhmmssff, em que cada sequência de 2 bytes é lida como um valor decimal.
void CreateTimeCode(
DWORD dwFrames,
DWORD dwSeconds,
DWORD dwMinutes,
DWORD dwHours,
DWORD dwRange,
PROPVARIANT *pvar
)
{
ULONGLONG ullTimecode = ((ULONGLONG)dwRange) << 32;
ullTimecode += dwFrames % 10;
ullTimecode += (( (ULONGLONG)dwFrames ) / 10) << 4;
ullTimecode += (( (ULONGLONG)dwSeconds ) % 10) << 8;
ullTimecode += (( (ULONGLONG)dwSeconds ) / 10) << 12;
ullTimecode += (( (ULONGLONG)dwMinutes ) % 10) << 16;
ullTimecode += (( (ULONGLONG)dwMinutes ) / 10) << 20;
ullTimecode += (( (ULONGLONG)dwHours ) % 10) << 24;
ullTimecode += (( (ULONGLONG)dwHours ) / 10) << 28;
pvar->vt = VT_I8;
pvar->hVal.QuadPart = (LONGLONG)ullTimecode;
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 7 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 R2 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | mfidl.h |