@@ -1551,6 +1551,100 @@ int64_t video_get_csi_link_freq(const struct device *dev, uint8_t bpp, uint8_t l
1551
1551
*/
1552
1552
#define VIDEO_PIX_FMT_XYUV32 VIDEO_FOURCC('X', 'Y', 'U', 'V')
1553
1553
1554
+ /**
1555
+ * Planar formats
1556
+ */
1557
+ /**
1558
+ * CbCr(UV) plane has same width as Y plane however half height
1559
+ *
1560
+ * @code{.unparsed}
1561
+ * | Yyyyyyyy Yyyyyyyy | Yyyyyyyy Yyyyyyyy |
1562
+ * | Yyyyyyyy Yyyyyyyy | Yyyyyyyy Yyyyyyyy |
1563
+ * | ... |
1564
+ * | Uuuuuuuu Vvvvvvvv | Uuuuuuuu Vvvvvvvv |
1565
+ * | Uuuuuuuu Vvvvvvvv | Uuuuuuuu Vvvvvvvv |
1566
+ * | ... |
1567
+ * @endcode
1568
+ */
1569
+ #define VIDEO_PIX_FMT_NV12 VIDEO_FOURCC('N', 'V', '1', '2')
1570
+
1571
+ /**
1572
+ * CrCb(VU) plane has same width as Y plane however half height
1573
+ *
1574
+ * @code{.unparsed}
1575
+ * | Yyyyyyyy Yyyyyyyy | Yyyyyyyy Yyyyyyyy |
1576
+ * | Yyyyyyyy Yyyyyyyy | Yyyyyyyy Yyyyyyyy |
1577
+ * | ... |
1578
+ * | Vvvvvvvv Uuuuuuuu | Vvvvvvvv Uuuuuuuu |
1579
+ * | Vvvvvvvv Uuuuuuuu | Vvvvvvvv Uuuuuuuu |
1580
+ * | ... |
1581
+ * @endcode
1582
+ */
1583
+ #define VIDEO_PIX_FMT_NV21 VIDEO_FOURCC('N', 'V', '2', '1')
1584
+
1585
+ /**
1586
+ * CbCr(UV) plane has same width and height as Y plane
1587
+ *
1588
+ * @code{.unparsed}
1589
+ * | Yyyyyyyy Yyyyyyyy | Yyyyyyyy Yyyyyyyy |
1590
+ * | Yyyyyyyy Yyyyyyyy | Yyyyyyyy Yyyyyyyy |
1591
+ * | ... |
1592
+ * | Uuuuuuuu Vvvvvvvv | Uuuuuuuu Vvvvvvvv |
1593
+ * | Uuuuuuuu Vvvvvvvv | Uuuuuuuu Vvvvvvvv |
1594
+ * | ... |
1595
+ * @endcode
1596
+ */
1597
+ #define VIDEO_PIX_FMT_NV16 VIDEO_FOURCC('N', 'V', '1', '6')
1598
+
1599
+ /**
1600
+ * CrCb(VU) plane has same width and height as Y plane
1601
+ *
1602
+ * @code{.unparsed}
1603
+ * | Yyyyyyyy Yyyyyyyy | Yyyyyyyy Yyyyyyyy |
1604
+ * | Yyyyyyyy Yyyyyyyy | Yyyyyyyy Yyyyyyyy |
1605
+ * | ... |
1606
+ * | Vvvvvvvv Uuuuuuuu | Vvvvvvvv Uuuuuuuu |
1607
+ * | Vvvvvvvv Uuuuuuuu | Vvvvvvvv Uuuuuuuu |
1608
+ * | ... |
1609
+ * @endcode
1610
+ */
1611
+
1612
+ #define VIDEO_PIX_FMT_NV61 VIDEO_FOURCC('N', 'V', '6', '1')
1613
+
1614
+ /**
1615
+ * Cb(U) and Cr(V) planes have half width and half height as Y plane
1616
+ *
1617
+ * @code{.unparsed}
1618
+ * | Yyyyyyyy Yyyyyyyy | Yyyyyyyy Yyyyyyyy |
1619
+ * | Yyyyyyyy Yyyyyyyy | Yyyyyyyy Yyyyyyyy |
1620
+ * | ... |
1621
+ * | Uuuuuuuu Uuuuuuuu | Uuuuuuuu Uuuuuuuu |
1622
+ * | Uuuuuuuu Uuuuuuuu | Uuuuuuuu Uuuuuuuu |
1623
+ * | ... |
1624
+ * | Vvvvvvvv Vvvvvvvv | Vvvvvvvv Vvvvvvvv |
1625
+ * | Vvvvvvvv Vvvvvvvv | Vvvvvvvv Vvvvvvvv |
1626
+ * | ... |
1627
+ * @endcode
1628
+ */
1629
+ #define VIDEO_PIX_FMT_YUV420 VIDEO_FOURCC('Y', 'U', '1', '2')
1630
+
1631
+ /**
1632
+ * Cb(U) and Cr(V) planes have half width and half height as Y plane
1633
+ *
1634
+ * @code{.unparsed}
1635
+ * | Yyyyyyyy Yyyyyyyy | Yyyyyyyy Yyyyyyyy |
1636
+ * | Yyyyyyyy Yyyyyyyy | Yyyyyyyy Yyyyyyyy |
1637
+ * | ... |
1638
+ * | Vvvvvvvv Vvvvvvvv | Vvvvvvvv Vvvvvvvv |
1639
+ * | Vvvvvvvv Vvvvvvvv | Vvvvvvvv Vvvvvvvv |
1640
+ * | ... |
1641
+ * | Uuuuuuuu Uuuuuuuu | Uuuuuuuu Uuuuuuuu |
1642
+ * | Uuuuuuuu Uuuuuuuu | Uuuuuuuu Uuuuuuuu |
1643
+ * | ... |
1644
+ * @endcode
1645
+ */
1646
+ #define VIDEO_PIX_FMT_YVU420 VIDEO_FOURCC('Y', 'V', '1', '2')
1647
+
1554
1648
/**
1555
1649
* @}
1556
1650
*/
@@ -1597,6 +1691,10 @@ static inline unsigned int video_bits_per_pixel(uint32_t pixfmt)
1597
1691
case VIDEO_PIX_FMT_SGRBG12P :
1598
1692
case VIDEO_PIX_FMT_SRGGB12P :
1599
1693
case VIDEO_PIX_FMT_Y12P :
1694
+ case VIDEO_PIX_FMT_NV12 :
1695
+ case VIDEO_PIX_FMT_NV21 :
1696
+ case VIDEO_PIX_FMT_YUV420 :
1697
+ case VIDEO_PIX_FMT_YVU420 :
1600
1698
return 12 ;
1601
1699
case VIDEO_PIX_FMT_SBGGR14P :
1602
1700
case VIDEO_PIX_FMT_SGBRG14P :
@@ -1629,6 +1727,8 @@ static inline unsigned int video_bits_per_pixel(uint32_t pixfmt)
1629
1727
case VIDEO_PIX_FMT_Y12 :
1630
1728
case VIDEO_PIX_FMT_Y14 :
1631
1729
case VIDEO_PIX_FMT_Y16 :
1730
+ case VIDEO_PIX_FMT_NV16 :
1731
+ case VIDEO_PIX_FMT_NV61 :
1632
1732
return 16 ;
1633
1733
case VIDEO_PIX_FMT_BGR24 :
1634
1734
case VIDEO_PIX_FMT_RGB24 :
0 commit comments