libva中的h264encode.c提供了H.264硬件编码的demo,使用以下命令可以将YUV文件编码为264文件
./h264encode -w 1920 -h 1080 -n 0 --srcyuv in.yuv --fourcc IYUV -o output.264
但是将其移植到我的程序中后,发现编码过程中存在内存泄露的bug
仔细查看了源文件,发现只有一处vaCreateBuffer的地方调用了vaDestroyBuffer,编码函数中使用的vaCreateBuffer都没有配对vaDestroyBuffer,查阅了头文件,vaCreateBuffer后必须要调用vaDestroyBuffer。问题就出在这了,已经经历这么多版本的开源工程还有这种低级的错误,真是令人汗颜