An additional fix for tdf#170681. It loads media into QMediaPlayer in a separate thread to retrieve the size in the getPreferredPlayerWindowSize() function. The implementation is not the best - in the separate thread, the media is reloaded, but alas, this is the best I could achieve. Moving QMediaPlayer between threads does not move the QMediaPlayer backend (ffmpeg), and after loading, the player remains "dead." Creating two players in two different threads and then transferring the loaded buffer between them also didn't work. There is currently no way to read metadata without loading the file into QMediaPlayer. At the moment, I believe it's not possible to do better within Qt's limitations. If the QMediaPlayer issues are resolved, the solution can be improved. https://qt-project.atlassian.net/browse/QTBUG-125865 https://qt-project.atlassian.net/browse/QTBUG-128853 Change-Id: I1d6efe0819b299427536be833ec7c4262e894f3d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203390 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Audio / video Media Implementation.
Provides per-platform implementations of multimedia functionality. Currently no stream API is provided, only a URI based one, so streaming has to be wrapped around it via temp files.
Also provides (in source/framework/mediacontrol.cxx) an implementation
of the graphical media playback control that appears in the toolbar /
mediaobject bar when media is selected under the .uno:AVMediaToolBox
item.
avmedia / gstreamer
The avmedia component is implementation of manager service defined in
offapi/com/sun/star/media/. Radek has added implementation based on
gstreamer so that we can add audio and video files into impress
presentation on Linux with gstreamer.
The implementation is pretty straightforward, sometimes it has problems when gstreamer installation is incomplete.
In the beginning the media files were not embedded, Thorsten added support for that later.
Future Works
it might be worthwhile to revamp the avmedia UI.