直接使用HAL层接口做编解码时需要在hardware/qcom/media位置编译(这里以qcom为例),因为这里作为media部分的入口位置,需要编译那些Android.mk在这里决定,所以在此目录之下的目录编译都不会被编译到。
此处hardware/qcom/media/mm-video-v4l2/vidc是qcon HAL层编解码的位置,qcon HAL层中提供了很多调试手段,通过阅读代码整理了以下qcon在HAL中用到的属性,一般情况下0是关闭调试,1是开启调试,如果不存在给一个默认值,这里它封装了property_get来实现getprop的功能,如果我们希望开启某些调试仅仅需要在终端中把这些属性值设置为1(setprop)。
要知道详细信息可以通过这些prop去找到相关代码,阅读便知。
property_get("persist.vidc.dec.conceal_color", property_value, DEFAULT_CONCEAL_COLOR); property_get("ro.board.platform", platform_name, "0");property_get("ro.vendor.extension_library", perf_lib_path, NULL); property_get("vidc.debug.bframes", property_value, "0");property_get("vidc.debug.entropy", property_value, "1");property_get("vidc.debug.level", property_value, "0");property_get("vidc.debug.perf.mode", property_value, "0");property_get("vidc.debug.turbo", property_value, "0"); property_get("vidc.dec.120fps.enabled", property_value, "0");property_get("vidc.dec.debug.concealedmb", property_value, "0");property_get("vidc.dec.debug.dyn.disabled", property_value, "0");property_get("vidc.dec.debug.extradata", extradata_value, "0");property_get("vidc.dec.debug.panframedata", property_value, "0");property_get("vidc.dec.debug.perf", property_value, "0");property_get("vidc.dec.debug.ts", property_value, "0");property_get("vidc.dec.log.imb", property_value, "0");property_get("vidc.dec.log.in", property_value, "0");property_get("vidc.dec.log.out", property_value, "0");property_get("vidc.dec.profile.check", property_value, "0"); property_get("vidc.enc.log.extradata", property_value, "0");property_get("vidc.enc.log.in", property_value, "0");property_get("vidc.enc.log.out", property_value, "0");property_get("vidc.enc.narrow.searchrange", property_value, "0"); property_get("vidc.log.loc", property_value, "");
测试保存的文件的位置
// venc#define BUFFER_LOG_LOC "/data/misc/media"// hevc#define INPUT_BUFFER_FILE_NAME "/data/input-bitstream. "char outputfilename [] = "/data/output.yuv";char ouputextradatafilename [] = "/data/extradata";char output_extradata_filename [] = "/data/misc/media/extradata";pFile = fopen("/data/input.yuv", "wb");