summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs/aacenc/SampleCode/AAC_E_SAMPLES.c
diff options
context:
space:
mode:
Diffstat (limited to 'media/libstagefright/codecs/aacenc/SampleCode/AAC_E_SAMPLES.c')
-rw-r--r--media/libstagefright/codecs/aacenc/SampleCode/AAC_E_SAMPLES.c566
1 files changed, 283 insertions, 283 deletions
diff --git a/media/libstagefright/codecs/aacenc/SampleCode/AAC_E_SAMPLES.c b/media/libstagefright/codecs/aacenc/SampleCode/AAC_E_SAMPLES.c
index 774da7b..2ea9449 100644
--- a/media/libstagefright/codecs/aacenc/SampleCode/AAC_E_SAMPLES.c
+++ b/media/libstagefright/codecs/aacenc/SampleCode/AAC_E_SAMPLES.c
@@ -1,283 +1,283 @@
-/*
- ** Copyright 2003-2010, VisualOn, Inc.
- **
- ** 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.
- */
-/*******************************************************************************
- File: AAC_E_SAMPLES.h
-
- Content: sample code for AAC encoder
-
-*******************************************************************************/
-
-#include <dlfcn.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include "voAAC.h"
-#include "cmnMemory.h"
-
-#define VO_AAC_E_OUTPUT 1
-#define READ_SIZE (1024*8)
-unsigned char outBuf[1024*8];
-unsigned char inBuf[READ_SIZE];
-
-const char* HelpString =
-"VisualOn AAC encoder Usage:\n"
-"voAACEncTest -if <inputfile.pcm> -of <outputfile.aac> -sr <samplerate> -ch <channel> -br <bitrate> -adts <adts> \n"
-"-if input file name \n"
-"-of output file name \n"
-"-sr input pcm samplerate, default 44100 \n"
-"-ch input pcm channel, default 2 channel \n"
-"-br encoded aac bitrate, default 64000 * (samplerate/100)*channel/441(480)\n"
-"-adts add or no adts header, default add adts header\n"
-"For example: \n"
-"./voAACEncTest -if raw.pcm -of raw.aac -sr 44100 -ch 2 -br 128000\n";
-
-static int parsecmdline(int argc, char **argv,char **input_filename, char **output_filename, AACENC_PARAM *param)
-{
- // notice that:
- // bitRate/nChannels > 8000
- // bitRate/nChannels < 160000
- // bitRate/nChannels < sampleRate*6
- param->adtsUsed = 1;
- param->bitRate = 0;
- param->nChannels = 2;
- param->sampleRate = 44100;
-
- if(argc < 5 || argc > 13)
- {
- return -1;
- }
-
- argc--;
- argv++;
- while (argc > 0)
- {
- if (!strcmp(*argv, "-if"))
- {
- argv++;
- argc--;
- *input_filename = *argv;
- }
- else if (!strcmp(*argv, "-of"))
- {
- argv++;
- argc--;
- *output_filename = *argv;
- }
- else if (!strcmp(*argv, "-sr"))
- {
- argv++;
- argc--;
- param->sampleRate = atoi(*argv);
- }
- else if (!strcmp(*argv, "-ch"))
- {
- argv++;
- argc--;
- param->nChannels = atoi(*argv);
- }
- else if (!strcmp(*argv, "-br"))
- {
- argv++;
- argc--;
- param->bitRate = atoi(*argv);
- }
- else if(!strcmp(*argv, "-adts"))
- {
- argv++;
- argc--;
- param->adtsUsed = atoi(*argv);
- }
- else
- {
- return -1;
- }
-
- argv++;
- argc--;
- }
-
- if(param->bitRate == 0)
- {
- int scale = 441;
- if(param->sampleRate%8000 == 0)
- scale = 480;
- param->bitRate = 640*param->nChannels*param->sampleRate/scale;
- }
-
- return 0;
-}
-
-int ReadFile2Buf(FILE* infile,unsigned char* dest,int readSize)
-{
- int readBytes = 0;
- readBytes = fread(dest, 1, readSize, infile);
- return readBytes;
-}
-
-typedef int (VO_API * VOGETAUDIODECAPI) (VO_AUDIO_CODECAPI * pDecHandle);
-
-int main(int argc, char **argv)
-{
- FILE *infile, *outfile;
- int t1, t2;
- VO_AUDIO_CODECAPI AudioAPI;
- VO_MEM_OPERATOR moper;
- VO_CODEC_INIT_USERDATA useData;
- VO_HANDLE hCodec;
- VO_CODECBUFFER inData;
- VO_CODECBUFFER outData;
- VO_AUDIO_OUTPUTINFO outInfo;
- int firstWrite = 1;
- int eofFile = 0;
- int *info=(int*)inBuf;
- int bytesLeft, nRead;
- int EncoderdFrame = 0;
- int total = 0;
- int isOutput = 1;
- int returnCode;
- AACENC_PARAM aacpara;
- void *handle;
- void *pfunc;
- VOGETAUDIODECAPI pGetAPI;
- const char *infileName = NULL;
- const char *outfileName = NULL;
-
- returnCode = parsecmdline(argc,argv, &infileName, &outfileName, &aacpara);
- if(returnCode)
- {
- printf("%s", HelpString);
- return 0;
- }
-
- /* open input file */
- infile = fopen(infileName, "rb");
- if (!infile) {
- printf("Open input file fail...");
- return -1;
- }
-
- /* open output file */
- if(isOutput)
- {
- outfile = fopen(outfileName, "wb");
- if (!outfile) {
- printf("Open output file fail...");
- return -1;
- }
- }
- // set memory operators;
- moper.Alloc = cmnMemAlloc;
- moper.Copy = cmnMemCopy;
- moper.Free = cmnMemFree;
- moper.Set = cmnMemSet;
- moper.Check = cmnMemCheck;
- useData.memflag = VO_IMF_USERMEMOPERATOR;
- useData.memData = (VO_PTR)(&moper);
- // open encoder dll;
- handle = dlopen("libstagefright.so", RTLD_NOW);
- if(handle == 0)
- {
- printf("open dll error......");
- return -1;
- }
- // Get API;
- pfunc = dlsym(handle, "voGetAACEncAPI");
- if(pfunc == 0)
- {
- printf("open function error......");
- return -1;
- }
- pGetAPI = (VOGETAUDIODECAPI)pfunc;
- returnCode = pGetAPI(&AudioAPI);
- if(returnCode)
- return -1;
-
-
-//####################################### Init Encoding Section #########################################
- returnCode = AudioAPI.Init(&hCodec, VO_AUDIO_CodingAAC, &useData);
- if(returnCode < 0)
- {
- printf("#### VOI_Error2:fail to initialize the Encoderr###\n");
- return -1;
- }
-
- returnCode = AudioAPI.SetParam(hCodec, VO_PID_AAC_ENCPARAM, &aacpara);
-
- inData.Buffer = inBuf;
- bytesLeft = ReadFile2Buf(infile,inData.Buffer,READ_SIZE);
-
-//####################################### Encoding Section #########################################
-
- do {
-
- inData.Length = bytesLeft;
- outData.Buffer = outBuf;
- outData.Length = 1024*8;
-
- t1 = clock();
-
- returnCode = AudioAPI.SetInputData(hCodec,&inData);
-
- do {
- outData.Buffer = outBuf;
- outData.Length = 1024*8;
-
- returnCode = AudioAPI.GetOutputData(hCodec,&outData, &outInfo);
-
- if(returnCode == 0)
- EncoderdFrame++;
- if(returnCode == VO_ERR_LICENSE_ERROR)
- break;
-
-#if VO_AAC_E_OUTPUT
- if (isOutput && returnCode == 0)
- {
- fwrite(outData.Buffer, 1, outData.Length, outfile);
- }
-#endif
- } while(returnCode != (VO_ERR_INPUT_BUFFER_SMALL));
-
- if(returnCode == VO_ERR_LICENSE_ERROR)
- break;
-
- t2 = clock();
- total += t2 - t1;
-
- if (!eofFile) {
- nRead = ReadFile2Buf(infile, inBuf,READ_SIZE);
- bytesLeft = nRead;
- inData.Buffer = inBuf;
- if (feof(infile))
- eofFile = 1;
- }
-
- } while (!eofFile && returnCode);
-
-
-//################################################ End Encoding Section #######################################################
- returnCode = AudioAPI.Uninit(hCodec);
-
- fclose(infile);
- if (outfile)
- {
- fclose(outfile);
- }
- dlclose(handle);
- return 0;
-}
-
-
+/*
+ ** Copyright 2003-2010, VisualOn, Inc.
+ **
+ ** 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.
+ */
+/*******************************************************************************
+ File: AAC_E_SAMPLES.h
+
+ Content: sample code for AAC encoder
+
+*******************************************************************************/
+
+#include <dlfcn.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include "voAAC.h"
+#include "cmnMemory.h"
+
+#define VO_AAC_E_OUTPUT 1
+#define READ_SIZE (1024*8)
+unsigned char outBuf[1024*8];
+unsigned char inBuf[READ_SIZE];
+
+const char* HelpString =
+"VisualOn AAC encoder Usage:\n"
+"voAACEncTest -if <inputfile.pcm> -of <outputfile.aac> -sr <samplerate> -ch <channel> -br <bitrate> -adts <adts> \n"
+"-if input file name \n"
+"-of output file name \n"
+"-sr input pcm samplerate, default 44100 \n"
+"-ch input pcm channel, default 2 channel \n"
+"-br encoded aac bitrate, default 64000 * (samplerate/100)*channel/441(480)\n"
+"-adts add or no adts header, default add adts header\n"
+"For example: \n"
+"./voAACEncTest -if raw.pcm -of raw.aac -sr 44100 -ch 2 -br 128000\n";
+
+static int parsecmdline(int argc, char **argv,char **input_filename, char **output_filename, AACENC_PARAM *param)
+{
+ // notice that:
+ // bitRate/nChannels > 8000
+ // bitRate/nChannels < 160000
+ // bitRate/nChannels < sampleRate*6
+ param->adtsUsed = 1;
+ param->bitRate = 0;
+ param->nChannels = 2;
+ param->sampleRate = 44100;
+
+ if(argc < 5 || argc > 13)
+ {
+ return -1;
+ }
+
+ argc--;
+ argv++;
+ while (argc > 0)
+ {
+ if (!strcmp(*argv, "-if"))
+ {
+ argv++;
+ argc--;
+ *input_filename = *argv;
+ }
+ else if (!strcmp(*argv, "-of"))
+ {
+ argv++;
+ argc--;
+ *output_filename = *argv;
+ }
+ else if (!strcmp(*argv, "-sr"))
+ {
+ argv++;
+ argc--;
+ param->sampleRate = atoi(*argv);
+ }
+ else if (!strcmp(*argv, "-ch"))
+ {
+ argv++;
+ argc--;
+ param->nChannels = atoi(*argv);
+ }
+ else if (!strcmp(*argv, "-br"))
+ {
+ argv++;
+ argc--;
+ param->bitRate = atoi(*argv);
+ }
+ else if(!strcmp(*argv, "-adts"))
+ {
+ argv++;
+ argc--;
+ param->adtsUsed = atoi(*argv);
+ }
+ else
+ {
+ return -1;
+ }
+
+ argv++;
+ argc--;
+ }
+
+ if(param->bitRate == 0)
+ {
+ int scale = 441;
+ if(param->sampleRate%8000 == 0)
+ scale = 480;
+ param->bitRate = 640*param->nChannels*param->sampleRate/scale;
+ }
+
+ return 0;
+}
+
+int ReadFile2Buf(FILE* infile,unsigned char* dest,int readSize)
+{
+ int readBytes = 0;
+ readBytes = fread(dest, 1, readSize, infile);
+ return readBytes;
+}
+
+typedef int (VO_API * VOGETAUDIODECAPI) (VO_AUDIO_CODECAPI * pDecHandle);
+
+int main(int argc, char **argv)
+{
+ FILE *infile, *outfile;
+ int t1, t2;
+ VO_AUDIO_CODECAPI AudioAPI;
+ VO_MEM_OPERATOR moper;
+ VO_CODEC_INIT_USERDATA useData;
+ VO_HANDLE hCodec;
+ VO_CODECBUFFER inData;
+ VO_CODECBUFFER outData;
+ VO_AUDIO_OUTPUTINFO outInfo;
+ int firstWrite = 1;
+ int eofFile = 0;
+ int *info=(int*)inBuf;
+ int bytesLeft, nRead;
+ int EncoderdFrame = 0;
+ int total = 0;
+ int isOutput = 1;
+ int returnCode;
+ AACENC_PARAM aacpara;
+ void *handle;
+ void *pfunc;
+ VOGETAUDIODECAPI pGetAPI;
+ const char *infileName = NULL;
+ const char *outfileName = NULL;
+
+ returnCode = parsecmdline(argc,argv, &infileName, &outfileName, &aacpara);
+ if(returnCode)
+ {
+ printf("%s", HelpString);
+ return 0;
+ }
+
+ /* open input file */
+ infile = fopen(infileName, "rb");
+ if (!infile) {
+ printf("Open input file fail...");
+ return -1;
+ }
+
+ /* open output file */
+ if(isOutput)
+ {
+ outfile = fopen(outfileName, "wb");
+ if (!outfile) {
+ printf("Open output file fail...");
+ return -1;
+ }
+ }
+ // set memory operators;
+ moper.Alloc = cmnMemAlloc;
+ moper.Copy = cmnMemCopy;
+ moper.Free = cmnMemFree;
+ moper.Set = cmnMemSet;
+ moper.Check = cmnMemCheck;
+ useData.memflag = VO_IMF_USERMEMOPERATOR;
+ useData.memData = (VO_PTR)(&moper);
+ // open encoder dll;
+ handle = dlopen("libstagefright.so", RTLD_NOW);
+ if(handle == 0)
+ {
+ printf("open dll error......");
+ return -1;
+ }
+ // Get API;
+ pfunc = dlsym(handle, "voGetAACEncAPI");
+ if(pfunc == 0)
+ {
+ printf("open function error......");
+ return -1;
+ }
+ pGetAPI = (VOGETAUDIODECAPI)pfunc;
+ returnCode = pGetAPI(&AudioAPI);
+ if(returnCode)
+ return -1;
+
+
+//####################################### Init Encoding Section #########################################
+ returnCode = AudioAPI.Init(&hCodec, VO_AUDIO_CodingAAC, &useData);
+ if(returnCode < 0)
+ {
+ printf("#### VOI_Error2:fail to initialize the Encoderr###\n");
+ return -1;
+ }
+
+ returnCode = AudioAPI.SetParam(hCodec, VO_PID_AAC_ENCPARAM, &aacpara);
+
+ inData.Buffer = inBuf;
+ bytesLeft = ReadFile2Buf(infile,inData.Buffer,READ_SIZE);
+
+//####################################### Encoding Section #########################################
+
+ do {
+
+ inData.Length = bytesLeft;
+ outData.Buffer = outBuf;
+ outData.Length = 1024*8;
+
+ t1 = clock();
+
+ returnCode = AudioAPI.SetInputData(hCodec,&inData);
+
+ do {
+ outData.Buffer = outBuf;
+ outData.Length = 1024*8;
+
+ returnCode = AudioAPI.GetOutputData(hCodec,&outData, &outInfo);
+
+ if(returnCode == 0)
+ EncoderdFrame++;
+ if(returnCode == VO_ERR_LICENSE_ERROR)
+ break;
+
+#if VO_AAC_E_OUTPUT
+ if (isOutput && returnCode == 0)
+ {
+ fwrite(outData.Buffer, 1, outData.Length, outfile);
+ }
+#endif
+ } while(returnCode != (VO_ERR_INPUT_BUFFER_SMALL));
+
+ if(returnCode == VO_ERR_LICENSE_ERROR)
+ break;
+
+ t2 = clock();
+ total += t2 - t1;
+
+ if (!eofFile) {
+ nRead = ReadFile2Buf(infile, inBuf,READ_SIZE);
+ bytesLeft = nRead;
+ inData.Buffer = inBuf;
+ if (feof(infile))
+ eofFile = 1;
+ }
+
+ } while (!eofFile && returnCode);
+
+
+//################################################ End Encoding Section #######################################################
+ returnCode = AudioAPI.Uninit(hCodec);
+
+ fclose(infile);
+ if (outfile)
+ {
+ fclose(outfile);
+ }
+ dlclose(handle);
+ return 0;
+}
+
+