
                     MediaWare Solutions
                     MPEG SDK v 03.02.0004 Built 2002-01-18
                     for Visual C++ Version 6
                     Windows 95/98/ME/NT4/2000

   **********************************************************************
      Limitations/Issues in the current version
   **********************************************************************
   - SDK I/O must be performed using standard I/O routines (i.e. use
     <iostream> not <iostream.h>)

   *************************************************************************
      RELEASE NOTES to Version 03.02.0004
   *************************************************************************

   - (enhancement): EDL optimisation has been improved. During processing.
     the editing engine will attempt to minimize the number of
     EDL entries (combining entries which are contiguous). This results
     in higher quality output.

   - (bug-fix): When saving to an image file the SDK now deinterlaces 
     interlaced video by default (previously only deinterlaced when the 
     output was zoomed).

   - (bug-fix): Fixed TimeStamp addition and subtraction to use full int64
     arithmetic instead of int (was causing a truncation error around 
     6.6hrs)

   - (bug-fix): Fixed audio frame header mask to allow audio modes to 
     change within a video. Can now seek and locate all audio frames in 
     an MPEG where the mode (stereo, joint-stereo etc etc) changes between 
     frames.

   - (bug-fix): Video-only Fade In/Outs edits would sometimes cause the
     output to have no audio at all. Now Fixed

   *************************************************************************
      RELEASE NOTES to Version 03.02.0003
   *************************************************************************
   - (enhancement) - Overlay effect added to EDL.

   - (enhancement) - Colour conversion has been sped up.

   - (enhancement) - Added support for 204-byte transport streams.

   - (enhancement) - Transcode speed has been improved.

   - (enhancement) - PCR PID in edit ouput can be different to video and
     audio PID.

   - (change) - Default output aspect ratio is now set to 1.

   - (change) - VBV buffer size is now set according to video bitrate.

   - (change) - Negative timestamps are handled differently.

   - (bug-fix) - Could not create images (including thumbnails) with odd
     width and height.

   - (bug-fix) - VCD navigation was sometimes incorrect.

   - (bug-fix) - BMP file dimensions were not calculated correctly.

   - (bug-fix) - getPCMBite() was broken.

   - (bug-fix) - The editor produced output that was too short when the
     output format was set to AUDIO_ONLY.

   - (bug-fix) - MpegDecoder could not open audio-only files.

   - (bug-fix) - The last PTS of a video was sometimes calculated
     incorrectly.

   *************************************************************************
      RELEASE NOTES to Version 03.02.0001 Beta 1
   *************************************************************************
   - (enhancement) Many decoding and encoding functions are now significantly
     faster on Pentium 3 and later CPUs. This is due to a combination of 
     more fast parallel native MMX/SSE code and Intel(R)'s Integrated 
     Performance Primitives v1.0 libraries.

   - (enhancement) Added hasVideo() and hasAudio() to MpegDecoder.

   - (enhancement) Proper error is pushed if video functions are called on
     audio-only streams or vice versa.

   - (bug-fix) MpegDecoder::getPCMBite(frame) was getting the wrong PCM bite.

   - (bug-fix) MpegDecoder::getXBGRImage() used to crash if the image's
     horizontal_size is not a multiple of 4.

   - (bug-fix) MpegDecoder::getMpegHeaderInfo() can now return information
     on audio-only files.

   - (bug-fix) Mpegs with high bitrate but small width and height may crash
     the decoder.

   - (enhancement) Improved handling of very large timestamps.

   - (enhancement) Improved VBV buffer size estimation.

   *************************************************************************
      RELEASE NOTES to Version 03.01.0001
   *************************************************************************
   - (enhancement) The decoder now supports audio decoding. Audio clips
     can be retrieved with the getPCMBite() and getNextPCMBite() functions, 
     or they can be saved to .wav files with saveToWAV().

   - (enhancement) When retrieving pictures from MPEG-2 streams, the
     user can control whether deinterlacing is done by calling 
     setDeinterlace().

   - (enhancement) When retrieving pictures from MPEG-2 streams, the
     user can control whether to resize the pictures according to the 
     MPEG's aspect ratio information by calling setUseAspectRatio().

   - (enhancement) The editor now support CMX style EDLs. An EDL is
     loaded using the MpegEditor::loadEDL() function. The EDL can have 
     CUTS, DISSOLVES, WIPES, and FADES and titling.

   - (enhancement) The editor can edit video files with different
     bitrates and different chroma formats.

   - (enhancement) The editor will automatically fill in any holes in the
     video/audio by adding blank video/audio frames.

   - (enhancement) MpegEditor::editorLog() has been added to produce 
     a optional text log of edits processed.

   - (enhancement) Video/audio synchronization has been improved.

   - (enhancement) The editor now performs fast re-coding of frames at
     an edit point so the overall edit speed is much increased.

   - (enhancement) The editor now supports Titling through the use of
     EDLs. Anywhere an MPEG appears in an EDL, an image (JPEG, BMP or
     PPM) or an image pattern (e.g. *.jpg) can be used. If an EDL entry 
     consists of a single image but the duration (src out minus src in) is 
     longer than one frame, the image is repeated to fill the duration.

   - (enhancement) The editor performs automatic EDL cleaning and
     optimization.  Contiguous entries which can be performed as a
     single edit will be merged.

   - (enhancement) The packetization engine was completely rewritten.
     The new scheme is more tolerant towards video bitrate jitters.

   *************************************************************************
      RELEASE NOTES to Version 2.2.15 Build 2000-11-22
   *************************************************************************
   - (enhancement) General enhancement to handle illegal and corrupted MPEGs.

   - (enhancement) getRGBXImage() and getBGRXImage() have been added to
     MpegDecoder.

   - (change) When editing, the output stream type now defaults to the input 
     stream type.

   - (change) OUT point used to snap forward to the next I frame in
     GOP-accurate editing. Now when the OUT point is before the first I frame
     of a GOP, it snaps backward to the beginning of the GOP.

   - (change) The SDK used to declare its own string class `String'. Now
     the string class `string' in the standard library is used instead.

   - (bug-fix) MpegDecoder::getXRGBImage() and MpegDecoder::getXBGRImage()
     created images with RGBX and BGRX color channel order in the pixel.
     This has now been fixed. Note that applications that require the 
     previous color channel ordering must now use the new functions 
     getRGBXImage() and getBGRXImage() instead.
   
   - (bug-fix) MpegEditor could not reliably generate videos greater than 
     approximately six and a half hours long. Now fixed.

   - (bug-fix) In rare cirumstances (when the IN point is at the start of an
     open GOP and the source video starts with a closed GOP) MpegEditor might
     produce videos which start with a couple of orphan B frames.

   - (bug-fix) When generating a new video consisting of many, very short 
     clips (less than 1 GOP each) MpegEditor might generate incorrect results
     or might even hang. Now fixed.

   - (bug-fix) .idx files (generated when MpegDecoder decodes a video-only
     MPEG) are not saved even when setAuxFilesPath() explicitly requested so.
     This is now fixed.

   - (bug-fix) GOPAccurateEditor produced wrong results when the IN and OUT
     points belong to the same GOP and IN is not the first frame. This is now
     fixed.

   - (bug-fix): When editing MPEGs with dimensions that are not multiples of 16,
     the last line may contain corrupted blocks. This is now fixed.

   *************************************************************************
      RELEASE NOTES to Version 2.2.13 Build 2000-09-12
   *************************************************************************
   - (enhancement): New units (Frame, Seconds, MPS = MediaPlayer Seconds) 
     have been added to SMPTE Timecodes for specifying media positions 
     in the MPEG stream.

   - (enhancement): The accuracy of converting large value TimeCodes to 
     seconds has been improved.

   - (enhancement) User data is now retained in fast mode editing. In
     Frame-accurate mode it is retained except for the first and last GOP.

   - (bug-fix) Orphaned frames before the first valid GOP could result in 
     inaccurate navigation. Now fixed (Orphaned frames before the first 
     valid GOP are now ignored).   

   - (bug fix) Non-default PID settings were previously ignored. Now fixed.

   - (bug-fix) A bug was introduced in PasteCut() in v2.2.9 that resulted 
     in a loss of sync between audio and video when joining multiple clips 
     together. Now fixed.

   **********************************************************************
     RELEASE NOTES TO MPEG SDK Version 2.2.10 (Build 2000-06-22)
   **********************************************************************
   - (enhancement): Analyzer used to abort if it encountered a bad frame.
     Now continues to the specified ending-frame and then reports all 
     error conditions on completion.

   - (enhancement): The packetizer now delays emitting audio packets at 
     the stream start to avoid audio buffer overflow.

   - (change): The distinction between `horizontal_size' and 
     `vertical_size' vs `width' and `height' has been made more explicit. 
     The former refers to a picture's display size; the latter refers to 
     the display sizes rounded up to multiples of block size.

   - (bug Fix): Split start codes were checked incorrectly resulting in 
     HotNav error. Now fixed, resulting in more robust Navigation.

   - (bug Fix): VidBS::seekPrevPacketWithTimeStamp() was getting the 
     "has_time_stamp" status from the wrong packet. Now fixed, resulting 
     in more robust Navigation.

   - (bug Fix): TSPacket::writePESHeader() was setting packet length to 
     zero always. This is wrong for audio packets. Now fixed.

   - (bug Fix): MpegAnalyser::calcHistogram() did not check the range 
     of the input value which may be outside [0,255] because of rounding.
     Now fixed.

   - (bug Fix): HotNav may fail if the first GOP contains just one 
     frame. This is now fixed.

   **********************************************************************
     RELEASE NOTES TO MPEG SDK Version 2.2.7 (Build 2000-05-18)
   **********************************************************************
   - (enhancement): Tolerance of illegal MPEGs has been improved:
      - can now ignore up to 2MB of non-MPEG data at start of file
      - better recovery from encoding errors detected in the stream.

   - (enhancement) Renamed CATCH, THROW, TRY and ASSERT macros to 
     avoid preprocessor clash with MFC macros of the same name.

   - (enhancement): A new function has been added to configure .mpf 
     files to
       - be placed at a specified folder location,
       - or, not be used.

   - (enhancement): The error stack is now cleared before each SDK 
     function call.

   - (enhancement): A new function howBlack() has been added.

   - (enhancement): Low sampling rate extension (ISO 13818-3) support has 
     been added to audio stream parsing.

   - (enhancement): An internal buffer has been made larger to handle 
     higher bit-rates when generating MPEG videos.

   - (enhancement): MPEG-2 SDK can now edit 4:2:2 streams.

   - (enhancement): Additional checks have been added to stop non-MPEG
     format video files from being opened as MPEG files. 

   - (change): Change the TimeStamp and ClockRef classes so that ticks 
     larger than 24 hours are interpreted as negative numbers. This means
     that a larger range of MPEGs can now be decoded reliably.

   - (change): The first few frames of Transport streams were not played 
     reliably on some hardware players. The Timestamping at the start of 
     Transport streams has been changed to accomodate such players.

   - (bug-fix): The SDK can now handle MPEG videos which have no
     timestamps in the frames near the end of the video. Previously the
     SDK would incorrectly report the length of such videos and be unable
     to navigate the stream correctly.

   - (bug fix): When packetizing transport streams, the continuity_counter 
     was not incremented for PAT and PMT packets. Now fixed. 

   - (bug fix): When the chroma format is 4:2:2, the profile_and_level field
     was not set according to Supplement 2 of the 13818-2 Spec. This is 
     now fixed.

   - (bug fix): MPEG files with zero packet length caused the library 
     to crash. Now fixed.

   - (bug fix: MPEG-2 SDK only): When packetizing high bitrate videos 
     into transport streams, the PES_packet_length field was sometimes
     set incorrectly causing jerkiness and missing blocks on playback. 
     This is now fixed.

   - (bug fix): A wrong byte is read if a PES packet has zero length. 
     Now fixed.

   - (bug fix): When trying to verify a audio-only stream by skipping 
     to the next header, the skip was one byte short and all audio-only 
     streams were rejected. Now fixed.

   **********************************************************************
       RELEASE NOTES TO MPEG SDK Version 2.2.3 (Build 2000-03-31)
   **********************************************************************
   - (enhancement: Analyzer): isBlack() algorithm has been improved. Now 
     uses contrast and maximum intensity rather than average intensity to
     identify a black frame.

   - (change: Analyzer): summarizeClip() now also includes the first and 
     last frames of the clip.

   **********************************************************************
       RELEASE NOTES TO MPEG SDK Version 2.2.2 (Build 2000-03-27)
   **********************************************************************
   - Initial release of MPEG SDK with high-level interface.


   Copyright
   =========
   MediaWare Solutions Pty Ltd
   GPO Box 1985
   Canberra
   ACT 2601
   Australia

   Tel: +61 26247 4438
   Fax: +61 26247 4557
   URL: http://www.MediawareSolutions.com
   email: support@MediawareSolutions.com

   =====================================
   File: ReleaseNotes.txt 18-Jan-2002