Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mpd
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Иван Мажукин
mpd
Commits
bb6ee71f
Commit
bb6ee71f
authored
Mar 14, 2014
by
Max Kellermann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pcm/PcmFormat: don't use WritableBuffer
The previous commit eliminated the need for that.
parent
0d0642fd
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
20 additions
and
28 deletions
+20
-28
PcmFormat.cxx
src/pcm/PcmFormat.cxx
+20
-28
No files found.
src/pcm/PcmFormat.cxx
View file @
bb6ee71f
...
...
@@ -25,17 +25,9 @@
#include "FloatConvert.hxx"
#include "ShiftConvert.hxx"
#include "util/ConstBuffer.hxx"
#include "util/WritableBuffer.hxx"
#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
* that converts a buffer at a time.
...
...
@@ -88,7 +80,7 @@ struct FloatToInteger
:
PerSampleConvert
<
FloatToIntegerSampleConvert
<
F
,
Traits
>>
{};
template
<
class
C
>
static
Writable
Buffer
<
typename
C
::
DstTraits
::
value_type
>
static
Const
Buffer
<
typename
C
::
DstTraits
::
value_type
>
AllocateConvert
(
PcmBuffer
&
buffer
,
C
convert
,
ConstBuffer
<
typename
C
::
SrcTraits
::
value_type
>
src
)
{
...
...
@@ -98,7 +90,7 @@ AllocateConvert(PcmBuffer &buffer, C convert,
}
template
<
SampleFormat
F
,
class
Traits
=
SampleTraits
<
F
>>
static
Writable
Buffer
<
typename
Traits
::
value_type
>
static
Const
Buffer
<
typename
Traits
::
value_type
>
AllocateFromFloat
(
PcmBuffer
&
buffer
,
ConstBuffer
<
float
>
src
)
{
return
AllocateConvert
(
buffer
,
FloatToInteger
<
F
,
Traits
>
(),
src
);
...
...
@@ -107,27 +99,27 @@ AllocateFromFloat(PcmBuffer &buffer, ConstBuffer<float> src)
static
ConstBuffer
<
int16_t
>
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
>
pcm_allocate_24p32_to_16
(
PcmBuffer
&
buffer
,
PcmDither
&
dither
,
ConstBuffer
<
int32_t
>
src
)
{
return
ToConst
(
AllocateConvert
(
buffer
,
Convert24To16
(
dither
),
src
)
);
return
AllocateConvert
(
buffer
,
Convert24To16
(
dither
),
src
);
}
static
ConstBuffer
<
int16_t
>
pcm_allocate_32_to_16
(
PcmBuffer
&
buffer
,
PcmDither
&
dither
,
ConstBuffer
<
int32_t
>
src
)
{
return
ToConst
(
AllocateConvert
(
buffer
,
Convert32To16
(
dither
),
src
)
);
return
AllocateConvert
(
buffer
,
Convert32To16
(
dither
),
src
);
}
static
ConstBuffer
<
int16_t
>
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
>
...
...
@@ -173,13 +165,13 @@ struct Convert16To24
static
ConstBuffer
<
int32_t
>
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
>
pcm_allocate_16_to_24
(
PcmBuffer
&
buffer
,
ConstBuffer
<
int16_t
>
src
)
{
return
ToConst
(
AllocateConvert
(
buffer
,
Convert16To24
(),
src
)
);
return
AllocateConvert
(
buffer
,
Convert16To24
(),
src
);
}
struct
Convert32To24
...
...
@@ -189,10 +181,10 @@ struct Convert32To24
static
ConstBuffer
<
int32_t
>
pcm_allocate_32_to_24
(
PcmBuffer
&
buffer
,
ConstBuffer
<
int32_t
>
src
)
{
return
ToConst
(
AllocateConvert
(
buffer
,
Convert32To24
(),
src
)
);
return
AllocateConvert
(
buffer
,
Convert32To24
(),
src
);
}
static
Writable
Buffer
<
int32_t
>
static
Const
Buffer
<
int32_t
>
pcm_allocate_float_to_24
(
PcmBuffer
&
buffer
,
ConstBuffer
<
float
>
src
)
{
return
AllocateFromFloat
<
SampleFormat
::
S24_P32
>
(
buffer
,
src
);
...
...
@@ -223,8 +215,8 @@ pcm_convert_to_24(PcmBuffer &buffer,
ConstBuffer
<
int32_t
>::
FromVoid
(
src
));
case
SampleFormat
:
:
FLOAT
:
return
ToConst
(
pcm_allocate_float_to_24
(
buffer
,
ConstBuffer
<
float
>::
FromVoid
(
src
)
));
return
pcm_allocate_float_to_24
(
buffer
,
ConstBuffer
<
float
>::
FromVoid
(
src
));
}
return
nullptr
;
...
...
@@ -245,25 +237,25 @@ struct Convert24To32
static
ConstBuffer
<
int32_t
>
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
>
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
>
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
>
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
>
...
...
@@ -313,25 +305,25 @@ struct Convert32ToFloat
static
ConstBuffer
<
float
>
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
>
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
>
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
>
pcm_allocate_32_to_float
(
PcmBuffer
&
buffer
,
ConstBuffer
<
int32_t
>
src
)
{
return
ToConst
(
AllocateConvert
(
buffer
,
Convert32ToFloat
(),
src
)
);
return
AllocateConvert
(
buffer
,
Convert32ToFloat
(),
src
);
}
ConstBuffer
<
float
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment