build_date = $(shell date)
system = $(shell uname -rs)
cc_version = $(shell $(CC) --version | head -n 1)
-codename = isotropic threshold
+codename = reproducing reflection
DEBUG_CPPFLAGS += -Wno-sign-compare -g -Wunused -Wundef -W
DEBUG_CPPFLAGS += -Wredundant-decls
NEWS
====
-----------------------------------------------
-0.2.17 (to be announced) "isotropic threshold"
-----------------------------------------------
+-----------------------------------------
+0.2.17 (2007-11-20) "isotropic threshold"
+-----------------------------------------
Mainly bugfixes and cleanups in this version which marks the end of
the 0.2.x series if no serious bugs show up after the release.
- update to ortp-0.13.1.
- autoconf: extend checks for headers, library functions and
compiler characteristics.
+ - Fix streaming of large mp3 files.
+ - Fix an off-by-one bug in playlist handling.
--------------------------------------
0.2.16 (2007-04-05) "neural discharge"
AC_PREREQ(2.60)
-AC_INIT(paraslash, [git], maan@systemlinux.org)
+AC_INIT(paraslash, [0.2.git], maan@systemlinux.org)
AC_CONFIG_HEADER([config.h])
AC_PATH_PROG(UNAMEPATH, uname, no)
unsigned i;
PARA_DEBUG_LOG("sending playlist to client (%d entries)\n", playlist_len);
- for (i = 0; i < playlist_len; i++) {
+ for (i = 1; i <= playlist_len; i++) {
int ret = send_va_buffer(fd, "%s\n", playlist[
(i + current_playlist_entry) % playlist_len]);
if (ret < 0)
PARA_NOTICE_LOG("new playlist (%d entries)\n", playlist_len);
sprintf(mmd->selector_info, "dbinfo1:new playlist: %d files\n"
"dbinfo2:\ndbinfo3:\n", playlist_len);
+ current_playlist_entry = playlist_len - 1;
pcd->retval = 1;
pcd->size = 0;
mutex_unlock(pcd->mutex);
void tv_divide(const unsigned long divisor, const struct timeval *tv,
struct timeval *result)
{
- long unsigned q;
+ uint64_t x = ((uint64_t)tv->tv_sec * 1000 * 1000 + tv->tv_usec) / divisor;
- if (!divisor) {
- PARA_EMERG_LOG("%s\n", "division by zero");
- exit(EXIT_FAILURE);
- }
- q = tv->tv_usec / divisor;
- result->tv_sec = tv->tv_sec / divisor;
- result->tv_usec = (tv->tv_sec - result->tv_sec * divisor)
- * 1000 * 1000 / divisor;
- if (result->tv_usec + q >= 1000 * 1000) {
- result->tv_sec++;
- result->tv_usec = 1000 * 1000 - result->tv_usec - q;
- } else
- result->tv_usec += q;
+ result->tv_sec = x / 1000 / 1000;
+ result->tv_usec = x % (1000 * 1000);
}
/**
--- /dev/null
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.6 (GNU/Linux)
+
+iD8DBQBHQxsRWto1QDEAkw8RAswLAJ49+JOKoMx7w1yhFWmq+iqJ/HltTACgn4P0
+VGyjoF8nDkOf8JcUSwv0gPk=
+=Ct9h
+-----END PGP SIGNATURE-----
access is also available. Checkout a copy with </p>
<p>
-git clone git://www.paraslash.org/git paraslash
+git clone git://paraslash.systemlinux.org/git paraslash
</p>
<br><a href="download.html">Download</a>
<br><a href="screenshots.html">Screenshots</a>
<br><a href="demo.html">Live Demo</a>
- <br><a href="/cgi-bin/gitweb.cgi?p=.git;a=shortlog">Changes</a>
+ <br><a href="/gitweb/gitweb.cgi?p=.git;a=shortlog">Changes</a>
<br><a href="documentation.html">Documentation</a>
<br><a href="license.html">License</a>
<br><a href="contact.html">Contact</a>
<br><a href="../../download.html">Download</a>
<br><a href="../../screenshots.html">Screenshots</a>
<br><a href="../../demo.html">Live Demo</a>
- <br><a href="/cgi-bin/gitweb.cgi?p=.git;a=shortlog">Changes</a>
+ <br><a href="../../gitweb/gitweb.cgi?p=.git;a=shortlog">Changes</a>
<br><a href="../../documentation.html">Documentation</a>
<br><a href="../../license.html">License</a>
<br><a href="../../contact.html">Contact</a>
<h1>Events</h1>
<hr>
<ul>
+ <li>2007-11-20: <a href="versions/paraslash-0.2.17.tar.bz2">paraslash-0.2.17</a>
+ <a href="versions/paraslash-0.2.17.tar.bz2.asc">(sig)</a>
+ "isotropic threshold"
+ </li>
<li>2007-04-05: <a href="versions/paraslash-0.2.16.tar.bz2">paraslash-0.2.16</a>
<a href="versions/paraslash-0.2.16.tar.bz2.asc">(sig)</a>
"neural discharge"