mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-06-18 15:15:45 -04:00
Initial community commit
This commit is contained in:
71
Src/replicant/nsmp3dec/mpegbitstream.h
Normal file
71
Src/replicant/nsmp3dec/mpegbitstream.h
Normal file
@ -0,0 +1,71 @@
|
||||
/***************************************************************************\
|
||||
*
|
||||
* MPEG Layer3-Audio Decoder
|
||||
* <20> 1997-2006 by Fraunhofer IIS
|
||||
* All Rights Reserved
|
||||
*
|
||||
* filename: mpegbitstream.h
|
||||
* project : MPEG Decoder
|
||||
* author : Martin Sieler
|
||||
* date : 1997-12-05
|
||||
* contents/description: MPEG bitstream - HEADER
|
||||
*
|
||||
*
|
||||
\***************************************************************************/
|
||||
|
||||
/*
|
||||
* $Date: 2010/11/17 20:46:04 $
|
||||
* $Id: mpegbitstream.h,v 1.1 2010/11/17 20:46:04 audiodsp Exp $
|
||||
*/
|
||||
|
||||
#ifndef __MPEGBITSTREAM_H__
|
||||
#define __MPEGBITSTREAM_H__
|
||||
|
||||
/* ------------------------ includes --------------------------------------*/
|
||||
|
||||
#include "bitstream.h"
|
||||
#include "mpegheader.h"
|
||||
#include "mp3sscdef.h"
|
||||
|
||||
/*-------------------------- defines --------------------------------------*/
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
//
|
||||
// MPEG bitstream class.
|
||||
//
|
||||
// This object is derived from CBitStream. In addition to CBitStream
|
||||
// this object is able to sync to the next ISO/MPEG header position.
|
||||
//
|
||||
|
||||
class CMpegBitStream : public CBitStream
|
||||
{
|
||||
public:
|
||||
CMpegBitStream(int cbSize);
|
||||
CMpegBitStream(unsigned char *pBuf, int cbSize, bool fDataValid = false);
|
||||
virtual ~CMpegBitStream();
|
||||
|
||||
virtual void Reset();
|
||||
|
||||
SSC DoSync();
|
||||
int GetSyncPosition() const { return m_SyncPosition; }
|
||||
const CMpegHeader *GetHdr() const { return &m_Hdr; }
|
||||
|
||||
protected:
|
||||
|
||||
private:
|
||||
|
||||
SSC DoSyncInitial();
|
||||
SSC DoSyncContinue();
|
||||
|
||||
enum { FRAMES_TO_CHECK = 10 };
|
||||
|
||||
CMpegHeader m_Hdr; // mpeg header
|
||||
unsigned long m_FirstHdr; // "relevant" bits of first good header
|
||||
unsigned long m_nFramesToCheck; // # frames to be checked for next mpeg header
|
||||
int m_SyncPosition; // offset of first sync in bits
|
||||
SSC m_SyncState; // last sync state
|
||||
};
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
#endif
|
Reference in New Issue
Block a user