~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/userspace-api/media/v4l/selection-api-examples.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/userspace-api/media/v4l/selection-api-examples.rst (Version linux-6.12-rc7) and /Documentation/userspace-api/media/v4l/selection-api-examples.rst (Version unix-v6-master)


  1 .. SPDX-License-Identifier: GFDL-1.1-no-invari    
  2                                                   
  3 ********                                          
  4 Examples                                          
  5 ********                                          
  6                                                   
  7 (A video capture device is assumed; change        
  8 ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` for other devi    
  9 ``V4L2_SEL_TGT_COMPOSE_*`` family to configure    
 10                                                   
 11 Example: Resetting the cropping parameters        
 12 ==========================================        
 13                                                   
 14 .. code-block:: c                                 
 15                                                   
 16         struct v4l2_selection sel = {             
 17             .type = V4L2_BUF_TYPE_VIDEO_CAPTUR    
 18             .target = V4L2_SEL_TGT_CROP_DEFAUL    
 19         };                                        
 20         ret = ioctl(fd, VIDIOC_G_SELECTION, &s    
 21         if (ret)                                  
 22             exit(-1);                             
 23         sel.target = V4L2_SEL_TGT_CROP;           
 24         ret = ioctl(fd, VIDIOC_S_SELECTION, &s    
 25         if (ret)                                  
 26             exit(-1);                             
 27                                                   
 28 Setting a composing area on output of size of     
 29 placed at a center of a display.                  
 30                                                   
 31 Example: Simple downscaling                       
 32 ===========================                       
 33                                                   
 34 .. code-block:: c                                 
 35                                                   
 36         struct v4l2_selection sel = {             
 37             .type = V4L2_BUF_TYPE_VIDEO_OUTPUT    
 38             .target = V4L2_SEL_TGT_COMPOSE_BOU    
 39         };                                        
 40         struct v4l2_rect r;                       
 41                                                   
 42         ret = ioctl(fd, VIDIOC_G_SELECTION, &s    
 43         if (ret)                                  
 44             exit(-1);                             
 45         /* setting smaller compose rectangle *    
 46         r.width = sel.r.width / 2;                
 47         r.height = sel.r.height / 2;              
 48         r.left = sel.r.width / 4;                 
 49         r.top = sel.r.height / 4;                 
 50         sel.r = r;                                
 51         sel.target = V4L2_SEL_TGT_COMPOSE;        
 52         sel.flags = V4L2_SEL_FLAG_LE;             
 53         ret = ioctl(fd, VIDIOC_S_SELECTION, &s    
 54         if (ret)                                  
 55             exit(-1);                             
 56                                                   
 57 A video output device is assumed; change ``V4L    
 58 for other devices                                 
 59                                                   
 60 Example: Querying for scaling factors             
 61 =====================================             
 62                                                   
 63 .. code-block:: c                                 
 64                                                   
 65         struct v4l2_selection compose = {         
 66             .type = V4L2_BUF_TYPE_VIDEO_OUTPUT    
 67             .target = V4L2_SEL_TGT_COMPOSE,       
 68         };                                        
 69         struct v4l2_selection crop = {            
 70             .type = V4L2_BUF_TYPE_VIDEO_OUTPUT    
 71             .target = V4L2_SEL_TGT_CROP,          
 72         };                                        
 73         double hscale, vscale;                    
 74                                                   
 75         ret = ioctl(fd, VIDIOC_G_SELECTION, &c    
 76         if (ret)                                  
 77             exit(-1);                             
 78         ret = ioctl(fd, VIDIOC_G_SELECTION, &c    
 79         if (ret)                                  
 80             exit(-1);                             
 81                                                   
 82         /* computing scaling factors */           
 83         hscale = (double)compose.r.width / cro    
 84         vscale = (double)compose.r.height / cr    
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php