OBS源码分析之render_video处理流程

最近在看OBS源码,发现其复杂度真不是一般的高,看到render_video时脑子混乱了,经过单步调试跟踪才终于明朗了,下面先贴上源码:

static inline voidrender_video(obs_source_t *source)

{

if(source->info.type != OBS_SOURCE_TYPE_FILTER &&

    (source->info.output_flags &OBS_SOURCE_VIDEO) == 0)

return;

 

if(source->info.type == OBS_SOURCE_TYPE_INPUT &&

    (source->info.output_flags &OBS_SOURCE_ASYNC) != 0 &&

    !source->rendering_filter) {

if(deinterlacing_enabled(source))

deinterlace_update_async_video(source);

obs_source_update_async_video(source);

}

 

if(!source->context.data || !source->enabled) {

if(source->filter_parent)

obs_source_skip_video_filter(source);

return;

}

 

if(source->filters.num && !source->rendering_filter)

obs_source_render_filters(source);

 

elseif (source->info.video_render)

obs_source_main_render(source);

 

elseif (source->filter_target)

obs_source_video_render(source->filter_target);

 

elseif (deinterlacing_enabled(source))

deinterlace_render(source);

 

else

obs_source_render_async_video(source);

}

 

如果source不是OBS_SOURCE_TYPE_FILTER且不是OBS_SOURCE_VIDEO直接退出;

如果source为OBS_SOURCE_TYPE_INPUT且是OBS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值