Lines Matching defs:psf
53 static sf_count_t dwvw_read_s (SF_PRIVATE *psf, short *ptr, sf_count_t len) ;
54 static sf_count_t dwvw_read_i (SF_PRIVATE *psf, int *ptr, sf_count_t len) ;
55 static sf_count_t dwvw_read_f (SF_PRIVATE *psf, float *ptr, sf_count_t len) ;
56 static sf_count_t dwvw_read_d (SF_PRIVATE *psf, double *ptr, sf_count_t len) ;
58 static sf_count_t dwvw_write_s (SF_PRIVATE *psf, const short *ptr, sf_count_t len) ;
59 static sf_count_t dwvw_write_i (SF_PRIVATE *psf, const int *ptr, sf_count_t len) ;
60 static sf_count_t dwvw_write_f (SF_PRIVATE *psf, const float *ptr, sf_count_t len) ;
61 static sf_count_t dwvw_write_d (SF_PRIVATE *psf, const double *ptr, sf_count_t len) ;
63 static sf_count_t dwvw_seek (SF_PRIVATE *psf, int mode, sf_count_t offset) ;
64 static int dwvw_close (SF_PRIVATE *psf) ;
65 static int dwvw_byterate (SF_PRIVATE *psf) ;
67 static int dwvw_decode_data (SF_PRIVATE *psf, DWVW_PRIVATE *pdwvw, int *ptr, int len) ;
68 static int dwvw_decode_load_bits (SF_PRIVATE *psf, DWVW_PRIVATE *pdwvw, int bit_count) ;
70 static int dwvw_encode_data (SF_PRIVATE *psf, DWVW_PRIVATE *pdwvw, const int *ptr, int len) ;
71 static void dwvw_encode_store_bits (SF_PRIVATE *psf, DWVW_PRIVATE *pdwvw, int data, int new_bits) ;
79 dwvw_init (SF_PRIVATE *psf, int bitwidth)
82 if (psf->codec_data != NULL)
83 { psf_log_printf (psf, "*** psf->codec_data is not NULL.\n") ;
90 if (psf->file.mode == SFM_RDWR)
96 psf->codec_data = (void*) pdwvw ;
100 if (psf->file.mode == SFM_READ)
101 { psf->read_short = dwvw_read_s ;
102 psf->read_int = dwvw_read_i ;
103 psf->read_float = dwvw_read_f ;
104 psf->read_double = dwvw_read_d ;
107 if (psf->file.mode == SFM_WRITE)
108 { psf->write_short = dwvw_write_s ;
109 psf->write_int = dwvw_write_i ;
110 psf->write_float = dwvw_write_f ;
111 psf->write_double = dwvw_write_d ;
114 psf->codec_close = dwvw_close ;
115 psf->seek = dwvw_seek ;
116 psf->byterate = dwvw_byterate ;
118 if (psf->file.mode == SFM_READ)
119 { psf->sf.frames = psf_decode_frame_count (psf) ;
130 dwvw_close (SF_PRIVATE *psf)
133 if (psf->codec_data == NULL)
135 pdwvw = (DWVW_PRIVATE*) psf->codec_data ;
137 if (psf->file.mode == SFM_WRITE)
141 dwvw_encode_data (psf, pdwvw, last_values, 12) ;
144 psf_fwrite (pdwvw->b.buffer, 1, pdwvw->b.index, psf) ;
146 if (psf->write_header)
147 psf->write_header (psf, SF_TRUE) ;
154 dwvw_seek (SF_PRIVATE *psf, int UNUSED (mode), sf_count_t offset)
157 if (! psf->codec_data)
158 { psf->error = SFE_INTERNAL ;
162 pdwvw = (DWVW_PRIVATE*) psf->codec_data ;
165 { psf_fseek (psf, psf->dataoffset, SEEK_SET) ;
170 psf->error = SFE_BAD_SEEK ;
175 dwvw_byterate (SF_PRIVATE *psf)
177 if (psf->file.mode == SFM_READ)
178 return (psf->datalength * psf->sf.samplerate) / psf->sf.frames ;
187 dwvw_read_s (SF_PRIVATE *psf, short *ptr, sf_count_t len)
194 if (! psf->codec_data)
196 pdwvw = (DWVW_PRIVATE*) psf->codec_data ;
202 count = dwvw_decode_data (psf, pdwvw, iptr, readcount) ;
216 dwvw_read_i (SF_PRIVATE *psf, int *ptr, sf_count_t len)
221 if (! psf->codec_data)
223 pdwvw = (DWVW_PRIVATE*) psf->codec_data ;
228 count = dwvw_decode_data (psf, pdwvw, ptr, readcount) ;
241 dwvw_read_f (SF_PRIVATE *psf, float *ptr, sf_count_t len)
249 if (! psf->codec_data)
251 pdwvw = (DWVW_PRIVATE*) psf->codec_data ;
253 normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x80000000) : 1.0 ;
259 count = dwvw_decode_data (psf, pdwvw, iptr, readcount) ;
273 dwvw_read_d (SF_PRIVATE *psf, double *ptr, sf_count_t len)
281 if (! psf->codec_data)
283 pdwvw = (DWVW_PRIVATE*) psf->codec_data ;
285 normfact = (psf->norm_double == SF_TRUE) ? 1.0 / ((double) 0x80000000) : 1.0 ;
291 count = dwvw_decode_data (psf, pdwvw, iptr, readcount) ;
305 dwvw_decode_data (SF_PRIVATE *psf, DWVW_PRIVATE *pdwvw, int *ptr, int len)
315 delta_width_modifier = dwvw_decode_load_bits (psf, pdwvw, -1) ;
321 if (delta_width_modifier && dwvw_decode_load_bits (psf, pdwvw, 1))
330 { delta = dwvw_decode_load_bits (psf, pdwvw, delta_width - 1) | (1 << (delta_width - 1)) ;
331 delta_negative = dwvw_decode_load_bits (psf, pdwvw, 1) ;
333 delta += dwvw_decode_load_bits (psf, pdwvw, 1) ;
362 dwvw_decode_load_bits (SF_PRIVATE *psf, DWVW_PRIVATE *pdwvw, int bit_count)
380 { pdwvw->b.end = (int) psf_fread (pdwvw->b.buffer, 1, sizeof (pdwvw->b.buffer), psf) ;
428 dwvw_encode_store_bits (SF_PRIVATE *psf, DWVW_PRIVATE *pdwvw, int data, int new_bits)
444 { psf_fwrite (pdwvw->b.buffer, 1, pdwvw->b.index, psf) ;
483 dwvw_encode_data (SF_PRIVATE *psf, DWVW_PRIVATE *pdwvw, const int *ptr, int len)
528 dwvw_encode_store_bits (psf, pdwvw, 0, abs (delta_width_modifier)) ;
530 dwvw_encode_store_bits (psf, pdwvw, 1, 1) ;
534 dwvw_encode_store_bits (psf, pdwvw, 1, 1) ;
536 dwvw_encode_store_bits (psf, pdwvw, 0, 1) ;
540 { dwvw_encode_store_bits (psf, pdwvw, delta, abs (delta_width) - 1) ;
541 dwvw_encode_store_bits (psf, pdwvw, (delta_negative ? 1 : 0), 1) ;
546 dwvw_encode_store_bits (psf, pdwvw, extra_bit, 1) ;
558 dwvw_write_s (SF_PRIVATE *psf, const short *ptr, sf_count_t len)
565 if (! psf->codec_data)
567 pdwvw = (DWVW_PRIVATE*) psf->codec_data ;
575 count = dwvw_encode_data (psf, pdwvw, iptr, writecount) ;
587 dwvw_write_i (SF_PRIVATE *psf, const int *ptr, sf_count_t len)
592 if (! psf->codec_data)
594 pdwvw = (DWVW_PRIVATE*) psf->codec_data ;
599 count = dwvw_encode_data (psf, pdwvw, ptr, writecount) ;
612 dwvw_write_f (SF_PRIVATE *psf, const float *ptr, sf_count_t len)
620 if (! psf->codec_data)
622 pdwvw = (DWVW_PRIVATE*) psf->codec_data ;
624 normfact = (psf->norm_float == SF_TRUE) ? (1.0 * 0x7FFFFFFF) : 1.0 ;
632 count = dwvw_encode_data (psf, pdwvw, iptr, writecount) ;
644 dwvw_write_d (SF_PRIVATE *psf, const double *ptr, sf_count_t len)
652 if (! psf->codec_data)
654 pdwvw = (DWVW_PRIVATE*) psf->codec_data ;
656 normfact = (psf->norm_double == SF_TRUE) ? (1.0 * 0x7FFFFFFF) : 1.0 ;
664 count = dwvw_encode_data (psf, pdwvw, iptr, writecount) ;