games-arcade/stepmania-3.9_rc3 fails to compile on ~x86 system. [ ..... ] if i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I. -I/usr/include/SDL - D_REENTRANT -finline-limit=300 -march=athlon-xp -O2 -pipe -fomit-frame- pointer -MT LightsDriver.o -MD -MP -MF ".deps/LightsDriver.Tpo" \ -c -o LightsDriver.o `test -f 'arch/Lights/LightsDriver.cpp' || echo './ '`arch/Lights/LightsDriver.cpp; \ then mv -f ".deps/LightsDriver.Tpo" ".deps/LightsDriver.Po"; \ else rm -f ".deps/LightsDriver.Tpo"; exit 1; \ fi 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 !!! ERROR: games-arcade/stepmania-3.9_rc3 failed. !!! Function src_compile, Line 52, Exitcode 2 !!! Make failed !!! If you need support, post the topmost build error, NOT this status message. drac@drac ~ $ CFLAGS="-march=athlon-xp -O2 -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CXXFLAGS="${CFLAGS}" MAKEOPTS="-j2" ACCEPT_KEYWORDS="~x86" [ebuild N ] games-arcade/stepmania-3.9_rc3 -debug +gtk +jpeg +mad +mpeg +vorbis 0 kB This has been replicated on another Gentoo x86 system. Same error. Reproducible: Always Steps to Reproduce: 1. emerge -av stepmania Actual Results: Fails to build. Expected Results: Builds.
I can confirm same error on ~x86 based system. It happens with both Stepmania-3.9_rc3 and recently released Stepmania-3.9_rc4. It happens with both FFmpeg ~x86 version from portage and CVS version form 06 October 2005. For me it seems that reverting to stable (ffmpeg-0.4.9_p20050226-r5) would do a trick (unconfirmed), but is there another solution for this as I would like to revert to taht version of FFmpeg becouse of new features that are in it now concerning video editing (improved x264 etc.). If there is anyone who solved it or found an solution for it I would appreciate it, as this game is really fun ;) Thanks Same error: if i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I. -I/usr/include/SDL -D_REENTRANT -finline-limit=300 -march=athlon -O3 -pipe -ffast-math -fomit-frame-pointer -MT LightsDriver.o -MD -MP -MF ".deps/LightsDriver.Tpo" \ -c -o LightsDriver.o `test -f 'arch/Lights/LightsDriver.cpp' || echo './'`arch/Lights/LightsDriver.cpp; \ then mv -f ".deps/LightsDriver.Tpo" ".deps/LightsDriver.Po"; \ else rm -f ".deps/LightsDriver.Tpo"; exit 1; \ fi 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 (...) 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_rc4/work/StepMania-3.9-rc4-src/src' make[1]: *** [all] Error 2 make[1]: Leaving directory `/var/tmp/portage/stepmania-3.9_rc4/work/StepMania-3.9-rc4-src/src' make: *** [all-recursive] Error 1 !!! ERROR: games-arcade/stepmania-3.9_rc4 failed. !!! Function src_compile, Line 53, Exitcode 2 !!! Make failed !!! If you need support, post the topmost build error, NOT this status message.
I also encountered this bug... I decided to try ryszard's suggestion of reverting ffmpeg to =media-video/ffmpeg-0.4.9_p20050226-r5 and stepmania does indeed compile with that version. While this is not a solution to the problem reverting ffmpeg is a valid workaround until the stepmania developers release a version of stepmania that implements the latest version of ffmpeg or Gentoo issues a patch to fix the bug.
Can you try out the ebuild in bug #109535 and see if it builds for you?
I tried out the 3.9 ebuild from bug #109535, and got the same error. ffmpeg-0.4.9_p20051120
Created attachment 75924 [details, diff] Patch for ffmpeg related code I dunno if this is the best place to post it, but I fussed around a bit and got StepMania compiling with the latest ffmpeg in Gentoo. Though the frame rate was messed up. Adjusting it to not use pts/dts from the stream seems to have fixed it and now everything seems to work. To apply the patch, get the source tarball for SM from SourceForge, then do something like the line below in the directory that the source gets unzipped into: patch src/arch/MovieTexture/MovieTexture_FFMpeg.cpp < ~/ffmpegfix.patch Then run ./configure and make as usual
I'm having the same issue: http://forums.gentoo.org/viewtopic-t-419549.html It's really getting annoying. My dad doesn't want me playing games on his PC so I had to install StepMania somewhere... So, could we get some help?
same error again here, use="-mpeg" solves temporarily too, not sure how much functionality is lost
How do I use that patch? also, why haven't the devs done anything about it? I think they would've by now, they usually respond much faster.
Okay, since Portage has new versions of FFMPEG and Stepmania 3.9 is out, how about a version bump? And we'll see how things go from here again..
Hah. Silly typing errors in my last post, but I hope you got the idea :-)
From http://www.stepmania.com/wiki/Notes_for_building_in_Linux , 3.9 and 4.0 CVS won't compile correctly with FFMpeg 0.4.9_p20050906, the default version currently for Gentoo ~x86. I'm guessing 3.9 releases will suffer the same problem, but I haven't tested. That url also includes patches.. but against ffmpeg, forcing user into single version of ffmpeg with stepmania patches. Not something I would do. Just remove ~x86 keyword from stepmania or maybe even in package.mask for time being.. Not to mention Stepmania in Portage is out of date.