mirror of
https://github.com/vgmstream/vgmstream.git
synced 2024-11-23 22:41:05 +01:00
cleanup: misc
This commit is contained in:
parent
1d86c2d03e
commit
1ef49e45ce
@ -79,7 +79,7 @@ size_t wav_make_header(uint8_t* buf, size_t buf_size, wav_header_t* wav) {
|
|||||||
|
|
||||||
if (!wav->sample_size)
|
if (!wav->sample_size)
|
||||||
wav->sample_size = sizeof(short);
|
wav->sample_size = sizeof(short);
|
||||||
if (wav->sample_size <= 0 || wav->sample_size >= 4)
|
if (wav->sample_size <= 0x00 || wav->sample_size > 0x04)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
size_t data_size = wav->sample_count * wav->channels * wav->sample_size;
|
size_t data_size = wav->sample_count * wav->channels * wav->sample_size;
|
||||||
|
@ -151,7 +151,7 @@ void sbuf_copy_from_f32(sbuf_t* sbuf, float* src) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void sbuf_copy_samples(sample_t* dst, int dst_channels, sample_t* src, int src_channels, int samples_to_do, int samples_filled) {
|
void sbuf_copy_segments(sample_t* dst, int dst_channels, sample_t* src, int src_channels, int samples_to_do, int samples_filled) {
|
||||||
int pos = samples_filled * dst_channels;
|
int pos = samples_filled * dst_channels;
|
||||||
|
|
||||||
if (src_channels == dst_channels) { /* most common and probably faster */
|
if (src_channels == dst_channels) { /* most common and probably faster */
|
||||||
@ -186,6 +186,14 @@ void sbuf_copy_layers(sample_t* dst, int dst_channels, sample_t* src, int src_ch
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool sbuf_realloc(sample_t** dst, int samples, int channels) {
|
||||||
|
sample_t* outbuf_re = realloc(*dst, samples * channels * sizeof(sample_t));
|
||||||
|
if (!outbuf_re) return false;
|
||||||
|
|
||||||
|
*dst = outbuf_re;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void sbuf_silence_s16(sample_t* dst, int samples, int channels, int filled) {
|
void sbuf_silence_s16(sample_t* dst, int samples, int channels, int filled) {
|
||||||
memset(dst + filled * channels, 0, (samples - filled) * channels * sizeof(sample_t));
|
memset(dst + filled * channels, 0, (samples - filled) * channels * sizeof(sample_t));
|
||||||
}
|
}
|
||||||
@ -202,14 +210,6 @@ void sbuf_silence_rest(sbuf_t* sbuf) {
|
|||||||
sbuf_silence_part(sbuf, sbuf->filled, sbuf->samples - sbuf->filled);
|
sbuf_silence_part(sbuf, sbuf->filled, sbuf->samples - sbuf->filled);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool sbuf_realloc(sample_t** dst, int samples, int channels) {
|
|
||||||
sample_t* outbuf_re = realloc(*dst, samples * channels * sizeof(sample_t));
|
|
||||||
if (!outbuf_re) return false;
|
|
||||||
|
|
||||||
*dst = outbuf_re;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void sbuf_fadeout(sbuf_t* sbuf, int start, int to_do, int fade_pos, int fade_duration) {
|
void sbuf_fadeout(sbuf_t* sbuf, int start, int to_do, int fade_pos, int fade_duration) {
|
||||||
//TODO: use interpolated fadedness to improve performance?
|
//TODO: use interpolated fadedness to improve performance?
|
||||||
//TODO: use float fadedness?
|
//TODO: use float fadedness?
|
||||||
|
@ -25,37 +25,31 @@ typedef struct {
|
|||||||
int filled; /* samples in buffer */
|
int filled; /* samples in buffer */
|
||||||
} sbuf_t;
|
} sbuf_t;
|
||||||
|
|
||||||
|
/* it's probably slightly faster to make some function inline'd, but aren't called that often to matter (given big enough total samples) */
|
||||||
|
|
||||||
void sbuf_init_s16(sbuf_t* sbuf, int16_t* buf, int samples, int channels);
|
void sbuf_init_s16(sbuf_t* sbuf, int16_t* buf, int samples, int channels);
|
||||||
|
|
||||||
void sbuf_init_f32(sbuf_t* sbuf, float* buf, int samples, int channels);
|
void sbuf_init_f32(sbuf_t* sbuf, float* buf, int samples, int channels);
|
||||||
|
|
||||||
int sfmt_get_sample_size(sfmt_t fmt);
|
int sfmt_get_sample_size(sfmt_t fmt);
|
||||||
|
|
||||||
//void* sbuf_get_filled_buf(sbuf_t* sbuf);
|
//void* sbuf_get_filled_buf(sbuf_t* sbuf);
|
||||||
|
|
||||||
//void sbuf_clamp(sbuf_t* sbuf, int samples);
|
//void sbuf_clamp(sbuf_t* sbuf, int samples);
|
||||||
|
|
||||||
/* move buf by samples amount to simplify some code (will lose base buf pointer) */
|
/* move buf by samples amount to simplify some code (will lose base buf pointer) */
|
||||||
void sbuf_consume(sbuf_t* sbuf, int count);
|
void sbuf_consume(sbuf_t* sbuf, int count);
|
||||||
|
|
||||||
/* it's probably slightly faster to make those inline'd, but aren't called that often to matter (given big enough total samples) */
|
|
||||||
|
|
||||||
// TODO decide if using float 1.0 style or 32767 style (fuzzy PCM changes when doing that)
|
// TODO decide if using float 1.0 style or 32767 style (fuzzy PCM changes when doing that)
|
||||||
void sbuf_copy_to_f32(float* dst, sbuf_t* sbuf);
|
void sbuf_copy_to_f32(float* dst, sbuf_t* sbuf);
|
||||||
|
|
||||||
void sbuf_copy_from_f32(sbuf_t* sbuf, float* src);
|
void sbuf_copy_from_f32(sbuf_t* sbuf, float* src);
|
||||||
|
|
||||||
void sbuf_copy_samples(sample_t* dst, int dst_channels, sample_t* src, int src_channels, int samples_to_do, int samples_filled);
|
void sbuf_copy_segments(sample_t* dst, int dst_channels, sample_t* src, int src_channels, int samples_to_do, int samples_filled);
|
||||||
|
|
||||||
void sbuf_copy_layers(sample_t* dst, int dst_channels, sample_t* src, int src_channels, int samples_to_do, int samples_filled, int dst_ch_start);
|
void sbuf_copy_layers(sample_t* dst, int dst_channels, sample_t* src, int src_channels, int samples_to_do, int samples_filled, int dst_ch_start);
|
||||||
|
bool sbuf_realloc(sample_t** dst, int samples, int channels);
|
||||||
|
|
||||||
void sbuf_silence_s16(sample_t* dst, int samples, int channels, int filled);
|
void sbuf_silence_s16(sample_t* dst, int samples, int channels, int filled);
|
||||||
void sbuf_silence_rest(sbuf_t* sbuf);
|
void sbuf_silence_rest(sbuf_t* sbuf);
|
||||||
void sbuf_silence_part(sbuf_t* sbuf, int from, int count);
|
void sbuf_silence_part(sbuf_t* sbuf, int from, int count);
|
||||||
|
|
||||||
bool sbuf_realloc(sample_t** dst, int samples, int channels);
|
|
||||||
|
|
||||||
void sbuf_fadeout(sbuf_t* sbuf, int start, int to_do, int fade_pos, int fade_duration);
|
void sbuf_fadeout(sbuf_t* sbuf, int start, int to_do, int fade_pos, int fade_duration);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -77,7 +77,7 @@ void render_vgmstream_segmented(sample_t* outbuf, int32_t sample_count, VGMSTREA
|
|||||||
render_vgmstream(buf, samples_to_do, data->segments[data->current_segment]);
|
render_vgmstream(buf, samples_to_do, data->segments[data->current_segment]);
|
||||||
|
|
||||||
if (use_internal_buffer) {
|
if (use_internal_buffer) {
|
||||||
sbuf_copy_samples(outbuf, data->output_channels, data->buffer, current_channels, samples_to_do, samples_filled);
|
sbuf_copy_segments(outbuf, data->output_channels, data->buffer, current_channels, samples_to_do, samples_filled);
|
||||||
}
|
}
|
||||||
|
|
||||||
samples_filled += samples_to_do;
|
samples_filled += samples_to_do;
|
||||||
|
Loading…
Reference in New Issue
Block a user