I'm afraid, I do not quite understand your comment
To clarify the situation:
publicoverrideint Read(byte[] buffer, int offset, int count) { if (MFStart == false) { pReaderTh = Init(); //SetPosition(); MFStart = true; } SetPosition(); .................. } // Position pReaderThprivatevoid SetPosition() { if (IsChangePosition) { long nsPosition = (10000000L * position) / waveFormat.AverageBytesPerSecond; var pv = PropVariant.FromLong(nsPosition); pReaderTh.SetCurrentPosition(Guid.Empty, ref pv); IsChangePosition = false; decoderOutputCount = 0; decoderOutputOffset = 0; } }