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 592209 - [GstPad] Deprecated markers missing in the header for internal links function related things
[GstPad] Deprecated markers missing in the header for internal links function...
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other All
: Normal minor
: 0.10.25
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-08-18 12:46 UTC by Sebastian Dröge (slomo)
Modified: 2009-08-21 17:19 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
gstpad-deprecate-internal-links.diff (2.63 KB, patch)
2009-08-18 12:46 UTC, Sebastian Dröge (slomo)
committed Details | Review
multiqueue-iterate-pads.diff (5.53 KB, patch)
2009-08-18 12:47 UTC, Sebastian Dröge (slomo)
committed Details | Review
tools-iterate-pads.diff (1.67 KB, patch)
2009-08-18 12:47 UTC, Sebastian Dröge (slomo)
committed Details | Review
selector-internal-links.diff (8.85 KB, patch)
2009-08-18 19:46 UTC, Sebastian Dröge (slomo)
committed Details | Review
good-rtp-iterate-links.diff (15.00 KB, patch)
2009-08-19 15:01 UTC, Sebastian Dröge (slomo)
committed Details | Review
bad-iterate-pads.diff (8.68 KB, patch)
2009-08-19 15:21 UTC, Sebastian Dröge (slomo)
committed Details | Review

Description Sebastian Dröge (slomo) 2009-08-18 12:46:05 UTC
Hi,
GST_PAD_INTLINKFUNC(), gst_pad_set_internal_link_function, gst_pad_get_internal_links, gst_pad_get_internal_links_default are still in the public gstpad.h header and not inside a GST_DISABLE_DEPRECATED block although they're deprecated.

Adding such a block there has some other problems though, like core elements still using it ;)

Patches follow...
Comment 1 Sebastian Dröge (slomo) 2009-08-18 12:46:25 UTC
Created attachment 141063 [details] [review]
gstpad-deprecate-internal-links.diff
Comment 2 Sebastian Dröge (slomo) 2009-08-18 12:47:01 UTC
Created attachment 141064 [details] [review]
multiqueue-iterate-pads.diff

This is completely untested but *should* work I guess. Does someone know an easy way to check if it works? :)
Comment 3 Sebastian Dröge (slomo) 2009-08-18 12:47:17 UTC
Created attachment 141065 [details] [review]
tools-iterate-pads.diff
Comment 4 Sebastian Dröge (slomo) 2009-08-18 12:56:17 UTC
(In reply to comment #2)
> Created an attachment (id=141064) [details]
> multiqueue-iterate-pads.diff
> 
> This is completely untested but *should* work I guess. Does someone know an
> easy way to check if it works? :)

Whatever, I've tested it from a small sample application. It's even valgrind clean ;)
Comment 5 Sebastian Dröge (slomo) 2009-08-18 13:13:34 UTC
Next step is the input/streamselector from gst-plugins-base that needs fixing...
Comment 6 Sebastian Dröge (slomo) 2009-08-18 19:46:55 UTC
Created attachment 141107 [details] [review]
selector-internal-links.diff

This might not be 100% correct but should work... comments?
Comment 7 Sebastian Dröge (slomo) 2009-08-19 06:09:19 UTC
Ok, I've slightly changed the selector patch. Next part is rtpjitterbuffer and rtpssrcdemux ;)
Comment 8 Sebastian Dröge (slomo) 2009-08-19 15:01:32 UTC
Created attachment 141159 [details] [review]
good-rtp-iterate-links.diff

Patch for gst-plugins-good that fixes the RTP plugin. I'll commit this after freeze but this is no blocker for this bug because we build pre-releases/releases without -DGST_DISABLE_DEPRECATED.
Comment 9 Sebastian Dröge (slomo) 2009-08-19 15:21:09 UTC
Created attachment 141161 [details] [review]
bad-iterate-pads.diff

Same for gst-plugins-bad... I'm going to commit all the other patches now.
Comment 10 Sebastian Dröge (slomo) 2009-08-19 15:24:34 UTC
Closing this as the core/base part is fixed... I'll simply push the good/bad parts when they're not frozen anymore.
Comment 11 Olivier Crête 2009-08-19 17:03:47 UTC
We should probably have a "gst_iterator_new_single()" or something instead of copying the same code everywhere.
Comment 12 Sebastian Dröge (slomo) 2009-08-21 08:15:39 UTC
(In reply to comment #11)
> We should probably have a "gst_iterator_new_single()" or something instead of
> copying the same code everywhere.

Sure but that wouldn't save a lot of code either. You still need a custom free function and a custom "get the element" function because that part is still different. Or do you have any idea to save even more duplication?
Comment 13 Olivier Crête 2009-08-21 14:18:37 UTC
I was thinking of a function that takes a GObject, so the free would always be g_object_unref() and just give it the pad directly (just like the old iterate_links code worked).
Comment 14 Sebastian Dröge (slomo) 2009-08-21 17:06:09 UTC
(In reply to comment #13)
> I was thinking of a function that takes a GObject, so the free would always be
> g_object_unref() and just give it the pad directly (just like the old
> iterate_links code worked).

But then you could get outdated information from the iterator and would also have no way to resync the iterator to get the current valid information.
Comment 15 Olivier Crête 2009-08-21 17:19:49 UTC
For most cases when there is a single possiblity (like rtpsession, etc), there is only one possibility and it won't change.