Native Client

pp::AudioConfig Class Reference

A 16 bit stereo AudioConfig resource. More...

Inheritance diagram for pp::AudioConfig:

List of all members.

Public Functions

 AudioConfig ()
 AudioConfig (Instance *instance, PP_AudioSampleRate sample_rate, uint32_t sample_frame_count)
PP_AudioSampleRate sample_rate () const
uint32_t sample_frame_count ()

Static Public Member Functions

static uint32_t RecommendSampleFrameCount (PP_AudioSampleRate sample_rate, uint32_t requested_sample_frame_count)

Detailed Description

A 16 bit stereo AudioConfig resource.

Refer to the Audio chapter in the Developer's Guide for information on using this interface.

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.


Create an audio config with a supported frame count. uint32_t sample_frame_count = AudioConfig::RecommendSampleFrameCount( PP_AUDIOSAMPLERATE_44100, 4096); AudioConfig config(PP_AUDIOSAMPLERATE_44100, sample_frame_count); if (config.is_null()) return false; // Couldn't configure audio.

Then use the config to create your audio resource. Audio audio(instance, config, callback, user_data); if (audio.is_null()) return false; // Couldn't create audio.

Constructor and Destructor Details

pp::AudioConfig::AudioConfig ( )

An empty constructor for an AudioConfig resource.

pp::AudioConfig::AudioConfig ( Instance instance,
PP_AudioSampleRate  sample_rate,
uint32_t  sample_frame_count 

A constructor that creates an audio config based on the given sample rate and frame count.

If the rate and frame count aren't supported, the resulting resource will be is_null(). You can pass the result of RecommendSampleFrameCount() as the sample frame count.

[in]instanceA pointer to an Instance identifying one instance of a module.
[in]sample_rateA PP_AudioSampleRate which is either PP_AUDIOSAMPLERATE_44100 or PP_AUDIOSAMPLERATE_48000.
[in]sample_frame_countA uint32_t frame count returned from the RecommendSampleFrameCount function.

Function Details

static uint32_t pp::AudioConfig::RecommendSampleFrameCount ( PP_AudioSampleRate  sample_rate,
uint32_t  requested_sample_frame_count 
) [static]

RecommendSampleFrameCount() returns a supported frame count closest to the requested count.

The sample frame count determines the overall latency of audio. 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 for use in the constructor.

[in]sample_rateA PP_AudioSampleRate which is either PP_AUDIOSAMPLERATE_44100 or PP_AUDIOSAMPLERATE_48000.
[in]requested_sample_frame_countA uint_32t requested frame count.
A uint32_t containing the recommended sample frame count if successful. If the sample frame count or bit rate is not supported, this function will fail and return 0.
uint32_t pp::AudioConfig::sample_frame_count ( ) [inline]

Getter function for returning the internal sample frame count.

A uint32_t containing the sample frame count.
PP_AudioSampleRate pp::AudioConfig::sample_rate ( ) const [inline]

Getter function for returning the internal PP_AudioSampleRate enum.

The PP_AudioSampleRate enum.

The documentation for this class was generated from the following file:

Authentication required

You need to be signed in with Google+ to do that.

Signing you in...

Google Developers needs your permission to do that.