Read data from the Ogg Vorbis file and place it in buf. Definition at line 111 of file audio_format_vorbis.c. 00112 { 00113 OggVorbis_File *vfp = fd->drv_data; 00114 size_t ret = 0; 00115 long rlen; 00116 char *out = (char *)buf; 00117 00118 len *= sizeof(int16_t); 00119 00120 /* Return 16 bits signed native endian */ 00121 while (ret < len) { 00122 #if G_BYTE_ORDER == G_BIG_ENDIAN 00123 rlen = ov_read(vfp, out + ret, len - ret, 1, 2, 1, NULL); 00124 #else /* G_BYTE_ORDER != G_BIG_ENDIAN */ 00125 rlen = ov_read(vfp, out + ret, len - ret, 0, 2, 1, NULL); 00126 #endif /* G_BYTE_ORDER == G_BIG_ENDIAN */ 00127 if (rlen <= 0) 00128 break; 00129 ret += rlen; 00130 } 00131 fd->time_cur = ov_time_tell(vfp); 00132 00133 return (ret / sizeof(int16_t)); 00134 } |
1.6.3