using System; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Text; namespace NAudio.MediaFoundation { /// /// Contains statistics about the performance of the sink writer. /// [StructLayout(LayoutKind.Sequential)] public class MF_SINK_WRITER_STATISTICS { /// /// The size of the structure, in bytes. /// public int cb; /// /// The time stamp of the most recent sample given to the sink writer. /// public long llLastTimestampReceived; /// /// The time stamp of the most recent sample to be encoded. /// public long llLastTimestampEncoded; /// /// The time stamp of the most recent sample given to the media sink. /// public long llLastTimestampProcessed; /// /// The time stamp of the most recent stream tick. /// public long llLastStreamTickReceived; /// /// The system time of the most recent sample request from the media sink. /// public long llLastSinkSampleRequest; /// /// The number of samples received. /// public long qwNumSamplesReceived; /// /// The number of samples encoded. /// public long qwNumSamplesEncoded; /// /// The number of samples given to the media sink. /// public long qwNumSamplesProcessed; /// /// The number of stream ticks received. /// public long qwNumStreamTicksReceived; /// /// The amount of data, in bytes, currently waiting to be processed. /// public int dwByteCountQueued; /// /// The total amount of data, in bytes, that has been sent to the media sink. /// public long qwByteCountProcessed; /// /// The number of pending sample requests. /// public int dwNumOutstandingSinkSampleRequests; /// /// The average rate, in media samples per 100-nanoseconds, at which the application sent samples to the sink writer. /// public int dwAverageSampleRateReceived; /// /// The average rate, in media samples per 100-nanoseconds, at which the sink writer sent samples to the encoder /// public int dwAverageSampleRateEncoded; /// /// The average rate, in media samples per 100-nanoseconds, at which the sink writer sent samples to the media sink. /// public int dwAverageSampleRateProcessed; } }