summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux/drivers/media/video/tuner-types.c1
-rw-r--r--linux/include/linux/videodev2.h2
-rw-r--r--v4l2-apps/util/v4l2-ctl.cpp28
3 files changed, 29 insertions, 2 deletions
diff --git a/linux/drivers/media/video/tuner-types.c b/linux/drivers/media/video/tuner-types.c
index 31de9c872..357098c17 100644
--- a/linux/drivers/media/video/tuner-types.c
+++ b/linux/drivers/media/video/tuner-types.c
@@ -1094,7 +1094,6 @@ static struct tuner_params tuner_samsung_tcpn_2121p30a_params[] = {
.type = TUNER_PARAM_TYPE_NTSC,
.ranges = tuner_samsung_tcpn_2121p30a_ntsc_ranges,
.count = ARRAY_SIZE(tuner_samsung_tcpn_2121p30a_ntsc_ranges),
- .has_tda9887 = 1,
},
};
diff --git a/linux/include/linux/videodev2.h b/linux/include/linux/videodev2.h
index f886a85ac..bd484d60a 100644
--- a/linux/include/linux/videodev2.h
+++ b/linux/include/linux/videodev2.h
@@ -243,7 +243,7 @@ struct v4l2_pix_format
#define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y','U','1','2') /* 12 YUV 4:2:0 */
#define V4L2_PIX_FMT_YYUV v4l2_fourcc('Y','Y','U','V') /* 16 YUV 4:2:2 */
#define V4L2_PIX_FMT_HI240 v4l2_fourcc('H','I','2','4') /* 8 8-bit color */
-#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H','M','1','2') /* 8 YUV 4:1:1 16x16 macroblocks */
+#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H','M','1','2') /* 8 YUV 4:2:0 16x16 macroblocks */
/* see http://www.siliconimaging.com/RGB%20Bayer.htm */
#define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B','A','8','1') /* 8 BGBG.. GRGR.. */
diff --git a/v4l2-apps/util/v4l2-ctl.cpp b/v4l2-apps/util/v4l2-ctl.cpp
index df886581d..403bda79d 100644
--- a/v4l2-apps/util/v4l2-ctl.cpp
+++ b/v4l2-apps/util/v4l2-ctl.cpp
@@ -93,6 +93,7 @@ enum Option {
OptStreamOff,
OptStreamOn,
OptListStandards,
+ OptListFormats,
OptLogStatus,
OptVerbose,
OptGetVideoOutFormat,
@@ -169,6 +170,7 @@ static struct option long_options[] = {
{"streamoff", no_argument, 0, OptStreamOff},
{"streamon", no_argument, 0, OptStreamOn},
{"list-standards", no_argument, 0, OptListStandards},
+ {"list-formats", no_argument, 0, OptListFormats},
{"get-standard", no_argument, 0, OptGetStandard},
{"set-standard", required_argument, 0, OptSetStandard},
{"info", no_argument, 0, OptGetDriverInfo},
@@ -245,6 +247,7 @@ static void usage(void)
printf(" -t, --set-tuner=<mode>\n");
printf(" set the audio mode of the tuner [VIDIOC_S_TUNER]\n");
printf(" Possible values: 0 (mono), 1 (stereo), 2 (lang2), 3 (lang1), 4 (both)\n");
+ printf(" --list-formats display supported video formats [VIDIOC_ENUM_FMT]\n");
printf(" -V, --get-fmt-video\n");
printf(" query the video capture format [VIDIOC_G_FMT]\n");
printf(" -v, --set-fmt-video=width=<x>,height=<y>\n");
@@ -641,6 +644,24 @@ static int printfmt(struct v4l2_format vfmt)
return 0;
}
+static void print_video_formats(int fd, enum v4l2_buf_type type)
+{
+ struct v4l2_fmtdesc fmt;
+
+ fmt.index = 0;
+ fmt.type = type;
+ while (ioctl(fd, VIDIOC_ENUM_FMT, &fmt) >= 0) {
+ printf("\tType : %s\n", buftype2s(type).c_str());
+ printf("\tPixelformat : %s", fcc2s(fmt.pixelformat).c_str());
+ if (fmt.flags)
+ printf(" (compressed)");
+ printf("\n");
+ printf("\tName : %s\n", fmt.description);
+ printf("\n");
+ fmt.index++;
+ }
+}
+
static char *pts_to_string(char *str, unsigned long pts)
{
static char buf[256];
@@ -1774,6 +1795,13 @@ int main(int argc, char **argv)
}
}
+ if (options[OptListFormats]) {
+ printf("ioctl: VIDIOC_ENUM_FMT\n");
+ print_video_formats(fd, V4L2_BUF_TYPE_VIDEO_CAPTURE);
+ print_video_formats(fd, V4L2_BUF_TYPE_VIDEO_OUTPUT);
+ print_video_formats(fd, V4L2_BUF_TYPE_VIDEO_OVERLAY);
+ }
+
if (options[OptGetSlicedVbiCap]) {
struct v4l2_sliced_vbi_cap cap;