<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>i.MX Processors中的主题 Re: Gstreamer 0.10 function gst_element_set_state hang</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287655#M34197</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Any useful log? enable the most verbose level (5).&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 07 Jan 2014 13:12:03 GMT</pubDate>
    <dc:creator>LeonardoSandova</dc:creator>
    <dc:date>2014-01-07T13:12:03Z</dc:date>
    <item>
      <title>Gstreamer 0.10 function gst_element_set_state hang</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287650#M34192</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I use the I.MX6Q in our custom board based on sabrelite. In my software, I use the gstreamer library.&lt;/P&gt;&lt;P&gt;Sometimes when I call the function gst_element_set_state to put the pipeline in GST_STATE_PAUSED or in GST_STATE_NULL this function doesn't return and block my software. Did someone know why ?&lt;/P&gt;&lt;P&gt;I call all gstreamer function only in my main thread.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 06 Jan 2014 15:48:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287650#M34192</guid>
      <dc:creator>francoisrey</dc:creator>
      <dc:date>2014-01-06T15:48:01Z</dc:date>
    </item>
    <item>
      <title>Re: Gstreamer 0.10 function gst_element_set_state hang</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287651#M34193</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Launching the pipeline from command line (gst-launch) and interrupting it (Control + C), does it work? It would be nice if you post the code where you construct the pipeline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Leo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 06 Jan 2014 16:50:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287651#M34193</guid>
      <dc:creator>LeonardoSandova</dc:creator>
      <dc:date>2014-01-06T16:50:13Z</dc:date>
    </item>
    <item>
      <title>Re: Gstreamer 0.10 function gst_element_set_state hang</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287652#M34194</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have an another board which send automatically command to my board to play, set in pause, stop video. My board receive command approximately every 4 seconds. It's only after approximately 5 minutes when the function gst_element_set_state doesn't return even though it was already call with the same state, same pipeline (same video), and works well.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Jan 2014 07:37:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287652#M34194</guid>
      <dc:creator>francoisrey</dc:creator>
      <dc:date>2014-01-07T07:37:47Z</dc:date>
    </item>
    <item>
      <title>Re: Gstreamer 0.10 function gst_element_set_state hang</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287653#M34195</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;void&lt;BR /&gt;GstPlayer::initAviPipeline(char* filePath)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; findVideoCompression(filePath);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(isAudio)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; findAudioCompression(filePath);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Create gstreamer elements */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pipeline = gst_pipeline_new ("pipe");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; filesrc = gst_element_factory_make ("filesrc", "source");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; demuxer&amp;nbsp; = gst_element_factory_make ("avidemux", "avi-demuxer");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vdec = gst_element_factory_make("vpudec", "vpu-decoder");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsink = gst_element_factory_make ("mfw_v4lsink", "sink");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!pipeline || !filesrc || !demuxer || !vdec || !vsink ) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_printerr ("One element could not be created. Exiting.\n");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(isAudio) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aqueue = gst_element_factory_make("queue", "queue audio");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch(audioCompression) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case AC3 :&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; adec = gst_element_factory_make("ffdec_ac3", "ac3 decoder");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case RAW_INT :&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; adec = gst_element_factory_make("identity", "pass through");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; default :&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; adec = gst_element_factory_make("decodebin", "decodebin decoder");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asink = gst_element_factory_make("alsasink", "alsa sink");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!aqueue || !adec || !asink) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_printerr ("One element could not be created. Exiting.\n");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set up the pipeline */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* we set the input filename to the source element */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_object_set (G_OBJECT (filesrc), "location", filePath, NULL);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* we add a message handler */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* we add all elements into the pipeline */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* file-source | avi-demuxer | vpu-decoder | video-output */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!isAudio) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_bin_add_many (GST_BIN (pipeline), filesrc, demuxer, vdec, vsink, NULL);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_bin_add_many (GST_BIN (pipeline), filesrc, demuxer, vdec, vsink, aqueue, adec, asink, NULL);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* we link the elements together */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* file-source -&amp;gt; ogg-demuxer ~&amp;gt; vorbis-decoder -&amp;gt; converter -&amp;gt; alsa-output */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_element_link (filesrc, demuxer);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_element_link(vdec, vsink);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(isAudio) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(audioCompression == OTHER) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_element_link(aqueue, adec);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_signal_connect (adec, "pad-added", G_CALLBACK (cb_newpad2), asink);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_element_link_many(aqueue, adec, asink, NULL);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_signal_connect (demuxer, "pad-added", G_CALLBACK (on_pad_added), this);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* note that the demuxer will be linked to the decoder dynamically.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The reason is that Ogg may contain various streams (for example&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; audio and video). The source pad(s) will be created at run time,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by the demuxer when it detects the amount and nature of streams.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Therefore we connect a callback function which will be executed&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when the "pad-added" is emitted.*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set the pipeline to "Ready" state*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_print ("Now ready: %s\n", filePath);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_element_set_state(pipeline, GST_STATE_READY);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; videoState = READY;&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Jan 2014 10:40:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287653#M34195</guid>
      <dc:creator>francoisrey</dc:creator>
      <dc:date>2014-01-07T10:40:23Z</dc:date>
    </item>
    <item>
      <title>Re: Gstreamer 0.10 function gst_element_set_state hang</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287654#M34196</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;with&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void&lt;BR /&gt;GstPlayer::findVideoCompression(char* filePath)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GstBus *intBus;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; isAudio = false;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Create gstreamer elements */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pipeline = gst_pipeline_new ("pipe");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; filesrc = gst_element_factory_make ("filesrc", "source");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; demuxer&amp;nbsp; = gst_element_factory_make ("avidemux", "avi-demuxer");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; findtype = gst_element_factory_make ("typefind", "video typefinder");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vsink = gst_element_factory_make ("fakesink", "vsink");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!pipeline || !filesrc || !demuxer || !findtype || !vsink) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_printerr ("One element could not be created. Exiting.\n");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_object_set (G_OBJECT (filesrc), "location", filePath, NULL);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; intBus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_bus_add_watch (intBus, bus_call, loop);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_object_unref (intBus);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_bin_add_many(GST_BIN (pipeline), filesrc, demuxer, findtype, vsink, NULL);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_element_link (filesrc, demuxer);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_element_link(findtype, vsink);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_signal_connect (demuxer, "pad-added", G_CALLBACK (on_pad_added_fv), this);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_signal_connect (findtype, "have-type", G_CALLBACK (cb_typefound_fv), this);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_main_loop_run (loop);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* unset */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_object_unref (GST_OBJECT (pipeline));&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void&lt;BR /&gt;GstPlayer::findAudioCompression(char* filePath)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GstBus *intBus;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Create gstreamer elements */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pipeline = gst_pipeline_new ("pipe");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; filesrc = gst_element_factory_make ("filesrc", "source");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; demuxer&amp;nbsp; = gst_element_factory_make ("avidemux", "avi-demuxer");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; findtype = gst_element_factory_make ("typefind", "video typefinder");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; asink = gst_element_factory_make ("fakesink", "asink");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!pipeline || !filesrc || !demuxer || !findtype || !asink) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_printerr ("One element could not be created. Exiting.\n");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_object_set (G_OBJECT (filesrc), "location", filePath, NULL);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; intBus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_bus_add_watch (intBus, bus_call, loop);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_object_unref (intBus);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_bin_add_many(GST_BIN (pipeline), filesrc, demuxer, findtype, asink, NULL);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_element_link (filesrc, demuxer);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_element_link(findtype, asink);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_signal_connect (demuxer, "pad-added", G_CALLBACK (on_pad_added_fa), this);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_signal_connect (findtype, "have-type", G_CALLBACK (cb_typefound_fa), this);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_main_loop_run (loop);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* unset */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gst_object_unref (GST_OBJECT (pipeline));&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Jan 2014 10:47:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287654#M34196</guid>
      <dc:creator>francoisrey</dc:creator>
      <dc:date>2014-01-07T10:47:49Z</dc:date>
    </item>
    <item>
      <title>Re: Gstreamer 0.10 function gst_element_set_state hang</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287655#M34197</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Any useful log? enable the most verbose level (5).&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Jan 2014 13:12:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287655#M34197</guid>
      <dc:creator>LeonardoSandova</dc:creator>
      <dc:date>2014-01-07T13:12:03Z</dc:date>
    </item>
    <item>
      <title>Re: Gstreamer 0.10 function gst_element_set_state hang</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287656#M34198</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The last log which I can see is the following :&lt;/P&gt;&lt;P&gt;0:21:22.543127820&amp;nbsp; 1455 default segment start=0, stop=12886009192, last_stop=0, duration=25770984840, rate=0.000000, applied_rate=0.000000, flags=0x00, time=0:02:17.438953600, accum=0:00:04.294967296 WARN mfw_v4lsink mfw_gst_v4l_buffer.c:752:mfw_gst_v4l2_free_buffers: try to free buffer 9 at state 4&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Jan 2014 15:43:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287656#M34198</guid>
      <dc:creator>francoisrey</dc:creator>
      <dc:date>2014-01-07T15:43:57Z</dc:date>
    </item>
    <item>
      <title>Re: Gstreamer 0.10 function gst_element_set_state hang</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287657#M34199</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Not so useful. I would say to try other media files and other demuxers (aiurdemux, this is the one Freescale supports) and see if the issue is reproducible. By the way, For these cases, I suggest --gst-debug=*:5 verbosity.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Leo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Jan 2014 18:03:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287657#M34199</guid>
      <dc:creator>LeonardoSandova</dc:creator>
      <dc:date>2014-01-07T18:03:36Z</dc:date>
    </item>
    <item>
      <title>Re: Gstreamer 0.10 function gst_element_set_state hang</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287658#M34200</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I've recently encountered the same problem.&amp;nbsp; I have a pipeline that I construct programmatically.&amp;nbsp; When it is frequently restarted (torn down and reconstructed) it often locks up when stopping, specifically when attempting to set the mfw_v4lsink from PLAYING to PAUSED.&amp;nbsp; The hang occurs in gst_element_set_state(...) and gdb reveals that the video sink thread is stuck in ioctl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any ideas of what's happening and/or how to avoid this problem?&amp;nbsp; So far the best we can come up with is to detect when the process locks up and restart it...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Ernie&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Apr 2014 19:33:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287658#M34200</guid>
      <dc:creator>egremillion</dc:creator>
      <dc:date>2014-04-25T19:33:07Z</dc:date>
    </item>
    <item>
      <title>Re: Gstreamer 0.10 function gst_element_set_state hang</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287659#M34201</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am encountering this problem as well, except&amp;nbsp; I am setting the mfx_v4lsink from PAUSED to PLAYING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I also have to detect this case and restart by setting the state to NULL then back to PLAYING.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 May 2014 17:22:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287659#M34201</guid>
      <dc:creator>cetzweiler</dc:creator>
      <dc:date>2014-05-05T17:22:04Z</dc:date>
    </item>
    <item>
      <title>Re: Gstreamer 0.10 function gst_element_set_state hang</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287660#M34202</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi francoisrey - did you figure out a solution to this or a good workaround?&amp;nbsp; Were you using the mfw_v4lsink?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm thinking about re-posting this question to see if we can get some attention from Freescale...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;Ernie&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 May 2014 17:34:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287660#M34202</guid>
      <dc:creator>egremillion</dc:creator>
      <dc:date>2014-05-05T17:34:39Z</dc:date>
    </item>
    <item>
      <title>Re: Gstreamer 0.10 function gst_element_set_state hang</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287661#M34203</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have the same problem but I am not using mfw_4lsink.&lt;/P&gt;&lt;P&gt;I can set the state to GST_STATE_NULL just the first time and then &lt;STRONG style=": ; color: #a9a9a9; font-style: inherit; font-family: inherit; font-weight: inherit;"&gt; gst_element_set_state &lt;/STRONG&gt;hangs, setting state to GST_STATE_PAUSE works, at least twice.&lt;/P&gt;&lt;P&gt;Has someone a solution?&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;Thanks.&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Aug 2014 14:36:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287661#M34203</guid>
      <dc:creator>ieio</dc:creator>
      <dc:date>2014-08-26T14:36:12Z</dc:date>
    </item>
    <item>
      <title>Re: Gstreamer 0.10 function gst_element_set_state hang</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287662#M34204</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/francoisrey"&gt;francoisrey&lt;/A&gt; can you let us know the status of this case?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Nov 2014 14:24:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287662#M34204</guid>
      <dc:creator>karina_valencia</dc:creator>
      <dc:date>2014-11-10T14:24:33Z</dc:date>
    </item>
    <item>
      <title>Re: Gstreamer 0.10 function gst_element_set_state hang</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287663#M34205</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi.&lt;/P&gt;&lt;P&gt;I'm experiecing this same problem (kernel 4.1), I have found a weird workaround: g_usleep(500000) before set pipeline to GST_STATE_NULL. I don't know why but it works.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Nov 2016 15:02:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Gstreamer-0-10-function-gst-element-set-state-hang/m-p/287663#M34205</guid>
      <dc:creator>javiervalcarce</dc:creator>
      <dc:date>2016-11-15T15:02:41Z</dc:date>
    </item>
  </channel>
</rss>

