Version: Wowza Media Server 3.0.3 patch12

Installation:

Copy contents (not the entire folder just the contents) of following 
folders to the corresponding [install-dir] folder and remake any configuration 
changes (empty folders indicate no changes for that folder):

bin
conf
documentation
lib
lib-native/win64
lib-native/linux64
transcoder/templates

[install-dir] for each platform:

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.0.3 patch12
* Fixed TCP request decoder to properly deal with full HTTP path in HTTP header
* Implemented DVR Multi Bitrate alignment
 * Streams are aligned by packet times
 * If there are chunks missing in the stream, a different rendition is sent to the player
 * Property dvrMbrMinimumPacketTimeGapSize added to control size considered a gap in the stream
* Enhanced DVR Playloist delegate API to allow creating playlist requests in packet time or UTC time.
* Removed parameter IDvrStreamStore from IDvrRecordingListener, IDVrSToreListener and IDvrStoreChunkListener APIs as it is retrievable from IDvrStreamStore
* Added internal testing delegate class for intercepting chunks before they are stored by the DVR
* Added debug logging properties dvrDebugMbrPlayerAdapter, dvrDebugMbrAlignment, and dvrDebugPlaylistRequest
* Exposed underlying RTMPResponseMessage in HTTPResponse
* Changed Speex output RTP playload id to 0x60
* Added Silverlight Multicast Authorizer
* Fixed DVR MBR alignment issue when there was a small gap
* Reorganized DVR MBR Alignment code so to make it testable via unit tests
* Added NPE check when adding a set of properties
* Fixed potential NPE in San Jose streaming
* Changed internal implementation of getNextIndex()
* Updated SanJose streaming to always use full ABST data
* Added more connection count information to server info HTTPProvider
* Fixed DVR MBR alignment bug where wrong alternate chunk was calculated.
* Fixed DVR MBR alignment gap removal algorithm where a specific case wasn't removing the correct common gap between streams.
* Fixed DVR MBR problem where a single mbr stream incorrectly left gaps.
* Fixed DVR ABR alignment case where large gap exists up until the live point.
* Fixed case when nDVR smil does not exist, San Jose Streamer would go into defer mode and log multiple errors instead of logging a single error
* Fixed DVR ABR alignment calculation case.  Alignment could be miscalculated when DVR is purging entries.
* Implemented highwater algorithm to update the DVR ABR alignment information for aligned streams.  No longer regenerates the entire alignment structure
* Fixed DVR ABR alignment problem where if DVR purge area intersects with that last known mbr alignment, the stream would stop playing
* Fixed several DVR ABR bugs related to having a non-zro DVRWindow
  * Handled Smooth Streaming DVR ABR alignment case where wrong chunkIndex was requested if DVR data had been purged
  * Fixed general case where shifted aligned entries would incorrectly contain entries in the purged area
* Updated MP4 file recording to enable turning on/off data recording and onMetaData recording
  * Streams Property boolean propertymp4WriterRecordData to turn on/off data recording (true by default)
  * Streams Property boolean mp4WriterRecordOnMetaData to turn on/off recording of onMetaData event (false by default)
