Qtではplaybin2で計算した後にvideosinkを置き換えています。
正しく置換えられず?fakesink が繋がれているようなのですが、
置換え処理は、QGstreamerPlayerSession::setVideoRenderer でしょうか?
サンプルのvideowidget起動時の出力です。再生後もfakesinkのままです。
~ # /usr/local/Qt-5.3.2/examples/multimediawidgets/videowidget/videowidget
QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed
QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed
void QGstreamerPlayerSession::setVideoRenderer(QObject*)
(videowidget:985): GStreamer-CRITICAL **: gst_object_ref_sink: assertion 'GST_IS_OBJECT (object)' failed
Set video output: QGstreamerVideoWidgetControl(0xd2668)
Current sink: fakesink0 0xba568 pending: 0x0 new sink: fakesink0 0xba568
Video sink has not changed, skip video output reconfiguration
This plugin does not support setParent!
This plugin does not support setParent!
:
Qt sink側で対応している形式はこのテーブルでしょうか?
static const YuvFormat qt_yuvColorLookup[] =
{
{ QVideoFrame::Format_YUV420P, GST_MAKE_FOURCC('I','4','2','0'), 8 },
{ QVideoFrame::Format_YV12, GST_MAKE_FOURCC('Y','V','1','2'), 8 },
{ QVideoFrame::Format_UYVY, GST_MAKE_FOURCC('U','Y','V','Y'), 16 },
{ QVideoFrame::Format_YUYV, GST_MAKE_FOURCC('Y','U','Y','2'), 16 },
{ QVideoFrame::Format_NV12, GST_MAKE_FOURCC('N','V','1','2'), 8 },
{ QVideoFrame::Format_NV21, GST_MAKE_FOURCC('N','V','2','1'), 8 },
{ QVideoFrame::Format_AYUV444, GST_MAKE_FOURCC('A','Y','U','V'), 32 }
};
videowidget を起動/再生させても、get_caps()は呼ばれていないようなのですが、
何か呼び出すコマンドのようなものがありますか?
以上、よろしくお願いします。