diff --git a/meta-digi-dey/recipes-digi/dey-examples/files/v4l2_test/v4l2_common.c b/meta-digi-dey/recipes-digi/dey-examples/files/v4l2_test/v4l2_common.c index 52f8941ce..48e1aa776 100644 --- a/meta-digi-dey/recipes-digi/dey-examples/files/v4l2_test/v4l2_common.c +++ b/meta-digi-dey/recipes-digi/dey-examples/files/v4l2_test/v4l2_common.c @@ -714,9 +714,14 @@ int v4l2_get_control(int fd, int id, int *value) return retval; } -int v4l2_rotate(int fd, int rotate) +int v4l2_set_rotate(int fd, int rotate) { /* This is not supported by V4L2, it's done by the IPUv3 driver */ + return v4l2_set_control(fd, V4L2_CID_MXC_VF_ROT, rotate); +} + +int v4l2_rotate(int fd, int rotate) +{ int retval; /* Stop overlay */ @@ -725,15 +730,12 @@ int v4l2_rotate(int fd, int rotate) return retval; /* Set new rotation value */ - retval = v4l2_set_control(fd, V4L2_CID_MXC_VF_ROT, rotate); - if (retval < 0) - return retval; - /* Start overlay */ - retval = v4l2_overlay_control(fd, 1); - if (retval < 1) + retval = v4l2_set_rotate(fd, rotate); + if (retval < 0 && errno != EINVAL) return retval; - return retval; + /* Start overlay */ + return v4l2_overlay_control(fd, 1); } int v4l2_set_brightness(int fd, int percentage) diff --git a/meta-digi-dey/recipes-digi/dey-examples/files/v4l2_test/v4l2_defs.h b/meta-digi-dey/recipes-digi/dey-examples/files/v4l2_test/v4l2_defs.h index 46c3a2547..f33daa73a 100644 --- a/meta-digi-dey/recipes-digi/dey-examples/files/v4l2_test/v4l2_defs.h +++ b/meta-digi-dey/recipes-digi/dey-examples/files/v4l2_test/v4l2_defs.h @@ -159,6 +159,7 @@ int v4l2_reset_cropping_rectangle(int fd); int v4l2_fb_blank(int fd); int v4l2_fb_unblank(int fd); int v4l2_zoom(int fd, int zoom); +int v4l2_set_rotate(int fd, int rotate); int v4l2_rotate(int fd, int rotate); int v4l2_crop_input(int fd, struct v4l2_rect *crop_rectangle); int v4l2_get_cropping_limits(int fd, struct v4l2_rect *limits); diff --git a/meta-digi-dey/recipes-digi/dey-examples/files/v4l2_test/v4l2_preview_test.c b/meta-digi-dey/recipes-digi/dey-examples/files/v4l2_test/v4l2_preview_test.c index 905e81c2c..17b2ac8cb 100644 --- a/meta-digi-dey/recipes-digi/dey-examples/files/v4l2_test/v4l2_preview_test.c +++ b/meta-digi-dey/recipes-digi/dey-examples/files/v4l2_test/v4l2_preview_test.c @@ -99,6 +99,9 @@ static void *v4l2_camera_thread(void *pargs) /* Restore default cropping - no zoom */ v4l2_reset_cropping_rectangle(args->fd_in); + /* Reset rotation to ROTATE_NONE */ + v4l2_set_rotate(args->fd_in, 0); + /* Set size in overlay */ v4l2_set_format_overlay(args->fd_in, args->options.top, args->options.left,