Merge branch 't/oggdec_latency_improvements'
authorAndre Noll <maan@systemlinux.org>
Wed, 9 Apr 2014 18:07:07 +0000 (20:07 +0200)
committerAndre Noll <maan@systemlinux.org>
Wed, 9 Apr 2014 18:07:55 +0000 (20:07 +0200)
A single commit which was cooking since 2014-03-11.

* t/oggdec_latency_improvements:
  oggdec: Decode only OGGDEC_OUTPUT_CHUNK_SIZE many bytes per iteration.

1  2 
NEWS
oggdec_filter.c

diff --combined NEWS
index ab53a17697ea7c92f2d0b2107d4d8dcee95d9e4c,cc9b67ad18da23606ca2167d8b1fe94da1cb4ee5..77431a2f2b34a5f066df835e5d5ea1364b3c14e3
--- 1/NEWS
--- 2/NEWS
+++ b/NEWS
@@@ -5,25 -5,8 +5,26 @@@ NEW
  0.5.2 (to be announced) "orthogonal interior"
  ---------------------------------------------
  
 -      - The new sync synchronizes playback between multiple clients.
 +The new sync filter, the AES_CTR128 stream cipher and the overhauled
 +network code are the highlights of this release. It also includes a
 +fair number of smaller fixes and improvements not mentioned here.
 +
 +      - The new sync filter synchronizes playback between multiple
 +        clients.
 +      - Connections between para_server and para_client are now
 +        encrypted by means of AES rather than RC4 if both sides
 +        support it. RC4 is still available as a fallback. This
 +        feature is fully transparent, i.e. no command line options
 +        are necessary, and a client linked against openssl can
 +        speak with a server linked against libgcrypt and vice versa.
        - Major cleanup of the networking subsystem.
 +      - Improvements to para_fade: the new set mode, multi-channel
 +        initial volumes, better error logging.
 +      - The man pages of para_audiod, para_filter, para_recv, and
 +        para_write contain the relevant options for receivers, filters,
 +        writers. This broke in 0.5.0.
++      - ogg/vorbis latency improvements.
 +      - Improved user manual.
        - Minor fixes to avoid clang warnings.
  
  ------------------------------------------
@@@ -49,9 -32,6 +50,9 @@@ of the build system
        - Many small bugs in the build system have been identified
          and fixed.
  
 +Downloads: ./releases/paraslash-0.5.1.tar.bz2 (tarball),
 +./releases/paraslash-0.5.1.tar.bz2.asc (signature)
 +
  ----------------------------------------
  0.5.0 (2013-08-23) "invertible validity"
  ----------------------------------------
diff --combined oggdec_filter.c
index 1eaa79300f5f70a9310ca17d7c52e5ba38e76a5b,fd06cd160ca881df70a1f449b4b316214415c6b8..cec9c6c3dd15e971fdff1934d668bbcccbe616d1
@@@ -1,5 -1,5 +1,5 @@@
  /*
 - * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
 + * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
   *
   * Licensed under the GPL v2. For licencing details see COPYING.
   */
@@@ -236,13 -236,8 +236,8 @@@ static int ogg_post_select(__a_unused s
                        break;
                fn->min_iqs = 0;
                have += ret;
-               if (have < OGGDEC_OUTPUT_CHUNK_SIZE)
-                       continue;
-               if (btr_get_output_queue_size(btrn) > OGGDEC_MAX_OUTPUT_SIZE)
+               if (have >= OGGDEC_OUTPUT_CHUNK_SIZE)
                        break;
-               btr_add_output(buf, have, btrn);
-               buf = para_malloc(OGGDEC_OUTPUT_CHUNK_SIZE);
-               have = 0;
        }
        pod->have_more = (ret > 0);
        if (have > 0) {