Opening video with flip transform takes minutes, compared to menu flip

Originator:chris
Number:rdar://15557270 Date Originated:11/28/2013
Status: Resolved:
Product:QuickTime Product Version:10.9.0 GM
Classification:Performance Reproducible:Always
 
Summary:
When I open a video file with flip with an flip transform applied to it, it takes minutes to open even short videos as QuickTime shows the "Converting" window and converts the file each time you open it. (These are files are written with AVAssertWriterInput setTransform:] to have horizontal and vertical flips). 

I would expect that this be more performant since opening a video WITHOUT a transform, and Edit...Flip Horizontal (and Flip Vertical) is instantaneous! 

Can the setTransform: flipped videos be special cased to use the same instantaneous mechanism Flip Horizontal and Flip Vertical (or both)? Thanks!

Steps to Reproduce:
1. Write out a video or open the attached video VideoWithFlipApplied-Slow.mp4.
2. Wait minutes while quicktime "Converts".

compared to.
1. Open VideoNeedsMenuFlip.mp4
2. Choose Edit...Flip Horizontal and Edit...Flip Vertical
3. Observe same result with no performance delays. 
4. Be sad that customers are unhappy :(

Expected Results:
These three special cases should be as fast as their Edit...Flip Horizontal,  Edit...Flip Vertical (or both), given that the result is the same. 

These are the special cases that can be achieved equivalent with an untransformed video with the Edit menu:

+CGAffineTransform TransformForPlateOrientation(PlateOrientation plateOrientation)
+{
+    CGAffineTransform transform;
+    switch (plateOrientation) {
+        case PlateOrientationTopRead:
+        case PlateOrientationNoWells:
+            transform = CGAffineTransformIdentity;
+            break;
+        case PlateOrientationTopRead180DegreeRotated:
+            transform = CGAffineTransformMakeScale(-1.0, -1.0); // horizontal and vertical flip
+            break;
+        case PlateOrientationBottomRead:
+            transform = CGAffineTransformMakeScale(-1.0, 1.0);  // horizontal flip
+            break;
+        case PlateOrientationBottomRead180DegreeRotated:
+            transform = CGAffineTransformMakeScale(1.0, -1.0);  // vertical flip
+            break;
+    }
+    return transform;
+}

Actual Results:
Multiple minute delays, that lead to the same results as already implemented super fast menu items. 

Version:
Mac OS X 10.9.0 (12A603), MacBook Retina, 2.6 ghz 8GB

Notes:


Configuration:


Attachments:
'VideoNeedsMenuFlip.mp4' and 'VideoWithFlipApplied-Slow.mp4' were successfully uploaded.

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!