Commit bb6ee71f authored by Max Kellermann's avatar Max Kellermann

pcm/PcmFormat: don't use WritableBuffer

The previous commit eliminated the need for that.
parent 0d0642fd
...@@ -25,17 +25,9 @@ ...@@ -25,17 +25,9 @@
#include "FloatConvert.hxx" #include "FloatConvert.hxx"
#include "ShiftConvert.hxx" #include "ShiftConvert.hxx"
#include "util/ConstBuffer.hxx" #include "util/ConstBuffer.hxx"
#include "util/WritableBuffer.hxx"
#include "PcmDither.cxx" // including the .cxx file to get inlined templates #include "PcmDither.cxx" // including the .cxx file to get inlined templates
template<typename T>
static inline ConstBuffer<T>
ToConst(WritableBuffer<T> b)
{
return { b.data, b.size };
}
/** /**
* Wrapper for a class that converts one sample at a time into one * Wrapper for a class that converts one sample at a time into one
* that converts a buffer at a time. * that converts a buffer at a time.
...@@ -88,7 +80,7 @@ struct FloatToInteger ...@@ -88,7 +80,7 @@ struct FloatToInteger
: PerSampleConvert<FloatToIntegerSampleConvert<F, Traits>> {}; : PerSampleConvert<FloatToIntegerSampleConvert<F, Traits>> {};
template<class C> template<class C>
static WritableBuffer<typename C::DstTraits::value_type> static ConstBuffer<typename C::DstTraits::value_type>
AllocateConvert(PcmBuffer &buffer, C convert, AllocateConvert(PcmBuffer &buffer, C convert,
ConstBuffer<typename C::SrcTraits::value_type> src) ConstBuffer<typename C::SrcTraits::value_type> src)
{ {
...@@ -98,7 +90,7 @@ AllocateConvert(PcmBuffer &buffer, C convert, ...@@ -98,7 +90,7 @@ AllocateConvert(PcmBuffer &buffer, C convert,
} }
template<SampleFormat F, class Traits=SampleTraits<F>> template<SampleFormat F, class Traits=SampleTraits<F>>
static WritableBuffer<typename Traits::value_type> static ConstBuffer<typename Traits::value_type>
AllocateFromFloat(PcmBuffer &buffer, ConstBuffer<float> src) AllocateFromFloat(PcmBuffer &buffer, ConstBuffer<float> src)
{ {
return AllocateConvert(buffer, FloatToInteger<F, Traits>(), src); return AllocateConvert(buffer, FloatToInteger<F, Traits>(), src);
...@@ -107,27 +99,27 @@ AllocateFromFloat(PcmBuffer &buffer, ConstBuffer<float> src) ...@@ -107,27 +99,27 @@ AllocateFromFloat(PcmBuffer &buffer, ConstBuffer<float> src)
static ConstBuffer<int16_t> static ConstBuffer<int16_t>
pcm_allocate_8_to_16(PcmBuffer &buffer, ConstBuffer<int8_t> src) pcm_allocate_8_to_16(PcmBuffer &buffer, ConstBuffer<int8_t> src)
{ {
return ToConst(AllocateConvert(buffer, Convert8To16(), src)); return AllocateConvert(buffer, Convert8To16(), src);
} }
static ConstBuffer<int16_t> static ConstBuffer<int16_t>
pcm_allocate_24p32_to_16(PcmBuffer &buffer, PcmDither &dither, pcm_allocate_24p32_to_16(PcmBuffer &buffer, PcmDither &dither,
ConstBuffer<int32_t> src) ConstBuffer<int32_t> src)
{ {
return ToConst(AllocateConvert(buffer, Convert24To16(dither), src)); return AllocateConvert(buffer, Convert24To16(dither), src);
} }
static ConstBuffer<int16_t> static ConstBuffer<int16_t>
pcm_allocate_32_to_16(PcmBuffer &buffer, PcmDither &dither, pcm_allocate_32_to_16(PcmBuffer &buffer, PcmDither &dither,
ConstBuffer<int32_t> src) ConstBuffer<int32_t> src)
{ {
return ToConst(AllocateConvert(buffer, Convert32To16(dither), src)); return AllocateConvert(buffer, Convert32To16(dither), src);
} }
static ConstBuffer<int16_t> static ConstBuffer<int16_t>
pcm_allocate_float_to_16(PcmBuffer &buffer, ConstBuffer<float> src) pcm_allocate_float_to_16(PcmBuffer &buffer, ConstBuffer<float> src)
{ {
return ToConst(AllocateFromFloat<SampleFormat::S16>(buffer, src)); return AllocateFromFloat<SampleFormat::S16>(buffer, src);
} }
ConstBuffer<int16_t> ConstBuffer<int16_t>
...@@ -173,13 +165,13 @@ struct Convert16To24 ...@@ -173,13 +165,13 @@ struct Convert16To24
static ConstBuffer<int32_t> static ConstBuffer<int32_t>
pcm_allocate_8_to_24(PcmBuffer &buffer, ConstBuffer<int8_t> src) pcm_allocate_8_to_24(PcmBuffer &buffer, ConstBuffer<int8_t> src)
{ {
return ToConst(AllocateConvert(buffer, Convert8To24(), src)); return AllocateConvert(buffer, Convert8To24(), src);
} }
static ConstBuffer<int32_t> static ConstBuffer<int32_t>
pcm_allocate_16_to_24(PcmBuffer &buffer, ConstBuffer<int16_t> src) pcm_allocate_16_to_24(PcmBuffer &buffer, ConstBuffer<int16_t> src)
{ {
return ToConst(AllocateConvert(buffer, Convert16To24(), src)); return AllocateConvert(buffer, Convert16To24(), src);
} }
struct Convert32To24 struct Convert32To24
...@@ -189,10 +181,10 @@ struct Convert32To24 ...@@ -189,10 +181,10 @@ struct Convert32To24
static ConstBuffer<int32_t> static ConstBuffer<int32_t>
pcm_allocate_32_to_24(PcmBuffer &buffer, ConstBuffer<int32_t> src) pcm_allocate_32_to_24(PcmBuffer &buffer, ConstBuffer<int32_t> src)
{ {
return ToConst(AllocateConvert(buffer, Convert32To24(), src)); return AllocateConvert(buffer, Convert32To24(), src);
} }
static WritableBuffer<int32_t> static ConstBuffer<int32_t>
pcm_allocate_float_to_24(PcmBuffer &buffer, ConstBuffer<float> src) pcm_allocate_float_to_24(PcmBuffer &buffer, ConstBuffer<float> src)
{ {
return AllocateFromFloat<SampleFormat::S24_P32>(buffer, src); return AllocateFromFloat<SampleFormat::S24_P32>(buffer, src);
...@@ -223,8 +215,8 @@ pcm_convert_to_24(PcmBuffer &buffer, ...@@ -223,8 +215,8 @@ pcm_convert_to_24(PcmBuffer &buffer,
ConstBuffer<int32_t>::FromVoid(src)); ConstBuffer<int32_t>::FromVoid(src));
case SampleFormat::FLOAT: case SampleFormat::FLOAT:
return ToConst(pcm_allocate_float_to_24(buffer, return pcm_allocate_float_to_24(buffer,
ConstBuffer<float>::FromVoid(src))); ConstBuffer<float>::FromVoid(src));
} }
return nullptr; return nullptr;
...@@ -245,25 +237,25 @@ struct Convert24To32 ...@@ -245,25 +237,25 @@ struct Convert24To32
static ConstBuffer<int32_t> static ConstBuffer<int32_t>
pcm_allocate_8_to_32(PcmBuffer &buffer, ConstBuffer<int8_t> src) pcm_allocate_8_to_32(PcmBuffer &buffer, ConstBuffer<int8_t> src)
{ {
return ToConst(AllocateConvert(buffer, Convert8To32(), src)); return AllocateConvert(buffer, Convert8To32(), src);
} }
static ConstBuffer<int32_t> static ConstBuffer<int32_t>
pcm_allocate_16_to_32(PcmBuffer &buffer, ConstBuffer<int16_t> src) pcm_allocate_16_to_32(PcmBuffer &buffer, ConstBuffer<int16_t> src)
{ {
return ToConst(AllocateConvert(buffer, Convert16To32(), src)); return AllocateConvert(buffer, Convert16To32(), src);
} }
static ConstBuffer<int32_t> static ConstBuffer<int32_t>
pcm_allocate_24p32_to_32(PcmBuffer &buffer, ConstBuffer<int32_t> src) pcm_allocate_24p32_to_32(PcmBuffer &buffer, ConstBuffer<int32_t> src)
{ {
return ToConst(AllocateConvert(buffer, Convert24To32(), src)); return AllocateConvert(buffer, Convert24To32(), src);
} }
static ConstBuffer<int32_t> static ConstBuffer<int32_t>
pcm_allocate_float_to_32(PcmBuffer &buffer, ConstBuffer<float> src) pcm_allocate_float_to_32(PcmBuffer &buffer, ConstBuffer<float> src)
{ {
return ToConst(AllocateFromFloat<SampleFormat::S32>(buffer, src)); return AllocateFromFloat<SampleFormat::S32>(buffer, src);
} }
ConstBuffer<int32_t> ConstBuffer<int32_t>
...@@ -313,25 +305,25 @@ struct Convert32ToFloat ...@@ -313,25 +305,25 @@ struct Convert32ToFloat
static ConstBuffer<float> static ConstBuffer<float>
pcm_allocate_8_to_float(PcmBuffer &buffer, ConstBuffer<int8_t> src) pcm_allocate_8_to_float(PcmBuffer &buffer, ConstBuffer<int8_t> src)
{ {
return ToConst(AllocateConvert(buffer, Convert8ToFloat(), src)); return AllocateConvert(buffer, Convert8ToFloat(), src);
} }
static ConstBuffer<float> static ConstBuffer<float>
pcm_allocate_16_to_float(PcmBuffer &buffer, ConstBuffer<int16_t> src) pcm_allocate_16_to_float(PcmBuffer &buffer, ConstBuffer<int16_t> src)
{ {
return ToConst(AllocateConvert(buffer, Convert16ToFloat(), src)); return AllocateConvert(buffer, Convert16ToFloat(), src);
} }
static ConstBuffer<float> static ConstBuffer<float>
pcm_allocate_24p32_to_float(PcmBuffer &buffer, ConstBuffer<int32_t> src) pcm_allocate_24p32_to_float(PcmBuffer &buffer, ConstBuffer<int32_t> src)
{ {
return ToConst(AllocateConvert(buffer, Convert24ToFloat(), src)); return AllocateConvert(buffer, Convert24ToFloat(), src);
} }
static ConstBuffer<float> static ConstBuffer<float>
pcm_allocate_32_to_float(PcmBuffer &buffer, ConstBuffer<int32_t> src) pcm_allocate_32_to_float(PcmBuffer &buffer, ConstBuffer<int32_t> src)
{ {
return ToConst(AllocateConvert(buffer, Convert32ToFloat(), src)); return AllocateConvert(buffer, Convert32ToFloat(), src);
} }
ConstBuffer<float> ConstBuffer<float>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment