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]> > >>>>> >> >>>>>> >>>> > >>>>> >> >>>>>> >>>> > >>>>> >> >>>>>> >>> > >>>>> >> >>>>>> >> > >>>>> >> >>>>>> > > >>>>> >> >>>>> > >>>>> >> >>>>> > >>>>> >> >>>> > >>>>> >> >>> > >>>>> >> >> > >>>>> >> > > >>>>> > > >>>>> > > >>>> > >>>> > >>> > >> > > >