Add SubIFD to exif data when using WriteExif.

Previously, WriteExif implementation stored all of the entries
under the IFD0 tag. However, some entries should be stored under
the ExifIFD (SubIFD) tag (the read implementation doesn't
differentiate IFD0 and ExifIFD). This CL is a correction to a
previous CL where I added the WriteExif method
(http://review.skia.org/901166).

The functionality of this CL isn't currently load bearing but it
is a more complete/correct implementation of the function added
earlier. This is necessary if someone wants to use the function
to write an exif file from Metadata, and also offers a way to
extend the implementation if the Metadata struct is extended or
SkExif get more usage/support.

The WriteExif function now writes the subIfd data to the stream if SubIFD entries exist. It is added
before the data stream for values that exceed the 12 byte entry
size (the size of a TIFF entry).


Bug: 310510975
Change-Id: Ic606ccd75f8077cda1dccc9d18b87fe7d15a964e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/906557
Commit-Queue: Daniel Dilan <danieldilan@google.com>
Reviewed-by: Florin Malita <fmalita@google.com>
2 files changed