我基于gstreamer-1.0编写了一个简单的代码,使用playbin对某个文件进行循环解码,并且每次playbin创建元素mpeg2dec元素时,该元素都有一个新名称。最开始的名称可能是“mepg2dec0”,然后再次播放文件时,它将后缀索引增加到“mpeg2dec1”,“mpeg2dec2”等等。
以下是部分代码引用:
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);
这个后缀索引增加是否意味着未释放的元素可能存在内存泄漏?