iPod and iPhone movies are played with incorrect orientation

Bug #697756 reported by Michael Doube on 2011-01-05
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
GStreamer
Expired
Wishlist
Totem
Invalid
High
gstreamer0.10 (Ubuntu)
Low
Unassigned

Bug Description

Movies made with iPods and iPhones are encoded with orientation information, because users hold them in arbitrary positions when recording movies (they are meant to, there is no right way to hold an iDevice, apparently. Unless you are making a call on an iPhone 4). At the moment I see upside-down and sideways movies sent from iPhones and iPods.

If you hold the device on its side while recording a movie, playback should recognise this and have gravity in the recording represented in the most sensible representation on the display device (in most fixed monitors I guess this is positive on the Y axis, if (0,0) is on the top left). I.e. match gravity in the recording to gravity on playback.

ProblemType: Bug
DistroRelease: Ubuntu 10.10
Package: libgstreamer0.10-0 0.10.30-1build2
Uname: Linux 2.6.37-rc8-linus x86_64
Architecture: amd64
Date: Wed Jan 5 17:08:02 2011
ExecutablePath: /usr/bin/totem
InstallationMedia: Ubuntu 10.04 "Lucid Lynx" - Alpha amd64 (20100412)
ProcEnviron:
 LANG=en_GB.utf8
 SHELL=/bin/bash
SourcePackage: gstreamer0.10

Michael Doube (michael-doube) wrote :
Pedro Villavicencio (pedro) wrote :

Thanks for the report, it has been some time without any response or feedback in this bug report and we are wondering if this is still an issue for you with the latest release of Ubuntu the Natty Narwhal, May you please test with that version and comment back if you're still having or not the issue? Please have a look at http://www.ubuntu.com/download to know how to install that version. Thanks in advance and sorry for the late response.

Changed in gstreamer0.10 (Ubuntu):
importance: Undecided → Low
status: New → Incomplete
Michael Doube (michael-doube) wrote :

Pedro,

Thanks for giving this bug some attention. Yes, this bug is still present in 11.04, and super annoying. I can at least tip my notebook on its side, but that's a bit more challenging for large desktop flat panels (or worse, old CRTs).

tags: added: natty
Launchpad Janitor (janitor) wrote :

[Expired for gstreamer0.10 (Ubuntu) because there has been no activity for 60 days.]

Changed in gstreamer0.10 (Ubuntu):
status: Incomplete → Expired
Michael Doube (michael-doube) wrote :

This still exists, waiting for some attention. Expiring old bugs because nothing changed is lame.

Changed in gstreamer0.10 (Ubuntu):
status: Expired → New
Michael Doube (michael-doube) wrote :

Set of movies in all 4 orientations. Note, it is an ordinary, not anti-gravity, cat.

Michael Doube (michael-doube) wrote :
Michael Doube (michael-doube) wrote :
Michael Doube (michael-doube) wrote :
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in gstreamer0.10 (Ubuntu):
status: New → Confirmed
Steve Magoun (smagoun) wrote :

Still reproducible in 11.10 with libgstreamer0.10-0 0.10.35-1

Michael Doube (michael-doube) wrote :

Still reproducible in 12.04.

It seems that the QuickTime file format uses a 3x3 transformation matrix to encode a mapping from 'camera space' to 'display space'. In the case of simple 90° and 180° rotations that matrix is all zeros and (minus) ones. So, this should just be a case of getting the bytes of the transformation matrix and working out which way to do the rotation.

https://developer.apple.com/library/mac/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html#//apple_ref/doc/uid/TP40000939-CH204-56313

https://developer.apple.com/library/mac/documentation/QuickTime/QTFF/QTFFChap4/qtff4.html#//apple_ref/doc/uid/TP40000939-CH206-18737

An algorithm might go like:
parse bytes looking for 'mvhd'
skip ahead 36 bytes
read the next 36 bytes into a 3x3 matrix (4 bytes per element)
calculate the rotation
do the rotation during playback

tags: added: precise quantal raring
Changed in totem:
importance: Unknown → High
status: Unknown → New
Changed in totem:
status: New → Invalid
Changed in gstreamer:
importance: Unknown → Wishlist
status: Unknown → New
Changed in gstreamer:
status: New → Confirmed
Changed in gstreamer:
status: Confirmed → Expired
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.