RK3588 MPP、GRA、DRM、QT MPP デコード

        RK3588の作業が完了してからしばらく時間が経ちました。他のコンテンツで忙しかったため、関連するコンテンツの更新が間に合いませんでした。今日、何人かの友人が購読しているのを見たので、この章のコンテンツを更新し、サポートを購読してくれた友人全員に感謝した。メモをとるのにも使われます。

        前回、rockit の API を使用すると、デコードおよび表示アプリケーションのセットを迅速に構築できるが、QT はビデオの上にフロートできないと述べました。後はMPP、RGA、DRMから実装していきます。rockitの具体的な実装にはこだわらないようにします。ご存知の方がいらっしゃいましたら、ご教示いただければ幸いです。完成したら作業してみます。 , ブログでシェアさせていただきます。

         MPP の具体的な内容については、RK が提供する公式ドキュメントを確認してください。MPP について概要を説明します MPP は、入力されたソースデータを実際にデコードまたはエンコードして出力します。デコードされたフレームまたはエンコードされたファイルを取得するには、MPP によって指定されたデータ構造に従って入出力するだけで済みます。入力、出力、およびデコードされたフレームを処理する方法は何ですか? アプリケーション層には複数の方法があります。1 つは ffmpeg を使用し、もう 1 つは別の方法です。 gstreamer を使用できます。また、自分で処理して、必要に応じて操作することもできます。この記事では、主に MPP のデコード操作を自分の必要に応じて説明します。

        1. デコーダを初期化します。複数のチャネルを同時にデコードする必要がある場合は、対応する数のデコーダを初期化する必要があります。私は 8 チャネル h265 デコードを使用しており、遅延は約 200ms です。このコードはコードの抜粋です。完全に実装するには、一部のコンテンツを自分で変更する必要があります。

int ret = 0;

MppPacket mPkt;

mPktBuf = 新しい文字[PKT_SIZE];

//mPktとmPktBufの関係に注目してください。mPkt には mPktBuf を指すポインタがあります

    ret = mpp_packet_init(&mPkt, mPktBuf, PKT_SIZE);
    もし(戻る)

おすすめ

転載: blog.csdn.net/dreamliweiming/article/details/130981283