说明
这里的需求是要往生成的录像文件中添加显示时间,实际上也就是海思的VENC与OSD的绑定。
在上一篇博客海思平台freetype、SDL、SDL_TTL的编译编译出三个库之后,又提供了例程生成一个bmp图片,但是实际上我们每次往海思通道贴图,不可能说都像例程一样保存成bmp图片再贴图,这样会造成资源的浪费。
所以这里进行了进一步的修改,让我们能够直接拿到bmp图片的位图数据,而不需要生成bmp图片。
一、bmp位图数据的获取
/*
getVencOsd 获取生成的位图数据
bitmap 海思 BITMAP_S 位图数据结构体指针
*/
static SV_S32 getVencOsd(BITMAP_S *bitmap) {
if( bitmap == NULL || bitmap->pData == NULL ) {
LOG(ERROR)<<"bitmap or pData is NULL";
return SV_FAILURE;
}
//初始化字库
if ( TTF_Init() < 0 ) {
SDL_Quit();
return SV_FAILURE;
}
//打开字库
font = TTF_OpenFont("/root/res/wqy-microhei.ttc", 48);
if ( font == NULL ) {
fprintf(stderr, "Couldn't load %d pt font from %s: %s\n", 18, "ptsize", SDL_GetError());
SDL_Quit();
return