1. 24 Jan, 2020 3 commits
    • Helen Koike's avatar
      libcamera: pipeline: rkisp1: match crop with format · c3349540
      Helen Koike authored
      Set crop to match the format on the subdevice pads.
      Signed-off-by: default avatarHelen Koike <helen.koike@collabora.com>
      c3349540
    • Helen Koike's avatar
      utils: rkisp1: sync topology with upstream driver in capture script · 134c97e4
      Helen Koike authored
      rkisp1 kernel driver was merged upstream with minor changes in the
      topology from the original driver libcamera based it's first support to
      rkisp1.
      
      Adapt libcamera capture script to work with upstream driver.
      
      * Remove subdevice dphy from the pipeline.
      * Add resizer in the pipeline.
      * Fix links.
      * Update entity names.
      Signed-off-by: default avatarHelen Koike <helen.koike@collabora.com>
      
      ---
      changes in v3:
      * Enable link between resizer and capture in mainpath
      
      changes in v2:
      * New commit (splitted from previous one)
      134c97e4
    • Helen Koike's avatar
      libcamera: pipeline: rkisp1: sync topology with upstream driver · c6ad2b57
      Helen Koike authored
      rkisp1 kernel driver was merged upstream with minor changes in the
      topology from the original driver libcamera based it's first support to
      rkisp1.
      
      Adapt libcamera pipeline to work with upstream driver.
      
      * Remove subdevice dphy from the pipeline.
      * Add resizer in the pipeline.
      * Fix links.
      * Update entity names.
      Signed-off-by: default avatarHelen Koike <helen.koike@collabora.com>
      Reviewed-by: default avatarNiklas Söderlund <niklas.soderlund@ragnatech.se>
      
      ---
      Hi,
      
      I'm resending this patch ignoring the immutable patch in the rkisp1
      driver[1], since media tree is already frozen and it will only be merged
      for kernel 5.7 only.
      
      [1] https://patchwork.linuxtv.org/patch/61213/
      
      Thanks
      
      Changes in v3:
      * Added Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
      * No changes in the patch
      
      Changes in v2:
      * Update rkisp1-capture.sh in a different patch
      * Fix typos in commit message.
      * Remove "receiver" and "CSI-2" reference at:
      
                              << " link from sensor '"
                              << link->source()->entity()->name()
      -                       << "' to CSI-2 receiver";
      +                       << "' to ISP";
      ...
      
      -        * Enumerate all sensors connected to the ISP receiver and create one
      +        * Enumerate all sensors connected to the ISP and create one
      c6ad2b57
  2. 23 Jan, 2020 4 commits
  3. 22 Jan, 2020 5 commits
  4. 20 Jan, 2020 6 commits
  5. 18 Jan, 2020 6 commits
  6. 16 Jan, 2020 3 commits
    • Laurent Pinchart's avatar
      README: Remove duplicated line · 30f9624f
      Laurent Pinchart authored
      The commit 2de78434 ("meson: Bump required version to 0.47")
      included an extra duplicated line (my bad, the issue happened when
      applying). Fix it.
      Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Reviewed-by: default avatarKieran Bingham <kieran.bingham@ideasonboard.com>
      30f9624f
    • Nicolas Dufresne's avatar
      meson: Bump required version to 0.47 · 2de78434
      Nicolas Dufresne authored
      This is needed to use option type 'feature'. This is a tri-state
      (auto/enabled/disabled) which comes with utility to enable them all, or
      disabled them all to avoid any dynamic selection happening. It can also
      be used as value to any "required" field.
      
      This will be used in GStreamer support. If you don't have a recent enough
      meson in your distribution, you can always install or upgrade your version
      using pip3.
      
        pip3 install --user meson
        pip3 install --user --upgrade meson
      Signed-off-by: Nicolas Dufresne's avatarNicolas Dufresne <nicolas.dufresne@collabora.com>
      Reviewed: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      2de78434
    • Laurent Pinchart's avatar
      libcamera: Remove std::piecewise_construct where not necessary · 38dd9030
      Laurent Pinchart authored
      When inserting an element with emplace(), the element is constructed
      in-place with the parameters to the emplace() method being forwarded to
      the constructor of the element. For std::map containers, the element is
      an std::pair<const Key, T>. The constructors of std::pair<T1, T2> fall
      into three categories:
      
      (1) Default, copy and move constructors (and related versions)
      (2) Constructors that take lvalue or rvalue references to T1 and T2
      (3) A forwarding constructor that forwards parameters to the
          constructors of T1 and T2
      
      The first category isn't useful in most cases for std::map::emplace(),
      as the caller usually doesn't have an existing std::pair<const Key, T>
      for the element to be inserted.
      
      The constructor from the third category is useful to avoid constructing
      intermediate Key or T instances when the caller doesn't have them
      available. This constructor takes two std::tuple arguments that contain
      the arguments for the Key and T constructors, respectively. Due to
      template deduction rules, usage of such a constructor couldn't be
      deduced by the compiler automatically in all cases, so the constructor
      takes a first argument of type std::piecewise_construct_t that lets the
      caller force the usage ot the forwarding constructor (also known for
      this reason as the piecewise constructor). The caller uses a construct
      such as
      
              map.emplace(std::piecewise_construct,
                          std::forward_as_tuple(args_for_Key, ...),
                          std::forward_as_tuple(args_for_T, ...));
      
      This syntax is a bit heavy, but is required to construct Key and T
      in-place from arguments to their non-default constructor (it is also the
      only std::pair non-default constructor that can be used for non-copyable
      non-movable types).
      
      When the caller of std::map::emplace() already has references to a Key
      and a T, they can be passed to the std::pair piecewise constructor, and
      this will create std::tuple instance to wrap the Key and T references
      arguments to ultimately pass them to the Key and T copy constructors.
      
              map.emplace(std::piecewise_construct,
                          std::forward_as_tuple(Key_value),
                          std::forward_as_tuple(T_value));
      
      While this mechanism works, it's unnecessary complex. A constructor of
      std::pair that takes references to Key and T can be used without any
      performance penalty, as it will also call the copy constructor of Key
      and T. In this case we can use a simpler constructor of std::pair, and
      thus a simpler call of std::map::emplace.
      
              map.emplace(Key_value, T_value);
      
      We have a couple occurrences of this above misuse of piecewise
      construction. Simplify them, which simplifies the code and reduces the
      generated code size.
      Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Reviewed-by: default avatarNiklas Söderlund <niklas.soderlund@ragnatech.se>
      Reviewed-by: default avatarKieran Bingham <kieran.bingham@ideasonboard.com>
      38dd9030
  7. 14 Jan, 2020 4 commits
  8. 13 Jan, 2020 1 commit
  9. 12 Jan, 2020 8 commits