Skip to main content
Adobe Photoshop Family

4 Messages

 • 

132 Points

Sat, Nov 3, 2018 7:02 PM

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

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?


Responses

376 Messages

 • 

7.2K Points

2 years ago

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.

4 Messages

 • 

132 Points

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.

631 Messages

 • 

9.6K Points

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

4 Messages

 • 

132 Points

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?

631 Messages

 • 

9.6K Points

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.

4 Messages

 • 

132 Points

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

Adobe Administrator

 • 

15K Messages

 • 

286.9K Points

8 months ago

The documentation should be updated to include this information.

Sr. Product Manager, Adobe Digital Imaging

1 Message

 • 

60 Points

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?