On Sat, Feb 18, 2023 at 2:15 AM Marth64 <mart...@proxyid.net> wrote: > > Signed-off-by: Marth64 <mart...@proxyid.net> > --- > libavcodec/avcodec.h | 2 ++ > libavcodec/codec_desc.c | 1 + > libavcodec/mlpdec.c | 11 +++++++++++ > libavcodec/profiles.c | 5 +++++ > libavcodec/profiles.h | 1 + > 5 files changed, 20 insertions(+) > > diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h > index 0e85dd50a4..3feab75741 100644 > --- a/libavcodec/avcodec.h > +++ b/libavcodec/avcodec.h > @@ -1593,6 +1593,8 @@ typedef struct AVCodecContext { > > #define FF_PROFILE_EAC3_DDP_ATMOS 30 > > +#define FF_PROFILE_TRUEHD_ATMOS 30 > + > #define FF_PROFILE_MPEG2_422 0 > #define FF_PROFILE_MPEG2_HIGH 1 > #define FF_PROFILE_MPEG2_SS 2 > diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c > index 4098d4f5a5..e80ac07700 100644 > --- a/libavcodec/codec_desc.c > +++ b/libavcodec/codec_desc.c > @@ -2960,6 +2960,7 @@ static const AVCodecDescriptor codec_descriptors[] = { > .name = "truehd", > .long_name = NULL_IF_CONFIG_SMALL("TrueHD"), > .props = AV_CODEC_PROP_LOSSLESS, > + .profiles = NULL_IF_CONFIG_SMALL(ff_truehd_profiles), > }, > { > .id = AV_CODEC_ID_MP4ALS, > diff --git a/libavcodec/mlpdec.c b/libavcodec/mlpdec.c > index 0ee1f0982c..85d6207b9c 100644 > --- a/libavcodec/mlpdec.c > +++ b/libavcodec/mlpdec.c > @@ -42,6 +42,7 @@ > #include "mlpdsp.h" > #include "mlp.h" > #include "config.h" > +#include "profiles.h" > > /** number of bits used for VLC lookup - longest Huffman code is 9 */ > #if ARCH_ARM > @@ -392,6 +393,15 @@ static int read_major_sync(MLPDecodeContext *m, > GetBitContext *gb) > m->num_substreams = mh.num_substreams; > m->substream_info = mh.substream_info; > > + /* If there is a 4th substream and the MSB of substream_info is set, > + * there is a 16-channel spatial presentation (Atmos in TrueHD). > + */ > + if (m->avctx->codec_id == AV_CODEC_ID_TRUEHD > + && m->num_substreams == 4 > + && m->substream_info >> 7 == 1) { > + m->avctx->profile = FF_PROFILE_TRUEHD_ATMOS; > + } > +
Nit: maybe put the if into two lines instead of three? The two substream checks look like they should fit in one line quite well. But this is just a style question, so feel free to ignore. Otherwise LGTM _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".