sndfile-util: Check return value of sf_command for errors

It's better to show a message what the error is,
instead of just asserting that no errors happen in an external library call.
This commit is contained in:
Maarten Bosmans 2011-08-24 20:08:08 +02:00 committed by Arun Raghavan
parent 55fdb0162c
commit e04d592a47

View file

@ -34,12 +34,16 @@
int pa_sndfile_read_sample_spec(SNDFILE *sf, pa_sample_spec *ss) { int pa_sndfile_read_sample_spec(SNDFILE *sf, pa_sample_spec *ss) {
SF_INFO sfi; SF_INFO sfi;
int sf_errno;
pa_assert(sf); pa_assert(sf);
pa_assert(ss); pa_assert(ss);
pa_zero(sfi); 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) { switch (sfi.format & SF_FORMAT_SUBMASK) {
@ -175,6 +179,7 @@ int pa_sndfile_read_channel_map(SNDFILE *sf, pa_channel_map *cm) {
}; };
SF_INFO sfi; SF_INFO sfi;
int sf_errno;
int *channels; int *channels;
unsigned c; unsigned c;
@ -182,12 +187,13 @@ int pa_sndfile_read_channel_map(SNDFILE *sf, pa_channel_map *cm) {
pa_assert(cm); pa_assert(cm);
pa_zero(sfi); 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); channels = pa_xnew(int, sfi.channels);
if (!sf_command(sf, SFC_GET_CHANNEL_MAP_INFO, if (!sf_command(sf, SFC_GET_CHANNEL_MAP_INFO, channels, sizeof(channels[0]) * sfi.channels)) {
channels, sizeof(channels[0]) * sfi.channels)) {
pa_xfree(channels); pa_xfree(channels);
return -1; return -1;
} }
@ -325,6 +331,7 @@ void pa_sndfile_init_proplist(SNDFILE *sf, pa_proplist *p) {
SF_INFO sfi; SF_INFO sfi;
SF_FORMAT_INFO fi; SF_FORMAT_INFO fi;
int sf_errno;
unsigned c; unsigned c;
pa_assert(sf); pa_assert(sf);
@ -346,7 +353,10 @@ void pa_sndfile_init_proplist(SNDFILE *sf, pa_proplist *p) {
} }
pa_zero(sfi); 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); pa_zero(fi);
fi.format = sfi.format; fi.format = sfi.format;