Armadilloフォーラム

GStreamer videoboxによるオフセット表示

ce_fono

2015年9月10日 11時52分

セントラルエンジニアリングの本田です。

Armadillo-840液晶開発モデルのLCDの一部分に映像を座標オフセット付きで表示しようと、手始めに以下のコマンドを試しましたがエラーとなり実行出来ませんでした。
Armadillo-840同梱のvideoboxには制限事項があるのでしょうか。代替策があれば教示下さい。
GStreamerは勉強中なのでコマンドが間違っているのかもしれません。ご指摘頂ければ幸いです。

実行したコマンドとエラー表示です。

[root@armadillo840-0 (ttySC2) ~]# gst-launch-1.0 videotestsrc ! video/x-raw,width=400,height=240 ! videobox left=-20 right=-380 top=-220 bottom=-20 ! video/x-raw,width=800,height=480 ! fbdevsink device=/dev/fb0
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2812): gst_base_src_loop (): /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0:
streaming task paused, reason not-negotiated (-4)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
[root@armadillo840-0 (ttySC2) ~]#

同様のコマンドをUbuntu 14.04で試すと期待通りの表示が行われます。画像キャプチャを添付します(videobox_ubuntu1404.jpg)。
gst-launch-1.0 videotestsrc ! video/x-raw,width=400,height=240 ! videobox left=-20 right=-380 top=-220 bottom=-20 !  video/x-raw,width=800,height=480 ! autovideosink

双方のGStreamerのバージョンを比べました。

Armadillo-840 gst-inspect1.0  1.0.8
              videobox        1.0.8
Ubuntu 14.04  gst-inspect1.0  1.2.4
              videobox        1.2.4

よろしくお願い致します。

ファイル ファイルの説明
videobox_ubuntu1404.jpg Ubuntu 14.04 videobox テスト画像
コメント

at_shota.tamura

2015年9月11日 10時08分

田村です。

全く同じパイプラインをこちらの Armadillo-840 で試してたところ、動作しました。
添付の写真のような表示で期待通りかと思います。

このことから、gstreamer 1.0.8 による制限とは考えにくいです。

動作確認に使用したイメージはすべて、
現在 Armadillo サイト [1]で公開されている標準イメージを使いました。

* 使用したイメージ
- kernel: linux-a840-v1.11.bin.gz
- userland: romfs-a840-v1.09.img.gz
- bootloader: loader-armadillo840-nor-v3.6.0.bin

問題を切り分けるために、まずは標準イメージに書き直して動作確認していただけますか?

また、LCD に表示するのであれば /dev/fb1 だと思うのですが、
これは、カーネルの書き換えなどによる意図的なものでしょうか?

[1]: http://armadillo.atmark-techno.com/armadillo-840/downloads

ファイル ファイルの説明
videobox_LCD.JPG

お世話になります、本田です。

> 問題を切り分けるために、まずは標準イメージに書き直して動作確認していただけますか?

標準イメージでは正常に表示されました。
基本を忘れてしまい申し訳ございません。

> また、LCD に表示するのであれば /dev/fb1 だと思うのですが、
> これは、カーネルの書き換えなどによる意図的なものでしょうか?

はい。LCD表示用のLCDCを2画面合成に設定して使用しています。

  /dev/fb0 LCD カメラ等映像表示用 RGB565
  /dev/fb1 LCD Qt GUI表示用 RGB24
  /dev/fb2 HDMI

表示できなかった原因は弊社装置の/dev/fb0の色空間RGB565にvideoboxが非対応だった為でした。
パイプラインのvideoboxの前後にvideoconvertを挿入することで表示に成功しました。

gst-launch-1.0 videotestsrc ! video/x-raw,width=400,height=240 ! videoconvert ! videobox left=-20 right=-380 top=-220 bottom=-20 ! video/x-raw,width=800,height=480 ! videoconvert ! fbdevsink device=/dev/fb0