Hi,<br> I'm able to play the wav file by using gst-launch as fallows<br><br>gst-launch-0.10 filesrc location=~/songs/4voice.wav ! wavparse ! audioconvert ! alsasink<br>Setting pipeline to PAUSED ...<br>Pipeline is PREROLLING ...<br>
Pipeline is PREROLLED ...<br>Setting pipeline to PLAYING ...<br>New clock: GstAudioSinkClock<br>Caught interrupt -- handling interrupt.<br>Interrupt: Setting pipeline to PAUSED ...<br>Execution ended after 1914601000 ns.<br>
Setting pipeline to PAUSED ...<br>Setting pipeline to READY ...<br>Setting pipeline to NULL ...<br>FREEING pipeline ...<br><br><br>I modified the helloworld code to play the wav as<br>1. I created "waveparse" in place of oggdemux and vorbis parser elements<br>
2. Added filesrc, waveparse and alsasink to the pipeline and linked. <br><br>--<br>int<br>main ( int argc, char *argv[] )<br>{<br> GMainLoop *loop;<br> GstBus *bus;<br><br> gst_init ( &argc, &argv );<br>
loop = g_main_loop_new ( NULL, FALSE );<br><br> pipeline = gst_pipeline_new ( "audio-player" );<br> source = gst_element_factory_make ( "filesrc", "file-source" );<br> //parser = gst_element_factory_make ( "oggdemux", "ogg-parser" );<br>
parser = gst_element_factory_make ( "wavparse", "wave-parser" );<br> //decoder = gst_element_factory_make ( "vorbisdec", "vorbis-decoder" );<br> conv = gst_element_factory_make ( "audioconvert", "converter" );<br>
sink = gst_element_factory_make ( "alsasink", "alsa-output" );<br><br> if ( !pipeline || !source || !parser || !conv || !sink ) {<br> g_print ( "One element could not be created\n" );<br>
return -1;<br> }<br><br> g_object_set (G_OBJECT (source), "location", argv[1], NULL );<br><br> bus = gst_pipeline_get_bus ( GST_PIPELINE ( pipeline ) );<br> gst_bus_add_watch ( bus, bus_call, loop );<br>
gst_object_unref ( bus );<br><br> gst_bin_add_many ( GST_BIN ( pipeline), source, parser,<br> conv, sink, NULL );<br><br> //gst_element_link ( source, parser );<br> gst_element_link_many ( source, parser, conv, sink, NULL );<br>
g_signal_connect ( parser, "pad-added", G_CALLBACK ( new_pad ), NULL );<br><br> g_print ( "Setting to Playing\n" );<br> gst_element_set_state ( pipeline, GST_STATE_PLAYING );<br> g_print ( "Running\n" );<br>
g_main_loop_run ( loop );<br><br> g_print ( "Returned, stopping playback\n" );<br> gst_element_set_state ( pipeline, GST_STATE_NULL );<br> g_print ( "Deleting pipeline\n" );<br>
<br> gst_object_unref ( GST_OBJECT ( pipeline ) );<br><br> return 0;<br>}<br>--<br><br><br>When i tried to run the fallowing code, i'm getting fallowing errors<br>--<br>./a.out ~/songs/4voice.wav<br>Setting to Playing<br>
Running<br>Dynamic pad created, linking parser/decoder<br><br>(a.out:20136): GStreamer-CRITICAL **: gst_element_get_static_pad: assertion `GST_IS_ELEMENT (element)' failed<br><br>(a.out:20136): GStreamer-CRITICAL **: gst_pad_link_prepare: assertion `GST_IS_PAD (sinkpad)' failed<br>
<br>(a.out:20136): GStreamer-CRITICAL **: gst_object_unref: assertion `object != NULL' failed<br>Error: Internal data flow error.<br>Returned, stopping playback<br>Deleting pipeline<br>--<br><br>Somebody already posted the similar problem in the mailing list ( <a href="http://lists.maemo.org/pipermail/maemo-developers/2006-August/023007.html">http://lists.maemo.org/pipermail/maemo-developers/2006-August/023007.html</a> ), but solution is not mentioned over there. <br>
<br>It would be of great help if somebody look into this.<br><br>Thanks,<br>Ganesh<br>