avcodec/mlpenc: add support for 4.0/4.1 ch layout

This commit is contained in:
Paul B Mahol 2023-10-25 12:46:24 +02:00
parent 210e844def
commit 567af48fba
1 changed files with 6 additions and 2 deletions

View File

@ -178,7 +178,7 @@ typedef struct MLPEncodeContext {
uint8_t noise_type;
uint8_t channel_arrangement; ///< channel arrangement for MLP streams
uint8_t channel_arrangement8; ///< 8 channel arrangement for THD streams
uint16_t channel_arrangement8; ///< 8 channel arrangement for THD streams
uint8_t multichannel_type6ch; ///< channel modifier for TrueHD stream 0
uint8_t multichannel_type8ch; ///< channel modifier for TrueHD stream 0
@ -600,6 +600,8 @@ static av_cold int mlp_encode_init(AVCodecContext *avctx)
case AV_CH_LAYOUT_2POINT1:
case AV_CH_LAYOUT_SURROUND:
case AV_CH_LAYOUT_3POINT1:
case AV_CH_LAYOUT_4POINT0:
case AV_CH_LAYOUT_4POINT1:
case AV_CH_LAYOUT_5POINT0:
case AV_CH_LAYOUT_5POINT1:
ctx->ch2_presentation_mod= 0;
@ -2325,13 +2327,15 @@ const FFCodec ff_truehd_encoder = {
.p.priv_class = &mlp_class,
.p.sample_fmts = (const enum AVSampleFormat[]) {AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_NONE},
.p.supported_samplerates = (const int[]) {44100, 48000, 88200, 96000, 176400, 192000, 0},
CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO, AV_CH_LAYOUT_2POINT1, AV_CH_LAYOUT_SURROUND, AV_CH_LAYOUT_3POINT1, AV_CH_LAYOUT_5POINT0, AV_CH_LAYOUT_5POINT1)
CODEC_OLD_CHANNEL_LAYOUTS(AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO, AV_CH_LAYOUT_2POINT1, AV_CH_LAYOUT_SURROUND, AV_CH_LAYOUT_3POINT1, AV_CH_LAYOUT_4POINT0, AV_CH_LAYOUT_4POINT1, AV_CH_LAYOUT_5POINT0, AV_CH_LAYOUT_5POINT1)
.p.ch_layouts = (const AVChannelLayout[]) {
AV_CHANNEL_LAYOUT_MONO,
AV_CHANNEL_LAYOUT_STEREO,
AV_CHANNEL_LAYOUT_2POINT1,
AV_CHANNEL_LAYOUT_SURROUND,
AV_CHANNEL_LAYOUT_3POINT1,
AV_CHANNEL_LAYOUT_4POINT0,
AV_CHANNEL_LAYOUT_4POINT1,
AV_CHANNEL_LAYOUT_5POINT0,
AV_CHANNEL_LAYOUT_5POINT1,
{ 0 }