diff options
author | Jean-Michel Trivi <jmtrivi@google.com> | 2012-03-02 14:34:10 -0800 |
---|---|---|
committer | Jean-Michel Trivi <jmtrivi@google.com> | 2012-03-05 10:59:38 -0800 |
commit | 8162c1a9f4df4bf4733e78f5b03398b2991ba79a (patch) | |
tree | e6381a284850cab09068411ae8570fd784775b5a /libvideoeditor | |
parent | 90b6191067990a7a3ee947d7ce08c64f780f0de7 (diff) | |
download | frameworks_av-8162c1a9f4df4bf4733e78f5b03398b2991ba79a.zip frameworks_av-8162c1a9f4df4bf4733e78f5b03398b2991ba79a.tar.gz frameworks_av-8162c1a9f4df4bf4733e78f5b03398b2991ba79a.tar.bz2 |
Set channel mask when opening audio sink
Update the code to use the AudioSink::open() interface that
takes a channel mask as an additional parameter. The code
is only stereo, and returns an error when attempting to create
a video editor audio sink with more than two channels.
Change-Id: Ib9bba067da0b286c08656976b89fba7c8b42f99f
Diffstat (limited to 'libvideoeditor')
-rwxr-xr-x | libvideoeditor/lvpp/VideoEditorAudioPlayer.cpp | 2 | ||||
-rwxr-xr-x | libvideoeditor/lvpp/VideoEditorPlayer.cpp | 22 | ||||
-rwxr-xr-x | libvideoeditor/lvpp/VideoEditorPlayer.h | 2 |
3 files changed, 19 insertions, 7 deletions
diff --git a/libvideoeditor/lvpp/VideoEditorAudioPlayer.cpp b/libvideoeditor/lvpp/VideoEditorAudioPlayer.cpp index 219b849..66800ea 100755 --- a/libvideoeditor/lvpp/VideoEditorAudioPlayer.cpp +++ b/libvideoeditor/lvpp/VideoEditorAudioPlayer.cpp @@ -511,7 +511,7 @@ status_t VideoEditorAudioPlayer::start(bool sourceAlreadyStarted) { if (mAudioSink.get() != NULL) { status_t err = mAudioSink->open( - mSampleRate, numChannels, AUDIO_FORMAT_PCM_16_BIT, + mSampleRate, numChannels, CHANNEL_MASK_USE_CHANNEL_ORDER, AUDIO_FORMAT_PCM_16_BIT, DEFAULT_AUDIOSINK_BUFFERCOUNT, &VideoEditorAudioPlayer::AudioSinkCallback, this); if (err != OK) { diff --git a/libvideoeditor/lvpp/VideoEditorPlayer.cpp b/libvideoeditor/lvpp/VideoEditorPlayer.cpp index fa2834a..cb2edde 100755 --- a/libvideoeditor/lvpp/VideoEditorPlayer.cpp +++ b/libvideoeditor/lvpp/VideoEditorPlayer.cpp @@ -383,7 +383,8 @@ status_t VideoEditorPlayer::VeAudioOutput::getPosition(uint32_t *position) { } status_t VideoEditorPlayer::VeAudioOutput::open( - uint32_t sampleRate, int channelCount, audio_format_t format, int bufferCount, + uint32_t sampleRate, int channelCount, audio_channel_mask_t channelMask, + audio_format_t format, int bufferCount, AudioCallback cb, void *cookie) { mCallback = cb; @@ -413,14 +414,26 @@ status_t VideoEditorPlayer::VeAudioOutput::open( frameCount = (sampleRate*afFrameCount*bufferCount)/afSampleRate; + if (channelMask == CHANNEL_MASK_USE_CHANNEL_ORDER) { + switch(channelCount) { + case 1: + channelMask = AUDIO_CHANNEL_OUT_MONO; + break; + case 2: + channelMask = AUDIO_CHANNEL_OUT_STEREO; + break; + default: + return NO_INIT; + } + } + AudioTrack *t; if (mCallback != NULL) { t = new AudioTrack( mStreamType, sampleRate, format, - (channelCount == 2) ? - AUDIO_CHANNEL_OUT_STEREO : AUDIO_CHANNEL_OUT_MONO, + channelMask, frameCount, 0 /* flags */, CallbackWrapper, @@ -430,8 +443,7 @@ status_t VideoEditorPlayer::VeAudioOutput::open( mStreamType, sampleRate, format, - (channelCount == 2) ? - AUDIO_CHANNEL_OUT_STEREO : AUDIO_CHANNEL_OUT_MONO, + channelMask, frameCount); } diff --git a/libvideoeditor/lvpp/VideoEditorPlayer.h b/libvideoeditor/lvpp/VideoEditorPlayer.h index 88a2aeb..34f9bc5 100755 --- a/libvideoeditor/lvpp/VideoEditorPlayer.h +++ b/libvideoeditor/lvpp/VideoEditorPlayer.h @@ -49,7 +49,7 @@ class VideoEditorPlayer : public MediaPlayerInterface { virtual int getSessionId(); virtual status_t open( - uint32_t sampleRate, int channelCount, + uint32_t sampleRate, int channelCount, audio_channel_mask_t channelMask, audio_format_t format, int bufferCount, AudioCallback cb, void *cookie); |