Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Niklas Haas <ffmpeg@haasn.xyz>
To: ffmpeg-devel@ffmpeg.org
Subject: Re: [FFmpeg-devel] [PATCH v2 02/13] avcodec: add extended AVCodec color metadata
Date: Sat, 14 Oct 2023 13:46:34 +0200
Message-ID: <20231014134634.GC89414@haasn.xyz> (raw)
In-Reply-To: <AS8P250MB074469156B0B9002222575A18FD2A@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM>

On Fri, 13 Oct 2023 19:10:33 +0200 Andreas Rheinhardt <andreas.rheinhardt@outlook.com> wrote:
> 2. It is based around the underlying assumption that the set of
> permissible states (tupels) is a cartesian product of a set of color
> spaces, a set of color ranges etc. This is wrong: E.g. VP9 disallows
> limited-range RGB (it is syntactically impossible to set the color range
> when using RGB color space).

Well, upon further consideration, I don't think this is enough to break
the cartesian approach, because RGB is always full range by convention.
Note how vf_scale, vf_zscale and vf_libplacebo all force the color range
for RGB inputs to full. So this is not an exception, rather it is the
rule. In other words, for RGB input, the colorspace and color_range
restrictions should simply be ignored, as they conceptually apply to YUV
formats only.

Note also that, thinking a little bit ahead, independent list would make
AVFilter negotiation *much* easier as we could just re-use
AVFilterFormats for each field without worry - whereas a "list of
tuples" approach requires introducing a new struct to group such
metadata, a new type of AVFilterFormats list + all supporting functions,
and a lot more boilerplate overall.

So we need to think very carefully if there actually are any
sufficiently strong motivating cases to introduce such heavy machinery.

> 3. I don't see how the MJPEG encoder behaviour where the valid formats
> de facto depend upon strictness can be encoded in this way; isn't the
> aim to get rid of the necessity of the workaround in ffmpeg cli?

Note that ffmpeg cli presently initializes the filter graph well before
the AVCodecContext is set up with options, let alone opened. (Presently,
the logic for overriding the pixfmt list directly looks up the "strict"
field in the options dict)

So that limits the design space somewhat for elegant solutions here.
Either we make the "return list of supported formats" callback in
AVCodec simply accept the strict_std_compliance setting directly, or we
extend the static list of colorspaces itself by an extra strictness
field. Probably the former is better than the latter of these two
approaches.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

  parent reply	other threads:[~2023-10-14 11:46 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-13 14:24 [FFmpeg-devel] [PATCH v2 00/13] YUVJ removal Niklas Haas
2023-10-13 14:24 ` [FFmpeg-devel] [PATCH v2 01/13] avfilter/vf_scale: don't change range by default Niklas Haas
2023-10-13 14:24 ` [FFmpeg-devel] [PATCH v2 02/13] avcodec: add extended AVCodec color metadata Niklas Haas
2023-10-13 17:10   ` Andreas Rheinhardt
2023-10-13 18:52     ` Vittorio Giovara
2023-10-14 10:29     ` Niklas Haas
2023-10-14 11:46     ` Niklas Haas [this message]
2023-10-20 13:54       ` Anton Khirnov
2023-10-20 14:11         ` Michael Niedermayer
2023-10-20 14:01     ` Anton Khirnov
2023-10-14 13:31   ` Leo Izen
2023-10-14 13:40     ` Niklas Haas
2023-10-13 14:24 ` [FFmpeg-devel] [PATCH v2 03/13] fftools/ffmpeg_filter: auto-convert range if needed Niklas Haas
2023-10-13 14:24 ` [FFmpeg-devel] [PATCH v2 04/13] lavfi/vf_colorspace: support prim/trc/csp passthrough Niklas Haas
2023-10-13 14:24 ` [FFmpeg-devel] [PATCH v2 05/13] fftools/ffmpeg_filter: auto-insert colorspace filter Niklas Haas
2023-10-13 14:24 ` [FFmpeg-devel] [PATCH v2 06/13] avcodec/encode: enforce AVCodec capabilities at encode time Niklas Haas
2023-10-13 14:24 ` [FFmpeg-devel] [PATCH v2 07/13] tests/fate: force MPEG range for rawvideo tests Niklas Haas
2023-10-13 14:24 ` [FFmpeg-devel] [PATCH v2 08/13] tests/fate: allow conversion filters in jpg-icc test Niklas Haas
2023-10-13 14:24 ` [FFmpeg-devel] [PATCH v2 09/13] lavc: set color_ranges for YUVJ-only codecs Niklas Haas
2023-10-13 14:24 ` [FFmpeg-devel] [PATCH v2 10/13] lavfi/lavu/lavc: remove YUVJ pixel formats Niklas Haas
2023-10-13 14:24 ` [FFmpeg-devel] [PATCH v2 11/13] swscale/utils: simplify JPEG handling function Niklas Haas
2023-10-13 14:24 ` [FFmpeg-devel] [PATCH v2 12/13] tests/fate: remove unused YUVJ ref files Niklas Haas
2023-10-13 14:24 ` [FFmpeg-devel] [PATCH v2 13/13] avutil/pixdesc: remove old yuvj pixel format check Niklas Haas
2023-10-13 18:33 ` [FFmpeg-devel] [PATCH v2 00/13] YUVJ removal Vittorio Giovara
2023-10-13 21:14   ` Lynne
2023-10-13 22:21     ` Vittorio Giovara
2023-10-14 13:11       ` Lynne
2023-10-14 15:15         ` Vittorio Giovara
2023-10-14 15:18           ` Lynne
2023-10-20 12:14           ` Ronald S. Bultje
2023-10-20 16:14             ` Vittorio Giovara
2023-10-20 23:13               ` Ronald S. Bultje
2023-10-21 23:20                 ` Michael Niedermayer
2023-10-24  0:56                   ` Vittorio Giovara
2023-10-25 22:15                     ` Michael Niedermayer
2023-10-20 11:30   ` Niklas Haas
2023-10-20 16:17     ` Vittorio Giovara

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231014134634.GC89414@haasn.xyz \
    --to=ffmpeg@haasn.xyz \
    --cc=ffmpeg-devel@ffmpeg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git