用于videotestsrc的gstreamer“内部数据流错误”

时间:2014-02-25 13:39:54

标签: arm gstreamer

我正在使用gstreamer svgoverlay插件处理应用。我的硬件平台是AM335x入门套件,操作系统是Arago linux(提供ti)。作为root-fs一部分的gstreamer没有svgoverlay插件。所以我用this repo。

中的包替换了gstreamer

测试pipline(“gst-launch-0.10 -v videotestsrc!fbdevsink”)在原始gstreamer中没有任何问题。但是对于新的gstreamer,它失败了“内部数据流错误”。这是gstreamer调试输出的相关部分:

    0 [36mDEBUG  [00m [00;04m             default gstsegment.c:455:gst_segment_set_newsegment_full:[00m old segment was: 0xdcc00
    0:00:01.737060548 [336m 1751[00m    0xadf30 [36mDEBUG  [00m [00m            basesink gstbasesink.c:1455:gst_base_sink_configure_segment:<fbdevsink0>[00m configured NEWSEGMENT update 0, rate 1.000000, applied rate 1.000000, format GST_FORMAT_TIME, 0:00:00.000000000 -- 99:99:99.999999999, time 0:00:00.000000000, accum 0:00:00.000000000
    0:00:01.737182618 [336m 1751[00m    0xadf30 [36mDEBUG  [00m [00m            basesink gstbasesink.c:3120:gst_base_sink_queue_object_unlocked:<fbdevsink0>[00m now 0 prerolled items
    0:00:01.737243653 [336m 1751[00m    0xadf30 [36mDEBUG  [00m [00m            basesink gstbasesink.c:3173:gst_base_sink_queue_object_unlocked:<fbdevsink0>[00m need more preroll data 0 <= 0
    0:00:01.737335206 [336m 1751[00m    0xadf30 [36mDEBUG  [00m [00;01;31;41m            GST_PADS gstpad.c:5370:gst_pad_send_event:<fbdevsink0:sink>[00m sent event, result 1
    0:00:01.737396241 [336m 1751[00m    0xadf30 [37mLOG    [00m [00;01;31;41m            GST_PADS gstpad.c:5221:gst_pad_push_event:<videotestsrc0:src>[00m sent event to peerpad 0xd30d8, result 1
    0:00:01.737548829 [336m 1751[00m    0xadf30 [37mLOG    [00m [00;01;31;41m            GST_PADS gstpad.c:4683:gst_pad_push:<videotestsrc0:src>[00m Taking slow path
    0:00:01.737640382 [336m 1751[00m    0xadf30 [36mDEBUG  [00m [00;01;31;41m            GST_PADS gstpad.c:4207:gst_pad_chain_data_unchecked:<fbdevsink0:sink>[00m caps changed to 0xcd360 0xcd360
    0:00:01.737762452 [336m 1751[00m    0xadf30 [36mDEBUG  [00m [00;01;34m            GST_CAPS gstpad.c:2761:gst_pad_configure_sink:<fbdevsink0:sink>[00m caps 0xcd360 not accepted
    0:00:01.737854005 [336m 1751[00m    0xadf30 [37mLOG    [00m [00;01;42m          GST_BUFFER gstbuffer.c:195:gst_buffer_finalize:[00m finalize 0xdd270
    0:00:01.738067628 [336m 1751[00m    0xadf30 [37mLOG    [00m [00;01;35m      GST_SCHEDULING gstpad.c:4313:gst_pad_chain_data_unchecked:<fbdevsink0:sink>[00m pushing data but pad did not accept
    0:00:01.738159181 [336m 1751[00m    0xadf30 [32;01mINFO   [00m [00m             basesrc gstbasesrc.c:2511:gst_base_src_loop:<videotestsrc0>[00m pausing after gst_pad_push() = not-negotiated
    0:00:01.738220216 [336m 1751[00m    0xadf30 [36mDEBUG  [00m [00m             basesrc gstbasesrc.c:2537:gst_base_src_loop:<videotestsrc0>[00m pausing task, reason not-negotiated
    0:00:01.738281251 [336m 1751[00m    0xadf30 [36mDEBUG  [00m [00;01;31;41m            GST_PADS gstpad.c:5586:gst_pad_pause_task:<videotestsrc0:src>[00m pause task
    0:00:01.738342286 [336m 1751[00m    0xadf30 [36mDEBUG  [00m [00m                task gsttask.c:683:gst_task_set_state:<videotestsrc0:src>[00m Changing task 0xe1830 to state 2
    0:00:01.738464357 [336m 1751[00m    0xadf30 [36mDEBUG  [00m [00;01;34m           GST_EVENT gstevent.c:270:gst_event_new:[00m creating new event 0xe0600 eos 86
    0:00:01.738586427 [336m 1751[00m    0xadf30 [33;01mWARN   [00m [00m             basesrc gstbasesrc.c:2574:gst_base_src_loop:<videotestsrc0>[00m error: Internal data flow error.
    0:00:01.738647462 [336m 1751[00m    0xadf30 [33;01mWARN   [00m [00m             basesrc gstbasesrc.c:2574:gst_base_src_loop:<videotestsrc0>[00m error: streaming task paused, reason not-negotiated (-4)
    0:00:01.738739015 [336m 1751[00m    0xadf30 [36mDEBUG  [00m [00;01;37;41m         GST_MESSAGE gstelement.c:1834:gst_element_message_full:<videotestsrc0>[00m start
    0:00:01.738891603 [336m 1751[00m    0xadf30 [32;01mINFO   [00m [00;01;31;47m    GST_ERROR_SYSTEM gstelement.c:1865:gst_element_message_full:<videotestsrc0>[00m posting message: Internal data flow error.
    0:00:01.739044190 [336m 1751[00m    0xadf30 [37mLOG    [00m [00;01;37;41m         GST_MESSAGE gstmessage.c:184:gst_message_init:[00m new message 0x99588
    0:00:01.739105226 [336m 1751[00m    0xadf30 [37mLOG    [00m [00;01;37;41m         GST_MESSAGE gstmessage.c:270:gst_message_new_custom:[00m source videotestsrc0: creating new message 0x99588 error
    0:00:01.739196778 [336m 1751[00m    0xadf30 [36mDEBUG  [00m [00;43m             GST_BUS gstbus.c:307:gst_bus_post:<bus0>[00m [msg 0x99588] posting on bus, type error, 0xc8848 from source 0xda140
    0:00:01.739288331 [336m 1751[00m    0xadf30 [36mDEBUG  [00m [00;01m                 bin gstbin.c:3091:gst_bin_handle_message_func:<pipeline0>[00m [msg 0x99588] handling child videotestsrc0 message of type error
    0:00:01.739349366 [336m 1751[00m    0xadf30 [36mDEBUG  [00m [00;01m                 bin gstbin.c:3098:gst_bin_handle_message_func:<pipeline0>[00m got ERROR message, unlocking state change
    0:00:01.739440919 [336m 1751[00m    0xadf30 [36mDEBUG  [00m [00;01m                 bin gstbin.c:3381:gst_bin_handle_message_func:<pipeline0>[00m posting message upward
    0:00:01.739501954 [336m 1751[00m    0xadf30 [36mDEBUG  [00m [00;43m             GST_BUS gstbus.c:307:gst_bus_post:<bus1>[00m [msg 0x99588] posting on bus, type error, 0xc8848 from source 0xda140
    0:00:01.739562989 [336m 1751[00m    0xadf30 [36mDEBUG  [00m [00;43m             GST_BUS gstbus.c:337:gst_bus_post:<bus1>[00m [msg 0x99588] pushing on async queue
    0:00:01.739898683 [336m 1751[00m    0x16050 [37mLOG    [00m [00;43m             GST_BUS gstbus.c:494:gst_bus_timed_pop_filtered:<bus1>[00m have 2 messages
    0:00:01.740051270 [336m 1751[00m    0x16050 [36mDEBUG  [00m [00;43m             GST_BUS gstbus.c:498:gst_bus_timed_pop_filtered:<bus1>[00m got message 0x99340, state-changed, type mask is 4294967295
    0:00:01.740142823 [336m 1751[00m    0x16050 [36mDEBUG  [00m [00;43m             GST_BUS gstbus.c:759:gst_bus_source_dispatch:<bus1>[00m source 0xadef0 calling dispatch with 0x99340
    0:00:01.740264894 [336m 1751[00m    0x16050 [36mDEBUG  [00m [00;43m             GST_BUS gstbus.c:951:poll_func:[00m mainloop 0x85538 quit

我是gstreamer的新手,所以我不确定这个错误意味着什么。有人可以帮我吗。

注意:由于this,我需要使用“fbdevsink”。

1 个答案:

答案 0 :(得分:3)

如果您看到“流媒体任务已暂停,原因未协商(-4)”,那么您已尝试链接不兼容的元素,或者某些相关元素未正确处理上限。

使用gst-launch时,我会这样做:

GST_DEBUG_DUMP_DOT_DIR=$PWD gst-launch-1.0 ...

当它失败时,取出最后生成的* .dot文件并将其渲染

dot -Tsvg xxx.dot -o graph.svg

打开svg并查看连接并检查未协商上限的位置。在你的情况下,我会得到它是“fbdevsink”。

最后发布日志时,使用GST_DEBUG_NO_COLOR = 1来保存没有颜色代码的日志。