annotate src/libvorbis-1.3.3/doc/vorbisfile/vorbisfile_example_c.html @ 83:ae30d91d2ffe

Replace these with versions built using an older toolset (so as to avoid ABI compatibilities when linking on Ubuntu 14.04 for packaging purposes)
author Chris Cannam
date Fri, 07 Feb 2020 11:51:13 +0000
parents 05aa0afa9217
children
rev   line source
Chris@1 1 <html>
Chris@1 2
Chris@1 3 <head>
Chris@1 4 <title>vorbisfile - vorbisfile_example.c</title>
Chris@1 5 <link rel=stylesheet href="style.css" type="text/css">
Chris@1 6 </head>
Chris@1 7
Chris@1 8 <body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
Chris@1 9 <table border=0 width=100%>
Chris@1 10 <tr>
Chris@1 11 <td><p class=tiny>Vorbisfile documentation</p></td>
Chris@1 12 <td align=right><p class=tiny>vorbisfile version 1.3.2 - 20101101</p></td>
Chris@1 13 </tr>
Chris@1 14 </table>
Chris@1 15
Chris@1 16 <h1>vorbisfile_example.c</h1>
Chris@1 17
Chris@1 18 <p>
Chris@1 19 The example program source:
Chris@1 20
Chris@1 21 <br><br>
Chris@1 22 <table border=0 width=100% color=black cellspacing=0 cellpadding=7>
Chris@1 23 <tr bgcolor=#cccccc>
Chris@1 24 <td>
Chris@1 25 <pre><b>
Chris@1 26 #include &lt;stdio.h&gt;
Chris@1 27 #include &lt;stdlib.h&gt;
Chris@1 28 #include &lt;math.h&gt;
Chris@1 29 #include "vorbis/codec.h"
Chris@1 30 #include "vorbis/vorbisfile.h"
Chris@1 31
Chris@1 32 #ifdef _WIN32
Chris@1 33 #include &lt;io.h&gt;
Chris@1 34 #include &lt;fcntl.h&gt;
Chris@1 35 #endif
Chris@1 36
Chris@1 37 char pcmout[4096];
Chris@1 38
Chris@1 39 int main(int argc, char **argv){
Chris@1 40 OggVorbis_File vf;
Chris@1 41 int eof=0;
Chris@1 42 int current_section;
Chris@1 43
Chris@1 44 #ifdef _WIN32
Chris@1 45 _setmode( _fileno( stdin ), _O_BINARY );
Chris@1 46 _setmode( _fileno( stdout ), _O_BINARY );
Chris@1 47 #endif
Chris@1 48
Chris@1 49 if(ov_open_callbacks(stdin, &vf, NULL, 0, OV_CALLBACKS_NOCLOSE) < 0) {
Chris@1 50 fprintf(stderr,"Input does not appear to be an Ogg bitstream.\n");
Chris@1 51 exit(1);
Chris@1 52 }
Chris@1 53
Chris@1 54 {
Chris@1 55 char **ptr=ov_comment(&vf,-1)->user_comments;
Chris@1 56 vorbis_info *vi=ov_info(&vf,-1);
Chris@1 57 while(*ptr){
Chris@1 58 fprintf(stderr,"%s\n",*ptr);
Chris@1 59 ++ptr;
Chris@1 60 }
Chris@1 61 fprintf(stderr,"\nBitstream is %d channel, %ldHz\n",vi->channels,vi->rate);
Chris@1 62 fprintf(stderr,"Encoded by: %s\n\n",ov_comment(&vf,-1)->vendor);
Chris@1 63 }
Chris@1 64
Chris@1 65 while(!eof){
Chris@1 66 long ret=ov_read(&vf,pcmout,sizeof(pcmout),0,2,1,&current_section);
Chris@1 67 if (ret == 0) {
Chris@1 68 /* EOF */
Chris@1 69 eof=1;
Chris@1 70 } else if (ret < 0) {
Chris@1 71 /* error in the stream. Not a problem, just reporting it in
Chris@1 72 case we (the app) cares. In this case, we don't. */
Chris@1 73 } else {
Chris@1 74 /* we don't bother dealing with sample rate changes, etc, but
Chris@1 75 you'll have to */
Chris@1 76 fwrite(pcmout,1,ret,stdout);
Chris@1 77 }
Chris@1 78 }
Chris@1 79
Chris@1 80 ov_clear(&vf);
Chris@1 81
Chris@1 82 fprintf(stderr,"Done.\n");
Chris@1 83 return(0);
Chris@1 84 }
Chris@1 85
Chris@1 86 </b></pre>
Chris@1 87 </td>
Chris@1 88 </tr>
Chris@1 89 </table>
Chris@1 90
Chris@1 91
Chris@1 92 <br><br>
Chris@1 93 <hr noshade>
Chris@1 94 <table border=0 width=100%>
Chris@1 95 <tr valign=top>
Chris@1 96 <td><p class=tiny>copyright &copy; 2000-2010 Xiph.Org</p></td>
Chris@1 97 <td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/index.html">Ogg Vorbis</a></p></td>
Chris@1 98 </tr><tr>
Chris@1 99 <td><p class=tiny>Vorbisfile documentation</p></td>
Chris@1 100 <td align=right><p class=tiny>vorbisfile version 1.3.2 - 20101101</p></td>
Chris@1 101 </tr>
Chris@1 102 </table>
Chris@1 103
Chris@1 104 </body>
Chris@1 105
Chris@1 106 </html>