Merge "mm-video: vidc: Add support to set frame rate to driver"
diff --git a/mm-core/inc/OMX_QCOMExtns.h b/mm-core/inc/OMX_QCOMExtns.h
index b55a64d..b3d175e 100644
--- a/mm-core/inc/OMX_QCOMExtns.h
+++ b/mm-core/inc/OMX_QCOMExtns.h
@@ -373,6 +373,8 @@
 
     /*"OMX.QCOM.index.param.video.QPRange" */
     OMX_QcomIndexParamVideoQPRange = 0x7F000022,
+
+    OMX_QcomIndexEnableH263PlusPType = 0x7F000023,
 };
 
 /**
diff --git a/mm-video/vidc/vdec/Android.mk b/mm-video/vidc/vdec/Android.mk
index 30f3dac..b9bf414 100755
--- a/mm-video/vidc/vdec/Android.mk
+++ b/mm-video/vidc/vdec/Android.mk
@@ -128,7 +128,7 @@
 LOCAL_C_INCLUDES                := $(mm-vdec-test-inc)
 
 LOCAL_PRELINK_MODULE      := false
-LOCAL_SHARED_LIBRARIES    := libutils libOmxCore libOmxVdec libbinder
+LOCAL_SHARED_LIBRARIES    := libutils libOmxCore libOmxVdec libbinder libcutils
 
 LOCAL_SRC_FILES           := src/queue.c
 LOCAL_SRC_FILES           += test/omx_vdec_test.cpp
diff --git a/mm-video/vidc/vdec/inc/omx_vdec.h b/mm-video/vidc/vdec/inc/omx_vdec.h
index d5ddbc3..2bb1f47 100644
--- a/mm-video/vidc/vdec/inc/omx_vdec.h
+++ b/mm-video/vidc/vdec/inc/omx_vdec.h
@@ -610,14 +610,16 @@
     void adjust_timestamp(OMX_S64 &act_timestamp);
     void set_frame_rate(OMX_S64 act_timestamp);
     void handle_extradata(OMX_BUFFERHEADERTYPE *p_buf_hdr);
-    OMX_ERRORTYPE enable_extradata(OMX_U32 requested_extradata, bool enable = true);
     void print_debug_extradata(OMX_OTHER_EXTRADATATYPE *extra);
 #ifdef _MSM8974_
     void append_interlace_extradata(OMX_OTHER_EXTRADATATYPE *extra,
                                     OMX_U32 interlaced_format_type);
+    OMX_ERRORTYPE enable_extradata(OMX_U32 requested_extradata, bool is_internal,
+		 bool enable = true);
 #else
     void append_interlace_extradata(OMX_OTHER_EXTRADATATYPE *extra,
                                     OMX_U32 interlaced_format_type, OMX_U32 buf_index);
+    OMX_ERRORTYPE enable_extradata(OMX_U32 requested_extradata, bool enable = true);
 #endif
     void append_frame_info_extradata(OMX_OTHER_EXTRADATATYPE *extra,
                                OMX_U32 num_conceal_mb,
@@ -801,6 +803,8 @@
     OMX_U32 h264_last_au_flags;
     OMX_U32 m_demux_offsets[8192];
     OMX_U32 m_demux_entries;
+    OMX_U32 m_disp_hor_size;
+    OMX_U32 m_disp_vert_size;
 
     OMX_S64 prev_ts;
     bool rst_prev_ts;
diff --git a/mm-video/vidc/vdec/src/omx_vdec.cpp b/mm-video/vidc/vdec/src/omx_vdec.cpp
index 931c544..9f037c1 100644
--- a/mm-video/vidc/vdec/src/omx_vdec.cpp
+++ b/mm-video/vidc/vdec/src/omx_vdec.cpp
@@ -483,6 +483,8 @@
                       h264_last_au_ts(LLONG_MAX),
                       h264_last_au_flags(0),
                       m_inp_err_count(0),
+                      m_disp_hor_size(0),
+                      m_disp_vert_size(0),
 #ifdef _ANDROID_
                       m_heap_ptr(NULL),
                       m_heap_count(0),
@@ -2663,6 +2665,11 @@
         eRet = OMX_ErrorNoMore;
       }
     }
+    else
+    {
+      DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported ret NoMore\n");
+      eRet = OMX_ErrorNoMore;
+    }
   }
   else
   {
@@ -6929,7 +6936,6 @@
         output_respbuf->aspect_ratio_info =
            vdec_msg->msgdata.output_frame.aspect_ratio_info;
 
-
         if (omx->output_use_buffer)
           memcpy ( omxhdr->pBuffer,
                    (vdec_msg->msgdata.output_frame.bufferaddr +
@@ -8244,7 +8250,6 @@
 
   OMX_U32 index = p_buf_hdr - m_out_mem_ptr;
   OMX_U8* pBuffer = (OMX_U8 *)drv_ctx.ptr_outputbuffer[index].bufferaddr;
-
   p_extra = (OMX_OTHER_EXTRADATATYPE *)
            ((unsigned)(pBuffer + p_buf_hdr->nOffset +
             p_buf_hdr->nFilledLen + 3)&(~3));
@@ -8300,8 +8305,24 @@
       }
       else if (p_extra->eType == VDEC_EXTRADATA_EXT_DATA)
       {
+        OMX_U8 *data_ptr = (OMX_U8*)p_extra->data;
+        OMX_U32 value = 0;
         p_extn_user[extn_user_data_cnt] = p_extra;
         extn_user_data_cnt++;
+        if((*data_ptr & 0xf0) == 0x20)
+        {
+          value = ((*data_ptr) & 0x01);
+          data_ptr++;
+          if (value)
+            data_ptr += 3;
+          value = *((OMX_U32*)data_ptr);
+          value = ((value << 24) | (((value >> 8)<<24)>>8) |
+                        (((value >> 16)<<24)>>16) | (value >> 24));
+          m_disp_hor_size = (value & 0xfffc0000)>>18;
+          m_disp_vert_size = (value & 0x0001fff8)>>3;
+          DEBUG_PRINT_LOW("Display Vertical Size = %d Display Horizontal Size = %d",
+                                     m_disp_vert_size, m_disp_hor_size);
+        }
       }
       else if (p_extra->eType == VDEC_EXTRADATA_USER_DATA)
       {
@@ -8682,8 +8703,74 @@
                        OMX_QCOM_EXTRADATA_FRAMEINFO *frame_info)
 {
   m_extradata = frame_info;
-  m_extradata->aspectRatio.aspectRatioX = aspect_ratio_info->par_width;
-  m_extradata->aspectRatio.aspectRatioY = aspect_ratio_info->par_height;
+  if(drv_ctx.decoder_format == VDEC_CODECTYPE_MPEG2)
+  {
+    switch(aspect_ratio_info->aspect_ratio)
+    {
+      case 1:
+        m_extradata->aspectRatio.aspectRatioX = 1;
+        m_extradata->aspectRatio.aspectRatioY = 1;
+      break;
+      case 2:
+        if (m_disp_hor_size && m_disp_vert_size)
+        {
+          m_extradata->aspectRatio.aspectRatioX = aspect_ratio_info->par_width *
+                                                  m_disp_vert_size;
+          m_extradata->aspectRatio.aspectRatioY = aspect_ratio_info->par_height *
+                                                  m_disp_hor_size;
+        }
+        else
+        {
+          m_extradata->aspectRatio.aspectRatioX = aspect_ratio_info->par_width *
+                                                   drv_ctx.video_resolution.frame_height;
+          m_extradata->aspectRatio.aspectRatioY = aspect_ratio_info->par_height *
+                                                  drv_ctx.video_resolution.frame_width;
+        }
+      break;
+      case 3:
+        if (m_disp_hor_size && m_disp_vert_size)
+        {
+          m_extradata->aspectRatio.aspectRatioX = aspect_ratio_info->par_width *
+                                                  m_disp_vert_size;
+          m_extradata->aspectRatio.aspectRatioY = aspect_ratio_info->par_height *
+                                                  m_disp_hor_size;
+        }
+        else
+        {
+          m_extradata->aspectRatio.aspectRatioX = aspect_ratio_info->par_width *
+                                                   drv_ctx.video_resolution.frame_height;
+          m_extradata->aspectRatio.aspectRatioY = aspect_ratio_info->par_height *
+                                                  drv_ctx.video_resolution.frame_width;
+        }
+      break;
+      case 4:
+        if (m_disp_hor_size && m_disp_vert_size)
+        {
+          m_extradata->aspectRatio.aspectRatioX = aspect_ratio_info->par_width *
+                                                  m_disp_vert_size;
+          m_extradata->aspectRatio.aspectRatioY = aspect_ratio_info->par_height *
+                                                  m_disp_hor_size;
+        }
+        else
+        {
+          m_extradata->aspectRatio.aspectRatioX = aspect_ratio_info->par_width *
+                                                   drv_ctx.video_resolution.frame_height;
+          m_extradata->aspectRatio.aspectRatioY = aspect_ratio_info->par_height *
+                                                  drv_ctx.video_resolution.frame_width;
+        }
+      break;
+      default:
+        m_extradata->aspectRatio.aspectRatioX = 1;
+        m_extradata->aspectRatio.aspectRatioY = 1;
+    }
+  }
+  else
+  {
+    m_extradata->aspectRatio.aspectRatioX = aspect_ratio_info->par_width;
+    m_extradata->aspectRatio.aspectRatioY = aspect_ratio_info->par_height;
+  }
+  DEBUG_PRINT_LOW("aspectRatioX %d aspectRatioX %d", m_extradata->aspectRatio.aspectRatioX,
+                                                     m_extradata->aspectRatio.aspectRatioY);
 }
 
 void omx_vdec::append_portdef_extradata(OMX_OTHER_EXTRADATATYPE *extra)
diff --git a/mm-video/vidc/vdec/src/omx_vdec_msm8974.cpp b/mm-video/vidc/vdec/src/omx_vdec_msm8974.cpp
index c82df29..4ecf0b5 100644
--- a/mm-video/vidc/vdec/src/omx_vdec_msm8974.cpp
+++ b/mm-video/vidc/vdec/src/omx_vdec_msm8974.cpp
@@ -1331,7 +1331,6 @@
 	int r,ret=0;
 	bool codec_ambiguous = false;
 	OMX_STRING device_name = "/dev/video32";
-
 	if(!strncmp(role, "OMX.qcom.video.decoder.avc.secure",OMX_MAX_STRINGNAME_SIZE)){
 		struct v4l2_control control;
 		secure_mode = true;
@@ -1647,7 +1646,7 @@
 		DEBUG_PRINT_HIGH("Input Buffer Size =%d \n ",drv_ctx.ip_buf.buffer_size);
 #ifdef DEFAULT_EXTRADATA
     if (eRet == OMX_ErrorNone && !secure_mode)
-      enable_extradata(DEFAULT_EXTRADATA, 1);
+      enable_extradata(DEFAULT_EXTRADATA, true, true);
 #endif
 		if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264)
 		{
@@ -3122,11 +3121,13 @@
              }
          }
          else if (portDefn->nBufferCountActual >= drv_ctx.ip_buf.mincount
-                  && portDefn->nBufferSize == drv_ctx.ip_buf.buffer_size)
+                  || portDefn->nBufferSize != drv_ctx.ip_buf.buffer_size)
          {
+             vdec_allocatorproperty *buffer_prop = &drv_ctx.ip_buf;
              drv_ctx.ip_buf.actualcount = portDefn->nBufferCountActual;
-             drv_ctx.ip_buf.buffer_size = portDefn->nBufferSize;
-             eRet = set_buffer_req(&drv_ctx.ip_buf);
+             drv_ctx.ip_buf.buffer_size = (portDefn->nBufferSize + buffer_prop->alignment - 1) &
+                      (~(buffer_prop->alignment - 1));
+             eRet = set_buffer_req(buffer_prop);
          }
          else
          {
@@ -3443,7 +3444,7 @@
 	}
     case OMX_QcomIndexParamConcealMBMapExtraData:
       if(!secure_mode)
-          eRet = enable_extradata(VDEC_EXTRADATA_MB_ERROR_MAP,
+          eRet = enable_extradata(VDEC_EXTRADATA_MB_ERROR_MAP, false,
                                   ((QOMX_ENABLETYPE *)paramData)->bEnable);
       else {
           DEBUG_PRINT_ERROR("\n secure mode setting not supported");
@@ -3453,7 +3454,7 @@
     case OMX_QcomIndexParamFrameInfoExtraData:
       {
         if(!secure_mode)
-            eRet = enable_extradata(OMX_FRAMEINFO_EXTRADATA,
+            eRet = enable_extradata(OMX_FRAMEINFO_EXTRADATA, false,
                                 ((QOMX_ENABLETYPE *)paramData)->bEnable);
         else {
             DEBUG_PRINT_ERROR("\n secure mode setting not supported");
@@ -3463,7 +3464,7 @@
       }
     case OMX_QcomIndexParamInterlaceExtraData:
       if(!secure_mode)
-          eRet = enable_extradata(OMX_INTERLACE_EXTRADATA,
+          eRet = enable_extradata(OMX_INTERLACE_EXTRADATA, false,
                               ((QOMX_ENABLETYPE *)paramData)->bEnable);
       else {
           DEBUG_PRINT_ERROR("\n secure mode setting not supported");
@@ -3472,7 +3473,7 @@
       break;
     case OMX_QcomIndexParamH264TimeInfo:
       if(!secure_mode)
-          eRet = enable_extradata(OMX_TIMEINFO_EXTRADATA,
+          eRet = enable_extradata(OMX_TIMEINFO_EXTRADATA, false,
                               ((QOMX_ENABLETYPE *)paramData)->bEnable);
       else {
           DEBUG_PRINT_ERROR("\n secure mode setting not supported");
@@ -3541,7 +3542,7 @@
                    (extradataIndexType->nPortIndex == 1))
             {
               DEBUG_PRINT_HIGH("set_parameter:  OMX_QcomIndexParamIndexExtraDataType SmoothStreaming\n");
-              eRet = enable_extradata(OMX_PORTDEF_EXTRADATA, extradataIndexType->bEnabled);
+              eRet = enable_extradata(OMX_PORTDEF_EXTRADATA, false, extradataIndexType->bEnabled);
 
             }
          }
@@ -7807,9 +7808,6 @@
     extra_idx = EXTRADATA_IDX(drv_ctx.num_planes);
     if (extra_idx && (extra_idx < VIDEO_MAX_PLANES)) {
       extra_data_size =  fmt.fmt.pix_mp.plane_fmt[extra_idx].sizeimage;
-      /*Temporary workaround for FW bug*/
-      extra_data_size += 128;
-      client_extra_data_size += 128;
     } else if (extra_idx >= VIDEO_MAX_PLANES) {
       DEBUG_PRINT_ERROR("Extradata index is more than allowed: %d\n", extra_idx);
       return OMX_ErrorBadParameter;
@@ -8347,7 +8345,8 @@
   return;
 }
 
