On Tue, 5 Sep 2017, at 07:08 PM, Pierre-Louis Bossart wrote: > On 9/4/17 11:10 PM, Arun Raghavan wrote: > > 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. > > Sorry, I can't find your previous patch to replace 'update_rate' with > 'reconfigure'. Was it shared? > Better yet, do you have a branch I could directly look at? I am drowning > in emails. Here you go -- https://cgit.freedesktop.org/~arun/pulseaudio/log/?h=passthrough-hbr You'll still need your patches adding truehd/dts-hd support on top of this. -- Arun