This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit 30e07c1c74b2622da732d36e37feabd88a64ba5b
Author:     Kacper Michajłow <[email protected]>
AuthorDate: Sat Oct 24 05:05:34 2026 +0200
Commit:     Kacper Michajłow <[email protected]>
CommitDate: Wed Oct 28 19:22:28 2026 +0000

    avutil/csp: describe SMPTE ST 428-1 primaries as CIE 1931 XYZ
    
    H.273 value 10, SMPTE ST 428-1 (CIE 1931 XYZ), lists red (X) at (1, 0),
    green (Y) at (0, 1), blue (Z) at (0, 0) and the centre white at
    (1/3, 1/3).
    
    The table had the monochromatic primaries of the CIE 1931 RGB space
    instead.
    
    Note that ST 428-1 only defines the encoding of the XYZ tristimulus
    values and the transfer function. XYZ is absolute, so nothing in it
    names the white the content was mastered to, and real DCDM content does
    not have an equal-energy white. The standard reserves its headroom for
    white points such as D55, D61 and D65, and the reference projector of RP
    431-2 has DCI white. However, H.273 describes both the primaries (10)
    (they shouldn't have) and the transfer (17) of such content, so follow
    it here. For decoding, the mastering primaries can be given in place of
    value 10 (e.g. AVCOL_PRI_SMPTE431 for a DCDM) with the ST 428-1 transfer
    kept.
    
    Signed-off-by: Kacper Michajłow <[email protected]>
---
 libavutil/csp.c    | 2 +-
 tests/ref/fate/csp | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/libavutil/csp.c b/libavutil/csp.c
index 8ff53cff5f..7ebbcc5856 100644
--- a/libavutil/csp.c
+++ b/libavutil/csp.c
@@ -79,7 +79,7 @@ static const AVColorPrimariesDesc 
color_primaries[AVCOL_PRI_NB] = {
     [AVCOL_PRI_BT470BG]   = { WP_D65, { { AVR(0.640), AVR(0.330) }, { 
AVR(0.290), AVR(0.600) }, { AVR(0.150), AVR(0.060) } } },
     [AVCOL_PRI_SMPTE170M] = { WP_D65, { { AVR(0.630), AVR(0.340) }, { 
AVR(0.310), AVR(0.595) }, { AVR(0.155), AVR(0.070) } } },
     [AVCOL_PRI_SMPTE240M] = { WP_D65, { { AVR(0.630), AVR(0.340) }, { 
AVR(0.310), AVR(0.595) }, { AVR(0.155), AVR(0.070) } } },
-    [AVCOL_PRI_SMPTE428]  = { WP_E,   { { AVR(0.735), AVR(0.265) }, { 
AVR(0.274), AVR(0.718) }, { AVR(0.167), AVR(0.009) } } },
+    [AVCOL_PRI_SMPTE428]  = { WP_E,   { { AVR(1.000), AVR(0.000) }, { 
AVR(0.000), AVR(1.000) }, { AVR(0.000), AVR(0.000) } } },
     [AVCOL_PRI_SMPTE431]  = { WP_DCI, { { AVR(0.680), AVR(0.320) }, { 
AVR(0.265), AVR(0.690) }, { AVR(0.150), AVR(0.060) } } },
     [AVCOL_PRI_SMPTE432]  = { WP_D65, { { AVR(0.680), AVR(0.320) }, { 
AVR(0.265), AVR(0.690) }, { AVR(0.150), AVR(0.060) } } },
     [AVCOL_PRI_FILM]      = { WP_C,   { { AVR(0.681), AVR(0.319) }, { 
AVR(0.243), AVR(0.692) }, { AVR(0.145), AVR(0.049) } } },
diff --git a/tests/ref/fate/csp b/tests/ref/fate/csp
index bc36bc66ba..ff04a5f849 100644
--- a/tests/ref/fate/csp
+++ b/tests/ref/fate/csp
@@ -67,9 +67,9 @@ prm=bt2020           ->
   round-trip id=bt2020           desc=OK
 prm=smpte428         ->
   wp =(1/3, 1/3)
-  r  =(73500/100000, 26500/100000)
-  g  =(27400/100000, 71800/100000)
-  b  =(16700/100000, 900/100000)
+  r  =(100000/100000, 0/100000)
+  g  =(0/100000, 100000/100000)
+  b  =(0/100000, 0/100000)
   round-trip id=smpte428         desc=OK
 prm=smpte431         ->
   wp =(31400/100000, 35100/100000)

-- 
To stop receiving notification emails like this one, please contact
[email protected].
_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to