Browse Source

Workaround: Format: Implement own S16 converter

to remove GPL depedencies to memops implementation.

Change-Id: I3b203a623eda9e283a4d6e187a858ce8a8b393ca
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
pull/545/head
Timo Wischer Adam Miartus 6 years ago
parent
commit
946d2960cb
2 changed files with 33 additions and 3 deletions
  1. +33
    -2
      common/JackFormatConverter.cpp
  2. +0
    -1
      common/wscript

+ 33
- 2
common/JackFormatConverter.cpp View File

@@ -25,9 +25,9 @@
#include <jack/format_converter.h>
#include "JackCompilerDeps.h"
#include "JackError.h"
#include "memops.h"

#define SAMPLE_32BIT_SCALING 0x7FFFFFFF
#define SAMPLE_16BIT_SCALING 0x7FFF
#define NORMALIZED_FLOAT_MIN -1.0f
#define NORMALIZED_FLOAT_MAX 1.0f

@@ -64,7 +64,7 @@ class IntegerJackPortConverter : public BaseJackPortConverter {
typedef void (*WriteCopyFunction) (char *dst, jack_default_audio_sample_t *src,
unsigned long src_bytes,
unsigned long dst_skip_bytes,
dither_state_t *state);
void*);

private:
int32_t buffer[BUFFER_SIZE_MAX + 8];
@@ -132,6 +132,37 @@ static void sample_move_d32_sS (char *dst, jack_default_audio_sample_t *src,
}
}

static void sample_move_dS_s16 (jack_default_audio_sample_t *dst, char *src,
unsigned long nsamples, unsigned long src_skip)
{
const jack_default_audio_sample_t scaling = 1.0 / SAMPLE_16BIT_SCALING;

while (nsamples--) {
const int16_t src16 = *((int16_t*)src);
*dst = src16 * scaling;
dst++;
src += src_skip;
}
}

static void sample_move_d16_sS (char *dst, jack_default_audio_sample_t *src,
unsigned long nsamples, unsigned long dst_skip,
void*)
{
while (nsamples--) {
int16_t* const dst16 = (int16_t*) dst;
if (*src <= NORMALIZED_FLOAT_MIN) {
*dst16 = -SAMPLE_16BIT_SCALING;
} else if (*src >= NORMALIZED_FLOAT_MAX) {
*dst16 = SAMPLE_16BIT_SCALING;
} else {
*dst16 = lrintf(*src * SAMPLE_16BIT_SCALING);
}
dst += dst_skip;
src++;
}
}

LIB_EXPORT IJackPortConverter* jack_port_create_converter(jack_port_t* port, const std::type_info& dst_type, const bool init_output_silence)
{
if(dst_type == (typeid(jack_default_audio_sample_t))) {


+ 0
- 1
common/wscript View File

@@ -69,7 +69,6 @@ def build(bld):
'JackTools.cpp',
'JackMessageBuffer.cpp',
'JackEngineProfiling.cpp',
'memops.c',
'JackFormatConverter.cpp'
]



Loading…
Cancel
Save