Embedded S/W/Codecs

libffd2 (AAC codec) mipsel 포팅

욱_스 2010. 12. 3. 11:50

 

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 추가 필요)

 

 

---------------------------------------------------------------------------------------------------------------------------------------