P: PSD File Format: Where exactly does Photoshop stores timeline data on a PSD file?

2 Votes
Community Beginner ,
Nov 03, 2018 Nov 03, 2018

Copy link to clipboard

Copied

I just followed this simple tutorial: Create animated GIFs |

 

After saving it as PSD and opening again, I noticed that Photoshop persisted all timeline details (loop count, frame timings, etc).

But looking at the Adobe Photoshop File Formats Specification I could not find any details on where that data is stored.

 

I analyzed the file using a hex editor and noticed that Photoshop uses some ImageResource and some AditionalLayerInfo blocks that are not documented. Maybe that's where Photoshop stores the timeline data, but still I can't read it without any specs telling me how to do it.

 

Here are the ImageResource blocks:

 

Image resource ID: 0x0FA0 - 4000

Image resource Text: "maniIRFR    8BIMAnDs   ?              null        AFStlong        FrInVlLs    Objc          null        FrIDlongKI??    FrDllong       FrGAdoub@>      Objc          null        FrIDlongKI?O    FrDllong        FrGAdoub@>      Objc          null        FrIDlongKJ>?    FrDllong   5    FrGAdoub@>      Objc          null        FrIDlongKJ??    FrDllong   ?    FrGAdoub@>          FStsVlLs    Objc          null        FsIDlong        AFrmlong        FsFrVlLs    longKI??longKI?OlongKJ>?longKJ??    LCntlong    8BIMRoll             P ??5    ???5 "

                   

Image resource ID: 0x0FA1 - 4001

Image resource Text: "mfri                    "

 

Here is the AdditionalLayerInfo block:

 

Key: shmd (metadata)

          Data length: 26520

              Metadata:

                      Count: 2

                      Signature: 8BIM

                      Key: mlst

                      Copy: No

                      Length: 387

                      Text:               null        LaIDlong        LaStVlLs    Objc          null        enabbool     blendOptionsObjc          null        OpctUntF#Prc            FrLsVlLs    longKI??Objc          null        FrLsVlLs    longKI?OObjc          null        FrLsVlLs    longKJ>?Objc          null        enabbool     blendOptionsObjc          null        OpctUntF#Prc@Y          FrLsVlLs    longKJ?

 

                      Signature: 8BIM

                      Key: cust

                      Copy: No

                      Length: 26095

                      Text:            metadata         layerTimedoubA??Z2;?M layerXMPTEXT  2? < ? x p a c k e t  (XMP data goes in here, there's a lot of whitespace but I believe that is not important)


Question

So, I have no idea what each of these blocks are, so I wish to know it. Is there any document that explains to me what's supposed be that?

 

Bug Fixed
TOPICS
macOS , Windows

Views

13

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Adobe Employee , Feb 19, 2020 Feb 19, 2020
The documentation should be updated to include this information.

Votes

Translate

Translate
8 Comments
Adobe Community Professional ,
Nov 03, 2018 Nov 03, 2018

Copy link to clipboard

Copied

Interesting question. Have you tried comparing it to other time based formats like an After Effects project or Premiere Pro project. You’d think you’d at least spot some time index information somewhere in the PSD.

Votes

Translate

Translate

Report

Report
Community Beginner ,
Nov 03, 2018 Nov 03, 2018

Copy link to clipboard

Copied

Thanks for the reply. 🙂

I didn't, I only have Photoshop installed.

I tried changing the frame delay, saving with another name and comparing with the previous file.

I'm guessing that this info is stored near the inner block that starts with FrDl. But I'm not sure.

Votes

Translate

Translate

Report

Report
LEGEND ,
Nov 03, 2018 Nov 03, 2018

Copy link to clipboard

Copied

Save the same .psd without TimeLine and then compare both files data to see differences.

Votes

Translate

Translate

Report

Report
Community Beginner ,
Nov 03, 2018 Nov 03, 2018

Copy link to clipboard

Copied

Saving without the timeline results in this:

No image resource blocks:
0x0FA0 - 4000 and 0x0FA1 - 4001

Inside the shmd AdditionalLayerInfo there only this inner block:

                      Count: 1
                      Signature: 8BIM
                      Key: cust
                      Copy: No
                      Length: 51
                      Text:            metadata       layerTimedoubA????Z?

Votes

Translate

Translate

Report

Report
LEGEND ,
Nov 03, 2018 Nov 03, 2018

Copy link to clipboard

Copied

You may also save some .psd before adding TimeLine to it to see whether that Additional Info will be in. If so, you'll know that doesn't belong to TimeLine, but probably only that you found earlier.

Votes

Translate

Translate

Report

Report
Community Beginner ,
Nov 03, 2018 Nov 03, 2018

Copy link to clipboard

Copied

That's what I did. I created another PSD file from the original images, without adding the timeline.

Both ImageBlocks and the inner block mlst are not present. So these are the blocks that holds the timeline data

Votes

Translate

Translate

Report

Report
Adobe Employee ,
Feb 19, 2020 Feb 19, 2020

Copy link to clipboard

Copied

The documentation should be updated to include this information.

Senior Product Manager - Customer Advocacy - Digital Imaging

Votes

Translate

Translate

Report

Report
LEGEND ,
Feb 19, 2020 Feb 19, 2020

Copy link to clipboard

Copied

LATEST
It has been awhile since I read that document. What exactly changed?
It says that the document was updated in November 2019.

I could not find any "mlst", "cust" or what's inside the image resource blocks such as  "mani" and "mfri".

Could you point me to it?


Votes

Translate

Translate

Report

Report