diff options
author | Zolnai Tamás <tamas.zolnai@collabora.com> | 2014-07-15 16:57:43 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2014-07-15 16:03:43 +0000 |
commit | 595d56b22d3b2ddc11c5c142139311c594170691 (patch) | |
tree | 309b634d6c7b5a055cd1d8d69ca9f3ef969d0e98 /slideshow | |
parent | f899e508c35b6170bc11fc2eb4a74ec58d895625 (diff) |
Optimize media rendering during slideshow: save one grabFrame() call
'FallbackGraphic' property introduced in:
b862a216f769d10e726ad759762b5e6a412acdaf
contains the previously called grabFrame's
result, so we can use that instead of render the media
frame again (it affects glTF models too).
In case of huge glTF models it can avoid run out of memory
problem.
(cherry picked from commit 358d6006f1d9652aaf01661ea8dba4d7ec46d508)
Change-Id: Ia93e771e92cc7630480c665dea66fbf571dfa2a0
Reviewed-on: https://gerrit.libreoffice.org/10337
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Diffstat (limited to 'slideshow')
-rw-r--r-- | slideshow/source/engine/shapes/viewmediashape.cxx | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/slideshow/source/engine/shapes/viewmediashape.cxx b/slideshow/source/engine/shapes/viewmediashape.cxx index 45e29f70aca9..283930075b8e 100644 --- a/slideshow/source/engine/shapes/viewmediashape.cxx +++ b/slideshow/source/engine/shapes/viewmediashape.cxx @@ -196,16 +196,14 @@ namespace slideshow if( !mpMediaWindow.get() && !mxPlayerWindow.is() ) { - OUString sURL; - OUString sMimeType; + uno::Reference< graphic::XGraphic > xGraphic; uno::Reference< beans::XPropertySet > xPropSet( mxShape, uno::UNO_QUERY ); if (xPropSet.is()) { - xPropSet->getPropertyValue("PrivateTempFileURL") >>= sURL; - xPropSet->getPropertyValue("MediaMimeType") >>= sMimeType; + xPropSet->getPropertyValue("FallbackGraphic") >>= xGraphic; } - const Graphic aGraphic(avmedia::MediaWindow::grabFrame(sURL,"",sMimeType)); + Graphic aGraphic(xGraphic); const BitmapEx aBmp = aGraphic.GetBitmapEx(); uno::Reference< rendering::XBitmap > xBitmap(vcl::unotools::xBitmapFromBitmapEx( |