Lines Matching refs:pipeline

44     struct ia_css_pipeline *pipeline,
53 static void ia_css_pipeline_set_zoom_stage(struct ia_css_pipeline *pipeline);
66 struct ia_css_pipeline *pipeline,
71 assert(pipeline);
72 IA_CSS_ENTER_PRIVATE("pipeline = %p, pipe_id = %d, pipe_num = %d, dvs_frame_delay = %d",
73 pipeline, pipe_id, pipe_num, dvs_frame_delay);
74 if (!pipeline) {
79 pipeline_init_defaults(pipeline, pipe_id, pipe_num, dvs_frame_delay);
102 /* @brief destroy a pipeline
104 * @param[in] pipeline
108 void ia_css_pipeline_destroy(struct ia_css_pipeline *pipeline)
110 assert(pipeline);
111 IA_CSS_ENTER_PRIVATE("pipeline = %p", pipeline);
113 if (!pipeline) {
119 IA_CSS_LOG("pipe_num = %d", pipeline->pipe_num);
121 /* Free the pipeline number */
122 ia_css_pipeline_clean(pipeline);
127 /* Run a pipeline and wait till it completes. */
129 struct ia_css_pipeline *pipeline)
134 assert(pipeline);
136 "ia_css_pipeline_start() enter: pipe_id=%d, pipeline=%p\n",
137 pipe_id, pipeline);
138 pipeline->pipe_id = pipe_id;
139 sh_css_sp_init_pipeline(pipeline, pipe_id, pipe_num,
177 IA_CSS_LOG("unmapped pipeline number");
197 int ia_css_pipeline_request_stop(struct ia_css_pipeline *pipeline)
202 assert(pipeline);
204 if (!pipeline)
208 "ia_css_pipeline_request_stop() enter: pipeline=%p\n",
209 pipeline);
210 pipeline->stop_requested = true;
215 ia_css_pipeline_get_sp_thread_id(pipeline->pipe_num, &thread_id);
226 sh_css_sp_uninit_pipeline(pipeline->pipe_num);
234 void ia_css_pipeline_clean(struct ia_css_pipeline *pipeline)
238 assert(pipeline);
239 IA_CSS_ENTER_PRIVATE("pipeline = %p", pipeline);
241 if (!pipeline) {
246 s = pipeline->stages;
254 pipeline_init_defaults(pipeline, pipeline->pipe_id, pipeline->pipe_num,
255 pipeline->dvs_frame_delay);
260 /* @brief Add a stage to pipeline.
262 * @param pipeline Pointer to the pipeline to be added to.
267 * Add a new stage to a non-NULL pipeline.
272 struct ia_css_pipeline *pipeline,
280 assert(pipeline);
282 last = pipeline->stages;
324 pipeline->stages = new_stage;
335 void ia_css_pipeline_finalize_stages(struct ia_css_pipeline *pipeline,
341 assert(pipeline);
342 for (stage = pipeline->stages; stage; stage = stage->next) {
346 pipeline->num_stages = i;
348 ia_css_pipeline_set_zoom_stage(pipeline);
349 ia_css_pipeline_configure_inout_port(pipeline, continuous);
352 int ia_css_pipeline_get_stage(struct ia_css_pipeline *pipeline,
358 assert(pipeline);
362 for (s = pipeline->stages; s; s = s->next) {
372 *pipeline,
378 assert(pipeline);
381 for (s = pipeline->stages; s; s = s->next) {
391 *pipeline,
398 if ((!pipeline) || (!fw_handle))
401 for (s = pipeline->stages; s; s = s->next) {
411 struct ia_css_pipeline *pipeline,
417 assert(pipeline);
424 for (s = pipeline->stages; s; s = s->next) {
432 return ia_css_pipeline_get_stage(pipeline, mode, stage);
435 bool ia_css_pipeline_has_stopped(struct ia_css_pipeline *pipeline)
450 ia_css_pipeline_get_sp_thread_id(pipeline->pipe_num, &thread_id);
487 * we use a pipeline. A pipeline contains a number of stages, each with
489 * When stages are added to a pipeline, output frames that are not passed
666 struct ia_css_pipeline *pipeline,
673 pipeline->pipe_id = pipe_id;
674 pipeline->stages = NULL;
675 pipeline->stop_requested = false;
676 pipeline->current_stage = NULL;
678 memcpy(&pipeline->in_frame, &ia_css_default_frame,
682 memcpy(&pipeline->out_frame[i], &ia_css_default_frame,
684 memcpy(&pipeline->vf_frame[i], &ia_css_default_frame,
687 pipeline->num_execs = -1;
688 pipeline->acquire_isp_each_stage = true;
689 pipeline->pipe_num = (uint8_t)pipe_num;
690 pipeline->dvs_frame_delay = dvs_frame_delay;
693 static void ia_css_pipeline_set_zoom_stage(struct ia_css_pipeline *pipeline)
698 assert(pipeline);
699 if (pipeline->pipe_id == IA_CSS_PIPE_ID_PREVIEW) {
700 /* in preview pipeline, vf_pp stage should do zoom */
701 err = ia_css_pipeline_get_stage(pipeline, IA_CSS_BINARY_MODE_VF_PP, &stage);
704 } else if (pipeline->pipe_id == IA_CSS_PIPE_ID_CAPTURE) {
705 /* in capture pipeline, capture_pp stage should do zoom */
706 err = ia_css_pipeline_get_stage(pipeline, IA_CSS_BINARY_MODE_CAPTURE_PP,
710 } else if (pipeline->pipe_id == IA_CSS_PIPE_ID_VIDEO) {
711 /* in video pipeline, video stage should do zoom */
712 err = ia_css_pipeline_get_stage(pipeline, IA_CSS_BINARY_MODE_VIDEO, &stage);
715 } else if (pipeline->pipe_id == IA_CSS_PIPE_ID_YUVPP) {
716 /* in yuvpp pipeline, first yuv_scaler stage should do zoom */
717 err = ia_css_pipeline_get_stage(pipeline, IA_CSS_BINARY_MODE_CAPTURE_PP,