Hi,
I would like to play the buffer , which is filled with any audio file data. Does gstreamer provides any mechanism to play. Thanks in advance. Regards, Akbar ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
You can pass external buffer to the
GStreamer pipeline with the help of appsrc element. http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-data-spoof.html From:
[hidden email]
[mailto:[hidden email]] On Behalf Of Akbar Basha Hi,
------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
In reply to this post by Akbar Basha-2
Akbar Basha schrieb:
> Hi, > > I would like to play the buffer , which is filled with any audio file data. > Does gstreamer provides any mechanism to play. if you have the whole bufer in memory, use a fakesrc with signal-handoffs=TRUE and connect to handoff signal. In the handoff signal you put the pointer to your data into the GST_BUFFER_DATA, set the correct GST_BUFFER_SIZE and clear GST_BUFFER_MALLOC_DATA (if it was previously set g_free() the previous content). You should used a capsfilter after fakesrc and set the format of your sample on the capsfilter caps. Its sort of a hack, but works fine. Stefan > > Thanks in advance. > > Regards, > Akbar > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! > Studies have shown that voting for your favorite open source project, > along with a healthy diet, reduces your potential for chronic lameness > and boredom. Vote Now at http://www.sourceforge.net/community/cca08 > > > ------------------------------------------------------------------------ > > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
hi,
Akbar Basha schrieb: > Hi Stefan, > > Thanks for the response . Would you please post to the list. > > I tried the same. But could not produce the result. > > Please find the code. > > static void > cb_handoff (GstElement *fakesrc, > GstBuffer *buffer, > gpointer user_data) > { > > /* Clip start and end */ > > data = (guint8 *) g_malloc (3000); > GST_BUFFER_SIZE (buffer) = 3000; > GST_BUFFER_DATA (buffer) = GST_BUFFER_MALLOCDATA (buffer) = data; > > FILE* fp = fopen("vertigo.mp3","rb"); > if(fp == NULL) > { > printf( " File is not opened \n"); > return; > } > fread(data,3000,1,fp); > > fclose(fp); > > } > > gint > main (gint argc, > gchar *argv[]) > { > GstElement *pipeline, *fakesrc, *flt, *conv, *audiosink; > GMainLoop *loop; > > /* init GStreamer */ > gst_init (&argc, &argv); > loop = g_main_loop_new (NULL, FALSE); > > /* setup pipeline */ > pipeline = gst_pipeline_new ("pipeline"); > fakesrc = gst_element_factory_make ("fakesrc", "source"); > flt = gst_element_factory_make ("capsfilter", "flt"); > conv = gst_element_factory_make ("mad", "conv"); > audiosink = gst_element_factory_make ("alsasink", "audiosink"); > > /* setup */ > g_object_set (G_OBJECT (flt), "caps", > gst_caps_new_simple("audio/x-raw-int", > "channels", G_TYPE_INT, 2, > "rate", G_TYPE_INT, 32000, > "depth", G_TYPE_INT, 16, NULL), NULL); This is obviously wrong. You load an mp3 and not raw audio data. The capsfilter needs to tell that. But in your case you would not even need one. > > gst_bin_add_many (GST_BIN (pipeline), fakesrc, flt,conv, audiosink, NULL); > gst_element_link_many (fakesrc, flt,conv, audiosink, NULL); > > /* setup fake source */ > g_object_set (G_OBJECT (fakesrc),"signal-handoffs", TRUE,NULL); > > g_signal_connect (fakesrc, "handoff", G_CALLBACK (cb_handoff), NULL); > > /* play */ > gst_element_set_state (pipeline, GST_STATE_PLAYING); > g_main_loop_run (loop); > > /* clean up */ > gst_element_set_state (pipeline, GST_STATE_NULL); > gst_object_unref (GST_OBJECT (pipeline)); > > return 0; > } > > Even if I set using memset . Audio is not coming. What happens? Stefan > > how to proceed in the case pad is required i.e for wav files. > > Regards, > Akbar > > On Wed, Jul 9, 2008 at 11:53 PM, Stefan Kost <[hidden email] > <mailto:[hidden email]>> wrote: > > Akbar Basha schrieb: > > Hi, > > I would like to play the buffer , which is filled with any audio > file data. > Does gstreamer provides any mechanism to play. > > > if you have the whole bufer in memory, use a fakesrc with > signal-handoffs=TRUE and connect to handoff signal. In the handoff > signal you put the pointer to your data into the GST_BUFFER_DATA, > set the correct GST_BUFFER_SIZE and clear GST_BUFFER_MALLOC_DATA (if > it was previously set g_free() the previous content). > > You should used a capsfilter after fakesrc and set the format of > your sample on the capsfilter caps. > > Its sort of a hack, but works fine. > > Stefan > > > Thanks in advance. > > Regards, > Akbar > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! > Studies have shown that voting for your favorite open source > project, > along with a healthy diet, reduces your potential for chronic > lameness > and boredom. Vote Now at http://www.sourceforge.net/community/cca08 > > > ------------------------------------------------------------------------ > > _______________________________________________ > gstreamer-devel mailing list > > [hidden email] > <mailto:[hidden email]> > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel > > > ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
For mp3 it works fine.
For wav and raw pcm files program never get signal handoff. To play wav file I used dynamic pad and for pcm doesn't need pad. Is it possible to play binary data using this approach? If so what would be the decoder elements. I have looked into appsrc plugin . I ran the example given as part of the plugin. Audio is not coming. Thanks, Akbar On Sat, Jul 12, 2008 at 3:33 PM, Stefan Kost <[hidden email]> wrote: hi, ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
In reply to this post by Stefan Sauer
For mp3 it works fine.
For wav and raw pcm files program never get signal handoff. To play wav file I used dynamic pad and for pcm doesn't need pad. Is it possible to play binary data using this approach? If so what would be the decoder elements. I have looked into appsrc plugin . I ran the example given as part of the plugin. Audio is not coming. Thanks, Akbar On 7/12/08, Stefan Kost <[hidden email]> wrote:
hi, ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |