2013-08-27 2 views
1

추가하는 OMX 코어를 등록하는 방법 :난 후 말하는 겁니다 새로운 디코더

Android: How to integrate a decoder to multimedia framework

내가 media_codecs.xml에 (현재 안드로이드에서 지원되지 않습니다) 나의 새로운 디코더를 등록하여 다음을 .

위 게시물의 2 단계에서 수행 할 작업은 OMX 핵심어 등록입니다. 그러나, 나는이 주제에 대해 정말 처음부터 2 단계를 따라갈 수 없다.

나는 C로 디코더의 작업 코드를 가지고 있으며, 이미 안드로이드로 이식되어있다. 현재 로이드 지원하지 않는 디코더 위해 OMX 코드 등록 프리폼

  • 단계별 가이드 : 누구에 대한 정보를 제공 할 수 있는지

    그래서 요청할.

  • 내가 소스 트리에서 내 작업 C 코드를 배치해야
  • 방법에 가

  • 마지막으로, 내가 ICS 코드와
    에서 일하고 있어요 말할 싶습니다 컴파일 컴파일러를 지정 디코더 소스 코드의 출력은 YUV420입니다.

누구나 위의 질문에 대한 지침을 제공해주십시오. 미리 감사드립니다.

+0

[이미 사용 가능한 코덱] (https://www.codeaurora.org/cgit/quic/la/platform/frameworks/av/tree/media/libstagefright/codecs?h=jb_mr1)의 구조를 살펴보십시오.) 및 MIME 형식이 [OMXCodec 클래스] (https://www.codeaurora.org/cgit/quic/la/platform/frameworks/av/tree/media/libstagefright/OMXCodec.cpp?)에 의해 적절한 코덱에 매핑되는 방법을 설명합니다. h = jb_mr1). – Michael

+0

@ 마이클 : 답장을 보내 주셔서 감사합니다. 따라서 OMXCodec 클래스에서만 수행해야하는 변경 사항은 무엇입니까? 나는 잘 모르겠다. 이미 나는이 분야에 대해 거의 경험이 없다고 말했다. 몇 가지 세부 사항을 알고 계시다면 대답으로 제공해주십시오. – sam

+0

필요한 변경 사항 만 _ 나는지는 잘 모르겠습니다. 그러나 적어도 그것이 출발점으로 작용할 수 있다고 생각했습니다. – Michael

답변

5

자신 만의 OMX Core을 갖고 있지 않다면, 아래에 설명 된대로 SoftOMXComponent 플러그인 자체에 코덱을 추가하는 것을 고려해 볼 수 있습니다.

참고 :이 대답은 당신이 부분 AOSP 코드의을 다시 컴파일 할 수있는 능력을 가지고 플랫폼에 재건 된 라이브러리를를 대체 할 수 있다고 가정합니다.

1 단계 :

{ "OMX.sam.custom.h264.decoder", "sam_h264dec", "video_decoder.avc" } 
다음

"OMX.sam.custom.h264.decoder" 아래와 같이 here을 같이

소스 파일 SoftOMXComponent에서 OMX 구성 요소의 등록, "sam_h264dec" 접미사를 나타내고, 구성 요소 이름을 나타냅니다 구성 요소 이름을 추가 파일 시스템에 저장된 라이브러리 이름 (아래 참조) 및 "video_decoder.avc"은 디코더의 역할을 나타내며이 예제에서는입니다비디오 디코더.

2 단계 :

귀하의 OMX 구성 요소 이름이 "libstagefright_soft_sam_h264dec.so" 될 것이며 /시스템/파일 시스템의 lib 디렉토리에 배치해야 동적으로로드 가능한 라이브러리로 구축되어야한다 라이브러리의 생성.

3 단계 :

Stagefright 프레임 워크 코드가 구성 요소를 만들 createSoftOMXComponent라는 기호를 찾습니다 구성 요소의 생성. 따라서 2 단계에서 언급 한 코덱 라이브러리가이 기능을 지원해야합니다.

이러한 단계와 귀하의 코덱이 확장명과 호환된다고 가정하면 디코더를 통합 할 수 있어야합니다.

팁 1 : 구성 요소를 항상 선택하려면 1 단계에서 설명한 구성 요소 이름이 표시된 참조의 kComponents 배열 맨 위에 등록되어 있는지 확인하십시오.

팁 2 : 더 동적으로로드 가능한 라이브러리의 생성의 주제에 알고 싶은 경우 here을 같이, 당신은 GSM Decoder 코드를 참조 할 수있다.

+0

답장을 보내 주셔서 감사합니다. 당신이 언급 한 예제에서, 그것은 GSM Decoder입니다, 나는 내 코드가 소스 트리의/Codecs/myDec 디렉토리에 있어야한다고 가정합니다. 이 가정은 사실입니까? 두 번째 의심, 어떻게 내 코덱 라이브러리 createSoftOMXComponent 기호를 지원합니까? 이것에 대한 간단한 예 또는 참고 문헌은 저에게 구원자가 될 것입니다. 제발 도와주세요 .. – sam

+0

@ Ganesh in step-2 libstagefright_soft_sam_h264dec.so를 만드는 데 필요한 소스 파일은 무엇입니까? 무엇 - h.264 디코더 소스 코드와 OMX 구성 요소 통합 소스 파일 및 헤더 파일을 이해합니까? AOSP에서 어떤 것이 필요합니까? – Mohan

+0

@Mohan ..'libstagefright_soft_sam_h264dec.so'는 질문의 창안자가 작성한 __customized version__의 디코더였습니다. 커스텀'소프트웨어'기반'디코더 '를 개발하지 않는 한,이 단계는 필요하지 않습니다. 내가 명확하게 알기를 바란다 – Ganesh