openframeworks / openFrameworks

openFrameworks is a community-developed cross platform toolkit for creative coding in C++.
http://openframeworks.cc
Other
9.97k stars 2.56k forks source link

gstreamer 1.20.0 breaks video on Linux #6871

Closed kflak closed 2 years ago

kflak commented 2 years ago

Hi,

I just updated my system, and it seems gstreamer breaks any video playback. Getting this when running the videoPlayer example:

[notice ] ofGstUtils: Got context from element 'vaapipostproc0': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayX11\)\ gldisplayx11-0";

[notice ] ofGstUtils: Got context from element 'vaapipostproc0': gst.vaapi.Display=context, gst.vaapi.Display=(GstVaapiDisplay)"\(GstVaapiDisplayGLX\)\ vaapidisplayglx0", gst.vaapi.Display.GObject=(GstObject)"\(GstVaapiDisplayGLX\)\ vaapidisplayglx0";

(videoPlayerExample:12633): GStreamer-Base-CRITICAL **: 16:43:43.970: basetransform: second attempt to fixate caps returned invalid (NULL) caps on pad vaapipostproc0:sink

(videoPlayerExample:12633): GStreamer-Base-CRITICAL **: 16:43:43.970: basetransform: second attempt to fixate caps returned invalid (NULL) caps on pad vaapipostproc0:sink

(videoPlayerExample:12633): GStreamer-Base-CRITICAL **: 16:43:43.971: basetransform: second attempt to fixate caps returned invalid (NULL) caps on pad vaapipostproc0:sink

(videoPlayerExample:12633): GStreamer-Base-CRITICAL **: 16:43:43.971: basetransform: second attempt to fixate caps returned invalid (NULL) caps on pad vaapipostproc0:sink

(videoPlayerExample:12633): GStreamer-Base-CRITICAL **: 16:43:43.971: basetransform: second attempt to fixate caps returned invalid (NULL) caps on pad vaapipostproc0:sink

(videoPlayerExample:12633): GStreamer-Base-CRITICAL **: 16:43:43.971: basetransform: second attempt to fixate caps returned invalid (NULL) caps on pad vaapipostproc0:sink

(videoPlayerExample:12633): GStreamer-Base-CRITICAL **: 16:43:43.972: basetransform: second attempt to fixate caps returned invalid (NULL) caps on pad vaapipostproc0:sink
[ error ] ofGstUtils: startPipeline(): unable to pause pipeline after 5s[ error ]
ofGstUtils: gstHandleMessage(): embedded video playback halted for plugin, module qtdemux0  reported: Internal data stream error.[warning] ofGstVideoUtils: update(): ofGstVideoUtils not loaded

Needless to say, this is a HUGE bug. Please, please, please wait with upgrading gstreamer until this is fixed.

Running this on Arch Linux, oF version 0.11.2. Tested on xorg (bspwm) and wayland (sway).

EDIT: tested now with the latest nightly build, of_v20220210_linux64gcc6_nightly, and getting the same result.

kflak commented 2 years ago

It still works on my Debian 11 Testing, just updated, using the latest nightly of oF.

libgstreamer is now 1.20-3.

I also have libgstreamer-opencv1.0-0 libgstreamer-plugins-bad1.0-0 libgstreamer-plugins-bad1.0-dev libgstreamer-plugins-base1.0-0 libgstreamer-plugins-base1.0-dev all version 1.20.3

Aha! Figured out the problem. I needed to install gstreamer-vaapi for the videoPlayer example to work. So it seems this should be included in the archlinux install script. I also noticed that another non-existent package is included in the script, gst-libav-x11. I suppose this has been superceded by gst-libav, but I am not sure about this...

ofTheo commented 2 years ago

@kflak - thanks for this! Would you want to do a Pull Request for the archlinux install_dependencies scripts?

kflak commented 2 years ago

Sure! Will try to get to it today.

On Thu, Oct 20, 2022 at 20:51, Theodore Watson @.***> wrote:

@.***(https://github.com/kflak) - thanks for this! Would you want to do a Pull Request for the archlinux install_dependencies scripts?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>