我有一个ofPtr (共享指针)项的向量,它指向以ofVideoPlayer对象的形式包含视频的对象。当视频播放完毕(“死”变量设置为true)时,我通过调用向量上的erase()来删除它们及其引用。
vector<ofPtr<videoElement> >::iterator iter = videos.begin();
while (iter != videos.end()) {
(**iter).update();
if ((**iter).dead) {
iter = videos.erase(iter);
} else {
++iter;
}
}该程序运行良好(或似乎运行良好),但是每次调用擦除函数时,我都会得到以下输出:
关键**:gst_mini_object_unref:断言`GST_IS_MINI_OBJECT (mini_object)‘失败
当我一次用videos.clear()清除整个向量时,我似乎没有得到这些输出行,如果这是gstreamer还是指针问题,这会让我感到困惑。
此外,我尝试了不同的视频文件和不同的编解码器(H264,动画,photoJPEG),但都显示相同的输出线。
由于输出线还没有导致任何实际问题,我不太担心,但我想了解这是从哪里来的。
系统: Linux,Ubuntu12.04,Openframeworks和代码块(of_v0.8.0_linux64_release)
发布于 2020-09-03 13:08:37
这与gstreamer0.10-ffmpeg无关。通常,此错误是由对您实际上不拥有的对象调用xxx_unref(some_obj)引起的,该调用将最终调用gst_mini_object_unref()来解构对象的组件。万一还有人被这个错误困扰..。
发布于 2014-08-26 16:36:59
在GStreamer中有一个已知的与此相关的错误,理论上,应该通过安装gstreamer0.10-ffmpeg来修复。
https://stackoverflow.com/questions/19470908
复制相似问题