fixed-point: got stereo to work again by fixing renormalise_bands()
[opus.git] / libcelt / celt_header.h
index db87ad3..e267e22 100644 (file)
    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
+#ifndef CELT_HEADER_H
+#define CELT_HEADER_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #include "celt.h"
+#include "celt_types.h"
 
+/** Header data to be used for Ogg files (or possibly other encapsulation) 
+    @brief Header data 
+ */
 typedef struct {
-   char codec_id[8];
-   char codec_version[20];
-   int version_id;
-   int header_size;
-   int mode;
-   int sample_rate;
-   int nb_channels;
-   int bytes_per_packet;
-   int extra_headers;
+   char         codec_id[8];       /**< MUST be "CELT    " (four spaces) */
+   char         codec_version[20]; /**< Version used (as string) */
+   celt_int32_t version_id;        /**< Version id (negative for until stream is frozen) */
+   celt_int32_t header_size;       /**< Size of this header */
+   celt_int32_t sample_rate;       /**< Sampling rate of the original audio */
+   celt_int32_t nb_channels;       /**< Number of channels */
+   celt_int32_t frame_size;        /**< Samples per frame (per channel) */
+   celt_int32_t overlap;           /**< Overlapping samples (per channel) */
+   celt_int32_t bytes_per_packet;  /**< Number of bytes per compressed packet (0 if unknown) */
+   celt_int32_t extra_headers;     /**< Number of additional headers that follow this header */
 } CELTHeader;
 
-void celt_init_header(CELTHeader *header, int rate, int nb_channels, const struct CELTMode *m);
+/** Creates a basic header struct */
+void celt_header_init(CELTHeader *header, const CELTMode *m);
+
+int celt_header_to_packet(const CELTHeader *header, unsigned char *packet, celt_uint32_t size);
+
+int celt_header_from_packet(const unsigned char *packet, celt_uint32_t size, CELTHeader *header);
 
-int celt_header_to_packet(const CELTHeader *header, char *packet, int size);
+#ifdef __cplusplus
+}
+#endif
 
-int celt_packet_to_header(const char *packet, int size, CELTHeader *header);
+#endif /* CELT_HEADER_H */