本文介绍了API中封装音频帧和视频帧的数据类型。

定义

封装音频帧和视频帧的数据类型。

struct rts_frame
{
    void *buf;              // where frame data is stored
    int size;               // size of frame data in bytes
    int is_audio;           // 1 for audio frame, 0 for video frame
    unsigned long long pts; // presentation time stamp, in ms
    unsigned long long dts; // decoding time stamp, in ms
    int flag;               // for video frame (is_audio == 0)
                            // bit 0: key frame
                            // bit 1: corruption
                            // bit 2: sps
                            // bit 3: sps change
    int duration;           // in ms
    // use this function to free rts_frame object
    void (*free_ptr)(struct rts_frame *);
    unsigned int uid; // reserved.
    struct pusher_delay delay;
    // msid-value = msid-id [ SP msid-appdata ]
    char msid[NET_MSID_MAX_LENGTH + 1];
};                

成员介绍

成员 解释
buf frame数据buffer。
size buf的字节数。
is_audio 是否是音频帧。取值:
  • 1:音频帧。
  • 0:视频帧。
pts 演示时间戳。单位:毫秒。
dts 解码时间戳。单位:毫秒。
flag 当is_audio等于0时有效。取值:
  • 1:损坏标志。
  • 0:关键帧标志。
duration 帧持续时间。单位:毫秒。
free_ptr 函数指针,用来释放当前的rts_frame对象,比如frm->free_ptr(frm);
uid 预留参数,标记数据属于哪个流。
pusher_delay 用于记录统计推流延迟信息的数据类型。详情请参见pusher_delay