1,首先检查该项目所使用的是哪一颗sensor, 就以OV2659 为例
OV2659 是一颗2M 的摄像头,Sensor 吐出的数据分辨率能达到 1600*1200,肯定是支持 1280*720 的分辨率喽。
那如何通过配置使其能够录制 720P 的视频呢,这个还是需要花费一番功夫的。
ALPS.ICS2.TDD.MP.V1.2_TD_20121019\mediatek\custom\common\hal\imgsensor\ov2659_yuv\cfg_ftbl_ov2659_yuv.h
在该文件中检查是否有设置 PREVIEW_SIZE_1280_720,如没有则加上

//  Preview Size
    CONFIG_FEATURE_SI(FID_PREVIEW_SIZE, 
        BY_DEFAULT(PREVIEW_SIZE_320_240), 
        PREVIEW_SIZE_176_144, PREVIEW_SIZE_320_240, 
        PREVIEW_SIZE_352_288, PREVIEW_SIZE_640_480, 
        PREVIEW_SIZE_720_480, PREVIEW_SIZE_1280_720
    )
 
2,检查是否有创建 MTKProfile,具体在下面这个 MediaProfiles.cpp 文件中操作
/trunk/ALPS.ICS2.TDD.MP.V1.2_TD_20121019/frameworks/base/media/libmedia/MediaProfiles.cpp
看 /*static*/ MediaProfiles::CamcorderProfile*
MediaProfiles::createMTKCamcorderProfile(camcorder_quality quality, camcorder_mode CamMode, camera_id CamId) 函数

// Setting for VIDEO Profile
 switch(quality)
 {
  case CAMCORDER_QUALITY_MTK_LOW:
  case CAMCORDER_QUALITY_MTK_NIGHT_LOW:
  case CAMCORDER_QUALITY_MTK_TIME_LAPSE_LOW:
  case CAMCORDER_QUALITY_MTK_TIME_LAPSE_NIGHT_LOW:
             videoCodec = new MediaProfiles::VideoCodec(VIDEO_ENCODER_MPEG_4_SP, 12500*1000/CamMode, 1280, 720, 30/CamMode);
    ……
    
中给其加上 Profiles

3,仍旧是 MediaProfiles.cpp 文件中操作
/*static*/ void
MediaProfiles::createDefaultCamcorderProfiles(MediaProfiles *profiles) 该函数中也需要加上相应的 Profiles

// front fine camcorder profiles.
    MediaProfiles::CamcorderProfile *FrontFineProfile =
            createMTKCamcorderProfile(CAMCORDER_QUALITY_MTK_FINE, CAMCORDER_DAY_MODE, FRONT_CAMERA);
 MediaProfiles::CamcorderProfile *FrontFineSpecificProfile =
      createMTKCamcorderProfile(CAMCORDER_QUALITY_MTK_FINE, CAMCORDER_DAY_MODE, FRONT_CAMERA);
    profiles->mCamcorderProfiles.add(FrontFineProfile);
    profiles->mCamcorderProfiles.add(FrontFineSpecificProfile);
 
 
 // front night fine camcorder profiles.
 MediaProfiles::CamcorderProfile *FrontNightFineProfile =
   createMTKCamcorderProfile(CAMCORDER_QUALITY_MTK_NIGHT_FINE, CAMCORDER_NIGHT_MODE, FRONT_CAMERA);
 MediaProfiles::CamcorderProfile *FrontNightFineSpecificProfile =
   createMTKCamcorderProfile(CAMCORDER_QUALITY_MTK_NIGHT_FINE, CAMCORDER_NIGHT_MODE, FRONT_CAMERA);
 profiles->mCamcorderProfiles.add(FrontNightFineProfile);
 profiles->mCamcorderProfiles.add(FrontNightFineSpecificProfile); 
 
 分别给其加上 front fine camcorder profiles 和 front night fine camcorder profiles
 
4, app 层在 CameraSettings.java 的 getMTKSupportedVideoQuality 函数中就可以通过 log 输出其分别支持哪些分辨率的录像了

private ArrayList<String> getMTKSupportedVideoQuality() {
        ArrayList<String> supported = new ArrayList<String>();
        // Check for supported quality
        if (CamcorderProfile.hasProfile(mCameraId, CamcorderProfile.QUALITY_480P)) {
            supported.add(Integer.toString(CamcorderProfile.QUALITY_480P));
        }
        if (CamcorderProfile.hasProfile(mCameraId, CamcorderProfile.QUALITY_1080P)) {
            supported.add(Integer.toString(CamcorderProfile.QUALITY_1080P));
        }
        
        if (CamcorderProfile.hasProfile(mCameraId, CamcorderProfile.QUALITY_MTK_LOW)) {
            supported.add(Integer.toString(CamcorderProfile.QUALITY_MTK_LOW));
        }
        if (CamcorderProfile.hasProfile(mCameraId, CamcorderProfile.QUALITY_MTK_MEDIUM)) {
            supported.add(Integer.toString(CamcorderProfile.QUALITY_MTK_MEDIUM));
        }
        if (CamcorderProfile.hasProfile(mCameraId, CamcorderProfile.QUALITY_MTK_HIGH)) {
            supported.add(Integer.toString(CamcorderProfile.QUALITY_MTK_HIGH));
        }
        
        for(int i = 0 ; i < supported.size(); i++) 
         Log.e(TAG,"--------------getMTKSupportedVideoQuality----------i="+supported.get(i));
        return supported; 
    }

完了直接编译 ./mk -t mm framework/base/av/media/libmedia 即可,会得到一个 libmedia.so 库文件,push 到手机端 system/lib 目录下

reboot !

而 PreviewSizes 则可以通过下面这条 log 输出,具体可以添加到 VideoCamera.java 的 startPreview 函数中。
 
     List<Size> sizes1 = mParameters.getSupportedPreviewSizes();
        for (int i = 0; i < sizes1.size(); i++) {
            Log.d(TAG, "SupportedPreviewSizes : " + sizes1.get(i).width + "x" + sizes1.get(i).height);
        }

一般 CamcorderProfile.QUALITY_MTK_LOW 为 176X144
      CamcorderProfile.QUALITY_MTK_MEDIUM 为 480X320
   CamcorderProfile.QUALITY_MTK_HIGH 为 640X480
   CamcorderProfile.QUALITY_MTK_FINE 为 1280X720 
   
  对应的 enum 值分别为 8,9,10,11

MTK 平台上如何给 camera 添加一种 preview size相关推荐

  1. MTK 平台上查询当前使用的摄像头模组及所支持预览分辨率

    1,MTK 平台如何查询当前使用的是哪颗摄像头及相关的模组信息? 在该目录下可以查到当前平台及相关项目的配置文件 ProjectConfig.mk \ALPS.JB.MP.V1_W_20120919\ ...

  2. Android 系统(86)---mtk平台上如何开启f2fs

    本文介绍mtk平台上如何开启f2fs 1.  MTK Android O1   SW 版本 2.  F2FS 在下列平台已经做了验证,其他平台没有验证 1)6580/6570   2)6735/53/ ...

  3. MTK平台开机初始化时 camera驱动流程|MTK camera调试常见几十种问题处理方法

    转载:https://www.jianshu.com/p/75ab1d82bbd3 mtk的驱动多是以模块加载的方式(module_init():module_exit():)加载到内核中去的:正因为 ...

  4. MTK平台双击Power打开Camera的简单流程

    (1)Framework层Flow Framework层的backtrace如下: 07-02 16:17:25.556 1066 2879 E dxf_onCameraLaunchGestureDe ...

  5. mtk平台androidl usb uvc camera 调试记录

    USB video class(又称为USB video device class or UVC)就是USB device class视频产品在不需要安装任何的驱动程序下即插即用,包括摄像头.数字摄影 ...

  6. 《TP基础篇——MTK平台》

    日期:2015.08.06 导言:在MTK平台的TP驱动调试里,最最基础的不是了解它的原理是怎么实现的,而是如何在这个平台上添加一个新的TP驱动代码. 一. 如何在MTK平台上添加一个新的TP驱动   ...

  7. MTK平台LCD驱动框架详解(一)

    许多学习嵌入式的进入MTK开发平台,很多东西都会感到很陌生.在MTK平台上你可以简简单单几分钟就点亮一块屏.加上MTK快速开发的节奏,也很少有时间自己整理学习.如果不思进取,不加班加点学习.很容易就慢 ...

  8. 在 macOS 平台上启动 MATLAB

    目录 在 macOS 平台上启动 MATLAB 从 Applications 文件夹启动 从终端窗口启动 在 macOS 平台上启动 MATLAB 选择以下一种方式启动 MATLAB®. 从 Appl ...

  9. MTK平台camera的部分log及pdaf导通

    目录 文章目录 一.camera log 的整理 二.配置pdaf的步骤 1.文件的修改路径 2.pdaf的整体流程 前言 一.camera log的整理 二.配置 pdaf的步骤 1.文件的修改路径 ...

