# SpeexHeader: Makes it easy to write/parse an Ogg/Speex header

## Classes

struct | SpeexHeader

## Defines

#define | SPEEX_HEADER_STRING_LENGTH 8
#define | SPEEX_HEADER_VERSION_LENGTH 20

## Functions

void | speex_init_header (SpeexHeader *header, int rate, int nb_channels, const struct SpeexMode *m)
char * | speex_header_to_packet (SpeexHeader *header, int *size)
SpeexHeader * | speex_packet_to_header (char *packet, int size)
void | speex_header_free (void *ptr)

## Detailed Description

This is the Speex header for the Ogg encapsulation. You don't need that if you just use RTP.

## Define Documentation

#define SPEEX_HEADER_STRING_LENGTH 8

Length of the Speex header identifier

#define SPEEX_HEADER_VERSION_LENGTH 20

Maximum number of characters for encoding the Speex version number in the header

## Function Documentation

void speex_header_free | ( | void * | ptr | ) |

Frees the memory allocated by either speex_header_to_packet() or speex_packet_to_header()

char* speex_header_to_packet | ( | SpeexHeader * | header,
|  | int * | size |
| ) |  |  |

Creates the header packet from the header itself (mostly involves endianness conversion)

void speex_init_header | ( | SpeexHeader * | header,
|  | int | rate,
|  | int | nb_channels,
|  | const struct SpeexMode * | m |
| ) |  |  |

Initializes a SpeexHeader using basic information

SpeexHeader* speex_packet_to_header | ( | char * | packet,
|  | int | size |
| ) |  |  |

Creates a SpeexHeader from a packet