Bug 1432779 - P8. Add cubeb_sample_size convenience method. r?padenot draft
authorJean-Yves Avenard <jyavenard@mozilla.com>
Thu, 08 Mar 2018 20:28:48 +0100
changeset 768205 328e8710f8482c487800b8fcb07868fa95ee8932
parent 768204 082ddfa280dd1acac8de11615ad2c01b4692dffa
child 768206 813987980b95ec1d54a0c6d2487a46f09cbae1ae
push id102819
push userbmo:jyavenard@mozilla.com
push dateThu, 15 Mar 2018 19:46:59 +0000
reviewerspadenot
bugs1432779
milestone61.0a1
Bug 1432779 - P8. Add cubeb_sample_size convenience method. r?padenot MozReview-Commit-ID: 9tLegCyLTOL
media/libcubeb/src/cubeb_utils.cpp
media/libcubeb/src/cubeb_utils.h
media/libcubeb/src/moz.build
media/libcubeb/update.sh
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