使用gstreamer1播放的视频之间需要释放什么内存

时间:2015-03-12 23:26:00

标签: c memory-leaks gstreamer

我在我的程序中使用gstreamer1。我有四个元素:filesrc,decodebin,autovideosink,autoaudiosink。

当添加了解码器上的新打击垫时,它会连接到视频链接或音频链接。

int display_video(char* path, GstInfo *gst_info){  
    if(!gst_info->pipeline)  
        return 0;  

    GstStateChangeReturn ret;
    g_object_set(gst_info->source, "location", path, NULL);
    ret = gst_element_set_state (gst_info->pipeline, GST_STATE_PLAYING);
    if (ret == GST_STATE_CHANGE_FAILURE) {
        g_printerr ("Unable to set the pipeline to the playing state.\n");
        gst_object_unref (gst_info->pipeline);
        return 0;
    }
    return 1;

}

这是我启动视频的方式

static void display_video_eos (GstBus *bus, GstMessage *msg, DisplayInfo *dinfo) {
    gst_element_set_state(dinfo->ginfo->pipeline, GST_STATE_READY);    
    notify_rest_of_program();
}

我觉得在再次调用display_video之前应该有一些我自由的资源。一旦我开始循环,它会像疯了一样泄漏内存。有什么建议吗?

0 个答案:

没有答案