Version: Wowza Media Server 3.1.2 patch16

Installation
Copy contents (not the entire folder just the contents) of 
"bin", "conf", "lib" and "lib-native" folders into installed server folders. Remake
any configuration changes that you made.

The install directory ([install-dir]) on the different platforms:

Windows (default): C:\Program Files\Wowza Media Systems\Wowza Media Server [version]
OSX: /Library/WowzaMediaServer
Linux, Unix, Solaris: /usr/local/WowzaMediaServer

Changes

Wowza Media Server 3.1.2 patch16
* Fixed problem where DVR HLS chunks varied in size when server became loaded
* Fixed possible NPE in DVR MBR aligner
* Removed unnecessary exception logging when DVR Chunk Streamer failed to return a chunk
* Improved UDP handling to recycle threads in thread pool
* Fixed problem with audio bitrate calculation in transcoder when pulling data from SDP info
* Fixed Wowza Transcoder memory leak associated with AAC-HE encoding
* Fixed Stream.close to properly unpublish the stream
* Added DVR property "dvrVerifyChunkExistenceOnManifestLoad" (Boolean, default=true) that surfaces API used to turn off verification of each artifacts existence when loading a DVR recording.  When set to false, it will be assumed that each chunk is on disk and readable, skipping check for existence
* Fixed problem with x-file-name logging not showing full path when streaming MP4 files
* Fixed transcoder code to properly shutdown stream is there are no output streams (memory leak)
* Fixed ServerListenerStartupStreamsMonitor so that the monitor is properly started as a thread
* Version: 3.1.2.16 build3037

Wowza Media Server 3.1.2 patch15
* Fixed LivePlayer to properly send original timecodes when in origin/edge mode
* Fixed Apple HLS packetizer to not look at data events when determining if audio-only or audio/video stream
* Added boolean MediaCaster/Properties property shoutcastSetTimecodesBasedOnSystemClock that when true will set the shoutcast timebase based on system clock
* Added LiveStreamPacketizer/Properties integer properties sanjoseLivePointChunkCount sanjoseMinReserveChunkCount to control the live point that is reported in the ABST data for Flash HDS streaming
* Fixed potential ConcurrentModificationException in Cupertino MBR DVR
* Fixed problem with non-supported media packets getting into transcoder
* Fixed problem with PMT not filtering on table_id
* Enhanced DVR 'Add chunk' logging message to include a/v/d dvr and packet times.  This should help with earlier analysis of streams being unaligned
* Added support for jwplayer.smil format for new JW Player
* Improved socket close logic when DVR uses Chunk Stream Repeater.  This fixes cases where sockets could be left open
* Fixed problem with Dvr Chunk Streamer where incorrect HEAD response caused additional MediaCache traffic
* Implemented Byte range requests for DVR Chunk Streamer
* Version: 3.1.2.15 build2683

Wowza Media Server 3.1.2 patch14
* Improved Wowza Transcoder internals to support B-frames
* Added support for AC3 audio in Apple HLS
* Fixed problem transcoder that framerate was incorrect when using skipframe
* Fixed problem with NVidia CUDA device detection introduced in patch8
* Added new utility class MultiMap
* Fix to MP4 writer to fix audio/video sync issue
* Fixed usage of stream aliasing and DVR in origin edge configuration.  If resolveStreamAlias was aliasing the stream name to determine which origin server to retrieve chunks from but not ChunkOriginURl was defined, the aliased stream was ignored.  (For example if "myStream" was aliased to "rtmp://localhost:1935/dvrorigin/myStream", the DVR playlist would be delivered but not the chunks.)
* Version: 3.1.2.14 build2121

Wowza Media Server 3.1.2 patch13
* Added support for B-frames when using the transcoder
* Added support for AC3 audio in Apple HLS
* Added sample MediaCache RandomAccessReader for local stream testing
* Version: 3.1.2.13 build1902

