mm-audio: amrnb: update test app to handle invalid params
Update test app to report error if bandmode and dtxenable
are not in range. Also update amrwb max framelength to 64 as
amrwb maximum framesize is 64.
Change-Id: Ibd7470a574a0e1fcacd6c15f13b1e98b9963ea73
diff --git a/mm-audio/aenc-amrnb/qdsp6/inc/omx_amr_aenc.h b/mm-audio/aenc-amrnb/qdsp6/inc/omx_amr_aenc.h
index f4fcf8e..64d997b 100644
--- a/mm-audio/aenc-amrnb/qdsp6/inc/omx_amr_aenc.h
+++ b/mm-audio/aenc-amrnb/qdsp6/inc/omx_amr_aenc.h
@@ -135,8 +135,11 @@
#define FALSE 0
#define NUMOFFRAMES 1
-#define MAXFRAMELENGTH 32
-#define OMX_AMR_OUTPUT_BUFFER_SIZE ((NUMOFFRAMES * (sizeof(ENC_META_OUT) + MAXFRAMELENGTH) \
+#define AMRNB_MAXFRAMELENGTH 32
+#define AMRWB_MAXFRAMELENGTH 62
+#define OMX_AMRNB_OUTPUT_BUFFER_SIZE ((NUMOFFRAMES * (sizeof(ENC_META_OUT) + AMRNB_MAXFRAMELENGTH) \
+ + 1))
+#define OMX_AMRWB_OUTPUT_BUFFER_SIZE ((NUMOFFRAMES * (sizeof(ENC_META_OUT) + AMRWB_MAXFRAMELENGTH) \
+ 1))
#define FRAMEDURATION 20000
diff --git a/mm-audio/aenc-amrnb/qdsp6/src/omx_amr_aenc.cpp b/mm-audio/aenc-amrnb/qdsp6/src/omx_amr_aenc.cpp
index 5278671..84e6fce 100644
--- a/mm-audio/aenc-amrnb/qdsp6/src/omx_amr_aenc.cpp
+++ b/mm-audio/aenc-amrnb/qdsp6/src/omx_amr_aenc.cpp
@@ -281,7 +281,6 @@
m_out_act_buf_count (OMX_CORE_NUM_OUTPUT_BUFFERS),
m_inp_current_buf_count(0),
m_out_current_buf_count(0),
- output_buffer_size((OMX_U32)OMX_AMR_OUTPUT_BUFFER_SIZE),
input_buffer_size(OMX_CORE_INPUT_BUFFER_SIZE),
m_session_id(0),
m_inp_bEnabled(OMX_TRUE),
@@ -1136,6 +1135,15 @@
sizeof(component_Role.cRole));
DEBUG_PRINT("\ncomponent_init: Component %s LOADED is invalid\n", role);
}
+
+ if (!amrwb_enable)
+ {
+ output_buffer_size = (OMX_U32)OMX_AMRNB_OUTPUT_BUFFER_SIZE;
+ }
+ else
+ {
+ output_buffer_size = (OMX_U32)OMX_AMRWB_OUTPUT_BUFFER_SIZE;
+ }
if(pcm_input)
{
m_tmp_meta_buf = (OMX_U8*) malloc(sizeof(OMX_U8) *
@@ -1146,12 +1154,22 @@
return OMX_ErrorInsufficientResources;
}
}
- m_tmp_out_meta_buf =
- (OMX_U8*)malloc(sizeof(OMX_U8)*OMX_AMR_OUTPUT_BUFFER_SIZE);
- if ( m_tmp_out_meta_buf == NULL ){
- DEBUG_PRINT_ERROR("Mem alloc failed for out meta buf\n");
- return OMX_ErrorInsufficientResources;
- }
+
+ if (!amrwb_enable)
+ {
+ m_tmp_out_meta_buf =
+ (OMX_U8*)malloc(sizeof(OMX_U8)*OMX_AMRNB_OUTPUT_BUFFER_SIZE);
+ }
+ else
+ {
+ m_tmp_out_meta_buf =
+ (OMX_U8*)malloc(sizeof(OMX_U8)*OMX_AMRWB_OUTPUT_BUFFER_SIZE);
+ }
+
+ if (m_tmp_out_meta_buf == NULL ){
+ DEBUG_PRINT_ERROR("Mem alloc failed for out meta buf\n");
+ return OMX_ErrorInsufficientResources;
+ }
if(!amrwb_enable) {
if(0 == pcm_input)
diff --git a/mm-audio/aenc-amrnb/qdsp6/test/omx_amr_enc_test.c b/mm-audio/aenc-amrnb/qdsp6/test/omx_amr_enc_test.c
index 3448bff..47d67f3 100644
--- a/mm-audio/aenc-amrnb/qdsp6/test/omx_amr_enc_test.c
+++ b/mm-audio/aenc-amrnb/qdsp6/test/omx_amr_enc_test.c
@@ -529,12 +529,28 @@
} else {
DEBUG_PRINT(" invalid format: \n");
DEBUG_PRINT("ex: ./mm-aenc-omxamr-test INPUTFILE OUTPUTFILE Tunnel BANDMODE DTXENABLE RECORDPATH RECORDTIME amrwb_enable \n");
- DEBUG_PRINT("Bandmode 1-7, dtxenable 0-1\n");
+ DEBUG_PRINT("amrnb:Bandmode 1-8 amrwb:Bandmode 0-8, dtxenable 0-1\n");
DEBUG_PRINT("RECORDPATH 0(TX),1(RX),2(BOTH),3(MIC)\n");
DEBUG_PRINT("RECORDTIME in seconds for AST Automation\n");
DEBUG_PRINT("amrwb_enable:1-amrwb 0-amrnb\n");
return 0;
}
+
+ if (!amrwb_enable && (bandmode < 1 || bandmode > 8)) {
+ DEBUG_PRINT("%d Bandmode is not supported for amrnb:supported Bandmodes are 1-8\n",bandmode);
+ return 0;
+ }
+
+ if (amrwb_enable && (bandmode < 0 || bandmode > 8)) {
+ DEBUG_PRINT("%d Bandmode not supported for amrwb:supported Bandmodes are 0-8\n",bandmode);
+ return 0;
+ }
+
+ if (dtxenable != 0 && dtxenable != 1) {
+ DEBUG_PRINT("dtxenable not supported:dtxenable should be 0-1\n");
+ return 0;
+ }
+
if(recpath != 3) {
DEBUG_PRINT("For RECORDPATH Only MIC supported\n");
return 0;