> 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 <
jtoivola@xxxxxxxxx> 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 <
trinioler@xxxxxxxxx>:
>> > "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 <
len-l@xxxxxxxxx>
>> > 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 <
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
>> >>
>> >
>> >
>> >
>> > --
>> > Visit my blog at
http://oddco.ca/zeroth/zblog
>> >
>
>
>
> --
> Visit my blog at
http://oddco.ca/zeroth/zblog
>