Bug 116899 - Fly-in animation doesn't play after roundtripping from LO through PP (PPT format)
Summary: Fly-in animation doesn't play after roundtripping from LO through PP (PPT for...
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: filters and storage (show other bugs)
Version:
(earliest affected)
3.5.0 release
Hardware: All All
: medium normal
Assignee: Aron Budea
URL:
Whiteboard: target:6.1.0
Keywords: filter:ppt
Depends on:
Blocks: PPT
  Show dependency treegraph
 
Reported: 2018-04-09 14:44 UTC by Aron Budea
Modified: 2018-05-17 14:25 UTC (History)
0 users

See Also:
Crash report or crash signature:


Attachments
Sample ODP (11.38 KB, application/vnd.oasis.opendocument.presentation)
2018-04-09 14:44 UTC, Aron Budea
Details
Sample PPT (saved from ODP in Impress) (125.50 KB, application/vnd.ms-powerpoint)
2018-04-09 14:45 UTC, Aron Budea
Details
Sample PPT (saved from previous PPT in PowerPoint) (110.50 KB, application/vnd.ms-powerpoint)
2018-04-09 14:45 UTC, Aron Budea
Details
Dump of different animation properties (2.38 KB, application/zip)
2018-04-11 15:07 UTC, Aron Budea
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Aron Budea 2018-04-09 14:44:08 UTC
Created attachment 141228 [details]
Sample ODP

- Add Fly-in animation to a text box in Impress, and save it as PPT.
- Open the PPT in PowerPoint, and simply save it.
- Open the PPT in Impress again, and play the slideshow.

=> There's no animation for the text box.

In PowerPoint the animation still appears in the very same file. Setting the same animation again either in PowerPoint or Impress will play the animation in Impress again.
Attaching a sample ODP, the ODP saved as PPT in Impress 6.0.3.2, and the PPT saved again in PowerPoint.

Observed using LO 6.0.3.2 & 3.5.0.3 / Windows 7.
Comment 1 Aron Budea 2018-04-09 14:45:09 UTC
Created attachment 141229 [details]
Sample PPT (saved from ODP in Impress)
Comment 2 Aron Budea 2018-04-09 14:45:58 UTC
Created attachment 141230 [details]
Sample PPT (saved from previous PPT in PowerPoint)
Comment 3 Aron Budea 2018-04-11 04:16:15 UTC
The problem is with the unusual key times.

Dumping animation data gives the following:
- good:
...
<animate fill="hold" dur="0.5" calcmode="linear" valueType="number" keyTimes="0.000000;1.000000;" values="#ppt_x;#ppt_x" additive="replace" attributeName="ppt_x" paragraph 0, 5 characters target=""/>
<animate fill="hold" dur="0.5" calcmode="linear" valueType="number" keyTimes="0.000000;1.000000;" values="1+#ppt_h/2;#ppt_y" additive="replace" attributeName="ppt_y" paragraph 0, 5 characters target=""/>
...

- bad:
...
<animate fill="hold" dur="0.5" calcmode="linear" valueType="number" keyTimes="1.000000;-1.000000;" values="#ppt_x;#ppt_x" additive="replace" attributeName="ppt_x" paragraph 0, 5 characters target=""/>
<animate fill="hold" dur="0.5" calcmode="linear" valueType="number" keyTimes="1.000000;-1.000000;" values="1+#ppt_h/2;#ppt_y" additive="replace" attributeName="ppt_y" paragraph 0, 5 characters target=""/>
...

Animations only permit key times in the range of [0, 1], and the first entry has to be 0.
Solution: if the key times are outside the range, normalize key times during import, at least both for PPT and PPTX formats.

Note: in OOXML format the key times are stored in element 'tav'.
Comment 4 Aron Budea 2018-04-11 15:07:03 UTC
Created attachment 141288 [details]
Dump of different animation properties

Attaching four dumps of four different cases:
- flyin_good.xml: PPT as created in Impress,
- flyin_origPP.xml: PPT as created in PowerPoint,
- flyin_bad.xml: PPT created in Impress, then roundtripped in PowerPoint,
- flyin_PPfixed.xml: PPT created in Impress, then roundripped in PowerPoint, while setting the same animation again.

Out of these only the third (flyin_bad.xml) isn't played correctly in Impress.
Nevertheless, the original PPT produced by Impress might contain attribute combinations PowerPoint isn't expecting, hopefully the dumps shed some light on that.
Comment 5 Commit Notification 2018-05-17 10:41:21 UTC
Aron Budea committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=4e207c2e17d75a3cb7b6b72690375279be40d64a

tdf#116899: normalize key times during PPT import if needed

It will be available in 6.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.