(recategorizing a discussion post as a bug)
Overview
We would like to be able to identify which version of After Effects was responsible for the creation of a project (.aep) file programatically in order to make informed judgements about what version of After Effects should be used to render those projects on our renderfarm. We are encouraged by the presence of the CreatorTool field in the embedded metadata that is visible by running the unix 'strings' command on the file, but have observed some disconcerting behavior in this area.
Observed Behavior
We were surprised to find that regardless of if the project file was created in After Effects 2022 (22.6) or After Effects 2023 (23.1), the value of the CreatorTool field is always 'Adobe Photoshop 23.2 (20220128.orig.527 28d5e1a) (Macintosh)'. Note that not only is the version incorrect, but the product itself is incorrect as well. If we save a copy of the project as an XML export (.aepx) the 'CreatorTool' and 'softwareAgent' fields of the ProjectXMPMetadata still contain incorrect information, and furthermore, examining the project metadata via the Metadata window in After Effects shows the same incorrect data as well.
Expected Behavior
We would expect that the value of the CreatorTool field in the ProjectXMPMetadata would accurately represent the Adobe product that was used to create the project file. For example, for After Effects 2023 (23.1) we would expect a value of 'Adobe After Effects 23.1 (<YYYYMMDD.orig.build_number> <...>) (Macintosh)'.
Replication
It is trivial to replicate this issue by creating a new After Effects project, saving it to a location on disk, and then examining the "CreatorTool" field in the project metadata via the Metadata window in After Effects, or by examining the data contained in the .aep file directly.
Testing System Specs
After Effects 2022 (22.6) & After Effects 2023 (23.1)
2021 16" MacBook Pro
macOS: Monterey (12.6.2)
Chip: Apple M1 Pro
Memory: 16GB
Deeper Dive
Some additional digging has revealed that the values that are assembled to create 'Adobe Photoshop 23.2 (20220128.orig.527 28d5e1a) (Macintosh)' are hardcoded in the pie.framework installed at `Adobe After Effects YYYY.app/Contents/Frameworks/pie.framework/Versions/A/pie`.
Specifically:
- GetXMPCreatorStringv() returns "Adobe Photoshop 23.2 (20220128.orig.527 28d5e1a) (Macintosh)"
- GetPSBuildVersionStr() returns the subcomponent "20220128.orig.527 28d5e1a"
Pseudocode for GetXMPCreatorStringv() obtained by running pie.framework through a dissassembler shows the creation of the string:
*0x433fc20 = *"Adobe Photoshop";
*0x433fc27 = *("Adobe Photoshop" + 0x7);
*(int8_t *)0x433fc2f = 0x0;
std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::append(0x433fc20, " ");
std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::append(0x433fc20, "23.2");
std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::append(0x433fc20, " (");
std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::append(0x433fc20, GetPSBuildVersionStr());
std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::append(0x433fc20, ") ");
std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::append(0x433fc20, " (Macintosh)");
This error message was also found at an address referenced by this procedure:
"$$$/private/LibPs/XMP/NoCreatorSet=XMP Creator Tool value has not been set. This should be fixed before ship."
Taking a look at this same framework in Adobe Illustrator 2023, which does embed the proper CreatorTool value in the XMP metadata, it is apparent that this Photoshop version string is a default that is relied upon when the framework cannot source information about the creating application.
We can speculate from this information that After Effects did not adopt the CreatorTool feature when it was implemented in the pie framework, and did not get "fixed before ship". It would be very helpful for us, and likely others, if this could be addressed in an upcoming version of After Effects.
Thank you in advance for considering this report!
Kris Landes
Sr. Software Engineer | Pixar Animation Studios