libyuv_plugin.dll 是基于 Google 开源 libyuv 库构建的插件式动态链接库,主要服务于音视频采集、编解码、渲染与推流链路中的图像前处理环节,其核心能力集中在四个方面。
1. 色彩空间转换。实现 I420、NV12、NV21、YUY2、RGB24、ARGB 等格式之间的双向转换,例如 I420ToNV12、NV12ToARGB、ARGBToI420,解决采集端与编码端像素格式不一致的问题。
2. 图像缩放与采样。通过 ScalePlane、ScalePlane_12 等接口完成分辨率适配,支持 box、bilinear 等滤波策略,并针对亮度与色度平面分别处理,避免色度模糊或锯齿。
3. 旋转与镜像。提供 RotatePlane、I420Rotate、MirrorPlane 等原语,处理摄像头方向、前置后置切换以及竖屏推流场景下的画面旋转。
4. 平面分离与合并。完成 UV 交织与分离(SplitUVPlane、MergeUVPlane)、格式对齐与步幅(stride)适配,并借助 SSE2、AVX2、NEON 等 SIMD 指令集加速,降低单帧处理耗时。
程序启动阶段 依赖该模块的进程在加载时会抛出“找不到 libyuv_plugin.dll”错误,常见系统错误码为 126(ERROR_MOD_NOT_FOUND)或 0xc0000135,宿主软件、插件容器或播放器可能直接启动失败或闪退。
图像显示阶段 色彩空间转换链断裂,典型表现为预览黑屏、绿屏、花屏、偏色或画面倒置,NV12 与 I420 解释错位还会产生上下半幅色度错乱。
分辨率适配阶段 缩放接口不可用,导致画面拉伸变形、比例失调,或被迫回退到 CPU 软件缩放路径,帧率下降、CPU 占用显著升高。
编码推流阶段 编码器无法获取合法帧缓冲,录制、直播、转码任务初始化失败,日志中往往出现参数非法或缓冲区为空等异常,中断整个音视频管线。