Tange Cloud for Device
 Rev.333
载入中...
搜索中...
未找到
TgCloudApi_mufb.h 文件参考

多用户帧缓冲区导出接口 更多...

#include "platforms.h"

浏览该文件的源代码.

结构体

struct  MUFHEADER
 帧头 更多...
 
struct  MUFBCLT
 mufb client 更多...
 

函数

int TcfbClientInit (MUFBCLT *clt)
 初始化一个缓冲区用户
 
int TcfbClientDestroy (MUFBCLT *clt)
 删除缓冲区用户
 
MUFHEADERTcfbFetchPreKeyFrame (MUFBCLT *clt)
 取最近的关键帧(用于预录) 使用完后调用 TcfbReleaseFrame() 释放
 
MUFHEADERTcfbFetchFrame (MUFBCLT *clt, int *b_overwritten)
 获取下一帧 使用完后调用mufb_release_frame()释放
 
int TcfbGetFrameDataPtr (const MUFBCLT *clt, const MUFHEADER *pfh, struct iovec vec[2])
 获取帧数据指针
 
int TcfbReleaseFrame (MUFBCLT *clt, struct MUFHEADER *pfh)
 释放 Fetch 操作获取的数据帧, 并且内部指针前进到下一帧(下一次 TcfbFetchFrame() 返回新的帧)
 

详细描述

多用户帧缓冲区导出接口

SDK的云存储模块在内部维护了一个循环缓冲区,用于保存要上传的音视频数据。
当缓冲区満时,最老的数据帧会被丢弃。

应用层可以复用这个缓冲机制,用于SD录像、网络传输等。

在文件 TgCloudApi_mufb.h 中定义.


结构体说明

◆ MUFHEADER

struct MUFHEADER

帧头

在文件 TgCloudApi_mufb.h20 行定义.

成员变量
unsigned short type media type
unsigned short flags 1 - sync point, key frame
unsigned int ts timestamp, used by user
unsigned int len length of data(exclude header)

◆ MUFBCLT

struct MUFBCLT

mufb client

在文件 TgCloudApi_mufb.h31 行定义.

成员变量
struct mufbuffer * fb
int clt_id

函数说明

◆ TcfbClientInit()

int TcfbClientInit ( MUFBCLT * clt)

初始化一个缓冲区用户

返回
0: ok; -1: 云存储还没有初始化

◆ TcfbClientDestroy()

int TcfbClientDestroy ( MUFBCLT * clt)

删除缓冲区用户

参数
cltTcfbClientInit()初始化过的MUFBCLT指针
返回
: 0 - ok; -1 - 参数无效

◆ TcfbFetchPreKeyFrame()

MUFHEADER * TcfbFetchPreKeyFrame ( MUFBCLT * clt)

取最近的关键帧(用于预录) 使用完后调用 TcfbReleaseFrame() 释放

返回
NULL 或录像开始的关键帧

◆ TcfbFetchFrame()

MUFHEADER * TcfbFetchFrame ( MUFBCLT * clt,
int * b_overwritten )

获取下一帧 使用完后调用mufb_release_frame()释放

参数
cltMUFBCLT 指针
b_overwrittenwhen returns, indicates whether some frames are discarded

◆ TcfbGetFrameDataPtr()

int TcfbGetFrameDataPtr ( const MUFBCLT * clt,
const MUFHEADER * pfh,
struct iovec vec[2] )

获取帧数据指针

参数
clt
pfhpointer to frame header
vecspace to receive the pointer(s) of the frame
返回
number of iovec filled in vec

◆ TcfbReleaseFrame()

int TcfbReleaseFrame ( MUFBCLT * clt,
struct MUFHEADER * pfh )

释放 Fetch 操作获取的数据帧, 并且内部指针前进到下一帧(下一次 TcfbFetchFrame() 返回新的帧)

参数
clt
pfhfetch操作返回的帧指针
返回
always 0