On 08/30/2015 05:06 AM, Mauro Carvalho Chehab wrote:
> By adding an union at media_link, we get for free a way to
> represent interface->entity links.
> 
> No need to change anything at the code, just at the internal
> header file.
> 
> Signed-off-by: Mauro Carvalho Chehab <mche...@osg.samsung.com>

Acked-by: Hans Verkuil <hans.verk...@cisco.com>

> 
> diff --git a/include/media/media-entity.h b/include/media/media-entity.h
> index bb89cedb0c40..b4923a24efd5 100644
> --- a/include/media/media-entity.h
> +++ b/include/media/media-entity.h
> @@ -75,14 +75,20 @@ struct media_pipeline {
>  struct media_link {
>       struct media_gobj graph_obj;
>       struct list_head list;
> -     struct media_pad *source;       /* Source pad */
> -     struct media_pad *sink;         /* Sink pad  */
> +     union {
> +             struct media_gobj *gobj0;
> +             struct media_pad *source;
> +     };
> +     union {
> +             struct media_gobj *gobj1;
> +             struct media_pad *sink;
> +     };
>       struct media_link *reverse;     /* Link in the reverse direction */
>       unsigned long flags;            /* Link flags (MEDIA_LNK_FL_*) */
>  };
>  
>  struct media_pad {
> -     struct media_gobj graph_obj;
> +     struct media_gobj graph_obj;    /* must be first field in struct */
>       struct media_entity *entity;    /* Entity this pad belongs to */
>       u16 index;                      /* Pad index in the entity pads array */
>       unsigned long flags;            /* Pad flags (MEDIA_PAD_FL_*) */
> @@ -105,7 +111,7 @@ struct media_entity_operations {
>  };
>  
>  struct media_entity {
> -     struct media_gobj graph_obj;
> +     struct media_gobj graph_obj;    /* must be first field in struct */
>       struct list_head list;
>       const char *name;               /* Entity name */
>       u32 type;                       /* Entity type (MEDIA_ENT_T_*) */
> @@ -119,7 +125,7 @@ struct media_entity {
>       u16 num_backlinks;              /* Number of backlinks */
>  
>       struct media_pad *pads;         /* Pads array (num_pads objects) */
> -     struct list_head links;         /* Links list */
> +     struct list_head links;         /* Pad-to-pad links list */
>  
>       const struct media_entity_operations *ops;      /* Entity operations */
>  
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to