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_SEEK_H__
00034 #define __OGGZ_SEEK_H__
00035
00096 long oggz_get_duration (OGGZ * oggz);
00097
00103 oggz_off_t oggz_get_length (OGGZ * oggz);
00104
00113 ogg_int64_t oggz_tell_units (OGGZ * oggz);
00114
00123 ogg_int64_t oggz_seek_units (OGGZ * oggz, ogg_int64_t units, int whence);
00124
00133 ogg_int64_t
00134 oggz_tell_granulepos (OGGZ * oggz);
00135
00148 oggz_off_t oggz_tell (OGGZ * oggz);
00149
00157 oggz_off_t oggz_seek (OGGZ * oggz, oggz_off_t offset, int whence);
00158
00165 off_t
00166 oggz_seek_position (OGGZ * oggz, oggz_position * position);
00167
00168 #ifdef _UNIMPLEMENTED
00169 long oggz_seek_packets (OGGZ * oggz, long serialno, long packets, int whence);
00170 #endif
00171
00293 int oggz_get_preroll (OGGZ * oggz, long serialno);
00294
00306 int oggz_set_preroll (OGGZ * oggz, long serialno, int preroll);
00307
00317 int oggz_get_granuleshift (OGGZ * oggz, long serialno);
00318
00331 int oggz_set_granuleshift (OGGZ * oggz, long serialno, int granuleshift);
00332
00345 int oggz_get_granulerate (OGGZ * oggz, long serialno,
00346 ogg_int64_t * granulerate_n,
00347 ogg_int64_t * granulerate_d);
00348
00362 int oggz_set_granulerate (OGGZ * oggz, long serialno,
00363 ogg_int64_t granule_rate_numerator,
00364 ogg_int64_t granule_rate_denominator);
00365
00383 typedef ogg_int64_t (*OggzMetric) (OGGZ * oggz, long serialno,
00384 ogg_int64_t granulepos, void * user_data);
00385
00408 int oggz_set_metric (OGGZ * oggz, long serialno, OggzMetric metric,
00409 void * user_data);
00410
00411 #ifdef _UNIMPLEMENTED
00412
00468 typedef int (*OggzOrder) (OGGZ * oggz, ogg_packet * op, void * target,
00469 void * user_data);
00477 int oggz_set_order (OGGZ * oggz, long serialno, OggzOrder order,
00478 void * user_data);
00479
00480 long oggz_seek_byorder (OGGZ * oggz, void * target);
00481
00482 #endif
00483
00497 int oggz_set_data_start (OGGZ * oggz, oggz_off_t offset);
00514 ogg_int64_t
00515 oggz_bounded_seek_set (OGGZ * oggz,
00516 ogg_int64_t unit_target,
00517 ogg_int64_t offset_begin,
00518 ogg_int64_t offset_end);
00519
00520 #endif