Rene: Why'd you change the version check and why did you change it like this?
/* #if (MIX_MAJOR_VERSION*100*100 + MIX_MINOR_VERSION*100 + MIX_PATCHLEVEL) > 010207 */ #if MIX_MAJOR_VERSION>=1 && MIX_MINOR_VERSION>=2 && MIX_PATCHLEVEL>=8 What is going to happen when SDL_mixer 1.3.0 comes out? On Tue, Jul 15, 2008 at 12:35 AM, Brian Fisher <[EMAIL PROTECTED]> wrote: > sweet, you rock. > > > On Mon, Jul 14, 2008 at 9:27 PM, Forrest Voight <[EMAIL PROTECTED]> wrote: >> >> I submitted a patch to SDL_mixer to fix the mp3 problem. >> >> On Sat, Jul 12, 2008 at 7:29 PM, René Dudfield <[EMAIL PROTECTED]> wrote: >> > hi, >> > >> > I changed the version check to 1.2.9 instead... since support is in >> > sdl_mixer svn is getting better. >> > >> > The tests are disabled for loading from file-likes -- so all tests >> > pass again (at least they do here). >> > >> > cheers, >> > >> > >> > >> > On Sun, Jul 13, 2008 at 6:58 AM, Forrest Voight <[EMAIL PROTECTED]> >> > wrote: >> >> I'm also able to play FLAC audio. >> >> >> >> I think the problem is that SDL_mixer detects MP3 files through the >> >> first and second bytes (the first is '\xff'), and files with ID3 tags >> >> have a special header first, so SDL_mixer defaults to mikmod decoding, >> >> which determines it is invalid. >> >> >> >> So, some MP3 files work and some don't. I was able to find an MP3 file >> >> without tags and it worked. This is an SDL_mixer bug. >> >> >> >> On Sat, Jul 12, 2008 at 4:44 PM, Forrest Voight <[EMAIL PROTECTED]> >> >> wrote: >> >>> Using SDL_mixer SVN, I'm able to load & play WAV and OGG. >> >>> >> >>> MP3 gives me the 'Module format not recognized' error. I'm looking >> >>> into that now... >> >>> >> >>> On Sat, Jul 12, 2008 at 3:58 PM, Brian Fisher >> >>> <[EMAIL PROTECTED]> wrote: >> >>>> My automated build machines both use 1.2.8, and they both fail to >> >>>> load mp3 >> >>>> (what the test is currently trying) >> >>>> >> >>>> so it seems that 1.2.8 doesn't support MP3. This post seems to >> >>>> indicate that >> >>>> OGG and MOD should be supported: >> >>>> >> >>>> http://listas.apesol.org/pipermail/sdl-libsdl.org/2007-December/063633.html >> >>>> I tried OGG on my Mac though, and it just seemed to hang :( I don't >> >>>> have a >> >>>> mod file to try at the moment. >> >>>> >> >>>> So Forrest, what formats were you able to load when you were testing >> >>>> the >> >>>> patch? >> >>>> >> >>>> >> >>>> On Sat, Jul 12, 2008 at 12:13 PM, Forrest Voight <[EMAIL PROTECTED]> >> >>>> wrote: >> >>>>> >> >>>>> Rene: what version of SDL_mixer are you using? >> >>>>> >> >>>>> I think I was wrong... SDL_mixer 1.2.8 supports OGG, MP3, MID, and >> >>>>> MOD >> >>>>> music. >> >>>>> >> >>>>> Only SVN supports WAV. >> >>>>> >> >>>>> On Sat, Jul 12, 2008 at 1:40 PM, Brian Fisher >> >>>>> <[EMAIL PROTECTED]> >> >>>>> wrote: >> >>>>> > by svn version do you mean 1.3, or an upcoming bug-fix release of >> >>>>> > 1.2? >> >>>>> > >> >>>>> > >> >>>>> > On Sat, Jul 12, 2008 at 9:27 AM, Forrest Voight >> >>>>> > <[EMAIL PROTECTED]> >> >>>>> > wrote: >> >>>>> >> >> >>>>> >> The current sdl_mixer svn only supports mikmod. The svn version >> >>>>> >> supports all of those formats. >> >>>>> >> >> >>>>> >> On Sat, Jul 12, 2008 at 4:55 AM, René Dudfield <[EMAIL PROTECTED]> >> >>>>> >> wrote: >> >>>>> >> > hi, >> >>>>> >> > >> >>>>> >> > I just wrote a test for it (see test/mixer_test.py). >> >>>>> >> > >> >>>>> >> > Unfortunately it doesn't seem to be able to load from a file >> >>>>> >> > like >> >>>>> >> > object for mp3, ogg, or wav files. >> >>>>> >> > >> >>>>> >> > Any ideas? >> >>>>> >> > >> >>>>> >> > >> >>>>> >> > >> >>>>> >> > ====================================================================== >> >>>>> >> > ERROR: test_mixer_music__load (__main__.MixerModuleTest) >> >>>>> >> > >> >>>>> >> > >> >>>>> >> > ---------------------------------------------------------------------- >> >>>>> >> > Traceback (most recent call last): >> >>>>> >> > File "test\mixer_test.py", line 207, in test_mixer_music__load >> >>>>> >> > pygame.mixer.music.load(open(musfn)) >> >>>>> >> > error: Module format not recognized >> >>>>> >> > >> >>>>> >> > >> >>>>> >> > cu, >> >>>>> >> > >> >>>>> >> > On Thu, Jul 10, 2008 at 11:33 PM, René Dudfield >> >>>>> >> > <[EMAIL PROTECTED]> >> >>>>> >> > wrote: >> >>>>> >> >> Cool, thanks. >> >>>>> >> >> >> >>>>> >> >> Committed revision 1482. >> >>>>> >> >> >> >>>>> >> >> On Wed, Jul 9, 2008 at 12:39 PM, Forrest Voight >> >>>>> >> >> <[EMAIL PROTECTED]> >> >>>>> >> >> wrote: >> >>>>> >> >>> All we need to do is make RwopsFromPythonThreaded not try to >> >>>>> >> >>> make a >> >>>>> >> >>> standard rwop, because it shouldn't. >> >>>>> >> >>> >> >>>>> >> >>> And it is correct, RwopsFromPythonThreaded is obviously meant >> >>>>> >> >>> to be >> >>>>> >> >>> used like this (hence the threaded). >> >>>>> >> >>> >> >>>>> >> >>> Attached is the updated patch. >> >>>>> >> >>> >> >>>>> >> >>> Forrest >> >>>>> >> >>> >> >>>>> >> >>> On Tue, Jul 8, 2008 at 9:38 PM, René Dudfield >> >>>>> >> >>> <[EMAIL PROTECTED]> >> >>>>> >> >>> wrote: >> >>>>> >> >>>> I guess we need to store a reference to the file object >> >>>>> >> >>>> somewhere, >> >>>>> >> >>>> and >> >>>>> >> >>>> release the reference at cleanup. >> >>>>> >> >>>> >> >>>>> >> >>>> >> >>>>> >> >>>> On Wed, Jul 9, 2008 at 9:40 AM, Brian Fisher >> >>>>> >> >>>> <[EMAIL PROTECTED]> wrote: >> >>>>> >> >>>>> Hmmm... from looking at the patch, it seems that it does >> >>>>> >> >>>>> not fix >> >>>>> >> >>>>> the >> >>>>> >> >>>>> crash >> >>>>> >> >>>>> that Forrest discovered (where the file object falls out of >> >>>>> >> >>>>> scope >> >>>>> >> >>>>> and gets >> >>>>> >> >>>>> deleted so the rwobject ends up having bad pointers) - Is >> >>>>> >> >>>>> that >> >>>>> >> >>>>> correct >> >>>>> >> >>>>> Forrest? >> >>>>> >> >>>>> >> >>>>> >> >>>>> If that is the case, it seems to me that the feature >> >>>>> >> >>>>> implementation >> >>>>> >> >>>>> isn't >> >>>>> >> >>>>> finished yet, so the patch as sent is not ready to be >> >>>>> >> >>>>> applied to >> >>>>> >> >>>>> pygame >> >>>>> >> >>>>> 1.8.1. >> >>>>> >> >>>>> >> >>>>> >> >>>>> I would imagine that in most cases, people wouldn't be >> >>>>> >> >>>>> keeping >> >>>>> >> >>>>> around a >> >>>>> >> >>>>> python reference to the file object they would pass in >> >>>>> >> >>>>> (cause it >> >>>>> >> >>>>> loads the >> >>>>> >> >>>>> music up in some other function or something), which means >> >>>>> >> >>>>> most >> >>>>> >> >>>>> attempts to >> >>>>> >> >>>>> use this feature would get crashes and bad behavior as the >> >>>>> >> >>>>> mixer >> >>>>> >> >>>>> tries to >> >>>>> >> >>>>> stream the music, but the file object falls out of scope - >> >>>>> >> >>>>> and >> >>>>> >> >>>>> the >> >>>>> >> >>>>> crash >> >>>>> >> >>>>> would happen at what seems like a random point in time. >> >>>>> >> >>>>> >> >>>>> >> >>>>> Also, as I said in an earlier email, I don't think this >> >>>>> >> >>>>> patch is >> >>>>> >> >>>>> exposing an >> >>>>> >> >>>>> existing bug, I think it uses rwobject in a way that's not >> >>>>> >> >>>>> intended, >> >>>>> >> >>>>> as >> >>>>> >> >>>>> other "load-from-file" pygame uses don't require the >> >>>>> >> >>>>> file-object >> >>>>> >> >>>>> to >> >>>>> >> >>>>> exist >> >>>>> >> >>>>> longer than it takes for the load function to return. >> >>>>> >> >>>>> >> >>>>> >> >>>>> >> >>>>> >> >>>>> >> >>>>> >> >>>>> On Tue, Jul 8, 2008 at 3:20 PM, René Dudfield >> >>>>> >> >>>>> <[EMAIL PROTECTED]> >> >>>>> >> >>>>> wrote: >> >>>>> >> >>>>>> >> >>>>> >> >>>>>> Cool, thanks. I'll try and patch it tonight (+ 9 hours). >> >>>>> >> >>>>>> >> >>>>> >> >>>>>> cu, >> >>>>> >> >>>>>> >> >>>>> >> >>>>>> On Wed, Jul 9, 2008 at 1:09 AM, Forrest Voight >> >>>>> >> >>>>>> <[EMAIL PROTECTED]> >> >>>>> >> >>>>>> wrote: >> >>>>> >> >>>>>> > I did the version checks. >> >>>>> >> >>>>>> > >> >>>>> >> >>>>>> > There are currently no tests for pygame.mixer.music, but >> >>>>> >> >>>>>> > I'll >> >>>>> >> >>>>>> > try >> >>>>> >> >>>>>> > to >> >>>>> >> >>>>>> > make a test for this. >> >>>>> >> >>>>>> > >> >>>>> >> >>>>>> > Also, I found a bug in rwobject. It makes a standard >> >>>>> >> >>>>>> > SDL_RWops >> >>>>> >> >>>>>> > from >> >>>>> >> >>>>>> > python file objects but doesn't hold a reference to >> >>>>> >> >>>>>> > them. >> >>>>> >> >>>>>> > This is shown by doing something like: >> >>>>> >> >>>>>> > >> >>>>> >> >>>>>> > pygame.mixer.music.load(open('x.mp3')) >> >>>>> >> >>>>>> > >> >>>>> >> >>>>>> > Then playing it, and pygame crashes. >> >>>>> >> >>>>>> > This is not my patch's fault, it just exposes it. >> >>>>> >> >>>>>> > >> >>>>> >> >>>>>> > Forrest Voight >> >>>>> >> >>>>>> > >> >>>>> >> >>>>>> > On Tue, Jul 8, 2008 at 2:08 AM, René Dudfield >> >>>>> >> >>>>>> > <[EMAIL PROTECTED]> >> >>>>> >> >>>>>> > wrote: >> >>>>> >> >>>>>> >> hi, >> >>>>> >> >>>>>> >> >> >>>>> >> >>>>>> >> I think this will have to wait until we put the version >> >>>>> >> >>>>>> >> checks >> >>>>> >> >>>>>> >> in and >> >>>>> >> >>>>>> >> have unittests... ie for pygame 1.9. Unless someone >> >>>>> >> >>>>>> >> can get >> >>>>> >> >>>>>> >> around to >> >>>>> >> >>>>>> >> it in the next week. >> >>>>> >> >>>>>> >> >> >>>>> >> >>>>>> >> >> >>>>> >> >>>>>> >> cu, >> >>>>> >> >>>>>> >> >> >>>>> >> >>>>>> >> >> >>>>> >> >>>>>> >> On Wed, Jun 18, 2008 at 2:44 PM, Forrest Voight >> >>>>> >> >>>>>> >> <[EMAIL PROTECTED]> >> >>>>> >> >>>>>> >> wrote: >> >>>>> >> >>>>>> >>> OK, I'll work on unit tests and a version check. >> >>>>> >> >>>>>> >>> >> >>>>> >> >>>>>> >>> On Mon, Jun 16, 2008 at 11:52 AM, Lenard Lindstrom >> >>>>> >> >>>>>> >>> <[EMAIL PROTECTED]> >> >>>>> >> >>>>>> >>> wrote: >> >>>>> >> >>>>>> >>>> Maybe the test could write a sine wave to a StringIO, >> >>>>> >> >>>>>> >>>> load >> >>>>> >> >>>>>> >>>> it, >> >>>>> >> >>>>>> >>>> then >> >>>>> >> >>>>>> >>>> use >> >>>>> >> >>>>>> >>>> get_buffer (sound objects do have get_buffer now, >> >>>>> >> >>>>>> >>>> right?*) >> >>>>> >> >>>>>> >>>> to >> >>>>> >> >>>>>> >>>> check >> >>>>> >> >>>>>> >>>> it. >> >>>>> >> >>>>>> >>>> >> >>>>> >> >>>>>> >>>> Lenard >> >>>>> >> >>>>>> >>>> >> >>>>> >> >>>>>> >>>> * Sorry, I don't have access to latest Python/Pygame >> >>>>> >> >>>>>> >>>> at the >> >>>>> >> >>>>>> >>>> moment. >> >>>>> >> >>>>>> >>>> >> >>>>> >> >>>>>> >>>> Quoting René Dudfield <[EMAIL PROTECTED]>: >> >>>>> >> >>>>>> >>>> >> >>>>> >> >>>>>> >>>>> Hi, >> >>>>> >> >>>>>> >>>>> >> >>>>> >> >>>>>> >>>>> nice patch! This will be very useful :) >> >>>>> >> >>>>>> >>>>> >> >>>>> >> >>>>>> >>>>> Do you know which version of sdl_mixer allows rwops >> >>>>> >> >>>>>> >>>>> for >> >>>>> >> >>>>>> >>>>> music >> >>>>> >> >>>>>> >>>>> (Mix_LoadMUS_RW)? Does it require an SDL_mixer >> >>>>> >> >>>>>> >>>>> version >> >>>>> >> >>>>>> >>>>> check? >> >>>>> >> >>>>>> >>>>> >> >>>>> >> >>>>>> >>>>> Are you able to make make any unit tests for using >> >>>>> >> >>>>>> >>>>> file >> >>>>> >> >>>>>> >>>>> likes >> >>>>> >> >>>>>> >>>>> with >> >>>>> >> >>>>>> >>>>> the >> >>>>> >> >>>>>> >>>>> music mixer? We're using unittests for all new code >> >>>>> >> >>>>>> >>>>> now, >> >>>>> >> >>>>>> >>>>> and >> >>>>> >> >>>>>> >>>>> it'd >> >>>>> >> >>>>>> >>>>> make us feel more safe about adding it in for the >> >>>>> >> >>>>>> >>>>> 1.8.1 >> >>>>> >> >>>>>> >>>>> release. >> >>>>> >> >>>>>> >>>>> >> >>>>> >> >>>>>> >>>>> Not really sure how best to test it. I guess just >> >>>>> >> >>>>>> >>>>> loading >> >>>>> >> >>>>>> >>>>> the music >> >>>>> >> >>>>>> >>>>> from different filename, and from a python file >> >>>>> >> >>>>>> >>>>> object >> >>>>> >> >>>>>> >>>>> would >> >>>>> >> >>>>>> >>>>> be ok >> >>>>> >> >>>>>> >>>>> for >> >>>>> >> >>>>>> >>>>> now. >> >>>>> >> >>>>>> >>>>> >> >>>>> >> >>>>>> >>>>> here's a start on a test for it... >> >>>>> >> >>>>>> >>>>> >> >>>>> >> >>>>>> >>>>> data_fname = os.path.join('..', 'examples', 'data') >> >>>>> >> >>>>>> >>>>> #note, I just added house_lo.ogg to svn. >> >>>>> >> >>>>>> >>>>> oggfn = os.path.join(data_fname, 'house_lo.ogg') >> >>>>> >> >>>>>> >>>>> >> >>>>> >> >>>>>> >>>>> pygame.mixer.music.load(oggfn) >> >>>>> >> >>>>>> >>>>> pygame.mixer.music.load(open(oggfn)) >> >>>>> >> >>>>>> >>>>> oggf = open(oggfn) >> >>>>> >> >>>>>> >>>>> pygame.mixer.music.load(oggf) >> >>>>> >> >>>>>> >>>>> >> >>>>> >> >>>>>> >>>>> >> >>>>> >> >>>>>> >>>>> >> >>>>> >> >>>>>> >>>>> cheers, >> >>>>> >> >>>>>> >>>>> >> >>>>> >> >>>>>> >>>>> >> >>>>> >> >>>>>> >>>>> >> >>>>> >> >>>>>> >>>>> On Sat, Jun 14, 2008 at 9:53 AM, Forrest Voight >> >>>>> >> >>>>>> >>>>> <[EMAIL PROTECTED]> >> >>>>> >> >>>>>> >>>>> wrote: >> >>>>> >> >>>>>> >>>>> > Thanks! >> >>>>> >> >>>>>> >>>>> > >> >>>>> >> >>>>>> >>>>> > On Fri, Jun 13, 2008 at 7:31 PM, Lenard Lindstrom >> >>>>> >> >>>>>> >>>>> > <[EMAIL PROTECTED]> wrote: >> >>>>> >> >>>>>> >>>>> >> This is interesting. I am having a look at it. No >> >>>>> >> >>>>>> >>>>> >> promise >> >>>>> >> >>>>>> >>>>> >> it can >> >>>>> >> >>>>>> >>>>> >> go into >> >>>>> >> >>>>>> >>>>> >> 1.8.1 though as this is supposed to be a bug fix. >> >>>>> >> >>>>>> >>>>> >> >> >>>>> >> >>>>>> >>>>> >> Lenard >> >>>>> >> >>>>>> >>>>> >> >> >>>>> >> >>>>>> >>>>> >> >> >>>>> >> >>>>>> >>>>> >> Forrest Voight wrote: >> >>>>> >> >>>>>> >>>>> >>> >> >>>>> >> >>>>>> >>>>> >>> This patch re-adds support for playing (and >> >>>>> >> >>>>>> >>>>> >>> queueing) >> >>>>> >> >>>>>> >>>>> >>> music from >> >>>>> >> >>>>>> >>>>> >>> python file-like objects. >> >>>>> >> >>>>>> >>>>> >>> >> >>>>> >> >>>>>> >>>>> >>> While support for WAV music streams is still in >> >>>>> >> >>>>>> >>>>> >>> SDL_mixer >> >>>>> >> >>>>>> >>>>> >>> svn, >> >>>>> >> >>>>>> >>>>> >>> there >> >>>>> >> >>>>>> >>>>> >>> is support for mp3, mikmod and other formats >> >>>>> >> >>>>>> >>>>> >>> already. >> >>>>> >> >>>>>> >>>>> >>> >> >>>>> >> >>>>>> >>>>> >>> >> >>>>> >> >>>>>> >>>>> >> >> >>>>> >> >>>>>> >>>>> >> >> >>>>> >> >>>>>> >>>>> > >> >>>>> >> >>>>>> >>>>> >> >>>>> >> >>>>>> >>>> >> >>>>> >> >>>>>> >>>> >> >>>>> >> >>>>>> >>>> -- >> >>>>> >> >>>>>> >>>> Lenard Lindstrom >> >>>>> >> >>>>>> >>>> <[EMAIL PROTECTED]> >> >>>>> >> >>>>>> >>>> >> >>>>> >> >>>>>> >>>> >> >>>>> >> >>>>>> >>> >> >>>>> >> >>>>>> >> >> >>>>> >> >>>>>> > >> >>>>> >> >>>>> >> >>>>> >> >>>>> >> >>>>> >> >>>> >> >>>>> >> >>> >> >>>>> >> >> >> >>>>> >> > >> >>>>> > >> >>>>> > >> >>>> >> >>>> >> >>> >> >> >> > > >