int pa_sndfile_read_sample_spec(SNDFILE *sf, pa_sample_spec *ss) {
SF_INFO sfi;
+ int sf_errno;
pa_assert(sf);
pa_assert(ss);
pa_zero(sfi);
- pa_assert_se(sf_command(sf, SFC_GET_CURRENT_SF_INFO, &sfi, sizeof(sfi)) == 0);
+ if ((sf_errno = sf_command(sf, SFC_GET_CURRENT_SF_INFO, &sfi, sizeof(sfi)))) {
+ pa_log_error("sndfile: %s", sf_error_number(sf_errno));
+ return -1;
+ }
switch (sfi.format & SF_FORMAT_SUBMASK) {
static const pa_channel_position_t table[] = {
[SF_CHANNEL_MAP_MONO] = PA_CHANNEL_POSITION_MONO,
- [SF_CHANNEL_MAP_LEFT] = PA_CHANNEL_POSITION_FRONT_LEFT, /* libsndfile distuingishes left und front-left, which we don't */
+ [SF_CHANNEL_MAP_LEFT] = PA_CHANNEL_POSITION_FRONT_LEFT, /* libsndfile distinguishes left and front-left, which we don't */
[SF_CHANNEL_MAP_RIGHT] = PA_CHANNEL_POSITION_FRONT_RIGHT,
[SF_CHANNEL_MAP_CENTER] = PA_CHANNEL_POSITION_FRONT_CENTER,
[SF_CHANNEL_MAP_FRONT_LEFT] = PA_CHANNEL_POSITION_FRONT_LEFT,
};
SF_INFO sfi;
+ int sf_errno;
int *channels;
unsigned c;
pa_assert(cm);
pa_zero(sfi);
- pa_assert_se(sf_command(sf, SFC_GET_CURRENT_SF_INFO, &sfi, sizeof(sfi)) == 0);
+ if ((sf_errno = sf_command(sf, SFC_GET_CURRENT_SF_INFO, &sfi, sizeof(sfi)))) {
+ pa_log_error("sndfile: %s", sf_error_number(sf_errno));
+ return -1;
+ }
channels = pa_xnew(int, sfi.channels);
- if (!sf_command(sf, SFC_GET_CHANNEL_MAP_INFO,
- channels, sizeof(channels[0]) * sfi.channels)) {
-
+ if (!sf_command(sf, SFC_GET_CHANNEL_MAP_INFO, channels, sizeof(channels[0]) * sfi.channels)) {
pa_xfree(channels);
return -1;
}
SF_INFO sfi;
SF_FORMAT_INFO fi;
+ int sf_errno;
unsigned c;
pa_assert(sf);
}
pa_zero(sfi);
- pa_assert_se(sf_command(sf, SFC_GET_CURRENT_SF_INFO, &sfi, sizeof(sfi)) == 0);
+ if ((sf_errno = sf_command(sf, SFC_GET_CURRENT_SF_INFO, &sfi, sizeof(sfi)))) {
+ pa_log_error("sndfile: %s", sf_error_number(sf_errno));
+ return;
+ }
pa_zero(fi);
fi.format = sfi.format;