Lines Matching refs:psf
200 static int aiff_close (SF_PRIVATE *psf) ;
205 static int aiff_read_comm_chunk (SF_PRIVATE *psf, COMM_CHUNK *comm_fmt) ;
207 static int aiff_read_header (SF_PRIVATE *psf, COMM_CHUNK *comm_fmt) ;
209 static int aiff_write_header (SF_PRIVATE *psf, int calc_length) ;
210 static int aiff_write_tailer (SF_PRIVATE *psf) ;
211 static void aiff_write_strings (SF_PRIVATE *psf, int location) ;
213 static int aiff_command (SF_PRIVATE *psf, int command, void *data, int datasize) ;
219 static int aiff_read_basc_chunk (SF_PRIVATE * psf, int) ;
221 static int aiff_read_chanmap (SF_PRIVATE * psf, unsigned dword) ;
225 static int aiff_set_chunk (SF_PRIVATE *psf, const SF_CHUNK_INFO * chunk_info) ;
226 static SF_CHUNK_ITERATOR * aiff_next_chunk_iterator (SF_PRIVATE *psf, SF_CHUNK_ITERATOR * iterator)…
227 static int aiff_get_chunk_size (SF_PRIVATE *psf, const SF_CHUNK_ITERATOR * iterator, SF_CHUNK_INFO …
228 static int aiff_get_chunk_data (SF_PRIVATE *psf, const SF_CHUNK_ITERATOR * iterator, SF_CHUNK_INFO …
235 aiff_open (SF_PRIVATE *psf) in aiff_open() argument
241 subformat = SF_CODEC (psf->sf.format) ; in aiff_open()
243 if ((psf->container_data = calloc (1, sizeof (AIFF_PRIVATE))) == NULL) in aiff_open()
246 psf->container_close = aiff_close ; in aiff_open()
248 if (psf->file.mode == SFM_READ || (psf->file.mode == SFM_RDWR && psf->filelength > 0)) in aiff_open()
249 { if ((error = aiff_read_header (psf, &comm_fmt))) in aiff_open()
252 psf->next_chunk_iterator = aiff_next_chunk_iterator ; in aiff_open()
253 psf->get_chunk_size = aiff_get_chunk_size ; in aiff_open()
254 psf->get_chunk_data = aiff_get_chunk_data ; in aiff_open()
256 psf_fseek (psf, psf->dataoffset, SEEK_SET) ; in aiff_open()
259 if (psf->file.mode == SFM_WRITE || psf->file.mode == SFM_RDWR) in aiff_open()
260 { if (psf->is_pipe) in aiff_open()
263 if ((SF_CONTAINER (psf->sf.format)) != SF_FORMAT_AIFF) in aiff_open()
266 …if (psf->file.mode == SFM_WRITE && (subformat == SF_FORMAT_FLOAT || subformat == SF_FORMAT_DOUBLE)) in aiff_open()
267 { if ((psf->peak_info = peak_info_calloc (psf->sf.channels)) == NULL) in aiff_open()
269 psf->peak_info->peak_loc = SF_PEAK_START ; in aiff_open()
272 if (psf->file.mode != SFM_RDWR || psf->filelength < 40) in aiff_open()
273 { psf->filelength = 0 ; in aiff_open()
274 psf->datalength = 0 ; in aiff_open()
275 psf->dataoffset = 0 ; in aiff_open()
276 psf->sf.frames = 0 ; in aiff_open()
279 psf->strings.flags = SF_STR_ALLOW_START | SF_STR_ALLOW_END ; in aiff_open()
281 if ((error = aiff_write_header (psf, SF_FALSE))) in aiff_open()
284 psf->write_header = aiff_write_header ; in aiff_open()
285 psf->set_chunk = aiff_set_chunk ; in aiff_open()
288 psf->command = aiff_command ; in aiff_open()
290 switch (SF_CODEC (psf->sf.format)) in aiff_open()
292 error = pcm_init (psf) ; in aiff_open()
296 error = pcm_init (psf) ; in aiff_open()
302 error = pcm_init (psf) ; in aiff_open()
306 error = ulaw_init (psf) ; in aiff_open()
310 error = alaw_init (psf) ; in aiff_open()
315 error = float32_init (psf) ; in aiff_open()
319 error = double64_init (psf) ; in aiff_open()
323 if (psf->sf.frames > comm_fmt.numSampleFrames) in aiff_open()
324 psf->sf.frames = comm_fmt.numSampleFrames ; in aiff_open()
328 error = dwvw_init (psf, 16) ; in aiff_open()
329 if (psf->sf.frames > comm_fmt.numSampleFrames) in aiff_open()
330 psf->sf.frames = comm_fmt.numSampleFrames ; in aiff_open()
334 error = dwvw_init (psf, 24) ; in aiff_open()
335 if (psf->sf.frames > comm_fmt.numSampleFrames) in aiff_open()
336 psf->sf.frames = comm_fmt.numSampleFrames ; in aiff_open()
340 if (psf->file.mode != SFM_READ) in aiff_open()
345 { error = dwvw_init (psf, comm_fmt.sampleSize) ; in aiff_open()
346 if (psf->sf.frames > comm_fmt.numSampleFrames) in aiff_open()
347 psf->sf.frames = comm_fmt.numSampleFrames ; in aiff_open()
350 psf_log_printf (psf, "AIFC/DWVW : Bad bitwidth %d\n", comm_fmt.sampleSize) ; in aiff_open()
359 error = aiff_ima_init (psf, AIFC_IMA4_BLOCK_LEN, AIFC_IMA4_SAMPLES_PER_BLOCK) ; in aiff_open()
364 error = gsm610_init (psf) ; in aiff_open()
365 if (psf->sf.frames > comm_fmt.numSampleFrames) in aiff_open()
366 psf->sf.frames = comm_fmt.numSampleFrames ; in aiff_open()
372 if (psf->file.mode != SFM_WRITE && psf->sf.frames - comm_fmt.numSampleFrames != 0) in aiff_open()
373 { psf_log_printf (psf, in aiff_open()
376 comm_fmt.numSampleFrames, (uint32_t) psf->sf.frames) ; in aiff_open()
398 aiff_read_header (SF_PRIVATE *psf, COMM_CHUNK *comm_fmt) in aiff_read_header() argument
407 if (psf->filelength > SF_PLATFORM_S64 (0xffffffff)) in aiff_read_header()
408 psf_log_printf (psf, "Warning : filelength > 0xffffffff. This is bad!!!!\n") ; in aiff_read_header()
410 if ((paiff = psf->container_data) == NULL) in aiff_read_header()
417 psf_binheader_readf (psf, "p", 0) ; in aiff_read_header()
422 psf->endian = SF_ENDIAN_BIG ; in aiff_read_header()
433 psf_binheader_readf (psf, "Ejm4", jump, &marker, &chunk_size) ; in aiff_read_header()
435 { sf_count_t pos = psf_ftell (psf) ; in aiff_read_header()
436 psf_log_printf (psf, "Have 0 marker at position %D (0x%x).\n", pos, pos) ; in aiff_read_header()
440 if (psf->file.mode == SFM_RDWR && (found_chunk & HAVE_SSND)) in aiff_read_header()
443 psf_store_read_chunk_u32 (&psf->rchunks, marker, psf_ftell (psf), chunk_size) ; in aiff_read_header()
453 psf_binheader_readf (psf, "m", &marker) ; in aiff_read_header()
463 if (psf->fileoffset > 0 && psf->filelength > FORMsize + 8) in aiff_read_header()
465 psf->filelength = FORMsize + 8 ; in aiff_read_header()
466 psf_log_printf (psf, "FORM : %u\n %M\n", FORMsize, marker) ; in aiff_read_header()
468 else if (FORMsize != psf->filelength - 2 * SIGNED_SIZEOF (chunk_size)) in aiff_read_header()
469 { chunk_size = psf->filelength - 2 * sizeof (chunk_size) ; in aiff_read_header()
470 psf_log_printf (psf, "FORM : %u (should be %u)\n %M\n", FORMsize, chunk_size, marker) ; in aiff_read_header()
474 psf_log_printf (psf, "FORM : %u\n %M\n", FORMsize, marker) ; in aiff_read_header()
481 paiff->comm_offset = psf_ftell (psf) - 8 ; in aiff_read_header()
484 if ((error = aiff_read_comm_chunk (psf, comm_fmt)) != 0) in aiff_read_header()
495 psf_log_printf (psf, "%M : %d\n", marker, chunk_size) ; in aiff_read_header()
496 if (chunk_size != AIFF_PEAK_CHUNK_SIZE (psf->sf.channels)) in aiff_read_header()
497 { psf_binheader_readf (psf, "j", chunk_size) ; in aiff_read_header()
498 psf_log_printf (psf, "*** File PEAK chunk too big.\n") ; in aiff_read_header()
502 if (psf->peak_info) in aiff_read_header()
503 { psf_log_printf (psf, "*** Found existing peak info, using last one.\n") ; in aiff_read_header()
504 free (psf->peak_info) ; in aiff_read_header()
505 psf->peak_info = NULL ; in aiff_read_header()
507 if ((psf->peak_info = peak_info_calloc (psf->sf.channels)) == NULL) in aiff_read_header()
511 psf_binheader_readf (psf, "E44", &(psf->peak_info->version), &(psf->peak_info->timestamp)) ; in aiff_read_header()
513 if (psf->peak_info->version != 1) in aiff_read_header()
514 … psf_log_printf (psf, " version : %d *** (should be version 1)\n", psf->peak_info->version) ; in aiff_read_header()
516 psf_log_printf (psf, " version : %d\n", psf->peak_info->version) ; in aiff_read_header()
518 psf_log_printf (psf, " time stamp : %d\n", psf->peak_info->timestamp) ; in aiff_read_header()
519 psf_log_printf (psf, " Ch Position Value\n") ; in aiff_read_header()
522 for (k = 0 ; k < psf->sf.channels ; k++) in aiff_read_header()
526 psf_binheader_readf (psf, "Ef4", &value, &position) ; in aiff_read_header()
527 psf->peak_info->peaks [k].value = value ; in aiff_read_header()
528 psf->peak_info->peaks [k].position = position ; in aiff_read_header()
531 k, psf->peak_info->peaks [k].position, psf->peak_info->peaks [k].value) ; in aiff_read_header()
533 psf_log_printf (psf, "%s", cptr) ; in aiff_read_header()
536 psf->peak_info->peak_loc = ((found_chunk & HAVE_SSND) == 0) ? SF_PEAK_START : SF_PEAK_END ; in aiff_read_header()
541 psf_log_printf (psf, "*** Valid AIFC files should have an FVER chunk.\n") ; in aiff_read_header()
543 paiff->ssnd_offset = psf_ftell (psf) - 8 ; in aiff_read_header()
545 psf_binheader_readf (psf, "E44", &(ssnd_fmt.offset), &(ssnd_fmt.blocksize)) ; in aiff_read_header()
547 psf->datalength = SSNDsize - sizeof (ssnd_fmt) ; in aiff_read_header()
548 psf->dataoffset = psf_ftell (psf) ; in aiff_read_header()
550 if (psf->datalength > psf->filelength - psf->dataoffset || psf->datalength < 0) in aiff_read_header()
551 …{ psf_log_printf (psf, " SSND : %u (should be %D)\n", SSNDsize, psf->filelength - psf->dataoffset … in aiff_read_header()
552 psf->datalength = psf->filelength - psf->dataoffset ; in aiff_read_header()
555 psf_log_printf (psf, " SSND : %u\n", SSNDsize) ; in aiff_read_header()
557 if (ssnd_fmt.offset == 0 || psf->dataoffset + ssnd_fmt.offset == ssnd_fmt.blocksize) in aiff_read_header()
558 { psf_log_printf (psf, " Offset : %u\n", ssnd_fmt.offset) ; in aiff_read_header()
559 psf_log_printf (psf, " Block Size : %u\n", ssnd_fmt.blocksize) ; in aiff_read_header()
561 psf->dataoffset += ssnd_fmt.offset ; in aiff_read_header()
562 psf->datalength -= ssnd_fmt.offset ; in aiff_read_header()
565 { psf_log_printf (psf, " Offset : %u\n", ssnd_fmt.offset) ; in aiff_read_header()
566 psf_log_printf (psf, " Block Size : %u ???\n", ssnd_fmt.blocksize) ; in aiff_read_header()
567 psf->dataoffset += ssnd_fmt.offset ; in aiff_read_header()
568 psf->datalength -= ssnd_fmt.offset ; in aiff_read_header()
572 if (psf->datalength + psf->dataoffset < psf->filelength) in aiff_read_header()
573 psf->dataend = psf->datalength + psf->dataoffset ; in aiff_read_header()
577 if (! psf->sf.seekable) in aiff_read_header()
581 psf_fseek (psf, psf->dataoffset + psf->datalength, SEEK_SET) ; in aiff_read_header()
588 { psf_log_printf (psf, " %M : %d (too big)\n", marker, chunk_size) ; in aiff_read_header()
593 psf_binheader_readf (psf, "b", cptr, chunk_size + (chunk_size & 1)) ; in aiff_read_header()
598 psf_log_printf (psf, " %M : %s\n", marker, cptr) ; in aiff_read_header()
599 psf_store_string (psf, SF_STR_COPYRIGHT, cptr) ; in aiff_read_header()
607 { psf_log_printf (psf, " %M : %d (too big)\n", marker, chunk_size) ; in aiff_read_header()
612 psf_binheader_readf (psf, "b", cptr, chunk_size + (chunk_size & 1)) ; in aiff_read_header()
614 psf_log_printf (psf, " %M : %s\n", marker, cptr) ; in aiff_read_header()
615 psf_store_string (psf, SF_STR_ARTIST, cptr) ; in aiff_read_header()
626 bytes -= psf_binheader_readf (psf, "E2", &count) ; in aiff_read_header()
627 psf_log_printf (psf, " %M : %d\n count : %d\n", marker, chunk_size, count) ; in aiff_read_header()
630 { bytes -= psf_binheader_readf (psf, "E422", ×tamp, &id, &len) ; in aiff_read_header()
631 … psf_log_printf (psf, " time : 0x%x\n marker : %x\n length : %d\n", timestamp, id, len) ; in aiff_read_header()
634 { psf_log_printf (psf, "\nError : string length (%d) too big.\n", len) ; in aiff_read_header()
639 bytes -= psf_binheader_readf (psf, "b", cptr, len) ; in aiff_read_header()
641 psf_log_printf (psf, " string : %s\n", cptr) ; in aiff_read_header()
645 psf_binheader_readf (psf, "j", bytes) ; in aiff_read_header()
655 { psf_log_printf (psf, " %M : %u (too big, skipping)\n", marker, chunk_size) ; in aiff_read_header()
656 psf_binheader_readf (psf, "j", chunk_size + (chunk_size & 1)) ; in aiff_read_header()
661 { psf_log_printf (psf, " %M : %d (too small, skipping)\n", marker, chunk_size) ; in aiff_read_header()
662 psf_binheader_readf (psf, "j", chunk_size + (chunk_size & 1)) ; in aiff_read_header()
667 psf_binheader_readf (psf, "mb", &appl_marker, cptr, chunk_size + (chunk_size & 1) - 4) ; in aiff_read_header()
676 …psf_log_printf (psf, " %M : %d\n AppSig : %M\n Name : %s\n", marker, chunk_size, appl_marker, … in aiff_read_header()
677 psf_store_string (psf, SF_STR_SOFTWARE, cptr) ; in aiff_read_header()
686 { psf_log_printf (psf, " %M : %d (too big)\n", marker, chunk_size) ; in aiff_read_header()
691 psf_binheader_readf (psf, "b", cptr, chunk_size + (chunk_size & 1)) ; in aiff_read_header()
693 psf_log_printf (psf, " %M : %s\n", marker, cptr) ; in aiff_read_header()
694 psf_store_string (psf, SF_STR_TITLE, cptr) ; in aiff_read_header()
702 { psf_log_printf (psf, " %M : %d (too big)\n", marker, chunk_size) ; in aiff_read_header()
707 psf_binheader_readf (psf, "b", cptr, chunk_size + (chunk_size & 1)) ; in aiff_read_header()
709 psf_log_printf (psf, " %M : %s\n", marker, cptr) ; in aiff_read_header()
710 psf_store_string (psf, SF_STR_COMMENT, cptr) ; in aiff_read_header()
716 { psf_log_printf (psf, " %M : %d (should be %d)\n", marker, chunk_size, SIZEOF_INST_CHUNK) ; in aiff_read_header()
717 psf_binheader_readf (psf, "j", chunk_size) ; in aiff_read_header()
720 psf_log_printf (psf, " %M : %d\n", marker, chunk_size) ; in aiff_read_header()
724 if (psf->instrument == NULL && (psf->instrument = psf_instrument_alloc ()) == NULL) in aiff_read_header()
727 psf_binheader_readf (psf, "b", bytes, 6) ; in aiff_read_header()
728 psf_log_printf (psf, " Base Note : %u\n Detune : %u\n" in aiff_read_header()
732 psf->instrument->basenote = bytes [0] ; in aiff_read_header()
733 psf->instrument->detune = bytes [1] ; in aiff_read_header()
734 psf->instrument->key_lo = bytes [2] ; in aiff_read_header()
735 psf->instrument->key_hi = bytes [3] ; in aiff_read_header()
736 psf->instrument->velocity_lo = bytes [4] ; in aiff_read_header()
737 psf->instrument->velocity_hi = bytes [5] ; in aiff_read_header()
738 psf_binheader_readf (psf, "E2", &gain) ; in aiff_read_header()
739 psf->instrument->gain = gain ; in aiff_read_header()
740 psf_log_printf (psf, " Gain (dB) : %d\n", gain) ; in aiff_read_header()
746 psf_binheader_readf (psf, "E222", &mode, &begin, &end) ; in aiff_read_header()
750 { psf->instrument->loop_count = 0 ; in aiff_read_header()
751 psf->instrument->loops [0].mode = SF_LOOP_NONE ; in aiff_read_header()
754 { psf->instrument->loop_count = 1 ; in aiff_read_header()
755 psf->instrument->loops [0].mode = SF_LOOP_FORWARD ; in aiff_read_header()
756 psf->instrument->loops [0].start = begin ; in aiff_read_header()
757 psf->instrument->loops [0].end = end ; in aiff_read_header()
758 psf->instrument->loops [0].count = 0 ; in aiff_read_header()
760 psf_log_printf (psf, " Sustain\n mode : %d => %s\n begin : %u\n end : %u\n", in aiff_read_header()
762 psf_binheader_readf (psf, "E222", &mode, &begin, &end) ; in aiff_read_header()
766 psf->instrument->loops [1].mode = SF_LOOP_NONE ; in aiff_read_header()
768 { psf->instrument->loop_count += 1 ; in aiff_read_header()
769 psf->instrument->loops [1].mode = SF_LOOP_FORWARD ; in aiff_read_header()
770 psf->instrument->loops [1].start = begin ; in aiff_read_header()
771 psf->instrument->loops [1].end = end ; in aiff_read_header()
772 psf->instrument->loops [1].count = 0 ; in aiff_read_header()
774 psf_log_printf (psf, " Release\n mode : %d => %s\n begin : %u\n end : %u\n", in aiff_read_header()
781 psf_log_printf (psf, " basc : %u\n", chunk_size) ; in aiff_read_header()
783 if ((error = aiff_read_basc_chunk (psf, chunk_size))) in aiff_read_header()
788 psf_log_printf (psf, " %M : %d\n", marker, chunk_size) ; in aiff_read_header()
792 bytesread = psf_binheader_readf (psf, "E2", &n) ; in aiff_read_header()
794 psf_log_printf (psf, " Count : %u\n", mark_count) ; in aiff_read_header()
796 { psf_log_printf (psf, "*** Second MARK chunk found. Throwing away the first.\n") ; in aiff_read_header()
804 { psf_log_printf (psf, " More than 2500 markers, skipping!\n") ; in aiff_read_header()
805 psf_binheader_readf (psf, "j", chunk_size - bytesread) ; in aiff_read_header()
809 if (psf->cues) in aiff_read_header()
810 { free (psf->cues) ; in aiff_read_header()
811 psf->cues = NULL ; in aiff_read_header()
813 if ((psf->cues = psf_cues_alloc (mark_count)) == NULL) in aiff_read_header()
820 bytesread += psf_binheader_readf (psf, "E241", &mark_id, &position, &ch) ; in aiff_read_header()
821 psf_log_printf (psf, " Mark ID : %u\n Position : %u\n", mark_id, position) ; in aiff_read_header()
823 psf->cues->cue_points [n].indx = mark_id ; in aiff_read_header()
824 psf->cues->cue_points [n].position = 0 ; in aiff_read_header()
825 psf->cues->cue_points [n].fcc_chunk = MAKE_MARKER ('d', 'a', 't', 'a') ; /* always data */ in aiff_read_header()
826 psf->cues->cue_points [n].chunk_start = 0 ; in aiff_read_header()
827 psf->cues->cue_points [n].block_start = 0 ; in aiff_read_header()
828 psf->cues->cue_points [n].sample_offset = position ; in aiff_read_header()
833 { bytesread += psf_binheader_readf (psf, "b", ubuf.scbuf, pstr_len) ; in aiff_read_header()
838 bytesread += psf_binheader_readf (psf, "bj", ubuf.scbuf, read_len, pstr_len - read_len) ; in aiff_read_header()
842 psf_log_printf (psf, " Name : %s\n", ubuf.scbuf) ; in aiff_read_header()
844 … psf_strlcpy (psf->cues->cue_points [n].name, sizeof (psf->cues->cue_points [n].name), ubuf.cbuf) ; in aiff_read_header()
857 psf_binheader_readf (psf, "j", chunk_size - bytesread) ; in aiff_read_header()
865 psf_log_printf (psf, " %M : %d\n", marker, chunk_size) ; in aiff_read_header()
866 psf_binheader_readf (psf, "j", chunk_size) ; in aiff_read_header()
872 psf_log_printf (psf, " %M : %d\n", marker, chunk_size) ; in aiff_read_header()
873 psf_binheader_readf (psf, "j", make_size_t (chunk_size)) ; in aiff_read_header()
878 { psf_log_printf (psf, " %M : %d (should be >= 12)\n", marker, chunk_size) ; in aiff_read_header()
879 psf_binheader_readf (psf, "j", chunk_size) ; in aiff_read_header()
883 psf_log_printf (psf, " %M : %d\n", marker, chunk_size) ; in aiff_read_header()
885 if ((error = aiff_read_chanmap (psf, chunk_size))) in aiff_read_header()
892 …psf_log_printf (psf, "*** Unknown chunk marker (%X) at position %D with length %u. Exiting parser.… in aiff_read_header()
898 { psf_log_printf (psf, " %M : %u (unknown marker)\n", marker, chunk_size) ; in aiff_read_header()
900 psf_binheader_readf (psf, "j", chunk_size) ; in aiff_read_header()
904 if (psf_ftell (psf) & 0x03) in aiff_read_header()
905 …{ psf_log_printf (psf, " Unknown chunk marker at position %D. Resynching.\n", psf_ftell (psf) - 8… in aiff_read_header()
906 psf_binheader_readf (psf, "j", -3) ; in aiff_read_header()
909 …psf_log_printf (psf, "*** Unknown chunk marker %X at position %D. Exiting parser.\n", marker, psf_… in aiff_read_header()
914 if (chunk_size >= psf->filelength) in aiff_read_header()
915 …{ psf_log_printf (psf, "*** Chunk size %u > file length %D. Exiting parser.\n", chunk_size, psf->f… in aiff_read_header()
919 if ((! psf->sf.seekable) && (found_chunk & HAVE_SSND)) in aiff_read_header()
922 if (psf_ftell (psf) >= psf->filelength - (2 * SIGNED_SIZEOF (int32_t))) in aiff_read_header()
929 for (ji = 0 ; ji < psf->instrument->loop_count ; ji ++) in aiff_read_header()
930 { if (ji < ARRAY_LEN (psf->instrument->loops)) in aiff_read_header()
931 …{ psf->instrument->loops [ji].start = marker_to_position (paiff->markstr, psf->instrument->loops [… in aiff_read_header()
932 …psf->instrument->loops [ji].end = marker_to_position (paiff->markstr, psf->instrument->loops [ji].… in aiff_read_header()
933 psf->instrument->loops [ji].mode = SF_LOOP_FORWARD ; in aiff_read_header()
938 if (psf->cues->cue_count > (uint32_t) (psf->instrument->loop_count * 2)) in aiff_read_header()
941 for (j = 0 ; j < psf->cues->cue_count - (uint32_t) (psf->instrument->loop_count * 2) ; j ++) in aiff_read_header()
943 …psf->cues->cue_points [j].indx = psf->cues->cue_points [j + psf->instrument->loop_count * 2].indx ; in aiff_read_header()
944 …psf->cues->cue_points [j].position = psf->cues->cue_points [j + psf->instrument->loop_count * 2].p… in aiff_read_header()
945 …psf->cues->cue_points [j].fcc_chunk = psf->cues->cue_points [j + psf->instrument->loop_count * 2].… in aiff_read_header()
946 …psf->cues->cue_points [j].chunk_start = psf->cues->cue_points [j + psf->instrument->loop_count * 2… in aiff_read_header()
947 …psf->cues->cue_points [j].block_start = psf->cues->cue_points [j + psf->instrument->loop_count * 2… in aiff_read_header()
948 …psf->cues->cue_points [j].sample_offset = psf->cues->cue_points [j + psf->instrument->loop_count *… in aiff_read_header()
950 …psf->cues->cue_points [j].name [str_index] = psf->cues->cue_points [j + psf->instrument->loop_coun… in aiff_read_header()
952 psf->cues->cue_count -= psf->instrument->loop_count * 2 ; in aiff_read_header()
955 free (psf->cues) ; in aiff_read_header()
956 psf->cues = NULL ; in aiff_read_header()
960 if (psf->sf.channels < 1) in aiff_read_header()
963 if (psf->sf.channels > SF_MAX_CHANNELS) in aiff_read_header()
975 if (! psf->dataoffset) in aiff_read_header()
982 aiff_close (SF_PRIVATE *psf) in aiff_close() argument
983 { AIFF_PRIVATE *paiff = psf->container_data ; in aiff_close()
990 if (psf->file.mode == SFM_WRITE || psf->file.mode == SFM_RDWR) in aiff_close()
991 { aiff_write_tailer (psf) ; in aiff_close()
992 aiff_write_header (psf, SF_TRUE) ; in aiff_close()
999 aiff_read_comm_chunk (SF_PRIVATE *psf, COMM_CHUNK *comm_fmt) in aiff_read_comm_chunk() argument
1010 psf_binheader_readf (psf, "E242b", &(comm_fmt->numChannels), &(comm_fmt->numSampleFrames), in aiff_read_comm_chunk()
1014 { psf_log_printf (psf, " COMM : %d (0x%x) *** should be ", comm_fmt->size, comm_fmt->size) ; in aiff_read_comm_chunk()
1016 psf_log_printf (psf, "%d (0x%x)\n", comm_fmt->size, comm_fmt->size) ; in aiff_read_comm_chunk()
1019 psf_log_printf (psf, " COMM : %d\n", comm_fmt->size) ; in aiff_read_comm_chunk()
1024 psf_binheader_readf (psf, "Em", &(comm_fmt->encoding)) ; in aiff_read_comm_chunk()
1029 psf_binheader_readf (psf, "Em1", &(comm_fmt->encoding), &encoding_len) ; in aiff_read_comm_chunk()
1034 psf_binheader_readf (psf, "b", ubuf.scbuf, read_len) ; in aiff_read_comm_chunk()
1040 psf_log_printf (psf, " Sample Rate : %d\n", samplerate) ; in aiff_read_comm_chunk()
1041 …psf_log_printf (psf, " Frames : %u%s\n", comm_fmt->numSampleFrames, (comm_fmt->numSampleFram… in aiff_read_comm_chunk()
1044 …{ psf_log_printf (psf, " Channels : %d (should be >= 1 and < %d)\n", comm_fmt->numChannels, SF… in aiff_read_comm_chunk()
1048 psf_log_printf (psf, " Channels : %d\n", comm_fmt->numChannels) ; in aiff_read_comm_chunk()
1052 { psf_log_printf (psf, " Sample Size : %d (should be 32)\n", comm_fmt->sampleSize) ; in aiff_read_comm_chunk()
1056 { psf_log_printf (psf, " Sample Size : %d (should be 64)\n", comm_fmt->sampleSize) ; in aiff_read_comm_chunk()
1060 psf_log_printf (psf, " Sample Size : %d\n", comm_fmt->sampleSize) ; in aiff_read_comm_chunk()
1064 psf->sf.samplerate = samplerate ; in aiff_read_comm_chunk()
1065 psf->sf.frames = comm_fmt->numSampleFrames ; in aiff_read_comm_chunk()
1066 psf->sf.channels = comm_fmt->numChannels ; in aiff_read_comm_chunk()
1067 psf->bytewidth = BITWIDTH2BYTES (comm_fmt->sampleSize) ; in aiff_read_comm_chunk()
1069 psf->endian = SF_ENDIAN_BIG ; in aiff_read_comm_chunk()
1073 psf->sf.format = (SF_FORMAT_AIFF | subformat) ; in aiff_read_comm_chunk()
1079 psf->sf.format = (SF_ENDIAN_BIG | SF_FORMAT_AIFF | subformat) ; in aiff_read_comm_chunk()
1085 psf->endian = SF_ENDIAN_LITTLE ; in aiff_read_comm_chunk()
1086 psf->sf.format = (SF_ENDIAN_LITTLE | SF_FORMAT_AIFF | subformat) ; in aiff_read_comm_chunk()
1091 psf->sf.format = (SF_FORMAT_AIFF | SF_FORMAT_FLOAT) ; in aiff_read_comm_chunk()
1096 psf->sf.format = (SF_FORMAT_AIFF | SF_FORMAT_ULAW) ; in aiff_read_comm_chunk()
1101 psf->sf.format = (SF_FORMAT_AIFF | SF_FORMAT_ALAW) ; in aiff_read_comm_chunk()
1106 psf->sf.format = (SF_FORMAT_AIFF | SF_FORMAT_DOUBLE) ; in aiff_read_comm_chunk()
1110 psf->sf.format = (SF_FORMAT_AIFF | SF_FORMAT_PCM_U8) ; in aiff_read_comm_chunk()
1114 psf->sf.format = SF_FORMAT_AIFF ; in aiff_read_comm_chunk()
1117 psf->sf.format |= SF_FORMAT_DWVW_12 ; in aiff_read_comm_chunk()
1120 psf->sf.format |= SF_FORMAT_DWVW_16 ; in aiff_read_comm_chunk()
1123 psf->sf.format |= SF_FORMAT_DWVW_24 ; in aiff_read_comm_chunk()
1127 psf->sf.format |= SF_FORMAT_DWVW_N ; in aiff_read_comm_chunk()
1133 psf->sf.format = (SF_FORMAT_AIFF | SF_FORMAT_GSM610) ; in aiff_read_comm_chunk()
1138 psf->endian = SF_ENDIAN_BIG ; in aiff_read_comm_chunk()
1139 psf->sf.format = (SF_FORMAT_AIFF | SF_FORMAT_IMA_ADPCM) ; in aiff_read_comm_chunk()
1143 psf_log_printf (psf, "AIFC : Unimplemented format : %M\n", comm_fmt->encoding) ; in aiff_read_comm_chunk()
1148 psf_log_printf (psf, " Encoding : %M\n", comm_fmt->encoding) ; in aiff_read_comm_chunk()
1150 psf_log_printf (psf, " Encoding : %M => %s\n", comm_fmt->encoding, ubuf.scbuf) ; in aiff_read_comm_chunk()
1160 aiff_rewrite_header (SF_PRIVATE *psf) in aiff_rewrite_header() argument
1169 psf_fseek (psf, 0, SEEK_SET) ; in aiff_rewrite_header()
1170 psf_fread (psf->header.ptr, psf->dataoffset, 1, psf) ; in aiff_rewrite_header()
1172 psf->header.indx = 0 ; in aiff_rewrite_header()
1175 psf_binheader_writef (psf, "Etm8", BHWm (FORM_MARKER), BHW8 (psf->filelength - 8)) ; in aiff_rewrite_header()
1178 if ((k = psf_find_read_chunk_m32 (&psf->rchunks, COMM_MARKER)) >= 0) in aiff_rewrite_header()
1179 { psf->header.indx = psf->rchunks.chunks [k].offset - 8 ; in aiff_rewrite_header()
1180 comm_frames = psf->sf.frames ; in aiff_rewrite_header()
1181 comm_size = psf->rchunks.chunks [k].len ; in aiff_rewrite_header()
1182 …psf_binheader_writef (psf, "Em42t4", BHWm (COMM_MARKER), BHW4 (comm_size), BHW2 (psf->sf.channels)… in aiff_rewrite_header()
1186 if ((k = psf_find_read_chunk_m32 (&psf->rchunks, PEAK_MARKER)) >= 0) in aiff_rewrite_header()
1187 { psf->header.indx = psf->rchunks.chunks [k].offset - 8 ; in aiff_rewrite_header()
1188 …psf_binheader_writef (psf, "Em4", BHWm (PEAK_MARKER), BHW4 (AIFF_PEAK_CHUNK_SIZE (psf->sf.channels… in aiff_rewrite_header()
1189 psf_binheader_writef (psf, "E44", BHW4 (1), BHW4 (time (NULL))) ; in aiff_rewrite_header()
1190 for (ch = 0 ; ch < psf->sf.channels ; ch++) in aiff_rewrite_header()
1191 …psf_binheader_writef (psf, "Eft8", BHWf ((float) psf->peak_info->peaks [ch].value), BHW8 (psf->pea… in aiff_rewrite_header()
1196 if ((k = psf_find_read_chunk_m32 (&psf->rchunks, SSND_MARKER)) >= 0) in aiff_rewrite_header()
1197 { psf->header.indx = psf->rchunks.chunks [k].offset - 8 ; in aiff_rewrite_header()
1198 …psf_binheader_writef (psf, "Etm8", BHWm (SSND_MARKER), BHW8 (psf->datalength + SIZEOF_SSND_CHUNK))… in aiff_rewrite_header()
1202 psf_fseek (psf, 0, SEEK_SET) ; in aiff_rewrite_header()
1203 psf_fwrite (psf->header.ptr, psf->header.indx, 1, psf) ; in aiff_rewrite_header()
1209 aiff_write_header (SF_PRIVATE *psf, int calc_length) in aiff_write_header() argument
1217 if ((paiff = psf->container_data) == NULL) in aiff_write_header()
1220 current = psf_ftell (psf) ; in aiff_write_header()
1222 if (current > psf->dataoffset) in aiff_write_header()
1226 { psf->filelength = psf_get_filelen (psf) ; in aiff_write_header()
1228 psf->datalength = psf->filelength - psf->dataoffset ; in aiff_write_header()
1229 if (psf->dataend) in aiff_write_header()
1230 psf->datalength -= psf->filelength - psf->dataend ; in aiff_write_header()
1232 if (psf->bytewidth > 0) in aiff_write_header()
1233 psf->sf.frames = psf->datalength / (psf->bytewidth * psf->sf.channels) ; in aiff_write_header()
1236 if (psf->file.mode == SFM_RDWR && psf->dataoffset > 0 && psf->rchunks.count > 0) in aiff_write_header()
1237 { aiff_rewrite_header (psf) ; in aiff_write_header()
1239 psf_fseek (psf, current, SEEK_SET) ; in aiff_write_header()
1243 endian = SF_ENDIAN (psf->sf.format) ; in aiff_write_header()
1248 bit_width = psf->bytewidth * 8 ; in aiff_write_header()
1249 comm_frames = (psf->sf.frames > 0xFFFFFFFF) ? 0xFFFFFFFF : psf->sf.frames ; in aiff_write_header()
1251 switch (SF_CODEC (psf->sf.format) | endian) in aiff_write_header()
1253 psf->endian = SF_ENDIAN_BIG ; in aiff_write_header()
1260 psf->endian = SF_ENDIAN_LITTLE ; in aiff_write_header()
1267 psf->endian = SF_ENDIAN_BIG ; in aiff_write_header()
1274 psf->endian = SF_ENDIAN_LITTLE ; in aiff_write_header()
1281 psf->endian = SF_ENDIAN_BIG ; in aiff_write_header()
1288 psf->endian = SF_ENDIAN_LITTLE ; in aiff_write_header()
1295 psf->endian = SF_ENDIAN_BIG ; in aiff_write_header()
1302 psf->endian = SF_ENDIAN_LITTLE ; in aiff_write_header()
1312 psf->endian = SF_ENDIAN_BIG ; in aiff_write_header()
1319 psf->endian = SF_ENDIAN_BIG ; in aiff_write_header()
1326 psf->endian = SF_ENDIAN_BIG ; in aiff_write_header()
1333 psf->endian = SF_ENDIAN_BIG ; in aiff_write_header()
1340 psf->endian = SF_ENDIAN_BIG ; in aiff_write_header()
1347 psf->endian = SF_ENDIAN_BIG ; in aiff_write_header()
1354 psf->endian = SF_ENDIAN_BIG ; in aiff_write_header()
1364 psf->endian = SF_ENDIAN_BIG ; in aiff_write_header()
1374 psf->endian = SF_ENDIAN_BIG ; in aiff_write_header()
1384 psf->endian = SF_ENDIAN_BIG ; in aiff_write_header()
1394 psf->endian = SF_ENDIAN_BIG ; in aiff_write_header()
1401 comm_frames = psf->sf.frames / AIFC_IMA4_SAMPLES_PER_BLOCK ; in aiff_write_header()
1408 psf->header.ptr [0] = 0 ; in aiff_write_header()
1409 psf->header.indx = 0 ; in aiff_write_header()
1410 psf_fseek (psf, 0, SEEK_SET) ; in aiff_write_header()
1412 psf_binheader_writef (psf, "Etm8", BHWm (FORM_MARKER), BHW8 (psf->filelength - 8)) ; in aiff_write_header()
1417 …psf_binheader_writef (psf, "Emm44", BHWm (comm_type), BHWm (FVER_MARKER), BHW4 (4), BHW4 (0xA28051… in aiff_write_header()
1419 psf_binheader_writef (psf, "Em", BHWm (comm_type)) ; in aiff_write_header()
1421 paiff->comm_offset = psf->header.indx - 8 ; in aiff_write_header()
1424 uint2tenbytefloat (psf->sf.samplerate, comm_sample_rate) ; in aiff_write_header()
1426 …psf_binheader_writef (psf, "Em42t42", BHWm (COMM_MARKER), BHW4 (comm_size), BHW2 (psf->sf.channels… in aiff_write_header()
1427 psf_binheader_writef (psf, "b", BHWv (comm_sample_rate), BHWz (sizeof (comm_sample_rate))) ; in aiff_write_header()
1431 …psf_binheader_writef (psf, "mb", BHWm (comm_encoding), BHWv (comm_zero_bytes), BHWz (sizeof (comm_… in aiff_write_header()
1433 if (psf->channel_map && paiff->chanmap_tag) in aiff_write_header()
1434 …psf_binheader_writef (psf, "Em4444", BHWm (CHAN_MARKER), BHW4 (12), BHW4 (paiff->chanmap_tag), BHW… in aiff_write_header()
1437 if (psf->instrument != NULL && psf->cues != NULL) in aiff_write_header()
1443 else if (psf->instrument == NULL && psf->cues != NULL) in aiff_write_header()
1449 for (idx = 0 ; idx < psf->cues->cue_count ; idx++) in aiff_write_header()
1450 …{ stringLength = strlen (psf->cues->cue_points [idx].name) + 1 ; /* We'll count the first byte als… in aiff_write_header()
1454 psf_binheader_writef (psf, "Em42", in aiff_write_header()
1455 …BHWm (MARK_MARKER), BHW4 (2 + psf->cues->cue_count * (2 + 4) + totalStringLength), BHW2 (psf->cues… in aiff_write_header()
1457 for (idx = 0 ; idx < psf->cues->cue_count ; idx++) in aiff_write_header()
1458 …f_binheader_writef (psf, "E24p", BHW2 (psf->cues->cue_points [idx].indx), BHW4 (psf->cues->cue_poi… in aiff_write_header()
1461 if (psf->strings.flags & SF_STR_LOCATE_START) in aiff_write_header()
1462 aiff_write_strings (psf, SF_STR_LOCATE_START) ; in aiff_write_header()
1464 if (psf->peak_info != NULL && psf->peak_info->peak_loc == SF_PEAK_START) in aiff_write_header()
1465 …{ psf_binheader_writef (psf, "Em4", BHWm (PEAK_MARKER), BHW4 (AIFF_PEAK_CHUNK_SIZE (psf->sf.channe… in aiff_write_header()
1466 psf_binheader_writef (psf, "E44", BHW4 (1), BHW4 (time (NULL))) ; in aiff_write_header()
1467 for (k = 0 ; k < psf->sf.channels ; k++) in aiff_write_header()
1468 …psf_binheader_writef (psf, "Eft8", BHWf ((float) psf->peak_info->peaks [k].value), BHW8 (psf->peak… in aiff_write_header()
1472 for (uk = 0 ; uk < psf->wchunks.used ; uk++) in aiff_write_header()
1473 …writef (psf, "Em4b", BHWm (psf->wchunks.chunks [uk].mark32), BHW4 (psf->wchunks.chunks [uk].len), … in aiff_write_header()
1476 paiff->ssnd_offset = psf->header.indx ; in aiff_write_header()
1477 …psf_binheader_writef (psf, "Etm844", BHWm (SSND_MARKER), BHW8 (psf->datalength + SIZEOF_SSND_CHUNK… in aiff_write_header()
1480 psf_fwrite (psf->header.ptr, psf->header.indx, 1, psf) ; in aiff_write_header()
1482 if (psf->error) in aiff_write_header()
1483 return psf->error ; in aiff_write_header()
1485 if (has_data && psf->dataoffset != psf->header.indx) in aiff_write_header()
1486 return psf->error = SFE_INTERNAL ; in aiff_write_header()
1488 psf->dataoffset = psf->header.indx ; in aiff_write_header()
1491 psf_fseek (psf, psf->dataoffset, SEEK_SET) ; in aiff_write_header()
1493 psf_fseek (psf, current, SEEK_SET) ; in aiff_write_header()
1495 return psf->error ; in aiff_write_header()
1499 aiff_write_tailer (SF_PRIVATE *psf) in aiff_write_tailer() argument
1503 psf->header.ptr [0] = 0 ; in aiff_write_tailer()
1504 psf->header.indx = 0 ; in aiff_write_tailer()
1506 psf->dataend = psf_fseek (psf, 0, SEEK_END) ; in aiff_write_tailer()
1509 if (psf->dataend % 2 == 1) in aiff_write_tailer()
1510 { psf_fwrite (psf->header.ptr, 1, 1, psf) ; in aiff_write_tailer()
1511 psf->dataend ++ ; in aiff_write_tailer()
1514 if (psf->peak_info != NULL && psf->peak_info->peak_loc == SF_PEAK_END) in aiff_write_tailer()
1515 …{ psf_binheader_writef (psf, "Em4", BHWm (PEAK_MARKER), BHW4 (AIFF_PEAK_CHUNK_SIZE (psf->sf.channe… in aiff_write_tailer()
1516 psf_binheader_writef (psf, "E44", BHW4 (1), BHW4 (time (NULL))) ; in aiff_write_tailer()
1517 for (k = 0 ; k < psf->sf.channels ; k++) in aiff_write_tailer()
1518 …psf_binheader_writef (psf, "Eft8", BHWf ((float) psf->peak_info->peaks [k].value), BHW8 (psf->peak… in aiff_write_tailer()
1521 if (psf->strings.flags & SF_STR_LOCATE_END) in aiff_write_tailer()
1522 aiff_write_strings (psf, SF_STR_LOCATE_END) ; in aiff_write_tailer()
1525 if (psf->header.indx > 0) in aiff_write_tailer()
1526 psf_fwrite (psf->header.ptr, psf->header.indx, 1, psf) ; in aiff_write_tailer()
1532 aiff_write_strings (SF_PRIVATE *psf, int location) in aiff_write_strings() argument
1536 { if (psf->strings.data [k].type == 0) in aiff_write_strings()
1539 if (psf->strings.data [k].flags != location) in aiff_write_strings()
1542 switch (psf->strings.data [k].type) in aiff_write_strings()
1544 slen = strlen (psf->strings.storage + psf->strings.data [k].offset) ; in aiff_write_strings()
1545 …psf_binheader_writef (psf, "Em4mb", BHWm (APPL_MARKER), BHW4 (slen + 4), BHWm (m3ga_MARKER), BHWv … in aiff_write_strings()
1549 …psf_binheader_writef (psf, "EmS", BHWm (NAME_MARKER), BHWS (psf->strings.storage + psf->strings.da… in aiff_write_strings()
1553 …psf_binheader_writef (psf, "EmS", BHWm (c_MARKER), BHWS (psf->strings.storage + psf->strings.data … in aiff_write_strings()
1557 …psf_binheader_writef (psf, "EmS", BHWm (AUTH_MARKER), BHWS (psf->strings.storage + psf->strings.da… in aiff_write_strings()
1561 …psf_binheader_writef (psf, "EmS", BHWm (ANNO_MARKER), BHWS (psf->strings.storage + psf->strings.da… in aiff_write_strings()
1576 aiff_command (SF_PRIVATE * psf, int command, void * UNUSED (data), int UNUSED (datasize)) in aiff_command() argument
1579 if ((paiff = psf->container_data) == NULL) in aiff_command()
1584 paiff->chanmap_tag = aiff_caf_find_channel_layout_tag (psf->channel_map, psf->sf.channels) ; in aiff_command()
1685 aiff_read_basc_chunk (SF_PRIVATE * psf, int datasize) in aiff_read_basc_chunk() argument
1690 count = psf_binheader_readf (psf, "E442", &bc.version, &bc.numBeats, &bc.rootNote) ; in aiff_read_basc_chunk()
1691 count += psf_binheader_readf (psf, "E222", &bc.scaleType, &bc.sigNumerator, &bc.sigDenominator) ; in aiff_read_basc_chunk()
1692 count += psf_binheader_readf (psf, "E2j", &bc.loopType, datasize - sizeof (bc)) ; in aiff_read_basc_chunk()
1694 psf_log_printf (psf, " Version ? : %u\n Num Beats : %u\n Root Note : 0x%x\n", in aiff_read_basc_chunk()
1715 psf_log_printf (psf, " ScaleType : 0x%x (%s)\n", bc.scaleType, type_str) ; in aiff_read_basc_chunk()
1716 psf_log_printf (psf, " Time Sig : %d/%d\n", bc.sigNumerator, bc.sigDenominator) ; in aiff_read_basc_chunk()
1730 psf_log_printf (psf, " Loop Type : 0x%x (%s)\n", bc.loopType, type_str) ; in aiff_read_basc_chunk()
1732 if (psf->loop_info) in aiff_read_basc_chunk()
1733 { psf_log_printf (psf, " Found existing loop info, using last one.\n") ; in aiff_read_basc_chunk()
1734 free (psf->loop_info) ; in aiff_read_basc_chunk()
1735 psf->loop_info = NULL ; in aiff_read_basc_chunk()
1737 if ((psf->loop_info = calloc (1, sizeof (SF_LOOP_INFO))) == NULL) in aiff_read_basc_chunk()
1740 psf->loop_info->time_sig_num = bc.sigNumerator ; in aiff_read_basc_chunk()
1741 psf->loop_info->time_sig_den = bc.sigDenominator ; in aiff_read_basc_chunk()
1742 psf->loop_info->loop_mode = (bc.loopType == basc_TYPE_ONE_SHOT) ? SF_LOOP_NONE : SF_LOOP_FORWARD ; in aiff_read_basc_chunk()
1743 psf->loop_info->num_beats = bc.numBeats ; in aiff_read_basc_chunk()
1746 psf->loop_info->bpm = (1.0 / psf->sf.frames) * psf->sf.samplerate in aiff_read_basc_chunk()
1748 psf->loop_info->root_key = bc.rootNote ; in aiff_read_basc_chunk()
1751 psf_binheader_readf (psf, "j", datasize - count) ; in aiff_read_basc_chunk()
1758 aiff_read_chanmap (SF_PRIVATE * psf, unsigned dword) in aiff_read_chanmap() argument
1763 bytesread = psf_binheader_readf (psf, "444", &layout_tag, &channel_bitmap, &channel_decriptions) ; in aiff_read_chanmap()
1768 psf_log_printf (psf, " Tag : %x\n", layout_tag) ; in aiff_read_chanmap()
1770 psf_log_printf (psf, " Layout : %s\n", map_info->name) ; in aiff_read_chanmap()
1773 psf_binheader_readf (psf, "j", dword - bytesread) ; in aiff_read_chanmap()
1776 …{ size_t chanmap_size = SF_MIN (psf->sf.channels, layout_tag & 0xffff) * sizeof (psf->channel_map … in aiff_read_chanmap()
1778 free (psf->channel_map) ; in aiff_read_chanmap()
1780 if ((psf->channel_map = malloc (chanmap_size)) == NULL) in aiff_read_chanmap()
1783 memcpy (psf->channel_map, map_info->channel_map, chanmap_size) ; in aiff_read_chanmap()
1793 aiff_set_chunk (SF_PRIVATE *psf, const SF_CHUNK_INFO * chunk_info) in aiff_set_chunk() argument
1794 { return psf_save_write_chunk (&psf->wchunks, chunk_info) ; in aiff_set_chunk()
1798 aiff_next_chunk_iterator (SF_PRIVATE *psf, SF_CHUNK_ITERATOR * iterator) in aiff_next_chunk_iterator() argument
1799 { return psf_next_chunk_iterator (&psf->rchunks, iterator) ; in aiff_next_chunk_iterator()
1803 aiff_get_chunk_size (SF_PRIVATE *psf, const SF_CHUNK_ITERATOR * iterator, SF_CHUNK_INFO * chunk_inf… in aiff_get_chunk_size() argument
1806 if ((indx = psf_find_read_chunk_iterator (&psf->rchunks, iterator)) < 0) in aiff_get_chunk_size()
1809 chunk_info->datalen = psf->rchunks.chunks [indx].len ; in aiff_get_chunk_size()
1815 aiff_get_chunk_data (SF_PRIVATE *psf, const SF_CHUNK_ITERATOR * iterator, SF_CHUNK_INFO * chunk_inf… in aiff_get_chunk_data() argument
1819 if ((indx = psf_find_read_chunk_iterator (&psf->rchunks, iterator)) < 0) in aiff_get_chunk_data()
1825 chunk_info->id_size = psf->rchunks.chunks [indx].id_size ; in aiff_get_chunk_data()
1826 …memcpy (chunk_info->id, psf->rchunks.chunks [indx].id, sizeof (chunk_info->id) / sizeof (*chunk_in… in aiff_get_chunk_data()
1828 pos = psf_ftell (psf) ; in aiff_get_chunk_data()
1829 psf_fseek (psf, psf->rchunks.chunks [indx].offset, SEEK_SET) ; in aiff_get_chunk_data()
1830 …psf_fread (chunk_info->data, SF_MIN (chunk_info->datalen, psf->rchunks.chunks [indx].len), 1, psf)… in aiff_get_chunk_data()
1831 psf_fseek (psf, pos, SEEK_SET) ; in aiff_get_chunk_data()