| 1 |
|
|---|
| 2 |
|
|---|
| 3 |
|
|---|
| 4 |
|
|---|
| 5 |
|
|---|
| 6 |
#ifndef _SKELETON_H |
|---|
| 7 |
#define _SKELETON_H |
|---|
| 8 |
|
|---|
| 9 |
#ifdef __cplusplus |
|---|
| 10 |
extern "C" { |
|---|
| 11 |
#endif |
|---|
| 12 |
|
|---|
| 13 |
#include <ogg/ogg.h> |
|---|
| 14 |
|
|---|
| 15 |
#define SKELETON_VERSION_MAJOR 3 |
|---|
| 16 |
#define SKELETON_VERSION_MINOR 0 |
|---|
| 17 |
#define FISHEAD_IDENTIFIER "fishead\0" |
|---|
| 18 |
#define FISBONE_IDENTIFIER "fisbone\0" |
|---|
| 19 |
#define FISHEAD_SIZE 64 |
|---|
| 20 |
#define FISBONE_SIZE 52 |
|---|
| 21 |
#define FISBONE_MESSAGE_HEADER_OFFSET 44 |
|---|
| 22 |
|
|---|
| 23 |
|
|---|
| 24 |
typedef struct { |
|---|
| 25 |
ogg_uint16_t version_major; |
|---|
| 26 |
ogg_uint16_t version_minor; |
|---|
| 27 |
|
|---|
| 28 |
|
|---|
| 29 |
ogg_int64_t ptime_n; |
|---|
| 30 |
ogg_int64_t ptime_d; |
|---|
| 31 |
ogg_int64_t btime_n; |
|---|
| 32 |
ogg_int64_t btime_d; |
|---|
| 33 |
|
|---|
| 34 |
unsigned char UTC[20]; |
|---|
| 35 |
} fishead_packet; |
|---|
| 36 |
|
|---|
| 37 |
|
|---|
| 38 |
typedef struct { |
|---|
| 39 |
ogg_uint32_t serial_no; |
|---|
| 40 |
ogg_uint32_t nr_header_packet; |
|---|
| 41 |
|
|---|
| 42 |
ogg_int64_t granule_rate_n; |
|---|
| 43 |
ogg_int64_t granule_rate_d; |
|---|
| 44 |
ogg_int64_t start_granule; |
|---|
| 45 |
ogg_uint32_t preroll; |
|---|
| 46 |
unsigned char granule_shift; |
|---|
| 47 |
char *message_header_fields; |
|---|
| 48 |
|
|---|
| 49 |
ogg_uint32_t current_header_size; |
|---|
| 50 |
} fisbone_packet; |
|---|
| 51 |
|
|---|
| 52 |
extern int write_ogg_page_to_file(ogg_page *og, FILE *out); |
|---|
| 53 |
extern int add_message_header_field(fisbone_packet *fp, char *header_key, char *header_value); |
|---|
| 54 |
|
|---|
| 55 |
extern int ogg_from_fishead(fishead_packet *fp,ogg_packet *op); |
|---|
| 56 |
extern int ogg_from_fisbone(fisbone_packet *fp,ogg_packet *op); |
|---|
| 57 |
extern int fisbone_clear(fisbone_packet *fp); |
|---|
| 58 |
extern int fishead_from_ogg(ogg_packet *op,fishead_packet *fp); |
|---|
| 59 |
extern int fisbone_from_ogg(ogg_packet *op,fisbone_packet *fp); |
|---|
| 60 |
extern int fishead_from_ogg_page(const ogg_page *og,fishead_packet *fp); |
|---|
| 61 |
extern int fisbone_from_ogg_page(const ogg_page *og,fisbone_packet *fp); |
|---|
| 62 |
extern int add_fishead_to_stream(ogg_stream_state *os, fishead_packet *fp); |
|---|
| 63 |
extern int add_fisbone_to_stream(ogg_stream_state *os, fisbone_packet *fp); |
|---|
| 64 |
extern int add_eos_packet_to_stream(ogg_stream_state *os); |
|---|
| 65 |
extern int flush_ogg_stream_to_file(ogg_stream_state *os, FILE *out); |
|---|
| 66 |
|
|---|
| 67 |
#ifdef __cplusplus |
|---|
| 68 |
} |
|---|
| 69 |
#endif |
|---|
| 70 |
|
|---|
| 71 |
#endif |
|---|
| 72 |
|
|---|
| 73 |
|
|---|
| 74 |
|
|---|
| 75 |
|
|---|
| 76 |
|
|---|
| 77 |
|
|---|