Codebase list squeezelite / d0b52bc
Merge tag 'upstream/1.6.3' into develop Tag upstream version 1.6.3 Chris Boot 9 years ago
5 changed file(s) with 38 addition(s) and 7 deletion(s). Raw diff Collapse all Expand all
8989 - log command line to logfile when debugging enabled
9090 - option to exclude codecs (-e)
9191 - support parallel execution of libsoxr
92
93 Version 1.6.3 14/6/14
94 =====================
95
96 Minor changes
97 - reduce time to start track when playing local files
98 - disable use of OPENMP when RESAMPLE build option defined, add new option RESAMPLE_MP to enable it
116116 #if WINEVENT
117117 " WINEVENT"
118118 #endif
119 #if RESAMPLE_MP
120 " RESAMPLE_MP"
121 #else
119122 #if RESAMPLE
120123 " RESAMPLE"
124 #endif
121125 #endif
122126 #if FFMPEG
123127 " FFMPEG"
4949 void (* soxr_delete)(soxr_t);
5050 soxr_error_t (* soxr_process)(soxr_t, soxr_in_t, size_t, size_t *, soxr_out_t, size_t olen, size_t *);
5151 size_t *(* soxr_num_clips)(soxr_t);
52 #if RESAMPLE_MP
5253 soxr_runtime_spec_t (* soxr_runtime_spec)(unsigned num_threads);
54 #endif
5355 // soxr_strerror is a macro so not included here
5456 #endif
5557 };
175177
176178 soxr_io_spec_t io_spec;
177179 soxr_quality_spec_t q_spec;
180 soxr_error_t error;
181 #if RESAMPLE_MP
178182 soxr_runtime_spec_t r_spec;
179 soxr_error_t error;
183 #endif
180184
181185 LOG_INFO("resampling from %u -> %u", raw_sample_rate, outrate);
182186
197201 q_spec.phase_response = r->q_phase_response;
198202 }
199203
204 #if RESAMPLE_MP
200205 r_spec = SOXR(r, runtime_spec, 0); // make use of libsoxr OpenMP support allowing parallel execution if multiple cores
206 #endif
201207
202208 LOG_DEBUG("resampling with soxr_quality_spec_t[precision: %03.1f, passband_end: %03.6f, stopband_begin: %03.6f, "
203209 "phase_response: %03.1f, flags: 0x%02x], soxr_io_spec_t[scale: %03.2f]", q_spec.precision,
204210 q_spec.passband_end, q_spec.stopband_begin, q_spec.phase_response, q_spec.flags, io_spec.scale);
205211
212 #if RESAMPLE_MP
206213 r->resampler = SOXR(r, create, raw_sample_rate, outrate, 2, &error, &io_spec, &q_spec, &r_spec);
214 #else
215 r->resampler = SOXR(r, create, raw_sample_rate, outrate, 2, &error, &io_spec, &q_spec, NULL);
216 #endif
217
207218 if (error) {
208219 LOG_INFO("soxr_create error: %s", soxr_strerror(error));
209220 return false;
238249
239250 r->soxr_io_spec = dlsym(handle, "soxr_io_spec");
240251 r->soxr_quality_spec = dlsym(handle, "soxr_quality_spec");
241 r->soxr_runtime_spec = dlsym(handle, "soxr_runtime_spec");
242252 r->soxr_create = dlsym(handle, "soxr_create");
243253 r->soxr_delete = dlsym(handle, "soxr_delete");
244254 r->soxr_process = dlsym(handle, "soxr_process");
245255 r->soxr_num_clips = dlsym(handle, "soxr_num_clips");
256 #if RESAMPLE_MP
257 r->soxr_runtime_spec = dlsym(handle, "soxr_runtime_spec");
258 #endif
246259
247260 if ((err = dlerror()) != NULL) {
248261 LOG_INFO("dlerror: %s", err);
1717 *
1818 */
1919
20 // make may define: PORTAUDIO, SELFPIPE, RESAMPLE, VISEXPORT, DSD, LINKALL to influence build
21
22 #define VERSION "v1.6.2"
20 // make may define: PORTAUDIO, SELFPIPE, RESAMPLE, RESAMPLE_MP, VISEXPORT, DSD, LINKALL to influence build
21
22 #define VERSION "v1.6.3"
2323
2424 // build detection
2525 #if defined(linux)
7070 #define WINEVENT 1
7171 #endif
7272
73 #if defined(RESAMPLE)
73 #if defined(RESAMPLE) || defined(RESAMPLE_MP)
7474 #undef RESAMPLE
7575 #define RESAMPLE 1 // resampling
7676 #define PROCESS 1 // any sample processing (only resampling at present)
7777 #else
7878 #define RESAMPLE 0
7979 #define PROCESS 0
80 #endif
81 #if defined(RESAMPLE_MP)
82 #undef RESAMPLE_MP
83 #define RESAMPLE_MP 1
84 #else
85 #define RESAMPLE_MP 0
8086 #endif
8187
8288 #if defined(FFMPEG)
351351 LOG_INFO("can't open file: %s", stream.header);
352352 stream.state = DISCONNECT;
353353 }
354
354 wake_controller();
355
355356 stream.cont_wait = false;
356357 stream.meta_interval = 0;
357358 stream.meta_next = 0;