€•�ÑŒsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ7/translations/zh_CN/driver-api/media/drivers/vimc-devel”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ7/translations/zh_TW/driver-api/media/drivers/vimc-devel”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ7/translations/it_IT/driver-api/media/drivers/vimc-devel”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ7/translations/ja_JP/driver-api/media/drivers/vimc-devel”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ7/translations/ko_KR/driver-api/media/drivers/vimc-devel”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ7/translations/pt_BR/driver-api/media/drivers/vimc-devel”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ7/translations/sp_SP/driver-api/media/drivers/vimc-devel”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒQ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ*The Virtual Media Controller Driver (vimc)”h]”hŒ*The Virtual Media Controller Driver (vimc)”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒSource code documentation”h]”hŒSource code documentation”…”�”}”(hhàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÝh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ vimc-streamer”h]”hŒ vimc-streamer”…”�”}”(hhñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhîh²hh³hÇh´K ubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œvimc_stream (C struct)”Œ c.vimc_stream”hNt”auh1hÿhhîh²hh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:12: ./drivers/media/test-drivers/vimc/vimc-streamer.h”h´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒ vimc_stream”h]”hŒdesc_signature_line”“”)�”}”(hŒstruct vimc_stream”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1j"hjh²hh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:12: ./drivers/media/test-drivers/vimc/vimc-streamer.h”h´KubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j4hjh²hh³j3h´KubhŒ desc_name”“”)�”}”(hŒ vimc_stream”h]”hŒ desc_sig_name”“”)�”}”(hjh]”hŒ vimc_stream”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jKhjGubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”hÅhÆuh1jEhjh²hh³j3h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒ add_permalink”ˆuh1jŒsphinx_line_type”Œ declarator”hjh²hh³j3h´Kubah}”(h]”jah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jh³j3h´Khjh²hubhŒ desc_content”“”)�”}”(hhh]”hŒ paragraph”“”)�”}”(hŒ/struct that represents a stream in the pipeline”h]”hŒ/struct that represents a stream in the pipeline”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:12: ./drivers/media/test-drivers/vimc/vimc-streamer.h”h´Khjyh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jwhjh²hh³j3h´Kubeh}”(h]”h ]”(Œc”Œstruct”eh"]”h$]”h&]”Œdomain”j–Œobjtype”j—Œdesctype”j—Œnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1jh²hhhîh³jh´NubhŒ container”“”)�”}”(hX—**Definition**:: struct vimc_stream { struct media_pipeline pipe; struct vimc_ent_device *ved_pipeline[VIMC_STREAMER_PIPELINE_MAX_SIZE]; unsigned int pipe_size; struct task_struct *kthread; }; **Members** ``pipe`` the media pipeline object associated with this stream ``ved_pipeline`` array containing all the entities participating in the stream. The order is from a video device (usually a capture device) where stream_on was called, to the entity generating the first base image to be processed in the pipeline. ``pipe_size`` size of **ved_pipeline** ``kthread`` thread that generates the frames of the stream.”h]”(j})�”}”(hŒ**Definition**::”h]”(hŒstrong”“”)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj§ubhŒ:”…”�”}”(hj§h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:12: ./drivers/media/test-drivers/vimc/vimc-streamer.h”h´Khj£ubhŒ literal_block”“”)�”}”(hŒ¿struct vimc_stream { struct media_pipeline pipe; struct vimc_ent_device *ved_pipeline[VIMC_STREAMER_PIPELINE_MAX_SIZE]; unsigned int pipe_size; struct task_struct *kthread; };”h]”hŒ¿struct vimc_stream { struct media_pipeline pipe; struct vimc_ent_device *ved_pipeline[VIMC_STREAMER_PIPELINE_MAX_SIZE]; unsigned int pipe_size; struct task_struct *kthread; };”…”�”}”hjÈsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:12: ./drivers/media/test-drivers/vimc/vimc-streamer.h”h´Khj£ubj})�”}”(hŒ **Members**”h]”j¬)�”}”(hjÙh]”hŒMembers”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj×ubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:12: ./drivers/media/test-drivers/vimc/vimc-streamer.h”h´K hj£ubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒ?``pipe`` the media pipeline object associated with this stream ”h]”(hŒterm”“”)�”}”(hŒ``pipe``”h]”hŒliteral”“”)�”}”(hjþh]”hŒpipe”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjüubah}”(h]”h ]”h"]”h$]”h&]”uh1júh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:12: ./drivers/media/test-drivers/vimc/vimc-streamer.h”h´KhjöubhŒ definition”“”)�”}”(hhh]”j})�”}”(hŒ5the media pipeline object associated with this stream”h]”hŒ5the media pipeline object associated with this stream”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³jh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjöubeh}”(h]”h ]”h"]”h$]”h&]”uh1jôh³jh´Khjñubjõ)�”}”(hŒ÷``ved_pipeline`` array containing all the entities participating in the stream. The order is from a video device (usually a capture device) where stream_on was called, to the entity generating the first base image to be processed in the pipeline. ”h]”(jû)�”}”(hŒ``ved_pipeline``”h]”j)�”}”(hj;h]”hŒ ved_pipeline”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1júh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:12: ./drivers/media/test-drivers/vimc/vimc-streamer.h”h´Khj5ubj)�”}”(hhh]”j})�”}”(hŒåarray containing all the entities participating in the stream. The order is from a video device (usually a capture device) where stream_on was called, to the entity generating the first base image to be processed in the pipeline.”h]”hŒåarray containing all the entities participating in the stream. The order is from a video device (usually a capture device) where stream_on was called, to the entity generating the first base image to be processed in the pipeline.”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:12: ./drivers/media/test-drivers/vimc/vimc-streamer.h”h´KhjQubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jôh³jPh´Khjñubjõ)�”}”(hŒ'``pipe_size`` size of **ved_pipeline** ”h]”(jû)�”}”(hŒ ``pipe_size``”h]”j)�”}”(hjuh]”hŒ pipe_size”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjsubah}”(h]”h ]”h"]”h$]”h&]”uh1júh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:12: ./drivers/media/test-drivers/vimc/vimc-streamer.h”h´Khjoubj)�”}”(hhh]”j})�”}”(hŒsize of **ved_pipeline**”h]”(hŒsize of ”…”�”}”(hjŽh²hh³Nh´Nubj¬)�”}”(hŒ**ved_pipeline**”h]”hŒ ved_pipeline”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjŽubeh}”(h]”h ]”h"]”h$]”h&]”uh1j|h³jŠh´Khj‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjoubeh}”(h]”h ]”h"]”h$]”h&]”uh1jôh³jŠh´Khjñubjõ)�”}”(hŒ;``kthread`` thread that generates the frames of the stream.”h]”(jû)�”}”(hŒ ``kthread``”h]”j)�”}”(hj¼h]”hŒkthread”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjºubah}”(h]”h ]”h"]”h$]”h&]”uh1júh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:12: ./drivers/media/test-drivers/vimc/vimc-streamer.h”h´Khj¶ubj)�”}”(hhh]”j})�”}”(hŒ/thread that generates the frames of the stream.”h]”hŒ/thread that generates the frames of the stream.”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:12: ./drivers/media/test-drivers/vimc/vimc-streamer.h”h´KhjÒubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¶ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jôh³jÑh´Khjñubeh}”(h]”h ]”h"]”h$]”h&]”uh1jïhj£ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¡hhîh²hh³jh´Nubj})�”}”(hŒ**Description**”h]”j¬)�”}”(hjÿh]”hŒ Description”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjýubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:12: ./drivers/media/test-drivers/vimc/vimc-streamer.h”h´K hhîh²hubj})�”}”(hŒ©When the user call stream_on in a video device, struct vimc_stream is used to keep track of all entities and subdevices that generates and process frames for the stream.”h]”hŒ©When the user call stream_on in a video device, struct vimc_stream is used to keep track of all entities and subdevices that generates and process frames for the stream.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:12: ./drivers/media/test-drivers/vimc/vimc-streamer.h”h´Khhîh²hubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ#vimc_get_source_entity (C function)”Œc.vimc_get_source_entity”hNt”auh1hÿhhîh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒGstruct media_entity * vimc_get_source_entity (struct media_entity *ent)”h]”j)�”}”(hŒEstruct media_entity *vimc_get_source_entity(struct media_entity *ent)”h]”(j#)�”}”(hj&h]”hŒstruct”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj9h²hh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´Kubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hj9h²hh³jJh´Kubh)�”}”(hhh]”jL)�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhjYubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j–Œreftype”Œ identifier”Œ reftarget”j^Œmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”jwŒ ASTIdentifier”“”)�”}”jrŒvimc_get_source_entity”sbŒc.vimc_get_source_entity”†”asbuh1hhj9h²hh³jJh´Kubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hj9h²hh³jJh´KubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1j“hj9h²hh³jJh´KubjF)�”}”(hŒvimc_get_source_entity”h]”jL)�”}”(hj‚h]”hŒvimc_get_source_entity”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhj¤ubah}”(h]”h ]”(j^j_eh"]”h$]”h&]”hÅhÆuh1jEhj9h²hh³jJh´KubhŒdesc_parameterlist”“”)�”}”(hŒ(struct media_entity *ent)”h]”hŒdesc_parameter”“”)�”}”(hŒstruct media_entity *ent”h]”(j#)�”}”(hj&h]”hŒstruct”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjÃubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hjÃubh)�”}”(hhh]”jL)�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhjâubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j–Œreftype”jrŒ reftarget”jçŒmodname”NŒ classname”Njvjy)�”}”j|]”j€Œc.vimc_get_source_entity”†”asbuh1hhjÃubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hjÃubj”)�”}”(hj—h]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1j“hjÃubjL)�”}”(hŒent”h]”hŒent”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhjÃubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÁhj½ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j»hj9h²hh³jJh´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjiˆuh1jjjjkhj5h²hh³jJh´Kubah}”(h]”j0ah ]”(jojpeh"]”h$]”h&]”jtˆju)jvhuh1jh³jJh´Khj2h²hubjx)�”}”(hhh]”j})�”}”(hŒ0get the entity connected with the first sink pad”h]”hŒ0get the entity connected with the first sink pad”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´KhjEh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jwhj2h²hh³jJh´Kubeh}”(h]”h ]”(j–Œfunction”eh"]”h$]”h&]”j›j–jœj`j�j`jž‰jŸ‰j ‰uh1jh²hhhîh³Nh´Nubj¢)�”}”(hX**Parameters** ``struct media_entity *ent`` reference media_entity **Description** Helper function that returns the media entity containing the source pad linked with the first sink pad from the given media entity pad list. **Return** The source pad or NULL, if it wasn't found.”h]”(j})�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjjh]”hŒ Parameters”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjhubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´Khjdubjð)�”}”(hhh]”jõ)�”}”(hŒ4``struct media_entity *ent`` reference media_entity ”h]”(jû)�”}”(hŒ``struct media_entity *ent``”h]”j)�”}”(hj‰h]”hŒstruct media_entity *ent”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1júh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´Khjƒubj)�”}”(hhh]”j})�”}”(hŒreference media_entity”h]”hŒreference media_entity”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³jžh´KhjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjƒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jôh³jžh´Khj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1jïhjdubj})�”}”(hŒ**Description**”h]”j¬)�”}”(hjÄh]”hŒ Description”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjÂubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´Khjdubj})�”}”(hŒŒHelper function that returns the media entity containing the source pad linked with the first sink pad from the given media entity pad list.”h]”hŒŒHelper function that returns the media entity containing the source pad linked with the first sink pad from the given media entity pad list.”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´Khjdubj})�”}”(hŒ **Return**”h]”j¬)�”}”(hjëh]”hŒReturn”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjéubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´Khjdubj})�”}”(hŒ+The source pad or NULL, if it wasn't found.”h]”hŒ-The source pad or NULL, if it wasn’t found.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´Khjdubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¡hhîh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ-vimc_streamer_pipeline_terminate (C function)”Œ"c.vimc_streamer_pipeline_terminate”hNt”auh1hÿhhîh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒBvoid vimc_streamer_pipeline_terminate (struct vimc_stream *stream)”h]”j)�”}”(hŒAvoid vimc_streamer_pipeline_terminate(struct vimc_stream *stream)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1j0hj,h²hh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K(ubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hj,h²hh³jAh´K(ubjF)�”}”(hŒ vimc_streamer_pipeline_terminate”h]”jL)�”}”(hŒ vimc_streamer_pipeline_terminate”h]”hŒ vimc_streamer_pipeline_terminate”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhjPubah}”(h]”h ]”(j^j_eh"]”h$]”h&]”hÅhÆuh1jEhj,h²hh³jAh´K(ubj¼)�”}”(hŒ(struct vimc_stream *stream)”h]”jÂ)�”}”(hŒstruct vimc_stream *stream”h]”(j#)�”}”(hj&h]”hŒstruct”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjlubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hjlubh)�”}”(hhh]”jL)�”}”(hŒ vimc_stream”h]”hŒ vimc_stream”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhj‹ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j–Œreftype”jrŒ reftarget”j�Œmodname”NŒ classname”Njvjy)�”}”j|]”j)�”}”jrjVsbŒ"c.vimc_streamer_pipeline_terminate”†”asbuh1hhjlubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hjlubj”)�”}”(hj—h]”hŒ*”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1j“hjlubjL)�”}”(hŒstream”h]”hŒstream”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhjlubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÁhjhubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j»hj,h²hh³jAh´K(ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjiˆuh1jjjjkhj(h²hh³jAh´K(ubah}”(h]”j#ah ]”(jojpeh"]”h$]”h&]”jtˆju)jvhuh1jh³jAh´K(hj%h²hubjx)�”}”(hhh]”j})�”}”(hŒ#Disable stream in all ved in stream”h]”hŒ#Disable stream in all ved in stream”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K(hjðh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jwhj%h²hh³jAh´K(ubeh}”(h]”h ]”(j–Œfunction”eh"]”h$]”h&]”j›j–jœj j�j jž‰jŸ‰j ‰uh1jh²hhhîh³Nh´Nubj¢)�”}”(hŒÎ**Parameters** ``struct vimc_stream *stream`` the pointer to the stream structure with the pipeline to be disabled. **Description** Calls s_stream to disable the stream in each entity of the pipeline”h]”(j})�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjh]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K,hjubjð)�”}”(hhh]”jõ)�”}”(hŒe``struct vimc_stream *stream`` the pointer to the stream structure with the pipeline to be disabled. ”h]”(jû)�”}”(hŒ``struct vimc_stream *stream``”h]”j)�”}”(hj4h]”hŒstruct vimc_stream *stream”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1júh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K+hj.ubj)�”}”(hhh]”j})�”}”(hŒEthe pointer to the stream structure with the pipeline to be disabled.”h]”hŒEthe pointer to the stream structure with the pipeline to be disabled.”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K*hjJubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jôh³jIh´K+hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jïhjubj})�”}”(hŒ**Description**”h]”j¬)�”}”(hjph]”hŒ Description”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjnubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K-hjubj})�”}”(hŒCCalls s_stream to disable the stream in each entity of the pipeline”h]”hŒCCalls s_stream to disable the stream in each entity of the pipeline”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K,hjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¡hhîh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ(vimc_streamer_pipeline_init (C function)”Œc.vimc_streamer_pipeline_init”hNt”auh1hÿhhîh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒYint vimc_streamer_pipeline_init (struct vimc_stream *stream, struct vimc_ent_device *ved)”h]”j)�”}”(hŒXint vimc_streamer_pipeline_init(struct vimc_stream *stream, struct vimc_ent_device *ved)”h]”(j1)�”}”(hŒint”h]”hŒint”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hj±h²hh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´KIubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hj±h²hh³jÃh´KIubjF)�”}”(hŒvimc_streamer_pipeline_init”h]”jL)�”}”(hŒvimc_streamer_pipeline_init”h]”hŒvimc_streamer_pipeline_init”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhjÒubah}”(h]”h ]”(j^j_eh"]”h$]”h&]”hÅhÆuh1jEhj±h²hh³jÃh´KIubj¼)�”}”(hŒ9(struct vimc_stream *stream, struct vimc_ent_device *ved)”h]”(jÂ)�”}”(hŒstruct vimc_stream *stream”h]”(j#)�”}”(hj&h]”hŒstruct”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjîubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hjîubh)�”}”(hhh]”jL)�”}”(hŒ vimc_stream”h]”hŒ vimc_stream”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j–Œreftype”jrŒ reftarget”jŒmodname”NŒ classname”Njvjy)�”}”j|]”j)�”}”jrjØsbŒc.vimc_streamer_pipeline_init”†”asbuh1hhjîubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hjîubj”)�”}”(hj—h]”hŒ*”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1j“hjîubjL)�”}”(hŒstream”h]”hŒstream”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhjîubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÁhjêubjÂ)�”}”(hŒstruct vimc_ent_device *ved”h]”(j#)�”}”(hj&h]”hŒstruct”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj`ubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hj`ubh)�”}”(hhh]”jL)�”}”(hŒvimc_ent_device”h]”hŒvimc_ent_device”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j–Œreftype”jrŒ reftarget”j„Œmodname”NŒ classname”Njvjy)�”}”j|]”j,Œc.vimc_streamer_pipeline_init”†”asbuh1hhj`ubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hj`ubj”)�”}”(hj—h]”hŒ*”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1j“hj`ubjL)�”}”(hŒved”h]”hŒved”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhj`ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÁhjêubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j»hj±h²hh³jÃh´KIubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjiˆuh1jjjjkhj­h²hh³jÃh´KIubah}”(h]”j¨ah ]”(jojpeh"]”h$]”h&]”jtˆju)jvhuh1jh³jÃh´KIhjªh²hubjx)�”}”(hhh]”j})�”}”(hŒ Initializes the stream structure”h]”hŒ Initializes the stream structure”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´KIhjâh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jwhjªh²hh³jÃh´KIubeh}”(h]”h ]”(j–Œfunction”eh"]”h$]”h&]”j›j–jœjýj�jýjž‰jŸ‰j ‰uh1jh²hhhîh³Nh´Nubj¢)�”}”(hXÒ**Parameters** ``struct vimc_stream *stream`` the pointer to the stream structure to be initialized ``struct vimc_ent_device *ved`` the pointer to the vimc entity initializing the stream **Description** Initializes the stream structure. Walks through the entity graph to construct the pipeline used later on the streamer thread. Calls vimc_streamer_s_stream() to enable stream in all entities of the pipeline. **Return** 0 if success, error code otherwise.”h]”(j})�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjh]”hŒ Parameters”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´KMhjubjð)�”}”(hhh]”(jõ)�”}”(hŒU``struct vimc_stream *stream`` the pointer to the stream structure to be initialized ”h]”(jû)�”}”(hŒ``struct vimc_stream *stream``”h]”j)�”}”(hj&h]”hŒstruct vimc_stream *stream”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1júh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´KKhj ubj)�”}”(hhh]”j})�”}”(hŒ5the pointer to the stream structure to be initialized”h]”hŒ5the pointer to the stream structure to be initialized”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³j;h´KKhj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jôh³j;h´KKhjubjõ)�”}”(hŒW``struct vimc_ent_device *ved`` the pointer to the vimc entity initializing the stream ”h]”(jû)�”}”(hŒ``struct vimc_ent_device *ved``”h]”j)�”}”(hj_h]”hŒstruct vimc_ent_device *ved”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1júh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´KLhjYubj)�”}”(hhh]”j})�”}”(hŒ6the pointer to the vimc entity initializing the stream”h]”hŒ6the pointer to the vimc entity initializing the stream”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³jth´KLhjuubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjYubeh}”(h]”h ]”h"]”h$]”h&]”uh1jôh³jth´KLhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jïhjubj})�”}”(hŒ**Description**”h]”j¬)�”}”(hjšh]”hŒ Description”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´KNhjubj})�”}”(hŒÎInitializes the stream structure. Walks through the entity graph to construct the pipeline used later on the streamer thread. Calls vimc_streamer_s_stream() to enable stream in all entities of the pipeline.”h]”hŒÎInitializes the stream structure. Walks through the entity graph to construct the pipeline used later on the streamer thread. Calls vimc_streamer_s_stream() to enable stream in all entities of the pipeline.”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´KMhjubj})�”}”(hŒ **Return**”h]”j¬)�”}”(hjÁh]”hŒReturn”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´KRhjubj})�”}”(hŒ#0 if success, error code otherwise.”h]”hŒ#0 if success, error code otherwise.”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´KShjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¡hhîh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ%vimc_streamer_get_sensor (C function)”Œc.vimc_streamer_get_sensor”hNt”auh1hÿhhîh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒQstruct vimc_sensor_device * vimc_streamer_get_sensor (struct vimc_stream *stream)”h]”j)�”}”(hŒOstruct vimc_sensor_device *vimc_streamer_get_sensor(struct vimc_stream *stream)”h]”(j#)�”}”(hj&h]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj h²hh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K�ubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hj h²hh³j h´K�ubh)�”}”(hhh]”jL)�”}”(hŒvimc_sensor_device”h]”hŒvimc_sensor_device”…”�”}”(hj% h²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhj" ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j–Œreftype”jrŒ reftarget”j' Œmodname”NŒ classname”Njvjy)�”}”j|]”j)�”}”jrŒvimc_streamer_get_sensor”sbŒc.vimc_streamer_get_sensor”†”asbuh1hhj h²hh³j h´K�ubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjF h²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hj h²hh³j h´K�ubj”)�”}”(hj—h]”hŒ*”…”�”}”(hjT h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1j“hj h²hh³j h´K�ubjF)�”}”(hŒvimc_streamer_get_sensor”h]”jL)�”}”(hjC h]”hŒvimc_streamer_get_sensor”…”�”}”(hje h²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhja ubah}”(h]”h ]”(j^j_eh"]”h$]”h&]”hÅhÆuh1jEhj h²hh³j h´K�ubj¼)�”}”(hŒ(struct vimc_stream *stream)”h]”jÂ)�”}”(hŒstruct vimc_stream *stream”h]”(j#)�”}”(hj&h]”hŒstruct”…”�”}”(hj€ h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj| ubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hj| ubh)�”}”(hhh]”jL)�”}”(hŒ vimc_stream”h]”hŒ vimc_stream”…”�”}”(hjž h²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhj› ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j–Œreftype”jrŒ reftarget”j  Œmodname”NŒ classname”Njvjy)�”}”j|]”jA Œc.vimc_streamer_get_sensor”†”asbuh1hhj| ubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¼ h²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hj| ubj”)�”}”(hj—h]”hŒ*”…”�”}”(hjÊ h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1j“hj| ubjL)�”}”(hŒstream”h]”hŒstream”…”�”}”(hj× h²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhj| ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÁhjx ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j»hj h²hh³j h´K�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjiˆuh1jjjjkhjþh²hh³j h´K�ubah}”(h]”jùah ]”(jojpeh"]”h$]”h&]”jtˆju)jvhuh1jh³j h´K�hjûh²hubjx)�”}”(hhh]”j})�”}”(hŒGet sensor from pipeline”h]”hŒGet sensor from pipeline”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K�hjþ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jwhjûh²hh³j h´K�ubeh}”(h]”h ]”(j–Œfunction”eh"]”h$]”h&]”j›j–jœj j�j jž‰jŸ‰j ‰uh1jh²hhhîh³Nh´Nubj¢)�”}”(hŒÁ**Parameters** ``struct vimc_stream *stream`` the pipeline **Description** Helper function to find the sensor device in the pipeline. Returns pointer to sensor device or NULL if not found.”h]”(j})�”}”(hŒ**Parameters**”h]”j¬)�”}”(hj# h]”hŒ Parameters”…”�”}”(hj% h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj! ubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K“hj ubjð)�”}”(hhh]”jõ)�”}”(hŒ,``struct vimc_stream *stream`` the pipeline ”h]”(jû)�”}”(hŒ``struct vimc_stream *stream``”h]”j)�”}”(hjB h]”hŒstruct vimc_stream *stream”…”�”}”(hjD h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj@ ubah}”(h]”h ]”h"]”h$]”h&]”uh1júh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K�hj< ubj)�”}”(hhh]”j})�”}”(hŒ the pipeline”h]”hŒ the pipeline”…”�”}”(hj[ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³jW h´K�hjX ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj< ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jôh³jW h´K�hj9 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jïhj ubj})�”}”(hŒ**Description**”h]”j¬)�”}”(hj} h]”hŒ Description”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj{ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K’hj ubj})�”}”(hŒqHelper function to find the sensor device in the pipeline. Returns pointer to sensor device or NULL if not found.”h]”hŒqHelper function to find the sensor device in the pipeline. Returns pointer to sensor device or NULL if not found.”…”�”}”(hj“ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K‘hj ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¡hhîh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ!vimc_streamer_thread (C function)”Œc.vimc_streamer_thread”hNt”auh1hÿhhîh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ%int vimc_streamer_thread (void *data)”h]”j)�”}”(hŒ$int vimc_streamer_thread(void *data)”h]”(j1)�”}”(hŒint”h]”hŒint”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hj¾ h²hh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K¦ubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÑ h²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hj¾ h²hh³jÐ h´K¦ubjF)�”}”(hŒvimc_streamer_thread”h]”jL)�”}”(hŒvimc_streamer_thread”h]”hŒvimc_streamer_thread”…”�”}”(hjã h²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhjß ubah}”(h]”h ]”(j^j_eh"]”h$]”h&]”hÅhÆuh1jEhj¾ h²hh³jÐ h´K¦ubj¼)�”}”(hŒ (void *data)”h]”jÂ)�”}”(hŒ void *data”h]”(j1)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÿ h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjû ubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hjû ubj”)�”}”(hj—h]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1j“hjû ubjL)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj( h²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhjû ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÁhj÷ ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j»hj¾ h²hh³jÐ h´K¦ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjiˆuh1jjjjkhjº h²hh³jÐ h´K¦ubah}”(h]”jµ ah ]”(jojpeh"]”h$]”h&]”jtˆju)jvhuh1jh³jÐ h´K¦hj· h²hubjx)�”}”(hhh]”j})�”}”(hŒ#Process frames through the pipeline”h]”hŒ#Process frames through the pipeline”…”�”}”(hjR h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K¦hjO h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jwhj· h²hh³jÐ h´K¦ubeh}”(h]”h ]”(j–Œfunction”eh"]”h$]”h&]”j›j–jœjj j�jj jž‰jŸ‰j ‰uh1jh²hhhîh³Nh´Nubj¢)�”}”(hX6**Parameters** ``void *data`` vimc_stream struct of the current stream **Description** From the source to the sink, gets a frame from each subdevice and send to the next one of the pipeline at a fixed framerate. **Return** Always zero (created as ``int`` instead of ``void`` to comply with kthread API).”h]”(j})�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjt h]”hŒ Parameters”…”�”}”(hjv h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjr ubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´Kªhjn ubjð)�”}”(hhh]”jõ)�”}”(hŒ8``void *data`` vimc_stream struct of the current stream ”h]”(jû)�”}”(hŒ``void *data``”h]”j)�”}”(hj“ h]”hŒ void *data”…”�”}”(hj• h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‘ ubah}”(h]”h ]”h"]”h$]”h&]”uh1júh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K¨hj� ubj)�”}”(hhh]”j})�”}”(hŒ(vimc_stream struct of the current stream”h]”hŒ(vimc_stream struct of the current stream”…”�”}”(hj¬ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³j¨ h´K¨hj© ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj� ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jôh³j¨ h´K¨hjŠ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jïhjn ubj})�”}”(hŒ**Description**”h]”j¬)�”}”(hjÎ h]”hŒ Description”…”�”}”(hjÐ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjÌ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´Kªhjn ubj})�”}”(hŒ|From the source to the sink, gets a frame from each subdevice and send to the next one of the pipeline at a fixed framerate.”h]”hŒ|From the source to the sink, gets a frame from each subdevice and send to the next one of the pipeline at a fixed framerate.”…”�”}”(hjä h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K©hjn ubj})�”}”(hŒ **Return**”h]”j¬)�”}”(hjõ h]”hŒReturn”…”�”}”(hj÷ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjó ubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K¬hjn ubj})�”}”(hŒPAlways zero (created as ``int`` instead of ``void`` to comply with kthread API).”h]”(hŒAlways zero (created as ”…”�”}”(hj h²hh³Nh´Nubj)�”}”(hŒ``int``”h]”hŒint”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubhŒ instead of ”…”�”}”(hj h²hh³Nh´Nubj)�”}”(hŒ``void``”h]”hŒvoid”…”�”}”(hj% h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubhŒ to comply with kthread API).”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K­hjn ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¡hhîh²hh³Nh´Nubj)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ#vimc_streamer_s_stream (C function)”Œc.vimc_streamer_s_stream”hNt”auh1hÿhhîh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ`int vimc_streamer_s_stream (struct vimc_stream *stream, struct vimc_ent_device *ved, int enable)”h]”j)�”}”(hŒ_int vimc_streamer_s_stream(struct vimc_stream *stream, struct vimc_ent_device *ved, int enable)”h]”(j1)�”}”(hŒint”h]”hŒint”…”�”}”(hj^ h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjZ h²hh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´KÓubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjm h²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hjZ h²hh³jl h´KÓubjF)�”}”(hŒvimc_streamer_s_stream”h]”jL)�”}”(hŒvimc_streamer_s_stream”h]”hŒvimc_streamer_s_stream”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhj{ ubah}”(h]”h ]”(j^j_eh"]”h$]”h&]”hÅhÆuh1jEhjZ h²hh³jl h´KÓubj¼)�”}”(hŒE(struct vimc_stream *stream, struct vimc_ent_device *ved, int enable)”h]”(jÂ)�”}”(hŒstruct vimc_stream *stream”h]”(j#)�”}”(hj&h]”hŒstruct”…”�”}”(hj› h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj— ubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¨ h²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hj— ubh)�”}”(hhh]”jL)�”}”(hŒ vimc_stream”h]”hŒ vimc_stream”…”�”}”(hj¹ h²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhj¶ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j–Œreftype”jrŒ reftarget”j» Œmodname”NŒ classname”Njvjy)�”}”j|]”j)�”}”jrj� sbŒc.vimc_streamer_s_stream”†”asbuh1hhj— ubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙ h²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hj— ubj”)�”}”(hj—h]”hŒ*”…”�”}”(hjç h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1j“hj— ubjL)�”}”(hŒstream”h]”hŒstream”…”�”}”(hjô h²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhj— ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÁhj“ ubjÂ)�”}”(hŒstruct vimc_ent_device *ved”h]”(j#)�”}”(hj&h]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj ubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hj ubh)�”}”(hhh]”jL)�”}”(hŒvimc_ent_device”h]”hŒvimc_ent_device”…”�”}”(hj+ h²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhj( ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j–Œreftype”jrŒ reftarget”j- Œmodname”NŒ classname”Njvjy)�”}”j|]”jÕ Œc.vimc_streamer_s_stream”†”asbuh1hhj ubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjI h²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hj ubj”)�”}”(hj—h]”hŒ*”…”�”}”(hjW h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1j“hj ubjL)�”}”(hŒved”h]”hŒved”…”�”}”(hjd h²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÁhj“ ubjÂ)�”}”(hŒ int enable”h]”(j1)�”}”(hŒint”h]”hŒint”…”�”}”(hj} h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjy ubj5)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹ h²hh³Nh´Nubah}”(h]”h ]”jAah"]”h$]”h&]”uh1j4hjy ubjL)�”}”(hŒenable”h]”hŒenable”…”�”}”(hj™ h²hh³Nh´Nubah}”(h]”h ]”jWah"]”h$]”h&]”uh1jKhjy ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÁhj“ ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j»hjZ h²hh³jl h´KÓubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjiˆuh1jjjjkhjV h²hh³jl h´KÓubah}”(h]”jQ ah ]”(jojpeh"]”h$]”h&]”jtˆju)jvhuh1jh³jl h´KÓhjS h²hubjx)�”}”(hhh]”j})�”}”(hŒ.Start/stop the streaming on the media pipeline”h]”hŒ.Start/stop the streaming on the media pipeline”…”�”}”(hjà h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´KÓhjÀ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jwhjS h²hh³jl h´KÓubeh}”(h]”h ]”(j–Œfunction”eh"]”h$]”h&]”j›j–jœjÛ j�jÛ jž‰jŸ‰j ‰uh1jh²hhhîh³Nh´Nubj¢)�”}”(hX”**Parameters** ``struct vimc_stream *stream`` the pointer to the stream structure of the current stream ``struct vimc_ent_device *ved`` pointer to the vimc entity of the entity of the stream ``int enable`` flag to determine if stream should start/stop **Description** When starting, check if there is no ``stream->kthread`` allocated. This should indicate that a stream is already running. Then, it initializes the pipeline, creates and runs a kthread to consume buffers through the pipeline. When stopping, analogously check if there is a stream running, stop the thread and terminates the pipeline. **Return** 0 if success, error code otherwise.”h]”(j})�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjå h]”hŒ Parameters”…”�”}”(hjç h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjã ubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K×hjß ubjð)�”}”(hhh]”(jõ)�”}”(hŒY``struct vimc_stream *stream`` the pointer to the stream structure of the current stream ”h]”(jû)�”}”(hŒ``struct vimc_stream *stream``”h]”j)�”}”(hjh]”hŒstruct vimc_stream *stream”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1júh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´KÕhjþ ubj)�”}”(hhh]”j})�”}”(hŒ9the pointer to the stream structure of the current stream”h]”hŒ9the pointer to the stream structure of the current stream”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³jh´KÕhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjþ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jôh³jh´KÕhjû ubjõ)�”}”(hŒW``struct vimc_ent_device *ved`` pointer to the vimc entity of the entity of the stream ”h]”(jû)�”}”(hŒ``struct vimc_ent_device *ved``”h]”j)�”}”(hj=h]”hŒstruct vimc_ent_device *ved”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1júh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´KÖhj7ubj)�”}”(hhh]”j})�”}”(hŒ6pointer to the vimc entity of the entity of the stream”h]”hŒ6pointer to the vimc entity of the entity of the stream”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³jRh´KÖhjSubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jôh³jRh´KÖhjû ubjõ)�”}”(hŒ=``int enable`` flag to determine if stream should start/stop ”h]”(jû)�”}”(hŒ``int enable``”h]”j)�”}”(hjvh]”hŒ int enable”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjtubah}”(h]”h ]”h"]”h$]”h&]”uh1júh³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´K×hjpubj)�”}”(hhh]”j})�”}”(hŒ-flag to determine if stream should start/stop”h]”hŒ-flag to determine if stream should start/stop”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³j‹h´K×hjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjpubeh}”(h]”h ]”h"]”h$]”h&]”uh1jôh³j‹h´K×hjû ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jïhjß ubj})�”}”(hŒ**Description**”h]”j¬)�”}”(hj±h]”hŒ Description”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´KÙhjß ubj})�”}”(hXLWhen starting, check if there is no ``stream->kthread`` allocated. This should indicate that a stream is already running. Then, it initializes the pipeline, creates and runs a kthread to consume buffers through the pipeline. When stopping, analogously check if there is a stream running, stop the thread and terminates the pipeline.”h]”(hŒ$When starting, check if there is no ”…”�”}”(hjÇh²hh³Nh´Nubj)�”}”(hŒ``stream->kthread``”h]”hŒstream->kthread”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÇubhX allocated. This should indicate that a stream is already running. Then, it initializes the pipeline, creates and runs a kthread to consume buffers through the pipeline. When stopping, analogously check if there is a stream running, stop the thread and terminates the pipeline.”…”�”}”(hjÇh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´KØhjß ubj})�”}”(hŒ **Return**”h]”j¬)�”}”(hjêh]”hŒReturn”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjèubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´KÞhjß ubj})�”}”(hŒ#0 if success, error code otherwise.”h]”hŒ#0 if success, error code otherwise.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j|h³Œƒ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/vimc-devel:15: ./drivers/media/test-drivers/vimc/vimc-streamer.c”h´Kßhjß ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¡hhîh²hh³Nh´Nubeh}”(h]”Œ vimc-streamer”ah ]”h"]”Œ vimc-streamer”ah$]”h&]”uh1hÈhhÝh²hh³hÇh´K ubeh}”(h]”Œsource-code-documentation”ah ]”h"]”Œsource code documentation”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´Kubeh}”(h]”Œ(the-virtual-media-controller-driver-vimc”ah ]”h"]”Œ*the virtual media controller driver (vimc)”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jQŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j+j(j#j jjuŒ nametypes”}”(j+‰j#‰j‰uh}”(j(hÊj hÝjhîjjj0j5j#j(j¨j­jùjþjµ jº jQ jV uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.