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;
}
}