From: Mark Thompson Date: Sun, 28 Jul 2019 18:23:16 +0000 (+0100) Subject: h264_metadata: Support overscan_appropriate_flag X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=b123d0780ec26456b08cd50e1062d464262ceb38;p=ffmpeg h264_metadata: Support overscan_appropriate_flag Fixes #8041. --- diff --git a/doc/bitstream_filters.texi b/doc/bitstream_filters.texi index 023945e9be5..50a1679fc7a 100644 --- a/doc/bitstream_filters.texi +++ b/doc/bitstream_filters.texi @@ -224,6 +224,10 @@ Insert or remove AUD NAL units in all access units of the stream. @item sample_aspect_ratio Set the sample aspect ratio of the stream in the VUI parameters. +@item overscan_appropriate_flag +Set whether the stream is suitable for display using overscan +or not (see H.264 section E.2.1). + @item video_format @item video_full_range_flag Set the video format in the stream (see H.264 section E.2.1 and diff --git a/libavcodec/h264_metadata_bsf.c b/libavcodec/h264_metadata_bsf.c index 3684e6bf7f5..5de74be9d60 100644 --- a/libavcodec/h264_metadata_bsf.c +++ b/libavcodec/h264_metadata_bsf.c @@ -57,6 +57,8 @@ typedef struct H264MetadataContext { AVRational sample_aspect_ratio; + int overscan_appropriate_flag; + int video_format; int video_full_range_flag; int colour_primaries; @@ -129,6 +131,11 @@ static int h264_metadata_update_sps(AVBSFContext *bsf, } \ } while (0) + if (ctx->overscan_appropriate_flag >= 0) { + SET_VUI_FIELD(overscan_appropriate_flag); + sps->vui.overscan_info_present_flag = 1; + } + if (ctx->video_format >= 0 || ctx->video_full_range_flag >= 0 || ctx->colour_primaries >= 0 || @@ -630,6 +637,10 @@ static const AVOption h264_metadata_options[] = { OFFSET(sample_aspect_ratio), AV_OPT_TYPE_RATIONAL, { .dbl = 0.0 }, 0, 65535, FLAGS }, + { "overscan_appropriate_flag", "Set VUI overscan appropriate flag", + OFFSET(overscan_appropriate_flag), AV_OPT_TYPE_INT, + { .i64 = -1 }, -1, 1, FLAGS }, + { "video_format", "Set video format (table E-2)", OFFSET(video_format), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 7, FLAGS},