diff -ru StepMania-3.9-src/src/arch/MovieTexture/MovieTexture_FFMpeg.cpp StepMania-3.9-src+pasky/src/arch/MovieTexture/MovieTexture_FFMpeg.cpp
--- StepMania-3.9-src/src/arch/MovieTexture/MovieTexture_FFMpeg.cpp	2005-10-17 04:25:55.000000000 +0200
+++ StepMania-3.9-src+pasky/src/arch/MovieTexture/MovieTexture_FFMpeg.cpp	2007-08-07 00:24:27.000000000 +0200
@@ -1,3 +1,4 @@
+#define INT64_C(x) x ## LL
 #include "global.h"
 #include "MovieTexture_FFMpeg.h"
 
@@ -326,7 +327,7 @@
 		 * to give it a buffer to read from since it tries to read anyway. */
 		static uint8_t dummy[FF_INPUT_BUFFER_PADDING_SIZE] = { 0 };
 		int len = avcodec::avcodec_decode_video(
-				&m_stream->codec, 
+				m_stream->codec, 
 				&frame, &got_frame,
 				pkt.size? pkt.data:dummy, pkt.size );
 		CHECKPOINT;
@@ -360,7 +361,7 @@
 		}
 
 		/* Length of this frame: */
-		LastFrameDelay = (float)m_stream->codec.frame_rate_base / m_stream->codec.frame_rate;
+		LastFrameDelay = (float)m_stream->codec->time_base.num / m_stream->codec->time_base.den;
 		LastFrameDelay += frame.repeat_pict * (LastFrameDelay * 0.5f);
 
 		return 1;
@@ -378,8 +379,8 @@
 	pict.linesize[0] = m_img->pitch;
 
 	avcodec::img_convert(&pict, AVPixelFormats[m_AVTexfmt].pf,
-			(avcodec::AVPicture *) &decoder->frame, decoder->m_stream->codec.pix_fmt, 
-			decoder->m_stream->codec.width, decoder->m_stream->codec.height);
+			(avcodec::AVPicture *) &decoder->frame, decoder->m_stream->codec->pix_fmt, 
+			decoder->m_stream->codec->width, decoder->m_stream->codec->height);
 
 	m_ImageWaiting = FRAME_WAITING;
 }
@@ -389,7 +390,7 @@
     for( int stream = 0; stream < m_fctx->nb_streams; ++stream )
 	{
 		avcodec::AVStream *enc = m_fctx->streams[stream];
-        if( enc->codec.codec_type == avcodec::CODEC_TYPE_VIDEO )
+        if( enc->codec->codec_type == avcodec::CODEC_TYPE_VIDEO )
 			return enc;
 	}
 	return NULL;
@@ -418,8 +419,8 @@
 	m_bThreaded = PREFSMAN->m_bThreadedMovieDecode;
 
 	CreateDecoder();
-	LOG->Trace("Bitrate: %i", decoder->m_stream->codec.bit_rate );
-	LOG->Trace("Codec pixel format: %s", avcodec::avcodec_get_pix_fmt_name(decoder->m_stream->codec.pix_fmt) );
+	LOG->Trace("Bitrate: %i", decoder->m_stream->codec->bit_rate );
+	LOG->Trace("Codec pixel format: %s", avcodec::avcodec_get_pix_fmt_name(decoder->m_stream->codec->pix_fmt) );
 
 	/* Decode one frame, to guarantee that the texture is drawn when this function returns. */
 	int ret = decoder->GetFrame();
@@ -484,7 +485,7 @@
 	{
 	case AVERROR_IO:			Error = "I/O error"; break;
 	case AVERROR_NUMEXPECTED:	Error = "number syntax expected in filename"; break;
-	case AVERROR_INVALIDDATA:	Error = "invalid data found"; break;
+	//case AVERROR_INVALIDDATA:	Error = "invalid data found"; break;
 	case AVERROR_NOMEM:			Error = "not enough memory"; break;
 	case AVERROR_NOFMT:			Error = "unknown format"; break;
 	case AVERROR_UNKNOWN:		Error = "unknown error"; break;
@@ -573,15 +574,15 @@
 	if ( stream == NULL )
 		RageException::Throw( "AVCodec (%s): Couldn't find any video streams", GetID().filename.c_str() );
 
-	if( stream->codec.codec_id == avcodec::CODEC_ID_NONE )
-		RageException::ThrowNonfatal( "AVCodec (%s): Unsupported codec %08x", GetID().filename.c_str(), stream->codec.codec_tag );
+	if( stream->codec->codec_id == avcodec::CODEC_ID_NONE )
+		RageException::ThrowNonfatal( "AVCodec (%s): Unsupported codec %08x", GetID().filename.c_str(), stream->codec->codec_tag );
 
-	avcodec::AVCodec *codec = avcodec::avcodec_find_decoder( stream->codec.codec_id );
+	avcodec::AVCodec *codec = avcodec::avcodec_find_decoder( stream->codec->codec_id );
 	if( codec == NULL )
-		RageException::Throw( "AVCodec (%s): Couldn't find decoder %i", GetID().filename.c_str(), stream->codec.codec_id );
+		RageException::Throw( "AVCodec (%s): Couldn't find decoder %i", GetID().filename.c_str(), stream->codec->codec_id );
 
 	LOG->Trace("Opening codec %s", codec->name );
-	ret = avcodec::avcodec_open( &stream->codec, codec );
+	ret = avcodec::avcodec_open( stream->codec, codec );
 	if ( ret < 0 )
 		RageException::Throw( averr_ssprintf(ret, "AVCodec (%s): Couldn't open codec \"%s\"", GetID().filename.c_str(), codec->name) );
 
@@ -596,7 +597,7 @@
 {
 	if( decoder->m_stream )
 	{
-		avcodec::avcodec_close( &decoder->m_stream->codec );
+		avcodec::avcodec_close( decoder->m_stream->codec );
 		decoder->m_stream = NULL;
 	}
 
@@ -637,8 +638,8 @@
 	/* Cap the max texture size to the hardware max. */
 	actualID.iMaxSize = min( actualID.iMaxSize, DISPLAY->GetMaxTextureSize() );
 
-	m_iSourceWidth  = decoder->m_stream->codec.width;
-	m_iSourceHeight = decoder->m_stream->codec.height;
+	m_iSourceWidth  = decoder->m_stream->codec->width;
+	m_iSourceHeight = decoder->m_stream->codec->height;
 
 	/* image size cannot exceed max size */
 	m_iImageWidth = min( m_iSourceWidth, actualID.iMaxSize );
@@ -818,7 +819,7 @@
 		m_FrameSkipMode = true;
 	}
 
-	if( m_FrameSkipMode && decoder->m_stream->codec.frame_number % 2 )
+	if( m_FrameSkipMode && decoder->m_stream->codec->frame_number % 2 )
 		return -1; /* skip */
 	
 	return 0;