* Added debug log statement for transcoder frame size resolution
* Fixed miscalculation of DVR MBR alignment delta.  This fixes Smooth player sometimes requesting a chunk back in time
* Added property dvrDebugMbrAlignmentResolution for logging aligned playlist index to real store and index
* Fixed NPE in Cupertino DVR streaming when ngrp has empty media list
* Fixed problem where restarting incoming stream would cause DVR to start recording even though DVR recording API had stopped the recording and "startRecordingOnStartup was false" (Ticket 19766/Issue WMS-64)
* Fixed case where DVR on edge was playing as non-live when in fact the origin was live (Ticket 20021/Issue WMS-63)
* Separated notions of isRecording() and isLive() in IDvrStreamStore interface.  On an origin live and recording are equivalent, but on an edge recording is always false but it could be live if the origin is recording
* No-op startRecording and stopRecording on edge stores
* Added DVR origin edge logic to serialize state updates
* Changed example code to use IDvrConstants for "dvrstreamingpacketizer" and "dvrstreamingrepeater"
* Fixed transcoder problem when video codec is set to disable it throws may log warnings and errors
* Improved transcoder transparent overlay performance
* Fixed transcoder crop mode to properly use source frame rectangle
* Fixed transcoder letterbox mode to properly set black background with transparent overlays
* Fixed transcoder source frame crop and sourcerect modes to use property frame rectangle
* Fixed DVR MBR alignment case where alternate chunk was incorrectly calculated if update occurred at very beginning on new gap
* Updated MBR DVR alignment unit tests to reflect fix to "alternative delta"
* Added codec value Disable to transcoder templates
* Added support in stream Publisher class for a stream name with a prefix
* Added API to set Stream class start and duration resolution from seconds to milliseconds Stream.setTimesInMilliseconds(boolean timesInMilliseconds)
* Added API to remove Stream class items by index Stream.removeFromPlaylist(int index)
* Fixed problem with removing times from Stream class where indexes where getting incorrectly updated
* Improved connection counting code
* Added startOnPreviousKeyFrame property to PublishingProviderLive to make transition to live streams smoother
* Added startLiveOnPreviousKeyFrame property to Stream class to make transitions to live streams smoother
* Added MediaCaster properties rtspDefaultAudioRTPMap and rtspDefaultVideoRTPMap to enable setting of default rtpmap entry for IP cameras that do not properly include this data in the SDP data (Example: Set rtspDefaultAudioRTPMap to PCMU/8000)
* Fixed NPE caused by MP4 files with empty text tracks
* Fixed potential NPE in Cupertino DVR for null playlist request
* Added logging if null playlist request occurs in Cupertino DVR streaming
* Fixed case where DVR MBR alignment mapping was not updating during live playback
* Version: 3.0.3.12 build1064

Changes:
Wowza Media Server 3.0.3 patch11
* RTMP implementation update
* Version: 3.0.3.11 build996

Changes:
Wowza Media Server 3.0.3 patch10
* Fixed problem where Smooth Streaming non-live DVR streaming had a 3016 Invalid media error
* Added preliminary support for BuyDRM integration
* Added method IHTTPStreamerCupertinoIndex.getStreamBitrates()
* Enhanced DVR HTTP query example code to dump out time map info
* Fixed problem where dvrPlaylistDurationQueryParameter and dvrPlaylistStartQueryParameter were not being honored properly being parsed from The DVR properties
* Added DVR property dvrPlaylistDebugRequests which will log playlist request, available DVR playlist and resolved playlist when using DvrStartDurationPlaylistRequestDelegate 
* Fixed MediaList HTTPProvider to correctly add width and height values in RSS and XML feed
* Fixed transcoder name group resolution timeout so that at least 10 packets are process before the timer starts
* Enhanced DVR api example code to include an example of getting a recording's duration
* Updated MPEG-TS over RTP playload ID from 0x62 to 0x21 per the RTP specification
* Added support for RTCP Receiver Reports
* Improved transcoder session counting
* Version: 3.0.3.10 build995

Changes:
Wowza Media Server 3.0.3 patch9
* Updated to MainConcept SDK version 9.1.0
* Avoid possible memory leak with Java 7 regarding GC JMX notifications
* Fixed HTTPProviderMediaList so that it returns width in RSS feed if only width specified in SMIL file
* Version: 3.0.3.09 build969

