Skip to content
  • Sebastian Dröge's avatar
    deinterlace: Rewrite caps negotiation · 8c1c0914
    Sebastian Dröge authored
    Previously the result of the CAPS query and ACCEPT_CAPS depended on what kind
    of caps were last set, and e.g. if we last had interlaced caps or not. That's
    just broken.
    
    Also previously the handling of non-sysmem caps features was rather random and
    unusuable.
    
    Now the behaviour is the following, depending on the mode property:
    1) mode=disabled
      Completely do passthrough of everything
    2) mode=interlaced
      Only accept formats we can actually deinterlace, and accept interlaced
      and progressive content and always run the deinterlacer and output
      progressive content
    3) mode=auto (i.e. playbin)
      Accept all progressive formats as passthrough, accept all formats that we
      can deinterlace ourselves (which we do then), but also accept everything
      else for which we then just passthrough. In auto mode, deinterlacing is best
      effort: If we can, we deinterlace, if we can't we just output interlaced
      content.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=720388
    https://bugzilla.gnome.org/show_bug.cgi?id=760553
    8c1c0914