|
@@ -223,11 +223,22 @@ static bool create_video_stream(struct ffmpeg_data *data)
|
|
|
data->config.video_encoder))
|
|
|
return false;
|
|
|
|
|
|
- if (data->config.color_trc == AVCOL_TRC_SMPTE2084) {
|
|
|
+ if ((data->config.color_trc == AVCOL_TRC_SMPTE2084) ||
|
|
|
+ (data->config.color_trc == AVCOL_TRC_ARIB_STD_B67)) {
|
|
|
AVMasteringDisplayMetadata *const mastering =
|
|
|
av_mastering_display_metadata_alloc();
|
|
|
+ mastering->display_primaries[0][0] = av_make_q(17, 25);
|
|
|
+ mastering->display_primaries[0][1] = av_make_q(8, 25);
|
|
|
+ mastering->display_primaries[1][0] = av_make_q(53, 200);
|
|
|
+ mastering->display_primaries[1][1] = av_make_q(69, 100);
|
|
|
+ mastering->display_primaries[2][0] = av_make_q(3, 20);
|
|
|
+ mastering->display_primaries[2][1] = av_make_q(3, 50);
|
|
|
+ mastering->white_point[0] = av_make_q(3127, 10000);
|
|
|
+ mastering->white_point[1] = av_make_q(329, 1000);
|
|
|
+ mastering->min_luminance = av_make_q(0, 1);
|
|
|
mastering->max_luminance = av_make_q(
|
|
|
(int)obs_get_video_hdr_nominal_peak_level(), 1);
|
|
|
+ mastering->has_primaries = 1;
|
|
|
mastering->has_luminance = 1;
|
|
|
av_stream_add_side_data(data->video,
|
|
|
AV_PKT_DATA_MASTERING_DISPLAY_METADATA,
|