Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 140943

Summary: stepmania-3.9_rc3 and stepmania-3.9 fail to build with ffmpeg-0.4.9_p20051216
Product: Gentoo Linux Reporter: Matt Mullins <mokomull>
Component: [OLD] GamesAssignee: Gentoo Games <games>
Status: RESOLVED DUPLICATE    
Severity: critical CC: mokomull
Priority: High    
Version: unspecified   
Hardware: x86   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Matt Mullins 2006-07-18 10:31:49 UTC
While emerging stepmania, it fails to build.  I believe this could be related to FFmpeg changing APIs, but I am not sure myself, as I have not tracked FFmpeg lately.  I have previously built stepmania successfully on another system, when I used ffmpeg-0.4.9_p20050226-r5.  That version is no longer available in portage, and ffmpeg-0.4.9_p20050226-r3 also fails to build, apparently because of a missing patch specified in its ebuild.  However, even with the version of stepmania I have been able to build on my other system, videos have never worked properly, which does not bother me (it actually aids gameplay, that "bug" ("feature"?)).

Steps to reproduce:
1) build ffmpeg-0.4.9_p20051216
2) build stepmania (either 3.9_rc3 or 3.9)

Actual results:
G++ fails with the following:
arch/MovieTexture/MovieTexture_FFMpeg.cpp: In member function `int FFMpeg_Helper::DecodePacket()':
arch/MovieTexture/MovieTexture_FFMpeg.cpp:331: error: cannot convert `avcodec::AVCodecContext**' to `avcodec::AVCodecContext*' for argument `1' to `int avcodec::avcodec_decode_video(avcodec::AVCodecContext*, avcodec::AVFrame*, int*, uint8_t*, int)'
arch/MovieTexture/MovieTexture_FFMpeg.cpp:363: error: request for member `frame_rate_base' in `((FFMpeg_Helper*)this)->FFMpeg_Helper::m_stream->avcodec::AVStream::codec', which is of non-class type `avcodec::AVCodecContext*'
arch/MovieTexture/MovieTexture_FFMpeg.cpp:363: error: request for member `frame_rate' in `((FFMpeg_Helper*)this)->FFMpeg_Helper::m_stream->avcodec::AVStream::codec', which is of non-class type `avcodec::AVCodecContext*'
arch/MovieTexture/MovieTexture_FFMpeg.cpp: In member function `void MovieTexture_FFMpeg::ConvertFrame()':
arch/MovieTexture/MovieTexture_FFMpeg.cpp:381: error: request for member `pix_fmt' in `((MovieTexture_FFMpeg*)this)->MovieTexture_FFMpeg::decoder->FFMpeg_Helper::m_stream->avcodec::AVStream::codec', which is of non-class type `avcodec::AVCodecContext*'
arch/MovieTexture/MovieTexture_FFMpeg.cpp:382: error: request for member `width' in `((MovieTexture_FFMpeg*)this)->MovieTexture_FFMpeg::decoder->FFMpeg_Helper::m_stream->avcodec::AVStream::codec', which is of non-class type `avcodec::AVCodecContext*'
arch/MovieTexture/MovieTexture_FFMpeg.cpp:382: error: request for member `height' in `((MovieTexture_FFMpeg*)this)->MovieTexture_FFMpeg::decoder->FFMpeg_Helper::m_stream->avcodec::AVStream::codec', which is of non-class type `avcodec::AVCodecContext*'
arch/MovieTexture/MovieTexture_FFMpeg.cpp: In function `avcodec::AVStream* FindVideoStream(avcodec::AVFormatContext*)':
arch/MovieTexture/MovieTexture_FFMpeg.cpp:392: error: request for member `codec_type' in `enc->avcodec::AVStream::codec', which is of non-class type `avcodec::AVCodecContext*'
arch/MovieTexture/MovieTexture_FFMpeg.cpp: In constructor `MovieTexture_FFMpeg::MovieTexture_FFMpeg(RageTextureID)':
arch/MovieTexture/MovieTexture_FFMpeg.cpp:421: error: request for member `bit_rate' in `((MovieTexture_FFMpeg*)this)->MovieTexture_FFMpeg::decoder->FFMpeg_Helper::m_stream->avcodec::AVStream::codec', which is of non-class type `avcodec::AVCodecContext*'
arch/MovieTexture/MovieTexture_FFMpeg.cpp:422: error: request for member `pix_fmt' in `((MovieTexture_FFMpeg*)this)->MovieTexture_FFMpeg::decoder->FFMpeg_Helper::m_stream->avcodec::AVStream::codec', which is of non-class type `avcodec::AVCodecContext*'
arch/MovieTexture/MovieTexture_FFMpeg.cpp: In member function `void MovieTexture_FFMpeg::CreateDecoder()':
arch/MovieTexture/MovieTexture_FFMpeg.cpp:576: error: request for member `codec_id' in `stream->avcodec::AVStream::codec', which is of non-class type `avcodec::AVCodecContext*'
arch/MovieTexture/MovieTexture_FFMpeg.cpp:577: error: request for member `codec_tag' in `stream->avcodec::AVStream::codec', which is of non-class type `avcodec::AVCodecContext*'
arch/MovieTexture/MovieTexture_FFMpeg.cpp:579: error: request for member `codec_id' in `stream->avcodec::AVStream::codec', which is of non-class type `avcodec::AVCodecContext*'
arch/MovieTexture/MovieTexture_FFMpeg.cpp:581: error: request for member `codec_id' in `stream->avcodec::AVStream::codec', which is of non-class type `avcodec::AVCodecContext*'
arch/MovieTexture/MovieTexture_FFMpeg.cpp:584: error: cannot convert `avcodec::AVCodecContext**' to `avcodec::AVCodecContext*' for argument `1' to `int avcodec::avcodec_open(avcodec::AVCodecContext*, avcodec::AVCodec*)'
arch/MovieTexture/MovieTexture_FFMpeg.cpp: In member function `void MovieTexture_FFMpeg::DestroyDecoder()':
arch/MovieTexture/MovieTexture_FFMpeg.cpp:599: error: cannot convert `avcodec::AVCodecContext**' to `avcodec::AVCodecContext*' for argument `1' to `int avcodec::avcodec_close(avcodec::AVCodecContext*)'
arch/MovieTexture/MovieTexture_FFMpeg.cpp: In member function `void MovieTexture_FFMpeg::CreateTexture()':
arch/MovieTexture/MovieTexture_FFMpeg.cpp:640: error: request for member `width' in `((MovieTexture_FFMpeg*)this)->MovieTexture_FFMpeg::decoder->FFMpeg_Helper::m_stream->avcodec::AVStream::codec', which is of non-class type `avcodec::AVCodecContext*'
arch/MovieTexture/MovieTexture_FFMpeg.cpp:641: error: request for member `height' in `((MovieTexture_FFMpeg*)this)->MovieTexture_FFMpeg::decoder->FFMpeg_Helper::m_stream->avcodec::AVStream::codec', which is of non-class type `avcodec::AVCodecContext*'
arch/MovieTexture/MovieTexture_FFMpeg.cpp: In member function `float MovieTexture_FFMpeg::CheckFrameTime()':
arch/MovieTexture/MovieTexture_FFMpeg.cpp:821: error: request for member `frame_number' in `((MovieTexture_FFMpeg*)this)->MovieTexture_FFMpeg::decoder->FFMpeg_Helper::m_stream->avcodec::AVStream::codec', which is of non-class type `avcodec::AVCodecContext*'
make[2]: *** [MovieTexture_FFMpeg.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/var/tmp/portage/stepmania-3.9_rc3/work/StepMania-3.9-rc3-src/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/var/tmp/portage/stepmania-3.9_rc3/work/StepMania-3.9-rc3-src/src'
make: *** [all-recursive] Error 1

Expected results:
Successful compile.

Note: I have been successful in alleviating the first of the compile errors (at line 331), but I became stuck trying to fix line 363, as it seems the frame_rate and frame_rate_base members have disappeared in recent versions of ffmpeg.

emerge --info: see attachment
Comment 1 Matt Mullins 2006-07-18 10:42:02 UTC
I accidentally hit the sumbit button twice, because I thought my internet dropped.

*** This bug has been marked as a duplicate of 140944 ***