diff options
author | Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> | 2017-08-15 12:24:12 -0500 |
---|---|---|
committer | Arun Raghavan <arun@arunraghavan.net> | 2018-05-04 22:40:19 +0530 |
commit | ea05b348aefe0ff6a8f28011150dcddb1c026863 (patch) | |
tree | a1f67bf7e1d6796427915bef50455865e96d0b06 | |
parent | f1f7196a5754596ad2eccb51044a0b7f70707cb9 (diff) | |
download | pulseaudio-ea05b348aefe0ff6a8f28011150dcddb1c026863.tar.gz |
format: Add support for Dolby TrueHD and DTS-HD HBR passthrough
Add definitions and fixups for channel count
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
-rw-r--r-- | src/pulse/format.c | 2 | ||||
-rw-r--r-- | src/pulse/format.h | 8 | ||||
-rw-r--r-- | src/pulsecore/core-format.c | 6 |
3 files changed, 15 insertions, 1 deletions
diff --git a/src/pulse/format.c b/src/pulse/format.c index 8474978d5..07b4420e7 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 2143bb514..584032fb6 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 13.0 */ + + PA_ENCODING_DTSHD_IEC61937, + /**< DTS-HD Master Audio encapsulated in IEC 61937 header/padding. \since 13.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_TRUEHD_IEC61937 PA_ENCODING_TRUEHD_IEC61937 +#define PA_ENCODING_DTSHD_IEC61937 PA_ENCODING_DTSHD_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 9d3c8d601..c3db2678a 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); |