2017-04-24 54 views
0

私は、NTSCビデオエンコーダを通してビデオを再生するfpgaをラップするgstbasesinkに基づいて、gstreamerシンクを作成しています。私はirqを介してフレームデータの要求(基本的には、vsync信号)を送る自分のドライバを持っています。ユーザーアプリケーションとして動作するgstreamerプラグインシンクでは、ioctlを介してフレームデータ要求をポーリングします。gstreamerのソースからさらにバッファを要求するには?

vsyncは30fpsに固定され、必要なデータは480x720サイズのYUY2のインターレースデータです。

私が使用しているソースは、60fpsプログレッシブで動作するvideotestsrcです。

私はgstreamerの初心者です。私がしたいのは、vsyncの間に2つのバッファを用意し、render()メソッド内にインターレースすることです。 1つのフルフレームをデバイスに送信します。

私は、1つのvsyncで2つのバッファのソースを "尋ねる"方法を失っています。

答えて

0

あなたが必要以上に仕事をしているような気がしますが、カスタムappsinkを作成してgst_app_sink_pull_sampleを使用していますか?

https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html

+0

私は必要はありません私は、30fpsのインターレース出力していた場合は適切に1つのフレームを表示するプログレッシブ60fpsの?異なった時間にサンプリングされた240ラインの偶数フィールドと240ラインの奇数フィールドの1つのインターレースフレームではありませんか? –

+0

私はこのためにプルモードのシンクを実装しようとしていました。キュー2の要素を使って、どこかでプルモードのsrcパッドを提供することができます。例えば'videotestsrc!ビデオ/ x-raw、フォーマット= YUY2、幅= 720、高さ= 480、フレームレート= 30/1!キュー2!アプリリンク。しかし、私は必要な機能を実装していても、ベースリンクがプルモードとしてアクティブにならない理由を理解することができません。 –

+0

私は30fpsのインターレースを受信した場合、あなたはデインタレーサを介してそれを実行し、プログレッシブ30fpsを出力します(または、インターレースモードで表示されるように設計されたテレビや何かを持っているかもしれません)。 – mpr

関連する問題