2005.01.25 06:36 "[Tiff] converting tags", by Lee Howard
HylaFAX uses the TIFFTAG_FAXRECVPARAMS tag. The tag was secured by SGI specifically for HylaFAX.
FaxRecvParams holds encoded information describing the fax session parameters that existed when the fax page was received.
Currently FaxRecvParams is typed as uint32. The problem is, though, that per Table 2/T.30 (the description of all possible fax session parameters, specified by the sender in a "DCS" signal) there are more than 110 possible bits. So basically the "encoding" is just a compression of sorts of that 110+ bits into 24-32 bits, and we have to be rather selective about how we do it, and sooner or later we're inevitably going to run out of bits. It is rather difficult to continually update and revise HylaFAX's "encoding" function for FaxRecvParams every time we add more support for various things on Table 2/T.30, and we'd like to simply store the DCS signal raw into FaxRecvParams rather than compressing/encoding it.
However, I don't know how easy it is to change TIFFTAG_FAXRECVPARAMS from uint32 to char* in libtiff. The bigger issue, however, is that we'll need to be able to successfully TIFFGetField(tif, TIFFTAG_FAXRECVPARAMS, ...) on old TIFFs and retreive the data, at which point we can make use of it.
I'm not a TIFF tag expert, but I assume that the uint32 tag is stored as 4 bytes.
Maybe we should just use a different tag instead?