After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 603986 - gstdshowvideosink not releasing the filter media event interface
gstdshowvideosink not releasing the filter media event interface
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
0.10.x
Other Windows
: Normal normal
: 0.10.18
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-12-07 15:23 UTC by Stephen McNamara
Modified: 2009-12-09 02:02 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Fixed version of the cpp file. (46.61 KB, text/plain)
2009-12-07 15:23 UTC, Stephen McNamara
Details
Diff created by svn (444 bytes, application/octet-stream)
2009-12-08 09:24 UTC, Stephen McNamara
Details

Description Stephen McNamara 2009-12-07 15:23:25 UTC
Created attachment 149259 [details]
Fixed version of the cpp file.

gstreamer/gst-plugins-bad/tree/sys/dshowvideosink/dshowvideosink.cpp does not release the filter_media_event interface inside gst_dshowvideosink_stop.  Causes threads and memory to leak inside the application.
Fixed file attached.
Comment 1 Michael Smith 2009-12-07 18:26:11 UTC
Can you provide a patch, and let me know if you've actually tested this version?

The other changes (to the header file) were obviously untested.
Comment 2 Stephen McNamara 2009-12-08 09:24:29 UTC
Created attachment 149312 [details]
Diff created by svn

Diff created from OSSBuild branch.
Comment 3 Stephen McNamara 2009-12-08 09:25:20 UTC
The fix to release the filter_media_event interface has been tested in our download of the OSSBuild project.

Simply pasting:

  if (sink->filter_media_event) {
    sink->filter_media_event->Release();
    sink->filter_media_event = NULL;
  }

into the end of 'dshowvideosink_stop (GstBaseSink * bsink)' fixes the issue.

Apologies for the header file error - I manually added the header change to a downloaded version of your main trunk header file.
Comment 4 Michael Smith 2009-12-09 02:02:58 UTC
Thanks a lot. Committed.