fakesrc for audio stream.
rasnaut
rasnaut at gmail.com
Wed Oct 24 13:26:57 PDT 2012
Hi to All!
I working with gstreamer-1.0 and try use fakesrc for work with audiostream.
For start trying I copy only 0 in buffer (I used MapInfo structure). So, my
code:
main()
{
gst_init (NULL,NULL);
loop = g_main_loop_new (NULL, FALSE);
/* setup pipeline */
pipeline = gst_pipeline_new ("pipeline");
g_assert(pipeline);
fakesrc = gst_element_factory_make ("fakesrc", "source");
g_assert(fakesrc);
flt = gst_element_factory_make ("capsfilter", "flt");
g_assert(flt);
rate = gst_element_factory_make ("audiorate", "rate");
g_assert(rate);
conv = gst_element_factory_make ("audioconvert", "conv");
g_assert(conv);
audiosink = gst_element_factory_make ("alsasink", "asink");
g_assert(videosink);
/* setup */
g_object_set (G_OBJECT (flt), "caps",
gst_caps_new_simple ("audio/x-raw",
"format",G_TYPE_STRING,"S16LE",
"rate", G_TYPE_INT,16000,
"channels", G_TYPE_INT, 1,
NULL), NULL);
gst_bin_add_many (GST_BIN (pipeline), fakesrc, flt,rate, conv,
audiosink, NULL);
if(!gst_element_link_many (fakesrc, flt, rate, conv, audiosink, NULL))
{
g_error("Link Error\n");
}
/* setup fake source */
g_object_set (G_OBJECT (fakesrc),
"signal-handoffs", TRUE,
"sizemax", 16000,
"sizetype", 2, 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));
g_main_loop_unref (loop);
}
So, when I start my programm apear next error:
GStreamer-CRITICAL **: gst_segment_to_running_time: assertion
`segment->format == format' failed
When I changed alsasink on fakesink, all work. Maybe it's because my
audiocard is working with another details:
format = SL32_LE
rate = 48000
channels = 2
I tryed change my details:
g_object_set (G_OBJECT (flt), "caps",
gst_caps_new_simple ("audio/x-raw",
"format",G_TYPE_STRING,"S32LE",
"rate", G_TYPE_INT,48000,
"channels", G_TYPE_INT, 2,
NULL), NULL);
g_object_set (G_OBJECT (fakesrc),
"signal-handoffs", TRUE,
"sizemax", 48000*2,
"sizetype", 8, NULL);
but error still stayed.
Anybody know, what I do wrong?
--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/fakesrc-for-audio-stream-tp4656701.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.
More information about the gstreamer-devel
mailing list