X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=write.h;h=091f8c77181cbf3f1a014e31db2667b534aa5b0d;hp=9f23663413603d67b7b147763116dc77f2bd210d;hb=4a562d17319e990f75ea3bbf5f3e25bfe0aafba7;hpb=2e8b7f42a30ebe41c862cc603c8f746b1e202479;ds=sidebyside diff --git a/write.h b/write.h index 9f236634..091f8c77 100644 --- a/write.h +++ b/write.h @@ -1,19 +1,7 @@ /* - * Copyright (C) 2006-2007 Andre Noll + * Copyright (C) 2006-2008 Andre Noll * - * 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; either version 2 of the License, or - * (at your option) any later version. - * - * 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, USA. + * Licensed under the GPL v2. For licencing details see COPYING. */ /** \file write.h writer-related structures */ @@ -22,7 +10,7 @@ enum writer_enum {WRITER_ENUM}; /** - * decbribes one running instance of a writer + * Describes one running instance of a writer. */ struct writer_node { /** points to the writer structure associated with this node */ @@ -67,7 +55,7 @@ struct writer { * * This function should perform any work necessary to write the incoming * stream. If To this aim, it may allocate its private data structure and store - * a pointer to that structure via the given writer_node paramenter. + * a pointer to that structure via the given writer_node parameter. */ int (*open)(struct writer_node *); /** @@ -80,9 +68,9 @@ struct writer { * on errors. */ int (*pre_select)(struct sched *s, struct writer_node *wn); - /* + /** * Called from the post_select function of the wng task. It must keep - * track of the the number of bytes consumed from the wng's buffer via + * track of the number of bytes consumed from the wng's buffer via * the wn->written variable (which may be modified by the wng handling * functions). This function must return positive on success and * negative on errors. @@ -113,10 +101,8 @@ struct writer_node_group { struct writer_node *writer_nodes; /** the maximum of the chunk_bytes values of the writer nodes in this group */ size_t max_chunk_bytes; - /** non-zero if end of file was encountered by the feeding task */ - int *input_eof; - /** non-zero if end of file was encountered */ - int eof; + /** Non-zero if an error or end of file was encountered by the feeding task. */ + int *input_error; /** current output buffer */ char *buf; /** number of bytes loaded in the output buffer */ @@ -127,6 +113,8 @@ struct writer_node_group { unsigned int *samplerate; /** the task associated to this group */ struct task task; + /** Whether the group is open, i.e. wng_open() was called. */ + int open; }; /** loop over each writer node in a writer group */