2013-10-19 543 views
3

我有指向包含视频对象,在ofVideoPlayer对象的形式ofPtr(共享指针)项的载体。当视频播放完毕('dead'变量设置为true)时,我通过在矢量上调用erase()来删除它们以及它们的参考。的GStreamer-CRITICAL **:gst_mini_object_unref:断言`GST_IS_MINI_OBJECT(mini_object)”失败

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)

+0

请说明你称之为“视频文件”是什么?他们是GstCaps吗?或GstBuffers? –

+0

它们是ofVideoPlayer类的实例。仔细查看源代码,我认为它们是建立在GstCaps之上的。 – evsc

回答

0

有GStreamer的一个已知的bug,与此相关的,其在理论上,应该通过安装gstreamer0.10-ffmpeg固定。

Source