Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(91)

Unified Diff: ppapi/c/ppb_audio_config.h

Issue 6279003: Move ppapi audio interface out of dev, but... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ppapi/c/ppb_audio.h ('k') | ppapi/c/trusted/ppb_audio_trusted.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/c/ppb_audio_config.h
===================================================================
--- ppapi/c/ppb_audio_config.h (revision 0)
+++ ppapi/c/ppb_audio_config.h (revision 0)
@@ -0,0 +1,98 @@
+/* Copyright (c) 2011 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+#ifndef PPAPI_C_PPB_AUDIO_CONFIG_H_
+#define PPAPI_C_PPB_AUDIO_CONFIG_H_
+
+#include "ppapi/c/pp_bool.h"
+#include "ppapi/c/pp_instance.h"
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_resource.h"
+#include "ppapi/c/pp_stdint.h"
+
+#define PPB_AUDIO_CONFIG_INTERFACE "PPB_AudioConfig;1.0"
+
+enum {
+ PP_AUDIOMINSAMPLEFRAMECOUNT = 64,
+ PP_AUDIOMAXSAMPLEFRAMECOUNT = 32768
+};
+
+typedef enum {
+ PP_AUDIOSAMPLERATE_NONE = 0,
+ PP_AUDIOSAMPLERATE_44100 = 44100,
+ PP_AUDIOSAMPLERATE_48000 = 48000
+} PP_AudioSampleRate;
+PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_AudioSampleRate, 4);
+
+/**
+ * Audio configuration. This base configuration interface supports only stereo
+ * 16bit output. This class is not mutable, therefore it is okay to access
+ * instances from different threads.
+ */
+struct PPB_AudioConfig {
+ /**
+ * Create a 16 bit stereo config with the given sample rate. We guarantee
+ * that PP_AUDIOSAMPLERATE_44100 and PP_AUDIOSAMPLERATE_48000 sample rates
+ * are supported. The |sample_frame_count| should be the result of calling
+ * RecommendSampleFrameCount. If the sample frame count or bit rate aren't
+ * supported, this function will fail and return a null resource.
+ *
+ * A single sample frame on a stereo device means one value for the left
+ * channel and one value for the right channel.
+ *
+ * Buffer layout for a stereo int16 configuration:
+ * int16_t *buffer16;
+ * buffer16[0] is the first left channel sample
+ * buffer16[1] is the first right channel sample
+ * buffer16[2] is the second left channel sample
+ * buffer16[3] is the second right channel sample
+ * ...
+ * buffer16[2 * (sample_frame_count - 1)] is the last left channel sample
+ * buffer16[2 * (sample_frame_count - 1) + 1] is the last right channel sample
+ * Data will always be in the native endian format of the platform.
+ */
+ PP_Resource (*CreateStereo16Bit)(PP_Instance instance,
+ PP_AudioSampleRate sample_rate,
+ uint32_t sample_frame_count);
+
+ /*
+ * Returns a supported sample frame count closest to the given requested
+ * count. The sample frame count determines the overall latency of audio.
+ * Since one "frame" is always buffered in advance, smaller frame counts
+ * will yield lower latency, but higher CPU utilization.
+ *
+ * Supported sample frame counts will vary by hardware and system (consider
+ * that the local system might be anywhere from a cell phone or a high-end
+ * audio workstation). Sample counts less than PP_AUDIOMINSAMPLEFRAMECOUNT
+ * and greater than PP_AUDIOMAXSAMPLEFRAMECOUNT are never supported on any
+ * system, but values in between aren't necessarily valid. This function
+ * will return a supported count closest to the requested value.
+ *
+ * If you pass 0 as the requested sample count, the recommended sample for
+ * the local system is returned.
+ */
+ uint32_t (*RecommendSampleFrameCount)(PP_AudioSampleRate sample_rate,
+ uint32_t requested_sample_frame_count);
+
+ /**
+ * Returns true if the given resource is an AudioConfig object.
+ */
+ PP_Bool (*IsAudioConfig)(PP_Resource resource);
+
+ /**
+ * Returns the sample rate for the given AudioConfig resource. If the
+ * resource is invalid, this will return PP_AUDIOSAMPLERATE_NONE.
+ */
+ PP_AudioSampleRate (*GetSampleRate)(PP_Resource config);
+
+ /**
+ * Returns the sample frame count for the given AudioConfig resource. If the
+ * resource is invalid, this will return 0. See RecommendSampleFrameCount for
+ * more on sample frame counts.
+ */
+ uint32_t (*GetSampleFrameCount)(PP_Resource config);
+};
+
+#endif /* PPAPI_C_PPB_AUDIO_CONFIG_H_ */
+
Property changes on: ppapi/c/ppb_audio_config.h
___________________________________________________________________
Added: svn:eol-style
+ LF
« no previous file with comments | « ppapi/c/ppb_audio.h ('k') | ppapi/c/trusted/ppb_audio_trusted.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698