This is an automatic generated email to let you know that the following patch were queued at the http://git.linuxtv.org/cgit.cgi/v4l-utils.git tree:
Subject: v4l2-info.cpp: add function to give pixfmt description Author: Hans Verkuil <hans.verk...@cisco.com> Date: Sat Aug 11 13:30:25 2018 +0200 When syncing from the kernel also generate a v4l2-pix-formats.h header containing all the pixel format descriptions defined in the v4l2-ioctl.c source. Add a pixfmt2s() function to v4l2-info.cpp/h that uses this list to return the pixel format description. Signed-off-by: Hans Verkuil <hans.verk...@cisco.com> Makefile.am | 1 + utils/common/v4l2-info.cpp | 9 +++ utils/common/v4l2-info.h | 3 + utils/common/v4l2-pix-formats.h | 160 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 173 insertions(+) --- http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=07d2bad6f652798d3ec22cb138524e4816de4014 diff --git a/Makefile.am b/Makefile.am index 042da3748ee7..d6b01205c68e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -49,6 +49,7 @@ sync-with-kernel: cp -a $(KERNEL_DIR)/drivers/media/common/v4l2-tpg/v4l2-tpg-colors.c $(top_srcdir)/utils/common cp -a $(KERNEL_DIR)/include/media/tpg/v4l2-tpg* $(top_srcdir)/utils/common patch -p0 <$(top_srcdir)/utils/common/v4l2-tpg.patch + grep V4L2_PIX_FMT.*descr $(KERNEL_DIR)/drivers/media/v4l2-core/v4l2-ioctl.c | perl -pe 's/.*V4L2_PIX_FMT/\tcase V4L2_PIX_FMT/; s/:.*descr = /: return /; s/;.*/;/;' >$(top_srcdir)/utils/common/v4l2-pix-formats.h $(MAKE) -C utils/keytable $@ $(MAKE) -C lib/libdvbv5 $@ diff --git a/utils/common/v4l2-info.cpp b/utils/common/v4l2-info.cpp index ab250cf9d5fa..74d23cb4ac9e 100644 --- a/utils/common/v4l2-info.cpp +++ b/utils/common/v4l2-info.cpp @@ -150,6 +150,15 @@ std::string fcc2s(__u32 val) return s; } +std::string pixfmt2s(__u32 format) +{ + switch (format) { +#include "v4l2-pix-formats.h" + default: + return std::string("Unknown (") + num2s(format) + ")"; + } +} + std::string buftype2s(int type) { switch (type) { diff --git a/utils/common/v4l2-info.h b/utils/common/v4l2-info.h index 3f04530afadf..25c969f152bd 100644 --- a/utils/common/v4l2-info.h +++ b/utils/common/v4l2-info.h @@ -15,6 +15,9 @@ void v4l2_info_capability(const v4l2_capability &cap); /* Return fourcc pixelformat string */ std::string fcc2s(__u32 val); +/* Return the description of the pixel format */ +std::string pixfmt2s(__u32 format); + /* Return buffer type description */ std::string buftype2s(int type); diff --git a/utils/common/v4l2-pix-formats.h b/utils/common/v4l2-pix-formats.h new file mode 100644 index 000000000000..7c623b5e2135 --- /dev/null +++ b/utils/common/v4l2-pix-formats.h @@ -0,0 +1,160 @@ + case V4L2_PIX_FMT_RGB332: return "8-bit RGB 3-3-2"; + case V4L2_PIX_FMT_RGB444: return "16-bit A/XRGB 4-4-4-4"; + case V4L2_PIX_FMT_ARGB444: return "16-bit ARGB 4-4-4-4"; + case V4L2_PIX_FMT_XRGB444: return "16-bit XRGB 4-4-4-4"; + case V4L2_PIX_FMT_RGB555: return "16-bit A/XRGB 1-5-5-5"; + case V4L2_PIX_FMT_ARGB555: return "16-bit ARGB 1-5-5-5"; + case V4L2_PIX_FMT_XRGB555: return "16-bit XRGB 1-5-5-5"; + case V4L2_PIX_FMT_RGB565: return "16-bit RGB 5-6-5"; + case V4L2_PIX_FMT_RGB555X: return "16-bit A/XRGB 1-5-5-5 BE"; + case V4L2_PIX_FMT_ARGB555X: return "16-bit ARGB 1-5-5-5 BE"; + case V4L2_PIX_FMT_XRGB555X: return "16-bit XRGB 1-5-5-5 BE"; + case V4L2_PIX_FMT_RGB565X: return "16-bit RGB 5-6-5 BE"; + case V4L2_PIX_FMT_BGR666: return "18-bit BGRX 6-6-6-14"; + case V4L2_PIX_FMT_BGR24: return "24-bit BGR 8-8-8"; + case V4L2_PIX_FMT_RGB24: return "24-bit RGB 8-8-8"; + case V4L2_PIX_FMT_BGR32: return "32-bit BGRA/X 8-8-8-8"; + case V4L2_PIX_FMT_ABGR32: return "32-bit BGRA 8-8-8-8"; + case V4L2_PIX_FMT_XBGR32: return "32-bit BGRX 8-8-8-8"; + case V4L2_PIX_FMT_RGB32: return "32-bit A/XRGB 8-8-8-8"; + case V4L2_PIX_FMT_ARGB32: return "32-bit ARGB 8-8-8-8"; + case V4L2_PIX_FMT_XRGB32: return "32-bit XRGB 8-8-8-8"; + case V4L2_PIX_FMT_GREY: return "8-bit Greyscale"; + case V4L2_PIX_FMT_Y4: return "4-bit Greyscale"; + case V4L2_PIX_FMT_Y6: return "6-bit Greyscale"; + case V4L2_PIX_FMT_Y10: return "10-bit Greyscale"; + case V4L2_PIX_FMT_Y12: return "12-bit Greyscale"; + case V4L2_PIX_FMT_Y16: return "16-bit Greyscale"; + case V4L2_PIX_FMT_Y16_BE: return "16-bit Greyscale BE"; + case V4L2_PIX_FMT_Y10BPACK: return "10-bit Greyscale (Packed)"; + case V4L2_PIX_FMT_Y10P: return "10-bit Greyscale (MIPI Packed)"; + case V4L2_PIX_FMT_Y8I: return "Interleaved 8-bit Greyscale"; + case V4L2_PIX_FMT_Y12I: return "Interleaved 12-bit Greyscale"; + case V4L2_PIX_FMT_Z16: return "16-bit Depth"; + case V4L2_PIX_FMT_INZI: return "Planar 10:16 Greyscale Depth"; + case V4L2_PIX_FMT_PAL8: return "8-bit Palette"; + case V4L2_PIX_FMT_UV8: return "8-bit Chrominance UV 4-4"; + case V4L2_PIX_FMT_YVU410: return "Planar YVU 4:1:0"; + case V4L2_PIX_FMT_YVU420: return "Planar YVU 4:2:0"; + case V4L2_PIX_FMT_YUYV: return "YUYV 4:2:2"; + case V4L2_PIX_FMT_YYUV: return "YYUV 4:2:2"; + case V4L2_PIX_FMT_YVYU: return "YVYU 4:2:2"; + case V4L2_PIX_FMT_UYVY: return "UYVY 4:2:2"; + case V4L2_PIX_FMT_VYUY: return "VYUY 4:2:2"; + case V4L2_PIX_FMT_YUV422P: return "Planar YUV 4:2:2"; + case V4L2_PIX_FMT_YUV411P: return "Planar YUV 4:1:1"; + case V4L2_PIX_FMT_Y41P: return "YUV 4:1:1 (Packed)"; + case V4L2_PIX_FMT_YUV444: return "16-bit A/XYUV 4-4-4-4"; + case V4L2_PIX_FMT_YUV555: return "16-bit A/XYUV 1-5-5-5"; + case V4L2_PIX_FMT_YUV565: return "16-bit YUV 5-6-5"; + case V4L2_PIX_FMT_YUV32: return "32-bit A/XYUV 8-8-8-8"; + case V4L2_PIX_FMT_YUV410: return "Planar YUV 4:1:0"; + case V4L2_PIX_FMT_YUV420: return "Planar YUV 4:2:0"; + case V4L2_PIX_FMT_HI240: return "8-bit Dithered RGB (BTTV)"; + case V4L2_PIX_FMT_HM12: return "YUV 4:2:0 (16x16 Macroblocks)"; + case V4L2_PIX_FMT_M420: return "YUV 4:2:0 (M420)"; + case V4L2_PIX_FMT_NV12: return "Y/CbCr 4:2:0"; + case V4L2_PIX_FMT_NV21: return "Y/CrCb 4:2:0"; + case V4L2_PIX_FMT_NV16: return "Y/CbCr 4:2:2"; + case V4L2_PIX_FMT_NV61: return "Y/CrCb 4:2:2"; + case V4L2_PIX_FMT_NV24: return "Y/CbCr 4:4:4"; + case V4L2_PIX_FMT_NV42: return "Y/CrCb 4:4:4"; + case V4L2_PIX_FMT_NV12M: return "Y/CbCr 4:2:0 (N-C)"; + case V4L2_PIX_FMT_NV21M: return "Y/CrCb 4:2:0 (N-C)"; + case V4L2_PIX_FMT_NV16M: return "Y/CbCr 4:2:2 (N-C)"; + case V4L2_PIX_FMT_NV61M: return "Y/CrCb 4:2:2 (N-C)"; + case V4L2_PIX_FMT_NV12MT: return "Y/CbCr 4:2:0 (64x32 MB, N-C)"; + case V4L2_PIX_FMT_NV12MT_16X16: return "Y/CbCr 4:2:0 (16x16 MB, N-C)"; + case V4L2_PIX_FMT_YUV420M: return "Planar YUV 4:2:0 (N-C)"; + case V4L2_PIX_FMT_YVU420M: return "Planar YVU 4:2:0 (N-C)"; + case V4L2_PIX_FMT_YUV422M: return "Planar YUV 4:2:2 (N-C)"; + case V4L2_PIX_FMT_YVU422M: return "Planar YVU 4:2:2 (N-C)"; + case V4L2_PIX_FMT_YUV444M: return "Planar YUV 4:4:4 (N-C)"; + case V4L2_PIX_FMT_YVU444M: return "Planar YVU 4:4:4 (N-C)"; + case V4L2_PIX_FMT_SBGGR8: return "8-bit Bayer BGBG/GRGR"; + case V4L2_PIX_FMT_SGBRG8: return "8-bit Bayer GBGB/RGRG"; + case V4L2_PIX_FMT_SGRBG8: return "8-bit Bayer GRGR/BGBG"; + case V4L2_PIX_FMT_SRGGB8: return "8-bit Bayer RGRG/GBGB"; + case V4L2_PIX_FMT_SBGGR10: return "10-bit Bayer BGBG/GRGR"; + case V4L2_PIX_FMT_SGBRG10: return "10-bit Bayer GBGB/RGRG"; + case V4L2_PIX_FMT_SGRBG10: return "10-bit Bayer GRGR/BGBG"; + case V4L2_PIX_FMT_SRGGB10: return "10-bit Bayer RGRG/GBGB"; + case V4L2_PIX_FMT_SBGGR10P: return "10-bit Bayer BGBG/GRGR Packed"; + case V4L2_PIX_FMT_SGBRG10P: return "10-bit Bayer GBGB/RGRG Packed"; + case V4L2_PIX_FMT_SGRBG10P: return "10-bit Bayer GRGR/BGBG Packed"; + case V4L2_PIX_FMT_SRGGB10P: return "10-bit Bayer RGRG/GBGB Packed"; + case V4L2_PIX_FMT_IPU3_SBGGR10: return "10-bit bayer BGGR IPU3 Packed"; + case V4L2_PIX_FMT_IPU3_SGBRG10: return "10-bit bayer GBRG IPU3 Packed"; + case V4L2_PIX_FMT_IPU3_SGRBG10: return "10-bit bayer GRBG IPU3 Packed"; + case V4L2_PIX_FMT_IPU3_SRGGB10: return "10-bit bayer RGGB IPU3 Packed"; + case V4L2_PIX_FMT_SBGGR10ALAW8: return "8-bit Bayer BGBG/GRGR (A-law)"; + case V4L2_PIX_FMT_SGBRG10ALAW8: return "8-bit Bayer GBGB/RGRG (A-law)"; + case V4L2_PIX_FMT_SGRBG10ALAW8: return "8-bit Bayer GRGR/BGBG (A-law)"; + case V4L2_PIX_FMT_SRGGB10ALAW8: return "8-bit Bayer RGRG/GBGB (A-law)"; + case V4L2_PIX_FMT_SBGGR10DPCM8: return "8-bit Bayer BGBG/GRGR (DPCM)"; + case V4L2_PIX_FMT_SGBRG10DPCM8: return "8-bit Bayer GBGB/RGRG (DPCM)"; + case V4L2_PIX_FMT_SGRBG10DPCM8: return "8-bit Bayer GRGR/BGBG (DPCM)"; + case V4L2_PIX_FMT_SRGGB10DPCM8: return "8-bit Bayer RGRG/GBGB (DPCM)"; + case V4L2_PIX_FMT_SBGGR12: return "12-bit Bayer BGBG/GRGR"; + case V4L2_PIX_FMT_SGBRG12: return "12-bit Bayer GBGB/RGRG"; + case V4L2_PIX_FMT_SGRBG12: return "12-bit Bayer GRGR/BGBG"; + case V4L2_PIX_FMT_SRGGB12: return "12-bit Bayer RGRG/GBGB"; + case V4L2_PIX_FMT_SBGGR12P: return "12-bit Bayer BGBG/GRGR Packed"; + case V4L2_PIX_FMT_SGBRG12P: return "12-bit Bayer GBGB/RGRG Packed"; + case V4L2_PIX_FMT_SGRBG12P: return "12-bit Bayer GRGR/BGBG Packed"; + case V4L2_PIX_FMT_SRGGB12P: return "12-bit Bayer RGRG/GBGB Packed"; + case V4L2_PIX_FMT_SBGGR14P: return "14-bit Bayer BGBG/GRGR Packed"; + case V4L2_PIX_FMT_SGBRG14P: return "14-bit Bayer GBGB/RGRG Packed"; + case V4L2_PIX_FMT_SGRBG14P: return "14-bit Bayer GRGR/BGBG Packed"; + case V4L2_PIX_FMT_SRGGB14P: return "14-bit Bayer RGRG/GBGB Packed"; + case V4L2_PIX_FMT_SBGGR16: return "16-bit Bayer BGBG/GRGR"; + case V4L2_PIX_FMT_SGBRG16: return "16-bit Bayer GBGB/RGRG"; + case V4L2_PIX_FMT_SGRBG16: return "16-bit Bayer GRGR/BGBG"; + case V4L2_PIX_FMT_SRGGB16: return "16-bit Bayer RGRG/GBGB"; + case V4L2_PIX_FMT_SN9C20X_I420: return "GSPCA SN9C20X I420"; + case V4L2_PIX_FMT_SPCA501: return "GSPCA SPCA501"; + case V4L2_PIX_FMT_SPCA505: return "GSPCA SPCA505"; + case V4L2_PIX_FMT_SPCA508: return "GSPCA SPCA508"; + case V4L2_PIX_FMT_STV0680: return "GSPCA STV0680"; + case V4L2_PIX_FMT_TM6000: return "A/V + VBI Mux Packet"; + case V4L2_PIX_FMT_CIT_YYVYUY: return "GSPCA CIT YYVYUY"; + case V4L2_PIX_FMT_KONICA420: return "GSPCA KONICA420"; + case V4L2_PIX_FMT_HSV24: return "24-bit HSV 8-8-8"; + case V4L2_PIX_FMT_HSV32: return "32-bit XHSV 8-8-8-8"; + case V4L2_PIX_FMT_MJPEG: return "Motion-JPEG"; + case V4L2_PIX_FMT_JPEG: return "JFIF JPEG"; + case V4L2_PIX_FMT_DV: return "1394"; + case V4L2_PIX_FMT_MPEG: return "MPEG-1/2/4"; + case V4L2_PIX_FMT_H264: return "H.264"; + case V4L2_PIX_FMT_H264_NO_SC: return "H.264 (No Start Codes)"; + case V4L2_PIX_FMT_H264_MVC: return "H.264 MVC"; + case V4L2_PIX_FMT_H263: return "H.263"; + case V4L2_PIX_FMT_MPEG1: return "MPEG-1 ES"; + case V4L2_PIX_FMT_MPEG2: return "MPEG-2 ES"; + case V4L2_PIX_FMT_MPEG4: return "MPEG-4 part 2 ES"; + case V4L2_PIX_FMT_XVID: return "Xvid"; + case V4L2_PIX_FMT_VC1_ANNEX_G: return "VC-1 (SMPTE 412M Annex G)"; + case V4L2_PIX_FMT_VC1_ANNEX_L: return "VC-1 (SMPTE 412M Annex L)"; + case V4L2_PIX_FMT_VP8: return "VP8"; + case V4L2_PIX_FMT_VP9: return "VP9"; + case V4L2_PIX_FMT_HEVC: return "HEVC"; + case V4L2_PIX_FMT_FWHT: return "FWHT"; + case V4L2_PIX_FMT_CPIA1: return "GSPCA CPiA YUV"; + case V4L2_PIX_FMT_WNVA: return "WNVA"; + case V4L2_PIX_FMT_SN9C10X: return "GSPCA SN9C10X"; + case V4L2_PIX_FMT_PWC1: return "Raw Philips Webcam Type (Old)"; + case V4L2_PIX_FMT_PWC2: return "Raw Philips Webcam Type (New)"; + case V4L2_PIX_FMT_ET61X251: return "GSPCA ET61X251"; + case V4L2_PIX_FMT_SPCA561: return "GSPCA SPCA561"; + case V4L2_PIX_FMT_PAC207: return "GSPCA PAC207"; + case V4L2_PIX_FMT_MR97310A: return "GSPCA MR97310A"; + case V4L2_PIX_FMT_JL2005BCD: return "GSPCA JL2005BCD"; + case V4L2_PIX_FMT_SN9C2028: return "GSPCA SN9C2028"; + case V4L2_PIX_FMT_SQ905C: return "GSPCA SQ905C"; + case V4L2_PIX_FMT_PJPG: return "GSPCA PJPG"; + case V4L2_PIX_FMT_OV511: return "GSPCA OV511"; + case V4L2_PIX_FMT_OV518: return "GSPCA OV518"; + case V4L2_PIX_FMT_JPGL: return "JPEG Lite"; + case V4L2_PIX_FMT_SE401: return "GSPCA SE401"; + case V4L2_PIX_FMT_S5C_UYVY_JPG: return "S5C73MX interleaved UYVY/JPEG"; + case V4L2_PIX_FMT_MT21C: return "Mediatek Compressed Format"; _______________________________________________ linuxtv-commits mailing list linuxtv-commits@linuxtv.org https://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits