From patchwork Tue Apr 18 15:33:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 41244 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4645:b0:e3:3194:9d20 with SMTP id eb5csp3256362pzb; Tue, 18 Apr 2023 08:39:53 -0700 (PDT) X-Google-Smtp-Source: AKy350ZCqztmU6slVCYt4gH3XujhLhwNVS1dVyBtnj9sBiaZTjZibNGYrJj//PQlBq5COVgioN6Y X-Received: by 2002:a17:907:3e02:b0:94f:35ea:d773 with SMTP id hp2-20020a1709073e0200b0094f35ead773mr12083766ejc.75.1681832392925; Tue, 18 Apr 2023 08:39:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681832392; cv=none; d=google.com; s=arc-20160816; b=HLI4It97ief+26NDDUhvwUvnbxspK6KYR05rVuGcb7lfPZ/z+hTmZotFR899OCLc6I Uz2Ejmys6WPxJBKWjynAqzDfcH9GPuByA0K300TdIeBvIi0Gk/K4YjkFq50JJHb+2DAf EagaB45cB95OJdG7TU3fp20X+Oq6pXXIryXtlPZShzU8cC50LCWb1+wpI8BZgQVO3Y1x spTupqXkiRULdSYHEIZc0gP7RsbdTH+PYY0s8DF8ycSi7HlfbZXPfDxsAXy3jJmjfaTl Qs6DDiDYLsjww/W8jYU+cxpV1PIe97wWor7MrTlceFqOhW/DykN8Zbuyr2LR+iTnznwv FTpw== 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:message-id:date:to:from :dkim-signature:delivered-to; bh=3c3mRs0S9WEu4VrECU0U1wiavWlteW29u7BMDum6/ns=; b=SKqhMg2zoFXZMemM+PVBL5A1pA0H2qcXzkqoL4TdCNMWBgMVUYx4ubdkVWgxYfYWuX iD9bp2xLvy0dPuVgSS4arqyGjjg4t6TkHBfG4SXNjhwau/MNvD/M8140ldyPdrixjgnz y16xy2hJWYxjQ3fssDrFCS98yPbH6oeibfMe3iDbCPRFwUY66xIBZ1+j0zPRjUpsd8ck mQaLkWj7SBtnGaSDc6rdFgtL2cdhIjuR9YC1/YOt3AQDB9Hw8nrFnPqT1VFvWTbecIJi k+UuNhs9KEOKYJGdFjupYPTkcXPyVTnt6BeQd35Eg+gsDalDHXbLypL/ycKudVW2TVqb +I7w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=MNNIzvrO; 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 ka22-20020a170907921600b0094ed093b836si10779149ejb.1054.2023.04.18.08.39.51; Tue, 18 Apr 2023 08:39:52 -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=@gmail.com header.s=20221208 header.b=MNNIzvrO; 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 98B4068BE94; Tue, 18 Apr 2023 18:39:48 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B49E068BE09 for ; Tue, 18 Apr 2023 18:39:42 +0300 (EEST) Received: by mail-wm1-f45.google.com with SMTP id iw7-20020a05600c54c700b003f16fce55b5so91178wmb.0 for ; Tue, 18 Apr 2023 08:39:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681832381; x=1684424381; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=THMzOUavB8N2REZZlq0iBPhbPxEyPoF3Ods1RvjEF+Q=; b=MNNIzvrOy4eyNUkZMB7w73qcQRhYdd42pdPToKo2WaUbF+AEXuExyVpUdZOhZBRuP4 b3lxkQBq2e1m36GdF1egMEHu3WYUBYfhskhoARmww9RtnUA+BYizuwB28S0uuNf3PRxt e1T8k3OZeRHb/Y0q/c0cTNYm41RdaEO7mNsbhoBhJG4eUzoPs1bviDoAR/VGOTm1Oacx skD9h5xe6wSSV6jO9qSj3wea27FE+tM9XEY0qqG5P0qVLtYIRFehb0B/XxtGZYaCqODk 8cBwPsUJAHGz5+uXSu4tySTLUPC/6twJAegTKmX2BXlwJLRJwBCNGu8jrBcwi3WzBK7o FmIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681832381; x=1684424381; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=THMzOUavB8N2REZZlq0iBPhbPxEyPoF3Ods1RvjEF+Q=; b=K/37gtaopE+sEN3MKBSO+m0ZXanYGkbIVH/d5FpzlfwJqNTAa0DwEQE4RCjdGhZS2a 4Mw0QS8Xvln1dbMpWhv/+IhweFGpdvKhaHUnNWr+KG8YO815SHmZCPG9kix5yuBHjyMU pw31L4ni6jXJRi2bCMoDxiab/pMizoxUrb+r8e2lHAhzOTgufCp3VRQsMcIQ9zIU3L/u 3oW4rXzNRJqIjbpSimBEvQ+RPHnjrlPuwfu/7RQB6iKniqGwWnaAM92AZC25i7e8sdXe NX8DXeakjMA2i4E7uwPAcrcAvo7+57ERS50xhefm3ayBMn8VZE/kUtCNsZ4H7eaa8Wz/ dHMg== X-Gm-Message-State: AAQBX9dQtqLR6LQJdIN6qtxQuSVbbpovJ/jauQwm8K1/QClEf6EzUPH1 s2Tww2AR3X2Tzb6rA50SvHI1tWAEboYl0A== X-Received: by 2002:a05:600c:22c8:b0:3f1:6518:d7a2 with SMTP id 8-20020a05600c22c800b003f16518d7a2mr9217225wmg.24.1681832381561; Tue, 18 Apr 2023 08:39:41 -0700 (PDT) Received: from localhost.localdomain ([49.51.162.193]) by smtp.gmail.com with ESMTPSA id b11-20020a5d4d8b000000b002c7066a6f77sm13348540wru.31.2023.04.18.08.39.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Apr 2023 08:39:41 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Tue, 18 Apr 2023 23:33:50 +0800 Message-Id: <20230418153351.2350679-1-mypopydev@gmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] lavc/libopenh264: Support full range videos in transcoding 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: Jun Zhao , Jun Zhao Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: XlJu0jh5rEb1 Support full range videos when transcoding, enabled the YUVJ420P to avoid auto scale from YUVJ420P to YUV420P Signed-off-by: Jun Zhao --- libavcodec/libopenh264enc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavcodec/libopenh264enc.c b/libavcodec/libopenh264enc.c index 8b4755f5ba..cccc11fbb7 100644 --- a/libavcodec/libopenh264enc.c +++ b/libavcodec/libopenh264enc.c @@ -311,10 +311,12 @@ static av_cold int svc_encode_init(AVCodecContext *avctx) #if OPENH264_VER_AT_LEAST(1, 6) param.sSpatialLayers[0].uiVideoFormat = VF_UNDEF; + if (avctx->color_range != AVCOL_RANGE_UNSPECIFIED) { param.sSpatialLayers[0].bVideoSignalTypePresent = true; param.sSpatialLayers[0].bFullRange = (avctx->color_range == AVCOL_RANGE_JPEG); - } + } else if (avctx->pix_fmt == AV_PIX_FMT_YUVJ420P) + param.sSpatialLayers[0].bFullRange = 1; if (avctx->colorspace != AVCOL_SPC_UNSPECIFIED || avctx->color_primaries != AVCOL_PRI_UNSPECIFIED || @@ -443,6 +445,7 @@ const FFCodec ff_libopenh264_encoder = { .caps_internal = FF_CODEC_CAP_INIT_CLEANUP | FF_CODEC_CAP_AUTO_THREADS, .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, + AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_NONE }, .defaults = svc_enc_defaults, .p.priv_class = &class,