Re: Completed what I can in gstreamermm
- From: José Alburquerque <jaalburquerque cox net>
- To: Murray Cumming <murrayc murrayc com>
- Cc: gtkmm-list gnome org
- Subject: Re: Completed what I can in gstreamermm
- Date: Sat, 17 May 2008 23:58:07 -0400
Murray Cumming wrote:
On Wed, 2008-05-07 at 14:09 -0400, José Alburquerque wrote:
I wanted to let everyone know so that others are aware that there is
still more to be done and the project can continue. I don't think I'll
be needed because all wrapping should be really clear, but if there
should be any questions please don't hesitate to e-mail me. Thank you
all for the opportunity to exercise my programming muscles. Take care.
While preparing the NEWS file for gstreamermm-0.9.6, I was amazed at how
much work you've done, some of it really difficult stuff.
The media_player_gtkmm example shows how much you have achieved.
Actually playing music and video is the main point of gstreamer.
I didn't mention: I plan to use some of the media_player_gtkmm code in
a project I'm developing. Now that I was able to tackle some
challenges, it will come in handy when I work on the other project. :-)
I done some cleaning up of the API. It's mostly just small changes which
won't require much changes in your application code. For instance, it's
now ElementFactory::create_element() instead of
ElementFactory::create().
An obviously useful logical change. :-) Changes like these will not
affect my application development because I understand that gstreamermm
is still in early development so I'm happy to adjust my project
development accordingly while gstreamermm stabilizes.
However, I am attaching the patch for a change I made to Structure, to
remove the awkward taking-ownership stuff. This is theoretically now
doing more copying than really necessary (it's a pity that it's not
reference-counted), but it makes the API much nicer. I wonder if this
causes problems for you.
To be honest, I haven't begun to use gstreamermm enough yet in my
project for this change to affect me yet, but looking at it more
closely, there was an error in my logic. I was trying to ensure that if
someone tried to modify a Gst::Structure of a Gst::Caps obtained with
Gst::Caps::get_structure() the change would be reflected in the actual
Gst::Structure of the Gst::Caps as in the following:
...
Gst::Structure structure = caps->get_structure(0);
if (structure)
{
Glib::Value<int> width;
width.init(Glib::Value<int>::value_type());
width.set(300);
structure.set_field("width", width);
}
...
I had unfortunately overlooked that the GstCaps docs say that
GstStructures of GstCaps should not be modified if obtained with
gst_caps_get_structure(const GstCaps*, guint index)
<http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#gst-caps-get-structure>.
What you're doing is best and if I had been more careful reading the
docs, I would not have made these changes to Gst::Structure.
I might need to do something similar for TagList.
As you say, TagList should undergo the same changes.
BTW, I had taken a look at your commits of last week and noticed some
TODO's that I might have quickly been able to do (time notwithstanding)
but I could not because I was affected by the svn+ssh bug. I'm still a
bit pressed for time, but if I find time here and there, would it be
alright if I commit some light stuff also?
--
José Alburquerque
jaalburquerque cox net
The path to real wisdom begins with a deep loving respect for the ever living God (Prov. 1:7)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]