Chris@1
|
1 <html>
|
Chris@1
|
2
|
Chris@1
|
3 <head>
|
Chris@1
|
4 <title>vorbisfile - seeking_test.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>seeking_test.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
|
Chris@1
|
27 #include <stdlib.h>
|
Chris@1
|
28 #include <stdio.h>
|
Chris@1
|
29 #include "vorbis/codec.h"
|
Chris@1
|
30 #include "vorbis/vorbisfile.h"
|
Chris@1
|
31
|
Chris@1
|
32 int main(){
|
Chris@1
|
33 OggVorbis_File ov;
|
Chris@1
|
34 int i;
|
Chris@1
|
35
|
Chris@1
|
36 #ifdef _WIN32 /* We need to set stdin to binary mode under Windows */
|
Chris@1
|
37 _setmode( _fileno( stdin ), _O_BINARY );
|
Chris@1
|
38 #endif
|
Chris@1
|
39
|
Chris@1
|
40 /* open the file/pipe on stdin */
|
Chris@1
|
41 if(ov_open_callbacks(stdin,&ov,NULL,-1,OV_CALLBACKS_NOCLOSE)==-1){
|
Chris@1
|
42 printf("Could not open input as an OggVorbis file.\n\n");
|
Chris@1
|
43 exit(1);
|
Chris@1
|
44 }
|
Chris@1
|
45
|
Chris@1
|
46 /* print details about each logical bitstream in the input */
|
Chris@1
|
47 if(ov_seekable(&ov)){
|
Chris@1
|
48 double length=ov_time_total(&ov,-1);
|
Chris@1
|
49 printf("testing seeking to random places in %g seconds....\n",length);
|
Chris@1
|
50 for(i=0;i<100;i++){
|
Chris@1
|
51 double val=(double)rand()/RAND_MAX*length;
|
Chris@1
|
52 ov_time_seek(&ov,val);
|
Chris@1
|
53 printf("\r\t%d [%gs]... ",i,val);
|
Chris@1
|
54 fflush(stdout);
|
Chris@1
|
55 }
|
Chris@1
|
56
|
Chris@1
|
57 printf("\r \nOK.\n\n");
|
Chris@1
|
58 }else{
|
Chris@1
|
59 printf("Standard input was not seekable.\n");
|
Chris@1
|
60 }
|
Chris@1
|
61
|
Chris@1
|
62 ov_clear(&ov);
|
Chris@1
|
63 return 0;
|
Chris@1
|
64 }
|
Chris@1
|
65
|
Chris@1
|
66 </b></pre>
|
Chris@1
|
67 </td>
|
Chris@1
|
68 </tr>
|
Chris@1
|
69 </table>
|
Chris@1
|
70
|
Chris@1
|
71
|
Chris@1
|
72 <br><br>
|
Chris@1
|
73 <hr noshade>
|
Chris@1
|
74 <table border=0 width=100%>
|
Chris@1
|
75 <tr valign=top>
|
Chris@1
|
76 <td><p class=tiny>copyright © 2000-2010 Xiph.Org</p></td>
|
Chris@1
|
77 <td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/index.html">Ogg Vorbis</a></p></td>
|
Chris@1
|
78 </tr><tr>
|
Chris@1
|
79 <td><p class=tiny>Vorbisfile documentation</p></td>
|
Chris@1
|
80 <td align=right><p class=tiny>vorbisfile version 1.3.2 - 20101101</p></td>
|
Chris@1
|
81 </tr>
|
Chris@1
|
82 </table>
|
Chris@1
|
83
|
Chris@1
|
84 </body>
|
Chris@1
|
85
|
Chris@1
|
86 </html>
|