From patchwork Sat Jun 17 08:11:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thilo Borgmann X-Patchwork-Id: 42170 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c526:b0:117:ac03:c9de with SMTP id gm38csp2083334pzb; Sat, 17 Jun 2023 01:11:19 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6FsJBvY3vaQfQSK+4pu7GZd8KBCiUDpccHt7cySlP8KcxmSzYFSVYe4tOxbYYTzRKaGBYw X-Received: by 2002:a17:907:a03:b0:982:2278:bcef with SMTP id bb3-20020a1709070a0300b009822278bcefmr4797643ejc.60.1686989479167; Sat, 17 Jun 2023 01:11:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686989479; cv=none; d=google.com; s=arc-20160816; b=sfQYVFbnyX20BfrWdy+DEO8MSIRY8TGls6dk4VwPk4hXt8Gz2p2ikoFTuROciODYum YJqBOVA7L43s9C5dtIWxTyIg5WLpVQ14bjBaRS5qvnm5+xgFXrKzMN+HGSwII3sE1Ju3 nBtSzBNeHvUG67Ynm5jCQrjh7GemcZgbZhNYDKF89nZ7/puppwDzIgJ6Cw8fPmd4sVd9 XBtirFWBXM9GFQF7OjqJYX8Jwr7QKHp1yR6ZChw+bz+m91KyhfqBOUeGSsLRBIFpvCHC MhMT+bxMtdNsVck8tNlUsp/FaD+ZUt1EFzyPhBosM7q57kojKaskFxV3pNfJTZ1VxzUY EpeQ== 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:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=9pPhAVLem4Zx1E8tiYQXmUAWVcyk0fQTrfvBMSw1iik=; b=v3Onpk8TLUrDerAiN7p6/+EpeYWSLZfB+TbexkanYRanTGWM+OneeGu9lnzmDWUsup ItzPyOYDH6doeHWyDdrwri2eQjMVBLETxUpK1Q3vfQjhwxkT/7i/c3geWRyeCE0mhcf0 y5CijHJXHkVFHV9aF2LyM1EtAViM9RUv0jc7beeez3L/KDmbSLemcs3OR36KeYpRheeL yW5ImBVS129cZ5D75dv9q43cqKpc2wkh4/y//Wa11xnc/GPEbWAw8H6IJXrJVLCDRxnd mkQsg9xwIyFCFGItF/FcuzYsn+eipBNiZ8zufEkU1ELAFNCf64R7xAOSGz0q87XQcSkt 1y8A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@mail.de header.s=mailde202009 header.b=nQR7tl6f; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mail.de Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id v8-20020aa7cd48000000b005189fadd2e6si2709953edw.413.2023.06.17.01.11.18; Sat, 17 Jun 2023 01:11:19 -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=@mail.de header.s=mailde202009 header.b=nQR7tl6f; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mail.de Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id ACF7568C387; Sat, 17 Jun 2023 11:11:16 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from shout02.mail.de (shout02.mail.de [62.201.172.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3D1D268BFB0 for ; Sat, 17 Jun 2023 11:11:10 +0300 (EEST) Received: from postfix03.mail.de (postfix03.bt.mail.de [10.0.121.127]) by shout02.mail.de (Postfix) with ESMTP id B6890A0E8D for ; Sat, 17 Jun 2023 10:11:09 +0200 (CEST) Received: from smtp02.mail.de (smtp02.bt.mail.de [10.0.121.212]) by postfix03.mail.de (Postfix) with ESMTP id 9C77C800C3 for ; Sat, 17 Jun 2023 10:11:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mail.de; s=mailde202009; t=1686989469; bh=lFgsxqmYGY9E0n6CbecTHfbbHynhQgsDdlpxwaXEQIk=; h=From:To:Subject:Date:Message-Id:From:To:CC:Subject:Reply-To; b=nQR7tl6fRVfcwUUQPCdYHELufcxrsxRUVR2Hmq2+HyjxRvdZbWdo3fB9anan4KjAx MYTW3EUGUCSrGzFeSbwjhe9OGx5c+u1bfh+9MvRCV5udybLviBJsgFrADSFhsOJm9x kAxf1NJrvVWsl4QlCB9MklW5AJ/x7R1FtKy4Uv6sASr/ilaLSjgOpTLdZmPFmzlCzz vmVxZKN0R272h0yxjQ4uqgJ5GlPc2TmtmR4h4UyWxZveGV9UDbXstTwqqWYwC8C9hX LXlkhOwJQYIe5odTvdO38SctQ94iiAWwUU+5zoi/K+yEJ9EI3m4n0hNcZrQDuVGMAe 4aY7Zfc4H3t+A== Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtp02.mail.de (Postfix) with ESMTPSA id 70C6FA0519 for ; Sat, 17 Jun 2023 10:11:09 +0200 (CEST) From: Thilo Borgmann To: ffmpeg-devel@ffmpeg.org Date: Sat, 17 Jun 2023 10:11:07 +0200 Message-Id: <20230617081108.10051-1-thilo.borgmann@mail.de> MIME-Version: 1.0 X-purgate: clean X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate-type: clean X-purgate-Ad: Categorized by eleven eXpurgate (R) http://www.eleven.de X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate: clean X-purgate-size: 1680 X-purgate-ID: 154282::1686989469-9D67D199-C5765730/0/0 Subject: [FFmpeg-devel] [PATCH v1 1/2] lavc/vp9: set yuvj pixel format for full range decode 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: IAJk6eNFBgBv While the yuvj pixel formats are deprecated lots of code still relies on them to be set. Without setting a yuvj420p pixel format VP9 decoding ends up incorrectly due to auto conversion. suggested-by: ffmpeg@meta.com --- libavcodec/vp9.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c index 4f704ec0dd..e7be755fe6 100644 --- a/libavcodec/vp9.c +++ b/libavcodec/vp9.c @@ -202,6 +202,7 @@ static int update_size(AVCodecContext *avctx, int w, int h) switch (s->pix_fmt) { case AV_PIX_FMT_YUV420P: + case AV_PIX_FMT_YUVJ420P: case AV_PIX_FMT_YUV420P10: #if CONFIG_VP9_DXVA2_HWACCEL *fmtp++ = AV_PIX_FMT_DXVA2_VLD; @@ -509,6 +510,25 @@ static int read_colorspace_details(AVCodecContext *avctx) s->ss_h = s->ss_v = 1; s->pix_fmt = pix_fmt_for_ss[bits][1][1]; } + + if (avctx->color_range == AVCOL_RANGE_JPEG) { + switch (s->pix_fmt) { + case AV_PIX_FMT_YUV444P: + s->pix_fmt = AV_PIX_FMT_YUVJ444P; + break; + case AV_PIX_FMT_YUV422P: + s->pix_fmt = AV_PIX_FMT_YUVJ422P; + break; + case AV_PIX_FMT_YUV440P: + s->pix_fmt = AV_PIX_FMT_YUVJ440P; + break; + case AV_PIX_FMT_YUV420P: + s->pix_fmt = AV_PIX_FMT_YUVJ420P; + break; + default: + break; + } + } } return 0; From patchwork Sat Jun 17 08:11:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thilo Borgmann X-Patchwork-Id: 42171 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c526:b0:117:ac03:c9de with SMTP id gm38csp2083385pzb; Sat, 17 Jun 2023 01:11:27 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5+7US0MUUpXIp9P/8Hgyuw8ZTuajnz14ycQqt8CJCywgifWDK5MA5IaFBdAHWPx160uh4L X-Received: by 2002:a17:907:7d86:b0:984:25ab:bb2e with SMTP id oz6-20020a1709077d8600b0098425abbb2emr3599390ejc.3.1686989487306; Sat, 17 Jun 2023 01:11:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686989487; cv=none; d=google.com; s=arc-20160816; b=yv4rT2A6CKhhXl2MDTYwvUrPECMelCB03MnBRmMBi2f95Ruxd1bOuxgW23yiFuF2/y ivT9MOF4zg1MkG/iu+qFlwV+ymh6eI3TZMd+FRZaEIMgyIPtCriWMD4PH6bxuZQVZtDj n/tB/2IQZCl+iA3ZyLvHeMdQG5UcMP3jcHsa4MTRQ6eGRJoBUL6lKQ4VaPT4ZrALpWUJ 8vQ1OVzzLv/jHu2xB9Le6+xY4VfYA2CxkcAFIhylxnHZXp1FU/f+v49XGxS0+GP7TQtH XYMVpXlIupq2tl8Xw6DgvrTSVGp8HPW/6ndJ49fhX0AAQvvncvGpRGeB3vehD9xP/F5C uJNA== 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:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=acaEERJC9Pv0HFig9WtL9kYbv7ugnP22ng4eELdiayU=; b=NS6ZZtVdcWdecoJB0Yw/3OQzW2P8ECVocm3UmU0ZrbetK0lUGHRxzTWVxJQxWjOaGA fq2aEzVVWAHvkwUDTVG08UN+TTEcOGRuXyZTGsWLwLpxRFOudlIrfEWezNFwy60QkwZT Pp6Nv7GJ6K7D4RW0zcS7z322GfTJGx3IPITsEIdjGnrQes1nxFMAIYYtuiqA3BwR+ZGL /QrCs6hT8QFS/UPddN7MzhoTpjYO8tuNC/CHuHgM+4rXR8872dKRNJz55MqRijD/fdOW F4PJDQKgRKvBWU25bNUQdjyXwzuTGGqlYlX9DE4lopa/dDD4baCFmaWfWLgjVGGV6IHV PNFg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@mail.de header.s=mailde202009 header.b=jiuKuGWo; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mail.de Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id i12-20020a1709061e4c00b009788f8130b0si3433448ejj.646.2023.06.17.01.11.26; Sat, 17 Jun 2023 01:11:27 -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=@mail.de header.s=mailde202009 header.b=jiuKuGWo; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mail.de Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8ECCB68C38C; Sat, 17 Jun 2023 11:11:17 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from shout01.mail.de (shout01.mail.de [62.201.172.24]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4F65168BFF2 for ; Sat, 17 Jun 2023 11:11:10 +0300 (EEST) Received: from postfix03.mail.de (postfix03.bt.mail.de [10.0.121.127]) by shout01.mail.de (Postfix) with ESMTP id E719EA05EF for ; Sat, 17 Jun 2023 10:11:09 +0200 (CEST) Received: from smtp02.mail.de (smtp02.bt.mail.de [10.0.121.212]) by postfix03.mail.de (Postfix) with ESMTP id CEE2D800C3 for ; Sat, 17 Jun 2023 10:11:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mail.de; s=mailde202009; t=1686989469; bh=iT1jPPef+FsS68Yk/w63Q/EA8TwO/b8+v42y52hegmc=; h=From:To:Subject:Date:Message-Id:From:To:CC:Subject:Reply-To; b=jiuKuGWoL7MoQHG6FGaSb+0H+4vH4qC0zBL8vtcEPZgXcQ1R+JgeUi9jWVeb3r9l7 o5IjRN8fP/+C+owqHS7NJEBChra34IlP0Q2voaXTTLDjD4ShFSjUtJDCVjPCsl74Dm p2nXSn5kBhFM5oVPIzkeFO6NCw8Jv55EmRY5XoQZfjHid0qiB666T2r/fdYWbuYkfj gqZC9QLrUZ/AUKgHfF80TBpIlzV5hDfoS1qsEj3BEIGiOaquGiVcHjDXLYFBjfE1uL 5JK4hwBelAf7eVD82TuF3S8GhjlHWDPkEpli07GMGs/EPkTCVa0is1ZPec7j+STtmE JEa69GDM7CXgA== Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtp02.mail.de (Postfix) with ESMTPSA id A511DA0518 for ; Sat, 17 Jun 2023 10:11:09 +0200 (CEST) From: Thilo Borgmann To: ffmpeg-devel@ffmpeg.org Date: Sat, 17 Jun 2023 10:11:08 +0200 Message-Id: <20230617081108.10051-2-thilo.borgmann@mail.de> In-Reply-To: <20230617081108.10051-1-thilo.borgmann@mail.de> References: <20230617081108.10051-1-thilo.borgmann@mail.de> MIME-Version: 1.0 X-purgate: clean X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate-type: clean X-purgate-Ad: Categorized by eleven eXpurgate (R) http://www.eleven.de X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate: clean X-purgate-size: 2047 X-purgate-ID: 154282::1686989469-9D67D199-50705C02/0/0 Subject: [FFmpeg-devel] [PATCH v1 2/2] lavc/libvpxenc: support creating full range output 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: 3dngOuhlUz/o suggested-by: ffmpeg@meta.com --- libavcodec/libvpxenc.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index 8833df2d68..6e8a0d07c3 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -799,21 +799,25 @@ static int set_pix_fmt(AVCodecContext *avctx, vpx_codec_caps_t codec_caps, enccfg->g_bit_depth = enccfg->g_input_bit_depth = desc->comp[0].depth; switch (avctx->pix_fmt) { case AV_PIX_FMT_YUV420P: + case AV_PIX_FMT_YUVJ420P: case AV_PIX_FMT_YUVA420P: enccfg->g_profile = 0; *img_fmt = VPX_IMG_FMT_I420; return 0; case AV_PIX_FMT_YUV422P: + case AV_PIX_FMT_YUVJ422P: enccfg->g_profile = 1; *img_fmt = VPX_IMG_FMT_I422; return 0; case AV_PIX_FMT_YUV440P: + case AV_PIX_FMT_YUVJ440P: enccfg->g_profile = 1; *img_fmt = VPX_IMG_FMT_I440; return 0; case AV_PIX_FMT_GBRP: ctx->vpx_cs = VPX_CS_SRGB; case AV_PIX_FMT_YUV444P: + case AV_PIX_FMT_YUVJ444P: enccfg->g_profile = 1; *img_fmt = VPX_IMG_FMT_I444; return 0; @@ -2054,20 +2058,28 @@ static av_cold int vp9_init(AVCodecContext *avctx) static const enum AVPixelFormat vp9_pix_fmts_highcol[] = { AV_PIX_FMT_YUV420P, + AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV422P, + AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV440P, + AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUV444P, + AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_GBRP, AV_PIX_FMT_NONE }; static const enum AVPixelFormat vp9_pix_fmts_highbd[] = { AV_PIX_FMT_YUV420P, + AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV422P, + AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV440P, + AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUV444P, + AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV440P10,