# VO OSD Demo

## Overview

This sample demonstrates how to use the VO OSD (On-Screen Display) module on K230 to overlay text, graphics, timestamps, and logos on top of video.

## Functional Description

### OSD Functions

This sample demonstrates the following OSD capabilities:

- text overlays
- graphic drawing overlays
- time and date display
- region configuration
- transparency control

### Supported OSD Types

- text overlays
- graphic overlays
- timestamp overlays
- logo overlays

### OSD Characteristics

- multi-layer support
- color configuration
- font-size configuration
- dynamic content update

## Source Location

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

## Usage

### Build Method

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

### Run Example

```bash
./sample_vo_osd
```

### Expected Result

After running, the sample will:

1. initialize VO
1. configure video output
1. create OSD layers
1. configure OSD parameters
1. display OSD content

Example output:

```text
VO OSD Demo
=============

Initializing VO module...
VO initialized successfully

Configuring OSD layer...
OSD layer created

Setting OSD content...
Text: "K230 RTOS Demo"
Color: White
Position: Top left
Font: Large

Starting OSD display...
OSD display started!

Display info:
Video: 1920x1080 @ 30fps
OSD layer 1: Active
Text: "K230 RTOS Demo"
Time: 2025-02-03 18:30:00

Use keys to change OSD content:
[1] Change text
[2] Change color
[3] Change position
[T] Update time
[C] Clear OSD
[Q] Quit

Press Ctrl+C to exit.
```

```{admonition} Tip
OSD can be used to display status, logos, and timestamps, and supports dynamic updates. For VO APIs, refer to [Display Output API](../../api_reference/mpp/display.md).
```
