[gst-devel] compilation issue!
Stefan Kost
ensonic at hora-obscura.de
Tue May 26 22:58:53 CEST 2009
Guilherme Raymo Longo schrieb:
> Kost...
>
> Tks for your help so far... I fixed the problem removing and compiling
> again the libraries and plug-ins. It seems that I had some problems with
> the installation.
>
> I am gettting a last error mensagem when I am running the spectrum
> script available in the spectrum plugin page.
>
> That is the problem:
>
> ./spectrum
>
> (spectrum:3124): GLib-GObject-CRITICAL **: g_object_set: assertion
> `G_IS_OBJECT (object)' failed
if you get such error, ther is only one thing to do:
G_DEBUG="fatal_warnings" gdb ./spectrum
> run
...
...
(spectrum:3124): GLib-GObject-CRITICAL **: g_object_set: assertion
`G_IS_OBJECT (object)' failed
> bt
0: ...
1: ..
and look up the stack frame in your code that calls g_object_set on an object,
where it probably has not checked before if that was created succesfully.
Stefan
>
> (spectrum:3124): GStreamer-CRITICAL **: gst_element_link_pads_filtered:
> assertion `GST_IS_ELEMENT (dest)' failed
> can't link elements
>
> It does seem to have a connection with the other problem... is it a
> commom problem?? Do you think a should start over again compiling and
> installing everything???????
>
>
> On Sun, May 24, 2009 at 10:21 AM, Guilherme <grlongo.ireland at gmail.com
> <mailto:grlongo.ireland at gmail.com>> wrote:
>
> It is not ;O)
>
> But you probably noticed that I was just trying different codes to
> see if things worked out in here ;O)!
>
>
> The output is this:
>
>
> pkg-config --cflags --libs gstreamer-0.10
> -pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0
> -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -pthread
> -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt
> -lxml2 -lglib-2.0
>
> It seems that the paths are right.... strange!
>
> Tks!
>
> -------------------
>
> Guilherme Longo
> Dept. Eng. da Computação
> Unaerp
>
> Linux User - #484927
>
> *Before Asking
> http://www.istf.com.br/?page=perguntas
>
> !- I'd rather die on my feet than live on my knees -!
>
>
>
>
> Stefan Kost wrote:
>
> Guilherme Raymo Longo schrieb:
>
>
> Mates, I am having a issue when trying to compile a simple
> code that
> should work without problems.
> I have it running in other machines, but I can't figure out
> what it
> might be.
>
>
>
>
> what does this print?
> pkg-config --cflags --libs gstreamer-0.10
>
> Besides the code below does not look like spectrum.c :)
>
> Stefan
>
>
> This is the output:
>
> bash-3.1# gcc -Wall $(pkg-config --cflags --libs
> gstreamer-0.10) spectrum.c
> /tmp/cccrQH9p.o: In function `bus_call':
> spectrum.c:(.text+0xd): undefined reference to
> `gst_message_get_type'
> spectrum.c:(.text+0x64): undefined reference to
> `gst_message_parse_error'
> /tmp/cccrQH9p.o: In function `on_pad_added':
> spectrum.c:(.text+0xdd): undefined reference to
> `gst_element_get_static_pad'
> spectrum.c:(.text+0xf1): undefined reference to `gst_pad_link'
> spectrum.c:(.text+0xff): undefined reference to
> `gst_object_unref'
> /tmp/cccrQH9p.o: In function `main':
> spectrum.c:(.text+0x12b): undefined reference to `gst_init'
> spectrum.c:(.text+0x17c): undefined reference to
> `gst_pipeline_new'
> spectrum.c:(.text+0x194): undefined reference to
> `gst_element_factory_make'
> spectrum.c:(.text+0x1ac): undefined reference to
> `gst_element_factory_make'
> spectrum.c:(.text+0x1c4): undefined reference to
> `gst_element_factory_make'
> spectrum.c:(.text+0x1dc): undefined reference to
> `gst_element_factory_make'
> spectrum.c:(.text+0x1f4): undefined reference to
> `gst_element_factory_make'
> spectrum.c:(.text+0x26c): undefined reference to
> `gst_pipeline_get_type'
> spectrum.c:(.text+0x285): undefined reference to
> `gst_pipeline_get_bus'
> spectrum.c:(.text+0x29e): undefined reference to
> `gst_bus_add_watch'
> spectrum.c:(.text+0x2ac): undefined reference to
> `gst_object_unref'
> spectrum.c:(.text+0x2b4): undefined reference to
> `gst_bin_get_type'
> spectrum.c:(.text+0x2de): undefined reference to
> `gst_bin_add_many'
> spectrum.c:(.text+0x2ef): undefined reference to
> `gst_element_link'
> spectrum.c:(.text+0x302): undefined reference to
> `gst_element_link_many'
> spectrum.c:(.text+0x34e): undefined reference to
> `gst_element_set_state'
> spectrum.c:(.text+0x38c): undefined reference to
> `gst_element_set_state'
> spectrum.c:(.text+0x3a4): undefined reference to
> `gst_object_get_type'
> spectrum.c:(.text+0x3bd): undefined reference to
> `gst_object_unref'
> collect2: ld returned 1 exit status
>
>
>
> I have the PKG_CONFIG_PATH duly configured and
> gstreamer-0.10 libraries
> are installed. What am I missing here??????
>
> This is the code:
>
> #include <gst/gst.h>
> #include <glib.h>
>
>
> static gboolean
> bus_call (GstBus *bus,
> GstMessage *msg,
> gpointer data)
> {
> GMainLoop *loop = (GMainLoop *) data;
>
> switch (GST_MESSAGE_TYPE (msg)) {
>
> case GST_MESSAGE_EOS:
> g_print ("End of stream\n");
> g_main_loop_quit (loop);
> break;
>
> case GST_MESSAGE_ERROR: {
> gchar *debug;
> GError *error;
>
> gst_message_parse_error (msg, &error, &debug);
> g_free (debug);
>
> g_printerr ("Error: %s\n", error->message);
> g_error_free (error);
>
> g_main_loop_quit (loop);
> break;
> }
> default:
> break;
> }
>
> return TRUE;
> }
>
>
> static void
> on_pad_added (GstElement *element,
> GstPad *pad,
> gpointer data)
> {
> GstPad *sinkpad;
> GstElement *decoder = (GstElement *) data;
>
> /* We can now link this pad with the vorbis-decoder sink pad */
> g_print ("Dynamic pad created, linking demuxer/decoder\n");
>
> sinkpad = gst_element_get_static_pad (decoder, "sink");
>
> gst_pad_link (pad, sinkpad);
>
> gst_object_unref (sinkpad);
> }
>
>
>
> int
> main (int argc,
> char *argv[])
> {
> GMainLoop *loop;
>
> GstElement *pipeline, *source, *demuxer, *decoder, *conv,
> *sink;
> GstBus *bus;
>
> /* Initialisation */
> gst_init (&argc, &argv);
>
> loop = g_main_loop_new (NULL, FALSE);
>
>
> /* Check input arguments */
> if (argc != 2) {
> g_printerr ("Usage: %s <Ogg/Vorbis filename>\n", argv[0]);
> return -1;
> }
>
>
> /* Create gstreamer elements */
> pipeline = gst_pipeline_new ("audio-player");
> source = gst_element_factory_make ("filesrc",
> "file-source");
> demuxer = gst_element_factory_make ("oggdemux",
> "ogg-demuxer");
> decoder = gst_element_factory_make ("vorbisdec",
> "vorbis-decoder");
> conv = gst_element_factory_make ("audioconvert",
> "converter");
> sink = gst_element_factory_make ("autoaudiosink",
> "audio-output");
>
> if (!pipeline || !source || !demuxer || !decoder || !conv
> || !sink) {
> g_printerr ("One element could not be created. Exiting.\n");
> return -1;
> }
>
> /* Set up the pipeline */
>
> /* we set the input filename to the source element */
> g_object_set (G_OBJECT (source), "location", argv[1], NULL);
>
> /* we add a message handler */
> bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
> gst_bus_add_watch (bus, bus_call, loop);
> gst_object_unref (bus);
>
> /* we add all elements into the pipeline */
> /* file-source | ogg-demuxer | vorbis-decoder | converter |
> alsa-output */
> gst_bin_add_many (GST_BIN (pipeline),
> source, demuxer, decoder, conv, sink, NULL);
>
> /* we link the elements together */
> /* file-source -> ogg-demuxer ~> vorbis-decoder -> converter ->
> alsa-output */
> gst_element_link (source, demuxer);
> gst_element_link_many (decoder, conv, sink, NULL);
> g_signal_connect (demuxer, "pad-added", G_CALLBACK
> (on_pad_added),
> decoder);
>
> /* note that the demuxer will be linked to the decoder
> dynamically.
> The reason is that Ogg may contain various streams (for
> example
> audio and video). The source pad(s) will be created at
> run time,
> by the demuxer when it detects the amount and nature of
> streams.
> Therefore we connect a callback function which will be
> executed
> when the "pad-added" is emitted.*/
>
>
> /* Set the pipeline to "playing" state*/
> g_print ("Now playing: %s\n", argv[1]);
> gst_element_set_state (pipeline, GST_STATE_PLAYING);
>
>
> /* Iterate */
> g_print ("Running...\n");
> g_main_loop_run (loop);
>
>
> /* Out of the main loop, clean up nicely */
> g_print ("Returned, stopping playback\n");
> gst_element_set_state (pipeline, GST_STATE_NULL);
>
> g_print ("Deleting pipeline\n");
> gst_object_unref (GST_OBJECT (pipeline));
>
> return 0;
> }
>
>
> Tks so much!
>
>
> ------------------------------------------------------------------------
>
> ------------------------------------------------------------------------------
> Register Now for Creativity and Technology (CaT), June 3rd,
> NYC. CaT
> is a gathering of tech-side developers & brand creativity
> professionals. Meet
> the minds behind Google Creative Lab, Visual Complexity,
> Processing, & iPhoneDevCamp asthey present alongside digital
> heavyweights like Barbarian
> Group, R/GA, & Big Spaceship. http://www.creativitycat.com
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> <mailto:gstreamer-devel at lists.sourceforge.net>
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
>
>
>
> ------------------------------------------------------------------------------
> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
> is a gathering of tech-side developers & brand creativity
> professionals. Meet
> the minds behind Google Creative Lab, Visual Complexity,
> Processing, & iPhoneDevCamp asthey present alongside digital
> heavyweights like Barbarian
> Group, R/GA, & Big Spaceship. http://www.creativitycat.com
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> <mailto:gstreamer-devel at lists.sourceforge.net>
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
>
>
>
>
>
> --
> Guilherme Raymo Longo
> Software Developer
> Mob. 087 - 3179008
> msn: grlongo.ireland at hotmail.com <mailto:grlongo.ireland at hotmail.com>
> skype: grlongo.ireland
>
>
> ------------------------------------------------------------------------
>
> ------------------------------------------------------------------------------
> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
> is a gathering of tech-side developers & brand creativity professionals. Meet
> the minds behind Google Creative Lab, Visual Complexity, Processing, &
> iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
> Group, R/GA, & Big Spaceship. http://www.creativitycat.com
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
More information about the gstreamer-devel
mailing list