[Gta04-owner] camera hack/patch/question
Benjamin Deering
ben_deering at swissmail.org
Wed Jan 22 04:38:09 CET 2014
I'm not sending this with git send-email because it shouldn't be applied
as is. Like it says in the commit message, it is taken from
https://patchwork.kernel.org/patch/1242121/. To make cheese (camera
program) work I had to hard code a value:
fmtdesc->pixelformat = 0x59565955;//vfh->format.fmt.pix.pixelformat;
Does someone with ov9655/v4l2 knowledge know how we can set
format.fmt.pix.pixelformat in the ov9655 driver so we could use the
unmodified patch?
If I have this patch in my kernel and use the media-ctl commands from
the camera demo script to set up the pipeline, cheese detects a camera
for each pad. The resizer pad is the one that displays. This probably
enables a bunch of programs besides cheese since cheese uses gstreamer.
Ben
This patch is from https://patchwork.kernel.org/patch/1242121/ with
one change. OV9655 doesnt set vfh->format.fmt.pix.pixelformat and I
didn't see where it could be set so I hard-coded it. With this change
cheese detects the gta04 camera.
---
drivers/media/platform/omap3isp/ispvideo.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/drivers/media/platform/omap3isp/ispvideo.c
b/drivers/media/platform/omap3isp/ispvideo.c
index a908d00..1a5c7b5 100644
--- a/drivers/media/platform/omap3isp/ispvideo.c
+++ b/drivers/media/platform/omap3isp/ispvideo.c
@@ -355,7 +355,27 @@ __isp_video_get_format(struct isp_video *video,
struct v4l2_format *format)
format->type = video->type;
return isp_video_mbus_to_pix(video, &fmt.format, &format->fmt.pix);
}
+static int
+isp_video_enum_format(struct file *file, void *fh, struct v4l2_fmtdesc
*fmtdesc)
+{
+ struct isp_video_fh *vfh = to_isp_video_fh(fh);
+ struct isp_video *video = video_drvdata(file);
+
+ if (fmtdesc->index)
+ return -EINVAL;
+
+ if (fmtdesc->type != video->type)
+ return -EINVAL;
+
+ fmtdesc->flags = 0;
+ fmtdesc->description[0] = 0;
+ mutex_lock(&video->mutex);
+ fmtdesc->pixelformat = 0x59565955;//vfh->format.fmt.pix.pixelformat;
+ mutex_unlock(&video->mutex);
+
+ return 0;
+}
static int
isp_video_check_format(struct isp_video *video, struct isp_video_fh *vfh)
{
@@ -1200,6 +1220,7 @@ isp_video_s_input(struct file *file, void *fh,
unsigned int input)
static const struct v4l2_ioctl_ops isp_video_ioctl_ops = {
.vidioc_querycap = isp_video_querycap,
+ .vidioc_enum_fmt_vid_cap = isp_video_enum_format,
.vidioc_g_fmt_vid_cap = isp_video_get_format,
.vidioc_s_fmt_vid_cap = isp_video_set_format,
.vidioc_try_fmt_vid_cap = isp_video_try_format,
--
1.7.12
More information about the Gta04-owner
mailing list