xpra icon
Bug tracker and wiki

Opened 5 years ago

Closed 5 years ago

#1064 closed defect (fixed)

libwebp 0.5.0 is broken - picture is all black!

Reported by: Antoine Martin Owned by: Antoine Martin
Priority: critical Milestone: 0.17
Component: encodings Version: trunk
Keywords: Cc:

Description (last modified by Antoine Martin)

r11491 added it, and I didn't test it well enough...

Change History (4)

comment:1 Changed 5 years ago by Antoine Martin

Description: modified (diff)
Status: newassigned

It's all very confusing.
One of the problems is that I forgot that we can also get webp encoded and decoded via python-pillow.

And it also works fine without opengl enabled (No idea why that is. buffer re-use? how?)... which explains why I didn't see the problem during testing on virtual machines (most of which don't have opengl acceleration since the driver is blacklisted).

I think this may actually be a library conflict issue between python-pillow and dec_webp, both compiled against different versions of libwebp. If that's the case, we're lucky to have avoided problems until now! (and this only triggered now because of the ABI bump)

We don't want to start shipping a modified python-pillow (I'm not even sure how that would work wrt paths).
We do ship a recent enough version of pillow, so maybe we should just drop libwebp-xpra, enc_webp and dec_webp? Are the features comparable? (in particular zerocopy uploads..)

Note: this is not a problem on OSX where we build everything against our chosen version of libwebp.

Last edited 5 years ago by Antoine Martin (previous) (diff)

comment:2 Changed 5 years ago by Antoine Martin

r11857 disables the webp module (we can still do webp via pillow) for all platforms except OSX (where we already build pillow against the same version of webp, so the problem should not be present there - as long as we rebuild pillow after updating webp..)
r11858 applies this change to all supported branches.

The plan:

  • release new updates (0.14.x and 0.16.x at least)
  • finally push the new pillow 3.1 update

This gives us more time to think of a better way to handle this..

  • for Fedora, we could just force the removal of libwebp-xpra and build against the system library instead (0.4.4 is in Fedora 23)
  • centos 7.x carries libwebp 0.3 which is very old... and centos 6.x does not have it at all.
  • win32: is too much of a mess (building webp and pillow is time consuming and error prone)

comment:3 Changed 5 years ago by Antoine Martin

As of r11879 (r11882 for older branches), we only build the cython webp codec against the system libwebp version 0.4 or later. This condition is only guaranteed on Fedora and OSX. win32 may be OK, but I chose not to take the risk since this is a manual process that can easily break.
The RPM package dependency on libwebp is removed for all but Fedora.
Only stable updates to do now... prepared in r11883.

comment:4 Changed 5 years ago by Antoine Martin

Resolution: fixed
Status: assignedclosed

0.14.x released with this change and a mention in the release notes:
http://lists.devloop.org.uk/pipermail/shifter-users/2016-February/001476.html
Same for 0.16.x:
http://lists.devloop.org.uk/pipermail/shifter-users/2016-February/001477.html

Closing for now, will re-open if we encounter black rendering with webp anywhere...

Note: See TracTickets for help on using tickets.