i.MX6Q車載用ボードには、2つのビデオ入力を備えた1つのADV7180アナログビデオデコーダがあります。デフォルトでは、入力 1 のみが使用されます (コネクタ J42)。
2つのアナログビデオソースを接続し、それらの間で表示を切り替えるには、次の変更が必要です。
1 - V4L2_capture および ADV7180 デバイス ドライバーで新しい IOCTL を作成して、選択される入力に関する情報をユーザー空間アプリケーションから受け取ります。
2 - この新しい IOCTL では、アナログ・デバイセズのサイトで説明されているADV7180の「Fast Switch Script」を使用します。「ADV7180 Fast Switch Script |エンジニアゾーン
3 - 手順 1 で説明した IOCTL を呼び出すユーザー空間アプリケーションを作成します。
添付を参照してください:
1 - 0001-ADV7180-Adding-input-switch-IOCTL.patch.zip - NXPカーネル4.1.15_1.0.0_gaに適用されるパッチ
2-example2.c.zip -ユーザースペースアプリケーションのソースコード例。ビデオ入力は 2 秒ごとに変更されます。(添付のビデオで作業しているのを参照してください)
3 - example2.zip - Uサービススペースアプリケーション電子実行可能なファイル
4 - Makefile.zip - 例として使用するユーザー空間アプリケーションの Makefile
5 - adv7180_switch.mp4 - アプリケーションを示すビデオ
アプリケーションでは、入力を変更するために VIDIOC_S_CHIP_INPUT IOCTL が呼び出されます。
int input = 0;
if (ioctl(fd_capture_v4l, VIDIOC_S_CHIP_INPUT, &input) < 0) {
printf("VIDIOC_S_CHIP_INPUT failed\n");
return TFAIL;
}
この IOCTL は、ADV7180 ドライバーに追加された ADV7180 Fast Switch スクリプトを呼び出します (添付のパッチを参照)。
ご返信ありがとうございます。
そして、チャンネルを切り替えるためのステップは何ですか?
1. 再生中にチャンネルを切り替えます/dev/video0(gst-launch-1.0 imxv4l2src device=/dev/video0 !autovideosink) が成功し、
ただし、場合によっては、同期信号を待つなど、ディスプレイがしばらく下にスクロールします。
2. 以下の手順で操作すると画面がよくなります。(再生停止->チャンネル切り替え-再生開始>)
結果はデモビデオのように見えます。
それは正しい方法ですか?
Hi wanbenzhou,
申し訳ありませんが、このソースコードはもうありません。私は4.1.15_1.0.0_gaブランチを使用しました。パッチを適用するブランチが同じかどうかを確認してください。
HWについては、i.MX6Q Automotiveボードとそのベースボードを使用しました。あなたは彼らの回路図を持っていますか?
よろしくお願いいたします。
Rogerio
私はあなたのパッチファイルに従って私のファイルにパッチを当てますが、あなたのものとは異なります。
あなたのadv7180.cを共有していただけますかファイル。比較してみます。
そして、あなたのadv7180 '接続回路を共有してください、私はそれといくつかのエラーを持っています。
karinavalencia rogeriopimentel
ありがとうございました。これは私のプロジェクトで非常に役立ちます。
付け。
Hi karinavalencia, ebiz_ws_prod,
添付ファイルがどこに移動されたか知っていますか?もう持っていません。
よろしくお願いいたします。
Rogerio
ファイルが終了せず、検出された可能性があります。
どうすれば手に入れることができますか?