学习

obs源码分析

2021-07-22  本文已影响0人  我在等你回复可你没回

obs源码分析

一.obs音视频同步方法

参考:https://blog.csdn.net/liuhengxiao/article/details/83059314

源码在D:\work\obs-studio-jianan\obs-studio\libobs\obs-output.c

static bool prune_interleaved_packets(struct obs_output *output)
{
    size_t start_idx = 0;
        //先删除超过一个视频帧间隔之前的所有帧
    int prune_start = prune_premature_packets(output);


    /* prunes the first video packet if it's too far away from audio */
    if (prune_start == -1)
        return false;
    else if (prune_start != 0)
        start_idx = (size_t)prune_start;
    else
               //如果prune_premature_packets没有,找出离视频帧最近的音频帧作为开始
        start_idx = get_interleaved_start_idx(output);

    if (start_idx)
        discard_to_idx(output, start_idx);

    return true;
}

一.obs采集与渲染流程

参考:https://www.cnblogs.com/JazzerDaxian/p/8480229.html
摄像头通过dshow来采集的,然后通过obs_source_output_video方法来写入一个队列,然后渲染线程obs_source_video_tick读这个队列的内容来渲染显示咯

上一篇下一篇

猜你喜欢

热点阅读