---
title: 样例介绍
description: "单击vdec_sample(https://gitee.com/ascend/samples/tree/master/cplusplus/level1_single_api/7_dvpp/vdec_sample)获取样例"
url: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/latest/Application%20Development%20Guide/aadgc/aclcppdevg_04_0070.html
sourcePath: /source/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application Development Guide/aadgc/aclcppdevg_04_0070.html
indexId: ebfc2ba02721543aebfbf762d8082def740f8782eae43737e3d72ef23d0e9835105
---
# 样例介绍

#### 获取样例

单击vdec_sample(https://gitee.com/ascend/samples/tree/master/cplusplus/level1_single_api/7_dvpp/vdec_sample)获取样例


#### 功能描述

该样例实现H264码流格式的视频解码。


#### 原理介绍

在该样例中，涉及的关键功能点，如下表所示。

| 初始化 | 调用aclInit接口初始化AscendCL配置。 调用aclFinalize接口实现AscendCL去初始化。 |
| --- | --- |
| Device管理 | 调用aclrtSetDevice接口指定用于运算的Device。 调用aclrtGetRunMode接口获取软件栈的运行模式，根据运行模式的不同，内部处理流程不同。 调用aclrtResetDevice接口复位当前运算的Device，回收Device上的资源。 |
| Context管理 | 调用aclrtCreateContext接口创建Context。 调用aclrtDestroyContext接口销毁Context。 |
| 内存管理 | 调用aclrtMallocHost接口/aclrtFreeHost接口申请/释放Host上内存。 执行媒体数据处理时，若需要申请Device上的内存存放输入或输出数据，需调用hi\_mpi\_dvpp\_malloc接口/hi\_mpi\_dvpp\_free接口申请/释放内存。 |
| 数据传输 | 如果在板端环境上运行应用，则无需进行数据传输。 |
| 媒体数据处理V2 | 参见VDEC视频解码功能/JPEGD图片解码功能中的接口。 |


#### 目录结构

样例代码结构如下所示。

```
├── Vdec.h                  //声明解码函数的头文件
├── Vdec.cpp                //解码函数的实现文件
├── VdecDemo.cpp             //main函数的实现文件
├── CMakeLists.txt           //编译脚本
```
