~diwic/ubuntu/lucid/pulseaudio/bugfixes

« back to all changes in this revision

Viewing changes to src/tests/stripnul.c

  • Committer: Bazaar Package Importer
  • Author(s): Luke Yelavich
  • Date: 2008-11-04 15:46:00 UTC
  • mfrom: (1.2.1 upstream) (1.1.6 lenny)
  • Revision ID: james.westby@ubuntu.com-20081104154600-hlzknpcazaam0nxm
Tags: 0.9.13-1ubuntu1
* Merge from Debian unstable, remaining changes:
  - Don't build against, and create jack package. Jack is not in main.
  - Remove --disable-per-user-esound-socket from configure flags, as we still
    want per user esound sockets.
  - Remove stop links from rc0 and rc6.
  - Change default resample algorithm and bubffer size.
  - Add alsa configuration files to route alsa applications via pulseaudio.
  - Move libasound2-plugins from Recommends to Depends.
* debian/pulseaudio.preinst: When upgrading from intrepid, remove
  /etc/X11/Xsession.d/70pulseaudio, as this was used to minimize a race
  condition when starting GNOME in intrepid. This race should not exist in
  jaunty once libcanberra is built to use pulseaudio as a backend.
* Do not spawn a pulseaudio server if clients fail to find a running server.
* Remove explicit version dependency for libspeex-dev to allow the package
  to be built for now.
* Regenerate autotools files to work with Ubuntu's newer libtool/libltdl.
* debian/control: libpulsecore5 -> libpulsecore8 to match the library
  soname.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***
 
2
  This file is part of PulseAudio.
 
3
 
 
4
  PulseAudio is free software; you can redistribute it and/or modify
 
5
  it under the terms of the GNU Lesser General Public License as published
 
6
  by the Free Software Foundation; either version 2 of the License,
 
7
  or (at your option) any later version.
 
8
 
 
9
  PulseAudio is distributed in the hope that it will be useful, but
 
10
  WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 
12
  General Public License for more details.
 
13
 
 
14
  You should have received a copy of the GNU Lesser General Public License
 
15
  along with PulseAudio; if not, write to the Free Software
 
16
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 
17
  USA.
 
18
***/
 
19
 
 
20
#ifdef HAVE_CONFIG_H
 
21
#include <config.h>
 
22
#endif
 
23
 
 
24
#include <stdio.h>
 
25
#include <string.h>
 
26
#include <inttypes.h>
 
27
 
 
28
#include <pulse/xmalloc.h>
 
29
#include <pulsecore/macro.h>
 
30
 
 
31
int main(int argc, char *argv[]) {
 
32
    FILE *i, *o;
 
33
    size_t granularity;
 
34
    pa_bool_t found;
 
35
    uint8_t *zero;
 
36
 
 
37
    pa_assert_se(argc >= 2);
 
38
    pa_assert_se((granularity = (size_t) atoi(argv[1])) >= 1);
 
39
    pa_assert_se((i = (argc >= 3) ? fopen(argv[2], "r") : stdin));
 
40
    pa_assert_se((o = (argc >= 4) ? fopen(argv[3], "w") : stdout));
 
41
 
 
42
    zero = pa_xmalloc0(granularity);
 
43
 
 
44
    for (;;) {
 
45
        uint8_t buffer[16*1024], *p;
 
46
        size_t k;
 
47
 
 
48
        k = fread(buffer, granularity, sizeof(buffer)/granularity, i);
 
49
 
 
50
        if (k <= 0)
 
51
            break;
 
52
 
 
53
        if (found)
 
54
            pa_assert_se(fwrite(buffer, granularity, k, o) == k);
 
55
        else {
 
56
            for (p = buffer; ((size_t) (p-buffer)/granularity) < k; p += granularity)
 
57
                if (memcmp(p, zero, granularity)) {
 
58
                    size_t left;
 
59
                    found = TRUE;
 
60
                    left = (size_t) (k - (size_t) (p-buffer)/granularity);
 
61
                    pa_assert_se(fwrite(p, granularity, left, o) == left);
 
62
                    break;
 
63
                }
 
64
        }
 
65
    }
 
66
 
 
67
    fflush(o);
 
68
 
 
69
    return 0;
 
70
}