SkillAgentSearch skills...

Textureio

a helper library for mapping video frames(memory yuv,rgb,hw vaapi,vdpau,dxva,rkmpp...) to hardware renderer(opengl,drm prime,dx...)

Install / Use

/learn @MountainRipper/Textureio
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

TextureIO

TextureIO是一个用于视频帧的转换库,以及到图形API的IO库,主要包含以下功能

  • 内存视频帧上传至GPU纹理
  • 纹理读取至内存(计划内)
  • 硬件视频帧映射至GPU纹理 (计划内)
  • 内存视频帧格式相互转换,同时可以进行角度转换,尺寸缩放,AspectCrop裁剪,AspectFit包围
  • 为内存视频帧提供参考shader供宿主图形程序使用(顶点着色器包含位移,旋转,缩放的设置)
  • 提供简单API进行视频帧直接渲染,宿主程序可将其作为黑盒使用 (宿主程序可绑定帧缓冲来获取到图像)
  • 支持bt601, bt709, bt2020, bt601 full range, bt709 full range, bt2020 full range渲染
  • 内存视频帧转换使用libyuv实现,性能优异
  • 实现了any to any的格式转换,根据输入格式,选择i420,i422,i444,rgba32作为中间格式,避免质量损失。
  • 中间格式可以和任意格式直接转入和转出,某些转换可以绕过中间格式选择优化转换器。

目前支持的视频帧格式: I420,YV12,NV12,NV21,I422,NV16,NV61,YUYV422,YVYU422,UYVY422,I444,NV24,NV42,YUV444,RGB24,BGR24,RGBA32,BGRA32,ARGB32,ABGR32,GRAY8,GRAY8A

目前支持的图形API: OpenGL,OpenGL ES

计划中图形API: DirectX9/11/12, Vulkan, Metal

计划中硬件视频格式: Linux: VAAPI,VDPAU,DRM Prime. Windows:ID3D11Texture2D,ID3D11VideoDecoderOutputView,LPDIRECT3DSURFACE9. Android: HardwareBuffer. Apple:VideoToolBox

支持的OS: Linux,Windows(已测试) macOS,iOS,Android,*BSD(未测试,计划中)

目前项目处于紧密开发中,作为多媒体框架SDMP,短视频SDK Brilliant的功能子库存在,但可以单独使用 编译需要三方依赖库,请clone https://github.com/MountainRipper/third_party.git 到同级目录,并运行build.sh进行编译(linux),windows先运行build.bat,这将会首先安装msys2环境并启动,此时项目被挂载到/MountainRipper/third_party,进入该目录运行build.sh即可(会自动安装编译器和所需工具)

<img src="./doc/screenshot.png" />

该项目以及SDMP,Brilliant将会持续开发,感兴趣的可以保持关注,欢迎加入讨论群

<img src="./doc/qr-brilliant.jpg" width = "320" height = "450" />

二维码失效可加我本人

<img src="./doc/qr-myself.jpg" width = "320" height = "435" />
View on GitHub
GitHub Stars9
CategoryContent
Updated7mo ago
Forks0

Languages

C

Security Score

62/100

Audited on Sep 2, 2025

No findings