iMX.8QuadMaxで実行し、私は、HEVCフレームをデコードし、それを「glupload」、つまりEGL_imageに裏打ちされたGLテクスチャを生成できるGstreamer要素に渡すGstreamerパイプラインをデプロイしようとしています。
glupload は、デバッグおよびログ出力に基づいて、DMA バッファーから EGL イメージを作成するときに正しいパラメーターを設定しているようです。
ただし、デコードされたフレームを GLES 内でレンダリングしようとすると、EGL_image で裏付けられたテクスチャからサンプリングすると、次のエラーが発生します。
[ 1] ES30:一部の描画取得エラーと検証中にスキップ
また、テクスチャからサンプリングするドロー中にSEGFAULTが発生することがあります。呼び出し履歴は次のとおりです。
#0 0x0000fffff5a48e68 で ??()を/usr/lib/libGAL.soから
#1 gcoSURF_DisableTileStatus() の 0x0000fffff59edcb4 (/usr/lib/libGAL.so から)
#2 gco3D_SetTarget () の 0x0000fffff5a036e8 /usr/lib/libGAL.so から
何が問題なのかを理解するのに助けてもらえますか?
問題を解決しました。Gstreamerプラグインは、レンダリングコンテキストを共有する代わりに独自のGLコンテキストを使用していたため、レンダリングコンテキストで有効なテクスチャIDであるにもかかわらず、取得していたテクスチャIDは実際には同じオブジェクトではありませんでした。したがって、これらのテクスチャを EGLImage の外部バッキング テクスチャとしてサンプリングしようとすると、エラーが発生しました。
メモリスペースの制限だとは思いません。テクスチャは200x200 RGBAです。再生中のビデオストリームには3つのフレームがあります。これは合計でわずか 160KB です。
Gstreamerのガイドを読みました。主に gst-launch を使用したパイプラインの構築について説明しており、ここでは役に立ちません。
「一部の抽選でエラーが発生し、検証中にスキップされました」とはどういう意味ですか?実際の*エラー*の詳細を取得するにはどうすればよいですか?
私もVIV_DEBUG=-MSG_LEVEL:WARNINGを試しましたが、新しいものは何も印刷されませんでした。