Compartir a través de


CRefTime (clase)

[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.

jerarquía de clases creftime

La CRefTime clase es una clase auxiliar para administrar los tiempos de referencia.

Un tiempo de referencia es una unidad de tiempo representada en unidades de 100 nanosegundos. Esta clase comparte el mismo diseño de datos que el tipo de datos REFERENCE_TIME , pero agrega algunos métodos y operadores que proporcionan funciones de comparación, conversión y aritmética. Para obtener más información sobre las horas de referencia, vea Hora y relojes en DirectShow.

Variables de miembro público Descripción
m_time Especifica el valor de REFERENCE_TIME .
Métodos públicos Descripción
CRefTime Método constructor.
GetUnits Recupera el tiempo de referencia en unidades de 100 nanosegundos.
Milisecs Convierte el tiempo de referencia en milisegundos.
Operadores Descripción
operator REFERENCE_TIME() Convierte el objeto en un tipo de datos REFERENCE_TIME .
operator= Asigna una nueva hora de referencia.
operator+= Agrega dos veces de referencia.
operator = Resta una vez de referencia de otra.

Observaciones

Hay un posible problema con el uso de esta clase. Si aplica el operador += con un objeto CRefTime como operando izquierdo y una variable de tipo LONG como operando derecho, el compilador coerce implícitamente el operando derecho en un objeto CRefTime . Esta coerción usa el constructor CRefTime que convierte milisegundos en unidades de REFERENCE_TIME; como resultado, el operando derecho se multiplica por 10 000:

CRefTime rt;   // rt.m_time is 0.
LONG val = 20;
rt += val;    // Coerce val to CRefTime, rt.m_time is now 200,000.

Sin embargo, no sucede lo mismo con el operador + :

CRefTime rt;   // rt.m_time is 0.
LONG val = 20;
rt = rt + val; // CRefTime, rt.m_time is 20.

Requisitos

Requisito Value
Encabezado
Reftime.h (include Streams.h)
Biblioteca
Strmbase.lib (compilaciones comerciales);
Strmbasd.lib (compilaciones de depuración)