Commit 684eb709 authored by sub77's avatar sub77
Browse files

falcon complete

parents
#
# Copyright (C) 2015 The CyanogenMod Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# WARNING: Everything listed here will be built on ALL platforms,
# including x86, the emulator, and the SDK. Modules must be uniquely
# named (liblights.tuna), and must build everywhere, or limit themselves
# to only building on ARM if they include assembly. Individual makefiles
# are responsible for having their own logic, for fine-grained control.
LOCAL_PATH := $(call my-dir)
ifeq ($(TARGET_DEVICE),falcon)
include $(call all-makefiles-under,$(LOCAL_PATH))
include $(CLEAR_VARS)
FIRMWARE_ADSP_IMAGES := \
adsp.b00 adsp.b01 adsp.b02 adsp.b03 adsp.b04 \
adsp.b05 adsp.b06 adsp.b07 adsp.b08 adsp.b09 \
adsp.b10 adsp.b11 adsp.b12 adsp.mdt
FIRMWARE_ADSP_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(FIRMWARE_ADSP_IMAGES)))
$(FIRMWARE_ADSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "ADSP Firmware link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /firmware/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_ADSP_SYMLINKS)
FIRMWARE_KEYMASTER_IMAGES := \
keymaster.b00 keymaster.b01 keymaster.b02 keymaster.b03 keymaster.mdt
FIRMWARE_KEYMASTER_SYMLINKS := $(addprefix $(TARGET_OUT_VENDOR)/firmware/keymaster/,$(notdir $(FIRMWARE_KEYMASTER_IMAGES)))
$(FIRMWARE_KEYMASTER_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Keymaster Firmware link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /firmware/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_KEYMASTER_SYMLINKS)
FIRMWARE_MBA_IMAGES := \
mba.b00 mba.mdt
FIRMWARE_MBA_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(FIRMWARE_MBA_IMAGES)))
$(FIRMWARE_MBA_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "MBA Firmware link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /firmware/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_MBA_SYMLINKS)
FIRMWARE_MODEM_IMAGES := \
modem.b00 modem.b01 modem.b02 modem.b03 modem.b04 modem.b05 \
modem.b06 modem.b07 modem.b08 modem.b10 modem.b11 modem.b12 \
modem.b13 modem.b15 modem.b16 modem.b17 modem.b18 modem.b19 \
modem.b20 modem.b21 modem.b22 modem.b24 modem.b25 modem.b26 \
modem.b27 modem.mdt
FIRMWARE_MODEM_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(FIRMWARE_MODEM_IMAGES)))
$(FIRMWARE_MODEM_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Modem Firmware link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /firmware/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_MODEM_SYMLINKS)
FIRMWARE_WCNSS_IMAGES := \
wcnss.b00 wcnss.b01 wcnss.b02 wcnss.b04 \
wcnss.b06 wcnss.b07 wcnss.b08 wcnss.b09 \
wcnss.mdt
FIRMWARE_WCNSS_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(FIRMWARE_WCNSS_IMAGES)))
$(FIRMWARE_WCNSS_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "WCNSS Firmware link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /firmware/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_WCNSS_SYMLINKS)
FIRMWARE_WIDEVINE_IMAGES := \
widevine.b00 widevine.b01 widevine.b02 widevine.b03 widevine.mdt
FIRMWARE_WIDEVINE_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(FIRMWARE_WIDEVINE_IMAGES)))
$(FIRMWARE_WIDEVINE_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Widevine Firmware link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /firmware/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_WIDEVINE_SYMLINKS)
endif
#
# Copyright (C) 2014 The CyanogenMod Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/full_falcon.mk
#
# Copyright (C) 2014 The CyanogenMod Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
DEVICE_PATH := device/motorola/falcon
# Assert
TARGET_OTA_ASSERT_DEVICE := xt1031,xt1032,xt1033,xt1034,falcon_umts,falcon_umtsds,falcon_cdma,falcon_retuaws,falcon,falcon_gpe
# Board
TARGET_BOARD_INFO_FILE := $(DEVICE_PATH)/board-info.txt
# Init
TARGET_INIT_VENDOR_LIB := libinit_msm
TARGET_LIBINIT_DEFINES_FILE := $(DEVICE_PATH)/init/init_falcon.cpp
TARGET_UNIFIED_DEVICE := true
BOARD_VENDOR := motorola-qcom
TARGET_SPECIFIC_HEADER_PATH := $(DEVICE_PATH)/include
TARGET_DEVICE_KERNEL_HEADERS := $(DEVICE_PATH)/include
# Platform
TARGET_BOARD_PLATFORM := msm8226
TARGET_BOARD_PLATFORM_GPU := qcom-adreno305
# USE_CLANG_PLATFORM_BUILD := true
# Architecture
TARGET_ARCH := arm
TARGET_ARCH_VARIANT := armv7-a-neon
TARGET_CPU_ABI := armeabi-v7a
TARGET_CPU_ABI2 := armeabi
TARGET_CPU_MEMCPY_BASE_OPT_DISABLE := true
TARGET_CPU_VARIANT := krait
# Bootloader
TARGET_BOOTLOADER_BOARD_NAME := MSM8226
TARGET_NO_BOOTLOADER := true
# Kernel
BOARD_KERNEL_IMAGE_NAME := zImage-dtb
BOARD_KERNEL_CMDLINE := androidboot.bootdevice=msm_sdcc.1 androidboot.hardware=qcom vmalloc=400M utags.blkdev=/dev/block/platform/msm_sdcc.1/by-name/utags androidboot.selinux=permissive
BOARD_KERNEL_BASE := 0x00000000
BOARD_KERNEL_PAGESIZE := 2048
BOARD_MKBOOTIMG_ARGS := --ramdisk_offset 0x01000000 --tags_offset 0x00000100
TARGET_KERNEL_SOURCE := kernel/motorola/msm8226
TARGET_KERNEL_CROSS_COMPILE_PREFIX := arm-linux-androideabi-
TARGET_KERNEL_CONFIG := falcon_defconfig
# Audio
AUDIO_FEATURE_ENABLED_MULTI_VOICE_SESSIONS := true
AUDIO_FEATURE_ENABLED_NEW_SAMPLE_RATE := true
BOARD_USES_ALSA_AUDIO := true
# Bluetooth
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(DEVICE_PATH)/bluetooth
BOARD_HAVE_BLUETOOTH := true
BOARD_HAVE_BLUETOOTH_QCOM := true
BLUETOOTH_HCI_USE_MCT := true
# Camera
USE_DEVICE_SPECIFIC_CAMERA := true
TARGET_USE_COMPAT_GRALLOC_ALIGN := true
# Charger
BOARD_CHARGING_MODE_BOOTING_LPM := /sys/mmi_lpm/lpm_mode
# CMHW
BOARD_HARDWARE_CLASS := $(DEVICE_PATH)/cmhw/
# Display
NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
TARGET_USES_C2D_COMPOSITION := true
TARGET_USES_ION := true
USE_OPENGL_RENDERER := true
# FM Radio
TARGET_QCOM_NO_FM_FIRMWARE := true
# Fonts
EXTENDED_FONT_FOOTPRINT := true
# Lights
TARGET_PROVIDES_LIBLIGHT := true
# Memory
MALLOC_IMPL := dlmalloc
# Partitions
BOARD_BOOTIMAGE_PARTITION_SIZE := 10485760
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 10485760
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1023410176
BOARD_USERDATAIMAGE_PARTITION_SIZE := 5930598400 # 5930614784 - 16384
BOARD_FLASH_BLOCK_SIZE := 131072
# Qualcomm support
BOARD_USES_QCOM_HARDWARE := true
# Radio
#TARGET_RIL_VARIANT := caf
# Properties
TARGET_SYSTEM_PROP += $(DEVICE_PATH)/system.prop
# Release tools
TARGET_RELEASETOOLS_EXTENSIONS := $(DEVICE_PATH)
# inherit from the proprietary version
-include vendor/motorola/falcon/BoardConfigVendor.mk
Universal device configuration for the Moto G (falcon)
===============================
Copyright 2014 - The CyanogenMod Project
<?xml version="1.0" encoding="utf-8" ?>
<apns version="8">
<apn carrier="Sprint"
mcc="310"
mnc="000"
type="default,mms,fota"
bearer_bitmask="4|5|6|7|8|12"
protocol="IPV4V6"
roaming_protocol="IPV4V6"
authtype="3"
mmsc="http://mms.sprintpcs.com"
mmsproxy="68.28.31.7"
mmsport="80"
/>
<apn carrier="Sprint"
mcc="310"
mnc="000"
type="default,mms,dun,fota"
bearer_bitmask="4|5|6|7|8|12"
profile_id="1"
protocol="IPV4V6"
roaming_protocol="IPV4V6"
authtype="3"
mmsc="http://mms.sprintpcs.com"
mmsproxy="68.28.31.7"
mmsport="80"
/>
<apn carrier="Sprint"
mcc="310"
mnc="120"
type="default,mms,fota"
bearer_bitmask="4|5|6|7|8|12"
protocol="IPV4V6"
roaming_protocol="IPV4V6"
authtype="3"
mmsc="http://mms.sprintpcs.com"
mmsproxy="68.28.31.7"
mmsport="80"
/>
<apn carrier="Sprint"
mcc="310"
mnc="120"
type="default,mms,dun,fota"
bearer_bitmask="4|5|6|7|8|12"
profile_id="1"
protocol="IPV4V6"
roaming_protocol="IPV4V6"
authtype="3"
mmsc="http://mms.sprintpcs.com"
mmsproxy="68.28.31.7"
mmsport="80"
/>
<apn carrier="Sprint"
mcc="311"
mnc="870"
type="default,mms,fota"
bearer_bitmask="4|5|6|7|8|12"
protocol="IPV4V6"
roaming_protocol="IPV4V6"
authtype="3"
mmsc="http://mm.myboostmobile.com"
mmsproxy="68.28.31.7"
mmsport="80"
/>
<apn carrier="Sprint"
mcc="311"
mnc="870"
type="default,mms,dun,fota"
bearer_bitmask="4|5|6|7|8|12"
profile_id="1"
protocol="IPV4V6"
roaming_protocol="IPV4V6"
authtype="3"
mmsc="http://mm.myboostmobile.com"
mmsproxy="68.28.31.7"
mmsport="80"
/>
<apn carrier="Sprint"
mcc="312"
mnc="530"
type="default,mms,fota"
bearer_bitmask="4|5|6|7|8|12"
protocol="IPV4V6"
roaming_protocol="IPV4V6"
authtype="3"
mmsc="http://mms.sprintpcs.com"
mmsproxy="68.28.31.7"
mmsport="80"
/>
<apn carrier="Sprint"
mcc="312"
mnc="530"
type="default,mms,dun,fota"
bearer_bitmask="4|5|6|7|8|12"
profile_id="1"
protocol="IPV4V6"
roaming_protocol="IPV4V6"
authtype="3"
mmsc="http://mms.sprintpcs.com"
mmsproxy="68.28.31.7"
mmsport="80"
/>
<apn carrier="U.S. Cellular"
mcc="311"
mnc="580"
type="default,mms,fota,dun"
bearer_bitmask="4|5|6|7|8|12"
protocol="IPV4V6"
roaming_protocol="IPV4V6"
authtype="3"
mmsc="http://mmsc1.uscc.net/mmsc/MMS"
mtu="1422"
/>
<apn carrier="U.S. Cellular"
mcc="311"
mnc="220"
type="default,mms,fota,dun"
bearer_bitmask="4|5|6|7|8|12"
protocol="IPV4V6"
roaming_protocol="IPV4V6"
authtype="3"
mmsc="http://mmsc1.uscc.net/mmsc/MMS"
mtu="1422"
/>
<apn carrier="Verizon CDMA"
mcc="310"
mnc="004"
type="default,mms"
bearer_bitmask="4|5|6|7|8|12"
protocol="IPV4V6"
authtype="3"
mmsc="http://mms.vtext.com/servlets/mms"
/>
</apns>
This diff is collapsed.
/*
* Copyright (C) 2012 The Android Open Source Project
* Copyright (C) 2014 The CyanogenMod Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H
#define BTM_DEF_LOCAL_NAME "Moto G"
#define BLUETOOTH_QTI_SW TRUE
// Disables read remote device feature
#define BTA_SKIP_BLE_READ_REMOTE_FEAT FALSE
#define MAX_L2CAP_CHANNELS 16
// skips conn update at conn completion
#define BTA_BLE_SKIP_CONN_UPD FALSE
#endif
require version-bootloader=0x4118|0x4119|0x411A
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_C_INCLUDES := system/media/camera/include
LOCAL_SRC_FILES := \
CameraWrapper.cpp
LOCAL_SHARED_LIBRARIES := \
libhardware liblog libcamera_client libutils libcutils
LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
LOCAL_MODULE := camera.$(TARGET_BOARD_PLATFORM)
LOCAL_MODULE_TAGS := optional
include $(BUILD_SHARED_LIBRARY)
This diff is collapsed.
/*
* Copyright (C) 2016 The CyanogenMod Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#define CAMERA_PARAMETERS_EXTRA_C \
const char CameraParameters::KEY_MOT_AUTO_DC_OFFSET[] = "auto-dc-offset-mode"; \
const char CameraParameters::KEY_MOT_DENOISE[] = "mot-denoise-features"; \
const char CameraParameters::KEY_MOT_LUMA_ADAPTATION[] = "luma_adaptation"; \
const char CameraParameters::KEY_MOT_MANUAL_DC_OFFSET[] = "manual-dc-offset"; \
const char CameraParameters::KEY_MOT_TINTLESS[] = "tintless"; \
const char CameraParameters::KEY_MOT_SUPPORTED_AUTO_DC_OFFSET[] = "auto-dc-offset-mode-values"; \
const char CameraParameters::KEY_MOT_SUPPORTED_DENOISE[] = "mot-denoise-features-values"; \
const char CameraParameters::KEY_MOT_SUPPORTED_LUMA_ADAPTATION[] = "luma_adaptation-values"; \
const char CameraParameters::KEY_MOT_SUPPORTED_TINTLESS[] = "tintless-values"; \
const char CameraParameters::KEY_QC_AE_BRACKET_HDR[] = "ae-bracket-hdr"; \
const char CameraParameters::KEY_QC_AUTO_EXPOSURE[] = "auto-exposure"; \
const char CameraParameters::KEY_QC_CAMERA_MODE[] = "camera-mode"; \
const char CameraParameters::KEY_QC_CONTRAST[] = "contrast"; \
const char CameraParameters::KEY_QC_DENOISE[] = "denoise"; \
const char CameraParameters::KEY_QC_FACE_DETECTION[] = "face-detection"; \
const char CameraParameters::KEY_QC_HIGH_DYNAMIC_RANGE_IMAGING[] = "hdr"; \
const char CameraParameters::KEY_QC_ISO_MODE[] = "iso"; \
const char CameraParameters::KEY_QC_LENSSHADE[] = "lensshade"; \
const char CameraParameters::KEY_QC_MAX_CONTRAST[] = "max-contrast"; \
const char CameraParameters::KEY_QC_MAX_NUM_REQUESTED_FACES[] = "qc-max-num-requested-faces"; \
const char CameraParameters::KEY_QC_MAX_SATURATION[] = "max-saturation"; \
const char CameraParameters::KEY_QC_MAX_SHARPNESS[] = "max-sharpness"; \
const char CameraParameters::KEY_QC_MEMORY_COLOR_ENHANCEMENT[] = "mce"; \
const char CameraParameters::KEY_QC_PREVIEW_FRAME_RATE_AUTO_MODE[] = "frame-rate-auto"; \
const char CameraParameters::KEY_QC_PREVIEW_FRAME_RATE_FIXED_MODE[] = "frame-rate-fixed"; \
const char CameraParameters::KEY_QC_PREVIEW_FRAME_RATE_MODE[] = "preview-frame-rate-mode"; \
const char CameraParameters::KEY_QC_REDEYE_REDUCTION[] = "redeye-reduction"; \
const char CameraParameters::KEY_QC_SATURATION[] = "saturation"; \
const char CameraParameters::KEY_QC_SCENE_DETECT[] = "scene-detect"; \
const char CameraParameters::KEY_QC_SELECTABLE_ZONE_AF[] = "selectable-zone-af"; \
const char CameraParameters::KEY_QC_SHARPNESS[] = "sharpness"; \
const char CameraParameters::KEY_QC_SKIN_TONE_ENHANCEMENT[] = "skinToneEnhancement"; \
const char CameraParameters::KEY_QC_SUPPORTED_AUTO_EXPOSURE[] = "auto-exposure-values"; \
const char CameraParameters::KEY_QC_SUPPORTED_CAMERA_FEATURES[] = "qc-camera-features"; \
const char CameraParameters::KEY_QC_SUPPORTED_DENOISE[] = "denoise-values"; \
const char CameraParameters::KEY_QC_SUPPORTED_FACE_DETECTION[] = "face-detection-values"; \
const char CameraParameters::KEY_QC_SUPPORTED_HDR_IMAGING_MODES[] = "hdr-values"; \
const char CameraParameters::KEY_QC_SUPPORTED_HFR_SIZES[] = "hfr-size-values"; \
const char CameraParameters::KEY_QC_SUPPORTED_ISO_MODES[] = "iso-values"; \
const char CameraParameters::KEY_QC_SUPPORTED_LENSSHADE_MODES[] = "lensshade-values"; \
const char CameraParameters::KEY_QC_SUPPORTED_MEM_COLOR_ENHANCE_MODES[] = "mce-values"; \
const char CameraParameters::KEY_QC_SUPPORTED_PREVIEW_FRAME_RATE_MODES[] = "preview-frame-rate-modes"; \
const char CameraParameters::KEY_QC_SUPPORTED_REDEYE_REDUCTION[] = "redeye-reduction-values"; \
const char CameraParameters::KEY_QC_SUPPORTED_SCENE_DETECT[] = "scene-detect-values"; \
const char CameraParameters::KEY_QC_SUPPORTED_SELECTABLE_ZONE_AF[] = "selectable-zone-af-values"; \
const char CameraParameters::KEY_QC_SUPPORTED_SKIN_TONE_ENHANCEMENT_MODES[] = "skinToneEnhancement-values"; \
const char CameraParameters::KEY_QC_SUPPORTED_TOUCH_AF_AEC[] = "touch-af-aec-values"; \
const char CameraParameters::KEY_QC_SUPPORTED_VIDEO_HIGH_FRAME_RATE_MODES[] = "video-hfr-values"; \
const char CameraParameters::KEY_QC_SUPPORTED_ZSL_MODES[] = "zsl-values"; \
const char CameraParameters::KEY_QC_TOUCH_AF_AEC[] = "touch-af-aec"; \
const char CameraParameters::KEY_QC_TOUCH_INDEX_AEC[] = "touch-index-aec"; \
const char CameraParameters::KEY_QC_TOUCH_INDEX_AF[] = "touch-index-af"; \
const char CameraParameters::KEY_QC_VIDEO_HIGH_FRAME_RATE[] = "video-hfr"; \
const char CameraParameters::KEY_QC_ZSL[] = "zsl"; \
\
#define CAMERA_PARAMETERS_EXTRA_H \
static const char KEY_MOT_AUTO_DC_OFFSET[]; \
static const char KEY_MOT_DENOISE[]; \
static const char KEY_MOT_LUMA_ADAPTATION[]; \
static const char KEY_MOT_MANUAL_DC_OFFSET[]; \
static const char KEY_MOT_TINTLESS[]; \
static const char KEY_MOT_SUPPORTED_AUTO_DC_OFFSET[]; \
static const char KEY_MOT_SUPPORTED_DENOISE[]; \
static const char KEY_MOT_SUPPORTED_LUMA_ADAPTATION[]; \
static const char KEY_MOT_SUPPORTED_TINTLESS[]; \
static const char KEY_QC_AE_BRACKET_HDR[]; \
static const char KEY_QC_AUTO_EXPOSURE[]; \
static const char KEY_QC_CAMERA_MODE[]; \
static const char KEY_QC_CONTRAST[]; \
static const char KEY_QC_DENOISE[]; \
static const char KEY_QC_FACE_DETECTION[]; \
static const char KEY_QC_HIGH_DYNAMIC_RANGE_IMAGING[]; \
static const char KEY_QC_ISO_MODE[]; \
static const char KEY_QC_LENSSHADE[]; \
static const char KEY_QC_MAX_CONTRAST[]; \
static const char KEY_QC_MAX_NUM_REQUESTED_FACES[]; \
static const char KEY_QC_MAX_SATURATION[]; \
static const char KEY_QC_MAX_SHARPNESS[]; \
static const char KEY_QC_MEMORY_COLOR_ENHANCEMENT[]; \
static const char KEY_QC_PREVIEW_FRAME_RATE_AUTO_MODE[]; \
static const char KEY_QC_PREVIEW_FRAME_RATE_FIXED_MODE[]; \
static const char KEY_QC_PREVIEW_FRAME_RATE_MODE[]; \
static const char KEY_QC_REDEYE_REDUCTION[]; \
static const char KEY_QC_SATURATION[]; \
static const char KEY_QC_SCENE_DETECT[]; \
static const char KEY_QC_SELECTABLE_ZONE_AF[]; \
static const char KEY_QC_SHARPNESS[]; \
static const char KEY_QC_SKIN_TONE_ENHANCEMENT[]; \
static const char KEY_QC_SUPPORTED_AUTO_EXPOSURE[]; \
static const char KEY_QC_SUPPORTED_CAMERA_FEATURES[]; \
static const char KEY_QC_SUPPORTED_DENOISE[]; \
static const char KEY_QC_SUPPORTED_FACE_DETECTION[]; \
static const char KEY_QC_SUPPORTED_HDR_IMAGING_MODES[]; \
static const char KEY_QC_SUPPORTED_HFR_SIZES[]; \
static const char KEY_QC_SUPPORTED_ISO_MODES[]; \
static const char KEY_QC_SUPPORTED_LENSSHADE_MODES[]; \
static const char KEY_QC_SUPPORTED_MEM_COLOR_ENHANCE_MODES[]; \
static const char KEY_QC_SUPPORTED_PREVIEW_FRAME_RATE_MODES[]; \
static const char KEY_QC_SUPPORTED_REDEYE_REDUCTION[]; \
static const char KEY_QC_SUPPORTED_SCENE_DETECT[]; \
static const char KEY_QC_SUPPORTED_SELECTABLE_ZONE_AF[]; \
static const char KEY_QC_SUPPORTED_SKIN_TONE_ENHANCEMENT_MODES[]; \
static const char KEY_QC_SUPPORTED_TOUCH_AF_AEC[]; \
static const char KEY_QC_SUPPORTED_VIDEO_HIGH_FRAME_RATE_MODES[]; \
static const char KEY_QC_SUPPORTED_ZSL_MODES[]; \
static const char KEY_QC_TOUCH_AF_AEC[]; \
static const char KEY_QC_TOUCH_INDEX_AEC[]; \
static const char KEY_QC_TOUCH_INDEX_AF[]; \
static const char KEY_QC_VIDEO_HIGH_FRAME_RATE[]; \
static const char KEY_QC_ZSL[]; \
\
[
{
"repository": "android_device_qcom_common",
"target_path": "device/qcom/common"
},
{
"repository": "android_kernel_motorola_msm8226",
"target_path": "kernel/motorola/msm8226"
}
]
/*
* Copyright (C) 2015 The CyanogenMod Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.cyanogenmod.hardware;
import java.io.File;
import java.util.Scanner;
import org.cyanogenmod.hardware.util.FileUtils;
public class DisplayColorCalibration {
private static final String COLOR_FILE = "/sys/class/graphics/fb0/rgb";
public static boolean isSupported() {
File f = new File(COLOR_FILE);
return f.exists();
}
public static int getMaxValue() {
return 32768;
}
public static int getMinValue() {
return 255;
}
public static int getDefValue() {
return getMaxValue();
}
public static String getCurColors() {
return FileUtils.readOneLine(COLOR_FILE);
}
public static boolean setColors(String colors) {
return FileUtils.writeLine(COLOR_FILE, colors);
}
}
/*
* Copyright (C) 2015 The CyanogenMod Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.cyanogenmod.hardware;
import org.cyanogenmod.hardware.util.FileUtils;
import android.os.SystemProperties;
import java.io.File;
public class SunlightEnhancement {
private static String FILE_HBM = "/sys/class/graphics/fb0/hbm";
/**
* Whether device supports HBM
*
* @return boolean Supported devices must return always true
*/
public static boolean isSupported() {
File f = new File(FILE_HBM);
return f.exists();
}
/**
* This method return the current activation status of HBM
*
* @return boolean Must be false when HBM is not supported or not activated, or
* the operation failed while reading the status; true in any other case.
*/
public static boolean isEnabled() {
if (Integer.parseInt(FileUtils.readOneLine(FILE_HBM)) == 1) {
return true;
} else {
return false;
}
}
/**
* This method allows to setup HBM
*
* @param status The new HBM status
* @return boolean Must be false if HBM is not supported or the operation
* failed; true in any other case.
*/
public static boolean setEnabled(boolean status) {
if (status == true) {
return FileUtils.writeLine(FILE_HBM, "1");
} else {
return FileUtils.writeLine(FILE_HBM, "0");
}
}
/**
* Whether adaptive backlight (CABL / CABC) is required to be enabled
*
* @return boolean False if adaptive backlight is not a dependency
*/
public static boolean isAdaptiveBacklightRequired() {
return false;
}
/**
* Set this to true if the implementation is self-managed and does
* it's own ambient sensing. In this case, setEnabled is assumed
* to toggle the feature on or off, but not activate it. If set
* to false, LiveDisplay will call setEnabled when the ambient lux
* threshold is crossed.
*
* @return true if this enhancement is self-managed
*/
public static boolean isSelfManaged() {
return false;
}
}
/*
* Copyright (C) 2014 The CyanogenMod Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.cyanogenmod.hardware;
import org.cyanogenmod.hardware.util.FileUtils;
import java.io.File;
public class VibratorHW {
private static String AMP_PATH = "/sys/devices/virtual/timed_output/vibrator/vtg_level";
public static boolean isSupported() {
File file = new File(AMP_PATH);
return file.exists();
}
public static int getMaxIntensity() {
return 31;
}
public static int getMinIntensity() {
return 0;
}
public static int getWarningThreshold() {
return -1;
}
public static int getCurIntensity() {
return Integer.parseInt(FileUtils.readOneLine(AMP_PATH));
}
public static int getDefaultIntensity() {
return 28;
}
public static boolean setIntensity(int intensity) {
return FileUtils.writeLine(AMP_PATH, String.valueOf(intensity));
}
}
# List of effect libraries to load. Each library element must contain a "path" element
# giving the full path of the library .so file.
# libraries {
# <lib name> {
# path <lib path>
# }
# }
libraries {
bundle {
path /system/lib/soundfx/libbundlewrapper.so
}
reverb {
path /system/lib/soundfx/libreverbwrapper.so
}
qcbassboost {
path /vendor/lib/soundfx/libqcbassboost.so
}
qcvirt {
path /vendor/lib/soundfx/libqcvirt.so
}
qcreverb {
path /vendor/lib/soundfx/libqcreverb.so
}
visualizer_sw {
path /system/lib/soundfx/libvisualizer.so
}
visualizer_hw {
path /system/lib/soundfx/libqcomvisualizer.so
}
downmix {
path /system/lib/soundfx/libdownmix.so
}
loudness_enhancer {
path /system/lib/soundfx/libldnhncr.so
}
proxy {
path /system/lib/soundfx/libeffectproxy.so
}
offload_bundle {
path /system/lib/soundfx/libqcompostprocbundle.so
}
audio_pre_processing {
path /system/lib/soundfx/libqcomvoiceprocessing.so
}
}
# Default pre-processing library. Add to audio_effect.conf "libraries" section if
# audio HAL implements support for default software audio pre-processing effects
#
# pre_processing {
# path /system/lib/soundfx/libaudiopreprocessing.so
# }
# list of effects to load. Each effect element must contain a "library" and a "uuid" element.
# The value of the "library" element must correspond to the name of one library element in the
# "libraries" element.
# The name of the effect element is indicative, only the value of the "uuid" element
# designates the effect.
# The uuid is the implementation specific UUID as specified by the effect vendor. This is not the
# generic effect type UUID.
# effects {
# <fx name> {
# library <lib name>
# uuid <effect uuid>
# }
# ...
# }
effects {
# additions for the proxy implementation
# Proxy implementation
#effectname {
#library proxy
#uuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
# SW implemetation of the effect. Added as a node under the proxy to
# indicate this as a sub effect.
#libsw {
#library libSW
#uuid yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
#} End of SW effect
# HW implementation of the effect. Added as a node under the proxy to
# indicate this as a sub effect.
#libhw {
#library libHW
#uuid zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz
#}End of HW effect
#} End of effect proxy
bassboost {
library qcbassboost
uuid 23aca180-44bd-11e2-bcfd-0800200c9a66
}
virtualizer {
library qcvirt
uuid e6c98a16-22a3-11e2-b87b-f23c91aec05e
}
equalizer {
library bundle
uuid ce772f20-847d-11df-bb17-0002a5d5c51b
}
volume {
library bundle
uuid 119341a0-8469-11df-81f9-0002a5d5c51b
}
reverb_env_aux {
library qcreverb
uuid a8c1e5f3-293d-43cd-95ec-d5e26c02e217
}
reverb_env_ins {
library qcreverb
uuid 791fff8b-8129-4655-83a4-59bc61034c3a
}
reverb_pre_aux {
library qcreverb
uuid 53ef1db5-c0c0-445b-b060-e34d20ebb70a
}
reverb_pre_ins {
library qcreverb
uuid b08a0e38-22a5-11e2-b87b-f23c91aec05e
}
visualizer {
library proxy
uuid 1d0a1a53-7d5d-48f2-8e71-27fbd10d842c
libsw {
library visualizer_sw
uuid d069d9e0-8329-11df-9168-0002a5d5c51b
}
libhw {
library visualizer_hw
uuid 7a8044a0-1a71-11e3-a184-0002a5d5c51b
}
}
downmix {
library downmix
uuid 93f04452-e4fe-41cc-91f9-e475b6d1d69f
}
loudness_enhancer {
library loudness_enhancer
uuid fa415329-2034-4bea-b5dc-5b381c8d1e2c
}
# aec {
# library audio_pre_processing
# uuid 0f8d0d2a-59e5-45fe-b6e4-248c8a799109
# }
# ns {
# library audio_pre_processing
# uuid 1d97bb0b-9e2f-4403-9ae3-58c2554306f8
# }
}
# Default pre-processing effects. Add to audio_effect.conf "effects" section if
# audio HAL implements support for them.
#
# agc {
# library pre_processing
# uuid aa8130e0-66fc-11e0-bad0-0002a5d5c51b
# }
# aec {
# library pre_processing
# uuid bb392ec0-8d4d-11e0-a896-0002a5d5c51b
# }
# ns {
# library pre_processing
# uuid c06c8400-8e06-11e0-9cb6-0002a5d5c51b
# }
# Audio preprocessor configurations.
# The pre processor configuration consists in a list of elements each describing
# pre processor settings for a given input source. Valid input source names are:
# "mic", "camcorder", "voice_recognition", "voice_communication"
# Each input source element contains a list of effects elements. The name of the effect
# element must be the name of one of the effects in the "effects" list of the file.
# Each effect element may optionally contain a list of parameters and their
# default value to apply when the pre processor effect is created.
# A parameter is defined by a "param" element and a "value" element. Each of these elements
# consists in one or more elements specifying a type followed by a value.
# The types defined are: "int", "short", "float", "bool" and "string"
# When both "param" and "value" are a single int, a simple form is allowed where just
# the param and value pair is present in the parameter description
# pre_processing {
# <input source name> {
# <fx name> {
# <param 1 name> {
# param {
# int|short|float|bool|string <value>
# [ int|short|float|bool|string <value> ]
# ...
# }
# value {
# int|short|float|bool|string <value>
# [ int|short|float|bool|string <value> ]
# ...
# }
# }
# <param 2 name > {<param> <value>}
# ...
# }
# ...
# }
# ...
# }
#
# TODO: add default audio pre processor configurations after debug and tuning phase
#
<?xml version="1.0" encoding="ISO-8859-1"?>
<audio_platform_info>
<acdb_ids>
<device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" acdb_id="7"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" acdb_id="14"/>
<device name="SND_DEVICE_IN_VOICE_DMIC" acdb_id="6"/>
<device name="SND_DEVICE_IN_VOICE_DMIC_TMUS" acdb_id="6"/>
</acdb_ids>
<pcm_ids>
<usecase name="USECASE_VOICE_CALL" type="in" id="2"/>
<usecase name="USECASE_VOICE_CALL" type="out" id="2"/>
<usecase name="USECASE_VOICE2_CALL" type="in" id="14"/>
<usecase name="USECASE_VOICE2_CALL" type="out" id="14"/>
<usecase name="USECASE_VOLTE_CALL" type="in" id="17"/>
<usecase name="USECASE_VOLTE_CALL" type="out" id="17"/>
</pcm_ids>
<backend_names>
<device name="SND_DEVICE_OUT_SPEAKER" backend="speaker" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_SAFE" backend="speaker" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" backend="speaker" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_REVERSE" backend="speaker" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES" backend="speaker-and-headphones" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_LINE" backend="speaker-and-headphones" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_SAFE_AND_HEADPHONES" backend="speaker-and-headphones" interface="SLIMBUS_0_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_SAFE_AND_LINE" backend="speaker-and-headphones" interface="SLIMBUS_0_RX"/>
</backend_names>
</audio_platform_info>
# Global configuration section: lists input and output devices always present on the device
# as well as the output device selected by default.
# Devices are designated by a string that corresponds to the enum in audio.h
global_configuration {
attached_output_devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_TELEPHONY_TX
default_output_device AUDIO_DEVICE_OUT_SPEAKER
attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_REMOTE_SUBMIX|AUDIO_DEVICE_IN_FM_TUNER|AUDIO_DEVICE_IN_TELEPHONY_RX
}
# audio hardware module section: contains descriptors for all audio hw modules present on the
# device. Each hw module node is named after the corresponding hw module library base name.
# For instance, "primary" corresponds to audio.primary.<device>.so.
# The "primary" module is mandatory and must include at least one output with
# AUDIO_OUTPUT_FLAG_PRIMARY flag.
# Each module descriptor contains one or more output profile descriptors and zero or more
# input profile descriptors. Each profile lists all the parameters supported by a given output
# or input stream category.
# The "channel_masks", "formats", "devices" and "flags" are specified using strings corresponding
# to enums in audio.h and audio_policy.h. They are concatenated by use of "|" without space or "\n".
audio_hw_modules {
primary {
outputs {
primary {
sampling_rates 44100|48000
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_PROXY|AUDIO_DEVICE_OUT_AUX_DIGITAL
flags AUDIO_OUTPUT_FLAG_PRIMARY
}
low_latency {
sampling_rates 44100|48000
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_PROXY|AUDIO_DEVICE_OUT_AUX_DIGITAL
flags AUDIO_OUTPUT_FLAG_FAST
}
compress_offload {
sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
channel_masks AUDIO_CHANNEL_OUT_MONO|AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_MP3|AUDIO_FORMAT_AAC_LC|AUDIO_FORMAT_AAC_HE_V1|AUDIO_FORMAT_AAC_HE_V2
devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE
flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING
}
}
inputs {
primary {
sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO|AUDIO_CHANNEL_IN_FRONT_BACK
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_WIRED_HEADSET|AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_FM_TUNER
}
}
}
a2dp {
outputs {
a2dp {
sampling_rates 44100
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_ALL_A2DP
}
}
}
usb {
outputs {
usb_accessory {
sampling_rates 44100
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_USB_ACCESSORY
}
usb_device {
sampling_rates dynamic
channel_masks dynamic
formats dynamic
devices AUDIO_DEVICE_OUT_USB_DEVICE
}
}
inputs {
usb_device {
sampling_rates dynamic
channel_masks dynamic
formats dynamic
devices AUDIO_DEVICE_IN_USB_DEVICE
}
}
}
r_submix {
outputs {
submix {
sampling_rates 48000
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_REMOTE_SUBMIX
}
}
inputs {
submix {
sampling_rates 48000
channel_masks AUDIO_CHANNEL_IN_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_IN_REMOTE_SUBMIX
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2012-2013, The Linux Foundation. All rights reserved.
Not a contribution.
Copyright (C) 2012 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<MediaCodecs>
<Include href="media_codecs_google_audio.xml" />
<Include href="media_codecs_google_telephony.xml" />
<Settings>
<Setting name="max-video-encoder-input-buffers" value="9" />
</Settings>
<Encoders>
<!-- Video Hardware -->
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="96x64" max="1280x720" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="108000" />
<Limit name="bitrate" range="1-20000000" />
<Limit name="concurrent-instances" max="8" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4" type="video/mp4v-es" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation"/>
<Limit name="size" min="96x64" max="1280x720" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="108000" />
<Limit name="bitrate" range="1-20000000" />
<Limit name="concurrent-instances" max="8" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.h263" type="video/3gpp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="96x64" max="864x480" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="48600" />
<Limit name="bitrate" range="1-2000000" />
<Limit name="concurrent-instances" max="8" />
</MediaCodec>
</Encoders>
<Decoders>
<!-- Video Hardware -->
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="64x64" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="244800" />
<Limit name="bitrate" range="1-20000000" />
<Limit name="concurrent-instances" max="8" />
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.avc.secure" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="64x64" max="1280x720" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="108000" />
<Limit name="bitrate" range="1-20000000" />
<Limit name="concurrent-instances" max="2" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.mpeg2" type="video/mpeg2" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x64" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="244800" />
<Limit name="bitrate" range="1-20000000" />
<Limit name="concurrent-instances" max="8" />
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.mpeg4" type="video/mp4v-es" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="64x64" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="244800" />
<Limit name="bitrate" range="1-20000000" />
<Limit name="concurrent-instances" max="8" />
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.h263" type="video/3gpp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="64x64" max="864x480" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="48600" />
<Limit name="bitrate" range="1-2000000" />
<Limit name="concurrent-instances" max="8" />
<Feature name="adaptive-playback" />
</MediaCodec>
</Decoders>
<Include href="media_codecs_google_video.xml" />
</MediaCodecs>
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<MediaCodecs>
<Encoders>
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="351-351" />
<Limit name="measured-frame-rate-720x480" range="103-103" />
<Limit name="measured-frame-rate-1280x720" range="40-40" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="468-468" />
<Limit name="measured-frame-rate-352x288" range="243-243" />
<Limit name="measured-frame-rate-640x480" range="101-101" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.h263" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="286-286" />
<Limit name="measured-frame-rate-352x288" range="249-249" />
</MediaCodec>
<MediaCodec name="OMX.google.h264.encoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="271-271" />
<Limit name="measured-frame-rate-720x480" range="84-84" />
</MediaCodec>
<MediaCodec name="OMX.google.h263.encoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="520-520" />
</MediaCodec>
<MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="570-570" />
</MediaCodec>
<MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="345-345" />
<Limit name="measured-frame-rate-640x360" range="118-118" />
<Limit name="measured-frame-rate-1280x720" range="26-26" />
</MediaCodec>
</Encoders>
<Decoders>
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="421-421" />
<Limit name="measured-frame-rate-720x480" range="343-343" />
<Limit name="measured-frame-rate-1280x720" range="151-151" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.mpeg4" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-480x360" range="364-364" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.h263" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="619-619" />
<Limit name="measured-frame-rate-352x288" range="606-606" />
</MediaCodec>
<MediaCodec name="OMX.google.h264.decoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="607-607" />
<Limit name="measured-frame-rate-720x480" range="191-191" />
<Limit name="measured-frame-rate-1280x720" range="59-59" />
</MediaCodec>
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="1443-1443" />
<Limit name="measured-frame-rate-352x288" range="795-795" />
</MediaCodec>
<MediaCodec name="OMX.google.hevc.decoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="395-395" />
<Limit name="measured-frame-rate-720x480" range="230-230" />
<Limit name="measured-frame-rate-1280x720" range="69-69" />
</MediaCodec>
<MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x240" range="779-779" />
<Limit name="measured-frame-rate-640x360" range="219-219" />
<Limit name="measured-frame-rate-1280x720" range="40-40" />
<Limit name="measured-frame-rate-1920x1080" range="31-31" />
</MediaCodec>
<MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x240" range="318-318" />
<Limit name="measured-frame-rate-640x360" range="236-236" />
<Limit name="measured-frame-rate-1280x720" range="67-67" />
</MediaCodec>
</Decoders>
</MediaCodecs>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment