From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 4AF704BD75 for ; Mon, 3 Feb 2025 09:18:29 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A435D68C35F; Mon, 3 Feb 2025 11:18:23 +0200 (EET) Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2FF0368C338 for ; Mon, 3 Feb 2025 11:18:17 +0200 (EET) Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-216426b0865so68969235ad.0 for ; Mon, 03 Feb 2025 01:18:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738574295; x=1739179095; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Co+kkkwXXVZKrOylbmKKp3JzR2vy6FqH286znDjkEEg=; b=SRCL82zXvtuQR5vNQ5fY285lPBKwEvaEBDrNvyGKd/6E7XNfcpuboTG/d3MFGRdlLQ 74Bv9cYVpd9u0ZuuGhzA9VgwrOorqT5z0vvwGTTk5pXw9muTYJgmgqHq7hh33z3QlaYA 3yF3utQAR7p9wmfrloQgA2+nHiXE2aIFj64AFvZkQCVk384pr52+Ko5FModGNYxJoSYP /REW9d6gqAiysXeenKIXBzV6kYTFhR75DjTy2KcYct7UnIGNv2uUea2kK4SHxWsGBSuY WpRvw52UB6jTjcfKCG2szGvA4Q8Ez2WTTPBbGH6UGCOGxELVgDj/VbomIRZ0EEZPJIk9 15yg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738574295; x=1739179095; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Co+kkkwXXVZKrOylbmKKp3JzR2vy6FqH286znDjkEEg=; b=RTz7Dq40ZNEKMIqSYVh7RON6rQ3x7i+gQvPnQGxlY8bSt33SSok0EkgDrxKUumpO+/ X8tFtjrp/pLA+6yyja860/7HBKlluriRD7rTvjDS5o5K3jAL+sFtqHzwdusy0mpqdE89 JtF6QN3O02zFZfLsSkNOigPM3KhoazFHgtfZZvtSHxzg800mdVHVwrRw+jrRB722rk3b gBLe6Ny9E8UTsebpu6guhsPrSPNsTnR+AJs18OQ8krmngU0B15ZVkcN++YQqDMYiLCFA YcdrJ73CdfJT0ndn7lVBY2cma5jrTMF1AKIPdSKynbaUf1mEXEQtqEmJxEimndVDn/me AATA== X-Gm-Message-State: AOJu0Yz0U1O4UuzOQbAXjFOIl3+eP5qF6OLx/ku+Uf82V+Sx4uratnot QRxYPyhxwjlgNFkK1NIL7seXVjIO+hhyRtWfwKHOjZZDq+3klLs2Y22nxG6H X-Gm-Gg: ASbGncsRU3ti9vfnxTLDAE91k43HNo1vSfCfAOcPpdc+OVYs3DUjpz+IVyLD47Rghs8 mh49I61SUSJcMolmOrI7KQEF5wZxC+IVivn2ay+G4LTPxcfHQr7iQNyo50wghWKBRCa1grfq1S5 XuWlsScUgD9xxD7I/LBOJlwDlbgaeK6C5GkEgPuU9gGZy7zxLjwmd4QGtwNiMWsRxKITnCvsbgn wIlovYnVYABU3F3eJkmMO8XHaVL4RK33Gy0VKzj59k4VoGKX115ZlQTvQZzZEbyK8ieA4R3vHtL qSy0Rpx8 X-Google-Smtp-Source: AGHT+IHF802tO+d4W+1RYHqfniMLu9wdd6Bfr8rt8Cqbb4fPY3ecCWHb20P5jLmOshz/z3ZG8+Xuvw== X-Received: by 2002:a17:902:f683:b0:216:2426:7666 with SMTP id d9443c01a7336-21dd7d64950mr345143335ad.12.1738574295159; Mon, 03 Feb 2025 01:18:15 -0800 (PST) Received: from localhost ([112.64.8.17]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21de331eb69sm71708515ad.211.2025.02.03.01.18.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Feb 2025 01:18:14 -0800 (PST) From: Nuo Mi To: ffmpeg-devel@ffmpeg.org Date: Mon, 3 Feb 2025 17:17:51 +0800 Message-Id: <20250203091751.259888-2-nuomi2021@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250203091751.259888-1-nuomi2021@gmail.com> References: <20250203091751.259888-1-nuomi2021@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] lavc/vvcdec: export stream level VUI information X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Nuo Mi , Barry Warburton Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Previously, VUI information was not exposed. If the container lacks HDR metadata, HDR videos appear washed out Command: mp4box -add hdr.mp4#video:colr=nclc,1,1,1 -new new.mp4 && ffprobe new.mp4 Before: Stream #0:0[0x1](und): Video: vvc (vvc1 / 0x31637676), yuv420p10le(bt709), 1920x1080, 12164 kb/s, 50 fps, 50 tbr, 90k tbn (default) After: Stream #0:0[0x1](und): Video: vvc (vvc1 / 0x31637676), yuv420p10le(tv, bt2020nc/bt2020/arib-std-b67), 1920x1080 [SAR 1:1 DAR 16:9], 12164 kb/s, 50 fps, 50 tbr, 90k tbn (default) Reported-by: Barry Warburton --- libavcodec/vvc/ps.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/libavcodec/vvc/ps.c b/libavcodec/vvc/ps.c index 664e2c6376..d026e797b3 100644 --- a/libavcodec/vvc/ps.c +++ b/libavcodec/vvc/ps.c @@ -24,6 +24,7 @@ #include "libavcodec/cbs_h266.h" #include "libavcodec/decode.h" +#include "libavcodec/h2645data.h" #include "libavutil/mem.h" #include "libavutil/pixdesc.h" #include "libavutil/refstruct.h" @@ -181,11 +182,50 @@ static void sps_ladf(VVCSPS* sps) } } +#define EXTENDED_SAR 255 +static void sps_vui(AVCodecContext *c, const H266RawVUI *vui) +{ + AVRational sar = (AVRational){ 0, 1 }; + if (vui->vui_aspect_ratio_info_present_flag) { + if (vui->vui_aspect_ratio_idc < FF_ARRAY_ELEMS(ff_h2645_pixel_aspect)) + sar = ff_h2645_pixel_aspect[vui->vui_aspect_ratio_idc]; + else if (vui->vui_aspect_ratio_idc == EXTENDED_SAR) { + sar = (AVRational){ vui->vui_sar_width, vui->vui_sar_height }; + } else { + av_log(c, AV_LOG_WARNING, "Unknown SAR index: %u.\n", vui->vui_aspect_ratio_idc); + } + } + ff_set_sar(c, sar); + + if (vui->vui_colour_description_present_flag) { + c->color_primaries = vui->vui_colour_primaries; + c->color_trc = vui->vui_transfer_characteristics; + c->colorspace = vui->vui_matrix_coeffs; + c->color_range = vui->vui_full_range_flag ? AVCOL_RANGE_JPEG : AVCOL_RANGE_MPEG; + + // Set invalid values to "unspecified" + if (!av_color_primaries_name(c->color_primaries)) + c->color_primaries = AVCOL_PRI_UNSPECIFIED; + if (!av_color_transfer_name(c->color_trc)) + c->color_trc = AVCOL_TRC_UNSPECIFIED; + if (!av_color_space_name(c->colorspace)) + c->colorspace = AVCOL_SPC_UNSPECIFIED; + } else { + c->color_primaries = AVCOL_PRI_UNSPECIFIED; + c->color_trc = AVCOL_TRC_UNSPECIFIED; + c->colorspace = AVCOL_SPC_UNSPECIFIED; + c->color_range = AVCOL_RANGE_MPEG; + } +} + + static void sps_export_stream_params(AVCodecContext *c, const VVCSPS *sps) { const H266RawSPS *r = sps->r; c->has_b_frames = !!r->sps_dpb_params.dpb_max_num_reorder_pics[r->sps_max_sublayers_minus1]; + if (r->sps_vui_parameters_present_flag) + sps_vui(c, &r->vui); } static int sps_derive(VVCSPS *sps, AVCodecContext *c) -- 2.34.1 _______________________________________________ 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".