/// <summary> /// buffers a frame into mpg123. /// </summary> void BufferFrame() { for (int i = 0; i < 1;) { AudioFrame frame = m_Source.GetNextFrame(); if (frame == null) { break; } Decoding?.Invoke(this, new AudioFrameEventArgs(frame)); if (frame.IsAudio) { m_DecodeFifoBuffer.Enqueue(frame.Data); i++; } } }
/// <summary>Reads the next audio frame and silently skips garbage and invalid frames.</summary> /// <returns></returns> MP3AudioFrame ReadNextAudioFrame() { MP3AudioFrame l_MP3Frame = null; while (l_MP3Frame == null) { AudioFrame frame = m_Source.GetNextFrame(); // eof ? if (frame == null) { return(null); } OnDecoding(frame); l_MP3Frame = frame as MP3AudioFrame; } return(l_MP3Frame); }