Commit b123d078 authored by Mark Thompson's avatar Mark Thompson

h264_metadata: Support overscan_appropriate_flag

Fixes #8041.
parent f9b85036
...@@ -224,6 +224,10 @@ Insert or remove AUD NAL units in all access units of the stream. ...@@ -224,6 +224,10 @@ Insert or remove AUD NAL units in all access units of the stream.
@item sample_aspect_ratio @item sample_aspect_ratio
Set the sample aspect ratio of the stream in the VUI parameters. 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_format
@item video_full_range_flag @item video_full_range_flag
Set the video format in the stream (see H.264 section E.2.1 and Set the video format in the stream (see H.264 section E.2.1 and
......
...@@ -57,6 +57,8 @@ typedef struct H264MetadataContext { ...@@ -57,6 +57,8 @@ typedef struct H264MetadataContext {
AVRational sample_aspect_ratio; AVRational sample_aspect_ratio;
int overscan_appropriate_flag;
int video_format; int video_format;
int video_full_range_flag; int video_full_range_flag;
int colour_primaries; int colour_primaries;
...@@ -129,6 +131,11 @@ static int h264_metadata_update_sps(AVBSFContext *bsf, ...@@ -129,6 +131,11 @@ static int h264_metadata_update_sps(AVBSFContext *bsf,
} \ } \
} while (0) } 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 || if (ctx->video_format >= 0 ||
ctx->video_full_range_flag >= 0 || ctx->video_full_range_flag >= 0 ||
ctx->colour_primaries >= 0 || ctx->colour_primaries >= 0 ||
...@@ -630,6 +637,10 @@ static const AVOption h264_metadata_options[] = { ...@@ -630,6 +637,10 @@ static const AVOption h264_metadata_options[] = {
OFFSET(sample_aspect_ratio), AV_OPT_TYPE_RATIONAL, OFFSET(sample_aspect_ratio), AV_OPT_TYPE_RATIONAL,
{ .dbl = 0.0 }, 0, 65535, FLAGS }, { .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)", { "video_format", "Set video format (table E-2)",
OFFSET(video_format), AV_OPT_TYPE_INT, OFFSET(video_format), AV_OPT_TYPE_INT,
{ .i64 = -1 }, -1, 7, FLAGS}, { .i64 = -1 }, -1, 7, FLAGS},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment