diff mbox series

[FFmpeg-devel,1/4] avutil/pix{desc, fmt}: add new matrix coefficients from H.273 v3

Message ID 20240329003343.1099137-1-jeebjp@gmail.com
State New
Headers show
Series [FFmpeg-devel,1/4] avutil/pix{desc, fmt}: add new matrix coefficients from H.273 v3 | expand

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Jan Ekström March 29, 2024, 12:33 a.m. UTC
* SMPTE ST 2128 IPT-C2 defines the coefficients utilized in DoVi
  Profile 5. Profile 5 can thus now be represented in VUI as
  {AVCOL_RANGE_JPEG, AVCOL_PRI_BT2020, AVCOL_TRC_SMPTE2084,
   AVCOL_SPC_IPT_C2, AVCHROMA_LOC_LEFT} (although other chroma
  sample locations are allowed). AVCOL_TRC_SMPTE2084 should in
  this case be interpreted as 'PQ with reshaping'.
* YCgCo-Re and YCgCo-Ro define the bitexact YCgCo-R, where the
  number of bits added to a source RGB bit depth is 2 (i.e., even)
  and 1 (i.e., odd), respectively.
---
 doc/APIchanges      | 4 ++++
 libavutil/pixdesc.c | 3 +++
 libavutil/pixfmt.h  | 3 +++
 libavutil/version.h | 2 +-
 4 files changed, 11 insertions(+), 1 deletion(-)

Comments

