openalbridge/oggvorbis.h
changeset 2265 eae64600fb69
parent 2260 31756e21c436
child 2266 289dc8e51210
equal deleted inserted replaced
2264:b8fff48235de 2265:eae64600fb69
    29 typedef struct vorbis_info{
    29 typedef struct vorbis_info{
    30     int version;
    30     int version;
    31     int channels;
    31     int channels;
    32     long rate;
    32     long rate;
    33     /* The below bitrate declarations are *hints*.
    33     /* The below bitrate declarations are *hints*.
    34      Combinations of the three values carry the following implications:
    34      Combinations of the three values carry the following implications: all three set to the same value: implies a fixed rate bitstream
    35      all three set to the same value: implies a fixed rate bitstream
       
    36      only nominal set: implies a VBR stream that averages the nominal bitrate.  No hard upper/lower limit
    35      only nominal set: implies a VBR stream that averages the nominal bitrate.  No hard upper/lower limit
    37      upper and or lower set: implies a VBR bitstream that obeys the bitrate limits. nominal may also be set to give a nominal rate.
    36      upper and or lower set: implies a VBR bitstream that obeys the bitrate limits. nominal may also be set to give a nominal rate.
    38      none set: the coder does not care to speculate. */
    37      none set: the coder does not care to speculate. */
    39     long bitrate_upper;
    38     long bitrate_upper;
    40     long bitrate_nominal;
    39     long bitrate_nominal;
    52 typedef struct {
    51 typedef struct {
    53     unsigned char   *body_data;    /* bytes from packet bodies */
    52     unsigned char   *body_data;    /* bytes from packet bodies */
    54     long    body_storage;          /* storage elements allocated */
    53     long    body_storage;          /* storage elements allocated */
    55     long    body_fill;             /* elements stored; fill mark */
    54     long    body_fill;             /* elements stored; fill mark */
    56     long    body_returned;         /* elements of fill returned */
    55     long    body_returned;         /* elements of fill returned */
    57     int     *lacing_vals;      /* The values that will go to the segment table */
    56     int     *lacing_vals;      	   /* The values that will go to the segment table */
    58     ogg_int64_t *granule_vals; 
    57     ogg_int64_t *granule_vals; 
    59     /* granulepos values for headers. Not compact
    58     /* granulepos values for headers. Not compact this way, but it is simple coupled to the lacing fifo */
    60      this way, but it is simple coupled to the lacing fifo */
       
    61     long    lacing_storage;
    59     long    lacing_storage;
    62     long    lacing_fill;
    60     long    lacing_fill;
    63     long    lacing_packet;
    61     long    lacing_packet;
    64     long    lacing_returned;
    62     long    lacing_returned;
    65     unsigned char    header[282];      /* working space for header encode */
    63     unsigned char    header[282];      /* working space for header encode */
   170 extern ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i);
   168 extern ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i);
   171 extern long ov_read(OggVorbis_File *vf,char *buffer,int length,int bigendianp,int word,int sgned,int *bitstream);
   169 extern long ov_read(OggVorbis_File *vf,char *buffer,int length,int bigendianp,int word,int sgned,int *bitstream);
   172 extern vorbis_info *ov_info(OggVorbis_File *vf,int link);
   170 extern vorbis_info *ov_info(OggVorbis_File *vf,int link);
   173 extern vorbis_comment *ov_comment(OggVorbis_File *f, int num);
   171 extern vorbis_comment *ov_comment(OggVorbis_File *f, int num);
   174 extern int ov_clear(OggVorbis_File *vf);
   172 extern int ov_clear(OggVorbis_File *vf);
       
   173 extern int ov_open_callbacks(void *datasource, OggVorbis_File *vf, char *initial, long ibytes, ov_callbacks callbacks);
   175 
   174 
   176 #endif /*_OGGVORBIS_H*/
   175 #endif /*_OGGVORBIS_H*/