| Summary: | arts plays streams but never stops | ||
|---|---|---|---|
| Product: | [Unmaintained] akodelib | Reporter: | John M <phlogistonjohn> |
| Component: | general | Assignee: | Allan Sandfeld <kde> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Gentoo Packages | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
John M
2004-08-26 02:05:29 UTC
From a decoding point-of-view it is just a stream, and there could always appear more data that would need to be decoded. It is upto the application to shut the decoding down when the source of data ends. I will look into where this should happen, but I would like to know if this worked in KDE 3.2? In KDE 3.2 the applications (noatun for sure) behaved the way I expected they should, when the song "ends" the player continues onto the next track. In fact, since I still have 3.2 & an older version of arts installed, I can run the old artsd from the cmd line and noatun 2.6.0 (KDE 3.3.0) will play like the older (2.4.x) version did running from the 3.2 environment. I discovered this when attempting to listen to streams from magnatune.com so I've been using this album http://magnatune.com/artists/music/Electronica/Magnatune%20Remixed/Ridin%20the%20Faders/ to test since it has some very short tracks. But this also happens to songs that I ripped myself and are streamed off a gnump3d server, these mp3s play normally from the harddrive with both versions of artsd running. CVS commit by carewolf:
Close streams if EOF is reached.
BUG: 88092
M +13 -12 akodePlayObject_impl.cpp 1.27
--- kdemultimedia/akode/arts_plugin/akodePlayObject_impl.cpp #1.26:1.27
@@ -459,7 +459,7 @@ void akodePlayObject_impl::process_indat
}
-void akodePlayObject_impl::processQueue() {
+void akodePlayObject_impl::processQueue()
+{
while (!m_packetQueue->empty()) {
-
long freespace = m_bytebuffer->space();
@@ -475,4 +475,5 @@ void akodePlayObject_impl::processQueue(
return;
}
+ if (instream.eof()) m_bytebuffer->close();
}
|