首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Qt在覆盆子上应用的奇怪行为

Qt在覆盆子上应用的奇怪行为
EN

Stack Overflow用户
提问于 2015-09-16 09:17:48
回答 1查看 559关注 0票数 0

我交叉编译了Raspberry pi的Qt和带有平台xcb和eglfs的QtMultimedia和GStreer1.0支持

现在,如果我运行一个应用程序来使用platform eglfs播放视频,它会运行并播放视频,如果我使用平台xcb作为应用程序,则会出现视频链接不工作的错误。

那么,如何使用xcb插件播放视频呢?

我所犯的错误是

代码语言:javascript
运行
复制
xvimagesink xvimagesink.c:1443:gst_xvimagesink_get_xv_support:<xvimagesink1> error: Could not initialise Xv output

xvimagesink xvimagesink.c:1443:gst_xvimagesink_get_xv_support:<xvimagesink1> error: No port available

我正在开发Raspbian armv7

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-17 09:13:59

好的,我会写一个答案,而不是成堆的评论。

您可以尝试在看到的xvimagesink函数中更改QGstreamerVideoWidget在这里的源代码。

有趣的是,如果xvimagesink不工作的话,就已经有备用的接近链接了。我会尝试自动录像连接,它应该总是有效的。

代码语言:javascript
运行
复制
void QGstreamerVideoWidgetControl::createVideoWidget()
{
    if (m_widget)
        return;

    m_widget = new QGstreamerVideoWidget;

    m_widget->installEventFilter(this);
    m_windowId = m_widget->winId();

    /// --- CHANGED HERE (xvimagesink -> autovideosink) -----
    m_videoSink = gst_element_factory_make ("autovideosink", NULL); 
    if (m_videoSink) { /// --- maybe this if is not needed anymore ---
        // Check if the xv sink is usable
        if (gst_element_set_state(m_videoSink, GST_STATE_READY) != GST_STATE_CHANGE_SUCCESS) {
            gst_object_unref(GST_OBJECT(m_videoSink));
            m_videoSink = 0;
        } else {
            gst_element_set_state(m_videoSink, GST_STATE_NULL);

            g_object_set(G_OBJECT(m_videoSink), "force-aspect-ratio", 1, (const char*)NULL);
        }
    }

    if (!m_videoSink)
        m_videoSink = gst_element_factory_make ("ximagesink", NULL);

    qt_gst_object_ref_sink(GST_OBJECT (m_videoSink)); //Take ownership
}

或者它的QGstreamerVideoWindow在这里再次用自动视频链接取代xvimagesink,也许会有所帮助。

我不知道你的代码到底在使用什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32604413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档