Merge "Revert "Kona: Update camcorder high-speed profiles""
diff --git a/conf_files/kona/media_codecs.xml b/conf_files/kona/media_codecs.xml
index b9bce77..dcffeb3 100644
--- a/conf_files/kona/media_codecs.xml
+++ b/conf_files/kona/media_codecs.xml
@@ -268,12 +268,7 @@
<Limit name="quality" range="0-100" default="80" />
<Feature name="bitrate-modes" value="CQ" />
<Limit name="performance-point-16384x8192" value="3" />
- <Limit name="performance-point-8192x4320" value="3" />
- <Limit name="performance-point-4096x2304" value="3" />
<Limit name="performance-point-1920x1080" value="6" />
- <Limit name="performance-point-1920x1080" value="6" />
- <Limit name="performance-point-1280x720" value="6" />
- <Limit name="performance-point-1280x720" value="6" />
</MediaCodec>
<!-- Video Software -->
<MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" >
diff --git a/conf_files/kona/media_codecs_performance.xml b/conf_files/kona/media_codecs_performance.xml
index 4766953..795dd6f 100644
--- a/conf_files/kona/media_codecs_performance.xml
+++ b/conf_files/kona/media_codecs_performance.xml
@@ -183,7 +183,7 @@
<Limit name="measured-frame-rate-1920x1080" range="36-49" />
</MediaCodec>
<MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
- <Limit name="measured-frame-rate-176x144" range="401-545" />
+ <Limit name="measured-frame-rate-176x144" range="550-1200" />
</MediaCodec>
<MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="483-663" />
diff --git a/conf_files/kona/media_codecs_vendor.xml b/conf_files/kona/media_codecs_vendor.xml
index a7964dc..01471e0 100644
--- a/conf_files/kona/media_codecs_vendor.xml
+++ b/conf_files/kona/media_codecs_vendor.xml
@@ -269,12 +269,7 @@
<Limit name="quality" range="0-100" default="80" />
<Feature name="bitrate-modes" value="CQ" />
<Limit name="performance-point-16384x8192" value="3" />
- <Limit name="performance-point-8192x4320" value="3" />
- <Limit name="performance-point-4096x2304" value="3" />
<Limit name="performance-point-1920x1080" value="6" />
- <Limit name="performance-point-1920x1080" value="6" />
- <Limit name="performance-point-1280x720" value="6" />
- <Limit name="performance-point-1280x720" value="6" />
</MediaCodec>
<!-- Video Software -->
<MediaCodec name="OMX.qcom.video.encoder.h263sw" type="video/3gpp" >
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 ada2b7c..122d22e 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
@@ -475,6 +475,7 @@
bool m_hdr10meta_enabled;
ColorMetaData colorData= {};
+ bool m_cvp_first_metadata;
bool m_cvp_meta_enabled;
CVPMetadata cvpMetadata;
pthread_mutex_t pause_resume_mlock;
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
index b4233d8..a2b00f2 100644
--- a/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp
+++ b/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp
@@ -120,6 +120,7 @@
mBatchSize = 0;
m_roi_enabled = false;
m_cvp_meta_enabled = false;
+ m_cvp_first_metadata = false;
low_latency_mode = false;
pthread_mutex_init(&m_roilock, NULL);
pthread_mutex_init(&m_configlock, NULL);
@@ -680,7 +681,7 @@
data = (struct OMX_OTHER_EXTRADATATYPE *)p_extradata;
memset((void *)(data), 0, (input_extradata_info.buffer_size)); // clear stale data in current buffer
- if (m_cvp_meta_enabled && cvpMetadata.size == CVP_METADATA_SIZE) {
+ if (m_cvp_meta_enabled && !(buf.flags & V4L2_BUF_FLAG_CVPMETADATA_SKIP)) {
packet_size = sizeof(struct msm_vidc_extradata_header) - sizeof(unsigned int)
+ cvpMetadata.size;
@@ -4285,6 +4286,7 @@
return false;
}
m_cvp_meta_enabled = true;
+ m_cvp_first_metadata = true;
DEBUG_PRINT_HIGH("CVP metadata enabled");
if (!venc_set_cvp_skipratio_controls())
return false;
@@ -4292,6 +4294,8 @@
DEBUG_PRINT_ERROR("ERROR: External CVP mode disabled for this session and continue!");
clearMetaData(handle, SET_CVP_METADATA);
}
+ } else {
+ DEBUG_PRINT_INFO("venc_cvp_enable: cvp metadata not available");
}
return true;
}
@@ -4301,9 +4305,10 @@
struct v4l2_control ctrl;
if (!cvpMetadata.cvp_frame_rate || !cvpMetadata.capture_frame_rate) {
- DEBUG_PRINT_LOW("ERROR: Invalid cvp frame rate received");
+ DEBUG_PRINT_ERROR("ERROR: Invalid cvp frame rate received");
return true;
}
+ DEBUG_PRINT_HIGH("cvpMetadata: frame_rate %u capture rate %u", cvpMetadata.cvp_frame_rate, cvpMetadata.capture_frame_rate);
ctrl.id = V4L2_CID_MPEG_VIDC_CAPTURE_FRAME_RATE;
ctrl.value = cvpMetadata.capture_frame_rate;
@@ -4315,7 +4320,7 @@
ctrl.id = V4L2_CID_MPEG_VIDC_CVP_FRAME_RATE;
ctrl.value = cvpMetadata.cvp_frame_rate;
if (ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &ctrl)) {
- DEBUG_PRINT_LOW("ERROR: Setting cvp frame rate control failed");
+ DEBUG_PRINT_ERROR("ERROR: Setting cvp frame rate control failed");
return false;
}
return true;
@@ -4343,10 +4348,17 @@
}
DEBUG_PRINT_LOW("CVP metadata size %d", cvpMetadata.size);
} else {
+ DEBUG_PRINT_ERROR("ERROR: CVP metadata not available");
+ return false;
+ }
+
+ if (m_cvp_first_metadata) {
+ m_cvp_first_metadata = false;
+ } else if (cvpMetadata.flags & CVP_METADATA_FLAG_REPEAT) {
buf->flags |= V4L2_BUF_FLAG_CVPMETADATA_SKIP;
DEBUG_PRINT_LOW("venc_empty_buf: V4L2_BUF_FLAG_CVPMETADATA_SKIP is set");
- DEBUG_PRINT_LOW("CVP metadata not available");
}
+
if ((cvpMetadata.capture_frame_rate != capture_rate) ||
(cvpMetadata.cvp_frame_rate != cvp_rate)) {
if(!venc_set_cvp_skipratio_controls())