[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Re: Movie module being merged



Hi,

Is it always a "tstate mix-up". If so, then it is likely a threading problem. Absolutely no Python api calls should be made while the GIL is released. If not then probably a memory problem.

Lenard

Tyler Laing wrote:
Yeah I know about that. Its because of everything that is done to the video file in the example code. Its a very hard error to pindown. Sometimes it happens during debugging, sometimes not. It happens on various kinds of videos, so its not format dependent, and it only happens after stopping and restarting, and adding surfaces. I haven't found it happening any other way.

Thanks for the feedback.

-Tyler

On Thu, Aug 20, 2009 at 2:05 PM, Lenard Lindstrom <len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>> wrote:

    Hi,

    It builds and installs in Debian lenny now. The __movie_test.py
    even works for the most part, though fails at the end with this error:

    Unpausing...
    True
    True
    Stopping..., sleeping for 3 seconds
    Playing again...
    done restart play...
    Surface time...
    ValueError: surface does not have the same aspect ratio as the
    video. This would cause surface corruption.
    Fatal Python error: ceval: tstate mix-up
    Aborted

    I was playing an .flv file, so maybe that had something to do with it.

    Lenard

    Tyler Laing wrote:

        Fixed that, sorry. I should have done an else, but I did an
        endif >.>

        -Tyler

        On Thu, Aug 20, 2009 at 1:09 PM, Lenard Lindstrom
        <len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>
        <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>> wrote:

           Hi Tyler,

           It is finding the headers, but now I am getting this
        compiler error:

           gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall
           -Wstrict-prototypes -fPIC -D_REENTRANT -I/usr/X11R6/include
           -I/usr/include/SDL -I/usr/include/ffmpeg -I/usr/include/ffmpeg
           -I/usr/include/SDL -I/usr/include/python2.5 -c src/_gmovie.c -o
           build/temp.linux-i686-2.5/src/_gmovie.o

           src/_gmovie.c: In function ‘video_image_display’:
           src/_gmovie.c:516: warning: unused variable ‘_oldtstate’
           src/_gmovie.c: In function ‘queue_picture’:
           src/_gmovie.c:826: warning: unused variable ‘_oldtstate’
           src/_gmovie.c: In function ‘stream_open’:
           src/_gmovie.c:1482: warning: unused variable
        ‘wanted_subti_stream’

           src/_gmovie.c: In function ‘video_render’:
           src/_gmovie.c:2444: error: ‘AVCodecContext’ has no member named
           ‘reordered_opaque’

           error: command 'gcc' failed with exit status 1
           l

           Here is the version information returned by ffmpeg:

           $/usr/bin/ffmpeg
           FFmpeg version r11872+debian_0.svn20080206-17+lenny1, Copyright
           (c) 2000-2008 Fabrice Bellard, et al.
            configuration: --enable-gpl --enable-libfaad --enable-pp
           --enable-swscaler --enable-x11grab --prefix=/usr
        --enable-libgsm
           --enable-libtheora --enable-libvorbis --enable-pthreads
           --disable-strip --enable-libdc1394 --disable-armv5te
           --disable-armv6 --disable-altivec --disable-vis --enable-shared
           --disable-static
            libavutil version: 49.6.0
            libavcodec version: 51.50.0
            libavformat version: 52.7.0
            libavdevice version: 52.0.0
            built on Apr 28 2009 02:12:01, gcc: 4.3.2

           Though ffmpeg is statically linked I assume it use the same
           library versions as the share libraries.

           Lenard

           Tyler Laing wrote:

               And I've now committed a fix for throwing exceptions if the
               surface given has the wrong aspect ratio.

               -Tyler

               On Thu, Aug 20, 2009 at 9:46 AM, Tyler Laing
               <trinioler@xxxxxxxxx <mailto:trinioler@xxxxxxxxx>
        <mailto:trinioler@xxxxxxxxx <mailto:trinioler@xxxxxxxxx>>
               <mailto:trinioler@xxxxxxxxx
        <mailto:trinioler@xxxxxxxxx> <mailto:trinioler@xxxxxxxxx
        <mailto:trinioler@xxxxxxxxx>>>> wrote:

                  I have this fixed, with it committed in revision
        2628. I have a
                  custom Dependency class that adds extra directories
        to the
               include
                  search path(like libavformat or ffmpeg). This
        prevents any
                  accidental conflict of namespaces. Let me know if this
               works or not.

                  -Tyler


                  On Tue, Aug 18, 2009 at 5:17 PM, Lenard Lindstrom
               <len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>
        <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>
                  <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>
        <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>>> wrote:

                      Hi,

                      No, I don't see any Debian specific predefined
        compiler
                      macros. ffmpeg library information is available
        through
                      pkg-config.

                      Lenard

                      Tyler Laing wrote:

                          Does debian have a unique compile time flag
        I can use?

                          -Tyler

                          On Tue, Aug 18, 2009 at 12:09 PM, Lenard
        Lindstrom
                          <len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>
        <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>
               <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>
        <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>>
                          <mailto:len-l@xxxxxxxxx
        <mailto:len-l@xxxxxxxxx> <mailto:len-l@xxxxxxxxx
        <mailto:len-l@xxxxxxxxx>>
               <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>
        <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>>>> wrote:

                             Hi Tyler,

                             /usr/include is included in the default
        header
               search
                          paths. What
                             is installed is
        /usr/include/ffmpeg/avformat.h, not
/usr/include/ffmpeg/libavformat/avformat.h. This
               may be
                          a quirk of
                             the Debian dev package and not the
        general case.

                             Lenard

                             Tyler Laing wrote:

                                 You don't have -l/usr/include
        actually. What
               I will
                          do is add
                                 to the directories searched, for the
        specific
                          libraries to
                                 search in /usr/include/ffmpeg &&
               /usr/include/<relevant
                                 library name> for if people install
        from source.
                          Does that
                                 sound like a good solution?

                                 -Tyler

                                 On Tue, Aug 18, 2009 at 9:03 AM, Lenard
               Lindstrom
                                 <len-l@xxxxxxxxx
        <mailto:len-l@xxxxxxxxx> <mailto:len-l@xxxxxxxxx
        <mailto:len-l@xxxxxxxxx>>
               <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>
        <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>>
                          <mailto:len-l@xxxxxxxxx
        <mailto:len-l@xxxxxxxxx> <mailto:len-l@xxxxxxxxx
        <mailto:len-l@xxxxxxxxx>>
               <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>
        <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>>>
                                 <mailto:len-l@xxxxxxxxx
        <mailto:len-l@xxxxxxxxx>
               <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>
        <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>
               <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>>
                          <mailto:len-l@xxxxxxxxx
        <mailto:len-l@xxxxxxxxx> <mailto:len-l@xxxxxxxxx
        <mailto:len-l@xxxxxxxxx>>
               <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>
        <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>>>>> wrote:

                                    Ok, when I add

                                    _movie src/_gsound.c src/_gmovie.c
                          src/_gcommand.c src/gmovie.c
                                    $(SDL) $(AVFORMAT) $(SWSCALE) $(MIXER)
               $(DEBUG)

                                    to Setup I get these build errors:


                                    building 'pygame._movie' extension
                                    gcc -pthread -fno-strict-aliasing
        -DNDEBUG -g
                          -fwrapv -O2 -Wall
                                    -Wstrict-prototypes -fPIC -D_REENTRANT
                          -I/usr/X11R6/include
                                    -I/usr/include/SDL -I/usr/include/SDL
                                 -I/usr/include/python2.5 -c
                                    src/_gsound.c -o
                          build/temp.linux-i686-2.5/src/_gsound.o
                                    In file included from
        src/_gsound.c:35:
                                    src/_gsound.h:36:34: error:
                          libavformat/avformat.h: No such
                                 file
                                    or directory
                                    src/_gsound.c: In function
        ‘seekBuffer’:
                                    src/_gsound.c:403: error:
        ‘AV_NOPTS_VALUE’
                          undeclared
                                 (first use
                                    in this function)
                                    src/_gsound.c:403: error: (Each
        undeclared
                          identifier is
                                 reported
                                    only once
                                    src/_gsound.c:403: error: for each
               function it
                          appears in.)
                                    error: command 'gcc' failed with exit
               status 1

                                    The Debian dev package installs
        avformat.h in
                          ffmpeg, not
                                 libavformat.

                                    Lenard


                                    Lenard Lindstrom wrote:

                                        Hi René,

                                        My mistake. I didn't pay
        attention to
               the error.
                                 _movie.so was
                                        not event built since the
        _movie entry is
                          missing in
                                 Setup.in.
                                        I had to manually enter it to
        Setup
               the last
                          time, and that
                                        was clobbered when I reran
        config.py.

                                        Lenard


                                        René Dudfield wrote:

                                            On Tue, Aug 18, 2009 at
        4:47 PM,
               Lenard
                                            Lindstrom<len-l@xxxxxxxxx
        <mailto:len-l@xxxxxxxxx>
               <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>
                          <mailto:len-l@xxxxxxxxx
        <mailto:len-l@xxxxxxxxx> <mailto:len-l@xxxxxxxxx
        <mailto:len-l@xxxxxxxxx>>>
               <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>
        <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>
                          <mailto:len-l@xxxxxxxxx
        <mailto:len-l@xxxxxxxxx> <mailto:len-l@xxxxxxxxx
        <mailto:len-l@xxxxxxxxx>>>>
                                 <mailto:len-l@xxxxxxxxx
        <mailto:len-l@xxxxxxxxx>
               <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>
        <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>
               <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>>
                          <mailto:len-l@xxxxxxxxx
        <mailto:len-l@xxxxxxxxx> <mailto:len-l@xxxxxxxxx
        <mailto:len-l@xxxxxxxxx>>
               <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>
        <mailto:len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>>>>>> wrote:

                                                Hi Tyler,

                                                The module now builds,
        but the
                          _movie_test.py unit
                                                tests fail:

                                                ERROR:
        MovieTypeTest.test_height
----------------------------------------------------------------------
                                                Traceback (most recent
        call
               last):
                                                File
"/home/lenard/.local/lib/python2.5/site-packages/pygame/tests/_movie_test.py",

                                                line 125, in test_height
                                                movie =
        gmovie.Movie(movie_file)
                                                AttributeError: 'NoneType'
               object has no
                                 attribute 'Movie'

                                                If "movie_file" is missing
               shouldn't
                          gmovie.Movie
                                                raise an exception?

                                                Lenard


                                            hi,

                                            check out the try/except
        at the
               top of
                          that test...
                                 maybe
                                            it is
                                            raising an exception, and
               catching it.

                                            that try/except was added
        to try
               and get
                          the build
                                 bot to
                                            build again.

                                            cheers,






                                 --        Visit my blog at
               http://oddco.ca/zeroth/zblog





                          --            Visit my blog at
               http://oddco.ca/zeroth/zblog






                  --    Visit my blog at http://oddco.ca/zeroth/zblog




               --        Visit my blog at http://oddco.ca/zeroth/zblog





-- Visit my blog at http://oddco.ca/zeroth/zblog





--
Visit my blog at http://oddco.ca/zeroth/zblog