|
@@ -79,145 +79,132 @@ static const struct v4l2_fract
|
|
|
/* video formats */
|
|
|
static struct mmal_fmt formats[] = {
|
|
|
{
|
|
|
- .name = "4:2:0, planar, YUV",
|
|
|
- .fourcc = V4L2_PIX_FMT_YUV420,
|
|
|
- .flags = 0,
|
|
|
- .mmal = MMAL_ENCODING_I420,
|
|
|
- .depth = 12,
|
|
|
- .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
- .ybbp = 1,
|
|
|
- .remove_padding = 1,
|
|
|
- },
|
|
|
- {
|
|
|
- .name = "4:2:2, packed, YUYV",
|
|
|
- .fourcc = V4L2_PIX_FMT_YUYV,
|
|
|
- .flags = 0,
|
|
|
- .mmal = MMAL_ENCODING_YUYV,
|
|
|
- .depth = 16,
|
|
|
- .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
- .ybbp = 2,
|
|
|
- .remove_padding = 0,
|
|
|
- },
|
|
|
- {
|
|
|
- .name = "RGB24 (LE)",
|
|
|
- .fourcc = V4L2_PIX_FMT_RGB24,
|
|
|
- .flags = 0,
|
|
|
- .mmal = MMAL_ENCODING_RGB24,
|
|
|
- .depth = 24,
|
|
|
- .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
- .ybbp = 3,
|
|
|
- .remove_padding = 0,
|
|
|
- },
|
|
|
- {
|
|
|
- .name = "JPEG",
|
|
|
- .fourcc = V4L2_PIX_FMT_JPEG,
|
|
|
- .flags = V4L2_FMT_FLAG_COMPRESSED,
|
|
|
- .mmal = MMAL_ENCODING_JPEG,
|
|
|
- .depth = 8,
|
|
|
- .mmal_component = MMAL_COMPONENT_IMAGE_ENCODE,
|
|
|
- .ybbp = 0,
|
|
|
- .remove_padding = 0,
|
|
|
- },
|
|
|
- {
|
|
|
- .name = "H264",
|
|
|
- .fourcc = V4L2_PIX_FMT_H264,
|
|
|
- .flags = V4L2_FMT_FLAG_COMPRESSED,
|
|
|
- .mmal = MMAL_ENCODING_H264,
|
|
|
- .depth = 8,
|
|
|
- .mmal_component = MMAL_COMPONENT_VIDEO_ENCODE,
|
|
|
- .ybbp = 0,
|
|
|
- .remove_padding = 0,
|
|
|
- },
|
|
|
- {
|
|
|
- .name = "MJPEG",
|
|
|
- .fourcc = V4L2_PIX_FMT_MJPEG,
|
|
|
- .flags = V4L2_FMT_FLAG_COMPRESSED,
|
|
|
- .mmal = MMAL_ENCODING_MJPEG,
|
|
|
- .depth = 8,
|
|
|
- .mmal_component = MMAL_COMPONENT_VIDEO_ENCODE,
|
|
|
- .ybbp = 0,
|
|
|
- .remove_padding = 0,
|
|
|
- },
|
|
|
- {
|
|
|
- .name = "4:2:2, packed, YVYU",
|
|
|
- .fourcc = V4L2_PIX_FMT_YVYU,
|
|
|
- .flags = 0,
|
|
|
- .mmal = MMAL_ENCODING_YVYU,
|
|
|
- .depth = 16,
|
|
|
- .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
- .ybbp = 2,
|
|
|
- .remove_padding = 0,
|
|
|
- },
|
|
|
- {
|
|
|
- .name = "4:2:2, packed, VYUY",
|
|
|
- .fourcc = V4L2_PIX_FMT_VYUY,
|
|
|
- .flags = 0,
|
|
|
- .mmal = MMAL_ENCODING_VYUY,
|
|
|
- .depth = 16,
|
|
|
- .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
- .ybbp = 2,
|
|
|
- .remove_padding = 0,
|
|
|
- },
|
|
|
- {
|
|
|
- .name = "4:2:2, packed, UYVY",
|
|
|
- .fourcc = V4L2_PIX_FMT_UYVY,
|
|
|
- .flags = 0,
|
|
|
- .mmal = MMAL_ENCODING_UYVY,
|
|
|
- .depth = 16,
|
|
|
- .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
- .ybbp = 2,
|
|
|
- .remove_padding = 0,
|
|
|
- },
|
|
|
- {
|
|
|
- .name = "4:2:0, planar, NV12",
|
|
|
- .fourcc = V4L2_PIX_FMT_NV12,
|
|
|
- .flags = 0,
|
|
|
- .mmal = MMAL_ENCODING_NV12,
|
|
|
- .depth = 12,
|
|
|
- .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
- .ybbp = 1,
|
|
|
- .remove_padding = 1,
|
|
|
- },
|
|
|
- {
|
|
|
- .name = "RGB24 (BE)",
|
|
|
- .fourcc = V4L2_PIX_FMT_BGR24,
|
|
|
- .flags = 0,
|
|
|
- .mmal = MMAL_ENCODING_BGR24,
|
|
|
- .depth = 24,
|
|
|
- .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
- .ybbp = 3,
|
|
|
- .remove_padding = 0,
|
|
|
- },
|
|
|
- {
|
|
|
- .name = "4:2:0, planar, YVU",
|
|
|
- .fourcc = V4L2_PIX_FMT_YVU420,
|
|
|
- .flags = 0,
|
|
|
- .mmal = MMAL_ENCODING_YV12,
|
|
|
- .depth = 12,
|
|
|
- .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
- .ybbp = 1,
|
|
|
- .remove_padding = 1,
|
|
|
- },
|
|
|
- {
|
|
|
- .name = "4:2:0, planar, NV21",
|
|
|
- .fourcc = V4L2_PIX_FMT_NV21,
|
|
|
- .flags = 0,
|
|
|
- .mmal = MMAL_ENCODING_NV21,
|
|
|
- .depth = 12,
|
|
|
- .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
- .ybbp = 1,
|
|
|
- .remove_padding = 1,
|
|
|
- },
|
|
|
- {
|
|
|
- .name = "RGB32 (BE)",
|
|
|
- .fourcc = V4L2_PIX_FMT_BGR32,
|
|
|
- .flags = 0,
|
|
|
- .mmal = MMAL_ENCODING_BGRA,
|
|
|
- .depth = 32,
|
|
|
- .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
- .ybbp = 4,
|
|
|
- .remove_padding = 0,
|
|
|
- },
|
|
|
+ .name = "4:2:0, planar, YUV",
|
|
|
+ .fourcc = V4L2_PIX_FMT_YUV420,
|
|
|
+ .flags = 0,
|
|
|
+ .mmal = MMAL_ENCODING_I420,
|
|
|
+ .depth = 12,
|
|
|
+ .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
+ .ybbp = 1,
|
|
|
+ .remove_padding = 1,
|
|
|
+ }, {
|
|
|
+ .name = "4:2:2, packed, YUYV",
|
|
|
+ .fourcc = V4L2_PIX_FMT_YUYV,
|
|
|
+ .flags = 0,
|
|
|
+ .mmal = MMAL_ENCODING_YUYV,
|
|
|
+ .depth = 16,
|
|
|
+ .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
+ .ybbp = 2,
|
|
|
+ .remove_padding = 0,
|
|
|
+ }, {
|
|
|
+ .name = "RGB24 (LE)",
|
|
|
+ .fourcc = V4L2_PIX_FMT_RGB24,
|
|
|
+ .flags = 0,
|
|
|
+ .mmal = MMAL_ENCODING_RGB24,
|
|
|
+ .depth = 24,
|
|
|
+ .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
+ .ybbp = 3,
|
|
|
+ .remove_padding = 0,
|
|
|
+ }, {
|
|
|
+ .name = "JPEG",
|
|
|
+ .fourcc = V4L2_PIX_FMT_JPEG,
|
|
|
+ .flags = V4L2_FMT_FLAG_COMPRESSED,
|
|
|
+ .mmal = MMAL_ENCODING_JPEG,
|
|
|
+ .depth = 8,
|
|
|
+ .mmal_component = MMAL_COMPONENT_IMAGE_ENCODE,
|
|
|
+ .ybbp = 0,
|
|
|
+ .remove_padding = 0,
|
|
|
+ }, {
|
|
|
+ .name = "H264",
|
|
|
+ .fourcc = V4L2_PIX_FMT_H264,
|
|
|
+ .flags = V4L2_FMT_FLAG_COMPRESSED,
|
|
|
+ .mmal = MMAL_ENCODING_H264,
|
|
|
+ .depth = 8,
|
|
|
+ .mmal_component = MMAL_COMPONENT_VIDEO_ENCODE,
|
|
|
+ .ybbp = 0,
|
|
|
+ .remove_padding = 0,
|
|
|
+ }, {
|
|
|
+ .name = "MJPEG",
|
|
|
+ .fourcc = V4L2_PIX_FMT_MJPEG,
|
|
|
+ .flags = V4L2_FMT_FLAG_COMPRESSED,
|
|
|
+ .mmal = MMAL_ENCODING_MJPEG,
|
|
|
+ .depth = 8,
|
|
|
+ .mmal_component = MMAL_COMPONENT_VIDEO_ENCODE,
|
|
|
+ .ybbp = 0,
|
|
|
+ .remove_padding = 0,
|
|
|
+ }, {
|
|
|
+ .name = "4:2:2, packed, YVYU",
|
|
|
+ .fourcc = V4L2_PIX_FMT_YVYU,
|
|
|
+ .flags = 0,
|
|
|
+ .mmal = MMAL_ENCODING_YVYU,
|
|
|
+ .depth = 16,
|
|
|
+ .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
+ .ybbp = 2,
|
|
|
+ .remove_padding = 0,
|
|
|
+ }, {
|
|
|
+ .name = "4:2:2, packed, VYUY",
|
|
|
+ .fourcc = V4L2_PIX_FMT_VYUY,
|
|
|
+ .flags = 0,
|
|
|
+ .mmal = MMAL_ENCODING_VYUY,
|
|
|
+ .depth = 16,
|
|
|
+ .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
+ .ybbp = 2,
|
|
|
+ .remove_padding = 0,
|
|
|
+ }, {
|
|
|
+ .name = "4:2:2, packed, UYVY",
|
|
|
+ .fourcc = V4L2_PIX_FMT_UYVY,
|
|
|
+ .flags = 0,
|
|
|
+ .mmal = MMAL_ENCODING_UYVY,
|
|
|
+ .depth = 16,
|
|
|
+ .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
+ .ybbp = 2,
|
|
|
+ .remove_padding = 0,
|
|
|
+ }, {
|
|
|
+ .name = "4:2:0, planar, NV12",
|
|
|
+ .fourcc = V4L2_PIX_FMT_NV12,
|
|
|
+ .flags = 0,
|
|
|
+ .mmal = MMAL_ENCODING_NV12,
|
|
|
+ .depth = 12,
|
|
|
+ .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
+ .ybbp = 1,
|
|
|
+ .remove_padding = 1,
|
|
|
+ }, {
|
|
|
+ .name = "RGB24 (BE)",
|
|
|
+ .fourcc = V4L2_PIX_FMT_BGR24,
|
|
|
+ .flags = 0,
|
|
|
+ .mmal = MMAL_ENCODING_BGR24,
|
|
|
+ .depth = 24,
|
|
|
+ .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
+ .ybbp = 3,
|
|
|
+ .remove_padding = 0,
|
|
|
+ }, {
|
|
|
+ .name = "4:2:0, planar, YVU",
|
|
|
+ .fourcc = V4L2_PIX_FMT_YVU420,
|
|
|
+ .flags = 0,
|
|
|
+ .mmal = MMAL_ENCODING_YV12,
|
|
|
+ .depth = 12,
|
|
|
+ .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
+ .ybbp = 1,
|
|
|
+ .remove_padding = 1,
|
|
|
+ }, {
|
|
|
+ .name = "4:2:0, planar, NV21",
|
|
|
+ .fourcc = V4L2_PIX_FMT_NV21,
|
|
|
+ .flags = 0,
|
|
|
+ .mmal = MMAL_ENCODING_NV21,
|
|
|
+ .depth = 12,
|
|
|
+ .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
+ .ybbp = 1,
|
|
|
+ .remove_padding = 1,
|
|
|
+ }, {
|
|
|
+ .name = "RGB32 (BE)",
|
|
|
+ .fourcc = V4L2_PIX_FMT_BGR32,
|
|
|
+ .flags = 0,
|
|
|
+ .mmal = MMAL_ENCODING_BGRA,
|
|
|
+ .depth = 32,
|
|
|
+ .mmal_component = MMAL_COMPONENT_CAMERA,
|
|
|
+ .ybbp = 4,
|
|
|
+ .remove_padding = 0,
|
|
|
+ },
|
|
|
};
|
|
|
|
|
|
static struct mmal_fmt *get_format(struct v4l2_format *f)
|
|
@@ -676,17 +663,19 @@ static int set_overlay_params(struct bm2835_mmal_dev *dev,
|
|
|
struct vchiq_mmal_port *port)
|
|
|
{
|
|
|
struct mmal_parameter_displayregion prev_config = {
|
|
|
- .set = MMAL_DISPLAY_SET_LAYER | MMAL_DISPLAY_SET_ALPHA |
|
|
|
- MMAL_DISPLAY_SET_DEST_RECT | MMAL_DISPLAY_SET_FULLSCREEN,
|
|
|
- .layer = PREVIEW_LAYER,
|
|
|
- .alpha = dev->overlay.global_alpha,
|
|
|
- .fullscreen = 0,
|
|
|
- .dest_rect = {
|
|
|
- .x = dev->overlay.w.left,
|
|
|
- .y = dev->overlay.w.top,
|
|
|
- .width = dev->overlay.w.width,
|
|
|
- .height = dev->overlay.w.height,
|
|
|
- },
|
|
|
+ .set = MMAL_DISPLAY_SET_LAYER |
|
|
|
+ MMAL_DISPLAY_SET_ALPHA |
|
|
|
+ MMAL_DISPLAY_SET_DEST_RECT |
|
|
|
+ MMAL_DISPLAY_SET_FULLSCREEN,
|
|
|
+ .layer = PREVIEW_LAYER,
|
|
|
+ .alpha = dev->overlay.global_alpha,
|
|
|
+ .fullscreen = 0,
|
|
|
+ .dest_rect = {
|
|
|
+ .x = dev->overlay.w.left,
|
|
|
+ .y = dev->overlay.w.top,
|
|
|
+ .width = dev->overlay.w.width,
|
|
|
+ .height = dev->overlay.w.height,
|
|
|
+ },
|
|
|
};
|
|
|
return vchiq_mmal_port_parameter_set(dev->instance, port,
|
|
|
MMAL_PARAMETER_DISPLAYREGION,
|