Thanks for the input. Could you tell me which lines you noticed this on?

-Tyler

On Tue, Aug 25, 2009 at 2:01 PM, Jussi Toivola <[email protected]> wrote:

> Hi,
> not sure if this is related. GIL trouble anyway. Noticed this while I
> was tinkering with ffmpeg for Symbian. It's probably too slow on the
> phones, but I just want to see if I get it working... Anyway, there
> are several lines like this one:
> ...
>  if(threaded)
>        GRABGIL
> ...
>  if(threaded)
>        RELEASEGIL
> ...
>
> Might seem like nothing wrong, but once the preprocessor expands those
> macros:
>
> if(threaded)    // GRABGIL
>   PyEval_AcquireLock();
>   _oldtstate = PyThreadState_Swap(movie->_tstate);
>
> The PyThreadState_Swap is called even if 'threaded' is false, without
> acquiring the lock, causing a crash. I suggest always using curly
> braces with 'if' :) Hopefully this helps.
>
> ____________________
> Jussi Toivola
>
>
>
> 2009/8/22 Tyler Laing <[email protected]>:
> > "tstate mix-up". I've looked, and there are no Python calls done without
> > having the GIL. Like I said, its an extremely weird bug. It also occurs
> if
> > you do five play throughs(play(0)) sequentially.
> >
> > -Tyler
> >
> > On Fri, Aug 21, 2009 at 6:11 PM, Lenard Lindstrom <[email protected]>
> wrote:
> >>
> >> 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 <[email protected]
> >>> <mailto:[email protected]>> 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
> >>>        <[email protected] <mailto:[email protected]>
> >>>        <mailto:[email protected] <mailto:[email protected]>>> 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
> >>>               <[email protected] <mailto:[email protected]>
> >>>        <mailto:[email protected] <mailto:[email protected]>>
> >>>               <mailto:[email protected]
> >>>        <mailto:[email protected]> <mailto:[email protected]
> >>>        <mailto:[email protected]>>>> 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
> >>>               <[email protected] <mailto:[email protected]>
> >>>        <mailto:[email protected] <mailto:[email protected]>>
> >>>                  <mailto:[email protected] <mailto:[email protected]>
> >>>        <mailto:[email protected] <mailto:[email protected]>>>> 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
> >>>                          <[email protected] <mailto:[email protected]>
> >>>        <mailto:[email protected] <mailto:[email protected]>>
> >>>               <mailto:[email protected] <mailto:[email protected]>
> >>>        <mailto:[email protected] <mailto:[email protected]>>>
> >>>                          <mailto:[email protected]
> >>>        <mailto:[email protected]> <mailto:[email protected]
> >>>        <mailto:[email protected]>>
> >>>               <mailto:[email protected] <mailto:[email protected]>
> >>>        <mailto:[email protected] <mailto:[email protected]>>>>> 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
> >>>                                 <[email protected]
> >>>        <mailto:[email protected]> <mailto:[email protected]
> >>>        <mailto:[email protected]>>
> >>>               <mailto:[email protected] <mailto:[email protected]>
> >>>        <mailto:[email protected] <mailto:[email protected]>>>
> >>>                          <mailto:[email protected]
> >>>        <mailto:[email protected]> <mailto:[email protected]
> >>>        <mailto:[email protected]>>
> >>>               <mailto:[email protected] <mailto:[email protected]>
> >>>        <mailto:[email protected] <mailto:[email protected]>>>>
> >>>                                 <mailto:[email protected]
> >>>        <mailto:[email protected]>
> >>>               <mailto:[email protected] <mailto:[email protected]>>
> >>>        <mailto:[email protected] <mailto:[email protected]>
> >>>               <mailto:[email protected] <mailto:[email protected]>>>
> >>>                          <mailto:[email protected]
> >>>        <mailto:[email protected]> <mailto:[email protected]
> >>>        <mailto:[email protected]>>
> >>>               <mailto:[email protected] <mailto:[email protected]>
> >>>        <mailto:[email protected] <mailto:[email protected]>>>>>> 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<[email protected]
> >>>        <mailto:[email protected]>
> >>>               <mailto:[email protected] <mailto:[email protected]>>
> >>>                          <mailto:[email protected]
> >>>        <mailto:[email protected]> <mailto:[email protected]
> >>>        <mailto:[email protected]>>>
> >>>               <mailto:[email protected] <mailto:[email protected]>
> >>>        <mailto:[email protected] <mailto:[email protected]>>
> >>>                          <mailto:[email protected]
> >>>        <mailto:[email protected]> <mailto:[email protected]
> >>>        <mailto:[email protected]>>>>
> >>>                                 <mailto:[email protected]
> >>>        <mailto:[email protected]>
> >>>               <mailto:[email protected] <mailto:[email protected]>>
> >>>        <mailto:[email protected] <mailto:[email protected]>
> >>>               <mailto:[email protected] <mailto:[email protected]>>>
> >>>                          <mailto:[email protected]
> >>>        <mailto:[email protected]> <mailto:[email protected]
> >>>        <mailto:[email protected]>>
> >>>               <mailto:[email protected] <mailto:[email protected]>
> >>>        <mailto:[email protected] <mailto:[email protected]>>>>>> 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
> >>
> >
> >
> >
> > --
> > Visit my blog at http://oddco.ca/zeroth/zblog
> >
>



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

Reply via email to