]>
Commit | Line | Data |
---|---|---|
584c94b3 JB |
1 | --- cinelerra-1.1.5/cinelerra/filesndfile.C.orig Sat Nov 2 10:06:39 2002 |
2 | +++ cinelerra-1.1.5/cinelerra/filesndfile.C Fri Mar 21 01:19:58 2003 | |
3 | @@ -25,7 +25,7 @@ | |
4 | SF_INFO fd_config; | |
5 | fd_config.format = 0; | |
6 | //printf("FileSndFile::check_sig 1\n"); | |
7 | - SNDFILE *fd = sf_open_read(asset->path, &fd_config); | |
8 | + SNDFILE *fd = sf_open(asset->path, SFM_READ, &fd_config); | |
9 | //printf("FileSndFile::check_sig 1\n"); | |
10 | ||
11 | if(fd) | |
12 | @@ -56,30 +56,29 @@ | |
13 | case BITSLINEAR8: | |
14 | case BITSLINEAR16: | |
15 | case BITSLINEAR24: | |
16 | - if(asset->format != FILE_PCM) | |
17 | - { | |
18 | - fd_config.format |= SF_FORMAT_PCM; | |
19 | - } | |
20 | - else | |
21 | + if(asset->format == FILE_PCM) | |
22 | { | |
23 | if(asset->byte_order) | |
24 | - fd_config.format |= SF_FORMAT_PCM_LE; | |
25 | + fd_config.format |= SF_ENDIAN_LITTLE; | |
26 | else | |
27 | - fd_config.format |= SF_FORMAT_PCM_BE; | |
28 | + fd_config.format |= SF_ENDIAN_BIG; | |
29 | } | |
30 | - fd_config.pcmbitwidth = asset->bits; | |
31 | -//printf("FileSndFile::asset_to_format 1 %x %d\n", fd_config.format, fd_config.pcmbitwidth); | |
32 | + if(asset->bits == BITSLINEAR8) | |
33 | + fd_config.format |= SF_FORMAT_PCM_S8; | |
34 | + else if(asset->bits == BITSLINEAR16) | |
35 | + fd_config.format |= SF_FORMAT_PCM_16; | |
36 | + else | |
37 | + fd_config.format |= SF_FORMAT_PCM_24; | |
38 | +//printf("FileSndFile::asset_to_format 1 %x\n", fd_config.format); | |
39 | break; | |
40 | ||
41 | case BITSULAW: | |
42 | fd_config.format |= SF_FORMAT_ULAW; | |
43 | - fd_config.pcmbitwidth = 16; | |
44 | break; | |
45 | ||
46 | case BITSFLOAT: | |
47 | //printf("FileSndFile::asset_to_format 1\n"); | |
48 | fd_config.format |= SF_FORMAT_FLOAT; | |
49 | - fd_config.pcmbitwidth = 16; | |
50 | break; | |
51 | ||
52 | case BITS_ADPCM: | |
53 | @@ -87,14 +86,13 @@ | |
54 | fd_config.format |= SF_FORMAT_MS_ADPCM; | |
55 | else | |
56 | fd_config.format |= SF_FORMAT_IMA_ADPCM; | |
57 | - fd_config.pcmbitwidth = 16; | |
58 | break; | |
59 | } | |
60 | ||
61 | fd_config.seekable = 1; | |
62 | fd_config.samplerate = asset->sample_rate; | |
63 | fd_config.channels = asset->channels; | |
64 | -//printf("FileSndFile::asset_to_format %x %d %d\n", fd_config.format, fd_config.pcmbitwidth, fd_config.channels); | |
65 | +//printf("FileSndFile::asset_to_format %x %d\n", fd_config.format, fd_config.channels); | |
66 | } | |
67 | ||
68 | void FileSndFile::format_to_asset() | |
69 | @@ -113,7 +111,6 @@ | |
70 | break; | |
71 | case SF_FORMAT_AIFF: asset->format = FILE_AIFF; break; | |
72 | case SF_FORMAT_AU: asset->format = FILE_AU; break; | |
73 | - case SF_FORMAT_AULE: asset->format = FILE_AU; break; | |
74 | case SF_FORMAT_RAW: asset->format = FILE_PCM; break; | |
75 | case SF_FORMAT_PAF: asset->format = FILE_SND; break; | |
76 | case SF_FORMAT_SVX: asset->format = FILE_SND; break; | |
77 | @@ -132,17 +129,6 @@ | |
78 | case SF_FORMAT_MS_ADPCM: | |
79 | asset->bits = BITS_ADPCM; | |
80 | break; | |
81 | - case SF_FORMAT_PCM: | |
82 | - asset->bits = fd_config.pcmbitwidth; | |
83 | - break; | |
84 | - case SF_FORMAT_PCM_BE: | |
85 | - asset->byte_order = 0; | |
86 | - asset->bits = fd_config.pcmbitwidth; | |
87 | - break; | |
88 | - case SF_FORMAT_PCM_LE: | |
89 | - asset->byte_order = 1; | |
90 | - asset->bits = fd_config.pcmbitwidth; | |
91 | - break; | |
92 | case SF_FORMAT_PCM_S8: | |
93 | asset->signed_ = 1; | |
94 | asset->bits = BITSLINEAR8; | |
6c08bb5e | 95 | @@ -151,14 +137,30 @@ |
584c94b3 JB |
96 | asset->signed_ = 0; |
97 | asset->bits = BITSLINEAR8; | |
98 | break; | |
99 | + case SF_FORMAT_PCM_16: | |
100 | + asset->bits = BITSLINEAR16; | |
101 | + break; | |
102 | + case SF_FORMAT_PCM_24: | |
103 | + asset->bits = BITSLINEAR24; | |
104 | + break; | |
105 | + case SF_FORMAT_PCM_32: | |
106 | + asset->bits = BITSLINEAR32; | |
107 | + break; | |
108 | + } | |
109 | + switch(fd_config.format & SF_FORMAT_ENDMASK) { | |
110 | + case SF_ENDIAN_LITTLE: | |
111 | + asset->byte_order = 1; | |
112 | + break; | |
113 | + case SF_ENDIAN_BIG: | |
114 | + asset->byte_order = 0; | |
115 | + break; | |
116 | } | |
117 | - | |
118 | asset->audio_data = 1; | |
119 | - asset->audio_length = fd_config.samples; | |
120 | + asset->audio_length = fd_config.frames; | |
6c08bb5e JB |
121 | if(!asset->sample_rate) |
122 | asset->sample_rate = fd_config.samplerate; | |
584c94b3 JB |
123 | asset->channels = fd_config.channels; |
124 | -//printf("FileSndFile::format_to_asset %x %d %d %x\n", fd_config.format & SF_FORMAT_TYPEMASK, fd_config.pcmbitwidth, fd_config.samples, fd_config.format & SF_FORMAT_SUBMASK); | |
125 | +//printf("FileSndFile::format_to_asset %x %d %x\n", fd_config.format & SF_FORMAT_TYPEMASK, fd_config.frames, fd_config.format & SF_FORMAT_SUBMASK); | |
126 | //asset->dump(); | |
127 | } | |
128 | ||
129 | @@ -172,12 +174,12 @@ | |
130 | if(asset->format == FILE_PCM) | |
131 | { | |
132 | asset_to_format(); | |
133 | - fd = sf_open_read(asset->path, &fd_config); | |
134 | + fd = sf_open(asset->path, SFM_READ, &fd_config); | |
135 | format_to_asset(); | |
136 | } | |
137 | else | |
138 | { | |
139 | - fd = sf_open_read(asset->path, &fd_config); | |
140 | + fd = sf_open(asset->path, SFM_READ, &fd_config); | |
141 | // Doesn't calculate the length | |
142 | format_to_asset(); | |
143 | } | |
144 | @@ -188,7 +190,7 @@ | |
145 | //printf("FileSndFile::open_file 1\n"); | |
146 | asset_to_format(); | |
147 | //printf("FileSndFile::open_file 1\n"); | |
148 | - fd = sf_open_write(asset->path, &fd_config); | |
149 | + fd = sf_open(asset->path, SFM_WRITE, &fd_config); | |
150 | //printf("FileSndFile::open_file 2 %p\n", fd); | |
151 | } | |
152 | ||
153 | @@ -252,7 +254,7 @@ | |
154 | } | |
155 | ||
156 | //printf("FileSndFile::read_samples 3\n"); | |
157 | - result = !sf_read_double(fd, temp_double, len * asset->channels, 1); | |
158 | + result = !sf_read_double(fd, temp_double, len * asset->channels); | |
159 | //printf("FileSndFile::read_samples 4\n"); | |
160 | ||
161 | if(result) | |
162 | @@ -305,7 +307,7 @@ | |
163 | } | |
164 | } | |
165 | ||
166 | - result = !sf_writef_double(fd, temp_double, len, 1); | |
167 | + result = !sf_writef_double(fd, temp_double, len); | |
168 | ||
169 | return result; | |
170 | } |