⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mpeg.h

📁 This code is based on mpeg_play, available from: http://bmrc.berkeley.edu/frame/research/mpeg/
💻 H
字号:
/*    SMPEG - SDL MPEG Player Library    Copyright (C) 1999  Loki Entertainment Software        - Modified by Michel Darricau from eProcess <mdarricau@eprocess.fr>  for popcorn -    This library is free software; you can redistribute it and/or    modify it under the terms of the GNU Library General Public    License as published by the Free Software Foundation; either    version 2 of the License, or (at your option) any later version.    This library is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU    Library General Public License for more details.    You should have received a copy of the GNU Library General Public    License along with this library; if not, write to the Free    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.*//* A class used to parse and play MPEG streams */#ifndef _MPEG_H_#define _MPEG_H_#include <stdlib.h>#include <stdio.h>#include <string.h>#include "SDL.h"#include "MPEGerror.h"#include "MPEGstream.h"#include "MPEGaction.h"#include "MPEGaudio.h"#include "MPEGvideo.h"#include "MPEGsystem.h"#include "MPEGfilter.h"#define LENGTH_TO_CHECK_FOR_SYSTEM 0x50000	// Added by HanishKVC/* The main MPEG class - parses system streams and creates other streams A few design notes:   Making this derived from MPEGstream allows us to do system stream   parsing.  We create an additional MPEG object for each type of    stream in the MPEG file because each needs a separate pointer to   the MPEG data.  The MPEG stream then creates an accessor object to   do all the data parsing for that stream type.  It's a little odd,   but seemed like the best way to implement stream parsing. */class MPEG : public MPEGerror{public:		/* Michel Darricau from eProcess <mdarricau@eprocess.fr>  need for override in popcorn */    MPEG():MPEGerror(){}	MPEG(bool Sdlaudio, char *addresse,char *asset,long buffersize){}    MPEG(const char * name, bool SDLaudio = true);    MPEG(int Mpeg_FD, bool SDLaudio = true);    MPEG(void *data, int size, bool SDLaudio = true);    MPEG(SDL_RWops *mpeg_source,bool SDLaudio = true);    virtual ~MPEG();    /* Initialize the MPEG */    void Init(SDL_RWops *mpeg_source, bool SDLaudio);    void InitErrorState();    /* Enable/Disable audio and video */    bool AudioEnabled(void);    void EnableAudio(bool enabled);    bool VideoEnabled(void);    void EnableVideo(bool enabled);    /* MPEG actions */    void Loop(bool toggle);		/* Michel Darricau from eProcess <mdarricau@eprocess.fr>  need for override in popcorn */    virtual void Play(void);    void Stop(void);    void Rewind(void);		/* Michel Darricau from eProcess <mdarricau@eprocess.fr>  need for override in popcorn */    virtual void Pause(void);    virtual void Seek(int bytes);    void Skip(float seconds);		/* Michel Darricau from eProcess <mdarricau@eprocess.fr>  need for override in popcorn */    MPEGstatus GetStatus(void);    void GetSystemInfo(MPEG_SystemInfo *info);    /* MPEG audio actions */    bool GetAudioInfo(MPEG_AudioInfo *info);    void Volume(int vol);    bool WantedSpec(SDL_AudioSpec *wanted);    void ActualSpec(const SDL_AudioSpec *actual);    MPEGaudio *GetAudio(void);    /* MPEG video actions */    bool GetVideoInfo(MPEG_VideoInfo *info);    bool SetDisplay(SDL_Surface *dst, SDL_mutex *lock,		                 MPEG_DisplayCallback callback);    void MoveDisplay(int x, int y);    void ScaleDisplayXY(int w, int h);    void SetDisplayRegion(int x, int y, int w, int h);    void RenderFrame(int frame);    void RenderFinal(SDL_Surface *dst, int x, int y);    SMPEG_Filter * Filter(SMPEG_Filter * filter);public:    /* We need to have separate audio and video streams */    MPEGstream * audiostream;    MPEGstream * videostream;    MPEGsystem * system;protected:    char *mpeg_mem;       // Used to copy MPEG passed in as memory    SDL_RWops *source;    MPEGaudioaction *audioaction;    MPEGvideoaction *videoaction;    MPEGaudio *audio;    MPEGvideo *video;    bool audioaction_enabled;    bool videoaction_enabled;    bool sdlaudio;    bool loop;    bool pause;    void parse_stream_list();    bool seekIntoStream(int position);};#endif /* _MPEG_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -