2013-06-18 3 views
0

원시 h264 스트림을 받아 들여 그것을 디코딩하고 렌더링을 전달하는 openmax를 사용하여 비디오 플레이어 파이프 라인을 사용하려고했습니다. 포트를 구성하는 동안 프레임 너비와 프레임 높이를 1280 * 720으로 설정하려고합니다. 그러나 매개 변수를 설정하는 동안 잘못된 매개 변수 오류가 발생했습니다. openmax 구성 요소에있는 포트의 프레임 너비와 프레임 높이를 설정하는 방법.이 프레임 워크의 초보자 인만큼 내 지식은 제한되어 있습니다. 너비와 높이를 설정하기 전에 내가 설정해야 할 다른 일이 있습니까? OMX.broadcom.video_decode 구성 요소에서 비디오 프레임 너비 및 비디오 프레임 높이를 설정하는 방법은 무엇입니까?

내가 매개 변수를

memset(&portdef,0,sizeof(OMX_PARAM_PORTDEFINITIONTYPE)); 
    portdef.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE); 
    portdef.nVersion.nVersion = OMX_VERSION; 
    portdef.nPortIndex = 131; 


    portdef.format.video.nFrameWidth = 1280; 
    portdef.format.video.nFrameHeight = 720; 

    portdef.nBufferSize = portdef.format.video.nFrameWidth * portdef.format.video.nFrameHeight * 3/2; 

    /* set the video decode properties */ 
    if((error = OMX_SetParameter(video_decode,OMX_IndexParamPortDefinition,&portdef)) != OMX_ErrorNone) 
     printf("set parameter error for decoder %x\n",error); 

을 설정하려고 내가

set parameter error for decoder 80001005 

로 오류가 발생되었고, 그 나쁜 매개 변수 오류입니다 방법이다. 왜오고 있니?

답변

0

오류가 OMX_ErrorBadParameter 인 경우 nCountActuals을 0으로 설정했을 수 있습니다.

보드가 오래된 경우 1280x720이 구성 요소에서 지원되는 경우 media_profiles.xml을 확인하는 것이 좋습니다.

하드 코드 nPortIndex이 올바른 값으로 설정되어 있는지 확인하십시오 (오류 발생시 0x8000101B OMX_ErrorBadIndex을 반환해야하지만, 대신 OMX_ErrorBadParameter을 반환 한 구현을 보았습니다).

출력 포트는 131입니까? 그렇다면 색상 형식도 설정해야합니다. 이제 OMX_COLOR_FormatUnused으로 설정됩니다.