mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-31 22:25:33 -04:00
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>
This commit is contained in:
parent
47ed9ae1f4
commit
cdeac17801
3 changed files with 15 additions and 1 deletions
|
|
@ -47,6 +47,8 @@ static const char* const _encoding_str_table[]= {
|
||||||
[PA_ENCODING_MPEG_IEC61937] = "mpeg-iec61937",
|
[PA_ENCODING_MPEG_IEC61937] = "mpeg-iec61937",
|
||||||
[PA_ENCODING_DTS_IEC61937] = "dts-iec61937",
|
[PA_ENCODING_DTS_IEC61937] = "dts-iec61937",
|
||||||
[PA_ENCODING_MPEG2_AAC_IEC61937] = "mpeg2-aac-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",
|
[PA_ENCODING_ANY] = "any",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,12 @@ typedef enum pa_encoding {
|
||||||
PA_ENCODING_MPEG2_AAC_IEC61937,
|
PA_ENCODING_MPEG2_AAC_IEC61937,
|
||||||
/**< MPEG-2 AAC data encapsulated in IEC 61937 header/padding. \since 4.0 */
|
/**< 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,
|
PA_ENCODING_MAX,
|
||||||
/**< Valid encoding types must be less than this value */
|
/**< 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_MPEG_IEC61937 PA_ENCODING_MPEG_IEC61937
|
||||||
#define PA_ENCODING_DTS_IEC61937 PA_ENCODING_DTS_IEC61937
|
#define PA_ENCODING_DTS_IEC61937 PA_ENCODING_DTS_IEC61937
|
||||||
#define PA_ENCODING_MPEG2_AAC_IEC61937 PA_ENCODING_MPEG2_AAC_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_MAX PA_ENCODING_MAX
|
||||||
#define PA_ENCODING_INVALID PA_ENCODING_INVALID
|
#define PA_ENCODING_INVALID PA_ENCODING_INVALID
|
||||||
/** \endcond */
|
/** \endcond */
|
||||||
|
|
|
||||||
|
|
@ -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. */
|
* formats, this function should return a non-zero values for these. */
|
||||||
|
|
||||||
ss->format = PA_SAMPLE_S16LE;
|
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)
|
if (map)
|
||||||
pa_channel_map_init_stereo(map);
|
pa_channel_map_init_stereo(map);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue