From dfd619eb2e3415681d726f749984ab5ecf355736 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Thu, 2 Jan 2014 15:57:06 +0000 Subject: [PATCH 147/174] V4L2: Correct flag settings for compressed formats Set flags field correctly on enum_fmt_vid_cap for compressed image formats. Signed-off-by: Dave Stevenson --- drivers/media/platform/bcm2835/bcm2835-camera.c | 9 +++++++++ drivers/media/platform/bcm2835/mmal-common.h | 1 + 2 files changed, 10 insertions(+) --- a/drivers/media/platform/bcm2835/bcm2835-camera.c +++ b/drivers/media/platform/bcm2835/bcm2835-camera.c @@ -69,6 +69,7 @@ static struct mmal_fmt formats[] = { { .name = "4:2:0, packed YUV", .fourcc = V4L2_PIX_FMT_YUV420, + .flags = 0, .mmal = MMAL_ENCODING_I420, .depth = 12, .mmal_component = MMAL_COMPONENT_CAMERA, @@ -76,6 +77,7 @@ static struct mmal_fmt formats[] = { { .name = "4:2:2, packed, YUYV", .fourcc = V4L2_PIX_FMT_YUYV, + .flags = 0, .mmal = MMAL_ENCODING_YUYV, .depth = 16, .mmal_component = MMAL_COMPONENT_CAMERA, @@ -83,6 +85,7 @@ static struct mmal_fmt formats[] = { { .name = "RGB24 (BE)", .fourcc = V4L2_PIX_FMT_BGR24, + .flags = 0, .mmal = MMAL_ENCODING_BGR24, .depth = 24, .mmal_component = MMAL_COMPONENT_CAMERA, @@ -90,6 +93,7 @@ static struct mmal_fmt formats[] = { { .name = "JPEG", .fourcc = V4L2_PIX_FMT_JPEG, + .flags = V4L2_FMT_FLAG_COMPRESSED, .mmal = MMAL_ENCODING_JPEG, .depth = 8, .mmal_component = MMAL_COMPONENT_IMAGE_ENCODE, @@ -97,6 +101,7 @@ static struct mmal_fmt formats[] = { { .name = "H264", .fourcc = V4L2_PIX_FMT_H264, + .flags = V4L2_FMT_FLAG_COMPRESSED, .mmal = MMAL_ENCODING_H264, .depth = 8, .mmal_component = MMAL_COMPONENT_VIDEO_ENCODE, @@ -104,6 +109,7 @@ static struct mmal_fmt formats[] = { { .name = "MJPEG", .fourcc = V4L2_PIX_FMT_MJPEG, + .flags = V4L2_FMT_FLAG_COMPRESSED, .mmal = MMAL_ENCODING_MJPEG, .depth = 8, .mmal_component = MMAL_COMPONENT_VIDEO_ENCODE, @@ -555,6 +561,7 @@ static int vidioc_enum_fmt_vid_overlay(s strlcpy(f->description, fmt->name, sizeof(f->description)); f->pixelformat = fmt->fourcc; + f->flags = fmt->flags; return 0; } @@ -750,6 +757,8 @@ static int vidioc_enum_fmt_vid_cap(struc strlcpy(f->description, fmt->name, sizeof(f->description)); f->pixelformat = fmt->fourcc; + f->flags = fmt->flags; + return 0; } --- a/drivers/media/platform/bcm2835/mmal-common.h +++ b/drivers/media/platform/bcm2835/mmal-common.h @@ -26,6 +26,7 @@ struct mmal_fmt { char *name; u32 fourcc; /* v4l2 format id */ + int flags; /* v4l2 flags field */ u32 mmal; int depth; u32 mmal_component; /* MMAL component index to be used to encode */