17#define ZOH_MAGIC_MARKER MAKE_MAGIC ('s', 'r', 'c', 'z', 'o', 'h')
25 float last_value [1] ;
34 double src_ratio, input_index, rem ;
37 if (
data->input_frames <= 0)
47 for (ch = 0 ; ch < priv->
channels ; ch++)
64 while (input_index < 1.0 && priv->out_gen < priv->
out_count)
72 for (ch = 0 ; ch < priv->
channels ; ch++)
78 input_index += 1.0 / src_ratio ;
97 input_index += 1.0 / src_ratio ;
112 for (ch = 0 ; ch < priv->
channels ; ch++)
131 return "ZOH Interpolator" ;
140 return "Zero order hold interpolator, very fast, poor quality." ;
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
_Check_return_ _CRT_JIT_INTRINSIC double __cdecl fabs(_In_ double x)
_Check_return_ __CRT_INLINE long lrint(_In_ double x)
static UINT UINT * out_count
static int is_bad_src_ratio(double ratio)
@ SRC_ERR_BAD_INTERNAL_STATE
static double fmod_one(double x)
#define SRC_MIN_RATIO_DIFF
const char * zoh_get_description(int src_enum)
static int zoh_vari_process(SRC_PRIVATE *psrc, SRC_DATA *data)
const char * zoh_get_name(int src_enum)
static void zoh_reset(SRC_PRIVATE *psrc)
int zoh_set_converter(SRC_PRIVATE *psrc, int src_enum)
int(* const_process)(struct SRC_PRIVATE_tag *psrc, SRC_DATA *data)
int(* vari_process)(struct SRC_PRIVATE_tag *psrc, SRC_DATA *data)
void(* reset)(struct SRC_PRIVATE_tag *psrc)
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList