1 --- cinelerra-1.1.7/cinelerra/filesndfile.C.orig Sat Nov 2 10:06:39 2002
2 +++ cinelerra-1.1.7/cinelerra/filesndfile.C Fri Mar 21 01:19:58 2003
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 %p\n", fd);
16 - if(asset->format != FILE_PCM)
18 - fd_config.format |= SF_FORMAT_PCM;
21 + if(asset->format == FILE_PCM)
24 - fd_config.format |= SF_FORMAT_PCM_LE;
25 + fd_config.format |= SF_ENDIAN_LITTLE;
27 - fd_config.format |= SF_FORMAT_PCM_BE;
28 + fd_config.format |= SF_ENDIAN_BIG;
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;
37 + fd_config.format |= SF_FORMAT_PCM_24;
38 +//printf("FileSndFile::asset_to_format 1 %x\n", fd_config.format);
42 fd_config.format |= SF_FORMAT_ULAW;
43 - fd_config.pcmbitwidth = 16;
47 //printf("FileSndFile::asset_to_format 1\n");
48 fd_config.format |= SF_FORMAT_FLOAT;
49 - fd_config.pcmbitwidth = 16;
54 fd_config.format |= SF_FORMAT_MS_ADPCM;
56 fd_config.format |= SF_FORMAT_IMA_ADPCM;
57 - fd_config.pcmbitwidth = 16;
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);
68 void FileSndFile::format_to_asset()
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;
78 case SF_FORMAT_MS_ADPCM:
79 asset->bits = BITS_ADPCM;
82 - asset->bits = fd_config.pcmbitwidth;
84 - case SF_FORMAT_PCM_BE:
85 - asset->byte_order = 0;
86 - asset->bits = fd_config.pcmbitwidth;
88 - case SF_FORMAT_PCM_LE:
89 - asset->byte_order = 1;
90 - asset->bits = fd_config.pcmbitwidth;
92 case SF_FORMAT_PCM_S8:
94 asset->bits = BITSLINEAR8;
97 asset->bits = BITSLINEAR8;
99 + case SF_FORMAT_PCM_16:
100 + asset->bits = BITSLINEAR16;
102 + case SF_FORMAT_PCM_24:
103 + asset->bits = BITSLINEAR24;
105 + case SF_FORMAT_PCM_32:
106 + asset->bits = BITSLINEAR32;
109 + switch(fd_config.format & SF_FORMAT_ENDMASK) {
110 + case SF_ENDIAN_LITTLE:
111 + asset->byte_order = 1;
113 + case SF_ENDIAN_BIG:
114 + asset->byte_order = 0;
118 asset->audio_data = 1;
119 - asset->audio_length = fd_config.samples;
120 + asset->audio_length = fd_config.frames;
121 if(!asset->sample_rate)
122 asset->sample_rate = fd_config.samplerate;
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);
129 @@ -172,12 +174,12 @@
130 if(asset->format == FILE_PCM)
133 - fd = sf_open_read(asset->path, &fd_config);
134 + fd = sf_open(asset->path, SFM_READ, &fd_config);
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
145 //printf("FileSndFile::open_file 1\n");
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);
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");
166 - result = !sf_writef_double(fd, temp_double, len, 1);
167 + result = !sf_writef_double(fd, temp_double, len);