Wowza Media Server 3.0.3 patch8
* Updated crossdomain.xml and clientaccesspolicy.xml handlers to close TCP connection after response
* Fixed problem with IHTTPStreamerSession.setPlayStart/setPlayDuration not working for iOS streaming when called from onHTTPSessionCreate
* Modified applicationInstance startup so that is does not try to validate storageDir if mounted drive
* Fixed liverepeater reset problem with HTTP streaming protocols not properly setting liveedge flag on reset
* Improved liverepeater logging when streaming HTTP protocols
* Fixed transcoder audio encode start log statement so that is properly displays objectType
* Fixed problem with stream publisher not notifying with unpublish event
* Added system locale log statements to Wowza Server startup
* Fixed problem with RTMP adaptive streaming where on switch MediaCaster registered player name was not being updated properly
* Added try/catch in client shutdown code
* Updated listeners collections (app, appInstance, vhost, server, mediastream) to use HashSet rather than ArrayList to avoid duplicates
* Updated internal onWriteComplete to avoid duplicate calls
* Improved RTP and RTSP/RTP code to make us not dependent on RTP M-bit
* Improved RTP and RTSP/RTP code to dynamically set waitForEnd based on transports
* Enhanced HTTPServerInfoXML to add support for HTTPSessions and RTPSessions
* Enhanced HTTPServerInfoXML to add more information about bytes transferred and Io timing
* Fixed problem with cupertino stream and target duration being too long when using wowzaplaystart
* Added HTTPProvider com.wowza.wms.http.HTTPProviderMediaList to main VHost ports. This enables the following URLs:
  * http://[wowza-ip-address]:1935/[application]/smil:[streamName].smil/jwplayer.rss - JWPlayer adaptive streaming
  * http://[wowza-ip-address]:1935/[application]/ngrp:[streamName]/jwplayer.rss - JWPlayer adaptive streaming
  * http://[wowza-ip-address]:1935/[application]/smil:[streamName].smil/manifest-rtmp.f4m - OSMF RTMP adaptive streaming
  * http://[wowza-ip-address]:1935/[application]/ngrp:[streamName]/manifest-rtmp.f4m - OSMF RTMP adaptive streaming
  * http://[wowza-ip-address]:1935/[application]/ngrp:[streamName]/medialist.smil - Name Group as SMIL XML
* Version: 3.0.3.08 build966

Wowza Media Server 3.0.3 patch7
* Improved code to better handle negative CTTS values (DST to PTS offsets)
* Fixed spelling error in transcoder stream name group log message
* Added check to ensure codec config packet is H264 before trying to decode it as such
* Version: 3.0.3.07 build942

Wowza Media Server 3.0.3 patch6
* Fixed multiple san jose sessions being created when connecting to DVR multi bitrate stream
* Fixed OSX Lion acceleration problem with VOD playback
* Enhanced debugger socket configuration
* Added MPEG-TS out Streams/Properties to control the audio and video stream_type used (mpegtsOutVideoStreamType and mpegtsOutAudioStreamType)
* Fixed problem with MPEG4 Part 2 frameSize and frameRate calculations
* Version: 3.0.3.06 build939

Wowza Media Server 3.0.3 patch5
* Fixed problem where live stream packetizer properties that apply to DVR could not be placed under Application/Dvr/Properties
* Fixed problem with AMF data in an MP4 file that caused seek problem
* Added support for onMetaData events in MP4 files
* Fixed problem where DVR created "recorded" manifest for multi bitrate streams instead of "dvr"
* Fixed problem with audio only HTTP streams not getting data packets
* Version: 3.0.3.05 build933

Wowza Media Server 3.0.3 patch4
* Updated documentation regarding requirements for Wowza Transcoder on Windows Server 2003 and 2008
* Added "dvrPlaylistEncryptionInfoDelegate" to allow interception of encryption information before it is added to playlist and encoded in DVR chunks
* Added HTTPProvider2Base (with 2 P)
* Improved transcoder to handle liverepeater stream as a source - added close and shutdown actions
* Improved transcoder logging to log profile, level and objecttype names
* Fixed MP4 seek divide by zero error caused by single AMF data frame
* Fixed DVR bug where 2 consecutive video key frames would cause the first to be discarded and a 'handleHolder' warning to be logged
* Improved DVR audio/video alignment code to minimize how often keyframes get held back
* Changed DVR property "dvrChunkDurationMinimum" default to 1500 ms
* Moved DVR property "dvrChunkDurationMinimum" to public constants
* Fixed cuperino VOD streaming to enable spaces in stream names in SMIL files
* Version: 3.0.3.04 build925

