summaryrefslogtreecommitdiffstats
path: root/libvideoeditor/lvpp/VideoEditorBGAudioProcessing.h
diff options
context:
space:
mode:
authorDharmaray Kundargi <dharmaray@google.com>2011-01-16 16:02:42 -0800
committerDharmaray Kundargi <dharmaray@google.com>2011-01-16 19:09:33 -0800
commit643290dc4c83da23b1b8ff4ed71118203274bb15 (patch)
treefd23ca748eca6352c665c6dba3b625e1679d61c4 /libvideoeditor/lvpp/VideoEditorBGAudioProcessing.h
parent5358e878396e1c451e9f9ef07237c2e6ab662d49 (diff)
downloadframeworks_av-643290dc4c83da23b1b8ff4ed71118203274bb15.zip
frameworks_av-643290dc4c83da23b1b8ff4ed71118203274bb15.tar.gz
frameworks_av-643290dc4c83da23b1b8ff4ed71118203274bb15.tar.bz2
videoeditor preview code on honeycomb
Change-Id: I9c3c9cb921ea697ab16732973d26ef9035cda2ee
Diffstat (limited to 'libvideoeditor/lvpp/VideoEditorBGAudioProcessing.h')
-rwxr-xr-xlibvideoeditor/lvpp/VideoEditorBGAudioProcessing.h96
1 files changed, 96 insertions, 0 deletions
diff --git a/libvideoeditor/lvpp/VideoEditorBGAudioProcessing.h b/libvideoeditor/lvpp/VideoEditorBGAudioProcessing.h
new file mode 100755
index 0000000..851a133
--- /dev/null
+++ b/libvideoeditor/lvpp/VideoEditorBGAudioProcessing.h
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2011 NXP Software
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "M4OSA_Error.h"
+#include "M4OSA_Types.h"
+#include "M4OSA_Memory.h"
+#include "M4OSA_Export.h"
+#include "M4OSA_CoreID.h"
+
+namespace android{
+
+#define WINDOW_SIZE 10
+
+enum veAudioFormat {MONO_16_BIT, STEREO_16_BIT};
+
+
+typedef struct {
+ M4OSA_UInt16* m_dataAddress; // Android SRC needs a Int16 pointer
+ M4OSA_UInt32 m_bufferSize;
+} M4AM_Buffer;
+
+// Following struct will be used by app to supply the PT and BT properties
+// along with ducking values
+typedef struct {
+ M4OSA_Int32 lvInSampleRate; // Sampling audio freq (8000,16000 or more )
+ M4OSA_Int32 lvOutSampleRate; //Sampling audio freq (8000,16000 or more )
+ veAudioFormat lvBTFormat;
+
+ M4OSA_Int32 lvInDucking_threshold;
+ M4OSA_Float lvInDucking_lowVolume;
+ M4OSA_Bool lvInDucking_enable;
+ M4OSA_Float lvPTVolLevel;
+ M4OSA_Float lvBTVolLevel;
+ M4OSA_Int32 lvBTChannelCount;
+ M4OSA_Int32 lvPTChannelCount;
+} veAudMixSettings;
+
+// This class is defined to get SF SRC access
+class VideoEditorBGAudioProcessing {
+public:
+ VideoEditorBGAudioProcessing();
+ void veSetAudioProcessingParams(veAudMixSettings mixParams);
+ M4OSA_Int32 veProcessAudioMixNDuck(void* , void *, void *);
+
+protected:
+ ~VideoEditorBGAudioProcessing();
+
+private:
+ M4OSA_Int32 mInSampleRate;
+ M4OSA_Int32 mOutSampleRate;
+ veAudioFormat mBTFormat;
+
+ M4OSA_Bool mIsSSRCneeded;
+ M4OSA_Int32 mBTChannelCount;
+ M4OSA_Int32 mPTChannelCount;
+ M4OSA_UInt8 mChannelConversion;
+
+ M4OSA_UInt32 mDucking_threshold;
+ M4OSA_Float mDucking_lowVolume;
+ M4OSA_Float mDuckingFactor ;
+ M4OSA_Bool mDucking_enable;
+ M4OSA_Int32 mAudioVolumeArray[WINDOW_SIZE];
+ M4OSA_Int32 mAudVolArrIndex;
+ M4OSA_Bool mDoDucking;
+ M4OSA_Float mPTVolLevel;
+ M4OSA_Float mBTVolLevel;
+
+ M4AM_Buffer mPTBuffer;
+ M4AM_Buffer mBTBuffer;
+ M4AM_Buffer mOutMixBuffer;
+ M4OSA_Int16 *mTempBuffer;
+ M4OSA_Int32 mTempFrameCount;
+
+ M4OSA_Int32 getDecibelSound(M4OSA_UInt32 value);
+ M4OSA_Bool isThresholdBreached(M4OSA_Int32* averageValue,
+ M4OSA_Int32 storeCount, M4OSA_Int32 thresholdValue);
+
+ // This returns the size of buffer which needs to allocated
+ // before resampling is called
+ M4OSA_Int32 calculateOutResampleBufSize();
+};
+} // namespace android