-OMX_ERRORTYPE omx_vdec::enable_extradata(OMX_U32 requested_extradata, bool enable)
+OMX_ERRORTYPE omx_vdec::enable_extradata(OMX_U32 requested_extradata,
+	 bool is_internal, bool enable)
 {
   OMX_ERRORTYPE ret = OMX_ErrorNone;
   struct v4l2_control control;
@@ -8356,13 +8355,15 @@
      DEBUG_PRINT_ERROR("ERROR: enable extradata allowed in Loaded state only");
      return OMX_ErrorIncorrectStateOperation;
   }
-  DEBUG_PRINT_ERROR("enable_extradata: actual[%x] requested[%x] enable[%d]",
-    client_extradata, requested_extradata, enable);
+  DEBUG_PRINT_ERROR("NOTE: enable_extradata: actual[%x] requested[%x] enable[%d], is_internal: %d\n",
+    client_extradata, requested_extradata, enable, is_internal);
 
-  if (enable)
-    client_extradata |= requested_extradata;
-  else
-    client_extradata = client_extradata & ~requested_extradata;
+  if (!is_internal) {
+	  if (enable)
+		  client_extradata |= requested_extradata;
+	  else
+		  client_extradata = client_extradata & ~requested_extradata;
+  }
 
   if (enable) {
     if (requested_extradata & OMX_INTERLACE_EXTRADATA) {
@@ -8477,6 +8478,9 @@
 {
   OMX_STREAMINTERLACEFORMAT *interlace_format;
   OMX_U32 mbaff = 0;
+  if (!(client_extradata & OMX_INTERLACE_EXTRADATA)) {
+	return;
+  }
   extra->nSize = OMX_INTERLACE_EXTRADATA_SIZE;
   extra->nVersion.nVersion = OMX_SPEC_VERSION;
   extra->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
@@ -8565,6 +8569,9 @@
 
 void omx_vdec::append_terminator_extradata(OMX_OTHER_EXTRADATATYPE *extra)
 {
+  if (!client_extradata) {
+	return;
+  }
   extra->nSize = sizeof(OMX_OTHER_EXTRADATATYPE);
   extra->nVersion.nVersion = OMX_SPEC_VERSION;
   extra->eType = OMX_ExtraDataNone;
diff --git a/mm-video/vidc/vdec/test/omx_vdec_test.cpp b/mm-video/vidc/vdec/test/omx_vdec_test.cpp
index e170e6c..6f755e0 100644
--- a/mm-video/vidc/vdec/test/omx_vdec_test.cpp
+++ b/mm-video/vidc/vdec/test/omx_vdec_test.cpp
@@ -45,6 +45,7 @@
 #include <semaphore.h>
 #include "OMX_QCOMExtns.h"
 #include <sys/time.h>
+#include <cutils/properties.h>
 
 #include <linux/android_pmem.h>
 
@@ -715,11 +716,15 @@
   int canDisplay = 1, contigous_drop_frame = 0, bytes_written = 0, ret = 0;
   OMX_S64 base_timestamp = 0, lastTimestamp = 0;
   OMX_BUFFERHEADERTYPE *pBuffer = NULL, *pPrevBuff = NULL;
+  char value[PROPERTY_VALUE_MAX] = {0};
+  OMX_U32 aspectratio_prop = 0;
   pthread_mutex_lock(&eos_lock);
 #ifdef _MSM8974_
   int stride,scanlines,stride_c,i;
 #endif
   DEBUG_PRINT("First Inside %s\n", __FUNCTION__);
+  property_get("vidc.vdec.debug.aspectratio", value, "0");
+  aspectratio_prop = atoi(value);
   while(currentStatus != ERROR_STATE && !bOutputEosReached)
   {
     pthread_mutex_unlock(&eos_lock);
@@ -894,7 +899,12 @@
               DEBUG_PRINT("OMX_ExtraDataFrameInfo: Buf(%p) TSmp(%lld) PicType(%u) IntT(%u) ConMB(%u)",
                 pBuffer->pBuffer, pBuffer->nTimeStamp, frame_info->ePicType,
                 frame_info->interlaceType, frame_info->nConcealedMacroblocks);
-              DEBUG_PRINT(" FrmRate(%u), AspRatioX(%u), AspRatioY(%u) ",
+              if (aspectratio_prop)
+                DEBUG_PRINT_ERROR(" FrmRate(%u), AspRatioX(%u), AspRatioY(%u) ",
+                frame_info->nFrameRate, frame_info->aspectRatio.aspectRatioX,
+                frame_info->aspectRatio.aspectRatioY);
+              else
+                DEBUG_PRINT(" FrmRate(%u), AspRatioX(%u), AspRatioY(%u) ",
                 frame_info->nFrameRate, frame_info->aspectRatio.aspectRatioX,
                 frame_info->aspectRatio.aspectRatioY);
               DEBUG_PRINT("PANSCAN numWindows(%d)", frame_info->panScan.numWindows);
diff --git a/mm-video/vidc/venc/inc/video_encoder_device.h b/mm-video/vidc/venc/inc/video_encoder_device.h
index 3940d49..07a3b9d 100644
--- a/mm-video/vidc/venc/inc/video_encoder_device.h
+++ b/mm-video/vidc/venc/inc/video_encoder_device.h
@@ -143,6 +143,7 @@
   bool venc_set_voptiming_cfg(OMX_U32 nTimeIncRes);

   void venc_config_print();

   bool venc_set_slice_delivery_mode(OMX_BOOL enable);

+  bool venc_set_plusptype(OMX_BOOL enable);

 #ifdef MAX_RES_1080P

   OMX_U32 pmem_free();

   OMX_U32 pmem_allocate(OMX_U32 size, OMX_U32 alignment, OMX_U32 count);

diff --git a/mm-video/vidc/venc/src/omx_video_base.cpp b/mm-video/vidc/venc/src/omx_video_base.cpp
index 5c09c75..cdad91b 100644
--- a/mm-video/vidc/venc/src/omx_video_base.cpp
+++ b/mm-video/vidc/venc/src/omx_video_base.cpp
@@ -4320,6 +4320,11 @@
         eRet = OMX_ErrorNoMore;

       }

     }

+    else
+    {
+      DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported ret NoMore\n");
+      eRet = OMX_ErrorNoMore;
+    }
   }

   else

   {

diff --git a/mm-video/vidc/venc/src/omx_video_encoder.cpp b/mm-video/vidc/venc/src/omx_video_encoder.cpp
index 9f9eba6..e86337e 100644
--- a/mm-video/vidc/venc/src/omx_video_encoder.cpp
+++ b/mm-video/vidc/venc/src/omx_video_encoder.cpp
@@ -1139,6 +1139,28 @@
       break;

     }

 #endif

+  case OMX_QcomIndexEnableH263PlusPType:

+    {

+      QOMX_EXTNINDEX_PARAMTYPE* pParam =

+         (QOMX_EXTNINDEX_PARAMTYPE*)paramData;

+      DEBUG_PRINT_LOW("OMX_QcomIndexEnableH263PlusPType");

+      if(pParam->nPortIndex == PORT_INDEX_OUT)

+      {

+        if(!handle->venc_set_param(paramData,

+              (OMX_INDEXTYPE)OMX_QcomIndexEnableH263PlusPType))

+        {

+          DEBUG_PRINT_ERROR("ERROR: Request for setting PlusPType failed");

+          return OMX_ErrorUnsupportedSetting;

+        }

+      }

+      else

+      {

+        DEBUG_PRINT_ERROR("ERROR: OMX_QcomIndexEnableH263PlusPType "

+           "called on wrong port(%d)", pParam->nPortIndex);

+        return OMX_ErrorBadPortIndex;

+      }

+      break;

+    }

   case OMX_IndexParamVideoSliceFMO:

   default:

     {

diff --git a/mm-video/vidc/venc/src/video_encoder_device.cpp b/mm-video/vidc/venc/src/video_encoder_device.cpp
index f888cbe..17c08d1 100644
--- a/mm-video/vidc/venc/src/video_encoder_device.cpp
+++ b/mm-video/vidc/venc/src/video_encoder_device.cpp
@@ -1011,6 +1011,27 @@
        }
        break;
     }
+  case OMX_QcomIndexEnableH263PlusPType:
+    {
+       QOMX_EXTNINDEX_PARAMTYPE* pParam =
+          (QOMX_EXTNINDEX_PARAMTYPE*)paramData;
+       DEBUG_PRINT_LOW("OMX_QcomIndexEnableH263PlusPType");
+       if(pParam->nPortIndex == PORT_INDEX_OUT)
+       {
+         if(venc_set_plusptype(pParam->bEnable) == false)
+         {
+           DEBUG_PRINT_ERROR("Setting PlusPType failed for H263");
+           return OMX_ErrorUnsupportedSetting;
+         }
+       }
+       else
+       {
+         DEBUG_PRINT_ERROR("OMX_QcomIndexEnableH263PlusPType "
+            "called on wrong port(%d)", pParam->nPortIndex);
+         return OMX_ErrorBadPortIndex;
+       }
+       break;
+    }
   case OMX_IndexParamVideoSliceFMO:
   default:
 	  DEBUG_PRINT_ERROR("\nERROR: Unsupported parameter in venc_set_param: %u",
@@ -1776,6 +1797,22 @@
   return true;
 }
 
+bool venc_dev::venc_set_plusptype(OMX_BOOL enable)
+{
+  venc_ioctl_msg ioctl_msg = {NULL,NULL};
+  struct venc_plusptype plusptype = {0};
+  DEBUG_PRINT_LOW("Set plusptype: %d", enable);
+  plusptype.plusptype_enable = enable;
+  ioctl_msg.in = (void*)&plusptype;
+  ioctl_msg.out = NULL;
+  if(ioctl(m_nDriver_fd, VEN_IOCTL_SET_H263_PLUSPTYPE,(void*)&ioctl_msg) < 0)
+  {
+    DEBUG_PRINT_ERROR("Request for setting plusptype for h263 failed");
+    return false;
+  }
+  return true;
+}
+
 bool venc_dev::venc_set_extradata(OMX_U32 extra_data)
 {
   venc_ioctl_msg ioctl_msg = {NULL,NULL};