[Bug 792743] New: glcolorbalance causes decoderbin not to link with vaapih264enc !!

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sun Jan 21 01:36:06 UTC 2018


https://bugzilla.gnome.org/show_bug.cgi?id=792743

            Bug ID: 792743
           Summary: glcolorbalance causes decoderbin not to link with
                    vaapih264enc !!
    Classification: Platform
           Product: GStreamer
           Version: 1.x
                OS: Linux
            Status: NEW
          Severity: critical
          Priority: Normal
         Component: gstreamer (core)
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: tapascst at gmail.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

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...
<b><i>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</i></b>
^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 ?

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list