From patchwork Mon Feb 5 18:39:21 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 46051 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:7b08:b0:19e:8a94:b663 with SMTP id s8csp938706pzh; Mon, 5 Feb 2024 10:39:41 -0800 (PST) X-Google-Smtp-Source: AGHT+IEJArEd2Q4uNsBcGPID3EfN+MEcq/lnY++cR4vrsV09AHMQNJAYhu/cGHMPDS9gXurka8uy X-Received: by 2002:aa7:d8d6:0:b0:560:9267:95af with SMTP id k22-20020aa7d8d6000000b00560926795afmr107022eds.22.1707158380866; Mon, 05 Feb 2024 10:39:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1707158380; cv=none; d=google.com; s=arc-20160816; b=JSGufsoNc4Bdgs27yzHDeZnnDy/iHJyv0NUw2Iv1zEP2jsqh6YuL0qSfXzDaLewjzW n7Ian5J9Iw79ifCIzxQzFnVcsAAmGMTLOlJQH1IDhUPgps3t9xOqSvq56hNGQvn8i7/Y bJCO1QhIQdN03KgXogMDOUe6r5zhwnAkDV79T5zg5IcJJYwZ8Jz4BcTjzn5onzC9mKPp oS8zrNu1TxR+I56/koKJhuVk4aYf94MQlLrC/Cd8SBZKAKFEN5+1PYiV/Q8ffXL9VX8G gs1Xtn3pOn5n1pwfwDKcdipuGCeGGP8+rBnIN6GfY3tepvke6Jkj9ssaJObgSFwxDmpQ NS2w== 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=0KdZMp2Yokrad/aRRaw2IU6eLtUPoWka53EhyMHRovM=; fh=2sYQjsH52HGUGzQmZZbiYnB/uG3Ndjq1AXh4nJ+8xqU=; b=XKyHGMl0ZNnuCViYQGQ0le84sK7oyn0vTpJ0EelY7dZkQjBFluSIF0pBo5+/PxD1LI DhiRvWnmBHKTTRV/a0fWvsZFJR4qRoyfrC4R16P8beChJJXfatxy6hnJryQo98+06Tps NVjPjbdcR9b3SbBcSCi6HC64kHnLw8P/oppjuEoI5m1pVUfkke2xJ7LKT3htmHzZRnbl Vs8hY3HWBeWQ02FQoEDGHJsrTxa9wtzXrYS9AO5JysGzmv0MiMiW7bLeHrKReSNzzNmr gwKfGSTbWwZRHvtaWlO539DC8vPwUhSTvrTx9O8bt5SdnqPDkbbb/NPqyhtYAjcPd78Z lx1g==; 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=Y5Ff51v2; 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 X-Forwarded-Encrypted: i=0; AJvYcCUG2nKGBjl8Kvhb//tJ+0L1+7lzK3zVjhCSSlKoliMKdIMe0MpvF2t2yTRhh2tQ9XTRq5h1CS09VQEOszP941BOngdQdiGw2R2hksRBaH2Idys7gNubHHbupY484yWnh+RxFuG0D6zkYfEg7mwnG6fkQiYtLLQ3BscnnpQFNXiYR2eP4HfvvVJrcCzZXeDCiz9K0hICAJ1D3+VtboAa7NoBjemFSNmBnpOB/cfCrpPdFChVdt5CzxibyufiHavPmVBLXcqCYCiz7QNpjtvItIV2hdHKF29QqOWG67UD0iwcc1szVMvUxEl9BoWtmWa9c0ze/AR5bHOsLqDVKTETVFpURbUEURDJVrJ4TATCUB1R+PTcoae5DkME+kfPzATA1wU0Qb8LN33Y2VDYEPcKHg3vNvwZ4BVd9/f7DoOrxYcTdu+BBkOetS3+sE7JTvkDigpGM/RyP3nyzecJBCqTufmvAuK5vu1uvp+coet9GmkHNrREUaAEyc34GwnIi+G1QOs5jqGo6b/J5z/RS2wfjF3R7vLt/5eRD54asHgrVuesA5kJI2E9yUjFIWZV6pOt4lRP1rRMhc1rMF4y8RAmdJPknymPqO0tc0m1a13cJa/xndRkMvb7ZcBXxKeETopnxcN6w+3Ue5EYISFoLI4XPEeD5/bn5t4FnD7F/5iWHOb04jKjMNrgaJt+2CQn0i3scbSvxgA/Jcp+DXrPKWOilYw3MxC3L3+RVbKNeBEbWrnkFrW5+9PkOcxIlWw/mc8u12UYJ9sM6SVk82rxXF355tBp1Y8CLAkPk+jmiPnJbnEEv2Ar1OwZC7bcwfT6rZw4dbLGQfuUPa5C8TIhG4iO8vPleaOpeaCZHzT3CUQgWbehQ+TZXpPm/gs8NHi+iAwxAuWJ7zb32q2edvYhb2wtlJQzl4NPfdRbMLxtYv1WX2Me0WLBlptSGU5GgB+GoopEa3cNu2 4/9pXdzNMSJiHBsf07b4mZSYIGaEQsasVJH4IZzK+JfkcQvcKiGY/Can+6WkGZrUw8462CCKz0+sYp763Pmo8txxNnFktzmJ0ZwUbhD+QLQ8zCx6rEqlXghK/hwt1VOje5oKZBhvv/drVgvqRKYVCfDYSwz8Mp+aj6Dbtx5OPwCKM0PayR26nnxkdzIzBoviH2VMcvbhngTkmiJvUfNOaSJpx8T4kirXc5Fd50pwhL9CBEXJzz4eiflW8tZA1S22OXDm60aHCdfyH4xWpwwQGtKGJ5OWtpnImk2pxE1zv2WRlEjV29PSHEn8AiLkKwwFnq6f/wB1ZR01ZDkW/hMdt20jGRs3on24LphSnk7DKATlJGLdqGk3Ple99NL90Zf3llAOa9x8ZlnXFnOwD1VOPsS/72/tn1M1Wrl/Z2hu6Ie/hFD3fFUQSN5opogDcftKJMLzEh9sABCa2Zlpr31aLrWz2fALsOtUx56CVMLVb1s/vFSXxHFvgZB411RvO3Rlgemev/N6FW5lsqKA2NQo2cRxShY5zW22HdE8jEixGnHSwIb4niEEUHU3yI596/95qIOoJvphcN+Ztv2pae8lQWi3OlSu7/9n6jEx4NX4+J6kxvm0ZKxtRxEyL1yUXcb1AzjZM= Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id o18-20020a056402039200b0055f43795b28si161197edv.196.2024.02.05.10.39.40; Mon, 05 Feb 2024 10:39:40 -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=@haasn.xyz header.s=mail header.b=Y5Ff51v2; 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 0CCC168D154; Mon, 5 Feb 2024 20:39:33 +0200 (EET) 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 47E7568A9C7 for ; Mon, 5 Feb 2024 20:39:26 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1707158366; bh=ryY9VjTdu0GHPp8OmzSK3ZjNOIFUOhCpPv36N8RKPC4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Y5Ff51v2pgq9aiKUh3Nwt8GP1gMuzeysuFwnY4fMAfkLG7pA7x1a15+Qw0mC7gisT fX1G9JE8y5e7Msww8PxORpL9xYMcu9hZAeZXBxkHW6kInlQA9nzbOMnMUpUKQDH/C5 ZhbH6ctEqZpOjC2UAJRo3aaVZCf4PHwvFGpK8+6Y= Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id F2E1440CCA; Mon, 5 Feb 2024 19:39:25 +0100 (CET) From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Mon, 5 Feb 2024 19:39:21 +0100 Message-ID: <20240205183921.52633-2-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240205183921.52633-1-ffmpeg@haasn.xyz> References: <20240205183921.52633-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] fftools/ffplay: constrain supported YUV color spaces 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: 8mlS/XQavYPA From: Niklas Haas SDL supports only these three matrices. Actually, it only supports these three combinations: BT.601+JPEG, BT.601+MPEG, BT.709+MPEG, but we have no way to restrict the specific *combination* of YUV range and YUV colorspace with the current filter design. See-Also: https://trac.ffmpeg.org/ticket/10839 Instead of an incorrect conversion result, trying to play a YCgCo file with ffplay will simply error out with a "No conversion possible" error. --- fftools/ffplay.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/fftools/ffplay.c b/fftools/ffplay.c index 132f50a5a1..53e6fc0514 100644 --- a/fftools/ffplay.c +++ b/fftools/ffplay.c @@ -940,6 +940,13 @@ static int upload_texture(SDL_Texture **tex, AVFrame *frame) return ret; } +static enum AVColorSpace sdl_supported_color_spaces[] = { + AVCOL_SPC_BT709, + AVCOL_SPC_BT470BG, + AVCOL_SPC_SMPTE170M, + AVCOL_SPC_UNSPECIFIED, +}; + static void set_sdl_yuv_conversion_mode(AVFrame *frame) { #if SDL_VERSION_ATLEAST(2,0,8) @@ -1921,6 +1928,8 @@ static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const c if ((ret = av_opt_set_int_list(filt_out, "pix_fmts", pix_fmts, AV_PIX_FMT_NONE, AV_OPT_SEARCH_CHILDREN)) < 0) goto fail; + if ((ret = av_opt_set_int_list(filt_out, "color_spaces", sdl_supported_color_spaces, AVCOL_SPC_UNSPECIFIED, AV_OPT_SEARCH_CHILDREN)) < 0) + goto fail; last_filter = filt_out;