From patchwork Wed Nov 24 07:10:53 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xiaolei Yu X-Patchwork-Id: 31622 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:d206:0:0:0:0:0 with SMTP id q6csp9959639iob; Tue, 23 Nov 2021 23:11:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJyKV+LFhak069MmedAwR+mXtf7gK7Bmix4Mzn3SLCsbI1CFRJzuX/vAZYKSEiMCzNYfINXP X-Received: by 2002:a17:906:4d4a:: with SMTP id b10mr17571478ejv.89.1637737872679; Tue, 23 Nov 2021 23:11:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1637737872; cv=none; d=google.com; s=arc-20160816; b=bl8TQ+CiitG6es3GHVq/xNcDEdAZTaaIoA/YtJGGtq0+wU+HTCUUgWO4ofVzazojqc 9/XyCX6qHZMwNy5lmM8Jo1q0q6pd5ODUioSSSovCPCjFm2gVsG7+J6mqk4UH/Gg+y5Jw eq9ukD0ibTaUwdzI9hPCb6nSuRbgx/oSm9Mw1UNv3xMGvXKJPFAQyAB/lSec62ovhkP4 fRprJViCHI2E8FwykPC9wBZYcmkLd2qCPAek9tcZfTEvMmi2ePLdHSl0ujqSRnoJXgX2 D6Cz5u/KpifMo9OV1dOuRQms/aKHR60XWuybwCskcFO02Oih9aIaTvcOM7sjzngx/IKS 8Tiw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:to:from:content-language:user-agent:mime-version :date:message-id:dkim-signature:delivered-to; bh=v+ZWhdnBhltFqxGLed/UBpH9IKf/f+ujv/dQwcNjeEA=; b=TkV1ZSYDasQRlpV2VkZ3ZHn5cP7e4h6FkS1wPjH2EPEBsXtr71b4/zPHzBM1Hph32k spZjs7UgarmzDNCV3U7lwy6M3RmxJ/yMWMQyCQm668XNu3DWbxzX+R1qiH+/7SM31yWq hzVSatTxPNCNmla50myXfTuGCXCMjVWJ/EXO7Ip0dj+FAFtsN5hYNK7/Ipsi0y5o5XZr ZaJvQsdZwOYC/ufXxo7jDVHq3efmy2H4SIKfj+E8qmItftlTFuA7lhjHhDFVE0TJJMzk Y0YNEId4zH5qCPWQdd+GgpyhGBRhbhZfeEVAypsb1F0UXRrquAq4GSgur3T6CApqatlr w8zw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=EwZXF623; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id du11si47524178ejc.245.2021.11.23.23.11.11; Tue, 23 Nov 2021 23:11:12 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=EwZXF623; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6B72868807F; Wed, 24 Nov 2021 09:11:07 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ot1-f46.google.com (mail-ot1-f46.google.com [209.85.210.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9D20F6801D5 for ; Wed, 24 Nov 2021 09:11:00 +0200 (EET) Received: by mail-ot1-f46.google.com with SMTP id x43-20020a056830246b00b00570d09d34ebso2853184otr.2 for ; Tue, 23 Nov 2021 23:11:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:content-language:from:to :subject:content-transfer-encoding; bh=2GXlrmUUEEfgKrEbW2Mn0pDD8TzGSmEINF2dswRQyLo=; b=EwZXF623kBZD+llv/+M5L1H7xliiIMsaTw1Ev/mZLGYHFsA1Wxp/BU3NyA4R7c4Gvg 7zssG1zbTIFx89Q8O995UxSMV2uvPseimME+3yyh4esqaPi+8tAk6LWfjhqTtAxKsxhT picYtSADROxdjt5s6Rq0oLth9I94+79DnlTfEumwjwo61EGMCwpQsPP9J9oTO+/jQiO2 TeTwqNsz8PJCjYBxJ+0MJ8eil+7E4BD8ds/3gzqgkFK+DtE8tiIn5WHq1Qb9P8LL6u8s 6KvPwOdahpjggJtfsdsbtKt4lT3VQURkm9z/bWl4x0Re2K5512LY7NySZ/+psQG2cxp6 Fyjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent :content-language:from:to:subject:content-transfer-encoding; bh=2GXlrmUUEEfgKrEbW2Mn0pDD8TzGSmEINF2dswRQyLo=; b=WgCzZhVV6quM/p075GNfFBcLsH/kBOa3DFn4TBbTbWzD827wm97+ARWSXtayeLZEew dUh8yBxFbfI3e6CDogvd/HVdwDbL7zM1+acKwoD+0M12VQcMEwifRlDeqF+uxVSHIG5b mqlxafEJXdhB1UoE9ucE0BtJhVuBG2RMVdzxP5Q/lU/Dfz4PEBrjT57W8HWQGbO1URpL 9RIwvu4BylRfxTISzw7X9ONY7RdvNa+AMRfYl2LZ9lF2Or/0RPXyzfXFDFDwyB4NIZGD 6nIa8mjEowtvPfbFPcE0ohDrVgGfczz/Ugh9xk/Rzm57c/DPEBg1VmCtptMa6gIvITG0 GGpA== X-Gm-Message-State: AOAM530jWhGnFsckt0aK/GrKVhoA3w9ekj/WpGT/+CvXtvBb92VlUsZ/ jeazQH0OUHPdS+hRyZ5yxyDc3Zfe5C/pdg== X-Received: by 2002:a9d:1727:: with SMTP id i39mr9066845ota.48.1637737857535; Tue, 23 Nov 2021 23:10:57 -0800 (PST) Received: from [192.168.119.23] ([205.204.117.8]) by smtp.gmail.com with ESMTPSA id bi20sm3191814oib.29.2021.11.23.23.10.56 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 23 Nov 2021 23:10:57 -0800 (PST) Message-ID: <7c8ed096-18a6-e3b5-ce52-b9990485ad61@gmail.com> Date: Wed, 24 Nov 2021 15:10:53 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.0 Content-Language: en-US From: Xiaolei Yu To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH] libavcodec/h264: always set color description fields 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: KQumN33hACDk Color description fields shall be inferred to be UNSPECIFIED if not present. --- libavcodec/h264_ps.c | 4 +++- libavcodec/h264_slice.c | 18 +++++++----------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/libavcodec/h264_ps.c b/libavcodec/h264_ps.c index e21c2b56ac..164e6ea0cc 100644 --- a/libavcodec/h264_ps.c +++ b/libavcodec/h264_ps.c @@ -378,7 +378,9 @@ int ff_h264_decode_seq_parameter_set(GetBitContext *gb, AVCodecContext *avctx, memset(sps->scaling_matrix4, 16, sizeof(sps->scaling_matrix4)); memset(sps->scaling_matrix8, 16, sizeof(sps->scaling_matrix8)); sps->scaling_matrix_present = 0; - sps->colorspace = 2; //AVCOL_SPC_UNSPECIFIED + sps->colorspace = AVCOL_SPC_UNSPECIFIED; + sps->color_trc = AVCOL_TRC_UNSPECIFIED; + sps->color_primaries = AVCOL_PRI_UNSPECIFIED; if (sps->profile_idc == 100 || // High profile sps->profile_idc == 110 || // High10 profile diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c index 89ea16a57f..b7f1dfc9ef 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -1103,17 +1103,13 @@ static int h264_init_ps(H264Context *h, const H264SliceContext *sl, int first_sl init_dimensions(h); - if (sps->video_signal_type_present_flag) { - h->avctx->color_range = sps->full_range > 0 ? AVCOL_RANGE_JPEG - : AVCOL_RANGE_MPEG; - if (sps->colour_description_present_flag) { - if (h->avctx->colorspace != sps->colorspace) - needs_reinit = 1; - h->avctx->color_primaries = sps->color_primaries; - h->avctx->color_trc = sps->color_trc; - h->avctx->colorspace = sps->colorspace; - } - } + h->avctx->color_range = sps->full_range > 0 ? AVCOL_RANGE_JPEG + : AVCOL_RANGE_MPEG; + if (h->avctx->colorspace != sps->colorspace) + needs_reinit = 1; + h->avctx->color_primaries = sps->color_primaries; + h->avctx->color_trc = sps->color_trc; + h->avctx->colorspace = sps->colorspace; if (h->sei.alternative_transfer.present && av_color_transfer_name(h->sei.alternative_transfer.preferred_transfer_characteristics) &&