touch-packages team mailing list archive
-
touch-packages team
-
Mailing list archive
-
Message #98383
[Bug 1467740] Re: Lots of thumbnail requests with invalid size
I think this is actually on the Unity8 side rather than unity-scopes-
shell.
The result cards are generated by CardCreator.js, which uses a
CroppedImageMinimumSourceSize component to display the result art:
http://bazaar.launchpad.net/~unity-
team/unity8/trunk/view/head:/plugins/Dash/CardCreator.js#L101
This component is implemented in QML but delegates finding the size of
the image to the C++ component CroppedImageSizer
http://bazaar.launchpad.net/~unity-
team/unity8/trunk/view/head:/plugins/Dash/CroppedImageMinimumSourceSize.qml
That class uses QNetworkAccessManager to try and get the file contents
and uses a helper class to manage the response:
http://bazaar.launchpad.net/~unity-
team/unity8/trunk/view/head:/plugins/Dash/croppedimagesizer.cpp#L102
That helper tries to read the returned data via QImageReader and passes
the image size back to CroppedImageSizer:
http://bazaar.launchpad.net/~unity-
team/unity8/trunk/view/head:/plugins/Dash/croppedimagesizerasyncworker.cpp#L58
If the worker provides a non-empty size, CroppedImageSizer then uses
that size information to pick a sourceSize value that will result in the
image being loaded at the correct size so it only has to be cropped in
at most one dimension to fit. If an empty (or invalid) size is
provided, it sets sourceSize to (0, 0):
http://bazaar.launchpad.net/~unity-
team/unity8/trunk/view/head:/plugins/Dash/croppedimagesizer.cpp#L118
This causes a problem for the thumbnailer because QNetworkAccessManager
has no idea how to deal with image:// URIs, so we get an invalid QSize
from the worker and use a sourceSize of (0, 0). Perhaps it should just
use the requested dimensions in this case instead. It doesn't look like
there is a way to handle this crop mode properly with
QQuickImageProvider.
** Package changed: unity-scopes-shell (Ubuntu) => unity8 (Ubuntu)
--
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to thumbnailer in Ubuntu.
https://bugs.launchpad.net/bugs/1467740
Title:
Lots of thumbnail requests with invalid size
Status in thumbnailer package in Ubuntu:
New
Status in unity8 package in Ubuntu:
New
Bug description:
When using scopes, the thumbnailer gets loads of requests with
QSize(-1,-1) from the shell. For example, with a bunch of videos
recorded, run up the video scope and go to "My Videos". The shell asks
for a thumbnail at QSize(-1,-1) for the tiny thumbnail that appears to
the left of each list entry.
The problem with this is that the thumbnailer interprets this to mean
"give me the largest size you can (limited to a 1920x1920 bounding
box). That's very expensive, especially in terms of disk space,
because that 1920 "thumbnail" ends up going into the cache, needlessly
hogging space.
We are about to add a qWarning message to the QML side that reports
invalid QSize requests. For now, we are going to retain the old
behavior, but this will turn into an error soon.
The most effective way to use the thumbnailer is to simply ask for an
image in the desired size, with neither width nor height of -1. The
thumbnailer will efficiently produce a thumbnail for that. (We do lots
of internal caching to avoid extracting or downloading a thumbnail
unnecessarily.)
The thumbnailer may deliver a thumbnail that is smaller than what was
asked for (because it never up-scales) so, if asked for a thumbnail of
size 256, it's guaranteed not to be larger, but might be smaller (if
the original image is smaller than what was asked for).
Could you please adjust the shell behavior to ask for specific, valid
sizes only?
Running a tail -f on ~/.cache/upstart/dbus.log allows you to see the
requests as they are made. Each request shows the size that was asked
for.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/thumbnailer/+bug/1467740/+subscriptions
References