Lines Matching refs:psf
97 static int caf_close (SF_PRIVATE *psf) ;
98 static int caf_read_header (SF_PRIVATE *psf) ;
99 static int caf_write_header (SF_PRIVATE *psf, int calc_length) ;
100 static int caf_write_tailer (SF_PRIVATE *psf) ;
101 static int caf_command (SF_PRIVATE *psf, int command, void *data, int datasize) ;
102 static int caf_read_chanmap (SF_PRIVATE * psf, sf_count_t chunk_size) ;
103 static int caf_read_strings (SF_PRIVATE * psf, sf_count_t chunk_size) ;
104 static void caf_write_strings (SF_PRIVATE * psf, int location) ;
107 static int caf_set_chunk (SF_PRIVATE *psf, const SF_CHUNK_INFO * chunk_info) ;
108 static SF_CHUNK_ITERATOR * caf_next_chunk_iterator (SF_PRIVATE *psf, SF_CHUNK_ITERATOR * iterator) ;
109 static int caf_get_chunk_size (SF_PRIVATE *psf, const SF_CHUNK_ITERATOR * iterator, SF_CHUNK_INFO *…
110 static int caf_get_chunk_data (SF_PRIVATE *psf, const SF_CHUNK_ITERATOR * iterator, SF_CHUNK_INFO *…
117 caf_open (SF_PRIVATE *psf) in caf_open() argument
121 if ((psf->container_data = calloc (1, sizeof (CAF_PRIVATE))) == NULL) in caf_open()
124 pcaf = psf->container_data ; in caf_open()
126 if (psf->file.mode == SFM_READ || (psf->file.mode == SFM_RDWR && psf->filelength > 0)) in caf_open()
127 { if ((error = caf_read_header (psf))) in caf_open()
130 psf->next_chunk_iterator = caf_next_chunk_iterator ; in caf_open()
131 psf->get_chunk_size = caf_get_chunk_size ; in caf_open()
132 psf->get_chunk_data = caf_get_chunk_data ; in caf_open()
135 subformat = SF_CODEC (psf->sf.format) ; in caf_open()
137 if (psf->file.mode == SFM_WRITE || psf->file.mode == SFM_RDWR) in caf_open()
138 { if (psf->is_pipe) in caf_open()
141 format = SF_CONTAINER (psf->sf.format) ; in caf_open()
145 psf->blockwidth = psf->bytewidth * psf->sf.channels ; in caf_open()
147 if (psf->file.mode != SFM_RDWR || psf->filelength < 44) in caf_open()
148 { psf->filelength = 0 ; in caf_open()
149 psf->datalength = 0 ; in caf_open()
150 psf->dataoffset = 0 ; in caf_open()
151 psf->sf.frames = 0 ; in caf_open()
154 psf->strings.flags = SF_STR_ALLOW_START | SF_STR_ALLOW_END ; in caf_open()
160 …if (psf->file.mode == SFM_WRITE && (subformat == SF_FORMAT_FLOAT || subformat == SF_FORMAT_DOUBLE)) in caf_open()
161 { if ((psf->peak_info = peak_info_calloc (psf->sf.channels)) == NULL) in caf_open()
163 psf->peak_info->peak_loc = SF_PEAK_START ; in caf_open()
166 if ((error = caf_write_header (psf, SF_FALSE)) != 0) in caf_open()
169 psf->write_header = caf_write_header ; in caf_open()
170 psf->set_chunk = caf_set_chunk ; in caf_open()
173 psf->container_close = caf_close ; in caf_open()
174 psf->command = caf_command ; in caf_open()
181 error = pcm_init (psf) ; in caf_open()
185 error = ulaw_init (psf) ; in caf_open()
189 error = alaw_init (psf) ; in caf_open()
194 error = float32_init (psf) ; in caf_open()
198 error = double64_init (psf) ; in caf_open()
205 if (psf->file.mode == SFM_READ) in caf_open()
207 error = alac_init (psf, &pcaf->alac) ; in caf_open()
209 error = alac_init (psf, NULL) ; in caf_open()
222 caf_close (SF_PRIVATE *psf) in caf_close() argument
224 if (psf->file.mode == SFM_WRITE || psf->file.mode == SFM_RDWR) in caf_close()
225 { caf_write_tailer (psf) ; in caf_close()
226 caf_write_header (psf, SF_TRUE) ; in caf_close()
233 caf_command (SF_PRIVATE * psf, int command, void * UNUSED (data), int UNUSED (datasize)) in caf_command() argument
236 if ((pcaf = psf->container_data) == NULL) in caf_command()
241 pcaf->chanmap_tag = aiff_caf_find_channel_layout_tag (psf->channel_map, psf->sf.channels) ; in caf_command()
255 decode_desc_chunk (SF_PRIVATE *psf, const DESC_CHUNK *desc) in decode_desc_chunk() argument
258 psf->sf.channels = desc->channels_per_frame ; in decode_desc_chunk()
263 if ((pcaf = psf->container_data) != NULL) in decode_desc_chunk()
282 psf_log_printf (psf, "Bad ALAC format flag value of %d\n", desc->fmt_flags) ; in decode_desc_chunk()
291 format |= psf->endian == SF_ENDIAN_LITTLE ? SF_ENDIAN_LITTLE : 0 ; in decode_desc_chunk()
296 { psf->bytewidth = 4 ; in decode_desc_chunk()
300 { psf->bytewidth = 8 ; in decode_desc_chunk()
308 { psf->bytewidth = 4 ; in decode_desc_chunk()
312 { psf->bytewidth = 3 ; in decode_desc_chunk()
316 { psf->bytewidth = 2 ; in decode_desc_chunk()
320 { psf->bytewidth = 1 ; in decode_desc_chunk()
326 { psf->bytewidth = 1 ; in decode_desc_chunk()
331 { psf->bytewidth = 1 ; in decode_desc_chunk()
335 psf_log_printf (psf, "**** Unknown format identifier.\n") ; in decode_desc_chunk()
341 caf_read_header (SF_PRIVATE *psf) in caf_read_header() argument
350 if ((pcaf = psf->container_data) == NULL) in caf_read_header()
356 psf_binheader_readf (psf, "pmE2E2", 0, &marker, &version, &flags) ; in caf_read_header()
357 psf_log_printf (psf, "%M\n Version : %d\n Flags : %x\n", marker, version, flags) ; in caf_read_header()
361 psf_binheader_readf (psf, "mE8b", &marker, &chunk_size, ubuf.ucbuf, 8) ; in caf_read_header()
364 psf_log_printf (psf, "%M : %D\n Sample rate : %s\n", marker, chunk_size, ubuf.cbuf) ; in caf_read_header()
369 { psf_log_printf (psf, "**** Chunk size too small. Should be > 32 bytes.\n") ; in caf_read_header()
373 psf->sf.samplerate = psf_lrint (srate) ; in caf_read_header()
375 …psf_binheader_readf (psf, "mE44444", &desc.fmt_id, &desc.fmt_flags, &desc.pkt_bytes, &desc.frames_… in caf_read_header()
377 psf_log_printf (psf, " Format id : %M\n Format flags : %x\n Bytes / packet : %u\n" in caf_read_header()
382 { psf_log_printf (psf, "**** Bad channels per frame value %u.\n", desc.channels_per_frame) ; in caf_read_header()
387 psf_binheader_readf (psf, "j", (int) (chunk_size - sizeof (DESC_CHUNK))) ; in caf_read_header()
389 psf->sf.channels = desc.channels_per_frame ; in caf_read_header()
395 psf_binheader_readf (psf, "mE8", &marker, &chunk_size) ; in caf_read_header()
397 { sf_count_t pos = psf_ftell (psf) ; in caf_read_header()
398 psf_log_printf (psf, "Have 0 marker at position %D (0x%x).\n", pos, pos) ; in caf_read_header()
402 { psf_log_printf (psf, "%M : %D *** Should be >= 0 ***\n", marker, chunk_size) ; in caf_read_header()
405 if (chunk_size > psf->filelength) in caf_read_header()
408 psf_store_read_chunk_u32 (&psf->rchunks, marker, psf_ftell (psf), chunk_size) ; in caf_read_header()
412 psf_log_printf (psf, "%M : %D\n", marker, chunk_size) ; in caf_read_header()
413 if (chunk_size != CAF_PEAK_CHUNK_SIZE (psf->sf.channels)) in caf_read_header()
414 { psf_binheader_readf (psf, "j", make_size_t (chunk_size)) ; in caf_read_header()
415 …psf_log_printf (psf, "*** File PEAK chunk %D should be %d.\n", chunk_size, CAF_PEAK_CHUNK_SIZE (ps… in caf_read_header()
419 if ((psf->peak_info = peak_info_calloc (psf->sf.channels)) == NULL) in caf_read_header()
423 psf_binheader_readf (psf, "E4", & (psf->peak_info->edit_number)) ; in caf_read_header()
424 psf_log_printf (psf, " edit count : %d\n", psf->peak_info->edit_number) ; in caf_read_header()
426 psf_log_printf (psf, " Ch Position Value\n") ; in caf_read_header()
427 for (k = 0 ; k < psf->sf.channels ; k++) in caf_read_header()
431 psf_binheader_readf (psf, "Ef8", &value, &position) ; in caf_read_header()
432 psf->peak_info->peaks [k].value = value ; in caf_read_header()
433 psf->peak_info->peaks [k].position = position ; in caf_read_header()
436 psf_log_printf (psf, ubuf.cbuf) ; in caf_read_header()
439 psf->peak_info->peak_loc = SF_PEAK_START ; in caf_read_header()
444 { psf_log_printf (psf, "%M : %D (should be >= 12)\n", marker, chunk_size) ; in caf_read_header()
445 psf_binheader_readf (psf, "j", make_size_t (chunk_size)) ; in caf_read_header()
449 psf_log_printf (psf, "%M : %D\n", marker, chunk_size) ; in caf_read_header()
451 if ((error = caf_read_chanmap (psf, chunk_size))) in caf_read_header()
456 psf_log_printf (psf, "%M : %D\n", marker, chunk_size) ; in caf_read_header()
457 psf_binheader_readf (psf, "j", make_size_t (chunk_size)) ; in caf_read_header()
461 psf_binheader_readf (psf, "E4", &k) ; in caf_read_header()
463 { psf_log_printf (psf, "%M : -1\n") ; in caf_read_header()
464 chunk_size = psf->filelength - psf->header.indx ; in caf_read_header()
466 else if (psf->filelength > 0 && chunk_size > psf->filelength - psf->header.indx + 10) in caf_read_header()
467 …{ psf_log_printf (psf, "%M : %D (should be %D)\n", marker, chunk_size, psf->filelength - psf->head… in caf_read_header()
468 psf->datalength = psf->filelength - psf->header.indx - 8 ; in caf_read_header()
471 { psf_log_printf (psf, "%M : %D\n", marker, chunk_size) ; in caf_read_header()
473 psf->datalength = chunk_size - 4 ; in caf_read_header()
476 psf_log_printf (psf, " edit : %u\n", k) ; in caf_read_header()
478 psf->dataoffset = psf->header.indx ; in caf_read_header()
479 if (psf->datalength + psf->dataoffset < psf->filelength) in caf_read_header()
480 psf->dataend = psf->datalength + psf->dataoffset ; in caf_read_header()
482 psf_binheader_readf (psf, "j", make_size_t (psf->datalength)) ; in caf_read_header()
487 psf_log_printf (psf, "%M : %D\n", marker, chunk_size) ; in caf_read_header()
488 pcaf->alac.kuki_offset = psf_ftell (psf) - 12 ; in caf_read_header()
489 psf_binheader_readf (psf, "j", make_size_t (chunk_size)) ; in caf_read_header()
494 { psf_log_printf (psf, "%M : %D (should be > 24)\n", marker, chunk_size) ; in caf_read_header()
497 else if (chunk_size > psf->filelength - psf->header.indx) in caf_read_header()
498 …{ psf_log_printf (psf, "%M : %D (should be < %D)\n", marker, chunk_size, psf->filelength - psf->he… in caf_read_header()
502 psf_log_printf (psf, "%M : %D\n", marker, chunk_size) ; in caf_read_header()
504 psf_binheader_readf (psf, "E8844", &pcaf->alac.packets, &pcaf->alac.valid_frames, in caf_read_header()
507 psf_log_printf (psf, in caf_read_header()
518 psf_log_printf (psf, "*** 'pakt' chunk header is all zero.\n") ; in caf_read_header()
520 pcaf->alac.pakt_offset = psf_ftell (psf) - 12 ; in caf_read_header()
521 psf_binheader_readf (psf, "j", make_size_t (chunk_size) - 24) ; in caf_read_header()
526 { psf_log_printf (psf, "%M : %D (should be > 4)\n", marker, chunk_size) ; in caf_read_header()
529 else if (chunk_size > psf->filelength - psf->header.indx) in caf_read_header()
530 …{ psf_log_printf (psf, "%M : %D (should be < %D)\n", marker, chunk_size, psf->filelength - psf->he… in caf_read_header()
533 psf_log_printf (psf, "%M : %D\n", marker, chunk_size) ; in caf_read_header()
535 caf_read_strings (psf, chunk_size - 4) ; in caf_read_header()
539 psf_log_printf (psf, "%M : %D (skipped)\n", marker, chunk_size) ; in caf_read_header()
540 psf_binheader_readf (psf, "j", make_size_t (chunk_size)) ; in caf_read_header()
547 if (! psf->sf.seekable && have_data) in caf_read_header()
550 if (psf_ftell (psf) >= psf->filelength - SIGNED_SIZEOF (chunk_size)) in caf_read_header()
551 { psf_log_printf (psf, "End\n") ; in caf_read_header()
557 { psf_log_printf (psf, "**** Error, could not find 'data' chunk.\n") ; in caf_read_header()
561 psf->endian = (desc.fmt_flags & 2) ? SF_ENDIAN_LITTLE : SF_ENDIAN_BIG ; in caf_read_header()
563 psf_fseek (psf, psf->dataoffset, SEEK_SET) ; in caf_read_header()
565 if ((psf->sf.format = decode_desc_chunk (psf, &desc)) == 0) in caf_read_header()
568 if (psf->bytewidth > 0) in caf_read_header()
569 psf->sf.frames = psf->datalength / psf->bytewidth ; in caf_read_header()
578 caf_write_header (SF_PRIVATE *psf, int calc_length) in caf_write_header() argument
586 if ((pcaf = psf->container_data) == NULL) in caf_write_header()
591 current = psf_ftell (psf) ; in caf_write_header()
594 { psf->filelength = psf_get_filelen (psf) ; in caf_write_header()
596 psf->datalength = psf->filelength - psf->dataoffset ; in caf_write_header()
598 if (psf->dataend) in caf_write_header()
599 psf->datalength -= psf->filelength - psf->dataend ; in caf_write_header()
601 if (psf->bytewidth > 0) in caf_write_header()
602 psf->sf.frames = psf->datalength / (psf->bytewidth * psf->sf.channels) ; in caf_write_header()
606 psf->header.ptr [0] = 0 ; in caf_write_header()
607 psf->header.indx = 0 ; in caf_write_header()
608 psf_fseek (psf, 0, SEEK_SET) ; in caf_write_header()
611 psf_binheader_writef (psf, "Em22", BHWm (caff_MARKER), BHW2 (1), BHW2 (0)) ; in caf_write_header()
614 psf_binheader_writef (psf, "Em8", BHWm (desc_MARKER), BHW8 ((sf_count_t) (sizeof (DESC_CHUNK)))) ; in caf_write_header()
616 double64_be_write (1.0 * psf->sf.samplerate, ubuf.ucbuf) ; in caf_write_header()
617 psf_binheader_writef (psf, "b", BHWv (ubuf.ucbuf), BHWz (8)) ; in caf_write_header()
619 subformat = SF_CODEC (psf->sf.format) ; in caf_write_header()
621 psf->endian = SF_ENDIAN (psf->sf.format) ; in caf_write_header()
623 if (CPU_IS_BIG_ENDIAN && (psf->endian == 0 || psf->endian == SF_ENDIAN_CPU)) in caf_write_header()
624 psf->endian = SF_ENDIAN_BIG ; in caf_write_header()
625 else if (CPU_IS_LITTLE_ENDIAN && (psf->endian == SF_ENDIAN_LITTLE || psf->endian == SF_ENDIAN_CPU)) in caf_write_header()
626 psf->endian = SF_ENDIAN_LITTLE ; in caf_write_header()
628 if (psf->endian == SF_ENDIAN_LITTLE) in caf_write_header()
631 psf->endian = SF_ENDIAN_BIG ; in caf_write_header()
637 psf->bytewidth = 1 ; in caf_write_header()
638 desc.pkt_bytes = psf->bytewidth * psf->sf.channels ; in caf_write_header()
640 desc.channels_per_frame = psf->sf.channels ; in caf_write_header()
646 psf->bytewidth = 2 ; in caf_write_header()
647 desc.pkt_bytes = psf->bytewidth * psf->sf.channels ; in caf_write_header()
649 desc.channels_per_frame = psf->sf.channels ; in caf_write_header()
654 psf->bytewidth = 3 ; in caf_write_header()
655 desc.pkt_bytes = psf->bytewidth * psf->sf.channels ; in caf_write_header()
657 desc.channels_per_frame = psf->sf.channels ; in caf_write_header()
664 psf->bytewidth = 4 ; in caf_write_header()
665 desc.pkt_bytes = psf->bytewidth * psf->sf.channels ; in caf_write_header()
667 desc.channels_per_frame = psf->sf.channels ; in caf_write_header()
674 psf->bytewidth = 4 ; in caf_write_header()
675 desc.pkt_bytes = psf->bytewidth * psf->sf.channels ; in caf_write_header()
677 desc.channels_per_frame = psf->sf.channels ; in caf_write_header()
684 psf->bytewidth = 8 ; in caf_write_header()
685 desc.pkt_bytes = psf->bytewidth * psf->sf.channels ; in caf_write_header()
687 desc.channels_per_frame = psf->sf.channels ; in caf_write_header()
693 psf->bytewidth = 1 ; in caf_write_header()
694 desc.pkt_bytes = psf->bytewidth * psf->sf.channels ; in caf_write_header()
696 desc.channels_per_frame = psf->sf.channels ; in caf_write_header()
702 psf->bytewidth = 1 ; in caf_write_header()
703 desc.pkt_bytes = psf->bytewidth * psf->sf.channels ; in caf_write_header()
705 desc.channels_per_frame = psf->sf.channels ; in caf_write_header()
714 desc.pkt_bytes = psf->bytewidth * psf->sf.channels ; in caf_write_header()
715 desc.channels_per_frame = psf->sf.channels ; in caf_write_header()
724 …psf_binheader_writef (psf, "mE44444", BHWm (desc.fmt_id), BHW4 (desc.fmt_flags), BHW4 (desc.pkt_by… in caf_write_header()
726 caf_write_strings (psf, SF_STR_LOCATE_START) ; in caf_write_header()
728 if (psf->peak_info != NULL) in caf_write_header()
730 …psf_binheader_writef (psf, "Em84", BHWm (peak_MARKER), BHW8 ((sf_count_t) CAF_PEAK_CHUNK_SIZE (psf… in caf_write_header()
731 for (k = 0 ; k < psf->sf.channels ; k++) in caf_write_header()
732 …psf_binheader_writef (psf, "Ef8", BHWf ((float) psf->peak_info->peaks [k].value), BHW8 (psf->peak_… in caf_write_header()
735 if (psf->channel_map && pcaf->chanmap_tag) in caf_write_header()
736 …psf_binheader_writef (psf, "Em8444", BHWm (chan_MARKER), BHW8 ((sf_count_t) 12), BHW4 (pcaf->chanm… in caf_write_header()
739 for (uk = 0 ; uk < psf->wchunks.used ; uk++) in caf_write_header()
740 …psf, "m44b", BHWm ((int) psf->wchunks.chunks [uk].mark32), BHW4 (0), BHW4 (psf->wchunks.chunks [uk… in caf_write_header()
744 sf_count_t free_len = 0x1000 - psf->header.indx - 16 - 12 ; in caf_write_header()
747 psf_binheader_writef (psf, "Em8z", BHWm (free_MARKER), BHW8 (free_len), BHWz (free_len)) ; in caf_write_header()
750 psf_binheader_writef (psf, "Em84", BHWm (data_MARKER), BHW8 (psf->datalength + 4), BHW4 (0)) ; in caf_write_header()
752 psf_fwrite (psf->header.ptr, psf->header.indx, 1, psf) ; in caf_write_header()
753 if (psf->error) in caf_write_header()
754 return psf->error ; in caf_write_header()
756 psf->dataoffset = psf->header.indx ; in caf_write_header()
757 if (current < psf->dataoffset) in caf_write_header()
758 psf_fseek (psf, psf->dataoffset, SEEK_SET) ; in caf_write_header()
760 psf_fseek (psf, current, SEEK_SET) ; in caf_write_header()
762 return psf->error ; in caf_write_header()
766 caf_write_tailer (SF_PRIVATE *psf) in caf_write_tailer() argument
769 psf->header.ptr [0] = 0 ; in caf_write_tailer()
770 psf->header.indx = 0 ; in caf_write_tailer()
772 if (psf->bytewidth > 0 && psf->sf.seekable == SF_TRUE) in caf_write_tailer()
773 { psf->datalength = psf->sf.frames * psf->bytewidth * psf->sf.channels ; in caf_write_tailer()
774 psf->dataend = psf->dataoffset + psf->datalength ; in caf_write_tailer()
777 if (psf->dataend > 0) in caf_write_tailer()
778 psf_fseek (psf, psf->dataend, SEEK_SET) ; in caf_write_tailer()
780 psf->dataend = psf_fseek (psf, 0, SEEK_END) ; in caf_write_tailer()
782 if (psf->dataend & 1) in caf_write_tailer()
783 psf_binheader_writef (psf, "z", BHWz (1)) ; in caf_write_tailer()
785 if (psf->strings.flags & SF_STR_LOCATE_END) in caf_write_tailer()
786 caf_write_strings (psf, SF_STR_LOCATE_END) ; in caf_write_tailer()
789 if (psf->header.indx > 0) in caf_write_tailer()
790 psf_fwrite (psf->header.ptr, psf->header.indx, 1, psf) ; in caf_write_tailer()
796 caf_read_chanmap (SF_PRIVATE * psf, sf_count_t chunk_size) in caf_read_chanmap() argument
801 bytesread = psf_binheader_readf (psf, "E444", &layout_tag, &channel_bitmap, &channel_decriptions) ; in caf_read_chanmap()
805 psf_log_printf (psf, " Tag : %x\n", layout_tag) ; in caf_read_chanmap()
807 psf_log_printf (psf, " Layout : %s\n", map_info->name) ; in caf_read_chanmap()
810 psf_binheader_readf (psf, "j", chunk_size - bytesread) ; in caf_read_chanmap()
813 …{ size_t chanmap_size = SF_MIN (psf->sf.channels, layout_tag & 0xff) * sizeof (psf->channel_map [0… in caf_read_chanmap()
815 free (psf->channel_map) ; in caf_read_chanmap()
817 if ((psf->channel_map = malloc (chanmap_size)) == NULL) in caf_read_chanmap()
820 memcpy (psf->channel_map, map_info->channel_map, chanmap_size) ; in caf_read_chanmap()
840 caf_read_strings (SF_PRIVATE * psf, sf_count_t chunk_size) in caf_read_strings() argument
846 return (psf->error = SFE_MALLOC_FAILED) ; in caf_read_strings()
848 psf_binheader_readf (psf, "E4b", &count, buf, make_size_t (chunk_size)) ; in caf_read_strings()
849 psf_log_printf (psf, " count: %u\n", count) ; in caf_read_strings()
858 psf_log_printf (psf, " %-12s : %s\n", key, value) ; in caf_read_strings()
863 psf_store_string (psf, SF_STR_TITLE, value) ; in caf_read_strings()
866 psf_store_string (psf, SF_STR_SOFTWARE, value) ; in caf_read_strings()
869 psf_store_string (psf, SF_STR_COPYRIGHT, value) ; in caf_read_strings()
872 psf_store_string (psf, SF_STR_ARTIST, value) ; in caf_read_strings()
875 psf_store_string (psf, SF_STR_GENRE, value) ; in caf_read_strings()
879 psf_store_string (psf, SF_STR_COMMENT, value) ; in caf_read_strings()
882 psf_store_string (psf, SF_STR_TRACKNUMBER, value) ; in caf_read_strings()
885 psf_store_string (psf, SF_STR_DATE, value) ; in caf_read_strings()
888 psf_store_string (psf, SF_STR_ALBUM, value) ; in caf_read_strings()
891 psf_store_string (psf, SF_STR_LICENSE, value) ; in caf_read_strings()
894 psf_log_printf (psf, " Unhandled hash 0x%x : /* '%s' */\n", hash, key) ; in caf_read_strings()
928 caf_write_strings (SF_PRIVATE * psf, int location) in caf_write_strings() argument
936 { if (psf->strings.data [k].type == 0) in caf_write_strings()
939 if (psf->strings.data [k].flags != location) in caf_write_strings()
942 if ((cptr = psf_get_string (psf, psf->strings.data [k].type)) == NULL) in caf_write_strings()
945 switch (psf->strings.data [k].type) in caf_write_strings()
985 …psf_binheader_writef (psf, "Em84b", BHWm (info_MARKER), BHW8 (buf.index + 4), BHW4 (string_count),… in caf_write_strings()
992 caf_set_chunk (SF_PRIVATE *psf, const SF_CHUNK_INFO * chunk_info) in caf_set_chunk() argument
993 { return psf_save_write_chunk (&psf->wchunks, chunk_info) ; in caf_set_chunk()
997 caf_next_chunk_iterator (SF_PRIVATE *psf, SF_CHUNK_ITERATOR * iterator) in caf_next_chunk_iterator() argument
998 { return psf_next_chunk_iterator (&psf->rchunks, iterator) ; in caf_next_chunk_iterator()
1002 caf_get_chunk_size (SF_PRIVATE *psf, const SF_CHUNK_ITERATOR * iterator, SF_CHUNK_INFO * chunk_info) in caf_get_chunk_size() argument
1005 if ((indx = psf_find_read_chunk_iterator (&psf->rchunks, iterator)) < 0) in caf_get_chunk_size()
1008 chunk_info->datalen = psf->rchunks.chunks [indx].len ; in caf_get_chunk_size()
1014 caf_get_chunk_data (SF_PRIVATE *psf, const SF_CHUNK_ITERATOR * iterator, SF_CHUNK_INFO * chunk_info) in caf_get_chunk_data() argument
1018 if ((indx = psf_find_read_chunk_iterator (&psf->rchunks, iterator)) < 0) in caf_get_chunk_data()
1024 chunk_info->id_size = psf->rchunks.chunks [indx].id_size ; in caf_get_chunk_data()
1025 …memcpy (chunk_info->id, psf->rchunks.chunks [indx].id, sizeof (chunk_info->id) / sizeof (*chunk_in… in caf_get_chunk_data()
1027 pos = psf_ftell (psf) ; in caf_get_chunk_data()
1028 psf_fseek (psf, psf->rchunks.chunks [indx].offset, SEEK_SET) ; in caf_get_chunk_data()
1029 …psf_fread (chunk_info->data, SF_MIN (chunk_info->datalen, psf->rchunks.chunks [indx].len), 1, psf)… in caf_get_chunk_data()
1030 psf_fseek (psf, pos, SEEK_SET) ; in caf_get_chunk_data()