@@ -1551,6 +1551,128 @@ 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
+ * CbCr(UV) plane has same width and height as Y plane
1616
+ *
1617
+ * @code{.unparsed}
1618
+ * | Yyyyyyyy Yyyyyyyy | Yyyyyyyy Yyyyyyyy |
1619
+ * | Yyyyyyyy Yyyyyyyy | Yyyyyyyy Yyyyyyyy |
1620
+ * | ... |
1621
+ * | Uuuuuuuu Vvvvvvvv | Uuuuuuuu Vvvvvvvv |
1622
+ * | Uuuuuuuu Vvvvvvvv | Uuuuuuuu Vvvvvvvv |
1623
+ * | ... |
1624
+ * @endcode
1625
+ */
1626
+ #define VIDEO_PIX_FMT_NV24 VIDEO_FOURCC('N', 'V', '2', '4')
1627
+
1628
+ /**
1629
+ * CrCb(VU) plane has same width and height as Y plane
1630
+ *
1631
+ * @code{.unparsed}
1632
+ * | Yyyyyyyy Yyyyyyyy | Yyyyyyyy Yyyyyyyy |
1633
+ * | Yyyyyyyy Yyyyyyyy | Yyyyyyyy Yyyyyyyy |
1634
+ * | ... |
1635
+ * | Vvvvvvvv Uuuuuuuu | Vvvvvvvv Uuuuuuuu |
1636
+ * | Vvvvvvvv Uuuuuuuu | Vvvvvvvv Uuuuuuuu |
1637
+ * | ... |
1638
+ * @endcode
1639
+ */
1640
+ #define VIDEO_PIX_FMT_NV42 VIDEO_FOURCC('N', 'V', '4', '2')
1641
+
1642
+ /**
1643
+ * Cb(U) and Cr(V) planes have half width and half height as Y plane
1644
+ *
1645
+ * @code{.unparsed}
1646
+ * | Yyyyyyyy Yyyyyyyy | Yyyyyyyy Yyyyyyyy |
1647
+ * | Yyyyyyyy Yyyyyyyy | Yyyyyyyy Yyyyyyyy |
1648
+ * | ... |
1649
+ * | Uuuuuuuu Uuuuuuuu | Uuuuuuuu Uuuuuuuu |
1650
+ * | Uuuuuuuu Uuuuuuuu | Uuuuuuuu Uuuuuuuu |
1651
+ * | ... |
1652
+ * | Vvvvvvvv Vvvvvvvv | Vvvvvvvv Vvvvvvvv |
1653
+ * | Vvvvvvvv Vvvvvvvv | Vvvvvvvv Vvvvvvvv |
1654
+ * | ... |
1655
+ * @endcode
1656
+ */
1657
+ #define VIDEO_PIX_FMT_YUV420 VIDEO_FOURCC('Y', 'U', '1', '2')
1658
+
1659
+ /**
1660
+ * Cb(U) and Cr(V) planes have half width and half height as Y plane
1661
+ *
1662
+ * @code{.unparsed}
1663
+ * | Yyyyyyyy Yyyyyyyy | Yyyyyyyy Yyyyyyyy |
1664
+ * | Yyyyyyyy Yyyyyyyy | Yyyyyyyy Yyyyyyyy |
1665
+ * | ... |
1666
+ * | Vvvvvvvv Vvvvvvvv | Vvvvvvvv Vvvvvvvv |
1667
+ * | Vvvvvvvv Vvvvvvvv | Vvvvvvvv Vvvvvvvv |
1668
+ * | ... |
1669
+ * | Uuuuuuuu Uuuuuuuu | Uuuuuuuu Uuuuuuuu |
1670
+ * | Uuuuuuuu Uuuuuuuu | Uuuuuuuu Uuuuuuuu |
1671
+ * | ... |
1672
+ * @endcode
1673
+ */
1674
+ #define VIDEO_PIX_FMT_YVU420 VIDEO_FOURCC('Y', 'V', '1', '2')
1675
+
1554
1676
/**
1555
1677
* @}
1556
1678
*/
@@ -1597,6 +1719,10 @@ static inline unsigned int video_bits_per_pixel(uint32_t pixfmt)
1597
1719
case VIDEO_PIX_FMT_SGRBG12P :
1598
1720
case VIDEO_PIX_FMT_SRGGB12P :
1599
1721
case VIDEO_PIX_FMT_Y12P :
1722
+ case VIDEO_PIX_FMT_NV12 :
1723
+ case VIDEO_PIX_FMT_NV21 :
1724
+ case VIDEO_PIX_FMT_YUV420 :
1725
+ case VIDEO_PIX_FMT_YVU420 :
1600
1726
return 12 ;
1601
1727
case VIDEO_PIX_FMT_SBGGR14P :
1602
1728
case VIDEO_PIX_FMT_SGBRG14P :
@@ -1629,9 +1755,13 @@ static inline unsigned int video_bits_per_pixel(uint32_t pixfmt)
1629
1755
case VIDEO_PIX_FMT_Y12 :
1630
1756
case VIDEO_PIX_FMT_Y14 :
1631
1757
case VIDEO_PIX_FMT_Y16 :
1758
+ case VIDEO_PIX_FMT_NV16 :
1759
+ case VIDEO_PIX_FMT_NV61 :
1632
1760
return 16 ;
1633
1761
case VIDEO_PIX_FMT_BGR24 :
1634
1762
case VIDEO_PIX_FMT_RGB24 :
1763
+ case VIDEO_PIX_FMT_NV24 :
1764
+ case VIDEO_PIX_FMT_NV42 :
1635
1765
return 24 ;
1636
1766
case VIDEO_PIX_FMT_XRGB32 :
1637
1767
case VIDEO_PIX_FMT_XYUV32 :
0 commit comments