Hi group, I'm having issues with gdk-pixbuf loader and JPEGs on my Windows 10 system with MSYS. The loader works okay to construct pixbufs. But for some reason, it refuses to emit area-updated and area-prepared until the jpeg is 100% loaded already. That kind of defeats the purpose of that feature. On Linux, it successfully emits these signals with the same jpeg files.
I'm wondering, is there any trick to getting this to work on Windows that I'm missing, or is this just expected behavior? Or maybe a bug? On MSYS(using the pacman packages for these): $ pkg-config --modversion gdk-pixbuf-2.0 2.36.10 $ pkg-config --modversion gtk+-3.0 3.22.19 On Linux: $ uname -a $ pkg-config --modversion gdk-pixbuf-2.0 2.36.9 $ pkg-config --modversion gtk+-3.0 3.22.21 I've made a small test script in Python that demos this problem: https://gist.github.com/anonymous/95424447867e1d6a99e32f3622a06565 import gi gi.require_version('GdkPixbuf', '2.0') from gi.repository import GdkPixbuf from urllib import request import sys pbl = GdkPixbuf.PixbufLoader() url = sys.argv[1] def prepped(*args): pb: GdkPixbuf.Pixbuf = pbl.get_pixbuf() print('prepped', pb, pb.get_width(), 'x', pb.get_height()) def updated(*args): print('updated', *args) pbl.connect('area-prepared', prepped) pbl.connect('area-updated', updated) with request.urlopen(url) as fp: while True: buf = fp.read(1024) if not buf: break pbl.write(buf) pbl.close() pb: GdkPixbuf.Pixbuf = pbl.get_pixbuf() print('pixbuf', pb, pb.get_width(), 'x', pb.get_height()) Notice on MSYS it only emits area-updated when its fully loaded. MSYS: $python3 pbl.py https://upload.wikimedia.org/wikipedia/en/5/58/Penny_test.jpg prepped <GdkPixbuf.Pixbuf object at 0x000000000372e438 (GdkPixbuf at 0x0000000002d41600)> 198 x 238 updated <GdkPixbuf.PixbufLoader object at 0x0000000003147ea0 (GdkPixbufLoader at 0x0000000002d431e0)> 0 0 198 238 pixbuf <GdkPixbuf.Pixbuf object at 0x000000000372e438 (GdkPixbuf at 0x0000000002d41600)> 198 x 238 On Linux: $ python3 pbl.py https://upload.wikimedia.org/wikipedia/en/5/58/Penny_test.jpg prepped <GdkPixbuf.Pixbuf object at 0x7f89db837bd0 (GdkPixbuf at 0x56545f04f460)> 198 x 238 updated <GdkPixbuf.PixbufLoader object at 0x7f89debd1480 (GdkPixbufLoader at 0x56545f05fcc0)> 0 0 198 1 updated <GdkPixbuf.PixbufLoader object at 0x7f89debd1480 (GdkPixbufLoader at 0x56545f05fcc0)> 0 1 198 1 updated <GdkPixbuf.PixbufLoader object at 0x7f89debd1480 (GdkPixbufLoader at 0x56545f05fcc0)> 0 2 198 1 updated <GdkPixbuf.PixbufLoader object at 0x7f89debd1480 (GdkPixbufLoader at 0x56545f05fcc0)> 0 3 198 1 updated <GdkPixbuf.PixbufLoader object at 0x7f89debd1480 (GdkPixbufLoader at 0x56545f05fcc0)> 0 4 198 1 updated <GdkPixbuf.PixbufLoader object at 0x7f89debd1480 (GdkPixbufLoader at 0x56545f05fcc0)> 0 5 198 1 <a few hundred scanlines snipped for brevity> updated <GdkPixbuf.PixbufLoader object at 0x7f89debd1480 (GdkPixbufLoader at 0x56545f05fcc0)> 0 232 198 1 updated <GdkPixbuf.PixbufLoader object at 0x7f89debd1480 (GdkPixbufLoader at 0x56545f05fcc0)> 0 233 198 1 updated <GdkPixbuf.PixbufLoader object at 0x7f89debd1480 (GdkPixbufLoader at 0x56545f05fcc0)> 0 234 198 1 updated <GdkPixbuf.PixbufLoader object at 0x7f89debd1480 (GdkPixbufLoader at 0x56545f05fcc0)> 0 235 198 1 updated <GdkPixbuf.PixbufLoader object at 0x7f89debd1480 (GdkPixbufLoader at 0x56545f05fcc0)> 0 236 198 1 updated <GdkPixbuf.PixbufLoader object at 0x7f89debd1480 (GdkPixbufLoader at 0x56545f05fcc0)> 0 237 198 1 pixbuf <GdkPixbuf.Pixbuf object at 0x7f89dd080480 (GdkPixbuf at 0x56545f04f460)> 198 x 238 _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list