Bug 1432779 - P8. Add cubeb_sample_size convenience method. r?padenot
MozReview-Commit-ID: 9tLegCyLTOL
new file mode 100644
--- /dev/null
+++ b/media/libcubeb/src/cubeb_utils.cpp
@@ -0,0 +1,23 @@
+/*
+ * Copyright © 2016 Mozilla Foundation
+ *
+ * This program is made available under an ISC-style license. See the
+ * accompanying file LICENSE for details.
+ */
+
+#include "cubeb_utils.h"
+
+size_t cubeb_sample_size(cubeb_sample_format format)
+{
+ switch (format) {
+ case CUBEB_SAMPLE_S16LE:
+ case CUBEB_SAMPLE_S16BE:
+ return sizeof(int16_t);
+ case CUBEB_SAMPLE_FLOAT32LE:
+ case CUBEB_SAMPLE_FLOAT32BE:
+ return sizeof(float);
+ default:
+ // should never happen as all cases are handled above.
+ assert(false);
+ }
+}
--- a/media/libcubeb/src/cubeb_utils.h
+++ b/media/libcubeb/src/cubeb_utils.h
@@ -328,12 +328,14 @@ struct auto_array_wrapper_impl : public
~auto_array_wrapper_impl() {
ar.clear();
}
private:
auto_array<T> ar;
};
+size_t cubeb_sample_size(cubeb_sample_format format);
+
using auto_lock = std::lock_guard<owned_critical_section>;
#endif // __cplusplus
#endif /* CUBEB_UTILS */
--- a/media/libcubeb/src/moz.build
+++ b/media/libcubeb/src/moz.build
@@ -8,17 +8,18 @@ DEFINES['CUBEB_GECKO_BUILD'] = True
Library('cubeb')
SOURCES += [
'cubeb.c',
'cubeb_log.cpp',
'cubeb_mixer.cpp',
'cubeb_panner.cpp',
- 'cubeb_strings.c'
+ 'cubeb_strings.c',
+ 'cubeb_utils.cpp',
]
if CONFIG['MOZ_ALSA']:
SOURCES += [
'cubeb_alsa.c',
]
DEFINES['USE_ALSA'] = True
--- a/media/libcubeb/update.sh
+++ b/media/libcubeb/update.sh
@@ -32,16 +32,17 @@ cp $1/src/cubeb_resampler.cpp src
cp $1/src/cubeb_resampler.h src
cp $1/src/cubeb_resampler_internal.h src
cp $1/src/cubeb_ring_array.h src
cp $1/src/cubeb_ringbuffer.h src
cp $1/src/cubeb_sndio.c src
cp $1/src/cubeb_strings.c src
cp $1/src/cubeb_strings.h src
cp $1/src/cubeb_utils.h src
+cp $1/src/cubeb_utils.cpp src
cp $1/src/cubeb_utils_unix.h src
cp $1/src/cubeb_utils_win.h src
cp $1/src/cubeb_wasapi.cpp src
cp $1/src/cubeb_winmm.c src
cp $1/test/common.h gtest
cp $1/test/test_audio.cpp gtest
cp $1/test/test_devices.cpp gtest
cp $1/test/test_duplex.cpp gtest