Merge "mm-video-v4l2: vdec: fix 10bit to 8bit reconfig output format"
diff --git a/conf_files/kona/kona.mk b/conf_files/kona/kona.mk
index 14c7446..9001279 100644
--- a/conf_files/kona/kona.mk
+++ b/conf_files/kona/kona.mk
@@ -10,7 +10,11 @@
$(CONFIG_PATH)/mediacodec-seccomp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy \
$(CONFIG_PATH)/system_properties.xml:$(TARGET_COPY_OUT_VENDOR)/etc/system_properties.xml
+# Enable CLANG/LLVM integer-overflow sanitization
+TARGET_ENABLE_VIDC_INTSAN := false
+
# Enable DIAG mode for CLANG/LLVM integer-overflow sanitization
+# TARGET_ENABLE_VIDC_INTSAN must be set to 'true' before enabling DIAG mode
# NOTE: DIAG mode should be used only for debug builds
TARGET_ENABLE_VIDC_INTSAN_DIAG := false
diff --git a/conf_files/kona/media_codecs.xml b/conf_files/kona/media_codecs.xml
index 971d4e1..ffb158e 100644
--- a/conf_files/kona/media_codecs.xml
+++ b/conf_files/kona/media_codecs.xml
@@ -246,8 +246,10 @@
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="128x128" max="512x512" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
<Limit name="frame-rate" range="1-20" />
- <Limit name="concurrent-instances" max="6" />
+ <Limit name="concurrent-instances" max="16" />
<Limit name="quality" range="0-100" default="80" />
<Feature name="bitrate-modes" value="CQ" />
</MediaCodec>
@@ -257,6 +259,8 @@
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="512x512" max="8192x8192" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
<Limit name="frame-rate" range="1-20" />
<Limit name="concurrent-instances" max="6" />
<Limit name="quality" range="0-100" default="80" />
@@ -283,12 +287,12 @@
<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="128x128" max="1280x1280" />
+ <Limit name="size" min="128x128" max="864x864" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="64-3600" />
- <Limit name="blocks-per-second" min="64" max="108000" />
- <Limit name="bitrate" range="1-4000000" />
+ <Limit name="blocks-per-second" min="64" max="48600" />
+ <Limit name="bitrate" range="1-8000000" />
<Limit name="frame-rate" range="1-30" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-720x576" value="25" />
@@ -509,5 +513,4 @@
</MediaCodec>
</Decoders>
<Include href="media_codecs_google_video.xml" />
- <Include href="media_codecs_vendor_audio.xml" />
</MediaCodecs>
diff --git a/conf_files/kona/media_codecs_performance.xml b/conf_files/kona/media_codecs_performance.xml
index 8a75380..74c9229 100644
--- a/conf_files/kona/media_codecs_performance.xml
+++ b/conf_files/kona/media_codecs_performance.xml
@@ -34,6 +34,9 @@
<Limit name="measured-frame-rate-1920x1080" range="91-104" />
<Limit name="measured-frame-rate-3840x2160" range="37-40" />
</MediaCodec>
+ <MediaCodec name="OMX.qcom.video.encoder.hevc.cq" type="video/hevc" update="true">
+ <Limit name="measured-frame-rate-320x240" range="340-400" />
+ </MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="303-303" />
<Limit name="measured-frame-rate-352x288" range="259-259" />
diff --git a/conf_files/kona/media_codecs_vendor.xml b/conf_files/kona/media_codecs_vendor.xml
index a1eb3c9..496c906 100644
--- a/conf_files/kona/media_codecs_vendor.xml
+++ b/conf_files/kona/media_codecs_vendor.xml
@@ -182,6 +182,7 @@
-->
<MediaCodecs>
+ <Include href="media_codecs_google_audio.xml" />
<Include href="media_codecs_vendor_audio.xml" />
<Include href="media_codecs_google_telephony.xml" />
<Settings>
@@ -246,8 +247,10 @@
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="128x128" max="512x512" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
<Limit name="frame-rate" range="1-20" />
- <Limit name="concurrent-instances" max="6" />
+ <Limit name="concurrent-instances" max="16" />
<Limit name="quality" range="0-100" default="80" />
<Feature name="bitrate-modes" value="CQ" />
</MediaCodec>
@@ -257,6 +260,8 @@
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="512x512" max="8192x8192" />
+ <Limit name="alignment" value="2x2" />
+ <Limit name="block-size" value="16x16" />
<Limit name="frame-rate" range="1-20" />
<Limit name="concurrent-instances" max="6" />
<Limit name="quality" range="0-100" default="80" />
@@ -283,12 +288,12 @@
<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="128x128" max="1280x1280" />
+ <Limit name="size" min="128x128" max="864x864" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="64-3600" />
- <Limit name="blocks-per-second" min="64" max="108000" />
- <Limit name="bitrate" range="1-4000000" />
+ <Limit name="blocks-per-second" min="64" max="48600" />
+ <Limit name="bitrate" range="1-8000000" />
<Limit name="frame-rate" range="1-30" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-720x576" value="25" />
diff --git a/conf_files/kona/media_profiles.xml b/conf_files/kona/media_profiles.xml
index a49eedd..bb9cd1f 100644
--- a/conf_files/kona/media_profiles.xml
+++ b/conf_files/kona/media_profiles.xml
@@ -1768,9 +1768,9 @@
maxHFRMode="0" />
<VideoEncoderCap name="m4v" enabled="true"
- minBitRate="64000" maxBitRate="20000000"
- minFrameWidth="176" maxFrameWidth="1280"
- minFrameHeight="144" maxFrameHeight="720"
+ minBitRate="64000" maxBitRate="8000000"
+ minFrameWidth="176" maxFrameWidth="800"
+ minFrameHeight="144" maxFrameHeight="480"
minFrameRate="15" maxFrameRate="30"
maxHFRFrameWidth="0" maxHFRFrameHeight="0"
maxHFRMode="0" />
diff --git a/conf_files/kona/system_properties.xml b/conf_files/kona/system_properties.xml
index 1177da9..db77bbc 100644
--- a/conf_files/kona/system_properties.xml
+++ b/conf_files/kona/system_properties.xml
@@ -40,4 +40,5 @@
<property name="vidc_dec_sec_prefetch_size_internal" value="209715200"/>
<property name="vidc_dec_sec_prefetch_size_output" value="13434880"/>
<property name="vidc_enc_bitrate_savings_enable" value="1"/>
+ <property name="vidc_enc_auto_blur_disable" value="0"/>
</configs>
diff --git a/conf_files/lito/lito.mk b/conf_files/lito/lito.mk
index 8c5b847..7fb74ef 100644
--- a/conf_files/lito/lito.mk
+++ b/conf_files/lito/lito.mk
@@ -12,4 +12,16 @@
$(CONFIG_PATH)/mediacodec-seccomp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy \
$(CONFIG_PATH)/system_properties.xml:$(TARGET_COPY_OUT_VENDOR)/etc/system_properties.xml
-# Vendor property overrides
\ No newline at end of file
+# Vendor property overrides
+
+ifeq ($(GENERIC_ODM_IMAGE),true)
+ $(warning "Forcing codec2.0 HW for generic odm build variant")
+ #Set default ranks and rank Codec 2.0 over OMX codecs
+ PRODUCT_ODM_PROPERTIES += debug.stagefright.ccodec=4
+ PRODUCT_ODM_PROPERTIES += debug.stagefright.omx_default_rank=1000
+else
+ $(warning "Enabling codec2.0 SW only for non-generic odm build variant")
+ #Rank OMX SW codecs lower than OMX HW codecs
+ PRODUCT_PROPERTY_OVERRIDES += debug.stagefright.omx_default_rank.sw-audio=1
+ PRODUCT_PROPERTY_OVERRIDES += debug.stagefright.omx_default_rank=0
+endif
\ No newline at end of file
diff --git a/conf_files/lito/media_codecs.xml b/conf_files/lito/media_codecs.xml
index 62cc8c3..87f7f78 100644
--- a/conf_files/lito/media_codecs.xml
+++ b/conf_files/lito/media_codecs.xml
@@ -191,19 +191,19 @@
<Limit name="blocks-per-second" min="64" max="48600" />
<Limit name="bitrate" range="1-2000000" />
<Limit name="frame-rate" range="1-30" />
- <Limit name="concurrent-instances" max="16" />
+ <Limit name="concurrent-instances" max="3" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" 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="128x128" max="1280x720" />
+ <Limit name="size" min="128x128" max="864x480" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
- <Limit name="blocks-per-second" min="64" max="108000" />
- <Limit name="bitrate" range="1-4000000" />
+ <Limit name="blocks-per-second" min="64" max="48600" />
+ <Limit name="bitrate" range="1-8000000" />
<Limit name="frame-rate" range="1-30" />
- <Limit name="concurrent-instances" max="16" />
+ <Limit name="concurrent-instances" max="3" />
</MediaCodec>
</Encoders>
<Decoders>
@@ -331,7 +331,7 @@
<Limit name="bitrate" range="1-16000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
- <Limit name="concurrent-instances" max="16" />
+ <Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es">
<Quirk name="requires-allocate-on-input-ports" />
@@ -342,7 +342,7 @@
<Limit name="blocks-per-second" min="64" max="244800" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
- <Limit name="concurrent-instances" max="16" />
+ <Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.divxsw" type="video/divx" >
<Quirk name="requires-allocate-on-input-ports" />
@@ -353,7 +353,7 @@
<Limit name="blocks-per-second" min="64" max="244800" />
<Limit name="frame-rate" range="1-30" />
<Limit name="bitrate" range="1-10000000" />
- <Limit name="concurrent-instances" max="16" />
+ <Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.divx4sw" type="video/divx4" >
<Quirk name="requires-allocate-on-input-ports" />
@@ -364,7 +364,7 @@
<Limit name="blocks-per-second" min="64" max="244800" />
<Limit name="frame-rate" range="1-30" />
<Limit name="bitrate" range="1-10000000" />
- <Limit name="concurrent-instances" max="16" />
+ <Limit name="concurrent-instances" max="4" />
</MediaCodec>
</Decoders>
<Include href="media_codecs_google_video.xml" />
diff --git a/conf_files/lito/media_codecs_performance.xml b/conf_files/lito/media_codecs_performance.xml
index fd2f279..26a48ef 100644
--- a/conf_files/lito/media_codecs_performance.xml
+++ b/conf_files/lito/media_codecs_performance.xml
@@ -42,7 +42,6 @@
<Limit name="measured-frame-rate-176x144" range="125-135" />
<Limit name="measured-frame-rate-352x288" range="55-85" />
<Limit name="measured-frame-rate-640x480" range="47-52" />
- <Limit name="measured-frame-rate-1280x720" range="30-50" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="266-266" />
diff --git a/conf_files/lito/media_codecs_performance_v1.xml b/conf_files/lito/media_codecs_performance_v1.xml
index fb6d95a..66f2a0f 100644
--- a/conf_files/lito/media_codecs_performance_v1.xml
+++ b/conf_files/lito/media_codecs_performance_v1.xml
@@ -42,7 +42,6 @@
<Limit name="measured-frame-rate-176x144" range="125-135" />
<Limit name="measured-frame-rate-352x288" range="68-85" />
<Limit name="measured-frame-rate-640x480" range="47-52" />
- <Limit name="measured-frame-rate-1280x720" range="30-50" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="266-266" />
diff --git a/conf_files/lito/media_codecs_vendor.xml b/conf_files/lito/media_codecs_vendor.xml
index bbf2c47..48b7848 100644
--- a/conf_files/lito/media_codecs_vendor.xml
+++ b/conf_files/lito/media_codecs_vendor.xml
@@ -135,6 +135,7 @@
-->
<MediaCodecs>
+ <Include href="media_codecs_google_audio.xml" />
<Include href="media_codecs_vendor_audio.xml" />
<Include href="media_codecs_google_telephony.xml" />
<Settings>
@@ -202,19 +203,19 @@
<Limit name="blocks-per-second" min="64" max="48600" />
<Limit name="bitrate" range="1-2000000" />
<Limit name="frame-rate" range="1-30" />
- <Limit name="concurrent-instances" max="16" />
+ <Limit name="concurrent-instances" max="3" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" 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="128x128" max="1280x720" />
+ <Limit name="size" min="128x128" max="864x480" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
- <Limit name="blocks-per-second" min="64" max="108000" />
- <Limit name="bitrate" range="1-4000000" />
+ <Limit name="blocks-per-second" min="64" max="48600" />
+ <Limit name="bitrate" range="1-8000000" />
<Limit name="frame-rate" range="1-30" />
- <Limit name="concurrent-instances" max="16" />
+ <Limit name="concurrent-instances" max="3" />
</MediaCodec>
</Encoders>
<Decoders>
@@ -342,7 +343,7 @@
<Limit name="bitrate" range="1-16000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
- <Limit name="concurrent-instances" max="16" />
+ <Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es">
<Quirk name="requires-allocate-on-input-ports" />
@@ -353,7 +354,7 @@
<Limit name="blocks-per-second" min="64" max="244800" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
- <Limit name="concurrent-instances" max="16" />
+ <Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.divxsw" type="video/divx" >
<Quirk name="requires-allocate-on-input-ports" />
@@ -364,7 +365,7 @@
<Limit name="blocks-per-second" min="64" max="244800" />
<Limit name="frame-rate" range="1-30" />
<Limit name="bitrate" range="1-10000000" />
- <Limit name="concurrent-instances" max="16" />
+ <Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.divx4sw" type="video/divx4" >
<Quirk name="requires-allocate-on-input-ports" />
@@ -375,7 +376,7 @@
<Limit name="blocks-per-second" min="64" max="244800" />
<Limit name="frame-rate" range="1-30" />
<Limit name="bitrate" range="1-10000000" />
- <Limit name="concurrent-instances" max="16" />
+ <Limit name="concurrent-instances" max="4" />
</MediaCodec>
</Decoders>
<Include href="media_codecs_google_video.xml" />
diff --git a/conf_files/lito/media_codecs_vendor_audio.xml b/conf_files/lito/media_codecs_vendor_audio.xml
index e37efa4..e6273e9 100644
--- a/conf_files/lito/media_codecs_vendor_audio.xml
+++ b/conf_files/lito/media_codecs_vendor_audio.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" ?>
-<!-- Copyright (C) 2015-2018 The Linux Foundation. All rights reserved.
+<!-- Copyright (C) 2015-2019 The Linux Foundation. All rights reserved.
Not a contribution.
Copyright (C) 2012 The Android Open Source Project
@@ -17,81 +17,13 @@
-->
<Included>
<Decoders>
- <MediaCodec name="OMX.google.mp3.decoder" type="audio/mpeg">
- <Limit name="channel-count" max="2" />
- <Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" />
- <Limit name="bitrate" range="8000-320000" />
- </MediaCodec>
- <MediaCodec name="OMX.google.amrnb.decoder" type="audio/3gpp">
- <Limit name="channel-count" max="1" />
- <Limit name="sample-rate" ranges="8000" />
- <Limit name="bitrate" range="4750-12200" />
- </MediaCodec>
- <MediaCodec name="OMX.google.amrwb.decoder" type="audio/amr-wb">
- <Limit name="channel-count" max="1" />
- <Limit name="sample-rate" ranges="16000" />
- <Limit name="bitrate" range="6600-23850" />
- </MediaCodec>
- <MediaCodec name="OMX.google.aac.decoder" type="audio/mp4a-latm">
- <Limit name="channel-count" max="8" />
- <Limit name="sample-rate" ranges="7350,8000,11025,12000,16000,22050,24000,32000,44100,48000" />
- <Limit name="bitrate" range="8000-960000" />
- </MediaCodec>
- <MediaCodec name="OMX.google.g711.alaw.decoder" type="audio/g711-alaw">
- <Limit name="channel-count" max="1" />
- <Limit name="sample-rate" ranges="8000-48000" />
- <Limit name="bitrate" range="64000" />
- </MediaCodec>
- <MediaCodec name="OMX.google.g711.mlaw.decoder" type="audio/g711-mlaw">
- <Limit name="channel-count" max="1" />
- <Limit name="sample-rate" ranges="8000-48000" />
- <Limit name="bitrate" range="64000" />
- </MediaCodec>
- <MediaCodec name="OMX.google.vorbis.decoder" type="audio/vorbis">
- <Limit name="channel-count" max="8" />
- <Limit name="sample-rate" ranges="8000-96000" />
- <Limit name="bitrate" range="32000-500000" />
- </MediaCodec>
- <MediaCodec name="OMX.google.opus.decoder" type="audio/opus">
- <Limit name="channel-count" max="8" />
- <Limit name="sample-rate" ranges="48000" />
- <Limit name="bitrate" range="6000-510000" />
- </MediaCodec>
- <MediaCodec name="OMX.google.raw.decoder" type="audio/raw">
- <Limit name="channel-count" max="8" />
- <Limit name="sample-rate" ranges="8000-96000" />
- <Limit name="bitrate" range="1-10000000" />
- </MediaCodec>
+ <MediaCodec name="OMX.google.opus.decoder" type="audio/opus" update="true" rank="100"/>
<!-- SimpleOMXComponet based software decoder-->
- <MediaCodec name="OMX.qti.audio.decoder.flac" type="audio/flac" >
+ <MediaCodec name="OMX.qti.audio.decoder.flac" type="audio/flac" rank="0">
<Limit name="concurrent-instances" max="10" />
</MediaCodec>
+ <MediaCodec name="OMX.qti.audio.decoder.mpegh" type="audio/mhas" rank="0">
+ <Limit name="concurrent-instances" max="1" />
+ </MediaCodec>
</Decoders>
- <Encoders>
- <MediaCodec name="OMX.google.aac.encoder" type="audio/mp4a-latm">
- <Limit name="channel-count" max="6" />
- <Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" />
- <!-- also may support 64000, 88200 and 96000 Hz -->
- <Limit name="bitrate" range="8000-960000" />
- </MediaCodec>
- <MediaCodec name="OMX.google.amrnb.encoder" type="audio/3gpp">
- <Limit name="channel-count" max="1" />
- <Limit name="sample-rate" ranges="8000" />
- <Limit name="bitrate" range="4750-12200" />
- <Feature name="bitrate-modes" value="CBR" />
- </MediaCodec>
- <MediaCodec name="OMX.google.amrwb.encoder" type="audio/amr-wb">
- <Limit name="channel-count" max="1" />
- <Limit name="sample-rate" ranges="16000" />
- <Limit name="bitrate" range="6600-23850" />
- <Feature name="bitrate-modes" value="CBR" />
- </MediaCodec>
- <MediaCodec name="OMX.google.flac.encoder" type="audio/flac">
- <Limit name="channel-count" max="2" />
- <Limit name="sample-rate" ranges="1-655350" />
- <Limit name="bitrate" range="1-21000000" />
- <Limit name="complexity" range="0-8" default="5" />
- <Feature name="bitrate-modes" value="CQ" />
- </MediaCodec>
- </Encoders>
</Included>
diff --git a/conf_files/lito/media_codecs_vendor_v1.xml b/conf_files/lito/media_codecs_vendor_v1.xml
index 01c5286..d2ba141 100644
--- a/conf_files/lito/media_codecs_vendor_v1.xml
+++ b/conf_files/lito/media_codecs_vendor_v1.xml
@@ -200,19 +200,19 @@
<Limit name="blocks-per-second" min="64" max="48600" />
<Limit name="bitrate" range="1-2000000" />
<Limit name="frame-rate" range="1-30" />
- <Limit name="concurrent-instances" max="16" />
+ <Limit name="concurrent-instances" max="3" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4sw" 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="128x128" max="1280x720" />
+ <Limit name="size" min="128x128" max="864x480" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
- <Limit name="blocks-per-second" min="64" max="108000" />
- <Limit name="bitrate" range="1-4000000" />
+ <Limit name="blocks-per-second" min="64" max="48600" />
+ <Limit name="bitrate" range="1-8000000" />
<Limit name="frame-rate" range="1-30" />
- <Limit name="concurrent-instances" max="16" />
+ <Limit name="concurrent-instances" max="3" />
</MediaCodec>
</Encoders>
<Decoders>
@@ -340,7 +340,7 @@
<Limit name="bitrate" range="1-16000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
- <Limit name="concurrent-instances" max="16" />
+ <Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.mpeg4sw" type="video/mp4v-es">
<Quirk name="requires-allocate-on-input-ports" />
@@ -351,7 +351,7 @@
<Limit name="blocks-per-second" min="64" max="244800" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
- <Limit name="concurrent-instances" max="16" />
+ <Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.divxsw" type="video/divx" >
<Quirk name="requires-allocate-on-input-ports" />
@@ -362,7 +362,7 @@
<Limit name="blocks-per-second" min="64" max="244800" />
<Limit name="frame-rate" range="1-30" />
<Limit name="bitrate" range="1-10000000" />
- <Limit name="concurrent-instances" max="16" />
+ <Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.qti.video.decoder.divx4sw" type="video/divx4" >
<Quirk name="requires-allocate-on-input-ports" />
@@ -373,7 +373,7 @@
<Limit name="blocks-per-second" min="64" max="244800" />
<Limit name="frame-rate" range="1-30" />
<Limit name="bitrate" range="1-10000000" />
- <Limit name="concurrent-instances" max="16" />
+ <Limit name="concurrent-instances" max="4" />
</MediaCodec>
</Decoders>
<Include href="media_codecs_google_video.xml" />
diff --git a/conf_files/lito/media_profiles.xml b/conf_files/lito/media_profiles.xml
index afed801..a7ff232 100644
--- a/conf_files/lito/media_profiles.xml
+++ b/conf_files/lito/media_profiles.xml
@@ -27,7 +27,7 @@
<!ATTLIST EncoderProfile quality (high|low) #REQUIRED>
<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
-<!ATTLIST EncoderProfile cameraId (0|1) #REQUIRED>
+<!ATTLIST EncoderProfile cameraId (0|1|2|3|4|5) #REQUIRED>
<!ELEMENT Video EMPTY>
<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
<!ATTLIST Video bitRate CDATA #REQUIRED>
@@ -111,7 +111,7 @@
<EncoderProfile quality="high" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
- width="3840"
+ width="4096"
height="2160"
frameRate="30" />
@@ -217,7 +217,7 @@
bitRate="42000000"
width="4096"
height="2160"
- frameRate="24" />
+ frameRate="30" />
<Audio codec="aac"
bitRate="156000"
@@ -281,7 +281,7 @@
<EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
- width="3840"
+ width="4096"
height="2160"
frameRate="30" />
@@ -470,7 +470,7 @@
<EncoderProfile quality="high" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
- width="3840"
+ width="4096"
height="2160"
frameRate="30" />
@@ -572,7 +572,7 @@
bitRate="42000000"
width="4096"
height="2160"
- frameRate="24" />
+ frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
@@ -633,7 +633,7 @@
<EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
- width="3840"
+ width="4096"
height="2160"
frameRate="30" />
@@ -793,6 +793,1394 @@
</CamcorderProfiles>
+ <!-- Monosensor Camera -->
+ <CamcorderProfiles cameraId="2">
+
+ <EncoderProfile quality="low" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="high" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="2560"
+ height="1440"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
+ <Video codec="h264"
+ bitRate="512000"
+ width="320"
+ height="240"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="cif" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="720000"
+ width="352"
+ height="288"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="720"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qhd" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="2560"
+ height="1440"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="2k" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="2048"
+ height="1080"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="vga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="2560"
+ height="1440"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="720000"
+ width="352"
+ height="288"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+
+ <EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="512000"
+ width="320"
+ height="240"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsevga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqhd" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="2560"
+ height="1440"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse2k" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="2048"
+ height="1080"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <ImageEncoding quality="95" />
+ <ImageEncoding quality="80" />
+ <ImageEncoding quality="70" />
+ <ImageDecoding memCap="20000000" />
+
+ </CamcorderProfiles>
+
+ <!-- Camera ID 3 -->
+ <CamcorderProfiles cameraId="3">
+
+ <EncoderProfile quality="low" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="high" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="4096"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
+ <Video codec="h264"
+ bitRate="512000"
+ width="320"
+ height="240"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="cif" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="720000"
+ width="352"
+ height="288"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="720"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qhd" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="2560"
+ height="1440"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="2k" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="2048"
+ height="1080"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="4kdci" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="4096"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="2160p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="3840"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="vga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="4096"
+ height="2160"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="720000"
+ width="352"
+ height="288"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+
+ <EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="512000"
+ width="320"
+ height="240"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsevga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqhd" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="2560"
+ height="1440"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse2k" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="2048"
+ height="1080"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse4kdci" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="4096"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="3840"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <ImageEncoding quality="95" />
+ <ImageEncoding quality="80" />
+ <ImageEncoding quality="70" />
+ <ImageDecoding memCap="20000000" />
+
+ </CamcorderProfiles>
+
+ <!-- Camera ID 4 -->
+ <CamcorderProfiles cameraId="4">
+
+ <EncoderProfile quality="low" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="high" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="4096"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
+ <Video codec="h264"
+ bitRate="512000"
+ width="320"
+ height="240"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="cif" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="720000"
+ width="352"
+ height="288"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="720"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qhd" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="2560"
+ height="1440"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="2k" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="2048"
+ height="1080"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="4kdci" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="4096"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="2160p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="3840"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="vga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="4096"
+ height="2160"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="720000"
+ width="352"
+ height="288"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+
+ <EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="512000"
+ width="320"
+ height="240"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsevga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqhd" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="2560"
+ height="1440"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse2k" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="2048"
+ height="1080"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse4kdci" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="4096"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="3840"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <ImageEncoding quality="95" />
+ <ImageEncoding quality="80" />
+ <ImageEncoding quality="70" />
+ <ImageDecoding memCap="20000000" />
+
+ </CamcorderProfiles>
+
+ <!-- Camera ID 5 -->
+ <CamcorderProfiles cameraId="5">
+
+ <EncoderProfile quality="low" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="high" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="4096"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
+ <Video codec="h264"
+ bitRate="512000"
+ width="320"
+ height="240"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="cif" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="720000"
+ width="352"
+ height="288"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="720"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qhd" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="2560"
+ height="1440"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="2k" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="2048"
+ height="1080"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="4kdci" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="4096"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="2160p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="3840"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="vga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="4096"
+ height="2160"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="192000"
+ width="176"
+ height="144"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="720000"
+ width="352"
+ height="288"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+
+ <EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="512000"
+ width="320"
+ height="240"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapsevga" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="2000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="14000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqhd" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="2560"
+ height="1440"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse2k" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="20000000"
+ width="2048"
+ height="1080"
+ frameRate="30" />
+
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse4kdci" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="4096"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30">
+ <Video codec="h264"
+ bitRate="42000000"
+ width="3840"
+ height="2160"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="156000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <ImageEncoding quality="95" />
+ <ImageEncoding quality="80" />
+ <ImageEncoding quality="70" />
+ <ImageDecoding memCap="20000000" />
+
+ </CamcorderProfiles>
+
<EncoderOutputFileFormat name="3gp" />
<EncoderOutputFileFormat name="mp4" />
@@ -818,9 +2206,9 @@
maxHFRMode="0" />
<VideoEncoderCap name="m4v" enabled="true"
- minBitRate="64000" maxBitRate="20000000"
- minFrameWidth="176" maxFrameWidth="1280"
- minFrameHeight="144" maxFrameHeight="720"
+ minBitRate="64000" maxBitRate="8000000"
+ minFrameWidth="176" maxFrameWidth="800"
+ minFrameHeight="144" maxFrameHeight="480"
minFrameRate="15" maxFrameRate="30"
maxHFRFrameWidth="0" maxHFRFrameHeight="0"
maxHFRMode="0" />
diff --git a/libc2dcolorconvert/Android.mk b/libc2dcolorconvert/Android.mk
index 675ebc7..1e7b1a5 100644
--- a/libc2dcolorconvert/Android.mk
+++ b/libc2dcolorconvert/Android.mk
@@ -2,11 +2,13 @@
include $(CLEAR_VARS)
+ifeq ($(TARGET_ENABLE_VIDC_INTSAN), true)
LOCAL_SANITIZE := integer_overflow
ifeq ($(TARGET_ENABLE_VIDC_INTSAN_DIAG), true)
$(warning INTSAN_DIAG_ENABLED)
LOCAL_SANITIZE_DIAG := integer_overflow
endif
+endif
LOCAL_SRC_FILES := \
C2DColorConverter.cpp
diff --git a/libplatformconfig/Android.mk b/libplatformconfig/Android.mk
index b59682f..bde1add 100644
--- a/libplatformconfig/Android.mk
+++ b/libplatformconfig/Android.mk
@@ -19,11 +19,13 @@
LOCAL_CFLAGS := $(COMMON_CFLAGS) $(libplatformconfig-def)
+ifeq ($(TARGET_ENABLE_VIDC_INTSAN), true)
LOCAL_SANITIZE := integer_overflow
ifeq ($(TARGET_ENABLE_VIDC_INTSAN_DIAG), true)
$(warning INTSAN_DIAG_ENABLED)
LOCAL_SANITIZE_DIAG := integer_overflow
endif
+endif
LOCAL_SHARED_LIBRARIES += \
libexpat \
diff --git a/libplatformconfig/PlatformConfig.h b/libplatformconfig/PlatformConfig.h
index f696b2e..cbbb4d2 100644
--- a/libplatformconfig/PlatformConfig.h
+++ b/libplatformconfig/PlatformConfig.h
@@ -72,6 +72,7 @@
vidc_perf_control_enable,
vidc_enc_linear_color_format,
vidc_enc_bitrate_savings_enable,
+ vidc_enc_auto_blur_disable,
} Config_t;
struct configStr {
@@ -93,6 +94,7 @@
{vidc_perf_control_enable, "vidc_perf_control_enable"},
{vidc_enc_linear_color_format, "vidc_enc_linear_color_format"},
{vidc_enc_bitrate_savings_enable, "vidc_enc_bitrate_savings_enable"},
+ {vidc_enc_auto_blur_disable, "vidc_enc_auto_blur_disable"},
};
class Config {
diff --git a/libstagefrighthw/Android.mk b/libstagefrighthw/Android.mk
index cce48e8..5c19539 100644
--- a/libstagefrighthw/Android.mk
+++ b/libstagefrighthw/Android.mk
@@ -30,11 +30,13 @@
LOCAL_CFLAGS := $(PV_CFLAGS_MINUS_VISIBILITY)
+ifeq ($(TARGET_ENABLE_VIDC_INTSAN), true)
LOCAL_SANITIZE := integer_overflow
ifeq ($(TARGET_ENABLE_VIDC_INTSAN_DIAG), true)
$(warning INTSAN_DIAG_ENABLED)
LOCAL_SANITIZE_DIAG := integer_overflow
endif
+endif
ifeq ($(PLATFORM_SDK_VERSION), 18) #JB_MR2
LOCAL_CFLAGS += -DANDROID_JELLYBEAN_MR2=1
diff --git a/mm-core/Android.mk b/mm-core/Android.mk
index 2be2844..f20c0eb 100644
--- a/mm-core/Android.mk
+++ b/mm-core/Android.mk
@@ -72,10 +72,13 @@
LOCAL_HEADER_LIBRARIES := \
libutils_headers
+ifeq ($(TARGET_ENABLE_VIDC_INTSAN), true)
LOCAL_SANITIZE := integer_overflow
-ifeq ($(TARGET_MSM_VIDC_INTSAN_DIAG),true)
+ifeq ($(TARGET_ENABLE_VIDC_INTSAN_DIAG), true)
+$(warning INTSAN_DIAG_ENABLED)
LOCAL_SANITIZE_DIAG := integer_overflow
endif
+endif
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE := libOmxCore
@@ -124,10 +127,13 @@
endif
LOCAL_CFLAGS := $(OMXCORE_CFLAGS)
+ifeq ($(TARGET_ENABLE_VIDC_INTSAN), true)
LOCAL_SANITIZE := integer_overflow
-ifeq ($(TARGET_MSM_VIDC_INTSAN_DIAG),true)
+ifeq ($(TARGET_ENABLE_VIDC_INTSAN_DIAG), true)
+$(warning INTSAN_DIAG_ENABLED)
LOCAL_SANITIZE_DIAG := integer_overflow
endif
+endif
LOCAL_SRC_FILES := src/common/omx_core_cmp.cpp
LOCAL_SRC_FILES += src/common/qc_omx_core.c
diff --git a/mm-video-v4l2/vidc/common/Android.mk b/mm-video-v4l2/vidc/common/Android.mk
index 9896cb1..9625fc0 100644
--- a/mm-video-v4l2/vidc/common/Android.mk
+++ b/mm-video-v4l2/vidc/common/Android.mk
@@ -41,11 +41,13 @@
LOCAL_C_INCLUDES := $(libmm-vidc-inc)
# The type of overflow check must be specified for static libraries
+ifeq ($(TARGET_ENABLE_VIDC_INTSAN), true)
LOCAL_SANITIZE := signed-integer-overflow unsigned-integer-overflow
ifeq ($(TARGET_ENABLE_VIDC_INTSAN_DIAG), true)
$(warning INTSAN_DIAG_ENABLED)
LOCAL_SANITIZE_DIAG := signed-integer-overflow unsigned-integer-overflow
endif
+endif
LOCAL_PRELINK_MODULE := false
LOCAL_SHARED_LIBRARIES := liblog libcutils libdl
diff --git a/mm-video-v4l2/vidc/vdec/Android.mk b/mm-video-v4l2/vidc/vdec/Android.mk
index cab611b..08d3490 100644
--- a/mm-video-v4l2/vidc/vdec/Android.mk
+++ b/mm-video-v4l2/vidc/vdec/Android.mk
@@ -103,11 +103,13 @@
LOCAL_VENDOR_MODULE := true
LOCAL_CFLAGS := $(libmm-vdec-def) -Werror
+ifeq ($(TARGET_ENABLE_VIDC_INTSAN), true)
LOCAL_SANITIZE := integer_overflow
ifeq ($(TARGET_ENABLE_VIDC_INTSAN_DIAG), true)
$(warning INTSAN_DIAG_ENABLED)
LOCAL_SANITIZE_DIAG := integer_overflow
endif
+endif
LOCAL_HEADER_LIBRARIES := \
media_plugin_headers \
@@ -148,11 +150,13 @@
LOCAL_VENDOR_MODULE := true
LOCAL_CFLAGS := $(libmm-vdec-def)
+ifeq ($(TARGET_ENABLE_VIDC_INTSAN), true)
LOCAL_SANITIZE := integer_overflow
ifeq ($(TARGET_ENABLE_VIDC_INTSAN_DIAG), true)
$(warning INTSAN_DIAG_ENABLED)
LOCAL_SANITIZE_DIAG := integer_overflow
endif
+endif
LOCAL_HEADER_LIBRARIES := \
media_plugin_headers \
diff --git a/mm-video-v4l2/vidc/vdec/src/omx_swvdec.cpp b/mm-video-v4l2/vidc/vdec/src/omx_swvdec.cpp
index 7f797d2..6707653 100644
--- a/mm-video-v4l2/vidc/vdec/src/omx_swvdec.cpp
+++ b/mm-video-v4l2/vidc/vdec/src/omx_swvdec.cpp
@@ -264,6 +264,12 @@
goto component_init_exit;
}
+ if ((retval_swvdec = swvdec_check_inst_load(m_swvdec_handle)) !=
+ SWVDEC_STATUS_SUCCESS)
+ {
+ retval = retval_swvdec2omx(retval_swvdec);
+ goto component_init_exit;
+ }
m_swvdec_created = true;
if ((retval = set_frame_dimensions(DEFAULT_FRAME_WIDTH,
@@ -3199,11 +3205,11 @@
/**
* alignment factors:
*
- * - stride: 128
- * - scanlines: 32
+ * - stride: 512
+ * - scanlines: 512
*/
- stride = ALIGN(p_img->mWidth, 128);
- scanlines = ALIGN(p_img->mHeight, 32);
+ stride = VENUS_Y_STRIDE(COLOR_FMT_NV12, p_img->mWidth);
+ scanlines = VENUS_Y_SCANLINES(COLOR_FMT_NV12, p_img->mHeight);
p_img->mBitDepth = 8;
diff --git a/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp b/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
index db6b224..9f821fb 100644
--- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
+++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
@@ -173,8 +173,8 @@
vdec_msg.msgdata.output_frame.client_data=(void*)&v4l2_buf;
vdec_msg.msgdata.output_frame.len=plane[0].bytesused;
vdec_msg.msgdata.output_frame.bufferaddr=(void*)plane[0].m.userptr;
- vdec_msg.msgdata.output_frame.time_stamp= ((uint64_t)v4l2_buf.timestamp.tv_sec * (uint64_t)1000000) +
- (uint64_t)v4l2_buf.timestamp.tv_usec;
+ vdec_msg.msgdata.output_frame.time_stamp= ((int64_t)v4l2_buf.timestamp.tv_sec * (int64_t)1000000) +
+ (int64_t)v4l2_buf.timestamp.tv_usec;
if (omx->async_message_process(input,&vdec_msg) < 0) {
DEBUG_PRINT_HIGH("async_message_thread Exited");
@@ -6348,9 +6348,6 @@
sem_post(&omx->m_safe_flush);
}
}
- if (v4l2_buf_ptr->flags & V4L2_BUF_FLAG_KEYFRAME) {
- omxhdr->nFlags |= OMX_BUFFERFLAG_SYNCFRAME;
- }
omx->post_event ((unsigned long)omxhdr,vdec_msg->status_code,
OMX_COMPONENT_GENERATE_EBD);
break;
@@ -6494,18 +6491,13 @@
|| (omx->drv_ctx.frame_size.left != vdec_msg->msgdata.output_frame.framesize.left)
|| (omx->drv_ctx.frame_size.top != vdec_msg->msgdata.output_frame.framesize.top)
|| (omx->drv_ctx.frame_size.right != vdec_msg->msgdata.output_frame.framesize.right)
- || (omx->drv_ctx.frame_size.bottom != vdec_msg->msgdata.output_frame.framesize.bottom)
- || (omx->drv_ctx.video_resolution.frame_width != vdec_msg->msgdata.output_frame.picsize.frame_width)
- || (omx->drv_ctx.video_resolution.frame_height != vdec_msg->msgdata.output_frame.picsize.frame_height) )) {
+ || (omx->drv_ctx.frame_size.bottom != vdec_msg->msgdata.output_frame.framesize.bottom) )) {
- DEBUG_PRINT_HIGH("Parameters Changed From: Len: %u, WxH: %dx%d, L: %u, T: %u, R: %u, B: %u --> Len: %u, WxH: %dx%d, L: %u, T: %u, R: %u, B: %u",
+ DEBUG_PRINT_HIGH("Parameters Changed From: Len: %u, L: %u, T: %u, R: %u, B: %u --> Len: %u, L: %u, T: %u, R: %u, B: %u",
omx->prev_n_filled_len,
- omx->drv_ctx.video_resolution.frame_width,
- omx->drv_ctx.video_resolution.frame_height,
omx->drv_ctx.frame_size.left, omx->drv_ctx.frame_size.top,
omx->drv_ctx.frame_size.right, omx->drv_ctx.frame_size.bottom,
- omxhdr->nFilledLen, vdec_msg->msgdata.output_frame.picsize.frame_width,
- vdec_msg->msgdata.output_frame.picsize.frame_height,
+ omxhdr->nFilledLen,
vdec_msg->msgdata.output_frame.framesize.left,
vdec_msg->msgdata.output_frame.framesize.top,
vdec_msg->msgdata.output_frame.framesize.right,
@@ -6515,33 +6507,6 @@
&vdec_msg->msgdata.output_frame.framesize,
sizeof(struct vdec_framesize));
- omx->drv_ctx.video_resolution.frame_width =
- vdec_msg->msgdata.output_frame.picsize.frame_width;
- omx->drv_ctx.video_resolution.frame_height =
- vdec_msg->msgdata.output_frame.picsize.frame_height;
- if (omx->drv_ctx.output_format == VDEC_YUV_FORMAT_NV12) {
- omx->drv_ctx.video_resolution.stride =
- VENUS_Y_STRIDE(COLOR_FMT_NV12, omx->drv_ctx.video_resolution.frame_width);
- omx->drv_ctx.video_resolution.scan_lines =
- VENUS_Y_SCANLINES(COLOR_FMT_NV12, omx->drv_ctx.video_resolution.frame_height);
- } else if (omx->drv_ctx.output_format == VDEC_YUV_FORMAT_NV12_UBWC) {
- omx->drv_ctx.video_resolution.stride =
- VENUS_Y_STRIDE(COLOR_FMT_NV12_UBWC, omx->drv_ctx.video_resolution.frame_width);
- omx->drv_ctx.video_resolution.scan_lines =
- VENUS_Y_SCANLINES(COLOR_FMT_NV12_UBWC, omx->drv_ctx.video_resolution.frame_height);
- } else if (omx->drv_ctx.output_format == VDEC_YUV_FORMAT_NV12_TP10_UBWC) {
- omx->drv_ctx.video_resolution.stride =
- VENUS_Y_STRIDE(COLOR_FMT_NV12_BPP10_UBWC, omx->drv_ctx.video_resolution.frame_width);
- omx->drv_ctx.video_resolution.scan_lines =
- VENUS_Y_SCANLINES(COLOR_FMT_NV12_BPP10_UBWC, omx->drv_ctx.video_resolution.frame_height);
- }
- else if(omx->drv_ctx.output_format == VDEC_YUV_FORMAT_P010_VENUS) {
- omx->drv_ctx.video_resolution.stride =
- VENUS_Y_STRIDE(COLOR_FMT_P010, omx->drv_ctx.video_resolution.frame_width);
- omx->drv_ctx.video_resolution.scan_lines =
- VENUS_Y_SCANLINES(COLOR_FMT_P010, omx->drv_ctx.video_resolution.frame_height);
- }
-
if(!reconfig_event_sent) {
omx->post_event(OMX_CORE_OUTPUT_PORT_INDEX,
OMX_IndexConfigCommonOutputCrop,
diff --git a/mm-video-v4l2/vidc/venc/Android.mk b/mm-video-v4l2/vidc/venc/Android.mk
index 661a576..adf9aed 100644
--- a/mm-video-v4l2/vidc/venc/Android.mk
+++ b/mm-video-v4l2/vidc/venc/Android.mk
@@ -83,11 +83,13 @@
LOCAL_VENDOR_MODULE := true
LOCAL_CFLAGS := $(libmm-venc-def)
+ifeq ($(TARGET_ENABLE_VIDC_INTSAN), true)
LOCAL_SANITIZE := integer_overflow
ifeq ($(TARGET_ENABLE_VIDC_INTSAN_DIAG), true)
$(warning INTSAN_DIAG_ENABLED)
LOCAL_SANITIZE_DIAG := integer_overflow
endif
+endif
LOCAL_HEADER_LIBRARIES := \
media_plugin_headers \
@@ -131,11 +133,13 @@
LOCAL_VENDOR_MODULE := true
LOCAL_CFLAGS := $(libmm-venc-def)
+ifeq ($(TARGET_ENABLE_VIDC_INTSAN), true)
LOCAL_SANITIZE := integer_overflow
ifeq ($(TARGET_ENABLE_VIDC_INTSAN_DIAG), true)
$(warning INTSAN_DIAG_ENABLED)
LOCAL_SANITIZE_DIAG := integer_overflow
endif
+endif
LOCAL_HEADER_LIBRARIES := \
media_plugin_headers \
diff --git a/mm-video-v4l2/vidc/venc/inc/video_encoder_device_v4l2.h b/mm-video-v4l2/vidc/venc/inc/video_encoder_device_v4l2.h
index 15b9b23..18b87f7 100644
--- a/mm-video-v4l2/vidc/venc/inc/video_encoder_device_v4l2.h
+++ b/mm-video-v4l2/vidc/venc/inc/video_encoder_device_v4l2.h
@@ -368,6 +368,7 @@
bool is_gralloc_source_ubwc;
bool is_camera_source_ubwc;
bool is_csc_custom_matrix_enabled;
+ bool is_auto_blur_disabled;
bool csc_enable;
OMX_U32 fd_list[64];
unsigned long get_media_colorformat(unsigned long);
diff --git a/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp b/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp
index 0284eb4..2418f7d 100644
--- a/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp
+++ b/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp
@@ -189,6 +189,14 @@
RETURN(OMX_ErrorInsufficientResources);
}
+ sRet = swvenc_check_inst_load(m_hSwVenc);
+ if (sRet != SWVENC_S_SUCCESS)
+ {
+ DEBUG_PRINT_ERROR("swvenc_init returned %d, ret insufficient resources",
+ sRet);
+ RETURN(OMX_ErrorInsufficientResources);
+ }
+
m_stopped = true;
//Intialise the OMX layer variables
@@ -2531,9 +2539,9 @@
if (profileLevelType->nProfileIndex == 0)
{
profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileSimple;
- profileLevelType->eLevel = OMX_VIDEO_MPEG4Level6;
+ profileLevelType->eLevel = OMX_VIDEO_MPEG4Level5;
- DEBUG_PRINT_LOW("MPEG-4 simple profile, level 6");
+ DEBUG_PRINT_LOW("MPEG-4 simple profile, level 5");
}
else
{
@@ -3085,13 +3093,14 @@
size = handle->size;
}
}
- int status = munmap(p_ipbuffer->p_buffer, size);
- DEBUG_PRINT_HIGH("Unmapped pBuffer <%p> size <%d> status <%d>", p_ipbuffer->p_buffer, size, status);
+
+ DEBUG_PRINT_HIGH("Unmapping pBuffer <%p> size <%d>", p_ipbuffer->p_buffer, size);
+ if (-1 == munmap(p_ipbuffer->p_buffer, size))
+ DEBUG_PRINT_HIGH("Unmap failed");
}
#endif
post_event ((unsigned long)omxhdr,error,OMX_COMPONENT_GENERATE_EBD);
}
-
RETURN(eRet);
}
@@ -3337,9 +3346,6 @@
case OMX_VIDEO_MPEG4Level5:
Level.mpeg4 = SWVENC_LEVEL_MPEG4_5;
break;
- case OMX_VIDEO_MPEG4Level6:
- Level.mpeg4 = SWVENC_LEVEL_MPEG4_6;
- break;
default:
DEBUG_PRINT_ERROR("ERROR: UNKNOWN LEVEL");
Ret = SWVENC_S_FAILURE;
diff --git a/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp b/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp
old mode 100644
new mode 100755
index 4c22640..9335666
--- a/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp
+++ b/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp
@@ -167,6 +167,8 @@
(int32_t *)&m_debug.out_buffer_log, 0);
Platform::Config::getInt32(Platform::vidc_enc_csc_custom_matrix,
(int32_t *)&is_csc_custom_matrix_enabled, 0);
+ Platform::Config::getInt32(Platform::vidc_enc_auto_blur_disable,
+ (int32_t *)&is_auto_blur_disabled, 0);
char property_value[PROPERTY_VALUE_MAX] = {0};
@@ -633,7 +635,7 @@
unsigned int index = 0;
int height = m_sVenc_cfg.input_height;
int width = m_sVenc_cfg.input_width;
- OMX_TICKS nTimeStamp = buf.timestamp.tv_sec * 1000000 + buf.timestamp.tv_usec;
+ OMX_TICKS nTimeStamp = static_cast<OMX_TICKS>(buf.timestamp.tv_sec) * 1000000 + buf.timestamp.tv_usec;
int fd = buf.m.planes[0].reserved[0];
char *p_extradata = NULL;
OMX_OTHER_EXTRADATATYPE *data = NULL;
@@ -1480,9 +1482,13 @@
idrperiod.idrperiod = 1;
minqp = 0;
maxqp = 51;
- if (codec == OMX_VIDEO_CodingImageHEIC)
+ if (codec == OMX_VIDEO_CodingImageHEIC) {
+ m_sVenc_cfg.input_width = DEFAULT_TILE_DIMENSION;
+ m_sVenc_cfg.input_height= DEFAULT_TILE_DIMENSION;
+ m_sVenc_cfg.dvs_width = DEFAULT_TILE_DIMENSION;
+ m_sVenc_cfg.dvs_height = DEFAULT_TILE_DIMENSION;
codec_profile.profile = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE;
- else
+ } else
codec_profile.profile = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN;
profile_level.level = V4L2_MPEG_VIDEO_HEVC_LEVEL_1;
}
@@ -1567,6 +1573,13 @@
ret = ioctl(m_nDriver_fd, VIDIOC_S_FMT, &fmt);
m_sInput_buff_property.datasize=fmt.fmt.pix_mp.plane_fmt[0].sizeimage;
+ if (m_codec == OMX_VIDEO_CodingImageHEIC) {
+ if (!venc_set_grid_enable()) {
+ DEBUG_PRINT_ERROR("Failed to enable grid");
+ return false;
+ }
+ }
+
bufreq.memory = V4L2_MEMORY_USERPTR;
bufreq.count = 2;
@@ -1621,6 +1634,14 @@
DEBUG_PRINT_ERROR("Failed to set V4L2_CID_MPEG_VIDC_VIDEO_NUM_P_FRAME\n");
}
+ //Disable auto blur by default
+ if (is_auto_blur_disabled) {
+ control.id = V4L2_CID_MPEG_VIDC_VIDEO_BLUR_DIMENSIONS;
+ control.value = 0x2;
+ if (ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control))
+ DEBUG_PRINT_ERROR("Failed to set V4L2_CID_MPEG_VIDC_VIDEO_BLUR_DIMENSIONS\n");
+ }
+
/* Enable Low power mode by default for better power */
@@ -1801,19 +1822,6 @@
return false;
}
- // Increase buffer-header count for metadata-mode on input port
- // to improve buffering and reduce bottlenecks in clients
- if (metadatamode) {
- DEBUG_PRINT_LOW("FW returned buffer count = %d , overwriting with 9",
- control.value);
- minCount = 9;
- }
-
- if (m_sVenc_cfg.input_height * m_sVenc_cfg.input_width >= 3840*2160) {
- DEBUG_PRINT_LOW("Increasing buffer count = %d to 11", minCount);
- minCount = 11;
- }
-
/* Need more buffers for HFR usecase */
if (operating_rate >= 120 || (m_sVenc_cfg.fps_num / m_sVenc_cfg.fps_den) >= 120) {
minCount = MAX(minCount, 16);