Added MediaParser can parse EVS SDP payload descriptions
Added new sample code SpeechRtpReceiverSample
Change: The installer now references .NET 4.6 minimum as prerequisite
Change: SpeechDecoder.SetCodec(Codec, SpeechDecoderCodecSpecificValue) is now obsolete.
MediaSuite 5 Version 5.1.2506 - 2019-01-30
Fixed: Resampler interleaving channels before resampling
Fixed: AacFrameCreator not supplying correct Timestamp and SequenceNumber created
Fixed: AudioVideoChatSample not being able to sync due to improperly formed version exchange
Fixed: WwwAuth Basic realm value missing for server side authentication
MediaSuite 5 Version 5.1.2455 - 2018-12-19
Fixed RTSP open interval support for UTC clock ranges
MediaSuite 5 Version 5.1.2453 - 2018-12-18
Added Support for DashIsoWriter.Init(Stream) custom Stream passing
MediaSuite 5 Version 5.1.2416 - 2018-11-13
Added ImageTools.Rgb24ToGray extension method
Fixed: AMR-WB RTP payload parsing stability and decoding
Fixed: G.722.0 RTP payload parsing stability and decoding
MediaSuite 5 Version 5.1.2406 - 2018-11-06
Fixed: MP4Writer improved accuracy of AAC sample durations
MediaSuite 5 Version 5.1.2364 - 2018-10-01
Fixed Trial Version not activating
MediaSuite 5 Version 5.1.2355 - 2018-09-24
Added ImagTools.Rgb24Median apply a 3x3 Median Filter
Added DashSegmentBeforeFlushEventArgs.AlternativeFileStream for BeforeFlush event to allow writing to segments to Stream objects.
MediaSuite 5 Version 5.1.2328 - 2018-08-29
Fix: Corrupted PictureMediaBuffer resulting from ImageTools.BitmapToRgb24
MediaSuite 5 Version 5.1.2296 - 2018-07-30
Added late initialization support for MPEG-4.2 with Mpeg42VideoDecoderTransformContextQueued
Added generic version of RtcpCompoundPacket.Find
SDPMedia.Port, SDPMedia.MediaFormats type declarations have changed to int
MediaSuite 5 Version 5.1.2280 - 2018-07-24
Add: Allow to enable/disable logging through LocalLoggingConfiguration
Add: Globally disable logging by setting DisableMediaSuiteLogging = true as environment variable
MediaSuite 5 Version 5.1.2266 - 2018-07-20
Added following functions to ImageTools: ResizeRgb32, TransposeGray8, CopyFrom, CopyFromInplace
Removed SpeechEncoder.CompatibilityMode property. The new behavior is that SpeechEncoder will not throw any custom exceptions
AudioInterleaver.Interleave can now also process MediaBuffer. It was only able to process OffsetBuffer until now
SDPMessage.GetAllMedia(string) to retrieve all media types of a certain type
AudioEncoderFactory can now also produce encoders for all speech codecs
Fix: MP4Writer would crash when the instance is disposed without first being initialized
Fix: H264DecoderCuda would crash when the instance is disposed without first being initialized
Fix: MovieFragmentHeaderBox sequence numbers where determined on creation not when committed to the stream object
MediaSuite 5 Version 5.1.2220 - 2018-06-18
We added the ability for H264Transform.ExtractNals to also add start codes to the NAL units being returned by overriding the default parameter. The default
behavior is still that start codes are removed.
Change: MediaBuffer.ToString and OffsetBuffer.ToString formatting of information is improved
Change: Gray8PictureMediaBuffer, Rgb24PictureMediaBuffer and Rgb32PictureMediaBuffer are now sealed classes
Fix: DesktopCapture low framerate issues on non-primary monitors
MediaSuite 5 Version 5.1.2213 - 2018-06-13
Fixed: a bug in ObjectTracker when used together with Gray8PictureMediaBuffer
Add: PictureMediaBuffer.CreateFromTemplate<T>.
Add: PictureMediaBufferExtensions DrawPoint/DrawLine/DrawRectangle now have ChannelPictureMediaBuffer specializations
Fix: H264ParameterSet IndexOutOfRange when corrupt SPS/PPS is encountered
Fix: RtspOverHttp fixed potential exception when closing HTTP client
Change: Renamed OffsetBuffer.BufferPinned to OffsetBuffer.IsPinned
MediaSuite 5 Version 5.0.1442 - 2017-03-23
initial release (2)
MediaSuite 4 Version 4.0.1363 - 2017-01-29
Added AACTools.TransformAdtsToRaw2 to return AAC configuration for each frame
Fixed bug in SDP attribute parser not correctly returning property keys
MediaSuite 4 Version 4.0.1340 - 2017-01-10
Added Mp4Writer now correctly detects and writes composition offsets
Fixed H264Frame STAP-A mode with single NAL
MediaSuite 4 Version 4.0.1253 - 2016-10-07
Fixed race condition in UdpNetworkMulticastClient causing memory leak
MediaSuite 4 Version 4.0.1243 - 2016-09-29
Added SmartJitterStrategy for SmartJitterBuffer (PresentationTime, FrameAge, Both, Ignore) (Default is Ignore)
Added CheckTimestampChangeForCompletion to SmartJitterBuffer (disabled by default)
MediaSuite 4 Version 4.0.1199 - 2016-08-24
Added SmartJitter.JitterMinimumDuration. The time determines the release of a frame to the output queue based on the sum of durations of all frames in the jitter.
MediaSuite 4 Version 4.0.1196 - 2016-08-22
Fixed VP9Encoder initialization failing
MediaSuite 4 Version 4.0.1178 - 2016-08-05
Fixed RtpPacket.ParseHeader exception handling and correctly setting IsValidPacket
Fixed RTCP APP not correctly parsing payload if RTCP compound only contains one packet
MediaSuite 4 Version 4.0.1141 - 2016-06-30
Fixed H264Decoder scraping when HardwareAccelerated is used
MediaSuite 4 Version 4.0.1119 - 2016-06-10
Accelerated H.264 decoder now supports denoising
DASH static profile now writes the PresentationDuration attribute
Fixed potential access violation when CamCaptureDevice is disposed without being stopped
MediaSuite 4 Version 4.0.1072 - 2016-04-27
Added MatroskaReader now supports all MPEG-4.2 codec profiles
Fixed MatroskaReader now will not add a track with unknown codec
MediaSuite 4 Version 4.0.1065 - 2016-04-22
Fixed potential TargetInvocationException when running as non-Administrator user
Fixed ProtoCam now working again with Skype
Added WaveInput/WaveOutput device name lookup from registry
MediaSuite 4 Version 4.0.1023 - 2016-03-23
New sample Mp4DumpSample to demonstrate how to get basic information out of an MP4 container
New sample DashLiveWriterSample to demonstrate live streaming using DASH dynamic profile
Fixed VideoCaptureDevice.OnSampleAvailable introducing discontinuities when processing takes longer than expected
Fixed DashIsoWriter writing correct pixel aspect ratio
Fixed MatroskaReader now correctly reports MediaBuffer.EndTime
MediaSuite 4 Version 4.0.1011 - 2016-03-14
Fixed Safe HttpMJpeg.Stop
MediaSuite 4 Version 4.0.995 - 2016-03-02
Fixed wrong output of RtpPacket in RtpMulticastSample
Fixed HttpMJpeg Stop method not terminating correctly in some scenarios
Improved HttpJpegSource/HttpMJpegSource now derives from a common base class (HttpMotionStreamSource)
MediaSuite 4 Version 4.0.980 - 2016-02-18
Fixed Mp4Reader wrong timestamp calculations when TimeToSampleBox.SampleCount greater than zero
Fixed RtspRecordSample publish URI inconsistency with Wowza default setting
MediaSuite 4 Version 4.0.978 - 2016-02-16
Fixed AACDecoder problem when encountering RTP where AUs contain ADTS streams
Fixed target framework mismatch in Setup and MediaSuite.dll
Added AVCConfigurationRecord.AddSps/AddPps for OffsetBuffer
Added DashIsoWriter.Flush method to manually flush out segments for seek scenarios
Added DashIsoWriter.BeforeFlush event, to notify applications of an upcoming new segment
Added DASH bandwidth attribute to audio representation
MediaSuite 4 Version 4.0.912 - 2015-12-18
Point Release
Support for G.722 10ms frame durations
MediaSuite 4 Version 4.0.905 - 2015-12-11
Fixed HttpMJpegSource to support non-standard CRLF
Fixed registration procedure for non-user-interactive environments
Improved MatroskaReader prefetch performance
MediaSuite 4 Version 4.0.868 - 2015-11-07
Updated Mp4Reader can now more reliably determine the framerate for a video track
Updated DashIsoWriter now cuts off segments more precisely when SegmentThresholdType.TimeThreshold is used
Added RtspProxySample to demonstrate use of RTSP stack
Added DashAudioChannelConfiguration to DASH manifest serialization
Added MP4WriterConfiguration.InitialTrackNumber to manually set the first track number when writing to fragmented/segmented files
Fixed MatroskaReader potential EndOfStreamException when corrupt container elements are encountered at the end of file
Fixed RtpParticipant.Stop() causing an AccessViolationException when RTCP is not used
MediaSuite 4 Version 4.0.840 - 2015-10-12
Point Release
Fixed potential access violation in NalSplitter class
MediaSuite 4 Version 4.0.833 - 2015-10-06
Point Release
Fixed bounds checking omission in RTCP APP custom data
MediaSuite 4 Version 4.0.813 - 2015-09-16
Added support for MPEG-DASH live streaming with DashIsoWriter, DashAdaptiveTrackInfo
Added DashPresentationWriter to support writing presentations for all profiles according to ISO 23009-1
Added H265Transform.TransformNalToAccessUnit
Added MatroskaWriter support for H.265
Fixed potential bug in ChunkOffsetBox reporting false ContentSize
Fixed bug in Mp4Writer outputting wrong information when 0 samples are written
MediaSuite 4 Version 4.0.786 - 2015-08-25
Slight performance improvement in H264Encoder
MediaSuite 4 Version 4.0.775 - 2015-08-20
Fixed H265Frame not correctly parsing PPS
Fixed H265Decoder to gracefully decline to decode when not all parameter-sets are present
Runtime requirements have been updated to Redistributable 2015
MediaSuite 4 Version 4.0.702 - 2015-08-05
Added SDP parsing support for AC3 audio codec
Added SDP parsing support for H.265 video codec
Added H265Transform, H265TransformPackage to allow for NAL extraction for H.265
Added H265ParameterSet to allow for parsing of VPS, SPS, PPS
Added H265NalReader
Added H265Frame (supports SingleUnit, AP, FU)
Added support for playback of H.265 in RtspPlayerSample
Added support for playback of “.265” files in MediaPlayerSample
Added NullVideoDecoder, ChannelVideoDecoderConfiguration to support non-planar raw uncompressed video formats (pass-thru)
Added Vp8/Vp9 encoder option for lossless compression
Added Vp8/Vp9 encoder settings for minimum/maximum quantizer for constant bitrate rate control
Added support for fake cue points (MatroskaWriterConfiguration.FakeCuePoints) for live stream scenarios
Updated Mp4FragmentedWriter, now writes MovieExtendsHeaderBox (mehd) by default
Changed Vp8EncoderConfiguration/Vp9EncoderConfiguration are now derived from a common VpxEncoderConfiguration
Fixed potential memory leak in MatroskaReader prefetch
MediaSuite 4 Version 4.0.638 - 2015-06-03
Fixed incompatibility in H.264 real-time encoding mode
MediaSuite 4 Version 4.0.620 - 2015-05-18
Fixed minor bug that didn't allow ClickOnce deployment
MediaSuite 4 Version 4.0.599 - 2015-04-28
Fixed memory leak in H264Decoder.Init when acceleration is used
To prevent excessive memory consumption SmartJitterBuffer now also keeps a global duration (LastFrame.EndTime -FirstFrame.StartTime) and starts purging frames older than the configuration threshold.
MediaSuite 4 Version 4.0.571 - 2015-04-02
MediaSuite now supports SRTP for secure communication
Added SRtpSession
Added IRtpParticipant.SetSecureSession
Added SRtpSample to demonstrate SRTP session setup
Fixed potential jitter stall in SdpRtpPlayerSample by adding SkipLateOrIncompleteFrame to video setup
MediaSuite 4 Version 4.0.562 - 2015-03-26
Fixed bug in SmoothStreamingPlayer where multiple audio tracks would be played in some stream
Fixed bug in RTP-INFO parsing when rtptime is greater than uint.MaxValue
Fixed bug in UdpNetworkMulticastClient where memory consumption can get too high when OnReceive method is blocked for longer periods
Added jitter.CheckMarkersforCompletion in SdpRtpStreamPlayer for video streams
MediaSuite 4 Version 4.0.548 - 2015-03-13
Minor bug fixes
MediaSuite 3 Version 3.1.1935 - 2015-03-06
Point release
Fixed VideoCaptureDevice memory leak when GetFrame is called
MediaSuite 4 Version 4.0.539 - 2015-03-04
Added IWriter.Init(Stream) interface member
VideoEncoderFactory to create encoder instances based on Codec enumeration
VideoDecoderFactory to create decoder instances based on Codec enumeration
AudioEncoderFactory to create encoder instances based on Codec enumeration
AudioDecoderFactory to create decoder instances based on Codec enumeration
Changed SpeechStreamType enumeration members to case-corrected naming
Changed (H264)DecoderSpecificData.ToBinaryRepresentation(DecoderSpecificDataOutputType) specifying either Stream or Storage type version
Added TrackInfo.Copy to allow for a shallow copy of the object
Added TrackInfo(VideoEncoderConfiguration) to allow for creation of TrackInfo from an encoder configuration
Added TrackInfo(AudioEncoderConfiguration) to allow for creation of TrackInfo from an encoder configuration
Fixed MatroskaReader incorrect frame duration when using fixed size XIPH lacing
Fixed VorbisEncoder timestamps when an encoding run outputs multiple frames
Fixed H264ParameterSet problem when encountering incorrectly formed SPS for some network camera models by Honeywell
Fixed WaveReader.Position rounding error
Fixed problem in product registration where the wrong product id is reported
MediaSuite 3 Version 3.1.1932 - 2015-03-03
Point Release #2 (similar issue)
Fixed rounding error in WaveReader.Position
MediaSuite 3 Version 3.1.1924 - 2015-02-23
Point release.
Fixed rounding error in WaveReader.Position
MediaSuite 4 Version 4.0.519 - 2015-02-17
Initial
Please see What's New document
MediaSuite 3 Version 3.1.1897 - 2015-01-29
Point release: Added WaveReader.Position support
MediaSuite 3 Version 3.1.1888 - 2015-01-20
Added RtspSessionManager.KeepAliveMethodType select the signaling keep alive method. Valid options are: GetParameter and Options
Fixed H264ParameterSet parsing of VUI timing information
MediaSuite 3 Version 3.1.1843 - 2014-12-10
Point Release: RTSP fix for parser error when negative rtpTime is encountered in RTP-INFO header
MediaSuite 3 Version 3.1.1828 - 2014-11-28
RTSPPlayer added check for correct payload type before packet is processed by corresponding SubStreamDescriptor
JitterBuffer added MinimumFrameAge indicating the minimum age a frame must have before it is release by the jitter buffer.
JitterBuffer added CheckGaps to check whether frame gaps exist as criteria for a complete frame.
PresentationBuffer.AddFrame now returns a result (CodecOperationStatus.Success or CodecOperationStatus.Failed)
MediaSuite 2 Version 2.0.1146 - 2014-11-28
Added MediaHelper.ParseToAvcConfigurationRecord to support conversion of SPS/PPS to AVCc (MP4)
MediaSuite 3 Version 3.1.1791 - 2014-10-24
RtspRecordSample added audio support
PresentationBuffer.AddFrame now returns either Success or Failed
MediaSuite 3 Version 3.1.1746 - 2014-09-12
Fixed bug in SPS/PPS to avcC record conversion when no PPS is present.
MediaSuite 3 Version 3.1.1737 - 2014-09-04
Fixed WaveInput potential dead-lock when calling Stop() method in fast succession.
Added RtspRecordSample to demonstrate recording to Wowza Media Server, DSS etc.
Added RTSPManager methods CreateAnnounce and CreateRecord
MediaSuite 2 Version 2.0.1045 - 2014-08-21
WaveOut/WaveIn: Fixed 64-bit thunking bug
MediaSuite 3 Version 3.1.1703 - 2014-08-04
Fixed H264Decoder fails to initialize with empty DecoderData with intent for late initialization
Added support for additional HTTP authentication in RTSP over HTTP streams.
Performance improvement in RTSPManager by eliminating 1 thread.
Minor bug fixes
MediaSuite 2 Version 2.0.1006 - 2014-07-14
Fixed issue with RTSP parser not finding key/value pairs when the key name also occurs as value
MediaSuite 3 Version 3.1.1678 - 2014-07-14
Fixed WaveReader only setting Codec to PCM when correct format is encountered
Fixed ArgumentException when MP4Writer is closed without anything being written to it
Fixed issue with RTSP parser not finding key/value pairs when the key name also occurs as value
MediaSuite 3 Version 3.1.1631 - 2014-05-28
Added WaveReader and WaveWriter
Added MP3Reader
Added WaveFilePlayer sample
Added Mp3Player sample
Added support for MP3 in RtspPlayer
Added SpeechMediaEndpoint to StreamServerSample to demonstrate streaming of speech codecs
Fixed performance problem in WaveInput when using polling method (GetNextSamples)
MediaSuite 3 Version 3.1.1604 - 2014-05-07
Fixed bug in H264Transform causing unnecessary splitting of NAL units
Added Randomizer.SetSeed for custom initialization
MediaSuite 3 Version 3.1.1597 - 2014-05-02
Fixed parsing bug in HttpMJpegSource
MediaSuite 3 Version 3.1.1594 - 2014-04-29
Added H264Encoder feature to call Init() again with new Bitrate value. The RateControlType cannot be changed.
Added StreamCoders.Helpers.ToIntSafeTrunc() to correctly truncate double to int on SSE2 capable CPUs
Fixed FrameCreator calculation of Timestamp using ToIntSafeTrunc()
MediaSuite 3 Version 3.1.1574 - 2014-04-11
Fixed Resampler producing audible clicks in between samples fed
MediaSuite 3 Version 3.1.1569 - 2014-04-08
Fixed SDPMediaHelper.ParseToAvcConfigurationRecord() exception when “profile-level-id” is missing in SDP
MediaSuite 3 Version 3.1.1561 - 2014-04-01
Fixed bug TCPNetworkServer waiting for initial buffer sent before reporting incoming connection.
The buffer size is now configurable when calling StartListening(int initialBufferSize), with a default value of 0.
Fixed typo in MPEG DASH schema definition
Fixed rounding error in WaveInput.SetTransferBufferSizeMilliseconds()
Fixed 2-byte memory leak in AACDecoder.Init()
Added WaveFormExtensible.CreateFrom(TrackInfo) to create a WaveFormatExtensible from a TrackInfo
Added MP3 support to DecoderConfigurationFactory.CreateAudioConfiguration
Removed CompletionParameters handling on initial connect to StreamingServerSample RTSP module
MediaSuite 3 Version 3.1.1539 - 2014-03-11
Fixed bug in LockableOperationClient causing memory leaks in video encoder instances.
Added security checks to RTSP InterleaveBuffer parsing.
Added sample AudioVideoChatSample to demonstrate video-calling on a single TCP connection.
MediaSuite 2 Version 2.0.875 - 2014-03-05
Fixed bug in LockableRingBuffer causing potential memory leaks in encoder/decoder instances
Improved stability in RTSPManager
MediaSuite 3 Version 3.1.1502 - 2014-01-28
Fixed bug in H.264 decoder scraping decision (NETWORK_RTP)
Fixed annoying obfuscation of private class members
MediaSuite 2 Version 2.0.846 - 2014-01-28
Fixed potential overflow exception when parsing RTP packets
Fixed potential overflow bug in InterleaveBuffer
MediaSuite 3 Version 3.1.1490 - 2014-01-17
Fixed bug in InterleaveBuffer with potential overflow exception
Fixed bug in MP4Writer where a rounding error can causes out of sync audio/video
MediaSuite 3 Version 3.1.1457 - 2013-12-17
Updated VP8 Encoder/Decoder to latest bitstream
Fixed crash in H264Decoder.Init() when multiple instances where initialized at the same time from multiple threads
Fixed bug in MP4Reader when Init(string) was called, then MP4Reader.Dispose() didn't immediately release the underlying file handle
Fixed bug in AVIWriter where calling AVIWriter.AddTrack() threw and exception when AVIWriter.Init() was not called
Added AVIWriterSample to demonstrate AVIWriter class usage
Added H264NalReader class to read .H264 file types
Added support for .h264 files in MediaPlayerSample
Added support to disable H.264 decoder scraping (early frame release) for network streams, by setting VideoSource = NETWORK_OTHER.
MediaSuite 3 Version 3.1.1444 - 2013-12-09
Updated OpusEncoder/OpusDecoder to version 1.1
Added DTMFDetector.Detect now returns DTMFDetectorTone class containing the Tone and Duration of each candidate.
Added DTMFDetectorSample application
MediaSuite 2 Version 2.0.792 - 2013-12-06
Fixed bug in H.264/MPEG-4.2/H.263 encoder where XXXEncoder.Dispose leaks an internally used encode buffer
MediaSuite 3 Version 3.1.1433 - 2013-12-05
Fixed bug in RTSP header parser not ignoring spaces after separator (leading to GenericHeader instead of typed headers)
Fixed bug in H.264/MPEG-4.2/H.263 encoder where XXXEncoder.Dispose leaks an internally used encode buffer
Fixed bug in MPEG4Encoder where default resolution was not initialized, leading to AccessViolationException when encoder was disposed before MPEG4Encoder.Init was called
Fixed bug in WaveOut.CurrentTimeOffset wrap around at 2^32 / SampleRate seconds.
MediaSuite 3 Version 3.1.1416 - 2013-11-21
Event signature changes (Please see Breaking changes document)
Fixed bug in WaveInput/WaveOutput to correctly return empty list (no default mapper) when no audio device is present on the system
Fixed bug in StreamServerSample (HttpServer) where exception was thrown when response content length had a mismatch when the status code was != 200
Added PresentationBuffer.Count property to return the amount of frames currently stored
Added JitterBuffer.DroppedFrames property to return the number of frames that have been dropped thus far
Several Documentation updates
MediaSuite 2 Version 2.0.731 - 2013-10-08
Added SocketTimeout class to support callback when a certain timeout is reached
Added RtspServerSample support for session keep-alive timeout when not regularly refreshed by the client (includes OPTIONS and RTCP RR)
MediaSuite 3 Version 3.1.1351 - 2013-09-24
Fixed bug in RTP Header Extension. Invalid length calculation leading to invalid payload.
Fixed bug in (MP4) ColorParameterBox invalid length calculation when parameter type = "nclc"
Fixed bug AVC1VisualSample visibility was internal instead of public
Fixed bug MPEG4Decoder.Decode were stride was not set on output image
Fixed bug in RtspPlayer where screen flicker was caused by MediaBuffer being released too early
Added RTPPacket.HeaderExtension class to better support extension bit and data structure.
Replaces 2.0.380/383 -- Fixed instantiation problems due to broken installer builds.
MediaSuite 2 Version 2.0.350 - 2012-10-18
Added contract to RTPPacket construction for buffers that are too small
Added CNAME initialization to RTCP SDES Chunk
Added MP4Writer support to G.711a/u audio
Updated RTSPPlayer to write G.711a/u
Several minor bug fixes
MediaSuite 2 Version 2.0.329 - 2012-09-26
MP4: Fixed SampleToChunkBox not finding final chunks in open ended entry list. This caused the reader/player to jump to the beginning of a track.
MediaSuite 2 Version 2.0.319 - 2012-09-19
Fixed bug in RTSPManager where doubles were not parsed with InvariantCulture.
RTCP ReportBlock list is now accessible from RTCP SR and RR.
MediaSuite 2 Version 2.0.312 - 2012-09-12
MPEG4Decoder stability improvement on un-recoverable frames.
MPEG4Decoder will now return Buffer.Count = 0 on the input buffer for frames that couldn't not be decoded.
Fixed potential memory leak when calling CamCapture.Start/Stop repeatedly.
Added support for LockableRingBuffer in CamCapture to reduce memory manager activity.
Removed CamCapture.GetTimedFrame. Leaving CamCapture.GetFrame to return a MediaBuffer that is always timed.
Fixed H264Decoder.PredictFrameType to better detect start-codes of different lengths.
Updated samples to reflect above changes in SDK.
MediaSuite 2 Version 2.0.297 - 2012-08-31
Fixed MP4Reader "largesize" atom overflow when reading 4GB+ files
Fixed potential race condition in RTSPManager when dealing with transactions.
MediaSuite 2 Version 2.0.293 - 2012-08-28
Fix for CamCapture reporting metrics twice on certain cameras.
Fix more Dispose pattern race conditions eliminated.
MediaSuite 2 Version 2.0.288 - 2012-08-23
Fix for potential memory corruption in classes that implement IDisposable pattern.
MediaSuite 2 Version 2.0.281 - 2012-08-17
Fixed memory leak in H264Decoder Init & InfoInit
Added support for non-standard negative rtptime parsing in RTP-INFO header
Fixed bug in CamCapture.SelectDevice(CaptureDevice) not being able to instantiate two or more cams of the same make/model.
Added ColorPlanes and Bitrate to CamCapture metrics
MediaSuite 2 Version 2.0.274 - 2012-08-10
Changes:
WaveInput, WaveOutput "Default Device Mapper" now reports metrics in Devices property.
WaveInput, WaveOutput renamed "Default Device Mapper" device name to standard "Microsoft Sound Mapper".
Fixes:
Fixed potential buffer overflow in H.263 decoder
MediaSuite 2 Version 2.0.269 - 2012-08-07
Fixed DNS lookup exception thrown in RTSP SDP
MediaSuite 2 Version 2.0.252.0 - 2012-06-21
Fixed potential access violation in classes implementing IDisposable when Dispose is called multiple times by user.
MediaSuite 2 Version 2.0.238.0 - 2012-06-08
Fixed incorrect header size in RFC2190 packets.
Fixed serialization errors in H.263 RTP packet types when sending.
Fixed H264Decoder.PredictFrameType reporting wrong or no frames.
Fixed memory leak in RTSPPrimitives not disposing RTSPManager correctly.
Added authentication credentials for OPTIONS and GET_PARAMETERS in RTSPManager.
Fixed potential exception when calling TcpNetworkServer.Close().
MediaSuite 2 Version 2.0.196 - 2012-04-27
Bug Fixes:
Fix for MP4Writer not parsing avcC record when assigned via TrackInfo.Video.DecoderData.
MediaSuite 2 Version 2.0.193 - 2012-04-25
Added Getting Started documentation
Added Matroska reader (MatroskaReader) for MKV file format. All
elements are supported.
WebMReader is now derived from MatroskaReader
Added MediaPlayer sample replacing FilePlayer
CamCapture.GetDeviceList now returns a list of CaptureDevice objects which
contains a unique ID to the capture device along with the device name
Added RTPFrame.Peek(int = 0) to peek at a particular packet.
Added support for composition timestamps in MP4Reader
Added feature to H264Decoder to decode multiple frames in one buffer. This is
now achieved by the MediaBuffer.Buffer.Offset/Count changing. Unless Count is
not 0, another run through the decoder is required.
Added IReader.GetTrackStatus(TrackInfo)
Added MP4Reader parsing of SPS/PPS when passed via TrackInfo.
Bug Fixes/Changes:
Fixed bug in CamCapture.IsDeviceLost returning true instead of false when device
is connected.
Renamed Mp4ToolKit.HandlerBox 'hdlr' to HandlerReferenceBox
Fixed bug in AACTransform.TransformAdts where decoder specific data was
extracted or frame data, but not both.
Fixed bug in RTSPManager where SDP owner hostname was not resolved.
Fixed bug in RtspServerDemo MP4MediaEndpoint where track IDs where used
incorrectly.
H264AccessUnitTool shortened default StartCode from 0,0,0,1 to 0,0,1
Modified CamCaptureDemo to reflect changes in Camcapture API
MP4Reader now returns correct MediaBuffer.EndTime instead of duration.
MediaSuite 2 Version 2.0.155.0 - 2012-03-20
Bug Fixes:
Fixed bug in RTSP Authorization header hash generation.
MediaSuite 2 Version 2.0.150.0 - 2012-03-16
Bug Fixes:
MP4Writer 'stss' sample number increment correction.
MP4Reader.GetNextFrame(..)-> MediaBuffer.IsKeyFrame is now set correctly if 'stss' sample number value is present.
MediaSuite 2 Version 2.0.148.0 - 2012-03-15
What's new:
MP4Reader
Support for segmentation boxes from ISO 14496-12 Amd3
Support for fMP4 (fragmented MP4)
Support for Microsoft Smooth Streaming audio/video containers (ISMV, ISMA)
Seeking/Position adjustments is now taking Sync Sample Box into account ('stss')
if present to seeking to nearest I-Frame
MPEG-DASH (ISO 23009-1)
Updated schema validation from 2012-01-05 (previously draft)
Support for isoff-main & isoff-on-demand profiles
New classes:
DashMediaPresentation
DashMediaDescription
Period
AdaptationSet
Representation
Segment
DashReader to extract Track information from DASH segments
FilePlayerDemo now supports playing MPD files
IReader interface (all Reader classes):
Now exposes IEnumerable Tracks property
(Breaking change!!) Track numbers (TrackInfo.TrackNumber) are
now used to get tracks from IReader implementations, instead of a zero based
index. See FilePlayer for details.
Removed IReader.FileName property.
Added IReader.Init(string) function to replace separate IReader.FileName
property.
MP4Writer
Support for Sync Sample Box ('stss') - Note: In order to write
STSS the MP4Writer.WriteTrack(TrackInfo, MediaBuffer<byte>, bool) overload has
to be used.
JitterBuffer now contains an experimental AdaptiveExpiry to enable adaptive
adjustment of expiry of frames.
DiscoveryReport (Rtsp.Extensions.SessionManager.Discover()) now has a
TransportEstablished field to help determine the problem when an RTSP
session could not be established.
Added class InjectableStream to allow for a stream that can
dynamically grow, but also disposed of chunks that have already been read.
Added class HttpBulkFetch to sequentially read a bulk of HTTP
URLs and use InjectableStream for output.
Bug fixes:
Fixed potential exception in UPnPPortMap when hosts
with multiple endpoint services are detected.
Fixed seeking in FilePlayerDemo
Fixed MP4Reader detection of ObjectTypeId for ISO
11172-2 & 11172-3
MediaSuite 2 Version 2.0.132.0 - 2012-03-02
What's new:
StreamCoders.Devices.CamCapture
Added property IsDeviceLost to indicate that the currently used
device was disconnected or lost.
Changed behavior that when a device is lost the Campture.GetFrame function will
return null.
XML documentation for Intellisense is now included alongside assemblies.
MediaSuite 2 Version 2.0.122.0 - 2012-02-23
What's new:
StreamCoders.Network.UPnpPortMap to allow UDP to more easily traverse firewalls
UPnpPortMapping example code
StreamCoders.Patterns.Helpers.Future<T> and Future<T,E> to allow asynchronous execution of functions where the retrieval of results is deferred to a later time.
StreamCoders.Rtsp.RtspPrimitives.Discover and SessionManager.Discover now return
a DiscoveryReport, containg Session and request/response pair of the initial
DESCRIBE.
StreamCoders.Rtsp.RTPInfo: Added FindTrack to more easily find the associated
url, seq, rtptime triplet.
StreamCoders.Rtsp.RtspTrackInfo: Added field SyncSource and SynchSourceProvided
to gain easier access to SSRC for the RTP sender.
RtspServerSample:
Added CompleteInitialization(TrackDetail) to IMediaEndpoint
Added to reply with 500 Server error on unparsable request received
Added RTP-INFO header on PLAY request-response
RTSPPlayer:
Added audio discontinuity detection and handling
Added audio buffer overrun and underrun handling
Added video buffer underrun handling
Added optional UPnP support for UDP streams
Added 301/302 redirect handling
Added packet filtering by SSRC, when potential there are multiple stream
arriving on the same port.
StreamCoders.Rtp.PlayoutBuffer: Added support for RTP-INFO header to allow for
more consistent presentation times before an RTCP arrives.
StreamCoders.Rtp.H264FrameCreator now has publicly readable SequenceNumber and
Timestamp
StreamCoders.Encoder.AacAccessUnitTool: Added GetNumberOfFramesInAu to easily
find out the number of frames in an AU without fully parsing.
StreamCoders.MediaSuite.BuildDate added.
Streamcoders.Wave.WaveOut: Added AddConstantOffset(double) function to
atomically add constant offsets to the values given by
WaveOut.CurrentTimeOffset.
StreamCoders.Decoder.H264Decoder: Added robustness to decoder by discarding AU
frames that are not the expected size. To the application programmer this should
indicate that there is something wrong with the way frames are read or written
before they are passed to the decoder.
Bug Fixes:
H264Transform class: Fixed to handle ocassion of start codes having different
lengths in the same stream.
StreamCoders.Network.UdpNetworkClient: Fixed potential race condition when Close
was called and the stack was still doing processing.
Additional minor fixes samples
MediaSuite 2 Version 2.0.110.0 - 2012-02-13
Bug fixes:
Fixed potential memory leak of faulty frames in video decoders when used with LockableRingBuffer.
MediaSuite 2 Version 2.0.104.0 - 2012-02-08
What's new & bug fixes:
RtspServerSample:
Added EndpointRules to make Endpoint decisions based on
Regex rules.
Added WebcamMediaEndpoint to demonstrate streaming
from a webcam.
Added RtspResponse.CreateFrom method to easily create a response from a request.
Added several pieces of functionality to Rtsp.Extensions:
RtspPrimitives now gracefully tells applications that
a server doesn't support certain transport methods:
if TCP interleave is not available on the server, the
RtspTrackInfo.InterleavePresent will be false.
if UDP multicast is not available on the server, the RtspTrackInfo.MulticastPresent
will be false.
RtspTrackInfo new fields:
SdpSessionOwnerAddress to identify the IP address of remote
media endpoint.
UdpRtpServerPort, UdpRtcpServerPort to identify the ports
of a remote media endpoint.
RTSPManager now provides a sender parameter in all events.
Fixed possible memory corruption in Speex decoder destructor
Fixed PacketType == 0 in RTCPRR packets
Fixed possible crash in GetAssembledFrame when passing
1080p frames
MediaSuite.NET Version 1.5.982
Bug fixes:
Elimination of initial delay of frames when decoding
H.264
Fixed bug in RTPFrame creation in MPEG4Encoder
Fixed occasional lockup of FilePlayer when seeking
MediaSuite.NET Version 1.5.981
New features:
64-bit support
MediaSuite.NET Version 1.5.980
New features:
Added Proxy support to RTSP (RTSPManager)
Added LastError to CamCapture to better troubleshoot
device initiation
H.264 Encoder performance gain (intermediate buffer
elimination)
MediaSuite.NET Version 1.5.979
New features:
Fixed ConnectionReset Exception in RTPParticipant when
remote endpoint is not valid
Support for simplified/traditional Chinese in CamCapture
AACDecoder PS Tool is now disabled by default
MediaSuite.NET Version 1.5.978
New features:
H.264Encoder 4 new Rate Control modes (ConstantQuality,
ConstantQualitySlice, ConstantBitrate, ConstantBitrateSlice)
RTSP Content-Location header is now in URL selection
chain
Full support for RTP Header extensions
SpeechDecoder PacketDuration is now set to default value
for each codec after calling SetCodec
Bug fixes:
RTPParticipant fixed bug where SendTo on symmetric RTP
would cause an exception
RTSP rewritten RTSP describe reply parser in RTSPManager
Fixed bug in G.722 post filtering
MediaSuite.NET Version 1.5.977-P3
Bug fixes:
WaveOutput - CurrentSampleOffset wasn't working
on some XP systems
Speedup in instantiation time of each class in MediaSuite.
MediaSuite.NET Version 1.5.977-P2
New features:
WaveOutput - Extended AudioDeviceInfo: Channels, Product
and Manufacturer Id, WaveFormats, Support Functions
WaveOutput - New Function: OpenDevice(AudioDeviceInfo),
Pause, Resume
WaveInput - Extended AudioDeviceInfo: Channels, Product
and Manufacturer Id, WaveFormats, Support Functions
WaveInput - New Function: OpenDevice(AudioDeviceInfo),
WaitSamplesAvailable(int) to avoid busy waiting on samples
AACDecoder - Option to explicitly disable SBR (incl
Quality/Performance Control) and PS tools (AACDecoder.Tools)
MediaSuite.NET Version 1.5.977-P1
Bug fixes:
RTSP.URL.Clone not copying query parameter
RTSP.Describe fixed extra termination character when
authentication is used
RTPParticipant passing port 0 endpoint for local RTP/RTCP
will let the OS decide the port. But now this only goes
for rtp port and rtcp port will be rtp.port + 1
Added support for multiple RTSP authorization headers
in RTSPManager (Axis encrypted & unencrypted)
RTSPPlayer support for AAC mono, G.711a/u and G.726
Timers.StopWatch now delivers in double precision, microsecond
resolution and is multiprocessor safe
MediaSuite.NET Version 1.5.953
New features:
Support for audio channel masks in WaveOutput/WaveInput
Comprehensive rate control support MPEG4 encoder
Completely rewritten FLVWriter.NET
Bug Fixes:
Fixed bug in RTSPConnectionManager where Endpoint binding
caused an exception
Fixed bug in RTCP-SR/RTCP-SDES 32-bit alignment
Added function AddChunk (SDESChunk) to RTCPSDES
Fixed bug with zero length headers in RTSP parser
Added RTSP GET_PARAMETER method
Added custom timestamp incrementor in AACFrameCreator
and choice between single or multi AU per packet (SingleAU)
MediaSuite.NET Version 1.5.952
New features:
AAC Frame Creator ADTS/ADIF/RAW autodetection
SpeechEncoder Speex NB/WB crash fix
MediaSuite.NET Version 1.5.951
Bug Fixes:
Version 1.5.950 runtime library fixup
SpeechEncoder Timestamp generation corrected
MediaSuite.NET Version 1.5.950
New features:
LipSync framework
JitterBuffer framework
AVIReader support for HTTP streams (beta)
MP4Reader support for HTTP streams (beta)
RTPPacket: UpdateAge, SetExpiry, IsExpired
RTSPManager ConnectionState, ConnectTimeout
AAC AU Frame Creator
Enhancements:
RTSP Player - Ability to save stream to file
RTSP Player - Arbitrary video clocking resolution
Bug fixes:
FLVReader ECMA Array Termination
FLVReader TrackStatus corrected for EOS
Improved ReceiveBuffer for RTPParticipant
RTCPSR NTP-Timestamp was a reference and interpreted
as valuetype
RTCPCompoundPacket wrong length byte
MP4Writer invalid file structure for H.264 streams
MP4Writer fixed H.264 SPS/PPS index overrun
MP4Writer wrong codec tag for MPEG4.2
RTSP absolute/relative path determination for SETUP,
introduces new function RTSP.URL.Combine
SDPMessage Parser correction of initial string trimming
RTSPManager Fixed uncatchable exception when connecting
to an invalid remote endpoint
G.726 Reamplification and G.726->16-bit linear
RTCP-APP length byte fix
MediaSuite.NET Version 1.5.930
New Features:
High Resolution Timing functions - StopWatch for timing
intervals at milliseconds and microsecond resolution (10th
of)
High Resolution Timing functions - Waitable for waitable
timers at millisecond and microsecond resolution (10th of)
High Resolution Timing functions - Sleep - Replacement
for System.Threading.Thread.Sleep with more accuracy using
waitable timer per thread at millisecond resolution
RTSP - Embedded/Interleave TCP mode support
RTSP - Headers: RTP-Info, Scale, Require, Timestamp,
If-Modified-Since are no longer generic headers.
RTSP - Full support for PAUSE and REDIRECT
RTSP - Convenience classes for server-side development:
RTSPSession, RTSPSessionManager and RTSPConnectionManager
MediaPackage - New DataLength property to have data
inside a buffer of arbitrary length and to avoid resizing
(performance gain)
MediaPackage - 4 more constructors for more convenience
AAC Encoder - Support for Spectral Band Replication
(SBR)
H.263 Decoder - New function: PredictFrameType to predict
the type of frame without decoding it.
MPEG4 Decoder - New function: PredictFrameType to predict
the type of frame without decoding it.
H.264 Encoder - Profile, Level, Speed/Quality tradeoff,
Number of reference frames, Deblocking filter and B-Frame
Count can now be set.
H.264 Encoder - Overall performance improvement
WaveOutput - New properties: Volume, Pitch, PlaybackRate
and Capabilities
WaveOutput - New properties: CurrentTimeOffset and CurrentSampleOffset
for more accurate timing
WaveInput - New property: BytesAvailable - To retrieve
the number of bytes queued
SpeechDecoder - Support for AMR-NB Storage Format (RFC
3267)
SpeechDecoder - Support for decoding single RTP packets
or whole frames
SpeechEncoder - Support for AMR-NB Storage Format (RFC
3267)
SpeechEncoder - New property: CompatibilityMode for
accepting unsupported parameters without throwing exception
MP4Writer - New property: CompatibilityMode for accepting
unsupported parameters without throwing exception
MP4Writer - Full support for H.264 video streams
FLVWriter (Beta) - FLV Writer for Adobe Flash Video
supports H.264 Baseline and AAC
FLVWriter (Beta) - It is currently only able to write
to file streams (arbitrary streams, including network streams
will be supported in the next release)
Bug Fixes:
Removed debug message from RTPSession.GetNextFrame
Fixed PacketsSent counter in RTPSession
FLVReader is now IDisposable
Fixed support for sending RTCP through RTPParticipant
Common interface for audio encoders (MP3, AAC)
Fix in MP4Writer where Init would return false on success.
Fixed length bug in RTCPBye class
SDPAttribute equal sign not always serialized
Fixed problem with OpenMP conflicting with other OpenMP
libraries
Misc:
Support for .divx in FilePlayer
Support for 3gp, 3g2 and Flash F4V files in FilePlayer
New design and feature support in RTSPPlayer
Obsoleted properties in WaveOutput: CurrentTimestamp,
CurrentDuration, LastSampleTickerDelta -> See CurrentTimeOffset
and CurrentSampleOffset for replacement
DTMFDetector performance improvement
RTSPPlayer support for AMR and AAC
MediaSuite.NET Version 1.5.892
New Features:
FLVReader Release
H263Decoder Improved Error Recovery (vlc->DC Coeffs)
- When false VLCs are encountered, the decoder will continue
at the next MB boundary.
H263Decoder improved Deblocking Filter
MPEG4Encoder Support for Data Partitioning (error resilience)
and VOP, VOL Header Generation
H264Encoder Support for getting SPS and PPS NAL Units
(GetDecoderConfigurationInfo)
Common interface to MP4/AVI/FLV Writer
Resampler.NET
Local/Remote RTP/RTCP Endpoint retrieval after initialization
in RTP.NET