Getting image buffer data from audio file tags.

Nox Deleo noxdeleo at googlemail.com
Wed Dec 19 07:25:07 PST 2012


Ok, thanks for the clarification. I've just been reading up on appsrc, but
I can't find any reference to a "push-sample"...every documentation source
I can find (appsrc plugin docs, appsrc docs in base plugins library
reference, and tutorials at gstreamer.com) say "push-buffer", and push
sample gives me "unknown signal name: push-sample". Is this a mistake or am
I missing something?


On 19 December 2012 13:01, Tim-Philipp Müller <t.i.m at zen.co.uk> wrote:

> On Wed, 2012-12-19 at 12:46 +0000, Nox Deleo wrote:
>
> Hi,
>
> > Thanks for the reply. I got the gist of the bug report, but am a
> > little confused on finer details. Is it saying that for now (without
> > any patches), I would be able to get a copy of the byte array from
> > mapinfo to work with in Python? I only need to read the data, after
> > which I'll store it elsewhere (GstDiscoverer info -> MongoDB and
> > GridFS for the cover art if I can get it). If so, are there any
> > reasons not to (like ending up with alot of these just sat in memory)?
>
> No, there is no easy way to get to the data at all at the moment, copy
> or not.
>
> I'll add a function for that.
>
> >  I already tried the serialize to string approach (ugh is right, but I
> > was desperate), but it ended up causing segfaults down the line when
> > pushed into GObject attributes on Clutter/Mx components. I stopped
> > there with that approach since it was horrible anyway. As for the
> > appsrc, I was doing an emit('push-buffer', buffer) on it, since I
> > wasn't even aware of the other approach. If I end up having to use
> > that, I'll have a read up on using appsrc first since the segfault is
> > probably my fault anyway. I think Ubuntu 12.10 is still sat on
> > GStreamer 1.0.1, so I probably need to use the GStreamer PPA or stop
> > being lazy and compile the source :).
>
> Note that in 1.x it's push_sample / push-sample, you have to create a
> GstSample with the buffer, you can't just push the buffer directly.
>
> Cheers
>  -Tim
>
> > Thanks again.
> >
> >
> > On 18 December 2012 23:15, Tim-Philipp Müller <t.i.m at zen.co.uk> wrote:
> >         On Tue, 2012-12-18 at 18:53 +0000, Nox Deleo wrote:
> >
> >         Hi,
> >
> >         > I'm trying to pull the image tag data from an audio file. I
> >         can pull a
> >         > GstSample from the TagList, and a GstBuffer from that, but I
> >         don't
> >         > know how to get the data out of that into something I can
> >         use in
> >         > Python. I found an example (in the comments)
> >         > here:
> >
> http://www.jezra.net/blog/use_python_and_gstreamer_to_get_the_tags_of_an_audio_file,
> but I'm guessing it's for an older version of GStreamer since GstBuffer
> doesn't seem to have a 'data' attribute in GStreamer 1.0.
> >
> >
> >         Yes, that's currently a bit of a problem, due to some missing
> >         bits in
> >         gobject-introspection, which doesn't allow bindings to access
> >         byte
> >         arrays in structures (you would get at the data in C by
> >         'mapping' the
> >         buffer and then accessing mapinfo.data and mapinfo.size). See
> >
> >         https://bugzilla.gnome.org/show_bug.cgi?id=678663
> >
> >         for the whole story.
> >
> >         It looks like we'll have to add a utility function to get the
> >         data from
> >         bindings until this is fixed on the g-i/bindings side. Someone
> >         remind me
> >         if I forget.
> >
> >         I don't know if there's a clever way to get at the data some
> >         other way,
> >         other than what you're trying to do, or serialising it to a
> >         strings and
> >         parsing the hex values. (ugh)
> >
> >
> >         > I tried briefly to push the buffer into an
> >         appsrc->encoder->filesink
> >         > pipeline, but this segfaulted on me (I haven't read up on
> >         using
> >         > appsrc, so that's no surprise, but I'm hoping there's an
> >         easier way of
> >
> >         > doing this).
> >
> >         Sounds like you might be running into an annotation/bindings
> >         bug we've
> >         just fixed in the 1.0.4 release that's just come out (should
> >         hopefully
> >         land in your distro soon). A workaround for that was to not
> >         use the
> >         explicit push_sample API on appsrc, but pass the sample with
> >         the buffer
> >         using the signal_emit_by_name API (not sure about exact py-gi
> >         syntax).
> >
> >         Cheers
> >          -Tim
> >
> >
> >         _______________________________________________
> >         gstreamer-devel mailing list
> >         gstreamer-devel at lists.freedesktop.org
> >         http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> >
> >
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20121219/eecafcdf/attachment.html>


More information about the gstreamer-devel mailing list