Re: [FFmpeg-devel] [PATCH] lavc/mlpdec: report presence of Atmos substreams as a profile
On Thu, Jan 14, 2016 at 2:32 AM, Rodger Combs wrote: > --- > libavcodec/avcodec.h| 2 ++ > libavcodec/codec_desc.c | 1 + > libavcodec/mlp_parser.c | 5 + > libavcodec/mlpdec.c | 2 ++ > libavcodec/profiles.c | 6 ++ > libavcodec/profiles.h | 1 + > 6 files changed, 17 insertions(+) > I don't know if I like inventing a profile for some bitstream presence which the codec itself doesn't consider a profile as such... ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[FFmpeg-devel] [PATCH] lavc/mlpdec: report presence of Atmos substreams as a profile
--- libavcodec/avcodec.h| 2 ++ libavcodec/codec_desc.c | 1 + libavcodec/mlp_parser.c | 5 + libavcodec/mlpdec.c | 2 ++ libavcodec/profiles.c | 6 ++ libavcodec/profiles.h | 1 + 6 files changed, 17 insertions(+) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index f365775..81f1e9a 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -3125,6 +3125,8 @@ typedef struct AVCodecContext { #define FF_PROFILE_HEVC_MAIN_STILL_PICTURE 3 #define FF_PROFILE_HEVC_REXT4 +#define FF_PROFILE_TRUEHD 0 +#define FF_PROFILE_TRUEHD_ATMOS 1 /** * level * - encoding: Set by user. diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c index 5fbe624..cdaf0cf 100644 --- a/libavcodec/codec_desc.c +++ b/libavcodec/codec_desc.c @@ -2411,6 +2411,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/mlp_parser.c b/libavcodec/mlp_parser.c index 23601c8..5edb27f 100644 --- a/libavcodec/mlp_parser.c +++ b/libavcodec/mlp_parser.c @@ -31,6 +31,7 @@ #include "libavutil/internal.h" #include "get_bits.h" #include "parser.h" +#include "profiles.h" #include "mlp_parser.h" #include "mlp.h" @@ -392,6 +393,10 @@ static int mlp_parse(AVCodecParserContext *s, avctx->bit_rate = mh.peak_bitrate; mp->num_substreams = mh.num_substreams; + +if (avctx->codec_id == AV_CODEC_ID_TRUEHD) +avctx->profile = (mh.num_substreams > 3) ? FF_PROFILE_TRUEHD_ATMOS : + FF_PROFILE_TRUEHD; } *poutbuf = buf; diff --git a/libavcodec/mlpdec.c b/libavcodec/mlpdec.c index c93b058..ccb59d2 100644 --- a/libavcodec/mlpdec.c +++ b/libavcodec/mlpdec.c @@ -34,6 +34,7 @@ #include "internal.h" #include "libavutil/crc.h" #include "parser.h" +#include "profiles.h" #include "mlp_parser.h" #include "mlpdsp.h" #include "mlp.h" @@ -1314,5 +1315,6 @@ AVCodec ff_truehd_decoder = { .init = mlp_decode_init, .decode = read_access_unit, .capabilities = AV_CODEC_CAP_DR1, +.profiles = NULL_IF_CONFIG_SMALL(ff_truehd_profiles), }; #endif /* CONFIG_TRUEHD_DECODER */ diff --git a/libavcodec/profiles.c b/libavcodec/profiles.c index 94069fd..ec33248 100644 --- a/libavcodec/profiles.c +++ b/libavcodec/profiles.c @@ -129,4 +129,10 @@ const AVProfile ff_vp9_profiles[] = { { FF_PROFILE_UNKNOWN }, }; +const AVProfile ff_truehd_profiles[] = { +{ FF_PROFILE_TRUEHD, "TrueHD" }, +{ FF_PROFILE_TRUEHD_ATMOS, "Atmos" }, +{ FF_PROFILE_UNKNOWN }, +}; + #endif /* !CONFIG_SMALL */ diff --git a/libavcodec/profiles.h b/libavcodec/profiles.h index 7e1f74d..676a40e 100644 --- a/libavcodec/profiles.h +++ b/libavcodec/profiles.h @@ -31,5 +31,6 @@ extern const AVProfile ff_mpeg2_video_profiles[]; extern const AVProfile ff_mpeg4_video_profiles[]; extern const AVProfile ff_vc1_profiles[]; extern const AVProfile ff_vp9_profiles[]; +extern const AVProfile ff_truehd_profiles[]; #endif -- 2.6.4 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH] lavc/mlpdec: report presence of Atmos substreams as a profile
On Tue, 12 Jan 2016 20:51:46 -0600 Rodger Combs wrote: > --- > libavcodec/avcodec.h| 2 ++ > libavcodec/mlp_parser.c | 5 + > libavcodec/mlpdec.c | 2 ++ > libavcodec/profiles.c | 6 ++ > libavcodec/profiles.h | 1 + > 5 files changed, 16 insertions(+) > > diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h > index f365775..81f1e9a 100644 > --- a/libavcodec/avcodec.h > +++ b/libavcodec/avcodec.h > @@ -3125,6 +3125,8 @@ typedef struct AVCodecContext { > #define FF_PROFILE_HEVC_MAIN_STILL_PICTURE 3 > #define FF_PROFILE_HEVC_REXT4 > > +#define FF_PROFILE_TRUEHD 0 > +#define FF_PROFILE_TRUEHD_ATMOS 1 > /** > * level > * - encoding: Set by user. > diff --git a/libavcodec/mlp_parser.c b/libavcodec/mlp_parser.c > index 23601c8..5edb27f 100644 > --- a/libavcodec/mlp_parser.c > +++ b/libavcodec/mlp_parser.c > @@ -31,6 +31,7 @@ > #include "libavutil/internal.h" > #include "get_bits.h" > #include "parser.h" > +#include "profiles.h" > #include "mlp_parser.h" > #include "mlp.h" > > @@ -392,6 +393,10 @@ static int mlp_parse(AVCodecParserContext *s, > avctx->bit_rate = mh.peak_bitrate; > > mp->num_substreams = mh.num_substreams; > + > +if (avctx->codec_id == AV_CODEC_ID_TRUEHD) > +avctx->profile = (mh.num_substreams > 3) ? > FF_PROFILE_TRUEHD_ATMOS : > + FF_PROFILE_TRUEHD; > } > > *poutbuf = buf; > diff --git a/libavcodec/mlpdec.c b/libavcodec/mlpdec.c > index c93b058..ccb59d2 100644 > --- a/libavcodec/mlpdec.c > +++ b/libavcodec/mlpdec.c > @@ -34,6 +34,7 @@ > #include "internal.h" > #include "libavutil/crc.h" > #include "parser.h" > +#include "profiles.h" > #include "mlp_parser.h" > #include "mlpdsp.h" > #include "mlp.h" > @@ -1314,5 +1315,6 @@ AVCodec ff_truehd_decoder = { > .init = mlp_decode_init, > .decode = read_access_unit, > .capabilities = AV_CODEC_CAP_DR1, > +.profiles = NULL_IF_CONFIG_SMALL(ff_truehd_profiles), > }; > #endif /* CONFIG_TRUEHD_DECODER */ > diff --git a/libavcodec/profiles.c b/libavcodec/profiles.c > index 94069fd..ec33248 100644 > --- a/libavcodec/profiles.c > +++ b/libavcodec/profiles.c > @@ -129,4 +129,10 @@ const AVProfile ff_vp9_profiles[] = { > { FF_PROFILE_UNKNOWN }, > }; > > +const AVProfile ff_truehd_profiles[] = { > +{ FF_PROFILE_TRUEHD, "TrueHD" }, > +{ FF_PROFILE_TRUEHD_ATMOS, "Atmos" }, > +{ FF_PROFILE_UNKNOWN }, > +}; > + > #endif /* !CONFIG_SMALL */ > diff --git a/libavcodec/profiles.h b/libavcodec/profiles.h > index 7e1f74d..676a40e 100644 > --- a/libavcodec/profiles.h > +++ b/libavcodec/profiles.h > @@ -31,5 +31,6 @@ extern const AVProfile ff_mpeg2_video_profiles[]; > extern const AVProfile ff_mpeg4_video_profiles[]; > extern const AVProfile ff_vc1_profiles[]; > extern const AVProfile ff_vp9_profiles[]; > +extern const AVProfile ff_truehd_profiles[]; > > #endif No idea about this patch, but it seems like new profiles should be added to libavcodec/codec_desc.c as well. ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[FFmpeg-devel] [PATCH] lavc/mlpdec: report presence of Atmos substreams as a profile
--- libavcodec/avcodec.h| 2 ++ libavcodec/mlp_parser.c | 5 + libavcodec/mlpdec.c | 2 ++ libavcodec/profiles.c | 6 ++ libavcodec/profiles.h | 1 + 5 files changed, 16 insertions(+) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index f365775..81f1e9a 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -3125,6 +3125,8 @@ typedef struct AVCodecContext { #define FF_PROFILE_HEVC_MAIN_STILL_PICTURE 3 #define FF_PROFILE_HEVC_REXT4 +#define FF_PROFILE_TRUEHD 0 +#define FF_PROFILE_TRUEHD_ATMOS 1 /** * level * - encoding: Set by user. diff --git a/libavcodec/mlp_parser.c b/libavcodec/mlp_parser.c index 23601c8..5edb27f 100644 --- a/libavcodec/mlp_parser.c +++ b/libavcodec/mlp_parser.c @@ -31,6 +31,7 @@ #include "libavutil/internal.h" #include "get_bits.h" #include "parser.h" +#include "profiles.h" #include "mlp_parser.h" #include "mlp.h" @@ -392,6 +393,10 @@ static int mlp_parse(AVCodecParserContext *s, avctx->bit_rate = mh.peak_bitrate; mp->num_substreams = mh.num_substreams; + +if (avctx->codec_id == AV_CODEC_ID_TRUEHD) +avctx->profile = (mh.num_substreams > 3) ? FF_PROFILE_TRUEHD_ATMOS : + FF_PROFILE_TRUEHD; } *poutbuf = buf; diff --git a/libavcodec/mlpdec.c b/libavcodec/mlpdec.c index c93b058..ccb59d2 100644 --- a/libavcodec/mlpdec.c +++ b/libavcodec/mlpdec.c @@ -34,6 +34,7 @@ #include "internal.h" #include "libavutil/crc.h" #include "parser.h" +#include "profiles.h" #include "mlp_parser.h" #include "mlpdsp.h" #include "mlp.h" @@ -1314,5 +1315,6 @@ AVCodec ff_truehd_decoder = { .init = mlp_decode_init, .decode = read_access_unit, .capabilities = AV_CODEC_CAP_DR1, +.profiles = NULL_IF_CONFIG_SMALL(ff_truehd_profiles), }; #endif /* CONFIG_TRUEHD_DECODER */ diff --git a/libavcodec/profiles.c b/libavcodec/profiles.c index 94069fd..ec33248 100644 --- a/libavcodec/profiles.c +++ b/libavcodec/profiles.c @@ -129,4 +129,10 @@ const AVProfile ff_vp9_profiles[] = { { FF_PROFILE_UNKNOWN }, }; +const AVProfile ff_truehd_profiles[] = { +{ FF_PROFILE_TRUEHD, "TrueHD" }, +{ FF_PROFILE_TRUEHD_ATMOS, "Atmos" }, +{ FF_PROFILE_UNKNOWN }, +}; + #endif /* !CONFIG_SMALL */ diff --git a/libavcodec/profiles.h b/libavcodec/profiles.h index 7e1f74d..676a40e 100644 --- a/libavcodec/profiles.h +++ b/libavcodec/profiles.h @@ -31,5 +31,6 @@ extern const AVProfile ff_mpeg2_video_profiles[]; extern const AVProfile ff_mpeg4_video_profiles[]; extern const AVProfile ff_vc1_profiles[]; extern const AVProfile ff_vp9_profiles[]; +extern const AVProfile ff_truehd_profiles[]; #endif -- 2.6.4 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel