wma: Decode as much as possible.
[paraslash.git] / write.h
diff --git a/write.h b/write.h
index fc6ade3cb5f1e7694646085c443dc3a368aec04d..8816be7314bcd14516afc4e91226f3f3124df6c1 100644 (file)
--- a/write.h
+++ b/write.h
@@ -13,12 +13,10 @@ enum writer_enum {WRITER_ENUM};
  * Describes one running instance of a writer.
  */
 struct writer_node {
-       /** Points to the writer structure associated with this node. */
-       struct writer *writer; /* FIXME: Should better be only the number. */
+       /** The number of this writer. */
+       int writer_num;
        /** Writer-specific data. */
        void *private_data;
-       /** Send that many bytes in one go. */
-       int chunk_bytes;
        /** Pointer to the group this node belongs to. */
        struct writer_node_group *wng;
        /** The writer-specific configuration of this node. */
@@ -95,12 +93,10 @@ struct writer_node_group {
        unsigned num_writers;
        /** Array of pointers to the corresponding writer nodes. */
        struct writer_node *writer_nodes;
-       /** The maximum of the chunk_bytes values of the writer nodes in this group. */
-       int max_chunk_bytes;
        /** Non-zero if an error or end of file was encountered by the feeding task. */
        int *input_error;
        /** Current output buffer. */
-       char *buf;
+       char **bufp;
        /** Number of bytes loaded in the output buffer. */
        size_t *loaded;
        /** Number of audio channels of the current stream. */
@@ -111,6 +107,8 @@ struct writer_node_group {
        struct task task;
        /** Whether the group is open, i.e. wng_open() was called. */
        int open;
+       /** Max number of bytes written in the previous post_select() call. */
+       int last_written;
 };
 
 /** Loop over each writer node in a writer group. */