c++ - gstreamer如何从playbin中取得媒体的MIME类型
天蓬老师
天蓬老师 2017-04-17 11:22:17
[C++讨论组]

使用的是gstreamer0.1, 想要判断当前播放的是不是jpeg/png图片, 现在的代码如下:

bool isImage(GstElement* playbin)
{
    GstBin* bin = GST_BIN_CAST(playbin);
    GstElement* typefind = gst_bin_get_by_name(bin, "typefind");
    if (!typefind) {
        printf("can't find typefind element"\n);
    } else {
        printf("find typefind element"\n);
    }

    GstPad* srcpad = gst_element_get_pad(typefind, "src");
    GstCaps* caps = gst_pad_get_caps(srcpad);
    GstStructure* structure = gst_caps_get_structure(caps, 0);
    const gchar* name = gst_structure_get_name(structure);

    if (strcmp(name, "image/jpeg") == 0 ||
        strcmp(name, "image/png") == 0)
        return true;
    else
        return false;
}

上面函数中,参数playbin是通过gst_element_factory_make("playbin", "play")产生的.

运行结果是使用gst_bin_get_by_name()返回值是NULL,导致后面的gstreamer函数都有问题.

所以想请教:
正确的从playbin中取得当前播放媒体的MIME类型的方法是什么?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(1)
天蓬老师

playbin的管道是暂停之后才建立的,你先把管道暂停之后取得看看

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号