2016-06-20 3 views
0

ich diese Pipeline verwendet,Was bedeutet Streaming-Task pausiert, Grund Fehler (-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. 

Aber Nachdem das Ausgabefenster schließen,

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) 

Was bedeutet das bedeutet, und was ist das Streaming Aufgabe pausiert, Fehlerursache (-5) Fehler bedeutet?

Antwort

1

Ihre Pipeline funktioniert für mich .. aber Sie müssen es mit Strg + C schließen nicht durch Schließen des Fensters .. Es ist, weil es keine ordnungsgemäße Handhabung des Schließens Fenster implementiert ist (vielleicht gibt es Flag für das irgendwo zu autovideosink oder anderes Video Waschbecken .. Ich weiß es nicht).

Das Problem mit selbst diesem einfachen Rohr steigt (man könnte versuchen, mit glimagesink und xvimagesink aber der Fehler ist ähnlich):

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

Bei der Überprüfung docs für the error:

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

Nun untersuchen wir, das Problem mit höheren Debug-Logs (Sie sollten diese Lektion schon gelernt haben!) Wir sehen:

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)

Wenn dies die Lösung ist es mit Strg + C .. Fensterkreuz des Schlagens statt zu stoppen -

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; 

Also noch einmal:

Nun, der Fehler liegt auf der Hand:

could not output image - no window 

Btw die Fehlercodes sind ist unaceptable dann müssen Sie es in C mit der richtigen Handhabung von Windows Closing implementieren (ich würde schwören, dass es Tutorial in gstreamer docs war ..)

Verwandte Themen