/*
#     ___  _ _      ___
#    |    | | |    |
# ___|    |   | ___|    PS2DEV Open Source Project.
#----------------------------------------------------------
# (c) 2006-2007 Eugene Plotnikov <e-plotnikov@operamail.com>
# Licenced under Academic Free License version 2.0
# Review ps2sdk README & LICENSE files for further details.
# Based on refernce software of MSSG
#
*/
#ifndef __libmpeg_H
# define __libmpeg_H

# define MPEG_CHROMA_FORMAT_420 1
# define MPEG_CHROMA_FORMAT_422 2
# define MPEG_CHROMA_FORMAT_444 3

# define MPEG_PROFILE_422        133
# define MPEG_PROFILE_SIMPLE       5
# define MPEG_PROFILE_MAIN_        4
# define MPEG_PROFILE_SNR_SCALABLE 3
# define MPEG_PROFILE_SPT_SCALABLE 2
# define MPEG_PROFILE_HIGH         1

# define MPEG_LEVEL_MAIN      8
# define MPEG_LEVEL_LOW      12
# define MPEG_LEVEL_HIGH1440  6
# define MPEG_LEVEL_HIGH      4

# define MPEG_VIDEO_FORMAT_COMPONENT 0
# define MPEG_VIDEO_FORMAT_PAL       1
# define MPEG_VIDEO_FORMAT_NTSC      2
# define MPEG_VIDEO_FORMAT_SECAM     3
# define MPEG_VIDEO_FORMAT_MAC       4
# define MPEG_VIDEO_FORMAT_UNSPEC    5

# define MPEG_RESET_TIME    0x00000004
# define MPEG_RESET_RECOVER 0x00000008

typedef struct MPEGSequenceInfo {

 int m_Width;
 int m_Height;
 int m_FrameCnt;
 int m_Profile;
 int m_Level;
 int m_ChromaFmt;
 int m_VideoFmt;
 int m_fEOF;
 int m_MSPerFrame;

} MPEGSequenceInfo;

# ifdef __cplusplus
extern "C" {
# endif  /* __cplusplus */

void MPEG_Initialize (  int ( * ) ( void* ), void*, void* ( * ) ( void*, MPEGSequenceInfo* ), void*, long*  );
void MPEG_Destroy    ( void );
void MPEG_Reset      ( int  );
int  ( *MPEG_Picture ) ( void*, long* );

# ifdef __cplusplus
}
# endif  /* __cplusplus */
#endif  /* __libmpeg_H */
