# Pipelines¶

Figure 60 Pipeline structure

## Creating a Pipeline¶

Figure 61 Creating a pipeline

The scheduling component (sched_comp) is configured by the driver inside the IPC request. It is usually set to the dai component id for pipelines that are attached to a dai instance and are driven by that dai’s IO events.

## Executing an Operation¶

Most of the pipeline functions sets the operation id and executes a common routine, either component_op_downstream() in case of a playback path or component_op_upstream() otherwise.

Figure 62 Pipeline Operation

### Propagating the Operation Downstream¶

Figure 63 Going downstream

### Propagating the Operation Upstream¶

The comp_op_upstream() algorithm is identical except for the loop at the end that runs over the sources and calls itself recursively for producers.

## Resetting Pipeline¶

Figure 64 Resetting a pipeline

## Configuring Audio Parameters & Preparing for Use¶

Figure 65 Configuring audio parameters

## Scheduling¶

A pipeline’s task (see _Processing_) may be scheduled at a certain point in time using pipeline_schedule_copy(start). In order to schedule the next stream copy operation in idle (see pre-loader), pipeline_schedule_copy_idle() should be used.

## Processing¶

Figure 66 Pipeline task routine called by the scheduler