Skip to content
Snippets Groups Projects
  1. Nov 21, 2022
  2. Nov 15, 2022
  3. Nov 09, 2022
  4. Nov 07, 2022
  5. Nov 04, 2022
  6. Nov 03, 2022
  7. Nov 02, 2022
  8. Nov 01, 2022
  9. Oct 25, 2022
  10. Oct 17, 2022
  11. Oct 04, 2022
  12. Sep 29, 2022
  13. Sep 27, 2022
  14. Sep 24, 2022
    • Laurent Pinchart's avatar
      media: mc: entity: Rewrite media_pipeline_start() · ae219872
      Laurent Pinchart authored and Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab committed
      
      [Note: the code is mostly from Laurent but the patch description is from Tomi]
      
      The media_pipeline_start() and media_pipeline_stop() functions use the
      media graph walk API to traverse the graph and validate the pipeline.
      The graph walk traverses the media graph following links between the
      entities.
      
      Also, while the pipeline can't change between the start and stop calls,
      the graph is walked again from scratch at stop time, or any time a
      driver needs to inspect the pipeline.
      
      With the upcoming multiplexed streams support we will need a bit more
      intelligent pipeline construction, as e.g. two independent streams may
      be passing through a single entity via separate pads in which case
      those pads should not be part of the same pipeline.
      
      This patch essentially rewrites the media_pipeline_start/stop so that
      a pipeline is defined as a set of pads instead of entities and the media
      graph traversal considers the pad interdependencies when choosing which
      links to follow.
      
      Currently all the entity's pads are considered as interdependent. This
      means that the behavior with all the current drivers stays the same, but
      in the future we can define a more fine-grained pipeline construction.
      
      Additionally the media pipeline's pads are cached at
      media_pipeline_start() time, and re-used at media_pipeline_stop() which
      avoid the need to re-walk the whole graph as the previous implementation
      did.
      
      Also, caching pads in the pipeline can serve in the future as the
      foundation to provide a better API than the media graph walk to drivers
      to iterate over pads and entities in the pipeline.
      
      Note that the old media_pipeline_start/stop used the media graph walk
      API. The new version does not use the media graph walk API, but instead
      a new implementation.
      
      There are two reasons for not changing the graph walk: it proved to be
      rather difficult to change the graph walk to have the features
      implemented in this patch, and second, this keeps the backward
      compatibility of the graph walk as there are users of the graph walk API
      
      The long term plan is that all the existing code would be converted to
      use the new cached pipeline, thus allowing us to remove the graph walk.
      
      Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
      Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
      ae219872
    • Tomi Valkeinen's avatar
      media: Documentation: mc: add definitions for stream and pipeline · b558ce56
      Tomi Valkeinen authored and Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab committed
      
      The doc talks about streams and pipelines, but doesn't really define
      them. This is an attempt to define them according to my understanding.
      
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
      Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
      Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
      b558ce56
  15. Sep 19, 2022
  16. Sep 01, 2022
  17. Aug 29, 2022
Loading