GStreamer-CRITICAL **:gst_mini_object_unref:断言`GST_IS_MINI_OBJECT(mini_object)'失败

时间:2013-10-19 20:40:06

标签: c++ gstreamer openframeworks

我有一个ofPtr(共享指针)项向量,指向包含视频的对象,形式为ofVideoPlayer个对象。当视频完成播放('dead'变量设置为true)时,我通过调用向量上的erase()删除它们及其引用。

vector<ofPtr<videoElement> >::iterator iter = videos.begin();
while (iter != videos.end()) {
    (**iter).update();
    if ((**iter).dead) {
        iter = videos.erase(iter);
    } else {
        ++iter;
    }
}

程序运行正常(或似乎),但每次调用擦除函数时,我都会得到此输出:

  

GStreamer-CRITICAL **:gst_mini_object_unref:断言   `GST_IS_MINI_OBJECT(mini_object)'失败

当我用videos.clear()一次清除整个矢量时,我似乎没有获得这些输出行,如果这是gstreamer或指针问题,这会让我感到困惑。

另外,我尝试过使用不同的视频文件和不同的编解码器(H264,动画,photoJPEG),但都显示相同的输出行。

由于输出线尚未导致任何实际问题,我不太关心,但我想了解它的来源。

系统: Linux,Ubuntu 12.04,带有代码块的Openframeworks(of​​_v0.8.0_linux64_release)

2 个答案:

答案 0 :(得分:0)

GStreamer中存在一个与此相关的已知错误,理论上应该通过安装gstreamer0.10-ffmpeg来解决。

Source

答案 1 :(得分:0)

gstreamer0.10-ffmpeg无关。通常,此错误是由您实际上不拥有的对象上调用xxx_unref(some_obj)引起的,并且该调用最终将调用gst_mini_object_unref()来解构对象的组件。万一有人仍然被这个错误困扰...