1 #ifndef CLIB_VORBISFILE_PROTOS_H 2 #define CLIB_VORBISFILE_PROTOS_H 3 4 #include <exec/types.h> 5 #include <exec/semaphores.h> 6 #include <dos/dos.h> 7 8 #include <libraries/vorbisfile.h> 9 #include <utility/hooks.h> 10 #include <stdio.h> 11 12 #ifdef __cplusplus 13 extern "C" 14 { 15 #endif /* __cplusplus */ 16 17 /***************************/ 18 /* vorbisfile */ 19 20 int ov_clear(OggVorbis_File *vf); 21 int ov_fopen(char *path,OggVorbis_File *vf); 22 int ov_open(BPTR f,OggVorbis_File *vf,char *initial,long ibytes); 23 int ov_open_callbacks(void *datasource, OggVorbis_File *vf, char *initial, long ibytes, ov_callbacks *callbacks); 24 int ov_test(BPTR f,OggVorbis_File *vf,char *initial,long ibytes); 25 int ov_test_callbacks(void *datasource, OggVorbis_File *vf, char *initial, long ibytes, ov_callbacks *callbacks); 26 int ov_test_open(OggVorbis_File *vf); 27 28 long ov_bitrate(OggVorbis_File *vf,int i); 29 long ov_bitrate_instant(OggVorbis_File *vf); 30 long ov_seekable(OggVorbis_File *vf); 31 long ov_serialnumber(OggVorbis_File *vf,int i); 32 33 ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i); 34 ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i); 35 double ov_time_total(OggVorbis_File *vf,int i); 36 37 int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos); 38 int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos); 39 int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos); 40 int ov_time_seek(OggVorbis_File *vf,double pos); 41 int ov_time_seek_page(OggVorbis_File *vf, double pos); 42 43 ogg_int64_t ov_raw_tell(OggVorbis_File *vf); 44 ogg_int64_t ov_pcm_tell(OggVorbis_File *vf); 45 double ov_time_tell(OggVorbis_File *vf); 46 47 vorbis_info *ov_info(OggVorbis_File *vf,int link); 48 vorbis_comment *ov_comment(OggVorbis_File *vf,int link); 49 50 long ov_read(OggVorbis_File *vf,char *buffer,int length, int bigendianp,int word,int sgned,int *bitstream); 51 long ov_read_float(OggVorbis_File *vf,float ***pcm_channels,int length, int *bitstream); 52 long ov_streams(OggVorbis_File *vf); 53 54 /********************************/ 55 /* vorbisenc */ 56 57 int vorbis_encode_init(vorbis_info *vi, long channels, long rate, long max_bitrate, long nominal_bitrate, long min_bitrate); 58 int vorbis_encode_setup_managed(vorbis_info *vi, long channels, long rate, long max_bitrate, long nominal_bitrate, long min_bitrate); 59 int vorbis_encode_setup_vbr(vorbis_info *vi, long channels, long rate, float quality); 60 int vorbis_encode_init_vbr(vorbis_info *vi, long channels, long rate, float base_quality); 61 int vorbis_encode_setup_init(vorbis_info *vi); 62 int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg); 63 64 /******************************/ 65 /* required for enc too */ 66 67 void vorbis_info_init(vorbis_info *vi); 68 void vorbis_info_clear(vorbis_info *vi); 69 70 void vorbis_comment_init(vorbis_comment *vc); 71 void vorbis_comment_add_tag(vorbis_comment *vc, const char *tag, const char *contents); 72 void vorbis_comment_clear(vorbis_comment *vc); 73 74 int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi); 75 int vorbis_analysis_headerout(vorbis_dsp_state *v, vorbis_comment *vc, ogg_packet *op, ogg_packet *op_comm, ogg_packet *op_code); 76 float **vorbis_analysis_buffer(vorbis_dsp_state *v,int vals); 77 int vorbis_analysis_wrote(vorbis_dsp_state *v,int vals); 78 int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb); 79 int vorbis_analysis(vorbis_block *vb,ogg_packet *op); 80 81 int vorbis_synthesis_idheader(ogg_packet *op); 82 int vorbis_synthesis_headerin(vorbis_info *vi, vorbis_comment *vc, ogg_packet *op); 83 int vorbis_synthesis_init(vorbis_dsp_state *v, vorbis_info *vi); 84 int vorbis_synthesis_restart(vorbis_dsp_state *v); 85 int vorbis_synthesis(vorbis_block *vb, ogg_packet *op); 86 int vorbis_synthesis_trackonly(vorbis_block *vb, ogg_packet *op); 87 int vorbis_synthesis_blockin(vorbis_dsp_state *v, vorbis_block *vb); 88 int vorbis_synthesis_pcmout(vorbis_dsp_state *v, float ***pcm); 89 int vorbis_synthesis_lapout(vorbis_dsp_state *v, float ***pcm); 90 int vorbis_synthesis_read(vorbis_dsp_state *v, int samples); 91 long vorbis_packet_blocksize(vorbis_info *vi, ogg_packet *op); 92 int vorbis_synthesis_halfrate(vorbis_info *v,int flag); 93 int vorbis_synthesis_halfrate_p(vorbis_info *v); 94 95 96 97 98 int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb); 99 int vorbis_block_clear(vorbis_block *vb); 100 void vorbis_dsp_clear(vorbis_dsp_state *v); 101 102 int ogg_stream_init(ogg_stream_state *os,int serialno); 103 int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op); 104 int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); 105 int ogg_stream_packetpeek(ogg_stream_state *os, ogg_packet *op); 106 int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); 107 int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og); 108 int ogg_stream_flush(ogg_stream_state *os, ogg_page *og); 109 int ogg_stream_clear(ogg_stream_state *os); 110 111 int vorbis_bitrate_addblock(vorbis_block *vb); 112 int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd, ogg_packet *op); 113 114 void ogg_page_checksum_set(ogg_page *og); 115 int ogg_page_version(const ogg_page *og); 116 int ogg_page_continued(const ogg_page *og); 117 int ogg_page_bos(const ogg_page *og); 118 int ogg_page_eos(const ogg_page *og); 119 ogg_int64_t ogg_page_granulepos(const ogg_page *og); 120 int ogg_page_serialno(const ogg_page *og); 121 long ogg_page_pageno(const ogg_page *og); 122 int ogg_page_packets(const ogg_page *og); 123 124 int ogg_sync_init(ogg_sync_state *oy); 125 int ogg_sync_clear(ogg_sync_state *oy); 126 int ogg_sync_reset(ogg_sync_state *oy); 127 char *ogg_sync_buffer(ogg_sync_state *oy, long size); 128 int ogg_sync_wrote(ogg_sync_state *oy, long bytes); 129 long ogg_sync_pageseek(ogg_sync_state *oy, ogg_page *og); 130 int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); 131 132 int ogg_stream_reset(ogg_stream_state *os); 133 int ogg_stream_reset_serialno(ogg_stream_state *os, int serialno); 134 int ogg_stream_eos(ogg_stream_state *os); 135 136 int vorbis_info_blocksize(vorbis_info *vi, int zo); 137 138 void vorbis_comment_add(vorbis_comment *vc, const char *comment); 139 char *vorbis_comment_query(vorbis_comment *vc, const char *tag, int count); 140 int vorbis_comment_query_count(vorbis_comment *vc, const char *tag); 141 int vorbis_commentheader_out(vorbis_comment *vc, ogg_packet *op); 142 143 double vorbis_granule_time(vorbis_dsp_state *v, ogg_int64_t granulepos); 144 145 int ov_raw_seek_lap(OggVorbis_File *vf, ogg_int64_t pos); 146 int ov_pcm_seek_lap(OggVorbis_File *vf, ogg_int64_t pos); 147 int ov_pcm_seek_page_lap(OggVorbis_File *vf, ogg_int64_t pos); 148 int ov_time_seek_lap(OggVorbis_File *vf, double pos); 149 int ov_time_seek_page_lap(OggVorbis_File *vf, double pos); 150 151 int ov_crosslap(OggVorbis_File *vf1, OggVorbis_File *vf2); 152 153 int ov_halfrate(OggVorbis_File *vf, int flag); 154 int ov_halfrate_p(OggVorbis_File *vf); 155 156 157 const char *vorbis_version_string(void); 158 159 int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, int count, long e_o_s, ogg_int64_t granulepos); 160 int ogg_sync_check(ogg_sync_state *oy); 161 int ogg_stream_check(ogg_stream_state *os); 162 163 long ov_read_filter(OggVorbis_File *vf,char *buffer,int length,int bigendianp,int word,int sgned,int *bitstream,void (*filter)(float **pcm,long channels,long samples,void *filter_param),void *filter_param); 164 165 166 #ifdef __cplusplus 167 } 168 #endif /* __cplusplus */ 169 170 #endif /* CLIB_VORBISFILE_PROTOS_H */