4

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

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)

4

2 回答 2

0

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

于 2020-09-03T13:08:37.897 回答
-2

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

资源

于 2014-08-26T16:36:59.660 回答