static void gst_dshowvideosrc_dispose (GObject * gobject) { GstDshowVideoSrc *src = GST_DSHOWVIDEOSRC (gobject); if (src->device) { g_free (src->device); src->device = NULL; } if (src->device_name) { g_free (src->device_name); src->device_name = NULL; } if (src->caps) { gst_caps_unref (src->caps); src->caps = NULL; } if (src->pins_mediatypes) { gst_dshow_free_pins_mediatypes (src->pins_mediatypes); src->pins_mediatypes = NULL; } /* clean dshow */ if (src->video_cap_filter) { src->video_cap_filter->Release (); src->video_cap_filter = NULL; } if (src->buffer_mutex) { g_mutex_free (src->buffer_mutex); src->buffer_mutex = NULL; } if (src->buffer_cond) { g_cond_free (src->buffer_cond); src->buffer_cond = NULL; } if (src->buffer) { gst_buffer_unref (src->buffer); src->buffer = NULL; } CoUninitialize (); G_OBJECT_CLASS (parent_class)->dispose (gobject); }
static void gst_dshowaudiosrc_dispose (GObject * gobject) { GstDshowAudioSrc *src = GST_DSHOWAUDIOSRC (gobject); if (src->device) { g_free (src->device); src->device = NULL; } if (src->device_name) { g_free (src->device_name); src->device_name = NULL; } if (src->caps) { gst_caps_unref (src->caps); src->caps = NULL; } if (src->pins_mediatypes) { gst_dshow_free_pins_mediatypes (src->pins_mediatypes); src->pins_mediatypes = NULL; } if (src->gbarray) { g_byte_array_free (src->gbarray, TRUE); src->gbarray = NULL; } if (src->gbarray_lock) { g_mutex_free (src->gbarray_lock); src->gbarray_lock = NULL; } /* clean dshow */ if (src->audio_cap_filter) { IBaseFilter_Release (src->audio_cap_filter); } CoUninitialize (); G_OBJECT_CLASS (parent_class)->dispose (gobject); }