最新文章

  1. web 前端常用组件【06】Upload 控件
  2. python day08
  3. python语法怎么读-python语法技巧
  4. 使用web worker和webassembly技术
  5. 京东云上集市谋定中国农民丰收节交易会 建九江电商产业园
  6. 一个显示日期的工具类
  7. find -exec 批量使用方法
  8. L2.三.Python注释
  9. Thymeleaf 生成静态化模板
  10. 【BP靶场portswigger-服务端6】信息泄露漏洞-5个实验(全)
  11. .net 网站接入支付宝扫码支付
  12. php笔试攻略,php笔试(一)
  13. CharacterUtils 判断中英文,英文大小写
  14. [apifox学习笔记]在所有接口中添加登录后获取的token(有图示)
  15. mysql中where子句不区分大小写
  16. Python:类和文件操作
  17. 软通智慧正式加入openGauss社区
  18. 截图识别文本OCR软件
  19. Visio2007安装
  20. 人防工程空调设计规范

热门文章

  1. mysql中以下正确的sql是_总结MySQL中SQL语法的使用
  2. 009_Raphael绘制图形
  3. c语言结构体讲解,C语言基础之结构体讲解
  4. xgboost 正则项_深入理解Boosting算法(4)-XGBoost
  5. 启动未初始化小应用程序_SpringBoot详细打印启动时异常堆栈信息
  6. Java基础:类加载器
  7. RxJava 教程第一部分:为何使用RxJava
  8. 慢 SQL 诊断优化套路包,套路用的对,速度升百倍
  9. SketchUp(草图大师) 2019 安装教程
  10. java 读取webservice_java 调用webService的各种方法