obs_source_frame
+ -

obs_source_frame简介

2024-07-02 10 0

obs_source_frame是视频图像的数据流结构。

struct obs_source_frame {
    uint8_t *data[MAX_AV_PLANES];
    uint32_t linesize[MAX_AV_PLANES];
    uint32_t width;
    uint32_t height;
    uint64_t timestamp;

    enum video_format format;
    float color_matrix[16];
    bool full_range;
    uint16_t max_luminance;
    float color_range_min[3];
    float color_range_max[3];
    bool flip;
    uint8_t flags;
    uint8_t trc; /* enum video_trc */

    /* used internally by libobs */
    volatile long refs;
    bool prev_frame;
};

对于任意一个输出源,即生产图像的obs_source,其结构体成员用于缓存其产生的视频源:

struct obs_source {
    ...
    DARRAY(struct obs_source_frame *) async_frames;
    pthread_mutex_t async_mutex;
    ...
};

相关函数

由于async_frames缓存视频图像,故会使用函数obs_source_output_video将生成的图像源增加队列中,而使用obs_source_get_frame从队列中取了一个obs_source_frame

struct obs_source_frame *obs_source_get_frame(obs_source_t *source);
void obs_source_output_video(obs_source_t *source,const struct obs_source_frame *frame);

0 篇笔记 写笔记

作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!