From patchwork Mon Apr 8 12:57:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 47920 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp2456331pzd; Mon, 8 Apr 2024 06:01:42 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUky08yMq+B6jpa0eiPYWljYrNMfBs4qS8ji5Rythg/tUeKkfdyB9e5FfVyTSeBzI8F/hWFysLuyUCOOWni/qTZancZb3DIoHjJHw== X-Google-Smtp-Source: AGHT+IHxdD4bu8GiUMBzdEn90CX5jpwVrD3B62jTaSNSB1gKIHy8oi+KP5d1V+dNGgunfJJLMi8E X-Received: by 2002:a17:907:7e89:b0:a51:d463:3270 with SMTP id qb9-20020a1709077e8900b00a51d4633270mr2279369ejc.4.1712581281799; Mon, 08 Apr 2024 06:01:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1712581281; cv=none; d=google.com; s=arc-20160816; b=h24iUmnc4uXFUMxC3XscAJ07d9bVpXS9K4LvVSD3GBAZ46DABqm4gVwioYYQ1q6Sub QMF3WdFFZqF9knXQGhCMYfYCNvyyAF1j7wnB2UwIJJYphJ6SDWUzjkm9Zp/8xiL5miqt VCERI13ZVl+z+npArCqtNt6WE32SVBBX0JLSyCytM8RfAw5GdhV053QyulPA2k4OE3q4 C/K/jLk8xABQYjqIecVUSSHR6eeoGB1L8wYPpcCAgkRQehNh3RYdAcARTIL0OPZQ5XGn dcglQXR5n/7CbyKLSxsb3nngtx2IcsYhCJFIW9PQ0V8OJ22dKNQN1tsVKY1opMzsZ9kQ rw5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=nNQUVjKK5kr3DwfBCHsGxMffLyAxKnZS/gQ0nErPTJw=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=anoGTUnJ1nldQpDwxO39WETs8Dp9Qs7HgG4Jf4YVp/YBnPzyC3ZwmiFEKiB3dHkvdi l4i1xWNnmgWMtbmWvgi88GLsZHgHehQGmwfzt7r0OksoJRZQ1F/U11jlOBF461+j6K74 JiF30QzA5lqzUjTWbT8oDytoUwUGwErXtWK0VCSE/e5UBWiaLd3CAAVaFuvoaLl90BVW RI/GUXZ+hqIfzkgijOk4XZOcga+AIcrela3GCzop/KJoV8Wu9/Dw5RnDyMzAhUObO3LO G+7lhg4g+XvK1Bx7LTo+GGGtJ6vY2ZaCsST6N5dFsYbx7Vew0UwipcncEhDaw25+ba/b Tg9Q==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=YxeT65St; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id gs44-20020a1709072d2c00b00a4e207ee793si3754017ejc.646.2024.04.08.06.01.20; Mon, 08 Apr 2024 06:01:21 -0700 (PDT) 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=@haasn.xyz header.s=mail header.b=YxeT65St; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7629168D25E; Mon, 8 Apr 2024 16:00:07 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BA7E668D16F for ; Mon, 8 Apr 2024 15:59:58 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1712581195; bh=DyR2H0FO6Z8vunPQHoWkJLP6TYd+3YjxwScDtdn52LU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YxeT65StnU7BxQ9rGs/8CoxtAhF9flSM6rkLhUU9EK+DeYf+1h7ly3i5LvRxwcZn7 NDyky3JjdUP6pYx3/Ph1iBVQ9jEKMvsgqY6W5NkVZArQGP+0vp2nrHehrnoXMBiLJG m3/K3UIYriEluhU1tj9aNJ42br8eVtsSUaN0TDSI= Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id 3A4BE472A7; Mon, 8 Apr 2024 14:59:55 +0200 (CEST) From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Mon, 8 Apr 2024 14:57:17 +0200 Message-ID: <20240408125950.53472-14-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240408125950.53472-1-ffmpeg@haasn.xyz> References: <20240408125950.53472-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 13/17] fftools/ffmpeg_filter: set strict_std_compliance 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: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: FzaZGIsfxeVs From: Niklas Haas For avcodec_get_supported_config(), which requires this value be set on the actual ost->enc_ctx being queried. --- fftools/ffmpeg_filter.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c index ac04841a16c..9ff064f5f68 100644 --- a/fftools/ffmpeg_filter.c +++ b/fftools/ffmpeg_filter.c @@ -770,6 +770,7 @@ int ofilter_bind_ost(OutputFilter *ofilter, OutputStream *ost, FilterGraph *fg = ofilter->graph; FilterGraphPriv *fgp = fgp_from_fg(fg); const AVCodec *c = ost->enc_ctx->codec; + const AVDictionaryEntry *strict = av_dict_get(ost->encoder_opts, "strict", NULL, 0); int ret; av_assert0(!ofilter->ost); @@ -780,6 +781,10 @@ int ofilter_bind_ost(OutputFilter *ofilter, OutputStream *ost, ofp->ts_offset = of->start_time == AV_NOPTS_VALUE ? 0 : of->start_time; ofp->enc_timebase = ost->enc_timebase; + /* Ensure this is up-to-date for avcodefc_get_supported_config() */ + if (strict) + av_opt_set(ost->enc_ctx, strict->key, strict->value, 0); + switch (ost->enc_ctx->codec_type) { case AVMEDIA_TYPE_VIDEO: ofp->width = ost->enc_ctx->width; @@ -800,16 +805,7 @@ int ofilter_bind_ost(OutputFilter *ofilter, OutputStream *ost, { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_NONE }; - const AVDictionaryEntry *strict = av_dict_get(ost->encoder_opts, "strict", NULL, 0); - int strict_val = ost->enc_ctx->strict_std_compliance; - - if (strict) { - const AVOption *o = av_opt_find(ost->enc_ctx, strict->key, NULL, 0, 0); - av_assert0(o); - av_opt_eval_int(ost->enc_ctx, o, strict->value, &strict_val); - } - - if (strict_val > FF_COMPLIANCE_UNOFFICIAL) + if (ost->enc_ctx->strict_std_compliance > FF_COMPLIANCE_UNOFFICIAL) ofp->formats = mjpeg_formats; } }