From patchwork Wed Jun 19 23:45:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 13631 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 842B2448AA5 for ; Thu, 20 Jun 2019 02:55:55 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 757B268AB79; Thu, 20 Jun 2019 02:55:55 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4C06A68AB3B for ; Thu, 20 Jun 2019 02:55:47 +0300 (EEST) Received: by mail-wr1-f68.google.com with SMTP id x17so1016534wrl.9 for ; Wed, 19 Jun 2019 16:55:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=N+XvgdLZJbA2Bu11HrwE0LeXCE6EE/6Lj7HnQ/jMh0s=; b=a6Aq05bJEE40ET10d7WNSnTMmr8BGV25UXZj2reVrv77XHFQYddN9NWFP5dB3idP88 65YY4s7SLabNRv5AbHjB4E9/rDXWtCbGgT/au0E1gFTutQMxHWqpXum8FN4xqoq98ZMY K0guQmE5qz/a+rMp4V9peFz+uyxGLoXDQMsvm4LO1LOUNaTZ6uLSvhP9bIDvgVYYI9Z6 0M++HNK2W80AUJLJEdw03vX4Bb+18pcpux/chKolNi2tK9duYicLwuttzaQkch3qfd+3 +vGbdGGNT88fLnngYGn0Jj85zre8Ain6IvDJuNzuB5fK0Z3bhT05CijfbdgmX4MCQ5uX WhTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=N+XvgdLZJbA2Bu11HrwE0LeXCE6EE/6Lj7HnQ/jMh0s=; b=KuQAw0cVlfRs5Ut8/B1xqDD0M3AeML5Ln+9421J8+EsnPKGV8fSZub+tMy6eXYpmlU uS2+tyDEZ9cDnGMjmVzkBuxQITegGAk7xC3uAm6oNzBiFYLh2OWfhLK1Nt86HXxrl5ON ZjHD9KZtV8RBIlwenMrnPuchAVk+3H5ePFZuvNxlUUA7AwO+K3Y3pp8thVEmAIq+Mqxf YTpdnrxtymEkdj/3l2bp8ragL2D6/9lIiv3DlolrfDlCUekJoDSD7roCvQrN/FVl5iz8 H9F22jNcEg5uThWzDikXieJ3q2yfpcGwrUBjN9XwBWHKhxhp4ngGGHQObdu5crVxdGfw 7wQQ== X-Gm-Message-State: APjAAAXWNY4/3o7XRmC1jU6EFeMsZKY8OwhZbVPSL4gQDFVDqC9dBt9B 0va8s9q2E8SBj/Lon6+FCX3OZY9R X-Google-Smtp-Source: APXvYqxgcRV/gUzh5JXBxCXRfCci/OcgOwXzPkyILUMK23fjtowAHBOBQkHR6LrXs6SNj7051UsJLw== X-Received: by 2002:adf:b64b:: with SMTP id i11mr1714167wre.205.1560988546631; Wed, 19 Jun 2019 16:55:46 -0700 (PDT) Received: from localhost.localdomain (ipbcc063db.dynamic.kabel-deutschland.de. [188.192.99.219]) by smtp.gmail.com with ESMTPSA id t63sm2758989wmt.6.2019.06.19.16.55.45 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Wed, 19 Jun 2019 16:55:46 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 20 Jun 2019 01:45:14 +0200 Message-Id: <20190619234521.15619-16-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190619234521.15619-1-andreas.rheinhardt@gmail.com> References: <20190617034223.21195-1-andreas.rheinhardt@gmail.com> <20190619234521.15619-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 24/31] av1/h264_metadata: Don't reinitialize data X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" If the relevant elements (the color description elements for AV1 and the VUI elements in general for H.264 (since 1156b507)) are absent, then their correct values (usually meaning unknown) have already been inferred by the reading process, so that it is unnecessary to initialize them again in the av1/h264_metadata filters even when they were initially absent. Signed-off-by: Andreas Rheinhardt --- libavcodec/av1_metadata_bsf.c | 7 +------ libavcodec/h264_metadata_bsf.c | 37 ++++++++++------------------------ 2 files changed, 12 insertions(+), 32 deletions(-) diff --git a/libavcodec/av1_metadata_bsf.c b/libavcodec/av1_metadata_bsf.c index 9345095277..7d9d15b1a0 100644 --- a/libavcodec/av1_metadata_bsf.c +++ b/libavcodec/av1_metadata_bsf.c @@ -61,12 +61,7 @@ static int av1_metadata_update_sequence_header(AVBSFContext *bsf, if (ctx->color_primaries >= 0 || ctx->transfer_characteristics >= 0 || ctx->matrix_coefficients >= 0) { - if (!clc->color_description_present_flag) { - clc->color_description_present_flag = 1; - clc->color_primaries = AVCOL_PRI_UNSPECIFIED; - clc->transfer_characteristics = AVCOL_TRC_UNSPECIFIED; - clc->matrix_coefficients = AVCOL_SPC_UNSPECIFIED; - } + clc->color_description_present_flag = 1; if (ctx->color_primaries >= 0) clc->color_primaries = ctx->color_primaries; diff --git a/libavcodec/h264_metadata_bsf.c b/libavcodec/h264_metadata_bsf.c index d760ee3182..40886bdde0 100644 --- a/libavcodec/h264_metadata_bsf.c +++ b/libavcodec/h264_metadata_bsf.c @@ -122,13 +122,12 @@ static int h264_metadata_update_sps(AVBSFContext *bsf, need_vui = 1; } -#define SET_OR_INFER(field, value, present_flag, infer) do { \ - if (value >= 0) { \ - field = value; \ +#define SET_IF_SET(field) do { \ + if (ctx->field >= 0) { \ + sps->vui.field = ctx->field; \ need_vui = 1; \ - } else if (!present_flag) \ - field = infer; \ - } while (0) + } \ + } while (0) if (ctx->video_format >= 0 || ctx->video_full_range_flag >= 0 || @@ -136,33 +135,21 @@ static int h264_metadata_update_sps(AVBSFContext *bsf, ctx->transfer_characteristics >= 0 || ctx->matrix_coefficients >= 0) { - SET_OR_INFER(sps->vui.video_format, ctx->video_format, - sps->vui.video_signal_type_present_flag, 5); + SET_IF_SET(video_format); - SET_OR_INFER(sps->vui.video_full_range_flag, - ctx->video_full_range_flag, - sps->vui.video_signal_type_present_flag, 0); + SET_IF_SET(video_full_range_flag); if (ctx->colour_primaries >= 0 || ctx->transfer_characteristics >= 0 || ctx->matrix_coefficients >= 0) { - SET_OR_INFER(sps->vui.colour_primaries, - ctx->colour_primaries, - sps->vui.colour_description_present_flag, 2); - - SET_OR_INFER(sps->vui.transfer_characteristics, - ctx->transfer_characteristics, - sps->vui.colour_description_present_flag, 2); - - SET_OR_INFER(sps->vui.matrix_coefficients, - ctx->matrix_coefficients, - sps->vui.colour_description_present_flag, 2); + SET_IF_SET(colour_primaries); + SET_IF_SET(transfer_characteristics); + SET_IF_SET(matrix_coefficients); sps->vui.colour_description_present_flag = 1; } sps->vui.video_signal_type_present_flag = 1; - need_vui = 1; } if (ctx->chroma_sample_loc_type >= 0) { @@ -186,9 +173,7 @@ static int h264_metadata_update_sps(AVBSFContext *bsf, sps->vui.timing_info_present_flag = 1; need_vui = 1; } - SET_OR_INFER(sps->vui.fixed_frame_rate_flag, - ctx->fixed_frame_rate_flag, - sps->vui.timing_info_present_flag, 0); + SET_IF_SET(fixed_frame_rate_flag); if (sps->separate_colour_plane_flag || sps->chroma_format_idc == 0) { crop_unit_x = 1;