[FFmpeg-devel] [PATCH V1] lavf/showinfo: support mastering display sidedata
Steven Liu
lq at chinaffmpeg.org
Sun Aug 4 14:00:19 EEST 2019
> 在 2019年8月4日,18:30,Jun Zhao <mypopydev at gmail.com> 写道:
>
> From: Jun Zhao <barryjzhao at tencent.com>
>
> support mastering display sidedata.
>
> Signed-off-by: Jun Zhao <barryjzhao at tencent.com>
> ---
> libavfilter/vf_showinfo.c | 30 ++++++++++++++++++++++++++++++
> 1 files changed, 30 insertions(+), 0 deletions(-)
>
> diff --git a/libavfilter/vf_showinfo.c b/libavfilter/vf_showinfo.c
> index f6f8f49..8889c01 100644
> --- a/libavfilter/vf_showinfo.c
> +++ b/libavfilter/vf_showinfo.c
> @@ -34,6 +34,7 @@
> #include "libavutil/stereo3d.h"
> #include "libavutil/timestamp.h"
> #include "libavutil/timecode.h"
> +#include "libavutil/mastering_display_metadata.h"
>
> #include "avfilter.h"
> #include "internal.h"
> @@ -133,6 +134,32 @@ static void dump_roi(AVFilterContext *ctx, AVFrameSideData *sd)
> }
> }
>
> +static void dump_mastering_display(AVFilterContext *ctx, AVFrameSideData *sd)
> +{
> + AVMasteringDisplayMetadata *mastering_display;
> +
> + av_log(ctx, AV_LOG_INFO, "mastering display: ");
> + if (sd->size < sizeof(*mastering_display)) {
> + av_log(ctx, AV_LOG_INFO, "invalid data”);
Why don’t use ERROR level if it is invalid data?
> + return;
> + }
> +
> + mastering_display = (AVMasteringDisplayMetadata *)sd->data;
> +
> + av_log(ctx, AV_LOG_INFO, "has_primaries:%d has_luminance:%d "
> + "r(%5.4f,%5.4f) g(%5.4f,%5.4f) b(%5.4f %5.4f) wp(%5.4f, %5.4f) "
> + "min_luminance=%f, max_luminance=%f",
> + mastering_display->has_primaries, mastering_display->has_luminance,
> + av_q2d(mastering_display->display_primaries[0][0]),
> + av_q2d(mastering_display->display_primaries[0][1]),
> + av_q2d(mastering_display->display_primaries[1][0]),
> + av_q2d(mastering_display->display_primaries[1][1]),
> + av_q2d(mastering_display->display_primaries[2][0]),
> + av_q2d(mastering_display->display_primaries[2][1]),
> + av_q2d(mastering_display->white_point[0]), av_q2d(mastering_display->white_point[1]),
> + av_q2d(mastering_display->min_luminance), av_q2d(mastering_display->max_luminance));
> +}
> +
> static void dump_color_property(AVFilterContext *ctx, AVFrame *frame)
> {
> const char *color_range_str = av_color_range_name(frame->color_range);
> @@ -271,6 +298,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
> case AV_FRAME_DATA_REGIONS_OF_INTEREST:
> dump_roi(ctx, sd);
> break;
> + case AV_FRAME_DATA_MASTERING_DISPLAY_METADATA:
> + dump_mastering_display(ctx, sd);
> + break;
> default:
> av_log(ctx, AV_LOG_WARNING, "unknown side data type %d (%d bytes)",
> sd->type, sd->size);
> --
> 1.7.1
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
Thanks
--------------------------------
刘歧|CDN|研发总监
吉林省高升科技有限公司北京分公司
地址:北京市海淀区西三环北路87号国际财经中心B座9层
手机:18611075131
邮箱: liuqi at gosun.com
电话:010-82602628
Thanks
Steven
More information about the ffmpeg-devel
mailing list