Lines Matching refs:psf
115 static int w64_read_header (SF_PRIVATE *psf, int *blockalign, int *framesperblock) ;
116 static int w64_write_header (SF_PRIVATE *psf, int calc_length) ;
117 static int w64_close (SF_PRIVATE *psf) ;
124 w64_open (SF_PRIVATE *psf) in w64_open() argument
130 psf->container_data = wpriv ; in w64_open()
132 if (psf->file.mode == SFM_READ || (psf->file.mode == SFM_RDWR &&psf->filelength > 0)) in w64_open()
133 { if ((error = w64_read_header (psf, &blockalign, &framesperblock))) in w64_open()
137 if ((SF_CONTAINER (psf->sf.format)) != SF_FORMAT_W64) in w64_open()
140 subformat = SF_CODEC (psf->sf.format) ; in w64_open()
142 if (psf->file.mode == SFM_WRITE || psf->file.mode == SFM_RDWR) in w64_open()
143 { if (psf->is_pipe) in w64_open()
146 psf->endian = SF_ENDIAN_LITTLE ; /* All W64 files are little endian. */ in w64_open()
148 psf->blockwidth = psf->bytewidth * psf->sf.channels ; in w64_open()
151 { blockalign = wavlike_srate2blocksize (psf->sf.samplerate * psf->sf.channels) ; in w64_open()
158 psf->filelength = SF_COUNT_MAX - 10000 ; in w64_open()
159 psf->datalength = psf->filelength ; in w64_open()
160 if (psf->sf.frames <= 0) in w64_open()
161 psf->sf.frames = (psf->blockwidth) ? psf->filelength / psf->blockwidth : psf->filelength ; in w64_open()
164 if ((error = w64_write_header (psf, SF_FALSE))) in w64_open()
167 psf->write_header = w64_write_header ; in w64_open()
170 psf->container_close = w64_close ; in w64_open()
174 error = pcm_init (psf) ; in w64_open()
180 error = pcm_init (psf) ; in w64_open()
184 error = ulaw_init (psf) ; in w64_open()
188 error = alaw_init (psf) ; in w64_open()
193 error = float32_init (psf) ; in w64_open()
197 error = double64_init (psf) ; in w64_open()
201 error = wavlike_ima_init (psf, blockalign, framesperblock) ; in w64_open()
205 error = wavlike_msadpcm_init (psf, blockalign, framesperblock) ; in w64_open()
210 error = gsm610_init (psf) ; in w64_open()
224 w64_read_header (SF_PRIVATE *psf, int *blockalign, int *framesperblock) in w64_read_header() argument
231 if ((wpriv = psf->container_data) == NULL) in w64_read_header()
236 psf_binheader_readf (psf, "p", 0) ; in w64_read_header()
240 if (psf->header.indx & 0x7) in w64_read_header()
241 psf_binheader_readf (psf, "j", 8 - (psf->header.indx & 0x7)) ; in w64_read_header()
245 bytesread = psf_binheader_readf (psf, "eh8", &marker, &chunk_size) ; in w64_read_header()
253 if (psf->filelength != chunk_size) in w64_read_header()
254 psf_log_printf (psf, "riff : %D (should be %D)\n", chunk_size, psf->filelength) ; in w64_read_header()
256 psf_log_printf (psf, "riff : %D\n", chunk_size) ; in w64_read_header()
260 bytesread += psf_binheader_readf (psf, "h", &marker) ; in w64_read_header()
264 psf_log_printf (psf, "wave\n") ; in w64_read_header()
271 psf_log_printf (psf, "Looks like an ACID file. Exiting.\n") ; in w64_read_header()
278 psf_log_printf (psf, " fmt : %D\n", chunk_size) ; in w64_read_header()
283 if ((error = wavlike_read_fmt_chunk (psf, (int) chunk_size))) in w64_read_header()
287 psf_binheader_readf (psf, "j", 8 - (chunk_size % 8)) ; in w64_read_header()
297 psf_binheader_readf (psf, "e8", &frames) ; in w64_read_header()
298 psf_log_printf (psf, "fact : %D\n frames : %D\n", in w64_read_header()
309 psf->dataoffset = psf_ftell (psf) ; in w64_read_header()
310 psf->datalength = SF_MIN (chunk_size - 24, psf->filelength - psf->dataoffset) ; in w64_read_header()
315 psf_log_printf (psf, "data : %D\n", chunk_size) ; in w64_read_header()
319 if (! psf->sf.seekable) in w64_read_header()
323 psf_fseek (psf, chunk_size, SEEK_CUR) ; in w64_read_header()
328 psf_log_printf (psf, "levl : %D\n", chunk_size) ; in w64_read_header()
332 psf_log_printf (psf, "list : %D\n", chunk_size) ; in w64_read_header()
336 psf_log_printf (psf, "junk : %D\n", chunk_size) ; in w64_read_header()
340 psf_log_printf (psf, "bext : %D\n", chunk_size) ; in w64_read_header()
344 psf_log_printf (psf, "marker : %D\n", chunk_size) ; in w64_read_header()
348 psf_log_printf (psf, "summary list : %D\n", chunk_size) ; in w64_read_header()
352 …psf_log_printf (psf, "*** Unknown chunk marker (%X) at position %D with length %D. Skipping and co… in w64_read_header()
356 if (chunk_size >= psf->filelength) in w64_read_header()
357 …{ psf_log_printf (psf, "*** Chunk size %u > file length %D. Exiting parser.\n", chunk_size, psf->f… in w64_read_header()
361 if (psf->sf.seekable == 0 && (parsestage & HAVE_data)) in w64_read_header()
364 if (psf_ftell (psf) >= (psf->filelength - (2 * SIGNED_SIZEOF (dword)))) in w64_read_header()
369 psf_binheader_readf (psf, "j", dword - 24) ; in w64_read_header()
373 if (psf->dataoffset <= 0) in w64_read_header()
376 if (psf->sf.channels < 1) in w64_read_header()
379 if (psf->sf.channels > SF_MAX_CHANNELS) in w64_read_header()
382 psf->endian = SF_ENDIAN_LITTLE ; /* All W64 files are little endian. */ in w64_read_header()
384 if (psf_ftell (psf) != psf->dataoffset) in w64_read_header()
385 psf_fseek (psf, psf->dataoffset, SEEK_SET) ; in w64_read_header()
387 if (psf->blockwidth) in w64_read_header()
388 { if (psf->filelength - psf->dataoffset < psf->datalength) in w64_read_header()
389 psf->sf.frames = (psf->filelength - psf->dataoffset) / psf->blockwidth ; in w64_read_header()
391 psf->sf.frames = psf->datalength / psf->blockwidth ; in w64_read_header()
398 psf->sf.format = SF_FORMAT_W64 | u_bitwidth_to_subformat (psf->bytewidth * 8) ; in w64_read_header()
402 psf->sf.format = (SF_FORMAT_W64 | SF_FORMAT_ULAW) ; in w64_read_header()
406 psf->sf.format = (SF_FORMAT_W64 | SF_FORMAT_ALAW) ; in w64_read_header()
410 psf->sf.format = (SF_FORMAT_W64 | SF_FORMAT_MS_ADPCM) ; in w64_read_header()
416 psf->sf.format = (SF_FORMAT_W64 | SF_FORMAT_IMA_ADPCM) ; in w64_read_header()
422 psf->sf.format = (SF_FORMAT_W64 | SF_FORMAT_GSM610) ; in w64_read_header()
426 psf->sf.format = SF_FORMAT_W64 ; in w64_read_header()
427 psf->sf.format |= (psf->bytewidth == 8) ? SF_FORMAT_DOUBLE : SF_FORMAT_FLOAT ; in w64_read_header()
437 w64_write_header (SF_PRIVATE *psf, int calc_length) in w64_write_header() argument
442 current = psf_ftell (psf) ; in w64_write_header()
445 { psf->filelength = psf_get_filelen (psf) ; in w64_write_header()
447 psf->datalength = psf->filelength - psf->dataoffset ; in w64_write_header()
448 if (psf->dataend) in w64_write_header()
449 psf->datalength -= psf->filelength - psf->dataend ; in w64_write_header()
451 if (psf->bytewidth) in w64_write_header()
452 psf->sf.frames = psf->datalength / (psf->bytewidth * psf->sf.channels) ; in w64_write_header()
456 psf->header.ptr [0] = 0 ; in w64_write_header()
457 psf->header.indx = 0 ; in w64_write_header()
458 psf_fseek (psf, 0, SEEK_SET) ; in w64_write_header()
461 …psf_binheader_writef (psf, "eh8hh", BHWh (riff_MARKER16), BHW8 (psf->filelength), BHWh (wave_MARKE… in w64_write_header()
463 subformat = SF_CODEC (psf->sf.format) ; in w64_write_header()
475 …psf_binheader_writef (psf, "e8224", BHW8 (fmt_size), BHW2 (WAVE_FORMAT_PCM), BHW2 (psf->sf.channel… in w64_write_header()
477 … psf_binheader_writef (psf, "e4", BHW4 (psf->sf.samplerate * psf->bytewidth * psf->sf.channels)) ; in w64_write_header()
479 …psf_binheader_writef (psf, "e22", BHW2 (psf->bytewidth * psf->sf.channels), BHW2 (psf->bytewidth *… in w64_write_header()
489 …psf_binheader_writef (psf, "e8224", BHW8 (fmt_size), BHW2 (WAVE_FORMAT_IEEE_FLOAT), BHW2 (psf->sf.… in w64_write_header()
491 … psf_binheader_writef (psf, "e4", BHW4 (psf->sf.samplerate * psf->bytewidth * psf->sf.channels)) ; in w64_write_header()
493 …psf_binheader_writef (psf, "e22", BHW2 (psf->bytewidth * psf->sf.channels), BHW2 (psf->bytewidth *… in w64_write_header()
504 …psf_binheader_writef (psf, "e8224", BHW8 (fmt_size), BHW2 (WAVE_FORMAT_MULAW), BHW2 (psf->sf.chann… in w64_write_header()
506 … psf_binheader_writef (psf, "e4", BHW4 (psf->sf.samplerate * psf->bytewidth * psf->sf.channels)) ; in w64_write_header()
508 psf_binheader_writef (psf, "e22", BHW2 (psf->bytewidth * psf->sf.channels), BHW2 (8)) ; in w64_write_header()
519 …psf_binheader_writef (psf, "e8224", BHW8 (fmt_size), BHW2 (WAVE_FORMAT_ALAW), BHW2 (psf->sf.channe… in w64_write_header()
521 … psf_binheader_writef (psf, "e4", BHW4 (psf->sf.samplerate * psf->bytewidth * psf->sf.channels)) ; in w64_write_header()
523 psf_binheader_writef (psf, "e22", BHW2 (psf->bytewidth * psf->sf.channels), BHW2 (8)) ; in w64_write_header()
532 blockalign = wavlike_srate2blocksize (psf->sf.samplerate * psf->sf.channels) ; in w64_write_header()
533 framesperblock = 2 * (blockalign - 4 * psf->sf.channels) / psf->sf.channels + 1 ; in w64_write_header()
534 bytespersec = (psf->sf.samplerate * blockalign) / framesperblock ; in w64_write_header()
542 …psf_binheader_writef (psf, "e822", BHW8 (fmt_size), BHW2 (WAVE_FORMAT_IMA_ADPCM), BHW2 (psf->sf.ch… in w64_write_header()
545 psf_binheader_writef (psf, "e44", BHW4 (psf->sf.samplerate), BHW4 (bytespersec)) ; in w64_write_header()
548 …psf_binheader_writef (psf, "e2222", BHW2 (blockalign), BHW2 (4), BHW2 (2), BHW2 (framesperblock)) ; in w64_write_header()
557 blockalign = wavlike_srate2blocksize (psf->sf.samplerate * psf->sf.channels) ; in w64_write_header()
558 framesperblock = 2 + 2 * (blockalign - 7 * psf->sf.channels) / psf->sf.channels ; in w64_write_header()
559 bytespersec = (psf->sf.samplerate * blockalign) / framesperblock ; in w64_write_header()
568 …psf_binheader_writef (psf, "e822", BHW8 (fmt_size), BHW2 (WAVE_FORMAT_MS_ADPCM), BHW2 (psf->sf.cha… in w64_write_header()
571 psf_binheader_writef (psf, "e44", BHW4 (psf->sf.samplerate), BHW4 (bytespersec)) ; in w64_write_header()
574 …psf_binheader_writef (psf, "e22222", BHW2 (blockalign), BHW2 (4), BHW2 (extrabytes), BHW2 (framesp… in w64_write_header()
576 wavlike_msadpcm_write_adapt_coeffs (psf) ; in w64_write_header()
586 bytespersec = (psf->sf.samplerate * WAVLIKE_GSM610_BLOCKSIZE) / WAVLIKE_GSM610_SAMPLES ; in w64_write_header()
594 …psf_binheader_writef (psf, "e822", BHW8 (fmt_size), BHW2 (WAVE_FORMAT_GSM610), BHW2 (psf->sf.chann… in w64_write_header()
597 psf_binheader_writef (psf, "e44", BHW4 (psf->sf.samplerate), BHW4 (bytespersec)) ; in w64_write_header()
600 …psf_binheader_writef (psf, "e2222", BHW2 (WAVLIKE_GSM610_BLOCKSIZE), BHW2 (0), BHW2 (2), BHW2 (WAV… in w64_write_header()
611 psf_binheader_writef (psf, "z", BHWz (fmt_pad)) ; in w64_write_header()
614 …psf_binheader_writef (psf, "eh88", BHWh (fact_MARKER16), BHW8 ((sf_count_t) (16 + 8 + 8)), BHW8 (p… in w64_write_header()
616 psf_binheader_writef (psf, "eh8", BHWh (data_MARKER16), BHW8 (psf->datalength + 24)) ; in w64_write_header()
617 psf_fwrite (psf->header.ptr, psf->header.indx, 1, psf) ; in w64_write_header()
619 if (psf->error) in w64_write_header()
620 return psf->error ; in w64_write_header()
622 psf->dataoffset = psf->header.indx ; in w64_write_header()
625 psf_fseek (psf, current, SEEK_SET) ; in w64_write_header()
627 return psf->error ; in w64_write_header()
631 w64_close (SF_PRIVATE *psf) in w64_close() argument
633 if (psf->file.mode == SFM_WRITE || psf->file.mode == SFM_RDWR) in w64_close()
634 w64_write_header (psf, SF_TRUE) ; in w64_close()