[gst-devel] where is library gst.h? AT LAST!!!! IT works!!
Fabian Hergenreder
fabian_h at uol.com.ar
Mon Jul 11 21:02:05 CEST 2005
I compiled the mp3 player code below.
I changed this variable PKG_CONFIG_PATH=/usr/local/bin/pkg-config
and it worked with the command
gcc `pkg-config --cflags --libs gstreamer-0.8 glib-2.0` mp3play.c -o
mplay `pkg-config --libs glib-2.0`
but I have to leave this include line #include
</usr/include/gstreamer-0.8/gst/gst.h>
So I think I have to review pkg-config for glib-2.0 but i dont know how to
do that
maybe Ariel can give me some idea.
Thanks Stefan for your help and your patience.
>
> gcc `pkg-config --cflags glib-2` glibtest.c -o glibtest `pkg-config
> --libs glib-2`
>
> Stefan
>
> PS.: the above is untested ;)
>
>>
>> this is the code
>> /* This is a command line mp3 player using gstreamer. It's nothing
>> more than
>> * their hello,world with one addition feature in that it prints off
>> the time
>> * while the song is playing.
>> *
>> * Just making it public for the hell of it. I did not write 100% of
>> this code
>> * I simply added a little to print off the length, time remaining...
>> */
>> #include <stdlib.h>
>> #include </usr/include/gstreamer-0.8/gst/gst.h>
>> #define MY_TIME_FORMAT "u:%02u:%02u"
>> #define MY_TIME_ARGS(t) \
>> (guint) ((t) / (GST_SECOND * 60 * 60)), \
>> (guint) (((t) / (GST_SECOND * 60)) % 60), \
>> (guint) (((t) / GST_SECOND) % 60)
>> int
>> main (int argc, char *argv[])
>> {
>> GstElement *bin, *filesrc, *decoder, *osssink;
>> gst_init (&argc, &argv);
>> if (argc != 2) {
>> g_print ("usage: %s <mp3 file>\n", argv[0]);
>> exit (-1);
>> }
>> /* create a new bin to hold the elements */
>> bin = gst_pipeline_new ("pipeline");
>> g_assert (bin);
>> /* create a disk reader */
>> filesrc = gst_element_factory_make ("filesrc", "disk_source");
>> g_assert (filesrc);
>> g_object_set (G_OBJECT (filesrc), "location", argv[1], NULL);
>> /* now it's time to get the decoder */
>> decoder = gst_element_factory_make ("mad", "decode");
>> if (!decoder) {
>> g_print ("could not find 'mad' plugin\n");
>> return -1;
>> }
>> /* and an audio sink */
>> osssink = gst_element_factory_make ("osssink", "play_audio");
>> g_assert (osssink);
>> /* add objects to the main pipeline */
>> gst_bin_add_many (GST_BIN (bin), filesrc, decoder, osssink, NULL);
>> /* link the elements */
>> gst_element_link_many (filesrc, decoder, osssink, NULL);
>> /* start playing */
>> gst_element_set_state (bin, GST_STATE_PLAYING);
>> while (gst_bin_iterate (GST_BIN (bin)))
>> {
>> gint64 len, pos;
>> GstFormat fmt = GST_FORMAT_TIME;
>> if (gst_element_query (osssink, GST_QUERY_POSITION, &fmt,
>> &pos) &&
>> gst_element_query (osssink, GST_QUERY_TOTAL, &fmt,
>> &len))
>> {
>> g_print ("Time: %" MY_TIME_FORMAT " / %"
>> MY_TIME_FORMAT "\r",
>> MY_TIME_ARGS (pos), MY_TIME_ARGS (len));
>> }
>> }
>> /* stop the bin */
>> gst_element_set_state (bin, GST_STATE_NULL);
>> gst_object_unref (GST_OBJECT (bin));
>> exit (0);
>> }
>>
>>> gst-inspect is a link to gst-inspect-0.8 (in case you are using 0.8).
>>> Which distribution you are one. Have you installed gstreamer by
>>> yourself from source or as packages. gst-inspect is part of the
>>> gstreamer (core) package. Try gst-<TAB> doe it show anything?
>>>
>>> Stefan
>>>
>
>
--
Using Opera's revolutionary e-mail client: http://www.opera.com/m2/
More information about the gstreamer-devel
mailing list