Wowza Media Server 3.0.3 patch3
* Fixed a few transcoder methods that were not properly marked as public
* Added log warning if verimatrix stream mapper file does not exist
* Updated transcoder logging in a few more places to properly log profile, level and AAC object type
* Updated SMIL parser to properly us MP4 prefix as the default
* Fixed DVR playlist request problem when delegate is not defined
* Fixed live-record stream type when using transcoder
* Added DVR debug property "dvrLogInvalidChunkDetails", which allows packets to be dumped out when a chunk is ignored as "invalid".
* Improved dvrDebugRawPackets to put the time code in the front of the log statement so its easier to sort and see out of aligned packets
* Improved DVR recorder endChunk logging message to include index of stored chunk as well as info if it was skipped
* Fixed bug where playlist was available one saved chunk too early
* Renamed method names of manifest methods: "Playlist" methods are now "Live", "All" methods are now "Recorded"
* Changed logging statements when chunks are disregarded during saving from error level to warning level
* Updated example to fix OSMF buffering issue
  * SimpleVideoStreaming
  * LiveVideoStreaming
  * LiveDvrStreaming
* Version: 3.0.3.03 build915

Wowza Media Server 3.0.3 patch2
* Fixed error "Error creating object name javax.management.MalformedObjectNameException: Invalid character ':' in value part of property"
* Fixed transcode shutdown so transcoded stream properly call unpublish
* Improved cupertino vod logging code so that audio and video codec information is logged earlier in the process
* Improved audio and video codec logging to normalize information logged
* Fixed System.exit problem
* Added "keyframes" to Smooth Streaming parsing code.  Will handle keyframe requests at a later time
* Implemented playlist requests and playlist request factory.
  * Allows playlist request delegate to be specified via DVR Property "dvrPlaylistRequestDelegate".
  * Allows playlist request to be created using delegate.
  * Provides a sample delegate "com.wowza.wms.dvr.impl.DvrStartDurationPlaylistRequestDelegate" that allows use of URL query params "wowzadvrplayliststart" and "wowzadvrplaylistduration" to specify start/end of playlist.
* San Jose DVR: Use version 2.0 of f4m playlist
* San Jose DVR: Set window duration in dvrInfo block.
* San Jose DVR: If DVR recording stops during playback, change abst data from live to recorded to prevent "Buffering..." when end of recording reached.
* San Jose DVR: Add property "dvrSanJosePlaylistVersion" to allow choice between F4m playlist version "1.0" versus "2.0".  Default is "2.0"
* Smooth DVR: Properly distinguish between "live" and "non-live" during manifest generation
* Smooth DVR: Fix bug in multi-bitrate playlist where audio bitrate was sometimes incorrect, causing playback failure.
* Cupertino DVR: Fix potential rounding problem when generating target duration
* Updated DVR Strobe example from Strobe 1.5 to 1.6
* Added API: Enhance methods in manifest classes to allow better retrieval of live and recorded playlists.
* Fixed bug where wrong cached live chunks were being trimmed off during certain playlist requests.
* Added DVR property "dvrDebugTossedHolders" to allow debug logging of DVR packet holders that are out of sync
* Fixed RTMPT processing to handle out of order requests (seems to be a problem on OSX)
* Fixed problem with video on demand seek not working when using RTMPT or RTMPTE
* Version: 3.0.3.02 build896

Wowza Media Server 3.0.3 patch1
* Fixed transcoder crash with FitMode letterbox
* Fixed a few synchronization issues with RTP idle process
* Version: 3.0.3.01 build885

