Author: michael
Date: Wed Jul 29 00:03:21 2026
New Revision: 696
Log:
Add P010/P016/P210/P216 semi-planar YUV FourCCs
Microsoft defines these as a plane of Y samples followed by a plane of
interleaved Cb,Cr sample pairs, all 16bit words, the 10bit variants leaving
their 6 least significant bits 0:
https://learn.microsoft.com/en-us/windows/win32/medfound/10-bit-and-16-bit-…
DirectShow capture devices advertise P010, so nut needs a name for it
before it can be stored.
Modified:
docs/nut4cc.txt
Modified: docs/nut4cc.txt
==============================================================================
--- docs/nut4cc.txt Fri Nov 6 23:22:24 2020 (r695)
+++ docs/nut4cc.txt Wed Jul 29 00:03:21 2026 (r696)
@@ -143,6 +143,18 @@ PAL[2] 2bpp indexes (ordered from
PAL[4] 4bpp indexes (ordered from the msb to the lsb in each byte), followed by a up to 16 entry table of 8:8:8:8 BGRA entries [NOT in AVI]
PAL[8] 8bpp indexes (ordered from the msb to the lsb in each byte), followed by a up to 256 entry table of 8:8:8:8 BGRA entries [NOT in AVI]
+Semi-planar YUV: a plane of Y samples followed by a plane of interleaved
+Cb,Cr sample pairs, each sample a 16bit word. FourCC and sample layout are
+Microsoft's, see
+https://learn.microsoft.com/en-us/windows/win32/medfound/10-bit-and-16-bit-yuv-video-formats
+but lines and planes follow each other without the padding their surface
+definition permits.
+
+P010 Semi-planar YUV 4:2:0, 15bpp, 6 unused LSB per 16bit value, little-endian [NOT in AVI]
+P016 Semi-planar YUV 4:2:0, 24bpp, little-endian [NOT in AVI]
+P210 Semi-planar YUV 4:2:2, 20bpp, 6 unused LSB per 16bit value, little-endian [NOT in AVI]
+P216 Semi-planar YUV 4:2:2, 32bpp, little-endian [NOT in AVI]
+
Since many exotic planar YUVA pixel formats are not contemplated by
the AVI/QuickTime FourCC lists, the following scheme is adopted for
representing them.