Skip to contentSkip to conversation

: What's right way to use struct media_pipeline?

Question Bryan Wu 2 participants 3 messages Sep 24, 2015 Media (V4L/DVB)

lore
Share & tools
lore

Bryan Wu

author
#0 lore raw

Hi Hans,

I found struct media_pipeline actually is completely empty and I assume we use that to control all the entities belonging to one media_pipeline.

media_pipeline should contains either all the media_link or all the media_entity. How come an empty struct can provide those information?

What about following ideas?
1. when media_entity_create_links, it will return a media_link pointer.
2. we save this media_link pointer into the media_pipeline
3. use this media_pipeline for start streaming, stop streaming and validate links.

Maybe I miss something during recent media controller changes.

Thanks,
-Bryan

-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------

#1 lore raw
Quoted 5 lines · Bryan Wu

Hi Hans,

I found struct media_pipeline actually is completely empty and I assume we use that to control all the entities belonging to one media_pipeline.

media_pipeline should contains either all the media_link or all the media_entity. How come an empty struct can provide those information?

It's basically an empty base class to speak in C++ terminology.

See drivers/media/platform/xilinx/xilinx-dma.h on how it is used there.

Laurent Pinchart knows a lot more about it than I do, though.

Regards,

Hans

Quoted 17 lines

What about following ideas?
1. when media_entity_create_links, it will return a media_link pointer.
2. we save this media_link pointer into the media_pipeline
3. use this media_pipeline for start streaming, stop streaming and validate links.

Maybe I miss something during recent media controller changes.

Thanks,
-Bryan

-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------

author
#2 lore raw
Quoted 12 lines · Hans Verkuil
Quoted 5 lines · Bryan Wu

Hi Hans,

I found struct media_pipeline actually is completely empty and I assume we use that to control all the entities belonging to one media_pipeline.

media_pipeline should contains either all the media_link or all the media_entity. How come an empty struct can provide those information?

It's basically an empty base class to speak in C++ terminology.

See drivers/media/platform/xilinx/xilinx-dma.h on how it is used there.

Laurent Pinchart knows a lot more about it than I do, though.

Hi Laurent,

I have a subdev media entity which have 4 media pads.

pad[0] is sink and pad[1] is source, these 2 pads belong to the first media pipeline

pad[2] is sink and pad[3] is source, these 2 pads belong to the second media pipeline

Actually our hardware Tegra has 3 these kind of entities, so totally we have 6 media pipelines like 6 dma channels.

How to handle that with media pipeline framework? I saw in xilinx driver it just has one pipeline which is shared by several DMA channels, right?

-Bryan

Quoted 17 lines
Quoted 17 lines

What about following ideas?
1. when media_entity_create_links, it will return a media_link pointer.
2. we save this media_link pointer into the media_pipeline
3. use this media_pipeline for start streaming, stop streaming and validate links.

Maybe I miss something during recent media controller changes.

Thanks,
-Bryan

-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------