Wowza Media Server 3.1.2 patch12
* Improved MP4 file cursor code so that on file open it does not index the entire time to sample table if not necessary
* Fixed problem where DVR MBR would stop updating playlist after several hours
* Improved logic for determining whether DVR MBR alignment needs recalculated
* Improved logic for determining alternate chunk for DVR MBR gap.  If within "dvrMbrAlternateMatchDelta", its considered a match otherwise closer alternates are searched for
* Added DVR property "dvrMbrAlternateMatchDelta" to configure alternate chunk match
* Added support for basic authentication when re-streaming protected SHOUTcast/Icecast stream (format is http://[username]:[password]@[domain]:port/)
* Version: 3.1.2.12 build1873

Wowza Media Server 3.1.2 patch11
* Improved performance of RTMP handshake generation
* Removed the following unused classes:
 * FasterByteArrayOutputStreamSync
 * FasterByteArrayOutputStreamInterleave (found another occurrence of this in plugin)
 * IMediaStreamOutputControl
 * IoSessionOutputStream
 * ObjectSerializationOutputStream
* Removed un-needed type check in MediaReaderH264.directOutput (2 places)
* Modified RTMP header generation code to simplify code and improve performance
* Fixed infinite error throw by smooth streaming when using MP3 audio
* Version: 3.1.2.11 build1845

Wowza Media Server 3.1.2 patch10
* Reworked HTTP VOD streaming to normalize chunk creation
* Fixed server-side publisher code so that is properly propagates data events to registered callbacks
* Version: 3.1.2.10 build1816

Wowza Media Server 3.1.2 patch9
* Added missing context information to some DVR packet handling log warnings
* Fixed origin-edge serialization issue in new Cupertino encryption
* Added new Apple HLS PlayReady implementation renditions to DVR
* Updated transcoder templates transcode.xml and transrate.xml to add H.263 <Encode> block (disabled by default)
* Version: 3.1.2.09 build1811

Wowza Media Server 3.1.2 patch8
* Added H.263 encoding support to Wowza Transcoder
* Tweaked Apple HLS PlayReady chunk encryption
* Added support for AppleHLS PlayReady DRM protection to ModuleDRMBuyDRM
* Version: 3.1.2.08 build1798

Wowza Media Server 3.1.2 patch7
* Updated Wowza Transcoder audio behind filter default from 6000 to 12000
* Improved Wowza Transcoder behind filter so that it only logs audio/video behindness if that type of media is being transcoded
* Fixed isPublishStreamReady to look for at least on audio and on video packet before marking the stream as read for publishing
* Improved DVR MBR algorithm to handle chunk alignment at live portion of streams better by backing up one chunk when updating the alignment in a live stream.  This allows streams that need an alternate chunk from a matched stream to replace the alternate with their own chunk if it has just arrived
* Fixed DVR MBR case where alternate chunks were being substituted for very small gaps in the stream
* Fixed DVR MBR case where delta from stream to alternate chunk was incorrectly calculated
* Improved DVR MBR synchronization
* Added URL encoding to application name when using centralized configuration
* Added following integer RTP/Properties to control the payload type used when streaming using RTP and MPEG-TS
  * audioPacketizerAACPlayloadType
  * audioPacketizerMP3PlayloadType
  * audioPacketizerSPEEXPlayloadType
  * videoPacketizerH264PlayloadType
  * streamPacketizerMP2TPlayloadType
* Improved Apple HLS AES encryption implementation
* Added support for PlayReady envelope encryption of Apple HLS (not yet documented)
* Fixed problem with liverepeater sending NetStream.Play.UnPublishNotify when it should not
* Added boolean MediaCaster/Properties property resetOnStreamNotFound which when true will reset a liverepeater stream when NetStream.Play.StreamNotFound is received from origin
* Updated ModuleMediaWriterFileMover error log statement to include proper context
* Fixed problem with CupertinoReapterHolder serializer and new encryption schemes
* Added new Apple HLS PlayReady implementation rendition (there are now two forms: CHUNK-PLAYREADY and ENVELOPE-PLAYREADY)
* Added Apple HLS PlayReady chunk encryptor
* Fixed problem with RTMP playback where frame did not udpate if seeking while paused
* Fixed live stream packetizers so they properly reset when source stream changes
* Fixed cupertino repeater mechanism to fix problem with RESET serialization
* Version: 3.1.2.07 build1792

Wowza Media Server 3.1.2 patch6
* Updated Wowza Transcoder to MainConcept 9.5.0 libraries
* Fixed problem where SEI data was not unescaped when extracting from stream and not escaped when inserting into the stream.  This fixed some mp4 streams that would not play after CC insertion
* Implemented SEI insertion callback for Cupertino VOD
* Improved logging of error conditions in DVR PlayReady Encryption
* Improved locking and try/catch in DVR PlayReady Encryption
* Fixed problem where 2 out of sync ABR DVR streams could result in a playlist that was referring to purged chunks resulting in "record does not exist." log messages
* Improved code that determines if a record should be part of the aligned streams or not by using the UTC or PACKET time based playlist request instead of the scaled DVR request
* Improved logging when DVR record is not found and "dvrDebugMbrDetailsWhenRecordDNE" is enabled
* Improved some DVR manager logging statements that were missing context
* Improved IP camera re-streaming to start with OPTION command rather than DESCRIBE command. Seems to fix authentication for several cameras
* Fixed DVR MBR problem where last chunk could be omitted from playlist
* Improved efficiency of shifting DVR entries for long sets of data after purges
* Fixed incorrect duration in San Jose MBR DVR chunks when many chunks are missing and shifting occurs
* Fixed case where DVR Smooth streaming could return malformed XML when expected streams were not present
* Fixed problem with HTTP origin when using SMIL file with audioonly rendition with Apple HLS
* Improved MP4 seek and read-ahead performance by optimizing cursor access to chunkToLoc structure
* Improved synchronization in MediaReaderH264 in read ahead code
* Set RTP marker bit when streaming MPEG-TS over RTP per RFC2250
* Added boolean Transcoder/Properties property behindFilterLog to enable logging of detailed transcoder behind filter information
* Fixed problem with file extension being logged in URI fields improperly
* Version: 3.1.2.06 build1753

Wowza Media Server 3.1.2 patch5
* Fixed problem where DVR recorder was using streamName as recording name instead of name set via onLiveStreamDvrRecorderCreate callback
* Improved synchronization and added try/catch around a few missing IO functions for RTMP streaming
* Added DVR/Properties property "dvrCupertinoPlaylistAllowCaching" (Boolean, default:false) to allow control of #EXT-X-ALLOW-CACHE
* Added httpRandomMediaName property to all packetizer to enable single switch to turn on feature
* Added DVR MBR property "dvrDebugMbrDetailsWhenRecordDNE" (Boolean, default: false) to provide additional logging details when alignment cannot find suitable alternate record
* Added DVR encryption delegate implementation that adds logging of encryption info per request.  Turned on by setting DVR Property dvrPlaylistEncryptionInfoDelegate to "com.wowza.wms.dvr.impl.DvrLoggingEncryptionInfoDelegate"
* Added check that DVR Cupertino encryption info isValid() before using it in manifest or chunk delivery
* Tightened up DVR Cupertino encryption logic, including added some additional try/catch and additional checking for unusual conditions
* Added detailed logging if DVR Cupertino encryptor fails upon initialization or during encryption
* Fixed NALUnit parsing case where last trailing bytes could be skipped
* Version: 3.1.2.05 build1699

Wowza Media Server 3.1.2 patch4
* Fixed potential synchronization problem with HTTP adaptive streaming file indexes
* Improved HTTP session counting synchronization
* Improved HTTP streaming session life cycle synchronization
* Fixed smooth streaming "Pragma" header to use proper cache control settings
* Added support for MP3 files when using cupertinoPacketizeAllStreamsAsTS property
* Version: 3.1.2.04 build1681

Wowza Media Server 3.1.2 patch3
* Added code to optimize file reading for HTTP streaming (re-orders and groups reads where it can) turned off by default, can be turned on by setting boolean property MediaReader/Properties httpOptimizeFileReads to true.
* Added string property MediaReader/Properties randomAccessReadOptimizerClass to configured custom IRandomAccessReadOptimizer implementation
* Added code to decrypt PlayReady files on the fly for HTTP vod delivery
* Improved context information in warning message when DVR manifest parser cannot find the sub-folder's manifest file
* Fixed DVR issue where the DVR mbr alignment manager was not releasing memory on shutdown of DVR store 
* Removed class FasterByteArrayOutputStreamInterleave because it is not used
* Fixed synchronization bug in livestreampacketizer base class that was leading to "Too many packets in event queue, pausing" warning
* Added boolean HTTPStreamer/Properties property cupertinoPacketizeAllStreamsAsTS to force audio-only video on demand streams to be packetized as TS chunks (this is more compatible with some non-Apple HLS players, default is false)
* Added boolean LiveStreamPacketizer/Properties property cupertinoPacketizeAllStreamsAsTS to force audio-only live streams to be packetized as TS chunks (this is more compatible with some non-Apple HLS players, default is false)
* Version: 3.1.2.03 build1668

Wowza Media Server 3.1.2 patch2
* Improved Apple HLS chunking code so that it will properly report the audio codec if audio is not present in code lock period
* Improved DVR chunk purging code to ensure unpurged AVD chunks remain in alignment
* Fixed problem where large DVR stores would update the manifest.txt during the initial reading of the DVR store
* Fixed problem where empty DVR/Store property defaulted to dvrfilestorage type.  This caused edge servers to try to pull from disk if they happened to be running on same machine as the origin machine
* Added file IO read optimizer class for video on demand streaming, only hooked up to Apple HLS and turned off by default for now
* Version: 3.1.2.02 build1660

Wowza Media Server 3.1.2 patch1
* Added packet validation code to transcoder for Speex decoding
* Added faster BitReader implementation
* Fixed problem in DVR Smooth manifest where DvrWindowDuration was incorrectly set to smaller of total DVR duration and specified DVR sliding window length.  In cases where DVR sliding window had not been reached, Silverlight player would total length shorter than it actually was.
* Improved Smooth Streaming log message when DVR store not found by adding requested store name to message
* Changed Speex library to be staticly linked into transcoder
* Changed names of Linux shared libraries to match renditions returned through ldd
* Improved Speex decoder to be more fault tolerant
* Removed libvorbisenc.so which is no longer needed
* Improved DVR MBR Smooth streaming MBR chunk retrieval algorithm to better handle near time misses
* Fixed problem with replay of Flash HDS and Apple HLS audio only vod streams
* Added LiveStreamPacketizer property maxEventCount to control maximum allowed event queue size before it is suspended to avoid memory runnup (default is 10000)
* Improved logging of condition when LiveStreamPacketizer event queue is suspended due to overrun
* Fixed problem where once the LiveStreamPacketizer queue was overrun it was not properly flushed
* Improved accuracy of Apple HLS audio only start codes
* Version: 3.1.2.01 build1647

