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
00423 typedef void OGGZ;
00424
00431
OGGZ *
oggz_new (
int flags);
00432
00440
OGGZ *
oggz_open (
char * filename,
int flags);
00441
00449
OGGZ *
oggz_open_stdio (FILE * file,
int flags);
00450
00459
int oggz_flush (OGGZ * oggz);
00460
00468
int oggz_close (OGGZ * oggz);
00469
00480
int oggz_get_bos (OGGZ * oggz,
long serialno);
00481
00492
int oggz_get_eos (OGGZ * oggz,
long serialno);
00493
00525 typedef int (*
OggzReadPacket) (
OGGZ * oggz, ogg_packet * op,
long serialno,
00526
void * user_data);
00527
00551
int oggz_set_read_callback (OGGZ * oggz,
long serialno,
00552 OggzReadPacket read_packet,
void * user_data);
00553
00564
long oggz_read (OGGZ * oggz,
long n);
00565
00575
long oggz_read_input (OGGZ * oggz,
unsigned char * buf,
long n);
00576
00663 typedef int (*
OggzWriteHungry) (
OGGZ * oggz,
int empty,
void * user_data);
00664
00682
int oggz_write_set_hungry_callback (OGGZ * oggz,
00683 OggzWriteHungry hungry,
00684
int only_when_empty,
00685
void * user_data);
00723
int oggz_write_feed (OGGZ * oggz, ogg_packet * op,
long serialno,
int flush,
00724
int * guard);
00725
00740
long oggz_write_output (OGGZ * oggz,
unsigned char * buf,
long n);
00741
00755
long oggz_write (OGGZ * oggz,
long n);
00756
00765
long oggz_write_get_next_page_size (OGGZ * oggz);
00766
00906
int oggz_set_metric_linear (OGGZ * oggz,
long serialno,
00907 ogg_int64_t granule_rate_numerator,
00908 ogg_int64_t granule_rate_denominator);
00909
00927 typedef ogg_int64_t (*
OggzMetric) (
OGGZ * oggz,
long serialno,
00928 ogg_int64_t granulepos,
void * user_data);
00929
00952
int oggz_set_metric (OGGZ * oggz,
long serialno, OggzMetric metric,
00953
void * user_data);
00954
00962 ogg_int64_t
oggz_tell_units (OGGZ * oggz);
00963
00971 ogg_int64_t
oggz_seek_units (OGGZ * oggz, ogg_int64_t units,
int whence);
00972
00973
#ifdef _UNIMPLEMENTED
00974
01026
typedef int (*OggzOrder) (
OGGZ * oggz, ogg_packet * op,
void * target,
01027
void * user_data);
01033
int oggz_set_order (OGGZ * oggz,
long serialno, OggzOrder order,
01034
void * user_data);
01035
01036
long oggz_seek_byorder (OGGZ * oggz,
void * target);
01037
01038
#endif
01039
01050
int oggz_purge (OGGZ * oggz);
01051
01065
int oggz_set_data_start (OGGZ * oggz, off_t offset);
01066
01079 off_t
oggz_tell (OGGZ * oggz);
01080
01088 off_t
oggz_seek (OGGZ * oggz, off_t offset,
int whence);
01089
01090
#ifdef _UNIMPLEMENTED
01091
long oggz_seek_packets (OGGZ * oggz,
long serialno,
long packets,
int whence);
01092
#endif
01093
01104
long oggz_serialno_new (OGGZ * oggz);
01105
01106
#include <oggz/oggz_io.h>
01107
01108
#endif