/*
mpeg.c
SDL Example
Play an MPEG
Bill Kendrick
1/2000
*/
#include <stdio.h>
#include <stdlib.h>
#include <SDL/SDL.h>
#include <smpeg/smpeg.h>
/* Callback for MPEG library: */
void update(SDL_Surface * screen,
Sint32 x, Sint32 y,
Uint32 w, Uint32 h)
{
SDL_UpdateRect(screen,
x, y, w, h);
}
/* --- MAIN --- */
int main(int argc, char * argv[])
{
SDL_Surface * screen;
SMPEG *mpeg;
SMPEG_Info info;
/* Init SDL: */
SDL_Init(SDL_INIT_VIDEO |
SDL_INIT_AUDIO);
/* Load the MPEG: */
mpeg = SMPEG_new("video.mpg",
&info, 1);
/* Does it have any video? */
if (info.has_video)
{
/* Open display: */
screen =
SDL_SetVideoMode(info.width,
info.height,
0, 0);
/* Set callback: */
SMPEG_setdisplay(mpeg, screen,
NULL, update);
}
/* Play it: */
SMPEG_play(mpeg);
/* Wait for it to finish: */
do
{
SDL_Delay(250);
}
while (!SDL_QuitRequested() &&
SMPEG_status(mpeg) ==
SMPEG_PLAYING);
/* Close up and quit: */
SMPEG_delete(mpeg);
SDL_Quit();
return(0);
}