On Tue, 5 Sep 2017, at 09:17 AM, Pierre-Louis Bossart wrote: > On 9/3/17 12:59 AM, Arun Raghavan wrote: > > On Tue, 29 Aug 2017, at 04:19 AM, Pierre-Louis Bossart wrote: > >> Add definitions and fixups for channel count > >> > >> Signed-off-by: Pierre-Louis Bossart > >> <pierre-louis.bossart at linux.intel.com> > >> --- > >> src/pulse/format.c | 2 ++ > >> src/pulse/format.h | 8 ++++++++ > >> src/pulsecore/core-format.c | 6 +++++- > >> 3 files changed, 15 insertions(+), 1 deletion(-) > >> > >> diff --git a/src/pulse/format.c b/src/pulse/format.c > >> index 8474978..07b4420 100644 > >> --- a/src/pulse/format.c > >> +++ b/src/pulse/format.c > >> @@ -47,6 +47,8 @@ static const char* const _encoding_str_table[]= { > >> [PA_ENCODING_MPEG_IEC61937] = "mpeg-iec61937", > >> [PA_ENCODING_DTS_IEC61937] = "dts-iec61937", > >> [PA_ENCODING_MPEG2_AAC_IEC61937] = "mpeg2-aac-iec61937", > >> + [PA_ENCODING_TRUEHD_IEC61937] = "truehd-iec61937", > >> + [PA_ENCODING_DTSHD_IEC61937] = "dtshd-iec61937", > >> [PA_ENCODING_ANY] = "any", > >> }; > >> > >> diff --git a/src/pulse/format.h b/src/pulse/format.h > >> index f606b3b..6122abe 100644 > >> --- a/src/pulse/format.h > >> +++ b/src/pulse/format.h > >> @@ -56,6 +56,12 @@ typedef enum pa_encoding { > >> PA_ENCODING_MPEG2_AAC_IEC61937, > >> /**< MPEG-2 AAC data encapsulated in IEC 61937 header/padding. > >> \since 4.0 */ > >> > >> + PA_ENCODING_TRUEHD_IEC61937, > >> + /**< Dolby TrueHd data encapsulated in IEC 61937 header/padding. > >> \since 11.0 */ > >> + > >> + PA_ENCODING_DTSHD_IEC61937, > >> + /**< DTS HD-MasterAudio encapsulated in IEC 61937 header/padding. > >> \since 11.0 */ > >> + > >> PA_ENCODING_MAX, > >> /**< Valid encoding types must be less than this value */ > >> > >> @@ -71,6 +77,8 @@ typedef enum pa_encoding { > >> #define PA_ENCODING_MPEG_IEC61937 PA_ENCODING_MPEG_IEC61937 > >> #define PA_ENCODING_DTS_IEC61937 PA_ENCODING_DTS_IEC61937 > >> #define PA_ENCODING_MPEG2_AAC_IEC61937 PA_ENCODING_MPEG2_AAC_IEC61937 > >> +#define PA_ENCODING_DOLBY_TRUEHD_IEC61937 > >> PA_ENCODING_DOLBY_TRUEHD_IEC61937 > >> +#define PA_ENCODING_DTS_MA_IEC61937 PA_ENCODING_DTS_MA_IEC61937 > >> #define PA_ENCODING_MAX PA_ENCODING_MAX > >> #define PA_ENCODING_INVALID PA_ENCODING_INVALID > >> /** \endcond */ > >> diff --git a/src/pulsecore/core-format.c b/src/pulsecore/core-format.c > >> index 9d3c8d6..c3db267 100644 > >> --- a/src/pulsecore/core-format.c > >> +++ b/src/pulsecore/core-format.c > >> @@ -226,7 +226,11 @@ int pa_format_info_to_sample_spec_fake(const > >> pa_format_info *f, pa_sample_spec * > >> * formats, this function should return a non-zero values for these. > >> */ > >> > >> ss->format = PA_SAMPLE_S16LE; > >> - ss->channels = 2; > >> + if ((f->encoding == PA_ENCODING_TRUEHD_IEC61937) || > >> + (f->encoding == PA_ENCODING_DTSHD_IEC61937)) > >> + ss->channels = 8; > >> + else > >> + ss->channels = 2; > >> > >> if (map) > >> pa_channel_map_init_stereo(map); > >> -- > > > > I don't have access to any hardware that does this (my laptop no longer > > has an S/PDIF out :)), but for EAC3, instead of quadrupling the channel > > count, I we quadruple the sample rate. I'm guessing this won't work for > > HBR because those already might have high sample rates? > > yep. ALSA needs 8ch at 192kHz + AES0=0x6 so enable HBR playback. Okay, then we should be able to at least get changing the channel count working on top of my last patch to replace update_rate() with reconfigure(). Attaching a small WIP patch for that. If it works fine, then we can figure out how to deal with the whole profile vs. channel count thing. Regards, Arun -------------- next part -------------- A non-text attachment was scrubbed... Name: wip-hbr-passthrough.patch Type: text/x-patch Size: 1121 bytes Desc: not available URL: <https://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20170905/9ede7a10/attachment.bin>