fix (and comment) on subtle bug with audio file data width function
This commit is contained in:
parent
6b9415aedb
commit
63a1b56560
|
@ -49,7 +49,6 @@ int sndfile_header_format_by_index (int);
|
|||
int sndfile_endian_format_by_index (int);
|
||||
|
||||
int sndfile_data_width (int format);
|
||||
int sndfile_data_width (ARDOUR::SampleFormat);
|
||||
|
||||
// It'd be nice if libsndfile did this for us
|
||||
std::string sndfile_major_format (int);
|
||||
|
|
|
@ -456,6 +456,8 @@ namespace ARDOUR {
|
|||
FormatInt16
|
||||
};
|
||||
|
||||
int format_data_width (ARDOUR::SampleFormat);
|
||||
|
||||
enum CDMarkerFormat {
|
||||
CDMarkerNone,
|
||||
CDMarkerCUE,
|
||||
|
|
|
@ -609,3 +609,26 @@ ARDOUR::get_microseconds ()
|
|||
return (microseconds_t) ts.tv_sec * 1000000 + (ts.tv_nsec/1000);
|
||||
#endif
|
||||
}
|
||||
|
||||
/** Return the number of bits per sample for a given sample format.
|
||||
*
|
||||
* This is closely related to sndfile_data_width() but does NOT
|
||||
* return a "magic" value to differentiate between 32 bit integer
|
||||
* and 32 bit floating point values.
|
||||
*/
|
||||
|
||||
int
|
||||
format_data_width (ARDOUR::SampleFormat format)
|
||||
{
|
||||
|
||||
|
||||
|
||||
switch (format) {
|
||||
case ARDOUR::FormatInt16:
|
||||
return 16;
|
||||
case ARDOUR::FormatInt24:
|
||||
return 24;
|
||||
default:
|
||||
return 32;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -133,26 +133,13 @@ sndfile_data_width (int format)
|
|||
case SF_FORMAT_PCM_32:
|
||||
return 32;
|
||||
case SF_FORMAT_FLOAT:
|
||||
return 32;
|
||||
return 1; /* ridiculous but used as a magic value */
|
||||
default:
|
||||
// we don't handle anything else within ardour
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
sndfile_data_width (ARDOUR::SampleFormat format)
|
||||
{
|
||||
switch (format) {
|
||||
case ARDOUR::FormatInt16:
|
||||
return sndfile_data_width (SF_FORMAT_PCM_16);
|
||||
case ARDOUR::FormatInt24:
|
||||
return sndfile_data_width (SF_FORMAT_PCM_24);
|
||||
default:
|
||||
return sndfile_data_width (SF_FORMAT_FLOAT);
|
||||
}
|
||||
}
|
||||
|
||||
string
|
||||
sndfile_major_format(int format)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue
Block a user