pipeline failure when going from cmdline to app.
Ashwini Sharma
ak.ashwini at gmail.com
Thu Mar 10 23:25:40 PST 2011
Now i need to capture the Section data of TS stream. I know this is posted
by mpegtsparse element onto the bus.
But what i dont know is that, what is *message type and how do i capture
this data...?*
**
Any clue...
-Ashwini
On Fri, Mar 11, 2011 at 12:53 PM, Ashwini Sharma <ak.ashwini at gmail.com>wrote:
> Thanks a ton Nathanael.
> It worked for me.
>
>
>
> On Fri, Mar 11, 2011 at 12:25 PM, Nathanael D. Noblet <nathanael at gnat.ca>wrote:
>
>> On 03/10/2011 11:15 PM, Ashwini Sharma wrote:
>>
>>> Hi All,
>>>
>>> I am trying to play a mp4 file. When I play from command line using the
>>> pipe:
>>> "gst-launch filesrc location=/home/ashwini/streams/output.ts !
>>> mpegtsparse ! mpegtsdemux ! decodebin ! ffmpegcolorspace ! ximagesink"
>>>
>>> The video is displayed well.
>>> But when i try to achieve the same pipe thru the application, It fails.
>>>
>>> The code snippet of pipelie creation is as follows:
>>>
>>> pipeline = gst_pipeline_new ("gst-player");
>>> //gst_debug_set_default_threshold(GST_LEVEL_DEBUG);
>>> gst_debug_set_threshold_for_name("mpegtsparse",GST_LEVEL_DEBUG);
>>> src = gst_element_factory_make ("filesrc", NULL);
>>> g_assert (src);
>>> g_print("URI = %s\n",uri);
>>> g_object_set (G_OBJECT (src), "location", uri, NULL);
>>> parse = gst_element_factory_make ("mpegtsparse", NULL);
>>> g_assert (parse);
>>> demux = gst_element_factory_make ("mpegtsdemux", NULL);
>>> g_assert (demux);
>>> dec = gst_element_factory_make ("decodebin", NULL);
>>> g_assert (dec);
>>> csp = gst_element_factory_make ("ffmpegcolorspace", NULL);
>>> g_assert (csp);
>>> videosink = gst_element_factory_make ("ximagesink", NULL);
>>> g_assert (videosink);
>>>
>>> /* Adding elements to the pipeline */
>>> gst_bin_add_many (GST_BIN (pipeline), src, parse, demux, dec, csp,
>>> videosink, NULL);
>>> // gst_bin_add_many (GST_BIN (pipeline), src, videosink, NULL);
>>> // g_assert (gst_element_link_many (src, parse, demux, dec, csp,
>>> videosink, NULL));
>>> g_assert (gst_element_link (src, parse));
>>> g_assert (gst_element_link (parse, demux));
>>> gst_element_link (demux, dec);
>>> (gst_element_link (dec, csp));
>>> (gst_element_link (csp, videosink));
>>> if (GST_IS_X_OVERLAY (videosink))
>>> {
>>> gst_x_overlay_set_xwindow_id (GST_X_OVERLAY (videosink),
>>> GPOINTER_TO_INT (window));
>>> }
>>>
>>> gst_element_set_state (pipeline, GST_STATE_PLAYING);
>>>
>>> What could be causing it to fail. (In the above snippet described, I
>>> have used the gst-player code and modified the pipe to current state)
>>>
>>> Any help is appreciated.
>>>
>>
>> You need to listen for 'pad-added' signal from the decoder and check the
>> gst_element_link() calls for success.
>>
>>
>> http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/chapter-helloworld.html
>>
>> --
>> Nathanael d. Noblet
>> t 403.875.4613
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20110311/e90a8616/attachment.htm>
More information about the gstreamer-devel
mailing list