# VO Mix Order Demo

## Overview

This sample demonstrates how to use the K230 VO (Video Output) module to compose and order multiple video channels on one display. This is commonly used in multi-camera monitoring and picture-in-picture scenarios.

## Functional Description

### VO Mix-Order Functions

This sample demonstrates the following VO mix-order capabilities:

- multiple video inputs
- mixed display of multiple channels
- picture-in-picture layouts
- layer priority management
- per-channel display region configuration

### Supported Functions

- multi-channel input
- multiple mix modes
- scaling support
- adjustable display position

## Source Location

Demo source path: `src/rtsmart/examples/mpp/sample_vo_mix_order`

## Usage

### Build Method

In the `K230 RTOS SDK` root directory, run `make menuconfig`, enable the VO mix-order sample, then rebuild the firmware.

### Run Example

```bash
./sample_vo_mix_order
```

### Expected Result

After running, the sample will:

1. initialize the VO module
1. configure multiple video input channels
1. set the mix-order parameters
1. start mixed display output
1. support dynamic changes to channel order and position

Example output:

```text
VO Mix Order Demo
===================

Initializing VO module...
VO initialized successfully

Configuring video mix...
Channel 0: Main video, 1920x1080, Full screen
Channel 1: Sub video 1, 640x480, Position(100,100)
Channel 2: Sub video 2, 640x480, Position(1200,100)
Channel 3: Sub video 3, 640x480, Position(100,600)

Starting video mix...
Video mix started!

Display info:
Main: 1920x1080 @ 30fps
Sub1: 640x480 @ 30fps
Sub2: 640x480 @ 30fps
Sub3: 640x480 @ 30fps

Use keys to adjust video order:
[1] Move sub1 forward
[2] Move sub1 backward
[3] Move sub2 forward
[4] Move sub2 backward
...
[Q] Quit

Press Ctrl+C to exit.
```

```{admonition} Tip
VO mix-order can be used for multi-camera monitoring and picture-in-picture applications. For VO APIs, refer to [Display Output API](../../api_reference/mpp/display.md).
```
