decodebin fails to link with glcolorbalance (gstreamer version 1.12.4)

tapas tapascst at gmail.com
Sun Jan 21 01:15:00 UTC 2018


*If I use below pipeline then I can broadcast to youtube  successfully*: 

gst-launch-1.0 filesrc
location=Recorded_live_streaming_on__2018_01_20___13_56_33.219076__-0800.flv
! decodebin name=demux ! queue ! videorate ! video/x-raw,framerate=30/1 !
glupload ! glcolorconvert ! gldownload ! video/x-raw ! vaapih264enc
dct8x8=true cabac=true rate-control=cbr bitrate=8192 keyframe-period=60
max-bframes=0 ! flvmux name=mux ! rtmpsink sync=true async=true
location="rtmp://x.rtmp.youtube.com/XXXXX live=1" demux. ! queue !
progressreport ! audioconvert ! audiorate ! audioresample ! faac
bitrate=128000 ! audio/mpeg,mpegversion=4,stream-format=raw ! mux.

error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
Setting pipeline to PAUSED ...
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
Pipeline is PREROLLING ...
Got context from element 'vaapiencodeh264-0': gst.vaapi.Display=context,
gst.vaapi.Display=(GstVaapiDisplay)"\(GstVaapiDisplayGLX\)\
vaapidisplayglx1";
Got context from element 'gldownloadelement0': gst.gl.GLDisplay=context,
gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayX11\)\ gldisplayx11-0";
Redistribute latency...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
progressreport0 (00:00:05): 4 / 1984 seconds ( 0.2 %)
progressreport0 (00:00:10): 9 / 1984 seconds ( 0.5 %)
progressreport0 (00:00:15): 14 / 1984 seconds ( 0.7 %)
progressreport0 (00:00:20): 19 / 1984 seconds ( 1.0 %)


*However, if I use glcolorbalance in this pipeline then it gives me
following error and I cannot stream to youtube any more: *

gst-launch-1.0 filesrc
location=Recorded_live_streaming_on__2018_01_20___13_56_33.219076__-0800.flv
! decodebin name=demux ! queue ! videorate ! video/x-raw,framerate=30/1 !
glupload ! glcolorbalance ! glcolorconvert ! gldownload ! video/x-raw !
vaapih264enc dct8x8=true cabac=true rate-control=cbr bitrate=8192
keyframe-period=60 max-bframes=0 ! flvmux name=mux ! rtmpsink sync=true
async=true location="rtmp://x.rtmp.youtube.com/XXXXX live=1" demux. ! queue
! progressreport ! audioconvert ! audiorate ! audioresample ! faac
bitrate=128000 ! audio/mpeg,mpegversion=4,stream-format=raw ! mux.

error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
Setting pipeline to PAUSED ...
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
Pipeline is PREROLLING ...
Got context from element 'vaapiencodeh264-0': gst.vaapi.Display=context,
gst.vaapi.Display=(GstVaapiDisplay)"\(GstVaapiDisplayGLX\)\
vaapidisplayglx1";
Got context from element 'gldownloadelement0': gst.gl.GLDisplay=context,
gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayX11\)\ gldisplayx11-0";
Redistribute latency...
*/WARNING: from element /GstPipeline:pipeline0/GstDecodeBin:demux: Delayed
linking failed.
Additional debug info:
./grammar.y(510): gst_parse_no_more_pads ():
/GstPipeline:pipeline0/GstDecodeBin:demux:
failed delayed linking some pad of GstDecodeBin named demux to some pad of
GstQueue named queue0/*
^Chandling interrupt.
Interrupt: Stopping pipeline ...
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

It seems like glcolorbalanc is causing decodebin not to link with
vaapih264enc since it is the only difference between above pipeline.

I am new to gstreamer and Can any one tell me what is wrong with 2nd
pipeline and why linking is failing ? 




--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/


More information about the gstreamer-devel mailing list