Created attachment 8840
assembled playbin3 pipeline
Parole is playing big_buck_bunny_720p_h264.mov as a slide show with probably plenty frames dropped.
In the same environment
"$ GST_DEBUG_DUMP_DOT_DIR=./ gst-launch-1.0 playbin3 uri=file://$(pwd)/big_buck_bunny_720p_h264.mov"
is playing flawless and assembles a pipeline as visualized in playbin3-pipeline.pdf.
Parole seems not to obey the GST_DEBUG_DUMP_DOT_DIR environment variable. I tried to drop in some
"GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS (GST_ELEMENT (gst->priv->playbin), GST_DEBUG_GRAPH_SHOW_ALL, "parole-pipeline");"
but unfortunately I do not understand the parole code good enough to drop it in at the proper place.
How can this be further investigated?
Created attachment 8846
dump graph patch
Ok, I have probably found a suitable place for graph dump support and applied dump-graph.patch.
Created attachment 8847
parole automatic pipeline
The visualized pipeline in parole-automatic-pipeline.pdf uncovers that the automatic video sink selection only selects the not accelerated ximagesink.
Created attachment 8848
parole xvimagesink pipeline
Forcing xvimagesink, as visualized in parole-xvimagesink-pipeline.pdf, is playing flawless.
Fixing the nonexistent autoimagesink with autovideosink makes the proper selection work. Unfortunately then the overlay setup is no longer working reliable and xvimagesink is opening its own window instead of embedding it in the parole window.
This is probably to blame calling GUI toolkit functions from the streaming thread. See https://gstreamer.freedesktop.org/documentation/video/gstvideooverlay.html for reference:
"It is generally not advisable to call any GUI toolkit functions or window system functions from the streaming thread in which the prepare-window-handle message is handled, because most GUI toolkits and windowing systems are not thread-safe at all and a lot of care would be required to co-ordinate the toolkit and window system calls of the different threads (Gtk+ users please note: prior to Gtk+ 2.18 GDK_WINDOW_XID was just a simple structure access, so generally fine to do within the bus sync handler; this macro was changed to a function call in Gtk+ 2.18 and later, which is likely to cause problems when called from a sync handler; see below for a better approach without GDK_WINDOW_XID used in the callback)."
So I guess parole_gst_set_video_overlay() need to be reworked. It should be an issue already even without autovideosink.
-- GitLab Migration Automatic Message --
This bug has been migrated to xfce.org's GitLab instance and has been closed from further activity.
You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.xfce.org/apps/parole/-/issues/51.
Please create an account or use an existing account on one of our supported OAuth providers.
If you want to fork to submit patches and merge requests please continue reading here: https://docs.xfce.org/contribute/dev/git/start#gitlab_forks_and_merge_requests
Also feel free to reach out to us on the mailing list https://mail.xfce.org/mailman/listinfo/xfce4-dev