<?xml version="1.0"?>
<doc>
    <assembly>
        <name>CSVideoPlayer</name>
    </assembly>
    <members>
        <member name="T:CSCommand.NativeMethods">
            <summary>
            NativeMethods
            </summary>
        </member>
        <member name="T:CSCommand.ThreadAccess">
            <summary>
            ThreadAccess
            </summary>
        </member>
        <member name="T:CSCommand.Helper">
            <summary>
            Helper
            </summary>
        </member>
        <member name="T:CSCommand.CommandLine">
            <summary>
            Send shell command line with arguments to the CMD prompt and receive data using C# / VB .NET.
            </summary>
        </member>
        <member name="F:CSCommand.CommandLine._process">
            <summary>
            The process.
            </summary>
        </member>
        <member name="F:CSCommand.CommandLine._processStartInfo">
            <summary>
            The process information.
            </summary>
        </member>
        <member name="F:CSCommand.CommandLine._running">
            <summary>
            Running flag.
            </summary>
        </member>
        <member name="P:CSCommand.CommandLine.Command">
            <summary>
            Set the command to operate
            </summary>
        </member>
        <member name="P:CSCommand.CommandLine.Arguments">
            <summary>
            Set the arguments
            </summary>
        </member>
        <member name="T:CSCommand.CommandLine.OperationProgressEventHandler">
            <summary>
            Operation progress handler.
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSCommand.CommandLine.OperationProgress">
            <summary>
            Operation progress.
            </summary>
        </member>
        <member name="T:CSCommand.CommandLine.OperationDoneEventHandler">
            <summary>
            Done progress handler.
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSCommand.CommandLine.OperationDone">
            <summary>
            Done progress.
            </summary>
        </member>
        <member name="T:CSCommand.CommandLine.OperationClosedEventHandler">
            <summary>
            Closed handler.
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSCommand.CommandLine.OperationClosed">
            <summary>
            Closed progress.
            </summary>
        </member>
        <member name="F:CSCommand.CommandLine.backgroundWorker">
            <summary>
            Background worker.
            </summary>
        </member>
        <member name="P:CSCommand.CommandLine.InteractiveMode">
            <summary>
            InteractiveMode.
            </summary>
        </member>
        <member name="M:CSCommand.CommandLine.#ctor">
            <summary>
            Constructor.
            </summary>
        </member>
        <member name="M:CSCommand.CommandLine.OnOutputDataReceived(System.Object,System.Diagnostics.DataReceivedEventArgs)">
            <summary>
            On data received.
            </summary>
            <param name="sender">object</param>
            <param name="e">DataReceivedEventArgs</param>
        </member>
        <member name="M:CSCommand.CommandLine.OnDone(System.Object,System.EventArgs)">
            <summary>
            On done.
            </summary>
            <param name="sender">object</param>
            <param name="e">EventArgs</param>
        </member>
        <member name="M:CSCommand.CommandLine.StartAsyncStandard">
            <summary>
            Start async command and get the standard output.
            </summary>
            <returns>The results.</returns>
        </member>
        <member name="M:CSCommand.CommandLine.StartAsyncError">
            <summary>
            Start async command and get the error output.
            </summary>
            <returns>The results.</returns>
        </member>
        <member name="M:CSCommand.CommandLine.GetMainWindowHandle">
            <summary>
            GetMainWindowHandle.
            </summary>
            <returns></returns>
        </member>
        <member name="M:CSCommand.CommandLine.CloseMainWindow">
            <summary>
            CloseMainWindow.
            </summary>
        </member>
        <member name="M:CSCommand.CommandLine.Close">
            <summary>
            Close the process.
            </summary>
        </member>
        <member name="M:CSCommand.CommandLine.Refresh">
            <summary>
            Refresh the process.
            </summary>
        </member>
        <member name="M:CSCommand.CommandLine.Kill">
            <summary>
            Kill  the process.
            </summary>
        </member>
        <member name="M:CSCommand.CommandLine.Abort">
            <summary>
            Abort the process.
            </summary>
        </member>
        <member name="M:CSCommand.CommandLine.Suspend">
            <summary>
            Suspend (pause) the process.
            </summary>
        </member>
        <member name="M:CSCommand.CommandLine.Resume">
            <summary>
            Resume (unpause) the process.
            </summary>
        </member>
        <member name="M:CSCommand.CommandLine.Dispose">
            <summary>
            Dispose.
            </summary>
        </member>
        <member name="M:CSCommand.CommandLine.backgroundWorker_DoWork(System.Object,System.ComponentModel.DoWorkEventArgs)">
            <summary>
            Run the operation in the background under a new _process.
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="M:CSCommand.CommandLine.backgroundWorker_ProgressChanged(System.Object,System.ComponentModel.ProgressChangedEventArgs)">
            <summary>
            Update the user interface with the current progress.
            </summary>
            <param name="sender">The sender object</param>
            <param name="e">ProgressChangedEventArgs</param>
        </member>
        <member name="M:CSCommand.CommandLine.backgroundWorker_RunWorkerCompleted(System.Object,System.ComponentModel.RunWorkerCompletedEventArgs)">
            <summary>
            Notification that the burn background thread has completed
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="M:Microncode.Lic.LicenseLib.CheckLicense(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Boolean,System.Boolean)">
            <summary>
            Check the license of the library. If the registration is OK a MessageBox will be display with a message 'The registration is OK.', otherwise, a registration window will be display with an instructions of register the library.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.AudioDeviceInfo`1">
            <summary>
            Represents a device identifier.
            </summary>
            <typeparam name="T">The type of the device identifier.</typeparam>
        </member>
        <member name="M:CSVideoPlayer.AudioDeviceInfo`1.#ctor(`0,System.String,System.String,System.Boolean,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.AudioDeviceInfo`1" /> class.
            </summary>
            <param name="deviceId">The device identifier.</param>
            <param name="name">The name.</param>
            <param name="provider">The provider.</param>
            <param name="isDefault">if set to <c>true</c> [is default].</param>
            <param name="tag">The tag.</param>
        </member>
        <member name="P:CSVideoPlayer.AudioDeviceInfo`1.DeviceId">
            <summary>
            Gets the device identifier.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.AudioDeviceInfo`1.Name">
            <summary>
            Gets the name.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.AudioDeviceInfo`1.Provider">
            <summary>
            Gets the provider.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.AudioDeviceInfo`1.Tag">
            <summary>
            Gets the tag.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.AudioDeviceInfo`1.IsDefault">
            <summary>
            Gets a value indicating whether this device is the default.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AudioDeviceInfo`1.ToString">
            <summary>
            Returns a <see cref="T:System.String" /> that represents this instance.
            </summary>
            <returns>
            A <see cref="T:System.String" /> that represents this instance.
            </returns>
        </member>
        <member name="T:CSVideoPlayer.LegacyAudioDeviceInfo">
            <summary>
            Represents information about a legacy WinMM audio device.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioDeviceInfo.#ctor(System.Int32,System.String,System.String,System.Boolean,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.LegacyAudioDeviceInfo" /> class.
            </summary>
            <param name="deviceId">The device identifier.</param>
            <param name="name">The name.</param>
            <param name="provider">The provider.</param>
            <param name="isDefault">if set to <c>true</c> [is default].</param>
            <param name="tag">The tag.</param>
        </member>
        <member name="T:CSVideoPlayer.DirectSoundDeviceInfo">
            <summary>
            Represents information about a DirectSound audio device.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.DirectSoundDeviceInfo.#ctor(System.Guid,System.String,System.String,System.Boolean,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.DirectSoundDeviceInfo" /> class.
            </summary>
            <param name="deviceId">The device identifier.</param>
            <param name="name">The name.</param>
            <param name="provider">The provider.</param>
            <param name="isDefault">if set to <c>true</c> [is default].</param>
            <param name="tag">The tag.</param>
        </member>
        <member name="T:CSVideoPlayer.BitmapDataBuffer">
            <summary>
            Contains metadata about a raw bitmap back-buffer.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.BitmapDataBuffer.#ctor(System.Windows.Media.Imaging.WriteableBitmap)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.BitmapDataBuffer"/> class.
            </summary>
            <param name="w">The w.</param>
        </member>
        <member name="M:CSVideoPlayer.BitmapDataBuffer.#ctor(System.IntPtr,System.Int32,System.Int32,System.Int32,System.Int32,System.Double,System.Double,System.Windows.Media.Imaging.BitmapPalette,System.Windows.Media.PixelFormat)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.BitmapDataBuffer" /> class.
            </summary>
            <param name="scan0">The scan0.</param>
            <param name="stride">The stride.</param>
            <param name="bytesPerPixel">The bytes per pixel.</param>
            <param name="pixelWidth">Width of the pixel.</param>
            <param name="pixelHeight">Height of the pixel.</param>
            <param name="dpiX">The dpi x.</param>
            <param name="dpiY">The dpi y.</param>
            <param name="palette">The palette.</param>
            <param name="pixelFormat">The pixel format.</param>
        </member>
        <member name="P:CSVideoPlayer.BitmapDataBuffer.BufferLength">
            <summary>
            Gets the length of the buffer (Stride x Pixel Height).
            </summary>
        </member>
        <member name="P:CSVideoPlayer.BitmapDataBuffer.Scan0">
            <summary>
            Gets a pointer to the raw pixel data.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.BitmapDataBuffer.Stride">
            <summary>
            Gets the byte width of each row of pixels.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.BitmapDataBuffer.BitsPerPixel">
            <summary>
            Gets the bits per pixel.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.BitmapDataBuffer.BytesPerPixel">
            <summary>
            Gets the bytes per pixel.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.BitmapDataBuffer.PixelWidth">
            <summary>
            Gets width of the bitmap.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.BitmapDataBuffer.PixelHeight">
            <summary>
            Gets height of the bitmap.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.BitmapDataBuffer.DpiX">
            <summary>
            Gets the DPI on the X axis.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.BitmapDataBuffer.DpiY">
            <summary>
            Gets the DPI on the Y axis.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.BitmapDataBuffer.UpdateRect">
            <summary>
            Gets the update rect.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.BitmapDataBuffer.Palette">
            <summary>
            Gets the palette.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.BitmapDataBuffer.PixelFormat">
            <summary>
            Gets the pixel format.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.BitmapDataBuffer.CreateDrawingBitmap">
            <summary>
            Creates a Drawing Bitmap from this data buffer.
            </summary>
            <returns>The bitmap.</returns>
        </member>
        <member name="T:CSVideoPlayer.LegacyAudioException">
            <inheritdoc />
            <summary>
            An exception representing an error in Windows Multimedia Audio.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioException.#ctor(CSVideoPlayer.LegacyAudioResult,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.LegacyAudioException"/> class.
            </summary>
            <param name="result">The result returned by the Windows API call.</param>
            <param name="functionName">The name of the Windows API that failed.</param>
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.LegacyAudioException"/> class.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.LegacyAudioException"/> class.
            </summary>
            <param name="message">The error message.</param>
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.LegacyAudioException"/> class.
            </summary>
            <param name="message">The error message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.LegacyAudioException"/> class.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioException.FunctionName">
            <summary>
            Gets the name of the function that failed.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioException.Result">
            <summary>
            Gets the Windows API result code.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <inheritdoc/>
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioException.Try(CSVideoPlayer.LegacyAudioResult,System.String)">
            <summary>
            Helper function to automatically raise an exception on failure.
            </summary>
            <param name="result">The result of the API call.</param>
            <param name="function">The API function name.</param>
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioException.ErrorMessage(CSVideoPlayer.LegacyAudioResult,System.String)">
            <summary>
            Creates an error message base don an error result.
            </summary>
            <param name="result">The result.</param>
            <param name="function">The function.</param>
            <returns>A descriptive error message.</returns>
        </member>
        <member name="T:CSVideoPlayer.LegacyAudioResult">
            <summary>
            Windows multimedia error codes from mmsystem.h.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.NoError">
            <summary>no error</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.UnspecifiedError">
            <summary>unspecified error</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.BadDeviceId">
            <summary>device ID out of range</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.NotEnabled">
            <summary>driver failed enable</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.AlreadyAllocated">
            <summary>device already allocated</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.InvalidHandle">
            <summary>device handle is invalid</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.NoDriver">
            <summary>no device driver present</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.MemoryAllocationError">
            <summary>memory allocation error</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.NotSupported">
            <summary>function isn't supported</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.BadErrorNumber">
            <summary>error value out of range</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.InvalidFlag">
            <summary>invalid flag passed</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.InvalidParameter">
            <summary>invalid parameter passed</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.HandleBusy">
            <summary>handle being used simultaneously on another thread (eg callback)</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.InvalidAlias">
            <summary>specified alias not found</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.BadRegistryDatabase">
            <summary>bad registry database</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.RegistryKeyNotFound">
            <summary>registry key not found</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.RegistryReadError">
            <summary>registry read error</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.RegistryWriteError">
            <summary>registry write error</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.RegistryDeleteError">
            <summary>registry delete error</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.RegistryValueNotFound">
            <summary>registry value not found</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.NoDriverCallback">
            <summary>driver does not call DriverCallback</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.MoreData">
            <summary>more data to be returned</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.WaveBadFormat">
            <summary>unsupported wave format</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.WaveStillPlaying">
            <summary>still something playing</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.WaveHeaderUnprepared">
            <summary>header not prepared</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.WaveSync">
            <summary>device is synchronous</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.AcmNotPossible">
            <summary>Conversion not possible</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.AcmBusy">
            <summary>Busy</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.AcmHeaderUnprepared">
            <summary>Header Unprepared</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.AcmCancelled">
            <summary>Cancelled</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.MixerInvalidLine">
            <summary>invalid line</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.MixerInvalidControl">
            <summary>invalid control</summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioResult.MixerInvalidValue">
            <summary>invalid value</summary>
        </member>
        <member name="T:CSVideoPlayer.RendererOptions">
            <summary>
            Provides access to various internal media renderer options.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RendererOptions.AudioDisableSync">
            <summary>
            By default, the audio renderer will skip or wait for samples to
            synchronize to video.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RendererOptions.DirectSoundDevice">
            <summary>
            Gets or sets the DirectSound device identifier. It is the default playback device by default.
            Only valid if <see cref="P:CSVideoPlayer.RendererOptions.UseLegacyAudioOut"/> is set to false which is the default.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RendererOptions.LegacyAudioDevice">
            <summary>
            Gets or sets the wave device identifier. -1 is the default playback device.
            Only valid if <see cref="P:CSVideoPlayer.RendererOptions.UseLegacyAudioOut"/> is set to true.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RendererOptions.UseLegacyAudioOut">
            <summary>
            Gets or sets a value indicating whether the legacy MME (WinMM) should be used
            as an audio output device as opposed to DirectSound. This defaults to false.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RendererOptions.VideoRefreshRateLimit">
            <summary>
            Gets or sets the frame refresh rate limit for the video renderer.
            Defaults to 0 and means no limit. Units are in frames per second.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.RenderingAudioEventArgs">
            <summary>
            Provides the audio samples rendering payload as event arguments.
            </summary>
            <seealso cref="T:System.EventArgs" />
        </member>
        <member name="M:CSVideoPlayer.RenderingAudioEventArgs.#ctor(System.Byte[],System.Int32,CSVideoPlayer.IMediaEngineState,CSVideoPlayer.StreamInfo,System.TimeSpan,System.TimeSpan,System.TimeSpan,System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.RenderingAudioEventArgs" /> class.
            </summary>
            <param name="buffer">The buffer.</param>
            <param name="length">The length.</param>
            <param name="engineState">The engine.</param>
            <param name="stream">The stream.</param>
            <param name="startTime">The start time.</param>
            <param name="duration">The duration.</param>
            <param name="clock">The clock.</param>
            <param name="latency">The latency between the buffer position and the real-time playback clock.</param>
        </member>
        <member name="P:CSVideoPlayer.RenderingAudioEventArgs.Latency">
            <summary>
            Gets the latency between the audio buffer position and the real-time playback clock.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RenderingAudioEventArgs.Buffer">
            <summary>
            Gets a the raw data buffer going into the audio device.
            Samples are provided in PCM 16-bit signed, interleaved stereo.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RenderingAudioEventArgs.BufferLength">
            <summary>
            Gets the length in bytes of the samples buffer.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RenderingAudioEventArgs.SampleRate">
            <summary>
            Gets the number of samples in 1 second.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RenderingAudioEventArgs.ChannelCount">
            <summary>
            Gets the number of channels.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RenderingAudioEventArgs.BitsPerSample">
            <summary>
            Gets the number of bits per sample.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RenderingAudioEventArgs.Samples">
            <summary>
            Gets the number of samples in the buffer for all channels.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RenderingAudioEventArgs.SamplesPerChannel">
            <summary>
            Gets the number of samples in the buffer per channel.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.RenderingAudioEventArgs.GetBufferData">
            <summary>
            Gets a the raw data buffer going into the audio device.
            Samples are provided in PCM 16-bit signed, interleaved stereo.
            </summary>
            <returns>The buffer data as an array.</returns>
        </member>
        <member name="T:CSVideoPlayer.RenderingEventArgs">
            <summary>
            A base class to represent media block
            rendering event arguments.
            </summary>
            <seealso cref="T:System.EventArgs" />
        </member>
        <member name="M:CSVideoPlayer.RenderingEventArgs.#ctor(CSVideoPlayer.IMediaEngineState,CSVideoPlayer.StreamInfo,System.TimeSpan,System.TimeSpan,System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.RenderingEventArgs" /> class.
            </summary>
            <param name="engineState">The media engine state.</param>
            <param name="stream">The stream.</param>
            <param name="startTime">The position.</param>
            <param name="duration">The duration.</param>
            <param name="clock">The clock.</param>
        </member>
        <member name="P:CSVideoPlayer.RenderingEventArgs.EngineState">
            <summary>
            Provides access to the underlying media engine state.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RenderingEventArgs.Stream">
            <summary>
            Provides Stream Information coming from the media container.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RenderingEventArgs.Clock">
            <summary>
            Gets the clock position at which the media
            was called for rendering.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RenderingEventArgs.StartTime">
            <summary>
            Gets the starting time at which this media
            has to be presented.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RenderingEventArgs.Duration">
            <summary>
            Gets how long this media has to be presented.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.RenderingSubtitlesEventArgs">
            <summary>
            Provides the subtitles rendering payload as event arguments.
            </summary>
            <seealso cref="T:System.EventArgs" />
        </member>
        <member name="M:CSVideoPlayer.RenderingSubtitlesEventArgs.#ctor(System.Collections.Generic.IList{System.String},System.Collections.Generic.IList{System.String},FFmpeg.AutoGen.AVSubtitleType,CSVideoPlayer.IMediaEngineState,CSVideoPlayer.StreamInfo,System.TimeSpan,System.TimeSpan,System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.RenderingSubtitlesEventArgs" /> class.
            </summary>
            <param name="text">The text.</param>
            <param name="originalText">The original text.</param>
            <param name="format">The format.</param>
            <param name="engineState">The engine.</param>
            <param name="stream">The stream.</param>
            <param name="startTime">The start time.</param>
            <param name="duration">The duration.</param>
            <param name="clock">The clock.</param>
        </member>
        <member name="P:CSVideoPlayer.RenderingSubtitlesEventArgs.Text">
            <summary>
            Gets the text stripped out of ASS or SRT formatting.
            This is what the default subtitle renderer will display
            on the screen.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RenderingSubtitlesEventArgs.OriginalText">
            <summary>
            Gets the text as originally decoded including
            all markup and formatting.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RenderingSubtitlesEventArgs.Format">
            <summary>
            Gets the type of subtitle format the original
            subtitle text is in.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RenderingSubtitlesEventArgs.Cancel">
            <summary>
            When set to true, clears the current subtitle and
            prevents the subtitle block from being rendered.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.RenderingVideoEventArgs">
            <summary>
            The video rendering event arguments.
            </summary>
            <seealso cref="T:System.EventArgs" />
        </member>
        <member name="M:CSVideoPlayer.RenderingVideoEventArgs.#ctor(CSVideoPlayer.BitmapDataBuffer,System.Collections.Generic.IReadOnlyList{CSVideoPlayer.ClosedCaptionPacket},System.String,System.Int64,FFmpeg.AutoGen.AVPictureType,CSVideoPlayer.IMediaEngineState,CSVideoPlayer.StreamInfo,System.TimeSpan,System.TimeSpan,System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.RenderingVideoEventArgs" /> class.
            </summary>
            <param name="bitmap">The bitmap.</param>
            <param name="closedCaptions">The closed captions.</param>
            <param name="smtpeTimeCode">The smtpe time code.</param>
            <param name="pictureNumber">The picture number.</param>
            <param name="pictureType">The origination picture type.</param>
            <param name="engineState">The engine.</param>
            <param name="stream">The stream.</param>
            <param name="startTime">The start time.</param>
            <param name="duration">The duration.</param>
            <param name="clock">The clock.</param>
        </member>
        <member name="P:CSVideoPlayer.RenderingVideoEventArgs.Bitmap">
            <summary>
            Gets the writable bitmap filled with the video frame pixels.
            Feel free to capture or change this buffer.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RenderingVideoEventArgs.ClosedCaptions">
            <summary>
            Gets the closed caption decoded packets.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RenderingVideoEventArgs.PictureNumber">
            <summary>
            Gets the display picture number (frame number).
            If not set by the decoder, this attempts to obtain it by dividing the start time by the
            frame duration.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RenderingVideoEventArgs.SmtpeTimeCode">
            <summary>
            Gets the SMTPE time code.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RenderingVideoEventArgs.PictureType">
            <summary>
            Gets the picture type.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.Library">
            <summary>
            Provides access to the underlying FFmpeg library information.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Library.EnableWpfMultiThreadedVideo">
            <summary>
            Gets or sets a value indicating whether the video visualization control
            creates its own dispatcher thread to handle rendering of video frames.
            This is an experimental feature and it is useful when creating video walls.
            For example if you want to display multiple videos at a time and don't want to
            use time from the main UI thread. This feature is only valid if we are in
            a WPF context.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Library.DefaultDirectSoundDevice">
            <summary>
            The default DirectSound device.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Library.DefaultLegacyAudioDevice">
            <summary>
            The default Windows Multimeda Extensions Legacy Audio Device.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Library.IsInDesignMode">
            <summary>
            Determines if the control library is currently in design-time mode (as opposed to run-time).
            </summary>
        </member>
        <member name="M:CSVideoPlayer.Library.EnumerateDirectSoundDevices">
            <summary>
            Enumerates the DirectSound devices.
            </summary>
            <returns>The available DirectSound devices.</returns>
        </member>
        <member name="M:CSVideoPlayer.Library.EnumerateLegacyAudioDevices">
            <summary>
            Enumerates the (Legacy) Windows Multimedia Extensions devices.
            </summary>
            <returns>The available MME devices.</returns>
        </member>
        <member name="P:CSVideoPlayer.Library.GuiContext">
            <summary>
            Provides access to the registered GUI context.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.Library.RegisterGuiContext(CSVideoPlayer.IGuiContext)">
            <summary>
            Registers the GUI context for the library.
            </summary>
            <param name="context">The GUI context to register.</param>
        </member>
        <member name="P:CSVideoPlayer.Library.IsFrameSyncDisabled">
            <summary>
            Gets or sets a value indicating whether frame synchronization is disabled.
            Setting this to true prevents the use of multimedia timers.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Library.FFmpegDirectory">
            <summary>
            Gets or sets the FFmpeg path from which to load the FFmpeg binaries.
            You must set this path before setting the Source property for the first time on any instance of this control.
            Setting this property when FFmpeg binaries have been registered will have no effect.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Library.FFmpegVersionInfo">
            <summary>
            Gets the FFmpeg version information. Returns null
            when the libraries have not been loaded.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Library.FFmpegLoadModeFlags">
            <summary>
            Gets or sets the bitwise library identifiers to load.
            See the <see cref="T:FFmpeg.AutoGen.FFmpegLoadMode"/> constants.
            If FFmpeg is already loaded, the value cannot be changed.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Library.FFmpegLogLevel">
            <summary>
            Gets or sets the FFmpeg log level.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Library.IsInitialized">
            <summary>
            Gets a value indicating whether the FFmpeg library has been initialized.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Library.InputFormatNames">
            <summary>
            Gets the registered FFmpeg input format names.
            </summary>
            <exception cref="T:System.InvalidOperationException">When the MediaEngine has not been initialized.</exception>
        </member>
        <member name="P:CSVideoPlayer.Library.InputFormatOptionsGlobal">
            <summary>
            Gets the global input format options information.
            </summary>
            <exception cref="T:System.InvalidOperationException">When the MediaEngine has not been initialized.</exception>
        </member>
        <member name="P:CSVideoPlayer.Library.InputFormatOptions">
            <summary>
            Gets the input format options.
            </summary>
            <exception cref="T:System.InvalidOperationException">When the MediaEngine has not been initialized.</exception>
        </member>
        <member name="P:CSVideoPlayer.Library.DecoderNames">
            <summary>
            Gets the registered FFmpeg decoder codec names.
            </summary>
            <exception cref="T:System.InvalidOperationException">When the MediaEngine has not been initialized.</exception>
        </member>
        <member name="P:CSVideoPlayer.Library.EncoderNames">
            <summary>
            Gets the registered FFmpeg decoder codec names.
            </summary>
            <exception cref="T:System.InvalidOperationException">When the MediaEngine has not been initialized.</exception>
        </member>
        <member name="P:CSVideoPlayer.Library.DecoderOptionsGlobal">
            <summary>
            Gets the global options that apply to all decoders.
            </summary>
            <exception cref="T:System.InvalidOperationException">When the MediaEngine has not been initialized.</exception>
        </member>
        <member name="P:CSVideoPlayer.Library.DecoderOptions">
            <summary>
            Gets the decoder specific options.
            </summary>
            <exception cref="T:System.InvalidOperationException">When the MediaEngine has not been initialized.</exception>
        </member>
        <member name="P:CSVideoPlayer.Library.AllCodecs">
            <summary>
            Gets all registered encoder and decoder codecs.
            </summary>
            <exception cref="T:System.InvalidOperationException">When the MediaEngine has not been initialized.</exception>
        </member>
        <member name="M:CSVideoPlayer.Library.LoadFFmpeg">
            <summary>
            Forces the pre-loading of the FFmpeg libraries according to the values of the
            <see cref="P:CSVideoPlayer.Library.FFmpegDirectory"/> and <see cref="P:CSVideoPlayer.Library.FFmpegLoadModeFlags"/>
            Also, sets the <see cref="P:CSVideoPlayer.Library.FFmpegVersionInfo"/> property. Throws an exception
            if the libraries cannot be loaded.
            </summary>
            <returns>true if libraries were loaded, false if libraries were already loaded.</returns>
        </member>
        <member name="M:CSVideoPlayer.Library.LoadFFmpegAsync">
            <summary>
            Provides an asynchronous version of the <see cref="M:CSVideoPlayer.Library.LoadFFmpeg"/> call.
            </summary>
            <returns>true if libraries were loaded, false if libraries were already loaded.</returns>
        </member>
        <member name="M:CSVideoPlayer.Library.UnloadFFmpeg">
            <summary>
            Unloads FFmpeg libraries from memory.
            </summary>
            <exception cref="T:System.NotImplementedException">Unloading FFmpeg libraries is not yet supported.</exception>
        </member>
        <member name="M:CSVideoPlayer.Library.RetrieveMediaInfo(System.String)">
            <summary>
            Retrieves the media information including all streams, chapters and programs.
            </summary>
            <param name="mediaSource">The source URL.</param>
            <returns>The contents of the media information.</returns>
        </member>
        <member name="M:CSVideoPlayer.Library.CreateVideoSeekIndex(System.String,System.Int32)">
            <summary>
            Creates a viedo seek index object.
            </summary>
            <param name="mediaSource">The source URL.</param>
            <param name="streamIndex">Index of the stream. Use -1 for automatic stream selection.</param>
            <returns>
            The seek index object.
            </returns>
        </member>
        <member name="M:CSVideoPlayer.Library.CreateVideoSeekIndex(System.String)">
            <summary>
            Creates a viedo seek index object of the default video stream.
            </summary>
            <param name="mediaSource">The source URL.</param>
            <returns>
            The seek index object.
            </returns>
        </member>
        <member name="T:CSVideoPlayer.FrameDecodedEventArgs">
            <summary>
            Event arguments corresponding to the audio or video frame decoded events. Useful for capturing streams.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.FrameDecodedEventArgs.#ctor(FFmpeg.AutoGen.AVFrame*,FFmpeg.AutoGen.AVFormatContext*)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.FrameDecodedEventArgs"/> class.
            </summary>
            <param name="frame">The audio or video frame pointer.</param>
            <param name="context">The input format context.</param>
        </member>
        <member name="P:CSVideoPlayer.FrameDecodedEventArgs.Frame">
            <summary>
            Gets the pointer to the audio or video frame that was decoded.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.InputFormatEventArgs">
            <summary>
            Generic Input format event arguments. Useful for capturing streams.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.InputFormatEventArgs.#ctor(FFmpeg.AutoGen.AVFormatContext*)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.InputFormatEventArgs"/> class.
            </summary>
            <param name="context">The input format context.</param>
        </member>
        <member name="P:CSVideoPlayer.InputFormatEventArgs.InputContext">
            <summary>
            Gets a pointer to the unmanaged input format context.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.MediaFailedEventArgs">
            <summary>
            The Media failed event arguments.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaFailedEventArgs.#ctor(System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaFailedEventArgs"/> class.
            </summary>
            <param name="errorException">The exception.</param>
        </member>
        <member name="P:CSVideoPlayer.MediaFailedEventArgs.ErrorException">
            <summary>
            Gets the error exception.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.MediaInitializingEventArgs">
            <summary>
            Represents the event arguments of the MediaInitializing routed event.
            </summary>
            <seealso cref="T:System.Windows.RoutedEventArgs" />
        </member>
        <member name="M:CSVideoPlayer.MediaInitializingEventArgs.#ctor(CSVideoPlayer.ContainerConfiguration,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaInitializingEventArgs" /> class.
            </summary>
            <param name="config">The container configuration options.</param>
            <param name="mediaSource">The URL.</param>
        </member>
        <member name="P:CSVideoPlayer.MediaInitializingEventArgs.Configuration">
            <summary>
            Set or change the container configuration options before the media is opened.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaInitializingEventArgs.MediaSource">
            <summary>
            Gets the URL.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.MediaLogMessageEventArgs">
            <summary>
            Contains the Message Logged Event Arguments.
            </summary>
            <seealso cref="T:System.EventArgs" />
        </member>
        <member name="M:CSVideoPlayer.MediaLogMessageEventArgs.#ctor(CSVideoPlayer.LoggingMessage)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaLogMessageEventArgs"/> class.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="P:CSVideoPlayer.MediaLogMessageEventArgs.TimestampUtc">
            <summary>
            Gets the timestamp.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaLogMessageEventArgs.MessageType">
            <summary>
            Gets the type of the message.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaLogMessageEventArgs.Message">
            <summary>
            Gets the contents of the message.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaLogMessageEventArgs.AspectName">
            <summary>
            Gets the aspect or feature that sent the logged message.
            May or may not be available.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaLogMessageEventArgs.ToString">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaLogMessageEventArgs.GetTypePrefix">
            <summary>
            Gets the type prefix.
            </summary>
            <returns>A 3-letter abbreviation.</returns>
        </member>
        <member name="T:CSVideoPlayer.MediaOpenedEventArgs">
            <summary>
            Represents the event arguments of the <see cref="E:CSVideoPlayer.cMediaPlayer.MediaOpened"/> or
            <see cref="E:CSVideoPlayer.cMediaPlayer.MediaChanged"/> routed events.
            </summary>
            <seealso cref="T:System.EventArgs" />
        </member>
        <member name="M:CSVideoPlayer.MediaOpenedEventArgs.#ctor(CSVideoPlayer.MediaInfo)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaOpenedEventArgs" /> class.
            </summary>
            <param name="info">The input information.</param>
        </member>
        <member name="P:CSVideoPlayer.MediaOpenedEventArgs.Info">
            <summary>
            Provides internal details of the media, including its component streams.
            Typically, options are set based on what this information contains.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.MediaOpeningEventArgs">
            <summary>
            Represents the event arguments of the <see cref="E:CSVideoPlayer.cMediaPlayer.MediaOpening"/>
            or <see cref="E:CSVideoPlayer.cMediaPlayer.MediaChanging"/> routed events.
            </summary>
            <seealso cref="T:System.EventArgs" />
        </member>
        <member name="M:CSVideoPlayer.MediaOpeningEventArgs.#ctor(CSVideoPlayer.MediaOptions,CSVideoPlayer.MediaInfo)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaOpeningEventArgs" /> class.
            </summary>
            <param name="options">The options.</param>
            <param name="info">The input information.</param>
        </member>
        <member name="P:CSVideoPlayer.MediaOpeningEventArgs.Options">
            <summary>
            Set or change the options before the media is opened.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOpeningEventArgs.Info">
            <summary>
            Provides internal details of the media, including its component streams.
            Typically, options are set based on what this information contains.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.MediaStateChangedEventArgs">
            <summary>
            Contains the media state changed event args.
            </summary>
            <seealso cref="T:System.EventArgs" />
        </member>
        <member name="M:CSVideoPlayer.MediaStateChangedEventArgs.#ctor(CSVideoPlayer.MediaPlaybackState,CSVideoPlayer.MediaPlaybackState)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaStateChangedEventArgs"/> class.
            </summary>
            <param name="oldState">State of the previous.</param>
            <param name="newState">The new state.</param>
        </member>
        <member name="P:CSVideoPlayer.MediaStateChangedEventArgs.MediaState">
            <summary>
            Gets the current media state.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaStateChangedEventArgs.OldMediaState">
            <summary>
            Gets the position.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.PacketReadEventArgs">
            <summary>
            Event arguments corresponding to the packet reading event. Useful for capturing streams.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.PacketReadEventArgs.#ctor(FFmpeg.AutoGen.AVPacket*,FFmpeg.AutoGen.AVFormatContext*)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.PacketReadEventArgs"/> class.
            </summary>
            <param name="packet">The packet pointer.</param>
            <param name="context">The input format context.</param>
        </member>
        <member name="P:CSVideoPlayer.PacketReadEventArgs.Packet">
            <summary>
            Gets the pointer to the packet that was read.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.PositionChangedEventArgs">
            <summary>
            Contains the position changed routed event args.
            </summary>
            <seealso cref="T:System.EventArgs" />
        </member>
        <member name="M:CSVideoPlayer.PositionChangedEventArgs.#ctor(CSVideoPlayer.IMediaEngineState,System.TimeSpan,System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.PositionChangedEventArgs" /> class.
            </summary>
            <param name="engineState">State of the engine.</param>
            <param name="oldPosition">The old position.</param>
            <param name="newPosition">The new position.</param>
        </member>
        <member name="P:CSVideoPlayer.PositionChangedEventArgs.Position">
            <summary>
            Gets the current position.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.PositionChangedEventArgs.OldPosition">
            <summary>
            Gets the old position.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.PositionChangedEventArgs.EngineState">
            <summary>
            Provides access to the underlying media engine state.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.SubtitleDecodedEventArgs">
            <summary>
            Event arguments corresponding to the subtitle decoded event. Useful for capturing streams.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.SubtitleDecodedEventArgs.#ctor(FFmpeg.AutoGen.AVSubtitle*,FFmpeg.AutoGen.AVFormatContext*)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.SubtitleDecodedEventArgs"/> class.
            </summary>
            <param name="subtitle">The subtitle pointer.</param>
            <param name="context">The input format context.</param>
        </member>
        <member name="P:CSVideoPlayer.SubtitleDecodedEventArgs.Subtitle">
            <summary>
            Gets the pointer to subtitle that was decoded.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.ViewModelBase">
            <summary>
            A base class for implementing models that fire notifications when their properties change.
            This class is ideal for implementing MVVM driven UIs.
            </summary>
            <seealso cref="T:System.ComponentModel.INotifyPropertyChanged" />
        </member>
        <member name="M:CSVideoPlayer.ViewModelBase.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.ViewModelBase"/> class.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ViewModelBase.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.ViewModelBase"/> class.
            </summary>
            <param name="useDeferredNotifications">Set to <c>true</c> to use deferred notifications in the background.</param>
        </member>
        <member name="E:CSVideoPlayer.ViewModelBase.PropertyChanged">
            <summary>
            Occurs when a property value changes.
            </summary>
            <returns>The property changed notification handler</returns>
        </member>
        <member name="M:CSVideoPlayer.ViewModelBase.SetProperty``1(CSVideoPlayer.AtomicTypeBase{``0},``0,System.String,System.String[])">
            <summary>Checks if a property already matches a desired value.  Sets the property and
            notifies listeners only when necessary.</summary>
            <typeparam name="T">Type of the property.</typeparam>
            <param name="storage">Reference to a property with both getter and setter.</param>
            <param name="value">Desired value for the property.</param>
            <param name="propertyName">Name of the property used to notify listeners.  This
            value is optional and can be provided automatically when invoked from compilers that
            support CallerMemberName.</param>
            <param name="notifyAlso">An rray of property names to notify in addition to notifying the changes on the current property name.</param>
            <returns>True if the value was changed, false if the existing value matched the
            desired value.</returns>
        </member>
        <member name="M:CSVideoPlayer.ViewModelBase.SetProperty``1(``0@,``0,System.String,System.String[])">
            <summary>Checks if a property already matches a desired value.  Sets the property and
            notifies listeners only when necessary.</summary>
            <typeparam name="T">Type of the property.</typeparam>
            <param name="storage">Reference to a property with both getter and setter.</param>
            <param name="value">Desired value for the property.</param>
            <param name="propertyName">Name of the property used to notify listeners.  This
            value is optional and can be provided automatically when invoked from compilers that
            support CallerMemberName.</param>
            <param name="notifyAlso">An rray of property names to notify in addition to notifying the changes on the current property name.</param>
            <returns>True if the value was changed, false if the existing value matched the
            desired value.</returns>
        </member>
        <member name="M:CSVideoPlayer.ViewModelBase.NotifyPropertyChanged(System.String[])">
            <summary>
            Notifies one or more properties changed.
            </summary>
            <param name="propertyNames">The property names.</param>
        </member>
        <member name="M:CSVideoPlayer.ViewModelBase.NotifyPropertyChanged(System.String,System.String[])">
            <summary>
            Notifies one or more properties changed.
            </summary>
            <param name="mainProperty">The main property.</param>
            <param name="auxiliaryProperties">The auxiliary properties.</param>
        </member>
        <member name="M:CSVideoPlayer.ViewModelBase.NotifyQueuedProperties">
            <summary>
            Notifies the queued properties and resets the property name to a non-queued stated.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ViewModelBase.OnPropertyChanged(System.String)">
            <summary>
            Called when a property changes its backing value.
            </summary>
            <param name="propertyName">Name of the property.</param>
        </member>
        <member name="T:CSVideoPlayer.Constants">
            <summary>
            Defaults and constants of the Media Engine.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.PropertyUpdatesInterval">
            <summary>
            Gets the period at which media state properties are updated.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.Constants.#cctor">
            <summary>
            Initializes static members of the <see cref="T:CSVideoPlayer.Constants"/> class.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.FFmpegSearchPath">
            <summary>
            Gets the assembly location.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.DefaultSpeedRatio">
            <summary>
            The default speed ratio.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.DefaultBalance">
            <summary>
            The default balance.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.DefaultVolume">
            <summary>
            The default volume.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.DefaultClosedCaptionsChannel">
            <summary>
            The default closed captions channel.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.MinSpeedRatio">
            <summary>
            The minimum speed ratio.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.MaxSpeedRatio">
            <summary>
            The maximum speed ratio.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.MinBalance">
            <summary>
            The minimum balance.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.MaxBalance">
            <summary>
            The maximum balance.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.MaxVolume">
            <summary>
            The maximum volume.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.MinVolume">
            <summary>
            The minimum volume.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.AudioBufferPadding">
            <summary>
            The audio buffer padding.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.AudioBitsPerSample">
            <summary>
            The audio bits per sample (1 channel only).
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.AudioBytesPerSample">
            <summary>
            The audio bytes per sample.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.AudioSampleFormat">
            <summary>
            The audio sample format.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.AudioChannelCount">
            <summary>
            The audio channel count.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.AudioSampleRate">
            <summary>
            The audio sample rate (per channel).
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.VideoBitsPerComponent">
            <summary>
            The video bits per component.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.VideoBitsPerPixel">
            <summary>
            The video bits per pixel.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.VideoBytesPerPixel">
            <summary>
            The video bytes per pixel.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.VideoPixelFormat">
            <summary>
            The video pixel format. BGRA, 32bit.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.TimeSyncMaxOffset">
            <summary>
            Gets the time synchronize maximum offset.
            Components that are offset more than this time span with respect to the
            main component are deemed unrelated.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Constants.DefaultTimingPeriod">
            <summary>
            Gets the thread worker period for default scenarios.
            It also represents a common value for timeouts and typical system clock timer precision.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.Constants.GetMaxBlocks(CSVideoPlayer.MediaType,CSVideoPlayer.MediaEngine)">
            <summary>
            Gets the maximum blocks to cache for the given component type.
            </summary>
            <param name="t">The t.</param>
            <param name="mediaCore">The media core.</param>
            <returns>The number of blocks to cache.</returns>
        </member>
        <member name="T:CSVideoPlayer.cMediaPlayer">
            <summary>
            Interaction logic for UserControl1.xaml
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.CSVideoPlayer#ILoggingSource#LoggingHandler">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.MediaCore">
            <summary>
            Provides access to the underlying media engine driving this control.
            This property is intended for advanced usages only.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.ChangeMedia">
            <summary>
            Requests new media options to be applied, including stream component selection.
            Handle the <see cref="E:CSVideoPlayer.cMediaPlayer.MediaChanging"/> event to set new <see cref="T:CSVideoPlayer.MediaOptions"/> based on
            <see cref="P:CSVideoPlayer.cMediaPlayer.MediaInfo"/> properties.
            </summary>
            <returns>The awaitable command.</returns>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.Play">
            <summary>
            Begins or resumes playback of the currently loaded media.
            </summary>
            <returns>The awaitable command.</returns>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.Pause">
            <summary>
            Pauses playback of the currently loaded media.
            </summary>
            <returns>The awaitable command.</returns>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.Stop">
            <summary>
            Pauses and rewinds the currently loaded media.
            </summary>
            <returns>The awaitable command.</returns>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.Seek(System.TimeSpan)">
            <summary>
            Seeks to the specified target position.
            This is an alternative to using the <see cref="P:CSVideoPlayer.cMediaPlayer.Position"/> dependency property.
            </summary>
            <param name="target">The target time to seek to.</param>
            <returns>The awaitable command.</returns>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.StepForward">
            <summary>
            Seeks a single frame forward.
            </summary>
            <returns>The awaitable command.</returns>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.StepBackward">
            <summary>
            Seeks a single frame backward.
            </summary>
            <returns>The awaitable command.</returns>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.Open(System.Uri)">
            <summary>
            Opens the specified URI.
            This is an alternative method of opening media vs using the
            <see cref="P:CSVideoPlayer.cMediaPlayer.Source"/> Dependency Property.
            </summary>
            <param name="uri">The URI.</param>
            <returns>The awaitable task.</returns>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.Open(CSVideoPlayer.IMediaInputStream)">
            <summary>
            Opens the specified custom input stream.
            </summary>
            <param name="stream">The stream.</param>
            <returns>The awaitable task.</returns>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.Close">
            <summary>
            Closes the currently loaded media.
            </summary>
            <returns>The awaitable command.</returns>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.CSVideoPlayer#ILoggingHandler#HandleLogMessage(CSVideoPlayer.LoggingMessage)">
            <inheritdoc />
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.PropertyChanged">
            <inheritdoc />
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.MessageLogged">
            <summary>
            Occurs when a logging message has been logged.
            This does not include FFmpeg messages.
            </summary>
            <remarks>
            This event is raised on a background thread.
            All interaction with UI elements requires calls on their corresponding dispatcher.
            </remarks>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.MediaInitializing">
            <summary>
            Raised before the input stream of the media is initialized.
            Use this method to modify the input options.
            </summary>
            <remarks>
            This event is raised on a background thread.
            All interaction with UI elements requires calls on their corresponding dispatcher.
            </remarks>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.MediaOpening">
            <summary>
            Raised before the input stream of the media is opened.
            Use this method to modify the media options and select streams.
            </summary>
            <remarks>
            This event is raised on a background thread.
            All interaction with UI elements requires calls on their corresponding dispatcher.
            </remarks>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.MediaChanging">
            <summary>
            Raised before a change in media options is applied.
            Use this method to modify the selected streams.
            </summary>
            <remarks>
            This event is raised on a background thread.
            All interaction with UI elements requires calls on their corresponding dispatcher.
            </remarks>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.PacketRead">
            <summary>
            Raised when a packet is read from the input stream. Useful for capturing streams.
            This event is not raised on the UI thread and the pointers in the event arguments
            are only valid for the call. If you need to keep a queue you will need to clone and
            release the allocated memory yourself by using clone and release methods in the native
            FFmpeg API.
            </summary>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.AudioFrameDecoded">
            <summary>
            Raised when an audio frame is decoded from input stream. Useful for capturing streams.
            This event is not raised on the UI thread and the pointers in the event arguments
            are only valid for the call. If you need to keep a queue you will need to clone and
            release the allocated memory yourself by using clone and release methods in the native
            FFmpeg API.
            </summary>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.VideoFrameDecoded">
            <summary>
            Raised when a video frame is decoded from input stream. Useful for capturing streams.
            This event is not raised on the UI thread and the pointers in the event arguments
            are only valid for the call. If you need to keep a queue you will need to clone and
            release the allocated memory yourself by using clone and release methods in the native
            FFmpeg API.
            </summary>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.SubtitleDecoded">
            <summary>
            Raised when a subtitle is decoded from input stream. Useful for capturing streams.
            This event is not raised on the UI thread and the pointers in the event arguments
            are only valid for the call. If you need to keep a queue you will need to clone and
            release the allocated memory yourself by using clone and release methods in the native
            FFmpeg API.
            </summary>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.BufferingStarted">
            <summary>
            Occurs when buffering of packets was started
            </summary>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.BufferingEnded">
            <summary>
            Occurs when buffering of packets has ended
            </summary>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.SeekingStarted">
            <summary>
            Occurs when stream seeking has started
            </summary>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.SeekingEnded">
            <summary>
            Occurs when Seeking of packets was Ended
            </summary>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.MediaOpened">
            <summary>
            Raised when the media is opened
            </summary>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.MediaReady">
            <summary>
            Raised after the media is opened and ready to receive commands
            such as <see cref="M:CSVideoPlayer.cMediaPlayer.Seek(System.TimeSpan)"/>
            </summary>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.MediaChanged">
            <summary>
            Raised after a change in media options and components is applied.
            </summary>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.MediaClosed">
            <summary>
            Raised when the media is closed
            </summary>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.MediaEnded">
            <summary>
            Raised when the corresponding media ends.
            </summary>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.PositionChanged">
            <summary>
            Occurs when media position is changed
            </summary>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.MediaStateChanged">
            <summary>
            Occurs when media state is changed
            </summary>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.MediaFailed">
            <summary>
            Raised when the media fails to load or a fatal error has occurred which prevents playback.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.RaiseMessageLoggedEvent(CSVideoPlayer.LoggingMessage)">
            <summary>
            Raises the message logged event.
            </summary>
            <param name="e">The <see cref="T:CSVideoPlayer.LoggingMessage"/> instance containing the event data.</param>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.RaiseMediaInitializingEvent(CSVideoPlayer.ContainerConfiguration,System.String)">
            <summary>
            Raises the media initializing event.
            </summary>
            <param name="config">The container configuration options.</param>
            <param name="url">The URL.</param>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.RaiseMediaOpeningEvent(CSVideoPlayer.MediaOptions,CSVideoPlayer.MediaInfo)">
            <summary>
            Raises the media opening event.
            </summary>
            <param name="options">The options.</param>
            <param name="mediaInfo">The media information.</param>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.RaiseMediaChangingEvent(CSVideoPlayer.MediaOptions,CSVideoPlayer.MediaInfo)">
            <summary>
            Raises the media changing event.
            </summary>
            <param name="options">The options.</param>
            <param name="mediaInfo">The media information.</param>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.RaisePacketReadEvent(FFmpeg.AutoGen.AVPacket*,FFmpeg.AutoGen.AVFormatContext*)">
            <summary>
            Raises the packet read event.
            </summary>
            <param name="packet">The packet pointer.</param>
            <param name="context">The input context pointer.</param>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.RaiseAudioFrameDecodedEvent(FFmpeg.AutoGen.AVFrame*,FFmpeg.AutoGen.AVFormatContext*)">
            <summary>
            Raises the audio frame decoded event.
            </summary>
            <param name="frame">The frame pointer.</param>
            <param name="context">The input context pointer.</param>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.RaiseVideoFrameDecodedEvent(FFmpeg.AutoGen.AVFrame*,FFmpeg.AutoGen.AVFormatContext*)">
            <summary>
            Raises the video frame decoded event.
            </summary>
            <param name="frame">The frame pointer.</param>
            <param name="context">The input context pointer.</param>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.RaiseSubtitleDecodedEvent(FFmpeg.AutoGen.AVSubtitle*,FFmpeg.AutoGen.AVFormatContext*)">
            <summary>
            Raises the subtitle decoded event.
            </summary>
            <param name="subtitle">The subtitle pointer.</param>
            <param name="context">The input context pointer.</param>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.PostMediaFailedEvent(System.Exception)">
            <summary>
            Raises the media failed event.
            </summary>
            <param name="ex">The ex.</param>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.PostMediaOpenedEvent(CSVideoPlayer.MediaInfo)">
            <summary>
            Raises the media opened event.
            </summary>
            <param name="mediaInfo">The media information.</param>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.PostMediaReadyEvent">
            <summary>
            Raises the media ready event.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.PostMediaClosedEvent">
            <summary>
            Raises the media closed event.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.PostMediaChangedEvent(CSVideoPlayer.MediaInfo)">
            <summary>
            Raises the media changed event.
            </summary>
            <param name="mediaInfo">The media information.</param>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.PostPositionChangedEvent(System.TimeSpan,System.TimeSpan)">
            <summary>
            Raises the position changed event.
            </summary>
            <param name="oldValue">The old value.</param>
            <param name="newValue">The new value.</param>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.PostMediaStateChangedEvent(CSVideoPlayer.MediaPlaybackState,CSVideoPlayer.MediaPlaybackState)">
            <summary>
            Raises the media state changed event.
            </summary>
            <param name="oldValue">The old value.</param>
            <param name="newValue">The new value.</param>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.PostBufferingStartedEvent">
            <summary>
            Raises the buffering started event.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.PostBufferingEndedEvent">
            <summary>
            Raises the buffering ended event.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.PostSeekingStartedEvent">
            <summary>
            Raises the Seeking started event.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.PostSeekingEndedEvent">
            <summary>
            Raises the Seeking ended event.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.PostMediaEndedEvent">
            <summary>
            Raises the media ended event.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.NotifyPropertyChangedEvent(System.String)">
            <summary>
            Notifies listeners that a property value has changed.
            </summary>
            <param name="propertyName">Name of the property used to notify listeners.  This
            value is optional and can be provided automatically when invoked from compilers
            that support <see cref="T:System.Runtime.CompilerServices.CallerMemberNameAttribute"/>.</param>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.LogEventStart(System.String)">
            <summary>
            Logs the start of an event.
            </summary>
            <param name="eventName">The event.</param>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.LogEventDone(System.String)">
            <summary>
            Logs the end of an event.
            </summary>
            <param name="eventName">The event.</param>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.Source">
            <summary>
            Gets the source URI of the media.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.MediaState">
            <summary>
            Gets the current playback state.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.NaturalDuration">
            <summary>
            Gets the Media's natural duration
            Only valid after the MediaOpened event has fired.
            Returns null for undefined or negative duration.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.PlaybackStartTime">
            <summary>
            Gets the media playback start time. Useful for slider minimum values.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.PlaybackEndTime">
            <summary>
            Gets the media playback end time. Useful for slider maximum values.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.RemainingDuration">
            <summary>
            Gets the remaining playback duration. Returns null for indeterminate values.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.ActualPosition">
            <summary>
            Gets the actual playback position. Differently from the <see cref="P:CSVideoPlayer.cMediaPlayer.Position"/> property,
            this is not a dependency property. Reading this property will return the media engine's
            internal position.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.FramePosition">
            <summary>
            Gets the discrete time position of the start of the current
            frame of the main component.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.BitRate">
            <summary>
            Gets the stream's total bit rate as reported by the container.
            Returns 0 if unavailable.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.DecodingBitRate">
            <summary>
            Gets the instantaneous, compressed bit rate of the decoders for the currently active component streams.
            This is provided in bits per second.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.Metadata">
            <summary>
            Provides key-value pairs of the metadata contained in the media.
            Returns null when media has not been loaded.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.MediaInfo">
            <summary>
            Provides stream, chapter and program info of the underlying media.
            Returns null when no media is loaded.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.VideoStreamIndex">
            <summary>
            Gets the index of the video stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.AudioStreamIndex">
            <summary>
            Gets the index of the audio stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.SubtitleStreamIndex">
            <summary>
            Gets the index of the subtitle stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.MediaFormat">
            <summary>
            Gets the media format. Returns null when media has not been loaded.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.MediaStreamSize">
            <summary>
            Gets the size in bytes of the current stream being read.
            For multi-file streams, get the size of the current file only.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.PositionStep">
            <summary>
            Gets the duration of a single frame step.
            If there is a video component with a frame rate, this property returns the length of a frame.
            If there is no video component it simply returns a tenth of a second.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.HasAudio">
            <summary>
            Returns whether the given media has audio.
            Only valid after the MediaOpened event has fired.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.HasVideo">
            <summary>
            Returns whether the given media has video. Only valid after the
            MediaOpened event has fired.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.HasSubtitles">
            <summary>
            Returns whether the given media has subtitles. Only valid after the
            MediaOpened event has fired.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.VideoCodec">
            <summary>
            Gets the video codec.
            Only valid after the MediaOpened event has fired.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.VideoBitRate">
            <summary>
            Gets the video bit rate.
            Only valid after the MediaOpened event has fired.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.VideoRotation">
            <summary>
            Returns the clockwise angle that needs to be applied to the video for it to be displayed
            Only valid after the MediaOpened event has fired.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.NaturalVideoWidth">
            <summary>
            Returns the natural width of the media in the video.
            Only valid after the MediaOpened event has fired.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.NaturalVideoHeight">
            <summary>
            Returns the natural height of the media in the video.
            Only valid after the MediaOpened event has fired.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.VideoFrameRate">
            <summary>
            Gets the video frame rate.
            Only valid after the MediaOpened event has fired.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.VideoHardwareDecoder">
            <summary>
            Gets the name of the video hardware decoder in use.
            Enabling hardware acceleration does not guarantee decoding will be performed in hardware.
            When hardware decoding of frames is in use this will return the name of the HW accelerator.
            Otherwise it will return an empty string.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.AudioCodec">
            <summary>
            Gets the audio codec.
            Only valid after the MediaOpened event has fired.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.AudioBitRate">
            <summary>
            Gets the audio bit rate.
            Only valid after the MediaOpened event has fired.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.AudioChannels">
            <summary>
            Gets the audio channels count.
            Only valid after the MediaOpened event has fired.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.AudioSampleRate">
            <summary>
            Gets the audio sample rate.
            Only valid after the MediaOpened event has fired.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.AudioBitsPerSample">
            <summary>
            Gets the audio bits per sample.
            Only valid after the MediaOpened event has fired.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.CanPause">
            <summary>
            Returns whether the currently loaded media can be paused.
            This is only valid after the MediaOpened event has fired.
            Note that this property is computed based on whether the stream is detected to be a live stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.IsAtEndOfStream">
            <summary>
            Gets a value indicating whether the meadia container has reached the end of the stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.IsLiveStream">
            <summary>
            Returns whether the currently loaded media is live or realtime
            This is only valid after the MediaOpened event has fired.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.IsNetworkStream">
            <summary>
            Returns whether the currently loaded media is a network stream.
            This is only valid after the MediaOpened event has fired.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.IsSeekable">
            <summary>
            Gets a value indicating whether the currently loaded media can be seeked.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.IsPlaying">
            <summary>
            Gets a value indicating whether the media is playing.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.IsPaused">
            <summary>
            Gets a value indicating whether the media is playing.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.HasMediaEnded">
            <summary>
            Gets a value indicating whether the media has reached its end.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.IsBuffering">
            <summary>
            Get a value indicating whether the media is buffering.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.IsSeeking">
            <summary>
            Gets a value indicating whether the media seeking is in progress.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.VideoSmtpeTimeCode">
            <summary>
            Returns the current video SMTPE time code if available.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.VideoAspectRatio">
            <summary>
            Gets the current video aspect ratio if available.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.BufferingProgress">
            <summary>
            Gets a value that indicates the percentage of buffering progress made.
            Range is from 0 to 1.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.DownloadProgress">
            <summary>
            Gets a value that indicates the percentage of download progress made.
            Range is from 0 to 1.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.PacketBufferLength">
            <summary>
            Gets the amount of bytes in the packet buffer for the active stream components.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.PacketBufferCount">
            <summary>
            Gets the number of packets buffered for all components.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.IsOpening">
            <summary>
            Gets a value indicating whether the media is in the process of opening.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.IsClosing">
            <summary>
            Gets a value indicating whether the media is in the process of closing.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.IsChanging">
            <summary>
            Gets a value indicating whether the media is currently changing its components.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.IsOpen">
            <summary>
            Gets a value indicating whether this media element
            currently has an open media url.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.HasClosedCaptions">
            <summary>
            Gets a value indicating whether the video stream contains closed captions.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.cMediaPlayer.AffectsMeasureAndRender">
            <summary>
            The affects measure and render metadata options.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.cMediaPlayer.AllowContentChange">
            <summary>
            The allow content change flag.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.#cctor">
            <summary>
            Initializes static members of the <see cref="T:CSVideoPlayer.cMediaPlayer"/> class.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.cMediaPlayer" /> class.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.System#Windows#Markup#IUriContext#BaseUri">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.RendererOptions">
            <summary>
            Provides access to various internal media renderer options.
            The default options are optimal to work for most media streams.
            This is an advanced feature and it is not recommended to change these
            options without careful consideration.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.VideoView">
            <summary>
            This is the image that holds video bitmaps. It is a Hosted Image which means that in a WPF
            GUI context, it runs on its own dispatcher (multi-threaded UI).
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.CaptionsView">
            <summary>
            Gets the closed captions view control.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.SubtitlesView">
            <summary>
            A ViewBox holding the subtitle text blocks.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.ContentGrid">
            <summary>
            Gets the grid control holding the rest of the controls.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.IsStateUpdating">
            <summary>
            Determines whether the property values are being copied over from the
            <see cref="P:CSVideoPlayer.cMediaPlayer.MediaCore"/> state.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.Dispose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.BindProperty(System.Windows.DependencyObject,System.Windows.DependencyProperty,System.Windows.DependencyObject,System.String,System.Windows.Data.BindingMode)">
            <summary>
            Binds the property.
            </summary>
            <param name="target">The target.</param>
            <param name="targetProperty">The target property.</param>
            <param name="source">The source.</param>
            <param name="sourcePath">The source path.</param>
            <param name="mode">The mode.</param>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.OnCoerceContentValue(System.Windows.DependencyObject,System.Object)">
            <summary>
            Called when [coerce content value].
            </summary>
            <param name="d">The d.</param>
            <param name="baseValue">The base value.</param>
            <returns>The content property value.</returns>
            <exception cref="T:System.InvalidOperationException">When content has been locked.</exception>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.GetFFmpegDir">
            <summary>
            Initializes the component.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.Init(System.String)">
            <summary>
            Initializes the component.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.InitializeComponent">
            <summary>
            Initializes the component.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.HandleVideoViewLayoutUpdates(System.Object,System.EventArgs)">
            <summary>
            Handles the video view layout updates.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:System.EventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="alsoManaged"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.FFmpegMessageLogged">
            <summary>
            Occurs when a logging message from the FFmpeg library has been received.
            This is shared across all instances of Media Elements.
            </summary>
            <remarks>
            This event is raised on a background thread.
            All interaction with UI elements requires calls on their corresponding dispatcher.
            </remarks>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.RenderingVideo">
            <summary>
            Occurs right before the video is presented on the screen.
            You can update the pixels on the bitmap before it is rendered on the screen.
            Or you could take a screen shot.
            Ensure you handle this very quickly as it runs on the UI thread.
            </summary>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.RenderingAudio">
            <summary>
            Occurs right before the audio is added to the audio buffer.
            You can update the bytes before they are queued.
            Ensure you handle this quickly before you get choppy audio.
            </summary>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.RenderingSubtitles">
            <summary>
            Occurs right before the subtitles are rendered.
            You can update the text.
            Ensure you handle this quickly before you get choppy subtitles.
            </summary>
        </member>
        <member name="E:CSVideoPlayer.cMediaPlayer.AudioDeviceStopped">
            <summary>
            Occurs when the currently selected audio device stops or loses its buffer.
            Call the <see cref="M:CSVideoPlayer.cMediaPlayer.ChangeMedia"/> method and select a new audio device
            in order to output to a new audio device
            </summary>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.RaiseRenderingVideoEvent(CSVideoPlayer.VideoBlock,CSVideoPlayer.BitmapDataBuffer,System.TimeSpan)">
            <summary>
            Raises the rendering video event.
            </summary>
            <param name="videoBlock">The block.</param>
            <param name="bitmap">The bitmap.</param>
            <param name="clock">The clock.</param>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.RaiseRenderingAudioEvent(System.Byte[],System.Int32,System.TimeSpan,System.TimeSpan,System.TimeSpan)">
            <summary>
            Raises the rendering audio event.
            </summary>
            <param name="buffer">The audio buffer.</param>
            <param name="bufferLength">Length of the buffer.</param>
            <param name="startTime">The start time.</param>
            <param name="duration">The duration.</param>
            <param name="latency">The latency between the current buffer position and the real-time playback clock.</param>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.RaiseRenderingSubtitlesEvent(CSVideoPlayer.SubtitleBlock,System.TimeSpan)">
            <summary>
            Raises the rendering subtitles event.
            Returning true cancels the rendering of subtitles.
            </summary>
            <param name="block">The block.</param>
            <param name="clock">The clock.</param>
            <returns>True if the rendering should be prevented.</returns>
        </member>
        <member name="M:CSVideoPlayer.cMediaPlayer.RaiseAudioDeviceStoppedEvent">
            <summary>
            Raises the audio device stopped event.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.IsDesignPreviewEnabled">
            <summary>
            Gets or sets a value that indicates whether the MediaElement will display
            a preview image in design time. This is a dependency property.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.cMediaPlayer.IsDesignPreviewEnabledProperty">
            <summary>
            The DependencyProperty for the MediaElement.IsDesignPreviewEnabled property.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.Volume">
            <summary>
            Gets/Sets the Volume property on the MediaElement.
            Note: Valid values are from 0 to 1.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.cMediaPlayer.VolumeProperty">
            <summary>
            The DependencyProperty for the MediaElement.Volume property.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.Balance">
            <summary>
            Gets/Sets the Balance property on the MediaElement.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.cMediaPlayer.BalanceProperty">
            <summary>
            The DependencyProperty for the MediaElement.Balance property.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.IsMuted">
            <summary>
            Gets/Sets the IsMuted property on the MediaElement.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.cMediaPlayer.IsMutedProperty">
            <summary>
            The DependencyProperty for the MediaElement.IsMuted property.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.SpeedRatio">
            <summary>
            Gets/Sets the SpeedRatio property on the MediaElement.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.cMediaPlayer.SpeedRatioProperty">
            <summary>
            The DependencyProperty for the MediaElement.SpeedRatio property.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.Position">
            <summary>
            Gets/Sets the Position property on the MediaElement.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.cMediaPlayer.PositionProperty">
            <summary>
            The DependencyProperty for the MediaElement.Position property.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.ScrubbingEnabled">
            <summary>
            Gets or sets a value that indicates whether the MediaElement will update frames
            for seek operations while paused. This is a dependency property.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.cMediaPlayer.ScrubbingEnabledProperty">
            <summary>
            The DependencyProperty for the MediaElement.ScrubbingEnabled property.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.LoadedBehavior">
            <summary>
            Specifies the action that the media element should execute when it
            is loaded. The default behavior is that it is under manual control
            (i.e. the caller should call methods such as Play in order to play
            the media). If a source is set, then the default behavior changes to
            to be playing the media. If a source is set and a loaded behavior is
            also set, then the loaded behavior takes control.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.cMediaPlayer.LoadedBehaviorProperty">
            <summary>
            The DependencyProperty for the MediaElement.LoadedBehavior property.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.UnloadedBehavior">
            <summary>
            Specifies how the underlying media engine's resources should be handled when
            the unloaded event gets fired. The default behavior is to Close and release the resources.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.cMediaPlayer.UnloadedBehaviorProperty">
            <summary>
            The DependencyProperty for the MediaElement.UnloadedBehavior property.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.LoopingBehavior">
            <summary>
            Specifies how the media should behave when it has ended. The default behavior is to Pause the media.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.cMediaPlayer.LoopingBehaviorProperty">
            <summary>
            The DependencyProperty for the MediaElement.LoopingBehavior property.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.ClosedCaptionsChannel">
            <summary>
            Gets/Sets the ClosedCaptionsChannel property on the MediaElement.
            Note: Valid values are from 0 to 1.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.cMediaPlayer.ClosedCaptionsChannelProperty">
            <summary>
            The DependencyProperty for the MediaElement.ClosedCaptionsChannel property.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.Stretch">
            <summary>
            Gets/Sets the Stretch on this MediaElement.
            The Stretch property determines how large the MediaElement will be drawn.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.cMediaPlayer.StretchProperty">
            <summary>
            DependencyProperty for Stretch property.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.StretchDirection">
            <summary>
            Gets/Sets the stretch direction of the ViewBox, which determines the restrictions on
            scaling that are applied to the content inside the ViewBox.  For instance, this property
            can be used to prevent the content from being smaller than its native size or larger than
            its native size.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.cMediaPlayer.StretchDirectionProperty">
            <summary>
            DependencyProperty for StretchDirection property.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.cMediaPlayer.IgnorePixelAspectRatio">
            <summary>
            Gets/Sets the stretch direction of the ViewBox, which determines the restrictions on
            scaling that are applied to the content inside the ViewBox.  For instance, this property
            can be used to prevent the content from being smaller than its native size or larger than
            its native size.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.cMediaPlayer.IgnorePixelAspectRatioProperty">
            <summary>
            DependencyProperty for StretchDirection property.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.ClassProxy`1">
            <summary>
            Represents a proxy for the properties exposed by the gicen type.
            </summary>
            <typeparam name="T">The type that this proxy represents.</typeparam>
        </member>
        <member name="M:CSVideoPlayer.ClassProxy`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.ClassProxy`1"/> class.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ClassProxy`1.#ctor(System.Func{System.Reflection.PropertyInfo,System.Boolean})">
            <summary>Initializes a new instance of the <see cref="T:CSVideoPlayer.ClassProxy`1"/> class.</summary>
            <param name="matchClause">The match clause.</param>
        </member>
        <member name="P:CSVideoPlayer.ClassProxy`1.Properties">
            <summary>
            Gets the property proxies for this class.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClassProxy`1.PropertyNames">
            <summary>
            Gets the registered property names.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClassProxy`1.ReadOnlyPropertyNames">
            <summary>
            Gets the read only property names.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClassProxy`1.ReadWritePropertyNames">
            <summary>
            Gets the property names that are both, readable and writable.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClassProxy`1.Item(`0,System.String)">
            <summary>
            Gets or sets the value of the specified property, with the specified instance.
            </summary>
            <value>
            The value to set.
            </value>
            <param name="instance">The instance.</param>
            <param name="propertyName">Name of the property.</param>
            <returns>The value of the property.</returns>
        </member>
        <member name="P:CSVideoPlayer.ClassProxy`1.Item(System.String)">
            <summary>
            Gets the <see cref="T:CSVideoPlayer.IPropertyProxy"/> for the specified property name.
            </summary>
            <value>
            The <see cref="T:CSVideoPlayer.IPropertyProxy"/>.
            </value>
            <param name="propertyName">Name of the property.</param>
            <returns>The property proxy.</returns>
        </member>
        <member name="M:CSVideoPlayer.ClassProxy`1.RetrieveProperties">
            <summary>
            Retrieves the property information for the properties of the specified type.
            </summary>
            <returns>A collection of property information objects.</returns>
        </member>
        <member name="M:CSVideoPlayer.ClassProxy`1.CreatePropertyProxy(System.Reflection.PropertyInfo)">
            <summary>
            Creates an instance of the property proxy without the need to specify type argument explicitly.
            </summary>
            <param name="propertyInfo">The property information.</param>
            <returns>The property proxy containing metadata a nd getter and setter delegates.</returns>
        </member>
        <member name="T:CSVideoPlayer.IGuiContext">
            <summary>
            Provides platform-specific methods sensible to a UI context.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IGuiContext.InvokeAsync(System.Action)">
            <summary>
            Invokes a task on the GUI thread with the possibility of awaiting it.
            </summary>
            <param name="callback">The callback.</param>
            <returns>The awaitable task.</returns>
        </member>
        <member name="M:CSVideoPlayer.IGuiContext.EnqueueInvoke(System.Action)">
            <summary>
            Invokes a task on the GUI thread and does not await it.
            </summary>
            <param name="callback">The callback.</param>
        </member>
        <member name="T:CSVideoPlayer.IPropertyProxy">
            <summary>
            Defines methods and properties for a proxy related to a property
            containing getter and setter delegates along with property metadata.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IPropertyProxy.Name">
            <summary>
            Gets the property name.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IPropertyProxy.Type">
            <summary>
            Gets the property type.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IPropertyProxy.CanRead">
            <summary>
            Gets a value indicating whether this property has a getter.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IPropertyProxy.CanWrite">
            <summary>
            Gets a value indicating whether this property has a setter.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IPropertyProxy.GetValue(System.Object)">
            <summary>
            Calls the getter method for the property on the specified instance.
            </summary>
            <param name="instance">The instance.</param>
            <returns>The value of the property.</returns>
        </member>
        <member name="M:CSVideoPlayer.IPropertyProxy.SetValue(System.Object,System.Object)">
            <summary>
            Calls the setter method for the property on the specified instance.
            </summary>
            <param name="instance">The instance.</param>
            <param name="value">The value.</param>
        </member>
        <member name="T:CSVideoPlayer.MediaConnector">
            <summary>
            The Media engine connector.
            </summary>
            <seealso cref="T:CSVideoPlayer.IMediaConnector" />
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.#ctor(CSVideoPlayer.cMediaPlayer)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaConnector"/> class.
            </summary>
            <param name="parent">The control.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.OnBufferingEnded(CSVideoPlayer.MediaEngine)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.OnBufferingStarted(CSVideoPlayer.MediaEngine)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.OnMediaClosed(CSVideoPlayer.MediaEngine)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.OnMediaEnded(CSVideoPlayer.MediaEngine)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.OnMediaFailed(CSVideoPlayer.MediaEngine,System.Exception)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.OnMediaOpened(CSVideoPlayer.MediaEngine,CSVideoPlayer.MediaInfo)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.OnMediaOpening(CSVideoPlayer.MediaEngine,CSVideoPlayer.MediaOptions,CSVideoPlayer.MediaInfo)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.OnMediaChanging(CSVideoPlayer.MediaEngine,CSVideoPlayer.MediaOptions,CSVideoPlayer.MediaInfo)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.OnMediaChanged(CSVideoPlayer.MediaEngine,CSVideoPlayer.MediaInfo)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.OnMediaInitializing(CSVideoPlayer.MediaEngine,CSVideoPlayer.ContainerConfiguration,System.String)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.OnMessageLogged(CSVideoPlayer.MediaEngine,CSVideoPlayer.LoggingMessage)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.OnSeekingEnded(CSVideoPlayer.MediaEngine)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.OnSeekingStarted(CSVideoPlayer.MediaEngine)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.OnPositionChanged(CSVideoPlayer.MediaEngine,System.TimeSpan,System.TimeSpan)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.OnMediaStateChanged(CSVideoPlayer.MediaEngine,CSVideoPlayer.MediaPlaybackState,CSVideoPlayer.MediaPlaybackState)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.OnPacketRead(FFmpeg.AutoGen.AVPacket*,FFmpeg.AutoGen.AVFormatContext*)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.OnVideoFrameDecoded(FFmpeg.AutoGen.AVFrame*,FFmpeg.AutoGen.AVFormatContext*)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.OnAudioFrameDecoded(FFmpeg.AutoGen.AVFrame*,FFmpeg.AutoGen.AVFormatContext*)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.OnSubtitleDecoded(FFmpeg.AutoGen.AVSubtitle*,FFmpeg.AutoGen.AVFormatContext*)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaConnector.CreateRenderer(CSVideoPlayer.MediaType,CSVideoPlayer.MediaEngine)">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.PropertyMapper">
            <summary>
            A helper class to map and process synchronization
            between media engine state properties and the MediaElement control.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.PropertyMapper.#cctor">
            <summary>
            Initializes static members of the <see cref="T:CSVideoPlayer.PropertyMapper"/> class.
            </summary>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">When a property exposed by the underlying MediaCore is not mapped.</exception>
        </member>
        <member name="P:CSVideoPlayer.PropertyMapper.MissingPropertyMappings">
            <summary>
            Contains the property names found in the Media Engine State type, but not found in the Media Element.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.PropertyMapper.SetValue(CSVideoPlayer.cMediaPlayer,System.String,System.Object)">
            <summary>
            Sets the value for the specified property name on the given instance.
            </summary>
            <param name="m">The Media Element instance.</param>
            <param name="propertyName">Name of the property.</param>
            <param name="value">The value.</param>
        </member>
        <member name="M:CSVideoPlayer.PropertyMapper.DetectReadOnlyChanges(CSVideoPlayer.cMediaPlayer,System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            Detects the properties that have changed since the last snapshot.
            </summary>
            <param name="m">The m.</param>
            <param name="lastSnapshot">The last snapshot.</param>
            <returns>A list of property names that have changed.</returns>
        </member>
        <member name="M:CSVideoPlayer.PropertyMapper.DetectReadWriteChanges(CSVideoPlayer.cMediaPlayer)">
            <summary>
            Detects which properties (that are both, readable and writable) are out of sync with the Media Engine State properties.
            </summary>
            <param name="m">The MediaElement.</param>
            <returns>A dictionary of controller properties to synchronize along with the current engine values.</returns>
        </member>
        <member name="M:CSVideoPlayer.PropertyMapper.SnapshotReadOnlyState(CSVideoPlayer.cMediaPlayer)">
            <summary>
            Snapshots the state of the read only properties as a read-only dictionary.
            </summary>
            <param name="m">The m.</param>
            <returns>The current state of all read-only properties.</returns>
        </member>
        <member name="T:CSVideoPlayer.PropertyProxy`2">
            <summary>
            Defines property metadata and delegate methods to get and set property values.
            </summary>
            <typeparam name="TClass">The type of the object.</typeparam>
            <typeparam name="TProperty">The type of the value.</typeparam>
        </member>
        <member name="M:CSVideoPlayer.PropertyProxy`2.#ctor(System.Reflection.PropertyInfo)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.PropertyProxy`2"/> class.
            </summary>
            <param name="property">The property.</param>
        </member>
        <member name="P:CSVideoPlayer.PropertyProxy`2.Name">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.PropertyProxy`2.Type">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.PropertyProxy`2.CanRead">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.PropertyProxy`2.CanWrite">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.PropertyProxy`2.CSVideoPlayer#IPropertyProxy#GetValue(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.PropertyProxy`2.CSVideoPlayer#IPropertyProxy#SetValue(System.Object,System.Object)">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.GuiContext">
            <summary>
            Provides properties and methods for the
            WPF or Windows Forms GUI Threading context.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.GuiContext.#cctor">
            <summary>
            Initializes static members of the <see cref="T:CSVideoPlayer.GuiContext"/> class.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.GuiContext.#ctor">
            <summary>
            Prevents a default instance of the <see cref="T:CSVideoPlayer.GuiContext"/> class from being created.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.GuiContext.Current">
            <summary>
            Gets the current instance.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.GuiContext.Type">
            <summary>
            Gets the type of the context.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.GuiContext.Thread">
            <summary>
            Gets the thread on which this context was created.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.GuiContext.IsValid">
            <summary>
            Returns true if this context is valid.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.GuiContext.ThreadContext">
            <summary>
            Gets the synchronization context.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.GuiContext.GuiDispatcher">
            <summary>
            Gets the GUI dispatcher. Only valid for WPF contexts.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.GuiContext.InvokeAsync(System.Action)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.GuiContext.EnqueueInvoke(System.Action)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.GuiContext.InvokeAsyncInternal(System.Windows.Threading.DispatcherPriority,System.Delegate,System.Object[])">
            <summary>
            Invokes a task on the GUI thread.
            </summary>
            <param name="priority">The priority.</param>
            <param name="callback">The callback.</param>
            <param name="arguments">The arguments.</param>
            <returns>The awaitable task.</returns>
        </member>
        <member name="T:CSVideoPlayer.GuiContextType">
            <summary>
            Enumerates GUI Context Types.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.GuiContextType.None">
            <summary>
            An invalid GUI context (console applications)
            </summary>
        </member>
        <member name="F:CSVideoPlayer.GuiContextType.WPF">
            <summary>
            A WPF GUI context (i.e. has dispatcher and is not Windows Forms)
            </summary>
        </member>
        <member name="F:CSVideoPlayer.GuiContextType.WinForms">
            <summary>
            A Windows Forms GUI Context
            </summary>
        </member>
        <member name="T:CSVideoPlayer.SoundTouch">
            <inheritdoc />
            <summary>
            SoundTouch audio processing library wrapper (SoundTouch.cs)
            Original code by
            Copyright (c) Olli Parviainen
            http://www.surina.net/soundtouch
            LGPL License
            Modified Code by:
            Mario Di Vece
            Changes:
            Set-prefixed methods to property setters
            Native wrappers to NativeMethods class name
            Adding enum with settings as defined in the header file
            Settings getters and setters as indexers
            Implemented Dispose pattern correctly.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.SoundTouch.#cctor">
            <summary>
            Initializes static members of the <see cref="T:CSVideoPlayer.SoundTouch"/> class.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.SoundTouch.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.SoundTouch"/> class.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.SoundTouch.Finalize">
            <summary>
            Finalizes an instance of the <see cref="T:CSVideoPlayer.SoundTouch"/> class.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.SoundTouch.Setting">
            <summary>
            Settings as defined in SoundTouch.h.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SoundTouch.Setting.UseAntiAliasFilter">
            <summary>
            Enable/disable anti-alias filter in pitch transposer (0 = disable)
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SoundTouch.Setting.AntiAliasFilterLength">
            <summary>
            Pitch transposer anti-alias filter length (8 .. 128 taps, default = 32)
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SoundTouch.Setting.UseQuickSeek">
            <summary>
            Enable/disable quick seeking algorithm in tempo changer routine
            (enabling quick seeking lowers CPU utilization but causes a minor sound
             quality compromising)
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SoundTouch.Setting.SequenceMilliseconds">
            <summary>
            Time-stretch algorithm single processing sequence length in milliseconds. This determines
            to how long sequences the original sound is chopped in the time-stretch algorithm.
            See "STTypes.h" or README for more information.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SoundTouch.Setting.SeekWindowMilliseconds">
            <summary>
            Time-stretch algorithm seeking window length in milliseconds for algorithm that finds the
            best possible overlapping location. This determines from how wide window the algorithm
            may look for an optimal joining location when mixing the sound sequences back together.
            See "STTypes.h" or README for more information.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SoundTouch.Setting.OverlapMilliseconds">
            <summary>
            Time-stretch algorithm overlap length in milliseconds. When the chopped sound sequences
            are mixed back together, to form a continuous sound stream, this parameter defines over
            how long period the two consecutive sequences are let to overlap each other.
            See "STTypes.h" or README for more information.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SoundTouch.Setting.NominalInputSequence">
             <summary>
             Call "getSetting" with this ID to query processing sequence size in samples.
             This value gives approximate value of how many input samples you'll need to
             feed into SoundTouch after initial buffering to get out a new batch of
             output samples.
            
             This value does not include initial buffering at beginning of a new processing
             stream, use SETTING_INITIAL_LATENCY to get the initial buffering size.
            
             Notices:
             - This is read-only parameter, i.e. setSetting ignores this parameter
             - This parameter value is not constant but change depending on
               tempo/pitch/rate/sample rate settings.
             </summary>
        </member>
        <member name="F:CSVideoPlayer.SoundTouch.Setting.NominalOutputSequence">
             <summary>
             Call "getSetting" with this ID to query nominal average processing output
             size in samples. This value tells approximate value how many output samples
             SoundTouch outputs once it does DSP processing run for a batch of input samples.
            
             Notices:
             - This is read-only parameter, i.e. setSetting ignores this parameter
             - This parameter value is not constant but change depending on
               tempo/pitch/rate/sample rate settings.
             </summary>
        </member>
        <member name="F:CSVideoPlayer.SoundTouch.Setting.InitialLatency">
             <summary>
             Call "getSetting" with this ID to query initial processing latency, i.e.
             approx. how many samples you'll need to enter to SoundTouch pipeline before
             you can expect to get first batch of ready output samples out.
            
             After the first output batch, you can then expect to get approx.
             SETTING_NOMINAL_OUTPUT_SEQUENCE ready samples out for every
             SETTING_NOMINAL_INPUT_SEQUENCE samples that you enter into SoundTouch.
            
             Example:
                 processing with parameter -tempo=5
                 => initial latency = 5509 samples
                    input sequence  = 4167 samples
                    output sequence = 3969 samples
            
             Accordingly, you can expect to feed in approx. 5509 samples at beginning of
             the stream, and then you'll get out the first 3969 samples. After that, for
             every approx. 4167 samples that you'll put in, you'll receive again approx.
             3969 samples out.
            
             This also means that average latency during stream processing is
             INITIAL_LATENCY-OUTPUT_SEQUENCE/2, in the above example case 5509-3969/2
             = 3524 samples
            
             Notices:
             - This is read-only parameter, i.e. setSetting ignores this parameter
             - This parameter value is not constant but change depending on
               tempo/pitch/rate/sample rate settings.
             </summary>
        </member>
        <member name="P:CSVideoPlayer.SoundTouch.Version">
            <summary>
            Get SoundTouch version string.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.SoundTouch.IsAvailable">
            <summary>
            Gets a value indicating whether the SoundTouch Library (dll) is available.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.SoundTouch.AvailableSampleCount">
            <summary>
            Returns number of processed samples currently available in SoundTouch for immediate output.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.SoundTouch.UnprocessedSampleCount">
            <summary>
            Returns number of samples currently unprocessed in SoundTouch internal buffer.
            </summary>
            <returns>Number of sample frames.</returns>
        </member>
        <member name="P:CSVideoPlayer.SoundTouch.IsEmpty">
            <summary>
            Check if there aren't any samples available for outputting.
            </summary>
            <returns>nonzero if there aren't any samples available for outputting.</returns>
        </member>
        <member name="P:CSVideoPlayer.SoundTouch.Item(CSVideoPlayer.SoundTouch.Setting)">
            <summary>
            Changes or gets a setting controlling the processing system behaviour. See the
            'SETTING_...' defines for available setting ID's.
            </summary>
            <value>
            The <see cref="T:System.Int32"/>.
            </value>
            <param name="settingId">The setting identifier.</param>
            <returns>The value of the setting.</returns>
        </member>
        <member name="M:CSVideoPlayer.SoundTouch.SetSampleRate(System.UInt32)">
            <summary>
            Sets sample rate.
            Value: Sample rate, e.g. 44100.
            </summary>
            <param name="value">The sample rate value.</param>
        </member>
        <member name="M:CSVideoPlayer.SoundTouch.SetChannels(System.UInt32)">
            <summary>
            Sets the number of channels
            Value: 1 = mono, 2 = stereo, n = multichannel.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:CSVideoPlayer.SoundTouch.SetTempo(System.Single)">
            <summary>
            Sets new tempo control value.
            Value: Tempo setting. Normal tempo = 1.0, smaller values
            represent slower tempo, larger faster tempo.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:CSVideoPlayer.SoundTouch.SetTempoChange(System.Single)">
            <summary>
            Sets new tempo control value as a difference in percents compared
            to the original tempo (-50 .. +100 %);.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:CSVideoPlayer.SoundTouch.SetRate(System.Single)">
            <summary>
            Sets new rate control value.
            Rate setting. Normal rate = 1.0, smaller values
            represent slower rate, larger faster rate.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:CSVideoPlayer.SoundTouch.SetRateChange(System.Single)">
            <summary>
            Sets new rate control value as a difference in percents compared
            to the original rate (-50 .. +100 %);
            Value: Rate setting is in %.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:CSVideoPlayer.SoundTouch.SetPitch(System.Single)">
            <summary>
            Sets new pitch control value.
            Value: Pitch setting. Original pitch = 1.0, smaller values
            represent lower pitches, larger values higher pitch.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:CSVideoPlayer.SoundTouch.SetPitchOctaves(System.Single)">
            <summary>
            Sets pitch change in octaves compared to the original pitch
            (-1.00 .. +1.00 for +- one octave);
            Value: Pitch setting in octaves.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:CSVideoPlayer.SoundTouch.SetPitchSemiTones(System.Single)">
            <summary>
            Sets pitch change in semi-tones compared to the original pitch
            (-12 .. +12 for +- one octave);
            Value: Pitch setting in semitones.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:CSVideoPlayer.SoundTouch.Flush">
            <summary>
            Flushes the last samples from the processing pipeline to the output.
            Clears also the internal processing buffers.
            Note: This function is meant for extracting the last samples of a sound
            stream. This function may introduce additional blank samples in the end
            of the sound stream, and thus it's not recommended to call this function
            in the middle of a sound stream.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.SoundTouch.Clear">
            <summary>
            Clears all the samples in the object's output and internal processing
            buffers.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.SoundTouch.PutSamples(System.Single[],System.UInt32)">
            <summary>
            Adds 'numSamples' pcs of samples from the 'samples' memory position into
            the input of the object. Notice that sample rate _has_to_ be set before
            calling this function, otherwise throws a runtime_error exception.
            </summary>
            <param name="samples">Sample buffer to input.</param>
            <param name="numSamples">Number of sample frames in buffer. Notice
            that in case of multi-channel sound a single sample frame contains
            data for all channels.</param>
        </member>
        <member name="M:CSVideoPlayer.SoundTouch.PutSamplesI16(System.Int16[],System.UInt32)">
            <summary>
            int16 version of putSamples(): This accept int16 (i.e. short) sample data
            and internally converts it to float format before processing.
            </summary>
            <param name="samples">Sample input buffer.</param>
            <param name="numSamples">Number of sample frames in buffer. Notice
            that in case of multi-channel sound a single
            sample frame contains data for all channels.</param>
        </member>
        <member name="M:CSVideoPlayer.SoundTouch.ReceiveSamples(System.Single[],System.UInt32)">
            <summary>
            Receive processed samples from the processor.
            </summary>
            <param name="outBuffer">Buffer where to copy output samples.</param>
            <param name="maxSamples">Max number of sample frames to receive.</param>
            <returns>The number of samples received.</returns>
        </member>
        <member name="M:CSVideoPlayer.SoundTouch.ReceiveSamplesI16(System.Int16[],System.UInt32)">
            <summary>
            int16 version of receiveSamples(): This converts internal float samples
            into int16 (i.e. short) return data type.
            </summary>
            <param name="outBuffer">Buffer where to copy output samples.</param>
            <param name="maxSamples">How many samples to receive at max.</param>
            <returns>Number of received sample frames.</returns>
        </member>
        <member name="M:CSVideoPlayer.SoundTouch.Dispose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SoundTouch.DisposeInternal">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.SoundTouch.NativeMethods">
            <summary>
            Provides direct access to mapped DLL methods.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.AudioRenderer">
            <summary>
            Provides Audio Output capabilities by writing samples to the default audio output device.
            </summary>
            <seealso cref="T:CSVideoPlayer.IMediaRenderer" />
            <seealso cref="T:CSVideoPlayer.IWaveProvider" />
            <seealso cref="T:System.IDisposable" />
        </member>
        <member name="M:CSVideoPlayer.AudioRenderer.#ctor(CSVideoPlayer.MediaEngine)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.AudioRenderer"/> class.
            </summary>
            <param name="mediaCore">The core media engine.</param>
        </member>
        <member name="P:CSVideoPlayer.AudioRenderer.CSVideoPlayer#ILoggingSource#LoggingHandler">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.AudioRenderer.MediaElement">
            <summary>
            Gets the parent media element (platform specific).
            </summary>
        </member>
        <member name="P:CSVideoPlayer.AudioRenderer.MediaCore">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.AudioRenderer.WaveFormat">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.AudioRenderer.BufferLatency">
            <summary>
            Gets the realtime latency of the audio buffer relative to the internal wall clock.
            A negative value means audio is ahead of the wall clock.
            A positive value means audio is behind of the wall clock.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.AudioRenderer.Position">
            <summary>
            Gets current realtime audio position.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.AudioRenderer.HasFiredAudioDeviceStopped">
            <summary>
            Gets or sets a value indicating whether this instance has fired the audio device stopped event.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AudioRenderer.Render(CSVideoPlayer.MediaBlock,System.TimeSpan)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AudioRenderer.Update(System.TimeSpan)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AudioRenderer.OnPlay">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AudioRenderer.OnPause">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AudioRenderer.OnStop">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AudioRenderer.OnClose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AudioRenderer.OnSeek">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AudioRenderer.OnStarting">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AudioRenderer.Dispose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AudioRenderer.Read(System.Byte[],System.Int32,System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AudioRenderer.OnApplicationExit(System.Object,System.Windows.ExitEventArgs)">
            <summary>
            Called when [application exit].
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:System.Windows.ExitEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:CSVideoPlayer.AudioRenderer.Initialize">
            <summary>
            Initializes the audio renderer.
            Call the Play Method to start reading samples.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AudioRenderer.Destroy">
            <summary>
            Destroys the audio renderer.
            Makes it useless.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AudioRenderer.Synchronize(System.Byte[],System.Int32,System.Int32,System.Double)">
            <summary>
            Synchronizes audio rendering to the wall clock.
            Returns true if additional samples need to be read.
            Returns false if silence has been written and no further reading is required.
            </summary>
            <param name="targetBuffer">The target buffer.</param>
            <param name="targetBufferOffset">The target buffer offset.</param>
            <param name="requestedBytes">The requested bytes.</param>
            <param name="speedRatio">The speed ratio.</param>
            <returns>
            True to continue processing. False to write silence.
            </returns>
        </member>
        <member name="M:CSVideoPlayer.AudioRenderer.ReadAndSlowDown(System.Int32,System.Double)">
            <summary>
            Reads from the Audio Buffer and stretches the samples to the required requested bytes.
            This will make audio samples sound stretched (low pitch).
            The result is put to the first requestedBytes count of the ReadBuffer.
            requested.
            </summary>
            <param name="requestedBytes">The requested bytes.</param>
            <param name="speedRatio">The speed ratio.</param>
        </member>
        <member name="M:CSVideoPlayer.AudioRenderer.ReadAndSpeedUp(System.Int32,System.Boolean,System.Double)">
            <summary>
            Reads from the Audio Buffer and shrinks (averages) the samples to the required requested bytes.
            This will make audio samples sound shrunken (high pitch).
            The result is put to the first requestedBytes count of the ReadBuffer.
            </summary>
            <param name="requestedBytes">The requested number of bytes.</param>
            <param name="computeAverage">if set to <c>true</c> average samples per block. Otherwise, take the first sample per block only.</param>
            <param name="speedRatio">The speed ratio.</param>
        </member>
        <member name="M:CSVideoPlayer.AudioRenderer.ReadAndUseAudioProcessor(System.Int32,System.Double)">
            <summary>
            Reads from the Audio Buffer and uses the SoundTouch audio processor to adjust tempo
            The result is put to the first requestedBytes count of the ReadBuffer.
            This feature is experimental.
            </summary>
            <param name="requestedBytes">The requested bytes.</param>
            <param name="speedRatio">The speed ratio.</param>
        </member>
        <member name="M:CSVideoPlayer.AudioRenderer.ApplyVolumeAndBalance(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Applies volume and balance to the audio samples stored in RedBuffer and writes them
            to the specified target buffer.
            </summary>
            <param name="targetBuffer">The target buffer.</param>
            <param name="targetBufferOffset">The target buffer offset.</param>
            <param name="requestedBytes">The requested number of bytes.</param>
        </member>
        <member name="T:CSVideoPlayer.ClosedCaptionsBuffer">
            <summary>
            Provides a Closed Captions packet buffer and state manager.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.ClosedCaptionsBuffer.ColumnCount">
            <summary>
            The column count of the character grid.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.ClosedCaptionsBuffer.RowCount">
            <summary>
            The row count of the character grid.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.ClosedCaptionsBuffer.MaxBufferLength">
            <summary>
            The maximum length of the individual packet buffers.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.ClosedCaptionsBuffer.DefaultBaseRowIndex">
            <summary>
            The default base row is row 11 (index 10).
            </summary>
        </member>
        <member name="F:CSVideoPlayer.ClosedCaptionsBuffer.DefaultFieldChannel">
            <summary>
            To keep track of previous data channel.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.ClosedCaptionsBuffer.DefaultScrollSize">
            <summary>
            The scroll mode (Roll Up 2/3/4) modes.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.ClosedCaptionsBuffer.DefaultStateMode">
            <summary>
            The default parser state.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.ClosedCaptionsBuffer.TimeoutSeconds">
            <summary>
            The number of seconds before a CC timeout occurs.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.ClosedCaptionsBuffer.PacketBuffer">
            <summary>
            The linear, non-demuxed packet buffer.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.ClosedCaptionsBuffer.ChannelPacketBuffer">
            <summary>
            The independent channel packet buffers.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.ClosedCaptionsBuffer.SyncLock">
            <summary>
            Prevents Writing and resetting at the same time, causing the keys to become
            invalid when processing packets.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionsBuffer.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.ClosedCaptionsBuffer"/> class.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.ClosedCaptionsBuffer.ParserStateMode">
            <summary>
            Defines the different state parsing modes.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.ClosedCaptionsBuffer.ParserStateMode.None">
            <summary>
            When no state has been detected yet.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.ClosedCaptionsBuffer.ParserStateMode.Scrolling">
            <summary>
            The direct CC display mode.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.ClosedCaptionsBuffer.ParserStateMode.Buffered">
            <summary>
            The buffered text display mode.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.ClosedCaptionsBuffer.ParserStateMode.Data">
            <summary>
            The non-display data mode.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.ClosedCaptionsBuffer.ParserStateMode.XDS">
            <summary>
            The XDS, non-display mode.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsBuffer.State">
            <summary>
            Provides access to the state of each of the character cells in the grid.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsBuffer.ScrollBaseRowIndex">
            <summary>
            Gets the index of the scroll base row.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsBuffer.ScrollSize">
            <summary>
            Gets the size of the scroll.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsBuffer.IsUnderlined">
            <summary>
            Gets a value indicating whether the current and following
            caption text packets are underlined.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsBuffer.IsItalics">
            <summary>
            Gets a value indicating whether the current and following
            caption text packets are italicized.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsBuffer.StateMode">
            <summary>
            Gets a value indicating whether this instance is in buffered mode.
            </summary>
            <value>
              <c>true</c> if this instance is in buffered mode; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsBuffer.CursorRowIndex">
            <summary>
            Gets the current row index position of the cursor.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsBuffer.CursorColumnIndex">
            <summary>
            Gets the current column index position of the cursor.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsBuffer.CurrentPacket">
            <summary>
            Gets the currently active packet.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsBuffer.WriteTag">
            <summary>
            Gets the last start time position of the video block containing the CC packets.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsBuffer.Channel">
            <summary>
            Gets currently active CC channel.
            Changing the channel resets the entire state.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsBuffer.Field1LastChannel">
            <summary>
            Gets the last channel specified by Field with parity 1.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsBuffer.Field2LastChannel">
            <summary>
            Gets the last channel specified by Field with parity 2.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsBuffer.LastReceiveTime">
            <summary>
            Gets the last receive time of the current channel.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionsBuffer.SetText(System.Int32,System.String)">
            <summary>
            Sets the specified text on the given line.
            </summary>
            <param name="rowIndex">Index of the row.</param>
            <param name="text">The text.</param>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionsBuffer.Write(CSVideoPlayer.VideoBlock,CSVideoPlayer.MediaEngine)">
            <summary>
            Writes the packets and demuxes them into its independent channel buffers.
            </summary>
            <param name="currentBlock">The current block.</param>
            <param name="mediaCore">The media core.</param>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionsBuffer.Reset">
            <summary>
            Resets all the state variables and internal buffers
            to their default values.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionsBuffer.UpdateState(CSVideoPlayer.CaptionsChannel,System.TimeSpan)">
            <summary>
            Updates the state using the packets that were demuxed into the specified channel.
            This can be called outside the GUI thread.
            </summary>
            <param name="channel">The channel.</param>
            <param name="clockPosition">The clock position.</param>
            <returns>A boolean to determine if the display needs repainting.</returns>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionsBuffer.TrimBuffer(System.Collections.Generic.IDictionary{System.Int64,CSVideoPlayer.ClosedCaptionPacket})">
            <summary>
            Trims the packet buffer to the maximum allowable length.
            </summary>
            <param name="buffer">The buffer.</param>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionsBuffer.TrimBuffers">
            <summary>
            Trims all the packet buffers to their maximum allowable length.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.ClosedCaptionsCell">
            <summary>
            Represents a grid cell state containing a Display and a back-buffer
            of a character and its properties.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionsCell.#ctor(System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.ClosedCaptionsCell" /> class.
            </summary>
            <param name="rowIndex">Index of the row.</param>
            <param name="columnIndex">Index of the column.</param>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsCell.RowIndex">
            <summary>
            Gets the index of the row this cell belongs to.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsCell.ColumnIndex">
            <summary>
            Gets the index of the column this cell belongs to.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsCell.Display">
            <summary>
            Gets or sets the character.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsCell.Buffer">
            <summary>
            Gets or sets the buffered character.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionsCell.DisplayBuffer">
            <summary>
            Copies the buffer content on to the display content
            and clears the buffer content.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionsCell.Reset">
            <summary>
            Resets the entire state and contents of this cell.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.ClosedCaptionsCellState">
            <summary>
            Contains single-character text and its attributes.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsCellState.Text">
            <summary>
            Gets the character as a string.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsCellState.Character">
            <summary>
            Gets or sets the character.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsCellState.Opacity">
            <summary>
            Gets or sets the opacity (from 0.0 to 1.0 opaque).
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsCellState.Foreground">
            <summary>
            Gets or sets the foreground text color.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsCellState.Background">
            <summary>
            Gets or sets the background color.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsCellState.IsUnderlined">
            <summary>
            Gets or sets a value indicating whether this instance is underline.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionsCellState.IsItalics">
            <summary>
            Gets or sets a value indicating whether this instance is italics.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionsCellState.CopyFrom(CSVideoPlayer.ClosedCaptionsCellState)">
            <summary>
            Copies text and attributes from another cell state content.
            </summary>
            <param name="cell">The cell.</param>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionsCellState.Clear">
            <summary>
            Clears the text and its attributes.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.ClosedCaptionsControl">
            <summary>
            A control that renders Closed Captions.
            </summary>
            <seealso cref="T:System.Windows.Controls.Viewbox" />
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionsControl.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.ClosedCaptionsControl"/> class.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionsControl.SendPackets(CSVideoPlayer.VideoBlock,CSVideoPlayer.MediaEngine)">
            <summary>
            Sends the packets to the CC packet buffer for state management.
            </summary>
            <param name="currentBlock">The current block.</param>
            <param name="mediaCore">The media core.</param>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionsControl.Render(CSVideoPlayer.CaptionsChannel,System.TimeSpan)">
            <summary>
            Updates the CC Packet State Buffer and Renders it.
            </summary>
            <param name="channel">The channel.</param>
            <param name="clockPosition">The clock position.</param>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionsControl.Reset">
            <summary>
            Resets the CC Packet State Buffer and Renders it.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionsControl.InitializeComponent">
            <summary>
            Initializes the component.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionsControl.PaintBuffer">
            <summary>
            Takes the current state of the CC packet buffer and projects the visual properties
            on to the CC visual grid of characters.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.ElementHostBase`1">
            <summary>
            Provides a base class for a framework element that is capable of
            being hosted on its own dispatcher. This allows for multi threaded
            UI composition.
            </summary>
            <typeparam name="T">The contained framework element.</typeparam>
            <seealso cref="T:System.Windows.FrameworkElement" />
        </member>
        <member name="F:CSVideoPlayer.ElementHostBase`1.ElementLoadedEvent">
            <summary>
            The thread separated control loaded event.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ElementHostBase`1.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.ElementHostBase`1"/> class.
            </summary>
            <param name="hasOwnDispatcher">if set to <c>true</c>, it creates its own separate thread and associated dispatcher.</param>
        </member>
        <member name="E:CSVideoPlayer.ElementHostBase`1.ElementLoaded">
            <summary>
            Occurs when the thread separated control loads.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ElementHostBase`1.HasOwnDispatcher">
            <summary>
            Gets a value indicating whether this instance is running on its own dispatcher.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ElementHostBase`1.PreventShutdown">
            <summary>
            Gets or sets if the independent dispatcher should be prevented
            from being shutdown when the host visual is removed from the visual tree (unloaded).
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ElementHostBase`1.ElementDispatcher">
            <summary>
            Gets the dispatcher this element is hosted on.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ElementHostBase`1.Element">
            <summary>
            Provides access to the framework element hosted within this element.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ElementHostBase`1.AvailableSize">
            <summary>
            Gets the available render area.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ElementHostBase`1.Host">
            <summary>
            Gets the host visual. This becomes the root element of this control
            that glues the presentation source running on a different dispatcher
            to the main UI dispatcher.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ElementHostBase`1.VisualChildrenCount">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.ElementHostBase`1.LogicalChildren">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.ElementHostBase`1.PresentationSource">
            <summary>
            Gets or sets the presentation source which roots the visual elements on
            the independent dispatcher.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ElementHostBase`1.InvokeAsync(System.Action)">
            <summary>
            Invokes the specified action on the hosted visual element's dispatcher.
            </summary>
            <param name="action">The action.</param>
            <returns>The awaitable operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.ElementHostBase`1.InvokeAsync(System.Windows.Threading.DispatcherPriority,System.Action)">
            <summary>
            Invokes the specified action on the hosted visual element's dispatcher.
            </summary>
            <param name="priority">The priority.</param>
            <param name="action">The action.</param>
            <returns>The awaitable operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.ElementHostBase`1.Dispose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.ElementHostBase`1.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="alsoManaged"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="M:CSVideoPlayer.ElementHostBase`1.OnInitialized(System.EventArgs)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.ElementHostBase`1.GetVisualChild(System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.ElementHostBase`1.CreateHostedElement">
            <summary>
            Creates the element contained by this host.
            </summary>
            <returns>An instance of the framework element to be hosted.</returns>
        </member>
        <member name="M:CSVideoPlayer.ElementHostBase`1.ArrangeOverride(System.Windows.Size)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.ElementHostBase`1.MeasureOverride(System.Windows.Size)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.ElementHostBase`1.HandleUnloadedEvent(System.Object,System.EventArgs)">
            <summary>
            Handles the unloaded event.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:System.EventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:CSVideoPlayer.ElementHostBase`1.GetElementProperty``1(System.Windows.DependencyProperty)">
            <summary>
            Gets the element property.
            </summary>
            <typeparam name="TValue">The property type.</typeparam>
            <param name="property">The property.</param>
            <returns>The value.</returns>
        </member>
        <member name="M:CSVideoPlayer.ElementHostBase`1.SetElementProperty``1(System.Windows.DependencyProperty,``0)">
            <summary>
            Sets the element property.
            </summary>
            <typeparam name="TValue">The value type.</typeparam>
            <param name="property">The property.</param>
            <param name="value">The value.</param>
        </member>
        <member name="M:CSVideoPlayer.ElementHostBase`1.HandleLoadedEvent(System.Object,System.Windows.RoutedEventArgs)">
            <summary>
            Handles the loaded event.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:System.Windows.RoutedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="T:CSVideoPlayer.ElementHostBase`1.HostedPresentationSource">
            <summary>
            A presentation source class to root a Visual (a HostVisual) on to its own visual tree.
            </summary>
            <seealso cref="T:System.Windows.FrameworkElement" />
        </member>
        <member name="M:CSVideoPlayer.ElementHostBase`1.HostedPresentationSource.#ctor(System.Windows.Media.HostVisual)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.ElementHostBase`1.HostedPresentationSource"/> class.
            </summary>
            <param name="host">The host.</param>
        </member>
        <member name="P:CSVideoPlayer.ElementHostBase`1.HostedPresentationSource.RootVisual">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.ElementHostBase`1.HostedPresentationSource.IsDisposed">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.ElementHostBase`1.HostedPresentationSource.Dispose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.ElementHostBase`1.HostedPresentationSource.GetCompositionTargetCore">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.ElementHostBase`1.HostedPresentationSource.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="alsoManaged"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="T:CSVideoPlayer.ImageHost">
            <summary>
            Implements an Image control that is hosted on its own independent dispatcher
            but maintains composability with the main UI.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ImageHost.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.ImageHost"/> class.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ImageHost.Source">
            <summary>
            Gets or sets the source.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ImageHost.Stretch">
            <summary>
            Gets or sets the stretch.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ImageHost.StretchDirection">
            <summary>
            Gets or sets the stretch direction.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ImageHost.CreateHostedElement">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.SubtitleRenderer">
            <summary>
            Subtitle Renderer - Does nothing at this point.
            </summary>
            <seealso cref="T:CSVideoPlayer.IMediaRenderer" />
        </member>
        <member name="F:CSVideoPlayer.SubtitleRenderer.SyncLock">
            <summary>
            The synchronize lock.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SubtitleRenderer.BlockText">
            <summary>
            Holds the text to be rendered when the Update method is called.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SubtitleRenderer.RenderedText">
            <summary>
            Holds the text that was last rendered when Update was called.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.SubtitleRenderer.#ctor(CSVideoPlayer.MediaEngine)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.SubtitleRenderer"/> class.
            </summary>
            <param name="mediaCore">The core media element.</param>
        </member>
        <member name="P:CSVideoPlayer.SubtitleRenderer.CSVideoPlayer#ILoggingSource#LoggingHandler">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.SubtitleRenderer.MediaElement">
            <summary>
            Gets the parent media element (platform specific).
            </summary>
        </member>
        <member name="P:CSVideoPlayer.SubtitleRenderer.MediaCore">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SubtitleRenderer.OnClose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SubtitleRenderer.OnPause">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SubtitleRenderer.OnPlay">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SubtitleRenderer.OnStop">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SubtitleRenderer.OnSeek">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SubtitleRenderer.OnStarting">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SubtitleRenderer.Render(CSVideoPlayer.MediaBlock,System.TimeSpan)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SubtitleRenderer.Update(System.TimeSpan)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SubtitleRenderer.SetText(System.String)">
            <summary>
            Sets the text to be rendered on the text blocks.
            Returns immediately because it queues the action on the UI thread.
            </summary>
            <param name="text">The text.</param>
        </member>
        <member name="T:CSVideoPlayer.SubtitlesControl">
            <summary>
            A control suitable for displaying subtitles.
            Layout is: UserControl:ViewBox:Grid:TextBlocks.
            </summary>
            <seealso cref="T:System.Windows.Controls.UserControl" />
        </member>
        <member name="F:CSVideoPlayer.SubtitlesControl.DefaultFontSize">
            <summary>
            The default font size.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SubtitlesControl.DefaultTextForeground">
            <summary>
            The default text foreground.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SubtitlesControl.DefaultTextOutline">
            <summary>
            The default text outline.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SubtitlesControl.DefaultTextOutlineWidth">
            <summary>
            The default text outline width.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SubtitlesControl.TextProperty">
            <summary>
            The text dependency property.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SubtitlesControl.TextForegroundProperty">
            <summary>
            The text foreground dependency property.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SubtitlesControl.TextForegroundEffectProperty">
            <summary>
            The text foreground effect dependency property.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SubtitlesControl.TextOutlineWidthProperty">
            <summary>
            The text outline width dependency property.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SubtitlesControl.TextOutlineProperty">
            <summary>
            The text outline dependency property.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SubtitlesControl.TextBlocks">
            <summary>
            Holds the text blocks that together create an outlined subtitle text display.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SubtitlesControl.Container">
            <summary>
            The container for the outlined text blocks.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SubtitlesControl.CondenseTransform">
            <summary>
            A Layout transform to condense text.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.SubtitlesControl.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.SubtitlesControl"/> class.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.SubtitlesControl.Text">
            <summary>
            Gets or sets the text contents of this text block.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.SubtitlesControl.TextForeground">
            <summary>
            Gets or sets the text foreground.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.SubtitlesControl.TextOutline">
            <summary>
            Gets or sets the text outline.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.SubtitlesControl.TextOutlineWidth">
            <summary>
            Gets or sets the text outline width.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.SubtitlesControl.TextForegroundEffect">
            <summary>
            Gets or sets the text foreground effect.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.SubtitlesControl.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SubtitlesControl.ComputeMargin(CSVideoPlayer.SubtitlesControl.Block,System.Windows.Thickness)">
            <summary>
            Computes the margin according to the block type.
            </summary>
            <param name="blockType">Type of the block.</param>
            <param name="outlineWidth">Width of the outline.</param>
            <returns>A thickness depending on the block type.</returns>
        </member>
        <member name="M:CSVideoPlayer.SubtitlesControl.GetDefaultTextForegroundEffect">
            <summary>
            Gets the default text foreground effect.
            </summary>
            <returns>A new instance of a foreground effect.</returns>
        </member>
        <member name="T:CSVideoPlayer.VideoRenderer">
            <summary>
            Provides Video Image Rendering via a WPF Writable Bitmap.
            </summary>
            <seealso cref="T:CSVideoPlayer.IMediaRenderer" />
        </member>
        <member name="F:CSVideoPlayer.VideoRenderer.MediaPixelFormats">
            <summary>
            Contains an equivalence lookup of FFmpeg pixel format and WPF pixel formats.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.VideoRenderer.RenderStopwatch">
            <summary>
            Keeps track of the elapsed time since the last frame was displayed.
            for frame limiting purposes.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.VideoRenderer.IsRenderingInProgress">
            <summary>
            Set when a bitmap is being written to the target bitmap.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.VideoRenderer.m_TargetBitmap">
            <summary>
            The bitmap that is presented to the user.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.VideoRenderer.TargetBitmapData">
            <summary>
            The reference to a bitmap data bound to the target bitmap.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoRenderer.#ctor(CSVideoPlayer.MediaEngine)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.VideoRenderer"/> class.
            </summary>
            <param name="mediaCore">The core media element.</param>
        </member>
        <member name="P:CSVideoPlayer.VideoRenderer.CSVideoPlayer#ILoggingSource#LoggingHandler">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.VideoRenderer.MediaElement">
            <summary>
            Gets the parent media element (platform specific).
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoRenderer.MediaCore">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.VideoRenderer.DpiX">
            <summary>
            Gets the DPI along the X axis.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoRenderer.DpiY">
            <summary>
            Gets the DPI along the Y axis.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoRenderer.VideoDispatcher">
            <summary>
            Gets the video dispatcher.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoRenderer.ControlDispatcher">
            <summary>
            Gets the control dispatcher.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoRenderer.TargetBitmap">
            <summary>
            Gets or sets the target bitmap.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoRenderer.IsRenderTime">
            <summary>
            Gets a value indicating whether it is time to render after applying frame rate limiter.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoRenderer.OnPlay">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.VideoRenderer.OnPause">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.VideoRenderer.OnStop">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.VideoRenderer.OnSeek">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.VideoRenderer.OnStarting">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.VideoRenderer.Update(System.TimeSpan)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.VideoRenderer.Render(CSVideoPlayer.MediaBlock,System.TimeSpan)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.VideoRenderer.OnClose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.VideoRenderer.PrepareVideoFrameBuffer(CSVideoPlayer.VideoBlock)">
            <summary>
            Initializes the target bitmap if not available and returns a pointer to the back-buffer for filling.
            </summary>
            <param name="block">The block.</param>
        </member>
        <member name="M:CSVideoPlayer.VideoRenderer.WriteVideoFrameBuffer(CSVideoPlayer.VideoBlock,System.TimeSpan)">
            <summary>
            Loads that target data buffer with block data.
            </summary>
            <param name="block">The source.</param>
            <param name="clockPosition">Current clock position.</param>
        </member>
        <member name="M:CSVideoPlayer.VideoRenderer.ApplyLayoutTransforms(CSVideoPlayer.VideoBlock)">
            <summary>
            Applies the scale transform according to the block's aspect ratio.
            </summary>
            <param name="b">The b.</param>
        </member>
        <member name="T:CSVideoPlayer.DirectSoundDeviceData">
            <summary>
            Class for enumerating DirectSound devices.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DirectSoundDeviceData.Guid">
            <summary>
            The device identifier.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DirectSoundDeviceData.Description">
            <summary>
            Device description.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DirectSoundDeviceData.ModuleName">
            <summary>
            Device module name.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.DirectSoundPlayer">
            <summary>
            NativeDirectSoundOut using DirectSound COM interop.
            Contact author: Alexandre Mutel - alexandre_mutel at yahoo.fr
            Modified by: Graham "Gee" Plumb.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.DirectSoundPlayer.DefaultPlaybackDeviceId">
            <summary>
            DirectSound default playback device GUID.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.#ctor(CSVideoPlayer.AudioRenderer,System.Guid)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.DirectSoundPlayer" /> class.
            (40ms seems to work under Vista).
            </summary>
            <param name="renderer">The renderer.</param>
            <param name="deviceId">Selected device.</param>
        </member>
        <member name="P:CSVideoPlayer.DirectSoundPlayer.CSVideoPlayer#ILoggingSource#LoggingHandler">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.DirectSoundPlayer.Renderer">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.DirectSoundPlayer.PlaybackState">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.DirectSoundPlayer.IsRunning">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.DirectSoundPlayer.DesiredLatency">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.EnumerateDevices">
            <summary>
            Gets the DirectSound output devices in the system.
            </summary>
            <returns>The available DirectSound devices.</returns>
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.Start">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.Clear">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.ExecuteCycleLogic(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.OnCycleException(System.Exception)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.OnDisposing">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.Dispose(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.EnumerateDevicesCallback(System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr)">
            <summary>
            Enumerates the devices.
            </summary>
            <param name="deviceGuidPtr">The device unique identifier pointer.</param>
            <param name="descriptionPtr">The description string pointer.</param>
            <param name="modulePtr">The module string pointer.</param>
            <param name="contextPtr">The context pointer.</param>
            <returns>The devices.</returns>
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.CreatePositionNotification(System.Threading.WaitHandle,System.UInt32)">
            <summary>
            Creates a DirectSound position notification.
            </summary>
            <param name="eventHandle">The event handle.</param>
            <param name="offset">The offset.</param>
            <returns>A DirectSound Position Notification.</returns>
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.InitializeDirectSound">
            <summary>
            Initializes the direct sound.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.IsBufferLost">
            <summary>
            Determines whether the SecondaryBuffer is lost.
            </summary>
            <returns>
            <c>true</c> if [is buffer lost]; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.MillisToBytes(System.Int32)">
            <summary>
            Convert ms to bytes size according to WaveFormat.
            </summary>
            <param name="millis">The milliseconds.</param>
            <returns>number of bytes.</returns>
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.ClearBackBuffer">
            <summary>
            Clean up the SecondaryBuffer.
            </summary>
            <remarks>
            <para>
            In DirectSound, when playback is started,
            the rest of the sound that was played last time is played back as noise.
            This happens even if the secondary buffer is completely silenced,
            so it seems that the buffer in the primary buffer or higher is not cleared.
            </para>
            <para>
            To solve this problem fill the secondary buffer with silence data when stop playback.
            </para>
            </remarks>
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.FeedBackBuffer(System.Int32)">
            <summary>
            Feeds the SecondaryBuffer with the WaveStream.
            </summary>
            <param name="bytesToCopy">number of bytes to feed.</param>
            <returns>The number of bytes that were read.</returns>
        </member>
        <member name="F:CSVideoPlayer.DirectSoundPlayer.DirectSound.DefaultCaptureDeviceId">
            <summary>
            DirectSound default capture device GUID.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.DirectSoundPlayer.DirectSound.DefaultVoicePlaybackDeviceId">
            <summary>
            DirectSound default device for voice playback.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.DirectSoundPlayer.DirectSound.DefaultVoiceCaptureDeviceId">
            <summary>
            DirectSound default device for voice capture.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.DirectSoundPlayer.DirectSound.EnumerateDevicesDelegate">
            <summary>
            The DSEnumCallback function is an application-defined callback function that enumerates the DirectSound drivers.
            The system calls this function in response to the application's call to the DirectSoundEnumerate or DirectSoundCaptureEnumerate function.
            </summary>
            <param name="deviceGuidPtr">Address of the GUID that identifies the device being enumerated, or NULL for the primary device. This value can be passed to the DirectSoundCreate8 or DirectSoundCaptureCreate8 function to create a device object for that driver. </param>
            <param name="descriptionPtr">Address of a null-terminated string that provides a textual description of the DirectSound device. </param>
            <param name="modulePtr">Address of a null-terminated string that specifies the module name of the DirectSound driver corresponding to this device. </param>
            <param name="contextPtr">Address of application-defined data. This is the pointer passed to DirectSoundEnumerate or DirectSoundCaptureEnumerate as the lpContext parameter. </param>
            <returns>Returns TRUE to continue enumerating drivers, or FALSE to stop.</returns>
        </member>
        <member name="T:CSVideoPlayer.DirectSoundPlayer.DirectSound.IDirectSound">
            <summary>
            IDirectSound interface.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.DirectSoundPlayer.DirectSound.IDirectSoundBuffer">
            <summary>
            IDirectSoundBuffer interface.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.DirectSoundPlayer.DirectSound.IDirectSoundNotify">
            <summary>
            IDirectSoundNotify interface.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.DirectSound.DirectSoundBufferPositionNotify.Equals(CSVideoPlayer.DirectSoundPlayer.DirectSound.DirectSoundBufferPositionNotify)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.DirectSound.DirectSoundBufferPositionNotify.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.DirectSound.DirectSoundBufferPositionNotify.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.NativeMethods.DirectSoundCreate(System.Guid@,CSVideoPlayer.DirectSoundPlayer.DirectSound.IDirectSound@,System.IntPtr)">
            <summary>
            Instantiate DirectSound from the DLL.
            </summary>
            <param name="deviceGuid">The GUID.</param>
            <param name="directSound">The direct sound.</param>
            <param name="pUnkOuter">The p unk outer.</param>
            <returns>The result code.</returns>
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.NativeMethods.DirectSoundEnumerateA(CSVideoPlayer.DirectSoundPlayer.DirectSound.EnumerateDevicesDelegate,System.IntPtr)">
            <summary>
            The DirectSoundEnumerate function enumerates the DirectSound drivers installed in the system.
            </summary>
            <param name="lpDSEnumCallback">callback function.</param>
            <param name="lpContext">User context.</param>
        </member>
        <member name="M:CSVideoPlayer.DirectSoundPlayer.NativeMethods.GetDesktopWindow">
            <summary>
            Gets the HANDLE of the desktop window.
            </summary>
            <returns>HANDLE of the Desktop window.</returns>
        </member>
        <member name="T:CSVideoPlayer.IWavePlayer">
            <summary>
            Represents the interface to a device that can play a Wave data.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IWavePlayer.PlaybackState">
            <summary>
            Current playback state.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IWavePlayer.IsRunning">
            <summary>
            Gets a value indicating whether the audio playback is running.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IWavePlayer.DesiredLatency">
            <summary>
            Gets or sets the desired latency in milliseconds
            Should be set before a call to Init.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IWavePlayer.Renderer">
            <summary>
            Gets the renderer that owns this wave player.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IWavePlayer.Start">
            <summary>
            Begin playback.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IWavePlayer.Clear">
            <summary>
            Clears the internal audio data with silence data.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.IWaveProvider">
            <summary>
            Generic interface for all WaveProviders.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IWaveProvider.WaveFormat">
            <summary>
            Gets the WaveFormat of this WaveProvider.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IWaveProvider.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Fill the specified buffer with wave data.
            </summary>
            <param name="buffer">The buffer to fill of wave data.</param>
            <param name="offset">Offset into buffer.</param>
            <param name="count">The number of bytes to read.</param>
            <returns>
            the number of bytes written to the buffer.
            </returns>
        </member>
        <member name="T:CSVideoPlayer.LegacyAudioDeviceData">
            <summary>
            WaveOutCapabilities structure (based on WAVEOUTCAPS2 from mmsystem.h).
            </summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioDeviceData.manufacturerId">
            <summary>
            wMid.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioDeviceData.productId">
            <summary>
            wPid.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioDeviceData.driverVersion">
            <summary>
            vDriverVersion.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioDeviceData.productName">
            <summary>
            Product Name.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioDeviceData.supportedFormats">
            <summary>
            Supported formats (bit flags) dwFormats.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioDeviceData.channels">
            <summary>
            Supported channels (1 for mono 2 for stereo) (wChannels)
            Seems to be set to -1 on a lot of devices.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioDeviceData.reserved">
            <summary>
            wReserved1.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.LegacyAudioDeviceData.support">
            <summary>
            Optional functionality supported by the device.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioDeviceData.Channels">
            <summary>
            Number of channels supported.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioDeviceData.SupportsPlaybackRateControl">
            <summary>
            Whether playback rate control is supported.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioDeviceData.SupportsVolumeControl">
            <summary>
            Whether volume control is supported.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioDeviceData.SupportsChannelVolumeControl">
            <summary>
            Gets a value indicating whether this device supports independent channel volume control.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioDeviceData.SupportsPitchControl">
            <summary>
            Gets a value indicating whether this device supports pitch control.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioDeviceData.SupportsSampleAccuratePosition">
            <summary>
            Gets a value indicating whether the device returns sample-accurate position information.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioDeviceData.IsSynchronousOutput">
            <summary>
            Gets a value indicating whether the driver is synchronous and will block while playing a buffer.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioDeviceData.ProductName">
            <summary>
            The product name.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioDeviceData.NameGuid">
            <summary>
            The device name Guid (if provided).
            </summary>
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioDeviceData.ProductGuid">
            <summary>
            The product name Guid (if provided).
            </summary>
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioDeviceData.ManufacturerGuid">
            <summary>
            The manufacturer guid (if provided).
            </summary>
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioDeviceData.Equals(CSVideoPlayer.LegacyAudioDeviceData)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioDeviceData.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioDeviceData.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioDeviceData.SupportsWaveFormat(CSVideoPlayer.SupportedWaveFormat)">
            <summary>
            Checks to see if a given SupportedWaveFormat is supported.
            </summary>
            <param name="waveFormat">The SupportedWaveFormat.</param>
            <returns>true if supported.</returns>
        </member>
        <member name="T:CSVideoPlayer.LegacyAudioPlayer">
            <summary>
            A wave player that opens an audio device and continuously feeds it
            with audio samples using a wave provider.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioPlayer.#ctor(CSVideoPlayer.AudioRenderer,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.LegacyAudioPlayer" /> class.
            </summary>
            <param name="renderer">The renderer.</param>
            <param name="deviceNumber">The device number.</param>
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioPlayer.CSVideoPlayer#ILoggingSource#LoggingHandler">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioPlayer.Renderer">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioPlayer.DesiredLatency">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioPlayer.NumberOfBuffers">
            <summary>
            Gets or sets the number of buffers used
            Should be set before a call to Init.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioPlayer.DeviceNumber">
            <summary>
            Gets the device number
            Should be set before a call to Init
            This must be between -1 and <see>DeviceCount</see> - 1.
            -1 means stick to default device even default device is changed.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioPlayer.PlaybackState">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioPlayer.IsRunning">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.LegacyAudioPlayer.Capabilities">
            <summary>
            Gets the capabilities.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioPlayer.EnumerateDevices">
            <summary>
            Gets the Windows Multimedia Extensions (MME) devices in the system.
            </summary>
            <returns>The available MME devices.</returns>
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioPlayer.Start">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioPlayer.Clear">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioPlayer.ExecuteCycleLogic(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioPlayer.OnCycleException(System.Exception)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioPlayer.OnDisposing">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.LegacyAudioPlayer.Dispose(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.MmTime">
            <summary>
            http://msdn.microsoft.com/en-us/library/dd757347(v=VS.85).aspx.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MmTime.Equals(CSVideoPlayer.MmTime)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MmTime.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MmTime.GetHashCode">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.PlaybackState">
            <summary>
            Enumerates the various wave output playback states.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.PlaybackState.Stopped">
            <summary>
            Stopped
            </summary>
        </member>
        <member name="F:CSVideoPlayer.PlaybackState.Playing">
            <summary>
            Playing
            </summary>
        </member>
        <member name="T:CSVideoPlayer.SupportedWaveFormat">
            <summary>
            Supported wave formats for WaveOutCapabilities.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_1M08">
            <summary>
            11.025 kHz, Mono,   8-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_1S08">
            <summary>
            11.025 kHz, Stereo, 8-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_1M16">
            <summary>
            11.025 kHz, Mono,   16-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_1S16">
            <summary>
            11.025 kHz, Stereo, 16-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_2M08">
            <summary>
            22.05  kHz, Mono,   8-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_2S08">
            <summary>
            22.05  kHz, Stereo, 8-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_2M16">
            <summary>
            22.05  kHz, Mono,   16-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_2S16">
            <summary>
            22.05  kHz, Stereo, 16-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_4M08">
            <summary>
            44.1   kHz, Mono,   8-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_4S08">
            <summary>
            44.1   kHz, Stereo, 8-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_4M16">
            <summary>
            44.1   kHz, Mono,   16-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_4S16">
            <summary>
             44.1   kHz, Stereo, 16-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_44M08">
            <summary>
            44.1   kHz, Mono,   8-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_44S08">
            <summary>
            44.1   kHz, Stereo, 8-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_44M16">
            <summary>
            44.1   kHz, Mono,   16-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_44S16">
            <summary>
            44.1   kHz, Stereo, 16-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_48M08">
            <summary>
            48     kHz, Mono,   8-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_48S08">
            <summary>
             48     kHz, Stereo, 8-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_48M16">
            <summary>
            48     kHz, Mono,   16-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_48S16">
            <summary>
            48     kHz, Stereo, 16-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_96M08">
            <summary>
            96     kHz, Mono,   8-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_96S08">
            <summary>
            96     kHz, Stereo, 8-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_96M16">
            <summary>
            96     kHz, Mono,   16-bit
            </summary>
        </member>
        <member name="F:CSVideoPlayer.SupportedWaveFormat.WAVE_FORMAT_96S16">
            <summary>
            96     kHz, Stereo, 16-bit
            </summary>
        </member>
        <member name="T:CSVideoPlayer.WaveFormat">
            <summary>
            Represents a Wave file format.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WaveFormat.formatTag">
            <summary>The format tag -- always 0x0001 PCM.</summary>
        </member>
        <member name="F:CSVideoPlayer.WaveFormat.channels">
            <summary>number of channels.</summary>
        </member>
        <member name="F:CSVideoPlayer.WaveFormat.sampleRate">
            <summary>sample rate.</summary>
        </member>
        <member name="F:CSVideoPlayer.WaveFormat.averageBytesPerSecond">
            <summary>for buffer estimation.</summary>
        </member>
        <member name="F:CSVideoPlayer.WaveFormat.blockAlign">
            <summary>block size of data.</summary>
        </member>
        <member name="F:CSVideoPlayer.WaveFormat.bitsPerSample">
            <summary>number of bits per sample of mono data.</summary>
        </member>
        <member name="F:CSVideoPlayer.WaveFormat.extraSize">
            <summary>number of following bytes.</summary>
        </member>
        <member name="M:CSVideoPlayer.WaveFormat.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.WaveFormat"/> class.
            PCM 48Khz stereo 16 bit signed, interleaved, 2-channel format.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.WaveFormat.#ctor(System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.WaveFormat"/> class.
            </summary>
            <param name="sampleRate">Sample Rate.</param>
            <param name="channels">Number of channels.</param>
        </member>
        <member name="M:CSVideoPlayer.WaveFormat.#ctor(System.Int32,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.WaveFormat"/> class.
            </summary>
            <param name="rate">The rate.</param>
            <param name="bits">The bits.</param>
            <param name="channels">The channels.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">channels - channels.</exception>
        </member>
        <member name="P:CSVideoPlayer.WaveFormat.Channels">
            <summary>
            Returns the number of channels (1=mono,2=stereo etc).
            </summary>
        </member>
        <member name="P:CSVideoPlayer.WaveFormat.SampleRate">
            <summary>
            Returns the sample rate (samples per second).
            </summary>
        </member>
        <member name="P:CSVideoPlayer.WaveFormat.AverageBytesPerSecond">
            <summary>
            Returns the average number of bytes used per second.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.WaveFormat.BlockAlign">
            <summary>
            Returns the block alignment.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.WaveFormat.BitsPerSample">
            <summary>
            Returns the number of bits per sample (usually 16 or 32, sometimes 24 or 8)
            Can be 0 for some codecs.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.WaveFormat.ExtraSize">
            <summary>
            Returns the number of extra bytes used by this wave format. Often 0,
            except for compressed formats which store extra data after the WAVEFORMATEX header.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.WaveFormat.ConvertMillisToByteSize(System.Double)">
            <summary>
            Gets the size of a wave buffer equivalent to the latency in milliseconds.
            </summary>
            <param name="milliseconds">The milliseconds.</param>
            <returns>The size.</returns>
        </member>
        <member name="M:CSVideoPlayer.WaveFormat.ConvertByteSizeToDuration(System.Int32)">
            <summary>
            Converts from byte size to duration.
            </summary>
            <param name="byteSize">Size of the byte.</param>
            <returns>The duration given the byte size.</returns>
        </member>
        <member name="M:CSVideoPlayer.WaveFormat.ToString">
            <summary>
            Reports this WaveFormat as a string.
            </summary>
            <returns>String describing the wave format.</returns>
        </member>
        <member name="M:CSVideoPlayer.WaveFormat.Equals(System.Object)">
            <summary>
            Compares with another WaveFormat object.
            </summary>
            <param name="obj">Object to compare to.</param>
            <returns>True if the objects are the same.</returns>
        </member>
        <member name="M:CSVideoPlayer.WaveFormat.GetHashCode">
            <summary>
            Provides a Hashcode for this WaveFormat.
            </summary>
            <returns>A hashcode.</returns>
        </member>
        <member name="M:CSVideoPlayer.WaveFormat.Equals(CSVideoPlayer.WaveFormat)">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.WaveHeader">
            <summary>
            WaveHeader interop structure (WAVEHDR)
            http://msdn.microsoft.com/en-us/library/dd743837%28VS.85%29.aspx.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WaveHeader.DataBuffer">
            <summary>pointer to locked data buffer (lpData).</summary>
        </member>
        <member name="F:CSVideoPlayer.WaveHeader.BufferLength">
            <summary>length of data buffer (dwBufferLength).</summary>
        </member>
        <member name="F:CSVideoPlayer.WaveHeader.BytesRecorded">
            <summary>used for input only (dwBytesRecorded).</summary>
        </member>
        <member name="F:CSVideoPlayer.WaveHeader.UserData">
            <summary>for client's use (dwUser).</summary>
        </member>
        <member name="F:CSVideoPlayer.WaveHeader.Flags">
            <summary>assorted flags (dwFlags).</summary>
        </member>
        <member name="F:CSVideoPlayer.WaveHeader.Loops">
            <summary>loop control counter (dwLoops).</summary>
        </member>
        <member name="F:CSVideoPlayer.WaveHeader.Next">
            <summary>PWaveHdr, reserved for driver (lpNext).</summary>
        </member>
        <member name="F:CSVideoPlayer.WaveHeader.Reserved">
            <summary>reserved for driver.</summary>
        </member>
        <member name="T:CSVideoPlayer.WaveHeaderFlags">
            <summary>
            Wave Header Flags enumeration.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WaveHeaderFlags.BeginLoop">
            <summary>
            This buffer is the first buffer in a loop.  This flag is used only with output buffers.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WaveHeaderFlags.Done">
            <summary>
            Set by the device driver to indicate that it is finished with the buffer and is returning it to the application.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WaveHeaderFlags.EndLoop">
            <summary>
            This buffer is the last buffer in a loop.  This flag is used only with output buffers.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WaveHeaderFlags.InQueue">
            <summary>
            Set by Windows to indicate that the buffer is queued for playback.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WaveHeaderFlags.Prepared">
            <summary>
            Set by Windows to indicate that the buffer has been prepared with the waveInPrepareHeader or waveOutPrepareHeader function.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.WaveInterop">
            <summary>
            MME Wave function interop.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WaveInterop.WaveInOutOpenFlags.CallbackNull">
            <summary>
            CALLBACK_NULL
            No callback
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WaveInterop.WaveInOutOpenFlags.CallbackFunction">
            <summary>
            CALLBACK_FUNCTION
            dwCallback is a FAR PROC
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WaveInterop.WaveInOutOpenFlags.CallbackEvent">
            <summary>
            CALLBACK_EVENT
            dwCallback is an EVENT handle
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WaveInterop.WaveInOutOpenFlags.CallbackWindow">
            <summary>
            CALLBACK_WINDOW
            dwCallback is a HWND
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WaveInterop.WaveInOutOpenFlags.CallbackThread">
            <summary>
            CALLBACK_THREAD
            callback is a thread ID
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WaveInterop.WaveMessage.WaveInOpen">
            <summary>
            WIM_OPEN
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WaveInterop.WaveMessage.WaveInClose">
            <summary>
            WIM_CLOSE
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WaveInterop.WaveMessage.WaveInData">
            <summary>
            WIM_DATA
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WaveInterop.WaveMessage.WaveOutClose">
            <summary>
            WOM_CLOSE
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WaveInterop.WaveMessage.WaveOutDone">
            <summary>
            WOM_DONE
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WaveInterop.WaveMessage.WaveOutOpen">
            <summary>
            WOM_OPEN
            </summary>
        </member>
        <member name="M:CSVideoPlayer.WaveInterop.RetrieveAudioDeviceCount">
            <summary>
            Retrieves the audio device count.
            </summary>
            <returns>The number of registered audio devices.</returns>
            <exception cref="T:System.TimeoutException">Occurs when the interop lock cannot be acquired.</exception>
        </member>
        <member name="M:CSVideoPlayer.WaveInterop.AllocateHeader(System.IntPtr,CSVideoPlayer.WaveHeader)">
            <summary>
            Allocates the header.
            </summary>
            <param name="deviceHandle">The device handle.</param>
            <param name="header">The header.</param>
            <exception cref="T:System.TimeoutException">Occurs when the interop lock cannot be acquired.</exception>
            <exception cref="T:CSVideoPlayer.LegacyAudioException">Occurs when the MME interop call fails.</exception>
        </member>
        <member name="M:CSVideoPlayer.WaveInterop.ReleaseHeader(System.IntPtr,CSVideoPlayer.WaveHeader)">
            <summary>
            Releases the header.
            </summary>
            <param name="deviceHandle">The device handle.</param>
            <param name="header">The header.</param>
            <exception cref="T:System.TimeoutException">Occurs when the interop lock cannot be acquired.</exception>
            <exception cref="T:CSVideoPlayer.LegacyAudioException">Occurs when the MME interop call fails.</exception>
        </member>
        <member name="M:CSVideoPlayer.WaveInterop.WriteAudioData(System.IntPtr,CSVideoPlayer.WaveHeader)">
            <summary>
            Writes the audio data.
            </summary>
            <param name="deviceHandle">The device handle.</param>
            <param name="header">The header.</param>
            <exception cref="T:System.TimeoutException">Occurs when the interop lock cannot be acquired.</exception>
            <exception cref="T:CSVideoPlayer.LegacyAudioException">Occurs when the MME interop call fails.</exception>
        </member>
        <member name="M:CSVideoPlayer.WaveInterop.OpenAudioDevice(System.Int32,CSVideoPlayer.WaveFormat,CSVideoPlayer.WaveInterop.WaveCallback,System.IntPtr,CSVideoPlayer.WaveInterop.WaveInOutOpenFlags)">
            <summary>
            Opens the audio device.
            </summary>
            <param name="deviceId">The device identifier.</param>
            <param name="format">The format.</param>
            <param name="callback">The callback.</param>
            <param name="instanceHandle">The instance handle.</param>
            <param name="openFlags">The open flags.</param>
            <returns>The audio device handle.</returns>
            <exception cref="T:System.TimeoutException">Occurs when the interop lock cannot be acquired.</exception>
            <exception cref="T:CSVideoPlayer.LegacyAudioException">Occurs when the MME interop call fails.</exception>
        </member>
        <member name="M:CSVideoPlayer.WaveInterop.OpenAudioDevice(System.Int32,CSVideoPlayer.WaveFormat,Microsoft.Win32.SafeHandles.SafeWaitHandle,System.IntPtr,CSVideoPlayer.WaveInterop.WaveInOutOpenFlags)">
            <summary>
            Opens the audio device.
            </summary>
            <param name="deviceId">The device identifier.</param>
            <param name="format">The format.</param>
            <param name="callbackHandle">The callback window handle.</param>
            <param name="instanceHandle">The instance handle.</param>
            <param name="openFlags">The open flags.</param>
            <returns>The audio device handle.</returns>
            <exception cref="T:System.TimeoutException">Occurs when the interop lock cannot be acquired.</exception>
            <exception cref="T:CSVideoPlayer.LegacyAudioException">Occurs when the MME interop call fails.</exception>
        </member>
        <member name="M:CSVideoPlayer.WaveInterop.ResetAudioDevice(System.IntPtr)">
            <summary>
            Resets the audio device.
            </summary>
            <param name="deviceHandle">The device handle.</param>
            <exception cref="T:System.TimeoutException">Occurs when the interop lock cannot be acquired.</exception>
            <exception cref="T:CSVideoPlayer.LegacyAudioException">Occurs when the MME interop call fails.</exception>
        </member>
        <member name="M:CSVideoPlayer.WaveInterop.CloseAudioDevice(System.IntPtr)">
            <summary>
            Closes the audio device.
            </summary>
            <param name="deviceHandle">The device handle.</param>
            <exception cref="T:System.TimeoutException">Occurs when the interop lock cannot be acquired.</exception>
            <exception cref="T:CSVideoPlayer.LegacyAudioException">Occurs when the MME interop call fails.</exception>
        </member>
        <member name="M:CSVideoPlayer.WaveInterop.PauseAudioDevice(System.IntPtr)">
            <summary>
            Pauses the audio device.
            </summary>
            <param name="deviceHandle">The device handle.</param>
            <exception cref="T:System.TimeoutException">Occurs when the interop lock cannot be acquired.</exception>
            <exception cref="T:CSVideoPlayer.LegacyAudioException">Occurs when the MME interop call fails.</exception>
        </member>
        <member name="M:CSVideoPlayer.WaveInterop.RestartAudioDevice(System.IntPtr)">
            <summary>
            Restarts the audio device.
            </summary>
            <param name="deviceHandle">The device handle.</param>
            <exception cref="T:System.TimeoutException">Occurs when the interop lock cannot be acquired.</exception>
            <exception cref="T:CSVideoPlayer.LegacyAudioException">Occurs when the MME interop call fails.</exception>
        </member>
        <member name="M:CSVideoPlayer.WaveInterop.GetPlaybackBytesCount(System.IntPtr)">
            <summary>
            Gets the playback bytes count.
            </summary>
            <param name="deviceHandle">The device handle.</param>
            <returns>The number of bytes played during this session.</returns>
            <exception cref="T:System.TimeoutException">Occurs when the interop lock cannot be acquired.</exception>
            <exception cref="T:CSVideoPlayer.LegacyAudioException">Occurs when the MME interop call fails.</exception>
            <exception cref="T:System.ArgumentException">Occurs when the device does not return a byte count.</exception>
        </member>
        <member name="M:CSVideoPlayer.WaveInterop.RetrieveAudioDeviceInfo(System.Int32)">
            <summary>
            Retrieves the audio device information.
            </summary>
            <param name="deviceId">The device identifier.</param>
            <returns>The audio device capabilities and metadata.</returns>
            <exception cref="T:System.TimeoutException">Occurs when the interop lock cannot be acquired.</exception>
            <exception cref="T:CSVideoPlayer.LegacyAudioException">Occurs when the MME interop call fails.</exception>
        </member>
        <member name="T:CSVideoPlayer.WaveInterop.NativeMethods">
            <summary>
            Contains the native methods for the Windows MME API.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.WaveOutBuffer">
            <inheritdoc/>
            <summary>
            A buffer of Wave samples for streaming to a Wave Output device.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.WaveOutBuffer.#ctor(System.IntPtr,System.Int32,CSVideoPlayer.IWaveProvider)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.WaveOutBuffer"/> class.
            </summary>
            <param name="deviceHandle">WaveOut device to write to.</param>
            <param name="bufferSize">Buffer size in bytes.</param>
            <param name="waveStream">Stream to provide more data.</param>
        </member>
        <member name="P:CSVideoPlayer.WaveOutBuffer.IsQueued">
            <summary>
            Whether the header's in queue flag is set.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.WaveOutBuffer.BufferSize">
            <summary>
            The buffer size in bytes.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.WaveOutBuffer.Dispose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.WaveOutBuffer.Clear">
            <summary>
            Clears the internal buffer data.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.WaveOutBuffer.ReadWaveStream">
            <summary>
            this is called by the Wave callback and should be used to refill the buffer.
            This calls the <see cref="M:CSVideoPlayer.IWaveProvider.Read(System.Byte[],System.Int32,System.Int32)"/> method on the stream.
            </summary>
            <returns>True when bytes were written. False if no bytes were written.</returns>
        </member>
        <member name="T:CSVideoPlayer.WaveOutSupport">
            <summary>
            Flags indicating what features this WaveOut device supports.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WaveOutSupport.Pitch">
            <summary>supports pitch control</summary>
        </member>
        <member name="F:CSVideoPlayer.WaveOutSupport.PlaybackRate">
            <summary>supports playback rate control</summary>
        </member>
        <member name="F:CSVideoPlayer.WaveOutSupport.Volume">
            <summary>supports volume control (WAVECAPS_VOLUME)</summary>
        </member>
        <member name="F:CSVideoPlayer.WaveOutSupport.LRVolume">
            <summary>supports separate left-right volume control</summary>
        </member>
        <member name="F:CSVideoPlayer.WaveOutSupport.Sync">
            <summary>Sync</summary>
        </member>
        <member name="F:CSVideoPlayer.WaveOutSupport.SampleAccurate">
            <summary>Sample-Accurate</summary>
        </member>
        <member name="T:CSVideoPlayer.CaptionsChannel">
            <summary>
            Enumerates the 4 different CC channels.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsChannel.CCP">
            <summary>
            No channel specified -- use previous
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsChannel.CC1">
            <summary>
            Field 1, Channel 1
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsChannel.CC2">
            <summary>
            Field 1, Channel 2
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsChannel.CC3">
            <summary>
            Field 2, Channel 1
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsChannel.CC4">
            <summary>
            Field 2, Channel 2
            </summary>
        </member>
        <member name="T:CSVideoPlayer.CaptionsColor">
            <summary>
            Enumerates the different Closed-Captioning Colors.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsColor.None">
            <summary>
            No color
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsColor.White">
            <summary>
            The white color
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsColor.WhiteTransparent">
            <summary>
            The white transparent color
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsColor.Green">
            <summary>
            The green color
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsColor.GreenTransparent">
            <summary>
            The green transparent color
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsColor.Blue">
            <summary>
            The blue color
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsColor.BlueTransparent">
            <summary>
            The blue transparent color
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsColor.Cyan">
            <summary>
            The cyan color
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsColor.CyanTransparent">
            <summary>
            The cyan transparent color
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsColor.Red">
            <summary>
            The red color
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsColor.RedTransparent">
            <summary>
            The red transparent color
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsColor.Yellow">
            <summary>
            The yellow color
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsColor.YellowTransparent">
            <summary>
            The yellow transparent color
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsColor.Magenta">
            <summary>
            The magenta color
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsColor.MagentaTransparent">
            <summary>
            The magenta transparent color
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsColor.WhiteItalics">
            <summary>
            The white italics color
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsColor.WhiteItalicsTransparent">
            <summary>
            The white italics transparent color
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsColor.BackgroundTransparent">
            <summary>
            The background transparent color
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsColor.ForegroundBlack">
            <summary>
            The foreground black color
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsColor.ForegroundBlackUnderline">
            <summary>
            The foreground black underline color
            </summary>
        </member>
        <member name="T:CSVideoPlayer.CaptionsCommand">
            <summary>
            Enumerates the Closed-Captioning misc commands.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsCommand.None">
            <summary>
            No command
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsCommand.Resume">
            <summary>
            The resume command
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsCommand.Backspace">
            <summary>
            The backspace command
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsCommand.AlarmOff">
            <summary>
            The alarm off command
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsCommand.AlarmOn">
            <summary>
            The alarm on command
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsCommand.ClearLine">
            <summary>
            The clear line command
            Delete to end of Row (DER)
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsCommand.RollUp2">
            <summary>
            The roll up 2 command
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsCommand.RollUp3">
            <summary>
            The roll up 3 command
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsCommand.RollUp4">
            <summary>
            The roll up 4 command
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsCommand.StartCaption">
            <summary>
            The start caption command
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsCommand.StartNonCaption">
            <summary>
            The start non caption command
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsCommand.ResumeNonCaption">
            <summary>
            The resume non caption command
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsCommand.ClearScreen">
            <summary>
            The clear screen command
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsCommand.NewLine">
            <summary>
            The new line command
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsCommand.ClearBuffer">
            <summary>
            The clear buffer command
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsCommand.EndCaption">
            <summary>
            The end caption command
            </summary>
        </member>
        <member name="T:CSVideoPlayer.CaptionsPacketType">
            <summary>
            Defines Closed-Captioning Packet types.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsPacketType.Unrecognized">
            <summary>
            The unrecognized packet type.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsPacketType.NullPad">
            <summary>
            The null pad packet type.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsPacketType.XdsClass">
            <summary>
            The XDS class packet type.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsPacketType.Command">
            <summary>
            The misc command packet type.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsPacketType.Text">
            <summary>
            The text packet type.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsPacketType.MidRow">
            <summary>
            The mid row packet type.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsPacketType.Preamble">
            <summary>
            The preamble packet type.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsPacketType.Color">
            <summary>
            The color packet type.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsPacketType.PrivateCharset">
            <summary>
            The charset packet type.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsPacketType.Tabs">
            <summary>
            The tabs packet type
            Section B.4 Tab Offsets.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.CaptionsStyle">
            <summary>
            Enumerates the different Closed-Captioning Styles.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.None">
            <summary>
            The none style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.White">
            <summary>
            The white style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.WhiteUnderline">
            <summary>
            The white underline style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.Green">
            <summary>
            The green style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.GreenUnderline">
            <summary>
            The green underline style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.Blue">
            <summary>
            The blue style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.BlueUnderline">
            <summary>
            The blue underline style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.Cyan">
            <summary>
            The cyan style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.CyanUnderline">
            <summary>
            The cyan underline style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.Red">
            <summary>
            The red style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.RedUnderline">
            <summary>
            The red underline style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.Yellow">
            <summary>
            The yellow style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.YellowUnderline">
            <summary>
            The yellow underline style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.Magenta">
            <summary>
            The magenta style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.MagentaUnderline">
            <summary>
            The magenta underline style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.WhiteItalics">
            <summary>
            The white italics style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.WhiteItalicsUnderline">
            <summary>
            The white italics underline style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.WhiteIndent0">
            <summary>
            The white indent0 style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.WhiteIndent0Underline">
            <summary>
            The white indent0 underline style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.WhiteIndent4">
            <summary>
            The white indent4 style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.WhiteIndent4Underline">
            <summary>
            The white indent4 underline style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.WhiteIndent8">
            <summary>
            The white indent8 style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.WhiteIndent8Underline">
            <summary>
            The white indent8 underline style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.WhiteIndent12">
            <summary>
            The white indent12 style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.WhiteIndent12Underline">
            <summary>
            The white indent12 underline style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.WhiteIndent16">
            <summary>
            The white indent16 style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.WhiteIndent16Underline">
            <summary>
            The white indent16 underline style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.WhiteIndent20">
            <summary>
            The white indent20 style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.WhiteIndent20Underline">
            <summary>
            The white indent20 underline style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.WhiteIndent24">
            <summary>
            The white indent24 style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.WhiteIndent24Underline">
            <summary>
            The white indent24 underline style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.WhiteIndent28">
            <summary>
            The white indent28 style.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsStyle.WhiteIndent28Underline">
            <summary>
            The white indent28 underline style.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.CaptionsXdsClass">
            <summary>
            Defines Closed-Captioning XDS Packet Classes.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsXdsClass.None">
            <summary>
            The none XDS Class.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsXdsClass.CurrentStart">
            <summary>
            The current start XDS Class.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsXdsClass.CurrentContinue">
            <summary>
            The current continue XDS Class.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsXdsClass.FutureStart">
            <summary>
            The future start XDS Class.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsXdsClass.FutureContinue">
            <summary>
            The future continue XDS Class.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsXdsClass.ChannelStart">
            <summary>
            The channel start XDS Class.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsXdsClass.ChannelContinue">
            <summary>
            The channel continue XDS Class.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsXdsClass.MiscStart">
            <summary>
            The misc start XDS Class.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsXdsClass.MiscContinue">
            <summary>
            The misc continue XDS Class.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsXdsClass.PublicServiceStart">
            <summary>
            The public service start XDS Class.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsXdsClass.PublicServiceContinue">
            <summary>
            The public service continue XDS Class.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsXdsClass.ReservedStart">
            <summary>
            The reserved start XDS Class.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsXdsClass.ReservedContinue">
            <summary>
            The reserved continue XDS Class.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsXdsClass.PrivateStart">
            <summary>
            The private start XDS Class.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsXdsClass.PrivateContinue">
            <summary>
            The private continue XDS Class.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CaptionsXdsClass.EndAll">
            <summary>
            The end all XDS Class.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.ClosedCaptionPacket">
            <inheritdoc />
            <summary>
            Represents a 3-byte packet of closed-captioning data in EIA-608 format.
            See: http://jackyjung.tistory.com/attachment/499e14e28c347DB.pdf.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionPacket.#ctor(System.TimeSpan,System.Byte*,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.ClosedCaptionPacket" /> class.
            </summary>
            <param name="timestamp">The timestamp.</param>
            <param name="source">The source.</param>
            <param name="offset">The offset.</param>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionPacket.#ctor(System.TimeSpan,System.Byte,System.Byte,System.Byte)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.ClosedCaptionPacket"/> class.
            </summary>
            <param name="timestamp">The timestamp.</param>
            <param name="header">The header.</param>
            <param name="d0">The d0.</param>
            <param name="d1">The d1.</param>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionPacket.D0">
            <summary>
            Gets the first of the two-byte packet data.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionPacket.D1">
            <summary>
            Gets the second of the two-byte packet data.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionPacket.Timestamp">
            <summary>
            Gets the timestamp this packet applies to.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionPacket.FieldParity">
            <summary>
            Gets the NTSC field (1 or 2).
            0 for unknown/null packet.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionPacket.FieldChannel">
            <summary>
            Gets the channel. 0 for use previous packet, 1 or 2 for specific channel.
            0 just means to use what a prior packet had specified.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionPacket.Channel">
            <summary>
            Gets the channel CC1, CC2, CC3, or CC4.
            Returns None when not yet computed.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionPacket.PacketType">
            <summary>
            Gets the type of the packet.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionPacket.Tabs">
            <summary>
            Gets the number of tabs, if the packet type is of Tabs.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionPacket.Command">
            <summary>
            Gets the Misc Command, if the packet type is of Command.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionPacket.Color">
            <summary>
            Gets the Color, if the packet type is of Color.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionPacket.MidRowStyle">
            <summary>
            Gets the Style, if the packet type is of Mid Row Style.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionPacket.XdsClass">
            <summary>
            Gets the XDS Class, if the packet type is of XDS.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionPacket.PreambleRow">
            <summary>
            Gets the Preamble Row Number (1 through 15), if the packet type is of Preamble.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionPacket.PreambleStyle">
            <summary>
            Gets the Style, if the packet type is of Preamble.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionPacket.PreambleIndent">
            <summary>
            Gets the Indent Style, if the packet type is of Preamble.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionPacket.Text">
            <summary>
            Gets the text, if the packet type is of text.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionPacket.IsControlPacket">
            <summary>
            Gets a value indicating whether this is a control packet.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionPacket.IsUnderlined">
            <summary>
            Gets a value indicating whether the current and following
            caption text packets are underlined; only valid for preamble or mid-row packets.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ClosedCaptionPacket.IsItalics">
            <summary>
            Gets a value indicating whether the current and following
            caption text packets are italicized; only valid for preamble or mid-row packets.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionPacket.op_Equality(CSVideoPlayer.ClosedCaptionPacket,CSVideoPlayer.ClosedCaptionPacket)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionPacket.op_Inequality(CSVideoPlayer.ClosedCaptionPacket,CSVideoPlayer.ClosedCaptionPacket)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionPacket.op_LessThan(CSVideoPlayer.ClosedCaptionPacket,CSVideoPlayer.ClosedCaptionPacket)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionPacket.op_LessThanOrEqual(CSVideoPlayer.ClosedCaptionPacket,CSVideoPlayer.ClosedCaptionPacket)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionPacket.op_GreaterThan(CSVideoPlayer.ClosedCaptionPacket,CSVideoPlayer.ClosedCaptionPacket)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionPacket.op_GreaterThanOrEqual(CSVideoPlayer.ClosedCaptionPacket,CSVideoPlayer.ClosedCaptionPacket)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionPacket.ComputeChannel(System.Int32,System.Int32)">
            <summary>
            Computes the CC channel.
            </summary>
            <param name="fieldParity">The field parity.</param>
            <param name="fieldChannel">The field channel.</param>
            <returns>The CC channel according to the parity and channel.</returns>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionPacket.IsRepeatedControlCode(CSVideoPlayer.ClosedCaptionPacket)">
            <summary>
            Determines whether a previous packet is a repeated control code.
            This is according to CEA-608 Section D.2 Transmission of Control Code Pairs.
            </summary>
            <param name="previousPacket">The previous packet.</param>
            <returns>
              <c>true</c> it is a repeated control code packet.
            </returns>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionPacket.ToString">
            <summary>
            Returns a <see cref="T:System.String" /> that represents this instance.
            </summary>
            <returns>
            A <see cref="T:System.String" /> that represents this instance.
            </returns>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionPacket.CompareTo(CSVideoPlayer.ClosedCaptionPacket)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionPacket.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionPacket.Equals(CSVideoPlayer.ClosedCaptionPacket)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionPacket.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionPacket.HeaderHasMarkers(System.Byte)">
            <summary>
            Checks that the header byte starts with 11111b (5 ones binary).
            </summary>
            <param name="data">The data.</param>
            <returns>If header has markers.</returns>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionPacket.IsHeaderValidFlagSet(System.Byte)">
            <summary>
            Determines whether the valid flag of the header byte is set.
            </summary>
            <param name="data">The data.</param>
            <returns>
              <c>true</c> if [is header valid flag set] [the specified data]; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionPacket.GetHeaderFieldType(System.Byte)">
            <summary>
            Gets the NTSC field type (1 or 2).
            Returns 0 for unknown.
            </summary>
            <param name="data">The data.</param>
            <returns>The field type.</returns>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionPacket.DropParityBit(System.Byte)">
            <summary>
            Drops the parity bit from the data byte.
            </summary>
            <param name="input">The input.</param>
            <returns>The byte without a parity bit.</returns>
        </member>
        <member name="M:CSVideoPlayer.ClosedCaptionPacket.ToEia608Char(System.Byte)">
            <summary>
            Converts an ASCII character code to an EIA-608 char (in Unicode).
            </summary>
            <param name="input">The input.</param>
            <returns>The charset char.</returns>
        </member>
        <member name="T:CSVideoPlayer.CommandManager">
            <summary>
            Provides the MediEngine with an API to execute media control commands.
            Direct Commands execute immediately (Open, CLose, Change)
            Priority Commands execute in the queue but before anything else and are exclusive (Play, Pause, Stop)
            Seek commands are queued and replaced. These are processed in a deferred manner by this worker.
            </summary>
            <seealso cref="T:CSVideoPlayer.IntervalWorkerBase" />
            <seealso cref="T:CSVideoPlayer.IMediaWorker" />
            <seealso cref="T:CSVideoPlayer.ILoggingSource" />
        </member>
        <member name="M:CSVideoPlayer.CommandManager.#ctor(CSVideoPlayer.MediaEngine)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.CommandManager"/> class.
            </summary>
            <param name="mediaCore">The media core.</param>
        </member>
        <member name="P:CSVideoPlayer.CommandManager.MediaCore">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.CommandManager.HasPendingCommands">
            <summary>
            Gets a value indicating whether the command manager is executing commands or has pending commands.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CommandManager.CSVideoPlayer#ILoggingSource#LoggingHandler">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.CommandManager.State">
            <summary>
            Gets the media engine state.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CommandManager.PendingPriorityCommand">
            <summary>
            Gets the pending priority command. There can only be one at a time.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.OpenMediaAsync(System.Uri)">
            <summary>
            Opens the media using a standard URI.
            </summary>
            <param name="uri">The URI.</param>
            <returns>An awaitable task which contains a boolean whether or not to resume media when completed.</returns>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.OpenMediaAsync(CSVideoPlayer.IMediaInputStream)">
            <summary>
            Opens the media using a custom stream.
            </summary>
            <param name="stream">The custom input stream.</param>
            <returns>An awaitable task which contains a boolean whether or not to resume media when completed.</returns>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.CloseMediaAsync">
            <summary>
            Closes the currently open media.
            </summary>
            <returns>An awaitable task which contains a boolean whether or not to resume media when completed.</returns>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.ChangeMediaAsync">
            <summary>
            Changes the media components and applies new configuration.
            </summary>
            <returns>An awaitable task which contains a boolean whether or not to resume media when completed.</returns>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.PlayMediaAsync">
            <summary>
            Plays the currently open media.
            </summary>
            <returns>An awaitable task which contains a boolean result. True means success. False means failure.</returns>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.PauseMediaAsync">
            <summary>
            Pauses the currently open media asynchronous.
            </summary>
            <returns>An awaitable task which contains a boolean result. True means success. False means failure.</returns>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.StopMediaAsync">
            <summary>
            Stops the currently open media. This seeks to the start of the input and pauses the clock.
            </summary>
            <returns>An awaitable task which contains a boolean result. True means success. False means failure.</returns>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.SeekMediaAsync(System.TimeSpan)">
            <summary>
            Queues a seek operation.
            </summary>
            <param name="seekTarget">The seek target.</param>
            <returns>An awaitable task which contains a boolean result. True means success. False means failure.</returns>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.StepForwardAsync">
            <summary>
            Queues a seek operation that steps a single frame forward.
            </summary>
            <returns>An awaitable task which contains a boolean result. True means success. False means failure.</returns>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.StepBackwardAsync">
            <summary>
            Queues a seek operation that steps a single frame backward.
            </summary>
            <returns>An awaitable task which contains a boolean result. True means success. False means failure.</returns>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.WaitForSeekBlocks(System.Int32)">
            <summary>
            When a seek operation is in progress, this method blocks until the first block of the main
            component is available.
            </summary>
            <param name="millisecondsTimeout">The timeout to wait for.</param>
            <returns>If the wait completed successfully.</returns>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.ExecuteCycleLogic(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.CommandManager.OnCycleException(System.Exception)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.CommandManager.OnDisposing">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.CommandManager.Dispose(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.CommandManager.LogReferenceCounter">
            <summary>
            Outputs Reference Counter Results.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CommandManager.IsOpening">
            <summary>
            Gets a value indicating whether a <see cref="M:CSVideoPlayer.CommandManager.OpenMediaAsync(System.Uri)"/> operation is in progress.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CommandManager.IsClosing">
            <summary>
            Gets a value indicating whether a <see cref="M:CSVideoPlayer.CommandManager.CloseMediaAsync"/> operation is in progress.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CommandManager.IsChanging">
            <summary>
            Gets a value indicating whether a <see cref="M:CSVideoPlayer.CommandManager.ChangeMediaAsync"/> operation is in progress.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CommandManager.PendingDirectCommand">
            <summary>
            Gets a value indicating the direct command that is pending or in progress.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CommandManager.IsDirectCommandPending">
            <summary>
            Gets a value indicating whether a direct command is pending or in progress.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CommandManager.IsCloseInterruptPending">
            <summary>
            Gets or sets a value indicating whether a close interrupt is pending.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.ExecuteDirectCommand(CSVideoPlayer.CommandManager.DirectCommandType,System.Func{System.Boolean})">
            <summary>
            Execute boilerplate logic required ofr the execution of direct commands.
            </summary>
            <param name="command">The command.</param>
            <param name="commandDeleagte">The command deleagte.</param>
            <returns>The awaitable task.</returns>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.PostProcessDirectCommand(CSVideoPlayer.CommandManager.DirectCommandType,System.Exception,System.Boolean)">
            <summary>
            Executes boilerplate logic required when a direct command finishes executing.
            </summary>
            <param name="command">The command.</param>
            <param name="commandException">The command exception -- can be null.</param>
            <param name="resumeMedia">Only valid for the change command.</param>
            <returns>Fasle if there was an exception passed as an argument. True if null was passed to command exception.</returns>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.CommandOpenMedia(CSVideoPlayer.IMediaInputStream,System.Uri)">
            <summary>
            Provides the implementation for the Open Media Command.
            </summary>
            <param name="inputStream">The input stream.</param>
            <param name="streamUri">The stream URI.</param>
            <returns>Always returns false because media will not be resumed.</returns>
            <exception cref="T:CSVideoPlayer.MediaContainerException">Unable to initialize at least one audio or video component from the input stream.</exception>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.CommandCloseMedia">
            <summary>
            Provides the implementation for the Close Media Command.
            </summary>
            <returns>Always returns false because media will not be resumed.</returns>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.CommandChangeMedia(System.Boolean)">
            <summary>
            Provides the implementation for the Change Media Command.
            </summary>
            <param name="playWhenCompleted">If media should be resume when the command gets pot processed.</param>
            <returns>Simply return the play when completed boolean if there are no exceptions.</returns>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.StartWorkers">
            <summary>
            Initializes the media block buffers and
            starts packet reader, frame decoder, and block rendering workers.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.StopWorkers">
            <summary>
            Stops the packet reader, frame decoder, and block renderers.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.PreLoadSubtitles">
            <summary>
            Pre-loads the subtitles from the MediaOptions.SubtitlesUrl.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.DisposePreloadedSubtitles">
            <summary>
            Disposes the preloaded subtitles.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.CommandManager.SeekMode">
            <summary>
            Enumerates the different seek modes for the seek command.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CommandManager.SeekMode.Normal">
            <summary>Normal seek mode</summary>
        </member>
        <member name="F:CSVideoPlayer.CommandManager.SeekMode.Stop">
            <summary>Stop seek mode</summary>
        </member>
        <member name="F:CSVideoPlayer.CommandManager.SeekMode.StepForward">
            <summary>Frame step forward</summary>
        </member>
        <member name="F:CSVideoPlayer.CommandManager.SeekMode.StepBackward">
            <summary>Frame step backward</summary>
        </member>
        <member name="T:CSVideoPlayer.CommandManager.DirectCommandType">
            <summary>
            Enumerates the different direct command types.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CommandManager.DirectCommandType.None">
            <summary>
            No command Type.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CommandManager.DirectCommandType.Open">
            <summary>
            The open command.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CommandManager.DirectCommandType.Close">
            <summary>
            The close command.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CommandManager.DirectCommandType.Change">
            <summary>
            The change command.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.CommandManager.PriorityCommandType">
            <summary>
            The priority command types.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CommandManager.PriorityCommandType.None">
            <summary>
            The none command.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CommandManager.PriorityCommandType.Play">
            <summary>
            The play command.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CommandManager.PriorityCommandType.Pause">
            <summary>
            The pause command.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CommandManager.PriorityCommandType.Stop">
            <summary>
            The stop command.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CommandManager.IsPriorityCommandPending">
            <summary>
            Gets a value indicating whether a priority command is pending.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.QueuePriorityCommand(CSVideoPlayer.CommandManager.PriorityCommandType)">
            <summary>
            Executes boilerplate code that queues priority commands.
            </summary>
            <param name="command">The command.</param>
            <returns>An awaitable task.</returns>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.ClearPriorityCommands">
            <summary>
            Clears the priority commands and marks the completion event as set.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.CommandPlayMedia">
            <summary>
            Provides the implementation for the Play Media Command.
            </summary>
            <returns>True if the command was successful.</returns>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.CommandPauseMedia">
            <summary>
            Provides the implementation for the Pause Media Command.
            </summary>
            <returns>True if the command was successful.</returns>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.CommandStopMedia">
            <summary>
            Provides the implementation for the Stop Media Command.
            </summary>
            <returns>True if the command was successful.</returns>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.SnapPositionToBlockPosition(System.TimeSpan)">
            <summary>
            Returns the value of a discrete frame position of the main media component if possible.
            Otherwise, it simply rounds the position to the nearest millisecond.
            </summary>
            <param name="position">The position.</param>
            <returns>The snapped, discrete, normalized position.</returns>
        </member>
        <member name="P:CSVideoPlayer.CommandManager.IsSeeking">
            <summary>
            Gets a value indicating whether a seek operation is pending or in progress.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CommandManager.IsActivelySeeking">
            <summary>
            Gets a value indicating whether this instance is actively seeking within a stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CommandManager.ActiveSeekMode">
            <summary>
            When actively seeking, provides the active seek mode.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CommandManager.PlayAfterSeek">
            <summary>
            Gets or sets a value indicating whether playback should be resumed when all
            seek operations complete.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.QueueSeekCommand(System.TimeSpan,CSVideoPlayer.CommandManager.SeekMode)">
            <summary>
            Executes boilerplate logic to queue a seek operation.
            </summary>
            <param name="seekTarget">The seek target.</param>
            <param name="seekMode">The seek mode.</param>
            <returns>An awaitable task.</returns>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.ClearSeekCommands">
            <summary>
            Clears the queued seek commands.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.SeekMedia(CSVideoPlayer.CommandManager.SeekOperation,System.Threading.CancellationToken)">
            <summary>
            Implements the Seek Media Command.
            </summary>
            <param name="seekOperation">The seek operation.</param>
            <param name="ct">The ct.</param>
            <returns>True if the operation was successful.</returns>
        </member>
        <member name="T:CSVideoPlayer.CommandManager.SeekOperation">
            <summary>
            Provides parameters and a reset event to reference when the operation completes.
            </summary>
            <seealso cref="T:System.IDisposable" />
        </member>
        <member name="M:CSVideoPlayer.CommandManager.SeekOperation.#ctor(System.TimeSpan,CSVideoPlayer.CommandManager.SeekMode)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.CommandManager.SeekOperation"/> class.
            </summary>
            <param name="position">The position.</param>
            <param name="mode">The mode.</param>
        </member>
        <member name="P:CSVideoPlayer.CommandManager.SeekOperation.Position">
            <summary>
            Gets or sets the target position.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CommandManager.SeekOperation.Mode">
            <summary>
            Gets or sets the seek mode.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CommandManager.SeekOperation.SeekCompleted">
            <summary>
            Gets the seek completed event.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.SeekOperation.Wait">
            <summary>
            Waits for the <see cref="P:CSVideoPlayer.CommandManager.SeekOperation.SeekCompleted"/> event to be set.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.CommandManager.SeekOperation.Dispose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.CommandManager.SeekOperation.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="alsoManaged"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="T:CSVideoPlayer.ContainerConfiguration">
            <summary>
            Represents a set of options that are used to initialize a media container before opening the stream.
            This includes both, demuxer and decoder options.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.ContainerConfiguration.ScanAllPmts">
            <summary>
            The scan all PMTS private option name.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ContainerConfiguration.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.ContainerConfiguration"/> class.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ContainerConfiguration.ForcedInputFormat">
            <summary>
            Gets or sets the forced input format. If let null or empty,
            the input format will be selected automatically.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ContainerConfiguration.ProtocolPrefix">
            <summary>
            Gets the protocol prefix.
            Typically async for local files and empty for other types.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ContainerConfiguration.ReadTimeout">
            <summary>
            Gets or sets the amount of time to wait for a an open or read
            operation to complete before it times out. It is 30 seconds by default.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ContainerConfiguration.GlobalOptions">
            <summary>
            Contains global options for the demuxer. For additional info
            please see: https://ffmpeg.org/ffmpeg-formats.html#Format-Options.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ContainerConfiguration.PrivateOptions">
            <summary>
            Contains private demuxer options. For additional info
            please see: https://ffmpeg.org/ffmpeg-all.html#Demuxers.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.DecoderOptions">
            <summary>
            Represents decoder global and private options for all streams
            See https://www.ffmpeg.org/ffmpeg-codecs.html#Codec-Options.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.DecoderOptions.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.DecoderOptions"/> class.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DecoderOptions.LowResolutionIndex">
            <summary>
            Gets or sets a value indicating whether [enable low resource].
            In theory this should be 0,1,2,3 for 1, 1/2, 1,4 and 1/8 resolutions.
            Port of low-res.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DecoderOptions.EnableFastDecoding">
            <summary>
            Gets or sets a value indicating whether to enable fast decoding.
            Port of fast.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DecoderOptions.EnableLowDelayDecoding">
            <summary>
            Enables low_delay flag for no delay in frame decoding.
            When frames are received by some codecs, they are delayed by 1 frame per active thread.
            This flag is not of much use because the decoder pre-caches and pre-orders a set of decoded
            frames internally.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DecoderOptions.Threads">
            <summary>
            Gets or sets the threads.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DecoderOptions.RefCountedFrames">
            <summary>
            Gets or sets whether to use reference counted frames.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DecoderOptions.LowResIndexOption">
            <summary>
            Gets or sets the index of the low resolution index.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DecoderOptions.Item(System.String)">
            <summary>
            Gets or sets the specified global option.
            See: https://www.ffmpeg.org/ffmpeg-codecs.html#Codec-Options.
            </summary>
            <param name="globalOptionName">Name of the global option.</param>
            <returns>The value of the option.</returns>
        </member>
        <member name="P:CSVideoPlayer.DecoderOptions.Item(System.Int32,System.String)">
            <summary>
            Gets or sets the specified private option
            See: https://www.ffmpeg.org/ffmpeg-codecs.html#toc-Decoders.
            </summary>
            <param name="streamIndex">Index of the stream.</param>
            <param name="privateOptionName">Name of the private option.</param>
            <returns>The private option value.</returns>
        </member>
        <member name="M:CSVideoPlayer.DecoderOptions.GetStreamCodecOptions(System.Int32)">
            <summary>
            Gets the combined global and private stream codec options as a dictionary.
            </summary>
            <param name="streamIndex">Index of the stream.</param>
            <returns>An options dictionary.</returns>
        </member>
        <member name="T:CSVideoPlayer.DecoderOptions.GlobalOptionNames">
            <summary>
            Well-known codec option names.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.DecoderOptions.GlobalOptionNames.Threads">
            <summary>
            The threads.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.DecoderOptions.GlobalOptionNames.RefCountedFrames">
            <summary>
            The reference counted frames.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.DecoderOptions.GlobalOptionNames.LowRes">
            <summary>
            The low resource.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.DemuxerGlobalOptions">
            <summary>
            The libavformat library provides some generic global options, which can be set on all the muxers and demuxers.
            For additional information, please see: https://ffmpeg.org/ffmpeg-formats.html#Format-Options
            Geek Stuff: https://github.com/FFmpeg/FFmpeg/blob/a0ac49e38ee1d1011c394d7be67d0f08b2281526/libavformat/options_table.h#L36.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.DemuxerGlobalOptions.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.DemuxerGlobalOptions"/> class.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DemuxerGlobalOptions.EnableReducedBuffering">
            <summary>
            Port of avioflags direct.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DemuxerGlobalOptions.ProbeSize">
            <summary>
            Set probing size in bytes, i.e. the size of the data to analyze to get stream information.
            A higher value will enable detecting more information in case it is dispersed into the stream,
            but will increase latency. Must be an integer not lesser than 32. It is 5000000 by default.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DemuxerGlobalOptions.PacketSize">
            <summary>
            Set packet size.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DemuxerGlobalOptions.FlagIgnoreIndex">
            <summary>
            Ignore index.
            Port of ffflags.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DemuxerGlobalOptions.FlagEnableFastSeek">
            <summary>
            Enable fast, but inaccurate seeks for some formats.
            Port of ffflags.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DemuxerGlobalOptions.FlagGeneratePts">
            <summary>
            Generate PTS.
            Port of genpts.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DemuxerGlobalOptions.FlagEnableNoFillIn">
            <summary>
            Do not fill in missing values that can be exactly calculated.
            Port of ffflags.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DemuxerGlobalOptions.FlagIgnoreDts">
            <summary>
            Ignore DTS.
            Port of ffflags.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DemuxerGlobalOptions.FlagDiscardCorrupt">
            <summary>
            Discard corrupted frames.
            Port of ffflags.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DemuxerGlobalOptions.FlagSortDts">
            <summary>
            Try to interleave output packets by DTS.
            Port of ffflags.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DemuxerGlobalOptions.FlagKeepSideData">
            <summary>
            Do not merge side data.
            Port of ffflags.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DemuxerGlobalOptions.FlagEnableLatmPayload">
            <summary>
            Enable RTP MP4A-LATM payload.
            Port of ffflags.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DemuxerGlobalOptions.FlagNoBuffer">
            <summary>
            Reduce the latency introduced by optional buffering
            Port of ffflags.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DemuxerGlobalOptions.FlagStopAtShortest">
            <summary>
            Stop muxing at the end of the shortest stream.
            It may be needed to increase max_interleave_delta to avoid flushing the longer streams before EOF.
            Port of ffflags.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DemuxerGlobalOptions.SeekToAny">
            <summary>
            Allow seeking to non-keyframes on demuxer level when supported if set to 1. Default is 0.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DemuxerGlobalOptions.MaxAnalyzeDuration">
            <summary>
            Gets or sets the maximum duration to be analyzed before identifying stream information.
            In realtime streams this can be reduced to reduce latency (i.e. TimeSpan.Zero).
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DemuxerGlobalOptions.CryptoKey">
            <summary>
            Set decryption key. A hexadecimal string without the prefixes (0x) or suffixes (h) needs to be provided.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.DemuxerGlobalOptions.ProtocolWhitelist">
            <summary>
            Gets or sets the protocol whitelist. The values must be separated by comma.
            Example: file,http,https,tcp,tls.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.HardwareDeviceInfo">
            <summary>
            Represents a hardware configuration pair of device and pixel format.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.HardwareDeviceInfo.#ctor(FFmpeg.AutoGen.AVCodecHWConfig*)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.HardwareDeviceInfo"/> class.
            </summary>
            <param name="config">The source configuration.</param>
        </member>
        <member name="P:CSVideoPlayer.HardwareDeviceInfo.DeviceType">
            <summary>
            Gets the type of hardware device.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.HardwareDeviceInfo.DeviceTypeName">
            <summary>
            Gets the name of the device type.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.HardwareDeviceInfo.PixelFormat">
            <summary>
            Gets the hardware output pixel format.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.HardwareDeviceInfo.PixelFormatName">
            <summary>
            Gets the name of the pixel format.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.HardwareDeviceInfo.ToString">
            <summary>
            Returns a <see cref="T:System.String" /> that represents this instance.
            </summary>
            <returns>
            A <see cref="T:System.String" /> that represents this instance.
            </returns>
        </member>
        <member name="T:CSVideoPlayer.IMediaEngineState">
            <summary>
            Provides Media Engine state as read-only properties.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.BitRate">
            <summary>
            Gets the input bit rate as reported by the container. Returns 0 if unavailable.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.DecodingBitRate">
            <summary>
            Gets the instantaneous, compressed bit rate of the decoders for the currently active component streams.
            This is provided in bits per second.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.VideoStreamIndex">
            <summary>
            Gets the index of the video stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.AudioStreamIndex">
            <summary>
            Gets the index of the audio stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.SubtitleStreamIndex">
            <summary>
            Gets the index of the subtitle stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.AudioBitRate">
            <summary>
            Gets the audio bit rate.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.AudioBitsPerSample">
            <summary>
            Gets the audio bits per sample.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.AudioChannels">
            <summary>
            Gets the audio channels.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.AudioCodec">
            <summary>
            Gets the audio codec.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.AudioSampleRate">
            <summary>
            Gets the audio sample rate.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.Balance">
            <summary>
            Gets the audio balance.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.BufferingProgress">
            <summary>
            Gets the buffering progress.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.CanPause">
            <summary>
            Gets a value indicating whether the media can pause.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.PacketBufferLength">
            <summary>
            Gets the byte length of the buffered packets.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.PacketBufferCount">
            <summary>
            Gets the number of packets buffered for all media components.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.DownloadProgress">
            <summary>
            Gets the download progress.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.PositionStep">
            <summary>
            Gets the duration of a frame step.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.HasAudio">
            <summary>
            Gets a value indicating whether the media has audio.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.HasMediaEnded">
            <summary>
            Gets a value indicating whether the media has ended.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.HasSubtitles">
            <summary>
            Gets a value indicating whether the media has subtitles.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.HasVideo">
            <summary>
            Gets a value indicating whether the media has video.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.HasClosedCaptions">
            <summary>
            Gets a value indicating whether the current video stream has closed captions.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.IsAtEndOfStream">
            <summary>
            Gets a value indicating whether the media container is at end of the stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.IsBuffering">
            <summary>
            Gets a value indicating whether the media is buffering.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.IsLiveStream">
            <summary>
            Gets a value indicating whether the media is a live stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.IsMuted">
            <summary>
            Gets or sets a value indicating whether the media is muted.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.IsNetworkStream">
            <summary>
            Gets a value indicating whether the media is a network stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.IsOpen">
            <summary>
            Gets a value indicating whether the media is currently open.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.IsOpening">
            <summary>
            Gets a value indicating whether the media is currently opening.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.IsClosing">
            <summary>
            Gets a value indicating whether the media is currently closing.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.IsChanging">
            <summary>
            Gets a value indicating whether the media is currently changing its components.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.IsPaused">
            <summary>
            Gets a value indicating whether the media is paused.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.IsPlaying">
            <summary>
            Gets a value indicating whether the media is playing.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.IsSeekable">
            <summary>
            Gets a value indicating whether the media is seekable.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.IsSeeking">
            <summary>
            Gets a value indicating whether the media is currently seeking.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.MediaFormat">
            <summary>
            Gets the media format.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.MediaStreamSize">
            <summary>
            Gets the size in bytes of the current stream being read.
            For multi-file streams, get the size of the current file only.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.MediaState">
            <summary>
            Gets the playback status of the media.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.Metadata">
            <summary>
            Gets the media metadata such as title, language, etc.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.NaturalDuration">
            <summary>
            Gets the duration of the media.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.PlaybackStartTime">
            <summary>
            Gets the playback start position of the media.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.PlaybackEndTime">
            <summary>
            Gets the playback end position of the media.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.NaturalVideoHeight">
            <summary>
            Gets the height of the video in pixels.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.NaturalVideoWidth">
            <summary>
            Gets the width of the video in pixels.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.Position">
            <summary>
            Gets the current position of the media.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.FramePosition">
            <summary>
            Gets the discrete time position of the start of the current
            frame of the main component.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.Source">
            <summary>
            Gets the URL of the open or opening media.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.SpeedRatio">
            <summary>
            Gets the playback speed ratio.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.VideoBitRate">
            <summary>
            Gets the video bit rate.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.VideoCodec">
            <summary>
            Gets the video codec.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.VideoFrameRate">
            <summary>
            Gets the video frame rate.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.VideoHardwareDecoder">
            <summary>
            Gets the video hardware decoder.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.VideoRotation">
            <summary>
            Gets the video rotation.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.VideoSmtpeTimeCode">
            <summary>
            Gets the video SMTPE time code.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.VideoAspectRatio">
            <summary>
            Gets the current video aspect ratio.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaEngineState.Volume">
            <summary>
            Gets the current audio volume.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.InputStreamInitializing">
            <summary>
            A callback that gets called before the media container's input context gets initialized for the <see cref="T:CSVideoPlayer.IMediaInputStream"/>.
            </summary>
            <param name="containerConfig">The container configuration.</param>
            <param name="mediaSource">The media source URL.</param>
        </member>
        <member name="T:CSVideoPlayer.InputStreamInitialized">
            <summary>
            A callback that gets called when the media container's input format context has been initialized for the <see cref="T:CSVideoPlayer.IMediaInputStream"/>.
            </summary>
            <param name="inputFormat">The unmanaged input format pointer.</param>
            <param name="formatContext">The unmanaged format context.</param>
            <param name="mediaInfo">The detected media info.</param>
        </member>
        <member name="T:CSVideoPlayer.IMediaInputStream">
            <summary>
            Defines the properties and methods necessary for implementing a
            custom media input stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaInputStream.StreamUri">
            <summary>
            Gets the stream URI. This is just a pseudo URI to identify the stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaInputStream.CanSeek">
            <summary>
            Gets a value indicating whether this stream is seekable.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaInputStream.ReadBufferLength">
            <summary>
            Gets the length in bytes of the read buffer that will be allocated.
            Something like 4096 is recommended.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaInputStream.OnInitializing">
            <summary>
            Gets the callback that gets called before the media container's input context gets initialized for the <see cref="T:CSVideoPlayer.IMediaInputStream"/>.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaInputStream.OnInitialized">
            <summary>
            Gets the callback that gets called when the media container's input format context has been initialized for the <see cref="T:CSVideoPlayer.IMediaInputStream"/>.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IMediaInputStream.Read(System.Void*,System.Byte*,System.Int32)">
            <summary>
            Reads from the underlying stream and writes up to <paramref name="targetBufferLength"/> bytes
            to the <paramref name="targetBuffer"/>. Returns the number of bytes that were written.
            </summary>
            <param name="opaque">An FFmpeg provided opaque reference.</param>
            <param name="targetBuffer">The target buffer.</param>
            <param name="targetBufferLength">Length of the target buffer.</param>
            <returns>The number of bytes that have been read.</returns>
        </member>
        <member name="M:CSVideoPlayer.IMediaInputStream.Seek(System.Void*,System.Int64,System.Int32)">
            <summary>
            Seeks to the specified offset. The offset can be in byte position or in time units.
            This is specified by the whence parameter which is one of the AVSEEK prefixed constants.
            </summary>
            <param name="opaque">The opaque.</param>
            <param name="offset">The offset.</param>
            <param name="whence">The whence.</param>
            <returns>The position in bytes or time scale that has been read.</returns>
        </member>
        <member name="T:CSVideoPlayer.MediaContainerException">
            <inheritdoc cref="T:System.Exception"/>
            <summary>
            A Media Container Exception.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaContainerException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaContainerException"/> class.
            </summary>
            <param name="message">The message that describes the error.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaContainerException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaContainerException"/> class.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaContainerException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaContainerException"/> class.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaContainerException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaContainerException"/> class.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="T:CSVideoPlayer.MediaInfo">
            <summary>
            Holds media information about the input, its chapters, programs and individual stream components.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaInfo.#ctor(CSVideoPlayer.MediaContainer)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaInfo"/> class.
            </summary>
            <param name="container">The container.</param>
        </member>
        <member name="P:CSVideoPlayer.MediaInfo.MediaSource">
            <summary>
            Gets the input URL string used to access and create the media container.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaInfo.Format">
            <summary>
            Gets the name of the container format.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaInfo.Metadata">
            <summary>
            Gets the metadata for the input. This may include stuff like title, creation date, company name, etc.
            Individual stream components, chapters and programs may contain additional metadata.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaInfo.Duration">
            <summary>
            Gets the duration of the input as reported by the container format.
            Individual stream components may have different values.
            Returns TimeSpan.MinValue if unknown.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaInfo.StartTime">
            <summary>
            Gets the start timestamp of the input as reported by the container format.
            Individual stream components may have different values.
            Returns TimeSpan.MinValue if unknown.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaInfo.BitRate">
            <summary>
            If available, returns a non-zero value as reported by the container format.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaInfo.Chapters">
            <summary>
            Gets a list of chapters.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaInfo.Programs">
            <summary>
            Gets a list of programs with their associated streams.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaInfo.Streams">
            <summary>
            Gets the dictionary of stream information components by stream index.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaInfo.BestStreams">
            <summary>
            Provides access to the best streams of each media type found in the container.
            This uses some internal FFmpeg heuristics.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaInfo.ExtractStreams(FFmpeg.AutoGen.AVFormatContext*)">
            <summary>
            Extracts the stream infos from the input.
            </summary>
            <param name="inputContext">The input context.</param>
            <returns>The list of stream infos.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaInfo.FindBestStreams(FFmpeg.AutoGen.AVFormatContext*,System.Collections.Generic.IReadOnlyDictionary{System.Int32,CSVideoPlayer.StreamInfo})">
            <summary>
            Finds the best streams for audio video, and subtitles.
            </summary>
            <param name="ic">The ic.</param>
            <param name="streams">The streams.</param>
            <returns>The star infos.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaInfo.ExtractChapters(FFmpeg.AutoGen.AVFormatContext*)">
            <summary>
            Extracts the chapters from the input.
            </summary>
            <param name="ic">The ic.</param>
            <returns>The chapters.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaInfo.ExtractPrograms(FFmpeg.AutoGen.AVFormatContext*,System.Collections.Generic.IReadOnlyDictionary{System.Int32,CSVideoPlayer.StreamInfo})">
            <summary>
            Extracts the programs from the input and creates associations between programs and streams.
            </summary>
            <param name="ic">The ic.</param>
            <param name="streams">The streams.</param>
            <returns>The program information.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaInfo.GetHardwareDecoders(FFmpeg.AutoGen.AVCodecID)">
            <summary>
            Gets the available hardware decoder codecs for the given codec id (codec family).
            </summary>
            <param name="codecFamily">The codec family.</param>
            <returns>A list of hardware-enabled decoder codec names.</returns>
        </member>
        <member name="T:CSVideoPlayer.StreamInfo">
            <summary>
            Represents media stream information.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.StreamId">
            <summary>
            Gets the stream identifier. This is different from the stream index.
            Typically this value is not very useful.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.StreamIndex">
            <summary>
            Gets the index of the stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.CodecType">
            <summary>
            Gets the type of the codec.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.CodecTypeName">
            <summary>
            Gets the name of the codec type. Audio, Video, Subtitle, Data, etc.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.Codec">
            <summary>
            Gets the codec identifier.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.CodecName">
            <summary>
            Gets the name of the codec.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.CodecProfile">
            <summary>
            Gets the codec profile. Only valid for H.264 or
            video codecs that use profiles. Otherwise empty.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.CodecTag">
            <summary>
            Gets the codec tag. Not very useful except for fixing bugs with
            some demuxer scenarios.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.HasClosedCaptions">
            <summary>
            Gets a value indicating whether this stream has closed captions.
            Typically this is set for video streams.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.IsLossless">
            <summary>
            Gets a value indicating whether this stream contains lossless compressed data.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.PixelFormat">
            <summary>
            Gets the pixel format. Only valid for Video streams.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.PixelWidth">
            <summary>
            Gets the width of the video frames.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.PixelHeight">
            <summary>
            Gets the height of the video frames.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.FieldOrder">
            <summary>
            Gets the field order. This is useful to determine
            if the video needs de-interlacing.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.IsInterlaced">
            <summary>
            Gets a value indicating whether the video frames are interlaced.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.ColorRange">
            <summary>
            Gets the video color range.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.SampleRate">
            <summary>
            Gets the audio sample rate.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.SampleFormat">
            <summary>
            Gets the audio sample format.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.TimeBase">
            <summary>
            Gets the stream time base unit in seconds.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.SampleAspectRatio">
            <summary>
            Gets the sample aspect ratio.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.DisplayAspectRatio">
            <summary>
            Gets the display aspect ratio.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.BitRate">
            <summary>
            Gets the reported bit rate. 9 for unavailable.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.MaxBitRate">
            <summary>
            Gets the maximum bit rate for variable bit rate streams. 0 if unavailable.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.InfoFrameCount">
            <summary>
            Gets the number of frames that were read to obtain the stream's information.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.ReferenceFrameCount">
            <summary>
            Gets the number of reference frames.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.FPS">
            <summary>
            Gets the average FPS reported by the stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.TBR">
            <summary>
            Gets the real (base) frame rate of the stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.TBN">
            <summary>
            Gets the fundamental unit of time in 1/seconds used to represent timestamps in the stream, according to the stream data.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.TBC">
            <summary>
            Gets the fundamental unit of time in 1/seconds used to represent timestamps in the stream ,according to the codec.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.Disposition">
            <summary>
            Gets the disposition flags.
            Please see ffmpeg.AV_DISPOSITION_* fields.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.IsAttachedPictureDisposition">
            <summary>
            Gets a value indicating whether this instance is attached picture disposition.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.StartTime">
            <summary>
            Gets the start time.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.Duration">
            <summary>
            Gets the duration.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.Metadata">
            <summary>
            Gets the stream's metadata.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.HardwareDevices">
            <summary>
            Gets the compatible hardware device configurations for the stream's codec.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.HardwareDecoders">
            <summary>
            Gets a list of compatible hardware decoder names.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.StreamInfo.Language">
            <summary>
            Gets the language string from the stream's metadata.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.ChapterInfo">
            <summary>
            Represents a chapter within a container.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ChapterInfo.Index">
            <summary>
            Gets the chapter index.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ChapterInfo.ChapterId">
            <summary>
            Gets the chapter identifier.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ChapterInfo.StartTime">
            <summary>
            Gets the start time of the chapter.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ChapterInfo.EndTime">
            <summary>
            Gets the end time of the chapter.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ChapterInfo.Metadata">
            <summary>
            Gets the chapter metadata.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.ProgramInfo">
            <summary>
            Represents a program and its associated streams within a container.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ProgramInfo.ProgramNumber">
            <summary>
            Gets the program number.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ProgramInfo.ProgramId">
            <summary>
            Gets the program identifier.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ProgramInfo.Metadata">
            <summary>
            Gets the program metadata.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ProgramInfo.Streams">
            <summary>
            Gets the associated program streams.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ProgramInfo.Name">
            <summary>
            Gets the name of the program. Empty if unavailable.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.MediaLogMessageType">
            <summary>
            Defines the different log message types received by the log handler.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaLogMessageType.None">
            <summary>
            The none message type
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaLogMessageType.Info">
            <summary>
            The information message type
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaLogMessageType.Debug">
            <summary>
            The debug message type
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaLogMessageType.Trace">
            <summary>
            The trace message type
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaLogMessageType.Error">
            <summary>
            The error message type
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaLogMessageType.Warning">
            <summary>
            The warning message type
            </summary>
        </member>
        <member name="T:CSVideoPlayer.MediaOptions">
            <summary>
            Represents options that applied creating the individual media stream components.
            Once the container has created the media components, changing these options will have no effect.
            See: https://www.ffmpeg.org/ffmpeg-all.html#Main-options
            Partly a port of https://github.com/FFmpeg/FFmpeg/blob/master/fftools/ffmpeg_opt.c.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaOptions.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaOptions"/> class.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.DecoderParams">
            <summary>
            Provides access to the global and per-stream decoder options
            See https://www.ffmpeg.org/ffmpeg-codecs.html#Codec-Options.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.DecoderCodec">
            <summary>
            A dictionary of stream indexes and force decoder codec names.
            This is equivalent to the -codec Main option.
            See: https://www.ffmpeg.org/ffmpeg-all.html#Main-options (-codec option).
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.SubtitlesDelay">
            <summary>
            Gets or sets the amount of time to offset the subtitles by
            This is an FFME-only property -- Not a port of ffmpeg.
            TODO: Consider moving this property to RendererOptions.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.VideoHardwareDevice">
            <summary>
            Use Stream's HardwareDevices property to get a list of
            compatible hardware accelerators.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.IsAudioDisabled">
            <summary>
            Prevent reading from audio stream components.
            Port of audio_disable.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.IsVideoDisabled">
            <summary>
            Prevent reading from video stream components.
            Port of video_disable.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.IsSubtitleDisabled">
            <summary>
            Prevent reading from subtitle stream components.
            Port of subtitle_disable
            Subtitles are not yet first-class citizens in FFmpeg and
            this is why they are disabled by default.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.VideoFilter">
            <summary>
            Allows for a custom video filter string.
            Please see: https://ffmpeg.org/ffmpeg-filters.html#Video-Filters.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.VideoForcedFps">
            <summary>
            Specifies a forced FPS value for the input video stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.VideoStream">
            <summary>
            Initially contains the best suitable video stream.
            Can be changed to a different stream reference.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.VideoSeekIndex">
            <summary>
            Gets or sets the video seek index.
            Use <see cref="M:CSVideoPlayer.Library.CreateVideoSeekIndex(System.String)"/> or
            <see cref="M:CSVideoPlayer.Library.CreateVideoSeekIndex(System.String,System.Int32)"/> and set this
            field while loading the options.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.AudioFilter">
            <summary>
            Allows for a custom audio filter string.
            Please see: https://ffmpeg.org/ffmpeg-filters.html#Audio-Filters.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.AudioStream">
            <summary>
            Initially contains the best suitable audio stream.
            Can be changed to a different stream reference.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.SubtitleStream">
            <summary>
            Initially contains the best suitable subtitle stream.
            Can be changed to a different stream reference.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.SubtitlesSource">
            <summary>
            Gets or sets the subtitles URL.
            If set, the subtitles will be side-loaded and the loaded media
            subtitles (if any) will be ignored.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.VideoBlockCache">
            <summary>
            Gets or sets the number of video blocks to cache in the decoder.
            Leave as -1 for auto. Please note that increasing the amount of
            blocks, significantly increases RAM usage.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.AudioBlockCache">
            <summary>
            Gets or sets the number of audio blocks to cache in the decoder.
            Leave as -1 for auto. Please note that increasing the amount of
            blocks, significantly increases RAM usage.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.SubtitleBlockCache">
            <summary>
            Gets or sets the number of audio blocks to cache in the decoder.
            Leave as -1 for auto. Please note that increasing the amount of
            blocks, significantly increases RAM usage.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.IsTimeSyncDisabled">
            <summary>
            Only recommended for live streams. Gets or sets a value indicating whether each component needs to run
            its timing independently. This property is useful when for example when
            the audio and the video components of the stream have no timing relationship or when you don't need the
            components to be synchronized between them.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.MinimumPlaybackBufferPercent">
            <summary>
            Typically, and especially for live streams, you want to wait for some packet data to become available before resuming
            playback. The buffer percent represents 1 second of data for each component -- excluding subtitles.
            Valid range is from 0.0 (do not wait for packet data) to 1.0 (wait for 1 second on each component.
            This defaults to 0.5 which is suitable for most live streams.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.UseParallelDecoding">
            <summary>
            Gets or sets a value indicating whether component frames are decoded in
            parallel. This defaults to false but it is enabled automatically when <see cref="P:CSVideoPlayer.MediaOptions.IsTimeSyncDisabled"/> is enabled.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.UseParallelRendering">
            <summary>
            Gets or sets a value indicating whether component blocks are sent to their corresponding
            renderers in parallel. This defaults to false.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaOptions.IsFluidSeekingDisabled">
            <summary>
            When seeking, the default behavior is to render video frames as soon as they become available and
            thus creating an effect of fluidity when quickly seeking through the media stream. You can
            disable this effect and frames will not be rendered until the seek operation completes.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.MediaPlaybackState">
            <summary>
            Media States compatible with MediaState enumeration.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaPlaybackState.Manual">
            <summary>
            The manual status
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaPlaybackState.Play">
            <summary>
            The play status
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaPlaybackState.Close">
            <summary>
            The close status
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaPlaybackState.Pause">
            <summary>
            The pause status
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaPlaybackState.Stop">
            <summary>
            The stop status
            </summary>
        </member>
        <member name="T:CSVideoPlayer.MediaType">
            <summary>
            Enumerates the different Media Types compatible with AVMEDIATYPE_* constants
            defined by FFmpeg.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaType.None">
            <summary>
            Represents an un-existing media type (-1)
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaType.Video">
            <summary>
            The video media type (0)
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaType.Audio">
            <summary>
            The audio media type (1)
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaType.Subtitle">
            <summary>
            The subtitle media type (3)
            </summary>
        </member>
        <member name="T:CSVideoPlayer.OptionMetadata">
            <summary>
            Provides information about a named option for a demuxer or a codec.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.OptionMetadata.#ctor(FFmpeg.AutoGen.AVOption*)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.OptionMetadata"/> class.
            </summary>
            <param name="option">The option.</param>
        </member>
        <member name="P:CSVideoPlayer.OptionMetadata.Name">
            <summary>
            Gets the name.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.OptionMetadata.Flags">
            <summary>
            Gets the flags.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.OptionMetadata.IsEncodingOption">
            <summary>
            Gets a value indicating whether this instance is encoding option.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.OptionMetadata.IsDecodingOption">
            <summary>
            Gets a value indicating whether this instance is decoding option.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.OptionMetadata.IsFilteringOption">
            <summary>
            Gets a value indicating whether this instance is filtering option.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.OptionMetadata.IsAudioOption">
            <summary>
            Gets a value indicating whether this instance is audio option.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.OptionMetadata.IsSubtitleOption">
            <summary>
            Gets a value indicating whether this instance is subtitle option.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.OptionMetadata.IsVideoOption">
            <summary>
            Gets a value indicating whether this instance is video option.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.OptionMetadata.IsBsfOption">
            <summary>
            Gets a value indicating whether this instance is BSF option.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.OptionMetadata.IsReadonly">
            <summary>
            Gets a value indicating whether this instance is readonly.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.OptionMetadata.IsExported">
            <summary>
            Gets a value indicating whether this instance is exported.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.OptionMetadata.OptionType">
            <summary>
            Gets the type of the option.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.OptionMetadata.DefaultLong">
            <summary>
            Gets the default long.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.OptionMetadata.DefaultDouble">
            <summary>
            Gets the default double.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.OptionMetadata.DefaultRational">
            <summary>
            Gets the default rational.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.OptionMetadata.HelpText">
            <summary>
            Gets the help text.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.OptionMetadata.Min">
            <summary>
            Gets the minimum.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.OptionMetadata.Max">
            <summary>
            Gets the maximum.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.OptionMetadata.ToString">
            <summary>
            Returns a <see cref="T:System.String" /> that represents this instance.
            </summary>
            <returns>
            A <see cref="T:System.String" /> that represents this instance.
            </returns>
        </member>
        <member name="T:CSVideoPlayer.VideoResolutionDivider">
            <summary>
            Enumerates the different low resolution divider indices.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.VideoResolutionDivider.Full">
            <summary>
            Represents no resolution reduction
            </summary>
        </member>
        <member name="F:CSVideoPlayer.VideoResolutionDivider.Half">
            <summary>
            Represents 1/2 resolution
            </summary>
        </member>
        <member name="F:CSVideoPlayer.VideoResolutionDivider.Quarter">
            <summary>
            Represents 1/4 resolution
            </summary>
        </member>
        <member name="F:CSVideoPlayer.VideoResolutionDivider.Eighth">
            <summary>
            Represents 1/8 resolution
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoSeekIndex">
            <summary>
            Provides a collection of <see cref="T:CSVideoPlayer.VideoSeekIndexEntry"/>.
            Seek entries are contain specific positions where key frames (or I frames) are located
            within a seekable stream.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndex.#ctor(System.String,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.VideoSeekIndex"/> class.
            </summary>
            <param name="mediaSource">The source URL.</param>
            <param name="streamIndex">Index of the stream.</param>
        </member>
        <member name="P:CSVideoPlayer.VideoSeekIndex.Entries">
            <summary>
            Provides access to the seek entries.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoSeekIndex.StreamIndex">
            <summary>
            Gets the stream index this seeking index belongs to.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoSeekIndex.MediaSource">
            <summary>
            Gets the source URL this seeking index belongs to.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndex.Load(System.IO.Stream)">
            <summary>
            Loads the specified stream in the CSV-like UTF8 format it was written by the <see cref="M:CSVideoPlayer.VideoSeekIndex.Save(System.IO.Stream)"/> method.
            </summary>
            <param name="stream">The stream.</param>
            <returns>The loaded index from the specified stream.</returns>
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndex.Save(System.IO.Stream)">
            <summary>
            Writes the index data to the specified stream in CSV-like UTF8 text format.
            </summary>
            <param name="stream">The stream to write data to.</param>
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndex.Find(System.TimeSpan)">
            <summary>
            Finds the closest seek entry that is on or prior to the seek target.
            </summary>
            <param name="seekTarget">The seek target.</param>
            <returns>The seek entry or null of not found.</returns>
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndex.TryAdd(CSVideoPlayer.VideoFrame)">
            <summary>
            Tries to add an entry created from the frame.
            </summary>
            <param name="managedFrame">The managed frame.</param>
            <returns>
            True if the index entry was created from the frame.
            False if the frame is of wrong picture type or if it already existed.
            </returns>
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndex.AddMonotonicEntries(System.TimeSpan)">
            <summary>
            Adds the monotonic entries up to a stream duration.
            </summary>
            <param name="streamDuration">Duration of the stream.</param>
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndex.ComputeMonotonicDistance">
            <summary>
            Gets the monotonic presentation distance units that separate the last entries in the index.
            Returns -1 if there are less than 2 entries or if the entries are not monotonic.
            </summary>
            <returns>-1 if the entries are not monotonic.</returns>
        </member>
        <member name="T:CSVideoPlayer.VideoSeekIndex.VideoSeekIndexEntryComparer">
            <summary>
            A comparer for <see cref="T:CSVideoPlayer.VideoSeekIndexEntry"/>.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndex.VideoSeekIndexEntryComparer.Compare(CSVideoPlayer.VideoSeekIndexEntry,CSVideoPlayer.VideoSeekIndexEntry)">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.VideoSeekIndexEntry">
            <summary>
            Represents a seek entry to a position within the stream.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndexEntry.#ctor(System.Int32,System.Int32,System.Int32,System.Int64,System.Int64,System.Int64)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.VideoSeekIndexEntry" /> class.
            </summary>
            <param name="streamIndex">Index of the stream.</param>
            <param name="timeBaseNum">The time base numerator.</param>
            <param name="timeBaseDen">The time base deonominator.</param>
            <param name="startTimeTicks">The start time ticks.</param>
            <param name="presentationTime">The presentation time.</param>
            <param name="decodingTime">The decoding time.</param>
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndexEntry.#ctor(CSVideoPlayer.VideoFrame)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.VideoSeekIndexEntry"/> class.
            </summary>
            <param name="frame">The frame.</param>
        </member>
        <member name="P:CSVideoPlayer.VideoSeekIndexEntry.StreamIndex">
            <summary>
            Gets the stream index of this index entry.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoSeekIndexEntry.StreamTimeBase">
            <summary>
            Gets the stream time base.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoSeekIndexEntry.StartTime">
            <summary>
            Gets the start time of the frame.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoSeekIndexEntry.PresentationTime">
            <summary>
            Gets the original, unadjusted presentation time.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoSeekIndexEntry.DecodingTime">
            <summary>
            Gets the original, unadjusted decoding time.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndexEntry.op_Equality(CSVideoPlayer.VideoSeekIndexEntry,CSVideoPlayer.VideoSeekIndexEntry)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndexEntry.op_Inequality(CSVideoPlayer.VideoSeekIndexEntry,CSVideoPlayer.VideoSeekIndexEntry)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndexEntry.op_LessThan(CSVideoPlayer.VideoSeekIndexEntry,CSVideoPlayer.VideoSeekIndexEntry)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndexEntry.op_LessThanOrEqual(CSVideoPlayer.VideoSeekIndexEntry,CSVideoPlayer.VideoSeekIndexEntry)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndexEntry.op_GreaterThan(CSVideoPlayer.VideoSeekIndexEntry,CSVideoPlayer.VideoSeekIndexEntry)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndexEntry.op_GreaterThanOrEqual(CSVideoPlayer.VideoSeekIndexEntry,CSVideoPlayer.VideoSeekIndexEntry)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndexEntry.CompareTo(CSVideoPlayer.VideoSeekIndexEntry)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndexEntry.CompareTo(System.TimeSpan)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndexEntry.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndexEntry.Equals(CSVideoPlayer.VideoSeekIndexEntry)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndexEntry.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndexEntry.ToString">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndexEntry.FromCsvString(System.String)">
            <summary>
            Creates an entry based on a CSV string.
            </summary>
            <param name="line">The line.</param>
            <returns>An index entry or null if unsuccessful.</returns>
        </member>
        <member name="M:CSVideoPlayer.VideoSeekIndexEntry.ToCsvString">
            <summary>
            Converts values of this instance to a line of CSV text.
            </summary>
            <returns>The comma-separated values.</returns>
        </member>
        <member name="T:CSVideoPlayer.AudioBlock">
            <summary>
            A scaled, pre-allocated audio frame container.
            The buffer is in 16-bit signed, interleaved sample data.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AudioBlock.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.AudioBlock"/> class.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.AudioBlock.SampleRate">
            <summary>
            Gets the sample rate.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.AudioBlock.ChannelCount">
            <summary>
            Gets the channel count.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.AudioBlock.SamplesPerChannel">
            <summary>
            Gets the available samples per channel.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.AudioBlock.SamplesBufferLength">
            <summary>
            Gets the length of the samples buffer. This might differ from the <see cref="P:CSVideoPlayer.MediaBlock.BufferLength"/>
            property after scaling but must always be less than or equal to it.
            </summary>
            <value>
            The length of the samples buffer.
            </value>
        </member>
        <member name="M:CSVideoPlayer.AudioBlock.Deallocate">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.AudioComponent">
            <summary>
            Provides audio sample extraction, decoding and scaling functionality.
            </summary>
            <seealso cref="T:CSVideoPlayer.MediaComponent" />
        </member>
        <member name="F:CSVideoPlayer.AudioComponent.Scaler">
            <summary>
            Holds a reference to the audio re-sampler
            This re-sampler gets disposed upon disposal of this object.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.AudioComponent.LastSourceSpec">
            <summary>
            Used to determine if we have to reset the scaler parameters.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AudioComponent.#ctor(CSVideoPlayer.MediaContainer,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.AudioComponent"/> class.
            </summary>
            <param name="container">The container.</param>
            <param name="streamIndex">Index of the stream.</param>
        </member>
        <member name="P:CSVideoPlayer.AudioComponent.Channels">
            <summary>
            Gets the number of audio channels.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.AudioComponent.SampleRate">
            <summary>
            Gets the audio sample rate.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.AudioComponent.BitsPerSample">
            <summary>
            Gets the bits per sample.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.AudioComponent.FilterString">
            <summary>
            Provides access to the AudioFilter string of the container's MediaOptions.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AudioComponent.MaterializeFrame(CSVideoPlayer.MediaFrame,CSVideoPlayer.MediaBlock@,CSVideoPlayer.MediaBlock)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AudioComponent.CreateFrameSource(System.IntPtr)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AudioComponent.Dispose(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AudioComponent.DestroyFilterGraph">
            <summary>
            Destroys the filter graph releasing unmanaged resources.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AudioComponent.ComputeFilterArguments(FFmpeg.AutoGen.AVFrame*)">
            <summary>
            Computes the frame filter arguments that are appropriate for the audio filtering chain.
            </summary>
            <param name="frame">The frame.</param>
            <returns>The base filter arguments.</returns>
        </member>
        <member name="M:CSVideoPlayer.AudioComponent.InitializeFilterGraph(FFmpeg.AutoGen.AVFrame*)">
            <summary>
            If necessary, disposes the existing filter graph and creates a new one based on the frame arguments.
            </summary>
            <param name="frame">The frame.</param>
            <exception cref="T:CSVideoPlayer.MediaContainerException">
            avfilter_graph_create_filter
            or
            avfilter_graph_create_filter
            or
            avfilter_link
            or
            avfilter_graph_parse
            or
            avfilter_graph_config.
            </exception>
        </member>
        <member name="T:CSVideoPlayer.AudioFrame">
            <inheritdoc />
            <summary>
            Represents a wrapper from an unmanaged FFmpeg audio frame.
            </summary>
            <seealso cref="T:CSVideoPlayer.MediaFrame" />
            <seealso cref="T:System.IDisposable" />
        </member>
        <member name="M:CSVideoPlayer.AudioFrame.#ctor(FFmpeg.AutoGen.AVFrame*,CSVideoPlayer.MediaComponent)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.AudioFrame" /> class.
            </summary>
            <param name="frame">The frame.</param>
            <param name="component">The component.</param>
        </member>
        <member name="P:CSVideoPlayer.AudioFrame.Pointer">
            <summary>
            Gets the pointer to the unmanaged frame.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AudioFrame.Dispose">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.HardwareAccelerator">
            <summary>
            Encapsulates Hardware Accelerator Properties.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.HardwareAccelerator.#ctor(CSVideoPlayer.VideoComponent,CSVideoPlayer.HardwareDeviceInfo)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.HardwareAccelerator"/> class.
            </summary>
            <param name="component">The component this accelerator is attached to.</param>
            <param name="selectedConfig">The selected hardware device configuration.</param>
        </member>
        <member name="P:CSVideoPlayer.HardwareAccelerator.Name">
            <summary>
            Gets the name of the HW accelerator.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.HardwareAccelerator.Component">
            <summary>
            Gets the component this accelerator is attached to..
            </summary>
        </member>
        <member name="P:CSVideoPlayer.HardwareAccelerator.PixelFormat">
            <summary>
            Gets the hardware output pixel format.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.HardwareAccelerator.DeviceType">
            <summary>
            Gets the type of the hardware device.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.HardwareAccelerator.GetFormatCallback">
            <summary>
            Gets the callback used to resolve the hardware pixel format.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.HardwareAccelerator.GetCompatibleDevices(FFmpeg.AutoGen.AVCodecID)">
            <summary>
            Gets the supported hardware decoder device types for the given codec.
            </summary>
            <param name="codecId">The codec identifier.</param>
            <returns>
            A list of hardware device decoders compatible with the codec.
            </returns>
        </member>
        <member name="M:CSVideoPlayer.HardwareAccelerator.ExchangeFrame(FFmpeg.AutoGen.AVCodecContext*,FFmpeg.AutoGen.AVFrame*,System.Boolean@)">
            <summary>
            Downloads the frame from the hardware into a software frame if possible.
            The input hardware frame gets freed and the return value will point to the new software frame.
            </summary>
            <param name="codecContext">The codec context.</param>
            <param name="input">The input frame coming from the decoder (may or may not be hardware).</param>
            <param name="isHardwareFrame">if set to <c>true</c> [comes from hardware] otherwise, hardware decoding was not performed.</param>
            <returns>
            The frame downloaded from the device into RAM.
            </returns>
            <exception cref="T:System.Exception">Failed to transfer data to output frame.</exception>
        </member>
        <member name="M:CSVideoPlayer.HardwareAccelerator.GetPixelFormat(FFmpeg.AutoGen.AVCodecContext*,FFmpeg.AutoGen.AVPixelFormat*)">
            <summary>
            Gets the pixel format.
            Port of (get_format) method in ffmpeg.c.
            </summary>
            <param name="context">The codec context.</param>
            <param name="pixelFormats">The pixel formats.</param>
            <returns>The real pixel format that the codec will be using.</returns>
        </member>
        <member name="T:CSVideoPlayer.MediaBlock">
            <summary>
            A base class for blocks of the different MediaTypes.
            Blocks are the result of decoding and scaling a frame.
            Blocks have pre-allocated buffers which makes them memory and CPU efficient.
            Reuse blocks as much as possible. Once you create a block from a frame,
            you don't need the frame anymore so make sure you dispose the frame.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.#ctor(CSVideoPlayer.MediaType)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaBlock" /> class.
            </summary>
            <param name="mediaType">Type of the media.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.Finalize">
            <summary>
            Finalizes an instance of the <see cref="T:CSVideoPlayer.MediaBlock"/> class.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlock.MediaType">
            <summary>
            Gets the media type of the data.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlock.CompressedSize">
            <summary>
            Gets the size of the compressed frame.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlock.IsStartTimeGuessed">
            <summary>
            Gets a value indicating whether the start time was guessed from siblings
            or the source frame PTS comes from a NO PTS value.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlock.StartTime">
            <summary>
            Gets the time at which this data should be presented (PTS).
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlock.Duration">
            <summary>
            Gets the amount of time this data has to be presented.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlock.EndTime">
            <summary>
            Gets the end time.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlock.StreamIndex">
            <summary>
            Gets the index of the stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlock.Buffer">
            <summary>
            Gets a pointer to the first byte of the unmanaged data buffer.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlock.BufferLength">
            <summary>
            Gets the length of the unmanaged buffer in bytes.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlock.IsAllocated">
            <summary>
            Gets a value indicating whether an unmanaged buffer has been allocated.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlock.IsDisposed">
            <summary>
            Gets a value indicating whether this block is disposed.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlock.Index">
            <summary>
            Gets or sets the index within the block buffer.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlock.Next">
            <summary>
            Gets or sets the next MediaBlock.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlock.Previous">
            <summary>
            Gets or sets the previous MediaBlock.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.op_Equality(CSVideoPlayer.MediaBlock,CSVideoPlayer.MediaBlock)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.op_Inequality(CSVideoPlayer.MediaBlock,CSVideoPlayer.MediaBlock)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.op_LessThan(CSVideoPlayer.MediaBlock,CSVideoPlayer.MediaBlock)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.op_LessThanOrEqual(CSVideoPlayer.MediaBlock,CSVideoPlayer.MediaBlock)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.op_GreaterThan(CSVideoPlayer.MediaBlock,CSVideoPlayer.MediaBlock)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.op_GreaterThanOrEqual(CSVideoPlayer.MediaBlock,CSVideoPlayer.MediaBlock)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.TryAcquireReaderLock(System.IDisposable@)">
            <summary>
            Tries the acquire a reader lock on the unmanaged buffer.
            Returns false if the buffer has been disposed.
            </summary>
            <param name="locker">The locker.</param>
            <returns>The disposable lock.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.TryAcquireWriterLock(System.IDisposable@)">
            <summary>
            Tries the acquire a writer lock on the unmanaged buffer.
            Returns false if the buffer has been disposed or a lock operation times out.
            </summary>
            <param name="locker">The locker.</param>
            <returns>The disposable lock.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.Contains(System.TimeSpan)">
            <summary>
            Determines whether this media block holds the specified position.
            Returns false if it does not have a valid duration.
            </summary>
            <param name="position">The position.</param>
            <returns>
              <c>true</c> if [contains] [the specified position]; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.CompareTo(CSVideoPlayer.MediaBlock)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.CompareTo(System.TimeSpan)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.CompareTo(System.Int64)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.Equals(CSVideoPlayer.MediaBlock)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.Dispose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.Allocate(System.Int32)">
            <summary>
            Allocates the specified buffer length.
            </summary>
            <param name="bufferLength">Length of the buffer.</param>
            <returns>True if the buffer is successfully allocated.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="alsoManaged"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaBlock.Deallocate">
            <summary>
            De-allocates the picture buffer and resets the related buffer properties.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.MediaBlockBuffer">
            <summary>
            Represents a set of pre-allocated media blocks of the same media type.
            A block buffer contains playback and pool blocks. Pool blocks are blocks that
            can be reused. Playback blocks are blocks that have been filled.
            This class is thread safe.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaBlockBuffer.PoolBlocks">
            <summary>
            The blocks that are available to be filled.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaBlockBuffer.PlaybackBlocks">
            <summary>
            The blocks that are available for rendering.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaBlockBuffer.SyncLock">
            <summary>
            Controls multiple reads and exclusive writes.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaBlockBuffer.#ctor(System.Int32,CSVideoPlayer.MediaType)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaBlockBuffer"/> class.
            </summary>
            <param name="capacity">The capacity.</param>
            <param name="mediaType">Type of the media.</param>
        </member>
        <member name="P:CSVideoPlayer.MediaBlockBuffer.MediaType">
            <summary>
            Gets the media type of the block buffer.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlockBuffer.Capacity">
            <summary>
            Gets the maximum count of this buffer.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlockBuffer.IsDisposed">
            <summary>
            Gets a value indicating whether this instance is disposed.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlockBuffer.RangeStartTime">
            <summary>
            Gets the start time of the first block.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlockBuffer.RangeMidTime">
            <summary>
            Gets the middle time of the range.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlockBuffer.RangeEndTime">
            <summary>
            Gets the end time of the last block.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlockBuffer.RangeDuration">
            <summary>
            Gets the range of time between the first block and the end time of the last block.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlockBuffer.RangeBitRate">
            <summary>
            Gets the compressed data bit rate from which media blocks were created.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlockBuffer.AverageBlockDuration">
            <summary>
            Gets the average duration of the currently available playback blocks.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlockBuffer.IsMonotonic">
            <summary>
            Gets a value indicating whether all the durations of the blocks are equal.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlockBuffer.MonotonicDuration">
            <summary>
            Gets the duration of the blocks. If the blocks are not monotonic returns zero.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlockBuffer.Count">
            <summary>
            Gets the number of available playback blocks.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlockBuffer.CapacityPercent">
            <summary>
            Gets the usage percent from 0.0 to 1.0.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlockBuffer.IsFull">
            <summary>
            Gets a value indicating whether the playback blocks are all allocated.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaBlockBuffer.Item(System.Int32)">
            <summary>
            Gets the <see cref="T:CSVideoPlayer.MediaBlock" /> at the specified index.
            </summary>
            <value>
            The <see cref="T:CSVideoPlayer.MediaBlock"/>.
            </value>
            <param name="index">The index.</param>
            <returns>The media block.</returns>
        </member>
        <member name="P:CSVideoPlayer.MediaBlockBuffer.Item(System.Int64)">
            <summary>
            Gets the <see cref="T:CSVideoPlayer.MediaBlock" /> at the specified timestamp.
            </summary>
            <value>
            The <see cref="T:CSVideoPlayer.MediaBlock"/>.
            </value>
            <param name="positionTicks">The position to lookup.</param>
            <returns>The media block.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlockBuffer.GetRangePercent(System.TimeSpan)">
            <summary>
            Gets the percentage of the range for the given time position.
            A value of less than 0 means the position is behind (lagging).
            A value of more than 1 means the position is beyond the range).
            </summary>
            <param name="position">The position.</param>
            <returns>The percent of the range.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlockBuffer.Neighbors(CSVideoPlayer.MediaBlock)">
            <summary>
            Gets the neighboring blocks in an atomic operation.
            The first item in the array is the previous block. The second is the next block. The third is the current block.
            </summary>
            <param name="current">The current block to get neighbors from.</param>
            <returns>The previous (if any) and next (if any) blocks.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlockBuffer.Neighbors(System.TimeSpan)">
            <summary>
            Gets the neighboring blocks in an atomic operation.
            The first item in the array is the previous block. The second is the next block. The third is the current block.
            </summary>
            <param name="position">The current block position to get neighbors from.</param>
            <returns>The previous (if any) and next (if any) blocks.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlockBuffer.Next(CSVideoPlayer.MediaBlock)">
            <summary>
            Retrieves the block following the provided current block.
            If the argument is null and there are blocks, the first block is returned.
            </summary>
            <param name="current">The current block.</param>
            <returns>The next media block.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlockBuffer.ContinuousNext(CSVideoPlayer.MediaBlock)">
            <summary>
            Retrieves the next time-continuous block.
            </summary>
            <param name="current">The current.</param>
            <returns>The next time-continuous block.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlockBuffer.Previous(CSVideoPlayer.MediaBlock)">
            <summary>
            Retrieves the block prior the provided current block.
            If the argument is null and there are blocks, the last block is returned.
            </summary>
            <param name="current">The current block.</param>
            <returns>The next media block.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlockBuffer.IsInRange(System.TimeSpan)">
            <summary>
            Determines whether the given render time is within the range of playback blocks.
            </summary>
            <param name="renderTime">The render time.</param>
            <returns>
              <c>true</c> if [is in range] [the specified render time]; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlockBuffer.IndexOf(System.Int64)">
            <summary>
            Retrieves the index of the playback block corresponding to the specified
            render time. This uses very fast binary and linear search combinations.
            If there are no playback blocks it returns -1.
            If the render time is greater than the range end time, it returns the last playback block index.
            If the render time is less than the range start time, it returns the first playback block index.
            </summary>
            <param name="renderTimeTicks">The render time.</param>
            <returns>The media block's index.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlockBuffer.Dispose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaBlockBuffer.Add(CSVideoPlayer.MediaFrame,CSVideoPlayer.MediaContainer)">
            <summary>
            Adds a block to the playback blocks by converting the given frame.
            If there are no more blocks in the pool, the oldest block is returned to the pool
            and reused for the new block. The source frame is automatically disposed.
            </summary>
            <param name="source">The source.</param>
            <param name="container">The container.</param>
            <returns>The filled block.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlockBuffer.Clear">
            <summary>
            Clears all the playback blocks returning them to the
            block pool.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaBlockBuffer.Debug">
            <summary>
            Returns a formatted string with information about this buffer.
            </summary>
            <returns>The formatted string.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlockBuffer.GetSnapPosition(System.TimeSpan)">
            <summary>
            Gets the snap, discrete position of the corresponding block.
            If the position is greater than the end time of the block, the
            start time of the next available block is returned.
            </summary>
            <param name="position">The analog position.</param>
            <returns>A discrete frame position.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlockBuffer.CreateBlock(CSVideoPlayer.MediaType)">
            <summary>
            Block factory method.
            </summary>
            <param name="mediaType">Type of the media.</param>
            <exception cref="T:System.InvalidCastException">MediaBlock does not have a valid type.</exception>
            <returns>An instance of the block of the specified type.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaBlockBuffer.UpdateCollectionProperties">
            <summary>
            Updates the <see cref="F:CSVideoPlayer.MediaBlockBuffer.PlaybackBlocks"/> collection properties.
            This method must be called whenever the collection is modified.
            The reason this exists is to avoid computing and iterating over these values every time they are read.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.MediaComponent">
            <summary>
            Represents a media component of a given media type within a
            media container. Derived classes must implement frame handling
            logic.
            </summary>
            <seealso cref="T:System.IDisposable" />
        </member>
        <member name="F:CSVideoPlayer.MediaComponent.CodecLock">
            <summary>
            Related to issue 94, looks like FFmpeg requires exclusive access when calling avcodec_open2().
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaComponent.m_LoggingHandler">
            <summary>
            The logging handler.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaComponent.Packets">
            <summary>
            Contains the packets pending to be sent to the decoder.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaComponent.DecodePacketFunction">
            <summary>
            The decode packet function.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaComponent.m_IsDisposed">
            <summary>
            Detects redundant, unmanaged calls to the Dispose method.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaComponent.m_HasCodecPackets">
            <summary>
            Determines if packets have been fed into the codec and frames can be decoded.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaComponent.m_Stream">
            <summary>
            Holds a reference to the associated input context stream.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaComponent.m_CodecContext">
            <summary>
            Holds a reference to the Codec Context.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaComponent.#ctor(CSVideoPlayer.MediaContainer,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaComponent"/> class.
            </summary>
            <param name="container">The container.</param>
            <param name="streamIndex">Index of the stream.</param>
            <exception cref="T:System.ArgumentNullException">container.</exception>
            <exception cref="T:CSVideoPlayer.MediaContainerException">The container exception.</exception>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.CSVideoPlayer#ILoggingSource#LoggingHandler">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.CodecContext">
            <summary>
            Gets the pointer to the codec context.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.Stream">
            <summary>
            Gets a pointer to the component's stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.Container">
            <summary>
            Gets the media container associated with this component.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.MediaType">
            <summary>
            Gets the type of the media.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.StreamIndex">
            <summary>
            Gets the index of the associated stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.StartTime">
            <summary>
            Gets the component's stream start timestamp as reported
            by the start time of the stream.
            Returns TimeSpan.MinValue when unknown.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.Duration">
            <summary>
            Gets the duration of this stream component.
            If there is no such information it will return TimeSpan.MinValue.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.EndTime">
            <summary>
            Gets the component's stream end timestamp as reported
            by the start and duration time of the stream.
            Returns TimeSpan.MinValue when unknown.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.BufferLength">
            <summary>
            Gets the current length in bytes of the
            packet buffer. Limit your Reads to something reasonable before
            this becomes too large.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.BufferDuration">
            <summary>
            Gets the duration of the packet buffer.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.BufferCount">
            <summary>
            Gets the number of packets in the queue.
            Decode packets until this number becomes 0.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.BufferCountThreshold">
            <summary>
            Gets the number of packets to cache before <see cref="P:CSVideoPlayer.MediaComponent.HasEnoughPackets"/> returns true.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.BufferDurationThreshold">
            <summary>
            Gets the packet buffer duration threshold before <see cref="P:CSVideoPlayer.MediaComponent.HasEnoughPackets"/> returns true.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.HasEnoughPackets">
            <summary>
            Gets or sets a value indicating whether the packet queue contains enough packets.
            Port of ffplay.c stream_has_enough_packets.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.CodecId">
            <summary>
            Gets the ID of the codec for this component.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.CodecName">
            <summary>
            Gets the name of the codec for this component.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.BitRate">
            <summary>
            Gets the bit rate of this component as reported by the codec context.
            Returns 0 for unknown.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.StreamInfo">
            <summary>
            Gets the stream information.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.HasPacketsInCodec">
            <summary>
            Gets whether packets have been fed into the codec and frames can be decoded.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.IsDisposed">
            <summary>
            Gets a value indicating whether this instance is disposed.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponent.LastFramePts">
            <summary>
            Gets or sets the last frame PTS.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaComponent.ClearQueuedPackets(System.Boolean)">
            <summary>
            Clears the pending and sent Packet Queues releasing all memory held by those packets.
            Additionally it flushes the codec buffered packets.
            </summary>
            <param name="flushBuffers">if set to <c>true</c> flush codec buffers.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaComponent.SendEmptyPacket">
            <summary>
            Sends a special kind of packet (an empty/null packet)
            that tells the decoder to refresh the attached picture or enter draining mode.
            This is a port of packet_queue_put_nullpacket.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaComponent.SendPacket(CSVideoPlayer.MediaPacket)">
            <summary>
            Pushes a packet into the decoding Packet Queue
            and processes the packet in order to try to decode
            1 or more frames.
            </summary>
            <param name="packet">The packet.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaComponent.ReceiveNextFrame">
            <summary>
            Feeds the decoder buffer and tries to return the next available frame.
            </summary>
            <returns>The received Media Frame. It is null if no frame could be retrieved.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaComponent.MaterializeFrame(CSVideoPlayer.MediaFrame,CSVideoPlayer.MediaBlock@,CSVideoPlayer.MediaBlock)">
            <summary>
            Converts decoded, raw frame data in the frame source into a a usable frame. <br />
            The process includes performing picture, samples or text conversions
            so that the decoded source frame data is easily usable in multimedia applications.
            </summary>
            <param name="input">The source frame to use as an input.</param>
            <param name="output">The target frame that will be updated with the source frame. If null is passed the frame will be instantiated.</param>
            <param name="previousBlock">The previous block from which to derive information in case the current frame contains invalid data.</param>
            <returns>
            Returns true of the operation succeeded. False otherwise.
            </returns>
        </member>
        <member name="M:CSVideoPlayer.MediaComponent.Dispose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaComponent.CreateFrameSource(System.IntPtr)">
            <summary>
            Creates a frame source object given the raw FFmpeg AVFrame or AVSubtitle reference.
            </summary>
            <param name="framePointer">The raw FFmpeg pointer.</param>
            <returns>The media frame.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaComponent.CloseComponent">
            <summary>
            Releases the existing codec context and clears and disposes the packet queues.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaComponent.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="alsoManaged"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaComponent.SendFlushPacket">
            <summary>
            Sends a special kind of packet (a flush packet)
            that tells the decoder to flush it internal buffers
            This an encapsulation of flush_pkt.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaComponent.FlushCodecBuffers">
            <summary>
            Flushes the codec buffers.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaComponent.FeedPacketsToDecoder(System.Boolean)">
            <summary>
            Feeds the packets to decoder.
            </summary>
            <param name="fillDecoderBuffer">if set to <c>true</c> fills the decoder buffer with packets.</param>
            <returns>The number of packets fed.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaComponent.ReceiveFrameFromDecoder(System.Int32@)">
            <summary>
            Receives the next available frame from decoder.
            </summary>
            <param name="receiveFrameResult">The receive frame result.</param>
            <returns>The frame or null if no frames could be decoded.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaComponent.DecodeNextAVFrame">
            <summary>
            Decodes the next Audio or Video frame.
            Reference: https://www.ffmpeg.org/doxygen/4.0/group__lavc__encdec.html.
            </summary>
            <returns>A decoder result containing the decoder frames (if any).</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaComponent.DecodeNextAVSubtitle">
            <summary>
            Decodes the next subtitle frame.
            </summary>
            <returns>The managed frame.</returns>
        </member>
        <member name="T:CSVideoPlayer.MediaComponentSet">
            <summary>
            Represents a set of Audio, Video and Subtitle components.
            This class is useful in order to group all components into
            a single set. Sending packets is automatically handled by
            this class. This class is thread safe.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.OnPacketQueueChanged">
            <summary>
            Gets or sets a method that gets called when a packet is queued.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.OnFrameDecoded">
            <summary>
            Gets or sets a method that gets called when an audio or video frame gets decoded.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.OnSubtitleDecoded">
            <summary>
            Gets or sets a method that gets called when a subtitle frame gets decoded.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.IsDisposed">
            <summary>
            Gets a value indicating whether this instance is disposed.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.Count">
            <summary>
            Gets the registered component count.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.MediaTypes">
            <summary>
            Gets the available component media types.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.All">
            <summary>
            Gets all the components in a read-only collection.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.MainMediaType">
            <summary>
            Gets the type of the main.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.Main">
            <summary>
            Gets the main media component of the stream to which time is synchronized.
            By order of priority, first Audio, then Video.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.Video">
            <summary>
            Gets the video component.
            Returns null when there is no such stream component.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.Audio">
            <summary>
            Gets the audio component.
            Returns null when there is no such stream component.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.Subtitles">
            <summary>
            Gets the subtitles component.
            Returns null when there is no such stream component.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.HasVideo">
            <summary>
            Gets a value indicating whether this instance has a video component.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.HasAudio">
            <summary>
            Gets a value indicating whether this instance has an audio component.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.HasSubtitles">
            <summary>
            Gets a value indicating whether this instance has a subtitles component.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.PlaybackStartTime">
            <summary>
            Gets the playback start time.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.PlaybackDuration">
            <summary>
            Gets the playback duration. Could be null.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.PlaybackEndTime">
            <summary>
            Gets the playback end time. Could be null.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.BufferLength">
            <summary>
            Gets the current length in bytes of the packet buffer for all components.
            These packets are the ones that have not been yet decoded.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.BufferCount">
            <summary>
            Gets the total number of packets in the packet buffer for all components.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.BufferCountThreshold">
            <summary>
            Gets the minimum number of packets to read before <see cref="P:CSVideoPlayer.MediaComponentSet.HasEnoughPackets"/> is able to return true.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.HasEnoughPackets">
            <summary>
            Gets or sets a value indicating whether all packet queues contain enough packets.
            Port of ffplay.c stream_has_enough_packets.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaComponentSet.Item(CSVideoPlayer.MediaType)">
            <summary>
            Gets or sets the <see cref="T:CSVideoPlayer.MediaComponent"/> with the specified media type.
            Setting a new component on an existing media type component will throw.
            Getting a non existing media component fro the given media type will return null.
            </summary>
            <param name="mediaType">Type of the media.</param>
            <returns>The media component.</returns>
            <exception cref="T:System.ArgumentException">When the media type is invalid.</exception>
            <exception cref="T:System.ArgumentNullException">MediaComponent.</exception>
        </member>
        <member name="M:CSVideoPlayer.MediaComponentSet.Dispose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaComponentSet.SendPacket(CSVideoPlayer.MediaPacket)">
            <summary>
            Sends the specified packet to the correct component by reading the stream index
            of the packet that is being sent. No packet is sent if the provided packet is set to null.
            Returns the media type of the component that accepted the packet.
            </summary>
            <param name="packet">The packet.</param>
            <returns>The media type.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaComponentSet.SendEmptyPackets">
            <summary>
            Sends an empty packet to all media components.
            When an EOF/EOS situation is encountered, this forces
            the decoders to enter draining mode until all frames are decoded.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaComponentSet.ClearQueuedPackets(System.Boolean)">
            <summary>
            Clears the packet queues for all components.
            Additionally it flushes the codec buffered packets.
            This is useful after a seek operation is performed or a stream
            index is changed.
            </summary>
            <param name="flushBuffers">if set to <c>true</c> flush codec buffers.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaComponentSet.ProcessPacketQueueChanges(CSVideoPlayer.PacketQueueOp,CSVideoPlayer.MediaPacket,CSVideoPlayer.MediaType)">
            <summary>
            Updates queue properties and invokes the on packet queue changed callback.
            </summary>
            <param name="operation">The operation.</param>
            <param name="packet">The packet.</param>
            <param name="mediaType">Type of the media.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaComponentSet.AddComponent(CSVideoPlayer.MediaComponent)">
            <summary>
            Registers the component in this component set.
            </summary>
            <param name="component">The component.</param>
            <exception cref="T:System.ArgumentNullException">When component of the same type is already registered.</exception>
            <exception cref="T:System.NotSupportedException">When MediaType is not supported.</exception>
            <exception cref="T:System.ArgumentException">When the component is null.</exception>
        </member>
        <member name="M:CSVideoPlayer.MediaComponentSet.RemoveComponent(CSVideoPlayer.MediaType)">
            <summary>
            Removes the component of specified media type (if registered).
            It calls the dispose method of the media component too.
            </summary>
            <param name="mediaType">Type of the media.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaComponentSet.UpdatePlaybackDuration(System.TimeSpan)">
            <summary>
            Updates the playback duration property.
            This method is intended to be called only when decoding frames.
            </summary>
            <param name="duration">The duration.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaComponentSet.UpdatePlaybackTimingProperties">
            <summary>
            Updates the playback timing properties.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaComponentSet.UpdateComponentBackingFields">
            <summary>
            Computes the main component and backing fields.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaComponentSet.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="alsoManaged"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="T:CSVideoPlayer.MediaContainer">
            <summary>
            A container capable of opening an input url,
            reading packets from it, decoding frames, seeking, and pausing and resuming network streams
            Code based on https://raw.githubusercontent.com/FFmpeg/FFmpeg/release/3.2/ffplay.c
            The method pipeline should be:
            1. Set Options (or don't, for automatic options) and Initialize,
            2. Perform continuous packet reads,
            3. Perform continuous frame decodes
            4. Perform continuous block materialization.
            </summary>
            <seealso cref="T:System.IDisposable" />
        </member>
        <member name="F:CSVideoPlayer.MediaContainer.ExceptionMessageNoInputContext">
            <summary>
            The exception message no input context.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaContainer.m_LoggingHandler">
            <summary>
            The logging handler.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaContainer.ReadSyncRoot">
            <summary>
            The read synchronize root.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaContainer.DecodeSyncRoot">
            <summary>
            The decode synchronize root.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaContainer.ConvertSyncRoot">
            <summary>
            The convert synchronize root.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaContainer.StreamReadInterruptStartTime">
            <summary>
            The stream read interrupt start time.
            When a read operation is started, this is set to the ticks of UTC now.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaContainer.SignalAbortReadsRequested">
            <summary>
            The signal to request the abortion of the following read operation.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaContainer.SignalAbortReadsAutoReset">
            <summary>
            If set to true, it will reset the abort requested flag to false.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaContainer.StreamReadInterruptCallback">
            <summary>
            The stream read interrupt callback.
            Used to detect read timeouts.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaContainer.CustomInputStream">
            <summary>
            The custom media input stream.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaContainer.CustomInputStreamRead">
            <summary>
            The custom input stream read callback.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaContainer.CustomInputStreamSeek">
            <summary>
            The custom input stream seek callback.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaContainer.CustomInputStreamContext">
            <summary>
            The custom input stream context.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaContainer.RequiresPictureAttachments">
            <summary>
            Hold the value for the internal property with the same name.
            Picture attachments are required when video streams support them
            and these attached packets must be read before reading the first frame
            of the stream and after seeking.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.#ctor(System.String,CSVideoPlayer.ContainerConfiguration,CSVideoPlayer.ILoggingHandler)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaContainer" /> class using a media URL.
            </summary>
            <param name="mediaSource">The media URL.</param>
            <param name="config">The container configuration options.</param>
            <param name="loggingHandler">The logger.</param>
            <exception cref="T:System.ArgumentNullException">Media Source cannot be null.</exception>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.#ctor(CSVideoPlayer.IMediaInputStream,CSVideoPlayer.ContainerConfiguration,CSVideoPlayer.ILoggingHandler)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaContainer"/> class using a custom input stream implementation.
            </summary>
            <param name="inputStream">The input stream.</param>
            <param name="config">The configuration.</param>
            <param name="loggingHandler">The parent.</param>
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.CSVideoPlayer#ILoggingSource#LoggingHandler">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.IsDisposed">
            <summary>
            To detect redundant Dispose calls.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.MediaSource">
            <summary>
            Gets the media URL. This is the input url, file or device that is read
            by this container.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.Configuration">
            <summary>
            The container and demuxer initialization and configuration options.
            Options are applied when creating an instance of the container.
            After container creation, changing the configuration options passed in
            the constructor has no effect.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.MediaOptions">
            <summary>
            Represents options that applied before initializing media components and their corresponding
            codecs. Once the container has created the media components, changing these options may produce unintended side effects
            and is not supported or recommended.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.MediaInfo">
            <summary>
            Provides stream, chapter and program info held by this container.
            This property is null if the the stream has not been opened.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.MediaFormatName">
            <summary>
            Gets the name of the media format.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.MediaBitRate">
            <summary>
            Gets the media bit rate (bits per second). Returns 0 if not available.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.Metadata">
            <summary>
            Holds the metadata of the media file when the stream is initialized.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.IsInitialized">
            <summary>
            Gets a value indicating whether an Input Context has been initialize.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.IsOpen">
            <summary>
            Gets a value indicating whether this instance is open.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.IsAtEndOfStream">
            <summary>
            Will be set to true whenever an End Of File situation is reached.
            </summary>
            <value>
              <c>true</c> if this instance is at end of stream; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.StreamPosition">
            <summary>
            Gets the byte position at which the stream is being read.
            Please note that this property gets updated after every Read.
            For multi-file streams, get the position of the current file only.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.MediaStreamSize">
            <summary>
            Gets the size in bytes of the current stream being read.
            For multi-file streams, get the size of the current file only.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.IsStreamSeekable">
            <summary>
            Gets a value indicating whether the underlying media is seekable.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.IsLiveStream">
            <summary>
            Gets a value indicating whether this container represents live media.
            If the stream is classified as a network stream and it is not seekable, then this property will return true.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.IsNetworkStream">
            <summary>
            Gets a value indicating whether the input stream is a network stream.
            If the format name is rtp, rtsp, or sdp or if the url starts with udp:, http:, https:, tcp:, or rtp:
            then this property will be set to true.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.Components">
            <summary>
            Provides direct access to the individual Media components of the input stream.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.IsReadAborted">
            <summary>
            Gets a value indicating whether reads are in the aborted state.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.InputContext">
            <summary>
            Holds a reference to the input context.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaContainer.StateRequiresPictureAttachments">
            <summary>
            Picture attachments are required when video streams support them
            and these attached packets must be read before reading the first frame
            of the stream and after seeking. This property is not part of the public API
            and is meant more for internal purposes.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.Initialize">
            <summary>
            Initializes the container and its input context, extracting stream information.
            Container configuration passed on the constructor is applied.
            This method must be called to make the container usable.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.Open">
            <summary>
            Opens the individual stream components on the existing input context in order to start reading packets.
            Any Media Options must be set before this method is called.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.Seek(System.TimeSpan)">
            <summary>
            Seeks to the specified position in the main stream component.
            Returns the keyframe on or before the specified position. Most of the times
            you will need to keep reading packets and receiving frames to reach the exact position.
            Pass TimeSpan.MinValue to seek to the beginning of the stream.
            </summary>
            <param name="position">The position.</param>
            <returns>
            The list of media frames.
            </returns>
            <exception cref="T:System.InvalidOperationException">No input context initialized.</exception>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.Read">
            <summary>
            Reads the next available packet, sending the packet to the corresponding
            internal media component. It also sets IsAtEndOfStream property.
            Returns the media type if the packet was accepted by any of the media components.
            Returns None if the packet was not accepted by any of the media components
            or if reading failed (i.e. End of stream already or read error).
            Packets are queued internally. To dequeue them you need to call the receive frames
            method of each component until the packet buffer count becomes 0.
            </summary>
            <returns>The media type of the packet that was read.</returns>
            <exception cref="T:System.InvalidOperationException">No input context initialized.</exception>
            <exception cref="T:CSVideoPlayer.MediaContainerException">When a read error occurs.</exception>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.Decode">
            <summary>
            Decodes the next available packet in the packet queue for each of the components.
            Returns the list of decoded frames.
            The list of 0 or more decoded frames is returned in ascending StartTime order.
            A Packet may contain 0 or more frames. Once the frame source objects are returned, you
            are responsible for calling the Dispose method on them to free the underlying FFmpeg frame.
            Note that even after releasing them you can still use the managed properties.
            If you intend on Converting the frames to usable media frames (with Convert) you must not
            release the frame. Specify the release input argument as true and the frame will be automatically
            freed from memory.
            </summary>
            <returns>The list of media frames.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.Convert(CSVideoPlayer.MediaFrame,CSVideoPlayer.MediaBlock@,System.Boolean,CSVideoPlayer.MediaBlock)">
            <summary>
            Performs audio, video and subtitle conversions on the decoded input frame so data
            can be used as a Frame. Please note that if the output is passed as a reference.
            This works as follows: if the output reference is null it will be automatically instantiated
            and returned by this function. This enables to  either instantiate or reuse a previously allocated Frame.
            This is important because buffer allocations are expensive operations and this allows you
            to perform the allocation once and continue reusing the same buffer.
            </summary>
            <param name="input">The raw frame source. Has to be compatible with the target. (e.g. use VideoFrameSource to convert to VideoFrame).</param>
            <param name="output">The target frame. Has to be compatible with the source.</param>
            <param name="releaseInput">if set to <c>true</c> releases the raw frame source from unmanaged memory.</param>
            <param name="previousBlock">The previous block from which to extract timing information in case it is missing.</param>
            <returns>
            True if successful. False otherwise.
            </returns>
            <exception cref="T:System.InvalidOperationException">No input context initialized.</exception>
            <exception cref="T:CSVideoPlayer.MediaContainerException">MediaType.</exception>
            <exception cref="T:System.ArgumentNullException">input.</exception>
            <exception cref="T:System.ArgumentException">input
            or
            input.</exception>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.SignalAbortReads(System.Boolean)">
            <summary>
            Signals the packet reading operations to abort immediately.
            </summary>
            <param name="reset">if set to true, the read interrupt will reset the aborted state automatically.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.SignalResumeReads">
            <summary>
            Signals the state for read operations to stop being in the aborted state.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.UpdateComponents">
            <summary>
            Recreates the components using the selected streams in <see cref="P:CSVideoPlayer.MediaContainer.MediaOptions" />.
            If the newly set streams are null these components are removed and disposed.
            All selected stream components are recreated.
            </summary>
            <returns>The registered component types.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.Close">
            <summary>
            Closes the input context immediately releasing all resources.
            This method is equivalent to calling the dispose method.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.Dispose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.StreamInitialize">
            <summary>
            Initializes the input context to start read operations.
            This does NOT create the stream components and therefore, there needs to be a call
            to the Open method.
            </summary>
            <exception cref="T:System.InvalidOperationException">The input context has already been initialized.</exception>
            <exception cref="T:CSVideoPlayer.MediaContainerException">When an error initializing the stream occurs.</exception>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.StreamInitializeInputContext">
            <summary>
            Initializes the InputContext and applies format options.
            https://www.ffmpeg.org/ffmpeg-formats.html#Format-Options.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.StreamOpen">
            <summary>
            Opens the individual stream components to start reading packets.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.StreamCreateComponent(CSVideoPlayer.MediaType,CSVideoPlayer.StreamInfo)">
            <summary>
            Creates and assigns a component of the given type using the specified stream information.
            If stream information is null, or the component is disabled, then the component is removed.
            </summary>
            <param name="t">The Media Type.</param>
            <param name="stream">The stream information. Set to null to remove.</param>
            <returns>The media type that was created. None for unsuccessful creation.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.StreamCreateComponents">
            <summary>
            Creates the stream components according to the specified streams in the current media options.
            Then it initializes the components of the correct type each.
            </summary>
            <returns>The component media types that are available.</returns>
            <exception cref="T:CSVideoPlayer.MediaContainerException">The exception information.</exception>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.StreamRead">
            <summary>
            Reads the next packet in the underlying stream and queues in the corresponding media component.
            Returns None of no packet was read.
            </summary>
            <returns>The type of media packet that was read.</returns>
            <exception cref="T:System.InvalidOperationException">Initialize.</exception>
            <exception cref="T:CSVideoPlayer.MediaContainerException">Raised when an error reading from the stream occurs.</exception>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.OnStreamReadInterrupt(System.Void*)">
            <summary>
            The interrupt callback to handle stream reading timeouts.
            </summary>
            <param name="opaque">A pointer to the format input context.</param>
            <returns>0 for OK, 1 for error (timeout).</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.StreamSeek(System.TimeSpan)">
            <summary>
            Seeks to the closest and lesser or equal key frame on the main component.
            </summary>
            <param name="desiredTargetTime">The target time.</param>
            <returns>
            The seeked media frame.
            </returns>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.StreamSeekToStart">
            <summary>
            Seeks to the position at the start of the stream.
            </summary>
            <returns>The first frame of the main component.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaContainer.StreamPositionDecode(CSVideoPlayer.MediaComponent)">
            <summary>
            Reads from the stream and receives the next available frame
            from the specified component at the current stream position.
            This is a helper method for seeking logic.
            </summary>
            <param name="component">The component.</param>
            <returns>The next available frame.</returns>
        </member>
        <member name="T:CSVideoPlayer.MediaFrame">
            <summary>
            Represents a wrapper for an unmanaged frame.
            Derived classes implement the specifics of each media type.
            </summary>
            <seealso cref="T:System.IDisposable" />
        </member>
        <member name="M:CSVideoPlayer.MediaFrame.#ctor(FFmpeg.AutoGen.AVFrame*,CSVideoPlayer.MediaComponent,CSVideoPlayer.MediaType)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaFrame" /> class.
            </summary>
            <param name="pointer">The pointer.</param>
            <param name="component">The component.</param>
            <param name="mediaType">Type of the media.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaFrame.#ctor(FFmpeg.AutoGen.AVSubtitle*,CSVideoPlayer.MediaComponent)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaFrame"/> class.
            </summary>
            <param name="pointer">The pointer.</param>
            <param name="component">The component.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaFrame.#ctor(System.Void*,CSVideoPlayer.MediaComponent,CSVideoPlayer.MediaType)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaFrame" /> class.
            </summary>
            <param name="pointer">The pointer.</param>
            <param name="component">The component.</param>
            <param name="mediaType">Type of the media.</param>
        </member>
        <member name="P:CSVideoPlayer.MediaFrame.MediaType">
            <summary>
            Gets the type of the media.
            </summary>
            <value>
            The type of the media.
            </value>
        </member>
        <member name="P:CSVideoPlayer.MediaFrame.CompressedSize">
            <summary>
            Gets the size of the compressed packets that created this frame.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaFrame.PresentationTime">
            <summary>
            Gets the unadjusted, original presentation timestamp (PTS) of the frame.
            This is in <see cref="P:CSVideoPlayer.MediaFrame.StreamTimeBase"/> units.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaFrame.DecodingTime">
            <summary>
            Gets the unadjusted, original presentation timestamp (PTS) of the packet.
            This is in <see cref="P:CSVideoPlayer.MediaFrame.StreamTimeBase"/> units.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaFrame.StartTime">
            <summary>
            Gets the start time of the frame.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaFrame.EndTime">
            <summary>
            Gets the end time of the frame.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaFrame.StreamIndex">
            <summary>
            Gets the index of the stream from which this frame was decoded.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaFrame.Duration">
            <summary>
            Gets the amount of time this data has to be presented.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaFrame.HasValidStartTime">
            <summary>
            Gets or sets a value indicating whether this frame obtained its start time
            form a valid frame pts value.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaFrame.IsStale">
            <summary>
            When the unmanaged frame is released (freed from unmanaged memory)
            this property will return true.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaFrame.StreamTimeBase">
            <summary>
            Gets the time base of the stream that generated this frame.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaFrame.InternalPointer">
            <summary>
            Gets or sets the internal pointer.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaFrame.CompareTo(CSVideoPlayer.MediaFrame)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaFrame.Dispose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaFrame.CreateAVFrame">
            <summary>
            Creates a frame used for Audio or Video.
            </summary>
            <returns>The frame allocated in unmanaged memory.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaFrame.ReleaseAVFrame(FFmpeg.AutoGen.AVFrame*)">
            <summary>
            Releases a previously allocated frame used for Audio or Video.
            </summary>
            <param name="frame">The frame.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaFrame.CloneAVFrame(FFmpeg.AutoGen.AVFrame*)">
            <summary>
            Creates a deep copy of the specified source.
            </summary>
            <param name="source">The source frame.</param>
            <returns>The cloned frame.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaFrame.CreateAVSubtitle">
            <summary>
            Allocates an AVSubtitle struct in unmanaged memory.
            </summary>
            <returns>The subtitle struct pointer.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaFrame.ReleaseAVSubtitle(FFmpeg.AutoGen.AVSubtitle*)">
            <summary>
            De-allocates the subtitle struct used to create in managed memory.
            </summary>
            <param name="frame">The frame.</param>
        </member>
        <member name="T:CSVideoPlayer.MediaPacket">
            <summary>
            Represents a managed packet wrapper for the <see cref="T:FFmpeg.AutoGen.AVPacket"/> struct.
            </summary>
            <seealso cref="T:System.IDisposable" />
        </member>
        <member name="F:CSVideoPlayer.MediaPacket.FlushPacketData">
            <summary>
            The flush packet data pointer.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaPacket.#ctor(FFmpeg.AutoGen.AVPacket*)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaPacket" /> class.
            </summary>
            <param name="packet">The packet.</param>
        </member>
        <member name="P:CSVideoPlayer.MediaPacket.Pointer">
            <summary>
            Gets the <see cref="T:FFmpeg.AutoGen.AVPacket"/> pointer.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaPacket.SafePointer">
            <summary>
            Gets the <see cref="T:FFmpeg.AutoGen.AVPacket"/> safe pointer.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaPacket.Size">
            <summary>
            Gets the size in bytes.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaPacket.Position">
            <summary>
            Gets the byte position of the packet -1 if unknown.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaPacket.StreamIndex">
            <summary>
            Gets the stream index this packet belongs to.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaPacket.Duration">
            <summary>
            Gets the duration in stream timebase units.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaPacket.IsFlushPacket">
            <summary>
            Gets a value indicating whether the specified packet is a flush packet.
            These flush packets are used to clear the internal decoder buffers.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaPacket.IsDisposed">
            <summary>
            Gets a value indicating whether this instance is disposed.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaPacket.CreateReadPacket">
            <summary>
            Allocates a default readable packet.
            </summary>
            <returns>
            A packet used for receiving data.
            </returns>
        </member>
        <member name="M:CSVideoPlayer.MediaPacket.CreateEmptyPacket(System.Int32)">
            <summary>
            Creates the empty packet.
            </summary>
            <param name="streamIndex">The stream index this packet belongs to.</param>
            <returns>
            The special empty packet that instructs the decoder to enter draining mode.
            </returns>
        </member>
        <member name="M:CSVideoPlayer.MediaPacket.CreateFlushPacket(System.Int32)">
            <summary>
            Creates a flush packet.
            </summary>
            <param name="streamIndex">The stream index this packet belongs to.</param>
            <returns>A special packet that makes the decoder flush its buffers.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaPacket.ClonePacket(FFmpeg.AutoGen.AVPacket*)">
            <summary>
            Clones the packet.
            </summary>
            <param name="source">The source.</param>
            <returns>The packet clone.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaPacket.Dispose">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.PacketBufferState">
            <summary>
            A value type that representing the packet buffer state.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.PacketBufferState.Length">
            <summary>
            The length in bytes of the packet buffer.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.PacketBufferState.Count">
            <summary>
            The number of packets in the packet buffer.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.PacketBufferState.CountThreshold">
            <summary>
            The minimum number of packets so <see cref="F:CSVideoPlayer.PacketBufferState.HasEnoughPackets"/> is set to true.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.PacketBufferState.HasEnoughPackets">
            <summary>
            Whether the packet buffer has enough packets.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.PacketBufferState.Equals(CSVideoPlayer.PacketBufferState)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.PacketBufferState.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.PacketBufferState.GetHashCode">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.PacketQueue">
            <summary>
            A data structure containing a queue of packets to process.
            This class is thread safe and disposable.
            Queued, unmanaged packets are disposed automatically by this queue.
            Dequeued packets are the responsibility of the calling code.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.PacketQueue.Count">
            <summary>
            Gets the packet count.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.PacketQueue.BufferLength">
            <summary>
            Gets the sum of all the packet sizes contained
            by this queue.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.PacketQueue.GetDuration(FFmpeg.AutoGen.AVRational)">
            <summary>
            Gets the duration in stream time base units.
            </summary>
            <param name="timeBase">The time base.</param>
            <returns>The total duration.</returns>
        </member>
        <member name="M:CSVideoPlayer.PacketQueue.Peek">
            <summary>
            Peeks the next available packet in the queue without removing it.
            If no packets are available, null is returned.
            </summary>
            <returns>The packet.</returns>
        </member>
        <member name="M:CSVideoPlayer.PacketQueue.Push(CSVideoPlayer.MediaPacket)">
            <summary>
            Pushes the specified packet into the queue.
            In other words, queues the packet.
            </summary>
            <param name="packet">The packet.</param>
        </member>
        <member name="M:CSVideoPlayer.PacketQueue.Dequeue">
            <summary>
            Dequeue a packet from this queue.
            </summary>
            <returns>The dequeued packet.</returns>
        </member>
        <member name="M:CSVideoPlayer.PacketQueue.Clear">
            <summary>
            Clears and frees all the unmanaged packets from this queue.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.PacketQueue.Dispose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.PacketQueue.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="alsoManaged"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="T:CSVideoPlayer.PacketQueueOp">
            <summary>
            Defines the multiple packet queue operations.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.PacketQueueOp.Clear">
            <summary>
            The packet queue was cleared.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.PacketQueueOp.Queued">
            <summary>
            The packet queue queued a packet.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.PacketQueueOp.Dequeued">
            <summary>
            The packet queue dequeued a packet.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.SubtitleBlock">
            <summary>
            A subtitle frame container. Simply contains text lines.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.SubtitleBlock.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.SubtitleBlock"/> class.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.SubtitleBlock.Text">
            <summary>
            Gets the lines of text for this subtitle frame with all formatting stripped out.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.SubtitleBlock.OriginalText">
            <summary>
            Gets the original text in SRT or ASS format.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.SubtitleBlock.OriginalTextType">
            <summary>
            Gets the type of the original text.
            Returns None when it's a bitmap or when it's None.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.SubtitleComponent">
            <summary>
            Performs subtitle stream extraction, decoding and text conversion.
            </summary>
            <seealso cref="T:CSVideoPlayer.MediaComponent" />
        </member>
        <member name="M:CSVideoPlayer.SubtitleComponent.#ctor(CSVideoPlayer.MediaContainer,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.SubtitleComponent"/> class.
            </summary>
            <param name="container">The container.</param>
            <param name="streamIndex">Index of the stream.</param>
        </member>
        <member name="P:CSVideoPlayer.SubtitleComponent.Delay">
            <summary>
            Gets the amount of time to offset the subtitles by for this component.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.SubtitleComponent.MaterializeFrame(CSVideoPlayer.MediaFrame,CSVideoPlayer.MediaBlock@,CSVideoPlayer.MediaBlock)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SubtitleComponent.StripSrtFormat(System.String)">
            <summary>
            Strips the SRT format and returns plain text.
            </summary>
            <param name="input">The input.</param>
            <returns>The formatted string.</returns>
        </member>
        <member name="M:CSVideoPlayer.SubtitleComponent.StripAssFormat(System.String)">
            <summary>
            Strips a line of text from the ASS format.
            </summary>
            <param name="input">The input.</param>
            <returns>The formatted string.</returns>
        </member>
        <member name="M:CSVideoPlayer.SubtitleComponent.CreateFrameSource(System.IntPtr)">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.SubtitleFrame">
            <summary>
            Represents a wrapper for an unmanaged Subtitle frame.
            TODO: Only text (ASS and SRT) subtitles are supported currently.
            There is no support to bitmap subtitles.
            </summary>
            <seealso cref="T:CSVideoPlayer.MediaFrame" />
        </member>
        <member name="M:CSVideoPlayer.SubtitleFrame.#ctor(FFmpeg.AutoGen.AVSubtitle*,CSVideoPlayer.MediaComponent)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.SubtitleFrame" /> class.
            </summary>
            <param name="frame">The frame.</param>
            <param name="component">The component.</param>
        </member>
        <member name="P:CSVideoPlayer.SubtitleFrame.Text">
            <summary>
            Gets lines of text that the subtitle frame contains.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.SubtitleFrame.TextType">
            <summary>
            Gets the type of the text.
            </summary>
            <value>
            The type of the text.
            </value>
        </member>
        <member name="P:CSVideoPlayer.SubtitleFrame.Pointer">
            <summary>
            Gets the pointer to the unmanaged subtitle struct.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.SubtitleFrame.Dispose">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.VideoBlock">
            <inheritdoc />
            <summary>
            A pre-allocated, scaled video block. The buffer is in BGR, 24-bit format.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoBlock.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.VideoBlock" /> class.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoBlock.PixelWidth">
            <summary>
            Gets the number of horizontal pixels in the image.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoBlock.PixelHeight">
            <summary>
            Gets the number of vertical pixels in the image.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoBlock.PixelAspectWidth">
            <summary>
            Gets the pixel aspect width.
            This is NOT the display aspect width.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoBlock.PixelAspectHeight">
            <summary>
            Gets the pixel aspect height.
            This is NOT the display aspect height.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoBlock.SmtpeTimeCode">
            <summary>
            Gets the SMTPE time code.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoBlock.IsHardwareFrame">
            <summary>
            Gets a value indicating whether this frame was decoded in a hardware context.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoBlock.HardwareAcceleratorName">
            <summary>
            Gets the name of the hardware decoder if the frame was decoded in a hardware context.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoBlock.DisplayPictureNumber">
            <summary>
            Gets the display picture number (frame number).
            If not set by the decoder, this attempts to obtain it by dividing the start time by the
            frame duration.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoBlock.CodedPictureNumber">
            <summary>
            Gets the coded picture number set by the decoder.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoBlock.PictureType">
            <summary>
            Gets the picture type.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoBlock.ClosedCaptions">
            <summary>
            Gets the closed caption packets for this video block.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoBlock.PictureBufferStride">
            <summary>
            Gets the picture buffer stride.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoBlock.Allocate(CSVideoPlayer.VideoFrame,FFmpeg.AutoGen.AVPixelFormat)">
            <summary>
            Allocates a block of memory suitable for a picture buffer
            and sets the corresponding properties.
            </summary>
            <param name="source">The source.</param>
            <param name="pixelFormat">The pixel format.</param>
            <returns>True if the allocation was successful.</returns>
        </member>
        <member name="M:CSVideoPlayer.VideoBlock.Deallocate">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.VideoComponent">
            <summary>
            Performs video picture decoding, scaling and extraction logic.
            </summary>
            <seealso cref="T:CSVideoPlayer.MediaComponent" />
        </member>
        <member name="M:CSVideoPlayer.VideoComponent.#ctor(CSVideoPlayer.MediaContainer,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.VideoComponent"/> class.
            </summary>
            <param name="container">The container.</param>
            <param name="streamIndex">Index of the stream.</param>
        </member>
        <member name="P:CSVideoPlayer.VideoComponent.ScalerFlags">
            <summary>
            Gets the video scaler flags used to perform color space conversion (if needed).
            Point / nearest-neighbor is the default and it is the cheapest. This is by design as
            we don't change the dimensions of the image. We only do color conversion.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoComponent.BaseFrameRate">
            <summary>
            Gets the base frame rate as reported by the stream component.
            All discrete timestamps can be represented in this frame rate.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoComponent.AverageFrameRate">
            <summary>
            Gets the stream's average frame rate.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoComponent.FrameWidth">
            <summary>
            Gets the width of the picture frame.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoComponent.FrameHeight">
            <summary>
            Gets the height of the picture frame.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoComponent.DisplayRotation">
            <summary>
            Gets the display rotation.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoComponent.DisplayAspectWidth">
            <summary>
            Gets the display aspect width.
            This is NOT the pixel aspect width.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoComponent.DisplayAspectHeight">
            <summary>
            Gets the display aspect height.
            This si NOT the pixel aspect height.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoComponent.HardwareAccelerator">
            <summary>
            Gets the hardware accelerator.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoComponent.IsUsingHardwareDecoding">
            <summary>
            Gets a value indicating whether this component is using hardware-assisted decoding.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoComponent.SeekIndex">
            <summary>
            Gets the video seek index for this component.
            Returns null if it was not set in the media options.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoComponent.FilterString">
            <summary>
            Provides access to the VideoFilter string of the container's MediaOptions.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoComponent.AttachHardwareDevice(CSVideoPlayer.HardwareDeviceInfo)">
            <summary>
            Attaches a hardware accelerator to this video component.
            </summary>
            <param name="selectedConfig">The selected configuration.</param>
            <returns>
            Whether or not the hardware accelerator was attached.
            </returns>
        </member>
        <member name="M:CSVideoPlayer.VideoComponent.ReleaseHardwareDevice">
            <summary>
            Releases the hardware device context.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoComponent.MaterializeFrame(CSVideoPlayer.MediaFrame,CSVideoPlayer.MediaBlock@,CSVideoPlayer.MediaBlock)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.VideoComponent.CreateFrameSource(System.IntPtr)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.VideoComponent.Dispose(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.VideoComponent.NormalizePixelFormat(FFmpeg.AutoGen.AVFrame*)">
            <summary>
            Gets the pixel format replacing deprecated pixel formats.
            AV_PIX_FMT_YUVJ.
            </summary>
            <param name="frame">The frame.</param>
            <returns>A normalized pixel format.</returns>
        </member>
        <member name="M:CSVideoPlayer.VideoComponent.ComputeRotation(System.Byte*)">
            <summary>
            Computes the Frame rotation property from side data.
            </summary>
            <param name="matrixArrayRef">The matrix array reference.</param>
            <returns>The angle to rotate.</returns>
        </member>
        <member name="M:CSVideoPlayer.VideoComponent.ComputeHypotenuse(System.Double,System.Double)">
            <summary>
            Computes the hypotenuse (right-angle triangles only).
            </summary>
            <param name="a">a.</param>
            <param name="b">The b.</param>
            <returns>The length of the hypotenuse.</returns>
        </member>
        <member name="M:CSVideoPlayer.VideoComponent.ComputeFilterArguments(FFmpeg.AutoGen.AVFrame*)">
            <summary>
            Computes the frame filter arguments that are appropriate for the video filtering chain.
            </summary>
            <param name="frame">The frame.</param>
            <returns>The base filter arguments.</returns>
        </member>
        <member name="M:CSVideoPlayer.VideoComponent.InitializeFilterGraph(FFmpeg.AutoGen.AVFrame*)">
            <summary>
            If necessary, disposes the existing filter graph and creates a new one based on the frame arguments.
            </summary>
            <param name="frame">The frame.</param>
            <exception cref="T:CSVideoPlayer.MediaContainerException">
            avfilter_graph_create_filter
            or
            avfilter_graph_create_filter
            or
            avfilter_link
            or
            avfilter_graph_parse
            or
            avfilter_graph_config.
            </exception>
        </member>
        <member name="M:CSVideoPlayer.VideoComponent.DestroyFilterGraph">
            <summary>
            Destroys the filter graph releasing unmanaged resources.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoFrame">
            <summary>
            Represents a wrapper for an unmanaged ffmpeg video frame.
            </summary>
            <seealso cref="T:CSVideoPlayer.MediaFrame" />
        </member>
        <member name="M:CSVideoPlayer.VideoFrame.#ctor(FFmpeg.AutoGen.AVFrame*,CSVideoPlayer.VideoComponent)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.VideoFrame" /> class.
            </summary>
            <param name="frame">The frame.</param>
            <param name="component">The video component.</param>
        </member>
        <member name="P:CSVideoPlayer.VideoFrame.ClosedCaptions">
            <summary>
            Gets the closed caption data collected from the frame in CEA-708/EAS-608 format.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoFrame.DisplayPictureNumber">
            <summary>
            Gets the display picture number (frame number).
            If not set by the decoder, this attempts to obtain it by dividing the start time by the
            frame duration.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoFrame.PictureType">
            <summary>
            Gets the video picture type. I frames are key frames.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoFrame.CodedPictureNumber">
            <summary>
            Gets the coded picture number set by the decoder.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoFrame.SmtpeTimeCode">
            <summary>
            Gets the SMTPE time code.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoFrame.IsHardwareFrame">
            <summary>
            Gets a value indicating whether this frame was decoded in a hardware context.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoFrame.HardwareAcceleratorName">
            <summary>
            Gets the name of the hardware decoder if the frame was decoded in a hardware context.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoFrame.Pointer">
            <summary>
            Gets the pointer to the unmanaged frame.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoFrame.Dispose">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.Aspects">
            <summary>
            Provides constants for logging aspect identifiers.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.Benchmark">
            <summary>
            A simple benchmarking class.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Benchmark.Identifiers">
            <summary>
            Gets the identifiers.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.Benchmark.Start(System.String)">
            <summary>
            Starts measuring with the given identifier.
            Usage: using (Benchmark.Start(operationName) { your code here }.
            </summary>
            <param name="identifier">The identifier.</param>
            <returns>A disposable object that when disposed, adds a benchmark result.</returns>
        </member>
        <member name="M:CSVideoPlayer.Benchmark.Dump">
            <summary>
            Outputs the benchmark statistics.
            </summary>
            <returns>A string containing human-readable statistics.</returns>
        </member>
        <member name="M:CSVideoPlayer.Benchmark.Dump(System.String)">
            <summary>
            Outputs the benchmark statistics for the given identifier.
            </summary>
            <param name="identifier">The benchmark identifier to dump.</param>
            <returns>A string containing human-readable statistics.</returns>
        </member>
        <member name="M:CSVideoPlayer.Benchmark.Results">
            <summary>
            Retrieves the results for all benchmark identifiers.
            </summary>
            <returns>The benchmark result collection.</returns>
        </member>
        <member name="M:CSVideoPlayer.Benchmark.Results(System.String)">
            <summary>
            Retrieves the results for the given benchmark identifier.
            </summary>
            <param name="identifier">The benchmark identifier.</param>
            <returns>The benchmark result.</returns>
        </member>
        <member name="M:CSVideoPlayer.Benchmark.Count(System.String)">
            <summary>
            Returns the number of measures available for the given identifier.
            Returns 0 if the identifier does not exist.
            </summary>
            <param name="identifier">The identifier.</param>
            <returns>The number of measures.</returns>
        </member>
        <member name="M:CSVideoPlayer.Benchmark.Clear(System.String)">
            <summary>
            Clears the measures for the specified identifier.
            </summary>
            <param name="identifier">The identifier.</param>
        </member>
        <member name="M:CSVideoPlayer.Benchmark.Clear">
            <summary>
            Clears the measures for all identifiers.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.Benchmark.Add(System.String,System.TimeSpan)">
            <summary>
            Adds the specified result to the given identifier.
            </summary>
            <param name="identifier">The identifier.</param>
            <param name="elapsed">The elapsed.</param>
        </member>
        <member name="T:CSVideoPlayer.Benchmark.BenchmarkUnit">
            <summary>
            Represents a disposable benchmark unit.
            </summary>
            <seealso cref="T:System.IDisposable" />
        </member>
        <member name="M:CSVideoPlayer.Benchmark.BenchmarkUnit.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.Benchmark.BenchmarkUnit" /> class.
            </summary>
            <param name="identifier">The identifier.</param>
        </member>
        <member name="M:CSVideoPlayer.Benchmark.BenchmarkUnit.Dispose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.Benchmark.BenchmarkUnit.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="alsoManaged"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="T:CSVideoPlayer.BenchmarkResult">
            <summary>
            Contains benchmark summary data.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.BenchmarkResult.#ctor(System.String,System.Collections.Generic.List{System.TimeSpan})">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.BenchmarkResult" /> class.
            </summary>
            <param name="identifier">The identifier.</param>
            <param name="measures">The measures.</param>
        </member>
        <member name="P:CSVideoPlayer.BenchmarkResult.Identifier">
            <summary>
            Gets the benchmark identifier.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.BenchmarkResult.Count">
            <summary>
            Gets the measure count.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.BenchmarkResult.Average">
            <summary>
            Gets the average time in milliseconds.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.BenchmarkResult.Min">
            <summary>
            Gets the minimum time in milliseconds.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.BenchmarkResult.Max">
            <summary>
            Gets the maximum time in milliseconds.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.BenchmarkResult.ToString">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.ILoggingHandler">
            <summary>
            Defines interface methods for logging message handlers.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ILoggingHandler.HandleLogMessage(CSVideoPlayer.LoggingMessage)">
            <summary>
            Handles a log message.
            </summary>
            <param name="message">The message object containing the data.</param>
        </member>
        <member name="T:CSVideoPlayer.ILoggingSource">
            <summary>
            Defines interface members for a class that
            defines a logging message handler <see cref="T:CSVideoPlayer.ILoggingHandler"/>.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ILoggingSource.LoggingHandler">
            <summary>
            Gets the logging handler.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.Logging">
            <summary>
            A queue-based logger that automatically starts a background timer that
            empties the queue constantly, at a low priority, and in batches.
            Messages are handled by the <see cref="T:CSVideoPlayer.ILoggingHandler"/> object associated with the message.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.Logging.#cctor">
            <summary>
            Initializes static members of the <see cref="T:CSVideoPlayer.Logging"/> class.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.Logging.LogDebug(CSVideoPlayer.ILoggingSource,System.String,System.String)">
            <summary>
            Logs the specified message.
            </summary>
            <param name="sender">The logging source.</param>
            <param name="aspectName">The aspect of the code where the message is coming from.</param>
            <param name="message">The message text.</param>
        </member>
        <member name="M:CSVideoPlayer.Logging.LogInfo(CSVideoPlayer.ILoggingSource,System.String,System.String)">
            <summary>
            Logs the specified message.
            </summary>
            <param name="sender">The logging source.</param>
            <param name="aspectName">The aspect of the code where the message is coming from.</param>
            <param name="message">The message text.</param>
        </member>
        <member name="M:CSVideoPlayer.Logging.LogWarning(CSVideoPlayer.ILoggingSource,System.String,System.String)">
            <summary>
            Logs the specified message.
            </summary>
            <param name="sender">The logging source.</param>
            <param name="aspectName">The aspect of the code where the message is coming from.</param>
            <param name="message">The message text.</param>
        </member>
        <member name="M:CSVideoPlayer.Logging.LogTrace(CSVideoPlayer.ILoggingSource,System.String,System.String)">
            <summary>
            Logs the specified message.
            </summary>
            <param name="sender">The logging source.</param>
            <param name="aspectName">The aspect of the code where the message is coming from.</param>
            <param name="message">The message text.</param>
        </member>
        <member name="M:CSVideoPlayer.Logging.LogError(CSVideoPlayer.ILoggingSource,System.String,System.String)">
            <summary>
            Logs the specified message.
            </summary>
            <param name="sender">The logging source.</param>
            <param name="aspectName">The aspect of the code where the message is coming from.</param>
            <param name="message">The message text.</param>
        </member>
        <member name="M:CSVideoPlayer.Logging.LogError(CSVideoPlayer.ILoggingSource,System.String,System.String,System.Exception)">
            <summary>
            Logs the specified message.
            </summary>
            <param name="sender">The logging source.</param>
            <param name="aspectName">The aspect of the code where the message is coming from.</param>
            <param name="message">The message text.</param>
            <param name="ex">The exception to log.</param>
        </member>
        <member name="M:CSVideoPlayer.Logging.Log(CSVideoPlayer.ILoggingHandler,CSVideoPlayer.MediaLogMessageType,System.String)">
            <summary>
            Logs the specified message. This the generic logging mechanism available to all classes.
            </summary>
            <param name="loggingHandler">The object that will handle the message output.</param>
            <param name="messageType">Type of the message.</param>
            <param name="message">The message.</param>
        </member>
        <member name="M:CSVideoPlayer.Logging.Log(CSVideoPlayer.ILoggingHandler,CSVideoPlayer.MediaLogMessageType,System.String,System.String)">
            <summary>
            Logs the specified logging handler.
            </summary>
            <param name="loggingHandler">The logging handler.</param>
            <param name="messageType">Type of the message.</param>
            <param name="aspectName">Name of the code aspect where the message is coming from.</param>
            <param name="message">The message.</param>
        </member>
        <member name="T:CSVideoPlayer.Logging.LogOutputTimerWorker">
            <summary>
            Implements the timer worker that outputs data to the log.
            </summary>
            <seealso cref="T:CSVideoPlayer.IntervalWorkerBase" />
        </member>
        <member name="M:CSVideoPlayer.Logging.LogOutputTimerWorker.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.Logging.LogOutputTimerWorker"/> class.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.Logging.LogOutputTimerWorker.ExecuteCycleLogic(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.Logging.LogOutputTimerWorker.OnCycleException(System.Exception)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.Logging.LogOutputTimerWorker.OnDisposing">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.LoggingMessage">
            <summary>
            Represents the contents of a logging message that was sent to the log manager.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.LoggingMessage.#ctor(CSVideoPlayer.ILoggingHandler,CSVideoPlayer.MediaLogMessageType,System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.LoggingMessage" /> class.
            </summary>
            <param name="loggingHandler">The object that shall handle the message when it is output by the queue.</param>
            <param name="messageType">Type of the message.</param>
            <param name="messageText">The message text.</param>
            <param name="aspectName">Name of the code aspect the message came from.</param>
        </member>
        <member name="P:CSVideoPlayer.LoggingMessage.Handler">
            <summary>
            Gets the object that shall handle the message when it is output by the queue.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.LoggingMessage.TimestampUtc">
            <summary>
            Gets the timestamp.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.LoggingMessage.MessageType">
            <summary>
            Gets the type of the message.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.LoggingMessage.Message">
            <summary>
            Gets the contents of the message.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.LoggingMessage.AspectName">
            <summary>
            Gets the aspect or feature that sent the logged message.
            May or may not be available.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.RC">
            <summary>
            A reference counter to keep track of unmanaged objects.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.RC.SyncLock">
            <summary>
            The synchronization lock.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.RC.m_Current">
            <summary>
            The current reference counter instance.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.RC.Instances">
            <summary>
            The instances.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.RC.UnmanagedType">
            <summary>
            The types of tracked unmanaged types.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.RC.UnmanagedType.None">
            <summary>
            No media type.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.RC.UnmanagedType.Packet">
            <summary>
            The packet.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.RC.UnmanagedType.Frame">
            <summary>
            The frame.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.RC.UnmanagedType.FilterGraph">
            <summary>
            The filter graph.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.RC.UnmanagedType.SwrContext">
            <summary>
            The SWR context.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.RC.UnmanagedType.CodecContext">
            <summary>
            The codec context.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.RC.UnmanagedType.SwsContext">
            <summary>
            The SWS context.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RC.Current">
            <summary>
            Gets the singleton instance of the reference counter.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RC.InstancesByLocation">
            <summary>
            Gets the number of instances by location.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.RC.Remove(System.IntPtr)">
            <summary>
            Removes the specified unmanaged object reference.
            </summary>
            <param name="ptr">The PTR.</param>
        </member>
        <member name="M:CSVideoPlayer.RC.Remove(System.Void*)">
            <summary>
            Removes the specified unmanaged object reference.
            </summary>
            <param name="ptr">The unmanaged object reference.</param>
        </member>
        <member name="M:CSVideoPlayer.RC.Add(FFmpeg.AutoGen.AVPacket*,System.String,System.String,System.Int32)">
            <summary>
            Adds the specified pointer.
            </summary>
            <param name="pointer">The pointer.</param>
            <param name="memberName">Name of the member.</param>
            <param name="filePath">The file path.</param>
            <param name="lineNumber">The line number.</param>
        </member>
        <member name="M:CSVideoPlayer.RC.Add(FFmpeg.AutoGen.SwrContext*,System.String,System.String,System.Int32)">
            <summary>
            Adds the specified pointer.
            </summary>
            <param name="pointer">The pointer.</param>
            <param name="memberName">Name of the member.</param>
            <param name="filePath">The file path.</param>
            <param name="lineNumber">The line number.</param>
        </member>
        <member name="M:CSVideoPlayer.RC.Add(FFmpeg.AutoGen.SwsContext*,System.String,System.String,System.Int32)">
            <summary>
            Adds the specified pointer.
            </summary>
            <param name="pointer">The pointer.</param>
            <param name="memberName">Name of the member.</param>
            <param name="filePath">The file path.</param>
            <param name="lineNumber">The line number.</param>
        </member>
        <member name="M:CSVideoPlayer.RC.Add(FFmpeg.AutoGen.AVCodecContext*,System.String,System.String,System.Int32)">
            <summary>
            Adds the specified pointer.
            </summary>
            <param name="pointer">The pointer.</param>
            <param name="memberName">Name of the member.</param>
            <param name="filePath">The file path.</param>
            <param name="lineNumber">The line number.</param>
        </member>
        <member name="M:CSVideoPlayer.RC.Add(FFmpeg.AutoGen.AVFrame*,System.String,System.String,System.Int32)">
            <summary>
            Adds the specified pointer.
            </summary>
            <param name="pointer">The pointer.</param>
            <param name="memberName">Name of the member.</param>
            <param name="filePath">The file path.</param>
            <param name="lineNumber">The line number.</param>
        </member>
        <member name="M:CSVideoPlayer.RC.Add(FFmpeg.AutoGen.AVFilterGraph*,System.String,System.String,System.Int32)">
            <summary>
            Adds the specified pointer.
            </summary>
            <param name="pointer">The pointer.</param>
            <param name="memberName">Name of the member.</param>
            <param name="filePath">The file path.</param>
            <param name="lineNumber">The line number.</param>
        </member>
        <member name="M:CSVideoPlayer.RC.AddInternal(CSVideoPlayer.RC.UnmanagedType,System.IntPtr,System.String,System.String,System.Int32)">
            <summary>
            Adds the specified unmanaged object reference.
            </summary>
            <param name="unmanagedType">Type of the unmanaged.</param>
            <param name="pointer">The pointer.</param>
            <param name="memberName">Name of the member.</param>
            <param name="filePath">The file path.</param>
            <param name="lineNumber">The line number.</param>
        </member>
        <member name="T:CSVideoPlayer.RC.ReferenceEntry">
            <summary>
            A reference entry.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.RC.ReferenceEntry.#ctor(CSVideoPlayer.RC.UnmanagedType,System.IntPtr,System.String,System.String,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.RC.ReferenceEntry"/> class.
            </summary>
            <param name="unmanagedType">Type of the unmanaged.</param>
            <param name="pointer">The pointer.</param>
            <param name="memberName">Name of the member.</param>
            <param name="filePath">The file path.</param>
            <param name="lineNumber">The line number.</param>
        </member>
        <member name="P:CSVideoPlayer.RC.ReferenceEntry.Type">
            <summary>
            Gets the unmanaged type.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RC.ReferenceEntry.Pointer">
            <summary>
            Gets the pointer to the memory location of the unmanaged object.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RC.ReferenceEntry.MemberName">
            <summary>
            Gets the name of the member that created the unmanaged object.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RC.ReferenceEntry.FilePath">
            <summary>
            Gets the file path of the code that created the unmanaged object.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RC.ReferenceEntry.FileName">
            <summary>
            Gets the file name of the code that created the unmanaged object.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RC.ReferenceEntry.LineNumber">
            <summary>
            Gets the line number of the code that created the unmanaged object.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.RC.ReferenceEntry.ToString">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.BlockRenderingWorker">
            <summary>
            Implements the block rendering worker.
            </summary>
            <seealso cref="T:CSVideoPlayer.IMediaWorker" />
        </member>
        <member name="F:CSVideoPlayer.BlockRenderingWorker.MinMonotonicDuration">
            <summary>
            Represetnts 100 FPS -- 10ms per frame.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.BlockRenderingWorker.MaxMonotonicDuration">
            <summary>
            Represents 20 FPS -- 50ms per frame.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.BlockRenderingWorker.FrameIdealDelayMin">
            <summary>
            The acceptable minimum frame delay between the render time and presentation time.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.BlockRenderingWorker.FrameIdealDelayMax">
            <summary>
            The acceptable maximum frame delay between the render time and presentation time.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.BlockRenderingWorker.AdjustmentBlockStartTime">
            <summary>
            The last video frame start time used to do timing and worker sync.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.BlockRenderingWorker.#ctor(CSVideoPlayer.MediaEngine)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.BlockRenderingWorker"/> class.
            </summary>
            <param name="mediaCore">The media core.</param>
        </member>
        <member name="P:CSVideoPlayer.BlockRenderingWorker.MediaCore">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.BlockRenderingWorker.CSVideoPlayer#ILoggingSource#LoggingHandler">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.BlockRenderingWorker.Commands">
            <summary>
            Gets the Media Engine's commands.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.BlockRenderingWorker.Container">
            <summary>
            Gets the Media Engine's container.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.BlockRenderingWorker.MediaOptions">
            <summary>
            Gets the media options.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.BlockRenderingWorker.HasDisconnectedClocks">
            <summary>
            Gets a value indicating whether the component clocks are not bound together.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.BlockRenderingWorker.State">
            <summary>
            Gets the Media Engine's state.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.BlockRenderingWorker.ExecuteCycleLogic(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.BlockRenderingWorker.OnCycleException(System.Exception)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.BlockRenderingWorker.OnDisposing">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.BlockRenderingWorker.Initialize(CSVideoPlayer.MediaType[])">
            <summary>
            Performs initialization before regular render loops are executed.
            </summary>
            <param name="all">All the component renderer types.</param>
            <returns>If media was initialized successfully.</returns>
        </member>
        <member name="M:CSVideoPlayer.BlockRenderingWorker.AlignClocksToPlayback(CSVideoPlayer.MediaType,CSVideoPlayer.MediaType[])">
            <summary>
            Ensures the real-time clocks do not lag or move beyond the range of their corresponding blocks.
            </summary>
            <param name="main">The main renderer component.</param>
            <param name="all">All the renderer components.</param>
        </member>
        <member name="M:CSVideoPlayer.BlockRenderingWorker.AdjustWorkerPeriod(CSVideoPlayer.MediaType)">
            <summary>
            Adjusts the worker period to match video frame durations.
            </summary>
            <param name="main">The main component type.</param>
        </member>
        <member name="M:CSVideoPlayer.BlockRenderingWorker.EnterSyncBuffering(CSVideoPlayer.MediaType,CSVideoPlayer.MediaType[])">
            <summary>
            Enters the sync-buffering scenario if needed.
            </summary>
            <param name="main">The main renderer component.</param>
            <param name="all">All the renderer components.</param>
        </member>
        <member name="M:CSVideoPlayer.BlockRenderingWorker.ExitSyncBuffering(CSVideoPlayer.MediaType,CSVideoPlayer.MediaType[],System.Threading.CancellationToken)">
            <summary>
            Exits the sync-buffering state.
            </summary>
            <param name="main">The main renderer component.</param>
            <param name="all">All the renderer components.</param>
            <param name="ct">The cancellation token.</param>
        </member>
        <member name="M:CSVideoPlayer.BlockRenderingWorker.WaitForSeekBlocks(CSVideoPlayer.MediaType,System.Threading.CancellationToken)">
            <summary>
            Waits for seek blocks to become available.
            </summary>
            <param name="main">The main renderer component.</param>
            <param name="ct">The cancellation token.</param>
        </member>
        <member name="M:CSVideoPlayer.BlockRenderingWorker.RenderBlock(CSVideoPlayer.MediaType)">
            <summary>
            Renders the available, non-repeated block.
            </summary>
            <param name="t">The media type.</param>
            <returns>Whether a block was sent to its corresponding renderer.</returns>
        </member>
        <member name="M:CSVideoPlayer.BlockRenderingWorker.DetectPlaybackEnded(CSVideoPlayer.MediaType)">
            <summary>
            Detects whether the playback has ended.
            </summary>
            <param name="main">The main component type.</param>
        </member>
        <member name="M:CSVideoPlayer.BlockRenderingWorker.ReportAndResumePlayback(CSVideoPlayer.MediaType)">
            <summary>
            Reports the playback position if needed and
            resumes the playback clock if the conditions allow for it.
            </summary>
            <param name="main">The main.</param>
        </member>
        <member name="M:CSVideoPlayer.BlockRenderingWorker.SendBlockToRenderer(CSVideoPlayer.MediaBlock,System.TimeSpan)">
            <summary>
            Sends the given block to its corresponding media renderer.
            </summary>
            <param name="incomingBlock">The block.</param>
            <param name="playbackPosition">The clock position.</param>
            <returns>
            The number of blocks sent to the renderer.
            </returns>
        </member>
        <member name="M:CSVideoPlayer.BlockRenderingWorker.LogRenderBlock(CSVideoPlayer.MediaBlock,System.TimeSpan)">
            <summary>
            Logs a block rendering operation as a Trace Message
            if the debugger is attached.
            </summary>
            <param name="block">The block.</param>
            <param name="clockPosition">The clock position.</param>
        </member>
        <member name="T:CSVideoPlayer.FrameDecodingWorker">
            <summary>
            Implement frame decoding worker logic.
            </summary>
            <seealso cref="T:CSVideoPlayer.IMediaWorker" />
        </member>
        <member name="F:CSVideoPlayer.FrameDecodingWorker.DecodedFrameCount">
            <summary>
            The decoded frame count for a cycle. This is used to detect end of decoding scenarios.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.FrameDecodingWorker.#ctor(CSVideoPlayer.MediaEngine)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.FrameDecodingWorker"/> class.
            </summary>
            <param name="mediaCore">The media core.</param>
        </member>
        <member name="P:CSVideoPlayer.FrameDecodingWorker.MediaCore">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.FrameDecodingWorker.CSVideoPlayer#ILoggingSource#LoggingHandler">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.FrameDecodingWorker.Container">
            <summary>
            Gets the Media Engine's Container.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.FrameDecodingWorker.State">
            <summary>
            Gets the Media Engine's State.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.FrameDecodingWorker.UseParallelDecoding">
            <summary>
            Gets a value indicating whether parallel decoding is enabled.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.FrameDecodingWorker.ExecuteCycleLogic(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.FrameDecodingWorker.OnCycleException(System.Exception)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.FrameDecodingWorker.OnDisposing">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.FrameDecodingWorker.AddNextBlock(CSVideoPlayer.MediaType)">
            <summary>
            Tries to receive the next frame from the decoder by decoding queued
            Packets and converting the decoded frame into a Media Block which gets
            queued into the playback block buffer.
            </summary>
            <param name="t">The MediaType.</param>
            <returns>True if a block could be added. False otherwise.</returns>
        </member>
        <member name="M:CSVideoPlayer.FrameDecodingWorker.DetectHasDecodingEnded">
            <summary>
            Detects the end of media in the decoding worker.
            </summary>
            <returns>True if media docding has ended.</returns>
        </member>
        <member name="M:CSVideoPlayer.FrameDecodingWorker.CanReadMoreFramesOf(CSVideoPlayer.MediaType)">
            <summary>
            Gets a value indicating whether more frames can be decoded into blocks of the given type.
            </summary>
            <param name="t">The media type.</param>
            <returns>
              <c>true</c> if more frames can be decoded; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="T:CSVideoPlayer.IMediaWorker">
            <summary>
            Represents a worker API owned by a <see cref="T:CSVideoPlayer.MediaEngine"/>.
            </summary>
            <seealso cref="T:CSVideoPlayer.IWorker" />
        </member>
        <member name="P:CSVideoPlayer.IMediaWorker.MediaCore">
            <summary>
            Gets the media core this worker belongs to.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.MediaEngine">
            <summary>
            Represents a Media Engine that contains underlying streams of audio and/or video.
            It uses the fantastic FFmpeg library to perform reading and decoding of media streams.
            </summary>
            <seealso cref="T:CSVideoPlayer.ILoggingHandler" />
            <seealso cref="T:System.IDisposable" />
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.SendOnMessageLogged(CSVideoPlayer.LoggingMessage)">
            <summary>
            Raises the MessageLogged event.
            </summary>
            <param name="message">The <see cref="T:CSVideoPlayer.LoggingMessage" /> instance containing the message.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.SendOnMediaFailed(System.Exception)">
            <summary>
            Raises the media failed event.
            </summary>
            <param name="ex">The ex.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.SendOnMediaClosed">
            <summary>
            Raises the media closed event.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.SendOnMediaOpened">
            <summary>
            Raises the media opened event.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.SendOnMediaInitializing(CSVideoPlayer.ContainerConfiguration,System.String)">
            <summary>
            Raises the media initializing event.
            </summary>
            <param name="config">The container configuration options.</param>
            <param name="url">The URL.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.SendOnMediaOpening">
            <summary>
            Raises the media opening event.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.SendOnMediaChanging">
            <summary>
            Raises the media changing event.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.SendOnMediaChanged">
            <summary>
            Raises the media changed event.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.SendOnBufferingStarted">
            <summary>
            Raises the buffering started event.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.SendOnBufferingEnded">
            <summary>
            Raises the buffering ended event.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.SendOnSeekingStarted">
            <summary>
            Raises the Seeking started event.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.SendOnSeekingEnded">
            <summary>
            Raises the Seeking ended event.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.SendOnMediaEnded">
            <summary>
            Raises the media ended event.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.SendOnPositionChanged(System.TimeSpan,System.TimeSpan)">
            <summary>
            Sends the on position changed.
            </summary>
            <param name="oldValue">The old value.</param>
            <param name="newValue">The new value.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.SendOnMediaStateChanged(CSVideoPlayer.MediaPlaybackState,CSVideoPlayer.MediaPlaybackState)">
            <summary>
            Sends the on media state changed.
            </summary>
            <param name="oldValue">The old value.</param>
            <param name="newValue">The new value.</param>
        </member>
        <member name="P:CSVideoPlayer.MediaEngine.Commands">
            <summary>
            The command queue to be executed in the order they were sent.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaEngine.Container">
            <summary>
            The underlying media container that provides access to
            individual media component streams.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.Open(System.Uri)">
            <summary>
            Opens the media using the specified URI.
            </summary>
            <param name="uri">The URI.</param>
            <returns>The awaitable task.</returns>
            <exception cref="T:System.InvalidOperationException">Source.</exception>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.Open(CSVideoPlayer.IMediaInputStream)">
            <summary>
            Opens the media using a custom media input stream.
            </summary>
            <param name="stream">The URI.</param>
            <returns>The awaitable task.</returns>
            <exception cref="T:System.InvalidOperationException">Source.</exception>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.Close">
            <summary>
            Closes the currently loaded media.
            </summary>
            <returns>The awaitable task.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.ChangeMedia">
            <summary>
            Requests new media options to be applied, including stream component selection.
            </summary>
            <returns>The awaitable command.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.Play">
            <summary>
            Begins or resumes playback of the currently loaded media.
            </summary>
            <returns>The awaitable command.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.Pause">
            <summary>
            Pauses playback of the currently loaded media.
            </summary>
            <returns>The awaitable command.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.Stop">
            <summary>
            Pauses and rewinds the currently loaded media.
            </summary>
            <returns>The awaitable command.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.Seek(System.TimeSpan)">
            <summary>
            Seeks to the specified position.
            </summary>
            <param name="position">New position for the player.</param>
            <returns>The awaitable command.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.StepForward">
            <summary>
            Seeks a single frame forward.
            </summary>
            <returns>The awaitable command.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.StepBackward">
            <summary>
            Seeks a single frame backward.
            </summary>
            <returns>The awaitable command.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.#ctor(System.Object,CSVideoPlayer.IMediaConnector)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaEngine" /> class.
            </summary>
            <param name="parent">The associated parent object.</param>
            <param name="connector">The parent implementing connector methods.</param>
            <exception cref="T:System.InvalidOperationException">Thrown when the static Initialize method has not been called.</exception>
        </member>
        <member name="E:CSVideoPlayer.MediaEngine.FFmpegMessageLogged">
            <summary>
            An event that is raised whenever a global FFmpeg message is logged.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaEngine.CSVideoPlayer#ILoggingSource#LoggingHandler">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngine.State">
            <summary>
            Contains the Media Status.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaEngine.MediaInfo">
            <summary>
            Provides stream, chapter and program info of the underlying media.
            Returns null when no media is loaded.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaEngine.IsDisposed">
            <summary>
            Gets a value indicating whether this instance is disposed.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaEngine.Parent">
            <summary>
            Gets the associated parent object.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaEngine.PlaybackPosition">
            <summary>
            Gets the real-time playback clock position.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaEngine.Timing">
            <summary>
            Represents a real-time time clock controller.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaEngine.MediaOptions">
            <summary>
            Gets the media options. Do not modify the properties of this object directly
            as it may cause unstable playback or crashes.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaEngine.Connector">
            <summary>
            Gets the event connector (platform specific).
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.CSVideoPlayer#ILoggingHandler#HandleLogMessage(CSVideoPlayer.LoggingMessage)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.Dispose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.RaiseFFmpegMessageLogged(CSVideoPlayer.LoggingMessage)">
            <summary>
            Raises the FFmpeg message logged.
            </summary>
            <param name="message">The <see cref="T:CSVideoPlayer.LoggingMessage"/> instance.</param>
        </member>
        <member name="F:CSVideoPlayer.MediaEngine.BufferLengthMax">
            <summary>
            Gets the buffer length maximum.
            port of MAX_QUEUE_SIZE (ffplay.c).
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaEngine.Blocks">
            <summary>
            Holds the materialized block cache for each media type.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaEngine.PreloadedSubtitles">
            <summary>
            Gets the preloaded subtitle blocks.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaEngine.Workers">
            <summary>
            Gets the worker collection.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaEngine.Renderers">
            <summary>
            Holds the block renderers.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaEngine.CurrentRenderStartTime">
            <summary>
            Holds the last rendered StartTime for each of the media block types.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaEngine.IsSyncBuffering">
            <summary>
            Gets a value indicating whether the decoder worker is sync-buffering.
            Sync-buffering is entered when there are no main blocks for the current clock.
            This in turn pauses the clock (without changing the media state).
            The decoder exits this condition when buffering is no longer needed and
            updates the clock position to what is available in the main block buffer.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaEngine.HasDecodingEnded">
            <summary>
            Gets or sets a value indicating whether the decoder worker has decoded all frames.
            This is an indication that the rendering worker should probe for end of media scenarios.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaEngine.ShouldReadMorePackets">
            <summary>
            Gets a value indicating whether packets can be read and
            room is available in the download cache.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.SignalSyncBufferingEntered">
            <summary>
            Signals that the engine has entered the syn-buffering state.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.SignalSyncBufferingExited">
            <summary>
            Signals that the engine has exited the syn-buffering state.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.ChangePlaybackPosition(System.TimeSpan,CSVideoPlayer.MediaType,System.Boolean)">
            <summary>
            Updates the specified clock type to a new playback position.
            </summary>
            <param name="playbackPosition">The new playback position.</param>
            <param name="t">The clock type. Pass none for all clocks.</param>
            <param name="reportPosition">If the new playback position should be reported.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.ChangePlaybackPosition(System.TimeSpan)">
            <summary>
            Updates the clock position and notifies the new
            position to the <see cref="P:CSVideoPlayer.MediaEngine.State" />.
            </summary>
            <param name="playbackPosition">The position.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.PausePlayback(CSVideoPlayer.MediaType,System.Boolean)">
            <summary>
            Pauses the playback by pausing the RTC.
            This does not change the state.
            </summary>
            <param name="t">The clock to pause.</param>
            <param name="reportPosition">If the new playback position should be reported.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.PausePlayback">
            <summary>
            Pauses the playback by pausing the RTC.
            This does not change the state.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.ResetPlaybackPosition">
            <summary>
            Resets the clock to the zero position and notifies the new
            position to rhe <see cref="P:CSVideoPlayer.MediaEngine.State"/>.
            </summary>
            <returns>The newly set position.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.InvalidateRenderer(CSVideoPlayer.MediaType)">
            <summary>
            Invalidates the last render time for the given component.
            Additionally, it calls Seek on the renderer to remove any caches.
            </summary>
            <param name="t">The t.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaEngine.InvalidateRenderers">
            <summary>
            Invalidates the last render time for all renderers given component.
            Additionally, it calls Seek on the renderers to remove any caches.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.MediaEngineState">
            <summary>
            Contains all the status properties of the stream being handled by the media engine.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngineState.#ctor(CSVideoPlayer.MediaEngine)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaEngineState" /> class.
            </summary>
            <param name="mediaCore">The associated media core.</param>
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.Source">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.SpeedRatio">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.Volume">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.Balance">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.IsMuted">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.MediaState">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.Position">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.FramePosition">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.HasMediaEnded">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.VideoSmtpeTimeCode">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.VideoHardwareDecoder">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.HasClosedCaptions">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.IsAtEndOfStream">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.IsPlaying">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.IsPaused">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.IsSeeking">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.IsClosing">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.IsOpening">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.IsChanging">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.IsOpen">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.PositionStep">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.BitRate">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.Metadata">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.CanPause">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.MediaFormat">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.MediaStreamSize">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.VideoStreamIndex">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.AudioStreamIndex">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.SubtitleStreamIndex">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.HasAudio">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.HasVideo">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.HasSubtitles">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.VideoCodec">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.VideoBitRate">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.VideoRotation">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.NaturalVideoWidth">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.NaturalVideoHeight">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.VideoAspectRatio">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.VideoFrameRate">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.AudioCodec">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.AudioBitRate">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.AudioChannels">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.AudioSampleRate">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.AudioBitsPerSample">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.NaturalDuration">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.PlaybackStartTime">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.PlaybackEndTime">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.IsLiveStream">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.IsNetworkStream">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.IsSeekable">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.IsBuffering">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.DecodingBitRate">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.BufferingProgress">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.DownloadProgress">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.PacketBufferLength">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.MediaEngineState.PacketBufferCount">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaEngineState.UpdateSource(System.Uri)">
            <summary>
            Updates the <see cref="P:CSVideoPlayer.MediaEngineState.Source"/> property.
            </summary>
            <param name="newSource">The new source.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaEngineState.UpdateFixedContainerProperties">
            <summary>
            Updates the fixed container properties.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngineState.UpdateDynamicBlockProperties(CSVideoPlayer.MediaBlock)">
            <summary>
            Updates state properties coming from a new media block.
            </summary>
            <param name="block">The block.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaEngineState.ReportPlaybackPosition">
            <summary>
            Updates the playback position and related properties.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngineState.ReportPlaybackPosition(System.TimeSpan)">
            <summary>
            Updates the playback position related properties.
            </summary>
            <param name="newPosition">The new playback position.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaEngineState.ResetAll">
            <summary>
            Resets all media state properties.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngineState.ResetMediaProperties">
            <summary>
            Resets the controller properties.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngineState.InitializeBufferingStatistics">
            <summary>
            Resets all the buffering properties to their defaults.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaEngineState.UpdateDecodingBitRate(System.Int64)">
            <summary>
            Updates the decoding bit rate.
            </summary>
            <param name="bitRate">The bit rate.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaEngineState.UpdateBufferingStats(System.Int64,System.Int32,System.Int32)">
            <summary>
            Updates the buffering properties: <see cref="P:CSVideoPlayer.MediaEngineState.PacketBufferCount" />, <see cref="P:CSVideoPlayer.MediaEngineState.PacketBufferLength" />,
            <see cref="P:CSVideoPlayer.MediaEngineState.IsBuffering" />, <see cref="P:CSVideoPlayer.MediaEngineState.BufferingProgress" />, <see cref="P:CSVideoPlayer.MediaEngineState.DownloadProgress" />.
            If a change is detected on the <see cref="P:CSVideoPlayer.MediaEngineState.IsBuffering" /> property then a notification is sent.
            </summary>
            <param name="bufferLength">Length of the packet buffer.</param>
            <param name="bufferCount">The packet buffer count.</param>
            <param name="bufferCountMax">The packet buffer count maximum for all components.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaEngineState.ResetBufferingStatistics">
            <summary>
            Resets the buffering statistics.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.MediaWorkerSet">
            <summary>
            Provides a easy accessors to the Read, Decode and Render workers.
            </summary>
            <seealso cref="T:System.IDisposable" />
        </member>
        <member name="M:CSVideoPlayer.MediaWorkerSet.#ctor(CSVideoPlayer.MediaEngine)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaWorkerSet"/> class.
            </summary>
            <param name="mediaCore">The media core.</param>
        </member>
        <member name="P:CSVideoPlayer.MediaWorkerSet.MediaCore">
            <summary>
            Gets the media engine that owns this set of workers.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaWorkerSet.Reading">
            <summary>
            Gets the packet reading worker.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaWorkerSet.Decoding">
            <summary>
            Gets the frame decoding worker.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaWorkerSet.Rendering">
            <summary>
            Gets the block rendering worker.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaWorkerSet.IsDisposed">
            <summary>
            Gets a value indicating whether this instance is disposed.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaWorkerSet.Item(CSVideoPlayer.MediaWorkerType)">
            <summary>
            Gets the <see cref="T:CSVideoPlayer.IMediaWorker"/> with the specified worker type.
            </summary>
            <value>
            The <see cref="T:CSVideoPlayer.IMediaWorker"/>.
            </value>
            <param name="workerType">Type of the worker.</param>
            <returns>The matching worker.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaWorkerSet.Start">
            <summary>
            Starts the workers.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaWorkerSet.PauseAll">
            <summary>
            Pauses all the media core workers and waits for the operation to complete.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaWorkerSet.ResumeAll">
            <summary>
            Resumes all the media core workers waiting for the operation to complete.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaWorkerSet.PauseReadDecode">
            <summary>
            Pauses the reading and decoding workers waiting for the operation to complete.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaWorkerSet.ResumePaused">
            <summary>
            Resumes only those workers which are in the paused state.
            This prevents an interrupt being sent to the worker by calling
            its resume method.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.MediaWorkerSet.Dispose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.MediaWorkerSet.Pause(System.Boolean,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Pauses the specified wrokers.
            </summary>
            <param name="wait">if set to <c>true</c> waits for the operation to complete.</param>
            <param name="read">if set to <c>true</c> executes the opration on the reading worker.</param>
            <param name="decode">if set to <c>true</c> executes the opration on the decoding worker.</param>
            <param name="render">if set to <c>true</c> executes the opration on the rendering worker.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaWorkerSet.Resume(System.Boolean,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Resumes the specified wrokers.
            </summary>
            <param name="wait">if set to <c>true</c> waits for the operation to complete.</param>
            <param name="read">if set to <c>true</c> executes the opration on the reading worker.</param>
            <param name="decode">if set to <c>true</c> executes the opration on the decoding worker.</param>
            <param name="render">if set to <c>true</c> executes the opration on the rendering worker.</param>
        </member>
        <member name="M:CSVideoPlayer.MediaWorkerSet.CaptureTasks(System.Boolean,System.Boolean,System.Boolean,CSVideoPlayer.WorkerState)">
            <summary>
            Captures the awaitable tasks for the given workers.
            </summary>
            <param name="read">The read worker.</param>
            <param name="decode">The decode worker.</param>
            <param name="render">The render worker.</param>
            <param name="targetState">The target state.</param>
            <returns>The awaitable tasks.</returns>
        </member>
        <member name="M:CSVideoPlayer.MediaWorkerSet.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="alsoManaged"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="T:CSVideoPlayer.MediaWorkerType">
            <summary>
            Defines the different worker types.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaWorkerType.Read">
            <summary>
            The packet reading worker
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaWorkerType.Decode">
            <summary>
            The frame decoding worker
            </summary>
        </member>
        <member name="F:CSVideoPlayer.MediaWorkerType.Render">
            <summary>
            The block rendering worker
            </summary>
        </member>
        <member name="T:CSVideoPlayer.PacketReadingWorker">
            <summary>
            Implement packet reading worker logic.
            </summary>
            <seealso cref="T:CSVideoPlayer.IMediaWorker" />
        </member>
        <member name="P:CSVideoPlayer.PacketReadingWorker.MediaCore">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.PacketReadingWorker.CSVideoPlayer#ILoggingSource#LoggingHandler">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.PacketReadingWorker.Container">
            <summary>
            Gets the Media Engine's container.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.PacketReadingWorker.ExecuteCycleLogic(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.PacketReadingWorker.OnCycleException(System.Exception)">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.TimingController">
            <summary>
            Implements a real-time clock controller capable of handling independent
            clocks for each of the components.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.TimingController.#ctor(CSVideoPlayer.MediaEngine)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.TimingController"/> class.
            </summary>
            <param name="mediaCore">The media core.</param>
        </member>
        <member name="P:CSVideoPlayer.TimingController.SpeedRatio">
            <summary>
            Gets or sets the speed ratio. All clocks are bound to the same value.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.TimingController.ReferenceType">
            <summary>
            Gets the clock type that positions are offset by.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.TimingController.HasDisconnectedClocks">
            <summary>
            Gets a value indicating whether the real-time clocks of the components are disconnected clocks.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.TimingController.IsRunning">
            <summary>
            Gets a value indicating whether the real-time clock of the reference type is running.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.TimingController.MediaCore">
            <summary>
            Gets the media core.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.TimingController.Setup">
            <summary>
            Sets up timing and clocks. Call this method when media components change.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.TimingController.Reset">
            <summary>
            Clears all component clocks and timing offsets.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.TimingController.Position(CSVideoPlayer.MediaType)">
            <summary>
            Gets the playback position of the real-time clock of the given component type.
            </summary>
            <param name="t">The t.</param>
            <returns>The clock position.</returns>
        </member>
        <member name="M:CSVideoPlayer.TimingController.Position">
            <summary>
            Gets the playback position of the real-time clock of the timing reference component type.
            </summary>
            <returns>The clock position.</returns>
        </member>
        <member name="M:CSVideoPlayer.TimingController.Update(System.TimeSpan,CSVideoPlayer.MediaType)">
            <summary>
            Updates the position of the component's clock. Pass none to update all clocks to the same postion.
            </summary>
            <param name="position">The position to update to.</param>
            <param name="t">The clock's media type.</param>
        </member>
        <member name="M:CSVideoPlayer.TimingController.Pause(CSVideoPlayer.MediaType)">
            <summary>
            Pauses the specified clock. Pass none to pause all clocks.
            </summary>
            <param name="t">The clock type.</param>
        </member>
        <member name="M:CSVideoPlayer.TimingController.Reset(CSVideoPlayer.MediaType)">
            <summary>
            Resets the position of the specified clock. Pass none to reset all.
            </summary>
            <param name="t">The media type.</param>
        </member>
        <member name="M:CSVideoPlayer.TimingController.Play(CSVideoPlayer.MediaType)">
            <summary>
            Plays or resumes the specified clock. Pass none to play all.
            </summary>
            <param name="t">The media type.</param>
        </member>
        <member name="M:CSVideoPlayer.TimingController.GetComponentStartOffset(CSVideoPlayer.MediaType)">
            <summary>
            Gets the component start offset.
            </summary>
            <param name="t">The component media type.</param>
            <returns>The component start time.</returns>
        </member>
        <member name="T:CSVideoPlayer.IMediaConnector">
            <summary>
            Connects handlers between the Media Engine event signals and a platform-specific implementation.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IMediaConnector.CreateRenderer(CSVideoPlayer.MediaType,CSVideoPlayer.MediaEngine)">
            <summary>
            Creates a renderer of the specified media type.
            </summary>
            <param name="mediaType">Type of the media.</param>
            <param name="mediaCore">The media engine.</param>
            <returns>The renderer.</returns>
        </member>
        <member name="M:CSVideoPlayer.IMediaConnector.OnMessageLogged(CSVideoPlayer.MediaEngine,CSVideoPlayer.LoggingMessage)">
            <summary>
            Called when a message is logged.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The <see cref="T:CSVideoPlayer.LoggingMessage"/> instance containing the event data.</param>
        </member>
        <member name="M:CSVideoPlayer.IMediaConnector.OnMediaInitializing(CSVideoPlayer.MediaEngine,CSVideoPlayer.ContainerConfiguration,System.String)">
            <summary>
            Called when the media input is initializing.
            </summary>
            <param name="sender">The sender.</param>
            <param name="config">The container configuration options.</param>
            <param name="mediaSource">The media URL source.</param>
        </member>
        <member name="M:CSVideoPlayer.IMediaConnector.OnMediaOpening(CSVideoPlayer.MediaEngine,CSVideoPlayer.MediaOptions,CSVideoPlayer.MediaInfo)">
            <summary>
            Called when the media input was opened and provides a way to configure component streams.
            </summary>
            <param name="sender">The sender.</param>
            <param name="mediaOptions">The media options.</param>
            <param name="mediaInfo">The media information.</param>
        </member>
        <member name="M:CSVideoPlayer.IMediaConnector.OnMediaChanging(CSVideoPlayer.MediaEngine,CSVideoPlayer.MediaOptions,CSVideoPlayer.MediaInfo)">
            <summary>
            Called when a change in media options is requested, such as a change in selected component streams.
            </summary>
            <param name="sender">The sender.</param>
            <param name="mediaOptions">The media options.</param>
            <param name="mediaInfo">The media information.</param>
        </member>
        <member name="M:CSVideoPlayer.IMediaConnector.OnMediaChanged(CSVideoPlayer.MediaEngine,CSVideoPlayer.MediaInfo)">
            <summary>
            Called when a change in stream components has been completed.
            </summary>
            <param name="sender">The sender.</param>
            <param name="mediaInfo">The media information.</param>
        </member>
        <member name="M:CSVideoPlayer.IMediaConnector.OnMediaOpened(CSVideoPlayer.MediaEngine,CSVideoPlayer.MediaInfo)">
            <summary>
            Called when media has been fully opened and components were created.
            </summary>
            <param name="sender">The sender.</param>
            <param name="mediaInfo">The media information.</param>
        </member>
        <member name="M:CSVideoPlayer.IMediaConnector.OnMediaClosed(CSVideoPlayer.MediaEngine)">
            <summary>
            Called when media has been closed.
            </summary>
            <param name="sender">The sender.</param>
        </member>
        <member name="M:CSVideoPlayer.IMediaConnector.OnMediaFailed(CSVideoPlayer.MediaEngine,System.Exception)">
            <summary>
            Called when a media failure occurs.
            </summary>
            <param name="sender">The sender.</param>
            <param name="e">The e.</param>
        </member>
        <member name="M:CSVideoPlayer.IMediaConnector.OnMediaEnded(CSVideoPlayer.MediaEngine)">
            <summary>
            Called when media has reached the end of the stream.
            </summary>
            <param name="sender">The sender.</param>
        </member>
        <member name="M:CSVideoPlayer.IMediaConnector.OnBufferingStarted(CSVideoPlayer.MediaEngine)">
            <summary>
            Called when packet buffering has started.
            </summary>
            <param name="sender">The sender.</param>
        </member>
        <member name="M:CSVideoPlayer.IMediaConnector.OnBufferingEnded(CSVideoPlayer.MediaEngine)">
            <summary>
            Called when packet buffering has ended.
            </summary>
            <param name="sender">The sender.</param>
        </member>
        <member name="M:CSVideoPlayer.IMediaConnector.OnSeekingStarted(CSVideoPlayer.MediaEngine)">
            <summary>
            Called when a seek operation has started.
            </summary>
            <param name="sender">The sender.</param>
        </member>
        <member name="M:CSVideoPlayer.IMediaConnector.OnSeekingEnded(CSVideoPlayer.MediaEngine)">
            <summary>
            Called when a seek operation has ended.
            </summary>
            <param name="sender">The sender.</param>
        </member>
        <member name="M:CSVideoPlayer.IMediaConnector.OnPositionChanged(CSVideoPlayer.MediaEngine,System.TimeSpan,System.TimeSpan)">
            <summary>
            Called when media position changes.
            </summary>
            <param name="sender">The sender.</param>
            <param name="oldValue">The old value.</param>
            <param name="newValue">The new value.</param>
        </member>
        <member name="M:CSVideoPlayer.IMediaConnector.OnMediaStateChanged(CSVideoPlayer.MediaEngine,CSVideoPlayer.MediaPlaybackState,CSVideoPlayer.MediaPlaybackState)">
            <summary>
            Called when the playback status changes.
            </summary>
            <param name="sender">The sender.</param>
            <param name="oldValue">The old value.</param>
            <param name="newValue">The new value.</param>
        </member>
        <member name="M:CSVideoPlayer.IMediaConnector.OnPacketRead(FFmpeg.AutoGen.AVPacket*,FFmpeg.AutoGen.AVFormatContext*)">
            <summary>
            Called when a packet is read from the input context.
            </summary>
            <param name="packet">The unmanaged packet pointer.</param>
            <param name="context">The unmanaged input format context.</param>
        </member>
        <member name="M:CSVideoPlayer.IMediaConnector.OnVideoFrameDecoded(FFmpeg.AutoGen.AVFrame*,FFmpeg.AutoGen.AVFormatContext*)">
            <summary>
            Called when a video frame is decoded.
            </summary>
            <param name="videoFrame">The unmanaged video frame pointer.</param>
            <param name="context">The unmanaged input format context.</param>
        </member>
        <member name="M:CSVideoPlayer.IMediaConnector.OnAudioFrameDecoded(FFmpeg.AutoGen.AVFrame*,FFmpeg.AutoGen.AVFormatContext*)">
            <summary>
            Called when a video frame is decoded.
            </summary>
            <param name="audioFrame">The unmanaged audio frame pointer.</param>
            <param name="context">The unmanaged input format context.</param>
        </member>
        <member name="M:CSVideoPlayer.IMediaConnector.OnSubtitleDecoded(FFmpeg.AutoGen.AVSubtitle*,FFmpeg.AutoGen.AVFormatContext*)">
            <summary>
            Called when a subtitle is decoded.
            </summary>
            <param name="subtitle">The unmanaged subtitle pointer.</param>
            <param name="context">The unmanaged input format context.</param>
        </member>
        <member name="T:CSVideoPlayer.IMediaRenderer">
            <summary>
            Provides a unified API for media rendering classes.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IMediaRenderer.MediaCore">
            <summary>
            Gets the parent media engine.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IMediaRenderer.OnStarting">
            <summary>
            Waits for the renderer to be ready to render.
            This is called only once before all Render calls are made.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IMediaRenderer.OnPlay">
            <summary>
            Executed when the Play method is called on the parent Media Engine.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IMediaRenderer.OnPause">
            <summary>
            Executed when the Pause method is called on the parent Media Engine.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IMediaRenderer.OnStop">
            <summary>
            Executed when the Stop method is called on the parent Media Engine.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IMediaRenderer.OnClose">
            <summary>
            Executed when the Close method is called on the parent Media Engine.
            Release all resources when this call is received.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IMediaRenderer.OnSeek">
            <summary>
            Executed after a Seek operation is performed on the parent Media Engine.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IMediaRenderer.Render(CSVideoPlayer.MediaBlock,System.TimeSpan)">
            <summary>
            Called when a media block is due rendering.
            This needs to return immediately so the calling thread is not disturbed.
            </summary>
            <param name="mediaBlock">The media block.</param>
            <param name="clockPosition">The clock position.</param>
        </member>
        <member name="M:CSVideoPlayer.IMediaRenderer.Update(System.TimeSpan)">
            <summary>
            Called on every block rendering clock cycle just in case some update operation needs to be performed.
            This needs to return immediately so the calling thread is not disturbed.
            </summary>
            <param name="clockPosition">The clock position.</param>
        </member>
        <member name="T:CSVideoPlayer.AtomicBoolean">
            <summary>
            Fast, atomic boolean combining interlocked to write value and volatile to read values
            Idea taken from Memory model and .NET operations in article:
            http://igoro.com/archive/volatile-keyword-in-c-memory-model-explained/.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AtomicBoolean.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.AtomicBoolean"/> class.
            </summary>
            <param name="initialValue">if set to <c>true</c> [initial value].</param>
        </member>
        <member name="M:CSVideoPlayer.AtomicBoolean.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.AtomicBoolean"/> class.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AtomicBoolean.FromLong(System.Int64)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AtomicBoolean.ToLong(System.Boolean)">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.AtomicDateTime">
            <summary>
            Defines an atomic DateTime.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AtomicDateTime.#ctor(System.DateTime)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.AtomicDateTime"/> class.
            </summary>
            <param name="initialValue">The initial value.</param>
        </member>
        <member name="M:CSVideoPlayer.AtomicDateTime.FromLong(System.Int64)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AtomicDateTime.ToLong(System.DateTime)">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.AtomicDouble">
            <summary>
            Fast, atomic double combining interlocked to write value and volatile to read values
            Idea taken from Memory model and .NET operations in article:
            http://igoro.com/archive/volatile-keyword-in-c-memory-model-explained/.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AtomicDouble.#ctor(System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.AtomicDouble"/> class.
            </summary>
            <param name="initialValue">if set to <c>true</c> [initial value].</param>
        </member>
        <member name="M:CSVideoPlayer.AtomicDouble.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.AtomicDouble"/> class.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AtomicDouble.FromLong(System.Int64)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AtomicDouble.ToLong(System.Double)">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.AtomicInteger">
            <summary>
            Represents an atomically readable or writable integer.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AtomicInteger.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.AtomicInteger"/> class.
            </summary>
            <param name="initialValue">if set to <c>true</c> [initial value].</param>
        </member>
        <member name="M:CSVideoPlayer.AtomicInteger.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.AtomicInteger"/> class.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AtomicInteger.FromLong(System.Int64)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AtomicInteger.ToLong(System.Int32)">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.AtomicLong">
            <summary>
            Fast, atomic long combining interlocked to write value and volatile to read values
            Idea taken from Memory model and .NET operations in article:
            http://igoro.com/archive/volatile-keyword-in-c-memory-model-explained/.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AtomicLong.#ctor(System.Int64)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.AtomicLong"/> class.
            </summary>
            <param name="initialValue">if set to <c>true</c> [initial value].</param>
        </member>
        <member name="M:CSVideoPlayer.AtomicLong.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.AtomicLong"/> class.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AtomicLong.FromLong(System.Int64)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AtomicLong.ToLong(System.Int64)">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.AtomicTimeSpan">
            <summary>
            Represents an atomic TimeSpan type.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AtomicTimeSpan.#ctor(System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.AtomicTimeSpan" /> class.
            </summary>
            <param name="initialValue">The initial value.</param>
        </member>
        <member name="M:CSVideoPlayer.AtomicTimeSpan.FromLong(System.Int64)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AtomicTimeSpan.ToLong(System.TimeSpan)">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.AtomicTypeBase`1">
            <summary>
            Provides a generic implementation of an Atomic (interlocked) type.
            </summary>
            <typeparam name="T">The structure type backed by a 64-bit value.</typeparam>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.#ctor(System.Int64)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.AtomicTypeBase`1"/> class.
            </summary>
            <param name="initialValue">The initial value.</param>
        </member>
        <member name="P:CSVideoPlayer.AtomicTypeBase`1.Value">
            <summary>
            Gets or sets the value.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.AtomicTypeBase`1.BackingValue">
            <summary>
            Gets or sets the backing value.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.op_Equality(CSVideoPlayer.AtomicTypeBase{`0},CSVideoPlayer.AtomicTypeBase{`0})">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.op_Equality(CSVideoPlayer.AtomicTypeBase{`0},`0)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.op_Equality(`0,CSVideoPlayer.AtomicTypeBase{`0})">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.op_Inequality(CSVideoPlayer.AtomicTypeBase{`0},CSVideoPlayer.AtomicTypeBase{`0})">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.op_Inequality(CSVideoPlayer.AtomicTypeBase{`0},`0)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.op_Inequality(`0,CSVideoPlayer.AtomicTypeBase{`0})">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.op_GreaterThan(CSVideoPlayer.AtomicTypeBase{`0},`0)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.op_GreaterThan(CSVideoPlayer.AtomicTypeBase{`0},CSVideoPlayer.AtomicTypeBase{`0})">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.op_GreaterThan(`0,CSVideoPlayer.AtomicTypeBase{`0})">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.op_LessThan(CSVideoPlayer.AtomicTypeBase{`0},`0)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.op_LessThan(CSVideoPlayer.AtomicTypeBase{`0},CSVideoPlayer.AtomicTypeBase{`0})">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.op_LessThan(`0,CSVideoPlayer.AtomicTypeBase{`0})">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.op_GreaterThanOrEqual(CSVideoPlayer.AtomicTypeBase{`0},`0)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.op_GreaterThanOrEqual(CSVideoPlayer.AtomicTypeBase{`0},CSVideoPlayer.AtomicTypeBase{`0})">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.op_GreaterThanOrEqual(`0,CSVideoPlayer.AtomicTypeBase{`0})">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.op_LessThanOrEqual(CSVideoPlayer.AtomicTypeBase{`0},`0)">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.op_LessThanOrEqual(CSVideoPlayer.AtomicTypeBase{`0},CSVideoPlayer.AtomicTypeBase{`0})">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.op_LessThanOrEqual(`0,CSVideoPlayer.AtomicTypeBase{`0})">
            <summary>
            Implements the operator.
            </summary>
            <param name="left">The left-hand side operand.</param>
            <param name="right">The right-hand side operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.op_Increment(CSVideoPlayer.AtomicTypeBase{`0})">
            <summary>
            Implements the operator.
            </summary>
            <param name="instance">The operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.op_Decrement(CSVideoPlayer.AtomicTypeBase{`0})">
            <summary>
            Implements the operator.
            </summary>
            <param name="instance">The operand.</param>
            <returns>The result of the operation.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.Increment">
            <summary>
            Increments the value of the the backing field.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.Decrement">
            <summary>
            Decrements the value of the the backing field.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.CompareTo(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.CompareTo(`0)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.CompareTo(CSVideoPlayer.AtomicTypeBase{`0})">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.Equals(CSVideoPlayer.AtomicTypeBase{`0})">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.Equals(`0)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.FromLong(System.Int64)">
            <summary>
            Converts from a long value to the target type.
            </summary>
            <param name="backingValue">The backing value.</param>
            <returns>The value converted form a long value.</returns>
        </member>
        <member name="M:CSVideoPlayer.AtomicTypeBase`1.ToLong(`0)">
            <summary>
            Converts from the target type to a long value.
            </summary>
            <param name="value">The value.</param>
            <returns>The value converted to a long value.</returns>
        </member>
        <member name="T:CSVideoPlayer.CircularBuffer">
            <summary>
            A fixed-size buffer that acts as an infinite length one.
            This buffer is backed by unmanaged, very fast memory so ensure you call
            the dispose method when you are done using it.
            </summary>
            <seealso cref="T:System.IDisposable" />
        </member>
        <member name="F:CSVideoPlayer.CircularBuffer.SyncLock">
            <summary>
            The locking object to perform synchronization.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.CircularBuffer.Buffer">
            <summary>
            The unmanaged buffer.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.CircularBuffer.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.CircularBuffer"/> class.
            </summary>
            <param name="bufferLength">Length of the buffer.</param>
        </member>
        <member name="P:CSVideoPlayer.CircularBuffer.IsDisposed">
            <summary>
            Gets a value indicating whether this instance is disposed.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CircularBuffer.Length">
            <summary>
            Gets the capacity of this buffer.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CircularBuffer.ReadIndex">
            <summary>
            Gets the current, 0-based read index.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CircularBuffer.RewindableCount">
            <summary>
            Gets the maximum rewindable amount of bytes.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CircularBuffer.WriteIndex">
            <summary>
            Gets the current, 0-based write index.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CircularBuffer.WriteTag">
            <summary>
            Gets an the object associated with the last write.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CircularBuffer.ReadableCount">
            <summary>
            Gets the available bytes to read.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CircularBuffer.WritableCount">
            <summary>
            Gets the number of bytes that can be written.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.CircularBuffer.CapacityPercent">
            <summary>
            Gets percentage of used bytes (readable/available, from 0.0 to 1.0).
            </summary>
        </member>
        <member name="M:CSVideoPlayer.CircularBuffer.Skip(System.Int32)">
            <summary>
            Skips the specified amount requested bytes to be read.
            </summary>
            <param name="requestedBytes">The requested bytes.</param>
            <exception cref="T:System.InvalidOperationException">When requested bytes is greater than readable count.</exception>
        </member>
        <member name="M:CSVideoPlayer.CircularBuffer.Rewind(System.Int32)">
            <summary>
            Rewinds the read position by specified requested amount of bytes.
            </summary>
            <param name="requestedBytes">The requested bytes.</param>
            <exception cref="T:System.InvalidOperationException">When requested is greater than rewindable.</exception>
        </member>
        <member name="M:CSVideoPlayer.CircularBuffer.Read(System.Int32,System.Byte[],System.Int32)">
            <summary>
            Reads the specified number of bytes into the target array.
            </summary>
            <param name="requestedBytes">The requested bytes.</param>
            <param name="target">The target.</param>
            <param name="targetOffset">The target offset.</param>
            <exception cref="T:System.InvalidOperationException">When requested bytes is greater than readable count.</exception>
        </member>
        <member name="M:CSVideoPlayer.CircularBuffer.Write(System.IntPtr,System.Int32,System.TimeSpan,System.Boolean)">
            <summary>
            Writes data to the backing buffer using the specified pointer and length.
            and associating a write tag for this operation.
            </summary>
            <param name="source">The source.</param>
            <param name="length">The length.</param>
            <param name="writeTag">The write tag.</param>
            <param name="overwrite">if set to <c>true</c>, overwrites the data even if it has not been read.</param>
            <exception cref="T:System.InvalidOperationException">When read needs to be called more often.</exception>
        </member>
        <member name="M:CSVideoPlayer.CircularBuffer.Clear">
            <summary>
            Resets all states as if this buffer had just been created.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.CircularBuffer.Dispose">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.IntervalTimer">
            <summary>
            Defines a timer for discrete intervals.
            It provides access to high resolution time quanta when available.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IntervalTimer.#ctor(System.Boolean,System.Action)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.IntervalTimer"/> class.
            </summary>
            <param name="useMultimediaTimer">if set to <c>true</c> [use multimedia timer].</param>
            <param name="callback">The callback.</param>
        </member>
        <member name="T:CSVideoPlayer.IntervalTimer.TimerType">
            <summary>
            Defines the different timer types.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.IntervalTimer.TimerType.None">
            <summary>
            No active timer.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.IntervalTimer.TimerType.Threading">
            <summary>
            The standard threading timer.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.IntervalTimer.TimerType.Multimedia">
            <summary>
            The multimedia timer.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IntervalTimer.IsMultimedia">
            <summary>
            Gets or sets a value indicating whether this timer is multimedia (high precision) based.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IntervalTimer.Resolution">
            <summary>
            Gets the timer resolution interval in milliseconds.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IntervalTimer.IsRunningCycle">
            <summary>
            Gets or sets a value indicating whether this instance is running cycle to prevent reentrancy.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IntervalTimer.IsDisposing">
            <summary>
            Gets or sets a value indicating whether this instance is disposing.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IntervalTimer.ActiveTimer">
            <summary>
            Gets or sets the currently active timer.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IntervalTimer.Dispose">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IntervalTimer.ThreadingTimerCallback(System.Object)">
            <summary>
            Implements the callback for the threading timer.
            </summary>
            <param name="state">The state.</param>
        </member>
        <member name="M:CSVideoPlayer.IntervalTimer.MultimediaTimerCallback">
            <summary>
            Implements the callback for the multimedia timer.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.IntervalWorkerBase">
            <summary>
            A base class for implementing interval workers.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IntervalWorkerBase.#ctor(System.String,System.TimeSpan,CSVideoPlayer.IntervalWorkerMode)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.IntervalWorkerBase"/> class.
            </summary>
            <param name="name">The name.</param>
            <param name="period">The period.</param>
            <param name="mode">The mode.</param>
        </member>
        <member name="P:CSVideoPlayer.IntervalWorkerBase.Name">
            <summary>
            Gets the name of the worker.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IntervalWorkerBase.Mode">
            <summary>
            Gets or sets the worker mode.
            This is a per-cycle setting.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IntervalWorkerBase.Period">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.IntervalWorkerBase.WorkerState">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.IntervalWorkerBase.IsDisposed">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.IntervalWorkerBase.IsDisposing">
            <inheritdoc />
        </member>
        <member name="P:CSVideoPlayer.IntervalWorkerBase.WantedWorkerState">
            <summary>
            Gets or sets the desired state of the worker.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IntervalWorkerBase.RemainingCycleTime">
            <summary>
            Gets the remaining cycle time.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IntervalWorkerBase.LastCycleElapsed">
            <summary>
            Gets the elapsed time of the last cycle.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IntervalWorkerBase.NextCorrectionDelay">
            <summary>
            Gets or sets the delay to add (or subtract if negative) to the current cycle.
            This is a per-cycle setting.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IntervalWorkerBase.StartAsync">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.IntervalWorkerBase.PauseAsync">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.IntervalWorkerBase.ResumeAsync">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.IntervalWorkerBase.StopAsync">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.IntervalWorkerBase.Dispose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.IntervalWorkerBase.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and optionally managed resources.
            </summary>
            <param name="alsoManaged">Determines if managed resources hsould also be released.</param>
        </member>
        <member name="M:CSVideoPlayer.IntervalWorkerBase.OnCycleException(System.Exception)">
            <summary>
            Handles the cycle logic exceptions.
            </summary>
            <param name="ex">The exception that was thrown.</param>
        </member>
        <member name="M:CSVideoPlayer.IntervalWorkerBase.ExecuteCycleLogic(System.Threading.CancellationToken)">
            <summary>
            Represents the user defined logic to be executed on a single worker cycle.
            Check the cancellation token continuously if you need responsive interrupts.
            </summary>
            <param name="ct">The cancellation token.</param>
        </member>
        <member name="M:CSVideoPlayer.IntervalWorkerBase.OnDisposing">
            <summary>
            This method is called automatically when <see cref="M:CSVideoPlayer.IntervalWorkerBase.Dispose"/> is called.
            Makes sure you release all resources within this call.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IntervalWorkerBase.Interrupt">
            <summary>
            Interrupts a cycle or a wait operation.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IntervalWorkerBase.RunWaitForWantedState">
            <summary>
            Returns a hot task that waits for the state of the worker to change.
            </summary>
            <returns>The awaitable state change task.</returns>
        </member>
        <member name="M:CSVideoPlayer.IntervalWorkerBase.OnQuantumTicked">
            <summary>
            Called when every quantum of time. Will be called frequently with
            a multimedia timer and infrequently with a standard threadin timer.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.IntervalWorkerMode">
            <summary>
            Enumerates the different worker modes.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.IntervalWorkerMode.SystemDefault">
            <summary>
            Uses a standard threading timer to determine the time
            when code needs to be executed.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.IntervalWorkerMode.HighPrecision">
            <summary>
            Tries to use a multimedia timer together with looping to acocmplish
            a precise execution interval.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.ISyncLocker">
            <summary>
            Defines a generic interface for synchronized locking mechanisms.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.ISyncLocker.IsDisposed">
            <summary>
            Gets a value indicating whether this instance is disposed.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.ISyncLocker.AcquireWriterLock">
            <summary>
            Acquires a writer lock.
            The lock is released when the returned locking object is disposed.
            </summary>
            <returns>A disposable locking object.</returns>
        </member>
        <member name="M:CSVideoPlayer.ISyncLocker.TryAcquireWriterLock(System.Int32,System.IDisposable@)">
            <summary>
            Tries to acquire a writer lock with a timeout.
            </summary>
            <param name="timeoutMilliseconds">The timeout milliseconds.</param>
            <param name="locker">The locker.</param>
            <returns>True if the lock was acquired.</returns>
        </member>
        <member name="M:CSVideoPlayer.ISyncLocker.TryAcquireWriterLock(System.IDisposable@)">
            <summary>
            Tries to acquire a writer lock with a default timeout.
            </summary>
            <param name="locker">The locker.</param>
            /// <returns>True if the lock was acquired.</returns>
        </member>
        <member name="M:CSVideoPlayer.ISyncLocker.AcquireReaderLock">
            <summary>
            Acquires a reader lock.
            The lock is released when the returned locking object is disposed.
            </summary>
            <returns>A disposable locking object.</returns>
        </member>
        <member name="M:CSVideoPlayer.ISyncLocker.TryAcquireReaderLock(System.Int32,System.IDisposable@)">
            <summary>
            Tries to acquire a reader lock with a timeout.
            </summary>
            <param name="timeoutMilliseconds">The timeout milliseconds.</param>
            <param name="locker">The locker.</param>
            <returns>True if the lock was acquired.</returns>
        </member>
        <member name="M:CSVideoPlayer.ISyncLocker.TryAcquireReaderLock(System.IDisposable@)">
            <summary>
            Tries to acquire a reader lock with a default timeout.
            </summary>
            <param name="locker">The locker.</param>
            <returns>True if the lock was acquired.</returns>
        </member>
        <member name="T:CSVideoPlayer.IWorker">
            <summary>
            Defines a standard API to control background application workers.
            </summary>
            <seealso cref="T:System.IDisposable" />
        </member>
        <member name="P:CSVideoPlayer.IWorker.WorkerState">
            <summary>
            Gets the current state of the worker.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IWorker.IsDisposed">
            <summary>
            Gets a value indicating whether this instance is disposed.
            </summary>
            <value>
              <c>true</c> if this instance is disposed; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:CSVideoPlayer.IWorker.IsDisposing">
            <summary>
            Gets a value indicating whether this instance is currently being disposed.
            </summary>
            <value>
              <c>true</c> if this instance is disposing; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:CSVideoPlayer.IWorker.Period">
            <summary>
            Gets or sets the time interval used to execute cycles.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.IWorker.Name">
            <summary>
            Gets the name identifier of this worker.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.IWorker.StartAsync">
            <summary>
            Starts execution of worker cycles.
            </summary>
            <returns>The awaitable task.</returns>
        </member>
        <member name="M:CSVideoPlayer.IWorker.PauseAsync">
            <summary>
            Pauses execution of worker cycles.
            </summary>
            <returns>The awaitable task.</returns>
        </member>
        <member name="M:CSVideoPlayer.IWorker.ResumeAsync">
            <summary>
            Resumes execution of worker cycles.
            </summary>
            <returns>The awaitable task.</returns>
        </member>
        <member name="M:CSVideoPlayer.IWorker.StopAsync">
            <summary>
            Permanently stops execution of worker cycles.
            An interrupt is always sent to the worker. If you wish to stop
            the worker without interrupting then call the <see cref="M:CSVideoPlayer.IWorker.PauseAsync"/>
            method, await it, and finally call the <see cref="M:CSVideoPlayer.IWorker.StopAsync"/> method.
            </summary>
            <returns>The awaitable task.</returns>
        </member>
        <member name="T:CSVideoPlayer.MediaTypeDictionary`1">
            <summary>
            Represents a very simple dictionary for MediaType keys.
            </summary>
            <typeparam name="TValue">The type of the value.</typeparam>
        </member>
        <member name="M:CSVideoPlayer.MediaTypeDictionary`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.MediaTypeDictionary`1"/> class.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.MediaTypeDictionary`1.Item(CSVideoPlayer.MediaType)">
            <summary>
            Gets or sets the item with the specified key.
            return the default value of the value type when the key does not exist.
            </summary>
            <param name="key">The key.</param>
            <returns>The item.</returns>
        </member>
        <member name="T:CSVideoPlayer.NativeTiming">
            <summary>
            Provides access to advanced timing configuration.
            Under Windows, this class uses the Windows Multimedia API
            to configure timing.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.NativeTiming.#cctor">
            <summary>
            Initializes static members of the <see cref="T:CSVideoPlayer.NativeTiming"/> class.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.NativeTiming.NativeTimerCallback">
            <summary>
            The interop delegate for multimedia timers.
            </summary>
            <param name="timerId">The timer identifier.</param>
            <param name="message">The message.</param>
            <param name="userContext">The user context.</param>
            <param name="reserved1">The reserved1.</param>
            <param name="reserved2">The reserved2.</param>
        </member>
        <member name="P:CSVideoPlayer.NativeTiming.IsAvailable">
            <summary>
            Gets a value indicating whether the system supports changing timing configuration.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.NativeTiming.MinResolutionPeriod">
            <summary>
            Gets the minimum period resolution in milliseconds.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.NativeTiming.MaxResolutionPeriod">
            <summary>
            Gets the maximum period resolution in milliseconds.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.NativeTiming.Resolution">
            <summary>
            Gets the currently configured resolution in milliseconds.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.NativeTiming.ChangeResolution(System.Int32)">
            <summary>
            Changes configured the resolution in milliseconds.
            Pass 0 for best resolution possible.
            </summary>
            <param name="newPeriod">The new period.</param>
            <returns>If the operation was successful.</returns>
        </member>
        <member name="M:CSVideoPlayer.NativeTiming.ResetResolution">
            <summary>
            Resets the period to its default.
            </summary>
            <returns>True if the operation was successful.</returns>
        </member>
        <member name="M:CSVideoPlayer.NativeTiming.ScheduleAction(System.Int32,System.Int32,System.Action)">
            <summary>
            Schedules an action to occur in the future.
            </summary>
            <param name="delay">The delay in milliseconds before the action is called.</param>
            <param name="resolution">The resolution in milliseconds to measure a sub-interval in the delay.</param>
            <param name="callback">The action to be called. Occurs in a thread pool thread.</param>
            <returns>A disposable handle to the scheduled event.</returns>
        </member>
        <member name="M:CSVideoPlayer.NativeTiming.CreateTimer(System.Int32,System.Int32,System.Action)">
            <summary>
            Creates a multimedia timer.
            </summary>
            <param name="period">The interval in milliceonds.</param>
            <param name="resolution">The resolution in milliseconds to measure a sub-interval in the period.</param>
            <param name="callback">The action to be called. Occurs in a thread pool thread.</param>
            <returns>>A disposable handle to the timer.</returns>
        </member>
        <member name="M:CSVideoPlayer.NativeTiming.ClampResolution(System.Int32)">
            <summary>
            Clamps the resolution.
            </summary>
            <param name="resolution">The resolution.</param>
            <returns>The clamped value between minimum and maximum period.</returns>
        </member>
        <member name="T:CSVideoPlayer.NativeTiming.PeriodCapabilities">
            <summary>
            A struct to exctract timing capabilities from the interop API call.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.NativeTiming.NativeMethods">
            <summary>
            Provides the native methods for timing configuration.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.NativeTiming.WindowsTimerHandle">
            <summary>
            Represents a Windows-specific multimedia timer handle.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.NativeTiming.WindowsTimerHandle.#ctor(System.Int32,System.Int32,System.Boolean,System.Action)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.NativeTiming.WindowsTimerHandle"/> class.
            </summary>
            <param name="delay">The delay.</param>
            <param name="resolution">The resolution.</param>
            <param name="isPeriodic">if set to <c>true</c> [is periodic].</param>
            <param name="callback">The callback.</param>
        </member>
        <member name="M:CSVideoPlayer.NativeTiming.WindowsTimerHandle.Finalize">
            <summary>
            Finalizes an instance of the <see cref="T:CSVideoPlayer.NativeTiming.WindowsTimerHandle"/> class.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.NativeTiming.WindowsTimerHandle.TimerEventType">
            <summary>
            Defines the type of timer handle.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.NativeTiming.WindowsTimerHandle.TimerEventType.OneShot">
            <summary>
            The one shot type.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.NativeTiming.WindowsTimerHandle.TimerEventType.Periodic">
            <summary>
            The periodic type.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.NativeTiming.WindowsTimerHandle.TimerId">
            <summary>
            Gets the timer identifier.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.NativeTiming.WindowsTimerHandle.IsDisposing">
            <summary>
            Gets or sets a value indicating whether this instance is disposing.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.NativeTiming.WindowsTimerHandle.IsDisposed">
            <summary>
            Gets or sets a value indicating whether this instance is disposed.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.NativeTiming.WindowsTimerHandle.Dispose">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.NativeTiming.WindowsTimerHandle.InternalCallbackImpl(System.UInt32,System.UInt32,System.UIntPtr,System.UIntPtr,System.UIntPtr)">
            <summary>
            Implements the timer callback.
            </summary>
            <param name="timerId">The timer identifier.</param>
            <param name="message">The message.</param>
            <param name="userContext">The user context.</param>
            <param name="reserved1">The reserved1.</param>
            <param name="reserved2">The reserved2.</param>
        </member>
        <member name="M:CSVideoPlayer.NativeTiming.WindowsTimerHandle.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="alsoManaged"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="T:CSVideoPlayer.RealTimeClock">
            <summary>
            A time measurement artifact.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.RealTimeClock.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.RealTimeClock"/> class.
            The clock starts paused and at the 0 position.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RealTimeClock.Position">
            <summary>
            Gets or sets the clock position.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RealTimeClock.IsRunning">
            <summary>
            Gets a value indicating whether the clock is running.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.RealTimeClock.SpeedRatio">
            <summary>
            Gets or sets the speed ratio at which the clock runs.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.RealTimeClock.Update(System.TimeSpan)">
            <summary>
            Sets a new position value atomically.
            </summary>
            <param name="value">The new value that the position property will hold.</param>
        </member>
        <member name="M:CSVideoPlayer.RealTimeClock.Play">
            <summary>
            Starts or resumes the clock.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.RealTimeClock.Pause">
            <summary>
            Pauses the clock.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.RealTimeClock.Reset">
            <summary>
            Sets the clock position to 0 and stops it.
            The speed ratio is not modified.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.RealTimeClock.Restart">
            <summary>
            Sets the clock position to 0 and restarts it.
            The speed ratio is not modified.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.RealTimeClock.Restart(System.TimeSpan)">
            <summary>
            Sets the clock position to the specificed offsetand restarts it.
            The speed ratio is not modified.
            </summary>
            <param name="offset">The offset to start at.</param>
        </member>
        <member name="T:CSVideoPlayer.SyncLockerFactory">
            <summary>
            Provides factory methods to create synchronized reader-writer locks
            that support a generalized locking and releasing api and syntax.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.SyncLockerFactory.LockHolderType">
            <summary>
            Enumerates the locking operations.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.SyncLockerFactory.ISyncReleasable">
            <summary>
            Defines methods for releasing locks.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.ISyncReleasable.ReleaseWriterLock">
            <summary>
            Releases the writer lock.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.ISyncReleasable.ReleaseReaderLock">
            <summary>
            Releases the reader lock.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.Create">
            <summary>
            Creates a reader-writer lock backed by a standard ReaderWriterLock.
            </summary>
            <returns>The synchronized locker.</returns>
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.CreateSlim">
            <summary>
            Creates a reader-writer lock backed by a ReaderWriterLockSlim.
            </summary>
            <returns>The synchronized locker.</returns>
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.Create(System.Boolean)">
            <summary>
            Creates a reader-writer lock.
            </summary>
            <param name="useSlim">if set to <c>true</c> it uses the Slim version of a reader-writer lock.</param>
            <returns>The Sync Locker.</returns>
        </member>
        <member name="T:CSVideoPlayer.SyncLockerFactory.SyncLockReleaser">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLockReleaser.#ctor(CSVideoPlayer.SyncLockerFactory.ISyncReleasable,CSVideoPlayer.SyncLockerFactory.LockHolderType)">
            <summary>
            Initializes a new instance of the <see cref="T:CSVideoPlayer.SyncLockerFactory.SyncLockReleaser"/> class.
            </summary>
            <param name="parent">The parent.</param>
            <param name="operation">The operation.</param>
        </member>
        <member name="P:CSVideoPlayer.SyncLockerFactory.SyncLockReleaser.Empty">
            <summary>
            An action-less, dummy disposable object.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLockReleaser.Dispose">
            <inheritdoc />
        </member>
        <member name="T:CSVideoPlayer.SyncLockerFactory.SyncLocker">
            <summary>
            The Sync Locker backed by a ReaderWriterLock.
            </summary>
            <seealso cref="T:CSVideoPlayer.ISyncLocker" />
            <seealso cref="T:CSVideoPlayer.SyncLockerFactory.ISyncReleasable" />
        </member>
        <member name="P:CSVideoPlayer.SyncLockerFactory.SyncLocker.IsDisposed">
            <summary>
            Gets a value indicating whether this instance is disposed.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLocker.AcquireReaderLock">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLocker.TryAcquireReaderLock(System.Int32,System.IDisposable@)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLocker.AcquireWriterLock">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLocker.TryAcquireWriterLock(System.Int32,System.IDisposable@)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLocker.TryAcquireWriterLock(System.IDisposable@)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLocker.TryAcquireReaderLock(System.IDisposable@)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLocker.ReleaseWriterLock">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLocker.ReleaseReaderLock">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLocker.Dispose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLocker.AcquireWriterLock(System.Int32,System.IDisposable@)">
            <summary>
            Acquires the writer lock.
            </summary>
            <param name="timeoutMilliseconds">The timeout milliseconds.</param>
            <param name="releaser">The releaser.</param>
            <returns>Success.</returns>
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLocker.AcquireReaderLock(System.Int32,System.IDisposable@)">
            <summary>
            Acquires the reader lock.
            </summary>
            <param name="timeoutMilliseconds">The timeout milliseconds.</param>
            <param name="releaser">The releaser.</param>
            <returns>Success.</returns>
        </member>
        <member name="T:CSVideoPlayer.SyncLockerFactory.SyncLockerSlim">
            <summary>
            The Sync Locker backed by ReaderWriterLockSlim.
            </summary>
            <seealso cref="T:CSVideoPlayer.ISyncLocker" />
            <seealso cref="T:CSVideoPlayer.SyncLockerFactory.ISyncReleasable" />
        </member>
        <member name="P:CSVideoPlayer.SyncLockerFactory.SyncLockerSlim.IsDisposed">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLockerSlim.AcquireReaderLock">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLockerSlim.TryAcquireReaderLock(System.Int32,System.IDisposable@)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLockerSlim.AcquireWriterLock">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLockerSlim.TryAcquireWriterLock(System.Int32,System.IDisposable@)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLockerSlim.TryAcquireWriterLock(System.IDisposable@)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLockerSlim.TryAcquireReaderLock(System.IDisposable@)">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLockerSlim.ReleaseWriterLock">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLockerSlim.ReleaseReaderLock">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLockerSlim.Dispose">
            <inheritdoc />
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLockerSlim.AcquireWriterLock(System.Int32,System.IDisposable@)">
            <summary>
            Acquires the writer lock.
            </summary>
            <param name="timeoutMilliseconds">The timeout milliseconds.</param>
            <param name="releaser">The releaser.</param>
            <returns>Success.</returns>
        </member>
        <member name="M:CSVideoPlayer.SyncLockerFactory.SyncLockerSlim.AcquireReaderLock(System.Int32,System.IDisposable@)">
            <summary>
            Acquires the reader lock.
            </summary>
            <param name="timeoutMilliseconds">The timeout milliseconds.</param>
            <param name="releaser">The releaser.</param>
            <returns>Success.</returns>
        </member>
        <member name="T:CSVideoPlayer.WorkerState">
            <summary>
            Enumerates the different states in which a worker can be.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WorkerState.Created">
            <summary>
            The worker has been created and it is ready to start.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WorkerState.Running">
            <summary>
            The worker is running it cycle logic.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WorkerState.Waiting">
            <summary>
            The worker is running its delay logic.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WorkerState.Paused">
            <summary>
            The worker is in the paused or suspended state.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.WorkerState.Stopped">
            <summary>
            The worker is stopped and ready for disposal.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.Subtitles">
            <summary>
            Defines attached properties for subtitle rendering.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.Subtitles.TextProperty">
            <summary>
            The foreground text property.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.Subtitles.ForegroundProperty">
            <summary>
            The foreground text property.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.Subtitles.EffectProperty">
            <summary>
            The text foreground effect dependency property.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.Subtitles.OutlineWidthProperty">
            <summary>
            The text outline width dependency property.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.Subtitles.OutlineBrushProperty">
            <summary>
            The text outline brush dependency property.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.Subtitles.FontSizeProperty">
            <summary>
            The font size property.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.Subtitles.FontWeightProperty">
            <summary>
            The font weight property.
            </summary>
        </member>
        <member name="F:CSVideoPlayer.Subtitles.FontFamilyProperty">
            <summary>
            The font family property.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.Subtitles.#ctor">
            <summary>
            Prevents a default instance of the <see cref="T:CSVideoPlayer.Subtitles"/> class from being created.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.Subtitles.GetText(CSVideoPlayer.cMediaPlayer)">
            <summary>
            Gets the text.
            </summary>
            <param name="element">The object.</param>
            <returns>The value.</returns>
        </member>
        <member name="M:CSVideoPlayer.Subtitles.GetFontSize(CSVideoPlayer.cMediaPlayer)">
            <summary>
            Gets the size of the font.
            </summary>
            <param name="element">The object.</param>
            <returns>The value.</returns>
        </member>
        <member name="M:CSVideoPlayer.Subtitles.GetFontWeight(CSVideoPlayer.cMediaPlayer)">
            <summary>
            Gets the font weight.
            </summary>
            <param name="element">The object.</param>
            <returns>The value.</returns>
        </member>
        <member name="M:CSVideoPlayer.Subtitles.GetFontFamily(CSVideoPlayer.cMediaPlayer)">
            <summary>
            Gets the font family.
            </summary>
            <param name="element">The object.</param>
            <returns>The value.</returns>
        </member>
        <member name="M:CSVideoPlayer.Subtitles.GetForeground(CSVideoPlayer.cMediaPlayer)">
            <summary>
            Gets the text foreground.
            </summary>
            <param name="element">The object.</param>
            <returns>The value.</returns>
        </member>
        <member name="M:CSVideoPlayer.Subtitles.GetEffect(CSVideoPlayer.cMediaPlayer)">
            <summary>
            Gets the effect.
            </summary>
            <param name="element">The object.</param>
            <returns>The value.</returns>
        </member>
        <member name="M:CSVideoPlayer.Subtitles.GetOutlineWidth(CSVideoPlayer.cMediaPlayer)">
            <summary>
            Gets the width of the outline.
            </summary>
            <param name="element">The object.</param>
            <returns>The value.</returns>
        </member>
        <member name="M:CSVideoPlayer.Subtitles.GetOutlineBrush(CSVideoPlayer.cMediaPlayer)">
            <summary>
            Gets the outline brush.
            </summary>
            <param name="element">The object.</param>
            <returns>The value.</returns>
        </member>
        <member name="M:CSVideoPlayer.Subtitles.SetText(CSVideoPlayer.cMediaPlayer,System.String)">
            <summary>
            Sets the text.
            </summary>
            <param name="element">The object.</param>
            <param name="value">The value.</param>
        </member>
        <member name="M:CSVideoPlayer.Subtitles.SetFontSize(CSVideoPlayer.cMediaPlayer,System.Double)">
            <summary>
            Sets the size of the font.
            </summary>
            <param name="element">The object.</param>
            <param name="value">The value.</param>
        </member>
        <member name="M:CSVideoPlayer.Subtitles.SetFontWeight(CSVideoPlayer.cMediaPlayer,System.Windows.FontWeight)">
            <summary>
            Sets the font weight.
            </summary>
            <param name="element">The object.</param>
            <param name="value">The value.</param>
        </member>
        <member name="M:CSVideoPlayer.Subtitles.SetFontFamily(CSVideoPlayer.cMediaPlayer,System.Windows.Media.FontFamily)">
            <summary>
            Sets the font family.
            </summary>
            <param name="element">The object.</param>
            <param name="value">The value.</param>
        </member>
        <member name="M:CSVideoPlayer.Subtitles.SetForeground(CSVideoPlayer.cMediaPlayer,System.Windows.Media.Brush)">
            <summary>
            Sets the text foreground.
            </summary>
            <param name="element">The object.</param>
            <param name="value">The value.</param>
        </member>
        <member name="M:CSVideoPlayer.Subtitles.SetEffect(CSVideoPlayer.cMediaPlayer,System.Windows.Media.Effects.Effect)">
            <summary>
            Sets the effect.
            </summary>
            <param name="element">The object.</param>
            <param name="value">The value.</param>
        </member>
        <member name="M:CSVideoPlayer.Subtitles.SetOutlineWidth(CSVideoPlayer.cMediaPlayer,System.Windows.Thickness)">
            <summary>
            Sets the width of the outline.
            </summary>
            <param name="element">The object.</param>
            <param name="value">The value.</param>
        </member>
        <member name="M:CSVideoPlayer.Subtitles.SetOutlineBrush(CSVideoPlayer.cMediaPlayer,System.Windows.Media.Brush)">
            <summary>
            Sets the outline brush.
            </summary>
            <param name="element">The object.</param>
            <param name="value">The value.</param>
        </member>
        <member name="T:CSVideoPlayer.Utilities">
            <summary>
            Provides various helpers and extension methods.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.Utilities.GetAudioSampleAmplitude(System.Byte[],System.Int32)">
            <summary>
            Gets the audio sample amplitude (absolute value of the sample).
            </summary>
            <param name="buffer">The buffer.</param>
            <param name="offset">The offset.</param>
            <returns>The sample amplitude.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.GetAudioSampleLevel(System.Byte[],System.Int32)">
            <summary>
            Gets the audio sample level for 0 to 1.
            </summary>
            <param name="buffer">The buffer.</param>
            <param name="offset">The offset.</param>
            <returns>The amplitude level.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.PutAudioSample(System.Byte[],System.Int32,System.Int16)">
            <summary>
            Puts a short value in the target buffer as bytes.
            </summary>
            <param name="buffer">The target.</param>
            <param name="offset">The offset.</param>
            <param name="value">The value.</param>
        </member>
        <member name="M:CSVideoPlayer.Utilities.GetAudioSample(System.Byte[],System.Int32)">
            <summary>
            Gets the a signed 16 bit integer at the given offset.
            </summary>
            <param name="buffer">The buffer.</param>
            <param name="offset">The offset.</param>
            <returns>The signed integer.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.ToMultipleOf(System.Double,System.Double)">
            <summary>
            Converts the given value to a value that is of the given multiple.
            </summary>
            <param name="value">The value.</param>
            <param name="multiple">The multiple.</param>
            <returns>The value snapped to the given multiple.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.PtrToStringUTF8(System.Byte*)">
            <summary>
            Converts a byte pointer to a UTF8 encoded string.
            </summary>
            <param name="stringAddress">The pointer to the starting character.</param>
            <returns>The string.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.ReplaceOrdinal(System.String,System.String,System.String)">
            <summary>
            A cross-platform implementation of string.Replace.
            </summary>
            <param name="source">The string to search.</param>
            <param name="find">The string to find.</param>
            <param name="replace">The string to replace.</param>
            <returns>The string with the replacement.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.ContainsOrdinal(System.String,System.String)">
            <summary>
            Determines if the string contains the search term in ordinal (binary) comparison.
            </summary>
            <param name="source">The string to search.</param>
            <param name="find">The search term.</param>
            <returns>Thether the search term is contained in the string.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.LoadBlocks(System.String,CSVideoPlayer.MediaType,CSVideoPlayer.ILoggingHandler)">
            <summary>
            Reads all the blocks of the specified media type from the source url.
            </summary>
            <param name="mediaSource">The subtitles URL.</param>
            <param name="sourceType">Type of the source.</param>
            <param name="parent">The parent.</param>
            <returns>A buffer containing all the blocks.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.Main(CSVideoPlayer.MediaTypeDictionary{CSVideoPlayer.MediaBlockBuffer},CSVideoPlayer.MediaContainer)">
            <summary>
            Gets the <see cref="T:CSVideoPlayer.MediaBlockBuffer"/> for the main media type of the specified media container.
            </summary>
            <param name="blocks">The blocks.</param>
            <param name="container">The container.</param>
            <returns>The block buffer of the main media type.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.Except(System.Collections.Generic.IEnumerable{CSVideoPlayer.MediaType},CSVideoPlayer.MediaType)">
            <summary>
            Excludes the type of the media.
            </summary>
            <param name="all">All.</param>
            <param name="main">The main.</param>
            <returns>An array without the media type.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.ComputePictureNumber(System.TimeSpan,System.TimeSpan,FFmpeg.AutoGen.AVRational)">
            <summary>
            Computes the picture number.
            </summary>
            <param name="streamStartTime">The Stream Start time.</param>
            <param name="pictureStartTime">The picture Start Time.</param>
            <param name="frameRate">The stream's average framerate (not time base).</param>
            <returns>
            The serial picture number.
            </returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.ComputeSmtpeTimeCode(System.Int64,FFmpeg.AutoGen.AVRational)">
            <summary>
            Computes the smtpe time code.
            </summary>
            <param name="pictureNumber">The picture number.</param>
            <param name="frameRate">The frame rate.</param>
            <returns>The FFmpeg computed SMTPE Time code.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.Clamp``1(``0,``0,``0)">
            <summary>
            Clamps the specified value between the minimum and the maximum.
            </summary>
            <typeparam name="T">The type of value to clamp.</typeparam>
            <param name="value">The value.</param>
            <param name="min">The minimum.</param>
            <param name="max">The maximum.</param>
            <returns>A value that indicates the relative order of the objects being compared.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.StartIndexOf``2(System.Collections.Generic.IList{``0},``1)">
            <summary>
            Finds the index of the item that is on or greater than the specified search value.
            </summary>
            <typeparam name="TItem">The generic collection type.</typeparam>
            <typeparam name="TComparable">The value type to compare to.</typeparam>
            <param name="items">The items.</param>
            <param name="value">The value.</param>
            <returns>The find index. Returns -1 if not found.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.HexToBytes(System.String)">
            <summary>
            Converts a hexadecimal string to a byte array.
            </summary>
            <param name="hexString">The hexadecimal string to convert.</param>
            <returns>The byte array with the data of the hexadecimal string.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.Format(System.Int64,System.Double)">
            <summary>
            Returns a formatted string, dividing by the specified
            factor. Useful for debugging longs with byte positions or sizes.
            </summary>
            <param name="ts">The timestamp.</param>
            <param name="divideBy">The divide by.</param>
            <returns>The formatted string.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.Format(System.Int64)">
            <summary>
            Returns a formatted string.
            Useful for debugging longs with byte positions or sizes.
            </summary>
            <param name="ts">The timestamp.</param>
            <returns>The formatted string.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.ToTimeSpan(System.Double,FFmpeg.AutoGen.AVRational)">
            <summary>
            Gets a timespan given a timestamp and a timebase.
            </summary>
            <param name="pts">The PTS.</param>
            <param name="timeBase">The time base.</param>
            <returns>The TimeSpan.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.ToLong(System.TimeSpan,FFmpeg.AutoGen.AVRational)">
            <summary>
            Converts a timespan to an AV_TIME_BASE compatible timestamp.
            </summary>
            <param name="ts">The ts.</param>
            <param name="timeBase">The time base.</param>
            <returns>
            A long, ffmpeg compatible timestamp.
            </returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.ToTimeSpan(System.Int64,FFmpeg.AutoGen.AVRational)">
            <summary>
            Gets a timespan given a timestamp and a timebase.
            </summary>
            <param name="pts">The PTS.</param>
            <param name="timeBase">The time base.</param>
            <returns>The TimeSpan.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.ToTimeSpan(System.Double,System.Double)">
            <summary>
            Gets a timespan given a timestamp and a timebase.
            </summary>
            <param name="pts">The PTS in seconds.</param>
            <param name="timeBase">The time base.</param>
            <returns>The TimeSpan.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.ToTimeSpan(System.Int64,System.Double)">
            <summary>
            Gets a timespan given a timestamp and a timebase.
            </summary>
            <param name="pts">The PTS.</param>
            <param name="timeBase">The time base.</param>
            <returns>The TimeSpan.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.ToTimeSpan(System.Double)">
            <summary>
            Gets a timespan given a timestamp (in AV_TIME_BASE units).
            </summary>
            <param name="pts">The PTS.</param>
            <returns>The TimeSpan.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.ToTimeSpan(System.Int64)">
            <summary>
            Gets a timespan given a timestamp (in AV_TIME_BASE units).
            </summary>
            <param name="pts">The PTS.</param>
            <returns>The TimeSpan.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.ToDouble(FFmpeg.AutoGen.AVRational)">
            <summary>
            Converts a fraction to a double.
            </summary>
            <param name="rational">The rational.</param>
            <returns>The value.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.Normalize(System.TimeSpan)">
            <summary>
            Normalizes precision of the TimeSpan to the nearest whole millisecond.
            </summary>
            <param name="source">The source.</param>
            <returns>The normalized, whole-millisecond timespan.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.Format(System.TimeSpan)">
            <summary>
            Returns a formatted timestamp string in Seconds.
            </summary>
            <param name="ts">The ts.</param>
            <returns>The formatted string.</returns>
        </member>
        <member name="M:CSVideoPlayer.Utilities.FormatElapsed(System.DateTime)">
            <summary>
            Returns a formatted string with elapsed milliseconds between now and
            the specified date.
            </summary>
            <param name="dt">The dt.</param>
            <returns>The formatted string.</returns>
        </member>
        <member name="T:CSVideoPlayer.Properties.Resources">
            <summary>
              A strongly-typed resource class, for looking up localized strings, etc.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Properties.Resources.ResourceManager">
            <summary>
              Returns the cached ResourceManager instance used by this class.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.Properties.Resources.Culture">
            <summary>
              Overrides the current thread's CurrentUICulture property for all
              resource lookups using this strongly typed resource class.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWinForm">
            <summary>
            Video Player component for WinForm
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoPlayerWinForm.UserName">
            <summary>
            The user name.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoPlayerWinForm.UserKey">
            <summary>
            The user key.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWinForm.MediaOpenedEventHandler">
            <summary>
            MediaOpenedEventHandler
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSVideoPlayer.VideoPlayerWinForm.MediaOpened">
            <summary>
            MediaOpened
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWinForm.MediaChangedEventHandler">
            <summary>
            MediaChangedEventHandler
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSVideoPlayer.VideoPlayerWinForm.MediaChanged">
            <summary>
            MediaChanged
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWinForm.MediaChangingEventHandler">
            <summary>
            MediaChangingEventHandler
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSVideoPlayer.VideoPlayerWinForm.MediaChanging">
            <summary>
            MediaChanging
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWinForm.MediaClosedEventHandler">
            <summary>
            MediaClosedEventHandler
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSVideoPlayer.VideoPlayerWinForm.MediaClosed">
            <summary>
            MediaClosedEventHandler 
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWinForm.MediaEndedEventHandler">
            <summary>
            MediaEndedEventHandler
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSVideoPlayer.VideoPlayerWinForm.MediaEnded">
            <summary>
            MediaEnded
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWinForm.MediaFailedEventHandler">
            <summary>
            MediaFailedEventHandler
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSVideoPlayer.VideoPlayerWinForm.MediaFailed">
            <summary>
            MediaFailed
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWinForm.MediaInitializingEventHandler">
            <summary>
            MediaInitializingEventHandler
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSVideoPlayer.VideoPlayerWinForm.MediaInitializing">
            <summary>
            MediaInitializing
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWinForm.MediaOpeningEventHandler">
            <summary>
            MediaOpeningEventHandler
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSVideoPlayer.VideoPlayerWinForm.MediaOpening">
            <summary>
            MediaOpening
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWinForm.MediaReadyEventHandler">
            <summary>
            MediaReadyEventHandler
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSVideoPlayer.VideoPlayerWinForm.MediaReady">
            <summary>
            MediaReady
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWinForm.MediaStateChangedEventHandler">
            <summary>
            MediaStateChangedEventHandler
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSVideoPlayer.VideoPlayerWinForm.MediaStateChanged">
            <summary>
            MediaStateChanged
            </summary>
        </member>
        <member name="F:CSVideoPlayer.VideoPlayerWinForm.mediaProperties">
            <summary>
            mediaProperties
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoPlayerWinForm.FFmpegLibsPath">
            <summary>
            FFmpegLibsPath
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWinForm.#ctor">
            <summary>
            VideoPlayerWinForm
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWinForm.CheckLicense(System.Boolean)">
            <summary>
            Check the user license of the component. 
            </summary>
            <param name="DisplayRegistrationWindow">Display the registration form or not.</param>
            <returns>True if the license is OK, false if not.</returns>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWinForm.Init(System.String,System.String,System.String)">
            <summary>
            Init the component, must be call before using any functionality of the component.
            </summary>
            <param name="LibsPath"></param>
            <param name="UserName"></param>
            <param name="UserKey"></param>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWinForm.NaturalDuration">
            <summary>
            NaturalDuration
            </summary>
            <returns></returns>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWinForm.Volume(System.Int32)">
            <summary>
            Volume
            </summary>
            <param name="Val"></param>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWinForm.SpeedRatio(System.Int32)">
            <summary>
            SpeedRatio
            </summary>
            <param name="Val"></param>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWinForm.PositionGet">
            <summary>
            PositionGet
            </summary>
            <returns></returns>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWinForm.PositionSet(System.TimeSpan)">
            <summary>
            PositionSet
            </summary>
            <param name="pos"></param>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWinForm.Pause">
            <summary>
            Pause
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWinForm.Open(System.Uri)">
            <summary>
            Open
            </summary>
            <param name="uri"></param>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWinForm.Close">
            <summary>
            Close
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWinForm.GetDeatils(System.String)">
            <summary>
            GetDeatils
            </summary>
            <param name="uri"></param>
            <returns></returns>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWinForm.Stop">
            <summary>
            Stop
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWinForm.Play">
            <summary>
            Play
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWinForm.Rotate(System.Int32)">
            <summary>
            Rotate
            </summary>
            <param name="Degrees"></param>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWinForm.Flip(System.Int32)">
            <summary>
            Flip
            </summary>
            <param name="ScaleX"></param>
        </member>
        <member name="F:CSVideoPlayer.VideoPlayerWinForm.components">
            <summary> 
            Required designer variable.
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWinForm.Dispose(System.Boolean)">
            <summary> 
            Clean up any resources being used.
            </summary>
            <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWinForm.InitializeComponent">
            <summary> 
            Required method for Designer support - do not modify 
            the contents of this method with the code editor.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWPF">
            <summary>
            Video Player component for WPF
            </summary>
            <summary>
            VideoPlayerWPF
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoPlayerWPF.UserName">
            <summary>
            The user name.
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoPlayerWPF.UserKey">
            <summary>
            The user key.
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWPF.MediaOpenedEventHandler">
            <summary>
            MediaOpenedEventHandler
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSVideoPlayer.VideoPlayerWPF.MediaOpened">
            <summary>
            MediaOpened
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWPF.MediaChangedEventHandler">
            <summary>
            MediaChangedEventHandler
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSVideoPlayer.VideoPlayerWPF.MediaChanged">
            <summary>
            MediaChanged
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWPF.MediaChangingEventHandler">
            <summary>
            MediaChangingEventHandler
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSVideoPlayer.VideoPlayerWPF.MediaChanging">
            <summary>
            MediaChanging
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWPF.MediaClosedEventHandler">
            <summary>
            MediaClosedEventHandler
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSVideoPlayer.VideoPlayerWPF.MediaClosed">
            <summary>
            MediaClosedEventHandler 
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWPF.MediaEndedEventHandler">
            <summary>
            MediaEndedEventHandler
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSVideoPlayer.VideoPlayerWPF.MediaEnded">
            <summary>
            MediaEnded
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWPF.MediaFailedEventHandler">
            <summary>
            MediaFailedEventHandler
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSVideoPlayer.VideoPlayerWPF.MediaFailed">
            <summary>
            MediaFailed
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWPF.MediaInitializingEventHandler">
            <summary>
            MediaInitializingEventHandler
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSVideoPlayer.VideoPlayerWPF.MediaInitializing">
            <summary>
            MediaInitializing
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWPF.MediaOpeningEventHandler">
            <summary>
            MediaOpeningEventHandler
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSVideoPlayer.VideoPlayerWPF.MediaOpening">
            <summary>
            MediaOpening
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWPF.MediaReadyEventHandler">
            <summary>
            MediaReadyEventHandler
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSVideoPlayer.VideoPlayerWPF.MediaReady">
            <summary>
            MediaReady
            </summary>
        </member>
        <member name="T:CSVideoPlayer.VideoPlayerWPF.MediaStateChangedEventHandler">
            <summary>
            MediaStateChangedEventHandler
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="E:CSVideoPlayer.VideoPlayerWPF.MediaStateChanged">
            <summary>
            MediaStateChanged
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoPlayerWPF.FullScreenMode">
            <summary>
            FullScreenMode
            </summary>
        </member>
        <member name="F:CSVideoPlayer.VideoPlayerWPF.mediaProperties">
            <summary>
            mediaProperties
            </summary>
        </member>
        <member name="P:CSVideoPlayer.VideoPlayerWPF.FFmpegLibsPath">
            <summary>
            FFmpegLibsPath
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWPF.#ctor">
            <summary>
            VideoPlayerWPF
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWPF.CheckLicense(System.Boolean)">
            <summary>
            Check the user license of the component. 
            </summary>
            <param name="DisplayRegistrationWindow">Display the registration form or not.</param>
            <returns>True if the license is OK, false if not.</returns>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWPF.Init(System.String,System.String,System.String)">
            <summary>
            Init the component, must be call before using any functionality of the component.
            </summary>
            <param name="LibsPath"></param>
            <param name="UserName"></param>
            <param name="UserKey"></param>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWPF.NaturalDuration">
            <summary>
            NaturalDuration
            </summary>
            <returns></returns>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWPF.Volume(System.Int32)">
            <summary>
            Volume
            </summary>
            <param name="Val"></param>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWPF.SpeedRatio(System.Int32)">
            <summary>
            SpeedRatio
            </summary>
            <param name="Val"></param>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWPF.Rotate(System.Int32)">
            <summary>
            Rotate
            </summary>
            <param name="Degrees"></param>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWPF.Flip(System.Int32)">
            <summary>
            Flip
            </summary>
            <param name="ScaleX"></param>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWPF.PositionGet">
            <summary>
            PositionGet
            </summary>
            <returns></returns>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWPF.PositionSet(System.TimeSpan)">
            <summary>
            PositionSet
            </summary>
            <param name="pos"></param>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWPF.Pause">
            <summary>
            Pause
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWPF.Open(System.Uri)">
            <summary>
            Open
            </summary>
            <param name="uri"></param>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWPF.GetDeatils(System.String)">
            <summary>
            GetDeatils
            </summary>
            <param name="uri"></param>
            <returns></returns>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWPF.Stop">
            <summary>
            Stop
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWPF.Play">
            <summary>
            Play
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWPF.FullScreen">
            <summary>
            FullScreen
            </summary>
        </member>
        <member name="M:CSVideoPlayer.VideoPlayerWPF.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="P:CSMediaProperties.Disposition.Default">
            <summary>
            Default
            </summary>
        </member>
        <member name="P:CSMediaProperties.Disposition.Dub">
            <summary>
            Dub
            </summary>
        </member>
        <member name="P:CSMediaProperties.Disposition.Original">
            <summary>
            Original
            </summary>
        </member>
        <member name="P:CSMediaProperties.Disposition.Comment">
            <summary>
            Comment
            </summary>
        </member>
        <member name="P:CSMediaProperties.Disposition.Lyrics">
            <summary>
            Lyrics
            </summary>
        </member>
        <member name="P:CSMediaProperties.Disposition.Karaoke">
            <summary>
            Karaoke
            </summary>
        </member>
        <member name="P:CSMediaProperties.Disposition.Forced">
            <summary>
            Forced
            </summary>
        </member>
        <member name="P:CSMediaProperties.Disposition.HearingImpaired">
            <summary>
            HearingImpaired
            </summary>
        </member>
        <member name="P:CSMediaProperties.Disposition.VisualImpaired">
            <summary>
            VisualImpaired
            </summary>
        </member>
        <member name="P:CSMediaProperties.Disposition.CleanEffects">
            <summary>
            CleanEffects
            </summary>
        </member>
        <member name="P:CSMediaProperties.Disposition.AttachedPic">
            <summary>
            AttachedPic
            </summary>
        </member>
        <member name="P:CSMediaProperties.Disposition.TimedThumbnails">
            <summary>
            TimedThumbnails
            </summary>
        </member>
        <member name="P:CSMediaProperties.Format.Filename">
            <summary>
            Filename
            </summary>
        </member>
        <member name="P:CSMediaProperties.Format.NbStreams">
            <summary>
            NbStreams
            </summary>
        </member>
        <member name="P:CSMediaProperties.Format.NbPrograms">
            <summary>
            NbPrograms
            </summary>
        </member>
        <member name="P:CSMediaProperties.Format.FormatName">
            <summary>
            FormatName
            </summary>
        </member>
        <member name="P:CSMediaProperties.Format.FormatLongName">
            <summary>
            FormatLongName
            </summary>
        </member>
        <member name="P:CSMediaProperties.Format.StartTime">
            <summary>
            StartTime
            </summary>
        </member>
        <member name="P:CSMediaProperties.Format.Duration">
            <summary>
            Duration
            </summary>
        </member>
        <member name="P:CSMediaProperties.Format.Size">
            <summary>
            Size
            </summary>
        </member>
        <member name="P:CSMediaProperties.Format.BitRate">
            <summary>
            BitRate
            </summary>
        </member>
        <member name="P:CSMediaProperties.Format.ProbeScore">
            <summary>
            ProbeScore
            </summary>
        </member>
        <member name="P:CSMediaProperties.Format.Tags">
            <summary>
            Tags
            </summary>
        </member>
        <member name="P:CSMediaProperties.ID3Tags.Title">
            <summary>
            ID3 title tag.
            -metadata title="Adagio for Strings"
            </summary>
        </member>
        <member name="P:CSMediaProperties.ID3Tags.Subtitle">
            <summary>
            ID3 subtitle tag.
            -metadata TIT3="Op. 91"
            </summary>
        </member>
        <member name="P:CSMediaProperties.ID3Tags.Comment">
            <summary>
            ID3 comment tag.
            -metadata comment="Extra info text"
            </summary>
        </member>
        <member name="P:CSMediaProperties.ID3Tags.Artist">
            <summary>
            ID3 artist tag.
            -metadata artist="Yo Yo Ma/London Symphony"
            </summary>
        </member>
        <member name="P:CSMediaProperties.ID3Tags.AlbumArtist">
            <summary>
            ID3 album artist tag.
            -metadata album_artist="London Symphony"
            </summary>
        </member>
        <member name="P:CSMediaProperties.ID3Tags.Album">
            <summary>
            ID3 album tag.
            -metadata album="String Classics"
            </summary>
        </member>
        <member name="P:CSMediaProperties.ID3Tags.Date">
            <summary>
            ID3 date tag.
            -metadata date="2012"
            </summary>
        </member>
        <member name="P:CSMediaProperties.ID3Tags.Track">
            <summary>
            ID3 track tag.
            -metadata track="3/12" means track number 3 of 12.
            </summary>
        </member>
        <member name="P:CSMediaProperties.ID3Tags.Genre">
            <summary>
            ID3 genre tag.
            -metadata genre="Classical"
            </summary>
        </member>
        <member name="P:CSMediaProperties.ID3Tags.Publisher">
            <summary>
            ID3 publisher tag.
            -metadata publisher="London Publishing"
            </summary>
        </member>
        <member name="P:CSMediaProperties.ID3Tags.EncodedBy">
            <summary>
            ID3 genre tag.
            -metadata encoded_by="Telarc"
            </summary>
        </member>
        <member name="P:CSMediaProperties.ID3Tags.Copyright">
            <summary>
            ID3 copyright tag.
            -metadata copyright="Telarc"
            </summary>
        </member>
        <member name="P:CSMediaProperties.ID3Tags.Composer">
            <summary>
            ID3 composer tag.
            -metadata composer="J.S. Bach"
            </summary>
        </member>
        <member name="P:CSMediaProperties.ID3Tags.Performer">
            <summary>
            ID3 performer tag.
            -metadata performer="T. S. Miles"
            </summary>
        </member>
        <member name="P:CSMediaProperties.ID3Tags.TIT1">
            <summary>
            ID3 TIT1 tag.
            -metadata TIT1="The Classics"
            </summary>
        </member>
        <member name="P:CSMediaProperties.ID3Tags.Disc">
            <summary>
            ID3 Disc tag.
            -metadata disc="1/2" means disc number 1 of 2.
            </summary>
        </member>
        <member name="P:CSMediaProperties.ID3Tags.TKEY">
            <summary>
            ID3 TKEY tag.
            -metadata TKEY="G"
            </summary>
        </member>
        <member name="P:CSMediaProperties.ID3Tags.TBPM">
            <summary>
            ID3 TBPM tag.
            -metadata TBPM="120"
            </summary>
        </member>
        <member name="P:CSMediaProperties.ID3Tags.Language">
            <summary>
            ID3 language tag.
            -metadata language="eng"
            </summary>
        </member>
        <member name="P:CSMediaProperties.ID3Tags.Encoder">
            <summary>
            ID3 encoder tag.
            -metadata encoder="iTunes v10"
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.Index">
            <summary>
            Index
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.CodecName">
            <summary>
            CodecName
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.CodecLongName">
            <summary>
            CodecLongName
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.Profile">
            <summary>
            Profile
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.CodecType">
            <summary>
            CodecType
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.CodecTimeBase">
            <summary>
            CodecTimeBase
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.CodecTagString">
            <summary>
            CodecTagString
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.CodecTag">
            <summary>
            CodecTag
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.Width">
            <summary>
            Width
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.Height">
            <summary>
            Height
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.CodedWidth">
            <summary>
            CodedWidth
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.CodedHeight">
            <summary>
            CodedHeight
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.HasBFrames">
            <summary>
            HasBFrames
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.SampleAspectRatio">
            <summary>
            SampleAspectRatio
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.DisplayAspectRatio">
            <summary>
            DisplayAspectRatio
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.PixFmt">
            <summary>
            PixFmt
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.Level">
            <summary>
            Level
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.ColorRange">
            <summary>
            ColorRange
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.ColorSpace">
            <summary>
            ColorSpace
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.ColorTransfer">
            <summary>
            ColorTransfer
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.ColorPrimaries">
            <summary>
            ColorPrimaries
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.ChromaLocation">
            <summary>
            ChromaLocation
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.Refs">
            <summary>
            Refs
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.IsAvc">
            <summary>
            IsAvc
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.NalLengthSize">
            <summary>
            NalLengthSize
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.RFrameRate">
            <summary>
            RFrameRate
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.AvgFrameRate">
            <summary>
            AvgFrameRate
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.TimeBase">
            <summary>
            TimeBase
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.StartPts">
            <summary>
            StartPts
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.StartTime">
            <summary>
            StartTime
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.DurationTs">
            <summary>
            DurationTs
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.Duration">
            <summary>
            Duration
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.BitRate">
            <summary>
            BitRate
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.BitsPerRawSample">
            <summary>
            BitsPerRawSample
            </summary>
        </member>
        <member name="P:CSMediaProperties.Stream.NbFrames">
            <summary>
            NbFrames
            </summary>
        </member>
        <member name="P:CSMediaProperties.Tag.Key">
            <summary>
            Key
            </summary>
        </member>
        <member name="P:CSMediaProperties.Tag.Value">
            <summary>
            Value
            </summary>
        </member>
        <member name="T:FFmpeg.AutoGen.FFAudioParams">
            <summary>
            Contains audio format properties essential
            to audio processing and re-sampling in FFmpeg libraries.
            </summary>
        </member>
        <member name="F:FFmpeg.AutoGen.FFAudioParams.Output">
            <summary>
            The standard output audio spec.
            </summary>
        </member>
        <member name="M:FFmpeg.AutoGen.FFAudioParams.#cctor">
            <summary>
            Initializes static members of the <see cref="T:FFmpeg.AutoGen.FFAudioParams"/> class.
            </summary>
        </member>
        <member name="M:FFmpeg.AutoGen.FFAudioParams.#ctor">
            <summary>
            Prevents a default instance of the <see cref="T:FFmpeg.AutoGen.FFAudioParams"/> class from being created.
            </summary>
        </member>
        <member name="M:FFmpeg.AutoGen.FFAudioParams.#ctor(FFmpeg.AutoGen.AVFrame*)">
            <summary>
            Initializes a new instance of the <see cref="T:FFmpeg.AutoGen.FFAudioParams"/> class.
            </summary>
            <param name="frame">The frame.</param>
        </member>
        <member name="P:FFmpeg.AutoGen.FFAudioParams.ChannelCount">
            <summary>
            Gets the channel count.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFAudioParams.ChannelLayout">
            <summary>
            Gets the channel layout.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFAudioParams.SamplesPerChannel">
            <summary>
            Gets the samples per channel.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFAudioParams.SampleRate">
            <summary>
            Gets the audio sampling rate.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFAudioParams.Format">
            <summary>
            Gets the sample format.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFAudioParams.BufferLength">
            <summary>
            Gets the length of the buffer required to store
            the samples in the current format.
            </summary>
        </member>
        <member name="M:FFmpeg.AutoGen.FFAudioParams.CreateSource(FFmpeg.AutoGen.AVFrame*)">
            <summary>
            Creates a source audio spec based on the info in the given audio frame.
            </summary>
            <param name="frame">The frame.</param>
            <returns>The audio parameters.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFAudioParams.CreateTarget(FFmpeg.AutoGen.AVFrame*)">
            <summary>
            Creates a target audio spec using the sample quantities provided
            by the given source audio frame.
            </summary>
            <param name="frame">The frame.</param>
            <returns>The audio parameters.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFAudioParams.AreCompatible(FFmpeg.AutoGen.FFAudioParams,FFmpeg.AutoGen.FFAudioParams)">
            <summary>
            Determines if the audio specs are compatible between them.
            They must share format, channel count, layout and sample rate.
            </summary>
            <param name="a">a.</param>
            <param name="b">The b.</param>
            <returns>True if the params are compatible, false otherwise.</returns>
        </member>
        <member name="T:FFmpeg.AutoGen.FFDictionary">
            <inheritdoc />
            <summary>
            An AVDictionary management class.
            </summary>
        </member>
        <member name="F:FFmpeg.AutoGen.FFDictionary.IsDisposed">
            <summary>
            To detect redundant Dispose calls.
            </summary>
        </member>
        <member name="M:FFmpeg.AutoGen.FFDictionary.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:FFmpeg.AutoGen.FFDictionary"/> class.
            </summary>
        </member>
        <member name="M:FFmpeg.AutoGen.FFDictionary.#ctor(System.Collections.Generic.Dictionary{System.String,System.String})">
            <summary>
            Initializes a new instance of the <see cref="T:FFmpeg.AutoGen.FFDictionary"/> class.
            </summary>
            <param name="other">The other.</param>
        </member>
        <member name="P:FFmpeg.AutoGen.FFDictionary.Pointer">
            <summary>
            Gets the unmanaged pointer to the dictionary object.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFDictionary.Count">
            <summary>
            Gets the number of elements in the dictionary.
            </summary>
            <value>
            The count.
            </value>
        </member>
        <member name="P:FFmpeg.AutoGen.FFDictionary.Item(System.String)">
            <summary>
            Gets or sets the value with the specified key.
            </summary>
            <value>
            The <see cref="T:System.String"/>.
            </value>
            <param name="key">The key.</param>
            <returns>The entry.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFDictionary.ToDictionary(FFmpeg.AutoGen.AVDictionary*)">
            <summary>
            Converts the AVDictionary to a regular dictionary.
            </summary>
            <param name="dictionary">The dictionary to convert from.</param>
            <returns>the converted dictionary.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFDictionary.GetEntry(FFmpeg.AutoGen.AVDictionary*,System.String,System.Boolean)">
            <summary>
            A wrapper for the av_dict_get method.
            </summary>
            <param name="dictionary">The dictionary.</param>
            <param name="key">The key.</param>
            <param name="matchCase">if set to <c>true</c> [match case].</param>
            <returns>The Entry.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFDictionary.UpdateReference(FFmpeg.AutoGen.AVDictionary*)">
            <summary>
            Updates the pointer reference after modified.
            </summary>
            <param name="reference">The reference.</param>
        </member>
        <member name="M:FFmpeg.AutoGen.FFDictionary.Fill(System.Collections.Generic.Dictionary{System.String,System.String})">
            <summary>
            Fills this dictionary with a set of options.
            </summary>
            <param name="other">The other dictionary (source).</param>
        </member>
        <member name="M:FFmpeg.AutoGen.FFDictionary.First">
            <summary>
            Gets the first entry. Null if no entries.
            </summary>
            <returns>The entry.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFDictionary.Next(FFmpeg.AutoGen.FFDictionaryEntry)">
            <summary>
            Gets the next entry based on the provided prior entry.
            </summary>
            <param name="prior">The prior entry.</param>
            <returns>The entry.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFDictionary.HasKey(System.String,System.Boolean)">
            <summary>
            Determines if the given key exists in the dictionary.
            </summary>
            <param name="key">The key.</param>
            <param name="matchCase">if set to <c>true</c> [match case].</param>
            <returns>True or False.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFDictionary.GetEntry(System.String,System.Boolean)">
            <summary>
            Gets the entry given the key.
            </summary>
            <param name="key">The key.</param>
            <param name="matchCase">if set to <c>true</c> [match case].</param>
            <returns>The entry.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFDictionary.Get(System.String)">
            <summary>
            Gets the value with specified key.
            </summary>
            <param name="key">The key.</param>
            <returns>The value.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFDictionary.Set(System.String,System.String)">
            <summary>
            Sets the value for the specified key.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The value.</param>
        </member>
        <member name="M:FFmpeg.AutoGen.FFDictionary.Set(System.String,System.String,System.Boolean)">
            <summary>
            Sets the value for the specified key.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The value.</param>
            <param name="preventOverwrite">if set to <c>true</c> don't overwrite existing value.</param>
        </member>
        <member name="M:FFmpeg.AutoGen.FFDictionary.Remove(System.String)">
            <summary>
            Removes the entry with the specified key.
            </summary>
            <param name="key">The key.</param>
        </member>
        <member name="M:FFmpeg.AutoGen.FFDictionary.Dispose">
            <inheritdoc />
        </member>
        <member name="T:FFmpeg.AutoGen.FFDictionaryEntry">
            <summary>
            An AVDictionaryEntry wrapper.
            </summary>
        </member>
        <member name="M:FFmpeg.AutoGen.FFDictionaryEntry.#ctor(FFmpeg.AutoGen.AVDictionaryEntry*)">
            <summary>
            Initializes a new instance of the <see cref="T:FFmpeg.AutoGen.FFDictionaryEntry"/> class.
            </summary>
            <param name="entryPointer">The entry pointer.</param>
        </member>
        <member name="P:FFmpeg.AutoGen.FFDictionaryEntry.Pointer">
            <summary>
            Gets the unmanaged pointer.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFDictionaryEntry.Key">
            <summary>
            Gets the key.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFDictionaryEntry.Value">
            <summary>
            Gets the value.
            </summary>
        </member>
        <member name="T:FFmpeg.AutoGen.FFInterop">
            <summary>
            Provides a set of utilities to perform logging, text formatting,
            conversion and other handy calculations.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFInterop.IsInitialized">
            <summary>
            True when libraries were initialized correctly.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFInterop.LibrariesPath">
            <summary>
            Gets the libraries path. Only filled when initialized correctly.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFInterop.LibraryIdentifiers">
            <summary>
            Gets the bitwise FFmpeg library identifiers that were loaded.
            </summary>
        </member>
        <member name="M:FFmpeg.AutoGen.FFInterop.Initialize(System.String,System.Int32)">
            <summary>
            Registers FFmpeg library and initializes its components.
            It only needs to be called once but calling it more than once
            has no effect. Returns the path that FFmpeg was registered from.
            This method is thread-safe.
            </summary>
            <param name="overridePath">The override path.</param>
            <param name="libIdentifiers">The bit-wise flag identifiers corresponding to the libraries.</param>
            <returns>
            Returns true if it was a new initialization and it succeeded. False if there was no need to initialize
            as there is already a valid initialization.
            </returns>
            <exception cref="T:System.IO.FileNotFoundException">When ffmpeg libraries are not found.</exception>
        </member>
        <member name="M:FFmpeg.AutoGen.FFInterop.StringToBytePointerUTF8(System.String)">
            <summary>
            Copies the contents of a managed string to an unmanaged, UTF8 encoded string.
            </summary>
            <param name="source">The string to copy.</param>
            <returns>A pointer to a string in unmanaged memory.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFInterop.DecodeMessage(System.Int32)">
            <summary>
            Gets the FFmpeg error message based on the error code.
            </summary>
            <param name="errorCode">The code.</param>
            <returns>The decoded error message.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFInterop.RetrieveOptions(FFmpeg.AutoGen.AVClass*)">
            <summary>
            Retrieves the options information associated with the given AVClass.
            </summary>
            <param name="avClass">The av class.</param>
            <returns>A list of option metadata.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFInterop.RetrieveCodecs">
            <summary>
            Retrieves the codecs.
            </summary>
            <returns>The codecs.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFInterop.RetrieveInputFormatNames">
            <summary>
            Retrieves the input format names.
            </summary>
            <returns>The collection of names.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFInterop.RetrieveDecoderNames(FFmpeg.AutoGen.AVCodec*[])">
            <summary>
            Retrieves the decoder names.
            </summary>
            <param name="allCodecs">All codecs.</param>
            <returns>The collection of names.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFInterop.RetrieveEncoderNames(FFmpeg.AutoGen.AVCodec*[])">
            <summary>
            Retrieves the encoder names.
            </summary>
            <param name="allCodecs">All codecs.</param>
            <returns>The collection of names.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFInterop.RetrieveGlobalFormatOptions">
            <summary>
            Retrieves the global format options.
            </summary>
            <returns>The collection of option infos.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFInterop.RetrieveGlobalCodecOptions">
            <summary>
            Retrieves the global codec options.
            </summary>
            <returns>The collection of option infos.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFInterop.RetrieveInputFormatOptions(System.String)">
            <summary>
            Retrieves the input format options.
            </summary>
            <param name="formatName">Name of the format.</param>
            <returns>The collection of option infos.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFInterop.RetrieveCodecOptions(FFmpeg.AutoGen.AVCodec*)">
            <summary>
            Retrieves the codec options.
            </summary>
            <param name="codec">The codec.</param>
            <returns>The collection of option infos.</returns>
        </member>
        <member name="M:FFmpeg.AutoGen.FFInterop.OnFFmpegMessageLogged(System.Void*,System.Int32,System.String,System.Byte*)">
            <summary>
            Log message callback from ffmpeg library.
            </summary>
            <param name="p0">The p0.</param>
            <param name="level">The level.</param>
            <param name="format">The format.</param>
            <param name="vl">The vl.</param>
        </member>
        <member name="T:FFmpeg.AutoGen.FFInterop.FFLoggingHandler">
            <summary>
            Handles FFmpeg library messages.
            </summary>
            <seealso cref="T:CSVideoPlayer.ILoggingHandler" />
        </member>
        <member name="M:FFmpeg.AutoGen.FFInterop.FFLoggingHandler.CSVideoPlayer#ILoggingHandler#HandleLogMessage(CSVideoPlayer.LoggingMessage)">
            <inheritdoc />
        </member>
        <member name="T:FFmpeg.AutoGen.FFLibrary">
            <summary>
            Defines FFmpeg library metadata and access.
            It allows for the loading of individual libraries.
            </summary>
        </member>
        <member name="F:FFmpeg.AutoGen.FFLibrary.LoadLock">
            <summary>
            The load lock preventing libraries to load at the same time.
            </summary>
        </member>
        <member name="M:FFmpeg.AutoGen.FFLibrary.#cctor">
            <summary>
            Initializes static members of the <see cref="T:FFmpeg.AutoGen.FFLibrary"/> class.
            </summary>
        </member>
        <member name="M:FFmpeg.AutoGen.FFLibrary.#ctor(System.String,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:FFmpeg.AutoGen.FFLibrary" /> class.
            </summary>
            <param name="name">The name.</param>
            <param name="version">The version.</param>
            <param name="flagId">The flag identifier.</param>
        </member>
        <member name="P:FFmpeg.AutoGen.FFLibrary.All">
            <summary>
            Gets all the libraries as a collection.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFLibrary.LibAVCodec">
            <summary>
            Gets the AVCodec library.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFLibrary.LibAVFormat">
            <summary>
            Gets the AVFormat library.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFLibrary.LibAVUtil">
            <summary>
            Gets the AVUtil library.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFLibrary.LibSWResample">
            <summary>
            Gets the SW Resample library.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFLibrary.LibSWScale">
            <summary>
            Gets the SWScale library.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFLibrary.LibAVDevice">
            <summary>
            Gets the AVDevice library.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFLibrary.LibPostProc">
            <summary>
            Gets the Post-processing library.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFLibrary.LibAVFilter">
            <summary>
            Gets the AVFilter library.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFLibrary.FlagId">
            <summary>
            Gets the flag identifier.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFLibrary.Name">
            <summary>
            Gets the name of the library.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFLibrary.BasePath">
            <summary>
            Gets the base path from where the library was loaded.
            Returns null if it has not been loaded.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFLibrary.Version">
            <summary>
            Gets the library version.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFLibrary.Reference">
            <summary>
            Gets the pointer reference to the library.
            </summary>>
        </member>
        <member name="P:FFmpeg.AutoGen.FFLibrary.IsLoaded">
            <summary>
            Gets a value indicating whether the library has already been loaded.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFLibrary.LoadErrorCode">
            <summary>
            Gets the load error code. 0 for success.
            </summary>
        </member>
        <member name="M:FFmpeg.AutoGen.FFLibrary.Load(System.String)">
            <summary>
            Loads the library from the specified path.
            </summary>
            <param name="basePath">The base path.</param>
            <returns>True if the registration was successful.</returns>
            <exception cref="T:System.InvalidOperationException">When library has already been loaded.</exception>
        </member>
        <member name="T:FFmpeg.AutoGen.FFLibrary.Names">
            <summary>
            Defines the library names as constants.
            </summary>
        </member>
        <member name="T:FFmpeg.AutoGen.FFmpegLoadMode">
            <summary>
            The load mode of FFmpeg Libraries.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFmpegLoadMode.LibraryFlags">
            <summary>
            Gets the individual library flag identifiers.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFmpegLoadMode.FullFeatures">
            <summary>
            The full features. Tries to load everything.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFmpegLoadMode.MinimumFeatures">
            <summary>
            Loads everything except for AVDevice and AVFilter.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFmpegLoadMode.AudioOnly">
            <summary>
            Loads the minimum set for Audio-only programs.
            </summary>
        </member>
        <member name="P:FFmpeg.AutoGen.FFmpegLoadMode.VideoOnly">
            <summary>
            Loads the minimum set for Video-only programs.
            </summary>
        </member>
        <member name="T:XamlGeneratedNamespace.GeneratedInternalTypeHelper">
            <summary>
            GeneratedInternalTypeHelper
            </summary>
        </member>
        <member name="M:XamlGeneratedNamespace.GeneratedInternalTypeHelper.CreateInstance(System.Type,System.Globalization.CultureInfo)">
            <summary>
            CreateInstance
            </summary>
        </member>
        <member name="M:XamlGeneratedNamespace.GeneratedInternalTypeHelper.GetPropertyValue(System.Reflection.PropertyInfo,System.Object,System.Globalization.CultureInfo)">
            <summary>
            GetPropertyValue
            </summary>
        </member>
        <member name="M:XamlGeneratedNamespace.GeneratedInternalTypeHelper.SetPropertyValue(System.Reflection.PropertyInfo,System.Object,System.Object,System.Globalization.CultureInfo)">
            <summary>
            SetPropertyValue
            </summary>
        </member>
        <member name="M:XamlGeneratedNamespace.GeneratedInternalTypeHelper.CreateDelegate(System.Type,System.Object,System.String)">
            <summary>
            CreateDelegate
            </summary>
        </member>
        <member name="M:XamlGeneratedNamespace.GeneratedInternalTypeHelper.AddEventHandler(System.Reflection.EventInfo,System.Object,System.Delegate)">
            <summary>
            AddEventHandler
            </summary>
        </member>
    </members>
</doc>
