Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 107818 - stepmania-3.9_rc3 fails to compile, ffmpeg errors.
Summary: stepmania-3.9_rc3 fails to compile, ffmpeg errors.
Status: RESOLVED UPSTREAM
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Games (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Warp Zero (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-10-01 14:03 UTC by Samuli Suominen (RETIRED)
Modified: 2006-04-25 06:48 UTC (History)
6 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Patch for ffmpeg related code (ffmpegfix.patch,4.62 KB, patch)
2006-01-01 10:26 UTC, Ted Schundler
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Samuli Suominen (RETIRED) gentoo-dev 2005-10-01 14:03:51 UTC
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.
Comment 1 Wojciech Myrda 2005-10-08 01:58:46 UTC
   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.
Comment 2 Kari Hazzard 2005-11-12 11:28:46 UTC
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.
Comment 3 Chris Gianelloni (RETIRED) gentoo-dev 2005-11-21 18:17:46 UTC
Can you try out the ebuild in bug #109535 and see if it builds for you?
Comment 4 Sterling Christensen 2005-12-02 17:44:22 UTC
I tried out the 3.9 ebuild from bug #109535, and got the same error.

ffmpeg-0.4.9_p20051120
Comment 5 Ted Schundler 2006-01-01 10:26:01 UTC
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
Comment 6 Charles Christie 2006-01-04 20:38:13 UTC
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?
Comment 7 Jonas Bergler 2006-01-10 22:58:26 UTC
same error again here, use="-mpeg" solves temporarily too, not sure how much functionality is lost
Comment 8 Charles Christie 2006-01-18 16:03:22 UTC
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.
Comment 9 Samuli Suominen (RETIRED) gentoo-dev 2006-03-08 07:03:44 UTC
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..
Comment 10 Samuli Suominen (RETIRED) gentoo-dev 2006-03-08 07:04:41 UTC
Hah. Silly typing errors in my last post, but I hope you got the idea :-)
Comment 11 Samuli Suominen (RETIRED) gentoo-dev 2006-04-25 06:48:58 UTC
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.