| .. | .. |
|---|
| 26 | 26 | * :ref:`VIDIOC_QUERYCAP <vidioc_querycap>` ioctl |
|---|
| 27 | 27 | * @vidioc_enum_fmt_vid_cap: pointer to the function that implements |
|---|
| 28 | 28 | * :ref:`VIDIOC_ENUM_FMT <vidioc_enum_fmt>` ioctl logic |
|---|
| 29 | | - * for video capture in single plane mode |
|---|
| 29 | + * for video capture in single and multi plane mode |
|---|
| 30 | 30 | * @vidioc_enum_fmt_vid_overlay: pointer to the function that implements |
|---|
| 31 | 31 | * :ref:`VIDIOC_ENUM_FMT <vidioc_enum_fmt>` ioctl logic |
|---|
| 32 | 32 | * for video overlay |
|---|
| 33 | 33 | * @vidioc_enum_fmt_vid_out: pointer to the function that implements |
|---|
| 34 | 34 | * :ref:`VIDIOC_ENUM_FMT <vidioc_enum_fmt>` ioctl logic |
|---|
| 35 | | - * for video output in single plane mode |
|---|
| 36 | | - * @vidioc_enum_fmt_vid_cap_mplane: pointer to the function that implements |
|---|
| 37 | | - * :ref:`VIDIOC_ENUM_FMT <vidioc_enum_fmt>` ioctl logic |
|---|
| 38 | | - * for video capture in multiplane mode |
|---|
| 39 | | - * @vidioc_enum_fmt_vid_out_mplane: pointer to the function that implements |
|---|
| 40 | | - * :ref:`VIDIOC_ENUM_FMT <vidioc_enum_fmt>` ioctl logic |
|---|
| 41 | | - * for video output in multiplane mode |
|---|
| 35 | + * for video output in single and multi plane mode |
|---|
| 42 | 36 | * @vidioc_enum_fmt_sdr_cap: pointer to the function that implements |
|---|
| 43 | 37 | * :ref:`VIDIOC_ENUM_FMT <vidioc_enum_fmt>` ioctl logic |
|---|
| 44 | 38 | * for Software Defined Radio capture |
|---|
| .. | .. |
|---|
| 229 | 223 | * :ref:`VIDIOC_G_MODULATOR <vidioc_g_modulator>` ioctl |
|---|
| 230 | 224 | * @vidioc_s_modulator: pointer to the function that implements |
|---|
| 231 | 225 | * :ref:`VIDIOC_S_MODULATOR <vidioc_g_modulator>` ioctl |
|---|
| 232 | | - * @vidioc_cropcap: pointer to the function that implements |
|---|
| 233 | | - * :ref:`VIDIOC_CROPCAP <vidioc_cropcap>` ioctl |
|---|
| 234 | | - * @vidioc_g_crop: pointer to the function that implements |
|---|
| 235 | | - * :ref:`VIDIOC_G_CROP <vidioc_g_crop>` ioctl |
|---|
| 236 | | - * @vidioc_s_crop: pointer to the function that implements |
|---|
| 237 | | - * :ref:`VIDIOC_S_CROP <vidioc_g_crop>` ioctl |
|---|
| 226 | + * @vidioc_g_pixelaspect: pointer to the function that implements |
|---|
| 227 | + * the pixelaspect part of the :ref:`VIDIOC_CROPCAP <vidioc_cropcap>` ioctl |
|---|
| 238 | 228 | * @vidioc_g_selection: pointer to the function that implements |
|---|
| 239 | 229 | * :ref:`VIDIOC_G_SELECTION <vidioc_g_selection>` ioctl |
|---|
| 240 | 230 | * @vidioc_s_selection: pointer to the function that implements |
|---|
| .. | .. |
|---|
| 317 | 307 | struct v4l2_fmtdesc *f); |
|---|
| 318 | 308 | int (*vidioc_enum_fmt_vid_out)(struct file *file, void *fh, |
|---|
| 319 | 309 | struct v4l2_fmtdesc *f); |
|---|
| 320 | | - int (*vidioc_enum_fmt_vid_cap_mplane)(struct file *file, void *fh, |
|---|
| 321 | | - struct v4l2_fmtdesc *f); |
|---|
| 322 | | - int (*vidioc_enum_fmt_vid_out_mplane)(struct file *file, void *fh, |
|---|
| 323 | | - struct v4l2_fmtdesc *f); |
|---|
| 324 | 310 | int (*vidioc_enum_fmt_sdr_cap)(struct file *file, void *fh, |
|---|
| 325 | 311 | struct v4l2_fmtdesc *f); |
|---|
| 326 | 312 | int (*vidioc_enum_fmt_sdr_out)(struct file *file, void *fh, |
|---|
| .. | .. |
|---|
| 508 | 494 | int (*vidioc_s_modulator)(struct file *file, void *fh, |
|---|
| 509 | 495 | const struct v4l2_modulator *a); |
|---|
| 510 | 496 | /* Crop ioctls */ |
|---|
| 511 | | - int (*vidioc_cropcap)(struct file *file, void *fh, |
|---|
| 512 | | - struct v4l2_cropcap *a); |
|---|
| 513 | | - int (*vidioc_g_crop)(struct file *file, void *fh, |
|---|
| 514 | | - struct v4l2_crop *a); |
|---|
| 515 | | - int (*vidioc_s_crop)(struct file *file, void *fh, |
|---|
| 516 | | - const struct v4l2_crop *a); |
|---|
| 497 | + int (*vidioc_g_pixelaspect)(struct file *file, void *fh, |
|---|
| 498 | + int buf_type, struct v4l2_fract *aspect); |
|---|
| 517 | 499 | int (*vidioc_g_selection)(struct file *file, void *fh, |
|---|
| 518 | 500 | struct v4l2_selection *s); |
|---|
| 519 | 501 | int (*vidioc_s_selection)(struct file *file, void *fh, |
|---|
| .. | .. |
|---|
| 620 | 602 | #define V4L2_DEV_DEBUG_STREAMING 0x08 |
|---|
| 621 | 603 | /* Log poll() */ |
|---|
| 622 | 604 | #define V4L2_DEV_DEBUG_POLL 0x10 |
|---|
| 605 | +/* Log controls */ |
|---|
| 606 | +#define V4L2_DEV_DEBUG_CTRL 0x20 |
|---|
| 623 | 607 | |
|---|
| 624 | 608 | /* Video standard functions */ |
|---|
| 625 | 609 | |
|---|
| .. | .. |
|---|
| 740 | 724 | long int video_ioctl2(struct file *file, |
|---|
| 741 | 725 | unsigned int cmd, unsigned long int arg); |
|---|
| 742 | 726 | |
|---|
| 727 | +/* |
|---|
| 728 | + * The user space interpretation of the 'v4l2_event' differs |
|---|
| 729 | + * based on the 'time_t' definition on 32-bit architectures, so |
|---|
| 730 | + * the kernel has to handle both. |
|---|
| 731 | + * This is the old version for 32-bit architectures. |
|---|
| 732 | + */ |
|---|
| 733 | +struct v4l2_event_time32 { |
|---|
| 734 | + __u32 type; |
|---|
| 735 | + union { |
|---|
| 736 | + struct v4l2_event_vsync vsync; |
|---|
| 737 | + struct v4l2_event_ctrl ctrl; |
|---|
| 738 | + struct v4l2_event_frame_sync frame_sync; |
|---|
| 739 | + struct v4l2_event_src_change src_change; |
|---|
| 740 | + struct v4l2_event_motion_det motion_det; |
|---|
| 741 | + __u8 data[64]; |
|---|
| 742 | + } u; |
|---|
| 743 | + __u32 pending; |
|---|
| 744 | + __u32 sequence; |
|---|
| 745 | + struct old_timespec32 timestamp; |
|---|
| 746 | + __u32 id; |
|---|
| 747 | + __u32 reserved[8]; |
|---|
| 748 | +}; |
|---|
| 749 | + |
|---|
| 750 | +#define VIDIOC_DQEVENT_TIME32 _IOR('V', 89, struct v4l2_event_time32) |
|---|
| 751 | + |
|---|
| 752 | +struct v4l2_buffer_time32 { |
|---|
| 753 | + __u32 index; |
|---|
| 754 | + __u32 type; |
|---|
| 755 | + __u32 bytesused; |
|---|
| 756 | + __u32 flags; |
|---|
| 757 | + __u32 field; |
|---|
| 758 | + struct old_timeval32 timestamp; |
|---|
| 759 | + struct v4l2_timecode timecode; |
|---|
| 760 | + __u32 sequence; |
|---|
| 761 | + |
|---|
| 762 | + /* memory location */ |
|---|
| 763 | + __u32 memory; |
|---|
| 764 | + union { |
|---|
| 765 | + __u32 offset; |
|---|
| 766 | + unsigned long userptr; |
|---|
| 767 | + struct v4l2_plane *planes; |
|---|
| 768 | + __s32 fd; |
|---|
| 769 | + } m; |
|---|
| 770 | + __u32 length; |
|---|
| 771 | + __u32 reserved2; |
|---|
| 772 | + union { |
|---|
| 773 | + __s32 request_fd; |
|---|
| 774 | + __u32 reserved; |
|---|
| 775 | + }; |
|---|
| 776 | +}; |
|---|
| 777 | +#define VIDIOC_QUERYBUF_TIME32 _IOWR('V', 9, struct v4l2_buffer_time32) |
|---|
| 778 | +#define VIDIOC_QBUF_TIME32 _IOWR('V', 15, struct v4l2_buffer_time32) |
|---|
| 779 | +#define VIDIOC_DQBUF_TIME32 _IOWR('V', 17, struct v4l2_buffer_time32) |
|---|
| 780 | +#define VIDIOC_PREPARE_BUF_TIME32 _IOWR('V', 93, struct v4l2_buffer_time32) |
|---|
| 781 | + |
|---|
| 743 | 782 | #endif /* _V4L2_IOCTL_H */ |
|---|