From 2560202bae4ce7274bbbc1b7289196137167a352 Mon Sep 17 00:00:00 2001 From: beveloper Date: Sat, 28 Jun 2003 22:59:53 +0000 Subject: [PATCH] additional helper functions git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3722 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../media/media-add-ons/mixer/MixerUtils.cpp | 22 +++++++++++++++++++ .../media/media-add-ons/mixer/MixerUtils.h | 5 +++++ 2 files changed, 27 insertions(+) diff --git a/src/add-ons/media/media-add-ons/mixer/MixerUtils.cpp b/src/add-ons/media/media-add-ons/mixer/MixerUtils.cpp index 24bf41a912..9b6af0242a 100644 --- a/src/add-ons/media/media-add-ons/mixer/MixerUtils.cpp +++ b/src/add-ons/media/media-add-ons/mixer/MixerUtils.cpp @@ -194,3 +194,25 @@ frames_per_buffer(const media_multi_audio_format & format) } return frames; } + +bigtime_t +buffer_duration(const media_multi_audio_format & format) +{ + bigtime_t duration = 0; + if (format.buffer_size > 0 && format.frame_rate > 0 && bytes_per_frame(format) > 0) { + duration = s_to_us((format.buffer_size / bytes_per_frame(format)) / format.frame_rate); + } + return duration; +} + +double +us_to_s(bigtime_t usecs) +{ + return (usecs / 1000000.0); +} + +bigtime_t +s_to_us(double secs) +{ + return (bigtime_t) (secs * 1000000.0); +} diff --git a/src/add-ons/media/media-add-ons/mixer/MixerUtils.h b/src/add-ons/media/media-add-ons/mixer/MixerUtils.h index b20dadd17c..792f2437cf 100644 --- a/src/add-ons/media/media-add-ons/mixer/MixerUtils.h +++ b/src/add-ons/media/media-add-ons/mixer/MixerUtils.h @@ -12,6 +12,8 @@ void CopySamples(float *_dst, int32 _dst_sample_offset, const float *_src, int32 _src_sample_offset, int32 _sample_count); +bigtime_t buffer_duration(const media_multi_audio_format & format); + int bytes_per_sample(const media_multi_audio_format & format); int bytes_per_frame(const media_multi_audio_format & format); @@ -22,3 +24,6 @@ bigtime_t duration_for_frames(double framerate, int64 frames); int ChannelMaskToChannelType(uint32 mask); uint32 ChannelTypeToChannelMask(int type); + +double us_to_s(bigtime_t usecs); +bigtime_t s_to_us(double secs);