StageCraft 내에서 사용중인 aac library와 동일한 소스는 구하지 못하고,
대신 http://www.audiocoding.com/ 에서 제공중인 aac decoder를 찾아서
mipsel 용으로 빌드(cross compile) ..
*Faad2-2.7의 libfaad\.libs 폴더에 빌드 되어있는 libfaad.a 라이브러리도 사용.
---------------------------------------------------------------------------------------------------------------------------------------
사용 방법 :
샘플 app :
1) libFaad_out\output\faad
2) libFaad_out\output\libfaad.so.2
3) NFS 환경에서 debug -> sh 진입
$cp libfaad.so.2 /mnt/lib/ |
5) main의 첨부된 테스트용 aac/mp4파일(ct_faac0adts.aac, fishH264_30fps_medium.mp4)을 준비
6) Decoding 실행
$ ./faad –o outfile.wav ct_faac-adts.aac |
7) 결과
- 19.992초(15.032초) 가량의 acc(mp4) 컨텐츠 decoding 2.52초(6.24초) 소요됨
Case 1 ) aac to wav decoding
Case 2 ) mp4 to wav decoding
---------------------------------------------------------------------------------------------------------------------------------------
라이브러리 API 사용 방법 :
라이브러리 :
libfaad.so.2 (shared object)
헤더 :
faad.h , neaacdec.h
사용 API :
1)헤더 포함
#include neaacdec.h
|
2)코덱 헤더 선언
NeAACDecHandle decoder;
|
3)디코더 오픈
decoder = NeAACOpen();
|
4)디코더 초기화
NeAACDecInit2(decoder, buffer, bufferSize, &samplerate, &channels);
|
5)오디오 관련 설정
NeAACDecAudioSpecificConfig(buffer, bufferSize, &mp4ASC);
|
6)디코딩
NeAACDecDecode(decoder, &frameInfo, buffer, bufferSize);
|
7)디코더 종료
NeAACDecClose(decoder);
|
*자세한 샘플은 위의 frontend 폴더의 sample app 코드 참조.
---------------------------------------------------------------------------------------------------------------------------------------
라이브러리 빌드 방법 :
$ ./configure –host=mipsel-linux –prefix=$TPREFIX –without-frontend –without-mp4v2 –without-fp –nfp $ make |
- .env (env 파일은 libfaad 에 맞게 수정했습니다. – C0에서도 사용해도 됨.)
- fixed point 디코딩 방식으로 빌드 옵션을 설정.
(config.h에 #define FIXED_POINT 추가 필요)
---------------------------------------------------------------------------------------------------------------------------------------