Lines Matching defs:plac

76 static sf_count_t alac_reader_calc_frames (SF_PRIVATE *psf, ALAC_PRIVATE *plac) ;
93 static int alac_decode_block (SF_PRIVATE *psf, ALAC_PRIVATE *plac) ;
94 static int alac_encode_block (ALAC_PRIVATE *plac) ;
166 { ALAC_PRIVATE *plac ;
169 plac = psf->codec_data ;
172 { ALAC_ENCODER *penc = &plac->u.encoder ;
178 plac->final_write_block = 1 ;
179 saved_partial_block_frames = plac->partial_block_frames ;
182 if (plac->partial_block_frames && plac->partial_block_frames < plac->frames_per_block)
183 alac_encode_block (plac) ;
185 plac->partial_block_frames = saved_partial_block_frames ;
187 alac_get_magic_cookie (penc, kuki_data, &plac->kuki_size) ;
192 chunk_info.datalen = plac->kuki_size ;
206 if (plac->enctmp != NULL)
207 { fseek (plac->enctmp, 0, SEEK_SET) ;
209 while ((readcount = fread (ubuf.ucbuf, 1, sizeof (ubuf.ucbuf), plac->enctmp)) > 0)
211 fclose (plac->enctmp) ;
212 remove (plac->enctmpname) ;
216 if (plac->pakt_info)
217 free (plac->pakt_info) ;
218 plac->pakt_info = NULL ;
238 { ALAC_PRIVATE *plac ;
253 plac = psf->codec_data ;
255 plac->channels = psf->sf.channels ;
256 plac->frames_per_block = info->frames_per_packet ;
257 plac->bits_per_sample = info->bits_per_sample ;
259 if (plac->pakt_info != NULL)
260 free (plac->pakt_info) ;
261 plac->pakt_info = alac_pakt_read_decode (psf, info->pakt_offset) ;
263 if (plac->pakt_info == NULL)
271 if ((error = alac_decoder_init (&plac->u.decoder, u.kuki, kuki_size)) != ALAC_noErr)
277 if (plac->u.decoder.mNumChannels != (unsigned) psf->sf.channels)
278 { psf_log_printf (psf, "*** Initialized decoder has %u channels, but it should be %d. ***\n", plac->u.decoder.mNumChannels, psf->sf.channels) ;
301 psf->sf.frames = alac_reader_calc_frames (psf, plac) ;
309 { ALAC_PRIVATE *plac ;
312 plac = psf->codec_data ;
317 plac->channels = psf->sf.channels ;
318 plac->kuki_size = alac_get_magic_cookie_size (psf->sf.channels) ;
328 plac->bits_per_sample = 16 ;
333 plac->bits_per_sample = 20 ;
338 plac->bits_per_sample = 24 ;
343 plac->bits_per_sample = 32 ;
351 plac->frames_per_block = ALAC_FRAME_LENGTH ;
353 plac->pakt_info = alac_pakt_alloc (2000) ;
355 if ((plac->enctmp = psf_open_tmpfile (plac->enctmpname, sizeof (plac->enctmpname))) == NULL)
356 { psf_log_printf (psf, "Error : Failed to open temp file '%s' : \n", plac->enctmpname, strerror (errno)) ;
360 alac_encoder_init (&plac->u.encoder, psf->sf.samplerate, psf->sf.channels, alac_format_flags, ALAC_FRAME_LENGTH) ;
377 alac_reader_calc_frames (SF_PRIVATE *psf, ALAC_PRIVATE *plac)
381 plac->pakt_info->current = 0 ;
384 { current_pos = alac_reader_next_packet_size (plac->pakt_info) ;
392 frames = plac->frames_per_block * (blocks - 1) ;
395 alac_decode_block (psf, plac) ;
396 frames += plac->frames_this_block ;
398 plac->pakt_info->current = 0 ;
404 alac_decode_block (SF_PRIVATE *psf, ALAC_PRIVATE *plac)
405 { ALAC_DECODER *pdec = &plac->u.decoder ;
409 packet_size = alac_reader_next_packet_size (plac->pakt_info) ;
411 { if (plac->pakt_info->current < plac->pakt_info->count)
412 psf_log_printf (psf, "packet_size is 0 (%d of %d)\n", plac->pakt_info->current, plac->pakt_info->count) ;
416 psf_fseek (psf, plac->input_data_pos, SEEK_SET) ;
418 if (packet_size > sizeof (plac->byte_buffer))
423 if ((packet_size != psf_fread (plac->byte_buffer, 1, packet_size, psf)))
426 BitBufferInit (&bit_buffer, plac->byte_buffer, packet_size) ;
428 plac->input_data_pos += packet_size ;
429 plac->frames_this_block = 0 ;
430 alac_decode (pdec, &bit_buffer, plac->buffer, plac->frames_per_block, &plac->frames_this_block) ;
432 plac->partial_block_frames = 0 ;
439 alac_encode_block (ALAC_PRIVATE *plac)
440 { ALAC_ENCODER *penc = &plac->u.encoder ;
443 alac_encode (penc, plac->partial_block_frames, plac->buffer, plac->byte_buffer, &num_bytes) ;
445 if (fwrite (plac->byte_buffer, 1, num_bytes, plac->enctmp) != num_bytes)
447 if ((plac->pakt_info = alac_pakt_append (plac->pakt_info, num_bytes)) == NULL)
450 plac->partial_block_frames = 0 ;
461 { ALAC_PRIVATE *plac ;
466 if ((plac = (ALAC_PRIVATE*) psf->codec_data) == NULL)
470 { if (plac->partial_block_frames >= plac->frames_this_block && alac_decode_block (psf, plac) == 0)
473 readcount = (plac->frames_this_block - plac->partial_block_frames) * plac->channels ;
476 iptr = plac->buffer + plac->partial_block_frames * plac->channels ;
481 plac->partial_block_frames += readcount / plac->channels ;
491 { ALAC_PRIVATE *plac ;
496 if ((plac = (ALAC_PRIVATE*) psf->codec_data) == NULL)
500 { if (plac->partial_block_frames >= plac->frames_this_block && alac_decode_block (psf, plac) == 0)
503 readcount = (plac->frames_this_block - plac->partial_block_frames) * plac->channels ;
506 iptr = plac->buffer + plac->partial_block_frames * plac->channels ;
511 plac->partial_block_frames += readcount / plac->channels ;
521 { ALAC_PRIVATE *plac ;
527 if ((plac = (ALAC_PRIVATE*) psf->codec_data) == NULL)
533 { if (plac->partial_block_frames >= plac->frames_this_block && alac_decode_block (psf, plac) == 0)
536 readcount = (plac->frames_this_block - plac->partial_block_frames) * plac->channels ;
539 iptr = plac->buffer + plac->partial_block_frames * plac->channels ;
544 plac->partial_block_frames += readcount / plac->channels ;
554 { ALAC_PRIVATE *plac ;
560 if ((plac = (ALAC_PRIVATE*) psf->codec_data) == NULL)
566 { if (plac->partial_block_frames >= plac->frames_this_block && alac_decode_block (psf, plac) == 0)
569 readcount = (plac->frames_this_block - plac->partial_block_frames) * plac->channels ;
572 iptr = plac->buffer + plac->partial_block_frames * plac->channels ;
577 plac->partial_block_frames += readcount / plac->channels ;
590 { ALAC_PRIVATE *plac ;
595 plac = (ALAC_PRIVATE*) psf->codec_data ;
605 plac->frames_this_block = 0 ;
606 plac->input_data_pos = psf->dataoffset ;
607 plac->pakt_info->current = 0 ;
611 if (offset < 0 || offset > plac->pakt_info->count * plac->frames_per_block)
616 newblock = offset / plac->frames_per_block ;
617 newsample = offset % plac->frames_per_block ;
620 { plac->input_data_pos = psf->dataoffset + alac_pakt_block_offset (plac->pakt_info, newblock) ;
622 plac->pakt_info->current = newblock ;
623 alac_decode_block (psf, plac) ;
624 plac->partial_block_frames = newsample ;
632 return newblock * plac->frames_per_block + newsample ;
641 { ALAC_PRIVATE *plac ;
646 if ((plac = (ALAC_PRIVATE*) psf->codec_data) == NULL)
650 { writecount = (plac->frames_per_block - plac->partial_block_frames) * plac->channels ;
653 iptr = plac->buffer + plac->partial_block_frames * plac->channels ;
658 plac->partial_block_frames += writecount / plac->channels ;
663 if (plac->partial_block_frames >= plac->frames_per_block)
664 alac_encode_block (plac) ;
672 { ALAC_PRIVATE *plac ;
677 if ((plac = (ALAC_PRIVATE*) psf->codec_data) == NULL)
681 { writecount = (plac->frames_per_block - plac->partial_block_frames) * plac->channels ;
684 iptr = plac->buffer + plac->partial_block_frames * plac->channels ;
689 plac->partial_block_frames += writecount / plac->channels ;
694 if (plac->partial_block_frames >= plac->frames_per_block)
695 alac_encode_block (plac) ;
703 { ALAC_PRIVATE *plac ;
709 if ((plac = (ALAC_PRIVATE*) psf->codec_data) == NULL)
715 { writecount = (plac->frames_per_block - plac->partial_block_frames) * plac->channels ;
718 iptr = plac->buffer + plac->partial_block_frames * plac->channels ;
722 plac->partial_block_frames += writecount / plac->channels ;
727 if (plac->partial_block_frames >= plac->frames_per_block)
728 alac_encode_block (plac) ;
736 { ALAC_PRIVATE *plac ;
742 if ((plac = (ALAC_PRIVATE*) psf->codec_data) == NULL)
748 { writecount = (plac->frames_per_block - plac->partial_block_frames) * plac->channels ;
751 iptr = plac->buffer + plac->partial_block_frames * plac->channels ;
755 plac->partial_block_frames += writecount / plac->channels ;
760 if (plac->partial_block_frames >= plac->frames_per_block)
761 alac_encode_block (plac) ;
880 { const ALAC_PRIVATE *plac ;
885 plac = psf->codec_data ;
886 info = plac->pakt_info ;
894 psf_put_be32 (data, 20, kALACDefaultFramesPerPacket - plac->partial_block_frames) ;