私はYoctoシステムを搭載したVariscite iMX8Mをベースにしたデバイスを持っています。OS が動作している場合、単一の Qt/QML アプリケーションがマルチメディアの再生に応答します。GStreamer 用のパイプラインを準備します。マルチメディア側からのアプリケーションは非常にシンプルです。QML の MediaPlayer コンポーネントに特定のパイプラインを提供します。最終テストを実施しているのですが、長時間の 4K ビデオの再生中に CMA メモリ リークが発生していることに気付きました。ビデオがループ再生され、30 分ごとに次のビデオに切り替わります。約 15 時間後、ビデオの再生が停止し、CMA 空きメモリは 0kB になりました。(1 分後にビデオを変更することで、より速く繰り返すCAN)。ジャーナルには、GStreamer によるメモリ割り当ての問題に関する情報もCAN。U-Boot とカーネルのカスタマイズは単純なものに限定されており、そのようなものには影響しないはずです。これはおそらく gstreamer か vpu ドライバ、あるいは Qt のシステムのバグのようです。興味深いのは、アプリケーションを閉じた後、メモリが元の値 (アプリケーションを実行する前の値) に戻らないことです。
私のシステムは最新のカーネル5.15-2.0を搭載したKirkstoneをベースにしています。(ブランチ: 5.15-2.0.x-imx) および U-Boot (ブランチ: lf_v2022.04)。システムには983.04がありますCMA メモリの合計 MB。
bash ループでビデオを再生するテストを実行しましたが、ここでは問題は発生しませんでした。私の結論は、Qt と Gstreamer の間、または VPU ドライバにあるということです。
解決策はあるでしょうか?他にCANテストはありますか?
添付:
- ブートログ
- ビデオの変更中にカーネルエラーが発生しました
- メモリリークチャート
正しい!
こんにちは、
これはバグのように見えますが、6.12 ではこのようなことは起こりません。EVK で同様のビデオをテストしたところ、すべてがスムーズに動作しました。確認してください。問題が解決しない場合は、Variscite にお問い合わせください。
よろしくお願いします。