Add forward error correction code to the udp sender/receiver.
[paraslash.git] / vss.h
diff --git a/vss.h b/vss.h
index 5c917e6d456a40672204c32aabb8cbc501ee4308..efabdf36915425e913176f57098f501f235c642a 100644 (file)
--- a/vss.h
+++ b/vss.h
@@ -25,3 +25,27 @@ const char *supported_audio_formats(void);
 #define VSS_PLAYING 8
 /** A client requested to change the audio file selector. */
 #define VSS_CHANGE 16
+
+/**
+ * Each paraslash sender may register arbitrary many clients to the virtual
+ * streaming system, possibly with varying fec parameters. In order to do so,
+ * it must allocate a \a fec_client_parms structure and pass it to \ref
+ * add_fec_client.
+ *
+ * Clients are automatically removed from that list by the vss if an error
+ * occurs, or if the sender requests deletion of a client by calling \ref
+ * vss_del_fec_client().
+ */
+struct fec_client;
+
+struct fec_client_parms {
+       uint8_t slices_per_group;
+       uint8_t data_slices_per_group;
+       uint16_t max_slice_bytes;
+       int (*send)(char *buf, size_t num_bytes, void *private_data);
+       void *private_data;
+};
+
+int vss_add_fec_client(struct fec_client_parms *fcp, struct fec_client **result);
+void vss_del_fec_client(struct fec_client *fc);
+size_t vss_get_fec_eof_packet(const char **buf);