Lines Matching defs:psf
138 static int ogg_close (SF_PRIVATE *psf) ;
139 static int ogg_stream_classify (SF_PRIVATE *psf, OGG_PRIVATE * odata) ;
140 static int ogg_page_classify (SF_PRIVATE * psf, const ogg_page * og) ;
149 ogg_read_first_page (SF_PRIVATE *psf, OGG_PRIVATE *odata)
163 ret = ogg_sync_fseek (psf, psf->header.indx, SEEK_SET) ;
167 buffer = ogg_sync_buffer (&odata->osync, psf->header.indx) ;
170 memcpy (buffer, psf->header.ptr, psf->header.indx) ;
171 ogg_sync_wrote (&odata->osync, psf->header.indx) ;
173 ret = ogg_sync_next_page (psf, &odata->opage, SF_MAX ((sf_count_t) 0, 4096 - psf->header.indx), NULL) ;
179 return psf->error ;
187 psf_log_printf (psf, "Input does not appear to be the start of an Ogg bitstream.\n") ;
199 psf_log_printf (psf, "Error reading first page of Ogg bitstream data\n") ;
205 psf_log_printf (psf, "Error reading initial header page packet.\n") ;
213 ogg_write_page (SF_PRIVATE *psf, ogg_page *page)
216 bytes = psf_fwrite (page->header, 1, page->header_len, psf) ;
217 bytes += psf_fwrite (page->body, 1, page->body_len, psf) ;
223 ogg_sync_ftell (SF_PRIVATE *psf)
224 { OGG_PRIVATE* odata = (OGG_PRIVATE *) psf->container_data ;
227 position = psf_ftell (psf) ;
232 psf->error = SFE_INTERNAL ;
242 ogg_sync_fseek (SF_PRIVATE *psf, sf_count_t offset, int whence)
243 { OGG_PRIVATE* odata = (OGG_PRIVATE *) psf->container_data ;
246 ret = psf_fseek (psf, offset, whence) ;
257 ogg_sync_next_page (SF_PRIVATE * psf, ogg_page *og, sf_count_t readmax, sf_count_t *offset)
258 { OGG_PRIVATE* odata = (OGG_PRIVATE *) psf->container_data ;
280 { psf_log_printf (psf, "Ogg : Skipped %d bytes looking for the next page. Corrupted bitstream?!\n", position) ;
303 { psf->error = SFE_MALLOC_FAILED ;
306 read_ret = psf_fread (buffer, 1, nb_read, psf) ;
308 return psf->error ? -1 : 0 ;
315 ogg_stream_next_page (SF_PRIVATE *psf, OGG_PRIVATE *odata)
322 { nn = ogg_sync_next_page (psf, &odata->opage, -1, NULL) ;
324 { psf_log_printf (psf, "Ogg : File ended unexpectedly without an End-Of-Stream flag set.\n") ;
338 { psf->error = SFE_INTERNAL ;
346 ogg_stream_unpack_page (SF_PRIVATE *psf, OGG_PRIVATE *odata)
360 { nn = ogg_stream_next_page (psf, odata) ;
378 psf_log_printf (psf, "Ogg : Warning, libogg reports a hole at %d bytes.\n", ogg_sync_ftell (psf)) ;
393 { psf->error = SFE_INTERNAL ;
408 ogg_sync_last_page_before (SF_PRIVATE *psf, OGG_PRIVATE *odata, uint64_t *gp_out, sf_count_t offset, int32_t serialno)
421 position = ogg_sync_fseek (psf, begin, SEEK_SET) ;
426 { ret = ogg_sync_next_page (psf, &odata->opage, end - position, &position) ;
442 { psf->error = SFE_MALFORMED_FILE ;
456 ogg_stream_seek_page_search (SF_PRIVATE *psf, OGG_PRIVATE *odata,
519 seek_pos = ogg_sync_fseek (psf, bisect, SEEK_SET) ;
535 { ret = ogg_sync_next_page (psf, &page, boundary - seek_pos, &seek_pos) ;
557 seek_pos = ogg_sync_fseek (psf, bisect, SEEK_SET) ;
690 seek_pos = ogg_sync_fseek (psf, best_start, SEEK_SET) ;
696 { ret = ogg_sync_next_page (psf, &page, -1, &seek_pos) ;
712 ogg_open (SF_PRIVATE *psf)
714 sf_count_t pos = psf_ftell (psf) ;
717 psf->container_data = odata ;
718 psf->container_close = ogg_close ;
720 if (psf->file.mode == SFM_RDWR)
723 if (psf->file.mode == SFM_READ)
724 if ((error = ogg_stream_classify (psf, odata)) != 0)
727 if (SF_ENDIAN (psf->sf.format) != 0)
730 switch (psf->sf.format)
732 return ogg_vorbis_open (psf) ;
738 psf_fseek (psf, pos, SEEK_SET) ;
739 free (psf->container_data) ;
740 psf->container_data = NULL ;
741 psf->container_close = NULL ;
742 return flac_open (psf) ;
745 return ogg_opus_open (psf) ;
749 return ogg_speex_open (psf) ;
753 return ogg_pcm_open (psf) ;
760 psf_log_printf (psf, "%s : bad psf->sf.format 0x%x.\n", __func__, psf->sf.format) ;
769 ogg_close (SF_PRIVATE *psf)
770 { OGG_PRIVATE* odata = psf->container_data ;
779 ogg_stream_classify (SF_PRIVATE *psf, OGG_PRIVATE* odata)
787 if ((error = ogg_read_first_page (psf, odata)) != 0)
790 odata->codec = ogg_page_classify (psf, &odata->opage) ;
794 psf->sf.format = SF_FORMAT_OGG | SF_FORMAT_VORBIS ;
799 psf->sf.format = SF_FORMAT_OGGFLAC ;
803 psf->sf.format = SF_FORMAT_OGG | SF_FORMAT_SPEEX ;
807 psf->sf.format = SF_FORMAT_OGG | SF_FORMAT_OPUS ;
811 psf_log_printf (psf, "Detected Ogg/PCM data. This is not supported yet.\n") ;
818 psf_log_printf (psf, "This Ogg bitstream contains some uknown data type.\n") ;
840 ogg_page_classify (SF_PRIVATE * psf, const ogg_page * og)
848 { psf_log_printf (psf, "Ogg stream data : %s\n", codec_lookup [k].name) ;
849 psf_log_printf (psf, "Stream serialno : %u\n", (uint32_t) ogg_page_serialno (og)) ;
856 psf_log_printf (psf, "Ogg_stream data : '") ;
858 psf_log_printf (psf, "%c", isprint (og->body [k]) ? og->body [k] : '.') ;
859 psf_log_printf (psf, "' ") ;
861 psf_log_printf (psf, " %02x", og->body [k] & 0xff) ;
862 psf_log_printf (psf, "\n") ;
911 ogg_open (SF_PRIVATE *psf)
913 psf_log_printf (psf, "This version of libsndfile was compiled without Ogg/Vorbis support.\n") ;