오픈코어란? 패킷비디오에 의해 제공되는 안드로이드의 멀티미디어 프레임웍입니다. 이것은 멀티미디어 렌더링 , 오쏘링 그리고 비디오 텔레포니(3G - 324M)를 위해 확장가능한 프레임웍을 제공합니다.
아래는 이것을 쉽게 이해하기 위하여 만든 디렉토리 구조의 퀵 오버뷰입니다.
__ |-- android [Contains the components the interface OpenCORE with | other parts of Android] |-- baselibs [Contains basic libraries for data containers, MIME string | handling, messaging across thread boundaries, etc] |-- build_config [Contains top-level build files used to build the libraries | outside of Android] |-- codecs_v2 [Contains the implementations of PV's audio and video | codecs as well as the OpenMax IL interface layer] |-- doc [Contains the documentation required to interface with | OpenCORE] |-- engines [Contains the implementation of the player and author | engines as well as a utility for metadata.] |-- extern_libs_v2 [Contains 3rd-party libraries used by OpenCORE. | Currently this directory contains header files | defining the Khronos OpenMax IL interface] |-- extern_tools_v2 [Contains 3rd-party tools used to build OpenCORE | indpendently of the Android build system] |-- fileformats [Contains the libraries for parsing a variety of | fileformats including mp4/3gp,mp3,wav,aac.] |-- modules [Contains build files for aggregating low-level libraries] |-- nodes [Contains the OpenCORE framework "nodes", which is | the abstraction used to implement independent multimedia | processing units that can be connected in a flow graph] |-- oscl [This is the Operating System Compatibility Layer which | provides the mapping OS APIs as well as some basic | data structures and utilities.] |-- protocols [Contains parsers and composers for a variety of network | protocols such as HTTP, RTP/RTCP, RTSP, and SDP] |-- pvmi [Contains fundamental definitions that make up OpenCORE. | The directory name is an abbreviation of PacketVideo | Multimedia Infrastructure] |-- tools_v2 [Contains tools used to build the libraries outside of Android]
각각의 라이브러리 안에는 몇가지 예외적인 사항을 제외하고는 다음과 같은 디렉토리 구조들로 구성되어 있습니다.
__ |-- build |-- make <- makefile to build outside of Android is here |-- doc <- directory for any documentation specific to this lib |-- include <- header files that are part of the external interface go here |-- src <- source and internal header files of the library |-- test <- test code (follows a similar structure. |-- build |-- make |-- include |-- src
오픈코어 관련 문서파일들을 파일첨부하여 놓았습니다.
white_duck
2009-02-28 18:38
좋은 자료 감사합니다...
아..근데 한글로 된 글이 있었으면...
저같은 초보에게는 보는데 더 좋았을것 같네요....
라고...그냥 바래 봅니다..^^;;
불타는주작
2009-03-02 11:42
아직은 화상전화를 하기 위한 적극적인 모습은 보이지 않는거 같네요..
마인부우
2009-03-02 11:52
아..문서가 업데이트 되면서 조금 증가 되었네요. 좋은 정보 감사드립니다.
오픈코어를 보고 있는데 너무 자료가 부족하네요.
역시 소스 보는 수 밖에 없을 듯 해요. ㅋ
마인부우
2009-03-02 12:00
크게 pv2way 부분이 추가 되었네요. 혹시 이게 뭔지 아시는 분 있나요? ^^
TaekLove
2009-03-02 14:01
고맙습니다. 이런 좋은 자료.감사합니다. 안드로이드 관련된 PDF가 많이있다면 좋은것같은데요~
혹시 안드로이드 XML 자료도 있나요?..
인베인
2009-03-02 17:15
마인부우님 DoxGen을 십분활용하시면 도움이 되지 싶습니다.
Log Subsystem을 이용한 디버깅 관련하여 몇가지 댓글 드립니다.
./opencour/android/ 디렉토리의 android_logger_config.h 헤더파일에
LOG Sub system관련 함수가 있습니다. ReadAndParseLoggerConfigFile() 함수에
보면 아래와 같이 코드가 추가 되었음을 볼수 있습니다.
아래의 코드로 이미지를 만들면 됩니다.
Fedoar9#> make -j ENABLE_PV_LOGGING=1
안드로이드
2009-03-02 20:37
방대한 자료 감사합니다.
OpenCORE가 Khronos사의 OpenMAX와 어떤 관계가 있는 건가요?
제가 알기에 OpenMAX도 미디어 프레임워크로 DL(Device Layer), AL(Application Layer), IL(Integration Layer)로 구성되어 있습니다. OpenCORE내용을 보면 OpenMAX도 언급이 되는데 그 상관관계가 좀 애매해서요.
참고로 ARM사에서 유일하게 OpenMAX를 포팅할 수 있는 DL(Device Layer)를 제공한다고 하네요.
인베인
2009-03-02 22:36
DL (Development Layer) --->O
DL (Device Layer) ----------->X 이것이 올바른 약어이지 싶습니다.
오픈코어가 멀티미디어 플랫폼이고, 오픈맥스는( openGL이 소프트웨어가 아니고 표준인것처럼...) 크로노스그룹이 만든 오픈맥스 워킹그룹에 의한 미디어 라이브러리 이식성을 위한 표준인것을 감안하면 자연스레 2개의 relationship이 그려지시리라 봅니다.
알다시피, PacketVideo(PV)회사가 OHA회원사 자격으로 안드로이드 오픈코어 2.0을 최근에 안드로이드를 위해 릴리즈 했습니다.
그래서 이때 오픈코어 2.0은 오픈맥스 IL(integration layer)을 사용하여 인코더를 위한 목적으로 지원을 했었습니다.
그리고, 칩개발자분들을 이미 아시겠지만,
ARM사가 몇개월전에 OHA회원사로 추가 합류되면서 자사의 ARMv6 / ARMv7 아키텍처 기반 OpenMax DL(Development Layer)라이브러리와 ARM® CPU 및 ARM Mali™ GPU 아키텍처 관련 지식을 안드로이드 오픈 소스 프로젝트에 기부하기로 했습니다.
이것이 차기 안드로이드의 화려한 비쥬얼라이제이션 기능에 얼마나 강력한 힘을 넣을지는 우리 모두가 지켜보아야겠죠....
p.s; 안드로이드님. 타겟보드 아답터잘보관해놓고있으니,시간이 되실때 찾아가세요.. ^^
안드로이드
2009-03-02 23:18
아, 네 잘 알았습니다.
그리고 DL은 Development Layer가 맞습니다. 역쉬.....고수앞에서는 신중하게....
아답터는 조만간에 가지러 가겠습니다. 간다간다 하면서도 ....그것이 참.
마인부우
2009-03-03 13:07
《Re》인베인 님 ,
아, 감사드립니다 PVlogger를 어떻게 쓰는지 몰라 엄청 고생했는데..이런 방법이 있네요.
이 로그는 ddms를 통해 이클립스 창에서 볼수 있는 건가요?
아니면 터미널 창 같은 창에서 확인이 가능한 가요? ^^
인베인
2009-03-03 14:04
네. 디바이스의 캡쳐 정보, 디바이스의 쓰레드 및 힙정보 , logcat( using logger subsystem) ,프로세스 정보 , radio 상태정보, 호출정보(예:SMS), 위치데이터 정보 등의 디버깅 정보를 이클립스에 플러그인되는 DDMS라는 달빅 디버그 모니터링 서비를 통해 출력합니다. 에뮬에이터에 DDMS가 기본적으로 내장되어 있을 겁니다. 이클립스 미사용자라면 리눅스 콘솔에서 "Fedora9#> ./ddms" 명령을..... (하지만, 아시다시피 애플리케이션 개발상황만이 아닌, 실제 상용제품 개발단계에서는 수직구조의 레이어를 왔다갔다하면서 온갓 오픈소스를 최대한 잘활용해야되죠....)