This commit delivers some important stability fixes mainly to stream playback with the TitleProxy. Things are quite stable now for me. It also fixes the issue that amaroK started skipping a stream after some seconds of playback (BR 76473).
* Fix: amaroK loader. It should not freeze the application any longer after startup. I'd appreciate if you guys could help test it by using it extensively and report problems to me! * Fix: Improved stream metadata output formatting. svn path=/trunk/kdeextragear-1/amarok/; revision=291208
* Fix: weird crossfading behaviour on amaroK startup * Fix: small memory leak with TitleProxy * TitleProxy using unbuffered socket now, leading to better playback stability * Added timeout to ArtsEngine, so it won't wait forever for a broken stream svn path=/trunk/kdeextragear-1/amarok/; revision=288750
"One bundle to rule them all!" - Removed TitleProxy::metaPacket, and made the proxy use a MetaBundle instead. I believe it's nicer to only use one kind of metadata class in the whole app. This also reduced some compile dependencies and made the code leaner. Please forgive me, there are some slight regressions with the metaData handling, but I guess that can be sorted out. Also, I've made the OSD show the current stream metadata (fixes BR #75230)
* I wasn't going to commit this mess the day before we release an unstable package, but I have to now * Fixes a newly introduced crash bug when you cancel loading/tag reading * Stops the time display from being able to display negative numbers, and unifies all that stuff quite a bit too * Various prettyTitle() fixes * Big dependency cleanup, this is the bit I'm worried about, hope it doesn't break anything. However TitleProxy is now a namespace thus allowing us to predeclare what were nested classes and stop many headers depending on titleproxy.h svn path=/trunk/kdeextragear-1/amarok/; revision=287897
Prevent TitleProxy from getting stuck when no metaData is available; fallback to normal playback automatically. svn path=/trunk/kdeextragear-1/amarok/; revision=287596
Added: current metaData from the TitleProxy gets written into the playlist. TODO: save that data along with the playlist (but do not save the currently playing title in the playlist (XMMS does that), as that's braindead. it's not very likely that the title is still valid when you load a playlist ;)
TitleProxy improvements: * switching it off in the options works again * moved proxy handling from Engine to PlayerApp * changes to proxy itself: better data-structure for transmitting, better error handling
Merged in Stefan Gehn's modifications to the TitleProxy: - local proxy port not hardcoded any more. Will look in the range 6666-7777 for a free port - something else
* Much improved error handling for TitleProxy. Also works better with servers that don't provide metadata. * Fixed Filebrowser resizing issue. Can be any width now. svn path=/trunk/kdeextragear-1/amarok/; revision=270538
* Do not try to load a playlist any more if the url does not end with ".m3u" or ".pls" (the old behaviour could lead to freezing, when we tried to download the file in any case) * Fixed TitleProxy to also work when shoutcast server does not provide metadata. We simply forward the stream unmodified in that case. * Make FileBrowser show a horizontal scrollbar (it should have shown it automatically, but didn't.. strange QScrollView behaviour) svn path=/trunk/kdeextragear-1/amarok/; revision=270397
Making the build stuff here suck less. The current checks wouldn't build against an actual taglib tarball. The arts checks are broken too, but I don't feel like fixing those. ;-) svn path=/trunk/kdeextragear-1/amarok/; revision=269984
fix TitleProxy crash when pressing stop after playing files. (ooops.. I optimized one pointer initialisation away, which was really neccessary.. mea culpa) svn path=/trunk/kdeextragear-1/amarok/; revision=269894
rewrite TitleProxy, making it considerably faster. eliminated useless data copying and also reduced memory consumption. svn path=/trunk/kdeextragear-1/amarok/; revision=269729
Fix TitleProxy losing sync and improve header processing. YAY! I finally found the bug.. proxy works 100% correct now. Turned out, non-blocking socket mode led to losing data randomly. Now using blocking mode.
What remains to be done is some optimisation (at the moment it iterates over every single byte of the stream), and making it work when the port is already in use (hardcoded now).
* display bitrate for streams with icecast support * make TitleProxy header processing a bit more robust svn path=/trunk/kdeextragear-1/amarok/; revision=269408
add TitleProxy. this is a workaround, enabling shoutcast/icecast metadata support for aRts. warning - this is still highly experimental/buggy svn path=/trunk/kdeextragear-1/amarok/; revision=269052