<div dir="ltr"><div>Hey </div><div><br></div>If your objective is to have control over the audiorate, I would suggest modifying your code to implement a pipeline like this<div><br></div><div><font face="monospace, monospace">filesrc ! oggmux ! vorbisdec ! audioconvert ! audiorate (or audioresample) ! audio/x-raw, rate=<desired_rate> ! autoaudiosink</font></div><div><br></div><div>and then set the desired rate on the audiorate/audioresample element. </div><div><br></div><div>Cheers</div><div class="gmail_extra"><br><div class="gmail_quote">2015-07-23 15:42 GMT+02:00 doon <span dir="ltr"><<a href="mailto:don-prog@mail.ru" target="_blank">don-prog@mail.ru</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks for the response!<br>
Yes, oggdemux really need audio/ogg on sink pad. Now I trying to link<br>
audioconvert to autoaudiosink with the same caps and with caps with<br>
"audio/ogg" type but still have same error.<br>
I think I don't quite understand something, can you explain?<br>
I trying to change rate of my audio.<br>
Sérgio Agostinho wrote<br>
<span class="">> Hi,<br>
><br>
> You're setting a caps filter of type audio/x-raw between the filesource<br>
> and<br>
> the typefind element, but the demuxer you selected (oggdemux) does not<br>
> support that on its sink pad.<br>
><br>
> What are you trying to do?<br>
><br>
> Cheers<br>
><br>
</span>> 2015-07-23 2:57 GMT+02:00 doon &lt;<br>
<br>
> don-prog@<br>
<br>
> &gt;:<br>
<div><div class="h5">><br>
>> I trying to create filter using caps:<br>
>> *               GMainLoop *loop;<br>
>>                 GstElement *pipeline, *source, *demuxer, *decoder,<br>
>> *typefind, *conv,<br>
>> *sink;;<br>
>>                 GstBus *bus;<br>
>>                 guint bus_watch_id;<br>
>><br>
>><br>
>>                 loop = g_main_loop_new(NULL, FALSE);<br>
>><br>
>>                 pipeline = gst_pipeline_new ("audio-player");<br>
>>                 source   = gst_element_factory_make ("filesrc",<br>
>>  "file-source");<br>
>>                 typefind = gst_element_factory_make ("typefind",<br>
>> "typefinder");<br>
>>                 demuxer  = gst_element_factory_make ("oggdemux",<br>
>> "ogg-demuxer");<br>
>>                 decoder  = gst_element_factory_make ("vorbisdec",<br>
>>  "vorbis-decoder");<br>
>>                 conv     = gst_element_factory_make ("audioconvert",<br>
>> "converter");<br>
>>                 sink     = gst_element_factory_make ("autoaudiosink",<br>
>> "audio-output");<br>
>><br>
>>                 if (!pipeline || !source || !demuxer || !decoder || !conv<br>
>> || !sink) {<br>
>>                         g_printerr ("Не удалось создать один из элементов<br>
>> конвейера. Работа<br>
>> приложения завершена.\n");<br>
>>                         return -1;<br>
>>                 }<br>
>>                 g_signal_connect (typefind, "have-type", G_CALLBACK<br>
>> (cb_typefound), loop);<br>
>>                 g_object_set(G_OBJECT(source), "location", name_of_file,<br>
>> NULL);<br>
>><br>
>>                 bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline));<br>
>>                 bus_watch_id = gst_bus_add_watch(bus, bus_call, loop);<br>
>>                 gst_object_unref(bus);<br>
>><br>
>>                 gst_bin_add_many(GST_BIN(pipeline), source, typefind,<br>
>> demuxer, decoder,<br>
>> conv, sink, NULL);<br>
>><br>
>>                 GstCaps *my_caps = gst_caps_new_simple<br>
>> ("audio/x-raw","rate", G_TYPE_INT,<br>
>> 384,NULL);<br>
>><br>
>><br>
>>                 gboolean test=false;<br>
>>                 test = gst_element_link_filtered(source,typefind,<br>
>> my_caps);<br>
>>                 test = gst_element_link(typefind, demuxer);<br>
>>                 test = gst_element_link_many(decoder, conv,sink, NULL);<br>
>><br>
>><br>
>>                 g_signal_connect(demuxer, "pad-added",<br>
>> G_CALLBACK(on_pad_added),<br>
>> decoder);*<br>
>><br>
>> But get error:<br>
>> *Debug: gsttypefindelement.c(1169): gst_type_find_element_loop ():<br>
>> /GstPipeline:a<br>
>> udio-player/GstTypeFindElement:typefinder:<br>
>> stream stopped, reason not-linked*<br>
>><br>
>> Var test == 1 after gst_element_link_filtered(source,typefind, my_caps);<br>
>>       test == 0 after gst_element_link(typefind, demuxer);<br>
>>       test == 1 after gst_element_link_many(decoder, conv,sink, NULL);<br>
>> If I just change gst_element_link_filtered on gst_element_link all going<br>
>> ok<br>
>> and file plays.<br>
>> What am I doing wrong?<br>
>><br>
>><br>
>><br>
>> --<br>
>> View this message in context:<br>
>> <a href="http://gstreamer-devel.966125.n4.nabble.com/GstCaps-filter-issue-tp4672796.html" rel="noreferrer" target="_blank">http://gstreamer-devel.966125.n4.nabble.com/GstCaps-filter-issue-tp4672796.html</a><br>
</div></div><span class="">>> Sent from the GStreamer-devel mailing list archive at Nabble.com.<br>
>> _______________________________________________<br>
>> gstreamer-devel mailing list<br>
>><br>
<br>
</span>> gstreamer-devel@.freedesktop<br>
<br>
>> <a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
>><br>
><br>
> _______________________________________________<br>
> gstreamer-devel mailing list<br>
<br>
> gstreamer-devel@.freedesktop<br>
<br>
> <a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
<br>
<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://gstreamer-devel.966125.n4.nabble.com/GstCaps-filter-issue-tp4672796p4672814.html" rel="noreferrer" target="_blank">http://gstreamer-devel.966125.n4.nabble.com/GstCaps-filter-issue-tp4672796p4672814.html</a><br>
<span class="">Sent from the GStreamer-devel mailing list archive at Nabble.com.<br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
</span><a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
</blockquote></div><br></div></div>