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
43774455
Commit
43774455
authored
Mar 21, 2012
by
Max Kellermann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
output/oss: use pcm_export to pack 24 bit samples
parent
5b61e077
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
10 deletions
+15
-10
oss_output_plugin.c
src/output/oss_output_plugin.c
+15
-10
No files found.
src/output/oss_output_plugin.c
View file @
43774455
...
@@ -434,6 +434,7 @@ sample_format_to_oss(enum sample_format format)
...
@@ -434,6 +434,7 @@ sample_format_to_oss(enum sample_format format)
case
SAMPLE_FORMAT_FLOAT
:
case
SAMPLE_FORMAT_FLOAT
:
case
SAMPLE_FORMAT_DSD
:
case
SAMPLE_FORMAT_DSD
:
case
SAMPLE_FORMAT_DSD_OVER_USB
:
case
SAMPLE_FORMAT_DSD_OVER_USB
:
case
SAMPLE_FORMAT_S24
:
return
AFMT_QUERY
;
return
AFMT_QUERY
;
case
SAMPLE_FORMAT_S8
:
case
SAMPLE_FORMAT_S8
:
...
@@ -442,13 +443,6 @@ sample_format_to_oss(enum sample_format format)
...
@@ -442,13 +443,6 @@ sample_format_to_oss(enum sample_format format)
case
SAMPLE_FORMAT_S16
:
case
SAMPLE_FORMAT_S16
:
return
AFMT_S16_NE
;
return
AFMT_S16_NE
;
case
SAMPLE_FORMAT_S24
:
#ifdef AFMT_S24_PACKED
return
AFMT_S24_PACKED
;
#else
return
AFMT_QUERY
;
#endif
case
SAMPLE_FORMAT_S24_P32
:
case
SAMPLE_FORMAT_S24_P32
:
#ifdef AFMT_S24_NE
#ifdef AFMT_S24_NE
return
AFMT_S24_NE
;
return
AFMT_S24_NE
;
...
@@ -483,7 +477,7 @@ sample_format_from_oss(int format)
...
@@ -483,7 +477,7 @@ sample_format_from_oss(int format)
#ifdef AFMT_S24_PACKED
#ifdef AFMT_S24_PACKED
case
AFMT_S24_PACKED
:
case
AFMT_S24_PACKED
:
return
SAMPLE_FORMAT_S24
;
return
SAMPLE_FORMAT_S24
_P32
;
#endif
#endif
#ifdef AFMT_S24_NE
#ifdef AFMT_S24_NE
...
@@ -524,6 +518,18 @@ oss_probe_sample_format(int fd, enum sample_format sample_format,
...
@@ -524,6 +518,18 @@ oss_probe_sample_format(int fd, enum sample_format sample_format,
oss_try_ioctl_r
(
fd
,
SNDCTL_DSP_SAMPLESIZE
,
oss_try_ioctl_r
(
fd
,
SNDCTL_DSP_SAMPLESIZE
,
&
oss_format
,
&
oss_format
,
"Failed to set sample format"
,
error_r
);
"Failed to set sample format"
,
error_r
);
#ifdef AFMT_S24_PACKED
if
(
result
==
UNSUPPORTED
&&
sample_format
==
SAMPLE_FORMAT_S24_P32
)
{
/* if the driver doesn't support padded 24 bit, try
packed 24 bit */
oss_format
=
AFMT_S24_PACKED
;
result
=
oss_try_ioctl_r
(
fd
,
SNDCTL_DSP_SAMPLESIZE
,
&
oss_format
,
"Failed to set sample format"
,
error_r
);
}
#endif
if
(
result
!=
SUCCESS
)
if
(
result
!=
SUCCESS
)
return
result
;
return
result
;
...
@@ -536,7 +542,7 @@ oss_probe_sample_format(int fd, enum sample_format sample_format,
...
@@ -536,7 +542,7 @@ oss_probe_sample_format(int fd, enum sample_format sample_format,
#ifdef AFMT_S24_PACKED
#ifdef AFMT_S24_PACKED
pcm_export_open
(
export
,
sample_format
,
pcm_export_open
(
export
,
sample_format
,
false
,
oss_format
==
AFMT_S24_PACKED
,
oss_format
==
AFMT_S24_PACKED
&&
oss_format
==
AFMT_S24_PACKED
&&
G_BYTE_ORDER
!=
G_LITTLE_ENDIAN
);
G_BYTE_ORDER
!=
G_LITTLE_ENDIAN
);
#endif
#endif
...
@@ -585,7 +591,6 @@ oss_setup_sample_format(int fd, struct audio_format *audio_format,
...
@@ -585,7 +591,6 @@ oss_setup_sample_format(int fd, struct audio_format *audio_format,
static
const
enum
sample_format
sample_formats
[]
=
{
static
const
enum
sample_format
sample_formats
[]
=
{
SAMPLE_FORMAT_S24_P32
,
SAMPLE_FORMAT_S24_P32
,
SAMPLE_FORMAT_S32
,
SAMPLE_FORMAT_S32
,
SAMPLE_FORMAT_S24
,
SAMPLE_FORMAT_S16
,
SAMPLE_FORMAT_S16
,
SAMPLE_FORMAT_S8
,
SAMPLE_FORMAT_S8
,
SAMPLE_FORMAT_UNDEFINED
/* sentinel */
SAMPLE_FORMAT_UNDEFINED
/* sentinel */
...
...
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