mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-04 13:29:59 -05:00
core-format: fix TrueHD and DTS-HD channel maps
Since these formats use 8 channels, the channel map needs to be configured to 8 channels as well.
This commit is contained in:
parent
878ef44079
commit
78b6c4fe92
1 changed files with 15 additions and 7 deletions
|
|
@ -227,13 +227,21 @@ int pa_format_info_to_sample_spec_fake(const pa_format_info *f, pa_sample_spec *
|
||||||
|
|
||||||
ss->format = PA_SAMPLE_S16LE;
|
ss->format = PA_SAMPLE_S16LE;
|
||||||
if ((f->encoding == PA_ENCODING_TRUEHD_IEC61937) ||
|
if ((f->encoding == PA_ENCODING_TRUEHD_IEC61937) ||
|
||||||
(f->encoding == PA_ENCODING_DTSHD_IEC61937))
|
(f->encoding == PA_ENCODING_DTSHD_IEC61937)) {
|
||||||
ss->channels = 8;
|
ss->channels = 8;
|
||||||
else
|
if (map) {
|
||||||
ss->channels = 2;
|
/* We use the ALSA mapping, because most likely we will be using an
|
||||||
|
* ALSA sink. This doesn't really matter anyway, though, because
|
||||||
if (map)
|
* the channel map doesn't affect anything with passthrough
|
||||||
pa_channel_map_init_stereo(map);
|
* streams. The channel map just needs to be consistent with the
|
||||||
|
* sample spec's channel count. */
|
||||||
|
pa_channel_map_init_auto(map, 8, PA_CHANNEL_MAP_ALSA);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ss->channels = 2;
|
||||||
|
if (map)
|
||||||
|
pa_channel_map_init_stereo(map);
|
||||||
|
}
|
||||||
|
|
||||||
pa_return_val_if_fail(pa_format_info_get_prop_int(f, PA_PROP_FORMAT_RATE, &rate) == 0, -PA_ERR_INVALID);
|
pa_return_val_if_fail(pa_format_info_get_prop_int(f, PA_PROP_FORMAT_RATE, &rate) == 0, -PA_ERR_INVALID);
|
||||||
ss->rate = (uint32_t) rate;
|
ss->rate = (uint32_t) rate;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue