-
This seems good. I'm looking forward to any advancements to PSP-Radio - it could do with some decent Slim support :)
Cloudy
-
Thanks; hope to get to that in a bit.
Meanwhile: I made connect and host name resolution cancellable/non-blocking; this (and streams that aren't really there) was the principal cause of the fetch thread getting hung up before; should make things a lot friendlier.
New release/code up. Release 004 at sourceforge.
-
Finalizing a few more refinements to mine: recv nonblocking, fix to multi-frequency audio lib so it deletes closed threads properly, minor control fixes. App now passes stress test of 85 streams in a row opened/closed without restart. Code up, but no release; will release once send is nonblocking.
-
Made send non-blocking, fixed some error/stream shutdown handling logic in severe network starvation conditions. It now passes a stress test of 100 streams opened/closed... I have yet to see a crash with the current code, even with intermittent network conditions, bad streams, etc.
So it looks good to go. I'm calling this good enough to release, officially bumping the project status to beta. See Release 005 at SourceForge.
-
Added support for 44000 Hz, 33075 Hz streams (wrote s/w upsamplers to 44100; there's no h/w support on the PSP for these--they're rare rates, but they do occur here and there). Also added support for streams in which the sample rate changes mid-stream/between logical streams (also a rare config, but also happens). Release 006 gathers all of this; it's up at SourceForge.
This set of features supports all known/live streams currently listed at Xiph/otherwise known to the project.
-
any source for this baby?
i need to figure out the ogg streaming for an app im making
-
Yep. See http://sourceforge.net/projects/pspvorbo/ ... source browser at http://pspvorbo.cvs.sourceforge.net/pspvorbo/ , most of the critical Ogg/Vorbis decode stuff is in the decode_cb.cpp file, at http://pspvorbo.cvs.sourceforge.net/....5&view=markup ... see the calls to ov_open_callbacks and ov_read ; these are your critical calls into the lib; first opens the stream, second you call repeatedly to turn the Vorbis stream into simple PCM samples you can then just hand to the PSP's audio stuff.
... note also there are two libs generally buildable for the PSP that provide Ogg/Vorbis decode: libVorbis, and another one called libTremor which does it all in integers, and presumably is a bit more efficient/faster on limited/embedded devices. I used Vorbis because I couldn't convince Tremor to work with me in some odd streams in which sampling rate changed, and the PSP is more than up to using it if that's all you happen to be doing at the time. Tremor worked fine apart from this (minor) glitch, too, when I tried it.
I used ov_open_callbacks in order to provide custom read/seek/open/close callbacks linked directly to the PSP's i/o, but given that the stdlib stuff does wrap i/o as well and make it look pretty standard, if you're just doing file i/o, you might also find just calling plain ole' ov_open may also work; not sure; didn't try.
There's also sample code somewhere for doing this on the PSP with Tremor. Will look around, see if I can find where that came from. Been a while since I looked at it.
Oh, hey... just recalled: Revorb (subproject I did) has a slightly simpler/more obvious decode implementation, since there's less buffering/threading (it's just doing file i/o; other one does network) ... see http://pspvorbo.cvs.sourceforge.net/....2&view=markup .