https://bugs.documentfoundation.org/show_bug.cgi?id=148864

--- Comment #8 from Jan-Marek Glogowski <[email protected]> ---
FWIW the playback in the Impress frame is also broken before the commits. My
~/.xsession-errors has many "qt.qpa.xcb: QXcbConnection: XCB error:..." entries
with BadDrawable and BadWindow entries.

The result (working or broken overlay) already changes here, if I add just a
SAL_DEBUG(std::hex << rData.GetWindowHandle(this)); to
QtFrame::ResolveWindowHandle. And a RunInMain just adds to the fragility;
sometimes it works with some other combination, like commenting the
"pChild->setAttribute(Qt::WA_NativeWindow);" call.

This looks more like the whole GStreamer X11 overlay approach already just was
working with Qt by pure chance.

At least that winId() refers to some existing Window from "xwininfo -tree
-root", but interestingly not the leaf window on playback. AFAIK avmedia
creates this subwindow for the overlay and there might be a problem with the
returned AWT window from (X)Player::createPlayerWindow in Qt.

Oh, and gtk3 does use some gtk specific video sink, not direct X11 overlay.
gtk4 has it's own player implementation in avmedia/source/gtk using the Gtk 4
multimedia functions; I had some other bug where I mentioned to use Qt
multimedia instead of direct gstreamer. Both toolkit abstraction work probably
better generally and it would work eventually in other platforms.

Playback in Impress is generally broken for gen and qt, because the internal
playing window doesn't resize the gstreamer overlay on its resize, so plays
with a 1x1 overlay per default. I already fixed that, but again it works in
gen, but Qt results in brokenness, where now the position is relative to the
whole Impress window, but the overlay clipping happens based on the QtObject
window, so I see the lower right corner of that video in the upper left corner
of the video frame. Mostly. And the video is actually not playing for Qt, just
gen.

And clicking on the overly in Qt sometimes moves it and might even crash LO.
Ohh, and I just hit DBG_TESTSOLARMUTEX in gdb abort in
WindowOutputDevice::AcquireGraphics... so some MT stuff might be the real bug;
lets see where that path leads to. That abort is definitely a fixable bug.

BTW: all this is just talking about the actual visual video. The media plays
correctly, audio always works.
And the sidebar slider isn't updated and the button states are wrong while
playing, but that is more of a nuisance, compared to the broken playback.

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

Reply via email to