---
title: 使用Atlas 200/300/500 推理产品或Atlas 训练系列产品时，视频帧解码失败不触发回调函数-昇腾社区
description: 用户输入码流给VDEC解码，某些帧或所有帧都没有触发回调函数，用户收不到解码结果。
keywords: VDEC;解码;视频;帧;回调函数
url: https://www.hiascend.com/document/caselibrary/detail/topic_0000001372488793
section: (其他)
---

# 使用Atlas 200/300/500 推理产品或Atlas 训练系列产品时，视频帧解码失败不触发回调函数-昇腾社区

URL: https://www.hiascend.com/document/caselibrary/detail/topic_0000001372488793
描述: 用户输入码流给VDEC解码，某些帧或所有帧都没有触发回调函数，用户收不到解码结果。
关键词: VDEC;解码;视频;帧;回调函数

昇腾文档 [了解详情](https://www.hiascend.com/document)

故障案例 [了解详情](https://www.hiascend.com/document/caselibrary)

使用Atlas 200/300/500 推理产品或Atlas 训练系列产品时，视频帧解码失败不触发回调函数

使用Atlas 200/300/500 推理产品或Atlas 训练系列产品时，视频帧解码失败不触发回调函数

2024/12/18

736

问题信息

| 问题来源 | 产品大类 | 关键字 |
| --- | --- | ---|
| 官方 | 模型推理 | VDEC、解码、视频、帧、回调函数 |

#### 问题现象描述

用户输入码流给VDEC解码，某些帧或所有帧都没有触发回调函数，用户收不到解码结果。

#### 原因分析

码流中某些帧是坏帧，导致语法解析不出这些帧的含义，或者解码这些帧失败，从而不调用回调函数。

#### 解决措施

针对分析的可能原因，请参考以下步骤进行处理：

1. 查看日志中是否存在视频解码丢帧/丢包情况的日志报错信息，若有，则是因为异常帧解码失败导致没有回调。

2. 若没有视频解码丢帧/丢包情况的日志报错信息，则调整DVPP模块或全局日志级别为info，查看下述三条日志打印的总次数是否和输入的帧数相等。

（1）"The queue is empty, so call the non-intelligent pointer callback interface."

（2）"The queue is not empty, so call the smart pointer callback interface."

（3）"The queue is not empty, but hiai_data_sp is nullptr."

生成上述3种日志信息的场景如下：

- 未使用hiai_data_sp，成功解码返回，打印（1）日志，然后调用用户注册的回调函数。
- 每一帧对应设置一个hiai_data_sp，成功解码返回，打印（2）日志，然后调用用户注册的回调函数。
- N帧对应设置一个hiai_data_sp，第1帧成功解码返回，打印（2）日志，然后调用用户注册的回调函数；其他N-1帧，成功解码后打印（3）日志信息，并调用用户注册的回调函数。

不论上述场景中哪一种，均会调用用户注册的回调函数，即只要调用一次用户回调函数就说明解码返回一帧。所以上述三条日志出现的次数总和与用户输入总帧数相等，则说明无解码丢帧，用户需排查自身接收解码结果的统计是否有误。

本页内容

- 问题信息
- 问题现象描述
- 原因分析
- 解决措施
