xref: /OK3568_Linux_fs/external/rknpu2/examples/3rdparty/zlmediakit/include/mk_h264_splitter.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  * Copyright (c) 2016 The ZLMediaKit project authors. All Rights Reserved.
3  *
4  * This file is part of ZLMediaKit(https://github.com/xia-chu/ZLMediaKit).
5  *
6  * Use of this source code is governed by MIT license that can be found in the
7  * LICENSE file in the root of the source tree. All contributing project authors
8  * may be found in the AUTHORS file in the root of the source tree.
9  */
10 
11 #ifndef ZLMEDIAKIT_MK_H264_SPLITTER_H
12 #define ZLMEDIAKIT_MK_H264_SPLITTER_H
13 
14 #include "mk_common.h"
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 typedef void *mk_h264_splitter;
21 
22 /**
23  * h264 分帧器输出回调函数
24  * @param user_data 设置回调时的用户数据指针
25  * @param splitter 对象
26  * @param frame 帧数据
27  * @param size 帧数据长度
28  */
29 typedef void(API_CALL *on_mk_h264_splitter_frame)(void *user_data, mk_h264_splitter splitter, const char *frame, int size);
30 
31 /**
32  * 创建h264分帧器
33  * @param cb 分帧回调函数
34  * @param user_data 回调用户数据指针
35  * @return 分帧器对象
36  */
37 API_EXPORT mk_h264_splitter API_CALL mk_h264_splitter_create(on_mk_h264_splitter_frame cb, void *user_data);
38 
39 /**
40  * 删除h264分帧器
41  * @param ctx 分帧器
42  */
43 API_EXPORT void API_CALL mk_h264_splitter_release(mk_h264_splitter ctx);
44 
45 /**
46  * 输入数据并分帧
47  * @param ctx 分帧器
48  * @param data h264/h265数据
49  * @param size 数据长度
50  */
51 API_EXPORT void API_CALL mk_h264_splitter_input_data(mk_h264_splitter ctx, const char *data, int size);
52 
53 #ifdef __cplusplus
54 }
55 #endif
56 #endif //ZLMEDIAKIT_MK_H264_SPLITTER_H
57