Message ID | 1587530154-27795-6-git-send-email-mypopydev@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | Support Dolby Vision | expand |
Context | Check | Description |
---|---|---|
andriy/default | pending | |
andriy/make | success | Make finished |
andriy/make_fate | success | Make fate finished |
On Wed, Apr 22, 2020 at 12:36 PM Jun Zhao <mypopydev@gmail.com> wrote: > > From: Jun Zhao <barryjzhao@tencent.com> > > dump DOVI side data. > > Signed-off-by: Jun Zhao <barryjzhao@tencent.com> > --- > libavformat/dump.c | 23 +++++++++++++++++++++++ > 1 file changed, 23 insertions(+) > > diff --git a/libavformat/dump.c b/libavformat/dump.c > index 220f404..9578b88 100644 > --- a/libavformat/dump.c > +++ b/libavformat/dump.c > @@ -27,6 +27,7 @@ > #include "libavutil/intreadwrite.h" > #include "libavutil/log.h" > #include "libavutil/mastering_display_metadata.h" > +#include "libavutil/dovi_meta.h" > #include "libavutil/mathematics.h" > #include "libavutil/opt.h" > #include "libavutil/avstring.h" > @@ -387,6 +388,24 @@ static void dump_spherical(void *ctx, AVCodecParameters *par, AVPacketSideData * > } > } > > +static void dump_dovi_conf(void *ctx, AVPacketSideData* sd) > +{ > + AVDOVIDecoderConfigurationRecord *dovi = (AVDOVIDecoderConfigurationRecord *)sd->data; > + if (sd->size < sizeof(*dovi)) { Need to remove sizeof(*dovi) part, fixed in local > + av_log(ctx, AV_LOG_ERROR, "invalid data"); > + return; > + } > + > + av_log(ctx, AV_LOG_INFO, "version: %d.%d, profile: %d, level: %d, " > + "rpu flag: %d, el flag: %d, bl flag: %d, compatibility id: %d", > + dovi->dv_version_major, dovi->dv_version_minor, > + dovi->dv_profile, dovi->dv_level, > + dovi->rpu_present_flag, > + dovi->el_present_flag, > + dovi->bl_present_flag, > + dovi->dv_bl_signal_compatibility_id); > +} > + > static void dump_sidedata(void *ctx, AVStream *st, const char *indent) > { > int i; > @@ -449,6 +468,10 @@ static void dump_sidedata(void *ctx, AVStream *st, const char *indent) > case AV_PKT_DATA_ICC_PROFILE: > av_log(ctx, AV_LOG_INFO, "ICC Profile"); > break; > + case AV_PKT_DATA_DOVI_CONF: > + av_log(ctx, AV_LOG_INFO, "DOVI configuration record: "); > + dump_dovi_conf(ctx, &sd); > + break; > default: > av_log(ctx, AV_LOG_INFO, > "unknown side data type %d (%d bytes)", sd.type, sd.size); > -- > 2.7.4 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
diff --git a/libavformat/dump.c b/libavformat/dump.c index 220f404..9578b88 100644 --- a/libavformat/dump.c +++ b/libavformat/dump.c @@ -27,6 +27,7 @@ #include "libavutil/intreadwrite.h" #include "libavutil/log.h" #include "libavutil/mastering_display_metadata.h" +#include "libavutil/dovi_meta.h" #include "libavutil/mathematics.h" #include "libavutil/opt.h" #include "libavutil/avstring.h" @@ -387,6 +388,24 @@ static void dump_spherical(void *ctx, AVCodecParameters *par, AVPacketSideData * } } +static void dump_dovi_conf(void *ctx, AVPacketSideData* sd) +{ + AVDOVIDecoderConfigurationRecord *dovi = (AVDOVIDecoderConfigurationRecord *)sd->data; + if (sd->size < sizeof(*dovi)) { + av_log(ctx, AV_LOG_ERROR, "invalid data"); + return; + } + + av_log(ctx, AV_LOG_INFO, "version: %d.%d, profile: %d, level: %d, " + "rpu flag: %d, el flag: %d, bl flag: %d, compatibility id: %d", + dovi->dv_version_major, dovi->dv_version_minor, + dovi->dv_profile, dovi->dv_level, + dovi->rpu_present_flag, + dovi->el_present_flag, + dovi->bl_present_flag, + dovi->dv_bl_signal_compatibility_id); +} + static void dump_sidedata(void *ctx, AVStream *st, const char *indent) { int i; @@ -449,6 +468,10 @@ static void dump_sidedata(void *ctx, AVStream *st, const char *indent) case AV_PKT_DATA_ICC_PROFILE: av_log(ctx, AV_LOG_INFO, "ICC Profile"); break; + case AV_PKT_DATA_DOVI_CONF: + av_log(ctx, AV_LOG_INFO, "DOVI configuration record: "); + dump_dovi_conf(ctx, &sd); + break; default: av_log(ctx, AV_LOG_INFO, "unknown side data type %d (%d bytes)", sd.type, sd.size);