summaryrefslogtreecommitdiffstats
path: root/libvideoeditor/vss/common/inc/SSRC.h
diff options
context:
space:
mode:
authorDharmaray Kundargi <dharmaray@google.com>2011-01-16 15:59:43 -0800
committerDharmaray Kundargi <dharmaray@google.com>2011-01-17 09:59:01 -0800
commit7c9d8018755adf1857571125ba1b3598c96ea506 (patch)
tree6f97c14846692c0a7580c3a6019f7c91c669ffcf /libvideoeditor/vss/common/inc/SSRC.h
parent5358e878396e1c451e9f9ef07237c2e6ab662d49 (diff)
downloadframeworks_av-7c9d8018755adf1857571125ba1b3598c96ea506.zip
frameworks_av-7c9d8018755adf1857571125ba1b3598c96ea506.tar.gz
frameworks_av-7c9d8018755adf1857571125ba1b3598c96ea506.tar.bz2
Removed unwanted line in M4READER_Amr.h
vss core files upload on honeycomb Change-Id: I61206ae2398ce8ac544c6fb01a76fe8917bce75b
Diffstat (limited to 'libvideoeditor/vss/common/inc/SSRC.h')
-rwxr-xr-xlibvideoeditor/vss/common/inc/SSRC.h297
1 files changed, 297 insertions, 0 deletions
diff --git a/libvideoeditor/vss/common/inc/SSRC.h b/libvideoeditor/vss/common/inc/SSRC.h
new file mode 100755
index 0000000..16ca3f6
--- /dev/null
+++ b/libvideoeditor/vss/common/inc/SSRC.h
@@ -0,0 +1,297 @@
+/*
+ * Copyright (C) 2004-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.
+ */
+
+/****************************************************************************************/
+/* */
+/* Project:: */
+/* %name: SSRC.h % */
+/* */
+/****************************************************************************************/
+
+/*
+ The input and output blocks of the SRC are by default blocks of 40 ms. This means that
+ the following default block sizes are used:
+
+ Fs Default Block size
+ ----- ----------
+ 8000 320
+ 11025 441
+ 12000 480
+ 16000 640
+ 22050 882
+ 24000 960
+ 32000 1280
+ 44100 1764
+ 48000 1920
+
+ An API is provided to change the default block size into any multiple of the minimal
+ block size.
+
+ All the sampling rates above are supported as input and as output sampling rate
+*/
+
+#ifndef __SSRC_H__
+#define __SSRC_H__
+
+/****************************************************************************************
+ INCLUDES
+*****************************************************************************************/
+
+#include "LVM_Types.h"
+
+/****************************************************************************************
+ DEFINITIONS
+*****************************************************************************************/
+
+#define SSRC_INSTANCE_SIZE 548
+#define SSRC_INSTANCE_ALIGNMENT 4
+#define SSRC_SCRATCH_ALIGNMENT 4
+
+/****************************************************************************************
+ TYPE DEFINITIONS
+*****************************************************************************************/
+
+/* Status return values */
+typedef enum
+{
+ SSRC_OK = 0, /* Successful return from a routine */
+ SSRC_INVALID_FS = 1, /* The input or the output sampling rate is
+ invalid */
+ SSRC_INVALID_NR_CHANNELS = 2, /* The number of channels is not equal to mono
+ or stereo */
+ SSRC_NULL_POINTER = 3, /* One of the input pointers is NULL */
+ SSRC_WRONG_NR_SAMPLES = 4, /* Invalid number of samples */
+ SSRC_ALLINGMENT_ERROR = 5, /* The instance memory or the scratch memory
+ is not alligned */
+ SSRC_INVALID_MODE = 6, /* A wrong value has been used for the mode
+ parameter */
+ SSRC_INVALID_VALUE = 7, /* An invalid (out of range) value has been
+ used for one of the parameters */
+ LVXXX_RETURNSTATUS_DUMMY = LVM_MAXENUM
+} SSRC_ReturnStatus_en;
+
+/* Instance memory */
+typedef struct
+{
+ LVM_INT32 Storage [ SSRC_INSTANCE_SIZE/4 ];
+} SSRC_Instance_t;
+
+/* Scratch memory */
+typedef LVM_INT32 SSRC_Scratch_t;
+
+/* Nuber of samples mode */
+typedef enum
+{
+ SSRC_NR_SAMPLES_DEFAULT = 0,
+ SSRC_NR_SAMPLES_MIN = 1,
+ SSRC_NR_SAMPLES_DUMMY = LVM_MAXENUM
+} SSRC_NR_SAMPLES_MODE_en;
+
+/* Instance parameters */
+typedef struct
+{
+ LVM_Fs_en SSRC_Fs_In;
+ LVM_Fs_en SSRC_Fs_Out;
+ LVM_Format_en SSRC_NrOfChannels;
+ LVM_INT16 NrSamplesIn;
+ LVM_INT16 NrSamplesOut;
+} SSRC_Params_t;
+
+
+/****************************************************************************************
+ FUNCTION PROTOTYPES
+*****************************************************************************************/
+
+
+/****************************************************************************************/
+/* */
+/* FUNCTION: SSRC_GetNrSamples */
+/* */
+/* DESCRIPTION: */
+/* This function retrieves the number of samples (or sample pairs for stereo) to be */
+/* used as input and as output of the SSRC module. */
+/* */
+/* PARAMETERS: */
+/* Mode There are two modes: */
+/* - SSRC_NR_SAMPELS_DEFAULT. In this mode, the function */
+/* will return the number of samples for 40 ms blocks */
+/* - SSRC_NR_SAMPELS_MIN will return the minimal number */
+/* of samples that is supported for this conversion */
+/* ratio. Each integer multiple of this ratio will */
+/* be accepted by the SSRC_Init function */
+/* */
+/* pSSRC_Params pointer to the instance parameters */
+/* */
+/* RETURNS: */
+/* SSRC_OK Succeeded */
+/* SSRC_INVALID_FS When the requested input or output sampling rates */
+/* are invalid. */
+/* SSRC_INVALID_NR_CHANNELS When the channel format is not equal to LVM_MONO */
+/* or LVM_STEREO */
+/* SSRC_NULL_POINTER When pSSRC_Params is a NULL pointer */
+/* SSRC_INVALID_MODE When Mode is not a valid setting */
+/* */
+/* */
+/* NOTES: */
+/* */
+/****************************************************************************************/
+
+SSRC_ReturnStatus_en SSRC_GetNrSamples( SSRC_NR_SAMPLES_MODE_en Mode,
+ SSRC_Params_t* pSSRC_Params );
+
+
+/****************************************************************************************/
+/* */
+/* FUNCTION: SSRC_GetScratchSize */
+/* */
+/* DESCRIPTION: */
+/* This function retrieves the scratch size for a given conversion ratio and */
+/* for given buffer sizes at the input and at the output */
+/* */
+/* PARAMETERS: */
+/* pSSRC_Params pointer to the instance parameters */
+/* pScratchSize pointer to the scratch size. The SSRC_GetScratchSize */
+/* function will fill in the correct value (in bytes). */
+/* */
+/* RETURNS: */
+/* SSRC_OK when the function call succeeds */
+/* SSRC_INVALID_FS When the requested input or output sampling rates */
+/* are invalid. */
+/* SSRC_INVALID_NR_CHANNELS When the channel format is not equal to LVM_MONO */
+/* or LVM_STEREO */
+/* SSRC_NULL_POINTER When any of the input pointers is a NULL pointer */
+/* SSRC_WRONG_NR_SAMPLES When the number of samples on the input or on the output */
+/* are incorrect */
+/* */
+/* NOTES: */
+/* */
+/****************************************************************************************/
+
+SSRC_ReturnStatus_en SSRC_GetScratchSize( SSRC_Params_t* pSSRC_Params,
+ LVM_INT32* pScratchSize );
+
+
+/****************************************************************************************/
+/* */
+/* FUNCTION: SSRC_Init */
+/* */
+/* DESCRIPTION: */
+/* This function is used to initialize the SSRC module instance. */
+/* */
+/* PARAMETERS: */
+/* pSSRC_Instance Instance pointer */
+/* */
+/* pSSRC_Scratch pointer to the scratch memory */
+/* pSSRC_Params pointer to the instance parameters */
+/* pInputInScratch, pointer to a location in the scratch memory that can be */
+/* used to store the input samples (e.g. to save memory) */
+/* pOutputInScratch pointer to a location in the scratch memory that can be */
+/* used to store the output samples (e.g. to save memory) */
+/* */
+/* RETURNS: */
+/* SSRC_OK Succeeded */
+/* SSRC_INVALID_FS When the requested input or output sampling rates */
+/* are invalid. */
+/* SSRC_INVALID_NR_CHANNELS When the channel format is not equal to LVM_MONO */
+/* or LVM_STEREO */
+/* SSRC_WRONG_NR_SAMPLES When the number of samples on the input or the output */
+/* are incorrect */
+/* SSRC_NULL_POINTER When any of the input pointers is a NULL pointer */
+/* SSRC_ALLINGMENT_ERROR When the instance memory or the scratch memory is not */
+/* 4 bytes alligned */
+/* */
+/* NOTES: */
+/* 1. The init function will clear the internal state */
+/* */
+/****************************************************************************************/
+
+SSRC_ReturnStatus_en SSRC_Init( SSRC_Instance_t* pSSRC_Instance,
+ SSRC_Scratch_t* pSSRC_Scratch,
+ SSRC_Params_t* pSSRC_Params,
+ LVM_INT16** ppInputInScratch,
+ LVM_INT16** ppOutputInScratch);
+
+
+/****************************************************************************************/
+/* */
+/* FUNCTION: SSRC_SetGains */
+/* */
+/* DESCRIPTION: */
+/* This function sets headroom gain and the post gain of the SSRC */
+/* */
+/* PARAMETERS: */
+/* bHeadroomGainEnabled parameter to enable or disable the headroom gain of the */
+/* SSRC. The default value is LVM_MODE_ON. LVM_MODE_OFF */
+/* can be used in case it can be guaranteed that the input */
+/* level is below -6dB in all cases (the default headroom */
+/* is -6 dB) */
+/* */
+/* bOutputGainEnabled parameter to enable or disable the output gain. The */
+/* default value is LVM_MODE_ON */
+/* */
+/* OutputGain the value of the output gain. The output gain is a linear */
+/* gain value. 0x7FFF is equal to +6 dB and 0x0000 corresponds */
+/* to -inf dB. By default, a 3dB gain is applied, resulting */
+/* in an overall gain of -3dB (-6dB headroom + 3dB output gain)*/
+/* */
+/* RETURNS: */
+/* SSRC_OK Succeeded */
+/* SSRC_NULL_POINTER When pSSRC_Instance is a NULL pointer */
+/* SSRC_INVALID_MODE Wrong value used for the bHeadroomGainEnabled or the */
+/* bOutputGainEnabled parameters. */
+/* SSRC_INVALID_VALUE When OutputGain is out to the range [0;32767] */
+/* */
+/* NOTES: */
+/* 1. The SSRC_SetGains function is an optional function that should only be used */
+/* in rare cases. Preferably, use the default settings. */
+/* */
+/****************************************************************************************/
+
+SSRC_ReturnStatus_en SSRC_SetGains( SSRC_Instance_t* pSSRC_Instance,
+ LVM_Mode_en bHeadroomGainEnabled,
+ LVM_Mode_en bOutputGainEnabled,
+ LVM_INT16 OutputGain );
+
+
+/****************************************************************************************/
+/* */
+/* FUNCTION: SSRC_Process */
+/* */
+/* DESCRIPTION: */
+/* Process function for the SSRC module. */
+/* */
+/* PARAMETERS: */
+/* pSSRC_Instance Instance pointer */
+/* pSSRC_AudioIn Pointer to the input data */
+/* pSSRC_AudioOut Pointer to the output data */
+/* */
+/* RETURNS: */
+/* SSRC_OK Succeeded */
+/* SSRC_NULL_POINTER When one of pSSRC_Instance, pSSRC_AudioIn or pSSRC_AudioOut */
+/* is NULL */
+/* */
+/* NOTES: */
+/* */
+/****************************************************************************************/
+
+SSRC_ReturnStatus_en SSRC_Process( SSRC_Instance_t* pSSRC_Instance,
+ LVM_INT16* pSSRC_AudioIn,
+ LVM_INT16* pSSRC_AudioOut);
+
+/****************************************************************************************/
+
+#endif /* __SSRC_H__ */