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 Desktop
Packages, which is subscribed to xscreensaver in Ubuntu.
https://bugs.launchpad.net/bugs/1077186

Title:
  glslideshow ignores EXIF rotation data from Nikon cameras

Status in “xscreensaver” package in Ubuntu:
  Confirmed

Bug description:
  On upgrading to Ubuntu 12.10, I find that glslideshow is ignoring
  rotation data in pictures taken by my Nikon D7000 camera, and so
  portrait pictures are shown rotated by 90 degrees. An example of such
  an image is:

  http://acunningham.org/photos/2012/06/10/dsc_8639.jpg

  Portrait pictures taken by an older camera are displayed correctly. An
  example if such an image is:

  http://acunningham.org/photos/2003/07/02/France/dsc00112.jpg

  This is a regression; it used to work correctly on Ubuntu 11.10.

  ProblemType: Bug
  DistroRelease: Ubuntu 12.10
  Package: xscreensaver-gl 5.15-2ubuntu1
  ProcVersionSignature: Ubuntu 3.5.0-18.29-generic 3.5.7
  Uname: Linux 3.5.0-18-generic i686
  ApportVersion: 2.6.1-0ubuntu6
  Architecture: i386
  Date: Fri Nov  9 16:42:09 2012
  InstallationDate: Installed on 2010-03-01 (984 days ago)
  InstallationMedia: Ubuntu 9.10 "Karmic Koala" - Release i386 (20091028.5)
  MarkForUpload: True
  SourcePackage: xscreensaver
  UpgradeStatus: Upgraded to quantal on 2012-10-07 (33 days ago)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/xscreensaver/+bug/1077186/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to