MTK Android 9.0 HAL3 Camera 水印添加

时间:2024-03-17 07:26:56

前段时间做了个功能,一直没空写,现在抽空写一下,跟网友分享一下,如果有说错了的地方请见谅。

之前做了个功能就是在anroid hal 层添加视频水印,由于android 9.0跟以往的版本camera hal架构发生了比较大的变化。

所以在很多地方都找不到文档。添加水印其实比较简单,问题就是架构变了,有时候我们压根找不到视频流的那个buffer到底在哪里。HAL3就不讲了,我也不太懂,不是很熟悉,还在研究。

简单分享一下:

vendor\mediatek\proprietary\hardware\mtkcam3\feature\core\featurePipe\streaming\P2ANode.cpp

MTK Android 9.0 HAL3 Camera 水印添加

这是我们要找的视频流buffer,其实添加水印比较简单,网上代码很多,但是因为android hal3的架构问题,所以有时候压根找不到视频流buffer在哪里。

 

下面是我添加水印的方式,我稍微做了下封装,可能方法比较笨,因为我对C/C++并不是很熟,或许你会有更好的写法,我这是屏幕的四个角,分别显示什么时间,定位,设备编号等等。

MTK Android 9.0 HAL3 Camera 水印添加

MTK Android 9.0 HAL3 Camera 水印添加

MTK Android 9.0 HAL3 Camera 水印添加

MTK Android 9.0 HAL3 Camera 水印添加

以上是封装部分代码,计算位置,一针一针画。然后还有其他的什么字库,字体,编码转换等等,其实跟网上的差不多,好像是我之前在网上下载下来,自己改了一下而已。

 

MTK Android 9.0 HAL3 Camera 水印添加

你以后碰到这个功能,代码的话网上搜一搜,实在找不到,你给我留个言联系下我,我给你发一份。

下面是我的效果图:

MTK Android 9.0 HAL3 Camera 水印添加

 

这个只有两个,其实左下角右下角都有,只是节点没有写入数据,这个就不多说了。

这个是写在底层的,所以设备无论拿什么录像软件,录出来都会带有这个水印。

一般执法记录仪,行车记录仪,监控产品会比用到这个功能,如果你要代码就留个言,我整理一下发你一份,欢迎交流。