$Header: /usr/people/sam/tiff/RCS/CHANGES-v3.3,v 1.5 1994/09/28 01:46:46 sam Exp $

TIFF Software 3.3beta016 (changes since 3.2beta)
------------------------------------------------
General changes:
    o the application interfaces have been overhauled to promote portability;
      a new set of typedefs are defined in tiff.h and tiffio.h and used in
      the library interfaces; see intro(3T) and libtiff/README for detailed
      information
    o the programs in the tools directory are more uniform in their options
      and usage: compression is uniformly specified with a -c option, planar
      configuration with -p, fill order with -f, etc.

Changes in libtiff:
    o the internal types used by the library have been reworked for portability
      to 64-bit architectures (as well as 16-bit machines)
    o the library now builds properly on DEC Alpha and MIPS R8000 systems with
      compilers that use 64-bit longs
    o the library no longer restricts the number of samples/pixel to <= 4
    o the ExtraSamples tag is now fully supported; uses of the old Matteing tag
      should eliminated
    o TIFFGetFieldDefaulted now correctly handles the TransferFunction,
      ReferenceBlackWhite, and ExtraSamples, tags 
    o ExtraSamples tags incorrectly written with a BYTE type are now accepted
      for compatiblity with Adobe Photoshop v2.5 (the 6.0 spec requires SHORTs)
    o strip chopping is now done for appropriately structured tiled images
    o a minor memory leak in the directory writing logic was plugged
    o RATIONAL and SRATIONAL values are written with more care to avoid loss of
      precision
    o strip sizes and numbers are now long rather than int
    o strip decoding routines now increment the row number as they go so that
      diagnostic messages are more meaningful
    o the YCbCR to RGB conversion algorithms have been improved
    o a bug was fixed in the YCbCr to RGB conversion algorithm
    o TIFFPrintDirectory no longer displays the Matteing; instead showing the
      ExtraSamples information
    o TIFFSetWriteOffset is a new function that is useful for overwriting image
      data (added for overwriting retransmitted facsimile pages)
    o TIFFIsByteSwapped is a new function that can be used to decide whether or
      not to byteswap >8-bit data
    o Island Graphics-specific tags are defined in tiff.h (but no support is
      otherwise included)
    o the VMS support code handles bogus files written with fixed records
    o the Macintosh support code no longer tries to seek off the end of a file
    o the unused file machdep.h was removed
    o a new file tiffconf.h now has the default configuration #defines (useful
      on systems that don't have make)
    o lots of fixes and changes for using the library under Windows 3.1 on
      machines with 16-bit segmented addresses (yech!)
    o the Group 3 state+action tables are now written as a single array to
      increase locality (the old-style tables can be generated by supplying
      a -o option to mkg3states)
    o the codes in the Group 3 action tables have been reordered to optimize
      the decoder performance
    o memcpy, memset, and memcmp are now encapsulated inside _TIFFmempcy,
      _TIFFmemset, and _TIFFmemcpy, respectively (so that systems w/ backward
      memory architectures can handle pointer arithmetic requirements)
    o malloc, realloc, and free are now enapsulated inside _TIFFmalloc,
      _TIFFrealloc, and _TIFFfree so that system-specific memory allocation
      requirements can be used
    o the default error and warning handlers now defined in a system-specific
      way so that, for example, Windows apps can popup an dialogue box
    o the library now returns 16-bit and 32-bit data in the native host CPU
      byte order
    o the library check for incorrect SampleFormat tag values has changed to
      reflect a late change to the TIFF 6.0 spec (the tag values were reordered)
    o support has been added for the non-standard, but widely used tag #330
      (SubIFD); this tag is valuable mostly for including thumbnail-style images
    o a new library interface, TIFFSetSubDirectory, was added for selecting
      a directory according to a 32-bit file offset (especially useful for 
      SubIFD support)
    o a new library interface, TIFFUnlinkDirectory, was added for removing
      an IFD from the maiing list chained off the TIFF header (it cannot 
      currently be used to unlink an IFD accessed via a SubIFD tag)
    o the strip chopping support now handles files separate PlanarConfiguration
    o it is now possible to append to a TIFF with byte order opposite to
      the native host CPU byte order (this was previously an error)
    o the library will now write RowsPerStrip as a SHORT if possible (it used
      to always write it as a LONG)
    o the Group 3 2D/Group 4 decoder has been sped up through a variety of
      changes (some changes also speed up Group 3 1D decoding, but not as
      noticeably)
    o a bug in the PackBits decoder that caused the decoder to sometimes
      not recognize that there was insufficient encoded data has been corrected
    o TIFFPrintDirectory now prints ASCII strings with embedded unprintable
      or otherwise graphic-oriented characters using C-style escapes
    o TIFFReadTile, TIFFReadRawTile, and TIFFReadEncodedTile now properly
      check any user-supplied byte count 
    o TIFFNumberOfStrips and TIFFNumberOfTiles now return the proper value
      when the image has PlanarConfig separate
    o support for the Atari was contributed
    o several Makefiles were added for building the library on new platforms

Changes in the tools:
    o all uses of bzero and bcmp have been replaced by the more common mem*
      requivalent functions
    o all programs now have main return a value for compatibility with strict
      ANSI C compilers
    o ppm2tiff.c has a new -resolution option to specify the image resolution
      in dot/inch
    o thumbnail.c is a new sample program that creates 8-bit greyscale thumbnail
      sketches from fax images and stores them using the SubIFD tag support
    o sgigt.c has an improved YCbCr to RGB conversion algorithm; it also does
      a better job of recognizing images that it cannot handle
    o sgisgt.c now selects a default PhotometricInterpretation based on the
      compression algorithm (CCITT compression algorithms also specify that
      MinIsWhite is the default photometric)
    o tiffgt (sgigt.c), tiffdump, and tiffinfo have a new -o option for
      specifying a directory by file offset (useful mainly with the SubIFD
      tag support)
    o sgisv.c now saves separated data correctly
    o tiff2ps.c has many changes: the -a option forces all images in a TIFF
      to be converted as PostScript (not EPS), the -h and -w options are now
      interpreted as the width and height to use for the printed area, a new
      -2 option causes PostScript Level II to be generated
    o tiffcmp.c has been updated to handle ExtraSamples tags
    o tiffcp.c now handles tiled images (thanks to JT Conklin); new -l
      and -w options can be used to specify the dimensions of tiles in
      output image; -s and -t options can be used to select a specific
      data organization for the resultant image
    o a bug in the handling of packed SHORT and BYTE tag values was fixed
      (again) in tiffdump.c
    o tiffdump has a new -h option to get hex display of numbers; it also
      prints the file offset of the next directory together with the current
      directory IFD offset

Changes in the contrib software:
    o the fax2ps program is now more robust in decoding images with
      errors in the encoded data
    o the patches for xv 2.something were removed (just get the latest xv)
