0

生のh264ストリームを受け入れてデコードし、レンダリングに渡すopenmaxを使用して、ビデオプレーヤーパイプラインを試していました。ポートの構成中に、フレームの幅と高さを 1280 * 720 に設定したいのですが、パラメーターの設定中にパラメーター エラーが発生しました。openmax コンポーネントでポートのフレーム幅とフレーム高さを設定する方法、これらのフレームワークの初心者として、私の知識は限られています。幅と高さを設定する前に設定する必要がある他のフィールドはありますか?

これは私がパラメータを設定しようとした方法です

    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

それが不正なパラメータ エラーです。なぜそれが来るのですか?

4

1 に答える 1

0

エラーはです。ゼロOMX_ErrorBadParameterに設定したことが原因である可能性があります。nCountActuals

ボードが古い場合、コンポーネントで 1280x720 がサポートされているかどうか、media_profiles.xml を確認する価値があります。

ハードコーディングnPortIndexされた値が正しい値に設定されているかどうかを確認します (OMX_ErrorBadIndexエラーの場合は 0x8000101B を返す必要がありますが、代わりに返される実装を見ましたOMX_ErrorBadParameter)。

131は出力ポートですか?その場合は、カラー フォーマットも設定する必要があります。現在は に設定されていOMX_COLOR_FormatUnusedます。

于 2013-12-20T12:39:37.723 に答える