openwrt/target/linux/brcm2708/patches-3.10/0147-V4L2-Correct-flag-sett...

92 lines
2.7 KiB
Diff

From dfd619eb2e3415681d726f749984ab5ecf355736 Mon Sep 17 00:00:00 2001
From: Dave Stevenson <dsteve@broadcom.com>
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 <dsteve@broadcom.com>
---
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 */