Memory leaks 后缀索引递增的gstreamer元素是否意味着可能存在内存泄漏?
我基于gstreamer-1.0编写了一个简单的代码,使用playbin对循环的某个文件进行解码,每次playbin创建元素mpeg2dec元素时,该元素都有一个新名称。第一次使用的名称可以是mepg2dec0,然后当再次播放文件时,它会将后缀索引增加到mpeg2dec1、mpeg2dec2,等等 以下是一些代码引用:Memory leaks 后缀索引递增的gstreamer元素是否意味着可能存在内存泄漏?,memory-leaks,element,gstreamer,playbin2,Memory Leaks,Element,Gstreamer,Playbin2,我基于gstreamer-1.0编写了一个简单的代码,使用playbin对循环的某个文件进行解码,每次playbin创建元素mpeg2dec元素时,该元素都有一个新名称。第一次使用的名称可以是mepg2dec0,然后当再次播放文件时,它会将后缀索引增加到mpeg2dec1、mpeg2dec2,等等 以下是一些代码引用: do { playbin=gst_element_factory_make("playbin", "play"); g_object_set(G_OBJECT(p
do {
playbin=gst_element_factory_make("playbin", "play");
g_object_set(G_OBJECT(playbin), "uri", "file:///home/gst/Videos/1.ts", NULL);
/* add message receivers ... */
gst_element_set_state(GST_ELEMENT(playbin), GST_STATE_PAUSED);
gst_element_set_state(GST_ELEMENT(playbin), GST_STATE_PLAY);
/* wait until got EOS */
gst_element_set_state(GST_ELEMENT(playbin), GST_STATE_PAUSED);
gst_element_set_state(GST_ELEMENT(playbin), GST_STATE_NULL);
gst_object_unref(GST_ELEMENT(playbin));
} while(1);
后缀索引的增加是否意味着未释放的元素可能存在内存泄漏 后缀的递增主要意味着有东西跟踪当前后缀 gstreamer可以分配所有元素并维护它们的列表。 添加新元素时,gstreamer可以检查当前分配的元素名称,并基于此知识生成一个新的元素名称,例如,首先尝试将mepg2dec0作为名称,如果已经使用,则尝试mepg2dec1等,直到找到可用名称 然而,这也可以是每个elementtype的一个整数,即在创建新元素时单调增加无索引重用,而完全忽略是否以及哪些元素被销毁 所以要回答你的问题:
不,每个元素都有一个新名称并不表示是否存在内存泄漏。我希望没有内存泄漏,但是,某些元素的名称保持不变: