summaryrefslogtreecommitdiff
path: root/vcl/source/filter/graphicfilter.cxx
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2019-02-27 14:28:55 +0200
committerTor Lillqvist <tml@collabora.com>2019-02-28 17:16:49 +0100
commit5bd1ac0083bf6047fd1b977f24ae5ffb7018f2a8 (patch)
tree6f0f355b71813781e71930600d7cf5621e4a2973 /vcl/source/filter/graphicfilter.cxx
parentbeba45a5639bc32ca6893885ca3b1f07e3175c08 (diff)
tdf#122537: Use "best speed" instead of default compression level on iOS
Speed is more important than size in the use case where this showed up in a profile of the iOS app (inserting an image). This change causes zlib's deflate_fast() being used instead of its deflate_slow(). For a specific image I tested with the former takes 1.5 s, the latter 3.4 s. This is just one aspect of the slowness of image insertio. The resizing operations mentioned in the bug report is not yet investigated. Change-Id: Icf023522b965cb0265000c821a478610d098cd0a Reviewed-on: https://gerrit.libreoffice.org/68434 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/68488 Tested-by: Jenkins
Diffstat (limited to 'vcl/source/filter/graphicfilter.cxx')
-rw-r--r--vcl/source/filter/graphicfilter.cxx12
1 files changed, 11 insertions, 1 deletions
diff --git a/vcl/source/filter/graphicfilter.cxx b/vcl/source/filter/graphicfilter.cxx
index 74bd19f35187..294fc93975cc 100644
--- a/vcl/source/filter/graphicfilter.cxx
+++ b/vcl/source/filter/graphicfilter.cxx
@@ -2479,6 +2479,7 @@ IMPL_LINK( GraphicFilter, FilterCallback, ConvertData&, rData, bool )
sal_uInt16 nFormat = GRFILTER_FORMAT_DONTKNOW;
OString aShortName;
+ css::uno::Sequence< css::beans::PropertyValue > aFilterData;
switch( rData.mnFormat )
{
case ConvertDataFormat::BMP: aShortName = BMP_SHORTNAME; break;
@@ -2505,8 +2506,17 @@ IMPL_LINK( GraphicFilter, FilterCallback, ConvertData&, rData, bool )
else if( !aShortName.isEmpty() )
{
// Export
+#ifdef IOS
+ if (aShortName == PNG_SHORTNAME)
+ {
+ aFilterData.realloc(aFilterData.getLength() + 1);
+ aFilterData[aFilterData.getLength() - 1].Name = "Compression";
+ // We "know" that this gets passed to zlib's deflateInit2_(). 1 means best speed.
+ aFilterData[aFilterData.getLength() - 1].Value <<= 1;
+ }
+#endif
nFormat = GetExportFormatNumberForShortName( OStringToOUString(aShortName, RTL_TEXTENCODING_UTF8) );
- bRet = ExportGraphic( rData.maGraphic, OUString(), rData.mrStm, nFormat ) == ERRCODE_NONE;
+ bRet = ExportGraphic( rData.maGraphic, OUString(), rData.mrStm, nFormat, &aFilterData ) == ERRCODE_NONE;
}
return bRet;