2016-06-20 53 views
0
私は、このパイプラインを使用し

ストリーミングタスクが一時停止した理由、理由エラー(-5)?

gst-launch-1.0 -e videotestsrc pattern="snow" ! video/x-raw, framerate=10/1, width=200, height=150 ! videomixer name=mix ! autovideosink videotestsrc ! video/x-raw, framerate=10/1, width=640, height=360 ! mix. 

しかし、出力ウィンドウを閉じた後、

EOS on shutdown enabled -- waiting for EOS after Error 
Waiting for EOS... 
ERROR: from element /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc1: Internal data flow error. 
Additional debug info: 
gstbasesrc.c(2946): gst_base_src_loop(): /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc1: 
streaming task paused, reason error (-5) 
ERROR: from element /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: Internal data flow error. 
Additional debug info: 
gstbasesrc.c(2946): gst_base_src_loop(): /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: 
streaming task paused, reason error (-5) 

どういうことを意味し、このストリーミングタスクが一時停止するもので、理由はエラー(-5)エラーはどういう意味ですか?

答えて

1

あなたのパイプラインは私のために働きますが、Ctrl + Cで閉じるのではなく、ウィンドウを閉じることによって閉じなければなりません。その理由は、クローズウィンドウの適切な処理が実装されていないからです他のビデオシンク..私は知らない)。 the errorのためにドキュメントをチェックするとき

GST_DEBUG=3 gst-launch-1.0 -e videotestsrc pattern="snow" ! ximagesink 

GST_FLOW_ERROR Some (fatal) error occurred. Element generating this error should post an error message with more details.

まあ、我々が調べ

問題も、この簡単なパイプ(あなたがglimagesinkとxvimagesinkを試みることができるが、エラーが似ている)とともに上昇しますより高いデバッグログの問題(すでにこのレッスンを学んでいるはずです):

0:00:02.697769439 29872 0x2647590 WARN ximagesink ximagesink.c:1423:gst_x_image_sink_show_frame: could not output image - no window

0:00:02.697815511 29872 0x2647590 WARN basesrc gstbasesrc.c:2943:gst_base_src_loop: error:

Internal data flow error.

0:00:02.697826432 29872 0x2647590 WARN basesrc gstbasesrc.c:2943:gst_base_src_loop: error: streaming task paused, reason error (-5)

まあエラーは明白です:

could not output image - no window 

はところでエラーコードは次のとおりです。

typedef enum { 
    /* custom success starts here */ 
    GST_FLOW_CUSTOM_SUCCESS_2 = 102, 
    GST_FLOW_CUSTOM_SUCCESS_1 = 101, 
    GST_FLOW_CUSTOM_SUCCESS = 100, 

    /* core predefined */ 
    GST_FLOW_OK    = 0, 
    /* expected failures */ 
    GST_FLOW_NOT_LINKED  = -1, 
    GST_FLOW_FLUSHING  = -2, 
    /* error cases */ 
    GST_FLOW_EOS   = -3, 
    GST_FLOW_NOT_NEGOTIATED = -4, 
    GST_FLOW_ERROR   = -5, 
    GST_FLOW_NOT_SUPPORTED = -6, 

    /* custom error starts here */ 
    GST_FLOW_CUSTOM_ERROR = -100, 
    GST_FLOW_CUSTOM_ERROR_1 = -101, 
    GST_FLOW_CUSTOM_ERROR_2 = -102 
} GstFlowReturn; 

だから、再び - 解決策ではなく、ウィンドウのクロスを打つのはCtrl + Cでそれを停止することです。これならばunaceptableであるなら、あなたはウィンドウを閉じて適切な処理をすることでC言語で実装しなければならないでしょう(私はgstreamerのドキュメントでチュートリアルがあったと誓っています)。

関連する問題