Jan Ekström March 29, 2024, 6:32 p.m. UTC | #1
On Fri, Mar 29, 2024 at 2:33 AM Jan Ekström <jeebjp@gmail.com> wrote:
>
> * SMPTE ST 2128 IPT-C2 defines the coefficients utilized in DoVi
>   Profile 5. Profile 5 can thus now be represented in VUI as
>   {AVCOL_RANGE_JPEG, AVCOL_PRI_BT2020, AVCOL_TRC_SMPTE2084,
>    AVCOL_SPC_IPT_C2, AVCHROMA_LOC_LEFT} (although other chroma
>   sample locations are allowed). AVCOL_TRC_SMPTE2084 should in
>   this case be interpreted as 'PQ with reshaping'.
> * YCgCo-Re and YCgCo-Ro define the bitexact YCgCo-R, where the
>   number of bits added to a source RGB bit depth is 2 (i.e., even)
>   and 1 (i.e., odd), respectively.
> ---
>  doc/APIchanges      | 4 ++++
>  libavutil/pixdesc.c | 3 +++
>  libavutil/pixfmt.h  | 3 +++
>  libavutil/version.h | 2 +-
>  4 files changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/doc/APIchanges b/doc/APIchanges
> index aa102b4925..296d87d8fb 100644
> --- a/doc/APIchanges
> +++ b/doc/APIchanges
> @@ -2,6 +2,10 @@ The last version increases of all libraries were on 2024-03-07
>
>  API changes, most recent first:
>
> +2024-03-27 - xxxxxxxxxx - lavu 59.11.100 - pixfmt.h
> +  Add AVCOL_SPC_IPT_C2, AVCOL_SPC_YCGCO_RE and AVCOL_SPC_YCGCO_RO
> +  to map new matrix coefficients defined by H.273 v3.
> +
>  2024-03-27 - xxxxxxxxxx - lavu 59.10.100 - frame.h
>    Add AVSideDataDescriptor, enum AVSideDataProps, and
>    av_frame_side_data_desc().
> diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
> index 9c708520b1..1c0bcf2232 100644
> --- a/libavutil/pixdesc.c
> +++ b/libavutil/pixdesc.c
> @@ -2854,6 +2854,9 @@ static const char * const color_space_names[] = {
>      [AVCOL_SPC_CHROMA_DERIVED_NCL] = "chroma-derived-nc",
>      [AVCOL_SPC_CHROMA_DERIVED_CL] = "chroma-derived-c",
>      [AVCOL_SPC_ICTCP] = "ictcp",
> +    [AVCOL_SPC_IPT_C2] = "ipt-c2",
> +    [AVCOL_SPC_YCGCO_RE] = "ycgco-re",
> +    [AVCOL_SPC_YCGCO_RO] = "ycgco-ro",
>  };
>
>  static const char * const chroma_location_names[] = {
> diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h
> index 4aa20e4e58..430118d3e1 100644
> --- a/libavutil/pixfmt.h
> +++ b/libavutil/pixfmt.h
> @@ -623,6 +623,9 @@ enum AVColorSpace {
>      AVCOL_SPC_CHROMA_DERIVED_NCL = 12, ///< Chromaticity-derived non-constant luminance system
>      AVCOL_SPC_CHROMA_DERIVED_CL = 13, ///< Chromaticity-derived constant luminance system
>      AVCOL_SPC_ICTCP       = 14, ///< ITU-R BT.2100-0, ICtCp
> +    AVCOL_SPC_IPT_C2      = 15, ///< SMPTE ST 2128
> +    AVCOL_SPC_YCGCO_RE    = 16, ///< YCgCo-R, even addition of bits
> +    AVCOL_SPC_YCGCO_RO    = 17, ///< YCgCo-R, odd addition of bits
>      AVCOL_SPC_NB                ///< Not part of ABI
>  };

To aid in review as for whatever reason the 2023-09 H.273 v3 is not
yet publicly available (even though H.274 is from the same September
period), you can first of all see the summary in
https://www.itu.int/itu-t/workprog/wp_item.aspx?isn=18689 .

The latest related drafts from JVET-Experts
(https://jvet-experts.org/doc_end_user/all_meeting.php being the
index) are:
- CICP/H.273: JVET-AD1003 v2 from
https://jvet-experts.org/doc_end_user/current_document.php?id=12970
- H.265: JVET-AF1006 from
https://jvet-experts.org/doc_end_user/current_document.php?id=13584
- H.264: JVET-AE1016 from
https://jvet-experts.org/doc_end_user/current_document.php?id=13269

Given that H.273 v3 got registered for AAP on 2023-07-21 and that the
H.265 text is clearly from after the last call period of 2023-09-01 to
2023-09-28, I would consider them all matching being a pretty good
indicator that the value 15 got utilized for IPT-C2, and 16+17 for
YCgCo-R.

Jan
Jan Ekström April 1, 2024, 11:34 a.m. UTC | #2
On Fri, Mar 29, 2024 at 8:32 PM Jan Ekström <jeebjp@gmail.com> wrote:
>
> On Fri, Mar 29, 2024 at 2:33 AM Jan Ekström <jeebjp@gmail.com> wrote:
> >
> > * SMPTE ST 2128 IPT-C2 defines the coefficients utilized in DoVi
> >   Profile 5. Profile 5 can thus now be represented in VUI as
> >   {AVCOL_RANGE_JPEG, AVCOL_PRI_BT2020, AVCOL_TRC_SMPTE2084,
> >    AVCOL_SPC_IPT_C2, AVCHROMA_LOC_LEFT} (although other chroma
> >   sample locations are allowed). AVCOL_TRC_SMPTE2084 should in
> >   this case be interpreted as 'PQ with reshaping'.
> > * YCgCo-Re and YCgCo-Ro define the bitexact YCgCo-R, where the
> >   number of bits added to a source RGB bit depth is 2 (i.e., even)
> >   and 1 (i.e., odd), respectively.
> > ---
> >  doc/APIchanges      | 4 ++++
> >  libavutil/pixdesc.c | 3 +++
> >  libavutil/pixfmt.h  | 3 +++
> >  libavutil/version.h | 2 +-
> >  4 files changed, 11 insertions(+), 1 deletion(-)
> >
> > diff --git a/doc/APIchanges b/doc/APIchanges
> > index aa102b4925..296d87d8fb 100644
> > --- a/doc/APIchanges
> > +++ b/doc/APIchanges
> > @@ -2,6 +2,10 @@ The last version increases of all libraries were on 2024-03-07
> >
> >  API changes, most recent first:
> >
> > +2024-03-27 - xxxxxxxxxx - lavu 59.11.100 - pixfmt.h
> > +  Add AVCOL_SPC_IPT_C2, AVCOL_SPC_YCGCO_RE and AVCOL_SPC_YCGCO_RO
> > +  to map new matrix coefficients defined by H.273 v3.
> > +
> >  2024-03-27 - xxxxxxxxxx - lavu 59.10.100 - frame.h
> >    Add AVSideDataDescriptor, enum AVSideDataProps, and
> >    av_frame_side_data_desc().
> > diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
> > index 9c708520b1..1c0bcf2232 100644
> > --- a/libavutil/pixdesc.c
> > +++ b/libavutil/pixdesc.c
> > @@ -2854,6 +2854,9 @@ static const char * const color_space_names[] = {
> >      [AVCOL_SPC_CHROMA_DERIVED_NCL] = "chroma-derived-nc",
> >      [AVCOL_SPC_CHROMA_DERIVED_CL] = "chroma-derived-c",
> >      [AVCOL_SPC_ICTCP] = "ictcp",
> > +    [AVCOL_SPC_IPT_C2] = "ipt-c2",
> > +    [AVCOL_SPC_YCGCO_RE] = "ycgco-re",
> > +    [AVCOL_SPC_YCGCO_RO] = "ycgco-ro",
> >  };
> >
> >  static const char * const chroma_location_names[] = {
> > diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h
> > index 4aa20e4e58..430118d3e1 100644
> > --- a/libavutil/pixfmt.h
> > +++ b/libavutil/pixfmt.h
> > @@ -623,6 +623,9 @@ enum AVColorSpace {
> >      AVCOL_SPC_CHROMA_DERIVED_NCL = 12, ///< Chromaticity-derived non-constant luminance system
> >      AVCOL_SPC_CHROMA_DERIVED_CL = 13, ///< Chromaticity-derived constant luminance system
> >      AVCOL_SPC_ICTCP       = 14, ///< ITU-R BT.2100-0, ICtCp
> > +    AVCOL_SPC_IPT_C2      = 15, ///< SMPTE ST 2128
> > +    AVCOL_SPC_YCGCO_RE    = 16, ///< YCgCo-R, even addition of bits
> > +    AVCOL_SPC_YCGCO_RO    = 17, ///< YCgCo-R, odd addition of bits
> >      AVCOL_SPC_NB                ///< Not part of ABI
> >  };
>
> To aid in review as for whatever reason the 2023-09 H.273 v3 is not
> yet publicly available (even though H.274 is from the same September
> period), you can first of all see the summary in
> https://www.itu.int/itu-t/workprog/wp_item.aspx?isn=18689 .
>
> The latest related drafts from JVET-Experts
> (https://jvet-experts.org/doc_end_user/all_meeting.php being the
> index) are:
> - CICP/H.273: JVET-AD1003 v2 from
> https://jvet-experts.org/doc_end_user/current_document.php?id=12970
> - H.265: JVET-AF1006 from
> https://jvet-experts.org/doc_end_user/current_document.php?id=13584
> - H.264: JVET-AE1016 from
> https://jvet-experts.org/doc_end_user/current_document.php?id=13269
>
> Given that H.273 v3 got registered for AAP on 2023-07-21 and that the
> H.265 text is clearly from after the last call period of 2023-09-01 to
> 2023-09-28, I would consider them all matching being a pretty good
> indicator that the value 15 got utilized for IPT-C2, and 16+17 for
> YCgCo-R.

Ping for this set.

Jan
Jan Ekström April 2, 2024, 5:58 p.m. UTC | #3
On Mon, Apr 1, 2024 at 2:34 PM Jan Ekström <jeebjp@gmail.com> wrote:
>
> On Fri, Mar 29, 2024 at 8:32 PM Jan Ekström <jeebjp@gmail.com> wrote:
> >
> > On Fri, Mar 29, 2024 at 2:33 AM Jan Ekström <jeebjp@gmail.com> wrote:
> > >
> > > * SMPTE ST 2128 IPT-C2 defines the coefficients utilized in DoVi
> > >   Profile 5. Profile 5 can thus now be represented in VUI as
> > >   {AVCOL_RANGE_JPEG, AVCOL_PRI_BT2020, AVCOL_TRC_SMPTE2084,
> > >    AVCOL_SPC_IPT_C2, AVCHROMA_LOC_LEFT} (although other chroma
> > >   sample locations are allowed). AVCOL_TRC_SMPTE2084 should in
> > >   this case be interpreted as 'PQ with reshaping'.
> > > * YCgCo-Re and YCgCo-Ro define the bitexact YCgCo-R, where the
> > >   number of bits added to a source RGB bit depth is 2 (i.e., even)
> > >   and 1 (i.e., odd), respectively.
> > > ---
> > >  doc/APIchanges      | 4 ++++
> > >  libavutil/pixdesc.c | 3 +++
> > >  libavutil/pixfmt.h  | 3 +++
> > >  libavutil/version.h | 2 +-
> > >  4 files changed, 11 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/doc/APIchanges b/doc/APIchanges
> > > index aa102b4925..296d87d8fb 100644
> > > --- a/doc/APIchanges
> > > +++ b/doc/APIchanges
> > > @@ -2,6 +2,10 @@ The last version increases of all libraries were on 2024-03-07
> > >
> > >  API changes, most recent first:
> > >
> > > +2024-03-27 - xxxxxxxxxx - lavu 59.11.100 - pixfmt.h
> > > +  Add AVCOL_SPC_IPT_C2, AVCOL_SPC_YCGCO_RE and AVCOL_SPC_YCGCO_RO
> > > +  to map new matrix coefficients defined by H.273 v3.
> > > +
> > >  2024-03-27 - xxxxxxxxxx - lavu 59.10.100 - frame.h
> > >    Add AVSideDataDescriptor, enum AVSideDataProps, and
> > >    av_frame_side_data_desc().
> > > diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
> > > index 9c708520b1..1c0bcf2232 100644
> > > --- a/libavutil/pixdesc.c
> > > +++ b/libavutil/pixdesc.c
> > > @@ -2854,6 +2854,9 @@ static const char * const color_space_names[] = {
> > >      [AVCOL_SPC_CHROMA_DERIVED_NCL] = "chroma-derived-nc",
> > >      [AVCOL_SPC_CHROMA_DERIVED_CL] = "chroma-derived-c",
> > >      [AVCOL_SPC_ICTCP] = "ictcp",
> > > +    [AVCOL_SPC_IPT_C2] = "ipt-c2",
> > > +    [AVCOL_SPC_YCGCO_RE] = "ycgco-re",
> > > +    [AVCOL_SPC_YCGCO_RO] = "ycgco-ro",
> > >  };
> > >
> > >  static const char * const chroma_location_names[] = {
> > > diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h
> > > index 4aa20e4e58..430118d3e1 100644
> > > --- a/libavutil/pixfmt.h
> > > +++ b/libavutil/pixfmt.h
> > > @@ -623,6 +623,9 @@ enum AVColorSpace {
> > >      AVCOL_SPC_CHROMA_DERIVED_NCL = 12, ///< Chromaticity-derived non-constant luminance system
> > >      AVCOL_SPC_CHROMA_DERIVED_CL = 13, ///< Chromaticity-derived constant luminance system
> > >      AVCOL_SPC_ICTCP       = 14, ///< ITU-R BT.2100-0, ICtCp
> > > +    AVCOL_SPC_IPT_C2      = 15, ///< SMPTE ST 2128
> > > +    AVCOL_SPC_YCGCO_RE    = 16, ///< YCgCo-R, even addition of bits
> > > +    AVCOL_SPC_YCGCO_RO    = 17, ///< YCgCo-R, odd addition of bits
> > >      AVCOL_SPC_NB                ///< Not part of ABI
> > >  };
> >
> > To aid in review as for whatever reason the 2023-09 H.273 v3 is not
> > yet publicly available (even though H.274 is from the same September
> > period), you can first of all see the summary in
> > https://www.itu.int/itu-t/workprog/wp_item.aspx?isn=18689 .
> >
> > The latest related drafts from JVET-Experts
> > (https://jvet-experts.org/doc_end_user/all_meeting.php being the
> > index) are:
> > - CICP/H.273: JVET-AD1003 v2 from
> > https://jvet-experts.org/doc_end_user/current_document.php?id=12970
> > - H.265: JVET-AF1006 from
> > https://jvet-experts.org/doc_end_user/current_document.php?id=13584
> > - H.264: JVET-AE1016 from
> > https://jvet-experts.org/doc_end_user/current_document.php?id=13269
> >
> > Given that H.273 v3 got registered for AAP on 2023-07-21 and that the
> > H.265 text is clearly from after the last call period of 2023-09-01 to
> > 2023-09-28, I would consider them all matching being a pretty good
> > indicator that the value 15 got utilized for IPT-C2, and 16+17 for
> > YCgCo-R.
>
> Ping for this set.

Got an LGTM from James for the set on IRC, so unless there are
objections I will apply this tomorrow.

Jan
Jan Ekström April 3, 2024, 7:08 p.m. UTC | #4
On Tue, Apr 2, 2024 at 8:58 PM Jan Ekström <jeebjp@gmail.com> wrote:
>
> On Mon, Apr 1, 2024 at 2:34 PM Jan Ekström <jeebjp@gmail.com> wrote:
> >
> > On Fri, Mar 29, 2024 at 8:32 PM Jan Ekström <jeebjp@gmail.com> wrote:
> > >
> > > On Fri, Mar 29, 2024 at 2:33 AM Jan Ekström <jeebjp@gmail.com> wrote:
> > > >
> > > > * SMPTE ST 2128 IPT-C2 defines the coefficients utilized in DoVi
> > > >   Profile 5. Profile 5 can thus now be represented in VUI as
> > > >   {AVCOL_RANGE_JPEG, AVCOL_PRI_BT2020, AVCOL_TRC_SMPTE2084,
> > > >    AVCOL_SPC_IPT_C2, AVCHROMA_LOC_LEFT} (although other chroma
> > > >   sample locations are allowed). AVCOL_TRC_SMPTE2084 should in
> > > >   this case be interpreted as 'PQ with reshaping'.
> > > > * YCgCo-Re and YCgCo-Ro define the bitexact YCgCo-R, where the
> > > >   number of bits added to a source RGB bit depth is 2 (i.e., even)
> > > >   and 1 (i.e., odd), respectively.
> > > > ---
> > > >  doc/APIchanges      | 4 ++++
> > > >  libavutil/pixdesc.c | 3 +++
> > > >  libavutil/pixfmt.h  | 3 +++
> > > >  libavutil/version.h | 2 +-
> > > >  4 files changed, 11 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/doc/APIchanges b/doc/APIchanges
> > > > index aa102b4925..296d87d8fb 100644
> > > > --- a/doc/APIchanges
> > > > +++ b/doc/APIchanges
> > > > @@ -2,6 +2,10 @@ The last version increases of all libraries were on 2024-03-07
> > > >
> > > >  API changes, most recent first:
> > > >
> > > > +2024-03-27 - xxxxxxxxxx - lavu 59.11.100 - pixfmt.h
> > > > +  Add AVCOL_SPC_IPT_C2, AVCOL_SPC_YCGCO_RE and AVCOL_SPC_YCGCO_RO
> > > > +  to map new matrix coefficients defined by H.273 v3.
> > > > +
> > > >  2024-03-27 - xxxxxxxxxx - lavu 59.10.100 - frame.h
> > > >    Add AVSideDataDescriptor, enum AVSideDataProps, and
> > > >    av_frame_side_data_desc().
> > > > diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
> > > > index 9c708520b1..1c0bcf2232 100644
> > > > --- a/libavutil/pixdesc.c
> > > > +++ b/libavutil/pixdesc.c
> > > > @@ -2854,6 +2854,9 @@ static const char * const color_space_names[] = {
> > > >      [AVCOL_SPC_CHROMA_DERIVED_NCL] = "chroma-derived-nc",
> > > >      [AVCOL_SPC_CHROMA_DERIVED_CL] = "chroma-derived-c",
> > > >      [AVCOL_SPC_ICTCP] = "ictcp",
> > > > +    [AVCOL_SPC_IPT_C2] = "ipt-c2",
> > > > +    [AVCOL_SPC_YCGCO_RE] = "ycgco-re",
> > > > +    [AVCOL_SPC_YCGCO_RO] = "ycgco-ro",
> > > >  };
> > > >
> > > >  static const char * const chroma_location_names[] = {
> > > > diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h
> > > > index 4aa20e4e58..430118d3e1 100644
> > > > --- a/libavutil/pixfmt.h
> > > > +++ b/libavutil/pixfmt.h
> > > > @@ -623,6 +623,9 @@ enum AVColorSpace {
> > > >      AVCOL_SPC_CHROMA_DERIVED_NCL = 12, ///< Chromaticity-derived non-constant luminance system
> > > >      AVCOL_SPC_CHROMA_DERIVED_CL = 13, ///< Chromaticity-derived constant luminance system
> > > >      AVCOL_SPC_ICTCP       = 14, ///< ITU-R BT.2100-0, ICtCp
> > > > +    AVCOL_SPC_IPT_C2      = 15, ///< SMPTE ST 2128
> > > > +    AVCOL_SPC_YCGCO_RE    = 16, ///< YCgCo-R, even addition of bits
> > > > +    AVCOL_SPC_YCGCO_RO    = 17, ///< YCgCo-R, odd addition of bits
> > > >      AVCOL_SPC_NB                ///< Not part of ABI
> > > >  };
> > >
> > > To aid in review as for whatever reason the 2023-09 H.273 v3 is not
> > > yet publicly available (even though H.274 is from the same September
> > > period), you can first of all see the summary in
> > > https://www.itu.int/itu-t/workprog/wp_item.aspx?isn=18689 .
> > >
> > > The latest related drafts from JVET-Experts
> > > (https://jvet-experts.org/doc_end_user/all_meeting.php being the
> > > index) are:
> > > - CICP/H.273: JVET-AD1003 v2 from
> > > https://jvet-experts.org/doc_end_user/current_document.php?id=12970
> > > - H.265: JVET-AF1006 from
> > > https://jvet-experts.org/doc_end_user/current_document.php?id=13584
> > > - H.264: JVET-AE1016 from
> > > https://jvet-experts.org/doc_end_user/current_document.php?id=13269
> > >
> > > Given that H.273 v3 got registered for AAP on 2023-07-21 and that the
> > > H.265 text is clearly from after the last call period of 2023-09-01 to
> > > 2023-09-28, I would consider them all matching being a pretty good
> > > indicator that the value 15 got utilized for IPT-C2, and 16+17 for
> > > YCgCo-R.
> >
> > Ping for this set.
>
> Got an LGTM from James for the set on IRC, so unless there are
> objections I will apply this tomorrow.

Applied set as:
29561c8e2d4ccecaa93afcaed73678e3f6011b0a
06c53efd233340762535957ad765ed4d9aafcddd
23d1b50175a6d07a0e2301ead347e4812c8c5dc8
16128f3c5595012719db7ae7851964d5a961c160

Small differences were that avutil got minor bumps so it went from
59.11 to 59.13, and after asking on IRC whether new values for
AVOptions should get a micro bump, I added those to avcodec and
avfilter. Additionally, a slight modification to a comment was made as
other comments also not only mentioned the spec but the format name as
well:

diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h
index 430118d3e1..a7f50e1690 100644
--- a/libavutil/pixfmt.h
+++ b/libavutil/pixfmt.h
@@ -623,7 +623,7 @@ enum AVColorSpace {
     AVCOL_SPC_CHROMA_DERIVED_NCL = 12, ///< Chromaticity-derived
non-constant luminance system
     AVCOL_SPC_CHROMA_DERIVED_CL = 13, ///< Chromaticity-derived
constant luminance system
     AVCOL_SPC_ICTCP       = 14, ///< ITU-R BT.2100-0, ICtCp
-    AVCOL_SPC_IPT_C2      = 15, ///< SMPTE ST 2128
+    AVCOL_SPC_IPT_C2      = 15, ///< SMPTE ST 2128, IPT-C2
     AVCOL_SPC_YCGCO_RE    = 16, ///< YCgCo-R, even addition of bits
     AVCOL_SPC_YCGCO_RO    = 17, ///< YCgCo-R, odd addition of bits
     AVCOL_SPC_NB                ///< Not part of ABI


Jan
diff mbox series

Patch

diff --git a/doc/APIchanges b/doc/APIchanges
index aa102b4925..296d87d8fb 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -2,6 +2,10 @@  The last version increases of all libraries were on 2024-03-07
 
 API changes, most recent first:
 
+2024-03-27 - xxxxxxxxxx - lavu 59.11.100 - pixfmt.h
+  Add AVCOL_SPC_IPT_C2, AVCOL_SPC_YCGCO_RE and AVCOL_SPC_YCGCO_RO
+  to map new matrix coefficients defined by H.273 v3.
+
 2024-03-27 - xxxxxxxxxx - lavu 59.10.100 - frame.h
   Add AVSideDataDescriptor, enum AVSideDataProps, and
   av_frame_side_data_desc().
diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
index 9c708520b1..1c0bcf2232 100644
--- a/libavutil/pixdesc.c
+++ b/libavutil/pixdesc.c
@@ -2854,6 +2854,9 @@  static const char * const color_space_names[] = {
     [AVCOL_SPC_CHROMA_DERIVED_NCL] = "chroma-derived-nc",
     [AVCOL_SPC_CHROMA_DERIVED_CL] = "chroma-derived-c",
     [AVCOL_SPC_ICTCP] = "ictcp",
+    [AVCOL_SPC_IPT_C2] = "ipt-c2",
+    [AVCOL_SPC_YCGCO_RE] = "ycgco-re",
+    [AVCOL_SPC_YCGCO_RO] = "ycgco-ro",
 };
 
 static const char * const chroma_location_names[] = {
diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h
index 4aa20e4e58..430118d3e1 100644
--- a/libavutil/pixfmt.h
+++ b/libavutil/pixfmt.h
@@ -623,6 +623,9 @@  enum AVColorSpace {
     AVCOL_SPC_CHROMA_DERIVED_NCL = 12, ///< Chromaticity-derived non-constant luminance system
     AVCOL_SPC_CHROMA_DERIVED_CL = 13, ///< Chromaticity-derived constant luminance system
     AVCOL_SPC_ICTCP       = 14, ///< ITU-R BT.2100-0, ICtCp
+    AVCOL_SPC_IPT_C2      = 15, ///< SMPTE ST 2128
+    AVCOL_SPC_YCGCO_RE    = 16, ///< YCgCo-R, even addition of bits
+    AVCOL_SPC_YCGCO_RO    = 17, ///< YCgCo-R, odd addition of bits
     AVCOL_SPC_NB                ///< Not part of ABI
 };
 
diff --git a/libavutil/version.h b/libavutil/version.h
index 8774ed4d1a..d0cc34f43a 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -79,7 +79,7 @@ 
  */
 
 #define LIBAVUTIL_VERSION_MAJOR  59
-#define LIBAVUTIL_VERSION_MINOR  10
+#define LIBAVUTIL_VERSION_MINOR  11
 #define LIBAVUTIL_VERSION_MICRO 100
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \