bigtime_t frames_duration( const media_raw_audio_format & format, int64 num_frames) { // Tells us how long in us it will take to produce num_frames, // with the given format. bigtime_t duration = 0; if (format.frame_rate > 0) { duration = s_to_us(num_frames/format.frame_rate); } return duration; }
bigtime_t buffer_duration( const media_raw_audio_format & format) { // Figuring out duration is easy. We take extra precaution to // not divide by zero or return irrelevant results. bigtime_t duration = 0; if (format.buffer_size > 0 && format.frame_rate > 0 && bytes_per_frame(format) > 0) { // In these kinds of calculations, it's always useful to double-check // the unit conversions. (Anyone remember high school physics?) // bytes/(bytes/frame) / frames/sec // = frames * sec/frames // = secs which is what we want. duration = s_to_us((format.buffer_size / bytes_per_frame(format)) / format.frame_rate); } return duration; }
EXPORT ER dt_gmtime( time_t tim, struct tm* result ) { return dt_gmtime_us(s_to_us(tim), result); }