#! /usr/bin/perl # # $Id$ # Definition of 'My::Project::pipebuf' for list.cgi.pl # Copyright (C) 2003 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; exactly version 2 of June 1991 is required # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA package My::Project::pipebuf; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway use vars qw($VERSION $CVS_ID); $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; $CVS_ID=q$Id$; use strict; use warnings; our %ListItem=( "name"=>"PipeBuf - Data Buffering Tool", "priority"=>8, "download"=>"pipebuf.c", "summary"=>"Pipe buffer", "license"=>"PD", "maintenance"=>"finished", "language"=>"C", "description"=>"" .'

You can do a buffering of realtime data such as audio stream by inserting this program' .' with traditional "UNIX filter" behaviour. It reads as fast as possible into' .' its cache and also in the same time writes as fast as possible to the output. In fact' .' it is implemented as two processes (no threads - no pthread libraries needed, only IPC' .' communication used). Features custom buffer sizes, prefill (start writing of the first byte' .' only after the WHOLE buffer has beel filled up) and warning messages when buffer is getting' .' emptied.

' ); 1;