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