00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
#ifndef __OGGZ_H__
00034
#define __OGGZ_H__
00035
00036
#include <stdio.h>
00037
#include <sys/types.h>
00038
00039
#include <ogg/ogg.h>
00040
#include <oggz/oggz_constants.h>
00041
#include <oggz/oggz_table.h>
00042
00043
#ifdef __cplusplus
00044
extern "C" {
00045
#endif
00046
00441 typedef void OGGZ;
00442
00449
OGGZ *
oggz_new (
int flags);
00450
00458
OGGZ *
oggz_open (
const char * filename,
int flags);
00459
00467
OGGZ *
oggz_open_stdio (FILE * file,
int flags);
00468
00477
int oggz_flush (OGGZ * oggz);
00478
00486
int oggz_close (OGGZ * oggz);
00487
00498
int oggz_get_bos (OGGZ * oggz,
long serialno);
00499
00510
int oggz_get_eos (OGGZ * oggz,
long serialno);
00511
00543 typedef int (*
OggzReadPacket) (
OGGZ * oggz, ogg_packet * op,
long serialno,
00544
void * user_data);
00545
00569
int oggz_set_read_callback (OGGZ * oggz,
long serialno,
00570
OggzReadPacket read_packet,
void * user_data);
00571
00586
long oggz_read (OGGZ * oggz,
long n);
00587
00601
long oggz_read_input (OGGZ * oggz,
unsigned char * buf,
long n);
00602
00689 typedef int (*
OggzWriteHungry) (
OGGZ * oggz,
int empty,
void * user_data);
00690
00708
int oggz_write_set_hungry_callback (OGGZ * oggz,
00709
OggzWriteHungry hungry,
00710
int only_when_empty,
00711
void * user_data);
00749
int oggz_write_feed (OGGZ * oggz, ogg_packet * op,
long serialno,
int flush,
00750
int * guard);
00751
00766
long oggz_write_output (OGGZ * oggz,
unsigned char * buf,
long n);
00767
00781
long oggz_write (OGGZ * oggz,
long n);
00782
00791
long oggz_write_get_next_page_size (OGGZ * oggz);
00792
00963
int oggz_set_metric_linear (OGGZ * oggz,
long serialno,
00964 ogg_int64_t granule_rate_numerator,
00965 ogg_int64_t granule_rate_denominator);
00966
00984 typedef ogg_int64_t (*
OggzMetric) (
OGGZ * oggz,
long serialno,
00985 ogg_int64_t granulepos,
void * user_data);
00986
01009
int oggz_set_metric (OGGZ * oggz,
long serialno,
OggzMetric metric,
01010
void * user_data);
01011
01019 ogg_int64_t
oggz_tell_units (OGGZ * oggz);
01020
01028 ogg_int64_t
oggz_seek_units (OGGZ * oggz, ogg_int64_t units,
int whence);
01029
01030
#ifdef _UNIMPLEMENTED
01031
01083
typedef int (*OggzOrder) (
OGGZ * oggz, ogg_packet * op,
void * target,
01084
void * user_data);
01090
int oggz_set_order (OGGZ * oggz,
long serialno, OggzOrder order,
01091
void * user_data);
01092
01093
long oggz_seek_byorder (OGGZ * oggz,
void * target);
01094
01095
#endif
01096
01107
int oggz_purge (OGGZ * oggz);
01108
01122
int oggz_set_data_start (OGGZ * oggz, off_t offset);
01123
01136 off_t
oggz_tell (OGGZ * oggz);
01137
01145 off_t
oggz_seek (OGGZ * oggz, off_t offset,
int whence);
01146
01147
#ifdef _UNIMPLEMENTED
01148
long oggz_seek_packets (OGGZ * oggz,
long serialno,
long packets,
int whence);
01149
#endif
01150
01161
long oggz_serialno_new (OGGZ * oggz);
01162
01163
#include <oggz/oggz_io.h>
01164
#include <oggz/oggz_deprecated.h>
01165
01166
#ifdef __cplusplus
01167
}
01168
#endif
01169
01170
#endif