Packet Video(PV)라는 회사는 미국 샌디에이고에 있습니다.
멀티미디어 관련 솔루션으로는 능력도 뛰어나고 이 바닥에서는 매우 유명한 회사입니다.
PV는 CORE라는 제품을 만들었고, 이는 매우 다양한 기기들의 미디어 프레임웍으로 사용되었죠.
CORE의 성공 이후, 구글과 손잡고 Open Source 버전의 CORE를 Android에 제공했습니다.
PV도 OHA 멤버이지만, 구글의 펀딩도 상당했었으리라 짐작이 됩니다.
하여간 이 OpenCORE는 안드로이드의 미디어 서브시스템을 담당하고 있습니다.
Git상의 최근 버전은 2.03인듯합니다만, 공식 문서는 2.1 rev1 이네요. 버전 넘버링 오류같군요.
OpenCORE는 Khronos의 OpenMAX 스펙을 지원합니다. 참고로 크로노스는 OpenGL로 유명한 단체입니다.
최근 릴리즈는 디코딩과 엔코딩을 모두 구현하여 3G폰의 화상통화나 HD급 캠코더 기능도 가능하도록 개선되었습니다.
하드웨어 가속 비디오 코덱을 OpenCORE에 추가하기 위해서는 다소 복잡한 과정이 필요한것 같습니다.
우선
http://www.khronos.org/openmax/를 참고하여 OpenMAX IL (Intergration Layer API)를 알아야 합니다.
OpenCORE는 MS의 D-show filter형태나 Gstreamer의 PlugIn 코덱과 유사한 구조로 런타임시 교체가 가능한 구성입니다.
사실 Codec뿐아니라 Parser,Demuxer에서부터 AV Renderer/Mixer까지 모두 plugin 구조를 권장합니다.
기본적인 plugin 구성 규칙과 각 코덱의 상이한 API를 일반화시키는 Wrapper의 형태를 파악하는 것이 주로 해야할일 같습니다.
PV OpenCORE framework과 OpenMAX IL 1.1을 준수하는 AV 코덱들의 실제 구성은 아래 링크 PDF를 참고하세요.
http://android.git.kernel.org/?p=platform/external/opencore.git;a=blob_plain;f=doc/omx_core_integration_guide.pdf;hb=master저도 아직은 수박 겉핥기식이라 대충 흐름만 파악하고 깊이있는 내용은 잘 모릅니다.
다만 완성도 높은 안드로이드 장치를 만든다는 것이 대단히 험난하고 어려운 일이라고만 어렴풋이 알것 같습니다.
읽어야할 문서가 너무 많아 엄두가 나질 않습니다. 봐야할 코드는 그 보다 훨씬 더 많습니다.
안드로이드의 개념은 안드로메다로 떠난지 오래 되었습니다....
블러그도 아닌곳에 블러그 글을 남기고~~
화창한 주말에 여행을 떠납니다. 개념찾으러~~
미국의 버라이즌에 공급되는 단말기라면 거의 필수적으로 들어있습니다.
삼성이나 엘지도 예전에 핸드폰 단말기에 이거 탑재하느라고 미국에 여러명 개발자들을 보내서 호텔방에서
몇개월씩 삽질을 하곤 했습니다.
구글이 패킷 비디오의 오픈버전을 안드로이드에 탑재하게 만들었다는 사건 하나만으로도
미국시장은 거의 안드로이드로 도배질 될것으로 봐도 무방합니다.
그만큼 구글이 노리는 속셈은 스케일이 크다고 할수 있겠습니다.
언제나 그랬지만 모든 사업의 규모가 글로벌하게 움직입니다.
게다가 아이폰이 폐쇄적인 구조를 계속 유지하고 있는데 반해
안드로이드는 거의 모든게 공개되어 있다 시피합니다.
그렇기 때문에 안드로이드가 차후의 핸드셋 단말기 시장에 미칠 파장은
크다고 볼수 밖에 없겠죠.