OggVorbis_File.html 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <html>
  2. <head>
  3. <title>vorbisfile - datatype - OggVorbis_File</title>
  4. <link rel=stylesheet href="style.css" type="text/css">
  5. </head>
  6. <body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
  7. <table border=0 width=100%>
  8. <tr>
  9. <td><p class=tiny>vorbisfile documentation</p></td>
  10. <td align=right><p class=tiny>vorbisfile - 20011218</p></td>
  11. </tr>
  12. </table>
  13. <h1>OggVorbis_File</h1>
  14. <p><i>declared in "vorbis/vorbisfile.h"</i></p>
  15. <p>
  16. The OggVorbis_File structure defines an Ogg Vorbis file.
  17. <p>
  18. This structure is used in all vorbisfile routines. Before it can be used, it must be initialized by <a href="ov_open.html">ov_open</a> or <a href="ov_open_callbacks.html">ov_open_callbacks</a>.
  19. <p>
  20. After use, the OggVorbis_File structure must be deallocated with a call to <a href="ov_clear.html">ov_clear()</a>.
  21. <p>Once a file or data source is passed to libvorbisfile, it is owned by vorbisfile. The file should not be used by any other applications or functions outside the Vorbisfile API.
  22. <br><br>
  23. <table border=0 width=100% color=black cellspacing=0 cellpadding=7>
  24. <tr bgcolor=#cccccc>
  25. <td>
  26. <pre><b>typedef struct {
  27. void *datasource; /* Pointer to a FILE *, etc. */
  28. int seekable;
  29. int64_t offset;
  30. int64_t end;
  31. ogg_sync_state oy;
  32. /* If the FILE handle isn't seekable (eg, a pipe), only the current
  33. stream appears */
  34. int links;
  35. int64_t *offsets;
  36. int64_t *dataoffsets;
  37. long *serialnos;
  38. int64_t *pcmlengths;
  39. vorbis_info *vi;
  40. vorbis_comment *vc;
  41. /* Decoding working state local storage */
  42. int64_t pcm_offset;
  43. int ready_state;
  44. long current_serialno;
  45. int current_link;
  46. double bittrack;
  47. double samptrack;
  48. ogg_stream_state os; /* take physical pages, weld into a logical
  49. stream of packets */
  50. vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */
  51. vorbis_block vb; /* local working space for packet->PCM decode */
  52. <a href="ov_callbacks.html">ov_callbacks</a> callbacks;
  53. } OggVorbis_File;</b></pre>
  54. </td>
  55. </tr>
  56. </table>
  57. <h3>Relevant Struct Members</h3>
  58. <dl>
  59. <dt><i>datasource</i></dt>
  60. <dd>Pointer to file or other ogg source.</dd>
  61. <dt><i>seekable</i></dt>
  62. <dd>Read-only int indicating whether file is seekable, i.e., physical file is seekable, a pipe isn't.</dd>
  63. <dt><i>links</i></dt>
  64. <dd>Read-only int indicating the number of logical bitstreams within the physical bitstream.</dd>
  65. <dt><i>ov_callbacks</i></dt>
  66. <dd>Collection of file manipulation routines to be used on this data source.</dd>
  67. </dl>
  68. <h3>Notes</h3>
  69. <p>If your system's <tt>&lt;sys/types.h></tt> does not
  70. define <tt>int64_t,</tt> you will need to define this as a 64-bit type
  71. inside your system's project file/Makefile, etc. On win32, for example,
  72. this should be defined as <tt>__int64</tt>. On the Unix platform, these
  73. are usually defined properly in the system header files.
  74. <p>
  75. <br><br>
  76. <hr noshade>
  77. <table border=0 width=100%>
  78. <tr valign=top>
  79. <td><p class=tiny>copyright &copy; 2001 vorbis team</p></td>
  80. <td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/index.html">Ogg Vorbis</a><br><a href="mailto:team@vorbis.org">team@vorbis.org</a></p></td>
  81. </tr><tr>
  82. <td><p class=tiny>vorbisfile documentation</p></td>
  83. <td align=right><p class=tiny>vorbisfile - 20011218</p></td>
  84. </tr>
  85. </table>
  86. </body>
  87. </html>