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 583045 - [API] new video base classes need review
[API] new video base classes need review
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other All
: Normal blocker
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-05-18 14:02 UTC by Tim-Philipp Müller
Modified: 2009-07-13 13:56 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Tim-Philipp Müller 2009-05-18 14:02:17 UTC
Subject says it all.
Comment 1 Sebastian Dröge (slomo) 2009-05-19 09:26:50 UTC
The decoder should probably be a subclass of bug #582569. Something same should probably done for the encoder too, we can't change it later without breaking ABI and having a media independent base class is probably a good idea.
Comment 2 David Schleef 2009-05-19 16:19:35 UTC
BaseVideoDecoder shares about 90% of its code with BaseVideoEncoder, vs. about 10% of code with an audio decoder.  The choice to merge the Video classes into BaseVideoCodec, as opposed to a media agnostic one, was obvious.
Comment 3 Tim-Philipp Müller 2009-05-27 10:07:49 UTC
Bunch of non-API issues/nitpicks:

 - headers and source files need cleaning up
   (header indenting, #if 0, //commented out stuff etc.)

 - structures in header need padding

 - private structure members should be moved into an
   instance private struct

 - there seems to be hardly any documentation at all yet
Comment 4 David Schleef 2009-05-27 23:54:27 UTC
Why an instance private struct?  No other class does this.
Comment 5 Tim-Philipp Müller 2009-05-28 00:31:15 UTC
> Why an instance private struct?  No other class does this.

Just seems like a good idea to me for new code, esp. given how many variables we keep track of here. I think we've regretted putting private stuff into public structs already in a few places. Was just a suggestion...
Comment 6 Jan Schmidt 2009-05-28 10:22:22 UTC
(In reply to comment #4)
> Why an instance private struct?  No other class does this.

Our most successful base classes all keep an instance private structure - BaseTransform, BaseSink and BaseSrc all do, implemented using GObject g_type_class_add_private/G_TYPE_INSTANCE_GET_PRIVATE. It's proven useful for making them 'future proof' without having to worry so hard about how much padding to add and how close it is to being consumed.

Comment 7 Tim-Philipp Müller 2009-06-08 14:08:05 UTC
David: are you planning on fixing up any of these things? (docs, headers, etc.)
Comment 8 Wim Taymans 2009-07-13 13:56:45 UTC
Moved to -bad, can be closed