Skip to content
  • Simon Farnsworth's avatar
    v4l2: Clean up interlace support · 02040d50
    Simon Farnsworth authored and Nicolas Dufresne's avatar Nicolas Dufresne committed
    Rather than try and guess interlace support as part of checking supported
    sizes, look for interlace support specifically in its own function.
    
    As a cleanup, use V4L2_FIELD_ANY when probing sizes, which should result in
    the driver doing the right thing.
    
    With my capture setup, this gets me the following sample caps:
    
    For 1080i resolution:
    video/x-raw, format=(string)YUY2, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)interleaved, framerate=(fraction){ 25/1, 30/1 }
    
    For 720p resolution:
    video/x-raw, format=(string)YUY2, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction){ 50/1, 60/1 }
    
    For 576i/p resolution (both possible at the point of query):
    video/x-raw, format=(string)YUY2, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string){ progressive, interleaved }, framerate=(fraction){ 25/1, 50/1 }
    
    This, in turn, makes 576i work correctly; with the old code,
    the caps would be interlace-mode=progressive for interlaced video.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=726194
    02040d50