I was able to reproduce this on a Ubuntu 12.10 Live CD (amd64). It can
be seen in the ltrace below that gdk_pixbuf_apply_embedded_orientation()
is called but returns the same pixbuf (no transformation done). In
Ubuntu 12.04 the same function returns a new pixbuf and we can see the
width and length are swapped.
I suspect the image loading module, which should set the "orientation"
pixbuf property, to be at fault. But I would need to run a debug build
on 12.10 to confirm that.
ubuntu@ubuntu:~$ ldd /usr/bin/xscreensaver-getimage | grep pixbuf-
libgdk_pixbuf-2.0.so.0 =>
/usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x00007f1f1d5bf000)
ubuntu@ubuntu:~$ ltrace -l /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
xscreensaver-getimage -verbose -root -file /tmp/dsc_8639.jpg
xscreensaver-getimage: grabDesktopImages: True
xscreensaver-getimage: grabVideoFrames: False
xscreensaver-getimage: chooseRandomImages: False
xscreensaver-getimage: imageDirectory: /tmp/dsc_8639.jpg
xscreensaver-getimage: loading "/tmp/dsc_8639.jpg"
gdk_pixbuf_new_from_file(0x7fff2cda2503, 0x7fff2cd9fff0, 0x8875e0, 8, 3) =
0x8d64a0
gdk_pixbuf_get_width(0x8d64a0, 0xffffffff, 0, 0x7fbea7206748, 0x7fbea8760800) =
4928
gdk_pixbuf_get_height(0x8d64a0, 0xffffffff, 0x8d5250, 0x7fbea7206748,
0x7fbea8760800) = 3264
gdk_pixbuf_apply_embedded_orientation(0x8d64a0, 0xffffffff, 0x8d5250,
0x7fbea7206748, 0x7fbea8760800) = 0x8d64a0
gdk_pixbuf_unref(0x8d64a0, 0x886fb8, 1, 80, 0x896210) =
2
gdk_pixbuf_get_width(0x8d64a0, 0x886fb8, 1, 0, 0x896210) =
4928
gdk_pixbuf_get_height(0x8d64a0, 0x886fb8, 0x8d5250, 0, 0x896210) =
3264
xscreensaver-getimage: scaling image by 27% (4928x3264 -> 1358x900)
xscreensaver-getimage: displaying 1358x900 image at 41,0 in 1440x900.
gdk_pixbuf_scale_simple(0x8d64a0, 1358, 900, 2, 0x7fbea8760800) =
0x8d64f0
gdk_pixbuf_unref(0x8d64a0, 1, 0x7fbea7206798, 1, 0x7fbea7206790) =
3
+++ exited (status 0) +++
ubuntu@ubuntu:~$ dpkg -S /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
libgdk-pixbuf2.0-0:amd64: /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
ubuntu@ubuntu:~$ apt-cache policy libgdk-pixbuf2.0-0:amd64
libgdk-pixbuf2.0-0:
Installed: 2.26.4-0ubuntu1
Candidate: 2.26.4-0ubuntu1
Version table:
*** 2.26.4-0ubuntu1 0
500 http://archive.ubuntu.com/ubuntu/ quantal/main amd64 Packages
100 /var/lib/dpkg/status
For comparison, the same run on Ubuntu 12.04:
$ ldd /usr/bin/xscreensaver-getimage|grep pixbuf-
libgdk_pixbuf-2.0.so.0 =>
/usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0 (0xb76dc000)
$ ltrace -l /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0
xscreensaver-getimage -root -verbose -file /tmp/dsc_8639.jpg
xscreensaver-getimage: grabDesktopImages: True
xscreensaver-getimage: grabVideoFrames: False
xscreensaver-getimage: chooseRandomImages: False
xscreensaver-getimage: imageDirectory: /tmp/dsc_8639.jpg
xscreensaver-getimage: loading "/tmp/dsc_8639.jpg"
gdk_pixbuf_new_from_file(0xbfb05521, 0xbfb03c90, 0xbfb03c94, 0xbfb03c98,
0xbfb03c9c) = 0x84ad040
gdk_pixbuf_get_width(0x84ad040, 0xbfb03c90, 0xbfb03c94, 0xbfb03c98, 0xbfb03c9c)
= 4928
gdk_pixbuf_get_height(0x84ad040, 0xbfb03c90, 0xbfb03c94, 0xbfb03c98,
0xbfb03c9c) = 3264
gdk_pixbuf_apply_embedded_orientation(0x84ad040, 0xbfb03c90, 0xbfb03c94,
0xbfb03c98, 0xbfb03c9c) = 0x84ad078
gdk_pixbuf_unref(0x84ad040, 0xbfb03c90, 0xbfb03c94, 0xbfb03c98, 0xbfb03c9c)
= 3
gdk_pixbuf_get_width(0x84ad078, 0xbfb03c90, 0xbfb03c94, 0xbfb03c98, 0xbfb03c9c)
= 3264
gdk_pixbuf_get_height(0x84ad078, 0xbfb03c90, 0xbfb03c94, 0xbfb03c98,
0xbfb03c9c) = 4928
xscreensaver-getimage: rotated 4928x3264 to 3264x4928
xscreensaver-getimage: scaling image by 21% (3264x4928 -> 695x1050)
xscreensaver-getimage: displaying 695x1050 image at 492,0 in 1680x1050.
gdk_pixbuf_scale_simple(0x84ad078, 695, 1050, 2, 0xbfb03c98)
= 0x84ad0b0
gdk_pixbuf_unref(0x84ad078, 695, 1050, 2, 0xbfb03c98)
= 3
+++ exited (status 0) +++
$ dpkg -S /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0
libgdk-pixbuf2.0-0: /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0
$ apt-cache policy libgdk-pixbuf2.0-0
libgdk-pixbuf2.0-0:
Installed: 2.26.1-1
Candidate: 2.26.1-1
Version table:
*** 2.26.1-1 0
500 http://ch.archive.ubuntu.com/ubuntu/ precise/main i386 Packages
100 /var/lib/dpkg/status
** Changed in: xscreensaver (Ubuntu)
Status: New => Confirmed
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1077186
Title:
glslideshow ignores EXIF rotation data from Nikon cameras
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/xscreensaver/+bug/1077186/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs