Getting image buffer data from audio file tags.

Wim Taymans wim.taymans at gmail.com
Wed Dec 19 08:02:44 PST 2012


On 12/19/2012 04:25 PM, Nox Deleo wrote:
> 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 
> <http://gstreamer.com>) say "push-buffer", and push sample gives me 
> "unknown signal name: push-sample". Is this a mistake or am I missing 
> something?
>
Use push-buffer in appsrc, both in 0.10 and 1.0.

Wim

>
> On 19 December 2012 13:01, Tim-Philipp Müller <t.i.m at zen.co.uk 
> <mailto: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
>     <mailto: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
>     <mailto:gstreamer-devel at lists.freedesktop.org>
>     > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>     >
>     >
>     > _______________________________________________
>     > gstreamer-devel mailing list
>     > gstreamer-devel at lists.freedesktop.org
>     <mailto:gstreamer-devel at lists.freedesktop.org>
>     > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
>     _______________________________________________
>     gstreamer-devel mailing list
>     gstreamer-devel at lists.freedesktop.org
>     <mailto: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



More information about the gstreamer-devel mailing list