#ifndef OGG_DEMUX_H #define OGG_DEMUX_H #include typedef struct { uint8_t header[27]; /* Ogg 页头 */ uint8_t seg_count; uint8_t seg_table[255]; uint32_t body_size; } ogg_page_t; /* 从数据缓冲中解析一页 Ogg,返回页体大小,<0 表示错误 */ int ogg_parse_page(const uint8_t* buf, int buf_len, ogg_page_t* page); /* 根据 seg_table 把页体里的数据拼成一个 packet 返回 packet 长度,<0 表示错误 */ int ogg_extract_packet(const uint8_t* body, const ogg_page_t* page, uint8_t* packet, int packet_buf_size); #endif