: What's right way to use struct media_pipeline?
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.
-----------------------------------------------------------------------------------
Quoted 5 lines · Bryan Wu
Hi Hans,
I found struct
media_pipelineactually is completely empty and I assume we use that to control all the entities belonging to onemedia_pipeline.
media_pipelineshould contains either all themedia_linkor all themedia_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. whenmedia_entity_create_links, it will return amedia_linkpointer.
2. we save thismedia_linkpointer into themedia_pipeline
3. use thismedia_pipelinefor 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.
-----------------------------------------------------------------------------------
Quoted 12 lines · Hans Verkuil
Quoted 5 lines · Bryan Wu
Hi Hans,
I found struct
media_pipelineactually is completely empty and I assume we use that to control all the entities belonging to onemedia_pipeline.
media_pipelineshould contains either all themedia_linkor all themedia_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.hon 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. whenmedia_entity_create_links, it will return amedia_linkpointer.
2. we save thismedia_linkpointer into themedia_pipeline
3. use thismedia_pipelinefor 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.
-----------------------------------------------------------------------------------