mm-video-v4l2: format and indent mm-video-v4l2 code

This change will uniformly indent all of
mm-video-v4l2 code.

Change-Id: If3c0c4e61cac688d7d7b3a3d3de28b67cd5abf31
diff --git a/mm-video-v4l2/vidc/common/inc/extra_data_handler.h b/mm-video-v4l2/vidc/common/inc/extra_data_handler.h
index c7b6e7b..3ad9dc4 100644
--- a/mm-video-v4l2/vidc/common/inc/extra_data_handler.h
+++ b/mm-video-v4l2/vidc/common/inc/extra_data_handler.h
@@ -39,7 +39,7 @@
 
 
 #ifdef _ANDROID_
-extern "C"{
+extern "C" {
 #include<utils/Log.h>
 }
 #ifdef ENABLE_DEBUG_LOW
@@ -79,36 +79,36 @@
 #define VDEC_OMX_SEI 0x7F000007
 #define FRAME_PACK_SIZE 18
 #define H264_EMULATION_BYTE 0x03
-class extra_data_handler 
+class extra_data_handler
 {
-public:
-  extra_data_handler();
-  ~extra_data_handler();
-  OMX_U32 parse_extra_data(OMX_BUFFERHEADERTYPE *buf_hdr);
-  OMX_U32 create_extra_data(OMX_BUFFERHEADERTYPE *buf_hdr);
-  OMX_U32 get_frame_pack_data(OMX_QCOM_FRAME_PACK_ARRANGEMENT *frame_pack);
-  OMX_U32 set_frame_pack_data(OMX_QCOM_FRAME_PACK_ARRANGEMENT *frame_pack);
-private:
-  OMX_QCOM_FRAME_PACK_ARRANGEMENT frame_packing_arrangement;
-  OMX_U8 *rbsp_buf;
-  OMX_U32 bit_ptr;
-  OMX_U32 byte_ptr;
-  OMX_U32 pack_sei;
-  OMX_U32 sei_payload_type;
-  OMX_U32 d_u(OMX_U32 num_bits);
-  OMX_U32 d_ue();
-  OMX_U32 parse_frame_pack(OMX_U32 payload_size);
-  OMX_S32 parse_rbsp(OMX_U8 *buf, OMX_U32 len);
-  OMX_S32 parse_sei(OMX_U8 *buffer, OMX_U32 buffer_length);
-  OMX_U32 e_u(OMX_U32 symbol, OMX_U32 num_bits);
-  OMX_U32 e_ue(OMX_U32 symbol);
-  OMX_U32 create_frame_pack();
-  OMX_S32 create_rbsp(OMX_U8 *buf, OMX_U32 nalu_type);
-  OMX_U32 create_sei(OMX_U8 *buffer);
-  OMX_S32 parse_sliceinfo(OMX_BUFFERHEADERTYPE *pBufHdr,
-     OMX_OTHER_EXTRADATATYPE *pExtra);
-  OMX_S32 parse_ltrinfo(OMX_BUFFERHEADERTYPE *pBufHdr,
-     OMX_OTHER_EXTRADATATYPE *pExtra);
+    public:
+        extra_data_handler();
+        ~extra_data_handler();
+        OMX_U32 parse_extra_data(OMX_BUFFERHEADERTYPE *buf_hdr);
+        OMX_U32 create_extra_data(OMX_BUFFERHEADERTYPE *buf_hdr);
+        OMX_U32 get_frame_pack_data(OMX_QCOM_FRAME_PACK_ARRANGEMENT *frame_pack);
+        OMX_U32 set_frame_pack_data(OMX_QCOM_FRAME_PACK_ARRANGEMENT *frame_pack);
+    private:
+        OMX_QCOM_FRAME_PACK_ARRANGEMENT frame_packing_arrangement;
+        OMX_U8 *rbsp_buf;
+        OMX_U32 bit_ptr;
+        OMX_U32 byte_ptr;
+        OMX_U32 pack_sei;
+        OMX_U32 sei_payload_type;
+        OMX_U32 d_u(OMX_U32 num_bits);
+        OMX_U32 d_ue();
+        OMX_U32 parse_frame_pack(OMX_U32 payload_size);
+        OMX_S32 parse_rbsp(OMX_U8 *buf, OMX_U32 len);
+        OMX_S32 parse_sei(OMX_U8 *buffer, OMX_U32 buffer_length);
+        OMX_U32 e_u(OMX_U32 symbol, OMX_U32 num_bits);
+        OMX_U32 e_ue(OMX_U32 symbol);
+        OMX_U32 create_frame_pack();
+        OMX_S32 create_rbsp(OMX_U8 *buf, OMX_U32 nalu_type);
+        OMX_U32 create_sei(OMX_U8 *buffer);
+        OMX_S32 parse_sliceinfo(OMX_BUFFERHEADERTYPE *pBufHdr,
+                OMX_OTHER_EXTRADATATYPE *pExtra);
+        OMX_S32 parse_ltrinfo(OMX_BUFFERHEADERTYPE *pBufHdr,
+                OMX_OTHER_EXTRADATATYPE *pExtra);
 };
-  
-#endif  
+
+#endif
diff --git a/mm-video-v4l2/vidc/common/inc/vidc_color_converter.h b/mm-video-v4l2/vidc/common/inc/vidc_color_converter.h
index bbfbdae..87a0ef7 100644
--- a/mm-video-v4l2/vidc/common/inc/vidc_color_converter.h
+++ b/mm-video-v4l2/vidc/common/inc/vidc_color_converter.h
@@ -30,24 +30,25 @@
 #include "C2DColorConverter.h"
 
 using namespace android;
-class omx_c2d_conv {
-public:
-    omx_c2d_conv();
-    ~omx_c2d_conv();
-    bool init();
-    void destroy();
-    bool open(unsigned int height,unsigned int width,
-              ColorConvertFormat src,
-              ColorConvertFormat dest);
-    bool convert(int src_fd, void *src_base, void *src_viraddr,
-                 int dest_fd, void *dest_base, void *dest_viraddr);
-    bool get_buffer_size(int port,unsigned int &buf_size);
-    int get_src_format();
-    void close();
-private:
-     C2DColorConverterBase *c2dcc;
-    void *mLibHandle;
-    ColorConvertFormat src_format;
-    createC2DColorConverter_t *mConvertOpen;
-    destroyC2DColorConverter_t *mConvertClose;
+class omx_c2d_conv
+{
+    public:
+        omx_c2d_conv();
+        ~omx_c2d_conv();
+        bool init();
+        void destroy();
+        bool open(unsigned int height,unsigned int width,
+                ColorConvertFormat src,
+                ColorConvertFormat dest);
+        bool convert(int src_fd, void *src_base, void *src_viraddr,
+                int dest_fd, void *dest_base, void *dest_viraddr);
+        bool get_buffer_size(int port,unsigned int &buf_size);
+        int get_src_format();
+        void close();
+    private:
+        C2DColorConverterBase *c2dcc;
+        void *mLibHandle;
+        ColorConvertFormat src_format;
+        createC2DColorConverter_t *mConvertOpen;
+        destroyC2DColorConverter_t *mConvertClose;
 };
diff --git a/mm-video-v4l2/vidc/common/src/extra_data_handler.cpp b/mm-video-v4l2/vidc/common/src/extra_data_handler.cpp
index aa3b563..645699f 100644
--- a/mm-video-v4l2/vidc/common/src/extra_data_handler.cpp
+++ b/mm-video-v4l2/vidc/common/src/extra_data_handler.cpp
@@ -1,5 +1,5 @@
 /*--------------------------------------------------------------------------
-Copyright (c) 2010-2012, The Linux Foundation. All rights reserved.
+Copyright (c) 2010-2013, The Linux Foundation. All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -30,62 +30,66 @@
 
 extra_data_handler::extra_data_handler()
 {
-   rbsp_buf = (OMX_U8 *) calloc(1,100);
-   memset(&frame_packing_arrangement,0,sizeof(frame_packing_arrangement));
-   frame_packing_arrangement.cancel_flag = 1;
-   pack_sei = false;
-   sei_payload_type = -1;
+    rbsp_buf = (OMX_U8 *) calloc(1,100);
+    memset(&frame_packing_arrangement,0,sizeof(frame_packing_arrangement));
+    frame_packing_arrangement.cancel_flag = 1;
+    pack_sei = false;
+    sei_payload_type = -1;
 }
 
 extra_data_handler::~extra_data_handler()
 {
-  if(rbsp_buf) {
-    free(rbsp_buf);
-    rbsp_buf = NULL;
-  }
+    if (rbsp_buf) {
+        free(rbsp_buf);
+        rbsp_buf = NULL;
+    }
 }
 
 OMX_U32 extra_data_handler::d_u(OMX_U32 num_bits)
 {
-  OMX_U32 rem_bits = num_bits, bins = 0, shift = 0;
+    OMX_U32 rem_bits = num_bits, bins = 0, shift = 0;
 
-  while(rem_bits >= bit_ptr) {
+    while (rem_bits >= bit_ptr) {
+        DEBUG_PRINT_LOW("\nIn %s() bit_ptr/byte_ptr :%d/%d/%x", __func__, bit_ptr,
+                byte_ptr, rbsp_buf[byte_ptr]);
+        bins <<= shift;
+        shift = (8-bit_ptr);
+        bins |= ((rbsp_buf[byte_ptr] << shift) & 0xFF) >> shift;
+        rem_bits -= bit_ptr;
+        bit_ptr = 8;
+        byte_ptr ++;
+    }
+
     DEBUG_PRINT_LOW("\nIn %s() bit_ptr/byte_ptr :%d/%d/%x", __func__, bit_ptr,
-      byte_ptr, rbsp_buf[byte_ptr]);
-    bins <<= shift;
-    shift = (8-bit_ptr);
-    bins |= ((rbsp_buf[byte_ptr] << shift) & 0xFF) >> shift;
-    rem_bits -= bit_ptr;
-    bit_ptr = 8;
-    byte_ptr ++;
-  }
-  DEBUG_PRINT_LOW("\nIn %s() bit_ptr/byte_ptr :%d/%d/%x", __func__, bit_ptr,
-    byte_ptr, rbsp_buf[byte_ptr]);
+            byte_ptr, rbsp_buf[byte_ptr]);
 
-  if (rem_bits) {
-    bins <<= rem_bits;
-    bins |= ((rbsp_buf[byte_ptr] << (8-bit_ptr)) & 0xFF) >> (8-rem_bits);
-    bit_ptr -= rem_bits;
-	if (bit_ptr == 0) {
-       bit_ptr = 8;
-	   byte_ptr++;
-	}
-  }
-  DEBUG_PRINT_LOW("\nIn %s() bit_ptr/byte_ptr :%d/%d/%x", __func__, bit_ptr,
-    byte_ptr, rbsp_buf[byte_ptr]);
+    if (rem_bits) {
+        bins <<= rem_bits;
+        bins |= ((rbsp_buf[byte_ptr] << (8-bit_ptr)) & 0xFF) >> (8-rem_bits);
+        bit_ptr -= rem_bits;
 
-  DEBUG_PRINT_LOW("\nIn %s() bin/num_bits : %x/%d", __func__, bins, num_bits);
-  return bins;
+        if (bit_ptr == 0) {
+            bit_ptr = 8;
+            byte_ptr++;
+        }
+    }
+
+    DEBUG_PRINT_LOW("\nIn %s() bit_ptr/byte_ptr :%d/%d/%x", __func__, bit_ptr,
+            byte_ptr, rbsp_buf[byte_ptr]);
+
+    DEBUG_PRINT_LOW("\nIn %s() bin/num_bits : %x/%d", __func__, bins, num_bits);
+    return bins;
 }
 
 OMX_U32 extra_data_handler::d_ue()
 {
     OMX_S32 lead_zeros = -1;
     OMX_U32 symbol, bit;
-    do{
+
+    do {
         bit = d_u(1);
         lead_zeros++;
-    }while (!bit);
+    } while (!bit);
 
     symbol = ((1 << lead_zeros) - 1) + d_u(lead_zeros);
 
@@ -95,136 +99,150 @@
 
 OMX_U32 extra_data_handler::parse_frame_pack(OMX_U32 payload_size)
 {
-  frame_packing_arrangement.id = d_ue();
-  frame_packing_arrangement.cancel_flag = d_u(1);
-  if(!frame_packing_arrangement.cancel_flag) {
-     frame_packing_arrangement.type = d_u(7);
-     frame_packing_arrangement.quincunx_sampling_flag = d_u(1);
-     frame_packing_arrangement.content_interpretation_type = d_u(6);
-     frame_packing_arrangement.spatial_flipping_flag = d_u(1);
-     frame_packing_arrangement.frame0_flipped_flag = d_u(1);
-     frame_packing_arrangement.field_views_flag = d_u(1);
-     frame_packing_arrangement.current_frame_is_frame0_flag = d_u(1);
-     frame_packing_arrangement.frame0_self_contained_flag = d_u(1);
-     frame_packing_arrangement.frame1_self_contained_flag = d_u(1);
+    frame_packing_arrangement.id = d_ue();
+    frame_packing_arrangement.cancel_flag = d_u(1);
 
-     if(!frame_packing_arrangement.quincunx_sampling_flag &&
-        frame_packing_arrangement.type != 5) {
-        frame_packing_arrangement.frame0_grid_position_x = d_u(4);
-        frame_packing_arrangement.frame0_grid_position_y = d_u(4);
-        frame_packing_arrangement.frame1_grid_position_x = d_u(4);
-        frame_packing_arrangement.frame1_grid_position_y = d_u(4);
-     }
-     frame_packing_arrangement.reserved_byte = d_u(8);
-     frame_packing_arrangement.repetition_period = d_ue();
-   }
-   frame_packing_arrangement.extension_flag = d_u(1);
+    if (!frame_packing_arrangement.cancel_flag) {
+        frame_packing_arrangement.type = d_u(7);
+        frame_packing_arrangement.quincunx_sampling_flag = d_u(1);
+        frame_packing_arrangement.content_interpretation_type = d_u(6);
+        frame_packing_arrangement.spatial_flipping_flag = d_u(1);
+        frame_packing_arrangement.frame0_flipped_flag = d_u(1);
+        frame_packing_arrangement.field_views_flag = d_u(1);
+        frame_packing_arrangement.current_frame_is_frame0_flag = d_u(1);
+        frame_packing_arrangement.frame0_self_contained_flag = d_u(1);
+        frame_packing_arrangement.frame1_self_contained_flag = d_u(1);
 
-   return 1;
+        if (!frame_packing_arrangement.quincunx_sampling_flag &&
+                frame_packing_arrangement.type != 5) {
+            frame_packing_arrangement.frame0_grid_position_x = d_u(4);
+            frame_packing_arrangement.frame0_grid_position_y = d_u(4);
+            frame_packing_arrangement.frame1_grid_position_x = d_u(4);
+            frame_packing_arrangement.frame1_grid_position_y = d_u(4);
+        }
+
+        frame_packing_arrangement.reserved_byte = d_u(8);
+        frame_packing_arrangement.repetition_period = d_ue();
+    }
+
+    frame_packing_arrangement.extension_flag = d_u(1);
+
+    return 1;
 }
 
 OMX_S32 extra_data_handler::parse_rbsp(OMX_U8 *buf, OMX_U32 len)
 {
-   OMX_U32 i = 3, j=0, startcode;
-   OMX_U32 nal_unit_type, nal_ref_idc, forbidden_zero_bit;
+    OMX_U32 i = 3, j=0, startcode;
+    OMX_U32 nal_unit_type, nal_ref_idc, forbidden_zero_bit;
 
-   bit_ptr  = 8;
-   byte_ptr = 0;
+    bit_ptr  = 8;
+    byte_ptr = 0;
 
-   startcode =  buf[0] << 16 | buf[1] <<8 | buf[2];
+    startcode =  buf[0] << 16 | buf[1] <<8 | buf[2];
 
-   if (!startcode) {
-       startcode |= buf[i++];
-   }
-   if(startcode != H264_START_CODE) {
-       DEBUG_PRINT_ERROR("\nERROR: In %s() Start code not found", __func__);
-       return -1;
-   }
-   forbidden_zero_bit = (buf[i] & 0x80) >>7;
-   if(forbidden_zero_bit) {
-       DEBUG_PRINT_ERROR("\nERROR: In %s() Non-zero forbidden bit", __func__);
-       return -1;
-   }
-   nal_ref_idc = (buf[i] & 0x60) >>5;
-   DEBUG_PRINT_LOW("\nIn %s() nal_ref_idc ; %d", __func__, nal_ref_idc);
+    if (!startcode) {
+        startcode |= buf[i++];
+    }
 
-   nal_unit_type = (buf[i++] & 0x1F);
+    if (startcode != H264_START_CODE) {
+        DEBUG_PRINT_ERROR("\nERROR: In %s() Start code not found", __func__);
+        return -1;
+    }
 
-   while(i<len) {
-     if(!(buf[i] + buf[i+1]) && (buf[i+2] == H264_EMULATION_BYTE) &&
-		(i+2 < len)) {
-        rbsp_buf[j++] = buf[i++];
-        rbsp_buf[j++] = buf[i++];
-        i++;
-     } else
-        rbsp_buf[j++] = buf[i++];
-   }
-   return nal_unit_type;
+    forbidden_zero_bit = (buf[i] & 0x80) >>7;
+
+    if (forbidden_zero_bit) {
+        DEBUG_PRINT_ERROR("\nERROR: In %s() Non-zero forbidden bit", __func__);
+        return -1;
+    }
+
+    nal_ref_idc = (buf[i] & 0x60) >>5;
+    DEBUG_PRINT_LOW("\nIn %s() nal_ref_idc ; %d", __func__, nal_ref_idc);
+
+    nal_unit_type = (buf[i++] & 0x1F);
+
+    while (i<len) {
+        if (!(buf[i] + buf[i+1]) && (buf[i+2] == H264_EMULATION_BYTE) &&
+                (i+2 < len)) {
+            rbsp_buf[j++] = buf[i++];
+            rbsp_buf[j++] = buf[i++];
+            i++;
+        } else
+            rbsp_buf[j++] = buf[i++];
+    }
+
+    return nal_unit_type;
 }
 OMX_S32 extra_data_handler::parse_sei(OMX_U8 *buffer, OMX_U32 buffer_length)
 {
-  OMX_U32 nal_unit_type, payload_type = 0, payload_size = 0;
-  OMX_U32 marker = 0, pad = 0xFF;
+    OMX_U32 nal_unit_type, payload_type = 0, payload_size = 0;
+    OMX_U32 marker = 0, pad = 0xFF;
 
-  nal_unit_type = parse_rbsp(buffer, buffer_length);
+    nal_unit_type = parse_rbsp(buffer, buffer_length);
 
-  if (nal_unit_type != NAL_TYPE_SEI) {
-     DEBUG_PRINT_ERROR("\nERROR: In %s() - Non SEI NAL ", __func__);
-     return -1;
-  } else {
-
-    while(rbsp_buf[byte_ptr] == 0xFF)
-      payload_type += rbsp_buf[byte_ptr++];
-    payload_type += rbsp_buf[byte_ptr++];
-
-    DEBUG_PRINT_LOW("\nIn %s() payload_type : %u", __func__, payload_type);
-
-    while(rbsp_buf[byte_ptr] == 0xFF)
-      payload_size += rbsp_buf[byte_ptr++];
-    payload_size += rbsp_buf[byte_ptr++];
-
-    DEBUG_PRINT_LOW("\nIn %s() payload_size : %u", __func__, payload_size);
-
-    switch(payload_type) {
-      case SEI_PAYLOAD_FRAME_PACKING_ARRANGEMENT:
-        DEBUG_PRINT_LOW("\nIn %s() Frame Packing SEI ", __func__);
-        parse_frame_pack(payload_size);
-      break;
-      default:
-        DEBUG_PRINT_LOW("\nINFO: In %s() Not Supported SEI NAL ", __func__);
-      break;
-    }
-  }
-  if(bit_ptr != 8) {
-    marker = d_u(1);
-    if(marker) {
-      if(bit_ptr != 8) {
-	 pad = d_u(bit_ptr);
-	 if(pad) {
-	   DEBUG_PRINT_ERROR("\nERROR: In %s() padding Bits Error in SEI",
-	     __func__);
-           return -1;
-	 }
-      }
-    } else {
-      DEBUG_PRINT_ERROR("\nERROR: In %s() Marker Bit Error in SEI",
-        __func__);
+    if (nal_unit_type != NAL_TYPE_SEI) {
+        DEBUG_PRINT_ERROR("\nERROR: In %s() - Non SEI NAL ", __func__);
         return -1;
+    } else {
+
+        while (rbsp_buf[byte_ptr] == 0xFF)
+            payload_type += rbsp_buf[byte_ptr++];
+
+        payload_type += rbsp_buf[byte_ptr++];
+
+        DEBUG_PRINT_LOW("\nIn %s() payload_type : %u", __func__, payload_type);
+
+        while (rbsp_buf[byte_ptr] == 0xFF)
+            payload_size += rbsp_buf[byte_ptr++];
+
+        payload_size += rbsp_buf[byte_ptr++];
+
+        DEBUG_PRINT_LOW("\nIn %s() payload_size : %u", __func__, payload_size);
+
+        switch (payload_type) {
+            case SEI_PAYLOAD_FRAME_PACKING_ARRANGEMENT:
+                DEBUG_PRINT_LOW("\nIn %s() Frame Packing SEI ", __func__);
+                parse_frame_pack(payload_size);
+                break;
+            default:
+                DEBUG_PRINT_LOW("\nINFO: In %s() Not Supported SEI NAL ", __func__);
+                break;
+        }
     }
-  }
-  DEBUG_PRINT_LOW("\nIn %s() payload_size : %u/%u", __func__,
-    payload_size, byte_ptr);
-  return 1;
+
+    if (bit_ptr != 8) {
+        marker = d_u(1);
+
+        if (marker) {
+            if (bit_ptr != 8) {
+                pad = d_u(bit_ptr);
+
+                if (pad) {
+                    DEBUG_PRINT_ERROR("\nERROR: In %s() padding Bits Error in SEI",
+                            __func__);
+                    return -1;
+                }
+            }
+        } else {
+            DEBUG_PRINT_ERROR("\nERROR: In %s() Marker Bit Error in SEI",
+                    __func__);
+            return -1;
+        }
+    }
+
+    DEBUG_PRINT_LOW("\nIn %s() payload_size : %u/%u", __func__,
+            payload_size, byte_ptr);
+    return 1;
 }
 
 OMX_S32 extra_data_handler::parse_ltrinfo(
-  OMX_BUFFERHEADERTYPE *pBufHdr, OMX_OTHER_EXTRADATATYPE *pExtra)
+        OMX_BUFFERHEADERTYPE *pBufHdr, OMX_OTHER_EXTRADATATYPE *pExtra)
 {
-  OMX_U32 *pLTR;
-  pExtra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataVideoLTRInfo;
-  pLTR = (OMX_U32* )pExtra + 5;
-  DEBUG_PRINT_HIGH("ExtraData LTR ID %d", *pLTR, 0, 0);
-  return 0;
+    OMX_U32 *pLTR;
+    pExtra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataVideoLTRInfo;
+    pLTR = (OMX_U32* )pExtra + 5;
+    DEBUG_PRINT_HIGH("ExtraData LTR ID %d", *pLTR, 0, 0);
+    return 0;
 }
 /*======================================================================
   Slice Information will be available as below (each line is of 4 bytes)
@@ -234,226 +252,244 @@
   | ..               |
   | Nth slice offset |
   | Nth slice size   |
-======================================================================*/
+  ======================================================================*/
 OMX_S32 extra_data_handler::parse_sliceinfo(
-  OMX_BUFFERHEADERTYPE *pBufHdr, OMX_OTHER_EXTRADATATYPE *pExtra)
+        OMX_BUFFERHEADERTYPE *pBufHdr, OMX_OTHER_EXTRADATATYPE *pExtra)
 {
-  OMX_U32 slice_offset = 0, slice_size = 0, total_size = 0;
-  OMX_U8 *pBuffer = (OMX_U8 *)pBufHdr->pBuffer;
-  OMX_U32 *data = (OMX_U32 *)pExtra->data;
-  OMX_U32 num_slices = *data;
-  DEBUG_PRINT_LOW("number of slices = %d", num_slices);
-  if ((4 + num_slices * 8) != (OMX_U32)pExtra->nDataSize) {
-    DEBUG_PRINT_ERROR("unknown error in slice info extradata");
-    return -1;
-  }
-  for (int i = 0; i < num_slices; i++) {
-    slice_offset = (OMX_U32)(*(data + (i*2 + 1)));
-    if ((*(pBuffer + slice_offset + 0) != 0x00) ||
-        (*(pBuffer + slice_offset + 1) != 0x00) ||
-        (*(pBuffer + slice_offset + 2) != 0x00) ||
-        (*(pBuffer + slice_offset + 3) != H264_START_CODE)) {
-      DEBUG_PRINT_ERROR("found 0x%x instead of start code at offset[%d] "
-        "for slice[%d]", (OMX_U32)(*(OMX_U32 *)(pBuffer + slice_offset)),
-        slice_offset, i);
-      return -1;
+    OMX_U32 slice_offset = 0, slice_size = 0, total_size = 0;
+    OMX_U8 *pBuffer = (OMX_U8 *)pBufHdr->pBuffer;
+    OMX_U32 *data = (OMX_U32 *)pExtra->data;
+    OMX_U32 num_slices = *data;
+    DEBUG_PRINT_LOW("number of slices = %d", num_slices);
+
+    if ((4 + num_slices * 8) != (OMX_U32)pExtra->nDataSize) {
+        DEBUG_PRINT_ERROR("unknown error in slice info extradata");
+        return -1;
     }
-    if (slice_offset != total_size) {
-      DEBUG_PRINT_ERROR("offset of slice number %d is not correct "
-          "or previous slice size is not correct", i);
-      return -1;
+
+    for (int i = 0; i < num_slices; i++) {
+        slice_offset = (OMX_U32)(*(data + (i*2 + 1)));
+
+        if ((*(pBuffer + slice_offset + 0) != 0x00) ||
+                (*(pBuffer + slice_offset + 1) != 0x00) ||
+                (*(pBuffer + slice_offset + 2) != 0x00) ||
+                (*(pBuffer + slice_offset + 3) != H264_START_CODE)) {
+            DEBUG_PRINT_ERROR("found 0x%x instead of start code at offset[%d] "
+                    "for slice[%d]", (OMX_U32)(*(OMX_U32 *)(pBuffer + slice_offset)),
+                    slice_offset, i);
+            return -1;
+        }
+
+        if (slice_offset != total_size) {
+            DEBUG_PRINT_ERROR("offset of slice number %d is not correct "
+                    "or previous slice size is not correct", i);
+            return -1;
+        }
+
+        slice_size = (OMX_U32)(*(data + (i*2 + 2)));
+        total_size += slice_size;
+        DEBUG_PRINT_LOW("slice number %d offset/size = %d/%d",
+                i, slice_offset, slice_size);
     }
-    slice_size = (OMX_U32)(*(data + (i*2 + 2)));
-    total_size += slice_size;
-    DEBUG_PRINT_LOW("slice number %d offset/size = %d/%d",
-        i, slice_offset, slice_size);
-  }
-  if (pBufHdr->nFilledLen != total_size) {
-    DEBUG_PRINT_ERROR("frame_size[%d] is not equal to "
-       "total slices size[%d]", pBufHdr->nFilledLen, total_size);
-    return -1;
-  }
-  return 0;
+
+    if (pBufHdr->nFilledLen != total_size) {
+        DEBUG_PRINT_ERROR("frame_size[%d] is not equal to "
+                "total slices size[%d]", pBufHdr->nFilledLen, total_size);
+        return -1;
+    }
+
+    return 0;
 }
 
 OMX_U32 extra_data_handler::parse_extra_data(OMX_BUFFERHEADERTYPE *buf_hdr)
 {
-  DEBUG_PRINT_LOW("In %s() flags: 0x%x", __func__,buf_hdr->nFlags);
+    DEBUG_PRINT_LOW("In %s() flags: 0x%x", __func__,buf_hdr->nFlags);
 
-  if (buf_hdr->nFlags & OMX_BUFFERFLAG_EXTRADATA) {
+    if (buf_hdr->nFlags & OMX_BUFFERFLAG_EXTRADATA) {
 
-    OMX_OTHER_EXTRADATATYPE *extra_data = (OMX_OTHER_EXTRADATATYPE *)
-        ((unsigned)(buf_hdr->pBuffer + buf_hdr->nOffset +
-        buf_hdr->nFilledLen + 3)&(~3));
+        OMX_OTHER_EXTRADATATYPE *extra_data = (OMX_OTHER_EXTRADATATYPE *)
+            ((unsigned)(buf_hdr->pBuffer + buf_hdr->nOffset +
+                buf_hdr->nFilledLen + 3)&(~3));
 
-    while(extra_data &&
-      ((OMX_U32)extra_data > (OMX_U32)buf_hdr->pBuffer) &&
-      ((OMX_U32)extra_data < (OMX_U32)buf_hdr->pBuffer + buf_hdr->nAllocLen)) {
+        while (extra_data &&
+                ((OMX_U32)extra_data > (OMX_U32)buf_hdr->pBuffer) &&
+                ((OMX_U32)extra_data < (OMX_U32)buf_hdr->pBuffer + buf_hdr->nAllocLen)) {
 
-      DEBUG_PRINT_LOW("extradata(0x%x): nSize = 0x%x, eType = 0x%x,"
-         " nDataSize = 0x%x", (unsigned)extra_data, extra_data->nSize,
-         extra_data->eType, extra_data->nDataSize);
+            DEBUG_PRINT_LOW("extradata(0x%x): nSize = 0x%x, eType = 0x%x,"
+                    " nDataSize = 0x%x", (unsigned)extra_data, extra_data->nSize,
+                    extra_data->eType, extra_data->nDataSize);
 
-      if ((extra_data->eType == VDEC_EXTRADATA_NONE) ||
-         (extra_data->eType == VEN_EXTRADATA_NONE)) {
-         DEBUG_PRINT_LOW("No more extradata available");
-            extra_data->eType = OMX_ExtraDataNone;
-         break;
-      }
-      else if (extra_data->eType == VDEC_EXTRADATA_SEI) {
-         DEBUG_PRINT_LOW("Extradata SEI of size %d found, "
-            "parsing it", extra_data->nDataSize);
-         parse_sei(extra_data->data, extra_data->nDataSize);
-      }
-      else if (extra_data->eType == VEN_EXTRADATA_QCOMFILLER) {
-         DEBUG_PRINT_LOW("Extradata Qcom Filler found, skip %d bytes",
-            extra_data->nSize);
-      }
-      else if (extra_data->eType == VEN_EXTRADATA_SLICEINFO) {
-         DEBUG_PRINT_LOW("Extradata SliceInfo of size %d found, "
-            "parsing it", extra_data->nDataSize);
-         parse_sliceinfo(buf_hdr, extra_data);
-      }
+            if ((extra_data->eType == VDEC_EXTRADATA_NONE) ||
+                    (extra_data->eType == VEN_EXTRADATA_NONE)) {
+                DEBUG_PRINT_LOW("No more extradata available");
+                extra_data->eType = OMX_ExtraDataNone;
+                break;
+            } else if (extra_data->eType == VDEC_EXTRADATA_SEI) {
+                DEBUG_PRINT_LOW("Extradata SEI of size %d found, "
+                        "parsing it", extra_data->nDataSize);
+                parse_sei(extra_data->data, extra_data->nDataSize);
+            } else if (extra_data->eType == VEN_EXTRADATA_QCOMFILLER) {
+                DEBUG_PRINT_LOW("Extradata Qcom Filler found, skip %d bytes",
+                        extra_data->nSize);
+            } else if (extra_data->eType == VEN_EXTRADATA_SLICEINFO) {
+                DEBUG_PRINT_LOW("Extradata SliceInfo of size %d found, "
+                        "parsing it", extra_data->nDataSize);
+                parse_sliceinfo(buf_hdr, extra_data);
+            }
+
 #ifndef _MSM8974_
-      else if (extra_data->eType == VEN_EXTRADATA_LTRINFO) {
-         DEBUG_PRINT_LOW("Extradata LTRInfo of size %d found, "
-            "parsing it", extra_data->nDataSize);
-         parse_ltrinfo(buf_hdr, extra_data);
-      }
+            else if (extra_data->eType == VEN_EXTRADATA_LTRINFO) {
+                DEBUG_PRINT_LOW("Extradata LTRInfo of size %d found, "
+                        "parsing it", extra_data->nDataSize);
+                parse_ltrinfo(buf_hdr, extra_data);
+            }
+
 #endif
-      else {
-         DEBUG_PRINT_ERROR("Unknown extradata(0x%x) found, nSize = 0x%x, "
-            "eType = 0x%x, nDataSize = 0x%x", (unsigned)extra_data,
-            extra_data->nSize, extra_data->eType, extra_data->nDataSize);
-         buf_hdr->nFlags &= ~(OMX_BUFFERFLAG_EXTRADATA);
-         break;
-      }
-      extra_data = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) extra_data) +
-        extra_data->nSize);
+            else {
+                DEBUG_PRINT_ERROR("Unknown extradata(0x%x) found, nSize = 0x%x, "
+                        "eType = 0x%x, nDataSize = 0x%x", (unsigned)extra_data,
+                        extra_data->nSize, extra_data->eType, extra_data->nDataSize);
+                buf_hdr->nFlags &= ~(OMX_BUFFERFLAG_EXTRADATA);
+                break;
+            }
+
+            extra_data = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) extra_data) +
+                    extra_data->nSize);
+        }
     }
-  }
-  return 1;
+
+    return 1;
 }
 
 OMX_U32 extra_data_handler::get_frame_pack_data(
-	OMX_QCOM_FRAME_PACK_ARRANGEMENT *frame_pack)
+        OMX_QCOM_FRAME_PACK_ARRANGEMENT *frame_pack)
 {
-   DEBUG_PRINT_LOW("\n%s:%d get frame data", __func__, __LINE__);
-   memcpy(&frame_pack->id,&frame_packing_arrangement.id,
-   FRAME_PACK_SIZE*sizeof(OMX_U32));
-   return 1;
+    DEBUG_PRINT_LOW("\n%s:%d get frame data", __func__, __LINE__);
+    memcpy(&frame_pack->id,&frame_packing_arrangement.id,
+            FRAME_PACK_SIZE*sizeof(OMX_U32));
+    return 1;
 }
 
 OMX_U32 extra_data_handler::set_frame_pack_data(OMX_QCOM_FRAME_PACK_ARRANGEMENT
-   *frame_pack)
+        *frame_pack)
 {
-   DEBUG_PRINT_LOW("\n%s:%d set frame data", __func__, __LINE__);
-   memcpy(&frame_packing_arrangement.id, &frame_pack->id,
-     FRAME_PACK_SIZE*sizeof(OMX_U32));
-   pack_sei = true;
-   sei_payload_type = SEI_PAYLOAD_FRAME_PACKING_ARRANGEMENT;
-   return 1;
+    DEBUG_PRINT_LOW("\n%s:%d set frame data", __func__, __LINE__);
+    memcpy(&frame_packing_arrangement.id, &frame_pack->id,
+            FRAME_PACK_SIZE*sizeof(OMX_U32));
+    pack_sei = true;
+    sei_payload_type = SEI_PAYLOAD_FRAME_PACKING_ARRANGEMENT;
+    return 1;
 }
 
 OMX_U32 extra_data_handler::e_u(OMX_U32 symbol, OMX_U32 num_bits)
 {
-   OMX_U32 rem_bits = num_bits, shift;
+    OMX_U32 rem_bits = num_bits, shift;
 
-   DEBUG_PRINT_LOW("\n%s bin  : %x/%d", __func__, symbol, num_bits);
+    DEBUG_PRINT_LOW("\n%s bin  : %x/%d", __func__, symbol, num_bits);
 
-   while(rem_bits >= bit_ptr) {
-     shift = rem_bits - bit_ptr;
-     rbsp_buf[byte_ptr] |= (symbol >> shift);
-     symbol = (symbol << (32 - shift)) >> (32 - shift);
-     rem_bits -= bit_ptr;
-     DEBUG_PRINT_LOW("\n%sstream byte/rem_bits %x/%d", __func__,
-     rbsp_buf[byte_ptr], rem_bits);
-     byte_ptr ++;
-     bit_ptr = 8;
-   }
+    while (rem_bits >= bit_ptr) {
+        shift = rem_bits - bit_ptr;
+        rbsp_buf[byte_ptr] |= (symbol >> shift);
+        symbol = (symbol << (32 - shift)) >> (32 - shift);
+        rem_bits -= bit_ptr;
+        DEBUG_PRINT_LOW("\n%sstream byte/rem_bits %x/%d", __func__,
+                rbsp_buf[byte_ptr], rem_bits);
+        byte_ptr ++;
+        bit_ptr = 8;
+    }
 
-   if(rem_bits) {
-     shift = bit_ptr - rem_bits;
-     rbsp_buf[byte_ptr] |= (symbol << shift);
-     bit_ptr -= rem_bits;
-     DEBUG_PRINT_LOW("\n%s 2 stream byte/rem_bits %x", __func__,
-       rbsp_buf[byte_ptr], rem_bits);
-     if(bit_ptr == 0) {
-       bit_ptr = 8;
-       byte_ptr++;
-     }
-   }
-   return 1;
+    if (rem_bits) {
+        shift = bit_ptr - rem_bits;
+        rbsp_buf[byte_ptr] |= (symbol << shift);
+        bit_ptr -= rem_bits;
+        DEBUG_PRINT_LOW("\n%s 2 stream byte/rem_bits %x", __func__,
+                rbsp_buf[byte_ptr], rem_bits);
+
+        if (bit_ptr == 0) {
+            bit_ptr = 8;
+            byte_ptr++;
+        }
+    }
+
+    return 1;
 }
 
 OMX_U32 extra_data_handler::e_ue(OMX_U32 symbol)
 {
-   OMX_U32 i, sym_len, sufix_len, info;
-   OMX_U32 nn =(symbol + 1) >> 1;
+    OMX_U32 i, sym_len, sufix_len, info;
+    OMX_U32 nn =(symbol + 1) >> 1;
 
-   DEBUG_PRINT_LOW("\n%s bin  : %x", __func__, symbol);
+    DEBUG_PRINT_LOW("\n%s bin  : %x", __func__, symbol);
 
-   for(i=0; i < 33 && nn != 0; i++)
-     nn >>= 1;
+    for (i=0; i < 33 && nn != 0; i++)
+        nn >>= 1;
 
-   sym_len = ((i << 1) + 1);
-   info = symbol + 1 - (1 << i);
-   sufix_len = (1 << (sym_len >>1));
-   info = sufix_len | (info & (sufix_len - 1));
-   e_u(info, sym_len);
-   return 1;
+    sym_len = ((i << 1) + 1);
+    info = symbol + 1 - (1 << i);
+    sufix_len = (1 << (sym_len >>1));
+    info = sufix_len | (info & (sufix_len - 1));
+    e_u(info, sym_len);
+    return 1;
 }
 
 OMX_U32 extra_data_handler::create_frame_pack()
 {
-   e_ue(frame_packing_arrangement.id);
-   e_u(frame_packing_arrangement.cancel_flag, 1);
-   if(!frame_packing_arrangement.cancel_flag) {
-     e_u(frame_packing_arrangement.type, 7);
-     e_u(frame_packing_arrangement.quincunx_sampling_flag, 1);
-     e_u(frame_packing_arrangement.content_interpretation_type, 6);
-     e_u(frame_packing_arrangement.spatial_flipping_flag, 1);
-     e_u(frame_packing_arrangement.frame0_flipped_flag, 1);
-     e_u(frame_packing_arrangement.field_views_flag, 1);
-     e_u(frame_packing_arrangement.current_frame_is_frame0_flag, 1);
-     e_u(frame_packing_arrangement.frame0_self_contained_flag, 1);
-     e_u(frame_packing_arrangement.frame1_self_contained_flag, 1);
-     if(!frame_packing_arrangement.quincunx_sampling_flag &&
-        frame_packing_arrangement.type != 5) {
-        e_u(frame_packing_arrangement.frame0_grid_position_x, 4);
-        e_u(frame_packing_arrangement.frame0_grid_position_y, 4);
-        e_u(frame_packing_arrangement.frame1_grid_position_x, 4);
-        e_u(frame_packing_arrangement.frame1_grid_position_y, 4);
-     }
-     e_u(frame_packing_arrangement.reserved_byte, 8);
-     e_ue(frame_packing_arrangement.repetition_period);
-   }
-   e_u(frame_packing_arrangement.extension_flag, 1);
-   return 1;
+    e_ue(frame_packing_arrangement.id);
+    e_u(frame_packing_arrangement.cancel_flag, 1);
+
+    if (!frame_packing_arrangement.cancel_flag) {
+        e_u(frame_packing_arrangement.type, 7);
+        e_u(frame_packing_arrangement.quincunx_sampling_flag, 1);
+        e_u(frame_packing_arrangement.content_interpretation_type, 6);
+        e_u(frame_packing_arrangement.spatial_flipping_flag, 1);
+        e_u(frame_packing_arrangement.frame0_flipped_flag, 1);
+        e_u(frame_packing_arrangement.field_views_flag, 1);
+        e_u(frame_packing_arrangement.current_frame_is_frame0_flag, 1);
+        e_u(frame_packing_arrangement.frame0_self_contained_flag, 1);
+        e_u(frame_packing_arrangement.frame1_self_contained_flag, 1);
+
+        if (!frame_packing_arrangement.quincunx_sampling_flag &&
+                frame_packing_arrangement.type != 5) {
+            e_u(frame_packing_arrangement.frame0_grid_position_x, 4);
+            e_u(frame_packing_arrangement.frame0_grid_position_y, 4);
+            e_u(frame_packing_arrangement.frame1_grid_position_x, 4);
+            e_u(frame_packing_arrangement.frame1_grid_position_y, 4);
+        }
+
+        e_u(frame_packing_arrangement.reserved_byte, 8);
+        e_ue(frame_packing_arrangement.repetition_period);
+    }
+
+    e_u(frame_packing_arrangement.extension_flag, 1);
+    return 1;
 }
 
 OMX_S32 extra_data_handler::create_rbsp(OMX_U8 *buf, OMX_U32 nalu_type)
 {
-   OMX_U32 i, j = 7;
-   for(i = 0;i < 3;i++)
-   *buf++ = 0x00;
-   *buf++ = H264_START_CODE;
-   *buf++ = nalu_type;
-   *buf++ = (sei_payload_type & 0x000000FF);
-   *buf++ = byte_ptr - 1; //payload will contain 1 byte of rbsp_trailing_bits
-                          //that shouldn't be taken into account
+    OMX_U32 i, j = 7;
 
-    for(i = 0;i < byte_ptr ;i += 2) {
-      *buf++ = rbsp_buf[i];
-       j++;
-       if(i+1 < byte_ptr) {
-           *buf++ = rbsp_buf[i+1];
-           j++;
-           if(!(rbsp_buf[i] + rbsp_buf[i+1])) {
-               *buf++ = H264_EMULATION_BYTE;
-               j++;
-           }
-       }
+    for (i = 0; i < 3; i++)
+        *buf++ = 0x00;
+
+    *buf++ = H264_START_CODE;
+    *buf++ = nalu_type;
+    *buf++ = (sei_payload_type & 0x000000FF);
+    *buf++ = byte_ptr - 1; //payload will contain 1 byte of rbsp_trailing_bits
+    //that shouldn't be taken into account
+
+    for (i = 0; i < byte_ptr ; i += 2) {
+        *buf++ = rbsp_buf[i];
+        j++;
+
+        if (i+1 < byte_ptr) {
+            *buf++ = rbsp_buf[i+1];
+            j++;
+
+            if (!(rbsp_buf[i] + rbsp_buf[i+1])) {
+                *buf++ = H264_EMULATION_BYTE;
+                j++;
+            }
+        }
     }
 
     DEBUG_PRINT_LOW("\n%s rbsp length %d", __func__, j);
@@ -462,49 +498,53 @@
 
 OMX_U32 extra_data_handler::create_sei(OMX_U8 *buffer)
 {
-   OMX_U32 i, ret_val = 0;
+    OMX_U32 i, ret_val = 0;
 
-   byte_ptr = 0;
-   bit_ptr  = 8;
+    byte_ptr = 0;
+    bit_ptr  = 8;
 
-   if(sei_payload_type == SEI_PAYLOAD_FRAME_PACKING_ARRANGEMENT) {
-     create_frame_pack();
+    if (sei_payload_type == SEI_PAYLOAD_FRAME_PACKING_ARRANGEMENT) {
+        create_frame_pack();
 
-     if(bit_ptr != 8) {
-       e_u(1,1);
-       if(bit_ptr != 8)
-         e_u(0,bit_ptr);
-     }
+        if (bit_ptr != 8) {
+            e_u(1,1);
 
-     //Payload will have been byte aligned by now,
-     //insert the rbsp trailing bits
-     e_u(1, 1);
-     e_u(0, 7);
+            if (bit_ptr != 8)
+                e_u(0,bit_ptr);
+        }
 
-     ret_val = create_rbsp(buffer, NAL_TYPE_SEI);
-   }
+        //Payload will have been byte aligned by now,
+        //insert the rbsp trailing bits
+        e_u(1, 1);
+        e_u(0, 7);
 
-   pack_sei = false;
-   sei_payload_type = -1;
+        ret_val = create_rbsp(buffer, NAL_TYPE_SEI);
+    }
 
-   return ret_val;
+    pack_sei = false;
+    sei_payload_type = -1;
+
+    return ret_val;
 }
 
 OMX_U32 extra_data_handler::create_extra_data(OMX_BUFFERHEADERTYPE *buf_hdr)
 {
-   OMX_U8 *buffer = (OMX_U8 *) ((unsigned)(buf_hdr->pBuffer +
-     buf_hdr->nOffset + buf_hdr->nFilledLen));
-   OMX_U32 msg_size;
+    OMX_U8 *buffer = (OMX_U8 *) ((unsigned)(buf_hdr->pBuffer +
+                buf_hdr->nOffset + buf_hdr->nFilledLen));
+    OMX_U32 msg_size;
 
-    if(buf_hdr->nFlags & OMX_BUFFERFLAG_CODECCONFIG) {
-      DEBUG_PRINT_LOW("\n%s:%d create extra data with config", __func__,
-        __LINE__);
-      if(pack_sei) {
-         msg_size = create_sei(buffer);
-	 if( msg_size > 0)
-           buf_hdr->nFilledLen += msg_size;
-      }
+    if (buf_hdr->nFlags & OMX_BUFFERFLAG_CODECCONFIG) {
+        DEBUG_PRINT_LOW("\n%s:%d create extra data with config", __func__,
+                __LINE__);
+
+        if (pack_sei) {
+            msg_size = create_sei(buffer);
+
+            if ( msg_size > 0)
+                buf_hdr->nFilledLen += msg_size;
+        }
     }
+
     return 1;
 }
 
diff --git a/mm-video-v4l2/vidc/common/src/vidc_color_converter.cpp b/mm-video-v4l2/vidc/common/src/vidc_color_converter.cpp
index e75dd3c..ac5b840 100644
--- a/mm-video-v4l2/vidc/common/src/vidc_color_converter.cpp
+++ b/mm-video-v4l2/vidc/common/src/vidc_color_converter.cpp
@@ -39,116 +39,136 @@
 
 omx_c2d_conv::omx_c2d_conv()
 {
-  c2dcc = NULL;
-  mLibHandle = NULL;
-  mConvertOpen = NULL;
-  mConvertClose = NULL;
-  src_format = NV12_2K;
-}
-
-bool omx_c2d_conv::init() {
-  bool status = true;
-  if(mLibHandle || mConvertOpen || mConvertClose) {
-    DEBUG_PRINT_ERROR("\n omx_c2d_conv::init called twice");
-    status = false;
-  }
-  if(status) {
-    mLibHandle = dlopen("libc2dcolorconvert.so", RTLD_LAZY);
-    if(mLibHandle){
-       mConvertOpen = (createC2DColorConverter_t *)
-       dlsym(mLibHandle,"createC2DColorConverter");
-       mConvertClose = (destroyC2DColorConverter_t *)
-       dlsym(mLibHandle,"destroyC2DColorConverter");
-       if(!mConvertOpen || !mConvertClose)
-         status = false;
-    } else
-      status = false;
-  }
-  if(!status && mLibHandle){
-    dlclose(mLibHandle);
+    c2dcc = NULL;
     mLibHandle = NULL;
     mConvertOpen = NULL;
     mConvertClose = NULL;
-  }
-  return status;
+    src_format = NV12_2K;
+}
+
+bool omx_c2d_conv::init()
+{
+    bool status = true;
+
+    if (mLibHandle || mConvertOpen || mConvertClose) {
+        DEBUG_PRINT_ERROR("\n omx_c2d_conv::init called twice");
+        status = false;
+    }
+
+    if (status) {
+        mLibHandle = dlopen("libc2dcolorconvert.so", RTLD_LAZY);
+
+        if (mLibHandle) {
+            mConvertOpen = (createC2DColorConverter_t *)
+                dlsym(mLibHandle,"createC2DColorConverter");
+            mConvertClose = (destroyC2DColorConverter_t *)
+                dlsym(mLibHandle,"destroyC2DColorConverter");
+
+            if (!mConvertOpen || !mConvertClose)
+                status = false;
+        } else
+            status = false;
+    }
+
+    if (!status && mLibHandle) {
+        dlclose(mLibHandle);
+        mLibHandle = NULL;
+        mConvertOpen = NULL;
+        mConvertClose = NULL;
+    }
+
+    return status;
 }
 
 bool omx_c2d_conv::convert(int src_fd, void *src_base, void *src_viraddr,
-     int dest_fd, void *dest_base, void *dest_viraddr)
+        int dest_fd, void *dest_base, void *dest_viraddr)
 {
-  int result;
-  if(!src_viraddr || !dest_viraddr || !c2dcc || !dest_base || !src_base){
-    DEBUG_PRINT_ERROR("\n Invalid arguments omx_c2d_conv::convert");
-    return false;
-  }
-  result =  c2dcc->convertC2D(src_fd, src_base, src_viraddr,
-                              dest_fd, dest_base, dest_viraddr);
-  DEBUG_PRINT_LOW("\n Color convert status %d",result);
-  return ((result < 0)?false:true);
+    int result;
+
+    if (!src_viraddr || !dest_viraddr || !c2dcc || !dest_base || !src_base) {
+        DEBUG_PRINT_ERROR("\n Invalid arguments omx_c2d_conv::convert");
+        return false;
+    }
+
+    result =  c2dcc->convertC2D(src_fd, src_base, src_viraddr,
+            dest_fd, dest_base, dest_viraddr);
+    DEBUG_PRINT_LOW("\n Color convert status %d",result);
+    return ((result < 0)?false:true);
 }
 
 bool omx_c2d_conv::open(unsigned int height,unsigned int width,
-     ColorConvertFormat src, ColorConvertFormat dest)
+        ColorConvertFormat src, ColorConvertFormat dest)
 {
-  bool status = false;
-  if(!c2dcc) {
-     c2dcc = mConvertOpen(width, height, width, height,
-             src,dest,0,0);
-     if(c2dcc) {
-       src_format = src;
-       status = true;
-     } else
-       DEBUG_PRINT_ERROR("\n mConvertOpen failed");
-  }
-   return status;
+    bool status = false;
+
+    if (!c2dcc) {
+        c2dcc = mConvertOpen(width, height, width, height,
+                src,dest,0,0);
+
+        if (c2dcc) {
+            src_format = src;
+            status = true;
+        } else
+            DEBUG_PRINT_ERROR("\n mConvertOpen failed");
+    }
+
+    return status;
 }
 void omx_c2d_conv::close()
 {
-  if(mLibHandle) {
-    if(mConvertClose && c2dcc)
-     mConvertClose(c2dcc);
-    c2dcc = NULL;
-  }
+    if (mLibHandle) {
+        if (mConvertClose && c2dcc)
+            mConvertClose(c2dcc);
+
+        c2dcc = NULL;
+    }
 }
 
 void omx_c2d_conv::destroy()
 {
-  DEBUG_PRINT_ERROR("\n Destroy C2D instance");
-  if(mLibHandle) {
-    if(mConvertClose && c2dcc)
-      mConvertClose(c2dcc);
-    dlclose(mLibHandle);
-  }
-  c2dcc = NULL;
-  mLibHandle = NULL;
-  mConvertOpen = NULL;
-  mConvertClose = NULL;
+    DEBUG_PRINT_ERROR("\n Destroy C2D instance");
+
+    if (mLibHandle) {
+        if (mConvertClose && c2dcc)
+            mConvertClose(c2dcc);
+
+        dlclose(mLibHandle);
+    }
+
+    c2dcc = NULL;
+    mLibHandle = NULL;
+    mConvertOpen = NULL;
+    mConvertClose = NULL;
 }
 omx_c2d_conv::~omx_c2d_conv()
 {
-  destroy();
+    destroy();
 }
 int omx_c2d_conv::get_src_format()
 {
-  int format = -1;
-  if(src_format == NV12_2K) {
-    format = HAL_PIXEL_FORMAT_NV12_ENCODEABLE;
-  } else if(src_format == RGBA8888) {
-    format = HAL_PIXEL_FORMAT_RGBA_8888;
-  }
-  return format;
+    int format = -1;
+
+    if (src_format == NV12_2K) {
+        format = HAL_PIXEL_FORMAT_NV12_ENCODEABLE;
+    } else if (src_format == RGBA8888) {
+        format = HAL_PIXEL_FORMAT_RGBA_8888;
+    }
+
+    return format;
 }
 bool omx_c2d_conv::get_buffer_size(int port,unsigned int &buf_size)
 {
-  int cret = 0;
-  bool ret = false;
-  C2DBuffReq bufferreq;
-  if(c2dcc){
-    bufferreq.size = 0;
-    cret = c2dcc->getBuffReq(port,&bufferreq);
-    DEBUG_PRINT_LOW("\n Status of getbuffer is %d", cret);
-    ret = (cret)?false:true;
-    buf_size = bufferreq.size;
-  }
-  return ret;
+    int cret = 0;
+    bool ret = false;
+    C2DBuffReq bufferreq;
+
+    if (c2dcc) {
+        bufferreq.size = 0;
+        cret = c2dcc->getBuffReq(port,&bufferreq);
+        DEBUG_PRINT_LOW("\n Status of getbuffer is %d", cret);
+        ret = (cret)?false:true;
+        buf_size = bufferreq.size;
+    }
+
+    return ret;
 }
diff --git a/mm-video-v4l2/vidc/vdec/inc/Map.h b/mm-video-v4l2/vidc/vdec/inc/Map.h
old mode 100755
new mode 100644
index 6d5873e..7b54152
--- a/mm-video-v4l2/vidc/vdec/inc/Map.h
+++ b/mm-video-v4l2/vidc/vdec/inc/Map.h
@@ -1,5 +1,5 @@
 /*--------------------------------------------------------------------------
-Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
+Copyright (c) 2010-2011, 2013, The Linux Foundation. All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -34,24 +34,27 @@
 template <typename T,typename T2>
 class Map
 {
-    struct node
-    {
+    struct node {
         T    data;
         T2   data2;
         node* prev;
         node* next;
         node(T t, T2 t2,node* p, node* n) :
-             data(t), data2(t2), prev(p), next(n) {}
+            data(t), data2(t2), prev(p), next(n) {}
     };
     node* head;
     node* tail;
     node* tmp;
     unsigned size_of_list;
     static Map<T,T2> *m_self;
-public:
+    public:
     Map() : head( NULL ), tail ( NULL ),tmp(head),size_of_list(0) {}
-    bool empty() const { return ( !head || !tail ); }
-    operator bool() const { return !empty(); }
+    bool empty() const {
+        return ( !head || !tail );
+    }
+    operator bool() const {
+        return !empty();
+    }
     void insert(T,T2);
     void show();
     int  size();
@@ -61,10 +64,8 @@
     bool erase(T);
     bool eraseall();
     bool isempty();
-    ~Map()
-    {
-        while(head)
-        {
+    ~Map() {
+        while (head) {
             node* temp(head);
             head=head->next;
             size_of_list--;
@@ -73,88 +74,93 @@
     }
 };
 
-template <typename T,typename T2>
+    template <typename T,typename T2>
 T2 Map<T,T2>::find(T d1)
 {
     tmp = head;
-    while(tmp)
-    {
-        if(tmp->data == d1)
-        {
+
+    while (tmp) {
+        if (tmp->data == d1) {
             return tmp->data2;
         }
+
         tmp = tmp->next;
     }
+
     return 0;
 }
 
-template <typename T,typename T2>
+    template <typename T,typename T2>
 T Map<T,T2>::find_ele(T d1)
 {
     tmp = head;
-    while(tmp)
-    {
-        if(tmp->data == d1)
-        {
+
+    while (tmp) {
+        if (tmp->data == d1) {
             return tmp->data;
         }
+
         tmp = tmp->next;
     }
+
     return 0;
 }
 
-template <typename T,typename T2>
+    template <typename T,typename T2>
 T2 Map<T,T2>::begin()
 {
     tmp = head;
-    if(tmp)
-    {
+
+    if (tmp) {
         return (tmp->data2);
     }
+
     return 0;
 }
 
-template <typename T,typename T2>
+    template <typename T,typename T2>
 void Map<T,T2>::show()
 {
     tmp = head;
-    while(tmp)
-    {
+
+    while (tmp) {
         printf("%d-->%d\n",tmp->data,tmp->data2);
         tmp = tmp->next;
     }
 }
 
-template <typename T,typename T2>
+    template <typename T,typename T2>
 int Map<T,T2>::size()
 {
     int count =0;
     tmp = head;
-    while(tmp)
-    {
+
+    while (tmp) {
         tmp = tmp->next;
         count++;
     }
+
     return count;
 }
 
-template <typename T,typename T2>
+    template <typename T,typename T2>
 void Map<T,T2>::insert(T data, T2 data2)
 {
     tail = new node(data, data2,tail, NULL);
-    if( tail->prev )
+
+    if ( tail->prev )
         tail->prev->next = tail;
 
-    if( empty() )
-    {
+    if ( empty() ) {
         head = tail;
         tmp=head;
     }
+
     tmp = head;
     size_of_list++;
 }
 
-template <typename T,typename T2>
+    template <typename T,typename T2>
 bool Map<T,T2>::erase(T d)
 {
     bool found = false;
@@ -162,18 +168,16 @@
     node* prevnode = tmp;
     node *tempnode;
 
-    while(tmp)
-    {
-        if((head == tail) && (head->data == d))
-        {
-           found = true;
-           tempnode = head;
-           head = tail = NULL;
-           delete tempnode;
-           break;
+    while (tmp) {
+        if ((head == tail) && (head->data == d)) {
+            found = true;
+            tempnode = head;
+            head = tail = NULL;
+            delete tempnode;
+            break;
         }
-        if((tmp ==head) && (tmp->data ==d))
-        {
+
+        if ((tmp ==head) && (tmp->data ==d)) {
             found = true;
             tempnode = tmp;
             tmp = tmp->next;
@@ -183,8 +187,8 @@
             delete tempnode;
             break;
         }
-        if((tmp == tail) && (tmp->data ==d))
-        {
+
+        if ((tmp == tail) && (tmp->data ==d)) {
             found = true;
             tempnode = tmp;
             prevnode->next = NULL;
@@ -193,8 +197,8 @@
             delete tempnode;
             break;
         }
-        if(tmp->data == d)
-        {
+
+        if (tmp->data == d) {
             found = true;
             prevnode->next = tmp->next;
             tmp->next->prev = prevnode->next;
@@ -203,34 +207,38 @@
             delete tempnode;
             break;
         }
+
         prevnode = tmp;
         tmp = tmp->next;
     }
-    if(found)size_of_list--;
+
+    if (found)size_of_list--;
+
     return found;
 }
 
-template <typename T,typename T2>
+    template <typename T,typename T2>
 bool Map<T,T2>::eraseall()
 {
     node *tempnode;
     tmp = head;
-    while(head)
-    {
-       tempnode = head;
-       tempnode->next = NULL;
-       head = head->next;
-       delete tempnode;
+
+    while (head) {
+        tempnode = head;
+        tempnode->next = NULL;
+        head = head->next;
+        delete tempnode;
     }
+
     tail = head = NULL;
     return true;
 }
 
 
-template <typename T,typename T2>
+    template <typename T,typename T2>
 bool Map<T,T2>::isempty()
 {
-    if(!size_of_list) return true;
+    if (!size_of_list) return true;
     else return false;
 }
 
diff --git a/mm-video-v4l2/vidc/vdec/inc/decoder_driver_test.h b/mm-video-v4l2/vidc/vdec/inc/decoder_driver_test.h
old mode 100755
new mode 100644
index b3afafe..cc42fc1
--- a/mm-video-v4l2/vidc/vdec/inc/decoder_driver_test.h
+++ b/mm-video-v4l2/vidc/vdec/inc/decoder_driver_test.h
@@ -1,70 +1,69 @@
-/*--------------------------------------------------------------------------

-Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.

-

-Redistribution and use in source and binary forms, with or without

-modification, are permitted provided that the following conditions are met:

-    * Redistributions of source code must retain the above copyright

-      notice, this list of conditions and the following disclaimer.

-    * Redistributions in binary form must reproduce the above copyright

-      notice, this list of conditions and the following disclaimer in the

-      documentation and/or other materials provided with the distribution.

-    * Neither the name of The Linux Foundation nor

-      the names of its contributors may be used to endorse or promote

-      products derived from this software without specific prior written

-      permission.

-

-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

-IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

-NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR

-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;

-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF

-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---------------------------------------------------------------------------*/

-#include <stdio.h>

-#include <stdlib.h>

-#include "message_queue.h"

-#include <fcntl.h>

-#include <sys/ioctl.h>

-#include <sys/mman.h>

-#include <inttypes.h>

-#include <linux/msm_vidc_dec.h>

-#include <pthread.h>

-#include <semaphore.h>

-#include <stdio.h>

-

-struct video_decoder_context

-{

-    enum vdec_codec               decoder_format;

-    enum vdec_output_fromat       output_format;

-    struct vdec_picsize           video_resoultion;

-    struct vdec_allocatorproperty input_buffer;

-    struct vdec_allocatorproperty output_buffer;

-    struct vdec_bufferpayload     **ptr_inputbuffer;

-    struct vdec_bufferpayload     **ptr_outputbuffer;

-    struct vdec_output_frameinfo  **ptr_respbuffer;

-    struct video_queue_context    queue_context;

-    int                           video_driver_fd;

-

-    FILE * inputBufferFile;

-    FILE * outputBufferFile;

-

-    pthread_t videothread_id;

-    pthread_t asyncthread_id;

-    sem_t sem_synchronize;

-};

-

-int init_decoder ( struct video_decoder_context *init_decode );

-int allocate_buffer ( enum vdec_buffer,

-                      struct video_decoder_context *decode_context

-                     );

-int free_buffer ( enum vdec_buffer,

-                  struct video_decoder_context *decode_context

-                 );

-int start_decoding (struct video_decoder_context *decode_context);

-int stop_decoding  (struct video_decoder_context *decode_context);

-int deinit_decoder (struct video_decoder_context *init_decode);

+/*--------------------------------------------------------------------------
+Copyright (c) 2010-2011,2013, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of The Linux Foundation nor
+      the names of its contributors may be used to endorse or promote
+      products derived from this software without specific prior written
+      permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------*/
+#include <stdio.h>
+#include <stdlib.h>
+#include "message_queue.h"
+#include <fcntl.h>
+#include <sys/ioctl.h>
+#include <sys/mman.h>
+#include <inttypes.h>
+#include <linux/msm_vidc_dec.h>
+#include <pthread.h>
+#include <semaphore.h>
+#include <stdio.h>
+
+struct video_decoder_context {
+    enum vdec_codec               decoder_format;
+    enum vdec_output_fromat       output_format;
+    struct vdec_picsize           video_resoultion;
+    struct vdec_allocatorproperty input_buffer;
+    struct vdec_allocatorproperty output_buffer;
+    struct vdec_bufferpayload     **ptr_inputbuffer;
+    struct vdec_bufferpayload     **ptr_outputbuffer;
+    struct vdec_output_frameinfo  **ptr_respbuffer;
+    struct video_queue_context    queue_context;
+    int                           video_driver_fd;
+
+    FILE * inputBufferFile;
+    FILE * outputBufferFile;
+
+    pthread_t videothread_id;
+    pthread_t asyncthread_id;
+    sem_t sem_synchronize;
+};
+
+int init_decoder ( struct video_decoder_context *init_decode );
+int allocate_buffer ( enum vdec_buffer,
+        struct video_decoder_context *decode_context
+        );
+int free_buffer ( enum vdec_buffer,
+        struct video_decoder_context *decode_context
+        );
+int start_decoding (struct video_decoder_context *decode_context);
+int stop_decoding  (struct video_decoder_context *decode_context);
+int deinit_decoder (struct video_decoder_context *init_decode);
diff --git a/mm-video-v4l2/vidc/vdec/inc/frameparser.h b/mm-video-v4l2/vidc/vdec/inc/frameparser.h
old mode 100755
new mode 100644
index 186c039..075f1aa
--- a/mm-video-v4l2/vidc/vdec/inc/frameparser.h
+++ b/mm-video-v4l2/vidc/vdec/inc/frameparser.h
@@ -33,8 +33,7 @@
 #include "h264_utils.h"
 //#include <stdlib.h>
 
-enum codec_type
-{
+enum codec_type {
     CODEC_TYPE_MPEG4 = 0,
     CODEC_TYPE_DIVX = 0,
     CODEC_TYPE_H263 = 1,
@@ -48,58 +47,56 @@
     CODEC_TYPE_MAX
 };
 
-enum state_start_code_parse
-{
-   A0,
-   A1,
-   A2,
-   A3,
-   A4,
-   A5
+enum state_start_code_parse {
+    A0,
+    A1,
+    A2,
+    A3,
+    A4,
+    A5
 };
 
-enum state_nal_parse
-{
-   NAL_LENGTH_ACC,
-   NAL_PARSING
+enum state_nal_parse {
+    NAL_LENGTH_ACC,
+    NAL_PARSING
 };
 
 class frame_parse
 {
 
-public:
-	H264_Utils *mutils;
-	int init_start_codes (codec_type codec_type_parse);
-	int parse_sc_frame (OMX_BUFFERHEADERTYPE *source,
-                         OMX_BUFFERHEADERTYPE *dest ,
-						             OMX_U32 *partialframe);
-	int init_nal_length (unsigned int nal_length);
-	int parse_h264_nallength (OMX_BUFFERHEADERTYPE *source,
-		                        OMX_BUFFERHEADERTYPE *dest ,
-							              OMX_U32 *partialframe);
-	void flush ();
-	 frame_parse ();
-	~frame_parse ();
+    public:
+        H264_Utils *mutils;
+        int init_start_codes (codec_type codec_type_parse);
+        int parse_sc_frame (OMX_BUFFERHEADERTYPE *source,
+                OMX_BUFFERHEADERTYPE *dest ,
+                OMX_U32 *partialframe);
+        int init_nal_length (unsigned int nal_length);
+        int parse_h264_nallength (OMX_BUFFERHEADERTYPE *source,
+                OMX_BUFFERHEADERTYPE *dest ,
+                OMX_U32 *partialframe);
+        void flush ();
+        frame_parse ();
+        ~frame_parse ();
 
-private:
-   /*Variables for Start code based Parsing*/
-   enum state_start_code_parse parse_state;
-   unsigned char *start_code;
-   unsigned char *mask_code;
-   unsigned char last_byte_h263;
-   unsigned char last_byte;
-   bool header_found;
-   bool skip_frame_boundary;
+    private:
+        /*Variables for Start code based Parsing*/
+        enum state_start_code_parse parse_state;
+        unsigned char *start_code;
+        unsigned char *mask_code;
+        unsigned char last_byte_h263;
+        unsigned char last_byte;
+        bool header_found;
+        bool skip_frame_boundary;
 
-   /*Variables for NAL Length Parsing*/
-   enum state_nal_parse state_nal;
-   unsigned int nal_length;
-   unsigned int accum_length;
-   unsigned int bytes_tobeparsed;
-   /*Functions to support additional start code parsing*/
-   void parse_additional_start_code(OMX_U8 *psource, OMX_U32 *parsed_length);
-   void check_skip_frame_boundary(OMX_U32 *partial_frame);
-   void update_skip_frame();
+        /*Variables for NAL Length Parsing*/
+        enum state_nal_parse state_nal;
+        unsigned int nal_length;
+        unsigned int accum_length;
+        unsigned int bytes_tobeparsed;
+        /*Functions to support additional start code parsing*/
+        void parse_additional_start_code(OMX_U8 *psource, OMX_U32 *parsed_length);
+        void check_skip_frame_boundary(OMX_U32 *partial_frame);
+        void update_skip_frame();
 };
 
 #endif /* FRAMEPARSER_H */
diff --git a/mm-video-v4l2/vidc/vdec/inc/h264_utils.h b/mm-video-v4l2/vidc/vdec/inc/h264_utils.h
old mode 100755
new mode 100644
index 8df11ab..ad05a9e
--- a/mm-video-v4l2/vidc/vdec/inc/h264_utils.h
+++ b/mm-video-v4l2/vidc/vdec/inc/h264_utils.h
@@ -1,5 +1,5 @@
 /*--------------------------------------------------------------------------
-Copyright (c) 2010-2012, The Linux Foundation. All rights reserved.
+Copyright (c) 2010-2013, The Linux Foundation. All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -63,13 +63,13 @@
 
 /* =======================================================================
 
-                        DATA DECLARATIONS
+                          DATA DECLARATIONS
 
-========================================================================== */
+ ========================================================================== */
 
 /* -----------------------------------------------------------------------
-** Constant / Define Declarations
-** ----------------------------------------------------------------------- */
+ ** Constant / Define Declarations
+ ** ----------------------------------------------------------------------- */
 // Common format block header definitions
 #define MT_VIDEO_META_STREAM_HEADER             0x00
 #define MT_VIDEO_MEDIA_STREAM_HEADER            0x01
@@ -97,12 +97,12 @@
 #define MT_VIDEO_H263_FORMAT_BLOCK_HEADER_SIZE  16
 
 /* =======================================================================
-**                          Function Declarations
-** ======================================================================= */
+ **                          Function Declarations
+ ** ======================================================================= */
 
 /* -----------------------------------------------------------------------
-** Type Declarations
-** ----------------------------------------------------------------------- */
+ ** Type Declarations
+ ** ----------------------------------------------------------------------- */
 
 // This type is used when parsing an H.264 bitstream to collect H.264 NAL
 // units that need to go in the meta data.
@@ -128,27 +128,27 @@
 typedef Map<uint32, H264ParamNalu *> H264ParamNaluSet;
 
 typedef enum {
-  NALU_TYPE_UNSPECIFIED = 0,
-  NALU_TYPE_NON_IDR,
-  NALU_TYPE_PARTITION_A,
-  NALU_TYPE_PARTITION_B,
-  NALU_TYPE_PARTITION_C,
-  NALU_TYPE_IDR,
-  NALU_TYPE_SEI,
-  NALU_TYPE_SPS,
-  NALU_TYPE_PPS,
-  NALU_TYPE_ACCESS_DELIM,
-  NALU_TYPE_EOSEQ,
-  NALU_TYPE_EOSTREAM,
-  NALU_TYPE_FILLER_DATA,
-  NALU_TYPE_RESERVED,
+    NALU_TYPE_UNSPECIFIED = 0,
+    NALU_TYPE_NON_IDR,
+    NALU_TYPE_PARTITION_A,
+    NALU_TYPE_PARTITION_B,
+    NALU_TYPE_PARTITION_C,
+    NALU_TYPE_IDR,
+    NALU_TYPE_SEI,
+    NALU_TYPE_SPS,
+    NALU_TYPE_PPS,
+    NALU_TYPE_ACCESS_DELIM,
+    NALU_TYPE_EOSEQ,
+    NALU_TYPE_EOSTREAM,
+    NALU_TYPE_FILLER_DATA,
+    NALU_TYPE_RESERVED,
 } NALU_TYPE;
 
 // NAL header information
 typedef struct {
-  uint32 nal_ref_idc;
-  uint32 nalu_type;
-  uint32 forbidden_zero_bit;
+    uint32 nal_ref_idc;
+    uint32 nalu_type;
+    uint32 forbidden_zero_bit;
 } NALU;
 
 // This structure contains persistent information about an H.264 stream as it
@@ -166,75 +166,74 @@
  ** unit) into RBSP (raw byte sequence payload) and extract bits from it.
  *****************************************************************************/
 {
-public:
-    RbspParser (const uint8 *begin, const uint8 *end);
+    public:
+        RbspParser (const uint8 *begin, const uint8 *end);
 
-    virtual ~RbspParser ();
+        virtual ~RbspParser ();
 
-    uint32 next ();
-    void advance ();
-    uint32 u (uint32 n);
-    uint32 ue ();
-    int32 se ();
+        uint32 next ();
+        void advance ();
+        uint32 u (uint32 n);
+        uint32 ue ();
+        int32 se ();
 
-private:
-    const     uint8 *begin, *end;
-    int32     pos;
-    uint32    bit;
-    uint32    cursor;
-    bool      advanceNeeded;
+    private:
+        const     uint8 *begin, *end;
+        int32     pos;
+        uint32    bit;
+        uint32    cursor;
+        bool      advanceNeeded;
 };
 
 class H264_Utils
 {
-public:
-    H264_Utils();
-    ~H264_Utils();
-    void initialize_frame_checking_environment();
-    void allocate_rbsp_buffer(uint32 inputBufferSize);
-    bool isNewFrame(OMX_BUFFERHEADERTYPE *p_buf_hdr,
-                    OMX_IN OMX_U32 size_of_nal_length_field,
-                    OMX_OUT OMX_BOOL &isNewFrame);
-    uint32 nalu_type;
+    public:
+        H264_Utils();
+        ~H264_Utils();
+        void initialize_frame_checking_environment();
+        void allocate_rbsp_buffer(uint32 inputBufferSize);
+        bool isNewFrame(OMX_BUFFERHEADERTYPE *p_buf_hdr,
+                OMX_IN OMX_U32 size_of_nal_length_field,
+                OMX_OUT OMX_BOOL &isNewFrame);
+        uint32 nalu_type;
 
-private:
-    boolean extract_rbsp(OMX_IN   OMX_U8  *buffer,
-                         OMX_IN   OMX_U32 buffer_length,
-                         OMX_IN   OMX_U32 size_of_nal_length_field,
-                         OMX_OUT  OMX_U8  *rbsp_bistream,
-                         OMX_OUT  OMX_U32 *rbsp_length,
-                         OMX_OUT  NALU    *nal_unit);
+    private:
+        boolean extract_rbsp(OMX_IN   OMX_U8  *buffer,
+                OMX_IN   OMX_U32 buffer_length,
+                OMX_IN   OMX_U32 size_of_nal_length_field,
+                OMX_OUT  OMX_U8  *rbsp_bistream,
+                OMX_OUT  OMX_U32 *rbsp_length,
+                OMX_OUT  NALU    *nal_unit);
 
-    unsigned          m_height;
-    unsigned          m_width;
-    H264ParamNaluSet  pic;
-    H264ParamNaluSet  seq;
-    uint8             *m_rbspBytes;
-    NALU              m_prv_nalu;
-    bool              m_forceToStichNextNAL;
-    bool              m_au_data;
+        unsigned          m_height;
+        unsigned          m_width;
+        H264ParamNaluSet  pic;
+        H264ParamNaluSet  seq;
+        uint8             *m_rbspBytes;
+        NALU              m_prv_nalu;
+        bool              m_forceToStichNextNAL;
+        bool              m_au_data;
 };
 
 class perf_metrics
 {
-  public:
-    perf_metrics() :
-      start_time(0),
-      proc_time(0),
-      active(false)
-    {
-    };
-    ~perf_metrics() {};
-    void start();
-    void stop();
-    void end(OMX_U32 units_cntr = 0);
-    void reset();
-    OMX_U64 processing_time_us();
-  private:
-    inline OMX_U64 get_act_time();
-    OMX_U64 start_time;
-    OMX_U64 proc_time;
-    bool active;
+    public:
+        perf_metrics() :
+            start_time(0),
+            proc_time(0),
+            active(false) {
+            };
+        ~perf_metrics() {};
+        void start();
+        void stop();
+        void end(OMX_U32 units_cntr = 0);
+        void reset();
+        OMX_U64 processing_time_us();
+    private:
+        inline OMX_U64 get_act_time();
+        OMX_U64 start_time;
+        OMX_U64 proc_time;
+        bool active;
 };
 
 #define EMULATION_PREVENTION_THREE_BYTE 0x03
@@ -244,146 +243,140 @@
 #define VALID_TS(ts)      ((ts < LLONG_MAX)? true : false)
 #define NALU_TYPE_VUI (NALU_TYPE_RESERVED + 1)
 
-enum SEI_PAYLOAD_TYPE
-{
-  BUFFERING_PERIOD = 0,
-  PIC_TIMING,
-  PAN_SCAN_RECT,
-  FILLER_PAYLOAD,
-  USER_DATA_REGISTERED_ITU_T_T35,
-  USER_DATA_UNREGISTERED,
-  RECOVERY_POINT,
-  DEC_REF_PIC_MARKING_REPETITION,
-  SPARE_PIC,
-  SCENE_INFO,
-  SUB_SEQ_INFO,
-  SUB_SEQ_LAYER_CHARACTERISTICS,
-  SUB_SEQ_CHARACTERISTICS,
-  FULL_FRAME_FREEZE,
-  FULL_FRAME_FREEZE_RELEASE,
-  FULL_FRAME_SNAPSHOT,
-  PROGRESSIVE_REFINEMENT_SEGMENT_START,
-  PROGRESSIVE_REFINEMENT_SEGMENT_END,
-  SEI_PAYLOAD_FRAME_PACKING_ARRANGEMENT = 0x2D
+enum SEI_PAYLOAD_TYPE {
+    BUFFERING_PERIOD = 0,
+    PIC_TIMING,
+    PAN_SCAN_RECT,
+    FILLER_PAYLOAD,
+    USER_DATA_REGISTERED_ITU_T_T35,
+    USER_DATA_UNREGISTERED,
+    RECOVERY_POINT,
+    DEC_REF_PIC_MARKING_REPETITION,
+    SPARE_PIC,
+    SCENE_INFO,
+    SUB_SEQ_INFO,
+    SUB_SEQ_LAYER_CHARACTERISTICS,
+    SUB_SEQ_CHARACTERISTICS,
+    FULL_FRAME_FREEZE,
+    FULL_FRAME_FREEZE_RELEASE,
+    FULL_FRAME_SNAPSHOT,
+    PROGRESSIVE_REFINEMENT_SEGMENT_START,
+    PROGRESSIVE_REFINEMENT_SEGMENT_END,
+    SEI_PAYLOAD_FRAME_PACKING_ARRANGEMENT = 0x2D
 };
 
-typedef struct
-{
-  OMX_U32  cpb_cnt;
-  OMX_U8   bit_rate_scale;
-  OMX_U8   cpb_size_scale;
-  OMX_U32  bit_rate_value[MAX_CPB_COUNT];
-  OMX_U32  cpb_size_value[MAX_CPB_COUNT];
-  OMX_U8   cbr_flag[MAX_CPB_COUNT];
-  OMX_U8   initial_cpb_removal_delay_length;
-  OMX_U8   cpb_removal_delay_length;
-  OMX_U8   dpb_output_delay_length;
-  OMX_U8   time_offset_length;
+typedef struct {
+    OMX_U32  cpb_cnt;
+    OMX_U8   bit_rate_scale;
+    OMX_U8   cpb_size_scale;
+    OMX_U32  bit_rate_value[MAX_CPB_COUNT];
+    OMX_U32  cpb_size_value[MAX_CPB_COUNT];
+    OMX_U8   cbr_flag[MAX_CPB_COUNT];
+    OMX_U8   initial_cpb_removal_delay_length;
+    OMX_U8   cpb_removal_delay_length;
+    OMX_U8   dpb_output_delay_length;
+    OMX_U8   time_offset_length;
 } h264_hrd_param;
 
-typedef struct
-{
-  OMX_U32  aspect_ratio_idc;
-  OMX_U32  aspect_ratio_x;
-  OMX_U32  aspect_ratio_y;
+typedef struct {
+    OMX_U32  aspect_ratio_idc;
+    OMX_U32  aspect_ratio_x;
+    OMX_U32  aspect_ratio_y;
 } h264_aspect_ratio_info;
 
-typedef struct
-{
-  OMX_U8   aspect_ratio_info_present_flag;
-  h264_aspect_ratio_info aspect_ratio_info;
-  OMX_U8   timing_info_present_flag;
-  OMX_U32  num_units_in_tick;
-  OMX_U32  time_scale;
-  OMX_U8   fixed_frame_rate_flag;
-  OMX_U8   nal_hrd_parameters_present_flag;
-  h264_hrd_param   nal_hrd_parameters;
-  OMX_U8   vcl_hrd_parameters_present_flag;
-  h264_hrd_param   vcl_hrd_parameters;
-  OMX_U8   low_delay_hrd_flag;
-  OMX_U8   pic_struct_present_flag;
-  OMX_S64  fixed_fps_prev_ts;
+typedef struct {
+    OMX_U8   aspect_ratio_info_present_flag;
+    h264_aspect_ratio_info aspect_ratio_info;
+    OMX_U8   timing_info_present_flag;
+    OMX_U32  num_units_in_tick;
+    OMX_U32  time_scale;
+    OMX_U8   fixed_frame_rate_flag;
+    OMX_U8   nal_hrd_parameters_present_flag;
+    h264_hrd_param   nal_hrd_parameters;
+    OMX_U8   vcl_hrd_parameters_present_flag;
+    h264_hrd_param   vcl_hrd_parameters;
+    OMX_U8   low_delay_hrd_flag;
+    OMX_U8   pic_struct_present_flag;
+    OMX_S64  fixed_fps_prev_ts;
 } h264_vui_param;
 
-typedef struct
-{
-  OMX_U32 cpb_removal_delay;
-  OMX_U32 dpb_output_delay;
-  OMX_U8  pic_struct;
-  OMX_U32 num_clock_ts;
-  bool    clock_ts_flag;
-  OMX_U8  ct_type;
-  OMX_U32 nuit_field_based_flag;
-  OMX_U8  counting_type;
-  OMX_U8  full_timestamp_flag;
-  OMX_U8  discontinuity_flag;
-  OMX_U8  cnt_dropped_flag;
-  OMX_U32 n_frames;
-  OMX_U32 seconds_value;
-  OMX_U32 minutes_value;
-  OMX_U32 hours_value;
-  OMX_S32 time_offset;
-  bool    is_valid;
+typedef struct {
+    OMX_U32 cpb_removal_delay;
+    OMX_U32 dpb_output_delay;
+    OMX_U8  pic_struct;
+    OMX_U32 num_clock_ts;
+    bool    clock_ts_flag;
+    OMX_U8  ct_type;
+    OMX_U32 nuit_field_based_flag;
+    OMX_U8  counting_type;
+    OMX_U8  full_timestamp_flag;
+    OMX_U8  discontinuity_flag;
+    OMX_U8  cnt_dropped_flag;
+    OMX_U32 n_frames;
+    OMX_U32 seconds_value;
+    OMX_U32 minutes_value;
+    OMX_U32 hours_value;
+    OMX_S32 time_offset;
+    bool    is_valid;
 } h264_sei_pic_timing;
 
-typedef struct
-{
-  OMX_U32  initial_cpb_removal_delay[MAX_CPB_COUNT];
-  OMX_U32  initial_cpb_removal_delay_offset[MAX_CPB_COUNT];
-  OMX_U32  au_cntr;
-  OMX_S64  reference_ts;
-  bool     is_valid;
+typedef struct {
+    OMX_U32  initial_cpb_removal_delay[MAX_CPB_COUNT];
+    OMX_U32  initial_cpb_removal_delay_offset[MAX_CPB_COUNT];
+    OMX_U32  au_cntr;
+    OMX_S64  reference_ts;
+    bool     is_valid;
 } h264_sei_buf_period;
 
-typedef struct
-{
-  OMX_U32  rect_id;
-  OMX_U8   rect_cancel_flag;
-  OMX_U32  cnt;
-  OMX_S32  rect_left_offset[MAX_PAN_SCAN_RECT];
-  OMX_S32  rect_right_offset[MAX_PAN_SCAN_RECT];
-  OMX_S32  rect_top_offset[MAX_PAN_SCAN_RECT];
-  OMX_S32  rect_bottom_offset[MAX_PAN_SCAN_RECT];
-  OMX_U32  rect_repetition_period;
+typedef struct {
+    OMX_U32  rect_id;
+    OMX_U8   rect_cancel_flag;
+    OMX_U32  cnt;
+    OMX_S32  rect_left_offset[MAX_PAN_SCAN_RECT];
+    OMX_S32  rect_right_offset[MAX_PAN_SCAN_RECT];
+    OMX_S32  rect_top_offset[MAX_PAN_SCAN_RECT];
+    OMX_S32  rect_bottom_offset[MAX_PAN_SCAN_RECT];
+    OMX_U32  rect_repetition_period;
 } h264_pan_scan;
 
 #ifdef PANSCAN_HDLR
 template <class NODE_STRUCT>
 class omx_dl_list
 {
-public:
-  omx_dl_list() { head = tail = NULL; } ;
-  ~omx_dl_list() {};
-  void add_multiple(NODE_STRUCT *data_arr, int data_num);
-  NODE_STRUCT *remove_first();
-  NODE_STRUCT *remove_last();
-  void add_last(NODE_STRUCT *data_ptr);
-  NODE_STRUCT *watch_first();
-  NODE_STRUCT *watch_last();
-private:
-  NODE_STRUCT *head, *tail;
+    public:
+        omx_dl_list() {
+            head = tail = NULL;
+        } ;
+        ~omx_dl_list() {};
+        void add_multiple(NODE_STRUCT *data_arr, int data_num);
+        NODE_STRUCT *remove_first();
+        NODE_STRUCT *remove_last();
+        void add_last(NODE_STRUCT *data_ptr);
+        NODE_STRUCT *watch_first();
+        NODE_STRUCT *watch_last();
+    private:
+        NODE_STRUCT *head, *tail;
 };
 
 class panscan_handler
 {
-public:
-  panscan_handler();
-  ~panscan_handler();
-  bool initialize(int num_data);
-  h264_pan_scan *get_free();
-  h264_pan_scan *get_populated(OMX_S64 frame_ts);
-  void update_last(OMX_S64 frame_ts);
-private:
-  typedef struct PANSCAN_NODE
-  {
-    h264_pan_scan pan_scan_param;
-    OMX_S64  start_ts, end_ts;
-    bool active;
-    PANSCAN_NODE *next, *prev;
-  } PANSCAN_NODE;
-  omx_dl_list<PANSCAN_NODE> panscan_used;
-  omx_dl_list<PANSCAN_NODE> panscan_free;
-  PANSCAN_NODE *panscan_data;
+    public:
+        panscan_handler();
+        ~panscan_handler();
+        bool initialize(int num_data);
+        h264_pan_scan *get_free();
+        h264_pan_scan *get_populated(OMX_S64 frame_ts);
+        void update_last(OMX_S64 frame_ts);
+    private:
+        typedef struct PANSCAN_NODE {
+            h264_pan_scan pan_scan_param;
+            OMX_S64  start_ts, end_ts;
+            bool active;
+            PANSCAN_NODE *next, *prev;
+        } PANSCAN_NODE;
+        omx_dl_list<PANSCAN_NODE> panscan_used;
+        omx_dl_list<PANSCAN_NODE> panscan_free;
+        PANSCAN_NODE *panscan_data;
 };
 
 #if 1 // Debug panscan data
@@ -394,23 +387,23 @@
 #else
 
 #define PRINT_PANSCAN_PARAM(H264_PARAM) \
-do {\
-  ALOGE("%s(): left_off(%ld) right_off(%ld) top_off(%ld) bottom_off(%ld)",\
-    __FUNCTION__,\
-    (H264_PARAM).rect_left_offset[0],\
-    (H264_PARAM).rect_right_offset[0],\
-    (H264_PARAM).rect_top_offset[0],\
-    (H264_PARAM).rect_bottom_offset[0]);\
-}while(0)
+    do {\
+        ALOGE("%s(): left_off(%ld) right_off(%ld) top_off(%ld) bottom_off(%ld)",\
+                __FUNCTION__,\
+                (H264_PARAM).rect_left_offset[0],\
+                (H264_PARAM).rect_right_offset[0],\
+                (H264_PARAM).rect_top_offset[0],\
+                (H264_PARAM).rect_bottom_offset[0]);\
+    }while(0)
 
 #define PRINT_PANSCAN_DATA(NODE) \
-do {\
-  if (NODE) {\
-    ALOGE("%s(): PANSCAN DATA start_ts(%lld) end_ts(%lld)", __FUNCTION__,\
-	  (NODE)->start_ts, (NODE)->end_ts);\
-	PRINT_PANSCAN_PARAM(NODE->pan_scan_param);\
-  }\
-}while(0)
+    do {\
+        if (NODE) {\
+            ALOGE("%s(): PANSCAN DATA start_ts(%lld) end_ts(%lld)", __FUNCTION__,\
+                    (NODE)->start_ts, (NODE)->end_ts);\
+            PRINT_PANSCAN_PARAM(NODE->pan_scan_param);\
+        }\
+    }while(0)
 
 #endif // End debug panscan data
 
@@ -418,70 +411,70 @@
 
 class h264_stream_parser
 {
-  public:
-    h264_stream_parser();
-    ~h264_stream_parser();
-    void reset();
-    void fill_pan_scan_data(OMX_QCOM_PANSCAN *dest_pan_scan, OMX_S64 timestamp);
-    void fill_aspect_ratio_info(OMX_QCOM_ASPECT_RATIO *dest_aspect_ratio);
-    void parse_nal(OMX_U8* data_ptr, OMX_U32 data_len,
-                   OMX_U32 nal_type = NALU_TYPE_UNSPECIFIED,
-                   bool enable_emu_sc = true);
-    OMX_S64 process_ts_with_sei_vui(OMX_S64 timestamp);
-    void get_frame_pack_data(OMX_QCOM_FRAME_PACK_ARRANGEMENT *frame_pack);
-    bool is_mbaff();
-    void get_frame_rate(OMX_U32 *frame_rate);
-    OMX_U32 get_profile();
+    public:
+        h264_stream_parser();
+        ~h264_stream_parser();
+        void reset();
+        void fill_pan_scan_data(OMX_QCOM_PANSCAN *dest_pan_scan, OMX_S64 timestamp);
+        void fill_aspect_ratio_info(OMX_QCOM_ASPECT_RATIO *dest_aspect_ratio);
+        void parse_nal(OMX_U8* data_ptr, OMX_U32 data_len,
+                OMX_U32 nal_type = NALU_TYPE_UNSPECIFIED,
+                bool enable_emu_sc = true);
+        OMX_S64 process_ts_with_sei_vui(OMX_S64 timestamp);
+        void get_frame_pack_data(OMX_QCOM_FRAME_PACK_ARRANGEMENT *frame_pack);
+        bool is_mbaff();
+        void get_frame_rate(OMX_U32 *frame_rate);
+        OMX_U32 get_profile();
 #ifdef PANSCAN_HDLR
-    void update_panscan_data(OMX_S64 timestamp);
+        void update_panscan_data(OMX_S64 timestamp);
 #endif
 
-  private:
-    void init_bitstream(OMX_U8* data, OMX_U32 size);
-    OMX_U32 extract_bits(OMX_U32 n);
-    inline bool more_bits();
-    void read_word();
-    OMX_U32 uev();
-    OMX_S32 sev();
-    OMX_S32 iv(OMX_U32 n_bits);
-    void parse_sps();
-    void parse_vui(bool vui_in_extradata = true);
-    void aspect_ratio_info();
-    void hrd_parameters(h264_hrd_param *hrd_param);
-    void parse_sei();
-    void sei_buffering_period();
-    void sei_picture_timing();
-    void sei_pan_scan();
-    void scaling_list(OMX_U32 size_of_scaling_list);
+    private:
+        void init_bitstream(OMX_U8* data, OMX_U32 size);
+        OMX_U32 extract_bits(OMX_U32 n);
+        inline bool more_bits();
+        void read_word();
+        OMX_U32 uev();
+        OMX_S32 sev();
+        OMX_S32 iv(OMX_U32 n_bits);
+        void parse_sps();
+        void parse_vui(bool vui_in_extradata = true);
+        void aspect_ratio_info();
+        void hrd_parameters(h264_hrd_param *hrd_param);
+        void parse_sei();
+        void sei_buffering_period();
+        void sei_picture_timing();
+        void sei_pan_scan();
+        void scaling_list(OMX_U32 size_of_scaling_list);
 
-    void print_pan_data(h264_pan_scan *pan_scan_param);
-    void print_frame_pack();
+        void print_pan_data(h264_pan_scan *pan_scan_param);
+        void print_frame_pack();
 
-    OMX_U32 get_nal_unit_type(OMX_U32 *nal_unit_type);
-    OMX_S64 calculate_buf_period_ts(OMX_S64 timestamp);
-    OMX_S64 calculate_fixed_fps_ts(OMX_S64 timestamp, OMX_U32 DeltaTfiDivisor);
-    void parse_frame_pack();
+        OMX_U32 get_nal_unit_type(OMX_U32 *nal_unit_type);
+        OMX_S64 calculate_buf_period_ts(OMX_S64 timestamp);
+        OMX_S64 calculate_fixed_fps_ts(OMX_S64 timestamp, OMX_U32 DeltaTfiDivisor);
+        void parse_frame_pack();
 
-    OMX_U32 curr_32_bit;
-    OMX_U32 bits_read;
-    OMX_U32 profile;
-    OMX_U32 zero_cntr;
-    OMX_U32 emulation_code_skip_cntr;
-    OMX_U8* bitstream;
-    OMX_U32 bitstream_bytes;
-    OMX_U32 frame_rate;
-    bool    emulation_sc_enabled;
+        OMX_U32 curr_32_bit;
+        OMX_U32 bits_read;
+        OMX_U32 profile;
+        OMX_U32 zero_cntr;
+        OMX_U32 emulation_code_skip_cntr;
+        OMX_U8* bitstream;
+        OMX_U32 bitstream_bytes;
+        OMX_U32 frame_rate;
+        bool    emulation_sc_enabled;
 
-    h264_vui_param vui_param;
-    h264_sei_buf_period sei_buf_period;
-    h264_sei_pic_timing sei_pic_timing;
+        h264_vui_param vui_param;
+        h264_sei_buf_period sei_buf_period;
+        h264_sei_pic_timing sei_pic_timing;
 #ifdef PANSCAN_HDLR
-    panscan_handler *panscan_hdl;
+        panscan_handler *panscan_hdl;
 #else
-    h264_pan_scan panscan_param;
+        h264_pan_scan panscan_param;
 #endif
-    OMX_QCOM_FRAME_PACK_ARRANGEMENT frame_packing_arrangement;
-	bool 	mbaff_flag;
+        OMX_QCOM_FRAME_PACK_ARRANGEMENT frame_packing_arrangement;
+        bool     mbaff_flag;
 };
 
 #endif /* H264_UTILS_H */
diff --git a/mm-video-v4l2/vidc/vdec/inc/hevc_utils.h b/mm-video-v4l2/vidc/vdec/inc/hevc_utils.h
index 6482ee4..797d1d2 100644
--- a/mm-video-v4l2/vidc/vdec/inc/hevc_utils.h
+++ b/mm-video-v4l2/vidc/vdec/inc/hevc_utils.h
@@ -55,92 +55,92 @@
 
 class HEVC_Utils
 {
-public:
-    HEVC_Utils();
-    ~HEVC_Utils();
+    public:
+        HEVC_Utils();
+        ~HEVC_Utils();
 
-	enum {
-		NAL_UNIT_CODED_SLICE_TRAIL_N,	// 0
-		NAL_UNIT_CODED_SLICE_TRAIL_R,	// 1
-		NAL_UNIT_CODED_SLICE_TSA_N,		// 2
-		NAL_UNIT_CODED_SLICE_TLA,		// 3
-		NAL_UNIT_CODED_SLICE_STSA_N,    // 4
-		NAL_UNIT_CODED_SLICE_STSA_R,	// 5
-		NAL_UNIT_CODED_SLICE_RADL_N,	// 6
-		NAL_UNIT_CODED_SLICE_DLP,		// 7
-		NAL_UNIT_CODED_SLICE_RASL_N,	// 8
-		NAL_UNIT_CODED_SLICE_TFD,		// 9
-		NAL_UNIT_RESERVED_10,
-		NAL_UNIT_RESERVED_11,
-		NAL_UNIT_RESERVED_12,
-		NAL_UNIT_RESERVED_13,
-		NAL_UNIT_RESERVED_14,
-		NAL_UNIT_RESERVED_15,
-		NAL_UNIT_CODED_SLICE_BLA,		// 16
-		NAL_UNIT_CODED_SLICE_BLANT,		// 17
-		NAL_UNIT_CODED_SLICE_BLA_N_LP,	// 18
-		NAL_UNIT_CODED_SLICE_IDR,		// 19
-		NAL_UNIT_CODED_SLICE_IDR_N_LP,	// 20
-		NAL_UNIT_CODED_SLICE_CRA,		// 21
-		NAL_UNIT_RESERVED_22,
-		NAL_UNIT_RESERVED_23,
-		NAL_UNIT_RESERVED_24,
-		NAL_UNIT_RESERVED_25,
-		NAL_UNIT_RESERVED_26,
-		NAL_UNIT_RESERVED_27,
+        enum {
+            NAL_UNIT_CODED_SLICE_TRAIL_N,    // 0
+            NAL_UNIT_CODED_SLICE_TRAIL_R,    // 1
+            NAL_UNIT_CODED_SLICE_TSA_N,        // 2
+            NAL_UNIT_CODED_SLICE_TLA,        // 3
+            NAL_UNIT_CODED_SLICE_STSA_N,    // 4
+            NAL_UNIT_CODED_SLICE_STSA_R,    // 5
+            NAL_UNIT_CODED_SLICE_RADL_N,    // 6
+            NAL_UNIT_CODED_SLICE_DLP,        // 7
+            NAL_UNIT_CODED_SLICE_RASL_N,    // 8
+            NAL_UNIT_CODED_SLICE_TFD,        // 9
+            NAL_UNIT_RESERVED_10,
+            NAL_UNIT_RESERVED_11,
+            NAL_UNIT_RESERVED_12,
+            NAL_UNIT_RESERVED_13,
+            NAL_UNIT_RESERVED_14,
+            NAL_UNIT_RESERVED_15,
+            NAL_UNIT_CODED_SLICE_BLA,        // 16
+            NAL_UNIT_CODED_SLICE_BLANT,        // 17
+            NAL_UNIT_CODED_SLICE_BLA_N_LP,    // 18
+            NAL_UNIT_CODED_SLICE_IDR,        // 19
+            NAL_UNIT_CODED_SLICE_IDR_N_LP,    // 20
+            NAL_UNIT_CODED_SLICE_CRA,        // 21
+            NAL_UNIT_RESERVED_22,
+            NAL_UNIT_RESERVED_23,
+            NAL_UNIT_RESERVED_24,
+            NAL_UNIT_RESERVED_25,
+            NAL_UNIT_RESERVED_26,
+            NAL_UNIT_RESERVED_27,
 
-		NAL_UNIT_RESERVED_28,
-		NAL_UNIT_RESERVED_29,
-		NAL_UNIT_RESERVED_30,
-		NAL_UNIT_RESERVED_31,
+            NAL_UNIT_RESERVED_28,
+            NAL_UNIT_RESERVED_29,
+            NAL_UNIT_RESERVED_30,
+            NAL_UNIT_RESERVED_31,
 
-		NAL_UNIT_VPS,					// 32
-		NAL_UNIT_SPS,					// 33
-		NAL_UNIT_PPS,					// 34
-		NAL_UNIT_ACCESS_UNIT_DELIMITER, // 35
-		NAL_UNIT_EOS,					// 36
-		NAL_UNIT_EOB,					// 37
-		NAL_UNIT_FILLER_DATA,			// 38
-		NAL_UNIT_SEI,					// 39 Prefix SEI
-		NAL_UNIT_SEI_SUFFIX,			// 40 Suffix SEI
+            NAL_UNIT_VPS,                    // 32
+            NAL_UNIT_SPS,                    // 33
+            NAL_UNIT_PPS,                    // 34
+            NAL_UNIT_ACCESS_UNIT_DELIMITER, // 35
+            NAL_UNIT_EOS,                    // 36
+            NAL_UNIT_EOB,                    // 37
+            NAL_UNIT_FILLER_DATA,            // 38
+            NAL_UNIT_SEI,                    // 39 Prefix SEI
+            NAL_UNIT_SEI_SUFFIX,            // 40 Suffix SEI
 
-		NAL_UNIT_RESERVED_41,
-		NAL_UNIT_RESERVED_42,
-		NAL_UNIT_RESERVED_43,
-		NAL_UNIT_RESERVED_44,
-		NAL_UNIT_RESERVED_45,
-		NAL_UNIT_RESERVED_46,
-		NAL_UNIT_RESERVED_47,
-		NAL_UNIT_UNSPECIFIED_48,
-		NAL_UNIT_UNSPECIFIED_49,
-		NAL_UNIT_UNSPECIFIED_50,
-		NAL_UNIT_UNSPECIFIED_51,
-		NAL_UNIT_UNSPECIFIED_52,
-		NAL_UNIT_UNSPECIFIED_53,
-		NAL_UNIT_UNSPECIFIED_54,
-		NAL_UNIT_UNSPECIFIED_55,
-		NAL_UNIT_UNSPECIFIED_56,
-		NAL_UNIT_UNSPECIFIED_57,
-		NAL_UNIT_UNSPECIFIED_58,
-		NAL_UNIT_UNSPECIFIED_59,
-		NAL_UNIT_UNSPECIFIED_60,
-		NAL_UNIT_UNSPECIFIED_61,
-		NAL_UNIT_UNSPECIFIED_62,
-		NAL_UNIT_UNSPECIFIED_63,
-		NAL_UNIT_INVALID,
-	};
+            NAL_UNIT_RESERVED_41,
+            NAL_UNIT_RESERVED_42,
+            NAL_UNIT_RESERVED_43,
+            NAL_UNIT_RESERVED_44,
+            NAL_UNIT_RESERVED_45,
+            NAL_UNIT_RESERVED_46,
+            NAL_UNIT_RESERVED_47,
+            NAL_UNIT_UNSPECIFIED_48,
+            NAL_UNIT_UNSPECIFIED_49,
+            NAL_UNIT_UNSPECIFIED_50,
+            NAL_UNIT_UNSPECIFIED_51,
+            NAL_UNIT_UNSPECIFIED_52,
+            NAL_UNIT_UNSPECIFIED_53,
+            NAL_UNIT_UNSPECIFIED_54,
+            NAL_UNIT_UNSPECIFIED_55,
+            NAL_UNIT_UNSPECIFIED_56,
+            NAL_UNIT_UNSPECIFIED_57,
+            NAL_UNIT_UNSPECIFIED_58,
+            NAL_UNIT_UNSPECIFIED_59,
+            NAL_UNIT_UNSPECIFIED_60,
+            NAL_UNIT_UNSPECIFIED_61,
+            NAL_UNIT_UNSPECIFIED_62,
+            NAL_UNIT_UNSPECIFIED_63,
+            NAL_UNIT_INVALID,
+        };
 
 
-    void initialize_frame_checking_environment();
-    bool isNewFrame(OMX_BUFFERHEADERTYPE *p_buf_hdr,
-                    OMX_IN OMX_U32 size_of_nal_length_field,
-                    OMX_OUT OMX_BOOL &isNewFrame);
+        void initialize_frame_checking_environment();
+        bool isNewFrame(OMX_BUFFERHEADERTYPE *p_buf_hdr,
+                OMX_IN OMX_U32 size_of_nal_length_field,
+                OMX_OUT OMX_BOOL &isNewFrame);
 
-private:
+    private:
 
-    bool              m_forceToStichNextNAL;
-    bool              m_au_data;
-    uint32 nalu_type;
+        bool              m_forceToStichNextNAL;
+        bool              m_au_data;
+        uint32 nalu_type;
 };
 
 #endif /* HEVC_UTILS_H */
diff --git a/mm-video-v4l2/vidc/vdec/inc/message_queue.h b/mm-video-v4l2/vidc/vdec/inc/message_queue.h
old mode 100755
new mode 100644
index d5924e6..7cae154
--- a/mm-video-v4l2/vidc/vdec/inc/message_queue.h
+++ b/mm-video-v4l2/vidc/vdec/inc/message_queue.h
@@ -1,78 +1,76 @@
-/*--------------------------------------------------------------------------

-Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.

-

-Redistribution and use in source and binary forms, with or without

-modification, are permitted provided that the following conditions are met:

-    * Redistributions of source code must retain the above copyright

-      notice, this list of conditions and the following disclaimer.

-    * Redistributions in binary form must reproduce the above copyright

-      notice, this list of conditions and the following disclaimer in the

-      documentation and/or other materials provided with the distribution.

-    * Neither the name of The Linux Foundation nor

-      the names of its contributors may be used to endorse or promote

-      products derived from this software without specific prior written

-      permission.

-

-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

-IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

-NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR

-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;

-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF

-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---------------------------------------------------------------------------*/

-#ifndef QUEUE_H

-#define QUEUE_H

-

-#include <pthread.h>

-#include <semaphore.h>

-#include <stdio.h>

-#include <string.h>

-

-/* Message Queue structure */

-struct video_msgq

-{

-    /* Command to be executed */

-    unsigned int cmd;

-

-    unsigned int status;

-

-    /* Client-specific data */

-    void *clientdata;

-};

-

-

-/* Thread & Message Queue information */

-struct video_queue_context

-{

-    /* Message Queue related members */

-    pthread_mutex_t  mutex;

-    sem_t sem_message;

-    int commandq_size;

-    int dataq_size;

-    struct video_msgq *ptr_dataq;

-    struct video_msgq *ptr_cmdq;

-    int write_dataq ;

-    int read_dataq;

-    int write_comq ;

-    int read_comq ;

-

-};

-

-int check_if_queue_empty ( unsigned int queuetocheck,void* queuecontext );

-

-struct video_msgq * queue_get_cmd ( void* queuecontext );

-

-int queue_post_cmdq ( void *queuecontext,

-                       struct video_msgq *post_msg

-                     );

-

-int queue_post_dataq ( void *queuecontext,

-                        struct video_msgq *post_msg

-                      );

-

-#endif /* QUEUE_H */

+/*--------------------------------------------------------------------------
+Copyright (c) 2010-2011, 2013 The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of The Linux Foundation nor
+      the names of its contributors may be used to endorse or promote
+      products derived from this software without specific prior written
+      permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------*/
+#ifndef QUEUE_H
+#define QUEUE_H
+
+#include <pthread.h>
+#include <semaphore.h>
+#include <stdio.h>
+#include <string.h>
+
+/* Message Queue structure */
+struct video_msgq {
+    /* Command to be executed */
+    unsigned int cmd;
+
+    unsigned int status;
+
+    /* Client-specific data */
+    void *clientdata;
+};
+
+
+/* Thread & Message Queue information */
+struct video_queue_context {
+    /* Message Queue related members */
+    pthread_mutex_t  mutex;
+    sem_t sem_message;
+    int commandq_size;
+    int dataq_size;
+    struct video_msgq *ptr_dataq;
+    struct video_msgq *ptr_cmdq;
+    int write_dataq ;
+    int read_dataq;
+    int write_comq ;
+    int read_comq ;
+
+};
+
+int check_if_queue_empty ( unsigned int queuetocheck,void* queuecontext );
+
+struct video_msgq * queue_get_cmd ( void* queuecontext );
+
+int queue_post_cmdq ( void *queuecontext,
+        struct video_msgq *post_msg
+        );
+
+int queue_post_dataq ( void *queuecontext,
+        struct video_msgq *post_msg
+        );
+
+#endif /* QUEUE_H */
diff --git a/mm-video-v4l2/vidc/vdec/inc/mp4_utils.h b/mm-video-v4l2/vidc/vdec/inc/mp4_utils.h
index 9a435bf..93c04e7 100644
--- a/mm-video-v4l2/vidc/vdec/inc/mp4_utils.h
+++ b/mm-video-v4l2/vidc/vdec/inc/mp4_utils.h
@@ -122,49 +122,48 @@
 #define MP4_MAX_DECODE_HEIGHT   MP4_720P_HEIGHT
 
 typedef struct {
-   unsigned char *data;
-   unsigned long int numBytes;
+    unsigned char *data;
+    unsigned long int numBytes;
 } mp4StreamType;
 
 #define MAX_FRAMES_IN_CHUNK                 10
 #define VOP_START_CODE                      0x000001B6
 #define VOL_START_CODE                      0x000001B0
 
-typedef enum VOPTYPE
-{
-  NO_VOP = -1, // bitstream contains no VOP.
-  MPEG4_I_VOP = 0,   // bitstream contains an MPEG4 I-VOP
-  MPEG4_P_VOP = 1,   // bitstream contains an MPEG4 P-VOP
-  MPEG4_B_VOP = 2,   // bitstream contains an MPEG4 B-VOP
-  MPEG4_S_VOP = 3,   // bitstream contains an MPEG4 S-VOP
+typedef enum VOPTYPE {
+    NO_VOP = -1, // bitstream contains no VOP.
+    MPEG4_I_VOP = 0,   // bitstream contains an MPEG4 I-VOP
+    MPEG4_P_VOP = 1,   // bitstream contains an MPEG4 P-VOP
+    MPEG4_B_VOP = 2,   // bitstream contains an MPEG4 B-VOP
+    MPEG4_S_VOP = 3,   // bitstream contains an MPEG4 S-VOP
 } VOP_TYPE;
 
-typedef struct
-{
-  uint32    timestamp_increment;
-  uint32    offset;
-  uint32    size;
-  VOP_TYPE  vopType;
+typedef struct {
+    uint32    timestamp_increment;
+    uint32    offset;
+    uint32    size;
+    VOP_TYPE  vopType;
 } mp4_frame_info_type;
 
-class MP4_Utils {
-private:
-   struct posInfoType {
-      uint8 *bytePtr;
-      uint8 bitPos;
-   };
+class MP4_Utils
+{
+    private:
+        struct posInfoType {
+            uint8 *bytePtr;
+            uint8 bitPos;
+        };
 
-   posInfoType m_posInfo;
-   byte *m_dataBeginPtr;
-   unsigned int vop_time_resolution;
-   bool vop_time_found;
-   uint16 m_SrcWidth, m_SrcHeight;   // Dimensions of the source clip
-public:
-    MP4_Utils();
-   ~MP4_Utils();
-   int16 populateHeightNWidthFromShortHeader(mp4StreamType * psBits);
-   bool parseHeader(mp4StreamType * psBits);
-   static uint32 read_bit_field(posInfoType * posPtr, uint32 size);
-   bool is_notcodec_vop(unsigned char *pbuffer, unsigned int len);
+        posInfoType m_posInfo;
+        byte *m_dataBeginPtr;
+        unsigned int vop_time_resolution;
+        bool vop_time_found;
+        uint16 m_SrcWidth, m_SrcHeight;   // Dimensions of the source clip
+    public:
+        MP4_Utils();
+        ~MP4_Utils();
+        int16 populateHeightNWidthFromShortHeader(mp4StreamType * psBits);
+        bool parseHeader(mp4StreamType * psBits);
+        static uint32 read_bit_field(posInfoType * posPtr, uint32 size);
+        bool is_notcodec_vop(unsigned char *pbuffer, unsigned int len);
 };
 #endif
diff --git a/mm-video-v4l2/vidc/vdec/inc/omx_vdec.h b/mm-video-v4l2/vidc/vdec/inc/omx_vdec.h
index 174e99b..638f75a 100644
--- a/mm-video-v4l2/vidc/vdec/inc/omx_vdec.h
+++ b/mm-video-v4l2/vidc/vdec/inc/omx_vdec.h
@@ -66,7 +66,7 @@
 #endif
 #include <binder/MemoryHeapBase.h>
 #include <ui/ANativeObjectBase.h>
-extern "C"{
+extern "C" {
 #include <utils/Log.h>
 }
 #include <linux/videodev2.h>
@@ -113,29 +113,29 @@
 #include "ts_parser.h"
 #include "vidc_color_converter.h"
 extern "C" {
-  OMX_API void * get_omx_component_factory_fn(void);
+    OMX_API void * get_omx_component_factory_fn(void);
 }
 
 #ifdef _ANDROID_
-    using namespace android;
+using namespace android;
 #ifdef USE_ION
-    class VideoHeap : public MemoryHeapBase
-    {
+class VideoHeap : public MemoryHeapBase
+{
     public:
         VideoHeap(int devicefd, size_t size, void* base,struct ion_handle *handle,int mapfd);
         virtual ~VideoHeap() {}
     private:
-       int m_ion_device_fd;
-       struct ion_handle *m_ion_handle;
-    };
+        int m_ion_device_fd;
+        struct ion_handle *m_ion_handle;
+};
 #else
-    // local pmem heap object
-    class VideoHeap : public MemoryHeapBase
-    {
+// local pmem heap object
+class VideoHeap : public MemoryHeapBase
+{
     public:
         VideoHeap(int fd, size_t size, void* base);
         virtual ~VideoHeap() {}
-    };
+};
 #endif
 #endif // _ANDROID_
 //////////////////////////////////////////////////////////////////////////////
@@ -148,10 +148,10 @@
 //               Macros
 //////////////////////////////////////////////////////////////////////////////
 #define PrintFrameHdr(bufHdr) DEBUG_PRINT("bufHdr %x buf %x size %d TS %d\n",\
-                       (unsigned) bufHdr,\
-                       (unsigned)((OMX_BUFFERHEADERTYPE *)bufHdr)->pBuffer,\
-                       (unsigned)((OMX_BUFFERHEADERTYPE *)bufHdr)->nFilledLen,\
-                       (unsigned)((OMX_BUFFERHEADERTYPE *)bufHdr)->nTimeStamp)
+        (unsigned) bufHdr,\
+        (unsigned)((OMX_BUFFERHEADERTYPE *)bufHdr)->pBuffer,\
+        (unsigned)((OMX_BUFFERHEADERTYPE *)bufHdr)->nFilledLen,\
+        (unsigned)((OMX_BUFFERHEADERTYPE *)bufHdr)->nTimeStamp)
 
 // BitMask Management logic
 #define BITS_PER_BYTE        32
@@ -159,17 +159,17 @@
 #define BITMASK_OFFSET(mIndex) ((mIndex)/BITS_PER_BYTE)
 #define BITMASK_FLAG(mIndex) (1 << ((mIndex) % BITS_PER_BYTE))
 #define BITMASK_CLEAR(mArray,mIndex) (mArray)[BITMASK_OFFSET(mIndex)] \
-        &=  ~(BITMASK_FLAG(mIndex))
+    &=  ~(BITMASK_FLAG(mIndex))
 #define BITMASK_SET(mArray,mIndex)  (mArray)[BITMASK_OFFSET(mIndex)] \
-        |=  BITMASK_FLAG(mIndex)
+    |=  BITMASK_FLAG(mIndex)
 #define BITMASK_PRESENT(mArray,mIndex) ((mArray)[BITMASK_OFFSET(mIndex)] \
         & BITMASK_FLAG(mIndex))
 #define BITMASK_ABSENT(mArray,mIndex) (((mArray)[BITMASK_OFFSET(mIndex)] \
-        & BITMASK_FLAG(mIndex)) == 0x0)
+            & BITMASK_FLAG(mIndex)) == 0x0)
 #define BITMASK_PRESENT(mArray,mIndex) ((mArray)[BITMASK_OFFSET(mIndex)] \
         & BITMASK_FLAG(mIndex))
 #define BITMASK_ABSENT(mArray,mIndex) (((mArray)[BITMASK_OFFSET(mIndex)] \
-        & BITMASK_FLAG(mIndex)) == 0x0)
+            & BITMASK_FLAG(mIndex)) == 0x0)
 
 #define OMX_CORE_CONTROL_CMDQ_SIZE   100
 #define OMX_CORE_QCIF_HEIGHT         144
@@ -193,11 +193,11 @@
 #define DRIVER_EXTRADATA_MASK   0x0000FFFF
 
 #define OMX_INTERLACE_EXTRADATA_SIZE ((sizeof(OMX_OTHER_EXTRADATATYPE) +\
-                                       sizeof(OMX_STREAMINTERLACEFORMAT) + 3)&(~3))
+            sizeof(OMX_STREAMINTERLACEFORMAT) + 3)&(~3))
 #define OMX_FRAMEINFO_EXTRADATA_SIZE ((sizeof(OMX_OTHER_EXTRADATATYPE) +\
-                                       sizeof(OMX_QCOM_EXTRADATA_FRAMEINFO) + 3)&(~3))
+            sizeof(OMX_QCOM_EXTRADATA_FRAMEINFO) + 3)&(~3))
 #define OMX_PORTDEF_EXTRADATA_SIZE ((sizeof(OMX_OTHER_EXTRADATATYPE) +\
-                                       sizeof(OMX_PARAM_PORTDEFINITIONTYPE) + 3)&(~3))
+            sizeof(OMX_PARAM_PORTDEFINITIONTYPE) + 3)&(~3))
 
 //  Define next macro with required values to enable default extradata,
 //    VDEC_EXTRADATA_MB_ERROR_MAP
@@ -207,14 +207,12 @@
 
 //#define DEFAULT_EXTRADATA (OMX_FRAMEINFO_EXTRADATA|OMX_INTERLACE_EXTRADATA)
 
-enum port_indexes
-{
+enum port_indexes {
     OMX_CORE_INPUT_PORT_INDEX        =0,
     OMX_CORE_OUTPUT_PORT_INDEX       =1
 };
 #ifdef USE_ION
-struct vdec_ion
-{
+struct vdec_ion {
     int ion_device_fd;
     struct ion_fd_data fd_ion_data;
     struct ion_allocation_data ion_alloc_data;
@@ -223,18 +221,17 @@
 
 #ifdef _MSM8974_
 struct extradata_buffer_info {
-	int buffer_size;
-	char* uaddr;
-	int count;
-	int size;
+    int buffer_size;
+    char* uaddr;
+    int count;
+    int size;
 #ifdef USE_ION
-	struct vdec_ion ion;
+    struct vdec_ion ion;
 #endif
 };
 #endif
 
-struct video_driver_context
-{
+struct video_driver_context {
     int video_driver_fd;
     enum vdec_codec decoder_format;
     enum vdec_output_fromat output_format;
@@ -260,8 +257,8 @@
     bool idr_only_decoding;
     unsigned disable_dmx;
 #ifdef _MSM8974_
-	struct extradata_buffer_info extradata_info;
-	int num_planes;
+    struct extradata_buffer_info extradata_info;
+    int num_planes;
 #endif
 };
 
@@ -279,712 +276,697 @@
 class omx_vdec: public qc_omx_component
 {
 
-public:
-    omx_vdec();  // constructor
-    virtual ~omx_vdec();  // destructor
+    public:
+        omx_vdec();  // constructor
+        virtual ~omx_vdec();  // destructor
 
-    static int async_message_process (void *context, void* message);
-    static void process_event_cb(void *ctxt,unsigned char id);
+        static int async_message_process (void *context, void* message);
+        static void process_event_cb(void *ctxt,unsigned char id);
 
-    OMX_ERRORTYPE allocate_buffer(
-                                   OMX_HANDLETYPE hComp,
-                                   OMX_BUFFERHEADERTYPE **bufferHdr,
-                                   OMX_U32 port,
-                                   OMX_PTR appData,
-                                   OMX_U32 bytes
-                                  );
+        OMX_ERRORTYPE allocate_buffer(
+                OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE **bufferHdr,
+                OMX_U32 port,
+                OMX_PTR appData,
+                OMX_U32 bytes
+                );
 
 
-    OMX_ERRORTYPE component_deinit(OMX_HANDLETYPE hComp);
+        OMX_ERRORTYPE component_deinit(OMX_HANDLETYPE hComp);
 
-    OMX_ERRORTYPE component_init(OMX_STRING role);
+        OMX_ERRORTYPE component_init(OMX_STRING role);
 
-    OMX_ERRORTYPE component_role_enum(
-                                       OMX_HANDLETYPE hComp,
-                                       OMX_U8 *role,
-                                       OMX_U32 index
-                                      );
+        OMX_ERRORTYPE component_role_enum(
+                OMX_HANDLETYPE hComp,
+                OMX_U8 *role,
+                OMX_U32 index
+                );
 
-    OMX_ERRORTYPE component_tunnel_request(
-                                            OMX_HANDLETYPE hComp,
-                                            OMX_U32 port,
-                                            OMX_HANDLETYPE  peerComponent,
-                                            OMX_U32 peerPort,
-                                            OMX_TUNNELSETUPTYPE *tunnelSetup
-                                           );
+        OMX_ERRORTYPE component_tunnel_request(
+                OMX_HANDLETYPE hComp,
+                OMX_U32 port,
+                OMX_HANDLETYPE  peerComponent,
+                OMX_U32 peerPort,
+                OMX_TUNNELSETUPTYPE *tunnelSetup
+                );
 
-    OMX_ERRORTYPE empty_this_buffer(
-                                     OMX_HANDLETYPE hComp,
-                                     OMX_BUFFERHEADERTYPE *buffer
-                                    );
+        OMX_ERRORTYPE empty_this_buffer(
+                OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE *buffer
+                );
 
 
 
-    OMX_ERRORTYPE fill_this_buffer(
-                                    OMX_HANDLETYPE hComp,
-                                    OMX_BUFFERHEADERTYPE *buffer
-                                   );
+        OMX_ERRORTYPE fill_this_buffer(
+                OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE *buffer
+                );
 
 
-    OMX_ERRORTYPE free_buffer(
-                              OMX_HANDLETYPE hComp,
-                              OMX_U32 port,
-                              OMX_BUFFERHEADERTYPE *buffer
-                              );
+        OMX_ERRORTYPE free_buffer(
+                OMX_HANDLETYPE hComp,
+                OMX_U32 port,
+                OMX_BUFFERHEADERTYPE *buffer
+                );
 
-    OMX_ERRORTYPE get_component_version(
-                                        OMX_HANDLETYPE hComp,
-                                        OMX_STRING componentName,
-                                        OMX_VERSIONTYPE *componentVersion,
-                                        OMX_VERSIONTYPE *specVersion,
-                                        OMX_UUIDTYPE *componentUUID
-                                        );
+        OMX_ERRORTYPE get_component_version(
+                OMX_HANDLETYPE hComp,
+                OMX_STRING componentName,
+                OMX_VERSIONTYPE *componentVersion,
+                OMX_VERSIONTYPE *specVersion,
+                OMX_UUIDTYPE *componentUUID
+                );
 
-    OMX_ERRORTYPE get_config(
-                              OMX_HANDLETYPE hComp,
-                              OMX_INDEXTYPE configIndex,
-                              OMX_PTR configData
-                             );
+        OMX_ERRORTYPE get_config(
+                OMX_HANDLETYPE hComp,
+                OMX_INDEXTYPE configIndex,
+                OMX_PTR configData
+                );
 
-    OMX_ERRORTYPE get_extension_index(
-                                      OMX_HANDLETYPE hComp,
-                                      OMX_STRING paramName,
-                                      OMX_INDEXTYPE *indexType
-                                      );
+        OMX_ERRORTYPE get_extension_index(
+                OMX_HANDLETYPE hComp,
+                OMX_STRING paramName,
+                OMX_INDEXTYPE *indexType
+                );
 
-    OMX_ERRORTYPE get_parameter(OMX_HANDLETYPE hComp,
-                                OMX_INDEXTYPE  paramIndex,
-                                OMX_PTR        paramData);
+        OMX_ERRORTYPE get_parameter(OMX_HANDLETYPE hComp,
+                OMX_INDEXTYPE  paramIndex,
+                OMX_PTR        paramData);
 
-    OMX_ERRORTYPE get_state(OMX_HANDLETYPE hComp,
-                            OMX_STATETYPE *state);
+        OMX_ERRORTYPE get_state(OMX_HANDLETYPE hComp,
+                OMX_STATETYPE *state);
 
 
 
-    OMX_ERRORTYPE send_command(OMX_HANDLETYPE  hComp,
-                               OMX_COMMANDTYPE cmd,
-                               OMX_U32         param1,
-                               OMX_PTR         cmdData);
+        OMX_ERRORTYPE send_command(OMX_HANDLETYPE  hComp,
+                OMX_COMMANDTYPE cmd,
+                OMX_U32         param1,
+                OMX_PTR         cmdData);
 
 
-    OMX_ERRORTYPE set_callbacks(OMX_HANDLETYPE   hComp,
-                                OMX_CALLBACKTYPE *callbacks,
-                                OMX_PTR          appData);
+        OMX_ERRORTYPE set_callbacks(OMX_HANDLETYPE   hComp,
+                OMX_CALLBACKTYPE *callbacks,
+                OMX_PTR          appData);
 
-    OMX_ERRORTYPE set_config(OMX_HANDLETYPE hComp,
-                             OMX_INDEXTYPE  configIndex,
-                             OMX_PTR        configData);
+        OMX_ERRORTYPE set_config(OMX_HANDLETYPE hComp,
+                OMX_INDEXTYPE  configIndex,
+                OMX_PTR        configData);
 
-    OMX_ERRORTYPE set_parameter(OMX_HANDLETYPE hComp,
-                                OMX_INDEXTYPE  paramIndex,
-                                OMX_PTR        paramData);
+        OMX_ERRORTYPE set_parameter(OMX_HANDLETYPE hComp,
+                OMX_INDEXTYPE  paramIndex,
+                OMX_PTR        paramData);
 
-    OMX_ERRORTYPE use_buffer(OMX_HANDLETYPE      hComp,
-                             OMX_BUFFERHEADERTYPE **bufferHdr,
-                             OMX_U32              port,
-                             OMX_PTR              appData,
-                             OMX_U32              bytes,
-                             OMX_U8               *buffer);
+        OMX_ERRORTYPE use_buffer(OMX_HANDLETYPE      hComp,
+                OMX_BUFFERHEADERTYPE **bufferHdr,
+                OMX_U32              port,
+                OMX_PTR              appData,
+                OMX_U32              bytes,
+                OMX_U8               *buffer);
 
-    OMX_ERRORTYPE  use_input_heap_buffers(
-                          OMX_HANDLETYPE            hComp,
-                          OMX_BUFFERHEADERTYPE** bufferHdr,
-                          OMX_U32                   port,
-                          OMX_PTR                   appData,
-                          OMX_U32                   bytes,
-                          OMX_U8*                   buffer);
+        OMX_ERRORTYPE  use_input_heap_buffers(
+                OMX_HANDLETYPE            hComp,
+                OMX_BUFFERHEADERTYPE** bufferHdr,
+                OMX_U32                   port,
+                OMX_PTR                   appData,
+                OMX_U32                   bytes,
+                OMX_U8*                   buffer);
 
-    OMX_ERRORTYPE use_EGL_image(OMX_HANDLETYPE     hComp,
-                                OMX_BUFFERHEADERTYPE **bufferHdr,
-                                OMX_U32              port,
-                                OMX_PTR              appData,
-                                void *               eglImage);
-    void complete_pending_buffer_done_cbs();
-    struct video_driver_context drv_ctx;
+        OMX_ERRORTYPE use_EGL_image(OMX_HANDLETYPE     hComp,
+                OMX_BUFFERHEADERTYPE **bufferHdr,
+                OMX_U32              port,
+                OMX_PTR              appData,
+                void *               eglImage);
+        void complete_pending_buffer_done_cbs();
+        struct video_driver_context drv_ctx;
 #ifdef _MSM8974_
-    OMX_ERRORTYPE allocate_extradata();
-	void free_extradata();
-    int update_resolution(int width, int height, int stride, int scan_lines);
-    OMX_ERRORTYPE is_video_session_supported();
+        OMX_ERRORTYPE allocate_extradata();
+        void free_extradata();
+        int update_resolution(int width, int height, int stride, int scan_lines);
+        OMX_ERRORTYPE is_video_session_supported();
 #endif
-    int  m_pipe_in;
-    int  m_pipe_out;
-    pthread_t msg_thread_id;
-    pthread_t async_thread_id;
-    bool is_component_secure();
+        int  m_pipe_in;
+        int  m_pipe_out;
+        pthread_t msg_thread_id;
+        pthread_t async_thread_id;
+        bool is_component_secure();
 
-private:
-    // Bit Positions
-    enum flags_bit_positions
-    {
-        // Defer transition to IDLE
-        OMX_COMPONENT_IDLE_PENDING            =0x1,
-        // Defer transition to LOADING
-        OMX_COMPONENT_LOADING_PENDING         =0x2,
-        // First  Buffer Pending
-        OMX_COMPONENT_FIRST_BUFFER_PENDING    =0x3,
-        // Second Buffer Pending
-        OMX_COMPONENT_SECOND_BUFFER_PENDING   =0x4,
-        // Defer transition to Enable
-        OMX_COMPONENT_INPUT_ENABLE_PENDING    =0x5,
-        // Defer transition to Enable
-        OMX_COMPONENT_OUTPUT_ENABLE_PENDING   =0x6,
-        // Defer transition to Disable
-        OMX_COMPONENT_INPUT_DISABLE_PENDING   =0x7,
-        // Defer transition to Disable
-        OMX_COMPONENT_OUTPUT_DISABLE_PENDING  =0x8,
-        //defer flush notification
-        OMX_COMPONENT_OUTPUT_FLUSH_PENDING    =0x9,
-        OMX_COMPONENT_INPUT_FLUSH_PENDING    =0xA,
-        OMX_COMPONENT_PAUSE_PENDING          =0xB,
-        OMX_COMPONENT_EXECUTE_PENDING        =0xC,
-        OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING =0xD,
-        OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED=0xE
-    };
+    private:
+        // Bit Positions
+        enum flags_bit_positions {
+            // Defer transition to IDLE
+            OMX_COMPONENT_IDLE_PENDING            =0x1,
+            // Defer transition to LOADING
+            OMX_COMPONENT_LOADING_PENDING         =0x2,
+            // First  Buffer Pending
+            OMX_COMPONENT_FIRST_BUFFER_PENDING    =0x3,
+            // Second Buffer Pending
+            OMX_COMPONENT_SECOND_BUFFER_PENDING   =0x4,
+            // Defer transition to Enable
+            OMX_COMPONENT_INPUT_ENABLE_PENDING    =0x5,
+            // Defer transition to Enable
+            OMX_COMPONENT_OUTPUT_ENABLE_PENDING   =0x6,
+            // Defer transition to Disable
+            OMX_COMPONENT_INPUT_DISABLE_PENDING   =0x7,
+            // Defer transition to Disable
+            OMX_COMPONENT_OUTPUT_DISABLE_PENDING  =0x8,
+            //defer flush notification
+            OMX_COMPONENT_OUTPUT_FLUSH_PENDING    =0x9,
+            OMX_COMPONENT_INPUT_FLUSH_PENDING    =0xA,
+            OMX_COMPONENT_PAUSE_PENDING          =0xB,
+            OMX_COMPONENT_EXECUTE_PENDING        =0xC,
+            OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING =0xD,
+            OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED=0xE
+        };
 
-    // Deferred callback identifiers
-    enum
-    {
-        //Event Callbacks from the vdec component thread context
-        OMX_COMPONENT_GENERATE_EVENT       = 0x1,
-        //Buffer Done callbacks from the vdec component thread context
-        OMX_COMPONENT_GENERATE_BUFFER_DONE = 0x2,
-        //Frame Done callbacks from the vdec component thread context
-        OMX_COMPONENT_GENERATE_FRAME_DONE  = 0x3,
-        //Buffer Done callbacks from the vdec component thread context
-        OMX_COMPONENT_GENERATE_FTB         = 0x4,
-        //Frame Done callbacks from the vdec component thread context
-        OMX_COMPONENT_GENERATE_ETB         = 0x5,
-        //Command
-        OMX_COMPONENT_GENERATE_COMMAND     = 0x6,
-        //Push-Pending Buffers
-        OMX_COMPONENT_PUSH_PENDING_BUFS    = 0x7,
-        // Empty Buffer Done callbacks
-        OMX_COMPONENT_GENERATE_EBD         = 0x8,
-        //Flush Event Callbacks from the vdec component thread context
-        OMX_COMPONENT_GENERATE_EVENT_FLUSH       = 0x9,
-        OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH = 0x0A,
-        OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH = 0x0B,
-        OMX_COMPONENT_GENERATE_FBD = 0xc,
-        OMX_COMPONENT_GENERATE_START_DONE = 0xD,
-        OMX_COMPONENT_GENERATE_PAUSE_DONE = 0xE,
-        OMX_COMPONENT_GENERATE_RESUME_DONE = 0xF,
-        OMX_COMPONENT_GENERATE_STOP_DONE = 0x10,
-        OMX_COMPONENT_GENERATE_HARDWARE_ERROR = 0x11,
-        OMX_COMPONENT_GENERATE_ETB_ARBITRARY = 0x12,
-        OMX_COMPONENT_GENERATE_PORT_RECONFIG = 0x13,
-        OMX_COMPONENT_GENERATE_EOS_DONE = 0x14,
-        OMX_COMPONENT_GENERATE_INFO_PORT_RECONFIG = 0x15,
-        OMX_COMPONENT_GENERATE_INFO_FIELD_DROPPED = 0x16,
-        OMX_COMPONENT_GENERATE_UNSUPPORTED_SETTING = 0x17,
-    };
+        // Deferred callback identifiers
+        enum {
+            //Event Callbacks from the vdec component thread context
+            OMX_COMPONENT_GENERATE_EVENT       = 0x1,
+            //Buffer Done callbacks from the vdec component thread context
+            OMX_COMPONENT_GENERATE_BUFFER_DONE = 0x2,
+            //Frame Done callbacks from the vdec component thread context
+            OMX_COMPONENT_GENERATE_FRAME_DONE  = 0x3,
+            //Buffer Done callbacks from the vdec component thread context
+            OMX_COMPONENT_GENERATE_FTB         = 0x4,
+            //Frame Done callbacks from the vdec component thread context
+            OMX_COMPONENT_GENERATE_ETB         = 0x5,
+            //Command
+            OMX_COMPONENT_GENERATE_COMMAND     = 0x6,
+            //Push-Pending Buffers
+            OMX_COMPONENT_PUSH_PENDING_BUFS    = 0x7,
+            // Empty Buffer Done callbacks
+            OMX_COMPONENT_GENERATE_EBD         = 0x8,
+            //Flush Event Callbacks from the vdec component thread context
+            OMX_COMPONENT_GENERATE_EVENT_FLUSH       = 0x9,
+            OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH = 0x0A,
+            OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH = 0x0B,
+            OMX_COMPONENT_GENERATE_FBD = 0xc,
+            OMX_COMPONENT_GENERATE_START_DONE = 0xD,
+            OMX_COMPONENT_GENERATE_PAUSE_DONE = 0xE,
+            OMX_COMPONENT_GENERATE_RESUME_DONE = 0xF,
+            OMX_COMPONENT_GENERATE_STOP_DONE = 0x10,
+            OMX_COMPONENT_GENERATE_HARDWARE_ERROR = 0x11,
+            OMX_COMPONENT_GENERATE_ETB_ARBITRARY = 0x12,
+            OMX_COMPONENT_GENERATE_PORT_RECONFIG = 0x13,
+            OMX_COMPONENT_GENERATE_EOS_DONE = 0x14,
+            OMX_COMPONENT_GENERATE_INFO_PORT_RECONFIG = 0x15,
+            OMX_COMPONENT_GENERATE_INFO_FIELD_DROPPED = 0x16,
+            OMX_COMPONENT_GENERATE_UNSUPPORTED_SETTING = 0x17,
+        };
 
-    enum vc1_profile_type
-    {
-        VC1_SP_MP_RCV = 1,
-        VC1_AP = 2
-    };
+        enum vc1_profile_type {
+            VC1_SP_MP_RCV = 1,
+            VC1_AP = 2
+        };
 
 #ifdef _MSM8974_
-    enum v4l2_ports
-    {
-        CAPTURE_PORT,
-        OUTPUT_PORT,
-        MAX_PORT
-    };
+        enum v4l2_ports {
+            CAPTURE_PORT,
+            OUTPUT_PORT,
+            MAX_PORT
+        };
 #endif
 
-    struct omx_event
-    {
-        unsigned param1;
-        unsigned param2;
-        unsigned id;
-    };
+        struct omx_event {
+            unsigned param1;
+            unsigned param2;
+            unsigned id;
+        };
 
-    struct omx_cmd_queue
-    {
-        omx_event m_q[OMX_CORE_CONTROL_CMDQ_SIZE];
-        unsigned m_read;
-        unsigned m_write;
-        unsigned m_size;
+        struct omx_cmd_queue {
+            omx_event m_q[OMX_CORE_CONTROL_CMDQ_SIZE];
+            unsigned m_read;
+            unsigned m_write;
+            unsigned m_size;
 
-        omx_cmd_queue();
-        ~omx_cmd_queue();
-        bool insert_entry(unsigned p1, unsigned p2, unsigned id);
-        bool pop_entry(unsigned *p1,unsigned *p2, unsigned *id);
-        // get msgtype of the first ele from the queue
-        unsigned get_q_msg_type();
+            omx_cmd_queue();
+            ~omx_cmd_queue();
+            bool insert_entry(unsigned p1, unsigned p2, unsigned id);
+            bool pop_entry(unsigned *p1,unsigned *p2, unsigned *id);
+            // get msgtype of the first ele from the queue
+            unsigned get_q_msg_type();
 
-    };
+        };
 
 #ifdef _ANDROID_
-    struct ts_entry
-    {
-        OMX_TICKS timestamp;
-        bool valid;
-    };
+        struct ts_entry {
+            OMX_TICKS timestamp;
+            bool valid;
+        };
 
-    struct ts_arr_list
-    {
-        ts_entry m_ts_arr_list[MAX_NUM_INPUT_OUTPUT_BUFFERS];
+        struct ts_arr_list {
+            ts_entry m_ts_arr_list[MAX_NUM_INPUT_OUTPUT_BUFFERS];
 
-        ts_arr_list();
-        ~ts_arr_list();
+            ts_arr_list();
+            ~ts_arr_list();
 
-        bool insert_ts(OMX_TICKS ts);
-        bool pop_min_ts(OMX_TICKS &ts);
-        bool reset_ts_list();
-    };
+            bool insert_ts(OMX_TICKS ts);
+            bool pop_min_ts(OMX_TICKS &ts);
+            bool reset_ts_list();
+        };
 #endif
 
-    struct desc_buffer_hdr
-    {
-        OMX_U8 *buf_addr;
-        OMX_U32 desc_data_size;
-    };
-    bool allocate_done(void);
-    bool allocate_input_done(void);
-    bool allocate_output_done(void);
+        struct desc_buffer_hdr {
+            OMX_U8 *buf_addr;
+            OMX_U32 desc_data_size;
+        };
+        bool allocate_done(void);
+        bool allocate_input_done(void);
+        bool allocate_output_done(void);
 
-    OMX_ERRORTYPE free_input_buffer(OMX_BUFFERHEADERTYPE *bufferHdr);
-    OMX_ERRORTYPE free_input_buffer(unsigned int bufferindex,
-                                    OMX_BUFFERHEADERTYPE *pmem_bufferHdr);
-    OMX_ERRORTYPE free_output_buffer(OMX_BUFFERHEADERTYPE *bufferHdr);
-    void free_output_buffer_header();
-    void free_input_buffer_header();
+        OMX_ERRORTYPE free_input_buffer(OMX_BUFFERHEADERTYPE *bufferHdr);
+        OMX_ERRORTYPE free_input_buffer(unsigned int bufferindex,
+                OMX_BUFFERHEADERTYPE *pmem_bufferHdr);
+        OMX_ERRORTYPE free_output_buffer(OMX_BUFFERHEADERTYPE *bufferHdr);
+        void free_output_buffer_header();
+        void free_input_buffer_header();
 
-    OMX_ERRORTYPE allocate_input_heap_buffer(OMX_HANDLETYPE       hComp,
-                                             OMX_BUFFERHEADERTYPE **bufferHdr,
-                                             OMX_U32              port,
-                                             OMX_PTR              appData,
-                                             OMX_U32              bytes);
+        OMX_ERRORTYPE allocate_input_heap_buffer(OMX_HANDLETYPE       hComp,
+                OMX_BUFFERHEADERTYPE **bufferHdr,
+                OMX_U32              port,
+                OMX_PTR              appData,
+                OMX_U32              bytes);
 
 
-    OMX_ERRORTYPE allocate_input_buffer(OMX_HANDLETYPE       hComp,
-                                        OMX_BUFFERHEADERTYPE **bufferHdr,
-                                        OMX_U32              port,
-                                        OMX_PTR              appData,
-                                        OMX_U32              bytes);
+        OMX_ERRORTYPE allocate_input_buffer(OMX_HANDLETYPE       hComp,
+                OMX_BUFFERHEADERTYPE **bufferHdr,
+                OMX_U32              port,
+                OMX_PTR              appData,
+                OMX_U32              bytes);
 
-    OMX_ERRORTYPE allocate_output_buffer(OMX_HANDLETYPE       hComp,
-                                         OMX_BUFFERHEADERTYPE **bufferHdr,
-                                         OMX_U32 port,OMX_PTR appData,
-                                         OMX_U32              bytes);
-    OMX_ERRORTYPE use_output_buffer(OMX_HANDLETYPE hComp,
-                                   OMX_BUFFERHEADERTYPE   **bufferHdr,
-                                   OMX_U32                port,
-                                   OMX_PTR                appData,
-                                   OMX_U32                bytes,
-                                   OMX_U8                 *buffer);
+        OMX_ERRORTYPE allocate_output_buffer(OMX_HANDLETYPE       hComp,
+                OMX_BUFFERHEADERTYPE **bufferHdr,
+                OMX_U32 port,OMX_PTR appData,
+                OMX_U32              bytes);
+        OMX_ERRORTYPE use_output_buffer(OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE   **bufferHdr,
+                OMX_U32                port,
+                OMX_PTR                appData,
+                OMX_U32                bytes,
+                OMX_U8                 *buffer);
 #ifdef MAX_RES_720P
-    OMX_ERRORTYPE get_supported_profile_level_for_720p(OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType);
+        OMX_ERRORTYPE get_supported_profile_level_for_720p(OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType);
 #endif
 #ifdef MAX_RES_1080P
-    OMX_ERRORTYPE get_supported_profile_level_for_1080p(OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType);
+        OMX_ERRORTYPE get_supported_profile_level_for_1080p(OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType);
 #endif
 
-    OMX_ERRORTYPE allocate_desc_buffer(OMX_U32 index);
-    OMX_ERRORTYPE allocate_output_headers();
-    bool execute_omx_flush(OMX_U32);
-    bool execute_output_flush();
-    bool execute_input_flush();
-    OMX_ERRORTYPE empty_buffer_done(OMX_HANDLETYPE hComp,
-                                    OMX_BUFFERHEADERTYPE * buffer);
+        OMX_ERRORTYPE allocate_desc_buffer(OMX_U32 index);
+        OMX_ERRORTYPE allocate_output_headers();
+        bool execute_omx_flush(OMX_U32);
+        bool execute_output_flush();
+        bool execute_input_flush();
+        OMX_ERRORTYPE empty_buffer_done(OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE * buffer);
 
-    OMX_ERRORTYPE fill_buffer_done(OMX_HANDLETYPE hComp,
-                                    OMX_BUFFERHEADERTYPE * buffer);
-    OMX_ERRORTYPE empty_this_buffer_proxy(OMX_HANDLETYPE       hComp,
-                                        OMX_BUFFERHEADERTYPE *buffer);
+        OMX_ERRORTYPE fill_buffer_done(OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE * buffer);
+        OMX_ERRORTYPE empty_this_buffer_proxy(OMX_HANDLETYPE       hComp,
+                OMX_BUFFERHEADERTYPE *buffer);
 
-    OMX_ERRORTYPE empty_this_buffer_proxy_arbitrary(OMX_HANDLETYPE hComp,
-                                                   OMX_BUFFERHEADERTYPE *buffer
-                                                   );
+        OMX_ERRORTYPE empty_this_buffer_proxy_arbitrary(OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE *buffer
+                );
 
-    OMX_ERRORTYPE push_input_buffer (OMX_HANDLETYPE hComp);
-    OMX_ERRORTYPE push_input_sc_codec (OMX_HANDLETYPE hComp);
-    OMX_ERRORTYPE push_input_h264 (OMX_HANDLETYPE hComp);
-    OMX_ERRORTYPE push_input_vc1 (OMX_HANDLETYPE hComp);
+        OMX_ERRORTYPE push_input_buffer (OMX_HANDLETYPE hComp);
+        OMX_ERRORTYPE push_input_sc_codec (OMX_HANDLETYPE hComp);
+        OMX_ERRORTYPE push_input_h264 (OMX_HANDLETYPE hComp);
+        OMX_ERRORTYPE push_input_vc1 (OMX_HANDLETYPE hComp);
 
-    OMX_ERRORTYPE fill_this_buffer_proxy(OMX_HANDLETYPE       hComp,
-                                       OMX_BUFFERHEADERTYPE *buffer);
-    bool release_done();
+        OMX_ERRORTYPE fill_this_buffer_proxy(OMX_HANDLETYPE       hComp,
+                OMX_BUFFERHEADERTYPE *buffer);
+        bool release_done();
 
-    bool release_output_done();
-    bool release_input_done();
-    OMX_ERRORTYPE get_buffer_req(vdec_allocatorproperty *buffer_prop);
-    OMX_ERRORTYPE set_buffer_req(vdec_allocatorproperty *buffer_prop);
-    OMX_ERRORTYPE start_port_reconfig();
-    OMX_ERRORTYPE update_picture_resolution();
-    int stream_off(OMX_U32 port);
-    void adjust_timestamp(OMX_S64 &act_timestamp);
-    void set_frame_rate(OMX_S64 act_timestamp);
-    void handle_extradata_secure(OMX_BUFFERHEADERTYPE *p_buf_hdr);
-    void handle_extradata(OMX_BUFFERHEADERTYPE *p_buf_hdr);
-    void print_debug_extradata(OMX_OTHER_EXTRADATATYPE *extra);
+        bool release_output_done();
+        bool release_input_done();
+        OMX_ERRORTYPE get_buffer_req(vdec_allocatorproperty *buffer_prop);
+        OMX_ERRORTYPE set_buffer_req(vdec_allocatorproperty *buffer_prop);
+        OMX_ERRORTYPE start_port_reconfig();
+        OMX_ERRORTYPE update_picture_resolution();
+        int stream_off(OMX_U32 port);
+        void adjust_timestamp(OMX_S64 &act_timestamp);
+        void set_frame_rate(OMX_S64 act_timestamp);
+        void handle_extradata_secure(OMX_BUFFERHEADERTYPE *p_buf_hdr);
+        void handle_extradata(OMX_BUFFERHEADERTYPE *p_buf_hdr);
+        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);
-    void append_frame_info_extradata(OMX_OTHER_EXTRADATATYPE *extra,
-                               OMX_U32 num_conceal_mb,
-                               OMX_U32 picture_type,
-                               OMX_U32 frame_rate,
-                               struct msm_vidc_panscan_window_payload *panscan_payload,
-                               struct vdec_aspectratioinfo *aspect_ratio_info);
+        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);
+        void append_frame_info_extradata(OMX_OTHER_EXTRADATATYPE *extra,
+                OMX_U32 num_conceal_mb,
+                OMX_U32 picture_type,
+                OMX_U32 frame_rate,
+                struct msm_vidc_panscan_window_payload *panscan_payload,
+                struct vdec_aspectratioinfo *aspect_ratio_info);
 #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);
+        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,
-                               OMX_U32 picture_type,
-                               OMX_S64 timestamp,
-                               OMX_U32 frame_rate,
-                               struct vdec_aspectratioinfo *aspect_ratio_info);
-    void fill_aspect_ratio_info(struct vdec_aspectratioinfo *aspect_ratio_info,
-                                OMX_QCOM_EXTRADATA_FRAMEINFO *frame_info);
-    void append_terminator_extradata(OMX_OTHER_EXTRADATATYPE *extra);
-    OMX_ERRORTYPE update_portdef(OMX_PARAM_PORTDEFINITIONTYPE *portDefn);
-    void append_portdef_extradata(OMX_OTHER_EXTRADATATYPE *extra);
-    void append_extn_extradata(OMX_OTHER_EXTRADATATYPE *extra, OMX_OTHER_EXTRADATATYPE *p_extn);
-    void append_user_extradata(OMX_OTHER_EXTRADATATYPE *extra, OMX_OTHER_EXTRADATATYPE *p_user);
-    void insert_demux_addr_offset(OMX_U32 address_offset);
-    void extract_demux_addr_offsets(OMX_BUFFERHEADERTYPE *buf_hdr);
-    OMX_ERRORTYPE handle_demux_data(OMX_BUFFERHEADERTYPE *buf_hdr);
-    OMX_U32 count_MB_in_extradata(OMX_OTHER_EXTRADATATYPE *extra);
+        void append_frame_info_extradata(OMX_OTHER_EXTRADATATYPE *extra,
+                OMX_U32 num_conceal_mb,
+                OMX_U32 picture_type,
+                OMX_S64 timestamp,
+                OMX_U32 frame_rate,
+                struct vdec_aspectratioinfo *aspect_ratio_info);
+        void fill_aspect_ratio_info(struct vdec_aspectratioinfo *aspect_ratio_info,
+                OMX_QCOM_EXTRADATA_FRAMEINFO *frame_info);
+        void append_terminator_extradata(OMX_OTHER_EXTRADATATYPE *extra);
+        OMX_ERRORTYPE update_portdef(OMX_PARAM_PORTDEFINITIONTYPE *portDefn);
+        void append_portdef_extradata(OMX_OTHER_EXTRADATATYPE *extra);
+        void append_extn_extradata(OMX_OTHER_EXTRADATATYPE *extra, OMX_OTHER_EXTRADATATYPE *p_extn);
+        void append_user_extradata(OMX_OTHER_EXTRADATATYPE *extra, OMX_OTHER_EXTRADATATYPE *p_user);
+        void insert_demux_addr_offset(OMX_U32 address_offset);
+        void extract_demux_addr_offsets(OMX_BUFFERHEADERTYPE *buf_hdr);
+        OMX_ERRORTYPE handle_demux_data(OMX_BUFFERHEADERTYPE *buf_hdr);
+        OMX_U32 count_MB_in_extradata(OMX_OTHER_EXTRADATATYPE *extra);
 
-    bool align_pmem_buffers(int pmem_fd, OMX_U32 buffer_size,
-                            OMX_U32 alignment);
+        bool align_pmem_buffers(int pmem_fd, OMX_U32 buffer_size,
+                OMX_U32 alignment);
 #ifdef USE_ION
-    int alloc_map_ion_memory(OMX_U32 buffer_size,
-              OMX_U32 alignment, struct ion_allocation_data *alloc_data,
-              struct ion_fd_data *fd_data,int flag);
-    void free_ion_memory(struct vdec_ion *buf_ion_info);
+        int alloc_map_ion_memory(OMX_U32 buffer_size,
+                OMX_U32 alignment, struct ion_allocation_data *alloc_data,
+                struct ion_fd_data *fd_data,int flag);
+        void free_ion_memory(struct vdec_ion *buf_ion_info);
 #endif
 
 
-    OMX_ERRORTYPE send_command_proxy(OMX_HANDLETYPE  hComp,
-                                     OMX_COMMANDTYPE cmd,
-                                     OMX_U32         param1,
-                                     OMX_PTR         cmdData);
-    bool post_event( unsigned int p1,
-                     unsigned int p2,
-                     unsigned int id
-                    );
-    inline int clip2(int x)
-    {
-        x = x -1;
-        x = x | x >> 1;
-        x = x | x >> 2;
-        x = x | x >> 4;
-        x = x | x >> 16;
-        x = x + 1;
-        return x;
-    }
+        OMX_ERRORTYPE send_command_proxy(OMX_HANDLETYPE  hComp,
+                OMX_COMMANDTYPE cmd,
+                OMX_U32         param1,
+                OMX_PTR         cmdData);
+        bool post_event( unsigned int p1,
+                unsigned int p2,
+                unsigned int id
+                   );
+        inline int clip2(int x) {
+            x = x -1;
+            x = x | x >> 1;
+            x = x | x >> 2;
+            x = x | x >> 4;
+            x = x | x >> 16;
+            x = x + 1;
+            return x;
+        }
 
 #ifdef MAX_RES_1080P
-    OMX_ERRORTYPE vdec_alloc_h264_mv();
-    void vdec_dealloc_h264_mv();
-    OMX_ERRORTYPE vdec_alloc_meta_buffers();
-    void vdec_dealloc_meta_buffers();
+        OMX_ERRORTYPE vdec_alloc_h264_mv();
+        void vdec_dealloc_h264_mv();
+        OMX_ERRORTYPE vdec_alloc_meta_buffers();
+        void vdec_dealloc_meta_buffers();
 #endif
 
-    inline void omx_report_error ()
-    {
-        if (m_cb.EventHandler && !m_error_propogated)
-        {
-            ALOGE("\nERROR: Sending OMX_EventError to Client");
-            m_error_propogated = true;
-            m_cb.EventHandler(&m_cmp,m_app_data,
-                  OMX_EventError,OMX_ErrorHardware,0,NULL);
+        inline void omx_report_error () {
+            if (m_cb.EventHandler && !m_error_propogated) {
+                ALOGE("\nERROR: Sending OMX_EventError to Client");
+                m_error_propogated = true;
+                m_cb.EventHandler(&m_cmp,m_app_data,
+                        OMX_EventError,OMX_ErrorHardware,0,NULL);
+            }
         }
-    }
 
-    inline void omx_report_unsupported_setting ()
-    {
-        if (m_cb.EventHandler && !m_error_propogated)
-        {
-            DEBUG_PRINT_ERROR(
-               "\nERROR: Sending OMX_ErrorUnsupportedSetting to Client");
-            m_error_propogated = true;
-            m_cb.EventHandler(&m_cmp,m_app_data,
-                  OMX_EventError,OMX_ErrorUnsupportedSetting,0,NULL);
+        inline void omx_report_unsupported_setting () {
+            if (m_cb.EventHandler && !m_error_propogated) {
+                DEBUG_PRINT_ERROR(
+                        "\nERROR: Sending OMX_ErrorUnsupportedSetting to Client");
+                m_error_propogated = true;
+                m_cb.EventHandler(&m_cmp,m_app_data,
+                        OMX_EventError,OMX_ErrorUnsupportedSetting,0,NULL);
+            }
         }
-    }
 #ifdef _ANDROID_
-    OMX_ERRORTYPE createDivxDrmContext();
+        OMX_ERRORTYPE createDivxDrmContext();
 #endif //_ANDROID_
 #if defined (_ANDROID_HONEYCOMB_) || defined (_ANDROID_ICS_)
-    OMX_ERRORTYPE use_android_native_buffer(OMX_IN OMX_HANDLETYPE hComp, OMX_PTR data);
+        OMX_ERRORTYPE use_android_native_buffer(OMX_IN OMX_HANDLETYPE hComp, OMX_PTR data);
 #endif
 #if defined (_ANDROID_ICS_)
-    struct nativebuffer{
-        native_handle_t *nativehandle;
-	private_handle_t *privatehandle;
-        int inuse;
-    };
-    nativebuffer native_buffer[MAX_NUM_INPUT_OUTPUT_BUFFERS];
+        struct nativebuffer {
+            native_handle_t *nativehandle;
+            private_handle_t *privatehandle;
+            int inuse;
+        };
+        nativebuffer native_buffer[MAX_NUM_INPUT_OUTPUT_BUFFERS];
 #endif
 
 
-    //*************************************************************
-    //*******************MEMBER VARIABLES *************************
-    //*************************************************************
-    pthread_mutex_t       m_lock;
-    pthread_mutex_t       c_lock;
-    //sem to handle the minimum procesing of commands
-    sem_t                 m_cmd_lock;
-    bool              m_error_propogated;
-    // compression format
-    OMX_VIDEO_CODINGTYPE eCompressionFormat;
-    // OMX State
-    OMX_STATETYPE m_state;
-    // Application data
-    OMX_PTR m_app_data;
-    // Application callbacks
-    OMX_CALLBACKTYPE m_cb;
-    OMX_PRIORITYMGMTTYPE m_priority_mgm ;
-    OMX_PARAM_BUFFERSUPPLIERTYPE m_buffer_supplier;
-    // fill this buffer queue
-    omx_cmd_queue         m_ftb_q;
-    // Command Q for rest of the events
-    omx_cmd_queue         m_cmd_q;
-    omx_cmd_queue         m_etb_q;
-    // Input memory pointer
-    OMX_BUFFERHEADERTYPE  *m_inp_mem_ptr;
-    // Output memory pointer
-    OMX_BUFFERHEADERTYPE  *m_out_mem_ptr;
-    // number of input bitstream error frame count
-    unsigned int m_inp_err_count;
+        //*************************************************************
+        //*******************MEMBER VARIABLES *************************
+        //*************************************************************
+        pthread_mutex_t       m_lock;
+        pthread_mutex_t       c_lock;
+        //sem to handle the minimum procesing of commands
+        sem_t                 m_cmd_lock;
+        bool              m_error_propogated;
+        // compression format
+        OMX_VIDEO_CODINGTYPE eCompressionFormat;
+        // OMX State
+        OMX_STATETYPE m_state;
+        // Application data
+        OMX_PTR m_app_data;
+        // Application callbacks
+        OMX_CALLBACKTYPE m_cb;
+        OMX_PRIORITYMGMTTYPE m_priority_mgm ;
+        OMX_PARAM_BUFFERSUPPLIERTYPE m_buffer_supplier;
+        // fill this buffer queue
+        omx_cmd_queue         m_ftb_q;
+        // Command Q for rest of the events
+        omx_cmd_queue         m_cmd_q;
+        omx_cmd_queue         m_etb_q;
+        // Input memory pointer
+        OMX_BUFFERHEADERTYPE  *m_inp_mem_ptr;
+        // Output memory pointer
+        OMX_BUFFERHEADERTYPE  *m_out_mem_ptr;
+        // number of input bitstream error frame count
+        unsigned int m_inp_err_count;
 #ifdef _ANDROID_
-    // Timestamp list
-    ts_arr_list           m_timestamp_list;
+        // Timestamp list
+        ts_arr_list           m_timestamp_list;
 #endif
 
-    bool input_flush_progress;
-    bool output_flush_progress;
-    bool input_use_buffer;
-    bool output_use_buffer;
-    bool ouput_egl_buffers;
-    OMX_BOOL m_use_output_pmem;
-    OMX_BOOL m_out_mem_region_smi;
-    OMX_BOOL m_out_pvt_entry_pmem;
+        bool input_flush_progress;
+        bool output_flush_progress;
+        bool input_use_buffer;
+        bool output_use_buffer;
+        bool ouput_egl_buffers;
+        OMX_BOOL m_use_output_pmem;
+        OMX_BOOL m_out_mem_region_smi;
+        OMX_BOOL m_out_pvt_entry_pmem;
 
-    int pending_input_buffers;
-    int pending_output_buffers;
-    // bitmask array size for output side
-    unsigned int m_out_bm_count;
-    // bitmask array size for input side
-    unsigned int m_inp_bm_count;
-    //Input port Populated
-    OMX_BOOL m_inp_bPopulated;
-    //Output port Populated
-    OMX_BOOL m_out_bPopulated;
-    // encapsulate the waiting states.
-    unsigned int m_flags;
+        int pending_input_buffers;
+        int pending_output_buffers;
+        // bitmask array size for output side
+        unsigned int m_out_bm_count;
+        // bitmask array size for input side
+        unsigned int m_inp_bm_count;
+        //Input port Populated
+        OMX_BOOL m_inp_bPopulated;
+        //Output port Populated
+        OMX_BOOL m_out_bPopulated;
+        // encapsulate the waiting states.
+        unsigned int m_flags;
 
 #ifdef _ANDROID_
-    // Heap pointer to frame buffers
-    struct vidc_heap
-    {
-        sp<MemoryHeapBase>    video_heap_ptr;
-    };
-    struct vidc_heap *m_heap_ptr;
-    unsigned int m_heap_count;
-#endif //_ANDROID_
-    // store I/P PORT state
-    OMX_BOOL m_inp_bEnabled;
-    // store O/P PORT state
-    OMX_BOOL m_out_bEnabled;
-    OMX_U32 m_in_alloc_cnt;
-    OMX_U8                m_cRole[OMX_MAX_STRINGNAME_SIZE];
-    // Platform specific details
-    OMX_QCOM_PLATFORM_PRIVATE_LIST      *m_platform_list;
-    OMX_QCOM_PLATFORM_PRIVATE_ENTRY     *m_platform_entry;
-    OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *m_pmem_info;
-    // SPS+PPS sent as part of set_config
-    OMX_VENDOR_EXTRADATATYPE            m_vendor_config;
-
-    /*Variables for arbitrary Byte parsing support*/
-    frame_parse m_frame_parser;
-    omx_cmd_queue m_input_pending_q;
-    omx_cmd_queue m_input_free_q;
-    bool arbitrary_bytes;
-    OMX_BUFFERHEADERTYPE  h264_scratch;
-    OMX_BUFFERHEADERTYPE  *psource_frame;
-    OMX_BUFFERHEADERTYPE  *pdest_frame;
-    OMX_BUFFERHEADERTYPE  *m_inp_heap_ptr;
-    OMX_BUFFERHEADERTYPE  **m_phdr_pmem_ptr;
-    unsigned int m_heap_inp_bm_count;
-    codec_type codec_type_parse;
-    bool first_frame_meta;
-    unsigned frame_count;
-    unsigned nal_count;
-    unsigned nal_length;
-    bool look_ahead_nal;
-    int first_frame;
-    unsigned char *first_buffer;
-    int first_frame_size;
-    unsigned char m_hwdevice_name[80];
-    FILE *m_device_file_ptr;
-    enum vc1_profile_type m_vc1_profile;
-    OMX_S64 h264_last_au_ts;
-    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;
-    OMX_U32 frm_int;
-
-    struct vdec_allocatorproperty op_buf_rcnfg;
-    bool in_reconfig;
-    OMX_NATIVE_WINDOWTYPE m_display_id;
-    h264_stream_parser *h264_parser;
-    OMX_U32 client_extradata;
-#ifdef _ANDROID_
-    bool m_debug_timestamp;
-    bool perf_flag;
-    OMX_U32 proc_frms, latency;
-    perf_metrics fps_metrics;
-    perf_metrics dec_time;
-    bool m_enable_android_native_buffers;
-    bool m_use_android_native_buffers;
-    bool m_debug_extradata;
-    bool m_debug_concealedmb;
-    bool m_reject_avc_1080p_mp;
-#endif
-#ifdef MAX_RES_1080P
-    MP4_Utils mp4_headerparser;
-#endif
-
-    struct h264_mv_buffer{
-        unsigned char* buffer;
-        int size;
-        int count;
-        int pmem_fd;
-        int offset;
-    };
-    h264_mv_buffer h264_mv_buff;
-
-    struct meta_buffer{
-        unsigned char* buffer;
-        int size;
-        int count;
-        int pmem_fd;
-        int pmem_fd_iommu;
-        int offset;
-    };
-    meta_buffer meta_buff;
-	extra_data_handler extra_data_handle;
-#ifdef _ANDROID_
-    DivXDrmDecrypt* iDivXDrmDecrypt;
-#endif //_ANDROID_
-    OMX_PARAM_PORTDEFINITIONTYPE m_port_def;
-    omx_time_stamp_reorder time_stamp_dts;
-    desc_buffer_hdr *m_desc_buffer_ptr;
-    bool secure_mode;
-    bool external_meta_buffer;
-    bool external_meta_buffer_iommu;
-    OMX_QCOM_EXTRADATA_FRAMEINFO *m_extradata;
-    bool codec_config_flag;
-#ifdef _MSM8974_
-    int capture_capability;
-    int output_capability;
-    bool streaming[MAX_PORT];
-    OMX_CONFIG_RECTTYPE rectangle;
-	int prev_n_filled_len;
-#endif
-    bool m_power_hinted;
-    OMX_ERRORTYPE power_module_register();
-    OMX_ERRORTYPE power_module_deregister();
-    bool msg_thread_created;
-    bool async_thread_created;
-
-    OMX_VIDEO_PARAM_PROFILELEVELTYPE m_profile_lvl;
-    OMX_U32 m_profile;
-
-    unsigned int m_fill_output_msg;
-    bool client_set_fps;
-    class allocate_color_convert_buf {
-    public:
-        allocate_color_convert_buf();
-        ~allocate_color_convert_buf();
-        void set_vdec_client(void *);
-        void update_client();
-        bool set_color_format(OMX_COLOR_FORMATTYPE dest_color_format);
-        bool get_color_format(OMX_COLOR_FORMATTYPE &dest_color_format);
-        bool update_buffer_req();
-        bool get_buffer_req(unsigned int &buffer_size);
-        OMX_BUFFERHEADERTYPE* get_il_buf_hdr();
-        OMX_BUFFERHEADERTYPE* get_il_buf_hdr(OMX_BUFFERHEADERTYPE *input_hdr);
-        OMX_BUFFERHEADERTYPE* get_dr_buf_hdr(OMX_BUFFERHEADERTYPE *input_hdr);
-        OMX_BUFFERHEADERTYPE* convert(OMX_BUFFERHEADERTYPE *header);
-        OMX_BUFFERHEADERTYPE* queue_buffer(OMX_BUFFERHEADERTYPE *header);
-        OMX_ERRORTYPE allocate_buffers_color_convert(OMX_HANDLETYPE hComp,
-             OMX_BUFFERHEADERTYPE **bufferHdr,OMX_U32 port,OMX_PTR appData,
-             OMX_U32 bytes);
-        OMX_ERRORTYPE free_output_buffer(OMX_BUFFERHEADERTYPE *bufferHdr);
-    private:
-        #define MAX_COUNT 32
-        omx_vdec *omx;
-        bool enabled;
-        OMX_COLOR_FORMATTYPE ColorFormat;
-        void init_members();
-        bool color_convert_mode;
-        ColorConvertFormat dest_format;
-        class omx_c2d_conv c2d;
-        unsigned int allocated_count;
-        unsigned int buffer_size_req;
-        unsigned int buffer_alignment_req;
-        OMX_QCOM_PLATFORM_PRIVATE_LIST      m_platform_list_client[MAX_COUNT];
-        OMX_QCOM_PLATFORM_PRIVATE_ENTRY     m_platform_entry_client[MAX_COUNT];
-        OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO m_pmem_info_client[MAX_COUNT];
-        OMX_BUFFERHEADERTYPE  m_out_mem_ptr_client[MAX_COUNT];
-#ifdef USE_ION
-        struct vdec_ion op_buf_ion_info[MAX_COUNT];
-#endif
-        unsigned char *pmem_baseaddress[MAX_COUNT];
-        int pmem_fd[MAX_COUNT];
-        struct vidc_heap
-        {
+        // Heap pointer to frame buffers
+        struct vidc_heap {
             sp<MemoryHeapBase>    video_heap_ptr;
         };
-        struct vidc_heap m_heap_ptr[MAX_COUNT];
-    };
-#if  defined (_MSM8960_) || defined (_MSM8974_)
-    allocate_color_convert_buf client_buffers;
+        struct vidc_heap *m_heap_ptr;
+        unsigned int m_heap_count;
+#endif //_ANDROID_
+        // store I/P PORT state
+        OMX_BOOL m_inp_bEnabled;
+        // store O/P PORT state
+        OMX_BOOL m_out_bEnabled;
+        OMX_U32 m_in_alloc_cnt;
+        OMX_U8                m_cRole[OMX_MAX_STRINGNAME_SIZE];
+        // Platform specific details
+        OMX_QCOM_PLATFORM_PRIVATE_LIST      *m_platform_list;
+        OMX_QCOM_PLATFORM_PRIVATE_ENTRY     *m_platform_entry;
+        OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *m_pmem_info;
+        // SPS+PPS sent as part of set_config
+        OMX_VENDOR_EXTRADATATYPE            m_vendor_config;
+
+        /*Variables for arbitrary Byte parsing support*/
+        frame_parse m_frame_parser;
+        omx_cmd_queue m_input_pending_q;
+        omx_cmd_queue m_input_free_q;
+        bool arbitrary_bytes;
+        OMX_BUFFERHEADERTYPE  h264_scratch;
+        OMX_BUFFERHEADERTYPE  *psource_frame;
+        OMX_BUFFERHEADERTYPE  *pdest_frame;
+        OMX_BUFFERHEADERTYPE  *m_inp_heap_ptr;
+        OMX_BUFFERHEADERTYPE  **m_phdr_pmem_ptr;
+        unsigned int m_heap_inp_bm_count;
+        codec_type codec_type_parse;
+        bool first_frame_meta;
+        unsigned frame_count;
+        unsigned nal_count;
+        unsigned nal_length;
+        bool look_ahead_nal;
+        int first_frame;
+        unsigned char *first_buffer;
+        int first_frame_size;
+        unsigned char m_hwdevice_name[80];
+        FILE *m_device_file_ptr;
+        enum vc1_profile_type m_vc1_profile;
+        OMX_S64 h264_last_au_ts;
+        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;
+        OMX_U32 frm_int;
+
+        struct vdec_allocatorproperty op_buf_rcnfg;
+        bool in_reconfig;
+        OMX_NATIVE_WINDOWTYPE m_display_id;
+        h264_stream_parser *h264_parser;
+        OMX_U32 client_extradata;
+#ifdef _ANDROID_
+        bool m_debug_timestamp;
+        bool perf_flag;
+        OMX_U32 proc_frms, latency;
+        perf_metrics fps_metrics;
+        perf_metrics dec_time;
+        bool m_enable_android_native_buffers;
+        bool m_use_android_native_buffers;
+        bool m_debug_extradata;
+        bool m_debug_concealedmb;
+        bool m_reject_avc_1080p_mp;
 #endif
-    struct video_decoder_capability m_decoder_capability;
+#ifdef MAX_RES_1080P
+        MP4_Utils mp4_headerparser;
+#endif
+
+        struct h264_mv_buffer {
+            unsigned char* buffer;
+            int size;
+            int count;
+            int pmem_fd;
+            int offset;
+        };
+        h264_mv_buffer h264_mv_buff;
+
+        struct meta_buffer {
+            unsigned char* buffer;
+            int size;
+            int count;
+            int pmem_fd;
+            int pmem_fd_iommu;
+            int offset;
+        };
+        meta_buffer meta_buff;
+        extra_data_handler extra_data_handle;
+#ifdef _ANDROID_
+        DivXDrmDecrypt* iDivXDrmDecrypt;
+#endif //_ANDROID_
+        OMX_PARAM_PORTDEFINITIONTYPE m_port_def;
+        omx_time_stamp_reorder time_stamp_dts;
+        desc_buffer_hdr *m_desc_buffer_ptr;
+        bool secure_mode;
+        bool external_meta_buffer;
+        bool external_meta_buffer_iommu;
+        OMX_QCOM_EXTRADATA_FRAMEINFO *m_extradata;
+        bool codec_config_flag;
+#ifdef _MSM8974_
+        int capture_capability;
+        int output_capability;
+        bool streaming[MAX_PORT];
+        OMX_CONFIG_RECTTYPE rectangle;
+        int prev_n_filled_len;
+#endif
+        bool m_power_hinted;
+        OMX_ERRORTYPE power_module_register();
+        OMX_ERRORTYPE power_module_deregister();
+        bool msg_thread_created;
+        bool async_thread_created;
+
+        OMX_VIDEO_PARAM_PROFILELEVELTYPE m_profile_lvl;
+        OMX_U32 m_profile;
+
+        unsigned int m_fill_output_msg;
+        bool client_set_fps;
+        class allocate_color_convert_buf
+        {
+            public:
+                allocate_color_convert_buf();
+                ~allocate_color_convert_buf();
+                void set_vdec_client(void *);
+                void update_client();
+                bool set_color_format(OMX_COLOR_FORMATTYPE dest_color_format);
+                bool get_color_format(OMX_COLOR_FORMATTYPE &dest_color_format);
+                bool update_buffer_req();
+                bool get_buffer_req(unsigned int &buffer_size);
+                OMX_BUFFERHEADERTYPE* get_il_buf_hdr();
+                OMX_BUFFERHEADERTYPE* get_il_buf_hdr(OMX_BUFFERHEADERTYPE *input_hdr);
+                OMX_BUFFERHEADERTYPE* get_dr_buf_hdr(OMX_BUFFERHEADERTYPE *input_hdr);
+                OMX_BUFFERHEADERTYPE* convert(OMX_BUFFERHEADERTYPE *header);
+                OMX_BUFFERHEADERTYPE* queue_buffer(OMX_BUFFERHEADERTYPE *header);
+                OMX_ERRORTYPE allocate_buffers_color_convert(OMX_HANDLETYPE hComp,
+                        OMX_BUFFERHEADERTYPE **bufferHdr,OMX_U32 port,OMX_PTR appData,
+                        OMX_U32 bytes);
+                OMX_ERRORTYPE free_output_buffer(OMX_BUFFERHEADERTYPE *bufferHdr);
+            private:
+#define MAX_COUNT 32
+                omx_vdec *omx;
+                bool enabled;
+                OMX_COLOR_FORMATTYPE ColorFormat;
+                void init_members();
+                bool color_convert_mode;
+                ColorConvertFormat dest_format;
+                class omx_c2d_conv c2d;
+                unsigned int allocated_count;
+                unsigned int buffer_size_req;
+                unsigned int buffer_alignment_req;
+                OMX_QCOM_PLATFORM_PRIVATE_LIST      m_platform_list_client[MAX_COUNT];
+                OMX_QCOM_PLATFORM_PRIVATE_ENTRY     m_platform_entry_client[MAX_COUNT];
+                OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO m_pmem_info_client[MAX_COUNT];
+                OMX_BUFFERHEADERTYPE  m_out_mem_ptr_client[MAX_COUNT];
+#ifdef USE_ION
+                struct vdec_ion op_buf_ion_info[MAX_COUNT];
+#endif
+                unsigned char *pmem_baseaddress[MAX_COUNT];
+                int pmem_fd[MAX_COUNT];
+                struct vidc_heap {
+                    sp<MemoryHeapBase>    video_heap_ptr;
+                };
+                struct vidc_heap m_heap_ptr[MAX_COUNT];
+        };
+#if  defined (_MSM8960_) || defined (_MSM8974_)
+        allocate_color_convert_buf client_buffers;
+#endif
+        struct video_decoder_capability m_decoder_capability;
 };
 
 #ifdef _MSM8974_
 enum instance_state {
-	MSM_VIDC_CORE_UNINIT_DONE = 0x0001,
-	MSM_VIDC_CORE_INIT,
-	MSM_VIDC_CORE_INIT_DONE,
-	MSM_VIDC_OPEN,
-	MSM_VIDC_OPEN_DONE,
-	MSM_VIDC_LOAD_RESOURCES,
-	MSM_VIDC_LOAD_RESOURCES_DONE,
-	MSM_VIDC_START,
-	MSM_VIDC_START_DONE,
-	MSM_VIDC_STOP,
-	MSM_VIDC_STOP_DONE,
-	MSM_VIDC_RELEASE_RESOURCES,
-	MSM_VIDC_RELEASE_RESOURCES_DONE,
-	MSM_VIDC_CLOSE,
-	MSM_VIDC_CLOSE_DONE,
-	MSM_VIDC_CORE_UNINIT,
+    MSM_VIDC_CORE_UNINIT_DONE = 0x0001,
+    MSM_VIDC_CORE_INIT,
+    MSM_VIDC_CORE_INIT_DONE,
+    MSM_VIDC_OPEN,
+    MSM_VIDC_OPEN_DONE,
+    MSM_VIDC_LOAD_RESOURCES,
+    MSM_VIDC_LOAD_RESOURCES_DONE,
+    MSM_VIDC_START,
+    MSM_VIDC_START_DONE,
+    MSM_VIDC_STOP,
+    MSM_VIDC_STOP_DONE,
+    MSM_VIDC_RELEASE_RESOURCES,
+    MSM_VIDC_RELEASE_RESOURCES_DONE,
+    MSM_VIDC_CLOSE,
+    MSM_VIDC_CLOSE_DONE,
+    MSM_VIDC_CORE_UNINIT,
 };
 
 enum vidc_resposes_id {
-	MSM_VIDC_DECODER_FLUSH_DONE = 0x11,
-	MSM_VIDC_DECODER_EVENT_CHANGE,
+    MSM_VIDC_DECODER_FLUSH_DONE = 0x11,
+    MSM_VIDC_DECODER_EVENT_CHANGE,
 };
 
 #endif // _MSM8974_
diff --git a/mm-video-v4l2/vidc/vdec/inc/omx_vdec_hevc.h b/mm-video-v4l2/vidc/vdec/inc/omx_vdec_hevc.h
index 4360358..2182d5b 100644
--- a/mm-video-v4l2/vidc/vdec/inc/omx_vdec_hevc.h
+++ b/mm-video-v4l2/vidc/vdec/inc/omx_vdec_hevc.h
@@ -64,7 +64,7 @@
 #endif
 #include <binder/MemoryHeapBase.h>
 #include <ui/ANativeObjectBase.h>
-extern "C"{
+extern "C" {
 #include <utils/Log.h>
 }
 #include <linux/videodev2.h>
@@ -107,29 +107,29 @@
 #include "ts_parser.h"
 #include "vidc_color_converter.h"
 extern "C" {
-  OMX_API void * get_omx_component_factory_fn(void);
+    OMX_API void * get_omx_component_factory_fn(void);
 }
 
 #ifdef _ANDROID_
-    using namespace android;
+using namespace android;
 #ifdef USE_ION
-    class VideoHeap : public MemoryHeapBase
-    {
+class VideoHeap : public MemoryHeapBase
+{
     public:
         VideoHeap(int devicefd, size_t size, void* base,struct ion_handle *handle,int mapfd);
         virtual ~VideoHeap() {}
     private:
-       int m_ion_device_fd;
-       struct ion_handle *m_ion_handle;
-    };
+        int m_ion_device_fd;
+        struct ion_handle *m_ion_handle;
+};
 #else
-    // local pmem heap object
-    class VideoHeap : public MemoryHeapBase
-    {
+// local pmem heap object
+class VideoHeap : public MemoryHeapBase
+{
     public:
         VideoHeap(int fd, size_t size, void* base);
         virtual ~VideoHeap() {}
-    };
+};
 #endif
 #endif // _ANDROID_
 //////////////////////////////////////////////////////////////////////////////
@@ -142,10 +142,10 @@
 //               Macros
 //////////////////////////////////////////////////////////////////////////////
 #define PrintFrameHdr(bufHdr) DEBUG_PRINT("bufHdr %x buf %x size %d TS %d\n",\
-                       (unsigned) bufHdr,\
-                       (unsigned)((OMX_BUFFERHEADERTYPE *)bufHdr)->pBuffer,\
-                       (unsigned)((OMX_BUFFERHEADERTYPE *)bufHdr)->nFilledLen,\
-                       (unsigned)((OMX_BUFFERHEADERTYPE *)bufHdr)->nTimeStamp)
+        (unsigned) bufHdr,\
+        (unsigned)((OMX_BUFFERHEADERTYPE *)bufHdr)->pBuffer,\
+        (unsigned)((OMX_BUFFERHEADERTYPE *)bufHdr)->nFilledLen,\
+        (unsigned)((OMX_BUFFERHEADERTYPE *)bufHdr)->nTimeStamp)
 
 // BitMask Management logic
 #define BITS_PER_BYTE        32
@@ -153,17 +153,17 @@
 #define BITMASK_OFFSET(mIndex) ((mIndex)/BITS_PER_BYTE)
 #define BITMASK_FLAG(mIndex) (1 << ((mIndex) % BITS_PER_BYTE))
 #define BITMASK_CLEAR(mArray,mIndex) (mArray)[BITMASK_OFFSET(mIndex)] \
-        &=  ~(BITMASK_FLAG(mIndex))
+    &=  ~(BITMASK_FLAG(mIndex))
 #define BITMASK_SET(mArray,mIndex)  (mArray)[BITMASK_OFFSET(mIndex)] \
-        |=  BITMASK_FLAG(mIndex)
+    |=  BITMASK_FLAG(mIndex)
 #define BITMASK_PRESENT(mArray,mIndex) ((mArray)[BITMASK_OFFSET(mIndex)] \
         & BITMASK_FLAG(mIndex))
 #define BITMASK_ABSENT(mArray,mIndex) (((mArray)[BITMASK_OFFSET(mIndex)] \
-        & BITMASK_FLAG(mIndex)) == 0x0)
+            & BITMASK_FLAG(mIndex)) == 0x0)
 #define BITMASK_PRESENT(mArray,mIndex) ((mArray)[BITMASK_OFFSET(mIndex)] \
         & BITMASK_FLAG(mIndex))
 #define BITMASK_ABSENT(mArray,mIndex) (((mArray)[BITMASK_OFFSET(mIndex)] \
-        & BITMASK_FLAG(mIndex)) == 0x0)
+            & BITMASK_FLAG(mIndex)) == 0x0)
 
 #define OMX_CORE_CONTROL_CMDQ_SIZE   100
 #define OMX_CORE_QCIF_HEIGHT         144
@@ -187,11 +187,11 @@
 #define DRIVER_EXTRADATA_MASK   0x0000FFFF
 
 #define OMX_INTERLACE_EXTRADATA_SIZE ((sizeof(OMX_OTHER_EXTRADATATYPE) +\
-                                       sizeof(OMX_STREAMINTERLACEFORMAT) + 3)&(~3))
+            sizeof(OMX_STREAMINTERLACEFORMAT) + 3)&(~3))
 #define OMX_FRAMEINFO_EXTRADATA_SIZE ((sizeof(OMX_OTHER_EXTRADATATYPE) +\
-                                       sizeof(OMX_QCOM_EXTRADATA_FRAMEINFO) + 3)&(~3))
+            sizeof(OMX_QCOM_EXTRADATA_FRAMEINFO) + 3)&(~3))
 #define OMX_PORTDEF_EXTRADATA_SIZE ((sizeof(OMX_OTHER_EXTRADATATYPE) +\
-                                       sizeof(OMX_PARAM_PORTDEFINITIONTYPE) + 3)&(~3))
+            sizeof(OMX_PARAM_PORTDEFINITIONTYPE) + 3)&(~3))
 
 //  Define next macro with required values to enable default extradata,
 //    VDEC_EXTRADATA_MB_ERROR_MAP
@@ -201,14 +201,12 @@
 
 //#define DEFAULT_EXTRADATA (OMX_FRAMEINFO_EXTRADATA|OMX_INTERLACE_EXTRADATA)
 
-enum port_indexes
-{
+enum port_indexes {
     OMX_CORE_INPUT_PORT_INDEX        =0,
     OMX_CORE_OUTPUT_PORT_INDEX       =1
 };
 #ifdef USE_ION
-struct vdec_ion
-{
+struct vdec_ion {
     int ion_device_fd;
     struct ion_fd_data fd_ion_data;
     struct ion_allocation_data ion_alloc_data;
@@ -217,18 +215,17 @@
 
 #ifdef _MSM8974_
 struct extradata_buffer_info {
-	int buffer_size;
-	char* uaddr;
-	int count;
-	int size;
+    int buffer_size;
+    char* uaddr;
+    int count;
+    int size;
 #ifdef USE_ION
-	struct vdec_ion ion;
+    struct vdec_ion ion;
 #endif
 };
 #endif
 
-struct video_driver_context
-{
+struct video_driver_context {
     int video_driver_fd;
     enum vdec_codec decoder_format;
     enum vdec_output_fromat output_format;
@@ -254,8 +251,8 @@
     bool idr_only_decoding;
     unsigned disable_dmx;
 #ifdef _MSM8974_
-	struct extradata_buffer_info extradata_info;
-	int num_planes;
+    struct extradata_buffer_info extradata_info;
+    int num_planes;
 #endif
 };
 
@@ -267,693 +264,680 @@
 class omx_vdec: public qc_omx_component
 {
 
-public:
-    omx_vdec();  // constructor
-    virtual ~omx_vdec();  // destructor
+    public:
+        omx_vdec();  // constructor
+        virtual ~omx_vdec();  // destructor
 
-    static int async_message_process (void *context, void* message);
-    static void process_event_cb(void *ctxt,unsigned char id);
+        static int async_message_process (void *context, void* message);
+        static void process_event_cb(void *ctxt,unsigned char id);
 
-    OMX_ERRORTYPE allocate_buffer(
-                                   OMX_HANDLETYPE hComp,
-                                   OMX_BUFFERHEADERTYPE **bufferHdr,
-                                   OMX_U32 port,
-                                   OMX_PTR appData,
-                                   OMX_U32 bytes
-                                  );
+        OMX_ERRORTYPE allocate_buffer(
+                OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE **bufferHdr,
+                OMX_U32 port,
+                OMX_PTR appData,
+                OMX_U32 bytes
+                );
 
 
-    OMX_ERRORTYPE component_deinit(OMX_HANDLETYPE hComp);
+        OMX_ERRORTYPE component_deinit(OMX_HANDLETYPE hComp);
 
-    OMX_ERRORTYPE component_init(OMX_STRING role);
+        OMX_ERRORTYPE component_init(OMX_STRING role);
 
-    OMX_ERRORTYPE component_role_enum(
-                                       OMX_HANDLETYPE hComp,
-                                       OMX_U8 *role,
-                                       OMX_U32 index
-                                      );
+        OMX_ERRORTYPE component_role_enum(
+                OMX_HANDLETYPE hComp,
+                OMX_U8 *role,
+                OMX_U32 index
+                );
 
-    OMX_ERRORTYPE component_tunnel_request(
-                                            OMX_HANDLETYPE hComp,
-                                            OMX_U32 port,
-                                            OMX_HANDLETYPE  peerComponent,
-                                            OMX_U32 peerPort,
-                                            OMX_TUNNELSETUPTYPE *tunnelSetup
-                                           );
+        OMX_ERRORTYPE component_tunnel_request(
+                OMX_HANDLETYPE hComp,
+                OMX_U32 port,
+                OMX_HANDLETYPE  peerComponent,
+                OMX_U32 peerPort,
+                OMX_TUNNELSETUPTYPE *tunnelSetup
+                );
 
-    OMX_ERRORTYPE empty_this_buffer(
-                                     OMX_HANDLETYPE hComp,
-                                     OMX_BUFFERHEADERTYPE *buffer
-                                    );
+        OMX_ERRORTYPE empty_this_buffer(
+                OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE *buffer
+                );
 
 
 
-    OMX_ERRORTYPE fill_this_buffer(
-                                    OMX_HANDLETYPE hComp,
-                                    OMX_BUFFERHEADERTYPE *buffer
-                                   );
+        OMX_ERRORTYPE fill_this_buffer(
+                OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE *buffer
+                );
 
 
-    OMX_ERRORTYPE free_buffer(
-                              OMX_HANDLETYPE hComp,
-                              OMX_U32 port,
-                              OMX_BUFFERHEADERTYPE *buffer
-                              );
+        OMX_ERRORTYPE free_buffer(
+                OMX_HANDLETYPE hComp,
+                OMX_U32 port,
+                OMX_BUFFERHEADERTYPE *buffer
+                );
 
-    OMX_ERRORTYPE get_component_version(
-                                        OMX_HANDLETYPE hComp,
-                                        OMX_STRING componentName,
-                                        OMX_VERSIONTYPE *componentVersion,
-                                        OMX_VERSIONTYPE *specVersion,
-                                        OMX_UUIDTYPE *componentUUID
-                                        );
+        OMX_ERRORTYPE get_component_version(
+                OMX_HANDLETYPE hComp,
+                OMX_STRING componentName,
+                OMX_VERSIONTYPE *componentVersion,
+                OMX_VERSIONTYPE *specVersion,
+                OMX_UUIDTYPE *componentUUID
+                );
 
-    OMX_ERRORTYPE get_config(
-                              OMX_HANDLETYPE hComp,
-                              OMX_INDEXTYPE configIndex,
-                              OMX_PTR configData
-                             );
+        OMX_ERRORTYPE get_config(
+                OMX_HANDLETYPE hComp,
+                OMX_INDEXTYPE configIndex,
+                OMX_PTR configData
+                );
 
-    OMX_ERRORTYPE get_extension_index(
-                                      OMX_HANDLETYPE hComp,
-                                      OMX_STRING paramName,
-                                      OMX_INDEXTYPE *indexType
-                                      );
+        OMX_ERRORTYPE get_extension_index(
+                OMX_HANDLETYPE hComp,
+                OMX_STRING paramName,
+                OMX_INDEXTYPE *indexType
+                );
 
-    OMX_ERRORTYPE get_parameter(OMX_HANDLETYPE hComp,
-                                OMX_INDEXTYPE  paramIndex,
-                                OMX_PTR        paramData);
+        OMX_ERRORTYPE get_parameter(OMX_HANDLETYPE hComp,
+                OMX_INDEXTYPE  paramIndex,
+                OMX_PTR        paramData);
 
-    OMX_ERRORTYPE get_state(OMX_HANDLETYPE hComp,
-                            OMX_STATETYPE *state);
+        OMX_ERRORTYPE get_state(OMX_HANDLETYPE hComp,
+                OMX_STATETYPE *state);
 
 
 
-    OMX_ERRORTYPE send_command(OMX_HANDLETYPE  hComp,
-                               OMX_COMMANDTYPE cmd,
-                               OMX_U32         param1,
-                               OMX_PTR         cmdData);
+        OMX_ERRORTYPE send_command(OMX_HANDLETYPE  hComp,
+                OMX_COMMANDTYPE cmd,
+                OMX_U32         param1,
+                OMX_PTR         cmdData);
 
 
-    OMX_ERRORTYPE set_callbacks(OMX_HANDLETYPE   hComp,
-                                OMX_CALLBACKTYPE *callbacks,
-                                OMX_PTR          appData);
+        OMX_ERRORTYPE set_callbacks(OMX_HANDLETYPE   hComp,
+                OMX_CALLBACKTYPE *callbacks,
+                OMX_PTR          appData);
 
-    OMX_ERRORTYPE set_config(OMX_HANDLETYPE hComp,
-                             OMX_INDEXTYPE  configIndex,
-                             OMX_PTR        configData);
+        OMX_ERRORTYPE set_config(OMX_HANDLETYPE hComp,
+                OMX_INDEXTYPE  configIndex,
+                OMX_PTR        configData);
 
-    OMX_ERRORTYPE set_parameter(OMX_HANDLETYPE hComp,
-                                OMX_INDEXTYPE  paramIndex,
-                                OMX_PTR        paramData);
+        OMX_ERRORTYPE set_parameter(OMX_HANDLETYPE hComp,
+                OMX_INDEXTYPE  paramIndex,
+                OMX_PTR        paramData);
 
-    OMX_ERRORTYPE use_buffer(OMX_HANDLETYPE      hComp,
-                             OMX_BUFFERHEADERTYPE **bufferHdr,
-                             OMX_U32              port,
-                             OMX_PTR              appData,
-                             OMX_U32              bytes,
-                             OMX_U8               *buffer);
+        OMX_ERRORTYPE use_buffer(OMX_HANDLETYPE      hComp,
+                OMX_BUFFERHEADERTYPE **bufferHdr,
+                OMX_U32              port,
+                OMX_PTR              appData,
+                OMX_U32              bytes,
+                OMX_U8               *buffer);
 
-    OMX_ERRORTYPE  use_input_heap_buffers(
-                          OMX_HANDLETYPE            hComp,
-                          OMX_BUFFERHEADERTYPE** bufferHdr,
-                          OMX_U32                   port,
-                          OMX_PTR                   appData,
-                          OMX_U32                   bytes,
-                          OMX_U8*                   buffer);
+        OMX_ERRORTYPE  use_input_heap_buffers(
+                OMX_HANDLETYPE            hComp,
+                OMX_BUFFERHEADERTYPE** bufferHdr,
+                OMX_U32                   port,
+                OMX_PTR                   appData,
+                OMX_U32                   bytes,
+                OMX_U8*                   buffer);
 
-    OMX_ERRORTYPE use_EGL_image(OMX_HANDLETYPE     hComp,
-                                OMX_BUFFERHEADERTYPE **bufferHdr,
-                                OMX_U32              port,
-                                OMX_PTR              appData,
-                                void *               eglImage);
-    void complete_pending_buffer_done_cbs();
-    struct video_driver_context drv_ctx;
+        OMX_ERRORTYPE use_EGL_image(OMX_HANDLETYPE     hComp,
+                OMX_BUFFERHEADERTYPE **bufferHdr,
+                OMX_U32              port,
+                OMX_PTR              appData,
+                void *               eglImage);
+        void complete_pending_buffer_done_cbs();
+        struct video_driver_context drv_ctx;
 #ifdef _MSM8974_
-    OMX_ERRORTYPE allocate_extradata();
-	void free_extradata();
-    void update_resolution(int width, int height);
+        OMX_ERRORTYPE allocate_extradata();
+        void free_extradata();
+        void update_resolution(int width, int height);
 #endif
-    int  m_pipe_in;
-    int  m_pipe_out;
-    pthread_t msg_thread_id;
-    pthread_t async_thread_id;
-    bool is_component_secure();
+        int  m_pipe_in;
+        int  m_pipe_out;
+        pthread_t msg_thread_id;
+        pthread_t async_thread_id;
+        bool is_component_secure();
 
-private:
-    // Bit Positions
-    enum flags_bit_positions
-    {
-        // Defer transition to IDLE
-        OMX_COMPONENT_IDLE_PENDING            =0x1,
-        // Defer transition to LOADING
-        OMX_COMPONENT_LOADING_PENDING         =0x2,
-        // First  Buffer Pending
-        OMX_COMPONENT_FIRST_BUFFER_PENDING    =0x3,
-        // Second Buffer Pending
-        OMX_COMPONENT_SECOND_BUFFER_PENDING   =0x4,
-        // Defer transition to Enable
-        OMX_COMPONENT_INPUT_ENABLE_PENDING    =0x5,
-        // Defer transition to Enable
-        OMX_COMPONENT_OUTPUT_ENABLE_PENDING   =0x6,
-        // Defer transition to Disable
-        OMX_COMPONENT_INPUT_DISABLE_PENDING   =0x7,
-        // Defer transition to Disable
-        OMX_COMPONENT_OUTPUT_DISABLE_PENDING  =0x8,
-        //defer flush notification
-        OMX_COMPONENT_OUTPUT_FLUSH_PENDING    =0x9,
-        OMX_COMPONENT_INPUT_FLUSH_PENDING    =0xA,
-        OMX_COMPONENT_PAUSE_PENDING          =0xB,
-        OMX_COMPONENT_EXECUTE_PENDING        =0xC,
-        OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING =0xD,
-        OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED=0xE
-    };
+    private:
+        // Bit Positions
+        enum flags_bit_positions {
+            // Defer transition to IDLE
+            OMX_COMPONENT_IDLE_PENDING            =0x1,
+            // Defer transition to LOADING
+            OMX_COMPONENT_LOADING_PENDING         =0x2,
+            // First  Buffer Pending
+            OMX_COMPONENT_FIRST_BUFFER_PENDING    =0x3,
+            // Second Buffer Pending
+            OMX_COMPONENT_SECOND_BUFFER_PENDING   =0x4,
+            // Defer transition to Enable
+            OMX_COMPONENT_INPUT_ENABLE_PENDING    =0x5,
+            // Defer transition to Enable
+            OMX_COMPONENT_OUTPUT_ENABLE_PENDING   =0x6,
+            // Defer transition to Disable
+            OMX_COMPONENT_INPUT_DISABLE_PENDING   =0x7,
+            // Defer transition to Disable
+            OMX_COMPONENT_OUTPUT_DISABLE_PENDING  =0x8,
+            //defer flush notification
+            OMX_COMPONENT_OUTPUT_FLUSH_PENDING    =0x9,
+            OMX_COMPONENT_INPUT_FLUSH_PENDING    =0xA,
+            OMX_COMPONENT_PAUSE_PENDING          =0xB,
+            OMX_COMPONENT_EXECUTE_PENDING        =0xC,
+            OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING =0xD,
+            OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED=0xE
+        };
 
-    // Deferred callback identifiers
-    enum
-    {
-        //Event Callbacks from the vdec component thread context
-        OMX_COMPONENT_GENERATE_EVENT       = 0x1,
-        //Buffer Done callbacks from the vdec component thread context
-        OMX_COMPONENT_GENERATE_BUFFER_DONE = 0x2,
-        //Frame Done callbacks from the vdec component thread context
-        OMX_COMPONENT_GENERATE_FRAME_DONE  = 0x3,
-        //Buffer Done callbacks from the vdec component thread context
-        OMX_COMPONENT_GENERATE_FTB         = 0x4,
-        //Frame Done callbacks from the vdec component thread context
-        OMX_COMPONENT_GENERATE_ETB         = 0x5,
-        //Command
-        OMX_COMPONENT_GENERATE_COMMAND     = 0x6,
-        //Push-Pending Buffers
-        OMX_COMPONENT_PUSH_PENDING_BUFS    = 0x7,
-        // Empty Buffer Done callbacks
-        OMX_COMPONENT_GENERATE_EBD         = 0x8,
-        //Flush Event Callbacks from the vdec component thread context
-        OMX_COMPONENT_GENERATE_EVENT_FLUSH       = 0x9,
-        OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH = 0x0A,
-        OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH = 0x0B,
-        OMX_COMPONENT_GENERATE_FBD = 0xc,
-        OMX_COMPONENT_GENERATE_START_DONE = 0xD,
-        OMX_COMPONENT_GENERATE_PAUSE_DONE = 0xE,
-        OMX_COMPONENT_GENERATE_RESUME_DONE = 0xF,
-        OMX_COMPONENT_GENERATE_STOP_DONE = 0x10,
-        OMX_COMPONENT_GENERATE_HARDWARE_ERROR = 0x11,
-        OMX_COMPONENT_GENERATE_ETB_ARBITRARY = 0x12,
-        OMX_COMPONENT_GENERATE_PORT_RECONFIG = 0x13,
-        OMX_COMPONENT_GENERATE_EOS_DONE = 0x14,
-        OMX_COMPONENT_GENERATE_INFO_PORT_RECONFIG = 0x15,
-        OMX_COMPONENT_GENERATE_INFO_FIELD_DROPPED = 0x16,
-    };
+        // Deferred callback identifiers
+        enum {
+            //Event Callbacks from the vdec component thread context
+            OMX_COMPONENT_GENERATE_EVENT       = 0x1,
+            //Buffer Done callbacks from the vdec component thread context
+            OMX_COMPONENT_GENERATE_BUFFER_DONE = 0x2,
+            //Frame Done callbacks from the vdec component thread context
+            OMX_COMPONENT_GENERATE_FRAME_DONE  = 0x3,
+            //Buffer Done callbacks from the vdec component thread context
+            OMX_COMPONENT_GENERATE_FTB         = 0x4,
+            //Frame Done callbacks from the vdec component thread context
+            OMX_COMPONENT_GENERATE_ETB         = 0x5,
+            //Command
+            OMX_COMPONENT_GENERATE_COMMAND     = 0x6,
+            //Push-Pending Buffers
+            OMX_COMPONENT_PUSH_PENDING_BUFS    = 0x7,
+            // Empty Buffer Done callbacks
+            OMX_COMPONENT_GENERATE_EBD         = 0x8,
+            //Flush Event Callbacks from the vdec component thread context
+            OMX_COMPONENT_GENERATE_EVENT_FLUSH       = 0x9,
+            OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH = 0x0A,
+            OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH = 0x0B,
+            OMX_COMPONENT_GENERATE_FBD = 0xc,
+            OMX_COMPONENT_GENERATE_START_DONE = 0xD,
+            OMX_COMPONENT_GENERATE_PAUSE_DONE = 0xE,
+            OMX_COMPONENT_GENERATE_RESUME_DONE = 0xF,
+            OMX_COMPONENT_GENERATE_STOP_DONE = 0x10,
+            OMX_COMPONENT_GENERATE_HARDWARE_ERROR = 0x11,
+            OMX_COMPONENT_GENERATE_ETB_ARBITRARY = 0x12,
+            OMX_COMPONENT_GENERATE_PORT_RECONFIG = 0x13,
+            OMX_COMPONENT_GENERATE_EOS_DONE = 0x14,
+            OMX_COMPONENT_GENERATE_INFO_PORT_RECONFIG = 0x15,
+            OMX_COMPONENT_GENERATE_INFO_FIELD_DROPPED = 0x16,
+        };
 
-    enum vc1_profile_type
-    {
-        VC1_SP_MP_RCV = 1,
-        VC1_AP = 2
-    };
+        enum vc1_profile_type {
+            VC1_SP_MP_RCV = 1,
+            VC1_AP = 2
+        };
 
 #ifdef _MSM8974_
-    enum v4l2_ports
-    {
-        CAPTURE_PORT,
-        OUTPUT_PORT,
-        MAX_PORT
-    };
+        enum v4l2_ports {
+            CAPTURE_PORT,
+            OUTPUT_PORT,
+            MAX_PORT
+        };
 #endif
 
-    struct omx_event
-    {
-        unsigned param1;
-        unsigned param2;
-        unsigned id;
-    };
+        struct omx_event {
+            unsigned param1;
+            unsigned param2;
+            unsigned id;
+        };
 
-    struct omx_cmd_queue
-    {
-        omx_event m_q[OMX_CORE_CONTROL_CMDQ_SIZE];
-        unsigned m_read;
-        unsigned m_write;
-        unsigned m_size;
+        struct omx_cmd_queue {
+            omx_event m_q[OMX_CORE_CONTROL_CMDQ_SIZE];
+            unsigned m_read;
+            unsigned m_write;
+            unsigned m_size;
 
-        omx_cmd_queue();
-        ~omx_cmd_queue();
-        bool insert_entry(unsigned p1, unsigned p2, unsigned id);
-        bool pop_entry(unsigned *p1,unsigned *p2, unsigned *id);
-        // get msgtype of the first ele from the queue
-        unsigned get_q_msg_type();
+            omx_cmd_queue();
+            ~omx_cmd_queue();
+            bool insert_entry(unsigned p1, unsigned p2, unsigned id);
+            bool pop_entry(unsigned *p1,unsigned *p2, unsigned *id);
+            // get msgtype of the first ele from the queue
+            unsigned get_q_msg_type();
 
-    };
+        };
 
 #ifdef _ANDROID_
-    struct ts_entry
-    {
-        OMX_TICKS timestamp;
-        bool valid;
-    };
+        struct ts_entry {
+            OMX_TICKS timestamp;
+            bool valid;
+        };
 
-    struct ts_arr_list
-    {
-        ts_entry m_ts_arr_list[MAX_NUM_INPUT_OUTPUT_BUFFERS];
+        struct ts_arr_list {
+            ts_entry m_ts_arr_list[MAX_NUM_INPUT_OUTPUT_BUFFERS];
 
-        ts_arr_list();
-        ~ts_arr_list();
+            ts_arr_list();
+            ~ts_arr_list();
 
-        bool insert_ts(OMX_TICKS ts);
-        bool pop_min_ts(OMX_TICKS &ts);
-        bool reset_ts_list();
-    };
+            bool insert_ts(OMX_TICKS ts);
+            bool pop_min_ts(OMX_TICKS &ts);
+            bool reset_ts_list();
+        };
 #endif
 
-    struct desc_buffer_hdr
-    {
-        OMX_U8 *buf_addr;
-        OMX_U32 desc_data_size;
-    };
-    bool allocate_done(void);
-    bool allocate_input_done(void);
-    bool allocate_output_done(void);
+        struct desc_buffer_hdr {
+            OMX_U8 *buf_addr;
+            OMX_U32 desc_data_size;
+        };
+        bool allocate_done(void);
+        bool allocate_input_done(void);
+        bool allocate_output_done(void);
 
-    OMX_ERRORTYPE free_input_buffer(OMX_BUFFERHEADERTYPE *bufferHdr);
-    OMX_ERRORTYPE free_input_buffer(unsigned int bufferindex,
-                                    OMX_BUFFERHEADERTYPE *pmem_bufferHdr);
-    OMX_ERRORTYPE free_output_buffer(OMX_BUFFERHEADERTYPE *bufferHdr);
-    void free_output_buffer_header();
-    void free_input_buffer_header();
+        OMX_ERRORTYPE free_input_buffer(OMX_BUFFERHEADERTYPE *bufferHdr);
+        OMX_ERRORTYPE free_input_buffer(unsigned int bufferindex,
+                OMX_BUFFERHEADERTYPE *pmem_bufferHdr);
+        OMX_ERRORTYPE free_output_buffer(OMX_BUFFERHEADERTYPE *bufferHdr);
+        void free_output_buffer_header();
+        void free_input_buffer_header();
 
-    OMX_ERRORTYPE allocate_input_heap_buffer(OMX_HANDLETYPE       hComp,
-                                             OMX_BUFFERHEADERTYPE **bufferHdr,
-                                             OMX_U32              port,
-                                             OMX_PTR              appData,
-                                             OMX_U32              bytes);
+        OMX_ERRORTYPE allocate_input_heap_buffer(OMX_HANDLETYPE       hComp,
+                OMX_BUFFERHEADERTYPE **bufferHdr,
+                OMX_U32              port,
+                OMX_PTR              appData,
+                OMX_U32              bytes);
 
 
-    OMX_ERRORTYPE allocate_input_buffer(OMX_HANDLETYPE       hComp,
-                                        OMX_BUFFERHEADERTYPE **bufferHdr,
-                                        OMX_U32              port,
-                                        OMX_PTR              appData,
-                                        OMX_U32              bytes);
+        OMX_ERRORTYPE allocate_input_buffer(OMX_HANDLETYPE       hComp,
+                OMX_BUFFERHEADERTYPE **bufferHdr,
+                OMX_U32              port,
+                OMX_PTR              appData,
+                OMX_U32              bytes);
 
-    OMX_ERRORTYPE allocate_output_buffer(OMX_HANDLETYPE       hComp,
-                                         OMX_BUFFERHEADERTYPE **bufferHdr,
-                                         OMX_U32 port,OMX_PTR appData,
-                                         OMX_U32              bytes);
-    OMX_ERRORTYPE use_output_buffer(OMX_HANDLETYPE hComp,
-                                   OMX_BUFFERHEADERTYPE   **bufferHdr,
-                                   OMX_U32                port,
-                                   OMX_PTR                appData,
-                                   OMX_U32                bytes,
-                                   OMX_U8                 *buffer);
+        OMX_ERRORTYPE allocate_output_buffer(OMX_HANDLETYPE       hComp,
+                OMX_BUFFERHEADERTYPE **bufferHdr,
+                OMX_U32 port,OMX_PTR appData,
+                OMX_U32              bytes);
+        OMX_ERRORTYPE use_output_buffer(OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE   **bufferHdr,
+                OMX_U32                port,
+                OMX_PTR                appData,
+                OMX_U32                bytes,
+                OMX_U8                 *buffer);
 #ifdef MAX_RES_720P
-    OMX_ERRORTYPE get_supported_profile_level_for_720p(OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType);
+        OMX_ERRORTYPE get_supported_profile_level_for_720p(OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType);
 #endif
 #ifdef MAX_RES_1080P
-    OMX_ERRORTYPE get_supported_profile_level_for_1080p(OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType);
+        OMX_ERRORTYPE get_supported_profile_level_for_1080p(OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType);
 #endif
 
-    OMX_ERRORTYPE allocate_desc_buffer(OMX_U32 index);
-    OMX_ERRORTYPE allocate_output_headers();
-    bool execute_omx_flush(OMX_U32);
-    bool execute_output_flush();
-    bool execute_input_flush();
-    OMX_ERRORTYPE empty_buffer_done(OMX_HANDLETYPE hComp,
-                                    OMX_BUFFERHEADERTYPE * buffer);
+        OMX_ERRORTYPE allocate_desc_buffer(OMX_U32 index);
+        OMX_ERRORTYPE allocate_output_headers();
+        bool execute_omx_flush(OMX_U32);
+        bool execute_output_flush();
+        bool execute_input_flush();
+        OMX_ERRORTYPE empty_buffer_done(OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE * buffer);
 
-    OMX_ERRORTYPE fill_buffer_done(OMX_HANDLETYPE hComp,
-                                    OMX_BUFFERHEADERTYPE * buffer);
-    OMX_ERRORTYPE empty_this_buffer_proxy(OMX_HANDLETYPE       hComp,
-                                        OMX_BUFFERHEADERTYPE *buffer);
+        OMX_ERRORTYPE fill_buffer_done(OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE * buffer);
+        OMX_ERRORTYPE empty_this_buffer_proxy(OMX_HANDLETYPE       hComp,
+                OMX_BUFFERHEADERTYPE *buffer);
 
-    OMX_ERRORTYPE empty_this_buffer_proxy_arbitrary(OMX_HANDLETYPE hComp,
-                                                   OMX_BUFFERHEADERTYPE *buffer
-                                                   );
+        OMX_ERRORTYPE empty_this_buffer_proxy_arbitrary(OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE *buffer
+                );
 
-    OMX_ERRORTYPE push_input_buffer (OMX_HANDLETYPE hComp);
-    OMX_ERRORTYPE push_input_sc_codec (OMX_HANDLETYPE hComp);
-    OMX_ERRORTYPE push_input_h264 (OMX_HANDLETYPE hComp);
-    OMX_ERRORTYPE push_input_hevc (OMX_HANDLETYPE hComp);
-    OMX_ERRORTYPE push_input_vc1 (OMX_HANDLETYPE hComp);
+        OMX_ERRORTYPE push_input_buffer (OMX_HANDLETYPE hComp);
+        OMX_ERRORTYPE push_input_sc_codec (OMX_HANDLETYPE hComp);
+        OMX_ERRORTYPE push_input_h264 (OMX_HANDLETYPE hComp);
+        OMX_ERRORTYPE push_input_hevc (OMX_HANDLETYPE hComp);
+        OMX_ERRORTYPE push_input_vc1 (OMX_HANDLETYPE hComp);
 
-    OMX_ERRORTYPE fill_this_buffer_proxy(OMX_HANDLETYPE       hComp,
-                                       OMX_BUFFERHEADERTYPE *buffer);
-    bool release_done();
+        OMX_ERRORTYPE fill_this_buffer_proxy(OMX_HANDLETYPE       hComp,
+                OMX_BUFFERHEADERTYPE *buffer);
+        bool release_done();
 
-    bool release_output_done();
-    bool release_input_done();
-    OMX_ERRORTYPE get_buffer_req(vdec_allocatorproperty *buffer_prop);
-    OMX_ERRORTYPE set_buffer_req(vdec_allocatorproperty *buffer_prop);
-    OMX_ERRORTYPE start_port_reconfig();
-    OMX_ERRORTYPE update_picture_resolution();
-    int stream_off(OMX_U32 port);
-    void adjust_timestamp(OMX_S64 &act_timestamp);
-    void set_frame_rate(OMX_S64 act_timestamp);
-    void handle_extradata_secure(OMX_BUFFERHEADERTYPE *p_buf_hdr);
-    void handle_extradata(OMX_BUFFERHEADERTYPE *p_buf_hdr);
-    void print_debug_extradata(OMX_OTHER_EXTRADATATYPE *extra);
+        bool release_output_done();
+        bool release_input_done();
+        OMX_ERRORTYPE get_buffer_req(vdec_allocatorproperty *buffer_prop);
+        OMX_ERRORTYPE set_buffer_req(vdec_allocatorproperty *buffer_prop);
+        OMX_ERRORTYPE start_port_reconfig();
+        OMX_ERRORTYPE update_picture_resolution();
+        int stream_off(OMX_U32 port);
+        void adjust_timestamp(OMX_S64 &act_timestamp);
+        void set_frame_rate(OMX_S64 act_timestamp);
+        void handle_extradata_secure(OMX_BUFFERHEADERTYPE *p_buf_hdr);
+        void handle_extradata(OMX_BUFFERHEADERTYPE *p_buf_hdr);
+        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);
-    void append_frame_info_extradata(OMX_OTHER_EXTRADATATYPE *extra,
-                               OMX_U32 num_conceal_mb,
-                               OMX_U32 picture_type,
-                               OMX_U32 frame_rate,
-                               struct msm_vidc_panscan_window_payload *panscan_payload,
-                               struct vdec_aspectratioinfo *aspect_ratio_info);
+        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);
+        void append_frame_info_extradata(OMX_OTHER_EXTRADATATYPE *extra,
+                OMX_U32 num_conceal_mb,
+                OMX_U32 picture_type,
+                OMX_U32 frame_rate,
+                struct msm_vidc_panscan_window_payload *panscan_payload,
+                struct vdec_aspectratioinfo *aspect_ratio_info);
 #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);
+        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,
-                               OMX_U32 picture_type,
-                               OMX_S64 timestamp,
-                               OMX_U32 frame_rate,
-                               struct vdec_aspectratioinfo *aspect_ratio_info);
-    void fill_aspect_ratio_info(struct vdec_aspectratioinfo *aspect_ratio_info,
-                                OMX_QCOM_EXTRADATA_FRAMEINFO *frame_info);
-    void append_terminator_extradata(OMX_OTHER_EXTRADATATYPE *extra);
-    OMX_ERRORTYPE update_portdef(OMX_PARAM_PORTDEFINITIONTYPE *portDefn);
-    void append_portdef_extradata(OMX_OTHER_EXTRADATATYPE *extra);
-    void append_extn_extradata(OMX_OTHER_EXTRADATATYPE *extra, OMX_OTHER_EXTRADATATYPE *p_extn);
-    void append_user_extradata(OMX_OTHER_EXTRADATATYPE *extra, OMX_OTHER_EXTRADATATYPE *p_user);
-    void insert_demux_addr_offset(OMX_U32 address_offset);
-    void extract_demux_addr_offsets(OMX_BUFFERHEADERTYPE *buf_hdr);
-    OMX_ERRORTYPE handle_demux_data(OMX_BUFFERHEADERTYPE *buf_hdr);
-    OMX_U32 count_MB_in_extradata(OMX_OTHER_EXTRADATATYPE *extra);
+        void append_frame_info_extradata(OMX_OTHER_EXTRADATATYPE *extra,
+                OMX_U32 num_conceal_mb,
+                OMX_U32 picture_type,
+                OMX_S64 timestamp,
+                OMX_U32 frame_rate,
+                struct vdec_aspectratioinfo *aspect_ratio_info);
+        void fill_aspect_ratio_info(struct vdec_aspectratioinfo *aspect_ratio_info,
+                OMX_QCOM_EXTRADATA_FRAMEINFO *frame_info);
+        void append_terminator_extradata(OMX_OTHER_EXTRADATATYPE *extra);
+        OMX_ERRORTYPE update_portdef(OMX_PARAM_PORTDEFINITIONTYPE *portDefn);
+        void append_portdef_extradata(OMX_OTHER_EXTRADATATYPE *extra);
+        void append_extn_extradata(OMX_OTHER_EXTRADATATYPE *extra, OMX_OTHER_EXTRADATATYPE *p_extn);
+        void append_user_extradata(OMX_OTHER_EXTRADATATYPE *extra, OMX_OTHER_EXTRADATATYPE *p_user);
+        void insert_demux_addr_offset(OMX_U32 address_offset);
+        void extract_demux_addr_offsets(OMX_BUFFERHEADERTYPE *buf_hdr);
+        OMX_ERRORTYPE handle_demux_data(OMX_BUFFERHEADERTYPE *buf_hdr);
+        OMX_U32 count_MB_in_extradata(OMX_OTHER_EXTRADATATYPE *extra);
 
-    bool align_pmem_buffers(int pmem_fd, OMX_U32 buffer_size,
-                            OMX_U32 alignment);
+        bool align_pmem_buffers(int pmem_fd, OMX_U32 buffer_size,
+                OMX_U32 alignment);
 #ifdef USE_ION
-    int alloc_map_ion_memory(OMX_U32 buffer_size,
-              OMX_U32 alignment, struct ion_allocation_data *alloc_data,
-              struct ion_fd_data *fd_data,int flag);
-    void free_ion_memory(struct vdec_ion *buf_ion_info);
+        int alloc_map_ion_memory(OMX_U32 buffer_size,
+                OMX_U32 alignment, struct ion_allocation_data *alloc_data,
+                struct ion_fd_data *fd_data,int flag);
+        void free_ion_memory(struct vdec_ion *buf_ion_info);
 #endif
 
 
-    OMX_ERRORTYPE send_command_proxy(OMX_HANDLETYPE  hComp,
-                                     OMX_COMMANDTYPE cmd,
-                                     OMX_U32         param1,
-                                     OMX_PTR         cmdData);
-    bool post_event( unsigned int p1,
-                     unsigned int p2,
-                     unsigned int id
-                    );
-    inline int clip2(int x)
-    {
-        x = x -1;
-        x = x | x >> 1;
-        x = x | x >> 2;
-        x = x | x >> 4;
-        x = x | x >> 16;
-        x = x + 1;
-        return x;
-    }
+        OMX_ERRORTYPE send_command_proxy(OMX_HANDLETYPE  hComp,
+                OMX_COMMANDTYPE cmd,
+                OMX_U32         param1,
+                OMX_PTR         cmdData);
+        bool post_event( unsigned int p1,
+                unsigned int p2,
+                unsigned int id
+                   );
+        inline int clip2(int x) {
+            x = x -1;
+            x = x | x >> 1;
+            x = x | x >> 2;
+            x = x | x >> 4;
+            x = x | x >> 16;
+            x = x + 1;
+            return x;
+        }
 
 #ifdef MAX_RES_1080P
-    OMX_ERRORTYPE vdec_alloc_h264_mv();
-    void vdec_dealloc_h264_mv();
-    OMX_ERRORTYPE vdec_alloc_meta_buffers();
-    void vdec_dealloc_meta_buffers();
+        OMX_ERRORTYPE vdec_alloc_h264_mv();
+        void vdec_dealloc_h264_mv();
+        OMX_ERRORTYPE vdec_alloc_meta_buffers();
+        void vdec_dealloc_meta_buffers();
 #endif
 
-    inline void omx_report_error ()
-    {
-        if (m_cb.EventHandler && !m_error_propogated)
-        {
-            ALOGE("\nERROR: Sending OMX_EventError to Client");
-            m_error_propogated = true;
-            m_cb.EventHandler(&m_cmp,m_app_data,
-                  OMX_EventError,OMX_ErrorHardware,0,NULL);
+        inline void omx_report_error () {
+            if (m_cb.EventHandler && !m_error_propogated) {
+                ALOGE("\nERROR: Sending OMX_EventError to Client");
+                m_error_propogated = true;
+                m_cb.EventHandler(&m_cmp,m_app_data,
+                        OMX_EventError,OMX_ErrorHardware,0,NULL);
+            }
         }
-    }
 #ifdef _ANDROID_
-    OMX_ERRORTYPE createDivxDrmContext();
+        OMX_ERRORTYPE createDivxDrmContext();
 #endif //_ANDROID_
 #if defined (_ANDROID_HONEYCOMB_) || defined (_ANDROID_ICS_)
-    OMX_ERRORTYPE use_android_native_buffer(OMX_IN OMX_HANDLETYPE hComp, OMX_PTR data);
+        OMX_ERRORTYPE use_android_native_buffer(OMX_IN OMX_HANDLETYPE hComp, OMX_PTR data);
 #endif
 #if defined (_ANDROID_ICS_)
-    struct nativebuffer{
-        native_handle_t *nativehandle;
-	private_handle_t *privatehandle;
-        int inuse;
-    };
-    nativebuffer native_buffer[MAX_NUM_INPUT_OUTPUT_BUFFERS];
+        struct nativebuffer {
+            native_handle_t *nativehandle;
+            private_handle_t *privatehandle;
+            int inuse;
+        };
+        nativebuffer native_buffer[MAX_NUM_INPUT_OUTPUT_BUFFERS];
 #endif
 
 
-    //*************************************************************
-    //*******************MEMBER VARIABLES *************************
-    //*************************************************************
-    pthread_mutex_t       m_lock;
-    pthread_mutex_t       c_lock;
-    //sem to handle the minimum procesing of commands
-    sem_t                 m_cmd_lock;
-    bool              m_error_propogated;
-    // compression format
-    OMX_VIDEO_CODINGTYPE eCompressionFormat;
-    // OMX State
-    OMX_STATETYPE m_state;
-    // Application data
-    OMX_PTR m_app_data;
-    // Application callbacks
-    OMX_CALLBACKTYPE m_cb;
-    OMX_PRIORITYMGMTTYPE m_priority_mgm ;
-    OMX_PARAM_BUFFERSUPPLIERTYPE m_buffer_supplier;
-    // fill this buffer queue
-    omx_cmd_queue         m_ftb_q;
-    // Command Q for rest of the events
-    omx_cmd_queue         m_cmd_q;
-    omx_cmd_queue         m_etb_q;
-    // Input memory pointer
-    OMX_BUFFERHEADERTYPE  *m_inp_mem_ptr;
-    // Output memory pointer
-    OMX_BUFFERHEADERTYPE  *m_out_mem_ptr;
-    // number of input bitstream error frame count
-    unsigned int m_inp_err_count;
+        //*************************************************************
+        //*******************MEMBER VARIABLES *************************
+        //*************************************************************
+        pthread_mutex_t       m_lock;
+        pthread_mutex_t       c_lock;
+        //sem to handle the minimum procesing of commands
+        sem_t                 m_cmd_lock;
+        bool              m_error_propogated;
+        // compression format
+        OMX_VIDEO_CODINGTYPE eCompressionFormat;
+        // OMX State
+        OMX_STATETYPE m_state;
+        // Application data
+        OMX_PTR m_app_data;
+        // Application callbacks
+        OMX_CALLBACKTYPE m_cb;
+        OMX_PRIORITYMGMTTYPE m_priority_mgm ;
+        OMX_PARAM_BUFFERSUPPLIERTYPE m_buffer_supplier;
+        // fill this buffer queue
+        omx_cmd_queue         m_ftb_q;
+        // Command Q for rest of the events
+        omx_cmd_queue         m_cmd_q;
+        omx_cmd_queue         m_etb_q;
+        // Input memory pointer
+        OMX_BUFFERHEADERTYPE  *m_inp_mem_ptr;
+        // Output memory pointer
+        OMX_BUFFERHEADERTYPE  *m_out_mem_ptr;
+        // number of input bitstream error frame count
+        unsigned int m_inp_err_count;
 #ifdef _ANDROID_
-    // Timestamp list
-    ts_arr_list           m_timestamp_list;
+        // Timestamp list
+        ts_arr_list           m_timestamp_list;
 #endif
 
-    bool input_flush_progress;
-    bool output_flush_progress;
-    bool input_use_buffer;
-    bool output_use_buffer;
-    bool ouput_egl_buffers;
-    OMX_BOOL m_use_output_pmem;
-    OMX_BOOL m_out_mem_region_smi;
-    OMX_BOOL m_out_pvt_entry_pmem;
+        bool input_flush_progress;
+        bool output_flush_progress;
+        bool input_use_buffer;
+        bool output_use_buffer;
+        bool ouput_egl_buffers;
+        OMX_BOOL m_use_output_pmem;
+        OMX_BOOL m_out_mem_region_smi;
+        OMX_BOOL m_out_pvt_entry_pmem;
 
-    int pending_input_buffers;
-    int pending_output_buffers;
-    // bitmask array size for output side
-    unsigned int m_out_bm_count;
-    // bitmask array size for input side
-    unsigned int m_inp_bm_count;
-    //Input port Populated
-    OMX_BOOL m_inp_bPopulated;
-    //Output port Populated
-    OMX_BOOL m_out_bPopulated;
-    // encapsulate the waiting states.
-    unsigned int m_flags;
+        int pending_input_buffers;
+        int pending_output_buffers;
+        // bitmask array size for output side
+        unsigned int m_out_bm_count;
+        // bitmask array size for input side
+        unsigned int m_inp_bm_count;
+        //Input port Populated
+        OMX_BOOL m_inp_bPopulated;
+        //Output port Populated
+        OMX_BOOL m_out_bPopulated;
+        // encapsulate the waiting states.
+        unsigned int m_flags;
 
 #ifdef _ANDROID_
-    // Heap pointer to frame buffers
-    struct vidc_heap
-    {
-        sp<MemoryHeapBase>    video_heap_ptr;
-    };
-    struct vidc_heap *m_heap_ptr;
-    unsigned int m_heap_count;
-#endif //_ANDROID_
-    // store I/P PORT state
-    OMX_BOOL m_inp_bEnabled;
-    // store O/P PORT state
-    OMX_BOOL m_out_bEnabled;
-    OMX_U32 m_in_alloc_cnt;
-    OMX_U8                m_cRole[OMX_MAX_STRINGNAME_SIZE];
-    // Platform specific details
-    OMX_QCOM_PLATFORM_PRIVATE_LIST      *m_platform_list;
-    OMX_QCOM_PLATFORM_PRIVATE_ENTRY     *m_platform_entry;
-    OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *m_pmem_info;
-    // SPS+PPS sent as part of set_config
-    OMX_VENDOR_EXTRADATATYPE            m_vendor_config;
-
-    /*Variables for arbitrary Byte parsing support*/
-    frame_parse m_frame_parser;
-    omx_cmd_queue m_input_pending_q;
-    omx_cmd_queue m_input_free_q;
-    bool arbitrary_bytes;
-    OMX_BUFFERHEADERTYPE  h264_scratch;
-    OMX_BUFFERHEADERTYPE  *psource_frame;
-    OMX_BUFFERHEADERTYPE  *pdest_frame;
-    OMX_BUFFERHEADERTYPE  *m_inp_heap_ptr;
-    OMX_BUFFERHEADERTYPE  **m_phdr_pmem_ptr;
-    unsigned int m_heap_inp_bm_count;
-    codec_type codec_type_parse;
-    bool first_frame_meta;
-    unsigned frame_count;
-    unsigned nal_count;
-    unsigned nal_length;
-    bool look_ahead_nal;
-    int first_frame;
-    unsigned char *first_buffer;
-    int first_frame_size;
-    unsigned char m_hwdevice_name[80];
-    FILE *m_device_file_ptr;
-    enum vc1_profile_type m_vc1_profile;
-    OMX_S64 h264_last_au_ts;
-    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;
-    OMX_U32 frm_int;
-
-    struct vdec_allocatorproperty op_buf_rcnfg;
-    bool in_reconfig;
-    OMX_NATIVE_WINDOWTYPE m_display_id;
-    h264_stream_parser *h264_parser;
-    OMX_U32 client_extradata;
-#ifdef _ANDROID_
-    bool m_debug_timestamp;
-    bool perf_flag;
-    OMX_U32 proc_frms, latency;
-    perf_metrics fps_metrics;
-    perf_metrics dec_time;
-    bool m_enable_android_native_buffers;
-    bool m_use_android_native_buffers;
-    bool m_debug_extradata;
-    bool m_debug_concealedmb;
-#endif
-#ifdef MAX_RES_1080P
-    MP4_Utils mp4_headerparser;
-#endif
-
-    struct h264_mv_buffer{
-        unsigned char* buffer;
-        int size;
-        int count;
-        int pmem_fd;
-        int offset;
-    };
-    h264_mv_buffer h264_mv_buff;
-
-    struct meta_buffer{
-        unsigned char* buffer;
-        int size;
-        int count;
-        int pmem_fd;
-        int pmem_fd_iommu;
-        int offset;
-    };
-    meta_buffer meta_buff;
-	extra_data_handler extra_data_handle;
-#ifdef _ANDROID_
-    DivXDrmDecrypt* iDivXDrmDecrypt;
-#endif //_ANDROID_
-    OMX_PARAM_PORTDEFINITIONTYPE m_port_def;
-    omx_time_stamp_reorder time_stamp_dts;
-    desc_buffer_hdr *m_desc_buffer_ptr;
-    bool secure_mode;
-    bool external_meta_buffer;
-    bool external_meta_buffer_iommu;
-    OMX_QCOM_EXTRADATA_FRAMEINFO *m_extradata;
-    bool codec_config_flag;
-#ifdef _MSM8974_
-    int capture_capability;
-    int output_capability;
-    bool streaming[MAX_PORT];
-    OMX_CONFIG_RECTTYPE rectangle;
-#endif
-    bool m_power_hinted;
-    OMX_ERRORTYPE power_module_register();
-    OMX_ERRORTYPE power_module_deregister();
-    bool msg_thread_created;
-    bool async_thread_created;
-
-    unsigned int m_fill_output_msg;
-    class allocate_color_convert_buf {
-    public:
-        allocate_color_convert_buf();
-        ~allocate_color_convert_buf();
-        void set_vdec_client(void *);
-        void update_client();
-        bool set_color_format(OMX_COLOR_FORMATTYPE dest_color_format);
-        bool get_color_format(OMX_COLOR_FORMATTYPE &dest_color_format);
-        bool update_buffer_req();
-        bool get_buffer_req(unsigned int &buffer_size);
-        OMX_BUFFERHEADERTYPE* get_il_buf_hdr();
-        OMX_BUFFERHEADERTYPE* get_il_buf_hdr(OMX_BUFFERHEADERTYPE *input_hdr);
-        OMX_BUFFERHEADERTYPE* get_dr_buf_hdr(OMX_BUFFERHEADERTYPE *input_hdr);
-        OMX_BUFFERHEADERTYPE* convert(OMX_BUFFERHEADERTYPE *header);
-        OMX_BUFFERHEADERTYPE* queue_buffer(OMX_BUFFERHEADERTYPE *header);
-        OMX_ERRORTYPE allocate_buffers_color_convert(OMX_HANDLETYPE hComp,
-             OMX_BUFFERHEADERTYPE **bufferHdr,OMX_U32 port,OMX_PTR appData,
-             OMX_U32 bytes);
-        OMX_ERRORTYPE free_output_buffer(OMX_BUFFERHEADERTYPE *bufferHdr);
-    private:
-        #define MAX_COUNT 32
-        omx_vdec *omx;
-        bool enabled;
-        OMX_COLOR_FORMATTYPE ColorFormat;
-        void init_members();
-        bool color_convert_mode;
-        ColorConvertFormat dest_format;
-        class omx_c2d_conv c2d;
-        unsigned int allocated_count;
-        unsigned int buffer_size_req;
-        unsigned int buffer_alignment_req;
-        OMX_QCOM_PLATFORM_PRIVATE_LIST      m_platform_list_client[MAX_COUNT];
-        OMX_QCOM_PLATFORM_PRIVATE_ENTRY     m_platform_entry_client[MAX_COUNT];
-        OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO m_pmem_info_client[MAX_COUNT];
-        OMX_BUFFERHEADERTYPE  m_out_mem_ptr_client[MAX_COUNT];
-#ifdef USE_ION
-        struct vdec_ion op_buf_ion_info[MAX_COUNT];
-#endif
-        unsigned char *pmem_baseaddress[MAX_COUNT];
-        int pmem_fd[MAX_COUNT];
-        struct vidc_heap
-        {
+        // Heap pointer to frame buffers
+        struct vidc_heap {
             sp<MemoryHeapBase>    video_heap_ptr;
         };
-        struct vidc_heap m_heap_ptr[MAX_COUNT];
-    };
-#if  defined (_MSM8960_) || defined (_MSM8974_)
-    allocate_color_convert_buf client_buffers;
+        struct vidc_heap *m_heap_ptr;
+        unsigned int m_heap_count;
+#endif //_ANDROID_
+        // store I/P PORT state
+        OMX_BOOL m_inp_bEnabled;
+        // store O/P PORT state
+        OMX_BOOL m_out_bEnabled;
+        OMX_U32 m_in_alloc_cnt;
+        OMX_U8                m_cRole[OMX_MAX_STRINGNAME_SIZE];
+        // Platform specific details
+        OMX_QCOM_PLATFORM_PRIVATE_LIST      *m_platform_list;
+        OMX_QCOM_PLATFORM_PRIVATE_ENTRY     *m_platform_entry;
+        OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *m_pmem_info;
+        // SPS+PPS sent as part of set_config
+        OMX_VENDOR_EXTRADATATYPE            m_vendor_config;
+
+        /*Variables for arbitrary Byte parsing support*/
+        frame_parse m_frame_parser;
+        omx_cmd_queue m_input_pending_q;
+        omx_cmd_queue m_input_free_q;
+        bool arbitrary_bytes;
+        OMX_BUFFERHEADERTYPE  h264_scratch;
+        OMX_BUFFERHEADERTYPE  *psource_frame;
+        OMX_BUFFERHEADERTYPE  *pdest_frame;
+        OMX_BUFFERHEADERTYPE  *m_inp_heap_ptr;
+        OMX_BUFFERHEADERTYPE  **m_phdr_pmem_ptr;
+        unsigned int m_heap_inp_bm_count;
+        codec_type codec_type_parse;
+        bool first_frame_meta;
+        unsigned frame_count;
+        unsigned nal_count;
+        unsigned nal_length;
+        bool look_ahead_nal;
+        int first_frame;
+        unsigned char *first_buffer;
+        int first_frame_size;
+        unsigned char m_hwdevice_name[80];
+        FILE *m_device_file_ptr;
+        enum vc1_profile_type m_vc1_profile;
+        OMX_S64 h264_last_au_ts;
+        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;
+        OMX_U32 frm_int;
+
+        struct vdec_allocatorproperty op_buf_rcnfg;
+        bool in_reconfig;
+        OMX_NATIVE_WINDOWTYPE m_display_id;
+        h264_stream_parser *h264_parser;
+        OMX_U32 client_extradata;
+#ifdef _ANDROID_
+        bool m_debug_timestamp;
+        bool perf_flag;
+        OMX_U32 proc_frms, latency;
+        perf_metrics fps_metrics;
+        perf_metrics dec_time;
+        bool m_enable_android_native_buffers;
+        bool m_use_android_native_buffers;
+        bool m_debug_extradata;
+        bool m_debug_concealedmb;
 #endif
-    HEVC_Utils mHEVCutils;
+#ifdef MAX_RES_1080P
+        MP4_Utils mp4_headerparser;
+#endif
+
+        struct h264_mv_buffer {
+            unsigned char* buffer;
+            int size;
+            int count;
+            int pmem_fd;
+            int offset;
+        };
+        h264_mv_buffer h264_mv_buff;
+
+        struct meta_buffer {
+            unsigned char* buffer;
+            int size;
+            int count;
+            int pmem_fd;
+            int pmem_fd_iommu;
+            int offset;
+        };
+        meta_buffer meta_buff;
+        extra_data_handler extra_data_handle;
+#ifdef _ANDROID_
+        DivXDrmDecrypt* iDivXDrmDecrypt;
+#endif //_ANDROID_
+        OMX_PARAM_PORTDEFINITIONTYPE m_port_def;
+        omx_time_stamp_reorder time_stamp_dts;
+        desc_buffer_hdr *m_desc_buffer_ptr;
+        bool secure_mode;
+        bool external_meta_buffer;
+        bool external_meta_buffer_iommu;
+        OMX_QCOM_EXTRADATA_FRAMEINFO *m_extradata;
+        bool codec_config_flag;
+#ifdef _MSM8974_
+        int capture_capability;
+        int output_capability;
+        bool streaming[MAX_PORT];
+        OMX_CONFIG_RECTTYPE rectangle;
+#endif
+        bool m_power_hinted;
+        OMX_ERRORTYPE power_module_register();
+        OMX_ERRORTYPE power_module_deregister();
+        bool msg_thread_created;
+        bool async_thread_created;
+
+        unsigned int m_fill_output_msg;
+        class allocate_color_convert_buf
+        {
+            public:
+                allocate_color_convert_buf();
+                ~allocate_color_convert_buf();
+                void set_vdec_client(void *);
+                void update_client();
+                bool set_color_format(OMX_COLOR_FORMATTYPE dest_color_format);
+                bool get_color_format(OMX_COLOR_FORMATTYPE &dest_color_format);
+                bool update_buffer_req();
+                bool get_buffer_req(unsigned int &buffer_size);
+                OMX_BUFFERHEADERTYPE* get_il_buf_hdr();
+                OMX_BUFFERHEADERTYPE* get_il_buf_hdr(OMX_BUFFERHEADERTYPE *input_hdr);
+                OMX_BUFFERHEADERTYPE* get_dr_buf_hdr(OMX_BUFFERHEADERTYPE *input_hdr);
+                OMX_BUFFERHEADERTYPE* convert(OMX_BUFFERHEADERTYPE *header);
+                OMX_BUFFERHEADERTYPE* queue_buffer(OMX_BUFFERHEADERTYPE *header);
+                OMX_ERRORTYPE allocate_buffers_color_convert(OMX_HANDLETYPE hComp,
+                        OMX_BUFFERHEADERTYPE **bufferHdr,OMX_U32 port,OMX_PTR appData,
+                        OMX_U32 bytes);
+                OMX_ERRORTYPE free_output_buffer(OMX_BUFFERHEADERTYPE *bufferHdr);
+            private:
+#define MAX_COUNT 32
+                omx_vdec *omx;
+                bool enabled;
+                OMX_COLOR_FORMATTYPE ColorFormat;
+                void init_members();
+                bool color_convert_mode;
+                ColorConvertFormat dest_format;
+                class omx_c2d_conv c2d;
+                unsigned int allocated_count;
+                unsigned int buffer_size_req;
+                unsigned int buffer_alignment_req;
+                OMX_QCOM_PLATFORM_PRIVATE_LIST      m_platform_list_client[MAX_COUNT];
+                OMX_QCOM_PLATFORM_PRIVATE_ENTRY     m_platform_entry_client[MAX_COUNT];
+                OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO m_pmem_info_client[MAX_COUNT];
+                OMX_BUFFERHEADERTYPE  m_out_mem_ptr_client[MAX_COUNT];
+#ifdef USE_ION
+                struct vdec_ion op_buf_ion_info[MAX_COUNT];
+#endif
+                unsigned char *pmem_baseaddress[MAX_COUNT];
+                int pmem_fd[MAX_COUNT];
+                struct vidc_heap {
+                    sp<MemoryHeapBase>    video_heap_ptr;
+                };
+                struct vidc_heap m_heap_ptr[MAX_COUNT];
+        };
+#if  defined (_MSM8960_) || defined (_MSM8974_)
+        allocate_color_convert_buf client_buffers;
+#endif
+        HEVC_Utils mHEVCutils;
 };
 
 #ifdef _MSM8974_
 enum instance_state {
-	MSM_VIDC_CORE_UNINIT_DONE = 0x0001,
-	MSM_VIDC_CORE_INIT,
-	MSM_VIDC_CORE_INIT_DONE,
-	MSM_VIDC_OPEN,
-	MSM_VIDC_OPEN_DONE,
-	MSM_VIDC_LOAD_RESOURCES,
-	MSM_VIDC_LOAD_RESOURCES_DONE,
-	MSM_VIDC_START,
-	MSM_VIDC_START_DONE,
-	MSM_VIDC_STOP,
-	MSM_VIDC_STOP_DONE,
-	MSM_VIDC_RELEASE_RESOURCES,
-	MSM_VIDC_RELEASE_RESOURCES_DONE,
-	MSM_VIDC_CLOSE,
-	MSM_VIDC_CLOSE_DONE,
-	MSM_VIDC_CORE_UNINIT,
+    MSM_VIDC_CORE_UNINIT_DONE = 0x0001,
+    MSM_VIDC_CORE_INIT,
+    MSM_VIDC_CORE_INIT_DONE,
+    MSM_VIDC_OPEN,
+    MSM_VIDC_OPEN_DONE,
+    MSM_VIDC_LOAD_RESOURCES,
+    MSM_VIDC_LOAD_RESOURCES_DONE,
+    MSM_VIDC_START,
+    MSM_VIDC_START_DONE,
+    MSM_VIDC_STOP,
+    MSM_VIDC_STOP_DONE,
+    MSM_VIDC_RELEASE_RESOURCES,
+    MSM_VIDC_RELEASE_RESOURCES_DONE,
+    MSM_VIDC_CLOSE,
+    MSM_VIDC_CLOSE_DONE,
+    MSM_VIDC_CORE_UNINIT,
 };
 
 enum vidc_resposes_id {
-	MSM_VIDC_DECODER_FLUSH_DONE = 0x11,
-	MSM_VIDC_DECODER_EVENT_CHANGE,
+    MSM_VIDC_DECODER_FLUSH_DONE = 0x11,
+    MSM_VIDC_DECODER_EVENT_CHANGE,
 };
 
 #endif // _MSM8974_
diff --git a/mm-video-v4l2/vidc/vdec/inc/power_module.h b/mm-video-v4l2/vidc/vdec/inc/power_module.h
index 59586a1..ba47c2f 100644
--- a/mm-video-v4l2/vidc/vdec/inc/power_module.h
+++ b/mm-video-v4l2/vidc/vdec/inc/power_module.h
@@ -1,5 +1,5 @@
 /*-------------------------------------------------------------------------
-Copyright (c) 2012, The Linux Foundation. All rights reserved.
+Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
 
   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions
@@ -32,11 +32,11 @@
 
 class PowerModule
 {
-  public:
-    static PowerModule *getInstance();
-    power_module_t *getPowerModuleHandle();
-  private:
-    static PowerModule *mPowerModuleInstance;
-    power_module_t *mPowerModuleHandle;
-    PowerModule() {}
+    public:
+        static PowerModule *getInstance();
+        power_module_t *getPowerModuleHandle();
+    private:
+        static PowerModule *mPowerModuleInstance;
+        power_module_t *mPowerModuleHandle;
+        PowerModule() {}
 };
diff --git a/mm-video-v4l2/vidc/vdec/inc/qtypes.h b/mm-video-v4l2/vidc/vdec/inc/qtypes.h
old mode 100755
new mode 100644
index 63126af..bef6e2d
--- a/mm-video-v4l2/vidc/vdec/inc/qtypes.h
+++ b/mm-video-v4l2/vidc/vdec/inc/qtypes.h
@@ -58,29 +58,29 @@
 ** Standard Types
 ** ----------------------------------------------------------------------- */
 
-/* The following definitions are the same accross platforms.  This first
-** group are the sanctioned types.
-*/
+    /* The following definitions are the same accross platforms.  This first
+     ** group are the sanctioned types.
+     */
 
-typedef  unsigned char      boolean;     /* Boolean value type. */
+    typedef  unsigned char      boolean;     /* Boolean value type. */
 
-typedef  unsigned int  uint32;      /* Unsigned 32 bit value */
-typedef  unsigned short     uint16;      /* Unsigned 16 bit value */
-typedef  unsigned char      uint8;       /* Unsigned 8  bit value */
+    typedef  unsigned int  uint32;      /* Unsigned 32 bit value */
+    typedef  unsigned short     uint16;      /* Unsigned 16 bit value */
+    typedef  unsigned char      uint8;       /* Unsigned 8  bit value */
 
-typedef  int    int32;       /* Signed 32 bit value */
-typedef  signed short       int16;       /* Signed 16 bit value */
-typedef  signed char        int8;        /* Signed 8  bit value */
+    typedef  int    int32;       /* Signed 32 bit value */
+    typedef  signed short       int16;       /* Signed 16 bit value */
+    typedef  signed char        int8;        /* Signed 8  bit value */
 
-/* This group are the deprecated types.  Their use should be
-** discontinued and new code should use the types above
-*/
-typedef  unsigned char     byte;         /* Unsigned 8  bit value type. */
-typedef  unsigned short    word;         /* Unsinged 16 bit value type. */
-typedef  unsigned long     dword;        /* Unsigned 32 bit value type. */
+    /* This group are the deprecated types.  Their use should be
+     ** discontinued and new code should use the types above
+     */
+    typedef  unsigned char     byte;         /* Unsigned 8  bit value type. */
+    typedef  unsigned short    word;         /* Unsinged 16 bit value type. */
+    typedef  unsigned long     dword;        /* Unsigned 32 bit value type. */
 
-typedef long long           int64;
-typedef unsigned long long  uint64;
+    typedef long long           int64;
+    typedef unsigned long long  uint64;
 
 
 #ifdef __cplusplus
diff --git a/mm-video-v4l2/vidc/vdec/inc/queue.h b/mm-video-v4l2/vidc/vdec/inc/queue.h
old mode 100755
new mode 100644
diff --git a/mm-video-v4l2/vidc/vdec/inc/ts_parser.h b/mm-video-v4l2/vidc/vdec/inc/ts_parser.h
old mode 100755
new mode 100644
index 8e884c7..161b64d
--- a/mm-video-v4l2/vidc/vdec/inc/ts_parser.h
+++ b/mm-video-v4l2/vidc/vdec/inc/ts_parser.h
@@ -1,88 +1,90 @@
-/*--------------------------------------------------------------------------

-Copyright (c) 2010-2012, The Linux Foundation. All rights reserved.

-

-Redistribution and use in source and binary forms, with or without

-modification, are permitted provided that the following conditions are met:

-    * Redistributions of source code must retain the above copyright

-      notice, this list of conditions and the following disclaimer.

-    * Redistributions in binary form must reproduce the above copyright

-      notice, this list of conditions and the following disclaimer in the

-      documentation and/or other materials provided with the distribution.

-    * Neither the name of The Linux Foundation nor

-      the names of its contributors may be used to endorse or promote

-      products derived from this software without specific prior written

-      permission.

-

-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

-IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

-NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR

-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;

-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF

-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---------------------------------------------------------------------------*/

-#ifndef __DTSPARSER_H

-#define __DTSPARSER_H

-

-#include "OMX_Core.h"

-#include "OMX_QCOMExtns.h"

-#include "qc_omx_component.h"

-

-#include<stdlib.h>

-

-#include <stdio.h>

-#include <inttypes.h>

-

-#ifdef _ANDROID_

-extern "C"{

-#include<utils/Log.h>

-}

-#else

-#define ALOGE(fmt, args...) fprintf(stderr, fmt, ##args)

-#endif /* _ANDROID_ */

-

-class omx_time_stamp_reorder {

-public:

-	omx_time_stamp_reorder();

-	~omx_time_stamp_reorder();

-	void set_timestamp_reorder_mode(bool flag);

-        void enable_debug_print(bool flag);

-	bool insert_timestamp(OMX_BUFFERHEADERTYPE *header);

-	bool get_next_timestamp(OMX_BUFFERHEADERTYPE *header, bool is_interlaced);

-	bool remove_time_stamp(OMX_TICKS ts, bool is_interlaced);

-	void flush_timestamp();

-

-private:

-	#define TIME_SZ 64

-	typedef struct timestamp {

-		OMX_TICKS timestamps;

-		bool in_use;

-	}timestamp;

-	typedef struct time_stamp_list {

-		timestamp input_timestamps[TIME_SZ];

-		time_stamp_list *next;

-		time_stamp_list *prev;

-		unsigned int entries_filled;

-	}time_stamp_list;

-	bool error;

-	time_stamp_list *phead,*pcurrent;

-	bool get_current_list();

-	bool add_new_list();

-	bool update_head();

-	void delete_list();

-	void handle_error()

-	{

-		ALOGE("Error handler called for TS Parser");

-		if (error)

-			return;

-		error = true;

-		delete_list();

-	}

-	bool reorder_ts;

-        bool print_debug;

-};

-#endif

+/*--------------------------------------------------------------------------
+Copyright (c) 2010-2012, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of The Linux Foundation nor
+      the names of its contributors may be used to endorse or promote
+      products derived from this software without specific prior written
+      permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------*/
+#ifndef __DTSPARSER_H
+#define __DTSPARSER_H
+
+#include "OMX_Core.h"
+#include "OMX_QCOMExtns.h"
+#include "qc_omx_component.h"
+
+#include<stdlib.h>
+
+#include <stdio.h>
+#include <inttypes.h>
+
+#ifdef _ANDROID_
+extern "C" {
+#include<utils/Log.h>
+}
+#else
+#define ALOGE(fmt, args...) fprintf(stderr, fmt, ##args)
+#endif /* _ANDROID_ */
+
+class omx_time_stamp_reorder
+{
+    public:
+        omx_time_stamp_reorder();
+        ~omx_time_stamp_reorder();
+        void set_timestamp_reorder_mode(bool flag);
+        void enable_debug_print(bool flag);
+        bool insert_timestamp(OMX_BUFFERHEADERTYPE *header);
+        bool get_next_timestamp(OMX_BUFFERHEADERTYPE *header, bool is_interlaced);
+        bool remove_time_stamp(OMX_TICKS ts, bool is_interlaced);
+        void flush_timestamp();
+
+    private:
+#define TIME_SZ 64
+        typedef struct timestamp {
+            OMX_TICKS timestamps;
+            bool in_use;
+        } timestamp;
+        typedef struct time_stamp_list {
+            timestamp input_timestamps[TIME_SZ];
+            time_stamp_list *next;
+            time_stamp_list *prev;
+            unsigned int entries_filled;
+        } time_stamp_list;
+        bool error;
+        time_stamp_list *phead,*pcurrent;
+        bool get_current_list();
+        bool add_new_list();
+        bool update_head();
+        void delete_list();
+        void handle_error() {
+            ALOGE("Error handler called for TS Parser");
+
+            if (error)
+                return;
+
+            error = true;
+            delete_list();
+        }
+        bool reorder_ts;
+        bool print_debug;
+};
+#endif
diff --git a/mm-video-v4l2/vidc/vdec/src/frameparser.cpp b/mm-video-v4l2/vidc/vdec/src/frameparser.cpp
old mode 100755
new mode 100644
index c591f5f..2dd9d4e
--- a/mm-video-v4l2/vidc/vdec/src/frameparser.cpp
+++ b/mm-video-v4l2/vidc/vdec/src/frameparser.cpp
@@ -46,9 +46,9 @@
 //#include "omx_vdec.h"
 
 #ifdef _ANDROID_
-    extern "C"{
-        #include<utils/Log.h>
-    }
+extern "C" {
+#include<utils/Log.h>
+}
 #endif//_ANDROID_
 
 #undef DEBUG_PRINT_LOW
@@ -75,17 +75,17 @@
 static unsigned char MPEG2_mask_code[4] = {0xFF, 0xFF, 0xFF, 0xFF};
 
 frame_parse::frame_parse():mutils(NULL),
-                           parse_state(A0),
-                           start_code(NULL),
-                           mask_code(NULL),
-                           last_byte_h263(0),
-                           last_byte(0),
-                           header_found(false),
-                           skip_frame_boundary(false),
-                           state_nal(NAL_LENGTH_ACC),
-                           nal_length(0),
-                           accum_length(0),
-                           bytes_tobeparsed(0)
+    parse_state(A0),
+    start_code(NULL),
+    mask_code(NULL),
+    last_byte_h263(0),
+    last_byte(0),
+    header_found(false),
+    skip_frame_boundary(false),
+    state_nal(NAL_LENGTH_ACC),
+    nal_length(0),
+    accum_length(0),
+    bytes_tobeparsed(0)
 {
 }
 
@@ -99,72 +99,70 @@
 
 int frame_parse::init_start_codes (codec_type codec_type_parse)
 {
-	/*Check if Codec Type is proper and we are in proper state*/
-	if (codec_type_parse > CODEC_TYPE_MAX || parse_state != A0)
-	{
-	  return -1;
-	}
+    /*Check if Codec Type is proper and we are in proper state*/
+    if (codec_type_parse > CODEC_TYPE_MAX || parse_state != A0) {
+        return -1;
+    }
 
-	switch (codec_type_parse)
-	{
-	case CODEC_TYPE_MPEG4:
-		start_code = MPEG4_start_code;
-		mask_code = MPEG4_mask_code;
-		break;
-	case CODEC_TYPE_H263:
-		start_code = H263_start_code;
-		mask_code = H263_mask_code;
-		break;
-	case CODEC_TYPE_H264:
-	case CODEC_TYPE_HEVC:
-		start_code = H264_start_code;
-		mask_code = H264_mask_code;
-		break;
-	case CODEC_TYPE_VC1:
-		start_code = VC1_AP_start_code;
-		mask_code = VC1_AP_mask_code;
-		break;
+    switch (codec_type_parse) {
+        case CODEC_TYPE_MPEG4:
+            start_code = MPEG4_start_code;
+            mask_code = MPEG4_mask_code;
+            break;
+        case CODEC_TYPE_H263:
+            start_code = H263_start_code;
+            mask_code = H263_mask_code;
+            break;
+        case CODEC_TYPE_H264:
+        case CODEC_TYPE_HEVC:
+            start_code = H264_start_code;
+            mask_code = H264_mask_code;
+            break;
+        case CODEC_TYPE_VC1:
+            start_code = VC1_AP_start_code;
+            mask_code = VC1_AP_mask_code;
+            break;
         case CODEC_TYPE_MPEG2:
-                start_code = MPEG2_start_code;
-                mask_code = MPEG2_mask_code;
-                break;
+            start_code = MPEG2_start_code;
+            mask_code = MPEG2_mask_code;
+            break;
 #ifdef _MSM8974_
         case CODEC_TYPE_VP8:
-                break;
+            break;
 #endif
         default:
-                return -1;
-        }
-	return 1;
+            return -1;
+    }
+
+    return 1;
 }
 
 
 int frame_parse::init_nal_length (unsigned int nal_len)
 {
-    if (nal_len == 0 || nal_len > 4 || state_nal != NAL_LENGTH_ACC)
-    {
-       return -1;
+    if (nal_len == 0 || nal_len > 4 || state_nal != NAL_LENGTH_ACC) {
+        return -1;
     }
+
     nal_length = nal_len;
 
     return 1;
 }
 
 int frame_parse::parse_sc_frame ( OMX_BUFFERHEADERTYPE *source,
-                                     OMX_BUFFERHEADERTYPE *dest ,
-                                     OMX_U32 *partialframe)
+        OMX_BUFFERHEADERTYPE *dest ,
+        OMX_U32 *partialframe)
 {
     OMX_U8 *pdest = NULL,*psource = NULL, match_found = FALSE, is_byte_match = 0;
     OMX_U32 dest_len =0, source_len = 0, temp_len = 0;
     OMX_U32 parsed_length = 0,i=0;
     int residue_byte = 0;
 
-    if (source == NULL || dest == NULL || partialframe == NULL)
-    {
+    if (source == NULL || dest == NULL || partialframe == NULL) {
         return -1;
     }
 
-  /*Calculate how many bytes are left in source and destination*/
+    /*Calculate how many bytes are left in source and destination*/
     dest_len = dest->nAllocLen - (dest->nFilledLen + dest->nOffset);
     psource = source->pBuffer + source->nOffset;
     pdest = dest->pBuffer + (dest->nFilledLen + dest->nOffset);
@@ -172,188 +170,167 @@
 
     /*Need Minimum Start Code size for destination to copy atleast Start code*/
     if ((start_code == H263_start_code && dest_len < 3) ||
-        (start_code != H263_start_code && dest_len < 4) || (source_len == 0))
-    {
+            (start_code != H263_start_code && dest_len < 4) || (source_len == 0)) {
         DEBUG_PRINT_LOW("\n FrameParser: dest_len %d source_len %d",dest_len,source_len);
-        if (source_len == 0 && (source->nFlags & 0x01))
-        {
+
+        if (source_len == 0 && (source->nFlags & 0x01)) {
             DEBUG_PRINT_LOW("\n FrameParser: EOS rxd!! Notify it as a complete frame");
             *partialframe = 0;
             return 1;
         }
+
         DEBUG_PRINT_LOW("\n FrameParser: Bitstream Parsing error");
         return -1;
     }
 
     /*Check if State of the previous find is a Start code*/
-    if (parse_state == A4 || parse_state == A5)
-    {
+    if (parse_state == A4 || parse_state == A5) {
         /*Check for minimun size should be 4*/
         dest->nFlags = source->nFlags;
         dest->nTimeStamp = source->nTimeStamp;
 
-        if(start_code == H263_start_code)
-        {
+        if (start_code == H263_start_code) {
             memcpy (pdest,start_code,2);
             pdest[2] = last_byte_h263;
             dest->nFilledLen += 3;
             pdest += 3;
-        }
-        else
-        {
+        } else {
             memcpy (pdest,start_code,4);
+
             if (start_code == VC1_AP_start_code
-                || start_code == MPEG4_start_code
-                || start_code == MPEG2_start_code)
-            {
+                    || start_code == MPEG4_start_code
+                    || start_code == MPEG2_start_code) {
                 pdest[3] = last_byte;
                 update_skip_frame();
             }
+
             dest->nFilledLen += 4;
             pdest += 4;
         }
+
         parse_state = A0;
     }
 
     /*Entry State Machine*/
     while ( source->nFilledLen > 0 && parse_state != A0
             && parse_state != A4 && parse_state != A5 && dest_len > 0
-          )
-    {
+          ) {
         //printf ("\n In the Entry Loop");
-        switch (parse_state)
-        {
-        case A3:
-            parse_additional_start_code(psource,&parsed_length);
-            if (parse_state == A4) {
-                source->nFilledLen--;
-                source->nOffset++;
-                psource++;
+        switch (parse_state) {
+            case A3:
+                parse_additional_start_code(psource,&parsed_length);
+
+                if (parse_state == A4) {
+                    source->nFilledLen--;
+                    source->nOffset++;
+                    psource++;
+                    break;
+                }
+
+                /*If fourth Byte is matching then start code is found*/
+                if ((*psource & mask_code [3]) == start_code [3]) {
+                    parse_state = A4;
+                    last_byte =  *psource;
+                    source->nFilledLen--;
+                    source->nOffset++;
+                    psource++;
+                } else if ((start_code [1] == start_code [0]) && (start_code [2]  == start_code [1])) {
+                    parse_state = A2;
+                    memcpy (pdest,start_code,1);
+                    pdest++;
+                    dest->nFilledLen++;
+                    dest_len--;
+                } else if (start_code [2] == start_code [0]) {
+                    parse_state = A1;
+                    memcpy (pdest,start_code,2);
+                    pdest += 2;
+                    dest->nFilledLen += 2;
+                    dest_len -= 2;
+                } else {
+                    parse_state = A0;
+                    memcpy (pdest,start_code,3);
+                    pdest += 3;
+                    dest->nFilledLen +=3;
+                    dest_len -= 3;
+                }
+
                 break;
-            }
-             /*If fourth Byte is matching then start code is found*/
-             if ((*psource & mask_code [3]) == start_code [3])
-             {
-               parse_state = A4;
-               last_byte =  *psource;
-               source->nFilledLen--;
-               source->nOffset++;
-               psource++;
-             }
-             else if ((start_code [1] == start_code [0]) && (start_code [2]  == start_code [1]))
-             {
-                 parse_state = A2;
-                 memcpy (pdest,start_code,1);
-                 pdest++;
-                 dest->nFilledLen++;
-                 dest_len--;
-             }
-             else if (start_code [2] == start_code [0])
-             {
-                 parse_state = A1;
-                 memcpy (pdest,start_code,2);
-                 pdest += 2;
-                 dest->nFilledLen += 2;
-                 dest_len -= 2;
-             }
-             else
-             {
-                 parse_state = A0;
-                 memcpy (pdest,start_code,3);
-                 pdest += 3;
-                 dest->nFilledLen +=3;
-                 dest_len -= 3;
-             }
-             break;
 
-        case A2:
-            is_byte_match = ((*psource & mask_code [2]) == start_code [2]);
-            match_found = FALSE;
+            case A2:
+                is_byte_match = ((*psource & mask_code [2]) == start_code [2]);
+                match_found = FALSE;
 
-            if (start_code == H263_start_code)
-            {
-                if (is_byte_match)
-                {
-                  last_byte_h263 = *psource;
-                  parse_state = A5;
-                  match_found = TRUE;
+                if (start_code == H263_start_code) {
+                    if (is_byte_match) {
+                        last_byte_h263 = *psource;
+                        parse_state = A5;
+                        match_found = TRUE;
+                    }
+                } else if (start_code == H264_start_code &&
+                        (*psource & mask_code [3]) == start_code [3]) {
+                    parse_state = A5;
+                    match_found = TRUE;
+                } else {
+                    if (is_byte_match) {
+                        parse_state = A3;
+                        match_found = TRUE;
+                    }
                 }
-            }
-            else if (start_code == H264_start_code &&
-                (*psource & mask_code [3]) == start_code [3])
-            {
-                parse_state = A5;
-                match_found = TRUE;
-            }
-            else
-            {
-                if (is_byte_match)
-                {
-                  parse_state = A3;
-                  match_found = TRUE;
+
+                if (match_found) {
+                    source->nFilledLen--;
+                    source->nOffset++;
+                    psource++;
+                } else if (start_code [1] == start_code [0]) {
+                    parse_state = A1;
+                    memcpy (pdest,start_code,1);
+                    dest->nFilledLen +=1;
+                    dest_len--;
+                    pdest++;
+                } else {
+                    parse_state = A0;
+                    memcpy (pdest,start_code,2);
+                    dest->nFilledLen +=2;
+                    dest_len -= 2;
+                    pdest += 2;
                 }
-            }
 
-            if (match_found)
-            {
-                  source->nFilledLen--;
-                  source->nOffset++;
-                  psource++;
-            }
-            else if (start_code [1] == start_code [0])
-            {
-                 parse_state = A1;
-                 memcpy (pdest,start_code,1);
-                 dest->nFilledLen +=1;
-                 dest_len--;
-                 pdest++;
-            }
-            else
-            {
-                 parse_state = A0;
-                 memcpy (pdest,start_code,2);
-                 dest->nFilledLen +=2;
-                 dest_len -= 2;
-                 pdest += 2;
-            }
+                break;
 
-            break;
+            case A1:
 
-         case A1:
-             if ((*psource & mask_code [1]) == start_code [1])
-             {
-                 parse_state = A2;
-                 source->nFilledLen--;
-                 source->nOffset++;
-                 psource++;
-             }
-             else
-             {
-                 memcpy (pdest,start_code,1);
-                 dest->nFilledLen +=1;
-                 pdest++;
-                 dest_len--;
-                 parse_state = A0;
-             }
-             break;
-         case A4:
-         case A0:
-         case A5:
-             break;
+                if ((*psource & mask_code [1]) == start_code [1]) {
+                    parse_state = A2;
+                    source->nFilledLen--;
+                    source->nOffset++;
+                    psource++;
+                } else {
+                    memcpy (pdest,start_code,1);
+                    dest->nFilledLen +=1;
+                    pdest++;
+                    dest_len--;
+                    parse_state = A0;
+                }
+
+                break;
+            case A4:
+            case A0:
+            case A5:
+                break;
         }
+
         dest_len = dest->nAllocLen - (dest->nFilledLen + dest->nOffset);
     }
 
-     if (parse_state == A4 || parse_state == A5)
-     {
-         *partialframe = 0;
-         check_skip_frame_boundary(partialframe);
-         DEBUG_PRINT_LOW("\n FrameParser: Parsed Len = %d", dest->nFilledLen);
-         return 1;
-     }
+    if (parse_state == A4 || parse_state == A5) {
+        *partialframe = 0;
+        check_skip_frame_boundary(partialframe);
+        DEBUG_PRINT_LOW("\n FrameParser: Parsed Len = %d", dest->nFilledLen);
+        return 1;
+    }
 
-     /*Partial Frame is true*/
-     *partialframe = 1;
+    /*Partial Frame is true*/
+    *partialframe = 1;
 
     /*Calculate how many bytes are left in source and destination*/
     dest_len = dest->nAllocLen - (dest->nFilledLen + dest->nOffset);
@@ -364,266 +341,241 @@
     temp_len = (source_len < dest_len)?source_len:dest_len;
 
     /*Check if entry state machine consumed source or destination*/
-    if (temp_len == 0)
-    {
+    if (temp_len == 0) {
         return 1;
     }
 
     /*Parsing State Machine*/
-    while  (parsed_length < temp_len)
-    {
-      switch (parse_state)
-      {
-      case A0:
-          if ((psource [parsed_length] & mask_code [0])  == start_code[0])
-          {
-            parse_state = A1;
-          }
-          parsed_length++;
-          break;
-      case A1:
-          if ((psource [parsed_length] & mask_code [1]) == start_code [1])
-          {
-            parsed_length++;
-            parse_state = A2;
-          }
-          else
-          {
-            parse_state = A0;
-          }
-      break;
-      case A2:
-          is_byte_match = ((psource[parsed_length] & mask_code [2]) == start_code [2]);
-          match_found = FALSE;
+    while  (parsed_length < temp_len) {
+        switch (parse_state) {
+            case A0:
 
-          if (start_code == H263_start_code)
-          {
-              if (is_byte_match)
-              {
-                  last_byte_h263 = psource[parsed_length];
-                  parse_state = A5;
-                  match_found = TRUE;
-              }
-          }
-          else if (start_code == H264_start_code &&
-              (psource[parsed_length] & mask_code [3]) == start_code [3])
-          {
-              parse_state = A5;
-              match_found = TRUE;
-          }
-          else
-          {
-              if(is_byte_match)
-              {
-                parse_state = A3;
-                match_found = TRUE;
-              }
-          }
+                if ((psource [parsed_length] & mask_code [0])  == start_code[0]) {
+                    parse_state = A1;
+                }
 
-          if (match_found)
-          {
-              parsed_length++;
-          }
-          else if (start_code [1] == start_code [0])
-          {
-               parse_state = A1;
-          }
-          else
-          {
-               parse_state = A0;
-          }
+                parsed_length++;
+                break;
+            case A1:
 
-          break;
-      case A3:
-          parse_additional_start_code(psource,&parsed_length);
-          if (parse_state == A4) break;
+                if ((psource [parsed_length] & mask_code [1]) == start_code [1]) {
+                    parsed_length++;
+                    parse_state = A2;
+                } else {
+                    parse_state = A0;
+                }
 
-          if ((psource [parsed_length] & mask_code [3]) == start_code [3])
-          {
-            last_byte = psource [parsed_length];
-            parsed_length++;
-            parse_state = A4;
-          }
-          else if ((start_code [1] == start_code [0]) && (start_code [2] == start_code [1]))
-          {
-             parse_state = A2;
-          }
-          else if (start_code [2] == start_code [0])
-          {
-              parse_state = A1;
-          }
-          else
-          {
-              parse_state = A0;
-          }
-          break;
-       case A4:
-       case A5:
-          break;
-      }
+                break;
+            case A2:
+                is_byte_match = ((psource[parsed_length] & mask_code [2]) == start_code [2]);
+                match_found = FALSE;
 
-      /*Found the code break*/
-      if (parse_state == A4 || parse_state == A5)
-      {
-          break;
-      }
+                if (start_code == H263_start_code) {
+                    if (is_byte_match) {
+                        last_byte_h263 = psource[parsed_length];
+                        parse_state = A5;
+                        match_found = TRUE;
+                    }
+                } else if (start_code == H264_start_code &&
+                        (psource[parsed_length] & mask_code [3]) == start_code [3]) {
+                    parse_state = A5;
+                    match_found = TRUE;
+                } else {
+                    if (is_byte_match) {
+                        parse_state = A3;
+                        match_found = TRUE;
+                    }
+                }
+
+                if (match_found) {
+                    parsed_length++;
+                } else if (start_code [1] == start_code [0]) {
+                    parse_state = A1;
+                } else {
+                    parse_state = A0;
+                }
+
+                break;
+            case A3:
+                parse_additional_start_code(psource,&parsed_length);
+
+                if (parse_state == A4) break;
+
+                if ((psource [parsed_length] & mask_code [3]) == start_code [3]) {
+                    last_byte = psource [parsed_length];
+                    parsed_length++;
+                    parse_state = A4;
+                } else if ((start_code [1] == start_code [0]) && (start_code [2] == start_code [1])) {
+                    parse_state = A2;
+                } else if (start_code [2] == start_code [0]) {
+                    parse_state = A1;
+                } else {
+                    parse_state = A0;
+                }
+
+                break;
+            case A4:
+            case A5:
+                break;
+        }
+
+        /*Found the code break*/
+        if (parse_state == A4 || parse_state == A5) {
+            break;
+        }
     }
 
     /*Exit State Machine*/
     psource = source->pBuffer + source->nOffset;
-    switch (parse_state)
-    {
-    case A5:
-      *partialframe = 0;
-      check_skip_frame_boundary(partialframe);
-      if (parsed_length > 3)
-      {
-        memcpy (pdest,psource,(parsed_length-3));
-        dest->nFilledLen += (parsed_length-3);
-      }
-      break;
-    case A4:
-      *partialframe = 0;
-      check_skip_frame_boundary(partialframe);
-      if (parsed_length > 4)
-      {
-        memcpy (pdest,psource,(parsed_length-4));
-        dest->nFilledLen += (parsed_length-4);
-      }
-      break;
-    case A3:
-      if (parsed_length > 3)
-      {
-        memcpy (pdest,psource,(parsed_length-3));
-        dest->nFilledLen += (parsed_length-3);
-      }
-      break;
-    case A2:
-        if (parsed_length > 2)
-        {
-          memcpy (pdest,psource,(parsed_length-2));
-          dest->nFilledLen += (parsed_length-2);
-        }
-      break;
-    case A1:
-        if (parsed_length > 1)
-        {
-          memcpy (pdest,psource,(parsed_length-1));
-          dest->nFilledLen += (parsed_length-1);
-        }
-      break;
-    case A0:
-      memcpy (pdest,psource,(parsed_length));
-      dest->nFilledLen += (parsed_length);
-      break;
+
+    switch (parse_state) {
+        case A5:
+            *partialframe = 0;
+            check_skip_frame_boundary(partialframe);
+
+            if (parsed_length > 3) {
+                memcpy (pdest,psource,(parsed_length-3));
+                dest->nFilledLen += (parsed_length-3);
+            }
+
+            break;
+        case A4:
+            *partialframe = 0;
+            check_skip_frame_boundary(partialframe);
+
+            if (parsed_length > 4) {
+                memcpy (pdest,psource,(parsed_length-4));
+                dest->nFilledLen += (parsed_length-4);
+            }
+
+            break;
+        case A3:
+
+            if (parsed_length > 3) {
+                memcpy (pdest,psource,(parsed_length-3));
+                dest->nFilledLen += (parsed_length-3);
+            }
+
+            break;
+        case A2:
+
+            if (parsed_length > 2) {
+                memcpy (pdest,psource,(parsed_length-2));
+                dest->nFilledLen += (parsed_length-2);
+            }
+
+            break;
+        case A1:
+
+            if (parsed_length > 1) {
+                memcpy (pdest,psource,(parsed_length-1));
+                dest->nFilledLen += (parsed_length-1);
+            }
+
+            break;
+        case A0:
+            memcpy (pdest,psource,(parsed_length));
+            dest->nFilledLen += (parsed_length);
+            break;
     }
 
-     if (source->nFilledLen < parsed_length)
-     {
-         printf ("\n FATAL Error");
-         return -1;
-     }
-      source->nFilledLen -= parsed_length;
-      source->nOffset += parsed_length;
+    if (source->nFilledLen < parsed_length) {
+        printf ("\n FATAL Error");
+        return -1;
+    }
+
+    source->nFilledLen -= parsed_length;
+    source->nOffset += parsed_length;
 
     return 1;
 }
 
 
 int frame_parse::parse_h264_nallength (OMX_BUFFERHEADERTYPE *source,
-                                       OMX_BUFFERHEADERTYPE *dest ,
-                                       OMX_U32 *partialframe)
+        OMX_BUFFERHEADERTYPE *dest ,
+        OMX_U32 *partialframe)
 {
     OMX_U8 *pdest = NULL,*psource = NULL;
     OMX_U32 dest_len =0, source_len = 0, temp_len = 0,parsed_length = 0;
 
-   if (source == NULL || dest == NULL || partialframe == NULL)
-   {
-       return -1;
-   }
+    if (source == NULL || dest == NULL || partialframe == NULL) {
+        return -1;
+    }
 
-   /*Calculate the length's*/
-   dest_len = dest->nAllocLen - (dest->nFilledLen + dest->nOffset);
-   source_len = source->nFilledLen;
+    /*Calculate the length's*/
+    dest_len = dest->nAllocLen - (dest->nFilledLen + dest->nOffset);
+    source_len = source->nFilledLen;
 
-   if (dest_len < 4 || source_len == 0 || nal_length == 0)
-   {
-       DEBUG_PRINT_LOW("\n FrameParser: NAL Parsing Error! dest_len %d "
-           "source_len %d nal_length %d", dest_len, source_len, nal_length);
-       return -1;
-   }
-   *partialframe = 1;
-   temp_len = (source_len < dest_len)?source_len:dest_len;
-   psource = source->pBuffer + source->nOffset;
-   pdest = dest->pBuffer + (dest->nFilledLen + dest->nOffset);
+    if (dest_len < 4 || source_len == 0 || nal_length == 0) {
+        DEBUG_PRINT_LOW("\n FrameParser: NAL Parsing Error! dest_len %d "
+                "source_len %d nal_length %d", dest_len, source_len, nal_length);
+        return -1;
+    }
 
-   /* Find the Bytes to Accumalte*/
-   if (state_nal == NAL_LENGTH_ACC)
-   {
-      while (parsed_length < temp_len )
-      {
-        bytes_tobeparsed |= (((OMX_U32)(*psource))) << (((nal_length-accum_length-1) << 3));
+    *partialframe = 1;
+    temp_len = (source_len < dest_len)?source_len:dest_len;
+    psource = source->pBuffer + source->nOffset;
+    pdest = dest->pBuffer + (dest->nFilledLen + dest->nOffset);
 
-        /*COPY THE DATA FOR C-SIM TO BE REOMVED ON TARGET*/
-        //*pdest = *psource;
-        accum_length++;
-        source->nFilledLen--;
-        source->nOffset++;
-        psource++;
-        //dest->nFilledLen++;
-        //pdest++;
-        parsed_length++;
+    /* Find the Bytes to Accumalte*/
+    if (state_nal == NAL_LENGTH_ACC) {
+        while (parsed_length < temp_len ) {
+            bytes_tobeparsed |= (((OMX_U32)(*psource))) << (((nal_length-accum_length-1) << 3));
 
-        if (accum_length == nal_length)
-        {
-            accum_length = 0;
-            state_nal = NAL_PARSING;
-            memcpy (pdest,H264_start_code,4);
-            dest->nFilledLen += 4;
-            break;
+            /*COPY THE DATA FOR C-SIM TO BE REOMVED ON TARGET*/
+            //*pdest = *psource;
+            accum_length++;
+            source->nFilledLen--;
+            source->nOffset++;
+            psource++;
+            //dest->nFilledLen++;
+            //pdest++;
+            parsed_length++;
+
+            if (accum_length == nal_length) {
+                accum_length = 0;
+                state_nal = NAL_PARSING;
+                memcpy (pdest,H264_start_code,4);
+                dest->nFilledLen += 4;
+                break;
+            }
         }
-      }
-   }
+    }
 
-   dest_len = dest->nAllocLen - (dest->nFilledLen + dest->nOffset);
-   source_len = source->nFilledLen;
-   temp_len = (source_len < dest_len)?source_len:dest_len;
+    dest_len = dest->nAllocLen - (dest->nFilledLen + dest->nOffset);
+    source_len = source->nFilledLen;
+    temp_len = (source_len < dest_len)?source_len:dest_len;
 
-   psource = source->pBuffer + source->nOffset;
-   pdest = dest->pBuffer + (dest->nFilledLen + dest->nOffset);
+    psource = source->pBuffer + source->nOffset;
+    pdest = dest->pBuffer + (dest->nFilledLen + dest->nOffset);
 
-   dest->nTimeStamp = source->nTimeStamp;
-   dest->nFlags = source->nFlags;
+    dest->nTimeStamp = source->nTimeStamp;
+    dest->nFlags = source->nFlags;
 
-   /*Already in Parsing state go ahead and copy*/
-   if(state_nal == NAL_PARSING && temp_len > 0)
-   {
-     if (temp_len < bytes_tobeparsed)
-     {
-         memcpy (pdest,psource,temp_len);
-         dest->nFilledLen += temp_len;
-         source->nOffset += temp_len;
-         source->nFilledLen -= temp_len;
-         bytes_tobeparsed -= temp_len;
-     }
-     else
-     {
-         memcpy (pdest,psource,bytes_tobeparsed);
-         temp_len -= bytes_tobeparsed;
-         dest->nFilledLen += bytes_tobeparsed;
-         source->nOffset += bytes_tobeparsed;
-         source->nFilledLen -= bytes_tobeparsed;
-         bytes_tobeparsed = 0;
-     }
-   }
+    /*Already in Parsing state go ahead and copy*/
+    if (state_nal == NAL_PARSING && temp_len > 0) {
+        if (temp_len < bytes_tobeparsed) {
+            memcpy (pdest,psource,temp_len);
+            dest->nFilledLen += temp_len;
+            source->nOffset += temp_len;
+            source->nFilledLen -= temp_len;
+            bytes_tobeparsed -= temp_len;
+        } else {
+            memcpy (pdest,psource,bytes_tobeparsed);
+            temp_len -= bytes_tobeparsed;
+            dest->nFilledLen += bytes_tobeparsed;
+            source->nOffset += bytes_tobeparsed;
+            source->nFilledLen -= bytes_tobeparsed;
+            bytes_tobeparsed = 0;
+        }
+    }
 
-   if (bytes_tobeparsed == 0 && state_nal == NAL_PARSING)
-   {
-       *partialframe = 0;
-       state_nal = NAL_LENGTH_ACC;
-   }
+    if (bytes_tobeparsed == 0 && state_nal == NAL_PARSING) {
+        *partialframe = 0;
+        state_nal = NAL_LENGTH_ACC;
+    }
 
-   return 1;
+    return 1;
 }
 
 void frame_parse::flush ()
@@ -637,28 +589,27 @@
 }
 
 void frame_parse::parse_additional_start_code(OMX_U8 *psource,
-                OMX_U32 *parsed_length)
+        OMX_U32 *parsed_length)
 {
 
     if (((start_code == MPEG4_start_code) ||
-        (start_code == MPEG2_start_code)) &&
-        psource &&
-        parsed_length)
-    {
+                (start_code == MPEG2_start_code)) &&
+            psource &&
+            parsed_length) {
         OMX_U32 index = *parsed_length;
+
         if ((start_code == MPEG4_start_code &&
-            (psource [index] & 0xF0) == 0x20) ||
-            (start_code == MPEG2_start_code &&
-            psource [index] == 0xB3))
-        {
-            if (header_found)
-            {
+                    (psource [index] & 0xF0) == 0x20) ||
+                (start_code == MPEG2_start_code &&
+                 psource [index] == 0xB3)) {
+            if (header_found) {
                 last_byte = psource [index];
                 index++;
                 parse_state = A4;
             } else
                 header_found = true;
         }
+
         *parsed_length = index;
     }
 }
@@ -666,12 +617,14 @@
 void frame_parse::check_skip_frame_boundary(OMX_U32 *partialframe)
 {
     if ((start_code == MPEG4_start_code ||
-          start_code == MPEG2_start_code) &&
-          partialframe) {
+                start_code == MPEG2_start_code) &&
+            partialframe) {
 
         *partialframe = 1;
+
         if (!skip_frame_boundary)
-           *partialframe = 0;
+            *partialframe = 0;
+
         skip_frame_boundary = false;
     }
 }
@@ -679,9 +632,9 @@
 void frame_parse::update_skip_frame()
 {
     if (((start_code == MPEG4_start_code) &&
-        ((last_byte & 0xF0) == 0x20)) ||
-        ((start_code == MPEG2_start_code) &&
-        (last_byte == 0xB3))) {
+                ((last_byte & 0xF0) == 0x20)) ||
+            ((start_code == MPEG2_start_code) &&
+             (last_byte == 0xB3))) {
 
         skip_frame_boundary = true;
     }
diff --git a/mm-video-v4l2/vidc/vdec/src/h264_utils.cpp b/mm-video-v4l2/vidc/vdec/src/h264_utils.cpp
index d689162..1a95e11 100644
--- a/mm-video-v4l2/vidc/vdec/src/h264_utils.cpp
+++ b/mm-video-v4l2/vidc/vdec/src/h264_utils.cpp
@@ -53,27 +53,27 @@
 #include <sys/time.h>
 #ifdef _ANDROID_
 #include <cutils/properties.h>
-    extern "C"{
-        #include<utils/Log.h>
-    }
+extern "C" {
+#include<utils/Log.h>
+}
 
 #endif
 
 /* =======================================================================
 
-                DEFINITIONS AND DECLARATIONS FOR MODULE
+   DEFINITIONS AND DECLARATIONS FOR MODULE
 
-This section contains definitions for constants, macros, types, variables
-and other items needed by this module.
+   This section contains definitions for constants, macros, types, variables
+   and other items needed by this module.
 
-========================================================================== */
+   ========================================================================== */
 
 
 #define MAX_SUPPORTED_LEVEL 32
 
-RbspParser::RbspParser (const uint8 *_begin, const uint8 *_end)
+    RbspParser::RbspParser (const uint8 *_begin, const uint8 *_end)
 : begin (_begin), end(_end), pos (- 1), bit (0),
-cursor (0xFFFFFF), advanceNeeded (true)
+    cursor (0xFFFFFF), advanceNeeded (true)
 {
 }
 
@@ -96,8 +96,7 @@
 {
     ++pos;
     //if (pos >= stop)
-    if (begin + pos == end)
-    {
+    if (begin + pos == end) {
         /*lint -e{730}  Boolean argument to function
          * I don't see a problem here
          */
@@ -107,8 +106,7 @@
     cursor <<= 8;
     //cursor |= static_cast<uint32> (*pos);
     cursor |= static_cast<uint32> (begin[pos]);
-    if ((cursor & 0xFFFFFF) == 0x000003)
-    {
+    if ((cursor & 0xFFFFFF) == 0x000003) {
         advance ();
     }
     advanceNeeded = false;
@@ -118,18 +116,16 @@
 uint32 RbspParser::u (uint32 n)
 {
     uint32 i, s, x = 0;
-    for (i = 0; i < n; i += s)
-    {
+    for (i = 0; i < n; i += s) {
         s = static_cast<uint32>STD_MIN(static_cast<int>(8 - bit),
-            static_cast<int>(n - i));
+                static_cast<int>(n - i));
         x <<= s;
 
         x |= ((next () >> ((8 - static_cast<uint32>(bit)) - s)) &
-            ((1 << s) - 1));
+                ((1 << s) - 1));
 
         bit = (bit + s) % 8;
-        if (!bit)
-        {
+        if (!bit) {
             advanceNeeded = true;
         }
     }
@@ -140,8 +136,7 @@
 uint32 RbspParser::ue ()
 {
     int leadingZeroBits = -1;
-    for (uint32 b = 0; !b; ++leadingZeroBits)
-    {
+    for (uint32 b = 0; !b; ++leadingZeroBits) {
         b = u (1);
     }
     return ((1 << leadingZeroBits) - 1) +
@@ -165,212 +160,202 @@
 }
 
 H264_Utils::H264_Utils(): m_height(0),
-                          m_width(0),
-                          m_rbspBytes(NULL),
-                          m_au_data (false)
+    m_width(0),
+    m_rbspBytes(NULL),
+    m_au_data (false)
 {
     initialize_frame_checking_environment();
 }
 
 H264_Utils::~H264_Utils()
 {
-/*  if(m_pbits)
-  {
-    delete(m_pbits);
-    m_pbits = NULL;
-  }
-*/
-  if (m_rbspBytes)
-  {
-    free(m_rbspBytes);
-    m_rbspBytes = NULL;
-  }
+    /*  if(m_pbits)
+        {
+        delete(m_pbits);
+        m_pbits = NULL;
+        }
+     */
+    if (m_rbspBytes) {
+        free(m_rbspBytes);
+        m_rbspBytes = NULL;
+    }
 }
 
 /***********************************************************************/
 /*
 FUNCTION:
-  H264_Utils::initialize_frame_checking_environment
+H264_Utils::initialize_frame_checking_environment
 
 DESCRIPTION:
-  Extract RBSP data from a NAL
+Extract RBSP data from a NAL
 
 INPUT/OUTPUT PARAMETERS:
-  None
+None
 
 RETURN VALUE:
-  boolean
+boolean
 
 SIDE EFFECTS:
-  None.
-*/
+None.
+ */
 /***********************************************************************/
 void H264_Utils::initialize_frame_checking_environment()
 {
-  m_forceToStichNextNAL = false;
-  m_au_data = false;
-  m_prv_nalu.nal_ref_idc = 0;
-  m_prv_nalu.nalu_type = NALU_TYPE_UNSPECIFIED;
+    m_forceToStichNextNAL = false;
+    m_au_data = false;
+    m_prv_nalu.nal_ref_idc = 0;
+    m_prv_nalu.nalu_type = NALU_TYPE_UNSPECIFIED;
 }
 
 /***********************************************************************/
 /*
 FUNCTION:
-  H264_Utils::extract_rbsp
+H264_Utils::extract_rbsp
 
 DESCRIPTION:
-  Extract RBSP data from a NAL
+Extract RBSP data from a NAL
 
 INPUT/OUTPUT PARAMETERS:
-  <In>
-    buffer : buffer containing start code or nal length + NAL units
-    buffer_length : the length of the NAL buffer
-    start_code : If true, start code is detected,
-                 otherwise size nal length is detected
-    size_of_nal_length_field: size of nal length field
+<In>
+buffer : buffer containing start code or nal length + NAL units
+buffer_length : the length of the NAL buffer
+start_code : If true, start code is detected,
+otherwise size nal length is detected
+size_of_nal_length_field: size of nal length field
 
-  <Out>
-    rbsp_bistream : extracted RBSP bistream
-    rbsp_length : the length of the RBSP bitstream
-    nal_unit : decoded NAL header information
+<Out>
+rbsp_bistream : extracted RBSP bistream
+rbsp_length : the length of the RBSP bitstream
+nal_unit : decoded NAL header information
 
 RETURN VALUE:
-  boolean
+boolean
 
 SIDE EFFECTS:
-  None.
-*/
+None.
+ */
 /***********************************************************************/
 
 boolean H264_Utils::extract_rbsp(OMX_IN   OMX_U8  *buffer,
-                                 OMX_IN   OMX_U32 buffer_length,
-                                 OMX_IN   OMX_U32 size_of_nal_length_field,
-                                 OMX_OUT  OMX_U8  *rbsp_bistream,
-                                 OMX_OUT  OMX_U32 *rbsp_length,
-                                 OMX_OUT  NALU    *nal_unit)
+        OMX_IN   OMX_U32 buffer_length,
+        OMX_IN   OMX_U32 size_of_nal_length_field,
+        OMX_OUT  OMX_U8  *rbsp_bistream,
+        OMX_OUT  OMX_U32 *rbsp_length,
+        OMX_OUT  NALU    *nal_unit)
 {
-  byte coef1, coef2, coef3;
-  uint32 pos = 0;
-  uint32 nal_len = buffer_length;
-  uint32 sizeofNalLengthField = 0;
-  uint32 zero_count;
-  boolean eRet = true;
-  boolean start_code = (size_of_nal_length_field==0)?true:false;
+    byte coef1, coef2, coef3;
+    uint32 pos = 0;
+    uint32 nal_len = buffer_length;
+    uint32 sizeofNalLengthField = 0;
+    uint32 zero_count;
+    boolean eRet = true;
+    boolean start_code = (size_of_nal_length_field==0)?true:false;
 
-  if(start_code) {
-    // Search start_code_prefix_one_3bytes (0x000001)
-    coef2 = buffer[pos++];
-    coef3 = buffer[pos++];
-    do {
-      if(pos >= buffer_length)
-      {
+    if (start_code) {
+        // Search start_code_prefix_one_3bytes (0x000001)
+        coef2 = buffer[pos++];
+        coef3 = buffer[pos++];
+        do {
+            if (pos >= buffer_length) {
+                ALOGE("ERROR: In %s() - line %d", __func__, __LINE__);
+                return false;
+            }
+
+            coef1 = coef2;
+            coef2 = coef3;
+            coef3 = buffer[pos++];
+        } while (coef1 || coef2 || coef3 != 1);
+    } else if (size_of_nal_length_field) {
+        /* This is the case to play multiple NAL units inside each access unit*/
+        /* Extract the NAL length depending on sizeOfNALength field */
+        sizeofNalLengthField = size_of_nal_length_field;
+        nal_len = 0;
+        while (size_of_nal_length_field--) {
+            nal_len |= buffer[pos++]<<(size_of_nal_length_field<<3);
+        }
+        if (nal_len >= buffer_length) {
+            ALOGE("ERROR: In %s() - line %d", __func__, __LINE__);
+            return false;
+        }
+    }
+
+    if (nal_len > buffer_length) {
         ALOGE("ERROR: In %s() - line %d", __func__, __LINE__);
         return false;
-      }
-
-      coef1 = coef2;
-      coef2 = coef3;
-      coef3 = buffer[pos++];
-    } while(coef1 || coef2 || coef3 != 1);
-  }
-  else if (size_of_nal_length_field)
-  {
-    /* This is the case to play multiple NAL units inside each access unit*/
-    /* Extract the NAL length depending on sizeOfNALength field */
-    sizeofNalLengthField = size_of_nal_length_field;
-    nal_len = 0;
-    while(size_of_nal_length_field--)
-    {
-      nal_len |= buffer[pos++]<<(size_of_nal_length_field<<3);
     }
-    if (nal_len >= buffer_length)
-    {
-      ALOGE("ERROR: In %s() - line %d", __func__, __LINE__);
-      return false;
+    if (pos + 1 > (nal_len + sizeofNalLengthField)) {
+        ALOGE("ERROR: In %s() - line %d", __func__, __LINE__);
+        return false;
     }
-  }
-
-  if (nal_len > buffer_length)
-  {
-    ALOGE("ERROR: In %s() - line %d", __func__, __LINE__);
-    return false;
-  }
-  if(pos + 1 > (nal_len + sizeofNalLengthField))
-  {
-    ALOGE("ERROR: In %s() - line %d", __func__, __LINE__);
-    return false;
-  }
-  if ((nal_unit->forbidden_zero_bit = (buffer[pos] & 0x80)) != 0)
-  {
-    ALOGE("ERROR: In %s() - line %d", __func__, __LINE__);
-  }
-  nal_unit->nal_ref_idc   = (buffer[pos] & 0x60) >> 5;
-  nal_unit->nalu_type = buffer[pos++] & 0x1f;
-  ALOGV("\n@#@# Pos = %x NalType = %x buflen = %d",
-      pos-1, nal_unit->nalu_type, buffer_length);
-  *rbsp_length = 0;
+    if ((nal_unit->forbidden_zero_bit = (buffer[pos] & 0x80)) != 0) {
+        ALOGE("ERROR: In %s() - line %d", __func__, __LINE__);
+    }
+    nal_unit->nal_ref_idc   = (buffer[pos] & 0x60) >> 5;
+    nal_unit->nalu_type = buffer[pos++] & 0x1f;
+    ALOGV("\n@#@# Pos = %x NalType = %x buflen = %d",
+            pos-1, nal_unit->nalu_type, buffer_length);
+    *rbsp_length = 0;
 
 
-  if( nal_unit->nalu_type == NALU_TYPE_EOSEQ ||
-      nal_unit->nalu_type == NALU_TYPE_EOSTREAM)
-    return (nal_len + sizeofNalLengthField);
+    if ( nal_unit->nalu_type == NALU_TYPE_EOSEQ ||
+            nal_unit->nalu_type == NALU_TYPE_EOSTREAM)
+        return (nal_len + sizeofNalLengthField);
 
-  zero_count = 0;
-  while (pos < (nal_len+sizeofNalLengthField))    //similar to for in p-42
-   {
-    if( zero_count == 2 ) {
-      if( buffer[pos] == 0x03 ) {
-        pos ++;
-        zero_count = 0;
-        continue;
-      }
-      if( buffer[pos] <= 0x01 ) {
-        if( start_code ) {
-          *rbsp_length -= 2;
-          pos -= 2;
-          return pos;
+    zero_count = 0;
+    while (pos < (nal_len+sizeofNalLengthField)) {  //similar to for in p-42
+        if ( zero_count == 2 ) {
+            if ( buffer[pos] == 0x03 ) {
+                pos ++;
+                zero_count = 0;
+                continue;
+            }
+            if ( buffer[pos] <= 0x01 ) {
+                if ( start_code ) {
+                    *rbsp_length -= 2;
+                    pos -= 2;
+                    return pos;
+                }
+            }
+            zero_count = 0;
         }
-      }
-      zero_count = 0;
+        zero_count ++;
+        if ( buffer[pos] != 0 )
+            zero_count = 0;
+
+        rbsp_bistream[(*rbsp_length)++] = buffer[pos++];
     }
-    zero_count ++;
-    if( buffer[pos] != 0 )
-      zero_count = 0;
 
-    rbsp_bistream[(*rbsp_length)++] = buffer[pos++];
-  }
-
-  return eRet;
+    return eRet;
 }
 
 /*===========================================================================
 FUNCTION:
-  H264_Utils::iSNewFrame
+H264_Utils::iSNewFrame
 
 DESCRIPTION:
-  Returns true if NAL parsing successfull otherwise false.
+Returns true if NAL parsing successfull otherwise false.
 
 INPUT/OUTPUT PARAMETERS:
-  <In>
-    buffer : buffer containing start code or nal length + NAL units
-    buffer_length : the length of the NAL buffer
-    start_code : If true, start code is detected,
-                 otherwise size nal length is detected
-    size_of_nal_length_field: size of nal length field
-  <out>
-    isNewFrame: true if the NAL belongs to a differenet frame
-                false if the NAL belongs to a current frame
+<In>
+buffer : buffer containing start code or nal length + NAL units
+buffer_length : the length of the NAL buffer
+start_code : If true, start code is detected,
+otherwise size nal length is detected
+size_of_nal_length_field: size of nal length field
+<out>
+isNewFrame: true if the NAL belongs to a differenet frame
+false if the NAL belongs to a current frame
 
 RETURN VALUE:
-  boolean  true, if nal parsing is successful
-           false, if the nal parsing has errors
+boolean  true, if nal parsing is successful
+false, if the nal parsing has errors
 
 SIDE EFFECTS:
-  None.
+None.
 ===========================================================================*/
 bool H264_Utils::isNewFrame(OMX_BUFFERHEADERTYPE *p_buf_hdr,
-                            OMX_IN OMX_U32 size_of_nal_length_field,
-                            OMX_OUT OMX_BOOL &isNewFrame)
+        OMX_IN OMX_U32 size_of_nal_length_field,
+        OMX_OUT OMX_BOOL &isNewFrame)
 {
     NALU nal_unit;
     uint16 first_mb_in_slice = 0;
@@ -380,80 +365,64 @@
     bool eRet = true;
 
     ALOGV("isNewFrame: buffer %p buffer_length %d "
-        "size_of_nal_length_field %d\n", buffer, buffer_length,
-        size_of_nal_length_field);
+            "size_of_nal_length_field %d\n", buffer, buffer_length,
+            size_of_nal_length_field);
 
     if ( false == extract_rbsp(buffer, buffer_length, size_of_nal_length_field,
-                               m_rbspBytes, &numBytesInRBSP, &nal_unit) )
-    {
+                m_rbspBytes, &numBytesInRBSP, &nal_unit) ) {
         ALOGE("ERROR: In %s() - extract_rbsp() failed", __func__);
         isNewFrame = OMX_FALSE;
         eRet = false;
-    }
-    else
-    {
-      nalu_type = nal_unit.nalu_type;
-      switch (nal_unit.nalu_type)
-      {
-        case NALU_TYPE_IDR:
-        case NALU_TYPE_NON_IDR:
-        {
-          ALOGV("\n AU Boundary with NAL type %d ",nal_unit.nalu_type);
-          if (m_forceToStichNextNAL)
-          {
-            isNewFrame = OMX_FALSE;
-          }
-          else
-          {
-            RbspParser rbsp_parser(m_rbspBytes, (m_rbspBytes+numBytesInRBSP));
-            first_mb_in_slice = rbsp_parser.ue();
+    } else {
+        nalu_type = nal_unit.nalu_type;
+        switch (nal_unit.nalu_type) {
+            case NALU_TYPE_IDR:
+            case NALU_TYPE_NON_IDR: {
+                            ALOGV("\n AU Boundary with NAL type %d ",nal_unit.nalu_type);
+                            if (m_forceToStichNextNAL) {
+                                isNewFrame = OMX_FALSE;
+                            } else {
+                                RbspParser rbsp_parser(m_rbspBytes, (m_rbspBytes+numBytesInRBSP));
+                                first_mb_in_slice = rbsp_parser.ue();
 
-            if((!first_mb_in_slice) || /*(slice.prv_frame_num != slice.frame_num ) ||*/
-               ( (m_prv_nalu.nal_ref_idc != nal_unit.nal_ref_idc) && ( nal_unit.nal_ref_idc * m_prv_nalu.nal_ref_idc == 0 ) ) ||
-               /*( ((m_prv_nalu.nalu_type == NALU_TYPE_IDR) && (nal_unit.nalu_type == NALU_TYPE_IDR)) && (slice.idr_pic_id != slice.prv_idr_pic_id) ) || */
-               ( (m_prv_nalu.nalu_type != nal_unit.nalu_type ) && ((m_prv_nalu.nalu_type == NALU_TYPE_IDR) || (nal_unit.nalu_type == NALU_TYPE_IDR)) ) )
-            {
-              //ALOGV("Found a New Frame due to NALU_TYPE_IDR/NALU_TYPE_NON_IDR");
-              isNewFrame = OMX_TRUE;
-            }
-            else
-            {
-              isNewFrame = OMX_FALSE;
-            }
-          }
-          m_au_data = true;
-          m_forceToStichNextNAL = false;
-          break;
-        }
-        case NALU_TYPE_SPS:
-        case NALU_TYPE_PPS:
-        case NALU_TYPE_SEI:
-        {
-          ALOGV("\n Non-AU boundary with NAL type %d", nal_unit.nalu_type);
-          if(m_au_data)
-          {
-            isNewFrame = OMX_TRUE;
-            m_au_data = false;
-          }
-          else
-          {
-            isNewFrame =  OMX_FALSE;
-          }
+                                if ((!first_mb_in_slice) || /*(slice.prv_frame_num != slice.frame_num ) ||*/
+                                        ( (m_prv_nalu.nal_ref_idc != nal_unit.nal_ref_idc) && ( nal_unit.nal_ref_idc * m_prv_nalu.nal_ref_idc == 0 ) ) ||
+                                        /*( ((m_prv_nalu.nalu_type == NALU_TYPE_IDR) && (nal_unit.nalu_type == NALU_TYPE_IDR)) && (slice.idr_pic_id != slice.prv_idr_pic_id) ) || */
+                                        ( (m_prv_nalu.nalu_type != nal_unit.nalu_type ) && ((m_prv_nalu.nalu_type == NALU_TYPE_IDR) || (nal_unit.nalu_type == NALU_TYPE_IDR)) ) ) {
+                                    //ALOGV("Found a New Frame due to NALU_TYPE_IDR/NALU_TYPE_NON_IDR");
+                                    isNewFrame = OMX_TRUE;
+                                } else {
+                                    isNewFrame = OMX_FALSE;
+                                }
+                            }
+                            m_au_data = true;
+                            m_forceToStichNextNAL = false;
+                            break;
+                        }
+            case NALU_TYPE_SPS:
+            case NALU_TYPE_PPS:
+            case NALU_TYPE_SEI: {
+                            ALOGV("\n Non-AU boundary with NAL type %d", nal_unit.nalu_type);
+                            if (m_au_data) {
+                                isNewFrame = OMX_TRUE;
+                                m_au_data = false;
+                            } else {
+                                isNewFrame =  OMX_FALSE;
+                            }
 
-          m_forceToStichNextNAL = true;
-          break;
-        }
-        case NALU_TYPE_ACCESS_DELIM:
-        case NALU_TYPE_UNSPECIFIED:
-        case NALU_TYPE_EOSEQ:
-        case NALU_TYPE_EOSTREAM:
-        default:
-        {
-          isNewFrame =  OMX_FALSE;
-          // Do not update m_forceToStichNextNAL
-          break;
-        }
-      } // end of switch
+                            m_forceToStichNextNAL = true;
+                            break;
+                        }
+            case NALU_TYPE_ACCESS_DELIM:
+            case NALU_TYPE_UNSPECIFIED:
+            case NALU_TYPE_EOSEQ:
+            case NALU_TYPE_EOSTREAM:
+            default: {
+                     isNewFrame =  OMX_FALSE;
+                     // Do not update m_forceToStichNextNAL
+                     break;
+                 }
+        } // end of switch
     } // end of if
     m_prv_nalu = nal_unit;
     ALOGV("get_h264_nal_type - newFrame value %d\n",isNewFrame);
@@ -462,788 +431,732 @@
 
 void perf_metrics::start()
 {
-  if (!active)
-  {
-    start_time = get_act_time();
-    active = true;
-  }
+    if (!active) {
+        start_time = get_act_time();
+        active = true;
+    }
 }
 
 void perf_metrics::stop()
 {
-  OMX_U64 stop_time = get_act_time();
-  if (active)
-  {
-    proc_time += (stop_time - start_time);
-    active = false;
-  }
+    OMX_U64 stop_time = get_act_time();
+    if (active) {
+        proc_time += (stop_time - start_time);
+        active = false;
+    }
 }
 
 void perf_metrics::end(OMX_U32 units_cntr)
 {
-  stop();
-  ALOGV("--> Processing time : [%.2f] Sec", (float)proc_time / 1e6);
-  if (units_cntr)
-  {
-    ALOGV("--> Avrg proc time  : [%.2f] mSec", proc_time / (float)(units_cntr * 1e3));
-  }
+    stop();
+    ALOGV("--> Processing time : [%.2f] Sec", (float)proc_time / 1e6);
+    if (units_cntr) {
+        ALOGV("--> Avrg proc time  : [%.2f] mSec", proc_time / (float)(units_cntr * 1e3));
+    }
 }
 
 void perf_metrics::reset()
 {
-  start_time = 0;
-  proc_time = 0;
-  active = false;
+    start_time = 0;
+    proc_time = 0;
+    active = false;
 }
 
 OMX_U64 perf_metrics::get_act_time()
 {
-  struct timeval act_time = {0, 0};
-  gettimeofday(&act_time, NULL);
-  return (act_time.tv_usec + act_time.tv_sec * 1e6);
+    struct timeval act_time = {0, 0};
+    gettimeofday(&act_time, NULL);
+    return (act_time.tv_usec + act_time.tv_sec * 1e6);
 }
 
 OMX_U64 perf_metrics::processing_time_us()
 {
-  return proc_time;
+    return proc_time;
 }
 
 h264_stream_parser::h264_stream_parser()
 {
-  reset();
+    reset();
 #ifdef PANSCAN_HDLR
-  panscan_hdl = new panscan_handler();
-  if (!panscan_hdl)
-  {
-    ALOGE("ERROR: Panscan hdl was not allocated!");
-  }
-  else if (!panscan_hdl->initialize(10))
-  {
-    ALOGE("ERROR: Allocating memory for panscan!");
-    delete panscan_hdl;
-    panscan_hdl = NULL;
-  }
+    panscan_hdl = new panscan_handler();
+    if (!panscan_hdl) {
+        ALOGE("ERROR: Panscan hdl was not allocated!");
+    } else if (!panscan_hdl->initialize(10)) {
+        ALOGE("ERROR: Allocating memory for panscan!");
+        delete panscan_hdl;
+        panscan_hdl = NULL;
+    }
 #else
-  memset(&panscan_param, 0, sizeof(panscan_param));
-  panscan_param.rect_id = NO_PAN_SCAN_BIT;
+    memset(&panscan_param, 0, sizeof(panscan_param));
+    panscan_param.rect_id = NO_PAN_SCAN_BIT;
 #endif
 }
 
 h264_stream_parser::~h264_stream_parser()
 {
 #ifdef PANSCAN_HDLR
-  if (panscan_hdl)
-  {
-    delete panscan_hdl;
-    panscan_hdl = NULL;
-  }
+    if (panscan_hdl) {
+        delete panscan_hdl;
+        panscan_hdl = NULL;
+    }
 #endif
 }
 
 void h264_stream_parser::reset()
 {
-  curr_32_bit = 0;
-  bits_read = 0;
-  zero_cntr = 0;
-  emulation_code_skip_cntr = 0;
-  emulation_sc_enabled = true;
-  bitstream = NULL;
-  bitstream_bytes = 0;
-  memset(&vui_param, 0, sizeof(vui_param));
-  vui_param.fixed_fps_prev_ts = LLONG_MAX;
-  memset(&sei_buf_period, 0, sizeof(sei_buf_period));
-  memset(&sei_pic_timing, 0, sizeof(sei_pic_timing));
-  memset(&frame_packing_arrangement,0,sizeof(frame_packing_arrangement));
-  frame_packing_arrangement.cancel_flag = 1;
-  mbaff_flag = 0;
+    curr_32_bit = 0;
+    bits_read = 0;
+    zero_cntr = 0;
+    emulation_code_skip_cntr = 0;
+    emulation_sc_enabled = true;
+    bitstream = NULL;
+    bitstream_bytes = 0;
+    memset(&vui_param, 0, sizeof(vui_param));
+    vui_param.fixed_fps_prev_ts = LLONG_MAX;
+    memset(&sei_buf_period, 0, sizeof(sei_buf_period));
+    memset(&sei_pic_timing, 0, sizeof(sei_pic_timing));
+    memset(&frame_packing_arrangement,0,sizeof(frame_packing_arrangement));
+    frame_packing_arrangement.cancel_flag = 1;
+    mbaff_flag = 0;
 }
 
 void h264_stream_parser::init_bitstream(OMX_U8* data, OMX_U32 size)
 {
-  bitstream = data;
-  bitstream_bytes = size;
-  curr_32_bit = 0;
-  bits_read = 0;
-  zero_cntr = 0;
-  emulation_code_skip_cntr = 0;
+    bitstream = data;
+    bitstream_bytes = size;
+    curr_32_bit = 0;
+    bits_read = 0;
+    zero_cntr = 0;
+    emulation_code_skip_cntr = 0;
 }
 
 void h264_stream_parser::parse_vui(bool vui_in_extradata)
 {
-  OMX_U32 value = 0;
-  ALOGV("parse_vui: IN");
-  if (vui_in_extradata)
-    while (!extract_bits(1) && more_bits()); // Discard VUI enable flag
-  if (!more_bits())
-    return;
+    OMX_U32 value = 0;
+    ALOGV("parse_vui: IN");
+    if (vui_in_extradata)
+        while (!extract_bits(1) && more_bits()); // Discard VUI enable flag
+    if (!more_bits())
+        return;
 
-  vui_param.aspect_ratio_info_present_flag = extract_bits(1); //aspect_ratio_info_present_flag
-  if (vui_param.aspect_ratio_info_present_flag)
-  {
-      ALOGV("Aspect Ratio Info present!");
-      aspect_ratio_info();
-  }
-
-  if (extract_bits(1)) //overscan_info_present_flag
-    extract_bits(1); //overscan_appropriate_flag
-  if (extract_bits(1)) //video_signal_type_present_flag
-  {
-    extract_bits(3); //video_format
-    extract_bits(1); //video_full_range_flag
-    if (extract_bits(1)) //colour_description_present_flag
-    {
-      extract_bits(8); //colour_primaries
-      extract_bits(8); //transfer_characteristics
-      extract_bits(8); //matrix_coefficients
+    vui_param.aspect_ratio_info_present_flag = extract_bits(1); //aspect_ratio_info_present_flag
+    if (vui_param.aspect_ratio_info_present_flag) {
+        ALOGV("Aspect Ratio Info present!");
+        aspect_ratio_info();
     }
-  }
-  if (extract_bits(1)) //chroma_location_info_present_flag
-  {
-    uev(); //chroma_sample_loc_type_top_field
-    uev(); //chroma_sample_loc_type_bottom_field
-  }
-  vui_param.timing_info_present_flag = extract_bits(1);
-  if (vui_param.timing_info_present_flag)
-  {
-    vui_param.num_units_in_tick = extract_bits(32);
-    vui_param.time_scale = extract_bits(32);
-    vui_param.fixed_frame_rate_flag = extract_bits(1);
-    ALOGV("Timing info present in VUI!");
-    ALOGV("  num units in tick  : %u", vui_param.num_units_in_tick);
-    ALOGV("  time scale         : %u", vui_param.time_scale);
-    ALOGV("  fixed frame rate   : %u", vui_param.fixed_frame_rate_flag);
-  }
-  vui_param.nal_hrd_parameters_present_flag = extract_bits(1);
-  if (vui_param.nal_hrd_parameters_present_flag)
-  {
-    ALOGV("nal hrd params present!");
-    hrd_parameters(&vui_param.nal_hrd_parameters);
-  }
-  vui_param.vcl_hrd_parameters_present_flag = extract_bits(1);
-  if (vui_param.vcl_hrd_parameters_present_flag)
-  {
-    ALOGV("vcl hrd params present!");
-    hrd_parameters(&vui_param.vcl_hrd_parameters);
-  }
-  if (vui_param.nal_hrd_parameters_present_flag ||
-      vui_param.vcl_hrd_parameters_present_flag)
-    vui_param.low_delay_hrd_flag = extract_bits(1);
-  vui_param.pic_struct_present_flag = extract_bits(1);
-  ALOGV("pic_struct_present_flag : %u", vui_param.pic_struct_present_flag);
-  if (extract_bits(1)) //bitstream_restriction_flag
-  {
-    extract_bits(1); //motion_vectors_over_pic_boundaries_flag
-    uev(); //max_bytes_per_pic_denom
-    uev(); //max_bits_per_mb_denom
-    uev(); //log2_max_mv_length_vertical
-    uev(); //log2_max_mv_length_horizontal
-    uev(); //num_reorder_frames
-    uev(); //max_dec_frame_buffering
-  }
-  ALOGV("parse_vui: OUT");
+
+    if (extract_bits(1)) //overscan_info_present_flag
+        extract_bits(1); //overscan_appropriate_flag
+    if (extract_bits(1)) { //video_signal_type_present_flag
+        extract_bits(3); //video_format
+        extract_bits(1); //video_full_range_flag
+        if (extract_bits(1)) { //colour_description_present_flag
+            extract_bits(8); //colour_primaries
+            extract_bits(8); //transfer_characteristics
+            extract_bits(8); //matrix_coefficients
+        }
+    }
+    if (extract_bits(1)) { //chroma_location_info_present_flag
+        uev(); //chroma_sample_loc_type_top_field
+        uev(); //chroma_sample_loc_type_bottom_field
+    }
+    vui_param.timing_info_present_flag = extract_bits(1);
+    if (vui_param.timing_info_present_flag) {
+        vui_param.num_units_in_tick = extract_bits(32);
+        vui_param.time_scale = extract_bits(32);
+        vui_param.fixed_frame_rate_flag = extract_bits(1);
+        ALOGV("Timing info present in VUI!");
+        ALOGV("  num units in tick  : %u", vui_param.num_units_in_tick);
+        ALOGV("  time scale         : %u", vui_param.time_scale);
+        ALOGV("  fixed frame rate   : %u", vui_param.fixed_frame_rate_flag);
+    }
+    vui_param.nal_hrd_parameters_present_flag = extract_bits(1);
+    if (vui_param.nal_hrd_parameters_present_flag) {
+        ALOGV("nal hrd params present!");
+        hrd_parameters(&vui_param.nal_hrd_parameters);
+    }
+    vui_param.vcl_hrd_parameters_present_flag = extract_bits(1);
+    if (vui_param.vcl_hrd_parameters_present_flag) {
+        ALOGV("vcl hrd params present!");
+        hrd_parameters(&vui_param.vcl_hrd_parameters);
+    }
+    if (vui_param.nal_hrd_parameters_present_flag ||
+            vui_param.vcl_hrd_parameters_present_flag)
+        vui_param.low_delay_hrd_flag = extract_bits(1);
+    vui_param.pic_struct_present_flag = extract_bits(1);
+    ALOGV("pic_struct_present_flag : %u", vui_param.pic_struct_present_flag);
+    if (extract_bits(1)) { //bitstream_restriction_flag
+        extract_bits(1); //motion_vectors_over_pic_boundaries_flag
+        uev(); //max_bytes_per_pic_denom
+        uev(); //max_bits_per_mb_denom
+        uev(); //log2_max_mv_length_vertical
+        uev(); //log2_max_mv_length_horizontal
+        uev(); //num_reorder_frames
+        uev(); //max_dec_frame_buffering
+    }
+    ALOGV("parse_vui: OUT");
 }
 
 void h264_stream_parser::aspect_ratio_info()
 {
-  ALOGV("aspect_ratio_info: IN");
-  OMX_U32  aspect_ratio_idc = 0;
-  OMX_U32  aspect_ratio_x = 0;
-  OMX_U32  aspect_ratio_y = 0;
-  aspect_ratio_idc = extract_bits(8); //aspect_ratio_idc
-  switch (aspect_ratio_idc)
-  {
-    case 1:
-      aspect_ratio_x = 1;
-      aspect_ratio_y = 1;
-      break;
-    case 2:
-      aspect_ratio_x = 12;
-      aspect_ratio_y = 11;
-      break;
-    case 3:
-      aspect_ratio_x = 10;
-      aspect_ratio_y = 11;
-      break;
-    case 4:
-      aspect_ratio_x = 16;
-      aspect_ratio_y = 11;
-      break;
-    case 5:
-      aspect_ratio_x = 40;
-      aspect_ratio_y = 33;
-      break;
-    case 6:
-      aspect_ratio_x = 24;
-      aspect_ratio_y = 11;
-      break;
-    case 7:
-      aspect_ratio_x = 20;
-      aspect_ratio_y = 11;
-      break;
-    case 8:
-      aspect_ratio_x = 32;
-      aspect_ratio_y = 11;
-      break;
-    case 9:
-      aspect_ratio_x = 80;
-      aspect_ratio_y = 33;
-      break;
-    case 10:
-      aspect_ratio_x = 18;
-      aspect_ratio_y = 11;
-      break;
-    case 11:
-      aspect_ratio_x = 15;
-      aspect_ratio_y = 11;
-      break;
-    case 12:
-      aspect_ratio_x = 64;
-      aspect_ratio_y = 33;
-      break;
-    case 13:
-      aspect_ratio_x = 160;
-      aspect_ratio_y = 99;
-      break;
-    case 14:
-      aspect_ratio_x = 4;
-      aspect_ratio_y = 3;
-      break;
-    case 15:
-      aspect_ratio_x = 3;
-      aspect_ratio_y = 2;
-      break;
-    case 16:
-      aspect_ratio_x = 2;
-      aspect_ratio_y = 1;
-      break;
-    case 255:
-      aspect_ratio_x = extract_bits(16); //sar_width
-      aspect_ratio_y = extract_bits(16); //sar_height
-      break;
-    default:
-      ALOGV("-->aspect_ratio_idc: Reserved Value ");
-      break;
-  }
-  ALOGV("-->aspect_ratio_idc        : %u", aspect_ratio_idc);
-  ALOGV("-->aspect_ratio_x          : %u", aspect_ratio_x);
-  ALOGV("-->aspect_ratio_y          : %u", aspect_ratio_y);
-  vui_param.aspect_ratio_info.aspect_ratio_idc = aspect_ratio_idc;
-  vui_param.aspect_ratio_info.aspect_ratio_x = aspect_ratio_x;
-  vui_param.aspect_ratio_info.aspect_ratio_y = aspect_ratio_y;
-  ALOGV("aspect_ratio_info: OUT");
+    ALOGV("aspect_ratio_info: IN");
+    OMX_U32  aspect_ratio_idc = 0;
+    OMX_U32  aspect_ratio_x = 0;
+    OMX_U32  aspect_ratio_y = 0;
+    aspect_ratio_idc = extract_bits(8); //aspect_ratio_idc
+    switch (aspect_ratio_idc) {
+        case 1:
+            aspect_ratio_x = 1;
+            aspect_ratio_y = 1;
+            break;
+        case 2:
+            aspect_ratio_x = 12;
+            aspect_ratio_y = 11;
+            break;
+        case 3:
+            aspect_ratio_x = 10;
+            aspect_ratio_y = 11;
+            break;
+        case 4:
+            aspect_ratio_x = 16;
+            aspect_ratio_y = 11;
+            break;
+        case 5:
+            aspect_ratio_x = 40;
+            aspect_ratio_y = 33;
+            break;
+        case 6:
+            aspect_ratio_x = 24;
+            aspect_ratio_y = 11;
+            break;
+        case 7:
+            aspect_ratio_x = 20;
+            aspect_ratio_y = 11;
+            break;
+        case 8:
+            aspect_ratio_x = 32;
+            aspect_ratio_y = 11;
+            break;
+        case 9:
+            aspect_ratio_x = 80;
+            aspect_ratio_y = 33;
+            break;
+        case 10:
+            aspect_ratio_x = 18;
+            aspect_ratio_y = 11;
+            break;
+        case 11:
+            aspect_ratio_x = 15;
+            aspect_ratio_y = 11;
+            break;
+        case 12:
+            aspect_ratio_x = 64;
+            aspect_ratio_y = 33;
+            break;
+        case 13:
+            aspect_ratio_x = 160;
+            aspect_ratio_y = 99;
+            break;
+        case 14:
+            aspect_ratio_x = 4;
+            aspect_ratio_y = 3;
+            break;
+        case 15:
+            aspect_ratio_x = 3;
+            aspect_ratio_y = 2;
+            break;
+        case 16:
+            aspect_ratio_x = 2;
+            aspect_ratio_y = 1;
+            break;
+        case 255:
+            aspect_ratio_x = extract_bits(16); //sar_width
+            aspect_ratio_y = extract_bits(16); //sar_height
+            break;
+        default:
+            ALOGV("-->aspect_ratio_idc: Reserved Value ");
+            break;
+    }
+    ALOGV("-->aspect_ratio_idc        : %u", aspect_ratio_idc);
+    ALOGV("-->aspect_ratio_x          : %u", aspect_ratio_x);
+    ALOGV("-->aspect_ratio_y          : %u", aspect_ratio_y);
+    vui_param.aspect_ratio_info.aspect_ratio_idc = aspect_ratio_idc;
+    vui_param.aspect_ratio_info.aspect_ratio_x = aspect_ratio_x;
+    vui_param.aspect_ratio_info.aspect_ratio_y = aspect_ratio_y;
+    ALOGV("aspect_ratio_info: OUT");
 }
 
 void h264_stream_parser::hrd_parameters(h264_hrd_param *hrd_param)
 {
-  OMX_U32 idx;
-  ALOGV("hrd_parameters: IN");
-  hrd_param->cpb_cnt = uev() + 1;
-  hrd_param->bit_rate_scale = extract_bits(4);
-  hrd_param->cpb_size_scale = extract_bits(4);
-  ALOGV("-->cpb_cnt        : %u", hrd_param->cpb_cnt);
-  ALOGV("-->bit_rate_scale : %u", hrd_param->bit_rate_scale);
-  ALOGV("-->cpb_size_scale : %u", hrd_param->cpb_size_scale);
-  if (hrd_param->cpb_cnt > MAX_CPB_COUNT)
-  {
-    ALOGV("ERROR: Invalid hrd_param->cpb_cnt [%u]!", hrd_param->cpb_cnt);
-    return;
-  }
-  for (idx = 0; idx < hrd_param->cpb_cnt && more_bits(); idx++)
-  {
-    hrd_param->bit_rate_value[idx] = uev() + 1;
-    hrd_param->cpb_size_value[idx] = uev() + 1;
-    hrd_param->cbr_flag[idx] = extract_bits(1);
-    ALOGV("-->bit_rate_value [%d] : %u", idx, hrd_param->bit_rate_value[idx]);
-    ALOGV("-->cpb_size_value [%d] : %u", idx, hrd_param->cpb_size_value[idx]);
-    ALOGV("-->cbr_flag       [%d] : %u", idx, hrd_param->cbr_flag[idx]);
-  }
-  hrd_param->initial_cpb_removal_delay_length = extract_bits(5) + 1;
-  hrd_param->cpb_removal_delay_length = extract_bits(5) + 1;
-  hrd_param->dpb_output_delay_length = extract_bits(5) + 1;
-  hrd_param->time_offset_length = extract_bits(5);
-  ALOGV("-->initial_cpb_removal_delay_length : %u", hrd_param->initial_cpb_removal_delay_length);
-  ALOGV("-->cpb_removal_delay_length         : %u", hrd_param->cpb_removal_delay_length);
-  ALOGV("-->dpb_output_delay_length          : %u", hrd_param->dpb_output_delay_length);
-  ALOGV("-->time_offset_length               : %u", hrd_param->time_offset_length);
-  ALOGV("hrd_parameters: OUT");
+    OMX_U32 idx;
+    ALOGV("hrd_parameters: IN");
+    hrd_param->cpb_cnt = uev() + 1;
+    hrd_param->bit_rate_scale = extract_bits(4);
+    hrd_param->cpb_size_scale = extract_bits(4);
+    ALOGV("-->cpb_cnt        : %u", hrd_param->cpb_cnt);
+    ALOGV("-->bit_rate_scale : %u", hrd_param->bit_rate_scale);
+    ALOGV("-->cpb_size_scale : %u", hrd_param->cpb_size_scale);
+    if (hrd_param->cpb_cnt > MAX_CPB_COUNT) {
+        ALOGV("ERROR: Invalid hrd_param->cpb_cnt [%u]!", hrd_param->cpb_cnt);
+        return;
+    }
+    for (idx = 0; idx < hrd_param->cpb_cnt && more_bits(); idx++) {
+        hrd_param->bit_rate_value[idx] = uev() + 1;
+        hrd_param->cpb_size_value[idx] = uev() + 1;
+        hrd_param->cbr_flag[idx] = extract_bits(1);
+        ALOGV("-->bit_rate_value [%d] : %u", idx, hrd_param->bit_rate_value[idx]);
+        ALOGV("-->cpb_size_value [%d] : %u", idx, hrd_param->cpb_size_value[idx]);
+        ALOGV("-->cbr_flag       [%d] : %u", idx, hrd_param->cbr_flag[idx]);
+    }
+    hrd_param->initial_cpb_removal_delay_length = extract_bits(5) + 1;
+    hrd_param->cpb_removal_delay_length = extract_bits(5) + 1;
+    hrd_param->dpb_output_delay_length = extract_bits(5) + 1;
+    hrd_param->time_offset_length = extract_bits(5);
+    ALOGV("-->initial_cpb_removal_delay_length : %u", hrd_param->initial_cpb_removal_delay_length);
+    ALOGV("-->cpb_removal_delay_length         : %u", hrd_param->cpb_removal_delay_length);
+    ALOGV("-->dpb_output_delay_length          : %u", hrd_param->dpb_output_delay_length);
+    ALOGV("-->time_offset_length               : %u", hrd_param->time_offset_length);
+    ALOGV("hrd_parameters: OUT");
 }
 
 void h264_stream_parser::parse_sei()
 {
-  OMX_U32 value = 0, processed_bytes = 0;
-  OMX_U8 *sei_msg_start = bitstream;
-  OMX_U32 sei_unit_size = bitstream_bytes;
-  ALOGV("@@parse_sei: IN sei_unit_size(%u)", sei_unit_size);
-  while ((processed_bytes + 2) < sei_unit_size && more_bits())
-  {
-    init_bitstream(sei_msg_start + processed_bytes, sei_unit_size - processed_bytes);
-    ALOGV("-->NALU_TYPE_SEI");
-    OMX_U32 payload_type = 0, payload_size = 0, aux = 0;
-    do {
-      value = extract_bits(8);
-      payload_type += value;
-      processed_bytes++;
-    } while (value == 0xFF);
-    ALOGV("-->payload_type   : %u", payload_type);
-    do {
-      value = extract_bits(8);
-      payload_size += value;
-      processed_bytes++;
-    } while (value == 0xFF);
-    ALOGV("-->payload_size   : %u", payload_size);
-    if (payload_size > 0)
-    {
-      switch (payload_type)
-      {
-        case BUFFERING_PERIOD:
-          sei_buffering_period();
-        break;
-        case PIC_TIMING:
-          sei_picture_timing();
-        break;
-        case PAN_SCAN_RECT:
-          sei_pan_scan();
-        break;
-        case SEI_PAYLOAD_FRAME_PACKING_ARRANGEMENT:
-          parse_frame_pack();
-        break;
-        default:
-          ALOGV("-->SEI payload type [%u] not implemented! size[%u]", payload_type, payload_size);
-      }
+    OMX_U32 value = 0, processed_bytes = 0;
+    OMX_U8 *sei_msg_start = bitstream;
+    OMX_U32 sei_unit_size = bitstream_bytes;
+    ALOGV("@@parse_sei: IN sei_unit_size(%u)", sei_unit_size);
+    while ((processed_bytes + 2) < sei_unit_size && more_bits()) {
+        init_bitstream(sei_msg_start + processed_bytes, sei_unit_size - processed_bytes);
+        ALOGV("-->NALU_TYPE_SEI");
+        OMX_U32 payload_type = 0, payload_size = 0, aux = 0;
+        do {
+            value = extract_bits(8);
+            payload_type += value;
+            processed_bytes++;
+        } while (value == 0xFF);
+        ALOGV("-->payload_type   : %u", payload_type);
+        do {
+            value = extract_bits(8);
+            payload_size += value;
+            processed_bytes++;
+        } while (value == 0xFF);
+        ALOGV("-->payload_size   : %u", payload_size);
+        if (payload_size > 0) {
+            switch (payload_type) {
+                case BUFFERING_PERIOD:
+                    sei_buffering_period();
+                    break;
+                case PIC_TIMING:
+                    sei_picture_timing();
+                    break;
+                case PAN_SCAN_RECT:
+                    sei_pan_scan();
+                    break;
+                case SEI_PAYLOAD_FRAME_PACKING_ARRANGEMENT:
+                    parse_frame_pack();
+                    break;
+                default:
+                    ALOGV("-->SEI payload type [%u] not implemented! size[%u]", payload_type, payload_size);
+            }
+        }
+        processed_bytes += (payload_size + emulation_code_skip_cntr);
+        ALOGV("-->SEI processed_bytes[%u]", processed_bytes);
     }
-    processed_bytes += (payload_size + emulation_code_skip_cntr);
-    ALOGV("-->SEI processed_bytes[%u]", processed_bytes);
-  }
-  ALOGV("@@parse_sei: OUT");
+    ALOGV("@@parse_sei: OUT");
 }
 
 void h264_stream_parser::sei_buffering_period()
 {
-  OMX_U32 idx;
-  OMX_U32 value = 0;
-  h264_hrd_param *hrd_param = NULL;
-  ALOGV("@@sei_buffering_period: IN");
-  value = uev(); // seq_parameter_set_id
-  ALOGV("-->seq_parameter_set_id : %u", value);
-  if (value > 31)
-  {
-    ALOGV("ERROR: Invalid seq_parameter_set_id [%u]!", value);
-    return;
-  }
-  sei_buf_period.is_valid = false;
-  if (vui_param.nal_hrd_parameters_present_flag)
-  {
-    hrd_param = &vui_param.nal_hrd_parameters;
-    if (hrd_param->cpb_cnt > MAX_CPB_COUNT)
-    {
-      ALOGV("ERROR: Invalid hrd_param->cpb_cnt [%u]!", hrd_param->cpb_cnt);
-      return;
+    OMX_U32 idx;
+    OMX_U32 value = 0;
+    h264_hrd_param *hrd_param = NULL;
+    ALOGV("@@sei_buffering_period: IN");
+    value = uev(); // seq_parameter_set_id
+    ALOGV("-->seq_parameter_set_id : %u", value);
+    if (value > 31) {
+        ALOGV("ERROR: Invalid seq_parameter_set_id [%u]!", value);
+        return;
     }
-    for (idx = 0; idx < hrd_param->cpb_cnt ; idx++)
-    {
-      sei_buf_period.is_valid = true;
-      sei_buf_period.initial_cpb_removal_delay[idx] = extract_bits(hrd_param->initial_cpb_removal_delay_length);
-      sei_buf_period.initial_cpb_removal_delay_offset[idx] = extract_bits(hrd_param->initial_cpb_removal_delay_length);
-      ALOGV("-->initial_cpb_removal_delay        : %u", sei_buf_period.initial_cpb_removal_delay[idx]);
-      ALOGV("-->initial_cpb_removal_delay_offset : %u", sei_buf_period.initial_cpb_removal_delay_offset[idx]);
+    sei_buf_period.is_valid = false;
+    if (vui_param.nal_hrd_parameters_present_flag) {
+        hrd_param = &vui_param.nal_hrd_parameters;
+        if (hrd_param->cpb_cnt > MAX_CPB_COUNT) {
+            ALOGV("ERROR: Invalid hrd_param->cpb_cnt [%u]!", hrd_param->cpb_cnt);
+            return;
+        }
+        for (idx = 0; idx < hrd_param->cpb_cnt ; idx++) {
+            sei_buf_period.is_valid = true;
+            sei_buf_period.initial_cpb_removal_delay[idx] = extract_bits(hrd_param->initial_cpb_removal_delay_length);
+            sei_buf_period.initial_cpb_removal_delay_offset[idx] = extract_bits(hrd_param->initial_cpb_removal_delay_length);
+            ALOGV("-->initial_cpb_removal_delay        : %u", sei_buf_period.initial_cpb_removal_delay[idx]);
+            ALOGV("-->initial_cpb_removal_delay_offset : %u", sei_buf_period.initial_cpb_removal_delay_offset[idx]);
+        }
     }
-  }
-  if (vui_param.vcl_hrd_parameters_present_flag)
-  {
-    hrd_param = &vui_param.vcl_hrd_parameters;
-    if (hrd_param->cpb_cnt > MAX_CPB_COUNT)
-    {
-      ALOGV("ERROR: Invalid hrd_param->cpb_cnt [%u]!", hrd_param->cpb_cnt);
-      return;
+    if (vui_param.vcl_hrd_parameters_present_flag) {
+        hrd_param = &vui_param.vcl_hrd_parameters;
+        if (hrd_param->cpb_cnt > MAX_CPB_COUNT) {
+            ALOGV("ERROR: Invalid hrd_param->cpb_cnt [%u]!", hrd_param->cpb_cnt);
+            return;
+        }
+        for (idx = 0; idx < hrd_param->cpb_cnt ; idx++) {
+            sei_buf_period.is_valid = true;
+            sei_buf_period.initial_cpb_removal_delay[idx] = extract_bits(hrd_param->initial_cpb_removal_delay_length);
+            sei_buf_period.initial_cpb_removal_delay_offset[idx] = extract_bits(hrd_param->initial_cpb_removal_delay_length);
+            ALOGV("-->initial_cpb_removal_delay        : %u", sei_buf_period.initial_cpb_removal_delay[idx]);
+            ALOGV("-->initial_cpb_removal_delay_offset : %u", sei_buf_period.initial_cpb_removal_delay_offset[idx]);
+        }
     }
-    for (idx = 0; idx < hrd_param->cpb_cnt ; idx++)
-    {
-      sei_buf_period.is_valid = true;
-      sei_buf_period.initial_cpb_removal_delay[idx] = extract_bits(hrd_param->initial_cpb_removal_delay_length);
-      sei_buf_period.initial_cpb_removal_delay_offset[idx] = extract_bits(hrd_param->initial_cpb_removal_delay_length);
-      ALOGV("-->initial_cpb_removal_delay        : %u", sei_buf_period.initial_cpb_removal_delay[idx]);
-      ALOGV("-->initial_cpb_removal_delay_offset : %u", sei_buf_period.initial_cpb_removal_delay_offset[idx]);
-    }
-  }
-  sei_buf_period.au_cntr = 0;
-  ALOGV("@@sei_buffering_period: OUT");
+    sei_buf_period.au_cntr = 0;
+    ALOGV("@@sei_buffering_period: OUT");
 }
 
 void h264_stream_parser::sei_picture_timing()
 {
-  ALOGV("@@sei_picture_timing: IN");
-  OMX_U32 time_offset_len = 0, cpb_removal_len = 24, dpb_output_len  = 24;
-  OMX_U8 cbr_flag = 0;
-  sei_pic_timing.is_valid = true;
-  if (vui_param.nal_hrd_parameters_present_flag)
-  {
-    cpb_removal_len = vui_param.nal_hrd_parameters.cpb_removal_delay_length;
-    dpb_output_len = vui_param.nal_hrd_parameters.dpb_output_delay_length;
-    time_offset_len = vui_param.nal_hrd_parameters.time_offset_length;
-    cbr_flag = vui_param.nal_hrd_parameters.cbr_flag[0];
-  }
-  else if (vui_param.vcl_hrd_parameters_present_flag)
-  {
-    cpb_removal_len = vui_param.vcl_hrd_parameters.cpb_removal_delay_length;
-    dpb_output_len = vui_param.vcl_hrd_parameters.dpb_output_delay_length;
-    time_offset_len = vui_param.vcl_hrd_parameters.time_offset_length;
-    cbr_flag = vui_param.vcl_hrd_parameters.cbr_flag[0];
-  }
-  sei_pic_timing.cpb_removal_delay = extract_bits(cpb_removal_len);
-  sei_pic_timing.dpb_output_delay = extract_bits(dpb_output_len);
-  ALOGV("-->cpb_removal_len : %u", cpb_removal_len);
-  ALOGV("-->dpb_output_len  : %u", dpb_output_len);
-  ALOGV("-->cpb_removal_delay : %u", sei_pic_timing.cpb_removal_delay);
-  ALOGV("-->dpb_output_delay  : %u", sei_pic_timing.dpb_output_delay);
-  if (vui_param.pic_struct_present_flag)
-  {
-    sei_pic_timing.pic_struct = extract_bits(4);
-    sei_pic_timing.num_clock_ts = 0;
-    switch (sei_pic_timing.pic_struct)
-    {
-      case 0: case 1: case 2: sei_pic_timing.num_clock_ts = 1; break;
-      case 3: case 4: case 7: sei_pic_timing.num_clock_ts = 2; break;
-      case 5: case 6: case 8: sei_pic_timing.num_clock_ts = 3; break;
-      default:
-        ALOGE("sei_picture_timing: pic_struct invalid!");
+    ALOGV("@@sei_picture_timing: IN");
+    OMX_U32 time_offset_len = 0, cpb_removal_len = 24, dpb_output_len  = 24;
+    OMX_U8 cbr_flag = 0;
+    sei_pic_timing.is_valid = true;
+    if (vui_param.nal_hrd_parameters_present_flag) {
+        cpb_removal_len = vui_param.nal_hrd_parameters.cpb_removal_delay_length;
+        dpb_output_len = vui_param.nal_hrd_parameters.dpb_output_delay_length;
+        time_offset_len = vui_param.nal_hrd_parameters.time_offset_length;
+        cbr_flag = vui_param.nal_hrd_parameters.cbr_flag[0];
+    } else if (vui_param.vcl_hrd_parameters_present_flag) {
+        cpb_removal_len = vui_param.vcl_hrd_parameters.cpb_removal_delay_length;
+        dpb_output_len = vui_param.vcl_hrd_parameters.dpb_output_delay_length;
+        time_offset_len = vui_param.vcl_hrd_parameters.time_offset_length;
+        cbr_flag = vui_param.vcl_hrd_parameters.cbr_flag[0];
     }
-    ALOGV("-->num_clock_ts      : %u", sei_pic_timing.num_clock_ts);
-    for (OMX_U32 i = 0; i < sei_pic_timing.num_clock_ts && more_bits(); i++)
-    {
-      sei_pic_timing.clock_ts_flag = extract_bits(1);
-      if(sei_pic_timing.clock_ts_flag)
-      {
-        ALOGV("-->clock_timestamp present!");
-        sei_pic_timing.ct_type = extract_bits(2);
-        sei_pic_timing.nuit_field_based_flag = extract_bits(1);
-        sei_pic_timing.counting_type = extract_bits(5);
-        sei_pic_timing.full_timestamp_flag = extract_bits(1);
-        sei_pic_timing.discontinuity_flag = extract_bits(1);
-        sei_pic_timing.cnt_dropped_flag = extract_bits(1);
-        sei_pic_timing.n_frames = extract_bits(8);
-        ALOGV("-->f_timestamp_flg   : %u", sei_pic_timing.full_timestamp_flag);
-        ALOGV("-->n_frames          : %u", sei_pic_timing.n_frames);
-        sei_pic_timing.seconds_value = 0;
-        sei_pic_timing.minutes_value = 0;
-        sei_pic_timing.hours_value = 0;
-        if (sei_pic_timing.full_timestamp_flag)
-        {
-          sei_pic_timing.seconds_value = extract_bits(6);
-          sei_pic_timing.minutes_value = extract_bits(6);
-          sei_pic_timing.hours_value = extract_bits(5);
+    sei_pic_timing.cpb_removal_delay = extract_bits(cpb_removal_len);
+    sei_pic_timing.dpb_output_delay = extract_bits(dpb_output_len);
+    ALOGV("-->cpb_removal_len : %u", cpb_removal_len);
+    ALOGV("-->dpb_output_len  : %u", dpb_output_len);
+    ALOGV("-->cpb_removal_delay : %u", sei_pic_timing.cpb_removal_delay);
+    ALOGV("-->dpb_output_delay  : %u", sei_pic_timing.dpb_output_delay);
+    if (vui_param.pic_struct_present_flag) {
+        sei_pic_timing.pic_struct = extract_bits(4);
+        sei_pic_timing.num_clock_ts = 0;
+        switch (sei_pic_timing.pic_struct) {
+            case 0:
+            case 1:
+            case 2:
+                sei_pic_timing.num_clock_ts = 1;
+                break;
+            case 3:
+            case 4:
+            case 7:
+                sei_pic_timing.num_clock_ts = 2;
+                break;
+            case 5:
+            case 6:
+            case 8:
+                sei_pic_timing.num_clock_ts = 3;
+                break;
+            default:
+                ALOGE("sei_picture_timing: pic_struct invalid!");
         }
-        else if (extract_bits(1))
-        {
-          ALOGV("-->seconds_flag enabled!");
-          sei_pic_timing.seconds_value = extract_bits(6);
-          if (extract_bits(1))
-          {
-            ALOGV("-->minutes_flag enabled!");
-            sei_pic_timing.minutes_value = extract_bits(6);
-            if (extract_bits(1))
-            {
-              ALOGV("-->hours_flag enabled!");
-              sei_pic_timing.hours_value = extract_bits(5);
+        ALOGV("-->num_clock_ts      : %u", sei_pic_timing.num_clock_ts);
+        for (OMX_U32 i = 0; i < sei_pic_timing.num_clock_ts && more_bits(); i++) {
+            sei_pic_timing.clock_ts_flag = extract_bits(1);
+            if (sei_pic_timing.clock_ts_flag) {
+                ALOGV("-->clock_timestamp present!");
+                sei_pic_timing.ct_type = extract_bits(2);
+                sei_pic_timing.nuit_field_based_flag = extract_bits(1);
+                sei_pic_timing.counting_type = extract_bits(5);
+                sei_pic_timing.full_timestamp_flag = extract_bits(1);
+                sei_pic_timing.discontinuity_flag = extract_bits(1);
+                sei_pic_timing.cnt_dropped_flag = extract_bits(1);
+                sei_pic_timing.n_frames = extract_bits(8);
+                ALOGV("-->f_timestamp_flg   : %u", sei_pic_timing.full_timestamp_flag);
+                ALOGV("-->n_frames          : %u", sei_pic_timing.n_frames);
+                sei_pic_timing.seconds_value = 0;
+                sei_pic_timing.minutes_value = 0;
+                sei_pic_timing.hours_value = 0;
+                if (sei_pic_timing.full_timestamp_flag) {
+                    sei_pic_timing.seconds_value = extract_bits(6);
+                    sei_pic_timing.minutes_value = extract_bits(6);
+                    sei_pic_timing.hours_value = extract_bits(5);
+                } else if (extract_bits(1)) {
+                    ALOGV("-->seconds_flag enabled!");
+                    sei_pic_timing.seconds_value = extract_bits(6);
+                    if (extract_bits(1)) {
+                        ALOGV("-->minutes_flag enabled!");
+                        sei_pic_timing.minutes_value = extract_bits(6);
+                        if (extract_bits(1)) {
+                            ALOGV("-->hours_flag enabled!");
+                            sei_pic_timing.hours_value = extract_bits(5);
+                        }
+                    }
+                }
+                sei_pic_timing.time_offset = 0;
+                if (time_offset_len > 0)
+                    sei_pic_timing.time_offset = iv(time_offset_len);
+                ALOGV("-->seconds_value     : %u", sei_pic_timing.seconds_value);
+                ALOGV("-->minutes_value     : %u", sei_pic_timing.minutes_value);
+                ALOGV("-->hours_value       : %u", sei_pic_timing.hours_value);
+                ALOGV("-->time_offset       : %d", sei_pic_timing.time_offset);
             }
-          }
         }
-        sei_pic_timing.time_offset = 0;
-        if (time_offset_len > 0)
-          sei_pic_timing.time_offset = iv(time_offset_len);
-        ALOGV("-->seconds_value     : %u", sei_pic_timing.seconds_value);
-        ALOGV("-->minutes_value     : %u", sei_pic_timing.minutes_value);
-        ALOGV("-->hours_value       : %u", sei_pic_timing.hours_value);
-        ALOGV("-->time_offset       : %d", sei_pic_timing.time_offset);
-      }
     }
-  }
-  ALOGV("@@sei_picture_timing: OUT");
+    ALOGV("@@sei_picture_timing: OUT");
 }
 
 void h264_stream_parser::sei_pan_scan()
 {
 #ifdef _ANDROID_
-  char property_value[PROPERTY_VALUE_MAX] = {0};
-  OMX_S32 enable_panscan_log = 0;
-  property_get("vidc.dec.debug.panframedata", property_value, "0");
-  enable_panscan_log = atoi(property_value);
+    char property_value[PROPERTY_VALUE_MAX] = {0};
+    OMX_S32 enable_panscan_log = 0;
+    property_get("vidc.dec.debug.panframedata", property_value, "0");
+    enable_panscan_log = atoi(property_value);
 #endif
 #ifdef PANSCAN_HDLR
-  h264_pan_scan *pan_scan_param = panscan_hdl->get_free();
+    h264_pan_scan *pan_scan_param = panscan_hdl->get_free();
 #else
-  h264_pan_scan *pan_scan_param = &panscan_param;
+    h264_pan_scan *pan_scan_param = &panscan_param;
 #endif
 
-  if (!pan_scan_param)
-  {
-    ALOGE("sei_pan_scan: ERROR: Invalid pointer!");
-    return;
-  }
-
-  pan_scan_param->rect_id = uev();
-  if (pan_scan_param->rect_id > 0xFF)
-  {
-    ALOGE("sei_pan_scan: ERROR: Invalid rect_id[%lu]!", pan_scan_param->rect_id);
-    pan_scan_param->rect_id = NO_PAN_SCAN_BIT;
-    return;
-  }
-
-  pan_scan_param->rect_cancel_flag = extract_bits(1);
-
-  if (pan_scan_param->rect_cancel_flag)
-    pan_scan_param->rect_id = NO_PAN_SCAN_BIT;
-  else
-  {
-    pan_scan_param->cnt = uev() + 1;
-    if (pan_scan_param->cnt > MAX_PAN_SCAN_RECT)
-    {
-      ALOGE("sei_pan_scan: ERROR: Invalid num of rect [%lu]!", pan_scan_param->cnt);
-      pan_scan_param->rect_id = NO_PAN_SCAN_BIT;
-      return;
+    if (!pan_scan_param) {
+        ALOGE("sei_pan_scan: ERROR: Invalid pointer!");
+        return;
     }
 
-    for (OMX_U32 i = 0; i < pan_scan_param->cnt; i++)
-    {
-      pan_scan_param->rect_left_offset[i] = sev();
-      pan_scan_param->rect_right_offset[i] = sev();
-      pan_scan_param->rect_top_offset[i] = sev();
-      pan_scan_param->rect_bottom_offset[i] = sev();
-
+    pan_scan_param->rect_id = uev();
+    if (pan_scan_param->rect_id > 0xFF) {
+        ALOGE("sei_pan_scan: ERROR: Invalid rect_id[%lu]!", pan_scan_param->rect_id);
+        pan_scan_param->rect_id = NO_PAN_SCAN_BIT;
+        return;
     }
-    pan_scan_param->rect_repetition_period = uev();
+
+    pan_scan_param->rect_cancel_flag = extract_bits(1);
+
+    if (pan_scan_param->rect_cancel_flag)
+        pan_scan_param->rect_id = NO_PAN_SCAN_BIT;
+    else {
+        pan_scan_param->cnt = uev() + 1;
+        if (pan_scan_param->cnt > MAX_PAN_SCAN_RECT) {
+            ALOGE("sei_pan_scan: ERROR: Invalid num of rect [%lu]!", pan_scan_param->cnt);
+            pan_scan_param->rect_id = NO_PAN_SCAN_BIT;
+            return;
+        }
+
+        for (OMX_U32 i = 0; i < pan_scan_param->cnt; i++) {
+            pan_scan_param->rect_left_offset[i] = sev();
+            pan_scan_param->rect_right_offset[i] = sev();
+            pan_scan_param->rect_top_offset[i] = sev();
+            pan_scan_param->rect_bottom_offset[i] = sev();
+
+        }
+        pan_scan_param->rect_repetition_period = uev();
 #ifdef PANSCAN_HDLR
-    if (pan_scan_param->rect_repetition_period > 1)
-      // Repetition period is decreased by 2 each time panscan data is used
-      pan_scan_param->rect_repetition_period *= 2;
+        if (pan_scan_param->rect_repetition_period > 1)
+            // Repetition period is decreased by 2 each time panscan data is used
+            pan_scan_param->rect_repetition_period *= 2;
 #endif
 #ifdef _ANDROID_
-     if (enable_panscan_log)
-     {
-       print_pan_data(pan_scan_param);
-     }
+        if (enable_panscan_log) {
+            print_pan_data(pan_scan_param);
+        }
 #endif
-  }
+    }
 }
 
 void h264_stream_parser::print_pan_data(h264_pan_scan *pan_scan_param)
 {
-  ALOGE("@@print_pan_data: IN");
+    ALOGE("@@print_pan_data: IN");
 
-  ALOGE("-->rect_id            : %lu", pan_scan_param->rect_id);
-  ALOGE("-->rect_cancel_flag   : %u", pan_scan_param->rect_cancel_flag);
+    ALOGE("-->rect_id            : %lu", pan_scan_param->rect_id);
+    ALOGE("-->rect_cancel_flag   : %u", pan_scan_param->rect_cancel_flag);
 
-  ALOGE("-->cnt                : %lu", pan_scan_param->cnt);
+    ALOGE("-->cnt                : %lu", pan_scan_param->cnt);
 
-  for (OMX_U32 i = 0; i < pan_scan_param->cnt; i++)
-  {
-    ALOGE("-->rect_left_offset   : %ld", pan_scan_param->rect_left_offset[i]);
-    ALOGE("-->rect_right_offset  : %ld", pan_scan_param->rect_right_offset[i]);
-    ALOGE("-->rect_top_offset    : %ld", pan_scan_param->rect_top_offset[i]);
-    ALOGE("-->rect_bottom_offset : %ld", pan_scan_param->rect_bottom_offset[i]);
-  }
-  ALOGE("-->repetition_period  : %lu", pan_scan_param->rect_repetition_period);
+    for (OMX_U32 i = 0; i < pan_scan_param->cnt; i++) {
+        ALOGE("-->rect_left_offset   : %ld", pan_scan_param->rect_left_offset[i]);
+        ALOGE("-->rect_right_offset  : %ld", pan_scan_param->rect_right_offset[i]);
+        ALOGE("-->rect_top_offset    : %ld", pan_scan_param->rect_top_offset[i]);
+        ALOGE("-->rect_bottom_offset : %ld", pan_scan_param->rect_bottom_offset[i]);
+    }
+    ALOGE("-->repetition_period  : %lu", pan_scan_param->rect_repetition_period);
 
-  ALOGE("@@print_pan_data: OUT");
+    ALOGE("@@print_pan_data: OUT");
 }
 
 void h264_stream_parser::parse_sps()
 {
-  OMX_U32 value = 0, scaling_matrix_limit;
-  ALOGV("@@parse_sps: IN");
-  value = extract_bits(8); //profile_idc
-  profile = value;
-  extract_bits(8); //constraint flags and reserved bits
-  extract_bits(8); //level_idc
-  uev(); //sps id
-  if (value == 100 || value == 110 || value == 122 || value == 244 ||
-      value ==  44 || value ==  83 || value ==  86 || value == 118)
-  {
-    if (uev() == 3) //chroma_format_idc
-    {
-      extract_bits(1); //separate_colour_plane_flag
-      scaling_matrix_limit = 12;
-    }
-    else
-      scaling_matrix_limit = 12;
-    uev(); //bit_depth_luma_minus8
-    uev(); //bit_depth_chroma_minus8
-    extract_bits(1); //qpprime_y_zero_transform_bypass_flag
-    if (extract_bits(1)) { //seq_scaling_matrix_present_flag
-      for (unsigned int i = 0; i < scaling_matrix_limit && more_bits(); i++)
-      {
-        if (extract_bits(1)) { ////seq_scaling_list_present_flag[ i ]
-          if (i < 6)
-            scaling_list(16);
-          else
-            scaling_list(64);
+    OMX_U32 value = 0, scaling_matrix_limit;
+    ALOGV("@@parse_sps: IN");
+    value = extract_bits(8); //profile_idc
+    profile = value;
+    extract_bits(8); //constraint flags and reserved bits
+    extract_bits(8); //level_idc
+    uev(); //sps id
+    if (value == 100 || value == 110 || value == 122 || value == 244 ||
+            value ==  44 || value ==  83 || value ==  86 || value == 118) {
+        if (uev() == 3) { //chroma_format_idc
+            extract_bits(1); //separate_colour_plane_flag
+            scaling_matrix_limit = 12;
+        } else
+            scaling_matrix_limit = 12;
+        uev(); //bit_depth_luma_minus8
+        uev(); //bit_depth_chroma_minus8
+        extract_bits(1); //qpprime_y_zero_transform_bypass_flag
+        if (extract_bits(1)) { //seq_scaling_matrix_present_flag
+            for (unsigned int i = 0; i < scaling_matrix_limit && more_bits(); i++) {
+                if (extract_bits(1)) { ////seq_scaling_list_present_flag[ i ]
+                    if (i < 6)
+                        scaling_list(16);
+                    else
+                        scaling_list(64);
+                }
+            }
         }
-      }
     }
-  }
-  uev(); //log2_max_frame_num_minus4
-  value = uev(); //pic_order_cnt_type
-  if (value == 0)
-    uev(); //log2_max_pic_order_cnt_lsb_minus4
-  else if (value == 1)
-  {
-    extract_bits(1); //delta_pic_order_always_zero_flag
-    sev(); //offset_for_non_ref_pic
-    sev(); //offset_for_top_to_bottom_field
-    value = uev(); // num_ref_frames_in_pic_order_cnt_cycle
-    for (unsigned int i = 0; i < value; i++)
-      sev(); //offset_for_ref_frame[ i ]
-  }
-  uev(); //max_num_ref_frames
-  extract_bits(1); //gaps_in_frame_num_value_allowed_flag
-  value = uev(); //pic_width_in_mbs_minus1
-  value = uev(); //pic_height_in_map_units_minus1
-  if (!extract_bits(1)) //frame_mbs_only_flag
-    mbaff_flag = extract_bits(1); //mb_adaptive_frame_field_flag
-  extract_bits(1); //direct_8x8_inference_flag
-  if (extract_bits(1)) //frame_cropping_flag
-  {
-    uev(); //frame_crop_left_offset
-    uev(); //frame_crop_right_offset
-    uev(); //frame_crop_top_offset
-    uev(); //frame_crop_bottom_offset
-  }
-  if (extract_bits(1)) //vui_parameters_present_flag
-    parse_vui(false);
-  ALOGV("@@parse_sps: OUT");
+    uev(); //log2_max_frame_num_minus4
+    value = uev(); //pic_order_cnt_type
+    if (value == 0)
+        uev(); //log2_max_pic_order_cnt_lsb_minus4
+    else if (value == 1) {
+        extract_bits(1); //delta_pic_order_always_zero_flag
+        sev(); //offset_for_non_ref_pic
+        sev(); //offset_for_top_to_bottom_field
+        value = uev(); // num_ref_frames_in_pic_order_cnt_cycle
+        for (unsigned int i = 0; i < value; i++)
+            sev(); //offset_for_ref_frame[ i ]
+    }
+    uev(); //max_num_ref_frames
+    extract_bits(1); //gaps_in_frame_num_value_allowed_flag
+    value = uev(); //pic_width_in_mbs_minus1
+    value = uev(); //pic_height_in_map_units_minus1
+    if (!extract_bits(1)) //frame_mbs_only_flag
+        mbaff_flag = extract_bits(1); //mb_adaptive_frame_field_flag
+    extract_bits(1); //direct_8x8_inference_flag
+    if (extract_bits(1)) { //frame_cropping_flag
+        uev(); //frame_crop_left_offset
+        uev(); //frame_crop_right_offset
+        uev(); //frame_crop_top_offset
+        uev(); //frame_crop_bottom_offset
+    }
+    if (extract_bits(1)) //vui_parameters_present_flag
+        parse_vui(false);
+    ALOGV("@@parse_sps: OUT");
 }
 
 void h264_stream_parser::scaling_list(OMX_U32 size_of_scaling_list)
 {
-  OMX_S32 last_scale = 8, next_scale = 8, delta_scale;
-  for (unsigned int j = 0; j < size_of_scaling_list; j++)
-  {
-    if (next_scale != 0)
-    {
-      delta_scale = sev();
-      next_scale = (last_scale + delta_scale + 256) % 256;
+    OMX_S32 last_scale = 8, next_scale = 8, delta_scale;
+    for (unsigned int j = 0; j < size_of_scaling_list; j++) {
+        if (next_scale != 0) {
+            delta_scale = sev();
+            next_scale = (last_scale + delta_scale + 256) % 256;
+        }
+        last_scale = (next_scale == 0)? last_scale : next_scale;
     }
-    last_scale = (next_scale == 0)? last_scale : next_scale;
-  }
 }
 
 OMX_U32 h264_stream_parser::extract_bits(OMX_U32 n)
 {
-  OMX_U32 value = 0;
-  if (n > 32)
-  {
-    ALOGE("ERROR: extract_bits limit to 32 bits!");
-    return value;
-  }
-  value = curr_32_bit >> (32 - n);
-  if (bits_read < n)
-  {
-    n -= bits_read;
-    read_word();
-    value |= (curr_32_bit >> (32 - n));
-    if (bits_read < n)
-    {
-      ALOGV("ERROR: extract_bits underflow!");
-      value >>= (n - bits_read);
-      n = bits_read;
+    OMX_U32 value = 0;
+    if (n > 32) {
+        ALOGE("ERROR: extract_bits limit to 32 bits!");
+        return value;
     }
-  }
-  bits_read -= n;
-  curr_32_bit <<= n;
-  return value;
+    value = curr_32_bit >> (32 - n);
+    if (bits_read < n) {
+        n -= bits_read;
+        read_word();
+        value |= (curr_32_bit >> (32 - n));
+        if (bits_read < n) {
+            ALOGV("ERROR: extract_bits underflow!");
+            value >>= (n - bits_read);
+            n = bits_read;
+        }
+    }
+    bits_read -= n;
+    curr_32_bit <<= n;
+    return value;
 }
 
 void h264_stream_parser::read_word()
 {
-  curr_32_bit = 0;
-  bits_read = 0;
-  while (bitstream_bytes && bits_read < 32)
-  {
-    if (*bitstream == EMULATION_PREVENTION_THREE_BYTE &&
-        zero_cntr >= 2 && emulation_sc_enabled)
-    {
-      ALOGV("EMULATION_PREVENTION_THREE_BYTE: Skip 0x03 byte aligned!");
-      emulation_code_skip_cntr++;
+    curr_32_bit = 0;
+    bits_read = 0;
+    while (bitstream_bytes && bits_read < 32) {
+        if (*bitstream == EMULATION_PREVENTION_THREE_BYTE &&
+                zero_cntr >= 2 && emulation_sc_enabled) {
+            ALOGV("EMULATION_PREVENTION_THREE_BYTE: Skip 0x03 byte aligned!");
+            emulation_code_skip_cntr++;
+        } else {
+            curr_32_bit <<= 8;
+            curr_32_bit |= *bitstream;
+            bits_read += 8;
+        }
+        if (*bitstream == 0)
+            zero_cntr++;
+        else
+            zero_cntr = 0;
+        bitstream++;
+        bitstream_bytes--;
     }
-    else
-    {
-      curr_32_bit <<= 8;
-      curr_32_bit |= *bitstream;
-      bits_read += 8;
-    }
-    if (*bitstream == 0)
-      zero_cntr++;
-    else
-      zero_cntr = 0;
-    bitstream++;
-    bitstream_bytes--;
-  }
-  curr_32_bit <<= (32 - bits_read);
+    curr_32_bit <<= (32 - bits_read);
 }
 
 OMX_U32 h264_stream_parser::uev()
 {
-  OMX_U32 lead_zero_bits = 0, code_num = 0;
-  while(!extract_bits(1) && more_bits())
-    lead_zero_bits++;
-  code_num = lead_zero_bits == 0 ? 0 :
-    (1 << lead_zero_bits) - 1 + extract_bits(lead_zero_bits);
-  return code_num;
+    OMX_U32 lead_zero_bits = 0, code_num = 0;
+    while (!extract_bits(1) && more_bits())
+        lead_zero_bits++;
+    code_num = lead_zero_bits == 0 ? 0 :
+        (1 << lead_zero_bits) - 1 + extract_bits(lead_zero_bits);
+    return code_num;
 }
 
 bool h264_stream_parser::more_bits()
 {
-  return (bitstream_bytes > 0 || bits_read > 0);
+    return (bitstream_bytes > 0 || bits_read > 0);
 }
 
 OMX_S32 h264_stream_parser::sev()
 {
-  OMX_U32 code_num = uev();
-  OMX_S32 ret;
-  ret = (code_num + 1) >> 1;
-  return ((code_num & 1) ? ret : -ret);
+    OMX_U32 code_num = uev();
+    OMX_S32 ret;
+    ret = (code_num + 1) >> 1;
+    return ((code_num & 1) ? ret : -ret);
 }
 
 OMX_S32 h264_stream_parser::iv(OMX_U32 n_bits)
 {
-  OMX_U32 code_num = extract_bits(n_bits);
-  OMX_S32 ret = (code_num >> (n_bits - 1))? (-1)*(~(code_num & ~(0x1 << (n_bits - 1))) + 1) : code_num;
-  return ret;
+    OMX_U32 code_num = extract_bits(n_bits);
+    OMX_S32 ret = (code_num >> (n_bits - 1))? (-1)*(~(code_num & ~(0x1 << (n_bits - 1))) + 1) : code_num;
+    return ret;
 }
 
 OMX_U32 h264_stream_parser::get_nal_unit_type(OMX_U32 *nal_unit_type)
 {
-  OMX_U32 value = 0, consumed_bytes = 3;
-  *nal_unit_type = NALU_TYPE_UNSPECIFIED;
-  ALOGV("-->get_nal_unit_type: IN");
-  value = extract_bits(24);
-  while (value != 0x00000001 && more_bits())
-  {
-    value <<= 8;
-    value |= extract_bits(8);
-    consumed_bytes++;
-  }
-  if (value != 0x00000001)
-  {
-    ALOGE("ERROR in get_nal_unit_type: Start code not found!");
-  }
-  else
-  {
-    if (extract_bits(1)) // forbidden_zero_bit
-    {
-      ALOGE("WARNING: forbidden_zero_bit should be zero!");
+    OMX_U32 value = 0, consumed_bytes = 3;
+    *nal_unit_type = NALU_TYPE_UNSPECIFIED;
+    ALOGV("-->get_nal_unit_type: IN");
+    value = extract_bits(24);
+    while (value != 0x00000001 && more_bits()) {
+        value <<= 8;
+        value |= extract_bits(8);
+        consumed_bytes++;
     }
-    value = extract_bits(2);
-    ALOGV("-->nal_ref_idc    : %x", value);
-    *nal_unit_type = extract_bits(5);
-    ALOGV("-->nal_unit_type  : %x", *nal_unit_type);
-    consumed_bytes++;
-    if (consumed_bytes > 5)
-    {
-      ALOGE("-->WARNING: Startcode was found after the first 4 bytes!");
+    if (value != 0x00000001) {
+        ALOGE("ERROR in get_nal_unit_type: Start code not found!");
+    } else {
+        if (extract_bits(1)) { // forbidden_zero_bit
+            ALOGE("WARNING: forbidden_zero_bit should be zero!");
+        }
+        value = extract_bits(2);
+        ALOGV("-->nal_ref_idc    : %x", value);
+        *nal_unit_type = extract_bits(5);
+        ALOGV("-->nal_unit_type  : %x", *nal_unit_type);
+        consumed_bytes++;
+        if (consumed_bytes > 5) {
+            ALOGE("-->WARNING: Startcode was found after the first 4 bytes!");
+        }
     }
-  }
-  ALOGV("-->get_nal_unit_type: OUT");
-  return consumed_bytes;
+    ALOGV("-->get_nal_unit_type: OUT");
+    return consumed_bytes;
 }
 
 OMX_U32 h264_stream_parser::get_profile()
@@ -1253,265 +1166,261 @@
 
 OMX_S64 h264_stream_parser::calculate_buf_period_ts(OMX_S64 timestamp)
 {
-  OMX_S64 clock_ts = timestamp;
-  ALOGV("calculate_ts(): IN");
-  if (sei_buf_period.au_cntr == 0)
-    clock_ts = sei_buf_period.reference_ts = timestamp;
-  else if (sei_pic_timing.is_valid && VALID_TS(sei_buf_period.reference_ts))
-  {
-    clock_ts = sei_buf_period.reference_ts + sei_pic_timing.cpb_removal_delay *
-               1e6 * vui_param.num_units_in_tick / vui_param.time_scale;
-  }
-  sei_buf_period.au_cntr++;
-  ALOGV("calculate_ts(): OUT");
-  return clock_ts;
+    OMX_S64 clock_ts = timestamp;
+    ALOGV("calculate_ts(): IN");
+    if (sei_buf_period.au_cntr == 0)
+        clock_ts = sei_buf_period.reference_ts = timestamp;
+    else if (sei_pic_timing.is_valid && VALID_TS(sei_buf_period.reference_ts)) {
+        clock_ts = sei_buf_period.reference_ts + sei_pic_timing.cpb_removal_delay *
+            1e6 * vui_param.num_units_in_tick / vui_param.time_scale;
+    }
+    sei_buf_period.au_cntr++;
+    ALOGV("calculate_ts(): OUT");
+    return clock_ts;
 }
 
 OMX_S64 h264_stream_parser::calculate_fixed_fps_ts(OMX_S64 timestamp, OMX_U32 DeltaTfiDivisor)
 {
-  if (VALID_TS(timestamp))
-    vui_param.fixed_fps_prev_ts = timestamp;
-  else if (VALID_TS(vui_param.fixed_fps_prev_ts))
-    vui_param.fixed_fps_prev_ts += DeltaTfiDivisor * 1e6 *
-                                   vui_param.num_units_in_tick / vui_param.time_scale;
-  return vui_param.fixed_fps_prev_ts;
+    if (VALID_TS(timestamp))
+        vui_param.fixed_fps_prev_ts = timestamp;
+    else if (VALID_TS(vui_param.fixed_fps_prev_ts))
+        vui_param.fixed_fps_prev_ts += DeltaTfiDivisor * 1e6 *
+            vui_param.num_units_in_tick / vui_param.time_scale;
+    return vui_param.fixed_fps_prev_ts;
 }
 
 void h264_stream_parser::parse_frame_pack()
 {
 #ifdef _ANDROID_
-  char property_value[PROPERTY_VALUE_MAX] = {0};
-  OMX_S32 enable_framepack_log = 0;
+    char property_value[PROPERTY_VALUE_MAX] = {0};
+    OMX_S32 enable_framepack_log = 0;
 
-  property_get("vidc.dec.debug.panframedata", property_value, "0");
-  enable_framepack_log = atoi(property_value);
+    property_get("vidc.dec.debug.panframedata", property_value, "0");
+    enable_framepack_log = atoi(property_value);
 #endif
-  ALOGV("\n%s:%d parse_frame_pack", __func__, __LINE__);
+    ALOGV("\n%s:%d parse_frame_pack", __func__, __LINE__);
 
-  frame_packing_arrangement.id = uev();
+    frame_packing_arrangement.id = uev();
 
-  frame_packing_arrangement.cancel_flag = extract_bits(1);
-  if(!frame_packing_arrangement.cancel_flag) {
-     frame_packing_arrangement.type = extract_bits(7);
-     frame_packing_arrangement.quincunx_sampling_flag = extract_bits(1);
-     frame_packing_arrangement.content_interpretation_type = extract_bits(6);
-     frame_packing_arrangement.spatial_flipping_flag = extract_bits(1);
-     frame_packing_arrangement.frame0_flipped_flag = extract_bits(1);
-     frame_packing_arrangement.field_views_flag = extract_bits(1);
-     frame_packing_arrangement.current_frame_is_frame0_flag = extract_bits(1);
-     frame_packing_arrangement.frame0_self_contained_flag = extract_bits(1);
-     frame_packing_arrangement.frame1_self_contained_flag = extract_bits(1);
+    frame_packing_arrangement.cancel_flag = extract_bits(1);
+    if (!frame_packing_arrangement.cancel_flag) {
+        frame_packing_arrangement.type = extract_bits(7);
+        frame_packing_arrangement.quincunx_sampling_flag = extract_bits(1);
+        frame_packing_arrangement.content_interpretation_type = extract_bits(6);
+        frame_packing_arrangement.spatial_flipping_flag = extract_bits(1);
+        frame_packing_arrangement.frame0_flipped_flag = extract_bits(1);
+        frame_packing_arrangement.field_views_flag = extract_bits(1);
+        frame_packing_arrangement.current_frame_is_frame0_flag = extract_bits(1);
+        frame_packing_arrangement.frame0_self_contained_flag = extract_bits(1);
+        frame_packing_arrangement.frame1_self_contained_flag = extract_bits(1);
 
-     if(!frame_packing_arrangement.quincunx_sampling_flag &&
-        frame_packing_arrangement.type != 5) {
-        frame_packing_arrangement.frame0_grid_position_x = extract_bits(4);
-        frame_packing_arrangement.frame0_grid_position_y = extract_bits(4);
-        frame_packing_arrangement.frame1_grid_position_x = extract_bits(4);
-        frame_packing_arrangement.frame1_grid_position_y = extract_bits(4);
-     }
-     frame_packing_arrangement.reserved_byte = extract_bits(8);
-     frame_packing_arrangement.repetition_period = uev();
-   }
-   frame_packing_arrangement.extension_flag = extract_bits(1);
+        if (!frame_packing_arrangement.quincunx_sampling_flag &&
+                frame_packing_arrangement.type != 5) {
+            frame_packing_arrangement.frame0_grid_position_x = extract_bits(4);
+            frame_packing_arrangement.frame0_grid_position_y = extract_bits(4);
+            frame_packing_arrangement.frame1_grid_position_x = extract_bits(4);
+            frame_packing_arrangement.frame1_grid_position_y = extract_bits(4);
+        }
+        frame_packing_arrangement.reserved_byte = extract_bits(8);
+        frame_packing_arrangement.repetition_period = uev();
+    }
+    frame_packing_arrangement.extension_flag = extract_bits(1);
 
 #ifdef _ANDROID_
-   if (enable_framepack_log)
-   {
-     print_frame_pack();
-   }
+    if (enable_framepack_log) {
+        print_frame_pack();
+    }
 #endif
 }
 
 void h264_stream_parser::print_frame_pack()
 {
-  ALOGV("\n ## frame_packing_arrangement.id = %u", frame_packing_arrangement.id);
-  ALOGV("\n ## frame_packing_arrangement.cancel_flag = %u",
-                       frame_packing_arrangement.cancel_flag);
-  if(!frame_packing_arrangement.cancel_flag)
-  {
-    ALOGV("\n ## frame_packing_arrangement.type = %u",
-                         frame_packing_arrangement.type);
-    ALOGV("\n ## frame_packing_arrangement.quincunx_sampling_flag = %u",
-                         frame_packing_arrangement.quincunx_sampling_flag);
-    ALOGV("\n ## frame_packing_arrangement.content_interpretation_type = %u",
-                         frame_packing_arrangement.content_interpretation_type);
-    ALOGV("\n ## frame_packing_arrangement.spatial_flipping_flag = %u",
-                         frame_packing_arrangement.spatial_flipping_flag);
-    ALOGV("\n ## frame_packing_arrangement.frame0_flipped_flag = %u",
-                         frame_packing_arrangement.frame0_flipped_flag);
-    ALOGV("\n ## frame_packing_arrangement.field_views_flag = %u",
-                         frame_packing_arrangement.field_views_flag);
-    ALOGV("\n ## frame_packing_arrangement.current_frame_is_frame0_flag = %u",
-                         frame_packing_arrangement.current_frame_is_frame0_flag);
-    ALOGV("\n ## frame_packing_arrangement.frame0_self_contained_flag = %u",
-                         frame_packing_arrangement.frame0_self_contained_flag);
-    ALOGV("\n ## frame_packing_arrangement.frame1_self_contained_flag = %u",
-                         frame_packing_arrangement.frame1_self_contained_flag);
-    ALOGV("\n ## frame_packing_arrangement.reserved_byte = %u",
-                         frame_packing_arrangement.reserved_byte);
-    ALOGV("\n ## frame_packing_arrangement.repetition_period = %u",
-                         frame_packing_arrangement.repetition_period);
-    ALOGV("\n ## frame_packing_arrangement.extension_flag = %u",
-                         frame_packing_arrangement.extension_flag);
-  }
+    ALOGV("\n ## frame_packing_arrangement.id = %u", frame_packing_arrangement.id);
+    ALOGV("\n ## frame_packing_arrangement.cancel_flag = %u",
+            frame_packing_arrangement.cancel_flag);
+    if (!frame_packing_arrangement.cancel_flag) {
+        ALOGV("\n ## frame_packing_arrangement.type = %u",
+                frame_packing_arrangement.type);
+        ALOGV("\n ## frame_packing_arrangement.quincunx_sampling_flag = %u",
+                frame_packing_arrangement.quincunx_sampling_flag);
+        ALOGV("\n ## frame_packing_arrangement.content_interpretation_type = %u",
+                frame_packing_arrangement.content_interpretation_type);
+        ALOGV("\n ## frame_packing_arrangement.spatial_flipping_flag = %u",
+                frame_packing_arrangement.spatial_flipping_flag);
+        ALOGV("\n ## frame_packing_arrangement.frame0_flipped_flag = %u",
+                frame_packing_arrangement.frame0_flipped_flag);
+        ALOGV("\n ## frame_packing_arrangement.field_views_flag = %u",
+                frame_packing_arrangement.field_views_flag);
+        ALOGV("\n ## frame_packing_arrangement.current_frame_is_frame0_flag = %u",
+                frame_packing_arrangement.current_frame_is_frame0_flag);
+        ALOGV("\n ## frame_packing_arrangement.frame0_self_contained_flag = %u",
+                frame_packing_arrangement.frame0_self_contained_flag);
+        ALOGV("\n ## frame_packing_arrangement.frame1_self_contained_flag = %u",
+                frame_packing_arrangement.frame1_self_contained_flag);
+        ALOGV("\n ## frame_packing_arrangement.reserved_byte = %u",
+                frame_packing_arrangement.reserved_byte);
+        ALOGV("\n ## frame_packing_arrangement.repetition_period = %u",
+                frame_packing_arrangement.repetition_period);
+        ALOGV("\n ## frame_packing_arrangement.extension_flag = %u",
+                frame_packing_arrangement.extension_flag);
+    }
 }
 /* API'S EXPOSED TO OMX COMPONENT */
 
 void h264_stream_parser::get_frame_pack_data(
-  OMX_QCOM_FRAME_PACK_ARRANGEMENT *frame_pack)
+        OMX_QCOM_FRAME_PACK_ARRANGEMENT *frame_pack)
 {
-   ALOGV("\n%s:%d get frame data", __func__, __LINE__);
-   memcpy(&frame_pack->id,&frame_packing_arrangement.id,
-   FRAME_PACK_SIZE*sizeof(OMX_U32));
-   return;
+    ALOGV("\n%s:%d get frame data", __func__, __LINE__);
+    memcpy(&frame_pack->id,&frame_packing_arrangement.id,
+            FRAME_PACK_SIZE*sizeof(OMX_U32));
+    return;
 }
 
 
 bool h264_stream_parser::is_mbaff()
 {
-   ALOGV("\n%s:%d MBAFF flag=%d", __func__, __LINE__,mbaff_flag);
-   return mbaff_flag;
+    ALOGV("\n%s:%d MBAFF flag=%d", __func__, __LINE__,mbaff_flag);
+    return mbaff_flag;
 }
 
 void h264_stream_parser::get_frame_rate(OMX_U32 *frame_rate)
 {
-  if (vui_param.num_units_in_tick != 0)
-    *frame_rate = vui_param.time_scale / (2 * vui_param.num_units_in_tick);
+    if (vui_param.num_units_in_tick != 0)
+        *frame_rate = vui_param.time_scale / (2 * vui_param.num_units_in_tick);
 }
 
 void h264_stream_parser::parse_nal(OMX_U8* data_ptr, OMX_U32 data_len, OMX_U32 nal_type, bool enable_emu_sc)
 {
-  OMX_U32 nal_unit_type = NALU_TYPE_UNSPECIFIED, cons_bytes = 0;
-  ALOGV("parse_nal(): IN nal_type(%lu)", nal_type);
-  if (!data_len)
-    return;
-  init_bitstream(data_ptr, data_len);
-  emulation_sc_enabled = enable_emu_sc;
-  if (nal_type != NALU_TYPE_VUI)
-  {
-    cons_bytes = get_nal_unit_type(&nal_unit_type);
-    if (nal_type != nal_unit_type && nal_type != NALU_TYPE_UNSPECIFIED)
-    {
-      ALOGV("Unexpected nal_type(%x) expected(%x)", nal_unit_type, nal_type);
-      return;
+    OMX_U32 nal_unit_type = NALU_TYPE_UNSPECIFIED, cons_bytes = 0;
+    ALOGV("parse_nal(): IN nal_type(%lu)", nal_type);
+    if (!data_len)
+        return;
+    init_bitstream(data_ptr, data_len);
+    emulation_sc_enabled = enable_emu_sc;
+    if (nal_type != NALU_TYPE_VUI) {
+        cons_bytes = get_nal_unit_type(&nal_unit_type);
+        if (nal_type != nal_unit_type && nal_type != NALU_TYPE_UNSPECIFIED) {
+            ALOGV("Unexpected nal_type(%x) expected(%x)", nal_unit_type, nal_type);
+            return;
+        }
     }
-  }
-  switch (nal_type)
-  {
-    case NALU_TYPE_SPS:
-      if (more_bits())
-        parse_sps();
+    switch (nal_type) {
+        case NALU_TYPE_SPS:
+            if (more_bits())
+                parse_sps();
 #ifdef PANSCAN_HDLR
-      panscan_hdl->get_free();
+            panscan_hdl->get_free();
 #endif
-    break;
-    case NALU_TYPE_SEI:
-      init_bitstream(data_ptr + cons_bytes, data_len - cons_bytes);
-      parse_sei();
-    break;
-    case NALU_TYPE_VUI:
-      parse_vui(true);
-    break;
-    default:
-      ALOGV("nal_unit_type received : %lu", nal_type);
-  }
-  ALOGV("parse_nal(): OUT");
+            break;
+        case NALU_TYPE_SEI:
+            init_bitstream(data_ptr + cons_bytes, data_len - cons_bytes);
+            parse_sei();
+            break;
+        case NALU_TYPE_VUI:
+            parse_vui(true);
+            break;
+        default:
+            ALOGV("nal_unit_type received : %lu", nal_type);
+    }
+    ALOGV("parse_nal(): OUT");
 }
 
 #ifdef PANSCAN_HDLR
 void h264_stream_parser::update_panscan_data(OMX_S64 timestamp)
 {
-  panscan_hdl->update_last(timestamp);
+    panscan_hdl->update_last(timestamp);
 }
 #endif
 
 void h264_stream_parser::fill_aspect_ratio_info(OMX_QCOM_ASPECT_RATIO *dest_aspect_ratio)
 {
-  if(dest_aspect_ratio && vui_param.aspect_ratio_info_present_flag)
-  {
-    dest_aspect_ratio->aspectRatioX = vui_param.aspect_ratio_info.aspect_ratio_x;
-    dest_aspect_ratio->aspectRatioY = vui_param.aspect_ratio_info.aspect_ratio_y;
-  }
+    if (dest_aspect_ratio && vui_param.aspect_ratio_info_present_flag) {
+        dest_aspect_ratio->aspectRatioX = vui_param.aspect_ratio_info.aspect_ratio_x;
+        dest_aspect_ratio->aspectRatioY = vui_param.aspect_ratio_info.aspect_ratio_y;
+    }
 }
 
 void h264_stream_parser::fill_pan_scan_data(OMX_QCOM_PANSCAN *dest_pan_scan, OMX_S64 timestamp)
 {
 #ifdef PANSCAN_HDLR
-  h264_pan_scan *pan_scan_param = panscan_hdl->get_populated(timestamp);
+    h264_pan_scan *pan_scan_param = panscan_hdl->get_populated(timestamp);
 #else
-  h264_pan_scan *pan_scan_param = &panscan_param;
+    h264_pan_scan *pan_scan_param = &panscan_param;
 #endif
-  if (pan_scan_param) {
-    if (!(pan_scan_param->rect_id & NO_PAN_SCAN_BIT))
-    {
-      PRINT_PANSCAN_PARAM(*pan_scan_param);
-      dest_pan_scan->numWindows = pan_scan_param->cnt;
-      for (unsigned int i = 0; i < dest_pan_scan->numWindows; i++)
-      {
-        dest_pan_scan->window[i].x = pan_scan_param->rect_left_offset[i];
-        dest_pan_scan->window[i].y = pan_scan_param->rect_top_offset[i];
-        dest_pan_scan->window[i].dx = pan_scan_param->rect_right_offset[i];
-        dest_pan_scan->window[i].dy = pan_scan_param->rect_bottom_offset[i];
-      }
+    if (pan_scan_param) {
+        if (!(pan_scan_param->rect_id & NO_PAN_SCAN_BIT)) {
+            PRINT_PANSCAN_PARAM(*pan_scan_param);
+            dest_pan_scan->numWindows = pan_scan_param->cnt;
+            for (unsigned int i = 0; i < dest_pan_scan->numWindows; i++) {
+                dest_pan_scan->window[i].x = pan_scan_param->rect_left_offset[i];
+                dest_pan_scan->window[i].y = pan_scan_param->rect_top_offset[i];
+                dest_pan_scan->window[i].dx = pan_scan_param->rect_right_offset[i];
+                dest_pan_scan->window[i].dy = pan_scan_param->rect_bottom_offset[i];
+            }
 #ifndef PANSCAN_HDLR
-      if (pan_scan_param->rect_repetition_period == 0)
-        pan_scan_param->rect_id = NO_PAN_SCAN_BIT;
-      else if (pan_scan_param->rect_repetition_period > 1)
-        pan_scan_param->rect_repetition_period =
-        (pan_scan_param->rect_repetition_period == 2)? 0 :
-        (pan_scan_param->rect_repetition_period - 1);
+            if (pan_scan_param->rect_repetition_period == 0)
+                pan_scan_param->rect_id = NO_PAN_SCAN_BIT;
+            else if (pan_scan_param->rect_repetition_period > 1)
+                pan_scan_param->rect_repetition_period =
+                    (pan_scan_param->rect_repetition_period == 2)? 0 :
+                    (pan_scan_param->rect_repetition_period - 1);
 #endif
+        } else
+            pan_scan_param->rect_repetition_period = 0;
     }
-    else
-      pan_scan_param->rect_repetition_period = 0;
-  }
 }
 
 OMX_S64 h264_stream_parser::process_ts_with_sei_vui(OMX_S64 timestamp)
 {
-  bool clock_ts_flag = false;
-  OMX_S64 clock_ts = timestamp;
-  OMX_U32 deltaTfiDivisor = 2;
-  if (vui_param.timing_info_present_flag)
-  {
-    if (vui_param.pic_struct_present_flag)
-    {
-      if(sei_pic_timing.clock_ts_flag)
-      {
-        clock_ts = ((sei_pic_timing.hours_value * 60 + sei_pic_timing.minutes_value) * 60 + sei_pic_timing.seconds_value) * 1e6 +
+    bool clock_ts_flag = false;
+    OMX_S64 clock_ts = timestamp;
+    OMX_U32 deltaTfiDivisor = 2;
+    if (vui_param.timing_info_present_flag) {
+        if (vui_param.pic_struct_present_flag) {
+            if (sei_pic_timing.clock_ts_flag) {
+                clock_ts = ((sei_pic_timing.hours_value * 60 + sei_pic_timing.minutes_value) * 60 + sei_pic_timing.seconds_value) * 1e6 +
                     (sei_pic_timing.n_frames * (vui_param.num_units_in_tick * (1 + sei_pic_timing.nuit_field_based_flag)) + sei_pic_timing.time_offset) *
                     1e6 / vui_param.time_scale;
-        ALOGV("-->CLOCK TIMESTAMP   : %lld", clock_ts);
-        clock_ts_flag = true;
-      }
-      if (vui_param.fixed_frame_rate_flag)
-      {
-        switch (sei_pic_timing.pic_struct)
-        {
-          case 1: case 2:         deltaTfiDivisor = 1; break;
-          case 0: case 3: case 4: deltaTfiDivisor = 2; break;
-          case 5: case 6:         deltaTfiDivisor = 3; break;
-          case 7:                 deltaTfiDivisor = 4; break;
-          case 8:                 deltaTfiDivisor = 6; break;
-          default:
-            ALOGE("process_ts_with_sei_vui: pic_struct invalid!");
+                ALOGV("-->CLOCK TIMESTAMP   : %lld", clock_ts);
+                clock_ts_flag = true;
+            }
+            if (vui_param.fixed_frame_rate_flag) {
+                switch (sei_pic_timing.pic_struct) {
+                    case 1:
+                    case 2:
+                        deltaTfiDivisor = 1;
+                        break;
+                    case 0:
+                    case 3:
+                    case 4:
+                        deltaTfiDivisor = 2;
+                        break;
+                    case 5:
+                    case 6:
+                        deltaTfiDivisor = 3;
+                        break;
+                    case 7:
+                        deltaTfiDivisor = 4;
+                        break;
+                    case 8:
+                        deltaTfiDivisor = 6;
+                        break;
+                    default:
+                        ALOGE("process_ts_with_sei_vui: pic_struct invalid!");
+                }
+            }
         }
-      }
+        if (!clock_ts_flag) {
+            if (vui_param.fixed_frame_rate_flag)
+                clock_ts = calculate_fixed_fps_ts(timestamp, deltaTfiDivisor);
+            else if (sei_buf_period.is_valid)
+                clock_ts = calculate_buf_period_ts(timestamp);
+        }
+    } else {
+        ALOGV("NO TIMING information present in VUI!");
     }
-    if (!clock_ts_flag)
-    {
-      if (vui_param.fixed_frame_rate_flag)
-        clock_ts = calculate_fixed_fps_ts(timestamp, deltaTfiDivisor);
-      else if (sei_buf_period.is_valid)
-        clock_ts = calculate_buf_period_ts(timestamp);
-    }
-  }
-  else
-  {
-    ALOGV("NO TIMING information present in VUI!");
-  }
-  sei_pic_timing.is_valid = false; // SEI data is valid only for current frame
-  return clock_ts;
+    sei_pic_timing.is_valid = false; // SEI data is valid only for current frame
+    return clock_ts;
 }
 
 #ifdef PANSCAN_HDLR
@@ -1520,183 +1429,159 @@
 
 panscan_handler::~panscan_handler()
 {
-  if (panscan_data)
-  {
-    free(panscan_data);
-    panscan_data = NULL;
-  }
+    if (panscan_data) {
+        free(panscan_data);
+        panscan_data = NULL;
+    }
 }
 
 bool panscan_handler::initialize(int num_data)
 {
-  bool ret = false;
-  if (!panscan_data)
-  {
-    panscan_data = (PANSCAN_NODE *) malloc (sizeof(PANSCAN_NODE) * num_data);
-    if (panscan_data)
-    {
-      panscan_free.add_multiple(panscan_data, num_data);
-      ret = true;
+    bool ret = false;
+    if (!panscan_data) {
+        panscan_data = (PANSCAN_NODE *) malloc (sizeof(PANSCAN_NODE) * num_data);
+        if (panscan_data) {
+            panscan_free.add_multiple(panscan_data, num_data);
+            ret = true;
+        }
+    } else {
+        ALOGE("ERROR: Old panscan memory must be freed to allocate new");
     }
-  }
-  else
-  {
-    ALOGE("ERROR: Old panscan memory must be freed to allocate new");
-  }
-  return ret;
+    return ret;
 }
 
 h264_pan_scan *panscan_handler::get_free()
 {
-  h264_pan_scan *data = NULL;
-  PANSCAN_NODE *panscan_node = panscan_used.watch_last();
-  panscan_node = (!panscan_node || VALID_TS(panscan_node->start_ts))?
-                 panscan_free.remove_first() :
-                 panscan_used.remove_last();
-  if (panscan_node)
-  {
-    panscan_node->start_ts = LLONG_MAX;
-    panscan_node->end_ts = LLONG_MAX;
-    panscan_node->pan_scan_param.rect_id = NO_PAN_SCAN_BIT;
-    panscan_node->active = false;
-    panscan_used.add_last(panscan_node);
-    data = &panscan_node->pan_scan_param;
-  }
-  return data;
+    h264_pan_scan *data = NULL;
+    PANSCAN_NODE *panscan_node = panscan_used.watch_last();
+    panscan_node = (!panscan_node || VALID_TS(panscan_node->start_ts))?
+        panscan_free.remove_first() :
+        panscan_used.remove_last();
+    if (panscan_node) {
+        panscan_node->start_ts = LLONG_MAX;
+        panscan_node->end_ts = LLONG_MAX;
+        panscan_node->pan_scan_param.rect_id = NO_PAN_SCAN_BIT;
+        panscan_node->active = false;
+        panscan_used.add_last(panscan_node);
+        data = &panscan_node->pan_scan_param;
+    }
+    return data;
 }
 
 h264_pan_scan *panscan_handler::get_populated(OMX_S64 frame_ts)
 {
-  h264_pan_scan *data = NULL;
-  PANSCAN_NODE *panscan_node = panscan_used.watch_first();
-  while (panscan_node && !data)
-  {
-    if (VALID_TS(panscan_node->start_ts))
-    {
-      if (panscan_node->active && frame_ts < panscan_node->start_ts)
-        panscan_node->start_ts = frame_ts;
-      if (frame_ts >= panscan_node->start_ts)
-        if (frame_ts < panscan_node->end_ts)
-        {
-          data = &panscan_node->pan_scan_param;
-          panscan_node->active = true;
+    h264_pan_scan *data = NULL;
+    PANSCAN_NODE *panscan_node = panscan_used.watch_first();
+    while (panscan_node && !data) {
+        if (VALID_TS(panscan_node->start_ts)) {
+            if (panscan_node->active && frame_ts < panscan_node->start_ts)
+                panscan_node->start_ts = frame_ts;
+            if (frame_ts >= panscan_node->start_ts)
+                if (frame_ts < panscan_node->end_ts) {
+                    data = &panscan_node->pan_scan_param;
+                    panscan_node->active = true;
+                } else {
+                    panscan_free.add_last(panscan_used.remove_first());
+                    panscan_node = panscan_used.watch_first();
+                }
+                else
+                    // Finish search if current timestamp has not reached
+                    // start timestamp of first panscan data.
+                    panscan_node = NULL;
+        } else {
+            // Only one panscan data is stored for clips
+            // with invalid timestamps in every frame
+            data = &panscan_node->pan_scan_param;
+            panscan_node->active = true;
         }
-        else
-        {
-          panscan_free.add_last(panscan_used.remove_first());
-          panscan_node = panscan_used.watch_first();
-        }
-      else
-        // Finish search if current timestamp has not reached
-        // start timestamp of first panscan data.
-        panscan_node = NULL;
     }
-    else
-    {
-      // Only one panscan data is stored for clips
-      // with invalid timestamps in every frame
-      data = &panscan_node->pan_scan_param;
-      panscan_node->active = true;
+    if (data) {
+        if (data->rect_repetition_period == 0)
+            panscan_free.add_last(panscan_used.remove_first());
+        else if (data->rect_repetition_period > 1)
+            data->rect_repetition_period -= 2;
     }
-  }
-  if (data) {
-    if (data->rect_repetition_period == 0)
-      panscan_free.add_last(panscan_used.remove_first());
-    else if (data->rect_repetition_period > 1)
-      data->rect_repetition_period -= 2;
-  }
-  PRINT_PANSCAN_DATA(panscan_node);
-  return data;
+    PRINT_PANSCAN_DATA(panscan_node);
+    return data;
 }
 
 void panscan_handler::update_last(OMX_S64 frame_ts)
 {
-  PANSCAN_NODE *panscan_node = panscan_used.watch_last();
-  if (panscan_node && !VALID_TS(panscan_node->start_ts))
-  {
-    panscan_node->start_ts = frame_ts;
-    PRINT_PANSCAN_DATA(panscan_node);
-    if (panscan_node->prev)
-    {
-      if (frame_ts < panscan_node->prev->end_ts)
-        panscan_node->prev->end_ts = frame_ts;
-      else if (!VALID_TS(frame_ts))
-        panscan_node->prev->pan_scan_param.rect_repetition_period = 0;
-      PRINT_PANSCAN_DATA(panscan_node->prev);
+    PANSCAN_NODE *panscan_node = panscan_used.watch_last();
+    if (panscan_node && !VALID_TS(panscan_node->start_ts)) {
+        panscan_node->start_ts = frame_ts;
+        PRINT_PANSCAN_DATA(panscan_node);
+        if (panscan_node->prev) {
+            if (frame_ts < panscan_node->prev->end_ts)
+                panscan_node->prev->end_ts = frame_ts;
+            else if (!VALID_TS(frame_ts))
+                panscan_node->prev->pan_scan_param.rect_repetition_period = 0;
+            PRINT_PANSCAN_DATA(panscan_node->prev);
+        }
     }
-  }
 }
 
-template <class NODE_STRUCT>
+    template <class NODE_STRUCT>
 void omx_dl_list<NODE_STRUCT>::add_multiple(NODE_STRUCT *data_arr, int data_num)
 {
-  for (int idx = 0; idx < data_num; idx++)
-    add_last(&data_arr[idx]);
+    for (int idx = 0; idx < data_num; idx++)
+        add_last(&data_arr[idx]);
 }
 
-template <class NODE_STRUCT>
+    template <class NODE_STRUCT>
 NODE_STRUCT *omx_dl_list<NODE_STRUCT>::remove_first()
 {
-  NODE_STRUCT *data = head;
-  if (head)
-  {
-    if (head->next)
-    {
-      head = head->next;
-      head->prev = NULL;
+    NODE_STRUCT *data = head;
+    if (head) {
+        if (head->next) {
+            head = head->next;
+            head->prev = NULL;
+        } else
+            head = tail = NULL;
+        data->next = data->prev = NULL;
     }
-    else
-      head = tail = NULL;
-    data->next = data->prev = NULL;
-  }
-  return data;
+    return data;
 }
 
-template <class NODE_STRUCT>
+    template <class NODE_STRUCT>
 NODE_STRUCT *omx_dl_list<NODE_STRUCT>::remove_last()
 {
-  NODE_STRUCT *data = tail;
-  if (tail)
-  {
-    if (tail->prev)
-    {
-      tail = tail->prev;
-      tail->next = NULL;
+    NODE_STRUCT *data = tail;
+    if (tail) {
+        if (tail->prev) {
+            tail = tail->prev;
+            tail->next = NULL;
+        } else
+            head = tail = NULL;
+        data->next = data->prev = NULL;
     }
-    else
-      head = tail = NULL;
-    data->next = data->prev = NULL;
-  }
-  return data;
+    return data;
 }
 
-template <class NODE_STRUCT>
+    template <class NODE_STRUCT>
 void omx_dl_list<NODE_STRUCT>::add_last(NODE_STRUCT* data_ptr)
 {
-  if (data_ptr)
-  {
-    data_ptr->next = NULL;
-    data_ptr->prev = tail;
-    if (tail)
-    {
-      tail->next = data_ptr;
-      tail = data_ptr;
+    if (data_ptr) {
+        data_ptr->next = NULL;
+        data_ptr->prev = tail;
+        if (tail) {
+            tail->next = data_ptr;
+            tail = data_ptr;
+        } else
+            head = tail = data_ptr;
     }
-    else
-      head = tail = data_ptr;
-  }
 }
 
-template <class NODE_STRUCT>
+    template <class NODE_STRUCT>
 NODE_STRUCT* omx_dl_list<NODE_STRUCT>::watch_first()
 {
-  return head;
+    return head;
 }
 
-template <class NODE_STRUCT>
+    template <class NODE_STRUCT>
 NODE_STRUCT* omx_dl_list<NODE_STRUCT>::watch_last()
 {
-  return tail;
+    return tail;
 }
 
 #endif
diff --git a/mm-video-v4l2/vidc/vdec/src/hevc_utils.cpp b/mm-video-v4l2/vidc/vdec/src/hevc_utils.cpp
index a283f0e..6585ce0 100644
--- a/mm-video-v4l2/vidc/vdec/src/hevc_utils.cpp
+++ b/mm-video-v4l2/vidc/vdec/src/hevc_utils.cpp
@@ -70,7 +70,7 @@
 
 HEVC_Utils::HEVC_Utils()
 {
-	initialize_frame_checking_environment();
+    initialize_frame_checking_environment();
 }
 
 HEVC_Utils::~HEVC_Utils()
@@ -80,149 +80,144 @@
 /***********************************************************************/
 /*
 FUNCTION:
-  HEVC_Utils::initialize_frame_checking_environment
+HEVC_Utils::initialize_frame_checking_environment
 
 DESCRIPTION:
-  Extract RBSP data from a NAL
+Extract RBSP data from a NAL
 
 INPUT/OUTPUT PARAMETERS:
-  None
+None
 
 RETURN VALUE:
-  boolean
+boolean
 
 SIDE EFFECTS:
-  None.
-*/
+None.
+ */
 /***********************************************************************/
 void HEVC_Utils::initialize_frame_checking_environment()
 {
-	m_forceToStichNextNAL = false;
-	m_au_data = false;
-	nalu_type = NAL_UNIT_INVALID;
+    m_forceToStichNextNAL = false;
+    m_au_data = false;
+    nalu_type = NAL_UNIT_INVALID;
 }
 
 /*===========================================================================
 FUNCTION:
-  HEVC_Utils::iSNewFrame
+HEVC_Utils::iSNewFrame
 
 DESCRIPTION:
-  Returns true if NAL parsing successfull otherwise false.
+Returns true if NAL parsing successfull otherwise false.
 
 INPUT/OUTPUT PARAMETERS:
-  <In>
-    buffer : buffer containing start code or nal length + NAL units
-    buffer_length : the length of the NAL buffer
-    start_code : If true, start code is detected,
-                 otherwise size nal length is detected
-    size_of_nal_length_field: size of nal length field
-  <out>
-    isNewFrame: true if the NAL belongs to a differenet frame
-                false if the NAL belongs to a current frame
+<In>
+buffer : buffer containing start code or nal length + NAL units
+buffer_length : the length of the NAL buffer
+start_code : If true, start code is detected,
+otherwise size nal length is detected
+size_of_nal_length_field: size of nal length field
+<out>
+isNewFrame: true if the NAL belongs to a differenet frame
+false if the NAL belongs to a current frame
 
 RETURN VALUE:
-  boolean  true, if nal parsing is successful
-           false, if the nal parsing has errors
+boolean  true, if nal parsing is successful
+false, if the nal parsing has errors
 
 SIDE EFFECTS:
-  None.
+None.
 ===========================================================================*/
 bool HEVC_Utils::isNewFrame(OMX_BUFFERHEADERTYPE *p_buf_hdr,
-                            OMX_IN OMX_U32 size_of_nal_length_field,
-                            OMX_OUT OMX_BOOL &isNewFrame)
+        OMX_IN OMX_U32 size_of_nal_length_field,
+        OMX_OUT OMX_BOOL &isNewFrame)
 {
-	OMX_IN OMX_U8 *buffer = p_buf_hdr->pBuffer;
-	OMX_IN OMX_U32 buffer_length = p_buf_hdr->nFilledLen;
-	byte bFirstSliceInPic = 0;
+    OMX_IN OMX_U8 *buffer = p_buf_hdr->pBuffer;
+    OMX_IN OMX_U32 buffer_length = p_buf_hdr->nFilledLen;
+    byte bFirstSliceInPic = 0;
 
-	byte coef1=1, coef2=0, coef3=0;
-	uint32 pos = 0;
-	uint32 nal_len = buffer_length;
-	uint32 sizeofNalLengthField = 0;
-	uint32 zero_count;
-	boolean start_code = (size_of_nal_length_field==0)?true:false;
+    byte coef1=1, coef2=0, coef3=0;
+    uint32 pos = 0;
+    uint32 nal_len = buffer_length;
+    uint32 sizeofNalLengthField = 0;
+    uint32 zero_count;
+    boolean start_code = (size_of_nal_length_field==0)?true:false;
 
-	if(start_code) {
-	  // Search start_code_prefix_one_3bytes (0x000001)
-	  coef2 = buffer[pos++];
-	  coef3 = buffer[pos++];
-	  do {
-		if(pos >= buffer_length)
-		{
-		  DEBUG_PRINT_ERROR("ERROR: In %s() - line %d", __func__, __LINE__);
-		  return false;
-		}
+    if (start_code) {
+        // Search start_code_prefix_one_3bytes (0x000001)
+        coef2 = buffer[pos++];
+        coef3 = buffer[pos++];
 
-		coef1 = coef2;
-		coef2 = coef3;
-		coef3 = buffer[pos++];
-	  } while(coef1 || coef2 || coef3 != 1);
-	}
-	else if (size_of_nal_length_field)
-	{
-	  /* This is the case to play multiple NAL units inside each access unit*/
-	  /* Extract the NAL length depending on sizeOfNALength field */
-	  sizeofNalLengthField = size_of_nal_length_field;
-	  nal_len = 0;
-	  while(size_of_nal_length_field--)
-	  {
-		nal_len |= buffer[pos++]<<(size_of_nal_length_field<<3);
-	  }
-	  if (nal_len >= buffer_length)
-	  {
-		DEBUG_PRINT_ERROR("ERROR: In %s() - line %d", __func__, __LINE__);
-		return false;
-	  }
-	}
+        do {
+            if (pos >= buffer_length) {
+                DEBUG_PRINT_ERROR("ERROR: In %s() - line %d", __func__, __LINE__);
+                return false;
+            }
 
-	if (nal_len > buffer_length)
-	{
-	  DEBUG_PRINT_ERROR("ERROR: In %s() - line %d", __func__, __LINE__);
-	  return false;
-	}
+            coef1 = coef2;
+            coef2 = coef3;
+            coef3 = buffer[pos++];
+        } while (coef1 || coef2 || coef3 != 1);
+    } else if (size_of_nal_length_field) {
+        /* This is the case to play multiple NAL units inside each access unit*/
+        /* Extract the NAL length depending on sizeOfNALength field */
+        sizeofNalLengthField = size_of_nal_length_field;
+        nal_len = 0;
 
-	if(pos + 2 > (nal_len + sizeofNalLengthField))
-	{
-	  DEBUG_PRINT_ERROR("ERROR: In %s() - line %d", __func__, __LINE__);
-	  return false;
-	}
+        while (size_of_nal_length_field--) {
+            nal_len |= buffer[pos++]<<(size_of_nal_length_field<<3);
+        }
 
-	nalu_type = (buffer[pos] & 0x7E)>>1 ;	  //=== nal_unit_type
+        if (nal_len >= buffer_length) {
+            DEBUG_PRINT_ERROR("ERROR: In %s() - line %d", __func__, __LINE__);
+            return false;
+        }
+    }
 
-	DEBUG_PRINT_LOW("\n@#@# Pos = %x NalType = %x buflen = %d", pos-1, nalu_type, buffer_length);
+    if (nal_len > buffer_length) {
+        DEBUG_PRINT_ERROR("ERROR: In %s() - line %d", __func__, __LINE__);
+        return false;
+    }
 
-	isNewFrame =  OMX_FALSE;
+    if (pos + 2 > (nal_len + sizeofNalLengthField)) {
+        DEBUG_PRINT_ERROR("ERROR: In %s() - line %d", __func__, __LINE__);
+        return false;
+    }
 
-	if (nalu_type == NAL_UNIT_VPS ||
-		nalu_type == NAL_UNIT_SPS ||
-		nalu_type == NAL_UNIT_PPS ||
-		nalu_type == NAL_UNIT_SEI)
-	{
-	  	DEBUG_PRINT_LOW("\n Non-AU boundary with NAL type %d", nalu_type);
-		if(m_au_data)
-		{
-			isNewFrame = OMX_TRUE;
-			m_au_data = false;
-		}
+    nalu_type = (buffer[pos] & 0x7E)>>1 ;      //=== nal_unit_type
 
-		m_forceToStichNextNAL = true;
-	}
-	else if (nalu_type <= NAL_UNIT_RESERVED_23)
-	{
-		DEBUG_PRINT_LOW("\n AU Boundary with NAL type %d ",nal_unit.nalu_type);
-		if (!m_forceToStichNextNAL)
-		{
-			bFirstSliceInPic = ((buffer[pos+2] & 0x80)>>7);
-			if (bFirstSliceInPic)	//=== first_ctb_in_slice is only 1'b1  coded tree block
-			{
-				DEBUG_PRINT_LOW("Found a New Frame due to 1st coded tree block");
-				isNewFrame = OMX_TRUE;
-			}
-		}
-		m_au_data = true;
-		m_forceToStichNextNAL = false;
-	}
-	DEBUG_PRINT_LOW("get_HEVC_nal_type - newFrame value %d\n",isNewFrame);
-	return true;
+    DEBUG_PRINT_LOW("\n@#@# Pos = %x NalType = %x buflen = %d", pos-1, nalu_type, buffer_length);
+
+    isNewFrame =  OMX_FALSE;
+
+    if (nalu_type == NAL_UNIT_VPS ||
+            nalu_type == NAL_UNIT_SPS ||
+            nalu_type == NAL_UNIT_PPS ||
+            nalu_type == NAL_UNIT_SEI) {
+        DEBUG_PRINT_LOW("\n Non-AU boundary with NAL type %d", nalu_type);
+
+        if (m_au_data) {
+            isNewFrame = OMX_TRUE;
+            m_au_data = false;
+        }
+
+        m_forceToStichNextNAL = true;
+    } else if (nalu_type <= NAL_UNIT_RESERVED_23) {
+        DEBUG_PRINT_LOW("\n AU Boundary with NAL type %d ",nal_unit.nalu_type);
+
+        if (!m_forceToStichNextNAL) {
+            bFirstSliceInPic = ((buffer[pos+2] & 0x80)>>7);
+
+            if (bFirstSliceInPic) {    //=== first_ctb_in_slice is only 1'b1  coded tree block
+                DEBUG_PRINT_LOW("Found a New Frame due to 1st coded tree block");
+                isNewFrame = OMX_TRUE;
+            }
+        }
+
+        m_au_data = true;
+        m_forceToStichNextNAL = false;
+    }
+
+    DEBUG_PRINT_LOW("get_HEVC_nal_type - newFrame value %d\n",isNewFrame);
+    return true;
 }
 
diff --git a/mm-video-v4l2/vidc/vdec/src/message_queue.c b/mm-video-v4l2/vidc/vdec/src/message_queue.c
old mode 100755
new mode 100644
index a6b491e..a96e120
--- a/mm-video-v4l2/vidc/vdec/src/message_queue.c
+++ b/mm-video-v4l2/vidc/vdec/src/message_queue.c
@@ -1,178 +1,163 @@
-/*--------------------------------------------------------------------------

-Copyright (c) 2010-2012, The Linux Foundation. All rights reserved.

-

-Redistribution and use in source and binary forms, with or without

-modification, are permitted provided that the following conditions are met:

-    * Redistributions of source code must retain the above copyright

-      notice, this list of conditions and the following disclaimer.

-    * Redistributions in binary form must reproduce the above copyright

-      notice, this list of conditions and the following disclaimer in the

-      documentation and/or other materials provided with the distribution.

-    * Neither the name of The Linux Foundation nor

-      the names of its contributors may be used to endorse or promote

-      products derived from this software without specific prior written

-      permission.

-

-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

-IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

-NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR

-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;

-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF

-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---------------------------------------------------------------------------*/

-#include "message_queue.h"

-

-int check_if_queue_empty ( unsigned int queuetocheck, void* queuecontext )

-{

-    struct video_queue_context *ptr_q = NULL;

-    /*

-     * queuetocheck - 0 command queue

-     * queuetocheck - 1 data queue

-     */

-    if ( queuecontext == NULL || (queuetocheck > 1 ) )

-    {

-        return 1;

-    }

-    ptr_q = (struct video_queue_context *)queuecontext;

-

-    if (queuetocheck == 0)

-    {

-      if (ptr_q->read_comq == ptr_q->write_comq)

-      {

-          return 1;

-      }

-    }

-    else if (queuetocheck == 1)

-    {

-        if (ptr_q->write_dataq == ptr_q->read_dataq)

-        {

-            return 1;

-        }

-    }

-

-    return 0;

-}

-

-

-

-struct video_msgq * queue_get_cmd (void* queuecontext )

-{

-    struct video_queue_context *ptr_q = NULL;

-    struct video_msgq *pitem = NULL;

-

-    if( NULL == queuecontext )

-    {

-        printf("\n queue_get_cmd: Invalid Input parameter\n");

-        return NULL;

-    }

-

-    ptr_q = (struct video_queue_context *)queuecontext;

-

-    /* Wait on the semaphore till it is released */

-    sem_wait(&ptr_q->sem_message);

-

-    /* Lock the mutex to protect the critical section */

-    pthread_mutex_lock(&ptr_q->mutex);

-

-    if (ptr_q->read_comq != ptr_q->write_comq)

-    {

-        pitem = &ptr_q->ptr_cmdq [ptr_q->read_comq];

-        ptr_q->read_comq = (ptr_q->read_comq + 1) % \

-                            ptr_q->commandq_size;

-    }

-    else if (ptr_q->write_dataq != ptr_q->read_dataq)

-    {

-        pitem = &ptr_q->ptr_dataq [ptr_q->read_dataq];

-        ptr_q->read_dataq = (ptr_q->read_dataq + 1) % \

-                            ptr_q->dataq_size;

-    }

-

-    /* Unlock the mutex to release the critical section */

-    pthread_mutex_unlock(&ptr_q->mutex);

-

-    return pitem;

-}

-

-

-int queue_post_cmdq ( void* queuecontext,

-                     struct video_msgq *pitem

-                     )

-{

-    struct video_queue_context *ptr_q = NULL;

-

-    if (pitem == NULL || queuecontext == NULL)

-    {

-        return -1;

-    }

-    ptr_q = (struct video_queue_context *)queuecontext;

-

-    /* Lock the mutex to protect the critical section */

-    pthread_mutex_lock(&ptr_q->mutex);

-

-    if ((ptr_q->write_comq + 1) % ptr_q->commandq_size == ptr_q->read_comq)

-    {

-        printf("\n QUEUE is FULL");

-        /* Unlock the mutex to release the critical section */

-        pthread_mutex_unlock(&ptr_q->mutex);

-        return 0;

-    }

-    else

-    {

-        /* Store the command in the Message Queue & increment write offset */

-        memcpy ( &ptr_q->ptr_cmdq [ptr_q->write_comq],pitem, \

-                 sizeof (struct video_msgq));

-        ptr_q->write_comq = (ptr_q->write_comq + 1) % ptr_q->commandq_size;

-    }

-

-    /* Unlock the mutex to release the critical section */

-    pthread_mutex_unlock(&ptr_q->mutex);

-

-    /* Post the semaphore */

-    sem_post(&ptr_q->sem_message);

-    return 1;

-}

-

-

-int queue_post_dataq ( void *queuecontext,

-                       struct video_msgq *pitem

-                      )

-{

-    struct video_queue_context *ptr_q = NULL;

-

-    if (pitem == NULL || queuecontext == NULL)

-    {

-        return -1;

-    }

-    ptr_q = (struct video_queue_context *)queuecontext;

-

-    /* Lock the mutex to protect the critical section */

-    pthread_mutex_lock(&ptr_q->mutex);

-

-    if ((ptr_q->write_dataq + 1) % ptr_q->dataq_size == ptr_q->read_dataq)

-    {

-        printf("\n QUEUE is FULL");

-        /* Unlock the mutex to release the critical section */

-        pthread_mutex_unlock(&ptr_q->mutex);

-        return 0;

-    }

-    else

-    {

-        /* Store the command in the Message Queue & increment write offset */

-        memcpy ( &ptr_q->ptr_dataq [ptr_q->write_dataq],pitem, \

-                 sizeof (struct video_msgq));

-        ptr_q->write_dataq = (ptr_q->write_dataq + 1) % ptr_q->dataq_size;

-    }

-

-    /* Unlock the mutex to release the critical section */

-    pthread_mutex_unlock(&ptr_q->mutex);

-

-    /* Post the semaphore */

-    sem_post(&ptr_q->sem_message);

-    return 1;

-

-}

+/*--------------------------------------------------------------------------
+Copyright (c) 2010-2013, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of The Linux Foundation nor
+      the names of its contributors may be used to endorse or promote
+      products derived from this software without specific prior written
+      permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------*/
+#include "message_queue.h"
+
+int check_if_queue_empty ( unsigned int queuetocheck, void* queuecontext )
+{
+    struct video_queue_context *ptr_q = NULL;
+
+    /*
+     * queuetocheck - 0 command queue
+     * queuetocheck - 1 data queue
+     */
+    if ( queuecontext == NULL || (queuetocheck > 1 ) ) {
+        return 1;
+    }
+
+    ptr_q = (struct video_queue_context *)queuecontext;
+
+    if (queuetocheck == 0) {
+        if (ptr_q->read_comq == ptr_q->write_comq) {
+            return 1;
+        }
+    } else if (queuetocheck == 1) {
+        if (ptr_q->write_dataq == ptr_q->read_dataq) {
+            return 1;
+        }
+    }
+
+    return 0;
+}
+
+
+
+struct video_msgq * queue_get_cmd (void* queuecontext ) {
+    struct video_queue_context *ptr_q = NULL;
+    struct video_msgq *pitem = NULL;
+
+    if ( NULL == queuecontext ) {
+        printf("\n queue_get_cmd: Invalid Input parameter\n");
+        return NULL;
+    }
+
+    ptr_q = (struct video_queue_context *)queuecontext;
+
+    /* Wait on the semaphore till it is released */
+    sem_wait(&ptr_q->sem_message);
+
+    /* Lock the mutex to protect the critical section */
+    pthread_mutex_lock(&ptr_q->mutex);
+
+    if (ptr_q->read_comq != ptr_q->write_comq) {
+        pitem = &ptr_q->ptr_cmdq [ptr_q->read_comq];
+        ptr_q->read_comq = (ptr_q->read_comq + 1) % \
+                   ptr_q->commandq_size;
+    } else if (ptr_q->write_dataq != ptr_q->read_dataq) {
+        pitem = &ptr_q->ptr_dataq [ptr_q->read_dataq];
+        ptr_q->read_dataq = (ptr_q->read_dataq + 1) % \
+                    ptr_q->dataq_size;
+    }
+
+    /* Unlock the mutex to release the critical section */
+    pthread_mutex_unlock(&ptr_q->mutex);
+
+    return pitem;
+}
+
+
+int queue_post_cmdq ( void* queuecontext,
+        struct video_msgq *pitem
+        )
+{
+    struct video_queue_context *ptr_q = NULL;
+
+    if (pitem == NULL || queuecontext == NULL) {
+        return -1;
+    }
+
+    ptr_q = (struct video_queue_context *)queuecontext;
+
+    /* Lock the mutex to protect the critical section */
+    pthread_mutex_lock(&ptr_q->mutex);
+
+    if ((ptr_q->write_comq + 1) % ptr_q->commandq_size == ptr_q->read_comq) {
+        printf("\n QUEUE is FULL");
+        /* Unlock the mutex to release the critical section */
+        pthread_mutex_unlock(&ptr_q->mutex);
+        return 0;
+    } else {
+        /* Store the command in the Message Queue & increment write offset */
+        memcpy ( &ptr_q->ptr_cmdq [ptr_q->write_comq],pitem, \
+                sizeof (struct video_msgq));
+        ptr_q->write_comq = (ptr_q->write_comq + 1) % ptr_q->commandq_size;
+    }
+
+    /* Unlock the mutex to release the critical section */
+    pthread_mutex_unlock(&ptr_q->mutex);
+
+    /* Post the semaphore */
+    sem_post(&ptr_q->sem_message);
+    return 1;
+}
+
+
+int queue_post_dataq ( void *queuecontext,
+        struct video_msgq *pitem
+        )
+{
+    struct video_queue_context *ptr_q = NULL;
+
+    if (pitem == NULL || queuecontext == NULL) {
+        return -1;
+    }
+
+    ptr_q = (struct video_queue_context *)queuecontext;
+
+    /* Lock the mutex to protect the critical section */
+    pthread_mutex_lock(&ptr_q->mutex);
+
+    if ((ptr_q->write_dataq + 1) % ptr_q->dataq_size == ptr_q->read_dataq) {
+        printf("\n QUEUE is FULL");
+        /* Unlock the mutex to release the critical section */
+        pthread_mutex_unlock(&ptr_q->mutex);
+        return 0;
+    } else {
+        /* Store the command in the Message Queue & increment write offset */
+        memcpy ( &ptr_q->ptr_dataq [ptr_q->write_dataq],pitem, \
+                sizeof (struct video_msgq));
+        ptr_q->write_dataq = (ptr_q->write_dataq + 1) % ptr_q->dataq_size;
+    }
+
+    /* Unlock the mutex to release the critical section */
+    pthread_mutex_unlock(&ptr_q->mutex);
+
+    /* Post the semaphore */
+    sem_post(&ptr_q->sem_message);
+    return 1;
+
+}
diff --git a/mm-video-v4l2/vidc/vdec/src/mp4_utils.cpp b/mm-video-v4l2/vidc/vdec/src/mp4_utils.cpp
index 95335d0..d47179f 100644
--- a/mm-video-v4l2/vidc/vdec/src/mp4_utils.cpp
+++ b/mm-video-v4l2/vidc/vdec/src/mp4_utils.cpp
@@ -29,9 +29,9 @@
 //#include "omx_vdec.h"
 # include <stdio.h>
 #ifdef _ANDROID_
-    extern "C"{
-        #include<utils/Log.h>
-    }
+extern "C" {
+#include<utils/Log.h>
+}
 #endif//_ANDROID_
 
 #undef DEBUG_PRINT_LOW
@@ -44,259 +44,304 @@
 
 MP4_Utils::MP4_Utils()
 {
-   m_SrcWidth = 0;
-   m_SrcHeight = 0;
-   vop_time_resolution = 0;
-   vop_time_found = false;
+    m_SrcWidth = 0;
+    m_SrcHeight = 0;
+    vop_time_resolution = 0;
+    vop_time_found = false;
 
 }
 MP4_Utils::~MP4_Utils()
 {
 }
 
-uint32 MP4_Utils::read_bit_field(posInfoType * posPtr, uint32 size) {
-   uint8 *bits = &posPtr->bytePtr[0];
-   uint32 bitBuf =
-       (bits[0] << 24) | (bits[1] << 16) | (bits[2] << 8) | bits[3];
+uint32 MP4_Utils::read_bit_field(posInfoType * posPtr, uint32 size)
+{
+    uint8 *bits = &posPtr->bytePtr[0];
+    uint32 bitBuf =
+        (bits[0] << 24) | (bits[1] << 16) | (bits[2] << 8) | bits[3];
 
-   uint32 value = (bitBuf >> (32 - posPtr->bitPos - size)) & MASK(size);
+    uint32 value = (bitBuf >> (32 - posPtr->bitPos - size)) & MASK(size);
 
-   /* Update the offset in preparation for next field    */
-   posPtr->bitPos += size;
+    /* Update the offset in preparation for next field    */
+    posPtr->bitPos += size;
 
-   while (posPtr->bitPos >= 8) {
-      posPtr->bitPos -= 8;
-      posPtr->bytePtr++;
-   }
-   return value;
+    while (posPtr->bitPos >= 8) {
+        posPtr->bitPos -= 8;
+        posPtr->bytePtr++;
+    }
+
+    return value;
 }
-static uint8 *find_code
-    (uint8 * bytePtr, uint32 size, uint32 codeMask, uint32 referenceCode) {
-   uint32 code = 0xFFFFFFFF;
-   for (uint32 i = 0; i < size; i++) {
-      code <<= 8;
-      code |= *bytePtr++;
+    static uint8 *find_code
+(uint8 * bytePtr, uint32 size, uint32 codeMask, uint32 referenceCode)
+{
+    uint32 code = 0xFFFFFFFF;
 
-      if ((code & codeMask) == referenceCode) {
-         return bytePtr;
-      }
-   }
+    for (uint32 i = 0; i < size; i++) {
+        code <<= 8;
+        code |= *bytePtr++;
 
-   DEBUG_PRINT_LOW("Unable to find code 0x%x\n", referenceCode);
-   return NULL;
+        if ((code & codeMask) == referenceCode) {
+            return bytePtr;
+        }
+    }
+
+    DEBUG_PRINT_LOW("Unable to find code 0x%x\n", referenceCode);
+    return NULL;
 }
-bool MP4_Utils::parseHeader(mp4StreamType * psBits) {
-   uint32 profile_and_level_indication = 0;
-   uint8 VerID = 1; /* default value */
-   long hxw = 0;
+bool MP4_Utils::parseHeader(mp4StreamType * psBits)
+{
+    uint32 profile_and_level_indication = 0;
+    uint8 VerID = 1; /* default value */
+    long hxw = 0;
 
-   m_posInfo.bitPos = 0;
-   m_posInfo.bytePtr = psBits->data;
-   m_dataBeginPtr = psBits->data;
+    m_posInfo.bitPos = 0;
+    m_posInfo.bytePtr = psBits->data;
+    m_dataBeginPtr = psBits->data;
 
-   m_posInfo.bytePtr = find_code(m_posInfo.bytePtr,4,
-                                 MASK(32),VOP_START_CODE);
-   if(m_posInfo.bytePtr) {
-      return false;
-   }
+    m_posInfo.bytePtr = find_code(m_posInfo.bytePtr,4,
+            MASK(32),VOP_START_CODE);
 
-   m_posInfo.bitPos = 0;
-   m_posInfo.bytePtr = psBits->data;
-   m_dataBeginPtr = psBits->data;
-   m_posInfo.bytePtr = find_code(m_posInfo.bytePtr,4,
-                                 MASK(32),GOV_START_CODE);
-   if(m_posInfo.bytePtr) {
-      return false;
-   }
-
-   m_posInfo.bitPos = 0;
-   m_posInfo.bytePtr = psBits->data;
-   m_dataBeginPtr = psBits->data;
-   /* parsing Visual Object Seqence(VOS) header */
-   m_posInfo.bytePtr = find_code(m_posInfo.bytePtr,
-                                 psBits->numBytes,
-                                 MASK(32),
-                                 VISUAL_OBJECT_SEQUENCE_START_CODE);
-   if ( m_posInfo.bytePtr == NULL ){
-      m_posInfo.bitPos  = 0;
-      m_posInfo.bytePtr = psBits->data;
-   }
-   else {
-      uint32 profile_and_level_indication = read_bit_field (&m_posInfo, 8);
-   }
-   /* parsing Visual Object(VO) header*/
-   /* note: for now, we skip over the user_data */
-   m_posInfo.bytePtr = find_code(m_posInfo.bytePtr,psBits->numBytes,
-                             MASK(32),VISUAL_OBJECT_START_CODE);
-   if(m_posInfo.bytePtr == NULL) {
-      m_posInfo.bitPos = 0;
-      m_posInfo.bytePtr = psBits->data;
-   }
-   else {
-      uint32 is_visual_object_identifier = read_bit_field (&m_posInfo, 1);
-      if ( is_visual_object_identifier ) {
-         /* visual_object_verid*/
-         read_bit_field (&m_posInfo, 4);
-         /* visual_object_priority*/
-         read_bit_field (&m_posInfo, 3);
-      }
-
-      /* visual_object_type*/
-      uint32 visual_object_type = read_bit_field (&m_posInfo, 4);
-      if ( visual_object_type != VISUAL_OBJECT_TYPE_VIDEO_ID ) {
+    if (m_posInfo.bytePtr) {
         return false;
-      }
-      /* skipping video_signal_type params*/
-      /*parsing Video Object header*/
-      m_posInfo.bytePtr = find_code(m_posInfo.bytePtr,psBits->numBytes,
-                                    VIDEO_OBJECT_START_CODE_MASK,VIDEO_OBJECT_START_CODE);
-      if ( m_posInfo.bytePtr == NULL ) {
+    }
+
+    m_posInfo.bitPos = 0;
+    m_posInfo.bytePtr = psBits->data;
+    m_dataBeginPtr = psBits->data;
+    m_posInfo.bytePtr = find_code(m_posInfo.bytePtr,4,
+            MASK(32),GOV_START_CODE);
+
+    if (m_posInfo.bytePtr) {
         return false;
-      }
-   }
+    }
 
-   /* parsing Video Object Layer(VOL) header */
-   m_posInfo.bitPos = 0;
-   m_posInfo.bytePtr = find_code(m_posInfo.bytePtr,
-                            psBits->numBytes,
-                            VIDEO_OBJECT_LAYER_START_CODE_MASK,
-                            VIDEO_OBJECT_LAYER_START_CODE);
-   if ( m_posInfo.bytePtr == NULL ) {
-      m_posInfo.bitPos = 0;
-      m_posInfo.bytePtr = psBits->data;
-   }
+    m_posInfo.bitPos = 0;
+    m_posInfo.bytePtr = psBits->data;
+    m_dataBeginPtr = psBits->data;
+    /* parsing Visual Object Seqence(VOS) header */
+    m_posInfo.bytePtr = find_code(m_posInfo.bytePtr,
+            psBits->numBytes,
+            MASK(32),
+            VISUAL_OBJECT_SEQUENCE_START_CODE);
 
-   // 1 -> random accessible VOL
-   read_bit_field(&m_posInfo, 1);
+    if ( m_posInfo.bytePtr == NULL ) {
+        m_posInfo.bitPos  = 0;
+        m_posInfo.bytePtr = psBits->data;
+    } else {
+        uint32 profile_and_level_indication = read_bit_field (&m_posInfo, 8);
+    }
 
-   uint32 video_object_type_indication = read_bit_field (&m_posInfo, 8);
-   if ( (video_object_type_indication != SIMPLE_OBJECT_TYPE) &&
-       (video_object_type_indication != SIMPLE_SCALABLE_OBJECT_TYPE) &&
-       (video_object_type_indication != CORE_OBJECT_TYPE) &&
-       (video_object_type_indication != ADVANCED_SIMPLE) &&
-       (video_object_type_indication != RESERVED_OBJECT_TYPE) &&
-       (video_object_type_indication != MAIN_OBJECT_TYPE)) {
-      return false;
-   }
-   /* is_object_layer_identifier*/
-   uint32 is_object_layer_identifier = read_bit_field (&m_posInfo, 1);
-   if (is_object_layer_identifier) {
-      uint32 video_object_layer_verid = read_bit_field (&m_posInfo, 4);
-      uint32 video_object_layer_priority = read_bit_field (&m_posInfo, 3);
-      VerID = (unsigned char)video_object_layer_verid;
-   }
+    /* parsing Visual Object(VO) header*/
+    /* note: for now, we skip over the user_data */
+    m_posInfo.bytePtr = find_code(m_posInfo.bytePtr,psBits->numBytes,
+            MASK(32),VISUAL_OBJECT_START_CODE);
 
-  /* aspect_ratio_info*/
-  uint32 aspect_ratio_info = read_bit_field (&m_posInfo, 4);
-  if ( aspect_ratio_info == EXTENDED_PAR ) {
-    /* par_width*/
-    read_bit_field (&m_posInfo, 8);
-    /* par_height*/
-    read_bit_field (&m_posInfo, 8);
-  }
-   /* vol_control_parameters */
-   uint32 vol_control_parameters = read_bit_field (&m_posInfo, 1);
-   if ( vol_control_parameters ) {
-      /* chroma_format*/
-      uint32 chroma_format = read_bit_field (&m_posInfo, 2);
-      if ( chroma_format != 1 ) {
-         return false;
-      }
-      /* low_delay*/
-      uint32 low_delay = read_bit_field (&m_posInfo, 1);
-      /* vbv_parameters (annex D)*/
-      uint32 vbv_parameters = read_bit_field (&m_posInfo, 1);
-      if ( vbv_parameters ) {
-         /* first_half_bitrate*/
-         uint32 first_half_bitrate = read_bit_field (&m_posInfo, 15);
-         uint32 marker_bit = read_bit_field (&m_posInfo, 1);
-         if ( marker_bit != 1) {
-            return false;
-         }
-         /* latter_half_bitrate*/
-         uint32 latter_half_bitrate = read_bit_field (&m_posInfo, 15);
-         marker_bit = read_bit_field (&m_posInfo, 1);
-         if ( marker_bit != 1) {
-            return false;
-         }
-         uint32 VBVPeakBitRate = (first_half_bitrate << 15) + latter_half_bitrate;
-         /* first_half_vbv_buffer_size*/
-         uint32 first_half_vbv_buffer_size = read_bit_field (&m_posInfo, 15);
-         marker_bit = read_bit_field (&m_posInfo, 1);
-         if ( marker_bit != 1) {
-            return false;
-         }
-         /* latter_half_vbv_buffer_size*/
-         uint32 latter_half_vbv_buffer_size = read_bit_field (&m_posInfo, 3);
-         uint32 VBVBufferSize = (first_half_vbv_buffer_size << 3) + latter_half_vbv_buffer_size;
-         /* first_half_vbv_occupancy*/
-         uint32 first_half_vbv_occupancy = read_bit_field (&m_posInfo, 11);
-         marker_bit = read_bit_field (&m_posInfo, 1);
-         if ( marker_bit != 1) {
-            return false;
-         }
-         /* latter_half_vbv_occupancy*/
-         uint32 latter_half_vbv_occupancy = read_bit_field (&m_posInfo, 15);
-         marker_bit = read_bit_field (&m_posInfo, 1);
-         if ( marker_bit != 1) {
-            return false;
-         }
-      }/* vbv_parameters*/
-   }/*vol_control_parameters*/
+    if (m_posInfo.bytePtr == NULL) {
+        m_posInfo.bitPos = 0;
+        m_posInfo.bytePtr = psBits->data;
+    } else {
+        uint32 is_visual_object_identifier = read_bit_field (&m_posInfo, 1);
 
-   /* video_object_layer_shape*/
-   uint32 video_object_layer_shape = read_bit_field (&m_posInfo, 2);
-   uint8 VOLShape = (unsigned char)video_object_layer_shape;
-   if ( VOLShape != MPEG4_SHAPE_RECTANGULAR ) {
-       return false;
-   }
-   /* marker_bit*/
-   uint32 marker_bit = read_bit_field (&m_posInfo, 1);
-   if ( marker_bit != 1 ) {
-      return false;
-   }
-   /* vop_time_increment_resolution*/
-   uint32 vop_time_increment_resolution = read_bit_field (&m_posInfo, 16);
-   vop_time_resolution = vop_time_increment_resolution;
-   vop_time_found = true;
-   return true;
+        if ( is_visual_object_identifier ) {
+            /* visual_object_verid*/
+            read_bit_field (&m_posInfo, 4);
+            /* visual_object_priority*/
+            read_bit_field (&m_posInfo, 3);
+        }
+
+        /* visual_object_type*/
+        uint32 visual_object_type = read_bit_field (&m_posInfo, 4);
+
+        if ( visual_object_type != VISUAL_OBJECT_TYPE_VIDEO_ID ) {
+            return false;
+        }
+
+        /* skipping video_signal_type params*/
+        /*parsing Video Object header*/
+        m_posInfo.bytePtr = find_code(m_posInfo.bytePtr,psBits->numBytes,
+                VIDEO_OBJECT_START_CODE_MASK,VIDEO_OBJECT_START_CODE);
+
+        if ( m_posInfo.bytePtr == NULL ) {
+            return false;
+        }
+    }
+
+    /* parsing Video Object Layer(VOL) header */
+    m_posInfo.bitPos = 0;
+    m_posInfo.bytePtr = find_code(m_posInfo.bytePtr,
+            psBits->numBytes,
+            VIDEO_OBJECT_LAYER_START_CODE_MASK,
+            VIDEO_OBJECT_LAYER_START_CODE);
+
+    if ( m_posInfo.bytePtr == NULL ) {
+        m_posInfo.bitPos = 0;
+        m_posInfo.bytePtr = psBits->data;
+    }
+
+    // 1 -> random accessible VOL
+    read_bit_field(&m_posInfo, 1);
+
+    uint32 video_object_type_indication = read_bit_field (&m_posInfo, 8);
+
+    if ( (video_object_type_indication != SIMPLE_OBJECT_TYPE) &&
+            (video_object_type_indication != SIMPLE_SCALABLE_OBJECT_TYPE) &&
+            (video_object_type_indication != CORE_OBJECT_TYPE) &&
+            (video_object_type_indication != ADVANCED_SIMPLE) &&
+            (video_object_type_indication != RESERVED_OBJECT_TYPE) &&
+            (video_object_type_indication != MAIN_OBJECT_TYPE)) {
+        return false;
+    }
+
+    /* is_object_layer_identifier*/
+    uint32 is_object_layer_identifier = read_bit_field (&m_posInfo, 1);
+
+    if (is_object_layer_identifier) {
+        uint32 video_object_layer_verid = read_bit_field (&m_posInfo, 4);
+        uint32 video_object_layer_priority = read_bit_field (&m_posInfo, 3);
+        VerID = (unsigned char)video_object_layer_verid;
+    }
+
+    /* aspect_ratio_info*/
+    uint32 aspect_ratio_info = read_bit_field (&m_posInfo, 4);
+
+    if ( aspect_ratio_info == EXTENDED_PAR ) {
+        /* par_width*/
+        read_bit_field (&m_posInfo, 8);
+        /* par_height*/
+        read_bit_field (&m_posInfo, 8);
+    }
+
+    /* vol_control_parameters */
+    uint32 vol_control_parameters = read_bit_field (&m_posInfo, 1);
+
+    if ( vol_control_parameters ) {
+        /* chroma_format*/
+        uint32 chroma_format = read_bit_field (&m_posInfo, 2);
+
+        if ( chroma_format != 1 ) {
+            return false;
+        }
+
+        /* low_delay*/
+        uint32 low_delay = read_bit_field (&m_posInfo, 1);
+        /* vbv_parameters (annex D)*/
+        uint32 vbv_parameters = read_bit_field (&m_posInfo, 1);
+
+        if ( vbv_parameters ) {
+            /* first_half_bitrate*/
+            uint32 first_half_bitrate = read_bit_field (&m_posInfo, 15);
+            uint32 marker_bit = read_bit_field (&m_posInfo, 1);
+
+            if ( marker_bit != 1) {
+                return false;
+            }
+
+            /* latter_half_bitrate*/
+            uint32 latter_half_bitrate = read_bit_field (&m_posInfo, 15);
+            marker_bit = read_bit_field (&m_posInfo, 1);
+
+            if ( marker_bit != 1) {
+                return false;
+            }
+
+            uint32 VBVPeakBitRate = (first_half_bitrate << 15) + latter_half_bitrate;
+            /* first_half_vbv_buffer_size*/
+            uint32 first_half_vbv_buffer_size = read_bit_field (&m_posInfo, 15);
+            marker_bit = read_bit_field (&m_posInfo, 1);
+
+            if ( marker_bit != 1) {
+                return false;
+            }
+
+            /* latter_half_vbv_buffer_size*/
+            uint32 latter_half_vbv_buffer_size = read_bit_field (&m_posInfo, 3);
+            uint32 VBVBufferSize = (first_half_vbv_buffer_size << 3) + latter_half_vbv_buffer_size;
+            /* first_half_vbv_occupancy*/
+            uint32 first_half_vbv_occupancy = read_bit_field (&m_posInfo, 11);
+            marker_bit = read_bit_field (&m_posInfo, 1);
+
+            if ( marker_bit != 1) {
+                return false;
+            }
+
+            /* latter_half_vbv_occupancy*/
+            uint32 latter_half_vbv_occupancy = read_bit_field (&m_posInfo, 15);
+            marker_bit = read_bit_field (&m_posInfo, 1);
+
+            if ( marker_bit != 1) {
+                return false;
+            }
+        }/* vbv_parameters*/
+    }/*vol_control_parameters*/
+
+    /* video_object_layer_shape*/
+    uint32 video_object_layer_shape = read_bit_field (&m_posInfo, 2);
+    uint8 VOLShape = (unsigned char)video_object_layer_shape;
+
+    if ( VOLShape != MPEG4_SHAPE_RECTANGULAR ) {
+        return false;
+    }
+
+    /* marker_bit*/
+    uint32 marker_bit = read_bit_field (&m_posInfo, 1);
+
+    if ( marker_bit != 1 ) {
+        return false;
+    }
+
+    /* vop_time_increment_resolution*/
+    uint32 vop_time_increment_resolution = read_bit_field (&m_posInfo, 16);
+    vop_time_resolution = vop_time_increment_resolution;
+    vop_time_found = true;
+    return true;
 }
 
 bool MP4_Utils::is_notcodec_vop(unsigned char *pbuffer, unsigned int len)
 {
-   unsigned int index = 4,vop_bits=0;
-   unsigned int temp = vop_time_resolution - 1;
-   unsigned char vop_type=0,modulo_bit=0,not_coded=0;
-   if (!vop_time_found || !pbuffer || len < 5) {
-      return false;
-   }
-   if((pbuffer[0] == 0) && (pbuffer[1] == 0) && (pbuffer[2] == 1) && (pbuffer[3] == 0xB6)){
-      while(temp) {
-         vop_bits++;
-         temp >>= 1;
-      }
-      vop_type = (pbuffer[index] & 0xc0) >> 6;
-      unsigned bits_parsed = 2;
-      do {
+    unsigned int index = 4,vop_bits=0;
+    unsigned int temp = vop_time_resolution - 1;
+    unsigned char vop_type=0,modulo_bit=0,not_coded=0;
+
+    if (!vop_time_found || !pbuffer || len < 5) {
+        return false;
+    }
+
+    if ((pbuffer[0] == 0) && (pbuffer[1] == 0) && (pbuffer[2] == 1) && (pbuffer[3] == 0xB6)) {
+        while (temp) {
+            vop_bits++;
+            temp >>= 1;
+        }
+
+        vop_type = (pbuffer[index] & 0xc0) >> 6;
+        unsigned bits_parsed = 2;
+
+        do {
             modulo_bit = pbuffer[index]  & (1 << (7-bits_parsed));
             bits_parsed++;
             index += bits_parsed/8;
             bits_parsed = bits_parsed %8;
-            if(index >= len) {
-               return false;
+
+            if (index >= len) {
+                return false;
             }
-      }while(modulo_bit);
-      bits_parsed++; //skip marker bit
-      bits_parsed += vop_bits + 1;//Vop bit & Marker bits
-      index += bits_parsed/8;
-      if(index >= len) {
-         return false;
-      }
-      bits_parsed = bits_parsed % 8;
-      not_coded = pbuffer[index] & (1 << (7 - bits_parsed));
-      if(!not_coded){
-         return true;
-      }
-   }
-   return false;
+        } while (modulo_bit);
+
+        bits_parsed++; //skip marker bit
+        bits_parsed += vop_bits + 1;//Vop bit & Marker bits
+        index += bits_parsed/8;
+
+        if (index >= len) {
+            return false;
+        }
+
+        bits_parsed = bits_parsed % 8;
+        not_coded = pbuffer[index] & (1 << (7 - bits_parsed));
+
+        if (!not_coded) {
+            return true;
+        }
+    }
+
+    return false;
 }
diff --git a/mm-video-v4l2/vidc/vdec/src/omx_vdec.cpp b/mm-video-v4l2/vidc/vdec/src/omx_vdec.cpp
index f9ca19c..663fe6c 100644
--- a/mm-video-v4l2/vidc/vdec/src/omx_vdec.cpp
+++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec.cpp
@@ -124,12 +124,12 @@
 #define VC1_SEQ_LAYER_SIZE          36
 
 #ifdef USE_ION
-    #define MEM_DEVICE "/dev/ion"
-    #ifdef MAX_RES_720P
-    #define MEM_HEAP_ID ION_CAMERA_HEAP_ID
-    #else
-    #define MEM_HEAP_ID ION_CP_MM_HEAP_ID
-    #endif
+#define MEM_DEVICE "/dev/ion"
+#ifdef MAX_RES_720P
+#define MEM_HEAP_ID ION_CAMERA_HEAP_ID
+#else
+#define MEM_HEAP_ID ION_CP_MM_HEAP_ID
+#endif
 #elif MAX_RES_720P
 #define MEM_DEVICE "/dev/pmem_adsp"
 #elif MAX_RES_1080P_EBI
@@ -147,11 +147,11 @@
 
 /*
 #ifdef _ANDROID_
-    extern "C"{
-        #include<utils/Log.h>
-    }
+extern "C"{
+#include<utils/Log.h>
+}
 #endif//_ANDROID_
-*/
+ */
 
 #ifndef _ANDROID_
 #include <glib.h>
@@ -163,81 +163,78 @@
 
 void* async_message_thread (void *input)
 {
-  struct vdec_ioctl_msg ioctl_msg;
-  struct vdec_msginfo vdec_msg;
-  omx_vdec *omx = reinterpret_cast<omx_vdec*>(input);
-  int error_code = 0;
-  DEBUG_PRINT_HIGH("omx_vdec: Async thread start");
-  prctl(PR_SET_NAME, (unsigned long)"VideoDecCallBackThread", 0, 0, 0);
-  while (1)
-  {
-    ioctl_msg.in = NULL;
-    ioctl_msg.out = (void*)&vdec_msg;
-    /*Wait for a message from the video decoder driver*/
-    error_code = ioctl ( omx->drv_ctx.video_driver_fd,VDEC_IOCTL_GET_NEXT_MSG,
-                         (void*)&ioctl_msg);
-    if (error_code == -512) // ERESTARTSYS
-    {
-      DEBUG_PRINT_ERROR("\n ERESTARTSYS received in ioctl read next msg!");
+    struct vdec_ioctl_msg ioctl_msg;
+    struct vdec_msginfo vdec_msg;
+    omx_vdec *omx = reinterpret_cast<omx_vdec*>(input);
+    int error_code = 0;
+    DEBUG_PRINT_HIGH("omx_vdec: Async thread start");
+    prctl(PR_SET_NAME, (unsigned long)"VideoDecCallBackThread", 0, 0, 0);
+
+    while (1) {
+        ioctl_msg.in = NULL;
+        ioctl_msg.out = (void*)&vdec_msg;
+        /*Wait for a message from the video decoder driver*/
+        error_code = ioctl ( omx->drv_ctx.video_driver_fd,VDEC_IOCTL_GET_NEXT_MSG,
+                (void*)&ioctl_msg);
+
+        if (error_code == -512) { // ERESTARTSYS
+            DEBUG_PRINT_ERROR("\n ERESTARTSYS received in ioctl read next msg!");
+        } else if (error_code < 0) {
+            DEBUG_PRINT_ERROR("\n Error in ioctl read next msg");
+            break;
+        }        /*Call Instance specific process function*/
+        else if (omx->async_message_process(input,&vdec_msg) < 0) {
+            DEBUG_PRINT_ERROR("\nERROR:Wrong ioctl message");
+        }
     }
-    else if (error_code < 0)
-    {
-      DEBUG_PRINT_ERROR("\n Error in ioctl read next msg");
-      break;
-    }        /*Call Instance specific process function*/
-    else if (omx->async_message_process(input,&vdec_msg) < 0)
-    {
-      DEBUG_PRINT_ERROR("\nERROR:Wrong ioctl message");
-    }
-  }
-  DEBUG_PRINT_HIGH("omx_vdec: Async thread stop");
-  return NULL;
+
+    DEBUG_PRINT_HIGH("omx_vdec: Async thread stop");
+    return NULL;
 }
 
 void* message_thread(void *input)
 {
-  omx_vdec* omx = reinterpret_cast<omx_vdec*>(input);
-  unsigned char id;
-  int n;
+    omx_vdec* omx = reinterpret_cast<omx_vdec*>(input);
+    unsigned char id;
+    int n;
 
-  DEBUG_PRINT_HIGH("omx_vdec: message thread start");
-  prctl(PR_SET_NAME, (unsigned long)"VideoDecMsgThread", 0, 0, 0);
-  while (1)
-  {
+    DEBUG_PRINT_HIGH("omx_vdec: message thread start");
+    prctl(PR_SET_NAME, (unsigned long)"VideoDecMsgThread", 0, 0, 0);
 
-    n = read(omx->m_pipe_in, &id, 1);
+    while (1) {
 
-    if(0 == n)
-    {
-      break;
+        n = read(omx->m_pipe_in, &id, 1);
+
+        if (0 == n) {
+            break;
+        }
+
+        if (1 == n) {
+            omx->process_event_cb(omx, id);
+        }
+
+        if ((n < 0) && (errno != EINTR)) {
+            DEBUG_PRINT_ERROR("\nERROR: read from pipe failed, ret %d errno %d", n, errno);
+            break;
+        }
     }
 
-    if (1 == n)
-    {
-        omx->process_event_cb(omx, id);
-    }
-    if ((n < 0) && (errno != EINTR))
-    {
-      DEBUG_PRINT_ERROR("\nERROR: read from pipe failed, ret %d errno %d", n, errno);
-      break;
-    }
-  }
-  DEBUG_PRINT_HIGH("omx_vdec: message thread stop");
-  return 0;
+    DEBUG_PRINT_HIGH("omx_vdec: message thread stop");
+    return 0;
 }
 
 void post_message(omx_vdec *omx, unsigned char id)
 {
-      int ret_value;
-      DEBUG_PRINT_LOW("omx_vdec: post_message %d pipe out%d", id,omx->m_pipe_out);
-      ret_value = write(omx->m_pipe_out, &id, 1);
-      DEBUG_PRINT_LOW("post_message to pipe done %d",ret_value);
+    int ret_value;
+    DEBUG_PRINT_LOW("omx_vdec: post_message %d pipe out%d", id,omx->m_pipe_out);
+    ret_value = write(omx->m_pipe_out, &id, 1);
+    DEBUG_PRINT_LOW("post_message to pipe done %d",ret_value);
 }
 
 // omx_cmd_queue destructor
 omx_vdec::omx_cmd_queue::~omx_cmd_queue()
 {
-  // Nothing to do
+    // Nothing to do
 }
 
 // omx cmd queue constructor
@@ -249,49 +246,47 @@
 // omx cmd queue insert
 bool omx_vdec::omx_cmd_queue::insert_entry(unsigned p1, unsigned p2, unsigned id)
 {
-  bool ret = true;
-  if(m_size < OMX_CORE_CONTROL_CMDQ_SIZE)
-  {
-    m_q[m_write].id       = id;
-    m_q[m_write].param1   = p1;
-    m_q[m_write].param2   = p2;
-    m_write++;
-    m_size ++;
-    if(m_write >= OMX_CORE_CONTROL_CMDQ_SIZE)
-    {
-      m_write = 0;
+    bool ret = true;
+
+    if (m_size < OMX_CORE_CONTROL_CMDQ_SIZE) {
+        m_q[m_write].id       = id;
+        m_q[m_write].param1   = p1;
+        m_q[m_write].param2   = p2;
+        m_write++;
+        m_size ++;
+
+        if (m_write >= OMX_CORE_CONTROL_CMDQ_SIZE) {
+            m_write = 0;
+        }
+    } else {
+        ret = false;
+        DEBUG_PRINT_ERROR("\n ERROR: %s()::Command Queue Full", __func__);
     }
-  }
-  else
-  {
-    ret = false;
-    DEBUG_PRINT_ERROR("\n ERROR: %s()::Command Queue Full", __func__);
-  }
-  return ret;
+
+    return ret;
 }
 
 // omx cmd queue pop
 bool omx_vdec::omx_cmd_queue::pop_entry(unsigned *p1, unsigned *p2, unsigned *id)
 {
-  bool ret = true;
-  if (m_size > 0)
-  {
-    *id = m_q[m_read].id;
-    *p1 = m_q[m_read].param1;
-    *p2 = m_q[m_read].param2;
-    // Move the read pointer ahead
-    ++m_read;
-    --m_size;
-    if(m_read >= OMX_CORE_CONTROL_CMDQ_SIZE)
-    {
-      m_read = 0;
+    bool ret = true;
+
+    if (m_size > 0) {
+        *id = m_q[m_read].id;
+        *p1 = m_q[m_read].param1;
+        *p2 = m_q[m_read].param2;
+        // Move the read pointer ahead
+        ++m_read;
+        --m_size;
+
+        if (m_read >= OMX_CORE_CONTROL_CMDQ_SIZE) {
+            m_read = 0;
+        }
+    } else {
+        ret = false;
     }
-  }
-  else
-  {
-    ret = false;
-  }
-  return ret;
+
+    return ret;
 }
 
 // Retrieve the first mesg type in the queue
@@ -303,114 +298,105 @@
 #ifdef _ANDROID_
 omx_vdec::ts_arr_list::ts_arr_list()
 {
-  //initialize timestamps array
-  memset(m_ts_arr_list, 0, ( sizeof(ts_entry) * MAX_NUM_INPUT_OUTPUT_BUFFERS) );
+    //initialize timestamps array
+    memset(m_ts_arr_list, 0, ( sizeof(ts_entry) * MAX_NUM_INPUT_OUTPUT_BUFFERS) );
 }
 omx_vdec::ts_arr_list::~ts_arr_list()
 {
-  //free m_ts_arr_list?
+    //free m_ts_arr_list?
 }
 
 bool omx_vdec::ts_arr_list::insert_ts(OMX_TICKS ts)
 {
-  bool ret = true;
-  bool duplicate_ts = false;
-  int idx = 0;
+    bool ret = true;
+    bool duplicate_ts = false;
+    int idx = 0;
 
-  //insert at the first available empty location
-  for ( ; idx < MAX_NUM_INPUT_OUTPUT_BUFFERS; idx++)
-  {
-    if (!m_ts_arr_list[idx].valid)
-    {
-      //found invalid or empty entry, save timestamp
-      m_ts_arr_list[idx].valid = true;
-      m_ts_arr_list[idx].timestamp = ts;
-      DEBUG_PRINT_LOW("Insert_ts(): Inserting TIMESTAMP (%lld) at idx (%d)",
-                       ts, idx);
-      break;
+    //insert at the first available empty location
+    for ( ; idx < MAX_NUM_INPUT_OUTPUT_BUFFERS; idx++) {
+        if (!m_ts_arr_list[idx].valid) {
+            //found invalid or empty entry, save timestamp
+            m_ts_arr_list[idx].valid = true;
+            m_ts_arr_list[idx].timestamp = ts;
+            DEBUG_PRINT_LOW("Insert_ts(): Inserting TIMESTAMP (%lld) at idx (%d)",
+                    ts, idx);
+            break;
+        }
     }
-  }
 
-  if (idx == MAX_NUM_INPUT_OUTPUT_BUFFERS)
-  {
-    DEBUG_PRINT_LOW("Timestamp array list is FULL. Unsuccessful insert");
-    ret = false;
-  }
-  return ret;
+    if (idx == MAX_NUM_INPUT_OUTPUT_BUFFERS) {
+        DEBUG_PRINT_LOW("Timestamp array list is FULL. Unsuccessful insert");
+        ret = false;
+    }
+
+    return ret;
 }
 
 bool omx_vdec::ts_arr_list::pop_min_ts(OMX_TICKS &ts)
 {
-  bool ret = true;
-  int min_idx = -1;
-  OMX_TICKS min_ts = 0;
-  int idx = 0;
+    bool ret = true;
+    int min_idx = -1;
+    OMX_TICKS min_ts = 0;
+    int idx = 0;
 
-  for ( ; idx < MAX_NUM_INPUT_OUTPUT_BUFFERS; idx++)
-  {
+    for ( ; idx < MAX_NUM_INPUT_OUTPUT_BUFFERS; idx++) {
 
-    if (m_ts_arr_list[idx].valid)
-    {
-      //found valid entry, save index
-      if (min_idx < 0)
-      {
-        //first valid entry
-        min_ts = m_ts_arr_list[idx].timestamp;
-        min_idx = idx;
-      }
-      else if (m_ts_arr_list[idx].timestamp < min_ts)
-      {
-        min_ts = m_ts_arr_list[idx].timestamp;
-        min_idx = idx;
-      }
+        if (m_ts_arr_list[idx].valid) {
+            //found valid entry, save index
+            if (min_idx < 0) {
+                //first valid entry
+                min_ts = m_ts_arr_list[idx].timestamp;
+                min_idx = idx;
+            } else if (m_ts_arr_list[idx].timestamp < min_ts) {
+                min_ts = m_ts_arr_list[idx].timestamp;
+                min_idx = idx;
+            }
+        }
+
     }
 
-  }
+    if (min_idx < 0) {
+        //no valid entries found
+        DEBUG_PRINT_LOW("Timestamp array list is empty. Unsuccessful pop");
+        ts = 0;
+        ret = false;
+    } else {
+        ts = m_ts_arr_list[min_idx].timestamp;
+        m_ts_arr_list[min_idx].valid = false;
+        DEBUG_PRINT_LOW("Pop_min_ts:Timestamp (%lld), index(%d)",
+                ts, min_idx);
+    }
 
-  if (min_idx < 0)
-  {
-    //no valid entries found
-    DEBUG_PRINT_LOW("Timestamp array list is empty. Unsuccessful pop");
-    ts = 0;
-    ret = false;
-  }
-  else
-  {
-    ts = m_ts_arr_list[min_idx].timestamp;
-    m_ts_arr_list[min_idx].valid = false;
-    DEBUG_PRINT_LOW("Pop_min_ts:Timestamp (%lld), index(%d)",
-                     ts, min_idx);
-  }
-
-  return ret;
+    return ret;
 
 }
 
 
 bool omx_vdec::ts_arr_list::reset_ts_list()
 {
-  bool ret = true;
-  int idx = 0;
+    bool ret = true;
+    int idx = 0;
 
-  DEBUG_PRINT_LOW("reset_ts_list(): Resetting timestamp array list");
-  for ( ; idx < MAX_NUM_INPUT_OUTPUT_BUFFERS; idx++)
-  {
-    m_ts_arr_list[idx].valid = false;
-  }
-  return ret;
+    DEBUG_PRINT_LOW("reset_ts_list(): Resetting timestamp array list");
+
+    for ( ; idx < MAX_NUM_INPUT_OUTPUT_BUFFERS; idx++) {
+        m_ts_arr_list[idx].valid = false;
+    }
+
+    return ret;
 }
 #endif
 
 // factory function executed by the core to create instances
 void *get_omx_component_factory_fn(void)
 {
-  return (new omx_vdec);
+    return (new omx_vdec);
 }
 
 #ifdef _ANDROID_
 #ifdef USE_ION
 VideoHeap::VideoHeap(int devicefd, size_t size, void* base,
-                     struct ion_handle *handle, int ionMapfd)
+        struct ion_handle *handle, int ionMapfd)
 {
     m_ion_device_fd = devicefd;
     m_ion_handle = handle;
@@ -426,1319 +412,1275 @@
 #endif
 #endif // _ANDROID_
 /* ======================================================================
-FUNCTION
-  omx_vdec::omx_vdec
+   FUNCTION
+   omx_vdec::omx_vdec
 
-DESCRIPTION
-  Constructor
+   DESCRIPTION
+   Constructor
 
-PARAMETERS
-  None
+   PARAMETERS
+   None
 
-RETURN VALUE
-  None.
-========================================================================== */
+   RETURN VALUE
+   None.
+   ========================================================================== */
 omx_vdec::omx_vdec(): m_state(OMX_StateInvalid),
-                      m_app_data(NULL),
-                      m_inp_mem_ptr(NULL),
-                      m_out_mem_ptr(NULL),
-                      m_phdr_pmem_ptr(NULL),
-                      pending_input_buffers(0),
-                      pending_output_buffers(0),
-                      m_out_bm_count(0),
-                      m_inp_bm_count(0),
-                      m_inp_bPopulated(OMX_FALSE),
-                      m_out_bPopulated(OMX_FALSE),
-                      m_flags(0),
-                      m_inp_bEnabled(OMX_TRUE),
-                      m_out_bEnabled(OMX_TRUE),
-                      m_platform_list(NULL),
-                      m_platform_entry(NULL),
-                      m_pmem_info(NULL),
-                      output_flush_progress (false),
-                      input_flush_progress (false),
-                      input_use_buffer (false),
-                      output_use_buffer (false),
-                      arbitrary_bytes (true),
-                      psource_frame (NULL),
-                      pdest_frame (NULL),
-                      m_inp_heap_ptr (NULL),
-                      m_heap_inp_bm_count (0),
-                      codec_type_parse ((codec_type)0),
-                      first_frame_meta (true),
-                      frame_count (0),
-                      nal_length(0),
-                      nal_count (0),
-                      look_ahead_nal (false),
-                      first_frame(0),
-                      first_buffer(NULL),
-                      first_frame_size (0),
-                      m_error_propogated(false),
-                      m_device_file_ptr(NULL),
-                      m_vc1_profile((vc1_profile_type)0),
-                      prev_ts(LLONG_MAX),
-                      rst_prev_ts(true),
-                      frm_int(0),
-                      m_in_alloc_cnt(0),
-                      m_display_id(NULL),
-                      ouput_egl_buffers(false),
-                      h264_parser(NULL),
-                      client_extradata(0),
-                      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),
+    m_app_data(NULL),
+    m_inp_mem_ptr(NULL),
+    m_out_mem_ptr(NULL),
+    m_phdr_pmem_ptr(NULL),
+    pending_input_buffers(0),
+    pending_output_buffers(0),
+    m_out_bm_count(0),
+    m_inp_bm_count(0),
+    m_inp_bPopulated(OMX_FALSE),
+    m_out_bPopulated(OMX_FALSE),
+    m_flags(0),
+    m_inp_bEnabled(OMX_TRUE),
+    m_out_bEnabled(OMX_TRUE),
+    m_platform_list(NULL),
+    m_platform_entry(NULL),
+    m_pmem_info(NULL),
+    output_flush_progress (false),
+    input_flush_progress (false),
+    input_use_buffer (false),
+    output_use_buffer (false),
+    arbitrary_bytes (true),
+    psource_frame (NULL),
+    pdest_frame (NULL),
+    m_inp_heap_ptr (NULL),
+    m_heap_inp_bm_count (0),
+    codec_type_parse ((codec_type)0),
+    first_frame_meta (true),
+    frame_count (0),
+    nal_length(0),
+    nal_count (0),
+    look_ahead_nal (false),
+    first_frame(0),
+    first_buffer(NULL),
+    first_frame_size (0),
+    m_error_propogated(false),
+    m_device_file_ptr(NULL),
+    m_vc1_profile((vc1_profile_type)0),
+    prev_ts(LLONG_MAX),
+    rst_prev_ts(true),
+    frm_int(0),
+    m_in_alloc_cnt(0),
+    m_display_id(NULL),
+    ouput_egl_buffers(false),
+    h264_parser(NULL),
+    client_extradata(0),
+    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),
-                      m_enable_android_native_buffers(OMX_FALSE),
-                      m_use_android_native_buffers(OMX_FALSE),
+    m_heap_ptr(NULL),
+    m_heap_count(0),
+    m_enable_android_native_buffers(OMX_FALSE),
+    m_use_android_native_buffers(OMX_FALSE),
 #endif
-                      in_reconfig(false),
-                      m_use_output_pmem(OMX_FALSE),
-                      m_out_mem_region_smi(OMX_FALSE),
-                      m_out_pvt_entry_pmem(OMX_FALSE),
-                      secure_mode(false),
-                      external_meta_buffer(false),
-                      external_meta_buffer_iommu(false)
+    in_reconfig(false),
+    m_use_output_pmem(OMX_FALSE),
+    m_out_mem_region_smi(OMX_FALSE),
+    m_out_pvt_entry_pmem(OMX_FALSE),
+    secure_mode(false),
+    external_meta_buffer(false),
+    external_meta_buffer_iommu(false)
 #ifdef _ANDROID_
-                    ,iDivXDrmDecrypt(NULL)
+,iDivXDrmDecrypt(NULL)
 #endif
-                    ,m_desc_buffer_ptr(NULL)
-                    ,m_extradata(NULL)
-                    ,m_power_hinted(false)
+    ,m_desc_buffer_ptr(NULL)
+    ,m_extradata(NULL)
+,m_power_hinted(false)
 {
-  /* Assumption is that , to begin with , we have all the frames with decoder */
-  DEBUG_PRINT_HIGH("In OMX vdec Constructor");
+    /* Assumption is that , to begin with , we have all the frames with decoder */
+    DEBUG_PRINT_HIGH("In OMX vdec Constructor");
 #ifdef _ANDROID_
-  char property_value[PROPERTY_VALUE_MAX] = {0};
-  property_get("vidc.dec.debug.perf", property_value, "0");
-  perf_flag = atoi(property_value);
-  if (perf_flag)
-  {
-    DEBUG_PRINT_HIGH("vidc.dec.debug.perf is %d", perf_flag);
-    dec_time.start();
-    proc_frms = latency = 0;
-  }
-  property_value[0] = NULL;
-  property_get("vidc.dec.debug.ts", property_value, "0");
-  m_debug_timestamp = atoi(property_value);
-  DEBUG_PRINT_HIGH("vidc.dec.debug.ts value is %d",m_debug_timestamp);
-  if (m_debug_timestamp)
-  {
-    time_stamp_dts.set_timestamp_reorder_mode(true);
-    time_stamp_dts.enable_debug_print(true);
-  }
+    char property_value[PROPERTY_VALUE_MAX] = {0};
+    property_get("vidc.dec.debug.perf", property_value, "0");
+    perf_flag = atoi(property_value);
 
-  property_value[0] = NULL;
-  property_get("vidc.dec.debug.concealedmb", property_value, "0");
-  m_debug_concealedmb = atoi(property_value);
-  DEBUG_PRINT_HIGH("vidc.dec.debug.concealedmb value is %d",m_debug_concealedmb);
+    if (perf_flag) {
+        DEBUG_PRINT_HIGH("vidc.dec.debug.perf is %d", perf_flag);
+        dec_time.start();
+        proc_frms = latency = 0;
+    }
+
+    property_value[0] = NULL;
+    property_get("vidc.dec.debug.ts", property_value, "0");
+    m_debug_timestamp = atoi(property_value);
+    DEBUG_PRINT_HIGH("vidc.dec.debug.ts value is %d",m_debug_timestamp);
+
+    if (m_debug_timestamp) {
+        time_stamp_dts.set_timestamp_reorder_mode(true);
+        time_stamp_dts.enable_debug_print(true);
+    }
+
+    property_value[0] = NULL;
+    property_get("vidc.dec.debug.concealedmb", property_value, "0");
+    m_debug_concealedmb = atoi(property_value);
+    DEBUG_PRINT_HIGH("vidc.dec.debug.concealedmb value is %d",m_debug_concealedmb);
 
 #endif
-  memset(&m_cmp,0,sizeof(m_cmp));
-  memset(&m_cb,0,sizeof(m_cb));
-  memset (&drv_ctx,0,sizeof(drv_ctx));
-  memset (&h264_scratch,0,sizeof (OMX_BUFFERHEADERTYPE));
-  memset (m_hwdevice_name,0,sizeof(m_hwdevice_name));
-  memset(&op_buf_rcnfg, 0 ,sizeof(vdec_allocatorproperty));
-  memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
-  m_demux_entries = 0;
-  msg_thread_created = false;
-  async_thread_created = false;
+    memset(&m_cmp,0,sizeof(m_cmp));
+    memset(&m_cb,0,sizeof(m_cb));
+    memset (&drv_ctx,0,sizeof(drv_ctx));
+    memset (&h264_scratch,0,sizeof (OMX_BUFFERHEADERTYPE));
+    memset (m_hwdevice_name,0,sizeof(m_hwdevice_name));
+    memset(&op_buf_rcnfg, 0 ,sizeof(vdec_allocatorproperty));
+    memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
+    m_demux_entries = 0;
+    msg_thread_created = false;
+    async_thread_created = false;
 #ifdef _ANDROID_ICS_
-  memset(&native_buffer, 0 ,(sizeof(struct nativebuffer) * MAX_NUM_INPUT_OUTPUT_BUFFERS));
+    memset(&native_buffer, 0 ,(sizeof(struct nativebuffer) * MAX_NUM_INPUT_OUTPUT_BUFFERS));
 #endif
-  drv_ctx.timestamp_adjust = false;
-  drv_ctx.video_driver_fd = -1;
-  m_vendor_config.pData = NULL;
-  pthread_mutex_init(&m_lock, NULL);
-  sem_init(&m_cmd_lock,0,0);
+    drv_ctx.timestamp_adjust = false;
+    drv_ctx.video_driver_fd = -1;
+    m_vendor_config.pData = NULL;
+    pthread_mutex_init(&m_lock, NULL);
+    sem_init(&m_cmd_lock,0,0);
 #ifdef _ANDROID_
-  char extradata_value[PROPERTY_VALUE_MAX] = {0};
-  property_get("vidc.dec.debug.extradata", extradata_value, "0");
-  m_debug_extradata = atoi(extradata_value);
-  DEBUG_PRINT_HIGH("vidc.dec.debug.extradata value is %d",m_debug_extradata);
+    char extradata_value[PROPERTY_VALUE_MAX] = {0};
+    property_get("vidc.dec.debug.extradata", extradata_value, "0");
+    m_debug_extradata = atoi(extradata_value);
+    DEBUG_PRINT_HIGH("vidc.dec.debug.extradata value is %d",m_debug_extradata);
 #endif
-  m_fill_output_msg = OMX_COMPONENT_GENERATE_FTB;
-  client_buffers.set_vdec_client(this);
+    m_fill_output_msg = OMX_COMPONENT_GENERATE_FTB;
+    client_buffers.set_vdec_client(this);
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::~omx_vdec
+   FUNCTION
+   omx_vdec::~omx_vdec
 
-DESCRIPTION
-  Destructor
+   DESCRIPTION
+   Destructor
 
-PARAMETERS
-  None
+   PARAMETERS
+   None
 
-RETURN VALUE
-  None.
-========================================================================== */
+   RETURN VALUE
+   None.
+   ========================================================================== */
 omx_vdec::~omx_vdec()
 {
-  m_pmem_info = NULL;
-  DEBUG_PRINT_HIGH("In OMX vdec Destructor");
-  if(m_pipe_in) close(m_pipe_in);
-  if(m_pipe_out) close(m_pipe_out);
-  m_pipe_in = -1;
-  m_pipe_out = -1;
-  if (msg_thread_created)
-  {
-    DEBUG_PRINT_HIGH("Waiting on OMX Msg Thread exit");
-    pthread_join(msg_thread_id,NULL);
-  }
-  if (async_thread_created)
-  {
-    DEBUG_PRINT_HIGH("Waiting on OMX Async Thread exit");
-    pthread_join(async_thread_id,NULL);
-  }
-  DEBUG_PRINT_HIGH("Calling close() on Video Driver");
-  close (drv_ctx.video_driver_fd);
-  drv_ctx.video_driver_fd = -1;
+    m_pmem_info = NULL;
+    DEBUG_PRINT_HIGH("In OMX vdec Destructor");
 
-  pthread_mutex_destroy(&m_lock);
-  sem_destroy(&m_cmd_lock);
+    if (m_pipe_in) close(m_pipe_in);
+
+    if (m_pipe_out) close(m_pipe_out);
+
+    m_pipe_in = -1;
+    m_pipe_out = -1;
+
+    if (msg_thread_created) {
+        DEBUG_PRINT_HIGH("Waiting on OMX Msg Thread exit");
+        pthread_join(msg_thread_id,NULL);
+    }
+
+    if (async_thread_created) {
+        DEBUG_PRINT_HIGH("Waiting on OMX Async Thread exit");
+        pthread_join(async_thread_id,NULL);
+    }
+
+    DEBUG_PRINT_HIGH("Calling close() on Video Driver");
+    close (drv_ctx.video_driver_fd);
+    drv_ctx.video_driver_fd = -1;
+
+    pthread_mutex_destroy(&m_lock);
+    sem_destroy(&m_cmd_lock);
 #ifdef _ANDROID_
-  if (perf_flag)
-  {
-    DEBUG_PRINT_HIGH("--> TOTAL PROCESSING TIME");
-    dec_time.end();
-  }
+
+    if (perf_flag) {
+        DEBUG_PRINT_HIGH("--> TOTAL PROCESSING TIME");
+        dec_time.end();
+    }
+
 #endif /* _ANDROID_ */
-  DEBUG_PRINT_HIGH("Exit OMX vdec Destructor");
+    DEBUG_PRINT_HIGH("Exit OMX vdec Destructor");
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::OMXCntrlProcessMsgCb
+   FUNCTION
+   omx_vdec::OMXCntrlProcessMsgCb
 
-DESCRIPTION
-  IL Client callbacks are generated through this routine. The decoder
-  provides the thread context for this routine.
+   DESCRIPTION
+   IL Client callbacks are generated through this routine. The decoder
+   provides the thread context for this routine.
 
-PARAMETERS
-  ctxt -- Context information related to the self.
-  id   -- Event identifier. This could be any of the following:
-          1. Command completion event
-          2. Buffer done callback event
-          3. Frame done callback event
+   PARAMETERS
+   ctxt -- Context information related to the self.
+   id   -- Event identifier. This could be any of the following:
+   1. Command completion event
+   2. Buffer done callback event
+   3. Frame done callback event
 
-RETURN VALUE
-  None.
+   RETURN VALUE
+   None.
 
-========================================================================== */
+   ========================================================================== */
 void omx_vdec::process_event_cb(void *ctxt, unsigned char id)
 {
-  unsigned p1; // Parameter - 1
-  unsigned p2; // Parameter - 2
-  unsigned ident;
-  unsigned qsize=0; // qsize
-  omx_vdec *pThis = (omx_vdec *) ctxt;
+    unsigned p1; // Parameter - 1
+    unsigned p2; // Parameter - 2
+    unsigned ident;
+    unsigned qsize=0; // qsize
+    omx_vdec *pThis = (omx_vdec *) ctxt;
 
-  if(!pThis)
-  {
-    DEBUG_PRINT_ERROR("\n ERROR: %s()::Context is incorrect, bailing out",
-        __func__);
-    return;
-  }
-
-  // Protect the shared queue data structure
-  do
-  {
-    /*Read the message id's from the queue*/
-    pthread_mutex_lock(&pThis->m_lock);
-    qsize = pThis->m_cmd_q.m_size;
-    if(qsize)
-    {
-      pThis->m_cmd_q.pop_entry(&p1,&p2,&ident);
+    if (!pThis) {
+        DEBUG_PRINT_ERROR("\n ERROR: %s()::Context is incorrect, bailing out",
+                __func__);
+        return;
     }
 
-    if (qsize == 0 && pThis->m_state != OMX_StatePause)
-    {
-      qsize = pThis->m_ftb_q.m_size;
-      if (qsize)
-      {
-        pThis->m_ftb_q.pop_entry(&p1,&p2,&ident);
-      }
-    }
+    // Protect the shared queue data structure
+    do {
+        /*Read the message id's from the queue*/
+        pthread_mutex_lock(&pThis->m_lock);
+        qsize = pThis->m_cmd_q.m_size;
 
-    if (qsize == 0 && pThis->m_state != OMX_StatePause)
-    {
-      qsize = pThis->m_etb_q.m_size;
-      if (qsize)
-      {
-        pThis->m_etb_q.pop_entry(&p1,&p2,&ident);
-      }
-    }
-    pthread_mutex_unlock(&pThis->m_lock);
+        if (qsize) {
+            pThis->m_cmd_q.pop_entry(&p1,&p2,&ident);
+        }
 
-    /*process message if we have one*/
-    if(qsize > 0)
-    {
-      id = ident;
-      switch (id)
-      {
-        case OMX_COMPONENT_GENERATE_EVENT:
-          if (pThis->m_cb.EventHandler)
-          {
-            switch (p1)
-            {
-              case OMX_CommandStateSet:
-                pThis->m_state = (OMX_STATETYPE) p2;
-                DEBUG_PRINT_HIGH("OMX_CommandStateSet complete, m_state = %d",
-                    pThis->m_state);
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                      OMX_EventCmdComplete, p1, p2, NULL);
-                break;
+        if (qsize == 0 && pThis->m_state != OMX_StatePause) {
+            qsize = pThis->m_ftb_q.m_size;
 
-              case OMX_EventError:
-                if(p2 == OMX_StateInvalid)
-                {
-                    DEBUG_PRINT_ERROR("\n OMX_EventError: p2 is OMX_StateInvalid");
-                    pThis->m_state = (OMX_STATETYPE) p2;
-                    pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                               OMX_EventError, OMX_ErrorInvalidState, p2, NULL);
-                }
-                else if (p2 == OMX_ErrorHardware)
-                {
-                   pThis->omx_report_error();
-                }
-                else
-                {
-                    pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                      OMX_EventError, p2, NULL, NULL );
-                }
-                break;
-
-              case OMX_CommandPortDisable:
-                DEBUG_PRINT_HIGH("OMX_CommandPortDisable complete for port [%d]", p2);
-                if (BITMASK_PRESENT(&pThis->m_flags,
-                    OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING))
-                {
-                  BITMASK_SET(&pThis->m_flags, OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED);
-                  break;
-                }
-                if (p2 == OMX_CORE_OUTPUT_PORT_INDEX && pThis->in_reconfig)
-                {
-                  pThis->in_reconfig = false;
-                  pThis->drv_ctx.op_buf = pThis->op_buf_rcnfg;
-                  OMX_ERRORTYPE eRet = pThis->set_buffer_req(&pThis->drv_ctx.op_buf);
-                  if(eRet !=  OMX_ErrorNone)
-                  {
-                      DEBUG_PRINT_ERROR("set_buffer_req failed eRet = %d",eRet);
-                      pThis->omx_report_error();
-                      break;
-                  }
-                }
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                      OMX_EventCmdComplete, p1, p2, NULL );
-                break;
-              case OMX_CommandPortEnable:
-                DEBUG_PRINT_HIGH("OMX_CommandPortEnable complete for port [%d]", p2);
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,\
-                                      OMX_EventCmdComplete, p1, p2, NULL );
-                break;
-
-              default:
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                         OMX_EventCmdComplete, p1, p2, NULL );
-                break;
-
+            if (qsize) {
+                pThis->m_ftb_q.pop_entry(&p1,&p2,&ident);
             }
-          }
-          else
-          {
-            DEBUG_PRINT_ERROR("\n ERROR: %s()::EventHandler is NULL", __func__);
-          }
-          break;
-        case OMX_COMPONENT_GENERATE_ETB_ARBITRARY:
-          if (pThis->empty_this_buffer_proxy_arbitrary((OMX_HANDLETYPE)p1,\
-              (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone)
-          {
-            DEBUG_PRINT_ERROR("\n empty_this_buffer_proxy_arbitrary failure");
-            pThis->omx_report_error ();
-          }
-      break;
-        case OMX_COMPONENT_GENERATE_ETB:
-          if (pThis->empty_this_buffer_proxy((OMX_HANDLETYPE)p1,\
-              (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone)
-          {
-            DEBUG_PRINT_ERROR("\n empty_this_buffer_proxy failure");
-            pThis->omx_report_error ();
-          }
-         break;
+        }
 
-        case OMX_COMPONENT_GENERATE_FTB:
-          if ( pThis->fill_this_buffer_proxy((OMX_HANDLETYPE)p1,\
-               (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone)
-          {
-             DEBUG_PRINT_ERROR("\n fill_this_buffer_proxy failure");
-             pThis->omx_report_error ();
-          }
-        break;
+        if (qsize == 0 && pThis->m_state != OMX_StatePause) {
+            qsize = pThis->m_etb_q.m_size;
 
-        case OMX_COMPONENT_GENERATE_COMMAND:
-          pThis->send_command_proxy(&pThis->m_cmp,(OMX_COMMANDTYPE)p1,\
-                                    (OMX_U32)p2,(OMX_PTR)NULL);
-          break;
-
-        case OMX_COMPONENT_GENERATE_EBD:
-
-          if (p2 != VDEC_S_SUCCESS && p2 != VDEC_S_INPUT_BITSTREAM_ERR)
-          {
-            DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_EBD failure");
-            pThis->omx_report_error ();
-          }
-          else
-          {
-            if (p2 == VDEC_S_INPUT_BITSTREAM_ERR && p1)
-            {
-              pThis->m_inp_err_count++;
-              pThis->time_stamp_dts.remove_time_stamp(
-              ((OMX_BUFFERHEADERTYPE *)p1)->nTimeStamp,
-              (pThis->drv_ctx.interlace != VDEC_InterlaceFrameProgressive)
-                ?true:false);
+            if (qsize) {
+                pThis->m_etb_q.pop_entry(&p1,&p2,&ident);
             }
-            else
-            {
-              pThis->m_inp_err_count = 0;
-            }
-            if ( pThis->empty_buffer_done(&pThis->m_cmp,
-                 (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone)
-            {
-               DEBUG_PRINT_ERROR("\n empty_buffer_done failure");
-               pThis->omx_report_error ();
-            }
-            if(!pThis->arbitrary_bytes && pThis->m_inp_err_count > MAX_INPUT_ERROR)
-            {
-               DEBUG_PRINT_ERROR("\n Input bitstream error for consecutive %d frames.", MAX_INPUT_ERROR);
-               pThis->omx_report_error ();
-            }
-          }
-          break;
-        case OMX_COMPONENT_GENERATE_INFO_FIELD_DROPPED:
-          {
-            int64_t *timestamp = (int64_t *)p1;
-            if (p1)
-            {
-              pThis->time_stamp_dts.remove_time_stamp(*timestamp,
-              (pThis->drv_ctx.interlace != VDEC_InterlaceFrameProgressive)
-              ?true:false);
-              free(timestamp);
-            }
-          }
-          break;
-        case OMX_COMPONENT_GENERATE_FBD:
-          if (p2 != VDEC_S_SUCCESS)
-          {
-            DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_FBD failure");
-            pThis->omx_report_error ();
-          }
-          else if ( pThis->fill_buffer_done(&pThis->m_cmp,
-                  (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone )
-          {
-            DEBUG_PRINT_ERROR("\n fill_buffer_done failure");
-            pThis->omx_report_error ();
-          }
-          break;
+        }
 
-        case OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH:
-          DEBUG_PRINT_HIGH("Driver flush i/p Port complete");
-          if (!pThis->input_flush_progress)
-          {
-            DEBUG_PRINT_ERROR("\n WARNING: Unexpected flush from driver");
-          }
-          else
-          {
-            pThis->execute_input_flush();
-            if (pThis->m_cb.EventHandler)
-            {
-              if (p2 != VDEC_S_SUCCESS)
-              {
-                DEBUG_PRINT_ERROR("\nOMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH failure");
-                pThis->omx_report_error ();
-              }
-              else
-              {
-                /*Check if we need generate event for Flush done*/
-                if(BITMASK_PRESENT(&pThis->m_flags,
-                                   OMX_COMPONENT_INPUT_FLUSH_PENDING))
-                {
-                  BITMASK_CLEAR (&pThis->m_flags,OMX_COMPONENT_INPUT_FLUSH_PENDING);
-                  DEBUG_PRINT_LOW("Input Flush completed - Notify Client");
-                  pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                           OMX_EventCmdComplete,OMX_CommandFlush,
-                                           OMX_CORE_INPUT_PORT_INDEX,NULL );
-                }
-                if (BITMASK_PRESENT(&pThis->m_flags,
-                                         OMX_COMPONENT_IDLE_PENDING))
-                {
-                  if (!pThis->output_flush_progress)
-                  {
-                     DEBUG_PRINT_LOW("Output flush done hence issue stop");
-                     if (ioctl (pThis->drv_ctx.video_driver_fd,
-                                VDEC_IOCTL_CMD_STOP,NULL ) < 0)
-                     {
-                       DEBUG_PRINT_ERROR("\n VDEC_IOCTL_CMD_STOP failed");
-                       pThis->omx_report_error ();
-                     }
-                  }
-                }
-              }
-            }
-            else
-            {
-              DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-            }
-          }
-          break;
+        pthread_mutex_unlock(&pThis->m_lock);
 
-        case OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH:
-          DEBUG_PRINT_HIGH("Driver flush o/p Port complete");
-          if (!pThis->output_flush_progress)
-          {
-            DEBUG_PRINT_ERROR("\n WARNING: Unexpected flush from driver");
-          }
-          else
-          {
-            pThis->execute_output_flush();
-            if (pThis->m_cb.EventHandler)
-            {
-              if (p2 != VDEC_S_SUCCESS)
-              {
-                DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH failed");
-                pThis->omx_report_error ();
-              }
-              else
-              {
-                /*Check if we need generate event for Flush done*/
-                if(BITMASK_PRESENT(&pThis->m_flags,
-                                   OMX_COMPONENT_OUTPUT_FLUSH_PENDING))
-                {
-                  DEBUG_PRINT_LOW("Notify Output Flush done");
-                  BITMASK_CLEAR (&pThis->m_flags,OMX_COMPONENT_OUTPUT_FLUSH_PENDING);
-                  pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                           OMX_EventCmdComplete,OMX_CommandFlush,
-                                           OMX_CORE_OUTPUT_PORT_INDEX,NULL );
-                }
-                if(BITMASK_PRESENT(&pThis->m_flags,
-                       OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING))
-                {
-                  DEBUG_PRINT_LOW("Internal flush complete");
-                  BITMASK_CLEAR (&pThis->m_flags,
-                                 OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING);
-                  if (BITMASK_PRESENT(&pThis->m_flags,
-                          OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED))
-                  {
-                    pThis->post_event(OMX_CommandPortDisable,
-                               OMX_CORE_OUTPUT_PORT_INDEX,
-                               OMX_COMPONENT_GENERATE_EVENT);
-                    BITMASK_CLEAR (&pThis->m_flags,
-                                   OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED);
+        /*process message if we have one*/
+        if (qsize > 0) {
+            id = ident;
 
-                  }
-                }
+            switch (id) {
+                case OMX_COMPONENT_GENERATE_EVENT:
 
-                if (BITMASK_PRESENT(&pThis->m_flags ,OMX_COMPONENT_IDLE_PENDING))
-                {
-                  if (!pThis->input_flush_progress)
-                  {
-                    DEBUG_PRINT_LOW("Input flush done hence issue stop");
-                    if (ioctl (pThis->drv_ctx.video_driver_fd,
-                               VDEC_IOCTL_CMD_STOP,NULL ) < 0)
-                    {
-                      DEBUG_PRINT_ERROR("\n VDEC_IOCTL_CMD_STOP failed");
-                      pThis->omx_report_error ();
+                    if (pThis->m_cb.EventHandler) {
+                        switch (p1) {
+                            case OMX_CommandStateSet:
+                                pThis->m_state = (OMX_STATETYPE) p2;
+                                DEBUG_PRINT_HIGH("OMX_CommandStateSet complete, m_state = %d",
+                                        pThis->m_state);
+                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                        OMX_EventCmdComplete, p1, p2, NULL);
+                                break;
+
+                            case OMX_EventError:
+
+                                if (p2 == OMX_StateInvalid) {
+                                    DEBUG_PRINT_ERROR("\n OMX_EventError: p2 is OMX_StateInvalid");
+                                    pThis->m_state = (OMX_STATETYPE) p2;
+                                    pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                            OMX_EventError, OMX_ErrorInvalidState, p2, NULL);
+                                } else if (p2 == OMX_ErrorHardware) {
+                                    pThis->omx_report_error();
+                                } else {
+                                    pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                            OMX_EventError, p2, NULL, NULL );
+                                }
+
+                                break;
+
+                            case OMX_CommandPortDisable:
+                                DEBUG_PRINT_HIGH("OMX_CommandPortDisable complete for port [%d]", p2);
+
+                                if (BITMASK_PRESENT(&pThis->m_flags,
+                                            OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING)) {
+                                    BITMASK_SET(&pThis->m_flags, OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED);
+                                    break;
+                                }
+
+                                if (p2 == OMX_CORE_OUTPUT_PORT_INDEX && pThis->in_reconfig) {
+                                    pThis->in_reconfig = false;
+                                    pThis->drv_ctx.op_buf = pThis->op_buf_rcnfg;
+                                    OMX_ERRORTYPE eRet = pThis->set_buffer_req(&pThis->drv_ctx.op_buf);
+
+                                    if (eRet !=  OMX_ErrorNone) {
+                                        DEBUG_PRINT_ERROR("set_buffer_req failed eRet = %d",eRet);
+                                        pThis->omx_report_error();
+                                        break;
+                                    }
+                                }
+
+                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                        OMX_EventCmdComplete, p1, p2, NULL );
+                                break;
+                            case OMX_CommandPortEnable:
+                                DEBUG_PRINT_HIGH("OMX_CommandPortEnable complete for port [%d]", p2);
+                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,\
+                                        OMX_EventCmdComplete, p1, p2, NULL );
+                                break;
+
+                            default:
+                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                        OMX_EventCmdComplete, p1, p2, NULL );
+                                break;
+
+                        }
+                    } else {
+                        DEBUG_PRINT_ERROR("\n ERROR: %s()::EventHandler is NULL", __func__);
                     }
-                  }
-                }
-              }
-            }
-            else
-            {
-              DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-            }
-          }
-          break;
 
-        case OMX_COMPONENT_GENERATE_START_DONE:
-          DEBUG_PRINT_HIGH("Rxd OMX_COMPONENT_GENERATE_START_DONE");
+                    break;
+                case OMX_COMPONENT_GENERATE_ETB_ARBITRARY:
 
-          if (pThis->m_cb.EventHandler)
-          {
-            if (p2 != VDEC_S_SUCCESS)
-            {
-              DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_START_DONE Failure");
-              pThis->omx_report_error ();
+                    if (pThis->empty_this_buffer_proxy_arbitrary((OMX_HANDLETYPE)p1,\
+                                (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone) {
+                        DEBUG_PRINT_ERROR("\n empty_this_buffer_proxy_arbitrary failure");
+                        pThis->omx_report_error ();
+                    }
+
+                    break;
+                case OMX_COMPONENT_GENERATE_ETB:
+
+                    if (pThis->empty_this_buffer_proxy((OMX_HANDLETYPE)p1,\
+                                (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone) {
+                        DEBUG_PRINT_ERROR("\n empty_this_buffer_proxy failure");
+                        pThis->omx_report_error ();
+                    }
+
+                    break;
+
+                case OMX_COMPONENT_GENERATE_FTB:
+
+                    if ( pThis->fill_this_buffer_proxy((OMX_HANDLETYPE)p1,\
+                                (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone) {
+                        DEBUG_PRINT_ERROR("\n fill_this_buffer_proxy failure");
+                        pThis->omx_report_error ();
+                    }
+
+                    break;
+
+                case OMX_COMPONENT_GENERATE_COMMAND:
+                    pThis->send_command_proxy(&pThis->m_cmp,(OMX_COMMANDTYPE)p1,\
+                            (OMX_U32)p2,(OMX_PTR)NULL);
+                    break;
+
+                case OMX_COMPONENT_GENERATE_EBD:
+
+                    if (p2 != VDEC_S_SUCCESS && p2 != VDEC_S_INPUT_BITSTREAM_ERR) {
+                        DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_EBD failure");
+                        pThis->omx_report_error ();
+                    } else {
+                        if (p2 == VDEC_S_INPUT_BITSTREAM_ERR && p1) {
+                            pThis->m_inp_err_count++;
+                            pThis->time_stamp_dts.remove_time_stamp(
+                                    ((OMX_BUFFERHEADERTYPE *)p1)->nTimeStamp,
+                                    (pThis->drv_ctx.interlace != VDEC_InterlaceFrameProgressive)
+                                    ?true:false);
+                        } else {
+                            pThis->m_inp_err_count = 0;
+                        }
+
+                        if ( pThis->empty_buffer_done(&pThis->m_cmp,
+                                    (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone) {
+                            DEBUG_PRINT_ERROR("\n empty_buffer_done failure");
+                            pThis->omx_report_error ();
+                        }
+
+                        if (!pThis->arbitrary_bytes && pThis->m_inp_err_count > MAX_INPUT_ERROR) {
+                            DEBUG_PRINT_ERROR("\n Input bitstream error for consecutive %d frames.", MAX_INPUT_ERROR);
+                            pThis->omx_report_error ();
+                        }
+                    }
+
+                    break;
+                case OMX_COMPONENT_GENERATE_INFO_FIELD_DROPPED:
+                    {
+                        int64_t *timestamp = (int64_t *)p1;
+
+                        if (p1) {
+                            pThis->time_stamp_dts.remove_time_stamp(*timestamp,
+                                    (pThis->drv_ctx.interlace != VDEC_InterlaceFrameProgressive)
+                                    ?true:false);
+                            free(timestamp);
+                        }
+                    }
+                    break;
+                case OMX_COMPONENT_GENERATE_FBD:
+
+                    if (p2 != VDEC_S_SUCCESS) {
+                        DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_FBD failure");
+                        pThis->omx_report_error ();
+                    } else if ( pThis->fill_buffer_done(&pThis->m_cmp,
+                                (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone ) {
+                        DEBUG_PRINT_ERROR("\n fill_buffer_done failure");
+                        pThis->omx_report_error ();
+                    }
+
+                    break;
+
+                case OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH:
+                    DEBUG_PRINT_HIGH("Driver flush i/p Port complete");
+
+                    if (!pThis->input_flush_progress) {
+                        DEBUG_PRINT_ERROR("\n WARNING: Unexpected flush from driver");
+                    } else {
+                        pThis->execute_input_flush();
+
+                        if (pThis->m_cb.EventHandler) {
+                            if (p2 != VDEC_S_SUCCESS) {
+                                DEBUG_PRINT_ERROR("\nOMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH failure");
+                                pThis->omx_report_error ();
+                            } else {
+                                /*Check if we need generate event for Flush done*/
+                                if (BITMASK_PRESENT(&pThis->m_flags,
+                                            OMX_COMPONENT_INPUT_FLUSH_PENDING)) {
+                                    BITMASK_CLEAR (&pThis->m_flags,OMX_COMPONENT_INPUT_FLUSH_PENDING);
+                                    DEBUG_PRINT_LOW("Input Flush completed - Notify Client");
+                                    pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                            OMX_EventCmdComplete,OMX_CommandFlush,
+                                            OMX_CORE_INPUT_PORT_INDEX,NULL );
+                                }
+
+                                if (BITMASK_PRESENT(&pThis->m_flags,
+                                            OMX_COMPONENT_IDLE_PENDING)) {
+                                    if (!pThis->output_flush_progress) {
+                                        DEBUG_PRINT_LOW("Output flush done hence issue stop");
+
+                                        if (ioctl (pThis->drv_ctx.video_driver_fd,
+                                                    VDEC_IOCTL_CMD_STOP,NULL ) < 0) {
+                                            DEBUG_PRINT_ERROR("\n VDEC_IOCTL_CMD_STOP failed");
+                                            pThis->omx_report_error ();
+                                        }
+                                    }
+                                }
+                            }
+                        } else {
+                            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                        }
+                    }
+
+                    break;
+
+                case OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH:
+                    DEBUG_PRINT_HIGH("Driver flush o/p Port complete");
+
+                    if (!pThis->output_flush_progress) {
+                        DEBUG_PRINT_ERROR("\n WARNING: Unexpected flush from driver");
+                    } else {
+                        pThis->execute_output_flush();
+
+                        if (pThis->m_cb.EventHandler) {
+                            if (p2 != VDEC_S_SUCCESS) {
+                                DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH failed");
+                                pThis->omx_report_error ();
+                            } else {
+                                /*Check if we need generate event for Flush done*/
+                                if (BITMASK_PRESENT(&pThis->m_flags,
+                                            OMX_COMPONENT_OUTPUT_FLUSH_PENDING)) {
+                                    DEBUG_PRINT_LOW("Notify Output Flush done");
+                                    BITMASK_CLEAR (&pThis->m_flags,OMX_COMPONENT_OUTPUT_FLUSH_PENDING);
+                                    pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                            OMX_EventCmdComplete,OMX_CommandFlush,
+                                            OMX_CORE_OUTPUT_PORT_INDEX,NULL );
+                                }
+
+                                if (BITMASK_PRESENT(&pThis->m_flags,
+                                            OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING)) {
+                                    DEBUG_PRINT_LOW("Internal flush complete");
+                                    BITMASK_CLEAR (&pThis->m_flags,
+                                            OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING);
+
+                                    if (BITMASK_PRESENT(&pThis->m_flags,
+                                                OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED)) {
+                                        pThis->post_event(OMX_CommandPortDisable,
+                                                OMX_CORE_OUTPUT_PORT_INDEX,
+                                                OMX_COMPONENT_GENERATE_EVENT);
+                                        BITMASK_CLEAR (&pThis->m_flags,
+                                                OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED);
+
+                                    }
+                                }
+
+                                if (BITMASK_PRESENT(&pThis->m_flags ,OMX_COMPONENT_IDLE_PENDING)) {
+                                    if (!pThis->input_flush_progress) {
+                                        DEBUG_PRINT_LOW("Input flush done hence issue stop");
+
+                                        if (ioctl (pThis->drv_ctx.video_driver_fd,
+                                                    VDEC_IOCTL_CMD_STOP,NULL ) < 0) {
+                                            DEBUG_PRINT_ERROR("\n VDEC_IOCTL_CMD_STOP failed");
+                                            pThis->omx_report_error ();
+                                        }
+                                    }
+                                }
+                            }
+                        } else {
+                            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                        }
+                    }
+
+                    break;
+
+                case OMX_COMPONENT_GENERATE_START_DONE:
+                    DEBUG_PRINT_HIGH("Rxd OMX_COMPONENT_GENERATE_START_DONE");
+
+                    if (pThis->m_cb.EventHandler) {
+                        if (p2 != VDEC_S_SUCCESS) {
+                            DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_START_DONE Failure");
+                            pThis->omx_report_error ();
+                        } else {
+                            DEBUG_PRINT_LOW("OMX_COMPONENT_GENERATE_START_DONE Success");
+
+                            if (BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_EXECUTE_PENDING)) {
+                                DEBUG_PRINT_LOW("Move to executing");
+                                // Send the callback now
+                                BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_EXECUTE_PENDING);
+                                pThis->m_state = OMX_StateExecuting;
+                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                        OMX_EventCmdComplete,OMX_CommandStateSet,
+                                        OMX_StateExecuting, NULL);
+                            } else if (BITMASK_PRESENT(&pThis->m_flags,
+                                        OMX_COMPONENT_PAUSE_PENDING)) {
+                                if (ioctl (pThis->drv_ctx.video_driver_fd,
+                                            VDEC_IOCTL_CMD_PAUSE,NULL ) < 0) {
+                                    DEBUG_PRINT_ERROR("\n VDEC_IOCTL_CMD_PAUSE failed");
+                                    pThis->omx_report_error ();
+                                }
+                            }
+                        }
+                    } else {
+                        DEBUG_PRINT_ERROR("\n Event Handler callback is NULL");
+                    }
+
+                    break;
+
+                case OMX_COMPONENT_GENERATE_PAUSE_DONE:
+                    DEBUG_PRINT_HIGH("Rxd OMX_COMPONENT_GENERATE_PAUSE_DONE");
+
+                    if (pThis->m_cb.EventHandler) {
+                        if (p2 != VDEC_S_SUCCESS) {
+                            DEBUG_PRINT_ERROR("OMX_COMPONENT_GENERATE_PAUSE_DONE ret failed");
+                            pThis->omx_report_error ();
+                        } else {
+                            pThis->complete_pending_buffer_done_cbs();
+
+                            if (BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_PAUSE_PENDING)) {
+                                DEBUG_PRINT_LOW("OMX_COMPONENT_GENERATE_PAUSE_DONE nofity");
+                                //Send the callback now
+                                BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_PAUSE_PENDING);
+                                pThis->m_state = OMX_StatePause;
+                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                        OMX_EventCmdComplete,OMX_CommandStateSet,
+                                        OMX_StatePause, NULL);
+                            }
+                        }
+                    } else {
+                        DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                    }
+
+                    break;
+
+                case OMX_COMPONENT_GENERATE_RESUME_DONE:
+                    DEBUG_PRINT_HIGH("Rxd OMX_COMPONENT_GENERATE_RESUME_DONE");
+
+                    if (pThis->m_cb.EventHandler) {
+                        if (p2 != VDEC_S_SUCCESS) {
+                            DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_RESUME_DONE failed");
+                            pThis->omx_report_error ();
+                        } else {
+                            if (BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_EXECUTE_PENDING)) {
+                                DEBUG_PRINT_LOW("Moving the decoder to execute state");
+                                // Send the callback now
+                                BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_EXECUTE_PENDING);
+                                pThis->m_state = OMX_StateExecuting;
+                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                        OMX_EventCmdComplete,OMX_CommandStateSet,
+                                        OMX_StateExecuting,NULL);
+                            }
+                        }
+                    } else {
+                        DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                    }
+
+                    break;
+
+                case OMX_COMPONENT_GENERATE_STOP_DONE:
+                    DEBUG_PRINT_HIGH("Rxd OMX_COMPONENT_GENERATE_STOP_DONE");
+
+                    if (pThis->m_cb.EventHandler) {
+                        if (p2 != VDEC_S_SUCCESS) {
+                            DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_STOP_DONE ret failed");
+                            pThis->omx_report_error ();
+                        } else {
+                            pThis->complete_pending_buffer_done_cbs();
+
+                            if (BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_IDLE_PENDING)) {
+                                DEBUG_PRINT_LOW("OMX_COMPONENT_GENERATE_STOP_DONE Success");
+                                // Send the callback now
+                                BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_IDLE_PENDING);
+                                pThis->m_state = OMX_StateIdle;
+                                DEBUG_PRINT_LOW("Move to Idle State");
+                                pThis->m_cb.EventHandler(&pThis->m_cmp,pThis->m_app_data,
+                                        OMX_EventCmdComplete,OMX_CommandStateSet,
+                                        OMX_StateIdle,NULL);
+                            }
+                        }
+                    } else {
+                        DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                    }
+
+                    break;
+
+                case OMX_COMPONENT_GENERATE_PORT_RECONFIG:
+                    DEBUG_PRINT_HIGH("Rxd OMX_COMPONENT_GENERATE_PORT_RECONFIG");
+
+                    if (pThis->start_port_reconfig() != OMX_ErrorNone)
+                        pThis->omx_report_error();
+                    else {
+                        if (pThis->in_reconfig) {
+                            if (pThis->m_cb.EventHandler) {
+                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                        OMX_EventPortSettingsChanged, OMX_CORE_OUTPUT_PORT_INDEX, 0, NULL );
+                            } else {
+                                DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                            }
+                        }
+
+                        if (pThis->drv_ctx.interlace != VDEC_InterlaceFrameProgressive) {
+                            OMX_INTERLACETYPE format = (OMX_INTERLACETYPE)-1;
+                            OMX_EVENTTYPE event = (OMX_EVENTTYPE)OMX_EventIndexsettingChanged;
+
+                            if (pThis->drv_ctx.interlace == VDEC_InterlaceInterleaveFrameTopFieldFirst)
+                                format = OMX_InterlaceInterleaveFrameTopFieldFirst;
+                            else if (pThis->drv_ctx.interlace == VDEC_InterlaceInterleaveFrameBottomFieldFirst)
+                                format = OMX_InterlaceInterleaveFrameBottomFieldFirst;
+                            else //unsupported interlace format; raise a error
+                                event = OMX_EventError;
+
+                            if (pThis->m_cb.EventHandler) {
+                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                        event, format, 0, NULL );
+                            } else {
+                                DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                            }
+                        }
+                    }
+
+                    break;
+
+                case OMX_COMPONENT_GENERATE_EOS_DONE:
+                    DEBUG_PRINT_HIGH("Rxd OMX_COMPONENT_GENERATE_EOS_DONE");
+
+                    if (pThis->m_cb.EventHandler) {
+                        pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data, OMX_EventBufferFlag,
+                                OMX_CORE_OUTPUT_PORT_INDEX, OMX_BUFFERFLAG_EOS, NULL );
+                    } else {
+                        DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                    }
+
+                    pThis->prev_ts = LLONG_MAX;
+                    pThis->rst_prev_ts = true;
+                    break;
+
+                case OMX_COMPONENT_GENERATE_HARDWARE_ERROR:
+                    DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_HARDWARE_ERROR");
+                    pThis->omx_report_error ();
+                    break;
+                case OMX_COMPONENT_GENERATE_INFO_PORT_RECONFIG:
+                    {
+                        DEBUG_PRINT_HIGH("Rxd OMX_COMPONENT_GENERATE_INFO_PORT_RECONFIG");
+
+                        if (pThis->m_cb.EventHandler) {
+                            pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                    (OMX_EVENTTYPE)OMX_EventIndexsettingChanged, OMX_CORE_OUTPUT_PORT_INDEX, 0, NULL );
+                        } else {
+                            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                        }
+
+                        //update power HAL with new width, height and bitrate
+                        pThis->power_module_deregister();
+                        pThis->power_module_register();
+                    }
+                default:
+                    break;
             }
-            else
-            {
-              DEBUG_PRINT_LOW("OMX_COMPONENT_GENERATE_START_DONE Success");
-              if(BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_EXECUTE_PENDING))
-              {
-                DEBUG_PRINT_LOW("Move to executing");
-                // Send the callback now
-                BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_EXECUTE_PENDING);
-                pThis->m_state = OMX_StateExecuting;
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                       OMX_EventCmdComplete,OMX_CommandStateSet,
-                                       OMX_StateExecuting, NULL);
-              }
-              else if (BITMASK_PRESENT(&pThis->m_flags,
-                                       OMX_COMPONENT_PAUSE_PENDING))
-              {
-                if (ioctl (pThis->drv_ctx.video_driver_fd,
-                           VDEC_IOCTL_CMD_PAUSE,NULL ) < 0)
-                {
-                  DEBUG_PRINT_ERROR("\n VDEC_IOCTL_CMD_PAUSE failed");
-                  pThis->omx_report_error ();
-                }
-              }
-            }
-          }
-          else
-          {
-            DEBUG_PRINT_ERROR("\n Event Handler callback is NULL");
-          }
-          break;
-
-        case OMX_COMPONENT_GENERATE_PAUSE_DONE:
-          DEBUG_PRINT_HIGH("Rxd OMX_COMPONENT_GENERATE_PAUSE_DONE");
-          if (pThis->m_cb.EventHandler)
-          {
-            if (p2 != VDEC_S_SUCCESS)
-            {
-              DEBUG_PRINT_ERROR("OMX_COMPONENT_GENERATE_PAUSE_DONE ret failed");
-              pThis->omx_report_error ();
-            }
-            else
-            {
-              pThis->complete_pending_buffer_done_cbs();
-              if(BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_PAUSE_PENDING))
-              {
-                DEBUG_PRINT_LOW("OMX_COMPONENT_GENERATE_PAUSE_DONE nofity");
-                //Send the callback now
-                BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_PAUSE_PENDING);
-                pThis->m_state = OMX_StatePause;
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                       OMX_EventCmdComplete,OMX_CommandStateSet,
-                                       OMX_StatePause, NULL);
-              }
-            }
-          }
-          else
-          {
-            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-          }
-
-          break;
-
-        case OMX_COMPONENT_GENERATE_RESUME_DONE:
-          DEBUG_PRINT_HIGH("Rxd OMX_COMPONENT_GENERATE_RESUME_DONE");
-          if (pThis->m_cb.EventHandler)
-          {
-            if (p2 != VDEC_S_SUCCESS)
-            {
-              DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_RESUME_DONE failed");
-              pThis->omx_report_error ();
-            }
-            else
-            {
-              if(BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_EXECUTE_PENDING))
-              {
-                DEBUG_PRINT_LOW("Moving the decoder to execute state");
-                // Send the callback now
-                BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_EXECUTE_PENDING);
-                pThis->m_state = OMX_StateExecuting;
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                       OMX_EventCmdComplete,OMX_CommandStateSet,
-                                       OMX_StateExecuting,NULL);
-              }
-            }
-          }
-          else
-          {
-            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-          }
-
-          break;
-
-        case OMX_COMPONENT_GENERATE_STOP_DONE:
-          DEBUG_PRINT_HIGH("Rxd OMX_COMPONENT_GENERATE_STOP_DONE");
-          if (pThis->m_cb.EventHandler)
-          {
-            if (p2 != VDEC_S_SUCCESS)
-            {
-              DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_STOP_DONE ret failed");
-              pThis->omx_report_error ();
-            }
-            else
-            {
-              pThis->complete_pending_buffer_done_cbs();
-              if(BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_IDLE_PENDING))
-              {
-                DEBUG_PRINT_LOW("OMX_COMPONENT_GENERATE_STOP_DONE Success");
-                // Send the callback now
-                BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_IDLE_PENDING);
-                pThis->m_state = OMX_StateIdle;
-                DEBUG_PRINT_LOW("Move to Idle State");
-                pThis->m_cb.EventHandler(&pThis->m_cmp,pThis->m_app_data,
-                                         OMX_EventCmdComplete,OMX_CommandStateSet,
-                                         OMX_StateIdle,NULL);
-              }
-            }
-          }
-          else
-          {
-            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-          }
-
-          break;
-
-        case OMX_COMPONENT_GENERATE_PORT_RECONFIG:
-          DEBUG_PRINT_HIGH("Rxd OMX_COMPONENT_GENERATE_PORT_RECONFIG");
-          if (pThis->start_port_reconfig() != OMX_ErrorNone)
-              pThis->omx_report_error();
-          else
-          {
-            if (pThis->in_reconfig)
-            {
-              if (pThis->m_cb.EventHandler) {
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                    OMX_EventPortSettingsChanged, OMX_CORE_OUTPUT_PORT_INDEX, 0, NULL );
-              } else {
-                DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-              }
-            }
-            if (pThis->drv_ctx.interlace != VDEC_InterlaceFrameProgressive)
-            {
-              OMX_INTERLACETYPE format = (OMX_INTERLACETYPE)-1;
-              OMX_EVENTTYPE event = (OMX_EVENTTYPE)OMX_EventIndexsettingChanged;
-              if (pThis->drv_ctx.interlace == VDEC_InterlaceInterleaveFrameTopFieldFirst)
-                  format = OMX_InterlaceInterleaveFrameTopFieldFirst;
-              else if (pThis->drv_ctx.interlace == VDEC_InterlaceInterleaveFrameBottomFieldFirst)
-                  format = OMX_InterlaceInterleaveFrameBottomFieldFirst;
-              else //unsupported interlace format; raise a error
-                  event = OMX_EventError;
-              if (pThis->m_cb.EventHandler) {
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                    event, format, 0, NULL );
-              } else {
-                DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-              }
-            }
-          }
-        break;
-
-        case OMX_COMPONENT_GENERATE_EOS_DONE:
-          DEBUG_PRINT_HIGH("Rxd OMX_COMPONENT_GENERATE_EOS_DONE");
-          if (pThis->m_cb.EventHandler) {
-            pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data, OMX_EventBufferFlag,
-                            OMX_CORE_OUTPUT_PORT_INDEX, OMX_BUFFERFLAG_EOS, NULL );
-          } else {
-            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-          }
-          pThis->prev_ts = LLONG_MAX;
-          pThis->rst_prev_ts = true;
-          break;
-
-        case OMX_COMPONENT_GENERATE_HARDWARE_ERROR:
-          DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_HARDWARE_ERROR");
-          pThis->omx_report_error ();
-          break;
-        case OMX_COMPONENT_GENERATE_INFO_PORT_RECONFIG:
-        {
-          DEBUG_PRINT_HIGH("Rxd OMX_COMPONENT_GENERATE_INFO_PORT_RECONFIG");
-          if (pThis->m_cb.EventHandler) {
-            pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                (OMX_EVENTTYPE)OMX_EventIndexsettingChanged, OMX_CORE_OUTPUT_PORT_INDEX, 0, NULL );
-          } else {
-            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-          }
-
-          //update power HAL with new width, height and bitrate
-          pThis->power_module_deregister();
-          pThis->power_module_register();
         }
-        default:
-          break;
-        }
-      }
-    pthread_mutex_lock(&pThis->m_lock);
-    qsize = pThis->m_cmd_q.m_size;
-    if (pThis->m_state != OMX_StatePause)
-        qsize += (pThis->m_ftb_q.m_size + pThis->m_etb_q.m_size);
-    pthread_mutex_unlock(&pThis->m_lock);
-  }
-  while(qsize>0);
+
+        pthread_mutex_lock(&pThis->m_lock);
+        qsize = pThis->m_cmd_q.m_size;
+
+        if (pThis->m_state != OMX_StatePause)
+            qsize += (pThis->m_ftb_q.m_size + pThis->m_etb_q.m_size);
+
+        pthread_mutex_unlock(&pThis->m_lock);
+    } while (qsize>0);
 
 }
 
 
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::ComponentInit
+   FUNCTION
+   omx_vdec::ComponentInit
 
-DESCRIPTION
-  Initialize the component.
+   DESCRIPTION
+   Initialize the component.
 
-PARAMETERS
-  ctxt -- Context information related to the self.
-  id   -- Event identifier. This could be any of the following:
-          1. Command completion event
-          2. Buffer done callback event
-          3. Frame done callback event
+   PARAMETERS
+   ctxt -- Context information related to the self.
+   id   -- Event identifier. This could be any of the following:
+   1. Command completion event
+   2. Buffer done callback event
+   3. Frame done callback event
 
-RETURN VALUE
-  None.
+   RETURN VALUE
+   None.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE omx_vdec::component_init(OMX_STRING role)
 {
 
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
-  unsigned int   alignment = 0,buffer_size = 0;
-  int is_secure = 0;
-  int i = 0;
-  int fds[2];
-  int r;
-  OMX_STRING device_name = "/dev/msm_vidc_dec";
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
+    unsigned int   alignment = 0,buffer_size = 0;
+    int is_secure = 0;
+    int i = 0;
+    int fds[2];
+    int r;
+    OMX_STRING device_name = "/dev/msm_vidc_dec";
 
 #ifndef JB_MR1
-  sp<IServiceManager> sm;
-  sp<hwcService::IHWComposer> hwcBinder = NULL;
+    sp<IServiceManager> sm;
+    sp<hwcService::IHWComposer> hwcBinder = NULL;
 #endif
-  if(!strncmp(role, "OMX.qcom.video.decoder.avc.secure",OMX_MAX_STRINGNAME_SIZE)){
-      secure_mode = true;
-      arbitrary_bytes = false;
-      role = "OMX.qcom.video.decoder.avc";
-      device_name =  "/dev/msm_vidc_dec_sec";
-      is_secure = 1;
-  } else if (!strncmp(role, "OMX.qcom.video.decoder.mpeg2.secure",OMX_MAX_STRINGNAME_SIZE)){
-      secure_mode = true;
-      arbitrary_bytes = false;
-      role = "OMX.qcom.video.decoder.mpeg2";
-      device_name =  "/dev/msm_vidc_dec_sec";
-      is_secure = 1;
-  }
-#ifndef JB_MR1
-  if (secure_mode) {
-    sm = defaultServiceManager();
-    hwcBinder =
-      interface_cast<hwcService::IHWComposer>(sm->getService(String16("display.hwcservice")));
-    if (hwcBinder != NULL) {
-        hwcBinder->setOpenSecureStart();
-    } else {
-        DEBUG_PRINT_HIGH("Failed to get ref to hwcBinder, "
-                         "cannot call secure display start");
+
+    if (!strncmp(role, "OMX.qcom.video.decoder.avc.secure",OMX_MAX_STRINGNAME_SIZE)) {
+        secure_mode = true;
+        arbitrary_bytes = false;
+        role = "OMX.qcom.video.decoder.avc";
+        device_name =  "/dev/msm_vidc_dec_sec";
+        is_secure = 1;
+    } else if (!strncmp(role, "OMX.qcom.video.decoder.mpeg2.secure",OMX_MAX_STRINGNAME_SIZE)) {
+        secure_mode = true;
+        arbitrary_bytes = false;
+        role = "OMX.qcom.video.decoder.mpeg2";
+        device_name =  "/dev/msm_vidc_dec_sec";
+        is_secure = 1;
     }
-  }
+
+#ifndef JB_MR1
+
+    if (secure_mode) {
+        sm = defaultServiceManager();
+        hwcBinder =
+            interface_cast<hwcService::IHWComposer>(sm->getService(String16("display.hwcservice")));
+
+        if (hwcBinder != NULL) {
+            hwcBinder->setOpenSecureStart();
+        } else {
+            DEBUG_PRINT_HIGH("Failed to get ref to hwcBinder, "
+                    "cannot call secure display start");
+        }
+    }
+
 #endif
-  DEBUG_PRINT_HIGH("omx_vdec::component_init(): Start of New Playback : role  = %s : DEVICE = %s",
-        role, device_name);
+    DEBUG_PRINT_HIGH("omx_vdec::component_init(): Start of New Playback : role  = %s : DEVICE = %s",
+            role, device_name);
 
-  drv_ctx.video_driver_fd = open(device_name, O_RDWR | O_NONBLOCK);
-
-  DEBUG_PRINT_HIGH("omx_vdec::component_init(): Open returned fd %d, errno %d",
-                   drv_ctx.video_driver_fd, errno);
-
-  if(drv_ctx.video_driver_fd == 0){
     drv_ctx.video_driver_fd = open(device_name, O_RDWR | O_NONBLOCK);
-  }
 
-  if(is_secure && drv_ctx.video_driver_fd < 0) {
-      do {
-          usleep(100 * 1000);
-          drv_ctx.video_driver_fd = open(device_name, O_RDWR | O_NONBLOCK);
-          if (drv_ctx.video_driver_fd > 0) {
-              break;
-          }
-      } while(i++ < 50);
-  }
-  if(drv_ctx.video_driver_fd < 0)
-  {
-      DEBUG_PRINT_ERROR("\n Omx_vdec::Comp Init Returning failure, errno %d", errno);
-      return OMX_ErrorInsufficientResources;
-  }
-  drv_ctx.frame_rate.fps_numerator = DEFAULT_FPS;
-  drv_ctx.frame_rate.fps_denominator = 1;
+    DEBUG_PRINT_HIGH("omx_vdec::component_init(): Open returned fd %d, errno %d",
+            drv_ctx.video_driver_fd, errno);
+
+    if (drv_ctx.video_driver_fd == 0) {
+        drv_ctx.video_driver_fd = open(device_name, O_RDWR | O_NONBLOCK);
+    }
+
+    if (is_secure && drv_ctx.video_driver_fd < 0) {
+        do {
+            usleep(100 * 1000);
+            drv_ctx.video_driver_fd = open(device_name, O_RDWR | O_NONBLOCK);
+
+            if (drv_ctx.video_driver_fd > 0) {
+                break;
+            }
+        } while (i++ < 50);
+    }
+
+    if (drv_ctx.video_driver_fd < 0) {
+        DEBUG_PRINT_ERROR("\n Omx_vdec::Comp Init Returning failure, errno %d", errno);
+        return OMX_ErrorInsufficientResources;
+    }
+
+    drv_ctx.frame_rate.fps_numerator = DEFAULT_FPS;
+    drv_ctx.frame_rate.fps_denominator = 1;
 
 
 #ifdef INPUT_BUFFER_LOG
     strcpy(inputfilename, INPUT_BUFFER_FILE_NAME);
 #endif
 #ifdef OUTPUT_BUFFER_LOG
-  outputBufferFile1 = fopen (outputfilename, "ab");
+    outputBufferFile1 = fopen (outputfilename, "ab");
 #endif
 #ifdef OUTPUT_EXTRADATA_LOG
-  outputExtradataFile = fopen (ouputextradatafilename, "ab");
+    outputExtradataFile = fopen (ouputextradatafilename, "ab");
 #endif
 
-  // Copy the role information which provides the decoder kind
-  strlcpy(drv_ctx.kind,role,128);
-  if(!strncmp(drv_ctx.kind,"OMX.qcom.video.decoder.mpeg4",\
-      OMX_MAX_STRINGNAME_SIZE))
-  {
-     strlcpy((char *)m_cRole, "video_decoder.mpeg4",\
-     OMX_MAX_STRINGNAME_SIZE);
-     drv_ctx.timestamp_adjust = true;
-     drv_ctx.decoder_format = VDEC_CODECTYPE_MPEG4;
-     eCompressionFormat = OMX_VIDEO_CodingMPEG4;
-     /*Initialize Start Code for MPEG4*/
-     codec_type_parse = CODEC_TYPE_MPEG4;
-     m_frame_parser.init_start_codes (codec_type_parse);
+    // Copy the role information which provides the decoder kind
+    strlcpy(drv_ctx.kind,role,128);
+
+    if (!strncmp(drv_ctx.kind,"OMX.qcom.video.decoder.mpeg4",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.mpeg4",\
+                OMX_MAX_STRINGNAME_SIZE);
+        drv_ctx.timestamp_adjust = true;
+        drv_ctx.decoder_format = VDEC_CODECTYPE_MPEG4;
+        eCompressionFormat = OMX_VIDEO_CodingMPEG4;
+        /*Initialize Start Code for MPEG4*/
+        codec_type_parse = CODEC_TYPE_MPEG4;
+        m_frame_parser.init_start_codes (codec_type_parse);
 #ifdef INPUT_BUFFER_LOG
-    strcat(inputfilename, "m4v");
+        strcat(inputfilename, "m4v");
 #endif
-  }
-  else if(!strncmp(drv_ctx.kind,"OMX.qcom.video.decoder.mpeg2",\
-        OMX_MAX_STRINGNAME_SIZE))
-  {
-    strlcpy((char *)m_cRole, "video_decoder.mpeg2",\
-        OMX_MAX_STRINGNAME_SIZE);
-    drv_ctx.decoder_format = VDEC_CODECTYPE_MPEG2;
-    eCompressionFormat = OMX_VIDEO_CodingMPEG2;
-    /*Initialize Start Code for MPEG2*/
-    codec_type_parse = CODEC_TYPE_MPEG2;
-    m_frame_parser.init_start_codes (codec_type_parse);
+    } else if (!strncmp(drv_ctx.kind,"OMX.qcom.video.decoder.mpeg2",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.mpeg2",\
+                OMX_MAX_STRINGNAME_SIZE);
+        drv_ctx.decoder_format = VDEC_CODECTYPE_MPEG2;
+        eCompressionFormat = OMX_VIDEO_CodingMPEG2;
+        /*Initialize Start Code for MPEG2*/
+        codec_type_parse = CODEC_TYPE_MPEG2;
+        m_frame_parser.init_start_codes (codec_type_parse);
 #ifdef INPUT_BUFFER_LOG
-    strcat(inputfilename, "mpg");
+        strcat(inputfilename, "mpg");
 #endif
-  }
-  else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",\
-         OMX_MAX_STRINGNAME_SIZE))
-  {
-     strlcpy((char *)m_cRole, "video_decoder.h263",OMX_MAX_STRINGNAME_SIZE);
-     DEBUG_PRINT_LOW("H263 Decoder selected");
-     drv_ctx.decoder_format = VDEC_CODECTYPE_H263;
-     eCompressionFormat = OMX_VIDEO_CodingH263;
-     codec_type_parse = CODEC_TYPE_H263;
-     m_frame_parser.init_start_codes (codec_type_parse);
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.h263",OMX_MAX_STRINGNAME_SIZE);
+        DEBUG_PRINT_LOW("H263 Decoder selected");
+        drv_ctx.decoder_format = VDEC_CODECTYPE_H263;
+        eCompressionFormat = OMX_VIDEO_CodingH263;
+        codec_type_parse = CODEC_TYPE_H263;
+        m_frame_parser.init_start_codes (codec_type_parse);
 #ifdef INPUT_BUFFER_LOG
-    strcat(inputfilename, "263");
+        strcat(inputfilename, "263");
 #endif
-  }
+    }
+
 #ifdef MAX_RES_1080P
-  else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx311",\
-         OMX_MAX_STRINGNAME_SIZE))
-  {
-     strlcpy((char *)m_cRole, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
-     DEBUG_PRINT_LOW ("DIVX 311 Decoder selected");
-     drv_ctx.decoder_format = VDEC_CODECTYPE_DIVX_3;
-     eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
-     codec_type_parse = CODEC_TYPE_DIVX;
-     m_frame_parser.init_start_codes (codec_type_parse);
+    else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx311",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
+        DEBUG_PRINT_LOW ("DIVX 311 Decoder selected");
+        drv_ctx.decoder_format = VDEC_CODECTYPE_DIVX_3;
+        eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
+        codec_type_parse = CODEC_TYPE_DIVX;
+        m_frame_parser.init_start_codes (codec_type_parse);
 #ifdef _ANDROID_
-     OMX_ERRORTYPE err = createDivxDrmContext();
-     if( err != OMX_ErrorNone ) {
-         DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
-         eRet = err;
-         goto cleanup;
-     }
+        OMX_ERRORTYPE err = createDivxDrmContext();
+
+        if ( err != OMX_ErrorNone ) {
+            DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
+            eRet = err;
+            goto cleanup;
+        }
+
 #endif //_ANDROID_
-  }
-  else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx4",\
-         OMX_MAX_STRINGNAME_SIZE))
-  {
-     strlcpy((char *)m_cRole, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
-     DEBUG_PRINT_ERROR ("DIVX 4 Decoder selected");
-     drv_ctx.decoder_format = VDEC_CODECTYPE_DIVX_4;
-     eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
-     codec_type_parse = CODEC_TYPE_DIVX;
-     m_frame_parser.init_start_codes (codec_type_parse);
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx4",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
+        DEBUG_PRINT_ERROR ("DIVX 4 Decoder selected");
+        drv_ctx.decoder_format = VDEC_CODECTYPE_DIVX_4;
+        eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
+        codec_type_parse = CODEC_TYPE_DIVX;
+        m_frame_parser.init_start_codes (codec_type_parse);
 #ifdef _ANDROID_
-     OMX_ERRORTYPE err = createDivxDrmContext();
-     if( err != OMX_ErrorNone ) {
-         DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
-         eRet = err;
-         goto cleanup;
-     }
+        OMX_ERRORTYPE err = createDivxDrmContext();
+
+        if ( err != OMX_ErrorNone ) {
+            DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
+            eRet = err;
+            goto cleanup;
+        }
+
 #endif //_ANDROID_
-  }
-  else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",\
-         OMX_MAX_STRINGNAME_SIZE))
-  {
-     strlcpy((char *)m_cRole, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
-     DEBUG_PRINT_ERROR ("DIVX 5/6 Decoder selected");
-     drv_ctx.decoder_format = VDEC_CODECTYPE_DIVX_6;
-     eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
-     codec_type_parse = CODEC_TYPE_DIVX;
-     m_frame_parser.init_start_codes (codec_type_parse);
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
+        DEBUG_PRINT_ERROR ("DIVX 5/6 Decoder selected");
+        drv_ctx.decoder_format = VDEC_CODECTYPE_DIVX_6;
+        eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
+        codec_type_parse = CODEC_TYPE_DIVX;
+        m_frame_parser.init_start_codes (codec_type_parse);
 #ifdef _ANDROID_
-     OMX_ERRORTYPE err = createDivxDrmContext();
-     if( err != OMX_ErrorNone ) {
-         DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
-         eRet = err;
-         goto cleanup;
-     }
+        OMX_ERRORTYPE err = createDivxDrmContext();
+
+        if ( err != OMX_ErrorNone ) {
+            DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
+            eRet = err;
+            goto cleanup;
+        }
+
 #endif //_ANDROID_
-  }
+    }
+
 #else
-  else if((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx4",\
-         OMX_MAX_STRINGNAME_SIZE)) || (!strncmp(drv_ctx.kind, \
-         "OMX.qcom.video.decoder.divx", OMX_MAX_STRINGNAME_SIZE)))
-  {
-     strlcpy((char *)m_cRole, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
-     DEBUG_PRINT_ERROR ("DIVX Decoder selected");
-     drv_ctx.decoder_format = VDEC_CODECTYPE_DIVX_5;
-     eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
-     codec_type_parse = CODEC_TYPE_DIVX;
-     m_frame_parser.init_start_codes (codec_type_parse);
+    else if ((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx4",\
+                    OMX_MAX_STRINGNAME_SIZE)) || (!strncmp(drv_ctx.kind, \
+                        "OMX.qcom.video.decoder.divx", OMX_MAX_STRINGNAME_SIZE))) {
+        strlcpy((char *)m_cRole, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
+        DEBUG_PRINT_ERROR ("DIVX Decoder selected");
+        drv_ctx.decoder_format = VDEC_CODECTYPE_DIVX_5;
+        eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
+        codec_type_parse = CODEC_TYPE_DIVX;
+        m_frame_parser.init_start_codes (codec_type_parse);
 
 #ifdef _ANDROID_
-     OMX_ERRORTYPE err = createDivxDrmContext();
-     if( err != OMX_ErrorNone ) {
-         DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
-         eRet = err;
-         goto cleanup;
-     }
+        OMX_ERRORTYPE err = createDivxDrmContext();
+
+        if ( err != OMX_ErrorNone ) {
+            DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
+            eRet = err;
+            goto cleanup;
+        }
+
 #endif //_ANDROID_
-  }
+    }
+
 #endif
-  else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",\
-         OMX_MAX_STRINGNAME_SIZE))
-  {
-    strlcpy((char *)m_cRole, "video_decoder.avc",OMX_MAX_STRINGNAME_SIZE);
-    drv_ctx.decoder_format = VDEC_CODECTYPE_H264;
-    eCompressionFormat = OMX_VIDEO_CodingAVC;
-    codec_type_parse = CODEC_TYPE_H264;
-    m_frame_parser.init_start_codes (codec_type_parse);
-    m_frame_parser.init_nal_length(nal_length);
+    else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.avc",OMX_MAX_STRINGNAME_SIZE);
+        drv_ctx.decoder_format = VDEC_CODECTYPE_H264;
+        eCompressionFormat = OMX_VIDEO_CodingAVC;
+        codec_type_parse = CODEC_TYPE_H264;
+        m_frame_parser.init_start_codes (codec_type_parse);
+        m_frame_parser.init_nal_length(nal_length);
 #ifdef INPUT_BUFFER_LOG
-    strcat(inputfilename, "264");
+        strcat(inputfilename, "264");
 #endif
-  }
-  else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1",\
-         OMX_MAX_STRINGNAME_SIZE))
-  {
-    strlcpy((char *)m_cRole, "video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
-    drv_ctx.decoder_format = VDEC_CODECTYPE_VC1;
-    eCompressionFormat = OMX_VIDEO_CodingWMV;
-    codec_type_parse = CODEC_TYPE_VC1;
-    m_frame_parser.init_start_codes (codec_type_parse);
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
+        drv_ctx.decoder_format = VDEC_CODECTYPE_VC1;
+        eCompressionFormat = OMX_VIDEO_CodingWMV;
+        codec_type_parse = CODEC_TYPE_VC1;
+        m_frame_parser.init_start_codes (codec_type_parse);
 #ifdef INPUT_BUFFER_LOG
-    strcat(inputfilename, "vc1");
+        strcat(inputfilename, "vc1");
 #endif
-  }
-  else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.wmv",\
-         OMX_MAX_STRINGNAME_SIZE))
-  {
-    strlcpy((char *)m_cRole, "video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
-    drv_ctx.decoder_format = VDEC_CODECTYPE_VC1_RCV;
-    eCompressionFormat = OMX_VIDEO_CodingWMV;
-    codec_type_parse = CODEC_TYPE_VC1;
-    m_frame_parser.init_start_codes (codec_type_parse);
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.wmv",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
+        drv_ctx.decoder_format = VDEC_CODECTYPE_VC1_RCV;
+        eCompressionFormat = OMX_VIDEO_CodingWMV;
+        codec_type_parse = CODEC_TYPE_VC1;
+        m_frame_parser.init_start_codes (codec_type_parse);
 #ifdef INPUT_BUFFER_LOG
-    strcat(inputfilename, "vc1");
+        strcat(inputfilename, "vc1");
 #endif
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("\nERROR:Unknown Component\n");
-    eRet = OMX_ErrorInvalidComponentName;
-  }
+    } else {
+        DEBUG_PRINT_ERROR("\nERROR:Unknown Component\n");
+        eRet = OMX_ErrorInvalidComponentName;
+    }
+
 #ifdef INPUT_BUFFER_LOG
-  inputBufferFile1 = fopen (inputfilename, "ab");
+    inputBufferFile1 = fopen (inputfilename, "ab");
 #endif
-  if (eRet == OMX_ErrorNone)
-  {
+
+    if (eRet == OMX_ErrorNone) {
 #ifdef MAX_RES_720P
-    drv_ctx.output_format = VDEC_YUV_FORMAT_NV12;
+        drv_ctx.output_format = VDEC_YUV_FORMAT_NV12;
 
 #endif
 #ifdef MAX_RES_1080P
-    drv_ctx.output_format = VDEC_YUV_FORMAT_TILE_4x2;
-    OMX_COLOR_FORMATTYPE dest_color_format = (OMX_COLOR_FORMATTYPE)
-    QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka;
-    if (!client_buffers.set_color_format(dest_color_format)) {
-      DEBUG_PRINT_ERROR("\n Setting color format failed");
-      eRet = OMX_ErrorInsufficientResources;
-    }
+        drv_ctx.output_format = VDEC_YUV_FORMAT_TILE_4x2;
+        OMX_COLOR_FORMATTYPE dest_color_format = (OMX_COLOR_FORMATTYPE)
+            QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka;
+
+        if (!client_buffers.set_color_format(dest_color_format)) {
+            DEBUG_PRINT_ERROR("\n Setting color format failed");
+            eRet = OMX_ErrorInsufficientResources;
+        }
+
 #endif
-    /*Initialize Decoder with codec type and resolution*/
-    ioctl_msg.in = &drv_ctx.decoder_format;
-    ioctl_msg.out = NULL;
+        /*Initialize Decoder with codec type and resolution*/
+        ioctl_msg.in = &drv_ctx.decoder_format;
+        ioctl_msg.out = NULL;
 
-    if ( (eRet == OMX_ErrorNone) &&
-         ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_SET_CODEC,
-                (void*)&ioctl_msg) < 0)
+        if ( (eRet == OMX_ErrorNone) &&
+                ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_SET_CODEC,
+                    (void*)&ioctl_msg) < 0)
 
-    {
-      DEBUG_PRINT_ERROR("\n Set codec type failed");
-      eRet = OMX_ErrorInsufficientResources;
-    }
+        {
+            DEBUG_PRINT_ERROR("\n Set codec type failed");
+            eRet = OMX_ErrorInsufficientResources;
+        }
 
-    /*Set the output format*/
-    ioctl_msg.in = &drv_ctx.output_format;
-    ioctl_msg.out = NULL;
+        /*Set the output format*/
+        ioctl_msg.in = &drv_ctx.output_format;
+        ioctl_msg.out = NULL;
 
-    if ( (eRet == OMX_ErrorNone) &&
-         ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_SET_OUTPUT_FORMAT,
-           (void*)&ioctl_msg) < 0)
-    {
-      DEBUG_PRINT_ERROR("\n Set output format failed");
-      eRet = OMX_ErrorInsufficientResources;
-    }
+        if ( (eRet == OMX_ErrorNone) &&
+                ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_SET_OUTPUT_FORMAT,
+                    (void*)&ioctl_msg) < 0) {
+            DEBUG_PRINT_ERROR("\n Set output format failed");
+            eRet = OMX_ErrorInsufficientResources;
+        }
 
 #ifdef MAX_RES_720P
-    drv_ctx.video_resolution.frame_height =
-        drv_ctx.video_resolution.scan_lines = 720;
-    drv_ctx.video_resolution.frame_width =
-        drv_ctx.video_resolution.stride = 1280;
+        drv_ctx.video_resolution.frame_height =
+            drv_ctx.video_resolution.scan_lines = 720;
+        drv_ctx.video_resolution.frame_width =
+            drv_ctx.video_resolution.stride = 1280;
 #endif
 #ifdef MAX_RES_1080P
-    drv_ctx.video_resolution.frame_height =
-        drv_ctx.video_resolution.scan_lines = 1088;
-    drv_ctx.video_resolution.frame_width =
-        drv_ctx.video_resolution.stride = 1920;
+        drv_ctx.video_resolution.frame_height =
+            drv_ctx.video_resolution.scan_lines = 1088;
+        drv_ctx.video_resolution.frame_width =
+            drv_ctx.video_resolution.stride = 1920;
 #endif
 
-    ioctl_msg.in = &drv_ctx.video_resolution;
-    ioctl_msg.out = NULL;
+        ioctl_msg.in = &drv_ctx.video_resolution;
+        ioctl_msg.out = NULL;
 
-    if ( (eRet == OMX_ErrorNone) &&
-        ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_SET_PICRES,
-           (void*)&ioctl_msg) < 0)
-    {
-      DEBUG_PRINT_ERROR("\n Set Resolution failed");
-      eRet = OMX_ErrorInsufficientResources;
-    }
+        if ( (eRet == OMX_ErrorNone) &&
+                ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_SET_PICRES,
+                    (void*)&ioctl_msg) < 0) {
+            DEBUG_PRINT_ERROR("\n Set Resolution failed");
+            eRet = OMX_ErrorInsufficientResources;
+        }
 
-    /*Get the Buffer requirements for input and output ports*/
-    drv_ctx.ip_buf.buffer_type = VDEC_BUFFER_TYPE_INPUT;
-    drv_ctx.op_buf.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
-    drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
-    drv_ctx.extradata = 0;
-    drv_ctx.picture_order = VDEC_ORDER_DISPLAY;
-    drv_ctx.idr_only_decoding = 0;
+        /*Get the Buffer requirements for input and output ports*/
+        drv_ctx.ip_buf.buffer_type = VDEC_BUFFER_TYPE_INPUT;
+        drv_ctx.op_buf.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
+        drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
+        drv_ctx.extradata = 0;
+        drv_ctx.picture_order = VDEC_ORDER_DISPLAY;
+        drv_ctx.idr_only_decoding = 0;
 
-    if (eRet == OMX_ErrorNone)
-        eRet = get_buffer_req(&drv_ctx.ip_buf);
-    if (eRet == OMX_ErrorNone)
-        eRet = get_buffer_req(&drv_ctx.op_buf);
-    m_state = OMX_StateLoaded;
+        if (eRet == OMX_ErrorNone)
+            eRet = get_buffer_req(&drv_ctx.ip_buf);
+
+        if (eRet == OMX_ErrorNone)
+            eRet = get_buffer_req(&drv_ctx.op_buf);
+
+        m_state = OMX_StateLoaded;
 #ifdef DEFAULT_EXTRADATA
-    if (eRet == OMX_ErrorNone)
-      eRet = enable_extradata(DEFAULT_EXTRADATA);
+
+        if (eRet == OMX_ErrorNone)
+            eRet = enable_extradata(DEFAULT_EXTRADATA);
+
 #endif
-    if ( (codec_type_parse == CODEC_TYPE_VC1) ||
-        (codec_type_parse == CODEC_TYPE_H264)) //add CP check here
-    {
-      //Check if dmx can be disabled
-      struct vdec_ioctl_msg ioctl_msg = {NULL, NULL};
-      OMX_ERRORTYPE eRet = OMX_ErrorNone;
-      ioctl_msg.out = &drv_ctx.disable_dmx;
-      if (ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_GET_DISABLE_DMX_SUPPORT, &ioctl_msg))
-      {
-        DEBUG_PRINT_ERROR("Error VDEC_IOCTL_GET_DISABLE_DMX_SUPPORT");
-        eRet = OMX_ErrorHardware;
-      }
-      else
-      {
-        if (drv_ctx.disable_dmx && !secure_mode)
-        {
-          DEBUG_PRINT_HIGH("DMX disable is supported");
 
-          int rc = ioctl(drv_ctx.video_driver_fd,
-                      VDEC_IOCTL_SET_DISABLE_DMX);
-          if(rc < 0) {
-              DEBUG_PRINT_ERROR("Failed to disable dmx on driver.");
-              drv_ctx.disable_dmx = false;
-              eRet = OMX_ErrorHardware;
-          }
+        if ( (codec_type_parse == CODEC_TYPE_VC1) ||
+                (codec_type_parse == CODEC_TYPE_H264)) { //add CP check here
+            //Check if dmx can be disabled
+            struct vdec_ioctl_msg ioctl_msg = {NULL, NULL};
+            OMX_ERRORTYPE eRet = OMX_ErrorNone;
+            ioctl_msg.out = &drv_ctx.disable_dmx;
+
+            if (ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_GET_DISABLE_DMX_SUPPORT, &ioctl_msg)) {
+                DEBUG_PRINT_ERROR("Error VDEC_IOCTL_GET_DISABLE_DMX_SUPPORT");
+                eRet = OMX_ErrorHardware;
+            } else {
+                if (drv_ctx.disable_dmx && !secure_mode) {
+                    DEBUG_PRINT_HIGH("DMX disable is supported");
+
+                    int rc = ioctl(drv_ctx.video_driver_fd,
+                            VDEC_IOCTL_SET_DISABLE_DMX);
+
+                    if (rc < 0) {
+                        DEBUG_PRINT_ERROR("Failed to disable dmx on driver.");
+                        drv_ctx.disable_dmx = false;
+                        eRet = OMX_ErrorHardware;
+                    }
+                } else {
+                    drv_ctx.disable_dmx = false;
+                }
+            }
         }
-        else {
-          drv_ctx.disable_dmx = false;
+
+        if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264) {
+            if (m_frame_parser.mutils == NULL) {
+                m_frame_parser.mutils = new H264_Utils();
+
+                if (m_frame_parser.mutils == NULL) {
+                    DEBUG_PRINT_ERROR("\n parser utils Allocation failed ");
+                    eRet = OMX_ErrorInsufficientResources;
+                } else {
+                    h264_scratch.nAllocLen = drv_ctx.ip_buf.buffer_size - DEVICE_SCRATCH;
+                    h264_scratch.pBuffer = (OMX_U8 *)malloc (h264_scratch.nAllocLen);
+                    h264_scratch.nFilledLen = 0;
+                    h264_scratch.nOffset = 0;
+
+                    if (h264_scratch.pBuffer == NULL) {
+                        DEBUG_PRINT_ERROR("\n h264_scratch.pBuffer Allocation failed ");
+                        return OMX_ErrorInsufficientResources;
+                    }
+
+                    m_frame_parser.mutils->initialize_frame_checking_environment();
+                    m_frame_parser.mutils->allocate_rbsp_buffer (drv_ctx.ip_buf.buffer_size);
+                }
+            }
+
+            h264_parser = new h264_stream_parser();
+
+            if (!h264_parser) {
+                DEBUG_PRINT_ERROR("ERROR: H264 parser allocation failed!");
+                eRet = OMX_ErrorInsufficientResources;
+            }
         }
-      }
-    }
-    if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264)
-    {
-      if (m_frame_parser.mutils == NULL)
-      {
-        m_frame_parser.mutils = new H264_Utils();
 
-        if (m_frame_parser.mutils == NULL)
-        {
-           DEBUG_PRINT_ERROR("\n parser utils Allocation failed ");
-           eRet = OMX_ErrorInsufficientResources;
+        if (pipe(fds)) {
+            DEBUG_PRINT_ERROR("\n pipe creation failed.");
+            eRet = OMX_ErrorInsufficientResources;
+        } else {
+            int temp1[2];
+
+            if (fds[0] == 0 || fds[1] == 0) {
+                if (pipe (temp1)) {
+                    DEBUG_PRINT_ERROR("\n pipe creation failed..");
+                    return OMX_ErrorInsufficientResources;
+                }
+
+                //close (fds[0]);
+                //close (fds[1]);
+                fds[0] = temp1 [0];
+                fds[1] = temp1 [1];
+            }
+
+            m_pipe_in = fds[0];
+            m_pipe_out = fds[1];
+            r = pthread_create(&msg_thread_id,0,message_thread,this);
+
+            if (r < 0) {
+                DEBUG_PRINT_ERROR("\n component_init(): message_thread creation failed");
+                eRet = OMX_ErrorInsufficientResources;
+            } else {
+                msg_thread_created = true;
+                r = pthread_create(&async_thread_id,0,async_message_thread,this);
+
+                if (r < 0) {
+                    DEBUG_PRINT_ERROR("\n component_init(): async_message_thread creation failed");
+                    eRet = OMX_ErrorInsufficientResources;
+                } else {
+                    async_thread_created = true;
+                }
+            }
         }
-        else
-        {
-         h264_scratch.nAllocLen = drv_ctx.ip_buf.buffer_size - DEVICE_SCRATCH;
-         h264_scratch.pBuffer = (OMX_U8 *)malloc (h264_scratch.nAllocLen);
-         h264_scratch.nFilledLen = 0;
-         h264_scratch.nOffset = 0;
-
-         if (h264_scratch.pBuffer == NULL)
-         {
-           DEBUG_PRINT_ERROR("\n h264_scratch.pBuffer Allocation failed ");
-           return OMX_ErrorInsufficientResources;
-         }
-         m_frame_parser.mutils->initialize_frame_checking_environment();
-         m_frame_parser.mutils->allocate_rbsp_buffer (drv_ctx.ip_buf.buffer_size);
-       }
-      }
-
-      h264_parser = new h264_stream_parser();
-      if (!h264_parser)
-      {
-        DEBUG_PRINT_ERROR("ERROR: H264 parser allocation failed!");
-        eRet = OMX_ErrorInsufficientResources;
-      }
     }
 
-    if(pipe(fds))
-    {
-      DEBUG_PRINT_ERROR("\n pipe creation failed.");
-      eRet = OMX_ErrorInsufficientResources;
+    if (eRet != OMX_ErrorNone) {
+        DEBUG_PRINT_ERROR("\n Component Init Failed");
+        DEBUG_PRINT_HIGH("Calling VDEC_IOCTL_STOP_NEXT_MSG");
+        (void)ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_STOP_NEXT_MSG,
+                NULL);
+    } else {
+        DEBUG_PRINT_HIGH("omx_vdec::component_init() success");
     }
-    else
-    {
-      int temp1[2];
-      if(fds[0] == 0 || fds[1] == 0)
-      {
-        if (pipe (temp1))
-        {
-          DEBUG_PRINT_ERROR("\n pipe creation failed..");
-          return OMX_ErrorInsufficientResources;
-        }
-        //close (fds[0]);
-        //close (fds[1]);
-        fds[0] = temp1 [0];
-        fds[1] = temp1 [1];
-      }
-      m_pipe_in = fds[0];
-      m_pipe_out = fds[1];
-      r = pthread_create(&msg_thread_id,0,message_thread,this);
-      if(r < 0)
-      {
-        DEBUG_PRINT_ERROR("\n component_init(): message_thread creation failed");
-        eRet = OMX_ErrorInsufficientResources;
-      }
-      else
-      {
-        msg_thread_created = true;
-        r = pthread_create(&async_thread_id,0,async_message_thread,this);
-        if(r < 0)
-        {
-          DEBUG_PRINT_ERROR("\n component_init(): async_message_thread creation failed");
-          eRet = OMX_ErrorInsufficientResources;
-        }
-        else
-        {
-          async_thread_created = true;
-        }
-      }
-    }
-  }
 
-  if (eRet != OMX_ErrorNone)
-  {
-    DEBUG_PRINT_ERROR("\n Component Init Failed");
-    DEBUG_PRINT_HIGH("Calling VDEC_IOCTL_STOP_NEXT_MSG");
-    (void)ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_STOP_NEXT_MSG,
-        NULL);
-  }
-  else
-  {
-    DEBUG_PRINT_HIGH("omx_vdec::component_init() success");
-  }
-
-  memset(&h264_mv_buff,0,sizeof(struct h264_mv_buffer));
-  memset(&meta_buff,0,sizeof(struct meta_buffer));
+    memset(&h264_mv_buff,0,sizeof(struct h264_mv_buffer));
+    memset(&meta_buff,0,sizeof(struct meta_buffer));
 cleanup:
-  if (!secure_mode) {
-      return eRet;
-  }
+
+    if (!secure_mode) {
+        return eRet;
+    }
+
 #ifndef JB_MR1
-  if (hwcBinder != NULL) {
-      (eRet == OMX_ErrorNone) ?
-          hwcBinder->setOpenSecureEnd() :
-          hwcBinder->setCloseSecureEnd();
-  } else {
-      DEBUG_PRINT_HIGH("hwcBinder not found, "
-                       "not calling secure end");
-  }
+
+    if (hwcBinder != NULL) {
+        (eRet == OMX_ErrorNone) ?
+            hwcBinder->setOpenSecureEnd() :
+            hwcBinder->setCloseSecureEnd();
+    } else {
+        DEBUG_PRINT_HIGH("hwcBinder not found, "
+                "not calling secure end");
+    }
+
 #endif
-  return eRet;
+    return eRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::GetComponentVersion
+   FUNCTION
+   omx_vdec::GetComponentVersion
 
-DESCRIPTION
-  Returns the component version.
+   DESCRIPTION
+   Returns the component version.
 
-PARAMETERS
-  TBD.
+   PARAMETERS
+   TBD.
 
-RETURN VALUE
-  OMX_ErrorNone.
+   RETURN VALUE
+   OMX_ErrorNone.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::get_component_version
-                                     (
-                                      OMX_IN OMX_HANDLETYPE hComp,
-                                      OMX_OUT OMX_STRING componentName,
-                                      OMX_OUT OMX_VERSIONTYPE* componentVersion,
-                                      OMX_OUT OMX_VERSIONTYPE* specVersion,
-                                      OMX_OUT OMX_UUIDTYPE* componentUUID
-                                      )
+(
+ OMX_IN OMX_HANDLETYPE hComp,
+ OMX_OUT OMX_STRING componentName,
+ OMX_OUT OMX_VERSIONTYPE* componentVersion,
+ OMX_OUT OMX_VERSIONTYPE* specVersion,
+ OMX_OUT OMX_UUIDTYPE* componentUUID
+ )
 {
-    if(m_state == OMX_StateInvalid)
-    {
+    if (m_state == OMX_StateInvalid) {
         DEBUG_PRINT_ERROR("\n Get Comp Version in Invalid State");
         return OMX_ErrorInvalidState;
     }
-  /* TBD -- Return the proper version */
-  if (specVersion)
-  {
-    specVersion->nVersion = OMX_SPEC_VERSION;
-  }
-  return OMX_ErrorNone;
+
+    /* TBD -- Return the proper version */
+    if (specVersion) {
+        specVersion->nVersion = OMX_SPEC_VERSION;
+    }
+
+    return OMX_ErrorNone;
 }
 /* ======================================================================
-FUNCTION
-  omx_vdec::SendCommand
+   FUNCTION
+   omx_vdec::SendCommand
 
-DESCRIPTION
-  Returns zero if all the buffers released..
+   DESCRIPTION
+   Returns zero if all the buffers released..
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::send_command(OMX_IN OMX_HANDLETYPE hComp,
-                                      OMX_IN OMX_COMMANDTYPE cmd,
-                                      OMX_IN OMX_U32 param1,
-                                      OMX_IN OMX_PTR cmdData
-                                      )
+        OMX_IN OMX_COMMANDTYPE cmd,
+        OMX_IN OMX_U32 param1,
+        OMX_IN OMX_PTR cmdData
+        )
 {
     DEBUG_PRINT_HIGH("send_command: Recieved a Command from Client");
-    if(m_state == OMX_StateInvalid)
-    {
+
+    if (m_state == OMX_StateInvalid) {
         DEBUG_PRINT_ERROR("\n ERROR: Send Command in Invalid State");
         return OMX_ErrorInvalidState;
     }
+
     if (cmd == OMX_CommandFlush && param1 != OMX_CORE_INPUT_PORT_INDEX
-      && param1 != OMX_CORE_OUTPUT_PORT_INDEX && param1 != OMX_ALL)
-    {
-      DEBUG_PRINT_ERROR("\n send_command(): ERROR OMX_CommandFlush "
-        "to invalid port: %d", param1);
-      return OMX_ErrorBadPortIndex;
+            && param1 != OMX_CORE_OUTPUT_PORT_INDEX && param1 != OMX_ALL) {
+        DEBUG_PRINT_ERROR("\n send_command(): ERROR OMX_CommandFlush "
+                "to invalid port: %d", param1);
+        return OMX_ErrorBadPortIndex;
     }
+
     post_event((unsigned)cmd,(unsigned)param1,OMX_COMPONENT_GENERATE_COMMAND);
     sem_wait(&m_cmd_lock);
     DEBUG_PRINT_HIGH("send_command: Command Processed");
@@ -1746,1260 +1688,1132 @@
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::SendCommand
+   FUNCTION
+   omx_vdec::SendCommand
 
-DESCRIPTION
-  Returns zero if all the buffers released..
+   DESCRIPTION
+   Returns zero if all the buffers released..
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::send_command_proxy(OMX_IN OMX_HANDLETYPE hComp,
-                                            OMX_IN OMX_COMMANDTYPE cmd,
-                                            OMX_IN OMX_U32 param1,
-                                            OMX_IN OMX_PTR cmdData
-                                            )
+        OMX_IN OMX_COMMANDTYPE cmd,
+        OMX_IN OMX_U32 param1,
+        OMX_IN OMX_PTR cmdData
+        )
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  OMX_STATETYPE eState = (OMX_STATETYPE) param1;
-  int bFlag = 1,sem_posted = 0;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_STATETYPE eState = (OMX_STATETYPE) param1;
+    int bFlag = 1,sem_posted = 0;
 
-  DEBUG_PRINT_HIGH("send_command_proxy(): cmd = %d, Current State %d, Expected State %d",
-    cmd, m_state, eState);
+    DEBUG_PRINT_HIGH("send_command_proxy(): cmd = %d, Current State %d, Expected State %d",
+            cmd, m_state, eState);
 
-  if(cmd == OMX_CommandStateSet)
-  {
-    DEBUG_PRINT_HIGH("send_command_proxy(): OMX_CommandStateSet issued");
-    DEBUG_PRINT_HIGH("Current State %d, Expected State %d", m_state, eState);
-    /***************************/
-    /* Current State is Loaded */
-    /***************************/
-    if(m_state == OMX_StateLoaded)
-    {
-      if(eState == OMX_StateIdle)
-      {
-        //if all buffers are allocated or all ports disabled
-        if(allocate_done() ||
-          (m_inp_bEnabled == OMX_FALSE && m_out_bEnabled == OMX_FALSE))
-        {
-          DEBUG_PRINT_LOW("send_command_proxy(): Loaded-->Idle");
-        }
-        else
-        {
-          DEBUG_PRINT_LOW("send_command_proxy(): Loaded-->Idle-Pending");
-          BITMASK_SET(&m_flags, OMX_COMPONENT_IDLE_PENDING);
-          // Skip the event notification
-          bFlag = 0;
-        }
-      }
-      /* Requesting transition from Loaded to Loaded */
-      else if(eState == OMX_StateLoaded)
-      {
-        DEBUG_PRINT_ERROR("\n ERROR::send_command_proxy(): Loaded-->Loaded");
-        post_event(OMX_EventError,OMX_ErrorSameState,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorSameState;
-      }
-      /* Requesting transition from Loaded to WaitForResources */
-      else if(eState == OMX_StateWaitForResources)
-      {
-        /* Since error is None , we will post an event
-           at the end of this function definition */
-        DEBUG_PRINT_LOW("send_command_proxy(): Loaded-->WaitForResources");
-      }
-      /* Requesting transition from Loaded to Executing */
-      else if(eState == OMX_StateExecuting)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Executing\n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from Loaded to Pause */
-      else if(eState == OMX_StatePause)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Pause\n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from Loaded to Invalid */
-      else if(eState == OMX_StateInvalid)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Invalid\n");
-        post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorInvalidState;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Invalid(%d Not Handled)\n",\
-                          eState);
-        eRet = OMX_ErrorBadParameter;
-      }
-    }
+    if (cmd == OMX_CommandStateSet) {
+        DEBUG_PRINT_HIGH("send_command_proxy(): OMX_CommandStateSet issued");
+        DEBUG_PRINT_HIGH("Current State %d, Expected State %d", m_state, eState);
 
-    /***************************/
-    /* Current State is IDLE */
-    /***************************/
-    else if(m_state == OMX_StateIdle)
-    {
-      if(eState == OMX_StateLoaded)
-      {
-        if(release_done())
-        {
-          /*
-             Since error is None , we will post an event at the end
-             of this function definition
-          */
-          DEBUG_PRINT_HIGH("send_command_proxy(): Idle-->Loaded");
-        }
-        else
-        {
-          DEBUG_PRINT_HIGH("send_command_proxy(): Idle-->Loaded-Pending");
-          BITMASK_SET(&m_flags, OMX_COMPONENT_LOADING_PENDING);
-          // Skip the event notification
-          bFlag = 0;
-        }
-      }
-      /* Requesting transition from Idle to Executing */
-      else if(eState == OMX_StateExecuting)
-      {
-        DEBUG_PRINT_HIGH("send_command_proxy(): Idle-->Executing");
-        BITMASK_SET(&m_flags, OMX_COMPONENT_EXECUTE_PENDING);
-        bFlag = 0;
-        if (ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_CMD_START,
-                    NULL) < 0)
-        {
-          DEBUG_PRINT_ERROR("\n VDEC_IOCTL_CMD_START FAILED");
-          omx_report_error ();
-          eRet = OMX_ErrorHardware;
-        } else {
-          power_module_register();
-        }
-      }
-      /* Requesting transition from Idle to Idle */
-      else if(eState == OMX_StateIdle)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle-->Idle\n");
-        post_event(OMX_EventError,OMX_ErrorSameState,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorSameState;
-      }
-      /* Requesting transition from Idle to WaitForResources */
-      else if(eState == OMX_StateWaitForResources)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle-->WaitForResources\n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-       /* Requesting transition from Idle to Pause */
-       else if(eState == OMX_StatePause)
-      {
-         /*To pause the Video core we need to start the driver*/
-         if (ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_CMD_START,
-                    NULL) < 0)
-         {
-           DEBUG_PRINT_ERROR("\n VDEC_IOCTL_CMD_START FAILED");
-           omx_report_error ();
-           eRet = OMX_ErrorHardware;
-         }
-         else
-         {
-           BITMASK_SET(&m_flags,OMX_COMPONENT_PAUSE_PENDING);
-           DEBUG_PRINT_HIGH("send_command_proxy(): Idle-->Pause");
-           bFlag = 0;
-         }
-      }
-      /* Requesting transition from Idle to Invalid */
-       else if(eState == OMX_StateInvalid)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle-->Invalid\n");
-        post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorInvalidState;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle --> %d Not Handled\n",eState);
-        eRet = OMX_ErrorBadParameter;
-      }
-    }
+        /***************************/
 
-    /******************************/
-    /* Current State is Executing */
-    /******************************/
-    else if(m_state == OMX_StateExecuting)
-    {
-       DEBUG_PRINT_HIGH("Command Recieved in OMX_StateExecuting");
-       /* Requesting transition from Executing to Idle */
-       if(eState == OMX_StateIdle)
-       {
-         /* Since error is None , we will post an event
-         at the end of this function definition
-         */
-         DEBUG_PRINT_HIGH("send_command_proxy(): Executing --> Idle");
-         BITMASK_SET(&m_flags,OMX_COMPONENT_IDLE_PENDING);
-         if(!sem_posted)
-         {
-           sem_posted = 1;
-           sem_post (&m_cmd_lock);
-           execute_omx_flush(OMX_ALL);
-         }
-         bFlag = 0;
-       }
-       /* Requesting transition from Executing to Paused */
-       else if(eState == OMX_StatePause)
-       {
-         DEBUG_PRINT_HIGH("PAUSE Command Issued");
-         if (ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_CMD_PAUSE,
-                    NULL) < 0)
-         {
-           DEBUG_PRINT_ERROR("\n Error In Pause State");
-           post_event(OMX_EventError,OMX_ErrorHardware,\
-                      OMX_COMPONENT_GENERATE_EVENT);
-           eRet = OMX_ErrorHardware;
-         }
-         else
-         {
-           BITMASK_SET(&m_flags,OMX_COMPONENT_PAUSE_PENDING);
-           DEBUG_PRINT_HIGH("send_command_proxy(): Executing-->Pause");
-           bFlag = 0;
-         }
-       }
-       /* Requesting transition from Executing to Loaded */
-       else if(eState == OMX_StateLoaded)
-       {
-         DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> Loaded \n");
-         post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                    OMX_COMPONENT_GENERATE_EVENT);
-         eRet = OMX_ErrorIncorrectStateTransition;
-       }
-       /* Requesting transition from Executing to WaitForResources */
-       else if(eState == OMX_StateWaitForResources)
-       {
-         DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> WaitForResources \n");
-         post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                    OMX_COMPONENT_GENERATE_EVENT);
-         eRet = OMX_ErrorIncorrectStateTransition;
-       }
-       /* Requesting transition from Executing to Executing */
-       else if(eState == OMX_StateExecuting)
-       {
-         DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> Executing \n");
-         post_event(OMX_EventError,OMX_ErrorSameState,\
-                    OMX_COMPONENT_GENERATE_EVENT);
-         eRet = OMX_ErrorSameState;
-       }
-       /* Requesting transition from Executing to Invalid */
-       else if(eState == OMX_StateInvalid)
-       {
-         DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> Invalid \n");
-         post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
-         eRet = OMX_ErrorInvalidState;
-       }
-       else
-       {
-         DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Executing --> %d Not Handled\n",eState);
-         eRet = OMX_ErrorBadParameter;
-       }
-    }
-    /***************************/
-    /* Current State is Pause  */
-    /***************************/
-    else if(m_state == OMX_StatePause)
-    {
-      /* Requesting transition from Pause to Executing */
-      if(eState == OMX_StateExecuting)
-      {
-        DEBUG_PRINT_HIGH("Pause --> Executing");
-        if (ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_CMD_RESUME,
-                   NULL) < 0)
-        {
-          DEBUG_PRINT_ERROR("\n VDEC_IOCTL_CMD_RESUME failed");
-          post_event(OMX_EventError,OMX_ErrorHardware,\
-                     OMX_COMPONENT_GENERATE_EVENT);
-          eRet = OMX_ErrorHardware;
-        }
-        else
-        {
-          BITMASK_SET(&m_flags,OMX_COMPONENT_EXECUTE_PENDING);
-          DEBUG_PRINT_HIGH("send_command_proxy(): Idle-->Executing");
-          post_event (NULL,VDEC_S_SUCCESS,\
-                      OMX_COMPONENT_GENERATE_RESUME_DONE);
-          bFlag = 0;
-        }
-      }
-      /* Requesting transition from Pause to Idle */
-      else if(eState == OMX_StateIdle)
-      {
-        /* Since error is None , we will post an event
-        at the end of this function definition */
-        DEBUG_PRINT_HIGH("Pause --> Idle..");
-         BITMASK_SET(&m_flags,OMX_COMPONENT_IDLE_PENDING);
-         if(!sem_posted)
-         {
-           sem_posted = 1;
-           sem_post (&m_cmd_lock);
-           execute_omx_flush(OMX_ALL);
-         }
-         bFlag = 0;
-      }
-      /* Requesting transition from Pause to loaded */
-      else if(eState == OMX_StateLoaded)
-      {
-        DEBUG_PRINT_ERROR("\n Pause --> loaded \n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from Pause to WaitForResources */
-      else if(eState == OMX_StateWaitForResources)
-      {
-        DEBUG_PRINT_ERROR("\n Pause --> WaitForResources \n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from Pause to Pause */
-      else if(eState == OMX_StatePause)
-      {
-        DEBUG_PRINT_ERROR("\n Pause --> Pause \n");
-        post_event(OMX_EventError,OMX_ErrorSameState,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorSameState;
-      }
-       /* Requesting transition from Pause to Invalid */
-      else if(eState == OMX_StateInvalid)
-      {
-        DEBUG_PRINT_ERROR("\n Pause --> Invalid \n");
-        post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorInvalidState;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Paused --> %d Not Handled\n",eState);
-        eRet = OMX_ErrorBadParameter;
-      }
-    }
-     /***************************/
-    /* Current State is WaitForResources  */
-    /***************************/
-    else if(m_state == OMX_StateWaitForResources)
-    {
-      /* Requesting transition from WaitForResources to Loaded */
-      if(eState == OMX_StateLoaded)
-      {
-        /* Since error is None , we will post an event
-        at the end of this function definition */
-        DEBUG_PRINT_HIGH("send_command_proxy(): WaitForResources-->Loaded");
-      }
-      /* Requesting transition from WaitForResources to WaitForResources */
-      else if (eState == OMX_StateWaitForResources)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->WaitForResources\n");
-        post_event(OMX_EventError,OMX_ErrorSameState,
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorSameState;
-      }
-      /* Requesting transition from WaitForResources to Executing */
-      else if(eState == OMX_StateExecuting)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->Executing\n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from WaitForResources to Pause */
-      else if(eState == OMX_StatePause)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->Pause\n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from WaitForResources to Invalid */
-      else if(eState == OMX_StateInvalid)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->Invalid\n");
-        post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorInvalidState;
-      }
-      /* Requesting transition from WaitForResources to Loaded -
-      is NOT tested by Khronos TS */
+        /* Current State is Loaded */
 
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): %d --> %d(Not Handled)\n",m_state,eState);
-      eRet = OMX_ErrorBadParameter;
-    }
-  }
-  /********************************/
-  /* Current State is Invalid */
-  /*******************************/
-  else if(m_state == OMX_StateInvalid)
-  {
-    /* State Transition from Inavlid to any state */
-    if(eState == (OMX_StateLoaded || OMX_StateWaitForResources
-                  || OMX_StateIdle || OMX_StateExecuting
-                  || OMX_StatePause || OMX_StateInvalid))
-    {
-      DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Invalid -->Loaded\n");
-      post_event(OMX_EventError,OMX_ErrorInvalidState,\
-                 OMX_COMPONENT_GENERATE_EVENT);
-      eRet = OMX_ErrorInvalidState;
-    }
-  }
-  else if (cmd == OMX_CommandFlush)
-  {
-    DEBUG_PRINT_HIGH("send_command_proxy(): OMX_CommandFlush issued "
-        "with param1: %d", param1);
-    if(OMX_CORE_INPUT_PORT_INDEX == param1 || OMX_ALL == param1)
-    {
-      BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_FLUSH_PENDING);
-    }
-    if(OMX_CORE_OUTPUT_PORT_INDEX == param1 || OMX_ALL == param1)
-    {
-      BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_FLUSH_PENDING);
-    }
-    if (!sem_posted){
-      sem_posted = 1;
-      DEBUG_PRINT_LOW("Set the Semaphore");
-      sem_post (&m_cmd_lock);
-      execute_omx_flush(param1);
-    }
-    bFlag = 0;
-  }
-  else if ( cmd == OMX_CommandPortEnable)
-  {
-    DEBUG_PRINT_HIGH("send_command_proxy(): OMX_CommandPortEnable issued "
-        "with param1: %d", param1);
-    if(param1 == OMX_CORE_INPUT_PORT_INDEX || param1 == OMX_ALL)
-      {
-        m_inp_bEnabled = OMX_TRUE;
-
-        if( (m_state == OMX_StateLoaded &&
-             !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
-            || allocate_input_done())
-        {
-          post_event(OMX_CommandPortEnable,OMX_CORE_INPUT_PORT_INDEX,
-                     OMX_COMPONENT_GENERATE_EVENT);
-        }
-        else
-        {
-          DEBUG_PRINT_HIGH("send_command_proxy(): Disabled-->Enabled Pending");
-          BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_ENABLE_PENDING);
-          // Skip the event notification
-          bFlag = 0;
-        }
-      }
-      if(param1 == OMX_CORE_OUTPUT_PORT_INDEX || param1 == OMX_ALL)
-      {
-          DEBUG_PRINT_HIGH("Enable output Port command recieved");
-          m_out_bEnabled = OMX_TRUE;
-
-          if( (m_state == OMX_StateLoaded &&
-              !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
-              || (allocate_output_done()))
-          {
-             post_event(OMX_CommandPortEnable,OMX_CORE_OUTPUT_PORT_INDEX,
-                        OMX_COMPONENT_GENERATE_EVENT);
-
-          }
-          else
-          {
-              DEBUG_PRINT_HIGH("send_command_proxy(): Disabled-->Enabled Pending");
-              BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
-              // Skip the event notification
-              bFlag = 0;
-          }
-      }
-  }
-  else if (cmd == OMX_CommandPortDisable)
-  {
-      DEBUG_PRINT_HIGH("send_command_proxy(): OMX_CommandPortDisable issued "
-          "with param1: %d", param1);
-      if(param1 == OMX_CORE_INPUT_PORT_INDEX || param1 == OMX_ALL)
-      {
-          m_inp_bEnabled = OMX_FALSE;
-          if((m_state == OMX_StateLoaded || m_state == OMX_StateIdle)
-              && release_input_done())
-          {
-             post_event(OMX_CommandPortDisable,OMX_CORE_INPUT_PORT_INDEX,
-                        OMX_COMPONENT_GENERATE_EVENT);
-          }
-          else
-          {
-             BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_DISABLE_PENDING);
-             if(m_state == OMX_StatePause ||m_state == OMX_StateExecuting)
-             {
-               if(!sem_posted)
-               {
-                 sem_posted = 1;
-                 sem_post (&m_cmd_lock);
-               }
-               execute_omx_flush(OMX_CORE_INPUT_PORT_INDEX);
-             }
-
-             // Skip the event notification
-             bFlag = 0;
-          }
-      }
-      if(param1 == OMX_CORE_OUTPUT_PORT_INDEX || param1 == OMX_ALL)
-      {
-          m_out_bEnabled = OMX_FALSE;
-          DEBUG_PRINT_HIGH("Disable output Port command recieved");
-          if((m_state == OMX_StateLoaded || m_state == OMX_StateIdle)
-              && release_output_done())
-          {
-             post_event(OMX_CommandPortDisable,OMX_CORE_OUTPUT_PORT_INDEX,\
-                        OMX_COMPONENT_GENERATE_EVENT);
-          }
-          else
-         {
-            BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_DISABLE_PENDING);
-            if(m_state == OMX_StatePause ||m_state == OMX_StateExecuting)
-            {
-              if (!sem_posted)
-              {
-                sem_posted = 1;
-                sem_post (&m_cmd_lock);
-              }
-                BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING);
-                execute_omx_flush(OMX_CORE_OUTPUT_PORT_INDEX);
+        /***************************/
+        if (m_state == OMX_StateLoaded) {
+            if (eState == OMX_StateIdle) {
+                //if all buffers are allocated or all ports disabled
+                if (allocate_done() ||
+                        (m_inp_bEnabled == OMX_FALSE && m_out_bEnabled == OMX_FALSE)) {
+                    DEBUG_PRINT_LOW("send_command_proxy(): Loaded-->Idle");
+                } else {
+                    DEBUG_PRINT_LOW("send_command_proxy(): Loaded-->Idle-Pending");
+                    BITMASK_SET(&m_flags, OMX_COMPONENT_IDLE_PENDING);
+                    // Skip the event notification
+                    bFlag = 0;
+                }
             }
-            // Skip the event notification
-            bFlag = 0;
+            /* Requesting transition from Loaded to Loaded */
+            else if (eState == OMX_StateLoaded) {
+                DEBUG_PRINT_ERROR("\n ERROR::send_command_proxy(): Loaded-->Loaded");
+                post_event(OMX_EventError,OMX_ErrorSameState,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorSameState;
+            }
+            /* Requesting transition from Loaded to WaitForResources */
+            else if (eState == OMX_StateWaitForResources) {
+                /* Since error is None , we will post an event
+                   at the end of this function definition */
+                DEBUG_PRINT_LOW("send_command_proxy(): Loaded-->WaitForResources");
+            }
+            /* Requesting transition from Loaded to Executing */
+            else if (eState == OMX_StateExecuting) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Executing\n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Loaded to Pause */
+            else if (eState == OMX_StatePause) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Pause\n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Loaded to Invalid */
+            else if (eState == OMX_StateInvalid) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Invalid\n");
+                post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorInvalidState;
+            } else {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Invalid(%d Not Handled)\n",\
+                        eState);
+                eRet = OMX_ErrorBadParameter;
+            }
+        }
 
-         }
-      }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("Error: Invalid Command other than StateSet (%d)\n",cmd);
-    eRet = OMX_ErrorNotImplemented;
-  }
-  if(eRet == OMX_ErrorNone && bFlag)
-  {
-    post_event(cmd,eState,OMX_COMPONENT_GENERATE_EVENT);
-  }
-  if(!sem_posted)
-  {
-    sem_post(&m_cmd_lock);
-  }
+        /***************************/
+        /* Current State is IDLE */
+        /***************************/
+        else if (m_state == OMX_StateIdle) {
+            if (eState == OMX_StateLoaded) {
+                if (release_done()) {
+                    /*
+                       Since error is None , we will post an event at the end
+                       of this function definition
+                     */
+                    DEBUG_PRINT_HIGH("send_command_proxy(): Idle-->Loaded");
+                } else {
+                    DEBUG_PRINT_HIGH("send_command_proxy(): Idle-->Loaded-Pending");
+                    BITMASK_SET(&m_flags, OMX_COMPONENT_LOADING_PENDING);
+                    // Skip the event notification
+                    bFlag = 0;
+                }
+            }
+            /* Requesting transition from Idle to Executing */
+            else if (eState == OMX_StateExecuting) {
+                DEBUG_PRINT_HIGH("send_command_proxy(): Idle-->Executing");
+                BITMASK_SET(&m_flags, OMX_COMPONENT_EXECUTE_PENDING);
+                bFlag = 0;
 
-  return eRet;
+                if (ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_CMD_START,
+                            NULL) < 0) {
+                    DEBUG_PRINT_ERROR("\n VDEC_IOCTL_CMD_START FAILED");
+                    omx_report_error ();
+                    eRet = OMX_ErrorHardware;
+                } else {
+                    power_module_register();
+                }
+            }
+            /* Requesting transition from Idle to Idle */
+            else if (eState == OMX_StateIdle) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle-->Idle\n");
+                post_event(OMX_EventError,OMX_ErrorSameState,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorSameState;
+            }
+            /* Requesting transition from Idle to WaitForResources */
+            else if (eState == OMX_StateWaitForResources) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle-->WaitForResources\n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Idle to Pause */
+            else if (eState == OMX_StatePause) {
+                /*To pause the Video core we need to start the driver*/
+                if (ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_CMD_START,
+                            NULL) < 0) {
+                    DEBUG_PRINT_ERROR("\n VDEC_IOCTL_CMD_START FAILED");
+                    omx_report_error ();
+                    eRet = OMX_ErrorHardware;
+                } else {
+                    BITMASK_SET(&m_flags,OMX_COMPONENT_PAUSE_PENDING);
+                    DEBUG_PRINT_HIGH("send_command_proxy(): Idle-->Pause");
+                    bFlag = 0;
+                }
+            }
+            /* Requesting transition from Idle to Invalid */
+            else if (eState == OMX_StateInvalid) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle-->Invalid\n");
+                post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorInvalidState;
+            } else {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle --> %d Not Handled\n",eState);
+                eRet = OMX_ErrorBadParameter;
+            }
+        }
+
+        /******************************/
+        /* Current State is Executing */
+        /******************************/
+        else if (m_state == OMX_StateExecuting) {
+            DEBUG_PRINT_HIGH("Command Recieved in OMX_StateExecuting");
+
+            /* Requesting transition from Executing to Idle */
+            if (eState == OMX_StateIdle) {
+                /* Since error is None , we will post an event
+                   at the end of this function definition
+                 */
+                DEBUG_PRINT_HIGH("send_command_proxy(): Executing --> Idle");
+                BITMASK_SET(&m_flags,OMX_COMPONENT_IDLE_PENDING);
+
+                if (!sem_posted) {
+                    sem_posted = 1;
+                    sem_post (&m_cmd_lock);
+                    execute_omx_flush(OMX_ALL);
+                }
+
+                bFlag = 0;
+            }
+            /* Requesting transition from Executing to Paused */
+            else if (eState == OMX_StatePause) {
+                DEBUG_PRINT_HIGH("PAUSE Command Issued");
+
+                if (ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_CMD_PAUSE,
+                            NULL) < 0) {
+                    DEBUG_PRINT_ERROR("\n Error In Pause State");
+                    post_event(OMX_EventError,OMX_ErrorHardware,\
+                            OMX_COMPONENT_GENERATE_EVENT);
+                    eRet = OMX_ErrorHardware;
+                } else {
+                    BITMASK_SET(&m_flags,OMX_COMPONENT_PAUSE_PENDING);
+                    DEBUG_PRINT_HIGH("send_command_proxy(): Executing-->Pause");
+                    bFlag = 0;
+                }
+            }
+            /* Requesting transition from Executing to Loaded */
+            else if (eState == OMX_StateLoaded) {
+                DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> Loaded \n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Executing to WaitForResources */
+            else if (eState == OMX_StateWaitForResources) {
+                DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> WaitForResources \n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Executing to Executing */
+            else if (eState == OMX_StateExecuting) {
+                DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> Executing \n");
+                post_event(OMX_EventError,OMX_ErrorSameState,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorSameState;
+            }
+            /* Requesting transition from Executing to Invalid */
+            else if (eState == OMX_StateInvalid) {
+                DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> Invalid \n");
+                post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorInvalidState;
+            } else {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Executing --> %d Not Handled\n",eState);
+                eRet = OMX_ErrorBadParameter;
+            }
+        }
+        /***************************/
+        /* Current State is Pause  */
+        /***************************/
+        else if (m_state == OMX_StatePause) {
+            /* Requesting transition from Pause to Executing */
+            if (eState == OMX_StateExecuting) {
+                DEBUG_PRINT_HIGH("Pause --> Executing");
+
+                if (ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_CMD_RESUME,
+                            NULL) < 0) {
+                    DEBUG_PRINT_ERROR("\n VDEC_IOCTL_CMD_RESUME failed");
+                    post_event(OMX_EventError,OMX_ErrorHardware,\
+                            OMX_COMPONENT_GENERATE_EVENT);
+                    eRet = OMX_ErrorHardware;
+                } else {
+                    BITMASK_SET(&m_flags,OMX_COMPONENT_EXECUTE_PENDING);
+                    DEBUG_PRINT_HIGH("send_command_proxy(): Idle-->Executing");
+                    post_event (NULL,VDEC_S_SUCCESS,\
+                            OMX_COMPONENT_GENERATE_RESUME_DONE);
+                    bFlag = 0;
+                }
+            }
+            /* Requesting transition from Pause to Idle */
+            else if (eState == OMX_StateIdle) {
+                /* Since error is None , we will post an event
+                   at the end of this function definition */
+                DEBUG_PRINT_HIGH("Pause --> Idle..");
+                BITMASK_SET(&m_flags,OMX_COMPONENT_IDLE_PENDING);
+
+                if (!sem_posted) {
+                    sem_posted = 1;
+                    sem_post (&m_cmd_lock);
+                    execute_omx_flush(OMX_ALL);
+                }
+
+                bFlag = 0;
+            }
+            /* Requesting transition from Pause to loaded */
+            else if (eState == OMX_StateLoaded) {
+                DEBUG_PRINT_ERROR("\n Pause --> loaded \n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Pause to WaitForResources */
+            else if (eState == OMX_StateWaitForResources) {
+                DEBUG_PRINT_ERROR("\n Pause --> WaitForResources \n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Pause to Pause */
+            else if (eState == OMX_StatePause) {
+                DEBUG_PRINT_ERROR("\n Pause --> Pause \n");
+                post_event(OMX_EventError,OMX_ErrorSameState,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorSameState;
+            }
+            /* Requesting transition from Pause to Invalid */
+            else if (eState == OMX_StateInvalid) {
+                DEBUG_PRINT_ERROR("\n Pause --> Invalid \n");
+                post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorInvalidState;
+            } else {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Paused --> %d Not Handled\n",eState);
+                eRet = OMX_ErrorBadParameter;
+            }
+        }
+        /***************************/
+        /* Current State is WaitForResources  */
+        /***************************/
+        else if (m_state == OMX_StateWaitForResources) {
+            /* Requesting transition from WaitForResources to Loaded */
+            if (eState == OMX_StateLoaded) {
+                /* Since error is None , we will post an event
+                   at the end of this function definition */
+                DEBUG_PRINT_HIGH("send_command_proxy(): WaitForResources-->Loaded");
+            }
+            /* Requesting transition from WaitForResources to WaitForResources */
+            else if (eState == OMX_StateWaitForResources) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->WaitForResources\n");
+                post_event(OMX_EventError,OMX_ErrorSameState,
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorSameState;
+            }
+            /* Requesting transition from WaitForResources to Executing */
+            else if (eState == OMX_StateExecuting) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->Executing\n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from WaitForResources to Pause */
+            else if (eState == OMX_StatePause) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->Pause\n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from WaitForResources to Invalid */
+            else if (eState == OMX_StateInvalid) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->Invalid\n");
+                post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorInvalidState;
+            }
+
+            /* Requesting transition from WaitForResources to Loaded -
+               is NOT tested by Khronos TS */
+
+        } else {
+            DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): %d --> %d(Not Handled)\n",m_state,eState);
+            eRet = OMX_ErrorBadParameter;
+        }
+    }
+    /********************************/
+    /* Current State is Invalid */
+    /*******************************/
+    else if (m_state == OMX_StateInvalid) {
+        /* State Transition from Inavlid to any state */
+        if (eState == (OMX_StateLoaded || OMX_StateWaitForResources
+                    || OMX_StateIdle || OMX_StateExecuting
+                    || OMX_StatePause || OMX_StateInvalid)) {
+            DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Invalid -->Loaded\n");
+            post_event(OMX_EventError,OMX_ErrorInvalidState,\
+                    OMX_COMPONENT_GENERATE_EVENT);
+            eRet = OMX_ErrorInvalidState;
+        }
+    } else if (cmd == OMX_CommandFlush) {
+        DEBUG_PRINT_HIGH("send_command_proxy(): OMX_CommandFlush issued "
+                "with param1: %d", param1);
+
+        if (OMX_CORE_INPUT_PORT_INDEX == param1 || OMX_ALL == param1) {
+            BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_FLUSH_PENDING);
+        }
+
+        if (OMX_CORE_OUTPUT_PORT_INDEX == param1 || OMX_ALL == param1) {
+            BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_FLUSH_PENDING);
+        }
+
+        if (!sem_posted) {
+            sem_posted = 1;
+            DEBUG_PRINT_LOW("Set the Semaphore");
+            sem_post (&m_cmd_lock);
+            execute_omx_flush(param1);
+        }
+
+        bFlag = 0;
+    } else if ( cmd == OMX_CommandPortEnable) {
+        DEBUG_PRINT_HIGH("send_command_proxy(): OMX_CommandPortEnable issued "
+                "with param1: %d", param1);
+
+        if (param1 == OMX_CORE_INPUT_PORT_INDEX || param1 == OMX_ALL) {
+            m_inp_bEnabled = OMX_TRUE;
+
+            if ( (m_state == OMX_StateLoaded &&
+                        !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
+                    || allocate_input_done()) {
+                post_event(OMX_CommandPortEnable,OMX_CORE_INPUT_PORT_INDEX,
+                        OMX_COMPONENT_GENERATE_EVENT);
+            } else {
+                DEBUG_PRINT_HIGH("send_command_proxy(): Disabled-->Enabled Pending");
+                BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_ENABLE_PENDING);
+                // Skip the event notification
+                bFlag = 0;
+            }
+        }
+
+        if (param1 == OMX_CORE_OUTPUT_PORT_INDEX || param1 == OMX_ALL) {
+            DEBUG_PRINT_HIGH("Enable output Port command recieved");
+            m_out_bEnabled = OMX_TRUE;
+
+            if ( (m_state == OMX_StateLoaded &&
+                        !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
+                    || (allocate_output_done())) {
+                post_event(OMX_CommandPortEnable,OMX_CORE_OUTPUT_PORT_INDEX,
+                        OMX_COMPONENT_GENERATE_EVENT);
+
+            } else {
+                DEBUG_PRINT_HIGH("send_command_proxy(): Disabled-->Enabled Pending");
+                BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
+                // Skip the event notification
+                bFlag = 0;
+            }
+        }
+    } else if (cmd == OMX_CommandPortDisable) {
+        DEBUG_PRINT_HIGH("send_command_proxy(): OMX_CommandPortDisable issued "
+                "with param1: %d", param1);
+
+        if (param1 == OMX_CORE_INPUT_PORT_INDEX || param1 == OMX_ALL) {
+            m_inp_bEnabled = OMX_FALSE;
+
+            if ((m_state == OMX_StateLoaded || m_state == OMX_StateIdle)
+                    && release_input_done()) {
+                post_event(OMX_CommandPortDisable,OMX_CORE_INPUT_PORT_INDEX,
+                        OMX_COMPONENT_GENERATE_EVENT);
+            } else {
+                BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_DISABLE_PENDING);
+
+                if (m_state == OMX_StatePause ||m_state == OMX_StateExecuting) {
+                    if (!sem_posted) {
+                        sem_posted = 1;
+                        sem_post (&m_cmd_lock);
+                    }
+
+                    execute_omx_flush(OMX_CORE_INPUT_PORT_INDEX);
+                }
+
+                // Skip the event notification
+                bFlag = 0;
+            }
+        }
+
+        if (param1 == OMX_CORE_OUTPUT_PORT_INDEX || param1 == OMX_ALL) {
+            m_out_bEnabled = OMX_FALSE;
+            DEBUG_PRINT_HIGH("Disable output Port command recieved");
+
+            if ((m_state == OMX_StateLoaded || m_state == OMX_StateIdle)
+                    && release_output_done()) {
+                post_event(OMX_CommandPortDisable,OMX_CORE_OUTPUT_PORT_INDEX,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+            } else {
+                BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_DISABLE_PENDING);
+
+                if (m_state == OMX_StatePause ||m_state == OMX_StateExecuting) {
+                    if (!sem_posted) {
+                        sem_posted = 1;
+                        sem_post (&m_cmd_lock);
+                    }
+
+                    BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING);
+                    execute_omx_flush(OMX_CORE_OUTPUT_PORT_INDEX);
+                }
+
+                // Skip the event notification
+                bFlag = 0;
+
+            }
+        }
+    } else {
+        DEBUG_PRINT_ERROR("Error: Invalid Command other than StateSet (%d)\n",cmd);
+        eRet = OMX_ErrorNotImplemented;
+    }
+
+    if (eRet == OMX_ErrorNone && bFlag) {
+        post_event(cmd,eState,OMX_COMPONENT_GENERATE_EVENT);
+    }
+
+    if (!sem_posted) {
+        sem_post(&m_cmd_lock);
+    }
+
+    return eRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::ExecuteOmxFlush
+   FUNCTION
+   omx_vdec::ExecuteOmxFlush
 
-DESCRIPTION
-  Executes the OMX flush.
+   DESCRIPTION
+   Executes the OMX flush.
 
-PARAMETERS
-  flushtype - input flush(1)/output flush(0)/ both.
+   PARAMETERS
+   flushtype - input flush(1)/output flush(0)/ both.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 bool omx_vdec::execute_omx_flush(OMX_U32 flushType)
 {
-  struct vdec_ioctl_msg ioctl_msg = {NULL, NULL};
-  enum vdec_bufferflush flush_dir;
-  bool bRet = false;
-  switch (flushType)
-  {
-    case OMX_CORE_INPUT_PORT_INDEX:
-      input_flush_progress = true;
-      flush_dir = VDEC_FLUSH_TYPE_INPUT;
-    break;
-    case OMX_CORE_OUTPUT_PORT_INDEX:
-      output_flush_progress = true;
-      flush_dir = VDEC_FLUSH_TYPE_OUTPUT;
-    break;
-    default:
-      input_flush_progress = true;
-      output_flush_progress = true;
-      flush_dir = VDEC_FLUSH_TYPE_ALL;
-  }
-  ioctl_msg.in = &flush_dir;
-  ioctl_msg.out = NULL;
-  if (ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_CMD_FLUSH, &ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("\n Flush Port (%d) Failed ", (int)flush_dir);
-    bRet = false;
-  }
-  return bRet;
+    struct vdec_ioctl_msg ioctl_msg = {NULL, NULL};
+    enum vdec_bufferflush flush_dir;
+    bool bRet = false;
+
+    switch (flushType) {
+        case OMX_CORE_INPUT_PORT_INDEX:
+            input_flush_progress = true;
+            flush_dir = VDEC_FLUSH_TYPE_INPUT;
+            break;
+        case OMX_CORE_OUTPUT_PORT_INDEX:
+            output_flush_progress = true;
+            flush_dir = VDEC_FLUSH_TYPE_OUTPUT;
+            break;
+        default:
+            input_flush_progress = true;
+            output_flush_progress = true;
+            flush_dir = VDEC_FLUSH_TYPE_ALL;
+    }
+
+    ioctl_msg.in = &flush_dir;
+    ioctl_msg.out = NULL;
+
+    if (ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_CMD_FLUSH, &ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("\n Flush Port (%d) Failed ", (int)flush_dir);
+        bRet = false;
+    }
+
+    return bRet;
 }
 /*=========================================================================
 FUNCTION : execute_output_flush
 
 DESCRIPTION
-  Executes the OMX flush at OUTPUT PORT.
+Executes the OMX flush at OUTPUT PORT.
 
 PARAMETERS
-  None.
+None.
 
 RETURN VALUE
-  true/false
+true/false
 ==========================================================================*/
 bool omx_vdec::execute_output_flush()
 {
-  unsigned      p1 = 0; // Parameter - 1
-  unsigned      p2 = 0; // Parameter - 2
-  unsigned      ident = 0;
-  bool bRet = true;
+    unsigned      p1 = 0; // Parameter - 1
+    unsigned      p2 = 0; // Parameter - 2
+    unsigned      ident = 0;
+    bool bRet = true;
 
-  /*Generate FBD for all Buffers in the FTBq*/
-  pthread_mutex_lock(&m_lock);
-  DEBUG_PRINT_HIGH("Initiate Output Flush");
-  while (m_ftb_q.m_size)
-  {
-    DEBUG_PRINT_HIGH("Buffer queue size %d pending buf cnt %d",
-                       m_ftb_q.m_size,pending_output_buffers);
-    m_ftb_q.pop_entry(&p1,&p2,&ident);
-    DEBUG_PRINT_HIGH("ID(%x) P1(%x) P2(%x)", ident, p1, p2);
-    if(ident == m_fill_output_msg )
-    {
-      m_cb.FillBufferDone(&m_cmp, m_app_data, (OMX_BUFFERHEADERTYPE *)p2);
-    }
-    else if (ident == OMX_COMPONENT_GENERATE_FBD)
-    {
-      fill_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p1);
-    }
-  }
-  pthread_mutex_unlock(&m_lock);
-  output_flush_progress = false;
+    /*Generate FBD for all Buffers in the FTBq*/
+    pthread_mutex_lock(&m_lock);
+    DEBUG_PRINT_HIGH("Initiate Output Flush");
 
-  if (arbitrary_bytes)
-  {
-    prev_ts = LLONG_MAX;
-    rst_prev_ts = true;
-  }
-  DEBUG_PRINT_HIGH("OMX flush o/p Port complete PenBuf(%d)", pending_output_buffers);
-  return bRet;
+    while (m_ftb_q.m_size) {
+        DEBUG_PRINT_HIGH("Buffer queue size %d pending buf cnt %d",
+                m_ftb_q.m_size,pending_output_buffers);
+        m_ftb_q.pop_entry(&p1,&p2,&ident);
+        DEBUG_PRINT_HIGH("ID(%x) P1(%x) P2(%x)", ident, p1, p2);
+
+        if (ident == m_fill_output_msg ) {
+            m_cb.FillBufferDone(&m_cmp, m_app_data, (OMX_BUFFERHEADERTYPE *)p2);
+        } else if (ident == OMX_COMPONENT_GENERATE_FBD) {
+            fill_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p1);
+        }
+    }
+
+    pthread_mutex_unlock(&m_lock);
+    output_flush_progress = false;
+
+    if (arbitrary_bytes) {
+        prev_ts = LLONG_MAX;
+        rst_prev_ts = true;
+    }
+
+    DEBUG_PRINT_HIGH("OMX flush o/p Port complete PenBuf(%d)", pending_output_buffers);
+    return bRet;
 }
 /*=========================================================================
 FUNCTION : execute_input_flush
 
 DESCRIPTION
-  Executes the OMX flush at INPUT PORT.
+Executes the OMX flush at INPUT PORT.
 
 PARAMETERS
-  None.
+None.
 
 RETURN VALUE
-  true/false
+true/false
 ==========================================================================*/
 bool omx_vdec::execute_input_flush()
 {
-  unsigned       i =0;
-  unsigned      p1 = 0; // Parameter - 1
-  unsigned      p2 = 0; // Parameter - 2
-  unsigned      ident = 0;
-  bool bRet = true;
+    unsigned       i =0;
+    unsigned      p1 = 0; // Parameter - 1
+    unsigned      p2 = 0; // Parameter - 2
+    unsigned      ident = 0;
+    bool bRet = true;
 
-  /*Generate EBD for all Buffers in the ETBq*/
-  DEBUG_PRINT_HIGH("Initiate Input Flush");
+    /*Generate EBD for all Buffers in the ETBq*/
+    DEBUG_PRINT_HIGH("Initiate Input Flush");
 
-  pthread_mutex_lock(&m_lock);
-  DEBUG_PRINT_LOW("Check if the Queue is empty");
-  while (m_etb_q.m_size)
-  {
-    m_etb_q.pop_entry(&p1,&p2,&ident);
+    pthread_mutex_lock(&m_lock);
+    DEBUG_PRINT_LOW("Check if the Queue is empty");
 
-    if (ident == OMX_COMPONENT_GENERATE_ETB_ARBITRARY)
-    {
-      DEBUG_PRINT_HIGH("Flush Input Heap Buffer %p",(OMX_BUFFERHEADERTYPE *)p2);
-      m_cb.EmptyBufferDone(&m_cmp ,m_app_data, (OMX_BUFFERHEADERTYPE *)p2);
-    }
-    else if(ident == OMX_COMPONENT_GENERATE_ETB)
-    {
-      pending_input_buffers++;
-      DEBUG_PRINT_HIGH("Flush Input OMX_COMPONENT_GENERATE_ETB %p, pending_input_buffers %d",
-        (OMX_BUFFERHEADERTYPE *)p2, pending_input_buffers);
-      empty_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p2);
-    }
-    else if (ident == OMX_COMPONENT_GENERATE_EBD)
-    {
-      DEBUG_PRINT_HIGH("Flush Input OMX_COMPONENT_GENERATE_EBD %p",
-        (OMX_BUFFERHEADERTYPE *)p1);
-      empty_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p1);
-    }
-  }
-  time_stamp_dts.flush_timestamp();
-  /*Check if Heap Buffers are to be flushed*/
-  if (arbitrary_bytes && !(codec_config_flag))
-  {
-    DEBUG_PRINT_HIGH("Reset all the variables before flusing");
-    h264_scratch.nFilledLen = 0;
-    nal_count = 0;
-    look_ahead_nal = false;
-    frame_count = 0;
-    h264_last_au_ts = LLONG_MAX;
-    h264_last_au_flags = 0;
-    memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
-    m_demux_entries = 0;
-    DEBUG_PRINT_HIGH("Initialize parser");
-    if (m_frame_parser.mutils)
-    {
-      m_frame_parser.mutils->initialize_frame_checking_environment();
+    while (m_etb_q.m_size) {
+        m_etb_q.pop_entry(&p1,&p2,&ident);
+
+        if (ident == OMX_COMPONENT_GENERATE_ETB_ARBITRARY) {
+            DEBUG_PRINT_HIGH("Flush Input Heap Buffer %p",(OMX_BUFFERHEADERTYPE *)p2);
+            m_cb.EmptyBufferDone(&m_cmp ,m_app_data, (OMX_BUFFERHEADERTYPE *)p2);
+        } else if (ident == OMX_COMPONENT_GENERATE_ETB) {
+            pending_input_buffers++;
+            DEBUG_PRINT_HIGH("Flush Input OMX_COMPONENT_GENERATE_ETB %p, pending_input_buffers %d",
+                    (OMX_BUFFERHEADERTYPE *)p2, pending_input_buffers);
+            empty_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p2);
+        } else if (ident == OMX_COMPONENT_GENERATE_EBD) {
+            DEBUG_PRINT_HIGH("Flush Input OMX_COMPONENT_GENERATE_EBD %p",
+                    (OMX_BUFFERHEADERTYPE *)p1);
+            empty_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p1);
+        }
     }
 
-    while (m_input_pending_q.m_size)
-    {
-      m_input_pending_q.pop_entry(&p1,&p2,&ident);
-      m_cb.EmptyBufferDone(&m_cmp ,m_app_data, (OMX_BUFFERHEADERTYPE *)p1);
+    time_stamp_dts.flush_timestamp();
+
+    /*Check if Heap Buffers are to be flushed*/
+    if (arbitrary_bytes && !(codec_config_flag)) {
+        DEBUG_PRINT_HIGH("Reset all the variables before flusing");
+        h264_scratch.nFilledLen = 0;
+        nal_count = 0;
+        look_ahead_nal = false;
+        frame_count = 0;
+        h264_last_au_ts = LLONG_MAX;
+        h264_last_au_flags = 0;
+        memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
+        m_demux_entries = 0;
+        DEBUG_PRINT_HIGH("Initialize parser");
+
+        if (m_frame_parser.mutils) {
+            m_frame_parser.mutils->initialize_frame_checking_environment();
+        }
+
+        while (m_input_pending_q.m_size) {
+            m_input_pending_q.pop_entry(&p1,&p2,&ident);
+            m_cb.EmptyBufferDone(&m_cmp ,m_app_data, (OMX_BUFFERHEADERTYPE *)p1);
+        }
+
+        if (psource_frame) {
+            m_cb.EmptyBufferDone(&m_cmp ,m_app_data,psource_frame);
+            psource_frame = NULL;
+        }
+
+        if (pdest_frame) {
+            pdest_frame->nFilledLen = 0;
+            m_input_free_q.insert_entry((unsigned) pdest_frame,NULL,NULL);
+            pdest_frame = NULL;
+        }
+
+        m_frame_parser.flush();
+    } else if (codec_config_flag) {
+        DEBUG_PRINT_HIGH("frame_parser flushing skipped due to codec config buffer "
+                "is not sent to the driver yet");
     }
 
-    if (psource_frame)
-    {
-      m_cb.EmptyBufferDone(&m_cmp ,m_app_data,psource_frame);
-      psource_frame = NULL;
+    pthread_mutex_unlock(&m_lock);
+    input_flush_progress = false;
+
+    if (!arbitrary_bytes) {
+        prev_ts = LLONG_MAX;
+        rst_prev_ts = true;
     }
 
-    if (pdest_frame)
-    {
-      pdest_frame->nFilledLen = 0;
-      m_input_free_q.insert_entry((unsigned) pdest_frame,NULL,NULL);
-      pdest_frame = NULL;
-    }
-    m_frame_parser.flush();
-  }
-  else if (codec_config_flag)
-  {
-    DEBUG_PRINT_HIGH("frame_parser flushing skipped due to codec config buffer "
-       "is not sent to the driver yet");
-  }
-  pthread_mutex_unlock(&m_lock);
-  input_flush_progress = false;
-  if (!arbitrary_bytes)
-  {
-    prev_ts = LLONG_MAX;
-    rst_prev_ts = true;
-  }
 #ifdef _ANDROID_
-  if (m_debug_timestamp)
-  {
-    m_timestamp_list.reset_ts_list();
-  }
+
+    if (m_debug_timestamp) {
+        m_timestamp_list.reset_ts_list();
+    }
+
 #endif
-  DEBUG_PRINT_HIGH("OMX flush i/p Port complete PenBuf(%d)", pending_input_buffers);
-  return bRet;
+    DEBUG_PRINT_HIGH("OMX flush i/p Port complete PenBuf(%d)", pending_input_buffers);
+    return bRet;
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::SendCommandEvent
+   FUNCTION
+   omx_vdec::SendCommandEvent
 
-DESCRIPTION
-  Send the event to decoder pipe.  This is needed to generate the callbacks
-  in decoder thread context.
+   DESCRIPTION
+   Send the event to decoder pipe.  This is needed to generate the callbacks
+   in decoder thread context.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 bool omx_vdec::post_event(unsigned int p1,
-                          unsigned int p2,
-                          unsigned int id)
+        unsigned int p2,
+        unsigned int id)
 {
-  bool bRet      =                      false;
+    bool bRet      =                      false;
 
 
-  pthread_mutex_lock(&m_lock);
+    pthread_mutex_lock(&m_lock);
 
-  if (id == m_fill_output_msg ||
-      id == OMX_COMPONENT_GENERATE_FBD)
-  {
-    m_ftb_q.insert_entry(p1,p2,id);
-  }
-  else if (id == OMX_COMPONENT_GENERATE_ETB ||
-           id == OMX_COMPONENT_GENERATE_EBD ||
-           id == OMX_COMPONENT_GENERATE_ETB_ARBITRARY)
-  {
-    m_etb_q.insert_entry(p1,p2,id);
-  }
-  else
-  {
-    m_cmd_q.insert_entry(p1,p2,id);
-  }
+    if (id == m_fill_output_msg ||
+            id == OMX_COMPONENT_GENERATE_FBD) {
+        m_ftb_q.insert_entry(p1,p2,id);
+    } else if (id == OMX_COMPONENT_GENERATE_ETB ||
+            id == OMX_COMPONENT_GENERATE_EBD ||
+            id == OMX_COMPONENT_GENERATE_ETB_ARBITRARY) {
+        m_etb_q.insert_entry(p1,p2,id);
+    } else {
+        m_cmd_q.insert_entry(p1,p2,id);
+    }
 
-  bRet = true;
-  DEBUG_PRINT_LOW("Value of this pointer in post_event %p",this);
-  post_message(this, id);
+    bRet = true;
+    DEBUG_PRINT_LOW("Value of this pointer in post_event %p",this);
+    post_message(this, id);
 
-  pthread_mutex_unlock(&m_lock);
+    pthread_mutex_unlock(&m_lock);
 
-  return bRet;
+    return bRet;
 }
 #ifdef MAX_RES_720P
 OMX_ERRORTYPE omx_vdec::get_supported_profile_level_for_720p(OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  if(!profileLevelType)
-    return OMX_ErrorBadParameter;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
 
-  if(profileLevelType->nPortIndex == 0) {
-    if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE))
-    {
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileBaseline;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel31;
+    if (!profileLevelType)
+        return OMX_ErrorBadParameter;
 
-      }
-      else if (profileLevelType->nProfileIndex == 1)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileMain;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel31;
-      }
-      else if(profileLevelType->nProfileIndex == 2)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileHigh;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel31;
-      }
-      else
-      {
-        DEBUG_PRINT_HIGH("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d",
-            profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
-    } else if((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE)))
-    {
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_H263ProfileBaseline;
-        profileLevelType->eLevel   = OMX_VIDEO_H263Level70;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n", profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
+    if (profileLevelType->nPortIndex == 0) {
+        if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE)) {
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileBaseline;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel31;
+
+            } else if (profileLevelType->nProfileIndex == 1) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileMain;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel31;
+            } else if (profileLevelType->nProfileIndex == 2) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileHigh;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel31;
+            } else {
+                DEBUG_PRINT_HIGH("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d",
+                        profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        } else if ((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE))) {
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_H263ProfileBaseline;
+                profileLevelType->eLevel   = OMX_VIDEO_H263Level70;
+            } else {
+                DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n", profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE)) {
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileSimple;
+                profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
+            } else if (profileLevelType->nProfileIndex == 1) {
+                profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileAdvancedSimple;
+                profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
+            } else {
+                DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n", profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        }
+    } else {
+        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported should be queries on Input port only %d\n", profileLevelType->nPortIndex);
+        eRet = OMX_ErrorBadPortIndex;
     }
-    else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE))
-    {
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileSimple;
-        profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
-      }
-      else if(profileLevelType->nProfileIndex == 1)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileAdvancedSimple;
-        profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n", profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
-    }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported should be queries on Input port only %d\n", profileLevelType->nPortIndex);
-    eRet = OMX_ErrorBadPortIndex;
-  }
-  return eRet;
+
+    return eRet;
 }
 #endif
 #ifdef MAX_RES_1080P
 OMX_ERRORTYPE omx_vdec::get_supported_profile_level_for_1080p(OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNoMore;
-  if(!profileLevelType)
-    return OMX_ErrorBadParameter;
+    OMX_ERRORTYPE eRet = OMX_ErrorNoMore;
 
-  if(profileLevelType->nPortIndex == 0) {
-    if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE))
-    {
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileBaseline;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
+    if (!profileLevelType)
+        return OMX_ErrorBadParameter;
 
-      }
-      else if (profileLevelType->nProfileIndex == 1)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileMain;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
-      }
-      else if(profileLevelType->nProfileIndex == 2)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileHigh;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
-      }
-      else
-      {
-        DEBUG_PRINT_HIGH("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d",
-            profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
+    if (profileLevelType->nPortIndex == 0) {
+        if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE)) {
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileBaseline;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
+
+            } else if (profileLevelType->nProfileIndex == 1) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileMain;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
+            } else if (profileLevelType->nProfileIndex == 2) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileHigh;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
+            } else {
+                DEBUG_PRINT_HIGH("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d",
+                        profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        } else if ((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE))) {
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_H263ProfileBaseline;
+                profileLevelType->eLevel   = OMX_VIDEO_H263Level70;
+            } else {
+                DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n", profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE)) {
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileSimple;
+                profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
+            } else if (profileLevelType->nProfileIndex == 1) {
+                profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileAdvancedSimple;
+                profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
+            } else {
+                DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n", profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE)) {
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_MPEG2ProfileSimple;
+                profileLevelType->eLevel   = OMX_VIDEO_MPEG2LevelHL;
+            } else if (profileLevelType->nProfileIndex == 1) {
+                profileLevelType->eProfile = OMX_VIDEO_MPEG2ProfileMain;
+                profileLevelType->eLevel   = OMX_VIDEO_MPEG2LevelHL;
+            } else {
+                DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n", profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        } else {
+            DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported ret NoMore\n");
+            eRet = OMX_ErrorNoMore;
+        }
+    } else {
+        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported should be queries on Input port only %d\n", profileLevelType->nPortIndex);
+        eRet = OMX_ErrorBadPortIndex;
     }
-    else if((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE)))
-    {
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_H263ProfileBaseline;
-        profileLevelType->eLevel   = OMX_VIDEO_H263Level70;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n", profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
-    }
-    else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE))
-    {
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileSimple;
-        profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
-      }
-      else if(profileLevelType->nProfileIndex == 1)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileAdvancedSimple;
-        profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n", profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
-    }
-    else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE))
-    {
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_MPEG2ProfileSimple;
-        profileLevelType->eLevel   = OMX_VIDEO_MPEG2LevelHL;
-      }
-      else if(profileLevelType->nProfileIndex == 1)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_MPEG2ProfileMain;
-        profileLevelType->eLevel   = OMX_VIDEO_MPEG2LevelHL;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n", profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported ret NoMore\n");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported should be queries on Input port only %d\n", profileLevelType->nPortIndex);
-    eRet = OMX_ErrorBadPortIndex;
-  }
-  return eRet;
+
+    return eRet;
 }
 #endif
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::GetParameter
+   FUNCTION
+   omx_vdec::GetParameter
 
-DESCRIPTION
-  OMX Get Parameter method implementation
+   DESCRIPTION
+   OMX Get Parameter method implementation
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  Error None if successful.
+   RETURN VALUE
+   Error None if successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::get_parameter(OMX_IN OMX_HANDLETYPE     hComp,
-                                           OMX_IN OMX_INDEXTYPE paramIndex,
-                                           OMX_INOUT OMX_PTR     paramData)
+        OMX_IN OMX_INDEXTYPE paramIndex,
+        OMX_INOUT OMX_PTR     paramData)
 {
     OMX_ERRORTYPE eRet = OMX_ErrorNone;
 
     DEBUG_PRINT_LOW("get_parameter:");
-    if(m_state == OMX_StateInvalid)
-    {
+
+    if (m_state == OMX_StateInvalid) {
         DEBUG_PRINT_ERROR("Get Param in Invalid State\n");
         return OMX_ErrorInvalidState;
     }
-    if(paramData == NULL)
-    {
+
+    if (paramData == NULL) {
         DEBUG_PRINT_ERROR("\n Get Param in Invalid paramData");
         return OMX_ErrorBadParameter;
     }
-  switch(paramIndex)
-  {
-    case OMX_IndexParamPortDefinition:
-    {
-      OMX_PARAM_PORTDEFINITIONTYPE *portDefn =
-                            (OMX_PARAM_PORTDEFINITIONTYPE *) paramData;
-      eRet = update_portdef(portDefn);
-      if (eRet == OMX_ErrorNone)
-          m_port_def = *portDefn;
-      DEBUG_PRINT_HIGH("Get_parameter: OMX_IndexParamPortDefinition: "
-        "nPortIndex (%d), nFrameWidth (%d), nFrameHeight (%d), "
-        "nStride (%d), nSliceHeight (%d), nBitrate (%d), xFramerate (0x%x), "
-        "nBufferSize (%d), nBufferCountMin (%d), nBufferCountActual (%d), "
-        "bBuffersContiguous (%d), nBufferAlignment (%d), "
-        "bEnabled (%d), bPopulated (%d), eCompressionFormat (0x%x), "
-        "eColorFormat (0x%x)" , (int)portDefn->nPortIndex,
-        (int)portDefn->format.video.nFrameWidth, (int)portDefn->format.video.nFrameHeight,
-        (int)portDefn->format.video.nStride, (int)portDefn->format.video.nSliceHeight,
-        (int)portDefn->format.video.nBitrate, (int)portDefn->format.video.xFramerate,
-        (int)portDefn->nBufferSize, (int)portDefn->nBufferCountMin,
-        (int)portDefn->nBufferCountActual, (int)portDefn->bBuffersContiguous,
-        (int)portDefn->nBufferAlignment, (int)portDefn->bEnabled, (int)portDefn->bPopulated,
-        (int)portDefn->format.video.eCompressionFormat, (int)portDefn->format.video.eColorFormat);
-      break;
-    }
-    case OMX_IndexParamVideoInit:
-    {
-      OMX_PORT_PARAM_TYPE *portParamType =
-                              (OMX_PORT_PARAM_TYPE *) paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoInit\n");
 
-      portParamType->nVersion.nVersion = OMX_SPEC_VERSION;
-      portParamType->nSize = sizeof(portParamType);
-      portParamType->nPorts           = 2;
-      portParamType->nStartPortNumber = 0;
-      break;
-    }
-    case OMX_IndexParamVideoPortFormat:
-    {
-      OMX_VIDEO_PARAM_PORTFORMATTYPE *portFmt =
-                     (OMX_VIDEO_PARAM_PORTFORMATTYPE *)paramData;
-      portFmt->nVersion.nVersion = OMX_SPEC_VERSION;
-      portFmt->nSize             = sizeof(portFmt);
+    switch (paramIndex) {
+        case OMX_IndexParamPortDefinition:
+            {
+                OMX_PARAM_PORTDEFINITIONTYPE *portDefn =
+                    (OMX_PARAM_PORTDEFINITIONTYPE *) paramData;
+                eRet = update_portdef(portDefn);
 
-      if (0 == portFmt->nPortIndex)
-      {
-        if (0 == portFmt->nIndex)
-        {
-              portFmt->eColorFormat =  OMX_COLOR_FormatUnused;
-              portFmt->eCompressionFormat = eCompressionFormat;
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoPortFormat:"\
-              " NoMore compression formats\n");
-          eRet =  OMX_ErrorNoMore;
-        }
-      }
-      else if (1 == portFmt->nPortIndex)
-      {
-        portFmt->eCompressionFormat =  OMX_VIDEO_CodingUnused;
-        if(0 == portFmt->nIndex)
-          portFmt->eColorFormat = (OMX_COLOR_FORMATTYPE)
-            QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka;
-        else if (1 == portFmt->nIndex)
-        {
-          portFmt->eColorFormat = OMX_COLOR_FormatYUV420Planar;
-        }
-        else
-        {
-           DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoPortFormat:"\
-                  " NoMore Color formats\n");
-           eRet =  OMX_ErrorNoMore;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("get_parameter: Bad port index %d\n",
-                          (int)portFmt->nPortIndex);
-        eRet = OMX_ErrorBadPortIndex;
-      }
-      DEBUG_PRINT_HIGH("Get_parameter: OMX_IndexParamVideoPortFormat: "
-          "nPortIndex (%d), nIndex (%d), eCompressionFormat (0x%x), "
-          "eColorFormat (0x%x), xFramerate (0x%x)", (int)portFmt->nPortIndex,
-          (int)portFmt->nIndex, (int)portFmt->eCompressionFormat,
-          (int)portFmt->eColorFormat, (int)portFmt->xFramerate);
-      break;
-    }
-    /*Component should support this port definition*/
-    case OMX_IndexParamAudioInit:
-    {
-        OMX_PORT_PARAM_TYPE *audioPortParamType =
-                                              (OMX_PORT_PARAM_TYPE *) paramData;
-        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamAudioInit\n");
-        audioPortParamType->nVersion.nVersion = OMX_SPEC_VERSION;
-        audioPortParamType->nSize = sizeof(audioPortParamType);
-        audioPortParamType->nPorts           = 0;
-        audioPortParamType->nStartPortNumber = 0;
-        break;
-    }
-    /*Component should support this port definition*/
-    case OMX_IndexParamImageInit:
-    {
-        OMX_PORT_PARAM_TYPE *imagePortParamType =
-                                              (OMX_PORT_PARAM_TYPE *) paramData;
-        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamImageInit\n");
-        imagePortParamType->nVersion.nVersion = OMX_SPEC_VERSION;
-        imagePortParamType->nSize = sizeof(imagePortParamType);
-        imagePortParamType->nPorts           = 0;
-        imagePortParamType->nStartPortNumber = 0;
-        break;
+                if (eRet == OMX_ErrorNone)
+                    m_port_def = *portDefn;
 
-    }
-    /*Component should support this port definition*/
-    case OMX_IndexParamOtherInit:
-    {
-        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamOtherInit %08x\n",
-                          paramIndex);
-        eRet =OMX_ErrorUnsupportedIndex;
-        break;
-    }
-    case OMX_IndexParamStandardComponentRole:
-    {
-        OMX_PARAM_COMPONENTROLETYPE *comp_role;
-        comp_role = (OMX_PARAM_COMPONENTROLETYPE *) paramData;
-        comp_role->nVersion.nVersion = OMX_SPEC_VERSION;
-        comp_role->nSize = sizeof(*comp_role);
+                DEBUG_PRINT_HIGH("Get_parameter: OMX_IndexParamPortDefinition: "
+                        "nPortIndex (%d), nFrameWidth (%d), nFrameHeight (%d), "
+                        "nStride (%d), nSliceHeight (%d), nBitrate (%d), xFramerate (0x%x), "
+                        "nBufferSize (%d), nBufferCountMin (%d), nBufferCountActual (%d), "
+                        "bBuffersContiguous (%d), nBufferAlignment (%d), "
+                        "bEnabled (%d), bPopulated (%d), eCompressionFormat (0x%x), "
+                        "eColorFormat (0x%x)" , (int)portDefn->nPortIndex,
+                        (int)portDefn->format.video.nFrameWidth, (int)portDefn->format.video.nFrameHeight,
+                        (int)portDefn->format.video.nStride, (int)portDefn->format.video.nSliceHeight,
+                        (int)portDefn->format.video.nBitrate, (int)portDefn->format.video.xFramerate,
+                        (int)portDefn->nBufferSize, (int)portDefn->nBufferCountMin,
+                        (int)portDefn->nBufferCountActual, (int)portDefn->bBuffersContiguous,
+                        (int)portDefn->nBufferAlignment, (int)portDefn->bEnabled, (int)portDefn->bPopulated,
+                        (int)portDefn->format.video.eCompressionFormat, (int)portDefn->format.video.eColorFormat);
+                break;
+            }
+        case OMX_IndexParamVideoInit:
+            {
+                OMX_PORT_PARAM_TYPE *portParamType =
+                    (OMX_PORT_PARAM_TYPE *) paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoInit\n");
 
-        DEBUG_PRINT_LOW("Getparameter: OMX_IndexParamStandardComponentRole %d\n",
-                    paramIndex);
-        strlcpy((char*)comp_role->cRole,(const char*)m_cRole,
-                    OMX_MAX_STRINGNAME_SIZE);
-        break;
-    }
-    /* Added for parameter test */
-    case OMX_IndexParamPriorityMgmt:
-        {
+                portParamType->nVersion.nVersion = OMX_SPEC_VERSION;
+                portParamType->nSize = sizeof(portParamType);
+                portParamType->nPorts           = 2;
+                portParamType->nStartPortNumber = 0;
+                break;
+            }
+        case OMX_IndexParamVideoPortFormat:
+            {
+                OMX_VIDEO_PARAM_PORTFORMATTYPE *portFmt =
+                    (OMX_VIDEO_PARAM_PORTFORMATTYPE *)paramData;
+                portFmt->nVersion.nVersion = OMX_SPEC_VERSION;
+                portFmt->nSize             = sizeof(portFmt);
 
-            OMX_PRIORITYMGMTTYPE *priorityMgmType =
-                                             (OMX_PRIORITYMGMTTYPE *) paramData;
-            DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamPriorityMgmt\n");
-            priorityMgmType->nVersion.nVersion = OMX_SPEC_VERSION;
-            priorityMgmType->nSize = sizeof(priorityMgmType);
+                if (0 == portFmt->nPortIndex) {
+                    if (0 == portFmt->nIndex) {
+                        portFmt->eColorFormat =  OMX_COLOR_FormatUnused;
+                        portFmt->eCompressionFormat = eCompressionFormat;
+                    } else {
+                        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoPortFormat:"\
+                                " NoMore compression formats\n");
+                        eRet =  OMX_ErrorNoMore;
+                    }
+                } else if (1 == portFmt->nPortIndex) {
+                    portFmt->eCompressionFormat =  OMX_VIDEO_CodingUnused;
 
-            break;
-        }
-    /* Added for parameter test */
-    case OMX_IndexParamCompBufferSupplier:
-        {
-            OMX_PARAM_BUFFERSUPPLIERTYPE *bufferSupplierType =
-                                     (OMX_PARAM_BUFFERSUPPLIERTYPE*) paramData;
-            DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamCompBufferSupplier\n");
+                    if (0 == portFmt->nIndex)
+                        portFmt->eColorFormat = (OMX_COLOR_FORMATTYPE)
+                            QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka;
+                    else if (1 == portFmt->nIndex) {
+                        portFmt->eColorFormat = OMX_COLOR_FormatYUV420Planar;
+                    } else {
+                        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoPortFormat:"\
+                                " NoMore Color formats\n");
+                        eRet =  OMX_ErrorNoMore;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("get_parameter: Bad port index %d\n",
+                            (int)portFmt->nPortIndex);
+                    eRet = OMX_ErrorBadPortIndex;
+                }
 
-            bufferSupplierType->nSize = sizeof(bufferSupplierType);
-            bufferSupplierType->nVersion.nVersion = OMX_SPEC_VERSION;
-            if(0 == bufferSupplierType->nPortIndex)
-                bufferSupplierType->nPortIndex = OMX_BufferSupplyUnspecified;
-            else if (1 == bufferSupplierType->nPortIndex)
-                bufferSupplierType->nPortIndex = OMX_BufferSupplyUnspecified;
-            else
-                eRet = OMX_ErrorBadPortIndex;
+                DEBUG_PRINT_HIGH("Get_parameter: OMX_IndexParamVideoPortFormat: "
+                        "nPortIndex (%d), nIndex (%d), eCompressionFormat (0x%x), "
+                        "eColorFormat (0x%x), xFramerate (0x%x)", (int)portFmt->nPortIndex,
+                        (int)portFmt->nIndex, (int)portFmt->eCompressionFormat,
+                        (int)portFmt->eColorFormat, (int)portFmt->xFramerate);
+                break;
+            }
+            /*Component should support this port definition*/
+        case OMX_IndexParamAudioInit:
+            {
+                OMX_PORT_PARAM_TYPE *audioPortParamType =
+                    (OMX_PORT_PARAM_TYPE *) paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamAudioInit\n");
+                audioPortParamType->nVersion.nVersion = OMX_SPEC_VERSION;
+                audioPortParamType->nSize = sizeof(audioPortParamType);
+                audioPortParamType->nPorts           = 0;
+                audioPortParamType->nStartPortNumber = 0;
+                break;
+            }
+            /*Component should support this port definition*/
+        case OMX_IndexParamImageInit:
+            {
+                OMX_PORT_PARAM_TYPE *imagePortParamType =
+                    (OMX_PORT_PARAM_TYPE *) paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamImageInit\n");
+                imagePortParamType->nVersion.nVersion = OMX_SPEC_VERSION;
+                imagePortParamType->nSize = sizeof(imagePortParamType);
+                imagePortParamType->nPorts           = 0;
+                imagePortParamType->nStartPortNumber = 0;
+                break;
 
-
-            break;
-        }
-    case OMX_IndexParamVideoAvc:
-        {
-            DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoAvc %08x\n",
+            }
+            /*Component should support this port definition*/
+        case OMX_IndexParamOtherInit:
+            {
+                DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamOtherInit %08x\n",
                         paramIndex);
-            break;
-        }
-    case OMX_IndexParamVideoH263:
-        {
-            DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoH263 %08x\n",
+                eRet =OMX_ErrorUnsupportedIndex;
+                break;
+            }
+        case OMX_IndexParamStandardComponentRole:
+            {
+                OMX_PARAM_COMPONENTROLETYPE *comp_role;
+                comp_role = (OMX_PARAM_COMPONENTROLETYPE *) paramData;
+                comp_role->nVersion.nVersion = OMX_SPEC_VERSION;
+                comp_role->nSize = sizeof(*comp_role);
+
+                DEBUG_PRINT_LOW("Getparameter: OMX_IndexParamStandardComponentRole %d\n",
                         paramIndex);
-            break;
-        }
-    case OMX_IndexParamVideoMpeg4:
-        {
-            DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoMpeg4 %08x\n",
+                strlcpy((char*)comp_role->cRole,(const char*)m_cRole,
+                        OMX_MAX_STRINGNAME_SIZE);
+                break;
+            }
+            /* Added for parameter test */
+        case OMX_IndexParamPriorityMgmt:
+            {
+
+                OMX_PRIORITYMGMTTYPE *priorityMgmType =
+                    (OMX_PRIORITYMGMTTYPE *) paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamPriorityMgmt\n");
+                priorityMgmType->nVersion.nVersion = OMX_SPEC_VERSION;
+                priorityMgmType->nSize = sizeof(priorityMgmType);
+
+                break;
+            }
+            /* Added for parameter test */
+        case OMX_IndexParamCompBufferSupplier:
+            {
+                OMX_PARAM_BUFFERSUPPLIERTYPE *bufferSupplierType =
+                    (OMX_PARAM_BUFFERSUPPLIERTYPE*) paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamCompBufferSupplier\n");
+
+                bufferSupplierType->nSize = sizeof(bufferSupplierType);
+                bufferSupplierType->nVersion.nVersion = OMX_SPEC_VERSION;
+
+                if (0 == bufferSupplierType->nPortIndex)
+                    bufferSupplierType->nPortIndex = OMX_BufferSupplyUnspecified;
+                else if (1 == bufferSupplierType->nPortIndex)
+                    bufferSupplierType->nPortIndex = OMX_BufferSupplyUnspecified;
+                else
+                    eRet = OMX_ErrorBadPortIndex;
+
+
+                break;
+            }
+        case OMX_IndexParamVideoAvc:
+            {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoAvc %08x\n",
                         paramIndex);
-            break;
-        }
-    case OMX_IndexParamVideoMpeg2:
-        {
-          DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoMpeg2 %08x\n",
-              paramIndex);
-          break;
-        }
-    case OMX_IndexParamVideoProfileLevelQuerySupported:
-        {
-          DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported %08x\n", paramIndex);
-          OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType =
-            (OMX_VIDEO_PARAM_PROFILELEVELTYPE *)paramData;
+                break;
+            }
+        case OMX_IndexParamVideoH263:
+            {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoH263 %08x\n",
+                        paramIndex);
+                break;
+            }
+        case OMX_IndexParamVideoMpeg4:
+            {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoMpeg4 %08x\n",
+                        paramIndex);
+                break;
+            }
+        case OMX_IndexParamVideoMpeg2:
+            {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoMpeg2 %08x\n",
+                        paramIndex);
+                break;
+            }
+        case OMX_IndexParamVideoProfileLevelQuerySupported:
+            {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported %08x\n", paramIndex);
+                OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType =
+                    (OMX_VIDEO_PARAM_PROFILELEVELTYPE *)paramData;
 #ifdef MAX_RES_720P
-          eRet = get_supported_profile_level_for_720p(profileLevelType);
+                eRet = get_supported_profile_level_for_720p(profileLevelType);
 #endif
 #ifdef MAX_RES_1080P
-          eRet = get_supported_profile_level_for_1080p(profileLevelType);
+                eRet = get_supported_profile_level_for_1080p(profileLevelType);
 #endif
-          break;
-        }
+                break;
+            }
 #if defined (_ANDROID_HONEYCOMB_) || defined (_ANDROID_ICS_)
-    case OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage:
-        {
-            DEBUG_PRINT_HIGH("get_parameter: OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage");
-            GetAndroidNativeBufferUsageParams* nativeBuffersUsage = (GetAndroidNativeBufferUsageParams *) paramData;
-            if(nativeBuffersUsage->nPortIndex == OMX_CORE_OUTPUT_PORT_INDEX) {
+        case OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage:
+            {
+                DEBUG_PRINT_HIGH("get_parameter: OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage");
+                GetAndroidNativeBufferUsageParams* nativeBuffersUsage = (GetAndroidNativeBufferUsageParams *) paramData;
+
+                if (nativeBuffersUsage->nPortIndex == OMX_CORE_OUTPUT_PORT_INDEX) {
 #ifdef USE_ION
 #if defined (MAX_RES_720P)
-                nativeBuffersUsage->nUsage = (GRALLOC_USAGE_PRIVATE_CAMERA_HEAP | GRALLOC_USAGE_PRIVATE_UNCACHED);
-                DEBUG_PRINT_HIGH("ION:720P: nUsage 0x%x",nativeBuffersUsage->nUsage);
+                    nativeBuffersUsage->nUsage = (GRALLOC_USAGE_PRIVATE_CAMERA_HEAP | GRALLOC_USAGE_PRIVATE_UNCACHED);
+                    DEBUG_PRINT_HIGH("ION:720P: nUsage 0x%x",nativeBuffersUsage->nUsage);
 #else
-                if(secure_mode) {
+
+                    if (secure_mode) {
                         nativeBuffersUsage->nUsage = (GRALLOC_USAGE_PRIVATE_MM_HEAP | GRALLOC_USAGE_PROTECTED |
-                                                      GRALLOC_USAGE_PRIVATE_UNCACHED);
+                                GRALLOC_USAGE_PRIVATE_UNCACHED);
                         DEBUG_PRINT_HIGH("ION:secure_mode: nUsage 0x%x",nativeBuffersUsage->nUsage);
-                } else {
+                    } else {
                         nativeBuffersUsage->nUsage = (GRALLOC_USAGE_PRIVATE_MM_HEAP |
-                                                         GRALLOC_USAGE_PRIVATE_IOMMU_HEAP);
+                                GRALLOC_USAGE_PRIVATE_IOMMU_HEAP);
                         DEBUG_PRINT_HIGH("ION:non_secure_mode: nUsage 0x%x",nativeBuffersUsage->nUsage);
-                }
+                    }
+
 #endif //(MAX_RES_720P)
 #else // USE_ION
 #if defined (MAX_RES_720P) ||  defined (MAX_RES_1080P_EBI)
-                nativeBuffersUsage->nUsage = (GRALLOC_USAGE_PRIVATE_ADSP_HEAP | GRALLOC_USAGE_PRIVATE_UNCACHED);
-                DEBUG_PRINT_HIGH("720P/1080P_EBI: nUsage 0x%x",nativeBuffersUsage->nUsage);
+                    nativeBuffersUsage->nUsage = (GRALLOC_USAGE_PRIVATE_ADSP_HEAP | GRALLOC_USAGE_PRIVATE_UNCACHED);
+                    DEBUG_PRINT_HIGH("720P/1080P_EBI: nUsage 0x%x",nativeBuffersUsage->nUsage);
 #elif MAX_RES_1080P
-                nativeBuffersUsage->nUsage = (GRALLOC_USAGE_PRIVATE_SMI_HEAP | GRALLOC_USAGE_PRIVATE_UNCACHED);
-                DEBUG_PRINT_HIGH("1080P: nUsage 0x%x",nativeBuffersUsage->nUsage);
+                    nativeBuffersUsage->nUsage = (GRALLOC_USAGE_PRIVATE_SMI_HEAP | GRALLOC_USAGE_PRIVATE_UNCACHED);
+                    DEBUG_PRINT_HIGH("1080P: nUsage 0x%x",nativeBuffersUsage->nUsage);
 #endif
 #endif // USE_ION
-            } else {
-                DEBUG_PRINT_ERROR("\n get_parameter: OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage failed!");
-                eRet = OMX_ErrorBadParameter;
+                } else {
+                    DEBUG_PRINT_ERROR("\n get_parameter: OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage failed!");
+                    eRet = OMX_ErrorBadParameter;
+                }
             }
-        }
-        break;
+            break;
 #endif
 
-    default:
-    {
-      DEBUG_PRINT_ERROR("get_parameter: unknown param %08x\n", paramIndex);
-      eRet =OMX_ErrorUnsupportedIndex;
+        default:
+            {
+                DEBUG_PRINT_ERROR("get_parameter: unknown param %08x\n", paramIndex);
+                eRet =OMX_ErrorUnsupportedIndex;
+            }
+
     }
 
-  }
+    DEBUG_PRINT_LOW("get_parameter returning WxH(%d x %d) SxSH(%d x %d)",
+            drv_ctx.video_resolution.frame_width,
+            drv_ctx.video_resolution.frame_height,
+            drv_ctx.video_resolution.stride,
+            drv_ctx.video_resolution.scan_lines);
 
-  DEBUG_PRINT_LOW("get_parameter returning WxH(%d x %d) SxSH(%d x %d)",
-      drv_ctx.video_resolution.frame_width,
-      drv_ctx.video_resolution.frame_height,
-      drv_ctx.video_resolution.stride,
-      drv_ctx.video_resolution.scan_lines);
-
-  return eRet;
+    return eRet;
 }
 
 #if defined (_ANDROID_HONEYCOMB_) || defined (_ANDROID_ICS_)
@@ -3009,1583 +2823,1546 @@
     OMX_ERRORTYPE eRet = OMX_ErrorNone;
     UseAndroidNativeBufferParams *params = (UseAndroidNativeBufferParams *)data;
 
-    if((params == NULL) ||
-      (params->nativeBuffer == NULL) ||
-      (params->nativeBuffer->handle == NULL) ||
-      !m_enable_android_native_buffers)
+    if ((params == NULL) ||
+            (params->nativeBuffer == NULL) ||
+            (params->nativeBuffer->handle == NULL) ||
+            !m_enable_android_native_buffers)
         return OMX_ErrorBadParameter;
+
     m_use_android_native_buffers = OMX_TRUE;
     sp<android_native_buffer_t> nBuf = params->nativeBuffer;
     private_handle_t *handle = (private_handle_t *)nBuf->handle;
 
     if ((OMX_U32)handle->size < drv_ctx.op_buf.buffer_size) {
         DEBUG_PRINT_ERROR("Insufficient sized buffer given for playback,"
-                          " expected %u, got %lu",
-                          drv_ctx.op_buf.buffer_size, (OMX_U32)handle->size);
+                " expected %u, got %lu",
+                drv_ctx.op_buf.buffer_size, (OMX_U32)handle->size);
         return OMX_ErrorBadParameter;
     }
 
-    if(OMX_CORE_OUTPUT_PORT_INDEX == params->nPortIndex) {  //android native buffers can be used only on Output port
+    if (OMX_CORE_OUTPUT_PORT_INDEX == params->nPortIndex) { //android native buffers can be used only on Output port
         OMX_U8 *buffer = NULL;
-        if(!secure_mode) {
-                buffer = (OMX_U8*)mmap(0, handle->size,
+
+        if (!secure_mode) {
+            buffer = (OMX_U8*)mmap(0, handle->size,
                     PROT_READ|PROT_WRITE, MAP_SHARED, handle->fd, 0);
-                if(buffer == MAP_FAILED) {
-                    DEBUG_PRINT_ERROR("Failed to mmap pmem with fd = %d, size = %d", handle->fd, handle->size);
-                    return OMX_ErrorInsufficientResources;
+
+            if (buffer == MAP_FAILED) {
+                DEBUG_PRINT_ERROR("Failed to mmap pmem with fd = %d, size = %d", handle->fd, handle->size);
+                return OMX_ErrorInsufficientResources;
             }
         }
+
         eRet = use_buffer(hComp,params->bufferHeader,params->nPortIndex,data,handle->size,buffer);
     } else {
         eRet = OMX_ErrorBadParameter;
     }
+
     return eRet;
 }
 #endif
 /* ======================================================================
-FUNCTION
-  omx_vdec::Setparameter
+   FUNCTION
+   omx_vdec::Setparameter
 
-DESCRIPTION
-  OMX Set Parameter method implementation.
+   DESCRIPTION
+   OMX Set Parameter method implementation.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if successful.
+   RETURN VALUE
+   OMX Error None if successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::set_parameter(OMX_IN OMX_HANDLETYPE     hComp,
-                                           OMX_IN OMX_INDEXTYPE paramIndex,
-                                           OMX_IN OMX_PTR        paramData)
+        OMX_IN OMX_INDEXTYPE paramIndex,
+        OMX_IN OMX_PTR        paramData)
 {
     OMX_ERRORTYPE eRet = OMX_ErrorNone;
     struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
 
-    if(m_state == OMX_StateInvalid)
-    {
+    if (m_state == OMX_StateInvalid) {
         DEBUG_PRINT_ERROR("Set Param in Invalid State\n");
         return OMX_ErrorInvalidState;
     }
-    if(paramData == NULL)
-    {
-         DEBUG_PRINT_ERROR("Get Param in Invalid paramData \n");
-         return OMX_ErrorBadParameter;
+
+    if (paramData == NULL) {
+        DEBUG_PRINT_ERROR("Get Param in Invalid paramData \n");
+        return OMX_ErrorBadParameter;
     }
-    if((m_state != OMX_StateLoaded) &&
-          BITMASK_ABSENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING) &&
-          (m_out_bEnabled == OMX_TRUE) &&
-          BITMASK_ABSENT(&m_flags, OMX_COMPONENT_INPUT_ENABLE_PENDING) &&
-          (m_inp_bEnabled == OMX_TRUE)) {
+
+    if ((m_state != OMX_StateLoaded) &&
+            BITMASK_ABSENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING) &&
+            (m_out_bEnabled == OMX_TRUE) &&
+            BITMASK_ABSENT(&m_flags, OMX_COMPONENT_INPUT_ENABLE_PENDING) &&
+            (m_inp_bEnabled == OMX_TRUE)) {
         DEBUG_PRINT_ERROR("Set Param in Invalid State \n");
         return OMX_ErrorIncorrectStateOperation;
     }
 
-  switch(paramIndex)
-  {
-    case OMX_IndexParamPortDefinition:
-    {
-      OMX_PARAM_PORTDEFINITIONTYPE *portDefn;
-      portDefn = (OMX_PARAM_PORTDEFINITIONTYPE *) paramData;
-      //TODO: Check if any allocate buffer/use buffer/useNativeBuffer has
-      //been called.
-      DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPortDefinition H= %d, W = %d",
-             (int)portDefn->format.video.nFrameHeight,
-             (int)portDefn->format.video.nFrameWidth);
-      if(OMX_DirOutput == portDefn->eDir)
-      {
-          DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPortDefinition OP port");
-          m_display_id = portDefn->format.video.pNativeWindow;
-          unsigned int buffer_size;
-          if (!client_buffers.get_buffer_req(buffer_size)) {
-            DEBUG_PRINT_ERROR("\n Error in getting buffer requirements");
-            eRet = OMX_ErrorBadParameter;
-          } else {
-            if ( portDefn->nBufferCountActual >= drv_ctx.op_buf.mincount &&
-                 portDefn->nBufferSize >=  buffer_size)
-              {
-                drv_ctx.op_buf.actualcount = portDefn->nBufferCountActual;
-                drv_ctx.op_buf.buffer_size = portDefn->nBufferSize;
-                eRet = set_buffer_req(&drv_ctx.op_buf);
-                if (eRet == OMX_ErrorNone)
-                    m_port_def = *portDefn;
-            }
-            else
+    switch (paramIndex) {
+        case OMX_IndexParamPortDefinition:
             {
-                DEBUG_PRINT_HIGH("ERROR: OP Requirements(#%d: %u) Requested(#%d: %u)\n",
-                  drv_ctx.op_buf.mincount, drv_ctx.op_buf.buffer_size,
-                  portDefn->nBufferCountActual, portDefn->nBufferSize);
-                eRet = OMX_ErrorBadParameter;
-            }
-          }
-      }
-      else if(OMX_DirInput == portDefn->eDir)
-      {
-        if((portDefn->format.video.xFramerate >> 16) > 0 &&
-           (portDefn->format.video.xFramerate >> 16) <= MAX_SUPPORTED_FPS)
-        {
-            // Frame rate only should be set if this is a "known value" or to
-            // activate ts prediction logic (arbitrary mode only) sending input
-            // timestamps with max value (LLONG_MAX).
-            DEBUG_PRINT_LOW("set_parameter: frame rate set by omx client : %d",
-                             portDefn->format.video.xFramerate >> 16);
-            Q16ToFraction(portDefn->format.video.xFramerate, drv_ctx.frame_rate.fps_numerator,
-                          drv_ctx.frame_rate.fps_denominator);
-            if(!drv_ctx.frame_rate.fps_numerator)
-            {
-              DEBUG_PRINT_ERROR("Numerator is zero setting to 30");
-              drv_ctx.frame_rate.fps_numerator = 30;
-            }
-            if(drv_ctx.frame_rate.fps_denominator)
-              drv_ctx.frame_rate.fps_numerator = (int)
-                  drv_ctx.frame_rate.fps_numerator / drv_ctx.frame_rate.fps_denominator;
-              drv_ctx.frame_rate.fps_denominator = 1;
-            frm_int = drv_ctx.frame_rate.fps_denominator * 1e6 /
-                      drv_ctx.frame_rate.fps_numerator;
-            ioctl_msg.in = &drv_ctx.frame_rate;
-            if (ioctl (drv_ctx.video_driver_fd, VDEC_IOCTL_SET_FRAME_RATE,
-                       (void*)&ioctl_msg) < 0)
-            {
-              DEBUG_PRINT_ERROR("Setting frame rate to driver failed");
-            }
-            DEBUG_PRINT_LOW("set_parameter: frm_int(%u) fps(%.2f)",
-                             frm_int, drv_ctx.frame_rate.fps_numerator /
-                             (float)drv_ctx.frame_rate.fps_denominator);
-        }
-         DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPortDefinition IP port");
-         if(drv_ctx.video_resolution.frame_height !=
-               portDefn->format.video.nFrameHeight ||
-             drv_ctx.video_resolution.frame_width  !=
-               portDefn->format.video.nFrameWidth)
-         {
-             DEBUG_PRINT_LOW("SetParam IP: WxH(%d x %d)",
-                           portDefn->format.video.nFrameWidth,
-                           portDefn->format.video.nFrameHeight);
-             if (portDefn->format.video.nFrameHeight != 0x0 &&
-                 portDefn->format.video.nFrameWidth != 0x0)
-             {
-               drv_ctx.video_resolution.frame_height =
-                 drv_ctx.video_resolution.scan_lines =
-                 portDefn->format.video.nFrameHeight;
-               drv_ctx.video_resolution.frame_width =
-                 drv_ctx.video_resolution.stride =
-                 portDefn->format.video.nFrameWidth;
-               ioctl_msg.in = &drv_ctx.video_resolution;
-               ioctl_msg.out = NULL;
-               if (ioctl (drv_ctx.video_driver_fd, VDEC_IOCTL_SET_PICRES,
-                            (void*)&ioctl_msg) < 0)
-               {
-                   DEBUG_PRINT_ERROR("\n Set Resolution failed");
-                   eRet = OMX_ErrorUnsupportedSetting;
-               }
-               else
-                   eRet = get_buffer_req(&drv_ctx.op_buf);
-             }
-         }
-         else if (portDefn->nBufferCountActual >= drv_ctx.ip_buf.mincount
-                  && portDefn->nBufferSize == (drv_ctx.ip_buf.buffer_size - DEVICE_SCRATCH))
-         {
-             drv_ctx.ip_buf.actualcount = portDefn->nBufferCountActual;
-             drv_ctx.ip_buf.buffer_size = portDefn->nBufferSize + DEVICE_SCRATCH;
-             eRet = set_buffer_req(&drv_ctx.ip_buf);
-         }
-         else
-         {
-             DEBUG_PRINT_ERROR("ERROR: IP Requirements(#%d: %u) Requested(#%d: %u)\n",
-               drv_ctx.ip_buf.mincount, drv_ctx.ip_buf.buffer_size,
-               portDefn->nBufferCountActual, portDefn->nBufferSize);
-             eRet = OMX_ErrorBadParameter;
-         }
-      }
-      else if (portDefn->eDir ==  OMX_DirMax)
-      {
-          DEBUG_PRINT_ERROR(" Set_parameter: Bad Port idx %d",
-                      (int)portDefn->nPortIndex);
-          eRet = OMX_ErrorBadPortIndex;
-      }
-      DEBUG_PRINT_HIGH("Set_parameter: OMX_IndexParamPortDefinition: "
-        "nPortIndex (%d), nFrameWidth (%d), nFrameHeight (%d), "
-        "nStride (%d), nSliceHeight (%d), nBitrate (%d), xFramerate (0x%x), "
-        "nBufferSize (%d), nBufferCountMin (%d), nBufferCountActual (%d), "
-        "bBuffersContiguous (%d), nBufferAlignment (%d), "
-        "bEnabled (%d), bPopulated (%d), eCompressionFormat (0x%x), "
-        "eColorFormat (0x%x)" , (int)portDefn->nPortIndex,
-        (int)portDefn->format.video.nFrameWidth, (int)portDefn->format.video.nFrameHeight,
-        (int)portDefn->format.video.nStride, (int)portDefn->format.video.nSliceHeight,
-        (int)portDefn->format.video.nBitrate, (int)portDefn->format.video.xFramerate,
-        (int)portDefn->nBufferSize, (int)portDefn->nBufferCountMin,
-        (int)portDefn->nBufferCountActual, (int)portDefn->bBuffersContiguous,
-        (int)portDefn->nBufferAlignment, (int)portDefn->bEnabled, (int)portDefn->bPopulated,
-        (int)portDefn->format.video.eCompressionFormat, (int)portDefn->format.video.eColorFormat);
-    }
-    break;
-    case OMX_IndexParamVideoPortFormat:
-    {
-      OMX_VIDEO_PARAM_PORTFORMATTYPE *portFmt =
-                     (OMX_VIDEO_PARAM_PORTFORMATTYPE *)paramData;
-      if(1 == portFmt->nPortIndex)
-      {
-         enum vdec_output_fromat op_format;
-         if(portFmt->eColorFormat == OMX_COLOR_FormatYUV420SemiPlanar)
-           op_format = VDEC_YUV_FORMAT_NV12;
-         else if(portFmt->eColorFormat ==
-           QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka ||
-            portFmt->eColorFormat == OMX_COLOR_FormatYUV420Planar)
-           op_format = VDEC_YUV_FORMAT_TILE_4x2;
-         else
-           eRet = OMX_ErrorBadParameter;
+                OMX_PARAM_PORTDEFINITIONTYPE *portDefn;
+                portDefn = (OMX_PARAM_PORTDEFINITIONTYPE *) paramData;
+                //TODO: Check if any allocate buffer/use buffer/useNativeBuffer has
+                //been called.
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPortDefinition H= %d, W = %d",
+                        (int)portDefn->format.video.nFrameHeight,
+                        (int)portDefn->format.video.nFrameWidth);
 
-         if(eRet == OMX_ErrorNone && drv_ctx.output_format != op_format)
-         {
-           /*Set the output format*/
-           drv_ctx.output_format = op_format;
-           ioctl_msg.in = &drv_ctx.output_format;
-           ioctl_msg.out = NULL;
-           if (ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_SET_OUTPUT_FORMAT,
-                 (void*)&ioctl_msg) < 0)
-           {
-             DEBUG_PRINT_ERROR("\n Set output format failed");
-             eRet = OMX_ErrorUnsupportedSetting;
-           }
-           else {
-             eRet = get_buffer_req(&drv_ctx.op_buf);
-           }
-         }
-         if (eRet == OMX_ErrorNone){
-           if (!client_buffers.set_color_format(portFmt->eColorFormat)) {
-             DEBUG_PRINT_ERROR("\n Set color format failed");
-             eRet = OMX_ErrorBadParameter;
-           }
-         }
-       }
-       DEBUG_PRINT_HIGH("Set_parameter: OMX_IndexParamVideoPortFormat: "
-          "nPortIndex (%d), nIndex (%d), eCompressionFormat (0x%x), "
-          "eColorFormat (0x%x), xFramerate (0x%x)", (int)portFmt->nPortIndex,
-          (int)portFmt->nIndex, (int)portFmt->eCompressionFormat,
-          (int)portFmt->eColorFormat, (int)portFmt->xFramerate);
-    }
-    break;
+                if (OMX_DirOutput == portDefn->eDir) {
+                    DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPortDefinition OP port");
+                    m_display_id = portDefn->format.video.pNativeWindow;
+                    unsigned int buffer_size;
 
-    case OMX_QcomIndexPortDefn:
-    {
-        OMX_QCOM_PARAM_PORTDEFINITIONTYPE *portFmt =
-            (OMX_QCOM_PARAM_PORTDEFINITIONTYPE *) paramData;
-        DEBUG_PRINT_LOW("set_parameter: OMX_IndexQcomParamPortDefinitionType %d",
-            portFmt->nFramePackingFormat);
+                    if (!client_buffers.get_buffer_req(buffer_size)) {
+                        DEBUG_PRINT_ERROR("\n Error in getting buffer requirements");
+                        eRet = OMX_ErrorBadParameter;
+                    } else {
+                        if ( portDefn->nBufferCountActual >= drv_ctx.op_buf.mincount &&
+                                portDefn->nBufferSize >=  buffer_size) {
+                            drv_ctx.op_buf.actualcount = portDefn->nBufferCountActual;
+                            drv_ctx.op_buf.buffer_size = portDefn->nBufferSize;
+                            eRet = set_buffer_req(&drv_ctx.op_buf);
 
-        /* Input port */
-        if (portFmt->nPortIndex == 0)
-        {
-            if (portFmt->nFramePackingFormat == OMX_QCOM_FramePacking_Arbitrary)
-            {
-              if(secure_mode) {
-                arbitrary_bytes = false;
-                DEBUG_PRINT_ERROR("setparameter: cannot set to arbitary bytes mode in secure session");
-                eRet = OMX_ErrorUnsupportedSetting;
-              } else {
-               arbitrary_bytes = true;
-               DEBUG_PRINT_HIGH("setparameter: arbitrary_bytes enabled");
-              }
+                            if (eRet == OMX_ErrorNone)
+                                m_port_def = *portDefn;
+                        } else {
+                            DEBUG_PRINT_HIGH("ERROR: OP Requirements(#%d: %u) Requested(#%d: %u)\n",
+                                    drv_ctx.op_buf.mincount, drv_ctx.op_buf.buffer_size,
+                                    portDefn->nBufferCountActual, portDefn->nBufferSize);
+                            eRet = OMX_ErrorBadParameter;
+                        }
+                    }
+                } else if (OMX_DirInput == portDefn->eDir) {
+                    if ((portDefn->format.video.xFramerate >> 16) > 0 &&
+                            (portDefn->format.video.xFramerate >> 16) <= MAX_SUPPORTED_FPS) {
+                        // Frame rate only should be set if this is a "known value" or to
+                        // activate ts prediction logic (arbitrary mode only) sending input
+                        // timestamps with max value (LLONG_MAX).
+                        DEBUG_PRINT_LOW("set_parameter: frame rate set by omx client : %d",
+                                portDefn->format.video.xFramerate >> 16);
+                        Q16ToFraction(portDefn->format.video.xFramerate, drv_ctx.frame_rate.fps_numerator,
+                                drv_ctx.frame_rate.fps_denominator);
+
+                        if (!drv_ctx.frame_rate.fps_numerator) {
+                            DEBUG_PRINT_ERROR("Numerator is zero setting to 30");
+                            drv_ctx.frame_rate.fps_numerator = 30;
+                        }
+
+                        if (drv_ctx.frame_rate.fps_denominator)
+                            drv_ctx.frame_rate.fps_numerator = (int)
+                                drv_ctx.frame_rate.fps_numerator / drv_ctx.frame_rate.fps_denominator;
+
+                        drv_ctx.frame_rate.fps_denominator = 1;
+                        frm_int = drv_ctx.frame_rate.fps_denominator * 1e6 /
+                            drv_ctx.frame_rate.fps_numerator;
+                        ioctl_msg.in = &drv_ctx.frame_rate;
+
+                        if (ioctl (drv_ctx.video_driver_fd, VDEC_IOCTL_SET_FRAME_RATE,
+                                    (void*)&ioctl_msg) < 0) {
+                            DEBUG_PRINT_ERROR("Setting frame rate to driver failed");
+                        }
+
+                        DEBUG_PRINT_LOW("set_parameter: frm_int(%u) fps(%.2f)",
+                                frm_int, drv_ctx.frame_rate.fps_numerator /
+                                (float)drv_ctx.frame_rate.fps_denominator);
+                    }
+
+                    DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPortDefinition IP port");
+
+                    if (drv_ctx.video_resolution.frame_height !=
+                            portDefn->format.video.nFrameHeight ||
+                            drv_ctx.video_resolution.frame_width  !=
+                            portDefn->format.video.nFrameWidth) {
+                        DEBUG_PRINT_LOW("SetParam IP: WxH(%d x %d)",
+                                portDefn->format.video.nFrameWidth,
+                                portDefn->format.video.nFrameHeight);
+
+                        if (portDefn->format.video.nFrameHeight != 0x0 &&
+                                portDefn->format.video.nFrameWidth != 0x0) {
+                            drv_ctx.video_resolution.frame_height =
+                                drv_ctx.video_resolution.scan_lines =
+                                portDefn->format.video.nFrameHeight;
+                            drv_ctx.video_resolution.frame_width =
+                                drv_ctx.video_resolution.stride =
+                                portDefn->format.video.nFrameWidth;
+                            ioctl_msg.in = &drv_ctx.video_resolution;
+                            ioctl_msg.out = NULL;
+
+                            if (ioctl (drv_ctx.video_driver_fd, VDEC_IOCTL_SET_PICRES,
+                                        (void*)&ioctl_msg) < 0) {
+                                DEBUG_PRINT_ERROR("\n Set Resolution failed");
+                                eRet = OMX_ErrorUnsupportedSetting;
+                            } else
+                                eRet = get_buffer_req(&drv_ctx.op_buf);
+                        }
+                    } else if (portDefn->nBufferCountActual >= drv_ctx.ip_buf.mincount
+                            && portDefn->nBufferSize == (drv_ctx.ip_buf.buffer_size - DEVICE_SCRATCH)) {
+                        drv_ctx.ip_buf.actualcount = portDefn->nBufferCountActual;
+                        drv_ctx.ip_buf.buffer_size = portDefn->nBufferSize + DEVICE_SCRATCH;
+                        eRet = set_buffer_req(&drv_ctx.ip_buf);
+                    } else {
+                        DEBUG_PRINT_ERROR("ERROR: IP Requirements(#%d: %u) Requested(#%d: %u)\n",
+                                drv_ctx.ip_buf.mincount, drv_ctx.ip_buf.buffer_size,
+                                portDefn->nBufferCountActual, portDefn->nBufferSize);
+                        eRet = OMX_ErrorBadParameter;
+                    }
+                } else if (portDefn->eDir ==  OMX_DirMax) {
+                    DEBUG_PRINT_ERROR(" Set_parameter: Bad Port idx %d",
+                            (int)portDefn->nPortIndex);
+                    eRet = OMX_ErrorBadPortIndex;
+                }
+
+                DEBUG_PRINT_HIGH("Set_parameter: OMX_IndexParamPortDefinition: "
+                        "nPortIndex (%d), nFrameWidth (%d), nFrameHeight (%d), "
+                        "nStride (%d), nSliceHeight (%d), nBitrate (%d), xFramerate (0x%x), "
+                        "nBufferSize (%d), nBufferCountMin (%d), nBufferCountActual (%d), "
+                        "bBuffersContiguous (%d), nBufferAlignment (%d), "
+                        "bEnabled (%d), bPopulated (%d), eCompressionFormat (0x%x), "
+                        "eColorFormat (0x%x)" , (int)portDefn->nPortIndex,
+                        (int)portDefn->format.video.nFrameWidth, (int)portDefn->format.video.nFrameHeight,
+                        (int)portDefn->format.video.nStride, (int)portDefn->format.video.nSliceHeight,
+                        (int)portDefn->format.video.nBitrate, (int)portDefn->format.video.xFramerate,
+                        (int)portDefn->nBufferSize, (int)portDefn->nBufferCountMin,
+                        (int)portDefn->nBufferCountActual, (int)portDefn->bBuffersContiguous,
+                        (int)portDefn->nBufferAlignment, (int)portDefn->bEnabled, (int)portDefn->bPopulated,
+                        (int)portDefn->format.video.eCompressionFormat, (int)portDefn->format.video.eColorFormat);
             }
-            else if (portFmt->nFramePackingFormat ==
-                OMX_QCOM_FramePacking_OnlyOneCompleteFrame)
-            {
-               arbitrary_bytes = false;
-               DEBUG_PRINT_HIGH("setparameter: arbitrary_bytes disabled");
-            }
-            else
-            {
-                DEBUG_PRINT_ERROR("Setparameter: unknown FramePacking format %d\n",
-                    portFmt->nFramePackingFormat);
-                eRet = OMX_ErrorUnsupportedSetting;
-            }
-        }
-        else if (portFmt->nPortIndex == OMX_CORE_OUTPUT_PORT_INDEX)
-        {
-          DEBUG_PRINT_HIGH("set_parameter: OMX_IndexQcomParamPortDefinitionType OP Port");
-          if( (portFmt->nMemRegion > OMX_QCOM_MemRegionInvalid &&
-               portFmt->nMemRegion < OMX_QCOM_MemRegionMax) &&
-              portFmt->nCacheAttr == OMX_QCOM_CacheAttrNone)
-          {
-            m_out_mem_region_smi = OMX_TRUE;
-            if ((m_out_mem_region_smi && m_out_pvt_entry_pmem))
-            {
-              DEBUG_PRINT_HIGH("set_parameter: OMX_IndexQcomParamPortDefinitionType OP Port: set use_output_pmem");
-              m_use_output_pmem = OMX_TRUE;
-            }
-          }
-        }
-    }
-    break;
-
-     case OMX_IndexParamStandardComponentRole:
-     {
-          OMX_PARAM_COMPONENTROLETYPE *comp_role;
-          comp_role = (OMX_PARAM_COMPONENTROLETYPE *) paramData;
-          DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamStandardComponentRole %s",
-                       comp_role->cRole);
-
-          if((m_state == OMX_StateLoaded)&&
-              !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
-          {
-           DEBUG_PRINT_LOW("Set Parameter called in valid state");
-          }
-          else
-          {
-             DEBUG_PRINT_ERROR("Set Parameter called in Invalid State\n");
-             return OMX_ErrorIncorrectStateOperation;
-          }
-
-          if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE))
-          {
-              if(!strncmp((char*)comp_role->cRole,"video_decoder.avc",OMX_MAX_STRINGNAME_SIZE))
-              {
-                  strlcpy((char*)m_cRole,"video_decoder.avc",OMX_MAX_STRINGNAME_SIZE);
-              }
-              else
-              {
-                  DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-                  eRet =OMX_ErrorUnsupportedSetting;
-              }
-          }
-          else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE))
-          {
-              if(!strncmp((const char*)comp_role->cRole,"video_decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE))
-              {
-                  strlcpy((char*)m_cRole,"video_decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE);
-              }
-              else
-              {
-                  DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-                  eRet = OMX_ErrorUnsupportedSetting;
-              }
-          }
-          else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE))
-          {
-              if(!strncmp((const char*)comp_role->cRole,"video_decoder.h263",OMX_MAX_STRINGNAME_SIZE))
-              {
-                  strlcpy((char*)m_cRole,"video_decoder.h263",OMX_MAX_STRINGNAME_SIZE);
-              }
-              else
-              {
-                  DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-                  eRet =OMX_ErrorUnsupportedSetting;
-              }
-          }
-          else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE))
-          {
-            if(!strncmp((const char*)comp_role->cRole,"video_decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE))
-            {
-              strlcpy((char*)m_cRole,"video_decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE);
-            }
-            else
-            {
-              DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-              eRet = OMX_ErrorUnsupportedSetting;
-            }
-          }
-#ifdef MAX_RES_1080P
-          else if((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",OMX_MAX_STRINGNAME_SIZE)) ||
-                  (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx311",OMX_MAX_STRINGNAME_SIZE))
-                  )
-#else
-          else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",OMX_MAX_STRINGNAME_SIZE))
-#endif
-          {
-              if(!strncmp((const char*)comp_role->cRole,"video_decoder.divx",OMX_MAX_STRINGNAME_SIZE))
-              {
-                  strlcpy((char*)m_cRole,"video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
-              }
-              else
-              {
-                  DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-                  eRet =OMX_ErrorUnsupportedSetting;
-              }
-          }
-          else if ( (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1",OMX_MAX_STRINGNAME_SIZE)) ||
-                    (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.wmv",OMX_MAX_STRINGNAME_SIZE))
-                    )
-          {
-              if(!strncmp((const char*)comp_role->cRole,"video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE))
-              {
-                  strlcpy((char*)m_cRole,"video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
-              }
-              else
-              {
-                  DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-                  eRet =OMX_ErrorUnsupportedSetting;
-              }
-          }
-          else
-          {
-               DEBUG_PRINT_ERROR("Setparameter: unknown param %s\n", drv_ctx.kind);
-               eRet = OMX_ErrorInvalidComponentName;
-          }
-          break;
-     }
-
-    case OMX_IndexParamPriorityMgmt:
-        {
-            if(m_state != OMX_StateLoaded)
-            {
-               DEBUG_PRINT_ERROR("Set Parameter called in Invalid State\n");
-               return OMX_ErrorIncorrectStateOperation;
-            }
-            OMX_PRIORITYMGMTTYPE *priorityMgmtype = (OMX_PRIORITYMGMTTYPE*) paramData;
-            DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPriorityMgmt %d\n",
-              priorityMgmtype->nGroupID);
-
-            DEBUG_PRINT_LOW("set_parameter: priorityMgmtype %d\n",
-             priorityMgmtype->nGroupPriority);
-
-            m_priority_mgm.nGroupID = priorityMgmtype->nGroupID;
-            m_priority_mgm.nGroupPriority = priorityMgmtype->nGroupPriority;
-
             break;
-        }
-
-      case OMX_IndexParamCompBufferSupplier:
-      {
-          OMX_PARAM_BUFFERSUPPLIERTYPE *bufferSupplierType = (OMX_PARAM_BUFFERSUPPLIERTYPE*) paramData;
-            DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamCompBufferSupplier %d\n",
-                bufferSupplierType->eBufferSupplier);
-             if(bufferSupplierType->nPortIndex == 0 || bufferSupplierType->nPortIndex ==1)
-                m_buffer_supplier.eBufferSupplier = bufferSupplierType->eBufferSupplier;
-
-             else
-
-             eRet = OMX_ErrorBadPortIndex;
-
-          break;
-
-      }
-      case OMX_IndexParamVideoAvc:
-          {
-              DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoAvc %d\n",
-                    paramIndex);
-              break;
-          }
-      case OMX_IndexParamVideoH263:
-          {
-              DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoH263 %d\n",
-                    paramIndex);
-              break;
-          }
-      case OMX_IndexParamVideoMpeg4:
-          {
-              DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoMpeg4 %d\n",
-                    paramIndex);
-              break;
-          }
-      case OMX_IndexParamVideoMpeg2:
-          {
-              DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoMpeg2 %d\n",
-                    paramIndex);
-              break;
-          }
-       case OMX_QcomIndexParamVideoDecoderPictureOrder:
-          {
-              QOMX_VIDEO_DECODER_PICTURE_ORDER *pictureOrder =
-                  (QOMX_VIDEO_DECODER_PICTURE_ORDER *)paramData;
-              enum vdec_output_order pic_order = VDEC_ORDER_DISPLAY;
-              DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexParamVideoDecoderPictureOrder %d\n",
-                    pictureOrder->eOutputPictureOrder);
-              if (pictureOrder->eOutputPictureOrder == QOMX_VIDEO_DISPLAY_ORDER)
-                  pic_order = VDEC_ORDER_DISPLAY;
-              else if (pictureOrder->eOutputPictureOrder == QOMX_VIDEO_DECODE_ORDER){
-                  pic_order = VDEC_ORDER_DECODE;
-                  time_stamp_dts.set_timestamp_reorder_mode(false);
-              }
-              else
-                  eRet = OMX_ErrorBadParameter;
-#ifdef MAX_RES_720P
-              if (drv_ctx.idr_only_decoding)
-              {
-                  if (pictureOrder->eOutputPictureOrder != QOMX_VIDEO_DECODE_ORDER)
-                  {
-                      DEBUG_PRINT_HIGH("only decode order is supported for thumbnail mode");
-                      eRet = OMX_ErrorBadParameter;
-                  }
-              }
-#endif
-              if (eRet == OMX_ErrorNone && pic_order != drv_ctx.picture_order)
-              {
-                  drv_ctx.picture_order = pic_order;
-                  ioctl_msg.in = &drv_ctx.picture_order;
-                  ioctl_msg.out = NULL;
-                  if (ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_SET_PICTURE_ORDER,
-                      (void*)&ioctl_msg) < 0)
-                  {
-                      DEBUG_PRINT_ERROR("\n Set picture order failed");
-                      eRet = OMX_ErrorUnsupportedSetting;
-                  }
-              }
-              break;
-          }
-    case OMX_QcomIndexParamConcealMBMapExtraData:
-      {
-          eRet = enable_extradata(VDEC_EXTRADATA_MB_ERROR_MAP,
-                                  ((QOMX_ENABLETYPE *)paramData)->bEnable);
-      }
-      break;
-    case OMX_QcomIndexParamFrameInfoExtraData:
-      {
-            eRet = enable_extradata(OMX_FRAMEINFO_EXTRADATA,
-                                ((QOMX_ENABLETYPE *)paramData)->bEnable);
-        }
-       break;
-    case OMX_QcomIndexParamInterlaceExtraData:
-      {
-          eRet = enable_extradata(OMX_INTERLACE_EXTRADATA,
-                              ((QOMX_ENABLETYPE *)paramData)->bEnable);
-      }
-      break;
-    case OMX_QcomIndexParamH264TimeInfo:
-      {
-          eRet = enable_extradata(OMX_TIMEINFO_EXTRADATA,
-                              ((QOMX_ENABLETYPE *)paramData)->bEnable);
-      }
-      break;
-    case OMX_QcomIndexParamVideoDivx:
-      {
-#ifdef MAX_RES_720P
-        QOMX_VIDEO_PARAM_DIVXTYPE* divXType = (QOMX_VIDEO_PARAM_DIVXTYPE *) paramData;
-        if((divXType) && (divXType->eFormat == QOMX_VIDEO_DIVXFormat311)) {
-            DEBUG_PRINT_HIGH("set_parameter: DivX 3.11 not supported in 7x30 core.");
-            eRet = OMX_ErrorUnsupportedSetting;
-        }
-#endif
-      }
-      break;
-    case OMX_QcomIndexPlatformPvt:
-      {
-        DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexPlatformPvt OP Port");
-        OMX_QCOM_PLATFORMPRIVATE_EXTN* entryType = (OMX_QCOM_PLATFORMPRIVATE_EXTN *) paramData;
-        if (entryType->type != OMX_QCOM_PLATFORM_PRIVATE_PMEM)
-        {
-          DEBUG_PRINT_HIGH("set_parameter: Platform Private entry type (%d) not supported.", entryType->type);
-          eRet = OMX_ErrorUnsupportedSetting;
-        }
-        else
-        {
-          m_out_pvt_entry_pmem = OMX_TRUE;
-          if ((m_out_mem_region_smi && m_out_pvt_entry_pmem))
-          {
-            DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexPlatformPvt OP Port: use output pmem set");
-            m_use_output_pmem = OMX_TRUE;
-          }
-        }
-
-      }
-      break;
-    case OMX_QcomIndexParamVideoSyncFrameDecodingMode:
-      {
-          DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexParamVideoSyncFrameDecodingMode");
-          DEBUG_PRINT_HIGH("set idr only decoding for thumbnail mode");
-          drv_ctx.idr_only_decoding = 1;
-          int rc = ioctl(drv_ctx.video_driver_fd,
-                      VDEC_IOCTL_SET_IDR_ONLY_DECODING);
-          if(rc < 0) {
-              DEBUG_PRINT_ERROR("Failed to set IDR only decoding on driver.");
-              eRet = OMX_ErrorHardware;
-          }
-#ifdef MAX_RES_720P
-          if (eRet == OMX_ErrorNone)
-          {
-              DEBUG_PRINT_HIGH("set decode order for thumbnail mode");
-              drv_ctx.picture_order = VDEC_ORDER_DECODE;
-              ioctl_msg.in = &drv_ctx.picture_order;
-              ioctl_msg.out = NULL;
-              if (ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_SET_PICTURE_ORDER,
-                  (void*)&ioctl_msg) < 0)
-              {
-                  DEBUG_PRINT_ERROR("\n Set picture order failed");
-                  eRet = OMX_ErrorUnsupportedSetting;
-              }
-          }
-#endif
-      }
-      break;
-#ifdef MAX_RES_1080P
-    case OMX_QcomIndexParamIndexExtraDataType:
-      {
-        if(!secure_mode) {
-            QOMX_INDEXEXTRADATATYPE *extradataIndexType = (QOMX_INDEXEXTRADATATYPE *) paramData;
-            if ((extradataIndexType->nIndex == OMX_IndexParamPortDefinition) &&
-                   (extradataIndexType->bEnabled == OMX_TRUE) &&
-                   (extradataIndexType->nPortIndex == 1))
+        case OMX_IndexParamVideoPortFormat:
             {
-              DEBUG_PRINT_HIGH("set_parameter:  OMX_QcomIndexParamIndexExtraDataType SmoothStreaming");
-              eRet = enable_extradata(OMX_PORTDEF_EXTRADATA, extradataIndexType->bEnabled);
-              // Set smooth streaming parameter
-              int rc = ioctl(drv_ctx.video_driver_fd,
-                            VDEC_IOCTL_SET_CONT_ON_RECONFIG);
-              if(rc < 0) {
-                  DEBUG_PRINT_ERROR("Failed to enable Smooth Streaming on driver.");
-                  eRet = OMX_ErrorHardware;
-              }
+                OMX_VIDEO_PARAM_PORTFORMATTYPE *portFmt =
+                    (OMX_VIDEO_PARAM_PORTFORMATTYPE *)paramData;
+
+                if (1 == portFmt->nPortIndex) {
+                    enum vdec_output_fromat op_format;
+
+                    if (portFmt->eColorFormat == OMX_COLOR_FormatYUV420SemiPlanar)
+                        op_format = VDEC_YUV_FORMAT_NV12;
+                    else if (portFmt->eColorFormat ==
+                            QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka ||
+                            portFmt->eColorFormat == OMX_COLOR_FormatYUV420Planar)
+                        op_format = VDEC_YUV_FORMAT_TILE_4x2;
+                    else
+                        eRet = OMX_ErrorBadParameter;
+
+                    if (eRet == OMX_ErrorNone && drv_ctx.output_format != op_format) {
+                        /*Set the output format*/
+                        drv_ctx.output_format = op_format;
+                        ioctl_msg.in = &drv_ctx.output_format;
+                        ioctl_msg.out = NULL;
+
+                        if (ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_SET_OUTPUT_FORMAT,
+                                    (void*)&ioctl_msg) < 0) {
+                            DEBUG_PRINT_ERROR("\n Set output format failed");
+                            eRet = OMX_ErrorUnsupportedSetting;
+                        } else {
+                            eRet = get_buffer_req(&drv_ctx.op_buf);
+                        }
+                    }
+
+                    if (eRet == OMX_ErrorNone) {
+                        if (!client_buffers.set_color_format(portFmt->eColorFormat)) {
+                            DEBUG_PRINT_ERROR("\n Set color format failed");
+                            eRet = OMX_ErrorBadParameter;
+                        }
+                    }
+                }
+
+                DEBUG_PRINT_HIGH("Set_parameter: OMX_IndexParamVideoPortFormat: "
+                        "nPortIndex (%d), nIndex (%d), eCompressionFormat (0x%x), "
+                        "eColorFormat (0x%x), xFramerate (0x%x)", (int)portFmt->nPortIndex,
+                        (int)portFmt->nIndex, (int)portFmt->eCompressionFormat,
+                        (int)portFmt->eColorFormat, (int)portFmt->xFramerate);
             }
-         }
-       }
-      break;
+            break;
 
-    case OMX_QcomIndexParamEnableSmoothStreaming:
-      {
+        case OMX_QcomIndexPortDefn:
+            {
+                OMX_QCOM_PARAM_PORTDEFINITIONTYPE *portFmt =
+                    (OMX_QCOM_PARAM_PORTDEFINITIONTYPE *) paramData;
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexQcomParamPortDefinitionType %d",
+                        portFmt->nFramePackingFormat);
 
-        int rc = ioctl(drv_ctx.video_driver_fd,
-                      VDEC_IOCTL_SET_CONT_ON_RECONFIG);
-        if(rc < 0) {
-            DEBUG_PRINT_ERROR("Failed to enable Smooth Streaming on driver.");
-            eRet = OMX_ErrorHardware;
-        }
-      }
-     break;
+                /* Input port */
+                if (portFmt->nPortIndex == 0) {
+                    if (portFmt->nFramePackingFormat == OMX_QCOM_FramePacking_Arbitrary) {
+                        if (secure_mode) {
+                            arbitrary_bytes = false;
+                            DEBUG_PRINT_ERROR("setparameter: cannot set to arbitary bytes mode in secure session");
+                            eRet = OMX_ErrorUnsupportedSetting;
+                        } else {
+                            arbitrary_bytes = true;
+                            DEBUG_PRINT_HIGH("setparameter: arbitrary_bytes enabled");
+                        }
+                    } else if (portFmt->nFramePackingFormat ==
+                            OMX_QCOM_FramePacking_OnlyOneCompleteFrame) {
+                        arbitrary_bytes = false;
+                        DEBUG_PRINT_HIGH("setparameter: arbitrary_bytes disabled");
+                    } else {
+                        DEBUG_PRINT_ERROR("Setparameter: unknown FramePacking format %d\n",
+                                portFmt->nFramePackingFormat);
+                        eRet = OMX_ErrorUnsupportedSetting;
+                    }
+                } else if (portFmt->nPortIndex == OMX_CORE_OUTPUT_PORT_INDEX) {
+                    DEBUG_PRINT_HIGH("set_parameter: OMX_IndexQcomParamPortDefinitionType OP Port");
+
+                    if ( (portFmt->nMemRegion > OMX_QCOM_MemRegionInvalid &&
+                                portFmt->nMemRegion < OMX_QCOM_MemRegionMax) &&
+                            portFmt->nCacheAttr == OMX_QCOM_CacheAttrNone) {
+                        m_out_mem_region_smi = OMX_TRUE;
+
+                        if ((m_out_mem_region_smi && m_out_pvt_entry_pmem)) {
+                            DEBUG_PRINT_HIGH("set_parameter: OMX_IndexQcomParamPortDefinitionType OP Port: set use_output_pmem");
+                            m_use_output_pmem = OMX_TRUE;
+                        }
+                    }
+                }
+            }
+            break;
+
+        case OMX_IndexParamStandardComponentRole:
+            {
+                OMX_PARAM_COMPONENTROLETYPE *comp_role;
+                comp_role = (OMX_PARAM_COMPONENTROLETYPE *) paramData;
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamStandardComponentRole %s",
+                        comp_role->cRole);
+
+                if ((m_state == OMX_StateLoaded)&&
+                        !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING)) {
+                    DEBUG_PRINT_LOW("Set Parameter called in valid state");
+                } else {
+                    DEBUG_PRINT_ERROR("Set Parameter called in Invalid State\n");
+                    return OMX_ErrorIncorrectStateOperation;
+                }
+
+                if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE)) {
+                    if (!strncmp((char*)comp_role->cRole,"video_decoder.avc",OMX_MAX_STRINGNAME_SIZE)) {
+                        strlcpy((char*)m_cRole,"video_decoder.avc",OMX_MAX_STRINGNAME_SIZE);
+                    } else {
+                        DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                        eRet =OMX_ErrorUnsupportedSetting;
+                    }
+                } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE)) {
+                    if (!strncmp((const char*)comp_role->cRole,"video_decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE)) {
+                        strlcpy((char*)m_cRole,"video_decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE);
+                    } else {
+                        DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                        eRet = OMX_ErrorUnsupportedSetting;
+                    }
+                } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE)) {
+                    if (!strncmp((const char*)comp_role->cRole,"video_decoder.h263",OMX_MAX_STRINGNAME_SIZE)) {
+                        strlcpy((char*)m_cRole,"video_decoder.h263",OMX_MAX_STRINGNAME_SIZE);
+                    } else {
+                        DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                        eRet =OMX_ErrorUnsupportedSetting;
+                    }
+                } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE)) {
+                    if (!strncmp((const char*)comp_role->cRole,"video_decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE)) {
+                        strlcpy((char*)m_cRole,"video_decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE);
+                    } else {
+                        DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                        eRet = OMX_ErrorUnsupportedSetting;
+                    }
+                }
+
+#ifdef MAX_RES_1080P
+                else if ((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",OMX_MAX_STRINGNAME_SIZE)) ||
+                        (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx311",OMX_MAX_STRINGNAME_SIZE))
+                        )
+#else
+                else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",OMX_MAX_STRINGNAME_SIZE))
+#endif
+                {
+
+                    if (!strncmp((const char*)comp_role->cRole,"video_decoder.divx",OMX_MAX_STRINGNAME_SIZE)) {
+                        strlcpy((char*)m_cRole,"video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
+                    } else {
+                        DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                        eRet =OMX_ErrorUnsupportedSetting;
+                    }
+                } else if ( (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1",OMX_MAX_STRINGNAME_SIZE)) ||
+                        (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.wmv",OMX_MAX_STRINGNAME_SIZE))
+                        ) {
+                    if (!strncmp((const char*)comp_role->cRole,"video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE)) {
+                        strlcpy((char*)m_cRole,"video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
+                    } else {
+                        DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                        eRet =OMX_ErrorUnsupportedSetting;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("Setparameter: unknown param %s\n", drv_ctx.kind);
+                    eRet = OMX_ErrorInvalidComponentName;
+                }
+
+                break;
+            }
+
+        case OMX_IndexParamPriorityMgmt:
+            {
+                if (m_state != OMX_StateLoaded) {
+                    DEBUG_PRINT_ERROR("Set Parameter called in Invalid State\n");
+                    return OMX_ErrorIncorrectStateOperation;
+                }
+
+                OMX_PRIORITYMGMTTYPE *priorityMgmtype = (OMX_PRIORITYMGMTTYPE*) paramData;
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPriorityMgmt %d\n",
+                        priorityMgmtype->nGroupID);
+
+                DEBUG_PRINT_LOW("set_parameter: priorityMgmtype %d\n",
+                        priorityMgmtype->nGroupPriority);
+
+                m_priority_mgm.nGroupID = priorityMgmtype->nGroupID;
+                m_priority_mgm.nGroupPriority = priorityMgmtype->nGroupPriority;
+
+                break;
+            }
+
+        case OMX_IndexParamCompBufferSupplier:
+            {
+                OMX_PARAM_BUFFERSUPPLIERTYPE *bufferSupplierType = (OMX_PARAM_BUFFERSUPPLIERTYPE*) paramData;
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamCompBufferSupplier %d\n",
+                        bufferSupplierType->eBufferSupplier);
+
+                if (bufferSupplierType->nPortIndex == 0 || bufferSupplierType->nPortIndex ==1)
+                    m_buffer_supplier.eBufferSupplier = bufferSupplierType->eBufferSupplier;
+
+                else
+
+                    eRet = OMX_ErrorBadPortIndex;
+
+                break;
+
+            }
+        case OMX_IndexParamVideoAvc:
+            {
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoAvc %d\n",
+                        paramIndex);
+                break;
+            }
+        case OMX_IndexParamVideoH263:
+            {
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoH263 %d\n",
+                        paramIndex);
+                break;
+            }
+        case OMX_IndexParamVideoMpeg4:
+            {
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoMpeg4 %d\n",
+                        paramIndex);
+                break;
+            }
+        case OMX_IndexParamVideoMpeg2:
+            {
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoMpeg2 %d\n",
+                        paramIndex);
+                break;
+            }
+        case OMX_QcomIndexParamVideoDecoderPictureOrder:
+            {
+                QOMX_VIDEO_DECODER_PICTURE_ORDER *pictureOrder =
+                    (QOMX_VIDEO_DECODER_PICTURE_ORDER *)paramData;
+                enum vdec_output_order pic_order = VDEC_ORDER_DISPLAY;
+                DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexParamVideoDecoderPictureOrder %d\n",
+                        pictureOrder->eOutputPictureOrder);
+
+                if (pictureOrder->eOutputPictureOrder == QOMX_VIDEO_DISPLAY_ORDER)
+                    pic_order = VDEC_ORDER_DISPLAY;
+                else if (pictureOrder->eOutputPictureOrder == QOMX_VIDEO_DECODE_ORDER) {
+                    pic_order = VDEC_ORDER_DECODE;
+                    time_stamp_dts.set_timestamp_reorder_mode(false);
+                } else
+                    eRet = OMX_ErrorBadParameter;
+
+#ifdef MAX_RES_720P
+
+                if (drv_ctx.idr_only_decoding) {
+                    if (pictureOrder->eOutputPictureOrder != QOMX_VIDEO_DECODE_ORDER) {
+                        DEBUG_PRINT_HIGH("only decode order is supported for thumbnail mode");
+                        eRet = OMX_ErrorBadParameter;
+                    }
+                }
+
+#endif
+
+                if (eRet == OMX_ErrorNone && pic_order != drv_ctx.picture_order) {
+                    drv_ctx.picture_order = pic_order;
+                    ioctl_msg.in = &drv_ctx.picture_order;
+                    ioctl_msg.out = NULL;
+
+                    if (ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_SET_PICTURE_ORDER,
+                                (void*)&ioctl_msg) < 0) {
+                        DEBUG_PRINT_ERROR("\n Set picture order failed");
+                        eRet = OMX_ErrorUnsupportedSetting;
+                    }
+                }
+
+                break;
+            }
+        case OMX_QcomIndexParamConcealMBMapExtraData:
+            {
+                eRet = enable_extradata(VDEC_EXTRADATA_MB_ERROR_MAP,
+                        ((QOMX_ENABLETYPE *)paramData)->bEnable);
+            }
+            break;
+        case OMX_QcomIndexParamFrameInfoExtraData:
+            {
+                eRet = enable_extradata(OMX_FRAMEINFO_EXTRADATA,
+                        ((QOMX_ENABLETYPE *)paramData)->bEnable);
+            }
+            break;
+        case OMX_QcomIndexParamInterlaceExtraData:
+            {
+                eRet = enable_extradata(OMX_INTERLACE_EXTRADATA,
+                        ((QOMX_ENABLETYPE *)paramData)->bEnable);
+            }
+            break;
+        case OMX_QcomIndexParamH264TimeInfo:
+            {
+                eRet = enable_extradata(OMX_TIMEINFO_EXTRADATA,
+                        ((QOMX_ENABLETYPE *)paramData)->bEnable);
+            }
+            break;
+        case OMX_QcomIndexParamVideoDivx:
+            {
+#ifdef MAX_RES_720P
+                QOMX_VIDEO_PARAM_DIVXTYPE* divXType = (QOMX_VIDEO_PARAM_DIVXTYPE *) paramData;
+
+                if ((divXType) && (divXType->eFormat == QOMX_VIDEO_DIVXFormat311)) {
+                    DEBUG_PRINT_HIGH("set_parameter: DivX 3.11 not supported in 7x30 core.");
+                    eRet = OMX_ErrorUnsupportedSetting;
+                }
+
+#endif
+            }
+            break;
+        case OMX_QcomIndexPlatformPvt:
+            {
+                DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexPlatformPvt OP Port");
+                OMX_QCOM_PLATFORMPRIVATE_EXTN* entryType = (OMX_QCOM_PLATFORMPRIVATE_EXTN *) paramData;
+
+                if (entryType->type != OMX_QCOM_PLATFORM_PRIVATE_PMEM) {
+                    DEBUG_PRINT_HIGH("set_parameter: Platform Private entry type (%d) not supported.", entryType->type);
+                    eRet = OMX_ErrorUnsupportedSetting;
+                } else {
+                    m_out_pvt_entry_pmem = OMX_TRUE;
+
+                    if ((m_out_mem_region_smi && m_out_pvt_entry_pmem)) {
+                        DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexPlatformPvt OP Port: use output pmem set");
+                        m_use_output_pmem = OMX_TRUE;
+                    }
+                }
+
+            }
+            break;
+        case OMX_QcomIndexParamVideoSyncFrameDecodingMode:
+            {
+                DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexParamVideoSyncFrameDecodingMode");
+                DEBUG_PRINT_HIGH("set idr only decoding for thumbnail mode");
+                drv_ctx.idr_only_decoding = 1;
+                int rc = ioctl(drv_ctx.video_driver_fd,
+                        VDEC_IOCTL_SET_IDR_ONLY_DECODING);
+
+                if (rc < 0) {
+                    DEBUG_PRINT_ERROR("Failed to set IDR only decoding on driver.");
+                    eRet = OMX_ErrorHardware;
+                }
+
+#ifdef MAX_RES_720P
+
+                if (eRet == OMX_ErrorNone) {
+                    DEBUG_PRINT_HIGH("set decode order for thumbnail mode");
+                    drv_ctx.picture_order = VDEC_ORDER_DECODE;
+                    ioctl_msg.in = &drv_ctx.picture_order;
+                    ioctl_msg.out = NULL;
+
+                    if (ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_SET_PICTURE_ORDER,
+                                (void*)&ioctl_msg) < 0) {
+                        DEBUG_PRINT_ERROR("\n Set picture order failed");
+                        eRet = OMX_ErrorUnsupportedSetting;
+                    }
+                }
+
+#endif
+            }
+            break;
+#ifdef MAX_RES_1080P
+        case OMX_QcomIndexParamIndexExtraDataType:
+            {
+                if (!secure_mode) {
+                    QOMX_INDEXEXTRADATATYPE *extradataIndexType = (QOMX_INDEXEXTRADATATYPE *) paramData;
+
+                    if ((extradataIndexType->nIndex == OMX_IndexParamPortDefinition) &&
+                            (extradataIndexType->bEnabled == OMX_TRUE) &&
+                            (extradataIndexType->nPortIndex == 1)) {
+                        DEBUG_PRINT_HIGH("set_parameter:  OMX_QcomIndexParamIndexExtraDataType SmoothStreaming");
+                        eRet = enable_extradata(OMX_PORTDEF_EXTRADATA, extradataIndexType->bEnabled);
+                        // Set smooth streaming parameter
+                        int rc = ioctl(drv_ctx.video_driver_fd,
+                                VDEC_IOCTL_SET_CONT_ON_RECONFIG);
+
+                        if (rc < 0) {
+                            DEBUG_PRINT_ERROR("Failed to enable Smooth Streaming on driver.");
+                            eRet = OMX_ErrorHardware;
+                        }
+                    }
+                }
+            }
+            break;
+
+        case OMX_QcomIndexParamEnableSmoothStreaming:
+            {
+
+                int rc = ioctl(drv_ctx.video_driver_fd,
+                        VDEC_IOCTL_SET_CONT_ON_RECONFIG);
+
+                if (rc < 0) {
+                    DEBUG_PRINT_ERROR("Failed to enable Smooth Streaming on driver.");
+                    eRet = OMX_ErrorHardware;
+                }
+            }
+            break;
 #endif
 #if defined (_ANDROID_HONEYCOMB_) || defined (_ANDROID_ICS_)
-      /* Need to allow following two set_parameters even in Idle
-       * state. This is ANDROID architecture which is not in sync
-       * with openmax standard. */
-    case OMX_GoogleAndroidIndexEnableAndroidNativeBuffers:
-      {
-          EnableAndroidNativeBuffersParams* enableNativeBuffers = (EnableAndroidNativeBuffersParams *) paramData;
-          if(enableNativeBuffers) {
-              m_enable_android_native_buffers = enableNativeBuffers->enable;
-          }
-      }
-      break;
-    case OMX_GoogleAndroidIndexUseAndroidNativeBuffer:
-      {
-          eRet = use_android_native_buffer(hComp, paramData);
-      }
-      break;
+            /* Need to allow following two set_parameters even in Idle
+             * state. This is ANDROID architecture which is not in sync
+             * with openmax standard. */
+        case OMX_GoogleAndroidIndexEnableAndroidNativeBuffers:
+            {
+                EnableAndroidNativeBuffersParams* enableNativeBuffers = (EnableAndroidNativeBuffersParams *) paramData;
+
+                if (enableNativeBuffers) {
+                    m_enable_android_native_buffers = enableNativeBuffers->enable;
+                }
+            }
+            break;
+        case OMX_GoogleAndroidIndexUseAndroidNativeBuffer:
+            {
+                eRet = use_android_native_buffer(hComp, paramData);
+            }
+            break;
 #endif
-    case OMX_QcomIndexParamEnableTimeStampReorder:
-      {
-        QOMX_INDEXTIMESTAMPREORDER *reorder = (QOMX_INDEXTIMESTAMPREORDER *)paramData;
-        if (drv_ctx.picture_order == QOMX_VIDEO_DISPLAY_ORDER) {
-          if (reorder->bEnable == OMX_TRUE) {
-              frm_int =0;
-              time_stamp_dts.set_timestamp_reorder_mode(true);
-          }
-          else
-            time_stamp_dts.set_timestamp_reorder_mode(false);
-        } else {
-          time_stamp_dts.set_timestamp_reorder_mode(false);
-          if (reorder->bEnable == OMX_TRUE)
-          {
-            eRet = OMX_ErrorUnsupportedSetting;
-          }
-        }
-      }
-      break;
-    case OMX_QcomIndexEnableExtnUserData:
-      {
-          eRet = enable_extradata(OMX_EXTNUSER_EXTRADATA,
-                              ((QOMX_ENABLETYPE *)paramData)->bEnable);
-      }
-      break;
-    default:
-    {
-      DEBUG_PRINT_ERROR("Setparameter: unknown param %d\n", paramIndex);
-      eRet = OMX_ErrorUnsupportedIndex;
+        case OMX_QcomIndexParamEnableTimeStampReorder:
+            {
+                QOMX_INDEXTIMESTAMPREORDER *reorder = (QOMX_INDEXTIMESTAMPREORDER *)paramData;
+
+                if (drv_ctx.picture_order == QOMX_VIDEO_DISPLAY_ORDER) {
+                    if (reorder->bEnable == OMX_TRUE) {
+                        frm_int =0;
+                        time_stamp_dts.set_timestamp_reorder_mode(true);
+                    } else
+                        time_stamp_dts.set_timestamp_reorder_mode(false);
+                } else {
+                    time_stamp_dts.set_timestamp_reorder_mode(false);
+
+                    if (reorder->bEnable == OMX_TRUE) {
+                        eRet = OMX_ErrorUnsupportedSetting;
+                    }
+                }
+            }
+            break;
+        case OMX_QcomIndexEnableExtnUserData:
+            {
+                eRet = enable_extradata(OMX_EXTNUSER_EXTRADATA,
+                        ((QOMX_ENABLETYPE *)paramData)->bEnable);
+            }
+            break;
+        default:
+            {
+                DEBUG_PRINT_ERROR("Setparameter: unknown param %d\n", paramIndex);
+                eRet = OMX_ErrorUnsupportedIndex;
+            }
     }
-  }
-  return eRet;
+
+    return eRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::GetConfig
+   FUNCTION
+   omx_vdec::GetConfig
 
-DESCRIPTION
-  OMX Get Config Method implementation.
+   DESCRIPTION
+   OMX Get Config Method implementation.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if successful.
+   RETURN VALUE
+   OMX Error None if successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::get_config(OMX_IN OMX_HANDLETYPE      hComp,
-                                        OMX_IN OMX_INDEXTYPE configIndex,
-                                        OMX_INOUT OMX_PTR     configData)
+        OMX_IN OMX_INDEXTYPE configIndex,
+        OMX_INOUT OMX_PTR     configData)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
 
-  if (m_state == OMX_StateInvalid)
-  {
-     DEBUG_PRINT_ERROR("Get Config in Invalid State\n");
-     return OMX_ErrorInvalidState;
-  }
-
-  switch (configIndex)
-  {
-    case OMX_QcomIndexConfigInterlaced:
-    {
-      OMX_QCOM_CONFIG_INTERLACETYPE *configFmt =
-                                   (OMX_QCOM_CONFIG_INTERLACETYPE *) configData;
-      if (configFmt->nPortIndex == 1)
-      {
-        if (configFmt->nIndex == 0)
-        {
-          configFmt->eInterlaceType = OMX_QCOM_InterlaceFrameProgressive;
-        }
-        else if (configFmt->nIndex == 1)
-        {
-          configFmt->eInterlaceType =
-                                  OMX_QCOM_InterlaceInterleaveFrameTopFieldFirst;
-        }
-        else if (configFmt->nIndex == 2)
-        {
-          configFmt->eInterlaceType =
-          OMX_QCOM_InterlaceInterleaveFrameBottomFieldFirst;
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("get_config: OMX_QcomIndexConfigInterlaced:"
-                            " NoMore Interlaced formats\n");
-          eRet = OMX_ErrorNoMore;
-        }
-
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("get_config: Bad port index %d queried on only o/p port\n",
-        (int)configFmt->nPortIndex);
-        eRet = OMX_ErrorBadPortIndex;
-      }
-    break;
-    }
-    case OMX_QcomIndexQueryNumberOfVideoDecInstance:
-    {
-        struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
-        QOMX_VIDEO_QUERY_DECODER_INSTANCES *decoderinstances =
-          (QOMX_VIDEO_QUERY_DECODER_INSTANCES*)configData;
-        ioctl_msg.out = (void*)&decoderinstances->nNumOfInstances;
-        (void)(ioctl(drv_ctx.video_driver_fd,
-               VDEC_IOCTL_GET_NUMBER_INSTANCES,&ioctl_msg));
-    break;
-    }
-  case OMX_QcomIndexConfigVideoFramePackingArrangement:
-    {
-      if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264)
-      {
-        OMX_QCOM_FRAME_PACK_ARRANGEMENT *configFmt =
-          (OMX_QCOM_FRAME_PACK_ARRANGEMENT *) configData;
-        h264_parser->get_frame_pack_data(configFmt);
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("get_config: Framepack data not supported for non H264 codecs");
-      }
-      break;
-    }
-    case OMX_QcomIndexParamFrameInfoExtraData:
-    {
-      OMX_QCOM_EXTRADATA_FRAMEINFO *extradata =
-        (OMX_QCOM_EXTRADATA_FRAMEINFO *) configData;
-
-      if(m_extradata == NULL){
-          DEBUG_PRINT_LOW("get_config: m_extradata not set. "
-                            "Aspect Ratio information missing!!");
-      }
-      else {
-        extradata->aspectRatio.aspectRatioX =
-           m_extradata->aspectRatio.aspectRatioX;
-         extradata->aspectRatio.aspectRatioY =
-            m_extradata->aspectRatio.aspectRatioY;
-      }
-      break;
-    }
-
-    default:
-    {
-      DEBUG_PRINT_ERROR("get_config: unknown param %d\n",configIndex);
-      eRet = OMX_ErrorBadParameter;
-    }
-
-  }
-
-  return eRet;
-}
-
-/* ======================================================================
-FUNCTION
-  omx_vdec::SetConfig
-
-DESCRIPTION
-  OMX Set Config method implementation
-
-PARAMETERS
-  <TBD>.
-
-RETURN VALUE
-  OMX Error None if successful.
-========================================================================== */
-OMX_ERRORTYPE  omx_vdec::set_config(OMX_IN OMX_HANDLETYPE      hComp,
-                                        OMX_IN OMX_INDEXTYPE configIndex,
-                                        OMX_IN OMX_PTR        configData)
-{
-  if(m_state == OMX_StateInvalid)
-  {
-      DEBUG_PRINT_ERROR("Get Config in Invalid State\n");
-      return OMX_ErrorInvalidState;
-  }
-
-  OMX_ERRORTYPE ret = OMX_ErrorNone;
-  OMX_VIDEO_CONFIG_NALSIZE *pNal;
-
-  DEBUG_PRINT_LOW("Set Config Called");
-
-  if (m_state == OMX_StateExecuting)
-  {
-     DEBUG_PRINT_ERROR("set_config:Ignore in Exe state\n");
-     return ret;
-  }
-
-  if (configIndex == OMX_IndexVendorVideoExtraData)
-  {
-    OMX_VENDOR_EXTRADATATYPE *config = (OMX_VENDOR_EXTRADATATYPE *) configData;
-    DEBUG_PRINT_LOW("Index OMX_IndexVendorVideoExtraData called");
-    if (!strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc"))
-    {
-      DEBUG_PRINT_LOW("Index OMX_IndexVendorVideoExtraData AVC");
-      OMX_U32 extra_size;
-      // Parsing done here for the AVC atom is definitely not generic
-      // Currently this piece of code is working, but certainly
-      // not tested with all .mp4 files.
-      // Incase of failure, we might need to revisit this
-      // for a generic piece of code.
-
-      // Retrieve size of NAL length field
-      // byte #4 contains the size of NAL lenght field
-      nal_length = (config->pData[4] & 0x03) + 1;
-
-      extra_size = 0;
-      if (nal_length > 2)
-      {
-        /* Presently we assume that only one SPS and one PPS in AvC1 Atom */
-        extra_size = (nal_length - 2) * 2;
-      }
-
-      // SPS starts from byte #6
-      OMX_U8 *pSrcBuf = (OMX_U8 *) (&config->pData[6]);
-      OMX_U8 *pDestBuf;
-      m_vendor_config.nPortIndex = config->nPortIndex;
-
-      // minus 6 --> SPS starts from byte #6
-      // minus 1 --> picture param set byte to be ignored from avcatom
-      m_vendor_config.nDataSize = config->nDataSize - 6 - 1 + extra_size;
-      m_vendor_config.pData = (OMX_U8 *) malloc(m_vendor_config.nDataSize);
-      OMX_U32 len;
-      OMX_U8 index = 0;
-      // case where SPS+PPS is sent as part of set_config
-      pDestBuf = m_vendor_config.pData;
-
-      DEBUG_PRINT_LOW("Rxd SPS+PPS nPortIndex[%d] len[%d] data[0x%x]",
-           m_vendor_config.nPortIndex,
-           m_vendor_config.nDataSize,
-           m_vendor_config.pData);
-      while (index < 2)
-      {
-        uint8 *psize;
-        len = *pSrcBuf;
-        len = len << 8;
-        len |= *(pSrcBuf + 1);
-        psize = (uint8 *) & len;
-        memcpy(pDestBuf + nal_length, pSrcBuf + 2,len);
-        for (int i = 0; i < nal_length; i++)
-        {
-          pDestBuf[i] = psize[nal_length - 1 - i];
-        }
-        //memcpy(pDestBuf,pSrcBuf,(len+2));
-        pDestBuf += len + nal_length;
-        pSrcBuf += len + 2;
-        index++;
-        pSrcBuf++;   // skip picture param set
-        len = 0;
-      }
-    }
-    else if (!strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4") ||
-             !strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2"))
-    {
-      m_vendor_config.nPortIndex = config->nPortIndex;
-      m_vendor_config.nDataSize = config->nDataSize;
-      m_vendor_config.pData = (OMX_U8 *) malloc((config->nDataSize));
-      memcpy(m_vendor_config.pData, config->pData,config->nDataSize);
-    }
-    else if (!strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1"))
-    {
-        if(m_vendor_config.pData)
-        {
-            free(m_vendor_config.pData);
-            m_vendor_config.pData = NULL;
-            m_vendor_config.nDataSize = 0;
-        }
-
-        if (((*((OMX_U32 *) config->pData)) &
-             VC1_SP_MP_START_CODE_MASK) ==
-             VC1_SP_MP_START_CODE)
-        {
-            DEBUG_PRINT_LOW("set_config - VC1 simple/main profile\n");
-            m_vendor_config.nPortIndex = config->nPortIndex;
-            m_vendor_config.nDataSize = config->nDataSize;
-            m_vendor_config.pData =
-                (OMX_U8 *) malloc(config->nDataSize);
-            memcpy(m_vendor_config.pData, config->pData,
-                   config->nDataSize);
-            m_vc1_profile = VC1_SP_MP_RCV;
-        }
-        else if (*((OMX_U32 *) config->pData) == VC1_AP_SEQ_START_CODE)
-        {
-            DEBUG_PRINT_LOW("set_config - VC1 Advance profile\n");
-            m_vendor_config.nPortIndex = config->nPortIndex;
-            m_vendor_config.nDataSize = config->nDataSize;
-            m_vendor_config.pData =
-                (OMX_U8 *) malloc((config->nDataSize));
-            memcpy(m_vendor_config.pData, config->pData,
-                   config->nDataSize);
-            m_vc1_profile = VC1_AP;
-        }
-        else if ((config->nDataSize == VC1_STRUCT_C_LEN))
-        {
-            DEBUG_PRINT_LOW("set_config - VC1 Simple/Main profile struct C only\n");
-            m_vendor_config.nPortIndex = config->nPortIndex;
-            m_vendor_config.nDataSize  = config->nDataSize;
-            m_vendor_config.pData = (OMX_U8*)malloc(config->nDataSize);
-            memcpy(m_vendor_config.pData,config->pData,config->nDataSize);
-            m_vc1_profile = VC1_SP_MP_RCV;
-        }
-        else
-        {
-            DEBUG_PRINT_LOW("set_config - Error: Unknown VC1 profile\n");
-        }
-    }
-    return ret;
-  }
-  else if (configIndex == OMX_IndexConfigVideoNalSize)
-  {
-
-    pNal = reinterpret_cast < OMX_VIDEO_CONFIG_NALSIZE * >(configData);
-    nal_length = pNal->nNaluBytes;
-    m_frame_parser.init_nal_length(nal_length);
-    DEBUG_PRINT_LOW("OMX_IndexConfigVideoNalSize called with Size %d",nal_length);
-    return ret;
-  }
-
-  return OMX_ErrorNotImplemented;
-}
-
-/* ======================================================================
-FUNCTION
-  omx_vdec::GetExtensionIndex
-
-DESCRIPTION
-  OMX GetExtensionIndex method implementaion.  <TBD>
-
-PARAMETERS
-  <TBD>.
-
-RETURN VALUE
-  OMX Error None if everything successful.
-
-========================================================================== */
-OMX_ERRORTYPE  omx_vdec::get_extension_index(OMX_IN OMX_HANDLETYPE      hComp,
-                                                OMX_IN OMX_STRING      paramName,
-                                                OMX_OUT OMX_INDEXTYPE* indexType)
-{
-    if(m_state == OMX_StateInvalid)
-    {
-        DEBUG_PRINT_ERROR("Get Extension Index in Invalid State\n");
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("Get Config in Invalid State\n");
         return OMX_ErrorInvalidState;
     }
-    else if (!strncmp(paramName, "OMX.QCOM.index.param.video.SyncFrameDecodingMode",sizeof("OMX.QCOM.index.param.video.SyncFrameDecodingMode") - 1)) {
+
+    switch (configIndex) {
+        case OMX_QcomIndexConfigInterlaced:
+            {
+                OMX_QCOM_CONFIG_INTERLACETYPE *configFmt =
+                    (OMX_QCOM_CONFIG_INTERLACETYPE *) configData;
+
+                if (configFmt->nPortIndex == 1) {
+                    if (configFmt->nIndex == 0) {
+                        configFmt->eInterlaceType = OMX_QCOM_InterlaceFrameProgressive;
+                    } else if (configFmt->nIndex == 1) {
+                        configFmt->eInterlaceType =
+                            OMX_QCOM_InterlaceInterleaveFrameTopFieldFirst;
+                    } else if (configFmt->nIndex == 2) {
+                        configFmt->eInterlaceType =
+                            OMX_QCOM_InterlaceInterleaveFrameBottomFieldFirst;
+                    } else {
+                        DEBUG_PRINT_ERROR("get_config: OMX_QcomIndexConfigInterlaced:"
+                                " NoMore Interlaced formats\n");
+                        eRet = OMX_ErrorNoMore;
+                    }
+
+                } else {
+                    DEBUG_PRINT_ERROR("get_config: Bad port index %d queried on only o/p port\n",
+                            (int)configFmt->nPortIndex);
+                    eRet = OMX_ErrorBadPortIndex;
+                }
+
+                break;
+            }
+        case OMX_QcomIndexQueryNumberOfVideoDecInstance:
+            {
+                struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
+                QOMX_VIDEO_QUERY_DECODER_INSTANCES *decoderinstances =
+                    (QOMX_VIDEO_QUERY_DECODER_INSTANCES*)configData;
+                ioctl_msg.out = (void*)&decoderinstances->nNumOfInstances;
+                (void)(ioctl(drv_ctx.video_driver_fd,
+                            VDEC_IOCTL_GET_NUMBER_INSTANCES,&ioctl_msg));
+                break;
+            }
+        case OMX_QcomIndexConfigVideoFramePackingArrangement:
+            {
+                if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264) {
+                    OMX_QCOM_FRAME_PACK_ARRANGEMENT *configFmt =
+                        (OMX_QCOM_FRAME_PACK_ARRANGEMENT *) configData;
+                    h264_parser->get_frame_pack_data(configFmt);
+                } else {
+                    DEBUG_PRINT_ERROR("get_config: Framepack data not supported for non H264 codecs");
+                }
+
+                break;
+            }
+        case OMX_QcomIndexParamFrameInfoExtraData:
+            {
+                OMX_QCOM_EXTRADATA_FRAMEINFO *extradata =
+                    (OMX_QCOM_EXTRADATA_FRAMEINFO *) configData;
+
+                if (m_extradata == NULL) {
+                    DEBUG_PRINT_LOW("get_config: m_extradata not set. "
+                            "Aspect Ratio information missing!!");
+                } else {
+                    extradata->aspectRatio.aspectRatioX =
+                        m_extradata->aspectRatio.aspectRatioX;
+                    extradata->aspectRatio.aspectRatioY =
+                        m_extradata->aspectRatio.aspectRatioY;
+                }
+
+                break;
+            }
+
+        default:
+            {
+                DEBUG_PRINT_ERROR("get_config: unknown param %d\n",configIndex);
+                eRet = OMX_ErrorBadParameter;
+            }
+
+    }
+
+    return eRet;
+}
+
+/* ======================================================================
+   FUNCTION
+   omx_vdec::SetConfig
+
+   DESCRIPTION
+   OMX Set Config method implementation
+
+   PARAMETERS
+   <TBD>.
+
+   RETURN VALUE
+   OMX Error None if successful.
+   ========================================================================== */
+OMX_ERRORTYPE  omx_vdec::set_config(OMX_IN OMX_HANDLETYPE      hComp,
+        OMX_IN OMX_INDEXTYPE configIndex,
+        OMX_IN OMX_PTR        configData)
+{
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("Get Config in Invalid State\n");
+        return OMX_ErrorInvalidState;
+    }
+
+    OMX_ERRORTYPE ret = OMX_ErrorNone;
+    OMX_VIDEO_CONFIG_NALSIZE *pNal;
+
+    DEBUG_PRINT_LOW("Set Config Called");
+
+    if (m_state == OMX_StateExecuting) {
+        DEBUG_PRINT_ERROR("set_config:Ignore in Exe state\n");
+        return ret;
+    }
+
+    if (configIndex == OMX_IndexVendorVideoExtraData) {
+        OMX_VENDOR_EXTRADATATYPE *config = (OMX_VENDOR_EXTRADATATYPE *) configData;
+        DEBUG_PRINT_LOW("Index OMX_IndexVendorVideoExtraData called");
+
+        if (!strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc")) {
+            DEBUG_PRINT_LOW("Index OMX_IndexVendorVideoExtraData AVC");
+            OMX_U32 extra_size;
+            // Parsing done here for the AVC atom is definitely not generic
+            // Currently this piece of code is working, but certainly
+            // not tested with all .mp4 files.
+            // Incase of failure, we might need to revisit this
+            // for a generic piece of code.
+
+            // Retrieve size of NAL length field
+            // byte #4 contains the size of NAL lenght field
+            nal_length = (config->pData[4] & 0x03) + 1;
+
+            extra_size = 0;
+
+            if (nal_length > 2) {
+                /* Presently we assume that only one SPS and one PPS in AvC1 Atom */
+                extra_size = (nal_length - 2) * 2;
+            }
+
+            // SPS starts from byte #6
+            OMX_U8 *pSrcBuf = (OMX_U8 *) (&config->pData[6]);
+            OMX_U8 *pDestBuf;
+            m_vendor_config.nPortIndex = config->nPortIndex;
+
+            // minus 6 --> SPS starts from byte #6
+            // minus 1 --> picture param set byte to be ignored from avcatom
+            m_vendor_config.nDataSize = config->nDataSize - 6 - 1 + extra_size;
+            m_vendor_config.pData = (OMX_U8 *) malloc(m_vendor_config.nDataSize);
+            OMX_U32 len;
+            OMX_U8 index = 0;
+            // case where SPS+PPS is sent as part of set_config
+            pDestBuf = m_vendor_config.pData;
+
+            DEBUG_PRINT_LOW("Rxd SPS+PPS nPortIndex[%d] len[%d] data[0x%x]",
+                    m_vendor_config.nPortIndex,
+                    m_vendor_config.nDataSize,
+                    m_vendor_config.pData);
+
+            while (index < 2) {
+                uint8 *psize;
+                len = *pSrcBuf;
+                len = len << 8;
+                len |= *(pSrcBuf + 1);
+                psize = (uint8 *) & len;
+                memcpy(pDestBuf + nal_length, pSrcBuf + 2,len);
+
+                for (int i = 0; i < nal_length; i++) {
+                    pDestBuf[i] = psize[nal_length - 1 - i];
+                }
+
+                //memcpy(pDestBuf,pSrcBuf,(len+2));
+                pDestBuf += len + nal_length;
+                pSrcBuf += len + 2;
+                index++;
+                pSrcBuf++;   // skip picture param set
+                len = 0;
+            }
+        } else if (!strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4") ||
+                !strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2")) {
+            m_vendor_config.nPortIndex = config->nPortIndex;
+            m_vendor_config.nDataSize = config->nDataSize;
+            m_vendor_config.pData = (OMX_U8 *) malloc((config->nDataSize));
+            memcpy(m_vendor_config.pData, config->pData,config->nDataSize);
+        } else if (!strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1")) {
+            if (m_vendor_config.pData) {
+                free(m_vendor_config.pData);
+                m_vendor_config.pData = NULL;
+                m_vendor_config.nDataSize = 0;
+            }
+
+            if (((*((OMX_U32 *) config->pData)) &
+                        VC1_SP_MP_START_CODE_MASK) ==
+                    VC1_SP_MP_START_CODE) {
+                DEBUG_PRINT_LOW("set_config - VC1 simple/main profile\n");
+                m_vendor_config.nPortIndex = config->nPortIndex;
+                m_vendor_config.nDataSize = config->nDataSize;
+                m_vendor_config.pData =
+                    (OMX_U8 *) malloc(config->nDataSize);
+                memcpy(m_vendor_config.pData, config->pData,
+                        config->nDataSize);
+                m_vc1_profile = VC1_SP_MP_RCV;
+            } else if (*((OMX_U32 *) config->pData) == VC1_AP_SEQ_START_CODE) {
+                DEBUG_PRINT_LOW("set_config - VC1 Advance profile\n");
+                m_vendor_config.nPortIndex = config->nPortIndex;
+                m_vendor_config.nDataSize = config->nDataSize;
+                m_vendor_config.pData =
+                    (OMX_U8 *) malloc((config->nDataSize));
+                memcpy(m_vendor_config.pData, config->pData,
+                        config->nDataSize);
+                m_vc1_profile = VC1_AP;
+            } else if ((config->nDataSize == VC1_STRUCT_C_LEN)) {
+                DEBUG_PRINT_LOW("set_config - VC1 Simple/Main profile struct C only\n");
+                m_vendor_config.nPortIndex = config->nPortIndex;
+                m_vendor_config.nDataSize  = config->nDataSize;
+                m_vendor_config.pData = (OMX_U8*)malloc(config->nDataSize);
+                memcpy(m_vendor_config.pData,config->pData,config->nDataSize);
+                m_vc1_profile = VC1_SP_MP_RCV;
+            } else {
+                DEBUG_PRINT_LOW("set_config - Error: Unknown VC1 profile\n");
+            }
+        }
+
+        return ret;
+    } else if (configIndex == OMX_IndexConfigVideoNalSize) {
+
+        pNal = reinterpret_cast < OMX_VIDEO_CONFIG_NALSIZE * >(configData);
+        nal_length = pNal->nNaluBytes;
+        m_frame_parser.init_nal_length(nal_length);
+        DEBUG_PRINT_LOW("OMX_IndexConfigVideoNalSize called with Size %d",nal_length);
+        return ret;
+    }
+
+    return OMX_ErrorNotImplemented;
+}
+
+/* ======================================================================
+   FUNCTION
+   omx_vdec::GetExtensionIndex
+
+   DESCRIPTION
+   OMX GetExtensionIndex method implementaion.  <TBD>
+
+   PARAMETERS
+   <TBD>.
+
+   RETURN VALUE
+   OMX Error None if everything successful.
+
+   ========================================================================== */
+OMX_ERRORTYPE  omx_vdec::get_extension_index(OMX_IN OMX_HANDLETYPE      hComp,
+        OMX_IN OMX_STRING      paramName,
+        OMX_OUT OMX_INDEXTYPE* indexType)
+{
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("Get Extension Index in Invalid State\n");
+        return OMX_ErrorInvalidState;
+    } else if (!strncmp(paramName, "OMX.QCOM.index.param.video.SyncFrameDecodingMode",sizeof("OMX.QCOM.index.param.video.SyncFrameDecodingMode") - 1)) {
         *indexType = (OMX_INDEXTYPE)OMX_QcomIndexParamVideoSyncFrameDecodingMode;
     }
+
 #ifdef MAX_RES_1080P
-    else if (!strncmp(paramName, "OMX.QCOM.index.param.IndexExtraData",sizeof("OMX.QCOM.index.param.IndexExtraData") - 1))
-    {
+    else if (!strncmp(paramName, "OMX.QCOM.index.param.IndexExtraData",sizeof("OMX.QCOM.index.param.IndexExtraData") - 1)) {
         *indexType = (OMX_INDEXTYPE)OMX_QcomIndexParamIndexExtraDataType;
     }
+
 #endif
 #if defined (_ANDROID_HONEYCOMB_) || defined (_ANDROID_ICS_)
-    else if(!strncmp(paramName,"OMX.google.android.index.enableAndroidNativeBuffers", sizeof("OMX.google.android.index.enableAndroidNativeBuffers") - 1)) {
+    else if (!strncmp(paramName,"OMX.google.android.index.enableAndroidNativeBuffers", sizeof("OMX.google.android.index.enableAndroidNativeBuffers") - 1)) {
         *indexType = (OMX_INDEXTYPE)OMX_GoogleAndroidIndexEnableAndroidNativeBuffers;
-    }
-    else if(!strncmp(paramName,"OMX.google.android.index.useAndroidNativeBuffer2", sizeof("OMX.google.android.index.enableAndroidNativeBuffer2") - 1)) {
+    } else if (!strncmp(paramName,"OMX.google.android.index.useAndroidNativeBuffer2", sizeof("OMX.google.android.index.enableAndroidNativeBuffer2") - 1)) {
         *indexType = (OMX_INDEXTYPE)OMX_GoogleAndroidIndexUseAndroidNativeBuffer2;
-    }
-    else if(!strncmp(paramName,"OMX.google.android.index.useAndroidNativeBuffer", sizeof("OMX.google.android.index.enableAndroidNativeBuffer") - 1)) {
+    } else if (!strncmp(paramName,"OMX.google.android.index.useAndroidNativeBuffer", sizeof("OMX.google.android.index.enableAndroidNativeBuffer") - 1)) {
         DEBUG_PRINT_ERROR("Extension: %s is supported\n", paramName);
         *indexType = (OMX_INDEXTYPE)OMX_GoogleAndroidIndexUseAndroidNativeBuffer;
-    }
-    else if(!strncmp(paramName,"OMX.google.android.index.getAndroidNativeBufferUsage", sizeof("OMX.google.android.index.getAndroidNativeBufferUsage") - 1)) {
+    } else if (!strncmp(paramName,"OMX.google.android.index.getAndroidNativeBufferUsage", sizeof("OMX.google.android.index.getAndroidNativeBufferUsage") - 1)) {
         *indexType = (OMX_INDEXTYPE)OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage;
     }
+
 #endif
     else {
         DEBUG_PRINT_ERROR("Extension: %s not implemented\n", paramName);
         return OMX_ErrorNotImplemented;
     }
+
     return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::GetState
+   FUNCTION
+   omx_vdec::GetState
 
-DESCRIPTION
-  Returns the state information back to the caller.<TBD>
+   DESCRIPTION
+   Returns the state information back to the caller.<TBD>
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  Error None if everything is successful.
-========================================================================== */
+   RETURN VALUE
+   Error None if everything is successful.
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::get_state(OMX_IN OMX_HANDLETYPE  hComp,
-                                       OMX_OUT OMX_STATETYPE* state)
+        OMX_OUT OMX_STATETYPE* state)
 {
-  *state = m_state;
-  DEBUG_PRINT_LOW("get_state: Returning the state %d",*state);
-  return OMX_ErrorNone;
+    *state = m_state;
+    DEBUG_PRINT_LOW("get_state: Returning the state %d",*state);
+    return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::ComponentTunnelRequest
+   FUNCTION
+   omx_vdec::ComponentTunnelRequest
 
-DESCRIPTION
-  OMX Component Tunnel Request method implementation. <TBD>
+   DESCRIPTION
+   OMX Component Tunnel Request method implementation. <TBD>
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  OMX Error None if everything successful.
+   RETURN VALUE
+   OMX Error None if everything successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::component_tunnel_request(OMX_IN OMX_HANDLETYPE                hComp,
-                                                     OMX_IN OMX_U32                        port,
-                                                     OMX_IN OMX_HANDLETYPE        peerComponent,
-                                                     OMX_IN OMX_U32                    peerPort,
-                                                     OMX_INOUT OMX_TUNNELSETUPTYPE* tunnelSetup)
+        OMX_IN OMX_U32                        port,
+        OMX_IN OMX_HANDLETYPE        peerComponent,
+        OMX_IN OMX_U32                    peerPort,
+        OMX_INOUT OMX_TUNNELSETUPTYPE* tunnelSetup)
 {
-  DEBUG_PRINT_ERROR("Error: component_tunnel_request Not Implemented\n");
-  return OMX_ErrorNotImplemented;
+    DEBUG_PRINT_ERROR("Error: component_tunnel_request Not Implemented\n");
+    return OMX_ErrorNotImplemented;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::UseOutputBuffer
+   FUNCTION
+   omx_vdec::UseOutputBuffer
 
-DESCRIPTION
-  Helper function for Use buffer in the input pin
+   DESCRIPTION
+   Helper function for Use buffer in the input pin
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::use_output_buffer(
-                         OMX_IN OMX_HANDLETYPE            hComp,
-                         OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                         OMX_IN OMX_U32                   port,
-                         OMX_IN OMX_PTR                   appData,
-                         OMX_IN OMX_U32                   bytes,
-                         OMX_IN OMX_U8*                   buffer)
+        OMX_IN OMX_HANDLETYPE            hComp,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                   port,
+        OMX_IN OMX_PTR                   appData,
+        OMX_IN OMX_U32                   bytes,
+        OMX_IN OMX_U8*                   buffer)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  OMX_BUFFERHEADERTYPE       *bufHdr= NULL; // buffer header
-  unsigned                         i= 0; // Temporary counter
-  struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
-  struct vdec_setbuffer_cmd setbuffers;
-  OMX_PTR privateAppData = NULL;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_BUFFERHEADERTYPE       *bufHdr= NULL; // buffer header
+    unsigned                         i= 0; // Temporary counter
+    struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
+    struct vdec_setbuffer_cmd setbuffers;
+    OMX_PTR privateAppData = NULL;
 #if defined(_ANDROID_HONEYCOMB_) || defined(_ANDROID_ICS_)
-  private_handle_t *handle = NULL;
+    private_handle_t *handle = NULL;
 #endif
-  OMX_U8 *buff = buffer;
+    OMX_U8 *buff = buffer;
 
-  if (!m_out_mem_ptr) {
-    DEBUG_PRINT_HIGH("Use_op_buf:Allocating output headers");
-    eRet = allocate_output_headers();
+    if (!m_out_mem_ptr) {
+        DEBUG_PRINT_HIGH("Use_op_buf:Allocating output headers");
+        eRet = allocate_output_headers();
 
 #ifdef MAX_RES_1080P
-    if(secure_mode)
-    {
-      eRet = vdec_alloc_meta_buffers();
-      if (eRet) {
-        DEBUG_PRINT_ERROR("ERROR in allocating meta buffers\n");
-        return OMX_ErrorInsufficientResources;
-      }
-    }
 
-    if(drv_ctx.decoder_format == VDEC_CODECTYPE_H264)
-    {
-      //allocate H264_mv_buffer
-      eRet = vdec_alloc_h264_mv();
-      if (eRet) {
-        DEBUG_PRINT_ERROR("ERROR in allocating MV buffers\n");
-        return OMX_ErrorInsufficientResources;
-      }
-    }
+        if (secure_mode) {
+            eRet = vdec_alloc_meta_buffers();
+
+            if (eRet) {
+                DEBUG_PRINT_ERROR("ERROR in allocating meta buffers\n");
+                return OMX_ErrorInsufficientResources;
+            }
+        }
+
+        if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264) {
+            //allocate H264_mv_buffer
+            eRet = vdec_alloc_h264_mv();
+
+            if (eRet) {
+                DEBUG_PRINT_ERROR("ERROR in allocating MV buffers\n");
+                return OMX_ErrorInsufficientResources;
+            }
+        }
+
 #endif
 
-  }
-
-  if (eRet == OMX_ErrorNone) {
-    for(i=0; i< drv_ctx.op_buf.actualcount; i++) {
-      if(BITMASK_ABSENT(&m_out_bm_count,i))
-      {
-        break;
-      }
     }
-  }
 
-  if(i >= drv_ctx.op_buf.actualcount) {
-    eRet = OMX_ErrorInsufficientResources;
-  }
+    if (eRet == OMX_ErrorNone) {
+        for (i=0; i< drv_ctx.op_buf.actualcount; i++) {
+            if (BITMASK_ABSENT(&m_out_bm_count,i)) {
+                break;
+            }
+        }
+    }
 
-  if (eRet == OMX_ErrorNone) {
+    if (i >= drv_ctx.op_buf.actualcount) {
+        eRet = OMX_ErrorInsufficientResources;
+    }
+
+    if (eRet == OMX_ErrorNone) {
 #if defined(_ANDROID_HONEYCOMB_) || defined(_ANDROID_ICS_)
-    if(m_enable_android_native_buffers) {
-        if (m_use_android_native_buffers) {
-            UseAndroidNativeBufferParams *params = (UseAndroidNativeBufferParams *)appData;
-            sp<android_native_buffer_t> nBuf = params->nativeBuffer;
-            handle = (private_handle_t *)nBuf->handle;
-            privateAppData = params->pAppPrivate;
-        } else {
-            handle = (private_handle_t *)buff;
-            privateAppData = appData;
-        }
 
-        if ((OMX_U32)handle->size < drv_ctx.op_buf.buffer_size) {
-            DEBUG_PRINT_ERROR("Insufficient sized buffer given for playback,"
-                              " expected %u, got %lu",
-                              drv_ctx.op_buf.buffer_size, (OMX_U32)handle->size);
-            return OMX_ErrorBadParameter;
-        }
+        if (m_enable_android_native_buffers) {
+            if (m_use_android_native_buffers) {
+                UseAndroidNativeBufferParams *params = (UseAndroidNativeBufferParams *)appData;
+                sp<android_native_buffer_t> nBuf = params->nativeBuffer;
+                handle = (private_handle_t *)nBuf->handle;
+                privateAppData = params->pAppPrivate;
+            } else {
+                handle = (private_handle_t *)buff;
+                privateAppData = appData;
+            }
 
-        if (!m_use_android_native_buffers) {
-            if (!secure_mode) {
-                buff =  (OMX_U8*)mmap(0, handle->size,
-                                      PROT_READ|PROT_WRITE, MAP_SHARED, handle->fd, 0);
-                if (buff == MAP_FAILED) {
-                  DEBUG_PRINT_ERROR("Failed to mmap pmem with fd = %d, size = %d", handle->fd, handle->size);
-                  return OMX_ErrorInsufficientResources;
+            if ((OMX_U32)handle->size < drv_ctx.op_buf.buffer_size) {
+                DEBUG_PRINT_ERROR("Insufficient sized buffer given for playback,"
+                        " expected %u, got %lu",
+                        drv_ctx.op_buf.buffer_size, (OMX_U32)handle->size);
+                return OMX_ErrorBadParameter;
+            }
+
+            if (!m_use_android_native_buffers) {
+                if (!secure_mode) {
+                    buff =  (OMX_U8*)mmap(0, handle->size,
+                            PROT_READ|PROT_WRITE, MAP_SHARED, handle->fd, 0);
+
+                    if (buff == MAP_FAILED) {
+                        DEBUG_PRINT_ERROR("Failed to mmap pmem with fd = %d, size = %d", handle->fd, handle->size);
+                        return OMX_ErrorInsufficientResources;
+                    }
                 }
             }
-        }
 
 #if defined(_ANDROID_ICS_)
-        native_buffer[i].nativehandle = handle;
-#endif
-        if(!handle) {
-            DEBUG_PRINT_ERROR("Native Buffer handle is NULL");
-            return OMX_ErrorBadParameter;
-        }
-        drv_ctx.ptr_outputbuffer[i].pmem_fd = handle->fd;
-        drv_ctx.ptr_outputbuffer[i].offset = 0;
-        drv_ctx.ptr_outputbuffer[i].bufferaddr = buff;
-        drv_ctx.ptr_outputbuffer[i].mmaped_size =
-            drv_ctx.ptr_outputbuffer[i].buffer_len = drv_ctx.op_buf.buffer_size;
-#if defined(_ANDROID_ICS_)
-        if (drv_ctx.interlace != VDEC_InterlaceFrameProgressive) {
-            int enable = 1;
-            setMetaData(handle, PP_PARAM_INTERLACED, (void*)&enable);
-        }
-#endif
-    } else
+            native_buffer[i].nativehandle = handle;
 #endif
 
-    if (!ouput_egl_buffers && !m_use_output_pmem) {
-#ifdef USE_ION
-        drv_ctx.op_buf_ion_info[i].ion_device_fd = alloc_map_ion_memory(
-                drv_ctx.op_buf.buffer_size,drv_ctx.op_buf.alignment,
-                &drv_ctx.op_buf_ion_info[i].ion_alloc_data,
-                &drv_ctx.op_buf_ion_info[i].fd_ion_data,ION_FLAG_CACHED);
-        if(drv_ctx.op_buf_ion_info[i].ion_device_fd < 0) {
-          return OMX_ErrorInsufficientResources;
-        }
-        drv_ctx.ptr_outputbuffer[i].pmem_fd = \
-          drv_ctx.op_buf_ion_info[i].fd_ion_data.fd;
-#else
-        drv_ctx.ptr_outputbuffer[i].pmem_fd = \
-          open (MEM_DEVICE,O_RDWR);
-
-        if (drv_ctx.ptr_outputbuffer[i].pmem_fd < 0) {
-          return OMX_ErrorInsufficientResources;
-        }
-
-        if(drv_ctx.ptr_outputbuffer[i].pmem_fd == 0)
-        {
-          drv_ctx.ptr_outputbuffer[i].pmem_fd = \
-            open (MEM_DEVICE,O_RDWR);
-          if (drv_ctx.ptr_outputbuffer[i].pmem_fd < 0) {
-            return OMX_ErrorInsufficientResources;
-          }
-        }
-
-        if(!align_pmem_buffers(drv_ctx.ptr_outputbuffer[i].pmem_fd,
-          drv_ctx.op_buf.buffer_size,
-          drv_ctx.op_buf.alignment))
-        {
-          DEBUG_PRINT_ERROR("\n align_pmem_buffers() failed");
-          close(drv_ctx.ptr_outputbuffer[i].pmem_fd);
-          return OMX_ErrorInsufficientResources;
-        }
-#endif
-        if(!secure_mode) {
-            drv_ctx.ptr_outputbuffer[i].bufferaddr =
-              (unsigned char *)mmap(NULL, drv_ctx.op_buf.buffer_size,
-              PROT_READ|PROT_WRITE, MAP_SHARED,
-              drv_ctx.ptr_outputbuffer[i].pmem_fd,0);
-            if (drv_ctx.ptr_outputbuffer[i].bufferaddr == MAP_FAILED) {
-                close(drv_ctx.ptr_outputbuffer[i].pmem_fd);
-#ifdef USE_ION
-                free_ion_memory(&drv_ctx.op_buf_ion_info[i]);
-#endif
-              return OMX_ErrorInsufficientResources;
+            if (!handle) {
+                DEBUG_PRINT_ERROR("Native Buffer handle is NULL");
+                return OMX_ErrorBadParameter;
             }
-        }
-        drv_ctx.ptr_outputbuffer[i].offset = 0;
-        privateAppData = appData;
-     }
-     else {
 
-       DEBUG_PRINT_LOW("Use_op_buf: out_pmem=%d",m_use_output_pmem);
+            drv_ctx.ptr_outputbuffer[i].pmem_fd = handle->fd;
+            drv_ctx.ptr_outputbuffer[i].offset = 0;
+            drv_ctx.ptr_outputbuffer[i].bufferaddr = buff;
+            drv_ctx.ptr_outputbuffer[i].mmaped_size =
+                drv_ctx.ptr_outputbuffer[i].buffer_len = drv_ctx.op_buf.buffer_size;
+#if defined(_ANDROID_ICS_)
 
-       if (!appData || !bytes )
-       {
-         DEBUG_PRINT_ERROR("\n Invalid appData or bytes");
-         return OMX_ErrorBadParameter;
-       }
+            if (drv_ctx.interlace != VDEC_InterlaceFrameProgressive) {
+                int enable = 1;
+                setMetaData(handle, PP_PARAM_INTERLACED, (void*)&enable);
+            }
 
-       if(!secure_mode && !buffer)
-       {
-         DEBUG_PRINT_ERROR("\n Bad parameters for use buffer in EGL image case");
-         return OMX_ErrorBadParameter;
-       }
+#endif
+        } else
+#endif
+
+            if (!ouput_egl_buffers && !m_use_output_pmem) {
+#ifdef USE_ION
+                drv_ctx.op_buf_ion_info[i].ion_device_fd = alloc_map_ion_memory(
+                        drv_ctx.op_buf.buffer_size,drv_ctx.op_buf.alignment,
+                        &drv_ctx.op_buf_ion_info[i].ion_alloc_data,
+                        &drv_ctx.op_buf_ion_info[i].fd_ion_data,ION_FLAG_CACHED);
+
+                if (drv_ctx.op_buf_ion_info[i].ion_device_fd < 0) {
+                    return OMX_ErrorInsufficientResources;
+                }
+
+                drv_ctx.ptr_outputbuffer[i].pmem_fd = \
+                                                      drv_ctx.op_buf_ion_info[i].fd_ion_data.fd;
+#else
+                drv_ctx.ptr_outputbuffer[i].pmem_fd = \
+                                                      open (MEM_DEVICE,O_RDWR);
+
+                if (drv_ctx.ptr_outputbuffer[i].pmem_fd < 0) {
+                    return OMX_ErrorInsufficientResources;
+                }
+
+                if (drv_ctx.ptr_outputbuffer[i].pmem_fd == 0) {
+                    drv_ctx.ptr_outputbuffer[i].pmem_fd = \
+                                                          open (MEM_DEVICE,O_RDWR);
+
+                    if (drv_ctx.ptr_outputbuffer[i].pmem_fd < 0) {
+                        return OMX_ErrorInsufficientResources;
+                    }
+                }
+
+                if (!align_pmem_buffers(drv_ctx.ptr_outputbuffer[i].pmem_fd,
+                            drv_ctx.op_buf.buffer_size,
+                            drv_ctx.op_buf.alignment)) {
+                    DEBUG_PRINT_ERROR("\n align_pmem_buffers() failed");
+                    close(drv_ctx.ptr_outputbuffer[i].pmem_fd);
+                    return OMX_ErrorInsufficientResources;
+                }
+
+#endif
+
+                if (!secure_mode) {
+                    drv_ctx.ptr_outputbuffer[i].bufferaddr =
+                        (unsigned char *)mmap(NULL, drv_ctx.op_buf.buffer_size,
+                                PROT_READ|PROT_WRITE, MAP_SHARED,
+                                drv_ctx.ptr_outputbuffer[i].pmem_fd,0);
+
+                    if (drv_ctx.ptr_outputbuffer[i].bufferaddr == MAP_FAILED) {
+                        close(drv_ctx.ptr_outputbuffer[i].pmem_fd);
+#ifdef USE_ION
+                        free_ion_memory(&drv_ctx.op_buf_ion_info[i]);
+#endif
+                        return OMX_ErrorInsufficientResources;
+                    }
+                }
+
+                drv_ctx.ptr_outputbuffer[i].offset = 0;
+                privateAppData = appData;
+            } else {
+
+                DEBUG_PRINT_LOW("Use_op_buf: out_pmem=%d",m_use_output_pmem);
+
+                if (!appData || !bytes ) {
+                    DEBUG_PRINT_ERROR("\n Invalid appData or bytes");
+                    return OMX_ErrorBadParameter;
+                }
+
+                if (!secure_mode && !buffer) {
+                    DEBUG_PRINT_ERROR("\n Bad parameters for use buffer in EGL image case");
+                    return OMX_ErrorBadParameter;
+                }
 
 
-        OMX_QCOM_PLATFORM_PRIVATE_LIST *pmem_list;
-        OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pmem_info;
-        pmem_list = (OMX_QCOM_PLATFORM_PRIVATE_LIST*) appData;
-        if (!pmem_list->entryList || !pmem_list->entryList->entry ||
-            !pmem_list->nEntries ||
-            pmem_list->entryList->type != OMX_QCOM_PLATFORM_PRIVATE_PMEM) {
-          DEBUG_PRINT_ERROR("\n Pmem info not valid in use buffer");
-          return OMX_ErrorBadParameter;
-        }
-        pmem_info = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
+                OMX_QCOM_PLATFORM_PRIVATE_LIST *pmem_list;
+                OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pmem_info;
+                pmem_list = (OMX_QCOM_PLATFORM_PRIVATE_LIST*) appData;
+
+                if (!pmem_list->entryList || !pmem_list->entryList->entry ||
+                        !pmem_list->nEntries ||
+                        pmem_list->entryList->type != OMX_QCOM_PLATFORM_PRIVATE_PMEM) {
+                    DEBUG_PRINT_ERROR("\n Pmem info not valid in use buffer");
+                    return OMX_ErrorBadParameter;
+                }
+
+                pmem_info = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
                     pmem_list->entryList->entry;
-        DEBUG_PRINT_LOW("vdec: use buf: pmem_fd=0x%x",
-                          pmem_info->pmem_fd);
-        drv_ctx.ptr_outputbuffer[i].pmem_fd = pmem_info->pmem_fd;
-        drv_ctx.ptr_outputbuffer[i].offset = pmem_info->offset;
-        drv_ctx.ptr_outputbuffer[i].bufferaddr = buff;
-        drv_ctx.ptr_outputbuffer[i].mmaped_size =
-        drv_ctx.ptr_outputbuffer[i].buffer_len = drv_ctx.op_buf.buffer_size;
-        privateAppData = appData;
-     }
-     m_pmem_info[i].offset = drv_ctx.ptr_outputbuffer[i].offset;
-     m_pmem_info[i].pmem_fd = drv_ctx.ptr_outputbuffer[i].pmem_fd;
+                DEBUG_PRINT_LOW("vdec: use buf: pmem_fd=0x%x",
+                        pmem_info->pmem_fd);
+                drv_ctx.ptr_outputbuffer[i].pmem_fd = pmem_info->pmem_fd;
+                drv_ctx.ptr_outputbuffer[i].offset = pmem_info->offset;
+                drv_ctx.ptr_outputbuffer[i].bufferaddr = buff;
+                drv_ctx.ptr_outputbuffer[i].mmaped_size =
+                    drv_ctx.ptr_outputbuffer[i].buffer_len = drv_ctx.op_buf.buffer_size;
+                privateAppData = appData;
+            }
 
-     *bufferHdr = (m_out_mem_ptr + i );
-     if(secure_mode)
-          drv_ctx.ptr_outputbuffer[i].bufferaddr = *bufferHdr;
-     setbuffers.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
-     memcpy (&setbuffers.buffer,&drv_ctx.ptr_outputbuffer[i],
-             sizeof (vdec_bufferpayload));
+        m_pmem_info[i].offset = drv_ctx.ptr_outputbuffer[i].offset;
+        m_pmem_info[i].pmem_fd = drv_ctx.ptr_outputbuffer[i].pmem_fd;
 
-     ioctl_msg.in  = &setbuffers;
-     ioctl_msg.out = NULL;
+        *bufferHdr = (m_out_mem_ptr + i );
 
-     DEBUG_PRINT_HIGH("Set the Output Buffer Idx: %d Addr: %x, pmem_fd=%0x%x", i,
-                       drv_ctx.ptr_outputbuffer[i],drv_ctx.ptr_outputbuffer[i].pmem_fd );
-     if (ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_SET_BUFFER,
-          &ioctl_msg) < 0)
-     {
-       DEBUG_PRINT_ERROR("\n Set output buffer failed");
-       return OMX_ErrorInsufficientResources;
-     }
-     // found an empty buffer at i
-     (*bufferHdr)->nAllocLen = drv_ctx.op_buf.buffer_size;
-     if (m_enable_android_native_buffers) {
-       DEBUG_PRINT_LOW("setting pBuffer to private_handle_t %p", handle);
-       (*bufferHdr)->pBuffer = (OMX_U8 *)handle;
-     } else {
-       (*bufferHdr)->pBuffer = buff;
-     }
-     (*bufferHdr)->pAppPrivate = privateAppData;
-     BITMASK_SET(&m_out_bm_count,i);
-  }
-  return eRet;
+        if (secure_mode)
+            drv_ctx.ptr_outputbuffer[i].bufferaddr = *bufferHdr;
+
+        setbuffers.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
+        memcpy (&setbuffers.buffer,&drv_ctx.ptr_outputbuffer[i],
+                sizeof (vdec_bufferpayload));
+
+        ioctl_msg.in  = &setbuffers;
+        ioctl_msg.out = NULL;
+
+        DEBUG_PRINT_HIGH("Set the Output Buffer Idx: %d Addr: %x, pmem_fd=%0x%x", i,
+                drv_ctx.ptr_outputbuffer[i],drv_ctx.ptr_outputbuffer[i].pmem_fd );
+
+        if (ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_SET_BUFFER,
+                    &ioctl_msg) < 0) {
+            DEBUG_PRINT_ERROR("\n Set output buffer failed");
+            return OMX_ErrorInsufficientResources;
+        }
+
+        // found an empty buffer at i
+        (*bufferHdr)->nAllocLen = drv_ctx.op_buf.buffer_size;
+
+        if (m_enable_android_native_buffers) {
+            DEBUG_PRINT_LOW("setting pBuffer to private_handle_t %p", handle);
+            (*bufferHdr)->pBuffer = (OMX_U8 *)handle;
+        } else {
+            (*bufferHdr)->pBuffer = buff;
+        }
+
+        (*bufferHdr)->pAppPrivate = privateAppData;
+        BITMASK_SET(&m_out_bm_count,i);
+    }
+
+    return eRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::use_input_heap_buffers
+   FUNCTION
+   omx_vdec::use_input_heap_buffers
 
-DESCRIPTION
-  OMX Use Buffer Heap allocation method implementation.
+   DESCRIPTION
+   OMX Use Buffer Heap allocation method implementation.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None , if everything successful.
+   RETURN VALUE
+   OMX Error None , if everything successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::use_input_heap_buffers(
-                         OMX_IN OMX_HANDLETYPE            hComp,
-                         OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                         OMX_IN OMX_U32                   port,
-                         OMX_IN OMX_PTR                   appData,
-                         OMX_IN OMX_U32                   bytes,
-                         OMX_IN OMX_U8*                   buffer)
+        OMX_IN OMX_HANDLETYPE            hComp,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                   port,
+        OMX_IN OMX_PTR                   appData,
+        OMX_IN OMX_U32                   bytes,
+        OMX_IN OMX_U8*                   buffer)
 {
-  DEBUG_PRINT_LOW("Inside %s, %p", __FUNCTION__, buffer);
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  if(!m_inp_heap_ptr)
-    m_inp_heap_ptr = (OMX_BUFFERHEADERTYPE*)
-               calloc( (sizeof(OMX_BUFFERHEADERTYPE)),
-               drv_ctx.ip_buf.actualcount);
-  if(!m_phdr_pmem_ptr)
-    m_phdr_pmem_ptr = (OMX_BUFFERHEADERTYPE**)
-               calloc( (sizeof(OMX_BUFFERHEADERTYPE*)),
-               drv_ctx.ip_buf.actualcount);
-  if(!m_inp_heap_ptr || !m_phdr_pmem_ptr)
-  {
-    DEBUG_PRINT_ERROR("Insufficent memory");
-    eRet = OMX_ErrorInsufficientResources;
-  }
-  else if (m_in_alloc_cnt < drv_ctx.ip_buf.actualcount)
-  {
-    input_use_buffer = true;
-    memset(&m_inp_heap_ptr[m_in_alloc_cnt], 0, sizeof(OMX_BUFFERHEADERTYPE));
-    m_inp_heap_ptr[m_in_alloc_cnt].pBuffer = buffer;
-    m_inp_heap_ptr[m_in_alloc_cnt].nAllocLen = bytes;
-    m_inp_heap_ptr[m_in_alloc_cnt].pAppPrivate = appData;
-    m_inp_heap_ptr[m_in_alloc_cnt].nInputPortIndex = (OMX_U32) OMX_DirInput;
-    m_inp_heap_ptr[m_in_alloc_cnt].nOutputPortIndex = (OMX_U32) OMX_DirMax;
-    *bufferHdr = &m_inp_heap_ptr[m_in_alloc_cnt];
-    eRet = allocate_input_buffer(hComp, &m_phdr_pmem_ptr[m_in_alloc_cnt], port, appData, bytes);
-    DEBUG_PRINT_HIGH("Heap buffer(%p) Pmem buffer(%p)", *bufferHdr, m_phdr_pmem_ptr[m_in_alloc_cnt]);
-    if (!m_input_free_q.insert_entry((unsigned)m_phdr_pmem_ptr[m_in_alloc_cnt], NULL, NULL))
-    {
-      DEBUG_PRINT_ERROR("\nERROR:Free_q is full");
-      return OMX_ErrorInsufficientResources;
+    DEBUG_PRINT_LOW("Inside %s, %p", __FUNCTION__, buffer);
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+
+    if (!m_inp_heap_ptr)
+        m_inp_heap_ptr = (OMX_BUFFERHEADERTYPE*)
+            calloc( (sizeof(OMX_BUFFERHEADERTYPE)),
+                    drv_ctx.ip_buf.actualcount);
+
+    if (!m_phdr_pmem_ptr)
+        m_phdr_pmem_ptr = (OMX_BUFFERHEADERTYPE**)
+            calloc( (sizeof(OMX_BUFFERHEADERTYPE*)),
+                    drv_ctx.ip_buf.actualcount);
+
+    if (!m_inp_heap_ptr || !m_phdr_pmem_ptr) {
+        DEBUG_PRINT_ERROR("Insufficent memory");
+        eRet = OMX_ErrorInsufficientResources;
+    } else if (m_in_alloc_cnt < drv_ctx.ip_buf.actualcount) {
+        input_use_buffer = true;
+        memset(&m_inp_heap_ptr[m_in_alloc_cnt], 0, sizeof(OMX_BUFFERHEADERTYPE));
+        m_inp_heap_ptr[m_in_alloc_cnt].pBuffer = buffer;
+        m_inp_heap_ptr[m_in_alloc_cnt].nAllocLen = bytes;
+        m_inp_heap_ptr[m_in_alloc_cnt].pAppPrivate = appData;
+        m_inp_heap_ptr[m_in_alloc_cnt].nInputPortIndex = (OMX_U32) OMX_DirInput;
+        m_inp_heap_ptr[m_in_alloc_cnt].nOutputPortIndex = (OMX_U32) OMX_DirMax;
+        *bufferHdr = &m_inp_heap_ptr[m_in_alloc_cnt];
+        eRet = allocate_input_buffer(hComp, &m_phdr_pmem_ptr[m_in_alloc_cnt], port, appData, bytes);
+        DEBUG_PRINT_HIGH("Heap buffer(%p) Pmem buffer(%p)", *bufferHdr, m_phdr_pmem_ptr[m_in_alloc_cnt]);
+
+        if (!m_input_free_q.insert_entry((unsigned)m_phdr_pmem_ptr[m_in_alloc_cnt], NULL, NULL)) {
+            DEBUG_PRINT_ERROR("\nERROR:Free_q is full");
+            return OMX_ErrorInsufficientResources;
+        }
+
+        m_in_alloc_cnt++;
+    } else {
+        DEBUG_PRINT_ERROR("All i/p buffers have been set!");
+        eRet = OMX_ErrorInsufficientResources;
     }
-    m_in_alloc_cnt++;
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("All i/p buffers have been set!");
-    eRet = OMX_ErrorInsufficientResources;
-  }
-  return eRet;
+
+    return eRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::UseBuffer
+   FUNCTION
+   omx_vdec::UseBuffer
 
-DESCRIPTION
-  OMX Use Buffer method implementation.
+   DESCRIPTION
+   OMX Use Buffer method implementation.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None , if everything successful.
+   RETURN VALUE
+   OMX Error None , if everything successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::use_buffer(
-                         OMX_IN OMX_HANDLETYPE            hComp,
-                         OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                         OMX_IN OMX_U32                   port,
-                         OMX_IN OMX_PTR                   appData,
-                         OMX_IN OMX_U32                   bytes,
-                         OMX_IN OMX_U8*                   buffer)
+        OMX_IN OMX_HANDLETYPE            hComp,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                   port,
+        OMX_IN OMX_PTR                   appData,
+        OMX_IN OMX_U32                   bytes,
+        OMX_IN OMX_U8*                   buffer)
 {
-  OMX_ERRORTYPE error = OMX_ErrorNone;
-  struct vdec_setbuffer_cmd setbuffers;
-  struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
+    OMX_ERRORTYPE error = OMX_ErrorNone;
+    struct vdec_setbuffer_cmd setbuffers;
+    struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
 
-  if (bufferHdr == NULL || bytes == 0)
-  {
-      DEBUG_PRINT_ERROR("bad param 0x%p %ld",bufferHdr, bytes);
-      return OMX_ErrorBadParameter;
-  }
+    if (bufferHdr == NULL || bytes == 0) {
+        DEBUG_PRINT_ERROR("bad param 0x%p %ld",bufferHdr, bytes);
+        return OMX_ErrorBadParameter;
+    }
 
-  if(!secure_mode && buffer == NULL) {
-      DEBUG_PRINT_ERROR("bad param 0x%p",buffer);
-      return OMX_ErrorBadParameter;
-  }
+    if (!secure_mode && buffer == NULL) {
+        DEBUG_PRINT_ERROR("bad param 0x%p",buffer);
+        return OMX_ErrorBadParameter;
+    }
 
-  if(m_state == OMX_StateInvalid)
-  {
-    DEBUG_PRINT_ERROR("Use Buffer in Invalid State\n");
-    return OMX_ErrorInvalidState;
-  }
-  if(port == OMX_CORE_INPUT_PORT_INDEX)
-    error = use_input_heap_buffers(hComp, bufferHdr, port, appData, bytes, buffer);
-  else if(port == OMX_CORE_OUTPUT_PORT_INDEX)
-    error = use_output_buffer(hComp,bufferHdr,port,appData,bytes,buffer); //not tested
-  else
-  {
-    DEBUG_PRINT_ERROR("Error: Invalid Port Index received %d\n",(int)port);
-    error = OMX_ErrorBadPortIndex;
-  }
-  DEBUG_PRINT_LOW("Use Buffer: port %u, buffer %p, eRet %d", port, *bufferHdr, error);
-  if(error == OMX_ErrorNone)
-  {
-    if(allocate_done() && BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
-    {
-      // Send the callback now
-      BITMASK_CLEAR((&m_flags),OMX_COMPONENT_IDLE_PENDING);
-      post_event(OMX_CommandStateSet,OMX_StateIdle,
-                         OMX_COMPONENT_GENERATE_EVENT);
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("Use Buffer in Invalid State\n");
+        return OMX_ErrorInvalidState;
     }
-    if(port == OMX_CORE_INPUT_PORT_INDEX && m_inp_bPopulated &&
-       BITMASK_PRESENT(&m_flags,OMX_COMPONENT_INPUT_ENABLE_PENDING))
-    {
-      BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_ENABLE_PENDING);
-      post_event(OMX_CommandPortEnable,
-          OMX_CORE_INPUT_PORT_INDEX,
-          OMX_COMPONENT_GENERATE_EVENT);
+
+    if (port == OMX_CORE_INPUT_PORT_INDEX)
+        error = use_input_heap_buffers(hComp, bufferHdr, port, appData, bytes, buffer);
+    else if (port == OMX_CORE_OUTPUT_PORT_INDEX)
+        error = use_output_buffer(hComp,bufferHdr,port,appData,bytes,buffer); //not tested
+    else {
+        DEBUG_PRINT_ERROR("Error: Invalid Port Index received %d\n",(int)port);
+        error = OMX_ErrorBadPortIndex;
     }
-    else if(port == OMX_CORE_OUTPUT_PORT_INDEX && m_out_bPopulated &&
-            BITMASK_PRESENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING))
-    {
-      BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
-      post_event(OMX_CommandPortEnable,
-                 OMX_CORE_OUTPUT_PORT_INDEX,
-                 OMX_COMPONENT_GENERATE_EVENT);
+
+    DEBUG_PRINT_LOW("Use Buffer: port %u, buffer %p, eRet %d", port, *bufferHdr, error);
+
+    if (error == OMX_ErrorNone) {
+        if (allocate_done() && BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING)) {
+            // Send the callback now
+            BITMASK_CLEAR((&m_flags),OMX_COMPONENT_IDLE_PENDING);
+            post_event(OMX_CommandStateSet,OMX_StateIdle,
+                    OMX_COMPONENT_GENERATE_EVENT);
+        }
+
+        if (port == OMX_CORE_INPUT_PORT_INDEX && m_inp_bPopulated &&
+                BITMASK_PRESENT(&m_flags,OMX_COMPONENT_INPUT_ENABLE_PENDING)) {
+            BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_ENABLE_PENDING);
+            post_event(OMX_CommandPortEnable,
+                    OMX_CORE_INPUT_PORT_INDEX,
+                    OMX_COMPONENT_GENERATE_EVENT);
+        } else if (port == OMX_CORE_OUTPUT_PORT_INDEX && m_out_bPopulated &&
+                BITMASK_PRESENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING)) {
+            BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
+            post_event(OMX_CommandPortEnable,
+                    OMX_CORE_OUTPUT_PORT_INDEX,
+                    OMX_COMPONENT_GENERATE_EVENT);
+        }
     }
-  }
-  return error;
+
+    return error;
 }
 
 OMX_ERRORTYPE omx_vdec::free_input_buffer(unsigned int bufferindex,
-                                OMX_BUFFERHEADERTYPE *pmem_bufferHdr)
+        OMX_BUFFERHEADERTYPE *pmem_bufferHdr)
 {
-  if (m_inp_heap_ptr && !input_use_buffer && arbitrary_bytes)
-  {
-    if(m_inp_heap_ptr[bufferindex].pBuffer)
-      free(m_inp_heap_ptr[bufferindex].pBuffer);
-    m_inp_heap_ptr[bufferindex].pBuffer = NULL;
-  }
-  if (pmem_bufferHdr)
-    free_input_buffer(pmem_bufferHdr);
-  return OMX_ErrorNone;
+    if (m_inp_heap_ptr && !input_use_buffer && arbitrary_bytes) {
+        if (m_inp_heap_ptr[bufferindex].pBuffer)
+            free(m_inp_heap_ptr[bufferindex].pBuffer);
+
+        m_inp_heap_ptr[bufferindex].pBuffer = NULL;
+    }
+
+    if (pmem_bufferHdr)
+        free_input_buffer(pmem_bufferHdr);
+
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_vdec::free_input_buffer(OMX_BUFFERHEADERTYPE *bufferHdr)
 {
-  unsigned int index = 0;
-  if (bufferHdr == NULL || m_inp_mem_ptr == NULL)
-  {
-    return OMX_ErrorBadParameter;
-  }
+    unsigned int index = 0;
 
-  index = bufferHdr - m_inp_mem_ptr;
-  DEBUG_PRINT_LOW("Free Input Buffer index = %d",index);
+    if (bufferHdr == NULL || m_inp_mem_ptr == NULL) {
+        return OMX_ErrorBadParameter;
+    }
 
-  if (index < drv_ctx.ip_buf.actualcount && drv_ctx.ptr_inputbuffer)
-  {
+    index = bufferHdr - m_inp_mem_ptr;
     DEBUG_PRINT_LOW("Free Input Buffer index = %d",index);
-    if (drv_ctx.ptr_inputbuffer[index].pmem_fd > 0)
-    {
-       struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
-       struct vdec_setbuffer_cmd setbuffers;
-       setbuffers.buffer_type = VDEC_BUFFER_TYPE_INPUT;
-       memcpy (&setbuffers.buffer,&drv_ctx.ptr_inputbuffer[index],
-          sizeof (vdec_bufferpayload));
-       ioctl_msg.in  = &setbuffers;
-       ioctl_msg.out = NULL;
-       int ioctl_r = ioctl (drv_ctx.video_driver_fd,
-                            VDEC_IOCTL_FREE_BUFFER, &ioctl_msg);
-       if (ioctl_r < 0)
-       {
-          DEBUG_PRINT_ERROR("\nVDEC_IOCTL_FREE_BUFFER returned error %d", ioctl_r);
-       }
-       if (!secure_mode) {
-           DEBUG_PRINT_LOW("unmap the input buffer fd=%d",
+
+    if (index < drv_ctx.ip_buf.actualcount && drv_ctx.ptr_inputbuffer) {
+        DEBUG_PRINT_LOW("Free Input Buffer index = %d",index);
+
+        if (drv_ctx.ptr_inputbuffer[index].pmem_fd > 0) {
+            struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
+            struct vdec_setbuffer_cmd setbuffers;
+            setbuffers.buffer_type = VDEC_BUFFER_TYPE_INPUT;
+            memcpy (&setbuffers.buffer,&drv_ctx.ptr_inputbuffer[index],
+                    sizeof (vdec_bufferpayload));
+            ioctl_msg.in  = &setbuffers;
+            ioctl_msg.out = NULL;
+            int ioctl_r = ioctl (drv_ctx.video_driver_fd,
+                    VDEC_IOCTL_FREE_BUFFER, &ioctl_msg);
+
+            if (ioctl_r < 0) {
+                DEBUG_PRINT_ERROR("\nVDEC_IOCTL_FREE_BUFFER returned error %d", ioctl_r);
+            }
+
+            if (!secure_mode) {
+                DEBUG_PRINT_LOW("unmap the input buffer fd=%d",
                         drv_ctx.ptr_inputbuffer[index].pmem_fd);
-           DEBUG_PRINT_LOW("unmap the input buffer size=%d  address = %d",
+                DEBUG_PRINT_LOW("unmap the input buffer size=%d  address = %d",
                         drv_ctx.ptr_inputbuffer[index].mmaped_size,
                         drv_ctx.ptr_inputbuffer[index].bufferaddr);
-           munmap (drv_ctx.ptr_inputbuffer[index].bufferaddr,
-                   drv_ctx.ptr_inputbuffer[index].mmaped_size);
-       }
-       close (drv_ctx.ptr_inputbuffer[index].pmem_fd);
-       drv_ctx.ptr_inputbuffer[index].pmem_fd = -1;
-       if (m_desc_buffer_ptr && m_desc_buffer_ptr[index].buf_addr)
-       {
-         free(m_desc_buffer_ptr[index].buf_addr);
-         m_desc_buffer_ptr[index].buf_addr = NULL;
-         m_desc_buffer_ptr[index].desc_data_size = 0;
-       }
-#ifdef USE_ION
-       free_ion_memory(&drv_ctx.ip_buf_ion_info[index]);
-#endif
-    }
-  }
+                munmap (drv_ctx.ptr_inputbuffer[index].bufferaddr,
+                        drv_ctx.ptr_inputbuffer[index].mmaped_size);
+            }
 
-  return OMX_ErrorNone;
+            close (drv_ctx.ptr_inputbuffer[index].pmem_fd);
+            drv_ctx.ptr_inputbuffer[index].pmem_fd = -1;
+
+            if (m_desc_buffer_ptr && m_desc_buffer_ptr[index].buf_addr) {
+                free(m_desc_buffer_ptr[index].buf_addr);
+                m_desc_buffer_ptr[index].buf_addr = NULL;
+                m_desc_buffer_ptr[index].desc_data_size = 0;
+            }
+
+#ifdef USE_ION
+            free_ion_memory(&drv_ctx.ip_buf_ion_info[index]);
+#endif
+        }
+    }
+
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_vdec::free_output_buffer(OMX_BUFFERHEADERTYPE *bufferHdr)
 {
-  unsigned int index = 0;
+    unsigned int index = 0;
 
-  if (bufferHdr == NULL || m_out_mem_ptr == NULL)
-  {
-    DEBUG_PRINT_ERROR("\nfree_output_buffer ERROR");
-    return OMX_ErrorBadParameter;
-  }
+    if (bufferHdr == NULL || m_out_mem_ptr == NULL) {
+        DEBUG_PRINT_ERROR("\nfree_output_buffer ERROR");
+        return OMX_ErrorBadParameter;
+    }
 
-  index = bufferHdr - m_out_mem_ptr;
-  DEBUG_PRINT_LOW("Free ouput Buffer index = %d",index);
+    index = bufferHdr - m_out_mem_ptr;
+    DEBUG_PRINT_LOW("Free ouput Buffer index = %d",index);
 
-  if (index < drv_ctx.op_buf.actualcount
-      && drv_ctx.ptr_outputbuffer)
-  {
-    DEBUG_PRINT_LOW("Free ouput Buffer index = %d addr = %x", index,
-                    drv_ctx.ptr_outputbuffer[index].bufferaddr);
+    if (index < drv_ctx.op_buf.actualcount
+            && drv_ctx.ptr_outputbuffer) {
+        DEBUG_PRINT_LOW("Free ouput Buffer index = %d addr = %x", index,
+                drv_ctx.ptr_outputbuffer[index].bufferaddr);
 
-    struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
-    struct vdec_setbuffer_cmd setbuffers;
-    setbuffers.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
-    memcpy (&setbuffers.buffer,&drv_ctx.ptr_outputbuffer[index],
-        sizeof (vdec_bufferpayload));
-    ioctl_msg.in  = &setbuffers;
-    ioctl_msg.out = NULL;
-    DEBUG_PRINT_LOW("Release the Output Buffer");
-    if (ioctl (drv_ctx.video_driver_fd, VDEC_IOCTL_FREE_BUFFER,
-          &ioctl_msg) < 0)
-      DEBUG_PRINT_ERROR("\n Release output buffer failed in VCD");
+        struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
+        struct vdec_setbuffer_cmd setbuffers;
+        setbuffers.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
+        memcpy (&setbuffers.buffer,&drv_ctx.ptr_outputbuffer[index],
+                sizeof (vdec_bufferpayload));
+        ioctl_msg.in  = &setbuffers;
+        ioctl_msg.out = NULL;
+        DEBUG_PRINT_LOW("Release the Output Buffer");
+
+        if (ioctl (drv_ctx.video_driver_fd, VDEC_IOCTL_FREE_BUFFER,
+                    &ioctl_msg) < 0)
+            DEBUG_PRINT_ERROR("\n Release output buffer failed in VCD");
 
 #ifdef _ANDROID_
-    if(m_enable_android_native_buffers) {
-        if(drv_ctx.ptr_outputbuffer[index].pmem_fd > 0) {
-            if(!secure_mode) {
-                munmap(drv_ctx.ptr_outputbuffer[index].bufferaddr,
-                        drv_ctx.ptr_outputbuffer[index].mmaped_size);
+
+        if (m_enable_android_native_buffers) {
+            if (drv_ctx.ptr_outputbuffer[index].pmem_fd > 0) {
+                if (!secure_mode) {
+                    munmap(drv_ctx.ptr_outputbuffer[index].bufferaddr,
+                            drv_ctx.ptr_outputbuffer[index].mmaped_size);
+                }
             }
-        }
-        drv_ctx.ptr_outputbuffer[index].pmem_fd = -1;
-    } else {
+
+            drv_ctx.ptr_outputbuffer[index].pmem_fd = -1;
+        } else {
 #endif
-            if (drv_ctx.ptr_outputbuffer[index].pmem_fd > 0 && !ouput_egl_buffers && !m_use_output_pmem)
-            {
-               if(!secure_mode) {
+
+            if (drv_ctx.ptr_outputbuffer[index].pmem_fd > 0 && !ouput_egl_buffers && !m_use_output_pmem) {
+                if (!secure_mode) {
                     DEBUG_PRINT_LOW("unmap the output buffer fd = %d",
                             drv_ctx.ptr_outputbuffer[index].pmem_fd);
                     DEBUG_PRINT_LOW("unmap the ouput buffer size=%d  address = %d",
@@ -4593,1370 +4370,1307 @@
                             drv_ctx.ptr_outputbuffer[index].bufferaddr);
                     munmap (drv_ctx.ptr_outputbuffer[index].bufferaddr,
                             drv_ctx.ptr_outputbuffer[index].mmaped_size);
-               }
-               close (drv_ctx.ptr_outputbuffer[index].pmem_fd);
-               drv_ctx.ptr_outputbuffer[index].pmem_fd = -1;
+                }
+
+                close (drv_ctx.ptr_outputbuffer[index].pmem_fd);
+                drv_ctx.ptr_outputbuffer[index].pmem_fd = -1;
 #ifdef USE_ION
                 free_ion_memory(&drv_ctx.op_buf_ion_info[index]);
 #endif
 #ifdef _ANDROID_
                 m_heap_ptr[index].video_heap_ptr = NULL;
                 m_heap_count = m_heap_count - 1;
-                if (m_heap_count == 0)
-                {
+
+                if (m_heap_count == 0) {
                     free(m_heap_ptr);
                     m_heap_ptr = NULL;
                 }
+
 #endif // _ANDROID_
-          }
+            }
+
 #ifdef _ANDROID_
-       }
+        }
+
 #endif
-  }
+    }
+
 #ifdef MAX_RES_1080P
-  if(secure_mode)
-  {
-    vdec_dealloc_meta_buffers();
-  }
-  if(drv_ctx.decoder_format == VDEC_CODECTYPE_H264)
-  {
-    vdec_dealloc_h264_mv();
-  }
+
+    if (secure_mode) {
+        vdec_dealloc_meta_buffers();
+    }
+
+    if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264) {
+        vdec_dealloc_h264_mv();
+    }
+
 #endif
 
-  return OMX_ErrorNone;
+    return OMX_ErrorNone;
 
 }
 
 OMX_ERRORTYPE omx_vdec::allocate_input_heap_buffer(OMX_HANDLETYPE       hComp,
-                                         OMX_BUFFERHEADERTYPE **bufferHdr,
-                                         OMX_U32              port,
-                                         OMX_PTR              appData,
-                                         OMX_U32              bytes)
+        OMX_BUFFERHEADERTYPE **bufferHdr,
+        OMX_U32              port,
+        OMX_PTR              appData,
+        OMX_U32              bytes)
 {
-  OMX_BUFFERHEADERTYPE *input = NULL;
-  unsigned char *buf_addr = NULL;
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  unsigned   i = 0;
+    OMX_BUFFERHEADERTYPE *input = NULL;
+    unsigned char *buf_addr = NULL;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    unsigned   i = 0;
 
-  /* Sanity Check*/
-  if (bufferHdr == NULL)
-  {
-    return OMX_ErrorBadParameter;
-  }
-
-  if (m_inp_heap_ptr == NULL)
-  {
-    m_inp_heap_ptr = (OMX_BUFFERHEADERTYPE*) \
-                     calloc( (sizeof(OMX_BUFFERHEADERTYPE)),
-                     drv_ctx.ip_buf.actualcount);
-    m_phdr_pmem_ptr = (OMX_BUFFERHEADERTYPE**) \
-                     calloc( (sizeof(OMX_BUFFERHEADERTYPE*)),
-                     drv_ctx.ip_buf.actualcount);
-
-    if (m_inp_heap_ptr == NULL)
-    {
-      DEBUG_PRINT_ERROR("\n m_inp_heap_ptr Allocation failed ");
-      return OMX_ErrorInsufficientResources;
-    }
-  }
-
-  /*Find a Free index*/
-  for(i=0; i< drv_ctx.ip_buf.actualcount; i++)
-  {
-    if(BITMASK_ABSENT(&m_heap_inp_bm_count,i))
-    {
-      DEBUG_PRINT_LOW("Free Input Buffer Index %d",i);
-      break;
-    }
-  }
-
-  if (i < drv_ctx.ip_buf.actualcount)
-  {
-    buf_addr = (unsigned char *)malloc (drv_ctx.ip_buf.buffer_size);
-
-    if (buf_addr == NULL)
-    {
-      return OMX_ErrorInsufficientResources;
+    /* Sanity Check*/
+    if (bufferHdr == NULL) {
+        return OMX_ErrorBadParameter;
     }
 
-    *bufferHdr = (m_inp_heap_ptr + i);
-    input = *bufferHdr;
-    BITMASK_SET(&m_heap_inp_bm_count,i);
+    if (m_inp_heap_ptr == NULL) {
+        m_inp_heap_ptr = (OMX_BUFFERHEADERTYPE*) \
+                         calloc( (sizeof(OMX_BUFFERHEADERTYPE)),
+                                 drv_ctx.ip_buf.actualcount);
+        m_phdr_pmem_ptr = (OMX_BUFFERHEADERTYPE**) \
+                          calloc( (sizeof(OMX_BUFFERHEADERTYPE*)),
+                                  drv_ctx.ip_buf.actualcount);
 
-    input->pBuffer           = (OMX_U8 *)buf_addr;
-    input->nSize             = sizeof(OMX_BUFFERHEADERTYPE);
-    input->nVersion.nVersion = OMX_SPEC_VERSION;
-    input->nAllocLen         = drv_ctx.ip_buf.buffer_size - DEVICE_SCRATCH;
-    input->pAppPrivate       = appData;
-    input->nInputPortIndex   = OMX_CORE_INPUT_PORT_INDEX;
-    DEBUG_PRINT_LOW("Address of Heap Buffer %p",*bufferHdr );
-    eRet = allocate_input_buffer(hComp,&m_phdr_pmem_ptr [i],port,appData,bytes);
-    DEBUG_PRINT_LOW("Address of Pmem Buffer %p",m_phdr_pmem_ptr [i] );
-    /*Add the Buffers to freeq*/
-    if (!m_input_free_q.insert_entry((unsigned)m_phdr_pmem_ptr [i],NULL,NULL))
-    {
-      DEBUG_PRINT_ERROR("\nERROR:Free_q is full");
-      return OMX_ErrorInsufficientResources;
+        if (m_inp_heap_ptr == NULL) {
+            DEBUG_PRINT_ERROR("\n m_inp_heap_ptr Allocation failed ");
+            return OMX_ErrorInsufficientResources;
+        }
     }
-  }
-  else
-  {
-    return OMX_ErrorBadParameter;
-  }
 
-  return eRet;
+    /*Find a Free index*/
+    for (i=0; i< drv_ctx.ip_buf.actualcount; i++) {
+        if (BITMASK_ABSENT(&m_heap_inp_bm_count,i)) {
+            DEBUG_PRINT_LOW("Free Input Buffer Index %d",i);
+            break;
+        }
+    }
+
+    if (i < drv_ctx.ip_buf.actualcount) {
+        buf_addr = (unsigned char *)malloc (drv_ctx.ip_buf.buffer_size);
+
+        if (buf_addr == NULL) {
+            return OMX_ErrorInsufficientResources;
+        }
+
+        *bufferHdr = (m_inp_heap_ptr + i);
+        input = *bufferHdr;
+        BITMASK_SET(&m_heap_inp_bm_count,i);
+
+        input->pBuffer           = (OMX_U8 *)buf_addr;
+        input->nSize             = sizeof(OMX_BUFFERHEADERTYPE);
+        input->nVersion.nVersion = OMX_SPEC_VERSION;
+        input->nAllocLen         = drv_ctx.ip_buf.buffer_size - DEVICE_SCRATCH;
+        input->pAppPrivate       = appData;
+        input->nInputPortIndex   = OMX_CORE_INPUT_PORT_INDEX;
+        DEBUG_PRINT_LOW("Address of Heap Buffer %p",*bufferHdr );
+        eRet = allocate_input_buffer(hComp,&m_phdr_pmem_ptr [i],port,appData,bytes);
+        DEBUG_PRINT_LOW("Address of Pmem Buffer %p",m_phdr_pmem_ptr [i] );
+
+        /*Add the Buffers to freeq*/
+        if (!m_input_free_q.insert_entry((unsigned)m_phdr_pmem_ptr [i],NULL,NULL)) {
+            DEBUG_PRINT_ERROR("\nERROR:Free_q is full");
+            return OMX_ErrorInsufficientResources;
+        }
+    } else {
+        return OMX_ErrorBadParameter;
+    }
+
+    return eRet;
 
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::AllocateInputBuffer
+   FUNCTION
+   omx_vdec::AllocateInputBuffer
 
-DESCRIPTION
-  Helper function for allocate buffer in the input pin
+   DESCRIPTION
+   Helper function for allocate buffer in the input pin
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::allocate_input_buffer(
-                         OMX_IN OMX_HANDLETYPE            hComp,
-                         OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                         OMX_IN OMX_U32                   port,
-                         OMX_IN OMX_PTR                   appData,
-                         OMX_IN OMX_U32                   bytes)
+        OMX_IN OMX_HANDLETYPE            hComp,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                   port,
+        OMX_IN OMX_PTR                   appData,
+        OMX_IN OMX_U32                   bytes)
 {
 
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  struct vdec_setbuffer_cmd setbuffers;
-  OMX_BUFFERHEADERTYPE *input = NULL;
-  struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
-  unsigned   i = 0;
-  unsigned char *buf_addr = NULL;
-  int pmem_fd = -1;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    struct vdec_setbuffer_cmd setbuffers;
+    OMX_BUFFERHEADERTYPE *input = NULL;
+    struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
+    unsigned   i = 0;
+    unsigned char *buf_addr = NULL;
+    int pmem_fd = -1;
 
-  if((bytes + DEVICE_SCRATCH) != drv_ctx.ip_buf.buffer_size)
-  {
-    DEBUG_PRINT_LOW("Requested Size is wrong %d epected is %d",
-      bytes, drv_ctx.ip_buf.buffer_size);
-    //return OMX_ErrorBadParameter;
-  }
-
-  if(!m_inp_mem_ptr)
-  {
-    DEBUG_PRINT_HIGH("Allocate i/p buffer Header: Cnt(%d) Sz(%d)",
-      drv_ctx.ip_buf.actualcount,
-      drv_ctx.ip_buf.buffer_size);
-
-    m_inp_mem_ptr = (OMX_BUFFERHEADERTYPE*) \
-    calloc( (sizeof(OMX_BUFFERHEADERTYPE)), drv_ctx.ip_buf.actualcount);
-
-    if (m_inp_mem_ptr == NULL)
-    {
-      return OMX_ErrorInsufficientResources;
+    if ((bytes + DEVICE_SCRATCH) != drv_ctx.ip_buf.buffer_size) {
+        DEBUG_PRINT_LOW("Requested Size is wrong %d epected is %d",
+                bytes, drv_ctx.ip_buf.buffer_size);
+        //return OMX_ErrorBadParameter;
     }
 
-    drv_ctx.ptr_inputbuffer = (struct vdec_bufferpayload *) \
-    calloc ((sizeof (struct vdec_bufferpayload)),drv_ctx.ip_buf.actualcount);
+    if (!m_inp_mem_ptr) {
+        DEBUG_PRINT_HIGH("Allocate i/p buffer Header: Cnt(%d) Sz(%d)",
+                drv_ctx.ip_buf.actualcount,
+                drv_ctx.ip_buf.buffer_size);
 
-    if (drv_ctx.ptr_inputbuffer == NULL)
-    {
-      return OMX_ErrorInsufficientResources;
-    }
-#ifdef USE_ION
-    drv_ctx.ip_buf_ion_info = (struct vdec_ion *) \
-    calloc ((sizeof (struct vdec_ion)),drv_ctx.ip_buf.actualcount);
+        m_inp_mem_ptr = (OMX_BUFFERHEADERTYPE*) \
+                        calloc( (sizeof(OMX_BUFFERHEADERTYPE)), drv_ctx.ip_buf.actualcount);
 
-    if (drv_ctx.ip_buf_ion_info == NULL)
-    {
-      return OMX_ErrorInsufficientResources;
-    }
-#endif
+        if (m_inp_mem_ptr == NULL) {
+            return OMX_ErrorInsufficientResources;
+        }
 
-    for (i=0; i < drv_ctx.ip_buf.actualcount; i++)
-    {
-      drv_ctx.ptr_inputbuffer [i].pmem_fd = -1;
-#ifdef USE_ION
-      drv_ctx.ip_buf_ion_info[i].ion_device_fd = -1;
-#endif
-    }
-  }
+        drv_ctx.ptr_inputbuffer = (struct vdec_bufferpayload *) \
+                                  calloc ((sizeof (struct vdec_bufferpayload)),drv_ctx.ip_buf.actualcount);
 
-  for(i=0; i< drv_ctx.ip_buf.actualcount; i++)
-  {
-    if(BITMASK_ABSENT(&m_inp_bm_count,i))
-    {
-      DEBUG_PRINT_LOW("Free Input Buffer Index %d",i);
-      break;
-    }
-  }
-
-  if(i < drv_ctx.ip_buf.actualcount)
-  {
-    DEBUG_PRINT_LOW("Allocate input Buffer");
+        if (drv_ctx.ptr_inputbuffer == NULL) {
+            return OMX_ErrorInsufficientResources;
+        }
 
 #ifdef USE_ION
- drv_ctx.ip_buf_ion_info[i].ion_device_fd = alloc_map_ion_memory(
-                    drv_ctx.ip_buf.buffer_size,drv_ctx.op_buf.alignment,
-                    &drv_ctx.ip_buf_ion_info[i].ion_alloc_data,
-                    &drv_ctx.ip_buf_ion_info[i].fd_ion_data,ION_FLAG_CACHED);
-    if(drv_ctx.ip_buf_ion_info[i].ion_device_fd < 0) {
-        return OMX_ErrorInsufficientResources;
-     }
-    pmem_fd = drv_ctx.ip_buf_ion_info[i].fd_ion_data.fd;
-#else
-    pmem_fd = open (MEM_DEVICE,O_RDWR);
+        drv_ctx.ip_buf_ion_info = (struct vdec_ion *) \
+                                  calloc ((sizeof (struct vdec_ion)),drv_ctx.ip_buf.actualcount);
 
-    if (pmem_fd < 0)
-    {
-      DEBUG_PRINT_ERROR("\n open failed for pmem/adsp for input buffer");
-      return OMX_ErrorInsufficientResources;
-    }
+        if (drv_ctx.ip_buf_ion_info == NULL) {
+            return OMX_ErrorInsufficientResources;
+        }
 
-    if (pmem_fd == 0)
-    {
-      pmem_fd = open (MEM_DEVICE,O_RDWR);
-
-      if (pmem_fd < 0)
-      {
-        DEBUG_PRINT_ERROR("\n open failed for pmem/adsp for input buffer");
-        return OMX_ErrorInsufficientResources;
-      }
-    }
-
-    if(!align_pmem_buffers(pmem_fd, drv_ctx.ip_buf.buffer_size,
-      drv_ctx.ip_buf.alignment))
-    {
-      DEBUG_PRINT_ERROR("\n align_pmem_buffers() failed");
-      close(pmem_fd);
-      return OMX_ErrorInsufficientResources;
-    }
 #endif
-    if (!secure_mode) {
-        buf_addr = (unsigned char *)mmap(NULL,
-          drv_ctx.ip_buf.buffer_size,
-          PROT_READ|PROT_WRITE, MAP_SHARED, pmem_fd, 0);
 
-        if (buf_addr == MAP_FAILED)
-        {
-            close(pmem_fd);
+        for (i=0; i < drv_ctx.ip_buf.actualcount; i++) {
+            drv_ctx.ptr_inputbuffer [i].pmem_fd = -1;
 #ifdef USE_ION
-            free_ion_memory(&drv_ctx.ip_buf_ion_info[i]);
+            drv_ctx.ip_buf_ion_info[i].ion_device_fd = -1;
 #endif
-          DEBUG_PRINT_ERROR("\n Map Failed to allocate input buffer");
-          return OMX_ErrorInsufficientResources;
         }
     }
-    *bufferHdr = (m_inp_mem_ptr + i);
-    if (secure_mode)
-        drv_ctx.ptr_inputbuffer [i].bufferaddr = *bufferHdr;
-    else
-        drv_ctx.ptr_inputbuffer [i].bufferaddr = buf_addr;
-    drv_ctx.ptr_inputbuffer [i].pmem_fd = pmem_fd;
-    drv_ctx.ptr_inputbuffer [i].buffer_len = drv_ctx.ip_buf.buffer_size;
-    drv_ctx.ptr_inputbuffer [i].mmaped_size = drv_ctx.ip_buf.buffer_size;
-    drv_ctx.ptr_inputbuffer [i].offset = 0;
 
-    setbuffers.buffer_type = VDEC_BUFFER_TYPE_INPUT;
-    memcpy (&setbuffers.buffer,&drv_ctx.ptr_inputbuffer [i],
-            sizeof (vdec_bufferpayload));
-    ioctl_msg.in  = &setbuffers;
-    ioctl_msg.out = NULL;
-
-    if (ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_SET_BUFFER,
-         &ioctl_msg) < 0)
-    {
-      DEBUG_PRINT_ERROR("\n Set Buffers Failed");
-      return OMX_ErrorInsufficientResources;
+    for (i=0; i< drv_ctx.ip_buf.actualcount; i++) {
+        if (BITMASK_ABSENT(&m_inp_bm_count,i)) {
+            DEBUG_PRINT_LOW("Free Input Buffer Index %d",i);
+            break;
+        }
     }
 
-    input = *bufferHdr;
-    BITMASK_SET(&m_inp_bm_count,i);
-    DEBUG_PRINT_LOW("Buffer address %p of pmem",*bufferHdr);
-    if (secure_mode)
-         input->pBuffer = (OMX_U8 *)drv_ctx.ptr_inputbuffer [i].pmem_fd;
-    else
-         input->pBuffer           = (OMX_U8 *)buf_addr;
-    input->nSize             = sizeof(OMX_BUFFERHEADERTYPE);
-    input->nVersion.nVersion = OMX_SPEC_VERSION;
-    input->nAllocLen         = drv_ctx.ip_buf.buffer_size - DEVICE_SCRATCH;
-    input->pAppPrivate       = appData;
-    input->nInputPortIndex   = OMX_CORE_INPUT_PORT_INDEX;
-    input->pInputPortPrivate = (void *)&drv_ctx.ptr_inputbuffer [i];
+    if (i < drv_ctx.ip_buf.actualcount) {
+        DEBUG_PRINT_LOW("Allocate input Buffer");
 
-    if (drv_ctx.disable_dmx)
-    {
-      eRet = allocate_desc_buffer(i);
+#ifdef USE_ION
+        drv_ctx.ip_buf_ion_info[i].ion_device_fd = alloc_map_ion_memory(
+                drv_ctx.ip_buf.buffer_size,drv_ctx.op_buf.alignment,
+                &drv_ctx.ip_buf_ion_info[i].ion_alloc_data,
+                &drv_ctx.ip_buf_ion_info[i].fd_ion_data,ION_FLAG_CACHED);
+
+        if (drv_ctx.ip_buf_ion_info[i].ion_device_fd < 0) {
+            return OMX_ErrorInsufficientResources;
+        }
+
+        pmem_fd = drv_ctx.ip_buf_ion_info[i].fd_ion_data.fd;
+#else
+        pmem_fd = open (MEM_DEVICE,O_RDWR);
+
+        if (pmem_fd < 0) {
+            DEBUG_PRINT_ERROR("\n open failed for pmem/adsp for input buffer");
+            return OMX_ErrorInsufficientResources;
+        }
+
+        if (pmem_fd == 0) {
+            pmem_fd = open (MEM_DEVICE,O_RDWR);
+
+            if (pmem_fd < 0) {
+                DEBUG_PRINT_ERROR("\n open failed for pmem/adsp for input buffer");
+                return OMX_ErrorInsufficientResources;
+            }
+        }
+
+        if (!align_pmem_buffers(pmem_fd, drv_ctx.ip_buf.buffer_size,
+                    drv_ctx.ip_buf.alignment)) {
+            DEBUG_PRINT_ERROR("\n align_pmem_buffers() failed");
+            close(pmem_fd);
+            return OMX_ErrorInsufficientResources;
+        }
+
+#endif
+
+        if (!secure_mode) {
+            buf_addr = (unsigned char *)mmap(NULL,
+                    drv_ctx.ip_buf.buffer_size,
+                    PROT_READ|PROT_WRITE, MAP_SHARED, pmem_fd, 0);
+
+            if (buf_addr == MAP_FAILED) {
+                close(pmem_fd);
+#ifdef USE_ION
+                free_ion_memory(&drv_ctx.ip_buf_ion_info[i]);
+#endif
+                DEBUG_PRINT_ERROR("\n Map Failed to allocate input buffer");
+                return OMX_ErrorInsufficientResources;
+            }
+        }
+
+        *bufferHdr = (m_inp_mem_ptr + i);
+
+        if (secure_mode)
+            drv_ctx.ptr_inputbuffer [i].bufferaddr = *bufferHdr;
+        else
+            drv_ctx.ptr_inputbuffer [i].bufferaddr = buf_addr;
+
+        drv_ctx.ptr_inputbuffer [i].pmem_fd = pmem_fd;
+        drv_ctx.ptr_inputbuffer [i].buffer_len = drv_ctx.ip_buf.buffer_size;
+        drv_ctx.ptr_inputbuffer [i].mmaped_size = drv_ctx.ip_buf.buffer_size;
+        drv_ctx.ptr_inputbuffer [i].offset = 0;
+
+        setbuffers.buffer_type = VDEC_BUFFER_TYPE_INPUT;
+        memcpy (&setbuffers.buffer,&drv_ctx.ptr_inputbuffer [i],
+                sizeof (vdec_bufferpayload));
+        ioctl_msg.in  = &setbuffers;
+        ioctl_msg.out = NULL;
+
+        if (ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_SET_BUFFER,
+                    &ioctl_msg) < 0) {
+            DEBUG_PRINT_ERROR("\n Set Buffers Failed");
+            return OMX_ErrorInsufficientResources;
+        }
+
+        input = *bufferHdr;
+        BITMASK_SET(&m_inp_bm_count,i);
+        DEBUG_PRINT_LOW("Buffer address %p of pmem",*bufferHdr);
+
+        if (secure_mode)
+            input->pBuffer = (OMX_U8 *)drv_ctx.ptr_inputbuffer [i].pmem_fd;
+        else
+            input->pBuffer           = (OMX_U8 *)buf_addr;
+
+        input->nSize             = sizeof(OMX_BUFFERHEADERTYPE);
+        input->nVersion.nVersion = OMX_SPEC_VERSION;
+        input->nAllocLen         = drv_ctx.ip_buf.buffer_size - DEVICE_SCRATCH;
+        input->pAppPrivate       = appData;
+        input->nInputPortIndex   = OMX_CORE_INPUT_PORT_INDEX;
+        input->pInputPortPrivate = (void *)&drv_ctx.ptr_inputbuffer [i];
+
+        if (drv_ctx.disable_dmx) {
+            eRet = allocate_desc_buffer(i);
+        }
+    } else {
+        DEBUG_PRINT_ERROR("\nERROR:Input Buffer Index not found");
+        eRet = OMX_ErrorInsufficientResources;
     }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("\nERROR:Input Buffer Index not found");
-    eRet = OMX_ErrorInsufficientResources;
-  }
-  return eRet;
+
+    return eRet;
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::AllocateOutputBuffer
+   FUNCTION
+   omx_vdec::AllocateOutputBuffer
 
-DESCRIPTION
-  Helper fn for AllocateBuffer in the output pin
+   DESCRIPTION
+   Helper fn for AllocateBuffer in the output pin
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if everything went well.
+   RETURN VALUE
+   OMX Error None if everything went well.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::allocate_output_buffer(
-                         OMX_IN OMX_HANDLETYPE            hComp,
-                         OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                         OMX_IN OMX_U32                   port,
-                         OMX_IN OMX_PTR                   appData,
-                         OMX_IN OMX_U32                   bytes)
+        OMX_IN OMX_HANDLETYPE            hComp,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                   port,
+        OMX_IN OMX_PTR                   appData,
+        OMX_IN OMX_U32                   bytes)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  OMX_BUFFERHEADERTYPE       *bufHdr= NULL; // buffer header
-  unsigned                         i= 0; // Temporary counter
-  struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
-  struct vdec_setbuffer_cmd setbuffers;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_BUFFERHEADERTYPE       *bufHdr= NULL; // buffer header
+    unsigned                         i= 0; // Temporary counter
+    struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
+    struct vdec_setbuffer_cmd setbuffers;
 #ifdef USE_ION
-  int ion_device_fd =-1;
-  struct ion_allocation_data ion_alloc_data;
-  struct ion_fd_data fd_ion_data;
+    int ion_device_fd =-1;
+    struct ion_allocation_data ion_alloc_data;
+    struct ion_fd_data fd_ion_data;
 #endif
 
-  int nBufHdrSize        = 0;
-  int nPlatformEntrySize = 0;
-  int nPlatformListSize  = 0;
-  int nPMEMInfoSize = 0;
-  int pmem_fd = -1;
-  unsigned char *pmem_baseaddress = NULL;
+    int nBufHdrSize        = 0;
+    int nPlatformEntrySize = 0;
+    int nPlatformListSize  = 0;
+    int nPMEMInfoSize = 0;
+    int pmem_fd = -1;
+    unsigned char *pmem_baseaddress = NULL;
 
-  OMX_QCOM_PLATFORM_PRIVATE_LIST      *pPlatformList;
-  OMX_QCOM_PLATFORM_PRIVATE_ENTRY     *pPlatformEntry;
-  OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pPMEMInfo;
+    OMX_QCOM_PLATFORM_PRIVATE_LIST      *pPlatformList;
+    OMX_QCOM_PLATFORM_PRIVATE_ENTRY     *pPlatformEntry;
+    OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pPMEMInfo;
 
-  if (!m_out_mem_ptr)
-  {
-    DEBUG_PRINT_HIGH("Allocate o/p buffer Header: Cnt(%d) Sz(%d)",
-      drv_ctx.op_buf.actualcount,
-      drv_ctx.op_buf.buffer_size);
+    if (!m_out_mem_ptr) {
+        DEBUG_PRINT_HIGH("Allocate o/p buffer Header: Cnt(%d) Sz(%d)",
+                drv_ctx.op_buf.actualcount,
+                drv_ctx.op_buf.buffer_size);
 
-    DEBUG_PRINT_LOW("Allocating First Output Buffer(%d)",
-      drv_ctx.op_buf.actualcount);
+        DEBUG_PRINT_LOW("Allocating First Output Buffer(%d)",
+                drv_ctx.op_buf.actualcount);
 
-    nBufHdrSize        = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_BUFFERHEADERTYPE);
+        nBufHdrSize        = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_BUFFERHEADERTYPE);
 
-    nPMEMInfoSize      = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO);
-    nPlatformListSize  = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_QCOM_PLATFORM_PRIVATE_LIST);
-    nPlatformEntrySize = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_QCOM_PLATFORM_PRIVATE_ENTRY);
+        nPMEMInfoSize      = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO);
+        nPlatformListSize  = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_QCOM_PLATFORM_PRIVATE_LIST);
+        nPlatformEntrySize = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_QCOM_PLATFORM_PRIVATE_ENTRY);
 
-    DEBUG_PRINT_LOW("TotalBufHdr %d BufHdrSize %d PMEM %d PL %d",nBufHdrSize,
-                         sizeof(OMX_BUFFERHEADERTYPE),
-                         nPMEMInfoSize,
-                         nPlatformListSize);
-    DEBUG_PRINT_LOW("PE %d OutputBuffer Count %d",nPlatformEntrySize,
-                         drv_ctx.op_buf.actualcount);
+        DEBUG_PRINT_LOW("TotalBufHdr %d BufHdrSize %d PMEM %d PL %d",nBufHdrSize,
+                sizeof(OMX_BUFFERHEADERTYPE),
+                nPMEMInfoSize,
+                nPlatformListSize);
+        DEBUG_PRINT_LOW("PE %d OutputBuffer Count %d",nPlatformEntrySize,
+                drv_ctx.op_buf.actualcount);
 
-    m_out_mem_ptr = (OMX_BUFFERHEADERTYPE  *)calloc(nBufHdrSize,1);
-    // Alloc mem for platform specific info
-    char *pPtr=NULL;
-    pPtr = (char*) calloc(nPlatformListSize + nPlatformEntrySize +
-                                     nPMEMInfoSize,1);
-    drv_ctx.ptr_outputbuffer = (struct vdec_bufferpayload *)\
-      calloc (sizeof(struct vdec_bufferpayload),
-      drv_ctx.op_buf.actualcount);
-    drv_ctx.ptr_respbuffer = (struct vdec_output_frameinfo  *)\
-      calloc (sizeof (struct vdec_output_frameinfo),
-      drv_ctx.op_buf.actualcount);
+        m_out_mem_ptr = (OMX_BUFFERHEADERTYPE  *)calloc(nBufHdrSize,1);
+        // Alloc mem for platform specific info
+        char *pPtr=NULL;
+        pPtr = (char*) calloc(nPlatformListSize + nPlatformEntrySize +
+                nPMEMInfoSize,1);
+        drv_ctx.ptr_outputbuffer = (struct vdec_bufferpayload *)\
+                                   calloc (sizeof(struct vdec_bufferpayload),
+                                           drv_ctx.op_buf.actualcount);
+        drv_ctx.ptr_respbuffer = (struct vdec_output_frameinfo  *)\
+                                 calloc (sizeof (struct vdec_output_frameinfo),
+                                         drv_ctx.op_buf.actualcount);
 #ifdef USE_ION
-    drv_ctx.op_buf_ion_info = (struct vdec_ion *)\
-      calloc (sizeof(struct vdec_ion),
-      drv_ctx.op_buf.actualcount);
+        drv_ctx.op_buf_ion_info = (struct vdec_ion *)\
+                                  calloc (sizeof(struct vdec_ion),
+                                          drv_ctx.op_buf.actualcount);
 #endif
 #ifdef _ANDROID_
-    m_heap_ptr = (struct vidc_heap *)\
-       calloc (sizeof(struct vidc_heap),
-      drv_ctx.op_buf.actualcount);
+        m_heap_ptr = (struct vidc_heap *)\
+                     calloc (sizeof(struct vidc_heap),
+                             drv_ctx.op_buf.actualcount);
 #endif
 
-    if(m_out_mem_ptr && pPtr && drv_ctx.ptr_outputbuffer
-       && drv_ctx.ptr_respbuffer
+        if (m_out_mem_ptr && pPtr && drv_ctx.ptr_outputbuffer
+                && drv_ctx.ptr_respbuffer
 #ifdef _ANDROID_
-       && m_heap_ptr
+                && m_heap_ptr
 #endif
-       )
-    {
-      drv_ctx.ptr_outputbuffer[0].mmaped_size =
-        (drv_ctx.op_buf.buffer_size *
-         drv_ctx.op_buf.actualcount);
-      bufHdr          =  m_out_mem_ptr;
-      m_platform_list = (OMX_QCOM_PLATFORM_PRIVATE_LIST *)(pPtr);
-      m_platform_entry= (OMX_QCOM_PLATFORM_PRIVATE_ENTRY *)
-                        (((char *) m_platform_list)  + nPlatformListSize);
-      m_pmem_info     = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
-                        (((char *) m_platform_entry) + nPlatformEntrySize);
-      pPlatformList   = m_platform_list;
-      pPlatformEntry  = m_platform_entry;
-      pPMEMInfo       = m_pmem_info;
+           ) {
+            drv_ctx.ptr_outputbuffer[0].mmaped_size =
+                (drv_ctx.op_buf.buffer_size *
+                 drv_ctx.op_buf.actualcount);
+            bufHdr          =  m_out_mem_ptr;
+            m_platform_list = (OMX_QCOM_PLATFORM_PRIVATE_LIST *)(pPtr);
+            m_platform_entry= (OMX_QCOM_PLATFORM_PRIVATE_ENTRY *)
+                (((char *) m_platform_list)  + nPlatformListSize);
+            m_pmem_info     = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
+                (((char *) m_platform_entry) + nPlatformEntrySize);
+            pPlatformList   = m_platform_list;
+            pPlatformEntry  = m_platform_entry;
+            pPMEMInfo       = m_pmem_info;
 
-      DEBUG_PRINT_LOW("Memory Allocation Succeeded for OUT port%p",m_out_mem_ptr);
+            DEBUG_PRINT_LOW("Memory Allocation Succeeded for OUT port%p",m_out_mem_ptr);
 
-      // Settting the entire storage nicely
-      DEBUG_PRINT_LOW("bHdr %p OutMem %p PE %p",bufHdr, m_out_mem_ptr,pPlatformEntry);
-      DEBUG_PRINT_LOW("Pmem Info = %p",pPMEMInfo);
-      for(i=0; i < drv_ctx.op_buf.actualcount ; i++)
-      {
-        bufHdr->nSize              = sizeof(OMX_BUFFERHEADERTYPE);
-        bufHdr->nVersion.nVersion  = OMX_SPEC_VERSION;
-        // Set the values when we determine the right HxW param
-        bufHdr->nAllocLen          = 0;
-        bufHdr->nFilledLen         = 0;
-        bufHdr->pAppPrivate        = NULL;
-        bufHdr->nOutputPortIndex   = OMX_CORE_OUTPUT_PORT_INDEX;
-        // Platform specific PMEM Information
-        // Initialize the Platform Entry
-        //DEBUG_PRINT_LOW("Initializing the Platform Entry for %d",i);
-        pPlatformEntry->type       = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
-        pPlatformEntry->entry      = pPMEMInfo;
-        // Initialize the Platform List
-        pPlatformList->nEntries    = 1;
-        pPlatformList->entryList   = pPlatformEntry;
-        // Keep pBuffer NULL till vdec is opened
-        bufHdr->pBuffer            = NULL;
+            // Settting the entire storage nicely
+            DEBUG_PRINT_LOW("bHdr %p OutMem %p PE %p",bufHdr, m_out_mem_ptr,pPlatformEntry);
+            DEBUG_PRINT_LOW("Pmem Info = %p",pPMEMInfo);
 
-        pPMEMInfo->offset          =  0;
-        pPMEMInfo->pmem_fd = 0;
-        bufHdr->pPlatformPrivate = pPlatformList;
-        drv_ctx.ptr_outputbuffer[i].pmem_fd = -1;
+            for (i=0; i < drv_ctx.op_buf.actualcount ; i++) {
+                bufHdr->nSize              = sizeof(OMX_BUFFERHEADERTYPE);
+                bufHdr->nVersion.nVersion  = OMX_SPEC_VERSION;
+                // Set the values when we determine the right HxW param
+                bufHdr->nAllocLen          = 0;
+                bufHdr->nFilledLen         = 0;
+                bufHdr->pAppPrivate        = NULL;
+                bufHdr->nOutputPortIndex   = OMX_CORE_OUTPUT_PORT_INDEX;
+                // Platform specific PMEM Information
+                // Initialize the Platform Entry
+                //DEBUG_PRINT_LOW("Initializing the Platform Entry for %d",i);
+                pPlatformEntry->type       = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
+                pPlatformEntry->entry      = pPMEMInfo;
+                // Initialize the Platform List
+                pPlatformList->nEntries    = 1;
+                pPlatformList->entryList   = pPlatformEntry;
+                // Keep pBuffer NULL till vdec is opened
+                bufHdr->pBuffer            = NULL;
+
+                pPMEMInfo->offset          =  0;
+                pPMEMInfo->pmem_fd = 0;
+                bufHdr->pPlatformPrivate = pPlatformList;
+                drv_ctx.ptr_outputbuffer[i].pmem_fd = -1;
 #ifdef USE_ION
-        drv_ctx.op_buf_ion_info[i].ion_device_fd =-1;
+                drv_ctx.op_buf_ion_info[i].ion_device_fd =-1;
 #endif
-        /*Create a mapping between buffers*/
-        bufHdr->pOutputPortPrivate = &drv_ctx.ptr_respbuffer[i];
-        drv_ctx.ptr_respbuffer[i].client_data = (void *)\
-                                            &drv_ctx.ptr_outputbuffer[i];
+                /*Create a mapping between buffers*/
+                bufHdr->pOutputPortPrivate = &drv_ctx.ptr_respbuffer[i];
+                drv_ctx.ptr_respbuffer[i].client_data = (void *)\
+                                                        &drv_ctx.ptr_outputbuffer[i];
 #ifdef _ANDROID_
-        m_heap_ptr[i].video_heap_ptr = NULL;
+                m_heap_ptr[i].video_heap_ptr = NULL;
 #endif
-        // Move the buffer and buffer header pointers
-        bufHdr++;
-        pPMEMInfo++;
-        pPlatformEntry++;
-        pPlatformList++;
-      }
+                // Move the buffer and buffer header pointers
+                bufHdr++;
+                pPMEMInfo++;
+                pPlatformEntry++;
+                pPlatformList++;
+            }
+
 #ifdef MAX_RES_1080P
-      if(eRet == OMX_ErrorNone && secure_mode)
-      {
-        eRet = vdec_alloc_meta_buffers();
-        if (eRet) {
-          DEBUG_PRINT_ERROR("ERROR in allocating meta buffers\n");
-          return OMX_ErrorInsufficientResources;
-        }
-      }
 
-      if(eRet == OMX_ErrorNone && drv_ctx.decoder_format == VDEC_CODECTYPE_H264)
-      {
-        //Allocate the h264_mv_buffer
-        eRet = vdec_alloc_h264_mv();
-        if(eRet) {
-          DEBUG_PRINT_ERROR("ERROR in allocating MV buffers\n");
-          return OMX_ErrorInsufficientResources;
-        }
-      }
+            if (eRet == OMX_ErrorNone && secure_mode) {
+                eRet = vdec_alloc_meta_buffers();
+
+                if (eRet) {
+                    DEBUG_PRINT_ERROR("ERROR in allocating meta buffers\n");
+                    return OMX_ErrorInsufficientResources;
+                }
+            }
+
+            if (eRet == OMX_ErrorNone && drv_ctx.decoder_format == VDEC_CODECTYPE_H264) {
+                //Allocate the h264_mv_buffer
+                eRet = vdec_alloc_h264_mv();
+
+                if (eRet) {
+                    DEBUG_PRINT_ERROR("ERROR in allocating MV buffers\n");
+                    return OMX_ErrorInsufficientResources;
+                }
+            }
+
 #endif
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("Output buf mem alloc failed[0x%x][0x%x]\n",\
-                                        m_out_mem_ptr, pPtr);
-      if(m_out_mem_ptr)
-      {
-        free(m_out_mem_ptr);
-        m_out_mem_ptr = NULL;
-      }
-      if(pPtr)
-      {
-        free(pPtr);
-        pPtr = NULL;
-      }
-      if(drv_ctx.ptr_outputbuffer)
-      {
-        free(drv_ctx.ptr_outputbuffer);
-        drv_ctx.ptr_outputbuffer = NULL;
-      }
-      if(drv_ctx.ptr_respbuffer)
-      {
-        free(drv_ctx.ptr_respbuffer);
-        drv_ctx.ptr_respbuffer = NULL;
-      }
-#ifdef USE_ION
-    if (drv_ctx.op_buf_ion_info) {
-        DEBUG_PRINT_LOW("Free o/p ion context");
-        free(drv_ctx.op_buf_ion_info);
-        drv_ctx.op_buf_ion_info = NULL;
-    }
-#endif
-      eRet =  OMX_ErrorInsufficientResources;
-    }
-  }
+        } else {
+            DEBUG_PRINT_ERROR("Output buf mem alloc failed[0x%x][0x%x]\n",\
+                    m_out_mem_ptr, pPtr);
 
-  for (i=0; i< drv_ctx.op_buf.actualcount; i++)
-  {
-    if(BITMASK_ABSENT(&m_out_bm_count,i))
-    {
-      DEBUG_PRINT_LOW("Found a Free Output Buffer Index %d",i);
-      break;
-    }
-  }
+            if (m_out_mem_ptr) {
+                free(m_out_mem_ptr);
+                m_out_mem_ptr = NULL;
+            }
 
-  if (i < drv_ctx.op_buf.actualcount)
-  {
-    DEBUG_PRINT_LOW("Allocate Output Buffer");
+            if (pPtr) {
+                free(pPtr);
+                pPtr = NULL;
+            }
+
+            if (drv_ctx.ptr_outputbuffer) {
+                free(drv_ctx.ptr_outputbuffer);
+                drv_ctx.ptr_outputbuffer = NULL;
+            }
+
+            if (drv_ctx.ptr_respbuffer) {
+                free(drv_ctx.ptr_respbuffer);
+                drv_ctx.ptr_respbuffer = NULL;
+            }
 
 #ifdef USE_ION
-    drv_ctx.op_buf_ion_info[i].ion_device_fd = alloc_map_ion_memory(
-                    drv_ctx.op_buf.buffer_size,drv_ctx.op_buf.alignment,
-                    &drv_ctx.op_buf_ion_info[i].ion_alloc_data,
-                    &drv_ctx.op_buf_ion_info[i].fd_ion_data, ION_FLAG_CACHED);
-    if (drv_ctx.op_buf_ion_info[i].ion_device_fd < 0) {
-        return OMX_ErrorInsufficientResources;
-     }
-    pmem_fd = drv_ctx.op_buf_ion_info[i].fd_ion_data.fd;
+
+            if (drv_ctx.op_buf_ion_info) {
+                DEBUG_PRINT_LOW("Free o/p ion context");
+                free(drv_ctx.op_buf_ion_info);
+                drv_ctx.op_buf_ion_info = NULL;
+            }
+
+#endif
+            eRet =  OMX_ErrorInsufficientResources;
+        }
+    }
+
+    for (i=0; i< drv_ctx.op_buf.actualcount; i++) {
+        if (BITMASK_ABSENT(&m_out_bm_count,i)) {
+            DEBUG_PRINT_LOW("Found a Free Output Buffer Index %d",i);
+            break;
+        }
+    }
+
+    if (i < drv_ctx.op_buf.actualcount) {
+        DEBUG_PRINT_LOW("Allocate Output Buffer");
+
+#ifdef USE_ION
+        drv_ctx.op_buf_ion_info[i].ion_device_fd = alloc_map_ion_memory(
+                drv_ctx.op_buf.buffer_size,drv_ctx.op_buf.alignment,
+                &drv_ctx.op_buf_ion_info[i].ion_alloc_data,
+                &drv_ctx.op_buf_ion_info[i].fd_ion_data, ION_FLAG_CACHED);
+
+        if (drv_ctx.op_buf_ion_info[i].ion_device_fd < 0) {
+            return OMX_ErrorInsufficientResources;
+        }
+
+        pmem_fd = drv_ctx.op_buf_ion_info[i].fd_ion_data.fd;
 #else
-    pmem_fd = open (MEM_DEVICE,O_RDWR);
+        pmem_fd = open (MEM_DEVICE,O_RDWR);
 
-    if (pmem_fd < 0)
-    {
-      DEBUG_PRINT_ERROR("\nERROR:pmem fd for output buffer %d",
-        drv_ctx.op_buf.buffer_size);
-      return OMX_ErrorInsufficientResources;
-    }
-
-    if (pmem_fd == 0)
-    {
-      pmem_fd = open (MEM_DEVICE,O_RDWR);
-
-      if (pmem_fd < 0)
-      {
-         DEBUG_PRINT_ERROR("\nERROR:pmem fd for output buffer %d",
-           drv_ctx.op_buf.buffer_size);
-         return OMX_ErrorInsufficientResources;
-      }
-    }
-
-    if (!align_pmem_buffers(pmem_fd, drv_ctx.op_buf.buffer_size,
-      drv_ctx.op_buf.alignment))
-    {
-      DEBUG_PRINT_ERROR("\n align_pmem_buffers() failed");
-      close(pmem_fd);
-      return OMX_ErrorInsufficientResources;
-    }
-#endif
-    if (!secure_mode) {
-        pmem_baseaddress = (unsigned char *)mmap(NULL,
-                           drv_ctx.op_buf.buffer_size,
-                           PROT_READ|PROT_WRITE,MAP_SHARED,pmem_fd,0);
-
-        if (pmem_baseaddress == MAP_FAILED)
-        {
-          DEBUG_PRINT_ERROR("\n MMAP failed for Size %d",
-          drv_ctx.op_buf.buffer_size);
-          close(pmem_fd);
-#ifdef USE_ION
-          free_ion_memory(&drv_ctx.op_buf_ion_info[i]);
-#endif
-          return OMX_ErrorInsufficientResources;
+        if (pmem_fd < 0) {
+            DEBUG_PRINT_ERROR("\nERROR:pmem fd for output buffer %d",
+                    drv_ctx.op_buf.buffer_size);
+            return OMX_ErrorInsufficientResources;
         }
-    }
 
-    *bufferHdr = (m_out_mem_ptr + i);
-    if (secure_mode)
-        drv_ctx.ptr_outputbuffer [i].bufferaddr = *bufferHdr;
-    else
-        drv_ctx.ptr_outputbuffer [i].bufferaddr = pmem_baseaddress;
+        if (pmem_fd == 0) {
+            pmem_fd = open (MEM_DEVICE,O_RDWR);
 
-    drv_ctx.ptr_outputbuffer [i].pmem_fd = pmem_fd;
-    drv_ctx.ptr_outputbuffer [i].buffer_len = drv_ctx.op_buf.buffer_size;
-    drv_ctx.ptr_outputbuffer [i].mmaped_size = drv_ctx.op_buf.buffer_size;
-    drv_ctx.ptr_outputbuffer [i].offset = 0;
+            if (pmem_fd < 0) {
+                DEBUG_PRINT_ERROR("\nERROR:pmem fd for output buffer %d",
+                        drv_ctx.op_buf.buffer_size);
+                return OMX_ErrorInsufficientResources;
+            }
+        }
+
+        if (!align_pmem_buffers(pmem_fd, drv_ctx.op_buf.buffer_size,
+                    drv_ctx.op_buf.alignment)) {
+            DEBUG_PRINT_ERROR("\n align_pmem_buffers() failed");
+            close(pmem_fd);
+            return OMX_ErrorInsufficientResources;
+        }
+
+#endif
+
+        if (!secure_mode) {
+            pmem_baseaddress = (unsigned char *)mmap(NULL,
+                    drv_ctx.op_buf.buffer_size,
+                    PROT_READ|PROT_WRITE,MAP_SHARED,pmem_fd,0);
+
+            if (pmem_baseaddress == MAP_FAILED) {
+                DEBUG_PRINT_ERROR("\n MMAP failed for Size %d",
+                        drv_ctx.op_buf.buffer_size);
+                close(pmem_fd);
+#ifdef USE_ION
+                free_ion_memory(&drv_ctx.op_buf_ion_info[i]);
+#endif
+                return OMX_ErrorInsufficientResources;
+            }
+        }
+
+        *bufferHdr = (m_out_mem_ptr + i);
+
+        if (secure_mode)
+            drv_ctx.ptr_outputbuffer [i].bufferaddr = *bufferHdr;
+        else
+            drv_ctx.ptr_outputbuffer [i].bufferaddr = pmem_baseaddress;
+
+        drv_ctx.ptr_outputbuffer [i].pmem_fd = pmem_fd;
+        drv_ctx.ptr_outputbuffer [i].buffer_len = drv_ctx.op_buf.buffer_size;
+        drv_ctx.ptr_outputbuffer [i].mmaped_size = drv_ctx.op_buf.buffer_size;
+        drv_ctx.ptr_outputbuffer [i].offset = 0;
 
 #ifdef _ANDROID_
- #ifdef USE_ION
-    m_heap_ptr[i].video_heap_ptr = new VideoHeap (drv_ctx.op_buf_ion_info[i].ion_device_fd,
-                                drv_ctx.op_buf.buffer_size,
-                                pmem_baseaddress,
-                                ion_alloc_data.handle,
-                                pmem_fd);
-    m_heap_count = m_heap_count + 1;
+#ifdef USE_ION
+        m_heap_ptr[i].video_heap_ptr = new VideoHeap (drv_ctx.op_buf_ion_info[i].ion_device_fd,
+                drv_ctx.op_buf.buffer_size,
+                pmem_baseaddress,
+                ion_alloc_data.handle,
+                pmem_fd);
+        m_heap_count = m_heap_count + 1;
 #else
-    m_heap_ptr[i].video_heap_ptr = new VideoHeap (pmem_fd,
-                                drv_ctx.op_buf.buffer_size,
-                                pmem_baseaddress);
+        m_heap_ptr[i].video_heap_ptr = new VideoHeap (pmem_fd,
+                drv_ctx.op_buf.buffer_size,
+                pmem_baseaddress);
 #endif
 #endif
 
-    m_pmem_info[i].offset = drv_ctx.ptr_outputbuffer[i].offset;
+        m_pmem_info[i].offset = drv_ctx.ptr_outputbuffer[i].offset;
 #ifdef _ANDROID_
-    m_pmem_info[i].pmem_fd = (OMX_U32) m_heap_ptr[i].video_heap_ptr.get ();
+        m_pmem_info[i].pmem_fd = (OMX_U32) m_heap_ptr[i].video_heap_ptr.get ();
 #else
-    m_pmem_info[i].pmem_fd = drv_ctx.ptr_outputbuffer[i].pmem_fd ;
+        m_pmem_info[i].pmem_fd = drv_ctx.ptr_outputbuffer[i].pmem_fd ;
 #endif
-    setbuffers.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
-    memcpy (&setbuffers.buffer,&drv_ctx.ptr_outputbuffer [i],
-            sizeof (vdec_bufferpayload));
-    ioctl_msg.in  = &setbuffers;
-    ioctl_msg.out = NULL;
+        setbuffers.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
+        memcpy (&setbuffers.buffer,&drv_ctx.ptr_outputbuffer [i],
+                sizeof (vdec_bufferpayload));
+        ioctl_msg.in  = &setbuffers;
+        ioctl_msg.out = NULL;
 
-    DEBUG_PRINT_LOW("Set the Output Buffer Idx: %d Addr: %x", i, drv_ctx.ptr_outputbuffer[i]);
-    if (ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_SET_BUFFER,
-         &ioctl_msg) < 0)
-    {
-      DEBUG_PRINT_ERROR("\n Set output buffer failed");
-      return OMX_ErrorInsufficientResources;
+        DEBUG_PRINT_LOW("Set the Output Buffer Idx: %d Addr: %x", i, drv_ctx.ptr_outputbuffer[i]);
+
+        if (ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_SET_BUFFER,
+                    &ioctl_msg) < 0) {
+            DEBUG_PRINT_ERROR("\n Set output buffer failed");
+            return OMX_ErrorInsufficientResources;
+        }
+
+        // found an empty buffer at i
+        (*bufferHdr)->nAllocLen = drv_ctx.op_buf.buffer_size;
+        (*bufferHdr)->pBuffer = (OMX_U8*)drv_ctx.ptr_outputbuffer[i].bufferaddr;
+        (*bufferHdr)->pAppPrivate = appData;
+        BITMASK_SET(&m_out_bm_count,i);
+
+    } else {
+        DEBUG_PRINT_ERROR("\nERROR:Output Buffer Index not found");
+        eRet = OMX_ErrorInsufficientResources;
     }
 
-    // found an empty buffer at i
-    (*bufferHdr)->nAllocLen = drv_ctx.op_buf.buffer_size;
-    (*bufferHdr)->pBuffer = (OMX_U8*)drv_ctx.ptr_outputbuffer[i].bufferaddr;
-    (*bufferHdr)->pAppPrivate = appData;
-    BITMASK_SET(&m_out_bm_count,i);
-
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("\nERROR:Output Buffer Index not found");
-    eRet = OMX_ErrorInsufficientResources;
-  }
-  return eRet;
+    return eRet;
 }
 
 
 // AllocateBuffer  -- API Call
 /* ======================================================================
-FUNCTION
-  omx_vdec::AllocateBuffer
+   FUNCTION
+   omx_vdec::AllocateBuffer
 
-DESCRIPTION
-  Returns zero if all the buffers released..
+   DESCRIPTION
+   Returns zero if all the buffers released..
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::allocate_buffer(OMX_IN OMX_HANDLETYPE                hComp,
-                                     OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                                     OMX_IN OMX_U32                        port,
-                                     OMX_IN OMX_PTR                     appData,
-                                     OMX_IN OMX_U32                       bytes)
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                        port,
+        OMX_IN OMX_PTR                     appData,
+        OMX_IN OMX_U32                       bytes)
 {
     unsigned i = 0;
     OMX_ERRORTYPE eRet = OMX_ErrorNone; // OMX return type
 
     DEBUG_PRINT_LOW("Allocate buffer on port %d", (int)port);
-    if(m_state == OMX_StateInvalid)
-    {
+
+    if (m_state == OMX_StateInvalid) {
         DEBUG_PRINT_ERROR("Allocate Buf in Invalid State\n");
         return OMX_ErrorInvalidState;
     }
 
-    if(port == OMX_CORE_INPUT_PORT_INDEX)
-    {
-      if (arbitrary_bytes)
-      {
-          eRet = allocate_input_heap_buffer (hComp,bufferHdr,port,appData,bytes);
-      }
-      else
-      {
-        eRet = allocate_input_buffer(hComp,bufferHdr,port,appData,bytes);
-      }
+    if (port == OMX_CORE_INPUT_PORT_INDEX) {
+        if (arbitrary_bytes) {
+            eRet = allocate_input_heap_buffer (hComp,bufferHdr,port,appData,bytes);
+        } else {
+            eRet = allocate_input_buffer(hComp,bufferHdr,port,appData,bytes);
+        }
+    } else if (port == OMX_CORE_OUTPUT_PORT_INDEX) {
+        eRet = client_buffers.allocate_buffers_color_convert(hComp,bufferHdr,port,
+                appData,bytes);
+    } else {
+        DEBUG_PRINT_ERROR("Error: Invalid Port Index received %d\n",(int)port);
+        eRet = OMX_ErrorBadPortIndex;
     }
-    else if(port == OMX_CORE_OUTPUT_PORT_INDEX)
-    {
-      eRet = client_buffers.allocate_buffers_color_convert(hComp,bufferHdr,port,
-                                                           appData,bytes);
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("Error: Invalid Port Index received %d\n",(int)port);
-      eRet = OMX_ErrorBadPortIndex;
-    }
+
     DEBUG_PRINT_LOW("Checking for Output Allocate buffer Done");
-    if(eRet == OMX_ErrorNone)
-    {
-        if(allocate_done()){
-            if(BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
-            {
+
+    if (eRet == OMX_ErrorNone) {
+        if (allocate_done()) {
+            if (BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING)) {
                 // Send the callback now
                 BITMASK_CLEAR((&m_flags),OMX_COMPONENT_IDLE_PENDING);
                 post_event(OMX_CommandStateSet,OMX_StateIdle,
-                                   OMX_COMPONENT_GENERATE_EVENT);
+                        OMX_COMPONENT_GENERATE_EVENT);
             }
         }
-        if(port == OMX_CORE_INPUT_PORT_INDEX && m_inp_bPopulated)
-        {
-          if(BITMASK_PRESENT(&m_flags,OMX_COMPONENT_INPUT_ENABLE_PENDING))
-          {
-             BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_ENABLE_PENDING);
-             post_event(OMX_CommandPortEnable,
+
+        if (port == OMX_CORE_INPUT_PORT_INDEX && m_inp_bPopulated) {
+            if (BITMASK_PRESENT(&m_flags,OMX_COMPONENT_INPUT_ENABLE_PENDING)) {
+                BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_ENABLE_PENDING);
+                post_event(OMX_CommandPortEnable,
                         OMX_CORE_INPUT_PORT_INDEX,
                         OMX_COMPONENT_GENERATE_EVENT);
-          }
+            }
         }
-        if(port == OMX_CORE_OUTPUT_PORT_INDEX && m_out_bPopulated)
-            {
-          if(BITMASK_PRESENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING))
-          {
-             BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
+
+        if (port == OMX_CORE_OUTPUT_PORT_INDEX && m_out_bPopulated) {
+            if (BITMASK_PRESENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING)) {
+                BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
                 post_event(OMX_CommandPortEnable,
-                           OMX_CORE_OUTPUT_PORT_INDEX,
-                           OMX_COMPONENT_GENERATE_EVENT);
+                        OMX_CORE_OUTPUT_PORT_INDEX,
+                        OMX_COMPONENT_GENERATE_EVENT);
             }
         }
     }
+
     DEBUG_PRINT_LOW("Allocate Buffer exit with ret Code %d",eRet);
     return eRet;
 }
 
 // Free Buffer - API call
 /* ======================================================================
-FUNCTION
-  omx_vdec::FreeBuffer
+   FUNCTION
+   omx_vdec::FreeBuffer
 
-DESCRIPTION
+   DESCRIPTION
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::free_buffer(OMX_IN OMX_HANDLETYPE         hComp,
-                                      OMX_IN OMX_U32                 port,
-                                      OMX_IN OMX_BUFFERHEADERTYPE* buffer)
+        OMX_IN OMX_U32                 port,
+        OMX_IN OMX_BUFFERHEADERTYPE* buffer)
 {
     OMX_ERRORTYPE eRet = OMX_ErrorNone;
     unsigned int nPortIndex;
 
     DEBUG_PRINT_LOW("In for decoder free_buffer");
 
-    if(m_state == OMX_StateIdle &&
-       (BITMASK_PRESENT(&m_flags ,OMX_COMPONENT_LOADING_PENDING)))
-    {
+    if (m_state == OMX_StateIdle &&
+            (BITMASK_PRESENT(&m_flags ,OMX_COMPONENT_LOADING_PENDING))) {
         DEBUG_PRINT_LOW(" free buffer while Component in Loading pending");
-    }
-    else if((m_inp_bEnabled == OMX_FALSE && port == OMX_CORE_INPUT_PORT_INDEX)||
-            (m_out_bEnabled == OMX_FALSE && port == OMX_CORE_OUTPUT_PORT_INDEX))
-    {
+    } else if ((m_inp_bEnabled == OMX_FALSE && port == OMX_CORE_INPUT_PORT_INDEX)||
+            (m_out_bEnabled == OMX_FALSE && port == OMX_CORE_OUTPUT_PORT_INDEX)) {
         DEBUG_PRINT_LOW("Free Buffer while port %d disabled", port);
-    }
-    else if(m_state == OMX_StateExecuting || m_state == OMX_StatePause)
-    {
+    } else if (m_state == OMX_StateExecuting || m_state == OMX_StatePause) {
         DEBUG_PRINT_ERROR("Invalid state to free buffer,ports need to be disabled\n");
         post_event(OMX_EventError,
-                   OMX_ErrorPortUnpopulated,
-                   OMX_COMPONENT_GENERATE_EVENT);
+                OMX_ErrorPortUnpopulated,
+                OMX_COMPONENT_GENERATE_EVENT);
 
         return OMX_ErrorIncorrectStateOperation;
-    }
-    else if (m_state != OMX_StateInvalid)
-    {
+    } else if (m_state != OMX_StateInvalid) {
         DEBUG_PRINT_ERROR("Invalid state to free buffer,port lost Buffers\n");
         post_event(OMX_EventError,
-                   OMX_ErrorPortUnpopulated,
-                   OMX_COMPONENT_GENERATE_EVENT);
+                OMX_ErrorPortUnpopulated,
+                OMX_COMPONENT_GENERATE_EVENT);
     }
 
-    if(port == OMX_CORE_INPUT_PORT_INDEX)
-    {
-      /*Check if arbitrary bytes*/
-      if(!arbitrary_bytes && !input_use_buffer)
-        nPortIndex = buffer - m_inp_mem_ptr;
-      else
-        nPortIndex = buffer - m_inp_heap_ptr;
+    if (port == OMX_CORE_INPUT_PORT_INDEX) {
+        /*Check if arbitrary bytes*/
+        if (!arbitrary_bytes && !input_use_buffer)
+            nPortIndex = buffer - m_inp_mem_ptr;
+        else
+            nPortIndex = buffer - m_inp_heap_ptr;
 
         DEBUG_PRINT_LOW("free_buffer on i/p port - Port idx %d", nPortIndex);
-        if(nPortIndex < drv_ctx.ip_buf.actualcount)
-        {
-         // Clear the bit associated with it.
-         BITMASK_CLEAR(&m_inp_bm_count,nPortIndex);
-         BITMASK_CLEAR(&m_heap_inp_bm_count,nPortIndex);
-         if (input_use_buffer == true)
-         {
 
-            DEBUG_PRINT_LOW("Free pmem Buffer index %d",nPortIndex);
-            if(m_phdr_pmem_ptr)
-              free_input_buffer(m_phdr_pmem_ptr[nPortIndex]);
-         }
-         else
-         {
-            if (arbitrary_bytes)
-            {
-              if(m_phdr_pmem_ptr)
-                free_input_buffer(nPortIndex,m_phdr_pmem_ptr[nPortIndex]);
-              else
-                free_input_buffer(nPortIndex,NULL);
+        if (nPortIndex < drv_ctx.ip_buf.actualcount) {
+            // Clear the bit associated with it.
+            BITMASK_CLEAR(&m_inp_bm_count,nPortIndex);
+            BITMASK_CLEAR(&m_heap_inp_bm_count,nPortIndex);
+
+            if (input_use_buffer == true) {
+
+                DEBUG_PRINT_LOW("Free pmem Buffer index %d",nPortIndex);
+
+                if (m_phdr_pmem_ptr)
+                    free_input_buffer(m_phdr_pmem_ptr[nPortIndex]);
+            } else {
+                if (arbitrary_bytes) {
+                    if (m_phdr_pmem_ptr)
+                        free_input_buffer(nPortIndex,m_phdr_pmem_ptr[nPortIndex]);
+                    else
+                        free_input_buffer(nPortIndex,NULL);
+                } else
+                    free_input_buffer(buffer);
             }
-            else
-              free_input_buffer(buffer);
-         }
-         m_inp_bPopulated = OMX_FALSE;
-         /*Free the Buffer Header*/
-          if (release_input_done())
-          {
-            DEBUG_PRINT_HIGH("ALL input buffers are freed/released");
-            free_input_buffer_header();
-          }
-        }
-        else
-        {
+
+            m_inp_bPopulated = OMX_FALSE;
+
+            /*Free the Buffer Header*/
+            if (release_input_done()) {
+                DEBUG_PRINT_HIGH("ALL input buffers are freed/released");
+                free_input_buffer_header();
+            }
+        } else {
             DEBUG_PRINT_ERROR("Error: free_buffer ,Port Index Invalid\n");
             eRet = OMX_ErrorBadPortIndex;
         }
 
-        if(BITMASK_PRESENT((&m_flags),OMX_COMPONENT_INPUT_DISABLE_PENDING)
-           && release_input_done())
-        {
+        if (BITMASK_PRESENT((&m_flags),OMX_COMPONENT_INPUT_DISABLE_PENDING)
+                && release_input_done()) {
             DEBUG_PRINT_LOW("MOVING TO DISABLED STATE");
             BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_DISABLE_PENDING);
             post_event(OMX_CommandPortDisable,
-                       OMX_CORE_INPUT_PORT_INDEX,
-                       OMX_COMPONENT_GENERATE_EVENT);
+                    OMX_CORE_INPUT_PORT_INDEX,
+                    OMX_COMPONENT_GENERATE_EVENT);
         }
-    }
-    else if(port == OMX_CORE_OUTPUT_PORT_INDEX)
-    {
+    } else if (port == OMX_CORE_OUTPUT_PORT_INDEX) {
         // check if the buffer is valid
         nPortIndex = buffer - client_buffers.get_il_buf_hdr();
-        if(nPortIndex < drv_ctx.op_buf.actualcount)
-        {
+
+        if (nPortIndex < drv_ctx.op_buf.actualcount) {
             DEBUG_PRINT_LOW("free_buffer on o/p port - Port idx %d", nPortIndex);
             // Clear the bit associated with it.
             BITMASK_CLEAR(&m_out_bm_count,nPortIndex);
             m_out_bPopulated = OMX_FALSE;
             client_buffers.free_output_buffer (buffer);
 
-            if (release_output_done())
-            {
-              free_output_buffer_header();
+            if (release_output_done()) {
+                free_output_buffer_header();
             }
-        }
-        else
-        {
+        } else {
             DEBUG_PRINT_ERROR("Error: free_buffer , Port Index Invalid\n");
             eRet = OMX_ErrorBadPortIndex;
         }
-        if(BITMASK_PRESENT((&m_flags),OMX_COMPONENT_OUTPUT_DISABLE_PENDING)
-           && release_output_done())
-        {
+
+        if (BITMASK_PRESENT((&m_flags),OMX_COMPONENT_OUTPUT_DISABLE_PENDING)
+                && release_output_done()) {
             DEBUG_PRINT_LOW("FreeBuffer : If any Disable event pending,post it");
 
-                DEBUG_PRINT_LOW("MOVING TO DISABLED STATE");
-                BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_DISABLE_PENDING);
+            DEBUG_PRINT_LOW("MOVING TO DISABLED STATE");
+            BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_DISABLE_PENDING);
 #ifdef _ANDROID_ICS_
-                if (m_enable_android_native_buffers)
-                {
-                    DEBUG_PRINT_LOW("FreeBuffer - outport disabled: reset native buffers");
-                    memset(&native_buffer, 0 ,(sizeof(struct nativebuffer) * MAX_NUM_INPUT_OUTPUT_BUFFERS));
-                }
+
+            if (m_enable_android_native_buffers) {
+                DEBUG_PRINT_LOW("FreeBuffer - outport disabled: reset native buffers");
+                memset(&native_buffer, 0 ,(sizeof(struct nativebuffer) * MAX_NUM_INPUT_OUTPUT_BUFFERS));
+            }
+
 #endif
 
-                post_event(OMX_CommandPortDisable,
-                           OMX_CORE_OUTPUT_PORT_INDEX,
-                           OMX_COMPONENT_GENERATE_EVENT);
+            post_event(OMX_CommandPortDisable,
+                    OMX_CORE_OUTPUT_PORT_INDEX,
+                    OMX_COMPONENT_GENERATE_EVENT);
         }
-    }
-    else
-    {
+    } else {
         eRet = OMX_ErrorBadPortIndex;
     }
-    if((eRet == OMX_ErrorNone) &&
-       (BITMASK_PRESENT(&m_flags ,OMX_COMPONENT_LOADING_PENDING)))
-    {
-        if(release_done())
-        {
+
+    if ((eRet == OMX_ErrorNone) &&
+            (BITMASK_PRESENT(&m_flags ,OMX_COMPONENT_LOADING_PENDING))) {
+        if (release_done()) {
             // Send the callback now
             BITMASK_CLEAR((&m_flags),OMX_COMPONENT_LOADING_PENDING);
             post_event(OMX_CommandStateSet, OMX_StateLoaded,
-                                      OMX_COMPONENT_GENERATE_EVENT);
+                    OMX_COMPONENT_GENERATE_EVENT);
         }
     }
+
     return eRet;
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::EmptyThisBuffer
+   FUNCTION
+   omx_vdec::EmptyThisBuffer
 
-DESCRIPTION
-  This routine is used to push the encoded video frames to
-  the video decoder.
+   DESCRIPTION
+   This routine is used to push the encoded video frames to
+   the video decoder.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  OMX Error None if everything went successful.
+   RETURN VALUE
+   OMX Error None if everything went successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::empty_this_buffer(OMX_IN OMX_HANDLETYPE         hComp,
-                                           OMX_IN OMX_BUFFERHEADERTYPE* buffer)
+        OMX_IN OMX_BUFFERHEADERTYPE* buffer)
 {
-  OMX_ERRORTYPE ret1 = OMX_ErrorNone;
-  unsigned int nBufferIndex = drv_ctx.ip_buf.actualcount;
+    OMX_ERRORTYPE ret1 = OMX_ErrorNone;
+    unsigned int nBufferIndex = drv_ctx.ip_buf.actualcount;
 
-  if (buffer->nFlags & OMX_BUFFERFLAG_CODECCONFIG)
-  {
-    codec_config_flag = true;
-    DEBUG_PRINT_LOW("%s: codec_config buffer", __FUNCTION__);
-  }
-  else
-  {
-    codec_config_flag = false;
-  }
+    if (buffer->nFlags & OMX_BUFFERFLAG_CODECCONFIG) {
+        codec_config_flag = true;
+        DEBUG_PRINT_LOW("%s: codec_config buffer", __FUNCTION__);
+    } else {
+        codec_config_flag = false;
+    }
 
-  if(m_state == OMX_StateInvalid)
-  {
-      DEBUG_PRINT_ERROR("Empty this buffer in Invalid State\n");
-      return OMX_ErrorInvalidState;
-  }
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("Empty this buffer in Invalid State\n");
+        return OMX_ErrorInvalidState;
+    }
 
-  if (buffer == NULL)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:ETB Buffer is NULL");
-    return OMX_ErrorBadParameter;
-  }
+    if (buffer == NULL) {
+        DEBUG_PRINT_ERROR("\nERROR:ETB Buffer is NULL");
+        return OMX_ErrorBadParameter;
+    }
 
-  if (!m_inp_bEnabled)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:ETB incorrect state operation, input port is disabled.");
-    return OMX_ErrorIncorrectStateOperation;
-  }
+    if (!m_inp_bEnabled) {
+        DEBUG_PRINT_ERROR("\nERROR:ETB incorrect state operation, input port is disabled.");
+        return OMX_ErrorIncorrectStateOperation;
+    }
 
-  if (buffer->nInputPortIndex != OMX_CORE_INPUT_PORT_INDEX)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:ETB invalid port in header %d", buffer->nInputPortIndex);
-    return OMX_ErrorBadPortIndex;
-  }
+    if (buffer->nInputPortIndex != OMX_CORE_INPUT_PORT_INDEX) {
+        DEBUG_PRINT_ERROR("\nERROR:ETB invalid port in header %d", buffer->nInputPortIndex);
+        return OMX_ErrorBadPortIndex;
+    }
 
 #ifdef _ANDROID_
-  if(iDivXDrmDecrypt)
-  {
-    OMX_ERRORTYPE drmErr = iDivXDrmDecrypt->Decrypt(buffer);
-    if(drmErr != OMX_ErrorNone) {
-        // this error can be ignored
-        DEBUG_PRINT_LOW("\nERROR:iDivXDrmDecrypt->Decrypt %d", drmErr);
+
+    if (iDivXDrmDecrypt) {
+        OMX_ERRORTYPE drmErr = iDivXDrmDecrypt->Decrypt(buffer);
+
+        if (drmErr != OMX_ErrorNone) {
+            // this error can be ignored
+            DEBUG_PRINT_LOW("\nERROR:iDivXDrmDecrypt->Decrypt %d", drmErr);
+        }
     }
-  }
-  if (perf_flag)
-  {
-    if (!latency)
-    {
-      dec_time.stop();
-      latency = dec_time.processing_time_us();
-      dec_time.start();
+
+    if (perf_flag) {
+        if (!latency) {
+            dec_time.stop();
+            latency = dec_time.processing_time_us();
+            dec_time.start();
+        }
     }
-  }
+
 #endif //_ANDROID_
 
-  if (arbitrary_bytes)
-  {
-    nBufferIndex = buffer - m_inp_heap_ptr;
-  }
-  else
-  {
-     if (input_use_buffer == true)
-     {
-       nBufferIndex = buffer - m_inp_heap_ptr;
-       m_inp_mem_ptr[nBufferIndex].nFilledLen = m_inp_heap_ptr[nBufferIndex].nFilledLen;
-       m_inp_mem_ptr[nBufferIndex].nTimeStamp = m_inp_heap_ptr[nBufferIndex].nTimeStamp;
-       m_inp_mem_ptr[nBufferIndex].nFlags = m_inp_heap_ptr[nBufferIndex].nFlags;
-       buffer = &m_inp_mem_ptr[nBufferIndex];
-       DEBUG_PRINT_LOW("Non-Arbitrary mode - buffer address is: malloc %p, pmem%p in Index %d, buffer %p of size %d",
-                         &m_inp_heap_ptr[nBufferIndex], &m_inp_mem_ptr[nBufferIndex],nBufferIndex, buffer, buffer->nFilledLen);
-     }
-     else{
-       nBufferIndex = buffer - m_inp_mem_ptr;
-     }
-  }
+    if (arbitrary_bytes) {
+        nBufferIndex = buffer - m_inp_heap_ptr;
+    } else {
+        if (input_use_buffer == true) {
+            nBufferIndex = buffer - m_inp_heap_ptr;
+            m_inp_mem_ptr[nBufferIndex].nFilledLen = m_inp_heap_ptr[nBufferIndex].nFilledLen;
+            m_inp_mem_ptr[nBufferIndex].nTimeStamp = m_inp_heap_ptr[nBufferIndex].nTimeStamp;
+            m_inp_mem_ptr[nBufferIndex].nFlags = m_inp_heap_ptr[nBufferIndex].nFlags;
+            buffer = &m_inp_mem_ptr[nBufferIndex];
+            DEBUG_PRINT_LOW("Non-Arbitrary mode - buffer address is: malloc %p, pmem%p in Index %d, buffer %p of size %d",
+                    &m_inp_heap_ptr[nBufferIndex], &m_inp_mem_ptr[nBufferIndex],nBufferIndex, buffer, buffer->nFilledLen);
+        } else {
+            nBufferIndex = buffer - m_inp_mem_ptr;
+        }
+    }
 
-  if (nBufferIndex > drv_ctx.ip_buf.actualcount )
-  {
-    DEBUG_PRINT_ERROR("\nERROR:ETB nBufferIndex is invalid");
-    return OMX_ErrorBadParameter;
-  }
+    if (nBufferIndex > drv_ctx.ip_buf.actualcount ) {
+        DEBUG_PRINT_ERROR("\nERROR:ETB nBufferIndex is invalid");
+        return OMX_ErrorBadParameter;
+    }
 
-  DEBUG_PRINT_LOW("[ETB] BHdr(%p) pBuf(%p) nTS(%lld) nFL(%lu)",
-    buffer, buffer->pBuffer, buffer->nTimeStamp, buffer->nFilledLen);
-  if (arbitrary_bytes)
-  {
-    post_event ((unsigned)hComp,(unsigned)buffer,
+    DEBUG_PRINT_LOW("[ETB] BHdr(%p) pBuf(%p) nTS(%lld) nFL(%lu)",
+            buffer, buffer->pBuffer, buffer->nTimeStamp, buffer->nFilledLen);
+
+    if (arbitrary_bytes) {
+        post_event ((unsigned)hComp,(unsigned)buffer,
                 OMX_COMPONENT_GENERATE_ETB_ARBITRARY);
-  }
-  else
-  {
-    if (!(client_extradata & OMX_TIMEINFO_EXTRADATA))
-      set_frame_rate(buffer->nTimeStamp);
-    post_event ((unsigned)hComp,(unsigned)buffer,OMX_COMPONENT_GENERATE_ETB);
-  }
-  return OMX_ErrorNone;
+    } else {
+        if (!(client_extradata & OMX_TIMEINFO_EXTRADATA))
+            set_frame_rate(buffer->nTimeStamp);
+
+        post_event ((unsigned)hComp,(unsigned)buffer,OMX_COMPONENT_GENERATE_ETB);
+    }
+
+    return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::empty_this_buffer_proxy
+   FUNCTION
+   omx_vdec::empty_this_buffer_proxy
 
-DESCRIPTION
-  This routine is used to push the encoded video frames to
-  the video decoder.
+   DESCRIPTION
+   This routine is used to push the encoded video frames to
+   the video decoder.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  OMX Error None if everything went successful.
+   RETURN VALUE
+   OMX Error None if everything went successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::empty_this_buffer_proxy(OMX_IN OMX_HANDLETYPE         hComp,
-                                                 OMX_IN OMX_BUFFERHEADERTYPE* buffer)
+        OMX_IN OMX_BUFFERHEADERTYPE* buffer)
 {
-  int push_cnt = 0,i=0;
-  unsigned nPortIndex = 0;
-  OMX_ERRORTYPE ret = OMX_ErrorNone;
-  struct vdec_input_frameinfo frameinfo;
-  struct vdec_bufferpayload *temp_buffer;
-  struct vdec_ioctl_msg ioctl_msg;
-  struct vdec_seqheader seq_header;
-  bool port_setting_changed = true;
+    int push_cnt = 0,i=0;
+    unsigned nPortIndex = 0;
+    OMX_ERRORTYPE ret = OMX_ErrorNone;
+    struct vdec_input_frameinfo frameinfo;
+    struct vdec_bufferpayload *temp_buffer;
+    struct vdec_ioctl_msg ioctl_msg;
+    struct vdec_seqheader seq_header;
+    bool port_setting_changed = true;
 #ifdef MAX_RES_1080P
-  bool not_coded_vop = false;
+    bool not_coded_vop = false;
 #endif
 
-  /*Should we generate a Aync error event*/
-  if (buffer == NULL || buffer->pInputPortPrivate == NULL)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:empty_this_buffer_proxy is invalid");
-    return OMX_ErrorBadParameter;
-  }
+    /*Should we generate a Aync error event*/
+    if (buffer == NULL || buffer->pInputPortPrivate == NULL) {
+        DEBUG_PRINT_ERROR("\nERROR:empty_this_buffer_proxy is invalid");
+        return OMX_ErrorBadParameter;
+    }
 
-  nPortIndex = buffer-((OMX_BUFFERHEADERTYPE *)m_inp_mem_ptr);
+    nPortIndex = buffer-((OMX_BUFFERHEADERTYPE *)m_inp_mem_ptr);
 
-  if (nPortIndex > drv_ctx.ip_buf.actualcount)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:empty_this_buffer_proxy invalid nPortIndex[%u]",
-        nPortIndex);
-    return OMX_ErrorBadParameter;
-  }
+    if (nPortIndex > drv_ctx.ip_buf.actualcount) {
+        DEBUG_PRINT_ERROR("\nERROR:empty_this_buffer_proxy invalid nPortIndex[%u]",
+                nPortIndex);
+        return OMX_ErrorBadParameter;
+    }
 
-  pending_input_buffers++;
+    pending_input_buffers++;
 
-  /* return zero length and not an EOS buffer */
-  if (!arbitrary_bytes && (buffer->nFilledLen == 0) &&
-     ((buffer->nFlags & OMX_BUFFERFLAG_EOS) == 0))
-  {
-    DEBUG_PRINT_HIGH("return zero legth buffer");
-    post_event ((unsigned int)buffer,VDEC_S_SUCCESS,
-                     OMX_COMPONENT_GENERATE_EBD);
-    return OMX_ErrorNone;
-  }
+    /* return zero length and not an EOS buffer */
+    if (!arbitrary_bytes && (buffer->nFilledLen == 0) &&
+            ((buffer->nFlags & OMX_BUFFERFLAG_EOS) == 0)) {
+        DEBUG_PRINT_HIGH("return zero legth buffer");
+        post_event ((unsigned int)buffer,VDEC_S_SUCCESS,
+                OMX_COMPONENT_GENERATE_EBD);
+        return OMX_ErrorNone;
+    }
 
 #ifdef MAX_RES_1080P
-  if(codec_type_parse == CODEC_TYPE_MPEG4 || codec_type_parse == CODEC_TYPE_DIVX){
-    mp4StreamType psBits;
-    psBits.data = (unsigned char *)(buffer->pBuffer + buffer->nOffset);
-    psBits.numBytes = buffer->nFilledLen;
-    mp4_headerparser.parseHeader(&psBits);
-    not_coded_vop = mp4_headerparser.is_notcodec_vop(
-            (buffer->pBuffer + buffer->nOffset),buffer->nFilledLen);
-    if(not_coded_vop) {
-        DEBUG_PRINT_HIGH("Found Not coded vop len %d frame number %d",
-             buffer->nFilledLen,frame_count);
-        if(buffer->nFlags & OMX_BUFFERFLAG_EOS){
-          DEBUG_PRINT_HIGH("Eos and Not coded Vop set len to zero");
-          not_coded_vop = false;
-          buffer->nFilledLen = 0;
+
+    if (codec_type_parse == CODEC_TYPE_MPEG4 || codec_type_parse == CODEC_TYPE_DIVX) {
+        mp4StreamType psBits;
+        psBits.data = (unsigned char *)(buffer->pBuffer + buffer->nOffset);
+        psBits.numBytes = buffer->nFilledLen;
+        mp4_headerparser.parseHeader(&psBits);
+        not_coded_vop = mp4_headerparser.is_notcodec_vop(
+                (buffer->pBuffer + buffer->nOffset),buffer->nFilledLen);
+
+        if (not_coded_vop) {
+            DEBUG_PRINT_HIGH("Found Not coded vop len %d frame number %d",
+                    buffer->nFilledLen,frame_count);
+
+            if (buffer->nFlags & OMX_BUFFERFLAG_EOS) {
+                DEBUG_PRINT_HIGH("Eos and Not coded Vop set len to zero");
+                not_coded_vop = false;
+                buffer->nFilledLen = 0;
+            }
         }
     }
-  }
+
 #endif
-  if(input_flush_progress == true
+
+    if (input_flush_progress == true
 #ifdef MAX_RES_1080P
-     || not_coded_vop
+            || not_coded_vop
 #endif
-     )
-  {
-    DEBUG_PRINT_LOW("Flush in progress return buffer ");
-    post_event ((unsigned int)buffer,VDEC_S_SUCCESS,
-                     OMX_COMPONENT_GENERATE_EBD);
-    return OMX_ErrorNone;
-  }
-
-  temp_buffer = (struct vdec_bufferpayload *)buffer->pInputPortPrivate;
-
-  if ((temp_buffer -  drv_ctx.ptr_inputbuffer) > drv_ctx.ip_buf.actualcount)
-  {
-    return OMX_ErrorBadParameter;
-  }
-
-  DEBUG_PRINT_LOW("ETBProxy: bufhdr = %p, bufhdr->pBuffer = %p", buffer, buffer->pBuffer);
-  /*for use buffer we need to memcpy the data*/
-  temp_buffer->buffer_len = buffer->nFilledLen;
-
-  if (input_use_buffer)
-  {
-    if (buffer->nFilledLen <= temp_buffer->buffer_len)
-    {
-      if(arbitrary_bytes)
-      {
-        memcpy (temp_buffer->bufferaddr, (buffer->pBuffer + buffer->nOffset),buffer->nFilledLen);
-      }
-      else
-      {
-        memcpy (temp_buffer->bufferaddr, (m_inp_heap_ptr[nPortIndex].pBuffer + m_inp_heap_ptr[nPortIndex].nOffset),
-                buffer->nFilledLen);
-      }
-    }
-    else
-    {
-      return OMX_ErrorBadParameter;
+       ) {
+        DEBUG_PRINT_LOW("Flush in progress return buffer ");
+        post_event ((unsigned int)buffer,VDEC_S_SUCCESS,
+                OMX_COMPONENT_GENERATE_EBD);
+        return OMX_ErrorNone;
     }
 
-  }
+    temp_buffer = (struct vdec_bufferpayload *)buffer->pInputPortPrivate;
 
-  frameinfo.bufferaddr = temp_buffer->bufferaddr;
-  frameinfo.client_data = (void *) buffer;
-  frameinfo.datalen = temp_buffer->buffer_len;
-  frameinfo.flags = 0;
-  frameinfo.offset = buffer->nOffset;
-  frameinfo.pmem_fd = temp_buffer->pmem_fd;
-  frameinfo.pmem_offset = temp_buffer->offset;
-  frameinfo.timestamp = buffer->nTimeStamp;
-  if (drv_ctx.disable_dmx && m_desc_buffer_ptr && m_desc_buffer_ptr[nPortIndex].buf_addr)
-  {
-    DEBUG_PRINT_LOW("ETB: dmx enabled");
-    if (m_demux_entries == 0)
-    {
-      extract_demux_addr_offsets(buffer);
+    if ((temp_buffer -  drv_ctx.ptr_inputbuffer) > drv_ctx.ip_buf.actualcount) {
+        return OMX_ErrorBadParameter;
     }
 
-    DEBUG_PRINT_LOW("ETB: handle_demux_data - entries=%d",m_demux_entries);
-    handle_demux_data(buffer);
-    frameinfo.desc_addr = (OMX_U8 *)m_desc_buffer_ptr[nPortIndex].buf_addr;
-    frameinfo.desc_size = m_desc_buffer_ptr[nPortIndex].desc_data_size;
-  }
-  else
-  {
-    frameinfo.desc_addr = NULL;
-    frameinfo.desc_size = 0;
-  }
-  if(!arbitrary_bytes)
-  {
-      frameinfo.flags |= buffer->nFlags;
-  }
+    DEBUG_PRINT_LOW("ETBProxy: bufhdr = %p, bufhdr->pBuffer = %p", buffer, buffer->pBuffer);
+    /*for use buffer we need to memcpy the data*/
+    temp_buffer->buffer_len = buffer->nFilledLen;
+
+    if (input_use_buffer) {
+        if (buffer->nFilledLen <= temp_buffer->buffer_len) {
+            if (arbitrary_bytes) {
+                memcpy (temp_buffer->bufferaddr, (buffer->pBuffer + buffer->nOffset),buffer->nFilledLen);
+            } else {
+                memcpy (temp_buffer->bufferaddr, (m_inp_heap_ptr[nPortIndex].pBuffer + m_inp_heap_ptr[nPortIndex].nOffset),
+                        buffer->nFilledLen);
+            }
+        } else {
+            return OMX_ErrorBadParameter;
+        }
+
+    }
+
+    frameinfo.bufferaddr = temp_buffer->bufferaddr;
+    frameinfo.client_data = (void *) buffer;
+    frameinfo.datalen = temp_buffer->buffer_len;
+    frameinfo.flags = 0;
+    frameinfo.offset = buffer->nOffset;
+    frameinfo.pmem_fd = temp_buffer->pmem_fd;
+    frameinfo.pmem_offset = temp_buffer->offset;
+    frameinfo.timestamp = buffer->nTimeStamp;
+
+    if (drv_ctx.disable_dmx && m_desc_buffer_ptr && m_desc_buffer_ptr[nPortIndex].buf_addr) {
+        DEBUG_PRINT_LOW("ETB: dmx enabled");
+
+        if (m_demux_entries == 0) {
+            extract_demux_addr_offsets(buffer);
+        }
+
+        DEBUG_PRINT_LOW("ETB: handle_demux_data - entries=%d",m_demux_entries);
+        handle_demux_data(buffer);
+        frameinfo.desc_addr = (OMX_U8 *)m_desc_buffer_ptr[nPortIndex].buf_addr;
+        frameinfo.desc_size = m_desc_buffer_ptr[nPortIndex].desc_data_size;
+    } else {
+        frameinfo.desc_addr = NULL;
+        frameinfo.desc_size = 0;
+    }
+
+    if (!arbitrary_bytes) {
+        frameinfo.flags |= buffer->nFlags;
+    }
 
 
 #ifdef _ANDROID_
-  if (m_debug_timestamp)
-  {
-    if(arbitrary_bytes)
-    {
-      DEBUG_PRINT_LOW("Inserting TIMESTAMP (%lld) into queue", buffer->nTimeStamp);
-      m_timestamp_list.insert_ts(buffer->nTimeStamp);
+
+    if (m_debug_timestamp) {
+        if (arbitrary_bytes) {
+            DEBUG_PRINT_LOW("Inserting TIMESTAMP (%lld) into queue", buffer->nTimeStamp);
+            m_timestamp_list.insert_ts(buffer->nTimeStamp);
+        } else if (!arbitrary_bytes && !(buffer->nFlags & OMX_BUFFERFLAG_CODECCONFIG)) {
+            DEBUG_PRINT_LOW("Inserting TIMESTAMP (%lld) into queue", buffer->nTimeStamp);
+            m_timestamp_list.insert_ts(buffer->nTimeStamp);
+        }
     }
-    else if(!arbitrary_bytes && !(buffer->nFlags & OMX_BUFFERFLAG_CODECCONFIG))
-    {
-      DEBUG_PRINT_LOW("Inserting TIMESTAMP (%lld) into queue", buffer->nTimeStamp);
-      m_timestamp_list.insert_ts(buffer->nTimeStamp);
-    }
-  }
+
 #endif
 
 #ifdef INPUT_BUFFER_LOG
-  if (inputBufferFile1)
-  {
-    fwrite((const char *)temp_buffer->bufferaddr,
-      temp_buffer->buffer_len,1,inputBufferFile1);
-  }
+
+    if (inputBufferFile1) {
+        fwrite((const char *)temp_buffer->bufferaddr,
+                temp_buffer->buffer_len,1,inputBufferFile1);
+    }
 
 #endif
-  if(buffer->nFlags & QOMX_VIDEO_BUFFERFLAG_EOSEQ)
-  {
-    frameinfo.flags |= QOMX_VIDEO_BUFFERFLAG_EOSEQ;
-    buffer->nFlags &= ~QOMX_VIDEO_BUFFERFLAG_EOSEQ;
-  }
 
-  if (temp_buffer->buffer_len == 0 || (buffer->nFlags & OMX_BUFFERFLAG_EOS))
-  {
-    DEBUG_PRINT_HIGH("Rxd i/p EOS, Notify Driver that EOS has been reached");
-    frameinfo.flags |= VDEC_BUFFERFLAG_EOS;
-    h264_scratch.nFilledLen = 0;
-    nal_count = 0;
-    look_ahead_nal = false;
-    frame_count = 0;
-    if (m_frame_parser.mutils)
-      m_frame_parser.mutils->initialize_frame_checking_environment();
-    m_frame_parser.flush();
-    h264_last_au_ts = LLONG_MAX;
-    h264_last_au_flags = 0;
-    memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
-    m_demux_entries = 0;
-  }
-  DEBUG_PRINT_LOW("[ETBP] pBuf(%p) nTS(%lld) Sz(%d)",
-    frameinfo.bufferaddr, frameinfo.timestamp, frameinfo.datalen);
-  ioctl_msg.in = &frameinfo;
-  ioctl_msg.out = NULL;
-  if (ioctl(drv_ctx.video_driver_fd,VDEC_IOCTL_DECODE_FRAME,
-            &ioctl_msg) < 0)
-  {
-    /*Generate an async error and move to invalid state*/
-    DEBUG_PRINT_ERROR("\nERROR:empty_this_buffer_proxy VDEC_IOCTL_DECODE_FRAME failed");
-    if (!arbitrary_bytes)
-    {
-      DEBUG_PRINT_LOW("Return failed buffer");
-      post_event ((unsigned int)buffer,VDEC_S_SUCCESS,
-                       OMX_COMPONENT_GENERATE_EBD);
+    if (buffer->nFlags & QOMX_VIDEO_BUFFERFLAG_EOSEQ) {
+        frameinfo.flags |= QOMX_VIDEO_BUFFERFLAG_EOSEQ;
+        buffer->nFlags &= ~QOMX_VIDEO_BUFFERFLAG_EOSEQ;
     }
-    return OMX_ErrorBadParameter;
-  } else
-      time_stamp_dts.insert_timestamp(buffer);
 
-  return ret;
+    if (temp_buffer->buffer_len == 0 || (buffer->nFlags & OMX_BUFFERFLAG_EOS)) {
+        DEBUG_PRINT_HIGH("Rxd i/p EOS, Notify Driver that EOS has been reached");
+        frameinfo.flags |= VDEC_BUFFERFLAG_EOS;
+        h264_scratch.nFilledLen = 0;
+        nal_count = 0;
+        look_ahead_nal = false;
+        frame_count = 0;
+
+        if (m_frame_parser.mutils)
+            m_frame_parser.mutils->initialize_frame_checking_environment();
+
+        m_frame_parser.flush();
+        h264_last_au_ts = LLONG_MAX;
+        h264_last_au_flags = 0;
+        memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
+        m_demux_entries = 0;
+    }
+
+    DEBUG_PRINT_LOW("[ETBP] pBuf(%p) nTS(%lld) Sz(%d)",
+            frameinfo.bufferaddr, frameinfo.timestamp, frameinfo.datalen);
+    ioctl_msg.in = &frameinfo;
+    ioctl_msg.out = NULL;
+
+    if (ioctl(drv_ctx.video_driver_fd,VDEC_IOCTL_DECODE_FRAME,
+                &ioctl_msg) < 0) {
+        /*Generate an async error and move to invalid state*/
+        DEBUG_PRINT_ERROR("\nERROR:empty_this_buffer_proxy VDEC_IOCTL_DECODE_FRAME failed");
+
+        if (!arbitrary_bytes) {
+            DEBUG_PRINT_LOW("Return failed buffer");
+            post_event ((unsigned int)buffer,VDEC_S_SUCCESS,
+                    OMX_COMPONENT_GENERATE_EBD);
+        }
+
+        return OMX_ErrorBadParameter;
+    } else
+        time_stamp_dts.insert_timestamp(buffer);
+
+    return ret;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::FillThisBuffer
+   FUNCTION
+   omx_vdec::FillThisBuffer
 
-DESCRIPTION
-  IL client uses this method to release the frame buffer
-  after displaying them.
+   DESCRIPTION
+   IL client uses this method to release the frame buffer
+   after displaying them.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::fill_this_buffer(OMX_IN OMX_HANDLETYPE  hComp,
-                                          OMX_IN OMX_BUFFERHEADERTYPE* buffer)
+        OMX_IN OMX_BUFFERHEADERTYPE* buffer)
 {
 
-  if(m_state == OMX_StateInvalid)
-  {
-      DEBUG_PRINT_ERROR("FTB in Invalid State\n");
-      return OMX_ErrorInvalidState;
-  }
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("FTB in Invalid State\n");
+        return OMX_ErrorInvalidState;
+    }
 
-  if (!m_out_bEnabled)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:FTB incorrect state operation, output port is disabled.");
-    return OMX_ErrorIncorrectStateOperation;
-  }
+    if (!m_out_bEnabled) {
+        DEBUG_PRINT_ERROR("\nERROR:FTB incorrect state operation, output port is disabled.");
+        return OMX_ErrorIncorrectStateOperation;
+    }
 
-  if (buffer == NULL ||
-     ((buffer - client_buffers.get_il_buf_hdr()) >= drv_ctx.op_buf.actualcount))
-  {
-    return OMX_ErrorBadParameter;
-  }
+    if (buffer == NULL ||
+            ((buffer - client_buffers.get_il_buf_hdr()) >= drv_ctx.op_buf.actualcount)) {
+        return OMX_ErrorBadParameter;
+    }
 
-  if (buffer->nOutputPortIndex != OMX_CORE_OUTPUT_PORT_INDEX)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:FTB invalid port in header %d", buffer->nOutputPortIndex);
-    return OMX_ErrorBadPortIndex;
-  }
+    if (buffer->nOutputPortIndex != OMX_CORE_OUTPUT_PORT_INDEX) {
+        DEBUG_PRINT_ERROR("\nERROR:FTB invalid port in header %d", buffer->nOutputPortIndex);
+        return OMX_ErrorBadPortIndex;
+    }
 
-  DEBUG_PRINT_LOW("[FTB] bufhdr = %p, bufhdr->pBuffer = %p", buffer, buffer->pBuffer);
-  post_event((unsigned) hComp, (unsigned)buffer,m_fill_output_msg);
-  return OMX_ErrorNone;
+    DEBUG_PRINT_LOW("[FTB] bufhdr = %p, bufhdr->pBuffer = %p", buffer, buffer->pBuffer);
+    post_event((unsigned) hComp, (unsigned)buffer,m_fill_output_msg);
+    return OMX_ErrorNone;
 }
 /* ======================================================================
-FUNCTION
-  omx_vdec::fill_this_buffer_proxy
+   FUNCTION
+   omx_vdec::fill_this_buffer_proxy
 
-DESCRIPTION
-  IL client uses this method to release the frame buffer
-  after displaying them.
+   DESCRIPTION
+   IL client uses this method to release the frame buffer
+   after displaying them.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::fill_this_buffer_proxy(
-                         OMX_IN OMX_HANDLETYPE        hComp,
-                         OMX_IN OMX_BUFFERHEADERTYPE* bufferAdd)
+        OMX_IN OMX_HANDLETYPE        hComp,
+        OMX_IN OMX_BUFFERHEADERTYPE* bufferAdd)
 {
-  OMX_ERRORTYPE nRet = OMX_ErrorNone;
-  struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
-  OMX_BUFFERHEADERTYPE *buffer = bufferAdd;
-  struct vdec_fillbuffer_cmd fillbuffer;
-  struct vdec_bufferpayload     *ptr_outputbuffer = NULL;
-  struct vdec_output_frameinfo  *ptr_respbuffer = NULL;
+    OMX_ERRORTYPE nRet = OMX_ErrorNone;
+    struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
+    OMX_BUFFERHEADERTYPE *buffer = bufferAdd;
+    struct vdec_fillbuffer_cmd fillbuffer;
+    struct vdec_bufferpayload     *ptr_outputbuffer = NULL;
+    struct vdec_output_frameinfo  *ptr_respbuffer = NULL;
 
 
-  if (bufferAdd == NULL || ((buffer - client_buffers.get_il_buf_hdr()) >
-      drv_ctx.op_buf.actualcount) )
-    return OMX_ErrorBadParameter;
+    if (bufferAdd == NULL || ((buffer - client_buffers.get_il_buf_hdr()) >
+                drv_ctx.op_buf.actualcount) )
+        return OMX_ErrorBadParameter;
 
-  DEBUG_PRINT_LOW("FTBProxy: bufhdr = %p, bufhdr->pBuffer = %p",
-      bufferAdd, bufferAdd->pBuffer);
-  /*Return back the output buffer to client*/
-  if(m_out_bEnabled != OMX_TRUE || output_flush_progress == true)
-  {
-    DEBUG_PRINT_LOW("Output Buffers return flush/disable condition");
-    buffer->nFilledLen = 0;
-    m_cb.FillBufferDone (hComp,m_app_data,buffer);
-    return OMX_ErrorNone;
-  }
-  pending_output_buffers++;
-  buffer = client_buffers.get_dr_buf_hdr(bufferAdd);
-  ptr_respbuffer = (struct vdec_output_frameinfo*)buffer->pOutputPortPrivate;
-  if (ptr_respbuffer)
-  {
-    ptr_outputbuffer =  (struct vdec_bufferpayload*)ptr_respbuffer->client_data;
-  }
+    DEBUG_PRINT_LOW("FTBProxy: bufhdr = %p, bufhdr->pBuffer = %p",
+            bufferAdd, bufferAdd->pBuffer);
 
-  if (ptr_respbuffer == NULL || ptr_outputbuffer == NULL)
-  {
-      DEBUG_PRINT_ERROR("resp buffer or outputbuffer is NULL");
-      buffer->nFilledLen = 0;
-      m_cb.FillBufferDone (hComp,m_app_data,buffer);
-      pending_output_buffers--;
-      return OMX_ErrorBadParameter;
-  }
+    /*Return back the output buffer to client*/
+    if (m_out_bEnabled != OMX_TRUE || output_flush_progress == true) {
+        DEBUG_PRINT_LOW("Output Buffers return flush/disable condition");
+        buffer->nFilledLen = 0;
+        m_cb.FillBufferDone (hComp,m_app_data,buffer);
+        return OMX_ErrorNone;
+    }
 
-  memcpy (&fillbuffer.buffer,ptr_outputbuffer,\
-          sizeof(struct vdec_bufferpayload));
-  fillbuffer.client_data = buffer;
+    pending_output_buffers++;
+    buffer = client_buffers.get_dr_buf_hdr(bufferAdd);
+    ptr_respbuffer = (struct vdec_output_frameinfo*)buffer->pOutputPortPrivate;
+
+    if (ptr_respbuffer) {
+        ptr_outputbuffer =  (struct vdec_bufferpayload*)ptr_respbuffer->client_data;
+    }
+
+    if (ptr_respbuffer == NULL || ptr_outputbuffer == NULL) {
+        DEBUG_PRINT_ERROR("resp buffer or outputbuffer is NULL");
+        buffer->nFilledLen = 0;
+        m_cb.FillBufferDone (hComp,m_app_data,buffer);
+        pending_output_buffers--;
+        return OMX_ErrorBadParameter;
+    }
+
+    memcpy (&fillbuffer.buffer,ptr_outputbuffer,\
+            sizeof(struct vdec_bufferpayload));
+    fillbuffer.client_data = buffer;
 
 #ifdef _ANDROID_ICS_
-    if (m_enable_android_native_buffers)
-    {
+
+    if (m_enable_android_native_buffers) {
         // Acquire a write lock on this buffer.
         if (GENLOCK_NO_ERROR != genlock_lock_buffer(native_buffer[buffer - m_out_mem_ptr].nativehandle,
-                                                  GENLOCK_WRITE_LOCK, GENLOCK_MAX_TIMEOUT)) {
+                    GENLOCK_WRITE_LOCK, GENLOCK_MAX_TIMEOUT)) {
             DEBUG_PRINT_ERROR("Failed to acquire genlock");
             buffer->nFilledLen = 0;
             m_cb.FillBufferDone (hComp,m_app_data,buffer);
@@ -5964,171 +5678,176 @@
             return OMX_ErrorInsufficientResources;
         } else {
             native_buffer[buffer - m_out_mem_ptr].inuse = true;
-      }
-    }
-#endif
-
-  ioctl_msg.in = &fillbuffer;
-  ioctl_msg.out = NULL;
-  if (ioctl (drv_ctx.video_driver_fd,
-         VDEC_IOCTL_FILL_OUTPUT_BUFFER,&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("\n Decoder frame failed");
-#ifdef _ANDROID_ICS_
-    if (m_enable_android_native_buffers)
-    {
-        // Unlock the buffer
-        if (GENLOCK_NO_ERROR != genlock_unlock_buffer(native_buffer[buffer - m_out_mem_ptr].nativehandle)) {
-            DEBUG_PRINT_ERROR("Releasing genlock failed");
-            return OMX_ErrorInsufficientResources;
-        } else {
-            native_buffer[buffer - m_out_mem_ptr].inuse = false;
         }
     }
-#endif
-    m_cb.FillBufferDone (hComp,m_app_data,buffer);
-    pending_output_buffers--;
-    return OMX_ErrorBadParameter;
-  }
 
-  return OMX_ErrorNone;
+#endif
+
+    ioctl_msg.in = &fillbuffer;
+    ioctl_msg.out = NULL;
+
+    if (ioctl (drv_ctx.video_driver_fd,
+                VDEC_IOCTL_FILL_OUTPUT_BUFFER,&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("\n Decoder frame failed");
+#ifdef _ANDROID_ICS_
+
+        if (m_enable_android_native_buffers) {
+            // Unlock the buffer
+            if (GENLOCK_NO_ERROR != genlock_unlock_buffer(native_buffer[buffer - m_out_mem_ptr].nativehandle)) {
+                DEBUG_PRINT_ERROR("Releasing genlock failed");
+                return OMX_ErrorInsufficientResources;
+            } else {
+                native_buffer[buffer - m_out_mem_ptr].inuse = false;
+            }
+        }
+
+#endif
+        m_cb.FillBufferDone (hComp,m_app_data,buffer);
+        pending_output_buffers--;
+        return OMX_ErrorBadParameter;
+    }
+
+    return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::SetCallbacks
+   FUNCTION
+   omx_vdec::SetCallbacks
 
-DESCRIPTION
-  Set the callbacks.
+   DESCRIPTION
+   Set the callbacks.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  OMX Error None if everything successful.
+   RETURN VALUE
+   OMX Error None if everything successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::set_callbacks(OMX_IN OMX_HANDLETYPE        hComp,
-                                           OMX_IN OMX_CALLBACKTYPE* callbacks,
-                                           OMX_IN OMX_PTR             appData)
+        OMX_IN OMX_CALLBACKTYPE* callbacks,
+        OMX_IN OMX_PTR             appData)
 {
 
-  m_cb       = *callbacks;
-  DEBUG_PRINT_LOW("Callbacks Set %p %p %p",m_cb.EmptyBufferDone,\
-               m_cb.EventHandler,m_cb.FillBufferDone);
-  m_app_data =    appData;
-  return OMX_ErrorNotImplemented;
+    m_cb       = *callbacks;
+    DEBUG_PRINT_LOW("Callbacks Set %p %p %p",m_cb.EmptyBufferDone,\
+            m_cb.EventHandler,m_cb.FillBufferDone);
+    m_app_data =    appData;
+    return OMX_ErrorNotImplemented;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::ComponentDeInit
+   FUNCTION
+   omx_vdec::ComponentDeInit
 
-DESCRIPTION
-  Destroys the component and release memory allocated to the heap.
+   DESCRIPTION
+   Destroys the component and release memory allocated to the heap.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if everything successful.
+   RETURN VALUE
+   OMX Error None if everything successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::component_deinit(OMX_IN OMX_HANDLETYPE hComp)
 {
 #ifndef JB_MR1
-  sp<IServiceManager> sm;
-  sp<hwcService::IHWComposer> hwcBinder = NULL;
+    sp<IServiceManager> sm;
+    sp<hwcService::IHWComposer> hwcBinder = NULL;
 #endif
 #ifdef _ANDROID_
-    if(iDivXDrmDecrypt)
-    {
+
+    if (iDivXDrmDecrypt) {
         delete iDivXDrmDecrypt;
         iDivXDrmDecrypt=NULL;
     }
+
 #endif //_ANDROID_
     int i = 0;
-    if (OMX_StateLoaded != m_state)
-    {
+
+    if (OMX_StateLoaded != m_state) {
         DEBUG_PRINT_ERROR("WARNING:Rxd DeInit,OMX not in LOADED state %d\n",\
-                          m_state);
+                m_state);
         DEBUG_PRINT_ERROR("\nPlayback Ended - FAILED");
+    } else {
+        DEBUG_PRINT_HIGH("Playback Ended - PASSED");
     }
-    else
-    {
-      DEBUG_PRINT_HIGH("Playback Ended - PASSED");
-    }
+
 #ifndef JB_MR1
+
     if (secure_mode) {
-      sm = defaultServiceManager();
-      hwcBinder =
-        interface_cast<hwcService::IHWComposer>(sm->getService(String16("display.hwcservice")));
-      if (hwcBinder != NULL) {
-          hwcBinder->setCloseSecureStart();
-      } else {
-        DEBUG_PRINT_HIGH("Failed to get hwcbinder, "
-                         "failed to call close secure start");
-      }
+        sm = defaultServiceManager();
+        hwcBinder =
+            interface_cast<hwcService::IHWComposer>(sm->getService(String16("display.hwcservice")));
+
+        if (hwcBinder != NULL) {
+            hwcBinder->setCloseSecureStart();
+        } else {
+            DEBUG_PRINT_HIGH("Failed to get hwcbinder, "
+                    "failed to call close secure start");
+        }
     }
+
 #endif
+
     /*Check if the output buffers have to be cleaned up*/
-    if(m_out_mem_ptr)
-    {
+    if (m_out_mem_ptr) {
         DEBUG_PRINT_LOW("Freeing the Output Memory");
-        for (i=0; i < drv_ctx.op_buf.actualcount; i++ )
-        {
-          free_output_buffer (&m_out_mem_ptr[i]);
+
+        for (i=0; i < drv_ctx.op_buf.actualcount; i++ ) {
+            free_output_buffer (&m_out_mem_ptr[i]);
 #ifdef _ANDROID_ICS_
-        if (m_enable_android_native_buffers)
-        {
-          if (native_buffer[i].inuse)
-          {
-            if (GENLOCK_NO_ERROR != genlock_unlock_buffer(native_buffer[i].nativehandle)) {
-                DEBUG_PRINT_ERROR("Unlocking genlock failed");
+
+            if (m_enable_android_native_buffers) {
+                if (native_buffer[i].inuse) {
+                    if (GENLOCK_NO_ERROR != genlock_unlock_buffer(native_buffer[i].nativehandle)) {
+                        DEBUG_PRINT_ERROR("Unlocking genlock failed");
+                    }
+
+                    native_buffer[i].inuse = false;
+                }
             }
-            native_buffer[i].inuse = false;
-          }
-        }
+
 #endif
         }
+
 #ifdef _ANDROID_ICS_
         memset(&native_buffer, 0, (sizeof(nativebuffer) * MAX_NUM_INPUT_OUTPUT_BUFFERS));
 #endif
     }
 
     /*Check if the input buffers have to be cleaned up*/
-    if(m_inp_mem_ptr || m_inp_heap_ptr)
-    {
+    if (m_inp_mem_ptr || m_inp_heap_ptr) {
         DEBUG_PRINT_LOW("Freeing the Input Memory");
-        for (i=0; i<drv_ctx.ip_buf.actualcount; i++ )
-        {
-          if (m_inp_mem_ptr)
-            free_input_buffer (i,&m_inp_mem_ptr[i]);
-          else
-            free_input_buffer (i,NULL);
+
+        for (i=0; i<drv_ctx.ip_buf.actualcount; i++ ) {
+            if (m_inp_mem_ptr)
+                free_input_buffer (i,&m_inp_mem_ptr[i]);
+            else
+                free_input_buffer (i,NULL);
         }
     }
+
     free_input_buffer_header();
     free_output_buffer_header();
-    if(h264_scratch.pBuffer)
-    {
+
+    if (h264_scratch.pBuffer) {
         free(h264_scratch.pBuffer);
         h264_scratch.pBuffer = NULL;
     }
 
-    if (h264_parser)
-    {
+    if (h264_parser) {
         delete h264_parser;
         h264_parser = NULL;
     }
 
-    if(m_platform_list)
-    {
+    if (m_platform_list) {
         free(m_platform_list);
         m_platform_list = NULL;
     }
-    if(m_vendor_config.pData)
-    {
+
+    if (m_vendor_config.pData) {
         free(m_vendor_config.pData);
         m_vendor_config.pData = NULL;
     }
@@ -6141,30 +5860,33 @@
     m_cmd_q.m_read = m_cmd_q.m_write =0;
     m_etb_q.m_read = m_etb_q.m_write =0;
 #ifdef _ANDROID_
-    if (m_debug_timestamp)
-    {
-      m_timestamp_list.reset_ts_list();
+
+    if (m_debug_timestamp) {
+        m_timestamp_list.reset_ts_list();
     }
+
 #endif
 
     DEBUG_PRINT_LOW("Calling VDEC_IOCTL_STOP_NEXT_MSG");
     (void)ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_STOP_NEXT_MSG,
-        NULL);
+            NULL);
 #ifdef _ANDROID_
-   /* get strong count gets the refernce count of the pmem, the count will
-    * be incremented by our kernal driver and surface flinger, by the time
-    * we close the pmem, this cound needs to be zero, but there is no way
-    * for us to know when surface flinger reduces its cound, so we wait
-    * here in a infinite loop till the count is zero
-    */
-     if (m_heap_ptr)
-     {
-         for (int indx = 0; indx < drv_ctx.op_buf.actualcount; indx++)
-              m_heap_ptr[indx].video_heap_ptr = NULL;
-         free(m_heap_ptr);
-         m_heap_ptr = NULL;
-         m_heap_count = 0;
-     }
+
+    /* get strong count gets the refernce count of the pmem, the count will
+     * be incremented by our kernal driver and surface flinger, by the time
+     * we close the pmem, this cound needs to be zero, but there is no way
+     * for us to know when surface flinger reduces its cound, so we wait
+     * here in a infinite loop till the count is zero
+     */
+    if (m_heap_ptr) {
+        for (int indx = 0; indx < drv_ctx.op_buf.actualcount; indx++)
+            m_heap_ptr[indx].video_heap_ptr = NULL;
+
+        free(m_heap_ptr);
+        m_heap_ptr = NULL;
+        m_heap_count = 0;
+    }
+
 #endif // _ANDROID_
 #ifdef INPUT_BUFFER_LOG
     fclose (inputBufferFile1);
@@ -6175,65 +5897,71 @@
 #ifdef OUTPUT_EXTRADATA_LOG
     fclose (outputExtradataFile);
 #endif
-  power_module_deregister();
-  DEBUG_PRINT_HIGH("omx_vdec::component_deinit() complete");
+    power_module_deregister();
+    DEBUG_PRINT_HIGH("omx_vdec::component_deinit() complete");
 #ifndef JB_MR1
-  if (secure_mode) {
-      if (hwcBinder != NULL) {
-          hwcBinder->setCloseSecureEnd();
-      } else {
-        DEBUG_PRINT_HIGH("Failed to get hwcbinder, "
-                         "failed to call close secure start");
-      }
-  }
+
+    if (secure_mode) {
+        if (hwcBinder != NULL) {
+            hwcBinder->setCloseSecureEnd();
+        } else {
+            DEBUG_PRINT_HIGH("Failed to get hwcbinder, "
+                    "failed to call close secure start");
+        }
+    }
+
 #endif
-  return OMX_ErrorNone;
+    return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::UseEGLImage
+   FUNCTION
+   omx_vdec::UseEGLImage
 
-DESCRIPTION
-  OMX Use EGL Image method implementation <TBD>.
+   DESCRIPTION
+   OMX Use EGL Image method implementation <TBD>.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  Not Implemented error.
+   RETURN VALUE
+   Not Implemented error.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::use_EGL_image(OMX_IN OMX_HANDLETYPE                hComp,
-                                          OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                                          OMX_IN OMX_U32                        port,
-                                          OMX_IN OMX_PTR                     appData,
-                                          OMX_IN void*                      eglImage)
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                        port,
+        OMX_IN OMX_PTR                     appData,
+        OMX_IN void*                      eglImage)
 {
-  OMX_QCOM_PLATFORM_PRIVATE_LIST pmem_list;
-  OMX_QCOM_PLATFORM_PRIVATE_ENTRY pmem_entry;
-  OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO pmem_info;
+    OMX_QCOM_PLATFORM_PRIVATE_LIST pmem_list;
+    OMX_QCOM_PLATFORM_PRIVATE_ENTRY pmem_entry;
+    OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO pmem_info;
 
 #ifdef USE_EGL_IMAGE_GPU
-   PFNEGLQUERYIMAGEQUALCOMMPROC egl_queryfunc;
-   EGLint fd = -1, offset = 0,pmemPtr = 0;
+    PFNEGLQUERYIMAGEQUALCOMMPROC egl_queryfunc;
+    EGLint fd = -1, offset = 0,pmemPtr = 0;
 #else
-   int fd = -1, offset = 0;
+    int fd = -1, offset = 0;
 #endif
-   DEBUG_PRINT_HIGH("use EGL image support for decoder");
-   if (!bufferHdr || !eglImage|| port != OMX_CORE_OUTPUT_PORT_INDEX) {
-     DEBUG_PRINT_ERROR("\n ");
-   }
+    DEBUG_PRINT_HIGH("use EGL image support for decoder");
+
+    if (!bufferHdr || !eglImage|| port != OMX_CORE_OUTPUT_PORT_INDEX) {
+        DEBUG_PRINT_ERROR("\n ");
+    }
+
 #ifdef USE_EGL_IMAGE_GPU
-   if(m_display_id == NULL) {
+
+    if (m_display_id == NULL) {
         DEBUG_PRINT_ERROR("Display ID is not set by IL client \n");
         return OMX_ErrorInsufficientResources;
-   }
-   egl_queryfunc = (PFNEGLQUERYIMAGEQUALCOMMPROC)
-                    eglGetProcAddress("eglQueryImageKHR");
-   egl_queryfunc(m_display_id, eglImage, EGL_BUFFER_HANDLE_QCOM,&fd);
-   egl_queryfunc(m_display_id, eglImage, EGL_BUFFER_OFFSET_QCOM,&offset);
-   egl_queryfunc(m_display_id, eglImage, EGL_BITMAP_POINTER_KHR,&pmemPtr);
+    }
+
+    egl_queryfunc = (PFNEGLQUERYIMAGEQUALCOMMPROC)
+        eglGetProcAddress("eglQueryImageKHR");
+    egl_queryfunc(m_display_id, eglImage, EGL_BUFFER_HANDLE_QCOM,&fd);
+    egl_queryfunc(m_display_id, eglImage, EGL_BUFFER_OFFSET_QCOM,&offset);
+    egl_queryfunc(m_display_id, eglImage, EGL_BITMAP_POINTER_KHR,&pmemPtr);
 #else //with OMX test app
     struct temp_egl {
         int pmem_fd;
@@ -6242,1312 +5970,1237 @@
     struct temp_egl *temp_egl_id = NULL;
     void * pmemPtr = (void *) eglImage;
     temp_egl_id = (struct temp_egl *)eglImage;
-    if (temp_egl_id != NULL)
-    {
+
+    if (temp_egl_id != NULL) {
         fd = temp_egl_id->pmem_fd;
         offset = temp_egl_id->offset;
     }
+
 #endif
+
     if (fd < 0) {
         DEBUG_PRINT_ERROR("Improper pmem fd by EGL client %d  \n",fd);
         return OMX_ErrorInsufficientResources;
-   }
-   pmem_info.pmem_fd = (OMX_U32) fd;
-   pmem_info.offset = (OMX_U32) offset;
-   pmem_entry.entry = (void *) &pmem_info;
-   pmem_entry.type = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
-   pmem_list.entryList = &pmem_entry;
-   pmem_list.nEntries = 1;
-   ouput_egl_buffers = true;
-   if (OMX_ErrorNone != use_buffer(hComp,bufferHdr, port,
-       (void *)&pmem_list, drv_ctx.op_buf.buffer_size,
-        (OMX_U8 *)pmemPtr)) {
-     DEBUG_PRINT_ERROR("use buffer call failed for egl image\n");
-     return OMX_ErrorInsufficientResources;
-   }
-   return OMX_ErrorNone;
+    }
+
+    pmem_info.pmem_fd = (OMX_U32) fd;
+    pmem_info.offset = (OMX_U32) offset;
+    pmem_entry.entry = (void *) &pmem_info;
+    pmem_entry.type = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
+    pmem_list.entryList = &pmem_entry;
+    pmem_list.nEntries = 1;
+    ouput_egl_buffers = true;
+
+    if (OMX_ErrorNone != use_buffer(hComp,bufferHdr, port,
+                (void *)&pmem_list, drv_ctx.op_buf.buffer_size,
+                (OMX_U8 *)pmemPtr)) {
+        DEBUG_PRINT_ERROR("use buffer call failed for egl image\n");
+        return OMX_ErrorInsufficientResources;
+    }
+
+    return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::ComponentRoleEnum
+   FUNCTION
+   omx_vdec::ComponentRoleEnum
 
-DESCRIPTION
-  OMX Component Role Enum method implementation.
+   DESCRIPTION
+   OMX Component Role Enum method implementation.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if everything is successful.
-========================================================================== */
+   RETURN VALUE
+   OMX Error None if everything is successful.
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::component_role_enum(OMX_IN OMX_HANDLETYPE hComp,
-                                                OMX_OUT OMX_U8*        role,
-                                                OMX_IN OMX_U32        index)
+        OMX_OUT OMX_U8*        role,
+        OMX_IN OMX_U32        index)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
 
-  if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s",role);
+    if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s",role);
+        } else {
+            eRet = OMX_ErrorNoMore;
+        }
     }
-    else
-    {
-      eRet = OMX_ErrorNoMore;
+
+    if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s",role);
+        } else {
+            eRet = OMX_ErrorNoMore;
+        }
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.h263",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s",role);
+        } else {
+            DEBUG_PRINT_LOW("No more roles");
+            eRet = OMX_ErrorNoMore;
+        }
     }
-  }
-  if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s",role);
-    }
-    else
-    {
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.h263",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s",role);
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("No more roles");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
+
 #ifdef MAX_RES_1080P
-  else if((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",OMX_MAX_STRINGNAME_SIZE)) ||
-          (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx311",OMX_MAX_STRINGNAME_SIZE))
-          )
+    else if ((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",OMX_MAX_STRINGNAME_SIZE)) ||
+            (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx311",OMX_MAX_STRINGNAME_SIZE))
+            )
 #else
-  else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",OMX_MAX_STRINGNAME_SIZE))
+    else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",OMX_MAX_STRINGNAME_SIZE))
 #endif
-  {
-    if((0 == index) && role)
     {
-      strlcpy((char *)role, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s",role);
+
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s",role);
+        } else {
+            DEBUG_PRINT_LOW("No more roles");
+            eRet = OMX_ErrorNoMore;
+        }
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.avc",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s",role);
+        } else {
+            DEBUG_PRINT_LOW("No more roles");
+            eRet = OMX_ErrorNoMore;
+        }
+    } else if ( (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1",OMX_MAX_STRINGNAME_SIZE)) ||
+            (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.wmv",OMX_MAX_STRINGNAME_SIZE))
+            ) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s",role);
+        } else {
+            DEBUG_PRINT_LOW("No more roles");
+            eRet = OMX_ErrorNoMore;
+        }
+    } else {
+        DEBUG_PRINT_ERROR("\nERROR:Querying Role on Unknown Component");
+        eRet = OMX_ErrorInvalidComponentName;
     }
-    else
-    {
-      DEBUG_PRINT_LOW("No more roles");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.avc",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s",role);
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("No more roles");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else if( (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1",OMX_MAX_STRINGNAME_SIZE)) ||
-           (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.wmv",OMX_MAX_STRINGNAME_SIZE))
-           )
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s",role);
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("No more roles");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("\nERROR:Querying Role on Unknown Component");
-    eRet = OMX_ErrorInvalidComponentName;
-  }
-  return eRet;
+
+    return eRet;
 }
 
 
 
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::AllocateDone
+   FUNCTION
+   omx_vdec::AllocateDone
 
-DESCRIPTION
-  Checks if entire buffer pool is allocated by IL Client or not.
-  Need this to move to IDLE state.
+   DESCRIPTION
+   Checks if entire buffer pool is allocated by IL Client or not.
+   Need this to move to IDLE state.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false.
+   RETURN VALUE
+   true/false.
 
-========================================================================== */
+   ========================================================================== */
 bool omx_vdec::allocate_done(void)
 {
-  bool bRet = false;
-  bool bRet_In = false;
-  bool bRet_Out = false;
+    bool bRet = false;
+    bool bRet_In = false;
+    bool bRet_Out = false;
 
-  bRet_In = allocate_input_done();
-  bRet_Out = allocate_output_done();
+    bRet_In = allocate_input_done();
+    bRet_Out = allocate_output_done();
 
-  if(bRet_In && bRet_Out)
-  {
-      bRet = true;
-  }
-
-  return bRet;
-}
-/* ======================================================================
-FUNCTION
-  omx_vdec::AllocateInputDone
-
-DESCRIPTION
-  Checks if I/P buffer pool is allocated by IL Client or not.
-
-PARAMETERS
-  None.
-
-RETURN VALUE
-  true/false.
-
-========================================================================== */
-bool omx_vdec::allocate_input_done(void)
-{
-  bool bRet = false;
-  unsigned i=0;
-
-  if (m_inp_mem_ptr == NULL)
-  {
-      return bRet;
-  }
-  if(m_inp_mem_ptr )
-  {
-    for(;i<drv_ctx.ip_buf.actualcount;i++)
-    {
-      if(BITMASK_ABSENT(&m_inp_bm_count,i))
-      {
-        break;
-      }
-    }
-  }
-  if(i == drv_ctx.ip_buf.actualcount)
-  {
-    bRet = true;
-    DEBUG_PRINT_HIGH("Allocate done for all i/p buffers");
-  }
-  if(i==drv_ctx.ip_buf.actualcount && m_inp_bEnabled)
-  {
-     m_inp_bPopulated = OMX_TRUE;
-  }
-  return bRet;
-}
-/* ======================================================================
-FUNCTION
-  omx_vdec::AllocateOutputDone
-
-DESCRIPTION
-  Checks if entire O/P buffer pool is allocated by IL Client or not.
-
-PARAMETERS
-  None.
-
-RETURN VALUE
-  true/false.
-
-========================================================================== */
-bool omx_vdec::allocate_output_done(void)
-{
-  bool bRet = false;
-  unsigned j=0;
-
-  if (m_out_mem_ptr == NULL)
-  {
-      return bRet;
-  }
-
-  if (m_out_mem_ptr)
-  {
-    for(;j < drv_ctx.op_buf.actualcount;j++)
-    {
-      if(BITMASK_ABSENT(&m_out_bm_count,j))
-      {
-        break;
-      }
-    }
-  }
-
-  if(j == drv_ctx.op_buf.actualcount)
-  {
-    bRet = true;
-    DEBUG_PRINT_HIGH("Allocate done for all o/p buffers");
-    if(m_out_bEnabled)
-       m_out_bPopulated = OMX_TRUE;
-  }
-
-  return bRet;
-}
-
-/* ======================================================================
-FUNCTION
-  omx_vdec::ReleaseDone
-
-DESCRIPTION
-  Checks if IL client has released all the buffers.
-
-PARAMETERS
-  None.
-
-RETURN VALUE
-  true/false
-
-========================================================================== */
-bool omx_vdec::release_done(void)
-{
-  bool bRet = false;
-
-  if(release_input_done())
-  {
-    if(release_output_done())
-    {
+    if (bRet_In && bRet_Out) {
         bRet = true;
     }
-  }
-  return bRet;
+
+    return bRet;
+}
+/* ======================================================================
+   FUNCTION
+   omx_vdec::AllocateInputDone
+
+   DESCRIPTION
+   Checks if I/P buffer pool is allocated by IL Client or not.
+
+   PARAMETERS
+   None.
+
+   RETURN VALUE
+   true/false.
+
+   ========================================================================== */
+bool omx_vdec::allocate_input_done(void)
+{
+    bool bRet = false;
+    unsigned i=0;
+
+    if (m_inp_mem_ptr == NULL) {
+        return bRet;
+    }
+
+    if (m_inp_mem_ptr ) {
+        for (; i<drv_ctx.ip_buf.actualcount; i++) {
+            if (BITMASK_ABSENT(&m_inp_bm_count,i)) {
+                break;
+            }
+        }
+    }
+
+    if (i == drv_ctx.ip_buf.actualcount) {
+        bRet = true;
+        DEBUG_PRINT_HIGH("Allocate done for all i/p buffers");
+    }
+
+    if (i==drv_ctx.ip_buf.actualcount && m_inp_bEnabled) {
+        m_inp_bPopulated = OMX_TRUE;
+    }
+
+    return bRet;
+}
+/* ======================================================================
+   FUNCTION
+   omx_vdec::AllocateOutputDone
+
+   DESCRIPTION
+   Checks if entire O/P buffer pool is allocated by IL Client or not.
+
+   PARAMETERS
+   None.
+
+   RETURN VALUE
+   true/false.
+
+   ========================================================================== */
+bool omx_vdec::allocate_output_done(void)
+{
+    bool bRet = false;
+    unsigned j=0;
+
+    if (m_out_mem_ptr == NULL) {
+        return bRet;
+    }
+
+    if (m_out_mem_ptr) {
+        for (; j < drv_ctx.op_buf.actualcount; j++) {
+            if (BITMASK_ABSENT(&m_out_bm_count,j)) {
+                break;
+            }
+        }
+    }
+
+    if (j == drv_ctx.op_buf.actualcount) {
+        bRet = true;
+        DEBUG_PRINT_HIGH("Allocate done for all o/p buffers");
+
+        if (m_out_bEnabled)
+            m_out_bPopulated = OMX_TRUE;
+    }
+
+    return bRet;
+}
+
+/* ======================================================================
+   FUNCTION
+   omx_vdec::ReleaseDone
+
+   DESCRIPTION
+   Checks if IL client has released all the buffers.
+
+   PARAMETERS
+   None.
+
+   RETURN VALUE
+   true/false
+
+   ========================================================================== */
+bool omx_vdec::release_done(void)
+{
+    bool bRet = false;
+
+    if (release_input_done()) {
+        if (release_output_done()) {
+            bRet = true;
+        }
+    }
+
+    return bRet;
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::ReleaseOutputDone
+   FUNCTION
+   omx_vdec::ReleaseOutputDone
 
-DESCRIPTION
-  Checks if IL client has released all the buffers.
+   DESCRIPTION
+   Checks if IL client has released all the buffers.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 bool omx_vdec::release_output_done(void)
 {
-  bool bRet = false;
-  unsigned i=0,j=0;
+    bool bRet = false;
+    unsigned i=0,j=0;
 
-  DEBUG_PRINT_LOW("Value of m_out_mem_ptr %p",m_inp_mem_ptr);
-  if(m_out_mem_ptr)
-  {
-      for(;j < drv_ctx.op_buf.actualcount ; j++)
-      {
-        if(BITMASK_PRESENT(&m_out_bm_count,j))
-        {
-          break;
+    DEBUG_PRINT_LOW("Value of m_out_mem_ptr %p",m_inp_mem_ptr);
+
+    if (m_out_mem_ptr) {
+        for (; j < drv_ctx.op_buf.actualcount ; j++) {
+            if (BITMASK_PRESENT(&m_out_bm_count,j)) {
+                break;
+            }
         }
-      }
-    if(j == drv_ctx.op_buf.actualcount)
-    {
-      m_out_bm_count = 0;
-      bRet = true;
+
+        if (j == drv_ctx.op_buf.actualcount) {
+            m_out_bm_count = 0;
+            bRet = true;
+        }
+    } else {
+        m_out_bm_count = 0;
+        bRet = true;
     }
-  }
-  else
-  {
-    m_out_bm_count = 0;
-    bRet = true;
-  }
-  return bRet;
+
+    return bRet;
 }
 /* ======================================================================
-FUNCTION
-  omx_vdec::ReleaseInputDone
+   FUNCTION
+   omx_vdec::ReleaseInputDone
 
-DESCRIPTION
-  Checks if IL client has released all the buffers.
+   DESCRIPTION
+   Checks if IL client has released all the buffers.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 bool omx_vdec::release_input_done(void)
 {
-  bool bRet = false;
-  unsigned i=0,j=0;
+    bool bRet = false;
+    unsigned i=0,j=0;
 
-  DEBUG_PRINT_LOW("Value of m_inp_mem_ptr %p",m_inp_mem_ptr);
-  if(m_inp_mem_ptr)
-  {
-      for(;j<drv_ctx.ip_buf.actualcount;j++)
-      {
-        if( BITMASK_PRESENT(&m_inp_bm_count,j))
-        {
-          break;
+    DEBUG_PRINT_LOW("Value of m_inp_mem_ptr %p",m_inp_mem_ptr);
+
+    if (m_inp_mem_ptr) {
+        for (; j<drv_ctx.ip_buf.actualcount; j++) {
+            if ( BITMASK_PRESENT(&m_inp_bm_count,j)) {
+                break;
+            }
         }
-      }
-    if(j==drv_ctx.ip_buf.actualcount)
-    {
-      bRet = true;
+
+        if (j==drv_ctx.ip_buf.actualcount) {
+            bRet = true;
+        }
+    } else {
+        bRet = true;
     }
-  }
-  else
-  {
-    bRet = true;
-  }
-  return bRet;
+
+    return bRet;
 }
 
 OMX_ERRORTYPE omx_vdec::fill_buffer_done(OMX_HANDLETYPE hComp,
-                               OMX_BUFFERHEADERTYPE * buffer)
+        OMX_BUFFERHEADERTYPE * buffer)
 {
-  OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pPMEMInfo = NULL;
+    OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pPMEMInfo = NULL;
 
-  if (!buffer || (buffer - m_out_mem_ptr) >= drv_ctx.op_buf.actualcount)
-  {
-    DEBUG_PRINT_ERROR("\n [FBD] ERROR in ptr(%p)", buffer);
-    return OMX_ErrorBadParameter;
-  }
-  else if (output_flush_progress)
-  {
-    DEBUG_PRINT_LOW("FBD: Buffer (%p) flushed", buffer);
-    buffer->nFilledLen = 0;
-    buffer->nTimeStamp = 0;
-    buffer->nFlags &= ~OMX_BUFFERFLAG_EXTRADATA;
-    buffer->nFlags &= ~QOMX_VIDEO_BUFFERFLAG_EOSEQ;
-    buffer->nFlags &= ~OMX_BUFFERFLAG_DATACORRUPT;
-  }
+    if (!buffer || (buffer - m_out_mem_ptr) >= drv_ctx.op_buf.actualcount) {
+        DEBUG_PRINT_ERROR("\n [FBD] ERROR in ptr(%p)", buffer);
+        return OMX_ErrorBadParameter;
+    } else if (output_flush_progress) {
+        DEBUG_PRINT_LOW("FBD: Buffer (%p) flushed", buffer);
+        buffer->nFilledLen = 0;
+        buffer->nTimeStamp = 0;
+        buffer->nFlags &= ~OMX_BUFFERFLAG_EXTRADATA;
+        buffer->nFlags &= ~QOMX_VIDEO_BUFFERFLAG_EOSEQ;
+        buffer->nFlags &= ~OMX_BUFFERFLAG_DATACORRUPT;
+    }
 
 #ifdef _ANDROID_
-  char value[PROPERTY_VALUE_MAX];
-  property_get("vidc.dec.debug.panframedata", value, NULL);
+    char value[PROPERTY_VALUE_MAX];
+    property_get("vidc.dec.debug.panframedata", value, NULL);
 
-  if (atoi(value))
-  {
-    if (buffer->nFlags & QOMX_VIDEO_BUFFERFLAG_EOSEQ)
-    {
-      DEBUG_PRINT_HIGH("\n");
-      DEBUG_PRINT_HIGH("***************************************************\n");
-      DEBUG_PRINT_HIGH("FillBufferDone: End Of Sequence Received\n");
-      DEBUG_PRINT_HIGH("***************************************************\n");
-    }
-
-    if (buffer->nFlags & OMX_BUFFERFLAG_DATACORRUPT)
-    {
-      DEBUG_PRINT_HIGH("\n");
-      DEBUG_PRINT_HIGH("***************************************************\n");
-      DEBUG_PRINT_HIGH("FillBufferDone: OMX_BUFFERFLAG_DATACORRUPT Received\n");
-      DEBUG_PRINT_HIGH("***************************************************\n");
-    }
-  }
-#endif
-
-  DEBUG_PRINT_LOW("fill_buffer_done: bufhdr = %p, bufhdr->pBuffer = %p",
-      buffer, buffer->pBuffer);
-  pending_output_buffers --;
-
-  if (buffer->nFlags & OMX_BUFFERFLAG_EOS)
-  {
-    DEBUG_PRINT_HIGH("Output EOS has been reached");
-    if (!output_flush_progress)
-      post_event(NULL,NULL,OMX_COMPONENT_GENERATE_EOS_DONE);
-
-    if (psource_frame)
-    {
-      m_cb.EmptyBufferDone(&m_cmp, m_app_data, psource_frame);
-      psource_frame = NULL;
-    }
-    if (pdest_frame)
-    {
-      pdest_frame->nFilledLen = 0;
-      m_input_free_q.insert_entry((unsigned) pdest_frame,NULL,NULL);
-      pdest_frame = NULL;
-    }
-  }
-
-  DEBUG_PRINT_LOW("In fill Buffer done call address %p ",buffer);
-#ifdef OUTPUT_BUFFER_LOG
-  if (outputBufferFile1)
-  {
-    OMX_U32 index = buffer - m_out_mem_ptr;
-    OMX_U8* pBuffer = (OMX_U8 *)drv_ctx.ptr_outputbuffer[index].bufferaddr;
-
-    fwrite (pBuffer,1,buffer->nFilledLen,
-                  outputBufferFile1);
-  }
-#endif
-
-  /* For use buffer we need to copy the data */
-  if (!output_flush_progress)
-  {
-    time_stamp_dts.get_next_timestamp(buffer,
-    (drv_ctx.interlace != VDEC_InterlaceFrameProgressive)
-     ?true:false);
-  }
-  if (m_cb.FillBufferDone)
-  {
-    if (buffer->nFilledLen > 0)
-    {
-      if (client_extradata)
-      {
-        if(secure_mode)
-          handle_extradata_secure(buffer);
-        else
-          handle_extradata(buffer);
-      }
-      if (client_extradata & OMX_TIMEINFO_EXTRADATA)
-        // Keep min timestamp interval to handle corrupted bit stream scenario
-        set_frame_rate(buffer->nTimeStamp);
-      else if (arbitrary_bytes)
-        adjust_timestamp(buffer->nTimeStamp);
-#ifdef _ANDROID_
-      if (perf_flag)
-      {
-        if (!proc_frms)
-        {
-          dec_time.stop();
-          latency = dec_time.processing_time_us() - latency;
-          DEBUG_PRINT_HIGH(">>> FBD Metrics: Latency(%.2f)mS", latency / 1e3);
-          dec_time.start();
-          fps_metrics.start();
+    if (atoi(value)) {
+        if (buffer->nFlags & QOMX_VIDEO_BUFFERFLAG_EOSEQ) {
+            DEBUG_PRINT_HIGH("\n");
+            DEBUG_PRINT_HIGH("***************************************************\n");
+            DEBUG_PRINT_HIGH("FillBufferDone: End Of Sequence Received\n");
+            DEBUG_PRINT_HIGH("***************************************************\n");
         }
-        proc_frms++;
-        if (buffer->nFlags & OMX_BUFFERFLAG_EOS)
-        {
-          OMX_U64 proc_time = 0;
-          fps_metrics.stop();
-          proc_time = fps_metrics.processing_time_us();
-          DEBUG_PRINT_HIGH(">>> FBD Metrics: proc_frms(%lu) proc_time(%.2f)S fps(%.2f)",
+
+        if (buffer->nFlags & OMX_BUFFERFLAG_DATACORRUPT) {
+            DEBUG_PRINT_HIGH("\n");
+            DEBUG_PRINT_HIGH("***************************************************\n");
+            DEBUG_PRINT_HIGH("FillBufferDone: OMX_BUFFERFLAG_DATACORRUPT Received\n");
+            DEBUG_PRINT_HIGH("***************************************************\n");
+        }
+    }
+
+#endif
+
+    DEBUG_PRINT_LOW("fill_buffer_done: bufhdr = %p, bufhdr->pBuffer = %p",
+            buffer, buffer->pBuffer);
+    pending_output_buffers --;
+
+    if (buffer->nFlags & OMX_BUFFERFLAG_EOS) {
+        DEBUG_PRINT_HIGH("Output EOS has been reached");
+
+        if (!output_flush_progress)
+            post_event(NULL,NULL,OMX_COMPONENT_GENERATE_EOS_DONE);
+
+        if (psource_frame) {
+            m_cb.EmptyBufferDone(&m_cmp, m_app_data, psource_frame);
+            psource_frame = NULL;
+        }
+
+        if (pdest_frame) {
+            pdest_frame->nFilledLen = 0;
+            m_input_free_q.insert_entry((unsigned) pdest_frame,NULL,NULL);
+            pdest_frame = NULL;
+        }
+    }
+
+    DEBUG_PRINT_LOW("In fill Buffer done call address %p ",buffer);
+#ifdef OUTPUT_BUFFER_LOG
+
+    if (outputBufferFile1) {
+        OMX_U32 index = buffer - m_out_mem_ptr;
+        OMX_U8* pBuffer = (OMX_U8 *)drv_ctx.ptr_outputbuffer[index].bufferaddr;
+
+        fwrite (pBuffer,1,buffer->nFilledLen,
+                outputBufferFile1);
+    }
+
+#endif
+
+    /* For use buffer we need to copy the data */
+    if (!output_flush_progress) {
+        time_stamp_dts.get_next_timestamp(buffer,
+                (drv_ctx.interlace != VDEC_InterlaceFrameProgressive)
+                ?true:false);
+    }
+
+    if (m_cb.FillBufferDone) {
+        if (buffer->nFilledLen > 0) {
+            if (client_extradata) {
+                if (secure_mode)
+                    handle_extradata_secure(buffer);
+                else
+                    handle_extradata(buffer);
+            }
+
+            if (client_extradata & OMX_TIMEINFO_EXTRADATA)
+                // Keep min timestamp interval to handle corrupted bit stream scenario
+                set_frame_rate(buffer->nTimeStamp);
+            else if (arbitrary_bytes)
+                adjust_timestamp(buffer->nTimeStamp);
+
+#ifdef _ANDROID_
+
+            if (perf_flag) {
+                if (!proc_frms) {
+                    dec_time.stop();
+                    latency = dec_time.processing_time_us() - latency;
+                    DEBUG_PRINT_HIGH(">>> FBD Metrics: Latency(%.2f)mS", latency / 1e3);
+                    dec_time.start();
+                    fps_metrics.start();
+                }
+
+                proc_frms++;
+
+                if (buffer->nFlags & OMX_BUFFERFLAG_EOS) {
+                    OMX_U64 proc_time = 0;
+                    fps_metrics.stop();
+                    proc_time = fps_metrics.processing_time_us();
+                    DEBUG_PRINT_HIGH(">>> FBD Metrics: proc_frms(%lu) proc_time(%.2f)S fps(%.2f)",
                             proc_frms, (float)proc_time / 1e6,
                             (float)(1e6 * proc_frms) / proc_time);
-          proc_frms = 0;
-        }
-      }
+                    proc_frms = 0;
+                }
+            }
+
 #endif //_ANDROID_
 
 #ifdef OUTPUT_EXTRADATA_LOG
-  if (outputExtradataFile)
-  {
 
-    OMX_U32 index = buffer - m_out_mem_ptr;
-    OMX_U8* pBuffer = (OMX_U8 *)drv_ctx.ptr_outputbuffer[index].bufferaddr;
+            if (outputExtradataFile) {
 
-    OMX_OTHER_EXTRADATATYPE *p_extra = NULL;
-    p_extra = (OMX_OTHER_EXTRADATATYPE *)
-           ((unsigned)(pBuffer + buffer->nOffset +
-            buffer->nFilledLen + 3)&(~3));
-    while(p_extra &&
-          (OMX_U8*)p_extra < (pBuffer + buffer->nAllocLen) )
-    {
-      DEBUG_PRINT_LOW("WRITING extradata, size=%d,type=%d",p_extra->nSize, p_extra->eType);
-      fwrite (p_extra,1,p_extra->nSize,outputExtradataFile);
-      if (p_extra->eType == OMX_ExtraDataNone)
-      {
-        break;
-      }
-      p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
-    }
-  }
+                OMX_U32 index = buffer - m_out_mem_ptr;
+                OMX_U8* pBuffer = (OMX_U8 *)drv_ctx.ptr_outputbuffer[index].bufferaddr;
+
+                OMX_OTHER_EXTRADATATYPE *p_extra = NULL;
+                p_extra = (OMX_OTHER_EXTRADATATYPE *)
+                    ((unsigned)(pBuffer + buffer->nOffset +
+                        buffer->nFilledLen + 3)&(~3));
+
+                while (p_extra &&
+                        (OMX_U8*)p_extra < (pBuffer + buffer->nAllocLen) ) {
+                    DEBUG_PRINT_LOW("WRITING extradata, size=%d,type=%d",p_extra->nSize, p_extra->eType);
+                    fwrite (p_extra,1,p_extra->nSize,outputExtradataFile);
+
+                    if (p_extra->eType == OMX_ExtraDataNone) {
+                        break;
+                    }
+
+                    p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+                }
+            }
+
 #endif
-    }
-    if (buffer->nFlags & OMX_BUFFERFLAG_EOS){
-      prev_ts = LLONG_MAX;
-      rst_prev_ts = true;
-      }
+        }
 
-    pPMEMInfo = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
-                ((OMX_QCOM_PLATFORM_PRIVATE_LIST *)
-                buffer->pPlatformPrivate)->entryList->entry;
-    DEBUG_PRINT_LOW("Before FBD callback Accessed Pmeminfo %d",pPMEMInfo->pmem_fd);
+        if (buffer->nFlags & OMX_BUFFERFLAG_EOS) {
+            prev_ts = LLONG_MAX;
+            rst_prev_ts = true;
+        }
+
+        pPMEMInfo = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
+            ((OMX_QCOM_PLATFORM_PRIVATE_LIST *)
+             buffer->pPlatformPrivate)->entryList->entry;
+        DEBUG_PRINT_LOW("Before FBD callback Accessed Pmeminfo %d",pPMEMInfo->pmem_fd);
 #ifdef _ANDROID_ICS_
-    if (m_enable_android_native_buffers)
-    {
-     if (native_buffer[buffer - m_out_mem_ptr].inuse) {
-      if (GENLOCK_NO_ERROR != genlock_unlock_buffer(native_buffer[buffer - m_out_mem_ptr].nativehandle)) {
-        DEBUG_PRINT_ERROR("Unlocking genlock failed");
-        return OMX_ErrorInsufficientResources;
-      }
-      else {
-        native_buffer[buffer - m_out_mem_ptr].inuse = false;
-      }
-     }
-    }
+
+        if (m_enable_android_native_buffers) {
+            if (native_buffer[buffer - m_out_mem_ptr].inuse) {
+                if (GENLOCK_NO_ERROR != genlock_unlock_buffer(native_buffer[buffer - m_out_mem_ptr].nativehandle)) {
+                    DEBUG_PRINT_ERROR("Unlocking genlock failed");
+                    return OMX_ErrorInsufficientResources;
+                } else {
+                    native_buffer[buffer - m_out_mem_ptr].inuse = false;
+                }
+            }
+        }
+
 #endif
-    OMX_BUFFERHEADERTYPE *il_buffer;
-    il_buffer = client_buffers.get_il_buf_hdr(buffer);
-    if (il_buffer)
-      m_cb.FillBufferDone (hComp,m_app_data,il_buffer);
-    else {
-      DEBUG_PRINT_ERROR("Invalid buffer address from get_il_buf_hdr");
-      return OMX_ErrorBadParameter;
+        OMX_BUFFERHEADERTYPE *il_buffer;
+        il_buffer = client_buffers.get_il_buf_hdr(buffer);
+
+        if (il_buffer)
+            m_cb.FillBufferDone (hComp,m_app_data,il_buffer);
+        else {
+            DEBUG_PRINT_ERROR("Invalid buffer address from get_il_buf_hdr");
+            return OMX_ErrorBadParameter;
+        }
+
+        DEBUG_PRINT_LOW("After Fill Buffer Done callback %d",pPMEMInfo->pmem_fd);
+    } else {
+        return OMX_ErrorBadParameter;
     }
 
-    DEBUG_PRINT_LOW("After Fill Buffer Done callback %d",pPMEMInfo->pmem_fd);
-  }
-  else
-  {
-    return OMX_ErrorBadParameter;
-  }
-
-  return OMX_ErrorNone;
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_vdec::empty_buffer_done(OMX_HANDLETYPE         hComp,
-                                          OMX_BUFFERHEADERTYPE* buffer)
+        OMX_BUFFERHEADERTYPE* buffer)
 {
 
-    if (buffer == NULL || ((buffer - m_inp_mem_ptr) > drv_ctx.ip_buf.actualcount))
-    {
+    if (buffer == NULL || ((buffer - m_inp_mem_ptr) > drv_ctx.ip_buf.actualcount)) {
         DEBUG_PRINT_ERROR("\n empty_buffer_done: ERROR bufhdr = %p", buffer);
-       return OMX_ErrorBadParameter;
+        return OMX_ErrorBadParameter;
     }
 
     DEBUG_PRINT_LOW("empty_buffer_done: bufhdr = %p, bufhdr->pBuffer = %p",
-        buffer, buffer->pBuffer);
+            buffer, buffer->pBuffer);
     pending_input_buffers--;
 
-    if (arbitrary_bytes)
-    {
-      if (pdest_frame == NULL && input_flush_progress == false)
-      {
-        DEBUG_PRINT_LOW("Push input from buffer done address of Buffer %p",buffer);
-        pdest_frame = buffer;
-        buffer->nFilledLen = 0;
-        buffer->nTimeStamp = LLONG_MAX;
-        push_input_buffer (hComp);
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("Push buffer into freeq address of Buffer %p",buffer);
-        buffer->nFilledLen = 0;
-        if (!m_input_free_q.insert_entry((unsigned)buffer,NULL,NULL))
-        {
-          DEBUG_PRINT_ERROR("\nERROR:i/p free Queue is FULL Error");
+    if (arbitrary_bytes) {
+        if (pdest_frame == NULL && input_flush_progress == false) {
+            DEBUG_PRINT_LOW("Push input from buffer done address of Buffer %p",buffer);
+            pdest_frame = buffer;
+            buffer->nFilledLen = 0;
+            buffer->nTimeStamp = LLONG_MAX;
+            push_input_buffer (hComp);
+        } else {
+            DEBUG_PRINT_LOW("Push buffer into freeq address of Buffer %p",buffer);
+            buffer->nFilledLen = 0;
+
+            if (!m_input_free_q.insert_entry((unsigned)buffer,NULL,NULL)) {
+                DEBUG_PRINT_ERROR("\nERROR:i/p free Queue is FULL Error");
+            }
         }
-      }
-    }
-    else if(m_cb.EmptyBufferDone)
-    {
+    } else if (m_cb.EmptyBufferDone) {
         buffer->nFilledLen = 0;
-        if (input_use_buffer == true){
+
+        if (input_use_buffer == true) {
             buffer = &m_inp_heap_ptr[buffer-m_inp_mem_ptr];
         }
+
         m_cb.EmptyBufferDone(hComp ,m_app_data, buffer);
     }
+
     return OMX_ErrorNone;
 }
 
 
 int omx_vdec::async_message_process (void *context, void* message)
 {
-  omx_vdec* omx = NULL;
-  struct vdec_msginfo *vdec_msg = NULL;
-  OMX_BUFFERHEADERTYPE* omxhdr = NULL;
-  struct vdec_output_frameinfo *output_respbuf = NULL;
+    omx_vdec* omx = NULL;
+    struct vdec_msginfo *vdec_msg = NULL;
+    OMX_BUFFERHEADERTYPE* omxhdr = NULL;
+    struct vdec_output_frameinfo *output_respbuf = NULL;
 
-  if (context == NULL || message == NULL)
-  {
-    DEBUG_PRINT_ERROR("\n FATAL ERROR in omx_vdec::async_message_process NULL Check");
-    return -1;
-  }
-  vdec_msg = (struct vdec_msginfo *)message;
+    if (context == NULL || message == NULL) {
+        DEBUG_PRINT_ERROR("\n FATAL ERROR in omx_vdec::async_message_process NULL Check");
+        return -1;
+    }
 
-  omx = reinterpret_cast<omx_vdec*>(context);
+    vdec_msg = (struct vdec_msginfo *)message;
+
+    omx = reinterpret_cast<omx_vdec*>(context);
 
 #ifdef _ANDROID_
-  if (omx->m_debug_timestamp)
-  {
-    if ( (vdec_msg->msgcode == VDEC_MSG_RESP_OUTPUT_BUFFER_DONE) &&
-         !(omx->output_flush_progress) )
-    {
-      OMX_TICKS expected_ts = 0;
-      omx->m_timestamp_list.pop_min_ts(expected_ts);
-      DEBUG_PRINT_LOW("Current timestamp (%lld),Popped TIMESTAMP (%lld) from list",
-                       vdec_msg->msgdata.output_frame.time_stamp, expected_ts);
 
-      if (vdec_msg->msgdata.output_frame.time_stamp != expected_ts)
-      {
-        DEBUG_PRINT_ERROR("\n ERROR in omx_vdec::async_message_process timestamp Check");
-      }
+    if (omx->m_debug_timestamp) {
+        if ( (vdec_msg->msgcode == VDEC_MSG_RESP_OUTPUT_BUFFER_DONE) &&
+                !(omx->output_flush_progress) ) {
+            OMX_TICKS expected_ts = 0;
+            omx->m_timestamp_list.pop_min_ts(expected_ts);
+            DEBUG_PRINT_LOW("Current timestamp (%lld),Popped TIMESTAMP (%lld) from list",
+                    vdec_msg->msgdata.output_frame.time_stamp, expected_ts);
+
+            if (vdec_msg->msgdata.output_frame.time_stamp != expected_ts) {
+                DEBUG_PRINT_ERROR("\n ERROR in omx_vdec::async_message_process timestamp Check");
+            }
+        }
     }
-  }
+
 #endif
 
-  switch (vdec_msg->msgcode)
-  {
+    switch (vdec_msg->msgcode) {
 
-  case VDEC_MSG_EVT_HW_ERROR:
-    omx->post_event (NULL,vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_HARDWARE_ERROR);
-  break;
+        case VDEC_MSG_EVT_HW_ERROR:
+            omx->post_event (NULL,vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_HARDWARE_ERROR);
+            break;
 
-  case VDEC_MSG_RESP_START_DONE:
-    omx->post_event (NULL,vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_START_DONE);
-  break;
+        case VDEC_MSG_RESP_START_DONE:
+            omx->post_event (NULL,vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_START_DONE);
+            break;
 
-  case VDEC_MSG_RESP_STOP_DONE:
-    omx->post_event (NULL,vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_STOP_DONE);
-  break;
+        case VDEC_MSG_RESP_STOP_DONE:
+            omx->post_event (NULL,vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_STOP_DONE);
+            break;
 
-  case VDEC_MSG_RESP_RESUME_DONE:
-    omx->post_event (NULL,vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_RESUME_DONE);
-  break;
+        case VDEC_MSG_RESP_RESUME_DONE:
+            omx->post_event (NULL,vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_RESUME_DONE);
+            break;
 
-  case VDEC_MSG_RESP_PAUSE_DONE:
-    omx->post_event (NULL,vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_PAUSE_DONE);
-  break;
+        case VDEC_MSG_RESP_PAUSE_DONE:
+            omx->post_event (NULL,vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_PAUSE_DONE);
+            break;
 
-  case VDEC_MSG_RESP_FLUSH_INPUT_DONE:
-    omx->post_event (NULL,vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH);
-    break;
-  case VDEC_MSG_RESP_FLUSH_OUTPUT_DONE:
-    omx->post_event (NULL,vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH);
-    break;
-  case VDEC_MSG_RESP_INPUT_FLUSHED:
-  case VDEC_MSG_RESP_INPUT_BUFFER_DONE:
+        case VDEC_MSG_RESP_FLUSH_INPUT_DONE:
+            omx->post_event (NULL,vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH);
+            break;
+        case VDEC_MSG_RESP_FLUSH_OUTPUT_DONE:
+            omx->post_event (NULL,vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH);
+            break;
+        case VDEC_MSG_RESP_INPUT_FLUSHED:
+        case VDEC_MSG_RESP_INPUT_BUFFER_DONE:
 
-    omxhdr = (OMX_BUFFERHEADERTYPE* )\
-              vdec_msg->msgdata.input_frame_clientdata;
+            omxhdr = (OMX_BUFFERHEADERTYPE* )\
+                     vdec_msg->msgdata.input_frame_clientdata;
 
 
-    if (omxhdr == NULL ||
-       ((omxhdr - omx->m_inp_mem_ptr) > omx->drv_ctx.ip_buf.actualcount) )
-    {
-       omxhdr = NULL;
-       vdec_msg->status_code = VDEC_S_EFATAL;
+            if (omxhdr == NULL ||
+                    ((omxhdr - omx->m_inp_mem_ptr) > omx->drv_ctx.ip_buf.actualcount) ) {
+                omxhdr = NULL;
+                vdec_msg->status_code = VDEC_S_EFATAL;
+            }
+
+            omx->post_event ((unsigned int)omxhdr,vdec_msg->status_code,
+                    OMX_COMPONENT_GENERATE_EBD);
+            break;
+        case VDEC_MSG_EVT_INFO_FIELD_DROPPED:
+            int64_t *timestamp;
+            timestamp = (int64_t *) malloc(sizeof(int64_t));
+
+            if (timestamp) {
+                *timestamp = vdec_msg->msgdata.output_frame.time_stamp;
+                omx->post_event ((unsigned int)timestamp, vdec_msg->status_code,
+                        OMX_COMPONENT_GENERATE_INFO_FIELD_DROPPED);
+                DEBUG_PRINT_HIGH("Field dropped time stamp is %lld",
+                        vdec_msg->msgdata.output_frame.time_stamp);
+            }
+
+            break;
+        case VDEC_MSG_RESP_OUTPUT_FLUSHED:
+        case VDEC_MSG_RESP_OUTPUT_BUFFER_DONE:
+            omxhdr = (OMX_BUFFERHEADERTYPE*)vdec_msg->msgdata.output_frame.client_data;
+            DEBUG_PRINT_LOW("[RespBufDone] Buf(%p) Ts(%lld) Pic_type(%u)",
+                    omxhdr, vdec_msg->msgdata.output_frame.time_stamp,
+                    vdec_msg->msgdata.output_frame.pic_type);
+
+            /* update SYNCFRAME flag */
+            if (omx->eCompressionFormat == OMX_VIDEO_CodingAVC) {
+                /* set SYNCFRAME flag if picture type is IDR for h264 */
+                if (vdec_msg->msgdata.output_frame.pic_type == PICTURE_TYPE_IDR)
+                    vdec_msg->msgdata.output_frame.flags |= OMX_BUFFERFLAG_SYNCFRAME;
+                else
+                    vdec_msg->msgdata.output_frame.flags &= ~OMX_BUFFERFLAG_SYNCFRAME;
+            } else {
+                /* set SYNCFRAME flag if picture type is I_TYPE */
+                if (vdec_msg->msgdata.output_frame.pic_type == PICTURE_TYPE_I)
+                    vdec_msg->msgdata.output_frame.flags |= OMX_BUFFERFLAG_SYNCFRAME;
+                else
+                    vdec_msg->msgdata.output_frame.flags &= ~OMX_BUFFERFLAG_SYNCFRAME;
+            }
+
+            if (omxhdr && omxhdr->pOutputPortPrivate &&
+                    ((omxhdr - omx->m_out_mem_ptr) < omx->drv_ctx.op_buf.actualcount) &&
+                    (((struct vdec_output_frameinfo *)omxhdr->pOutputPortPrivate
+                      - omx->drv_ctx.ptr_respbuffer) < omx->drv_ctx.op_buf.actualcount)) {
+                if (vdec_msg->msgdata.output_frame.len <=  omxhdr->nAllocLen) {
+                    omxhdr->nFilledLen = vdec_msg->msgdata.output_frame.len;
+                    omxhdr->nOffset = vdec_msg->msgdata.output_frame.offset;
+                    omxhdr->nTimeStamp = vdec_msg->msgdata.output_frame.time_stamp;
+                    omxhdr->nFlags = (vdec_msg->msgdata.output_frame.flags);
+
+                    output_respbuf = (struct vdec_output_frameinfo *)\
+                                     omxhdr->pOutputPortPrivate;
+                    output_respbuf->framesize.bottom =
+                        vdec_msg->msgdata.output_frame.framesize.bottom;
+                    output_respbuf->framesize.left =
+                        vdec_msg->msgdata.output_frame.framesize.left;
+                    output_respbuf->framesize.right =
+                        vdec_msg->msgdata.output_frame.framesize.right;
+                    output_respbuf->framesize.top =
+                        vdec_msg->msgdata.output_frame.framesize.top;
+                    output_respbuf->len = vdec_msg->msgdata.output_frame.len;
+                    output_respbuf->offset = vdec_msg->msgdata.output_frame.offset;
+                    output_respbuf->time_stamp = vdec_msg->msgdata.output_frame.time_stamp;
+                    output_respbuf->flags = vdec_msg->msgdata.output_frame.flags;
+                    output_respbuf->pic_type = vdec_msg->msgdata.output_frame.pic_type;
+                    output_respbuf->interlaced_format = vdec_msg->msgdata.output_frame.interlaced_format;
+                    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 +
+                                 vdec_msg->msgdata.output_frame.offset),
+                                vdec_msg->msgdata.output_frame.len );
+                } else
+                    omxhdr->nFilledLen = 0;
+
+                omx->post_event ((unsigned int)omxhdr, vdec_msg->status_code,
+                        OMX_COMPONENT_GENERATE_FBD);
+            } else if (vdec_msg->msgdata.output_frame.flags & OMX_BUFFERFLAG_EOS)
+                omx->post_event (NULL, vdec_msg->status_code,
+                        OMX_COMPONENT_GENERATE_EOS_DONE);
+            else
+                omx->post_event (NULL, vdec_msg->status_code,
+                        OMX_COMPONENT_GENERATE_HARDWARE_ERROR);
+
+            break;
+        case VDEC_MSG_EVT_CONFIG_CHANGED:
+            DEBUG_PRINT_HIGH("Port settings changed");
+            omx->post_event ((unsigned int)omxhdr,vdec_msg->status_code,
+                    OMX_COMPONENT_GENERATE_PORT_RECONFIG);
+            break;
+        case VDEC_MSG_EVT_INFO_CONFIG_CHANGED:
+            {
+                DEBUG_PRINT_HIGH("Port settings changed info");
+                // get_buffer_req and populate port defn structure
+                OMX_ERRORTYPE eRet = OMX_ErrorNone;
+                omx->m_port_def.nPortIndex = 1;
+                eRet = omx->update_portdef(&(omx->m_port_def));
+                omx->post_event ((unsigned int)omxhdr,vdec_msg->status_code,
+                        OMX_COMPONENT_GENERATE_INFO_PORT_RECONFIG);
+                break;
+            }
+        default:
+            break;
     }
 
-    omx->post_event ((unsigned int)omxhdr,vdec_msg->status_code,
-                     OMX_COMPONENT_GENERATE_EBD);
-    break;
-    case VDEC_MSG_EVT_INFO_FIELD_DROPPED:
-      int64_t *timestamp;
-      timestamp = (int64_t *) malloc(sizeof(int64_t));
-      if (timestamp) {
-        *timestamp = vdec_msg->msgdata.output_frame.time_stamp;
-        omx->post_event ((unsigned int)timestamp, vdec_msg->status_code,
-                         OMX_COMPONENT_GENERATE_INFO_FIELD_DROPPED);
-        DEBUG_PRINT_HIGH("Field dropped time stamp is %lld",
-             vdec_msg->msgdata.output_frame.time_stamp);
-      }
-      break;
-  case VDEC_MSG_RESP_OUTPUT_FLUSHED:
-    case VDEC_MSG_RESP_OUTPUT_BUFFER_DONE:
-    omxhdr = (OMX_BUFFERHEADERTYPE*)vdec_msg->msgdata.output_frame.client_data;
-    DEBUG_PRINT_LOW("[RespBufDone] Buf(%p) Ts(%lld) Pic_type(%u)",
-      omxhdr, vdec_msg->msgdata.output_frame.time_stamp,
-      vdec_msg->msgdata.output_frame.pic_type);
-
-    /* update SYNCFRAME flag */
-    if (omx->eCompressionFormat == OMX_VIDEO_CodingAVC)
-    {
-      /* set SYNCFRAME flag if picture type is IDR for h264 */
-      if (vdec_msg->msgdata.output_frame.pic_type == PICTURE_TYPE_IDR)
-        vdec_msg->msgdata.output_frame.flags |= OMX_BUFFERFLAG_SYNCFRAME;
-      else
-        vdec_msg->msgdata.output_frame.flags &= ~OMX_BUFFERFLAG_SYNCFRAME;
-    }
-    else
-    {
-      /* set SYNCFRAME flag if picture type is I_TYPE */
-      if (vdec_msg->msgdata.output_frame.pic_type == PICTURE_TYPE_I)
-        vdec_msg->msgdata.output_frame.flags |= OMX_BUFFERFLAG_SYNCFRAME;
-      else
-        vdec_msg->msgdata.output_frame.flags &= ~OMX_BUFFERFLAG_SYNCFRAME;
-    }
-
-    if (omxhdr && omxhdr->pOutputPortPrivate &&
-        ((omxhdr - omx->m_out_mem_ptr) < omx->drv_ctx.op_buf.actualcount) &&
-         (((struct vdec_output_frameinfo *)omxhdr->pOutputPortPrivate
-            - omx->drv_ctx.ptr_respbuffer) < omx->drv_ctx.op_buf.actualcount))
-    {
-      if (vdec_msg->msgdata.output_frame.len <=  omxhdr->nAllocLen)
-      {
-        omxhdr->nFilledLen = vdec_msg->msgdata.output_frame.len;
-        omxhdr->nOffset = vdec_msg->msgdata.output_frame.offset;
-        omxhdr->nTimeStamp = vdec_msg->msgdata.output_frame.time_stamp;
-        omxhdr->nFlags = (vdec_msg->msgdata.output_frame.flags);
-
-        output_respbuf = (struct vdec_output_frameinfo *)\
-                          omxhdr->pOutputPortPrivate;
-        output_respbuf->framesize.bottom =
-          vdec_msg->msgdata.output_frame.framesize.bottom;
-        output_respbuf->framesize.left =
-          vdec_msg->msgdata.output_frame.framesize.left;
-        output_respbuf->framesize.right =
-          vdec_msg->msgdata.output_frame.framesize.right;
-        output_respbuf->framesize.top =
-          vdec_msg->msgdata.output_frame.framesize.top;
-        output_respbuf->len = vdec_msg->msgdata.output_frame.len;
-        output_respbuf->offset = vdec_msg->msgdata.output_frame.offset;
-        output_respbuf->time_stamp = vdec_msg->msgdata.output_frame.time_stamp;
-        output_respbuf->flags = vdec_msg->msgdata.output_frame.flags;
-        output_respbuf->pic_type = vdec_msg->msgdata.output_frame.pic_type;
-        output_respbuf->interlaced_format = vdec_msg->msgdata.output_frame.interlaced_format;
-        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 +
-                    vdec_msg->msgdata.output_frame.offset),
-                    vdec_msg->msgdata.output_frame.len );
-      }
-      else
-        omxhdr->nFilledLen = 0;
-      omx->post_event ((unsigned int)omxhdr, vdec_msg->status_code,
-                       OMX_COMPONENT_GENERATE_FBD);
-    }
-    else if (vdec_msg->msgdata.output_frame.flags & OMX_BUFFERFLAG_EOS)
-      omx->post_event (NULL, vdec_msg->status_code,
-                       OMX_COMPONENT_GENERATE_EOS_DONE);
-    else
-      omx->post_event (NULL, vdec_msg->status_code,
-                       OMX_COMPONENT_GENERATE_HARDWARE_ERROR);
-    break;
-  case VDEC_MSG_EVT_CONFIG_CHANGED:
-    DEBUG_PRINT_HIGH("Port settings changed");
-    omx->post_event ((unsigned int)omxhdr,vdec_msg->status_code,
-                     OMX_COMPONENT_GENERATE_PORT_RECONFIG);
-    break;
-  case VDEC_MSG_EVT_INFO_CONFIG_CHANGED:
-  {
-    DEBUG_PRINT_HIGH("Port settings changed info");
-    // get_buffer_req and populate port defn structure
-    OMX_ERRORTYPE eRet = OMX_ErrorNone;
-    omx->m_port_def.nPortIndex = 1;
-    eRet = omx->update_portdef(&(omx->m_port_def));
-    omx->post_event ((unsigned int)omxhdr,vdec_msg->status_code,
-                     OMX_COMPONENT_GENERATE_INFO_PORT_RECONFIG);
-    break;
-  }
-  default:
-    break;
-  }
-  return 1;
+    return 1;
 }
 
 OMX_ERRORTYPE omx_vdec::empty_this_buffer_proxy_arbitrary (
-                                                   OMX_HANDLETYPE hComp,
-                                                   OMX_BUFFERHEADERTYPE *buffer
-                                                           )
+        OMX_HANDLETYPE hComp,
+        OMX_BUFFERHEADERTYPE *buffer
+        )
 {
-  unsigned address,p2,id;
-  DEBUG_PRINT_LOW("Empty this arbitrary");
+    unsigned address,p2,id;
+    DEBUG_PRINT_LOW("Empty this arbitrary");
 
-  if (buffer == NULL)
-  {
-    return OMX_ErrorBadParameter;
-  }
-  DEBUG_PRINT_LOW("ETBProxyArb: bufhdr = %p, bufhdr->pBuffer = %p", buffer, buffer->pBuffer);
-  DEBUG_PRINT_LOW("ETBProxyArb: nFilledLen %u, flags %d, timestamp %u",
-        buffer->nFilledLen, buffer->nFlags, (unsigned)buffer->nTimeStamp);
-
-  /* return zero length and not an EOS buffer */
-  /* return buffer if input flush in progress */
-  if ((input_flush_progress == true) || ((buffer->nFilledLen == 0) &&
-     ((buffer->nFlags & OMX_BUFFERFLAG_EOS) == 0)))
-  {
-    DEBUG_PRINT_HIGH("return zero legth buffer or flush in progress");
-    m_cb.EmptyBufferDone (hComp,m_app_data,buffer);
-    return OMX_ErrorNone;
-  }
-
-  if (psource_frame == NULL)
-  {
-    DEBUG_PRINT_LOW("Set Buffer as source Buffer %p time stamp %d",buffer,buffer->nTimeStamp);
-    psource_frame = buffer;
-    DEBUG_PRINT_LOW("Try to Push One Input Buffer ");
-    push_input_buffer (hComp);
-  }
-  else
-  {
-    DEBUG_PRINT_LOW("Push the source buffer into pendingq %p",buffer);
-    if (!m_input_pending_q.insert_entry((unsigned)buffer,NULL,NULL))
-    {
-      return OMX_ErrorBadParameter;
+    if (buffer == NULL) {
+        return OMX_ErrorBadParameter;
     }
-  }
+
+    DEBUG_PRINT_LOW("ETBProxyArb: bufhdr = %p, bufhdr->pBuffer = %p", buffer, buffer->pBuffer);
+    DEBUG_PRINT_LOW("ETBProxyArb: nFilledLen %u, flags %d, timestamp %u",
+            buffer->nFilledLen, buffer->nFlags, (unsigned)buffer->nTimeStamp);
+
+    /* return zero length and not an EOS buffer */
+
+    /* return buffer if input flush in progress */
+    if ((input_flush_progress == true) || ((buffer->nFilledLen == 0) &&
+                ((buffer->nFlags & OMX_BUFFERFLAG_EOS) == 0))) {
+        DEBUG_PRINT_HIGH("return zero legth buffer or flush in progress");
+        m_cb.EmptyBufferDone (hComp,m_app_data,buffer);
+        return OMX_ErrorNone;
+    }
+
+    if (psource_frame == NULL) {
+        DEBUG_PRINT_LOW("Set Buffer as source Buffer %p time stamp %d",buffer,buffer->nTimeStamp);
+        psource_frame = buffer;
+        DEBUG_PRINT_LOW("Try to Push One Input Buffer ");
+        push_input_buffer (hComp);
+    } else {
+        DEBUG_PRINT_LOW("Push the source buffer into pendingq %p",buffer);
+
+        if (!m_input_pending_q.insert_entry((unsigned)buffer,NULL,NULL)) {
+            return OMX_ErrorBadParameter;
+        }
+    }
 
 
-  return OMX_ErrorNone;
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_vdec::push_input_buffer (OMX_HANDLETYPE hComp)
 {
-  unsigned address,p2,id;
-  OMX_ERRORTYPE ret = OMX_ErrorNone;
+    unsigned address,p2,id;
+    OMX_ERRORTYPE ret = OMX_ErrorNone;
 
-  if (pdest_frame == NULL || psource_frame == NULL)
-  {
-    /*Check if we have a destination buffer*/
-    if (pdest_frame == NULL)
-    {
-      DEBUG_PRINT_LOW("Get a Destination buffer from the queue");
-      if (m_input_free_q.m_size)
-      {
-        m_input_free_q.pop_entry(&address,&p2,&id);
-        pdest_frame = (OMX_BUFFERHEADERTYPE *)address;
-        pdest_frame->nFilledLen = 0;
-        pdest_frame->nTimeStamp = LLONG_MAX;
-        DEBUG_PRINT_LOW("Address of Pmem Buffer %p",pdest_frame);
-      }
+    if (pdest_frame == NULL || psource_frame == NULL) {
+        /*Check if we have a destination buffer*/
+        if (pdest_frame == NULL) {
+            DEBUG_PRINT_LOW("Get a Destination buffer from the queue");
+
+            if (m_input_free_q.m_size) {
+                m_input_free_q.pop_entry(&address,&p2,&id);
+                pdest_frame = (OMX_BUFFERHEADERTYPE *)address;
+                pdest_frame->nFilledLen = 0;
+                pdest_frame->nTimeStamp = LLONG_MAX;
+                DEBUG_PRINT_LOW("Address of Pmem Buffer %p",pdest_frame);
+            }
+        }
+
+        /*Check if we have a destination buffer*/
+        if (psource_frame == NULL) {
+            DEBUG_PRINT_LOW("Get a source buffer from the queue");
+
+            if (m_input_pending_q.m_size) {
+                m_input_pending_q.pop_entry(&address,&p2,&id);
+                psource_frame = (OMX_BUFFERHEADERTYPE *)address;
+                DEBUG_PRINT_LOW("Next source Buffer %p time stamp %d",psource_frame,
+                        psource_frame->nTimeStamp);
+                DEBUG_PRINT_LOW("Next source Buffer flag %d length %d",
+                        psource_frame->nFlags,psource_frame->nFilledLen);
+
+            }
+        }
+
     }
 
-    /*Check if we have a destination buffer*/
-    if (psource_frame == NULL)
-    {
-      DEBUG_PRINT_LOW("Get a source buffer from the queue");
-      if (m_input_pending_q.m_size)
-      {
-        m_input_pending_q.pop_entry(&address,&p2,&id);
-        psource_frame = (OMX_BUFFERHEADERTYPE *)address;
-        DEBUG_PRINT_LOW("Next source Buffer %p time stamp %d",psource_frame,
-                psource_frame->nTimeStamp);
-        DEBUG_PRINT_LOW("Next source Buffer flag %d length %d",
-        psource_frame->nFlags,psource_frame->nFilledLen);
+    while ((pdest_frame != NULL) && (psource_frame != NULL)) {
+        switch (codec_type_parse) {
+            case CODEC_TYPE_MPEG4:
+            case CODEC_TYPE_H263:
+            case CODEC_TYPE_MPEG2:
+                ret =  push_input_sc_codec(hComp);
+                break;
+            case CODEC_TYPE_H264:
+                ret = push_input_h264(hComp);
+                break;
+            case CODEC_TYPE_VC1:
+                ret = push_input_vc1(hComp);
+                break;
+        }
 
-      }
+        if (ret != OMX_ErrorNone) {
+            DEBUG_PRINT_ERROR("\n Pushing input Buffer Failed");
+            omx_report_error ();
+            break;
+        }
     }
 
-  }
-
-  while ((pdest_frame != NULL) && (psource_frame != NULL))
-  {
-    switch (codec_type_parse)
-    {
-      case CODEC_TYPE_MPEG4:
-      case CODEC_TYPE_H263:
-      case CODEC_TYPE_MPEG2:
-        ret =  push_input_sc_codec(hComp);
-      break;
-      case CODEC_TYPE_H264:
-        ret = push_input_h264(hComp);
-      break;
-      case CODEC_TYPE_VC1:
-        ret = push_input_vc1(hComp);
-      break;
-    }
-    if (ret != OMX_ErrorNone)
-    {
-      DEBUG_PRINT_ERROR("\n Pushing input Buffer Failed");
-      omx_report_error ();
-      break;
-    }
-  }
-
-  return ret;
+    return ret;
 }
 
 OMX_ERRORTYPE omx_vdec::push_input_sc_codec(OMX_HANDLETYPE hComp)
 {
-  OMX_U32 partial_frame = 1;
-  OMX_BOOL generate_ebd = OMX_TRUE;
-  unsigned address,p2,id;
+    OMX_U32 partial_frame = 1;
+    OMX_BOOL generate_ebd = OMX_TRUE;
+    unsigned address,p2,id;
 
-  DEBUG_PRINT_LOW("Start Parsing the bit stream address %p TimeStamp %d",
-        psource_frame,psource_frame->nTimeStamp);
-  if (m_frame_parser.parse_sc_frame(psource_frame,
-                                       pdest_frame,&partial_frame) == -1)
-  {
-    DEBUG_PRINT_ERROR("\n Error In Parsing Return Error");
-    return OMX_ErrorBadParameter;
-  }
+    DEBUG_PRINT_LOW("Start Parsing the bit stream address %p TimeStamp %d",
+            psource_frame,psource_frame->nTimeStamp);
 
-  if (partial_frame == 0)
-  {
-    DEBUG_PRINT_LOW("Frame size %d source %p frame count %d",
-          pdest_frame->nFilledLen,psource_frame,frame_count);
+    if (m_frame_parser.parse_sc_frame(psource_frame,
+                pdest_frame,&partial_frame) == -1) {
+        DEBUG_PRINT_ERROR("\n Error In Parsing Return Error");
+        return OMX_ErrorBadParameter;
+    }
+
+    if (partial_frame == 0) {
+        DEBUG_PRINT_LOW("Frame size %d source %p frame count %d",
+                pdest_frame->nFilledLen,psource_frame,frame_count);
 
 
-    DEBUG_PRINT_LOW("TimeStamp updated %d",pdest_frame->nTimeStamp);
-    /*First Parsed buffer will have only header Hence skip*/
-    if (frame_count == 0)
-    {
-      DEBUG_PRINT_LOW("H263/MPEG4 Codec First Frame ");
+        DEBUG_PRINT_LOW("TimeStamp updated %d",pdest_frame->nTimeStamp);
+
+        /*First Parsed buffer will have only header Hence skip*/
+        if (frame_count == 0) {
+            DEBUG_PRINT_LOW("H263/MPEG4 Codec First Frame ");
 #ifdef MAX_RES_1080P
-      if(codec_type_parse == CODEC_TYPE_MPEG4 ||
-         codec_type_parse == CODEC_TYPE_DIVX) {
-        mp4StreamType psBits;
-        psBits.data = pdest_frame->pBuffer + pdest_frame->nOffset;
-        psBits.numBytes = pdest_frame->nFilledLen;
-        mp4_headerparser.parseHeader(&psBits);
-      }
+
+            if (codec_type_parse == CODEC_TYPE_MPEG4 ||
+                    codec_type_parse == CODEC_TYPE_DIVX) {
+                mp4StreamType psBits;
+                psBits.data = pdest_frame->pBuffer + pdest_frame->nOffset;
+                psBits.numBytes = pdest_frame->nFilledLen;
+                mp4_headerparser.parseHeader(&psBits);
+            }
+
 #endif
-      frame_count++;
-    }
-    else
-    {
-      pdest_frame->nFlags &= ~OMX_BUFFERFLAG_EOS;
-      if(pdest_frame->nFilledLen)
-      {
-        /*Push the frame to the Decoder*/
-        if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone)
-        {
-          return OMX_ErrorBadParameter;
-        }
-        frame_count++;
-        pdest_frame = NULL;
+            frame_count++;
+        } else {
+            pdest_frame->nFlags &= ~OMX_BUFFERFLAG_EOS;
 
-        if (m_input_free_q.m_size)
-        {
-          m_input_free_q.pop_entry(&address,&p2,&id);
-          pdest_frame = (OMX_BUFFERHEADERTYPE *) address;
-          pdest_frame->nFilledLen = 0;
-        }
-      }
-      else if(!(psource_frame->nFlags & OMX_BUFFERFLAG_EOS))
-      {
-        DEBUG_PRINT_ERROR("\nZero len buffer return back to POOL");
-        m_input_free_q.insert_entry((unsigned) pdest_frame,NULL,NULL);
-        pdest_frame = NULL;
-      }
-    }
-  }
-  else
-  {
-    DEBUG_PRINT_LOW("Not a Complete Frame %d",pdest_frame->nFilledLen);
-    /*Check if Destination Buffer is full*/
-    if (pdest_frame->nAllocLen ==
-        pdest_frame->nFilledLen + pdest_frame->nOffset)
-    {
-      DEBUG_PRINT_ERROR("\nERROR:Frame Not found though Destination Filled");
-      return OMX_ErrorStreamCorrupt;
-    }
-  }
+            if (pdest_frame->nFilledLen) {
+                /*Push the frame to the Decoder*/
+                if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone) {
+                    return OMX_ErrorBadParameter;
+                }
 
-  if (psource_frame->nFilledLen == 0)
-  {
-    if (psource_frame->nFlags & OMX_BUFFERFLAG_EOS)
-    {
-      if (pdest_frame)
-      {
-        pdest_frame->nFlags |= psource_frame->nFlags;
-        DEBUG_PRINT_LOW("Frame Found start Decoding Size =%d TimeStamp = %x",
-                     pdest_frame->nFilledLen,pdest_frame->nTimeStamp);
-        DEBUG_PRINT_LOW("Found a frame size = %d number = %d",
-                     pdest_frame->nFilledLen,frame_count++);
-        /*Push the frame to the Decoder*/
-        if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone)
-        {
-          return OMX_ErrorBadParameter;
-        }
-        frame_count++;
-        pdest_frame = NULL;
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("Last frame in else dest addr") ;
-        generate_ebd = OMX_FALSE;
-      }
-   }
-    if(generate_ebd)
-    {
-      DEBUG_PRINT_LOW("Buffer Consumed return back to client %p",psource_frame);
-      m_cb.EmptyBufferDone (hComp,m_app_data,psource_frame);
-      psource_frame = NULL;
+                frame_count++;
+                pdest_frame = NULL;
 
-      if (m_input_pending_q.m_size)
-      {
-        DEBUG_PRINT_LOW("Pull Next source Buffer %p",psource_frame);
-        m_input_pending_q.pop_entry(&address,&p2,&id);
-        psource_frame = (OMX_BUFFERHEADERTYPE *) address;
-        DEBUG_PRINT_LOW("Next source Buffer %p time stamp %d",psource_frame,
-                psource_frame->nTimeStamp);
-        DEBUG_PRINT_LOW("Next source Buffer flag %d length %d",
-        psource_frame->nFlags,psource_frame->nFilledLen);
-      }
+                if (m_input_free_q.m_size) {
+                    m_input_free_q.pop_entry(&address,&p2,&id);
+                    pdest_frame = (OMX_BUFFERHEADERTYPE *) address;
+                    pdest_frame->nFilledLen = 0;
+                }
+            } else if (!(psource_frame->nFlags & OMX_BUFFERFLAG_EOS)) {
+                DEBUG_PRINT_ERROR("\nZero len buffer return back to POOL");
+                m_input_free_q.insert_entry((unsigned) pdest_frame,NULL,NULL);
+                pdest_frame = NULL;
+            }
+        }
+    } else {
+        DEBUG_PRINT_LOW("Not a Complete Frame %d",pdest_frame->nFilledLen);
+
+        /*Check if Destination Buffer is full*/
+        if (pdest_frame->nAllocLen ==
+                pdest_frame->nFilledLen + pdest_frame->nOffset) {
+            DEBUG_PRINT_ERROR("\nERROR:Frame Not found though Destination Filled");
+            return OMX_ErrorStreamCorrupt;
+        }
     }
-   }
-  return OMX_ErrorNone;
+
+    if (psource_frame->nFilledLen == 0) {
+        if (psource_frame->nFlags & OMX_BUFFERFLAG_EOS) {
+            if (pdest_frame) {
+                pdest_frame->nFlags |= psource_frame->nFlags;
+                DEBUG_PRINT_LOW("Frame Found start Decoding Size =%d TimeStamp = %x",
+                        pdest_frame->nFilledLen,pdest_frame->nTimeStamp);
+                DEBUG_PRINT_LOW("Found a frame size = %d number = %d",
+                        pdest_frame->nFilledLen,frame_count++);
+
+                /*Push the frame to the Decoder*/
+                if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone) {
+                    return OMX_ErrorBadParameter;
+                }
+
+                frame_count++;
+                pdest_frame = NULL;
+            } else {
+                DEBUG_PRINT_LOW("Last frame in else dest addr") ;
+                generate_ebd = OMX_FALSE;
+            }
+        }
+
+        if (generate_ebd) {
+            DEBUG_PRINT_LOW("Buffer Consumed return back to client %p",psource_frame);
+            m_cb.EmptyBufferDone (hComp,m_app_data,psource_frame);
+            psource_frame = NULL;
+
+            if (m_input_pending_q.m_size) {
+                DEBUG_PRINT_LOW("Pull Next source Buffer %p",psource_frame);
+                m_input_pending_q.pop_entry(&address,&p2,&id);
+                psource_frame = (OMX_BUFFERHEADERTYPE *) address;
+                DEBUG_PRINT_LOW("Next source Buffer %p time stamp %d",psource_frame,
+                        psource_frame->nTimeStamp);
+                DEBUG_PRINT_LOW("Next source Buffer flag %d length %d",
+                        psource_frame->nFlags,psource_frame->nFilledLen);
+            }
+        }
+    }
+
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_vdec::push_input_h264 (OMX_HANDLETYPE hComp)
 {
-  OMX_U32 partial_frame = 1;
-  unsigned address,p2,id;
-  OMX_BOOL isNewFrame = OMX_FALSE;
-  OMX_BOOL generate_ebd = OMX_TRUE;
+    OMX_U32 partial_frame = 1;
+    unsigned address,p2,id;
+    OMX_BOOL isNewFrame = OMX_FALSE;
+    OMX_BOOL generate_ebd = OMX_TRUE;
 
-  if (h264_scratch.pBuffer == NULL)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:H.264 Scratch Buffer not allocated");
-    return OMX_ErrorBadParameter;
-  }
-  DEBUG_PRINT_LOW("Pending h264_scratch.nFilledLen %d "
-      "look_ahead_nal %d", h264_scratch.nFilledLen, look_ahead_nal);
-  DEBUG_PRINT_LOW("Pending pdest_frame->nFilledLen %d",pdest_frame->nFilledLen);
-  if (h264_scratch.nFilledLen && look_ahead_nal)
-  {
-    look_ahead_nal = false;
-    if ((pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
-         h264_scratch.nFilledLen)
-    {
-      memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
-              h264_scratch.pBuffer,h264_scratch.nFilledLen);
-      pdest_frame->nFilledLen += h264_scratch.nFilledLen;
-      DEBUG_PRINT_LOW("Copy the previous NAL (h264 scratch) into Dest frame");
-      h264_scratch.nFilledLen = 0;
+    if (h264_scratch.pBuffer == NULL) {
+        DEBUG_PRINT_ERROR("\nERROR:H.264 Scratch Buffer not allocated");
+        return OMX_ErrorBadParameter;
     }
-    else
-    {
-      DEBUG_PRINT_ERROR("\n Error:1: Destination buffer overflow for H264");
-      return OMX_ErrorBadParameter;
-    }
-  }
-  if (nal_length == 0)
-  {
-    DEBUG_PRINT_LOW("Zero NAL, hence parse using start code");
-    if (m_frame_parser.parse_sc_frame(psource_frame,
-        &h264_scratch,&partial_frame) == -1)
-    {
-      DEBUG_PRINT_ERROR("\n Error In Parsing Return Error");
-      return OMX_ErrorBadParameter;
-    }
-  }
-  else
-  {
-    DEBUG_PRINT_LOW("Non-zero NAL length clip, hence parse with NAL size %d ",nal_length);
-    if (m_frame_parser.parse_h264_nallength(psource_frame,
-        &h264_scratch,&partial_frame) == -1)
-    {
-      DEBUG_PRINT_ERROR("\n Error In Parsing NAL size, Return Error");
-      return OMX_ErrorBadParameter;
-    }
-  }
 
-  if (partial_frame == 0)
-  {
-    if (nal_count == 0 && h264_scratch.nFilledLen == 0)
-    {
-      DEBUG_PRINT_LOW("First NAL with Zero Length, hence Skip");
-      nal_count++;
-      h264_scratch.nTimeStamp = psource_frame->nTimeStamp;
-      h264_scratch.nFlags = psource_frame->nFlags;
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("Parsed New NAL Length = %d",h264_scratch.nFilledLen);
-      if(h264_scratch.nFilledLen)
-      {
-          h264_parser->parse_nal((OMX_U8*)h264_scratch.pBuffer, h264_scratch.nFilledLen,
-                                 NALU_TYPE_SPS);
-#ifndef PROCESS_EXTRADATA_IN_OUTPUT_PORT
-        if (client_extradata & OMX_TIMEINFO_EXTRADATA)
-          h264_parser->parse_nal((OMX_U8*)h264_scratch.pBuffer,
-                                  h264_scratch.nFilledLen, NALU_TYPE_SEI);
-        else if (client_extradata & OMX_FRAMEINFO_EXTRADATA)
-          // If timeinfo is present frame info from SEI is already processed
-          h264_parser->parse_nal((OMX_U8*)h264_scratch.pBuffer,
-                                  h264_scratch.nFilledLen, NALU_TYPE_SEI);
-#endif
-        m_frame_parser.mutils->isNewFrame(&h264_scratch, 0, isNewFrame);
-        nal_count++;
-        if (VALID_TS(h264_last_au_ts) && !VALID_TS(pdest_frame->nTimeStamp)) {
-          pdest_frame->nTimeStamp = h264_last_au_ts;
-          pdest_frame->nFlags = h264_last_au_flags;
-#ifdef PANSCAN_HDLR
-          if (client_extradata & OMX_FRAMEINFO_EXTRADATA)
-            h264_parser->update_panscan_data(h264_last_au_ts);
-#endif
-        }
-        if(m_frame_parser.mutils->nalu_type == NALU_TYPE_NON_IDR ||
-           m_frame_parser.mutils->nalu_type == NALU_TYPE_IDR) {
-          h264_last_au_ts = h264_scratch.nTimeStamp;
-          h264_last_au_flags = h264_scratch.nFlags;
-#ifndef PROCESS_EXTRADATA_IN_OUTPUT_PORT
-          if (client_extradata & OMX_TIMEINFO_EXTRADATA)
-          {
-            OMX_S64 ts_in_sei = h264_parser->process_ts_with_sei_vui(h264_last_au_ts);
-            if (!VALID_TS(h264_last_au_ts))
-              h264_last_au_ts = ts_in_sei;
-          }
-#endif
-        } else
-          h264_last_au_ts = LLONG_MAX;
-      }
+    DEBUG_PRINT_LOW("Pending h264_scratch.nFilledLen %d "
+            "look_ahead_nal %d", h264_scratch.nFilledLen, look_ahead_nal);
+    DEBUG_PRINT_LOW("Pending pdest_frame->nFilledLen %d",pdest_frame->nFilledLen);
 
-      if (!isNewFrame)
-      {
-        if ( (pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
-            h264_scratch.nFilledLen)
-        {
-          DEBUG_PRINT_LOW("Not a NewFrame Copy into Dest len %d",
-              h264_scratch.nFilledLen);
-          memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
-              h264_scratch.pBuffer,h264_scratch.nFilledLen);
-          pdest_frame->nFilledLen += h264_scratch.nFilledLen;
-          if(m_frame_parser.mutils->nalu_type == NALU_TYPE_EOSEQ)
-            pdest_frame->nFlags |= QOMX_VIDEO_BUFFERFLAG_EOSEQ;
-          h264_scratch.nFilledLen = 0;
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("\n Error:2: Destination buffer overflow for H264");
-          return OMX_ErrorBadParameter;
-        }
-      }
-      else
-      {
-        look_ahead_nal = true;
-        DEBUG_PRINT_LOW("Frame Found start Decoding Size =%d TimeStamp = %x",
-                     pdest_frame->nFilledLen,pdest_frame->nTimeStamp);
-        DEBUG_PRINT_LOW("Found a frame size = %d number = %d",
-                     pdest_frame->nFilledLen,frame_count++);
+    if (h264_scratch.nFilledLen && look_ahead_nal) {
+        look_ahead_nal = false;
 
-        if (pdest_frame->nFilledLen == 0)
-        {
-          DEBUG_PRINT_LOW("Copy the Current Frame since and push it");
-          look_ahead_nal = false;
-          if ( (pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
-               h264_scratch.nFilledLen)
-          {
+        if ((pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
+                h264_scratch.nFilledLen) {
             memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
                     h264_scratch.pBuffer,h264_scratch.nFilledLen);
             pdest_frame->nFilledLen += h264_scratch.nFilledLen;
+            DEBUG_PRINT_LOW("Copy the previous NAL (h264 scratch) into Dest frame");
             h264_scratch.nFilledLen = 0;
-          }
-          else
-          {
-            DEBUG_PRINT_ERROR("\n Error:3: Destination buffer overflow for H264");
+        } else {
+            DEBUG_PRINT_ERROR("\n Error:1: Destination buffer overflow for H264");
             return OMX_ErrorBadParameter;
-          }
         }
-        else
-        {
-          if(psource_frame->nFilledLen || h264_scratch.nFilledLen)
-          {
-            DEBUG_PRINT_LOW("Reset the EOS Flag");
-            pdest_frame->nFlags &= ~OMX_BUFFERFLAG_EOS;
-          }
-          /*Push the frame to the Decoder*/
-          if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone)
-          {
+    }
+
+    if (nal_length == 0) {
+        DEBUG_PRINT_LOW("Zero NAL, hence parse using start code");
+
+        if (m_frame_parser.parse_sc_frame(psource_frame,
+                    &h264_scratch,&partial_frame) == -1) {
+            DEBUG_PRINT_ERROR("\n Error In Parsing Return Error");
             return OMX_ErrorBadParameter;
-          }
-          //frame_count++;
-          pdest_frame = NULL;
-          if (m_input_free_q.m_size)
-          {
-            m_input_free_q.pop_entry(&address,&p2,&id);
-            pdest_frame = (OMX_BUFFERHEADERTYPE *) address;
-            DEBUG_PRINT_LOW("Pop the next pdest_buffer %p",pdest_frame);
-            pdest_frame->nFilledLen = 0;
-            pdest_frame->nFlags = 0;
-            pdest_frame->nTimeStamp = LLONG_MAX;
-          }
         }
-      }
-    }
-  }
-  else
-  {
-    DEBUG_PRINT_LOW("Not a Complete Frame, pdest_frame->nFilledLen %d",pdest_frame->nFilledLen);
-    /*Check if Destination Buffer is full*/
-    if (h264_scratch.nAllocLen ==
-        h264_scratch.nFilledLen + h264_scratch.nOffset)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: Frame Not found though Destination Filled");
-      return OMX_ErrorStreamCorrupt;
-    }
-  }
+    } else {
+        DEBUG_PRINT_LOW("Non-zero NAL length clip, hence parse with NAL size %d ",nal_length);
 
-  if (!psource_frame->nFilledLen)
-  {
-    DEBUG_PRINT_LOW("Buffer Consumed return source %p back to client",psource_frame);
+        if (m_frame_parser.parse_h264_nallength(psource_frame,
+                    &h264_scratch,&partial_frame) == -1) {
+            DEBUG_PRINT_ERROR("\n Error In Parsing NAL size, Return Error");
+            return OMX_ErrorBadParameter;
+        }
+    }
 
-    if (psource_frame->nFlags & OMX_BUFFERFLAG_EOS)
-    {
-      if (pdest_frame)
-      {
-        DEBUG_PRINT_LOW("EOS Reached Pass Last Buffer");
-        if ( (pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
-             h264_scratch.nFilledLen)
-        {
-          memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
-                  h264_scratch.pBuffer,h264_scratch.nFilledLen);
-          pdest_frame->nFilledLen += h264_scratch.nFilledLen;
-          h264_scratch.nFilledLen = 0;
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("\nERROR:4: Destination buffer overflow for H264");
-          return OMX_ErrorBadParameter;
-        }
-        pdest_frame->nTimeStamp = h264_scratch.nTimeStamp;
-        pdest_frame->nFlags = h264_scratch.nFlags | psource_frame->nFlags;
-#ifdef MAX_RES_720P
-        if (frame_count == 0)
-        {
-           DEBUG_PRINT_HIGH("No frames sent to driver yet, "
-              "So send zero length EOS buffer");
-           pdest_frame->nFilledLen = 0;
-        }
-#endif
-        DEBUG_PRINT_LOW("pdest_frame->nFilledLen = %d, nFlags = 0x%x, TimeStamp = %x",
-                     pdest_frame->nFilledLen, pdest_frame->nFlags, pdest_frame->nTimeStamp);
-        DEBUG_PRINT_LOW("Push AU frame number %d to driver", frame_count++);
+    if (partial_frame == 0) {
+        if (nal_count == 0 && h264_scratch.nFilledLen == 0) {
+            DEBUG_PRINT_LOW("First NAL with Zero Length, hence Skip");
+            nal_count++;
+            h264_scratch.nTimeStamp = psource_frame->nTimeStamp;
+            h264_scratch.nFlags = psource_frame->nFlags;
+        } else {
+            DEBUG_PRINT_LOW("Parsed New NAL Length = %d",h264_scratch.nFilledLen);
+
+            if (h264_scratch.nFilledLen) {
+                h264_parser->parse_nal((OMX_U8*)h264_scratch.pBuffer, h264_scratch.nFilledLen,
+                        NALU_TYPE_SPS);
 #ifndef PROCESS_EXTRADATA_IN_OUTPUT_PORT
-        if (client_extradata & OMX_TIMEINFO_EXTRADATA)
-        {
-          OMX_S64 ts_in_sei = h264_parser->process_ts_with_sei_vui(pdest_frame->nTimeStamp);
-          if (!VALID_TS(pdest_frame->nTimeStamp))
-            pdest_frame->nTimeStamp = ts_in_sei;
-        }
+
+                if (client_extradata & OMX_TIMEINFO_EXTRADATA)
+                    h264_parser->parse_nal((OMX_U8*)h264_scratch.pBuffer,
+                            h264_scratch.nFilledLen, NALU_TYPE_SEI);
+                else if (client_extradata & OMX_FRAMEINFO_EXTRADATA)
+                    // If timeinfo is present frame info from SEI is already processed
+                    h264_parser->parse_nal((OMX_U8*)h264_scratch.pBuffer,
+                            h264_scratch.nFilledLen, NALU_TYPE_SEI);
+
 #endif
-        /*Push the frame to the Decoder*/
-        if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone)
-        {
-          return OMX_ErrorBadParameter;
+                m_frame_parser.mutils->isNewFrame(&h264_scratch, 0, isNewFrame);
+                nal_count++;
+
+                if (VALID_TS(h264_last_au_ts) && !VALID_TS(pdest_frame->nTimeStamp)) {
+                    pdest_frame->nTimeStamp = h264_last_au_ts;
+                    pdest_frame->nFlags = h264_last_au_flags;
+#ifdef PANSCAN_HDLR
+
+                    if (client_extradata & OMX_FRAMEINFO_EXTRADATA)
+                        h264_parser->update_panscan_data(h264_last_au_ts);
+
+#endif
+                }
+
+                if (m_frame_parser.mutils->nalu_type == NALU_TYPE_NON_IDR ||
+                        m_frame_parser.mutils->nalu_type == NALU_TYPE_IDR) {
+                    h264_last_au_ts = h264_scratch.nTimeStamp;
+                    h264_last_au_flags = h264_scratch.nFlags;
+#ifndef PROCESS_EXTRADATA_IN_OUTPUT_PORT
+
+                    if (client_extradata & OMX_TIMEINFO_EXTRADATA) {
+                        OMX_S64 ts_in_sei = h264_parser->process_ts_with_sei_vui(h264_last_au_ts);
+
+                        if (!VALID_TS(h264_last_au_ts))
+                            h264_last_au_ts = ts_in_sei;
+                    }
+
+#endif
+                } else
+                    h264_last_au_ts = LLONG_MAX;
+            }
+
+            if (!isNewFrame) {
+                if ( (pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
+                        h264_scratch.nFilledLen) {
+                    DEBUG_PRINT_LOW("Not a NewFrame Copy into Dest len %d",
+                            h264_scratch.nFilledLen);
+                    memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
+                            h264_scratch.pBuffer,h264_scratch.nFilledLen);
+                    pdest_frame->nFilledLen += h264_scratch.nFilledLen;
+
+                    if (m_frame_parser.mutils->nalu_type == NALU_TYPE_EOSEQ)
+                        pdest_frame->nFlags |= QOMX_VIDEO_BUFFERFLAG_EOSEQ;
+
+                    h264_scratch.nFilledLen = 0;
+                } else {
+                    DEBUG_PRINT_ERROR("\n Error:2: Destination buffer overflow for H264");
+                    return OMX_ErrorBadParameter;
+                }
+            } else {
+                look_ahead_nal = true;
+                DEBUG_PRINT_LOW("Frame Found start Decoding Size =%d TimeStamp = %x",
+                        pdest_frame->nFilledLen,pdest_frame->nTimeStamp);
+                DEBUG_PRINT_LOW("Found a frame size = %d number = %d",
+                        pdest_frame->nFilledLen,frame_count++);
+
+                if (pdest_frame->nFilledLen == 0) {
+                    DEBUG_PRINT_LOW("Copy the Current Frame since and push it");
+                    look_ahead_nal = false;
+
+                    if ( (pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
+                            h264_scratch.nFilledLen) {
+                        memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
+                                h264_scratch.pBuffer,h264_scratch.nFilledLen);
+                        pdest_frame->nFilledLen += h264_scratch.nFilledLen;
+                        h264_scratch.nFilledLen = 0;
+                    } else {
+                        DEBUG_PRINT_ERROR("\n Error:3: Destination buffer overflow for H264");
+                        return OMX_ErrorBadParameter;
+                    }
+                } else {
+                    if (psource_frame->nFilledLen || h264_scratch.nFilledLen) {
+                        DEBUG_PRINT_LOW("Reset the EOS Flag");
+                        pdest_frame->nFlags &= ~OMX_BUFFERFLAG_EOS;
+                    }
+
+                    /*Push the frame to the Decoder*/
+                    if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone) {
+                        return OMX_ErrorBadParameter;
+                    }
+
+                    //frame_count++;
+                    pdest_frame = NULL;
+
+                    if (m_input_free_q.m_size) {
+                        m_input_free_q.pop_entry(&address,&p2,&id);
+                        pdest_frame = (OMX_BUFFERHEADERTYPE *) address;
+                        DEBUG_PRINT_LOW("Pop the next pdest_buffer %p",pdest_frame);
+                        pdest_frame->nFilledLen = 0;
+                        pdest_frame->nFlags = 0;
+                        pdest_frame->nTimeStamp = LLONG_MAX;
+                    }
+                }
+            }
         }
-        frame_count++;
-        pdest_frame = NULL;
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("Last frame in else dest addr %p size %d",
-                     pdest_frame,h264_scratch.nFilledLen);
-        generate_ebd = OMX_FALSE;
-      }
+    } else {
+        DEBUG_PRINT_LOW("Not a Complete Frame, pdest_frame->nFilledLen %d",pdest_frame->nFilledLen);
+
+        /*Check if Destination Buffer is full*/
+        if (h264_scratch.nAllocLen ==
+                h264_scratch.nFilledLen + h264_scratch.nOffset) {
+            DEBUG_PRINT_ERROR("\nERROR: Frame Not found though Destination Filled");
+            return OMX_ErrorStreamCorrupt;
+        }
     }
-  }
-  if(generate_ebd && !psource_frame->nFilledLen)
-  {
-    m_cb.EmptyBufferDone (hComp,m_app_data,psource_frame);
-    psource_frame = NULL;
-    if (m_input_pending_q.m_size)
-    {
-      DEBUG_PRINT_LOW("Pull Next source Buffer %p",psource_frame);
-      m_input_pending_q.pop_entry(&address,&p2,&id);
-      psource_frame = (OMX_BUFFERHEADERTYPE *) address;
-      DEBUG_PRINT_LOW("Next source Buffer flag %d src length %d",
-      psource_frame->nFlags,psource_frame->nFilledLen);
+
+    if (!psource_frame->nFilledLen) {
+        DEBUG_PRINT_LOW("Buffer Consumed return source %p back to client",psource_frame);
+
+        if (psource_frame->nFlags & OMX_BUFFERFLAG_EOS) {
+            if (pdest_frame) {
+                DEBUG_PRINT_LOW("EOS Reached Pass Last Buffer");
+
+                if ( (pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
+                        h264_scratch.nFilledLen) {
+                    memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
+                            h264_scratch.pBuffer,h264_scratch.nFilledLen);
+                    pdest_frame->nFilledLen += h264_scratch.nFilledLen;
+                    h264_scratch.nFilledLen = 0;
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR:4: Destination buffer overflow for H264");
+                    return OMX_ErrorBadParameter;
+                }
+
+                pdest_frame->nTimeStamp = h264_scratch.nTimeStamp;
+                pdest_frame->nFlags = h264_scratch.nFlags | psource_frame->nFlags;
+#ifdef MAX_RES_720P
+
+                if (frame_count == 0) {
+                    DEBUG_PRINT_HIGH("No frames sent to driver yet, "
+                            "So send zero length EOS buffer");
+                    pdest_frame->nFilledLen = 0;
+                }
+
+#endif
+                DEBUG_PRINT_LOW("pdest_frame->nFilledLen = %d, nFlags = 0x%x, TimeStamp = %x",
+                        pdest_frame->nFilledLen, pdest_frame->nFlags, pdest_frame->nTimeStamp);
+                DEBUG_PRINT_LOW("Push AU frame number %d to driver", frame_count++);
+#ifndef PROCESS_EXTRADATA_IN_OUTPUT_PORT
+
+                if (client_extradata & OMX_TIMEINFO_EXTRADATA) {
+                    OMX_S64 ts_in_sei = h264_parser->process_ts_with_sei_vui(pdest_frame->nTimeStamp);
+
+                    if (!VALID_TS(pdest_frame->nTimeStamp))
+                        pdest_frame->nTimeStamp = ts_in_sei;
+                }
+
+#endif
+
+                /*Push the frame to the Decoder*/
+                if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone) {
+                    return OMX_ErrorBadParameter;
+                }
+
+                frame_count++;
+                pdest_frame = NULL;
+            } else {
+                DEBUG_PRINT_LOW("Last frame in else dest addr %p size %d",
+                        pdest_frame,h264_scratch.nFilledLen);
+                generate_ebd = OMX_FALSE;
+            }
+        }
     }
-  }
-  return OMX_ErrorNone;
+
+    if (generate_ebd && !psource_frame->nFilledLen) {
+        m_cb.EmptyBufferDone (hComp,m_app_data,psource_frame);
+        psource_frame = NULL;
+
+        if (m_input_pending_q.m_size) {
+            DEBUG_PRINT_LOW("Pull Next source Buffer %p",psource_frame);
+            m_input_pending_q.pop_entry(&address,&p2,&id);
+            psource_frame = (OMX_BUFFERHEADERTYPE *) address;
+            DEBUG_PRINT_LOW("Next source Buffer flag %d src length %d",
+                    psource_frame->nFlags,psource_frame->nFilledLen);
+        }
+    }
+
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_vdec::push_input_vc1 (OMX_HANDLETYPE hComp)
@@ -7556,2003 +7209,2001 @@
     OMX_U32 partial_frame = 1;
     OMX_U32 buf_len, dest_len;
 
-    if(first_frame == 0)
-    {
+    if (first_frame == 0) {
         first_frame = 1;
         DEBUG_PRINT_LOW("First i/p buffer for VC1 arbitrary bytes");
-        if(!m_vendor_config.pData)
-        {
+
+        if (!m_vendor_config.pData) {
             DEBUG_PRINT_LOW("Check profile type in 1st source buffer");
             buf = psource_frame->pBuffer;
             buf_len = psource_frame->nFilledLen;
 
             if ((*((OMX_U32 *) buf) & VC1_SP_MP_START_CODE_MASK) ==
-                VC1_SP_MP_START_CODE)
-            {
+                    VC1_SP_MP_START_CODE) {
                 m_vc1_profile = VC1_SP_MP_RCV;
-            }
-            else if(*((OMX_U32 *) buf) & VC1_AP_SEQ_START_CODE)
-            {
+            } else if (*((OMX_U32 *) buf) & VC1_AP_SEQ_START_CODE) {
                 m_vc1_profile = VC1_AP;
-            }
-            else
-            {
+            } else {
                 DEBUG_PRINT_ERROR("\nInvalid sequence layer in first buffer");
                 return OMX_ErrorStreamCorrupt;
             }
-        }
-        else
-        {
+        } else {
             pdest = pdest_frame->pBuffer + pdest_frame->nFilledLen +
                 pdest_frame->nOffset;
             dest_len = pdest_frame->nAllocLen - (pdest_frame->nFilledLen +
-                pdest_frame->nOffset);
+                    pdest_frame->nOffset);
 
-            if(dest_len < m_vendor_config.nDataSize)
-            {
+            if (dest_len < m_vendor_config.nDataSize) {
                 DEBUG_PRINT_ERROR("\nDestination buffer full");
                 return OMX_ErrorBadParameter;
-            }
-            else
-            {
+            } else {
                 memcpy(pdest, m_vendor_config.pData, m_vendor_config.nDataSize);
                 pdest_frame->nFilledLen += m_vendor_config.nDataSize;
             }
         }
     }
 
-    switch(m_vc1_profile)
-    {
+    switch (m_vc1_profile) {
         case VC1_AP:
             DEBUG_PRINT_LOW("VC1 AP, hence parse using frame start code");
-            if (push_input_sc_codec(hComp) != OMX_ErrorNone)
-            {
+
+            if (push_input_sc_codec(hComp) != OMX_ErrorNone) {
                 DEBUG_PRINT_ERROR("\n Error In Parsing VC1 AP start code");
                 return OMX_ErrorBadParameter;
             }
-        break;
+
+            break;
 
         case VC1_SP_MP_RCV:
         default:
             DEBUG_PRINT_ERROR("\n Unsupported VC1 profile in ArbitraryBytes Mode");
             return OMX_ErrorBadParameter;
     }
+
     return OMX_ErrorNone;
 }
 
 #ifndef USE_ION
 bool omx_vdec::align_pmem_buffers(int pmem_fd, OMX_U32 buffer_size,
-                                  OMX_U32 alignment)
+        OMX_U32 alignment)
 {
-  struct pmem_allocation allocation;
-  allocation.size = buffer_size;
-  allocation.align = clip2(alignment);
-  if (allocation.align < 4096)
-  {
-    allocation.align = 4096;
-  }
-  if (ioctl(pmem_fd, PMEM_ALLOCATE_ALIGNED, &allocation) < 0)
-  {
-    DEBUG_PRINT_ERROR("\n Aligment(%u) failed with pmem driver Sz(%lu)",
-      allocation.align, allocation.size);
-    return false;
-  }
-  return true;
+    struct pmem_allocation allocation;
+    allocation.size = buffer_size;
+    allocation.align = clip2(alignment);
+
+    if (allocation.align < 4096) {
+        allocation.align = 4096;
+    }
+
+    if (ioctl(pmem_fd, PMEM_ALLOCATE_ALIGNED, &allocation) < 0) {
+        DEBUG_PRINT_ERROR("\n Aligment(%u) failed with pmem driver Sz(%lu)",
+                allocation.align, allocation.size);
+        return false;
+    }
+
+    return true;
 }
 #endif
 
 #ifdef USE_ION
 int omx_vdec::alloc_map_ion_memory(OMX_U32 buffer_size,
-              OMX_U32 alignment, struct ion_allocation_data *alloc_data,
-              struct ion_fd_data *fd_data,int flag)
+        OMX_U32 alignment, struct ion_allocation_data *alloc_data,
+        struct ion_fd_data *fd_data,int flag)
 {
-  int fd = -EINVAL;
-  int rc = -EINVAL;
-  int ion_dev_flag;
-  struct vdec_ion ion_buf_info;
-  if (!alloc_data || buffer_size <= 0 || !fd_data) {
-     DEBUG_PRINT_ERROR("Invalid arguments to alloc_map_ion_memory\n");
-     return -EINVAL;
-  }
+    int fd = -EINVAL;
+    int rc = -EINVAL;
+    int ion_dev_flag;
+    struct vdec_ion ion_buf_info;
 
-  ion_dev_flag = O_RDONLY;
-  fd = open (MEM_DEVICE, ion_dev_flag);
-  if (fd < 0) {
-     DEBUG_PRINT_ERROR("opening ion device failed with fd = %d\n", fd);
-     return fd;
-  }
-  alloc_data->flags = 0;
-  if(!secure_mode && (flag & ION_FLAG_CACHED))
-  {
-     alloc_data->flags |= ION_FLAG_CACHED;
-  }
-
-  alloc_data->len = buffer_size;
-  alloc_data->align = clip2(alignment);
-  if (alloc_data->align < 4096)
-  {
-    alloc_data->align = 4096;
-  }
-  if(secure_mode) {
-    if(external_meta_buffer) {
-      alloc_data->heap_mask = ION_HEAP(ION_CP_MFC_HEAP_ID);
-      alloc_data->flags |= ION_SECURE;
-    } else if (external_meta_buffer_iommu) {
-      alloc_data->heap_mask = ION_HEAP(ION_IOMMU_HEAP_ID);
-    } else {
-      alloc_data->heap_mask = ION_HEAP(MEM_HEAP_ID);
-      alloc_data->flags |= ION_SECURE;
+    if (!alloc_data || buffer_size <= 0 || !fd_data) {
+        DEBUG_PRINT_ERROR("Invalid arguments to alloc_map_ion_memory\n");
+        return -EINVAL;
     }
-  } else {
-#ifdef MAX_RES_720P
-    alloc_data->len = (buffer_size + (alloc_data->align - 1)) & ~(alloc_data->align - 1);
-    alloc_data->heap_mask = ION_HEAP(MEM_HEAP_ID);
-#else
-    alloc_data->heap_mask = (ION_HEAP(MEM_HEAP_ID) | ION_HEAP(ION_IOMMU_HEAP_ID));
-#endif
-  }
 
-  rc = ioctl(fd,ION_IOC_ALLOC,alloc_data);
-  if (rc || !alloc_data->handle) {
-    DEBUG_PRINT_ERROR("\n ION ALLOC memory failed ");
-    alloc_data->handle = NULL;
-    close(fd);
-    fd = -ENOMEM;
+    ion_dev_flag = O_RDONLY;
+    fd = open (MEM_DEVICE, ion_dev_flag);
+
+    if (fd < 0) {
+        DEBUG_PRINT_ERROR("opening ion device failed with fd = %d\n", fd);
+        return fd;
+    }
+
+    alloc_data->flags = 0;
+
+    if (!secure_mode && (flag & ION_FLAG_CACHED)) {
+        alloc_data->flags |= ION_FLAG_CACHED;
+    }
+
+    alloc_data->len = buffer_size;
+    alloc_data->align = clip2(alignment);
+
+    if (alloc_data->align < 4096) {
+        alloc_data->align = 4096;
+    }
+
+    if (secure_mode) {
+        if (external_meta_buffer) {
+            alloc_data->heap_mask = ION_HEAP(ION_CP_MFC_HEAP_ID);
+            alloc_data->flags |= ION_SECURE;
+        } else if (external_meta_buffer_iommu) {
+            alloc_data->heap_mask = ION_HEAP(ION_IOMMU_HEAP_ID);
+        } else {
+            alloc_data->heap_mask = ION_HEAP(MEM_HEAP_ID);
+            alloc_data->flags |= ION_SECURE;
+        }
+    } else {
+#ifdef MAX_RES_720P
+        alloc_data->len = (buffer_size + (alloc_data->align - 1)) & ~(alloc_data->align - 1);
+        alloc_data->heap_mask = ION_HEAP(MEM_HEAP_ID);
+#else
+        alloc_data->heap_mask = (ION_HEAP(MEM_HEAP_ID) | ION_HEAP(ION_IOMMU_HEAP_ID));
+#endif
+    }
+
+    rc = ioctl(fd,ION_IOC_ALLOC,alloc_data);
+
+    if (rc || !alloc_data->handle) {
+        DEBUG_PRINT_ERROR("\n ION ALLOC memory failed ");
+        alloc_data->handle = NULL;
+        close(fd);
+        fd = -ENOMEM;
+        return fd;
+    }
+
+    fd_data->handle = alloc_data->handle;
+    rc = ioctl(fd,ION_IOC_MAP,fd_data);
+
+    if (rc) {
+        DEBUG_PRINT_ERROR("\n ION MAP failed ");
+        ion_buf_info.ion_alloc_data = *alloc_data;
+        ion_buf_info.ion_device_fd = fd;
+        ion_buf_info.fd_ion_data = *fd_data;
+        free_ion_memory(&ion_buf_info);
+        fd_data->fd =-1;
+        close(fd);
+        fd = -ENOMEM;
+    }
+
+    DEBUG_PRINT_HIGH("ION: alloc_data: handle(0x%X), len(%u), align(%u), "
+            "flags(0x%x), fd_data: handle(0x%x), fd(0x%x)",
+            alloc_data->handle, alloc_data->len, alloc_data->align,
+            alloc_data->flags, fd_data->handle, fd_data->fd);
     return fd;
-  }
-  fd_data->handle = alloc_data->handle;
-  rc = ioctl(fd,ION_IOC_MAP,fd_data);
-  if (rc) {
-    DEBUG_PRINT_ERROR("\n ION MAP failed ");
-    ion_buf_info.ion_alloc_data = *alloc_data;
-    ion_buf_info.ion_device_fd = fd;
-    ion_buf_info.fd_ion_data = *fd_data;
-    free_ion_memory(&ion_buf_info);
-    fd_data->fd =-1;
-    close(fd);
-    fd = -ENOMEM;
-  }
-  DEBUG_PRINT_HIGH("ION: alloc_data: handle(0x%X), len(%u), align(%u), "
-     "flags(0x%x), fd_data: handle(0x%x), fd(0x%x)",
-     alloc_data->handle, alloc_data->len, alloc_data->align,
-     alloc_data->flags, fd_data->handle, fd_data->fd);
-  return fd;
 }
 
-void omx_vdec::free_ion_memory(struct vdec_ion *buf_ion_info) {
+void omx_vdec::free_ion_memory(struct vdec_ion *buf_ion_info)
+{
 
-     if(!buf_ion_info) {
-       DEBUG_PRINT_ERROR("\n ION: free called with invalid fd/allocdata");
-       return;
-     }
-     DEBUG_PRINT_HIGH("ION: free: handle(0x%X), len(%u), fd(0x%x)",
-       buf_ion_info->ion_alloc_data.handle,
-       buf_ion_info->ion_alloc_data.len,
-       buf_ion_info->fd_ion_data.fd);
-     if(ioctl(buf_ion_info->ion_device_fd,ION_IOC_FREE,
-             &buf_ion_info->ion_alloc_data.handle)) {
-       DEBUG_PRINT_ERROR("\n ION: free failed" );
-     }
-     close(buf_ion_info->ion_device_fd);
-     buf_ion_info->ion_device_fd = -1;
-     buf_ion_info->ion_alloc_data.handle = NULL;
-     buf_ion_info->fd_ion_data.fd = -1;
+    if (!buf_ion_info) {
+        DEBUG_PRINT_ERROR("\n ION: free called with invalid fd/allocdata");
+        return;
+    }
+
+    DEBUG_PRINT_HIGH("ION: free: handle(0x%X), len(%u), fd(0x%x)",
+            buf_ion_info->ion_alloc_data.handle,
+            buf_ion_info->ion_alloc_data.len,
+            buf_ion_info->fd_ion_data.fd);
+
+    if (ioctl(buf_ion_info->ion_device_fd,ION_IOC_FREE,
+                &buf_ion_info->ion_alloc_data.handle)) {
+        DEBUG_PRINT_ERROR("\n ION: free failed" );
+    }
+
+    close(buf_ion_info->ion_device_fd);
+    buf_ion_info->ion_device_fd = -1;
+    buf_ion_info->ion_alloc_data.handle = NULL;
+    buf_ion_info->fd_ion_data.fd = -1;
 }
 #endif
 void omx_vdec::free_output_buffer_header()
 {
-  DEBUG_PRINT_HIGH("ALL output buffers are freed/released");
-  output_use_buffer = false;
-  ouput_egl_buffers = false;
+    DEBUG_PRINT_HIGH("ALL output buffers are freed/released");
+    output_use_buffer = false;
+    ouput_egl_buffers = false;
 
-  if (m_out_mem_ptr)
-  {
-    free (m_out_mem_ptr);
-    m_out_mem_ptr = NULL;
-  }
+    if (m_out_mem_ptr) {
+        free (m_out_mem_ptr);
+        m_out_mem_ptr = NULL;
+    }
 
-  if(m_platform_list)
-  {
-    free(m_platform_list);
-    m_platform_list = NULL;
-  }
+    if (m_platform_list) {
+        free(m_platform_list);
+        m_platform_list = NULL;
+    }
 
-  if (drv_ctx.ptr_respbuffer)
-  {
-    free (drv_ctx.ptr_respbuffer);
-    drv_ctx.ptr_respbuffer = NULL;
-  }
-  if (drv_ctx.ptr_outputbuffer)
-  {
-    free (drv_ctx.ptr_outputbuffer);
-    drv_ctx.ptr_outputbuffer = NULL;
-  }
+    if (drv_ctx.ptr_respbuffer) {
+        free (drv_ctx.ptr_respbuffer);
+        drv_ctx.ptr_respbuffer = NULL;
+    }
+
+    if (drv_ctx.ptr_outputbuffer) {
+        free (drv_ctx.ptr_outputbuffer);
+        drv_ctx.ptr_outputbuffer = NULL;
+    }
+
 #ifdef USE_ION
+
     if (drv_ctx.op_buf_ion_info) {
         DEBUG_PRINT_LOW("Free o/p ion context");
         free(drv_ctx.op_buf_ion_info);
         drv_ctx.op_buf_ion_info = NULL;
     }
+
 #endif
 }
 
 void omx_vdec::free_input_buffer_header()
 {
     input_use_buffer = false;
-    if (arbitrary_bytes)
-    {
-      if (m_frame_parser.mutils)
-      {
-        DEBUG_PRINT_LOW("Free utils parser");
-        delete (m_frame_parser.mutils);
-        m_frame_parser.mutils = NULL;
-      }
 
-      if (m_inp_heap_ptr)
-      {
-        DEBUG_PRINT_LOW("Free input Heap Pointer");
-        free (m_inp_heap_ptr);
-        m_inp_heap_ptr = NULL;
-      }
+    if (arbitrary_bytes) {
+        if (m_frame_parser.mutils) {
+            DEBUG_PRINT_LOW("Free utils parser");
+            delete (m_frame_parser.mutils);
+            m_frame_parser.mutils = NULL;
+        }
 
-      if (m_phdr_pmem_ptr)
-      {
-        DEBUG_PRINT_LOW("Free input pmem header Pointer");
-        free (m_phdr_pmem_ptr);
-        m_phdr_pmem_ptr = NULL;
-      }
+        if (m_inp_heap_ptr) {
+            DEBUG_PRINT_LOW("Free input Heap Pointer");
+            free (m_inp_heap_ptr);
+            m_inp_heap_ptr = NULL;
+        }
+
+        if (m_phdr_pmem_ptr) {
+            DEBUG_PRINT_LOW("Free input pmem header Pointer");
+            free (m_phdr_pmem_ptr);
+            m_phdr_pmem_ptr = NULL;
+        }
     }
-    if (m_inp_mem_ptr)
-    {
-      DEBUG_PRINT_LOW("Free input pmem Pointer area");
-      free (m_inp_mem_ptr);
-      m_inp_mem_ptr = NULL;
+
+    if (m_inp_mem_ptr) {
+        DEBUG_PRINT_LOW("Free input pmem Pointer area");
+        free (m_inp_mem_ptr);
+        m_inp_mem_ptr = NULL;
     }
-    if (drv_ctx.ptr_inputbuffer)
-    {
-      DEBUG_PRINT_LOW("Free Driver Context pointer");
-      free (drv_ctx.ptr_inputbuffer);
-      drv_ctx.ptr_inputbuffer = NULL;
+
+    if (drv_ctx.ptr_inputbuffer) {
+        DEBUG_PRINT_LOW("Free Driver Context pointer");
+        free (drv_ctx.ptr_inputbuffer);
+        drv_ctx.ptr_inputbuffer = NULL;
     }
+
 #ifdef USE_ION
+
     if (drv_ctx.ip_buf_ion_info) {
         DEBUG_PRINT_LOW("Free ion context");
         free(drv_ctx.ip_buf_ion_info);
         drv_ctx.ip_buf_ion_info = NULL;
     }
+
 #endif
 }
 
 OMX_ERRORTYPE omx_vdec::get_buffer_req(vdec_allocatorproperty *buffer_prop)
 {
-  struct vdec_ioctl_msg ioctl_msg = {NULL, NULL};
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  unsigned int buf_size = 0, extra_data_size = 0;
-  DEBUG_PRINT_LOW("GetBufReq IN: ActCnt(%d) Size(%d)",
-    buffer_prop->actualcount, buffer_prop->buffer_size);
-  ioctl_msg.in = NULL;
-  ioctl_msg.out = buffer_prop;
-  if (ioctl (drv_ctx.video_driver_fd, VDEC_IOCTL_GET_BUFFER_REQ,
-      (void*)&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("Requesting buffer requirements failed");
-    eRet = OMX_ErrorInsufficientResources;
-  }
-  else
-  {
-    buf_size = buffer_prop->buffer_size;
-    if (client_extradata & OMX_FRAMEINFO_EXTRADATA)
-    {
-      DEBUG_PRINT_HIGH("Frame info extra data enabled!");
-      extra_data_size += OMX_FRAMEINFO_EXTRADATA_SIZE;
+    struct vdec_ioctl_msg ioctl_msg = {NULL, NULL};
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    unsigned int buf_size = 0, extra_data_size = 0;
+    DEBUG_PRINT_LOW("GetBufReq IN: ActCnt(%d) Size(%d)",
+            buffer_prop->actualcount, buffer_prop->buffer_size);
+    ioctl_msg.in = NULL;
+    ioctl_msg.out = buffer_prop;
+
+    if (ioctl (drv_ctx.video_driver_fd, VDEC_IOCTL_GET_BUFFER_REQ,
+                (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("Requesting buffer requirements failed");
+        eRet = OMX_ErrorInsufficientResources;
+    } else {
+        buf_size = buffer_prop->buffer_size;
+
+        if (client_extradata & OMX_FRAMEINFO_EXTRADATA) {
+            DEBUG_PRINT_HIGH("Frame info extra data enabled!");
+            extra_data_size += OMX_FRAMEINFO_EXTRADATA_SIZE;
+        }
+
+        if (client_extradata & OMX_INTERLACE_EXTRADATA) {
+            DEBUG_PRINT_HIGH("Interlace extra data enabled!");
+            extra_data_size += OMX_INTERLACE_EXTRADATA_SIZE;
+        }
+
+        if (client_extradata & OMX_PORTDEF_EXTRADATA) {
+            extra_data_size += OMX_PORTDEF_EXTRADATA_SIZE;
+            DEBUG_PRINT_HIGH("Smooth streaming enabled extra_data_size=%d",
+                    extra_data_size);
+        }
+
+        if (extra_data_size) {
+            extra_data_size += sizeof(OMX_OTHER_EXTRADATATYPE); //Space for terminator
+            buf_size = ((buf_size + 3)&(~3)); //Align extradata start address to 64Bit
+        }
+
+        buf_size += extra_data_size;
+        buf_size = (buf_size + buffer_prop->alignment - 1)&(~(buffer_prop->alignment - 1));
+        DEBUG_PRINT_LOW("GetBufReq UPDATE: ActCnt(%d) Size(%d) BufSize(%d)",
+                buffer_prop->actualcount, buffer_prop->buffer_size, buf_size);
+
+        if (in_reconfig) // BufReq will be set to driver when port is disabled
+            buffer_prop->buffer_size = buf_size;
+        else if (buf_size != buffer_prop->buffer_size) {
+            buffer_prop->buffer_size = buf_size;
+            eRet = set_buffer_req(buffer_prop);
+        }
     }
-    if (client_extradata & OMX_INTERLACE_EXTRADATA)
-    {
-      DEBUG_PRINT_HIGH("Interlace extra data enabled!");
-      extra_data_size += OMX_INTERLACE_EXTRADATA_SIZE;
-    }
-    if (client_extradata & OMX_PORTDEF_EXTRADATA)
-    {
-       extra_data_size += OMX_PORTDEF_EXTRADATA_SIZE;
-       DEBUG_PRINT_HIGH("Smooth streaming enabled extra_data_size=%d",
-         extra_data_size);
-    }
-    if (extra_data_size)
-    {
-      extra_data_size += sizeof(OMX_OTHER_EXTRADATATYPE); //Space for terminator
-      buf_size = ((buf_size + 3)&(~3)); //Align extradata start address to 64Bit
-    }
-    buf_size += extra_data_size;
-    buf_size = (buf_size + buffer_prop->alignment - 1)&(~(buffer_prop->alignment - 1));
-    DEBUG_PRINT_LOW("GetBufReq UPDATE: ActCnt(%d) Size(%d) BufSize(%d)",
-      buffer_prop->actualcount, buffer_prop->buffer_size, buf_size);
-    if (in_reconfig) // BufReq will be set to driver when port is disabled
-      buffer_prop->buffer_size = buf_size;
-    else if (buf_size != buffer_prop->buffer_size)
-    {
-      buffer_prop->buffer_size = buf_size;
-      eRet = set_buffer_req(buffer_prop);
-    }
-  }
-  DEBUG_PRINT_LOW("GetBufReq OUT: ActCnt(%d) Size(%d)",
-    buffer_prop->actualcount, buffer_prop->buffer_size);
-  return eRet;
+
+    DEBUG_PRINT_LOW("GetBufReq OUT: ActCnt(%d) Size(%d)",
+            buffer_prop->actualcount, buffer_prop->buffer_size);
+    return eRet;
 }
 
 OMX_ERRORTYPE omx_vdec::set_buffer_req(vdec_allocatorproperty *buffer_prop)
 {
-  struct vdec_ioctl_msg ioctl_msg = {NULL, NULL};
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  unsigned buf_size = 0;
-  DEBUG_PRINT_LOW("SetBufReq IN: ActCnt(%d) Size(%d)",
-    buffer_prop->actualcount, buffer_prop->buffer_size);
-  buf_size = (buffer_prop->buffer_size + buffer_prop->alignment - 1)&(~(buffer_prop->alignment - 1));
-  if (buf_size != buffer_prop->buffer_size)
-  {
-    DEBUG_PRINT_ERROR("Buffer size alignment error: Requested(%d) Required(%d)",
-      buffer_prop->buffer_size, buf_size);
-    eRet = OMX_ErrorBadParameter;
-  }
-  else
-  {
-    ioctl_msg.in = buffer_prop;
-    ioctl_msg.out = NULL;
-    if (ioctl (drv_ctx.video_driver_fd, VDEC_IOCTL_SET_BUFFER_REQ,
-           (void*)&ioctl_msg) < 0)
-    {
-      DEBUG_PRINT_ERROR("Setting buffer requirements failed");
-      eRet = OMX_ErrorInsufficientResources;
+    struct vdec_ioctl_msg ioctl_msg = {NULL, NULL};
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    unsigned buf_size = 0;
+    DEBUG_PRINT_LOW("SetBufReq IN: ActCnt(%d) Size(%d)",
+            buffer_prop->actualcount, buffer_prop->buffer_size);
+    buf_size = (buffer_prop->buffer_size + buffer_prop->alignment - 1)&(~(buffer_prop->alignment - 1));
+
+    if (buf_size != buffer_prop->buffer_size) {
+        DEBUG_PRINT_ERROR("Buffer size alignment error: Requested(%d) Required(%d)",
+                buffer_prop->buffer_size, buf_size);
+        eRet = OMX_ErrorBadParameter;
     } else {
-      if (!client_buffers.update_buffer_req()) {
-        DEBUG_PRINT_ERROR("Setting c2D buffer requirements failed");
-        eRet = OMX_ErrorInsufficientResources;
-      }
+        ioctl_msg.in = buffer_prop;
+        ioctl_msg.out = NULL;
+
+        if (ioctl (drv_ctx.video_driver_fd, VDEC_IOCTL_SET_BUFFER_REQ,
+                    (void*)&ioctl_msg) < 0) {
+            DEBUG_PRINT_ERROR("Setting buffer requirements failed");
+            eRet = OMX_ErrorInsufficientResources;
+        } else {
+            if (!client_buffers.update_buffer_req()) {
+                DEBUG_PRINT_ERROR("Setting c2D buffer requirements failed");
+                eRet = OMX_ErrorInsufficientResources;
+            }
+        }
     }
-  }
-  return eRet;
+
+    return eRet;
 }
 
 OMX_ERRORTYPE omx_vdec::start_port_reconfig()
 {
-  struct vdec_ioctl_msg ioctl_msg = {NULL, NULL};
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  eRet = update_picture_resolution();
-  if (eRet == OMX_ErrorNone)
-  {
-    ioctl_msg.out = &drv_ctx.interlace;
-    if (ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_GET_INTERLACE_FORMAT, &ioctl_msg))
-    {
-      DEBUG_PRINT_ERROR("Error VDEC_IOCTL_GET_INTERLACE_FORMAT");
-      eRet = OMX_ErrorHardware;
-    }
-    else
-    {
-      if (drv_ctx.interlace != VDEC_InterlaceFrameProgressive)
-      {
-        DEBUG_PRINT_HIGH("Interlace format detected (%x)!", drv_ctx.interlace);
-        client_extradata |= OMX_INTERLACE_EXTRADATA;
-      }
-      in_reconfig = true;
-      op_buf_rcnfg.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
-      eRet = get_buffer_req(&op_buf_rcnfg);
-    }
-  }
+    struct vdec_ioctl_msg ioctl_msg = {NULL, NULL};
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    eRet = update_picture_resolution();
 
-  if (eRet == OMX_ErrorNone) {
-      //update power HAL with new width, height and bitrate
-      power_module_deregister();
-      power_module_register();
-  }
+    if (eRet == OMX_ErrorNone) {
+        ioctl_msg.out = &drv_ctx.interlace;
 
-  return eRet;
+        if (ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_GET_INTERLACE_FORMAT, &ioctl_msg)) {
+            DEBUG_PRINT_ERROR("Error VDEC_IOCTL_GET_INTERLACE_FORMAT");
+            eRet = OMX_ErrorHardware;
+        } else {
+            if (drv_ctx.interlace != VDEC_InterlaceFrameProgressive) {
+                DEBUG_PRINT_HIGH("Interlace format detected (%x)!", drv_ctx.interlace);
+                client_extradata |= OMX_INTERLACE_EXTRADATA;
+            }
+
+            in_reconfig = true;
+            op_buf_rcnfg.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
+            eRet = get_buffer_req(&op_buf_rcnfg);
+        }
+    }
+
+    if (eRet == OMX_ErrorNone) {
+        //update power HAL with new width, height and bitrate
+        power_module_deregister();
+        power_module_register();
+    }
+
+    return eRet;
 }
 
 OMX_ERRORTYPE omx_vdec::update_picture_resolution()
 {
-  struct vdec_ioctl_msg ioctl_msg = {NULL, NULL};
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  ioctl_msg.in = NULL;
-  ioctl_msg.out = &drv_ctx.video_resolution;
-  if (ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_GET_PICRES, &ioctl_msg))
-  {
-    DEBUG_PRINT_ERROR("Error VDEC_IOCTL_GET_PICRES");
-    eRet = OMX_ErrorHardware;
-  }
-  return eRet;
+    struct vdec_ioctl_msg ioctl_msg = {NULL, NULL};
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    ioctl_msg.in = NULL;
+    ioctl_msg.out = &drv_ctx.video_resolution;
+
+    if (ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_GET_PICRES, &ioctl_msg)) {
+        DEBUG_PRINT_ERROR("Error VDEC_IOCTL_GET_PICRES");
+        eRet = OMX_ErrorHardware;
+    }
+
+    return eRet;
 }
 
 OMX_ERRORTYPE omx_vdec::update_portdef(OMX_PARAM_PORTDEFINITIONTYPE *portDefn)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  if (!portDefn)
-  {
-    return OMX_ErrorBadParameter;
-  }
-  DEBUG_PRINT_LOW("omx_vdec::update_portdef");
-  portDefn->nVersion.nVersion = OMX_SPEC_VERSION;
-  portDefn->nSize = sizeof(portDefn);
-  portDefn->eDomain    = OMX_PortDomainVideo;
-  if (drv_ctx.frame_rate.fps_denominator > 0)
-    portDefn->format.video.xFramerate = drv_ctx.frame_rate.fps_numerator /
-                                        drv_ctx.frame_rate.fps_denominator;
-  else {
-    DEBUG_PRINT_ERROR("Error: Divide by zero \n");
-    return OMX_ErrorBadParameter;
-  }
-  if (0 == portDefn->nPortIndex)
-  {
-    portDefn->eDir =  OMX_DirInput;
-    portDefn->nBufferCountActual = drv_ctx.ip_buf.actualcount;
-    portDefn->nBufferCountMin    = drv_ctx.ip_buf.mincount;
-    portDefn->nBufferSize        = drv_ctx.ip_buf.buffer_size - DEVICE_SCRATCH;
-    portDefn->format.video.eColorFormat = OMX_COLOR_FormatUnused;
-    portDefn->format.video.eCompressionFormat = eCompressionFormat;
-    portDefn->bEnabled   = m_inp_bEnabled;
-    portDefn->bPopulated = m_inp_bPopulated;
-  }
-  else if (1 == portDefn->nPortIndex)
-  {
-    portDefn->eDir =  OMX_DirOutput;
-    if (update_picture_resolution() != OMX_ErrorNone)
-    {
-      DEBUG_PRINT_ERROR("update_picture_resolution failed \n");
-      return OMX_ErrorHardware;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+
+    if (!portDefn) {
+        return OMX_ErrorBadParameter;
     }
-    if (!client_buffers.update_buffer_req()) {
-      DEBUG_PRINT_ERROR("\n client_buffers.update_buffer_req Failed");
-      return OMX_ErrorHardware;
+
+    DEBUG_PRINT_LOW("omx_vdec::update_portdef");
+    portDefn->nVersion.nVersion = OMX_SPEC_VERSION;
+    portDefn->nSize = sizeof(portDefn);
+    portDefn->eDomain    = OMX_PortDomainVideo;
+
+    if (drv_ctx.frame_rate.fps_denominator > 0)
+        portDefn->format.video.xFramerate = drv_ctx.frame_rate.fps_numerator /
+            drv_ctx.frame_rate.fps_denominator;
+    else {
+        DEBUG_PRINT_ERROR("Error: Divide by zero \n");
+        return OMX_ErrorBadParameter;
     }
-    if (in_reconfig)
-    {
-      portDefn->nBufferCountActual = op_buf_rcnfg.actualcount;
-      portDefn->nBufferCountMin    = op_buf_rcnfg.mincount;
-      portDefn->nBufferSize        = op_buf_rcnfg.buffer_size;
+
+    if (0 == portDefn->nPortIndex) {
+        portDefn->eDir =  OMX_DirInput;
+        portDefn->nBufferCountActual = drv_ctx.ip_buf.actualcount;
+        portDefn->nBufferCountMin    = drv_ctx.ip_buf.mincount;
+        portDefn->nBufferSize        = drv_ctx.ip_buf.buffer_size - DEVICE_SCRATCH;
+        portDefn->format.video.eColorFormat = OMX_COLOR_FormatUnused;
+        portDefn->format.video.eCompressionFormat = eCompressionFormat;
+        portDefn->bEnabled   = m_inp_bEnabled;
+        portDefn->bPopulated = m_inp_bPopulated;
+    } else if (1 == portDefn->nPortIndex) {
+        portDefn->eDir =  OMX_DirOutput;
+
+        if (update_picture_resolution() != OMX_ErrorNone) {
+            DEBUG_PRINT_ERROR("update_picture_resolution failed \n");
+            return OMX_ErrorHardware;
+        }
+
+        if (!client_buffers.update_buffer_req()) {
+            DEBUG_PRINT_ERROR("\n client_buffers.update_buffer_req Failed");
+            return OMX_ErrorHardware;
+        }
+
+        if (in_reconfig) {
+            portDefn->nBufferCountActual = op_buf_rcnfg.actualcount;
+            portDefn->nBufferCountMin    = op_buf_rcnfg.mincount;
+            portDefn->nBufferSize        = op_buf_rcnfg.buffer_size;
+        } else {
+            portDefn->nBufferCountActual = drv_ctx.op_buf.actualcount;
+            portDefn->nBufferCountMin    = drv_ctx.op_buf.mincount;
+            portDefn->nBufferSize        = drv_ctx.op_buf.buffer_size;
+        }
+
+        unsigned int buf_size = 0;
+
+        if (!client_buffers.get_buffer_req(buf_size)) {
+            DEBUG_PRINT_ERROR("\n update buffer requirements");
+            return OMX_ErrorHardware;
+        }
+
+        portDefn->nBufferSize = buf_size;
+        portDefn->format.video.eCompressionFormat = OMX_VIDEO_CodingUnused;
+        portDefn->bEnabled   = m_out_bEnabled;
+        portDefn->bPopulated = m_out_bPopulated;
+
+        if (!client_buffers.get_color_format(portDefn->format.video.eColorFormat)) {
+            DEBUG_PRINT_ERROR("\n Error in getting color format");
+            return OMX_ErrorHardware;
+        }
+    } else {
+        portDefn->eDir = OMX_DirMax;
+        DEBUG_PRINT_LOW(" get_parameter: Bad Port idx %d",
+                (int)portDefn->nPortIndex);
+        eRet = OMX_ErrorBadPortIndex;
     }
-    else
-    {
-      portDefn->nBufferCountActual = drv_ctx.op_buf.actualcount;
-      portDefn->nBufferCountMin    = drv_ctx.op_buf.mincount;
-      portDefn->nBufferSize        = drv_ctx.op_buf.buffer_size;
-    }
-    unsigned int buf_size = 0;
-    if (!client_buffers.get_buffer_req(buf_size)) {
-      DEBUG_PRINT_ERROR("\n update buffer requirements");
-      return OMX_ErrorHardware;
-    }
-    portDefn->nBufferSize = buf_size;
-    portDefn->format.video.eCompressionFormat = OMX_VIDEO_CodingUnused;
-    portDefn->bEnabled   = m_out_bEnabled;
-    portDefn->bPopulated = m_out_bPopulated;
-    if (!client_buffers.get_color_format(portDefn->format.video.eColorFormat)) {
-      DEBUG_PRINT_ERROR("\n Error in getting color format");
-      return OMX_ErrorHardware;
-    }
-  }
-  else
-  {
-    portDefn->eDir = OMX_DirMax;
-    DEBUG_PRINT_LOW(" get_parameter: Bad Port idx %d",
-             (int)portDefn->nPortIndex);
-    eRet = OMX_ErrorBadPortIndex;
-  }
-  portDefn->format.video.nFrameHeight =  drv_ctx.video_resolution.frame_height;
-  portDefn->format.video.nFrameWidth  =  drv_ctx.video_resolution.frame_width;
-  portDefn->format.video.nStride = drv_ctx.video_resolution.stride;
-  portDefn->format.video.nSliceHeight = drv_ctx.video_resolution.scan_lines;
-  DEBUG_PRINT_LOW("update_portdef: PortIndex = %u, Width = %d Height = %d "
-    "Stride = %u SliceHeight = %u output format = 0x%x, eColorFormat = 0x%x",
-    portDefn->nPortIndex,
-    portDefn->format.video.nFrameHeight,
-    portDefn->format.video.nFrameWidth,
-    portDefn->format.video.nStride,
-    portDefn->format.video.nSliceHeight,
-    drv_ctx.output_format,
-    portDefn->format.video.eColorFormat);
-  return eRet;
+
+    portDefn->format.video.nFrameHeight =  drv_ctx.video_resolution.frame_height;
+    portDefn->format.video.nFrameWidth  =  drv_ctx.video_resolution.frame_width;
+    portDefn->format.video.nStride = drv_ctx.video_resolution.stride;
+    portDefn->format.video.nSliceHeight = drv_ctx.video_resolution.scan_lines;
+    DEBUG_PRINT_LOW("update_portdef: PortIndex = %u, Width = %d Height = %d "
+            "Stride = %u SliceHeight = %u output format = 0x%x, eColorFormat = 0x%x",
+            portDefn->nPortIndex,
+            portDefn->format.video.nFrameHeight,
+            portDefn->format.video.nFrameWidth,
+            portDefn->format.video.nStride,
+            portDefn->format.video.nSliceHeight,
+            drv_ctx.output_format,
+            portDefn->format.video.eColorFormat);
+    return eRet;
 }
 
 OMX_ERRORTYPE omx_vdec::allocate_output_headers()
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  OMX_BUFFERHEADERTYPE *bufHdr = NULL;
-  unsigned i= 0;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_BUFFERHEADERTYPE *bufHdr = NULL;
+    unsigned i= 0;
 
-  if(!m_out_mem_ptr) {
-    DEBUG_PRINT_HIGH("Use o/p buffer case - Header List allocation");
-    int nBufHdrSize        = 0;
-    int nPlatformEntrySize = 0;
-    int nPlatformListSize  = 0;
-    int nPMEMInfoSize = 0;
-    OMX_QCOM_PLATFORM_PRIVATE_LIST      *pPlatformList;
-    OMX_QCOM_PLATFORM_PRIVATE_ENTRY     *pPlatformEntry;
-    OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pPMEMInfo;
+    if (!m_out_mem_ptr) {
+        DEBUG_PRINT_HIGH("Use o/p buffer case - Header List allocation");
+        int nBufHdrSize        = 0;
+        int nPlatformEntrySize = 0;
+        int nPlatformListSize  = 0;
+        int nPMEMInfoSize = 0;
+        OMX_QCOM_PLATFORM_PRIVATE_LIST      *pPlatformList;
+        OMX_QCOM_PLATFORM_PRIVATE_ENTRY     *pPlatformEntry;
+        OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pPMEMInfo;
 
-    DEBUG_PRINT_LOW("Setting First Output Buffer(%d)",
-      drv_ctx.op_buf.actualcount);
-    nBufHdrSize        = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_BUFFERHEADERTYPE);
+        DEBUG_PRINT_LOW("Setting First Output Buffer(%d)",
+                drv_ctx.op_buf.actualcount);
+        nBufHdrSize        = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_BUFFERHEADERTYPE);
 
-    nPMEMInfoSize      = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO);
-    nPlatformListSize  = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_QCOM_PLATFORM_PRIVATE_LIST);
-    nPlatformEntrySize = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_QCOM_PLATFORM_PRIVATE_ENTRY);
+        nPMEMInfoSize      = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO);
+        nPlatformListSize  = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_QCOM_PLATFORM_PRIVATE_LIST);
+        nPlatformEntrySize = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_QCOM_PLATFORM_PRIVATE_ENTRY);
 
-    DEBUG_PRINT_LOW("TotalBufHdr %d BufHdrSize %d PMEM %d PL %d",nBufHdrSize,
-                         sizeof(OMX_BUFFERHEADERTYPE),
-                         nPMEMInfoSize,
-                         nPlatformListSize);
-    DEBUG_PRINT_LOW("PE %d bmSize %d ",nPlatformEntrySize,
-                         m_out_bm_count);
-    m_out_mem_ptr = (OMX_BUFFERHEADERTYPE  *)calloc(nBufHdrSize,1);
-    // Alloc mem for platform specific info
-    char *pPtr=NULL;
-    pPtr = (char*) calloc(nPlatformListSize + nPlatformEntrySize +
-                                     nPMEMInfoSize,1);
-    drv_ctx.ptr_outputbuffer = (struct vdec_bufferpayload *) \
-      calloc (sizeof(struct vdec_bufferpayload),
-      drv_ctx.op_buf.actualcount);
-    drv_ctx.ptr_respbuffer = (struct vdec_output_frameinfo  *)\
-      calloc (sizeof (struct vdec_output_frameinfo),
-      drv_ctx.op_buf.actualcount);
+        DEBUG_PRINT_LOW("TotalBufHdr %d BufHdrSize %d PMEM %d PL %d",nBufHdrSize,
+                sizeof(OMX_BUFFERHEADERTYPE),
+                nPMEMInfoSize,
+                nPlatformListSize);
+        DEBUG_PRINT_LOW("PE %d bmSize %d ",nPlatformEntrySize,
+                m_out_bm_count);
+        m_out_mem_ptr = (OMX_BUFFERHEADERTYPE  *)calloc(nBufHdrSize,1);
+        // Alloc mem for platform specific info
+        char *pPtr=NULL;
+        pPtr = (char*) calloc(nPlatformListSize + nPlatformEntrySize +
+                nPMEMInfoSize,1);
+        drv_ctx.ptr_outputbuffer = (struct vdec_bufferpayload *) \
+                                   calloc (sizeof(struct vdec_bufferpayload),
+                                           drv_ctx.op_buf.actualcount);
+        drv_ctx.ptr_respbuffer = (struct vdec_output_frameinfo  *)\
+                                 calloc (sizeof (struct vdec_output_frameinfo),
+                                         drv_ctx.op_buf.actualcount);
 #ifdef USE_ION
-    drv_ctx.op_buf_ion_info = (struct vdec_ion * ) \
-      calloc (sizeof(struct vdec_ion),drv_ctx.op_buf.actualcount);
+        drv_ctx.op_buf_ion_info = (struct vdec_ion * ) \
+                                  calloc (sizeof(struct vdec_ion),drv_ctx.op_buf.actualcount);
 #endif
 
-    if(m_out_mem_ptr && pPtr && drv_ctx.ptr_outputbuffer
-       && drv_ctx.ptr_respbuffer)
-    {
-      bufHdr          =  m_out_mem_ptr;
-      m_platform_list = (OMX_QCOM_PLATFORM_PRIVATE_LIST *)(pPtr);
-      m_platform_entry= (OMX_QCOM_PLATFORM_PRIVATE_ENTRY *)
-                        (((char *) m_platform_list)  + nPlatformListSize);
-      m_pmem_info     = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
-                        (((char *) m_platform_entry) + nPlatformEntrySize);
-      pPlatformList   = m_platform_list;
-      pPlatformEntry  = m_platform_entry;
-      pPMEMInfo       = m_pmem_info;
+        if (m_out_mem_ptr && pPtr && drv_ctx.ptr_outputbuffer
+                && drv_ctx.ptr_respbuffer) {
+            bufHdr          =  m_out_mem_ptr;
+            m_platform_list = (OMX_QCOM_PLATFORM_PRIVATE_LIST *)(pPtr);
+            m_platform_entry= (OMX_QCOM_PLATFORM_PRIVATE_ENTRY *)
+                (((char *) m_platform_list)  + nPlatformListSize);
+            m_pmem_info     = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
+                (((char *) m_platform_entry) + nPlatformEntrySize);
+            pPlatformList   = m_platform_list;
+            pPlatformEntry  = m_platform_entry;
+            pPMEMInfo       = m_pmem_info;
 
-      DEBUG_PRINT_LOW("Memory Allocation Succeeded for OUT port%p",m_out_mem_ptr);
+            DEBUG_PRINT_LOW("Memory Allocation Succeeded for OUT port%p",m_out_mem_ptr);
 
-      // Settting the entire storage nicely
-      DEBUG_PRINT_LOW("bHdr %p OutMem %p PE %p",bufHdr,
-                      m_out_mem_ptr,pPlatformEntry);
-      DEBUG_PRINT_LOW(" Pmem Info = %p ",pPMEMInfo);
-      for(i=0; i < drv_ctx.op_buf.actualcount ; i++)
-      {
-        bufHdr->nSize              = sizeof(OMX_BUFFERHEADERTYPE);
-        bufHdr->nVersion.nVersion  = OMX_SPEC_VERSION;
-        // Set the values when we determine the right HxW param
-        bufHdr->nAllocLen          = 0;
-        bufHdr->nFilledLen         = 0;
-        bufHdr->pAppPrivate        = NULL;
-        bufHdr->nOutputPortIndex   = OMX_CORE_OUTPUT_PORT_INDEX;
-        pPlatformEntry->type       = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
-        pPlatformEntry->entry      = pPMEMInfo;
-        // Initialize the Platform List
-        pPlatformList->nEntries    = 1;
-        pPlatformList->entryList   = pPlatformEntry;
-        // Keep pBuffer NULL till vdec is opened
-        bufHdr->pBuffer            = NULL;
-        pPMEMInfo->offset          =  0;
-        pPMEMInfo->pmem_fd = 0;
-        bufHdr->pPlatformPrivate = pPlatformList;
-        drv_ctx.ptr_outputbuffer[i].pmem_fd = -1;
+            // Settting the entire storage nicely
+            DEBUG_PRINT_LOW("bHdr %p OutMem %p PE %p",bufHdr,
+                    m_out_mem_ptr,pPlatformEntry);
+            DEBUG_PRINT_LOW(" Pmem Info = %p ",pPMEMInfo);
+
+            for (i=0; i < drv_ctx.op_buf.actualcount ; i++) {
+                bufHdr->nSize              = sizeof(OMX_BUFFERHEADERTYPE);
+                bufHdr->nVersion.nVersion  = OMX_SPEC_VERSION;
+                // Set the values when we determine the right HxW param
+                bufHdr->nAllocLen          = 0;
+                bufHdr->nFilledLen         = 0;
+                bufHdr->pAppPrivate        = NULL;
+                bufHdr->nOutputPortIndex   = OMX_CORE_OUTPUT_PORT_INDEX;
+                pPlatformEntry->type       = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
+                pPlatformEntry->entry      = pPMEMInfo;
+                // Initialize the Platform List
+                pPlatformList->nEntries    = 1;
+                pPlatformList->entryList   = pPlatformEntry;
+                // Keep pBuffer NULL till vdec is opened
+                bufHdr->pBuffer            = NULL;
+                pPMEMInfo->offset          =  0;
+                pPMEMInfo->pmem_fd = 0;
+                bufHdr->pPlatformPrivate = pPlatformList;
+                drv_ctx.ptr_outputbuffer[i].pmem_fd = -1;
 #ifdef USE_ION
-        drv_ctx.op_buf_ion_info[i].ion_device_fd =-1;
+                drv_ctx.op_buf_ion_info[i].ion_device_fd =-1;
 #endif
-        /*Create a mapping between buffers*/
-        bufHdr->pOutputPortPrivate = &drv_ctx.ptr_respbuffer[i];
-        drv_ctx.ptr_respbuffer[i].client_data = (void *) \
-                                            &drv_ctx.ptr_outputbuffer[i];
-        // Move the buffer and buffer header pointers
-        bufHdr++;
-        pPMEMInfo++;
-        pPlatformEntry++;
-        pPlatformList++;
-      }
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("Output buf mem alloc failed[0x%x][0x%x]\n",\
-                                        m_out_mem_ptr, pPtr);
-      if(m_out_mem_ptr)
-      {
-        free(m_out_mem_ptr);
-        m_out_mem_ptr = NULL;
-      }
-      if(pPtr)
-      {
-        free(pPtr);
-        pPtr = NULL;
-      }
-      if(drv_ctx.ptr_outputbuffer)
-      {
-        free(drv_ctx.ptr_outputbuffer);
-        drv_ctx.ptr_outputbuffer = NULL;
-      }
-      if(drv_ctx.ptr_respbuffer)
-      {
-        free(drv_ctx.ptr_respbuffer);
-        drv_ctx.ptr_respbuffer = NULL;
-      }
+                /*Create a mapping between buffers*/
+                bufHdr->pOutputPortPrivate = &drv_ctx.ptr_respbuffer[i];
+                drv_ctx.ptr_respbuffer[i].client_data = (void *) \
+                                                        &drv_ctx.ptr_outputbuffer[i];
+                // Move the buffer and buffer header pointers
+                bufHdr++;
+                pPMEMInfo++;
+                pPlatformEntry++;
+                pPlatformList++;
+            }
+        } else {
+            DEBUG_PRINT_ERROR("Output buf mem alloc failed[0x%x][0x%x]\n",\
+                    m_out_mem_ptr, pPtr);
+
+            if (m_out_mem_ptr) {
+                free(m_out_mem_ptr);
+                m_out_mem_ptr = NULL;
+            }
+
+            if (pPtr) {
+                free(pPtr);
+                pPtr = NULL;
+            }
+
+            if (drv_ctx.ptr_outputbuffer) {
+                free(drv_ctx.ptr_outputbuffer);
+                drv_ctx.ptr_outputbuffer = NULL;
+            }
+
+            if (drv_ctx.ptr_respbuffer) {
+                free(drv_ctx.ptr_respbuffer);
+                drv_ctx.ptr_respbuffer = NULL;
+            }
+
 #ifdef USE_ION
-    if (drv_ctx.op_buf_ion_info) {
-        DEBUG_PRINT_LOW("Free o/p ion context");
-        free(drv_ctx.op_buf_ion_info);
-        drv_ctx.op_buf_ion_info = NULL;
-    }
+
+            if (drv_ctx.op_buf_ion_info) {
+                DEBUG_PRINT_LOW("Free o/p ion context");
+                free(drv_ctx.op_buf_ion_info);
+                drv_ctx.op_buf_ion_info = NULL;
+            }
+
 #endif
-      eRet =  OMX_ErrorInsufficientResources;
+            eRet =  OMX_ErrorInsufficientResources;
+        }
+    } else {
+        eRet =  OMX_ErrorInsufficientResources;
     }
-  } else {
-    eRet =  OMX_ErrorInsufficientResources;
-  }
-  return eRet;
+
+    return eRet;
 }
 
 void omx_vdec::complete_pending_buffer_done_cbs()
 {
-  unsigned p1;
-  unsigned p2;
-  unsigned ident;
-  omx_cmd_queue tmp_q, pending_bd_q;
-  pthread_mutex_lock(&m_lock);
-  // pop all pending GENERATE FDB from ftb queue
-  while (m_ftb_q.m_size)
-  {
-    m_ftb_q.pop_entry(&p1,&p2,&ident);
-    if(ident == OMX_COMPONENT_GENERATE_FBD)
-    {
-      pending_bd_q.insert_entry(p1,p2,ident);
-    }
-    else
-    {
-      tmp_q.insert_entry(p1,p2,ident);
-    }
-  }
-  //return all non GENERATE FDB to ftb queue
-  while(tmp_q.m_size)
-  {
-    tmp_q.pop_entry(&p1,&p2,&ident);
-    m_ftb_q.insert_entry(p1,p2,ident);
-  }
-  // pop all pending GENERATE EDB from etb queue
-  while (m_etb_q.m_size)
-  {
-    m_etb_q.pop_entry(&p1,&p2,&ident);
-    if(ident == OMX_COMPONENT_GENERATE_EBD)
-    {
-      pending_bd_q.insert_entry(p1,p2,ident);
-    }
-    else
-    {
-      tmp_q.insert_entry(p1,p2,ident);
-    }
-  }
-  //return all non GENERATE FDB to etb queue
-  while(tmp_q.m_size)
-  {
-    tmp_q.pop_entry(&p1,&p2,&ident);
-    m_etb_q.insert_entry(p1,p2,ident);
-  }
-  pthread_mutex_unlock(&m_lock);
-  // process all pending buffer dones
-  while(pending_bd_q.m_size)
-  {
-    pending_bd_q.pop_entry(&p1,&p2,&ident);
-    switch(ident)
-    {
-      case OMX_COMPONENT_GENERATE_EBD:
-        if(empty_buffer_done(&m_cmp, (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: empty_buffer_done() failed!\n");
-          omx_report_error ();
-        }
-        break;
+    unsigned p1;
+    unsigned p2;
+    unsigned ident;
+    omx_cmd_queue tmp_q, pending_bd_q;
+    pthread_mutex_lock(&m_lock);
 
-      case OMX_COMPONENT_GENERATE_FBD:
-        if(fill_buffer_done(&m_cmp, (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone )
-        {
-          DEBUG_PRINT_ERROR("\nERROR: fill_buffer_done() failed!\n");
-          omx_report_error ();
+    // pop all pending GENERATE FDB from ftb queue
+    while (m_ftb_q.m_size) {
+        m_ftb_q.pop_entry(&p1,&p2,&ident);
+
+        if (ident == OMX_COMPONENT_GENERATE_FBD) {
+            pending_bd_q.insert_entry(p1,p2,ident);
+        } else {
+            tmp_q.insert_entry(p1,p2,ident);
         }
-        break;
     }
-  }
+
+    //return all non GENERATE FDB to ftb queue
+    while (tmp_q.m_size) {
+        tmp_q.pop_entry(&p1,&p2,&ident);
+        m_ftb_q.insert_entry(p1,p2,ident);
+    }
+
+    // pop all pending GENERATE EDB from etb queue
+    while (m_etb_q.m_size) {
+        m_etb_q.pop_entry(&p1,&p2,&ident);
+
+        if (ident == OMX_COMPONENT_GENERATE_EBD) {
+            pending_bd_q.insert_entry(p1,p2,ident);
+        } else {
+            tmp_q.insert_entry(p1,p2,ident);
+        }
+    }
+
+    //return all non GENERATE FDB to etb queue
+    while (tmp_q.m_size) {
+        tmp_q.pop_entry(&p1,&p2,&ident);
+        m_etb_q.insert_entry(p1,p2,ident);
+    }
+
+    pthread_mutex_unlock(&m_lock);
+
+    // process all pending buffer dones
+    while (pending_bd_q.m_size) {
+        pending_bd_q.pop_entry(&p1,&p2,&ident);
+
+        switch (ident) {
+            case OMX_COMPONENT_GENERATE_EBD:
+
+                if (empty_buffer_done(&m_cmp, (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone) {
+                    DEBUG_PRINT_ERROR("\nERROR: empty_buffer_done() failed!\n");
+                    omx_report_error ();
+                }
+
+                break;
+
+            case OMX_COMPONENT_GENERATE_FBD:
+
+                if (fill_buffer_done(&m_cmp, (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone ) {
+                    DEBUG_PRINT_ERROR("\nERROR: fill_buffer_done() failed!\n");
+                    omx_report_error ();
+                }
+
+                break;
+        }
+    }
 }
 
 void omx_vdec::set_frame_rate(OMX_S64 act_timestamp)
 {
-  OMX_U32 new_frame_interval = 0;
-  struct vdec_ioctl_msg ioctl_msg = {NULL, NULL};
-  if (VALID_TS(act_timestamp) && VALID_TS(prev_ts) && act_timestamp != prev_ts
-     && (((act_timestamp > prev_ts )? act_timestamp - prev_ts: prev_ts-act_timestamp)>2000))
-  {
-    new_frame_interval = (act_timestamp > prev_ts)?
-                          act_timestamp - prev_ts :
-                          prev_ts - act_timestamp;
-    if (new_frame_interval < frm_int || frm_int == 0)
-    {
-      frm_int = new_frame_interval;
-      if(frm_int)
-      {
-        drv_ctx.frame_rate.fps_numerator = 1e6;
-        drv_ctx.frame_rate.fps_denominator = frm_int;
-        DEBUG_PRINT_LOW("set_frame_rate: frm_int(%u) fps(%f)",
-                         frm_int, drv_ctx.frame_rate.fps_numerator /
-                         (float)drv_ctx.frame_rate.fps_denominator);
-        ioctl_msg.in = &drv_ctx.frame_rate;
-        if (ioctl (drv_ctx.video_driver_fd, VDEC_IOCTL_SET_FRAME_RATE,
-                  (void*)&ioctl_msg) < 0)
-        {
-          DEBUG_PRINT_ERROR("Setting frame rate failed");
+    OMX_U32 new_frame_interval = 0;
+    struct vdec_ioctl_msg ioctl_msg = {NULL, NULL};
+
+    if (VALID_TS(act_timestamp) && VALID_TS(prev_ts) && act_timestamp != prev_ts
+            && (((act_timestamp > prev_ts )? act_timestamp - prev_ts: prev_ts-act_timestamp)>2000)) {
+        new_frame_interval = (act_timestamp > prev_ts)?
+            act_timestamp - prev_ts :
+            prev_ts - act_timestamp;
+
+        if (new_frame_interval < frm_int || frm_int == 0) {
+            frm_int = new_frame_interval;
+
+            if (frm_int) {
+                drv_ctx.frame_rate.fps_numerator = 1e6;
+                drv_ctx.frame_rate.fps_denominator = frm_int;
+                DEBUG_PRINT_LOW("set_frame_rate: frm_int(%u) fps(%f)",
+                        frm_int, drv_ctx.frame_rate.fps_numerator /
+                        (float)drv_ctx.frame_rate.fps_denominator);
+                ioctl_msg.in = &drv_ctx.frame_rate;
+
+                if (ioctl (drv_ctx.video_driver_fd, VDEC_IOCTL_SET_FRAME_RATE,
+                            (void*)&ioctl_msg) < 0) {
+                    DEBUG_PRINT_ERROR("Setting frame rate failed");
+                }
+            }
         }
-      }
     }
-  }
-  prev_ts = act_timestamp;
+
+    prev_ts = act_timestamp;
 }
 
 void omx_vdec::adjust_timestamp(OMX_S64 &act_timestamp)
 {
-  if (rst_prev_ts && VALID_TS(act_timestamp))
-  {
-    prev_ts = act_timestamp;
-    rst_prev_ts = false;
-  }
-  else if (VALID_TS(prev_ts))
-  {
-    bool codec_cond = (drv_ctx.timestamp_adjust)?
-                      (!VALID_TS(act_timestamp) || (((act_timestamp > prev_ts)?
-                      (act_timestamp - prev_ts):(prev_ts - act_timestamp)) <= 2000)):
-                      (!VALID_TS(act_timestamp) || act_timestamp == prev_ts);
-    if(frm_int > 0 && codec_cond)
-    {
-      DEBUG_PRINT_LOW("adjust_timestamp: original ts[%lld]", act_timestamp);
-      act_timestamp = prev_ts + frm_int;
-      DEBUG_PRINT_LOW("adjust_timestamp: predicted ts[%lld]", act_timestamp);
-      prev_ts = act_timestamp;
+    if (rst_prev_ts && VALID_TS(act_timestamp)) {
+        prev_ts = act_timestamp;
+        rst_prev_ts = false;
+    } else if (VALID_TS(prev_ts)) {
+        bool codec_cond = (drv_ctx.timestamp_adjust)?
+            (!VALID_TS(act_timestamp) || (((act_timestamp > prev_ts)?
+                                           (act_timestamp - prev_ts):(prev_ts - act_timestamp)) <= 2000)):
+            (!VALID_TS(act_timestamp) || act_timestamp == prev_ts);
+
+        if (frm_int > 0 && codec_cond) {
+            DEBUG_PRINT_LOW("adjust_timestamp: original ts[%lld]", act_timestamp);
+            act_timestamp = prev_ts + frm_int;
+            DEBUG_PRINT_LOW("adjust_timestamp: predicted ts[%lld]", act_timestamp);
+            prev_ts = act_timestamp;
+        } else
+            set_frame_rate(act_timestamp);
+    } else if (frm_int > 0)          // In this case the frame rate was set along
+    {                               // with the port definition, start ts with 0
+        act_timestamp = prev_ts = 0;  // and correct if a valid ts is received.
+        rst_prev_ts = true;
     }
-    else
-      set_frame_rate(act_timestamp);
-  }
-  else if (frm_int > 0)           // In this case the frame rate was set along
-  {                               // with the port definition, start ts with 0
-    act_timestamp = prev_ts = 0;  // and correct if a valid ts is received.
-    rst_prev_ts = true;
-  }
 }
 
 void omx_vdec::handle_extradata_secure(OMX_BUFFERHEADERTYPE *p_buf_hdr)
 {
-  OMX_OTHER_EXTRADATATYPE *p_extra = NULL, *p_sei = NULL, *p_vui = NULL, *p_extn_user[32];
-  struct vdec_output_frameinfo *output_respbuf;
-  OMX_U32 num_conceal_MB = 0;
-  OMX_S64 ts_in_sei = 0;
-  OMX_U32 frame_rate = 0;
-  OMX_U32 extn_user_data_cnt = 0;
+    OMX_OTHER_EXTRADATATYPE *p_extra = NULL, *p_sei = NULL, *p_vui = NULL, *p_extn_user[32];
+    struct vdec_output_frameinfo *output_respbuf;
+    OMX_U32 num_conceal_MB = 0;
+    OMX_S64 ts_in_sei = 0;
+    OMX_U32 frame_rate = 0;
+    OMX_U32 extn_user_data_cnt = 0;
 
-  OMX_U32 index = p_buf_hdr - m_out_mem_ptr;
-  OMX_U8 *meta_buffer_virtual = (OMX_U8 *)meta_buff.buffer;
+    OMX_U32 index = p_buf_hdr - m_out_mem_ptr;
+    OMX_U8 *meta_buffer_virtual = (OMX_U8 *)meta_buff.buffer;
 
 
-  p_extra = (OMX_OTHER_EXTRADATATYPE *)
-           ((unsigned)(meta_buffer_virtual +
-           index * drv_ctx.op_buf.meta_buffer_size + 3)&(~3));
+    p_extra = (OMX_OTHER_EXTRADATATYPE *)
+        ((unsigned)(meta_buffer_virtual +
+            index * drv_ctx.op_buf.meta_buffer_size + 3)&(~3));
 
-  //mapping of ouput buffer to the corresponding meta buffer
-  output_respbuf = (struct vdec_output_frameinfo *)\
-                             p_buf_hdr->pOutputPortPrivate;
-  output_respbuf->metadata_info.metabufaddr = (OMX_U8 *)p_extra;
-  output_respbuf->metadata_info.size =
-                     drv_ctx.op_buf.meta_buffer_size;
+    //mapping of ouput buffer to the corresponding meta buffer
+    output_respbuf = (struct vdec_output_frameinfo *)\
+                     p_buf_hdr->pOutputPortPrivate;
+    output_respbuf->metadata_info.metabufaddr = (OMX_U8 *)p_extra;
+    output_respbuf->metadata_info.size =
+        drv_ctx.op_buf.meta_buffer_size;
 
-  meta_buffer_virtual = (OMX_U8 *)p_extra;
+    meta_buffer_virtual = (OMX_U8 *)p_extra;
 
-  if (drv_ctx.extradata && (p_buf_hdr->nFlags & OMX_BUFFERFLAG_EXTRADATA))
-    {
-      // Process driver extradata
-      while(p_extra && p_extra->eType != VDEC_EXTRADATA_NONE)
-      {
-        DEBUG_PRINT_LOW("handle_extradata_secure : pBuf(%p) BufTS(%lld) Type(%x) DataSz(%u)",
-             p_buf_hdr, p_buf_hdr->nTimeStamp, p_extra->eType, p_extra->nDataSize);
-        if (p_extra->nSize < p_extra->nDataSize)
-        {
-          DEBUG_PRINT_ERROR(" \n Corrupt metadata Buffer size %d payload size %d",
-                             p_extra->nSize, p_extra->nDataSize);
-          p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
-          if((OMX_U8*)p_extra > (meta_buffer_virtual + drv_ctx.op_buf.meta_buffer_size) ||
+    if (drv_ctx.extradata && (p_buf_hdr->nFlags & OMX_BUFFERFLAG_EXTRADATA)) {
+        // Process driver extradata
+        while (p_extra && p_extra->eType != VDEC_EXTRADATA_NONE) {
+            DEBUG_PRINT_LOW("handle_extradata_secure : pBuf(%p) BufTS(%lld) Type(%x) DataSz(%u)",
+                    p_buf_hdr, p_buf_hdr->nTimeStamp, p_extra->eType, p_extra->nDataSize);
+
+            if (p_extra->nSize < p_extra->nDataSize) {
+                DEBUG_PRINT_ERROR(" \n Corrupt metadata Buffer size %d payload size %d",
+                        p_extra->nSize, p_extra->nDataSize);
+                p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+
+                if ((OMX_U8*)p_extra > (meta_buffer_virtual + drv_ctx.op_buf.meta_buffer_size) ||
                         p_extra->nDataSize == 0 || p_extra->nSize == 0)
-            p_extra = NULL;
-          continue;
-        }
-        if (p_extra->eType == VDEC_EXTRADATA_MB_ERROR_MAP)
-        {
-          if (client_extradata & OMX_FRAMEINFO_EXTRADATA)
-            num_conceal_MB = count_MB_in_extradata(p_extra);
-          if (client_extradata & VDEC_EXTRADATA_MB_ERROR_MAP)
-            // Map driver extradata to corresponding OMX type
-            p_extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataConcealMB;
-          else
-            p_extra->eType = OMX_ExtraDataMax; // Invalid type to avoid expose this extradata to OMX client
+                    p_extra = NULL;
+
+                continue;
+            }
+
+            if (p_extra->eType == VDEC_EXTRADATA_MB_ERROR_MAP) {
+                if (client_extradata & OMX_FRAMEINFO_EXTRADATA)
+                    num_conceal_MB = count_MB_in_extradata(p_extra);
+
+                if (client_extradata & VDEC_EXTRADATA_MB_ERROR_MAP)
+                    // Map driver extradata to corresponding OMX type
+                    p_extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataConcealMB;
+                else
+                    p_extra->eType = OMX_ExtraDataMax; // Invalid type to avoid expose this extradata to OMX client
+
 #ifdef _ANDROID_
-          if (m_debug_concealedmb) {
-              DEBUG_PRINT_HIGH("Concealed MB percentage is %u", num_conceal_MB);
-          }
+
+                if (m_debug_concealedmb) {
+                    DEBUG_PRINT_HIGH("Concealed MB percentage is %u", num_conceal_MB);
+                }
+
 #endif /* _ANDROID_ */
-        }
-        else if (p_extra->eType == VDEC_EXTRADATA_SEI)
-        {
-          p_sei = p_extra;
+            } else if (p_extra->eType == VDEC_EXTRADATA_SEI) {
+                p_sei = p_extra;
 #ifdef MAX_RES_1080P
-          h264_parser->parse_nal((OMX_U8*)p_sei->data, p_sei->nDataSize, NALU_TYPE_SEI);
+                h264_parser->parse_nal((OMX_U8*)p_sei->data, p_sei->nDataSize, NALU_TYPE_SEI);
 #endif
-          p_extra->eType = OMX_ExtraDataMax; // Invalid type to avoid expose this extradata to OMX client
-        }
-        else if (p_extra->eType == VDEC_EXTRADATA_VUI)
-        {
-          p_vui = p_extra;
+                p_extra->eType = OMX_ExtraDataMax; // Invalid type to avoid expose this extradata to OMX client
+            } else if (p_extra->eType == VDEC_EXTRADATA_VUI) {
+                p_vui = p_extra;
 #ifdef MAX_RES_1080P
-          h264_parser->parse_nal((OMX_U8*)p_vui->data, p_vui->nDataSize, NALU_TYPE_VUI, false);
+                h264_parser->parse_nal((OMX_U8*)p_vui->data, p_vui->nDataSize, NALU_TYPE_VUI, false);
 #endif
-          p_extra->eType = OMX_ExtraDataMax; // Invalid type to avoid expose this extradata to OMX client
-        }
-        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)
-        {
-          p_extn_user[extn_user_data_cnt] = p_extra;
-          extn_user_data_cnt++;
-        }
-        print_debug_extradata(p_extra);
-        p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+                p_extra->eType = OMX_ExtraDataMax; // Invalid type to avoid expose this extradata to OMX client
+            } 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((OMX_U8*)p_extra > (meta_buffer_virtual + drv_ctx.op_buf.meta_buffer_size) ||
-            p_extra->nDataSize == 0 || p_extra->nSize == 0)
-          p_extra = NULL;
-      }
-      if (!(client_extradata & VDEC_EXTRADATA_MB_ERROR_MAP))
-      {
-        //moving p_extra to the starting location of the metadata buffer
-        p_extra = (OMX_OTHER_EXTRADATATYPE *)meta_buffer_virtual;
-        // Driver extradata is only exposed if MB map is requested by client,
-        // otherwise can be overwritten by omx extradata.
-        p_buf_hdr->nFlags &= ~OMX_BUFFERFLAG_EXTRADATA;
-      }
-    }
+                if ((*data_ptr & 0xf0) == 0x20) {
+                    value = ((*data_ptr) & 0x01);
+                    data_ptr++;
 
-    if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264)
-    {
-      if (client_extradata & OMX_TIMEINFO_EXTRADATA)
-      {
-        if (p_vui)
-          h264_parser->parse_nal((OMX_U8*)p_vui->data, p_vui->nDataSize, NALU_TYPE_VUI, false);
-        if (p_sei)
-          h264_parser->parse_nal((OMX_U8*)p_sei->data, p_sei->nDataSize, NALU_TYPE_SEI);
-        ts_in_sei = h264_parser->process_ts_with_sei_vui(p_buf_hdr->nTimeStamp);
-        if (!VALID_TS(p_buf_hdr->nTimeStamp))
-          p_buf_hdr->nTimeStamp = ts_in_sei;
-      }
-      else if ((client_extradata & OMX_FRAMEINFO_EXTRADATA) && p_sei)
-        // If timeinfo is present frame info from SEI is already processed
-        h264_parser->parse_nal((OMX_U8*)p_sei->data, p_sei->nDataSize, NALU_TYPE_SEI);
-    }
+                    if (value)
+                        data_ptr += 3;
 
-    if (client_extradata & OMX_EXTNUSER_EXTRADATA && p_extra)
-    {
-      p_buf_hdr->nFlags |= OMX_BUFFERFLAG_EXTRADATA;
-      for(int i = 0; i < extn_user_data_cnt; i++)
-      {
-        if (((OMX_U8*)p_extra + p_extn_user[i]->nSize) <
-                          (meta_buffer_virtual + drv_ctx.op_buf.meta_buffer_size))
-        {
-          if (p_extn_user[i]->eType == VDEC_EXTRADATA_EXT_DATA)
-          {
-            append_extn_extradata(p_extra, p_extn_user[i]);
+                    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) {
+                p_extn_user[extn_user_data_cnt] = p_extra;
+                extn_user_data_cnt++;
+            }
+
+            print_debug_extradata(p_extra);
             p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
-          }
-          else if (p_extn_user[i]->eType == VDEC_EXTRADATA_USER_DATA)
-          {
-            append_user_extradata(p_extra, p_extn_user[i]);
-            p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
-          }
+
+            if ((OMX_U8*)p_extra > (meta_buffer_virtual + drv_ctx.op_buf.meta_buffer_size) ||
+                    p_extra->nDataSize == 0 || p_extra->nSize == 0)
+                p_extra = NULL;
         }
-      }
+
+        if (!(client_extradata & VDEC_EXTRADATA_MB_ERROR_MAP)) {
+            //moving p_extra to the starting location of the metadata buffer
+            p_extra = (OMX_OTHER_EXTRADATATYPE *)meta_buffer_virtual;
+            // Driver extradata is only exposed if MB map is requested by client,
+            // otherwise can be overwritten by omx extradata.
+            p_buf_hdr->nFlags &= ~OMX_BUFFERFLAG_EXTRADATA;
+        }
     }
+
+    if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264) {
+        if (client_extradata & OMX_TIMEINFO_EXTRADATA) {
+            if (p_vui)
+                h264_parser->parse_nal((OMX_U8*)p_vui->data, p_vui->nDataSize, NALU_TYPE_VUI, false);
+
+            if (p_sei)
+                h264_parser->parse_nal((OMX_U8*)p_sei->data, p_sei->nDataSize, NALU_TYPE_SEI);
+
+            ts_in_sei = h264_parser->process_ts_with_sei_vui(p_buf_hdr->nTimeStamp);
+
+            if (!VALID_TS(p_buf_hdr->nTimeStamp))
+                p_buf_hdr->nTimeStamp = ts_in_sei;
+        } else if ((client_extradata & OMX_FRAMEINFO_EXTRADATA) && p_sei)
+            // If timeinfo is present frame info from SEI is already processed
+            h264_parser->parse_nal((OMX_U8*)p_sei->data, p_sei->nDataSize, NALU_TYPE_SEI);
+    }
+
+    if (client_extradata & OMX_EXTNUSER_EXTRADATA && p_extra) {
+        p_buf_hdr->nFlags |= OMX_BUFFERFLAG_EXTRADATA;
+
+        for (int i = 0; i < extn_user_data_cnt; i++) {
+            if (((OMX_U8*)p_extra + p_extn_user[i]->nSize) <
+                    (meta_buffer_virtual + drv_ctx.op_buf.meta_buffer_size)) {
+                if (p_extn_user[i]->eType == VDEC_EXTRADATA_EXT_DATA) {
+                    append_extn_extradata(p_extra, p_extn_user[i]);
+                    p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+                } else if (p_extn_user[i]->eType == VDEC_EXTRADATA_USER_DATA) {
+                    append_user_extradata(p_extra, p_extn_user[i]);
+                    p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+                }
+            }
+        }
+    }
+
     if ((client_extradata & OMX_INTERLACE_EXTRADATA) && p_extra &&
-        ((OMX_U8*)p_extra + OMX_INTERLACE_EXTRADATA_SIZE) <
-         (meta_buffer_virtual + drv_ctx.op_buf.meta_buffer_size))
-    {
-      p_buf_hdr->nFlags |= OMX_BUFFERFLAG_EXTRADATA;
-      append_interlace_extradata(p_extra,
-             ((struct vdec_output_frameinfo *)p_buf_hdr->pOutputPortPrivate)->interlaced_format, index);
-      p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+            ((OMX_U8*)p_extra + OMX_INTERLACE_EXTRADATA_SIZE) <
+            (meta_buffer_virtual + drv_ctx.op_buf.meta_buffer_size)) {
+        p_buf_hdr->nFlags |= OMX_BUFFERFLAG_EXTRADATA;
+        append_interlace_extradata(p_extra,
+                ((struct vdec_output_frameinfo *)p_buf_hdr->pOutputPortPrivate)->interlaced_format, index);
+        p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
     }
+
     if (client_extradata & OMX_FRAMEINFO_EXTRADATA && p_extra &&
-         ((OMX_U8*)p_extra + OMX_FRAMEINFO_EXTRADATA_SIZE) <
-         (meta_buffer_virtual + drv_ctx.op_buf.meta_buffer_size))
-    {
-      p_buf_hdr->nFlags |= OMX_BUFFERFLAG_EXTRADATA;
-      /* vui extra data (frame_rate) information */
-      if (h264_parser)
-        h264_parser->get_frame_rate(&frame_rate);
-      append_frame_info_extradata(p_extra, num_conceal_MB,
-          ((struct vdec_output_frameinfo *)p_buf_hdr->pOutputPortPrivate)->pic_type,
-          p_buf_hdr->nTimeStamp, frame_rate,
-          &((struct vdec_output_frameinfo *)
-            p_buf_hdr->pOutputPortPrivate)->aspect_ratio_info);
-      p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+            ((OMX_U8*)p_extra + OMX_FRAMEINFO_EXTRADATA_SIZE) <
+            (meta_buffer_virtual + drv_ctx.op_buf.meta_buffer_size)) {
+        p_buf_hdr->nFlags |= OMX_BUFFERFLAG_EXTRADATA;
+
+        /* vui extra data (frame_rate) information */
+        if (h264_parser)
+            h264_parser->get_frame_rate(&frame_rate);
+
+        append_frame_info_extradata(p_extra, num_conceal_MB,
+                ((struct vdec_output_frameinfo *)p_buf_hdr->pOutputPortPrivate)->pic_type,
+                p_buf_hdr->nTimeStamp, frame_rate,
+                &((struct vdec_output_frameinfo *)
+                    p_buf_hdr->pOutputPortPrivate)->aspect_ratio_info);
+        p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
     }
+
     if ((client_extradata & OMX_PORTDEF_EXTRADATA) &&
-         p_extra != NULL &&
-        ((OMX_U8*)p_extra + OMX_PORTDEF_EXTRADATA_SIZE) <
-         (meta_buffer_virtual + drv_ctx.op_buf.meta_buffer_size))
-    {
-      p_buf_hdr->nFlags |= OMX_BUFFERFLAG_EXTRADATA;
-      append_portdef_extradata(p_extra);
-      p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+            p_extra != NULL &&
+            ((OMX_U8*)p_extra + OMX_PORTDEF_EXTRADATA_SIZE) <
+            (meta_buffer_virtual + drv_ctx.op_buf.meta_buffer_size)) {
+        p_buf_hdr->nFlags |= OMX_BUFFERFLAG_EXTRADATA;
+        append_portdef_extradata(p_extra);
+        p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
     }
+
     if (p_buf_hdr->nFlags & OMX_BUFFERFLAG_EXTRADATA)
-      if (p_extra &&
-        ((OMX_U8*)p_extra + OMX_FRAMEINFO_EXTRADATA_SIZE) <
-          (meta_buffer_virtual + drv_ctx.op_buf.meta_buffer_size))
-        append_terminator_extradata(p_extra);
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: Terminator extradata cannot be added");
-        p_buf_hdr->nFlags &= ~OMX_BUFFERFLAG_EXTRADATA;
-      }
+        if (p_extra &&
+                ((OMX_U8*)p_extra + OMX_FRAMEINFO_EXTRADATA_SIZE) <
+                (meta_buffer_virtual + drv_ctx.op_buf.meta_buffer_size))
+            append_terminator_extradata(p_extra);
+        else {
+            DEBUG_PRINT_ERROR("ERROR: Terminator extradata cannot be added");
+            p_buf_hdr->nFlags &= ~OMX_BUFFERFLAG_EXTRADATA;
+        }
 }
 
 void omx_vdec::handle_extradata(OMX_BUFFERHEADERTYPE *p_buf_hdr)
 {
-  OMX_OTHER_EXTRADATATYPE *p_extra = NULL, *p_sei = NULL, *p_vui = NULL, *p_extn_user[32];
-  OMX_U32 num_conceal_MB = 0;
-  OMX_S64 ts_in_sei = 0;
-  OMX_U32 frame_rate = 0;
-  OMX_U32 extn_user_data_cnt = 0;
+    OMX_OTHER_EXTRADATATYPE *p_extra = NULL, *p_sei = NULL, *p_vui = NULL, *p_extn_user[32];
+    OMX_U32 num_conceal_MB = 0;
+    OMX_S64 ts_in_sei = 0;
+    OMX_U32 frame_rate = 0;
+    OMX_U32 extn_user_data_cnt = 0;
 
-  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 +
+    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));
-  if ((OMX_U8*)p_extra > (pBuffer + p_buf_hdr->nAllocLen))
-    p_extra = NULL;
-  if (drv_ctx.extradata && (p_buf_hdr->nFlags & OMX_BUFFERFLAG_EXTRADATA))
-  {
-    // Process driver extradata
-    while(p_extra && p_extra->eType != VDEC_EXTRADATA_NONE)
-    {
-      DEBUG_PRINT_LOW("handle_extradata : pBuf(%p) BufTS(%lld) Type(%x) DataSz(%u)",
-           p_buf_hdr, p_buf_hdr->nTimeStamp, p_extra->eType, p_extra->nDataSize);
-      if (p_extra->nSize < p_extra->nDataSize)
-      {
-        DEBUG_PRINT_ERROR(" \n Corrupt metadata Buffer size %d payload size %d",
-                          p_extra->nSize, p_extra->nDataSize);
-        p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
-        if ((OMX_U8*)p_extra > (pBuffer + p_buf_hdr->nAllocLen) ||
-            p_extra->nDataSize == 0 || p_extra->nSize == 0)
-          p_extra = NULL;
-          continue;
-      }
-      if (p_extra->eType == VDEC_EXTRADATA_MB_ERROR_MAP)
-      {
-        if (client_extradata & OMX_FRAMEINFO_EXTRADATA)
-          num_conceal_MB = count_MB_in_extradata(p_extra);
-        if (client_extradata & VDEC_EXTRADATA_MB_ERROR_MAP)
-          // Map driver extradata to corresponding OMX type
-          p_extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataConcealMB;
-        else
-          p_extra->eType = OMX_ExtraDataMax; // Invalid type to avoid expose this extradata to OMX client
-#ifdef _ANDROID_
-        if (m_debug_concealedmb) {
-            DEBUG_PRINT_HIGH("Concealed MB percentage is %u", num_conceal_MB);
-        }
-#endif /* _ANDROID_ */
-      }
-      else if (p_extra->eType == VDEC_EXTRADATA_SEI)
-      {
-        p_sei = p_extra;
-#ifdef MAX_RES_1080P
-        h264_parser->parse_nal((OMX_U8*)p_sei->data, p_sei->nDataSize, NALU_TYPE_SEI);
-#endif
-        p_extra->eType = OMX_ExtraDataMax; // Invalid type to avoid expose this extradata to OMX client
-      }
-      else if (p_extra->eType == VDEC_EXTRADATA_VUI)
-      {
-        p_vui = p_extra;
-#ifdef MAX_RES_1080P
-        h264_parser->parse_nal((OMX_U8*)p_vui->data, p_vui->nDataSize, NALU_TYPE_VUI, false);
-#endif
-        p_extra->eType = OMX_ExtraDataMax; // Invalid type to avoid expose this extradata to OMX client
-      }
-      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)
-      {
-        p_extn_user[extn_user_data_cnt] = p_extra;
-        extn_user_data_cnt++;
-      }
-      print_debug_extradata(p_extra);
-      p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
-      if ((OMX_U8*)p_extra > (pBuffer + p_buf_hdr->nAllocLen) ||
-          p_extra->nDataSize == 0 || p_extra->nSize == 0)
+
+    if ((OMX_U8*)p_extra > (pBuffer + p_buf_hdr->nAllocLen))
         p_extra = NULL;
+
+    if (drv_ctx.extradata && (p_buf_hdr->nFlags & OMX_BUFFERFLAG_EXTRADATA)) {
+        // Process driver extradata
+        while (p_extra && p_extra->eType != VDEC_EXTRADATA_NONE) {
+            DEBUG_PRINT_LOW("handle_extradata : pBuf(%p) BufTS(%lld) Type(%x) DataSz(%u)",
+                    p_buf_hdr, p_buf_hdr->nTimeStamp, p_extra->eType, p_extra->nDataSize);
+
+            if (p_extra->nSize < p_extra->nDataSize) {
+                DEBUG_PRINT_ERROR(" \n Corrupt metadata Buffer size %d payload size %d",
+                        p_extra->nSize, p_extra->nDataSize);
+                p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+
+                if ((OMX_U8*)p_extra > (pBuffer + p_buf_hdr->nAllocLen) ||
+                        p_extra->nDataSize == 0 || p_extra->nSize == 0)
+                    p_extra = NULL;
+
+                continue;
+            }
+
+            if (p_extra->eType == VDEC_EXTRADATA_MB_ERROR_MAP) {
+                if (client_extradata & OMX_FRAMEINFO_EXTRADATA)
+                    num_conceal_MB = count_MB_in_extradata(p_extra);
+
+                if (client_extradata & VDEC_EXTRADATA_MB_ERROR_MAP)
+                    // Map driver extradata to corresponding OMX type
+                    p_extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataConcealMB;
+                else
+                    p_extra->eType = OMX_ExtraDataMax; // Invalid type to avoid expose this extradata to OMX client
+
+#ifdef _ANDROID_
+
+                if (m_debug_concealedmb) {
+                    DEBUG_PRINT_HIGH("Concealed MB percentage is %u", num_conceal_MB);
+                }
+
+#endif /* _ANDROID_ */
+            } else if (p_extra->eType == VDEC_EXTRADATA_SEI) {
+                p_sei = p_extra;
+#ifdef MAX_RES_1080P
+                h264_parser->parse_nal((OMX_U8*)p_sei->data, p_sei->nDataSize, NALU_TYPE_SEI);
+#endif
+                p_extra->eType = OMX_ExtraDataMax; // Invalid type to avoid expose this extradata to OMX client
+            } else if (p_extra->eType == VDEC_EXTRADATA_VUI) {
+                p_vui = p_extra;
+#ifdef MAX_RES_1080P
+                h264_parser->parse_nal((OMX_U8*)p_vui->data, p_vui->nDataSize, NALU_TYPE_VUI, false);
+#endif
+                p_extra->eType = OMX_ExtraDataMax; // Invalid type to avoid expose this extradata to OMX client
+            } 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) {
+                p_extn_user[extn_user_data_cnt] = p_extra;
+                extn_user_data_cnt++;
+            }
+
+            print_debug_extradata(p_extra);
+            p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+
+            if ((OMX_U8*)p_extra > (pBuffer + p_buf_hdr->nAllocLen) ||
+                    p_extra->nDataSize == 0 || p_extra->nSize == 0)
+                p_extra = NULL;
+        }
+
+        if (!(client_extradata & VDEC_EXTRADATA_MB_ERROR_MAP)) {
+            // Driver extradata is only exposed if MB map is requested by client,
+            // otherwise can be overwritten by omx extradata.
+            p_extra = (OMX_OTHER_EXTRADATATYPE *)
+                ((unsigned)(pBuffer + p_buf_hdr->nOffset +
+                    p_buf_hdr->nFilledLen + 3)&(~3));
+            p_buf_hdr->nFlags &= ~OMX_BUFFERFLAG_EXTRADATA;
+        }
     }
-    if (!(client_extradata & VDEC_EXTRADATA_MB_ERROR_MAP))
-    {
-      // Driver extradata is only exposed if MB map is requested by client,
-      // otherwise can be overwritten by omx extradata.
-      p_extra = (OMX_OTHER_EXTRADATATYPE *)
-               ((unsigned)(pBuffer + p_buf_hdr->nOffset +
-                p_buf_hdr->nFilledLen + 3)&(~3));
-      p_buf_hdr->nFlags &= ~OMX_BUFFERFLAG_EXTRADATA;
-    }
-  }
 
 #ifdef PROCESS_EXTRADATA_IN_OUTPUT_PORT
-  if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264)
-  {
-    if (client_extradata & OMX_TIMEINFO_EXTRADATA)
-    {
-      if (p_vui)
-        h264_parser->parse_nal((OMX_U8*)p_vui->data, p_vui->nDataSize, NALU_TYPE_VUI, false);
-      if (p_sei)
-        h264_parser->parse_nal((OMX_U8*)p_sei->data, p_sei->nDataSize, NALU_TYPE_SEI);
-      ts_in_sei = h264_parser->process_ts_with_sei_vui(p_buf_hdr->nTimeStamp);
-      if (!VALID_TS(p_buf_hdr->nTimeStamp))
-        p_buf_hdr->nTimeStamp = ts_in_sei;
+
+    if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264) {
+        if (client_extradata & OMX_TIMEINFO_EXTRADATA) {
+            if (p_vui)
+                h264_parser->parse_nal((OMX_U8*)p_vui->data, p_vui->nDataSize, NALU_TYPE_VUI, false);
+
+            if (p_sei)
+                h264_parser->parse_nal((OMX_U8*)p_sei->data, p_sei->nDataSize, NALU_TYPE_SEI);
+
+            ts_in_sei = h264_parser->process_ts_with_sei_vui(p_buf_hdr->nTimeStamp);
+
+            if (!VALID_TS(p_buf_hdr->nTimeStamp))
+                p_buf_hdr->nTimeStamp = ts_in_sei;
+        } else if ((client_extradata & OMX_FRAMEINFO_EXTRADATA) && p_sei)
+            // If timeinfo is present frame info from SEI is already processed
+            h264_parser->parse_nal((OMX_U8*)p_sei->data, p_sei->nDataSize, NALU_TYPE_SEI);
     }
-    else if ((client_extradata & OMX_FRAMEINFO_EXTRADATA) && p_sei)
-      // If timeinfo is present frame info from SEI is already processed
-      h264_parser->parse_nal((OMX_U8*)p_sei->data, p_sei->nDataSize, NALU_TYPE_SEI);
-  }
+
 #endif
-  if (client_extradata & OMX_EXTNUSER_EXTRADATA && p_extra)
-  {
-    p_buf_hdr->nFlags |= OMX_BUFFERFLAG_EXTRADATA;
-    for(int i = 0; i < extn_user_data_cnt; i++)
-    {
-      if (((OMX_U8*)p_extra + p_extn_user[i]->nSize) <
-                        (pBuffer + p_buf_hdr->nAllocLen))
-      {
-        if (p_extn_user[i]->eType == VDEC_EXTRADATA_EXT_DATA)
-        {
-          append_extn_extradata(p_extra, p_extn_user[i]);
-          p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+
+    if (client_extradata & OMX_EXTNUSER_EXTRADATA && p_extra) {
+        p_buf_hdr->nFlags |= OMX_BUFFERFLAG_EXTRADATA;
+
+        for (int i = 0; i < extn_user_data_cnt; i++) {
+            if (((OMX_U8*)p_extra + p_extn_user[i]->nSize) <
+                    (pBuffer + p_buf_hdr->nAllocLen)) {
+                if (p_extn_user[i]->eType == VDEC_EXTRADATA_EXT_DATA) {
+                    append_extn_extradata(p_extra, p_extn_user[i]);
+                    p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+                } else if (p_extn_user[i]->eType == VDEC_EXTRADATA_USER_DATA) {
+                    append_user_extradata(p_extra, p_extn_user[i]);
+                    p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+                }
+            }
         }
-        else if (p_extn_user[i]->eType == VDEC_EXTRADATA_USER_DATA)
-        {
-          append_user_extradata(p_extra, p_extn_user[i]);
-          p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+    }
+
+    if ((client_extradata & OMX_INTERLACE_EXTRADATA) && p_extra &&
+            ((OMX_U8*)p_extra + OMX_INTERLACE_EXTRADATA_SIZE) <
+            (pBuffer + p_buf_hdr->nAllocLen)) {
+        p_buf_hdr->nFlags |= OMX_BUFFERFLAG_EXTRADATA;
+        append_interlace_extradata(p_extra,
+                ((struct vdec_output_frameinfo *)p_buf_hdr->pOutputPortPrivate)->interlaced_format, index);
+        p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+    }
+
+    if (client_extradata & OMX_FRAMEINFO_EXTRADATA && p_extra &&
+            ((OMX_U8*)p_extra + OMX_FRAMEINFO_EXTRADATA_SIZE) <
+            (pBuffer + p_buf_hdr->nAllocLen)) {
+        p_buf_hdr->nFlags |= OMX_BUFFERFLAG_EXTRADATA;
+
+        /* vui extra data (frame_rate) information */
+        if (h264_parser)
+            h264_parser->get_frame_rate(&frame_rate);
+
+        append_frame_info_extradata(p_extra, num_conceal_MB,
+                ((struct vdec_output_frameinfo *)p_buf_hdr->pOutputPortPrivate)->pic_type,
+                p_buf_hdr->nTimeStamp, frame_rate,
+                &((struct vdec_output_frameinfo *)
+                    p_buf_hdr->pOutputPortPrivate)->aspect_ratio_info);
+        p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+    }
+
+    if ((client_extradata & OMX_PORTDEF_EXTRADATA) &&
+            p_extra != NULL &&
+            ((OMX_U8*)p_extra + OMX_PORTDEF_EXTRADATA_SIZE) <
+            (pBuffer + p_buf_hdr->nAllocLen)) {
+        p_buf_hdr->nFlags |= OMX_BUFFERFLAG_EXTRADATA;
+        append_portdef_extradata(p_extra);
+        p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+    }
+
+    if (p_buf_hdr->nFlags & OMX_BUFFERFLAG_EXTRADATA)
+        if (p_extra &&
+                ((OMX_U8*)p_extra + OMX_FRAMEINFO_EXTRADATA_SIZE) <
+                (pBuffer + p_buf_hdr->nAllocLen))
+            append_terminator_extradata(p_extra);
+        else {
+            DEBUG_PRINT_ERROR("ERROR: Terminator extradata cannot be added");
+            p_buf_hdr->nFlags &= ~OMX_BUFFERFLAG_EXTRADATA;
         }
-      }
-    }
-  }
-  if ((client_extradata & OMX_INTERLACE_EXTRADATA) && p_extra &&
-      ((OMX_U8*)p_extra + OMX_INTERLACE_EXTRADATA_SIZE) <
-       (pBuffer + p_buf_hdr->nAllocLen))
-  {
-    p_buf_hdr->nFlags |= OMX_BUFFERFLAG_EXTRADATA;
-    append_interlace_extradata(p_extra,
-         ((struct vdec_output_frameinfo *)p_buf_hdr->pOutputPortPrivate)->interlaced_format, index);
-    p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
-  }
-  if (client_extradata & OMX_FRAMEINFO_EXTRADATA && p_extra &&
-      ((OMX_U8*)p_extra + OMX_FRAMEINFO_EXTRADATA_SIZE) <
-       (pBuffer + p_buf_hdr->nAllocLen))
-  {
-    p_buf_hdr->nFlags |= OMX_BUFFERFLAG_EXTRADATA;
-    /* vui extra data (frame_rate) information */
-    if (h264_parser)
-        h264_parser->get_frame_rate(&frame_rate);
-    append_frame_info_extradata(p_extra, num_conceal_MB,
-        ((struct vdec_output_frameinfo *)p_buf_hdr->pOutputPortPrivate)->pic_type,
-        p_buf_hdr->nTimeStamp, frame_rate,
-        &((struct vdec_output_frameinfo *)
-          p_buf_hdr->pOutputPortPrivate)->aspect_ratio_info);
-    p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
-  }
-  if ((client_extradata & OMX_PORTDEF_EXTRADATA) &&
-       p_extra != NULL &&
-      ((OMX_U8*)p_extra + OMX_PORTDEF_EXTRADATA_SIZE) <
-       (pBuffer + p_buf_hdr->nAllocLen))
-  {
-    p_buf_hdr->nFlags |= OMX_BUFFERFLAG_EXTRADATA;
-    append_portdef_extradata(p_extra);
-    p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
-  }
-  if (p_buf_hdr->nFlags & OMX_BUFFERFLAG_EXTRADATA)
-    if (p_extra &&
-      ((OMX_U8*)p_extra + OMX_FRAMEINFO_EXTRADATA_SIZE) <
-        (pBuffer + p_buf_hdr->nAllocLen))
-      append_terminator_extradata(p_extra);
-    else
-    {
-      DEBUG_PRINT_ERROR("ERROR: Terminator extradata cannot be added");
-      p_buf_hdr->nFlags &= ~OMX_BUFFERFLAG_EXTRADATA;
-    }
 }
 
 OMX_ERRORTYPE omx_vdec::enable_extradata(OMX_U32 requested_extradata, bool enable)
 {
-  OMX_ERRORTYPE ret = OMX_ErrorNone;
-  OMX_U32 driver_extradata = 0, extradata_size = 0;
-  struct vdec_ioctl_msg ioctl_msg = {NULL, NULL};
-  if(m_state != OMX_StateLoaded)
-  {
-     DEBUG_PRINT_ERROR("ERROR: enable extradata allowed in Loaded state only");
-     return OMX_ErrorIncorrectStateOperation;
-  }
-  if (requested_extradata & OMX_FRAMEINFO_EXTRADATA)
-    extradata_size += OMX_FRAMEINFO_EXTRADATA_SIZE;
-  if (requested_extradata & OMX_INTERLACE_EXTRADATA)
-    extradata_size += OMX_INTERLACE_EXTRADATA_SIZE;
-  if (requested_extradata & OMX_PORTDEF_EXTRADATA)
-  {
-    extradata_size += OMX_PORTDEF_EXTRADATA_SIZE;
-  }
-  DEBUG_PRINT_ERROR("enable_extradata: actual[%x] requested[%x] enable[%d]",
-    client_extradata, requested_extradata, enable);
+    OMX_ERRORTYPE ret = OMX_ErrorNone;
+    OMX_U32 driver_extradata = 0, extradata_size = 0;
+    struct vdec_ioctl_msg ioctl_msg = {NULL, NULL};
 
-  if (enable)
-    requested_extradata |= client_extradata;
-  else
-  {
-    requested_extradata = client_extradata & ~requested_extradata;
-    extradata_size *= -1;
-  }
+    if (m_state != OMX_StateLoaded) {
+        DEBUG_PRINT_ERROR("ERROR: enable extradata allowed in Loaded state only");
+        return OMX_ErrorIncorrectStateOperation;
+    }
 
-  driver_extradata = requested_extradata & DRIVER_EXTRADATA_MASK;
+    if (requested_extradata & OMX_FRAMEINFO_EXTRADATA)
+        extradata_size += OMX_FRAMEINFO_EXTRADATA_SIZE;
 
-  if(secure_mode)
-    driver_extradata = driver_extradata | VDEC_EXTRADATA_EXT_BUFFER;
+    if (requested_extradata & OMX_INTERLACE_EXTRADATA)
+        extradata_size += OMX_INTERLACE_EXTRADATA_SIZE;
 
-  if (requested_extradata & OMX_FRAMEINFO_EXTRADATA)
-    driver_extradata |= VDEC_EXTRADATA_MB_ERROR_MAP; // Required for conceal MB frame info
-  if (drv_ctx.decoder_format == VDEC_CODECTYPE_MPEG2)
-  {
-    driver_extradata |= ((requested_extradata & OMX_EXTNUSER_EXTRADATA)?
-                          VDEC_EXTRADATA_EXT_DATA | VDEC_EXTRADATA_USER_DATA : 0);
-  }
+    if (requested_extradata & OMX_PORTDEF_EXTRADATA) {
+        extradata_size += OMX_PORTDEF_EXTRADATA_SIZE;
+    }
+
+    DEBUG_PRINT_ERROR("enable_extradata: actual[%x] requested[%x] enable[%d]",
+            client_extradata, requested_extradata, enable);
+
+    if (enable)
+        requested_extradata |= client_extradata;
+    else {
+        requested_extradata = client_extradata & ~requested_extradata;
+        extradata_size *= -1;
+    }
+
+    driver_extradata = requested_extradata & DRIVER_EXTRADATA_MASK;
+
+    if (secure_mode)
+        driver_extradata = driver_extradata | VDEC_EXTRADATA_EXT_BUFFER;
+
+    if (requested_extradata & OMX_FRAMEINFO_EXTRADATA)
+        driver_extradata |= VDEC_EXTRADATA_MB_ERROR_MAP; // Required for conceal MB frame info
+
+    if (drv_ctx.decoder_format == VDEC_CODECTYPE_MPEG2) {
+        driver_extradata |= ((requested_extradata & OMX_EXTNUSER_EXTRADATA)?
+                VDEC_EXTRADATA_EXT_DATA | VDEC_EXTRADATA_USER_DATA : 0);
+    }
+
 #ifdef PROCESS_EXTRADATA_IN_OUTPUT_PORT
-  if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264)
-  {
-    driver_extradata |= ((requested_extradata & OMX_FRAMEINFO_EXTRADATA)?
-                          VDEC_EXTRADATA_SEI : 0); // Required for pan scan frame info
-    driver_extradata |= ((requested_extradata & OMX_TIMEINFO_EXTRADATA)?
-                          VDEC_EXTRADATA_VUI | VDEC_EXTRADATA_SEI : 0); //Required for time info
-  }
+
+    if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264) {
+        driver_extradata |= ((requested_extradata & OMX_FRAMEINFO_EXTRADATA)?
+                VDEC_EXTRADATA_SEI : 0); // Required for pan scan frame info
+        driver_extradata |= ((requested_extradata & OMX_TIMEINFO_EXTRADATA)?
+                VDEC_EXTRADATA_VUI | VDEC_EXTRADATA_SEI : 0); //Required for time info
+    }
 
 #endif
-  if (driver_extradata != drv_ctx.extradata)
-  {
-    client_extradata = requested_extradata;
-    drv_ctx.extradata = driver_extradata;
-    ioctl_msg.in = &drv_ctx.extradata;
-    ioctl_msg.out = NULL;
-    if (ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_SET_EXTRADATA,
-        (void*)&ioctl_msg) < 0)
-    {
-        DEBUG_PRINT_ERROR("\nSet extradata failed");
-        ret = OMX_ErrorUnsupportedSetting;
+
+    if (driver_extradata != drv_ctx.extradata) {
+        client_extradata = requested_extradata;
+        drv_ctx.extradata = driver_extradata;
+        ioctl_msg.in = &drv_ctx.extradata;
+        ioctl_msg.out = NULL;
+
+        if (ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_SET_EXTRADATA,
+                    (void*)&ioctl_msg) < 0) {
+            DEBUG_PRINT_ERROR("\nSet extradata failed");
+            ret = OMX_ErrorUnsupportedSetting;
+        } else
+            ret = get_buffer_req(&drv_ctx.op_buf);
+    } else if ((client_extradata & ~DRIVER_EXTRADATA_MASK) != (requested_extradata & ~DRIVER_EXTRADATA_MASK)) {
+        client_extradata = requested_extradata;
+        drv_ctx.op_buf.buffer_size += extradata_size;
+        // align the buffer size
+        drv_ctx.op_buf.buffer_size = (drv_ctx.op_buf.buffer_size + drv_ctx.op_buf.alignment - 1)&(~(drv_ctx.op_buf.alignment - 1));
+        DEBUG_PRINT_LOW("Aligned buffer size with exreadata = %d", drv_ctx.op_buf.buffer_size);
+
+        if (!(client_extradata & ~DRIVER_EXTRADATA_MASK)) // If no omx extradata is required remove space for terminator
+            drv_ctx.op_buf.buffer_size -= sizeof(OMX_OTHER_EXTRADATATYPE);
+
+        ret = set_buffer_req(&drv_ctx.op_buf);
     }
-    else
-      ret = get_buffer_req(&drv_ctx.op_buf);
-  }
-  else if ((client_extradata & ~DRIVER_EXTRADATA_MASK) != (requested_extradata & ~DRIVER_EXTRADATA_MASK))
-  {
-    client_extradata = requested_extradata;
-    drv_ctx.op_buf.buffer_size += extradata_size;
-    // align the buffer size
-    drv_ctx.op_buf.buffer_size = (drv_ctx.op_buf.buffer_size + drv_ctx.op_buf.alignment - 1)&(~(drv_ctx.op_buf.alignment - 1));
-    DEBUG_PRINT_LOW("Aligned buffer size with exreadata = %d", drv_ctx.op_buf.buffer_size);
-    if (!(client_extradata & ~DRIVER_EXTRADATA_MASK)) // If no omx extradata is required remove space for terminator
-      drv_ctx.op_buf.buffer_size -= sizeof(OMX_OTHER_EXTRADATATYPE);
-    ret = set_buffer_req(&drv_ctx.op_buf);
-  }
-  return ret;
+
+    return ret;
 }
 
 OMX_U32 omx_vdec::count_MB_in_extradata(OMX_OTHER_EXTRADATATYPE *extra)
 {
-  OMX_U32 num_MB = 0, byte_count = 0, num_MB_in_frame = 0;
-  OMX_U8 *data_ptr = extra->data, data = 0;
-  while (byte_count < extra->nDataSize)
-  {
-    data = *data_ptr;
-    while (data)
-    {
-      num_MB += (data&0x01);
-      data >>= 1;
+    OMX_U32 num_MB = 0, byte_count = 0, num_MB_in_frame = 0;
+    OMX_U8 *data_ptr = extra->data, data = 0;
+
+    while (byte_count < extra->nDataSize) {
+        data = *data_ptr;
+
+        while (data) {
+            num_MB += (data&0x01);
+            data >>= 1;
+        }
+
+        data_ptr++;
+        byte_count++;
     }
-    data_ptr++;
-    byte_count++;
-  }
-  num_MB_in_frame = ((drv_ctx.video_resolution.frame_width + 15) *
-                     (drv_ctx.video_resolution.frame_height + 15)) >> 8;
-  return ((num_MB_in_frame > 0)?(num_MB * 100 / num_MB_in_frame) : 0);
+
+    num_MB_in_frame = ((drv_ctx.video_resolution.frame_width + 15) *
+            (drv_ctx.video_resolution.frame_height + 15)) >> 8;
+    return ((num_MB_in_frame > 0)?(num_MB * 100 / num_MB_in_frame) : 0);
 }
 
 void omx_vdec::print_debug_extradata(OMX_OTHER_EXTRADATATYPE *extra)
 {
 #ifdef _ANDROID_
-  if (!m_debug_extradata)
-     return;
 
-  DEBUG_PRINT_HIGH(
-    "============== Extra Data ==============\n"
-    "           Size: %u \n"
-    "        Version: %u \n"
-    "      PortIndex: %u \n"
-    "           Type: %x \n"
-    "       DataSize: %u \n",
-    extra->nSize, extra->nVersion.nVersion,
-    extra->nPortIndex, extra->eType, extra->nDataSize);
-
-  if (extra->eType == OMX_ExtraDataInterlaceFormat)
-  {
-    OMX_STREAMINTERLACEFORMAT *intfmt = (OMX_STREAMINTERLACEFORMAT *)extra->data;
-    DEBUG_PRINT_HIGH(
-      "------ Interlace Format ------\n"
-      "                Size: %u \n"
-      "             Version: %u \n"
-      "           PortIndex: %u \n"
-      " Is Interlace Format: %u \n"
-      "   Interlace Formats: %u \n"
-      "=========== End of Interlace ===========\n",
-      intfmt->nSize, intfmt->nVersion.nVersion, intfmt->nPortIndex,
-      intfmt->bInterlaceFormat, intfmt->nInterlaceFormats);
-  }
-  else if (extra->eType == OMX_ExtraDataFrameInfo)
-  {
-    OMX_QCOM_EXTRADATA_FRAMEINFO *fminfo = (OMX_QCOM_EXTRADATA_FRAMEINFO *)extra->data;
+    if (!m_debug_extradata)
+        return;
 
     DEBUG_PRINT_HIGH(
-      "-------- Frame Format --------\n"
-      "             Picture Type: %u \n"
-      "           Interlace Type: %u \n"
-      " Pan Scan Total Frame Num: %u \n"
-      "   Concealed Macro Blocks: %u \n"
-      "               frame rate: %u \n"
-      "           Aspect Ratio X: %u \n"
-      "           Aspect Ratio Y: %u \n",
-      fminfo->ePicType,
-      fminfo->interlaceType,
-      fminfo->panScan.numWindows,
-      fminfo->nConcealedMacroblocks,
-      fminfo->nFrameRate,
-      fminfo->aspectRatio.aspectRatioX,
-      fminfo->aspectRatio.aspectRatioY);
+            "============== Extra Data ==============\n"
+            "           Size: %u \n"
+            "        Version: %u \n"
+            "      PortIndex: %u \n"
+            "           Type: %x \n"
+            "       DataSize: %u \n",
+            extra->nSize, extra->nVersion.nVersion,
+            extra->nPortIndex, extra->eType, extra->nDataSize);
 
-    for (int i = 0; i < fminfo->panScan.numWindows; i++)
-    {
-      DEBUG_PRINT_HIGH(
-        "------------------------------\n"
-        "     Pan Scan Frame Num: %d \n"
-        "            Rectangle x: %d \n"
-        "            Rectangle y: %d \n"
-        "           Rectangle dx: %d \n"
-        "           Rectangle dy: %d \n",
-        i, fminfo->panScan.window[i].x, fminfo->panScan.window[i].y,
-        fminfo->panScan.window[i].dx, fminfo->panScan.window[i].dy);
+    if (extra->eType == OMX_ExtraDataInterlaceFormat) {
+        OMX_STREAMINTERLACEFORMAT *intfmt = (OMX_STREAMINTERLACEFORMAT *)extra->data;
+        DEBUG_PRINT_HIGH(
+                "------ Interlace Format ------\n"
+                "                Size: %u \n"
+                "             Version: %u \n"
+                "           PortIndex: %u \n"
+                " Is Interlace Format: %u \n"
+                "   Interlace Formats: %u \n"
+                "=========== End of Interlace ===========\n",
+                intfmt->nSize, intfmt->nVersion.nVersion, intfmt->nPortIndex,
+                intfmt->bInterlaceFormat, intfmt->nInterlaceFormats);
+    } else if (extra->eType == OMX_ExtraDataFrameInfo) {
+        OMX_QCOM_EXTRADATA_FRAMEINFO *fminfo = (OMX_QCOM_EXTRADATA_FRAMEINFO *)extra->data;
+
+        DEBUG_PRINT_HIGH(
+                "-------- Frame Format --------\n"
+                "             Picture Type: %u \n"
+                "           Interlace Type: %u \n"
+                " Pan Scan Total Frame Num: %u \n"
+                "   Concealed Macro Blocks: %u \n"
+                "               frame rate: %u \n"
+                "           Aspect Ratio X: %u \n"
+                "           Aspect Ratio Y: %u \n",
+                fminfo->ePicType,
+                fminfo->interlaceType,
+                fminfo->panScan.numWindows,
+                fminfo->nConcealedMacroblocks,
+                fminfo->nFrameRate,
+                fminfo->aspectRatio.aspectRatioX,
+                fminfo->aspectRatio.aspectRatioY);
+
+        for (int i = 0; i < fminfo->panScan.numWindows; i++) {
+            DEBUG_PRINT_HIGH(
+                    "------------------------------\n"
+                    "     Pan Scan Frame Num: %d \n"
+                    "            Rectangle x: %d \n"
+                    "            Rectangle y: %d \n"
+                    "           Rectangle dx: %d \n"
+                    "           Rectangle dy: %d \n",
+                    i, fminfo->panScan.window[i].x, fminfo->panScan.window[i].y,
+                    fminfo->panScan.window[i].dx, fminfo->panScan.window[i].dy);
+        }
+
+        DEBUG_PRINT_HIGH("========= End of Frame Format ==========");
+    } else if (extra->eType == OMX_ExtraDataNone) {
+        DEBUG_PRINT_HIGH("========== End of Terminator ===========");
+    } else {
+        DEBUG_PRINT_HIGH("======= End of Driver Extradata ========");
     }
 
-    DEBUG_PRINT_HIGH("========= End of Frame Format ==========");
-  }
-  else if (extra->eType == OMX_ExtraDataNone)
-  {
-    DEBUG_PRINT_HIGH("========== End of Terminator ===========");
-  }
-  else
-  {
-    DEBUG_PRINT_HIGH("======= End of Driver Extradata ========");
-  }
 #endif /* _ANDROID_ */
 }
 
 void omx_vdec::append_interlace_extradata(OMX_OTHER_EXTRADATATYPE *extra,
-                                          OMX_U32 interlaced_format_type, OMX_U32 buf_index)
+        OMX_U32 interlaced_format_type, OMX_U32 buf_index)
 {
-  OMX_STREAMINTERLACEFORMAT *interlace_format;
-  OMX_U32 mbaff = 0;
+    OMX_STREAMINTERLACEFORMAT *interlace_format;
+    OMX_U32 mbaff = 0;
 #if defined(_ANDROID_ICS_)
-  OMX_U32 enable = 0;
-  private_handle_t *handle = NULL;
-  handle = (private_handle_t *)native_buffer[buf_index].nativehandle;
-  if(!handle)
-    DEBUG_PRINT_LOW("%s: Native Buffer handle is NULL",__func__);
+    OMX_U32 enable = 0;
+    private_handle_t *handle = NULL;
+    handle = (private_handle_t *)native_buffer[buf_index].nativehandle;
+
+    if (!handle)
+        DEBUG_PRINT_LOW("%s: Native Buffer handle is NULL",__func__);
+
 #endif
-  extra->nSize = OMX_INTERLACE_EXTRADATA_SIZE;
-  extra->nVersion.nVersion = OMX_SPEC_VERSION;
-  extra->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
-  extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataInterlaceFormat;
-  extra->nDataSize = sizeof(OMX_STREAMINTERLACEFORMAT);
-  interlace_format = (OMX_STREAMINTERLACEFORMAT *)extra->data;
-  interlace_format->nSize = sizeof(OMX_STREAMINTERLACEFORMAT);
-  interlace_format->nVersion.nVersion = OMX_SPEC_VERSION;
-  interlace_format->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
-  mbaff = (h264_parser)? (h264_parser->is_mbaff()): false;
-  if ((interlaced_format_type == VDEC_InterlaceFrameProgressive)  && !mbaff)
-  {
-    interlace_format->bInterlaceFormat = OMX_FALSE;
-    interlace_format->nInterlaceFormats = OMX_InterlaceFrameProgressive;
-    drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
+    extra->nSize = OMX_INTERLACE_EXTRADATA_SIZE;
+    extra->nVersion.nVersion = OMX_SPEC_VERSION;
+    extra->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
+    extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataInterlaceFormat;
+    extra->nDataSize = sizeof(OMX_STREAMINTERLACEFORMAT);
+    interlace_format = (OMX_STREAMINTERLACEFORMAT *)extra->data;
+    interlace_format->nSize = sizeof(OMX_STREAMINTERLACEFORMAT);
+    interlace_format->nVersion.nVersion = OMX_SPEC_VERSION;
+    interlace_format->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
+    mbaff = (h264_parser)? (h264_parser->is_mbaff()): false;
+
+    if ((interlaced_format_type == VDEC_InterlaceFrameProgressive)  && !mbaff) {
+        interlace_format->bInterlaceFormat = OMX_FALSE;
+        interlace_format->nInterlaceFormats = OMX_InterlaceFrameProgressive;
+        drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
 #if defined(_ANDROID_ICS_)
-    if(handle)
-    {
-      setMetaData(handle, PP_PARAM_INTERLACED, (void*)&enable);
+
+        if (handle) {
+            setMetaData(handle, PP_PARAM_INTERLACED, (void*)&enable);
+        }
+
+#endif
+    } else {
+        interlace_format->bInterlaceFormat = OMX_TRUE;
+        interlace_format->nInterlaceFormats = OMX_InterlaceInterleaveFrameTopFieldFirst;
+        drv_ctx.interlace = VDEC_InterlaceInterleaveFrameTopFieldFirst;
+#if defined(_ANDROID_ICS_)
+        enable = 1;
+
+        if (handle) {
+            setMetaData(handle, PP_PARAM_INTERLACED, (void*)&enable);
+        }
+
+#endif
     }
-#endif
-  }
-  else
-  {
-    interlace_format->bInterlaceFormat = OMX_TRUE;
-    interlace_format->nInterlaceFormats = OMX_InterlaceInterleaveFrameTopFieldFirst;
-    drv_ctx.interlace = VDEC_InterlaceInterleaveFrameTopFieldFirst;
-#if defined(_ANDROID_ICS_)
-    enable = 1;
-    if(handle)
-    {
-      setMetaData(handle, PP_PARAM_INTERLACED, (void*)&enable);
-    }
-#endif
-  }
-  print_debug_extradata(extra);
+
+    print_debug_extradata(extra);
 }
 
 void omx_vdec::append_frame_info_extradata(OMX_OTHER_EXTRADATATYPE *extra,
-    OMX_U32 num_conceal_mb, OMX_U32 picture_type, OMX_S64 timestamp,
-    OMX_U32 frame_rate, struct vdec_aspectratioinfo *aspect_ratio_info)
+        OMX_U32 num_conceal_mb, OMX_U32 picture_type, OMX_S64 timestamp,
+        OMX_U32 frame_rate, struct vdec_aspectratioinfo *aspect_ratio_info)
 {
-  OMX_QCOM_EXTRADATA_FRAMEINFO *frame_info = NULL;
-  extra->nSize = OMX_FRAMEINFO_EXTRADATA_SIZE;
-  extra->nVersion.nVersion = OMX_SPEC_VERSION;
-  extra->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
-  extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataFrameInfo;
-  extra->nDataSize = sizeof(OMX_QCOM_EXTRADATA_FRAMEINFO);
-  frame_info = (OMX_QCOM_EXTRADATA_FRAMEINFO *)extra->data;
+    OMX_QCOM_EXTRADATA_FRAMEINFO *frame_info = NULL;
+    extra->nSize = OMX_FRAMEINFO_EXTRADATA_SIZE;
+    extra->nVersion.nVersion = OMX_SPEC_VERSION;
+    extra->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
+    extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataFrameInfo;
+    extra->nDataSize = sizeof(OMX_QCOM_EXTRADATA_FRAMEINFO);
+    frame_info = (OMX_QCOM_EXTRADATA_FRAMEINFO *)extra->data;
 
-  switch (picture_type)
-  {
-    case PICTURE_TYPE_I:
-      frame_info->ePicType = OMX_VIDEO_PictureTypeI;
-    break;
-    case PICTURE_TYPE_P:
-      frame_info->ePicType = OMX_VIDEO_PictureTypeP;
-    break;
-    case PICTURE_TYPE_B:
-      frame_info->ePicType = OMX_VIDEO_PictureTypeB;
-    break;
-    default:
-       frame_info->ePicType = (OMX_VIDEO_PICTURETYPE)0;
-  }
-  if (drv_ctx.interlace == VDEC_InterlaceInterleaveFrameTopFieldFirst)
-    frame_info->interlaceType = OMX_QCOM_InterlaceInterleaveFrameTopFieldFirst;
-  else if (drv_ctx.interlace == VDEC_InterlaceInterleaveFrameBottomFieldFirst)
-    frame_info->interlaceType = OMX_QCOM_InterlaceInterleaveFrameBottomFieldFirst;
-  else
-    frame_info->interlaceType = OMX_QCOM_InterlaceFrameProgressive;
-  memset(&frame_info->panScan,0,sizeof(frame_info->panScan));
-  memset(&frame_info->aspectRatio, 0, sizeof(frame_info->aspectRatio));
-  memset(&frame_info->displayAspectRatio, 0, sizeof(frame_info->displayAspectRatio));
-  if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264)
-  {
-    h264_parser->fill_pan_scan_data(&frame_info->panScan, timestamp);
-  }
-
-  fill_aspect_ratio_info(aspect_ratio_info, frame_info);
-  if (drv_ctx.decoder_format == VDEC_CODECTYPE_MPEG2)
-  {
-    if (m_disp_hor_size && m_disp_vert_size)
-    {
-      frame_info->displayAspectRatio.displayHorizontalSize = m_disp_hor_size;
-      frame_info->displayAspectRatio.displayVerticalSize = m_disp_vert_size;
+    switch (picture_type) {
+        case PICTURE_TYPE_I:
+            frame_info->ePicType = OMX_VIDEO_PictureTypeI;
+            break;
+        case PICTURE_TYPE_P:
+            frame_info->ePicType = OMX_VIDEO_PictureTypeP;
+            break;
+        case PICTURE_TYPE_B:
+            frame_info->ePicType = OMX_VIDEO_PictureTypeB;
+            break;
+        default:
+            frame_info->ePicType = (OMX_VIDEO_PICTURETYPE)0;
     }
-  }
-  frame_info->nConcealedMacroblocks = num_conceal_mb;
-  frame_info->nFrameRate = frame_rate;
-  print_debug_extradata(extra);
+
+    if (drv_ctx.interlace == VDEC_InterlaceInterleaveFrameTopFieldFirst)
+        frame_info->interlaceType = OMX_QCOM_InterlaceInterleaveFrameTopFieldFirst;
+    else if (drv_ctx.interlace == VDEC_InterlaceInterleaveFrameBottomFieldFirst)
+        frame_info->interlaceType = OMX_QCOM_InterlaceInterleaveFrameBottomFieldFirst;
+    else
+        frame_info->interlaceType = OMX_QCOM_InterlaceFrameProgressive;
+
+    memset(&frame_info->panScan,0,sizeof(frame_info->panScan));
+    memset(&frame_info->aspectRatio, 0, sizeof(frame_info->aspectRatio));
+    memset(&frame_info->displayAspectRatio, 0, sizeof(frame_info->displayAspectRatio));
+
+    if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264) {
+        h264_parser->fill_pan_scan_data(&frame_info->panScan, timestamp);
+    }
+
+    fill_aspect_ratio_info(aspect_ratio_info, frame_info);
+
+    if (drv_ctx.decoder_format == VDEC_CODECTYPE_MPEG2) {
+        if (m_disp_hor_size && m_disp_vert_size) {
+            frame_info->displayAspectRatio.displayHorizontalSize = m_disp_hor_size;
+            frame_info->displayAspectRatio.displayVerticalSize = m_disp_vert_size;
+        }
+    }
+
+    frame_info->nConcealedMacroblocks = num_conceal_mb;
+    frame_info->nFrameRate = frame_rate;
+    print_debug_extradata(extra);
 }
 
 void omx_vdec::fill_aspect_ratio_info(
-                       struct vdec_aspectratioinfo *aspect_ratio_info,
-                       OMX_QCOM_EXTRADATA_FRAMEINFO *frame_info)
+        struct vdec_aspectratioinfo *aspect_ratio_info,
+        OMX_QCOM_EXTRADATA_FRAMEINFO *frame_info)
 {
-  m_extradata = frame_info;
-  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;
+    m_extradata = frame_info;
+
+    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 *
-                                                   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;
     }
-  }
-  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);
+
+    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)
 {
-  OMX_PARAM_PORTDEFINITIONTYPE *portDefn = NULL;
-  extra->nSize = OMX_PORTDEF_EXTRADATA_SIZE;
-  extra->nVersion.nVersion = OMX_SPEC_VERSION;
-  extra->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
-  extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataPortDef;
-  extra->nDataSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
-  portDefn = (OMX_PARAM_PORTDEFINITIONTYPE *)extra->data;
-  *portDefn = m_port_def;
-  DEBUG_PRINT_LOW("append_portdef_extradata height = %u width = %u stride = %u"
-     "sliceheight = %u",portDefn->format.video.nFrameHeight,
-     portDefn->format.video.nFrameWidth,
-     portDefn->format.video.nStride,
-     portDefn->format.video.nSliceHeight);
+    OMX_PARAM_PORTDEFINITIONTYPE *portDefn = NULL;
+    extra->nSize = OMX_PORTDEF_EXTRADATA_SIZE;
+    extra->nVersion.nVersion = OMX_SPEC_VERSION;
+    extra->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
+    extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataPortDef;
+    extra->nDataSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
+    portDefn = (OMX_PARAM_PORTDEFINITIONTYPE *)extra->data;
+    *portDefn = m_port_def;
+    DEBUG_PRINT_LOW("append_portdef_extradata height = %u width = %u stride = %u"
+            "sliceheight = %u",portDefn->format.video.nFrameHeight,
+            portDefn->format.video.nFrameWidth,
+            portDefn->format.video.nStride,
+            portDefn->format.video.nSliceHeight);
 }
 
 void omx_vdec::append_extn_extradata(OMX_OTHER_EXTRADATATYPE *extra,
-                                      OMX_OTHER_EXTRADATATYPE *p_extn)
+        OMX_OTHER_EXTRADATATYPE *p_extn)
 {
-  extra->nDataSize = p_extn->nDataSize;
-  extra->nSize = (sizeof(OMX_OTHER_EXTRADATATYPE) + extra->nDataSize);
-  extra->nVersion.nVersion = OMX_SPEC_VERSION;
-  extra->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
-  extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataMP2ExtnData;
-  if (extra->data && p_extn->data && extra->nDataSize)
-    memcpy(extra->data, p_extn->data, extra->nDataSize);
+    extra->nDataSize = p_extn->nDataSize;
+    extra->nSize = (sizeof(OMX_OTHER_EXTRADATATYPE) + extra->nDataSize);
+    extra->nVersion.nVersion = OMX_SPEC_VERSION;
+    extra->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
+    extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataMP2ExtnData;
+
+    if (extra->data && p_extn->data && extra->nDataSize)
+        memcpy(extra->data, p_extn->data, extra->nDataSize);
 }
 
 void omx_vdec::append_user_extradata(OMX_OTHER_EXTRADATATYPE *extra,
-                                      OMX_OTHER_EXTRADATATYPE *p_user)
+        OMX_OTHER_EXTRADATATYPE *p_user)
 {
-  extra->nDataSize = p_user->nDataSize;
-  extra->nSize = (sizeof(OMX_OTHER_EXTRADATATYPE) + extra->nDataSize);
-  extra->nVersion.nVersion = OMX_SPEC_VERSION;
-  extra->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
-  extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataMP2UserData;
-  if (extra->data && p_user->data && extra->nDataSize)
-    memcpy(extra->data, p_user->data, extra->nDataSize);
+    extra->nDataSize = p_user->nDataSize;
+    extra->nSize = (sizeof(OMX_OTHER_EXTRADATATYPE) + extra->nDataSize);
+    extra->nVersion.nVersion = OMX_SPEC_VERSION;
+    extra->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
+    extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataMP2UserData;
+
+    if (extra->data && p_user->data && extra->nDataSize)
+        memcpy(extra->data, p_user->data, extra->nDataSize);
 }
 
 void omx_vdec::append_terminator_extradata(OMX_OTHER_EXTRADATATYPE *extra)
 {
-  extra->nSize = sizeof(OMX_OTHER_EXTRADATATYPE);
-  extra->nVersion.nVersion = OMX_SPEC_VERSION;
-  extra->eType = OMX_ExtraDataNone;
-  extra->nDataSize = 0;
-  extra->data[0] = 0;
+    extra->nSize = sizeof(OMX_OTHER_EXTRADATATYPE);
+    extra->nVersion.nVersion = OMX_SPEC_VERSION;
+    extra->eType = OMX_ExtraDataNone;
+    extra->nDataSize = 0;
+    extra->data[0] = 0;
 
-  print_debug_extradata(extra);
+    print_debug_extradata(extra);
 }
 
 OMX_ERRORTYPE  omx_vdec::allocate_desc_buffer(OMX_U32 index)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  if (index >= drv_ctx.ip_buf.actualcount)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:Desc Buffer Index not found");
-    return OMX_ErrorInsufficientResources;
-  }
-  if (m_desc_buffer_ptr == NULL)
-  {
-    m_desc_buffer_ptr = (desc_buffer_hdr*) \
-                     calloc( (sizeof(desc_buffer_hdr)),
-                     drv_ctx.ip_buf.actualcount);
-    if (m_desc_buffer_ptr == NULL)
-    {
-      DEBUG_PRINT_ERROR("\n m_desc_buffer_ptr Allocation failed ");
-      return OMX_ErrorInsufficientResources;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+
+    if (index >= drv_ctx.ip_buf.actualcount) {
+        DEBUG_PRINT_ERROR("\nERROR:Desc Buffer Index not found");
+        return OMX_ErrorInsufficientResources;
     }
-  }
 
-  m_desc_buffer_ptr[index].buf_addr = (unsigned char *)malloc (DESC_BUFFER_SIZE * sizeof(OMX_U8));
-  if (m_desc_buffer_ptr[index].buf_addr == NULL)
-  {
-    DEBUG_PRINT_ERROR("\ndesc buffer Allocation failed ");
-    return OMX_ErrorInsufficientResources;
-  }
+    if (m_desc_buffer_ptr == NULL) {
+        m_desc_buffer_ptr = (desc_buffer_hdr*) \
+                            calloc( (sizeof(desc_buffer_hdr)),
+                                    drv_ctx.ip_buf.actualcount);
 
-  return eRet;
+        if (m_desc_buffer_ptr == NULL) {
+            DEBUG_PRINT_ERROR("\n m_desc_buffer_ptr Allocation failed ");
+            return OMX_ErrorInsufficientResources;
+        }
+    }
+
+    m_desc_buffer_ptr[index].buf_addr = (unsigned char *)malloc (DESC_BUFFER_SIZE * sizeof(OMX_U8));
+
+    if (m_desc_buffer_ptr[index].buf_addr == NULL) {
+        DEBUG_PRINT_ERROR("\ndesc buffer Allocation failed ");
+        return OMX_ErrorInsufficientResources;
+    }
+
+    return eRet;
 }
 
 void omx_vdec::insert_demux_addr_offset(OMX_U32 address_offset)
 {
-  DEBUG_PRINT_LOW("Inserting address offset (%d) at idx (%d)", address_offset,m_demux_entries);
-  if (m_demux_entries < 8192)
-  {
-    m_demux_offsets[m_demux_entries++] = address_offset;
-  }
-  return;
+    DEBUG_PRINT_LOW("Inserting address offset (%d) at idx (%d)", address_offset,m_demux_entries);
+
+    if (m_demux_entries < 8192) {
+        m_demux_offsets[m_demux_entries++] = address_offset;
+    }
+
+    return;
 }
 
 void omx_vdec::extract_demux_addr_offsets(OMX_BUFFERHEADERTYPE *buf_hdr)
 {
-  OMX_U32 bytes_to_parse = buf_hdr->nFilledLen;
-  OMX_U8 *buf = buf_hdr->pBuffer + buf_hdr->nOffset;
-  OMX_U32 index = 0;
-  OMX_U32 prev_sc_index = 0;
+    OMX_U32 bytes_to_parse = buf_hdr->nFilledLen;
+    OMX_U8 *buf = buf_hdr->pBuffer + buf_hdr->nOffset;
+    OMX_U32 index = 0;
+    OMX_U32 prev_sc_index = 0;
 
-  m_demux_entries = 0;
+    m_demux_entries = 0;
 
-  while (index < bytes_to_parse)
-  {
-    if ( ((buf[index] == 0x00) && (buf[index+1] == 0x00) &&
-          (buf[index+2] == 0x00) && (buf[index+3] == 0x01)) ||
-         ((buf[index] == 0x00) && (buf[index+1] == 0x00) &&
-          (buf[index+2] == 0x01)) )
-    {
-      if ((((index+3) - prev_sc_index) <= 4) && m_demux_entries)
-      {
-         DEBUG_PRINT_ERROR("FOUND Consecutive start Code, Hence skip one");
-         m_demux_entries--;
-      }
-      //Found start code, insert address offset
-      insert_demux_addr_offset(index);
-      if (buf[index+2] == 0x01) // 3 byte start code
-        index += 3;
-      else                      //4 byte start code
-        index += 4;
-      prev_sc_index = index;
+    while (index < bytes_to_parse) {
+        if ( ((buf[index] == 0x00) && (buf[index+1] == 0x00) &&
+                    (buf[index+2] == 0x00) && (buf[index+3] == 0x01)) ||
+                ((buf[index] == 0x00) && (buf[index+1] == 0x00) &&
+                 (buf[index+2] == 0x01)) ) {
+            if ((((index+3) - prev_sc_index) <= 4) && m_demux_entries) {
+                DEBUG_PRINT_ERROR("FOUND Consecutive start Code, Hence skip one");
+                m_demux_entries--;
+            }
+
+            //Found start code, insert address offset
+            insert_demux_addr_offset(index);
+
+            if (buf[index+2] == 0x01) // 3 byte start code
+                index += 3;
+            else                      //4 byte start code
+                index += 4;
+
+            prev_sc_index = index;
+        } else
+            index++;
     }
-    else
-      index++;
-  }
-  DEBUG_PRINT_LOW("Extracted (%d) demux entry offsets",m_demux_entries);
-  return;
+
+    DEBUG_PRINT_LOW("Extracted (%d) demux entry offsets",m_demux_entries);
+    return;
 }
 
 OMX_ERRORTYPE omx_vdec::handle_demux_data(OMX_BUFFERHEADERTYPE *p_buf_hdr)
 {
-  //fix this, handle 3 byte start code, vc1 terminator entry
-  OMX_U8 *p_demux_data = NULL;
-  OMX_U32 desc_data = 0;
-  OMX_U32 start_addr = 0;
-  OMX_U32 nal_size = 0;
-  OMX_U32 suffix_byte = 0;
-  OMX_U32 demux_index = 0;
-  OMX_U32 buffer_index = 0;
+    //fix this, handle 3 byte start code, vc1 terminator entry
+    OMX_U8 *p_demux_data = NULL;
+    OMX_U32 desc_data = 0;
+    OMX_U32 start_addr = 0;
+    OMX_U32 nal_size = 0;
+    OMX_U32 suffix_byte = 0;
+    OMX_U32 demux_index = 0;
+    OMX_U32 buffer_index = 0;
 
-  if (m_desc_buffer_ptr == NULL)
-  {
-    DEBUG_PRINT_ERROR("m_desc_buffer_ptr is NULL. Cannot append demux entries.");
-    return OMX_ErrorBadParameter;
-  }
-
-  buffer_index = p_buf_hdr - ((OMX_BUFFERHEADERTYPE *)m_inp_mem_ptr);
-  if (buffer_index > drv_ctx.ip_buf.actualcount)
-  {
-    DEBUG_PRINT_ERROR("handle_demux_data:Buffer index is incorrect (%d)", buffer_index);
-    return OMX_ErrorBadParameter;
-  }
-
-  p_demux_data = (OMX_U8 *) m_desc_buffer_ptr[buffer_index].buf_addr;
-
-  if ( ((OMX_U8*)p_demux_data == NULL) ||
-      ((m_demux_entries * 16) + 1) > DESC_BUFFER_SIZE)
-  {
-    DEBUG_PRINT_ERROR("Insufficient buffer. Cannot append demux entries.");
-    return OMX_ErrorBadParameter;
-  }
-  else
-  {
-    for (; demux_index < m_demux_entries; demux_index++)
-    {
-      desc_data = 0;
-      start_addr = m_demux_offsets[demux_index];
-      if (p_buf_hdr->pBuffer[m_demux_offsets[demux_index] + 2] == 0x01)
-      {
-        suffix_byte = p_buf_hdr->pBuffer[m_demux_offsets[demux_index] + 3];
-      }
-      else
-      {
-        suffix_byte = p_buf_hdr->pBuffer[m_demux_offsets[demux_index] + 4];
-      }
-      if (demux_index < (m_demux_entries - 1))
-      {
-        nal_size = m_demux_offsets[demux_index + 1] - m_demux_offsets[demux_index] - 2;
-      }
-      else
-      {
-        nal_size = p_buf_hdr->nFilledLen - m_demux_offsets[demux_index] - 2;
-      }
-      DEBUG_PRINT_LOW("Start_addr(%p), suffix_byte(0x%x),nal_size(%d),demux_index(%d)",
-                        start_addr,
-                        suffix_byte,
-                        nal_size,
-                        demux_index);
-      desc_data = (start_addr >> 3) << 1;
-      desc_data |= (start_addr & 7) << 21;
-      desc_data |= suffix_byte << 24;
-
-      memcpy(p_demux_data, &desc_data, sizeof(OMX_U32));
-      memcpy(p_demux_data + 4, &nal_size, sizeof(OMX_U32));
-      memset(p_demux_data + 8, 0, sizeof(OMX_U32));
-      memset(p_demux_data + 12, 0, sizeof(OMX_U32));
-
-      p_demux_data += 16;
+    if (m_desc_buffer_ptr == NULL) {
+        DEBUG_PRINT_ERROR("m_desc_buffer_ptr is NULL. Cannot append demux entries.");
+        return OMX_ErrorBadParameter;
     }
-    if (codec_type_parse == CODEC_TYPE_VC1)
-    {
-      DEBUG_PRINT_LOW("VC1 terminator entry");
-      desc_data = 0;
-      desc_data = 0x82 << 24;
-      memcpy(p_demux_data, &desc_data, sizeof(OMX_U32));
-      memset(p_demux_data + 4, 0, sizeof(OMX_U32));
-      memset(p_demux_data + 8, 0, sizeof(OMX_U32));
-      memset(p_demux_data + 12, 0, sizeof(OMX_U32));
-      p_demux_data += 16;
-      m_demux_entries++;
-    }
-    //Add zero word to indicate end of descriptors
-    memset(p_demux_data, 0, sizeof(OMX_U32));
 
-    m_desc_buffer_ptr[buffer_index].desc_data_size = (m_demux_entries * 16) + sizeof(OMX_U32);
-    DEBUG_PRINT_LOW("desc table data size=%d", m_desc_buffer_ptr[buffer_index].desc_data_size);
-  }
-  memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
-  m_demux_entries = 0;
-  DEBUG_PRINT_LOW("Demux table complete!");
-  return OMX_ErrorNone;
+    buffer_index = p_buf_hdr - ((OMX_BUFFERHEADERTYPE *)m_inp_mem_ptr);
+
+    if (buffer_index > drv_ctx.ip_buf.actualcount) {
+        DEBUG_PRINT_ERROR("handle_demux_data:Buffer index is incorrect (%d)", buffer_index);
+        return OMX_ErrorBadParameter;
+    }
+
+    p_demux_data = (OMX_U8 *) m_desc_buffer_ptr[buffer_index].buf_addr;
+
+    if ( ((OMX_U8*)p_demux_data == NULL) ||
+            ((m_demux_entries * 16) + 1) > DESC_BUFFER_SIZE) {
+        DEBUG_PRINT_ERROR("Insufficient buffer. Cannot append demux entries.");
+        return OMX_ErrorBadParameter;
+    } else {
+        for (; demux_index < m_demux_entries; demux_index++) {
+            desc_data = 0;
+            start_addr = m_demux_offsets[demux_index];
+
+            if (p_buf_hdr->pBuffer[m_demux_offsets[demux_index] + 2] == 0x01) {
+                suffix_byte = p_buf_hdr->pBuffer[m_demux_offsets[demux_index] + 3];
+            } else {
+                suffix_byte = p_buf_hdr->pBuffer[m_demux_offsets[demux_index] + 4];
+            }
+
+            if (demux_index < (m_demux_entries - 1)) {
+                nal_size = m_demux_offsets[demux_index + 1] - m_demux_offsets[demux_index] - 2;
+            } else {
+                nal_size = p_buf_hdr->nFilledLen - m_demux_offsets[demux_index] - 2;
+            }
+
+            DEBUG_PRINT_LOW("Start_addr(%p), suffix_byte(0x%x),nal_size(%d),demux_index(%d)",
+                    start_addr,
+                    suffix_byte,
+                    nal_size,
+                    demux_index);
+            desc_data = (start_addr >> 3) << 1;
+            desc_data |= (start_addr & 7) << 21;
+            desc_data |= suffix_byte << 24;
+
+            memcpy(p_demux_data, &desc_data, sizeof(OMX_U32));
+            memcpy(p_demux_data + 4, &nal_size, sizeof(OMX_U32));
+            memset(p_demux_data + 8, 0, sizeof(OMX_U32));
+            memset(p_demux_data + 12, 0, sizeof(OMX_U32));
+
+            p_demux_data += 16;
+        }
+
+        if (codec_type_parse == CODEC_TYPE_VC1) {
+            DEBUG_PRINT_LOW("VC1 terminator entry");
+            desc_data = 0;
+            desc_data = 0x82 << 24;
+            memcpy(p_demux_data, &desc_data, sizeof(OMX_U32));
+            memset(p_demux_data + 4, 0, sizeof(OMX_U32));
+            memset(p_demux_data + 8, 0, sizeof(OMX_U32));
+            memset(p_demux_data + 12, 0, sizeof(OMX_U32));
+            p_demux_data += 16;
+            m_demux_entries++;
+        }
+
+        //Add zero word to indicate end of descriptors
+        memset(p_demux_data, 0, sizeof(OMX_U32));
+
+        m_desc_buffer_ptr[buffer_index].desc_data_size = (m_demux_entries * 16) + sizeof(OMX_U32);
+        DEBUG_PRINT_LOW("desc table data size=%d", m_desc_buffer_ptr[buffer_index].desc_data_size);
+    }
+
+    memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
+    m_demux_entries = 0;
+    DEBUG_PRINT_LOW("Demux table complete!");
+    return OMX_ErrorNone;
 }
 
 #ifdef MAX_RES_1080P
 
 OMX_ERRORTYPE omx_vdec::vdec_alloc_meta_buffers()
 {
-  OMX_U32 pmem_fd = -1, pmem_fd_iommu = -1;
-  OMX_U32 size, alignment;
-  void *buf_addr = NULL;
-  struct vdec_ioctl_msg ioctl_msg;
+    OMX_U32 pmem_fd = -1, pmem_fd_iommu = -1;
+    OMX_U32 size, alignment;
+    void *buf_addr = NULL;
+    struct vdec_ioctl_msg ioctl_msg;
 #ifndef USE_ION
-  struct pmem_allocation allocation;
+    struct pmem_allocation allocation;
 #endif
-  struct vdec_meta_buffers meta_buffer;
+    struct vdec_meta_buffers meta_buffer;
 
-  memset ((unsigned char*)&meta_buffer,0,sizeof (struct vdec_meta_buffers));
+    memset ((unsigned char*)&meta_buffer,0,sizeof (struct vdec_meta_buffers));
 
-  //we already have meta buffer size.
-  size = drv_ctx.op_buf.meta_buffer_size * drv_ctx.op_buf.actualcount;
-  alignment = 8192;
+    //we already have meta buffer size.
+    size = drv_ctx.op_buf.meta_buffer_size * drv_ctx.op_buf.actualcount;
+    alignment = 8192;
 
 
 #ifdef USE_ION
- external_meta_buffer = true;
- drv_ctx.meta_buffer.ion_device_fd = alloc_map_ion_memory(
-                    size, 8192,
-                    &drv_ctx.meta_buffer.ion_alloc_data,
-                    &drv_ctx.meta_buffer.fd_ion_data, 0);
-  if (drv_ctx.meta_buffer.ion_device_fd < 0) {
+    external_meta_buffer = true;
+    drv_ctx.meta_buffer.ion_device_fd = alloc_map_ion_memory(
+            size, 8192,
+            &drv_ctx.meta_buffer.ion_alloc_data,
+            &drv_ctx.meta_buffer.fd_ion_data, 0);
+
+    if (drv_ctx.meta_buffer.ion_device_fd < 0) {
         external_meta_buffer = false;
         return OMX_ErrorInsufficientResources;
-  }
-  external_meta_buffer = false;
-  pmem_fd = drv_ctx.meta_buffer.fd_ion_data.fd;
+    }
 
- external_meta_buffer_iommu = true;
- drv_ctx.meta_buffer_iommu.ion_device_fd = alloc_map_ion_memory(
-                    size, 8192,
-                    &drv_ctx.meta_buffer_iommu.ion_alloc_data,
-                    &drv_ctx.meta_buffer_iommu.fd_ion_data, 0);
-  if (drv_ctx.meta_buffer_iommu.ion_device_fd < 0) {
+    external_meta_buffer = false;
+    pmem_fd = drv_ctx.meta_buffer.fd_ion_data.fd;
+
+    external_meta_buffer_iommu = true;
+    drv_ctx.meta_buffer_iommu.ion_device_fd = alloc_map_ion_memory(
+            size, 8192,
+            &drv_ctx.meta_buffer_iommu.ion_alloc_data,
+            &drv_ctx.meta_buffer_iommu.fd_ion_data, 0);
+
+    if (drv_ctx.meta_buffer_iommu.ion_device_fd < 0) {
         external_meta_buffer_iommu = false;
         return OMX_ErrorInsufficientResources;
-  }
-  external_meta_buffer_iommu = false;
-  pmem_fd_iommu = drv_ctx.meta_buffer_iommu.fd_ion_data.fd;
+    }
+
+    external_meta_buffer_iommu = false;
+    pmem_fd_iommu = drv_ctx.meta_buffer_iommu.fd_ion_data.fd;
 #else
-  allocation.size = size;
-  allocation.align = clip2(alignment);
-  if (allocation.align != 8192)
-    allocation.align = 8192;
+    allocation.size = size;
+    allocation.align = clip2(alignment);
 
-  pmem_fd = open(MEM_DEVICE, O_RDWR);
+    if (allocation.align != 8192)
+        allocation.align = 8192;
 
-  if ((int)(pmem_fd) < 0)
-      return OMX_ErrorInsufficientResources;
+    pmem_fd = open(MEM_DEVICE, O_RDWR);
 
-  if (ioctl(pmem_fd, PMEM_ALLOCATE_ALIGNED, &allocation) < 0)
-  {
-    DEBUG_PRINT_ERROR("\n Aligment(%u) failed with pmem driver Sz(%lu)",
-      allocation.align, allocation.size);
-    return OMX_ErrorInsufficientResources;
-  }
+    if ((int)(pmem_fd) < 0)
+        return OMX_ErrorInsufficientResources;
+
+    if (ioctl(pmem_fd, PMEM_ALLOCATE_ALIGNED, &allocation) < 0) {
+        DEBUG_PRINT_ERROR("\n Aligment(%u) failed with pmem driver Sz(%lu)",
+                allocation.align, allocation.size);
+        return OMX_ErrorInsufficientResources;
+    }
+
 #endif
 
     buf_addr = mmap(NULL, size,
-                 PROT_READ | PROT_WRITE,
-                 MAP_SHARED, pmem_fd_iommu, 0);
+            PROT_READ | PROT_WRITE,
+            MAP_SHARED, pmem_fd_iommu, 0);
 
-    if (buf_addr == (void*) MAP_FAILED)
-    {
-      close(pmem_fd);
-      close(pmem_fd_iommu);
+    if (buf_addr == (void*) MAP_FAILED) {
+        close(pmem_fd);
+        close(pmem_fd_iommu);
 #ifdef USE_ION
-      free_ion_memory(&drv_ctx.meta_buffer);
-      free_ion_memory(&drv_ctx.meta_buffer_iommu);
+        free_ion_memory(&drv_ctx.meta_buffer);
+        free_ion_memory(&drv_ctx.meta_buffer_iommu);
 #endif
-      pmem_fd = -1;
-      pmem_fd_iommu = -1;
-      DEBUG_PRINT_ERROR("Error returned in allocating recon buffers buf_addr: %p\n",buf_addr);
-      return OMX_ErrorInsufficientResources;
+        pmem_fd = -1;
+        pmem_fd_iommu = -1;
+        DEBUG_PRINT_ERROR("Error returned in allocating recon buffers buf_addr: %p\n",buf_addr);
+        return OMX_ErrorInsufficientResources;
     }
 
-  meta_buffer.size = size;
-  meta_buffer.count = drv_ctx.op_buf.actualcount;
-  meta_buffer.pmem_fd = pmem_fd;
-  meta_buffer.pmem_fd_iommu = pmem_fd_iommu;
-  meta_buffer.offset = 0;
+    meta_buffer.size = size;
+    meta_buffer.count = drv_ctx.op_buf.actualcount;
+    meta_buffer.pmem_fd = pmem_fd;
+    meta_buffer.pmem_fd_iommu = pmem_fd_iommu;
+    meta_buffer.offset = 0;
 
-  ioctl_msg.in = (void*)&meta_buffer;
-  ioctl_msg.out = NULL;
+    ioctl_msg.in = (void*)&meta_buffer;
+    ioctl_msg.out = NULL;
 
-  if (ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_SET_META_BUFFERS, (void*)&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("Failed to set the meta_buffers\n");
-    return OMX_ErrorInsufficientResources;
-  }
+    if (ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_SET_META_BUFFERS, (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("Failed to set the meta_buffers\n");
+        return OMX_ErrorInsufficientResources;
+    }
 
-  meta_buff.buffer = (unsigned char *) buf_addr;
-  meta_buff.size = size;
-  meta_buff.count = drv_ctx.op_buf.actualcount;
-  meta_buff.offset = 0;
-  meta_buff.pmem_fd = pmem_fd;
-  meta_buff.pmem_fd_iommu = pmem_fd_iommu;
-  DEBUG_PRINT_HIGH("Saving virt:%p, FD: %d and FD_IOMMU %d of size %d count: %d", meta_buff.buffer,
-                   meta_buff.pmem_fd, meta_buff.pmem_fd_iommu, meta_buff.size, drv_ctx.op_buf.actualcount);
-  return OMX_ErrorNone;
+    meta_buff.buffer = (unsigned char *) buf_addr;
+    meta_buff.size = size;
+    meta_buff.count = drv_ctx.op_buf.actualcount;
+    meta_buff.offset = 0;
+    meta_buff.pmem_fd = pmem_fd;
+    meta_buff.pmem_fd_iommu = pmem_fd_iommu;
+    DEBUG_PRINT_HIGH("Saving virt:%p, FD: %d and FD_IOMMU %d of size %d count: %d", meta_buff.buffer,
+            meta_buff.pmem_fd, meta_buff.pmem_fd_iommu, meta_buff.size, drv_ctx.op_buf.actualcount);
+    return OMX_ErrorNone;
 }
 
 void omx_vdec::vdec_dealloc_meta_buffers()
 {
-    if(meta_buff.pmem_fd > 0)
-    {
-      if(ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_FREE_META_BUFFERS,NULL) < 0)
-        DEBUG_PRINT_ERROR("VDEC_IOCTL_FREE_META_BUFFERS failed");
-      close(meta_buff.pmem_fd);
+    if (meta_buff.pmem_fd > 0) {
+        if (ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_FREE_META_BUFFERS,NULL) < 0)
+            DEBUG_PRINT_ERROR("VDEC_IOCTL_FREE_META_BUFFERS failed");
+
+        close(meta_buff.pmem_fd);
 #ifdef USE_ION
-      free_ion_memory(&drv_ctx.meta_buffer);
+        free_ion_memory(&drv_ctx.meta_buffer);
 #endif
     }
-    if(meta_buff.pmem_fd_iommu > 0)
-    {
-      munmap(meta_buff.buffer, meta_buff.size);
-      close(meta_buff.pmem_fd_iommu);
+
+    if (meta_buff.pmem_fd_iommu > 0) {
+        munmap(meta_buff.buffer, meta_buff.size);
+        close(meta_buff.pmem_fd_iommu);
 #ifdef USE_ION
-      free_ion_memory(&drv_ctx.meta_buffer_iommu);
+        free_ion_memory(&drv_ctx.meta_buffer_iommu);
 #endif
-      DEBUG_PRINT_LOW("Cleaning Meta buffer of size %d",meta_buff.size);
-      meta_buff.pmem_fd = -1;
-      meta_buff.pmem_fd_iommu = -1;
-      meta_buff.offset = 0;
-      meta_buff.size = 0;
-      meta_buff.count = 0;
-      meta_buff.buffer = NULL;
+        DEBUG_PRINT_LOW("Cleaning Meta buffer of size %d",meta_buff.size);
+        meta_buff.pmem_fd = -1;
+        meta_buff.pmem_fd_iommu = -1;
+        meta_buff.offset = 0;
+        meta_buff.size = 0;
+        meta_buff.count = 0;
+        meta_buff.buffer = NULL;
     }
 }
 
 OMX_ERRORTYPE omx_vdec::vdec_alloc_h264_mv()
 {
-  OMX_U32 pmem_fd = -1;
-  OMX_U32 width, height, size, alignment;
-  void *buf_addr = NULL;
-  struct vdec_ioctl_msg ioctl_msg;
+    OMX_U32 pmem_fd = -1;
+    OMX_U32 width, height, size, alignment;
+    void *buf_addr = NULL;
+    struct vdec_ioctl_msg ioctl_msg;
 #ifndef USE_ION
-  struct pmem_allocation allocation;
+    struct pmem_allocation allocation;
 #endif
-  struct vdec_h264_mv h264_mv;
-  struct vdec_mv_buff_size mv_buff_size;
+    struct vdec_h264_mv h264_mv;
+    struct vdec_mv_buff_size mv_buff_size;
 
-  mv_buff_size.width = drv_ctx.video_resolution.stride;
-  mv_buff_size.height = drv_ctx.video_resolution.scan_lines>>2;
+    mv_buff_size.width = drv_ctx.video_resolution.stride;
+    mv_buff_size.height = drv_ctx.video_resolution.scan_lines>>2;
 
-  ioctl_msg.in = NULL;
-  ioctl_msg.out = (void*)&mv_buff_size;
+    ioctl_msg.in = NULL;
+    ioctl_msg.out = (void*)&mv_buff_size;
 
-  if (ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_GET_MV_BUFFER_SIZE, (void*)&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("\n GET_MV_BUFFER_SIZE Failed for width: %d, Height %d" ,
-      mv_buff_size.width, mv_buff_size.height);
-    return OMX_ErrorInsufficientResources;
-  }
+    if (ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_GET_MV_BUFFER_SIZE, (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("\n GET_MV_BUFFER_SIZE Failed for width: %d, Height %d" ,
+                mv_buff_size.width, mv_buff_size.height);
+        return OMX_ErrorInsufficientResources;
+    }
 
-  DEBUG_PRINT_ERROR("GET_MV_BUFFER_SIZE returned: Size: %d and alignment: %d",
-                    mv_buff_size.size, mv_buff_size.alignment);
+    DEBUG_PRINT_ERROR("GET_MV_BUFFER_SIZE returned: Size: %d and alignment: %d",
+            mv_buff_size.size, mv_buff_size.alignment);
 
-  size = mv_buff_size.size * drv_ctx.op_buf.actualcount;
-  alignment = mv_buff_size.alignment;
+    size = mv_buff_size.size * drv_ctx.op_buf.actualcount;
+    alignment = mv_buff_size.alignment;
 
-  DEBUG_PRINT_LOW("Entered vdec_alloc_h264_mv act_width: %d, act_height: %d, size: %d, alignment %d",
-                   drv_ctx.video_resolution.frame_width, drv_ctx.video_resolution.frame_height,size,alignment);
+    DEBUG_PRINT_LOW("Entered vdec_alloc_h264_mv act_width: %d, act_height: %d, size: %d, alignment %d",
+            drv_ctx.video_resolution.frame_width, drv_ctx.video_resolution.frame_height,size,alignment);
 
 
 #ifdef USE_ION
- drv_ctx.h264_mv.ion_device_fd = alloc_map_ion_memory(
-                    size, 8192,
-                    &drv_ctx.h264_mv.ion_alloc_data,
-                    &drv_ctx.h264_mv.fd_ion_data,ION_FLAG_CACHED);
-  if (drv_ctx.h264_mv.ion_device_fd < 0) {
+    drv_ctx.h264_mv.ion_device_fd = alloc_map_ion_memory(
+            size, 8192,
+            &drv_ctx.h264_mv.ion_alloc_data,
+            &drv_ctx.h264_mv.fd_ion_data,ION_FLAG_CACHED);
+
+    if (drv_ctx.h264_mv.ion_device_fd < 0) {
         return OMX_ErrorInsufficientResources;
-  }
-  pmem_fd = drv_ctx.h264_mv.fd_ion_data.fd;
+    }
+
+    pmem_fd = drv_ctx.h264_mv.fd_ion_data.fd;
 #else
-  allocation.size = size;
-  allocation.align = clip2(alignment);
-  if (allocation.align != 8192)
-    allocation.align = 8192;
+    allocation.size = size;
+    allocation.align = clip2(alignment);
 
-  pmem_fd = open(MEM_DEVICE, O_RDWR);
+    if (allocation.align != 8192)
+        allocation.align = 8192;
 
-  if ((int)(pmem_fd) < 0)
-      return OMX_ErrorInsufficientResources;
+    pmem_fd = open(MEM_DEVICE, O_RDWR);
 
-  if (ioctl(pmem_fd, PMEM_ALLOCATE_ALIGNED, &allocation) < 0)
-  {
-    DEBUG_PRINT_ERROR("\n Aligment(%u) failed with pmem driver Sz(%lu)",
-      allocation.align, allocation.size);
-    return OMX_ErrorInsufficientResources;
-  }
-#endif
-  if(!secure_mode) {
-      buf_addr = mmap(NULL, size,
-                   PROT_READ | PROT_WRITE,
-                   MAP_SHARED, pmem_fd, 0);
-
-      if (buf_addr == (void*) MAP_FAILED)
-      {
-        close(pmem_fd);
-#ifdef USE_ION
-        free_ion_memory(&drv_ctx.h264_mv);
-#endif
-        pmem_fd = -1;
-        DEBUG_PRINT_ERROR("Error returned in allocating recon buffers buf_addr: %p\n",buf_addr);
+    if ((int)(pmem_fd) < 0)
         return OMX_ErrorInsufficientResources;
-      }
-   } else
-      buf_addr =(unsigned char *) (pmem_fd + 1234);
-  DEBUG_PRINT_LOW("Allocated virt:%p, FD: %d of size %d count: %d", buf_addr,
-                   pmem_fd, size, drv_ctx.op_buf.actualcount);
 
-  h264_mv.size = size;
-  h264_mv.count = drv_ctx.op_buf.actualcount;
-  h264_mv.pmem_fd = pmem_fd;
-  h264_mv.offset = 0;
+    if (ioctl(pmem_fd, PMEM_ALLOCATE_ALIGNED, &allocation) < 0) {
+        DEBUG_PRINT_ERROR("\n Aligment(%u) failed with pmem driver Sz(%lu)",
+                allocation.align, allocation.size);
+        return OMX_ErrorInsufficientResources;
+    }
 
-  ioctl_msg.in = (void*)&h264_mv;
-  ioctl_msg.out = NULL;
+#endif
 
-  if (ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_SET_H264_MV_BUFFER, (void*)&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("Failed to set the H264_mv_buffers\n");
-    return OMX_ErrorInsufficientResources;
-  }
+    if (!secure_mode) {
+        buf_addr = mmap(NULL, size,
+                PROT_READ | PROT_WRITE,
+                MAP_SHARED, pmem_fd, 0);
 
-  h264_mv_buff.buffer = (unsigned char *) buf_addr;
-  h264_mv_buff.size = size;
-  h264_mv_buff.count = drv_ctx.op_buf.actualcount;
-  h264_mv_buff.offset = 0;
-  h264_mv_buff.pmem_fd = pmem_fd;
-  DEBUG_PRINT_LOW("Saving virt:%p, FD: %d of size %d count: %d", h264_mv_buff.buffer,
-                   h264_mv_buff.pmem_fd, h264_mv_buff.size, drv_ctx.op_buf.actualcount);
-  return OMX_ErrorNone;
+        if (buf_addr == (void*) MAP_FAILED) {
+            close(pmem_fd);
+#ifdef USE_ION
+            free_ion_memory(&drv_ctx.h264_mv);
+#endif
+            pmem_fd = -1;
+            DEBUG_PRINT_ERROR("Error returned in allocating recon buffers buf_addr: %p\n",buf_addr);
+            return OMX_ErrorInsufficientResources;
+        }
+    } else
+        buf_addr =(unsigned char *) (pmem_fd + 1234);
+
+    DEBUG_PRINT_LOW("Allocated virt:%p, FD: %d of size %d count: %d", buf_addr,
+            pmem_fd, size, drv_ctx.op_buf.actualcount);
+
+    h264_mv.size = size;
+    h264_mv.count = drv_ctx.op_buf.actualcount;
+    h264_mv.pmem_fd = pmem_fd;
+    h264_mv.offset = 0;
+
+    ioctl_msg.in = (void*)&h264_mv;
+    ioctl_msg.out = NULL;
+
+    if (ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_SET_H264_MV_BUFFER, (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("Failed to set the H264_mv_buffers\n");
+        return OMX_ErrorInsufficientResources;
+    }
+
+    h264_mv_buff.buffer = (unsigned char *) buf_addr;
+    h264_mv_buff.size = size;
+    h264_mv_buff.count = drv_ctx.op_buf.actualcount;
+    h264_mv_buff.offset = 0;
+    h264_mv_buff.pmem_fd = pmem_fd;
+    DEBUG_PRINT_LOW("Saving virt:%p, FD: %d of size %d count: %d", h264_mv_buff.buffer,
+            h264_mv_buff.pmem_fd, h264_mv_buff.size, drv_ctx.op_buf.actualcount);
+    return OMX_ErrorNone;
 }
 
 void omx_vdec::vdec_dealloc_h264_mv()
 {
-    if(h264_mv_buff.pmem_fd > 0)
-    {
-      if(ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_FREE_H264_MV_BUFFER,NULL) < 0)
-        DEBUG_PRINT_ERROR("VDEC_IOCTL_FREE_H264_MV_BUFFER failed");
-      if(!secure_mode)
-          munmap(h264_mv_buff.buffer, h264_mv_buff.size);
-      close(h264_mv_buff.pmem_fd);
+    if (h264_mv_buff.pmem_fd > 0) {
+        if (ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_FREE_H264_MV_BUFFER,NULL) < 0)
+            DEBUG_PRINT_ERROR("VDEC_IOCTL_FREE_H264_MV_BUFFER failed");
+
+        if (!secure_mode)
+            munmap(h264_mv_buff.buffer, h264_mv_buff.size);
+
+        close(h264_mv_buff.pmem_fd);
 #ifdef USE_ION
-      free_ion_memory(&drv_ctx.h264_mv);
+        free_ion_memory(&drv_ctx.h264_mv);
 #endif
-      DEBUG_PRINT_LOW("Cleaning H264_MV buffer of size %d",h264_mv_buff.size);
-      h264_mv_buff.pmem_fd = -1;
-      h264_mv_buff.offset = 0;
-      h264_mv_buff.size = 0;
-      h264_mv_buff.count = 0;
-      h264_mv_buff.buffer = NULL;
+        DEBUG_PRINT_LOW("Cleaning H264_MV buffer of size %d",h264_mv_buff.size);
+        h264_mv_buff.pmem_fd = -1;
+        h264_mv_buff.offset = 0;
+        h264_mv_buff.size = 0;
+        h264_mv_buff.count = 0;
+        h264_mv_buff.buffer = NULL;
     }
 }
 
@@ -9561,21 +9212,23 @@
 #ifdef _ANDROID_
 OMX_ERRORTYPE omx_vdec::createDivxDrmContext()
 {
-     OMX_ERRORTYPE err = OMX_ErrorNone;
-     iDivXDrmDecrypt = DivXDrmDecrypt::Create();
-     if (iDivXDrmDecrypt) {
-          OMX_ERRORTYPE err = iDivXDrmDecrypt->Init();
-          if(err!=OMX_ErrorNone) {
+    OMX_ERRORTYPE err = OMX_ErrorNone;
+    iDivXDrmDecrypt = DivXDrmDecrypt::Create();
+
+    if (iDivXDrmDecrypt) {
+        OMX_ERRORTYPE err = iDivXDrmDecrypt->Init();
+
+        if (err!=OMX_ErrorNone) {
             DEBUG_PRINT_ERROR("\nERROR :iDivXDrmDecrypt->Init %d", err);
             delete iDivXDrmDecrypt;
             iDivXDrmDecrypt = NULL;
-          }
-     }
-     else {
-          DEBUG_PRINT_ERROR("\nUnable to Create DIVX DRM");
-          err = OMX_ErrorUndefined;
-     }
-     return err;
+        }
+    } else {
+        DEBUG_PRINT_ERROR("\nUnable to Create DIVX DRM");
+        err = OMX_ErrorUndefined;
+    }
+
+    return err;
 }
 #endif //_ANDROID_
 
@@ -9603,9 +9256,9 @@
 
     if (ph->powerHint) {
         snprintf(powerHintMetadata, sizeof(powerHintMetadata) - 1,
-                 "state=1;framewidth=%u;frameheight=%u;bitrate=%u",
-                 m_port_def.format.video.nFrameWidth, m_port_def.format.video.nFrameHeight,
-                 m_port_def.format.video.nBitrate);
+                "state=1;framewidth=%u;frameheight=%u;bitrate=%u",
+                m_port_def.format.video.nFrameWidth, m_port_def.format.video.nFrameHeight,
+                m_port_def.format.video.nBitrate);
         powerHintMetadata[sizeof(powerHintMetadata) - 1] = '\0';
 
         ph->powerHint(ph, POWER_HINT_VIDEO_DECODE, (void *)powerHintMetadata);
@@ -9613,6 +9266,7 @@
     } else {
         DEBUG_PRINT_ERROR("No hint called for register");
     }
+
     return OMX_ErrorNone;
 }
 
@@ -9642,337 +9296,398 @@
     } else {
         DEBUG_PRINT_ERROR("No hint called for deregister");
     }
+
     return OMX_ErrorNone;
 }
 omx_vdec::allocate_color_convert_buf::allocate_color_convert_buf()
 {
-  enabled = false;
-  omx = NULL;
-  init_members();
-  ColorFormat = OMX_COLOR_FormatMax;
+    enabled = false;
+    omx = NULL;
+    init_members();
+    ColorFormat = OMX_COLOR_FormatMax;
 }
 
 void omx_vdec::allocate_color_convert_buf::set_vdec_client(void *client)
 {
-  omx = reinterpret_cast<omx_vdec*>(client);
+    omx = reinterpret_cast<omx_vdec*>(client);
 }
 
-void omx_vdec::allocate_color_convert_buf::init_members() {
-  allocated_count = 0;
-  buffer_size_req = 0;
-  buffer_alignment_req = 0;
-  memset(m_platform_list_client,0,sizeof(m_platform_list_client));
-  memset(m_platform_entry_client,0,sizeof(m_platform_entry_client));
-  memset(m_pmem_info_client,0,sizeof(m_pmem_info_client));
-  memset(m_out_mem_ptr_client,0,sizeof(m_out_mem_ptr_client));
-  memset(op_buf_ion_info,0,sizeof(m_platform_entry_client));
-  for (int i = 0; i < MAX_COUNT;i++)
-    pmem_fd[i] = -1;
+void omx_vdec::allocate_color_convert_buf::init_members()
+{
+    allocated_count = 0;
+    buffer_size_req = 0;
+    buffer_alignment_req = 0;
+    memset(m_platform_list_client,0,sizeof(m_platform_list_client));
+    memset(m_platform_entry_client,0,sizeof(m_platform_entry_client));
+    memset(m_pmem_info_client,0,sizeof(m_pmem_info_client));
+    memset(m_out_mem_ptr_client,0,sizeof(m_out_mem_ptr_client));
+    memset(op_buf_ion_info,0,sizeof(m_platform_entry_client));
+
+    for (int i = 0; i < MAX_COUNT; i++)
+        pmem_fd[i] = -1;
 }
 
-omx_vdec::allocate_color_convert_buf::~allocate_color_convert_buf() {
-  c2d.destroy();
+omx_vdec::allocate_color_convert_buf::~allocate_color_convert_buf()
+{
+    c2d.destroy();
 }
 
 bool omx_vdec::allocate_color_convert_buf::update_buffer_req()
 {
-  bool status = true;
-  unsigned int src_size = 0, destination_size = 0;
-  OMX_COLOR_FORMATTYPE drv_color_format;
-  if (!omx){
-    DEBUG_PRINT_ERROR("\n Invalid client in color convert");
-    return false;
-  }
-  if (!enabled){
-    DEBUG_PRINT_ERROR("\n No color conversion required");
-    return status;
-  }
-  if (omx->drv_ctx.output_format != VDEC_YUV_FORMAT_TILE_4x2 &&
-      ColorFormat != OMX_COLOR_FormatYUV420Planar) {
-    DEBUG_PRINT_ERROR("\nupdate_buffer_req: Unsupported color conversion");
-    return false;
-  }
-  c2d.close();
-  status = c2d.open(omx->drv_ctx.video_resolution.frame_height,
-                    omx->drv_ctx.video_resolution.frame_width,
-                    YCbCr420Tile,YCbCr420P);
-  if (status) {
-    status = c2d.get_buffer_size(C2D_INPUT,src_size);
-    if (status)
-      status = c2d.get_buffer_size(C2D_OUTPUT,destination_size);
-  }
-  if (status) {
-    if (!src_size || src_size > omx->drv_ctx.op_buf.buffer_size ||
-        !destination_size) {
-      DEBUG_PRINT_ERROR("\nERROR: Size mismatch in C2D src_size %d"
-            "driver size %d destination size %d",
-             src_size,omx->drv_ctx.op_buf.buffer_size,destination_size);
-      status = false;
-      c2d.close();
-      buffer_size_req = 0;
-    } else {
-      buffer_size_req = destination_size;
-      if (buffer_size_req < omx->drv_ctx.op_buf.buffer_size)
-	     buffer_size_req = omx->drv_ctx.op_buf.buffer_size;
-      if (buffer_alignment_req < omx->drv_ctx.op_buf.alignment)
-            buffer_alignment_req = omx->drv_ctx.op_buf.alignment;
+    bool status = true;
+    unsigned int src_size = 0, destination_size = 0;
+    OMX_COLOR_FORMATTYPE drv_color_format;
+
+    if (!omx) {
+        DEBUG_PRINT_ERROR("\n Invalid client in color convert");
+        return false;
     }
-  }
-  return status;
+
+    if (!enabled) {
+        DEBUG_PRINT_ERROR("\n No color conversion required");
+        return status;
+    }
+
+    if (omx->drv_ctx.output_format != VDEC_YUV_FORMAT_TILE_4x2 &&
+            ColorFormat != OMX_COLOR_FormatYUV420Planar) {
+        DEBUG_PRINT_ERROR("\nupdate_buffer_req: Unsupported color conversion");
+        return false;
+    }
+
+    c2d.close();
+    status = c2d.open(omx->drv_ctx.video_resolution.frame_height,
+            omx->drv_ctx.video_resolution.frame_width,
+            YCbCr420Tile,YCbCr420P);
+
+    if (status) {
+        status = c2d.get_buffer_size(C2D_INPUT,src_size);
+
+        if (status)
+            status = c2d.get_buffer_size(C2D_OUTPUT,destination_size);
+    }
+
+    if (status) {
+        if (!src_size || src_size > omx->drv_ctx.op_buf.buffer_size ||
+                !destination_size) {
+            DEBUG_PRINT_ERROR("\nERROR: Size mismatch in C2D src_size %d"
+                    "driver size %d destination size %d",
+                    src_size,omx->drv_ctx.op_buf.buffer_size,destination_size);
+            status = false;
+            c2d.close();
+            buffer_size_req = 0;
+        } else {
+            buffer_size_req = destination_size;
+
+            if (buffer_size_req < omx->drv_ctx.op_buf.buffer_size)
+                buffer_size_req = omx->drv_ctx.op_buf.buffer_size;
+
+            if (buffer_alignment_req < omx->drv_ctx.op_buf.alignment)
+                buffer_alignment_req = omx->drv_ctx.op_buf.alignment;
+        }
+    }
+
+    return status;
 }
 
 bool omx_vdec::allocate_color_convert_buf::set_color_format(
-  OMX_COLOR_FORMATTYPE dest_color_format)
+        OMX_COLOR_FORMATTYPE dest_color_format)
 {
-  bool status = true;
-  OMX_COLOR_FORMATTYPE drv_color_format;
-  if (!omx){
-    DEBUG_PRINT_ERROR("\n Invalid client in color convert");
-    return false;
-  }
-  if (omx->drv_ctx.output_format == VDEC_YUV_FORMAT_TILE_4x2)
-    drv_color_format = (OMX_COLOR_FORMATTYPE)
-    QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka;
-  else {
-    DEBUG_PRINT_ERROR("\n Incorrect color format");
-    status = false;
-  }
-  if (status && (drv_color_format != dest_color_format)) {
-    DEBUG_PRINT_ERROR("");
-    if (dest_color_format != OMX_COLOR_FormatYUV420Planar) {
-      DEBUG_PRINT_ERROR("\n Unsupported color format for c2d");
-      status = false;
-    } else {
-      ColorFormat = OMX_COLOR_FormatYUV420Planar;
-      if (enabled)
-        c2d.destroy();
-      enabled = false;
-      if (!c2d.init()) {
-        DEBUG_PRINT_ERROR("\n open failed for c2d");
-        status = false;
-      } else
-        enabled = true;
+    bool status = true;
+    OMX_COLOR_FORMATTYPE drv_color_format;
+
+    if (!omx) {
+        DEBUG_PRINT_ERROR("\n Invalid client in color convert");
+        return false;
     }
-  } else {
-    if (enabled)
-      c2d.destroy();
-    enabled = false;
-  }
-  return status;
+
+    if (omx->drv_ctx.output_format == VDEC_YUV_FORMAT_TILE_4x2)
+        drv_color_format = (OMX_COLOR_FORMATTYPE)
+            QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka;
+    else {
+        DEBUG_PRINT_ERROR("\n Incorrect color format");
+        status = false;
+    }
+
+    if (status && (drv_color_format != dest_color_format)) {
+        DEBUG_PRINT_ERROR("");
+
+        if (dest_color_format != OMX_COLOR_FormatYUV420Planar) {
+            DEBUG_PRINT_ERROR("\n Unsupported color format for c2d");
+            status = false;
+        } else {
+            ColorFormat = OMX_COLOR_FormatYUV420Planar;
+
+            if (enabled)
+                c2d.destroy();
+
+            enabled = false;
+
+            if (!c2d.init()) {
+                DEBUG_PRINT_ERROR("\n open failed for c2d");
+                status = false;
+            } else
+                enabled = true;
+        }
+    } else {
+        if (enabled)
+            c2d.destroy();
+
+        enabled = false;
+    }
+
+    return status;
 }
 
 OMX_BUFFERHEADERTYPE* omx_vdec::allocate_color_convert_buf::get_il_buf_hdr()
 {
-  if (!omx){
-    DEBUG_PRINT_ERROR("\n Invalid param get_buf_hdr");
-    return NULL;
-  }
-  if (!enabled)
-    return omx->m_out_mem_ptr;
-  return m_out_mem_ptr_client;
-}
-
-OMX_BUFFERHEADERTYPE* omx_vdec::allocate_color_convert_buf::get_il_buf_hdr
-       (OMX_BUFFERHEADERTYPE *bufadd)
-{
-  if (!omx){
-    DEBUG_PRINT_ERROR("\n Invalid param get_buf_hdr");
-    return NULL;
-  }
-  if (!enabled)
-    return bufadd;
-  unsigned index = 0;
-  index = bufadd - omx->m_out_mem_ptr;
-  if (index < omx->drv_ctx.op_buf.actualcount) {
-    m_out_mem_ptr_client[index].nFlags = (bufadd->nFlags & OMX_BUFFERFLAG_EOS);
-    m_out_mem_ptr_client[index].nTimeStamp = bufadd->nTimeStamp;
-    bool status;
-    if (!omx->in_reconfig && !omx->output_flush_progress) {
-      status = c2d.convert(omx->drv_ctx.ptr_outputbuffer[index].pmem_fd,
-                  bufadd->pBuffer,pmem_fd[index],pmem_baseaddress[index]);
-      m_out_mem_ptr_client[index].nFilledLen = buffer_size_req;
-      if (!status){
-        DEBUG_PRINT_ERROR("\n Failed color conversion %d", status);
+    if (!omx) {
+        DEBUG_PRINT_ERROR("\n Invalid param get_buf_hdr");
         return NULL;
-      }
-    } else
-      m_out_mem_ptr_client[index].nFilledLen = 0;
-    return &m_out_mem_ptr_client[index];
-  }
-  DEBUG_PRINT_ERROR("\n Index messed up in the get_il_buf_hdr");
-  return NULL;
+    }
+
+    if (!enabled)
+        return omx->m_out_mem_ptr;
+
+    return m_out_mem_ptr_client;
 }
 
-OMX_BUFFERHEADERTYPE* omx_vdec::allocate_color_convert_buf::get_dr_buf_hdr
-                                              (OMX_BUFFERHEADERTYPE *bufadd)
+    OMX_BUFFERHEADERTYPE* omx_vdec::allocate_color_convert_buf::get_il_buf_hdr
+(OMX_BUFFERHEADERTYPE *bufadd)
 {
-  if (!omx){
-    DEBUG_PRINT_ERROR("\n Invalid param get_buf_hdr");
+    if (!omx) {
+        DEBUG_PRINT_ERROR("\n Invalid param get_buf_hdr");
+        return NULL;
+    }
+
+    if (!enabled)
+        return bufadd;
+
+    unsigned index = 0;
+    index = bufadd - omx->m_out_mem_ptr;
+
+    if (index < omx->drv_ctx.op_buf.actualcount) {
+        m_out_mem_ptr_client[index].nFlags = (bufadd->nFlags & OMX_BUFFERFLAG_EOS);
+        m_out_mem_ptr_client[index].nTimeStamp = bufadd->nTimeStamp;
+        bool status;
+
+        if (!omx->in_reconfig && !omx->output_flush_progress) {
+            status = c2d.convert(omx->drv_ctx.ptr_outputbuffer[index].pmem_fd,
+                    bufadd->pBuffer,pmem_fd[index],pmem_baseaddress[index]);
+            m_out_mem_ptr_client[index].nFilledLen = buffer_size_req;
+
+            if (!status) {
+                DEBUG_PRINT_ERROR("\n Failed color conversion %d", status);
+                return NULL;
+            }
+        } else
+            m_out_mem_ptr_client[index].nFilledLen = 0;
+
+        return &m_out_mem_ptr_client[index];
+    }
+
+    DEBUG_PRINT_ERROR("\n Index messed up in the get_il_buf_hdr");
     return NULL;
-  }
-  if (!enabled)
-    return bufadd;
-  unsigned index = 0;
-  index = bufadd - m_out_mem_ptr_client;
-  if (index < omx->drv_ctx.op_buf.actualcount) {
-    return &omx->m_out_mem_ptr[index];
-  }
-  DEBUG_PRINT_ERROR("\n Index messed up in the get_dr_buf_hdr");
-  return NULL;
 }
-bool omx_vdec::allocate_color_convert_buf::get_buffer_req
-          (unsigned int &buffer_size)
+
+    OMX_BUFFERHEADERTYPE* omx_vdec::allocate_color_convert_buf::get_dr_buf_hdr
+(OMX_BUFFERHEADERTYPE *bufadd)
 {
-  if (!enabled)
-    buffer_size = omx->drv_ctx.op_buf.buffer_size;
-  else
-    if (!c2d.get_buffer_size(C2D_OUTPUT,buffer_size)) {
-      DEBUG_PRINT_ERROR("\n Get buffer size failed");
-      return false;
-  }
-  if (buffer_size < omx->drv_ctx.op_buf.buffer_size)
+    if (!omx) {
+        DEBUG_PRINT_ERROR("\n Invalid param get_buf_hdr");
+        return NULL;
+    }
+
+    if (!enabled)
+        return bufadd;
+
+    unsigned index = 0;
+    index = bufadd - m_out_mem_ptr_client;
+
+    if (index < omx->drv_ctx.op_buf.actualcount) {
+        return &omx->m_out_mem_ptr[index];
+    }
+
+    DEBUG_PRINT_ERROR("\n Index messed up in the get_dr_buf_hdr");
+    return NULL;
+}
+    bool omx_vdec::allocate_color_convert_buf::get_buffer_req
+(unsigned int &buffer_size)
+{
+    if (!enabled)
         buffer_size = omx->drv_ctx.op_buf.buffer_size;
-  if (buffer_alignment_req < omx->drv_ctx.op_buf.alignment)
-	  buffer_alignment_req = omx->drv_ctx.op_buf.alignment;
+    else if (!c2d.get_buffer_size(C2D_OUTPUT,buffer_size)) {
+        DEBUG_PRINT_ERROR("\n Get buffer size failed");
+        return false;
+    }
+
+    if (buffer_size < omx->drv_ctx.op_buf.buffer_size)
+        buffer_size = omx->drv_ctx.op_buf.buffer_size;
+
+    if (buffer_alignment_req < omx->drv_ctx.op_buf.alignment)
+        buffer_alignment_req = omx->drv_ctx.op_buf.alignment;
+
     return true;
 }
 OMX_ERRORTYPE omx_vdec::allocate_color_convert_buf::free_output_buffer(
-  OMX_BUFFERHEADERTYPE *bufhdr) {
-  unsigned int index = 0;
+        OMX_BUFFERHEADERTYPE *bufhdr)
+{
+    unsigned int index = 0;
 
-  if (!enabled)
-    return omx->free_output_buffer(bufhdr);
-  if (enabled && omx->is_component_secure())
-    return OMX_ErrorNone;
-  if (!allocated_count || !bufhdr) {
-    DEBUG_PRINT_ERROR("\n Color convert no buffer to be freed %p",bufhdr);
-    return OMX_ErrorBadParameter;
-  }
-  index = bufhdr - m_out_mem_ptr_client;
-  if (index >= omx->drv_ctx.op_buf.actualcount){
-    DEBUG_PRINT_ERROR("\n Incorrect index color convert free_output_buffer");
-    return OMX_ErrorBadParameter;
-  }
-  if (pmem_fd[index] > 0) {
-    munmap(pmem_baseaddress[index], buffer_size_req);
-    close(pmem_fd[index]);
-  }
-  pmem_fd[index] = -1;
-  omx->free_ion_memory(&op_buf_ion_info[index]);
-  m_heap_ptr[index].video_heap_ptr = NULL;
-  if (allocated_count > 0)
-    allocated_count--;
-  else
-    allocated_count = 0;
-  if (!allocated_count) {
-    c2d.close();
-    init_members();
-  }
-  return omx->free_output_buffer(&omx->m_out_mem_ptr[index]);
+    if (!enabled)
+        return omx->free_output_buffer(bufhdr);
+
+    if (enabled && omx->is_component_secure())
+        return OMX_ErrorNone;
+
+    if (!allocated_count || !bufhdr) {
+        DEBUG_PRINT_ERROR("\n Color convert no buffer to be freed %p",bufhdr);
+        return OMX_ErrorBadParameter;
+    }
+
+    index = bufhdr - m_out_mem_ptr_client;
+
+    if (index >= omx->drv_ctx.op_buf.actualcount) {
+        DEBUG_PRINT_ERROR("\n Incorrect index color convert free_output_buffer");
+        return OMX_ErrorBadParameter;
+    }
+
+    if (pmem_fd[index] > 0) {
+        munmap(pmem_baseaddress[index], buffer_size_req);
+        close(pmem_fd[index]);
+    }
+
+    pmem_fd[index] = -1;
+    omx->free_ion_memory(&op_buf_ion_info[index]);
+    m_heap_ptr[index].video_heap_ptr = NULL;
+
+    if (allocated_count > 0)
+        allocated_count--;
+    else
+        allocated_count = 0;
+
+    if (!allocated_count) {
+        c2d.close();
+        init_members();
+    }
+
+    return omx->free_output_buffer(&omx->m_out_mem_ptr[index]);
 }
 
 OMX_ERRORTYPE omx_vdec::allocate_color_convert_buf::allocate_buffers_color_convert(OMX_HANDLETYPE hComp,
-  OMX_BUFFERHEADERTYPE **bufferHdr,OMX_U32 port,OMX_PTR appData,OMX_U32 bytes)
+        OMX_BUFFERHEADERTYPE **bufferHdr,OMX_U32 port,OMX_PTR appData,OMX_U32 bytes)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  if (!enabled){
-    eRet = omx->allocate_output_buffer(hComp,bufferHdr,port,appData,bytes);
-    return eRet;
-  }
-  if (enabled && omx->is_component_secure()) {
-    DEBUG_PRINT_ERROR("\nNotin color convert mode secure_mode %d",
-                      omx->is_component_secure());
-    return OMX_ErrorUnsupportedSetting;
-  }
-  if (!bufferHdr || bytes > buffer_size_req) {
-    DEBUG_PRINT_ERROR("\n Invalid params allocate_buffers_color_convert %p", bufferHdr);
-    DEBUG_PRINT_ERROR("\n color_convert buffer_size_req %d bytes %d",
-                      buffer_size_req,bytes);
-    return OMX_ErrorBadParameter;
-  }
-  if (allocated_count >= omx->drv_ctx.op_buf.actualcount) {
-    DEBUG_PRINT_ERROR("\n Actual count err in allocate_buffers_color_convert");
-    return OMX_ErrorInsufficientResources;
-  }
-  OMX_BUFFERHEADERTYPE *temp_bufferHdr = NULL;
-  eRet = omx->allocate_output_buffer(hComp,&temp_bufferHdr,
-         port,appData,omx->drv_ctx.op_buf.buffer_size);
-  if (eRet != OMX_ErrorNone || !temp_bufferHdr){
-    DEBUG_PRINT_ERROR("\n Buffer allocation failed color_convert");
-    return eRet;
-  }
-  if ((temp_bufferHdr - omx->m_out_mem_ptr) >=
-      omx->drv_ctx.op_buf.actualcount) {
-    DEBUG_PRINT_ERROR("\n Invalid header index %d",
-             (temp_bufferHdr - omx->m_out_mem_ptr));
-    return OMX_ErrorUndefined;
-  }
-  unsigned int i = allocated_count;
-  op_buf_ion_info[i].ion_device_fd = omx->alloc_map_ion_memory(
-    buffer_size_req,buffer_alignment_req,
-    &op_buf_ion_info[i].ion_alloc_data,&op_buf_ion_info[i].fd_ion_data,
-    ION_FLAG_CACHED);
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
 
-  pmem_fd[i] = op_buf_ion_info[i].fd_ion_data.fd;
-  if (op_buf_ion_info[i].ion_device_fd < 0) {
-    DEBUG_PRINT_ERROR("\n alloc_map_ion failed in color_convert");
-    return OMX_ErrorInsufficientResources;
-  }
-  pmem_baseaddress[i] = (unsigned char *)mmap(NULL,buffer_size_req,
-                     PROT_READ|PROT_WRITE,MAP_SHARED,pmem_fd[i],0);
+    if (!enabled) {
+        eRet = omx->allocate_output_buffer(hComp,bufferHdr,port,appData,bytes);
+        return eRet;
+    }
 
-  if (pmem_baseaddress[i] == MAP_FAILED) {
-    DEBUG_PRINT_ERROR("\n MMAP failed for Size %d",buffer_size_req);
-    close(pmem_fd[i]);
-    omx->free_ion_memory(&op_buf_ion_info[i]);
-    return OMX_ErrorInsufficientResources;
-  }
-  m_heap_ptr[i].video_heap_ptr = new VideoHeap (
-    op_buf_ion_info[i].ion_device_fd,buffer_size_req,
-    pmem_baseaddress[i],op_buf_ion_info[i].ion_alloc_data.handle,pmem_fd[i]);
-  m_pmem_info_client[i].pmem_fd = (OMX_U32)m_heap_ptr[i].video_heap_ptr.get();
-  m_pmem_info_client[i].offset = 0;
-  m_platform_entry_client[i].entry = (void *)&m_pmem_info_client[i];
-  m_platform_entry_client[i].type = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
-  m_platform_list_client[i].nEntries = 1;
-  m_platform_list_client[i].entryList = &m_platform_entry_client[i];
-  m_out_mem_ptr_client[i].pOutputPortPrivate = NULL;
-  m_out_mem_ptr_client[i].nAllocLen = buffer_size_req;
-  m_out_mem_ptr_client[i].nFilledLen = 0;
-  m_out_mem_ptr_client[i].nFlags = 0;
-  m_out_mem_ptr_client[i].nOutputPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
-  m_out_mem_ptr_client[i].nSize = sizeof(OMX_BUFFERHEADERTYPE);
-  m_out_mem_ptr_client[i].nVersion.nVersion = OMX_SPEC_VERSION;
-  m_out_mem_ptr_client[i].pPlatformPrivate = &m_platform_list_client[i];
-  m_out_mem_ptr_client[i].pBuffer = pmem_baseaddress[i];
-  m_out_mem_ptr_client[i].pAppPrivate = appData;
-  *bufferHdr = &m_out_mem_ptr_client[i];
-  DEBUG_PRINT_ERROR("\n IL client buffer header %p", *bufferHdr);
-  allocated_count++;
-  return eRet;
+    if (enabled && omx->is_component_secure()) {
+        DEBUG_PRINT_ERROR("\nNotin color convert mode secure_mode %d",
+                omx->is_component_secure());
+        return OMX_ErrorUnsupportedSetting;
+    }
+
+    if (!bufferHdr || bytes > buffer_size_req) {
+        DEBUG_PRINT_ERROR("\n Invalid params allocate_buffers_color_convert %p", bufferHdr);
+        DEBUG_PRINT_ERROR("\n color_convert buffer_size_req %d bytes %d",
+                buffer_size_req,bytes);
+        return OMX_ErrorBadParameter;
+    }
+
+    if (allocated_count >= omx->drv_ctx.op_buf.actualcount) {
+        DEBUG_PRINT_ERROR("\n Actual count err in allocate_buffers_color_convert");
+        return OMX_ErrorInsufficientResources;
+    }
+
+    OMX_BUFFERHEADERTYPE *temp_bufferHdr = NULL;
+    eRet = omx->allocate_output_buffer(hComp,&temp_bufferHdr,
+            port,appData,omx->drv_ctx.op_buf.buffer_size);
+
+    if (eRet != OMX_ErrorNone || !temp_bufferHdr) {
+        DEBUG_PRINT_ERROR("\n Buffer allocation failed color_convert");
+        return eRet;
+    }
+
+    if ((temp_bufferHdr - omx->m_out_mem_ptr) >=
+            omx->drv_ctx.op_buf.actualcount) {
+        DEBUG_PRINT_ERROR("\n Invalid header index %d",
+                (temp_bufferHdr - omx->m_out_mem_ptr));
+        return OMX_ErrorUndefined;
+    }
+
+    unsigned int i = allocated_count;
+    op_buf_ion_info[i].ion_device_fd = omx->alloc_map_ion_memory(
+            buffer_size_req,buffer_alignment_req,
+            &op_buf_ion_info[i].ion_alloc_data,&op_buf_ion_info[i].fd_ion_data,
+            ION_FLAG_CACHED);
+
+    pmem_fd[i] = op_buf_ion_info[i].fd_ion_data.fd;
+
+    if (op_buf_ion_info[i].ion_device_fd < 0) {
+        DEBUG_PRINT_ERROR("\n alloc_map_ion failed in color_convert");
+        return OMX_ErrorInsufficientResources;
+    }
+
+    pmem_baseaddress[i] = (unsigned char *)mmap(NULL,buffer_size_req,
+            PROT_READ|PROT_WRITE,MAP_SHARED,pmem_fd[i],0);
+
+    if (pmem_baseaddress[i] == MAP_FAILED) {
+        DEBUG_PRINT_ERROR("\n MMAP failed for Size %d",buffer_size_req);
+        close(pmem_fd[i]);
+        omx->free_ion_memory(&op_buf_ion_info[i]);
+        return OMX_ErrorInsufficientResources;
+    }
+
+    m_heap_ptr[i].video_heap_ptr = new VideoHeap (
+            op_buf_ion_info[i].ion_device_fd,buffer_size_req,
+            pmem_baseaddress[i],op_buf_ion_info[i].ion_alloc_data.handle,pmem_fd[i]);
+    m_pmem_info_client[i].pmem_fd = (OMX_U32)m_heap_ptr[i].video_heap_ptr.get();
+    m_pmem_info_client[i].offset = 0;
+    m_platform_entry_client[i].entry = (void *)&m_pmem_info_client[i];
+    m_platform_entry_client[i].type = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
+    m_platform_list_client[i].nEntries = 1;
+    m_platform_list_client[i].entryList = &m_platform_entry_client[i];
+    m_out_mem_ptr_client[i].pOutputPortPrivate = NULL;
+    m_out_mem_ptr_client[i].nAllocLen = buffer_size_req;
+    m_out_mem_ptr_client[i].nFilledLen = 0;
+    m_out_mem_ptr_client[i].nFlags = 0;
+    m_out_mem_ptr_client[i].nOutputPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
+    m_out_mem_ptr_client[i].nSize = sizeof(OMX_BUFFERHEADERTYPE);
+    m_out_mem_ptr_client[i].nVersion.nVersion = OMX_SPEC_VERSION;
+    m_out_mem_ptr_client[i].pPlatformPrivate = &m_platform_list_client[i];
+    m_out_mem_ptr_client[i].pBuffer = pmem_baseaddress[i];
+    m_out_mem_ptr_client[i].pAppPrivate = appData;
+    *bufferHdr = &m_out_mem_ptr_client[i];
+    DEBUG_PRINT_ERROR("\n IL client buffer header %p", *bufferHdr);
+    allocated_count++;
+    return eRet;
 }
 
 bool omx_vdec::is_component_secure()
 {
-  return secure_mode;
+    return secure_mode;
 }
 
 bool omx_vdec::allocate_color_convert_buf::get_color_format(OMX_COLOR_FORMATTYPE &dest_color_format)
 {
-  bool status = true;
-  if (!enabled) {
-    if (omx->drv_ctx.output_format == VDEC_YUV_FORMAT_TILE_4x2)
-     dest_color_format =  (OMX_COLOR_FORMATTYPE)
-            QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka;
-    else if (omx->drv_ctx.output_format == VDEC_YUV_FORMAT_NV12)
-      dest_color_format = OMX_COLOR_FormatYUV420SemiPlanar;
-    else
-      status = false;
-  } else {
-    if (ColorFormat != OMX_COLOR_FormatYUV420Planar) {
-      status = false;
-    } else
-      dest_color_format = OMX_COLOR_FormatYUV420Planar;
-  }
-  return status;
+    bool status = true;
+
+    if (!enabled) {
+        if (omx->drv_ctx.output_format == VDEC_YUV_FORMAT_TILE_4x2)
+            dest_color_format =  (OMX_COLOR_FORMATTYPE)
+                QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka;
+        else if (omx->drv_ctx.output_format == VDEC_YUV_FORMAT_NV12)
+            dest_color_format = OMX_COLOR_FormatYUV420SemiPlanar;
+        else
+            status = false;
+    } else {
+        if (ColorFormat != OMX_COLOR_FormatYUV420Planar) {
+            status = false;
+        } else
+            dest_color_format = OMX_COLOR_FormatYUV420Planar;
+    }
+
+    return status;
 }
diff --git a/mm-video-v4l2/vidc/vdec/src/omx_vdec_hevc.cpp b/mm-video-v4l2/vidc/vdec/src/omx_vdec_hevc.cpp
index b2e6408..e9ed0be 100644
--- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_hevc.cpp
+++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_hevc.cpp
@@ -120,9 +120,9 @@
 #define MEM_HEAP_ID ION_CP_MM_HEAP_ID
 
 #ifdef _ANDROID_
-    extern "C"{
-        #include<utils/Log.h>
-    }
+extern "C" {
+#include<utils/Log.h>
+}
 #endif//_ANDROID_
 
 #define SZ_4K 0x1000
@@ -135,183 +135,176 @@
 #define DEFAULT_EXTRADATA (OMX_INTERLACE_EXTRADATA)
 void* async_message_thread (void *input)
 {
-  OMX_BUFFERHEADERTYPE *buffer;
-  struct v4l2_plane plane[VIDEO_MAX_PLANES];
-  struct pollfd pfd;
-  struct v4l2_buffer v4l2_buf;
-  memset((void *)&v4l2_buf,0,sizeof(v4l2_buf));
-  struct v4l2_event dqevent;
-  omx_vdec *omx = reinterpret_cast<omx_vdec*>(input);
-  pfd.events = POLLIN | POLLRDNORM | POLLOUT | POLLWRNORM | POLLRDBAND | POLLPRI;
-  pfd.fd = omx->drv_ctx.video_driver_fd;
-  int error_code = 0,rc=0,bytes_read = 0,bytes_written = 0;
-  DEBUG_PRINT_HIGH("omx_vdec: Async thread start\n");
-  prctl(PR_SET_NAME, (unsigned long)"VideoDecCallBackThread", 0, 0, 0);
-  while (1)
-  {
-    rc = poll(&pfd, 1, POLL_TIMEOUT);
-    if (!rc) {
-      DEBUG_PRINT_ERROR("Poll timedout\n");
-      break;
-    } else if (rc < 0) {
-      DEBUG_PRINT_ERROR("Error while polling: %d\n", rc);
-      break;
+    OMX_BUFFERHEADERTYPE *buffer;
+    struct v4l2_plane plane[VIDEO_MAX_PLANES];
+    struct pollfd pfd;
+    struct v4l2_buffer v4l2_buf;
+    memset((void *)&v4l2_buf,0,sizeof(v4l2_buf));
+    struct v4l2_event dqevent;
+    omx_vdec *omx = reinterpret_cast<omx_vdec*>(input);
+    pfd.events = POLLIN | POLLRDNORM | POLLOUT | POLLWRNORM | POLLRDBAND | POLLPRI;
+    pfd.fd = omx->drv_ctx.video_driver_fd;
+    int error_code = 0,rc=0,bytes_read = 0,bytes_written = 0;
+    DEBUG_PRINT_HIGH("omx_vdec: Async thread start\n");
+    prctl(PR_SET_NAME, (unsigned long)"VideoDecCallBackThread", 0, 0, 0);
+    while (1) {
+        rc = poll(&pfd, 1, POLL_TIMEOUT);
+        if (!rc) {
+            DEBUG_PRINT_ERROR("Poll timedout\n");
+            break;
+        } else if (rc < 0) {
+            DEBUG_PRINT_ERROR("Error while polling: %d\n", rc);
+            break;
+        }
+        if ((pfd.revents & POLLIN) || (pfd.revents & POLLRDNORM)) {
+            struct vdec_msginfo vdec_msg;
+            v4l2_buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+            v4l2_buf.memory = V4L2_MEMORY_USERPTR;
+            v4l2_buf.length = omx->drv_ctx.num_planes;
+            v4l2_buf.m.planes = plane;
+            while (!ioctl(pfd.fd, VIDIOC_DQBUF, &v4l2_buf)) {
+                vdec_msg.msgcode=VDEC_MSG_RESP_OUTPUT_BUFFER_DONE;
+                vdec_msg.status_code=VDEC_S_SUCCESS;
+                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;
+                if (vdec_msg.msgdata.output_frame.len) {
+                    vdec_msg.msgdata.output_frame.framesize.left = plane[0].reserved[2];
+                    vdec_msg.msgdata.output_frame.framesize.top = plane[0].reserved[3];
+                    vdec_msg.msgdata.output_frame.framesize.right = plane[0].reserved[4];
+                    vdec_msg.msgdata.output_frame.framesize.bottom = plane[0].reserved[5];
+                }
+                if (omx->async_message_process(input,&vdec_msg) < 0) {
+                    DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
+                    break;
+                }
+            }
+        }
+        if ((pfd.revents & POLLOUT) || (pfd.revents & POLLWRNORM)) {
+            struct vdec_msginfo vdec_msg;
+            v4l2_buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+            v4l2_buf.memory = V4L2_MEMORY_USERPTR;
+            v4l2_buf.length = 1;
+            v4l2_buf.m.planes = plane;
+            while (!ioctl(pfd.fd, VIDIOC_DQBUF, &v4l2_buf)) {
+                vdec_msg.msgcode=VDEC_MSG_RESP_INPUT_BUFFER_DONE;
+                vdec_msg.status_code=VDEC_S_SUCCESS;
+                vdec_msg.msgdata.input_frame_clientdata=(void*)&v4l2_buf;
+                if (omx->async_message_process(input,&vdec_msg) < 0) {
+                    DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
+                    break;
+                }
+            }
+        }
+        if (pfd.revents & POLLPRI) {
+            rc = ioctl(pfd.fd, VIDIOC_DQEVENT, &dqevent);
+            if (dqevent.type == V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_CHANGED_INSUFFICIENT ) {
+                struct vdec_msginfo vdec_msg;
+                vdec_msg.msgcode=VDEC_MSG_EVT_CONFIG_CHANGED;
+                vdec_msg.status_code=VDEC_S_SUCCESS;
+                DEBUG_PRINT_HIGH("\n VIDC Port Reconfig recieved \n");
+                if (omx->async_message_process(input,&vdec_msg) < 0) {
+                    DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
+                    break;
+                }
+            } else if (dqevent.type == V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_CHANGED_SUFFICIENT ) {
+                struct vdec_msginfo vdec_msg;
+                vdec_msg.msgcode=VDEC_MSG_EVT_INFO_CONFIG_CHANGED;
+                vdec_msg.status_code=VDEC_S_SUCCESS;
+                DEBUG_PRINT_HIGH("\n VIDC Port Reconfig recieved \n");
+                if (omx->async_message_process(input,&vdec_msg) < 0) {
+                    DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
+                    break;
+                }
+            } else if (dqevent.type == V4L2_EVENT_MSM_VIDC_FLUSH_DONE) {
+                struct vdec_msginfo vdec_msg;
+                vdec_msg.msgcode=VDEC_MSG_RESP_FLUSH_INPUT_DONE;
+                vdec_msg.status_code=VDEC_S_SUCCESS;
+                DEBUG_PRINT_HIGH("\n VIDC Flush Done Recieved \n");
+                if (omx->async_message_process(input,&vdec_msg) < 0) {
+                    DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
+                    break;
+                }
+                vdec_msg.msgcode=VDEC_MSG_RESP_FLUSH_OUTPUT_DONE;
+                vdec_msg.status_code=VDEC_S_SUCCESS;
+                DEBUG_PRINT_HIGH("\n VIDC Flush Done Recieved \n");
+                if (omx->async_message_process(input,&vdec_msg) < 0) {
+                    DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
+                    break;
+                }
+            } else if (dqevent.type == V4L2_EVENT_MSM_VIDC_CLOSE_DONE) {
+                DEBUG_PRINT_HIGH("\n VIDC Close Done Recieved and async_message_thread Exited \n");
+                break;
+            } else if (dqevent.type == V4L2_EVENT_MSM_VIDC_SYS_ERROR) {
+                struct vdec_msginfo vdec_msg;
+                vdec_msg.msgcode=VDEC_MSG_EVT_HW_ERROR;
+                vdec_msg.status_code=VDEC_S_SUCCESS;
+                DEBUG_PRINT_HIGH("\n SYS Error Recieved \n");
+                if (omx->async_message_process(input,&vdec_msg) < 0) {
+                    DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
+                    break;
+                }
+            } else {
+                DEBUG_PRINT_HIGH("\n VIDC Some Event recieved \n");
+                continue;
+            }
+        }
     }
-    if ((pfd.revents & POLLIN) || (pfd.revents & POLLRDNORM)) {
-      struct vdec_msginfo vdec_msg;
-      v4l2_buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-      v4l2_buf.memory = V4L2_MEMORY_USERPTR;
-      v4l2_buf.length = omx->drv_ctx.num_planes;
-      v4l2_buf.m.planes = plane;
-      while(!ioctl(pfd.fd, VIDIOC_DQBUF, &v4l2_buf)) {
-        vdec_msg.msgcode=VDEC_MSG_RESP_OUTPUT_BUFFER_DONE;
-        vdec_msg.status_code=VDEC_S_SUCCESS;
-        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;
-        if (vdec_msg.msgdata.output_frame.len) {
-            vdec_msg.msgdata.output_frame.framesize.left = plane[0].reserved[2];
-            vdec_msg.msgdata.output_frame.framesize.top = plane[0].reserved[3];
-            vdec_msg.msgdata.output_frame.framesize.right = plane[0].reserved[4];
-            vdec_msg.msgdata.output_frame.framesize.bottom = plane[0].reserved[5];
-        }
-        if (omx->async_message_process(input,&vdec_msg) < 0) {
-          DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
-          break;
-        }
-      }
-    }
-    if((pfd.revents & POLLOUT) || (pfd.revents & POLLWRNORM)) {
-      struct vdec_msginfo vdec_msg;
-      v4l2_buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-      v4l2_buf.memory = V4L2_MEMORY_USERPTR;
-      v4l2_buf.length = 1;
-      v4l2_buf.m.planes = plane;
-      while(!ioctl(pfd.fd, VIDIOC_DQBUF, &v4l2_buf)) {
-        vdec_msg.msgcode=VDEC_MSG_RESP_INPUT_BUFFER_DONE;
-        vdec_msg.status_code=VDEC_S_SUCCESS;
-        vdec_msg.msgdata.input_frame_clientdata=(void*)&v4l2_buf;
-        if (omx->async_message_process(input,&vdec_msg) < 0) {
-          DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
-          break;
-        }
-      }
-    }
-    if (pfd.revents & POLLPRI){
-      rc = ioctl(pfd.fd, VIDIOC_DQEVENT, &dqevent);
-      if(dqevent.type == V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_CHANGED_INSUFFICIENT ) {
-        struct vdec_msginfo vdec_msg;
-        vdec_msg.msgcode=VDEC_MSG_EVT_CONFIG_CHANGED;
-        vdec_msg.status_code=VDEC_S_SUCCESS;
-        DEBUG_PRINT_HIGH("\n VIDC Port Reconfig recieved \n");
-        if (omx->async_message_process(input,&vdec_msg) < 0) {
-          DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
-          break;
-        }
-      } else if(dqevent.type == V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_CHANGED_SUFFICIENT ) {
-        struct vdec_msginfo vdec_msg;
-        vdec_msg.msgcode=VDEC_MSG_EVT_INFO_CONFIG_CHANGED;
-        vdec_msg.status_code=VDEC_S_SUCCESS;
-        DEBUG_PRINT_HIGH("\n VIDC Port Reconfig recieved \n");
-        if (omx->async_message_process(input,&vdec_msg) < 0) {
-          DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
-          break;
-        }
-      } else if (dqevent.type == V4L2_EVENT_MSM_VIDC_FLUSH_DONE) {
-        struct vdec_msginfo vdec_msg;
-        vdec_msg.msgcode=VDEC_MSG_RESP_FLUSH_INPUT_DONE;
-        vdec_msg.status_code=VDEC_S_SUCCESS;
-        DEBUG_PRINT_HIGH("\n VIDC Flush Done Recieved \n");
-        if (omx->async_message_process(input,&vdec_msg) < 0) {
-          DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
-          break;
-        }
-        vdec_msg.msgcode=VDEC_MSG_RESP_FLUSH_OUTPUT_DONE;
-        vdec_msg.status_code=VDEC_S_SUCCESS;
-        DEBUG_PRINT_HIGH("\n VIDC Flush Done Recieved \n");
-        if (omx->async_message_process(input,&vdec_msg) < 0) {
-          DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
-          break;
-        }
-      } else if (dqevent.type == V4L2_EVENT_MSM_VIDC_CLOSE_DONE) {
-        DEBUG_PRINT_HIGH("\n VIDC Close Done Recieved and async_message_thread Exited \n");
-        break;
-      } else if(dqevent.type == V4L2_EVENT_MSM_VIDC_SYS_ERROR) {
-        struct vdec_msginfo vdec_msg;
-        vdec_msg.msgcode=VDEC_MSG_EVT_HW_ERROR;
-        vdec_msg.status_code=VDEC_S_SUCCESS;
-        DEBUG_PRINT_HIGH("\n SYS Error Recieved \n");
-        if (omx->async_message_process(input,&vdec_msg) < 0) {
-          DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
-          break;
-        }
-      } else {
-        DEBUG_PRINT_HIGH("\n VIDC Some Event recieved \n");
-        continue;
-      }
-    }
-  }
-  DEBUG_PRINT_HIGH("omx_vdec: Async thread stop\n");
-  return NULL;
+    DEBUG_PRINT_HIGH("omx_vdec: Async thread stop\n");
+    return NULL;
 }
 
 void* message_thread(void *input)
 {
-  omx_vdec* omx = reinterpret_cast<omx_vdec*>(input);
-  unsigned char id;
-  int n;
-  if (omx == NULL)
-  {
-    DEBUG_PRINT_ERROR("message thread null pointer rxd\n");
+    omx_vdec* omx = reinterpret_cast<omx_vdec*>(input);
+    unsigned char id;
+    int n;
+    if (omx == NULL) {
+        DEBUG_PRINT_ERROR("message thread null pointer rxd\n");
+        return NULL;
+    }
+
+    DEBUG_PRINT_HIGH("omx_vdec: message thread start\n");
+    prctl(PR_SET_NAME, (unsigned long)"VideoDecMsgThread", 0, 0, 0);
+    while (1) {
+
+        n = read(omx->m_pipe_in, &id, 1);
+
+        if (0 == n) {
+            break;
+        }
+
+        if (1 == n) {
+            omx->process_event_cb(omx, id);
+        }
+        if ((n < 0) && (errno != EINTR)) {
+            DEBUG_PRINT_LOW("\nERROR: read from pipe failed, ret %d errno %d", n, errno);
+            break;
+        }
+    }
+    DEBUG_PRINT_HIGH("omx_vdec: message thread stop\n");
     return NULL;
-  }
-
-  DEBUG_PRINT_HIGH("omx_vdec: message thread start\n");
-  prctl(PR_SET_NAME, (unsigned long)"VideoDecMsgThread", 0, 0, 0);
-  while (1)
-  {
-
-    n = read(omx->m_pipe_in, &id, 1);
-
-    if(0 == n)
-    {
-      break;
-    }
-
-    if (1 == n)
-    {
-        omx->process_event_cb(omx, id);
-    }
-    if ((n < 0) && (errno != EINTR))
-    {
-      DEBUG_PRINT_LOW("\nERROR: read from pipe failed, ret %d errno %d", n, errno);
-      break;
-    }
-  }
-  DEBUG_PRINT_HIGH("omx_vdec: message thread stop\n");
-  return NULL;
 }
 
 void post_message(omx_vdec *omx, unsigned char id)
 {
-  int ret_value;
+    int ret_value;
 
-  if (omx == NULL)
-  {
-    DEBUG_PRINT_ERROR("message thread null pointer rxd\n");
-    return;
-  }
-  DEBUG_PRINT_LOW("omx_vdec: post_message %d pipe out%d\n", id,omx->m_pipe_out);
-  ret_value = write(omx->m_pipe_out, &id, 1);
-  DEBUG_PRINT_LOW("post_message to pipe done %d\n",ret_value);
+    if (omx == NULL) {
+        DEBUG_PRINT_ERROR("message thread null pointer rxd\n");
+        return;
+    }
+    DEBUG_PRINT_LOW("omx_vdec: post_message %d pipe out%d\n", id,omx->m_pipe_out);
+    ret_value = write(omx->m_pipe_out, &id, 1);
+    DEBUG_PRINT_LOW("post_message to pipe done %d\n",ret_value);
 }
 
 // omx_cmd_queue destructor
 omx_vdec::omx_cmd_queue::~omx_cmd_queue()
 {
-  // Nothing to do
+    // Nothing to do
 }
 
 // omx cmd queue constructor
@@ -323,49 +316,41 @@
 // omx cmd queue insert
 bool omx_vdec::omx_cmd_queue::insert_entry(unsigned p1, unsigned p2, unsigned id)
 {
-  bool ret = true;
-  if(m_size < OMX_CORE_CONTROL_CMDQ_SIZE)
-  {
-    m_q[m_write].id       = id;
-    m_q[m_write].param1   = p1;
-    m_q[m_write].param2   = p2;
-    m_write++;
-    m_size ++;
-    if(m_write >= OMX_CORE_CONTROL_CMDQ_SIZE)
-    {
-      m_write = 0;
+    bool ret = true;
+    if (m_size < OMX_CORE_CONTROL_CMDQ_SIZE) {
+        m_q[m_write].id       = id;
+        m_q[m_write].param1   = p1;
+        m_q[m_write].param2   = p2;
+        m_write++;
+        m_size ++;
+        if (m_write >= OMX_CORE_CONTROL_CMDQ_SIZE) {
+            m_write = 0;
+        }
+    } else {
+        ret = false;
+        DEBUG_PRINT_ERROR("ERROR: %s()::Command Queue Full\n", __func__);
     }
-  }
-  else
-  {
-    ret = false;
-    DEBUG_PRINT_ERROR("ERROR: %s()::Command Queue Full\n", __func__);
-  }
-  return ret;
+    return ret;
 }
 
 // omx cmd queue pop
 bool omx_vdec::omx_cmd_queue::pop_entry(unsigned *p1, unsigned *p2, unsigned *id)
 {
-  bool ret = true;
-  if (m_size > 0)
-  {
-    *id = m_q[m_read].id;
-    *p1 = m_q[m_read].param1;
-    *p2 = m_q[m_read].param2;
-    // Move the read pointer ahead
-    ++m_read;
-    --m_size;
-    if(m_read >= OMX_CORE_CONTROL_CMDQ_SIZE)
-    {
-      m_read = 0;
+    bool ret = true;
+    if (m_size > 0) {
+        *id = m_q[m_read].id;
+        *p1 = m_q[m_read].param1;
+        *p2 = m_q[m_read].param2;
+        // Move the read pointer ahead
+        ++m_read;
+        --m_size;
+        if (m_read >= OMX_CORE_CONTROL_CMDQ_SIZE) {
+            m_read = 0;
+        }
+    } else {
+        ret = false;
     }
-  }
-  else
-  {
-    ret = false;
-  }
-  return ret;
+    return ret;
 }
 
 // Retrieve the first mesg type in the queue
@@ -377,116 +362,104 @@
 #ifdef _ANDROID_
 omx_vdec::ts_arr_list::ts_arr_list()
 {
-  //initialize timestamps array
-  memset(m_ts_arr_list, 0, sizeof(m_ts_arr_list) );
+    //initialize timestamps array
+    memset(m_ts_arr_list, 0, sizeof(m_ts_arr_list) );
 }
 omx_vdec::ts_arr_list::~ts_arr_list()
 {
-  //free m_ts_arr_list?
+    //free m_ts_arr_list?
 }
 
 bool omx_vdec::ts_arr_list::insert_ts(OMX_TICKS ts)
 {
-  bool ret = true;
-  bool duplicate_ts = false;
-  int idx = 0;
+    bool ret = true;
+    bool duplicate_ts = false;
+    int idx = 0;
 
-  //insert at the first available empty location
-  for ( ; idx < MAX_NUM_INPUT_OUTPUT_BUFFERS; idx++)
-  {
-    if (!m_ts_arr_list[idx].valid)
-    {
-      //found invalid or empty entry, save timestamp
-      m_ts_arr_list[idx].valid = true;
-      m_ts_arr_list[idx].timestamp = ts;
-      DEBUG_PRINT_LOW("Insert_ts(): Inserting TIMESTAMP (%lld) at idx (%d)",
-                       ts, idx);
-      break;
+    //insert at the first available empty location
+    for ( ; idx < MAX_NUM_INPUT_OUTPUT_BUFFERS; idx++) {
+        if (!m_ts_arr_list[idx].valid) {
+            //found invalid or empty entry, save timestamp
+            m_ts_arr_list[idx].valid = true;
+            m_ts_arr_list[idx].timestamp = ts;
+            DEBUG_PRINT_LOW("Insert_ts(): Inserting TIMESTAMP (%lld) at idx (%d)",
+                    ts, idx);
+            break;
+        }
     }
-  }
 
-  if (idx == MAX_NUM_INPUT_OUTPUT_BUFFERS)
-  {
-    DEBUG_PRINT_LOW("Timestamp array list is FULL. Unsuccessful insert");
-    ret = false;
-  }
-  return ret;
+    if (idx == MAX_NUM_INPUT_OUTPUT_BUFFERS) {
+        DEBUG_PRINT_LOW("Timestamp array list is FULL. Unsuccessful insert");
+        ret = false;
+    }
+    return ret;
 }
 
 bool omx_vdec::ts_arr_list::pop_min_ts(OMX_TICKS &ts)
 {
-  bool ret = true;
-  int min_idx = -1;
-  OMX_TICKS min_ts = 0;
-  int idx = 0;
+    bool ret = true;
+    int min_idx = -1;
+    OMX_TICKS min_ts = 0;
+    int idx = 0;
 
-  for ( ; idx < MAX_NUM_INPUT_OUTPUT_BUFFERS; idx++)
-  {
+    for ( ; idx < MAX_NUM_INPUT_OUTPUT_BUFFERS; idx++) {
 
-    if (m_ts_arr_list[idx].valid)
-    {
-      //found valid entry, save index
-      if (min_idx < 0)
-      {
-        //first valid entry
-        min_ts = m_ts_arr_list[idx].timestamp;
-        min_idx = idx;
-      }
-      else if (m_ts_arr_list[idx].timestamp < min_ts)
-      {
-        min_ts = m_ts_arr_list[idx].timestamp;
-        min_idx = idx;
-      }
+        if (m_ts_arr_list[idx].valid) {
+            //found valid entry, save index
+            if (min_idx < 0) {
+                //first valid entry
+                min_ts = m_ts_arr_list[idx].timestamp;
+                min_idx = idx;
+            } else if (m_ts_arr_list[idx].timestamp < min_ts) {
+                min_ts = m_ts_arr_list[idx].timestamp;
+                min_idx = idx;
+            }
+        }
+
     }
 
-  }
+    if (min_idx < 0) {
+        //no valid entries found
+        DEBUG_PRINT_LOW("Timestamp array list is empty. Unsuccessful pop");
+        ts = 0;
+        ret = false;
+    } else {
+        ts = m_ts_arr_list[min_idx].timestamp;
+        m_ts_arr_list[min_idx].valid = false;
+        DEBUG_PRINT_LOW("Pop_min_ts:Timestamp (%lld), index(%d)",
+                ts, min_idx);
+    }
 
-  if (min_idx < 0)
-  {
-    //no valid entries found
-    DEBUG_PRINT_LOW("Timestamp array list is empty. Unsuccessful pop");
-    ts = 0;
-    ret = false;
-  }
-  else
-  {
-    ts = m_ts_arr_list[min_idx].timestamp;
-    m_ts_arr_list[min_idx].valid = false;
-    DEBUG_PRINT_LOW("Pop_min_ts:Timestamp (%lld), index(%d)",
-                     ts, min_idx);
-  }
-
-  return ret;
+    return ret;
 
 }
 
 
 bool omx_vdec::ts_arr_list::reset_ts_list()
 {
-  bool ret = true;
-  int idx = 0;
+    bool ret = true;
+    int idx = 0;
 
-  DEBUG_PRINT_LOW("reset_ts_list(): Resetting timestamp array list");
-  for ( ; idx < MAX_NUM_INPUT_OUTPUT_BUFFERS; idx++)
-  {
-    m_ts_arr_list[idx].valid = false;
-  }
-  return ret;
+    DEBUG_PRINT_LOW("reset_ts_list(): Resetting timestamp array list");
+    for ( ; idx < MAX_NUM_INPUT_OUTPUT_BUFFERS; idx++) {
+        m_ts_arr_list[idx].valid = false;
+    }
+    return ret;
 }
 #endif
 
 // factory function executed by the core to create instances
 void *get_omx_component_factory_fn(void)
 {
-  return (new omx_vdec);
+    return (new omx_vdec);
 }
 
 #ifdef _ANDROID_
 #ifdef USE_ION
 VideoHeap::VideoHeap(int devicefd, size_t size, void* base,
-                     struct ion_handle *handle, int ionMapfd)
+        struct ion_handle *handle, int ionMapfd)
 {
-//    ionInit(devicefd, base, size, 0 , MEM_DEVICE,handle,ionMapfd);
+    //    ionInit(devicefd, base, size, 0 , MEM_DEVICE,handle,ionMapfd);
 }
 #else
 VideoHeap::VideoHeap(int fd, size_t size, void* base)
@@ -497,823 +470,725 @@
 #endif
 #endif // _ANDROID_
 /* ======================================================================
-FUNCTION
-  omx_vdec::omx_vdec
+   FUNCTION
+   omx_vdec::omx_vdec
 
-DESCRIPTION
-  Constructor
+   DESCRIPTION
+   Constructor
 
-PARAMETERS
-  None
+   PARAMETERS
+   None
 
-RETURN VALUE
-  None.
-========================================================================== */
+   RETURN VALUE
+   None.
+   ========================================================================== */
 omx_vdec::omx_vdec(): m_error_propogated(false),
-	m_state(OMX_StateInvalid),
-	m_app_data(NULL),
-	m_inp_mem_ptr(NULL),
-	m_out_mem_ptr(NULL),
-	m_inp_err_count(0),
-	input_flush_progress (false),
-	output_flush_progress (false),
-	input_use_buffer (false),
-	output_use_buffer (false),
-	ouput_egl_buffers(false),
-	m_use_output_pmem(OMX_FALSE),
-	m_out_mem_region_smi(OMX_FALSE),
-	m_out_pvt_entry_pmem(OMX_FALSE),
-	pending_input_buffers(0),
-	pending_output_buffers(0),
-	m_out_bm_count(0),
-	m_inp_bm_count(0),
-	m_inp_bPopulated(OMX_FALSE),
-	m_out_bPopulated(OMX_FALSE),
-	m_flags(0),
+    m_state(OMX_StateInvalid),
+    m_app_data(NULL),
+    m_inp_mem_ptr(NULL),
+    m_out_mem_ptr(NULL),
+    m_inp_err_count(0),
+    input_flush_progress (false),
+    output_flush_progress (false),
+    input_use_buffer (false),
+    output_use_buffer (false),
+    ouput_egl_buffers(false),
+    m_use_output_pmem(OMX_FALSE),
+    m_out_mem_region_smi(OMX_FALSE),
+    m_out_pvt_entry_pmem(OMX_FALSE),
+    pending_input_buffers(0),
+    pending_output_buffers(0),
+    m_out_bm_count(0),
+    m_inp_bm_count(0),
+    m_inp_bPopulated(OMX_FALSE),
+    m_out_bPopulated(OMX_FALSE),
+    m_flags(0),
 #ifdef _ANDROID_
-	m_heap_ptr(NULL),
+    m_heap_ptr(NULL),
 #endif
-	m_inp_bEnabled(OMX_TRUE),
-	m_out_bEnabled(OMX_TRUE),
-	m_in_alloc_cnt(0),
-	m_platform_list(NULL),
-	m_platform_entry(NULL),
-	m_pmem_info(NULL),
-	arbitrary_bytes (true),
-	psource_frame (NULL),
-	pdest_frame (NULL),
-	m_inp_heap_ptr (NULL),
-	m_phdr_pmem_ptr(NULL),
-	m_heap_inp_bm_count (0),
-	codec_type_parse ((codec_type)0),
-	first_frame_meta (true),
-	frame_count (0),
-	nal_count (0),
-	nal_length(0),
-	look_ahead_nal (false),
-	first_frame(0),
-	first_buffer(NULL),
-	first_frame_size (0),
-	m_device_file_ptr(NULL),
-	m_vc1_profile((vc1_profile_type)0),
-	h264_last_au_ts(LLONG_MAX),
-	h264_last_au_flags(0),
-	prev_ts(LLONG_MAX),
-	rst_prev_ts(true),
-	frm_int(0),
-	in_reconfig(false),
-	m_display_id(NULL),
-	h264_parser(NULL),
-	client_extradata(0),
+    m_inp_bEnabled(OMX_TRUE),
+    m_out_bEnabled(OMX_TRUE),
+    m_in_alloc_cnt(0),
+    m_platform_list(NULL),
+    m_platform_entry(NULL),
+    m_pmem_info(NULL),
+    arbitrary_bytes (true),
+    psource_frame (NULL),
+    pdest_frame (NULL),
+    m_inp_heap_ptr (NULL),
+    m_phdr_pmem_ptr(NULL),
+    m_heap_inp_bm_count (0),
+    codec_type_parse ((codec_type)0),
+    first_frame_meta (true),
+    frame_count (0),
+    nal_count (0),
+    nal_length(0),
+    look_ahead_nal (false),
+    first_frame(0),
+    first_buffer(NULL),
+    first_frame_size (0),
+    m_device_file_ptr(NULL),
+    m_vc1_profile((vc1_profile_type)0),
+    h264_last_au_ts(LLONG_MAX),
+    h264_last_au_flags(0),
+    prev_ts(LLONG_MAX),
+    rst_prev_ts(true),
+    frm_int(0),
+    in_reconfig(false),
+    m_display_id(NULL),
+    h264_parser(NULL),
+    client_extradata(0),
 #ifdef _ANDROID_
-	m_enable_android_native_buffers(OMX_FALSE),
-	m_use_android_native_buffers(OMX_FALSE),
-	iDivXDrmDecrypt(NULL),
+    m_enable_android_native_buffers(OMX_FALSE),
+    m_use_android_native_buffers(OMX_FALSE),
+    iDivXDrmDecrypt(NULL),
 #endif
-	m_desc_buffer_ptr(NULL),
-	secure_mode(false)
+    m_desc_buffer_ptr(NULL),
+    secure_mode(false)
 {
-  /* Assumption is that , to begin with , we have all the frames with decoder */
-  DEBUG_PRINT_HIGH("In OMX vdec Constructor");
+    /* Assumption is that , to begin with , we have all the frames with decoder */
+    DEBUG_PRINT_HIGH("In OMX vdec Constructor");
 #ifdef _ANDROID_
-  char property_value[PROPERTY_VALUE_MAX] = {0};
-  property_get("vidc.dec.debug.perf", property_value, "0");
-  perf_flag = atoi(property_value);
-  if (perf_flag)
-  {
-    DEBUG_PRINT_HIGH("vidc.dec.debug.perf is %d", perf_flag);
-    dec_time.start();
-    proc_frms = latency = 0;
-  }
-  property_value[0] = '\0';
-  property_get("vidc.dec.debug.ts", property_value, "0");
-  m_debug_timestamp = atoi(property_value);
-  DEBUG_PRINT_HIGH("vidc.dec.debug.ts value is %d",m_debug_timestamp);
-  if (m_debug_timestamp)
-  {
-    time_stamp_dts.set_timestamp_reorder_mode(true);
-    time_stamp_dts.enable_debug_print(true);
-  }
+    char property_value[PROPERTY_VALUE_MAX] = {0};
+    property_get("vidc.dec.debug.perf", property_value, "0");
+    perf_flag = atoi(property_value);
+    if (perf_flag) {
+        DEBUG_PRINT_HIGH("vidc.dec.debug.perf is %d", perf_flag);
+        dec_time.start();
+        proc_frms = latency = 0;
+    }
+    property_value[0] = '\0';
+    property_get("vidc.dec.debug.ts", property_value, "0");
+    m_debug_timestamp = atoi(property_value);
+    DEBUG_PRINT_HIGH("vidc.dec.debug.ts value is %d",m_debug_timestamp);
+    if (m_debug_timestamp) {
+        time_stamp_dts.set_timestamp_reorder_mode(true);
+        time_stamp_dts.enable_debug_print(true);
+    }
 
-  property_value[0] = '\0';
-  property_get("vidc.dec.debug.concealedmb", property_value, "0");
-  m_debug_concealedmb = atoi(property_value);
-  DEBUG_PRINT_HIGH("vidc.dec.debug.concealedmb value is %d",m_debug_concealedmb);
+    property_value[0] = '\0';
+    property_get("vidc.dec.debug.concealedmb", property_value, "0");
+    m_debug_concealedmb = atoi(property_value);
+    DEBUG_PRINT_HIGH("vidc.dec.debug.concealedmb value is %d",m_debug_concealedmb);
 
 #endif
-  memset(&m_cmp,0,sizeof(m_cmp));
-  memset(&m_cb,0,sizeof(m_cb));
-  memset (&drv_ctx,0,sizeof(drv_ctx));
-  memset (&h264_scratch,0,sizeof (OMX_BUFFERHEADERTYPE));
-  memset (m_hwdevice_name,0,sizeof(m_hwdevice_name));
-  memset(m_demux_offsets, 0, sizeof(m_demux_offsets) );
-  m_demux_entries = 0;
+    memset(&m_cmp,0,sizeof(m_cmp));
+    memset(&m_cb,0,sizeof(m_cb));
+    memset (&drv_ctx,0,sizeof(drv_ctx));
+    memset (&h264_scratch,0,sizeof (OMX_BUFFERHEADERTYPE));
+    memset (m_hwdevice_name,0,sizeof(m_hwdevice_name));
+    memset(m_demux_offsets, 0, sizeof(m_demux_offsets) );
+    m_demux_entries = 0;
 #ifdef _ANDROID_ICS_
-  memset(&native_buffer, 0 ,(sizeof(struct nativebuffer) * MAX_NUM_INPUT_OUTPUT_BUFFERS));
+    memset(&native_buffer, 0 ,(sizeof(struct nativebuffer) * MAX_NUM_INPUT_OUTPUT_BUFFERS));
 #endif
-  memset(&drv_ctx.extradata_info, 0, sizeof(drv_ctx.extradata_info));
-  drv_ctx.timestamp_adjust = false;
-  drv_ctx.video_driver_fd = -1;
-  m_vendor_config.pData = NULL;
-  pthread_mutex_init(&m_lock, NULL);
-  pthread_mutex_init(&c_lock, NULL);
-  sem_init(&m_cmd_lock,0,0);
-  streaming[CAPTURE_PORT] =
-      streaming[OUTPUT_PORT] = false;
+    memset(&drv_ctx.extradata_info, 0, sizeof(drv_ctx.extradata_info));
+    drv_ctx.timestamp_adjust = false;
+    drv_ctx.video_driver_fd = -1;
+    m_vendor_config.pData = NULL;
+    pthread_mutex_init(&m_lock, NULL);
+    pthread_mutex_init(&c_lock, NULL);
+    sem_init(&m_cmd_lock,0,0);
+    streaming[CAPTURE_PORT] =
+        streaming[OUTPUT_PORT] = false;
 #ifdef _ANDROID_
-  char extradata_value[PROPERTY_VALUE_MAX] = {0};
-  property_get("vidc.dec.debug.extradata", extradata_value, "0");
-  m_debug_extradata = atoi(extradata_value);
-  DEBUG_PRINT_HIGH("vidc.dec.debug.extradata value is %d",m_debug_extradata);
+    char extradata_value[PROPERTY_VALUE_MAX] = {0};
+    property_get("vidc.dec.debug.extradata", extradata_value, "0");
+    m_debug_extradata = atoi(extradata_value);
+    DEBUG_PRINT_HIGH("vidc.dec.debug.extradata value is %d",m_debug_extradata);
 #endif
-  m_fill_output_msg = OMX_COMPONENT_GENERATE_FTB;
-  client_buffers.set_vdec_client(this);
+    m_fill_output_msg = OMX_COMPONENT_GENERATE_FTB;
+    client_buffers.set_vdec_client(this);
 }
 
 static const int event_type[] = {
-	V4L2_EVENT_MSM_VIDC_FLUSH_DONE,
-	V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_CHANGED_SUFFICIENT,
-	V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_CHANGED_INSUFFICIENT,
-	V4L2_EVENT_MSM_VIDC_CLOSE_DONE,
-	V4L2_EVENT_MSM_VIDC_SYS_ERROR
+    V4L2_EVENT_MSM_VIDC_FLUSH_DONE,
+    V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_CHANGED_SUFFICIENT,
+    V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_CHANGED_INSUFFICIENT,
+    V4L2_EVENT_MSM_VIDC_CLOSE_DONE,
+    V4L2_EVENT_MSM_VIDC_SYS_ERROR
 };
 
 static OMX_ERRORTYPE subscribe_to_events(int fd)
 {
-	OMX_ERRORTYPE eRet = OMX_ErrorNone;
-	struct v4l2_event_subscription sub;
-	int array_sz = sizeof(event_type)/sizeof(int);
-	int i,rc;
-	if (fd < 0) {
-		printf("Invalid input: %d\n", fd);
-		return OMX_ErrorBadParameter;
-	}
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    struct v4l2_event_subscription sub;
+    int array_sz = sizeof(event_type)/sizeof(int);
+    int i,rc;
+    if (fd < 0) {
+        printf("Invalid input: %d\n", fd);
+        return OMX_ErrorBadParameter;
+    }
 
-	for (i = 0; i < array_sz; ++i) {
-		memset(&sub, 0, sizeof(sub));
-		sub.type = event_type[i];
-		rc = ioctl(fd, VIDIOC_SUBSCRIBE_EVENT, &sub);
-		if (rc) {
-			printf("Failed to subscribe event: 0x%x\n", sub.type);
-			break;
-		}
-	}
-	if (i < array_sz) {
-		for (--i; i >=0 ; i--) {
-			memset(&sub, 0, sizeof(sub));
-			sub.type = event_type[i];
-			rc = ioctl(fd, VIDIOC_UNSUBSCRIBE_EVENT, &sub);
-			if (rc)
-				printf("Failed to unsubscribe event: 0x%x\n", sub.type);
-		}
-		eRet = OMX_ErrorNotImplemented;
-	}
-	return eRet;
+    for (i = 0; i < array_sz; ++i) {
+        memset(&sub, 0, sizeof(sub));
+        sub.type = event_type[i];
+        rc = ioctl(fd, VIDIOC_SUBSCRIBE_EVENT, &sub);
+        if (rc) {
+            printf("Failed to subscribe event: 0x%x\n", sub.type);
+            break;
+        }
+    }
+    if (i < array_sz) {
+        for (--i; i >=0 ; i--) {
+            memset(&sub, 0, sizeof(sub));
+            sub.type = event_type[i];
+            rc = ioctl(fd, VIDIOC_UNSUBSCRIBE_EVENT, &sub);
+            if (rc)
+                printf("Failed to unsubscribe event: 0x%x\n", sub.type);
+        }
+        eRet = OMX_ErrorNotImplemented;
+    }
+    return eRet;
 }
 
 
 static OMX_ERRORTYPE unsubscribe_to_events(int fd)
 {
-	OMX_ERRORTYPE eRet = OMX_ErrorNone;
-	struct v4l2_event_subscription sub;
-	int array_sz = sizeof(event_type)/sizeof(int);
-	int i,rc;
-	if (fd < 0) {
-		printf("Invalid input: %d\n", fd);
-		return OMX_ErrorBadParameter;
-	}
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    struct v4l2_event_subscription sub;
+    int array_sz = sizeof(event_type)/sizeof(int);
+    int i,rc;
+    if (fd < 0) {
+        printf("Invalid input: %d\n", fd);
+        return OMX_ErrorBadParameter;
+    }
 
-	for (i = 0; i < array_sz; ++i) {
-		memset(&sub, 0, sizeof(sub));
-		sub.type = event_type[i];
-		rc = ioctl(fd, VIDIOC_UNSUBSCRIBE_EVENT, &sub);
-		if (rc) {
-			printf("Failed to unsubscribe event: 0x%x\n", sub.type);
-			break;
-		}
-	}
-	return eRet;
+    for (i = 0; i < array_sz; ++i) {
+        memset(&sub, 0, sizeof(sub));
+        sub.type = event_type[i];
+        rc = ioctl(fd, VIDIOC_UNSUBSCRIBE_EVENT, &sub);
+        if (rc) {
+            printf("Failed to unsubscribe event: 0x%x\n", sub.type);
+            break;
+        }
+    }
+    return eRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::~omx_vdec
+   FUNCTION
+   omx_vdec::~omx_vdec
 
-DESCRIPTION
-  Destructor
+   DESCRIPTION
+   Destructor
 
-PARAMETERS
-  None
+   PARAMETERS
+   None
 
-RETURN VALUE
-  None.
-========================================================================== */
+   RETURN VALUE
+   None.
+   ========================================================================== */
 omx_vdec::~omx_vdec()
 {
-  m_pmem_info = NULL;
-  struct v4l2_decoder_cmd dec;
-  DEBUG_PRINT_HIGH("In OMX vdec Destructor");
-  if(m_pipe_in) close(m_pipe_in);
-  if(m_pipe_out) close(m_pipe_out);
-  m_pipe_in = -1;
-  m_pipe_out = -1;
-  DEBUG_PRINT_HIGH("Waiting on OMX Msg Thread exit");
-  pthread_join(msg_thread_id,NULL);
-  DEBUG_PRINT_HIGH("Waiting on OMX Async Thread exit");
-  dec.cmd = V4L2_DEC_CMD_STOP;
-  if (ioctl(drv_ctx.video_driver_fd, VIDIOC_DECODER_CMD, &dec))
-  {
-    DEBUG_PRINT_ERROR("\n STOP Command failed\n");
-  }
-  pthread_join(async_thread_id,NULL);
-  unsubscribe_to_events(drv_ctx.video_driver_fd);
-  close(drv_ctx.video_driver_fd);
-  pthread_mutex_destroy(&m_lock);
-  pthread_mutex_destroy(&c_lock);
-  sem_destroy(&m_cmd_lock);
-  if (perf_flag)
-  {
-    DEBUG_PRINT_HIGH("--> TOTAL PROCESSING TIME");
-    dec_time.end();
-  }
-  DEBUG_PRINT_HIGH("Exit OMX vdec Destructor");
+    m_pmem_info = NULL;
+    struct v4l2_decoder_cmd dec;
+    DEBUG_PRINT_HIGH("In OMX vdec Destructor");
+    if (m_pipe_in) close(m_pipe_in);
+    if (m_pipe_out) close(m_pipe_out);
+    m_pipe_in = -1;
+    m_pipe_out = -1;
+    DEBUG_PRINT_HIGH("Waiting on OMX Msg Thread exit");
+    pthread_join(msg_thread_id,NULL);
+    DEBUG_PRINT_HIGH("Waiting on OMX Async Thread exit");
+    dec.cmd = V4L2_DEC_CMD_STOP;
+    if (ioctl(drv_ctx.video_driver_fd, VIDIOC_DECODER_CMD, &dec)) {
+        DEBUG_PRINT_ERROR("\n STOP Command failed\n");
+    }
+    pthread_join(async_thread_id,NULL);
+    unsubscribe_to_events(drv_ctx.video_driver_fd);
+    close(drv_ctx.video_driver_fd);
+    pthread_mutex_destroy(&m_lock);
+    pthread_mutex_destroy(&c_lock);
+    sem_destroy(&m_cmd_lock);
+    if (perf_flag) {
+        DEBUG_PRINT_HIGH("--> TOTAL PROCESSING TIME");
+        dec_time.end();
+    }
+    DEBUG_PRINT_HIGH("Exit OMX vdec Destructor");
 }
 
-int release_buffers(omx_vdec* obj, enum vdec_buffer buffer_type) {
-	struct v4l2_requestbuffers bufreq;
-	int rc = 0;
-	if (buffer_type == VDEC_BUFFER_TYPE_OUTPUT){
-		bufreq.memory = V4L2_MEMORY_USERPTR;
-		bufreq.count = 0;
-		bufreq.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		rc = ioctl(obj->drv_ctx.video_driver_fd,VIDIOC_REQBUFS, &bufreq);
-	}
-	return rc;
+int release_buffers(omx_vdec* obj, enum vdec_buffer buffer_type)
+{
+    struct v4l2_requestbuffers bufreq;
+    int rc = 0;
+    if (buffer_type == VDEC_BUFFER_TYPE_OUTPUT) {
+        bufreq.memory = V4L2_MEMORY_USERPTR;
+        bufreq.count = 0;
+        bufreq.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+        rc = ioctl(obj->drv_ctx.video_driver_fd,VIDIOC_REQBUFS, &bufreq);
+    }
+    return rc;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::OMXCntrlProcessMsgCb
+   FUNCTION
+   omx_vdec::OMXCntrlProcessMsgCb
 
-DESCRIPTION
-  IL Client callbacks are generated through this routine. The decoder
-  provides the thread context for this routine.
+   DESCRIPTION
+   IL Client callbacks are generated through this routine. The decoder
+   provides the thread context for this routine.
 
-PARAMETERS
-  ctxt -- Context information related to the self.
-  id   -- Event identifier. This could be any of the following:
-          1. Command completion event
-          2. Buffer done callback event
-          3. Frame done callback event
+   PARAMETERS
+   ctxt -- Context information related to the self.
+   id   -- Event identifier. This could be any of the following:
+   1. Command completion event
+   2. Buffer done callback event
+   3. Frame done callback event
 
-RETURN VALUE
-  None.
+   RETURN VALUE
+   None.
 
-========================================================================== */
+   ========================================================================== */
 void omx_vdec::process_event_cb(void *ctxt, unsigned char id)
 {
-  signed int p1; // Parameter - 1
-  signed int p2; // Parameter - 2
-  unsigned int ident;
-  unsigned int qsize=0; // qsize
-  omx_vdec *pThis = (omx_vdec *) ctxt;
+    signed int p1; // Parameter - 1
+    signed int p2; // Parameter - 2
+    unsigned int ident;
+    unsigned int qsize=0; // qsize
+    omx_vdec *pThis = (omx_vdec *) ctxt;
 
-  if(!pThis)
-  {
-    DEBUG_PRINT_ERROR("ERROR: %s()::Context is incorrect, bailing out\n",
-        __func__);
-    return;
-  }
-
-  // Protect the shared queue data structure
-  do
-  {
-    /*Read the message id's from the queue*/
-    pthread_mutex_lock(&pThis->m_lock);
-    qsize = pThis->m_cmd_q.m_size;
-    if(qsize)
-    {
-      pThis->m_cmd_q.pop_entry((unsigned *)&p1, (unsigned *)&p2, &ident);
+    if (!pThis) {
+        DEBUG_PRINT_ERROR("ERROR: %s()::Context is incorrect, bailing out\n",
+                __func__);
+        return;
     }
 
-    if (qsize == 0 && pThis->m_state != OMX_StatePause)
-    {
-      qsize = pThis->m_ftb_q.m_size;
-      if (qsize)
-      {
-        pThis->m_ftb_q.pop_entry((unsigned *)&p1, (unsigned *)&p2, &ident);
-      }
-    }
-
-    if (qsize == 0 && pThis->m_state != OMX_StatePause)
-    {
-      qsize = pThis->m_etb_q.m_size;
-      if (qsize)
-      {
-        pThis->m_etb_q.pop_entry((unsigned *)&p1, (unsigned *)&p2, &ident);
-      }
-    }
-    pthread_mutex_unlock(&pThis->m_lock);
-
-    /*process message if we have one*/
-    if(qsize > 0)
-    {
-      id = ident;
-      switch (id)
-      {
-        case OMX_COMPONENT_GENERATE_EVENT:
-          if (pThis->m_cb.EventHandler)
-          {
-            switch (p1)
-            {
-              case OMX_CommandStateSet:
-                pThis->m_state = (OMX_STATETYPE) p2;
-                DEBUG_PRINT_HIGH("\n OMX_CommandStateSet complete, m_state = %d",
-                    pThis->m_state);
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                      OMX_EventCmdComplete, p1, p2, NULL);
-                break;
-
-              case OMX_EventError:
-                if(p2 == OMX_StateInvalid)
-                {
-                    DEBUG_PRINT_ERROR("\n OMX_EventError: p2 is OMX_StateInvalid");
-                    pThis->m_state = (OMX_STATETYPE) p2;
-                    pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                               OMX_EventError, OMX_ErrorInvalidState, p2, NULL);
-                }
-                else if (p2 == OMX_ErrorHardware)
-                {
-                   pThis->omx_report_error();
-                }
-                else
-		  {
-                    pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                      OMX_EventError, p2, (OMX_U32)NULL, NULL );
-                }
-                break;
-
-              case OMX_CommandPortDisable:
-                DEBUG_PRINT_HIGH("\n OMX_CommandPortDisable complete for port [%d]", p2);
-                if (BITMASK_PRESENT(&pThis->m_flags,
-                    OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING))
-                {
-                  BITMASK_SET(&pThis->m_flags, OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED);
-                  break;
-                }
-                if (p2 == OMX_CORE_OUTPUT_PORT_INDEX && pThis->in_reconfig)
-                {
-				  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-				  pThis->stream_off(OMX_CORE_OUTPUT_PORT_INDEX);
-				  if(release_buffers(pThis, VDEC_BUFFER_TYPE_OUTPUT))
-					  DEBUG_PRINT_HIGH("Failed to release output buffers\n");
-				  OMX_ERRORTYPE eRet1 = pThis->get_buffer_req(&pThis->drv_ctx.op_buf);
-				  pThis->in_reconfig = false;
-                  if(eRet !=  OMX_ErrorNone)
-                  {
-                      DEBUG_PRINT_ERROR("set_buffer_req failed eRet = %d",eRet);
-                      pThis->omx_report_error();
-                      break;
-                  }
-                }
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                      OMX_EventCmdComplete, p1, p2, NULL );
-                break;
-              case OMX_CommandPortEnable:
-                DEBUG_PRINT_HIGH("\n OMX_CommandPortEnable complete for port [%d]", p2);
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,\
-                                      OMX_EventCmdComplete, p1, p2, NULL );
-                break;
-
-              default:
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                         OMX_EventCmdComplete, p1, p2, NULL );
-                break;
-
-            }
-          }
-          else
-          {
-            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL\n", __func__);
-          }
-          break;
-        case OMX_COMPONENT_GENERATE_ETB_ARBITRARY:
-          if (pThis->empty_this_buffer_proxy_arbitrary((OMX_HANDLETYPE)p1,\
-              (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone)
-          {
-            DEBUG_PRINT_ERROR("\n empty_this_buffer_proxy_arbitrary failure");
-            pThis->omx_report_error ();
-          }
-        break;
-        case OMX_COMPONENT_GENERATE_ETB:
-          if (pThis->empty_this_buffer_proxy((OMX_HANDLETYPE)p1,\
-              (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone)
-          {
-            DEBUG_PRINT_ERROR("\n empty_this_buffer_proxy failure");
-            pThis->omx_report_error ();
-          }
-        break;
-
-        case OMX_COMPONENT_GENERATE_FTB:
-          if ( pThis->fill_this_buffer_proxy((OMX_HANDLETYPE)p1,\
-               (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone)
-          {
-             DEBUG_PRINT_ERROR("\n fill_this_buffer_proxy failure");
-             pThis->omx_report_error ();
-          }
-        break;
-
-        case OMX_COMPONENT_GENERATE_COMMAND:
-          pThis->send_command_proxy(&pThis->m_cmp,(OMX_COMMANDTYPE)p1,\
-                                    (OMX_U32)p2,(OMX_PTR)NULL);
-        break;
-
-        case OMX_COMPONENT_GENERATE_EBD:
-
-          if (p2 != VDEC_S_SUCCESS && p2 != VDEC_S_INPUT_BITSTREAM_ERR)
-          {
-            DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_EBD failure");
-            pThis->omx_report_error ();
-          }
-          else
-          {
-            if (p2 == VDEC_S_INPUT_BITSTREAM_ERR && p1)
-            {
-              pThis->m_inp_err_count++;
-              pThis->time_stamp_dts.remove_time_stamp(
-              ((OMX_BUFFERHEADERTYPE *)p1)->nTimeStamp,
-              (pThis->drv_ctx.interlace != VDEC_InterlaceFrameProgressive)
-                ?true:false);
-            }
-            else
-            {
-              pThis->m_inp_err_count = 0;
-            }
-            if ( pThis->empty_buffer_done(&pThis->m_cmp,
-                 (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone)
-            {
-               DEBUG_PRINT_ERROR("\n empty_buffer_done failure");
-               pThis->omx_report_error ();
-            }
-            if(pThis->m_inp_err_count >= MAX_INPUT_ERROR)
-            {
-               DEBUG_PRINT_ERROR("\n Input bitstream error for consecutive %d frames.", MAX_INPUT_ERROR);
-               pThis->omx_report_error ();
-            }
-          }
-        break;
-        case OMX_COMPONENT_GENERATE_INFO_FIELD_DROPPED:
-          {
-            int64_t *timestamp = (int64_t *)p1;
-            if (p1)
-            {
-              pThis->time_stamp_dts.remove_time_stamp(*timestamp,
-              (pThis->drv_ctx.interlace != VDEC_InterlaceFrameProgressive)
-              ?true:false);
-              free(timestamp);
-            }
-          }
-          break;
-        case OMX_COMPONENT_GENERATE_FBD:
-          if (p2 != VDEC_S_SUCCESS)
-          {
-            DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_FBD failure");
-            pThis->omx_report_error ();
-          }
-          else if ( pThis->fill_buffer_done(&pThis->m_cmp,
-                  (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone )
-          {
-            DEBUG_PRINT_ERROR("\n fill_buffer_done failure");
-            pThis->omx_report_error ();
-          }
-          break;
-
-        case OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH:
-          DEBUG_PRINT_HIGH("\n Driver flush i/p Port complete");
-          if (!pThis->input_flush_progress)
-          {
-            DEBUG_PRINT_HIGH("\n WARNING: Unexpected flush from driver");
-          }
-          else
-          {
-            pThis->execute_input_flush();
-            if (pThis->m_cb.EventHandler)
-            {
-              if (p2 != VDEC_S_SUCCESS)
-              {
-                DEBUG_PRINT_ERROR("\nOMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH failure");
-                pThis->omx_report_error ();
-              }
-              else
-              {
-                /*Check if we need generate event for Flush done*/
-                if(BITMASK_PRESENT(&pThis->m_flags,
-                                   OMX_COMPONENT_INPUT_FLUSH_PENDING))
-                {
-                  BITMASK_CLEAR (&pThis->m_flags,OMX_COMPONENT_INPUT_FLUSH_PENDING);
-                  DEBUG_PRINT_LOW("\n Input Flush completed - Notify Client");
-                  pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                           OMX_EventCmdComplete,OMX_CommandFlush,
-                                           OMX_CORE_INPUT_PORT_INDEX,NULL );
-                }
-                if (BITMASK_PRESENT(&pThis->m_flags,
-                                         OMX_COMPONENT_IDLE_PENDING))
-                {
-                   if(pThis->stream_off(OMX_CORE_INPUT_PORT_INDEX)) {
-                           DEBUG_PRINT_ERROR("\n Failed to call streamoff on OUTPUT Port \n");
-						   pThis->omx_report_error ();
-				   } else {
-					   pThis->streaming[OUTPUT_PORT] = false;
-				   }
-                  if (!pThis->output_flush_progress)
-                  {
-                     DEBUG_PRINT_LOW("\n Input flush done hence issue stop");
-					 pThis->post_event ((unsigned int)NULL, VDEC_S_SUCCESS,\
-							 OMX_COMPONENT_GENERATE_STOP_DONE);
-                  }
-                }
-              }
-            }
-            else
-            {
-              DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-            }
-          }
-          break;
-
-        case OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH:
-          DEBUG_PRINT_HIGH("\n Driver flush o/p Port complete");
-          if (!pThis->output_flush_progress)
-          {
-            DEBUG_PRINT_HIGH("\n WARNING: Unexpected flush from driver");
-          }
-          else
-          {
-            pThis->execute_output_flush();
-            if (pThis->m_cb.EventHandler)
-            {
-              if (p2 != VDEC_S_SUCCESS)
-              {
-                DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH failed");
-                pThis->omx_report_error ();
-              }
-              else
-              {
-                /*Check if we need generate event for Flush done*/
-                if(BITMASK_PRESENT(&pThis->m_flags,
-                                   OMX_COMPONENT_OUTPUT_FLUSH_PENDING))
-                {
-                  DEBUG_PRINT_LOW("\n Notify Output Flush done");
-                  BITMASK_CLEAR (&pThis->m_flags,OMX_COMPONENT_OUTPUT_FLUSH_PENDING);
-                  pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                           OMX_EventCmdComplete,OMX_CommandFlush,
-                                           OMX_CORE_OUTPUT_PORT_INDEX,NULL );
-                }
-                if(BITMASK_PRESENT(&pThis->m_flags,
-                       OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING))
-                {
-                  DEBUG_PRINT_LOW("\n Internal flush complete");
-                  BITMASK_CLEAR (&pThis->m_flags,
-                                 OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING);
-                  if (BITMASK_PRESENT(&pThis->m_flags,
-                          OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED))
-                  {
-                    pThis->post_event(OMX_CommandPortDisable,
-                               OMX_CORE_OUTPUT_PORT_INDEX,
-                               OMX_COMPONENT_GENERATE_EVENT);
-                    BITMASK_CLEAR (&pThis->m_flags,
-                                   OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED);
-
-                  }
-                }
-
-                if (BITMASK_PRESENT(&pThis->m_flags ,OMX_COMPONENT_IDLE_PENDING))
-                {
-                   if(pThis->stream_off(OMX_CORE_OUTPUT_PORT_INDEX)) {
-                           DEBUG_PRINT_ERROR("\n Failed to call streamoff on CAPTURE Port \n");
-						   pThis->omx_report_error ();
-						   break;
-                   }
-				   pThis->streaming[CAPTURE_PORT] = false;
-                  if (!pThis->input_flush_progress)
-                  {
-                    DEBUG_PRINT_LOW("\n Output flush done hence issue stop");
-					 pThis->post_event ((unsigned int)NULL, VDEC_S_SUCCESS,\
-							 OMX_COMPONENT_GENERATE_STOP_DONE);
-                  }
-                }
-              }
-            }
-            else
-            {
-              DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-            }
-          }
-          break;
-
-        case OMX_COMPONENT_GENERATE_START_DONE:
-          DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_START_DONE");
-
-          if (pThis->m_cb.EventHandler)
-          {
-            if (p2 != VDEC_S_SUCCESS)
-            {
-              DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_START_DONE Failure");
-              pThis->omx_report_error ();
-            }
-            else
-            {
-              DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_START_DONE Success");
-              if(BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_EXECUTE_PENDING))
-              {
-                DEBUG_PRINT_LOW("\n Move to executing");
-                // Send the callback now
-                BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_EXECUTE_PENDING);
-                pThis->m_state = OMX_StateExecuting;
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                       OMX_EventCmdComplete,OMX_CommandStateSet,
-                                       OMX_StateExecuting, NULL);
-              }
-              else if (BITMASK_PRESENT(&pThis->m_flags,
-                                       OMX_COMPONENT_PAUSE_PENDING))
-              {
-                if (/*ioctl (pThis->drv_ctx.video_driver_fd,
-                           VDEC_IOCTL_CMD_PAUSE,NULL ) < */0)
-                {
-                  DEBUG_PRINT_ERROR("\n VDEC_IOCTL_CMD_PAUSE failed");
-                  pThis->omx_report_error ();
-                }
-              }
-            }
-          }
-          else
-          {
-            DEBUG_PRINT_LOW("\n Event Handler callback is NULL");
-          }
-          break;
-
-        case OMX_COMPONENT_GENERATE_PAUSE_DONE:
-          DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_PAUSE_DONE");
-          if (pThis->m_cb.EventHandler)
-          {
-            if (p2 != VDEC_S_SUCCESS)
-            {
-              DEBUG_PRINT_ERROR("OMX_COMPONENT_GENERATE_PAUSE_DONE ret failed");
-              pThis->omx_report_error ();
-            }
-            else
-            {
-              pThis->complete_pending_buffer_done_cbs();
-              if(BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_PAUSE_PENDING))
-              {
-                DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_PAUSE_DONE nofity");
-                //Send the callback now
-                BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_PAUSE_PENDING);
-                pThis->m_state = OMX_StatePause;
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                       OMX_EventCmdComplete,OMX_CommandStateSet,
-                                       OMX_StatePause, NULL);
-              }
-            }
-          }
-          else
-          {
-            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-          }
-
-          break;
-
-        case OMX_COMPONENT_GENERATE_RESUME_DONE:
-          DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_RESUME_DONE");
-          if (pThis->m_cb.EventHandler)
-          {
-            if (p2 != VDEC_S_SUCCESS)
-            {
-              DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_RESUME_DONE failed");
-              pThis->omx_report_error ();
-            }
-            else
-            {
-              if(BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_EXECUTE_PENDING))
-              {
-                DEBUG_PRINT_LOW("\n Moving the decoder to execute state");
-                // Send the callback now
-                BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_EXECUTE_PENDING);
-                pThis->m_state = OMX_StateExecuting;
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                       OMX_EventCmdComplete,OMX_CommandStateSet,
-                                       OMX_StateExecuting,NULL);
-              }
-            }
-          }
-          else
-          {
-            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-          }
-
-          break;
-
-        case OMX_COMPONENT_GENERATE_STOP_DONE:
-          DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_STOP_DONE");
-          if (pThis->m_cb.EventHandler)
-          {
-            if (p2 != VDEC_S_SUCCESS)
-            {
-              DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_STOP_DONE ret failed");
-              pThis->omx_report_error ();
-            }
-            else
-            {
-              pThis->complete_pending_buffer_done_cbs();
-              if(BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_IDLE_PENDING))
-              {
-                DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_STOP_DONE Success");
-                // Send the callback now
-                BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_IDLE_PENDING);
-                pThis->m_state = OMX_StateIdle;
-                DEBUG_PRINT_LOW("\n Move to Idle State");
-                pThis->m_cb.EventHandler(&pThis->m_cmp,pThis->m_app_data,
-                                         OMX_EventCmdComplete,OMX_CommandStateSet,
-                                         OMX_StateIdle,NULL);
-              }
-            }
-          }
-          else
-          {
-            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-          }
-
-          break;
-
-        case OMX_COMPONENT_GENERATE_PORT_RECONFIG:
-          DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_PORT_RECONFIG");
-
-          if (p2 == OMX_IndexParamPortDefinition) {
-            pThis->in_reconfig = true;
-          }
-          if (pThis->m_cb.EventHandler) {
-            pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                OMX_EventPortSettingsChanged, p1, p2, NULL );
-          } else {
-            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-          }
-
-          if (pThis->drv_ctx.interlace != VDEC_InterlaceFrameProgressive)
-          {
-            OMX_INTERLACETYPE format = (OMX_INTERLACETYPE)-1;
-            OMX_EVENTTYPE event = (OMX_EVENTTYPE)OMX_EventIndexsettingChanged;
-            if (pThis->drv_ctx.interlace == VDEC_InterlaceInterleaveFrameTopFieldFirst)
-                format = OMX_InterlaceInterleaveFrameTopFieldFirst;
-            else if (pThis->drv_ctx.interlace == VDEC_InterlaceInterleaveFrameBottomFieldFirst)
-                format = OMX_InterlaceInterleaveFrameBottomFieldFirst;
-            else //unsupported interlace format; raise a error
-                event = OMX_EventError;
-            if (pThis->m_cb.EventHandler) {
-              pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                  event, format, 0, NULL );
-            } else {
-              DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-            }
-          }
-        break;
-
-        case OMX_COMPONENT_GENERATE_EOS_DONE:
-          DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_EOS_DONE");
-          if (pThis->m_cb.EventHandler) {
-            pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data, OMX_EventBufferFlag,
-                            OMX_CORE_OUTPUT_PORT_INDEX, OMX_BUFFERFLAG_EOS, NULL );
-          } else {
-            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-          }
-          pThis->prev_ts = LLONG_MAX;
-          pThis->rst_prev_ts = true;
-          break;
-
-        case OMX_COMPONENT_GENERATE_HARDWARE_ERROR:
-          DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_HARDWARE_ERROR");
-          pThis->omx_report_error ();
-          break;
-        case OMX_COMPONENT_GENERATE_INFO_PORT_RECONFIG:
-        {
-          DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_INFO_PORT_RECONFIG");
-          if (pThis->m_cb.EventHandler) {
-            pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                (OMX_EVENTTYPE)OMX_EventIndexsettingChanged, OMX_CORE_OUTPUT_PORT_INDEX, 0, NULL );
-          } else {
-            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-          }
+    // Protect the shared queue data structure
+    do {
+        /*Read the message id's from the queue*/
+        pthread_mutex_lock(&pThis->m_lock);
+        qsize = pThis->m_cmd_q.m_size;
+        if (qsize) {
+            pThis->m_cmd_q.pop_entry((unsigned *)&p1, (unsigned *)&p2, &ident);
         }
-        default:
-          break;
+
+        if (qsize == 0 && pThis->m_state != OMX_StatePause) {
+            qsize = pThis->m_ftb_q.m_size;
+            if (qsize) {
+                pThis->m_ftb_q.pop_entry((unsigned *)&p1, (unsigned *)&p2, &ident);
+            }
         }
-      }
-    pthread_mutex_lock(&pThis->m_lock);
-    qsize = pThis->m_cmd_q.m_size;
-    if (pThis->m_state != OMX_StatePause)
-        qsize += (pThis->m_ftb_q.m_size + pThis->m_etb_q.m_size);
-    pthread_mutex_unlock(&pThis->m_lock);
-  }
-  while(qsize>0);
+
+        if (qsize == 0 && pThis->m_state != OMX_StatePause) {
+            qsize = pThis->m_etb_q.m_size;
+            if (qsize) {
+                pThis->m_etb_q.pop_entry((unsigned *)&p1, (unsigned *)&p2, &ident);
+            }
+        }
+        pthread_mutex_unlock(&pThis->m_lock);
+
+        /*process message if we have one*/
+        if (qsize > 0) {
+            id = ident;
+            switch (id) {
+                case OMX_COMPONENT_GENERATE_EVENT:
+                    if (pThis->m_cb.EventHandler) {
+                        switch (p1) {
+                            case OMX_CommandStateSet:
+                                pThis->m_state = (OMX_STATETYPE) p2;
+                                DEBUG_PRINT_HIGH("\n OMX_CommandStateSet complete, m_state = %d",
+                                        pThis->m_state);
+                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                        OMX_EventCmdComplete, p1, p2, NULL);
+                                break;
+
+                            case OMX_EventError:
+                                if (p2 == OMX_StateInvalid) {
+                                    DEBUG_PRINT_ERROR("\n OMX_EventError: p2 is OMX_StateInvalid");
+                                    pThis->m_state = (OMX_STATETYPE) p2;
+                                    pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                            OMX_EventError, OMX_ErrorInvalidState, p2, NULL);
+                                } else if (p2 == OMX_ErrorHardware) {
+                                    pThis->omx_report_error();
+                                } else {
+                                    pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                            OMX_EventError, p2, (OMX_U32)NULL, NULL );
+                                }
+                                break;
+
+                            case OMX_CommandPortDisable:
+                                DEBUG_PRINT_HIGH("\n OMX_CommandPortDisable complete for port [%d]", p2);
+                                if (BITMASK_PRESENT(&pThis->m_flags,
+                                            OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING)) {
+                                    BITMASK_SET(&pThis->m_flags, OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED);
+                                    break;
+                                }
+                                if (p2 == OMX_CORE_OUTPUT_PORT_INDEX && pThis->in_reconfig) {
+                                    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+                                    pThis->stream_off(OMX_CORE_OUTPUT_PORT_INDEX);
+                                    if (release_buffers(pThis, VDEC_BUFFER_TYPE_OUTPUT))
+                                        DEBUG_PRINT_HIGH("Failed to release output buffers\n");
+                                    OMX_ERRORTYPE eRet1 = pThis->get_buffer_req(&pThis->drv_ctx.op_buf);
+                                    pThis->in_reconfig = false;
+                                    if (eRet !=  OMX_ErrorNone) {
+                                        DEBUG_PRINT_ERROR("set_buffer_req failed eRet = %d",eRet);
+                                        pThis->omx_report_error();
+                                        break;
+                                    }
+                                }
+                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                        OMX_EventCmdComplete, p1, p2, NULL );
+                                break;
+                            case OMX_CommandPortEnable:
+                                DEBUG_PRINT_HIGH("\n OMX_CommandPortEnable complete for port [%d]", p2);
+                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,\
+                                        OMX_EventCmdComplete, p1, p2, NULL );
+                                break;
+
+                            default:
+                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                        OMX_EventCmdComplete, p1, p2, NULL );
+                                break;
+
+                        }
+                    } else {
+                        DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL\n", __func__);
+                    }
+                    break;
+                case OMX_COMPONENT_GENERATE_ETB_ARBITRARY:
+                    if (pThis->empty_this_buffer_proxy_arbitrary((OMX_HANDLETYPE)p1,\
+                                (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone) {
+                        DEBUG_PRINT_ERROR("\n empty_this_buffer_proxy_arbitrary failure");
+                        pThis->omx_report_error ();
+                    }
+                    break;
+                case OMX_COMPONENT_GENERATE_ETB:
+                    if (pThis->empty_this_buffer_proxy((OMX_HANDLETYPE)p1,\
+                                (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone) {
+                        DEBUG_PRINT_ERROR("\n empty_this_buffer_proxy failure");
+                        pThis->omx_report_error ();
+                    }
+                    break;
+
+                case OMX_COMPONENT_GENERATE_FTB:
+                    if ( pThis->fill_this_buffer_proxy((OMX_HANDLETYPE)p1,\
+                                (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone) {
+                        DEBUG_PRINT_ERROR("\n fill_this_buffer_proxy failure");
+                        pThis->omx_report_error ();
+                    }
+                    break;
+
+                case OMX_COMPONENT_GENERATE_COMMAND:
+                    pThis->send_command_proxy(&pThis->m_cmp,(OMX_COMMANDTYPE)p1,\
+                            (OMX_U32)p2,(OMX_PTR)NULL);
+                    break;
+
+                case OMX_COMPONENT_GENERATE_EBD:
+
+                    if (p2 != VDEC_S_SUCCESS && p2 != VDEC_S_INPUT_BITSTREAM_ERR) {
+                        DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_EBD failure");
+                        pThis->omx_report_error ();
+                    } else {
+                        if (p2 == VDEC_S_INPUT_BITSTREAM_ERR && p1) {
+                            pThis->m_inp_err_count++;
+                            pThis->time_stamp_dts.remove_time_stamp(
+                                    ((OMX_BUFFERHEADERTYPE *)p1)->nTimeStamp,
+                                    (pThis->drv_ctx.interlace != VDEC_InterlaceFrameProgressive)
+                                    ?true:false);
+                        } else {
+                            pThis->m_inp_err_count = 0;
+                        }
+                        if ( pThis->empty_buffer_done(&pThis->m_cmp,
+                                    (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone) {
+                            DEBUG_PRINT_ERROR("\n empty_buffer_done failure");
+                            pThis->omx_report_error ();
+                        }
+                        if (pThis->m_inp_err_count >= MAX_INPUT_ERROR) {
+                            DEBUG_PRINT_ERROR("\n Input bitstream error for consecutive %d frames.", MAX_INPUT_ERROR);
+                            pThis->omx_report_error ();
+                        }
+                    }
+                    break;
+                case OMX_COMPONENT_GENERATE_INFO_FIELD_DROPPED:
+                    {
+                        int64_t *timestamp = (int64_t *)p1;
+                        if (p1) {
+                            pThis->time_stamp_dts.remove_time_stamp(*timestamp,
+                                    (pThis->drv_ctx.interlace != VDEC_InterlaceFrameProgressive)
+                                    ?true:false);
+                            free(timestamp);
+                        }
+                    }
+                    break;
+                case OMX_COMPONENT_GENERATE_FBD:
+                    if (p2 != VDEC_S_SUCCESS) {
+                        DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_FBD failure");
+                        pThis->omx_report_error ();
+                    } else if ( pThis->fill_buffer_done(&pThis->m_cmp,
+                                (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone ) {
+                        DEBUG_PRINT_ERROR("\n fill_buffer_done failure");
+                        pThis->omx_report_error ();
+                    }
+                    break;
+
+                case OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH:
+                    DEBUG_PRINT_HIGH("\n Driver flush i/p Port complete");
+                    if (!pThis->input_flush_progress) {
+                        DEBUG_PRINT_HIGH("\n WARNING: Unexpected flush from driver");
+                    } else {
+                        pThis->execute_input_flush();
+                        if (pThis->m_cb.EventHandler) {
+                            if (p2 != VDEC_S_SUCCESS) {
+                                DEBUG_PRINT_ERROR("\nOMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH failure");
+                                pThis->omx_report_error ();
+                            } else {
+                                /*Check if we need generate event for Flush done*/
+                                if (BITMASK_PRESENT(&pThis->m_flags,
+                                            OMX_COMPONENT_INPUT_FLUSH_PENDING)) {
+                                    BITMASK_CLEAR (&pThis->m_flags,OMX_COMPONENT_INPUT_FLUSH_PENDING);
+                                    DEBUG_PRINT_LOW("\n Input Flush completed - Notify Client");
+                                    pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                            OMX_EventCmdComplete,OMX_CommandFlush,
+                                            OMX_CORE_INPUT_PORT_INDEX,NULL );
+                                }
+                                if (BITMASK_PRESENT(&pThis->m_flags,
+                                            OMX_COMPONENT_IDLE_PENDING)) {
+                                    if (pThis->stream_off(OMX_CORE_INPUT_PORT_INDEX)) {
+                                        DEBUG_PRINT_ERROR("\n Failed to call streamoff on OUTPUT Port \n");
+                                        pThis->omx_report_error ();
+                                    } else {
+                                        pThis->streaming[OUTPUT_PORT] = false;
+                                    }
+                                    if (!pThis->output_flush_progress) {
+                                        DEBUG_PRINT_LOW("\n Input flush done hence issue stop");
+                                        pThis->post_event ((unsigned int)NULL, VDEC_S_SUCCESS,\
+                                                OMX_COMPONENT_GENERATE_STOP_DONE);
+                                    }
+                                }
+                            }
+                        } else {
+                            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                        }
+                    }
+                    break;
+
+                case OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH:
+                    DEBUG_PRINT_HIGH("\n Driver flush o/p Port complete");
+                    if (!pThis->output_flush_progress) {
+                        DEBUG_PRINT_HIGH("\n WARNING: Unexpected flush from driver");
+                    } else {
+                        pThis->execute_output_flush();
+                        if (pThis->m_cb.EventHandler) {
+                            if (p2 != VDEC_S_SUCCESS) {
+                                DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH failed");
+                                pThis->omx_report_error ();
+                            } else {
+                                /*Check if we need generate event for Flush done*/
+                                if (BITMASK_PRESENT(&pThis->m_flags,
+                                            OMX_COMPONENT_OUTPUT_FLUSH_PENDING)) {
+                                    DEBUG_PRINT_LOW("\n Notify Output Flush done");
+                                    BITMASK_CLEAR (&pThis->m_flags,OMX_COMPONENT_OUTPUT_FLUSH_PENDING);
+                                    pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                            OMX_EventCmdComplete,OMX_CommandFlush,
+                                            OMX_CORE_OUTPUT_PORT_INDEX,NULL );
+                                }
+                                if (BITMASK_PRESENT(&pThis->m_flags,
+                                            OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING)) {
+                                    DEBUG_PRINT_LOW("\n Internal flush complete");
+                                    BITMASK_CLEAR (&pThis->m_flags,
+                                            OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING);
+                                    if (BITMASK_PRESENT(&pThis->m_flags,
+                                                OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED)) {
+                                        pThis->post_event(OMX_CommandPortDisable,
+                                                OMX_CORE_OUTPUT_PORT_INDEX,
+                                                OMX_COMPONENT_GENERATE_EVENT);
+                                        BITMASK_CLEAR (&pThis->m_flags,
+                                                OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED);
+
+                                    }
+                                }
+
+                                if (BITMASK_PRESENT(&pThis->m_flags ,OMX_COMPONENT_IDLE_PENDING)) {
+                                    if (pThis->stream_off(OMX_CORE_OUTPUT_PORT_INDEX)) {
+                                        DEBUG_PRINT_ERROR("\n Failed to call streamoff on CAPTURE Port \n");
+                                        pThis->omx_report_error ();
+                                        break;
+                                    }
+                                    pThis->streaming[CAPTURE_PORT] = false;
+                                    if (!pThis->input_flush_progress) {
+                                        DEBUG_PRINT_LOW("\n Output flush done hence issue stop");
+                                        pThis->post_event ((unsigned int)NULL, VDEC_S_SUCCESS,\
+                                                OMX_COMPONENT_GENERATE_STOP_DONE);
+                                    }
+                                }
+                            }
+                        } else {
+                            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                        }
+                    }
+                    break;
+
+                case OMX_COMPONENT_GENERATE_START_DONE:
+                    DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_START_DONE");
+
+                    if (pThis->m_cb.EventHandler) {
+                        if (p2 != VDEC_S_SUCCESS) {
+                            DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_START_DONE Failure");
+                            pThis->omx_report_error ();
+                        } else {
+                            DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_START_DONE Success");
+                            if (BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_EXECUTE_PENDING)) {
+                                DEBUG_PRINT_LOW("\n Move to executing");
+                                // Send the callback now
+                                BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_EXECUTE_PENDING);
+                                pThis->m_state = OMX_StateExecuting;
+                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                        OMX_EventCmdComplete,OMX_CommandStateSet,
+                                        OMX_StateExecuting, NULL);
+                            } else if (BITMASK_PRESENT(&pThis->m_flags,
+                                        OMX_COMPONENT_PAUSE_PENDING)) {
+                                if (/*ioctl (pThis->drv_ctx.video_driver_fd,
+                                      VDEC_IOCTL_CMD_PAUSE,NULL ) < */0) {
+                                    DEBUG_PRINT_ERROR("\n VDEC_IOCTL_CMD_PAUSE failed");
+                                    pThis->omx_report_error ();
+                                }
+                            }
+                        }
+                    } else {
+                        DEBUG_PRINT_LOW("\n Event Handler callback is NULL");
+                    }
+                    break;
+
+                case OMX_COMPONENT_GENERATE_PAUSE_DONE:
+                    DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_PAUSE_DONE");
+                    if (pThis->m_cb.EventHandler) {
+                        if (p2 != VDEC_S_SUCCESS) {
+                            DEBUG_PRINT_ERROR("OMX_COMPONENT_GENERATE_PAUSE_DONE ret failed");
+                            pThis->omx_report_error ();
+                        } else {
+                            pThis->complete_pending_buffer_done_cbs();
+                            if (BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_PAUSE_PENDING)) {
+                                DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_PAUSE_DONE nofity");
+                                //Send the callback now
+                                BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_PAUSE_PENDING);
+                                pThis->m_state = OMX_StatePause;
+                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                        OMX_EventCmdComplete,OMX_CommandStateSet,
+                                        OMX_StatePause, NULL);
+                            }
+                        }
+                    } else {
+                        DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                    }
+
+                    break;
+
+                case OMX_COMPONENT_GENERATE_RESUME_DONE:
+                    DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_RESUME_DONE");
+                    if (pThis->m_cb.EventHandler) {
+                        if (p2 != VDEC_S_SUCCESS) {
+                            DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_RESUME_DONE failed");
+                            pThis->omx_report_error ();
+                        } else {
+                            if (BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_EXECUTE_PENDING)) {
+                                DEBUG_PRINT_LOW("\n Moving the decoder to execute state");
+                                // Send the callback now
+                                BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_EXECUTE_PENDING);
+                                pThis->m_state = OMX_StateExecuting;
+                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                        OMX_EventCmdComplete,OMX_CommandStateSet,
+                                        OMX_StateExecuting,NULL);
+                            }
+                        }
+                    } else {
+                        DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                    }
+
+                    break;
+
+                case OMX_COMPONENT_GENERATE_STOP_DONE:
+                    DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_STOP_DONE");
+                    if (pThis->m_cb.EventHandler) {
+                        if (p2 != VDEC_S_SUCCESS) {
+                            DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_STOP_DONE ret failed");
+                            pThis->omx_report_error ();
+                        } else {
+                            pThis->complete_pending_buffer_done_cbs();
+                            if (BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_IDLE_PENDING)) {
+                                DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_STOP_DONE Success");
+                                // Send the callback now
+                                BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_IDLE_PENDING);
+                                pThis->m_state = OMX_StateIdle;
+                                DEBUG_PRINT_LOW("\n Move to Idle State");
+                                pThis->m_cb.EventHandler(&pThis->m_cmp,pThis->m_app_data,
+                                        OMX_EventCmdComplete,OMX_CommandStateSet,
+                                        OMX_StateIdle,NULL);
+                            }
+                        }
+                    } else {
+                        DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                    }
+
+                    break;
+
+                case OMX_COMPONENT_GENERATE_PORT_RECONFIG:
+                    DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_PORT_RECONFIG");
+
+                    if (p2 == OMX_IndexParamPortDefinition) {
+                        pThis->in_reconfig = true;
+                    }
+                    if (pThis->m_cb.EventHandler) {
+                        pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                OMX_EventPortSettingsChanged, p1, p2, NULL );
+                    } else {
+                        DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                    }
+
+                    if (pThis->drv_ctx.interlace != VDEC_InterlaceFrameProgressive) {
+                        OMX_INTERLACETYPE format = (OMX_INTERLACETYPE)-1;
+                        OMX_EVENTTYPE event = (OMX_EVENTTYPE)OMX_EventIndexsettingChanged;
+                        if (pThis->drv_ctx.interlace == VDEC_InterlaceInterleaveFrameTopFieldFirst)
+                            format = OMX_InterlaceInterleaveFrameTopFieldFirst;
+                        else if (pThis->drv_ctx.interlace == VDEC_InterlaceInterleaveFrameBottomFieldFirst)
+                            format = OMX_InterlaceInterleaveFrameBottomFieldFirst;
+                        else //unsupported interlace format; raise a error
+                            event = OMX_EventError;
+                        if (pThis->m_cb.EventHandler) {
+                            pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                    event, format, 0, NULL );
+                        } else {
+                            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                        }
+                    }
+                    break;
+
+                case OMX_COMPONENT_GENERATE_EOS_DONE:
+                    DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_EOS_DONE");
+                    if (pThis->m_cb.EventHandler) {
+                        pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data, OMX_EventBufferFlag,
+                                OMX_CORE_OUTPUT_PORT_INDEX, OMX_BUFFERFLAG_EOS, NULL );
+                    } else {
+                        DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                    }
+                    pThis->prev_ts = LLONG_MAX;
+                    pThis->rst_prev_ts = true;
+                    break;
+
+                case OMX_COMPONENT_GENERATE_HARDWARE_ERROR:
+                    DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_HARDWARE_ERROR");
+                    pThis->omx_report_error ();
+                    break;
+                case OMX_COMPONENT_GENERATE_INFO_PORT_RECONFIG:
+                    {
+                        DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_INFO_PORT_RECONFIG");
+                        if (pThis->m_cb.EventHandler) {
+                            pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                    (OMX_EVENTTYPE)OMX_EventIndexsettingChanged, OMX_CORE_OUTPUT_PORT_INDEX, 0, NULL );
+                        } else {
+                            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                        }
+                    }
+                default:
+                    break;
+            }
+        }
+        pthread_mutex_lock(&pThis->m_lock);
+        qsize = pThis->m_cmd_q.m_size;
+        if (pThis->m_state != OMX_StatePause)
+            qsize += (pThis->m_ftb_q.m_size + pThis->m_etb_q.m_size);
+        pthread_mutex_unlock(&pThis->m_lock);
+    } while (qsize>0);
 
 }
 
@@ -1330,247 +1205,222 @@
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::ComponentInit
+   FUNCTION
+   omx_vdec::ComponentInit
 
-DESCRIPTION
-  Initialize the component.
+   DESCRIPTION
+   Initialize the component.
 
-PARAMETERS
-  ctxt -- Context information related to the self.
-  id   -- Event identifier. This could be any of the following:
-          1. Command completion event
-          2. Buffer done callback event
-          3. Frame done callback event
+   PARAMETERS
+   ctxt -- Context information related to the self.
+   id   -- Event identifier. This could be any of the following:
+   1. Command completion event
+   2. Buffer done callback event
+   3. Frame done callback event
 
-RETURN VALUE
-  None.
+   RETURN VALUE
+   None.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE omx_vdec::component_init(OMX_STRING role)
 {
 
-	OMX_ERRORTYPE eRet = OMX_ErrorNone;
-	struct v4l2_fmtdesc fdesc;
-	struct v4l2_format fmt;
-	struct v4l2_requestbuffers bufreq;
-	struct v4l2_control control;
-	unsigned int   alignment = 0,buffer_size = 0;
-	int fds[2];
-	int r,ret=0;
-	bool codec_ambiguous = false;
-	OMX_STRING device_name = (OMX_STRING)"/dev/video/q6_dec";
-	drv_ctx.video_driver_fd = open(device_name, O_RDWR);
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    struct v4l2_fmtdesc fdesc;
+    struct v4l2_format fmt;
+    struct v4l2_requestbuffers bufreq;
+    struct v4l2_control control;
+    unsigned int   alignment = 0,buffer_size = 0;
+    int fds[2];
+    int r,ret=0;
+    bool codec_ambiguous = false;
+    OMX_STRING device_name = (OMX_STRING)"/dev/video/q6_dec";
+    drv_ctx.video_driver_fd = open(device_name, O_RDWR);
 
-	DEBUG_PRINT_HIGH("\n omx_vdec::component_init(): Open device %s returned fd %d, errno %d",
-			device_name, drv_ctx.video_driver_fd, errno);
+    DEBUG_PRINT_HIGH("\n omx_vdec::component_init(): Open device %s returned fd %d, errno %d",
+            device_name, drv_ctx.video_driver_fd, errno);
 
-	if(drv_ctx.video_driver_fd == 0){
-		drv_ctx.video_driver_fd = open(device_name, O_RDWR);
-	}
+    if (drv_ctx.video_driver_fd == 0) {
+        drv_ctx.video_driver_fd = open(device_name, O_RDWR);
+    }
 
-	if(drv_ctx.video_driver_fd < 0)
-	{
-		DEBUG_PRINT_ERROR("Omx_vdec::Comp Init Returning failure, errno %d\n", errno);
-		return OMX_ErrorInsufficientResources;
-	}
-	drv_ctx.frame_rate.fps_numerator = DEFAULT_FPS;
-	drv_ctx.frame_rate.fps_denominator = 1;
+    if (drv_ctx.video_driver_fd < 0) {
+        DEBUG_PRINT_ERROR("Omx_vdec::Comp Init Returning failure, errno %d\n", errno);
+        return OMX_ErrorInsufficientResources;
+    }
+    drv_ctx.frame_rate.fps_numerator = DEFAULT_FPS;
+    drv_ctx.frame_rate.fps_denominator = 1;
 
     ret = pthread_create(&async_thread_id,0,async_message_thread,this);
-    if(ret < 0) {
-	  close(drv_ctx.video_driver_fd);
-	  DEBUG_PRINT_ERROR("\n Failed to create async_message_thread \n");
-	  return OMX_ErrorInsufficientResources;
-   }
+    if (ret < 0) {
+        close(drv_ctx.video_driver_fd);
+        DEBUG_PRINT_ERROR("\n Failed to create async_message_thread \n");
+        return OMX_ErrorInsufficientResources;
+    }
 
 #ifdef INPUT_BUFFER_LOG
-	strcpy(inputfilename, INPUT_BUFFER_FILE_NAME);
+    strcpy(inputfilename, INPUT_BUFFER_FILE_NAME);
 #endif
 #ifdef OUTPUT_BUFFER_LOG
-	outputBufferFile1 = fopen (outputfilename, "ab");
+    outputBufferFile1 = fopen (outputfilename, "ab");
 #endif
 #ifdef OUTPUT_EXTRADATA_LOG
-	outputExtradataFile = fopen (ouputextradatafilename, "ab");
+    outputExtradataFile = fopen (ouputextradatafilename, "ab");
 #endif
 
-	// Copy the role information which provides the decoder kind
-	strlcpy(drv_ctx.kind,role,128);
+    // Copy the role information which provides the decoder kind
+    strlcpy(drv_ctx.kind,role,128);
 
-	if(!strncmp(drv_ctx.kind,"OMX.qcom.video.decoder.mpeg4",\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.mpeg4",\
-				OMX_MAX_STRINGNAME_SIZE);
-		drv_ctx.timestamp_adjust = true;
-		drv_ctx.decoder_format = VDEC_CODECTYPE_MPEG4;
-		eCompressionFormat = OMX_VIDEO_CodingMPEG4;
-		output_capability=V4L2_PIX_FMT_MPEG4;
-		/*Initialize Start Code for MPEG4*/
-		codec_type_parse = CODEC_TYPE_MPEG4;
-		m_frame_parser.init_start_codes (codec_type_parse);
+    if (!strncmp(drv_ctx.kind,"OMX.qcom.video.decoder.mpeg4",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.mpeg4",\
+                OMX_MAX_STRINGNAME_SIZE);
+        drv_ctx.timestamp_adjust = true;
+        drv_ctx.decoder_format = VDEC_CODECTYPE_MPEG4;
+        eCompressionFormat = OMX_VIDEO_CodingMPEG4;
+        output_capability=V4L2_PIX_FMT_MPEG4;
+        /*Initialize Start Code for MPEG4*/
+        codec_type_parse = CODEC_TYPE_MPEG4;
+        m_frame_parser.init_start_codes (codec_type_parse);
 #ifdef INPUT_BUFFER_LOG
-		strcat(inputfilename, "m4v");
+        strcat(inputfilename, "m4v");
 #endif
-	}
-	else if(!strncmp(drv_ctx.kind,"OMX.qcom.video.decoder.mpeg2",\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.mpeg2",\
-				OMX_MAX_STRINGNAME_SIZE);
-		drv_ctx.decoder_format = VDEC_CODECTYPE_MPEG2;
-		output_capability = V4L2_PIX_FMT_MPEG2;
-		eCompressionFormat = OMX_VIDEO_CodingMPEG2;
-		/*Initialize Start Code for MPEG2*/
-		codec_type_parse = CODEC_TYPE_MPEG2;
-		m_frame_parser.init_start_codes (codec_type_parse);
+    } else if (!strncmp(drv_ctx.kind,"OMX.qcom.video.decoder.mpeg2",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.mpeg2",\
+                OMX_MAX_STRINGNAME_SIZE);
+        drv_ctx.decoder_format = VDEC_CODECTYPE_MPEG2;
+        output_capability = V4L2_PIX_FMT_MPEG2;
+        eCompressionFormat = OMX_VIDEO_CodingMPEG2;
+        /*Initialize Start Code for MPEG2*/
+        codec_type_parse = CODEC_TYPE_MPEG2;
+        m_frame_parser.init_start_codes (codec_type_parse);
 #ifdef INPUT_BUFFER_LOG
-		strcat(inputfilename, "mpg");
+        strcat(inputfilename, "mpg");
 #endif
-	}
-	else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.h263",OMX_MAX_STRINGNAME_SIZE);
-		DEBUG_PRINT_LOW("\n H263 Decoder selected");
-		drv_ctx.decoder_format = VDEC_CODECTYPE_H263;
-		eCompressionFormat = OMX_VIDEO_CodingH263;
-		output_capability = V4L2_PIX_FMT_H263;
-		codec_type_parse = CODEC_TYPE_H263;
-		m_frame_parser.init_start_codes (codec_type_parse);
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.h263",OMX_MAX_STRINGNAME_SIZE);
+        DEBUG_PRINT_LOW("\n H263 Decoder selected");
+        drv_ctx.decoder_format = VDEC_CODECTYPE_H263;
+        eCompressionFormat = OMX_VIDEO_CodingH263;
+        output_capability = V4L2_PIX_FMT_H263;
+        codec_type_parse = CODEC_TYPE_H263;
+        m_frame_parser.init_start_codes (codec_type_parse);
 #ifdef INPUT_BUFFER_LOG
-		strcat(inputfilename, "263");
+        strcat(inputfilename, "263");
 #endif
-	}
-	else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx311",\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
-		DEBUG_PRINT_LOW ("\n DIVX 311 Decoder selected");
-		drv_ctx.decoder_format = VDEC_CODECTYPE_DIVX_3;
-		output_capability = V4L2_PIX_FMT_DIVX_311;
-		eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
-		codec_type_parse = CODEC_TYPE_DIVX;
-		m_frame_parser.init_start_codes (codec_type_parse);
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx311",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
+        DEBUG_PRINT_LOW ("\n DIVX 311 Decoder selected");
+        drv_ctx.decoder_format = VDEC_CODECTYPE_DIVX_3;
+        output_capability = V4L2_PIX_FMT_DIVX_311;
+        eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
+        codec_type_parse = CODEC_TYPE_DIVX;
+        m_frame_parser.init_start_codes (codec_type_parse);
 
-		eRet = createDivxDrmContext();
-		if (eRet != OMX_ErrorNone) {
-			DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
-			return eRet;
-		}
-	}
-	else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx4",\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
-		DEBUG_PRINT_ERROR ("\n DIVX 4 Decoder selected");
-		drv_ctx.decoder_format = VDEC_CODECTYPE_DIVX_4;
-		output_capability = V4L2_PIX_FMT_DIVX;
-		eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
-		codec_type_parse = CODEC_TYPE_DIVX;
-		codec_ambiguous = true;
-		m_frame_parser.init_start_codes (codec_type_parse);
+        eRet = createDivxDrmContext();
+        if (eRet != OMX_ErrorNone) {
+            DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
+            return eRet;
+        }
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx4",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
+        DEBUG_PRINT_ERROR ("\n DIVX 4 Decoder selected");
+        drv_ctx.decoder_format = VDEC_CODECTYPE_DIVX_4;
+        output_capability = V4L2_PIX_FMT_DIVX;
+        eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
+        codec_type_parse = CODEC_TYPE_DIVX;
+        codec_ambiguous = true;
+        m_frame_parser.init_start_codes (codec_type_parse);
 
-		eRet = createDivxDrmContext();
-		if (eRet != OMX_ErrorNone) {
-			DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
-			return eRet;
-		}
-	}
-	else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
-		DEBUG_PRINT_ERROR ("\n DIVX 5/6 Decoder selected");
-		drv_ctx.decoder_format = VDEC_CODECTYPE_DIVX_6;
-		output_capability = V4L2_PIX_FMT_DIVX;
-		eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
-		codec_type_parse = CODEC_TYPE_DIVX;
-		codec_ambiguous = true;
-		m_frame_parser.init_start_codes (codec_type_parse);
+        eRet = createDivxDrmContext();
+        if (eRet != OMX_ErrorNone) {
+            DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
+            return eRet;
+        }
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
+        DEBUG_PRINT_ERROR ("\n DIVX 5/6 Decoder selected");
+        drv_ctx.decoder_format = VDEC_CODECTYPE_DIVX_6;
+        output_capability = V4L2_PIX_FMT_DIVX;
+        eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
+        codec_type_parse = CODEC_TYPE_DIVX;
+        codec_ambiguous = true;
+        m_frame_parser.init_start_codes (codec_type_parse);
 
-		eRet = createDivxDrmContext();
-		if (eRet != OMX_ErrorNone) {
-			DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
-			return eRet;
-		}
+        eRet = createDivxDrmContext();
+        if (eRet != OMX_ErrorNone) {
+            DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
+            return eRet;
+        }
 
-	}
-	else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.avc",OMX_MAX_STRINGNAME_SIZE);
-		drv_ctx.decoder_format = VDEC_CODECTYPE_H264;
-		output_capability=V4L2_PIX_FMT_H264;
-		eCompressionFormat = OMX_VIDEO_CodingAVC;
-		codec_type_parse = CODEC_TYPE_H264;
-		m_frame_parser.init_start_codes (codec_type_parse);
-		m_frame_parser.init_nal_length(nal_length);
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.avc",OMX_MAX_STRINGNAME_SIZE);
+        drv_ctx.decoder_format = VDEC_CODECTYPE_H264;
+        output_capability=V4L2_PIX_FMT_H264;
+        eCompressionFormat = OMX_VIDEO_CodingAVC;
+        codec_type_parse = CODEC_TYPE_H264;
+        m_frame_parser.init_start_codes (codec_type_parse);
+        m_frame_parser.init_nal_length(nal_length);
 #ifdef INPUT_BUFFER_LOG
-		strcat(inputfilename, "264");
+        strcat(inputfilename, "264");
 #endif
-	}
-	else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.hevc",\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.hevc",OMX_MAX_STRINGNAME_SIZE);
-                drv_ctx.decoder_format = VDEC_CODECTYPE_HEVC;
-                output_capability=V4L2_PIX_FMT_HEVC;
-		eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingHevc;
-                codec_type_parse = CODEC_TYPE_HEVC;
-		m_frame_parser.init_start_codes (codec_type_parse);
-		m_frame_parser.init_nal_length(nal_length);
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.hevc",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.hevc",OMX_MAX_STRINGNAME_SIZE);
+        drv_ctx.decoder_format = VDEC_CODECTYPE_HEVC;
+        output_capability=V4L2_PIX_FMT_HEVC;
+        eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingHevc;
+        codec_type_parse = CODEC_TYPE_HEVC;
+        m_frame_parser.init_start_codes (codec_type_parse);
+        m_frame_parser.init_nal_length(nal_length);
 #ifdef INPUT_BUFFER_LOG
-		strcat(inputfilename, "265");
+        strcat(inputfilename, "265");
 #endif
-	}
-	else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1",\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
-		drv_ctx.decoder_format = VDEC_CODECTYPE_VC1;
-		eCompressionFormat = OMX_VIDEO_CodingWMV;
-		codec_type_parse = CODEC_TYPE_VC1;
-		output_capability = V4L2_PIX_FMT_VC1_ANNEX_G;
-		m_frame_parser.init_start_codes (codec_type_parse);
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
+        drv_ctx.decoder_format = VDEC_CODECTYPE_VC1;
+        eCompressionFormat = OMX_VIDEO_CodingWMV;
+        codec_type_parse = CODEC_TYPE_VC1;
+        output_capability = V4L2_PIX_FMT_VC1_ANNEX_G;
+        m_frame_parser.init_start_codes (codec_type_parse);
 #ifdef INPUT_BUFFER_LOG
-		strcat(inputfilename, "vc1");
+        strcat(inputfilename, "vc1");
 #endif
-	}
-	else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.wmv",\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
-		drv_ctx.decoder_format = VDEC_CODECTYPE_VC1_RCV;
-		eCompressionFormat = OMX_VIDEO_CodingWMV;
-		codec_type_parse = CODEC_TYPE_VC1;
-		output_capability = V4L2_PIX_FMT_VC1_ANNEX_L;
-		m_frame_parser.init_start_codes (codec_type_parse);
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.wmv",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
+        drv_ctx.decoder_format = VDEC_CODECTYPE_VC1_RCV;
+        eCompressionFormat = OMX_VIDEO_CodingWMV;
+        codec_type_parse = CODEC_TYPE_VC1;
+        output_capability = V4L2_PIX_FMT_VC1_ANNEX_L;
+        m_frame_parser.init_start_codes (codec_type_parse);
 #ifdef INPUT_BUFFER_LOG
-		strcat(inputfilename, "vc1");
+        strcat(inputfilename, "vc1");
 #endif
-	}
-	else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vp8",	\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.vp8",OMX_MAX_STRINGNAME_SIZE);
-		output_capability=V4L2_PIX_FMT_VP8;
-		eCompressionFormat = OMX_VIDEO_CodingVPX;
-		codec_type_parse = CODEC_TYPE_VP8;
-		arbitrary_bytes = false;
-	}
-	else
-	{
-		DEBUG_PRINT_ERROR("\nERROR:Unknown Component\n");
-		eRet = OMX_ErrorInvalidComponentName;
-	}
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vp8",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.vp8",OMX_MAX_STRINGNAME_SIZE);
+        output_capability=V4L2_PIX_FMT_VP8;
+        eCompressionFormat = OMX_VIDEO_CodingVPX;
+        codec_type_parse = CODEC_TYPE_VP8;
+        arbitrary_bytes = false;
+    } else {
+        DEBUG_PRINT_ERROR("\nERROR:Unknown Component\n");
+        eRet = OMX_ErrorInvalidComponentName;
+    }
 #ifdef INPUT_BUFFER_LOG
-	inputBufferFile1 = fopen (inputfilename, "ab");
+    inputBufferFile1 = fopen (inputfilename, "ab");
 #endif
-	if (eRet == OMX_ErrorNone)
-	{
+    if (eRet == OMX_ErrorNone) {
 
-		drv_ctx.output_format = VDEC_YUV_FORMAT_NV12;
+        drv_ctx.output_format = VDEC_YUV_FORMAT_NV12;
         OMX_COLOR_FORMATTYPE dest_color_format = (OMX_COLOR_FORMATTYPE)
             QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m;
         if (!client_buffers.set_color_format(dest_color_format)) {
@@ -1578,111 +1428,111 @@
             eRet = OMX_ErrorInsufficientResources;
         }
 
-		capture_capability= V4L2_PIX_FMT_NV12;
-		ret = subscribe_to_events(drv_ctx.video_driver_fd);
-		if (ret) {
-			DEBUG_PRINT_ERROR("\n Subscribe Event Failed \n");
-			return OMX_ErrorInsufficientResources;
-		}
+        capture_capability= V4L2_PIX_FMT_NV12;
+        ret = subscribe_to_events(drv_ctx.video_driver_fd);
+        if (ret) {
+            DEBUG_PRINT_ERROR("\n Subscribe Event Failed \n");
+            return OMX_ErrorInsufficientResources;
+        }
 
-		struct v4l2_capability cap;
-		ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_QUERYCAP, &cap);
-		if (ret) {
-		  DEBUG_PRINT_ERROR("Failed to query capabilities\n");
-		  /*TODO: How to handle this case */
-		} else {
-		  DEBUG_PRINT_HIGH("Capabilities: driver_name = %s, card = %s, bus_info = %s,"
-				" version = %d, capabilities = %x\n", cap.driver, cap.card,
-				cap.bus_info, cap.version, cap.capabilities);
-		}
-		ret=0;
-		fdesc.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		fdesc.index=0;
-		while (ioctl(drv_ctx.video_driver_fd, VIDIOC_ENUM_FMT, &fdesc) == 0) {
-			DEBUG_PRINT_HIGH("fmt: description: %s, fmt: %x, flags = %x\n", fdesc.description,
-					fdesc.pixelformat, fdesc.flags);
-			fdesc.index++;
-		}
-		fdesc.type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-		fdesc.index=0;
-		while (ioctl(drv_ctx.video_driver_fd, VIDIOC_ENUM_FMT, &fdesc) == 0) {
+        struct v4l2_capability cap;
+        ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_QUERYCAP, &cap);
+        if (ret) {
+            DEBUG_PRINT_ERROR("Failed to query capabilities\n");
+            /*TODO: How to handle this case */
+        } else {
+            DEBUG_PRINT_HIGH("Capabilities: driver_name = %s, card = %s, bus_info = %s,"
+                    " version = %d, capabilities = %x\n", cap.driver, cap.card,
+                    cap.bus_info, cap.version, cap.capabilities);
+        }
+        ret=0;
+        fdesc.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+        fdesc.index=0;
+        while (ioctl(drv_ctx.video_driver_fd, VIDIOC_ENUM_FMT, &fdesc) == 0) {
+            DEBUG_PRINT_HIGH("fmt: description: %s, fmt: %x, flags = %x\n", fdesc.description,
+                    fdesc.pixelformat, fdesc.flags);
+            fdesc.index++;
+        }
+        fdesc.type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+        fdesc.index=0;
+        while (ioctl(drv_ctx.video_driver_fd, VIDIOC_ENUM_FMT, &fdesc) == 0) {
 
-			DEBUG_PRINT_HIGH("fmt: description: %s, fmt: %x, flags = %x\n", fdesc.description,
-					fdesc.pixelformat, fdesc.flags);
-			fdesc.index++;
-		}
+            DEBUG_PRINT_HIGH("fmt: description: %s, fmt: %x, flags = %x\n", fdesc.description,
+                    fdesc.pixelformat, fdesc.flags);
+            fdesc.index++;
+        }
         update_resolution(320, 240);
-		fmt.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-		fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
-		fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
-		fmt.fmt.pix_mp.pixelformat = output_capability;
-		ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_FMT, &fmt);
-		if (ret) {
-			/*TODO: How to handle this case */
-			DEBUG_PRINT_ERROR("Failed to set format on output port\n");
-				}
-		DEBUG_PRINT_HIGH("\n Set Format was successful \n ");
-		if (codec_ambiguous) {
-			if (output_capability == V4L2_PIX_FMT_DIVX) {
-				struct v4l2_control divx_ctrl;
+        fmt.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+        fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
+        fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
+        fmt.fmt.pix_mp.pixelformat = output_capability;
+        ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_FMT, &fmt);
+        if (ret) {
+            /*TODO: How to handle this case */
+            DEBUG_PRINT_ERROR("Failed to set format on output port\n");
+        }
+        DEBUG_PRINT_HIGH("\n Set Format was successful \n ");
+        if (codec_ambiguous) {
+            if (output_capability == V4L2_PIX_FMT_DIVX) {
+                struct v4l2_control divx_ctrl;
 
-				if (drv_ctx.decoder_format == VDEC_CODECTYPE_DIVX_4) {
-					divx_ctrl.value = V4L2_MPEG_VIDC_VIDEO_DIVX_FORMAT_4;
-				} else if (drv_ctx.decoder_format == VDEC_CODECTYPE_DIVX_5) {
-					divx_ctrl.value = V4L2_MPEG_VIDC_VIDEO_DIVX_FORMAT_5;
-				} else {
-					divx_ctrl.value = V4L2_MPEG_VIDC_VIDEO_DIVX_FORMAT_6;
-				}
+                if (drv_ctx.decoder_format == VDEC_CODECTYPE_DIVX_4) {
+                    divx_ctrl.value = V4L2_MPEG_VIDC_VIDEO_DIVX_FORMAT_4;
+                } else if (drv_ctx.decoder_format == VDEC_CODECTYPE_DIVX_5) {
+                    divx_ctrl.value = V4L2_MPEG_VIDC_VIDEO_DIVX_FORMAT_5;
+                } else {
+                    divx_ctrl.value = V4L2_MPEG_VIDC_VIDEO_DIVX_FORMAT_6;
+                }
 
-				divx_ctrl.id = V4L2_CID_MPEG_VIDC_VIDEO_DIVX_FORMAT;
-				ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &divx_ctrl);
-				if (ret) {
-					DEBUG_PRINT_ERROR("Failed to set divx version\n");
-				}
-			} else {
-				DEBUG_PRINT_ERROR("Codec should not be ambiguous");
-			}
-		}
+                divx_ctrl.id = V4L2_CID_MPEG_VIDC_VIDEO_DIVX_FORMAT;
+                ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &divx_ctrl);
+                if (ret) {
+                    DEBUG_PRINT_ERROR("Failed to set divx version\n");
+                }
+            } else {
+                DEBUG_PRINT_ERROR("Codec should not be ambiguous");
+            }
+        }
 
-		fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
-		fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
-		fmt.fmt.pix_mp.pixelformat = capture_capability;
-		ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_FMT, &fmt);
-		if (ret) {
-			/*TODO: How to handle this case */
-			DEBUG_PRINT_ERROR("Failed to set format on capture port\n");
-				}
-		DEBUG_PRINT_HIGH("\n Set Format was successful \n ");
-		if(secure_mode){
-			control.id = V4L2_CID_MPEG_VIDC_VIDEO_SECURE;
-			control.value = 1;
-			DEBUG_PRINT_LOW("Omx_vdec:: calling to open secure device %d\n", ret);
-			ret=ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL,&control);
-			if (ret) {
-				DEBUG_PRINT_ERROR("Omx_vdec:: Unable to open secure device %d\n", ret);
-				close(drv_ctx.video_driver_fd);
-				return OMX_ErrorInsufficientResources;
-			}
-		}
+        fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+        fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
+        fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
+        fmt.fmt.pix_mp.pixelformat = capture_capability;
+        ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_FMT, &fmt);
+        if (ret) {
+            /*TODO: How to handle this case */
+            DEBUG_PRINT_ERROR("Failed to set format on capture port\n");
+        }
+        DEBUG_PRINT_HIGH("\n Set Format was successful \n ");
+        if (secure_mode) {
+            control.id = V4L2_CID_MPEG_VIDC_VIDEO_SECURE;
+            control.value = 1;
+            DEBUG_PRINT_LOW("Omx_vdec:: calling to open secure device %d\n", ret);
+            ret=ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL,&control);
+            if (ret) {
+                DEBUG_PRINT_ERROR("Omx_vdec:: Unable to open secure device %d\n", ret);
+                close(drv_ctx.video_driver_fd);
+                return OMX_ErrorInsufficientResources;
+            }
+        }
 
-		/*Get the Buffer requirements for input and output ports*/
-		drv_ctx.ip_buf.buffer_type = VDEC_BUFFER_TYPE_INPUT;
-		drv_ctx.op_buf.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
-		if (secure_mode) {
-			drv_ctx.op_buf.alignment=SZ_1M;
-			drv_ctx.ip_buf.alignment=SZ_1M;
-		} else {
-			drv_ctx.op_buf.alignment=SZ_4K;
-			drv_ctx.ip_buf.alignment=SZ_4K;
-		}
-		drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
-		drv_ctx.extradata = 0;
-		drv_ctx.picture_order = VDEC_ORDER_DISPLAY;
-		control.id = V4L2_CID_MPEG_VIDC_VIDEO_OUTPUT_ORDER;
-		control.value = V4L2_MPEG_VIDC_VIDEO_OUTPUT_ORDER_DISPLAY;
-		ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control);
-		drv_ctx.idr_only_decoding = 0;
+        /*Get the Buffer requirements for input and output ports*/
+        drv_ctx.ip_buf.buffer_type = VDEC_BUFFER_TYPE_INPUT;
+        drv_ctx.op_buf.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
+        if (secure_mode) {
+            drv_ctx.op_buf.alignment=SZ_1M;
+            drv_ctx.ip_buf.alignment=SZ_1M;
+        } else {
+            drv_ctx.op_buf.alignment=SZ_4K;
+            drv_ctx.ip_buf.alignment=SZ_4K;
+        }
+        drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
+        drv_ctx.extradata = 0;
+        drv_ctx.picture_order = VDEC_ORDER_DISPLAY;
+        control.id = V4L2_CID_MPEG_VIDC_VIDEO_OUTPUT_ORDER;
+        control.value = V4L2_MPEG_VIDC_VIDEO_OUTPUT_ORDER_DISPLAY;
+        ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control);
+        drv_ctx.idr_only_decoding = 0;
 
         m_state = OMX_StateLoaded;
 #ifdef DEFAULT_EXTRADATA
@@ -1692,164 +1542,143 @@
         eRet=get_buffer_req(&drv_ctx.ip_buf);
         DEBUG_PRINT_HIGH("Input Buffer Size =%d \n ",drv_ctx.ip_buf.buffer_size);
         get_buffer_req(&drv_ctx.op_buf);
-		if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264 ||
-		    drv_ctx.decoder_format == VDEC_CODECTYPE_HEVC)
-		{
-                    h264_scratch.nAllocLen = drv_ctx.ip_buf.buffer_size;
-  	            h264_scratch.pBuffer = (OMX_U8 *)malloc (drv_ctx.ip_buf.buffer_size);
-	   	    h264_scratch.nFilledLen = 0;
- 		    h264_scratch.nOffset = 0;
+        if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264 ||
+                drv_ctx.decoder_format == VDEC_CODECTYPE_HEVC) {
+            h264_scratch.nAllocLen = drv_ctx.ip_buf.buffer_size;
+            h264_scratch.pBuffer = (OMX_U8 *)malloc (drv_ctx.ip_buf.buffer_size);
+            h264_scratch.nFilledLen = 0;
+            h264_scratch.nOffset = 0;
 
-		    if (h264_scratch.pBuffer == NULL)
-		    {
-			DEBUG_PRINT_ERROR("\n h264_scratch.pBuffer Allocation failed ");
-			return OMX_ErrorInsufficientResources;
- 		    }
+            if (h264_scratch.pBuffer == NULL) {
+                DEBUG_PRINT_ERROR("\n h264_scratch.pBuffer Allocation failed ");
+                return OMX_ErrorInsufficientResources;
+            }
+        }
+
+        if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264) {
+            if (m_frame_parser.mutils == NULL) {
+                m_frame_parser.mutils = new H264_Utils();
+
+                if (m_frame_parser.mutils == NULL) {
+                    DEBUG_PRINT_ERROR("\n parser utils Allocation failed ");
+                    eRet = OMX_ErrorInsufficientResources;
+                } else {
+                    m_frame_parser.mutils->initialize_frame_checking_environment();
+                    m_frame_parser.mutils->allocate_rbsp_buffer (drv_ctx.ip_buf.buffer_size);
                 }
+            }
 
-		if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264)
-		{
-			if (m_frame_parser.mutils == NULL)
-			{
-				m_frame_parser.mutils = new H264_Utils();
+            h264_parser = new h264_stream_parser();
+            if (!h264_parser) {
+                DEBUG_PRINT_ERROR("ERROR: H264 parser allocation failed!");
+                eRet = OMX_ErrorInsufficientResources;
+            }
+        }
 
-				if (m_frame_parser.mutils == NULL)
-				{
-					DEBUG_PRINT_ERROR("\n parser utils Allocation failed ");
-					eRet = OMX_ErrorInsufficientResources;
-				}
-				else
-				{
-					m_frame_parser.mutils->initialize_frame_checking_environment();
-					m_frame_parser.mutils->allocate_rbsp_buffer (drv_ctx.ip_buf.buffer_size);
-				}
-			}
+        if (pipe(fds)) {
+            DEBUG_PRINT_ERROR("pipe creation failed\n");
+            eRet = OMX_ErrorInsufficientResources;
+        } else {
+            int temp1[2];
+            if (fds[0] == 0 || fds[1] == 0) {
+                if (pipe (temp1)) {
+                    DEBUG_PRINT_ERROR("pipe creation failed\n");
+                    return OMX_ErrorInsufficientResources;
+                }
+                //close (fds[0]);
+                //close (fds[1]);
+                fds[0] = temp1 [0];
+                fds[1] = temp1 [1];
+            }
+            m_pipe_in = fds[0];
+            m_pipe_out = fds[1];
+            r = pthread_create(&msg_thread_id,0,message_thread,this);
 
-			h264_parser = new h264_stream_parser();
-			if (!h264_parser)
-			{
-				DEBUG_PRINT_ERROR("ERROR: H264 parser allocation failed!");
-				eRet = OMX_ErrorInsufficientResources;
-			}
-		}
+            if (r < 0) {
+                DEBUG_PRINT_ERROR("\n component_init(): message_thread creation failed");
+                eRet = OMX_ErrorInsufficientResources;
+            }
+        }
+    }
 
-		if(pipe(fds))
-		{
-			DEBUG_PRINT_ERROR("pipe creation failed\n");
-			eRet = OMX_ErrorInsufficientResources;
-		}
-		else
-		{
-			int temp1[2];
-			if(fds[0] == 0 || fds[1] == 0)
-			{
-				if (pipe (temp1))
-				{
-					DEBUG_PRINT_ERROR("pipe creation failed\n");
-					return OMX_ErrorInsufficientResources;
-				}
-				//close (fds[0]);
-				//close (fds[1]);
-				fds[0] = temp1 [0];
-				fds[1] = temp1 [1];
-			}
-			m_pipe_in = fds[0];
-			m_pipe_out = fds[1];
-			r = pthread_create(&msg_thread_id,0,message_thread,this);
-
-			if(r < 0)
-			{
-				DEBUG_PRINT_ERROR("\n component_init(): message_thread creation failed");
-				eRet = OMX_ErrorInsufficientResources;
-			}
-		}
-	}
-
-	if (eRet != OMX_ErrorNone)
-	{
-		DEBUG_PRINT_ERROR("\n Component Init Failed");
-		DEBUG_PRINT_HIGH("\n Calling VDEC_IOCTL_STOP_NEXT_MSG");
-		(void)ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_STOP_NEXT_MSG,
-				NULL);
-		DEBUG_PRINT_HIGH("\n Calling close() on Video Driver");
-		close (drv_ctx.video_driver_fd);
-		drv_ctx.video_driver_fd = -1;
-	}
-	else
-	{
-		DEBUG_PRINT_HIGH("\n omx_vdec::component_init() success");
-	}
-	//memset(&h264_mv_buff,0,sizeof(struct h264_mv_buffer));
-	return eRet;
+    if (eRet != OMX_ErrorNone) {
+        DEBUG_PRINT_ERROR("\n Component Init Failed");
+        DEBUG_PRINT_HIGH("\n Calling VDEC_IOCTL_STOP_NEXT_MSG");
+        (void)ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_STOP_NEXT_MSG,
+                NULL);
+        DEBUG_PRINT_HIGH("\n Calling close() on Video Driver");
+        close (drv_ctx.video_driver_fd);
+        drv_ctx.video_driver_fd = -1;
+    } else {
+        DEBUG_PRINT_HIGH("\n omx_vdec::component_init() success");
+    }
+    //memset(&h264_mv_buff,0,sizeof(struct h264_mv_buffer));
+    return eRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::GetComponentVersion
+   FUNCTION
+   omx_vdec::GetComponentVersion
 
-DESCRIPTION
-  Returns the component version.
+   DESCRIPTION
+   Returns the component version.
 
-PARAMETERS
-  TBD.
+   PARAMETERS
+   TBD.
 
-RETURN VALUE
-  OMX_ErrorNone.
+   RETURN VALUE
+   OMX_ErrorNone.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::get_component_version
-                                     (
-                                      OMX_IN OMX_HANDLETYPE hComp,
-                                      OMX_OUT OMX_STRING componentName,
-                                      OMX_OUT OMX_VERSIONTYPE* componentVersion,
-                                      OMX_OUT OMX_VERSIONTYPE* specVersion,
-                                      OMX_OUT OMX_UUIDTYPE* componentUUID
-                                      )
+(
+ OMX_IN OMX_HANDLETYPE hComp,
+ OMX_OUT OMX_STRING componentName,
+ OMX_OUT OMX_VERSIONTYPE* componentVersion,
+ OMX_OUT OMX_VERSIONTYPE* specVersion,
+ OMX_OUT OMX_UUIDTYPE* componentUUID
+ )
 {
-    if(m_state == OMX_StateInvalid)
-    {
+    if (m_state == OMX_StateInvalid) {
         DEBUG_PRINT_ERROR("Get Comp Version in Invalid State\n");
         return OMX_ErrorInvalidState;
     }
-  /* TBD -- Return the proper version */
-  if (specVersion)
-  {
-    specVersion->nVersion = OMX_SPEC_VERSION;
-  }
-  return OMX_ErrorNone;
+    /* TBD -- Return the proper version */
+    if (specVersion) {
+        specVersion->nVersion = OMX_SPEC_VERSION;
+    }
+    return OMX_ErrorNone;
 }
 /* ======================================================================
-FUNCTION
-  omx_vdec::SendCommand
+   FUNCTION
+   omx_vdec::SendCommand
 
-DESCRIPTION
-  Returns zero if all the buffers released..
+   DESCRIPTION
+   Returns zero if all the buffers released..
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::send_command(OMX_IN OMX_HANDLETYPE hComp,
-                                      OMX_IN OMX_COMMANDTYPE cmd,
-                                      OMX_IN OMX_U32 param1,
-                                      OMX_IN OMX_PTR cmdData
-                                      )
+        OMX_IN OMX_COMMANDTYPE cmd,
+        OMX_IN OMX_U32 param1,
+        OMX_IN OMX_PTR cmdData
+        )
 {
     DEBUG_PRINT_LOW("\n send_command: Recieved a Command from Client");
-    if(m_state == OMX_StateInvalid)
-    {
+    if (m_state == OMX_StateInvalid) {
         DEBUG_PRINT_ERROR("ERROR: Send Command in Invalid State\n");
         return OMX_ErrorInvalidState;
     }
     if (cmd == OMX_CommandFlush && param1 != OMX_CORE_INPUT_PORT_INDEX
-      && param1 != OMX_CORE_OUTPUT_PORT_INDEX && param1 != OMX_ALL)
-    {
-      DEBUG_PRINT_ERROR("\n send_command(): ERROR OMX_CommandFlush "
-        "to invalid port: %lu", param1);
-      return OMX_ErrorBadPortIndex;
+            && param1 != OMX_CORE_OUTPUT_PORT_INDEX && param1 != OMX_ALL) {
+        DEBUG_PRINT_ERROR("\n send_command(): ERROR OMX_CommandFlush "
+                "to invalid port: %lu", param1);
+        return OMX_ErrorBadPortIndex;
     }
     post_event((unsigned)cmd,(unsigned)param1,OMX_COMPONENT_GENERATE_COMMAND);
     sem_wait(&m_cmd_lock);
@@ -1858,1132 +1687,972 @@
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::SendCommand
+   FUNCTION
+   omx_vdec::SendCommand
 
-DESCRIPTION
-  Returns zero if all the buffers released..
+   DESCRIPTION
+   Returns zero if all the buffers released..
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::send_command_proxy(OMX_IN OMX_HANDLETYPE hComp,
-                                            OMX_IN OMX_COMMANDTYPE cmd,
-                                            OMX_IN OMX_U32 param1,
-                                            OMX_IN OMX_PTR cmdData
-                                            )
+        OMX_IN OMX_COMMANDTYPE cmd,
+        OMX_IN OMX_U32 param1,
+        OMX_IN OMX_PTR cmdData
+        )
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  OMX_STATETYPE eState = (OMX_STATETYPE) param1;
-  int bFlag = 1,sem_posted = 0,ret=0;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_STATETYPE eState = (OMX_STATETYPE) param1;
+    int bFlag = 1,sem_posted = 0,ret=0;
 
-  DEBUG_PRINT_LOW("\n send_command_proxy(): cmd = %d", cmd);
-  DEBUG_PRINT_HIGH("\n send_command_proxy(): Current State %d, Expected State %d",
-    m_state, eState);
+    DEBUG_PRINT_LOW("\n send_command_proxy(): cmd = %d", cmd);
+    DEBUG_PRINT_HIGH("\n send_command_proxy(): Current State %d, Expected State %d",
+            m_state, eState);
 
-  if(cmd == OMX_CommandStateSet)
-  {
-    DEBUG_PRINT_HIGH("\n send_command_proxy(): OMX_CommandStateSet issued");
-    DEBUG_PRINT_HIGH("\n Current State %d, Expected State %d", m_state, eState);
-    /***************************/
-    /* Current State is Loaded */
-    /***************************/
-    if(m_state == OMX_StateLoaded)
-    {
-      if(eState == OMX_StateIdle)
-      {
-        //if all buffers are allocated or all ports disabled
-        if(allocate_done() ||
-          (m_inp_bEnabled == OMX_FALSE && m_out_bEnabled == OMX_FALSE))
-        {
-          DEBUG_PRINT_LOW("send_command_proxy(): Loaded-->Idle\n");
-        }
-        else
-        {
-          DEBUG_PRINT_LOW("send_command_proxy(): Loaded-->Idle-Pending\n");
-          BITMASK_SET(&m_flags, OMX_COMPONENT_IDLE_PENDING);
-          // Skip the event notification
-          bFlag = 0;
-        }
-      }
-      /* Requesting transition from Loaded to Loaded */
-      else if(eState == OMX_StateLoaded)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Loaded\n");
-        post_event(OMX_EventError,OMX_ErrorSameState,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorSameState;
-      }
-      /* Requesting transition from Loaded to WaitForResources */
-      else if(eState == OMX_StateWaitForResources)
-      {
-        /* Since error is None , we will post an event
-           at the end of this function definition */
-        DEBUG_PRINT_LOW("send_command_proxy(): Loaded-->WaitForResources\n");
-      }
-      /* Requesting transition from Loaded to Executing */
-      else if(eState == OMX_StateExecuting)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Executing\n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from Loaded to Pause */
-      else if(eState == OMX_StatePause)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Pause\n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from Loaded to Invalid */
-      else if(eState == OMX_StateInvalid)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Invalid\n");
-        post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorInvalidState;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Invalid(%d Not Handled)\n",\
-                          eState);
-        eRet = OMX_ErrorBadParameter;
-      }
-    }
-
-    /***************************/
-    /* Current State is IDLE */
-    /***************************/
-    else if(m_state == OMX_StateIdle)
-    {
-      if(eState == OMX_StateLoaded)
-      {
-        if(release_done())
-        {
-          /*
-             Since error is None , we will post an event at the end
-             of this function definition
-          */
-          DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Loaded\n");
-        }
-        else
-        {
-          DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Loaded-Pending\n");
-          BITMASK_SET(&m_flags, OMX_COMPONENT_LOADING_PENDING);
-          // Skip the event notification
-          bFlag = 0;
-        }
-      }
-      /* Requesting transition from Idle to Executing */
-      else if(eState == OMX_StateExecuting)
-      {
-	    DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Executing\n");
-        //BITMASK_SET(&m_flags, OMX_COMPONENT_EXECUTE_PENDING);
-        bFlag = 1;
-	    DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Executing\n");
-	    m_state=OMX_StateExecuting;
-	    DEBUG_PRINT_HIGH("Stream On CAPTURE Was successful\n");
-      }
-      /* Requesting transition from Idle to Idle */
-      else if(eState == OMX_StateIdle)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle-->Idle\n");
-        post_event(OMX_EventError,OMX_ErrorSameState,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorSameState;
-      }
-      /* Requesting transition from Idle to WaitForResources */
-      else if(eState == OMX_StateWaitForResources)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle-->WaitForResources\n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-       /* Requesting transition from Idle to Pause */
-       else if(eState == OMX_StatePause)
-      {
-         /*To pause the Video core we need to start the driver*/
-         if (/*ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_CMD_START,
-                    NULL) < */0)
-         {
-           DEBUG_PRINT_ERROR("\n VDEC_IOCTL_CMD_START FAILED");
-           omx_report_error ();
-           eRet = OMX_ErrorHardware;
-         }
-         else
-         {
-           BITMASK_SET(&m_flags,OMX_COMPONENT_PAUSE_PENDING);
-           DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Pause\n");
-           bFlag = 0;
-         }
-      }
-      /* Requesting transition from Idle to Invalid */
-       else if(eState == OMX_StateInvalid)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle-->Invalid\n");
-        post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorInvalidState;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle --> %d Not Handled\n",eState);
-        eRet = OMX_ErrorBadParameter;
-      }
-    }
-
-    /******************************/
-    /* Current State is Executing */
-    /******************************/
-    else if(m_state == OMX_StateExecuting)
-    {
-       DEBUG_PRINT_LOW("\n Command Recieved in OMX_StateExecuting");
-       /* Requesting transition from Executing to Idle */
-       if(eState == OMX_StateIdle)
-	   {
-		   /* Since error is None , we will post an event
-			  at the end of this function definition
-			*/
-		   DEBUG_PRINT_LOW("\n send_command_proxy(): Executing --> Idle \n");
-		   BITMASK_SET(&m_flags,OMX_COMPONENT_IDLE_PENDING);
-		   if(!sem_posted)
-		   {
-			   sem_posted = 1;
-			   sem_post (&m_cmd_lock);
-			   execute_omx_flush(OMX_ALL);
-		   }
-		   bFlag = 0;
-	   }
-       /* Requesting transition from Executing to Paused */
-       else if(eState == OMX_StatePause)
-       {
-         DEBUG_PRINT_LOW("\n PAUSE Command Issued");
-         m_state = OMX_StatePause;
-         bFlag = 1;
-       }
-       /* Requesting transition from Executing to Loaded */
-       else if(eState == OMX_StateLoaded)
-       {
-         DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> Loaded \n");
-         post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                    OMX_COMPONENT_GENERATE_EVENT);
-         eRet = OMX_ErrorIncorrectStateTransition;
-       }
-       /* Requesting transition from Executing to WaitForResources */
-       else if(eState == OMX_StateWaitForResources)
-       {
-         DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> WaitForResources \n");
-         post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                    OMX_COMPONENT_GENERATE_EVENT);
-         eRet = OMX_ErrorIncorrectStateTransition;
-       }
-       /* Requesting transition from Executing to Executing */
-       else if(eState == OMX_StateExecuting)
-       {
-         DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> Executing \n");
-         post_event(OMX_EventError,OMX_ErrorSameState,\
-                    OMX_COMPONENT_GENERATE_EVENT);
-         eRet = OMX_ErrorSameState;
-       }
-       /* Requesting transition from Executing to Invalid */
-       else if(eState == OMX_StateInvalid)
-       {
-         DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> Invalid \n");
-         post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
-         eRet = OMX_ErrorInvalidState;
-       }
-       else
-       {
-         DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Executing --> %d Not Handled\n",eState);
-         eRet = OMX_ErrorBadParameter;
-       }
-    }
-    /***************************/
-    /* Current State is Pause  */
-    /***************************/
-    else if(m_state == OMX_StatePause)
-    {
-      /* Requesting transition from Pause to Executing */
-      if(eState == OMX_StateExecuting)
-      {
-        DEBUG_PRINT_LOW("\n Pause --> Executing \n");
-        m_state = OMX_StateExecuting;
-        bFlag = 1;
-      }
-      /* Requesting transition from Pause to Idle */
-      else if(eState == OMX_StateIdle)
-      {
-        /* Since error is None , we will post an event
-        at the end of this function definition */
-        DEBUG_PRINT_LOW("\n Pause --> Idle \n");
-         BITMASK_SET(&m_flags,OMX_COMPONENT_IDLE_PENDING);
-         if(!sem_posted)
-         {
-           sem_posted = 1;
-           sem_post (&m_cmd_lock);
-           execute_omx_flush(OMX_ALL);
-         }
-         bFlag = 0;
-      }
-      /* Requesting transition from Pause to loaded */
-      else if(eState == OMX_StateLoaded)
-      {
-        DEBUG_PRINT_ERROR("\n Pause --> loaded \n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from Pause to WaitForResources */
-      else if(eState == OMX_StateWaitForResources)
-      {
-        DEBUG_PRINT_ERROR("\n Pause --> WaitForResources \n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from Pause to Pause */
-      else if(eState == OMX_StatePause)
-      {
-        DEBUG_PRINT_ERROR("\n Pause --> Pause \n");
-        post_event(OMX_EventError,OMX_ErrorSameState,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorSameState;
-      }
-       /* Requesting transition from Pause to Invalid */
-      else if(eState == OMX_StateInvalid)
-      {
-        DEBUG_PRINT_ERROR("\n Pause --> Invalid \n");
-        post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorInvalidState;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Paused --> %d Not Handled\n",eState);
-        eRet = OMX_ErrorBadParameter;
-      }
-    }
-     /***************************/
-    /* Current State is WaitForResources  */
-    /***************************/
-    else if(m_state == OMX_StateWaitForResources)
-    {
-      /* Requesting transition from WaitForResources to Loaded */
-      if(eState == OMX_StateLoaded)
-      {
-        /* Since error is None , we will post an event
-        at the end of this function definition */
-        DEBUG_PRINT_LOW("send_command_proxy(): WaitForResources-->Loaded\n");
-      }
-      /* Requesting transition from WaitForResources to WaitForResources */
-      else if (eState == OMX_StateWaitForResources)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->WaitForResources\n");
-        post_event(OMX_EventError,OMX_ErrorSameState,
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorSameState;
-      }
-      /* Requesting transition from WaitForResources to Executing */
-      else if(eState == OMX_StateExecuting)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->Executing\n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from WaitForResources to Pause */
-      else if(eState == OMX_StatePause)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->Pause\n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from WaitForResources to Invalid */
-      else if(eState == OMX_StateInvalid)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->Invalid\n");
-        post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorInvalidState;
-      }
-      /* Requesting transition from WaitForResources to Loaded -
-      is NOT tested by Khronos TS */
-
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): %d --> %d(Not Handled)\n",m_state,eState);
-      eRet = OMX_ErrorBadParameter;
-    }
-  }
-  /********************************/
-  /* Current State is Invalid */
-  /*******************************/
-  else if(m_state == OMX_StateInvalid)
-  {
-    /* State Transition from Inavlid to any state */
-    if(eState == (OMX_StateLoaded || OMX_StateWaitForResources
-                  || OMX_StateIdle || OMX_StateExecuting
-                  || OMX_StatePause || OMX_StateInvalid))
-    {
-      DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Invalid -->Loaded\n");
-      post_event(OMX_EventError,OMX_ErrorInvalidState,\
-                 OMX_COMPONENT_GENERATE_EVENT);
-      eRet = OMX_ErrorInvalidState;
-    }
-  }
-  else if (cmd == OMX_CommandFlush)
-  {
-    DEBUG_PRINT_HIGH("\n send_command_proxy(): OMX_CommandFlush issued"
-        "with param1: %lu", param1);
-    if(OMX_CORE_INPUT_PORT_INDEX == param1 || OMX_ALL == param1)
-    {
-      BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_FLUSH_PENDING);
-    }
-    if(OMX_CORE_OUTPUT_PORT_INDEX == param1 || OMX_ALL == param1)
-    {
-      BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_FLUSH_PENDING);
-    }
-    if (!sem_posted){
-      sem_posted = 1;
-      DEBUG_PRINT_LOW("\n Set the Semaphore");
-      sem_post (&m_cmd_lock);
-      execute_omx_flush(param1);
-    }
-    bFlag = 0;
-  }
-  else if ( cmd == OMX_CommandPortEnable)
-  {
-    DEBUG_PRINT_HIGH("\n send_command_proxy(): OMX_CommandPortEnable issued"
-        "with param1: %lu", param1);
-    if(param1 == OMX_CORE_INPUT_PORT_INDEX || param1 == OMX_ALL)
-      {
-        m_inp_bEnabled = OMX_TRUE;
-
-        if( (m_state == OMX_StateLoaded &&
-             !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
-            || allocate_input_done())
-        {
-          post_event(OMX_CommandPortEnable,OMX_CORE_INPUT_PORT_INDEX,
-                     OMX_COMPONENT_GENERATE_EVENT);
-        }
-        else
-        {
-          DEBUG_PRINT_LOW("send_command_proxy(): Disabled-->Enabled Pending\n");
-          BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_ENABLE_PENDING);
-          // Skip the event notification
-          bFlag = 0;
-        }
-      }
-      if(param1 == OMX_CORE_OUTPUT_PORT_INDEX || param1 == OMX_ALL)
-      {
-          DEBUG_PRINT_LOW("\n Enable output Port command recieved");
-          m_out_bEnabled = OMX_TRUE;
-
-          if( (m_state == OMX_StateLoaded &&
-              !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
-              || (allocate_output_done()))
-          {
-             post_event(OMX_CommandPortEnable,OMX_CORE_OUTPUT_PORT_INDEX,
-                        OMX_COMPONENT_GENERATE_EVENT);
-
-          }
-          else
-          {
-              DEBUG_PRINT_LOW("send_command_proxy(): Disabled-->Enabled Pending\n");
-              BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
-              // Skip the event notification
-              bFlag = 0;
-          }
-      }
-  }
-  else if (cmd == OMX_CommandPortDisable)
-  {
-      DEBUG_PRINT_HIGH("\n send_command_proxy(): OMX_CommandPortDisable issued"
-          "with param1: %lu", param1);
-      if(param1 == OMX_CORE_INPUT_PORT_INDEX || param1 == OMX_ALL)
-      {
-          m_inp_bEnabled = OMX_FALSE;
-          if((m_state == OMX_StateLoaded || m_state == OMX_StateIdle)
-              && release_input_done())
-          {
-             post_event(OMX_CommandPortDisable,OMX_CORE_INPUT_PORT_INDEX,
-                        OMX_COMPONENT_GENERATE_EVENT);
-          }
-          else
-          {
-             BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_DISABLE_PENDING);
-             if(m_state == OMX_StatePause ||m_state == OMX_StateExecuting)
-             {
-               if(!sem_posted)
-               {
-                 sem_posted = 1;
-                 sem_post (&m_cmd_lock);
-               }
-               execute_omx_flush(OMX_CORE_INPUT_PORT_INDEX);
-             }
-
-             // Skip the event notification
-             bFlag = 0;
-          }
-      }
-      if(param1 == OMX_CORE_OUTPUT_PORT_INDEX || param1 == OMX_ALL)
-      {
-          m_out_bEnabled = OMX_FALSE;
-          DEBUG_PRINT_LOW("\n Disable output Port command recieved");
-          if((m_state == OMX_StateLoaded || m_state == OMX_StateIdle)
-              && release_output_done())
-          {
-             post_event(OMX_CommandPortDisable,OMX_CORE_OUTPUT_PORT_INDEX,\
-                        OMX_COMPONENT_GENERATE_EVENT);
-          }
-          else
-         {
-            BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_DISABLE_PENDING);
-            if(m_state == OMX_StatePause ||m_state == OMX_StateExecuting)
-            {
-              if (!sem_posted)
-              {
-                sem_posted = 1;
-                sem_post (&m_cmd_lock);
-              }
-                BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING);
-                execute_omx_flush(OMX_CORE_OUTPUT_PORT_INDEX);
+    if (cmd == OMX_CommandStateSet) {
+        DEBUG_PRINT_HIGH("\n send_command_proxy(): OMX_CommandStateSet issued");
+        DEBUG_PRINT_HIGH("\n Current State %d, Expected State %d", m_state, eState);
+        /***************************/
+        /* Current State is Loaded */
+        /***************************/
+        if (m_state == OMX_StateLoaded) {
+            if (eState == OMX_StateIdle) {
+                //if all buffers are allocated or all ports disabled
+                if (allocate_done() ||
+                        (m_inp_bEnabled == OMX_FALSE && m_out_bEnabled == OMX_FALSE)) {
+                    DEBUG_PRINT_LOW("send_command_proxy(): Loaded-->Idle\n");
+                } else {
+                    DEBUG_PRINT_LOW("send_command_proxy(): Loaded-->Idle-Pending\n");
+                    BITMASK_SET(&m_flags, OMX_COMPONENT_IDLE_PENDING);
+                    // Skip the event notification
+                    bFlag = 0;
+                }
             }
-            // Skip the event notification
-            bFlag = 0;
+            /* Requesting transition from Loaded to Loaded */
+            else if (eState == OMX_StateLoaded) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Loaded\n");
+                post_event(OMX_EventError,OMX_ErrorSameState,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorSameState;
+            }
+            /* Requesting transition from Loaded to WaitForResources */
+            else if (eState == OMX_StateWaitForResources) {
+                /* Since error is None , we will post an event
+                   at the end of this function definition */
+                DEBUG_PRINT_LOW("send_command_proxy(): Loaded-->WaitForResources\n");
+            }
+            /* Requesting transition from Loaded to Executing */
+            else if (eState == OMX_StateExecuting) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Executing\n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Loaded to Pause */
+            else if (eState == OMX_StatePause) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Pause\n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Loaded to Invalid */
+            else if (eState == OMX_StateInvalid) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Invalid\n");
+                post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorInvalidState;
+            } else {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Invalid(%d Not Handled)\n",\
+                        eState);
+                eRet = OMX_ErrorBadParameter;
+            }
+        }
 
-         }
-      }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("Error: Invalid Command other than StateSet (%d)\n",cmd);
-    eRet = OMX_ErrorNotImplemented;
-  }
-  if(eRet == OMX_ErrorNone && bFlag)
-  {
-    post_event(cmd,eState,OMX_COMPONENT_GENERATE_EVENT);
-  }
-  if(!sem_posted)
-  {
-    sem_post(&m_cmd_lock);
-  }
+        /***************************/
+        /* Current State is IDLE */
+        /***************************/
+        else if (m_state == OMX_StateIdle) {
+            if (eState == OMX_StateLoaded) {
+                if (release_done()) {
+                    /*
+                       Since error is None , we will post an event at the end
+                       of this function definition
+                     */
+                    DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Loaded\n");
+                } else {
+                    DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Loaded-Pending\n");
+                    BITMASK_SET(&m_flags, OMX_COMPONENT_LOADING_PENDING);
+                    // Skip the event notification
+                    bFlag = 0;
+                }
+            }
+            /* Requesting transition from Idle to Executing */
+            else if (eState == OMX_StateExecuting) {
+                DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Executing\n");
+                //BITMASK_SET(&m_flags, OMX_COMPONENT_EXECUTE_PENDING);
+                bFlag = 1;
+                DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Executing\n");
+                m_state=OMX_StateExecuting;
+                DEBUG_PRINT_HIGH("Stream On CAPTURE Was successful\n");
+            }
+            /* Requesting transition from Idle to Idle */
+            else if (eState == OMX_StateIdle) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle-->Idle\n");
+                post_event(OMX_EventError,OMX_ErrorSameState,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorSameState;
+            }
+            /* Requesting transition from Idle to WaitForResources */
+            else if (eState == OMX_StateWaitForResources) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle-->WaitForResources\n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Idle to Pause */
+            else if (eState == OMX_StatePause) {
+                /*To pause the Video core we need to start the driver*/
+                if (/*ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_CMD_START,
+                      NULL) < */0) {
+                    DEBUG_PRINT_ERROR("\n VDEC_IOCTL_CMD_START FAILED");
+                    omx_report_error ();
+                    eRet = OMX_ErrorHardware;
+                } else {
+                    BITMASK_SET(&m_flags,OMX_COMPONENT_PAUSE_PENDING);
+                    DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Pause\n");
+                    bFlag = 0;
+                }
+            }
+            /* Requesting transition from Idle to Invalid */
+            else if (eState == OMX_StateInvalid) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle-->Invalid\n");
+                post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorInvalidState;
+            } else {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle --> %d Not Handled\n",eState);
+                eRet = OMX_ErrorBadParameter;
+            }
+        }
 
-  return eRet;
+        /******************************/
+        /* Current State is Executing */
+        /******************************/
+        else if (m_state == OMX_StateExecuting) {
+            DEBUG_PRINT_LOW("\n Command Recieved in OMX_StateExecuting");
+            /* Requesting transition from Executing to Idle */
+            if (eState == OMX_StateIdle) {
+                /* Since error is None , we will post an event
+                   at the end of this function definition
+                 */
+                DEBUG_PRINT_LOW("\n send_command_proxy(): Executing --> Idle \n");
+                BITMASK_SET(&m_flags,OMX_COMPONENT_IDLE_PENDING);
+                if (!sem_posted) {
+                    sem_posted = 1;
+                    sem_post (&m_cmd_lock);
+                    execute_omx_flush(OMX_ALL);
+                }
+                bFlag = 0;
+            }
+            /* Requesting transition from Executing to Paused */
+            else if (eState == OMX_StatePause) {
+                DEBUG_PRINT_LOW("\n PAUSE Command Issued");
+                m_state = OMX_StatePause;
+                bFlag = 1;
+            }
+            /* Requesting transition from Executing to Loaded */
+            else if (eState == OMX_StateLoaded) {
+                DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> Loaded \n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Executing to WaitForResources */
+            else if (eState == OMX_StateWaitForResources) {
+                DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> WaitForResources \n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Executing to Executing */
+            else if (eState == OMX_StateExecuting) {
+                DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> Executing \n");
+                post_event(OMX_EventError,OMX_ErrorSameState,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorSameState;
+            }
+            /* Requesting transition from Executing to Invalid */
+            else if (eState == OMX_StateInvalid) {
+                DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> Invalid \n");
+                post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorInvalidState;
+            } else {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Executing --> %d Not Handled\n",eState);
+                eRet = OMX_ErrorBadParameter;
+            }
+        }
+        /***************************/
+        /* Current State is Pause  */
+        /***************************/
+        else if (m_state == OMX_StatePause) {
+            /* Requesting transition from Pause to Executing */
+            if (eState == OMX_StateExecuting) {
+                DEBUG_PRINT_LOW("\n Pause --> Executing \n");
+                m_state = OMX_StateExecuting;
+                bFlag = 1;
+            }
+            /* Requesting transition from Pause to Idle */
+            else if (eState == OMX_StateIdle) {
+                /* Since error is None , we will post an event
+                   at the end of this function definition */
+                DEBUG_PRINT_LOW("\n Pause --> Idle \n");
+                BITMASK_SET(&m_flags,OMX_COMPONENT_IDLE_PENDING);
+                if (!sem_posted) {
+                    sem_posted = 1;
+                    sem_post (&m_cmd_lock);
+                    execute_omx_flush(OMX_ALL);
+                }
+                bFlag = 0;
+            }
+            /* Requesting transition from Pause to loaded */
+            else if (eState == OMX_StateLoaded) {
+                DEBUG_PRINT_ERROR("\n Pause --> loaded \n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Pause to WaitForResources */
+            else if (eState == OMX_StateWaitForResources) {
+                DEBUG_PRINT_ERROR("\n Pause --> WaitForResources \n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Pause to Pause */
+            else if (eState == OMX_StatePause) {
+                DEBUG_PRINT_ERROR("\n Pause --> Pause \n");
+                post_event(OMX_EventError,OMX_ErrorSameState,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorSameState;
+            }
+            /* Requesting transition from Pause to Invalid */
+            else if (eState == OMX_StateInvalid) {
+                DEBUG_PRINT_ERROR("\n Pause --> Invalid \n");
+                post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorInvalidState;
+            } else {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Paused --> %d Not Handled\n",eState);
+                eRet = OMX_ErrorBadParameter;
+            }
+        }
+        /***************************/
+        /* Current State is WaitForResources  */
+        /***************************/
+        else if (m_state == OMX_StateWaitForResources) {
+            /* Requesting transition from WaitForResources to Loaded */
+            if (eState == OMX_StateLoaded) {
+                /* Since error is None , we will post an event
+                   at the end of this function definition */
+                DEBUG_PRINT_LOW("send_command_proxy(): WaitForResources-->Loaded\n");
+            }
+            /* Requesting transition from WaitForResources to WaitForResources */
+            else if (eState == OMX_StateWaitForResources) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->WaitForResources\n");
+                post_event(OMX_EventError,OMX_ErrorSameState,
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorSameState;
+            }
+            /* Requesting transition from WaitForResources to Executing */
+            else if (eState == OMX_StateExecuting) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->Executing\n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from WaitForResources to Pause */
+            else if (eState == OMX_StatePause) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->Pause\n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from WaitForResources to Invalid */
+            else if (eState == OMX_StateInvalid) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->Invalid\n");
+                post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorInvalidState;
+            }
+            /* Requesting transition from WaitForResources to Loaded -
+               is NOT tested by Khronos TS */
+
+        } else {
+            DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): %d --> %d(Not Handled)\n",m_state,eState);
+            eRet = OMX_ErrorBadParameter;
+        }
+    }
+    /********************************/
+    /* Current State is Invalid */
+    /*******************************/
+    else if (m_state == OMX_StateInvalid) {
+        /* State Transition from Inavlid to any state */
+        if (eState == (OMX_StateLoaded || OMX_StateWaitForResources
+                    || OMX_StateIdle || OMX_StateExecuting
+                    || OMX_StatePause || OMX_StateInvalid)) {
+            DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Invalid -->Loaded\n");
+            post_event(OMX_EventError,OMX_ErrorInvalidState,\
+                    OMX_COMPONENT_GENERATE_EVENT);
+            eRet = OMX_ErrorInvalidState;
+        }
+    } else if (cmd == OMX_CommandFlush) {
+        DEBUG_PRINT_HIGH("\n send_command_proxy(): OMX_CommandFlush issued"
+                "with param1: %lu", param1);
+        if (OMX_CORE_INPUT_PORT_INDEX == param1 || OMX_ALL == param1) {
+            BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_FLUSH_PENDING);
+        }
+        if (OMX_CORE_OUTPUT_PORT_INDEX == param1 || OMX_ALL == param1) {
+            BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_FLUSH_PENDING);
+        }
+        if (!sem_posted) {
+            sem_posted = 1;
+            DEBUG_PRINT_LOW("\n Set the Semaphore");
+            sem_post (&m_cmd_lock);
+            execute_omx_flush(param1);
+        }
+        bFlag = 0;
+    } else if ( cmd == OMX_CommandPortEnable) {
+        DEBUG_PRINT_HIGH("\n send_command_proxy(): OMX_CommandPortEnable issued"
+                "with param1: %lu", param1);
+        if (param1 == OMX_CORE_INPUT_PORT_INDEX || param1 == OMX_ALL) {
+            m_inp_bEnabled = OMX_TRUE;
+
+            if ( (m_state == OMX_StateLoaded &&
+                        !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
+                    || allocate_input_done()) {
+                post_event(OMX_CommandPortEnable,OMX_CORE_INPUT_PORT_INDEX,
+                        OMX_COMPONENT_GENERATE_EVENT);
+            } else {
+                DEBUG_PRINT_LOW("send_command_proxy(): Disabled-->Enabled Pending\n");
+                BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_ENABLE_PENDING);
+                // Skip the event notification
+                bFlag = 0;
+            }
+        }
+        if (param1 == OMX_CORE_OUTPUT_PORT_INDEX || param1 == OMX_ALL) {
+            DEBUG_PRINT_LOW("\n Enable output Port command recieved");
+            m_out_bEnabled = OMX_TRUE;
+
+            if ( (m_state == OMX_StateLoaded &&
+                        !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
+                    || (allocate_output_done())) {
+                post_event(OMX_CommandPortEnable,OMX_CORE_OUTPUT_PORT_INDEX,
+                        OMX_COMPONENT_GENERATE_EVENT);
+
+            } else {
+                DEBUG_PRINT_LOW("send_command_proxy(): Disabled-->Enabled Pending\n");
+                BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
+                // Skip the event notification
+                bFlag = 0;
+            }
+        }
+    } else if (cmd == OMX_CommandPortDisable) {
+        DEBUG_PRINT_HIGH("\n send_command_proxy(): OMX_CommandPortDisable issued"
+                "with param1: %lu", param1);
+        if (param1 == OMX_CORE_INPUT_PORT_INDEX || param1 == OMX_ALL) {
+            m_inp_bEnabled = OMX_FALSE;
+            if ((m_state == OMX_StateLoaded || m_state == OMX_StateIdle)
+                    && release_input_done()) {
+                post_event(OMX_CommandPortDisable,OMX_CORE_INPUT_PORT_INDEX,
+                        OMX_COMPONENT_GENERATE_EVENT);
+            } else {
+                BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_DISABLE_PENDING);
+                if (m_state == OMX_StatePause ||m_state == OMX_StateExecuting) {
+                    if (!sem_posted) {
+                        sem_posted = 1;
+                        sem_post (&m_cmd_lock);
+                    }
+                    execute_omx_flush(OMX_CORE_INPUT_PORT_INDEX);
+                }
+
+                // Skip the event notification
+                bFlag = 0;
+            }
+        }
+        if (param1 == OMX_CORE_OUTPUT_PORT_INDEX || param1 == OMX_ALL) {
+            m_out_bEnabled = OMX_FALSE;
+            DEBUG_PRINT_LOW("\n Disable output Port command recieved");
+            if ((m_state == OMX_StateLoaded || m_state == OMX_StateIdle)
+                    && release_output_done()) {
+                post_event(OMX_CommandPortDisable,OMX_CORE_OUTPUT_PORT_INDEX,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+            } else {
+                BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_DISABLE_PENDING);
+                if (m_state == OMX_StatePause ||m_state == OMX_StateExecuting) {
+                    if (!sem_posted) {
+                        sem_posted = 1;
+                        sem_post (&m_cmd_lock);
+                    }
+                    BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING);
+                    execute_omx_flush(OMX_CORE_OUTPUT_PORT_INDEX);
+                }
+                // Skip the event notification
+                bFlag = 0;
+
+            }
+        }
+    } else {
+        DEBUG_PRINT_ERROR("Error: Invalid Command other than StateSet (%d)\n",cmd);
+        eRet = OMX_ErrorNotImplemented;
+    }
+    if (eRet == OMX_ErrorNone && bFlag) {
+        post_event(cmd,eState,OMX_COMPONENT_GENERATE_EVENT);
+    }
+    if (!sem_posted) {
+        sem_post(&m_cmd_lock);
+    }
+
+    return eRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::ExecuteOmxFlush
+   FUNCTION
+   omx_vdec::ExecuteOmxFlush
 
-DESCRIPTION
-  Executes the OMX flush.
+   DESCRIPTION
+   Executes the OMX flush.
 
-PARAMETERS
-  flushtype - input flush(1)/output flush(0)/ both.
+   PARAMETERS
+   flushtype - input flush(1)/output flush(0)/ both.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 bool omx_vdec::execute_omx_flush(OMX_U32 flushType)
 {
-  bool bRet = false;
-  struct v4l2_plane plane;
-  struct v4l2_buffer v4l2_buf;
-  struct v4l2_decoder_cmd dec;
-  DEBUG_PRINT_LOW("in %s", __func__);
-  memset((void *)&v4l2_buf,0,sizeof(v4l2_buf));
-  dec.cmd = V4L2_DEC_QCOM_CMD_FLUSH;
-  switch (flushType)
-  {
-    case OMX_CORE_INPUT_PORT_INDEX:
-      input_flush_progress = true;
-      dec.flags = V4L2_DEC_QCOM_CMD_FLUSH_OUTPUT;
-    break;
-    case OMX_CORE_OUTPUT_PORT_INDEX:
-      output_flush_progress = true;
-      dec.flags = V4L2_DEC_QCOM_CMD_FLUSH_CAPTURE;
-    break;
-    default:
-      input_flush_progress = true;
-      output_flush_progress = true;
-      dec.flags = V4L2_DEC_QCOM_CMD_FLUSH_OUTPUT |
-		  V4L2_DEC_QCOM_CMD_FLUSH_CAPTURE;
-  }
+    bool bRet = false;
+    struct v4l2_plane plane;
+    struct v4l2_buffer v4l2_buf;
+    struct v4l2_decoder_cmd dec;
+    DEBUG_PRINT_LOW("in %s", __func__);
+    memset((void *)&v4l2_buf,0,sizeof(v4l2_buf));
+    dec.cmd = V4L2_DEC_QCOM_CMD_FLUSH;
+    switch (flushType) {
+        case OMX_CORE_INPUT_PORT_INDEX:
+            input_flush_progress = true;
+            dec.flags = V4L2_DEC_QCOM_CMD_FLUSH_OUTPUT;
+            break;
+        case OMX_CORE_OUTPUT_PORT_INDEX:
+            output_flush_progress = true;
+            dec.flags = V4L2_DEC_QCOM_CMD_FLUSH_CAPTURE;
+            break;
+        default:
+            input_flush_progress = true;
+            output_flush_progress = true;
+            dec.flags = V4L2_DEC_QCOM_CMD_FLUSH_OUTPUT |
+                V4L2_DEC_QCOM_CMD_FLUSH_CAPTURE;
+    }
 
-  if (ioctl(drv_ctx.video_driver_fd, VIDIOC_DECODER_CMD, &dec))
-  {
-    DEBUG_PRINT_ERROR("\n Flush Port (%lu) Failed ", flushType);
-    bRet = false;
-  }
+    if (ioctl(drv_ctx.video_driver_fd, VIDIOC_DECODER_CMD, &dec)) {
+        DEBUG_PRINT_ERROR("\n Flush Port (%lu) Failed ", flushType);
+        bRet = false;
+    }
 
-  return bRet;
+    return bRet;
 }
 /*=========================================================================
 FUNCTION : execute_output_flush
 
 DESCRIPTION
-  Executes the OMX flush at OUTPUT PORT.
+Executes the OMX flush at OUTPUT PORT.
 
 PARAMETERS
-  None.
+None.
 
 RETURN VALUE
-  true/false
+true/false
 ==========================================================================*/
 bool omx_vdec::execute_output_flush()
 {
-  unsigned      p1 = 0; // Parameter - 1
-  unsigned      p2 = 0; // Parameter - 2
-  unsigned      ident = 0;
-  bool bRet = true;
+    unsigned      p1 = 0; // Parameter - 1
+    unsigned      p2 = 0; // Parameter - 2
+    unsigned      ident = 0;
+    bool bRet = true;
 
-  /*Generate FBD for all Buffers in the FTBq*/
-  pthread_mutex_lock(&m_lock);
-  DEBUG_PRINT_LOW("\n Initiate Output Flush");
-  while (m_ftb_q.m_size)
-  {
-    DEBUG_PRINT_LOW("\n Buffer queue size %d pending buf cnt %d",
-                       m_ftb_q.m_size,pending_output_buffers);
-    m_ftb_q.pop_entry(&p1,&p2,&ident);
-    DEBUG_PRINT_LOW("\n ID(%x) P1(%x) P2(%x)", ident, p1, p2);
-    if(ident == m_fill_output_msg )
-    {
-      m_cb.FillBufferDone(&m_cmp, m_app_data, (OMX_BUFFERHEADERTYPE *)p2);
+    /*Generate FBD for all Buffers in the FTBq*/
+    pthread_mutex_lock(&m_lock);
+    DEBUG_PRINT_LOW("\n Initiate Output Flush");
+    while (m_ftb_q.m_size) {
+        DEBUG_PRINT_LOW("\n Buffer queue size %d pending buf cnt %d",
+                m_ftb_q.m_size,pending_output_buffers);
+        m_ftb_q.pop_entry(&p1,&p2,&ident);
+        DEBUG_PRINT_LOW("\n ID(%x) P1(%x) P2(%x)", ident, p1, p2);
+        if (ident == m_fill_output_msg ) {
+            m_cb.FillBufferDone(&m_cmp, m_app_data, (OMX_BUFFERHEADERTYPE *)p2);
+        } else if (ident == OMX_COMPONENT_GENERATE_FBD) {
+            fill_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p1);
+        }
     }
-    else if (ident == OMX_COMPONENT_GENERATE_FBD)
-    {
-      fill_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p1);
-    }
-  }
-  pthread_mutex_unlock(&m_lock);
-  output_flush_progress = false;
+    pthread_mutex_unlock(&m_lock);
+    output_flush_progress = false;
 
-  if (arbitrary_bytes)
-  {
-    prev_ts = LLONG_MAX;
-    rst_prev_ts = true;
-  }
-  DEBUG_PRINT_HIGH("\n OMX flush o/p Port complete PenBuf(%d)", pending_output_buffers);
-  return bRet;
+    if (arbitrary_bytes) {
+        prev_ts = LLONG_MAX;
+        rst_prev_ts = true;
+    }
+    DEBUG_PRINT_HIGH("\n OMX flush o/p Port complete PenBuf(%d)", pending_output_buffers);
+    return bRet;
 }
 /*=========================================================================
 FUNCTION : execute_input_flush
 
 DESCRIPTION
-  Executes the OMX flush at INPUT PORT.
+Executes the OMX flush at INPUT PORT.
 
 PARAMETERS
-  None.
+None.
 
 RETURN VALUE
-  true/false
+true/false
 ==========================================================================*/
 bool omx_vdec::execute_input_flush()
 {
-  unsigned       i =0;
-  unsigned      p1 = 0; // Parameter - 1
-  unsigned      p2 = 0; // Parameter - 2
-  unsigned      ident = 0;
-  bool bRet = true;
+    unsigned       i =0;
+    unsigned      p1 = 0; // Parameter - 1
+    unsigned      p2 = 0; // Parameter - 2
+    unsigned      ident = 0;
+    bool bRet = true;
 
-  /*Generate EBD for all Buffers in the ETBq*/
-  DEBUG_PRINT_LOW("\n Initiate Input Flush \n");
+    /*Generate EBD for all Buffers in the ETBq*/
+    DEBUG_PRINT_LOW("\n Initiate Input Flush \n");
 
-  pthread_mutex_lock(&m_lock);
-  DEBUG_PRINT_LOW("\n Check if the Queue is empty \n");
-  while (m_etb_q.m_size)
-  {
-    m_etb_q.pop_entry(&p1,&p2,&ident);
+    pthread_mutex_lock(&m_lock);
+    DEBUG_PRINT_LOW("\n Check if the Queue is empty \n");
+    while (m_etb_q.m_size) {
+        m_etb_q.pop_entry(&p1,&p2,&ident);
 
-    if (ident == OMX_COMPONENT_GENERATE_ETB_ARBITRARY)
-    {
-      DEBUG_PRINT_LOW("\n Flush Input Heap Buffer %p",(OMX_BUFFERHEADERTYPE *)p2);
-      m_cb.EmptyBufferDone(&m_cmp ,m_app_data, (OMX_BUFFERHEADERTYPE *)p2);
+        if (ident == OMX_COMPONENT_GENERATE_ETB_ARBITRARY) {
+            DEBUG_PRINT_LOW("\n Flush Input Heap Buffer %p",(OMX_BUFFERHEADERTYPE *)p2);
+            m_cb.EmptyBufferDone(&m_cmp ,m_app_data, (OMX_BUFFERHEADERTYPE *)p2);
+        } else if (ident == OMX_COMPONENT_GENERATE_ETB) {
+            pending_input_buffers++;
+            DEBUG_PRINT_LOW("\n Flush Input OMX_COMPONENT_GENERATE_ETB %p, pending_input_buffers %d",
+                    (OMX_BUFFERHEADERTYPE *)p2, pending_input_buffers);
+            empty_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p2);
+        } else if (ident == OMX_COMPONENT_GENERATE_EBD) {
+            DEBUG_PRINT_LOW("\n Flush Input OMX_COMPONENT_GENERATE_EBD %p",
+                    (OMX_BUFFERHEADERTYPE *)p1);
+            empty_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p1);
+        }
     }
-    else if(ident == OMX_COMPONENT_GENERATE_ETB)
-    {
-      pending_input_buffers++;
-      DEBUG_PRINT_LOW("\n Flush Input OMX_COMPONENT_GENERATE_ETB %p, pending_input_buffers %d",
-        (OMX_BUFFERHEADERTYPE *)p2, pending_input_buffers);
-      empty_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p2);
-    }
-    else if (ident == OMX_COMPONENT_GENERATE_EBD)
-    {
-      DEBUG_PRINT_LOW("\n Flush Input OMX_COMPONENT_GENERATE_EBD %p",
-        (OMX_BUFFERHEADERTYPE *)p1);
-      empty_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p1);
-    }
-  }
-  time_stamp_dts.flush_timestamp();
-  /*Check if Heap Buffers are to be flushed*/
-  if (arbitrary_bytes)
-  {
-    DEBUG_PRINT_LOW("\n Reset all the variables before flusing");
-    h264_scratch.nFilledLen = 0;
-    nal_count = 0;
-    look_ahead_nal = false;
-    frame_count = 0;
-    h264_last_au_ts = LLONG_MAX;
-    h264_last_au_flags = 0;
-    memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
-    m_demux_entries = 0;
-    DEBUG_PRINT_LOW("\n Initialize parser");
-    if (m_frame_parser.mutils)
-    {
-      m_frame_parser.mutils->initialize_frame_checking_environment();
-    }
+    time_stamp_dts.flush_timestamp();
+    /*Check if Heap Buffers are to be flushed*/
+    if (arbitrary_bytes) {
+        DEBUG_PRINT_LOW("\n Reset all the variables before flusing");
+        h264_scratch.nFilledLen = 0;
+        nal_count = 0;
+        look_ahead_nal = false;
+        frame_count = 0;
+        h264_last_au_ts = LLONG_MAX;
+        h264_last_au_flags = 0;
+        memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
+        m_demux_entries = 0;
+        DEBUG_PRINT_LOW("\n Initialize parser");
+        if (m_frame_parser.mutils) {
+            m_frame_parser.mutils->initialize_frame_checking_environment();
+        }
 
-    while (m_input_pending_q.m_size)
-    {
-      m_input_pending_q.pop_entry(&p1,&p2,&ident);
-      m_cb.EmptyBufferDone(&m_cmp ,m_app_data, (OMX_BUFFERHEADERTYPE *)p1);
-    }
+        while (m_input_pending_q.m_size) {
+            m_input_pending_q.pop_entry(&p1,&p2,&ident);
+            m_cb.EmptyBufferDone(&m_cmp ,m_app_data, (OMX_BUFFERHEADERTYPE *)p1);
+        }
 
-    if (psource_frame)
-    {
-      m_cb.EmptyBufferDone(&m_cmp ,m_app_data,psource_frame);
-      psource_frame = NULL;
-    }
+        if (psource_frame) {
+            m_cb.EmptyBufferDone(&m_cmp ,m_app_data,psource_frame);
+            psource_frame = NULL;
+        }
 
-    if (pdest_frame)
-    {
-      pdest_frame->nFilledLen = 0;
-      m_input_free_q.insert_entry((unsigned) pdest_frame, (unsigned int)NULL,
-              (unsigned int)NULL);
-      pdest_frame = NULL;
+        if (pdest_frame) {
+            pdest_frame->nFilledLen = 0;
+            m_input_free_q.insert_entry((unsigned) pdest_frame, (unsigned int)NULL,
+                    (unsigned int)NULL);
+            pdest_frame = NULL;
+        }
+        m_frame_parser.flush();
     }
-    m_frame_parser.flush();
-  }
-  pthread_mutex_unlock(&m_lock);
-  input_flush_progress = false;
-  if (!arbitrary_bytes)
-  {
-    prev_ts = LLONG_MAX;
-    rst_prev_ts = true;
-  }
+    pthread_mutex_unlock(&m_lock);
+    input_flush_progress = false;
+    if (!arbitrary_bytes) {
+        prev_ts = LLONG_MAX;
+        rst_prev_ts = true;
+    }
 #ifdef _ANDROID_
-  if (m_debug_timestamp)
-  {
-    m_timestamp_list.reset_ts_list();
-  }
+    if (m_debug_timestamp) {
+        m_timestamp_list.reset_ts_list();
+    }
 #endif
-  DEBUG_PRINT_HIGH("\n OMX flush i/p Port complete PenBuf(%d)", pending_input_buffers);
-  return bRet;
+    DEBUG_PRINT_HIGH("\n OMX flush i/p Port complete PenBuf(%d)", pending_input_buffers);
+    return bRet;
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::SendCommandEvent
+   FUNCTION
+   omx_vdec::SendCommandEvent
 
-DESCRIPTION
-  Send the event to decoder pipe.  This is needed to generate the callbacks
-  in decoder thread context.
+   DESCRIPTION
+   Send the event to decoder pipe.  This is needed to generate the callbacks
+   in decoder thread context.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 bool omx_vdec::post_event(unsigned int p1,
-                          unsigned int p2,
-                          unsigned int id)
+        unsigned int p2,
+        unsigned int id)
 {
-  bool bRet      =                      false;
+    bool bRet      =                      false;
 
 
-  pthread_mutex_lock(&m_lock);
+    pthread_mutex_lock(&m_lock);
 
-  if (id == m_fill_output_msg ||
-      id == OMX_COMPONENT_GENERATE_FBD)
-  {
-    m_ftb_q.insert_entry(p1,p2,id);
-  }
-  else if (id == OMX_COMPONENT_GENERATE_ETB ||
-           id == OMX_COMPONENT_GENERATE_EBD ||
-           id == OMX_COMPONENT_GENERATE_ETB_ARBITRARY)
-  {
-	  m_etb_q.insert_entry(p1,p2,id);
-  }
-  else
-  {
-    m_cmd_q.insert_entry(p1,p2,id);
-  }
+    if (id == m_fill_output_msg ||
+            id == OMX_COMPONENT_GENERATE_FBD) {
+        m_ftb_q.insert_entry(p1,p2,id);
+    } else if (id == OMX_COMPONENT_GENERATE_ETB ||
+            id == OMX_COMPONENT_GENERATE_EBD ||
+            id == OMX_COMPONENT_GENERATE_ETB_ARBITRARY) {
+        m_etb_q.insert_entry(p1,p2,id);
+    } else {
+        m_cmd_q.insert_entry(p1,p2,id);
+    }
 
-  bRet = true;
-  DEBUG_PRINT_LOW("\n Value of this pointer in post_event %p",this);
-  post_message(this, id);
+    bRet = true;
+    DEBUG_PRINT_LOW("\n Value of this pointer in post_event %p",this);
+    post_message(this, id);
 
-  pthread_mutex_unlock(&m_lock);
+    pthread_mutex_unlock(&m_lock);
 
-  return bRet;
+    return bRet;
 }
 
 OMX_ERRORTYPE omx_vdec::get_supported_profile_level_for_1080p(OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNoMore;
-  if(!profileLevelType)
-    return OMX_ErrorBadParameter;
+    OMX_ERRORTYPE eRet = OMX_ErrorNoMore;
+    if (!profileLevelType)
+        return OMX_ErrorBadParameter;
 
-  if(profileLevelType->nPortIndex == 0) {
-    if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE))
-    {
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileBaseline;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
+    if (profileLevelType->nPortIndex == 0) {
+        if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE)) {
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileBaseline;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
 
-      }
-      else if (profileLevelType->nProfileIndex == 1)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileMain;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
-      }
-      else if(profileLevelType->nProfileIndex == 2)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileHigh;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n",
-            profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
+            } else if (profileLevelType->nProfileIndex == 1) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileMain;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
+            } else if (profileLevelType->nProfileIndex == 2) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileHigh;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
+            } else {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n",
+                        profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.hevc",OMX_MAX_STRINGNAME_SIZE)) {
+            // TODO
+            {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n",
+                        profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        } else if ((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE))) {
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_H263ProfileBaseline;
+                profileLevelType->eLevel   = OMX_VIDEO_H263Level70;
+            } else {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %lu\n", profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE)) {
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileSimple;
+                profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
+            } else if (profileLevelType->nProfileIndex == 1) {
+                profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileAdvancedSimple;
+                profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
+            } else {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %lu\n", profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vp8",OMX_MAX_STRINGNAME_SIZE)) {
+            eRet = OMX_ErrorNoMore;
+        } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE)) {
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_MPEG2ProfileSimple;
+                profileLevelType->eLevel   = OMX_VIDEO_MPEG2LevelHL;
+            } else if (profileLevelType->nProfileIndex == 1) {
+                profileLevelType->eProfile = OMX_VIDEO_MPEG2ProfileMain;
+                profileLevelType->eLevel   = OMX_VIDEO_MPEG2LevelHL;
+            } else {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %lu\n", profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        }
+    } else {
+        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported should be queries on Input port only %lu\n", profileLevelType->nPortIndex);
+        eRet = OMX_ErrorBadPortIndex;
     }
-    else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.hevc",OMX_MAX_STRINGNAME_SIZE))
-    {
-      // TODO
-      {
-        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n",
-            profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
-    }
-    else if((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE)))
-    {
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_H263ProfileBaseline;
-        profileLevelType->eLevel   = OMX_VIDEO_H263Level70;
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %lu\n", profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
-    }
-    else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE))
-    {
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileSimple;
-        profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
-      }
-      else if(profileLevelType->nProfileIndex == 1)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileAdvancedSimple;
-        profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %lu\n", profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
-    }
-    else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vp8",OMX_MAX_STRINGNAME_SIZE))
-    {
-        eRet = OMX_ErrorNoMore;
-    }
-    else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE))
-    {
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_MPEG2ProfileSimple;
-        profileLevelType->eLevel   = OMX_VIDEO_MPEG2LevelHL;
-      }
-      else if(profileLevelType->nProfileIndex == 1)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_MPEG2ProfileMain;
-        profileLevelType->eLevel   = OMX_VIDEO_MPEG2LevelHL;
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %lu\n", profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
-    }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported should be queries on Input port only %lu\n", profileLevelType->nPortIndex);
-    eRet = OMX_ErrorBadPortIndex;
-  }
-  return eRet;
+    return eRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::GetParameter
+   FUNCTION
+   omx_vdec::GetParameter
 
-DESCRIPTION
-  OMX Get Parameter method implementation
+   DESCRIPTION
+   OMX Get Parameter method implementation
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  Error None if successful.
+   RETURN VALUE
+   Error None if successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::get_parameter(OMX_IN OMX_HANDLETYPE     hComp,
-                                           OMX_IN OMX_INDEXTYPE paramIndex,
-                                           OMX_INOUT OMX_PTR     paramData)
+        OMX_IN OMX_INDEXTYPE paramIndex,
+        OMX_INOUT OMX_PTR     paramData)
 {
     OMX_ERRORTYPE eRet = OMX_ErrorNone;
 
     DEBUG_PRINT_LOW("get_parameter: \n");
-    if(m_state == OMX_StateInvalid)
-    {
+    if (m_state == OMX_StateInvalid) {
         DEBUG_PRINT_ERROR("Get Param in Invalid State\n");
         return OMX_ErrorInvalidState;
     }
-    if(paramData == NULL)
-    {
+    if (paramData == NULL) {
         DEBUG_PRINT_LOW("Get Param in Invalid paramData \n");
         return OMX_ErrorBadParameter;
     }
-  switch((unsigned long)paramIndex)
-  {
-    case OMX_IndexParamPortDefinition:
-    {
-      OMX_PARAM_PORTDEFINITIONTYPE *portDefn =
-                            (OMX_PARAM_PORTDEFINITIONTYPE *) paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamPortDefinition\n");
-      eRet = update_portdef(portDefn);
-      if (eRet == OMX_ErrorNone)
-          m_port_def = *portDefn;
-      break;
-    }
-    case OMX_IndexParamVideoInit:
-    {
-      OMX_PORT_PARAM_TYPE *portParamType =
-                              (OMX_PORT_PARAM_TYPE *) paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoInit\n");
-
-      portParamType->nVersion.nVersion = OMX_SPEC_VERSION;
-      portParamType->nSize = sizeof(portParamType);
-      portParamType->nPorts           = 2;
-      portParamType->nStartPortNumber = 0;
-      break;
-    }
-    case OMX_IndexParamVideoPortFormat:
-    {
-      OMX_VIDEO_PARAM_PORTFORMATTYPE *portFmt =
-                     (OMX_VIDEO_PARAM_PORTFORMATTYPE *)paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoPortFormat\n");
-
-      portFmt->nVersion.nVersion = OMX_SPEC_VERSION;
-      portFmt->nSize             = sizeof(portFmt);
-
-      if (0 == portFmt->nPortIndex)
-      {
-        if (0 == portFmt->nIndex)
-        {
-              portFmt->eColorFormat =  OMX_COLOR_FormatUnused;
-              portFmt->eCompressionFormat = eCompressionFormat;
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoPortFormat:"\
-              " NoMore compression formats\n");
-          eRet =  OMX_ErrorNoMore;
-        }
-      }
-      else if (1 == portFmt->nPortIndex)
-      {
-        portFmt->eCompressionFormat =  OMX_VIDEO_CodingUnused;
-
-        if(0 == portFmt->nIndex)
-            portFmt->eColorFormat = (OMX_COLOR_FORMATTYPE)
-                QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m;
-        else if (1 == portFmt->nIndex)
-          portFmt->eColorFormat = OMX_COLOR_FormatYUV420Planar;
-        else
-        {
-           DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoPortFormat:"\
-                  " NoMore Color formats\n");
-           eRet =  OMX_ErrorNoMore;
-        }
-	DEBUG_PRINT_LOW("returning %d\n", portFmt->eColorFormat);
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("get_parameter: Bad port index %d\n",
-                          (int)portFmt->nPortIndex);
-        eRet = OMX_ErrorBadPortIndex;
-      }
-      break;
-    }
-    /*Component should support this port definition*/
-    case OMX_IndexParamAudioInit:
-    {
-        OMX_PORT_PARAM_TYPE *audioPortParamType =
-                                              (OMX_PORT_PARAM_TYPE *) paramData;
-        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamAudioInit\n");
-        audioPortParamType->nVersion.nVersion = OMX_SPEC_VERSION;
-        audioPortParamType->nSize = sizeof(audioPortParamType);
-        audioPortParamType->nPorts           = 0;
-        audioPortParamType->nStartPortNumber = 0;
-        break;
-    }
-    /*Component should support this port definition*/
-    case OMX_IndexParamImageInit:
-    {
-        OMX_PORT_PARAM_TYPE *imagePortParamType =
-                                              (OMX_PORT_PARAM_TYPE *) paramData;
-        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamImageInit\n");
-        imagePortParamType->nVersion.nVersion = OMX_SPEC_VERSION;
-        imagePortParamType->nSize = sizeof(imagePortParamType);
-        imagePortParamType->nPorts           = 0;
-        imagePortParamType->nStartPortNumber = 0;
-        break;
-
-    }
-    /*Component should support this port definition*/
-    case OMX_IndexParamOtherInit:
-    {
-        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamOtherInit %08x\n",
-                          paramIndex);
-        eRet =OMX_ErrorUnsupportedIndex;
-        break;
-    }
-    case OMX_IndexParamStandardComponentRole:
-    {
-        OMX_PARAM_COMPONENTROLETYPE *comp_role;
-        comp_role = (OMX_PARAM_COMPONENTROLETYPE *) paramData;
-        comp_role->nVersion.nVersion = OMX_SPEC_VERSION;
-        comp_role->nSize = sizeof(*comp_role);
-
-        DEBUG_PRINT_LOW("Getparameter: OMX_IndexParamStandardComponentRole %d\n",
-                    paramIndex);
-        strlcpy((char*)comp_role->cRole,(const char*)m_cRole,
-                    OMX_MAX_STRINGNAME_SIZE);
-        break;
-    }
-    /* Added for parameter test */
-    case OMX_IndexParamPriorityMgmt:
-        {
-
-            OMX_PRIORITYMGMTTYPE *priorityMgmType =
-                                             (OMX_PRIORITYMGMTTYPE *) paramData;
-            DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamPriorityMgmt\n");
-            priorityMgmType->nVersion.nVersion = OMX_SPEC_VERSION;
-            priorityMgmType->nSize = sizeof(priorityMgmType);
-
-            break;
-        }
-    /* Added for parameter test */
-    case OMX_IndexParamCompBufferSupplier:
-        {
-            OMX_PARAM_BUFFERSUPPLIERTYPE *bufferSupplierType =
-                                     (OMX_PARAM_BUFFERSUPPLIERTYPE*) paramData;
-            DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamCompBufferSupplier\n");
-
-            bufferSupplierType->nSize = sizeof(bufferSupplierType);
-            bufferSupplierType->nVersion.nVersion = OMX_SPEC_VERSION;
-            if(0 == bufferSupplierType->nPortIndex)
-                bufferSupplierType->nPortIndex = OMX_BufferSupplyUnspecified;
-            else if (1 == bufferSupplierType->nPortIndex)
-                bufferSupplierType->nPortIndex = OMX_BufferSupplyUnspecified;
-            else
-                eRet = OMX_ErrorBadPortIndex;
-
-
-            break;
-        }
-    case OMX_IndexParamVideoAvc:
-        {
-            DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoAvc %08x\n",
-                        paramIndex);
-            break;
-        }
-    case OMX_IndexParamVideoH263:
-        {
-            DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoH263 %08x\n",
-                        paramIndex);
-            break;
-        }
-    case OMX_IndexParamVideoMpeg4:
-        {
-            DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoMpeg4 %08x\n",
-                        paramIndex);
-            break;
-        }
-    case OMX_IndexParamVideoMpeg2:
-        {
-          DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoMpeg2 %08x\n",
-              paramIndex);
-          break;
-        }
-    case OMX_IndexParamVideoProfileLevelQuerySupported:
-        {
-          DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported %08x\n", paramIndex);
-          OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType =
-            (OMX_VIDEO_PARAM_PROFILELEVELTYPE *)paramData;
-    eRet = get_supported_profile_level_for_1080p(profileLevelType);
-          break;
-        }
-#if defined (_ANDROID_HONEYCOMB_) || defined (_ANDROID_ICS_)
-    case OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage:
-        {
-            DEBUG_PRINT_HIGH("get_parameter: OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage\n");
-            GetAndroidNativeBufferUsageParams* nativeBuffersUsage = (GetAndroidNativeBufferUsageParams *) paramData;
-            if(nativeBuffersUsage->nPortIndex == OMX_CORE_OUTPUT_PORT_INDEX) {
-
-                if(secure_mode) {
-                        nativeBuffersUsage->nUsage = (GRALLOC_USAGE_PRIVATE_MM_HEAP | GRALLOC_USAGE_PROTECTED |
-                                                      GRALLOC_USAGE_PRIVATE_UNCACHED);
-                } else {
-#ifdef _HEVC_USE_ADSP_HEAP_
-                    nativeBuffersUsage->nUsage = (GRALLOC_USAGE_PRIVATE_ADSP_HEAP | GRALLOC_USAGE_PRIVATE_UNCACHED);
-#else
-                    nativeBuffersUsage->nUsage = (GRALLOC_USAGE_PRIVATE_IOMMU_HEAP | GRALLOC_USAGE_PRIVATE_UNCACHED);
-#endif
-                    DEBUG_PRINT_HIGH("nativeBuffersUsage->nUsage %x\n", (unsigned int)nativeBuffersUsage->nUsage);
-                }
-            } else {
-                DEBUG_PRINT_HIGH("get_parameter: OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage failed!\n");
-                eRet = OMX_ErrorBadParameter;
+    switch ((unsigned long)paramIndex) {
+        case OMX_IndexParamPortDefinition:
+            {
+                OMX_PARAM_PORTDEFINITIONTYPE *portDefn =
+                    (OMX_PARAM_PORTDEFINITIONTYPE *) paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamPortDefinition\n");
+                eRet = update_portdef(portDefn);
+                if (eRet == OMX_ErrorNone)
+                    m_port_def = *portDefn;
+                break;
             }
-        }
-        break;
+        case OMX_IndexParamVideoInit:
+            {
+                OMX_PORT_PARAM_TYPE *portParamType =
+                    (OMX_PORT_PARAM_TYPE *) paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoInit\n");
+
+                portParamType->nVersion.nVersion = OMX_SPEC_VERSION;
+                portParamType->nSize = sizeof(portParamType);
+                portParamType->nPorts           = 2;
+                portParamType->nStartPortNumber = 0;
+                break;
+            }
+        case OMX_IndexParamVideoPortFormat:
+            {
+                OMX_VIDEO_PARAM_PORTFORMATTYPE *portFmt =
+                    (OMX_VIDEO_PARAM_PORTFORMATTYPE *)paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoPortFormat\n");
+
+                portFmt->nVersion.nVersion = OMX_SPEC_VERSION;
+                portFmt->nSize             = sizeof(portFmt);
+
+                if (0 == portFmt->nPortIndex) {
+                    if (0 == portFmt->nIndex) {
+                        portFmt->eColorFormat =  OMX_COLOR_FormatUnused;
+                        portFmt->eCompressionFormat = eCompressionFormat;
+                    } else {
+                        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoPortFormat:"\
+                                " NoMore compression formats\n");
+                        eRet =  OMX_ErrorNoMore;
+                    }
+                } else if (1 == portFmt->nPortIndex) {
+                    portFmt->eCompressionFormat =  OMX_VIDEO_CodingUnused;
+
+                    if (0 == portFmt->nIndex)
+                        portFmt->eColorFormat = (OMX_COLOR_FORMATTYPE)
+                            QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m;
+                    else if (1 == portFmt->nIndex)
+                        portFmt->eColorFormat = OMX_COLOR_FormatYUV420Planar;
+                    else {
+                        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoPortFormat:"\
+                                " NoMore Color formats\n");
+                        eRet =  OMX_ErrorNoMore;
+                    }
+                    DEBUG_PRINT_LOW("returning %d\n", portFmt->eColorFormat);
+                } else {
+                    DEBUG_PRINT_ERROR("get_parameter: Bad port index %d\n",
+                            (int)portFmt->nPortIndex);
+                    eRet = OMX_ErrorBadPortIndex;
+                }
+                break;
+            }
+            /*Component should support this port definition*/
+        case OMX_IndexParamAudioInit:
+            {
+                OMX_PORT_PARAM_TYPE *audioPortParamType =
+                    (OMX_PORT_PARAM_TYPE *) paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamAudioInit\n");
+                audioPortParamType->nVersion.nVersion = OMX_SPEC_VERSION;
+                audioPortParamType->nSize = sizeof(audioPortParamType);
+                audioPortParamType->nPorts           = 0;
+                audioPortParamType->nStartPortNumber = 0;
+                break;
+            }
+            /*Component should support this port definition*/
+        case OMX_IndexParamImageInit:
+            {
+                OMX_PORT_PARAM_TYPE *imagePortParamType =
+                    (OMX_PORT_PARAM_TYPE *) paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamImageInit\n");
+                imagePortParamType->nVersion.nVersion = OMX_SPEC_VERSION;
+                imagePortParamType->nSize = sizeof(imagePortParamType);
+                imagePortParamType->nPorts           = 0;
+                imagePortParamType->nStartPortNumber = 0;
+                break;
+
+            }
+            /*Component should support this port definition*/
+        case OMX_IndexParamOtherInit:
+            {
+                DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamOtherInit %08x\n",
+                        paramIndex);
+                eRet =OMX_ErrorUnsupportedIndex;
+                break;
+            }
+        case OMX_IndexParamStandardComponentRole:
+            {
+                OMX_PARAM_COMPONENTROLETYPE *comp_role;
+                comp_role = (OMX_PARAM_COMPONENTROLETYPE *) paramData;
+                comp_role->nVersion.nVersion = OMX_SPEC_VERSION;
+                comp_role->nSize = sizeof(*comp_role);
+
+                DEBUG_PRINT_LOW("Getparameter: OMX_IndexParamStandardComponentRole %d\n",
+                        paramIndex);
+                strlcpy((char*)comp_role->cRole,(const char*)m_cRole,
+                        OMX_MAX_STRINGNAME_SIZE);
+                break;
+            }
+            /* Added for parameter test */
+        case OMX_IndexParamPriorityMgmt:
+            {
+
+                OMX_PRIORITYMGMTTYPE *priorityMgmType =
+                    (OMX_PRIORITYMGMTTYPE *) paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamPriorityMgmt\n");
+                priorityMgmType->nVersion.nVersion = OMX_SPEC_VERSION;
+                priorityMgmType->nSize = sizeof(priorityMgmType);
+
+                break;
+            }
+            /* Added for parameter test */
+        case OMX_IndexParamCompBufferSupplier:
+            {
+                OMX_PARAM_BUFFERSUPPLIERTYPE *bufferSupplierType =
+                    (OMX_PARAM_BUFFERSUPPLIERTYPE*) paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamCompBufferSupplier\n");
+
+                bufferSupplierType->nSize = sizeof(bufferSupplierType);
+                bufferSupplierType->nVersion.nVersion = OMX_SPEC_VERSION;
+                if (0 == bufferSupplierType->nPortIndex)
+                    bufferSupplierType->nPortIndex = OMX_BufferSupplyUnspecified;
+                else if (1 == bufferSupplierType->nPortIndex)
+                    bufferSupplierType->nPortIndex = OMX_BufferSupplyUnspecified;
+                else
+                    eRet = OMX_ErrorBadPortIndex;
+
+
+                break;
+            }
+        case OMX_IndexParamVideoAvc:
+            {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoAvc %08x\n",
+                        paramIndex);
+                break;
+            }
+        case OMX_IndexParamVideoH263:
+            {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoH263 %08x\n",
+                        paramIndex);
+                break;
+            }
+        case OMX_IndexParamVideoMpeg4:
+            {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoMpeg4 %08x\n",
+                        paramIndex);
+                break;
+            }
+        case OMX_IndexParamVideoMpeg2:
+            {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoMpeg2 %08x\n",
+                        paramIndex);
+                break;
+            }
+        case OMX_IndexParamVideoProfileLevelQuerySupported:
+            {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported %08x\n", paramIndex);
+                OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType =
+                    (OMX_VIDEO_PARAM_PROFILELEVELTYPE *)paramData;
+                eRet = get_supported_profile_level_for_1080p(profileLevelType);
+                break;
+            }
+#if defined (_ANDROID_HONEYCOMB_) || defined (_ANDROID_ICS_)
+        case OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage:
+            {
+                DEBUG_PRINT_HIGH("get_parameter: OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage\n");
+                GetAndroidNativeBufferUsageParams* nativeBuffersUsage = (GetAndroidNativeBufferUsageParams *) paramData;
+                if (nativeBuffersUsage->nPortIndex == OMX_CORE_OUTPUT_PORT_INDEX) {
+
+                    if (secure_mode) {
+                        nativeBuffersUsage->nUsage = (GRALLOC_USAGE_PRIVATE_MM_HEAP | GRALLOC_USAGE_PROTECTED |
+                                GRALLOC_USAGE_PRIVATE_UNCACHED);
+                    } else {
+#ifdef _HEVC_USE_ADSP_HEAP_
+                        nativeBuffersUsage->nUsage = (GRALLOC_USAGE_PRIVATE_ADSP_HEAP | GRALLOC_USAGE_PRIVATE_UNCACHED);
+#else
+                        nativeBuffersUsage->nUsage = (GRALLOC_USAGE_PRIVATE_IOMMU_HEAP | GRALLOC_USAGE_PRIVATE_UNCACHED);
+#endif
+                        DEBUG_PRINT_HIGH("nativeBuffersUsage->nUsage %x\n", (unsigned int)nativeBuffersUsage->nUsage);
+                    }
+                } else {
+                    DEBUG_PRINT_HIGH("get_parameter: OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage failed!\n");
+                    eRet = OMX_ErrorBadParameter;
+                }
+            }
+            break;
 #endif
 
-    default:
-    {
-      DEBUG_PRINT_ERROR("get_parameter: unknown param %08x\n", paramIndex);
-      eRet =OMX_ErrorUnsupportedIndex;
+        default:
+            {
+                DEBUG_PRINT_ERROR("get_parameter: unknown param %08x\n", paramIndex);
+                eRet =OMX_ErrorUnsupportedIndex;
+            }
+
     }
 
-  }
+    DEBUG_PRINT_LOW("\n get_parameter returning WxH(%d x %d) SxSH(%d x %d)\n",
+            drv_ctx.video_resolution.frame_width,
+            drv_ctx.video_resolution.frame_height,
+            drv_ctx.video_resolution.stride,
+            drv_ctx.video_resolution.scan_lines);
 
-  DEBUG_PRINT_LOW("\n get_parameter returning WxH(%d x %d) SxSH(%d x %d)\n",
-      drv_ctx.video_resolution.frame_width,
-      drv_ctx.video_resolution.frame_height,
-      drv_ctx.video_resolution.stride,
-      drv_ctx.video_resolution.scan_lines);
-
-  return eRet;
+    return eRet;
 }
 
 #if defined (_ANDROID_HONEYCOMB_) || defined (_ANDROID_ICS_)
@@ -2993,22 +2662,22 @@
     OMX_ERRORTYPE eRet = OMX_ErrorNone;
     UseAndroidNativeBufferParams *params = (UseAndroidNativeBufferParams *)data;
 
-    if((params == NULL) ||
-      (params->nativeBuffer == NULL) ||
-      (params->nativeBuffer->handle == NULL) ||
-      !m_enable_android_native_buffers)
+    if ((params == NULL) ||
+            (params->nativeBuffer == NULL) ||
+            (params->nativeBuffer->handle == NULL) ||
+            !m_enable_android_native_buffers)
         return OMX_ErrorBadParameter;
     m_use_android_native_buffers = OMX_TRUE;
     sp<android_native_buffer_t> nBuf = params->nativeBuffer;
     private_handle_t *handle = (private_handle_t *)nBuf->handle;
-    if(OMX_CORE_OUTPUT_PORT_INDEX == params->nPortIndex) {  //android native buffers can be used only on Output port
+    if (OMX_CORE_OUTPUT_PORT_INDEX == params->nPortIndex) { //android native buffers can be used only on Output port
         OMX_U8 *buffer = NULL;
-        if(!secure_mode) {
-                buffer = (OMX_U8*)mmap(0, handle->size,
+        if (!secure_mode) {
+            buffer = (OMX_U8*)mmap(0, handle->size,
                     PROT_READ|PROT_WRITE, MAP_SHARED, handle->fd, 0);
-                if(buffer == MAP_FAILED) {
-                    DEBUG_PRINT_ERROR("Failed to mmap pmem with fd = %d, size = %d", handle->fd, handle->size);
-                    return OMX_ErrorInsufficientResources;
+            if (buffer == MAP_FAILED) {
+                DEBUG_PRINT_ERROR("Failed to mmap pmem with fd = %d, size = %d", handle->fd, handle->size);
+                return OMX_ErrorInsufficientResources;
             }
         }
         eRet = use_buffer(hComp,params->bufferHeader,params->nPortIndex,data,handle->size,buffer);
@@ -3019,962 +2688,825 @@
 }
 #endif
 /* ======================================================================
-FUNCTION
-  omx_vdec::Setparameter
+   FUNCTION
+   omx_vdec::Setparameter
 
-DESCRIPTION
-  OMX Set Parameter method implementation.
+   DESCRIPTION
+   OMX Set Parameter method implementation.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if successful.
+   RETURN VALUE
+   OMX Error None if successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::set_parameter(OMX_IN OMX_HANDLETYPE     hComp,
-                                           OMX_IN OMX_INDEXTYPE paramIndex,
-                                           OMX_IN OMX_PTR        paramData)
+        OMX_IN OMX_INDEXTYPE paramIndex,
+        OMX_IN OMX_PTR        paramData)
 {
     OMX_ERRORTYPE eRet = OMX_ErrorNone;
     int ret=0;
     struct v4l2_format fmt;
-    if(m_state == OMX_StateInvalid)
-    {
+    if (m_state == OMX_StateInvalid) {
         DEBUG_PRINT_ERROR("Set Param in Invalid State\n");
         return OMX_ErrorInvalidState;
     }
-    if(paramData == NULL)
-    {
-         DEBUG_PRINT_ERROR("Get Param in Invalid paramData \n");
-         return OMX_ErrorBadParameter;
+    if (paramData == NULL) {
+        DEBUG_PRINT_ERROR("Get Param in Invalid paramData \n");
+        return OMX_ErrorBadParameter;
     }
-    if((m_state != OMX_StateLoaded) &&
-          BITMASK_ABSENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING) &&
-          (m_out_bEnabled == OMX_TRUE) &&
-          BITMASK_ABSENT(&m_flags, OMX_COMPONENT_INPUT_ENABLE_PENDING) &&
-          (m_inp_bEnabled == OMX_TRUE)) {
+    if ((m_state != OMX_StateLoaded) &&
+            BITMASK_ABSENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING) &&
+            (m_out_bEnabled == OMX_TRUE) &&
+            BITMASK_ABSENT(&m_flags, OMX_COMPONENT_INPUT_ENABLE_PENDING) &&
+            (m_inp_bEnabled == OMX_TRUE)) {
         DEBUG_PRINT_ERROR("Set Param in Invalid State \n");
         return OMX_ErrorIncorrectStateOperation;
     }
-  switch((unsigned long)paramIndex)
-  {
-    case OMX_IndexParamPortDefinition:
-    {
-      OMX_PARAM_PORTDEFINITIONTYPE *portDefn;
-      portDefn = (OMX_PARAM_PORTDEFINITIONTYPE *) paramData;
-      //TODO: Check if any allocate buffer/use buffer/useNativeBuffer has
-      //been called.
-      DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPortDefinition H= %d, W = %d\n",
-             (int)portDefn->format.video.nFrameHeight,
-             (int)portDefn->format.video.nFrameWidth);
-      if(OMX_DirOutput == portDefn->eDir)
-      {
-          DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPortDefinition OP port\n");
-          m_display_id = portDefn->format.video.pNativeWindow;
-          unsigned int buffer_size;
-          if (!client_buffers.get_buffer_req(buffer_size)) {
-              DEBUG_PRINT_ERROR("\n Error in getting buffer requirements");
-              eRet = OMX_ErrorBadParameter;
-          } else {
-              if ( portDefn->nBufferCountActual >= drv_ctx.op_buf.mincount &&
-                      portDefn->nBufferSize >=  drv_ctx.op_buf.buffer_size )
-              {
-                  drv_ctx.op_buf.actualcount = portDefn->nBufferCountActual;
-                  drv_ctx.op_buf.buffer_size = portDefn->nBufferSize;
-                  eRet = set_buffer_req(&drv_ctx.op_buf);
-                  if (eRet == OMX_ErrorNone)
-                      m_port_def = *portDefn;
-              }
-              else
-              {
-                  DEBUG_PRINT_ERROR("ERROR: OP Requirements(#%d: %u) Requested(#%lu: %lu)\n",
-                          drv_ctx.op_buf.mincount, drv_ctx.op_buf.buffer_size,
-                          portDefn->nBufferCountActual, portDefn->nBufferSize);
-                  eRet = OMX_ErrorBadParameter;
-              }
-          }
-      }
-      else if(OMX_DirInput == portDefn->eDir)
-      {
-        if((portDefn->format.video.xFramerate >> 16) > 0 &&
-           (portDefn->format.video.xFramerate >> 16) <= MAX_SUPPORTED_FPS)
-        {
-            // Frame rate only should be set if this is a "known value" or to
-            // activate ts prediction logic (arbitrary mode only) sending input
-            // timestamps with max value (LLONG_MAX).
-            DEBUG_PRINT_HIGH("set_parameter: frame rate set by omx client : %lu",
-                             portDefn->format.video.xFramerate >> 16);
-            Q16ToFraction(portDefn->format.video.xFramerate, drv_ctx.frame_rate.fps_numerator,
-                          drv_ctx.frame_rate.fps_denominator);
-            if(!drv_ctx.frame_rate.fps_numerator)
+    switch ((unsigned long)paramIndex) {
+        case OMX_IndexParamPortDefinition:
             {
-              DEBUG_PRINT_ERROR("Numerator is zero setting to 30");
-              drv_ctx.frame_rate.fps_numerator = 30;
+                OMX_PARAM_PORTDEFINITIONTYPE *portDefn;
+                portDefn = (OMX_PARAM_PORTDEFINITIONTYPE *) paramData;
+                //TODO: Check if any allocate buffer/use buffer/useNativeBuffer has
+                //been called.
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPortDefinition H= %d, W = %d\n",
+                        (int)portDefn->format.video.nFrameHeight,
+                        (int)portDefn->format.video.nFrameWidth);
+                if (OMX_DirOutput == portDefn->eDir) {
+                    DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPortDefinition OP port\n");
+                    m_display_id = portDefn->format.video.pNativeWindow;
+                    unsigned int buffer_size;
+                    if (!client_buffers.get_buffer_req(buffer_size)) {
+                        DEBUG_PRINT_ERROR("\n Error in getting buffer requirements");
+                        eRet = OMX_ErrorBadParameter;
+                    } else {
+                        if ( portDefn->nBufferCountActual >= drv_ctx.op_buf.mincount &&
+                                portDefn->nBufferSize >=  drv_ctx.op_buf.buffer_size ) {
+                            drv_ctx.op_buf.actualcount = portDefn->nBufferCountActual;
+                            drv_ctx.op_buf.buffer_size = portDefn->nBufferSize;
+                            eRet = set_buffer_req(&drv_ctx.op_buf);
+                            if (eRet == OMX_ErrorNone)
+                                m_port_def = *portDefn;
+                        } else {
+                            DEBUG_PRINT_ERROR("ERROR: OP Requirements(#%d: %u) Requested(#%lu: %lu)\n",
+                                    drv_ctx.op_buf.mincount, drv_ctx.op_buf.buffer_size,
+                                    portDefn->nBufferCountActual, portDefn->nBufferSize);
+                            eRet = OMX_ErrorBadParameter;
+                        }
+                    }
+                } else if (OMX_DirInput == portDefn->eDir) {
+                    if ((portDefn->format.video.xFramerate >> 16) > 0 &&
+                            (portDefn->format.video.xFramerate >> 16) <= MAX_SUPPORTED_FPS) {
+                        // Frame rate only should be set if this is a "known value" or to
+                        // activate ts prediction logic (arbitrary mode only) sending input
+                        // timestamps with max value (LLONG_MAX).
+                        DEBUG_PRINT_HIGH("set_parameter: frame rate set by omx client : %lu",
+                                portDefn->format.video.xFramerate >> 16);
+                        Q16ToFraction(portDefn->format.video.xFramerate, drv_ctx.frame_rate.fps_numerator,
+                                drv_ctx.frame_rate.fps_denominator);
+                        if (!drv_ctx.frame_rate.fps_numerator) {
+                            DEBUG_PRINT_ERROR("Numerator is zero setting to 30");
+                            drv_ctx.frame_rate.fps_numerator = 30;
+                        }
+                        if (drv_ctx.frame_rate.fps_denominator)
+                            drv_ctx.frame_rate.fps_numerator = (int)
+                                drv_ctx.frame_rate.fps_numerator / drv_ctx.frame_rate.fps_denominator;
+                        drv_ctx.frame_rate.fps_denominator = 1;
+                        frm_int = drv_ctx.frame_rate.fps_denominator * 1e6 /
+                            drv_ctx.frame_rate.fps_numerator;
+                        DEBUG_PRINT_LOW("set_parameter: frm_int(%u) fps(%.2f)",
+                                frm_int, drv_ctx.frame_rate.fps_numerator /
+                                (float)drv_ctx.frame_rate.fps_denominator);
+                    }
+                    DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPortDefinition IP port\n");
+                    if (drv_ctx.video_resolution.frame_height !=
+                            portDefn->format.video.nFrameHeight ||
+                            drv_ctx.video_resolution.frame_width  !=
+                            portDefn->format.video.nFrameWidth) {
+                        DEBUG_PRINT_LOW("\n SetParam IP: WxH(%d x %d)\n",
+                                portDefn->format.video.nFrameWidth,
+                                portDefn->format.video.nFrameHeight);
+                        if (portDefn->format.video.nFrameHeight != 0x0 &&
+                                portDefn->format.video.nFrameWidth != 0x0) {
+                            update_resolution(portDefn->format.video.nFrameWidth,
+                                    portDefn->format.video.nFrameHeight);
+                            fmt.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+                            fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
+                            fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
+                            fmt.fmt.pix_mp.pixelformat = output_capability;
+                            DEBUG_PRINT_LOW("\n fmt.fmt.pix_mp.height = %d , fmt.fmt.pix_mp.width = %d \n",fmt.fmt.pix_mp.height,fmt.fmt.pix_mp.width);
+                            ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_FMT, &fmt);
+                            if (ret) {
+                                DEBUG_PRINT_ERROR("\n Set Resolution failed");
+                                eRet = OMX_ErrorUnsupportedSetting;
+                            } else
+                                eRet = get_buffer_req(&drv_ctx.op_buf);
+                        }
+                    } else if (portDefn->nBufferCountActual >= drv_ctx.ip_buf.mincount
+                            || 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 + buffer_prop->alignment - 1) &
+                            (~(buffer_prop->alignment - 1));
+                        eRet = set_buffer_req(buffer_prop);
+                    } else {
+                        DEBUG_PRINT_ERROR("ERROR: IP Requirements(#%d: %u) Requested(#%lu: %lu)\n",
+                                drv_ctx.ip_buf.mincount, drv_ctx.ip_buf.buffer_size,
+                                portDefn->nBufferCountActual, portDefn->nBufferSize);
+                        eRet = OMX_ErrorBadParameter;
+                    }
+                } else if (portDefn->eDir ==  OMX_DirMax) {
+                    DEBUG_PRINT_ERROR(" Set_parameter: Bad Port idx %d",
+                            (int)portDefn->nPortIndex);
+                    eRet = OMX_ErrorBadPortIndex;
+                }
             }
-            if(drv_ctx.frame_rate.fps_denominator)
-              drv_ctx.frame_rate.fps_numerator = (int)
-                  drv_ctx.frame_rate.fps_numerator / drv_ctx.frame_rate.fps_denominator;
-              drv_ctx.frame_rate.fps_denominator = 1;
-            frm_int = drv_ctx.frame_rate.fps_denominator * 1e6 /
-                      drv_ctx.frame_rate.fps_numerator;
-            DEBUG_PRINT_LOW("set_parameter: frm_int(%u) fps(%.2f)",
-                             frm_int, drv_ctx.frame_rate.fps_numerator /
-                             (float)drv_ctx.frame_rate.fps_denominator);
-        }
-         DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPortDefinition IP port\n");
-         if(drv_ctx.video_resolution.frame_height !=
-               portDefn->format.video.nFrameHeight ||
-             drv_ctx.video_resolution.frame_width  !=
-               portDefn->format.video.nFrameWidth)
-         {
-             DEBUG_PRINT_LOW("\n SetParam IP: WxH(%d x %d)\n",
-                           portDefn->format.video.nFrameWidth,
-                           portDefn->format.video.nFrameHeight);
-             if (portDefn->format.video.nFrameHeight != 0x0 &&
-                 portDefn->format.video.nFrameWidth != 0x0)
-             {
-                 update_resolution(portDefn->format.video.nFrameWidth,
-                    portDefn->format.video.nFrameHeight);
-			fmt.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-			fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
-			fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
-			fmt.fmt.pix_mp.pixelformat = output_capability;
-			DEBUG_PRINT_LOW("\n fmt.fmt.pix_mp.height = %d , fmt.fmt.pix_mp.width = %d \n",fmt.fmt.pix_mp.height,fmt.fmt.pix_mp.width);
-			ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_FMT, &fmt);
-               if (ret)
-               {
-                   DEBUG_PRINT_ERROR("\n Set Resolution failed");
-                   eRet = OMX_ErrorUnsupportedSetting;
-               }
-               else
-                   eRet = get_buffer_req(&drv_ctx.op_buf);
-             }
-         }
-         else if (portDefn->nBufferCountActual >= drv_ctx.ip_buf.mincount
-                  || 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 + buffer_prop->alignment - 1) &
-                      (~(buffer_prop->alignment - 1));
-             eRet = set_buffer_req(buffer_prop);
-         }
-         else
-         {
-             DEBUG_PRINT_ERROR("ERROR: IP Requirements(#%d: %u) Requested(#%lu: %lu)\n",
-               drv_ctx.ip_buf.mincount, drv_ctx.ip_buf.buffer_size,
-               portDefn->nBufferCountActual, portDefn->nBufferSize);
-             eRet = OMX_ErrorBadParameter;
-         }
-      }
-      else if (portDefn->eDir ==  OMX_DirMax)
-      {
-          DEBUG_PRINT_ERROR(" Set_parameter: Bad Port idx %d",
-                      (int)portDefn->nPortIndex);
-          eRet = OMX_ErrorBadPortIndex;
-      }
-    }
-    break;
-    case OMX_IndexParamVideoPortFormat:
-    {
-      OMX_VIDEO_PARAM_PORTFORMATTYPE *portFmt =
-                     (OMX_VIDEO_PARAM_PORTFORMATTYPE *)paramData;
-      int ret=0;
-      struct v4l2_format fmt;
-      DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoPortFormat %d\n",
-              portFmt->eColorFormat);
-
-      if(1 == portFmt->nPortIndex)
-      {
-          fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-          fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
-          fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
-          fmt.fmt.pix_mp.pixelformat = capture_capability;
-          enum vdec_output_fromat op_format;
-          if((portFmt->eColorFormat == (OMX_COLOR_FORMATTYPE)
-                      QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m) ||
-              (portFmt->eColorFormat == OMX_COLOR_FormatYUV420Planar))
-              op_format = (enum vdec_output_fromat)VDEC_YUV_FORMAT_NV12;
-          else if(portFmt->eColorFormat ==
-                  (OMX_COLOR_FORMATTYPE)
-                  QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka)
-              op_format = VDEC_YUV_FORMAT_TILE_4x2;
-          else
-              eRet = OMX_ErrorBadParameter;
-
-          if(eRet == OMX_ErrorNone)
-          {
-              drv_ctx.output_format = op_format;
-              ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_FMT, &fmt);
-              if(ret)
-              {
-                  DEBUG_PRINT_ERROR("\n Set output format failed");
-                  eRet = OMX_ErrorUnsupportedSetting;
-                  /*TODO: How to handle this case */
-              }
-              else
-              {
-                  eRet = get_buffer_req(&drv_ctx.op_buf);
-              }
-          }
-          if (eRet == OMX_ErrorNone){
-           if (!client_buffers.set_color_format(portFmt->eColorFormat)) {
-             DEBUG_PRINT_ERROR("\n Set color format failed");
-             eRet = OMX_ErrorBadParameter;
-           }
-         }
-      }
-    }
-    break;
-
-    case OMX_QcomIndexPortDefn:
-    {
-        OMX_QCOM_PARAM_PORTDEFINITIONTYPE *portFmt =
-            (OMX_QCOM_PARAM_PORTDEFINITIONTYPE *) paramData;
-        DEBUG_PRINT_LOW("set_parameter: OMX_IndexQcomParamPortDefinitionType %d\n",
-            portFmt->nFramePackingFormat);
-
-        /* Input port */
-        if (portFmt->nPortIndex == 0)
-        {
-            if (portFmt->nFramePackingFormat == OMX_QCOM_FramePacking_Arbitrary)
-            {
-              if(secure_mode) {
-                arbitrary_bytes = false;
-                DEBUG_PRINT_ERROR("setparameter: cannot set to arbitary bytes mode in secure session");
-                eRet = OMX_ErrorUnsupportedSetting;
-              } else {
-               arbitrary_bytes = true;
-              }
-            }
-            else if (portFmt->nFramePackingFormat ==
-                OMX_QCOM_FramePacking_OnlyOneCompleteFrame)
-            {
-               arbitrary_bytes = false;
-            }
-            else
-            {
-                DEBUG_PRINT_ERROR("Setparameter: unknown FramePacking format %lu\n",
-                    portFmt->nFramePackingFormat);
-                eRet = OMX_ErrorUnsupportedSetting;
-            }
-        }
-        else if (portFmt->nPortIndex == OMX_CORE_OUTPUT_PORT_INDEX)
-        {
-          DEBUG_PRINT_HIGH("set_parameter: OMX_IndexQcomParamPortDefinitionType OP Port\n");
-          if( (portFmt->nMemRegion > OMX_QCOM_MemRegionInvalid &&
-               portFmt->nMemRegion < OMX_QCOM_MemRegionMax) &&
-              portFmt->nCacheAttr == OMX_QCOM_CacheAttrNone)
-          {
-            m_out_mem_region_smi = OMX_TRUE;
-            if ((m_out_mem_region_smi && m_out_pvt_entry_pmem))
-            {
-              DEBUG_PRINT_HIGH("set_parameter: OMX_IndexQcomParamPortDefinitionType OP Port: out pmem set\n");
-              m_use_output_pmem = OMX_TRUE;
-            }
-          }
-        }
-    }
-    break;
-
-     case OMX_IndexParamStandardComponentRole:
-     {
-          OMX_PARAM_COMPONENTROLETYPE *comp_role;
-          comp_role = (OMX_PARAM_COMPONENTROLETYPE *) paramData;
-          DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamStandardComponentRole %s\n",
-                       comp_role->cRole);
-
-          if((m_state == OMX_StateLoaded)&&
-              !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
-          {
-           DEBUG_PRINT_LOW("Set Parameter called in valid state");
-          }
-          else
-          {
-             DEBUG_PRINT_ERROR("Set Parameter called in Invalid State\n");
-             return OMX_ErrorIncorrectStateOperation;
-          }
-
-          if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE))
-          {
-              if(!strncmp((char*)comp_role->cRole,"video_decoder.avc",OMX_MAX_STRINGNAME_SIZE))
-              {
-                  strlcpy((char*)m_cRole,"video_decoder.avc",OMX_MAX_STRINGNAME_SIZE);
-              }
-              else
-              {
-                  DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-                  eRet =OMX_ErrorUnsupportedSetting;
-              }
-          }
-          else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.hevc",OMX_MAX_STRINGNAME_SIZE))
-          {
-              if(!strncmp((char*)comp_role->cRole,"video_decoder.hevc",OMX_MAX_STRINGNAME_SIZE))
-              {
-                  strlcpy((char*)m_cRole,"video_decoder.hevc",OMX_MAX_STRINGNAME_SIZE);
-              }
-              else
-              {
-                  DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-                  eRet =OMX_ErrorUnsupportedSetting;
-              }
-          }
-          else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE))
-          {
-              if(!strncmp((const char*)comp_role->cRole,"video_decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE))
-              {
-                  strlcpy((char*)m_cRole,"video_decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE);
-              }
-              else
-              {
-                  DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-                  eRet = OMX_ErrorUnsupportedSetting;
-              }
-          }
-          else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE))
-          {
-              if(!strncmp((const char*)comp_role->cRole,"video_decoder.h263",OMX_MAX_STRINGNAME_SIZE))
-              {
-                  strlcpy((char*)m_cRole,"video_decoder.h263",OMX_MAX_STRINGNAME_SIZE);
-              }
-              else
-              {
-                  DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-                  eRet =OMX_ErrorUnsupportedSetting;
-              }
-          }
-          else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE))
-          {
-            if(!strncmp((const char*)comp_role->cRole,"video_decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE))
-            {
-              strlcpy((char*)m_cRole,"video_decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE);
-            }
-            else
-            {
-              DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-              eRet = OMX_ErrorUnsupportedSetting;
-            }
-          }
-          else if((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",OMX_MAX_STRINGNAME_SIZE)) ||
-                  (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx311",OMX_MAX_STRINGNAME_SIZE))
-                  )
-          {
-              if(!strncmp((const char*)comp_role->cRole,"video_decoder.divx",OMX_MAX_STRINGNAME_SIZE))
-              {
-                  strlcpy((char*)m_cRole,"video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
-              }
-              else
-              {
-                  DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-                  eRet =OMX_ErrorUnsupportedSetting;
-              }
-          }
-          else if ( (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1",OMX_MAX_STRINGNAME_SIZE)) ||
-                    (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.wmv",OMX_MAX_STRINGNAME_SIZE))
-                    )
-          {
-              if(!strncmp((const char*)comp_role->cRole,"video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE))
-              {
-                  strlcpy((char*)m_cRole,"video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
-              }
-              else
-              {
-                  DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-                  eRet =OMX_ErrorUnsupportedSetting;
-              }
-          }
-	  else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vp8",OMX_MAX_STRINGNAME_SIZE))
-          {
-            if(!strncmp((const char*)comp_role->cRole,"video_decoder.vp8",OMX_MAX_STRINGNAME_SIZE) ||
-               (!strncmp((const char*)comp_role->cRole,"video_decoder.vpx",OMX_MAX_STRINGNAME_SIZE)))
-            {
-              strlcpy((char*)m_cRole,"video_decoder.vp8",OMX_MAX_STRINGNAME_SIZE);
-            }
-	    else
-            {
-              DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-              eRet = OMX_ErrorUnsupportedSetting;
-            }
-	  }
-          else
-          {
-               DEBUG_PRINT_ERROR("Setparameter: unknown param %s\n", drv_ctx.kind);
-               eRet = OMX_ErrorInvalidComponentName;
-          }
-          break;
-     }
-
-    case OMX_IndexParamPriorityMgmt:
-        {
-            if(m_state != OMX_StateLoaded)
-            {
-               DEBUG_PRINT_ERROR("Set Parameter called in Invalid State\n");
-               return OMX_ErrorIncorrectStateOperation;
-            }
-            OMX_PRIORITYMGMTTYPE *priorityMgmtype = (OMX_PRIORITYMGMTTYPE*) paramData;
-            DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPriorityMgmt %d\n",
-              priorityMgmtype->nGroupID);
-
-            DEBUG_PRINT_LOW("set_parameter: priorityMgmtype %d\n",
-             priorityMgmtype->nGroupPriority);
-
-            m_priority_mgm.nGroupID = priorityMgmtype->nGroupID;
-            m_priority_mgm.nGroupPriority = priorityMgmtype->nGroupPriority;
-
             break;
-        }
-
-      case OMX_IndexParamCompBufferSupplier:
-      {
-          OMX_PARAM_BUFFERSUPPLIERTYPE *bufferSupplierType = (OMX_PARAM_BUFFERSUPPLIERTYPE*) paramData;
-            DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamCompBufferSupplier %d\n",
-                bufferSupplierType->eBufferSupplier);
-             if(bufferSupplierType->nPortIndex == 0 || bufferSupplierType->nPortIndex ==1)
-                m_buffer_supplier.eBufferSupplier = bufferSupplierType->eBufferSupplier;
-
-             else
-
-             eRet = OMX_ErrorBadPortIndex;
-
-          break;
-
-      }
-      case OMX_IndexParamVideoAvc:
-          {
-              DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoAvc %d\n",
-                    paramIndex);
-              break;
-          }
-      case OMX_IndexParamVideoH263:
-          {
-              DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoH263 %d\n",
-                    paramIndex);
-              break;
-          }
-      case OMX_IndexParamVideoMpeg4:
-          {
-              DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoMpeg4 %d\n",
-                    paramIndex);
-              break;
-          }
-      case OMX_IndexParamVideoMpeg2:
-          {
-              DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoMpeg2 %d\n",
-                    paramIndex);
-              break;
-          }
-       case OMX_QcomIndexParamVideoDecoderPictureOrder:
-          {
-              QOMX_VIDEO_DECODER_PICTURE_ORDER *pictureOrder =
-                  (QOMX_VIDEO_DECODER_PICTURE_ORDER *)paramData;
-			  struct v4l2_control control;
-			  int pic_order,rc=0;
-              DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexParamVideoDecoderPictureOrder %d\n",
-                    pictureOrder->eOutputPictureOrder);
-		if (pictureOrder->eOutputPictureOrder == QOMX_VIDEO_DISPLAY_ORDER) {
-			pic_order = V4L2_MPEG_VIDC_VIDEO_OUTPUT_ORDER_DISPLAY;
-		  }
-		else if (pictureOrder->eOutputPictureOrder == QOMX_VIDEO_DECODE_ORDER){
-			pic_order = V4L2_MPEG_VIDC_VIDEO_OUTPUT_ORDER_DECODE;
-                  time_stamp_dts.set_timestamp_reorder_mode(false);
-		}
-		else
-		eRet = OMX_ErrorBadParameter;
-		if (eRet == OMX_ErrorNone)
-		{
-			control.id = V4L2_CID_MPEG_VIDC_VIDEO_OUTPUT_ORDER;
-			control.value = pic_order;
-			rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control);
-			if(rc)
-			{
-				DEBUG_PRINT_ERROR("\n Set picture order failed");
-				eRet = OMX_ErrorUnsupportedSetting;
-			}
-		}
-		break;
-	}
-    case OMX_QcomIndexParamConcealMBMapExtraData:
-      if(!secure_mode)
-          eRet = enable_extradata(VDEC_EXTRADATA_MB_ERROR_MAP, false,
-                                  ((QOMX_ENABLETYPE *)paramData)->bEnable);
-      else {
-          DEBUG_PRINT_ERROR("\n secure mode setting not supported");
-          eRet = OMX_ErrorUnsupportedSetting;
-      }
-      break;
-    case OMX_QcomIndexParamFrameInfoExtraData:
-      {
-        if(!secure_mode)
-            eRet = enable_extradata(OMX_FRAMEINFO_EXTRADATA, false,
-                                ((QOMX_ENABLETYPE *)paramData)->bEnable);
-        else {
-            DEBUG_PRINT_ERROR("\n secure mode setting not supported");
-            eRet = OMX_ErrorUnsupportedSetting;
-        }
-       break;
-      }
-    case OMX_QcomIndexParamInterlaceExtraData:
-      if(!secure_mode)
-          eRet = enable_extradata(OMX_INTERLACE_EXTRADATA, false,
-                              ((QOMX_ENABLETYPE *)paramData)->bEnable);
-      else {
-          DEBUG_PRINT_ERROR("\n secure mode setting not supported");
-          eRet = OMX_ErrorUnsupportedSetting;
-      }
-      break;
-    case OMX_QcomIndexParamH264TimeInfo:
-      if(!secure_mode)
-          eRet = enable_extradata(OMX_TIMEINFO_EXTRADATA, false,
-                              ((QOMX_ENABLETYPE *)paramData)->bEnable);
-      else {
-          DEBUG_PRINT_ERROR("\n secure mode setting not supported");
-          eRet = OMX_ErrorUnsupportedSetting;
-      }
-      break;
-    case OMX_QcomIndexParamVideoDivx:
-      {
-        QOMX_VIDEO_PARAM_DIVXTYPE* divXType = (QOMX_VIDEO_PARAM_DIVXTYPE *) paramData;
-      }
-      break;
-    case OMX_QcomIndexPlatformPvt:
-      {
-        DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexPlatformPvt OP Port\n");
-        OMX_QCOM_PLATFORMPRIVATE_EXTN* entryType = (OMX_QCOM_PLATFORMPRIVATE_EXTN *) paramData;
-        if (entryType->type != OMX_QCOM_PLATFORM_PRIVATE_PMEM)
-        {
-          DEBUG_PRINT_HIGH("set_parameter: Platform Private entry type (%d) not supported.", entryType->type);
-          eRet = OMX_ErrorUnsupportedSetting;
-        }
-        else
-        {
-          m_out_pvt_entry_pmem = OMX_TRUE;
-          if ((m_out_mem_region_smi && m_out_pvt_entry_pmem))
-          {
-            DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexPlatformPvt OP Port: out pmem set\n");
-            m_use_output_pmem = OMX_TRUE;
-          }
-        }
-
-      }
-      break;
-    case OMX_QcomIndexParamVideoSyncFrameDecodingMode:
-      {
-        DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexParamVideoSyncFrameDecodingMode");
-        DEBUG_PRINT_HIGH("set idr only decoding for thumbnail mode");
-        struct v4l2_control control;
-        int rc;
-        drv_ctx.idr_only_decoding = 1;
-        control.id = V4L2_CID_MPEG_VIDC_VIDEO_OUTPUT_ORDER;
-        control.value = V4L2_MPEG_VIDC_VIDEO_OUTPUT_ORDER_DECODE;
-        rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control);
-        if(rc)
-        {
-          DEBUG_PRINT_ERROR("\n Set picture order failed");
-          eRet = OMX_ErrorUnsupportedSetting;
-        } else {
-            control.id = V4L2_CID_MPEG_VIDC_VIDEO_SYNC_FRAME_DECODE;
-            control.value = V4L2_MPEG_VIDC_VIDEO_SYNC_FRAME_DECODE_ENABLE;
-            rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control);
-            if(rc)
+        case OMX_IndexParamVideoPortFormat:
             {
-              DEBUG_PRINT_ERROR("\n Sync frame setting failed");
-              eRet = OMX_ErrorUnsupportedSetting;
+                OMX_VIDEO_PARAM_PORTFORMATTYPE *portFmt =
+                    (OMX_VIDEO_PARAM_PORTFORMATTYPE *)paramData;
+                int ret=0;
+                struct v4l2_format fmt;
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoPortFormat %d\n",
+                        portFmt->eColorFormat);
+
+                if (1 == portFmt->nPortIndex) {
+                    fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+                    fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
+                    fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
+                    fmt.fmt.pix_mp.pixelformat = capture_capability;
+                    enum vdec_output_fromat op_format;
+                    if ((portFmt->eColorFormat == (OMX_COLOR_FORMATTYPE)
+                                QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m) ||
+                            (portFmt->eColorFormat == OMX_COLOR_FormatYUV420Planar))
+                        op_format = (enum vdec_output_fromat)VDEC_YUV_FORMAT_NV12;
+                    else if (portFmt->eColorFormat ==
+                            (OMX_COLOR_FORMATTYPE)
+                            QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka)
+                        op_format = VDEC_YUV_FORMAT_TILE_4x2;
+                    else
+                        eRet = OMX_ErrorBadParameter;
+
+                    if (eRet == OMX_ErrorNone) {
+                        drv_ctx.output_format = op_format;
+                        ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_FMT, &fmt);
+                        if (ret) {
+                            DEBUG_PRINT_ERROR("\n Set output format failed");
+                            eRet = OMX_ErrorUnsupportedSetting;
+                            /*TODO: How to handle this case */
+                        } else {
+                            eRet = get_buffer_req(&drv_ctx.op_buf);
+                        }
+                    }
+                    if (eRet == OMX_ErrorNone) {
+                        if (!client_buffers.set_color_format(portFmt->eColorFormat)) {
+                            DEBUG_PRINT_ERROR("\n Set color format failed");
+                            eRet = OMX_ErrorBadParameter;
+                        }
+                    }
+                }
             }
-        }
-      }
-      break;
+            break;
 
-    case OMX_QcomIndexParamIndexExtraDataType:
-      {
-        if(!secure_mode) {
-            QOMX_INDEXEXTRADATATYPE *extradataIndexType = (QOMX_INDEXEXTRADATATYPE *) paramData;
-            if ((extradataIndexType->nIndex == OMX_IndexParamPortDefinition) &&
-                   (extradataIndexType->bEnabled == OMX_TRUE) &&
-                   (extradataIndexType->nPortIndex == 1))
+        case OMX_QcomIndexPortDefn:
             {
-              DEBUG_PRINT_HIGH("set_parameter:  OMX_QcomIndexParamIndexExtraDataType SmoothStreaming\n");
-              eRet = enable_extradata(OMX_PORTDEF_EXTRADATA, false, extradataIndexType->bEnabled);
+                OMX_QCOM_PARAM_PORTDEFINITIONTYPE *portFmt =
+                    (OMX_QCOM_PARAM_PORTDEFINITIONTYPE *) paramData;
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexQcomParamPortDefinitionType %d\n",
+                        portFmt->nFramePackingFormat);
+
+                /* Input port */
+                if (portFmt->nPortIndex == 0) {
+                    if (portFmt->nFramePackingFormat == OMX_QCOM_FramePacking_Arbitrary) {
+                        if (secure_mode) {
+                            arbitrary_bytes = false;
+                            DEBUG_PRINT_ERROR("setparameter: cannot set to arbitary bytes mode in secure session");
+                            eRet = OMX_ErrorUnsupportedSetting;
+                        } else {
+                            arbitrary_bytes = true;
+                        }
+                    } else if (portFmt->nFramePackingFormat ==
+                            OMX_QCOM_FramePacking_OnlyOneCompleteFrame) {
+                        arbitrary_bytes = false;
+                    } else {
+                        DEBUG_PRINT_ERROR("Setparameter: unknown FramePacking format %lu\n",
+                                portFmt->nFramePackingFormat);
+                        eRet = OMX_ErrorUnsupportedSetting;
+                    }
+                } else if (portFmt->nPortIndex == OMX_CORE_OUTPUT_PORT_INDEX) {
+                    DEBUG_PRINT_HIGH("set_parameter: OMX_IndexQcomParamPortDefinitionType OP Port\n");
+                    if ( (portFmt->nMemRegion > OMX_QCOM_MemRegionInvalid &&
+                                portFmt->nMemRegion < OMX_QCOM_MemRegionMax) &&
+                            portFmt->nCacheAttr == OMX_QCOM_CacheAttrNone) {
+                        m_out_mem_region_smi = OMX_TRUE;
+                        if ((m_out_mem_region_smi && m_out_pvt_entry_pmem)) {
+                            DEBUG_PRINT_HIGH("set_parameter: OMX_IndexQcomParamPortDefinitionType OP Port: out pmem set\n");
+                            m_use_output_pmem = OMX_TRUE;
+                        }
+                    }
+                }
+            }
+            break;
+
+        case OMX_IndexParamStandardComponentRole:
+            {
+                OMX_PARAM_COMPONENTROLETYPE *comp_role;
+                comp_role = (OMX_PARAM_COMPONENTROLETYPE *) paramData;
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamStandardComponentRole %s\n",
+                        comp_role->cRole);
+
+                if ((m_state == OMX_StateLoaded)&&
+                        !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING)) {
+                    DEBUG_PRINT_LOW("Set Parameter called in valid state");
+                } else {
+                    DEBUG_PRINT_ERROR("Set Parameter called in Invalid State\n");
+                    return OMX_ErrorIncorrectStateOperation;
+                }
+
+                if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE)) {
+                    if (!strncmp((char*)comp_role->cRole,"video_decoder.avc",OMX_MAX_STRINGNAME_SIZE)) {
+                        strlcpy((char*)m_cRole,"video_decoder.avc",OMX_MAX_STRINGNAME_SIZE);
+                    } else {
+                        DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                        eRet =OMX_ErrorUnsupportedSetting;
+                    }
+                } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.hevc",OMX_MAX_STRINGNAME_SIZE)) {
+                    if (!strncmp((char*)comp_role->cRole,"video_decoder.hevc",OMX_MAX_STRINGNAME_SIZE)) {
+                        strlcpy((char*)m_cRole,"video_decoder.hevc",OMX_MAX_STRINGNAME_SIZE);
+                    } else {
+                        DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                        eRet =OMX_ErrorUnsupportedSetting;
+                    }
+                } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE)) {
+                    if (!strncmp((const char*)comp_role->cRole,"video_decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE)) {
+                        strlcpy((char*)m_cRole,"video_decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE);
+                    } else {
+                        DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                        eRet = OMX_ErrorUnsupportedSetting;
+                    }
+                } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE)) {
+                    if (!strncmp((const char*)comp_role->cRole,"video_decoder.h263",OMX_MAX_STRINGNAME_SIZE)) {
+                        strlcpy((char*)m_cRole,"video_decoder.h263",OMX_MAX_STRINGNAME_SIZE);
+                    } else {
+                        DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                        eRet =OMX_ErrorUnsupportedSetting;
+                    }
+                } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE)) {
+                    if (!strncmp((const char*)comp_role->cRole,"video_decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE)) {
+                        strlcpy((char*)m_cRole,"video_decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE);
+                    } else {
+                        DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                        eRet = OMX_ErrorUnsupportedSetting;
+                    }
+                } else if ((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",OMX_MAX_STRINGNAME_SIZE)) ||
+                        (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx311",OMX_MAX_STRINGNAME_SIZE))
+                        ) {
+                    if (!strncmp((const char*)comp_role->cRole,"video_decoder.divx",OMX_MAX_STRINGNAME_SIZE)) {
+                        strlcpy((char*)m_cRole,"video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
+                    } else {
+                        DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                        eRet =OMX_ErrorUnsupportedSetting;
+                    }
+                } else if ( (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1",OMX_MAX_STRINGNAME_SIZE)) ||
+                        (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.wmv",OMX_MAX_STRINGNAME_SIZE))
+                        ) {
+                    if (!strncmp((const char*)comp_role->cRole,"video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE)) {
+                        strlcpy((char*)m_cRole,"video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
+                    } else {
+                        DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                        eRet =OMX_ErrorUnsupportedSetting;
+                    }
+                } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vp8",OMX_MAX_STRINGNAME_SIZE)) {
+                    if (!strncmp((const char*)comp_role->cRole,"video_decoder.vp8",OMX_MAX_STRINGNAME_SIZE) ||
+                            (!strncmp((const char*)comp_role->cRole,"video_decoder.vpx",OMX_MAX_STRINGNAME_SIZE))) {
+                        strlcpy((char*)m_cRole,"video_decoder.vp8",OMX_MAX_STRINGNAME_SIZE);
+                    } else {
+                        DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                        eRet = OMX_ErrorUnsupportedSetting;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("Setparameter: unknown param %s\n", drv_ctx.kind);
+                    eRet = OMX_ErrorInvalidComponentName;
+                }
+                break;
+            }
+
+        case OMX_IndexParamPriorityMgmt:
+            {
+                if (m_state != OMX_StateLoaded) {
+                    DEBUG_PRINT_ERROR("Set Parameter called in Invalid State\n");
+                    return OMX_ErrorIncorrectStateOperation;
+                }
+                OMX_PRIORITYMGMTTYPE *priorityMgmtype = (OMX_PRIORITYMGMTTYPE*) paramData;
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPriorityMgmt %d\n",
+                        priorityMgmtype->nGroupID);
+
+                DEBUG_PRINT_LOW("set_parameter: priorityMgmtype %d\n",
+                        priorityMgmtype->nGroupPriority);
+
+                m_priority_mgm.nGroupID = priorityMgmtype->nGroupID;
+                m_priority_mgm.nGroupPriority = priorityMgmtype->nGroupPriority;
+
+                break;
+            }
+
+        case OMX_IndexParamCompBufferSupplier:
+            {
+                OMX_PARAM_BUFFERSUPPLIERTYPE *bufferSupplierType = (OMX_PARAM_BUFFERSUPPLIERTYPE*) paramData;
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamCompBufferSupplier %d\n",
+                        bufferSupplierType->eBufferSupplier);
+                if (bufferSupplierType->nPortIndex == 0 || bufferSupplierType->nPortIndex ==1)
+                    m_buffer_supplier.eBufferSupplier = bufferSupplierType->eBufferSupplier;
+
+                else
+
+                    eRet = OMX_ErrorBadPortIndex;
+
+                break;
 
             }
-         }
-       }
-      break;
-    case OMX_QcomIndexParamEnableSmoothStreaming:
-      {
-	      struct v4l2_control control;
-	      struct v4l2_format fmt;
-	      control.id = V4L2_CID_MPEG_VIDC_VIDEO_CONTINUE_DATA_TRANSFER;
-	      control.value = 1;
-	      int rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL,&control);
-	      if(rc < 0) {
-		      DEBUG_PRINT_ERROR("Failed to enable Smooth Streaming on driver.");
-		      eRet = OMX_ErrorHardware;
-	      }
-      }
-     break;
+        case OMX_IndexParamVideoAvc:
+            {
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoAvc %d\n",
+                        paramIndex);
+                break;
+            }
+        case OMX_IndexParamVideoH263:
+            {
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoH263 %d\n",
+                        paramIndex);
+                break;
+            }
+        case OMX_IndexParamVideoMpeg4:
+            {
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoMpeg4 %d\n",
+                        paramIndex);
+                break;
+            }
+        case OMX_IndexParamVideoMpeg2:
+            {
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoMpeg2 %d\n",
+                        paramIndex);
+                break;
+            }
+        case OMX_QcomIndexParamVideoDecoderPictureOrder:
+            {
+                QOMX_VIDEO_DECODER_PICTURE_ORDER *pictureOrder =
+                    (QOMX_VIDEO_DECODER_PICTURE_ORDER *)paramData;
+                struct v4l2_control control;
+                int pic_order,rc=0;
+                DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexParamVideoDecoderPictureOrder %d\n",
+                        pictureOrder->eOutputPictureOrder);
+                if (pictureOrder->eOutputPictureOrder == QOMX_VIDEO_DISPLAY_ORDER) {
+                    pic_order = V4L2_MPEG_VIDC_VIDEO_OUTPUT_ORDER_DISPLAY;
+                } else if (pictureOrder->eOutputPictureOrder == QOMX_VIDEO_DECODE_ORDER) {
+                    pic_order = V4L2_MPEG_VIDC_VIDEO_OUTPUT_ORDER_DECODE;
+                    time_stamp_dts.set_timestamp_reorder_mode(false);
+                } else
+                    eRet = OMX_ErrorBadParameter;
+                if (eRet == OMX_ErrorNone) {
+                    control.id = V4L2_CID_MPEG_VIDC_VIDEO_OUTPUT_ORDER;
+                    control.value = pic_order;
+                    rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control);
+                    if (rc) {
+                        DEBUG_PRINT_ERROR("\n Set picture order failed");
+                        eRet = OMX_ErrorUnsupportedSetting;
+                    }
+                }
+                break;
+            }
+        case OMX_QcomIndexParamConcealMBMapExtraData:
+            if (!secure_mode)
+                eRet = enable_extradata(VDEC_EXTRADATA_MB_ERROR_MAP, false,
+                        ((QOMX_ENABLETYPE *)paramData)->bEnable);
+            else {
+                DEBUG_PRINT_ERROR("\n secure mode setting not supported");
+                eRet = OMX_ErrorUnsupportedSetting;
+            }
+            break;
+        case OMX_QcomIndexParamFrameInfoExtraData:
+            {
+                if (!secure_mode)
+                    eRet = enable_extradata(OMX_FRAMEINFO_EXTRADATA, false,
+                            ((QOMX_ENABLETYPE *)paramData)->bEnable);
+                else {
+                    DEBUG_PRINT_ERROR("\n secure mode setting not supported");
+                    eRet = OMX_ErrorUnsupportedSetting;
+                }
+                break;
+            }
+        case OMX_QcomIndexParamInterlaceExtraData:
+            if (!secure_mode)
+                eRet = enable_extradata(OMX_INTERLACE_EXTRADATA, false,
+                        ((QOMX_ENABLETYPE *)paramData)->bEnable);
+            else {
+                DEBUG_PRINT_ERROR("\n secure mode setting not supported");
+                eRet = OMX_ErrorUnsupportedSetting;
+            }
+            break;
+        case OMX_QcomIndexParamH264TimeInfo:
+            if (!secure_mode)
+                eRet = enable_extradata(OMX_TIMEINFO_EXTRADATA, false,
+                        ((QOMX_ENABLETYPE *)paramData)->bEnable);
+            else {
+                DEBUG_PRINT_ERROR("\n secure mode setting not supported");
+                eRet = OMX_ErrorUnsupportedSetting;
+            }
+            break;
+        case OMX_QcomIndexParamVideoDivx:
+            {
+                QOMX_VIDEO_PARAM_DIVXTYPE* divXType = (QOMX_VIDEO_PARAM_DIVXTYPE *) paramData;
+            }
+            break;
+        case OMX_QcomIndexPlatformPvt:
+            {
+                DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexPlatformPvt OP Port\n");
+                OMX_QCOM_PLATFORMPRIVATE_EXTN* entryType = (OMX_QCOM_PLATFORMPRIVATE_EXTN *) paramData;
+                if (entryType->type != OMX_QCOM_PLATFORM_PRIVATE_PMEM) {
+                    DEBUG_PRINT_HIGH("set_parameter: Platform Private entry type (%d) not supported.", entryType->type);
+                    eRet = OMX_ErrorUnsupportedSetting;
+                } else {
+                    m_out_pvt_entry_pmem = OMX_TRUE;
+                    if ((m_out_mem_region_smi && m_out_pvt_entry_pmem)) {
+                        DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexPlatformPvt OP Port: out pmem set\n");
+                        m_use_output_pmem = OMX_TRUE;
+                    }
+                }
+
+            }
+            break;
+        case OMX_QcomIndexParamVideoSyncFrameDecodingMode:
+            {
+                DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexParamVideoSyncFrameDecodingMode");
+                DEBUG_PRINT_HIGH("set idr only decoding for thumbnail mode");
+                struct v4l2_control control;
+                int rc;
+                drv_ctx.idr_only_decoding = 1;
+                control.id = V4L2_CID_MPEG_VIDC_VIDEO_OUTPUT_ORDER;
+                control.value = V4L2_MPEG_VIDC_VIDEO_OUTPUT_ORDER_DECODE;
+                rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control);
+                if (rc) {
+                    DEBUG_PRINT_ERROR("\n Set picture order failed");
+                    eRet = OMX_ErrorUnsupportedSetting;
+                } else {
+                    control.id = V4L2_CID_MPEG_VIDC_VIDEO_SYNC_FRAME_DECODE;
+                    control.value = V4L2_MPEG_VIDC_VIDEO_SYNC_FRAME_DECODE_ENABLE;
+                    rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control);
+                    if (rc) {
+                        DEBUG_PRINT_ERROR("\n Sync frame setting failed");
+                        eRet = OMX_ErrorUnsupportedSetting;
+                    }
+                }
+            }
+            break;
+
+        case OMX_QcomIndexParamIndexExtraDataType:
+            {
+                if (!secure_mode) {
+                    QOMX_INDEXEXTRADATATYPE *extradataIndexType = (QOMX_INDEXEXTRADATATYPE *) paramData;
+                    if ((extradataIndexType->nIndex == OMX_IndexParamPortDefinition) &&
+                            (extradataIndexType->bEnabled == OMX_TRUE) &&
+                            (extradataIndexType->nPortIndex == 1)) {
+                        DEBUG_PRINT_HIGH("set_parameter:  OMX_QcomIndexParamIndexExtraDataType SmoothStreaming\n");
+                        eRet = enable_extradata(OMX_PORTDEF_EXTRADATA, false, extradataIndexType->bEnabled);
+
+                    }
+                }
+            }
+            break;
+        case OMX_QcomIndexParamEnableSmoothStreaming:
+            {
+                struct v4l2_control control;
+                struct v4l2_format fmt;
+                control.id = V4L2_CID_MPEG_VIDC_VIDEO_CONTINUE_DATA_TRANSFER;
+                control.value = 1;
+                int rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL,&control);
+                if (rc < 0) {
+                    DEBUG_PRINT_ERROR("Failed to enable Smooth Streaming on driver.");
+                    eRet = OMX_ErrorHardware;
+                }
+            }
+            break;
 #if defined (_ANDROID_HONEYCOMB_) || defined (_ANDROID_ICS_)
-      /* Need to allow following two set_parameters even in Idle
-       * state. This is ANDROID architecture which is not in sync
-       * with openmax standard. */
-    case OMX_GoogleAndroidIndexEnableAndroidNativeBuffers:
-      {
-          EnableAndroidNativeBuffersParams* enableNativeBuffers = (EnableAndroidNativeBuffersParams *) paramData;
-          if(enableNativeBuffers) {
-              m_enable_android_native_buffers = enableNativeBuffers->enable;
-          }
-      }
-      break;
-    case OMX_GoogleAndroidIndexUseAndroidNativeBuffer:
-      {
-          eRet = use_android_native_buffer(hComp, paramData);
-      }
-      break;
+            /* Need to allow following two set_parameters even in Idle
+             * state. This is ANDROID architecture which is not in sync
+             * with openmax standard. */
+        case OMX_GoogleAndroidIndexEnableAndroidNativeBuffers:
+            {
+                EnableAndroidNativeBuffersParams* enableNativeBuffers = (EnableAndroidNativeBuffersParams *) paramData;
+                if (enableNativeBuffers) {
+                    m_enable_android_native_buffers = enableNativeBuffers->enable;
+                }
+            }
+            break;
+        case OMX_GoogleAndroidIndexUseAndroidNativeBuffer:
+            {
+                eRet = use_android_native_buffer(hComp, paramData);
+            }
+            break;
 #endif
-    case OMX_QcomIndexParamEnableTimeStampReorder:
-      {
-        QOMX_INDEXTIMESTAMPREORDER *reorder = (QOMX_INDEXTIMESTAMPREORDER *)paramData;
-        if (drv_ctx.picture_order == (vdec_output_order)QOMX_VIDEO_DISPLAY_ORDER) {
-          if (reorder->bEnable == OMX_TRUE) {
-              frm_int =0;
-              time_stamp_dts.set_timestamp_reorder_mode(true);
-          }
-          else
-            time_stamp_dts.set_timestamp_reorder_mode(false);
-        } else {
-          time_stamp_dts.set_timestamp_reorder_mode(false);
-          if (reorder->bEnable == OMX_TRUE)
-          {
-            eRet = OMX_ErrorUnsupportedSetting;
-          }
-        }
-      }
-      break;
-    default:
-    {
-      DEBUG_PRINT_ERROR("Setparameter: unknown param %d\n", paramIndex);
-      eRet = OMX_ErrorUnsupportedIndex;
+        case OMX_QcomIndexParamEnableTimeStampReorder:
+            {
+                QOMX_INDEXTIMESTAMPREORDER *reorder = (QOMX_INDEXTIMESTAMPREORDER *)paramData;
+                if (drv_ctx.picture_order == (vdec_output_order)QOMX_VIDEO_DISPLAY_ORDER) {
+                    if (reorder->bEnable == OMX_TRUE) {
+                        frm_int =0;
+                        time_stamp_dts.set_timestamp_reorder_mode(true);
+                    } else
+                        time_stamp_dts.set_timestamp_reorder_mode(false);
+                } else {
+                    time_stamp_dts.set_timestamp_reorder_mode(false);
+                    if (reorder->bEnable == OMX_TRUE) {
+                        eRet = OMX_ErrorUnsupportedSetting;
+                    }
+                }
+            }
+            break;
+        default:
+            {
+                DEBUG_PRINT_ERROR("Setparameter: unknown param %d\n", paramIndex);
+                eRet = OMX_ErrorUnsupportedIndex;
+            }
     }
-  }
-  return eRet;
+    return eRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::GetConfig
+   FUNCTION
+   omx_vdec::GetConfig
 
-DESCRIPTION
-  OMX Get Config Method implementation.
+   DESCRIPTION
+   OMX Get Config Method implementation.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if successful.
+   RETURN VALUE
+   OMX Error None if successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::get_config(OMX_IN OMX_HANDLETYPE      hComp,
-                                        OMX_IN OMX_INDEXTYPE configIndex,
-                                        OMX_INOUT OMX_PTR     configData)
+        OMX_IN OMX_INDEXTYPE configIndex,
+        OMX_INOUT OMX_PTR     configData)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
 
-  if (m_state == OMX_StateInvalid)
-  {
-     DEBUG_PRINT_ERROR("Get Config in Invalid State\n");
-     return OMX_ErrorInvalidState;
-  }
-
-  switch ((unsigned long)configIndex)
-  {
-    case OMX_QcomIndexConfigInterlaced:
-    {
-      OMX_QCOM_CONFIG_INTERLACETYPE *configFmt =
-                                   (OMX_QCOM_CONFIG_INTERLACETYPE *) configData;
-      if (configFmt->nPortIndex == 1)
-      {
-        if (configFmt->nIndex == 0)
-        {
-          configFmt->eInterlaceType = OMX_QCOM_InterlaceFrameProgressive;
-        }
-        else if (configFmt->nIndex == 1)
-        {
-          configFmt->eInterlaceType =
-                                  OMX_QCOM_InterlaceInterleaveFrameTopFieldFirst;
-        }
-        else if (configFmt->nIndex == 2)
-        {
-          configFmt->eInterlaceType =
-          OMX_QCOM_InterlaceInterleaveFrameBottomFieldFirst;
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("get_config: OMX_QcomIndexConfigInterlaced:"
-                            " NoMore Interlaced formats\n");
-          eRet = OMX_ErrorNoMore;
-        }
-
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("get_config: Bad port index %d queried on only o/p port\n",
-        (int)configFmt->nPortIndex);
-        eRet = OMX_ErrorBadPortIndex;
-      }
-    break;
-    }
-    case OMX_QcomIndexQueryNumberOfVideoDecInstance:
-    {
-        QOMX_VIDEO_QUERY_DECODER_INSTANCES *decoderinstances =
-          (QOMX_VIDEO_QUERY_DECODER_INSTANCES*)configData;
-	decoderinstances->nNumOfInstances = 16;
-	/*TODO: How to handle this case */
-    break;
-    }
-  case OMX_QcomIndexConfigVideoFramePackingArrangement:
-    {
-      if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264)
-      {
-        OMX_QCOM_FRAME_PACK_ARRANGEMENT *configFmt =
-          (OMX_QCOM_FRAME_PACK_ARRANGEMENT *) configData;
-        h264_parser->get_frame_pack_data(configFmt);
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("get_config: Framepack data not supported for non H264 codecs");
-      }
-      break;
-    }
-	case OMX_IndexConfigCommonOutputCrop:
-    {
-      OMX_CONFIG_RECTTYPE *rect = (OMX_CONFIG_RECTTYPE *) configData;
-      memcpy(rect, &rectangle, sizeof(OMX_CONFIG_RECTTYPE));
-      break;
-    }
-    default:
-    {
-      DEBUG_PRINT_ERROR("get_config: unknown param %d\n",configIndex);
-      eRet = OMX_ErrorBadParameter;
-    }
-
-  }
-
-  return eRet;
-}
-
-/* ======================================================================
-FUNCTION
-  omx_vdec::SetConfig
-
-DESCRIPTION
-  OMX Set Config method implementation
-
-PARAMETERS
-  <TBD>.
-
-RETURN VALUE
-  OMX Error None if successful.
-========================================================================== */
-OMX_ERRORTYPE  omx_vdec::set_config(OMX_IN OMX_HANDLETYPE      hComp,
-                                        OMX_IN OMX_INDEXTYPE configIndex,
-                                        OMX_IN OMX_PTR        configData)
-{
-  if(m_state == OMX_StateInvalid)
-  {
-      DEBUG_PRINT_ERROR("Get Config in Invalid State\n");
-      return OMX_ErrorInvalidState;
-  }
-
-  OMX_ERRORTYPE ret = OMX_ErrorNone;
-  OMX_VIDEO_CONFIG_NALSIZE *pNal;
-
-  DEBUG_PRINT_LOW("\n Set Config Called");
-
-  if (m_state == OMX_StateExecuting)
-  {
-     DEBUG_PRINT_ERROR("set_config:Ignore in Exe state\n");
-     return ret;
-  }
-
-  if (configIndex == (OMX_INDEXTYPE)OMX_IndexVendorVideoExtraData)
-  {
-    OMX_VENDOR_EXTRADATATYPE *config = (OMX_VENDOR_EXTRADATATYPE *) configData;
-    DEBUG_PRINT_LOW("\n Index OMX_IndexVendorVideoExtraData called");
-    if (!strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc"))
-    {
-      DEBUG_PRINT_LOW("\n Index OMX_IndexVendorVideoExtraData AVC");
-      OMX_U32 extra_size;
-      // Parsing done here for the AVC atom is definitely not generic
-      // Currently this piece of code is working, but certainly
-      // not tested with all .mp4 files.
-      // Incase of failure, we might need to revisit this
-      // for a generic piece of code.
-
-      // Retrieve size of NAL length field
-      // byte #4 contains the size of NAL lenght field
-      nal_length = (config->pData[4] & 0x03) + 1;
-
-      extra_size = 0;
-      if (nal_length > 2)
-      {
-        /* Presently we assume that only one SPS and one PPS in AvC1 Atom */
-        extra_size = (nal_length - 2) * 2;
-      }
-
-      // SPS starts from byte #6
-      OMX_U8 *pSrcBuf = (OMX_U8 *) (&config->pData[6]);
-      OMX_U8 *pDestBuf;
-      m_vendor_config.nPortIndex = config->nPortIndex;
-
-      // minus 6 --> SPS starts from byte #6
-      // minus 1 --> picture param set byte to be ignored from avcatom
-      m_vendor_config.nDataSize = config->nDataSize - 6 - 1 + extra_size;
-      m_vendor_config.pData = (OMX_U8 *) malloc(m_vendor_config.nDataSize);
-      OMX_U32 len;
-      OMX_U8 index = 0;
-      // case where SPS+PPS is sent as part of set_config
-      pDestBuf = m_vendor_config.pData;
-
-      DEBUG_PRINT_LOW("Rxd SPS+PPS nPortIndex[%d] len[%d] data[0x%x]\n",
-           m_vendor_config.nPortIndex,
-           m_vendor_config.nDataSize,
-           m_vendor_config.pData);
-      while (index < 2)
-      {
-        uint8 *psize;
-        len = *pSrcBuf;
-        len = len << 8;
-        len |= *(pSrcBuf + 1);
-        psize = (uint8 *) & len;
-        memcpy(pDestBuf + nal_length, pSrcBuf + 2,len);
-        for (unsigned int i = 0; i < nal_length; i++)
-        {
-          pDestBuf[i] = psize[nal_length - 1 - i];
-        }
-        //memcpy(pDestBuf,pSrcBuf,(len+2));
-        pDestBuf += len + nal_length;
-        pSrcBuf += len + 2;
-        index++;
-        pSrcBuf++;   // skip picture param set
-        len = 0;
-      }
-    }
-    else if (!strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4") ||
-             !strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2"))
-    {
-      m_vendor_config.nPortIndex = config->nPortIndex;
-      m_vendor_config.nDataSize = config->nDataSize;
-      m_vendor_config.pData = (OMX_U8 *) malloc((config->nDataSize));
-      memcpy(m_vendor_config.pData, config->pData,config->nDataSize);
-    }
-    else if (!strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1"))
-    {
-        if(m_vendor_config.pData)
-        {
-            free(m_vendor_config.pData);
-            m_vendor_config.pData = NULL;
-            m_vendor_config.nDataSize = 0;
-        }
-
-        if (((*((OMX_U32 *) config->pData)) &
-             VC1_SP_MP_START_CODE_MASK) ==
-             VC1_SP_MP_START_CODE)
-        {
-            DEBUG_PRINT_LOW("set_config - VC1 simple/main profile\n");
-            m_vendor_config.nPortIndex = config->nPortIndex;
-            m_vendor_config.nDataSize = config->nDataSize;
-            m_vendor_config.pData =
-                (OMX_U8 *) malloc(config->nDataSize);
-            memcpy(m_vendor_config.pData, config->pData,
-                   config->nDataSize);
-            m_vc1_profile = VC1_SP_MP_RCV;
-        }
-        else if (*((OMX_U32 *) config->pData) == VC1_AP_SEQ_START_CODE)
-        {
-            DEBUG_PRINT_LOW("set_config - VC1 Advance profile\n");
-            m_vendor_config.nPortIndex = config->nPortIndex;
-            m_vendor_config.nDataSize = config->nDataSize;
-            m_vendor_config.pData =
-                (OMX_U8 *) malloc((config->nDataSize));
-            memcpy(m_vendor_config.pData, config->pData,
-                   config->nDataSize);
-            m_vc1_profile = VC1_AP;
-        }
-        else if ((config->nDataSize == VC1_STRUCT_C_LEN))
-        {
-            DEBUG_PRINT_LOW("set_config - VC1 Simple/Main profile struct C only\n");
-            m_vendor_config.nPortIndex = config->nPortIndex;
-            m_vendor_config.nDataSize  = config->nDataSize;
-            m_vendor_config.pData = (OMX_U8*)malloc(config->nDataSize);
-            memcpy(m_vendor_config.pData,config->pData,config->nDataSize);
-            m_vc1_profile = VC1_SP_MP_RCV;
-        }
-        else
-        {
-            DEBUG_PRINT_LOW("set_config - Error: Unknown VC1 profile\n");
-        }
-    }
-    return ret;
-  }
-  else if (configIndex == OMX_IndexConfigVideoNalSize)
-  {
-
-    pNal = reinterpret_cast < OMX_VIDEO_CONFIG_NALSIZE * >(configData);
-    nal_length = pNal->nNaluBytes;
-    m_frame_parser.init_nal_length(nal_length);
-    DEBUG_PRINT_LOW("\n OMX_IndexConfigVideoNalSize called with Size %d",nal_length);
-    return ret;
-  }
-
-  return OMX_ErrorNotImplemented;
-}
-
-/* ======================================================================
-FUNCTION
-  omx_vdec::GetExtensionIndex
-
-DESCRIPTION
-  OMX GetExtensionIndex method implementaion.  <TBD>
-
-PARAMETERS
-  <TBD>.
-
-RETURN VALUE
-  OMX Error None if everything successful.
-
-========================================================================== */
-OMX_ERRORTYPE  omx_vdec::get_extension_index(OMX_IN OMX_HANDLETYPE      hComp,
-                                                OMX_IN OMX_STRING      paramName,
-                                                OMX_OUT OMX_INDEXTYPE* indexType)
-{
-    if(m_state == OMX_StateInvalid)
-    {
-        DEBUG_PRINT_ERROR("Get Extension Index in Invalid State\n");
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("Get Config in Invalid State\n");
         return OMX_ErrorInvalidState;
     }
-    else if (!strncmp(paramName, "OMX.QCOM.index.param.video.SyncFrameDecodingMode",sizeof("OMX.QCOM.index.param.video.SyncFrameDecodingMode") - 1)) {
-        *indexType = (OMX_INDEXTYPE)OMX_QcomIndexParamVideoSyncFrameDecodingMode;
+
+    switch ((unsigned long)configIndex) {
+        case OMX_QcomIndexConfigInterlaced:
+            {
+                OMX_QCOM_CONFIG_INTERLACETYPE *configFmt =
+                    (OMX_QCOM_CONFIG_INTERLACETYPE *) configData;
+                if (configFmt->nPortIndex == 1) {
+                    if (configFmt->nIndex == 0) {
+                        configFmt->eInterlaceType = OMX_QCOM_InterlaceFrameProgressive;
+                    } else if (configFmt->nIndex == 1) {
+                        configFmt->eInterlaceType =
+                            OMX_QCOM_InterlaceInterleaveFrameTopFieldFirst;
+                    } else if (configFmt->nIndex == 2) {
+                        configFmt->eInterlaceType =
+                            OMX_QCOM_InterlaceInterleaveFrameBottomFieldFirst;
+                    } else {
+                        DEBUG_PRINT_ERROR("get_config: OMX_QcomIndexConfigInterlaced:"
+                                " NoMore Interlaced formats\n");
+                        eRet = OMX_ErrorNoMore;
+                    }
+
+                } else {
+                    DEBUG_PRINT_ERROR("get_config: Bad port index %d queried on only o/p port\n",
+                            (int)configFmt->nPortIndex);
+                    eRet = OMX_ErrorBadPortIndex;
+                }
+                break;
+            }
+        case OMX_QcomIndexQueryNumberOfVideoDecInstance:
+            {
+                QOMX_VIDEO_QUERY_DECODER_INSTANCES *decoderinstances =
+                    (QOMX_VIDEO_QUERY_DECODER_INSTANCES*)configData;
+                decoderinstances->nNumOfInstances = 16;
+                /*TODO: How to handle this case */
+                break;
+            }
+        case OMX_QcomIndexConfigVideoFramePackingArrangement:
+            {
+                if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264) {
+                    OMX_QCOM_FRAME_PACK_ARRANGEMENT *configFmt =
+                        (OMX_QCOM_FRAME_PACK_ARRANGEMENT *) configData;
+                    h264_parser->get_frame_pack_data(configFmt);
+                } else {
+                    DEBUG_PRINT_ERROR("get_config: Framepack data not supported for non H264 codecs");
+                }
+                break;
+            }
+        case OMX_IndexConfigCommonOutputCrop:
+            {
+                OMX_CONFIG_RECTTYPE *rect = (OMX_CONFIG_RECTTYPE *) configData;
+                memcpy(rect, &rectangle, sizeof(OMX_CONFIG_RECTTYPE));
+                break;
+            }
+        default:
+            {
+                DEBUG_PRINT_ERROR("get_config: unknown param %d\n",configIndex);
+                eRet = OMX_ErrorBadParameter;
+            }
+
     }
-    else if (!strncmp(paramName, "OMX.QCOM.index.param.IndexExtraData",sizeof("OMX.QCOM.index.param.IndexExtraData") - 1))
-    {
+
+    return eRet;
+}
+
+/* ======================================================================
+   FUNCTION
+   omx_vdec::SetConfig
+
+   DESCRIPTION
+   OMX Set Config method implementation
+
+   PARAMETERS
+   <TBD>.
+
+   RETURN VALUE
+   OMX Error None if successful.
+   ========================================================================== */
+OMX_ERRORTYPE  omx_vdec::set_config(OMX_IN OMX_HANDLETYPE      hComp,
+        OMX_IN OMX_INDEXTYPE configIndex,
+        OMX_IN OMX_PTR        configData)
+{
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("Get Config in Invalid State\n");
+        return OMX_ErrorInvalidState;
+    }
+
+    OMX_ERRORTYPE ret = OMX_ErrorNone;
+    OMX_VIDEO_CONFIG_NALSIZE *pNal;
+
+    DEBUG_PRINT_LOW("\n Set Config Called");
+
+    if (m_state == OMX_StateExecuting) {
+        DEBUG_PRINT_ERROR("set_config:Ignore in Exe state\n");
+        return ret;
+    }
+
+    if (configIndex == (OMX_INDEXTYPE)OMX_IndexVendorVideoExtraData) {
+        OMX_VENDOR_EXTRADATATYPE *config = (OMX_VENDOR_EXTRADATATYPE *) configData;
+        DEBUG_PRINT_LOW("\n Index OMX_IndexVendorVideoExtraData called");
+        if (!strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc")) {
+            DEBUG_PRINT_LOW("\n Index OMX_IndexVendorVideoExtraData AVC");
+            OMX_U32 extra_size;
+            // Parsing done here for the AVC atom is definitely not generic
+            // Currently this piece of code is working, but certainly
+            // not tested with all .mp4 files.
+            // Incase of failure, we might need to revisit this
+            // for a generic piece of code.
+
+            // Retrieve size of NAL length field
+            // byte #4 contains the size of NAL lenght field
+            nal_length = (config->pData[4] & 0x03) + 1;
+
+            extra_size = 0;
+            if (nal_length > 2) {
+                /* Presently we assume that only one SPS and one PPS in AvC1 Atom */
+                extra_size = (nal_length - 2) * 2;
+            }
+
+            // SPS starts from byte #6
+            OMX_U8 *pSrcBuf = (OMX_U8 *) (&config->pData[6]);
+            OMX_U8 *pDestBuf;
+            m_vendor_config.nPortIndex = config->nPortIndex;
+
+            // minus 6 --> SPS starts from byte #6
+            // minus 1 --> picture param set byte to be ignored from avcatom
+            m_vendor_config.nDataSize = config->nDataSize - 6 - 1 + extra_size;
+            m_vendor_config.pData = (OMX_U8 *) malloc(m_vendor_config.nDataSize);
+            OMX_U32 len;
+            OMX_U8 index = 0;
+            // case where SPS+PPS is sent as part of set_config
+            pDestBuf = m_vendor_config.pData;
+
+            DEBUG_PRINT_LOW("Rxd SPS+PPS nPortIndex[%d] len[%d] data[0x%x]\n",
+                    m_vendor_config.nPortIndex,
+                    m_vendor_config.nDataSize,
+                    m_vendor_config.pData);
+            while (index < 2) {
+                uint8 *psize;
+                len = *pSrcBuf;
+                len = len << 8;
+                len |= *(pSrcBuf + 1);
+                psize = (uint8 *) & len;
+                memcpy(pDestBuf + nal_length, pSrcBuf + 2,len);
+                for (unsigned int i = 0; i < nal_length; i++) {
+                    pDestBuf[i] = psize[nal_length - 1 - i];
+                }
+                //memcpy(pDestBuf,pSrcBuf,(len+2));
+                pDestBuf += len + nal_length;
+                pSrcBuf += len + 2;
+                index++;
+                pSrcBuf++;   // skip picture param set
+                len = 0;
+            }
+        } else if (!strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4") ||
+                !strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2")) {
+            m_vendor_config.nPortIndex = config->nPortIndex;
+            m_vendor_config.nDataSize = config->nDataSize;
+            m_vendor_config.pData = (OMX_U8 *) malloc((config->nDataSize));
+            memcpy(m_vendor_config.pData, config->pData,config->nDataSize);
+        } else if (!strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1")) {
+            if (m_vendor_config.pData) {
+                free(m_vendor_config.pData);
+                m_vendor_config.pData = NULL;
+                m_vendor_config.nDataSize = 0;
+            }
+
+            if (((*((OMX_U32 *) config->pData)) &
+                        VC1_SP_MP_START_CODE_MASK) ==
+                    VC1_SP_MP_START_CODE) {
+                DEBUG_PRINT_LOW("set_config - VC1 simple/main profile\n");
+                m_vendor_config.nPortIndex = config->nPortIndex;
+                m_vendor_config.nDataSize = config->nDataSize;
+                m_vendor_config.pData =
+                    (OMX_U8 *) malloc(config->nDataSize);
+                memcpy(m_vendor_config.pData, config->pData,
+                        config->nDataSize);
+                m_vc1_profile = VC1_SP_MP_RCV;
+            } else if (*((OMX_U32 *) config->pData) == VC1_AP_SEQ_START_CODE) {
+                DEBUG_PRINT_LOW("set_config - VC1 Advance profile\n");
+                m_vendor_config.nPortIndex = config->nPortIndex;
+                m_vendor_config.nDataSize = config->nDataSize;
+                m_vendor_config.pData =
+                    (OMX_U8 *) malloc((config->nDataSize));
+                memcpy(m_vendor_config.pData, config->pData,
+                        config->nDataSize);
+                m_vc1_profile = VC1_AP;
+            } else if ((config->nDataSize == VC1_STRUCT_C_LEN)) {
+                DEBUG_PRINT_LOW("set_config - VC1 Simple/Main profile struct C only\n");
+                m_vendor_config.nPortIndex = config->nPortIndex;
+                m_vendor_config.nDataSize  = config->nDataSize;
+                m_vendor_config.pData = (OMX_U8*)malloc(config->nDataSize);
+                memcpy(m_vendor_config.pData,config->pData,config->nDataSize);
+                m_vc1_profile = VC1_SP_MP_RCV;
+            } else {
+                DEBUG_PRINT_LOW("set_config - Error: Unknown VC1 profile\n");
+            }
+        }
+        return ret;
+    } else if (configIndex == OMX_IndexConfigVideoNalSize) {
+
+        pNal = reinterpret_cast < OMX_VIDEO_CONFIG_NALSIZE * >(configData);
+        nal_length = pNal->nNaluBytes;
+        m_frame_parser.init_nal_length(nal_length);
+        DEBUG_PRINT_LOW("\n OMX_IndexConfigVideoNalSize called with Size %d",nal_length);
+        return ret;
+    }
+
+    return OMX_ErrorNotImplemented;
+}
+
+/* ======================================================================
+   FUNCTION
+   omx_vdec::GetExtensionIndex
+
+   DESCRIPTION
+   OMX GetExtensionIndex method implementaion.  <TBD>
+
+   PARAMETERS
+   <TBD>.
+
+   RETURN VALUE
+   OMX Error None if everything successful.
+
+   ========================================================================== */
+OMX_ERRORTYPE  omx_vdec::get_extension_index(OMX_IN OMX_HANDLETYPE      hComp,
+        OMX_IN OMX_STRING      paramName,
+        OMX_OUT OMX_INDEXTYPE* indexType)
+{
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("Get Extension Index in Invalid State\n");
+        return OMX_ErrorInvalidState;
+    } else if (!strncmp(paramName, "OMX.QCOM.index.param.video.SyncFrameDecodingMode",sizeof("OMX.QCOM.index.param.video.SyncFrameDecodingMode") - 1)) {
+        *indexType = (OMX_INDEXTYPE)OMX_QcomIndexParamVideoSyncFrameDecodingMode;
+    } else if (!strncmp(paramName, "OMX.QCOM.index.param.IndexExtraData",sizeof("OMX.QCOM.index.param.IndexExtraData") - 1)) {
         *indexType = (OMX_INDEXTYPE)OMX_QcomIndexParamIndexExtraDataType;
     }
 #if defined (_ANDROID_HONEYCOMB_) || defined (_ANDROID_ICS_)
-    else if(!strncmp(paramName,"OMX.google.android.index.enableAndroidNativeBuffers", sizeof("OMX.google.android.index.enableAndroidNativeBuffers") - 1)) {
+    else if (!strncmp(paramName,"OMX.google.android.index.enableAndroidNativeBuffers", sizeof("OMX.google.android.index.enableAndroidNativeBuffers") - 1)) {
         *indexType = (OMX_INDEXTYPE)OMX_GoogleAndroidIndexEnableAndroidNativeBuffers;
-    }
-    else if(!strncmp(paramName,"OMX.google.android.index.useAndroidNativeBuffer2", sizeof("OMX.google.android.index.enableAndroidNativeBuffer2") - 1)) {
+    } else if (!strncmp(paramName,"OMX.google.android.index.useAndroidNativeBuffer2", sizeof("OMX.google.android.index.enableAndroidNativeBuffer2") - 1)) {
         *indexType = (OMX_INDEXTYPE)OMX_GoogleAndroidIndexUseAndroidNativeBuffer2;
-    }
-    else if(!strncmp(paramName,"OMX.google.android.index.useAndroidNativeBuffer", sizeof("OMX.google.android.index.enableAndroidNativeBuffer") - 1)) {
+    } else if (!strncmp(paramName,"OMX.google.android.index.useAndroidNativeBuffer", sizeof("OMX.google.android.index.enableAndroidNativeBuffer") - 1)) {
         DEBUG_PRINT_ERROR("Extension: %s is supported\n", paramName);
         *indexType = (OMX_INDEXTYPE)OMX_GoogleAndroidIndexUseAndroidNativeBuffer;
-    }
-    else if(!strncmp(paramName,"OMX.google.android.index.getAndroidNativeBufferUsage", sizeof("OMX.google.android.index.getAndroidNativeBufferUsage") - 1)) {
+    } else if (!strncmp(paramName,"OMX.google.android.index.getAndroidNativeBufferUsage", sizeof("OMX.google.android.index.getAndroidNativeBufferUsage") - 1)) {
         *indexType = (OMX_INDEXTYPE)OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage;
     }
 #endif
-	else {
+    else {
         DEBUG_PRINT_ERROR("Extension: %s not implemented\n", paramName);
         return OMX_ErrorNotImplemented;
     }
@@ -3982,1319 +3514,1232 @@
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::GetState
+   FUNCTION
+   omx_vdec::GetState
 
-DESCRIPTION
-  Returns the state information back to the caller.<TBD>
+   DESCRIPTION
+   Returns the state information back to the caller.<TBD>
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  Error None if everything is successful.
-========================================================================== */
+   RETURN VALUE
+   Error None if everything is successful.
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::get_state(OMX_IN OMX_HANDLETYPE  hComp,
-                                       OMX_OUT OMX_STATETYPE* state)
+        OMX_OUT OMX_STATETYPE* state)
 {
-  *state = m_state;
-  DEBUG_PRINT_LOW("get_state: Returning the state %d\n",*state);
-  return OMX_ErrorNone;
+    *state = m_state;
+    DEBUG_PRINT_LOW("get_state: Returning the state %d\n",*state);
+    return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::ComponentTunnelRequest
+   FUNCTION
+   omx_vdec::ComponentTunnelRequest
 
-DESCRIPTION
-  OMX Component Tunnel Request method implementation. <TBD>
+   DESCRIPTION
+   OMX Component Tunnel Request method implementation. <TBD>
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  OMX Error None if everything successful.
+   RETURN VALUE
+   OMX Error None if everything successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::component_tunnel_request(OMX_IN OMX_HANDLETYPE                hComp,
-                                                     OMX_IN OMX_U32                        port,
-                                                     OMX_IN OMX_HANDLETYPE        peerComponent,
-                                                     OMX_IN OMX_U32                    peerPort,
-                                                     OMX_INOUT OMX_TUNNELSETUPTYPE* tunnelSetup)
+        OMX_IN OMX_U32                        port,
+        OMX_IN OMX_HANDLETYPE        peerComponent,
+        OMX_IN OMX_U32                    peerPort,
+        OMX_INOUT OMX_TUNNELSETUPTYPE* tunnelSetup)
 {
-  DEBUG_PRINT_ERROR("Error: component_tunnel_request Not Implemented\n");
-  return OMX_ErrorNotImplemented;
+    DEBUG_PRINT_ERROR("Error: component_tunnel_request Not Implemented\n");
+    return OMX_ErrorNotImplemented;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::UseOutputBuffer
+   FUNCTION
+   omx_vdec::UseOutputBuffer
 
-DESCRIPTION
-  Helper function for Use buffer in the input pin
+   DESCRIPTION
+   Helper function for Use buffer in the input pin
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE omx_vdec::allocate_extradata()
 {
 #ifdef USE_ION
-  if (drv_ctx.extradata_info.buffer_size) {
-    if (drv_ctx.extradata_info.ion.ion_alloc_data.handle) {
-      munmap((void *)drv_ctx.extradata_info.uaddr, drv_ctx.extradata_info.size);
-      close(drv_ctx.extradata_info.ion.fd_ion_data.fd);
-      free_ion_memory(&drv_ctx.extradata_info.ion);
+    if (drv_ctx.extradata_info.buffer_size) {
+        if (drv_ctx.extradata_info.ion.ion_alloc_data.handle) {
+            munmap((void *)drv_ctx.extradata_info.uaddr, drv_ctx.extradata_info.size);
+            close(drv_ctx.extradata_info.ion.fd_ion_data.fd);
+            free_ion_memory(&drv_ctx.extradata_info.ion);
+        }
+        drv_ctx.extradata_info.size = (drv_ctx.extradata_info.size + 4095) & (~4095);
+        DEBUG_PRINT_HIGH("allocate extradata memory size %d\n", drv_ctx.extradata_info.size);
+        drv_ctx.extradata_info.ion.ion_device_fd = alloc_map_ion_memory(
+                drv_ctx.extradata_info.size, 4096,
+                &drv_ctx.extradata_info.ion.ion_alloc_data,
+                &drv_ctx.extradata_info.ion.fd_ion_data, 0);
+        if (drv_ctx.extradata_info.ion.ion_device_fd < 0) {
+            DEBUG_PRINT_ERROR("Failed to alloc extradata memory\n");
+            return OMX_ErrorInsufficientResources;
+        }
+        drv_ctx.extradata_info.uaddr = (char *)mmap(NULL,
+                drv_ctx.extradata_info.size,
+                PROT_READ|PROT_WRITE, MAP_SHARED,
+                drv_ctx.extradata_info.ion.fd_ion_data.fd , 0);
+        if (drv_ctx.extradata_info.uaddr == MAP_FAILED) {
+            DEBUG_PRINT_ERROR("Failed to map extradata memory\n");
+            close(drv_ctx.extradata_info.ion.fd_ion_data.fd);
+            free_ion_memory(&drv_ctx.extradata_info.ion);
+            return OMX_ErrorInsufficientResources;
+        }
+        memset(drv_ctx.extradata_info.uaddr, 0, drv_ctx.extradata_info.size);
     }
-    drv_ctx.extradata_info.size = (drv_ctx.extradata_info.size + 4095) & (~4095);
-	DEBUG_PRINT_HIGH("allocate extradata memory size %d\n", drv_ctx.extradata_info.size);
-    drv_ctx.extradata_info.ion.ion_device_fd = alloc_map_ion_memory(
-        drv_ctx.extradata_info.size, 4096,
-        &drv_ctx.extradata_info.ion.ion_alloc_data,
-        &drv_ctx.extradata_info.ion.fd_ion_data, 0);
-    if (drv_ctx.extradata_info.ion.ion_device_fd < 0) {
-      DEBUG_PRINT_ERROR("Failed to alloc extradata memory\n");
-      return OMX_ErrorInsufficientResources;
-    }
-    drv_ctx.extradata_info.uaddr = (char *)mmap(NULL,
-        drv_ctx.extradata_info.size,
-        PROT_READ|PROT_WRITE, MAP_SHARED,
-        drv_ctx.extradata_info.ion.fd_ion_data.fd , 0);
-    if (drv_ctx.extradata_info.uaddr == MAP_FAILED) {
-      DEBUG_PRINT_ERROR("Failed to map extradata memory\n");
-      close(drv_ctx.extradata_info.ion.fd_ion_data.fd);
-      free_ion_memory(&drv_ctx.extradata_info.ion);
-      return OMX_ErrorInsufficientResources;
-    }
-    memset(drv_ctx.extradata_info.uaddr, 0, drv_ctx.extradata_info.size);
-  }
 #endif
-  return OMX_ErrorNone;
+    return OMX_ErrorNone;
 }
 
-void omx_vdec::free_extradata() {
+void omx_vdec::free_extradata()
+{
 #ifdef USE_ION
-  if (drv_ctx.extradata_info.uaddr) {
-    munmap((void *)drv_ctx.extradata_info.uaddr, drv_ctx.extradata_info.size);
-    close(drv_ctx.extradata_info.ion.fd_ion_data.fd);
-    free_ion_memory(&drv_ctx.extradata_info.ion);
-  }
-  memset(&drv_ctx.extradata_info, 0, sizeof(drv_ctx.extradata_info));
+    if (drv_ctx.extradata_info.uaddr) {
+        munmap((void *)drv_ctx.extradata_info.uaddr, drv_ctx.extradata_info.size);
+        close(drv_ctx.extradata_info.ion.fd_ion_data.fd);
+        free_ion_memory(&drv_ctx.extradata_info.ion);
+    }
+    memset(&drv_ctx.extradata_info, 0, sizeof(drv_ctx.extradata_info));
 #endif
 }
 
 OMX_ERRORTYPE  omx_vdec::use_output_buffer(
-                         OMX_IN OMX_HANDLETYPE            hComp,
-                         OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                         OMX_IN OMX_U32                   port,
-                         OMX_IN OMX_PTR                   appData,
-                         OMX_IN OMX_U32                   bytes,
-                         OMX_IN OMX_U8*                   buffer)
+        OMX_IN OMX_HANDLETYPE            hComp,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                   port,
+        OMX_IN OMX_PTR                   appData,
+        OMX_IN OMX_U32                   bytes,
+        OMX_IN OMX_U8*                   buffer)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  OMX_BUFFERHEADERTYPE       *bufHdr= NULL; // buffer header
-  unsigned                         i= 0; // Temporary counter
-  struct vdec_setbuffer_cmd setbuffers;
-  OMX_PTR privateAppData = NULL;
-  private_handle_t *handle = NULL;
-  OMX_U8 *buff = buffer;
-  struct v4l2_buffer buf;
-  struct v4l2_plane plane[VIDEO_MAX_PLANES];
-  int extra_idx = 0;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_BUFFERHEADERTYPE       *bufHdr= NULL; // buffer header
+    unsigned                         i= 0; // Temporary counter
+    struct vdec_setbuffer_cmd setbuffers;
+    OMX_PTR privateAppData = NULL;
+    private_handle_t *handle = NULL;
+    OMX_U8 *buff = buffer;
+    struct v4l2_buffer buf;
+    struct v4l2_plane plane[VIDEO_MAX_PLANES];
+    int extra_idx = 0;
 
-  if (!m_out_mem_ptr) {
-    DEBUG_PRINT_HIGH("Use_op_buf:Allocating output headers");
-    eRet = allocate_output_headers();
-    if (eRet == OMX_ErrorNone)
-      eRet = allocate_extradata();
-  }
-
-  if (eRet == OMX_ErrorNone) {
-    for(i=0; i< drv_ctx.op_buf.actualcount; i++) {
-      if(BITMASK_ABSENT(&m_out_bm_count,i))
-      {
-        break;
-      }
+    if (!m_out_mem_ptr) {
+        DEBUG_PRINT_HIGH("Use_op_buf:Allocating output headers");
+        eRet = allocate_output_headers();
+        if (eRet == OMX_ErrorNone)
+            eRet = allocate_extradata();
     }
-  }
 
-  if(i >= drv_ctx.op_buf.actualcount) {
-    DEBUG_PRINT_ERROR("Already using %d o/p buffers\n", drv_ctx.op_buf.actualcount);
-    eRet = OMX_ErrorInsufficientResources;
-  }
+    if (eRet == OMX_ErrorNone) {
+        for (i=0; i< drv_ctx.op_buf.actualcount; i++) {
+            if (BITMASK_ABSENT(&m_out_bm_count,i)) {
+                break;
+            }
+        }
+    }
 
-  if (eRet == OMX_ErrorNone) {
+    if (i >= drv_ctx.op_buf.actualcount) {
+        DEBUG_PRINT_ERROR("Already using %d o/p buffers\n", drv_ctx.op_buf.actualcount);
+        eRet = OMX_ErrorInsufficientResources;
+    }
+
+    if (eRet == OMX_ErrorNone) {
 #if defined(_ANDROID_HONEYCOMB_) || defined(_ANDROID_ICS_)
-    if(m_enable_android_native_buffers) {
-        if (m_use_android_native_buffers) {
-            UseAndroidNativeBufferParams *params = (UseAndroidNativeBufferParams *)appData;
-            sp<android_native_buffer_t> nBuf = params->nativeBuffer;
-            handle = (private_handle_t *)nBuf->handle;
-            privateAppData = params->pAppPrivate;
-        } else {
-            handle = (private_handle_t *)buff;
-            privateAppData = appData;
-        }
+        if (m_enable_android_native_buffers) {
+            if (m_use_android_native_buffers) {
+                UseAndroidNativeBufferParams *params = (UseAndroidNativeBufferParams *)appData;
+                sp<android_native_buffer_t> nBuf = params->nativeBuffer;
+                handle = (private_handle_t *)nBuf->handle;
+                privateAppData = params->pAppPrivate;
+            } else {
+                handle = (private_handle_t *)buff;
+                privateAppData = appData;
+            }
 
-        if ((OMX_U32)handle->size < drv_ctx.op_buf.buffer_size) {
-            DEBUG_PRINT_ERROR("Insufficient sized buffer given for playback,"
-                              " expected %u, got %lu",
-                              drv_ctx.op_buf.buffer_size, (OMX_U32)handle->size);
-            return OMX_ErrorBadParameter;
-        }
+            if ((OMX_U32)handle->size < drv_ctx.op_buf.buffer_size) {
+                DEBUG_PRINT_ERROR("Insufficient sized buffer given for playback,"
+                        " expected %u, got %lu",
+                        drv_ctx.op_buf.buffer_size, (OMX_U32)handle->size);
+                return OMX_ErrorBadParameter;
+            }
 
-        drv_ctx.op_buf.buffer_size = (OMX_U32)handle->size;
-        if (!m_use_android_native_buffers) {
-            if (!secure_mode) {
-                buff =  (OMX_U8*)mmap(0, handle->size,
-                                      PROT_READ|PROT_WRITE, MAP_SHARED, handle->fd, 0);
-                if (buff == MAP_FAILED) {
-                  DEBUG_PRINT_ERROR("Failed to mmap pmem with fd = %d, size = %d", handle->fd, handle->size);
-                  return OMX_ErrorInsufficientResources;
+            drv_ctx.op_buf.buffer_size = (OMX_U32)handle->size;
+            if (!m_use_android_native_buffers) {
+                if (!secure_mode) {
+                    buff =  (OMX_U8*)mmap(0, handle->size,
+                            PROT_READ|PROT_WRITE, MAP_SHARED, handle->fd, 0);
+                    if (buff == MAP_FAILED) {
+                        DEBUG_PRINT_ERROR("Failed to mmap pmem with fd = %d, size = %d", handle->fd, handle->size);
+                        return OMX_ErrorInsufficientResources;
+                    }
                 }
             }
-        }
 #if defined(_ANDROID_ICS_)
-        native_buffer[i].nativehandle = handle;
-        native_buffer[i].privatehandle = handle;
+            native_buffer[i].nativehandle = handle;
+            native_buffer[i].privatehandle = handle;
 #endif
-        if(!handle) {
-            DEBUG_PRINT_ERROR("Native Buffer handle is NULL");
+            if (!handle) {
+                DEBUG_PRINT_ERROR("Native Buffer handle is NULL");
+                return OMX_ErrorBadParameter;
+            }
+            drv_ctx.ptr_outputbuffer[i].pmem_fd = handle->fd;
+            drv_ctx.ptr_outputbuffer[i].offset = 0;
+            drv_ctx.ptr_outputbuffer[i].bufferaddr = buff;
+            drv_ctx.ptr_outputbuffer[i].mmaped_size =
+                drv_ctx.ptr_outputbuffer[i].buffer_len = drv_ctx.op_buf.buffer_size;
+        } else
+#endif
+
+            if (!ouput_egl_buffers && !m_use_output_pmem) {
+#ifdef USE_ION
+                DEBUG_PRINT_HIGH("allocate output buffer memory size %d\n", drv_ctx.op_buf.buffer_size);
+                drv_ctx.op_buf_ion_info[i].ion_device_fd = alloc_map_ion_memory(
+                        drv_ctx.op_buf.buffer_size,drv_ctx.op_buf.alignment,
+                        &drv_ctx.op_buf_ion_info[i].ion_alloc_data,
+                        &drv_ctx.op_buf_ion_info[i].fd_ion_data, secure_mode ? ION_SECURE : 0);
+                if (drv_ctx.op_buf_ion_info[i].ion_device_fd < 0) {
+                    DEBUG_PRINT_ERROR("ION device fd is bad %d\n", drv_ctx.op_buf_ion_info[i].ion_device_fd);
+                    return OMX_ErrorInsufficientResources;
+                }
+                drv_ctx.ptr_outputbuffer[i].pmem_fd = \
+                                                      drv_ctx.op_buf_ion_info[i].fd_ion_data.fd;
+#else
+                drv_ctx.ptr_outputbuffer[i].pmem_fd = \
+                                                      open (MEM_DEVICE,O_RDWR);
+
+                if (drv_ctx.ptr_outputbuffer[i].pmem_fd < 0) {
+                    DEBUG_PRINT_ERROR("ION/pmem buffer fd is bad %d\n", drv_ctx.ptr_outputbuffer[i].pmem_fd);
+                    return OMX_ErrorInsufficientResources;
+                }
+
+                /* FIXME: why is this code even here? We already open MEM_DEVICE a few lines above */
+                if (drv_ctx.ptr_outputbuffer[i].pmem_fd == 0) {
+                    drv_ctx.ptr_outputbuffer[i].pmem_fd = \
+                                                          open (MEM_DEVICE,O_RDWR);
+                    if (drv_ctx.ptr_outputbuffer[i].pmem_fd < 0) {
+                        DEBUG_PRINT_ERROR("ION/pmem buffer fd is bad %d\n", drv_ctx.ptr_outputbuffer[i].pmem_fd);
+                        return OMX_ErrorInsufficientResources;
+                    }
+                }
+
+                if (!align_pmem_buffers(drv_ctx.ptr_outputbuffer[i].pmem_fd,
+                            drv_ctx.op_buf.buffer_size,
+                            drv_ctx.op_buf.alignment)) {
+                    DEBUG_PRINT_ERROR("\n align_pmem_buffers() failed");
+                    close(drv_ctx.ptr_outputbuffer[i].pmem_fd);
+                    return OMX_ErrorInsufficientResources;
+                }
+#endif
+                if (!secure_mode) {
+                    drv_ctx.ptr_outputbuffer[i].bufferaddr =
+                        (unsigned char *)mmap(NULL, drv_ctx.op_buf.buffer_size,
+                                PROT_READ|PROT_WRITE, MAP_SHARED,
+                                drv_ctx.ptr_outputbuffer[i].pmem_fd,0);
+                    if (drv_ctx.ptr_outputbuffer[i].bufferaddr == MAP_FAILED) {
+                        close(drv_ctx.ptr_outputbuffer[i].pmem_fd);
+#ifdef USE_ION
+                        free_ion_memory(&drv_ctx.op_buf_ion_info[i]);
+#endif
+                        DEBUG_PRINT_ERROR("Unable to mmap output buffer\n");
+                        return OMX_ErrorInsufficientResources;
+                    }
+                }
+                drv_ctx.ptr_outputbuffer[i].offset = 0;
+                privateAppData = appData;
+            } else {
+
+                DEBUG_PRINT_HIGH("Use_op_buf: out_pmem=%d",m_use_output_pmem);
+                if (!appData || !bytes ) {
+                    if (!secure_mode && !buffer) {
+                        DEBUG_PRINT_ERROR("\n Bad parameters for use buffer in EGL image case");
+                        return OMX_ErrorBadParameter;
+                    }
+                }
+
+                OMX_QCOM_PLATFORM_PRIVATE_LIST *pmem_list;
+                OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pmem_info;
+                pmem_list = (OMX_QCOM_PLATFORM_PRIVATE_LIST*) appData;
+                if (!pmem_list->entryList || !pmem_list->entryList->entry ||
+                        !pmem_list->nEntries ||
+                        pmem_list->entryList->type != OMX_QCOM_PLATFORM_PRIVATE_PMEM) {
+                    DEBUG_PRINT_ERROR("\n Pmem info not valid in use buffer");
+                    return OMX_ErrorBadParameter;
+                }
+                pmem_info = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
+                    pmem_list->entryList->entry;
+                DEBUG_PRINT_LOW("vdec: use buf: pmem_fd=0x%x",
+                        pmem_info->pmem_fd);
+                drv_ctx.ptr_outputbuffer[i].pmem_fd = pmem_info->pmem_fd;
+                drv_ctx.ptr_outputbuffer[i].offset = pmem_info->offset;
+                drv_ctx.ptr_outputbuffer[i].bufferaddr = buff;
+                drv_ctx.ptr_outputbuffer[i].mmaped_size =
+                    drv_ctx.ptr_outputbuffer[i].buffer_len = drv_ctx.op_buf.buffer_size;
+                privateAppData = appData;
+            }
+        m_pmem_info[i].offset = drv_ctx.ptr_outputbuffer[i].offset;
+        m_pmem_info[i].pmem_fd = drv_ctx.ptr_outputbuffer[i].pmem_fd;
+
+        *bufferHdr = (m_out_mem_ptr + i );
+        if (secure_mode)
+            drv_ctx.ptr_outputbuffer[i].bufferaddr = *bufferHdr;
+        //setbuffers.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
+        memcpy (&setbuffers.buffer,&drv_ctx.ptr_outputbuffer[i],
+                sizeof (vdec_bufferpayload));
+
+        DEBUG_PRINT_HIGH("\n Set the Output Buffer Idx: %d Addr: %p, pmem_fd=0x%x", i,
+                drv_ctx.ptr_outputbuffer[i].bufferaddr,
+                drv_ctx.ptr_outputbuffer[i].pmem_fd );
+
+        buf.index = i;
+        buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+        buf.memory = V4L2_MEMORY_USERPTR;
+        plane[0].length = drv_ctx.op_buf.buffer_size;
+        plane[0].m.userptr = (unsigned long)drv_ctx.ptr_outputbuffer[i].bufferaddr -
+            (unsigned long)drv_ctx.ptr_outputbuffer[i].offset;
+        plane[0].reserved[0] = drv_ctx.ptr_outputbuffer[i].pmem_fd;
+        plane[0].reserved[1] = drv_ctx.ptr_outputbuffer[i].offset;
+        plane[0].data_offset = 0;
+        extra_idx = EXTRADATA_IDX(drv_ctx.num_planes);
+        if (extra_idx && (extra_idx < VIDEO_MAX_PLANES)) {
+            plane[extra_idx].length = drv_ctx.extradata_info.buffer_size;
+            plane[extra_idx].m.userptr = (long unsigned int) (drv_ctx.extradata_info.uaddr + i * drv_ctx.extradata_info.buffer_size);
+#ifdef USE_ION
+            plane[extra_idx].reserved[0] = drv_ctx.extradata_info.ion.fd_ion_data.fd;
+#endif
+            plane[extra_idx].reserved[1] = i * drv_ctx.extradata_info.buffer_size;
+            plane[extra_idx].data_offset = 0;
+        } else if  (extra_idx >= VIDEO_MAX_PLANES) {
+            DEBUG_PRINT_ERROR("Extradata index is more than allowed: %d\n", extra_idx);
             return OMX_ErrorBadParameter;
         }
-        drv_ctx.ptr_outputbuffer[i].pmem_fd = handle->fd;
-        drv_ctx.ptr_outputbuffer[i].offset = 0;
-        drv_ctx.ptr_outputbuffer[i].bufferaddr = buff;
-        drv_ctx.ptr_outputbuffer[i].mmaped_size =
-            drv_ctx.ptr_outputbuffer[i].buffer_len = drv_ctx.op_buf.buffer_size;
-    } else
-#endif
+        buf.m.planes = plane;
+        buf.length = drv_ctx.num_planes;
 
-    if (!ouput_egl_buffers && !m_use_output_pmem) {
-#ifdef USE_ION
-        DEBUG_PRINT_HIGH("allocate output buffer memory size %d\n", drv_ctx.op_buf.buffer_size);
-        drv_ctx.op_buf_ion_info[i].ion_device_fd = alloc_map_ion_memory(
-                drv_ctx.op_buf.buffer_size,drv_ctx.op_buf.alignment,
-                &drv_ctx.op_buf_ion_info[i].ion_alloc_data,
-                &drv_ctx.op_buf_ion_info[i].fd_ion_data, secure_mode ? ION_SECURE : 0);
-        if(drv_ctx.op_buf_ion_info[i].ion_device_fd < 0) {
-          DEBUG_PRINT_ERROR("ION device fd is bad %d\n", drv_ctx.op_buf_ion_info[i].ion_device_fd);
-          return OMX_ErrorInsufficientResources;
-        }
-        drv_ctx.ptr_outputbuffer[i].pmem_fd = \
-          drv_ctx.op_buf_ion_info[i].fd_ion_data.fd;
-#else
-        drv_ctx.ptr_outputbuffer[i].pmem_fd = \
-          open (MEM_DEVICE,O_RDWR);
+        DEBUG_PRINT_LOW("\n Set the Output Buffer Idx: %d Addr: %x", i, drv_ctx.ptr_outputbuffer[i]);
 
-        if (drv_ctx.ptr_outputbuffer[i].pmem_fd < 0) {
-          DEBUG_PRINT_ERROR("ION/pmem buffer fd is bad %d\n", drv_ctx.ptr_outputbuffer[i].pmem_fd);
-          return OMX_ErrorInsufficientResources;
-        }
-
-	/* FIXME: why is this code even here? We already open MEM_DEVICE a few lines above */
-        if(drv_ctx.ptr_outputbuffer[i].pmem_fd == 0)
-        {
-          drv_ctx.ptr_outputbuffer[i].pmem_fd = \
-            open (MEM_DEVICE,O_RDWR);
-          if (drv_ctx.ptr_outputbuffer[i].pmem_fd < 0) {
-            DEBUG_PRINT_ERROR("ION/pmem buffer fd is bad %d\n", drv_ctx.ptr_outputbuffer[i].pmem_fd);
+        if (ioctl(drv_ctx.video_driver_fd, VIDIOC_PREPARE_BUF, &buf)) {
+            DEBUG_PRINT_ERROR("Failed to prepare bufs\n");
+            /*TODO: How to handle this case */
             return OMX_ErrorInsufficientResources;
-          }
         }
 
-        if(!align_pmem_buffers(drv_ctx.ptr_outputbuffer[i].pmem_fd,
-          drv_ctx.op_buf.buffer_size,
-          drv_ctx.op_buf.alignment))
-        {
-          DEBUG_PRINT_ERROR("\n align_pmem_buffers() failed");
-          close(drv_ctx.ptr_outputbuffer[i].pmem_fd);
-          return OMX_ErrorInsufficientResources;
-        }
-#endif
-        if(!secure_mode) {
-            drv_ctx.ptr_outputbuffer[i].bufferaddr =
-              (unsigned char *)mmap(NULL, drv_ctx.op_buf.buffer_size,
-              PROT_READ|PROT_WRITE, MAP_SHARED,
-              drv_ctx.ptr_outputbuffer[i].pmem_fd,0);
-            if (drv_ctx.ptr_outputbuffer[i].bufferaddr == MAP_FAILED) {
-                close(drv_ctx.ptr_outputbuffer[i].pmem_fd);
-#ifdef USE_ION
-                free_ion_memory(&drv_ctx.op_buf_ion_info[i]);
-#endif
-              DEBUG_PRINT_ERROR("Unable to mmap output buffer\n");
-              return OMX_ErrorInsufficientResources;
+        if (i == (drv_ctx.op_buf.actualcount -1) && !streaming[CAPTURE_PORT]) {
+            enum v4l2_buf_type buf_type;
+            buf_type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+            if (ioctl(drv_ctx.video_driver_fd, VIDIOC_STREAMON,&buf_type)) {
+                return OMX_ErrorInsufficientResources;
+            } else {
+                streaming[CAPTURE_PORT] = true;
+                DEBUG_PRINT_LOW("\n STREAMON Successful \n ");
             }
         }
-        drv_ctx.ptr_outputbuffer[i].offset = 0;
-        privateAppData = appData;
-     }
-     else {
 
-       DEBUG_PRINT_HIGH("Use_op_buf: out_pmem=%d",m_use_output_pmem);
-        if (!appData || !bytes ) {
-          if(!secure_mode && !buffer) {
-              DEBUG_PRINT_ERROR("\n Bad parameters for use buffer in EGL image case");
-              return OMX_ErrorBadParameter;
-          }
+        (*bufferHdr)->nAllocLen = drv_ctx.op_buf.buffer_size;
+        if (m_enable_android_native_buffers) {
+            DEBUG_PRINT_LOW("setting pBuffer to private_handle_t %p", handle);
+            (*bufferHdr)->pBuffer = (OMX_U8 *)handle;
+        } else {
+            (*bufferHdr)->pBuffer = buff;
         }
-
-        OMX_QCOM_PLATFORM_PRIVATE_LIST *pmem_list;
-        OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pmem_info;
-        pmem_list = (OMX_QCOM_PLATFORM_PRIVATE_LIST*) appData;
-        if (!pmem_list->entryList || !pmem_list->entryList->entry ||
-            !pmem_list->nEntries ||
-            pmem_list->entryList->type != OMX_QCOM_PLATFORM_PRIVATE_PMEM) {
-          DEBUG_PRINT_ERROR("\n Pmem info not valid in use buffer");
-          return OMX_ErrorBadParameter;
-        }
-        pmem_info = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
-                    pmem_list->entryList->entry;
-        DEBUG_PRINT_LOW("vdec: use buf: pmem_fd=0x%x",
-                          pmem_info->pmem_fd);
-        drv_ctx.ptr_outputbuffer[i].pmem_fd = pmem_info->pmem_fd;
-        drv_ctx.ptr_outputbuffer[i].offset = pmem_info->offset;
-        drv_ctx.ptr_outputbuffer[i].bufferaddr = buff;
-        drv_ctx.ptr_outputbuffer[i].mmaped_size =
-        drv_ctx.ptr_outputbuffer[i].buffer_len = drv_ctx.op_buf.buffer_size;
-        privateAppData = appData;
-     }
-     m_pmem_info[i].offset = drv_ctx.ptr_outputbuffer[i].offset;
-     m_pmem_info[i].pmem_fd = drv_ctx.ptr_outputbuffer[i].pmem_fd;
-
-     *bufferHdr = (m_out_mem_ptr + i );
-     if(secure_mode)
-          drv_ctx.ptr_outputbuffer[i].bufferaddr = *bufferHdr;
-     //setbuffers.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
-     memcpy (&setbuffers.buffer,&drv_ctx.ptr_outputbuffer[i],
-             sizeof (vdec_bufferpayload));
-
-     DEBUG_PRINT_HIGH("\n Set the Output Buffer Idx: %d Addr: %p, pmem_fd=0x%x", i,
-                       drv_ctx.ptr_outputbuffer[i].bufferaddr,
-                       drv_ctx.ptr_outputbuffer[i].pmem_fd );
-
-     buf.index = i;
-     buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-     buf.memory = V4L2_MEMORY_USERPTR;
-     plane[0].length = drv_ctx.op_buf.buffer_size;
-     plane[0].m.userptr = (unsigned long)drv_ctx.ptr_outputbuffer[i].bufferaddr -
-             (unsigned long)drv_ctx.ptr_outputbuffer[i].offset;
-     plane[0].reserved[0] = drv_ctx.ptr_outputbuffer[i].pmem_fd;
-     plane[0].reserved[1] = drv_ctx.ptr_outputbuffer[i].offset;
-     plane[0].data_offset = 0;
-     extra_idx = EXTRADATA_IDX(drv_ctx.num_planes);
-     if (extra_idx && (extra_idx < VIDEO_MAX_PLANES)) {
-       plane[extra_idx].length = drv_ctx.extradata_info.buffer_size;
-       plane[extra_idx].m.userptr = (long unsigned int) (drv_ctx.extradata_info.uaddr + i * drv_ctx.extradata_info.buffer_size);
-#ifdef USE_ION
-       plane[extra_idx].reserved[0] = drv_ctx.extradata_info.ion.fd_ion_data.fd;
-#endif
-       plane[extra_idx].reserved[1] = i * drv_ctx.extradata_info.buffer_size;
-       plane[extra_idx].data_offset = 0;
-     } else if  (extra_idx >= VIDEO_MAX_PLANES) {
-        DEBUG_PRINT_ERROR("Extradata index is more than allowed: %d\n", extra_idx);
-        return OMX_ErrorBadParameter;
-     }
-     buf.m.planes = plane;
-     buf.length = drv_ctx.num_planes;
-
-     DEBUG_PRINT_LOW("\n Set the Output Buffer Idx: %d Addr: %x", i, drv_ctx.ptr_outputbuffer[i]);
-
-     if (ioctl(drv_ctx.video_driver_fd, VIDIOC_PREPARE_BUF, &buf)) {
-       DEBUG_PRINT_ERROR("Failed to prepare bufs\n");
-	   /*TODO: How to handle this case */
-       return OMX_ErrorInsufficientResources;
-     }
-
-     if (i == (drv_ctx.op_buf.actualcount -1) && !streaming[CAPTURE_PORT]) {
-	     enum v4l2_buf_type buf_type;
-	     buf_type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-	     if (ioctl(drv_ctx.video_driver_fd, VIDIOC_STREAMON,&buf_type)) {
-		     return OMX_ErrorInsufficientResources;
-	     } else {
-		     streaming[CAPTURE_PORT] = true;
-		     DEBUG_PRINT_LOW("\n STREAMON Successful \n ");
-	     }
-     }
-
-     (*bufferHdr)->nAllocLen = drv_ctx.op_buf.buffer_size;
-     if (m_enable_android_native_buffers) {
-       DEBUG_PRINT_LOW("setting pBuffer to private_handle_t %p", handle);
-       (*bufferHdr)->pBuffer = (OMX_U8 *)handle;
-     } else {
-       (*bufferHdr)->pBuffer = buff;
-     }
-     (*bufferHdr)->pAppPrivate = privateAppData;
-     BITMASK_SET(&m_out_bm_count,i);
-  }
-  return eRet;
+        (*bufferHdr)->pAppPrivate = privateAppData;
+        BITMASK_SET(&m_out_bm_count,i);
+    }
+    return eRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::use_input_heap_buffers
+   FUNCTION
+   omx_vdec::use_input_heap_buffers
 
-DESCRIPTION
-  OMX Use Buffer Heap allocation method implementation.
+   DESCRIPTION
+   OMX Use Buffer Heap allocation method implementation.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None , if everything successful.
+   RETURN VALUE
+   OMX Error None , if everything successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::use_input_heap_buffers(
-                         OMX_IN OMX_HANDLETYPE            hComp,
-                         OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                         OMX_IN OMX_U32                   port,
-                         OMX_IN OMX_PTR                   appData,
-                         OMX_IN OMX_U32                   bytes,
-                         OMX_IN OMX_U8*                   buffer)
+        OMX_IN OMX_HANDLETYPE            hComp,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                   port,
+        OMX_IN OMX_PTR                   appData,
+        OMX_IN OMX_U32                   bytes,
+        OMX_IN OMX_U8*                   buffer)
 {
-  DEBUG_PRINT_LOW("Inside %s, %p\n", __FUNCTION__, buffer);
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  if(!m_inp_heap_ptr)
-    m_inp_heap_ptr = (OMX_BUFFERHEADERTYPE*)
-               calloc( (sizeof(OMX_BUFFERHEADERTYPE)),
-               drv_ctx.ip_buf.actualcount);
-  if(!m_phdr_pmem_ptr)
-    m_phdr_pmem_ptr = (OMX_BUFFERHEADERTYPE**)
-               calloc( (sizeof(OMX_BUFFERHEADERTYPE*)),
-               drv_ctx.ip_buf.actualcount);
-  if(!m_inp_heap_ptr || !m_phdr_pmem_ptr)
-  {
-    DEBUG_PRINT_ERROR("Insufficent memory");
-    eRet = OMX_ErrorInsufficientResources;
-  }
-  else if (m_in_alloc_cnt < drv_ctx.ip_buf.actualcount)
-  {
-    input_use_buffer = true;
-    memset(&m_inp_heap_ptr[m_in_alloc_cnt], 0, sizeof(OMX_BUFFERHEADERTYPE));
-    m_inp_heap_ptr[m_in_alloc_cnt].pBuffer = buffer;
-    m_inp_heap_ptr[m_in_alloc_cnt].nAllocLen = bytes;
-    m_inp_heap_ptr[m_in_alloc_cnt].pAppPrivate = appData;
-    m_inp_heap_ptr[m_in_alloc_cnt].nInputPortIndex = (OMX_U32) OMX_DirInput;
-    m_inp_heap_ptr[m_in_alloc_cnt].nOutputPortIndex = (OMX_U32) OMX_DirMax;
-    *bufferHdr = &m_inp_heap_ptr[m_in_alloc_cnt];
-    eRet = allocate_input_buffer(hComp, &m_phdr_pmem_ptr[m_in_alloc_cnt], port, appData, bytes);
-    DEBUG_PRINT_HIGH("\n Heap buffer(%p) Pmem buffer(%p)", *bufferHdr, m_phdr_pmem_ptr[m_in_alloc_cnt]);
-    if (!m_input_free_q.insert_entry((unsigned)m_phdr_pmem_ptr[m_in_alloc_cnt],
-                (unsigned)NULL, (unsigned)NULL))
-    {
-      DEBUG_PRINT_ERROR("\nERROR:Free_q is full");
-      return OMX_ErrorInsufficientResources;
+    DEBUG_PRINT_LOW("Inside %s, %p\n", __FUNCTION__, buffer);
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    if (!m_inp_heap_ptr)
+        m_inp_heap_ptr = (OMX_BUFFERHEADERTYPE*)
+            calloc( (sizeof(OMX_BUFFERHEADERTYPE)),
+                    drv_ctx.ip_buf.actualcount);
+    if (!m_phdr_pmem_ptr)
+        m_phdr_pmem_ptr = (OMX_BUFFERHEADERTYPE**)
+            calloc( (sizeof(OMX_BUFFERHEADERTYPE*)),
+                    drv_ctx.ip_buf.actualcount);
+    if (!m_inp_heap_ptr || !m_phdr_pmem_ptr) {
+        DEBUG_PRINT_ERROR("Insufficent memory");
+        eRet = OMX_ErrorInsufficientResources;
+    } else if (m_in_alloc_cnt < drv_ctx.ip_buf.actualcount) {
+        input_use_buffer = true;
+        memset(&m_inp_heap_ptr[m_in_alloc_cnt], 0, sizeof(OMX_BUFFERHEADERTYPE));
+        m_inp_heap_ptr[m_in_alloc_cnt].pBuffer = buffer;
+        m_inp_heap_ptr[m_in_alloc_cnt].nAllocLen = bytes;
+        m_inp_heap_ptr[m_in_alloc_cnt].pAppPrivate = appData;
+        m_inp_heap_ptr[m_in_alloc_cnt].nInputPortIndex = (OMX_U32) OMX_DirInput;
+        m_inp_heap_ptr[m_in_alloc_cnt].nOutputPortIndex = (OMX_U32) OMX_DirMax;
+        *bufferHdr = &m_inp_heap_ptr[m_in_alloc_cnt];
+        eRet = allocate_input_buffer(hComp, &m_phdr_pmem_ptr[m_in_alloc_cnt], port, appData, bytes);
+        DEBUG_PRINT_HIGH("\n Heap buffer(%p) Pmem buffer(%p)", *bufferHdr, m_phdr_pmem_ptr[m_in_alloc_cnt]);
+        if (!m_input_free_q.insert_entry((unsigned)m_phdr_pmem_ptr[m_in_alloc_cnt],
+                    (unsigned)NULL, (unsigned)NULL)) {
+            DEBUG_PRINT_ERROR("\nERROR:Free_q is full");
+            return OMX_ErrorInsufficientResources;
+        }
+        m_in_alloc_cnt++;
+    } else {
+        DEBUG_PRINT_ERROR("All i/p buffers have been set!");
+        eRet = OMX_ErrorInsufficientResources;
     }
-    m_in_alloc_cnt++;
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("All i/p buffers have been set!");
-    eRet = OMX_ErrorInsufficientResources;
-  }
-  return eRet;
+    return eRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::UseBuffer
+   FUNCTION
+   omx_vdec::UseBuffer
 
-DESCRIPTION
-  OMX Use Buffer method implementation.
+   DESCRIPTION
+   OMX Use Buffer method implementation.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None , if everything successful.
+   RETURN VALUE
+   OMX Error None , if everything successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::use_buffer(
-                         OMX_IN OMX_HANDLETYPE            hComp,
-                         OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                         OMX_IN OMX_U32                   port,
-                         OMX_IN OMX_PTR                   appData,
-                         OMX_IN OMX_U32                   bytes,
-                         OMX_IN OMX_U8*                   buffer)
+        OMX_IN OMX_HANDLETYPE            hComp,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                   port,
+        OMX_IN OMX_PTR                   appData,
+        OMX_IN OMX_U32                   bytes,
+        OMX_IN OMX_U8*                   buffer)
 {
-  OMX_ERRORTYPE error = OMX_ErrorNone;
-  struct vdec_setbuffer_cmd setbuffers;
+    OMX_ERRORTYPE error = OMX_ErrorNone;
+    struct vdec_setbuffer_cmd setbuffers;
 
-  if (bufferHdr == NULL || bytes == 0)
-  {
-      if(!secure_mode && buffer == NULL) {
-          DEBUG_PRINT_ERROR("bad param 0x%p %ld 0x%p",bufferHdr, bytes, buffer);
-          return OMX_ErrorBadParameter;
-      }
-  }
-  if(m_state == OMX_StateInvalid)
-  {
-    DEBUG_PRINT_ERROR("Use Buffer in Invalid State\n");
-    return OMX_ErrorInvalidState;
-  }
-  if(port == OMX_CORE_INPUT_PORT_INDEX)
-    error = use_input_heap_buffers(hComp, bufferHdr, port, appData, bytes, buffer);
-  else if(port == OMX_CORE_OUTPUT_PORT_INDEX)
-    error = use_output_buffer(hComp,bufferHdr,port,appData,bytes,buffer); //not tested
-  else
-  {
-    DEBUG_PRINT_ERROR("Error: Invalid Port Index received %d\n",(int)port);
-    error = OMX_ErrorBadPortIndex;
-  }
-  DEBUG_PRINT_LOW("Use Buffer: port %u, buffer %p, eRet %d", port, *bufferHdr, error);
-  if(error == OMX_ErrorNone)
-  {
-    if(allocate_done() && BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
-    {
-      // Send the callback now
-      BITMASK_CLEAR((&m_flags),OMX_COMPONENT_IDLE_PENDING);
-      post_event(OMX_CommandStateSet,OMX_StateIdle,
-                         OMX_COMPONENT_GENERATE_EVENT);
+    if (bufferHdr == NULL || bytes == 0) {
+        if (!secure_mode && buffer == NULL) {
+            DEBUG_PRINT_ERROR("bad param 0x%p %ld 0x%p",bufferHdr, bytes, buffer);
+            return OMX_ErrorBadParameter;
+        }
     }
-    if(port == OMX_CORE_INPUT_PORT_INDEX && m_inp_bPopulated &&
-       BITMASK_PRESENT(&m_flags,OMX_COMPONENT_INPUT_ENABLE_PENDING))
-    {
-      BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_ENABLE_PENDING);
-      post_event(OMX_CommandPortEnable,
-          OMX_CORE_INPUT_PORT_INDEX,
-          OMX_COMPONENT_GENERATE_EVENT);
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("Use Buffer in Invalid State\n");
+        return OMX_ErrorInvalidState;
     }
-    else if(port == OMX_CORE_OUTPUT_PORT_INDEX && m_out_bPopulated &&
-            BITMASK_PRESENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING))
-    {
-      BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
-      post_event(OMX_CommandPortEnable,
-                 OMX_CORE_OUTPUT_PORT_INDEX,
-                 OMX_COMPONENT_GENERATE_EVENT);
+    if (port == OMX_CORE_INPUT_PORT_INDEX)
+        error = use_input_heap_buffers(hComp, bufferHdr, port, appData, bytes, buffer);
+    else if (port == OMX_CORE_OUTPUT_PORT_INDEX)
+        error = use_output_buffer(hComp,bufferHdr,port,appData,bytes,buffer); //not tested
+    else {
+        DEBUG_PRINT_ERROR("Error: Invalid Port Index received %d\n",(int)port);
+        error = OMX_ErrorBadPortIndex;
     }
-  }
-  return error;
+    DEBUG_PRINT_LOW("Use Buffer: port %u, buffer %p, eRet %d", port, *bufferHdr, error);
+    if (error == OMX_ErrorNone) {
+        if (allocate_done() && BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING)) {
+            // Send the callback now
+            BITMASK_CLEAR((&m_flags),OMX_COMPONENT_IDLE_PENDING);
+            post_event(OMX_CommandStateSet,OMX_StateIdle,
+                    OMX_COMPONENT_GENERATE_EVENT);
+        }
+        if (port == OMX_CORE_INPUT_PORT_INDEX && m_inp_bPopulated &&
+                BITMASK_PRESENT(&m_flags,OMX_COMPONENT_INPUT_ENABLE_PENDING)) {
+            BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_ENABLE_PENDING);
+            post_event(OMX_CommandPortEnable,
+                    OMX_CORE_INPUT_PORT_INDEX,
+                    OMX_COMPONENT_GENERATE_EVENT);
+        } else if (port == OMX_CORE_OUTPUT_PORT_INDEX && m_out_bPopulated &&
+                BITMASK_PRESENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING)) {
+            BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
+            post_event(OMX_CommandPortEnable,
+                    OMX_CORE_OUTPUT_PORT_INDEX,
+                    OMX_COMPONENT_GENERATE_EVENT);
+        }
+    }
+    return error;
 }
 
 OMX_ERRORTYPE omx_vdec::free_input_buffer(unsigned int bufferindex,
-                                OMX_BUFFERHEADERTYPE *pmem_bufferHdr)
+        OMX_BUFFERHEADERTYPE *pmem_bufferHdr)
 {
-  if (m_inp_heap_ptr && !input_use_buffer && arbitrary_bytes)
-  {
-    if(m_inp_heap_ptr[bufferindex].pBuffer)
-      free(m_inp_heap_ptr[bufferindex].pBuffer);
-    m_inp_heap_ptr[bufferindex].pBuffer = NULL;
-  }
-  if (pmem_bufferHdr)
-    free_input_buffer(pmem_bufferHdr);
-  return OMX_ErrorNone;
+    if (m_inp_heap_ptr && !input_use_buffer && arbitrary_bytes) {
+        if (m_inp_heap_ptr[bufferindex].pBuffer)
+            free(m_inp_heap_ptr[bufferindex].pBuffer);
+        m_inp_heap_ptr[bufferindex].pBuffer = NULL;
+    }
+    if (pmem_bufferHdr)
+        free_input_buffer(pmem_bufferHdr);
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_vdec::free_input_buffer(OMX_BUFFERHEADERTYPE *bufferHdr)
 {
-  unsigned int index = 0;
-  if (bufferHdr == NULL || m_inp_mem_ptr == NULL)
-  {
-    return OMX_ErrorBadParameter;
-  }
+    unsigned int index = 0;
+    if (bufferHdr == NULL || m_inp_mem_ptr == NULL) {
+        return OMX_ErrorBadParameter;
+    }
 
-  index = bufferHdr - m_inp_mem_ptr;
-  DEBUG_PRINT_LOW("\n Free Input Buffer index = %d",index);
-
-  if (index < drv_ctx.ip_buf.actualcount && drv_ctx.ptr_inputbuffer)
-  {
+    index = bufferHdr - m_inp_mem_ptr;
     DEBUG_PRINT_LOW("\n Free Input Buffer index = %d",index);
-    if (drv_ctx.ptr_inputbuffer[index].pmem_fd > 0)
-    {
-       struct vdec_setbuffer_cmd setbuffers;
-       setbuffers.buffer_type = VDEC_BUFFER_TYPE_INPUT;
-       memcpy (&setbuffers.buffer,&drv_ctx.ptr_inputbuffer[index],
-          sizeof (vdec_bufferpayload));
-       DEBUG_PRINT_LOW("\n unmap the input buffer fd=%d",
+
+    if (index < drv_ctx.ip_buf.actualcount && drv_ctx.ptr_inputbuffer) {
+        DEBUG_PRINT_LOW("\n Free Input Buffer index = %d",index);
+        if (drv_ctx.ptr_inputbuffer[index].pmem_fd > 0) {
+            struct vdec_setbuffer_cmd setbuffers;
+            setbuffers.buffer_type = VDEC_BUFFER_TYPE_INPUT;
+            memcpy (&setbuffers.buffer,&drv_ctx.ptr_inputbuffer[index],
+                    sizeof (vdec_bufferpayload));
+            DEBUG_PRINT_LOW("\n unmap the input buffer fd=%d",
                     drv_ctx.ptr_inputbuffer[index].pmem_fd);
-       DEBUG_PRINT_LOW("\n unmap the input buffer size=%d  address = %d",
+            DEBUG_PRINT_LOW("\n unmap the input buffer size=%d  address = %d",
                     drv_ctx.ptr_inputbuffer[index].mmaped_size,
                     drv_ctx.ptr_inputbuffer[index].bufferaddr);
-       munmap (drv_ctx.ptr_inputbuffer[index].bufferaddr,
-               drv_ctx.ptr_inputbuffer[index].mmaped_size);
-       close (drv_ctx.ptr_inputbuffer[index].pmem_fd);
-       drv_ctx.ptr_inputbuffer[index].pmem_fd = -1;
-       if (m_desc_buffer_ptr && m_desc_buffer_ptr[index].buf_addr)
-       {
-         free(m_desc_buffer_ptr[index].buf_addr);
-         m_desc_buffer_ptr[index].buf_addr = NULL;
-         m_desc_buffer_ptr[index].desc_data_size = 0;
-       }
+            munmap (drv_ctx.ptr_inputbuffer[index].bufferaddr,
+                    drv_ctx.ptr_inputbuffer[index].mmaped_size);
+            close (drv_ctx.ptr_inputbuffer[index].pmem_fd);
+            drv_ctx.ptr_inputbuffer[index].pmem_fd = -1;
+            if (m_desc_buffer_ptr && m_desc_buffer_ptr[index].buf_addr) {
+                free(m_desc_buffer_ptr[index].buf_addr);
+                m_desc_buffer_ptr[index].buf_addr = NULL;
+                m_desc_buffer_ptr[index].desc_data_size = 0;
+            }
 #ifdef USE_ION
-       free_ion_memory(&drv_ctx.ip_buf_ion_info[index]);
+            free_ion_memory(&drv_ctx.ip_buf_ion_info[index]);
 #endif
+        }
     }
-  }
 
-  return OMX_ErrorNone;
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_vdec::free_output_buffer(OMX_BUFFERHEADERTYPE *bufferHdr)
 {
-  unsigned int index = 0;
+    unsigned int index = 0;
 
-  if (bufferHdr == NULL || m_out_mem_ptr == NULL)
-  {
-    return OMX_ErrorBadParameter;
-  }
+    if (bufferHdr == NULL || m_out_mem_ptr == NULL) {
+        return OMX_ErrorBadParameter;
+    }
 
-  index = bufferHdr - m_out_mem_ptr;
-  DEBUG_PRINT_LOW("\n Free ouput Buffer index = %d",index);
+    index = bufferHdr - m_out_mem_ptr;
+    DEBUG_PRINT_LOW("\n Free ouput Buffer index = %d",index);
 
-  if (index < drv_ctx.op_buf.actualcount
-      && drv_ctx.ptr_outputbuffer)
-  {
-    DEBUG_PRINT_LOW("\n Free ouput Buffer index = %d addr = %x", index,
-                    drv_ctx.ptr_outputbuffer[index].bufferaddr);
+    if (index < drv_ctx.op_buf.actualcount
+            && drv_ctx.ptr_outputbuffer) {
+        DEBUG_PRINT_LOW("\n Free ouput Buffer index = %d addr = %x", index,
+                drv_ctx.ptr_outputbuffer[index].bufferaddr);
 
-    struct vdec_setbuffer_cmd setbuffers;
-    setbuffers.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
-    memcpy (&setbuffers.buffer,&drv_ctx.ptr_outputbuffer[index],
-        sizeof (vdec_bufferpayload));
+        struct vdec_setbuffer_cmd setbuffers;
+        setbuffers.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
+        memcpy (&setbuffers.buffer,&drv_ctx.ptr_outputbuffer[index],
+                sizeof (vdec_bufferpayload));
 #ifdef _ANDROID_
-    if(m_enable_android_native_buffers) {
-        if(drv_ctx.ptr_outputbuffer[index].pmem_fd > 0) {
-            munmap(drv_ctx.ptr_outputbuffer[index].bufferaddr,
-                    drv_ctx.ptr_outputbuffer[index].mmaped_size);
-        }
-        drv_ctx.ptr_outputbuffer[index].pmem_fd = -1;
-    } else {
+        if (m_enable_android_native_buffers) {
+            if (drv_ctx.ptr_outputbuffer[index].pmem_fd > 0) {
+                munmap(drv_ctx.ptr_outputbuffer[index].bufferaddr,
+                        drv_ctx.ptr_outputbuffer[index].mmaped_size);
+            }
+            drv_ctx.ptr_outputbuffer[index].pmem_fd = -1;
+        } else {
 #endif
-        if (drv_ctx.ptr_outputbuffer[0].pmem_fd > 0 && !ouput_egl_buffers && !m_use_output_pmem)
-        {
-            DEBUG_PRINT_LOW("\n unmap the output buffer fd = %d",
-                    drv_ctx.ptr_outputbuffer[0].pmem_fd);
-            DEBUG_PRINT_LOW("\n unmap the ouput buffer size=%d  address = %d",
-                    drv_ctx.ptr_outputbuffer[0].mmaped_size * drv_ctx.op_buf.actualcount,
-                    drv_ctx.ptr_outputbuffer[0].bufferaddr);
-            munmap (drv_ctx.ptr_outputbuffer[0].bufferaddr,
-                    drv_ctx.ptr_outputbuffer[0].mmaped_size * drv_ctx.op_buf.actualcount);
-          close (drv_ctx.ptr_outputbuffer[0].pmem_fd);
-          drv_ctx.ptr_outputbuffer[0].pmem_fd = -1;
+            if (drv_ctx.ptr_outputbuffer[0].pmem_fd > 0 && !ouput_egl_buffers && !m_use_output_pmem) {
+                DEBUG_PRINT_LOW("\n unmap the output buffer fd = %d",
+                        drv_ctx.ptr_outputbuffer[0].pmem_fd);
+                DEBUG_PRINT_LOW("\n unmap the ouput buffer size=%d  address = %d",
+                        drv_ctx.ptr_outputbuffer[0].mmaped_size * drv_ctx.op_buf.actualcount,
+                        drv_ctx.ptr_outputbuffer[0].bufferaddr);
+                munmap (drv_ctx.ptr_outputbuffer[0].bufferaddr,
+                        drv_ctx.ptr_outputbuffer[0].mmaped_size * drv_ctx.op_buf.actualcount);
+                close (drv_ctx.ptr_outputbuffer[0].pmem_fd);
+                drv_ctx.ptr_outputbuffer[0].pmem_fd = -1;
 #ifdef USE_ION
-       free_ion_memory(&drv_ctx.op_buf_ion_info[0]);
+                free_ion_memory(&drv_ctx.op_buf_ion_info[0]);
 #endif
-        }
+            }
 #ifdef _ANDROID_
-    }
+        }
 #endif
-    if (release_output_done()) {
-      free_extradata();
+        if (release_output_done()) {
+            free_extradata();
+        }
     }
-  }
 
-  return OMX_ErrorNone;
+    return OMX_ErrorNone;
 
 }
 
 OMX_ERRORTYPE omx_vdec::allocate_input_heap_buffer(OMX_HANDLETYPE       hComp,
-                                         OMX_BUFFERHEADERTYPE **bufferHdr,
-                                         OMX_U32              port,
-                                         OMX_PTR              appData,
-                                         OMX_U32              bytes)
+        OMX_BUFFERHEADERTYPE **bufferHdr,
+        OMX_U32              port,
+        OMX_PTR              appData,
+        OMX_U32              bytes)
 {
-  OMX_BUFFERHEADERTYPE *input = NULL;
-  unsigned char *buf_addr = NULL;
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  unsigned   i = 0;
+    OMX_BUFFERHEADERTYPE *input = NULL;
+    unsigned char *buf_addr = NULL;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    unsigned   i = 0;
 
-  /* Sanity Check*/
-  if (bufferHdr == NULL)
-  {
-    return OMX_ErrorBadParameter;
-  }
-
-  if (m_inp_heap_ptr == NULL)
-  {
-    m_inp_heap_ptr = (OMX_BUFFERHEADERTYPE*) \
-                     calloc( (sizeof(OMX_BUFFERHEADERTYPE)),
-                     drv_ctx.ip_buf.actualcount);
-    m_phdr_pmem_ptr = (OMX_BUFFERHEADERTYPE**) \
-                     calloc( (sizeof(OMX_BUFFERHEADERTYPE*)),
-                     drv_ctx.ip_buf.actualcount);
-
-    if (m_inp_heap_ptr == NULL)
-    {
-      DEBUG_PRINT_ERROR("\n m_inp_heap_ptr Allocation failed ");
-      return OMX_ErrorInsufficientResources;
-    }
-  }
-
-  /*Find a Free index*/
-  for(i=0; i< drv_ctx.ip_buf.actualcount; i++)
-  {
-    if(BITMASK_ABSENT(&m_heap_inp_bm_count,i))
-    {
-      DEBUG_PRINT_LOW("\n Free Input Buffer Index %d",i);
-      break;
-    }
-  }
-
-  if (i < drv_ctx.ip_buf.actualcount)
-  {
-    buf_addr = (unsigned char *)malloc (drv_ctx.ip_buf.buffer_size);
-
-    if (buf_addr == NULL)
-    {
-      return OMX_ErrorInsufficientResources;
+    /* Sanity Check*/
+    if (bufferHdr == NULL) {
+        return OMX_ErrorBadParameter;
     }
 
-    *bufferHdr = (m_inp_heap_ptr + i);
-    input = *bufferHdr;
-    BITMASK_SET(&m_heap_inp_bm_count,i);
+    if (m_inp_heap_ptr == NULL) {
+        m_inp_heap_ptr = (OMX_BUFFERHEADERTYPE*) \
+                         calloc( (sizeof(OMX_BUFFERHEADERTYPE)),
+                                 drv_ctx.ip_buf.actualcount);
+        m_phdr_pmem_ptr = (OMX_BUFFERHEADERTYPE**) \
+                          calloc( (sizeof(OMX_BUFFERHEADERTYPE*)),
+                                  drv_ctx.ip_buf.actualcount);
 
-    input->pBuffer           = (OMX_U8 *)buf_addr;
-    input->nSize             = sizeof(OMX_BUFFERHEADERTYPE);
-    input->nVersion.nVersion = OMX_SPEC_VERSION;
-    input->nAllocLen         = drv_ctx.ip_buf.buffer_size;
-    input->pAppPrivate       = appData;
-    input->nInputPortIndex   = OMX_CORE_INPUT_PORT_INDEX;
-    DEBUG_PRINT_LOW("\n Address of Heap Buffer %p",*bufferHdr );
-    eRet = allocate_input_buffer(hComp,&m_phdr_pmem_ptr [i],port,appData,bytes);
-    DEBUG_PRINT_LOW("\n Address of Pmem Buffer %p",m_phdr_pmem_ptr[i]);
-    /*Add the Buffers to freeq*/
-    if (!m_input_free_q.insert_entry((unsigned)m_phdr_pmem_ptr[i],
-                (unsigned)NULL, (unsigned)NULL))
-    {
-      DEBUG_PRINT_ERROR("\nERROR:Free_q is full");
-      return OMX_ErrorInsufficientResources;
+        if (m_inp_heap_ptr == NULL) {
+            DEBUG_PRINT_ERROR("\n m_inp_heap_ptr Allocation failed ");
+            return OMX_ErrorInsufficientResources;
+        }
     }
-  }
-  else
-  {
-    return OMX_ErrorBadParameter;
-  }
 
-  return eRet;
+    /*Find a Free index*/
+    for (i=0; i< drv_ctx.ip_buf.actualcount; i++) {
+        if (BITMASK_ABSENT(&m_heap_inp_bm_count,i)) {
+            DEBUG_PRINT_LOW("\n Free Input Buffer Index %d",i);
+            break;
+        }
+    }
+
+    if (i < drv_ctx.ip_buf.actualcount) {
+        buf_addr = (unsigned char *)malloc (drv_ctx.ip_buf.buffer_size);
+
+        if (buf_addr == NULL) {
+            return OMX_ErrorInsufficientResources;
+        }
+
+        *bufferHdr = (m_inp_heap_ptr + i);
+        input = *bufferHdr;
+        BITMASK_SET(&m_heap_inp_bm_count,i);
+
+        input->pBuffer           = (OMX_U8 *)buf_addr;
+        input->nSize             = sizeof(OMX_BUFFERHEADERTYPE);
+        input->nVersion.nVersion = OMX_SPEC_VERSION;
+        input->nAllocLen         = drv_ctx.ip_buf.buffer_size;
+        input->pAppPrivate       = appData;
+        input->nInputPortIndex   = OMX_CORE_INPUT_PORT_INDEX;
+        DEBUG_PRINT_LOW("\n Address of Heap Buffer %p",*bufferHdr );
+        eRet = allocate_input_buffer(hComp,&m_phdr_pmem_ptr [i],port,appData,bytes);
+        DEBUG_PRINT_LOW("\n Address of Pmem Buffer %p",m_phdr_pmem_ptr[i]);
+        /*Add the Buffers to freeq*/
+        if (!m_input_free_q.insert_entry((unsigned)m_phdr_pmem_ptr[i],
+                    (unsigned)NULL, (unsigned)NULL)) {
+            DEBUG_PRINT_ERROR("\nERROR:Free_q is full");
+            return OMX_ErrorInsufficientResources;
+        }
+    } else {
+        return OMX_ErrorBadParameter;
+    }
+
+    return eRet;
 
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::AllocateInputBuffer
+   FUNCTION
+   omx_vdec::AllocateInputBuffer
 
-DESCRIPTION
-  Helper function for allocate buffer in the input pin
+   DESCRIPTION
+   Helper function for allocate buffer in the input pin
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::allocate_input_buffer(
-                         OMX_IN OMX_HANDLETYPE            hComp,
-                         OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                         OMX_IN OMX_U32                   port,
-                         OMX_IN OMX_PTR                   appData,
-                         OMX_IN OMX_U32                   bytes)
+        OMX_IN OMX_HANDLETYPE            hComp,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                   port,
+        OMX_IN OMX_PTR                   appData,
+        OMX_IN OMX_U32                   bytes)
 {
 
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  struct vdec_setbuffer_cmd setbuffers;
-  OMX_BUFFERHEADERTYPE *input = NULL;
-  unsigned   i = 0;
-  unsigned char *buf_addr = NULL;
-  int pmem_fd = -1;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    struct vdec_setbuffer_cmd setbuffers;
+    OMX_BUFFERHEADERTYPE *input = NULL;
+    unsigned   i = 0;
+    unsigned char *buf_addr = NULL;
+    int pmem_fd = -1;
 
-  if(bytes != drv_ctx.ip_buf.buffer_size)
-  {
-    DEBUG_PRINT_LOW("\n Requested Size is wrong %d epected is %d",
-      bytes, drv_ctx.ip_buf.buffer_size);
-    return OMX_ErrorBadParameter;
-  }
-
-  if(!m_inp_mem_ptr)
-  {
-    DEBUG_PRINT_HIGH("\n Allocate i/p buffer Header: Cnt(%d) Sz(%d)",
-      drv_ctx.ip_buf.actualcount,
-      drv_ctx.ip_buf.buffer_size);
-
-    m_inp_mem_ptr = (OMX_BUFFERHEADERTYPE*) \
-    calloc( (sizeof(OMX_BUFFERHEADERTYPE)), drv_ctx.ip_buf.actualcount);
-
-    if (m_inp_mem_ptr == NULL)
-    {
-      return OMX_ErrorInsufficientResources;
+    if (bytes != drv_ctx.ip_buf.buffer_size) {
+        DEBUG_PRINT_LOW("\n Requested Size is wrong %d epected is %d",
+                bytes, drv_ctx.ip_buf.buffer_size);
+        return OMX_ErrorBadParameter;
     }
 
-    drv_ctx.ptr_inputbuffer = (struct vdec_bufferpayload *) \
-    calloc ((sizeof (struct vdec_bufferpayload)),drv_ctx.ip_buf.actualcount);
+    if (!m_inp_mem_ptr) {
+        DEBUG_PRINT_HIGH("\n Allocate i/p buffer Header: Cnt(%d) Sz(%d)",
+                drv_ctx.ip_buf.actualcount,
+                drv_ctx.ip_buf.buffer_size);
 
-    if (drv_ctx.ptr_inputbuffer == NULL)
-    {
-      return OMX_ErrorInsufficientResources;
-    }
+        m_inp_mem_ptr = (OMX_BUFFERHEADERTYPE*) \
+                        calloc( (sizeof(OMX_BUFFERHEADERTYPE)), drv_ctx.ip_buf.actualcount);
+
+        if (m_inp_mem_ptr == NULL) {
+            return OMX_ErrorInsufficientResources;
+        }
+
+        drv_ctx.ptr_inputbuffer = (struct vdec_bufferpayload *) \
+                                  calloc ((sizeof (struct vdec_bufferpayload)),drv_ctx.ip_buf.actualcount);
+
+        if (drv_ctx.ptr_inputbuffer == NULL) {
+            return OMX_ErrorInsufficientResources;
+        }
 #ifdef USE_ION
-    drv_ctx.ip_buf_ion_info = (struct vdec_ion *) \
-    calloc ((sizeof (struct vdec_ion)),drv_ctx.ip_buf.actualcount);
+        drv_ctx.ip_buf_ion_info = (struct vdec_ion *) \
+                                  calloc ((sizeof (struct vdec_ion)),drv_ctx.ip_buf.actualcount);
 
-    if (drv_ctx.ip_buf_ion_info == NULL)
-    {
-      return OMX_ErrorInsufficientResources;
-    }
+        if (drv_ctx.ip_buf_ion_info == NULL) {
+            return OMX_ErrorInsufficientResources;
+        }
 #endif
 
-    for (i=0; i < drv_ctx.ip_buf.actualcount; i++)
-    {
-      drv_ctx.ptr_inputbuffer [i].pmem_fd = -1;
+        for (i=0; i < drv_ctx.ip_buf.actualcount; i++) {
+            drv_ctx.ptr_inputbuffer [i].pmem_fd = -1;
 #ifdef USE_ION
-      drv_ctx.ip_buf_ion_info[i].ion_device_fd = -1;
+            drv_ctx.ip_buf_ion_info[i].ion_device_fd = -1;
 #endif
-    }
-  }
-
-  for(i=0; i< drv_ctx.ip_buf.actualcount; i++)
-  {
-    if(BITMASK_ABSENT(&m_inp_bm_count,i))
-    {
-      DEBUG_PRINT_LOW("\n Free Input Buffer Index %d",i);
-      break;
-    }
-  }
-
-  if(i < drv_ctx.ip_buf.actualcount)
-  {
-    struct v4l2_buffer buf;
-    struct v4l2_plane plane;
-    int rc;
-
-#ifdef USE_ION
-    DEBUG_PRINT_HIGH("\n Allocate input Buffer size %d\n", drv_ctx.ip_buf.buffer_size);
-    drv_ctx.ip_buf_ion_info[i].ion_device_fd = alloc_map_ion_memory(
-                    drv_ctx.ip_buf.buffer_size,drv_ctx.op_buf.alignment,
-                    &drv_ctx.ip_buf_ion_info[i].ion_alloc_data,
-		    &drv_ctx.ip_buf_ion_info[i].fd_ion_data, secure_mode ? ION_SECURE : 0);
-    if(drv_ctx.ip_buf_ion_info[i].ion_device_fd < 0) {
-        return OMX_ErrorInsufficientResources;
-     }
-    pmem_fd = drv_ctx.ip_buf_ion_info[i].fd_ion_data.fd;
-#else
-    pmem_fd = open (MEM_DEVICE,O_RDWR);
-
-    if (pmem_fd < 0)
-    {
-      DEBUG_PRINT_ERROR("\n open failed for pmem/adsp for input buffer");
-      return OMX_ErrorInsufficientResources;
-    }
-
-    if (pmem_fd == 0)
-    {
-      pmem_fd = open (MEM_DEVICE,O_RDWR);
-
-      if (pmem_fd < 0)
-      {
-        DEBUG_PRINT_ERROR("\n open failed for pmem/adsp for input buffer");
-        return OMX_ErrorInsufficientResources;
-      }
-    }
-
-    if(!align_pmem_buffers(pmem_fd, drv_ctx.ip_buf.buffer_size,
-      drv_ctx.ip_buf.alignment))
-    {
-      DEBUG_PRINT_ERROR("\n align_pmem_buffers() failed");
-      close(pmem_fd);
-      return OMX_ErrorInsufficientResources;
-    }
-#endif
-    if (!secure_mode) {
-        buf_addr = (unsigned char *)mmap(NULL,
-          drv_ctx.ip_buf.buffer_size,
-          PROT_READ|PROT_WRITE, MAP_SHARED, pmem_fd, 0);
-
-        if (buf_addr == MAP_FAILED)
-        {
-            close(pmem_fd);
-#ifdef USE_ION
-            free_ion_memory(&drv_ctx.ip_buf_ion_info[i]);
-#endif
-          DEBUG_PRINT_ERROR("\n Map Failed to allocate input buffer");
-          return OMX_ErrorInsufficientResources;
         }
     }
-    *bufferHdr = (m_inp_mem_ptr + i);
-    if (secure_mode)
-        drv_ctx.ptr_inputbuffer [i].bufferaddr = *bufferHdr;
-    else
-        drv_ctx.ptr_inputbuffer [i].bufferaddr = buf_addr;
-    drv_ctx.ptr_inputbuffer [i].pmem_fd = pmem_fd;
-    drv_ctx.ptr_inputbuffer [i].buffer_len = drv_ctx.ip_buf.buffer_size;
-    drv_ctx.ptr_inputbuffer [i].mmaped_size = drv_ctx.ip_buf.buffer_size;
-    drv_ctx.ptr_inputbuffer [i].offset = 0;
 
-
-    buf.index = i;
-    buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-    buf.memory = V4L2_MEMORY_USERPTR;
-    plane.bytesused = 0;
-    plane.length = drv_ctx.ptr_inputbuffer [i].mmaped_size;
-    plane.m.userptr = (unsigned long)drv_ctx.ptr_inputbuffer[i].bufferaddr;
-    plane.reserved[0] =drv_ctx.ptr_inputbuffer [i].pmem_fd;
-    plane.reserved[1] = 0;
-    plane.data_offset = drv_ctx.ptr_inputbuffer[i].offset;
-    buf.m.planes = &plane;
-    buf.length = 1;
-
-     DEBUG_PRINT_LOW("\n Set the input Buffer Idx: %d Addr: %x", i, drv_ctx.ptr_inputbuffer[i]);
-
-     rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_PREPARE_BUF, &buf);
-
-     if (rc) {
-       DEBUG_PRINT_ERROR("Failed to prepare bufs\n");
-	   /*TODO: How to handle this case */
-       return OMX_ErrorInsufficientResources;
-     }
-
-    input = *bufferHdr;
-    BITMASK_SET(&m_inp_bm_count,i);
-    DEBUG_PRINT_LOW("\n Buffer address %p of pmem",*bufferHdr);
-    if (secure_mode)
-         input->pBuffer = (OMX_U8 *)drv_ctx.ptr_inputbuffer [i].pmem_fd;
-    else
-         input->pBuffer           = (OMX_U8 *)buf_addr;
-    input->nSize             = sizeof(OMX_BUFFERHEADERTYPE);
-    input->nVersion.nVersion = OMX_SPEC_VERSION;
-    input->nAllocLen         = drv_ctx.ip_buf.buffer_size;
-    input->pAppPrivate       = appData;
-    input->nInputPortIndex   = OMX_CORE_INPUT_PORT_INDEX;
-    input->pInputPortPrivate = (void *)&drv_ctx.ptr_inputbuffer [i];
-
-    if (drv_ctx.disable_dmx)
-    {
-      eRet = allocate_desc_buffer(i);
+    for (i=0; i< drv_ctx.ip_buf.actualcount; i++) {
+        if (BITMASK_ABSENT(&m_inp_bm_count,i)) {
+            DEBUG_PRINT_LOW("\n Free Input Buffer Index %d",i);
+            break;
+        }
     }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("\nERROR:Input Buffer Index not found");
-    eRet = OMX_ErrorInsufficientResources;
-  }
-  return eRet;
+
+    if (i < drv_ctx.ip_buf.actualcount) {
+        struct v4l2_buffer buf;
+        struct v4l2_plane plane;
+        int rc;
+
+#ifdef USE_ION
+        DEBUG_PRINT_HIGH("\n Allocate input Buffer size %d\n", drv_ctx.ip_buf.buffer_size);
+        drv_ctx.ip_buf_ion_info[i].ion_device_fd = alloc_map_ion_memory(
+                drv_ctx.ip_buf.buffer_size,drv_ctx.op_buf.alignment,
+                &drv_ctx.ip_buf_ion_info[i].ion_alloc_data,
+                &drv_ctx.ip_buf_ion_info[i].fd_ion_data, secure_mode ? ION_SECURE : 0);
+        if (drv_ctx.ip_buf_ion_info[i].ion_device_fd < 0) {
+            return OMX_ErrorInsufficientResources;
+        }
+        pmem_fd = drv_ctx.ip_buf_ion_info[i].fd_ion_data.fd;
+#else
+        pmem_fd = open (MEM_DEVICE,O_RDWR);
+
+        if (pmem_fd < 0) {
+            DEBUG_PRINT_ERROR("\n open failed for pmem/adsp for input buffer");
+            return OMX_ErrorInsufficientResources;
+        }
+
+        if (pmem_fd == 0) {
+            pmem_fd = open (MEM_DEVICE,O_RDWR);
+
+            if (pmem_fd < 0) {
+                DEBUG_PRINT_ERROR("\n open failed for pmem/adsp for input buffer");
+                return OMX_ErrorInsufficientResources;
+            }
+        }
+
+        if (!align_pmem_buffers(pmem_fd, drv_ctx.ip_buf.buffer_size,
+                    drv_ctx.ip_buf.alignment)) {
+            DEBUG_PRINT_ERROR("\n align_pmem_buffers() failed");
+            close(pmem_fd);
+            return OMX_ErrorInsufficientResources;
+        }
+#endif
+        if (!secure_mode) {
+            buf_addr = (unsigned char *)mmap(NULL,
+                    drv_ctx.ip_buf.buffer_size,
+                    PROT_READ|PROT_WRITE, MAP_SHARED, pmem_fd, 0);
+
+            if (buf_addr == MAP_FAILED) {
+                close(pmem_fd);
+#ifdef USE_ION
+                free_ion_memory(&drv_ctx.ip_buf_ion_info[i]);
+#endif
+                DEBUG_PRINT_ERROR("\n Map Failed to allocate input buffer");
+                return OMX_ErrorInsufficientResources;
+            }
+        }
+        *bufferHdr = (m_inp_mem_ptr + i);
+        if (secure_mode)
+            drv_ctx.ptr_inputbuffer [i].bufferaddr = *bufferHdr;
+        else
+            drv_ctx.ptr_inputbuffer [i].bufferaddr = buf_addr;
+        drv_ctx.ptr_inputbuffer [i].pmem_fd = pmem_fd;
+        drv_ctx.ptr_inputbuffer [i].buffer_len = drv_ctx.ip_buf.buffer_size;
+        drv_ctx.ptr_inputbuffer [i].mmaped_size = drv_ctx.ip_buf.buffer_size;
+        drv_ctx.ptr_inputbuffer [i].offset = 0;
+
+
+        buf.index = i;
+        buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+        buf.memory = V4L2_MEMORY_USERPTR;
+        plane.bytesused = 0;
+        plane.length = drv_ctx.ptr_inputbuffer [i].mmaped_size;
+        plane.m.userptr = (unsigned long)drv_ctx.ptr_inputbuffer[i].bufferaddr;
+        plane.reserved[0] =drv_ctx.ptr_inputbuffer [i].pmem_fd;
+        plane.reserved[1] = 0;
+        plane.data_offset = drv_ctx.ptr_inputbuffer[i].offset;
+        buf.m.planes = &plane;
+        buf.length = 1;
+
+        DEBUG_PRINT_LOW("\n Set the input Buffer Idx: %d Addr: %x", i, drv_ctx.ptr_inputbuffer[i]);
+
+        rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_PREPARE_BUF, &buf);
+
+        if (rc) {
+            DEBUG_PRINT_ERROR("Failed to prepare bufs\n");
+            /*TODO: How to handle this case */
+            return OMX_ErrorInsufficientResources;
+        }
+
+        input = *bufferHdr;
+        BITMASK_SET(&m_inp_bm_count,i);
+        DEBUG_PRINT_LOW("\n Buffer address %p of pmem",*bufferHdr);
+        if (secure_mode)
+            input->pBuffer = (OMX_U8 *)drv_ctx.ptr_inputbuffer [i].pmem_fd;
+        else
+            input->pBuffer           = (OMX_U8 *)buf_addr;
+        input->nSize             = sizeof(OMX_BUFFERHEADERTYPE);
+        input->nVersion.nVersion = OMX_SPEC_VERSION;
+        input->nAllocLen         = drv_ctx.ip_buf.buffer_size;
+        input->pAppPrivate       = appData;
+        input->nInputPortIndex   = OMX_CORE_INPUT_PORT_INDEX;
+        input->pInputPortPrivate = (void *)&drv_ctx.ptr_inputbuffer [i];
+
+        if (drv_ctx.disable_dmx) {
+            eRet = allocate_desc_buffer(i);
+        }
+    } else {
+        DEBUG_PRINT_ERROR("\nERROR:Input Buffer Index not found");
+        eRet = OMX_ErrorInsufficientResources;
+    }
+    return eRet;
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::AllocateOutputBuffer
+   FUNCTION
+   omx_vdec::AllocateOutputBuffer
 
-DESCRIPTION
-  Helper fn for AllocateBuffer in the output pin
+   DESCRIPTION
+   Helper fn for AllocateBuffer in the output pin
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if everything went well.
+   RETURN VALUE
+   OMX Error None if everything went well.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::allocate_output_buffer(
-                         OMX_IN OMX_HANDLETYPE            hComp,
-                         OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                         OMX_IN OMX_U32                   port,
-                         OMX_IN OMX_PTR                   appData,
-                         OMX_IN OMX_U32                   bytes)
+        OMX_IN OMX_HANDLETYPE            hComp,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                   port,
+        OMX_IN OMX_PTR                   appData,
+        OMX_IN OMX_U32                   bytes)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  OMX_BUFFERHEADERTYPE       *bufHdr= NULL; // buffer header
-  unsigned                         i= 0; // Temporary counter
-  struct vdec_setbuffer_cmd setbuffers;
-  int extra_idx = 0;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_BUFFERHEADERTYPE       *bufHdr= NULL; // buffer header
+    unsigned                         i= 0; // Temporary counter
+    struct vdec_setbuffer_cmd setbuffers;
+    int extra_idx = 0;
 #ifdef USE_ION
-  int ion_device_fd =-1;
-  struct ion_allocation_data ion_alloc_data;
-  struct ion_fd_data fd_ion_data;
+    int ion_device_fd =-1;
+    struct ion_allocation_data ion_alloc_data;
+    struct ion_fd_data fd_ion_data;
 #endif
-  if(!m_out_mem_ptr)
-  {
-    DEBUG_PRINT_HIGH("\n Allocate o/p buffer Header: Cnt(%d) Sz(%d)",
-      drv_ctx.op_buf.actualcount,
-      drv_ctx.op_buf.buffer_size);
-    int nBufHdrSize        = 0;
-    int nPlatformEntrySize = 0;
-    int nPlatformListSize  = 0;
-    int nPMEMInfoSize = 0;
-    int pmem_fd = -1;
-    unsigned char *pmem_baseaddress = NULL;
+    if (!m_out_mem_ptr) {
+        DEBUG_PRINT_HIGH("\n Allocate o/p buffer Header: Cnt(%d) Sz(%d)",
+                drv_ctx.op_buf.actualcount,
+                drv_ctx.op_buf.buffer_size);
+        int nBufHdrSize        = 0;
+        int nPlatformEntrySize = 0;
+        int nPlatformListSize  = 0;
+        int nPMEMInfoSize = 0;
+        int pmem_fd = -1;
+        unsigned char *pmem_baseaddress = NULL;
 
-    OMX_QCOM_PLATFORM_PRIVATE_LIST      *pPlatformList;
-    OMX_QCOM_PLATFORM_PRIVATE_ENTRY     *pPlatformEntry;
-    OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pPMEMInfo;
+        OMX_QCOM_PLATFORM_PRIVATE_LIST      *pPlatformList;
+        OMX_QCOM_PLATFORM_PRIVATE_ENTRY     *pPlatformEntry;
+        OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pPMEMInfo;
 
-    DEBUG_PRINT_LOW("Allocating First Output Buffer(%d)\n",
-      drv_ctx.op_buf.actualcount);
-    nBufHdrSize        = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_BUFFERHEADERTYPE);
+        DEBUG_PRINT_LOW("Allocating First Output Buffer(%d)\n",
+                drv_ctx.op_buf.actualcount);
+        nBufHdrSize        = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_BUFFERHEADERTYPE);
 
-    nPMEMInfoSize      = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO);
-    nPlatformListSize  = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_QCOM_PLATFORM_PRIVATE_LIST);
-    nPlatformEntrySize = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_QCOM_PLATFORM_PRIVATE_ENTRY);
+        nPMEMInfoSize      = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO);
+        nPlatformListSize  = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_QCOM_PLATFORM_PRIVATE_LIST);
+        nPlatformEntrySize = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_QCOM_PLATFORM_PRIVATE_ENTRY);
 
-    DEBUG_PRINT_LOW("TotalBufHdr %d BufHdrSize %d PMEM %d PL %d\n",nBufHdrSize,
-                         sizeof(OMX_BUFFERHEADERTYPE),
-                         nPMEMInfoSize,
-                         nPlatformListSize);
-    DEBUG_PRINT_LOW("PE %d OutputBuffer Count %d \n",nPlatformEntrySize,
-                         drv_ctx.op_buf.actualcount);
+        DEBUG_PRINT_LOW("TotalBufHdr %d BufHdrSize %d PMEM %d PL %d\n",nBufHdrSize,
+                sizeof(OMX_BUFFERHEADERTYPE),
+                nPMEMInfoSize,
+                nPlatformListSize);
+        DEBUG_PRINT_LOW("PE %d OutputBuffer Count %d \n",nPlatformEntrySize,
+                drv_ctx.op_buf.actualcount);
 #ifdef USE_ION
-    DEBUG_PRINT_HIGH("allocate outputBuffer size %d \n",drv_ctx.op_buf.buffer_size * drv_ctx.op_buf.actualcount);
-    ion_device_fd = alloc_map_ion_memory(
-                    drv_ctx.op_buf.buffer_size * drv_ctx.op_buf.actualcount,
-                    drv_ctx.op_buf.alignment,
-                    &ion_alloc_data, &fd_ion_data, secure_mode ? ION_SECURE : 0);
-    if (ion_device_fd < 0) {
-        return OMX_ErrorInsufficientResources;
-    }
-    pmem_fd = fd_ion_data.fd;
+        DEBUG_PRINT_HIGH("allocate outputBuffer size %d \n",drv_ctx.op_buf.buffer_size * drv_ctx.op_buf.actualcount);
+        ion_device_fd = alloc_map_ion_memory(
+                drv_ctx.op_buf.buffer_size * drv_ctx.op_buf.actualcount,
+                drv_ctx.op_buf.alignment,
+                &ion_alloc_data, &fd_ion_data, secure_mode ? ION_SECURE : 0);
+        if (ion_device_fd < 0) {
+            return OMX_ErrorInsufficientResources;
+        }
+        pmem_fd = fd_ion_data.fd;
 #else
-    pmem_fd = open (MEM_DEVICE,O_RDWR);
+        pmem_fd = open (MEM_DEVICE,O_RDWR);
 
-    if (pmem_fd < 0)
-    {
-      DEBUG_PRINT_ERROR("\nERROR:pmem fd for output buffer %d",
-        drv_ctx.op_buf.buffer_size);
-      return OMX_ErrorInsufficientResources;
-    }
+        if (pmem_fd < 0) {
+            DEBUG_PRINT_ERROR("\nERROR:pmem fd for output buffer %d",
+                    drv_ctx.op_buf.buffer_size);
+            return OMX_ErrorInsufficientResources;
+        }
 
-    if(pmem_fd == 0)
-    {
-      pmem_fd = open (MEM_DEVICE,O_RDWR);
+        if (pmem_fd == 0) {
+            pmem_fd = open (MEM_DEVICE,O_RDWR);
 
-      if (pmem_fd < 0)
-      {
-        DEBUG_PRINT_ERROR("\nERROR:pmem fd for output buffer %d",
-          drv_ctx.op_buf.buffer_size);
-        return OMX_ErrorInsufficientResources;
-      }
-    }
+            if (pmem_fd < 0) {
+                DEBUG_PRINT_ERROR("\nERROR:pmem fd for output buffer %d",
+                        drv_ctx.op_buf.buffer_size);
+                return OMX_ErrorInsufficientResources;
+            }
+        }
 
-    if(!align_pmem_buffers(pmem_fd, drv_ctx.op_buf.buffer_size *
-      drv_ctx.op_buf.actualcount,
-      drv_ctx.op_buf.alignment))
-    {
-      DEBUG_PRINT_ERROR("\n align_pmem_buffers() failed");
-      close(pmem_fd);
-      return OMX_ErrorInsufficientResources;
-    }
+        if (!align_pmem_buffers(pmem_fd, drv_ctx.op_buf.buffer_size *
+                    drv_ctx.op_buf.actualcount,
+                    drv_ctx.op_buf.alignment)) {
+            DEBUG_PRINT_ERROR("\n align_pmem_buffers() failed");
+            close(pmem_fd);
+            return OMX_ErrorInsufficientResources;
+        }
 #endif
-   if (!secure_mode) {
-        pmem_baseaddress = (unsigned char *)mmap(NULL,
-                           (drv_ctx.op_buf.buffer_size *
-                            drv_ctx.op_buf.actualcount),
-                            PROT_READ|PROT_WRITE,MAP_SHARED,pmem_fd,0);
-        if (pmem_baseaddress == MAP_FAILED)
-        {
-          DEBUG_PRINT_ERROR("\n MMAP failed for Size %d",
-          drv_ctx.op_buf.buffer_size);
-          close(pmem_fd);
+        if (!secure_mode) {
+            pmem_baseaddress = (unsigned char *)mmap(NULL,
+                    (drv_ctx.op_buf.buffer_size *
+                     drv_ctx.op_buf.actualcount),
+                    PROT_READ|PROT_WRITE,MAP_SHARED,pmem_fd,0);
+            if (pmem_baseaddress == MAP_FAILED) {
+                DEBUG_PRINT_ERROR("\n MMAP failed for Size %d",
+                        drv_ctx.op_buf.buffer_size);
+                close(pmem_fd);
 #ifdef USE_ION
-          free_ion_memory(&drv_ctx.op_buf_ion_info[i]);
+                free_ion_memory(&drv_ctx.op_buf_ion_info[i]);
 #endif
-          return OMX_ErrorInsufficientResources;
+                return OMX_ErrorInsufficientResources;
+            }
+        }
+        m_out_mem_ptr = (OMX_BUFFERHEADERTYPE  *)calloc(nBufHdrSize,1);
+        // Alloc mem for platform specific info
+        char *pPtr=NULL;
+        pPtr = (char*) calloc(nPlatformListSize + nPlatformEntrySize +
+                nPMEMInfoSize,1);
+        drv_ctx.ptr_outputbuffer = (struct vdec_bufferpayload *)\
+                                   calloc (sizeof(struct vdec_bufferpayload),
+                                           drv_ctx.op_buf.actualcount);
+        drv_ctx.ptr_respbuffer = (struct vdec_output_frameinfo  *)\
+                                 calloc (sizeof (struct vdec_output_frameinfo),
+                                         drv_ctx.op_buf.actualcount);
+#ifdef USE_ION
+        drv_ctx.op_buf_ion_info = (struct vdec_ion *)\
+                                  calloc (sizeof(struct vdec_ion),
+                                          drv_ctx.op_buf.actualcount);
+#endif
+
+        if (m_out_mem_ptr && pPtr && drv_ctx.ptr_outputbuffer
+                && drv_ctx.ptr_respbuffer) {
+            drv_ctx.ptr_outputbuffer[0].mmaped_size =
+                (drv_ctx.op_buf.buffer_size *
+                 drv_ctx.op_buf.actualcount);
+            bufHdr          =  m_out_mem_ptr;
+            m_platform_list = (OMX_QCOM_PLATFORM_PRIVATE_LIST *)(pPtr);
+            m_platform_entry= (OMX_QCOM_PLATFORM_PRIVATE_ENTRY *)
+                (((char *) m_platform_list)  + nPlatformListSize);
+            m_pmem_info     = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
+                (((char *) m_platform_entry) + nPlatformEntrySize);
+            pPlatformList   = m_platform_list;
+            pPlatformEntry  = m_platform_entry;
+            pPMEMInfo       = m_pmem_info;
+
+            DEBUG_PRINT_LOW("Memory Allocation Succeeded for OUT port%p\n",m_out_mem_ptr);
+
+            // Settting the entire storage nicely
+            DEBUG_PRINT_LOW("bHdr %p OutMem %p PE %p\n",bufHdr, m_out_mem_ptr,pPlatformEntry);
+            DEBUG_PRINT_LOW(" Pmem Info = %p \n",pPMEMInfo);
+            for (i=0; i < drv_ctx.op_buf.actualcount ; i++) {
+                bufHdr->nSize              = sizeof(OMX_BUFFERHEADERTYPE);
+                bufHdr->nVersion.nVersion  = OMX_SPEC_VERSION;
+                // Set the values when we determine the right HxW param
+                bufHdr->nAllocLen          = bytes;
+                bufHdr->nFilledLen         = 0;
+                bufHdr->pAppPrivate        = appData;
+                bufHdr->nOutputPortIndex   = OMX_CORE_OUTPUT_PORT_INDEX;
+                // Platform specific PMEM Information
+                // Initialize the Platform Entry
+                //DEBUG_PRINT_LOW("Initializing the Platform Entry for %d\n",i);
+                pPlatformEntry->type       = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
+                pPlatformEntry->entry      = pPMEMInfo;
+                // Initialize the Platform List
+                pPlatformList->nEntries    = 1;
+                pPlatformList->entryList   = pPlatformEntry;
+                // Keep pBuffer NULL till vdec is opened
+                bufHdr->pBuffer            = NULL;
+                bufHdr->nOffset            = 0;
+
+                pPMEMInfo->offset          =  drv_ctx.op_buf.buffer_size*i;
+                pPMEMInfo->pmem_fd = 0;
+                bufHdr->pPlatformPrivate = pPlatformList;
+
+                drv_ctx.ptr_outputbuffer[i].pmem_fd = pmem_fd;
+                m_pmem_info[i].pmem_fd = pmem_fd;
+#ifdef USE_ION
+                drv_ctx.op_buf_ion_info[i].ion_device_fd = ion_device_fd;
+                drv_ctx.op_buf_ion_info[i].ion_alloc_data = ion_alloc_data;
+                drv_ctx.op_buf_ion_info[i].fd_ion_data = fd_ion_data;
+#endif
+
+                /*Create a mapping between buffers*/
+                bufHdr->pOutputPortPrivate = &drv_ctx.ptr_respbuffer[i];
+                drv_ctx.ptr_respbuffer[i].client_data = (void *)\
+                                                        &drv_ctx.ptr_outputbuffer[i];
+                drv_ctx.ptr_outputbuffer[i].offset = drv_ctx.op_buf.buffer_size*i;
+                drv_ctx.ptr_outputbuffer[i].bufferaddr =
+                    pmem_baseaddress + (drv_ctx.op_buf.buffer_size*i);
+
+                DEBUG_PRINT_LOW("\n pmem_fd = %d offset = %d address = %p",
+                        pmem_fd, drv_ctx.ptr_outputbuffer[i].offset,
+                        drv_ctx.ptr_outputbuffer[i].bufferaddr);
+                // Move the buffer and buffer header pointers
+                bufHdr++;
+                pPMEMInfo++;
+                pPlatformEntry++;
+                pPlatformList++;
+            }
+        } else {
+            DEBUG_PRINT_ERROR("Output buf mem alloc failed[0x%p][0x%p]\n",\
+                    m_out_mem_ptr, pPtr);
+            if (m_out_mem_ptr) {
+                free(m_out_mem_ptr);
+                m_out_mem_ptr = NULL;
+            }
+            if (pPtr) {
+                free(pPtr);
+                pPtr = NULL;
+            }
+            if (drv_ctx.ptr_outputbuffer) {
+                free(drv_ctx.ptr_outputbuffer);
+                drv_ctx.ptr_outputbuffer = NULL;
+            }
+            if (drv_ctx.ptr_respbuffer) {
+                free(drv_ctx.ptr_respbuffer);
+                drv_ctx.ptr_respbuffer = NULL;
+            }
+#ifdef USE_ION
+            if (drv_ctx.op_buf_ion_info) {
+                DEBUG_PRINT_LOW("\n Free o/p ion context");
+                free(drv_ctx.op_buf_ion_info);
+                drv_ctx.op_buf_ion_info = NULL;
+            }
+#endif
+            eRet =  OMX_ErrorInsufficientResources;
+        }
+        if (eRet == OMX_ErrorNone)
+            eRet = allocate_extradata();
+    }
+
+    for (i=0; i< drv_ctx.op_buf.actualcount; i++) {
+        if (BITMASK_ABSENT(&m_out_bm_count,i)) {
+            DEBUG_PRINT_LOW("\n Found a Free Output Buffer %d",i);
+            break;
         }
     }
-    m_out_mem_ptr = (OMX_BUFFERHEADERTYPE  *)calloc(nBufHdrSize,1);
-    // Alloc mem for platform specific info
-    char *pPtr=NULL;
-    pPtr = (char*) calloc(nPlatformListSize + nPlatformEntrySize +
-                                     nPMEMInfoSize,1);
-    drv_ctx.ptr_outputbuffer = (struct vdec_bufferpayload *)\
-      calloc (sizeof(struct vdec_bufferpayload),
-      drv_ctx.op_buf.actualcount);
-    drv_ctx.ptr_respbuffer = (struct vdec_output_frameinfo  *)\
-      calloc (sizeof (struct vdec_output_frameinfo),
-      drv_ctx.op_buf.actualcount);
+
+    if (eRet == OMX_ErrorNone) {
+        if (i < drv_ctx.op_buf.actualcount) {
+            struct v4l2_buffer buf;
+            struct v4l2_plane plane[VIDEO_MAX_PLANES];
+            int rc;
+            m_pmem_info[i].offset = drv_ctx.ptr_outputbuffer[i].offset;
+
+            drv_ctx.ptr_outputbuffer[i].buffer_len =
+                drv_ctx.op_buf.buffer_size;
+
+            *bufferHdr = (m_out_mem_ptr + i );
+            if (secure_mode) {
+                drv_ctx.ptr_outputbuffer[i].bufferaddr = *bufferHdr;
+            }
+            drv_ctx.ptr_outputbuffer[i].mmaped_size = drv_ctx.op_buf.buffer_size;
+
+            buf.index = i;
+            buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+            buf.memory = V4L2_MEMORY_USERPTR;
+            plane[0].length = drv_ctx.op_buf.buffer_size;
+            plane[0].m.userptr = (unsigned long)drv_ctx.ptr_outputbuffer[i].bufferaddr -
+                (unsigned long)drv_ctx.ptr_outputbuffer[i].offset;
 #ifdef USE_ION
-    drv_ctx.op_buf_ion_info = (struct vdec_ion *)\
-      calloc (sizeof(struct vdec_ion),
-      drv_ctx.op_buf.actualcount);
+            plane[0].reserved[0] = drv_ctx.op_buf_ion_info[i].fd_ion_data.fd;
 #endif
-
-    if(m_out_mem_ptr && pPtr && drv_ctx.ptr_outputbuffer
-       && drv_ctx.ptr_respbuffer)
-    {
-      drv_ctx.ptr_outputbuffer[0].mmaped_size =
-        (drv_ctx.op_buf.buffer_size *
-         drv_ctx.op_buf.actualcount);
-      bufHdr          =  m_out_mem_ptr;
-      m_platform_list = (OMX_QCOM_PLATFORM_PRIVATE_LIST *)(pPtr);
-      m_platform_entry= (OMX_QCOM_PLATFORM_PRIVATE_ENTRY *)
-                        (((char *) m_platform_list)  + nPlatformListSize);
-      m_pmem_info     = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
-                        (((char *) m_platform_entry) + nPlatformEntrySize);
-      pPlatformList   = m_platform_list;
-      pPlatformEntry  = m_platform_entry;
-      pPMEMInfo       = m_pmem_info;
-
-      DEBUG_PRINT_LOW("Memory Allocation Succeeded for OUT port%p\n",m_out_mem_ptr);
-
-      // Settting the entire storage nicely
-      DEBUG_PRINT_LOW("bHdr %p OutMem %p PE %p\n",bufHdr, m_out_mem_ptr,pPlatformEntry);
-      DEBUG_PRINT_LOW(" Pmem Info = %p \n",pPMEMInfo);
-      for(i=0; i < drv_ctx.op_buf.actualcount ; i++)
-      {
-        bufHdr->nSize              = sizeof(OMX_BUFFERHEADERTYPE);
-        bufHdr->nVersion.nVersion  = OMX_SPEC_VERSION;
-        // Set the values when we determine the right HxW param
-        bufHdr->nAllocLen          = bytes;
-        bufHdr->nFilledLen         = 0;
-        bufHdr->pAppPrivate        = appData;
-        bufHdr->nOutputPortIndex   = OMX_CORE_OUTPUT_PORT_INDEX;
-        // Platform specific PMEM Information
-        // Initialize the Platform Entry
-        //DEBUG_PRINT_LOW("Initializing the Platform Entry for %d\n",i);
-        pPlatformEntry->type       = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
-        pPlatformEntry->entry      = pPMEMInfo;
-        // Initialize the Platform List
-        pPlatformList->nEntries    = 1;
-        pPlatformList->entryList   = pPlatformEntry;
-        // Keep pBuffer NULL till vdec is opened
-        bufHdr->pBuffer            = NULL;
-        bufHdr->nOffset            = 0;
-
-        pPMEMInfo->offset          =  drv_ctx.op_buf.buffer_size*i;
-        pPMEMInfo->pmem_fd = 0;
-        bufHdr->pPlatformPrivate = pPlatformList;
-
-        drv_ctx.ptr_outputbuffer[i].pmem_fd = pmem_fd;
-        m_pmem_info[i].pmem_fd = pmem_fd;
+            plane[0].reserved[1] = drv_ctx.ptr_outputbuffer[i].offset;
+            plane[0].data_offset = 0;
+            extra_idx = EXTRADATA_IDX(drv_ctx.num_planes);
+            if (extra_idx && (extra_idx < VIDEO_MAX_PLANES)) {
+                plane[extra_idx].length = drv_ctx.extradata_info.buffer_size;
+                plane[extra_idx].m.userptr = (long unsigned int) (drv_ctx.extradata_info.uaddr + i * drv_ctx.extradata_info.buffer_size);
 #ifdef USE_ION
-        drv_ctx.op_buf_ion_info[i].ion_device_fd = ion_device_fd;
-        drv_ctx.op_buf_ion_info[i].ion_alloc_data = ion_alloc_data;
-        drv_ctx.op_buf_ion_info[i].fd_ion_data = fd_ion_data;
+                plane[extra_idx].reserved[0] = drv_ctx.extradata_info.ion.fd_ion_data.fd;
 #endif
+                plane[extra_idx].reserved[1] = i * drv_ctx.extradata_info.buffer_size;
+                plane[extra_idx].data_offset = 0;
+            } else if (extra_idx >= VIDEO_MAX_PLANES) {
+                DEBUG_PRINT_ERROR("Extradata index higher than allowed: %d\n", extra_idx);
+                return OMX_ErrorBadParameter;
+            }
+            buf.m.planes = plane;
+            buf.length = drv_ctx.num_planes;
+            DEBUG_PRINT_LOW("\n Set the Output Buffer Idx: %d Addr: %x", i, drv_ctx.ptr_outputbuffer[i]);
+            rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_PREPARE_BUF, &buf);
+            if (rc) {
+                /*TODO: How to handle this case */
+                return OMX_ErrorInsufficientResources;
+            }
 
-        /*Create a mapping between buffers*/
-        bufHdr->pOutputPortPrivate = &drv_ctx.ptr_respbuffer[i];
-        drv_ctx.ptr_respbuffer[i].client_data = (void *)\
-                                            &drv_ctx.ptr_outputbuffer[i];
-        drv_ctx.ptr_outputbuffer[i].offset = drv_ctx.op_buf.buffer_size*i;
-        drv_ctx.ptr_outputbuffer[i].bufferaddr =
-          pmem_baseaddress + (drv_ctx.op_buf.buffer_size*i);
+            if (i == (drv_ctx.op_buf.actualcount -1 ) && !streaming[CAPTURE_PORT]) {
+                enum v4l2_buf_type buf_type;
+                buf_type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+                rc=ioctl(drv_ctx.video_driver_fd, VIDIOC_STREAMON,&buf_type);
+                if (rc) {
+                    return OMX_ErrorInsufficientResources;
+                } else {
+                    streaming[CAPTURE_PORT] = true;
+                    DEBUG_PRINT_LOW("\n STREAMON Successful \n ");
+                }
+            }
 
-        DEBUG_PRINT_LOW("\n pmem_fd = %d offset = %d address = %p",
-          pmem_fd, drv_ctx.ptr_outputbuffer[i].offset,
-          drv_ctx.ptr_outputbuffer[i].bufferaddr);
-        // Move the buffer and buffer header pointers
-        bufHdr++;
-        pPMEMInfo++;
-        pPlatformEntry++;
-        pPlatformList++;
-      }
+            (*bufferHdr)->pBuffer = (OMX_U8*)drv_ctx.ptr_outputbuffer[i].bufferaddr;
+            (*bufferHdr)->pAppPrivate = appData;
+            BITMASK_SET(&m_out_bm_count,i);
+        } else {
+            DEBUG_PRINT_ERROR("All the Output Buffers have been Allocated ; Returning Insufficient \n");
+            eRet = OMX_ErrorInsufficientResources;
+        }
     }
-    else
-    {
-      DEBUG_PRINT_ERROR("Output buf mem alloc failed[0x%p][0x%p]\n",\
-                                        m_out_mem_ptr, pPtr);
-      if(m_out_mem_ptr)
-      {
-        free(m_out_mem_ptr);
-        m_out_mem_ptr = NULL;
-      }
-      if(pPtr)
-      {
-        free(pPtr);
-        pPtr = NULL;
-      }
-      if(drv_ctx.ptr_outputbuffer)
-      {
-        free(drv_ctx.ptr_outputbuffer);
-        drv_ctx.ptr_outputbuffer = NULL;
-      }
-      if(drv_ctx.ptr_respbuffer)
-      {
-        free(drv_ctx.ptr_respbuffer);
-        drv_ctx.ptr_respbuffer = NULL;
-      }
-#ifdef USE_ION
-    if (drv_ctx.op_buf_ion_info) {
-        DEBUG_PRINT_LOW("\n Free o/p ion context");
-	free(drv_ctx.op_buf_ion_info);
-        drv_ctx.op_buf_ion_info = NULL;
-    }
-#endif
-      eRet =  OMX_ErrorInsufficientResources;
-    }
-    if (eRet == OMX_ErrorNone)
-      eRet = allocate_extradata();
-  }
 
-  for(i=0; i< drv_ctx.op_buf.actualcount; i++)
-  {
-    if(BITMASK_ABSENT(&m_out_bm_count,i))
-    {
-      DEBUG_PRINT_LOW("\n Found a Free Output Buffer %d",i);
-      break;
-    }
-  }
-
-  if (eRet == OMX_ErrorNone)
-  {
-    if(i < drv_ctx.op_buf.actualcount)
-    {
-      struct v4l2_buffer buf;
-      struct v4l2_plane plane[VIDEO_MAX_PLANES];
-      int rc;
-      m_pmem_info[i].offset = drv_ctx.ptr_outputbuffer[i].offset;
-
-      drv_ctx.ptr_outputbuffer[i].buffer_len =
-        drv_ctx.op_buf.buffer_size;
-
-    *bufferHdr = (m_out_mem_ptr + i );
-    if (secure_mode) {
-       drv_ctx.ptr_outputbuffer[i].bufferaddr = *bufferHdr;
-    }
-   drv_ctx.ptr_outputbuffer[i].mmaped_size = drv_ctx.op_buf.buffer_size;
-
-     buf.index = i;
-     buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-     buf.memory = V4L2_MEMORY_USERPTR;
-     plane[0].length = drv_ctx.op_buf.buffer_size;
-     plane[0].m.userptr = (unsigned long)drv_ctx.ptr_outputbuffer[i].bufferaddr -
-             (unsigned long)drv_ctx.ptr_outputbuffer[i].offset;
-#ifdef USE_ION
-     plane[0].reserved[0] = drv_ctx.op_buf_ion_info[i].fd_ion_data.fd;
-#endif
-     plane[0].reserved[1] = drv_ctx.ptr_outputbuffer[i].offset;
-     plane[0].data_offset = 0;
-     extra_idx = EXTRADATA_IDX(drv_ctx.num_planes);
-     if (extra_idx && (extra_idx < VIDEO_MAX_PLANES)) {
-       plane[extra_idx].length = drv_ctx.extradata_info.buffer_size;
-       plane[extra_idx].m.userptr = (long unsigned int) (drv_ctx.extradata_info.uaddr + i * drv_ctx.extradata_info.buffer_size);
-#ifdef USE_ION
-       plane[extra_idx].reserved[0] = drv_ctx.extradata_info.ion.fd_ion_data.fd;
-#endif
-       plane[extra_idx].reserved[1] = i * drv_ctx.extradata_info.buffer_size;
-       plane[extra_idx].data_offset = 0;
-     } else if (extra_idx >= VIDEO_MAX_PLANES) {
-       DEBUG_PRINT_ERROR("Extradata index higher than allowed: %d\n", extra_idx);
-       return OMX_ErrorBadParameter;
-     }
-     buf.m.planes = plane;
-     buf.length = drv_ctx.num_planes;
-     DEBUG_PRINT_LOW("\n Set the Output Buffer Idx: %d Addr: %x", i, drv_ctx.ptr_outputbuffer[i]);
-     rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_PREPARE_BUF, &buf);
-     if (rc) {
-       /*TODO: How to handle this case */
-       return OMX_ErrorInsufficientResources;
-     }
-
-	  if (i == (drv_ctx.op_buf.actualcount -1 ) && !streaming[CAPTURE_PORT]) {
-		enum v4l2_buf_type buf_type;
-		buf_type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		rc=ioctl(drv_ctx.video_driver_fd, VIDIOC_STREAMON,&buf_type);
-		if (rc) {
-			return OMX_ErrorInsufficientResources;
-		} else {
-			streaming[CAPTURE_PORT] = true;
-			DEBUG_PRINT_LOW("\n STREAMON Successful \n ");
-		}
-	  }
-
-      (*bufferHdr)->pBuffer = (OMX_U8*)drv_ctx.ptr_outputbuffer[i].bufferaddr;
-      (*bufferHdr)->pAppPrivate = appData;
-      BITMASK_SET(&m_out_bm_count,i);
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("All the Output Buffers have been Allocated ; Returning Insufficient \n");
-      eRet = OMX_ErrorInsufficientResources;
-    }
-  }
-
-  return eRet;
+    return eRet;
 }
 
 
 // AllocateBuffer  -- API Call
 /* ======================================================================
-FUNCTION
-  omx_vdec::AllocateBuffer
+   FUNCTION
+   omx_vdec::AllocateBuffer
 
-DESCRIPTION
-  Returns zero if all the buffers released..
+   DESCRIPTION
+   Returns zero if all the buffers released..
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::allocate_buffer(OMX_IN OMX_HANDLETYPE                hComp,
-                                     OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                                     OMX_IN OMX_U32                        port,
-                                     OMX_IN OMX_PTR                     appData,
-                                     OMX_IN OMX_U32                       bytes)
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                        port,
+        OMX_IN OMX_PTR                     appData,
+        OMX_IN OMX_U32                       bytes)
 {
     unsigned i = 0;
     OMX_ERRORTYPE eRet = OMX_ErrorNone; // OMX return type
 
     DEBUG_PRINT_LOW("\n Allocate buffer on port %d \n", (int)port);
-    if(m_state == OMX_StateInvalid)
-    {
+    if (m_state == OMX_StateInvalid) {
         DEBUG_PRINT_ERROR("Allocate Buf in Invalid State\n");
         return OMX_ErrorInvalidState;
     }
 
-    if(port == OMX_CORE_INPUT_PORT_INDEX)
-    {
-      if (arbitrary_bytes)
-      {
-          eRet = allocate_input_heap_buffer (hComp,bufferHdr,port,appData,bytes);
-      }
-      else
-      {
-        eRet = allocate_input_buffer(hComp,bufferHdr,port,appData,bytes);
-      }
-    }
-    else if(port == OMX_CORE_OUTPUT_PORT_INDEX)
-    {
+    if (port == OMX_CORE_INPUT_PORT_INDEX) {
+        if (arbitrary_bytes) {
+            eRet = allocate_input_heap_buffer (hComp,bufferHdr,port,appData,bytes);
+        } else {
+            eRet = allocate_input_buffer(hComp,bufferHdr,port,appData,bytes);
+        }
+    } else if (port == OMX_CORE_OUTPUT_PORT_INDEX) {
         eRet = client_buffers.allocate_buffers_color_convert(hComp,bufferHdr,port,
                 appData,bytes);
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("Error: Invalid Port Index received %d\n",(int)port);
-      eRet = OMX_ErrorBadPortIndex;
+    } else {
+        DEBUG_PRINT_ERROR("Error: Invalid Port Index received %d\n",(int)port);
+        eRet = OMX_ErrorBadPortIndex;
     }
     DEBUG_PRINT_LOW("Checking for Output Allocate buffer Done");
-    if(eRet == OMX_ErrorNone)
-    {
-        if(allocate_done()){
-            if(BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
-            {
+    if (eRet == OMX_ErrorNone) {
+        if (allocate_done()) {
+            if (BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING)) {
                 // Send the callback now
                 BITMASK_CLEAR((&m_flags),OMX_COMPONENT_IDLE_PENDING);
                 post_event(OMX_CommandStateSet,OMX_StateIdle,
-                                   OMX_COMPONENT_GENERATE_EVENT);
+                        OMX_COMPONENT_GENERATE_EVENT);
             }
         }
-        if(port == OMX_CORE_INPUT_PORT_INDEX && m_inp_bPopulated)
-        {
-          if(BITMASK_PRESENT(&m_flags,OMX_COMPONENT_INPUT_ENABLE_PENDING))
-          {
-             BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_ENABLE_PENDING);
-             post_event(OMX_CommandPortEnable,
+        if (port == OMX_CORE_INPUT_PORT_INDEX && m_inp_bPopulated) {
+            if (BITMASK_PRESENT(&m_flags,OMX_COMPONENT_INPUT_ENABLE_PENDING)) {
+                BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_ENABLE_PENDING);
+                post_event(OMX_CommandPortEnable,
                         OMX_CORE_INPUT_PORT_INDEX,
                         OMX_COMPONENT_GENERATE_EVENT);
-          }
+            }
         }
-        if(port == OMX_CORE_OUTPUT_PORT_INDEX && m_out_bPopulated)
-            {
-          if(BITMASK_PRESENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING))
-          {
-             BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
+        if (port == OMX_CORE_OUTPUT_PORT_INDEX && m_out_bPopulated) {
+            if (BITMASK_PRESENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING)) {
+                BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
                 post_event(OMX_CommandPortEnable,
-                           OMX_CORE_OUTPUT_PORT_INDEX,
-                           OMX_COMPONENT_GENERATE_EVENT);
+                        OMX_CORE_OUTPUT_PORT_INDEX,
+                        OMX_COMPONENT_GENERATE_EVENT);
             }
         }
     }
@@ -5304,172 +4749,140 @@
 
 // Free Buffer - API call
 /* ======================================================================
-FUNCTION
-  omx_vdec::FreeBuffer
+   FUNCTION
+   omx_vdec::FreeBuffer
 
-DESCRIPTION
+   DESCRIPTION
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::free_buffer(OMX_IN OMX_HANDLETYPE         hComp,
-                                      OMX_IN OMX_U32                 port,
-                                      OMX_IN OMX_BUFFERHEADERTYPE* buffer)
+        OMX_IN OMX_U32                 port,
+        OMX_IN OMX_BUFFERHEADERTYPE* buffer)
 {
     OMX_ERRORTYPE eRet = OMX_ErrorNone;
     unsigned int nPortIndex;
     DEBUG_PRINT_LOW("In for decoder free_buffer \n");
 
-    if(m_state == OMX_StateIdle &&
-       (BITMASK_PRESENT(&m_flags ,OMX_COMPONENT_LOADING_PENDING)))
-    {
+    if (m_state == OMX_StateIdle &&
+            (BITMASK_PRESENT(&m_flags ,OMX_COMPONENT_LOADING_PENDING))) {
         DEBUG_PRINT_LOW(" free buffer while Component in Loading pending\n");
-    }
-    else if((m_inp_bEnabled == OMX_FALSE && port == OMX_CORE_INPUT_PORT_INDEX)||
-            (m_out_bEnabled == OMX_FALSE && port == OMX_CORE_OUTPUT_PORT_INDEX))
-    {
+    } else if ((m_inp_bEnabled == OMX_FALSE && port == OMX_CORE_INPUT_PORT_INDEX)||
+            (m_out_bEnabled == OMX_FALSE && port == OMX_CORE_OUTPUT_PORT_INDEX)) {
         DEBUG_PRINT_LOW("Free Buffer while port %d disabled\n", port);
-    }
-    else if ((port == OMX_CORE_INPUT_PORT_INDEX &&
-              BITMASK_PRESENT(&m_flags, OMX_COMPONENT_INPUT_ENABLE_PENDING)) ||
-             (port == OMX_CORE_OUTPUT_PORT_INDEX &&
-              BITMASK_PRESENT(&m_flags, OMX_COMPONENT_OUTPUT_ENABLE_PENDING)))
-    {
+    } else if ((port == OMX_CORE_INPUT_PORT_INDEX &&
+                BITMASK_PRESENT(&m_flags, OMX_COMPONENT_INPUT_ENABLE_PENDING)) ||
+            (port == OMX_CORE_OUTPUT_PORT_INDEX &&
+             BITMASK_PRESENT(&m_flags, OMX_COMPONENT_OUTPUT_ENABLE_PENDING))) {
         DEBUG_PRINT_LOW("Free Buffer while port %d enable pending\n", port);
-    }
-    else if(m_state == OMX_StateExecuting || m_state == OMX_StatePause)
-    {
+    } else if (m_state == OMX_StateExecuting || m_state == OMX_StatePause) {
         DEBUG_PRINT_ERROR("Invalid state to free buffer,ports need to be disabled\n");
         post_event(OMX_EventError,
-                   OMX_ErrorPortUnpopulated,
-                   OMX_COMPONENT_GENERATE_EVENT);
+                OMX_ErrorPortUnpopulated,
+                OMX_COMPONENT_GENERATE_EVENT);
 
         return OMX_ErrorIncorrectStateOperation;
-    }
-    else if (m_state != OMX_StateInvalid)
-    {
+    } else if (m_state != OMX_StateInvalid) {
         DEBUG_PRINT_ERROR("Invalid state to free buffer,port lost Buffers\n");
         post_event(OMX_EventError,
-                   OMX_ErrorPortUnpopulated,
-                   OMX_COMPONENT_GENERATE_EVENT);
+                OMX_ErrorPortUnpopulated,
+                OMX_COMPONENT_GENERATE_EVENT);
     }
 
-    if(port == OMX_CORE_INPUT_PORT_INDEX)
-    {
-      /*Check if arbitrary bytes*/
-      if(!arbitrary_bytes && !input_use_buffer)
-        nPortIndex = buffer - m_inp_mem_ptr;
-      else
-        nPortIndex = buffer - m_inp_heap_ptr;
+    if (port == OMX_CORE_INPUT_PORT_INDEX) {
+        /*Check if arbitrary bytes*/
+        if (!arbitrary_bytes && !input_use_buffer)
+            nPortIndex = buffer - m_inp_mem_ptr;
+        else
+            nPortIndex = buffer - m_inp_heap_ptr;
 
         DEBUG_PRINT_LOW("free_buffer on i/p port - Port idx %d \n", nPortIndex);
-        if(nPortIndex < drv_ctx.ip_buf.actualcount)
-        {
-         // Clear the bit associated with it.
-         BITMASK_CLEAR(&m_inp_bm_count,nPortIndex);
-         BITMASK_CLEAR(&m_heap_inp_bm_count,nPortIndex);
-         if (input_use_buffer == true)
-         {
+        if (nPortIndex < drv_ctx.ip_buf.actualcount) {
+            // Clear the bit associated with it.
+            BITMASK_CLEAR(&m_inp_bm_count,nPortIndex);
+            BITMASK_CLEAR(&m_heap_inp_bm_count,nPortIndex);
+            if (input_use_buffer == true) {
 
-            DEBUG_PRINT_LOW("\n Free pmem Buffer index %d",nPortIndex);
-            if(m_phdr_pmem_ptr)
-              free_input_buffer(m_phdr_pmem_ptr[nPortIndex]);
-         }
-         else
-         {
-            if (arbitrary_bytes)
-            {
-              if(m_phdr_pmem_ptr)
-                free_input_buffer(nPortIndex,m_phdr_pmem_ptr[nPortIndex]);
-              else
-                free_input_buffer(nPortIndex,NULL);
+                DEBUG_PRINT_LOW("\n Free pmem Buffer index %d",nPortIndex);
+                if (m_phdr_pmem_ptr)
+                    free_input_buffer(m_phdr_pmem_ptr[nPortIndex]);
+            } else {
+                if (arbitrary_bytes) {
+                    if (m_phdr_pmem_ptr)
+                        free_input_buffer(nPortIndex,m_phdr_pmem_ptr[nPortIndex]);
+                    else
+                        free_input_buffer(nPortIndex,NULL);
+                } else
+                    free_input_buffer(buffer);
             }
-            else
-              free_input_buffer(buffer);
-         }
-         m_inp_bPopulated = OMX_FALSE;
-         /*Free the Buffer Header*/
-          if (release_input_done())
-          {
-            DEBUG_PRINT_HIGH("\n ALL input buffers are freed/released");
-            free_input_buffer_header();
-          }
-        }
-        else
-        {
+            m_inp_bPopulated = OMX_FALSE;
+            /*Free the Buffer Header*/
+            if (release_input_done()) {
+                DEBUG_PRINT_HIGH("\n ALL input buffers are freed/released");
+                free_input_buffer_header();
+            }
+        } else {
             DEBUG_PRINT_ERROR("Error: free_buffer ,Port Index Invalid\n");
             eRet = OMX_ErrorBadPortIndex;
         }
 
-        if(BITMASK_PRESENT((&m_flags),OMX_COMPONENT_INPUT_DISABLE_PENDING)
-           && release_input_done())
-        {
+        if (BITMASK_PRESENT((&m_flags),OMX_COMPONENT_INPUT_DISABLE_PENDING)
+                && release_input_done()) {
             DEBUG_PRINT_LOW("MOVING TO DISABLED STATE \n");
             BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_DISABLE_PENDING);
             post_event(OMX_CommandPortDisable,
-                       OMX_CORE_INPUT_PORT_INDEX,
-                       OMX_COMPONENT_GENERATE_EVENT);
+                    OMX_CORE_INPUT_PORT_INDEX,
+                    OMX_COMPONENT_GENERATE_EVENT);
         }
-    }
-    else if(port == OMX_CORE_OUTPUT_PORT_INDEX)
-    {
+    } else if (port == OMX_CORE_OUTPUT_PORT_INDEX) {
         // check if the buffer is valid
         nPortIndex = buffer - client_buffers.get_il_buf_hdr();
-        if(nPortIndex < drv_ctx.op_buf.actualcount)
-        {
+        if (nPortIndex < drv_ctx.op_buf.actualcount) {
             DEBUG_PRINT_LOW("free_buffer on o/p port - Port idx %d \n", nPortIndex);
             // Clear the bit associated with it.
             BITMASK_CLEAR(&m_out_bm_count,nPortIndex);
             m_out_bPopulated = OMX_FALSE;
             client_buffers.free_output_buffer (buffer);
 
-            if (release_output_done())
-            {
-              free_output_buffer_header();
+            if (release_output_done()) {
+                free_output_buffer_header();
             }
-        }
-        else
-        {
+        } else {
             DEBUG_PRINT_ERROR("Error: free_buffer , Port Index Invalid\n");
             eRet = OMX_ErrorBadPortIndex;
         }
-        if(BITMASK_PRESENT((&m_flags),OMX_COMPONENT_OUTPUT_DISABLE_PENDING)
-           && release_output_done())
-        {
+        if (BITMASK_PRESENT((&m_flags),OMX_COMPONENT_OUTPUT_DISABLE_PENDING)
+                && release_output_done()) {
             DEBUG_PRINT_LOW("FreeBuffer : If any Disable event pending,post it\n");
 
-                DEBUG_PRINT_LOW("MOVING TO DISABLED STATE \n");
-                BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_DISABLE_PENDING);
+            DEBUG_PRINT_LOW("MOVING TO DISABLED STATE \n");
+            BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_DISABLE_PENDING);
 #ifdef _ANDROID_ICS_
-                if (m_enable_android_native_buffers)
-                {
-                    DEBUG_PRINT_LOW("FreeBuffer - outport disabled: reset native buffers");
-                    memset(&native_buffer, 0 ,(sizeof(struct nativebuffer) * MAX_NUM_INPUT_OUTPUT_BUFFERS));
-                }
+            if (m_enable_android_native_buffers) {
+                DEBUG_PRINT_LOW("FreeBuffer - outport disabled: reset native buffers");
+                memset(&native_buffer, 0 ,(sizeof(struct nativebuffer) * MAX_NUM_INPUT_OUTPUT_BUFFERS));
+            }
 #endif
 
-                post_event(OMX_CommandPortDisable,
-                           OMX_CORE_OUTPUT_PORT_INDEX,
-                           OMX_COMPONENT_GENERATE_EVENT);
+            post_event(OMX_CommandPortDisable,
+                    OMX_CORE_OUTPUT_PORT_INDEX,
+                    OMX_COMPONENT_GENERATE_EVENT);
         }
-    }
-    else
-    {
+    } else {
         eRet = OMX_ErrorBadPortIndex;
     }
-    if((eRet == OMX_ErrorNone) &&
-       (BITMASK_PRESENT(&m_flags ,OMX_COMPONENT_LOADING_PENDING)))
-    {
-        if(release_done())
-        {
+    if ((eRet == OMX_ErrorNone) &&
+            (BITMASK_PRESENT(&m_flags ,OMX_COMPONENT_LOADING_PENDING))) {
+        if (release_done()) {
             // Send the callback now
             BITMASK_CLEAR((&m_flags),OMX_COMPONENT_LOADING_PENDING);
             post_event(OMX_CommandStateSet, OMX_StateLoaded,
-                                      OMX_COMPONENT_GENERATE_EVENT);
+                    OMX_COMPONENT_GENERATE_EVENT);
         }
     }
     return eRet;
@@ -5477,487 +4890,437 @@
 
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::EmptyThisBuffer
+   FUNCTION
+   omx_vdec::EmptyThisBuffer
 
-DESCRIPTION
-  This routine is used to push the encoded video frames to
-  the video decoder.
+   DESCRIPTION
+   This routine is used to push the encoded video frames to
+   the video decoder.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  OMX Error None if everything went successful.
+   RETURN VALUE
+   OMX Error None if everything went successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::empty_this_buffer(OMX_IN OMX_HANDLETYPE         hComp,
-                                           OMX_IN OMX_BUFFERHEADERTYPE* buffer)
+        OMX_IN OMX_BUFFERHEADERTYPE* buffer)
 {
-  OMX_ERRORTYPE ret1 = OMX_ErrorNone;
-  unsigned int nBufferIndex = drv_ctx.ip_buf.actualcount;
+    OMX_ERRORTYPE ret1 = OMX_ErrorNone;
+    unsigned int nBufferIndex = drv_ctx.ip_buf.actualcount;
 
-  if(m_state == OMX_StateInvalid)
-  {
-      DEBUG_PRINT_ERROR("Empty this buffer in Invalid State\n");
-      return OMX_ErrorInvalidState;
-  }
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("Empty this buffer in Invalid State\n");
+        return OMX_ErrorInvalidState;
+    }
 
-  if (buffer == NULL)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:ETB Buffer is NULL");
-    return OMX_ErrorBadParameter;
-  }
+    if (buffer == NULL) {
+        DEBUG_PRINT_ERROR("\nERROR:ETB Buffer is NULL");
+        return OMX_ErrorBadParameter;
+    }
 
-  if (!m_inp_bEnabled)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:ETB incorrect state operation, input port is disabled.");
-    return OMX_ErrorIncorrectStateOperation;
-  }
+    if (!m_inp_bEnabled) {
+        DEBUG_PRINT_ERROR("\nERROR:ETB incorrect state operation, input port is disabled.");
+        return OMX_ErrorIncorrectStateOperation;
+    }
 
-  if (buffer->nInputPortIndex != OMX_CORE_INPUT_PORT_INDEX)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:ETB invalid port in header %lu", buffer->nInputPortIndex);
-    return OMX_ErrorBadPortIndex;
-  }
+    if (buffer->nInputPortIndex != OMX_CORE_INPUT_PORT_INDEX) {
+        DEBUG_PRINT_ERROR("\nERROR:ETB invalid port in header %lu", buffer->nInputPortIndex);
+        return OMX_ErrorBadPortIndex;
+    }
 
 #ifdef _ANDROID_
-  if(iDivXDrmDecrypt)
-  {
-    OMX_ERRORTYPE drmErr = iDivXDrmDecrypt->Decrypt(buffer);
-    if(drmErr != OMX_ErrorNone) {
-        // this error can be ignored
-        DEBUG_PRINT_LOW("\nERROR:iDivXDrmDecrypt->Decrypt %d", drmErr);
+    if (iDivXDrmDecrypt) {
+        OMX_ERRORTYPE drmErr = iDivXDrmDecrypt->Decrypt(buffer);
+        if (drmErr != OMX_ErrorNone) {
+            // this error can be ignored
+            DEBUG_PRINT_LOW("\nERROR:iDivXDrmDecrypt->Decrypt %d", drmErr);
+        }
     }
-  }
 #endif //_ANDROID_
-  if (perf_flag)
-  {
-    if (!latency)
-    {
-      dec_time.stop();
-      latency = dec_time.processing_time_us();
-      dec_time.start();
+    if (perf_flag) {
+        if (!latency) {
+            dec_time.stop();
+            latency = dec_time.processing_time_us();
+            dec_time.start();
+        }
     }
-  }
 
-  if (arbitrary_bytes)
-  {
-    nBufferIndex = buffer - m_inp_heap_ptr;
-  }
-  else
-  {
-     if (input_use_buffer == true)
-     {
-       nBufferIndex = buffer - m_inp_heap_ptr;
-       m_inp_mem_ptr[nBufferIndex].nFilledLen = m_inp_heap_ptr[nBufferIndex].nFilledLen;
-       m_inp_mem_ptr[nBufferIndex].nTimeStamp = m_inp_heap_ptr[nBufferIndex].nTimeStamp;
-       m_inp_mem_ptr[nBufferIndex].nFlags = m_inp_heap_ptr[nBufferIndex].nFlags;
-       buffer = &m_inp_mem_ptr[nBufferIndex];
-       DEBUG_PRINT_LOW("Non-Arbitrary mode - buffer address is: malloc %p, pmem%p in Index %d, buffer %p of size %d",
-                         &m_inp_heap_ptr[nBufferIndex], &m_inp_mem_ptr[nBufferIndex],nBufferIndex, buffer, buffer->nFilledLen);
-     }
-     else{
-       nBufferIndex = buffer - m_inp_mem_ptr;
-     }
-  }
+    if (arbitrary_bytes) {
+        nBufferIndex = buffer - m_inp_heap_ptr;
+    } else {
+        if (input_use_buffer == true) {
+            nBufferIndex = buffer - m_inp_heap_ptr;
+            m_inp_mem_ptr[nBufferIndex].nFilledLen = m_inp_heap_ptr[nBufferIndex].nFilledLen;
+            m_inp_mem_ptr[nBufferIndex].nTimeStamp = m_inp_heap_ptr[nBufferIndex].nTimeStamp;
+            m_inp_mem_ptr[nBufferIndex].nFlags = m_inp_heap_ptr[nBufferIndex].nFlags;
+            buffer = &m_inp_mem_ptr[nBufferIndex];
+            DEBUG_PRINT_LOW("Non-Arbitrary mode - buffer address is: malloc %p, pmem%p in Index %d, buffer %p of size %d",
+                    &m_inp_heap_ptr[nBufferIndex], &m_inp_mem_ptr[nBufferIndex],nBufferIndex, buffer, buffer->nFilledLen);
+        } else {
+            nBufferIndex = buffer - m_inp_mem_ptr;
+        }
+    }
 
-  if (nBufferIndex > drv_ctx.ip_buf.actualcount )
-  {
-    DEBUG_PRINT_ERROR("\nERROR:ETB nBufferIndex is invalid");
-    return OMX_ErrorBadParameter;
-  }
+    if (nBufferIndex > drv_ctx.ip_buf.actualcount ) {
+        DEBUG_PRINT_ERROR("\nERROR:ETB nBufferIndex is invalid");
+        return OMX_ErrorBadParameter;
+    }
 
-  DEBUG_PRINT_LOW("[ETB] BHdr(%p) pBuf(%p) nTS(%lld) nFL(%lu)",
-    buffer, buffer->pBuffer, buffer->nTimeStamp, buffer->nFilledLen);
-  if (arbitrary_bytes)
-  {
-    post_event ((unsigned)hComp,(unsigned)buffer,
+    DEBUG_PRINT_LOW("[ETB] BHdr(%p) pBuf(%p) nTS(%lld) nFL(%lu)",
+            buffer, buffer->pBuffer, buffer->nTimeStamp, buffer->nFilledLen);
+    if (arbitrary_bytes) {
+        post_event ((unsigned)hComp,(unsigned)buffer,
                 OMX_COMPONENT_GENERATE_ETB_ARBITRARY);
-  }
-  else
-  {
-    if (!(client_extradata & OMX_TIMEINFO_EXTRADATA))
-      set_frame_rate(buffer->nTimeStamp);
-    post_event ((unsigned)hComp,(unsigned)buffer,OMX_COMPONENT_GENERATE_ETB);
-  }
-  return OMX_ErrorNone;
+    } else {
+        if (!(client_extradata & OMX_TIMEINFO_EXTRADATA))
+            set_frame_rate(buffer->nTimeStamp);
+        post_event ((unsigned)hComp,(unsigned)buffer,OMX_COMPONENT_GENERATE_ETB);
+    }
+    return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::empty_this_buffer_proxy
+   FUNCTION
+   omx_vdec::empty_this_buffer_proxy
 
-DESCRIPTION
-  This routine is used to push the encoded video frames to
-  the video decoder.
+   DESCRIPTION
+   This routine is used to push the encoded video frames to
+   the video decoder.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  OMX Error None if everything went successful.
+   RETURN VALUE
+   OMX Error None if everything went successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::empty_this_buffer_proxy(OMX_IN OMX_HANDLETYPE         hComp,
-                                                 OMX_IN OMX_BUFFERHEADERTYPE* buffer)
+        OMX_IN OMX_BUFFERHEADERTYPE* buffer)
 {
-  int push_cnt = 0,i=0;
-  unsigned nPortIndex = 0;
-  OMX_ERRORTYPE ret = OMX_ErrorNone;
-  struct vdec_input_frameinfo frameinfo;
-  struct vdec_bufferpayload *temp_buffer;
-  struct vdec_seqheader seq_header;
-  bool port_setting_changed = true;
-  bool not_coded_vop = false;
+    int push_cnt = 0,i=0;
+    unsigned nPortIndex = 0;
+    OMX_ERRORTYPE ret = OMX_ErrorNone;
+    struct vdec_input_frameinfo frameinfo;
+    struct vdec_bufferpayload *temp_buffer;
+    struct vdec_seqheader seq_header;
+    bool port_setting_changed = true;
+    bool not_coded_vop = false;
 
-  /*Should we generate a Aync error event*/
-  if (buffer == NULL || buffer->pInputPortPrivate == NULL)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:empty_this_buffer_proxy is invalid");
-    return OMX_ErrorBadParameter;
-  }
+    /*Should we generate a Aync error event*/
+    if (buffer == NULL || buffer->pInputPortPrivate == NULL) {
+        DEBUG_PRINT_ERROR("\nERROR:empty_this_buffer_proxy is invalid");
+        return OMX_ErrorBadParameter;
+    }
 
-  nPortIndex = buffer-((OMX_BUFFERHEADERTYPE *)m_inp_mem_ptr);
+    nPortIndex = buffer-((OMX_BUFFERHEADERTYPE *)m_inp_mem_ptr);
 
-  if (nPortIndex > drv_ctx.ip_buf.actualcount)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:empty_this_buffer_proxy invalid nPortIndex[%u]",
-        nPortIndex);
-    return OMX_ErrorBadParameter;
-  }
+    if (nPortIndex > drv_ctx.ip_buf.actualcount) {
+        DEBUG_PRINT_ERROR("\nERROR:empty_this_buffer_proxy invalid nPortIndex[%u]",
+                nPortIndex);
+        return OMX_ErrorBadParameter;
+    }
 
-  pending_input_buffers++;
+    pending_input_buffers++;
 
-  /* return zero length and not an EOS buffer */
-  if (!arbitrary_bytes && (buffer->nFilledLen == 0) &&
-     ((buffer->nFlags & OMX_BUFFERFLAG_EOS) == 0))
-  {
-    DEBUG_PRINT_HIGH("\n return zero legth buffer");
-    post_event ((unsigned int)buffer,VDEC_S_SUCCESS,
-                     OMX_COMPONENT_GENERATE_EBD);
-    return OMX_ErrorNone;
-  }
+    /* return zero length and not an EOS buffer */
+    if (!arbitrary_bytes && (buffer->nFilledLen == 0) &&
+            ((buffer->nFlags & OMX_BUFFERFLAG_EOS) == 0)) {
+        DEBUG_PRINT_HIGH("\n return zero legth buffer");
+        post_event ((unsigned int)buffer,VDEC_S_SUCCESS,
+                OMX_COMPONENT_GENERATE_EBD);
+        return OMX_ErrorNone;
+    }
 
 
-  if(codec_type_parse == CODEC_TYPE_MPEG4 || codec_type_parse == CODEC_TYPE_DIVX){
-    mp4StreamType psBits;
-    psBits.data = (unsigned char *)(buffer->pBuffer + buffer->nOffset);
-    psBits.numBytes = buffer->nFilledLen;
-    mp4_headerparser.parseHeader(&psBits);
-    not_coded_vop = mp4_headerparser.is_notcodec_vop(
-            (buffer->pBuffer + buffer->nOffset),buffer->nFilledLen);
-    if(not_coded_vop) {
-        DEBUG_PRINT_HIGH("\n Found Not coded vop len %lu frame number %u",
-             buffer->nFilledLen,frame_count);
-        if(buffer->nFlags & OMX_BUFFERFLAG_EOS){
-          DEBUG_PRINT_HIGH("\n Eos and Not coded Vop set len to zero");
-          not_coded_vop = false;
-          buffer->nFilledLen = 0;
+    if (codec_type_parse == CODEC_TYPE_MPEG4 || codec_type_parse == CODEC_TYPE_DIVX) {
+        mp4StreamType psBits;
+        psBits.data = (unsigned char *)(buffer->pBuffer + buffer->nOffset);
+        psBits.numBytes = buffer->nFilledLen;
+        mp4_headerparser.parseHeader(&psBits);
+        not_coded_vop = mp4_headerparser.is_notcodec_vop(
+                (buffer->pBuffer + buffer->nOffset),buffer->nFilledLen);
+        if (not_coded_vop) {
+            DEBUG_PRINT_HIGH("\n Found Not coded vop len %lu frame number %u",
+                    buffer->nFilledLen,frame_count);
+            if (buffer->nFlags & OMX_BUFFERFLAG_EOS) {
+                DEBUG_PRINT_HIGH("\n Eos and Not coded Vop set len to zero");
+                not_coded_vop = false;
+                buffer->nFilledLen = 0;
+            }
         }
     }
-  }
 
-  if(input_flush_progress == true
+    if (input_flush_progress == true
 
-     || not_coded_vop
+            || not_coded_vop
 
-     )
-  {
-    DEBUG_PRINT_LOW("\n Flush in progress return buffer ");
-    post_event ((unsigned int)buffer,VDEC_S_SUCCESS,
-                     OMX_COMPONENT_GENERATE_EBD);
-    return OMX_ErrorNone;
-  }
-
-  temp_buffer = (struct vdec_bufferpayload *)buffer->pInputPortPrivate;
-
-  if ((temp_buffer -  drv_ctx.ptr_inputbuffer) > drv_ctx.ip_buf.actualcount)
-  {
-    return OMX_ErrorBadParameter;
-  }
-
-  DEBUG_PRINT_LOW("\n ETBProxy: bufhdr = %p, bufhdr->pBuffer = %p", buffer, buffer->pBuffer);
-  /*for use buffer we need to memcpy the data*/
-  temp_buffer->buffer_len = buffer->nFilledLen;
-
-  if (input_use_buffer)
-  {
-    if (buffer->nFilledLen <= temp_buffer->buffer_len)
-    {
-      if(arbitrary_bytes)
-      {
-        memcpy (temp_buffer->bufferaddr, (buffer->pBuffer + buffer->nOffset),buffer->nFilledLen);
-      }
-      else
-      {
-        memcpy (temp_buffer->bufferaddr, (m_inp_heap_ptr[nPortIndex].pBuffer + m_inp_heap_ptr[nPortIndex].nOffset),
-                buffer->nFilledLen);
-      }
-    }
-    else
-    {
-      return OMX_ErrorBadParameter;
+       ) {
+        DEBUG_PRINT_LOW("\n Flush in progress return buffer ");
+        post_event ((unsigned int)buffer,VDEC_S_SUCCESS,
+                OMX_COMPONENT_GENERATE_EBD);
+        return OMX_ErrorNone;
     }
 
-  }
+    temp_buffer = (struct vdec_bufferpayload *)buffer->pInputPortPrivate;
 
-  frameinfo.bufferaddr = temp_buffer->bufferaddr;
-  frameinfo.client_data = (void *) buffer;
-  frameinfo.datalen = temp_buffer->buffer_len;
-  frameinfo.flags = 0;
-  frameinfo.offset = buffer->nOffset;
-  frameinfo.pmem_fd = temp_buffer->pmem_fd;
-  frameinfo.pmem_offset = temp_buffer->offset;
-  frameinfo.timestamp = buffer->nTimeStamp;
-  if (drv_ctx.disable_dmx && m_desc_buffer_ptr && m_desc_buffer_ptr[nPortIndex].buf_addr)
-  {
-    DEBUG_PRINT_LOW("ETB: dmx enabled");
-    if (m_demux_entries == 0)
-    {
-      extract_demux_addr_offsets(buffer);
+    if ((temp_buffer -  drv_ctx.ptr_inputbuffer) > drv_ctx.ip_buf.actualcount) {
+        return OMX_ErrorBadParameter;
     }
 
-    DEBUG_PRINT_LOW("ETB: handle_demux_data - entries=%d",m_demux_entries);
-    handle_demux_data(buffer);
-    frameinfo.desc_addr = (OMX_U8 *)m_desc_buffer_ptr[nPortIndex].buf_addr;
-    frameinfo.desc_size = m_desc_buffer_ptr[nPortIndex].desc_data_size;
-  }
-  else
-  {
-    frameinfo.desc_addr = NULL;
-    frameinfo.desc_size = 0;
-  }
-  if(!arbitrary_bytes)
-  {
-      frameinfo.flags |= buffer->nFlags;
-  }
+    DEBUG_PRINT_LOW("\n ETBProxy: bufhdr = %p, bufhdr->pBuffer = %p", buffer, buffer->pBuffer);
+    /*for use buffer we need to memcpy the data*/
+    temp_buffer->buffer_len = buffer->nFilledLen;
+
+    if (input_use_buffer) {
+        if (buffer->nFilledLen <= temp_buffer->buffer_len) {
+            if (arbitrary_bytes) {
+                memcpy (temp_buffer->bufferaddr, (buffer->pBuffer + buffer->nOffset),buffer->nFilledLen);
+            } else {
+                memcpy (temp_buffer->bufferaddr, (m_inp_heap_ptr[nPortIndex].pBuffer + m_inp_heap_ptr[nPortIndex].nOffset),
+                        buffer->nFilledLen);
+            }
+        } else {
+            return OMX_ErrorBadParameter;
+        }
+
+    }
+
+    frameinfo.bufferaddr = temp_buffer->bufferaddr;
+    frameinfo.client_data = (void *) buffer;
+    frameinfo.datalen = temp_buffer->buffer_len;
+    frameinfo.flags = 0;
+    frameinfo.offset = buffer->nOffset;
+    frameinfo.pmem_fd = temp_buffer->pmem_fd;
+    frameinfo.pmem_offset = temp_buffer->offset;
+    frameinfo.timestamp = buffer->nTimeStamp;
+    if (drv_ctx.disable_dmx && m_desc_buffer_ptr && m_desc_buffer_ptr[nPortIndex].buf_addr) {
+        DEBUG_PRINT_LOW("ETB: dmx enabled");
+        if (m_demux_entries == 0) {
+            extract_demux_addr_offsets(buffer);
+        }
+
+        DEBUG_PRINT_LOW("ETB: handle_demux_data - entries=%d",m_demux_entries);
+        handle_demux_data(buffer);
+        frameinfo.desc_addr = (OMX_U8 *)m_desc_buffer_ptr[nPortIndex].buf_addr;
+        frameinfo.desc_size = m_desc_buffer_ptr[nPortIndex].desc_data_size;
+    } else {
+        frameinfo.desc_addr = NULL;
+        frameinfo.desc_size = 0;
+    }
+    if (!arbitrary_bytes) {
+        frameinfo.flags |= buffer->nFlags;
+    }
 
 #ifdef _ANDROID_
-  if (m_debug_timestamp)
-  {
-    if(arbitrary_bytes)
-    {
-      DEBUG_PRINT_LOW("\n Inserting TIMESTAMP (%lld) into queue", buffer->nTimeStamp);
-      m_timestamp_list.insert_ts(buffer->nTimeStamp);
+    if (m_debug_timestamp) {
+        if (arbitrary_bytes) {
+            DEBUG_PRINT_LOW("\n Inserting TIMESTAMP (%lld) into queue", buffer->nTimeStamp);
+            m_timestamp_list.insert_ts(buffer->nTimeStamp);
+        } else if (!arbitrary_bytes && !(buffer->nFlags & OMX_BUFFERFLAG_CODECCONFIG)) {
+            DEBUG_PRINT_LOW("\n Inserting TIMESTAMP (%lld) into queue", buffer->nTimeStamp);
+            m_timestamp_list.insert_ts(buffer->nTimeStamp);
+        }
     }
-    else if(!arbitrary_bytes && !(buffer->nFlags & OMX_BUFFERFLAG_CODECCONFIG))
-    {
-      DEBUG_PRINT_LOW("\n Inserting TIMESTAMP (%lld) into queue", buffer->nTimeStamp);
-      m_timestamp_list.insert_ts(buffer->nTimeStamp);
-    }
-  }
 #endif
 
 #ifdef INPUT_BUFFER_LOG
-  if (inputBufferFile1)
-  {
-    fwrite((const char *)temp_buffer->bufferaddr,
-      temp_buffer->buffer_len,1,inputBufferFile1);
-  }
+    if (inputBufferFile1) {
+        fwrite((const char *)temp_buffer->bufferaddr,
+                temp_buffer->buffer_len,1,inputBufferFile1);
+    }
 #endif
 
-  if(buffer->nFlags & QOMX_VIDEO_BUFFERFLAG_EOSEQ)
-  {
-    frameinfo.flags |= QOMX_VIDEO_BUFFERFLAG_EOSEQ;
-    buffer->nFlags &= ~QOMX_VIDEO_BUFFERFLAG_EOSEQ;
-  }
+    if (buffer->nFlags & QOMX_VIDEO_BUFFERFLAG_EOSEQ) {
+        frameinfo.flags |= QOMX_VIDEO_BUFFERFLAG_EOSEQ;
+        buffer->nFlags &= ~QOMX_VIDEO_BUFFERFLAG_EOSEQ;
+    }
 
-  if (temp_buffer->buffer_len == 0 || (buffer->nFlags & OMX_BUFFERFLAG_EOS))
-  {
-    DEBUG_PRINT_HIGH("\n Rxd i/p EOS, Notify Driver that EOS has been reached");
-    frameinfo.flags |= VDEC_BUFFERFLAG_EOS;
-    h264_scratch.nFilledLen = 0;
-    nal_count = 0;
-    look_ahead_nal = false;
-    frame_count = 0;
-    if (m_frame_parser.mutils)
-      m_frame_parser.mutils->initialize_frame_checking_environment();
-    m_frame_parser.flush();
-    h264_last_au_ts = LLONG_MAX;
-    h264_last_au_flags = 0;
-    memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
-    m_demux_entries = 0;
-  }
-  struct v4l2_buffer buf;
-  struct v4l2_plane plane;
-  memset( (void *)&buf, 0, sizeof(buf));
-  memset( (void *)&plane, 0, sizeof(plane));
-  int rc;
-  unsigned long  print_count;
-  if (temp_buffer->buffer_len == 0 || (buffer->nFlags & OMX_BUFFERFLAG_EOS))
-  {  buf.flags = V4L2_BUF_FLAG_EOS;
-  DEBUG_PRINT_HIGH("\n  INPUT EOS reached \n") ;
-  }
-	OMX_ERRORTYPE eRet = OMX_ErrorNone;
-	buf.index = nPortIndex;
-	buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-	buf.memory = V4L2_MEMORY_USERPTR;
-	plane.bytesused = temp_buffer->buffer_len;
-	plane.length = drv_ctx.ip_buf.buffer_size;
-	plane.m.userptr = (unsigned long)temp_buffer->bufferaddr -
-            (unsigned long)temp_buffer->offset;
-	plane.reserved[0] = temp_buffer->pmem_fd;
-	plane.reserved[1] = temp_buffer->offset;
-	plane.data_offset = 0;
-	buf.m.planes = &plane;
-	buf.length = 1;
-	if (frameinfo.timestamp >= LLONG_MAX) {
-          buf.flags |= V4L2_QCOM_BUF_TIMESTAMP_INVALID;
-        }
-	//assumption is that timestamp is in milliseconds
-	buf.timestamp.tv_sec = frameinfo.timestamp / 1000000;
-	buf.timestamp.tv_usec = (frameinfo.timestamp % 1000000);
-	buf.flags |= (buffer->nFlags & OMX_BUFFERFLAG_CODECCONFIG) ? V4L2_QCOM_BUF_FLAG_CODECCONFIG: 0;
+    if (temp_buffer->buffer_len == 0 || (buffer->nFlags & OMX_BUFFERFLAG_EOS)) {
+        DEBUG_PRINT_HIGH("\n Rxd i/p EOS, Notify Driver that EOS has been reached");
+        frameinfo.flags |= VDEC_BUFFERFLAG_EOS;
+        h264_scratch.nFilledLen = 0;
+        nal_count = 0;
+        look_ahead_nal = false;
+        frame_count = 0;
+        if (m_frame_parser.mutils)
+            m_frame_parser.mutils->initialize_frame_checking_environment();
+        m_frame_parser.flush();
+        h264_last_au_ts = LLONG_MAX;
+        h264_last_au_flags = 0;
+        memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
+        m_demux_entries = 0;
+    }
+    struct v4l2_buffer buf;
+    struct v4l2_plane plane;
+    memset( (void *)&buf, 0, sizeof(buf));
+    memset( (void *)&plane, 0, sizeof(plane));
+    int rc;
+    unsigned long  print_count;
+    if (temp_buffer->buffer_len == 0 || (buffer->nFlags & OMX_BUFFERFLAG_EOS)) {
+        buf.flags = V4L2_BUF_FLAG_EOS;
+        DEBUG_PRINT_HIGH("\n  INPUT EOS reached \n") ;
+    }
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    buf.index = nPortIndex;
+    buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+    buf.memory = V4L2_MEMORY_USERPTR;
+    plane.bytesused = temp_buffer->buffer_len;
+    plane.length = drv_ctx.ip_buf.buffer_size;
+    plane.m.userptr = (unsigned long)temp_buffer->bufferaddr -
+        (unsigned long)temp_buffer->offset;
+    plane.reserved[0] = temp_buffer->pmem_fd;
+    plane.reserved[1] = temp_buffer->offset;
+    plane.data_offset = 0;
+    buf.m.planes = &plane;
+    buf.length = 1;
+    if (frameinfo.timestamp >= LLONG_MAX) {
+        buf.flags |= V4L2_QCOM_BUF_TIMESTAMP_INVALID;
+    }
+    //assumption is that timestamp is in milliseconds
+    buf.timestamp.tv_sec = frameinfo.timestamp / 1000000;
+    buf.timestamp.tv_usec = (frameinfo.timestamp % 1000000);
+    buf.flags |= (buffer->nFlags & OMX_BUFFERFLAG_CODECCONFIG) ? V4L2_QCOM_BUF_FLAG_CODECCONFIG: 0;
 
-	rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_QBUF, &buf);
-	if(rc)
-	{
-		DEBUG_PRINT_ERROR("Failed to qbuf Input buffer to driver\n");
-		return OMX_ErrorHardware;
-	}
-  if(!streaming[OUTPUT_PORT])
-  {
-	enum v4l2_buf_type buf_type;
-	int ret,r;
+    rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_QBUF, &buf);
+    if (rc) {
+        DEBUG_PRINT_ERROR("Failed to qbuf Input buffer to driver\n");
+        return OMX_ErrorHardware;
+    }
+    if (!streaming[OUTPUT_PORT]) {
+        enum v4l2_buf_type buf_type;
+        int ret,r;
 
-	buf_type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+        buf_type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
         DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Executing\n");
-	ret=ioctl(drv_ctx.video_driver_fd, VIDIOC_STREAMON,&buf_type);
-	if(!ret) {
-		DEBUG_PRINT_HIGH("Streamon on OUTPUT Plane was successful \n");
-		streaming[OUTPUT_PORT] = true;
-	} else{
-		/*TODO: How to handle this case */
-		DEBUG_PRINT_ERROR(" \n Failed to call streamon on OUTPUT \n");
-                DEBUG_PRINT_LOW("If Stream on failed no buffer should be queued");
-                post_event ((unsigned int)buffer,VDEC_S_SUCCESS,
-                           OMX_COMPONENT_GENERATE_EBD);
-                return OMX_ErrorBadParameter;
-	}
-}
-  DEBUG_PRINT_LOW("[ETBP] pBuf(%p) nTS(%lld) Sz(%d)",
-    frameinfo.bufferaddr, frameinfo.timestamp, frameinfo.datalen);
-      time_stamp_dts.insert_timestamp(buffer);
+        ret=ioctl(drv_ctx.video_driver_fd, VIDIOC_STREAMON,&buf_type);
+        if (!ret) {
+            DEBUG_PRINT_HIGH("Streamon on OUTPUT Plane was successful \n");
+            streaming[OUTPUT_PORT] = true;
+        } else {
+            /*TODO: How to handle this case */
+            DEBUG_PRINT_ERROR(" \n Failed to call streamon on OUTPUT \n");
+            DEBUG_PRINT_LOW("If Stream on failed no buffer should be queued");
+            post_event ((unsigned int)buffer,VDEC_S_SUCCESS,
+                    OMX_COMPONENT_GENERATE_EBD);
+            return OMX_ErrorBadParameter;
+        }
+    }
+    DEBUG_PRINT_LOW("[ETBP] pBuf(%p) nTS(%lld) Sz(%d)",
+            frameinfo.bufferaddr, frameinfo.timestamp, frameinfo.datalen);
+    time_stamp_dts.insert_timestamp(buffer);
 
-  return ret;
+    return ret;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::FillThisBuffer
+   FUNCTION
+   omx_vdec::FillThisBuffer
 
-DESCRIPTION
-  IL client uses this method to release the frame buffer
-  after displaying them.
+   DESCRIPTION
+   IL client uses this method to release the frame buffer
+   after displaying them.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::fill_this_buffer(OMX_IN OMX_HANDLETYPE  hComp,
-                                          OMX_IN OMX_BUFFERHEADERTYPE* buffer)
+        OMX_IN OMX_BUFFERHEADERTYPE* buffer)
 {
 
-  if(m_state == OMX_StateInvalid)
-  {
-      DEBUG_PRINT_ERROR("FTB in Invalid State\n");
-      return OMX_ErrorInvalidState;
-  }
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("FTB in Invalid State\n");
+        return OMX_ErrorInvalidState;
+    }
 
-  if (!m_out_bEnabled)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:FTB incorrect state operation, output port is disabled.");
-    return OMX_ErrorIncorrectStateOperation;
-  }
+    if (!m_out_bEnabled) {
+        DEBUG_PRINT_ERROR("\nERROR:FTB incorrect state operation, output port is disabled.");
+        return OMX_ErrorIncorrectStateOperation;
+    }
 
-  if (buffer == NULL ||
-      ((buffer - client_buffers.get_il_buf_hdr()) >= drv_ctx.op_buf.actualcount))
-  {
-    return OMX_ErrorBadParameter;
-  }
+    if (buffer == NULL ||
+            ((buffer - client_buffers.get_il_buf_hdr()) >= drv_ctx.op_buf.actualcount)) {
+        return OMX_ErrorBadParameter;
+    }
 
-  if (buffer->nOutputPortIndex != OMX_CORE_OUTPUT_PORT_INDEX)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:FTB invalid port in header %lu", buffer->nOutputPortIndex);
-    return OMX_ErrorBadPortIndex;
-  }
+    if (buffer->nOutputPortIndex != OMX_CORE_OUTPUT_PORT_INDEX) {
+        DEBUG_PRINT_ERROR("\nERROR:FTB invalid port in header %lu", buffer->nOutputPortIndex);
+        return OMX_ErrorBadPortIndex;
+    }
 
-  DEBUG_PRINT_LOW("[FTB] bufhdr = %p, bufhdr->pBuffer = %p", buffer, buffer->pBuffer);
-  post_event((unsigned) hComp, (unsigned)buffer, m_fill_output_msg);
-  return OMX_ErrorNone;
+    DEBUG_PRINT_LOW("[FTB] bufhdr = %p, bufhdr->pBuffer = %p", buffer, buffer->pBuffer);
+    post_event((unsigned) hComp, (unsigned)buffer, m_fill_output_msg);
+    return OMX_ErrorNone;
 }
 /* ======================================================================
-FUNCTION
-  omx_vdec::fill_this_buffer_proxy
+   FUNCTION
+   omx_vdec::fill_this_buffer_proxy
 
-DESCRIPTION
-  IL client uses this method to release the frame buffer
-  after displaying them.
+   DESCRIPTION
+   IL client uses this method to release the frame buffer
+   after displaying them.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::fill_this_buffer_proxy(
-                         OMX_IN OMX_HANDLETYPE        hComp,
-                         OMX_IN OMX_BUFFERHEADERTYPE* bufferAdd)
+        OMX_IN OMX_HANDLETYPE        hComp,
+        OMX_IN OMX_BUFFERHEADERTYPE* bufferAdd)
 {
-  OMX_ERRORTYPE nRet = OMX_ErrorNone;
-  OMX_BUFFERHEADERTYPE *buffer = bufferAdd;
-  unsigned nPortIndex = 0;
-  struct vdec_fillbuffer_cmd fillbuffer;
-  struct vdec_bufferpayload     *ptr_outputbuffer = NULL;
-  struct vdec_output_frameinfo  *ptr_respbuffer = NULL;
+    OMX_ERRORTYPE nRet = OMX_ErrorNone;
+    OMX_BUFFERHEADERTYPE *buffer = bufferAdd;
+    unsigned nPortIndex = 0;
+    struct vdec_fillbuffer_cmd fillbuffer;
+    struct vdec_bufferpayload     *ptr_outputbuffer = NULL;
+    struct vdec_output_frameinfo  *ptr_respbuffer = NULL;
 
-  nPortIndex = buffer-((OMX_BUFFERHEADERTYPE *)client_buffers.get_il_buf_hdr());
+    nPortIndex = buffer-((OMX_BUFFERHEADERTYPE *)client_buffers.get_il_buf_hdr());
 
-  if (bufferAdd == NULL || nPortIndex > drv_ctx.op_buf.actualcount)
-    return OMX_ErrorBadParameter;
+    if (bufferAdd == NULL || nPortIndex > drv_ctx.op_buf.actualcount)
+        return OMX_ErrorBadParameter;
 
-  DEBUG_PRINT_LOW("\n FTBProxy: bufhdr = %p, bufhdr->pBuffer = %p",
-      bufferAdd, bufferAdd->pBuffer);
-  /*Return back the output buffer to client*/
-  if(m_out_bEnabled != OMX_TRUE || output_flush_progress == true)
-  {
-    DEBUG_PRINT_LOW("\n Output Buffers return flush/disable condition");
-    buffer->nFilledLen = 0;
-    m_cb.FillBufferDone (hComp,m_app_data,buffer);
-    return OMX_ErrorNone;
-  }
-  pending_output_buffers++;
-  buffer = client_buffers.get_dr_buf_hdr(bufferAdd);
-  ptr_respbuffer = (struct vdec_output_frameinfo*)buffer->pOutputPortPrivate;
-  if (ptr_respbuffer)
-  {
-    ptr_outputbuffer =  (struct vdec_bufferpayload*)ptr_respbuffer->client_data;
-  }
+    DEBUG_PRINT_LOW("\n FTBProxy: bufhdr = %p, bufhdr->pBuffer = %p",
+            bufferAdd, bufferAdd->pBuffer);
+    /*Return back the output buffer to client*/
+    if (m_out_bEnabled != OMX_TRUE || output_flush_progress == true) {
+        DEBUG_PRINT_LOW("\n Output Buffers return flush/disable condition");
+        buffer->nFilledLen = 0;
+        m_cb.FillBufferDone (hComp,m_app_data,buffer);
+        return OMX_ErrorNone;
+    }
+    pending_output_buffers++;
+    buffer = client_buffers.get_dr_buf_hdr(bufferAdd);
+    ptr_respbuffer = (struct vdec_output_frameinfo*)buffer->pOutputPortPrivate;
+    if (ptr_respbuffer) {
+        ptr_outputbuffer =  (struct vdec_bufferpayload*)ptr_respbuffer->client_data;
+    }
 
-  if (ptr_respbuffer == NULL || ptr_outputbuffer == NULL)
-  {
-      DEBUG_PRINT_ERROR("resp buffer or outputbuffer is NULL");
-      buffer->nFilledLen = 0;
-      m_cb.FillBufferDone (hComp,m_app_data,buffer);
-      pending_output_buffers--;
-      return OMX_ErrorBadParameter;
-  }
+    if (ptr_respbuffer == NULL || ptr_outputbuffer == NULL) {
+        DEBUG_PRINT_ERROR("resp buffer or outputbuffer is NULL");
+        buffer->nFilledLen = 0;
+        m_cb.FillBufferDone (hComp,m_app_data,buffer);
+        pending_output_buffers--;
+        return OMX_ErrorBadParameter;
+    }
 
- /* memcpy (&fillbuffer.buffer,ptr_outputbuffer,
-          sizeof(struct vdec_bufferpayload));
-    fillbuffer.client_data = bufferAdd;*/
+    /* memcpy (&fillbuffer.buffer,ptr_outputbuffer,
+       sizeof(struct vdec_bufferpayload));
+       fillbuffer.client_data = bufferAdd;*/
 
 #ifdef _ANDROID_ICS_
-    if (m_enable_android_native_buffers)
-    {
+    if (m_enable_android_native_buffers) {
         // Acquire a write lock on this buffer.
         if (GENLOCK_NO_ERROR != genlock_lock_buffer(native_buffer[buffer - m_out_mem_ptr].nativehandle,
-                                                  GENLOCK_WRITE_LOCK, GENLOCK_MAX_TIMEOUT)) {
+                    GENLOCK_WRITE_LOCK, GENLOCK_MAX_TIMEOUT)) {
             DEBUG_PRINT_ERROR("Failed to acquire genlock");
             buffer->nFilledLen = 0;
             m_cb.FillBufferDone (hComp,m_app_data,buffer);
@@ -5965,147 +5328,139 @@
             return OMX_ErrorInsufficientResources;
         } else {
             native_buffer[buffer - m_out_mem_ptr].inuse = true;
-      }
+        }
     }
 #endif
-	int rc = 0;
-  struct v4l2_buffer buf;
-  struct v4l2_plane plane[VIDEO_MAX_PLANES];
-  memset( (void *)&buf, 0, sizeof(buf));
-  memset( (void *)plane, 0, (sizeof(struct v4l2_plane)*VIDEO_MAX_PLANES));
-  int extra_idx = 0;
+    int rc = 0;
+    struct v4l2_buffer buf;
+    struct v4l2_plane plane[VIDEO_MAX_PLANES];
+    memset( (void *)&buf, 0, sizeof(buf));
+    memset( (void *)plane, 0, (sizeof(struct v4l2_plane)*VIDEO_MAX_PLANES));
+    int extra_idx = 0;
 
-  buf.index = nPortIndex;
-  buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-  buf.memory = V4L2_MEMORY_USERPTR;
-  plane[0].bytesused = buffer->nFilledLen;
-  plane[0].length = drv_ctx.op_buf.buffer_size;
-  plane[0].m.userptr =
-      (unsigned long)drv_ctx.ptr_outputbuffer[nPortIndex].bufferaddr -
-      (unsigned long)drv_ctx.ptr_outputbuffer[nPortIndex].offset;
-  plane[0].reserved[0] = drv_ctx.ptr_outputbuffer[nPortIndex].pmem_fd;
-  plane[0].reserved[1] = drv_ctx.ptr_outputbuffer[nPortIndex].offset;
-  plane[0].data_offset = 0;
-  extra_idx = EXTRADATA_IDX(drv_ctx.num_planes);
-  if (extra_idx && (extra_idx < VIDEO_MAX_PLANES)) {
-    plane[extra_idx].bytesused = 0;
-    plane[extra_idx].length = drv_ctx.extradata_info.buffer_size;
-    plane[extra_idx].m.userptr = (long unsigned int) (drv_ctx.extradata_info.uaddr + nPortIndex * drv_ctx.extradata_info.buffer_size);
+    buf.index = nPortIndex;
+    buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+    buf.memory = V4L2_MEMORY_USERPTR;
+    plane[0].bytesused = buffer->nFilledLen;
+    plane[0].length = drv_ctx.op_buf.buffer_size;
+    plane[0].m.userptr =
+        (unsigned long)drv_ctx.ptr_outputbuffer[nPortIndex].bufferaddr -
+        (unsigned long)drv_ctx.ptr_outputbuffer[nPortIndex].offset;
+    plane[0].reserved[0] = drv_ctx.ptr_outputbuffer[nPortIndex].pmem_fd;
+    plane[0].reserved[1] = drv_ctx.ptr_outputbuffer[nPortIndex].offset;
+    plane[0].data_offset = 0;
+    extra_idx = EXTRADATA_IDX(drv_ctx.num_planes);
+    if (extra_idx && (extra_idx < VIDEO_MAX_PLANES)) {
+        plane[extra_idx].bytesused = 0;
+        plane[extra_idx].length = drv_ctx.extradata_info.buffer_size;
+        plane[extra_idx].m.userptr = (long unsigned int) (drv_ctx.extradata_info.uaddr + nPortIndex * drv_ctx.extradata_info.buffer_size);
 #ifdef USE_ION
-    plane[extra_idx].reserved[0] = drv_ctx.extradata_info.ion.fd_ion_data.fd;
+        plane[extra_idx].reserved[0] = drv_ctx.extradata_info.ion.fd_ion_data.fd;
 #endif
-    plane[extra_idx].reserved[1] = nPortIndex * drv_ctx.extradata_info.buffer_size;
-    plane[extra_idx].data_offset = 0;
-  } else if (extra_idx >= VIDEO_MAX_PLANES) {
-    DEBUG_PRINT_ERROR("Extradata index higher than expected: %d\n", extra_idx);
-    return OMX_ErrorBadParameter;
-  }
-  buf.m.planes = plane;
-  buf.length = drv_ctx.num_planes;
-  rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_QBUF, &buf);
-  if (rc) {
-    /*TODO: How to handle this case */
-    DEBUG_PRINT_ERROR("Failed to qbuf to driver");
-  }
-//#ifdef _ANDROID_ICS_
-  //  if (m_enable_android_native_buffers)
-  //  {
-        // Unlock the buffer
-   //     if (GENLOCK_NO_ERROR != genlock_unlock_buffer(native_buffer[buffer - m_out_mem_ptr].nativehandle)) {
+        plane[extra_idx].reserved[1] = nPortIndex * drv_ctx.extradata_info.buffer_size;
+        plane[extra_idx].data_offset = 0;
+    } else if (extra_idx >= VIDEO_MAX_PLANES) {
+        DEBUG_PRINT_ERROR("Extradata index higher than expected: %d\n", extra_idx);
+        return OMX_ErrorBadParameter;
+    }
+    buf.m.planes = plane;
+    buf.length = drv_ctx.num_planes;
+    rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_QBUF, &buf);
+    if (rc) {
+        /*TODO: How to handle this case */
+        DEBUG_PRINT_ERROR("Failed to qbuf to driver");
+    }
+    //#ifdef _ANDROID_ICS_
+    //  if (m_enable_android_native_buffers)
+    //  {
+    // Unlock the buffer
+    //     if (GENLOCK_NO_ERROR != genlock_unlock_buffer(native_buffer[buffer - m_out_mem_ptr].nativehandle)) {
     //        DEBUG_PRINT_ERROR("Releasing genlock failed");
     //        return OMX_ErrorInsufficientResources;
     ///    } else {
-     //       native_buffer[buffer - m_out_mem_ptr].inuse = false;
-      //  }
-   // }
-//#endif
+    //       native_buffer[buffer - m_out_mem_ptr].inuse = false;
+    //  }
+    // }
+    //#endif
     //m_cb.FillBufferDone (hComp,m_app_data,buffer);
-   // pending_output_buffers--;
-   // return OMX_ErrorBadParameter;
-  //}
-  return OMX_ErrorNone;
+    // pending_output_buffers--;
+    // return OMX_ErrorBadParameter;
+    //}
+return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::SetCallbacks
+   FUNCTION
+   omx_vdec::SetCallbacks
 
-DESCRIPTION
-  Set the callbacks.
+   DESCRIPTION
+   Set the callbacks.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  OMX Error None if everything successful.
+   RETURN VALUE
+   OMX Error None if everything successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::set_callbacks(OMX_IN OMX_HANDLETYPE        hComp,
-                                           OMX_IN OMX_CALLBACKTYPE* callbacks,
-                                           OMX_IN OMX_PTR             appData)
+        OMX_IN OMX_CALLBACKTYPE* callbacks,
+        OMX_IN OMX_PTR             appData)
 {
 
-  m_cb       = *callbacks;
-  DEBUG_PRINT_LOW("\n Callbacks Set %p %p %p",m_cb.EmptyBufferDone,\
-               m_cb.EventHandler,m_cb.FillBufferDone);
-  m_app_data =    appData;
-  return OMX_ErrorNotImplemented;
+    m_cb       = *callbacks;
+    DEBUG_PRINT_LOW("\n Callbacks Set %p %p %p",m_cb.EmptyBufferDone,\
+            m_cb.EventHandler,m_cb.FillBufferDone);
+    m_app_data =    appData;
+    return OMX_ErrorNotImplemented;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::ComponentDeInit
+   FUNCTION
+   omx_vdec::ComponentDeInit
 
-DESCRIPTION
-  Destroys the component and release memory allocated to the heap.
+   DESCRIPTION
+   Destroys the component and release memory allocated to the heap.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if everything successful.
+   RETURN VALUE
+   OMX Error None if everything successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::component_deinit(OMX_IN OMX_HANDLETYPE hComp)
 {
 #ifdef _ANDROID_
-    if(iDivXDrmDecrypt)
-    {
+    if (iDivXDrmDecrypt) {
         delete iDivXDrmDecrypt;
         iDivXDrmDecrypt=NULL;
     }
 #endif //_ANDROID_
 
     unsigned i = 0;
-    if (OMX_StateLoaded != m_state)
-    {
+    if (OMX_StateLoaded != m_state) {
         DEBUG_PRINT_ERROR("WARNING:Rxd DeInit,OMX not in LOADED state %d\n",\
-                          m_state);
+                m_state);
         DEBUG_PRINT_ERROR("\nPlayback Ended - FAILED");
-    }
-    else
-    {
-      DEBUG_PRINT_HIGH("\n Playback Ended - PASSED");
+    } else {
+        DEBUG_PRINT_HIGH("\n Playback Ended - PASSED");
     }
 
     /*Check if the output buffers have to be cleaned up*/
-    if(m_out_mem_ptr)
-    {
+    if (m_out_mem_ptr) {
         DEBUG_PRINT_LOW("Freeing the Output Memory\n");
-        for (i = 0; i < drv_ctx.op_buf.actualcount; i++ )
-        {
-          free_output_buffer (&m_out_mem_ptr[i]);
+        for (i = 0; i < drv_ctx.op_buf.actualcount; i++ ) {
+            free_output_buffer (&m_out_mem_ptr[i]);
 #ifdef _ANDROID_ICS_
-        if (m_enable_android_native_buffers)
-        {
-          if (native_buffer[i].inuse)
-          {
-            if (GENLOCK_NO_ERROR != genlock_unlock_buffer(native_buffer[i].nativehandle)) {
-                DEBUG_PRINT_ERROR("Unlocking genlock failed");
+            if (m_enable_android_native_buffers) {
+                if (native_buffer[i].inuse) {
+                    if (GENLOCK_NO_ERROR != genlock_unlock_buffer(native_buffer[i].nativehandle)) {
+                        DEBUG_PRINT_ERROR("Unlocking genlock failed");
+                    }
+                    native_buffer[i].inuse = false;
+                }
             }
-            native_buffer[i].inuse = false;
-          }
-        }
 #endif
         }
 #ifdef _ANDROID_ICS_
@@ -6114,38 +5469,32 @@
     }
 
     /*Check if the input buffers have to be cleaned up*/
-    if(m_inp_mem_ptr || m_inp_heap_ptr)
-    {
+    if (m_inp_mem_ptr || m_inp_heap_ptr) {
         DEBUG_PRINT_LOW("Freeing the Input Memory\n");
-        for (i = 0; i<drv_ctx.ip_buf.actualcount; i++ )
-        {
-          if (m_inp_mem_ptr)
-            free_input_buffer (i,&m_inp_mem_ptr[i]);
-          else
-            free_input_buffer (i,NULL);
+        for (i = 0; i<drv_ctx.ip_buf.actualcount; i++ ) {
+            if (m_inp_mem_ptr)
+                free_input_buffer (i,&m_inp_mem_ptr[i]);
+            else
+                free_input_buffer (i,NULL);
         }
     }
     free_input_buffer_header();
     free_output_buffer_header();
-    if(h264_scratch.pBuffer)
-    {
+    if (h264_scratch.pBuffer) {
         free(h264_scratch.pBuffer);
         h264_scratch.pBuffer = NULL;
     }
 
-    if (h264_parser)
-    {
+    if (h264_parser) {
         delete h264_parser;
-	h264_parser = NULL;
+        h264_parser = NULL;
     }
 
-    if(m_platform_list)
-    {
+    if (m_platform_list) {
         free(m_platform_list);
         m_platform_list = NULL;
     }
-    if(m_vendor_config.pData)
-    {
+    if (m_vendor_config.pData) {
         free(m_vendor_config.pData);
         m_vendor_config.pData = NULL;
     }
@@ -6158,15 +5507,14 @@
     m_cmd_q.m_read = m_cmd_q.m_write =0;
     m_etb_q.m_read = m_etb_q.m_write =0;
 #ifdef _ANDROID_
-    if (m_debug_timestamp)
-    {
-      m_timestamp_list.reset_ts_list();
+    if (m_debug_timestamp) {
+        m_timestamp_list.reset_ts_list();
     }
 #endif
 
     DEBUG_PRINT_LOW("\n Calling VDEC_IOCTL_STOP_NEXT_MSG");
     //(void)ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_STOP_NEXT_MSG,
-       // NULL);
+    // NULL);
     DEBUG_PRINT_HIGH("\n Close the driver instance");
 
 #ifdef INPUT_BUFFER_LOG
@@ -6174,59 +5522,59 @@
 #endif
 #ifdef OUTPUT_BUFFER_LOG
     if (outputBufferFile1)
-		fclose (outputBufferFile1);
+        fclose (outputBufferFile1);
 #endif
 #ifdef OUTPUT_EXTRADATA_LOG
     fclose (outputExtradataFile);
 #endif
-  DEBUG_PRINT_HIGH("\n omx_vdec::component_deinit() complete");
-  return OMX_ErrorNone;
+    DEBUG_PRINT_HIGH("\n omx_vdec::component_deinit() complete");
+    return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::UseEGLImage
+   FUNCTION
+   omx_vdec::UseEGLImage
 
-DESCRIPTION
-  OMX Use EGL Image method implementation <TBD>.
+   DESCRIPTION
+   OMX Use EGL Image method implementation <TBD>.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  Not Implemented error.
+   RETURN VALUE
+   Not Implemented error.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::use_EGL_image(OMX_IN OMX_HANDLETYPE                hComp,
-                                          OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                                          OMX_IN OMX_U32                        port,
-                                          OMX_IN OMX_PTR                     appData,
-                                          OMX_IN void*                      eglImage)
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                        port,
+        OMX_IN OMX_PTR                     appData,
+        OMX_IN void*                      eglImage)
 {
-  OMX_QCOM_PLATFORM_PRIVATE_LIST pmem_list;
-  OMX_QCOM_PLATFORM_PRIVATE_ENTRY pmem_entry;
-  OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO pmem_info;
+    OMX_QCOM_PLATFORM_PRIVATE_LIST pmem_list;
+    OMX_QCOM_PLATFORM_PRIVATE_ENTRY pmem_entry;
+    OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO pmem_info;
 
 #ifdef USE_EGL_IMAGE_GPU
-   PFNEGLQUERYIMAGEQUALCOMMPROC egl_queryfunc;
-   EGLint fd = -1, offset = 0,pmemPtr = 0;
+    PFNEGLQUERYIMAGEQUALCOMMPROC egl_queryfunc;
+    EGLint fd = -1, offset = 0,pmemPtr = 0;
 #else
-   int fd = -1, offset = 0;
+    int fd = -1, offset = 0;
 #endif
-   DEBUG_PRINT_HIGH("\nuse EGL image support for decoder");
-   if (!bufferHdr || !eglImage|| port != OMX_CORE_OUTPUT_PORT_INDEX) {
-     DEBUG_PRINT_ERROR("\n ");
-   }
+    DEBUG_PRINT_HIGH("\nuse EGL image support for decoder");
+    if (!bufferHdr || !eglImage|| port != OMX_CORE_OUTPUT_PORT_INDEX) {
+        DEBUG_PRINT_ERROR("\n ");
+    }
 #ifdef USE_EGL_IMAGE_GPU
-   if(m_display_id == NULL) {
+    if (m_display_id == NULL) {
         DEBUG_PRINT_ERROR("Display ID is not set by IL client \n");
         return OMX_ErrorInsufficientResources;
-   }
-   egl_queryfunc = (PFNEGLQUERYIMAGEQUALCOMMPROC)
-                    eglGetProcAddress("eglQueryImageKHR");
-   egl_queryfunc(m_display_id, eglImage, EGL_BUFFER_HANDLE_QCOM,&fd);
-   egl_queryfunc(m_display_id, eglImage, EGL_BUFFER_OFFSET_QCOM,&offset);
-   egl_queryfunc(m_display_id, eglImage, EGL_BITMAP_POINTER_KHR,&pmemPtr);
+    }
+    egl_queryfunc = (PFNEGLQUERYIMAGEQUALCOMMPROC)
+        eglGetProcAddress("eglQueryImageKHR");
+    egl_queryfunc(m_display_id, eglImage, EGL_BUFFER_HANDLE_QCOM,&fd);
+    egl_queryfunc(m_display_id, eglImage, EGL_BUFFER_OFFSET_QCOM,&offset);
+    egl_queryfunc(m_display_id, eglImage, EGL_BITMAP_POINTER_KHR,&pmemPtr);
 #else //with OMX test app
     struct temp_egl {
         int pmem_fd;
@@ -6235,8 +5583,7 @@
     struct temp_egl *temp_egl_id = NULL;
     void * pmemPtr = (void *) eglImage;
     temp_egl_id = (struct temp_egl *)eglImage;
-    if (temp_egl_id != NULL)
-    {
+    if (temp_egl_id != NULL) {
         fd = temp_egl_id->pmem_fd;
         offset = temp_egl_id->offset;
     }
@@ -6244,617 +5591,520 @@
     if (fd < 0) {
         DEBUG_PRINT_ERROR("Improper pmem fd by EGL client %d  \n",fd);
         return OMX_ErrorInsufficientResources;
-   }
-   pmem_info.pmem_fd = (OMX_U32) fd;
-   pmem_info.offset = (OMX_U32) offset;
-   pmem_entry.entry = (void *) &pmem_info;
-   pmem_entry.type = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
-   pmem_list.entryList = &pmem_entry;
-   pmem_list.nEntries = 1;
-   ouput_egl_buffers = true;
-   if (OMX_ErrorNone != use_buffer(hComp,bufferHdr, port,
-       (void *)&pmem_list, drv_ctx.op_buf.buffer_size,
-        (OMX_U8 *)pmemPtr)) {
-     DEBUG_PRINT_ERROR("use buffer call failed for egl image\n");
-     return OMX_ErrorInsufficientResources;
-   }
-   return OMX_ErrorNone;
+    }
+    pmem_info.pmem_fd = (OMX_U32) fd;
+    pmem_info.offset = (OMX_U32) offset;
+    pmem_entry.entry = (void *) &pmem_info;
+    pmem_entry.type = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
+    pmem_list.entryList = &pmem_entry;
+    pmem_list.nEntries = 1;
+    ouput_egl_buffers = true;
+    if (OMX_ErrorNone != use_buffer(hComp,bufferHdr, port,
+                (void *)&pmem_list, drv_ctx.op_buf.buffer_size,
+                (OMX_U8 *)pmemPtr)) {
+        DEBUG_PRINT_ERROR("use buffer call failed for egl image\n");
+        return OMX_ErrorInsufficientResources;
+    }
+    return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::ComponentRoleEnum
+   FUNCTION
+   omx_vdec::ComponentRoleEnum
 
-DESCRIPTION
-  OMX Component Role Enum method implementation.
+   DESCRIPTION
+   OMX Component Role Enum method implementation.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if everything is successful.
-========================================================================== */
+   RETURN VALUE
+   OMX Error None if everything is successful.
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::component_role_enum(OMX_IN OMX_HANDLETYPE hComp,
-                                                OMX_OUT OMX_U8*        role,
-                                                OMX_IN OMX_U32        index)
+        OMX_OUT OMX_U8*        role,
+        OMX_IN OMX_U32        index)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
 
-  if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+    if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            eRet = OMX_ErrorNoMore;
+        }
     }
-    else
-    {
-      eRet = OMX_ErrorNoMore;
+    if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            eRet = OMX_ErrorNoMore;
+        }
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.h263",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            DEBUG_PRINT_LOW("\n No more roles \n");
+            eRet = OMX_ErrorNoMore;
+        }
     }
-  }
-  if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
-    }
-    else
-    {
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.h263",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("\n No more roles \n");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
 
-  else if((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",OMX_MAX_STRINGNAME_SIZE)) ||
-          (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx311",OMX_MAX_STRINGNAME_SIZE))
-          )
-
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+    else if ((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",OMX_MAX_STRINGNAME_SIZE)) ||
+            (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx311",OMX_MAX_STRINGNAME_SIZE)) ) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            DEBUG_PRINT_LOW("\n No more roles \n");
+            eRet = OMX_ErrorNoMore;
+        }
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.avc",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            DEBUG_PRINT_LOW("\n No more roles \n");
+            eRet = OMX_ErrorNoMore;
+        }
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.hevc",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.hevc",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            DEBUG_PRINT_LOW("\n No more roles \n");
+            eRet = OMX_ErrorNoMore;
+        }
+    } else if ( (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1",OMX_MAX_STRINGNAME_SIZE)) ||
+            (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.wmv",OMX_MAX_STRINGNAME_SIZE))
+            ) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            DEBUG_PRINT_LOW("\n No more roles \n");
+            eRet = OMX_ErrorNoMore;
+        }
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vp8",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.vp8",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            DEBUG_PRINT_LOW("\n No more roles \n");
+            eRet = OMX_ErrorNoMore;
+        }
+    } else {
+        DEBUG_PRINT_ERROR("\nERROR:Querying Role on Unknown Component\n");
+        eRet = OMX_ErrorInvalidComponentName;
     }
-    else
-    {
-      DEBUG_PRINT_LOW("\n No more roles \n");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.avc",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("\n No more roles \n");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.hevc",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.hevc",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("\n No more roles \n");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else if( (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1",OMX_MAX_STRINGNAME_SIZE)) ||
-           (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.wmv",OMX_MAX_STRINGNAME_SIZE))
-           )
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("\n No more roles \n");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vp8",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.vp8",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("\n No more roles \n");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("\nERROR:Querying Role on Unknown Component\n");
-    eRet = OMX_ErrorInvalidComponentName;
-  }
-  return eRet;
+    return eRet;
 }
 
 
 
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::AllocateDone
+   FUNCTION
+   omx_vdec::AllocateDone
 
-DESCRIPTION
-  Checks if entire buffer pool is allocated by IL Client or not.
-  Need this to move to IDLE state.
+   DESCRIPTION
+   Checks if entire buffer pool is allocated by IL Client or not.
+   Need this to move to IDLE state.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false.
+   RETURN VALUE
+   true/false.
 
-========================================================================== */
+   ========================================================================== */
 bool omx_vdec::allocate_done(void)
 {
-  bool bRet = false;
-  bool bRet_In = false;
-  bool bRet_Out = false;
+    bool bRet = false;
+    bool bRet_In = false;
+    bool bRet_Out = false;
 
-  bRet_In = allocate_input_done();
-  bRet_Out = allocate_output_done();
+    bRet_In = allocate_input_done();
+    bRet_Out = allocate_output_done();
 
-  if(bRet_In && bRet_Out)
-  {
-      bRet = true;
-  }
-
-  return bRet;
-}
-/* ======================================================================
-FUNCTION
-  omx_vdec::AllocateInputDone
-
-DESCRIPTION
-  Checks if I/P buffer pool is allocated by IL Client or not.
-
-PARAMETERS
-  None.
-
-RETURN VALUE
-  true/false.
-
-========================================================================== */
-bool omx_vdec::allocate_input_done(void)
-{
-  bool bRet = false;
-  unsigned i=0;
-
-  if (m_inp_mem_ptr == NULL)
-  {
-      return bRet;
-  }
-  if(m_inp_mem_ptr )
-  {
-    for(;i<drv_ctx.ip_buf.actualcount;i++)
-    {
-      if(BITMASK_ABSENT(&m_inp_bm_count,i))
-      {
-        break;
-      }
-    }
-  }
-  if(i == drv_ctx.ip_buf.actualcount)
-  {
-    bRet = true;
-    DEBUG_PRINT_HIGH("Allocate done for all i/p buffers");
-  }
-  if(i==drv_ctx.ip_buf.actualcount && m_inp_bEnabled)
-  {
-     m_inp_bPopulated = OMX_TRUE;
-  }
-  return bRet;
-}
-/* ======================================================================
-FUNCTION
-  omx_vdec::AllocateOutputDone
-
-DESCRIPTION
-  Checks if entire O/P buffer pool is allocated by IL Client or not.
-
-PARAMETERS
-  None.
-
-RETURN VALUE
-  true/false.
-
-========================================================================== */
-bool omx_vdec::allocate_output_done(void)
-{
-  bool bRet = false;
-  unsigned j=0;
-
-  if (m_out_mem_ptr == NULL)
-  {
-      return bRet;
-  }
-
-  if (m_out_mem_ptr)
-  {
-    for(;j < drv_ctx.op_buf.actualcount;j++)
-    {
-      if(BITMASK_ABSENT(&m_out_bm_count,j))
-      {
-        break;
-      }
-    }
-  }
-
-  if(j == drv_ctx.op_buf.actualcount)
-  {
-    bRet = true;
-    DEBUG_PRINT_HIGH("Allocate done for all o/p buffers");
-    if(m_out_bEnabled)
-       m_out_bPopulated = OMX_TRUE;
-  }
-
-  return bRet;
-}
-
-/* ======================================================================
-FUNCTION
-  omx_vdec::ReleaseDone
-
-DESCRIPTION
-  Checks if IL client has released all the buffers.
-
-PARAMETERS
-  None.
-
-RETURN VALUE
-  true/false
-
-========================================================================== */
-bool omx_vdec::release_done(void)
-{
-  bool bRet = false;
-
-  if(release_input_done())
-  {
-    if(release_output_done())
-    {
+    if (bRet_In && bRet_Out) {
         bRet = true;
     }
-  }
-  return bRet;
+
+    return bRet;
+}
+/* ======================================================================
+   FUNCTION
+   omx_vdec::AllocateInputDone
+
+   DESCRIPTION
+   Checks if I/P buffer pool is allocated by IL Client or not.
+
+   PARAMETERS
+   None.
+
+   RETURN VALUE
+   true/false.
+
+   ========================================================================== */
+bool omx_vdec::allocate_input_done(void)
+{
+    bool bRet = false;
+    unsigned i=0;
+
+    if (m_inp_mem_ptr == NULL) {
+        return bRet;
+    }
+    if (m_inp_mem_ptr ) {
+        for (; i<drv_ctx.ip_buf.actualcount; i++) {
+            if (BITMASK_ABSENT(&m_inp_bm_count,i)) {
+                break;
+            }
+        }
+    }
+    if (i == drv_ctx.ip_buf.actualcount) {
+        bRet = true;
+        DEBUG_PRINT_HIGH("Allocate done for all i/p buffers");
+    }
+    if (i==drv_ctx.ip_buf.actualcount && m_inp_bEnabled) {
+        m_inp_bPopulated = OMX_TRUE;
+    }
+    return bRet;
+}
+/* ======================================================================
+   FUNCTION
+   omx_vdec::AllocateOutputDone
+
+   DESCRIPTION
+   Checks if entire O/P buffer pool is allocated by IL Client or not.
+
+   PARAMETERS
+   None.
+
+   RETURN VALUE
+   true/false.
+
+   ========================================================================== */
+bool omx_vdec::allocate_output_done(void)
+{
+    bool bRet = false;
+    unsigned j=0;
+
+    if (m_out_mem_ptr == NULL) {
+        return bRet;
+    }
+
+    if (m_out_mem_ptr) {
+        for (; j < drv_ctx.op_buf.actualcount; j++) {
+            if (BITMASK_ABSENT(&m_out_bm_count,j)) {
+                break;
+            }
+        }
+    }
+
+    if (j == drv_ctx.op_buf.actualcount) {
+        bRet = true;
+        DEBUG_PRINT_HIGH("Allocate done for all o/p buffers");
+        if (m_out_bEnabled)
+            m_out_bPopulated = OMX_TRUE;
+    }
+
+    return bRet;
+}
+
+/* ======================================================================
+   FUNCTION
+   omx_vdec::ReleaseDone
+
+   DESCRIPTION
+   Checks if IL client has released all the buffers.
+
+   PARAMETERS
+   None.
+
+   RETURN VALUE
+   true/false
+
+   ========================================================================== */
+bool omx_vdec::release_done(void)
+{
+    bool bRet = false;
+
+    if (release_input_done()) {
+        if (release_output_done()) {
+            bRet = true;
+        }
+    }
+    return bRet;
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::ReleaseOutputDone
+   FUNCTION
+   omx_vdec::ReleaseOutputDone
 
-DESCRIPTION
-  Checks if IL client has released all the buffers.
+   DESCRIPTION
+   Checks if IL client has released all the buffers.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 bool omx_vdec::release_output_done(void)
 {
-  bool bRet = false;
-  unsigned i=0,j=0;
+    bool bRet = false;
+    unsigned i=0,j=0;
 
-  DEBUG_PRINT_LOW("\n Value of m_out_mem_ptr %p",m_inp_mem_ptr);
-  if(m_out_mem_ptr)
-  {
-      for(;j < drv_ctx.op_buf.actualcount ; j++)
-      {
-        if(BITMASK_PRESENT(&m_out_bm_count,j))
-        {
-          break;
+    DEBUG_PRINT_LOW("\n Value of m_out_mem_ptr %p",m_inp_mem_ptr);
+    if (m_out_mem_ptr) {
+        for (; j < drv_ctx.op_buf.actualcount ; j++) {
+            if (BITMASK_PRESENT(&m_out_bm_count,j)) {
+                break;
+            }
         }
-      }
-    if(j == drv_ctx.op_buf.actualcount)
-    {
-      m_out_bm_count = 0;
-      bRet = true;
+        if (j == drv_ctx.op_buf.actualcount) {
+            m_out_bm_count = 0;
+            bRet = true;
+        }
+    } else {
+        m_out_bm_count = 0;
+        bRet = true;
     }
-  }
-  else
-  {
-    m_out_bm_count = 0;
-    bRet = true;
-  }
-  return bRet;
+    return bRet;
 }
 /* ======================================================================
-FUNCTION
-  omx_vdec::ReleaseInputDone
+   FUNCTION
+   omx_vdec::ReleaseInputDone
 
-DESCRIPTION
-  Checks if IL client has released all the buffers.
+   DESCRIPTION
+   Checks if IL client has released all the buffers.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 bool omx_vdec::release_input_done(void)
 {
-  bool bRet = false;
-  unsigned i=0,j=0;
+    bool bRet = false;
+    unsigned i=0,j=0;
 
-  DEBUG_PRINT_LOW("\n Value of m_inp_mem_ptr %p",m_inp_mem_ptr);
-  if(m_inp_mem_ptr)
-  {
-      for(;j<drv_ctx.ip_buf.actualcount;j++)
-      {
-        if( BITMASK_PRESENT(&m_inp_bm_count,j))
-        {
-          break;
+    DEBUG_PRINT_LOW("\n Value of m_inp_mem_ptr %p",m_inp_mem_ptr);
+    if (m_inp_mem_ptr) {
+        for (; j<drv_ctx.ip_buf.actualcount; j++) {
+            if ( BITMASK_PRESENT(&m_inp_bm_count,j)) {
+                break;
+            }
         }
-      }
-    if(j==drv_ctx.ip_buf.actualcount)
-    {
-      bRet = true;
+        if (j==drv_ctx.ip_buf.actualcount) {
+            bRet = true;
+        }
+    } else {
+        bRet = true;
     }
-  }
-  else
-  {
-    bRet = true;
-  }
-  return bRet;
+    return bRet;
 }
 
 OMX_ERRORTYPE omx_vdec::fill_buffer_done(OMX_HANDLETYPE hComp,
-                               OMX_BUFFERHEADERTYPE * buffer)
+        OMX_BUFFERHEADERTYPE * buffer)
 {
-  OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pPMEMInfo = NULL;
-  if (!buffer || (buffer - m_out_mem_ptr) >= drv_ctx.op_buf.actualcount)
-  {
-    DEBUG_PRINT_ERROR("\n [FBD] ERROR in ptr(%p)", buffer);
-    return OMX_ErrorBadParameter;
-  }
-  else if (output_flush_progress)
-  {
-    DEBUG_PRINT_LOW("FBD: Buffer (%p) flushed", buffer);
-    buffer->nFilledLen = 0;
-    buffer->nTimeStamp = 0;
-    buffer->nFlags &= ~OMX_BUFFERFLAG_EXTRADATA;
-    buffer->nFlags &= ~QOMX_VIDEO_BUFFERFLAG_EOSEQ;
-    buffer->nFlags &= ~OMX_BUFFERFLAG_DATACORRUPT;
-  }
-
-  DEBUG_PRINT_LOW("\n fill_buffer_done: bufhdr = %p, bufhdr->pBuffer = %p",
-      buffer, buffer->pBuffer);
-  pending_output_buffers --;
-
-  if (buffer->nFlags & OMX_BUFFERFLAG_EOS)
-  {
-    DEBUG_PRINT_HIGH("\n Output EOS has been reached");
-    if (!output_flush_progress)
-      post_event((unsigned)NULL, (unsigned)NULL,
-              OMX_COMPONENT_GENERATE_EOS_DONE);
-
-    if (psource_frame)
-    {
-      m_cb.EmptyBufferDone(&m_cmp, m_app_data, psource_frame);
-      psource_frame = NULL;
+    OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pPMEMInfo = NULL;
+    if (!buffer || (buffer - m_out_mem_ptr) >= drv_ctx.op_buf.actualcount) {
+        DEBUG_PRINT_ERROR("\n [FBD] ERROR in ptr(%p)", buffer);
+        return OMX_ErrorBadParameter;
+    } else if (output_flush_progress) {
+        DEBUG_PRINT_LOW("FBD: Buffer (%p) flushed", buffer);
+        buffer->nFilledLen = 0;
+        buffer->nTimeStamp = 0;
+        buffer->nFlags &= ~OMX_BUFFERFLAG_EXTRADATA;
+        buffer->nFlags &= ~QOMX_VIDEO_BUFFERFLAG_EOSEQ;
+        buffer->nFlags &= ~OMX_BUFFERFLAG_DATACORRUPT;
     }
-    if (pdest_frame)
-    {
-      pdest_frame->nFilledLen = 0;
-      m_input_free_q.insert_entry((unsigned) pdest_frame,(unsigned)NULL,
-              (unsigned)NULL);
-      pdest_frame = NULL;
-    }
-  }
 
-  DEBUG_PRINT_LOW("\n In fill Buffer done call address %p ",buffer);
+    DEBUG_PRINT_LOW("\n fill_buffer_done: bufhdr = %p, bufhdr->pBuffer = %p",
+            buffer, buffer->pBuffer);
+    pending_output_buffers --;
+
+    if (buffer->nFlags & OMX_BUFFERFLAG_EOS) {
+        DEBUG_PRINT_HIGH("\n Output EOS has been reached");
+        if (!output_flush_progress)
+            post_event((unsigned)NULL, (unsigned)NULL,
+                    OMX_COMPONENT_GENERATE_EOS_DONE);
+
+        if (psource_frame) {
+            m_cb.EmptyBufferDone(&m_cmp, m_app_data, psource_frame);
+            psource_frame = NULL;
+        }
+        if (pdest_frame) {
+            pdest_frame->nFilledLen = 0;
+            m_input_free_q.insert_entry((unsigned) pdest_frame,(unsigned)NULL,
+                    (unsigned)NULL);
+            pdest_frame = NULL;
+        }
+    }
+
+    DEBUG_PRINT_LOW("\n In fill Buffer done call address %p ",buffer);
 #ifdef OUTPUT_BUFFER_LOG
-  if (outputBufferFile1 && buffer->nFilledLen)
-  {
-	  int buf_index = buffer - m_out_mem_ptr;
-      int stride = drv_ctx.video_resolution.stride;
-      int scanlines = drv_ctx.video_resolution.scan_lines;
-      char *temp = (char *)drv_ctx.ptr_outputbuffer[buf_index].bufferaddr;
-	  int i;
-	  int bytes_written = 0;
-	  for (i = 0; i < drv_ctx.video_resolution.frame_height; i++) {
-		  bytes_written = fwrite(temp, drv_ctx.video_resolution.frame_width, 1, outputBufferFile1);
-		  temp += stride;
-	  }
-	  temp = (char *)drv_ctx.ptr_outputbuffer[buf_index].bufferaddr + stride * scanlines;
-      int stride_c = stride;
-	  for(i = 0; i < drv_ctx.video_resolution.frame_height/2; i++) {
-		  bytes_written += fwrite(temp, drv_ctx.video_resolution.frame_width, 1, outputBufferFile1);
-		  temp += stride_c;
-	  }
-  }
+    if (outputBufferFile1 && buffer->nFilledLen) {
+        int buf_index = buffer - m_out_mem_ptr;
+        int stride = drv_ctx.video_resolution.stride;
+        int scanlines = drv_ctx.video_resolution.scan_lines;
+        char *temp = (char *)drv_ctx.ptr_outputbuffer[buf_index].bufferaddr;
+        int i;
+        int bytes_written = 0;
+        for (i = 0; i < drv_ctx.video_resolution.frame_height; i++) {
+            bytes_written = fwrite(temp, drv_ctx.video_resolution.frame_width, 1, outputBufferFile1);
+            temp += stride;
+        }
+        temp = (char *)drv_ctx.ptr_outputbuffer[buf_index].bufferaddr + stride * scanlines;
+        int stride_c = stride;
+        for (i = 0; i < drv_ctx.video_resolution.frame_height/2; i++) {
+            bytes_written += fwrite(temp, drv_ctx.video_resolution.frame_width, 1, outputBufferFile1);
+            temp += stride_c;
+        }
+    }
 #endif
 
-  /* For use buffer we need to copy the data */
-  if (!output_flush_progress)
-  {
-    time_stamp_dts.get_next_timestamp(buffer,
-    (drv_ctx.interlace != VDEC_InterlaceFrameProgressive)
-     ?true:false);
-    if (m_debug_timestamp)
-    {
-      {
-        OMX_TICKS expected_ts = 0;
-        m_timestamp_list.pop_min_ts(expected_ts);
-        DEBUG_PRINT_LOW("\n Current timestamp (%lld),Popped TIMESTAMP (%lld) from list",
-                       buffer->nTimeStamp, expected_ts);
+    /* For use buffer we need to copy the data */
+    if (!output_flush_progress) {
+        time_stamp_dts.get_next_timestamp(buffer,
+                (drv_ctx.interlace != VDEC_InterlaceFrameProgressive)
+                ?true:false);
+        if (m_debug_timestamp) {
+            {
+                OMX_TICKS expected_ts = 0;
+                m_timestamp_list.pop_min_ts(expected_ts);
+                DEBUG_PRINT_LOW("\n Current timestamp (%lld),Popped TIMESTAMP (%lld) from list",
+                        buffer->nTimeStamp, expected_ts);
 
-        if (buffer->nTimeStamp != expected_ts)
-        {
-          DEBUG_PRINT_ERROR("\n ERROR in omx_vdec::async_message_process timestamp Check");
+                if (buffer->nTimeStamp != expected_ts) {
+                    DEBUG_PRINT_ERROR("\n ERROR in omx_vdec::async_message_process timestamp Check");
+                }
+            }
         }
-      }
     }
-  }
-  if (m_cb.FillBufferDone)
-  {
-    if (buffer->nFilledLen > 0)
-    {
-      handle_extradata(buffer);
-      if (client_extradata & OMX_TIMEINFO_EXTRADATA)
-        // Keep min timestamp interval to handle corrupted bit stream scenario
-        set_frame_rate(buffer->nTimeStamp);
-      else if (arbitrary_bytes)
-        adjust_timestamp(buffer->nTimeStamp);
-      if (perf_flag)
-      {
-        if (!proc_frms)
-        {
-          dec_time.stop();
-          latency = dec_time.processing_time_us() - latency;
-          DEBUG_PRINT_HIGH(">>> FBD Metrics: Latency(%.2f)mS", latency / 1e3);
-          dec_time.start();
-          fps_metrics.start();
-        }
-        proc_frms++;
-        if (buffer->nFlags & OMX_BUFFERFLAG_EOS)
-        {
-          OMX_U64 proc_time = 0;
-          fps_metrics.stop();
-          proc_time = fps_metrics.processing_time_us();
-          DEBUG_PRINT_HIGH(">>> FBD Metrics: proc_frms(%lu) proc_time(%.2f)S fps(%.2f)",
+    if (m_cb.FillBufferDone) {
+        if (buffer->nFilledLen > 0) {
+            handle_extradata(buffer);
+            if (client_extradata & OMX_TIMEINFO_EXTRADATA)
+                // Keep min timestamp interval to handle corrupted bit stream scenario
+                set_frame_rate(buffer->nTimeStamp);
+            else if (arbitrary_bytes)
+                adjust_timestamp(buffer->nTimeStamp);
+            if (perf_flag) {
+                if (!proc_frms) {
+                    dec_time.stop();
+                    latency = dec_time.processing_time_us() - latency;
+                    DEBUG_PRINT_HIGH(">>> FBD Metrics: Latency(%.2f)mS", latency / 1e3);
+                    dec_time.start();
+                    fps_metrics.start();
+                }
+                proc_frms++;
+                if (buffer->nFlags & OMX_BUFFERFLAG_EOS) {
+                    OMX_U64 proc_time = 0;
+                    fps_metrics.stop();
+                    proc_time = fps_metrics.processing_time_us();
+                    DEBUG_PRINT_HIGH(">>> FBD Metrics: proc_frms(%lu) proc_time(%.2f)S fps(%.2f)",
                             proc_frms, (float)proc_time / 1e6,
                             (float)(1e6 * proc_frms) / proc_time);
-          proc_frms = 0;
-        }
-      }
+                    proc_frms = 0;
+                }
+            }
 
 #ifdef OUTPUT_EXTRADATA_LOG
-  if (outputExtradataFile)
-  {
+            if (outputExtradataFile) {
 
-    OMX_OTHER_EXTRADATATYPE *p_extra = NULL;
-    p_extra = (OMX_OTHER_EXTRADATATYPE *)
-           ((unsigned)(buffer->pBuffer + buffer->nOffset +
-            buffer->nFilledLen + 3)&(~3));
-    while(p_extra &&
-          (OMX_U8*)p_extra < (buffer->pBuffer + buffer->nAllocLen) )
-    {
-      DEBUG_PRINT_LOW("\nWRITING extradata, size=%d,type=%d",p_extra->nSize, p_extra->eType);
-      fwrite (p_extra,1,p_extra->nSize,outputExtradataFile);
-      if (p_extra->eType == OMX_ExtraDataNone)
-      {
-        break;
-      }
-      p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
-    }
-  }
+                OMX_OTHER_EXTRADATATYPE *p_extra = NULL;
+                p_extra = (OMX_OTHER_EXTRADATATYPE *)
+                    ((unsigned)(buffer->pBuffer + buffer->nOffset +
+                        buffer->nFilledLen + 3)&(~3));
+                while (p_extra &&
+                        (OMX_U8*)p_extra < (buffer->pBuffer + buffer->nAllocLen) ) {
+                    DEBUG_PRINT_LOW("\nWRITING extradata, size=%d,type=%d",p_extra->nSize, p_extra->eType);
+                    fwrite (p_extra,1,p_extra->nSize,outputExtradataFile);
+                    if (p_extra->eType == OMX_ExtraDataNone) {
+                        break;
+                    }
+                    p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+                }
+            }
 #endif
-    }
-    if (buffer->nFlags & OMX_BUFFERFLAG_EOS){
-      prev_ts = LLONG_MAX;
-      rst_prev_ts = true;
-      }
+        }
+        if (buffer->nFlags & OMX_BUFFERFLAG_EOS) {
+            prev_ts = LLONG_MAX;
+            rst_prev_ts = true;
+        }
 
-    pPMEMInfo = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
-                ((OMX_QCOM_PLATFORM_PRIVATE_LIST *)
-                buffer->pPlatformPrivate)->entryList->entry;
-    DEBUG_PRINT_LOW("\n Before FBD callback Accessed Pmeminfo %d",pPMEMInfo->pmem_fd);
+        pPMEMInfo = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
+            ((OMX_QCOM_PLATFORM_PRIVATE_LIST *)
+             buffer->pPlatformPrivate)->entryList->entry;
+        DEBUG_PRINT_LOW("\n Before FBD callback Accessed Pmeminfo %d",pPMEMInfo->pmem_fd);
 #ifdef _ANDROID_ICS_
-    if (m_enable_android_native_buffers)
-    {
-     if (native_buffer[buffer - m_out_mem_ptr].inuse) {
-      if (GENLOCK_NO_ERROR != genlock_unlock_buffer(native_buffer[buffer - m_out_mem_ptr].nativehandle)) {
-        DEBUG_PRINT_ERROR("Unlocking genlock failed");
-        return OMX_ErrorInsufficientResources;
-      }
-      else {
-        native_buffer[buffer - m_out_mem_ptr].inuse = false;
-      }
-     }
-    }
+        if (m_enable_android_native_buffers) {
+            if (native_buffer[buffer - m_out_mem_ptr].inuse) {
+                if (GENLOCK_NO_ERROR != genlock_unlock_buffer(native_buffer[buffer - m_out_mem_ptr].nativehandle)) {
+                    DEBUG_PRINT_ERROR("Unlocking genlock failed");
+                    return OMX_ErrorInsufficientResources;
+                } else {
+                    native_buffer[buffer - m_out_mem_ptr].inuse = false;
+                }
+            }
+        }
 #endif
-    OMX_BUFFERHEADERTYPE *il_buffer;
-    il_buffer = client_buffers.get_il_buf_hdr(buffer);
-    if (il_buffer)
-      m_cb.FillBufferDone (hComp,m_app_data,il_buffer);
-    else {
-      DEBUG_PRINT_ERROR("Invalid buffer address from get_il_buf_hdr");
-      return OMX_ErrorBadParameter;
+        OMX_BUFFERHEADERTYPE *il_buffer;
+        il_buffer = client_buffers.get_il_buf_hdr(buffer);
+        if (il_buffer)
+            m_cb.FillBufferDone (hComp,m_app_data,il_buffer);
+        else {
+            DEBUG_PRINT_ERROR("Invalid buffer address from get_il_buf_hdr");
+            return OMX_ErrorBadParameter;
+        }
+        DEBUG_PRINT_LOW("\n After Fill Buffer Done callback %d",pPMEMInfo->pmem_fd);
+    } else {
+        return OMX_ErrorBadParameter;
     }
-    DEBUG_PRINT_LOW("\n After Fill Buffer Done callback %d",pPMEMInfo->pmem_fd);
-  }
-  else
-  {
-    return OMX_ErrorBadParameter;
-  }
 
-  return OMX_ErrorNone;
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_vdec::empty_buffer_done(OMX_HANDLETYPE         hComp,
-                                          OMX_BUFFERHEADERTYPE* buffer)
+        OMX_BUFFERHEADERTYPE* buffer)
 {
 
-    if (buffer == NULL || ((buffer - m_inp_mem_ptr) > drv_ctx.ip_buf.actualcount))
-    {
+    if (buffer == NULL || ((buffer - m_inp_mem_ptr) > drv_ctx.ip_buf.actualcount)) {
         DEBUG_PRINT_ERROR("\n empty_buffer_done: ERROR bufhdr = %p", buffer);
-       return OMX_ErrorBadParameter;
+        return OMX_ErrorBadParameter;
     }
 
     DEBUG_PRINT_LOW("\n empty_buffer_done: bufhdr = %p, bufhdr->pBuffer = %p",
-        buffer, buffer->pBuffer);
+            buffer, buffer->pBuffer);
     pending_input_buffers--;
 
-    if (arbitrary_bytes)
-    {
-      if (pdest_frame == NULL && input_flush_progress == false)
-      {
-        DEBUG_PRINT_LOW("\n Push input from buffer done address of Buffer %p",buffer);
-        pdest_frame = buffer;
-        buffer->nFilledLen = 0;
-        buffer->nTimeStamp = LLONG_MAX;
-        push_input_buffer (hComp);
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("\n Push buffer into freeq address of Buffer %p",buffer);
-        buffer->nFilledLen = 0;
-        if (!m_input_free_q.insert_entry((unsigned)buffer,
-                   (unsigned)NULL, (unsigned)NULL))
-        {
-          DEBUG_PRINT_ERROR("\nERROR:i/p free Queue is FULL Error");
+    if (arbitrary_bytes) {
+        if (pdest_frame == NULL && input_flush_progress == false) {
+            DEBUG_PRINT_LOW("\n Push input from buffer done address of Buffer %p",buffer);
+            pdest_frame = buffer;
+            buffer->nFilledLen = 0;
+            buffer->nTimeStamp = LLONG_MAX;
+            push_input_buffer (hComp);
+        } else {
+            DEBUG_PRINT_LOW("\n Push buffer into freeq address of Buffer %p",buffer);
+            buffer->nFilledLen = 0;
+            if (!m_input_free_q.insert_entry((unsigned)buffer,
+                        (unsigned)NULL, (unsigned)NULL)) {
+                DEBUG_PRINT_ERROR("\nERROR:i/p free Queue is FULL Error");
+            }
         }
-      }
-    }
-    else if(m_cb.EmptyBufferDone)
-    {
+    } else if (m_cb.EmptyBufferDone) {
         buffer->nFilledLen = 0;
-        if (input_use_buffer == true){
+        if (input_use_buffer == true) {
             buffer = &m_inp_heap_ptr[buffer-m_inp_mem_ptr];
         }
         m_cb.EmptyBufferDone(hComp ,m_app_data, buffer);
@@ -6864,710 +6114,614 @@
 
 int omx_vdec::async_message_process (void *context, void* message)
 {
-  omx_vdec* omx = NULL;
-  struct vdec_msginfo *vdec_msg = NULL;
-  OMX_BUFFERHEADERTYPE* omxhdr = NULL;
-  struct v4l2_buffer *v4l2_buf_ptr = NULL;
-  struct vdec_output_frameinfo *output_respbuf = NULL;
-	int rc=1;
-  if (context == NULL || message == NULL)
-  {
-    DEBUG_PRINT_ERROR("\n FATAL ERROR in omx_vdec::async_message_process NULL Check");
-    return -1;
-  }
-  vdec_msg = (struct vdec_msginfo *)message;
-
-  omx = reinterpret_cast<omx_vdec*>(context);
-
-  switch (vdec_msg->msgcode)
-  {
-
-  case VDEC_MSG_EVT_HW_ERROR:
-    omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_HARDWARE_ERROR);
-  break;
-
-  case VDEC_MSG_RESP_START_DONE:
-    omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_START_DONE);
-  break;
-
-  case VDEC_MSG_RESP_STOP_DONE:
-    omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_STOP_DONE);
-  break;
-
-  case VDEC_MSG_RESP_RESUME_DONE:
-    omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_RESUME_DONE);
-  break;
-
-  case VDEC_MSG_RESP_PAUSE_DONE:
-    omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_PAUSE_DONE);
-  break;
-
-  case VDEC_MSG_RESP_FLUSH_INPUT_DONE:
-    omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH);
-    break;
-  case VDEC_MSG_RESP_FLUSH_OUTPUT_DONE:
-    omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH);
-    break;
-  case VDEC_MSG_RESP_INPUT_FLUSHED:
-  case VDEC_MSG_RESP_INPUT_BUFFER_DONE:
-
-    /* omxhdr = (OMX_BUFFERHEADERTYPE* )
-              vdec_msg->msgdata.input_frame_clientdata; */
-
-    v4l2_buf_ptr = (v4l2_buffer*)vdec_msg->msgdata.input_frame_clientdata;
-    omxhdr=omx->m_inp_mem_ptr+v4l2_buf_ptr->index;
-    if (omxhdr == NULL ||
-       ((omxhdr - omx->m_inp_mem_ptr) > omx->drv_ctx.ip_buf.actualcount) )
-    {
-       omxhdr = NULL;
-       vdec_msg->status_code = VDEC_S_EFATAL;
+    omx_vdec* omx = NULL;
+    struct vdec_msginfo *vdec_msg = NULL;
+    OMX_BUFFERHEADERTYPE* omxhdr = NULL;
+    struct v4l2_buffer *v4l2_buf_ptr = NULL;
+    struct vdec_output_frameinfo *output_respbuf = NULL;
+    int rc=1;
+    if (context == NULL || message == NULL) {
+        DEBUG_PRINT_ERROR("\n FATAL ERROR in omx_vdec::async_message_process NULL Check");
+        return -1;
     }
+    vdec_msg = (struct vdec_msginfo *)message;
 
-    omx->post_event ((unsigned int)omxhdr,vdec_msg->status_code,
-                     OMX_COMPONENT_GENERATE_EBD);
-    break;
-    case VDEC_MSG_EVT_INFO_FIELD_DROPPED:
-      int64_t *timestamp;
-      timestamp = (int64_t *) malloc(sizeof(int64_t));
-      if (timestamp) {
-        *timestamp = vdec_msg->msgdata.output_frame.time_stamp;
-        omx->post_event ((unsigned int)timestamp, vdec_msg->status_code,
-                         OMX_COMPONENT_GENERATE_INFO_FIELD_DROPPED);
-        DEBUG_PRINT_HIGH("\nField dropped time stamp is %lld",
-             vdec_msg->msgdata.output_frame.time_stamp);
-      }
-      break;
-  case VDEC_MSG_RESP_OUTPUT_FLUSHED:
-    case VDEC_MSG_RESP_OUTPUT_BUFFER_DONE:
+    omx = reinterpret_cast<omx_vdec*>(context);
 
-      v4l2_buf_ptr = (v4l2_buffer*)vdec_msg->msgdata.output_frame.client_data;
-      omxhdr=omx->m_out_mem_ptr+v4l2_buf_ptr->index;
-      DEBUG_PRINT_LOW("[RespBufDone] Buf(%p) Ts(%lld) Pic_type(%u)",
-		      omxhdr, vdec_msg->msgdata.output_frame.time_stamp,
-		      vdec_msg->msgdata.output_frame.pic_type);
+    switch (vdec_msg->msgcode) {
 
-    if (omxhdr && omxhdr->pOutputPortPrivate &&
-        ((omxhdr - omx->m_out_mem_ptr) < omx->drv_ctx.op_buf.actualcount) &&
-         (((struct vdec_output_frameinfo *)omxhdr->pOutputPortPrivate
-            - omx->drv_ctx.ptr_respbuffer) < omx->drv_ctx.op_buf.actualcount))
-    {
-      if ( vdec_msg->msgdata.output_frame.len <=  omxhdr->nAllocLen)
-      {
-	omxhdr->nFilledLen = vdec_msg->msgdata.output_frame.len;
-	omxhdr->nOffset = vdec_msg->msgdata.output_frame.offset;
-        omxhdr->nTimeStamp = vdec_msg->msgdata.output_frame.time_stamp;
-        omxhdr->nFlags = omx->m_out_mem_ptr[v4l2_buf_ptr->index].nFlags;
+        case VDEC_MSG_EVT_HW_ERROR:
+            omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_HARDWARE_ERROR);
+            break;
 
-	if (v4l2_buf_ptr->flags & V4L2_BUF_FLAG_EOS)
-	{
-	  omxhdr->nFlags |= OMX_BUFFERFLAG_EOS;
-	  //rc = -1;
-	}
-  if (v4l2_buf_ptr->flags & V4L2_QCOM_BUF_FLAG_EOSEQ)
-  {
-    omxhdr->nFlags |= QOMX_VIDEO_BUFFERFLAG_EOSEQ;
-  }
-  vdec_msg->msgdata.output_frame.bufferaddr =
-      omx->drv_ctx.ptr_outputbuffer[v4l2_buf_ptr->index].bufferaddr;
-  if (omxhdr->nFilledLen && (((unsigned)omx->rectangle.nLeft !=
-                      vdec_msg->msgdata.output_frame.framesize.left)
-        || ((unsigned)omx->rectangle.nTop != vdec_msg->msgdata.output_frame.framesize.top)
-        || (omx->rectangle.nWidth != vdec_msg->msgdata.output_frame.framesize.right)
-        || (omx->rectangle.nHeight != vdec_msg->msgdata.output_frame.framesize.bottom))) {
-    omx->rectangle.nLeft = vdec_msg->msgdata.output_frame.framesize.left;
-    omx->rectangle.nTop = vdec_msg->msgdata.output_frame.framesize.top;
-    omx->rectangle.nWidth = vdec_msg->msgdata.output_frame.framesize.right;
-    omx->rectangle.nHeight = vdec_msg->msgdata.output_frame.framesize.bottom;
-    DEBUG_PRINT_HIGH("\n Crop information has changed\n");
-    omx->post_event (OMX_CORE_OUTPUT_PORT_INDEX, OMX_IndexConfigCommonOutputCrop,
-        OMX_COMPONENT_GENERATE_PORT_RECONFIG);
-  }
-        output_respbuf = (struct vdec_output_frameinfo *)\
-                          omxhdr->pOutputPortPrivate;
-        output_respbuf->len = vdec_msg->msgdata.output_frame.len;
-        output_respbuf->offset = vdec_msg->msgdata.output_frame.offset;
-        if (v4l2_buf_ptr->flags & V4L2_BUF_FLAG_KEYFRAME)
-        {
-          output_respbuf->pic_type = PICTURE_TYPE_I;
-        }
-        if (v4l2_buf_ptr->flags & V4L2_BUF_FLAG_PFRAME)
-        {
-          output_respbuf->pic_type = PICTURE_TYPE_P;
-        }
-        if (v4l2_buf_ptr->flags & V4L2_BUF_FLAG_BFRAME) {
-          output_respbuf->pic_type = PICTURE_TYPE_B;
-        }
+        case VDEC_MSG_RESP_START_DONE:
+            omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_START_DONE);
+            break;
 
-        if (omx->output_use_buffer)
-          memcpy ( omxhdr->pBuffer, (void *)
-                   ((unsigned long)vdec_msg->msgdata.output_frame.bufferaddr +
-                    (unsigned long)vdec_msg->msgdata.output_frame.offset),
-                    vdec_msg->msgdata.output_frame.len);
-      }
-      else
-        omxhdr->nFilledLen = 0;
-      omx->post_event ((unsigned int)omxhdr, vdec_msg->status_code,
-                       OMX_COMPONENT_GENERATE_FBD);
+        case VDEC_MSG_RESP_STOP_DONE:
+            omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_STOP_DONE);
+            break;
+
+        case VDEC_MSG_RESP_RESUME_DONE:
+            omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_RESUME_DONE);
+            break;
+
+        case VDEC_MSG_RESP_PAUSE_DONE:
+            omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_PAUSE_DONE);
+            break;
+
+        case VDEC_MSG_RESP_FLUSH_INPUT_DONE:
+            omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH);
+            break;
+        case VDEC_MSG_RESP_FLUSH_OUTPUT_DONE:
+            omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH);
+            break;
+        case VDEC_MSG_RESP_INPUT_FLUSHED:
+        case VDEC_MSG_RESP_INPUT_BUFFER_DONE:
+
+            /* omxhdr = (OMX_BUFFERHEADERTYPE* )
+               vdec_msg->msgdata.input_frame_clientdata; */
+
+            v4l2_buf_ptr = (v4l2_buffer*)vdec_msg->msgdata.input_frame_clientdata;
+            omxhdr=omx->m_inp_mem_ptr+v4l2_buf_ptr->index;
+            if (omxhdr == NULL ||
+                    ((omxhdr - omx->m_inp_mem_ptr) > omx->drv_ctx.ip_buf.actualcount) ) {
+                omxhdr = NULL;
+                vdec_msg->status_code = VDEC_S_EFATAL;
+            }
+
+            omx->post_event ((unsigned int)omxhdr,vdec_msg->status_code,
+                    OMX_COMPONENT_GENERATE_EBD);
+            break;
+        case VDEC_MSG_EVT_INFO_FIELD_DROPPED:
+            int64_t *timestamp;
+            timestamp = (int64_t *) malloc(sizeof(int64_t));
+            if (timestamp) {
+                *timestamp = vdec_msg->msgdata.output_frame.time_stamp;
+                omx->post_event ((unsigned int)timestamp, vdec_msg->status_code,
+                        OMX_COMPONENT_GENERATE_INFO_FIELD_DROPPED);
+                DEBUG_PRINT_HIGH("\nField dropped time stamp is %lld",
+                        vdec_msg->msgdata.output_frame.time_stamp);
+            }
+            break;
+        case VDEC_MSG_RESP_OUTPUT_FLUSHED:
+        case VDEC_MSG_RESP_OUTPUT_BUFFER_DONE:
+
+            v4l2_buf_ptr = (v4l2_buffer*)vdec_msg->msgdata.output_frame.client_data;
+            omxhdr=omx->m_out_mem_ptr+v4l2_buf_ptr->index;
+            DEBUG_PRINT_LOW("[RespBufDone] Buf(%p) Ts(%lld) Pic_type(%u)",
+                    omxhdr, vdec_msg->msgdata.output_frame.time_stamp,
+                    vdec_msg->msgdata.output_frame.pic_type);
+
+            if (omxhdr && omxhdr->pOutputPortPrivate &&
+                    ((omxhdr - omx->m_out_mem_ptr) < omx->drv_ctx.op_buf.actualcount) &&
+                    (((struct vdec_output_frameinfo *)omxhdr->pOutputPortPrivate
+                      - omx->drv_ctx.ptr_respbuffer) < omx->drv_ctx.op_buf.actualcount)) {
+                if ( vdec_msg->msgdata.output_frame.len <=  omxhdr->nAllocLen) {
+                    omxhdr->nFilledLen = vdec_msg->msgdata.output_frame.len;
+                    omxhdr->nOffset = vdec_msg->msgdata.output_frame.offset;
+                    omxhdr->nTimeStamp = vdec_msg->msgdata.output_frame.time_stamp;
+                    omxhdr->nFlags = omx->m_out_mem_ptr[v4l2_buf_ptr->index].nFlags;
+
+                    if (v4l2_buf_ptr->flags & V4L2_BUF_FLAG_EOS) {
+                        omxhdr->nFlags |= OMX_BUFFERFLAG_EOS;
+                        //rc = -1;
+                    }
+                    if (v4l2_buf_ptr->flags & V4L2_QCOM_BUF_FLAG_EOSEQ) {
+                        omxhdr->nFlags |= QOMX_VIDEO_BUFFERFLAG_EOSEQ;
+                    }
+                    vdec_msg->msgdata.output_frame.bufferaddr =
+                        omx->drv_ctx.ptr_outputbuffer[v4l2_buf_ptr->index].bufferaddr;
+                    if (omxhdr->nFilledLen && (((unsigned)omx->rectangle.nLeft !=
+                                    vdec_msg->msgdata.output_frame.framesize.left)
+                                || ((unsigned)omx->rectangle.nTop != vdec_msg->msgdata.output_frame.framesize.top)
+                                || (omx->rectangle.nWidth != vdec_msg->msgdata.output_frame.framesize.right)
+                                || (omx->rectangle.nHeight != vdec_msg->msgdata.output_frame.framesize.bottom))) {
+                        omx->rectangle.nLeft = vdec_msg->msgdata.output_frame.framesize.left;
+                        omx->rectangle.nTop = vdec_msg->msgdata.output_frame.framesize.top;
+                        omx->rectangle.nWidth = vdec_msg->msgdata.output_frame.framesize.right;
+                        omx->rectangle.nHeight = vdec_msg->msgdata.output_frame.framesize.bottom;
+                        DEBUG_PRINT_HIGH("\n Crop information has changed\n");
+                        omx->post_event (OMX_CORE_OUTPUT_PORT_INDEX, OMX_IndexConfigCommonOutputCrop,
+                                OMX_COMPONENT_GENERATE_PORT_RECONFIG);
+                    }
+                    output_respbuf = (struct vdec_output_frameinfo *)\
+                                     omxhdr->pOutputPortPrivate;
+                    output_respbuf->len = vdec_msg->msgdata.output_frame.len;
+                    output_respbuf->offset = vdec_msg->msgdata.output_frame.offset;
+                    if (v4l2_buf_ptr->flags & V4L2_BUF_FLAG_KEYFRAME) {
+                        output_respbuf->pic_type = PICTURE_TYPE_I;
+                    }
+                    if (v4l2_buf_ptr->flags & V4L2_BUF_FLAG_PFRAME) {
+                        output_respbuf->pic_type = PICTURE_TYPE_P;
+                    }
+                    if (v4l2_buf_ptr->flags & V4L2_BUF_FLAG_BFRAME) {
+                        output_respbuf->pic_type = PICTURE_TYPE_B;
+                    }
+
+                    if (omx->output_use_buffer)
+                        memcpy ( omxhdr->pBuffer, (void *)
+                                ((unsigned long)vdec_msg->msgdata.output_frame.bufferaddr +
+                                 (unsigned long)vdec_msg->msgdata.output_frame.offset),
+                                vdec_msg->msgdata.output_frame.len);
+                } else
+                    omxhdr->nFilledLen = 0;
+                omx->post_event ((unsigned int)omxhdr, vdec_msg->status_code,
+                        OMX_COMPONENT_GENERATE_FBD);
+            } else if (vdec_msg->msgdata.output_frame.flags & OMX_BUFFERFLAG_EOS)
+                omx->post_event ((unsigned int)NULL, vdec_msg->status_code,
+                        OMX_COMPONENT_GENERATE_EOS_DONE);
+            else
+                omx->post_event ((unsigned int)NULL, vdec_msg->status_code,
+                        OMX_COMPONENT_GENERATE_HARDWARE_ERROR);
+            break;
+        case VDEC_MSG_EVT_CONFIG_CHANGED:
+            DEBUG_PRINT_HIGH("\n Port settings changed");
+            omx->post_event (OMX_CORE_OUTPUT_PORT_INDEX, OMX_IndexParamPortDefinition,
+                    OMX_COMPONENT_GENERATE_PORT_RECONFIG);
+            break;
+        case VDEC_MSG_EVT_INFO_CONFIG_CHANGED:
+            {
+                DEBUG_PRINT_HIGH("\n Port settings changed info");
+                // get_buffer_req and populate port defn structure
+                OMX_ERRORTYPE eRet = OMX_ErrorNone;
+                struct v4l2_format fmt;
+                int ret;
+                fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+                ret = ioctl(omx->drv_ctx.video_driver_fd, VIDIOC_G_FMT, &fmt);
+                omx->update_resolution(fmt.fmt.pix_mp.width, fmt.fmt.pix_mp.height);
+                omx->drv_ctx.video_resolution.stride = fmt.fmt.pix_mp.plane_fmt[0].bytesperline;
+                omx->drv_ctx.video_resolution.scan_lines = fmt.fmt.pix_mp.plane_fmt[0].reserved[0];
+                omx->m_port_def.nPortIndex = 1;
+                eRet = omx->update_portdef(&(omx->m_port_def));
+                omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
+                        OMX_COMPONENT_GENERATE_INFO_PORT_RECONFIG);
+                break;
+            }
+        default:
+            break;
     }
-    else if (vdec_msg->msgdata.output_frame.flags & OMX_BUFFERFLAG_EOS)
-      omx->post_event ((unsigned int)NULL, vdec_msg->status_code,
-                       OMX_COMPONENT_GENERATE_EOS_DONE);
-    else
-      omx->post_event ((unsigned int)NULL, vdec_msg->status_code,
-                       OMX_COMPONENT_GENERATE_HARDWARE_ERROR);
-    break;
-  case VDEC_MSG_EVT_CONFIG_CHANGED:
-    DEBUG_PRINT_HIGH("\n Port settings changed");
-    omx->post_event (OMX_CORE_OUTPUT_PORT_INDEX, OMX_IndexParamPortDefinition,
-        OMX_COMPONENT_GENERATE_PORT_RECONFIG);
-    break;
-  case VDEC_MSG_EVT_INFO_CONFIG_CHANGED:
-  {
-    DEBUG_PRINT_HIGH("\n Port settings changed info");
-    // get_buffer_req and populate port defn structure
-    OMX_ERRORTYPE eRet = OMX_ErrorNone;
-    struct v4l2_format fmt;
-    int ret;
-    fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-    ret = ioctl(omx->drv_ctx.video_driver_fd, VIDIOC_G_FMT, &fmt);
-    omx->update_resolution(fmt.fmt.pix_mp.width, fmt.fmt.pix_mp.height);
-    omx->drv_ctx.video_resolution.stride = fmt.fmt.pix_mp.plane_fmt[0].bytesperline;
-    omx->drv_ctx.video_resolution.scan_lines = fmt.fmt.pix_mp.plane_fmt[0].reserved[0];
-    omx->m_port_def.nPortIndex = 1;
-    eRet = omx->update_portdef(&(omx->m_port_def));
-    omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
-                OMX_COMPONENT_GENERATE_INFO_PORT_RECONFIG);
-    break;
-  }
-  default:
-    break;
-  }
-  return rc;
+    return rc;
 }
 
 OMX_ERRORTYPE omx_vdec::empty_this_buffer_proxy_arbitrary (
-                                                   OMX_HANDLETYPE hComp,
-                                                   OMX_BUFFERHEADERTYPE *buffer
-                                                           )
+        OMX_HANDLETYPE hComp,
+        OMX_BUFFERHEADERTYPE *buffer
+        )
 {
-  unsigned address,p2,id;
-  DEBUG_PRINT_LOW("\n Empty this arbitrary");
+    unsigned address,p2,id;
+    DEBUG_PRINT_LOW("\n Empty this arbitrary");
 
-  if (buffer == NULL)
-  {
-    return OMX_ErrorBadParameter;
-  }
-  DEBUG_PRINT_LOW("\n ETBProxyArb: bufhdr = %p, bufhdr->pBuffer = %p", buffer, buffer->pBuffer);
-  DEBUG_PRINT_LOW("\n ETBProxyArb: nFilledLen %u, flags %d, timestamp %u",
-        buffer->nFilledLen, buffer->nFlags, (unsigned)buffer->nTimeStamp);
-
-  /* return zero length and not an EOS buffer */
-  /* return buffer if input flush in progress */
-  if ((input_flush_progress == true) || ((buffer->nFilledLen == 0) &&
-     ((buffer->nFlags & OMX_BUFFERFLAG_EOS) == 0)))
-  {
-    DEBUG_PRINT_HIGH("\n return zero legth buffer or flush in progress");
-    m_cb.EmptyBufferDone (hComp,m_app_data,buffer);
-    return OMX_ErrorNone;
-  }
-
-  if (psource_frame == NULL)
-  {
-    DEBUG_PRINT_LOW("\n Set Buffer as source Buffer %p time stamp %d",buffer,buffer->nTimeStamp);
-    psource_frame = buffer;
-    DEBUG_PRINT_LOW("\n Try to Push One Input Buffer ");
-    push_input_buffer (hComp);
-  }
-  else
-  {
-    DEBUG_PRINT_LOW("\n Push the source buffer into pendingq %p",buffer);
-    if (!m_input_pending_q.insert_entry((unsigned)buffer, (unsigned)NULL,
-                (unsigned)NULL))
-    {
-      return OMX_ErrorBadParameter;
+    if (buffer == NULL) {
+        return OMX_ErrorBadParameter;
     }
-  }
+    DEBUG_PRINT_LOW("\n ETBProxyArb: bufhdr = %p, bufhdr->pBuffer = %p", buffer, buffer->pBuffer);
+    DEBUG_PRINT_LOW("\n ETBProxyArb: nFilledLen %u, flags %d, timestamp %u",
+            buffer->nFilledLen, buffer->nFlags, (unsigned)buffer->nTimeStamp);
+
+    /* return zero length and not an EOS buffer */
+    /* return buffer if input flush in progress */
+    if ((input_flush_progress == true) || ((buffer->nFilledLen == 0) &&
+                ((buffer->nFlags & OMX_BUFFERFLAG_EOS) == 0))) {
+        DEBUG_PRINT_HIGH("\n return zero legth buffer or flush in progress");
+        m_cb.EmptyBufferDone (hComp,m_app_data,buffer);
+        return OMX_ErrorNone;
+    }
+
+    if (psource_frame == NULL) {
+        DEBUG_PRINT_LOW("\n Set Buffer as source Buffer %p time stamp %d",buffer,buffer->nTimeStamp);
+        psource_frame = buffer;
+        DEBUG_PRINT_LOW("\n Try to Push One Input Buffer ");
+        push_input_buffer (hComp);
+    } else {
+        DEBUG_PRINT_LOW("\n Push the source buffer into pendingq %p",buffer);
+        if (!m_input_pending_q.insert_entry((unsigned)buffer, (unsigned)NULL,
+                    (unsigned)NULL)) {
+            return OMX_ErrorBadParameter;
+        }
+    }
 
 
-  return OMX_ErrorNone;
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_vdec::push_input_buffer (OMX_HANDLETYPE hComp)
 {
-  unsigned address,p2,id;
-  OMX_ERRORTYPE ret = OMX_ErrorNone;
+    unsigned address,p2,id;
+    OMX_ERRORTYPE ret = OMX_ErrorNone;
 
-  if (pdest_frame == NULL || psource_frame == NULL)
-  {
-    /*Check if we have a destination buffer*/
-    if (pdest_frame == NULL)
-    {
-      DEBUG_PRINT_LOW("\n Get a Destination buffer from the queue");
-      if (m_input_free_q.m_size)
-      {
-        m_input_free_q.pop_entry(&address,&p2,&id);
-        pdest_frame = (OMX_BUFFERHEADERTYPE *)address;
-        pdest_frame->nFilledLen = 0;
-        pdest_frame->nTimeStamp = LLONG_MAX;
-        DEBUG_PRINT_LOW("\n Address of Pmem Buffer %p",pdest_frame);
-      }
+    if (pdest_frame == NULL || psource_frame == NULL) {
+        /*Check if we have a destination buffer*/
+        if (pdest_frame == NULL) {
+            DEBUG_PRINT_LOW("\n Get a Destination buffer from the queue");
+            if (m_input_free_q.m_size) {
+                m_input_free_q.pop_entry(&address,&p2,&id);
+                pdest_frame = (OMX_BUFFERHEADERTYPE *)address;
+                pdest_frame->nFilledLen = 0;
+                pdest_frame->nTimeStamp = LLONG_MAX;
+                DEBUG_PRINT_LOW("\n Address of Pmem Buffer %p",pdest_frame);
+            }
+        }
+
+        /*Check if we have a destination buffer*/
+        if (psource_frame == NULL) {
+            DEBUG_PRINT_LOW("\n Get a source buffer from the queue");
+            if (m_input_pending_q.m_size) {
+                m_input_pending_q.pop_entry(&address,&p2,&id);
+                psource_frame = (OMX_BUFFERHEADERTYPE *)address;
+                DEBUG_PRINT_LOW("\n Next source Buffer %p time stamp %d",psource_frame,
+                        psource_frame->nTimeStamp);
+                DEBUG_PRINT_LOW("\n Next source Buffer flag %d length %d",
+                        psource_frame->nFlags,psource_frame->nFilledLen);
+
+            }
+        }
+
     }
 
-    /*Check if we have a destination buffer*/
-    if (psource_frame == NULL)
-    {
-      DEBUG_PRINT_LOW("\n Get a source buffer from the queue");
-      if (m_input_pending_q.m_size)
-      {
-        m_input_pending_q.pop_entry(&address,&p2,&id);
-        psource_frame = (OMX_BUFFERHEADERTYPE *)address;
-        DEBUG_PRINT_LOW("\n Next source Buffer %p time stamp %d",psource_frame,
-                psource_frame->nTimeStamp);
-        DEBUG_PRINT_LOW("\n Next source Buffer flag %d length %d",
-        psource_frame->nFlags,psource_frame->nFilledLen);
-
-      }
+    while ((pdest_frame != NULL) && (psource_frame != NULL)) {
+        switch (codec_type_parse) {
+            case CODEC_TYPE_MPEG4:
+            case CODEC_TYPE_H263:
+            case CODEC_TYPE_MPEG2:
+                ret =  push_input_sc_codec(hComp);
+                break;
+            case CODEC_TYPE_H264:
+                ret = push_input_h264(hComp);
+                break;
+            case CODEC_TYPE_HEVC:
+                ret = push_input_hevc(hComp);
+                break;
+            case CODEC_TYPE_VC1:
+                ret = push_input_vc1(hComp);
+                break;
+            default:
+                break;
+        }
+        if (ret != OMX_ErrorNone) {
+            DEBUG_PRINT_ERROR("\n Pushing input Buffer Failed");
+            omx_report_error ();
+            break;
+        }
     }
 
-  }
-
-  while ((pdest_frame != NULL) && (psource_frame != NULL))
-  {
-    switch (codec_type_parse)
-    {
-      case CODEC_TYPE_MPEG4:
-      case CODEC_TYPE_H263:
-      case CODEC_TYPE_MPEG2:
-        ret =  push_input_sc_codec(hComp);
-      break;
-      case CODEC_TYPE_H264:
-        ret = push_input_h264(hComp);
-      break;
-      case CODEC_TYPE_HEVC:
-        ret = push_input_hevc(hComp);
-      break;
-      case CODEC_TYPE_VC1:
-        ret = push_input_vc1(hComp);
-      break;
-      default:
-      break;
-    }
-    if (ret != OMX_ErrorNone)
-    {
-      DEBUG_PRINT_ERROR("\n Pushing input Buffer Failed");
-      omx_report_error ();
-      break;
-    }
-  }
-
-  return ret;
+    return ret;
 }
 
 OMX_ERRORTYPE omx_vdec::push_input_sc_codec(OMX_HANDLETYPE hComp)
 {
-  OMX_U32 partial_frame = 1;
-  OMX_BOOL generate_ebd = OMX_TRUE;
-  unsigned address,p2,id;
+    OMX_U32 partial_frame = 1;
+    OMX_BOOL generate_ebd = OMX_TRUE;
+    unsigned address,p2,id;
 
-  DEBUG_PRINT_LOW("\n Start Parsing the bit stream address %p TimeStamp %d",
-        psource_frame,psource_frame->nTimeStamp);
-  if (m_frame_parser.parse_sc_frame(psource_frame,
-                                       pdest_frame,&partial_frame) == -1)
-  {
-    DEBUG_PRINT_ERROR("\n Error In Parsing Return Error");
-    return OMX_ErrorBadParameter;
-  }
-
-  if (partial_frame == 0)
-  {
-    DEBUG_PRINT_LOW("\n Frame size %d source %p frame count %d",
-          pdest_frame->nFilledLen,psource_frame,frame_count);
-
-
-    DEBUG_PRINT_LOW("\n TimeStamp updated %d",pdest_frame->nTimeStamp);
-    /*First Parsed buffer will have only header Hence skip*/
-    if (frame_count == 0)
-    {
-      DEBUG_PRINT_LOW("\n H263/MPEG4 Codec First Frame ");
-
-      if(codec_type_parse == CODEC_TYPE_MPEG4 ||
-         codec_type_parse == CODEC_TYPE_DIVX) {
-        mp4StreamType psBits;
-        psBits.data = pdest_frame->pBuffer + pdest_frame->nOffset;
-        psBits.numBytes = pdest_frame->nFilledLen;
-        mp4_headerparser.parseHeader(&psBits);
-      }
-
-      frame_count++;
+    DEBUG_PRINT_LOW("\n Start Parsing the bit stream address %p TimeStamp %d",
+            psource_frame,psource_frame->nTimeStamp);
+    if (m_frame_parser.parse_sc_frame(psource_frame,
+                pdest_frame,&partial_frame) == -1) {
+        DEBUG_PRINT_ERROR("\n Error In Parsing Return Error");
+        return OMX_ErrorBadParameter;
     }
-    else
-    {
-      pdest_frame->nFlags &= ~OMX_BUFFERFLAG_EOS;
-      if(pdest_frame->nFilledLen)
-      {
-        /*Push the frame to the Decoder*/
-        if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone)
-        {
-          return OMX_ErrorBadParameter;
+
+    if (partial_frame == 0) {
+        DEBUG_PRINT_LOW("\n Frame size %d source %p frame count %d",
+                pdest_frame->nFilledLen,psource_frame,frame_count);
+
+
+        DEBUG_PRINT_LOW("\n TimeStamp updated %d",pdest_frame->nTimeStamp);
+        /*First Parsed buffer will have only header Hence skip*/
+        if (frame_count == 0) {
+            DEBUG_PRINT_LOW("\n H263/MPEG4 Codec First Frame ");
+
+            if (codec_type_parse == CODEC_TYPE_MPEG4 ||
+                    codec_type_parse == CODEC_TYPE_DIVX) {
+                mp4StreamType psBits;
+                psBits.data = pdest_frame->pBuffer + pdest_frame->nOffset;
+                psBits.numBytes = pdest_frame->nFilledLen;
+                mp4_headerparser.parseHeader(&psBits);
+            }
+
+            frame_count++;
+        } else {
+            pdest_frame->nFlags &= ~OMX_BUFFERFLAG_EOS;
+            if (pdest_frame->nFilledLen) {
+                /*Push the frame to the Decoder*/
+                if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone) {
+                    return OMX_ErrorBadParameter;
+                }
+                frame_count++;
+                pdest_frame = NULL;
+
+                if (m_input_free_q.m_size) {
+                    m_input_free_q.pop_entry(&address,&p2,&id);
+                    pdest_frame = (OMX_BUFFERHEADERTYPE *) address;
+                    pdest_frame->nFilledLen = 0;
+                }
+            } else if (!(psource_frame->nFlags & OMX_BUFFERFLAG_EOS)) {
+                DEBUG_PRINT_ERROR("\nZero len buffer return back to POOL");
+                m_input_free_q.insert_entry((unsigned) pdest_frame, (unsigned)NULL,
+                        (unsigned)NULL);
+                pdest_frame = NULL;
+            }
         }
-        frame_count++;
-        pdest_frame = NULL;
-
-        if (m_input_free_q.m_size)
-        {
-          m_input_free_q.pop_entry(&address,&p2,&id);
-          pdest_frame = (OMX_BUFFERHEADERTYPE *) address;
-          pdest_frame->nFilledLen = 0;
+    } else {
+        DEBUG_PRINT_LOW("\n Not a Complete Frame %d",pdest_frame->nFilledLen);
+        /*Check if Destination Buffer is full*/
+        if (pdest_frame->nAllocLen ==
+                pdest_frame->nFilledLen + pdest_frame->nOffset) {
+            DEBUG_PRINT_ERROR("\nERROR:Frame Not found though Destination Filled");
+            return OMX_ErrorStreamCorrupt;
         }
-      }
-      else if(!(psource_frame->nFlags & OMX_BUFFERFLAG_EOS))
-      {
-        DEBUG_PRINT_ERROR("\nZero len buffer return back to POOL");
-        m_input_free_q.insert_entry((unsigned) pdest_frame, (unsigned)NULL,
-                (unsigned)NULL);
-        pdest_frame = NULL;
-      }
     }
-  }
-  else
-  {
-    DEBUG_PRINT_LOW("\n Not a Complete Frame %d",pdest_frame->nFilledLen);
-    /*Check if Destination Buffer is full*/
-    if (pdest_frame->nAllocLen ==
-        pdest_frame->nFilledLen + pdest_frame->nOffset)
-    {
-      DEBUG_PRINT_ERROR("\nERROR:Frame Not found though Destination Filled");
-      return OMX_ErrorStreamCorrupt;
-    }
-  }
 
-  if (psource_frame->nFilledLen == 0)
-  {
-    if (psource_frame->nFlags & OMX_BUFFERFLAG_EOS)
-    {
-      if (pdest_frame)
-      {
-        pdest_frame->nFlags |= psource_frame->nFlags;
-        DEBUG_PRINT_LOW("\n Frame Found start Decoding Size =%d TimeStamp = %x",
-                     pdest_frame->nFilledLen,pdest_frame->nTimeStamp);
-        DEBUG_PRINT_LOW("\n Found a frame size = %d number = %d",
-                     pdest_frame->nFilledLen,frame_count++);
-        /*Push the frame to the Decoder*/
-        if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone)
-        {
-          return OMX_ErrorBadParameter;
+    if (psource_frame->nFilledLen == 0) {
+        if (psource_frame->nFlags & OMX_BUFFERFLAG_EOS) {
+            if (pdest_frame) {
+                pdest_frame->nFlags |= psource_frame->nFlags;
+                DEBUG_PRINT_LOW("\n Frame Found start Decoding Size =%d TimeStamp = %x",
+                        pdest_frame->nFilledLen,pdest_frame->nTimeStamp);
+                DEBUG_PRINT_LOW("\n Found a frame size = %d number = %d",
+                        pdest_frame->nFilledLen,frame_count++);
+                /*Push the frame to the Decoder*/
+                if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone) {
+                    return OMX_ErrorBadParameter;
+                }
+                frame_count++;
+                pdest_frame = NULL;
+            } else {
+                DEBUG_PRINT_LOW("\n Last frame in else dest addr") ;
+                generate_ebd = OMX_FALSE;
+            }
         }
-        frame_count++;
-        pdest_frame = NULL;
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("\n Last frame in else dest addr") ;
-        generate_ebd = OMX_FALSE;
-      }
-   }
-    if(generate_ebd)
-    {
-      DEBUG_PRINT_LOW("\n Buffer Consumed return back to client %p",psource_frame);
-      m_cb.EmptyBufferDone (hComp,m_app_data,psource_frame);
-      psource_frame = NULL;
+        if (generate_ebd) {
+            DEBUG_PRINT_LOW("\n Buffer Consumed return back to client %p",psource_frame);
+            m_cb.EmptyBufferDone (hComp,m_app_data,psource_frame);
+            psource_frame = NULL;
 
-      if (m_input_pending_q.m_size)
-      {
-        DEBUG_PRINT_LOW("\n Pull Next source Buffer %p",psource_frame);
-        m_input_pending_q.pop_entry(&address,&p2,&id);
-        psource_frame = (OMX_BUFFERHEADERTYPE *) address;
-        DEBUG_PRINT_LOW("\n Next source Buffer %p time stamp %d",psource_frame,
-                psource_frame->nTimeStamp);
-        DEBUG_PRINT_LOW("\n Next source Buffer flag %d length %d",
-        psource_frame->nFlags,psource_frame->nFilledLen);
-      }
+            if (m_input_pending_q.m_size) {
+                DEBUG_PRINT_LOW("\n Pull Next source Buffer %p",psource_frame);
+                m_input_pending_q.pop_entry(&address,&p2,&id);
+                psource_frame = (OMX_BUFFERHEADERTYPE *) address;
+                DEBUG_PRINT_LOW("\n Next source Buffer %p time stamp %d",psource_frame,
+                        psource_frame->nTimeStamp);
+                DEBUG_PRINT_LOW("\n Next source Buffer flag %d length %d",
+                        psource_frame->nFlags,psource_frame->nFilledLen);
+            }
+        }
     }
-   }
-  return OMX_ErrorNone;
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_vdec::push_input_h264 (OMX_HANDLETYPE hComp)
 {
-  OMX_U32 partial_frame = 1;
-  unsigned address,p2,id;
-  OMX_BOOL isNewFrame = OMX_FALSE;
-  OMX_BOOL generate_ebd = OMX_TRUE;
+    OMX_U32 partial_frame = 1;
+    unsigned address,p2,id;
+    OMX_BOOL isNewFrame = OMX_FALSE;
+    OMX_BOOL generate_ebd = OMX_TRUE;
 
-  if (h264_scratch.pBuffer == NULL)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:H.264 Scratch Buffer not allocated");
-    return OMX_ErrorBadParameter;
-  }
-  DEBUG_PRINT_LOW("\n Pending h264_scratch.nFilledLen %d "
-      "look_ahead_nal %d", h264_scratch.nFilledLen, look_ahead_nal);
-  DEBUG_PRINT_LOW("\n Pending pdest_frame->nFilledLen %d",pdest_frame->nFilledLen);
-  if (h264_scratch.nFilledLen && look_ahead_nal)
-  {
-    look_ahead_nal = false;
-    if ((pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
-         h264_scratch.nFilledLen)
-    {
-      memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
-              h264_scratch.pBuffer,h264_scratch.nFilledLen);
-      pdest_frame->nFilledLen += h264_scratch.nFilledLen;
-      DEBUG_PRINT_LOW("\n Copy the previous NAL (h264 scratch) into Dest frame");
-      h264_scratch.nFilledLen = 0;
+    if (h264_scratch.pBuffer == NULL) {
+        DEBUG_PRINT_ERROR("\nERROR:H.264 Scratch Buffer not allocated");
+        return OMX_ErrorBadParameter;
     }
-    else
-    {
-      DEBUG_PRINT_ERROR("\n Error:1: Destination buffer overflow for H264");
-      return OMX_ErrorBadParameter;
-    }
-  }
-  if (nal_length == 0)
-  {
-    DEBUG_PRINT_LOW("\n Zero NAL, hence parse using start code");
-    if (m_frame_parser.parse_sc_frame(psource_frame,
-        &h264_scratch,&partial_frame) == -1)
-    {
-      DEBUG_PRINT_ERROR("\n Error In Parsing Return Error");
-      return OMX_ErrorBadParameter;
-    }
-  }
-  else
-  {
-    DEBUG_PRINT_LOW("\n Non-zero NAL length clip, hence parse with NAL size %d ",nal_length);
-    if (m_frame_parser.parse_h264_nallength(psource_frame,
-        &h264_scratch,&partial_frame) == -1)
-    {
-      DEBUG_PRINT_ERROR("\n Error In Parsing NAL size, Return Error");
-      return OMX_ErrorBadParameter;
-    }
-  }
-
-  if (partial_frame == 0)
-  {
-    if (nal_count == 0 && h264_scratch.nFilledLen == 0)
-    {
-      DEBUG_PRINT_LOW("\n First NAL with Zero Length, hence Skip");
-      nal_count++;
-      h264_scratch.nTimeStamp = psource_frame->nTimeStamp;
-      h264_scratch.nFlags = psource_frame->nFlags;
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("\n Parsed New NAL Length = %d",h264_scratch.nFilledLen);
-      if(h264_scratch.nFilledLen)
-      {
-          h264_parser->parse_nal((OMX_U8*)h264_scratch.pBuffer, h264_scratch.nFilledLen,
-                                 NALU_TYPE_SPS);
-#ifndef PROCESS_EXTRADATA_IN_OUTPUT_PORT
-        if (client_extradata & OMX_TIMEINFO_EXTRADATA)
-          h264_parser->parse_nal((OMX_U8*)h264_scratch.pBuffer,
-                                  h264_scratch.nFilledLen, NALU_TYPE_SEI);
-        else if (client_extradata & OMX_FRAMEINFO_EXTRADATA)
-          // If timeinfo is present frame info from SEI is already processed
-          h264_parser->parse_nal((OMX_U8*)h264_scratch.pBuffer,
-                                  h264_scratch.nFilledLen, NALU_TYPE_SEI);
-#endif
-        m_frame_parser.mutils->isNewFrame(&h264_scratch, 0, isNewFrame);
-        nal_count++;
-        if (VALID_TS(h264_last_au_ts) && !VALID_TS(pdest_frame->nTimeStamp)) {
-          pdest_frame->nTimeStamp = h264_last_au_ts;
-          pdest_frame->nFlags = h264_last_au_flags;
-#ifdef PANSCAN_HDLR
-          if (client_extradata & OMX_FRAMEINFO_EXTRADATA)
-            h264_parser->update_panscan_data(h264_last_au_ts);
-#endif
-        }
-        if(m_frame_parser.mutils->nalu_type == NALU_TYPE_NON_IDR ||
-           m_frame_parser.mutils->nalu_type == NALU_TYPE_IDR) {
-          h264_last_au_ts = h264_scratch.nTimeStamp;
-          h264_last_au_flags = h264_scratch.nFlags;
-#ifndef PROCESS_EXTRADATA_IN_OUTPUT_PORT
-          if (client_extradata & OMX_TIMEINFO_EXTRADATA)
-          {
-            OMX_S64 ts_in_sei = h264_parser->process_ts_with_sei_vui(h264_last_au_ts);
-            if (!VALID_TS(h264_last_au_ts))
-              h264_last_au_ts = ts_in_sei;
-          }
-#endif
-        } else
-          h264_last_au_ts = LLONG_MAX;
-      }
-
-      if (!isNewFrame)
-      {
-        if ( (pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
-            h264_scratch.nFilledLen)
-        {
-          DEBUG_PRINT_LOW("\n Not a NewFrame Copy into Dest len %d",
-              h264_scratch.nFilledLen);
-          memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
-              h264_scratch.pBuffer,h264_scratch.nFilledLen);
-          pdest_frame->nFilledLen += h264_scratch.nFilledLen;
-          if(m_frame_parser.mutils->nalu_type == NALU_TYPE_EOSEQ)
-            pdest_frame->nFlags |= QOMX_VIDEO_BUFFERFLAG_EOSEQ;
-          h264_scratch.nFilledLen = 0;
-        }
-        else
-        {
-          DEBUG_PRINT_LOW("\n Error:2: Destination buffer overflow for H264");
-          return OMX_ErrorBadParameter;
-        }
-      }
-      else
-      {
-        look_ahead_nal = true;
-        DEBUG_PRINT_LOW("\n Frame Found start Decoding Size =%d TimeStamp = %x",
-                     pdest_frame->nFilledLen,pdest_frame->nTimeStamp);
-        DEBUG_PRINT_LOW("\n Found a frame size = %d number = %d",
-                     pdest_frame->nFilledLen,frame_count++);
-
-        if (pdest_frame->nFilledLen == 0)
-        {
-          DEBUG_PRINT_LOW("\n Copy the Current Frame since and push it");
-          look_ahead_nal = false;
-          if ( (pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
-               h264_scratch.nFilledLen)
-          {
+    DEBUG_PRINT_LOW("\n Pending h264_scratch.nFilledLen %d "
+            "look_ahead_nal %d", h264_scratch.nFilledLen, look_ahead_nal);
+    DEBUG_PRINT_LOW("\n Pending pdest_frame->nFilledLen %d",pdest_frame->nFilledLen);
+    if (h264_scratch.nFilledLen && look_ahead_nal) {
+        look_ahead_nal = false;
+        if ((pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
+                h264_scratch.nFilledLen) {
             memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
                     h264_scratch.pBuffer,h264_scratch.nFilledLen);
             pdest_frame->nFilledLen += h264_scratch.nFilledLen;
+            DEBUG_PRINT_LOW("\n Copy the previous NAL (h264 scratch) into Dest frame");
             h264_scratch.nFilledLen = 0;
-          }
-          else
-          {
-            DEBUG_PRINT_ERROR("\n Error:3: Destination buffer overflow for H264");
+        } else {
+            DEBUG_PRINT_ERROR("\n Error:1: Destination buffer overflow for H264");
             return OMX_ErrorBadParameter;
-          }
         }
-        else
-        {
-          if(psource_frame->nFilledLen || h264_scratch.nFilledLen)
-          {
-            DEBUG_PRINT_LOW("\n Reset the EOS Flag");
-            pdest_frame->nFlags &= ~OMX_BUFFERFLAG_EOS;
-          }
-          /*Push the frame to the Decoder*/
-          if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone)
-          {
+    }
+    if (nal_length == 0) {
+        DEBUG_PRINT_LOW("\n Zero NAL, hence parse using start code");
+        if (m_frame_parser.parse_sc_frame(psource_frame,
+                    &h264_scratch,&partial_frame) == -1) {
+            DEBUG_PRINT_ERROR("\n Error In Parsing Return Error");
             return OMX_ErrorBadParameter;
-          }
-          //frame_count++;
-          pdest_frame = NULL;
-          if (m_input_free_q.m_size)
-          {
-            m_input_free_q.pop_entry(&address,&p2,&id);
-            pdest_frame = (OMX_BUFFERHEADERTYPE *) address;
-            DEBUG_PRINT_LOW("\n Pop the next pdest_buffer %p",pdest_frame);
-            pdest_frame->nFilledLen = 0;
-            pdest_frame->nFlags = 0;
-            pdest_frame->nTimeStamp = LLONG_MAX;
-          }
         }
-      }
+    } else {
+        DEBUG_PRINT_LOW("\n Non-zero NAL length clip, hence parse with NAL size %d ",nal_length);
+        if (m_frame_parser.parse_h264_nallength(psource_frame,
+                    &h264_scratch,&partial_frame) == -1) {
+            DEBUG_PRINT_ERROR("\n Error In Parsing NAL size, Return Error");
+            return OMX_ErrorBadParameter;
+        }
     }
-  }
-  else
-  {
-    DEBUG_PRINT_LOW("\n Not a Complete Frame, pdest_frame->nFilledLen %d",pdest_frame->nFilledLen);
-    /*Check if Destination Buffer is full*/
-    if (h264_scratch.nAllocLen ==
-        h264_scratch.nFilledLen + h264_scratch.nOffset)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: Frame Not found though Destination Filled");
-      return OMX_ErrorStreamCorrupt;
-    }
-  }
 
-  if (!psource_frame->nFilledLen)
-  {
-    DEBUG_PRINT_LOW("\n Buffer Consumed return source %p back to client",psource_frame);
-
-    if (psource_frame->nFlags & OMX_BUFFERFLAG_EOS)
-    {
-      if (pdest_frame)
-      {
-        DEBUG_PRINT_LOW("\n EOS Reached Pass Last Buffer");
-        if ( (pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
-             h264_scratch.nFilledLen)
-        {
-          memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
-                  h264_scratch.pBuffer,h264_scratch.nFilledLen);
-          pdest_frame->nFilledLen += h264_scratch.nFilledLen;
-          h264_scratch.nFilledLen = 0;
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("\nERROR:4: Destination buffer overflow for H264");
-          return OMX_ErrorBadParameter;
-        }
-        pdest_frame->nTimeStamp = h264_scratch.nTimeStamp;
-        pdest_frame->nFlags = h264_scratch.nFlags | psource_frame->nFlags;
-
-        DEBUG_PRINT_LOW("\n pdest_frame->nFilledLen =%d TimeStamp = %x",
-                     pdest_frame->nFilledLen,pdest_frame->nTimeStamp);
-        DEBUG_PRINT_LOW("\n Push AU frame number %d to driver", frame_count++);
+    if (partial_frame == 0) {
+        if (nal_count == 0 && h264_scratch.nFilledLen == 0) {
+            DEBUG_PRINT_LOW("\n First NAL with Zero Length, hence Skip");
+            nal_count++;
+            h264_scratch.nTimeStamp = psource_frame->nTimeStamp;
+            h264_scratch.nFlags = psource_frame->nFlags;
+        } else {
+            DEBUG_PRINT_LOW("\n Parsed New NAL Length = %d",h264_scratch.nFilledLen);
+            if (h264_scratch.nFilledLen) {
+                h264_parser->parse_nal((OMX_U8*)h264_scratch.pBuffer, h264_scratch.nFilledLen,
+                        NALU_TYPE_SPS);
 #ifndef PROCESS_EXTRADATA_IN_OUTPUT_PORT
-        if (client_extradata & OMX_TIMEINFO_EXTRADATA)
-        {
-          OMX_S64 ts_in_sei = h264_parser->process_ts_with_sei_vui(pdest_frame->nTimeStamp);
-          if (!VALID_TS(pdest_frame->nTimeStamp))
-            pdest_frame->nTimeStamp = ts_in_sei;
-        }
+                if (client_extradata & OMX_TIMEINFO_EXTRADATA)
+                    h264_parser->parse_nal((OMX_U8*)h264_scratch.pBuffer,
+                            h264_scratch.nFilledLen, NALU_TYPE_SEI);
+                else if (client_extradata & OMX_FRAMEINFO_EXTRADATA)
+                    // If timeinfo is present frame info from SEI is already processed
+                    h264_parser->parse_nal((OMX_U8*)h264_scratch.pBuffer,
+                            h264_scratch.nFilledLen, NALU_TYPE_SEI);
 #endif
-        /*Push the frame to the Decoder*/
-        if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone)
-        {
-          return OMX_ErrorBadParameter;
+                m_frame_parser.mutils->isNewFrame(&h264_scratch, 0, isNewFrame);
+                nal_count++;
+                if (VALID_TS(h264_last_au_ts) && !VALID_TS(pdest_frame->nTimeStamp)) {
+                    pdest_frame->nTimeStamp = h264_last_au_ts;
+                    pdest_frame->nFlags = h264_last_au_flags;
+#ifdef PANSCAN_HDLR
+                    if (client_extradata & OMX_FRAMEINFO_EXTRADATA)
+                        h264_parser->update_panscan_data(h264_last_au_ts);
+#endif
+                }
+                if (m_frame_parser.mutils->nalu_type == NALU_TYPE_NON_IDR ||
+                        m_frame_parser.mutils->nalu_type == NALU_TYPE_IDR) {
+                    h264_last_au_ts = h264_scratch.nTimeStamp;
+                    h264_last_au_flags = h264_scratch.nFlags;
+#ifndef PROCESS_EXTRADATA_IN_OUTPUT_PORT
+                    if (client_extradata & OMX_TIMEINFO_EXTRADATA) {
+                        OMX_S64 ts_in_sei = h264_parser->process_ts_with_sei_vui(h264_last_au_ts);
+                        if (!VALID_TS(h264_last_au_ts))
+                            h264_last_au_ts = ts_in_sei;
+                    }
+#endif
+                } else
+                    h264_last_au_ts = LLONG_MAX;
+            }
+
+            if (!isNewFrame) {
+                if ( (pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
+                        h264_scratch.nFilledLen) {
+                    DEBUG_PRINT_LOW("\n Not a NewFrame Copy into Dest len %d",
+                            h264_scratch.nFilledLen);
+                    memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
+                            h264_scratch.pBuffer,h264_scratch.nFilledLen);
+                    pdest_frame->nFilledLen += h264_scratch.nFilledLen;
+                    if (m_frame_parser.mutils->nalu_type == NALU_TYPE_EOSEQ)
+                        pdest_frame->nFlags |= QOMX_VIDEO_BUFFERFLAG_EOSEQ;
+                    h264_scratch.nFilledLen = 0;
+                } else {
+                    DEBUG_PRINT_LOW("\n Error:2: Destination buffer overflow for H264");
+                    return OMX_ErrorBadParameter;
+                }
+            } else {
+                look_ahead_nal = true;
+                DEBUG_PRINT_LOW("\n Frame Found start Decoding Size =%d TimeStamp = %x",
+                        pdest_frame->nFilledLen,pdest_frame->nTimeStamp);
+                DEBUG_PRINT_LOW("\n Found a frame size = %d number = %d",
+                        pdest_frame->nFilledLen,frame_count++);
+
+                if (pdest_frame->nFilledLen == 0) {
+                    DEBUG_PRINT_LOW("\n Copy the Current Frame since and push it");
+                    look_ahead_nal = false;
+                    if ( (pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
+                            h264_scratch.nFilledLen) {
+                        memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
+                                h264_scratch.pBuffer,h264_scratch.nFilledLen);
+                        pdest_frame->nFilledLen += h264_scratch.nFilledLen;
+                        h264_scratch.nFilledLen = 0;
+                    } else {
+                        DEBUG_PRINT_ERROR("\n Error:3: Destination buffer overflow for H264");
+                        return OMX_ErrorBadParameter;
+                    }
+                } else {
+                    if (psource_frame->nFilledLen || h264_scratch.nFilledLen) {
+                        DEBUG_PRINT_LOW("\n Reset the EOS Flag");
+                        pdest_frame->nFlags &= ~OMX_BUFFERFLAG_EOS;
+                    }
+                    /*Push the frame to the Decoder*/
+                    if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone) {
+                        return OMX_ErrorBadParameter;
+                    }
+                    //frame_count++;
+                    pdest_frame = NULL;
+                    if (m_input_free_q.m_size) {
+                        m_input_free_q.pop_entry(&address,&p2,&id);
+                        pdest_frame = (OMX_BUFFERHEADERTYPE *) address;
+                        DEBUG_PRINT_LOW("\n Pop the next pdest_buffer %p",pdest_frame);
+                        pdest_frame->nFilledLen = 0;
+                        pdest_frame->nFlags = 0;
+                        pdest_frame->nTimeStamp = LLONG_MAX;
+                    }
+                }
+            }
         }
-        frame_count++;
-        pdest_frame = NULL;
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("\n Last frame in else dest addr %p size %d",
-                     pdest_frame,h264_scratch.nFilledLen);
-        generate_ebd = OMX_FALSE;
-      }
+    } else {
+        DEBUG_PRINT_LOW("\n Not a Complete Frame, pdest_frame->nFilledLen %d",pdest_frame->nFilledLen);
+        /*Check if Destination Buffer is full*/
+        if (h264_scratch.nAllocLen ==
+                h264_scratch.nFilledLen + h264_scratch.nOffset) {
+            DEBUG_PRINT_ERROR("\nERROR: Frame Not found though Destination Filled");
+            return OMX_ErrorStreamCorrupt;
+        }
     }
-  }
-  if(generate_ebd && !psource_frame->nFilledLen)
-  {
-    m_cb.EmptyBufferDone (hComp,m_app_data,psource_frame);
-    psource_frame = NULL;
-    if (m_input_pending_q.m_size)
-    {
-      DEBUG_PRINT_LOW("\n Pull Next source Buffer %p",psource_frame);
-      m_input_pending_q.pop_entry(&address,&p2,&id);
-      psource_frame = (OMX_BUFFERHEADERTYPE *) address;
-      DEBUG_PRINT_LOW("\nNext source Buffer flag %d src length %d",
-      psource_frame->nFlags,psource_frame->nFilledLen);
+
+    if (!psource_frame->nFilledLen) {
+        DEBUG_PRINT_LOW("\n Buffer Consumed return source %p back to client",psource_frame);
+
+        if (psource_frame->nFlags & OMX_BUFFERFLAG_EOS) {
+            if (pdest_frame) {
+                DEBUG_PRINT_LOW("\n EOS Reached Pass Last Buffer");
+                if ( (pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
+                        h264_scratch.nFilledLen) {
+                    memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
+                            h264_scratch.pBuffer,h264_scratch.nFilledLen);
+                    pdest_frame->nFilledLen += h264_scratch.nFilledLen;
+                    h264_scratch.nFilledLen = 0;
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR:4: Destination buffer overflow for H264");
+                    return OMX_ErrorBadParameter;
+                }
+                pdest_frame->nTimeStamp = h264_scratch.nTimeStamp;
+                pdest_frame->nFlags = h264_scratch.nFlags | psource_frame->nFlags;
+
+                DEBUG_PRINT_LOW("\n pdest_frame->nFilledLen =%d TimeStamp = %x",
+                        pdest_frame->nFilledLen,pdest_frame->nTimeStamp);
+                DEBUG_PRINT_LOW("\n Push AU frame number %d to driver", frame_count++);
+#ifndef PROCESS_EXTRADATA_IN_OUTPUT_PORT
+                if (client_extradata & OMX_TIMEINFO_EXTRADATA) {
+                    OMX_S64 ts_in_sei = h264_parser->process_ts_with_sei_vui(pdest_frame->nTimeStamp);
+                    if (!VALID_TS(pdest_frame->nTimeStamp))
+                        pdest_frame->nTimeStamp = ts_in_sei;
+                }
+#endif
+                /*Push the frame to the Decoder*/
+                if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone) {
+                    return OMX_ErrorBadParameter;
+                }
+                frame_count++;
+                pdest_frame = NULL;
+            } else {
+                DEBUG_PRINT_LOW("\n Last frame in else dest addr %p size %d",
+                        pdest_frame,h264_scratch.nFilledLen);
+                generate_ebd = OMX_FALSE;
+            }
+        }
     }
-  }
-  return OMX_ErrorNone;
+    if (generate_ebd && !psource_frame->nFilledLen) {
+        m_cb.EmptyBufferDone (hComp,m_app_data,psource_frame);
+        psource_frame = NULL;
+        if (m_input_pending_q.m_size) {
+            DEBUG_PRINT_LOW("\n Pull Next source Buffer %p",psource_frame);
+            m_input_pending_q.pop_entry(&address,&p2,&id);
+            psource_frame = (OMX_BUFFERHEADERTYPE *) address;
+            DEBUG_PRINT_LOW("\nNext source Buffer flag %d src length %d",
+                    psource_frame->nFlags,psource_frame->nFilledLen);
+        }
+    }
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE copy_buffer(OMX_BUFFERHEADERTYPE* pDst, OMX_BUFFERHEADERTYPE* pSrc)
 {
     OMX_ERRORTYPE rc = OMX_ErrorNone;
-    if ((pDst->nAllocLen - pDst->nFilledLen) >= pSrc->nFilledLen)
-    {
+    if ((pDst->nAllocLen - pDst->nFilledLen) >= pSrc->nFilledLen) {
         memcpy ((pDst->pBuffer + pDst->nFilledLen), pSrc->pBuffer, pSrc->nFilledLen);
-        if (pDst->nTimeStamp == LLONG_MAX || pDst->nTimeStamp == 0)
-        {
+        if (pDst->nTimeStamp == LLONG_MAX || pDst->nTimeStamp == 0) {
             pDst->nTimeStamp = pSrc->nTimeStamp;
             DEBUG_PRINT_LOW("Assign Dst nTimeStamp=%lld", pDst->nTimeStamp);
         }
         pDst->nFilledLen += pSrc->nFilledLen;
         pSrc->nFilledLen = 0;
-    }
-    else
-    {
+    } else {
         DEBUG_PRINT_ERROR("Error: Destination buffer overflow\n");
         rc = OMX_ErrorBadParameter;
     }
@@ -7576,184 +6730,148 @@
 
 OMX_ERRORTYPE omx_vdec::push_input_hevc (OMX_HANDLETYPE hComp)
 {
-  OMX_U32 partial_frame = 1;
-  unsigned address,p2,id;
-  OMX_BOOL isNewFrame = OMX_FALSE;
-  OMX_BOOL generate_ebd = OMX_TRUE;
-  OMX_ERRORTYPE rc = OMX_ErrorNone;
+    OMX_U32 partial_frame = 1;
+    unsigned address,p2,id;
+    OMX_BOOL isNewFrame = OMX_FALSE;
+    OMX_BOOL generate_ebd = OMX_TRUE;
+    OMX_ERRORTYPE rc = OMX_ErrorNone;
 
-  if (h264_scratch.pBuffer == NULL)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:Hevc Scratch Buffer not allocated");
-    return OMX_ErrorBadParameter;
-  }
-
-
-  DEBUG_PRINT_LOW("h264_scratch.nFilledLen %d has look_ahead_nal %d pdest_frame nFilledLen %d nTimeStamp %lld\n",
-  	h264_scratch.nFilledLen, look_ahead_nal, pdest_frame->nFilledLen, pdest_frame->nTimeStamp);
-
-  if (h264_scratch.nFilledLen && look_ahead_nal)
-  {
-    look_ahead_nal = false;
-
-    // copy the lookahead buffer in the scratch
-    rc = copy_buffer(pdest_frame, &h264_scratch);
-    if (rc != OMX_ErrorNone)
-    {
-      return rc;
+    if (h264_scratch.pBuffer == NULL) {
+        DEBUG_PRINT_ERROR("\nERROR:Hevc Scratch Buffer not allocated");
+        return OMX_ErrorBadParameter;
     }
-  }
-  if (nal_length == 0)
-  {
-    if (m_frame_parser.parse_sc_frame(psource_frame,
-        &h264_scratch,&partial_frame) == -1)
-    {
-      DEBUG_PRINT_ERROR("\n Error In Parsing Return Error");
-      return OMX_ErrorBadParameter;
-    }
-  }
-  else
-  {
-    DEBUG_PRINT_LOW("Non-zero NAL length clip, hence parse with NAL size %d\n",nal_length);
-    if (m_frame_parser.parse_h264_nallength(psource_frame,
-        &h264_scratch,&partial_frame) == -1)
-    {
-      DEBUG_PRINT_ERROR("\n Error In Parsing NAL size, Return Error");
-      return OMX_ErrorBadParameter;
-    }
-  }
 
-  if (partial_frame == 0)
-  {
-    if (nal_count == 0 && h264_scratch.nFilledLen == 0)
-    {
-      DEBUG_PRINT_LOW("\n First NAL with Zero Length, hence Skip");
-      nal_count++;
-      h264_scratch.nTimeStamp = psource_frame->nTimeStamp;
-      h264_scratch.nFlags = psource_frame->nFlags;
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("\n Parsed New NAL Length = %d",h264_scratch.nFilledLen);
-      if(h264_scratch.nFilledLen)
-      {
-        mHEVCutils.isNewFrame(&h264_scratch, 0, isNewFrame);
-        nal_count++;
-      }
 
-      if (!isNewFrame)
-      {
-        DEBUG_PRINT_LOW("Not a new frame, copy h264_scratch nFilledLen %d nTimestamp %lld, pdest_frame nFilledLen %d nTimestamp %lld\n",
-            h264_scratch.nFilledLen, h264_scratch.nTimeStamp, pdest_frame->nFilledLen, pdest_frame->nTimeStamp);
+    DEBUG_PRINT_LOW("h264_scratch.nFilledLen %d has look_ahead_nal %d pdest_frame nFilledLen %d nTimeStamp %lld\n",
+            h264_scratch.nFilledLen, look_ahead_nal, pdest_frame->nFilledLen, pdest_frame->nTimeStamp);
+
+    if (h264_scratch.nFilledLen && look_ahead_nal) {
+        look_ahead_nal = false;
+
+        // copy the lookahead buffer in the scratch
         rc = copy_buffer(pdest_frame, &h264_scratch);
-        if ( rc != OMX_ErrorNone)
-        {
-          return rc;
+        if (rc != OMX_ErrorNone) {
+            return rc;
         }
-      }
-      else
-      {
-        look_ahead_nal = true;
-        if (pdest_frame->nFilledLen == 0)
-        {
-          look_ahead_nal = false;
-          DEBUG_PRINT_LOW("dest nation buffer empty, copy scratch buffer\n");
-          rc = copy_buffer(pdest_frame, &h264_scratch);
-          if ( rc != OMX_ErrorNone )
-          {
+    }
+    if (nal_length == 0) {
+        if (m_frame_parser.parse_sc_frame(psource_frame,
+                    &h264_scratch,&partial_frame) == -1) {
+            DEBUG_PRINT_ERROR("\n Error In Parsing Return Error");
             return OMX_ErrorBadParameter;
-          }
         }
-        else
-        {
-          if(psource_frame->nFilledLen || h264_scratch.nFilledLen)
-          {
-            pdest_frame->nFlags &= ~OMX_BUFFERFLAG_EOS;
-          }
-
-          DEBUG_PRINT_LOW("FrameDetecetd # %d pdest_frame nFilledLen %d nTimeStamp %lld, look_ahead_nal in h264_scratch nFilledLen %d nTimeStamp %lld \n",
-            frame_count++, pdest_frame->nFilledLen, pdest_frame->nTimeStamp, h264_scratch.nFilledLen, h264_scratch.nTimeStamp);
-          if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone)
-          {
+    } else {
+        DEBUG_PRINT_LOW("Non-zero NAL length clip, hence parse with NAL size %d\n",nal_length);
+        if (m_frame_parser.parse_h264_nallength(psource_frame,
+                    &h264_scratch,&partial_frame) == -1) {
+            DEBUG_PRINT_ERROR("\n Error In Parsing NAL size, Return Error");
             return OMX_ErrorBadParameter;
-          }
-          pdest_frame = NULL;
-          if (m_input_free_q.m_size)
-          {
-            m_input_free_q.pop_entry(&address,&p2,&id);
-            pdest_frame = (OMX_BUFFERHEADERTYPE *) address;
-            DEBUG_PRINT_LOW("pop the next pdest_buffer %p\n",pdest_frame);
-            pdest_frame->nFilledLen = 0;
-            pdest_frame->nFlags = 0;
-            pdest_frame->nTimeStamp = LLONG_MAX;
-          }
         }
-      }
     }
-  }
-  else
-  {
-    DEBUG_PRINT_LOW("psource_frame is partial nFilledLen %d nTimeStamp %lld, pdest_frame nFilledLen %d nTimeStamp %lld, h264_scratch nFilledLen %d nTimeStamp %lld \n",
-		 psource_frame->nFilledLen, psource_frame->nTimeStamp, pdest_frame->nFilledLen, pdest_frame->nTimeStamp, h264_scratch.nFilledLen, h264_scratch.nTimeStamp);
 
-    /*Check if Destination Buffer is full*/
-    if (h264_scratch.nAllocLen ==
-        h264_scratch.nFilledLen + h264_scratch.nOffset)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: Frame Not found though Destination Filled");
-      return OMX_ErrorStreamCorrupt;
-    }
-  }
+    if (partial_frame == 0) {
+        if (nal_count == 0 && h264_scratch.nFilledLen == 0) {
+            DEBUG_PRINT_LOW("\n First NAL with Zero Length, hence Skip");
+            nal_count++;
+            h264_scratch.nTimeStamp = psource_frame->nTimeStamp;
+            h264_scratch.nFlags = psource_frame->nFlags;
+        } else {
+            DEBUG_PRINT_LOW("\n Parsed New NAL Length = %d",h264_scratch.nFilledLen);
+            if (h264_scratch.nFilledLen) {
+                mHEVCutils.isNewFrame(&h264_scratch, 0, isNewFrame);
+                nal_count++;
+            }
 
-  if (!psource_frame->nFilledLen)
-  {
-    DEBUG_PRINT_LOW("Buffer Consumed return source %p back to client\n",psource_frame);
+            if (!isNewFrame) {
+                DEBUG_PRINT_LOW("Not a new frame, copy h264_scratch nFilledLen %d nTimestamp %lld, pdest_frame nFilledLen %d nTimestamp %lld\n",
+                        h264_scratch.nFilledLen, h264_scratch.nTimeStamp, pdest_frame->nFilledLen, pdest_frame->nTimeStamp);
+                rc = copy_buffer(pdest_frame, &h264_scratch);
+                if ( rc != OMX_ErrorNone) {
+                    return rc;
+                }
+            } else {
+                look_ahead_nal = true;
+                if (pdest_frame->nFilledLen == 0) {
+                    look_ahead_nal = false;
+                    DEBUG_PRINT_LOW("dest nation buffer empty, copy scratch buffer\n");
+                    rc = copy_buffer(pdest_frame, &h264_scratch);
+                    if ( rc != OMX_ErrorNone ) {
+                        return OMX_ErrorBadParameter;
+                    }
+                } else {
+                    if (psource_frame->nFilledLen || h264_scratch.nFilledLen) {
+                        pdest_frame->nFlags &= ~OMX_BUFFERFLAG_EOS;
+                    }
 
-    if (psource_frame->nFlags & OMX_BUFFERFLAG_EOS)
-    {
-      if (pdest_frame)
-      {
-        DEBUG_PRINT_LOW("EOS Reached Pass Last Buffer\n");
-        rc = copy_buffer(pdest_frame, &h264_scratch);
-        if ( rc != OMX_ErrorNone )
-        {
-          return rc;
+                    DEBUG_PRINT_LOW("FrameDetecetd # %d pdest_frame nFilledLen %d nTimeStamp %lld, look_ahead_nal in h264_scratch nFilledLen %d nTimeStamp %lld \n",
+                            frame_count++, pdest_frame->nFilledLen, pdest_frame->nTimeStamp, h264_scratch.nFilledLen, h264_scratch.nTimeStamp);
+                    if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone) {
+                        return OMX_ErrorBadParameter;
+                    }
+                    pdest_frame = NULL;
+                    if (m_input_free_q.m_size) {
+                        m_input_free_q.pop_entry(&address,&p2,&id);
+                        pdest_frame = (OMX_BUFFERHEADERTYPE *) address;
+                        DEBUG_PRINT_LOW("pop the next pdest_buffer %p\n",pdest_frame);
+                        pdest_frame->nFilledLen = 0;
+                        pdest_frame->nFlags = 0;
+                        pdest_frame->nTimeStamp = LLONG_MAX;
+                    }
+                }
+            }
         }
-        pdest_frame->nTimeStamp = h264_scratch.nTimeStamp;
-        pdest_frame->nFlags = h264_scratch.nFlags | psource_frame->nFlags;
+    } else {
+        DEBUG_PRINT_LOW("psource_frame is partial nFilledLen %d nTimeStamp %lld, pdest_frame nFilledLen %d nTimeStamp %lld, h264_scratch nFilledLen %d nTimeStamp %lld \n",
+                psource_frame->nFilledLen, psource_frame->nTimeStamp, pdest_frame->nFilledLen, pdest_frame->nTimeStamp, h264_scratch.nFilledLen, h264_scratch.nTimeStamp);
 
-        DEBUG_PRINT_LOW("Push EOS frame number:%d nFilledLen =%d TimeStamp = %lld\n",
-                     frame_count, pdest_frame->nFilledLen,pdest_frame->nTimeStamp);
-
-        /*Push the frame to the Decoder*/
-        if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone)
-        {
-          return OMX_ErrorBadParameter;
+        /*Check if Destination Buffer is full*/
+        if (h264_scratch.nAllocLen ==
+                h264_scratch.nFilledLen + h264_scratch.nOffset) {
+            DEBUG_PRINT_ERROR("\nERROR: Frame Not found though Destination Filled");
+            return OMX_ErrorStreamCorrupt;
         }
-        frame_count++;
-        pdest_frame = NULL;
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("\n Last frame in else dest addr %p size %d",
-                     pdest_frame,h264_scratch.nFilledLen);
-        generate_ebd = OMX_FALSE;
-      }
     }
-  }
-  if(generate_ebd && !psource_frame->nFilledLen)
-  {
-    m_cb.EmptyBufferDone (hComp,m_app_data,psource_frame);
-    psource_frame = NULL;
-    if (m_input_pending_q.m_size)
-    {
-      m_input_pending_q.pop_entry(&address,&p2,&id);
-      psource_frame = (OMX_BUFFERHEADERTYPE *) address;
-      DEBUG_PRINT_LOW("Next source Buffer flag %d nFilledLen %d, nTimeStamp %lld\n",
-         psource_frame->nFlags,psource_frame->nFilledLen, psource_frame->nTimeStamp);
+
+    if (!psource_frame->nFilledLen) {
+        DEBUG_PRINT_LOW("Buffer Consumed return source %p back to client\n",psource_frame);
+
+        if (psource_frame->nFlags & OMX_BUFFERFLAG_EOS) {
+            if (pdest_frame) {
+                DEBUG_PRINT_LOW("EOS Reached Pass Last Buffer\n");
+                rc = copy_buffer(pdest_frame, &h264_scratch);
+                if ( rc != OMX_ErrorNone ) {
+                    return rc;
+                }
+                pdest_frame->nTimeStamp = h264_scratch.nTimeStamp;
+                pdest_frame->nFlags = h264_scratch.nFlags | psource_frame->nFlags;
+
+                DEBUG_PRINT_LOW("Push EOS frame number:%d nFilledLen =%d TimeStamp = %lld\n",
+                        frame_count, pdest_frame->nFilledLen,pdest_frame->nTimeStamp);
+
+                /*Push the frame to the Decoder*/
+                if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone) {
+                    return OMX_ErrorBadParameter;
+                }
+                frame_count++;
+                pdest_frame = NULL;
+            } else {
+                DEBUG_PRINT_LOW("\n Last frame in else dest addr %p size %d",
+                        pdest_frame,h264_scratch.nFilledLen);
+                generate_ebd = OMX_FALSE;
+            }
+        }
     }
-  }
-  return OMX_ErrorNone;
+    if (generate_ebd && !psource_frame->nFilledLen) {
+        m_cb.EmptyBufferDone (hComp,m_app_data,psource_frame);
+        psource_frame = NULL;
+        if (m_input_pending_q.m_size) {
+            m_input_pending_q.pop_entry(&address,&p2,&id);
+            psource_frame = (OMX_BUFFERHEADERTYPE *) address;
+            DEBUG_PRINT_LOW("Next source Buffer flag %d nFilledLen %d, nTimeStamp %lld\n",
+                    psource_frame->nFlags,psource_frame->nFilledLen, psource_frame->nTimeStamp);
+        }
+    }
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_vdec::push_input_vc1 (OMX_HANDLETYPE hComp)
@@ -7762,61 +6880,47 @@
     OMX_U32 partial_frame = 1;
     OMX_U32 buf_len, dest_len;
 
-    if(first_frame == 0)
-    {
+    if (first_frame == 0) {
         first_frame = 1;
         DEBUG_PRINT_LOW("\nFirst i/p buffer for VC1 arbitrary bytes\n");
-        if(!m_vendor_config.pData)
-        {
+        if (!m_vendor_config.pData) {
             DEBUG_PRINT_LOW("\nCheck profile type in 1st source buffer\n");
             buf = psource_frame->pBuffer;
             buf_len = psource_frame->nFilledLen;
 
             if ((*((OMX_U32 *) buf) & VC1_SP_MP_START_CODE_MASK) ==
-                VC1_SP_MP_START_CODE)
-            {
+                    VC1_SP_MP_START_CODE) {
                 m_vc1_profile = VC1_SP_MP_RCV;
-            }
-            else if(*((OMX_U32 *) buf) & VC1_AP_SEQ_START_CODE)
-            {
+            } else if (*((OMX_U32 *) buf) & VC1_AP_SEQ_START_CODE) {
                 m_vc1_profile = VC1_AP;
-            }
-            else
-            {
+            } else {
                 DEBUG_PRINT_ERROR("\nInvalid sequence layer in first buffer\n");
                 return OMX_ErrorStreamCorrupt;
             }
-        }
-        else
-        {
+        } else {
             pdest = pdest_frame->pBuffer + pdest_frame->nFilledLen +
                 pdest_frame->nOffset;
             dest_len = pdest_frame->nAllocLen - (pdest_frame->nFilledLen +
-                pdest_frame->nOffset);
+                    pdest_frame->nOffset);
 
-            if(dest_len < m_vendor_config.nDataSize)
-            {
+            if (dest_len < m_vendor_config.nDataSize) {
                 DEBUG_PRINT_ERROR("\nDestination buffer full\n");
                 return OMX_ErrorBadParameter;
-            }
-            else
-            {
+            } else {
                 memcpy(pdest, m_vendor_config.pData, m_vendor_config.nDataSize);
                 pdest_frame->nFilledLen += m_vendor_config.nDataSize;
             }
         }
     }
 
-    switch(m_vc1_profile)
-    {
+    switch (m_vc1_profile) {
         case VC1_AP:
             DEBUG_PRINT_LOW("\n VC1 AP, hence parse using frame start code");
-            if (push_input_sc_codec(hComp) != OMX_ErrorNone)
-            {
+            if (push_input_sc_codec(hComp) != OMX_ErrorNone) {
                 DEBUG_PRINT_ERROR("\n Error In Parsing VC1 AP start code");
                 return OMX_ErrorBadParameter;
             }
-        break;
+            break;
 
         case VC1_SP_MP_RCV:
         default:
@@ -7827,136 +6931,129 @@
 }
 
 bool omx_vdec::align_pmem_buffers(int pmem_fd, OMX_U32 buffer_size,
-                                  OMX_U32 alignment)
+        OMX_U32 alignment)
 {
-  struct pmem_allocation allocation;
-  allocation.size = buffer_size;
-  allocation.align = clip2(alignment);
-  if (allocation.align < 4096)
-  {
-    allocation.align = 4096;
-  }
-  if (ioctl(pmem_fd, PMEM_ALLOCATE_ALIGNED, &allocation) < 0)
-  {
-    DEBUG_PRINT_ERROR("\n Aligment(%u) failed with pmem driver Sz(%lu)",
-      allocation.align, allocation.size);
-    return false;
-  }
-  return true;
+    struct pmem_allocation allocation;
+    allocation.size = buffer_size;
+    allocation.align = clip2(alignment);
+    if (allocation.align < 4096) {
+        allocation.align = 4096;
+    }
+    if (ioctl(pmem_fd, PMEM_ALLOCATE_ALIGNED, &allocation) < 0) {
+        DEBUG_PRINT_ERROR("\n Aligment(%u) failed with pmem driver Sz(%lu)",
+                allocation.align, allocation.size);
+        return false;
+    }
+    return true;
 }
 #ifdef USE_ION
 int omx_vdec::alloc_map_ion_memory(OMX_U32 buffer_size,
-              OMX_U32 alignment, struct ion_allocation_data *alloc_data,
-	      struct ion_fd_data *fd_data, int flag)
+        OMX_U32 alignment, struct ion_allocation_data *alloc_data,
+        struct ion_fd_data *fd_data, int flag)
 {
-  int fd = -EINVAL;
-  int rc = -EINVAL;
-  int ion_dev_flag;
-  struct vdec_ion ion_buf_info;
-  if (!alloc_data || buffer_size <= 0 || !fd_data) {
-     DEBUG_PRINT_ERROR("Invalid arguments to alloc_map_ion_memory\n");
-     return -EINVAL;
-  }
-  ion_dev_flag = O_RDONLY;
-  fd = open (MEM_DEVICE, ion_dev_flag);
-  if (fd < 0) {
-    DEBUG_PRINT_ERROR("opening ion device failed with fd = %d\n", fd);
-    return fd;
-  }
-  alloc_data->flags = 0;
-  if(!secure_mode && (flag & ION_FLAG_CACHED))
-  {
-    alloc_data->flags |= ION_FLAG_CACHED;
-  }
-  alloc_data->len = buffer_size;
-  alloc_data->align = clip2(alignment);
-  if (alloc_data->align < 4096)
-  {
-    alloc_data->align = 4096;
-  }
-  if ((secure_mode) && (flag & ION_SECURE))
-      alloc_data->flags |= ION_SECURE;
+    int fd = -EINVAL;
+    int rc = -EINVAL;
+    int ion_dev_flag;
+    struct vdec_ion ion_buf_info;
+    if (!alloc_data || buffer_size <= 0 || !fd_data) {
+        DEBUG_PRINT_ERROR("Invalid arguments to alloc_map_ion_memory\n");
+        return -EINVAL;
+    }
+    ion_dev_flag = O_RDONLY;
+    fd = open (MEM_DEVICE, ion_dev_flag);
+    if (fd < 0) {
+        DEBUG_PRINT_ERROR("opening ion device failed with fd = %d\n", fd);
+        return fd;
+    }
+    alloc_data->flags = 0;
+    if (!secure_mode && (flag & ION_FLAG_CACHED)) {
+        alloc_data->flags |= ION_FLAG_CACHED;
+    }
+    alloc_data->len = buffer_size;
+    alloc_data->align = clip2(alignment);
+    if (alloc_data->align < 4096) {
+        alloc_data->align = 4096;
+    }
+    if ((secure_mode) && (flag & ION_SECURE))
+        alloc_data->flags |= ION_SECURE;
 
 #ifdef _HEVC_USE_ADSP_HEAP_
-  alloc_data->heap_mask = ION_HEAP(ION_ADSP_HEAP_ID);
+    alloc_data->heap_mask = ION_HEAP(ION_ADSP_HEAP_ID);
 #else
-  alloc_data->heap_mask = ION_HEAP(ION_IOMMU_HEAP_ID);
+    alloc_data->heap_mask = ION_HEAP(ION_IOMMU_HEAP_ID);
 #endif
-  if (secure_mode) {
-    alloc_data->heap_mask = ION_HEAP(MEM_HEAP_ID);
-  }
-  rc = ioctl(fd,ION_IOC_ALLOC,alloc_data);
-  if (rc || !alloc_data->handle) {
-    DEBUG_PRINT_ERROR("\n ION ALLOC memory failed ");
-    alloc_data->handle = NULL;
-    close(fd);
-    fd = -ENOMEM;
-    return fd;
-  }
-  fd_data->handle = alloc_data->handle;
-  rc = ioctl(fd,ION_IOC_MAP,fd_data);
-  if (rc) {
-    DEBUG_PRINT_ERROR("\n ION MAP failed ");
-    ion_buf_info.ion_alloc_data = *alloc_data;
-    ion_buf_info.ion_device_fd = fd;
-    ion_buf_info.fd_ion_data = *fd_data;
-    free_ion_memory(&ion_buf_info);
-    fd_data->fd =-1;
-    close(fd);
-    fd = -ENOMEM;
-  }
+    if (secure_mode) {
+        alloc_data->heap_mask = ION_HEAP(MEM_HEAP_ID);
+    }
+    rc = ioctl(fd,ION_IOC_ALLOC,alloc_data);
+    if (rc || !alloc_data->handle) {
+        DEBUG_PRINT_ERROR("\n ION ALLOC memory failed ");
+        alloc_data->handle = NULL;
+        close(fd);
+        fd = -ENOMEM;
+        return fd;
+    }
+    fd_data->handle = alloc_data->handle;
+    rc = ioctl(fd,ION_IOC_MAP,fd_data);
+    if (rc) {
+        DEBUG_PRINT_ERROR("\n ION MAP failed ");
+        ion_buf_info.ion_alloc_data = *alloc_data;
+        ion_buf_info.ion_device_fd = fd;
+        ion_buf_info.fd_ion_data = *fd_data;
+        free_ion_memory(&ion_buf_info);
+        fd_data->fd =-1;
+        close(fd);
+        fd = -ENOMEM;
+    }
 
-  return fd;
+    return fd;
 }
 
-void omx_vdec::free_ion_memory(struct vdec_ion *buf_ion_info) {
+void omx_vdec::free_ion_memory(struct vdec_ion *buf_ion_info)
+{
 
-     if(!buf_ion_info) {
-       DEBUG_PRINT_ERROR("\n ION: free called with invalid fd/allocdata");
-       return;
-     }
-     if(ioctl(buf_ion_info->ion_device_fd,ION_IOC_FREE,
-             &buf_ion_info->ion_alloc_data.handle)) {
-       DEBUG_PRINT_ERROR("\n ION: free failed" );
-     }
-     close(buf_ion_info->ion_device_fd);
-     buf_ion_info->ion_device_fd = -1;
-     buf_ion_info->ion_alloc_data.handle = NULL;
-     buf_ion_info->fd_ion_data.fd = -1;
+    if (!buf_ion_info) {
+        DEBUG_PRINT_ERROR("\n ION: free called with invalid fd/allocdata");
+        return;
+    }
+    if (ioctl(buf_ion_info->ion_device_fd,ION_IOC_FREE,
+                &buf_ion_info->ion_alloc_data.handle)) {
+        DEBUG_PRINT_ERROR("\n ION: free failed" );
+    }
+    close(buf_ion_info->ion_device_fd);
+    buf_ion_info->ion_device_fd = -1;
+    buf_ion_info->ion_alloc_data.handle = NULL;
+    buf_ion_info->fd_ion_data.fd = -1;
 }
 #endif
 void omx_vdec::free_output_buffer_header()
 {
-  DEBUG_PRINT_HIGH("\n ALL output buffers are freed/released");
-  output_use_buffer = false;
-  ouput_egl_buffers = false;
+    DEBUG_PRINT_HIGH("\n ALL output buffers are freed/released");
+    output_use_buffer = false;
+    ouput_egl_buffers = false;
 
-  if (m_out_mem_ptr)
-  {
-    free (m_out_mem_ptr);
-    m_out_mem_ptr = NULL;
-  }
+    if (m_out_mem_ptr) {
+        free (m_out_mem_ptr);
+        m_out_mem_ptr = NULL;
+    }
 
-  if(m_platform_list)
-  {
-    free(m_platform_list);
-    m_platform_list = NULL;
-  }
+    if (m_platform_list) {
+        free(m_platform_list);
+        m_platform_list = NULL;
+    }
 
-  if (drv_ctx.ptr_respbuffer)
-  {
-    free (drv_ctx.ptr_respbuffer);
-    drv_ctx.ptr_respbuffer = NULL;
-  }
-  if (drv_ctx.ptr_outputbuffer)
-  {
-    free (drv_ctx.ptr_outputbuffer);
-    drv_ctx.ptr_outputbuffer = NULL;
-  }
+    if (drv_ctx.ptr_respbuffer) {
+        free (drv_ctx.ptr_respbuffer);
+        drv_ctx.ptr_respbuffer = NULL;
+    }
+    if (drv_ctx.ptr_outputbuffer) {
+        free (drv_ctx.ptr_outputbuffer);
+        drv_ctx.ptr_outputbuffer = NULL;
+    }
 #ifdef USE_ION
     if (drv_ctx.op_buf_ion_info) {
         DEBUG_PRINT_LOW("\n Free o/p ion context");
-	free(drv_ctx.op_buf_ion_info);
+        free(drv_ctx.op_buf_ion_info);
         drv_ctx.op_buf_ion_info = NULL;
     }
 #endif
@@ -7965,45 +7062,39 @@
 void omx_vdec::free_input_buffer_header()
 {
     input_use_buffer = false;
-    if (arbitrary_bytes)
-    {
-      if (m_frame_parser.mutils)
-      {
-        DEBUG_PRINT_LOW("\n Free utils parser");
-        delete (m_frame_parser.mutils);
-        m_frame_parser.mutils = NULL;
-      }
+    if (arbitrary_bytes) {
+        if (m_frame_parser.mutils) {
+            DEBUG_PRINT_LOW("\n Free utils parser");
+            delete (m_frame_parser.mutils);
+            m_frame_parser.mutils = NULL;
+        }
 
-      if (m_inp_heap_ptr)
-      {
-        DEBUG_PRINT_LOW("\n Free input Heap Pointer");
-        free (m_inp_heap_ptr);
-        m_inp_heap_ptr = NULL;
-      }
+        if (m_inp_heap_ptr) {
+            DEBUG_PRINT_LOW("\n Free input Heap Pointer");
+            free (m_inp_heap_ptr);
+            m_inp_heap_ptr = NULL;
+        }
 
-      if (m_phdr_pmem_ptr)
-      {
-        DEBUG_PRINT_LOW("\n Free input pmem header Pointer");
-        free (m_phdr_pmem_ptr);
-        m_phdr_pmem_ptr = NULL;
-      }
+        if (m_phdr_pmem_ptr) {
+            DEBUG_PRINT_LOW("\n Free input pmem header Pointer");
+            free (m_phdr_pmem_ptr);
+            m_phdr_pmem_ptr = NULL;
+        }
     }
-    if (m_inp_mem_ptr)
-    {
-      DEBUG_PRINT_LOW("\n Free input pmem Pointer area");
-      free (m_inp_mem_ptr);
-      m_inp_mem_ptr = NULL;
+    if (m_inp_mem_ptr) {
+        DEBUG_PRINT_LOW("\n Free input pmem Pointer area");
+        free (m_inp_mem_ptr);
+        m_inp_mem_ptr = NULL;
     }
-    if (drv_ctx.ptr_inputbuffer)
-    {
-      DEBUG_PRINT_LOW("\n Free Driver Context pointer");
-      free (drv_ctx.ptr_inputbuffer);
-      drv_ctx.ptr_inputbuffer = NULL;
+    if (drv_ctx.ptr_inputbuffer) {
+        DEBUG_PRINT_LOW("\n Free Driver Context pointer");
+        free (drv_ctx.ptr_inputbuffer);
+        drv_ctx.ptr_inputbuffer = NULL;
     }
 #ifdef USE_ION
     if (drv_ctx.ip_buf_ion_info) {
         DEBUG_PRINT_LOW("\n Free ion context");
-	free(drv_ctx.ip_buf_ion_info);
+        free(drv_ctx.ip_buf_ion_info);
         drv_ctx.ip_buf_ion_info = NULL;
     }
 #endif
@@ -8011,1506 +7102,1422 @@
 
 int omx_vdec::stream_off(OMX_U32 port)
 {
-	enum v4l2_buf_type btype;
-	int rc = 0;
-	enum v4l2_ports v4l2_port = OUTPUT_PORT;
+    enum v4l2_buf_type btype;
+    int rc = 0;
+    enum v4l2_ports v4l2_port = OUTPUT_PORT;
 
-	if (port == OMX_CORE_INPUT_PORT_INDEX) {
-		btype = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-		v4l2_port = OUTPUT_PORT;
-	} else if (port == OMX_CORE_OUTPUT_PORT_INDEX) {
-		btype = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		v4l2_port = CAPTURE_PORT;
-	} else if (port == OMX_ALL) {
-		int rc_input = stream_off(OMX_CORE_INPUT_PORT_INDEX);
-		int rc_output = stream_off(OMX_CORE_OUTPUT_PORT_INDEX);
+    if (port == OMX_CORE_INPUT_PORT_INDEX) {
+        btype = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+        v4l2_port = OUTPUT_PORT;
+    } else if (port == OMX_CORE_OUTPUT_PORT_INDEX) {
+        btype = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+        v4l2_port = CAPTURE_PORT;
+    } else if (port == OMX_ALL) {
+        int rc_input = stream_off(OMX_CORE_INPUT_PORT_INDEX);
+        int rc_output = stream_off(OMX_CORE_OUTPUT_PORT_INDEX);
 
-		if (!rc_input)
-			return rc_input;
-		else
-			return rc_output;
-	}
+        if (!rc_input)
+            return rc_input;
+        else
+            return rc_output;
+    }
 
-	if (!streaming[v4l2_port]) {
-		// already streamed off, warn and move on
-		DEBUG_PRINT_HIGH("Warning: Attempting to stream off on %d port,"
-				" which is already streamed off", v4l2_port);
-		return 0;
-	}
+    if (!streaming[v4l2_port]) {
+        // already streamed off, warn and move on
+        DEBUG_PRINT_HIGH("Warning: Attempting to stream off on %d port,"
+                " which is already streamed off", v4l2_port);
+        return 0;
+    }
 
-	DEBUG_PRINT_HIGH("Streaming off %d port", v4l2_port);
+    DEBUG_PRINT_HIGH("Streaming off %d port", v4l2_port);
 
-	rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_STREAMOFF, &btype);
-	if (rc) {
-		/*TODO: How to handle this case */
-		DEBUG_PRINT_ERROR("Failed to call streamoff on %d Port \n", v4l2_port);
-	} else {
-		streaming[v4l2_port] = false;
-	}
+    rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_STREAMOFF, &btype);
+    if (rc) {
+        /*TODO: How to handle this case */
+        DEBUG_PRINT_ERROR("Failed to call streamoff on %d Port \n", v4l2_port);
+    } else {
+        streaming[v4l2_port] = false;
+    }
 
-	return rc;
+    return rc;
 }
 
 OMX_ERRORTYPE omx_vdec::get_buffer_req(vdec_allocatorproperty *buffer_prop)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  struct v4l2_requestbuffers bufreq;
-  unsigned int buf_size = 0, extra_data_size = 0, client_extra_data_size = 0;
-  struct v4l2_format fmt;
-  int ret = 0;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    struct v4l2_requestbuffers bufreq;
+    unsigned int buf_size = 0, extra_data_size = 0, client_extra_data_size = 0;
+    struct v4l2_format fmt;
+    int ret = 0;
 
-	bufreq.memory = V4L2_MEMORY_USERPTR;
-	bufreq.count = 1;
-   if(buffer_prop->buffer_type == VDEC_BUFFER_TYPE_INPUT){
-    bufreq.type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-	fmt.type =V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-    fmt.fmt.pix_mp.pixelformat = output_capability;
-  }else if (buffer_prop->buffer_type == VDEC_BUFFER_TYPE_OUTPUT){
-    bufreq.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-	fmt.type =V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-    fmt.fmt.pix_mp.pixelformat = capture_capability;
-  }else {eRet = OMX_ErrorBadParameter;}
-  if(eRet==OMX_ErrorNone){
-  ret = ioctl(drv_ctx.video_driver_fd,VIDIOC_REQBUFS, &bufreq);
-  }
-  if(ret)
-  {
-    DEBUG_PRINT_ERROR("Requesting buffer requirements failed");
-	/*TODO: How to handle this case */
-    eRet = OMX_ErrorInsufficientResources;
-	return eRet;
-  }
-  else
-  {
-    buffer_prop->actualcount = bufreq.count;
-    buffer_prop->mincount = bufreq.count;
-    DEBUG_PRINT_HIGH("Count = %d \n ",bufreq.count);
-  }
-  DEBUG_PRINT_HIGH("GetBufReq: ActCnt(%d) Size(%d), BufType(%d)",
-    buffer_prop->actualcount, buffer_prop->buffer_size, buffer_prop->buffer_type);
+    bufreq.memory = V4L2_MEMORY_USERPTR;
+    bufreq.count = 1;
+    if (buffer_prop->buffer_type == VDEC_BUFFER_TYPE_INPUT) {
+        bufreq.type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+        fmt.type =V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+        fmt.fmt.pix_mp.pixelformat = output_capability;
+    } else if (buffer_prop->buffer_type == VDEC_BUFFER_TYPE_OUTPUT) {
+        bufreq.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+        fmt.type =V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+        fmt.fmt.pix_mp.pixelformat = capture_capability;
+    } else {
+        eRet = OMX_ErrorBadParameter;
+    }
+    if (eRet==OMX_ErrorNone) {
+        ret = ioctl(drv_ctx.video_driver_fd,VIDIOC_REQBUFS, &bufreq);
+    }
+    if (ret) {
+        DEBUG_PRINT_ERROR("Requesting buffer requirements failed");
+        /*TODO: How to handle this case */
+        eRet = OMX_ErrorInsufficientResources;
+        return eRet;
+    } else {
+        buffer_prop->actualcount = bufreq.count;
+        buffer_prop->mincount = bufreq.count;
+        DEBUG_PRINT_HIGH("Count = %d \n ",bufreq.count);
+    }
+    DEBUG_PRINT_HIGH("GetBufReq: ActCnt(%d) Size(%d), BufType(%d)",
+            buffer_prop->actualcount, buffer_prop->buffer_size, buffer_prop->buffer_type);
 
-  fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
-  fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
+    fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
+    fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
 
-  ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_G_FMT, &fmt);
+    ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_G_FMT, &fmt);
 
-  update_resolution(fmt.fmt.pix_mp.width, fmt.fmt.pix_mp.height);
-  if (fmt.type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)
-      drv_ctx.num_planes = fmt.fmt.pix_mp.num_planes;
-  DEBUG_PRINT_HIGH("Buffer Size (plane[0].sizeimage) = %d \n ",fmt.fmt.pix_mp.plane_fmt[0].sizeimage);
+    update_resolution(fmt.fmt.pix_mp.width, fmt.fmt.pix_mp.height);
+    if (fmt.type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)
+        drv_ctx.num_planes = fmt.fmt.pix_mp.num_planes;
+    DEBUG_PRINT_HIGH("Buffer Size (plane[0].sizeimage) = %d \n ",fmt.fmt.pix_mp.plane_fmt[0].sizeimage);
 
-  if(ret)
-  {
-	/*TODO: How to handle this case */
-    DEBUG_PRINT_ERROR("Requesting buffer requirements failed");
-    eRet = OMX_ErrorInsufficientResources;
-  }
-  else
-  {
-    int extra_idx = 0;
-    buffer_prop->buffer_size = fmt.fmt.pix_mp.plane_fmt[0].sizeimage;
-    buf_size = buffer_prop->buffer_size;
-    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;
-    } else if (extra_idx >= VIDEO_MAX_PLANES) {
-      DEBUG_PRINT_ERROR("Extradata index is more than allowed: %d\n", extra_idx);
-      return OMX_ErrorBadParameter;
+    if (ret) {
+        /*TODO: How to handle this case */
+        DEBUG_PRINT_ERROR("Requesting buffer requirements failed");
+        eRet = OMX_ErrorInsufficientResources;
+    } else {
+        int extra_idx = 0;
+        buffer_prop->buffer_size = fmt.fmt.pix_mp.plane_fmt[0].sizeimage;
+        buf_size = buffer_prop->buffer_size;
+        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;
+        } else if (extra_idx >= VIDEO_MAX_PLANES) {
+            DEBUG_PRINT_ERROR("Extradata index is more than allowed: %d\n", extra_idx);
+            return OMX_ErrorBadParameter;
+        }
+        if (client_extradata & OMX_FRAMEINFO_EXTRADATA) {
+            DEBUG_PRINT_HIGH("Frame info extra data enabled!");
+            client_extra_data_size += OMX_FRAMEINFO_EXTRADATA_SIZE;
+        }
+        if (client_extradata & OMX_INTERLACE_EXTRADATA) {
+            client_extra_data_size += OMX_INTERLACE_EXTRADATA_SIZE;
+        }
+        if (client_extradata & OMX_PORTDEF_EXTRADATA) {
+            client_extra_data_size += OMX_PORTDEF_EXTRADATA_SIZE;
+            DEBUG_PRINT_HIGH("Smooth streaming enabled extra_data_size=%d\n",
+                    client_extra_data_size);
+        }
+        if (client_extra_data_size) {
+            client_extra_data_size += sizeof(OMX_OTHER_EXTRADATATYPE); //Space for terminator
+            buf_size = ((buf_size + 3)&(~3)); //Align extradata start address to 64Bit
+        }
+        drv_ctx.extradata_info.size = buffer_prop->actualcount * extra_data_size;
+        drv_ctx.extradata_info.count = buffer_prop->actualcount;
+        drv_ctx.extradata_info.buffer_size = extra_data_size;
+        buf_size += client_extra_data_size;
+        buf_size = (buf_size + buffer_prop->alignment - 1)&(~(buffer_prop->alignment - 1));
+        DEBUG_PRINT_HIGH("GetBufReq UPDATE: ActCnt(%d) Size(%d) BufSize(%d) BufType(%d)",
+                buffer_prop->actualcount, buffer_prop->buffer_size, buf_size, buffer_prop->buffer_type);
+        if (in_reconfig) // BufReq will be set to driver when port is disabled
+            buffer_prop->buffer_size = buf_size;
+        else if (buf_size != buffer_prop->buffer_size) {
+            buffer_prop->buffer_size = buf_size;
+            eRet = set_buffer_req(buffer_prop);
+        }
     }
-    if (client_extradata & OMX_FRAMEINFO_EXTRADATA)
-    {
-      DEBUG_PRINT_HIGH("Frame info extra data enabled!");
-      client_extra_data_size += OMX_FRAMEINFO_EXTRADATA_SIZE;
-    }
-    if (client_extradata & OMX_INTERLACE_EXTRADATA)
-    {
-      client_extra_data_size += OMX_INTERLACE_EXTRADATA_SIZE;
-    }
-    if (client_extradata & OMX_PORTDEF_EXTRADATA)
-    {
-      client_extra_data_size += OMX_PORTDEF_EXTRADATA_SIZE;
-      DEBUG_PRINT_HIGH("Smooth streaming enabled extra_data_size=%d\n",
-         client_extra_data_size);
-    }
-    if (client_extra_data_size)
-    {
-      client_extra_data_size += sizeof(OMX_OTHER_EXTRADATATYPE); //Space for terminator
-      buf_size = ((buf_size + 3)&(~3)); //Align extradata start address to 64Bit
-    }
-    drv_ctx.extradata_info.size = buffer_prop->actualcount * extra_data_size;
-    drv_ctx.extradata_info.count = buffer_prop->actualcount;
-    drv_ctx.extradata_info.buffer_size = extra_data_size;
-    buf_size += client_extra_data_size;
-    buf_size = (buf_size + buffer_prop->alignment - 1)&(~(buffer_prop->alignment - 1));
-    DEBUG_PRINT_HIGH("GetBufReq UPDATE: ActCnt(%d) Size(%d) BufSize(%d) BufType(%d)",
-        buffer_prop->actualcount, buffer_prop->buffer_size, buf_size, buffer_prop->buffer_type);
-    if (in_reconfig) // BufReq will be set to driver when port is disabled
-      buffer_prop->buffer_size = buf_size;
-    else if (buf_size != buffer_prop->buffer_size)
-    {
-      buffer_prop->buffer_size = buf_size;
-      eRet = set_buffer_req(buffer_prop);
-    }
-  }
-  DEBUG_PRINT_HIGH("GetBufReq OUT: ActCnt(%d) Size(%d), BufType(%d)\n",
-    buffer_prop->actualcount, buffer_prop->buffer_size, buffer_prop->buffer_type);
-  return eRet;
+    DEBUG_PRINT_HIGH("GetBufReq OUT: ActCnt(%d) Size(%d), BufType(%d)\n",
+            buffer_prop->actualcount, buffer_prop->buffer_size, buffer_prop->buffer_type);
+    return eRet;
 }
 
 OMX_ERRORTYPE omx_vdec::set_buffer_req(vdec_allocatorproperty *buffer_prop)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  unsigned buf_size = 0;
-  struct v4l2_format fmt;
-  struct v4l2_requestbuffers bufreq;
-  int ret;
-  DEBUG_PRINT_LOW("SetBufReq IN: ActCnt(%d) Size(%d)",
-    buffer_prop->actualcount, buffer_prop->buffer_size);
-  buf_size = (buffer_prop->buffer_size + buffer_prop->alignment - 1)&(~(buffer_prop->alignment - 1));
-  if (buf_size != buffer_prop->buffer_size)
-  {
-    DEBUG_PRINT_ERROR("Buffer size alignment error: Requested(%d) Required(%d)",
-      buffer_prop->buffer_size, buf_size);
-    eRet = OMX_ErrorBadParameter;
-  }
-  else
-  {
-    fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
-	fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    unsigned buf_size = 0;
+    struct v4l2_format fmt;
+    struct v4l2_requestbuffers bufreq;
+    int ret;
+    DEBUG_PRINT_LOW("SetBufReq IN: ActCnt(%d) Size(%d)",
+            buffer_prop->actualcount, buffer_prop->buffer_size);
+    buf_size = (buffer_prop->buffer_size + buffer_prop->alignment - 1)&(~(buffer_prop->alignment - 1));
+    if (buf_size != buffer_prop->buffer_size) {
+        DEBUG_PRINT_ERROR("Buffer size alignment error: Requested(%d) Required(%d)",
+                buffer_prop->buffer_size, buf_size);
+        eRet = OMX_ErrorBadParameter;
+    } else {
+        fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
+        fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
 
-	if (buffer_prop->buffer_type == VDEC_BUFFER_TYPE_INPUT){
-		fmt.type =V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-		fmt.fmt.pix_mp.pixelformat = output_capability;
-	} else if (buffer_prop->buffer_type == VDEC_BUFFER_TYPE_OUTPUT) {
-		fmt.type =V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		fmt.fmt.pix_mp.pixelformat = capture_capability;
-	} else {eRet = OMX_ErrorBadParameter;}
+        if (buffer_prop->buffer_type == VDEC_BUFFER_TYPE_INPUT) {
+            fmt.type =V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+            fmt.fmt.pix_mp.pixelformat = output_capability;
+        } else if (buffer_prop->buffer_type == VDEC_BUFFER_TYPE_OUTPUT) {
+            fmt.type =V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+            fmt.fmt.pix_mp.pixelformat = capture_capability;
+        } else {
+            eRet = OMX_ErrorBadParameter;
+        }
 
-	ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_FMT, &fmt);
-    if (ret)
-    {
-	  /*TODO: How to handle this case */
-      DEBUG_PRINT_ERROR("Setting buffer requirements (format) failed %d", ret);
-      eRet = OMX_ErrorInsufficientResources;
+        ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_FMT, &fmt);
+        if (ret) {
+            /*TODO: How to handle this case */
+            DEBUG_PRINT_ERROR("Setting buffer requirements (format) failed %d", ret);
+            eRet = OMX_ErrorInsufficientResources;
+        }
+
+        bufreq.memory = V4L2_MEMORY_USERPTR;
+        bufreq.count = buffer_prop->actualcount;
+        if (buffer_prop->buffer_type == VDEC_BUFFER_TYPE_INPUT) {
+            bufreq.type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+        } else if (buffer_prop->buffer_type == VDEC_BUFFER_TYPE_OUTPUT) {
+            bufreq.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+        } else {
+            eRet = OMX_ErrorBadParameter;
+        }
+
+        if (eRet==OMX_ErrorNone) {
+            ret = ioctl(drv_ctx.video_driver_fd,VIDIOC_REQBUFS, &bufreq);
+        }
+
+        if (ret) {
+            DEBUG_PRINT_ERROR("Setting buffer requirements (reqbufs) failed %d", ret);
+            /*TODO: How to handle this case */
+            eRet = OMX_ErrorInsufficientResources;
+        } else if (bufreq.count < buffer_prop->actualcount) {
+            DEBUG_PRINT_ERROR("Driver refused to change the number of buffers"
+                    " on v4l2 port %d to %d (prefers %d)", bufreq.type,
+                    buffer_prop->actualcount, bufreq.count);
+            eRet = OMX_ErrorInsufficientResources;
+        } else {
+            if (!client_buffers.update_buffer_req()) {
+                DEBUG_PRINT_ERROR("Setting c2D buffer requirements failed");
+                eRet = OMX_ErrorInsufficientResources;
+            }
+        }
     }
-
-	bufreq.memory = V4L2_MEMORY_USERPTR;
-	bufreq.count = buffer_prop->actualcount;
-	if(buffer_prop->buffer_type == VDEC_BUFFER_TYPE_INPUT) {
-		bufreq.type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-	} else if (buffer_prop->buffer_type == VDEC_BUFFER_TYPE_OUTPUT) {
-		bufreq.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-	} else {eRet = OMX_ErrorBadParameter;}
-
-	if (eRet==OMX_ErrorNone) {
-		ret = ioctl(drv_ctx.video_driver_fd,VIDIOC_REQBUFS, &bufreq);
-	}
-
-	if (ret)
-	{
-		DEBUG_PRINT_ERROR("Setting buffer requirements (reqbufs) failed %d", ret);
-		/*TODO: How to handle this case */
-		eRet = OMX_ErrorInsufficientResources;
-	} else if (bufreq.count < buffer_prop->actualcount) {
-		DEBUG_PRINT_ERROR("Driver refused to change the number of buffers"
-						" on v4l2 port %d to %d (prefers %d)", bufreq.type,
-						buffer_prop->actualcount, bufreq.count);
-		eRet = OMX_ErrorInsufficientResources;
-	} else {
-        if (!client_buffers.update_buffer_req()) {
-        DEBUG_PRINT_ERROR("Setting c2D buffer requirements failed");
-        eRet = OMX_ErrorInsufficientResources;
-      }
+    if (!eRet && buffer_prop->buffer_type == VDEC_BUFFER_TYPE_OUTPUT) {
+        // need to update extradata buffers also
+        drv_ctx.extradata_info.size = buffer_prop->actualcount * drv_ctx.extradata_info.buffer_size;
+        drv_ctx.extradata_info.count = buffer_prop->actualcount;
     }
-  }
-  if (!eRet && buffer_prop->buffer_type == VDEC_BUFFER_TYPE_OUTPUT)
-  {
-    // need to update extradata buffers also
-    drv_ctx.extradata_info.size = buffer_prop->actualcount * drv_ctx.extradata_info.buffer_size;
-    drv_ctx.extradata_info.count = buffer_prop->actualcount;
-  }
-  return eRet;
+    return eRet;
 }
 
 OMX_ERRORTYPE omx_vdec::update_picture_resolution()
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  return eRet;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    return eRet;
 }
 
 OMX_ERRORTYPE omx_vdec::update_portdef(OMX_PARAM_PORTDEFINITIONTYPE *portDefn)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  if (!portDefn)
-  {
-    return OMX_ErrorBadParameter;
-  }
-  DEBUG_PRINT_LOW("omx_vdec::update_portdef\n");
-  portDefn->nVersion.nVersion = OMX_SPEC_VERSION;
-  portDefn->nSize = sizeof(portDefn);
-  portDefn->eDomain    = OMX_PortDomainVideo;
-  if (drv_ctx.frame_rate.fps_denominator > 0)
-    portDefn->format.video.xFramerate = drv_ctx.frame_rate.fps_numerator /
-                                        drv_ctx.frame_rate.fps_denominator;
-  else {
-    DEBUG_PRINT_ERROR("Error: Divide by zero \n");
-    return OMX_ErrorBadParameter;
-  }
-  if (0 == portDefn->nPortIndex)
-  {
-    portDefn->eDir =  OMX_DirInput;
-    portDefn->nBufferCountActual = drv_ctx.ip_buf.actualcount;
-    portDefn->nBufferCountMin    = drv_ctx.ip_buf.mincount;
-    portDefn->nBufferSize        = drv_ctx.ip_buf.buffer_size;
-    portDefn->format.video.eColorFormat = OMX_COLOR_FormatUnused;
-    portDefn->format.video.eCompressionFormat = eCompressionFormat;
-    portDefn->bEnabled   = m_inp_bEnabled;
-    portDefn->bPopulated = m_inp_bPopulated;
-  }
-  else if (1 == portDefn->nPortIndex)
-  {
-    unsigned int buf_size = 0;
-    if (!client_buffers.update_buffer_req()) {
-      DEBUG_PRINT_ERROR("\n client_buffers.update_buffer_req Failed");
-      return OMX_ErrorHardware;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    if (!portDefn) {
+        return OMX_ErrorBadParameter;
     }
-    if (!client_buffers.get_buffer_req(buf_size)) {
-      DEBUG_PRINT_ERROR("\n update buffer requirements");
-      return OMX_ErrorHardware;
+    DEBUG_PRINT_LOW("omx_vdec::update_portdef\n");
+    portDefn->nVersion.nVersion = OMX_SPEC_VERSION;
+    portDefn->nSize = sizeof(portDefn);
+    portDefn->eDomain    = OMX_PortDomainVideo;
+    if (drv_ctx.frame_rate.fps_denominator > 0)
+        portDefn->format.video.xFramerate = drv_ctx.frame_rate.fps_numerator /
+            drv_ctx.frame_rate.fps_denominator;
+    else {
+        DEBUG_PRINT_ERROR("Error: Divide by zero \n");
+        return OMX_ErrorBadParameter;
     }
-    portDefn->nBufferSize = buf_size;
-    portDefn->eDir =  OMX_DirOutput;
-	portDefn->nBufferCountActual = drv_ctx.op_buf.actualcount;
-	portDefn->nBufferCountMin    = drv_ctx.op_buf.mincount;
-    portDefn->format.video.eCompressionFormat = OMX_VIDEO_CodingUnused;
-    portDefn->bEnabled   = m_out_bEnabled;
-    portDefn->bPopulated = m_out_bPopulated;
-    if (!client_buffers.get_color_format(portDefn->format.video.eColorFormat)) {
-        DEBUG_PRINT_ERROR("\n Error in getting color format");
-        return OMX_ErrorHardware;
+    if (0 == portDefn->nPortIndex) {
+        portDefn->eDir =  OMX_DirInput;
+        portDefn->nBufferCountActual = drv_ctx.ip_buf.actualcount;
+        portDefn->nBufferCountMin    = drv_ctx.ip_buf.mincount;
+        portDefn->nBufferSize        = drv_ctx.ip_buf.buffer_size;
+        portDefn->format.video.eColorFormat = OMX_COLOR_FormatUnused;
+        portDefn->format.video.eCompressionFormat = eCompressionFormat;
+        portDefn->bEnabled   = m_inp_bEnabled;
+        portDefn->bPopulated = m_inp_bPopulated;
+    } else if (1 == portDefn->nPortIndex) {
+        unsigned int buf_size = 0;
+        if (!client_buffers.update_buffer_req()) {
+            DEBUG_PRINT_ERROR("\n client_buffers.update_buffer_req Failed");
+            return OMX_ErrorHardware;
+        }
+        if (!client_buffers.get_buffer_req(buf_size)) {
+            DEBUG_PRINT_ERROR("\n update buffer requirements");
+            return OMX_ErrorHardware;
+        }
+        portDefn->nBufferSize = buf_size;
+        portDefn->eDir =  OMX_DirOutput;
+        portDefn->nBufferCountActual = drv_ctx.op_buf.actualcount;
+        portDefn->nBufferCountMin    = drv_ctx.op_buf.mincount;
+        portDefn->format.video.eCompressionFormat = OMX_VIDEO_CodingUnused;
+        portDefn->bEnabled   = m_out_bEnabled;
+        portDefn->bPopulated = m_out_bPopulated;
+        if (!client_buffers.get_color_format(portDefn->format.video.eColorFormat)) {
+            DEBUG_PRINT_ERROR("\n Error in getting color format");
+            return OMX_ErrorHardware;
+        }
+    } else {
+        portDefn->eDir = OMX_DirMax;
+        DEBUG_PRINT_LOW(" get_parameter: Bad Port idx %d",
+                (int)portDefn->nPortIndex);
+        eRet = OMX_ErrorBadPortIndex;
     }
-  }
-  else
-  {
-      portDefn->eDir = OMX_DirMax;
-    DEBUG_PRINT_LOW(" get_parameter: Bad Port idx %d",
-             (int)portDefn->nPortIndex);
-    eRet = OMX_ErrorBadPortIndex;
-  }
-  portDefn->format.video.nFrameHeight =  drv_ctx.video_resolution.frame_height;
-  portDefn->format.video.nFrameWidth  =  drv_ctx.video_resolution.frame_width;
-  portDefn->format.video.nStride = drv_ctx.video_resolution.stride;
-  portDefn->format.video.nSliceHeight = drv_ctx.video_resolution.scan_lines;
-  DEBUG_PRINT_HIGH("update_portdef Width = %lu Height = %lu Stride = %ld"
-    " SliceHeight = %lu \n", portDefn->format.video.nFrameWidth,
-    portDefn->format.video.nFrameHeight,
-    portDefn->format.video.nStride,
-    portDefn->format.video.nSliceHeight);
-  return eRet;
+    portDefn->format.video.nFrameHeight =  drv_ctx.video_resolution.frame_height;
+    portDefn->format.video.nFrameWidth  =  drv_ctx.video_resolution.frame_width;
+    portDefn->format.video.nStride = drv_ctx.video_resolution.stride;
+    portDefn->format.video.nSliceHeight = drv_ctx.video_resolution.scan_lines;
+    DEBUG_PRINT_HIGH("update_portdef Width = %lu Height = %lu Stride = %ld"
+            " SliceHeight = %lu \n", portDefn->format.video.nFrameWidth,
+            portDefn->format.video.nFrameHeight,
+            portDefn->format.video.nStride,
+            portDefn->format.video.nSliceHeight);
+    return eRet;
 
 }
 
 OMX_ERRORTYPE omx_vdec::allocate_output_headers()
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  OMX_BUFFERHEADERTYPE *bufHdr = NULL;
-  unsigned i= 0;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_BUFFERHEADERTYPE *bufHdr = NULL;
+    unsigned i= 0;
 
-  if(!m_out_mem_ptr) {
-    DEBUG_PRINT_HIGH("\n Use o/p buffer case - Header List allocation");
-    int nBufHdrSize        = 0;
-    int nPlatformEntrySize = 0;
-    int nPlatformListSize  = 0;
-    int nPMEMInfoSize = 0;
-    OMX_QCOM_PLATFORM_PRIVATE_LIST      *pPlatformList;
-    OMX_QCOM_PLATFORM_PRIVATE_ENTRY     *pPlatformEntry;
-    OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pPMEMInfo;
+    if (!m_out_mem_ptr) {
+        DEBUG_PRINT_HIGH("\n Use o/p buffer case - Header List allocation");
+        int nBufHdrSize        = 0;
+        int nPlatformEntrySize = 0;
+        int nPlatformListSize  = 0;
+        int nPMEMInfoSize = 0;
+        OMX_QCOM_PLATFORM_PRIVATE_LIST      *pPlatformList;
+        OMX_QCOM_PLATFORM_PRIVATE_ENTRY     *pPlatformEntry;
+        OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pPMEMInfo;
 
-    DEBUG_PRINT_LOW("Setting First Output Buffer(%d)\n",
-      drv_ctx.op_buf.actualcount);
-    nBufHdrSize        = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_BUFFERHEADERTYPE);
+        DEBUG_PRINT_LOW("Setting First Output Buffer(%d)\n",
+                drv_ctx.op_buf.actualcount);
+        nBufHdrSize        = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_BUFFERHEADERTYPE);
 
-    nPMEMInfoSize      = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO);
-    nPlatformListSize  = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_QCOM_PLATFORM_PRIVATE_LIST);
-    nPlatformEntrySize = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_QCOM_PLATFORM_PRIVATE_ENTRY);
+        nPMEMInfoSize      = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO);
+        nPlatformListSize  = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_QCOM_PLATFORM_PRIVATE_LIST);
+        nPlatformEntrySize = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_QCOM_PLATFORM_PRIVATE_ENTRY);
 
-    DEBUG_PRINT_LOW("TotalBufHdr %d BufHdrSize %d PMEM %d PL %d\n",nBufHdrSize,
-                         sizeof(OMX_BUFFERHEADERTYPE),
-                         nPMEMInfoSize,
-                         nPlatformListSize);
-    DEBUG_PRINT_LOW("PE %d bmSize %d \n",nPlatformEntrySize,
-                         m_out_bm_count);
-    m_out_mem_ptr = (OMX_BUFFERHEADERTYPE  *)calloc(nBufHdrSize,1);
-    // Alloc mem for platform specific info
-    char *pPtr=NULL;
-    pPtr = (char*) calloc(nPlatformListSize + nPlatformEntrySize +
-                                     nPMEMInfoSize,1);
-    drv_ctx.ptr_outputbuffer = (struct vdec_bufferpayload *) \
-      calloc (sizeof(struct vdec_bufferpayload),
-      drv_ctx.op_buf.actualcount);
-    drv_ctx.ptr_respbuffer = (struct vdec_output_frameinfo  *)\
-      calloc (sizeof (struct vdec_output_frameinfo),
-      drv_ctx.op_buf.actualcount);
+        DEBUG_PRINT_LOW("TotalBufHdr %d BufHdrSize %d PMEM %d PL %d\n",nBufHdrSize,
+                sizeof(OMX_BUFFERHEADERTYPE),
+                nPMEMInfoSize,
+                nPlatformListSize);
+        DEBUG_PRINT_LOW("PE %d bmSize %d \n",nPlatformEntrySize,
+                m_out_bm_count);
+        m_out_mem_ptr = (OMX_BUFFERHEADERTYPE  *)calloc(nBufHdrSize,1);
+        // Alloc mem for platform specific info
+        char *pPtr=NULL;
+        pPtr = (char*) calloc(nPlatformListSize + nPlatformEntrySize +
+                nPMEMInfoSize,1);
+        drv_ctx.ptr_outputbuffer = (struct vdec_bufferpayload *) \
+                                   calloc (sizeof(struct vdec_bufferpayload),
+                                           drv_ctx.op_buf.actualcount);
+        drv_ctx.ptr_respbuffer = (struct vdec_output_frameinfo  *)\
+                                 calloc (sizeof (struct vdec_output_frameinfo),
+                                         drv_ctx.op_buf.actualcount);
 #ifdef USE_ION
-    drv_ctx.op_buf_ion_info = (struct vdec_ion * ) \
-      calloc (sizeof(struct vdec_ion),drv_ctx.op_buf.actualcount);
+        drv_ctx.op_buf_ion_info = (struct vdec_ion * ) \
+                                  calloc (sizeof(struct vdec_ion),drv_ctx.op_buf.actualcount);
 #endif
 
-    if(m_out_mem_ptr && pPtr && drv_ctx.ptr_outputbuffer
-       && drv_ctx.ptr_respbuffer)
-    {
-      bufHdr          =  m_out_mem_ptr;
-      m_platform_list = (OMX_QCOM_PLATFORM_PRIVATE_LIST *)(pPtr);
-      m_platform_entry= (OMX_QCOM_PLATFORM_PRIVATE_ENTRY *)
-                        (((char *) m_platform_list)  + nPlatformListSize);
-      m_pmem_info     = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
-                        (((char *) m_platform_entry) + nPlatformEntrySize);
-      pPlatformList   = m_platform_list;
-      pPlatformEntry  = m_platform_entry;
-      pPMEMInfo       = m_pmem_info;
+        if (m_out_mem_ptr && pPtr && drv_ctx.ptr_outputbuffer
+                && drv_ctx.ptr_respbuffer) {
+            bufHdr          =  m_out_mem_ptr;
+            m_platform_list = (OMX_QCOM_PLATFORM_PRIVATE_LIST *)(pPtr);
+            m_platform_entry= (OMX_QCOM_PLATFORM_PRIVATE_ENTRY *)
+                (((char *) m_platform_list)  + nPlatformListSize);
+            m_pmem_info     = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
+                (((char *) m_platform_entry) + nPlatformEntrySize);
+            pPlatformList   = m_platform_list;
+            pPlatformEntry  = m_platform_entry;
+            pPMEMInfo       = m_pmem_info;
 
-      DEBUG_PRINT_LOW("Memory Allocation Succeeded for OUT port%p\n",m_out_mem_ptr);
+            DEBUG_PRINT_LOW("Memory Allocation Succeeded for OUT port%p\n",m_out_mem_ptr);
 
-      // Settting the entire storage nicely
-      DEBUG_PRINT_LOW("bHdr %p OutMem %p PE %p\n",bufHdr,
-                      m_out_mem_ptr,pPlatformEntry);
-      DEBUG_PRINT_LOW(" Pmem Info = %p \n",pPMEMInfo);
-      for(i=0; i < drv_ctx.op_buf.actualcount ; i++)
-      {
-        bufHdr->nSize              = sizeof(OMX_BUFFERHEADERTYPE);
-        bufHdr->nVersion.nVersion  = OMX_SPEC_VERSION;
-        // Set the values when we determine the right HxW param
-        bufHdr->nAllocLen          = 0;
-        bufHdr->nFilledLen         = 0;
-        bufHdr->pAppPrivate        = NULL;
-        bufHdr->nOutputPortIndex   = OMX_CORE_OUTPUT_PORT_INDEX;
-        pPlatformEntry->type       = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
-        pPlatformEntry->entry      = pPMEMInfo;
-        // Initialize the Platform List
-        pPlatformList->nEntries    = 1;
-        pPlatformList->entryList   = pPlatformEntry;
-        // Keep pBuffer NULL till vdec is opened
-        bufHdr->pBuffer            = NULL;
-        pPMEMInfo->offset          =  0;
-        pPMEMInfo->pmem_fd = 0;
-        bufHdr->pPlatformPrivate = pPlatformList;
-        drv_ctx.ptr_outputbuffer[i].pmem_fd = -1;
+            // Settting the entire storage nicely
+            DEBUG_PRINT_LOW("bHdr %p OutMem %p PE %p\n",bufHdr,
+                    m_out_mem_ptr,pPlatformEntry);
+            DEBUG_PRINT_LOW(" Pmem Info = %p \n",pPMEMInfo);
+            for (i=0; i < drv_ctx.op_buf.actualcount ; i++) {
+                bufHdr->nSize              = sizeof(OMX_BUFFERHEADERTYPE);
+                bufHdr->nVersion.nVersion  = OMX_SPEC_VERSION;
+                // Set the values when we determine the right HxW param
+                bufHdr->nAllocLen          = 0;
+                bufHdr->nFilledLen         = 0;
+                bufHdr->pAppPrivate        = NULL;
+                bufHdr->nOutputPortIndex   = OMX_CORE_OUTPUT_PORT_INDEX;
+                pPlatformEntry->type       = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
+                pPlatformEntry->entry      = pPMEMInfo;
+                // Initialize the Platform List
+                pPlatformList->nEntries    = 1;
+                pPlatformList->entryList   = pPlatformEntry;
+                // Keep pBuffer NULL till vdec is opened
+                bufHdr->pBuffer            = NULL;
+                pPMEMInfo->offset          =  0;
+                pPMEMInfo->pmem_fd = 0;
+                bufHdr->pPlatformPrivate = pPlatformList;
+                drv_ctx.ptr_outputbuffer[i].pmem_fd = -1;
 #ifdef USE_ION
-        drv_ctx.op_buf_ion_info[i].ion_device_fd =-1;
+                drv_ctx.op_buf_ion_info[i].ion_device_fd =-1;
 #endif
-        /*Create a mapping between buffers*/
-        bufHdr->pOutputPortPrivate = &drv_ctx.ptr_respbuffer[i];
-        drv_ctx.ptr_respbuffer[i].client_data = (void *) \
-                                            &drv_ctx.ptr_outputbuffer[i];
-        // Move the buffer and buffer header pointers
-        bufHdr++;
-        pPMEMInfo++;
-        pPlatformEntry++;
-        pPlatformList++;
-      }
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("Output buf mem alloc failed[0x%p][0x%p]\n",\
-                                        m_out_mem_ptr, pPtr);
-      if(m_out_mem_ptr)
-      {
-        free(m_out_mem_ptr);
-        m_out_mem_ptr = NULL;
-      }
-      if(pPtr)
-      {
-        free(pPtr);
-        pPtr = NULL;
-      }
-      if(drv_ctx.ptr_outputbuffer)
-      {
-        free(drv_ctx.ptr_outputbuffer);
-        drv_ctx.ptr_outputbuffer = NULL;
-      }
-      if(drv_ctx.ptr_respbuffer)
-      {
-        free(drv_ctx.ptr_respbuffer);
-        drv_ctx.ptr_respbuffer = NULL;
-      }
+                /*Create a mapping between buffers*/
+                bufHdr->pOutputPortPrivate = &drv_ctx.ptr_respbuffer[i];
+                drv_ctx.ptr_respbuffer[i].client_data = (void *) \
+                                                        &drv_ctx.ptr_outputbuffer[i];
+                // Move the buffer and buffer header pointers
+                bufHdr++;
+                pPMEMInfo++;
+                pPlatformEntry++;
+                pPlatformList++;
+            }
+        } else {
+            DEBUG_PRINT_ERROR("Output buf mem alloc failed[0x%p][0x%p]\n",\
+                    m_out_mem_ptr, pPtr);
+            if (m_out_mem_ptr) {
+                free(m_out_mem_ptr);
+                m_out_mem_ptr = NULL;
+            }
+            if (pPtr) {
+                free(pPtr);
+                pPtr = NULL;
+            }
+            if (drv_ctx.ptr_outputbuffer) {
+                free(drv_ctx.ptr_outputbuffer);
+                drv_ctx.ptr_outputbuffer = NULL;
+            }
+            if (drv_ctx.ptr_respbuffer) {
+                free(drv_ctx.ptr_respbuffer);
+                drv_ctx.ptr_respbuffer = NULL;
+            }
 #ifdef USE_ION
-    if (drv_ctx.op_buf_ion_info) {
-        DEBUG_PRINT_LOW("\n Free o/p ion context");
-	free(drv_ctx.op_buf_ion_info);
-        drv_ctx.op_buf_ion_info = NULL;
-    }
+            if (drv_ctx.op_buf_ion_info) {
+                DEBUG_PRINT_LOW("\n Free o/p ion context");
+                free(drv_ctx.op_buf_ion_info);
+                drv_ctx.op_buf_ion_info = NULL;
+            }
 #endif
-      eRet =  OMX_ErrorInsufficientResources;
+            eRet =  OMX_ErrorInsufficientResources;
+        }
+    } else {
+        eRet =  OMX_ErrorInsufficientResources;
     }
-  } else {
-    eRet =  OMX_ErrorInsufficientResources;
-  }
-  return eRet;
+    return eRet;
 }
 
 void omx_vdec::complete_pending_buffer_done_cbs()
 {
-  unsigned p1;
-  unsigned p2;
-  unsigned ident;
-  omx_cmd_queue tmp_q, pending_bd_q;
-  pthread_mutex_lock(&m_lock);
-  // pop all pending GENERATE FDB from ftb queue
-  while (m_ftb_q.m_size)
-  {
-    m_ftb_q.pop_entry(&p1,&p2,&ident);
-    if(ident == OMX_COMPONENT_GENERATE_FBD)
-    {
-      pending_bd_q.insert_entry(p1,p2,ident);
-    }
-    else
-    {
-      tmp_q.insert_entry(p1,p2,ident);
-    }
-  }
-  //return all non GENERATE FDB to ftb queue
-  while(tmp_q.m_size)
-  {
-    tmp_q.pop_entry(&p1,&p2,&ident);
-    m_ftb_q.insert_entry(p1,p2,ident);
-  }
-  // pop all pending GENERATE EDB from etb queue
-  while (m_etb_q.m_size)
-  {
-    m_etb_q.pop_entry(&p1,&p2,&ident);
-    if(ident == OMX_COMPONENT_GENERATE_EBD)
-    {
-      pending_bd_q.insert_entry(p1,p2,ident);
-    }
-    else
-    {
-      tmp_q.insert_entry(p1,p2,ident);
-    }
-  }
-  //return all non GENERATE FDB to etb queue
-  while(tmp_q.m_size)
-  {
-    tmp_q.pop_entry(&p1,&p2,&ident);
-    m_etb_q.insert_entry(p1,p2,ident);
-  }
-  pthread_mutex_unlock(&m_lock);
-  // process all pending buffer dones
-  while(pending_bd_q.m_size)
-  {
-    pending_bd_q.pop_entry(&p1,&p2,&ident);
-    switch(ident)
-    {
-      case OMX_COMPONENT_GENERATE_EBD:
-        if(empty_buffer_done(&m_cmp, (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: empty_buffer_done() failed!\n");
-          omx_report_error ();
+    unsigned p1;
+    unsigned p2;
+    unsigned ident;
+    omx_cmd_queue tmp_q, pending_bd_q;
+    pthread_mutex_lock(&m_lock);
+    // pop all pending GENERATE FDB from ftb queue
+    while (m_ftb_q.m_size) {
+        m_ftb_q.pop_entry(&p1,&p2,&ident);
+        if (ident == OMX_COMPONENT_GENERATE_FBD) {
+            pending_bd_q.insert_entry(p1,p2,ident);
+        } else {
+            tmp_q.insert_entry(p1,p2,ident);
         }
-        break;
+    }
+    //return all non GENERATE FDB to ftb queue
+    while (tmp_q.m_size) {
+        tmp_q.pop_entry(&p1,&p2,&ident);
+        m_ftb_q.insert_entry(p1,p2,ident);
+    }
+    // pop all pending GENERATE EDB from etb queue
+    while (m_etb_q.m_size) {
+        m_etb_q.pop_entry(&p1,&p2,&ident);
+        if (ident == OMX_COMPONENT_GENERATE_EBD) {
+            pending_bd_q.insert_entry(p1,p2,ident);
+        } else {
+            tmp_q.insert_entry(p1,p2,ident);
+        }
+    }
+    //return all non GENERATE FDB to etb queue
+    while (tmp_q.m_size) {
+        tmp_q.pop_entry(&p1,&p2,&ident);
+        m_etb_q.insert_entry(p1,p2,ident);
+    }
+    pthread_mutex_unlock(&m_lock);
+    // process all pending buffer dones
+    while (pending_bd_q.m_size) {
+        pending_bd_q.pop_entry(&p1,&p2,&ident);
+        switch (ident) {
+            case OMX_COMPONENT_GENERATE_EBD:
+                if (empty_buffer_done(&m_cmp, (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone) {
+                    DEBUG_PRINT_ERROR("\nERROR: empty_buffer_done() failed!\n");
+                    omx_report_error ();
+                }
+                break;
 
-      case OMX_COMPONENT_GENERATE_FBD:
-        if(fill_buffer_done(&m_cmp, (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone )
-        {
-          DEBUG_PRINT_ERROR("\nERROR: fill_buffer_done() failed!\n");
-          omx_report_error ();
+            case OMX_COMPONENT_GENERATE_FBD:
+                if (fill_buffer_done(&m_cmp, (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone ) {
+                    DEBUG_PRINT_ERROR("\nERROR: fill_buffer_done() failed!\n");
+                    omx_report_error ();
+                }
+                break;
         }
-        break;
     }
-  }
 }
 
 void omx_vdec::set_frame_rate(OMX_S64 act_timestamp)
 {
-  OMX_U32 new_frame_interval = 0;
-  if (VALID_TS(act_timestamp) && VALID_TS(prev_ts) && act_timestamp != prev_ts
-     && (((act_timestamp > prev_ts )? act_timestamp - prev_ts: prev_ts-act_timestamp)>2000))
-  {
-    new_frame_interval = (act_timestamp > prev_ts)?
-                          act_timestamp - prev_ts :
-                          prev_ts - act_timestamp;
-    if (new_frame_interval < frm_int || frm_int == 0)
-    {
-      frm_int = new_frame_interval;
-      if(frm_int)
-      {
-        drv_ctx.frame_rate.fps_numerator = 1e6;
-        drv_ctx.frame_rate.fps_denominator = frm_int;
-        DEBUG_PRINT_LOW("set_frame_rate: frm_int(%u) fps(%f)",
-                         frm_int, drv_ctx.frame_rate.fps_numerator /
-                         (float)drv_ctx.frame_rate.fps_denominator);
-      }
+    OMX_U32 new_frame_interval = 0;
+    if (VALID_TS(act_timestamp) && VALID_TS(prev_ts) && act_timestamp != prev_ts
+            && (((act_timestamp > prev_ts )? act_timestamp - prev_ts: prev_ts-act_timestamp)>2000)) {
+        new_frame_interval = (act_timestamp > prev_ts)?
+            act_timestamp - prev_ts :
+            prev_ts - act_timestamp;
+        if (new_frame_interval < frm_int || frm_int == 0) {
+            frm_int = new_frame_interval;
+            if (frm_int) {
+                drv_ctx.frame_rate.fps_numerator = 1e6;
+                drv_ctx.frame_rate.fps_denominator = frm_int;
+                DEBUG_PRINT_LOW("set_frame_rate: frm_int(%u) fps(%f)",
+                        frm_int, drv_ctx.frame_rate.fps_numerator /
+                        (float)drv_ctx.frame_rate.fps_denominator);
+            }
+        }
     }
-  }
-  prev_ts = act_timestamp;
+    prev_ts = act_timestamp;
 }
 
 void omx_vdec::adjust_timestamp(OMX_S64 &act_timestamp)
 {
-  if (rst_prev_ts && VALID_TS(act_timestamp))
-  {
-    prev_ts = act_timestamp;
-    rst_prev_ts = false;
-  }
-  else if (VALID_TS(prev_ts))
-  {
-    bool codec_cond = (drv_ctx.timestamp_adjust)?
-                      (!VALID_TS(act_timestamp) || (((act_timestamp > prev_ts)?
-                      (act_timestamp - prev_ts):(prev_ts - act_timestamp)) <= 2000)):
-                      (!VALID_TS(act_timestamp) || act_timestamp == prev_ts);
-    if(frm_int > 0 && codec_cond)
-    {
-      DEBUG_PRINT_LOW("adjust_timestamp: original ts[%lld]", act_timestamp);
-      act_timestamp = prev_ts + frm_int;
-      DEBUG_PRINT_LOW("adjust_timestamp: predicted ts[%lld]", act_timestamp);
-      prev_ts = act_timestamp;
+    if (rst_prev_ts && VALID_TS(act_timestamp)) {
+        prev_ts = act_timestamp;
+        rst_prev_ts = false;
+    } else if (VALID_TS(prev_ts)) {
+        bool codec_cond = (drv_ctx.timestamp_adjust)?
+            (!VALID_TS(act_timestamp) || (((act_timestamp > prev_ts)?
+                                           (act_timestamp - prev_ts):(prev_ts - act_timestamp)) <= 2000)):
+            (!VALID_TS(act_timestamp) || act_timestamp == prev_ts);
+        if (frm_int > 0 && codec_cond) {
+            DEBUG_PRINT_LOW("adjust_timestamp: original ts[%lld]", act_timestamp);
+            act_timestamp = prev_ts + frm_int;
+            DEBUG_PRINT_LOW("adjust_timestamp: predicted ts[%lld]", act_timestamp);
+            prev_ts = act_timestamp;
+        } else
+            set_frame_rate(act_timestamp);
+    } else if (frm_int > 0)          // In this case the frame rate was set along
+    {                               // with the port definition, start ts with 0
+        act_timestamp = prev_ts = 0;  // and correct if a valid ts is received.
+        rst_prev_ts = true;
     }
-    else
-      set_frame_rate(act_timestamp);
-  }
-  else if (frm_int > 0)           // In this case the frame rate was set along
-  {                               // with the port definition, start ts with 0
-    act_timestamp = prev_ts = 0;  // and correct if a valid ts is received.
-    rst_prev_ts = true;
-  }
 }
 
 void omx_vdec::handle_extradata(OMX_BUFFERHEADERTYPE *p_buf_hdr)
 {
-  OMX_OTHER_EXTRADATATYPE *p_extra = NULL, *p_sei = NULL, *p_vui = NULL;
-  OMX_U32 num_conceal_MB = 0;
-  OMX_U32 frame_rate = 0;
-  int consumed_len = 0;
-  OMX_U32 num_MB_in_frame;
-  OMX_U32 recovery_sei_flags = 1;
-  int buf_index = p_buf_hdr - m_out_mem_ptr;
-  struct msm_vidc_panscan_window_payload *panscan_payload = NULL;
-  OMX_U8 *pBuffer = (OMX_U8 *)(drv_ctx.ptr_outputbuffer[buf_index].bufferaddr) +
-      p_buf_hdr->nOffset;
-  if (!drv_ctx.extradata_info.uaddr) {
-    return;
-  }
-  p_extra = (OMX_OTHER_EXTRADATATYPE *)
-    ((unsigned)(pBuffer + p_buf_hdr->nOffset + p_buf_hdr->nFilledLen + 3)&(~3));
-  char *p_extradata = drv_ctx.extradata_info.uaddr + buf_index * drv_ctx.extradata_info.buffer_size;
-  if ((OMX_U8*)p_extra > (pBuffer + p_buf_hdr->nAllocLen))
-    p_extra = NULL;
-  OMX_OTHER_EXTRADATATYPE *data = (struct OMX_OTHER_EXTRADATATYPE *)p_extradata;
-  if (data) {
-    while((consumed_len < drv_ctx.extradata_info.buffer_size)
-        && (data->eType != (OMX_EXTRADATATYPE)EXTRADATA_NONE)) {
-      if ((consumed_len + data->nSize) > drv_ctx.extradata_info.buffer_size) {
-        DEBUG_PRINT_LOW("Invalid extra data size");
-        break;
-      }
-      switch((unsigned long)data->eType) {
-      case EXTRADATA_INTERLACE_VIDEO:
-        struct msm_vidc_interlace_payload *payload;
-        payload = (struct msm_vidc_interlace_payload *)data->data;
-        if (payload->format != INTERLACE_FRAME_PROGRESSIVE) {
-          int enable = 1;
-          OMX_U32 mbaff = 0;
-          mbaff = (h264_parser)? (h264_parser->is_mbaff()): false;
-          if ((payload->format == INTERLACE_FRAME_PROGRESSIVE)  && !mbaff)
-            drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
-          else
-            drv_ctx.interlace = VDEC_InterlaceInterleaveFrameTopFieldFirst;
-          if(m_enable_android_native_buffers)
-            setMetaData((private_handle_t *)native_buffer[buf_index].privatehandle,
-              PP_PARAM_INTERLACED, (void*)&enable);
-        }
-        if (!secure_mode && (client_extradata & OMX_INTERLACE_EXTRADATA)) {
-          append_interlace_extradata(p_extra, payload->format);
-          p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
-        }
-        break;
-      case EXTRADATA_FRAME_RATE:
-        struct msm_vidc_framerate_payload *frame_rate_payload;
-        frame_rate_payload = (struct msm_vidc_framerate_payload *)data->data;
-        frame_rate = frame_rate_payload->frame_rate;
-      break;
-      case EXTRADATA_TIMESTAMP:
-        struct msm_vidc_ts_payload *time_stamp_payload;
-        time_stamp_payload = (struct msm_vidc_ts_payload *)data->data;
-        p_buf_hdr->nTimeStamp = time_stamp_payload->timestamp_lo;
-        p_buf_hdr->nTimeStamp |= ((unsigned long long)time_stamp_payload->timestamp_hi << 32);
-      break;
-      case EXTRADATA_NUM_CONCEALED_MB:
-        struct msm_vidc_concealmb_payload *conceal_mb_payload;
-        conceal_mb_payload = (struct msm_vidc_concealmb_payload *)data->data;
-        num_MB_in_frame = ((drv_ctx.video_resolution.frame_width + 15) *
-                     (drv_ctx.video_resolution.frame_height + 15)) >> 8;
-        num_conceal_MB = ((num_MB_in_frame > 0)?(conceal_mb_payload->num_mbs * 100 / num_MB_in_frame) : 0);
-      break;
-      case EXTRADATA_ASPECT_RATIO:
-        struct msm_vidc_aspect_ratio_payload *aspect_ratio_payload;
-        aspect_ratio_payload = (struct msm_vidc_aspect_ratio_payload *)data->data;
-        ((struct vdec_output_frameinfo *)
-            p_buf_hdr->pOutputPortPrivate)->aspect_ratio_info.par_width = aspect_ratio_payload->aspect_width;
-        ((struct vdec_output_frameinfo *)
-            p_buf_hdr->pOutputPortPrivate)->aspect_ratio_info.par_height = aspect_ratio_payload->aspect_height;
-      break;
-      case EXTRADATA_RECOVERY_POINT_SEI:
-        struct msm_vidc_recoverysei_payload *recovery_sei_payload;
-        recovery_sei_payload = (struct msm_vidc_recoverysei_payload *)data->data;
-        recovery_sei_flags = recovery_sei_payload->flags;
-       if (recovery_sei_flags != FRAME_RECONSTRUCTION_CORRECT) {
-        p_buf_hdr->nFlags |= OMX_BUFFERFLAG_DATACORRUPT;
-        DEBUG_PRINT_HIGH("Extradata: OMX_BUFFERFLAG_DATACORRUPT Received\n");
-       }
-      break;
-      case EXTRADATA_PANSCAN_WINDOW:
-        panscan_payload = (struct msm_vidc_panscan_window_payload *)data->data;
-        break;
-      default:
-        goto unrecognized_extradata;
-      }
-      consumed_len += data->nSize;
-      data = (OMX_OTHER_EXTRADATATYPE *)((char *)data + data->nSize);
+    OMX_OTHER_EXTRADATATYPE *p_extra = NULL, *p_sei = NULL, *p_vui = NULL;
+    OMX_U32 num_conceal_MB = 0;
+    OMX_U32 frame_rate = 0;
+    int consumed_len = 0;
+    OMX_U32 num_MB_in_frame;
+    OMX_U32 recovery_sei_flags = 1;
+    int buf_index = p_buf_hdr - m_out_mem_ptr;
+    struct msm_vidc_panscan_window_payload *panscan_payload = NULL;
+    OMX_U8 *pBuffer = (OMX_U8 *)(drv_ctx.ptr_outputbuffer[buf_index].bufferaddr) +
+        p_buf_hdr->nOffset;
+    if (!drv_ctx.extradata_info.uaddr) {
+        return;
     }
-    if (!secure_mode && (client_extradata & OMX_FRAMEINFO_EXTRADATA)) {
-      p_buf_hdr->nFlags |= OMX_BUFFERFLAG_EXTRADATA;
-      append_frame_info_extradata(p_extra,
-        num_conceal_MB, ((struct vdec_output_frameinfo *)p_buf_hdr->pOutputPortPrivate)->pic_type, frame_rate,
-        panscan_payload,&((struct vdec_output_frameinfo *)
-        p_buf_hdr->pOutputPortPrivate)->aspect_ratio_info);}
-  }
+    p_extra = (OMX_OTHER_EXTRADATATYPE *)
+        ((unsigned)(pBuffer + p_buf_hdr->nOffset + p_buf_hdr->nFilledLen + 3)&(~3));
+    char *p_extradata = drv_ctx.extradata_info.uaddr + buf_index * drv_ctx.extradata_info.buffer_size;
+    if ((OMX_U8*)p_extra > (pBuffer + p_buf_hdr->nAllocLen))
+        p_extra = NULL;
+    OMX_OTHER_EXTRADATATYPE *data = (struct OMX_OTHER_EXTRADATATYPE *)p_extradata;
+    if (data) {
+        while ((consumed_len < drv_ctx.extradata_info.buffer_size)
+                && (data->eType != (OMX_EXTRADATATYPE)EXTRADATA_NONE)) {
+            if ((consumed_len + data->nSize) > drv_ctx.extradata_info.buffer_size) {
+                DEBUG_PRINT_LOW("Invalid extra data size");
+                break;
+            }
+            switch ((unsigned long)data->eType) {
+                case EXTRADATA_INTERLACE_VIDEO:
+                    struct msm_vidc_interlace_payload *payload;
+                    payload = (struct msm_vidc_interlace_payload *)data->data;
+                    if (payload->format != INTERLACE_FRAME_PROGRESSIVE) {
+                        int enable = 1;
+                        OMX_U32 mbaff = 0;
+                        mbaff = (h264_parser)? (h264_parser->is_mbaff()): false;
+                        if ((payload->format == INTERLACE_FRAME_PROGRESSIVE)  && !mbaff)
+                            drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
+                        else
+                            drv_ctx.interlace = VDEC_InterlaceInterleaveFrameTopFieldFirst;
+                        if (m_enable_android_native_buffers)
+                            setMetaData((private_handle_t *)native_buffer[buf_index].privatehandle,
+                                    PP_PARAM_INTERLACED, (void*)&enable);
+                    }
+                    if (!secure_mode && (client_extradata & OMX_INTERLACE_EXTRADATA)) {
+                        append_interlace_extradata(p_extra, payload->format);
+                        p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+                    }
+                    break;
+                case EXTRADATA_FRAME_RATE:
+                    struct msm_vidc_framerate_payload *frame_rate_payload;
+                    frame_rate_payload = (struct msm_vidc_framerate_payload *)data->data;
+                    frame_rate = frame_rate_payload->frame_rate;
+                    break;
+                case EXTRADATA_TIMESTAMP:
+                    struct msm_vidc_ts_payload *time_stamp_payload;
+                    time_stamp_payload = (struct msm_vidc_ts_payload *)data->data;
+                    p_buf_hdr->nTimeStamp = time_stamp_payload->timestamp_lo;
+                    p_buf_hdr->nTimeStamp |= ((unsigned long long)time_stamp_payload->timestamp_hi << 32);
+                    break;
+                case EXTRADATA_NUM_CONCEALED_MB:
+                    struct msm_vidc_concealmb_payload *conceal_mb_payload;
+                    conceal_mb_payload = (struct msm_vidc_concealmb_payload *)data->data;
+                    num_MB_in_frame = ((drv_ctx.video_resolution.frame_width + 15) *
+                            (drv_ctx.video_resolution.frame_height + 15)) >> 8;
+                    num_conceal_MB = ((num_MB_in_frame > 0)?(conceal_mb_payload->num_mbs * 100 / num_MB_in_frame) : 0);
+                    break;
+                case EXTRADATA_ASPECT_RATIO:
+                    struct msm_vidc_aspect_ratio_payload *aspect_ratio_payload;
+                    aspect_ratio_payload = (struct msm_vidc_aspect_ratio_payload *)data->data;
+                    ((struct vdec_output_frameinfo *)
+                     p_buf_hdr->pOutputPortPrivate)->aspect_ratio_info.par_width = aspect_ratio_payload->aspect_width;
+                    ((struct vdec_output_frameinfo *)
+                     p_buf_hdr->pOutputPortPrivate)->aspect_ratio_info.par_height = aspect_ratio_payload->aspect_height;
+                    break;
+                case EXTRADATA_RECOVERY_POINT_SEI:
+                    struct msm_vidc_recoverysei_payload *recovery_sei_payload;
+                    recovery_sei_payload = (struct msm_vidc_recoverysei_payload *)data->data;
+                    recovery_sei_flags = recovery_sei_payload->flags;
+                    if (recovery_sei_flags != FRAME_RECONSTRUCTION_CORRECT) {
+                        p_buf_hdr->nFlags |= OMX_BUFFERFLAG_DATACORRUPT;
+                        DEBUG_PRINT_HIGH("Extradata: OMX_BUFFERFLAG_DATACORRUPT Received\n");
+                    }
+                    break;
+                case EXTRADATA_PANSCAN_WINDOW:
+                    panscan_payload = (struct msm_vidc_panscan_window_payload *)data->data;
+                    break;
+                default:
+                    goto unrecognized_extradata;
+            }
+            consumed_len += data->nSize;
+            data = (OMX_OTHER_EXTRADATATYPE *)((char *)data + data->nSize);
+        }
+        if (!secure_mode && (client_extradata & OMX_FRAMEINFO_EXTRADATA)) {
+            p_buf_hdr->nFlags |= OMX_BUFFERFLAG_EXTRADATA;
+            append_frame_info_extradata(p_extra,
+                    num_conceal_MB, ((struct vdec_output_frameinfo *)p_buf_hdr->pOutputPortPrivate)->pic_type, frame_rate,
+                    panscan_payload,&((struct vdec_output_frameinfo *)
+                        p_buf_hdr->pOutputPortPrivate)->aspect_ratio_info);
+        }
+    }
 unrecognized_extradata:
-  if(!secure_mode && client_extradata)
-    append_terminator_extradata(p_extra);
-  return;
+    if (!secure_mode && client_extradata)
+        append_terminator_extradata(p_extra);
+    return;
 }
 
 OMX_ERRORTYPE omx_vdec::enable_extradata(OMX_U32 requested_extradata,
-	 bool is_internal, bool enable)
+        bool is_internal, bool enable)
 {
-  OMX_ERRORTYPE ret = OMX_ErrorNone;
-  struct v4l2_control control;
-  if(m_state != OMX_StateLoaded)
-  {
-     DEBUG_PRINT_ERROR("ERROR: enable extradata allowed in Loaded state only");
-     return OMX_ErrorIncorrectStateOperation;
-  }
-  DEBUG_PRINT_HIGH("NOTE: enable_extradata: actual[%lu] requested[%lu] enable[%d], is_internal: %d\n",
-    client_extradata, requested_extradata, enable, is_internal);
-
-  if (!is_internal) {
-	  if (enable)
-		  client_extradata |= requested_extradata;
-	  else
-		  client_extradata = client_extradata & ~requested_extradata;
-  }
-
-  if (enable) {
-    if (requested_extradata & OMX_INTERLACE_EXTRADATA) {
-      control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
-      control.value = V4L2_MPEG_VIDC_EXTRADATA_INTERLACE_VIDEO;
-      if(ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
-        DEBUG_PRINT_HIGH("Failed to set interlaced extradata."
-            " Quality of interlaced clips might be impacted.\n");
-      }
-    } else if (requested_extradata & OMX_FRAMEINFO_EXTRADATA)
-      {
-      control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
-      control.value = V4L2_MPEG_VIDC_EXTRADATA_FRAME_RATE;
-      if(ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
-        DEBUG_PRINT_HIGH("Failed to set framerate extradata\n");
-      }
-      control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
-      control.value = V4L2_MPEG_VIDC_EXTRADATA_NUM_CONCEALED_MB;
-      if(ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
-        DEBUG_PRINT_HIGH("Failed to set concealed MB extradata\n");
-      }
-      control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
-      control.value = V4L2_MPEG_VIDC_EXTRADATA_RECOVERY_POINT_SEI;
-      if(ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
-        DEBUG_PRINT_HIGH("Failed to set recovery point SEI extradata\n");
-      }
-      control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
-      control.value = V4L2_MPEG_VIDC_EXTRADATA_PANSCAN_WINDOW;
-      if(ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
-        DEBUG_PRINT_HIGH("Failed to set panscan extradata\n");
-      }
-      control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
-      control.value = V4L2_MPEG_VIDC_INDEX_EXTRADATA_ASPECT_RATIO;
-      if(ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
-        DEBUG_PRINT_HIGH("Failed to set panscan extradata\n");
-      }
-    } else if (requested_extradata & OMX_TIMEINFO_EXTRADATA)
-    {
-      control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
-      control.value = V4L2_MPEG_VIDC_EXTRADATA_TIMESTAMP;
-      if(ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
-      DEBUG_PRINT_HIGH("Failed to set timeinfo extradata\n");
-      }
+    OMX_ERRORTYPE ret = OMX_ErrorNone;
+    struct v4l2_control control;
+    if (m_state != OMX_StateLoaded) {
+        DEBUG_PRINT_ERROR("ERROR: enable extradata allowed in Loaded state only");
+        return OMX_ErrorIncorrectStateOperation;
     }
-  }
-  ret = get_buffer_req(&drv_ctx.op_buf);
-  return ret;
+    DEBUG_PRINT_HIGH("NOTE: enable_extradata: actual[%lu] requested[%lu] enable[%d], is_internal: %d\n",
+            client_extradata, requested_extradata, enable, is_internal);
+
+    if (!is_internal) {
+        if (enable)
+            client_extradata |= requested_extradata;
+        else
+            client_extradata = client_extradata & ~requested_extradata;
+    }
+
+    if (enable) {
+        if (requested_extradata & OMX_INTERLACE_EXTRADATA) {
+            control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
+            control.value = V4L2_MPEG_VIDC_EXTRADATA_INTERLACE_VIDEO;
+            if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
+                DEBUG_PRINT_HIGH("Failed to set interlaced extradata."
+                        " Quality of interlaced clips might be impacted.\n");
+            }
+        } else if (requested_extradata & OMX_FRAMEINFO_EXTRADATA) {
+            control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
+            control.value = V4L2_MPEG_VIDC_EXTRADATA_FRAME_RATE;
+            if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
+                DEBUG_PRINT_HIGH("Failed to set framerate extradata\n");
+            }
+            control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
+            control.value = V4L2_MPEG_VIDC_EXTRADATA_NUM_CONCEALED_MB;
+            if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
+                DEBUG_PRINT_HIGH("Failed to set concealed MB extradata\n");
+            }
+            control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
+            control.value = V4L2_MPEG_VIDC_EXTRADATA_RECOVERY_POINT_SEI;
+            if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
+                DEBUG_PRINT_HIGH("Failed to set recovery point SEI extradata\n");
+            }
+            control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
+            control.value = V4L2_MPEG_VIDC_EXTRADATA_PANSCAN_WINDOW;
+            if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
+                DEBUG_PRINT_HIGH("Failed to set panscan extradata\n");
+            }
+            control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
+            control.value = V4L2_MPEG_VIDC_INDEX_EXTRADATA_ASPECT_RATIO;
+            if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
+                DEBUG_PRINT_HIGH("Failed to set panscan extradata\n");
+            }
+        } else if (requested_extradata & OMX_TIMEINFO_EXTRADATA) {
+            control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
+            control.value = V4L2_MPEG_VIDC_EXTRADATA_TIMESTAMP;
+            if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
+                DEBUG_PRINT_HIGH("Failed to set timeinfo extradata\n");
+            }
+        }
+    }
+    ret = get_buffer_req(&drv_ctx.op_buf);
+    return ret;
 }
 
 OMX_U32 omx_vdec::count_MB_in_extradata(OMX_OTHER_EXTRADATATYPE *extra)
 {
-  OMX_U32 num_MB = 0, byte_count = 0, num_MB_in_frame = 0;
-  OMX_U8 *data_ptr = extra->data, data = 0;
-  while (byte_count < extra->nDataSize)
-  {
-    data = *data_ptr;
-    while (data)
-    {
-      num_MB += (data&0x01);
-      data >>= 1;
+    OMX_U32 num_MB = 0, byte_count = 0, num_MB_in_frame = 0;
+    OMX_U8 *data_ptr = extra->data, data = 0;
+    while (byte_count < extra->nDataSize) {
+        data = *data_ptr;
+        while (data) {
+            num_MB += (data&0x01);
+            data >>= 1;
+        }
+        data_ptr++;
+        byte_count++;
     }
-    data_ptr++;
-    byte_count++;
-  }
-  num_MB_in_frame = ((drv_ctx.video_resolution.frame_width + 15) *
-                     (drv_ctx.video_resolution.frame_height + 15)) >> 8;
-  return ((num_MB_in_frame > 0)?(num_MB * 100 / num_MB_in_frame) : 0);
+    num_MB_in_frame = ((drv_ctx.video_resolution.frame_width + 15) *
+            (drv_ctx.video_resolution.frame_height + 15)) >> 8;
+    return ((num_MB_in_frame > 0)?(num_MB * 100 / num_MB_in_frame) : 0);
 }
 
 void omx_vdec::print_debug_extradata(OMX_OTHER_EXTRADATATYPE *extra)
 {
-  if (!m_debug_extradata)
-     return;
-
-  DEBUG_PRINT_HIGH(
-    "============== Extra Data ==============\n"
-    "           Size: %lu \n"
-    "        Version: %lu \n"
-    "      PortIndex: %lu \n"
-    "           Type: %x \n"
-    "       DataSize: %lu \n",
-    extra->nSize, extra->nVersion.nVersion,
-    extra->nPortIndex, extra->eType, extra->nDataSize);
-
-  if (extra->eType == (OMX_EXTRADATATYPE)OMX_ExtraDataInterlaceFormat)
-  {
-    OMX_STREAMINTERLACEFORMAT *intfmt = (OMX_STREAMINTERLACEFORMAT *)extra->data;
-    DEBUG_PRINT_HIGH(
-      "------ Interlace Format ------\n"
-      "                Size: %lu \n"
-      "             Version: %lu \n"
-      "           PortIndex: %lu \n"
-      " Is Interlace Format: %d \n"
-      "   Interlace Formats: %lu \n"
-      "=========== End of Interlace ===========\n",
-      intfmt->nSize, intfmt->nVersion.nVersion, intfmt->nPortIndex,
-      intfmt->bInterlaceFormat, intfmt->nInterlaceFormats);
-  }
-  else if (extra->eType == (OMX_EXTRADATATYPE)OMX_ExtraDataFrameInfo)
-  {
-    OMX_QCOM_EXTRADATA_FRAMEINFO *fminfo = (OMX_QCOM_EXTRADATA_FRAMEINFO *)extra->data;
+    if (!m_debug_extradata)
+        return;
 
     DEBUG_PRINT_HIGH(
-      "-------- Frame Format --------\n"
-      "             Picture Type: %d \n"
-      "           Interlace Type: %d \n"
-      " Pan Scan Total Frame Num: %lu \n"
-      "   Concealed Macro Blocks: %lu \n"
-      "               frame rate: %lu \n"
-      "           Aspect Ratio X: %lu \n"
-      "           Aspect Ratio Y: %lu \n",
-      fminfo->ePicType,
-      fminfo->interlaceType,
-      fminfo->panScan.numWindows,
-      fminfo->nConcealedMacroblocks,
-      fminfo->nFrameRate,
-      fminfo->aspectRatio.aspectRatioX,
-      fminfo->aspectRatio.aspectRatioY);
+            "============== Extra Data ==============\n"
+            "           Size: %lu \n"
+            "        Version: %lu \n"
+            "      PortIndex: %lu \n"
+            "           Type: %x \n"
+            "       DataSize: %lu \n",
+            extra->nSize, extra->nVersion.nVersion,
+            extra->nPortIndex, extra->eType, extra->nDataSize);
 
-    for (OMX_U32 i = 0; i < fminfo->panScan.numWindows; i++)
-    {
-      DEBUG_PRINT_HIGH(
-        "------------------------------\n"
-        "     Pan Scan Frame Num: %lu \n"
-        "            Rectangle x: %ld \n"
-        "            Rectangle y: %ld \n"
-        "           Rectangle dx: %ld \n"
-        "           Rectangle dy: %ld \n",
-        i, fminfo->panScan.window[i].x, fminfo->panScan.window[i].y,
-        fminfo->panScan.window[i].dx, fminfo->panScan.window[i].dy);
+    if (extra->eType == (OMX_EXTRADATATYPE)OMX_ExtraDataInterlaceFormat) {
+        OMX_STREAMINTERLACEFORMAT *intfmt = (OMX_STREAMINTERLACEFORMAT *)extra->data;
+        DEBUG_PRINT_HIGH(
+                "------ Interlace Format ------\n"
+                "                Size: %lu \n"
+                "             Version: %lu \n"
+                "           PortIndex: %lu \n"
+                " Is Interlace Format: %d \n"
+                "   Interlace Formats: %lu \n"
+                "=========== End of Interlace ===========\n",
+                intfmt->nSize, intfmt->nVersion.nVersion, intfmt->nPortIndex,
+                intfmt->bInterlaceFormat, intfmt->nInterlaceFormats);
+    } else if (extra->eType == (OMX_EXTRADATATYPE)OMX_ExtraDataFrameInfo) {
+        OMX_QCOM_EXTRADATA_FRAMEINFO *fminfo = (OMX_QCOM_EXTRADATA_FRAMEINFO *)extra->data;
+
+        DEBUG_PRINT_HIGH(
+                "-------- Frame Format --------\n"
+                "             Picture Type: %d \n"
+                "           Interlace Type: %d \n"
+                " Pan Scan Total Frame Num: %lu \n"
+                "   Concealed Macro Blocks: %lu \n"
+                "               frame rate: %lu \n"
+                "           Aspect Ratio X: %lu \n"
+                "           Aspect Ratio Y: %lu \n",
+                fminfo->ePicType,
+                fminfo->interlaceType,
+                fminfo->panScan.numWindows,
+                fminfo->nConcealedMacroblocks,
+                fminfo->nFrameRate,
+                fminfo->aspectRatio.aspectRatioX,
+                fminfo->aspectRatio.aspectRatioY);
+
+        for (OMX_U32 i = 0; i < fminfo->panScan.numWindows; i++) {
+            DEBUG_PRINT_HIGH(
+                    "------------------------------\n"
+                    "     Pan Scan Frame Num: %lu \n"
+                    "            Rectangle x: %ld \n"
+                    "            Rectangle y: %ld \n"
+                    "           Rectangle dx: %ld \n"
+                    "           Rectangle dy: %ld \n",
+                    i, fminfo->panScan.window[i].x, fminfo->panScan.window[i].y,
+                    fminfo->panScan.window[i].dx, fminfo->panScan.window[i].dy);
+        }
+
+        DEBUG_PRINT_HIGH("========= End of Frame Format ==========");
+    } else if (extra->eType == OMX_ExtraDataNone) {
+        DEBUG_PRINT_HIGH("========== End of Terminator ===========");
+    } else {
+        DEBUG_PRINT_HIGH("======= End of Driver Extradata ========");
     }
-
-    DEBUG_PRINT_HIGH("========= End of Frame Format ==========");
-  }
-  else if (extra->eType == OMX_ExtraDataNone)
-  {
-    DEBUG_PRINT_HIGH("========== End of Terminator ===========");
-  }
-  else
-  {
-    DEBUG_PRINT_HIGH("======= End of Driver Extradata ========");
-  }
 }
 
 void omx_vdec::append_interlace_extradata(OMX_OTHER_EXTRADATATYPE *extra,
-                                          OMX_U32 interlaced_format_type)
+        OMX_U32 interlaced_format_type)
 {
-  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;
-  extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataInterlaceFormat;
-  extra->nDataSize = sizeof(OMX_STREAMINTERLACEFORMAT);
-  interlace_format = (OMX_STREAMINTERLACEFORMAT *)extra->data;
-  interlace_format->nSize = sizeof(OMX_STREAMINTERLACEFORMAT);
-  interlace_format->nVersion.nVersion = OMX_SPEC_VERSION;
-  interlace_format->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
-  mbaff = (h264_parser)? (h264_parser->is_mbaff()): false;
-  if ((interlaced_format_type == INTERLACE_FRAME_PROGRESSIVE)  && !mbaff)
-  {
-    interlace_format->bInterlaceFormat = OMX_FALSE;
-    interlace_format->nInterlaceFormats = OMX_InterlaceFrameProgressive;
-    drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
-  }
-  else
-  {
-    interlace_format->bInterlaceFormat = OMX_TRUE;
-    interlace_format->nInterlaceFormats = OMX_InterlaceInterleaveFrameTopFieldFirst;
-    drv_ctx.interlace = VDEC_InterlaceInterleaveFrameTopFieldFirst;
-  }
-  print_debug_extradata(extra);
+    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;
+    extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataInterlaceFormat;
+    extra->nDataSize = sizeof(OMX_STREAMINTERLACEFORMAT);
+    interlace_format = (OMX_STREAMINTERLACEFORMAT *)extra->data;
+    interlace_format->nSize = sizeof(OMX_STREAMINTERLACEFORMAT);
+    interlace_format->nVersion.nVersion = OMX_SPEC_VERSION;
+    interlace_format->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
+    mbaff = (h264_parser)? (h264_parser->is_mbaff()): false;
+    if ((interlaced_format_type == INTERLACE_FRAME_PROGRESSIVE)  && !mbaff) {
+        interlace_format->bInterlaceFormat = OMX_FALSE;
+        interlace_format->nInterlaceFormats = OMX_InterlaceFrameProgressive;
+        drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
+    } else {
+        interlace_format->bInterlaceFormat = OMX_TRUE;
+        interlace_format->nInterlaceFormats = OMX_InterlaceInterleaveFrameTopFieldFirst;
+        drv_ctx.interlace = VDEC_InterlaceInterleaveFrameTopFieldFirst;
+    }
+    print_debug_extradata(extra);
 }
 
 void omx_vdec::fill_aspect_ratio_info(
-                       struct vdec_aspectratioinfo *aspect_ratio_info,
-                       OMX_QCOM_EXTRADATA_FRAMEINFO *frame_info)
+        struct vdec_aspectratioinfo *aspect_ratio_info,
+        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;
-  DEBUG_PRINT_LOW("aspectRatioX %d aspectRatioX %d", m_extradata->aspectRatio.aspectRatioX,
-                                                     m_extradata->aspectRatio.aspectRatioY);
+    m_extradata = frame_info;
+    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_frame_info_extradata(OMX_OTHER_EXTRADATATYPE *extra,
-    OMX_U32 num_conceal_mb, OMX_U32 picture_type, OMX_U32 frame_rate,
+        OMX_U32 num_conceal_mb, OMX_U32 picture_type, OMX_U32 frame_rate,
         struct msm_vidc_panscan_window_payload *panscan_payload,
         struct vdec_aspectratioinfo *aspect_ratio_info)
 {
-  OMX_QCOM_EXTRADATA_FRAMEINFO *frame_info = NULL;
-  struct msm_vidc_panscan_window *panscan_window;
-  if (!(client_extradata & OMX_FRAMEINFO_EXTRADATA)) {
+    OMX_QCOM_EXTRADATA_FRAMEINFO *frame_info = NULL;
+    struct msm_vidc_panscan_window *panscan_window;
+    if (!(client_extradata & OMX_FRAMEINFO_EXTRADATA)) {
         return;
-  }
-  extra->nSize = OMX_FRAMEINFO_EXTRADATA_SIZE;
-  extra->nVersion.nVersion = OMX_SPEC_VERSION;
-  extra->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
-  extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataFrameInfo;
-  extra->nDataSize = sizeof(OMX_QCOM_EXTRADATA_FRAMEINFO);
-  frame_info = (OMX_QCOM_EXTRADATA_FRAMEINFO *)extra->data;
-  switch (picture_type)
-  {
-    case PICTURE_TYPE_I:
-      frame_info->ePicType = OMX_VIDEO_PictureTypeI;
-    break;
-    case PICTURE_TYPE_P:
-      frame_info->ePicType = OMX_VIDEO_PictureTypeP;
-    break;
-    case PICTURE_TYPE_B:
-      frame_info->ePicType = OMX_VIDEO_PictureTypeB;
-    break;
-    default:
-       frame_info->ePicType = (OMX_VIDEO_PICTURETYPE)0;
-  }
-  if (drv_ctx.interlace == VDEC_InterlaceInterleaveFrameTopFieldFirst)
-    frame_info->interlaceType = OMX_QCOM_InterlaceInterleaveFrameTopFieldFirst;
-  else if (drv_ctx.interlace == VDEC_InterlaceInterleaveFrameBottomFieldFirst)
-    frame_info->interlaceType = OMX_QCOM_InterlaceInterleaveFrameBottomFieldFirst;
-  else
-    frame_info->interlaceType = OMX_QCOM_InterlaceFrameProgressive;
-  memset(&frame_info->aspectRatio, 0, sizeof(frame_info->aspectRatio));
-  frame_info->nConcealedMacroblocks = num_conceal_mb;
-  frame_info->nFrameRate = frame_rate;
-  frame_info->panScan.numWindows = 0;
-  if(panscan_payload) {
-  frame_info->panScan.numWindows = panscan_payload->num_panscan_windows;
-  panscan_window = &panscan_payload->wnd[0];
-  for (OMX_U32 i = 0; i < frame_info->panScan.numWindows; i++)
-    {
-      frame_info->panScan.window[i].x = panscan_window->panscan_window_width;
-      frame_info->panScan.window[i].y = panscan_window->panscan_window_height;
-      frame_info->panScan.window[i].dx = panscan_window->panscan_width_offset;
-      frame_info->panScan.window[i].dy = panscan_window->panscan_height_offset;
-      panscan_window++;
     }
-  }
-  fill_aspect_ratio_info(aspect_ratio_info, frame_info);
-  print_debug_extradata(extra);
+    extra->nSize = OMX_FRAMEINFO_EXTRADATA_SIZE;
+    extra->nVersion.nVersion = OMX_SPEC_VERSION;
+    extra->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
+    extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataFrameInfo;
+    extra->nDataSize = sizeof(OMX_QCOM_EXTRADATA_FRAMEINFO);
+    frame_info = (OMX_QCOM_EXTRADATA_FRAMEINFO *)extra->data;
+    switch (picture_type) {
+        case PICTURE_TYPE_I:
+            frame_info->ePicType = OMX_VIDEO_PictureTypeI;
+            break;
+        case PICTURE_TYPE_P:
+            frame_info->ePicType = OMX_VIDEO_PictureTypeP;
+            break;
+        case PICTURE_TYPE_B:
+            frame_info->ePicType = OMX_VIDEO_PictureTypeB;
+            break;
+        default:
+            frame_info->ePicType = (OMX_VIDEO_PICTURETYPE)0;
+    }
+    if (drv_ctx.interlace == VDEC_InterlaceInterleaveFrameTopFieldFirst)
+        frame_info->interlaceType = OMX_QCOM_InterlaceInterleaveFrameTopFieldFirst;
+    else if (drv_ctx.interlace == VDEC_InterlaceInterleaveFrameBottomFieldFirst)
+        frame_info->interlaceType = OMX_QCOM_InterlaceInterleaveFrameBottomFieldFirst;
+    else
+        frame_info->interlaceType = OMX_QCOM_InterlaceFrameProgressive;
+    memset(&frame_info->aspectRatio, 0, sizeof(frame_info->aspectRatio));
+    frame_info->nConcealedMacroblocks = num_conceal_mb;
+    frame_info->nFrameRate = frame_rate;
+    frame_info->panScan.numWindows = 0;
+    if (panscan_payload) {
+        frame_info->panScan.numWindows = panscan_payload->num_panscan_windows;
+        panscan_window = &panscan_payload->wnd[0];
+        for (OMX_U32 i = 0; i < frame_info->panScan.numWindows; i++) {
+            frame_info->panScan.window[i].x = panscan_window->panscan_window_width;
+            frame_info->panScan.window[i].y = panscan_window->panscan_window_height;
+            frame_info->panScan.window[i].dx = panscan_window->panscan_width_offset;
+            frame_info->panScan.window[i].dy = panscan_window->panscan_height_offset;
+            panscan_window++;
+        }
+    }
+    fill_aspect_ratio_info(aspect_ratio_info, frame_info);
+    print_debug_extradata(extra);
 }
 
 void omx_vdec::append_portdef_extradata(OMX_OTHER_EXTRADATATYPE *extra)
 {
-  OMX_PARAM_PORTDEFINITIONTYPE *portDefn = NULL;
-  extra->nSize = OMX_PORTDEF_EXTRADATA_SIZE;
-  extra->nVersion.nVersion = OMX_SPEC_VERSION;
-  extra->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
-  extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataPortDef;
-  extra->nDataSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
-  portDefn = (OMX_PARAM_PORTDEFINITIONTYPE *)extra->data;
-  *portDefn = m_port_def;
-  DEBUG_PRINT_LOW("append_portdef_extradata height = %u width = %u stride = %u"
-     "sliceheight = %u \n",portDefn->format.video.nFrameHeight,
-     portDefn->format.video.nFrameWidth,
-     portDefn->format.video.nStride,
-     portDefn->format.video.nSliceHeight);
+    OMX_PARAM_PORTDEFINITIONTYPE *portDefn = NULL;
+    extra->nSize = OMX_PORTDEF_EXTRADATA_SIZE;
+    extra->nVersion.nVersion = OMX_SPEC_VERSION;
+    extra->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
+    extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataPortDef;
+    extra->nDataSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
+    portDefn = (OMX_PARAM_PORTDEFINITIONTYPE *)extra->data;
+    *portDefn = m_port_def;
+    DEBUG_PRINT_LOW("append_portdef_extradata height = %u width = %u stride = %u"
+            "sliceheight = %u \n",portDefn->format.video.nFrameHeight,
+            portDefn->format.video.nFrameWidth,
+            portDefn->format.video.nStride,
+            portDefn->format.video.nSliceHeight);
 }
 
 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;
-  extra->nDataSize = 0;
-  extra->data[0] = 0;
+    if (!client_extradata) {
+        return;
+    }
+    extra->nSize = sizeof(OMX_OTHER_EXTRADATATYPE);
+    extra->nVersion.nVersion = OMX_SPEC_VERSION;
+    extra->eType = OMX_ExtraDataNone;
+    extra->nDataSize = 0;
+    extra->data[0] = 0;
 
-  print_debug_extradata(extra);
+    print_debug_extradata(extra);
 }
 
 OMX_ERRORTYPE  omx_vdec::allocate_desc_buffer(OMX_U32 index)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  if (index >= drv_ctx.ip_buf.actualcount)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:Desc Buffer Index not found");
-    return OMX_ErrorInsufficientResources;
-  }
-  if (m_desc_buffer_ptr == NULL)
-  {
-    m_desc_buffer_ptr = (desc_buffer_hdr*) \
-                     calloc( (sizeof(desc_buffer_hdr)),
-                     drv_ctx.ip_buf.actualcount);
-    if (m_desc_buffer_ptr == NULL)
-    {
-      DEBUG_PRINT_ERROR("\n m_desc_buffer_ptr Allocation failed ");
-      return OMX_ErrorInsufficientResources;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    if (index >= drv_ctx.ip_buf.actualcount) {
+        DEBUG_PRINT_ERROR("\nERROR:Desc Buffer Index not found");
+        return OMX_ErrorInsufficientResources;
     }
-  }
+    if (m_desc_buffer_ptr == NULL) {
+        m_desc_buffer_ptr = (desc_buffer_hdr*) \
+                            calloc( (sizeof(desc_buffer_hdr)),
+                                    drv_ctx.ip_buf.actualcount);
+        if (m_desc_buffer_ptr == NULL) {
+            DEBUG_PRINT_ERROR("\n m_desc_buffer_ptr Allocation failed ");
+            return OMX_ErrorInsufficientResources;
+        }
+    }
 
-  m_desc_buffer_ptr[index].buf_addr = (unsigned char *)malloc (DESC_BUFFER_SIZE * sizeof(OMX_U8));
-  if (m_desc_buffer_ptr[index].buf_addr == NULL)
-  {
-    DEBUG_PRINT_ERROR("\ndesc buffer Allocation failed ");
-    return OMX_ErrorInsufficientResources;
-  }
+    m_desc_buffer_ptr[index].buf_addr = (unsigned char *)malloc (DESC_BUFFER_SIZE * sizeof(OMX_U8));
+    if (m_desc_buffer_ptr[index].buf_addr == NULL) {
+        DEBUG_PRINT_ERROR("\ndesc buffer Allocation failed ");
+        return OMX_ErrorInsufficientResources;
+    }
 
-  return eRet;
+    return eRet;
 }
 
 void omx_vdec::insert_demux_addr_offset(OMX_U32 address_offset)
 {
-  DEBUG_PRINT_LOW("Inserting address offset (%d) at idx (%d)", address_offset,m_demux_entries);
-  if (m_demux_entries < 8192)
-  {
-    m_demux_offsets[m_demux_entries++] = address_offset;
-  }
-  return;
+    DEBUG_PRINT_LOW("Inserting address offset (%d) at idx (%d)", address_offset,m_demux_entries);
+    if (m_demux_entries < 8192) {
+        m_demux_offsets[m_demux_entries++] = address_offset;
+    }
+    return;
 }
 
 void omx_vdec::extract_demux_addr_offsets(OMX_BUFFERHEADERTYPE *buf_hdr)
 {
-  OMX_U32 bytes_to_parse = buf_hdr->nFilledLen;
-  OMX_U8 *buf = buf_hdr->pBuffer + buf_hdr->nOffset;
-  OMX_U32 index = 0;
+    OMX_U32 bytes_to_parse = buf_hdr->nFilledLen;
+    OMX_U8 *buf = buf_hdr->pBuffer + buf_hdr->nOffset;
+    OMX_U32 index = 0;
 
-  m_demux_entries = 0;
+    m_demux_entries = 0;
 
-  while (index < bytes_to_parse)
-  {
-    if ( ((buf[index] == 0x00) && (buf[index+1] == 0x00) &&
-          (buf[index+2] == 0x00) && (buf[index+3] == 0x01)) ||
-         ((buf[index] == 0x00) && (buf[index+1] == 0x00) &&
-          (buf[index+2] == 0x01)) )
-    {
-      //Found start code, insert address offset
-      insert_demux_addr_offset(index);
-      if (buf[index+2] == 0x01) // 3 byte start code
-        index += 3;
-      else                      //4 byte start code
-        index += 4;
+    while (index < bytes_to_parse) {
+        if ( ((buf[index] == 0x00) && (buf[index+1] == 0x00) &&
+                    (buf[index+2] == 0x00) && (buf[index+3] == 0x01)) ||
+                ((buf[index] == 0x00) && (buf[index+1] == 0x00) &&
+                 (buf[index+2] == 0x01)) ) {
+            //Found start code, insert address offset
+            insert_demux_addr_offset(index);
+            if (buf[index+2] == 0x01) // 3 byte start code
+                index += 3;
+            else                      //4 byte start code
+                index += 4;
+        } else
+            index++;
     }
-    else
-      index++;
-  }
-  DEBUG_PRINT_LOW("Extracted (%d) demux entry offsets",m_demux_entries);
-  return;
+    DEBUG_PRINT_LOW("Extracted (%d) demux entry offsets",m_demux_entries);
+    return;
 }
 
 OMX_ERRORTYPE omx_vdec::handle_demux_data(OMX_BUFFERHEADERTYPE *p_buf_hdr)
 {
-  //fix this, handle 3 byte start code, vc1 terminator entry
-  OMX_U8 *p_demux_data = NULL;
-  OMX_U32 desc_data = 0;
-  OMX_U32 start_addr = 0;
-  OMX_U32 nal_size = 0;
-  OMX_U32 suffix_byte = 0;
-  OMX_U32 demux_index = 0;
-  OMX_U32 buffer_index = 0;
+    //fix this, handle 3 byte start code, vc1 terminator entry
+    OMX_U8 *p_demux_data = NULL;
+    OMX_U32 desc_data = 0;
+    OMX_U32 start_addr = 0;
+    OMX_U32 nal_size = 0;
+    OMX_U32 suffix_byte = 0;
+    OMX_U32 demux_index = 0;
+    OMX_U32 buffer_index = 0;
 
-  if (m_desc_buffer_ptr == NULL)
-  {
-    DEBUG_PRINT_ERROR("m_desc_buffer_ptr is NULL. Cannot append demux entries.");
-    return OMX_ErrorBadParameter;
-  }
-
-  buffer_index = p_buf_hdr - ((OMX_BUFFERHEADERTYPE *)m_inp_mem_ptr);
-  if (buffer_index > drv_ctx.ip_buf.actualcount)
-  {
-    DEBUG_PRINT_ERROR("handle_demux_data:Buffer index is incorrect (%lu)", buffer_index);
-    return OMX_ErrorBadParameter;
-  }
-
-  p_demux_data = (OMX_U8 *) m_desc_buffer_ptr[buffer_index].buf_addr;
-
-  if ( ((OMX_U8*)p_demux_data == NULL) ||
-      ((m_demux_entries * 16) + 1) > DESC_BUFFER_SIZE)
-  {
-    DEBUG_PRINT_ERROR("Insufficient buffer. Cannot append demux entries.");
-    return OMX_ErrorBadParameter;
-  }
-  else
-  {
-    for (; demux_index < m_demux_entries; demux_index++)
-    {
-      desc_data = 0;
-      start_addr = m_demux_offsets[demux_index];
-      if (p_buf_hdr->pBuffer[m_demux_offsets[demux_index] + 2] == 0x01)
-      {
-        suffix_byte = p_buf_hdr->pBuffer[m_demux_offsets[demux_index] + 3];
-      }
-      else
-      {
-        suffix_byte = p_buf_hdr->pBuffer[m_demux_offsets[demux_index] + 4];
-      }
-      if (demux_index < (m_demux_entries - 1))
-      {
-        nal_size = m_demux_offsets[demux_index + 1] - m_demux_offsets[demux_index] - 2;
-      }
-      else
-      {
-        nal_size = p_buf_hdr->nFilledLen - m_demux_offsets[demux_index] - 2;
-      }
-      DEBUG_PRINT_LOW("Start_addr(%p), suffix_byte(0x%x),nal_size(%d),demux_index(%d)",
-                        start_addr,
-                        suffix_byte,
-                        nal_size,
-                        demux_index);
-      desc_data = (start_addr >> 3) << 1;
-      desc_data |= (start_addr & 7) << 21;
-      desc_data |= suffix_byte << 24;
-
-      memcpy(p_demux_data, &desc_data, sizeof(OMX_U32));
-      memcpy(p_demux_data + 4, &nal_size, sizeof(OMX_U32));
-      memset(p_demux_data + 8, 0, sizeof(OMX_U32));
-      memset(p_demux_data + 12, 0, sizeof(OMX_U32));
-
-      p_demux_data += 16;
+    if (m_desc_buffer_ptr == NULL) {
+        DEBUG_PRINT_ERROR("m_desc_buffer_ptr is NULL. Cannot append demux entries.");
+        return OMX_ErrorBadParameter;
     }
-    if (codec_type_parse == CODEC_TYPE_VC1)
-    {
-      DEBUG_PRINT_LOW("VC1 terminator entry");
-      desc_data = 0;
-      desc_data = 0x82 << 24;
-      memcpy(p_demux_data, &desc_data, sizeof(OMX_U32));
-      memset(p_demux_data + 4, 0, sizeof(OMX_U32));
-      memset(p_demux_data + 8, 0, sizeof(OMX_U32));
-      memset(p_demux_data + 12, 0, sizeof(OMX_U32));
-      p_demux_data += 16;
-      m_demux_entries++;
-    }
-    //Add zero word to indicate end of descriptors
-    memset(p_demux_data, 0, sizeof(OMX_U32));
 
-    m_desc_buffer_ptr[buffer_index].desc_data_size = (m_demux_entries * 16) + sizeof(OMX_U32);
-    DEBUG_PRINT_LOW("desc table data size=%d", m_desc_buffer_ptr[buffer_index].desc_data_size);
-  }
-  memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
-  m_demux_entries = 0;
-  DEBUG_PRINT_LOW("Demux table complete!");
-  return OMX_ErrorNone;
+    buffer_index = p_buf_hdr - ((OMX_BUFFERHEADERTYPE *)m_inp_mem_ptr);
+    if (buffer_index > drv_ctx.ip_buf.actualcount) {
+        DEBUG_PRINT_ERROR("handle_demux_data:Buffer index is incorrect (%lu)", buffer_index);
+        return OMX_ErrorBadParameter;
+    }
+
+    p_demux_data = (OMX_U8 *) m_desc_buffer_ptr[buffer_index].buf_addr;
+
+    if ( ((OMX_U8*)p_demux_data == NULL) ||
+            ((m_demux_entries * 16) + 1) > DESC_BUFFER_SIZE) {
+        DEBUG_PRINT_ERROR("Insufficient buffer. Cannot append demux entries.");
+        return OMX_ErrorBadParameter;
+    } else {
+        for (; demux_index < m_demux_entries; demux_index++) {
+            desc_data = 0;
+            start_addr = m_demux_offsets[demux_index];
+            if (p_buf_hdr->pBuffer[m_demux_offsets[demux_index] + 2] == 0x01) {
+                suffix_byte = p_buf_hdr->pBuffer[m_demux_offsets[demux_index] + 3];
+            } else {
+                suffix_byte = p_buf_hdr->pBuffer[m_demux_offsets[demux_index] + 4];
+            }
+            if (demux_index < (m_demux_entries - 1)) {
+                nal_size = m_demux_offsets[demux_index + 1] - m_demux_offsets[demux_index] - 2;
+            } else {
+                nal_size = p_buf_hdr->nFilledLen - m_demux_offsets[demux_index] - 2;
+            }
+            DEBUG_PRINT_LOW("Start_addr(%p), suffix_byte(0x%x),nal_size(%d),demux_index(%d)",
+                    start_addr,
+                    suffix_byte,
+                    nal_size,
+                    demux_index);
+            desc_data = (start_addr >> 3) << 1;
+            desc_data |= (start_addr & 7) << 21;
+            desc_data |= suffix_byte << 24;
+
+            memcpy(p_demux_data, &desc_data, sizeof(OMX_U32));
+            memcpy(p_demux_data + 4, &nal_size, sizeof(OMX_U32));
+            memset(p_demux_data + 8, 0, sizeof(OMX_U32));
+            memset(p_demux_data + 12, 0, sizeof(OMX_U32));
+
+            p_demux_data += 16;
+        }
+        if (codec_type_parse == CODEC_TYPE_VC1) {
+            DEBUG_PRINT_LOW("VC1 terminator entry");
+            desc_data = 0;
+            desc_data = 0x82 << 24;
+            memcpy(p_demux_data, &desc_data, sizeof(OMX_U32));
+            memset(p_demux_data + 4, 0, sizeof(OMX_U32));
+            memset(p_demux_data + 8, 0, sizeof(OMX_U32));
+            memset(p_demux_data + 12, 0, sizeof(OMX_U32));
+            p_demux_data += 16;
+            m_demux_entries++;
+        }
+        //Add zero word to indicate end of descriptors
+        memset(p_demux_data, 0, sizeof(OMX_U32));
+
+        m_desc_buffer_ptr[buffer_index].desc_data_size = (m_demux_entries * 16) + sizeof(OMX_U32);
+        DEBUG_PRINT_LOW("desc table data size=%d", m_desc_buffer_ptr[buffer_index].desc_data_size);
+    }
+    memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
+    m_demux_entries = 0;
+    DEBUG_PRINT_LOW("Demux table complete!");
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_vdec::createDivxDrmContext()
 {
-     OMX_ERRORTYPE err = OMX_ErrorNone;
-     iDivXDrmDecrypt = DivXDrmDecrypt::Create();
-     if (iDivXDrmDecrypt) {
-          OMX_ERRORTYPE err = iDivXDrmDecrypt->Init();
-          if(err!=OMX_ErrorNone) {
+    OMX_ERRORTYPE err = OMX_ErrorNone;
+    iDivXDrmDecrypt = DivXDrmDecrypt::Create();
+    if (iDivXDrmDecrypt) {
+        OMX_ERRORTYPE err = iDivXDrmDecrypt->Init();
+        if (err!=OMX_ErrorNone) {
             DEBUG_PRINT_ERROR("\nERROR :iDivXDrmDecrypt->Init %d", err);
             delete iDivXDrmDecrypt;
             iDivXDrmDecrypt = NULL;
-          }
-     }
-     else {
-          DEBUG_PRINT_ERROR("\nUnable to Create DIVX DRM");
-          err = OMX_ErrorUndefined;
-     }
-     return err;
+        }
+    } else {
+        DEBUG_PRINT_ERROR("\nUnable to Create DIVX DRM");
+        err = OMX_ErrorUndefined;
+    }
+    return err;
 }
 
 omx_vdec::allocate_color_convert_buf::allocate_color_convert_buf()
 {
-  enabled = false;
-  omx = NULL;
-  init_members();
-  ColorFormat = OMX_COLOR_FormatMax;
+    enabled = false;
+    omx = NULL;
+    init_members();
+    ColorFormat = OMX_COLOR_FormatMax;
 }
 
 void omx_vdec::allocate_color_convert_buf::set_vdec_client(void *client)
 {
-  omx = reinterpret_cast<omx_vdec*>(client);
+    omx = reinterpret_cast<omx_vdec*>(client);
 }
 
-void omx_vdec::allocate_color_convert_buf::init_members() {
-  allocated_count = 0;
-  buffer_size_req = 0;
-  buffer_alignment_req = 0;
-  memset(m_platform_list_client,0,sizeof(m_platform_list_client));
-  memset(m_platform_entry_client,0,sizeof(m_platform_entry_client));
-  memset(m_pmem_info_client,0,sizeof(m_pmem_info_client));
-  memset(m_out_mem_ptr_client,0,sizeof(m_out_mem_ptr_client));
+void omx_vdec::allocate_color_convert_buf::init_members()
+{
+    allocated_count = 0;
+    buffer_size_req = 0;
+    buffer_alignment_req = 0;
+    memset(m_platform_list_client,0,sizeof(m_platform_list_client));
+    memset(m_platform_entry_client,0,sizeof(m_platform_entry_client));
+    memset(m_pmem_info_client,0,sizeof(m_pmem_info_client));
+    memset(m_out_mem_ptr_client,0,sizeof(m_out_mem_ptr_client));
 #ifdef USE_ION
-  memset(op_buf_ion_info,0,sizeof(m_platform_entry_client));
+    memset(op_buf_ion_info,0,sizeof(m_platform_entry_client));
 #endif
-  for (int i = 0; i < MAX_COUNT;i++)
-    pmem_fd[i] = -1;
+    for (int i = 0; i < MAX_COUNT; i++)
+        pmem_fd[i] = -1;
 }
 
-omx_vdec::allocate_color_convert_buf::~allocate_color_convert_buf() {
-  c2d.destroy();
+omx_vdec::allocate_color_convert_buf::~allocate_color_convert_buf()
+{
+    c2d.destroy();
 }
 
 bool omx_vdec::allocate_color_convert_buf::update_buffer_req()
 {
-  bool status = true;
-  unsigned int src_size = 0, destination_size = 0;
-  OMX_COLOR_FORMATTYPE drv_color_format;
-  if (!omx){
-    DEBUG_PRINT_ERROR("\n Invalid client in color convert");
-    return false;
-  }
-  if (!enabled){
-    DEBUG_PRINT_HIGH("\n No color conversion required");
-    return status;
-  }
-  pthread_mutex_lock(&omx->c_lock);
-  if (omx->drv_ctx.output_format != VDEC_YUV_FORMAT_NV12 &&
-      ColorFormat != OMX_COLOR_FormatYUV420Planar) {
-    DEBUG_PRINT_ERROR("\nupdate_buffer_req: Unsupported color conversion");
-    status = false;
-    goto fail_update_buf_req;
-  }
-  c2d.close();
-  status = c2d.open(omx->drv_ctx.video_resolution.frame_height,
-                    omx->drv_ctx.video_resolution.frame_width,
-                    NV12_128m,YCbCr420P);
-  if (status) {
-    status = c2d.get_buffer_size(C2D_INPUT,src_size);
-    if (status)
-      status = c2d.get_buffer_size(C2D_OUTPUT,destination_size);
-  }
-  if (status) {
-    if (!src_size || src_size > omx->drv_ctx.op_buf.buffer_size ||
-        !destination_size) {
-      DEBUG_PRINT_ERROR("\nERROR: Size mismatch in C2D src_size %d"
-            "driver size %d destination size %d",
-             src_size,omx->drv_ctx.op_buf.buffer_size,destination_size);
-      status = false;
-      c2d.close();
-      buffer_size_req = 0;
-    } else {
-      buffer_size_req = destination_size;
-      if (buffer_size_req < omx->drv_ctx.op_buf.buffer_size)
-	     buffer_size_req = omx->drv_ctx.op_buf.buffer_size;
-      if (buffer_alignment_req < omx->drv_ctx.op_buf.alignment)
-            buffer_alignment_req = omx->drv_ctx.op_buf.alignment;
+    bool status = true;
+    unsigned int src_size = 0, destination_size = 0;
+    OMX_COLOR_FORMATTYPE drv_color_format;
+    if (!omx) {
+        DEBUG_PRINT_ERROR("\n Invalid client in color convert");
+        return false;
     }
-  }
+    if (!enabled) {
+        DEBUG_PRINT_HIGH("\n No color conversion required");
+        return status;
+    }
+    pthread_mutex_lock(&omx->c_lock);
+    if (omx->drv_ctx.output_format != VDEC_YUV_FORMAT_NV12 &&
+            ColorFormat != OMX_COLOR_FormatYUV420Planar) {
+        DEBUG_PRINT_ERROR("\nupdate_buffer_req: Unsupported color conversion");
+        status = false;
+        goto fail_update_buf_req;
+    }
+    c2d.close();
+    status = c2d.open(omx->drv_ctx.video_resolution.frame_height,
+            omx->drv_ctx.video_resolution.frame_width,
+            NV12_128m,YCbCr420P);
+    if (status) {
+        status = c2d.get_buffer_size(C2D_INPUT,src_size);
+        if (status)
+            status = c2d.get_buffer_size(C2D_OUTPUT,destination_size);
+    }
+    if (status) {
+        if (!src_size || src_size > omx->drv_ctx.op_buf.buffer_size ||
+                !destination_size) {
+            DEBUG_PRINT_ERROR("\nERROR: Size mismatch in C2D src_size %d"
+                    "driver size %d destination size %d",
+                    src_size,omx->drv_ctx.op_buf.buffer_size,destination_size);
+            status = false;
+            c2d.close();
+            buffer_size_req = 0;
+        } else {
+            buffer_size_req = destination_size;
+            if (buffer_size_req < omx->drv_ctx.op_buf.buffer_size)
+                buffer_size_req = omx->drv_ctx.op_buf.buffer_size;
+            if (buffer_alignment_req < omx->drv_ctx.op_buf.alignment)
+                buffer_alignment_req = omx->drv_ctx.op_buf.alignment;
+        }
+    }
 fail_update_buf_req:
-  pthread_mutex_unlock(&omx->c_lock);
-  return status;
+    pthread_mutex_unlock(&omx->c_lock);
+    return status;
 }
 
 bool omx_vdec::allocate_color_convert_buf::set_color_format(
-  OMX_COLOR_FORMATTYPE dest_color_format)
+        OMX_COLOR_FORMATTYPE dest_color_format)
 {
-  bool status = true;
-  OMX_COLOR_FORMATTYPE drv_color_format;
-  if (!omx){
-    DEBUG_PRINT_ERROR("\n Invalid client in color convert");
-    return false;
-  }
-  pthread_mutex_lock(&omx->c_lock);
-  if (omx->drv_ctx.output_format == VDEC_YUV_FORMAT_NV12)
-    drv_color_format = (OMX_COLOR_FORMATTYPE)
-    QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m;
-  else {
-    DEBUG_PRINT_ERROR("\n Incorrect color format");
-    status = false;
-  }
-  if (status && (drv_color_format != dest_color_format)) {
-    DEBUG_PRINT_LOW("Enabling C2D\n");
-    if (dest_color_format != OMX_COLOR_FormatYUV420Planar) {
-      DEBUG_PRINT_ERROR("\n Unsupported color format for c2d");
-      status = false;
-    } else {
-      ColorFormat = OMX_COLOR_FormatYUV420Planar;
-      if (enabled)
-        c2d.destroy();
-      enabled = false;
-      if (!c2d.init()) {
-        DEBUG_PRINT_ERROR("\n open failed for c2d");
-        status = false;
-      } else
-        enabled = true;
+    bool status = true;
+    OMX_COLOR_FORMATTYPE drv_color_format;
+    if (!omx) {
+        DEBUG_PRINT_ERROR("\n Invalid client in color convert");
+        return false;
     }
-  } else {
-    if (enabled)
-      c2d.destroy();
-    enabled = false;
-  }
-  pthread_mutex_unlock(&omx->c_lock);
-  return status;
+    pthread_mutex_lock(&omx->c_lock);
+    if (omx->drv_ctx.output_format == VDEC_YUV_FORMAT_NV12)
+        drv_color_format = (OMX_COLOR_FORMATTYPE)
+            QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m;
+    else {
+        DEBUG_PRINT_ERROR("\n Incorrect color format");
+        status = false;
+    }
+    if (status && (drv_color_format != dest_color_format)) {
+        DEBUG_PRINT_LOW("Enabling C2D\n");
+        if (dest_color_format != OMX_COLOR_FormatYUV420Planar) {
+            DEBUG_PRINT_ERROR("\n Unsupported color format for c2d");
+            status = false;
+        } else {
+            ColorFormat = OMX_COLOR_FormatYUV420Planar;
+            if (enabled)
+                c2d.destroy();
+            enabled = false;
+            if (!c2d.init()) {
+                DEBUG_PRINT_ERROR("\n open failed for c2d");
+                status = false;
+            } else
+                enabled = true;
+        }
+    } else {
+        if (enabled)
+            c2d.destroy();
+        enabled = false;
+    }
+    pthread_mutex_unlock(&omx->c_lock);
+    return status;
 }
 
 OMX_BUFFERHEADERTYPE* omx_vdec::allocate_color_convert_buf::get_il_buf_hdr()
 {
-  if (!omx){
-    DEBUG_PRINT_ERROR("\n Invalid param get_buf_hdr");
-    return NULL;
-  }
-  if (!enabled)
-    return omx->m_out_mem_ptr;
-  return m_out_mem_ptr_client;
-}
-
-OMX_BUFFERHEADERTYPE* omx_vdec::allocate_color_convert_buf::get_il_buf_hdr
-       (OMX_BUFFERHEADERTYPE *bufadd)
-{
-  if (!omx){
-    DEBUG_PRINT_ERROR("\n Invalid param get_buf_hdr");
-    return NULL;
-  }
-  if (!enabled)
-    return bufadd;
-
-  unsigned index = 0;
-  index = bufadd - omx->m_out_mem_ptr;
-  if (index < omx->drv_ctx.op_buf.actualcount) {
-    m_out_mem_ptr_client[index].nFlags = (bufadd->nFlags & OMX_BUFFERFLAG_EOS);
-    m_out_mem_ptr_client[index].nTimeStamp = bufadd->nTimeStamp;
-    bool status;
-    if (!omx->in_reconfig && !omx->output_flush_progress && bufadd->nFilledLen) {
-       pthread_mutex_lock(&omx->c_lock);
-      status = c2d.convert(omx->drv_ctx.ptr_outputbuffer[index].pmem_fd,
-                  omx->m_out_mem_ptr->pBuffer, bufadd->pBuffer,pmem_fd[index],
-                  pmem_baseaddress[index], pmem_baseaddress[index]);
-       pthread_mutex_unlock(&omx->c_lock);
-      m_out_mem_ptr_client[index].nFilledLen = buffer_size_req;
-      if (!status){
-        DEBUG_PRINT_ERROR("\n Failed color conversion %d", status);
-        m_out_mem_ptr_client[index].nFilledLen = 0;
-        return &m_out_mem_ptr_client[index];
-      }
-    } else
-      m_out_mem_ptr_client[index].nFilledLen = 0;
-    return &m_out_mem_ptr_client[index];
-  }
-  DEBUG_PRINT_ERROR("\n Index messed up in the get_il_buf_hdr");
-  return NULL;
-}
-
-OMX_BUFFERHEADERTYPE* omx_vdec::allocate_color_convert_buf::get_dr_buf_hdr
-                                              (OMX_BUFFERHEADERTYPE *bufadd)
-{
-  if (!omx){
-    DEBUG_PRINT_ERROR("\n Invalid param get_buf_hdr");
-    return NULL;
-  }
-  if (!enabled)
-    return bufadd;
-  unsigned index = 0;
-  index = bufadd - m_out_mem_ptr_client;
-  if (index < omx->drv_ctx.op_buf.actualcount) {
-    return &omx->m_out_mem_ptr[index];
-  }
-  DEBUG_PRINT_ERROR("\n Index messed up in the get_dr_buf_hdr");
-  return NULL;
-}
-bool omx_vdec::allocate_color_convert_buf::get_buffer_req
-          (unsigned int &buffer_size)
-{
-  bool status = true;
-  pthread_mutex_lock(&omx->c_lock);
-  if (!enabled)
-    buffer_size = omx->drv_ctx.op_buf.buffer_size;
-  else {
-    if (!c2d.get_buffer_size(C2D_OUTPUT,buffer_size)) {
-      DEBUG_PRINT_ERROR("\n Get buffer size failed");
-      status = false;
-      goto fail_get_buffer_size;
+    if (!omx) {
+        DEBUG_PRINT_ERROR("\n Invalid param get_buf_hdr");
+        return NULL;
     }
-  }
-  if (buffer_size < omx->drv_ctx.op_buf.buffer_size)
+    if (!enabled)
+        return omx->m_out_mem_ptr;
+    return m_out_mem_ptr_client;
+}
+
+    OMX_BUFFERHEADERTYPE* omx_vdec::allocate_color_convert_buf::get_il_buf_hdr
+(OMX_BUFFERHEADERTYPE *bufadd)
+{
+    if (!omx) {
+        DEBUG_PRINT_ERROR("\n Invalid param get_buf_hdr");
+        return NULL;
+    }
+    if (!enabled)
+        return bufadd;
+
+    unsigned index = 0;
+    index = bufadd - omx->m_out_mem_ptr;
+    if (index < omx->drv_ctx.op_buf.actualcount) {
+        m_out_mem_ptr_client[index].nFlags = (bufadd->nFlags & OMX_BUFFERFLAG_EOS);
+        m_out_mem_ptr_client[index].nTimeStamp = bufadd->nTimeStamp;
+        bool status;
+        if (!omx->in_reconfig && !omx->output_flush_progress && bufadd->nFilledLen) {
+            pthread_mutex_lock(&omx->c_lock);
+            status = c2d.convert(omx->drv_ctx.ptr_outputbuffer[index].pmem_fd,
+                    omx->m_out_mem_ptr->pBuffer, bufadd->pBuffer,pmem_fd[index],
+                    pmem_baseaddress[index], pmem_baseaddress[index]);
+            pthread_mutex_unlock(&omx->c_lock);
+            m_out_mem_ptr_client[index].nFilledLen = buffer_size_req;
+            if (!status) {
+                DEBUG_PRINT_ERROR("\n Failed color conversion %d", status);
+                m_out_mem_ptr_client[index].nFilledLen = 0;
+                return &m_out_mem_ptr_client[index];
+            }
+        } else
+            m_out_mem_ptr_client[index].nFilledLen = 0;
+        return &m_out_mem_ptr_client[index];
+    }
+    DEBUG_PRINT_ERROR("\n Index messed up in the get_il_buf_hdr");
+    return NULL;
+}
+
+    OMX_BUFFERHEADERTYPE* omx_vdec::allocate_color_convert_buf::get_dr_buf_hdr
+(OMX_BUFFERHEADERTYPE *bufadd)
+{
+    if (!omx) {
+        DEBUG_PRINT_ERROR("\n Invalid param get_buf_hdr");
+        return NULL;
+    }
+    if (!enabled)
+        return bufadd;
+    unsigned index = 0;
+    index = bufadd - m_out_mem_ptr_client;
+    if (index < omx->drv_ctx.op_buf.actualcount) {
+        return &omx->m_out_mem_ptr[index];
+    }
+    DEBUG_PRINT_ERROR("\n Index messed up in the get_dr_buf_hdr");
+    return NULL;
+}
+    bool omx_vdec::allocate_color_convert_buf::get_buffer_req
+(unsigned int &buffer_size)
+{
+    bool status = true;
+    pthread_mutex_lock(&omx->c_lock);
+    if (!enabled)
         buffer_size = omx->drv_ctx.op_buf.buffer_size;
-  if (buffer_alignment_req < omx->drv_ctx.op_buf.alignment)
-	  buffer_alignment_req = omx->drv_ctx.op_buf.alignment;
+    else {
+        if (!c2d.get_buffer_size(C2D_OUTPUT,buffer_size)) {
+            DEBUG_PRINT_ERROR("\n Get buffer size failed");
+            status = false;
+            goto fail_get_buffer_size;
+        }
+    }
+    if (buffer_size < omx->drv_ctx.op_buf.buffer_size)
+        buffer_size = omx->drv_ctx.op_buf.buffer_size;
+    if (buffer_alignment_req < omx->drv_ctx.op_buf.alignment)
+        buffer_alignment_req = omx->drv_ctx.op_buf.alignment;
 fail_get_buffer_size:
-  pthread_mutex_unlock(&omx->c_lock);
-  return status;
+    pthread_mutex_unlock(&omx->c_lock);
+    return status;
 }
 OMX_ERRORTYPE omx_vdec::allocate_color_convert_buf::free_output_buffer(
-  OMX_BUFFERHEADERTYPE *bufhdr) {
-  unsigned int index = 0;
+        OMX_BUFFERHEADERTYPE *bufhdr)
+{
+    unsigned int index = 0;
 
-  if (!enabled)
-    return omx->free_output_buffer(bufhdr);
-  if (enabled && omx->is_component_secure())
-    return OMX_ErrorNone;
-  if (!allocated_count || !bufhdr) {
-    DEBUG_PRINT_ERROR("\n Color convert no buffer to be freed %p",bufhdr);
-    return OMX_ErrorBadParameter;
-  }
-  index = bufhdr - m_out_mem_ptr_client;
-  if (index >= omx->drv_ctx.op_buf.actualcount){
-    DEBUG_PRINT_ERROR("\n Incorrect index color convert free_output_buffer");
-    return OMX_ErrorBadParameter;
-  }
-  if (pmem_fd[index] > 0) {
-    munmap(pmem_baseaddress[index], buffer_size_req);
-    close(pmem_fd[index]);
-  }
-  pmem_fd[index] = -1;
+    if (!enabled)
+        return omx->free_output_buffer(bufhdr);
+    if (enabled && omx->is_component_secure())
+        return OMX_ErrorNone;
+    if (!allocated_count || !bufhdr) {
+        DEBUG_PRINT_ERROR("\n Color convert no buffer to be freed %p",bufhdr);
+        return OMX_ErrorBadParameter;
+    }
+    index = bufhdr - m_out_mem_ptr_client;
+    if (index >= omx->drv_ctx.op_buf.actualcount) {
+        DEBUG_PRINT_ERROR("\n Incorrect index color convert free_output_buffer");
+        return OMX_ErrorBadParameter;
+    }
+    if (pmem_fd[index] > 0) {
+        munmap(pmem_baseaddress[index], buffer_size_req);
+        close(pmem_fd[index]);
+    }
+    pmem_fd[index] = -1;
 #ifdef USE_ION
-  omx->free_ion_memory(&op_buf_ion_info[index]);
+    omx->free_ion_memory(&op_buf_ion_info[index]);
 #endif
-  m_heap_ptr[index].video_heap_ptr = NULL;
-  if (allocated_count > 0)
-    allocated_count--;
-  else
-    allocated_count = 0;
-  if (!allocated_count) {
-    pthread_mutex_lock(&omx->c_lock);
-    c2d.close();
-    init_members();
-    pthread_mutex_unlock(&omx->c_lock);
-  }
-  return omx->free_output_buffer(&omx->m_out_mem_ptr[index]);
+    m_heap_ptr[index].video_heap_ptr = NULL;
+    if (allocated_count > 0)
+        allocated_count--;
+    else
+        allocated_count = 0;
+    if (!allocated_count) {
+        pthread_mutex_lock(&omx->c_lock);
+        c2d.close();
+        init_members();
+        pthread_mutex_unlock(&omx->c_lock);
+    }
+    return omx->free_output_buffer(&omx->m_out_mem_ptr[index]);
 }
 
 OMX_ERRORTYPE omx_vdec::allocate_color_convert_buf::allocate_buffers_color_convert(OMX_HANDLETYPE hComp,
-  OMX_BUFFERHEADERTYPE **bufferHdr,OMX_U32 port,OMX_PTR appData,OMX_U32 bytes)
+        OMX_BUFFERHEADERTYPE **bufferHdr,OMX_U32 port,OMX_PTR appData,OMX_U32 bytes)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  if (!enabled){
-    eRet = omx->allocate_output_buffer(hComp,bufferHdr,port,appData,bytes);
-    return eRet;
-  }
-  if (enabled && omx->is_component_secure()) {
-    DEBUG_PRINT_ERROR("\nNotin color convert mode secure_mode %d",
-                      omx->is_component_secure());
-    return OMX_ErrorUnsupportedSetting;
-  }
-  if (!bufferHdr || bytes > buffer_size_req) {
-    DEBUG_PRINT_ERROR("\n Invalid params allocate_buffers_color_convert %p", bufferHdr);
-    DEBUG_PRINT_ERROR("\n color_convert buffer_size_req %d bytes %lu",
-                      buffer_size_req,bytes);
-    return OMX_ErrorBadParameter;
-  }
-  if (allocated_count >= omx->drv_ctx.op_buf.actualcount) {
-    DEBUG_PRINT_ERROR("\n Actual count err in allocate_buffers_color_convert");
-    return OMX_ErrorInsufficientResources;
-  }
-  OMX_BUFFERHEADERTYPE *temp_bufferHdr = NULL;
-  eRet = omx->allocate_output_buffer(hComp,&temp_bufferHdr,
-         port,appData,omx->drv_ctx.op_buf.buffer_size);
-  if (eRet != OMX_ErrorNone || !temp_bufferHdr){
-    DEBUG_PRINT_ERROR("\n Buffer allocation failed color_convert");
-    return eRet;
-  }
-  if ((temp_bufferHdr - omx->m_out_mem_ptr) >=
-      omx->drv_ctx.op_buf.actualcount) {
-    DEBUG_PRINT_ERROR("\n Invalid header index %d",
-             (temp_bufferHdr - omx->m_out_mem_ptr));
-    return OMX_ErrorUndefined;
-  }
-  unsigned int i = allocated_count;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    if (!enabled) {
+        eRet = omx->allocate_output_buffer(hComp,bufferHdr,port,appData,bytes);
+        return eRet;
+    }
+    if (enabled && omx->is_component_secure()) {
+        DEBUG_PRINT_ERROR("\nNotin color convert mode secure_mode %d",
+                omx->is_component_secure());
+        return OMX_ErrorUnsupportedSetting;
+    }
+    if (!bufferHdr || bytes > buffer_size_req) {
+        DEBUG_PRINT_ERROR("\n Invalid params allocate_buffers_color_convert %p", bufferHdr);
+        DEBUG_PRINT_ERROR("\n color_convert buffer_size_req %d bytes %lu",
+                buffer_size_req,bytes);
+        return OMX_ErrorBadParameter;
+    }
+    if (allocated_count >= omx->drv_ctx.op_buf.actualcount) {
+        DEBUG_PRINT_ERROR("\n Actual count err in allocate_buffers_color_convert");
+        return OMX_ErrorInsufficientResources;
+    }
+    OMX_BUFFERHEADERTYPE *temp_bufferHdr = NULL;
+    eRet = omx->allocate_output_buffer(hComp,&temp_bufferHdr,
+            port,appData,omx->drv_ctx.op_buf.buffer_size);
+    if (eRet != OMX_ErrorNone || !temp_bufferHdr) {
+        DEBUG_PRINT_ERROR("\n Buffer allocation failed color_convert");
+        return eRet;
+    }
+    if ((temp_bufferHdr - omx->m_out_mem_ptr) >=
+            omx->drv_ctx.op_buf.actualcount) {
+        DEBUG_PRINT_ERROR("\n Invalid header index %d",
+                (temp_bufferHdr - omx->m_out_mem_ptr));
+        return OMX_ErrorUndefined;
+    }
+    unsigned int i = allocated_count;
 #ifdef USE_ION
-  op_buf_ion_info[i].ion_device_fd = omx->alloc_map_ion_memory(
-    buffer_size_req,buffer_alignment_req,
-    &op_buf_ion_info[i].ion_alloc_data,&op_buf_ion_info[i].fd_ion_data,
-    0);
-  pmem_fd[i] = op_buf_ion_info[i].fd_ion_data.fd;
-  if (op_buf_ion_info[i].ion_device_fd < 0) {
-    DEBUG_PRINT_ERROR("\n alloc_map_ion failed in color_convert");
-    return OMX_ErrorInsufficientResources;
-  }
-  pmem_baseaddress[i] = (unsigned char *)mmap(NULL,buffer_size_req,
-                     PROT_READ|PROT_WRITE,MAP_SHARED,pmem_fd[i],0);
+    op_buf_ion_info[i].ion_device_fd = omx->alloc_map_ion_memory(
+            buffer_size_req,buffer_alignment_req,
+            &op_buf_ion_info[i].ion_alloc_data,&op_buf_ion_info[i].fd_ion_data,
+            0);
+    pmem_fd[i] = op_buf_ion_info[i].fd_ion_data.fd;
+    if (op_buf_ion_info[i].ion_device_fd < 0) {
+        DEBUG_PRINT_ERROR("\n alloc_map_ion failed in color_convert");
+        return OMX_ErrorInsufficientResources;
+    }
+    pmem_baseaddress[i] = (unsigned char *)mmap(NULL,buffer_size_req,
+            PROT_READ|PROT_WRITE,MAP_SHARED,pmem_fd[i],0);
 
-  if (pmem_baseaddress[i] == MAP_FAILED) {
-    DEBUG_PRINT_ERROR("\n MMAP failed for Size %d",buffer_size_req);
-    close(pmem_fd[i]);
-    omx->free_ion_memory(&op_buf_ion_info[i]);
-    return OMX_ErrorInsufficientResources;
-  }
-  m_heap_ptr[i].video_heap_ptr = new VideoHeap (
-    op_buf_ion_info[i].ion_device_fd,buffer_size_req,
-    pmem_baseaddress[i],op_buf_ion_info[i].ion_alloc_data.handle,pmem_fd[i]);
+    if (pmem_baseaddress[i] == MAP_FAILED) {
+        DEBUG_PRINT_ERROR("\n MMAP failed for Size %d",buffer_size_req);
+        close(pmem_fd[i]);
+        omx->free_ion_memory(&op_buf_ion_info[i]);
+        return OMX_ErrorInsufficientResources;
+    }
+    m_heap_ptr[i].video_heap_ptr = new VideoHeap (
+            op_buf_ion_info[i].ion_device_fd,buffer_size_req,
+            pmem_baseaddress[i],op_buf_ion_info[i].ion_alloc_data.handle,pmem_fd[i]);
 #endif
-  m_pmem_info_client[i].pmem_fd = (OMX_U32)m_heap_ptr[i].video_heap_ptr.get();
-  m_pmem_info_client[i].offset = 0;
-  m_platform_entry_client[i].entry = (void *)&m_pmem_info_client[i];
-  m_platform_entry_client[i].type = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
-  m_platform_list_client[i].nEntries = 1;
-  m_platform_list_client[i].entryList = &m_platform_entry_client[i];
-  m_out_mem_ptr_client[i].pOutputPortPrivate = NULL;
-  m_out_mem_ptr_client[i].nAllocLen = buffer_size_req;
-  m_out_mem_ptr_client[i].nFilledLen = 0;
-  m_out_mem_ptr_client[i].nFlags = 0;
-  m_out_mem_ptr_client[i].nOutputPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
-  m_out_mem_ptr_client[i].nSize = sizeof(OMX_BUFFERHEADERTYPE);
-  m_out_mem_ptr_client[i].nVersion.nVersion = OMX_SPEC_VERSION;
-  m_out_mem_ptr_client[i].pPlatformPrivate = &m_platform_list_client[i];
-  m_out_mem_ptr_client[i].pBuffer = pmem_baseaddress[i];
-  m_out_mem_ptr_client[i].pAppPrivate = appData;
-  *bufferHdr = &m_out_mem_ptr_client[i];
-  DEBUG_PRINT_ERROR("\n IL client buffer header %p", *bufferHdr);
-  allocated_count++;
-  return eRet;
+    m_pmem_info_client[i].pmem_fd = (OMX_U32)m_heap_ptr[i].video_heap_ptr.get();
+    m_pmem_info_client[i].offset = 0;
+    m_platform_entry_client[i].entry = (void *)&m_pmem_info_client[i];
+    m_platform_entry_client[i].type = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
+    m_platform_list_client[i].nEntries = 1;
+    m_platform_list_client[i].entryList = &m_platform_entry_client[i];
+    m_out_mem_ptr_client[i].pOutputPortPrivate = NULL;
+    m_out_mem_ptr_client[i].nAllocLen = buffer_size_req;
+    m_out_mem_ptr_client[i].nFilledLen = 0;
+    m_out_mem_ptr_client[i].nFlags = 0;
+    m_out_mem_ptr_client[i].nOutputPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
+    m_out_mem_ptr_client[i].nSize = sizeof(OMX_BUFFERHEADERTYPE);
+    m_out_mem_ptr_client[i].nVersion.nVersion = OMX_SPEC_VERSION;
+    m_out_mem_ptr_client[i].pPlatformPrivate = &m_platform_list_client[i];
+    m_out_mem_ptr_client[i].pBuffer = pmem_baseaddress[i];
+    m_out_mem_ptr_client[i].pAppPrivate = appData;
+    *bufferHdr = &m_out_mem_ptr_client[i];
+    DEBUG_PRINT_ERROR("\n IL client buffer header %p", *bufferHdr);
+    allocated_count++;
+    return eRet;
 }
 
 bool omx_vdec::is_component_secure()
 {
-  return secure_mode;
+    return secure_mode;
 }
 
 bool omx_vdec::allocate_color_convert_buf::get_color_format(OMX_COLOR_FORMATTYPE &dest_color_format)
 {
-  bool status = true;
-  if (!enabled) {
-    if (omx->drv_ctx.output_format == VDEC_YUV_FORMAT_NV12)
-     dest_color_format =  (OMX_COLOR_FORMATTYPE)
-            QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m;
-    else
-      status = false;
-  } else {
-    if (ColorFormat != OMX_COLOR_FormatYUV420Planar) {
-      status = false;
-    } else
-      dest_color_format = OMX_COLOR_FormatYUV420Planar;
-  }
-  return status;
+    bool status = true;
+    if (!enabled) {
+        if (omx->drv_ctx.output_format == VDEC_YUV_FORMAT_NV12)
+            dest_color_format =  (OMX_COLOR_FORMATTYPE)
+                QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m;
+        else
+            status = false;
+    } else {
+        if (ColorFormat != OMX_COLOR_FormatYUV420Planar) {
+            status = false;
+        } else
+            dest_color_format = OMX_COLOR_FormatYUV420Planar;
+    }
+    return status;
 }
diff --git a/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp b/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp
index e04cb0c..1cc9e01 100644
--- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp
+++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp
@@ -121,9 +121,9 @@
 #define MEM_HEAP_ID ION_CP_MM_HEAP_ID
 
 #ifdef _ANDROID_
-    extern "C"{
-        #include<utils/Log.h>
-    }
+extern "C" {
+#include<utils/Log.h>
+}
 #endif//_ANDROID_
 
 #define SZ_4K 0x1000
@@ -136,163 +136,158 @@
 #define DEFAULT_EXTRADATA (OMX_INTERLACE_EXTRADATA)
 void* async_message_thread (void *input)
 {
-  OMX_BUFFERHEADERTYPE *buffer;
-  struct v4l2_plane plane[VIDEO_MAX_PLANES];
-  struct pollfd pfd;
-  struct v4l2_buffer v4l2_buf;
-  memset((void *)&v4l2_buf,0,sizeof(v4l2_buf));
-  struct v4l2_event dqevent;
-  omx_vdec *omx = reinterpret_cast<omx_vdec*>(input);
-  pfd.events = POLLIN | POLLRDNORM | POLLOUT | POLLWRNORM | POLLRDBAND | POLLPRI;
-  pfd.fd = omx->drv_ctx.video_driver_fd;
-  int error_code = 0,rc=0,bytes_read = 0,bytes_written = 0;
-  DEBUG_PRINT_HIGH("omx_vdec: Async thread start\n");
-  prctl(PR_SET_NAME, (unsigned long)"VideoDecCallBackThread", 0, 0, 0);
-  while (1)
-  {
-    rc = poll(&pfd, 1, POLL_TIMEOUT);
-    if (!rc) {
-      DEBUG_PRINT_ERROR("Poll timedout\n");
-      break;
-    } else if (rc < 0) {
-      DEBUG_PRINT_ERROR("Error while polling: %d\n", rc);
-      break;
+    OMX_BUFFERHEADERTYPE *buffer;
+    struct v4l2_plane plane[VIDEO_MAX_PLANES];
+    struct pollfd pfd;
+    struct v4l2_buffer v4l2_buf;
+    memset((void *)&v4l2_buf,0,sizeof(v4l2_buf));
+    struct v4l2_event dqevent;
+    omx_vdec *omx = reinterpret_cast<omx_vdec*>(input);
+    pfd.events = POLLIN | POLLRDNORM | POLLOUT | POLLWRNORM | POLLRDBAND | POLLPRI;
+    pfd.fd = omx->drv_ctx.video_driver_fd;
+    int error_code = 0,rc=0,bytes_read = 0,bytes_written = 0;
+    DEBUG_PRINT_HIGH("omx_vdec: Async thread start\n");
+    prctl(PR_SET_NAME, (unsigned long)"VideoDecCallBackThread", 0, 0, 0);
+    while (1) {
+        rc = poll(&pfd, 1, POLL_TIMEOUT);
+        if (!rc) {
+            DEBUG_PRINT_ERROR("Poll timedout\n");
+            break;
+        } else if (rc < 0) {
+            DEBUG_PRINT_ERROR("Error while polling: %d\n", rc);
+            break;
+        }
+        if ((pfd.revents & POLLIN) || (pfd.revents & POLLRDNORM)) {
+            struct vdec_msginfo vdec_msg;
+            v4l2_buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+            v4l2_buf.memory = V4L2_MEMORY_USERPTR;
+            v4l2_buf.length = omx->drv_ctx.num_planes;
+            v4l2_buf.m.planes = plane;
+            while (!ioctl(pfd.fd, VIDIOC_DQBUF, &v4l2_buf)) {
+                vdec_msg.msgcode=VDEC_MSG_RESP_OUTPUT_BUFFER_DONE;
+                vdec_msg.status_code=VDEC_S_SUCCESS;
+                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;
+                if (vdec_msg.msgdata.output_frame.len) {
+                    vdec_msg.msgdata.output_frame.framesize.left = plane[0].reserved[2];
+                    vdec_msg.msgdata.output_frame.framesize.top = plane[0].reserved[3];
+                    vdec_msg.msgdata.output_frame.framesize.right = plane[0].reserved[4];
+                    vdec_msg.msgdata.output_frame.framesize.bottom = plane[0].reserved[5];
+                }
+                if (omx->async_message_process(input,&vdec_msg) < 0) {
+                    DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
+                    break;
+                }
+            }
+        }
+        if ((pfd.revents & POLLOUT) || (pfd.revents & POLLWRNORM)) {
+            struct vdec_msginfo vdec_msg;
+            v4l2_buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+            v4l2_buf.memory = V4L2_MEMORY_USERPTR;
+            v4l2_buf.length = 1;
+            v4l2_buf.m.planes = plane;
+            while (!ioctl(pfd.fd, VIDIOC_DQBUF, &v4l2_buf)) {
+                vdec_msg.msgcode=VDEC_MSG_RESP_INPUT_BUFFER_DONE;
+                vdec_msg.status_code=VDEC_S_SUCCESS;
+                vdec_msg.msgdata.input_frame_clientdata=(void*)&v4l2_buf;
+                if (omx->async_message_process(input,&vdec_msg) < 0) {
+                    DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
+                    break;
+                }
+            }
+        }
+        if (pfd.revents & POLLPRI) {
+            rc = ioctl(pfd.fd, VIDIOC_DQEVENT, &dqevent);
+            if (dqevent.type == V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_CHANGED_INSUFFICIENT ) {
+                struct vdec_msginfo vdec_msg;
+                vdec_msg.msgcode=VDEC_MSG_EVT_CONFIG_CHANGED;
+                vdec_msg.status_code=VDEC_S_SUCCESS;
+                DEBUG_PRINT_HIGH("\n VIDC Port Reconfig recieved insufficient\n");
+                if (omx->async_message_process(input,&vdec_msg) < 0) {
+                    DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
+                    break;
+                }
+            } else if (dqevent.type == V4L2_EVENT_MSM_VIDC_FLUSH_DONE) {
+                struct vdec_msginfo vdec_msg;
+                vdec_msg.msgcode=VDEC_MSG_RESP_FLUSH_INPUT_DONE;
+                vdec_msg.status_code=VDEC_S_SUCCESS;
+                DEBUG_PRINT_HIGH("VIDC Input Flush Done Recieved \n");
+                if (omx->async_message_process(input,&vdec_msg) < 0) {
+                    DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
+                    break;
+                }
+                vdec_msg.msgcode=VDEC_MSG_RESP_FLUSH_OUTPUT_DONE;
+                vdec_msg.status_code=VDEC_S_SUCCESS;
+                DEBUG_PRINT_HIGH("VIDC Output Flush Done Recieved \n");
+                if (omx->async_message_process(input,&vdec_msg) < 0) {
+                    DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
+                    break;
+                }
+            } else if (dqevent.type == V4L2_EVENT_MSM_VIDC_CLOSE_DONE) {
+                DEBUG_PRINT_HIGH("\n VIDC Close Done Recieved and async_message_thread Exited \n");
+                break;
+            } else if (dqevent.type == V4L2_EVENT_MSM_VIDC_SYS_ERROR) {
+                struct vdec_msginfo vdec_msg;
+                vdec_msg.msgcode=VDEC_MSG_EVT_HW_ERROR;
+                vdec_msg.status_code=VDEC_S_SUCCESS;
+                DEBUG_PRINT_HIGH("\n SYS Error Recieved \n");
+                if (omx->async_message_process(input,&vdec_msg) < 0) {
+                    DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
+                    break;
+                }
+            } else {
+                DEBUG_PRINT_HIGH("\n VIDC Some Event recieved \n");
+                continue;
+            }
+        }
     }
-    if ((pfd.revents & POLLIN) || (pfd.revents & POLLRDNORM)) {
-      struct vdec_msginfo vdec_msg;
-      v4l2_buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-      v4l2_buf.memory = V4L2_MEMORY_USERPTR;
-      v4l2_buf.length = omx->drv_ctx.num_planes;
-      v4l2_buf.m.planes = plane;
-      while(!ioctl(pfd.fd, VIDIOC_DQBUF, &v4l2_buf)) {
-        vdec_msg.msgcode=VDEC_MSG_RESP_OUTPUT_BUFFER_DONE;
-        vdec_msg.status_code=VDEC_S_SUCCESS;
-        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;
-        if (vdec_msg.msgdata.output_frame.len) {
-            vdec_msg.msgdata.output_frame.framesize.left = plane[0].reserved[2];
-            vdec_msg.msgdata.output_frame.framesize.top = plane[0].reserved[3];
-            vdec_msg.msgdata.output_frame.framesize.right = plane[0].reserved[4];
-            vdec_msg.msgdata.output_frame.framesize.bottom = plane[0].reserved[5];
-        }
-        if (omx->async_message_process(input,&vdec_msg) < 0) {
-          DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
-          break;
-        }
-      }
-    }
-    if((pfd.revents & POLLOUT) || (pfd.revents & POLLWRNORM)) {
-      struct vdec_msginfo vdec_msg;
-      v4l2_buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-      v4l2_buf.memory = V4L2_MEMORY_USERPTR;
-      v4l2_buf.length = 1;
-      v4l2_buf.m.planes = plane;
-      while(!ioctl(pfd.fd, VIDIOC_DQBUF, &v4l2_buf)) {
-        vdec_msg.msgcode=VDEC_MSG_RESP_INPUT_BUFFER_DONE;
-        vdec_msg.status_code=VDEC_S_SUCCESS;
-        vdec_msg.msgdata.input_frame_clientdata=(void*)&v4l2_buf;
-        if (omx->async_message_process(input,&vdec_msg) < 0) {
-          DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
-          break;
-        }
-      }
-    }
-    if (pfd.revents & POLLPRI){
-      rc = ioctl(pfd.fd, VIDIOC_DQEVENT, &dqevent);
-      if(dqevent.type == V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_CHANGED_INSUFFICIENT ) {
-        struct vdec_msginfo vdec_msg;
-        vdec_msg.msgcode=VDEC_MSG_EVT_CONFIG_CHANGED;
-        vdec_msg.status_code=VDEC_S_SUCCESS;
-        DEBUG_PRINT_HIGH("\n VIDC Port Reconfig recieved insufficient\n");
-        if (omx->async_message_process(input,&vdec_msg) < 0) {
-          DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
-          break;
-        }
-      } else if (dqevent.type == V4L2_EVENT_MSM_VIDC_FLUSH_DONE) {
-        struct vdec_msginfo vdec_msg;
-        vdec_msg.msgcode=VDEC_MSG_RESP_FLUSH_INPUT_DONE;
-        vdec_msg.status_code=VDEC_S_SUCCESS;
-        DEBUG_PRINT_HIGH("VIDC Input Flush Done Recieved \n");
-        if (omx->async_message_process(input,&vdec_msg) < 0) {
-          DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
-          break;
-        }
-        vdec_msg.msgcode=VDEC_MSG_RESP_FLUSH_OUTPUT_DONE;
-        vdec_msg.status_code=VDEC_S_SUCCESS;
-        DEBUG_PRINT_HIGH("VIDC Output Flush Done Recieved \n");
-        if (omx->async_message_process(input,&vdec_msg) < 0) {
-          DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
-          break;
-        }
-      } else if (dqevent.type == V4L2_EVENT_MSM_VIDC_CLOSE_DONE) {
-        DEBUG_PRINT_HIGH("\n VIDC Close Done Recieved and async_message_thread Exited \n");
-        break;
-      } else if(dqevent.type == V4L2_EVENT_MSM_VIDC_SYS_ERROR) {
-        struct vdec_msginfo vdec_msg;
-        vdec_msg.msgcode=VDEC_MSG_EVT_HW_ERROR;
-        vdec_msg.status_code=VDEC_S_SUCCESS;
-        DEBUG_PRINT_HIGH("\n SYS Error Recieved \n");
-        if (omx->async_message_process(input,&vdec_msg) < 0) {
-          DEBUG_PRINT_HIGH("\n async_message_thread Exited  \n");
-          break;
-        }
-      } else {
-        DEBUG_PRINT_HIGH("\n VIDC Some Event recieved \n");
-        continue;
-      }
-    }
-  }
-  DEBUG_PRINT_HIGH("omx_vdec: Async thread stop\n");
-  return NULL;
+    DEBUG_PRINT_HIGH("omx_vdec: Async thread stop\n");
+    return NULL;
 }
 
 void* message_thread(void *input)
 {
-  omx_vdec* omx = reinterpret_cast<omx_vdec*>(input);
-  unsigned char id;
-  int n;
+    omx_vdec* omx = reinterpret_cast<omx_vdec*>(input);
+    unsigned char id;
+    int n;
 
-  DEBUG_PRINT_HIGH("omx_vdec: message thread start\n");
-  prctl(PR_SET_NAME, (unsigned long)"VideoDecMsgThread", 0, 0, 0);
-  while (1)
-  {
+    DEBUG_PRINT_HIGH("omx_vdec: message thread start\n");
+    prctl(PR_SET_NAME, (unsigned long)"VideoDecMsgThread", 0, 0, 0);
+    while (1) {
 
-    n = read(omx->m_pipe_in, &id, 1);
+        n = read(omx->m_pipe_in, &id, 1);
 
-    if(0 == n)
-    {
-      break;
+        if (0 == n) {
+            break;
+        }
+
+        if (1 == n) {
+            omx->process_event_cb(omx, id);
+        }
+        if ((n < 0) && (errno != EINTR)) {
+            DEBUG_PRINT_LOW("\nERROR: read from pipe failed, ret %d errno %d", n, errno);
+            break;
+        }
     }
-
-    if (1 == n)
-    {
-        omx->process_event_cb(omx, id);
-    }
-    if ((n < 0) && (errno != EINTR))
-    {
-      DEBUG_PRINT_LOW("\nERROR: read from pipe failed, ret %d errno %d", n, errno);
-      break;
-    }
-  }
-  DEBUG_PRINT_HIGH("omx_vdec: message thread stop\n");
-  return 0;
+    DEBUG_PRINT_HIGH("omx_vdec: message thread stop\n");
+    return 0;
 }
 
 void post_message(omx_vdec *omx, unsigned char id)
 {
-      int ret_value;
-      DEBUG_PRINT_LOW("omx_vdec: post_message %d pipe out%d\n", id,omx->m_pipe_out);
-      ret_value = write(omx->m_pipe_out, &id, 1);
-      DEBUG_PRINT_LOW("post_message to pipe done %d\n",ret_value);
+    int ret_value;
+    DEBUG_PRINT_LOW("omx_vdec: post_message %d pipe out%d\n", id,omx->m_pipe_out);
+    ret_value = write(omx->m_pipe_out, &id, 1);
+    DEBUG_PRINT_LOW("post_message to pipe done %d\n",ret_value);
 }
 
 // omx_cmd_queue destructor
 omx_vdec::omx_cmd_queue::~omx_cmd_queue()
 {
-  // Nothing to do
+    // Nothing to do
 }
 
 // omx cmd queue constructor
@@ -304,49 +299,41 @@
 // omx cmd queue insert
 bool omx_vdec::omx_cmd_queue::insert_entry(unsigned p1, unsigned p2, unsigned id)
 {
-  bool ret = true;
-  if(m_size < OMX_CORE_CONTROL_CMDQ_SIZE)
-  {
-    m_q[m_write].id       = id;
-    m_q[m_write].param1   = p1;
-    m_q[m_write].param2   = p2;
-    m_write++;
-    m_size ++;
-    if(m_write >= OMX_CORE_CONTROL_CMDQ_SIZE)
-    {
-      m_write = 0;
+    bool ret = true;
+    if (m_size < OMX_CORE_CONTROL_CMDQ_SIZE) {
+        m_q[m_write].id       = id;
+        m_q[m_write].param1   = p1;
+        m_q[m_write].param2   = p2;
+        m_write++;
+        m_size ++;
+        if (m_write >= OMX_CORE_CONTROL_CMDQ_SIZE) {
+            m_write = 0;
+        }
+    } else {
+        ret = false;
+        DEBUG_PRINT_ERROR("ERROR: %s()::Command Queue Full\n", __func__);
     }
-  }
-  else
-  {
-    ret = false;
-    DEBUG_PRINT_ERROR("ERROR: %s()::Command Queue Full\n", __func__);
-  }
-  return ret;
+    return ret;
 }
 
 // omx cmd queue pop
 bool omx_vdec::omx_cmd_queue::pop_entry(unsigned *p1, unsigned *p2, unsigned *id)
 {
-  bool ret = true;
-  if (m_size > 0)
-  {
-    *id = m_q[m_read].id;
-    *p1 = m_q[m_read].param1;
-    *p2 = m_q[m_read].param2;
-    // Move the read pointer ahead
-    ++m_read;
-    --m_size;
-    if(m_read >= OMX_CORE_CONTROL_CMDQ_SIZE)
-    {
-      m_read = 0;
+    bool ret = true;
+    if (m_size > 0) {
+        *id = m_q[m_read].id;
+        *p1 = m_q[m_read].param1;
+        *p2 = m_q[m_read].param2;
+        // Move the read pointer ahead
+        ++m_read;
+        --m_size;
+        if (m_read >= OMX_CORE_CONTROL_CMDQ_SIZE) {
+            m_read = 0;
+        }
+    } else {
+        ret = false;
     }
-  }
-  else
-  {
-    ret = false;
-  }
-  return ret;
+    return ret;
 }
 
 // Retrieve the first mesg type in the queue
@@ -358,116 +345,104 @@
 #ifdef _ANDROID_
 omx_vdec::ts_arr_list::ts_arr_list()
 {
-  //initialize timestamps array
-  memset(m_ts_arr_list, 0, ( sizeof(ts_entry) * MAX_NUM_INPUT_OUTPUT_BUFFERS) );
+    //initialize timestamps array
+    memset(m_ts_arr_list, 0, ( sizeof(ts_entry) * MAX_NUM_INPUT_OUTPUT_BUFFERS) );
 }
 omx_vdec::ts_arr_list::~ts_arr_list()
 {
-  //free m_ts_arr_list?
+    //free m_ts_arr_list?
 }
 
 bool omx_vdec::ts_arr_list::insert_ts(OMX_TICKS ts)
 {
-  bool ret = true;
-  bool duplicate_ts = false;
-  int idx = 0;
+    bool ret = true;
+    bool duplicate_ts = false;
+    int idx = 0;
 
-  //insert at the first available empty location
-  for ( ; idx < MAX_NUM_INPUT_OUTPUT_BUFFERS; idx++)
-  {
-    if (!m_ts_arr_list[idx].valid)
-    {
-      //found invalid or empty entry, save timestamp
-      m_ts_arr_list[idx].valid = true;
-      m_ts_arr_list[idx].timestamp = ts;
-      DEBUG_PRINT_LOW("Insert_ts(): Inserting TIMESTAMP (%lld) at idx (%d)",
-                       ts, idx);
-      break;
+    //insert at the first available empty location
+    for ( ; idx < MAX_NUM_INPUT_OUTPUT_BUFFERS; idx++) {
+        if (!m_ts_arr_list[idx].valid) {
+            //found invalid or empty entry, save timestamp
+            m_ts_arr_list[idx].valid = true;
+            m_ts_arr_list[idx].timestamp = ts;
+            DEBUG_PRINT_LOW("Insert_ts(): Inserting TIMESTAMP (%lld) at idx (%d)",
+                    ts, idx);
+            break;
+        }
     }
-  }
 
-  if (idx == MAX_NUM_INPUT_OUTPUT_BUFFERS)
-  {
-    DEBUG_PRINT_LOW("Timestamp array list is FULL. Unsuccessful insert");
-    ret = false;
-  }
-  return ret;
+    if (idx == MAX_NUM_INPUT_OUTPUT_BUFFERS) {
+        DEBUG_PRINT_LOW("Timestamp array list is FULL. Unsuccessful insert");
+        ret = false;
+    }
+    return ret;
 }
 
 bool omx_vdec::ts_arr_list::pop_min_ts(OMX_TICKS &ts)
 {
-  bool ret = true;
-  int min_idx = -1;
-  OMX_TICKS min_ts = 0;
-  int idx = 0;
+    bool ret = true;
+    int min_idx = -1;
+    OMX_TICKS min_ts = 0;
+    int idx = 0;
 
-  for ( ; idx < MAX_NUM_INPUT_OUTPUT_BUFFERS; idx++)
-  {
+    for ( ; idx < MAX_NUM_INPUT_OUTPUT_BUFFERS; idx++) {
 
-    if (m_ts_arr_list[idx].valid)
-    {
-      //found valid entry, save index
-      if (min_idx < 0)
-      {
-        //first valid entry
-        min_ts = m_ts_arr_list[idx].timestamp;
-        min_idx = idx;
-      }
-      else if (m_ts_arr_list[idx].timestamp < min_ts)
-      {
-        min_ts = m_ts_arr_list[idx].timestamp;
-        min_idx = idx;
-      }
+        if (m_ts_arr_list[idx].valid) {
+            //found valid entry, save index
+            if (min_idx < 0) {
+                //first valid entry
+                min_ts = m_ts_arr_list[idx].timestamp;
+                min_idx = idx;
+            } else if (m_ts_arr_list[idx].timestamp < min_ts) {
+                min_ts = m_ts_arr_list[idx].timestamp;
+                min_idx = idx;
+            }
+        }
+
     }
 
-  }
+    if (min_idx < 0) {
+        //no valid entries found
+        DEBUG_PRINT_LOW("Timestamp array list is empty. Unsuccessful pop");
+        ts = 0;
+        ret = false;
+    } else {
+        ts = m_ts_arr_list[min_idx].timestamp;
+        m_ts_arr_list[min_idx].valid = false;
+        DEBUG_PRINT_LOW("Pop_min_ts:Timestamp (%lld), index(%d)",
+                ts, min_idx);
+    }
 
-  if (min_idx < 0)
-  {
-    //no valid entries found
-    DEBUG_PRINT_LOW("Timestamp array list is empty. Unsuccessful pop");
-    ts = 0;
-    ret = false;
-  }
-  else
-  {
-    ts = m_ts_arr_list[min_idx].timestamp;
-    m_ts_arr_list[min_idx].valid = false;
-    DEBUG_PRINT_LOW("Pop_min_ts:Timestamp (%lld), index(%d)",
-                     ts, min_idx);
-  }
-
-  return ret;
+    return ret;
 
 }
 
 
 bool omx_vdec::ts_arr_list::reset_ts_list()
 {
-  bool ret = true;
-  int idx = 0;
+    bool ret = true;
+    int idx = 0;
 
-  DEBUG_PRINT_LOW("reset_ts_list(): Resetting timestamp array list");
-  for ( ; idx < MAX_NUM_INPUT_OUTPUT_BUFFERS; idx++)
-  {
-    m_ts_arr_list[idx].valid = false;
-  }
-  return ret;
+    DEBUG_PRINT_LOW("reset_ts_list(): Resetting timestamp array list");
+    for ( ; idx < MAX_NUM_INPUT_OUTPUT_BUFFERS; idx++) {
+        m_ts_arr_list[idx].valid = false;
+    }
+    return ret;
 }
 #endif
 
 // factory function executed by the core to create instances
 void *get_omx_component_factory_fn(void)
 {
-  return (new omx_vdec);
+    return (new omx_vdec);
 }
 
 #ifdef _ANDROID_
 #ifdef USE_ION
 VideoHeap::VideoHeap(int devicefd, size_t size, void* base,
-                     struct ion_handle *handle, int ionMapfd)
+        struct ion_handle *handle, int ionMapfd)
 {
-//    ionInit(devicefd, base, size, 0 , MEM_DEVICE,handle,ionMapfd);
+    //    ionInit(devicefd, base, size, 0 , MEM_DEVICE,handle,ionMapfd);
 }
 #else
 VideoHeap::VideoHeap(int fd, size_t size, void* base)
@@ -478,859 +453,760 @@
 #endif
 #endif // _ANDROID_
 /* ======================================================================
-FUNCTION
-  omx_vdec::omx_vdec
+   FUNCTION
+   omx_vdec::omx_vdec
 
-DESCRIPTION
-  Constructor
+   DESCRIPTION
+   Constructor
 
-PARAMETERS
-  None
+   PARAMETERS
+   None
 
-RETURN VALUE
-  None.
-========================================================================== */
+   RETURN VALUE
+   None.
+   ========================================================================== */
 omx_vdec::omx_vdec(): m_error_propogated(false),
-	m_state(OMX_StateInvalid),
-	m_app_data(NULL),
-	m_inp_mem_ptr(NULL),
-	m_out_mem_ptr(NULL),
-	m_inp_err_count(0),
-	input_flush_progress (false),
-	output_flush_progress (false),
-	input_use_buffer (false),
-	output_use_buffer (false),
-	ouput_egl_buffers(false),
-	m_use_output_pmem(OMX_FALSE),
-	m_out_mem_region_smi(OMX_FALSE),
-	m_out_pvt_entry_pmem(OMX_FALSE),
-	pending_input_buffers(0),
-	pending_output_buffers(0),
-	m_out_bm_count(0),
-	m_inp_bm_count(0),
-	m_inp_bPopulated(OMX_FALSE),
-	m_out_bPopulated(OMX_FALSE),
-	m_flags(0),
+    m_state(OMX_StateInvalid),
+    m_app_data(NULL),
+    m_inp_mem_ptr(NULL),
+    m_out_mem_ptr(NULL),
+    m_inp_err_count(0),
+    input_flush_progress (false),
+    output_flush_progress (false),
+    input_use_buffer (false),
+    output_use_buffer (false),
+    ouput_egl_buffers(false),
+    m_use_output_pmem(OMX_FALSE),
+    m_out_mem_region_smi(OMX_FALSE),
+    m_out_pvt_entry_pmem(OMX_FALSE),
+    pending_input_buffers(0),
+    pending_output_buffers(0),
+    m_out_bm_count(0),
+    m_inp_bm_count(0),
+    m_inp_bPopulated(OMX_FALSE),
+    m_out_bPopulated(OMX_FALSE),
+    m_flags(0),
 #ifdef _ANDROID_
-	m_heap_ptr(NULL),
+    m_heap_ptr(NULL),
 #endif
-	m_inp_bEnabled(OMX_TRUE),
-	m_out_bEnabled(OMX_TRUE),
-	m_in_alloc_cnt(0),
-	m_platform_list(NULL),
-	m_platform_entry(NULL),
-	m_pmem_info(NULL),
-	arbitrary_bytes (true),
-	psource_frame (NULL),
-	pdest_frame (NULL),
-	m_inp_heap_ptr (NULL),
-	m_phdr_pmem_ptr(NULL),
-	m_heap_inp_bm_count (0),
-	codec_type_parse ((codec_type)0),
-	first_frame_meta (true),
-	frame_count (0),
-	nal_count (0),
-	nal_length(0),
-	look_ahead_nal (false),
-	first_frame(0),
-	first_buffer(NULL),
-	first_frame_size (0),
-	m_device_file_ptr(NULL),
-	m_vc1_profile((vc1_profile_type)0),
-	m_profile(0),
-	h264_last_au_ts(LLONG_MAX),
-	h264_last_au_flags(0),
-	prev_ts(LLONG_MAX),
-	rst_prev_ts(true),
-	frm_int(0),
-	m_disp_hor_size(0),
-	m_disp_vert_size(0),
-	in_reconfig(false),
-	m_display_id(NULL),
-	h264_parser(NULL),
-	client_extradata(0),
-	m_reject_avc_1080p_mp (0),
+    m_inp_bEnabled(OMX_TRUE),
+    m_out_bEnabled(OMX_TRUE),
+    m_in_alloc_cnt(0),
+    m_platform_list(NULL),
+    m_platform_entry(NULL),
+    m_pmem_info(NULL),
+    arbitrary_bytes (true),
+    psource_frame (NULL),
+    pdest_frame (NULL),
+    m_inp_heap_ptr (NULL),
+    m_phdr_pmem_ptr(NULL),
+    m_heap_inp_bm_count (0),
+    codec_type_parse ((codec_type)0),
+    first_frame_meta (true),
+    frame_count (0),
+    nal_count (0),
+    nal_length(0),
+    look_ahead_nal (false),
+    first_frame(0),
+    first_buffer(NULL),
+    first_frame_size (0),
+    m_device_file_ptr(NULL),
+    m_vc1_profile((vc1_profile_type)0),
+    m_profile(0),
+    h264_last_au_ts(LLONG_MAX),
+    h264_last_au_flags(0),
+    prev_ts(LLONG_MAX),
+    rst_prev_ts(true),
+    frm_int(0),
+    m_disp_hor_size(0),
+    m_disp_vert_size(0),
+    in_reconfig(false),
+    m_display_id(NULL),
+    h264_parser(NULL),
+    client_extradata(0),
+    m_reject_avc_1080p_mp (0),
 #ifdef _ANDROID_
-	m_enable_android_native_buffers(OMX_FALSE),
-	m_use_android_native_buffers(OMX_FALSE),
-	iDivXDrmDecrypt(NULL),
+    m_enable_android_native_buffers(OMX_FALSE),
+    m_use_android_native_buffers(OMX_FALSE),
+    iDivXDrmDecrypt(NULL),
 #endif
-	m_desc_buffer_ptr(NULL),
-	secure_mode(false),
-	client_set_fps(false)
+    m_desc_buffer_ptr(NULL),
+    secure_mode(false),
+    client_set_fps(false)
 {
-  /* Assumption is that , to begin with , we have all the frames with decoder */
-  DEBUG_PRINT_HIGH("In OMX vdec Constructor");
+    /* Assumption is that , to begin with , we have all the frames with decoder */
+    DEBUG_PRINT_HIGH("In OMX vdec Constructor");
 #ifdef _ANDROID_
-  char property_value[PROPERTY_VALUE_MAX] = {0};
-  property_get("vidc.dec.debug.perf", property_value, "0");
-  perf_flag = atoi(property_value);
-  if (perf_flag)
-  {
-    DEBUG_PRINT_HIGH("vidc.dec.debug.perf is %d", perf_flag);
-    dec_time.start();
-    proc_frms = latency = 0;
-  }
-  prev_n_filled_len = 0;
-  property_value[0] = '\0';
-  property_get("vidc.dec.debug.ts", property_value, "0");
-  m_debug_timestamp = atoi(property_value);
-  DEBUG_PRINT_HIGH("vidc.dec.debug.ts value is %d",m_debug_timestamp);
-  if (m_debug_timestamp)
-  {
-    time_stamp_dts.set_timestamp_reorder_mode(true);
-    time_stamp_dts.enable_debug_print(true);
-  }
+    char property_value[PROPERTY_VALUE_MAX] = {0};
+    property_get("vidc.dec.debug.perf", property_value, "0");
+    perf_flag = atoi(property_value);
+    if (perf_flag) {
+        DEBUG_PRINT_HIGH("vidc.dec.debug.perf is %d", perf_flag);
+        dec_time.start();
+        proc_frms = latency = 0;
+    }
+    prev_n_filled_len = 0;
+    property_value[0] = '\0';
+    property_get("vidc.dec.debug.ts", property_value, "0");
+    m_debug_timestamp = atoi(property_value);
+    DEBUG_PRINT_HIGH("vidc.dec.debug.ts value is %d",m_debug_timestamp);
+    if (m_debug_timestamp) {
+        time_stamp_dts.set_timestamp_reorder_mode(true);
+        time_stamp_dts.enable_debug_print(true);
+    }
 
-  property_value[0] = '\0';
-  property_get("vidc.dec.debug.concealedmb", property_value, "0");
-  m_debug_concealedmb = atoi(property_value);
-  DEBUG_PRINT_HIGH("vidc.dec.debug.concealedmb value is %d",m_debug_concealedmb);
+    property_value[0] = '\0';
+    property_get("vidc.dec.debug.concealedmb", property_value, "0");
+    m_debug_concealedmb = atoi(property_value);
+    DEBUG_PRINT_HIGH("vidc.dec.debug.concealedmb value is %d",m_debug_concealedmb);
 
-  property_value[0] = '\0';
-  property_get("vidc.dec.profile.check", property_value, "0");
-  m_reject_avc_1080p_mp = atoi(property_value);
-  DEBUG_PRINT_HIGH("vidc.dec.profile.check value is %d",m_reject_avc_1080p_mp);
+    property_value[0] = '\0';
+    property_get("vidc.dec.profile.check", property_value, "0");
+    m_reject_avc_1080p_mp = atoi(property_value);
+    DEBUG_PRINT_HIGH("vidc.dec.profile.check value is %d",m_reject_avc_1080p_mp);
 
 #endif
-  memset(&m_cmp,0,sizeof(m_cmp));
-  memset(&m_cb,0,sizeof(m_cb));
-  memset (&drv_ctx,0,sizeof(drv_ctx));
-  memset (&h264_scratch,0,sizeof (OMX_BUFFERHEADERTYPE));
-  memset (m_hwdevice_name,0,sizeof(m_hwdevice_name));
-  memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
-  m_demux_entries = 0;
-  msg_thread_id = 0;
-  async_thread_id = 0;
-  msg_thread_created = false;
-  async_thread_created = false;
+    memset(&m_cmp,0,sizeof(m_cmp));
+    memset(&m_cb,0,sizeof(m_cb));
+    memset (&drv_ctx,0,sizeof(drv_ctx));
+    memset (&h264_scratch,0,sizeof (OMX_BUFFERHEADERTYPE));
+    memset (m_hwdevice_name,0,sizeof(m_hwdevice_name));
+    memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
+    m_demux_entries = 0;
+    msg_thread_id = 0;
+    async_thread_id = 0;
+    msg_thread_created = false;
+    async_thread_created = false;
 #ifdef _ANDROID_ICS_
-  memset(&native_buffer, 0 ,(sizeof(struct nativebuffer) * MAX_NUM_INPUT_OUTPUT_BUFFERS));
+    memset(&native_buffer, 0 ,(sizeof(struct nativebuffer) * MAX_NUM_INPUT_OUTPUT_BUFFERS));
 #endif
-  memset(&drv_ctx.extradata_info, 0, sizeof(drv_ctx.extradata_info));
-  drv_ctx.timestamp_adjust = false;
-  drv_ctx.video_driver_fd = -1;
-  m_vendor_config.pData = NULL;
-  pthread_mutex_init(&m_lock, NULL);
-  pthread_mutex_init(&c_lock, NULL);
-  sem_init(&m_cmd_lock,0,0);
-  streaming[CAPTURE_PORT] =
-      streaming[OUTPUT_PORT] = false;
+    memset(&drv_ctx.extradata_info, 0, sizeof(drv_ctx.extradata_info));
+    drv_ctx.timestamp_adjust = false;
+    drv_ctx.video_driver_fd = -1;
+    m_vendor_config.pData = NULL;
+    pthread_mutex_init(&m_lock, NULL);
+    pthread_mutex_init(&c_lock, NULL);
+    sem_init(&m_cmd_lock,0,0);
+    streaming[CAPTURE_PORT] =
+        streaming[OUTPUT_PORT] = false;
 #ifdef _ANDROID_
-  char extradata_value[PROPERTY_VALUE_MAX] = {0};
-  property_get("vidc.dec.debug.extradata", extradata_value, "0");
-  m_debug_extradata = atoi(extradata_value);
-  DEBUG_PRINT_HIGH("vidc.dec.debug.extradata value is %d",m_debug_extradata);
+    char extradata_value[PROPERTY_VALUE_MAX] = {0};
+    property_get("vidc.dec.debug.extradata", extradata_value, "0");
+    m_debug_extradata = atoi(extradata_value);
+    DEBUG_PRINT_HIGH("vidc.dec.debug.extradata value is %d",m_debug_extradata);
 #endif
-  m_fill_output_msg = OMX_COMPONENT_GENERATE_FTB;
-  client_buffers.set_vdec_client(this);
+    m_fill_output_msg = OMX_COMPONENT_GENERATE_FTB;
+    client_buffers.set_vdec_client(this);
 }
 
 static const int event_type[] = {
-	V4L2_EVENT_MSM_VIDC_FLUSH_DONE,
-	V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_CHANGED_SUFFICIENT,
-	V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_CHANGED_INSUFFICIENT,
-	V4L2_EVENT_MSM_VIDC_CLOSE_DONE,
-	V4L2_EVENT_MSM_VIDC_SYS_ERROR
+    V4L2_EVENT_MSM_VIDC_FLUSH_DONE,
+    V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_CHANGED_SUFFICIENT,
+    V4L2_EVENT_MSM_VIDC_PORT_SETTINGS_CHANGED_INSUFFICIENT,
+    V4L2_EVENT_MSM_VIDC_CLOSE_DONE,
+    V4L2_EVENT_MSM_VIDC_SYS_ERROR
 };
 
 static OMX_ERRORTYPE subscribe_to_events(int fd)
 {
-	OMX_ERRORTYPE eRet = OMX_ErrorNone;
-	struct v4l2_event_subscription sub;
-	int array_sz = sizeof(event_type)/sizeof(int);
-	int i,rc;
-	if (fd < 0) {
-		printf("Invalid input: %d\n", fd);
-		return OMX_ErrorBadParameter;
-	}
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    struct v4l2_event_subscription sub;
+    int array_sz = sizeof(event_type)/sizeof(int);
+    int i,rc;
+    if (fd < 0) {
+        printf("Invalid input: %d\n", fd);
+        return OMX_ErrorBadParameter;
+    }
 
-	for (i = 0; i < array_sz; ++i) {
-		memset(&sub, 0, sizeof(sub));
-		sub.type = event_type[i];
-		rc = ioctl(fd, VIDIOC_SUBSCRIBE_EVENT, &sub);
-		if (rc) {
-			printf("Failed to subscribe event: 0x%x\n", sub.type);
-			break;
-		}
-	}
-	if (i < array_sz) {
-		for (--i; i >=0 ; i--) {
-			memset(&sub, 0, sizeof(sub));
-			sub.type = event_type[i];
-			rc = ioctl(fd, VIDIOC_UNSUBSCRIBE_EVENT, &sub);
-			if (rc)
-				printf("Failed to unsubscribe event: 0x%x\n", sub.type);
-		}
-		eRet = OMX_ErrorNotImplemented;
-	}
-	return eRet;
+    for (i = 0; i < array_sz; ++i) {
+        memset(&sub, 0, sizeof(sub));
+        sub.type = event_type[i];
+        rc = ioctl(fd, VIDIOC_SUBSCRIBE_EVENT, &sub);
+        if (rc) {
+            printf("Failed to subscribe event: 0x%x\n", sub.type);
+            break;
+        }
+    }
+    if (i < array_sz) {
+        for (--i; i >=0 ; i--) {
+            memset(&sub, 0, sizeof(sub));
+            sub.type = event_type[i];
+            rc = ioctl(fd, VIDIOC_UNSUBSCRIBE_EVENT, &sub);
+            if (rc)
+                printf("Failed to unsubscribe event: 0x%x\n", sub.type);
+        }
+        eRet = OMX_ErrorNotImplemented;
+    }
+    return eRet;
 }
 
 
 static OMX_ERRORTYPE unsubscribe_to_events(int fd)
 {
-	OMX_ERRORTYPE eRet = OMX_ErrorNone;
-	struct v4l2_event_subscription sub;
-	int array_sz = sizeof(event_type)/sizeof(int);
-	int i,rc;
-	if (fd < 0) {
-		printf("Invalid input: %d\n", fd);
-		return OMX_ErrorBadParameter;
-	}
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    struct v4l2_event_subscription sub;
+    int array_sz = sizeof(event_type)/sizeof(int);
+    int i,rc;
+    if (fd < 0) {
+        printf("Invalid input: %d\n", fd);
+        return OMX_ErrorBadParameter;
+    }
 
-	for (i = 0; i < array_sz; ++i) {
-		memset(&sub, 0, sizeof(sub));
-		sub.type = event_type[i];
-		rc = ioctl(fd, VIDIOC_UNSUBSCRIBE_EVENT, &sub);
-		if (rc) {
-			printf("Failed to unsubscribe event: 0x%x\n", sub.type);
-			break;
-		}
-	}
-	return eRet;
+    for (i = 0; i < array_sz; ++i) {
+        memset(&sub, 0, sizeof(sub));
+        sub.type = event_type[i];
+        rc = ioctl(fd, VIDIOC_UNSUBSCRIBE_EVENT, &sub);
+        if (rc) {
+            printf("Failed to unsubscribe event: 0x%x\n", sub.type);
+            break;
+        }
+    }
+    return eRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::~omx_vdec
+   FUNCTION
+   omx_vdec::~omx_vdec
 
-DESCRIPTION
-  Destructor
+   DESCRIPTION
+   Destructor
 
-PARAMETERS
-  None
+   PARAMETERS
+   None
 
-RETURN VALUE
-  None.
-========================================================================== */
+   RETURN VALUE
+   None.
+   ========================================================================== */
 omx_vdec::~omx_vdec()
 {
-  m_pmem_info = NULL;
-  struct v4l2_decoder_cmd dec;
-  DEBUG_PRINT_HIGH("In OMX vdec Destructor");
-  if(m_pipe_in) close(m_pipe_in);
-  if(m_pipe_out) close(m_pipe_out);
-  m_pipe_in = -1;
-  m_pipe_out = -1;
-  DEBUG_PRINT_HIGH("Waiting on OMX Msg Thread exit");
-  if (msg_thread_created)
-    pthread_join(msg_thread_id,NULL);
-  DEBUG_PRINT_HIGH("Waiting on OMX Async Thread exit");
-  dec.cmd = V4L2_DEC_CMD_STOP;
-  if (drv_ctx.video_driver_fd >=0 ) {
-    if (ioctl(drv_ctx.video_driver_fd, VIDIOC_DECODER_CMD, &dec))
-      DEBUG_PRINT_ERROR("\n STOP Command failed\n");
-  }
-  if (async_thread_created)
-    pthread_join(async_thread_id,NULL);
-  unsubscribe_to_events(drv_ctx.video_driver_fd);
-  close(drv_ctx.video_driver_fd);
-  pthread_mutex_destroy(&m_lock);
-  pthread_mutex_destroy(&c_lock);
-  sem_destroy(&m_cmd_lock);
-  if (perf_flag)
-  {
-    DEBUG_PRINT_HIGH("--> TOTAL PROCESSING TIME");
-    dec_time.end();
-  }
-  DEBUG_PRINT_HIGH("Exit OMX vdec Destructor");
+    m_pmem_info = NULL;
+    struct v4l2_decoder_cmd dec;
+    DEBUG_PRINT_HIGH("In OMX vdec Destructor");
+    if (m_pipe_in) close(m_pipe_in);
+    if (m_pipe_out) close(m_pipe_out);
+    m_pipe_in = -1;
+    m_pipe_out = -1;
+    DEBUG_PRINT_HIGH("Waiting on OMX Msg Thread exit");
+    if (msg_thread_created)
+        pthread_join(msg_thread_id,NULL);
+    DEBUG_PRINT_HIGH("Waiting on OMX Async Thread exit");
+    dec.cmd = V4L2_DEC_CMD_STOP;
+    if (drv_ctx.video_driver_fd >=0 ) {
+        if (ioctl(drv_ctx.video_driver_fd, VIDIOC_DECODER_CMD, &dec))
+            DEBUG_PRINT_ERROR("\n STOP Command failed\n");
+    }
+    if (async_thread_created)
+        pthread_join(async_thread_id,NULL);
+    unsubscribe_to_events(drv_ctx.video_driver_fd);
+    close(drv_ctx.video_driver_fd);
+    pthread_mutex_destroy(&m_lock);
+    pthread_mutex_destroy(&c_lock);
+    sem_destroy(&m_cmd_lock);
+    if (perf_flag) {
+        DEBUG_PRINT_HIGH("--> TOTAL PROCESSING TIME");
+        dec_time.end();
+    }
+    DEBUG_PRINT_HIGH("Exit OMX vdec Destructor");
 }
 
-int release_buffers(omx_vdec* obj, enum vdec_buffer buffer_type) {
-	struct v4l2_requestbuffers bufreq;
-	int rc = 0;
-	if (buffer_type == VDEC_BUFFER_TYPE_OUTPUT){
-		bufreq.memory = V4L2_MEMORY_USERPTR;
-		bufreq.count = 0;
-		bufreq.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		rc = ioctl(obj->drv_ctx.video_driver_fd,VIDIOC_REQBUFS, &bufreq);
-	}
-	return rc;
+int release_buffers(omx_vdec* obj, enum vdec_buffer buffer_type)
+{
+    struct v4l2_requestbuffers bufreq;
+    int rc = 0;
+    if (buffer_type == VDEC_BUFFER_TYPE_OUTPUT) {
+        bufreq.memory = V4L2_MEMORY_USERPTR;
+        bufreq.count = 0;
+        bufreq.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+        rc = ioctl(obj->drv_ctx.video_driver_fd,VIDIOC_REQBUFS, &bufreq);
+    }
+    return rc;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::OMXCntrlProcessMsgCb
+   FUNCTION
+   omx_vdec::OMXCntrlProcessMsgCb
 
-DESCRIPTION
-  IL Client callbacks are generated through this routine. The decoder
-  provides the thread context for this routine.
+   DESCRIPTION
+   IL Client callbacks are generated through this routine. The decoder
+   provides the thread context for this routine.
 
-PARAMETERS
-  ctxt -- Context information related to the self.
-  id   -- Event identifier. This could be any of the following:
-          1. Command completion event
-          2. Buffer done callback event
-          3. Frame done callback event
+   PARAMETERS
+   ctxt -- Context information related to the self.
+   id   -- Event identifier. This could be any of the following:
+   1. Command completion event
+   2. Buffer done callback event
+   3. Frame done callback event
 
-RETURN VALUE
-  None.
+   RETURN VALUE
+   None.
 
-========================================================================== */
+   ========================================================================== */
 void omx_vdec::process_event_cb(void *ctxt, unsigned char id)
 {
-  signed p1; // Parameter - 1
-  signed p2; // Parameter - 2
-  unsigned ident;
-  unsigned qsize=0; // qsize
-  omx_vdec *pThis = (omx_vdec *) ctxt;
+    signed p1; // Parameter - 1
+    signed p2; // Parameter - 2
+    unsigned ident;
+    unsigned qsize=0; // qsize
+    omx_vdec *pThis = (omx_vdec *) ctxt;
 
-  if(!pThis)
-  {
-    DEBUG_PRINT_ERROR("ERROR: %s()::Context is incorrect, bailing out\n",
-        __func__);
-    return;
-  }
-
-  // Protect the shared queue data structure
-  do
-  {
-    /*Read the message id's from the queue*/
-    pthread_mutex_lock(&pThis->m_lock);
-    qsize = pThis->m_cmd_q.m_size;
-    if(qsize)
-    {
-      pThis->m_cmd_q.pop_entry((unsigned *)&p1, (unsigned *)&p2, &ident);
+    if (!pThis) {
+        DEBUG_PRINT_ERROR("ERROR: %s()::Context is incorrect, bailing out\n",
+                __func__);
+        return;
     }
 
-    if (qsize == 0 && pThis->m_state != OMX_StatePause)
-    {
-      qsize = pThis->m_ftb_q.m_size;
-      if (qsize)
-      {
-        pThis->m_ftb_q.pop_entry((unsigned *)&p1, (unsigned *)&p2, &ident);
-      }
-    }
-
-    if (qsize == 0 && pThis->m_state != OMX_StatePause)
-    {
-      qsize = pThis->m_etb_q.m_size;
-      if (qsize)
-      {
-        pThis->m_etb_q.pop_entry((unsigned *)&p1, (unsigned *)&p2, &ident);
-      }
-    }
-    pthread_mutex_unlock(&pThis->m_lock);
-
-    /*process message if we have one*/
-    if(qsize > 0)
-    {
-      id = ident;
-      switch (id)
-      {
-        case OMX_COMPONENT_GENERATE_EVENT:
-          if (pThis->m_cb.EventHandler)
-          {
-            switch (p1)
-            {
-              case OMX_CommandStateSet:
-                pThis->m_state = (OMX_STATETYPE) p2;
-                DEBUG_PRINT_HIGH("\n OMX_CommandStateSet complete, m_state = %d",
-                    pThis->m_state);
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                      OMX_EventCmdComplete, p1, p2, NULL);
-                break;
-
-              case OMX_EventError:
-                if(p2 == OMX_StateInvalid)
-                {
-                    DEBUG_PRINT_ERROR("\n OMX_EventError: p2 is OMX_StateInvalid");
-                    pThis->m_state = (OMX_STATETYPE) p2;
-                    pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                               OMX_EventError, OMX_ErrorInvalidState, p2, NULL);
-                }
-                else if (p2 == OMX_ErrorHardware)
-                {
-                   pThis->omx_report_error();
-                }
-                else
-		  {		
-                    pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                      OMX_EventError, p2, (OMX_U32)NULL, NULL );
-                }
-                break;
-
-              case OMX_CommandPortDisable:
-                DEBUG_PRINT_HIGH("\n OMX_CommandPortDisable complete for port [%d]", p2);
-                if (BITMASK_PRESENT(&pThis->m_flags,
-                    OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING))
-                {
-                  BITMASK_SET(&pThis->m_flags, OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED);
-                  break;
-                }
-                if (p2 == OMX_CORE_OUTPUT_PORT_INDEX)
-                {
-				  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-				  pThis->stream_off(OMX_CORE_OUTPUT_PORT_INDEX);
-				  if(release_buffers(pThis, VDEC_BUFFER_TYPE_OUTPUT))
-					  DEBUG_PRINT_HIGH("Failed to release output buffers\n");
-				  OMX_ERRORTYPE eRet1 = pThis->get_buffer_req(&pThis->drv_ctx.op_buf);
-				  pThis->in_reconfig = false;
-                  if(eRet !=  OMX_ErrorNone)
-                  {
-                      DEBUG_PRINT_ERROR("set_buffer_req failed eRet = %d",eRet);
-                      pThis->omx_report_error();
-                      break;
-                  }
-                }
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                      OMX_EventCmdComplete, p1, p2, NULL );
-                break;
-              case OMX_CommandPortEnable:
-                DEBUG_PRINT_HIGH("\n OMX_CommandPortEnable complete for port [%d]", p2);
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,\
-                                      OMX_EventCmdComplete, p1, p2, NULL );
-                break;
-
-              default:
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                         OMX_EventCmdComplete, p1, p2, NULL );
-                break;
-
-            }
-          }
-          else
-          {
-            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL\n", __func__);
-          }
-          break;
-        case OMX_COMPONENT_GENERATE_ETB_ARBITRARY:
-          if (pThis->empty_this_buffer_proxy_arbitrary((OMX_HANDLETYPE)p1,\
-              (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone)
-          {
-            DEBUG_PRINT_ERROR("\n empty_this_buffer_proxy_arbitrary failure");
-            pThis->omx_report_error ();
-          }
-      break;
-        case OMX_COMPONENT_GENERATE_ETB:
-          if (pThis->empty_this_buffer_proxy((OMX_HANDLETYPE)p1,\
-              (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone)
-          {
-            DEBUG_PRINT_ERROR("\n empty_this_buffer_proxy failure");
-            pThis->omx_report_error ();
-          }
-         break;
-
-        case OMX_COMPONENT_GENERATE_FTB:
-          if ( pThis->fill_this_buffer_proxy((OMX_HANDLETYPE)p1,\
-               (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone)
-          {
-             DEBUG_PRINT_ERROR("\n fill_this_buffer_proxy failure");
-             pThis->omx_report_error ();
-          }
-        break;
-
-        case OMX_COMPONENT_GENERATE_COMMAND:
-          pThis->send_command_proxy(&pThis->m_cmp,(OMX_COMMANDTYPE)p1,\
-                                    (OMX_U32)p2,(OMX_PTR)NULL);
-          break;
-
-        case OMX_COMPONENT_GENERATE_EBD:
-
-          if (p2 != VDEC_S_SUCCESS && p2 != VDEC_S_INPUT_BITSTREAM_ERR)
-          {
-            DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_EBD failure");
-            pThis->omx_report_error ();
-          }
-          else
-          {
-            if (p2 == VDEC_S_INPUT_BITSTREAM_ERR && p1)
-            {
-              pThis->m_inp_err_count++;
-              pThis->time_stamp_dts.remove_time_stamp(
-              ((OMX_BUFFERHEADERTYPE *)p1)->nTimeStamp,
-              (pThis->drv_ctx.interlace != VDEC_InterlaceFrameProgressive)
-                ?true:false);
-            }
-            else
-            {
-              pThis->m_inp_err_count = 0;
-            }
-            if ( pThis->empty_buffer_done(&pThis->m_cmp,
-                 (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone)
-            {
-               DEBUG_PRINT_ERROR("\n empty_buffer_done failure");
-               pThis->omx_report_error ();
-            }
-            if(pThis->m_inp_err_count >= MAX_INPUT_ERROR)
-            {
-               DEBUG_PRINT_ERROR("\n Input bitstream error for consecutive %d frames.", MAX_INPUT_ERROR);
-               pThis->omx_report_error ();
-            }
-          }
-          break;
-        case OMX_COMPONENT_GENERATE_INFO_FIELD_DROPPED:
-          {
-            int64_t *timestamp = (int64_t *)p1;
-            if (p1)
-            {
-              pThis->time_stamp_dts.remove_time_stamp(*timestamp,
-              (pThis->drv_ctx.interlace != VDEC_InterlaceFrameProgressive)
-              ?true:false);
-              free(timestamp);
-            }
-          }
-          break;
-        case OMX_COMPONENT_GENERATE_FBD:
-          if (p2 != VDEC_S_SUCCESS)
-          {
-            DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_FBD failure");
-            pThis->omx_report_error ();
-          }
-          else if ( pThis->fill_buffer_done(&pThis->m_cmp,
-                  (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone )
-          {
-            DEBUG_PRINT_ERROR("\n fill_buffer_done failure");
-            pThis->omx_report_error ();
-          }
-          break;
-
-        case OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH:
-          DEBUG_PRINT_HIGH("\n Driver flush i/p Port complete");
-          if (!pThis->input_flush_progress)
-          {
-            DEBUG_PRINT_HIGH("\n WARNING: Unexpected flush from driver");
-          }
-          else
-          {
-            pThis->execute_input_flush();
-            if (pThis->m_cb.EventHandler)
-            {
-              if (p2 != VDEC_S_SUCCESS)
-              {
-                DEBUG_PRINT_ERROR("\nOMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH failure");
-                pThis->omx_report_error ();
-              }
-              else
-              {
-                /*Check if we need generate event for Flush done*/
-                if(BITMASK_PRESENT(&pThis->m_flags,
-                                   OMX_COMPONENT_INPUT_FLUSH_PENDING))
-                {
-                  BITMASK_CLEAR (&pThis->m_flags,OMX_COMPONENT_INPUT_FLUSH_PENDING);
-                  DEBUG_PRINT_LOW("\n Input Flush completed - Notify Client");
-                  pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                           OMX_EventCmdComplete,OMX_CommandFlush,
-                                           OMX_CORE_INPUT_PORT_INDEX,NULL );
-                }
-                if (BITMASK_PRESENT(&pThis->m_flags,
-                                         OMX_COMPONENT_IDLE_PENDING))
-                {
-                   if(pThis->stream_off(OMX_CORE_INPUT_PORT_INDEX)) {
-                           DEBUG_PRINT_ERROR("\n Failed to call streamoff on OUTPUT Port \n");
-						   pThis->omx_report_error ();
-				   } else {
-					   pThis->streaming[OUTPUT_PORT] = false;
-				   }
-                  if (!pThis->output_flush_progress)
-                  {
-                     DEBUG_PRINT_LOW("\n Input flush done hence issue stop");
-					 pThis->post_event ((unsigned int)NULL, VDEC_S_SUCCESS,\
-							 OMX_COMPONENT_GENERATE_STOP_DONE);
-                  }
-                }
-              }
-            }
-            else
-            {
-              DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-            }
-          }
-          break;
-
-        case OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH:
-          DEBUG_PRINT_HIGH("\n Driver flush o/p Port complete");
-          if (!pThis->output_flush_progress)
-          {
-            DEBUG_PRINT_HIGH("\n WARNING: Unexpected flush from driver");
-          }
-          else
-          {
-            pThis->execute_output_flush();
-            if (pThis->m_cb.EventHandler)
-            {
-              if (p2 != VDEC_S_SUCCESS)
-              {
-                DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH failed");
-                pThis->omx_report_error ();
-              }
-              else
-              {
-                /*Check if we need generate event for Flush done*/
-                if(BITMASK_PRESENT(&pThis->m_flags,
-                                   OMX_COMPONENT_OUTPUT_FLUSH_PENDING))
-                {
-                  DEBUG_PRINT_LOW("\n Notify Output Flush done");
-                  BITMASK_CLEAR (&pThis->m_flags,OMX_COMPONENT_OUTPUT_FLUSH_PENDING);
-                  pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                           OMX_EventCmdComplete,OMX_CommandFlush,
-                                           OMX_CORE_OUTPUT_PORT_INDEX,NULL );
-                }
-                if(BITMASK_PRESENT(&pThis->m_flags,
-                       OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING))
-                {
-                  DEBUG_PRINT_LOW("\n Internal flush complete");
-                  BITMASK_CLEAR (&pThis->m_flags,
-                                 OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING);
-                  if (BITMASK_PRESENT(&pThis->m_flags,
-                          OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED))
-                  {
-                    pThis->post_event(OMX_CommandPortDisable,
-                               OMX_CORE_OUTPUT_PORT_INDEX,
-                               OMX_COMPONENT_GENERATE_EVENT);
-                    BITMASK_CLEAR (&pThis->m_flags,
-                                   OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED);
-
-                  }
-                }
-
-                if (BITMASK_PRESENT(&pThis->m_flags ,OMX_COMPONENT_IDLE_PENDING))
-                {
-                   if(pThis->stream_off(OMX_CORE_OUTPUT_PORT_INDEX)) {
-                           DEBUG_PRINT_ERROR("\n Failed to call streamoff on CAPTURE Port \n");
-						   pThis->omx_report_error ();
-						   break;
-                   }
-				   pThis->streaming[CAPTURE_PORT] = false;
-                  if (!pThis->input_flush_progress)
-                  {
-                    DEBUG_PRINT_LOW("\n Output flush done hence issue stop");
-					 pThis->post_event ((unsigned int)NULL, VDEC_S_SUCCESS,\
-							 OMX_COMPONENT_GENERATE_STOP_DONE);
-                  }
-                }
-              }
-            }
-            else
-            {
-              DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-            }
-          }
-          break;
-
-        case OMX_COMPONENT_GENERATE_START_DONE:
-          DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_START_DONE");
-
-          if (pThis->m_cb.EventHandler)
-          {
-            if (p2 != VDEC_S_SUCCESS)
-            {
-              DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_START_DONE Failure");
-              pThis->omx_report_error ();
-            }
-            else
-            {
-              DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_START_DONE Success");
-              if(BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_EXECUTE_PENDING))
-              {
-                DEBUG_PRINT_LOW("\n Move to executing");
-                // Send the callback now
-                BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_EXECUTE_PENDING);
-                pThis->m_state = OMX_StateExecuting;
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                       OMX_EventCmdComplete,OMX_CommandStateSet,
-                                       OMX_StateExecuting, NULL);
-              }
-              else if (BITMASK_PRESENT(&pThis->m_flags,
-                                       OMX_COMPONENT_PAUSE_PENDING))
-              {
-                if (/*ioctl (pThis->drv_ctx.video_driver_fd,
-                           VDEC_IOCTL_CMD_PAUSE,NULL ) < */0)
-                {
-                  DEBUG_PRINT_ERROR("\n VDEC_IOCTL_CMD_PAUSE failed");
-                  pThis->omx_report_error ();
-                }
-              }
-            }
-          }
-          else
-          {
-            DEBUG_PRINT_LOW("\n Event Handler callback is NULL");
-          }
-          break;
-
-        case OMX_COMPONENT_GENERATE_PAUSE_DONE:
-          DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_PAUSE_DONE");
-          if (pThis->m_cb.EventHandler)
-          {
-            if (p2 != VDEC_S_SUCCESS)
-            {
-              DEBUG_PRINT_ERROR("OMX_COMPONENT_GENERATE_PAUSE_DONE ret failed");
-              pThis->omx_report_error ();
-            }
-            else
-            {
-              pThis->complete_pending_buffer_done_cbs();
-              if(BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_PAUSE_PENDING))
-              {
-                DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_PAUSE_DONE nofity");
-                //Send the callback now
-                BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_PAUSE_PENDING);
-                pThis->m_state = OMX_StatePause;
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                       OMX_EventCmdComplete,OMX_CommandStateSet,
-                                       OMX_StatePause, NULL);
-              }
-            }
-          }
-          else
-          {
-            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-          }
-
-          break;
-
-        case OMX_COMPONENT_GENERATE_RESUME_DONE:
-          DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_RESUME_DONE");
-          if (pThis->m_cb.EventHandler)
-          {
-            if (p2 != VDEC_S_SUCCESS)
-            {
-              DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_RESUME_DONE failed");
-              pThis->omx_report_error ();
-            }
-            else
-            {
-              if(BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_EXECUTE_PENDING))
-              {
-                DEBUG_PRINT_LOW("\n Moving the decoder to execute state");
-                // Send the callback now
-                BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_EXECUTE_PENDING);
-                pThis->m_state = OMX_StateExecuting;
-                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                       OMX_EventCmdComplete,OMX_CommandStateSet,
-                                       OMX_StateExecuting,NULL);
-              }
-            }
-          }
-          else
-          {
-            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-          }
-
-          break;
-
-        case OMX_COMPONENT_GENERATE_STOP_DONE:
-          DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_STOP_DONE");
-          if (pThis->m_cb.EventHandler)
-          {
-            if (p2 != VDEC_S_SUCCESS)
-            {
-              DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_STOP_DONE ret failed");
-              pThis->omx_report_error ();
-            }
-            else
-            {
-              pThis->complete_pending_buffer_done_cbs();
-              if(BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_IDLE_PENDING))
-              {
-                DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_STOP_DONE Success");
-                // Send the callback now
-                BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_IDLE_PENDING);
-                pThis->m_state = OMX_StateIdle;
-                DEBUG_PRINT_LOW("\n Move to Idle State");
-                pThis->m_cb.EventHandler(&pThis->m_cmp,pThis->m_app_data,
-                                         OMX_EventCmdComplete,OMX_CommandStateSet,
-                                         OMX_StateIdle,NULL);
-              }
-            }
-          }
-          else
-          {
-            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-          }
-
-          break;
-
-        case OMX_COMPONENT_GENERATE_PORT_RECONFIG:
-          DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_PORT_RECONFIG");
-
-          if (p2 == OMX_IndexParamPortDefinition) {
-            pThis->in_reconfig = true;
-          }
-          if (pThis->m_cb.EventHandler) {
-            pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                OMX_EventPortSettingsChanged, p1, p2, NULL );
-          } else {
-            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-          }
-
-          if (pThis->drv_ctx.interlace != VDEC_InterlaceFrameProgressive)
-          {
-            OMX_INTERLACETYPE format = (OMX_INTERLACETYPE)-1;
-            OMX_EVENTTYPE event = (OMX_EVENTTYPE)OMX_EventIndexsettingChanged;
-            if (pThis->drv_ctx.interlace == VDEC_InterlaceInterleaveFrameTopFieldFirst)
-                format = OMX_InterlaceInterleaveFrameTopFieldFirst;
-            else if (pThis->drv_ctx.interlace == VDEC_InterlaceInterleaveFrameBottomFieldFirst)
-                format = OMX_InterlaceInterleaveFrameBottomFieldFirst;
-            else //unsupported interlace format; raise a error
-                event = OMX_EventError;
-            if (pThis->m_cb.EventHandler) {
-              pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                  event, format, 0, NULL );
-            } else {
-              DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-            }
-          }
-        break;
-
-        case OMX_COMPONENT_GENERATE_EOS_DONE:
-          DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_EOS_DONE");
-          if (pThis->m_cb.EventHandler) {
-            pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data, OMX_EventBufferFlag,
-                            OMX_CORE_OUTPUT_PORT_INDEX, OMX_BUFFERFLAG_EOS, NULL );
-          } else {
-            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-          }
-          pThis->prev_ts = LLONG_MAX;
-          pThis->rst_prev_ts = true;
-          break;
-
-        case OMX_COMPONENT_GENERATE_HARDWARE_ERROR:
-          DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_HARDWARE_ERROR");
-          pThis->omx_report_error ();
-          break;
-
-        case OMX_COMPONENT_GENERATE_UNSUPPORTED_SETTING:
-          DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_UNSUPPORTED_SETTING\n");
-          pThis->omx_report_unsupported_setting();
-          break;
-
-        case OMX_COMPONENT_GENERATE_INFO_PORT_RECONFIG:
-        {
-          DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_INFO_PORT_RECONFIG");
-          if (pThis->m_cb.EventHandler) {
-            pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                (OMX_EVENTTYPE)OMX_EventIndexsettingChanged, OMX_CORE_OUTPUT_PORT_INDEX, 0, NULL );
-          } else {
-            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
-          }
+    // Protect the shared queue data structure
+    do {
+        /*Read the message id's from the queue*/
+        pthread_mutex_lock(&pThis->m_lock);
+        qsize = pThis->m_cmd_q.m_size;
+        if (qsize) {
+            pThis->m_cmd_q.pop_entry((unsigned *)&p1, (unsigned *)&p2, &ident);
         }
-        default:
-          break;
+
+        if (qsize == 0 && pThis->m_state != OMX_StatePause) {
+            qsize = pThis->m_ftb_q.m_size;
+            if (qsize) {
+                pThis->m_ftb_q.pop_entry((unsigned *)&p1, (unsigned *)&p2, &ident);
+            }
         }
-      }
-    pthread_mutex_lock(&pThis->m_lock);
-    qsize = pThis->m_cmd_q.m_size;
-    if (pThis->m_state != OMX_StatePause)
-        qsize += (pThis->m_ftb_q.m_size + pThis->m_etb_q.m_size);
-    pthread_mutex_unlock(&pThis->m_lock);
-  }
-  while(qsize>0);
+
+        if (qsize == 0 && pThis->m_state != OMX_StatePause) {
+            qsize = pThis->m_etb_q.m_size;
+            if (qsize) {
+                pThis->m_etb_q.pop_entry((unsigned *)&p1, (unsigned *)&p2, &ident);
+            }
+        }
+        pthread_mutex_unlock(&pThis->m_lock);
+
+        /*process message if we have one*/
+        if (qsize > 0) {
+            id = ident;
+            switch (id) {
+                case OMX_COMPONENT_GENERATE_EVENT:
+                    if (pThis->m_cb.EventHandler) {
+                        switch (p1) {
+                            case OMX_CommandStateSet:
+                                pThis->m_state = (OMX_STATETYPE) p2;
+                                DEBUG_PRINT_HIGH("\n OMX_CommandStateSet complete, m_state = %d",
+                                        pThis->m_state);
+                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                        OMX_EventCmdComplete, p1, p2, NULL);
+                                break;
+
+                            case OMX_EventError:
+                                if (p2 == OMX_StateInvalid) {
+                                    DEBUG_PRINT_ERROR("\n OMX_EventError: p2 is OMX_StateInvalid");
+                                    pThis->m_state = (OMX_STATETYPE) p2;
+                                    pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                            OMX_EventError, OMX_ErrorInvalidState, p2, NULL);
+                                } else if (p2 == OMX_ErrorHardware) {
+                                    pThis->omx_report_error();
+                                } else {
+                                    pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                            OMX_EventError, p2, (OMX_U32)NULL, NULL );
+                                }
+                                break;
+
+                            case OMX_CommandPortDisable:
+                                DEBUG_PRINT_HIGH("\n OMX_CommandPortDisable complete for port [%d]", p2);
+                                if (BITMASK_PRESENT(&pThis->m_flags,
+                                            OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING)) {
+                                    BITMASK_SET(&pThis->m_flags, OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED);
+                                    break;
+                                }
+                                if (p2 == OMX_CORE_OUTPUT_PORT_INDEX) {
+                                    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+                                    pThis->stream_off(OMX_CORE_OUTPUT_PORT_INDEX);
+                                    if (release_buffers(pThis, VDEC_BUFFER_TYPE_OUTPUT))
+                                        DEBUG_PRINT_HIGH("Failed to release output buffers\n");
+                                    OMX_ERRORTYPE eRet1 = pThis->get_buffer_req(&pThis->drv_ctx.op_buf);
+                                    pThis->in_reconfig = false;
+                                    if (eRet !=  OMX_ErrorNone) {
+                                        DEBUG_PRINT_ERROR("set_buffer_req failed eRet = %d",eRet);
+                                        pThis->omx_report_error();
+                                        break;
+                                    }
+                                }
+                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                        OMX_EventCmdComplete, p1, p2, NULL );
+                                break;
+                            case OMX_CommandPortEnable:
+                                DEBUG_PRINT_HIGH("\n OMX_CommandPortEnable complete for port [%d]", p2);
+                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,\
+                                        OMX_EventCmdComplete, p1, p2, NULL );
+                                break;
+
+                            default:
+                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                        OMX_EventCmdComplete, p1, p2, NULL );
+                                break;
+
+                        }
+                    } else {
+                        DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL\n", __func__);
+                    }
+                    break;
+                case OMX_COMPONENT_GENERATE_ETB_ARBITRARY:
+                    if (pThis->empty_this_buffer_proxy_arbitrary((OMX_HANDLETYPE)p1,\
+                                (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone) {
+                        DEBUG_PRINT_ERROR("\n empty_this_buffer_proxy_arbitrary failure");
+                        pThis->omx_report_error ();
+                    }
+                    break;
+                case OMX_COMPONENT_GENERATE_ETB:
+                    if (pThis->empty_this_buffer_proxy((OMX_HANDLETYPE)p1,\
+                                (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone) {
+                        DEBUG_PRINT_ERROR("\n empty_this_buffer_proxy failure");
+                        pThis->omx_report_error ();
+                    }
+                    break;
+
+                case OMX_COMPONENT_GENERATE_FTB:
+                    if ( pThis->fill_this_buffer_proxy((OMX_HANDLETYPE)p1,\
+                                (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone) {
+                        DEBUG_PRINT_ERROR("\n fill_this_buffer_proxy failure");
+                        pThis->omx_report_error ();
+                    }
+                    break;
+
+                case OMX_COMPONENT_GENERATE_COMMAND:
+                    pThis->send_command_proxy(&pThis->m_cmp,(OMX_COMMANDTYPE)p1,\
+                            (OMX_U32)p2,(OMX_PTR)NULL);
+                    break;
+
+                case OMX_COMPONENT_GENERATE_EBD:
+
+                    if (p2 != VDEC_S_SUCCESS && p2 != VDEC_S_INPUT_BITSTREAM_ERR) {
+                        DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_EBD failure");
+                        pThis->omx_report_error ();
+                    } else {
+                        if (p2 == VDEC_S_INPUT_BITSTREAM_ERR && p1) {
+                            pThis->m_inp_err_count++;
+                            pThis->time_stamp_dts.remove_time_stamp(
+                                    ((OMX_BUFFERHEADERTYPE *)p1)->nTimeStamp,
+                                    (pThis->drv_ctx.interlace != VDEC_InterlaceFrameProgressive)
+                                    ?true:false);
+                        } else {
+                            pThis->m_inp_err_count = 0;
+                        }
+                        if ( pThis->empty_buffer_done(&pThis->m_cmp,
+                                    (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone) {
+                            DEBUG_PRINT_ERROR("\n empty_buffer_done failure");
+                            pThis->omx_report_error ();
+                        }
+                        if (pThis->m_inp_err_count >= MAX_INPUT_ERROR) {
+                            DEBUG_PRINT_ERROR("\n Input bitstream error for consecutive %d frames.", MAX_INPUT_ERROR);
+                            pThis->omx_report_error ();
+                        }
+                    }
+                    break;
+                case OMX_COMPONENT_GENERATE_INFO_FIELD_DROPPED: {
+                                            int64_t *timestamp = (int64_t *)p1;
+                                            if (p1) {
+                                                pThis->time_stamp_dts.remove_time_stamp(*timestamp,
+                                                        (pThis->drv_ctx.interlace != VDEC_InterlaceFrameProgressive)
+                                                        ?true:false);
+                                                free(timestamp);
+                                            }
+                                        }
+                                        break;
+                case OMX_COMPONENT_GENERATE_FBD:
+                                        if (p2 != VDEC_S_SUCCESS) {
+                                            DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_FBD failure");
+                                            pThis->omx_report_error ();
+                                        } else if ( pThis->fill_buffer_done(&pThis->m_cmp,
+                                                    (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone ) {
+                                            DEBUG_PRINT_ERROR("\n fill_buffer_done failure");
+                                            pThis->omx_report_error ();
+                                        }
+                                        break;
+
+                case OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH:
+                                        DEBUG_PRINT_HIGH("\n Driver flush i/p Port complete");
+                                        if (!pThis->input_flush_progress) {
+                                            DEBUG_PRINT_HIGH("\n WARNING: Unexpected flush from driver");
+                                        } else {
+                                            pThis->execute_input_flush();
+                                            if (pThis->m_cb.EventHandler) {
+                                                if (p2 != VDEC_S_SUCCESS) {
+                                                    DEBUG_PRINT_ERROR("\nOMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH failure");
+                                                    pThis->omx_report_error ();
+                                                } else {
+                                                    /*Check if we need generate event for Flush done*/
+                                                    if (BITMASK_PRESENT(&pThis->m_flags,
+                                                                OMX_COMPONENT_INPUT_FLUSH_PENDING)) {
+                                                        BITMASK_CLEAR (&pThis->m_flags,OMX_COMPONENT_INPUT_FLUSH_PENDING);
+                                                        DEBUG_PRINT_LOW("\n Input Flush completed - Notify Client");
+                                                        pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                                                OMX_EventCmdComplete,OMX_CommandFlush,
+                                                                OMX_CORE_INPUT_PORT_INDEX,NULL );
+                                                    }
+                                                    if (BITMASK_PRESENT(&pThis->m_flags,
+                                                                OMX_COMPONENT_IDLE_PENDING)) {
+                                                        if (pThis->stream_off(OMX_CORE_INPUT_PORT_INDEX)) {
+                                                            DEBUG_PRINT_ERROR("\n Failed to call streamoff on OUTPUT Port \n");
+                                                            pThis->omx_report_error ();
+                                                        } else {
+                                                            pThis->streaming[OUTPUT_PORT] = false;
+                                                        }
+                                                        if (!pThis->output_flush_progress) {
+                                                            DEBUG_PRINT_LOW("\n Input flush done hence issue stop");
+                                                            pThis->post_event ((unsigned int)NULL, VDEC_S_SUCCESS,\
+                                                                    OMX_COMPONENT_GENERATE_STOP_DONE);
+                                                        }
+                                                    }
+                                                }
+                                            } else {
+                                                DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                                            }
+                                        }
+                                        break;
+
+                case OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH:
+                                        DEBUG_PRINT_HIGH("\n Driver flush o/p Port complete");
+                                        if (!pThis->output_flush_progress) {
+                                            DEBUG_PRINT_HIGH("\n WARNING: Unexpected flush from driver");
+                                        } else {
+                                            pThis->execute_output_flush();
+                                            if (pThis->m_cb.EventHandler) {
+                                                if (p2 != VDEC_S_SUCCESS) {
+                                                    DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH failed");
+                                                    pThis->omx_report_error ();
+                                                } else {
+                                                    /*Check if we need generate event for Flush done*/
+                                                    if (BITMASK_PRESENT(&pThis->m_flags,
+                                                                OMX_COMPONENT_OUTPUT_FLUSH_PENDING)) {
+                                                        DEBUG_PRINT_LOW("\n Notify Output Flush done");
+                                                        BITMASK_CLEAR (&pThis->m_flags,OMX_COMPONENT_OUTPUT_FLUSH_PENDING);
+                                                        pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                                                OMX_EventCmdComplete,OMX_CommandFlush,
+                                                                OMX_CORE_OUTPUT_PORT_INDEX,NULL );
+                                                    }
+                                                    if (BITMASK_PRESENT(&pThis->m_flags,
+                                                                OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING)) {
+                                                        DEBUG_PRINT_LOW("\n Internal flush complete");
+                                                        BITMASK_CLEAR (&pThis->m_flags,
+                                                                OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING);
+                                                        if (BITMASK_PRESENT(&pThis->m_flags,
+                                                                    OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED)) {
+                                                            pThis->post_event(OMX_CommandPortDisable,
+                                                                    OMX_CORE_OUTPUT_PORT_INDEX,
+                                                                    OMX_COMPONENT_GENERATE_EVENT);
+                                                            BITMASK_CLEAR (&pThis->m_flags,
+                                                                    OMX_COMPONENT_DISABLE_OUTPUT_DEFERRED);
+
+                                                        }
+                                                    }
+
+                                                    if (BITMASK_PRESENT(&pThis->m_flags ,OMX_COMPONENT_IDLE_PENDING)) {
+                                                        if (pThis->stream_off(OMX_CORE_OUTPUT_PORT_INDEX)) {
+                                                            DEBUG_PRINT_ERROR("\n Failed to call streamoff on CAPTURE Port \n");
+                                                            pThis->omx_report_error ();
+                                                            break;
+                                                        }
+                                                        pThis->streaming[CAPTURE_PORT] = false;
+                                                        if (!pThis->input_flush_progress) {
+                                                            DEBUG_PRINT_LOW("\n Output flush done hence issue stop");
+                                                            pThis->post_event ((unsigned int)NULL, VDEC_S_SUCCESS,\
+                                                                    OMX_COMPONENT_GENERATE_STOP_DONE);
+                                                        }
+                                                    }
+                                                }
+                                            } else {
+                                                DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                                            }
+                                        }
+                                        break;
+
+                case OMX_COMPONENT_GENERATE_START_DONE:
+                                        DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_START_DONE");
+
+                                        if (pThis->m_cb.EventHandler) {
+                                            if (p2 != VDEC_S_SUCCESS) {
+                                                DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_START_DONE Failure");
+                                                pThis->omx_report_error ();
+                                            } else {
+                                                DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_START_DONE Success");
+                                                if (BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_EXECUTE_PENDING)) {
+                                                    DEBUG_PRINT_LOW("\n Move to executing");
+                                                    // Send the callback now
+                                                    BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_EXECUTE_PENDING);
+                                                    pThis->m_state = OMX_StateExecuting;
+                                                    pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                                            OMX_EventCmdComplete,OMX_CommandStateSet,
+                                                            OMX_StateExecuting, NULL);
+                                                } else if (BITMASK_PRESENT(&pThis->m_flags,
+                                                            OMX_COMPONENT_PAUSE_PENDING)) {
+                                                    if (/*ioctl (pThis->drv_ctx.video_driver_fd,
+                                                          VDEC_IOCTL_CMD_PAUSE,NULL ) < */0) {
+                                                        DEBUG_PRINT_ERROR("\n VDEC_IOCTL_CMD_PAUSE failed");
+                                                        pThis->omx_report_error ();
+                                                    }
+                                                }
+                                            }
+                                        } else {
+                                            DEBUG_PRINT_LOW("\n Event Handler callback is NULL");
+                                        }
+                                        break;
+
+                case OMX_COMPONENT_GENERATE_PAUSE_DONE:
+                                        DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_PAUSE_DONE");
+                                        if (pThis->m_cb.EventHandler) {
+                                            if (p2 != VDEC_S_SUCCESS) {
+                                                DEBUG_PRINT_ERROR("OMX_COMPONENT_GENERATE_PAUSE_DONE ret failed");
+                                                pThis->omx_report_error ();
+                                            } else {
+                                                pThis->complete_pending_buffer_done_cbs();
+                                                if (BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_PAUSE_PENDING)) {
+                                                    DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_PAUSE_DONE nofity");
+                                                    //Send the callback now
+                                                    BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_PAUSE_PENDING);
+                                                    pThis->m_state = OMX_StatePause;
+                                                    pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                                            OMX_EventCmdComplete,OMX_CommandStateSet,
+                                                            OMX_StatePause, NULL);
+                                                }
+                                            }
+                                        } else {
+                                            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                                        }
+
+                                        break;
+
+                case OMX_COMPONENT_GENERATE_RESUME_DONE:
+                                        DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_RESUME_DONE");
+                                        if (pThis->m_cb.EventHandler) {
+                                            if (p2 != VDEC_S_SUCCESS) {
+                                                DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_RESUME_DONE failed");
+                                                pThis->omx_report_error ();
+                                            } else {
+                                                if (BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_EXECUTE_PENDING)) {
+                                                    DEBUG_PRINT_LOW("\n Moving the decoder to execute state");
+                                                    // Send the callback now
+                                                    BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_EXECUTE_PENDING);
+                                                    pThis->m_state = OMX_StateExecuting;
+                                                    pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                                            OMX_EventCmdComplete,OMX_CommandStateSet,
+                                                            OMX_StateExecuting,NULL);
+                                                }
+                                            }
+                                        } else {
+                                            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                                        }
+
+                                        break;
+
+                case OMX_COMPONENT_GENERATE_STOP_DONE:
+                                        DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_STOP_DONE");
+                                        if (pThis->m_cb.EventHandler) {
+                                            if (p2 != VDEC_S_SUCCESS) {
+                                                DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_STOP_DONE ret failed");
+                                                pThis->omx_report_error ();
+                                            } else {
+                                                pThis->complete_pending_buffer_done_cbs();
+                                                if (BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_IDLE_PENDING)) {
+                                                    DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_STOP_DONE Success");
+                                                    // Send the callback now
+                                                    BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_IDLE_PENDING);
+                                                    pThis->m_state = OMX_StateIdle;
+                                                    DEBUG_PRINT_LOW("\n Move to Idle State");
+                                                    pThis->m_cb.EventHandler(&pThis->m_cmp,pThis->m_app_data,
+                                                            OMX_EventCmdComplete,OMX_CommandStateSet,
+                                                            OMX_StateIdle,NULL);
+                                                }
+                                            }
+                                        } else {
+                                            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                                        }
+
+                                        break;
+
+                case OMX_COMPONENT_GENERATE_PORT_RECONFIG:
+                                        DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_PORT_RECONFIG");
+
+                                        if (p2 == OMX_IndexParamPortDefinition) {
+                                            pThis->in_reconfig = true;
+                                        }
+                                        if (pThis->m_cb.EventHandler) {
+                                            pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                                    OMX_EventPortSettingsChanged, p1, p2, NULL );
+                                        } else {
+                                            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                                        }
+
+                                        if (pThis->drv_ctx.interlace != VDEC_InterlaceFrameProgressive) {
+                                            OMX_INTERLACETYPE format = (OMX_INTERLACETYPE)-1;
+                                            OMX_EVENTTYPE event = (OMX_EVENTTYPE)OMX_EventIndexsettingChanged;
+                                            if (pThis->drv_ctx.interlace == VDEC_InterlaceInterleaveFrameTopFieldFirst)
+                                                format = OMX_InterlaceInterleaveFrameTopFieldFirst;
+                                            else if (pThis->drv_ctx.interlace == VDEC_InterlaceInterleaveFrameBottomFieldFirst)
+                                                format = OMX_InterlaceInterleaveFrameBottomFieldFirst;
+                                            else //unsupported interlace format; raise a error
+                                                event = OMX_EventError;
+                                            if (pThis->m_cb.EventHandler) {
+                                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                                        event, format, 0, NULL );
+                                            } else {
+                                                DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                                            }
+                                        }
+                                        break;
+
+                case OMX_COMPONENT_GENERATE_EOS_DONE:
+                                        DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_EOS_DONE");
+                                        if (pThis->m_cb.EventHandler) {
+                                            pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data, OMX_EventBufferFlag,
+                                                    OMX_CORE_OUTPUT_PORT_INDEX, OMX_BUFFERFLAG_EOS, NULL );
+                                        } else {
+                                            DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                                        }
+                                        pThis->prev_ts = LLONG_MAX;
+                                        pThis->rst_prev_ts = true;
+                                        break;
+
+                case OMX_COMPONENT_GENERATE_HARDWARE_ERROR:
+                                        DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_HARDWARE_ERROR");
+                                        pThis->omx_report_error ();
+                                        break;
+
+                case OMX_COMPONENT_GENERATE_UNSUPPORTED_SETTING:
+                                        DEBUG_PRINT_ERROR("\n OMX_COMPONENT_GENERATE_UNSUPPORTED_SETTING\n");
+                                        pThis->omx_report_unsupported_setting();
+                                        break;
+
+                case OMX_COMPONENT_GENERATE_INFO_PORT_RECONFIG: {
+                                            DEBUG_PRINT_HIGH("\n Rxd OMX_COMPONENT_GENERATE_INFO_PORT_RECONFIG");
+                                            if (pThis->m_cb.EventHandler) {
+                                                pThis->m_cb.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                                        (OMX_EVENTTYPE)OMX_EventIndexsettingChanged, OMX_CORE_OUTPUT_PORT_INDEX, 0, NULL );
+                                            } else {
+                                                DEBUG_PRINT_ERROR("ERROR: %s()::EventHandler is NULL", __func__);
+                                            }
+                                        }
+                default:
+                                        break;
+            }
+        }
+        pthread_mutex_lock(&pThis->m_lock);
+        qsize = pThis->m_cmd_q.m_size;
+        if (pThis->m_state != OMX_StatePause)
+            qsize += (pThis->m_ftb_q.m_size + pThis->m_etb_q.m_size);
+        pthread_mutex_unlock(&pThis->m_lock);
+    } while (qsize>0);
 
 }
 
 int omx_vdec::update_resolution(int width, int height, int stride, int scan_lines)
 {
-	int format_changed = 0;
-	if ((height != drv_ctx.video_resolution.frame_height) ||
-		(width != drv_ctx.video_resolution.frame_width)) {
-		DEBUG_PRINT_HIGH("NOTE_CIF: W/H %d (%d), %d (%d)\n",
-			width, drv_ctx.video_resolution.frame_width,
-			height,drv_ctx.video_resolution.frame_height);
-		format_changed = 1;
-	}
+    int format_changed = 0;
+    if ((height != drv_ctx.video_resolution.frame_height) ||
+            (width != drv_ctx.video_resolution.frame_width)) {
+        DEBUG_PRINT_HIGH("NOTE_CIF: W/H %d (%d), %d (%d)\n",
+                width, drv_ctx.video_resolution.frame_width,
+                height,drv_ctx.video_resolution.frame_height);
+        format_changed = 1;
+    }
     drv_ctx.video_resolution.frame_height = height;
     drv_ctx.video_resolution.frame_width = width;
     drv_ctx.video_resolution.scan_lines = scan_lines;
@@ -1339,325 +1215,299 @@
     rectangle.nTop = 0;
     rectangle.nWidth = drv_ctx.video_resolution.frame_width;
     rectangle.nHeight = drv_ctx.video_resolution.frame_height;
-	return format_changed;
+    return format_changed;
 }
 
 OMX_ERRORTYPE omx_vdec::is_video_session_supported()
 {
-  if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",
-              OMX_MAX_STRINGNAME_SIZE) &&
-     (m_profile == HIGH_PROFILE || m_profile == MAIN_PROFILE)) {
-    m_decoder_capability.max_width = 1280;
-    m_decoder_capability.max_height = 720;
-    DEBUG_PRINT_HIGH("Set max_width=1280 & max_height=720 for H264 HP/MP");
-  }
+    if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",
+                OMX_MAX_STRINGNAME_SIZE) &&
+            (m_profile == HIGH_PROFILE || m_profile == MAIN_PROFILE)) {
+        m_decoder_capability.max_width = 1280;
+        m_decoder_capability.max_height = 720;
+        DEBUG_PRINT_HIGH("Set max_width=1280 & max_height=720 for H264 HP/MP");
+    }
 
-  if ((drv_ctx.video_resolution.frame_width *
-       drv_ctx.video_resolution.frame_height >
-       m_decoder_capability.max_width *
-       m_decoder_capability.max_height) ||
-       (drv_ctx.video_resolution.frame_width*
-       drv_ctx.video_resolution.frame_height <
-       m_decoder_capability.min_width *
-       m_decoder_capability.min_height))
-  {
-      DEBUG_PRINT_ERROR(
-         "Unsupported WxH = (%u)x(%u) supported range is min(%u)x(%u) - max(%u)x(%u)",
-          drv_ctx.video_resolution.frame_width,
-          drv_ctx.video_resolution.frame_height,
-          m_decoder_capability.min_width,
-          m_decoder_capability.min_height,
-          m_decoder_capability.max_width,
-          m_decoder_capability.max_height);
-      return OMX_ErrorUnsupportedSetting;
-  }
-  DEBUG_PRINT_HIGH("\n video session supported\n");
-  return OMX_ErrorNone;
+    if ((drv_ctx.video_resolution.frame_width *
+                drv_ctx.video_resolution.frame_height >
+                m_decoder_capability.max_width *
+                m_decoder_capability.max_height) ||
+            (drv_ctx.video_resolution.frame_width*
+             drv_ctx.video_resolution.frame_height <
+             m_decoder_capability.min_width *
+             m_decoder_capability.min_height)) {
+        DEBUG_PRINT_ERROR(
+                "Unsupported WxH = (%u)x(%u) supported range is min(%u)x(%u) - max(%u)x(%u)",
+                drv_ctx.video_resolution.frame_width,
+                drv_ctx.video_resolution.frame_height,
+                m_decoder_capability.min_width,
+                m_decoder_capability.min_height,
+                m_decoder_capability.max_width,
+                m_decoder_capability.max_height);
+        return OMX_ErrorUnsupportedSetting;
+    }
+    DEBUG_PRINT_HIGH("\n video session supported\n");
+    return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::ComponentInit
+   FUNCTION
+   omx_vdec::ComponentInit
 
-DESCRIPTION
-  Initialize the component.
+   DESCRIPTION
+   Initialize the component.
 
-PARAMETERS
-  ctxt -- Context information related to the self.
-  id   -- Event identifier. This could be any of the following:
-          1. Command completion event
-          2. Buffer done callback event
-          3. Frame done callback event
+   PARAMETERS
+   ctxt -- Context information related to the self.
+   id   -- Event identifier. This could be any of the following:
+   1. Command completion event
+   2. Buffer done callback event
+   3. Frame done callback event
 
-RETURN VALUE
-  None.
+   RETURN VALUE
+   None.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE omx_vdec::component_init(OMX_STRING role)
 {
 
-	OMX_ERRORTYPE eRet = OMX_ErrorNone;
-	struct v4l2_fmtdesc fdesc;
-	struct v4l2_format fmt;
-	struct v4l2_requestbuffers bufreq;
-	struct v4l2_control control;
-	struct v4l2_frmsizeenum frmsize;
-	unsigned int   alignment = 0,buffer_size = 0;
-	int fds[2];
-	int r,ret=0;
-	bool codec_ambiguous = false;
-	OMX_STRING device_name = (OMX_STRING)"/dev/video/venus_dec";
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    struct v4l2_fmtdesc fdesc;
+    struct v4l2_format fmt;
+    struct v4l2_requestbuffers bufreq;
+    struct v4l2_control control;
+    struct v4l2_frmsizeenum frmsize;
+    unsigned int   alignment = 0,buffer_size = 0;
+    int fds[2];
+    int r,ret=0;
+    bool codec_ambiguous = false;
+    OMX_STRING device_name = (OMX_STRING)"/dev/video/venus_dec";
 
 #ifdef _ANDROID_
-	char platform_name[64];
-	property_get("ro.board.platform", platform_name, "0");
-	if (!strncmp(platform_name, "msm8610", 7)) {
-	    device_name = (OMX_STRING)"/dev/video/q6_dec";
-	}
+    char platform_name[64];
+    property_get("ro.board.platform", platform_name, "0");
+    if (!strncmp(platform_name, "msm8610", 7)) {
+        device_name = (OMX_STRING)"/dev/video/q6_dec";
+    }
 #endif
 
-	if(!strncmp(role, "OMX.qcom.video.decoder.avc.secure",OMX_MAX_STRINGNAME_SIZE)){
-		struct v4l2_control control;
-		secure_mode = true;
-		arbitrary_bytes = false;
-		role = (OMX_STRING)"OMX.qcom.video.decoder.avc";
-	}
+    if (!strncmp(role, "OMX.qcom.video.decoder.avc.secure",OMX_MAX_STRINGNAME_SIZE)) {
+        struct v4l2_control control;
+        secure_mode = true;
+        arbitrary_bytes = false;
+        role = (OMX_STRING)"OMX.qcom.video.decoder.avc";
+    }
 
-	drv_ctx.video_driver_fd = open(device_name, O_RDWR);
+    drv_ctx.video_driver_fd = open(device_name, O_RDWR);
 
-	DEBUG_PRINT_HIGH("\n omx_vdec::component_init(): Open returned fd %d, errno %d",
-			drv_ctx.video_driver_fd, errno);
+    DEBUG_PRINT_HIGH("\n omx_vdec::component_init(): Open returned fd %d, errno %d",
+            drv_ctx.video_driver_fd, errno);
 
-	if(drv_ctx.video_driver_fd == 0){
-	  DEBUG_PRINT_ERROR("omx_vdec_msm8974 :: Got fd as 0 for msm_vidc_dec, Opening again\n");
-	  drv_ctx.video_driver_fd = open(device_name, O_RDWR);
-	  close(0);
-	}
+    if (drv_ctx.video_driver_fd == 0) {
+        DEBUG_PRINT_ERROR("omx_vdec_msm8974 :: Got fd as 0 for msm_vidc_dec, Opening again\n");
+        drv_ctx.video_driver_fd = open(device_name, O_RDWR);
+        close(0);
+    }
 
-	if(drv_ctx.video_driver_fd < 0)
-	{
-		DEBUG_PRINT_ERROR("Omx_vdec::Comp Init Returning failure, errno %d\n", errno);
-		return OMX_ErrorInsufficientResources;
-	}
-	drv_ctx.frame_rate.fps_numerator = DEFAULT_FPS;
-	drv_ctx.frame_rate.fps_denominator = 1;
+    if (drv_ctx.video_driver_fd < 0) {
+        DEBUG_PRINT_ERROR("Omx_vdec::Comp Init Returning failure, errno %d\n", errno);
+        return OMX_ErrorInsufficientResources;
+    }
+    drv_ctx.frame_rate.fps_numerator = DEFAULT_FPS;
+    drv_ctx.frame_rate.fps_denominator = 1;
 
     ret = subscribe_to_events(drv_ctx.video_driver_fd);
     if (!ret) {
-      async_thread_created = true;
-      ret = pthread_create(&async_thread_id,0,async_message_thread,this);
-	}
-    if(ret) {
-	  DEBUG_PRINT_ERROR("\n Failed to create async_message_thread \n");
-	  async_thread_created = false;
-	  return OMX_ErrorInsufficientResources;
+        async_thread_created = true;
+        ret = pthread_create(&async_thread_id,0,async_message_thread,this);
+    }
+    if (ret) {
+        DEBUG_PRINT_ERROR("\n Failed to create async_message_thread \n");
+        async_thread_created = false;
+        return OMX_ErrorInsufficientResources;
     }
 
 #ifdef INPUT_BUFFER_LOG
-	strcpy(inputfilename, INPUT_BUFFER_FILE_NAME);
+    strcpy(inputfilename, INPUT_BUFFER_FILE_NAME);
 #endif
 #ifdef OUTPUT_BUFFER_LOG
-	outputBufferFile1 = fopen (outputfilename, "ab");
+    outputBufferFile1 = fopen (outputfilename, "ab");
 #endif
 #ifdef OUTPUT_EXTRADATA_LOG
-	outputExtradataFile = fopen (ouputextradatafilename, "ab");
+    outputExtradataFile = fopen (ouputextradatafilename, "ab");
 #endif
 
-	// Copy the role information which provides the decoder kind
-	strlcpy(drv_ctx.kind,role,128);
+    // Copy the role information which provides the decoder kind
+    strlcpy(drv_ctx.kind,role,128);
 
-	if(!strncmp(drv_ctx.kind,"OMX.qcom.video.decoder.mpeg4",\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.mpeg4",\
-				OMX_MAX_STRINGNAME_SIZE);
-		drv_ctx.timestamp_adjust = true;
-		drv_ctx.decoder_format = VDEC_CODECTYPE_MPEG4;
-		eCompressionFormat = OMX_VIDEO_CodingMPEG4;
-		output_capability=V4L2_PIX_FMT_MPEG4;
-		/*Initialize Start Code for MPEG4*/
-		codec_type_parse = CODEC_TYPE_MPEG4;
-		m_frame_parser.init_start_codes (codec_type_parse);
+    if (!strncmp(drv_ctx.kind,"OMX.qcom.video.decoder.mpeg4",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.mpeg4",\
+                OMX_MAX_STRINGNAME_SIZE);
+        drv_ctx.timestamp_adjust = true;
+        drv_ctx.decoder_format = VDEC_CODECTYPE_MPEG4;
+        eCompressionFormat = OMX_VIDEO_CodingMPEG4;
+        output_capability=V4L2_PIX_FMT_MPEG4;
+        /*Initialize Start Code for MPEG4*/
+        codec_type_parse = CODEC_TYPE_MPEG4;
+        m_frame_parser.init_start_codes (codec_type_parse);
 #ifdef INPUT_BUFFER_LOG
-		strcat(inputfilename, "m4v");
+        strcat(inputfilename, "m4v");
 #endif
-	}
-	else if(!strncmp(drv_ctx.kind,"OMX.qcom.video.decoder.mpeg2",\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.mpeg2",\
-				OMX_MAX_STRINGNAME_SIZE);
-		drv_ctx.decoder_format = VDEC_CODECTYPE_MPEG2;
-		output_capability = V4L2_PIX_FMT_MPEG2;
-		eCompressionFormat = OMX_VIDEO_CodingMPEG2;
-		/*Initialize Start Code for MPEG2*/
-		codec_type_parse = CODEC_TYPE_MPEG2;
-		m_frame_parser.init_start_codes (codec_type_parse);
+    } else if (!strncmp(drv_ctx.kind,"OMX.qcom.video.decoder.mpeg2",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.mpeg2",\
+                OMX_MAX_STRINGNAME_SIZE);
+        drv_ctx.decoder_format = VDEC_CODECTYPE_MPEG2;
+        output_capability = V4L2_PIX_FMT_MPEG2;
+        eCompressionFormat = OMX_VIDEO_CodingMPEG2;
+        /*Initialize Start Code for MPEG2*/
+        codec_type_parse = CODEC_TYPE_MPEG2;
+        m_frame_parser.init_start_codes (codec_type_parse);
 #ifdef INPUT_BUFFER_LOG
-		strcat(inputfilename, "mpg");
+        strcat(inputfilename, "mpg");
 #endif
-	}
-	else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.h263",OMX_MAX_STRINGNAME_SIZE);
-		DEBUG_PRINT_LOW("\n H263 Decoder selected");
-		drv_ctx.decoder_format = VDEC_CODECTYPE_H263;
-		eCompressionFormat = OMX_VIDEO_CodingH263;
-		output_capability = V4L2_PIX_FMT_H263;
-		codec_type_parse = CODEC_TYPE_H263;
-		m_frame_parser.init_start_codes (codec_type_parse);
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.h263",OMX_MAX_STRINGNAME_SIZE);
+        DEBUG_PRINT_LOW("\n H263 Decoder selected");
+        drv_ctx.decoder_format = VDEC_CODECTYPE_H263;
+        eCompressionFormat = OMX_VIDEO_CodingH263;
+        output_capability = V4L2_PIX_FMT_H263;
+        codec_type_parse = CODEC_TYPE_H263;
+        m_frame_parser.init_start_codes (codec_type_parse);
 #ifdef INPUT_BUFFER_LOG
-		strcat(inputfilename, "263");
+        strcat(inputfilename, "263");
 #endif
-	}
-	else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx311",\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
-		DEBUG_PRINT_LOW ("\n DIVX 311 Decoder selected");
-		drv_ctx.decoder_format = VDEC_CODECTYPE_DIVX_3;
-		output_capability = V4L2_PIX_FMT_DIVX_311;
-		eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
-		codec_type_parse = CODEC_TYPE_DIVX;
-		m_frame_parser.init_start_codes (codec_type_parse);
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx311",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
+        DEBUG_PRINT_LOW ("\n DIVX 311 Decoder selected");
+        drv_ctx.decoder_format = VDEC_CODECTYPE_DIVX_3;
+        output_capability = V4L2_PIX_FMT_DIVX_311;
+        eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
+        codec_type_parse = CODEC_TYPE_DIVX;
+        m_frame_parser.init_start_codes (codec_type_parse);
 
-		eRet = createDivxDrmContext();
-		if (eRet != OMX_ErrorNone) {
-			DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
-			return eRet;
-		}
-	}
-	else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx4",\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
-		DEBUG_PRINT_ERROR ("\n DIVX 4 Decoder selected");
-		drv_ctx.decoder_format = VDEC_CODECTYPE_DIVX_4;
-		output_capability = V4L2_PIX_FMT_DIVX;
-		eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
-		codec_type_parse = CODEC_TYPE_DIVX;
-		codec_ambiguous = true;
-		m_frame_parser.init_start_codes (codec_type_parse);
+        eRet = createDivxDrmContext();
+        if (eRet != OMX_ErrorNone) {
+            DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
+            return eRet;
+        }
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx4",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
+        DEBUG_PRINT_ERROR ("\n DIVX 4 Decoder selected");
+        drv_ctx.decoder_format = VDEC_CODECTYPE_DIVX_4;
+        output_capability = V4L2_PIX_FMT_DIVX;
+        eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
+        codec_type_parse = CODEC_TYPE_DIVX;
+        codec_ambiguous = true;
+        m_frame_parser.init_start_codes (codec_type_parse);
 
-		eRet = createDivxDrmContext();
-		if (eRet != OMX_ErrorNone) {
-			DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
-			return eRet;
-		}
-	}
-	else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
-		DEBUG_PRINT_ERROR ("\n DIVX 5/6 Decoder selected");
-		drv_ctx.decoder_format = VDEC_CODECTYPE_DIVX_6;
-		output_capability = V4L2_PIX_FMT_DIVX;
-		eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
-		codec_type_parse = CODEC_TYPE_DIVX;
-		codec_ambiguous = true;
-		m_frame_parser.init_start_codes (codec_type_parse);
+        eRet = createDivxDrmContext();
+        if (eRet != OMX_ErrorNone) {
+            DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
+            return eRet;
+        }
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
+        DEBUG_PRINT_ERROR ("\n DIVX 5/6 Decoder selected");
+        drv_ctx.decoder_format = VDEC_CODECTYPE_DIVX_6;
+        output_capability = V4L2_PIX_FMT_DIVX;
+        eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
+        codec_type_parse = CODEC_TYPE_DIVX;
+        codec_ambiguous = true;
+        m_frame_parser.init_start_codes (codec_type_parse);
 
-		eRet = createDivxDrmContext();
-		if (eRet != OMX_ErrorNone) {
-			DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
-			return eRet;
-		}
+        eRet = createDivxDrmContext();
+        if (eRet != OMX_ErrorNone) {
+            DEBUG_PRINT_ERROR("createDivxDrmContext Failed");
+            return eRet;
+        }
 
-	}
-	else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.avc",OMX_MAX_STRINGNAME_SIZE);
-		drv_ctx.decoder_format = VDEC_CODECTYPE_H264;
-		output_capability=V4L2_PIX_FMT_H264;
-		eCompressionFormat = OMX_VIDEO_CodingAVC;
-		codec_type_parse = CODEC_TYPE_H264;
-		m_frame_parser.init_start_codes (codec_type_parse);
-		m_frame_parser.init_nal_length(nal_length);
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.avc",OMX_MAX_STRINGNAME_SIZE);
+        drv_ctx.decoder_format = VDEC_CODECTYPE_H264;
+        output_capability=V4L2_PIX_FMT_H264;
+        eCompressionFormat = OMX_VIDEO_CodingAVC;
+        codec_type_parse = CODEC_TYPE_H264;
+        m_frame_parser.init_start_codes (codec_type_parse);
+        m_frame_parser.init_nal_length(nal_length);
 #ifdef INPUT_BUFFER_LOG
-		strcat(inputfilename, "264");
+        strcat(inputfilename, "264");
 #endif
-	}
-	else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1",\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
-		drv_ctx.decoder_format = VDEC_CODECTYPE_VC1;
-		eCompressionFormat = OMX_VIDEO_CodingWMV;
-		codec_type_parse = CODEC_TYPE_VC1;
-		output_capability = V4L2_PIX_FMT_VC1_ANNEX_G;
-		m_frame_parser.init_start_codes (codec_type_parse);
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
+        drv_ctx.decoder_format = VDEC_CODECTYPE_VC1;
+        eCompressionFormat = OMX_VIDEO_CodingWMV;
+        codec_type_parse = CODEC_TYPE_VC1;
+        output_capability = V4L2_PIX_FMT_VC1_ANNEX_G;
+        m_frame_parser.init_start_codes (codec_type_parse);
 #ifdef INPUT_BUFFER_LOG
-		strcat(inputfilename, "vc1");
+        strcat(inputfilename, "vc1");
 #endif
-	}
-	else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.wmv",\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
-		drv_ctx.decoder_format = VDEC_CODECTYPE_VC1_RCV;
-		eCompressionFormat = OMX_VIDEO_CodingWMV;
-		codec_type_parse = CODEC_TYPE_VC1;
-		output_capability = V4L2_PIX_FMT_VC1_ANNEX_L;
-		m_frame_parser.init_start_codes (codec_type_parse);
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.wmv",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
+        drv_ctx.decoder_format = VDEC_CODECTYPE_VC1_RCV;
+        eCompressionFormat = OMX_VIDEO_CodingWMV;
+        codec_type_parse = CODEC_TYPE_VC1;
+        output_capability = V4L2_PIX_FMT_VC1_ANNEX_L;
+        m_frame_parser.init_start_codes (codec_type_parse);
 #ifdef INPUT_BUFFER_LOG
-		strcat(inputfilename, "vc1");
+        strcat(inputfilename, "vc1");
 #endif
-	}
-	else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vp8",	\
-				OMX_MAX_STRINGNAME_SIZE))
-	{
-		strlcpy((char *)m_cRole, "video_decoder.vp8",OMX_MAX_STRINGNAME_SIZE);
-		output_capability=V4L2_PIX_FMT_VP8;
-		eCompressionFormat = OMX_VIDEO_CodingVPX;
-		codec_type_parse = CODEC_TYPE_VP8;
-		arbitrary_bytes = false;
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vp8",    \
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_decoder.vp8",OMX_MAX_STRINGNAME_SIZE);
+        output_capability=V4L2_PIX_FMT_VP8;
+        eCompressionFormat = OMX_VIDEO_CodingVPX;
+        codec_type_parse = CODEC_TYPE_VP8;
+        arbitrary_bytes = false;
 #ifdef INPUT_BUFFER_LOG
-                strcat(inputfilename, "ivf");
+        strcat(inputfilename, "ivf");
 #endif
 
-	}
-	else
-	{
-		DEBUG_PRINT_ERROR("\nERROR:Unknown Component\n");
-		eRet = OMX_ErrorInvalidComponentName;
-	}
+    } else {
+        DEBUG_PRINT_ERROR("\nERROR:Unknown Component\n");
+        eRet = OMX_ErrorInvalidComponentName;
+    }
 #ifdef INPUT_BUFFER_LOG
-	inputBufferFile1 = fopen (inputfilename, "ab");
-	if (output_capability == V4L2_PIX_FMT_VP8) {
-		struct ivf_file_header
-		{
-			OMX_U8 signature[4]; //='DKIF';
-			OMX_U8 version         ; //= 0;
-			OMX_U8 headersize      ; //= 32;
-			OMX_U32 FourCC;
-			OMX_U8 width;
-			OMX_U8 height;
-			OMX_U32 rate;
-			OMX_U32 scale;
-			OMX_U32 length;
-			OMX_U8 unused[4];
-		} file_header;
-		 memset((void *)&file_header,0,sizeof(file_header));
-		file_header.signature[0] = 'D';
-		file_header.signature[1] = 'K';
-		file_header.signature[2] = 'I';
-		file_header.signature[3] = 'F';
-		file_header.version = 0;
-		file_header.headersize = 32;
-		file_header.FourCC = 0x30385056;
-		if (inputBufferFile1)
-		{
-			fwrite((const char *)&file_header,
-					sizeof(file_header),1,inputBufferFile1);
-		}
-	}
+    inputBufferFile1 = fopen (inputfilename, "ab");
+    if (output_capability == V4L2_PIX_FMT_VP8) {
+        struct ivf_file_header {
+            OMX_U8 signature[4]; //='DKIF';
+            OMX_U8 version         ; //= 0;
+            OMX_U8 headersize      ; //= 32;
+            OMX_U32 FourCC;
+            OMX_U8 width;
+            OMX_U8 height;
+            OMX_U32 rate;
+            OMX_U32 scale;
+            OMX_U32 length;
+            OMX_U8 unused[4];
+        } file_header;
+        memset((void *)&file_header,0,sizeof(file_header));
+        file_header.signature[0] = 'D';
+        file_header.signature[1] = 'K';
+        file_header.signature[2] = 'I';
+        file_header.signature[3] = 'F';
+        file_header.version = 0;
+        file_header.headersize = 32;
+        file_header.FourCC = 0x30385056;
+        if (inputBufferFile1) {
+            fwrite((const char *)&file_header,
+                    sizeof(file_header),1,inputBufferFile1);
+        }
+    }
 #endif
-	if (eRet == OMX_ErrorNone)
-	{
+    if (eRet == OMX_ErrorNone) {
 
-		drv_ctx.output_format = VDEC_YUV_FORMAT_NV12;
+        drv_ctx.output_format = VDEC_YUV_FORMAT_NV12;
         OMX_COLOR_FORMATTYPE dest_color_format = (OMX_COLOR_FORMATTYPE)
             QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m;
         if (!client_buffers.set_color_format(dest_color_format)) {
@@ -1665,124 +1515,124 @@
             eRet = OMX_ErrorInsufficientResources;
         }
 
-		capture_capability= V4L2_PIX_FMT_NV12;
+        capture_capability= V4L2_PIX_FMT_NV12;
 
-		struct v4l2_capability cap;
-		ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_QUERYCAP, &cap);
-		if (ret) {
-		  DEBUG_PRINT_ERROR("Failed to query capabilities\n");
-		  /*TODO: How to handle this case */
-		} else {
-		  DEBUG_PRINT_HIGH("Capabilities: driver_name = %s, card = %s, bus_info = %s,"
-				" version = %d, capabilities = %x\n", cap.driver, cap.card,
-				cap.bus_info, cap.version, cap.capabilities);
-		}
-		ret=0;
-		fdesc.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		fdesc.index=0;
-		while (ioctl(drv_ctx.video_driver_fd, VIDIOC_ENUM_FMT, &fdesc) == 0) {
-			DEBUG_PRINT_HIGH("fmt: description: %s, fmt: %x, flags = %x\n", fdesc.description,
-					fdesc.pixelformat, fdesc.flags);
-			fdesc.index++;
-		}
-		fdesc.type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-		fdesc.index=0;
-		while (ioctl(drv_ctx.video_driver_fd, VIDIOC_ENUM_FMT, &fdesc) == 0) {
+        struct v4l2_capability cap;
+        ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_QUERYCAP, &cap);
+        if (ret) {
+            DEBUG_PRINT_ERROR("Failed to query capabilities\n");
+            /*TODO: How to handle this case */
+        } else {
+            DEBUG_PRINT_HIGH("Capabilities: driver_name = %s, card = %s, bus_info = %s,"
+                    " version = %d, capabilities = %x\n", cap.driver, cap.card,
+                    cap.bus_info, cap.version, cap.capabilities);
+        }
+        ret=0;
+        fdesc.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+        fdesc.index=0;
+        while (ioctl(drv_ctx.video_driver_fd, VIDIOC_ENUM_FMT, &fdesc) == 0) {
+            DEBUG_PRINT_HIGH("fmt: description: %s, fmt: %x, flags = %x\n", fdesc.description,
+                    fdesc.pixelformat, fdesc.flags);
+            fdesc.index++;
+        }
+        fdesc.type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+        fdesc.index=0;
+        while (ioctl(drv_ctx.video_driver_fd, VIDIOC_ENUM_FMT, &fdesc) == 0) {
 
-			DEBUG_PRINT_HIGH("fmt: description: %s, fmt: %x, flags = %x\n", fdesc.description,
-					fdesc.pixelformat, fdesc.flags);
-			fdesc.index++;
-		}
+            DEBUG_PRINT_HIGH("fmt: description: %s, fmt: %x, flags = %x\n", fdesc.description,
+                    fdesc.pixelformat, fdesc.flags);
+            fdesc.index++;
+        }
         update_resolution(320, 240, 320, 240);
-		fmt.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-		fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
-		fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
-		fmt.fmt.pix_mp.pixelformat = output_capability;
-		ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_FMT, &fmt);
-		if (ret) {
-			/*TODO: How to handle this case */
-			DEBUG_PRINT_ERROR("Failed to set format on output port\n");
-			return OMX_ErrorInsufficientResources;
-				}
-		DEBUG_PRINT_HIGH("\n Set Format was successful \n ");
-		if (codec_ambiguous) {
-			if (output_capability == V4L2_PIX_FMT_DIVX) {
-				struct v4l2_control divx_ctrl;
+        fmt.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+        fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
+        fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
+        fmt.fmt.pix_mp.pixelformat = output_capability;
+        ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_FMT, &fmt);
+        if (ret) {
+            /*TODO: How to handle this case */
+            DEBUG_PRINT_ERROR("Failed to set format on output port\n");
+            return OMX_ErrorInsufficientResources;
+        }
+        DEBUG_PRINT_HIGH("\n Set Format was successful \n ");
+        if (codec_ambiguous) {
+            if (output_capability == V4L2_PIX_FMT_DIVX) {
+                struct v4l2_control divx_ctrl;
 
-				if (drv_ctx.decoder_format == VDEC_CODECTYPE_DIVX_4) {
-					divx_ctrl.value = V4L2_MPEG_VIDC_VIDEO_DIVX_FORMAT_4;
-				} else if (drv_ctx.decoder_format == VDEC_CODECTYPE_DIVX_5) {
-					divx_ctrl.value = V4L2_MPEG_VIDC_VIDEO_DIVX_FORMAT_5;
-				} else {
-					divx_ctrl.value = V4L2_MPEG_VIDC_VIDEO_DIVX_FORMAT_6;
-				}
+                if (drv_ctx.decoder_format == VDEC_CODECTYPE_DIVX_4) {
+                    divx_ctrl.value = V4L2_MPEG_VIDC_VIDEO_DIVX_FORMAT_4;
+                } else if (drv_ctx.decoder_format == VDEC_CODECTYPE_DIVX_5) {
+                    divx_ctrl.value = V4L2_MPEG_VIDC_VIDEO_DIVX_FORMAT_5;
+                } else {
+                    divx_ctrl.value = V4L2_MPEG_VIDC_VIDEO_DIVX_FORMAT_6;
+                }
 
-				divx_ctrl.id = V4L2_CID_MPEG_VIDC_VIDEO_DIVX_FORMAT;
-				ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &divx_ctrl);
-				if (ret) {
-					DEBUG_PRINT_ERROR("Failed to set divx version\n");
-				}
-			} else {
-				DEBUG_PRINT_ERROR("Codec should not be ambiguous");
-			}
-		}
+                divx_ctrl.id = V4L2_CID_MPEG_VIDC_VIDEO_DIVX_FORMAT;
+                ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &divx_ctrl);
+                if (ret) {
+                    DEBUG_PRINT_ERROR("Failed to set divx version\n");
+                }
+            } else {
+                DEBUG_PRINT_ERROR("Codec should not be ambiguous");
+            }
+        }
 
-		//Get the hardware capabilities
-		memset((void *)&frmsize,0,sizeof(frmsize));
-		frmsize.index = 0;
-		frmsize.pixel_format = output_capability;
-		ret = ioctl(drv_ctx.video_driver_fd,
-			VIDIOC_ENUM_FRAMESIZES, &frmsize);
-		if (ret || frmsize.type != V4L2_FRMSIZE_TYPE_STEPWISE) {
-			DEBUG_PRINT_ERROR("Failed to get framesizes\n");
-			return OMX_ErrorHardware;
-		}
+        //Get the hardware capabilities
+        memset((void *)&frmsize,0,sizeof(frmsize));
+        frmsize.index = 0;
+        frmsize.pixel_format = output_capability;
+        ret = ioctl(drv_ctx.video_driver_fd,
+                VIDIOC_ENUM_FRAMESIZES, &frmsize);
+        if (ret || frmsize.type != V4L2_FRMSIZE_TYPE_STEPWISE) {
+            DEBUG_PRINT_ERROR("Failed to get framesizes\n");
+            return OMX_ErrorHardware;
+        }
 
-		if (frmsize.type == V4L2_FRMSIZE_TYPE_STEPWISE) {
-		    m_decoder_capability.min_width = frmsize.stepwise.min_width;
-		    m_decoder_capability.max_width = frmsize.stepwise.max_width;
-		    m_decoder_capability.min_height = frmsize.stepwise.min_height;
-		    m_decoder_capability.max_height = frmsize.stepwise.max_height;
-		}
+        if (frmsize.type == V4L2_FRMSIZE_TYPE_STEPWISE) {
+            m_decoder_capability.min_width = frmsize.stepwise.min_width;
+            m_decoder_capability.max_width = frmsize.stepwise.max_width;
+            m_decoder_capability.min_height = frmsize.stepwise.min_height;
+            m_decoder_capability.max_height = frmsize.stepwise.max_height;
+        }
 
-		fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
-		fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
-		fmt.fmt.pix_mp.pixelformat = capture_capability;
-		ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_FMT, &fmt);
-		if (ret) {
-			/*TODO: How to handle this case */	
-			DEBUG_PRINT_ERROR("Failed to set format on capture port\n");
-				}
-		DEBUG_PRINT_HIGH("\n Set Format was successful \n ");
-		if(secure_mode){
-			control.id = V4L2_CID_MPEG_VIDC_VIDEO_SECURE;
-			control.value = 1;
-			DEBUG_PRINT_LOW("Omx_vdec:: calling to open secure device %d\n", ret);
-			ret=ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL,&control);
-			if (ret) {
-				DEBUG_PRINT_ERROR("Omx_vdec:: Unable to open secure device %d\n", ret);
-				return OMX_ErrorInsufficientResources;
-			}
-		}
+        fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+        fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
+        fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
+        fmt.fmt.pix_mp.pixelformat = capture_capability;
+        ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_FMT, &fmt);
+        if (ret) {
+            /*TODO: How to handle this case */
+            DEBUG_PRINT_ERROR("Failed to set format on capture port\n");
+        }
+        DEBUG_PRINT_HIGH("\n Set Format was successful \n ");
+        if (secure_mode) {
+            control.id = V4L2_CID_MPEG_VIDC_VIDEO_SECURE;
+            control.value = 1;
+            DEBUG_PRINT_LOW("Omx_vdec:: calling to open secure device %d\n", ret);
+            ret=ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL,&control);
+            if (ret) {
+                DEBUG_PRINT_ERROR("Omx_vdec:: Unable to open secure device %d\n", ret);
+                return OMX_ErrorInsufficientResources;
+            }
+        }
 
-		/*Get the Buffer requirements for input and output ports*/
-		drv_ctx.ip_buf.buffer_type = VDEC_BUFFER_TYPE_INPUT;
-		drv_ctx.op_buf.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
-		if (secure_mode) {
-			drv_ctx.op_buf.alignment=SZ_1M;
-			drv_ctx.ip_buf.alignment=SZ_1M;
-		} else {
-			drv_ctx.op_buf.alignment=SZ_4K;
-			drv_ctx.ip_buf.alignment=SZ_4K;
-		}
-		drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
-		drv_ctx.extradata = 0;
-		drv_ctx.picture_order = VDEC_ORDER_DISPLAY;
-		control.id = V4L2_CID_MPEG_VIDC_VIDEO_OUTPUT_ORDER;
-		control.value = V4L2_MPEG_VIDC_VIDEO_OUTPUT_ORDER_DISPLAY;
-		ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control);
-		drv_ctx.idr_only_decoding = 0;
+        /*Get the Buffer requirements for input and output ports*/
+        drv_ctx.ip_buf.buffer_type = VDEC_BUFFER_TYPE_INPUT;
+        drv_ctx.op_buf.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
+        if (secure_mode) {
+            drv_ctx.op_buf.alignment=SZ_1M;
+            drv_ctx.ip_buf.alignment=SZ_1M;
+        } else {
+            drv_ctx.op_buf.alignment=SZ_4K;
+            drv_ctx.ip_buf.alignment=SZ_4K;
+        }
+        drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
+        drv_ctx.extradata = 0;
+        drv_ctx.picture_order = VDEC_ORDER_DISPLAY;
+        control.id = V4L2_CID_MPEG_VIDC_VIDEO_OUTPUT_ORDER;
+        control.value = V4L2_MPEG_VIDC_VIDEO_OUTPUT_ORDER_DISPLAY;
+        ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control);
+        drv_ctx.idr_only_decoding = 0;
 
         m_state = OMX_StateLoaded;
 #ifdef DEFAULT_EXTRADATA
@@ -1792,155 +1642,135 @@
         eRet=get_buffer_req(&drv_ctx.ip_buf);
         DEBUG_PRINT_HIGH("Input Buffer Size =%d \n ",drv_ctx.ip_buf.buffer_size);
         get_buffer_req(&drv_ctx.op_buf);
-		if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264)
-		{
-			if (m_frame_parser.mutils == NULL)
-			{
-				m_frame_parser.mutils = new H264_Utils();
+        if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264) {
+            if (m_frame_parser.mutils == NULL) {
+                m_frame_parser.mutils = new H264_Utils();
 
-				if (m_frame_parser.mutils == NULL)
-				{
-					DEBUG_PRINT_ERROR("\n parser utils Allocation failed ");
-					eRet = OMX_ErrorInsufficientResources;
-				}
-				else
-				{
-					h264_scratch.nAllocLen = drv_ctx.ip_buf.buffer_size;
-					h264_scratch.pBuffer = (OMX_U8 *)malloc (drv_ctx.ip_buf.buffer_size);
-					h264_scratch.nFilledLen = 0;
-					h264_scratch.nOffset = 0;
+                if (m_frame_parser.mutils == NULL) {
+                    DEBUG_PRINT_ERROR("\n parser utils Allocation failed ");
+                    eRet = OMX_ErrorInsufficientResources;
+                } else {
+                    h264_scratch.nAllocLen = drv_ctx.ip_buf.buffer_size;
+                    h264_scratch.pBuffer = (OMX_U8 *)malloc (drv_ctx.ip_buf.buffer_size);
+                    h264_scratch.nFilledLen = 0;
+                    h264_scratch.nOffset = 0;
 
-					if (h264_scratch.pBuffer == NULL)
-					{
-						DEBUG_PRINT_ERROR("\n h264_scratch.pBuffer Allocation failed ");
-						return OMX_ErrorInsufficientResources;
-					}
-					m_frame_parser.mutils->initialize_frame_checking_environment();
-					m_frame_parser.mutils->allocate_rbsp_buffer (drv_ctx.ip_buf.buffer_size);
-				}
-			}
+                    if (h264_scratch.pBuffer == NULL) {
+                        DEBUG_PRINT_ERROR("\n h264_scratch.pBuffer Allocation failed ");
+                        return OMX_ErrorInsufficientResources;
+                    }
+                    m_frame_parser.mutils->initialize_frame_checking_environment();
+                    m_frame_parser.mutils->allocate_rbsp_buffer (drv_ctx.ip_buf.buffer_size);
+                }
+            }
 
-			h264_parser = new h264_stream_parser();
-			if (!h264_parser)
-			{
-				DEBUG_PRINT_ERROR("ERROR: H264 parser allocation failed!");
-				eRet = OMX_ErrorInsufficientResources;
-			}
-		}
+            h264_parser = new h264_stream_parser();
+            if (!h264_parser) {
+                DEBUG_PRINT_ERROR("ERROR: H264 parser allocation failed!");
+                eRet = OMX_ErrorInsufficientResources;
+            }
+        }
 
-		if(pipe(fds))
-		{
-			DEBUG_PRINT_ERROR("pipe creation failed\n");
-			eRet = OMX_ErrorInsufficientResources;
-		}
-		else
-		{
-			int temp1[2];
-			if(fds[0] == 0 || fds[1] == 0)
-			{
-				if (pipe (temp1))
-				{
-					DEBUG_PRINT_ERROR("pipe creation failed\n");
-					return OMX_ErrorInsufficientResources;
-				}
-				//close (fds[0]);
-				//close (fds[1]);
-				fds[0] = temp1 [0];
-				fds[1] = temp1 [1];
-			}
-			m_pipe_in = fds[0];
-			m_pipe_out = fds[1];
-			msg_thread_created = true;
-			r = pthread_create(&msg_thread_id,0,message_thread,this);
-			
-			if(r < 0)
-			{
-				DEBUG_PRINT_ERROR("\n component_init(): message_thread creation failed");
-				msg_thread_created = false;
-				eRet = OMX_ErrorInsufficientResources;
-			}
-		}
-	}
+        if (pipe(fds)) {
+            DEBUG_PRINT_ERROR("pipe creation failed\n");
+            eRet = OMX_ErrorInsufficientResources;
+        } else {
+            int temp1[2];
+            if (fds[0] == 0 || fds[1] == 0) {
+                if (pipe (temp1)) {
+                    DEBUG_PRINT_ERROR("pipe creation failed\n");
+                    return OMX_ErrorInsufficientResources;
+                }
+                //close (fds[0]);
+                //close (fds[1]);
+                fds[0] = temp1 [0];
+                fds[1] = temp1 [1];
+            }
+            m_pipe_in = fds[0];
+            m_pipe_out = fds[1];
+            msg_thread_created = true;
+            r = pthread_create(&msg_thread_id,0,message_thread,this);
 
-	if (eRet != OMX_ErrorNone)
-	{
-		DEBUG_PRINT_ERROR("\n Component Init Failed");
-	}
-	else
-	{
-		DEBUG_PRINT_HIGH("\n omx_vdec::component_init() success");
-	}
-	//memset(&h264_mv_buff,0,sizeof(struct h264_mv_buffer));
-	return eRet;
+            if (r < 0) {
+                DEBUG_PRINT_ERROR("\n component_init(): message_thread creation failed");
+                msg_thread_created = false;
+                eRet = OMX_ErrorInsufficientResources;
+            }
+        }
+    }
+
+    if (eRet != OMX_ErrorNone) {
+        DEBUG_PRINT_ERROR("\n Component Init Failed");
+    } else {
+        DEBUG_PRINT_HIGH("\n omx_vdec::component_init() success");
+    }
+    //memset(&h264_mv_buff,0,sizeof(struct h264_mv_buffer));
+    return eRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::GetComponentVersion
+   FUNCTION
+   omx_vdec::GetComponentVersion
 
-DESCRIPTION
-  Returns the component version.
+   DESCRIPTION
+   Returns the component version.
 
-PARAMETERS
-  TBD.
+   PARAMETERS
+   TBD.
 
-RETURN VALUE
-  OMX_ErrorNone.
+   RETURN VALUE
+   OMX_ErrorNone.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::get_component_version
-                                     (
-                                      OMX_IN OMX_HANDLETYPE hComp,
-                                      OMX_OUT OMX_STRING componentName,
-                                      OMX_OUT OMX_VERSIONTYPE* componentVersion,
-                                      OMX_OUT OMX_VERSIONTYPE* specVersion,
-                                      OMX_OUT OMX_UUIDTYPE* componentUUID
-                                      )
+(
+ OMX_IN OMX_HANDLETYPE hComp,
+ OMX_OUT OMX_STRING componentName,
+ OMX_OUT OMX_VERSIONTYPE* componentVersion,
+ OMX_OUT OMX_VERSIONTYPE* specVersion,
+ OMX_OUT OMX_UUIDTYPE* componentUUID
+ )
 {
-    if(m_state == OMX_StateInvalid)
-    {
+    if (m_state == OMX_StateInvalid) {
         DEBUG_PRINT_ERROR("Get Comp Version in Invalid State\n");
         return OMX_ErrorInvalidState;
     }
-  /* TBD -- Return the proper version */
-  if (specVersion)
-  {
-    specVersion->nVersion = OMX_SPEC_VERSION;
-  }
-  return OMX_ErrorNone;
+    /* TBD -- Return the proper version */
+    if (specVersion) {
+        specVersion->nVersion = OMX_SPEC_VERSION;
+    }
+    return OMX_ErrorNone;
 }
 /* ======================================================================
-FUNCTION
-  omx_vdec::SendCommand
+   FUNCTION
+   omx_vdec::SendCommand
 
-DESCRIPTION
-  Returns zero if all the buffers released..
+   DESCRIPTION
+   Returns zero if all the buffers released..
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::send_command(OMX_IN OMX_HANDLETYPE hComp,
-                                      OMX_IN OMX_COMMANDTYPE cmd,
-                                      OMX_IN OMX_U32 param1,
-                                      OMX_IN OMX_PTR cmdData
-                                      )
+        OMX_IN OMX_COMMANDTYPE cmd,
+        OMX_IN OMX_U32 param1,
+        OMX_IN OMX_PTR cmdData
+        )
 {
     DEBUG_PRINT_LOW("\n send_command: Recieved a Command from Client");
-    if(m_state == OMX_StateInvalid)
-    {
+    if (m_state == OMX_StateInvalid) {
         DEBUG_PRINT_ERROR("ERROR: Send Command in Invalid State\n");
         return OMX_ErrorInvalidState;
     }
     if (cmd == OMX_CommandFlush && param1 != OMX_CORE_INPUT_PORT_INDEX
-      && param1 != OMX_CORE_OUTPUT_PORT_INDEX && param1 != OMX_ALL)
-    {
-      DEBUG_PRINT_ERROR("\n send_command(): ERROR OMX_CommandFlush "
-        "to invalid port: %lu", param1);
-      return OMX_ErrorBadPortIndex;
+            && param1 != OMX_CORE_OUTPUT_PORT_INDEX && param1 != OMX_ALL) {
+        DEBUG_PRINT_ERROR("\n send_command(): ERROR OMX_CommandFlush "
+                "to invalid port: %lu", param1);
+        return OMX_ErrorBadPortIndex;
     }
     post_event((unsigned)cmd,(unsigned)param1,OMX_COMPONENT_GENERATE_COMMAND);
     sem_wait(&m_cmd_lock);
@@ -1949,1133 +1779,953 @@
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::SendCommand
+   FUNCTION
+   omx_vdec::SendCommand
 
-DESCRIPTION
-  Returns zero if all the buffers released..
+   DESCRIPTION
+   Returns zero if all the buffers released..
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::send_command_proxy(OMX_IN OMX_HANDLETYPE hComp,
-                                            OMX_IN OMX_COMMANDTYPE cmd,
-                                            OMX_IN OMX_U32 param1,
-                                            OMX_IN OMX_PTR cmdData
-                                            )
+        OMX_IN OMX_COMMANDTYPE cmd,
+        OMX_IN OMX_U32 param1,
+        OMX_IN OMX_PTR cmdData
+        )
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  OMX_STATETYPE eState = (OMX_STATETYPE) param1;
-  int bFlag = 1,sem_posted = 0,ret=0;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_STATETYPE eState = (OMX_STATETYPE) param1;
+    int bFlag = 1,sem_posted = 0,ret=0;
 
-  DEBUG_PRINT_LOW("\n send_command_proxy(): cmd = %d", cmd);
-  DEBUG_PRINT_HIGH("\n send_command_proxy(): Current State %d, Expected State %d",
-    m_state, eState);
+    DEBUG_PRINT_LOW("\n send_command_proxy(): cmd = %d", cmd);
+    DEBUG_PRINT_HIGH("\n send_command_proxy(): Current State %d, Expected State %d",
+            m_state, eState);
 
-  if(cmd == OMX_CommandStateSet)
-  {
-    DEBUG_PRINT_HIGH("\n send_command_proxy(): OMX_CommandStateSet issued");
-    DEBUG_PRINT_HIGH("\n Current State %d, Expected State %d", m_state, eState);
-    /***************************/
-    /* Current State is Loaded */
-    /***************************/
-    if(m_state == OMX_StateLoaded)
-    {
-      if(eState == OMX_StateIdle)
-      {
-        //if all buffers are allocated or all ports disabled
-        if(allocate_done() ||
-          (m_inp_bEnabled == OMX_FALSE && m_out_bEnabled == OMX_FALSE))
-        {
-          DEBUG_PRINT_LOW("send_command_proxy(): Loaded-->Idle\n");
-        }
-        else
-        {
-          DEBUG_PRINT_LOW("send_command_proxy(): Loaded-->Idle-Pending\n");
-          BITMASK_SET(&m_flags, OMX_COMPONENT_IDLE_PENDING);
-          // Skip the event notification
-          bFlag = 0;
-        }
-      }
-      /* Requesting transition from Loaded to Loaded */
-      else if(eState == OMX_StateLoaded)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Loaded\n");
-        post_event(OMX_EventError,OMX_ErrorSameState,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorSameState;
-      }
-      /* Requesting transition from Loaded to WaitForResources */
-      else if(eState == OMX_StateWaitForResources)
-      {
-        /* Since error is None , we will post an event
-           at the end of this function definition */
-        DEBUG_PRINT_LOW("send_command_proxy(): Loaded-->WaitForResources\n");
-      }
-      /* Requesting transition from Loaded to Executing */
-      else if(eState == OMX_StateExecuting)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Executing\n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from Loaded to Pause */
-      else if(eState == OMX_StatePause)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Pause\n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from Loaded to Invalid */
-      else if(eState == OMX_StateInvalid)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Invalid\n");
-        post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorInvalidState;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Invalid(%d Not Handled)\n",\
-                          eState);
-        eRet = OMX_ErrorBadParameter;
-      }
-    }
-
-    /***************************/
-    /* Current State is IDLE */
-    /***************************/
-    else if(m_state == OMX_StateIdle)
-    {
-      if(eState == OMX_StateLoaded)
-      {
-        if(release_done())
-        {
-          /*
-             Since error is None , we will post an event at the end
-             of this function definition
-          */
-          DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Loaded\n");
-        }
-        else
-        {
-          DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Loaded-Pending\n");
-          BITMASK_SET(&m_flags, OMX_COMPONENT_LOADING_PENDING);
-          // Skip the event notification
-          bFlag = 0;
-        }
-      }
-      /* Requesting transition from Idle to Executing */
-      else if(eState == OMX_StateExecuting)
-      {
-	    DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Executing\n");
-        //BITMASK_SET(&m_flags, OMX_COMPONENT_EXECUTE_PENDING);
-        bFlag = 1;
-	    DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Executing\n");
-	    m_state=OMX_StateExecuting;
-	    DEBUG_PRINT_HIGH("Stream On CAPTURE Was successful\n");
-      }
-      /* Requesting transition from Idle to Idle */
-      else if(eState == OMX_StateIdle)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle-->Idle\n");
-        post_event(OMX_EventError,OMX_ErrorSameState,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorSameState;
-      }
-      /* Requesting transition from Idle to WaitForResources */
-      else if(eState == OMX_StateWaitForResources)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle-->WaitForResources\n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-       /* Requesting transition from Idle to Pause */
-       else if(eState == OMX_StatePause)
-      {
-         /*To pause the Video core we need to start the driver*/
-         if (/*ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_CMD_START,
-                    NULL) < */0)
-         {
-           DEBUG_PRINT_ERROR("\n VDEC_IOCTL_CMD_START FAILED");
-           omx_report_error ();
-           eRet = OMX_ErrorHardware;
-         }
-         else
-         {
-           BITMASK_SET(&m_flags,OMX_COMPONENT_PAUSE_PENDING);
-           DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Pause\n");
-           bFlag = 0;
-         }
-      }
-      /* Requesting transition from Idle to Invalid */
-       else if(eState == OMX_StateInvalid)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle-->Invalid\n");
-        post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorInvalidState;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle --> %d Not Handled\n",eState);
-        eRet = OMX_ErrorBadParameter;
-      }
-    }
-
-    /******************************/
-    /* Current State is Executing */
-    /******************************/
-    else if(m_state == OMX_StateExecuting)
-    {
-       DEBUG_PRINT_LOW("\n Command Recieved in OMX_StateExecuting");
-       /* Requesting transition from Executing to Idle */
-       if(eState == OMX_StateIdle)
-	   {
-		   /* Since error is None , we will post an event
-			  at the end of this function definition
-			*/
-		   DEBUG_PRINT_LOW("\n send_command_proxy(): Executing --> Idle \n");
-		   BITMASK_SET(&m_flags,OMX_COMPONENT_IDLE_PENDING);
-		   if(!sem_posted)
-		   {
-			   sem_posted = 1;
-			   sem_post (&m_cmd_lock);
-			   execute_omx_flush(OMX_ALL);
-		   }
-		   bFlag = 0;
-	   }
-       /* Requesting transition from Executing to Paused */
-       else if(eState == OMX_StatePause)
-       {
-         DEBUG_PRINT_LOW("\n PAUSE Command Issued");
-         m_state = OMX_StatePause;
-         bFlag = 1;
-       }
-       /* Requesting transition from Executing to Loaded */
-       else if(eState == OMX_StateLoaded)
-       {
-         DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> Loaded \n");
-         post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                    OMX_COMPONENT_GENERATE_EVENT);
-         eRet = OMX_ErrorIncorrectStateTransition;
-       }
-       /* Requesting transition from Executing to WaitForResources */
-       else if(eState == OMX_StateWaitForResources)
-       {
-         DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> WaitForResources \n");
-         post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                    OMX_COMPONENT_GENERATE_EVENT);
-         eRet = OMX_ErrorIncorrectStateTransition;
-       }
-       /* Requesting transition from Executing to Executing */
-       else if(eState == OMX_StateExecuting)
-       {
-         DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> Executing \n");
-         post_event(OMX_EventError,OMX_ErrorSameState,\
-                    OMX_COMPONENT_GENERATE_EVENT);
-         eRet = OMX_ErrorSameState;
-       }
-       /* Requesting transition from Executing to Invalid */
-       else if(eState == OMX_StateInvalid)
-       {
-         DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> Invalid \n");
-         post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
-         eRet = OMX_ErrorInvalidState;
-       }
-       else
-       {
-         DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Executing --> %d Not Handled\n",eState);
-         eRet = OMX_ErrorBadParameter;
-       }
-    }
-    /***************************/
-    /* Current State is Pause  */
-    /***************************/
-    else if(m_state == OMX_StatePause)
-    {
-      /* Requesting transition from Pause to Executing */
-      if(eState == OMX_StateExecuting)
-      {
-        DEBUG_PRINT_LOW("\n Pause --> Executing \n");
-        m_state = OMX_StateExecuting;
-        bFlag = 1;
-      }
-      /* Requesting transition from Pause to Idle */
-      else if(eState == OMX_StateIdle)
-      {
-        /* Since error is None , we will post an event
-        at the end of this function definition */
-        DEBUG_PRINT_LOW("\n Pause --> Idle \n");
-         BITMASK_SET(&m_flags,OMX_COMPONENT_IDLE_PENDING);
-         if(!sem_posted)
-         {
-           sem_posted = 1;
-           sem_post (&m_cmd_lock);
-           execute_omx_flush(OMX_ALL);
-         }
-         bFlag = 0;
-      }
-      /* Requesting transition from Pause to loaded */
-      else if(eState == OMX_StateLoaded)
-      {
-        DEBUG_PRINT_ERROR("\n Pause --> loaded \n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from Pause to WaitForResources */
-      else if(eState == OMX_StateWaitForResources)
-      {
-        DEBUG_PRINT_ERROR("\n Pause --> WaitForResources \n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from Pause to Pause */
-      else if(eState == OMX_StatePause)
-      {
-        DEBUG_PRINT_ERROR("\n Pause --> Pause \n");
-        post_event(OMX_EventError,OMX_ErrorSameState,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorSameState;
-      }
-       /* Requesting transition from Pause to Invalid */
-      else if(eState == OMX_StateInvalid)
-      {
-        DEBUG_PRINT_ERROR("\n Pause --> Invalid \n");
-        post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorInvalidState;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Paused --> %d Not Handled\n",eState);
-        eRet = OMX_ErrorBadParameter;
-      }
-    }
-     /***************************/
-    /* Current State is WaitForResources  */
-    /***************************/
-    else if(m_state == OMX_StateWaitForResources)
-    {
-      /* Requesting transition from WaitForResources to Loaded */
-      if(eState == OMX_StateLoaded)
-      {
-        /* Since error is None , we will post an event
-        at the end of this function definition */
-        DEBUG_PRINT_LOW("send_command_proxy(): WaitForResources-->Loaded\n");
-      }
-      /* Requesting transition from WaitForResources to WaitForResources */
-      else if (eState == OMX_StateWaitForResources)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->WaitForResources\n");
-        post_event(OMX_EventError,OMX_ErrorSameState,
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorSameState;
-      }
-      /* Requesting transition from WaitForResources to Executing */
-      else if(eState == OMX_StateExecuting)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->Executing\n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from WaitForResources to Pause */
-      else if(eState == OMX_StatePause)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->Pause\n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from WaitForResources to Invalid */
-      else if(eState == OMX_StateInvalid)
-      {
-        DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->Invalid\n");
-        post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorInvalidState;
-      }
-      /* Requesting transition from WaitForResources to Loaded -
-      is NOT tested by Khronos TS */
-
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): %d --> %d(Not Handled)\n",m_state,eState);
-      eRet = OMX_ErrorBadParameter;
-    }
-  }
-  /********************************/
-  /* Current State is Invalid */
-  /*******************************/
-  else if(m_state == OMX_StateInvalid)
-  {
-    /* State Transition from Inavlid to any state */
-    if(eState == (OMX_StateLoaded || OMX_StateWaitForResources
-                  || OMX_StateIdle || OMX_StateExecuting
-                  || OMX_StatePause || OMX_StateInvalid))
-    {
-      DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Invalid -->Loaded\n");
-      post_event(OMX_EventError,OMX_ErrorInvalidState,\
-                 OMX_COMPONENT_GENERATE_EVENT);
-      eRet = OMX_ErrorInvalidState;
-    }
-  }
-  else if (cmd == OMX_CommandFlush)
-  {
-    DEBUG_PRINT_HIGH("\n send_command_proxy(): OMX_CommandFlush issued"
-        "with param1: %lu", param1);
-    if(OMX_CORE_INPUT_PORT_INDEX == param1 || OMX_ALL == param1)
-    {
-      BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_FLUSH_PENDING);
-    }
-    if(OMX_CORE_OUTPUT_PORT_INDEX == param1 || OMX_ALL == param1)
-    {
-      BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_FLUSH_PENDING);
-    }
-    if (!sem_posted){
-      sem_posted = 1;
-      DEBUG_PRINT_LOW("\n Set the Semaphore");
-      sem_post (&m_cmd_lock);
-      execute_omx_flush(param1);
-    }
-    bFlag = 0;
-  }
-  else if ( cmd == OMX_CommandPortEnable)
-  {
-    DEBUG_PRINT_HIGH("\n send_command_proxy(): OMX_CommandPortEnable issued"
-        "with param1: %lu", param1);
-    if(param1 == OMX_CORE_INPUT_PORT_INDEX || param1 == OMX_ALL)
-      {
-        m_inp_bEnabled = OMX_TRUE;
-
-        if( (m_state == OMX_StateLoaded &&
-             !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
-            || allocate_input_done())
-        {
-          post_event(OMX_CommandPortEnable,OMX_CORE_INPUT_PORT_INDEX,
-                     OMX_COMPONENT_GENERATE_EVENT);
-        }
-        else
-        {
-          DEBUG_PRINT_LOW("send_command_proxy(): Disabled-->Enabled Pending\n");
-          BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_ENABLE_PENDING);
-          // Skip the event notification
-          bFlag = 0;
-        }
-      }
-      if(param1 == OMX_CORE_OUTPUT_PORT_INDEX || param1 == OMX_ALL)
-      {
-          DEBUG_PRINT_LOW("\n Enable output Port command recieved");
-          m_out_bEnabled = OMX_TRUE;
-
-          if( (m_state == OMX_StateLoaded &&
-              !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
-              || (allocate_output_done()))
-          {
-             post_event(OMX_CommandPortEnable,OMX_CORE_OUTPUT_PORT_INDEX,
-                        OMX_COMPONENT_GENERATE_EVENT);
-
-          }
-          else
-          {
-              DEBUG_PRINT_LOW("send_command_proxy(): Disabled-->Enabled Pending\n");
-              BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
-              // Skip the event notification
-              bFlag = 0;
-          }
-      }
-  }
-  else if (cmd == OMX_CommandPortDisable)
-  {
-      DEBUG_PRINT_HIGH("\n send_command_proxy(): OMX_CommandPortDisable issued"
-          "with param1: %lu", param1);
-      if(param1 == OMX_CORE_INPUT_PORT_INDEX || param1 == OMX_ALL)
-      {
-          m_inp_bEnabled = OMX_FALSE;
-          if((m_state == OMX_StateLoaded || m_state == OMX_StateIdle)
-              && release_input_done())
-          {
-             post_event(OMX_CommandPortDisable,OMX_CORE_INPUT_PORT_INDEX,
-                        OMX_COMPONENT_GENERATE_EVENT);
-          }
-          else
-          {
-             BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_DISABLE_PENDING);
-             if(m_state == OMX_StatePause ||m_state == OMX_StateExecuting)
-             {
-               if(!sem_posted)
-               {
-                 sem_posted = 1;
-                 sem_post (&m_cmd_lock);
-               }
-               execute_omx_flush(OMX_CORE_INPUT_PORT_INDEX);
-             }
-
-             // Skip the event notification
-             bFlag = 0;
-          }
-      }
-      if(param1 == OMX_CORE_OUTPUT_PORT_INDEX || param1 == OMX_ALL)
-      {
-          m_out_bEnabled = OMX_FALSE;
-          DEBUG_PRINT_LOW("\n Disable output Port command recieved");
-          if((m_state == OMX_StateLoaded || m_state == OMX_StateIdle)
-              && release_output_done())
-          {
-             post_event(OMX_CommandPortDisable,OMX_CORE_OUTPUT_PORT_INDEX,\
-                        OMX_COMPONENT_GENERATE_EVENT);
-          }
-          else
-         {
-            BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_DISABLE_PENDING);
-            if(m_state == OMX_StatePause ||m_state == OMX_StateExecuting)
-            {
-              if (!sem_posted)
-              {
-                sem_posted = 1;
-                sem_post (&m_cmd_lock);
-              }
-                BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING);
-                execute_omx_flush(OMX_CORE_OUTPUT_PORT_INDEX);
+    if (cmd == OMX_CommandStateSet) {
+        DEBUG_PRINT_HIGH("\n send_command_proxy(): OMX_CommandStateSet issued");
+        DEBUG_PRINT_HIGH("\n Current State %d, Expected State %d", m_state, eState);
+        /***************************/
+        /* Current State is Loaded */
+        /***************************/
+        if (m_state == OMX_StateLoaded) {
+            if (eState == OMX_StateIdle) {
+                //if all buffers are allocated or all ports disabled
+                if (allocate_done() ||
+                        (m_inp_bEnabled == OMX_FALSE && m_out_bEnabled == OMX_FALSE)) {
+                    DEBUG_PRINT_LOW("send_command_proxy(): Loaded-->Idle\n");
+                } else {
+                    DEBUG_PRINT_LOW("send_command_proxy(): Loaded-->Idle-Pending\n");
+                    BITMASK_SET(&m_flags, OMX_COMPONENT_IDLE_PENDING);
+                    // Skip the event notification
+                    bFlag = 0;
+                }
             }
-            // Skip the event notification
-            bFlag = 0;
+            /* Requesting transition from Loaded to Loaded */
+            else if (eState == OMX_StateLoaded) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Loaded\n");
+                post_event(OMX_EventError,OMX_ErrorSameState,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorSameState;
+            }
+            /* Requesting transition from Loaded to WaitForResources */
+            else if (eState == OMX_StateWaitForResources) {
+                /* Since error is None , we will post an event
+                   at the end of this function definition */
+                DEBUG_PRINT_LOW("send_command_proxy(): Loaded-->WaitForResources\n");
+            }
+            /* Requesting transition from Loaded to Executing */
+            else if (eState == OMX_StateExecuting) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Executing\n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Loaded to Pause */
+            else if (eState == OMX_StatePause) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Pause\n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Loaded to Invalid */
+            else if (eState == OMX_StateInvalid) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Invalid\n");
+                post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorInvalidState;
+            } else {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Loaded-->Invalid(%d Not Handled)\n",\
+                        eState);
+                eRet = OMX_ErrorBadParameter;
+            }
+        }
 
-         }
-      }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("Error: Invalid Command other than StateSet (%d)\n",cmd);
-    eRet = OMX_ErrorNotImplemented;
-  }
-  if(eRet == OMX_ErrorNone && bFlag)
-  {
-    post_event(cmd,eState,OMX_COMPONENT_GENERATE_EVENT);
-  }
-  if(!sem_posted)
-  {
-    sem_post(&m_cmd_lock);
-  }
+        /***************************/
+        /* Current State is IDLE */
+        /***************************/
+        else if (m_state == OMX_StateIdle) {
+            if (eState == OMX_StateLoaded) {
+                if (release_done()) {
+                    /*
+                       Since error is None , we will post an event at the end
+                       of this function definition
+                     */
+                    DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Loaded\n");
+                } else {
+                    DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Loaded-Pending\n");
+                    BITMASK_SET(&m_flags, OMX_COMPONENT_LOADING_PENDING);
+                    // Skip the event notification
+                    bFlag = 0;
+                }
+            }
+            /* Requesting transition from Idle to Executing */
+            else if (eState == OMX_StateExecuting) {
+                DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Executing\n");
+                //BITMASK_SET(&m_flags, OMX_COMPONENT_EXECUTE_PENDING);
+                bFlag = 1;
+                DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Executing\n");
+                m_state=OMX_StateExecuting;
+                DEBUG_PRINT_HIGH("Stream On CAPTURE Was successful\n");
+            }
+            /* Requesting transition from Idle to Idle */
+            else if (eState == OMX_StateIdle) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle-->Idle\n");
+                post_event(OMX_EventError,OMX_ErrorSameState,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorSameState;
+            }
+            /* Requesting transition from Idle to WaitForResources */
+            else if (eState == OMX_StateWaitForResources) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle-->WaitForResources\n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Idle to Pause */
+            else if (eState == OMX_StatePause) {
+                /*To pause the Video core we need to start the driver*/
+                if (/*ioctl (drv_ctx.video_driver_fd,VDEC_IOCTL_CMD_START,
+                      NULL) < */0) {
+                    DEBUG_PRINT_ERROR("\n VDEC_IOCTL_CMD_START FAILED");
+                    omx_report_error ();
+                    eRet = OMX_ErrorHardware;
+                } else {
+                    BITMASK_SET(&m_flags,OMX_COMPONENT_PAUSE_PENDING);
+                    DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Pause\n");
+                    bFlag = 0;
+                }
+            }
+            /* Requesting transition from Idle to Invalid */
+            else if (eState == OMX_StateInvalid) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle-->Invalid\n");
+                post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorInvalidState;
+            } else {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Idle --> %d Not Handled\n",eState);
+                eRet = OMX_ErrorBadParameter;
+            }
+        }
 
-  return eRet;
+        /******************************/
+        /* Current State is Executing */
+        /******************************/
+        else if (m_state == OMX_StateExecuting) {
+            DEBUG_PRINT_LOW("\n Command Recieved in OMX_StateExecuting");
+            /* Requesting transition from Executing to Idle */
+            if (eState == OMX_StateIdle) {
+                /* Since error is None , we will post an event
+                   at the end of this function definition
+                 */
+                DEBUG_PRINT_LOW("\n send_command_proxy(): Executing --> Idle \n");
+                BITMASK_SET(&m_flags,OMX_COMPONENT_IDLE_PENDING);
+                if (!sem_posted) {
+                    sem_posted = 1;
+                    sem_post (&m_cmd_lock);
+                    execute_omx_flush(OMX_ALL);
+                }
+                bFlag = 0;
+            }
+            /* Requesting transition from Executing to Paused */
+            else if (eState == OMX_StatePause) {
+                DEBUG_PRINT_LOW("\n PAUSE Command Issued");
+                m_state = OMX_StatePause;
+                bFlag = 1;
+            }
+            /* Requesting transition from Executing to Loaded */
+            else if (eState == OMX_StateLoaded) {
+                DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> Loaded \n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Executing to WaitForResources */
+            else if (eState == OMX_StateWaitForResources) {
+                DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> WaitForResources \n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Executing to Executing */
+            else if (eState == OMX_StateExecuting) {
+                DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> Executing \n");
+                post_event(OMX_EventError,OMX_ErrorSameState,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorSameState;
+            }
+            /* Requesting transition from Executing to Invalid */
+            else if (eState == OMX_StateInvalid) {
+                DEBUG_PRINT_ERROR("\n send_command_proxy(): Executing --> Invalid \n");
+                post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorInvalidState;
+            } else {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Executing --> %d Not Handled\n",eState);
+                eRet = OMX_ErrorBadParameter;
+            }
+        }
+        /***************************/
+        /* Current State is Pause  */
+        /***************************/
+        else if (m_state == OMX_StatePause) {
+            /* Requesting transition from Pause to Executing */
+            if (eState == OMX_StateExecuting) {
+                DEBUG_PRINT_LOW("\n Pause --> Executing \n");
+                m_state = OMX_StateExecuting;
+                bFlag = 1;
+            }
+            /* Requesting transition from Pause to Idle */
+            else if (eState == OMX_StateIdle) {
+                /* Since error is None , we will post an event
+                   at the end of this function definition */
+                DEBUG_PRINT_LOW("\n Pause --> Idle \n");
+                BITMASK_SET(&m_flags,OMX_COMPONENT_IDLE_PENDING);
+                if (!sem_posted) {
+                    sem_posted = 1;
+                    sem_post (&m_cmd_lock);
+                    execute_omx_flush(OMX_ALL);
+                }
+                bFlag = 0;
+            }
+            /* Requesting transition from Pause to loaded */
+            else if (eState == OMX_StateLoaded) {
+                DEBUG_PRINT_ERROR("\n Pause --> loaded \n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Pause to WaitForResources */
+            else if (eState == OMX_StateWaitForResources) {
+                DEBUG_PRINT_ERROR("\n Pause --> WaitForResources \n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Pause to Pause */
+            else if (eState == OMX_StatePause) {
+                DEBUG_PRINT_ERROR("\n Pause --> Pause \n");
+                post_event(OMX_EventError,OMX_ErrorSameState,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorSameState;
+            }
+            /* Requesting transition from Pause to Invalid */
+            else if (eState == OMX_StateInvalid) {
+                DEBUG_PRINT_ERROR("\n Pause --> Invalid \n");
+                post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorInvalidState;
+            } else {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Paused --> %d Not Handled\n",eState);
+                eRet = OMX_ErrorBadParameter;
+            }
+        }
+        /***************************/
+        /* Current State is WaitForResources  */
+        /***************************/
+        else if (m_state == OMX_StateWaitForResources) {
+            /* Requesting transition from WaitForResources to Loaded */
+            if (eState == OMX_StateLoaded) {
+                /* Since error is None , we will post an event
+                   at the end of this function definition */
+                DEBUG_PRINT_LOW("send_command_proxy(): WaitForResources-->Loaded\n");
+            }
+            /* Requesting transition from WaitForResources to WaitForResources */
+            else if (eState == OMX_StateWaitForResources) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->WaitForResources\n");
+                post_event(OMX_EventError,OMX_ErrorSameState,
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorSameState;
+            }
+            /* Requesting transition from WaitForResources to Executing */
+            else if (eState == OMX_StateExecuting) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->Executing\n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from WaitForResources to Pause */
+            else if (eState == OMX_StatePause) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->Pause\n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from WaitForResources to Invalid */
+            else if (eState == OMX_StateInvalid) {
+                DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): WaitForResources-->Invalid\n");
+                post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorInvalidState;
+            }
+            /* Requesting transition from WaitForResources to Loaded -
+               is NOT tested by Khronos TS */
+
+        } else {
+            DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): %d --> %d(Not Handled)\n",m_state,eState);
+            eRet = OMX_ErrorBadParameter;
+        }
+    }
+    /********************************/
+    /* Current State is Invalid */
+    /*******************************/
+    else if (m_state == OMX_StateInvalid) {
+        /* State Transition from Inavlid to any state */
+        if (eState == (OMX_StateLoaded || OMX_StateWaitForResources
+                    || OMX_StateIdle || OMX_StateExecuting
+                    || OMX_StatePause || OMX_StateInvalid)) {
+            DEBUG_PRINT_ERROR("ERROR::send_command_proxy(): Invalid -->Loaded\n");
+            post_event(OMX_EventError,OMX_ErrorInvalidState,\
+                    OMX_COMPONENT_GENERATE_EVENT);
+            eRet = OMX_ErrorInvalidState;
+        }
+    } else if (cmd == OMX_CommandFlush) {
+        DEBUG_PRINT_HIGH("\n send_command_proxy(): OMX_CommandFlush issued"
+                "with param1: %lu", param1);
+        if (OMX_CORE_INPUT_PORT_INDEX == param1 || OMX_ALL == param1) {
+            BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_FLUSH_PENDING);
+        }
+        if (OMX_CORE_OUTPUT_PORT_INDEX == param1 || OMX_ALL == param1) {
+            BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_FLUSH_PENDING);
+        }
+        if (!sem_posted) {
+            sem_posted = 1;
+            DEBUG_PRINT_LOW("\n Set the Semaphore");
+            sem_post (&m_cmd_lock);
+            execute_omx_flush(param1);
+        }
+        bFlag = 0;
+    } else if ( cmd == OMX_CommandPortEnable) {
+        DEBUG_PRINT_HIGH("\n send_command_proxy(): OMX_CommandPortEnable issued"
+                "with param1: %lu", param1);
+        if (param1 == OMX_CORE_INPUT_PORT_INDEX || param1 == OMX_ALL) {
+            m_inp_bEnabled = OMX_TRUE;
+
+            if ( (m_state == OMX_StateLoaded &&
+                        !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
+                    || allocate_input_done()) {
+                post_event(OMX_CommandPortEnable,OMX_CORE_INPUT_PORT_INDEX,
+                        OMX_COMPONENT_GENERATE_EVENT);
+            } else {
+                DEBUG_PRINT_LOW("send_command_proxy(): Disabled-->Enabled Pending\n");
+                BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_ENABLE_PENDING);
+                // Skip the event notification
+                bFlag = 0;
+            }
+        }
+        if (param1 == OMX_CORE_OUTPUT_PORT_INDEX || param1 == OMX_ALL) {
+            DEBUG_PRINT_LOW("\n Enable output Port command recieved");
+            m_out_bEnabled = OMX_TRUE;
+
+            if ( (m_state == OMX_StateLoaded &&
+                        !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
+                    || (allocate_output_done())) {
+                post_event(OMX_CommandPortEnable,OMX_CORE_OUTPUT_PORT_INDEX,
+                        OMX_COMPONENT_GENERATE_EVENT);
+
+            } else {
+                DEBUG_PRINT_LOW("send_command_proxy(): Disabled-->Enabled Pending\n");
+                BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
+                // Skip the event notification
+                bFlag = 0;
+            }
+        }
+    } else if (cmd == OMX_CommandPortDisable) {
+        DEBUG_PRINT_HIGH("\n send_command_proxy(): OMX_CommandPortDisable issued"
+                "with param1: %lu", param1);
+        if (param1 == OMX_CORE_INPUT_PORT_INDEX || param1 == OMX_ALL) {
+            m_inp_bEnabled = OMX_FALSE;
+            if ((m_state == OMX_StateLoaded || m_state == OMX_StateIdle)
+                    && release_input_done()) {
+                post_event(OMX_CommandPortDisable,OMX_CORE_INPUT_PORT_INDEX,
+                        OMX_COMPONENT_GENERATE_EVENT);
+            } else {
+                BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_DISABLE_PENDING);
+                if (m_state == OMX_StatePause ||m_state == OMX_StateExecuting) {
+                    if (!sem_posted) {
+                        sem_posted = 1;
+                        sem_post (&m_cmd_lock);
+                    }
+                    execute_omx_flush(OMX_CORE_INPUT_PORT_INDEX);
+                }
+
+                // Skip the event notification
+                bFlag = 0;
+            }
+        }
+        if (param1 == OMX_CORE_OUTPUT_PORT_INDEX || param1 == OMX_ALL) {
+            m_out_bEnabled = OMX_FALSE;
+            DEBUG_PRINT_LOW("\n Disable output Port command recieved");
+            if ((m_state == OMX_StateLoaded || m_state == OMX_StateIdle)
+                    && release_output_done()) {
+                post_event(OMX_CommandPortDisable,OMX_CORE_OUTPUT_PORT_INDEX,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+            } else {
+                BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_DISABLE_PENDING);
+                if (m_state == OMX_StatePause ||m_state == OMX_StateExecuting) {
+                    if (!sem_posted) {
+                        sem_posted = 1;
+                        sem_post (&m_cmd_lock);
+                    }
+                    BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_FLUSH_IN_DISABLE_PENDING);
+                    execute_omx_flush(OMX_CORE_OUTPUT_PORT_INDEX);
+                }
+                // Skip the event notification
+                bFlag = 0;
+
+            }
+        }
+    } else {
+        DEBUG_PRINT_ERROR("Error: Invalid Command other than StateSet (%d)\n",cmd);
+        eRet = OMX_ErrorNotImplemented;
+    }
+    if (eRet == OMX_ErrorNone && bFlag) {
+        post_event(cmd,eState,OMX_COMPONENT_GENERATE_EVENT);
+    }
+    if (!sem_posted) {
+        sem_post(&m_cmd_lock);
+    }
+
+    return eRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::ExecuteOmxFlush
+   FUNCTION
+   omx_vdec::ExecuteOmxFlush
 
-DESCRIPTION
-  Executes the OMX flush.
+   DESCRIPTION
+   Executes the OMX flush.
 
-PARAMETERS
-  flushtype - input flush(1)/output flush(0)/ both.
+   PARAMETERS
+   flushtype - input flush(1)/output flush(0)/ both.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 bool omx_vdec::execute_omx_flush(OMX_U32 flushType)
 {
-  bool bRet = false;
-  struct v4l2_plane plane;
-  struct v4l2_buffer v4l2_buf;
-  struct v4l2_decoder_cmd dec;
-  DEBUG_PRINT_LOW("in %s, flushing %d", __func__, flushType);
-  memset((void *)&v4l2_buf,0,sizeof(v4l2_buf));
-  dec.cmd = V4L2_DEC_QCOM_CMD_FLUSH;
+    bool bRet = false;
+    struct v4l2_plane plane;
+    struct v4l2_buffer v4l2_buf;
+    struct v4l2_decoder_cmd dec;
+    DEBUG_PRINT_LOW("in %s, flushing %d", __func__, flushType);
+    memset((void *)&v4l2_buf,0,sizeof(v4l2_buf));
+    dec.cmd = V4L2_DEC_QCOM_CMD_FLUSH;
 
-  DEBUG_PRINT_HIGH("in %s: reconfig? %d", __func__, in_reconfig);
+    DEBUG_PRINT_HIGH("in %s: reconfig? %d", __func__, in_reconfig);
 
-  if (in_reconfig && flushType == OMX_CORE_OUTPUT_PORT_INDEX)
-  {
-    output_flush_progress = true;
-    dec.flags = V4L2_DEC_QCOM_CMD_FLUSH_CAPTURE;
-  }
-  else
-  {
-    /* XXX: The driver/hardware does not support flushing of individual ports
-     * in all states. So we pretty much need to flush both ports internally,
-     * but client should only get the FLUSH_(INPUT|OUTPUT)_DONE for the one it
-     * requested.  Since OMX_COMPONENT_(OUTPUT|INPUT)_FLUSH_PENDING isn't set,
-     * we automatically omit sending the FLUSH done for the "opposite" port. */
-    input_flush_progress = true;
-    output_flush_progress = true;
-    dec.flags = V4L2_DEC_QCOM_CMD_FLUSH_OUTPUT | V4L2_DEC_QCOM_CMD_FLUSH_CAPTURE;
-  }
+    if (in_reconfig && flushType == OMX_CORE_OUTPUT_PORT_INDEX) {
+        output_flush_progress = true;
+        dec.flags = V4L2_DEC_QCOM_CMD_FLUSH_CAPTURE;
+    } else {
+        /* XXX: The driver/hardware does not support flushing of individual ports
+         * in all states. So we pretty much need to flush both ports internally,
+         * but client should only get the FLUSH_(INPUT|OUTPUT)_DONE for the one it
+         * requested.  Since OMX_COMPONENT_(OUTPUT|INPUT)_FLUSH_PENDING isn't set,
+         * we automatically omit sending the FLUSH done for the "opposite" port. */
+        input_flush_progress = true;
+        output_flush_progress = true;
+        dec.flags = V4L2_DEC_QCOM_CMD_FLUSH_OUTPUT | V4L2_DEC_QCOM_CMD_FLUSH_CAPTURE;
+    }
 
-  if (ioctl(drv_ctx.video_driver_fd, VIDIOC_DECODER_CMD, &dec))
-  {
-    DEBUG_PRINT_ERROR("\n Flush Port (%lu) Failed ", flushType);
-    bRet = false;
-  }
+    if (ioctl(drv_ctx.video_driver_fd, VIDIOC_DECODER_CMD, &dec)) {
+        DEBUG_PRINT_ERROR("\n Flush Port (%lu) Failed ", flushType);
+        bRet = false;
+    }
 
-  return bRet;
+    return bRet;
 }
 /*=========================================================================
 FUNCTION : execute_output_flush
 
 DESCRIPTION
-  Executes the OMX flush at OUTPUT PORT.
+Executes the OMX flush at OUTPUT PORT.
 
 PARAMETERS
-  None.
+None.
 
 RETURN VALUE
-  true/false
+true/false
 ==========================================================================*/
 bool omx_vdec::execute_output_flush()
 {
-  unsigned      p1 = 0; // Parameter - 1
-  unsigned      p2 = 0; // Parameter - 2
-  unsigned      ident = 0;
-  bool bRet = true;
+    unsigned      p1 = 0; // Parameter - 1
+    unsigned      p2 = 0; // Parameter - 2
+    unsigned      ident = 0;
+    bool bRet = true;
 
-  /*Generate FBD for all Buffers in the FTBq*/
-  pthread_mutex_lock(&m_lock);
-  DEBUG_PRINT_LOW("\n Initiate Output Flush");
-  while (m_ftb_q.m_size)
-  {
-    DEBUG_PRINT_LOW("\n Buffer queue size %d pending buf cnt %d",
-                       m_ftb_q.m_size,pending_output_buffers);
-    m_ftb_q.pop_entry(&p1,&p2,&ident);
-    DEBUG_PRINT_LOW("\n ID(%x) P1(%x) P2(%x)", ident, p1, p2);
-    if(ident == m_fill_output_msg )
-    {
-      m_cb.FillBufferDone(&m_cmp, m_app_data, (OMX_BUFFERHEADERTYPE *)p2);
+    /*Generate FBD for all Buffers in the FTBq*/
+    pthread_mutex_lock(&m_lock);
+    DEBUG_PRINT_LOW("\n Initiate Output Flush");
+    while (m_ftb_q.m_size) {
+        DEBUG_PRINT_LOW("\n Buffer queue size %d pending buf cnt %d",
+                m_ftb_q.m_size,pending_output_buffers);
+        m_ftb_q.pop_entry(&p1,&p2,&ident);
+        DEBUG_PRINT_LOW("\n ID(%x) P1(%x) P2(%x)", ident, p1, p2);
+        if (ident == m_fill_output_msg ) {
+            m_cb.FillBufferDone(&m_cmp, m_app_data, (OMX_BUFFERHEADERTYPE *)p2);
+        } else if (ident == OMX_COMPONENT_GENERATE_FBD) {
+            fill_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p1);
+        }
     }
-    else if (ident == OMX_COMPONENT_GENERATE_FBD)
-    {
-      fill_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p1);
-    }
-  }
-  pthread_mutex_unlock(&m_lock);
-  output_flush_progress = false;
+    pthread_mutex_unlock(&m_lock);
+    output_flush_progress = false;
 
-  if (arbitrary_bytes)
-  {
-    prev_ts = LLONG_MAX;
-    rst_prev_ts = true;
-  }
-  DEBUG_PRINT_HIGH("\n OMX flush o/p Port complete PenBuf(%d)", pending_output_buffers);
-  return bRet;
+    if (arbitrary_bytes) {
+        prev_ts = LLONG_MAX;
+        rst_prev_ts = true;
+    }
+    DEBUG_PRINT_HIGH("\n OMX flush o/p Port complete PenBuf(%d)", pending_output_buffers);
+    return bRet;
 }
 /*=========================================================================
 FUNCTION : execute_input_flush
 
 DESCRIPTION
-  Executes the OMX flush at INPUT PORT.
+Executes the OMX flush at INPUT PORT.
 
 PARAMETERS
-  None.
+None.
 
 RETURN VALUE
-  true/false
+true/false
 ==========================================================================*/
 bool omx_vdec::execute_input_flush()
 {
-  unsigned       i =0;
-  unsigned      p1 = 0; // Parameter - 1
-  unsigned      p2 = 0; // Parameter - 2
-  unsigned      ident = 0;
-  bool bRet = true;
+    unsigned       i =0;
+    unsigned      p1 = 0; // Parameter - 1
+    unsigned      p2 = 0; // Parameter - 2
+    unsigned      ident = 0;
+    bool bRet = true;
 
-  /*Generate EBD for all Buffers in the ETBq*/
-  DEBUG_PRINT_LOW("\n Initiate Input Flush \n");
+    /*Generate EBD for all Buffers in the ETBq*/
+    DEBUG_PRINT_LOW("\n Initiate Input Flush \n");
 
-  pthread_mutex_lock(&m_lock);
-  DEBUG_PRINT_LOW("\n Check if the Queue is empty \n");
-  while (m_etb_q.m_size)
-  {
-    m_etb_q.pop_entry(&p1,&p2,&ident);
+    pthread_mutex_lock(&m_lock);
+    DEBUG_PRINT_LOW("\n Check if the Queue is empty \n");
+    while (m_etb_q.m_size) {
+        m_etb_q.pop_entry(&p1,&p2,&ident);
 
-    if (ident == OMX_COMPONENT_GENERATE_ETB_ARBITRARY)
-    {
-      DEBUG_PRINT_LOW("\n Flush Input Heap Buffer %p",(OMX_BUFFERHEADERTYPE *)p2);
-      m_cb.EmptyBufferDone(&m_cmp ,m_app_data, (OMX_BUFFERHEADERTYPE *)p2);
+        if (ident == OMX_COMPONENT_GENERATE_ETB_ARBITRARY) {
+            DEBUG_PRINT_LOW("\n Flush Input Heap Buffer %p",(OMX_BUFFERHEADERTYPE *)p2);
+            m_cb.EmptyBufferDone(&m_cmp ,m_app_data, (OMX_BUFFERHEADERTYPE *)p2);
+        } else if (ident == OMX_COMPONENT_GENERATE_ETB) {
+            pending_input_buffers++;
+            DEBUG_PRINT_LOW("\n Flush Input OMX_COMPONENT_GENERATE_ETB %p, pending_input_buffers %d",
+                    (OMX_BUFFERHEADERTYPE *)p2, pending_input_buffers);
+            empty_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p2);
+        } else if (ident == OMX_COMPONENT_GENERATE_EBD) {
+            DEBUG_PRINT_LOW("\n Flush Input OMX_COMPONENT_GENERATE_EBD %p",
+                    (OMX_BUFFERHEADERTYPE *)p1);
+            empty_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p1);
+        }
     }
-    else if(ident == OMX_COMPONENT_GENERATE_ETB)
-    {
-      pending_input_buffers++;
-      DEBUG_PRINT_LOW("\n Flush Input OMX_COMPONENT_GENERATE_ETB %p, pending_input_buffers %d",
-        (OMX_BUFFERHEADERTYPE *)p2, pending_input_buffers);
-      empty_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p2);
-    }
-    else if (ident == OMX_COMPONENT_GENERATE_EBD)
-    {
-      DEBUG_PRINT_LOW("\n Flush Input OMX_COMPONENT_GENERATE_EBD %p",
-        (OMX_BUFFERHEADERTYPE *)p1);
-      empty_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p1);
-    }
-  }
-  time_stamp_dts.flush_timestamp();
-  /*Check if Heap Buffers are to be flushed*/
-  if (arbitrary_bytes && !(codec_config_flag))
-  {
-    DEBUG_PRINT_LOW("\n Reset all the variables before flusing");
-    h264_scratch.nFilledLen = 0;
-    nal_count = 0;
-    look_ahead_nal = false;
-    frame_count = 0;
-    h264_last_au_ts = LLONG_MAX;
-    h264_last_au_flags = 0;
-    memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
-    m_demux_entries = 0;
-    DEBUG_PRINT_LOW("\n Initialize parser");
-    if (m_frame_parser.mutils)
-    {
-      m_frame_parser.mutils->initialize_frame_checking_environment();
-    }
+    time_stamp_dts.flush_timestamp();
+    /*Check if Heap Buffers are to be flushed*/
+    if (arbitrary_bytes && !(codec_config_flag)) {
+        DEBUG_PRINT_LOW("\n Reset all the variables before flusing");
+        h264_scratch.nFilledLen = 0;
+        nal_count = 0;
+        look_ahead_nal = false;
+        frame_count = 0;
+        h264_last_au_ts = LLONG_MAX;
+        h264_last_au_flags = 0;
+        memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
+        m_demux_entries = 0;
+        DEBUG_PRINT_LOW("\n Initialize parser");
+        if (m_frame_parser.mutils) {
+            m_frame_parser.mutils->initialize_frame_checking_environment();
+        }
 
-    while (m_input_pending_q.m_size)
-    {
-      m_input_pending_q.pop_entry(&p1,&p2,&ident);
-      m_cb.EmptyBufferDone(&m_cmp ,m_app_data, (OMX_BUFFERHEADERTYPE *)p1);
-    }
+        while (m_input_pending_q.m_size) {
+            m_input_pending_q.pop_entry(&p1,&p2,&ident);
+            m_cb.EmptyBufferDone(&m_cmp ,m_app_data, (OMX_BUFFERHEADERTYPE *)p1);
+        }
 
-    if (psource_frame)
-    {
-      m_cb.EmptyBufferDone(&m_cmp ,m_app_data,psource_frame);
-      psource_frame = NULL;
-    }
+        if (psource_frame) {
+            m_cb.EmptyBufferDone(&m_cmp ,m_app_data,psource_frame);
+            psource_frame = NULL;
+        }
 
-    if (pdest_frame)
-    {
-      pdest_frame->nFilledLen = 0;
-      m_input_free_q.insert_entry((unsigned) pdest_frame, (unsigned int)NULL,
-              (unsigned int)NULL);
-      pdest_frame = NULL;
+        if (pdest_frame) {
+            pdest_frame->nFilledLen = 0;
+            m_input_free_q.insert_entry((unsigned) pdest_frame, (unsigned int)NULL,
+                    (unsigned int)NULL);
+            pdest_frame = NULL;
+        }
+        m_frame_parser.flush();
+    } else if (codec_config_flag) {
+        DEBUG_PRINT_HIGH("frame_parser flushing skipped due to codec config buffer "
+                "is not sent to the driver yet");
     }
-    m_frame_parser.flush();
-  }
-  else if (codec_config_flag)
-  {
-    DEBUG_PRINT_HIGH("frame_parser flushing skipped due to codec config buffer "
-       "is not sent to the driver yet");
-  }
-  pthread_mutex_unlock(&m_lock);
-  input_flush_progress = false;
-  if (!arbitrary_bytes)
-  {
-    prev_ts = LLONG_MAX;
-    rst_prev_ts = true;
-  }
+    pthread_mutex_unlock(&m_lock);
+    input_flush_progress = false;
+    if (!arbitrary_bytes) {
+        prev_ts = LLONG_MAX;
+        rst_prev_ts = true;
+    }
 #ifdef _ANDROID_
-  if (m_debug_timestamp)
-  {
-    m_timestamp_list.reset_ts_list();
-  }
+    if (m_debug_timestamp) {
+        m_timestamp_list.reset_ts_list();
+    }
 #endif
-  DEBUG_PRINT_HIGH("\n OMX flush i/p Port complete PenBuf(%d)", pending_input_buffers);
-  return bRet;
+    DEBUG_PRINT_HIGH("\n OMX flush i/p Port complete PenBuf(%d)", pending_input_buffers);
+    return bRet;
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::SendCommandEvent
+   FUNCTION
+   omx_vdec::SendCommandEvent
 
-DESCRIPTION
-  Send the event to decoder pipe.  This is needed to generate the callbacks
-  in decoder thread context.
+   DESCRIPTION
+   Send the event to decoder pipe.  This is needed to generate the callbacks
+   in decoder thread context.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 bool omx_vdec::post_event(unsigned int p1,
-                          unsigned int p2,
-                          unsigned int id)
+        unsigned int p2,
+        unsigned int id)
 {
-  bool bRet      =                      false;
+    bool bRet      =                      false;
 
 
-  pthread_mutex_lock(&m_lock);
+    pthread_mutex_lock(&m_lock);
 
-  if (id == m_fill_output_msg ||
-      id == OMX_COMPONENT_GENERATE_FBD)
-  {
-    m_ftb_q.insert_entry(p1,p2,id);
-  }
-  else if (id == OMX_COMPONENT_GENERATE_ETB ||
-           id == OMX_COMPONENT_GENERATE_EBD ||
-           id == OMX_COMPONENT_GENERATE_ETB_ARBITRARY)
-  {
-	  m_etb_q.insert_entry(p1,p2,id);
-  }
-  else
-  {
-    m_cmd_q.insert_entry(p1,p2,id);
-  }
+    if (id == m_fill_output_msg ||
+            id == OMX_COMPONENT_GENERATE_FBD) {
+        m_ftb_q.insert_entry(p1,p2,id);
+    } else if (id == OMX_COMPONENT_GENERATE_ETB ||
+            id == OMX_COMPONENT_GENERATE_EBD ||
+            id == OMX_COMPONENT_GENERATE_ETB_ARBITRARY) {
+        m_etb_q.insert_entry(p1,p2,id);
+    } else {
+        m_cmd_q.insert_entry(p1,p2,id);
+    }
 
-  bRet = true;
-  DEBUG_PRINT_LOW("\n Value of this pointer in post_event %p",this);
-  post_message(this, id);
+    bRet = true;
+    DEBUG_PRINT_LOW("\n Value of this pointer in post_event %p",this);
+    post_message(this, id);
 
-  pthread_mutex_unlock(&m_lock);
+    pthread_mutex_unlock(&m_lock);
 
-  return bRet;
+    return bRet;
 }
 
 OMX_ERRORTYPE omx_vdec::get_supported_profile_level_for_1080p(OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  if(!profileLevelType)
-    return OMX_ErrorBadParameter;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    if (!profileLevelType)
+        return OMX_ErrorBadParameter;
 
-  if(profileLevelType->nPortIndex == 0) {
-    if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE))
-    {
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileBaseline;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
+    if (profileLevelType->nPortIndex == 0) {
+        if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE)) {
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileBaseline;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
 
-      }
-      else if (profileLevelType->nProfileIndex == 1)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileMain;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
-      }
-      else if(profileLevelType->nProfileIndex == 2)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileHigh;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %lu\n",
-            profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
+            } else if (profileLevelType->nProfileIndex == 1) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileMain;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
+            } else if (profileLevelType->nProfileIndex == 2) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileHigh;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
+            } else {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %lu\n",
+                        profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        } else if ((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE))) {
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_H263ProfileBaseline;
+                profileLevelType->eLevel   = OMX_VIDEO_H263Level70;
+            } else {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %lu\n", profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE)) {
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileSimple;
+                profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
+            } else if (profileLevelType->nProfileIndex == 1) {
+                profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileAdvancedSimple;
+                profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
+            } else {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %lu\n", profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vp8",OMX_MAX_STRINGNAME_SIZE)) {
+            eRet = OMX_ErrorNoMore;
+        } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE)) {
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_MPEG2ProfileSimple;
+                profileLevelType->eLevel   = OMX_VIDEO_MPEG2LevelHL;
+            } else if (profileLevelType->nProfileIndex == 1) {
+                profileLevelType->eProfile = OMX_VIDEO_MPEG2ProfileMain;
+                profileLevelType->eLevel   = OMX_VIDEO_MPEG2LevelHL;
+            } else {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %lu\n", profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        } else {
+            DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported ret NoMore for codec: %s\n", drv_ctx.kind);
+            eRet = OMX_ErrorNoMore;
+        }
+    } else {
+        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported should be queries on Input port only %lu\n", profileLevelType->nPortIndex);
+        eRet = OMX_ErrorBadPortIndex;
     }
-    else if((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE)))
-    {
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_H263ProfileBaseline;
-        profileLevelType->eLevel   = OMX_VIDEO_H263Level70;
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %lu\n", profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
-    }
-    else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE))
-    {
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileSimple;
-        profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
-      }
-      else if(profileLevelType->nProfileIndex == 1)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileAdvancedSimple;
-        profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %lu\n", profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
-    }
-    else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vp8",OMX_MAX_STRINGNAME_SIZE))
-    {
-        eRet = OMX_ErrorNoMore;
-    }
-    else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE))
-    {
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_MPEG2ProfileSimple;
-        profileLevelType->eLevel   = OMX_VIDEO_MPEG2LevelHL;
-      }
-      else if(profileLevelType->nProfileIndex == 1)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_MPEG2ProfileMain;
-        profileLevelType->eLevel   = OMX_VIDEO_MPEG2LevelHL;
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %lu\n", profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported ret NoMore for codec: %s\n", drv_ctx.kind);
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported should be queries on Input port only %lu\n", profileLevelType->nPortIndex);
-    eRet = OMX_ErrorBadPortIndex;
-  }
-  return eRet;
+    return eRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::GetParameter
+   FUNCTION
+   omx_vdec::GetParameter
 
-DESCRIPTION
-  OMX Get Parameter method implementation
+   DESCRIPTION
+   OMX Get Parameter method implementation
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  Error None if successful.
+   RETURN VALUE
+   Error None if successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::get_parameter(OMX_IN OMX_HANDLETYPE     hComp,
-                                           OMX_IN OMX_INDEXTYPE paramIndex,
-                                           OMX_INOUT OMX_PTR     paramData)
+        OMX_IN OMX_INDEXTYPE paramIndex,
+        OMX_INOUT OMX_PTR     paramData)
 {
     OMX_ERRORTYPE eRet = OMX_ErrorNone;
 
     DEBUG_PRINT_LOW("get_parameter: \n");
-    if(m_state == OMX_StateInvalid)
-    {
+    if (m_state == OMX_StateInvalid) {
         DEBUG_PRINT_ERROR("Get Param in Invalid State\n");
         return OMX_ErrorInvalidState;
     }
-    if(paramData == NULL)
-    {
+    if (paramData == NULL) {
         DEBUG_PRINT_LOW("Get Param in Invalid paramData \n");
         return OMX_ErrorBadParameter;
     }
-  switch((unsigned long)paramIndex)
-  {
-    case OMX_IndexParamPortDefinition:
-    {
-      OMX_PARAM_PORTDEFINITIONTYPE *portDefn =
-                            (OMX_PARAM_PORTDEFINITIONTYPE *) paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamPortDefinition\n");
-      eRet = update_portdef(portDefn);
-      if (eRet == OMX_ErrorNone)
-          m_port_def = *portDefn;
-      break;
-    }
-    case OMX_IndexParamVideoInit:
-    {
-      OMX_PORT_PARAM_TYPE *portParamType =
-                              (OMX_PORT_PARAM_TYPE *) paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoInit\n");
+    switch ((unsigned long)paramIndex) {
+        case OMX_IndexParamPortDefinition: {
+                               OMX_PARAM_PORTDEFINITIONTYPE *portDefn =
+                                   (OMX_PARAM_PORTDEFINITIONTYPE *) paramData;
+                               DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamPortDefinition\n");
+                               eRet = update_portdef(portDefn);
+                               if (eRet == OMX_ErrorNone)
+                                   m_port_def = *portDefn;
+                               break;
+                           }
+        case OMX_IndexParamVideoInit: {
+                              OMX_PORT_PARAM_TYPE *portParamType =
+                                  (OMX_PORT_PARAM_TYPE *) paramData;
+                              DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoInit\n");
 
-      portParamType->nVersion.nVersion = OMX_SPEC_VERSION;
-      portParamType->nSize = sizeof(portParamType);
-      portParamType->nPorts           = 2;
-      portParamType->nStartPortNumber = 0;
-      break;
-    }
-    case OMX_IndexParamVideoPortFormat:
-    {
-      OMX_VIDEO_PARAM_PORTFORMATTYPE *portFmt =
-                     (OMX_VIDEO_PARAM_PORTFORMATTYPE *)paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoPortFormat\n");
+                              portParamType->nVersion.nVersion = OMX_SPEC_VERSION;
+                              portParamType->nSize = sizeof(portParamType);
+                              portParamType->nPorts           = 2;
+                              portParamType->nStartPortNumber = 0;
+                              break;
+                          }
+        case OMX_IndexParamVideoPortFormat: {
+                                OMX_VIDEO_PARAM_PORTFORMATTYPE *portFmt =
+                                    (OMX_VIDEO_PARAM_PORTFORMATTYPE *)paramData;
+                                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoPortFormat\n");
 
-      portFmt->nVersion.nVersion = OMX_SPEC_VERSION;
-      portFmt->nSize             = sizeof(portFmt);
+                                portFmt->nVersion.nVersion = OMX_SPEC_VERSION;
+                                portFmt->nSize             = sizeof(portFmt);
 
-      if (0 == portFmt->nPortIndex)
-      {
-        if (0 == portFmt->nIndex)
-        {
-              portFmt->eColorFormat =  OMX_COLOR_FormatUnused;
-              portFmt->eCompressionFormat = eCompressionFormat;
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoPortFormat:"\
-              " NoMore compression formats\n");
-          eRet =  OMX_ErrorNoMore;
-        }
-      }
-      else if (1 == portFmt->nPortIndex)
-      {
-        portFmt->eCompressionFormat =  OMX_VIDEO_CodingUnused;
+                                if (0 == portFmt->nPortIndex) {
+                                    if (0 == portFmt->nIndex) {
+                                        portFmt->eColorFormat =  OMX_COLOR_FormatUnused;
+                                        portFmt->eCompressionFormat = eCompressionFormat;
+                                    } else {
+                                        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoPortFormat:"\
+                                                " NoMore compression formats\n");
+                                        eRet =  OMX_ErrorNoMore;
+                                    }
+                                } else if (1 == portFmt->nPortIndex) {
+                                    portFmt->eCompressionFormat =  OMX_VIDEO_CodingUnused;
 
-        if(0 == portFmt->nIndex)
-            portFmt->eColorFormat = (OMX_COLOR_FORMATTYPE)
-                QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m;
-        else if (1 == portFmt->nIndex)
-          portFmt->eColorFormat = OMX_COLOR_FormatYUV420Planar;
-        else
-        {
-           DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoPortFormat:"\
-                  " NoMore Color formats\n");
-           eRet =  OMX_ErrorNoMore;
-        }
-	DEBUG_PRINT_LOW("returning %d\n", portFmt->eColorFormat);
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("get_parameter: Bad port index %d\n",
-                          (int)portFmt->nPortIndex);
-        eRet = OMX_ErrorBadPortIndex;
-      }
-      break;
-    }
-    /*Component should support this port definition*/
-    case OMX_IndexParamAudioInit:
-    {
-        OMX_PORT_PARAM_TYPE *audioPortParamType =
-                                              (OMX_PORT_PARAM_TYPE *) paramData;
-        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamAudioInit\n");
-        audioPortParamType->nVersion.nVersion = OMX_SPEC_VERSION;
-        audioPortParamType->nSize = sizeof(audioPortParamType);
-        audioPortParamType->nPorts           = 0;
-        audioPortParamType->nStartPortNumber = 0;
-        break;
-    }
-    /*Component should support this port definition*/
-    case OMX_IndexParamImageInit:
-    {
-        OMX_PORT_PARAM_TYPE *imagePortParamType =
-                                              (OMX_PORT_PARAM_TYPE *) paramData;
-        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamImageInit\n");
-        imagePortParamType->nVersion.nVersion = OMX_SPEC_VERSION;
-        imagePortParamType->nSize = sizeof(imagePortParamType);
-        imagePortParamType->nPorts           = 0;
-        imagePortParamType->nStartPortNumber = 0;
-        break;
+                                    if (0 == portFmt->nIndex)
+                                        portFmt->eColorFormat = (OMX_COLOR_FORMATTYPE)
+                                            QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m;
+                                    else if (1 == portFmt->nIndex)
+                                        portFmt->eColorFormat = OMX_COLOR_FormatYUV420Planar;
+                                    else {
+                                        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoPortFormat:"\
+                                                " NoMore Color formats\n");
+                                        eRet =  OMX_ErrorNoMore;
+                                    }
+                                    DEBUG_PRINT_LOW("returning %d\n", portFmt->eColorFormat);
+                                } else {
+                                    DEBUG_PRINT_ERROR("get_parameter: Bad port index %d\n",
+                                            (int)portFmt->nPortIndex);
+                                    eRet = OMX_ErrorBadPortIndex;
+                                }
+                                break;
+                            }
+                            /*Component should support this port definition*/
+        case OMX_IndexParamAudioInit: {
+                              OMX_PORT_PARAM_TYPE *audioPortParamType =
+                                  (OMX_PORT_PARAM_TYPE *) paramData;
+                              DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamAudioInit\n");
+                              audioPortParamType->nVersion.nVersion = OMX_SPEC_VERSION;
+                              audioPortParamType->nSize = sizeof(audioPortParamType);
+                              audioPortParamType->nPorts           = 0;
+                              audioPortParamType->nStartPortNumber = 0;
+                              break;
+                          }
+                          /*Component should support this port definition*/
+        case OMX_IndexParamImageInit: {
+                              OMX_PORT_PARAM_TYPE *imagePortParamType =
+                                  (OMX_PORT_PARAM_TYPE *) paramData;
+                              DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamImageInit\n");
+                              imagePortParamType->nVersion.nVersion = OMX_SPEC_VERSION;
+                              imagePortParamType->nSize = sizeof(imagePortParamType);
+                              imagePortParamType->nPorts           = 0;
+                              imagePortParamType->nStartPortNumber = 0;
+                              break;
 
-    }
-    /*Component should support this port definition*/
-    case OMX_IndexParamOtherInit:
-    {
-        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamOtherInit %08x\n",
-                          paramIndex);
-        eRet =OMX_ErrorUnsupportedIndex;
-        break;
-    }
-    case OMX_IndexParamStandardComponentRole:
-    {
-        OMX_PARAM_COMPONENTROLETYPE *comp_role;
-        comp_role = (OMX_PARAM_COMPONENTROLETYPE *) paramData;
-        comp_role->nVersion.nVersion = OMX_SPEC_VERSION;
-        comp_role->nSize = sizeof(*comp_role);
+                          }
+                          /*Component should support this port definition*/
+        case OMX_IndexParamOtherInit: {
+                              DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamOtherInit %08x\n",
+                                      paramIndex);
+                              eRet =OMX_ErrorUnsupportedIndex;
+                              break;
+                          }
+        case OMX_IndexParamStandardComponentRole: {
+                                  OMX_PARAM_COMPONENTROLETYPE *comp_role;
+                                  comp_role = (OMX_PARAM_COMPONENTROLETYPE *) paramData;
+                                  comp_role->nVersion.nVersion = OMX_SPEC_VERSION;
+                                  comp_role->nSize = sizeof(*comp_role);
 
-        DEBUG_PRINT_LOW("Getparameter: OMX_IndexParamStandardComponentRole %d\n",
-                    paramIndex);
-        strlcpy((char*)comp_role->cRole,(const char*)m_cRole,
-                    OMX_MAX_STRINGNAME_SIZE);
-        break;
-    }
-    /* Added for parameter test */
-    case OMX_IndexParamPriorityMgmt:
-        {
+                                  DEBUG_PRINT_LOW("Getparameter: OMX_IndexParamStandardComponentRole %d\n",
+                                          paramIndex);
+                                  strlcpy((char*)comp_role->cRole,(const char*)m_cRole,
+                                          OMX_MAX_STRINGNAME_SIZE);
+                                  break;
+                              }
+                              /* Added for parameter test */
+        case OMX_IndexParamPriorityMgmt: {
 
-            OMX_PRIORITYMGMTTYPE *priorityMgmType =
-                                             (OMX_PRIORITYMGMTTYPE *) paramData;
-            DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamPriorityMgmt\n");
-            priorityMgmType->nVersion.nVersion = OMX_SPEC_VERSION;
-            priorityMgmType->nSize = sizeof(priorityMgmType);
+                             OMX_PRIORITYMGMTTYPE *priorityMgmType =
+                                 (OMX_PRIORITYMGMTTYPE *) paramData;
+                             DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamPriorityMgmt\n");
+                             priorityMgmType->nVersion.nVersion = OMX_SPEC_VERSION;
+                             priorityMgmType->nSize = sizeof(priorityMgmType);
 
-            break;
-        }
-    /* Added for parameter test */
-    case OMX_IndexParamCompBufferSupplier:
-        {
-            OMX_PARAM_BUFFERSUPPLIERTYPE *bufferSupplierType =
-                                     (OMX_PARAM_BUFFERSUPPLIERTYPE*) paramData;
-            DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamCompBufferSupplier\n");
+                             break;
+                         }
+                         /* Added for parameter test */
+        case OMX_IndexParamCompBufferSupplier: {
+                                   OMX_PARAM_BUFFERSUPPLIERTYPE *bufferSupplierType =
+                                       (OMX_PARAM_BUFFERSUPPLIERTYPE*) paramData;
+                                   DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamCompBufferSupplier\n");
 
-            bufferSupplierType->nSize = sizeof(bufferSupplierType);
-            bufferSupplierType->nVersion.nVersion = OMX_SPEC_VERSION;
-            if(0 == bufferSupplierType->nPortIndex)
-                bufferSupplierType->nPortIndex = OMX_BufferSupplyUnspecified;
-            else if (1 == bufferSupplierType->nPortIndex)
-                bufferSupplierType->nPortIndex = OMX_BufferSupplyUnspecified;
-            else
-                eRet = OMX_ErrorBadPortIndex;
+                                   bufferSupplierType->nSize = sizeof(bufferSupplierType);
+                                   bufferSupplierType->nVersion.nVersion = OMX_SPEC_VERSION;
+                                   if (0 == bufferSupplierType->nPortIndex)
+                                       bufferSupplierType->nPortIndex = OMX_BufferSupplyUnspecified;
+                                   else if (1 == bufferSupplierType->nPortIndex)
+                                       bufferSupplierType->nPortIndex = OMX_BufferSupplyUnspecified;
+                                   else
+                                       eRet = OMX_ErrorBadPortIndex;
 
 
-            break;
-        }
-    case OMX_IndexParamVideoAvc:
-        {
-            DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoAvc %08x\n",
-                        paramIndex);
-            break;
-        }
-    case OMX_IndexParamVideoH263:
-        {
-            DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoH263 %08x\n",
-                        paramIndex);
-            break;
-        }
-    case OMX_IndexParamVideoMpeg4:
-        {
-            DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoMpeg4 %08x\n",
-                        paramIndex);
-            break;
-        }
-    case OMX_IndexParamVideoMpeg2:
-        {
-          DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoMpeg2 %08x\n",
-              paramIndex);
-          break;
-        }
-    case OMX_IndexParamVideoProfileLevelQuerySupported:
-        {
-          DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported %08x\n", paramIndex);
-          OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType =
-            (OMX_VIDEO_PARAM_PROFILELEVELTYPE *)paramData;
-    eRet = get_supported_profile_level_for_1080p(profileLevelType);
-          break;
-        }
+                                   break;
+                               }
+        case OMX_IndexParamVideoAvc: {
+                             DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoAvc %08x\n",
+                                     paramIndex);
+                             break;
+                         }
+        case OMX_IndexParamVideoH263: {
+                              DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoH263 %08x\n",
+                                      paramIndex);
+                              break;
+                          }
+        case OMX_IndexParamVideoMpeg4: {
+                               DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoMpeg4 %08x\n",
+                                       paramIndex);
+                               break;
+                           }
+        case OMX_IndexParamVideoMpeg2: {
+                               DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoMpeg2 %08x\n",
+                                       paramIndex);
+                               break;
+                           }
+        case OMX_IndexParamVideoProfileLevelQuerySupported: {
+                                        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported %08x\n", paramIndex);
+                                        OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType =
+                                            (OMX_VIDEO_PARAM_PROFILELEVELTYPE *)paramData;
+                                        eRet = get_supported_profile_level_for_1080p(profileLevelType);
+                                        break;
+                                    }
 #if defined (_ANDROID_HONEYCOMB_) || defined (_ANDROID_ICS_)
-    case OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage:
-        {
-            DEBUG_PRINT_LOW("get_parameter: OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage\n");
-            GetAndroidNativeBufferUsageParams* nativeBuffersUsage = (GetAndroidNativeBufferUsageParams *) paramData;
-            if(nativeBuffersUsage->nPortIndex == OMX_CORE_OUTPUT_PORT_INDEX) {
+        case OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage: {
+                                        DEBUG_PRINT_LOW("get_parameter: OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage\n");
+                                        GetAndroidNativeBufferUsageParams* nativeBuffersUsage = (GetAndroidNativeBufferUsageParams *) paramData;
+                                        if (nativeBuffersUsage->nPortIndex == OMX_CORE_OUTPUT_PORT_INDEX) {
 
-                if(secure_mode) {
-                        nativeBuffersUsage->nUsage = (GRALLOC_USAGE_PRIVATE_MM_HEAP | GRALLOC_USAGE_PROTECTED |
-                                                      GRALLOC_USAGE_PRIVATE_UNCACHED);
-                } else {
-                        nativeBuffersUsage->nUsage =
-                            (GRALLOC_USAGE_PRIVATE_IOMMU_HEAP |
-                             GRALLOC_USAGE_PRIVATE_UNCACHED);
-                }
-            } else {
-                DEBUG_PRINT_HIGH("get_parameter: OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage failed!\n");
-                eRet = OMX_ErrorBadParameter;
-            }
-        }
-        break;
+                                            if (secure_mode) {
+                                                nativeBuffersUsage->nUsage = (GRALLOC_USAGE_PRIVATE_MM_HEAP | GRALLOC_USAGE_PROTECTED |
+                                                        GRALLOC_USAGE_PRIVATE_UNCACHED);
+                                            } else {
+                                                nativeBuffersUsage->nUsage =
+                                                    (GRALLOC_USAGE_PRIVATE_IOMMU_HEAP |
+                                                     GRALLOC_USAGE_PRIVATE_UNCACHED);
+                                            }
+                                        } else {
+                                            DEBUG_PRINT_HIGH("get_parameter: OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage failed!\n");
+                                            eRet = OMX_ErrorBadParameter;
+                                        }
+                                    }
+                                    break;
 #endif
 
-    default:
-    {
-      DEBUG_PRINT_ERROR("get_parameter: unknown param %08x\n", paramIndex);
-      eRet =OMX_ErrorUnsupportedIndex;
+        default: {
+                 DEBUG_PRINT_ERROR("get_parameter: unknown param %08x\n", paramIndex);
+                 eRet =OMX_ErrorUnsupportedIndex;
+             }
+
     }
 
-  }
+    DEBUG_PRINT_LOW("\n get_parameter returning WxH(%d x %d) SxSH(%d x %d)\n",
+            drv_ctx.video_resolution.frame_width,
+            drv_ctx.video_resolution.frame_height,
+            drv_ctx.video_resolution.stride,
+            drv_ctx.video_resolution.scan_lines);
 
-  DEBUG_PRINT_LOW("\n get_parameter returning WxH(%d x %d) SxSH(%d x %d)\n",
-      drv_ctx.video_resolution.frame_width,
-      drv_ctx.video_resolution.frame_height,
-      drv_ctx.video_resolution.stride,
-      drv_ctx.video_resolution.scan_lines);
-
-  return eRet;
+    return eRet;
 }
 
 #if defined (_ANDROID_HONEYCOMB_) || defined (_ANDROID_ICS_)
@@ -3085,22 +2735,22 @@
     OMX_ERRORTYPE eRet = OMX_ErrorNone;
     UseAndroidNativeBufferParams *params = (UseAndroidNativeBufferParams *)data;
 
-    if((params == NULL) ||
-      (params->nativeBuffer == NULL) ||
-      (params->nativeBuffer->handle == NULL) ||
-      !m_enable_android_native_buffers)
+    if ((params == NULL) ||
+            (params->nativeBuffer == NULL) ||
+            (params->nativeBuffer->handle == NULL) ||
+            !m_enable_android_native_buffers)
         return OMX_ErrorBadParameter;
     m_use_android_native_buffers = OMX_TRUE;
     sp<android_native_buffer_t> nBuf = params->nativeBuffer;
     private_handle_t *handle = (private_handle_t *)nBuf->handle;
-    if(OMX_CORE_OUTPUT_PORT_INDEX == params->nPortIndex) {  //android native buffers can be used only on Output port
+    if (OMX_CORE_OUTPUT_PORT_INDEX == params->nPortIndex) { //android native buffers can be used only on Output port
         OMX_U8 *buffer = NULL;
-        if(!secure_mode) {
-                buffer = (OMX_U8*)mmap(0, handle->size,
+        if (!secure_mode) {
+            buffer = (OMX_U8*)mmap(0, handle->size,
                     PROT_READ|PROT_WRITE, MAP_SHARED, handle->fd, 0);
-                if(buffer == MAP_FAILED) {
-                    DEBUG_PRINT_ERROR("Failed to mmap pmem with fd = %d, size = %d", handle->fd, handle->size);
-                    return OMX_ErrorInsufficientResources;
+            if (buffer == MAP_FAILED) {
+                DEBUG_PRINT_ERROR("Failed to mmap pmem with fd = %d, size = %d", handle->fd, handle->size);
+                return OMX_ErrorInsufficientResources;
             }
         }
         eRet = use_buffer(hComp,params->bufferHeader,params->nPortIndex,data,handle->size,buffer);
@@ -3111,1077 +2761,906 @@
 }
 #endif
 /* ======================================================================
-FUNCTION
-  omx_vdec::Setparameter
+   FUNCTION
+   omx_vdec::Setparameter
 
-DESCRIPTION
-  OMX Set Parameter method implementation.
+   DESCRIPTION
+   OMX Set Parameter method implementation.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if successful.
+   RETURN VALUE
+   OMX Error None if successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::set_parameter(OMX_IN OMX_HANDLETYPE     hComp,
-                                           OMX_IN OMX_INDEXTYPE paramIndex,
-                                           OMX_IN OMX_PTR        paramData)
+        OMX_IN OMX_INDEXTYPE paramIndex,
+        OMX_IN OMX_PTR        paramData)
 {
     OMX_ERRORTYPE eRet = OMX_ErrorNone;
     int ret=0;
     struct v4l2_format fmt;
-    if(m_state == OMX_StateInvalid)
-    {
+    if (m_state == OMX_StateInvalid) {
         DEBUG_PRINT_ERROR("Set Param in Invalid State\n");
         return OMX_ErrorInvalidState;
     }
-    if(paramData == NULL)
-    {
-         DEBUG_PRINT_ERROR("Get Param in Invalid paramData \n");
-         return OMX_ErrorBadParameter;
+    if (paramData == NULL) {
+        DEBUG_PRINT_ERROR("Get Param in Invalid paramData \n");
+        return OMX_ErrorBadParameter;
     }
-    if((m_state != OMX_StateLoaded) &&
-          BITMASK_ABSENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING) &&
-          (m_out_bEnabled == OMX_TRUE) &&
-          BITMASK_ABSENT(&m_flags, OMX_COMPONENT_INPUT_ENABLE_PENDING) &&
-          (m_inp_bEnabled == OMX_TRUE)) {
+    if ((m_state != OMX_StateLoaded) &&
+            BITMASK_ABSENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING) &&
+            (m_out_bEnabled == OMX_TRUE) &&
+            BITMASK_ABSENT(&m_flags, OMX_COMPONENT_INPUT_ENABLE_PENDING) &&
+            (m_inp_bEnabled == OMX_TRUE)) {
         DEBUG_PRINT_ERROR("Set Param in Invalid State \n");
         return OMX_ErrorIncorrectStateOperation;
     }
-  switch((unsigned long)paramIndex)
-  {
-    case OMX_IndexParamPortDefinition:
-    {
-      OMX_PARAM_PORTDEFINITIONTYPE *portDefn;
-      portDefn = (OMX_PARAM_PORTDEFINITIONTYPE *) paramData;
-      //TODO: Check if any allocate buffer/use buffer/useNativeBuffer has
-      //been called.
-      DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPortDefinition H= %d, W = %d\n",
-             (int)portDefn->format.video.nFrameHeight,
-             (int)portDefn->format.video.nFrameWidth);
-      if(OMX_DirOutput == portDefn->eDir)
-      {
-          DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPortDefinition OP port\n");
-          m_display_id = portDefn->format.video.pNativeWindow;
-          unsigned int buffer_size;
-          if (!client_buffers.get_buffer_req(buffer_size)) {
-              DEBUG_PRINT_ERROR("\n Error in getting buffer requirements");
-              eRet = OMX_ErrorBadParameter;
-          } else {
-              if ( portDefn->nBufferCountActual >= drv_ctx.op_buf.mincount &&
-                      portDefn->nBufferSize >=  drv_ctx.op_buf.buffer_size )
-              {
-                  drv_ctx.op_buf.actualcount = portDefn->nBufferCountActual;
-                  drv_ctx.op_buf.buffer_size = portDefn->nBufferSize;
-                  drv_ctx.extradata_info.count = drv_ctx.op_buf.actualcount;
-                  drv_ctx.extradata_info.size = drv_ctx.extradata_info.count *
-                                        drv_ctx.extradata_info.buffer_size;
-                  eRet = set_buffer_req(&drv_ctx.op_buf);
-                  if (eRet == OMX_ErrorNone)
-                      m_port_def = *portDefn;
-              }
-              else
-              {
-                  DEBUG_PRINT_ERROR("ERROR: OP Requirements(#%d: %u) Requested(#%lu: %lu)\n",
-                          drv_ctx.op_buf.mincount, drv_ctx.op_buf.buffer_size,
-                          portDefn->nBufferCountActual, portDefn->nBufferSize);
-                  eRet = OMX_ErrorBadParameter;
-              }
-          }
-      }
-      else if(OMX_DirInput == portDefn->eDir)
-      {
-        bool port_format_changed = false;
-        if((portDefn->format.video.xFramerate >> 16) > 0 &&
-           (portDefn->format.video.xFramerate >> 16) <= MAX_SUPPORTED_FPS)
-        {
-            // Frame rate only should be set if this is a "known value" or to
-            // activate ts prediction logic (arbitrary mode only) sending input
-            // timestamps with max value (LLONG_MAX).
-            DEBUG_PRINT_HIGH("set_parameter: frame rate set by omx client : %lu",
-                             portDefn->format.video.xFramerate >> 16);
-            Q16ToFraction(portDefn->format.video.xFramerate, drv_ctx.frame_rate.fps_numerator,
-                          drv_ctx.frame_rate.fps_denominator);
-            if(!drv_ctx.frame_rate.fps_numerator)
-            {
-              DEBUG_PRINT_ERROR("Numerator is zero setting to 30");
-              drv_ctx.frame_rate.fps_numerator = 30;
-            }
-            if(drv_ctx.frame_rate.fps_denominator)
-              drv_ctx.frame_rate.fps_numerator = (int)
-                  drv_ctx.frame_rate.fps_numerator / drv_ctx.frame_rate.fps_denominator;
-              drv_ctx.frame_rate.fps_denominator = 1;
-            frm_int = drv_ctx.frame_rate.fps_denominator * 1e6 /
-                      drv_ctx.frame_rate.fps_numerator;
-            DEBUG_PRINT_LOW("set_parameter: frm_int(%lu) fps(%.2f)",
-                             frm_int, drv_ctx.frame_rate.fps_numerator /
-                             (float)drv_ctx.frame_rate.fps_denominator);
-        }
-         DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPortDefinition IP port\n");
-         if(drv_ctx.video_resolution.frame_height !=
-               portDefn->format.video.nFrameHeight ||
-             drv_ctx.video_resolution.frame_width  !=
-               portDefn->format.video.nFrameWidth)
-         {
-             DEBUG_PRINT_LOW("\n SetParam IP: WxH(%lu x %lu)\n",
-                           portDefn->format.video.nFrameWidth,
-                           portDefn->format.video.nFrameHeight);
-             port_format_changed = true;
-             if (portDefn->format.video.nFrameHeight != 0x0 &&
-                 portDefn->format.video.nFrameWidth != 0x0)
-             {
-                 update_resolution(portDefn->format.video.nFrameWidth,
-                    portDefn->format.video.nFrameHeight,
-					portDefn->format.video.nFrameWidth,
-					portDefn->format.video.nFrameHeight);
-                 eRet = is_video_session_supported();
-                 if (eRet)
-                    break;
-			fmt.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-			fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
-			fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
-			fmt.fmt.pix_mp.pixelformat = output_capability;
-			DEBUG_PRINT_LOW("\n fmt.fmt.pix_mp.height = %d , fmt.fmt.pix_mp.width = %d \n",fmt.fmt.pix_mp.height,fmt.fmt.pix_mp.width);
-			ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_FMT, &fmt);
-               if (ret)
-               {
-                   DEBUG_PRINT_ERROR("\n Set Resolution failed");
-                   eRet = OMX_ErrorUnsupportedSetting;
-               }
-               else
-                   eRet = get_buffer_req(&drv_ctx.op_buf);
-             }
-         }
-         if (portDefn->nBufferCountActual >= drv_ctx.ip_buf.mincount
-                  || portDefn->nBufferSize != drv_ctx.ip_buf.buffer_size)
-         {
-             port_format_changed = true;
-             vdec_allocatorproperty *buffer_prop = &drv_ctx.ip_buf;
-             drv_ctx.ip_buf.actualcount = portDefn->nBufferCountActual;
-             drv_ctx.ip_buf.buffer_size = (portDefn->nBufferSize + buffer_prop->alignment - 1) &
-                      (~(buffer_prop->alignment - 1));
-             eRet = set_buffer_req(buffer_prop);
-         }
-         if (false == port_format_changed)
-         {
-             DEBUG_PRINT_ERROR("ERROR: IP Requirements(#%d: %u) Requested(#%lu: %lu)\n",
-               drv_ctx.ip_buf.mincount, drv_ctx.ip_buf.buffer_size,
-               portDefn->nBufferCountActual, portDefn->nBufferSize);
-             eRet = OMX_ErrorBadParameter;
-         }
-      }
-      else if (portDefn->eDir ==  OMX_DirMax)
-      {
-          DEBUG_PRINT_ERROR(" Set_parameter: Bad Port idx %d",
-                      (int)portDefn->nPortIndex);
-          eRet = OMX_ErrorBadPortIndex;
-      }
-    }
-    break;
-    case OMX_IndexParamVideoPortFormat:
-    {
-      OMX_VIDEO_PARAM_PORTFORMATTYPE *portFmt =
-                     (OMX_VIDEO_PARAM_PORTFORMATTYPE *)paramData;
-      int ret=0;
-      struct v4l2_format fmt;
-      DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoPortFormat %d\n",
-              portFmt->eColorFormat);
+    switch ((unsigned long)paramIndex) {
+        case OMX_IndexParamPortDefinition: {
+                               OMX_PARAM_PORTDEFINITIONTYPE *portDefn;
+                               portDefn = (OMX_PARAM_PORTDEFINITIONTYPE *) paramData;
+                               //TODO: Check if any allocate buffer/use buffer/useNativeBuffer has
+                               //been called.
+                               DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPortDefinition H= %d, W = %d\n",
+                                       (int)portDefn->format.video.nFrameHeight,
+                                       (int)portDefn->format.video.nFrameWidth);
+                               if (OMX_DirOutput == portDefn->eDir) {
+                                   DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPortDefinition OP port\n");
+                                   m_display_id = portDefn->format.video.pNativeWindow;
+                                   unsigned int buffer_size;
+                                   if (!client_buffers.get_buffer_req(buffer_size)) {
+                                       DEBUG_PRINT_ERROR("\n Error in getting buffer requirements");
+                                       eRet = OMX_ErrorBadParameter;
+                                   } else {
+                                       if ( portDefn->nBufferCountActual >= drv_ctx.op_buf.mincount &&
+                                               portDefn->nBufferSize >=  drv_ctx.op_buf.buffer_size ) {
+                                           drv_ctx.op_buf.actualcount = portDefn->nBufferCountActual;
+                                           drv_ctx.op_buf.buffer_size = portDefn->nBufferSize;
+                                           drv_ctx.extradata_info.count = drv_ctx.op_buf.actualcount;
+                                           drv_ctx.extradata_info.size = drv_ctx.extradata_info.count *
+                                               drv_ctx.extradata_info.buffer_size;
+                                           eRet = set_buffer_req(&drv_ctx.op_buf);
+                                           if (eRet == OMX_ErrorNone)
+                                               m_port_def = *portDefn;
+                                       } else {
+                                           DEBUG_PRINT_ERROR("ERROR: OP Requirements(#%d: %u) Requested(#%lu: %lu)\n",
+                                                   drv_ctx.op_buf.mincount, drv_ctx.op_buf.buffer_size,
+                                                   portDefn->nBufferCountActual, portDefn->nBufferSize);
+                                           eRet = OMX_ErrorBadParameter;
+                                       }
+                                   }
+                               } else if (OMX_DirInput == portDefn->eDir) {
+                                   bool port_format_changed = false;
+                                   if ((portDefn->format.video.xFramerate >> 16) > 0 &&
+                                           (portDefn->format.video.xFramerate >> 16) <= MAX_SUPPORTED_FPS) {
+                                       // Frame rate only should be set if this is a "known value" or to
+                                       // activate ts prediction logic (arbitrary mode only) sending input
+                                       // timestamps with max value (LLONG_MAX).
+                                       DEBUG_PRINT_HIGH("set_parameter: frame rate set by omx client : %lu",
+                                               portDefn->format.video.xFramerate >> 16);
+                                       Q16ToFraction(portDefn->format.video.xFramerate, drv_ctx.frame_rate.fps_numerator,
+                                               drv_ctx.frame_rate.fps_denominator);
+                                       if (!drv_ctx.frame_rate.fps_numerator) {
+                                           DEBUG_PRINT_ERROR("Numerator is zero setting to 30");
+                                           drv_ctx.frame_rate.fps_numerator = 30;
+                                       }
+                                       if (drv_ctx.frame_rate.fps_denominator)
+                                           drv_ctx.frame_rate.fps_numerator = (int)
+                                               drv_ctx.frame_rate.fps_numerator / drv_ctx.frame_rate.fps_denominator;
+                                       drv_ctx.frame_rate.fps_denominator = 1;
+                                       frm_int = drv_ctx.frame_rate.fps_denominator * 1e6 /
+                                           drv_ctx.frame_rate.fps_numerator;
+                                       DEBUG_PRINT_LOW("set_parameter: frm_int(%lu) fps(%.2f)",
+                                               frm_int, drv_ctx.frame_rate.fps_numerator /
+                                               (float)drv_ctx.frame_rate.fps_denominator);
+                                   }
+                                   DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPortDefinition IP port\n");
+                                   if (drv_ctx.video_resolution.frame_height !=
+                                           portDefn->format.video.nFrameHeight ||
+                                           drv_ctx.video_resolution.frame_width  !=
+                                           portDefn->format.video.nFrameWidth) {
+                                       DEBUG_PRINT_LOW("\n SetParam IP: WxH(%lu x %lu)\n",
+                                               portDefn->format.video.nFrameWidth,
+                                               portDefn->format.video.nFrameHeight);
+                                       port_format_changed = true;
+                                       if (portDefn->format.video.nFrameHeight != 0x0 &&
+                                               portDefn->format.video.nFrameWidth != 0x0) {
+                                           update_resolution(portDefn->format.video.nFrameWidth,
+                                                   portDefn->format.video.nFrameHeight,
+                                                   portDefn->format.video.nFrameWidth,
+                                                   portDefn->format.video.nFrameHeight);
+                                           eRet = is_video_session_supported();
+                                           if (eRet)
+                                               break;
+                                           fmt.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+                                           fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
+                                           fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
+                                           fmt.fmt.pix_mp.pixelformat = output_capability;
+                                           DEBUG_PRINT_LOW("\n fmt.fmt.pix_mp.height = %d , fmt.fmt.pix_mp.width = %d \n",fmt.fmt.pix_mp.height,fmt.fmt.pix_mp.width);
+                                           ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_FMT, &fmt);
+                                           if (ret) {
+                                               DEBUG_PRINT_ERROR("\n Set Resolution failed");
+                                               eRet = OMX_ErrorUnsupportedSetting;
+                                           } else
+                                               eRet = get_buffer_req(&drv_ctx.op_buf);
+                                       }
+                                   }
+                                   if (portDefn->nBufferCountActual >= drv_ctx.ip_buf.mincount
+                                           || portDefn->nBufferSize != drv_ctx.ip_buf.buffer_size) {
+                                       port_format_changed = true;
+                                       vdec_allocatorproperty *buffer_prop = &drv_ctx.ip_buf;
+                                       drv_ctx.ip_buf.actualcount = portDefn->nBufferCountActual;
+                                       drv_ctx.ip_buf.buffer_size = (portDefn->nBufferSize + buffer_prop->alignment - 1) &
+                                           (~(buffer_prop->alignment - 1));
+                                       eRet = set_buffer_req(buffer_prop);
+                                   }
+                                   if (false == port_format_changed) {
+                                       DEBUG_PRINT_ERROR("ERROR: IP Requirements(#%d: %u) Requested(#%lu: %lu)\n",
+                                               drv_ctx.ip_buf.mincount, drv_ctx.ip_buf.buffer_size,
+                                               portDefn->nBufferCountActual, portDefn->nBufferSize);
+                                       eRet = OMX_ErrorBadParameter;
+                                   }
+                               } else if (portDefn->eDir ==  OMX_DirMax) {
+                                   DEBUG_PRINT_ERROR(" Set_parameter: Bad Port idx %d",
+                                           (int)portDefn->nPortIndex);
+                                   eRet = OMX_ErrorBadPortIndex;
+                               }
+                           }
+                           break;
+        case OMX_IndexParamVideoPortFormat: {
+                                OMX_VIDEO_PARAM_PORTFORMATTYPE *portFmt =
+                                    (OMX_VIDEO_PARAM_PORTFORMATTYPE *)paramData;
+                                int ret=0;
+                                struct v4l2_format fmt;
+                                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoPortFormat %d\n",
+                                        portFmt->eColorFormat);
 
-      if(1 == portFmt->nPortIndex)
-      {
-          fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-          fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
-          fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
-          fmt.fmt.pix_mp.pixelformat = capture_capability;
-          enum vdec_output_fromat op_format;
-          if((portFmt->eColorFormat == (OMX_COLOR_FORMATTYPE)
-                      QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m) ||
-              (portFmt->eColorFormat == OMX_COLOR_FormatYUV420Planar))
-              op_format = (enum vdec_output_fromat)VDEC_YUV_FORMAT_NV12;
-          else if(portFmt->eColorFormat ==
-                  (OMX_COLOR_FORMATTYPE)
-                  QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka)
-              op_format = VDEC_YUV_FORMAT_TILE_4x2;
-          else
-              eRet = OMX_ErrorBadParameter;
+                                if (1 == portFmt->nPortIndex) {
+                                    fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+                                    fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
+                                    fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
+                                    fmt.fmt.pix_mp.pixelformat = capture_capability;
+                                    enum vdec_output_fromat op_format;
+                                    if ((portFmt->eColorFormat == (OMX_COLOR_FORMATTYPE)
+                                                QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m) ||
+                                            (portFmt->eColorFormat == OMX_COLOR_FormatYUV420Planar))
+                                        op_format = (enum vdec_output_fromat)VDEC_YUV_FORMAT_NV12;
+                                    else if (portFmt->eColorFormat ==
+                                            (OMX_COLOR_FORMATTYPE)
+                                            QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka)
+                                        op_format = VDEC_YUV_FORMAT_TILE_4x2;
+                                    else
+                                        eRet = OMX_ErrorBadParameter;
 
-          if(eRet == OMX_ErrorNone)
-          {
-              drv_ctx.output_format = op_format;
-              ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_FMT, &fmt);
-              if(ret)
-              {
-                  DEBUG_PRINT_ERROR("\n Set output format failed");
-                  eRet = OMX_ErrorUnsupportedSetting;
-                  /*TODO: How to handle this case */
-              }
-              else
-              {
-                  eRet = get_buffer_req(&drv_ctx.op_buf);
-              }
-          }
-          if (eRet == OMX_ErrorNone){
-           if (!client_buffers.set_color_format(portFmt->eColorFormat)) {
-             DEBUG_PRINT_ERROR("\n Set color format failed");
-             eRet = OMX_ErrorBadParameter;
-           }
-         }
-      }
-    }
-    break;
+                                    if (eRet == OMX_ErrorNone) {
+                                        drv_ctx.output_format = op_format;
+                                        ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_FMT, &fmt);
+                                        if (ret) {
+                                            DEBUG_PRINT_ERROR("\n Set output format failed");
+                                            eRet = OMX_ErrorUnsupportedSetting;
+                                            /*TODO: How to handle this case */
+                                        } else {
+                                            eRet = get_buffer_req(&drv_ctx.op_buf);
+                                        }
+                                    }
+                                    if (eRet == OMX_ErrorNone) {
+                                        if (!client_buffers.set_color_format(portFmt->eColorFormat)) {
+                                            DEBUG_PRINT_ERROR("\n Set color format failed");
+                                            eRet = OMX_ErrorBadParameter;
+                                        }
+                                    }
+                                }
+                            }
+                            break;
 
-    case OMX_QcomIndexPortDefn:
-    {
-        OMX_QCOM_PARAM_PORTDEFINITIONTYPE *portFmt =
-            (OMX_QCOM_PARAM_PORTDEFINITIONTYPE *) paramData;
-        DEBUG_PRINT_LOW("set_parameter: OMX_IndexQcomParamPortDefinitionType %lu\n",
-            portFmt->nFramePackingFormat);
+        case OMX_QcomIndexPortDefn: {
+                            OMX_QCOM_PARAM_PORTDEFINITIONTYPE *portFmt =
+                                (OMX_QCOM_PARAM_PORTDEFINITIONTYPE *) paramData;
+                            DEBUG_PRINT_LOW("set_parameter: OMX_IndexQcomParamPortDefinitionType %lu\n",
+                                    portFmt->nFramePackingFormat);
 
-        /* Input port */
-        if (portFmt->nPortIndex == 0)
-        {
-            if (portFmt->nFramePackingFormat == OMX_QCOM_FramePacking_Arbitrary)
-            {
-              if(secure_mode) {
-                arbitrary_bytes = false;
-                DEBUG_PRINT_ERROR("setparameter: cannot set to arbitary bytes mode in secure session");
-                eRet = OMX_ErrorUnsupportedSetting;
-              } else {
-               arbitrary_bytes = true;
-              }
-            }
-            else if (portFmt->nFramePackingFormat ==
-                OMX_QCOM_FramePacking_OnlyOneCompleteFrame)
-            {
-               arbitrary_bytes = false;
-            }
-            else
-            {
-                DEBUG_PRINT_ERROR("Setparameter: unknown FramePacking format %lu\n",
-                    portFmt->nFramePackingFormat);
-                eRet = OMX_ErrorUnsupportedSetting;
-            }
-        }
-        else if (portFmt->nPortIndex == OMX_CORE_OUTPUT_PORT_INDEX)
-        {
-          DEBUG_PRINT_HIGH("set_parameter: OMX_IndexQcomParamPortDefinitionType OP Port\n");
-          if( (portFmt->nMemRegion > OMX_QCOM_MemRegionInvalid &&
-               portFmt->nMemRegion < OMX_QCOM_MemRegionMax) &&
-              portFmt->nCacheAttr == OMX_QCOM_CacheAttrNone)
-          {
-            m_out_mem_region_smi = OMX_TRUE;
-            if ((m_out_mem_region_smi && m_out_pvt_entry_pmem))
-            {
-              DEBUG_PRINT_HIGH("set_parameter: OMX_IndexQcomParamPortDefinitionType OP Port: out pmem set\n");
-              m_use_output_pmem = OMX_TRUE;
-            }
-          }
-        }
-    }
-    break;
+                            /* Input port */
+                            if (portFmt->nPortIndex == 0) {
+                                if (portFmt->nFramePackingFormat == OMX_QCOM_FramePacking_Arbitrary) {
+                                    if (secure_mode) {
+                                        arbitrary_bytes = false;
+                                        DEBUG_PRINT_ERROR("setparameter: cannot set to arbitary bytes mode in secure session");
+                                        eRet = OMX_ErrorUnsupportedSetting;
+                                    } else {
+                                        arbitrary_bytes = true;
+                                    }
+                                } else if (portFmt->nFramePackingFormat ==
+                                        OMX_QCOM_FramePacking_OnlyOneCompleteFrame) {
+                                    arbitrary_bytes = false;
+                                } else {
+                                    DEBUG_PRINT_ERROR("Setparameter: unknown FramePacking format %lu\n",
+                                            portFmt->nFramePackingFormat);
+                                    eRet = OMX_ErrorUnsupportedSetting;
+                                }
+                            } else if (portFmt->nPortIndex == OMX_CORE_OUTPUT_PORT_INDEX) {
+                                DEBUG_PRINT_HIGH("set_parameter: OMX_IndexQcomParamPortDefinitionType OP Port\n");
+                                if ( (portFmt->nMemRegion > OMX_QCOM_MemRegionInvalid &&
+                                            portFmt->nMemRegion < OMX_QCOM_MemRegionMax) &&
+                                        portFmt->nCacheAttr == OMX_QCOM_CacheAttrNone) {
+                                    m_out_mem_region_smi = OMX_TRUE;
+                                    if ((m_out_mem_region_smi && m_out_pvt_entry_pmem)) {
+                                        DEBUG_PRINT_HIGH("set_parameter: OMX_IndexQcomParamPortDefinitionType OP Port: out pmem set\n");
+                                        m_use_output_pmem = OMX_TRUE;
+                                    }
+                                }
+                            }
+                        }
+                        break;
 
-     case OMX_IndexParamStandardComponentRole:
-     {
-          OMX_PARAM_COMPONENTROLETYPE *comp_role;
-          comp_role = (OMX_PARAM_COMPONENTROLETYPE *) paramData;
-          DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamStandardComponentRole %s\n",
-                       comp_role->cRole);
+        case OMX_IndexParamStandardComponentRole: {
+                                  OMX_PARAM_COMPONENTROLETYPE *comp_role;
+                                  comp_role = (OMX_PARAM_COMPONENTROLETYPE *) paramData;
+                                  DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamStandardComponentRole %s\n",
+                                          comp_role->cRole);
 
-          if((m_state == OMX_StateLoaded)&&
-              !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
-          {
-           DEBUG_PRINT_LOW("Set Parameter called in valid state");
-          }
-          else
-          {
-             DEBUG_PRINT_ERROR("Set Parameter called in Invalid State\n");
-             return OMX_ErrorIncorrectStateOperation;
-          }
+                                  if ((m_state == OMX_StateLoaded)&&
+                                          !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING)) {
+                                      DEBUG_PRINT_LOW("Set Parameter called in valid state");
+                                  } else {
+                                      DEBUG_PRINT_ERROR("Set Parameter called in Invalid State\n");
+                                      return OMX_ErrorIncorrectStateOperation;
+                                  }
 
-          if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE))
-          {
-              if(!strncmp((char*)comp_role->cRole,"video_decoder.avc",OMX_MAX_STRINGNAME_SIZE))
-              {
-                  strlcpy((char*)m_cRole,"video_decoder.avc",OMX_MAX_STRINGNAME_SIZE);
-              }
-              else
-              {
-                  DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-                  eRet =OMX_ErrorUnsupportedSetting;
-              }
-          }
-          else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE))
-          {
-              if(!strncmp((const char*)comp_role->cRole,"video_decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE))
-              {
-                  strlcpy((char*)m_cRole,"video_decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE);
-              }
-              else
-              {
-                  DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-                  eRet = OMX_ErrorUnsupportedSetting;
-              }
-          }
-          else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE))
-          {
-              if(!strncmp((const char*)comp_role->cRole,"video_decoder.h263",OMX_MAX_STRINGNAME_SIZE))
-              {
-                  strlcpy((char*)m_cRole,"video_decoder.h263",OMX_MAX_STRINGNAME_SIZE);
-              }
-              else
-              {
-                  DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-                  eRet =OMX_ErrorUnsupportedSetting;
-              }
-          }
-          else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE))
-          {
-            if(!strncmp((const char*)comp_role->cRole,"video_decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE))
-            {
-              strlcpy((char*)m_cRole,"video_decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE);
-            }
-            else
-            {
-              DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-              eRet = OMX_ErrorUnsupportedSetting;
-            }
-          }
-          else if((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",OMX_MAX_STRINGNAME_SIZE)) ||
-                  (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx311",OMX_MAX_STRINGNAME_SIZE))
-                  )
-          {
-              if(!strncmp((const char*)comp_role->cRole,"video_decoder.divx",OMX_MAX_STRINGNAME_SIZE))
-              {
-                  strlcpy((char*)m_cRole,"video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
-              }
-              else
-              {
-                  DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-                  eRet =OMX_ErrorUnsupportedSetting;
-              }
-          }
-          else if ( (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1",OMX_MAX_STRINGNAME_SIZE)) ||
-                    (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.wmv",OMX_MAX_STRINGNAME_SIZE))
-                    )
-          {
-              if(!strncmp((const char*)comp_role->cRole,"video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE))
-              {
-                  strlcpy((char*)m_cRole,"video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
-              }
-              else
-              {
-                  DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-                  eRet =OMX_ErrorUnsupportedSetting;
-              }
-          }
-	  else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vp8",OMX_MAX_STRINGNAME_SIZE))
-          {
-            if(!strncmp((const char*)comp_role->cRole,"video_decoder.vp8",OMX_MAX_STRINGNAME_SIZE) ||
-               (!strncmp((const char*)comp_role->cRole,"video_decoder.vpx",OMX_MAX_STRINGNAME_SIZE)))
-            {
-              strlcpy((char*)m_cRole,"video_decoder.vp8",OMX_MAX_STRINGNAME_SIZE);
-            }
-	    else
-            {
-              DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
-              eRet = OMX_ErrorUnsupportedSetting;
-            }
-	  }
-          else
-          {
-               DEBUG_PRINT_ERROR("Setparameter: unknown param %s\n", drv_ctx.kind);
-               eRet = OMX_ErrorInvalidComponentName;
-          }
-          break;
-     }
+                                  if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE)) {
+                                      if (!strncmp((char*)comp_role->cRole,"video_decoder.avc",OMX_MAX_STRINGNAME_SIZE)) {
+                                          strlcpy((char*)m_cRole,"video_decoder.avc",OMX_MAX_STRINGNAME_SIZE);
+                                      } else {
+                                          DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                                          eRet =OMX_ErrorUnsupportedSetting;
+                                      }
+                                  } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE)) {
+                                      if (!strncmp((const char*)comp_role->cRole,"video_decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE)) {
+                                          strlcpy((char*)m_cRole,"video_decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE);
+                                      } else {
+                                          DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                                          eRet = OMX_ErrorUnsupportedSetting;
+                                      }
+                                  } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE)) {
+                                      if (!strncmp((const char*)comp_role->cRole,"video_decoder.h263",OMX_MAX_STRINGNAME_SIZE)) {
+                                          strlcpy((char*)m_cRole,"video_decoder.h263",OMX_MAX_STRINGNAME_SIZE);
+                                      } else {
+                                          DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                                          eRet =OMX_ErrorUnsupportedSetting;
+                                      }
+                                  } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE)) {
+                                      if (!strncmp((const char*)comp_role->cRole,"video_decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE)) {
+                                          strlcpy((char*)m_cRole,"video_decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE);
+                                      } else {
+                                          DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                                          eRet = OMX_ErrorUnsupportedSetting;
+                                      }
+                                  } else if ((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",OMX_MAX_STRINGNAME_SIZE)) ||
+                                          (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx311",OMX_MAX_STRINGNAME_SIZE))
+                                        ) {
+                                      if (!strncmp((const char*)comp_role->cRole,"video_decoder.divx",OMX_MAX_STRINGNAME_SIZE)) {
+                                          strlcpy((char*)m_cRole,"video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
+                                      } else {
+                                          DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                                          eRet =OMX_ErrorUnsupportedSetting;
+                                      }
+                                  } else if ( (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1",OMX_MAX_STRINGNAME_SIZE)) ||
+                                          (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.wmv",OMX_MAX_STRINGNAME_SIZE))
+                                        ) {
+                                      if (!strncmp((const char*)comp_role->cRole,"video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE)) {
+                                          strlcpy((char*)m_cRole,"video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
+                                      } else {
+                                          DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                                          eRet =OMX_ErrorUnsupportedSetting;
+                                      }
+                                  } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vp8",OMX_MAX_STRINGNAME_SIZE)) {
+                                      if (!strncmp((const char*)comp_role->cRole,"video_decoder.vp8",OMX_MAX_STRINGNAME_SIZE) ||
+                                              (!strncmp((const char*)comp_role->cRole,"video_decoder.vpx",OMX_MAX_STRINGNAME_SIZE))) {
+                                          strlcpy((char*)m_cRole,"video_decoder.vp8",OMX_MAX_STRINGNAME_SIZE);
+                                      } else {
+                                          DEBUG_PRINT_ERROR("Setparameter: unknown Index %s\n", comp_role->cRole);
+                                          eRet = OMX_ErrorUnsupportedSetting;
+                                      }
+                                  } else {
+                                      DEBUG_PRINT_ERROR("Setparameter: unknown param %s\n", drv_ctx.kind);
+                                      eRet = OMX_ErrorInvalidComponentName;
+                                  }
+                                  break;
+                              }
 
-    case OMX_IndexParamPriorityMgmt:
-        {
-            if(m_state != OMX_StateLoaded)
-            {
-               DEBUG_PRINT_ERROR("Set Parameter called in Invalid State\n");
-               return OMX_ErrorIncorrectStateOperation;
-            }
-            OMX_PRIORITYMGMTTYPE *priorityMgmtype = (OMX_PRIORITYMGMTTYPE*) paramData;
-            DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPriorityMgmt %lu\n",
-              priorityMgmtype->nGroupID);
+        case OMX_IndexParamPriorityMgmt: {
+                             if (m_state != OMX_StateLoaded) {
+                                 DEBUG_PRINT_ERROR("Set Parameter called in Invalid State\n");
+                                 return OMX_ErrorIncorrectStateOperation;
+                             }
+                             OMX_PRIORITYMGMTTYPE *priorityMgmtype = (OMX_PRIORITYMGMTTYPE*) paramData;
+                             DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPriorityMgmt %lu\n",
+                                     priorityMgmtype->nGroupID);
 
-            DEBUG_PRINT_LOW("set_parameter: priorityMgmtype %lu\n",
-             priorityMgmtype->nGroupPriority);
+                             DEBUG_PRINT_LOW("set_parameter: priorityMgmtype %lu\n",
+                                     priorityMgmtype->nGroupPriority);
 
-            m_priority_mgm.nGroupID = priorityMgmtype->nGroupID;
-            m_priority_mgm.nGroupPriority = priorityMgmtype->nGroupPriority;
+                             m_priority_mgm.nGroupID = priorityMgmtype->nGroupID;
+                             m_priority_mgm.nGroupPriority = priorityMgmtype->nGroupPriority;
 
-            break;
-        }
+                             break;
+                         }
 
-      case OMX_IndexParamCompBufferSupplier:
-      {
-          OMX_PARAM_BUFFERSUPPLIERTYPE *bufferSupplierType = (OMX_PARAM_BUFFERSUPPLIERTYPE*) paramData;
-            DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamCompBufferSupplier %d\n",
-                bufferSupplierType->eBufferSupplier);
-             if(bufferSupplierType->nPortIndex == 0 || bufferSupplierType->nPortIndex ==1)
-                m_buffer_supplier.eBufferSupplier = bufferSupplierType->eBufferSupplier;
+        case OMX_IndexParamCompBufferSupplier: {
+                                   OMX_PARAM_BUFFERSUPPLIERTYPE *bufferSupplierType = (OMX_PARAM_BUFFERSUPPLIERTYPE*) paramData;
+                                   DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamCompBufferSupplier %d\n",
+                                           bufferSupplierType->eBufferSupplier);
+                                   if (bufferSupplierType->nPortIndex == 0 || bufferSupplierType->nPortIndex ==1)
+                                       m_buffer_supplier.eBufferSupplier = bufferSupplierType->eBufferSupplier;
 
-             else
+                                   else
 
-             eRet = OMX_ErrorBadPortIndex;
+                                       eRet = OMX_ErrorBadPortIndex;
 
-          break;
+                                   break;
 
-      }
-      case OMX_IndexParamVideoAvc:
-          {
-              DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoAvc %d\n",
-                    paramIndex);
-              break;
-          }
-      case OMX_IndexParamVideoH263:
-          {
-              DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoH263 %d\n",
-                    paramIndex);
-              break;
-          }
-      case OMX_IndexParamVideoMpeg4:
-          {
-              DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoMpeg4 %d\n",
-                    paramIndex);
-              break;
-          }
-      case OMX_IndexParamVideoMpeg2:
-          {
-              DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoMpeg2 %d\n",
-                    paramIndex);
-              break;
-          }
-       case OMX_QcomIndexParamVideoDecoderPictureOrder:
-          {
-              QOMX_VIDEO_DECODER_PICTURE_ORDER *pictureOrder =
-                  (QOMX_VIDEO_DECODER_PICTURE_ORDER *)paramData;
-			  struct v4l2_control control;
-			  int pic_order,rc=0;
-              DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexParamVideoDecoderPictureOrder %d\n",
-                    pictureOrder->eOutputPictureOrder);
-		if (pictureOrder->eOutputPictureOrder == QOMX_VIDEO_DISPLAY_ORDER) {
-			pic_order = V4L2_MPEG_VIDC_VIDEO_OUTPUT_ORDER_DISPLAY;
-		  }
-		else if (pictureOrder->eOutputPictureOrder == QOMX_VIDEO_DECODE_ORDER){
-			pic_order = V4L2_MPEG_VIDC_VIDEO_OUTPUT_ORDER_DECODE;
-                  time_stamp_dts.set_timestamp_reorder_mode(false);
-		}
-		else
-		eRet = OMX_ErrorBadParameter;
-		if (eRet == OMX_ErrorNone)
-		{
-			control.id = V4L2_CID_MPEG_VIDC_VIDEO_OUTPUT_ORDER;
-			control.value = pic_order;
-			rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control);
-			if(rc)
-			{
-				DEBUG_PRINT_ERROR("\n Set picture order failed");
-				eRet = OMX_ErrorUnsupportedSetting;
-			}
-		}
-		break;
-	}
-    case OMX_QcomIndexParamConcealMBMapExtraData:
-      if(!secure_mode)
-          eRet = enable_extradata(VDEC_EXTRADATA_MB_ERROR_MAP, false,
-                                  ((QOMX_ENABLETYPE *)paramData)->bEnable);
-      else {
-          DEBUG_PRINT_ERROR("\n secure mode setting not supported");
-          eRet = OMX_ErrorUnsupportedSetting;
-      }
-      break;
-    case OMX_QcomIndexParamFrameInfoExtraData:
-      {
-        if(!secure_mode)
-            eRet = enable_extradata(OMX_FRAMEINFO_EXTRADATA, false,
-                                ((QOMX_ENABLETYPE *)paramData)->bEnable);
-        else {
-            DEBUG_PRINT_ERROR("\n secure mode setting not supported");
-            eRet = OMX_ErrorUnsupportedSetting;
-        }
-       break;
-      }
-    case OMX_QcomIndexParamInterlaceExtraData:
-      if(!secure_mode)
-          eRet = enable_extradata(OMX_INTERLACE_EXTRADATA, false,
-                              ((QOMX_ENABLETYPE *)paramData)->bEnable);
-      else {
-          DEBUG_PRINT_ERROR("\n secure mode setting not supported");
-          eRet = OMX_ErrorUnsupportedSetting;
-      }
-      break;
-    case OMX_QcomIndexParamH264TimeInfo:
-      if(!secure_mode)
-          eRet = enable_extradata(OMX_TIMEINFO_EXTRADATA, false,
-                              ((QOMX_ENABLETYPE *)paramData)->bEnable);
-      else {
-          DEBUG_PRINT_ERROR("\n secure mode setting not supported");
-          eRet = OMX_ErrorUnsupportedSetting;
-      }
-      break;
-    case OMX_QcomIndexParamVideoDivx:
-      {
-        QOMX_VIDEO_PARAM_DIVXTYPE* divXType = (QOMX_VIDEO_PARAM_DIVXTYPE *) paramData;
-      }
-      break;
-    case OMX_QcomIndexPlatformPvt:
-      {
-        DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexPlatformPvt OP Port\n");
-        OMX_QCOM_PLATFORMPRIVATE_EXTN* entryType = (OMX_QCOM_PLATFORMPRIVATE_EXTN *) paramData;
-        if (entryType->type != OMX_QCOM_PLATFORM_PRIVATE_PMEM)
-        {
-          DEBUG_PRINT_HIGH("set_parameter: Platform Private entry type (%d) not supported.", entryType->type);
-          eRet = OMX_ErrorUnsupportedSetting;
-        }
-        else
-        {
-          m_out_pvt_entry_pmem = OMX_TRUE;
-          if ((m_out_mem_region_smi && m_out_pvt_entry_pmem))
-          {
-            DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexPlatformPvt OP Port: out pmem set\n");
-            m_use_output_pmem = OMX_TRUE;
-          }
-        }
+                               }
+        case OMX_IndexParamVideoAvc: {
+                             DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoAvc %d\n",
+                                     paramIndex);
+                             break;
+                         }
+        case OMX_IndexParamVideoH263: {
+                              DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoH263 %d\n",
+                                      paramIndex);
+                              break;
+                          }
+        case OMX_IndexParamVideoMpeg4: {
+                               DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoMpeg4 %d\n",
+                                       paramIndex);
+                               break;
+                           }
+        case OMX_IndexParamVideoMpeg2: {
+                               DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoMpeg2 %d\n",
+                                       paramIndex);
+                               break;
+                           }
+        case OMX_QcomIndexParamVideoDecoderPictureOrder: {
+                                     QOMX_VIDEO_DECODER_PICTURE_ORDER *pictureOrder =
+                                         (QOMX_VIDEO_DECODER_PICTURE_ORDER *)paramData;
+                                     struct v4l2_control control;
+                                     int pic_order,rc=0;
+                                     DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexParamVideoDecoderPictureOrder %d\n",
+                                             pictureOrder->eOutputPictureOrder);
+                                     if (pictureOrder->eOutputPictureOrder == QOMX_VIDEO_DISPLAY_ORDER) {
+                                         pic_order = V4L2_MPEG_VIDC_VIDEO_OUTPUT_ORDER_DISPLAY;
+                                     } else if (pictureOrder->eOutputPictureOrder == QOMX_VIDEO_DECODE_ORDER) {
+                                         pic_order = V4L2_MPEG_VIDC_VIDEO_OUTPUT_ORDER_DECODE;
+                                         time_stamp_dts.set_timestamp_reorder_mode(false);
+                                     } else
+                                         eRet = OMX_ErrorBadParameter;
+                                     if (eRet == OMX_ErrorNone) {
+                                         control.id = V4L2_CID_MPEG_VIDC_VIDEO_OUTPUT_ORDER;
+                                         control.value = pic_order;
+                                         rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control);
+                                         if (rc) {
+                                             DEBUG_PRINT_ERROR("\n Set picture order failed");
+                                             eRet = OMX_ErrorUnsupportedSetting;
+                                         }
+                                     }
+                                     break;
+                                 }
+        case OMX_QcomIndexParamConcealMBMapExtraData:
+                                 if (!secure_mode)
+                                     eRet = enable_extradata(VDEC_EXTRADATA_MB_ERROR_MAP, false,
+                                             ((QOMX_ENABLETYPE *)paramData)->bEnable);
+                                 else {
+                                     DEBUG_PRINT_ERROR("\n secure mode setting not supported");
+                                     eRet = OMX_ErrorUnsupportedSetting;
+                                 }
+                                 break;
+        case OMX_QcomIndexParamFrameInfoExtraData: {
+                                   if (!secure_mode)
+                                       eRet = enable_extradata(OMX_FRAMEINFO_EXTRADATA, false,
+                                               ((QOMX_ENABLETYPE *)paramData)->bEnable);
+                                   else {
+                                       DEBUG_PRINT_ERROR("\n secure mode setting not supported");
+                                       eRet = OMX_ErrorUnsupportedSetting;
+                                   }
+                                   break;
+                               }
+        case OMX_QcomIndexParamInterlaceExtraData:
+                               if (!secure_mode)
+                                   eRet = enable_extradata(OMX_INTERLACE_EXTRADATA, false,
+                                           ((QOMX_ENABLETYPE *)paramData)->bEnable);
+                               else {
+                                   DEBUG_PRINT_ERROR("\n secure mode setting not supported");
+                                   eRet = OMX_ErrorUnsupportedSetting;
+                               }
+                               break;
+        case OMX_QcomIndexParamH264TimeInfo:
+                               if (!secure_mode)
+                                   eRet = enable_extradata(OMX_TIMEINFO_EXTRADATA, false,
+                                           ((QOMX_ENABLETYPE *)paramData)->bEnable);
+                               else {
+                                   DEBUG_PRINT_ERROR("\n secure mode setting not supported");
+                                   eRet = OMX_ErrorUnsupportedSetting;
+                               }
+                               break;
+        case OMX_QcomIndexParamVideoDivx: {
+                              QOMX_VIDEO_PARAM_DIVXTYPE* divXType = (QOMX_VIDEO_PARAM_DIVXTYPE *) paramData;
+                          }
+                          break;
+        case OMX_QcomIndexPlatformPvt: {
+                               DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexPlatformPvt OP Port\n");
+                               OMX_QCOM_PLATFORMPRIVATE_EXTN* entryType = (OMX_QCOM_PLATFORMPRIVATE_EXTN *) paramData;
+                               if (entryType->type != OMX_QCOM_PLATFORM_PRIVATE_PMEM) {
+                                   DEBUG_PRINT_HIGH("set_parameter: Platform Private entry type (%d) not supported.", entryType->type);
+                                   eRet = OMX_ErrorUnsupportedSetting;
+                               } else {
+                                   m_out_pvt_entry_pmem = OMX_TRUE;
+                                   if ((m_out_mem_region_smi && m_out_pvt_entry_pmem)) {
+                                       DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexPlatformPvt OP Port: out pmem set\n");
+                                       m_use_output_pmem = OMX_TRUE;
+                                   }
+                               }
 
-      }
-      break;
-    case OMX_QcomIndexParamVideoSyncFrameDecodingMode:
-      {
-        DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexParamVideoSyncFrameDecodingMode");
-        DEBUG_PRINT_HIGH("set idr only decoding for thumbnail mode");
-        struct v4l2_control control;
-        int rc;
-        drv_ctx.idr_only_decoding = 1;
-        control.id = V4L2_CID_MPEG_VIDC_VIDEO_OUTPUT_ORDER;
-        control.value = V4L2_MPEG_VIDC_VIDEO_OUTPUT_ORDER_DECODE;
-        rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control);
-        if(rc)
-        {
-          DEBUG_PRINT_ERROR("\n Set picture order failed");
-          eRet = OMX_ErrorUnsupportedSetting;
-        } else {
-            control.id = V4L2_CID_MPEG_VIDC_VIDEO_SYNC_FRAME_DECODE;
-            control.value = V4L2_MPEG_VIDC_VIDEO_SYNC_FRAME_DECODE_ENABLE;
-            rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control);
-            if(rc)
-            {
-              DEBUG_PRINT_ERROR("\n Sync frame setting failed");
-              eRet = OMX_ErrorUnsupportedSetting;
-            }
-            /*Setting sync frame decoding on driver might change buffer
-             * requirements so update them here*/
-            if (get_buffer_req(&drv_ctx.ip_buf)) {
-              DEBUG_PRINT_ERROR("\n Sync frame setting failed: falied to get buffer i/p requirements");
-              eRet = OMX_ErrorUnsupportedSetting;
-            }
-            if (get_buffer_req(&drv_ctx.op_buf)) {
-              DEBUG_PRINT_ERROR("\n Sync frame setting failed: falied to get buffer o/p requirements");
-              eRet = OMX_ErrorUnsupportedSetting;
-            }
-        }
-      }
-      break;
+                           }
+                           break;
+        case OMX_QcomIndexParamVideoSyncFrameDecodingMode: {
+                                       DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexParamVideoSyncFrameDecodingMode");
+                                       DEBUG_PRINT_HIGH("set idr only decoding for thumbnail mode");
+                                       struct v4l2_control control;
+                                       int rc;
+                                       drv_ctx.idr_only_decoding = 1;
+                                       control.id = V4L2_CID_MPEG_VIDC_VIDEO_OUTPUT_ORDER;
+                                       control.value = V4L2_MPEG_VIDC_VIDEO_OUTPUT_ORDER_DECODE;
+                                       rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control);
+                                       if (rc) {
+                                           DEBUG_PRINT_ERROR("\n Set picture order failed");
+                                           eRet = OMX_ErrorUnsupportedSetting;
+                                       } else {
+                                           control.id = V4L2_CID_MPEG_VIDC_VIDEO_SYNC_FRAME_DECODE;
+                                           control.value = V4L2_MPEG_VIDC_VIDEO_SYNC_FRAME_DECODE_ENABLE;
+                                           rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control);
+                                           if (rc) {
+                                               DEBUG_PRINT_ERROR("\n Sync frame setting failed");
+                                               eRet = OMX_ErrorUnsupportedSetting;
+                                           }
+                                           /*Setting sync frame decoding on driver might change buffer
+                                            * requirements so update them here*/
+                                           if (get_buffer_req(&drv_ctx.ip_buf)) {
+                                               DEBUG_PRINT_ERROR("\n Sync frame setting failed: falied to get buffer i/p requirements");
+                                               eRet = OMX_ErrorUnsupportedSetting;
+                                           }
+                                           if (get_buffer_req(&drv_ctx.op_buf)) {
+                                               DEBUG_PRINT_ERROR("\n Sync frame setting failed: falied to get buffer o/p requirements");
+                                               eRet = OMX_ErrorUnsupportedSetting;
+                                           }
+                                       }
+                                   }
+                                   break;
 
-    case OMX_QcomIndexParamIndexExtraDataType:
-      {
-        if(!secure_mode) {
-            QOMX_INDEXEXTRADATATYPE *extradataIndexType = (QOMX_INDEXEXTRADATATYPE *) paramData;
-            if ((extradataIndexType->nIndex == OMX_IndexParamPortDefinition) &&
-                   (extradataIndexType->bEnabled == OMX_TRUE) &&
-                   (extradataIndexType->nPortIndex == 1))
-            {
-              DEBUG_PRINT_HIGH("set_parameter:  OMX_QcomIndexParamIndexExtraDataType SmoothStreaming\n");
-              eRet = enable_extradata(OMX_PORTDEF_EXTRADATA, false, extradataIndexType->bEnabled);
+        case OMX_QcomIndexParamIndexExtraDataType: {
+                                   if (!secure_mode) {
+                                       QOMX_INDEXEXTRADATATYPE *extradataIndexType = (QOMX_INDEXEXTRADATATYPE *) paramData;
+                                       if ((extradataIndexType->nIndex == OMX_IndexParamPortDefinition) &&
+                                               (extradataIndexType->bEnabled == OMX_TRUE) &&
+                                               (extradataIndexType->nPortIndex == 1)) {
+                                           DEBUG_PRINT_HIGH("set_parameter:  OMX_QcomIndexParamIndexExtraDataType SmoothStreaming\n");
+                                           eRet = enable_extradata(OMX_PORTDEF_EXTRADATA, false, extradataIndexType->bEnabled);
 
-            }
-         }
-       }
-      break;
-    case OMX_QcomIndexParamEnableSmoothStreaming:
-      {
+                                       }
+                                   }
+                               }
+                               break;
+        case OMX_QcomIndexParamEnableSmoothStreaming: {
 #ifndef SMOOTH_STREAMING_DISABLED
-	      struct v4l2_control control;
-	      struct v4l2_format fmt;
-	      control.id = V4L2_CID_MPEG_VIDC_VIDEO_CONTINUE_DATA_TRANSFER;
-	      control.value = 1;
-	      int rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL,&control);
-	      if(rc < 0) {
-		      DEBUG_PRINT_ERROR("Failed to enable Smooth Streaming on driver.");
-		      eRet = OMX_ErrorHardware;
-	      }
+                                      struct v4l2_control control;
+                                      struct v4l2_format fmt;
+                                      control.id = V4L2_CID_MPEG_VIDC_VIDEO_CONTINUE_DATA_TRANSFER;
+                                      control.value = 1;
+                                      int rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL,&control);
+                                      if (rc < 0) {
+                                          DEBUG_PRINT_ERROR("Failed to enable Smooth Streaming on driver.");
+                                          eRet = OMX_ErrorHardware;
+                                      }
 #else
-       eRet = OMX_ErrorUnsupportedSetting;
+                                      eRet = OMX_ErrorUnsupportedSetting;
 #endif
-      }
-     break;
+                                  }
+                                  break;
 #if defined (_ANDROID_HONEYCOMB_) || defined (_ANDROID_ICS_)
-      /* Need to allow following two set_parameters even in Idle
-       * state. This is ANDROID architecture which is not in sync
-       * with openmax standard. */
-    case OMX_GoogleAndroidIndexEnableAndroidNativeBuffers:
-      {
-          EnableAndroidNativeBuffersParams* enableNativeBuffers = (EnableAndroidNativeBuffersParams *) paramData;
-          if(enableNativeBuffers) {
-              m_enable_android_native_buffers = enableNativeBuffers->enable;
-          }
-      }
-      break;
-    case OMX_GoogleAndroidIndexUseAndroidNativeBuffer:
-      {
-          eRet = use_android_native_buffer(hComp, paramData);
-      }
-      break;
+                                  /* Need to allow following two set_parameters even in Idle
+                                   * state. This is ANDROID architecture which is not in sync
+                                   * with openmax standard. */
+        case OMX_GoogleAndroidIndexEnableAndroidNativeBuffers: {
+                                           EnableAndroidNativeBuffersParams* enableNativeBuffers = (EnableAndroidNativeBuffersParams *) paramData;
+                                           if (enableNativeBuffers) {
+                                               m_enable_android_native_buffers = enableNativeBuffers->enable;
+                                           }
+                                       }
+                                       break;
+        case OMX_GoogleAndroidIndexUseAndroidNativeBuffer: {
+                                       eRet = use_android_native_buffer(hComp, paramData);
+                                   }
+                                   break;
 #endif
-    case OMX_QcomIndexParamEnableTimeStampReorder:
-      {
-        QOMX_INDEXTIMESTAMPREORDER *reorder = (QOMX_INDEXTIMESTAMPREORDER *)paramData;
-        if (drv_ctx.picture_order == (vdec_output_order)QOMX_VIDEO_DISPLAY_ORDER) {
-          if (reorder->bEnable == OMX_TRUE) {
-              frm_int =0;
-              time_stamp_dts.set_timestamp_reorder_mode(true);
-          }
-          else
-            time_stamp_dts.set_timestamp_reorder_mode(false);
-        } else {
-          time_stamp_dts.set_timestamp_reorder_mode(false);
-          if (reorder->bEnable == OMX_TRUE)
-          {
-            eRet = OMX_ErrorUnsupportedSetting;
-          }
-        }
-      }
-      break;
-     case OMX_IndexParamVideoProfileLevelCurrent:
-       {
-         OMX_VIDEO_PARAM_PROFILELEVELTYPE* pParam =
-		(OMX_VIDEO_PARAM_PROFILELEVELTYPE*)paramData;
-         if (pParam) {
-           m_profile_lvl.eProfile = pParam->eProfile;
-           m_profile_lvl.eLevel = pParam->eLevel;
-         }
-         break;
+        case OMX_QcomIndexParamEnableTimeStampReorder: {
+                                       QOMX_INDEXTIMESTAMPREORDER *reorder = (QOMX_INDEXTIMESTAMPREORDER *)paramData;
+                                       if (drv_ctx.picture_order == (vdec_output_order)QOMX_VIDEO_DISPLAY_ORDER) {
+                                           if (reorder->bEnable == OMX_TRUE) {
+                                               frm_int =0;
+                                               time_stamp_dts.set_timestamp_reorder_mode(true);
+                                           } else
+                                               time_stamp_dts.set_timestamp_reorder_mode(false);
+                                       } else {
+                                           time_stamp_dts.set_timestamp_reorder_mode(false);
+                                           if (reorder->bEnable == OMX_TRUE) {
+                                               eRet = OMX_ErrorUnsupportedSetting;
+                                           }
+                                       }
+                                   }
+                                   break;
+        case OMX_IndexParamVideoProfileLevelCurrent: {
+                                     OMX_VIDEO_PARAM_PROFILELEVELTYPE* pParam =
+                                         (OMX_VIDEO_PARAM_PROFILELEVELTYPE*)paramData;
+                                     if (pParam) {
+                                         m_profile_lvl.eProfile = pParam->eProfile;
+                                         m_profile_lvl.eLevel = pParam->eLevel;
+                                     }
+                                     break;
 
-       }
-    default:
-    {
-      DEBUG_PRINT_ERROR("Setparameter: unknown param %d\n", paramIndex);
-      eRet = OMX_ErrorUnsupportedIndex;
+                                 }
+        default: {
+                 DEBUG_PRINT_ERROR("Setparameter: unknown param %d\n", paramIndex);
+                 eRet = OMX_ErrorUnsupportedIndex;
+             }
     }
-  }
-  return eRet;
+    return eRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::GetConfig
+   FUNCTION
+   omx_vdec::GetConfig
 
-DESCRIPTION
-  OMX Get Config Method implementation.
+   DESCRIPTION
+   OMX Get Config Method implementation.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if successful.
+   RETURN VALUE
+   OMX Error None if successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::get_config(OMX_IN OMX_HANDLETYPE      hComp,
-                                        OMX_IN OMX_INDEXTYPE configIndex,
-                                        OMX_INOUT OMX_PTR     configData)
+        OMX_IN OMX_INDEXTYPE configIndex,
+        OMX_INOUT OMX_PTR     configData)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
 
-  if (m_state == OMX_StateInvalid)
-  {
-     DEBUG_PRINT_ERROR("Get Config in Invalid State\n");
-     return OMX_ErrorInvalidState;
-  }
-
-  switch ((unsigned long)configIndex)
-  {
-    case OMX_QcomIndexConfigInterlaced:
-    {
-      OMX_QCOM_CONFIG_INTERLACETYPE *configFmt =
-                                   (OMX_QCOM_CONFIG_INTERLACETYPE *) configData;
-      if (configFmt->nPortIndex == 1)
-      {
-        if (configFmt->nIndex == 0)
-        {
-          configFmt->eInterlaceType = OMX_QCOM_InterlaceFrameProgressive;
-        }
-        else if (configFmt->nIndex == 1)
-        {
-          configFmt->eInterlaceType =
-                                  OMX_QCOM_InterlaceInterleaveFrameTopFieldFirst;
-        }
-        else if (configFmt->nIndex == 2)
-        {
-          configFmt->eInterlaceType =
-          OMX_QCOM_InterlaceInterleaveFrameBottomFieldFirst;
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("get_config: OMX_QcomIndexConfigInterlaced:"
-                            " NoMore Interlaced formats\n");
-          eRet = OMX_ErrorNoMore;
-        }
-
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("get_config: Bad port index %d queried on only o/p port\n",
-        (int)configFmt->nPortIndex);
-        eRet = OMX_ErrorBadPortIndex;
-      }
-    break;
-    }
-    case OMX_QcomIndexQueryNumberOfVideoDecInstance:
-    {
-        QOMX_VIDEO_QUERY_DECODER_INSTANCES *decoderinstances =
-          (QOMX_VIDEO_QUERY_DECODER_INSTANCES*)configData;
-	decoderinstances->nNumOfInstances = 16;
-	/*TODO: How to handle this case */	
-    break;
-    }
-  case OMX_QcomIndexConfigVideoFramePackingArrangement:
-    {
-      if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264)
-      {
-        OMX_QCOM_FRAME_PACK_ARRANGEMENT *configFmt =
-          (OMX_QCOM_FRAME_PACK_ARRANGEMENT *) configData;
-        h264_parser->get_frame_pack_data(configFmt);
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("get_config: Framepack data not supported for non H264 codecs");
-      }
-      break;
-    }
-  case OMX_IndexConfigCommonOutputCrop:
-    {
-      OMX_CONFIG_RECTTYPE *rect = (OMX_CONFIG_RECTTYPE *) configData;
-      memcpy(rect, &rectangle, sizeof(OMX_CONFIG_RECTTYPE));
-      break;
-    }
-  default:
-    {
-      DEBUG_PRINT_ERROR("get_config: unknown param %d\n",configIndex);
-      eRet = OMX_ErrorBadParameter;
-    }
-
-  }
-
-  return eRet;
-}
-
-/* ======================================================================
-FUNCTION
-  omx_vdec::SetConfig
-
-DESCRIPTION
-  OMX Set Config method implementation
-
-PARAMETERS
-  <TBD>.
-
-RETURN VALUE
-  OMX Error None if successful.
-========================================================================== */
-OMX_ERRORTYPE  omx_vdec::set_config(OMX_IN OMX_HANDLETYPE      hComp,
-                                        OMX_IN OMX_INDEXTYPE configIndex,
-                                        OMX_IN OMX_PTR        configData)
-{
-  if(m_state == OMX_StateInvalid)
-  {
-      DEBUG_PRINT_ERROR("Get Config in Invalid State\n");
-      return OMX_ErrorInvalidState;
-  }
-
-  OMX_ERRORTYPE ret = OMX_ErrorNone;
-  OMX_VIDEO_CONFIG_NALSIZE *pNal;
-
-  DEBUG_PRINT_LOW("\n Set Config Called");
-
-  if (configIndex == (OMX_INDEXTYPE)OMX_IndexVendorVideoExtraData)
-  {
-    OMX_VENDOR_EXTRADATATYPE *config = (OMX_VENDOR_EXTRADATATYPE *) configData;
-    DEBUG_PRINT_LOW("\n Index OMX_IndexVendorVideoExtraData called");
-    if (!strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc"))
-    {
-      DEBUG_PRINT_LOW("\n Index OMX_IndexVendorVideoExtraData AVC");
-      OMX_U32 extra_size;
-      // Parsing done here for the AVC atom is definitely not generic
-      // Currently this piece of code is working, but certainly
-      // not tested with all .mp4 files.
-      // Incase of failure, we might need to revisit this
-      // for a generic piece of code.
-
-      // Retrieve size of NAL length field
-      // byte #4 contains the size of NAL lenght field
-      nal_length = (config->pData[4] & 0x03) + 1;
-
-      extra_size = 0;
-      if (nal_length > 2)
-      {
-        /* Presently we assume that only one SPS and one PPS in AvC1 Atom */
-        extra_size = (nal_length - 2) * 2;
-      }
-
-      // SPS starts from byte #6
-      OMX_U8 *pSrcBuf = (OMX_U8 *) (&config->pData[6]);
-      OMX_U8 *pDestBuf;
-      m_vendor_config.nPortIndex = config->nPortIndex;
-
-      // minus 6 --> SPS starts from byte #6
-      // minus 1 --> picture param set byte to be ignored from avcatom
-      m_vendor_config.nDataSize = config->nDataSize - 6 - 1 + extra_size;
-      m_vendor_config.pData = (OMX_U8 *) malloc(m_vendor_config.nDataSize);
-      OMX_U32 len;
-      OMX_U8 index = 0;
-      // case where SPS+PPS is sent as part of set_config
-      pDestBuf = m_vendor_config.pData;
-
-      DEBUG_PRINT_LOW("Rxd SPS+PPS nPortIndex[%lu] len[%lu] data[%p]\n",
-           m_vendor_config.nPortIndex,
-           m_vendor_config.nDataSize,
-           m_vendor_config.pData);
-      while (index < 2)
-      {
-        uint8 *psize;
-        len = *pSrcBuf;
-        len = len << 8;
-        len |= *(pSrcBuf + 1);
-        psize = (uint8 *) & len;
-        memcpy(pDestBuf + nal_length, pSrcBuf + 2,len);
-        for (unsigned int i = 0; i < nal_length; i++)
-        {
-          pDestBuf[i] = psize[nal_length - 1 - i];
-        }
-        //memcpy(pDestBuf,pSrcBuf,(len+2));
-        pDestBuf += len + nal_length;
-        pSrcBuf += len + 2;
-        index++;
-        pSrcBuf++;   // skip picture param set
-        len = 0;
-      }
-    }
-    else if (!strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4") ||
-             !strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2"))
-    {
-      m_vendor_config.nPortIndex = config->nPortIndex;
-      m_vendor_config.nDataSize = config->nDataSize;
-      m_vendor_config.pData = (OMX_U8 *) malloc((config->nDataSize));
-      memcpy(m_vendor_config.pData, config->pData,config->nDataSize);
-    }
-    else if (!strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1"))
-    {
-        if(m_vendor_config.pData)
-        {
-            free(m_vendor_config.pData);
-            m_vendor_config.pData = NULL;
-            m_vendor_config.nDataSize = 0;
-        }
-
-        if (((*((OMX_U32 *) config->pData)) &
-             VC1_SP_MP_START_CODE_MASK) ==
-             VC1_SP_MP_START_CODE)
-        {
-            DEBUG_PRINT_LOW("set_config - VC1 simple/main profile\n");
-            m_vendor_config.nPortIndex = config->nPortIndex;
-            m_vendor_config.nDataSize = config->nDataSize;
-            m_vendor_config.pData =
-                (OMX_U8 *) malloc(config->nDataSize);
-            memcpy(m_vendor_config.pData, config->pData,
-                   config->nDataSize);
-            m_vc1_profile = VC1_SP_MP_RCV;
-        }
-        else if (*((OMX_U32 *) config->pData) == VC1_AP_SEQ_START_CODE)
-        {
-            DEBUG_PRINT_LOW("set_config - VC1 Advance profile\n");
-            m_vendor_config.nPortIndex = config->nPortIndex;
-            m_vendor_config.nDataSize = config->nDataSize;
-            m_vendor_config.pData =
-                (OMX_U8 *) malloc((config->nDataSize));
-            memcpy(m_vendor_config.pData, config->pData,
-                   config->nDataSize);
-            m_vc1_profile = VC1_AP;
-        }
-        else if ((config->nDataSize == VC1_STRUCT_C_LEN))
-        {
-            DEBUG_PRINT_LOW("set_config - VC1 Simple/Main profile struct C only\n");
-            m_vendor_config.nPortIndex = config->nPortIndex;
-            m_vendor_config.nDataSize  = config->nDataSize;
-            m_vendor_config.pData = (OMX_U8*)malloc(config->nDataSize);
-            memcpy(m_vendor_config.pData,config->pData,config->nDataSize);
-            m_vc1_profile = VC1_SP_MP_RCV;
-        }
-        else
-        {
-            DEBUG_PRINT_LOW("set_config - Error: Unknown VC1 profile\n");
-        }
-    }
-    return ret;
-  }
-  else if (configIndex == OMX_IndexConfigVideoNalSize)
-  {
-    struct v4l2_control temp;
-    temp.id = V4L2_CID_MPEG_VIDC_VIDEO_STREAM_FORMAT;
-
-    pNal = reinterpret_cast < OMX_VIDEO_CONFIG_NALSIZE * >(configData);
-    switch (pNal->nNaluBytes) {
-      case 0:
-        temp.value = V4L2_MPEG_VIDC_VIDEO_NAL_FORMAT_STARTCODES;
-        break;
-      case 2:
-        temp.value = V4L2_MPEG_VIDC_VIDEO_NAL_FORMAT_TWO_BYTE_LENGTH;
-        break;
-      case 4:
-        temp.value = V4L2_MPEG_VIDC_VIDEO_NAL_FORMAT_FOUR_BYTE_LENGTH;
-        break;
-      default:
-        return OMX_ErrorUnsupportedSetting;
-    }
-
-    if (!arbitrary_bytes) {
-      /* In arbitrary bytes mode, the assembler strips out nal size and replaces
-       * with start code, so only need to notify driver in frame by frame mode */
-      if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &temp))
-      {
-        DEBUG_PRINT_ERROR("Failed to set V4L2_CID_MPEG_VIDC_VIDEO_STREAM_FORMAT");
-        return OMX_ErrorHardware;
-      }
-    }
-
-    nal_length = pNal->nNaluBytes;
-    m_frame_parser.init_nal_length(nal_length);
-
-    DEBUG_PRINT_LOW("\n OMX_IndexConfigVideoNalSize called with Size %d", nal_length);
-    return ret;
-  }
-  else if (configIndex == OMX_IndexVendorVideoFrameRate)
-  {
-    OMX_VENDOR_VIDEOFRAMERATE *config = (OMX_VENDOR_VIDEOFRAMERATE *) configData;
-    DEBUG_PRINT_HIGH("Index OMX_IndexVendorVideoFrameRate %d", config->nFps);
-
-    if (config->nPortIndex == OMX_CORE_INPUT_PORT_INDEX)
-    {
-      if (config->bEnabled)
-      {
-        if ((config->nFps >> 16) > 0)
-        {
-            DEBUG_PRINT_HIGH("set_config: frame rate set by omx client : %d",
-                            config->nFps >> 16);
-            Q16ToFraction(config->nFps, drv_ctx.frame_rate.fps_numerator,
-                          drv_ctx.frame_rate.fps_denominator);
-
-            if (!drv_ctx.frame_rate.fps_numerator)
-            {
-              DEBUG_PRINT_ERROR("Numerator is zero setting to 30");
-              drv_ctx.frame_rate.fps_numerator = 30;
-            }
-
-            if (drv_ctx.frame_rate.fps_denominator)
-            {
-              drv_ctx.frame_rate.fps_numerator = (int)
-                  drv_ctx.frame_rate.fps_numerator / drv_ctx.frame_rate.fps_denominator;
-            }
-
-            drv_ctx.frame_rate.fps_denominator = 1;
-            frm_int = drv_ctx.frame_rate.fps_denominator * 1e6 /
-                      drv_ctx.frame_rate.fps_numerator;
-
-            struct v4l2_outputparm oparm;
-            /*XXX: we're providing timing info as seconds per frame rather than frames
-             * per second.*/
-            oparm.timeperframe.numerator = drv_ctx.frame_rate.fps_denominator;
-            oparm.timeperframe.denominator = drv_ctx.frame_rate.fps_numerator;
-
-            struct v4l2_streamparm sparm;
-            sparm.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-            sparm.parm.output = oparm;
-            if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_PARM, &sparm))
-            {
-              DEBUG_PRINT_ERROR("Unable to convey fps info to driver, \
-                  performance might be affected");
-              ret = OMX_ErrorHardware;
-            }
-            client_set_fps = true;
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("Frame rate not supported.");
-          ret = OMX_ErrorUnsupportedSetting;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_HIGH("set_config: Disabled client's frame rate");
-        client_set_fps = false;
-      }
-    }
-    else
-    {
-        DEBUG_PRINT_ERROR(" Set_config: Bad Port idx %d",
-                      (int)config->nPortIndex);
-        ret = OMX_ErrorBadPortIndex;
-    }
-
-    return ret;
-  }
-
-  return OMX_ErrorNotImplemented;
-}
-
-/* ======================================================================
-FUNCTION
-  omx_vdec::GetExtensionIndex
-
-DESCRIPTION
-  OMX GetExtensionIndex method implementaion.  <TBD>
-
-PARAMETERS
-  <TBD>.
-
-RETURN VALUE
-  OMX Error None if everything successful.
-
-========================================================================== */
-OMX_ERRORTYPE  omx_vdec::get_extension_index(OMX_IN OMX_HANDLETYPE      hComp,
-                                                OMX_IN OMX_STRING      paramName,
-                                                OMX_OUT OMX_INDEXTYPE* indexType)
-{
-    if(m_state == OMX_StateInvalid)
-    {
-        DEBUG_PRINT_ERROR("Get Extension Index in Invalid State\n");
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("Get Config in Invalid State\n");
         return OMX_ErrorInvalidState;
     }
-    else if (!strncmp(paramName, "OMX.QCOM.index.param.video.SyncFrameDecodingMode",sizeof("OMX.QCOM.index.param.video.SyncFrameDecodingMode") - 1)) {
-        *indexType = (OMX_INDEXTYPE)OMX_QcomIndexParamVideoSyncFrameDecodingMode;
+
+    switch ((unsigned long)configIndex) {
+        case OMX_QcomIndexConfigInterlaced: {
+                                OMX_QCOM_CONFIG_INTERLACETYPE *configFmt =
+                                    (OMX_QCOM_CONFIG_INTERLACETYPE *) configData;
+                                if (configFmt->nPortIndex == 1) {
+                                    if (configFmt->nIndex == 0) {
+                                        configFmt->eInterlaceType = OMX_QCOM_InterlaceFrameProgressive;
+                                    } else if (configFmt->nIndex == 1) {
+                                        configFmt->eInterlaceType =
+                                            OMX_QCOM_InterlaceInterleaveFrameTopFieldFirst;
+                                    } else if (configFmt->nIndex == 2) {
+                                        configFmt->eInterlaceType =
+                                            OMX_QCOM_InterlaceInterleaveFrameBottomFieldFirst;
+                                    } else {
+                                        DEBUG_PRINT_ERROR("get_config: OMX_QcomIndexConfigInterlaced:"
+                                                " NoMore Interlaced formats\n");
+                                        eRet = OMX_ErrorNoMore;
+                                    }
+
+                                } else {
+                                    DEBUG_PRINT_ERROR("get_config: Bad port index %d queried on only o/p port\n",
+                                            (int)configFmt->nPortIndex);
+                                    eRet = OMX_ErrorBadPortIndex;
+                                }
+                                break;
+                            }
+        case OMX_QcomIndexQueryNumberOfVideoDecInstance: {
+                                     QOMX_VIDEO_QUERY_DECODER_INSTANCES *decoderinstances =
+                                         (QOMX_VIDEO_QUERY_DECODER_INSTANCES*)configData;
+                                     decoderinstances->nNumOfInstances = 16;
+                                     /*TODO: How to handle this case */
+                                     break;
+                                 }
+        case OMX_QcomIndexConfigVideoFramePackingArrangement: {
+                                          if (drv_ctx.decoder_format == VDEC_CODECTYPE_H264) {
+                                              OMX_QCOM_FRAME_PACK_ARRANGEMENT *configFmt =
+                                                  (OMX_QCOM_FRAME_PACK_ARRANGEMENT *) configData;
+                                              h264_parser->get_frame_pack_data(configFmt);
+                                          } else {
+                                              DEBUG_PRINT_ERROR("get_config: Framepack data not supported for non H264 codecs");
+                                          }
+                                          break;
+                                      }
+        case OMX_IndexConfigCommonOutputCrop: {
+                                  OMX_CONFIG_RECTTYPE *rect = (OMX_CONFIG_RECTTYPE *) configData;
+                                  memcpy(rect, &rectangle, sizeof(OMX_CONFIG_RECTTYPE));
+                                  break;
+                              }
+        default: {
+                 DEBUG_PRINT_ERROR("get_config: unknown param %d\n",configIndex);
+                 eRet = OMX_ErrorBadParameter;
+             }
+
     }
-    else if (!strncmp(paramName, "OMX.QCOM.index.param.IndexExtraData",sizeof("OMX.QCOM.index.param.IndexExtraData") - 1))
-    {
+
+    return eRet;
+}
+
+/* ======================================================================
+   FUNCTION
+   omx_vdec::SetConfig
+
+   DESCRIPTION
+   OMX Set Config method implementation
+
+   PARAMETERS
+   <TBD>.
+
+   RETURN VALUE
+   OMX Error None if successful.
+   ========================================================================== */
+OMX_ERRORTYPE  omx_vdec::set_config(OMX_IN OMX_HANDLETYPE      hComp,
+        OMX_IN OMX_INDEXTYPE configIndex,
+        OMX_IN OMX_PTR        configData)
+{
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("Get Config in Invalid State\n");
+        return OMX_ErrorInvalidState;
+    }
+
+    OMX_ERRORTYPE ret = OMX_ErrorNone;
+    OMX_VIDEO_CONFIG_NALSIZE *pNal;
+
+    DEBUG_PRINT_LOW("\n Set Config Called");
+
+    if (configIndex == (OMX_INDEXTYPE)OMX_IndexVendorVideoExtraData) {
+        OMX_VENDOR_EXTRADATATYPE *config = (OMX_VENDOR_EXTRADATATYPE *) configData;
+        DEBUG_PRINT_LOW("\n Index OMX_IndexVendorVideoExtraData called");
+        if (!strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc")) {
+            DEBUG_PRINT_LOW("\n Index OMX_IndexVendorVideoExtraData AVC");
+            OMX_U32 extra_size;
+            // Parsing done here for the AVC atom is definitely not generic
+            // Currently this piece of code is working, but certainly
+            // not tested with all .mp4 files.
+            // Incase of failure, we might need to revisit this
+            // for a generic piece of code.
+
+            // Retrieve size of NAL length field
+            // byte #4 contains the size of NAL lenght field
+            nal_length = (config->pData[4] & 0x03) + 1;
+
+            extra_size = 0;
+            if (nal_length > 2) {
+                /* Presently we assume that only one SPS and one PPS in AvC1 Atom */
+                extra_size = (nal_length - 2) * 2;
+            }
+
+            // SPS starts from byte #6
+            OMX_U8 *pSrcBuf = (OMX_U8 *) (&config->pData[6]);
+            OMX_U8 *pDestBuf;
+            m_vendor_config.nPortIndex = config->nPortIndex;
+
+            // minus 6 --> SPS starts from byte #6
+            // minus 1 --> picture param set byte to be ignored from avcatom
+            m_vendor_config.nDataSize = config->nDataSize - 6 - 1 + extra_size;
+            m_vendor_config.pData = (OMX_U8 *) malloc(m_vendor_config.nDataSize);
+            OMX_U32 len;
+            OMX_U8 index = 0;
+            // case where SPS+PPS is sent as part of set_config
+            pDestBuf = m_vendor_config.pData;
+
+            DEBUG_PRINT_LOW("Rxd SPS+PPS nPortIndex[%lu] len[%lu] data[%p]\n",
+                    m_vendor_config.nPortIndex,
+                    m_vendor_config.nDataSize,
+                    m_vendor_config.pData);
+            while (index < 2) {
+                uint8 *psize;
+                len = *pSrcBuf;
+                len = len << 8;
+                len |= *(pSrcBuf + 1);
+                psize = (uint8 *) & len;
+                memcpy(pDestBuf + nal_length, pSrcBuf + 2,len);
+                for (unsigned int i = 0; i < nal_length; i++) {
+                    pDestBuf[i] = psize[nal_length - 1 - i];
+                }
+                //memcpy(pDestBuf,pSrcBuf,(len+2));
+                pDestBuf += len + nal_length;
+                pSrcBuf += len + 2;
+                index++;
+                pSrcBuf++;   // skip picture param set
+                len = 0;
+            }
+        } else if (!strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4") ||
+                !strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2")) {
+            m_vendor_config.nPortIndex = config->nPortIndex;
+            m_vendor_config.nDataSize = config->nDataSize;
+            m_vendor_config.pData = (OMX_U8 *) malloc((config->nDataSize));
+            memcpy(m_vendor_config.pData, config->pData,config->nDataSize);
+        } else if (!strcmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1")) {
+            if (m_vendor_config.pData) {
+                free(m_vendor_config.pData);
+                m_vendor_config.pData = NULL;
+                m_vendor_config.nDataSize = 0;
+            }
+
+            if (((*((OMX_U32 *) config->pData)) &
+                        VC1_SP_MP_START_CODE_MASK) ==
+                    VC1_SP_MP_START_CODE) {
+                DEBUG_PRINT_LOW("set_config - VC1 simple/main profile\n");
+                m_vendor_config.nPortIndex = config->nPortIndex;
+                m_vendor_config.nDataSize = config->nDataSize;
+                m_vendor_config.pData =
+                    (OMX_U8 *) malloc(config->nDataSize);
+                memcpy(m_vendor_config.pData, config->pData,
+                        config->nDataSize);
+                m_vc1_profile = VC1_SP_MP_RCV;
+            } else if (*((OMX_U32 *) config->pData) == VC1_AP_SEQ_START_CODE) {
+                DEBUG_PRINT_LOW("set_config - VC1 Advance profile\n");
+                m_vendor_config.nPortIndex = config->nPortIndex;
+                m_vendor_config.nDataSize = config->nDataSize;
+                m_vendor_config.pData =
+                    (OMX_U8 *) malloc((config->nDataSize));
+                memcpy(m_vendor_config.pData, config->pData,
+                        config->nDataSize);
+                m_vc1_profile = VC1_AP;
+            } else if ((config->nDataSize == VC1_STRUCT_C_LEN)) {
+                DEBUG_PRINT_LOW("set_config - VC1 Simple/Main profile struct C only\n");
+                m_vendor_config.nPortIndex = config->nPortIndex;
+                m_vendor_config.nDataSize  = config->nDataSize;
+                m_vendor_config.pData = (OMX_U8*)malloc(config->nDataSize);
+                memcpy(m_vendor_config.pData,config->pData,config->nDataSize);
+                m_vc1_profile = VC1_SP_MP_RCV;
+            } else {
+                DEBUG_PRINT_LOW("set_config - Error: Unknown VC1 profile\n");
+            }
+        }
+        return ret;
+    } else if (configIndex == OMX_IndexConfigVideoNalSize) {
+        struct v4l2_control temp;
+        temp.id = V4L2_CID_MPEG_VIDC_VIDEO_STREAM_FORMAT;
+
+        pNal = reinterpret_cast < OMX_VIDEO_CONFIG_NALSIZE * >(configData);
+        switch (pNal->nNaluBytes) {
+            case 0:
+                temp.value = V4L2_MPEG_VIDC_VIDEO_NAL_FORMAT_STARTCODES;
+                break;
+            case 2:
+                temp.value = V4L2_MPEG_VIDC_VIDEO_NAL_FORMAT_TWO_BYTE_LENGTH;
+                break;
+            case 4:
+                temp.value = V4L2_MPEG_VIDC_VIDEO_NAL_FORMAT_FOUR_BYTE_LENGTH;
+                break;
+            default:
+                return OMX_ErrorUnsupportedSetting;
+        }
+
+        if (!arbitrary_bytes) {
+            /* In arbitrary bytes mode, the assembler strips out nal size and replaces
+             * with start code, so only need to notify driver in frame by frame mode */
+            if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &temp)) {
+                DEBUG_PRINT_ERROR("Failed to set V4L2_CID_MPEG_VIDC_VIDEO_STREAM_FORMAT");
+                return OMX_ErrorHardware;
+            }
+        }
+
+        nal_length = pNal->nNaluBytes;
+        m_frame_parser.init_nal_length(nal_length);
+
+        DEBUG_PRINT_LOW("\n OMX_IndexConfigVideoNalSize called with Size %d", nal_length);
+        return ret;
+    } else if (configIndex == OMX_IndexVendorVideoFrameRate) {
+        OMX_VENDOR_VIDEOFRAMERATE *config = (OMX_VENDOR_VIDEOFRAMERATE *) configData;
+        DEBUG_PRINT_HIGH("Index OMX_IndexVendorVideoFrameRate %d", config->nFps);
+
+        if (config->nPortIndex == OMX_CORE_INPUT_PORT_INDEX) {
+            if (config->bEnabled) {
+                if ((config->nFps >> 16) > 0) {
+                    DEBUG_PRINT_HIGH("set_config: frame rate set by omx client : %d",
+                            config->nFps >> 16);
+                    Q16ToFraction(config->nFps, drv_ctx.frame_rate.fps_numerator,
+                            drv_ctx.frame_rate.fps_denominator);
+
+                    if (!drv_ctx.frame_rate.fps_numerator) {
+                        DEBUG_PRINT_ERROR("Numerator is zero setting to 30");
+                        drv_ctx.frame_rate.fps_numerator = 30;
+                    }
+
+                    if (drv_ctx.frame_rate.fps_denominator) {
+                        drv_ctx.frame_rate.fps_numerator = (int)
+                            drv_ctx.frame_rate.fps_numerator / drv_ctx.frame_rate.fps_denominator;
+                    }
+
+                    drv_ctx.frame_rate.fps_denominator = 1;
+                    frm_int = drv_ctx.frame_rate.fps_denominator * 1e6 /
+                        drv_ctx.frame_rate.fps_numerator;
+
+                    struct v4l2_outputparm oparm;
+                    /*XXX: we're providing timing info as seconds per frame rather than frames
+                     * per second.*/
+                    oparm.timeperframe.numerator = drv_ctx.frame_rate.fps_denominator;
+                    oparm.timeperframe.denominator = drv_ctx.frame_rate.fps_numerator;
+
+                    struct v4l2_streamparm sparm;
+                    sparm.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+                    sparm.parm.output = oparm;
+                    if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_PARM, &sparm)) {
+                        DEBUG_PRINT_ERROR("Unable to convey fps info to driver, \
+                                performance might be affected");
+                        ret = OMX_ErrorHardware;
+                    }
+                    client_set_fps = true;
+                } else {
+                    DEBUG_PRINT_ERROR("Frame rate not supported.");
+                    ret = OMX_ErrorUnsupportedSetting;
+                }
+            } else {
+                DEBUG_PRINT_HIGH("set_config: Disabled client's frame rate");
+                client_set_fps = false;
+            }
+        } else {
+            DEBUG_PRINT_ERROR(" Set_config: Bad Port idx %d",
+                    (int)config->nPortIndex);
+            ret = OMX_ErrorBadPortIndex;
+        }
+
+        return ret;
+    }
+
+    return OMX_ErrorNotImplemented;
+}
+
+/* ======================================================================
+   FUNCTION
+   omx_vdec::GetExtensionIndex
+
+   DESCRIPTION
+   OMX GetExtensionIndex method implementaion.  <TBD>
+
+   PARAMETERS
+   <TBD>.
+
+   RETURN VALUE
+   OMX Error None if everything successful.
+
+   ========================================================================== */
+OMX_ERRORTYPE  omx_vdec::get_extension_index(OMX_IN OMX_HANDLETYPE      hComp,
+        OMX_IN OMX_STRING      paramName,
+        OMX_OUT OMX_INDEXTYPE* indexType)
+{
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("Get Extension Index in Invalid State\n");
+        return OMX_ErrorInvalidState;
+    } else if (!strncmp(paramName, "OMX.QCOM.index.param.video.SyncFrameDecodingMode",sizeof("OMX.QCOM.index.param.video.SyncFrameDecodingMode") - 1)) {
+        *indexType = (OMX_INDEXTYPE)OMX_QcomIndexParamVideoSyncFrameDecodingMode;
+    } else if (!strncmp(paramName, "OMX.QCOM.index.param.IndexExtraData",sizeof("OMX.QCOM.index.param.IndexExtraData") - 1)) {
         *indexType = (OMX_INDEXTYPE)OMX_QcomIndexParamIndexExtraDataType;
     }
 #if defined (_ANDROID_HONEYCOMB_) || defined (_ANDROID_ICS_)
-    else if(!strncmp(paramName,"OMX.google.android.index.enableAndroidNativeBuffers", sizeof("OMX.google.android.index.enableAndroidNativeBuffers") - 1)) {
+    else if (!strncmp(paramName,"OMX.google.android.index.enableAndroidNativeBuffers", sizeof("OMX.google.android.index.enableAndroidNativeBuffers") - 1)) {
         *indexType = (OMX_INDEXTYPE)OMX_GoogleAndroidIndexEnableAndroidNativeBuffers;
-    }
-    else if(!strncmp(paramName,"OMX.google.android.index.useAndroidNativeBuffer2", sizeof("OMX.google.android.index.enableAndroidNativeBuffer2") - 1)) {
+    } else if (!strncmp(paramName,"OMX.google.android.index.useAndroidNativeBuffer2", sizeof("OMX.google.android.index.enableAndroidNativeBuffer2") - 1)) {
         *indexType = (OMX_INDEXTYPE)OMX_GoogleAndroidIndexUseAndroidNativeBuffer2;
-    }
-    else if(!strncmp(paramName,"OMX.google.android.index.useAndroidNativeBuffer", sizeof("OMX.google.android.index.enableAndroidNativeBuffer") - 1)) {
+    } else if (!strncmp(paramName,"OMX.google.android.index.useAndroidNativeBuffer", sizeof("OMX.google.android.index.enableAndroidNativeBuffer") - 1)) {
         DEBUG_PRINT_ERROR("Extension: %s is supported\n", paramName);
         *indexType = (OMX_INDEXTYPE)OMX_GoogleAndroidIndexUseAndroidNativeBuffer;
-    }
-    else if(!strncmp(paramName,"OMX.google.android.index.getAndroidNativeBufferUsage", sizeof("OMX.google.android.index.getAndroidNativeBufferUsage") - 1)) {
+    } else if (!strncmp(paramName,"OMX.google.android.index.getAndroidNativeBufferUsage", sizeof("OMX.google.android.index.getAndroidNativeBufferUsage") - 1)) {
         *indexType = (OMX_INDEXTYPE)OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage;
     }
 #endif
-	else {
+    else {
         DEBUG_PRINT_ERROR("Extension: %s not implemented\n", paramName);
         return OMX_ErrorNotImplemented;
     }
@@ -4189,1318 +3668,1231 @@
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::GetState
+   FUNCTION
+   omx_vdec::GetState
 
-DESCRIPTION
-  Returns the state information back to the caller.<TBD>
+   DESCRIPTION
+   Returns the state information back to the caller.<TBD>
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  Error None if everything is successful.
-========================================================================== */
+   RETURN VALUE
+   Error None if everything is successful.
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::get_state(OMX_IN OMX_HANDLETYPE  hComp,
-                                       OMX_OUT OMX_STATETYPE* state)
+        OMX_OUT OMX_STATETYPE* state)
 {
-  *state = m_state;
-  DEBUG_PRINT_LOW("get_state: Returning the state %d\n",*state);
-  return OMX_ErrorNone;
+    *state = m_state;
+    DEBUG_PRINT_LOW("get_state: Returning the state %d\n",*state);
+    return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::ComponentTunnelRequest
+   FUNCTION
+   omx_vdec::ComponentTunnelRequest
 
-DESCRIPTION
-  OMX Component Tunnel Request method implementation. <TBD>
+   DESCRIPTION
+   OMX Component Tunnel Request method implementation. <TBD>
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  OMX Error None if everything successful.
+   RETURN VALUE
+   OMX Error None if everything successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::component_tunnel_request(OMX_IN OMX_HANDLETYPE                hComp,
-                                                     OMX_IN OMX_U32                        port,
-                                                     OMX_IN OMX_HANDLETYPE        peerComponent,
-                                                     OMX_IN OMX_U32                    peerPort,
-                                                     OMX_INOUT OMX_TUNNELSETUPTYPE* tunnelSetup)
+        OMX_IN OMX_U32                        port,
+        OMX_IN OMX_HANDLETYPE        peerComponent,
+        OMX_IN OMX_U32                    peerPort,
+        OMX_INOUT OMX_TUNNELSETUPTYPE* tunnelSetup)
 {
-  DEBUG_PRINT_ERROR("Error: component_tunnel_request Not Implemented\n");
-  return OMX_ErrorNotImplemented;
+    DEBUG_PRINT_ERROR("Error: component_tunnel_request Not Implemented\n");
+    return OMX_ErrorNotImplemented;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::UseOutputBuffer
+   FUNCTION
+   omx_vdec::UseOutputBuffer
 
-DESCRIPTION
-  Helper function for Use buffer in the input pin
+   DESCRIPTION
+   Helper function for Use buffer in the input pin
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE omx_vdec::allocate_extradata()
 {
 #ifdef USE_ION
-  if (drv_ctx.extradata_info.buffer_size) {
-    if (drv_ctx.extradata_info.ion.ion_alloc_data.handle) {
-      munmap((void *)drv_ctx.extradata_info.uaddr, drv_ctx.extradata_info.size);
-      close(drv_ctx.extradata_info.ion.fd_ion_data.fd);
-      free_ion_memory(&drv_ctx.extradata_info.ion);
+    if (drv_ctx.extradata_info.buffer_size) {
+        if (drv_ctx.extradata_info.ion.ion_alloc_data.handle) {
+            munmap((void *)drv_ctx.extradata_info.uaddr, drv_ctx.extradata_info.size);
+            close(drv_ctx.extradata_info.ion.fd_ion_data.fd);
+            free_ion_memory(&drv_ctx.extradata_info.ion);
+        }
+        drv_ctx.extradata_info.size = (drv_ctx.extradata_info.size + 4095) & (~4095);
+        drv_ctx.extradata_info.ion.ion_device_fd = alloc_map_ion_memory(
+                drv_ctx.extradata_info.size, 4096,
+                &drv_ctx.extradata_info.ion.ion_alloc_data,
+                &drv_ctx.extradata_info.ion.fd_ion_data, 0);
+        if (drv_ctx.extradata_info.ion.ion_device_fd < 0) {
+            DEBUG_PRINT_ERROR("Failed to alloc extradata memory\n");
+            return OMX_ErrorInsufficientResources;
+        }
+        drv_ctx.extradata_info.uaddr = (char *)mmap(NULL,
+                drv_ctx.extradata_info.size,
+                PROT_READ|PROT_WRITE, MAP_SHARED,
+                drv_ctx.extradata_info.ion.fd_ion_data.fd , 0);
+        if (drv_ctx.extradata_info.uaddr == MAP_FAILED) {
+            DEBUG_PRINT_ERROR("Failed to map extradata memory\n");
+            close(drv_ctx.extradata_info.ion.fd_ion_data.fd);
+            free_ion_memory(&drv_ctx.extradata_info.ion);
+            return OMX_ErrorInsufficientResources;
+        }
     }
-    drv_ctx.extradata_info.size = (drv_ctx.extradata_info.size + 4095) & (~4095);
-    drv_ctx.extradata_info.ion.ion_device_fd = alloc_map_ion_memory(
-        drv_ctx.extradata_info.size, 4096,
-        &drv_ctx.extradata_info.ion.ion_alloc_data,
-        &drv_ctx.extradata_info.ion.fd_ion_data, 0);
-    if (drv_ctx.extradata_info.ion.ion_device_fd < 0) {
-      DEBUG_PRINT_ERROR("Failed to alloc extradata memory\n");
-      return OMX_ErrorInsufficientResources;
-    }
-    drv_ctx.extradata_info.uaddr = (char *)mmap(NULL,
-        drv_ctx.extradata_info.size,
-        PROT_READ|PROT_WRITE, MAP_SHARED,
-        drv_ctx.extradata_info.ion.fd_ion_data.fd , 0);
-    if (drv_ctx.extradata_info.uaddr == MAP_FAILED) {
-      DEBUG_PRINT_ERROR("Failed to map extradata memory\n");
-      close(drv_ctx.extradata_info.ion.fd_ion_data.fd);
-      free_ion_memory(&drv_ctx.extradata_info.ion);
-      return OMX_ErrorInsufficientResources;
-    }
-  }
 #endif
-  return OMX_ErrorNone;
+    return OMX_ErrorNone;
 }
 
-void omx_vdec::free_extradata() {
+void omx_vdec::free_extradata()
+{
 #ifdef USE_ION
-  if (drv_ctx.extradata_info.uaddr) {
-    munmap((void *)drv_ctx.extradata_info.uaddr, drv_ctx.extradata_info.size);
-    close(drv_ctx.extradata_info.ion.fd_ion_data.fd);
-    free_ion_memory(&drv_ctx.extradata_info.ion);
-  }
-  memset(&drv_ctx.extradata_info, 0, sizeof(drv_ctx.extradata_info));
+    if (drv_ctx.extradata_info.uaddr) {
+        munmap((void *)drv_ctx.extradata_info.uaddr, drv_ctx.extradata_info.size);
+        close(drv_ctx.extradata_info.ion.fd_ion_data.fd);
+        free_ion_memory(&drv_ctx.extradata_info.ion);
+    }
+    memset(&drv_ctx.extradata_info, 0, sizeof(drv_ctx.extradata_info));
 #endif
 }
 
 OMX_ERRORTYPE  omx_vdec::use_output_buffer(
-                         OMX_IN OMX_HANDLETYPE            hComp,
-                         OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                         OMX_IN OMX_U32                   port,
-                         OMX_IN OMX_PTR                   appData,
-                         OMX_IN OMX_U32                   bytes,
-                         OMX_IN OMX_U8*                   buffer)
+        OMX_IN OMX_HANDLETYPE            hComp,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                   port,
+        OMX_IN OMX_PTR                   appData,
+        OMX_IN OMX_U32                   bytes,
+        OMX_IN OMX_U8*                   buffer)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  OMX_BUFFERHEADERTYPE       *bufHdr= NULL; // buffer header
-  unsigned                         i= 0; // Temporary counter
-  struct vdec_setbuffer_cmd setbuffers;
-  OMX_PTR privateAppData = NULL;
-  private_handle_t *handle = NULL;
-  OMX_U8 *buff = buffer;
-  struct v4l2_buffer buf;
-  struct v4l2_plane plane[VIDEO_MAX_PLANES];
-  int extra_idx = 0;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_BUFFERHEADERTYPE       *bufHdr= NULL; // buffer header
+    unsigned                         i= 0; // Temporary counter
+    struct vdec_setbuffer_cmd setbuffers;
+    OMX_PTR privateAppData = NULL;
+    private_handle_t *handle = NULL;
+    OMX_U8 *buff = buffer;
+    struct v4l2_buffer buf;
+    struct v4l2_plane plane[VIDEO_MAX_PLANES];
+    int extra_idx = 0;
 
-  if (!m_out_mem_ptr) {
-    DEBUG_PRINT_HIGH("Use_op_buf:Allocating output headers");
-    eRet = allocate_output_headers();
-    if (eRet == OMX_ErrorNone)
-      eRet = allocate_extradata();
-  }
-
-  if (eRet == OMX_ErrorNone) {
-    for(i=0; i< drv_ctx.op_buf.actualcount; i++) {
-      if(BITMASK_ABSENT(&m_out_bm_count,i))
-      {
-        break;
-      }
+    if (!m_out_mem_ptr) {
+        DEBUG_PRINT_HIGH("Use_op_buf:Allocating output headers");
+        eRet = allocate_output_headers();
+        if (eRet == OMX_ErrorNone)
+            eRet = allocate_extradata();
     }
-  }
 
-  if(i >= drv_ctx.op_buf.actualcount) {
-    DEBUG_PRINT_ERROR("Already using %d o/p buffers\n", drv_ctx.op_buf.actualcount);
-    eRet = OMX_ErrorInsufficientResources;
-  }
+    if (eRet == OMX_ErrorNone) {
+        for (i=0; i< drv_ctx.op_buf.actualcount; i++) {
+            if (BITMASK_ABSENT(&m_out_bm_count,i)) {
+                break;
+            }
+        }
+    }
 
-  if (eRet == OMX_ErrorNone) {
+    if (i >= drv_ctx.op_buf.actualcount) {
+        DEBUG_PRINT_ERROR("Already using %d o/p buffers\n", drv_ctx.op_buf.actualcount);
+        eRet = OMX_ErrorInsufficientResources;
+    }
+
+    if (eRet == OMX_ErrorNone) {
 #if defined(_ANDROID_HONEYCOMB_) || defined(_ANDROID_ICS_)
-    if(m_enable_android_native_buffers) {
-        if (m_use_android_native_buffers) {
-            UseAndroidNativeBufferParams *params = (UseAndroidNativeBufferParams *)appData;
-            sp<android_native_buffer_t> nBuf = params->nativeBuffer;
-            handle = (private_handle_t *)nBuf->handle;
-            privateAppData = params->pAppPrivate;
-        } else {
-            handle = (private_handle_t *)buff;
-            privateAppData = appData;
-        }
+        if (m_enable_android_native_buffers) {
+            if (m_use_android_native_buffers) {
+                UseAndroidNativeBufferParams *params = (UseAndroidNativeBufferParams *)appData;
+                sp<android_native_buffer_t> nBuf = params->nativeBuffer;
+                handle = (private_handle_t *)nBuf->handle;
+                privateAppData = params->pAppPrivate;
+            } else {
+                handle = (private_handle_t *)buff;
+                privateAppData = appData;
+            }
 
-        if ((OMX_U32)handle->size < drv_ctx.op_buf.buffer_size) {
-            DEBUG_PRINT_ERROR("Insufficient sized buffer given for playback,"
-                              " expected %u, got %lu",
-                              drv_ctx.op_buf.buffer_size, (OMX_U32)handle->size);
-            return OMX_ErrorBadParameter;
-        }
+            if ((OMX_U32)handle->size < drv_ctx.op_buf.buffer_size) {
+                DEBUG_PRINT_ERROR("Insufficient sized buffer given for playback,"
+                        " expected %u, got %lu",
+                        drv_ctx.op_buf.buffer_size, (OMX_U32)handle->size);
+                return OMX_ErrorBadParameter;
+            }
 
-        if (!m_use_android_native_buffers) {
-            if (!secure_mode) {
-                buff =  (OMX_U8*)mmap(0, handle->size,
-                                      PROT_READ|PROT_WRITE, MAP_SHARED, handle->fd, 0);
-                if (buff == MAP_FAILED) {
-                  DEBUG_PRINT_ERROR("Failed to mmap pmem with fd = %d, size = %d", handle->fd, handle->size);
-                  return OMX_ErrorInsufficientResources;
+            if (!m_use_android_native_buffers) {
+                if (!secure_mode) {
+                    buff =  (OMX_U8*)mmap(0, handle->size,
+                            PROT_READ|PROT_WRITE, MAP_SHARED, handle->fd, 0);
+                    if (buff == MAP_FAILED) {
+                        DEBUG_PRINT_ERROR("Failed to mmap pmem with fd = %d, size = %d", handle->fd, handle->size);
+                        return OMX_ErrorInsufficientResources;
+                    }
                 }
             }
-        }
 #if defined(_ANDROID_ICS_)
-        native_buffer[i].nativehandle = handle;
-        native_buffer[i].privatehandle = handle;
+            native_buffer[i].nativehandle = handle;
+            native_buffer[i].privatehandle = handle;
 #endif
-        if(!handle) {
-            DEBUG_PRINT_ERROR("Native Buffer handle is NULL");
+            if (!handle) {
+                DEBUG_PRINT_ERROR("Native Buffer handle is NULL");
+                return OMX_ErrorBadParameter;
+            }
+            drv_ctx.ptr_outputbuffer[i].pmem_fd = handle->fd;
+            drv_ctx.ptr_outputbuffer[i].offset = 0;
+            drv_ctx.ptr_outputbuffer[i].bufferaddr = buff;
+            drv_ctx.ptr_outputbuffer[i].buffer_len = drv_ctx.op_buf.buffer_size;
+            drv_ctx.ptr_outputbuffer[i].mmaped_size = handle->size;
+        } else
+#endif
+
+            if (!ouput_egl_buffers && !m_use_output_pmem) {
+#ifdef USE_ION
+                drv_ctx.op_buf_ion_info[i].ion_device_fd = alloc_map_ion_memory(
+                        drv_ctx.op_buf.buffer_size,drv_ctx.op_buf.alignment,
+                        &drv_ctx.op_buf_ion_info[i].ion_alloc_data,
+                        &drv_ctx.op_buf_ion_info[i].fd_ion_data, secure_mode ? ION_SECURE : 0);
+                if (drv_ctx.op_buf_ion_info[i].ion_device_fd < 0) {
+                    DEBUG_PRINT_ERROR("ION device fd is bad %d\n", drv_ctx.op_buf_ion_info[i].ion_device_fd);
+                    return OMX_ErrorInsufficientResources;
+                }
+                drv_ctx.ptr_outputbuffer[i].pmem_fd = \
+                                      drv_ctx.op_buf_ion_info[i].fd_ion_data.fd;
+#else
+                drv_ctx.ptr_outputbuffer[i].pmem_fd = \
+                                      open (MEM_DEVICE,O_RDWR);
+
+                if (drv_ctx.ptr_outputbuffer[i].pmem_fd < 0) {
+                    DEBUG_PRINT_ERROR("ION/pmem buffer fd is bad %d\n", drv_ctx.ptr_outputbuffer[i].pmem_fd);
+                    return OMX_ErrorInsufficientResources;
+                }
+
+                /* FIXME: why is this code even here? We already open MEM_DEVICE a few lines above */
+                if (drv_ctx.ptr_outputbuffer[i].pmem_fd == 0) {
+                    drv_ctx.ptr_outputbuffer[i].pmem_fd = \
+                                          open (MEM_DEVICE,O_RDWR);
+                    if (drv_ctx.ptr_outputbuffer[i].pmem_fd < 0) {
+                        DEBUG_PRINT_ERROR("ION/pmem buffer fd is bad %d\n", drv_ctx.ptr_outputbuffer[i].pmem_fd);
+                        return OMX_ErrorInsufficientResources;
+                    }
+                }
+
+                if (!align_pmem_buffers(drv_ctx.ptr_outputbuffer[i].pmem_fd,
+                            drv_ctx.op_buf.buffer_size,
+                            drv_ctx.op_buf.alignment)) {
+                    DEBUG_PRINT_ERROR("\n align_pmem_buffers() failed");
+                    close(drv_ctx.ptr_outputbuffer[i].pmem_fd);
+                    return OMX_ErrorInsufficientResources;
+                }
+#endif
+                if (!secure_mode) {
+                    drv_ctx.ptr_outputbuffer[i].bufferaddr =
+                        (unsigned char *)mmap(NULL, drv_ctx.op_buf.buffer_size,
+                                PROT_READ|PROT_WRITE, MAP_SHARED,
+                                drv_ctx.ptr_outputbuffer[i].pmem_fd,0);
+                    if (drv_ctx.ptr_outputbuffer[i].bufferaddr == MAP_FAILED) {
+                        close(drv_ctx.ptr_outputbuffer[i].pmem_fd);
+#ifdef USE_ION
+                        free_ion_memory(&drv_ctx.op_buf_ion_info[i]);
+#endif
+                        DEBUG_PRINT_ERROR("Unable to mmap output buffer\n");
+                        return OMX_ErrorInsufficientResources;
+                    }
+                }
+                drv_ctx.ptr_outputbuffer[i].offset = 0;
+                privateAppData = appData;
+            } else {
+
+                DEBUG_PRINT_LOW("Use_op_buf: out_pmem=%d",m_use_output_pmem);
+                if (!appData || !bytes ) {
+                    if (!secure_mode && !buffer) {
+                        DEBUG_PRINT_ERROR("\n Bad parameters for use buffer in EGL image case");
+                        return OMX_ErrorBadParameter;
+                    }
+                }
+
+                OMX_QCOM_PLATFORM_PRIVATE_LIST *pmem_list;
+                OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pmem_info;
+                pmem_list = (OMX_QCOM_PLATFORM_PRIVATE_LIST*) appData;
+                if (!pmem_list->entryList || !pmem_list->entryList->entry ||
+                        !pmem_list->nEntries ||
+                        pmem_list->entryList->type != OMX_QCOM_PLATFORM_PRIVATE_PMEM) {
+                    DEBUG_PRINT_ERROR("\n Pmem info not valid in use buffer");
+                    return OMX_ErrorBadParameter;
+                }
+                pmem_info = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
+                    pmem_list->entryList->entry;
+                DEBUG_PRINT_LOW("vdec: use buf: pmem_fd=0x%lx",
+                        pmem_info->pmem_fd);
+                drv_ctx.ptr_outputbuffer[i].pmem_fd = pmem_info->pmem_fd;
+                drv_ctx.ptr_outputbuffer[i].offset = pmem_info->offset;
+                drv_ctx.ptr_outputbuffer[i].bufferaddr = buff;
+                drv_ctx.ptr_outputbuffer[i].mmaped_size =
+                    drv_ctx.ptr_outputbuffer[i].buffer_len = drv_ctx.op_buf.buffer_size;
+                privateAppData = appData;
+            }
+        m_pmem_info[i].offset = drv_ctx.ptr_outputbuffer[i].offset;
+        m_pmem_info[i].pmem_fd = drv_ctx.ptr_outputbuffer[i].pmem_fd;
+
+        *bufferHdr = (m_out_mem_ptr + i );
+        if (secure_mode)
+            drv_ctx.ptr_outputbuffer[i].bufferaddr = *bufferHdr;
+        //setbuffers.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
+        memcpy (&setbuffers.buffer,&drv_ctx.ptr_outputbuffer[i],
+                sizeof (vdec_bufferpayload));
+
+        DEBUG_PRINT_HIGH("\n Set the Output Buffer Idx: %d Addr: %p, pmem_fd=0x%x", i,
+                drv_ctx.ptr_outputbuffer[i].bufferaddr,
+                drv_ctx.ptr_outputbuffer[i].pmem_fd );
+
+        buf.index = i;
+        buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+        buf.memory = V4L2_MEMORY_USERPTR;
+        plane[0].length = drv_ctx.op_buf.buffer_size;
+        plane[0].m.userptr = (unsigned long)drv_ctx.ptr_outputbuffer[i].bufferaddr -
+            (unsigned long)drv_ctx.ptr_outputbuffer[i].offset;
+        plane[0].reserved[0] = drv_ctx.ptr_outputbuffer[i].pmem_fd;
+        plane[0].reserved[1] = drv_ctx.ptr_outputbuffer[i].offset;
+        plane[0].data_offset = 0;
+        extra_idx = EXTRADATA_IDX(drv_ctx.num_planes);
+        if (extra_idx && (extra_idx < VIDEO_MAX_PLANES)) {
+            plane[extra_idx].length = drv_ctx.extradata_info.buffer_size;
+            plane[extra_idx].m.userptr = (long unsigned int) (drv_ctx.extradata_info.uaddr + i * drv_ctx.extradata_info.buffer_size);
+#ifdef USE_ION
+            plane[extra_idx].reserved[0] = drv_ctx.extradata_info.ion.fd_ion_data.fd;
+#endif
+            plane[extra_idx].reserved[1] = i * drv_ctx.extradata_info.buffer_size;
+            plane[extra_idx].data_offset = 0;
+        } else if  (extra_idx >= VIDEO_MAX_PLANES) {
+            DEBUG_PRINT_ERROR("Extradata index is more than allowed: %d\n", extra_idx);
             return OMX_ErrorBadParameter;
         }
-        drv_ctx.ptr_outputbuffer[i].pmem_fd = handle->fd;
-        drv_ctx.ptr_outputbuffer[i].offset = 0;
-        drv_ctx.ptr_outputbuffer[i].bufferaddr = buff;
-        drv_ctx.ptr_outputbuffer[i].buffer_len = drv_ctx.op_buf.buffer_size;
-        drv_ctx.ptr_outputbuffer[i].mmaped_size = handle->size;
-    } else
-#endif
+        buf.m.planes = plane;
+        buf.length = drv_ctx.num_planes;
 
-    if (!ouput_egl_buffers && !m_use_output_pmem) {
-#ifdef USE_ION
-        drv_ctx.op_buf_ion_info[i].ion_device_fd = alloc_map_ion_memory(
-                drv_ctx.op_buf.buffer_size,drv_ctx.op_buf.alignment,
-                &drv_ctx.op_buf_ion_info[i].ion_alloc_data,
-                &drv_ctx.op_buf_ion_info[i].fd_ion_data, secure_mode ? ION_SECURE : 0);
-        if(drv_ctx.op_buf_ion_info[i].ion_device_fd < 0) {
-          DEBUG_PRINT_ERROR("ION device fd is bad %d\n", drv_ctx.op_buf_ion_info[i].ion_device_fd);
-          return OMX_ErrorInsufficientResources;
-        }
-        drv_ctx.ptr_outputbuffer[i].pmem_fd = \
-          drv_ctx.op_buf_ion_info[i].fd_ion_data.fd;
-#else
-        drv_ctx.ptr_outputbuffer[i].pmem_fd = \
-          open (MEM_DEVICE,O_RDWR);
-
-        if (drv_ctx.ptr_outputbuffer[i].pmem_fd < 0) {
-          DEBUG_PRINT_ERROR("ION/pmem buffer fd is bad %d\n", drv_ctx.ptr_outputbuffer[i].pmem_fd);
-          return OMX_ErrorInsufficientResources;
-        }
-
-	/* FIXME: why is this code even here? We already open MEM_DEVICE a few lines above */
-        if(drv_ctx.ptr_outputbuffer[i].pmem_fd == 0)
-        {
-          drv_ctx.ptr_outputbuffer[i].pmem_fd = \
-            open (MEM_DEVICE,O_RDWR);
-          if (drv_ctx.ptr_outputbuffer[i].pmem_fd < 0) {
-            DEBUG_PRINT_ERROR("ION/pmem buffer fd is bad %d\n", drv_ctx.ptr_outputbuffer[i].pmem_fd);
+        if (ioctl(drv_ctx.video_driver_fd, VIDIOC_PREPARE_BUF, &buf)) {
+            DEBUG_PRINT_ERROR("Failed to prepare bufs\n");
+            /*TODO: How to handle this case */
             return OMX_ErrorInsufficientResources;
-          }
         }
 
-        if(!align_pmem_buffers(drv_ctx.ptr_outputbuffer[i].pmem_fd,
-          drv_ctx.op_buf.buffer_size,
-          drv_ctx.op_buf.alignment))
-        {
-          DEBUG_PRINT_ERROR("\n align_pmem_buffers() failed");
-          close(drv_ctx.ptr_outputbuffer[i].pmem_fd);
-          return OMX_ErrorInsufficientResources;
-        }
-#endif
-        if(!secure_mode) {
-            drv_ctx.ptr_outputbuffer[i].bufferaddr =
-              (unsigned char *)mmap(NULL, drv_ctx.op_buf.buffer_size,
-              PROT_READ|PROT_WRITE, MAP_SHARED,
-              drv_ctx.ptr_outputbuffer[i].pmem_fd,0);
-            if (drv_ctx.ptr_outputbuffer[i].bufferaddr == MAP_FAILED) {
-                close(drv_ctx.ptr_outputbuffer[i].pmem_fd);
-#ifdef USE_ION
-                free_ion_memory(&drv_ctx.op_buf_ion_info[i]);
-#endif
-              DEBUG_PRINT_ERROR("Unable to mmap output buffer\n");
-              return OMX_ErrorInsufficientResources;
+        if (i == (drv_ctx.op_buf.actualcount -1) && !streaming[CAPTURE_PORT]) {
+            enum v4l2_buf_type buf_type;
+            buf_type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+            if (ioctl(drv_ctx.video_driver_fd, VIDIOC_STREAMON,&buf_type)) {
+                return OMX_ErrorInsufficientResources;
+            } else {
+                streaming[CAPTURE_PORT] = true;
+                DEBUG_PRINT_LOW("\n STREAMON Successful \n ");
             }
         }
-        drv_ctx.ptr_outputbuffer[i].offset = 0;
-        privateAppData = appData;
-     }
-     else {
 
-       DEBUG_PRINT_LOW("Use_op_buf: out_pmem=%d",m_use_output_pmem);
-        if (!appData || !bytes ) {
-          if(!secure_mode && !buffer) {
-              DEBUG_PRINT_ERROR("\n Bad parameters for use buffer in EGL image case");
-              return OMX_ErrorBadParameter;
-          }
+        (*bufferHdr)->nAllocLen = drv_ctx.op_buf.buffer_size;
+        if (m_enable_android_native_buffers) {
+            DEBUG_PRINT_LOW("setting pBuffer to private_handle_t %p", handle);
+            (*bufferHdr)->pBuffer = (OMX_U8 *)handle;
+        } else {
+            (*bufferHdr)->pBuffer = buff;
         }
-
-        OMX_QCOM_PLATFORM_PRIVATE_LIST *pmem_list;
-        OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pmem_info;
-        pmem_list = (OMX_QCOM_PLATFORM_PRIVATE_LIST*) appData;
-        if (!pmem_list->entryList || !pmem_list->entryList->entry ||
-            !pmem_list->nEntries ||
-            pmem_list->entryList->type != OMX_QCOM_PLATFORM_PRIVATE_PMEM) {
-          DEBUG_PRINT_ERROR("\n Pmem info not valid in use buffer");
-          return OMX_ErrorBadParameter;
-        }
-        pmem_info = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
-                    pmem_list->entryList->entry;
-        DEBUG_PRINT_LOW("vdec: use buf: pmem_fd=0x%lx",
-                          pmem_info->pmem_fd);
-        drv_ctx.ptr_outputbuffer[i].pmem_fd = pmem_info->pmem_fd;
-        drv_ctx.ptr_outputbuffer[i].offset = pmem_info->offset;
-        drv_ctx.ptr_outputbuffer[i].bufferaddr = buff;
-        drv_ctx.ptr_outputbuffer[i].mmaped_size =
-        drv_ctx.ptr_outputbuffer[i].buffer_len = drv_ctx.op_buf.buffer_size;
-        privateAppData = appData;
-     }
-     m_pmem_info[i].offset = drv_ctx.ptr_outputbuffer[i].offset;
-     m_pmem_info[i].pmem_fd = drv_ctx.ptr_outputbuffer[i].pmem_fd;
-
-     *bufferHdr = (m_out_mem_ptr + i );
-     if(secure_mode)
-          drv_ctx.ptr_outputbuffer[i].bufferaddr = *bufferHdr;
-     //setbuffers.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
-     memcpy (&setbuffers.buffer,&drv_ctx.ptr_outputbuffer[i],
-             sizeof (vdec_bufferpayload));
-
-     DEBUG_PRINT_HIGH("\n Set the Output Buffer Idx: %d Addr: %p, pmem_fd=0x%x", i,
-                       drv_ctx.ptr_outputbuffer[i].bufferaddr,
-                       drv_ctx.ptr_outputbuffer[i].pmem_fd );
-
-     buf.index = i;
-     buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-     buf.memory = V4L2_MEMORY_USERPTR;
-     plane[0].length = drv_ctx.op_buf.buffer_size;
-     plane[0].m.userptr = (unsigned long)drv_ctx.ptr_outputbuffer[i].bufferaddr -
-             (unsigned long)drv_ctx.ptr_outputbuffer[i].offset;
-     plane[0].reserved[0] = drv_ctx.ptr_outputbuffer[i].pmem_fd;
-     plane[0].reserved[1] = drv_ctx.ptr_outputbuffer[i].offset;
-     plane[0].data_offset = 0;
-     extra_idx = EXTRADATA_IDX(drv_ctx.num_planes);
-     if (extra_idx && (extra_idx < VIDEO_MAX_PLANES)) {
-       plane[extra_idx].length = drv_ctx.extradata_info.buffer_size;
-       plane[extra_idx].m.userptr = (long unsigned int) (drv_ctx.extradata_info.uaddr + i * drv_ctx.extradata_info.buffer_size);
-#ifdef USE_ION
-       plane[extra_idx].reserved[0] = drv_ctx.extradata_info.ion.fd_ion_data.fd;
-#endif
-       plane[extra_idx].reserved[1] = i * drv_ctx.extradata_info.buffer_size;
-       plane[extra_idx].data_offset = 0;
-     } else if  (extra_idx >= VIDEO_MAX_PLANES) {
-        DEBUG_PRINT_ERROR("Extradata index is more than allowed: %d\n", extra_idx);
-        return OMX_ErrorBadParameter;
-     }
-     buf.m.planes = plane;
-     buf.length = drv_ctx.num_planes;
-
-     if (ioctl(drv_ctx.video_driver_fd, VIDIOC_PREPARE_BUF, &buf)) {
-       DEBUG_PRINT_ERROR("Failed to prepare bufs\n");
-	   /*TODO: How to handle this case */	
-       return OMX_ErrorInsufficientResources;
-     }
-
-     if (i == (drv_ctx.op_buf.actualcount -1) && !streaming[CAPTURE_PORT]) {
-	     enum v4l2_buf_type buf_type;
-	     buf_type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-	     if (ioctl(drv_ctx.video_driver_fd, VIDIOC_STREAMON,&buf_type)) {
-		     return OMX_ErrorInsufficientResources;
-	     } else {
-		     streaming[CAPTURE_PORT] = true;
-		     DEBUG_PRINT_LOW("\n STREAMON Successful \n ");
-	     }
-     }
-
-     (*bufferHdr)->nAllocLen = drv_ctx.op_buf.buffer_size;
-     if (m_enable_android_native_buffers) {
-       DEBUG_PRINT_LOW("setting pBuffer to private_handle_t %p", handle);
-       (*bufferHdr)->pBuffer = (OMX_U8 *)handle;
-     } else {
-       (*bufferHdr)->pBuffer = buff;
-     }
-     (*bufferHdr)->pAppPrivate = privateAppData;
-     BITMASK_SET(&m_out_bm_count,i);
-  }
-  return eRet;
+        (*bufferHdr)->pAppPrivate = privateAppData;
+        BITMASK_SET(&m_out_bm_count,i);
+    }
+    return eRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::use_input_heap_buffers
+   FUNCTION
+   omx_vdec::use_input_heap_buffers
 
-DESCRIPTION
-  OMX Use Buffer Heap allocation method implementation.
+   DESCRIPTION
+   OMX Use Buffer Heap allocation method implementation.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None , if everything successful.
+   RETURN VALUE
+   OMX Error None , if everything successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::use_input_heap_buffers(
-                         OMX_IN OMX_HANDLETYPE            hComp,
-                         OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                         OMX_IN OMX_U32                   port,
-                         OMX_IN OMX_PTR                   appData,
-                         OMX_IN OMX_U32                   bytes,
-                         OMX_IN OMX_U8*                   buffer)
+        OMX_IN OMX_HANDLETYPE            hComp,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                   port,
+        OMX_IN OMX_PTR                   appData,
+        OMX_IN OMX_U32                   bytes,
+        OMX_IN OMX_U8*                   buffer)
 {
-  DEBUG_PRINT_LOW("Inside %s, %p\n", __FUNCTION__, buffer);
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  if(!m_inp_heap_ptr)
-    m_inp_heap_ptr = (OMX_BUFFERHEADERTYPE*)
-               calloc( (sizeof(OMX_BUFFERHEADERTYPE)),
-               drv_ctx.ip_buf.actualcount);
-  if(!m_phdr_pmem_ptr)
-    m_phdr_pmem_ptr = (OMX_BUFFERHEADERTYPE**)
-               calloc( (sizeof(OMX_BUFFERHEADERTYPE*)),
-               drv_ctx.ip_buf.actualcount);
-  if(!m_inp_heap_ptr || !m_phdr_pmem_ptr)
-  {
-    DEBUG_PRINT_ERROR("Insufficent memory");
-    eRet = OMX_ErrorInsufficientResources;
-  }
-  else if (m_in_alloc_cnt < drv_ctx.ip_buf.actualcount)
-  {
-    input_use_buffer = true;
-    memset(&m_inp_heap_ptr[m_in_alloc_cnt], 0, sizeof(OMX_BUFFERHEADERTYPE));
-    m_inp_heap_ptr[m_in_alloc_cnt].pBuffer = buffer;
-    m_inp_heap_ptr[m_in_alloc_cnt].nAllocLen = bytes;
-    m_inp_heap_ptr[m_in_alloc_cnt].pAppPrivate = appData;
-    m_inp_heap_ptr[m_in_alloc_cnt].nInputPortIndex = (OMX_U32) OMX_DirInput;
-    m_inp_heap_ptr[m_in_alloc_cnt].nOutputPortIndex = (OMX_U32) OMX_DirMax;
-    *bufferHdr = &m_inp_heap_ptr[m_in_alloc_cnt];
-    eRet = allocate_input_buffer(hComp, &m_phdr_pmem_ptr[m_in_alloc_cnt], port, appData, bytes);
-    DEBUG_PRINT_HIGH("\n Heap buffer(%p) Pmem buffer(%p)", *bufferHdr, m_phdr_pmem_ptr[m_in_alloc_cnt]);
-    if (!m_input_free_q.insert_entry((unsigned)m_phdr_pmem_ptr[m_in_alloc_cnt],
-                (unsigned)NULL, (unsigned)NULL))
-    {
-      DEBUG_PRINT_ERROR("\nERROR:Free_q is full");
-      return OMX_ErrorInsufficientResources;
+    DEBUG_PRINT_LOW("Inside %s, %p\n", __FUNCTION__, buffer);
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    if (!m_inp_heap_ptr)
+        m_inp_heap_ptr = (OMX_BUFFERHEADERTYPE*)
+            calloc( (sizeof(OMX_BUFFERHEADERTYPE)),
+                    drv_ctx.ip_buf.actualcount);
+    if (!m_phdr_pmem_ptr)
+        m_phdr_pmem_ptr = (OMX_BUFFERHEADERTYPE**)
+            calloc( (sizeof(OMX_BUFFERHEADERTYPE*)),
+                    drv_ctx.ip_buf.actualcount);
+    if (!m_inp_heap_ptr || !m_phdr_pmem_ptr) {
+        DEBUG_PRINT_ERROR("Insufficent memory");
+        eRet = OMX_ErrorInsufficientResources;
+    } else if (m_in_alloc_cnt < drv_ctx.ip_buf.actualcount) {
+        input_use_buffer = true;
+        memset(&m_inp_heap_ptr[m_in_alloc_cnt], 0, sizeof(OMX_BUFFERHEADERTYPE));
+        m_inp_heap_ptr[m_in_alloc_cnt].pBuffer = buffer;
+        m_inp_heap_ptr[m_in_alloc_cnt].nAllocLen = bytes;
+        m_inp_heap_ptr[m_in_alloc_cnt].pAppPrivate = appData;
+        m_inp_heap_ptr[m_in_alloc_cnt].nInputPortIndex = (OMX_U32) OMX_DirInput;
+        m_inp_heap_ptr[m_in_alloc_cnt].nOutputPortIndex = (OMX_U32) OMX_DirMax;
+        *bufferHdr = &m_inp_heap_ptr[m_in_alloc_cnt];
+        eRet = allocate_input_buffer(hComp, &m_phdr_pmem_ptr[m_in_alloc_cnt], port, appData, bytes);
+        DEBUG_PRINT_HIGH("\n Heap buffer(%p) Pmem buffer(%p)", *bufferHdr, m_phdr_pmem_ptr[m_in_alloc_cnt]);
+        if (!m_input_free_q.insert_entry((unsigned)m_phdr_pmem_ptr[m_in_alloc_cnt],
+                    (unsigned)NULL, (unsigned)NULL)) {
+            DEBUG_PRINT_ERROR("\nERROR:Free_q is full");
+            return OMX_ErrorInsufficientResources;
+        }
+        m_in_alloc_cnt++;
+    } else {
+        DEBUG_PRINT_ERROR("All i/p buffers have been set!");
+        eRet = OMX_ErrorInsufficientResources;
     }
-    m_in_alloc_cnt++;
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("All i/p buffers have been set!");
-    eRet = OMX_ErrorInsufficientResources;
-  }
-  return eRet;
+    return eRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::UseBuffer
+   FUNCTION
+   omx_vdec::UseBuffer
 
-DESCRIPTION
-  OMX Use Buffer method implementation.
+   DESCRIPTION
+   OMX Use Buffer method implementation.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None , if everything successful.
+   RETURN VALUE
+   OMX Error None , if everything successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::use_buffer(
-                         OMX_IN OMX_HANDLETYPE            hComp,
-                         OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                         OMX_IN OMX_U32                   port,
-                         OMX_IN OMX_PTR                   appData,
-                         OMX_IN OMX_U32                   bytes,
-                         OMX_IN OMX_U8*                   buffer)
+        OMX_IN OMX_HANDLETYPE            hComp,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                   port,
+        OMX_IN OMX_PTR                   appData,
+        OMX_IN OMX_U32                   bytes,
+        OMX_IN OMX_U8*                   buffer)
 {
-  OMX_ERRORTYPE error = OMX_ErrorNone;
-  struct vdec_setbuffer_cmd setbuffers;
- 
-  if (bufferHdr == NULL || bytes == 0)
-  {
-      if(!secure_mode && buffer == NULL) {
-          DEBUG_PRINT_ERROR("bad param 0x%p %ld 0x%p",bufferHdr, bytes, buffer);
-          return OMX_ErrorBadParameter;
-      }
-  }
-  if(m_state == OMX_StateInvalid)
-  {
-    DEBUG_PRINT_ERROR("Use Buffer in Invalid State\n");
-    return OMX_ErrorInvalidState;
-  }
-  if(port == OMX_CORE_INPUT_PORT_INDEX)
-    error = use_input_heap_buffers(hComp, bufferHdr, port, appData, bytes, buffer);
-  else if(port == OMX_CORE_OUTPUT_PORT_INDEX)
-    error = use_output_buffer(hComp,bufferHdr,port,appData,bytes,buffer); //not tested
-  else
-  {
-    DEBUG_PRINT_ERROR("Error: Invalid Port Index received %d\n",(int)port);
-    error = OMX_ErrorBadPortIndex;
-  }
-  DEBUG_PRINT_LOW("Use Buffer: port %lu, buffer %p, eRet %d", port, *bufferHdr, error);
-  if(error == OMX_ErrorNone)
-  {
-    if(allocate_done() && BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
-    {
-      // Send the callback now
-      BITMASK_CLEAR((&m_flags),OMX_COMPONENT_IDLE_PENDING);
-      post_event(OMX_CommandStateSet,OMX_StateIdle,
-                         OMX_COMPONENT_GENERATE_EVENT);
+    OMX_ERRORTYPE error = OMX_ErrorNone;
+    struct vdec_setbuffer_cmd setbuffers;
+
+    if (bufferHdr == NULL || bytes == 0) {
+        if (!secure_mode && buffer == NULL) {
+            DEBUG_PRINT_ERROR("bad param 0x%p %ld 0x%p",bufferHdr, bytes, buffer);
+            return OMX_ErrorBadParameter;
+        }
     }
-    if(port == OMX_CORE_INPUT_PORT_INDEX && m_inp_bPopulated &&
-       BITMASK_PRESENT(&m_flags,OMX_COMPONENT_INPUT_ENABLE_PENDING))
-    {
-      BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_ENABLE_PENDING);
-      post_event(OMX_CommandPortEnable,
-          OMX_CORE_INPUT_PORT_INDEX,
-          OMX_COMPONENT_GENERATE_EVENT);
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("Use Buffer in Invalid State\n");
+        return OMX_ErrorInvalidState;
     }
-    else if(port == OMX_CORE_OUTPUT_PORT_INDEX && m_out_bPopulated &&
-            BITMASK_PRESENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING))
-    {
-      BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
-      post_event(OMX_CommandPortEnable,
-                 OMX_CORE_OUTPUT_PORT_INDEX,
-                 OMX_COMPONENT_GENERATE_EVENT);
+    if (port == OMX_CORE_INPUT_PORT_INDEX)
+        error = use_input_heap_buffers(hComp, bufferHdr, port, appData, bytes, buffer);
+    else if (port == OMX_CORE_OUTPUT_PORT_INDEX)
+        error = use_output_buffer(hComp,bufferHdr,port,appData,bytes,buffer); //not tested
+    else {
+        DEBUG_PRINT_ERROR("Error: Invalid Port Index received %d\n",(int)port);
+        error = OMX_ErrorBadPortIndex;
     }
-  }
-  return error;
+    DEBUG_PRINT_LOW("Use Buffer: port %lu, buffer %p, eRet %d", port, *bufferHdr, error);
+    if (error == OMX_ErrorNone) {
+        if (allocate_done() && BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING)) {
+            // Send the callback now
+            BITMASK_CLEAR((&m_flags),OMX_COMPONENT_IDLE_PENDING);
+            post_event(OMX_CommandStateSet,OMX_StateIdle,
+                    OMX_COMPONENT_GENERATE_EVENT);
+        }
+        if (port == OMX_CORE_INPUT_PORT_INDEX && m_inp_bPopulated &&
+                BITMASK_PRESENT(&m_flags,OMX_COMPONENT_INPUT_ENABLE_PENDING)) {
+            BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_ENABLE_PENDING);
+            post_event(OMX_CommandPortEnable,
+                    OMX_CORE_INPUT_PORT_INDEX,
+                    OMX_COMPONENT_GENERATE_EVENT);
+        } else if (port == OMX_CORE_OUTPUT_PORT_INDEX && m_out_bPopulated &&
+                BITMASK_PRESENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING)) {
+            BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
+            post_event(OMX_CommandPortEnable,
+                    OMX_CORE_OUTPUT_PORT_INDEX,
+                    OMX_COMPONENT_GENERATE_EVENT);
+        }
+    }
+    return error;
 }
 
 OMX_ERRORTYPE omx_vdec::free_input_buffer(unsigned int bufferindex,
-                                OMX_BUFFERHEADERTYPE *pmem_bufferHdr)
+        OMX_BUFFERHEADERTYPE *pmem_bufferHdr)
 {
-  if (m_inp_heap_ptr && !input_use_buffer && arbitrary_bytes)
-  {
-    if(m_inp_heap_ptr[bufferindex].pBuffer)
-      free(m_inp_heap_ptr[bufferindex].pBuffer);
-    m_inp_heap_ptr[bufferindex].pBuffer = NULL;
-  }
-  if (pmem_bufferHdr)
-    free_input_buffer(pmem_bufferHdr);
-  return OMX_ErrorNone;
+    if (m_inp_heap_ptr && !input_use_buffer && arbitrary_bytes) {
+        if (m_inp_heap_ptr[bufferindex].pBuffer)
+            free(m_inp_heap_ptr[bufferindex].pBuffer);
+        m_inp_heap_ptr[bufferindex].pBuffer = NULL;
+    }
+    if (pmem_bufferHdr)
+        free_input_buffer(pmem_bufferHdr);
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_vdec::free_input_buffer(OMX_BUFFERHEADERTYPE *bufferHdr)
 {
-  unsigned int index = 0;
-  if (bufferHdr == NULL || m_inp_mem_ptr == NULL)
-  {
-    return OMX_ErrorBadParameter;
-  }
-
-  index = bufferHdr - m_inp_mem_ptr;
-  DEBUG_PRINT_LOW("\n Free Input Buffer index = %d",index);
-
-  if (index < drv_ctx.ip_buf.actualcount && drv_ctx.ptr_inputbuffer)
-  {
-    DEBUG_PRINT_LOW("\n Free Input Buffer index = %d",index);
-    if (drv_ctx.ptr_inputbuffer[index].pmem_fd > 0)
-    {
-       struct vdec_setbuffer_cmd setbuffers;
-       setbuffers.buffer_type = VDEC_BUFFER_TYPE_INPUT;
-       memcpy (&setbuffers.buffer,&drv_ctx.ptr_inputbuffer[index],
-          sizeof (vdec_bufferpayload));
-       if(!secure_mode) {
-           DEBUG_PRINT_LOW("\n unmap the input buffer fd=%d",
-                        drv_ctx.ptr_inputbuffer[index].pmem_fd);
-           DEBUG_PRINT_LOW("\n unmap the input buffer size=%d  address = %p",
-                       drv_ctx.ptr_inputbuffer[index].mmaped_size,
-                       drv_ctx.ptr_inputbuffer[index].bufferaddr);
-           munmap (drv_ctx.ptr_inputbuffer[index].bufferaddr,
-                   drv_ctx.ptr_inputbuffer[index].mmaped_size);
-       }
-       close (drv_ctx.ptr_inputbuffer[index].pmem_fd);
-       drv_ctx.ptr_inputbuffer[index].pmem_fd = -1;
-       if (m_desc_buffer_ptr && m_desc_buffer_ptr[index].buf_addr)
-       {
-         free(m_desc_buffer_ptr[index].buf_addr);
-         m_desc_buffer_ptr[index].buf_addr = NULL;
-         m_desc_buffer_ptr[index].desc_data_size = 0;
-       }
-#ifdef USE_ION
-       free_ion_memory(&drv_ctx.ip_buf_ion_info[index]);
-#endif
+    unsigned int index = 0;
+    if (bufferHdr == NULL || m_inp_mem_ptr == NULL) {
+        return OMX_ErrorBadParameter;
     }
-  }
 
-  return OMX_ErrorNone;
+    index = bufferHdr - m_inp_mem_ptr;
+    DEBUG_PRINT_LOW("\n Free Input Buffer index = %d",index);
+
+    if (index < drv_ctx.ip_buf.actualcount && drv_ctx.ptr_inputbuffer) {
+        DEBUG_PRINT_LOW("\n Free Input Buffer index = %d",index);
+        if (drv_ctx.ptr_inputbuffer[index].pmem_fd > 0) {
+            struct vdec_setbuffer_cmd setbuffers;
+            setbuffers.buffer_type = VDEC_BUFFER_TYPE_INPUT;
+            memcpy (&setbuffers.buffer,&drv_ctx.ptr_inputbuffer[index],
+                    sizeof (vdec_bufferpayload));
+            if (!secure_mode) {
+                DEBUG_PRINT_LOW("\n unmap the input buffer fd=%d",
+                        drv_ctx.ptr_inputbuffer[index].pmem_fd);
+                DEBUG_PRINT_LOW("\n unmap the input buffer size=%d  address = %p",
+                        drv_ctx.ptr_inputbuffer[index].mmaped_size,
+                        drv_ctx.ptr_inputbuffer[index].bufferaddr);
+                munmap (drv_ctx.ptr_inputbuffer[index].bufferaddr,
+                        drv_ctx.ptr_inputbuffer[index].mmaped_size);
+            }
+            close (drv_ctx.ptr_inputbuffer[index].pmem_fd);
+            drv_ctx.ptr_inputbuffer[index].pmem_fd = -1;
+            if (m_desc_buffer_ptr && m_desc_buffer_ptr[index].buf_addr) {
+                free(m_desc_buffer_ptr[index].buf_addr);
+                m_desc_buffer_ptr[index].buf_addr = NULL;
+                m_desc_buffer_ptr[index].desc_data_size = 0;
+            }
+#ifdef USE_ION
+            free_ion_memory(&drv_ctx.ip_buf_ion_info[index]);
+#endif
+        }
+    }
+
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_vdec::free_output_buffer(OMX_BUFFERHEADERTYPE *bufferHdr)
 {
-  unsigned int index = 0;
+    unsigned int index = 0;
 
-  if (bufferHdr == NULL || m_out_mem_ptr == NULL)
-  {
-    return OMX_ErrorBadParameter;
-  }
+    if (bufferHdr == NULL || m_out_mem_ptr == NULL) {
+        return OMX_ErrorBadParameter;
+    }
 
-  index = bufferHdr - m_out_mem_ptr;
-  DEBUG_PRINT_LOW("\n Free ouput Buffer index = %d",index);
+    index = bufferHdr - m_out_mem_ptr;
+    DEBUG_PRINT_LOW("\n Free ouput Buffer index = %d",index);
 
-  if (index < drv_ctx.op_buf.actualcount
-      && drv_ctx.ptr_outputbuffer)
-  {
-    DEBUG_PRINT_LOW("\n Free ouput Buffer index = %d addr = %p", index,
-                    drv_ctx.ptr_outputbuffer[index].bufferaddr);
+    if (index < drv_ctx.op_buf.actualcount
+            && drv_ctx.ptr_outputbuffer) {
+        DEBUG_PRINT_LOW("\n Free ouput Buffer index = %d addr = %p", index,
+                drv_ctx.ptr_outputbuffer[index].bufferaddr);
 
-    struct vdec_setbuffer_cmd setbuffers;
-    setbuffers.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
-    memcpy (&setbuffers.buffer,&drv_ctx.ptr_outputbuffer[index],
-        sizeof (vdec_bufferpayload));
+        struct vdec_setbuffer_cmd setbuffers;
+        setbuffers.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
+        memcpy (&setbuffers.buffer,&drv_ctx.ptr_outputbuffer[index],
+                sizeof (vdec_bufferpayload));
 #ifdef _ANDROID_
-    if(m_enable_android_native_buffers) {
+        if (m_enable_android_native_buffers) {
             if (!secure_mode) {
-            if(drv_ctx.ptr_outputbuffer[index].pmem_fd > 0) {
-                munmap(drv_ctx.ptr_outputbuffer[index].bufferaddr,
-                        drv_ctx.ptr_outputbuffer[index].mmaped_size);
+                if (drv_ctx.ptr_outputbuffer[index].pmem_fd > 0) {
+                    munmap(drv_ctx.ptr_outputbuffer[index].bufferaddr,
+                            drv_ctx.ptr_outputbuffer[index].mmaped_size);
+                }
             }
-        }
-        drv_ctx.ptr_outputbuffer[index].pmem_fd = -1;
-    } else {
+            drv_ctx.ptr_outputbuffer[index].pmem_fd = -1;
+        } else {
 #endif
-        if (drv_ctx.ptr_outputbuffer[0].pmem_fd > 0 && !ouput_egl_buffers && !m_use_output_pmem)
-        {
-            if (!secure_mode) {
-                DEBUG_PRINT_LOW("\n unmap the output buffer fd = %d",
-                        drv_ctx.ptr_outputbuffer[0].pmem_fd);
-                DEBUG_PRINT_LOW("\n unmap the ouput buffer size=%d  address = %p",
-                        drv_ctx.ptr_outputbuffer[0].mmaped_size * drv_ctx.op_buf.actualcount,
-                        drv_ctx.ptr_outputbuffer[0].bufferaddr);
-                munmap (drv_ctx.ptr_outputbuffer[0].bufferaddr,
-                        drv_ctx.ptr_outputbuffer[0].mmaped_size * drv_ctx.op_buf.actualcount);
-            }
-            close (drv_ctx.ptr_outputbuffer[0].pmem_fd);
-            drv_ctx.ptr_outputbuffer[0].pmem_fd = -1;
+            if (drv_ctx.ptr_outputbuffer[0].pmem_fd > 0 && !ouput_egl_buffers && !m_use_output_pmem) {
+                if (!secure_mode) {
+                    DEBUG_PRINT_LOW("\n unmap the output buffer fd = %d",
+                            drv_ctx.ptr_outputbuffer[0].pmem_fd);
+                    DEBUG_PRINT_LOW("\n unmap the ouput buffer size=%d  address = %p",
+                            drv_ctx.ptr_outputbuffer[0].mmaped_size * drv_ctx.op_buf.actualcount,
+                            drv_ctx.ptr_outputbuffer[0].bufferaddr);
+                    munmap (drv_ctx.ptr_outputbuffer[0].bufferaddr,
+                            drv_ctx.ptr_outputbuffer[0].mmaped_size * drv_ctx.op_buf.actualcount);
+                }
+                close (drv_ctx.ptr_outputbuffer[0].pmem_fd);
+                drv_ctx.ptr_outputbuffer[0].pmem_fd = -1;
 #ifdef USE_ION
-            free_ion_memory(&drv_ctx.op_buf_ion_info[0]);
+                free_ion_memory(&drv_ctx.op_buf_ion_info[0]);
 #endif
-        }
+            }
 #ifdef _ANDROID_
-    }
+        }
 #endif
-    if (release_output_done()) {
-      free_extradata();
+        if (release_output_done()) {
+            free_extradata();
+        }
     }
-  }
 
-  return OMX_ErrorNone;
+    return OMX_ErrorNone;
 
 }
 
 OMX_ERRORTYPE omx_vdec::allocate_input_heap_buffer(OMX_HANDLETYPE       hComp,
-                                         OMX_BUFFERHEADERTYPE **bufferHdr,
-                                         OMX_U32              port,
-                                         OMX_PTR              appData,
-                                         OMX_U32              bytes)
+        OMX_BUFFERHEADERTYPE **bufferHdr,
+        OMX_U32              port,
+        OMX_PTR              appData,
+        OMX_U32              bytes)
 {
-  OMX_BUFFERHEADERTYPE *input = NULL;
-  unsigned char *buf_addr = NULL;
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  unsigned   i = 0;
+    OMX_BUFFERHEADERTYPE *input = NULL;
+    unsigned char *buf_addr = NULL;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    unsigned   i = 0;
 
-  /* Sanity Check*/
-  if (bufferHdr == NULL)
-  {
-    return OMX_ErrorBadParameter;
-  }
-
-  if (m_inp_heap_ptr == NULL)
-  {
-    m_inp_heap_ptr = (OMX_BUFFERHEADERTYPE*) \
-                     calloc( (sizeof(OMX_BUFFERHEADERTYPE)),
-                     drv_ctx.ip_buf.actualcount);
-    m_phdr_pmem_ptr = (OMX_BUFFERHEADERTYPE**) \
-                     calloc( (sizeof(OMX_BUFFERHEADERTYPE*)),
-                     drv_ctx.ip_buf.actualcount);
-
-    if (m_inp_heap_ptr == NULL)
-    {
-      DEBUG_PRINT_ERROR("\n m_inp_heap_ptr Allocation failed ");
-      return OMX_ErrorInsufficientResources;
-    }
-  }
-
-  /*Find a Free index*/
-  for(i=0; i< drv_ctx.ip_buf.actualcount; i++)
-  {
-    if(BITMASK_ABSENT(&m_heap_inp_bm_count,i))
-    {
-      DEBUG_PRINT_LOW("\n Free Input Buffer Index %d",i);
-      break;
-    }
-  }
-
-  if (i < drv_ctx.ip_buf.actualcount)
-  {
-    buf_addr = (unsigned char *)malloc (drv_ctx.ip_buf.buffer_size);
-
-    if (buf_addr == NULL)
-    {
-      return OMX_ErrorInsufficientResources;
+    /* Sanity Check*/
+    if (bufferHdr == NULL) {
+        return OMX_ErrorBadParameter;
     }
 
-    *bufferHdr = (m_inp_heap_ptr + i);
-    input = *bufferHdr;
-    BITMASK_SET(&m_heap_inp_bm_count,i);
+    if (m_inp_heap_ptr == NULL) {
+        m_inp_heap_ptr = (OMX_BUFFERHEADERTYPE*) \
+                 calloc( (sizeof(OMX_BUFFERHEADERTYPE)),
+                         drv_ctx.ip_buf.actualcount);
+        m_phdr_pmem_ptr = (OMX_BUFFERHEADERTYPE**) \
+                  calloc( (sizeof(OMX_BUFFERHEADERTYPE*)),
+                          drv_ctx.ip_buf.actualcount);
 
-    input->pBuffer           = (OMX_U8 *)buf_addr;
-    input->nSize             = sizeof(OMX_BUFFERHEADERTYPE);
-    input->nVersion.nVersion = OMX_SPEC_VERSION;
-    input->nAllocLen         = drv_ctx.ip_buf.buffer_size;
-    input->pAppPrivate       = appData;
-    input->nInputPortIndex   = OMX_CORE_INPUT_PORT_INDEX;
-    DEBUG_PRINT_LOW("\n Address of Heap Buffer %p",*bufferHdr );
-    eRet = allocate_input_buffer(hComp,&m_phdr_pmem_ptr [i],port,appData,bytes);
-    DEBUG_PRINT_LOW("\n Address of Pmem Buffer %p",m_phdr_pmem_ptr[i]);
-    /*Add the Buffers to freeq*/
-    if (!m_input_free_q.insert_entry((unsigned)m_phdr_pmem_ptr[i],
-                (unsigned)NULL, (unsigned)NULL))
-    {
-      DEBUG_PRINT_ERROR("\nERROR:Free_q is full");
-      return OMX_ErrorInsufficientResources;
+        if (m_inp_heap_ptr == NULL) {
+            DEBUG_PRINT_ERROR("\n m_inp_heap_ptr Allocation failed ");
+            return OMX_ErrorInsufficientResources;
+        }
     }
-  }
-  else
-  {
-    return OMX_ErrorBadParameter;
-  }
 
-  return eRet;
+    /*Find a Free index*/
+    for (i=0; i< drv_ctx.ip_buf.actualcount; i++) {
+        if (BITMASK_ABSENT(&m_heap_inp_bm_count,i)) {
+            DEBUG_PRINT_LOW("\n Free Input Buffer Index %d",i);
+            break;
+        }
+    }
+
+    if (i < drv_ctx.ip_buf.actualcount) {
+        buf_addr = (unsigned char *)malloc (drv_ctx.ip_buf.buffer_size);
+
+        if (buf_addr == NULL) {
+            return OMX_ErrorInsufficientResources;
+        }
+
+        *bufferHdr = (m_inp_heap_ptr + i);
+        input = *bufferHdr;
+        BITMASK_SET(&m_heap_inp_bm_count,i);
+
+        input->pBuffer           = (OMX_U8 *)buf_addr;
+        input->nSize             = sizeof(OMX_BUFFERHEADERTYPE);
+        input->nVersion.nVersion = OMX_SPEC_VERSION;
+        input->nAllocLen         = drv_ctx.ip_buf.buffer_size;
+        input->pAppPrivate       = appData;
+        input->nInputPortIndex   = OMX_CORE_INPUT_PORT_INDEX;
+        DEBUG_PRINT_LOW("\n Address of Heap Buffer %p",*bufferHdr );
+        eRet = allocate_input_buffer(hComp,&m_phdr_pmem_ptr [i],port,appData,bytes);
+        DEBUG_PRINT_LOW("\n Address of Pmem Buffer %p",m_phdr_pmem_ptr[i]);
+        /*Add the Buffers to freeq*/
+        if (!m_input_free_q.insert_entry((unsigned)m_phdr_pmem_ptr[i],
+                    (unsigned)NULL, (unsigned)NULL)) {
+            DEBUG_PRINT_ERROR("\nERROR:Free_q is full");
+            return OMX_ErrorInsufficientResources;
+        }
+    } else {
+        return OMX_ErrorBadParameter;
+    }
+
+    return eRet;
 
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::AllocateInputBuffer
+   FUNCTION
+   omx_vdec::AllocateInputBuffer
 
-DESCRIPTION
-  Helper function for allocate buffer in the input pin
+   DESCRIPTION
+   Helper function for allocate buffer in the input pin
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::allocate_input_buffer(
-                         OMX_IN OMX_HANDLETYPE            hComp,
-                         OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                         OMX_IN OMX_U32                   port,
-                         OMX_IN OMX_PTR                   appData,
-                         OMX_IN OMX_U32                   bytes)
+        OMX_IN OMX_HANDLETYPE            hComp,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                   port,
+        OMX_IN OMX_PTR                   appData,
+        OMX_IN OMX_U32                   bytes)
 {
 
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  struct vdec_setbuffer_cmd setbuffers;
-  OMX_BUFFERHEADERTYPE *input = NULL;
-  unsigned   i = 0;
-  unsigned char *buf_addr = NULL;
-  int pmem_fd = -1;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    struct vdec_setbuffer_cmd setbuffers;
+    OMX_BUFFERHEADERTYPE *input = NULL;
+    unsigned   i = 0;
+    unsigned char *buf_addr = NULL;
+    int pmem_fd = -1;
 
-  if(bytes != drv_ctx.ip_buf.buffer_size)
-  {
-    DEBUG_PRINT_LOW("\n Requested Size is wrong %lu epected is %d",
-      bytes, drv_ctx.ip_buf.buffer_size);
-    return OMX_ErrorBadParameter;
-  }
-
-  if(!m_inp_mem_ptr)
-  {
-    DEBUG_PRINT_HIGH("\n Allocate i/p buffer Header: Cnt(%d) Sz(%d)",
-      drv_ctx.ip_buf.actualcount,
-      drv_ctx.ip_buf.buffer_size);
-
-    m_inp_mem_ptr = (OMX_BUFFERHEADERTYPE*) \
-    calloc( (sizeof(OMX_BUFFERHEADERTYPE)), drv_ctx.ip_buf.actualcount);
-
-    if (m_inp_mem_ptr == NULL)
-    {
-      return OMX_ErrorInsufficientResources;
+    if (bytes != drv_ctx.ip_buf.buffer_size) {
+        DEBUG_PRINT_LOW("\n Requested Size is wrong %lu epected is %d",
+                bytes, drv_ctx.ip_buf.buffer_size);
+        return OMX_ErrorBadParameter;
     }
 
-    drv_ctx.ptr_inputbuffer = (struct vdec_bufferpayload *) \
-    calloc ((sizeof (struct vdec_bufferpayload)),drv_ctx.ip_buf.actualcount);
+    if (!m_inp_mem_ptr) {
+        DEBUG_PRINT_HIGH("\n Allocate i/p buffer Header: Cnt(%d) Sz(%d)",
+                drv_ctx.ip_buf.actualcount,
+                drv_ctx.ip_buf.buffer_size);
 
-    if (drv_ctx.ptr_inputbuffer == NULL)
-    {
-      return OMX_ErrorInsufficientResources;
-    }
+        m_inp_mem_ptr = (OMX_BUFFERHEADERTYPE*) \
+                calloc( (sizeof(OMX_BUFFERHEADERTYPE)), drv_ctx.ip_buf.actualcount);
+
+        if (m_inp_mem_ptr == NULL) {
+            return OMX_ErrorInsufficientResources;
+        }
+
+        drv_ctx.ptr_inputbuffer = (struct vdec_bufferpayload *) \
+                      calloc ((sizeof (struct vdec_bufferpayload)),drv_ctx.ip_buf.actualcount);
+
+        if (drv_ctx.ptr_inputbuffer == NULL) {
+            return OMX_ErrorInsufficientResources;
+        }
 #ifdef USE_ION
-    drv_ctx.ip_buf_ion_info = (struct vdec_ion *) \
-    calloc ((sizeof (struct vdec_ion)),drv_ctx.ip_buf.actualcount);
+        drv_ctx.ip_buf_ion_info = (struct vdec_ion *) \
+                      calloc ((sizeof (struct vdec_ion)),drv_ctx.ip_buf.actualcount);
 
-    if (drv_ctx.ip_buf_ion_info == NULL)
-    {
-      return OMX_ErrorInsufficientResources;
-    }
+        if (drv_ctx.ip_buf_ion_info == NULL) {
+            return OMX_ErrorInsufficientResources;
+        }
 #endif
 
-    for (i=0; i < drv_ctx.ip_buf.actualcount; i++)
-    {
-      drv_ctx.ptr_inputbuffer [i].pmem_fd = -1;
+        for (i=0; i < drv_ctx.ip_buf.actualcount; i++) {
+            drv_ctx.ptr_inputbuffer [i].pmem_fd = -1;
 #ifdef USE_ION
-      drv_ctx.ip_buf_ion_info[i].ion_device_fd = -1;
+            drv_ctx.ip_buf_ion_info[i].ion_device_fd = -1;
 #endif
-    }
-  }
-
-  for(i=0; i< drv_ctx.ip_buf.actualcount; i++)
-  {
-    if(BITMASK_ABSENT(&m_inp_bm_count,i))
-    {
-      DEBUG_PRINT_LOW("\n Free Input Buffer Index %d",i);
-      break;
-    }
-  }
-
-  if(i < drv_ctx.ip_buf.actualcount)
-  {
-    struct v4l2_buffer buf;
-    struct v4l2_plane plane;
-    int rc;
-    DEBUG_PRINT_LOW("\n Allocate input Buffer");
-#ifdef USE_ION
- drv_ctx.ip_buf_ion_info[i].ion_device_fd = alloc_map_ion_memory(
-                    drv_ctx.ip_buf.buffer_size,drv_ctx.op_buf.alignment,
-                    &drv_ctx.ip_buf_ion_info[i].ion_alloc_data,
-		    &drv_ctx.ip_buf_ion_info[i].fd_ion_data, secure_mode ? ION_SECURE : 0);
-    if(drv_ctx.ip_buf_ion_info[i].ion_device_fd < 0) {
-        return OMX_ErrorInsufficientResources;
-     }
-    pmem_fd = drv_ctx.ip_buf_ion_info[i].fd_ion_data.fd;
-#else
-    pmem_fd = open (MEM_DEVICE,O_RDWR);
-
-    if (pmem_fd < 0)
-    {
-      DEBUG_PRINT_ERROR("\n open failed for pmem/adsp for input buffer");
-      return OMX_ErrorInsufficientResources;
-    }
-
-    if (pmem_fd == 0)
-    {
-      pmem_fd = open (MEM_DEVICE,O_RDWR);
-
-      if (pmem_fd < 0)
-      {
-        DEBUG_PRINT_ERROR("\n open failed for pmem/adsp for input buffer");
-        return OMX_ErrorInsufficientResources;
-      }
-    }
-
-    if(!align_pmem_buffers(pmem_fd, drv_ctx.ip_buf.buffer_size,
-      drv_ctx.ip_buf.alignment))
-    {
-      DEBUG_PRINT_ERROR("\n align_pmem_buffers() failed");
-      close(pmem_fd);
-      return OMX_ErrorInsufficientResources;
-    }
-#endif
-    if (!secure_mode) {
-        buf_addr = (unsigned char *)mmap(NULL,
-          drv_ctx.ip_buf.buffer_size,
-          PROT_READ|PROT_WRITE, MAP_SHARED, pmem_fd, 0);
-
-        if (buf_addr == MAP_FAILED)
-        {
-            close(pmem_fd);
-#ifdef USE_ION
-            free_ion_memory(&drv_ctx.ip_buf_ion_info[i]);
-#endif
-          DEBUG_PRINT_ERROR("\n Map Failed to allocate input buffer");
-          return OMX_ErrorInsufficientResources;
         }
     }
-    *bufferHdr = (m_inp_mem_ptr + i);
-    if (secure_mode)
-        drv_ctx.ptr_inputbuffer [i].bufferaddr = *bufferHdr;
-    else
-        drv_ctx.ptr_inputbuffer [i].bufferaddr = buf_addr;
-    drv_ctx.ptr_inputbuffer [i].pmem_fd = pmem_fd;
-    drv_ctx.ptr_inputbuffer [i].buffer_len = drv_ctx.ip_buf.buffer_size;
-    drv_ctx.ptr_inputbuffer [i].mmaped_size = drv_ctx.ip_buf.buffer_size;
-    drv_ctx.ptr_inputbuffer [i].offset = 0;
 
-
-    buf.index = i;
-    buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-    buf.memory = V4L2_MEMORY_USERPTR;
-    plane.bytesused = 0;
-    plane.length = drv_ctx.ptr_inputbuffer [i].mmaped_size;
-    plane.m.userptr = (unsigned long)drv_ctx.ptr_inputbuffer[i].bufferaddr;
-    plane.reserved[0] =drv_ctx.ptr_inputbuffer [i].pmem_fd;
-    plane.reserved[1] = 0;
-    plane.data_offset = drv_ctx.ptr_inputbuffer[i].offset;
-    buf.m.planes = &plane;
-    buf.length = 1;
-
-     DEBUG_PRINT_LOW("\n Set the input Buffer Idx: %d Addr: %p", i,
-             drv_ctx.ptr_inputbuffer[i].bufferaddr);
-
-     rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_PREPARE_BUF, &buf);
-    
-     if (rc) {
-       DEBUG_PRINT_ERROR("Failed to prepare bufs\n");
-	   /*TODO: How to handle this case */	
-       return OMX_ErrorInsufficientResources;
-     }
-
-    input = *bufferHdr;
-    BITMASK_SET(&m_inp_bm_count,i);
-    DEBUG_PRINT_LOW("\n Buffer address %p of pmem",*bufferHdr);
-    if (secure_mode)
-         input->pBuffer = (OMX_U8 *)drv_ctx.ptr_inputbuffer [i].pmem_fd;
-    else
-         input->pBuffer           = (OMX_U8 *)buf_addr;
-    input->nSize             = sizeof(OMX_BUFFERHEADERTYPE);
-    input->nVersion.nVersion = OMX_SPEC_VERSION;
-    input->nAllocLen         = drv_ctx.ip_buf.buffer_size;
-    input->pAppPrivate       = appData;
-    input->nInputPortIndex   = OMX_CORE_INPUT_PORT_INDEX;
-    input->pInputPortPrivate = (void *)&drv_ctx.ptr_inputbuffer [i];
-
-    if (drv_ctx.disable_dmx)
-    {
-      eRet = allocate_desc_buffer(i);
+    for (i=0; i< drv_ctx.ip_buf.actualcount; i++) {
+        if (BITMASK_ABSENT(&m_inp_bm_count,i)) {
+            DEBUG_PRINT_LOW("\n Free Input Buffer Index %d",i);
+            break;
+        }
     }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("\nERROR:Input Buffer Index not found");
-    eRet = OMX_ErrorInsufficientResources;
-  }
-  return eRet;
+
+    if (i < drv_ctx.ip_buf.actualcount) {
+        struct v4l2_buffer buf;
+        struct v4l2_plane plane;
+        int rc;
+        DEBUG_PRINT_LOW("\n Allocate input Buffer");
+#ifdef USE_ION
+        drv_ctx.ip_buf_ion_info[i].ion_device_fd = alloc_map_ion_memory(
+                drv_ctx.ip_buf.buffer_size,drv_ctx.op_buf.alignment,
+                &drv_ctx.ip_buf_ion_info[i].ion_alloc_data,
+                &drv_ctx.ip_buf_ion_info[i].fd_ion_data, secure_mode ? ION_SECURE : 0);
+        if (drv_ctx.ip_buf_ion_info[i].ion_device_fd < 0) {
+            return OMX_ErrorInsufficientResources;
+        }
+        pmem_fd = drv_ctx.ip_buf_ion_info[i].fd_ion_data.fd;
+#else
+        pmem_fd = open (MEM_DEVICE,O_RDWR);
+
+        if (pmem_fd < 0) {
+            DEBUG_PRINT_ERROR("\n open failed for pmem/adsp for input buffer");
+            return OMX_ErrorInsufficientResources;
+        }
+
+        if (pmem_fd == 0) {
+            pmem_fd = open (MEM_DEVICE,O_RDWR);
+
+            if (pmem_fd < 0) {
+                DEBUG_PRINT_ERROR("\n open failed for pmem/adsp for input buffer");
+                return OMX_ErrorInsufficientResources;
+            }
+        }
+
+        if (!align_pmem_buffers(pmem_fd, drv_ctx.ip_buf.buffer_size,
+                    drv_ctx.ip_buf.alignment)) {
+            DEBUG_PRINT_ERROR("\n align_pmem_buffers() failed");
+            close(pmem_fd);
+            return OMX_ErrorInsufficientResources;
+        }
+#endif
+        if (!secure_mode) {
+            buf_addr = (unsigned char *)mmap(NULL,
+                    drv_ctx.ip_buf.buffer_size,
+                    PROT_READ|PROT_WRITE, MAP_SHARED, pmem_fd, 0);
+
+            if (buf_addr == MAP_FAILED) {
+                close(pmem_fd);
+#ifdef USE_ION
+                free_ion_memory(&drv_ctx.ip_buf_ion_info[i]);
+#endif
+                DEBUG_PRINT_ERROR("\n Map Failed to allocate input buffer");
+                return OMX_ErrorInsufficientResources;
+            }
+        }
+        *bufferHdr = (m_inp_mem_ptr + i);
+        if (secure_mode)
+            drv_ctx.ptr_inputbuffer [i].bufferaddr = *bufferHdr;
+        else
+            drv_ctx.ptr_inputbuffer [i].bufferaddr = buf_addr;
+        drv_ctx.ptr_inputbuffer [i].pmem_fd = pmem_fd;
+        drv_ctx.ptr_inputbuffer [i].buffer_len = drv_ctx.ip_buf.buffer_size;
+        drv_ctx.ptr_inputbuffer [i].mmaped_size = drv_ctx.ip_buf.buffer_size;
+        drv_ctx.ptr_inputbuffer [i].offset = 0;
+
+
+        buf.index = i;
+        buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+        buf.memory = V4L2_MEMORY_USERPTR;
+        plane.bytesused = 0;
+        plane.length = drv_ctx.ptr_inputbuffer [i].mmaped_size;
+        plane.m.userptr = (unsigned long)drv_ctx.ptr_inputbuffer[i].bufferaddr;
+        plane.reserved[0] =drv_ctx.ptr_inputbuffer [i].pmem_fd;
+        plane.reserved[1] = 0;
+        plane.data_offset = drv_ctx.ptr_inputbuffer[i].offset;
+        buf.m.planes = &plane;
+        buf.length = 1;
+
+        DEBUG_PRINT_LOW("\n Set the input Buffer Idx: %d Addr: %p", i,
+                drv_ctx.ptr_inputbuffer[i].bufferaddr);
+
+        rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_PREPARE_BUF, &buf);
+
+        if (rc) {
+            DEBUG_PRINT_ERROR("Failed to prepare bufs\n");
+            /*TODO: How to handle this case */
+            return OMX_ErrorInsufficientResources;
+        }
+
+        input = *bufferHdr;
+        BITMASK_SET(&m_inp_bm_count,i);
+        DEBUG_PRINT_LOW("\n Buffer address %p of pmem",*bufferHdr);
+        if (secure_mode)
+            input->pBuffer = (OMX_U8 *)drv_ctx.ptr_inputbuffer [i].pmem_fd;
+        else
+            input->pBuffer           = (OMX_U8 *)buf_addr;
+        input->nSize             = sizeof(OMX_BUFFERHEADERTYPE);
+        input->nVersion.nVersion = OMX_SPEC_VERSION;
+        input->nAllocLen         = drv_ctx.ip_buf.buffer_size;
+        input->pAppPrivate       = appData;
+        input->nInputPortIndex   = OMX_CORE_INPUT_PORT_INDEX;
+        input->pInputPortPrivate = (void *)&drv_ctx.ptr_inputbuffer [i];
+
+        if (drv_ctx.disable_dmx) {
+            eRet = allocate_desc_buffer(i);
+        }
+    } else {
+        DEBUG_PRINT_ERROR("\nERROR:Input Buffer Index not found");
+        eRet = OMX_ErrorInsufficientResources;
+    }
+    return eRet;
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::AllocateOutputBuffer
+   FUNCTION
+   omx_vdec::AllocateOutputBuffer
 
-DESCRIPTION
-  Helper fn for AllocateBuffer in the output pin
+   DESCRIPTION
+   Helper fn for AllocateBuffer in the output pin
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if everything went well.
+   RETURN VALUE
+   OMX Error None if everything went well.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::allocate_output_buffer(
-                         OMX_IN OMX_HANDLETYPE            hComp,
-                         OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                         OMX_IN OMX_U32                   port,
-                         OMX_IN OMX_PTR                   appData,
-                         OMX_IN OMX_U32                   bytes)
+        OMX_IN OMX_HANDLETYPE            hComp,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                   port,
+        OMX_IN OMX_PTR                   appData,
+        OMX_IN OMX_U32                   bytes)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  OMX_BUFFERHEADERTYPE       *bufHdr= NULL; // buffer header
-  unsigned                         i= 0; // Temporary counter
-  struct vdec_setbuffer_cmd setbuffers;
-  int extra_idx = 0;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_BUFFERHEADERTYPE       *bufHdr= NULL; // buffer header
+    unsigned                         i= 0; // Temporary counter
+    struct vdec_setbuffer_cmd setbuffers;
+    int extra_idx = 0;
 #ifdef USE_ION
-  int ion_device_fd =-1;
-  struct ion_allocation_data ion_alloc_data;
-  struct ion_fd_data fd_ion_data;
+    int ion_device_fd =-1;
+    struct ion_allocation_data ion_alloc_data;
+    struct ion_fd_data fd_ion_data;
 #endif
-  if(!m_out_mem_ptr)
-  {
-    DEBUG_PRINT_HIGH("\n Allocate o/p buffer Header: Cnt(%d) Sz(%d)",
-      drv_ctx.op_buf.actualcount,
-      drv_ctx.op_buf.buffer_size);
-    int nBufHdrSize        = 0;
-    int nPlatformEntrySize = 0;
-    int nPlatformListSize  = 0;
-    int nPMEMInfoSize = 0;
-    int pmem_fd = -1;
-    unsigned char *pmem_baseaddress = NULL;
+    if (!m_out_mem_ptr) {
+        DEBUG_PRINT_HIGH("\n Allocate o/p buffer Header: Cnt(%d) Sz(%d)",
+                drv_ctx.op_buf.actualcount,
+                drv_ctx.op_buf.buffer_size);
+        int nBufHdrSize        = 0;
+        int nPlatformEntrySize = 0;
+        int nPlatformListSize  = 0;
+        int nPMEMInfoSize = 0;
+        int pmem_fd = -1;
+        unsigned char *pmem_baseaddress = NULL;
 
-    OMX_QCOM_PLATFORM_PRIVATE_LIST      *pPlatformList;
-    OMX_QCOM_PLATFORM_PRIVATE_ENTRY     *pPlatformEntry;
-    OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pPMEMInfo;
+        OMX_QCOM_PLATFORM_PRIVATE_LIST      *pPlatformList;
+        OMX_QCOM_PLATFORM_PRIVATE_ENTRY     *pPlatformEntry;
+        OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pPMEMInfo;
 
-    DEBUG_PRINT_LOW("Allocating First Output Buffer(%d)\n",
-      drv_ctx.op_buf.actualcount);
-    nBufHdrSize        = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_BUFFERHEADERTYPE);
+        DEBUG_PRINT_LOW("Allocating First Output Buffer(%d)\n",
+                drv_ctx.op_buf.actualcount);
+        nBufHdrSize        = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_BUFFERHEADERTYPE);
 
-    nPMEMInfoSize      = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO);
-    nPlatformListSize  = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_QCOM_PLATFORM_PRIVATE_LIST);
-    nPlatformEntrySize = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_QCOM_PLATFORM_PRIVATE_ENTRY);
+        nPMEMInfoSize      = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO);
+        nPlatformListSize  = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_QCOM_PLATFORM_PRIVATE_LIST);
+        nPlatformEntrySize = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_QCOM_PLATFORM_PRIVATE_ENTRY);
 
-    DEBUG_PRINT_LOW("TotalBufHdr %d BufHdrSize %d PMEM %d PL %d\n",nBufHdrSize,
-                         sizeof(OMX_BUFFERHEADERTYPE),
-                         nPMEMInfoSize,
-                         nPlatformListSize);
-    DEBUG_PRINT_LOW("PE %d OutputBuffer Count %d \n",nPlatformEntrySize,
-                         drv_ctx.op_buf.actualcount);
+        DEBUG_PRINT_LOW("TotalBufHdr %d BufHdrSize %d PMEM %d PL %d\n",nBufHdrSize,
+                sizeof(OMX_BUFFERHEADERTYPE),
+                nPMEMInfoSize,
+                nPlatformListSize);
+        DEBUG_PRINT_LOW("PE %d OutputBuffer Count %d \n",nPlatformEntrySize,
+                drv_ctx.op_buf.actualcount);
 #ifdef USE_ION
- ion_device_fd = alloc_map_ion_memory(
-                    drv_ctx.op_buf.buffer_size * drv_ctx.op_buf.actualcount,
-                    drv_ctx.op_buf.alignment,
-                    &ion_alloc_data, &fd_ion_data, secure_mode ? ION_SECURE : 0);
-    if (ion_device_fd < 0) {
-        return OMX_ErrorInsufficientResources;
-    }
-    pmem_fd = fd_ion_data.fd;
+        ion_device_fd = alloc_map_ion_memory(
+                drv_ctx.op_buf.buffer_size * drv_ctx.op_buf.actualcount,
+                drv_ctx.op_buf.alignment,
+                &ion_alloc_data, &fd_ion_data, secure_mode ? ION_SECURE : 0);
+        if (ion_device_fd < 0) {
+            return OMX_ErrorInsufficientResources;
+        }
+        pmem_fd = fd_ion_data.fd;
 #else
-    pmem_fd = open (MEM_DEVICE,O_RDWR);
+        pmem_fd = open (MEM_DEVICE,O_RDWR);
 
-    if (pmem_fd < 0)
-    {
-      DEBUG_PRINT_ERROR("\nERROR:pmem fd for output buffer %d",
-        drv_ctx.op_buf.buffer_size);
-      return OMX_ErrorInsufficientResources;
-    }
+        if (pmem_fd < 0) {
+            DEBUG_PRINT_ERROR("\nERROR:pmem fd for output buffer %d",
+                    drv_ctx.op_buf.buffer_size);
+            return OMX_ErrorInsufficientResources;
+        }
 
-    if(pmem_fd == 0)
-    {
-      pmem_fd = open (MEM_DEVICE,O_RDWR);
+        if (pmem_fd == 0) {
+            pmem_fd = open (MEM_DEVICE,O_RDWR);
 
-      if (pmem_fd < 0)
-      {
-        DEBUG_PRINT_ERROR("\nERROR:pmem fd for output buffer %d",
-          drv_ctx.op_buf.buffer_size);
-        return OMX_ErrorInsufficientResources;
-      }
-    }
+            if (pmem_fd < 0) {
+                DEBUG_PRINT_ERROR("\nERROR:pmem fd for output buffer %d",
+                        drv_ctx.op_buf.buffer_size);
+                return OMX_ErrorInsufficientResources;
+            }
+        }
 
-    if(!align_pmem_buffers(pmem_fd, drv_ctx.op_buf.buffer_size *
-      drv_ctx.op_buf.actualcount,
-      drv_ctx.op_buf.alignment))
-    {
-      DEBUG_PRINT_ERROR("\n align_pmem_buffers() failed");
-      close(pmem_fd);
-      return OMX_ErrorInsufficientResources;
-    }
+        if (!align_pmem_buffers(pmem_fd, drv_ctx.op_buf.buffer_size *
+                    drv_ctx.op_buf.actualcount,
+                    drv_ctx.op_buf.alignment)) {
+            DEBUG_PRINT_ERROR("\n align_pmem_buffers() failed");
+            close(pmem_fd);
+            return OMX_ErrorInsufficientResources;
+        }
 #endif
-   if (!secure_mode) {
-        pmem_baseaddress = (unsigned char *)mmap(NULL,
-                           (drv_ctx.op_buf.buffer_size *
-                            drv_ctx.op_buf.actualcount),
-                            PROT_READ|PROT_WRITE,MAP_SHARED,pmem_fd,0);
-        if (pmem_baseaddress == MAP_FAILED)
-        {
-          DEBUG_PRINT_ERROR("\n MMAP failed for Size %d",
-          drv_ctx.op_buf.buffer_size);
-          close(pmem_fd);
+        if (!secure_mode) {
+            pmem_baseaddress = (unsigned char *)mmap(NULL,
+                    (drv_ctx.op_buf.buffer_size *
+                     drv_ctx.op_buf.actualcount),
+                    PROT_READ|PROT_WRITE,MAP_SHARED,pmem_fd,0);
+            if (pmem_baseaddress == MAP_FAILED) {
+                DEBUG_PRINT_ERROR("\n MMAP failed for Size %d",
+                        drv_ctx.op_buf.buffer_size);
+                close(pmem_fd);
 #ifdef USE_ION
-          free_ion_memory(&drv_ctx.op_buf_ion_info[i]);
+                free_ion_memory(&drv_ctx.op_buf_ion_info[i]);
 #endif
-          return OMX_ErrorInsufficientResources;
+                return OMX_ErrorInsufficientResources;
+            }
+        }
+        m_out_mem_ptr = (OMX_BUFFERHEADERTYPE  *)calloc(nBufHdrSize,1);
+        // Alloc mem for platform specific info
+        char *pPtr=NULL;
+        pPtr = (char*) calloc(nPlatformListSize + nPlatformEntrySize +
+                nPMEMInfoSize,1);
+        drv_ctx.ptr_outputbuffer = (struct vdec_bufferpayload *)\
+                       calloc (sizeof(struct vdec_bufferpayload),
+                               drv_ctx.op_buf.actualcount);
+        drv_ctx.ptr_respbuffer = (struct vdec_output_frameinfo  *)\
+                     calloc (sizeof (struct vdec_output_frameinfo),
+                             drv_ctx.op_buf.actualcount);
+#ifdef USE_ION
+        drv_ctx.op_buf_ion_info = (struct vdec_ion *)\
+                      calloc (sizeof(struct vdec_ion),
+                              drv_ctx.op_buf.actualcount);
+#endif
+
+        if (m_out_mem_ptr && pPtr && drv_ctx.ptr_outputbuffer
+                && drv_ctx.ptr_respbuffer) {
+            drv_ctx.ptr_outputbuffer[0].mmaped_size =
+                (drv_ctx.op_buf.buffer_size *
+                 drv_ctx.op_buf.actualcount);
+            bufHdr          =  m_out_mem_ptr;
+            m_platform_list = (OMX_QCOM_PLATFORM_PRIVATE_LIST *)(pPtr);
+            m_platform_entry= (OMX_QCOM_PLATFORM_PRIVATE_ENTRY *)
+                (((char *) m_platform_list)  + nPlatformListSize);
+            m_pmem_info     = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
+                (((char *) m_platform_entry) + nPlatformEntrySize);
+            pPlatformList   = m_platform_list;
+            pPlatformEntry  = m_platform_entry;
+            pPMEMInfo       = m_pmem_info;
+
+            DEBUG_PRINT_LOW("Memory Allocation Succeeded for OUT port%p\n",m_out_mem_ptr);
+
+            // Settting the entire storage nicely
+            DEBUG_PRINT_LOW("bHdr %p OutMem %p PE %p\n",bufHdr, m_out_mem_ptr,pPlatformEntry);
+            DEBUG_PRINT_LOW(" Pmem Info = %p \n",pPMEMInfo);
+            for (i=0; i < drv_ctx.op_buf.actualcount ; i++) {
+                bufHdr->nSize              = sizeof(OMX_BUFFERHEADERTYPE);
+                bufHdr->nVersion.nVersion  = OMX_SPEC_VERSION;
+                // Set the values when we determine the right HxW param
+                bufHdr->nAllocLen          = bytes;
+                bufHdr->nFilledLen         = 0;
+                bufHdr->pAppPrivate        = appData;
+                bufHdr->nOutputPortIndex   = OMX_CORE_OUTPUT_PORT_INDEX;
+                // Platform specific PMEM Information
+                // Initialize the Platform Entry
+                //DEBUG_PRINT_LOW("Initializing the Platform Entry for %d\n",i);
+                pPlatformEntry->type       = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
+                pPlatformEntry->entry      = pPMEMInfo;
+                // Initialize the Platform List
+                pPlatformList->nEntries    = 1;
+                pPlatformList->entryList   = pPlatformEntry;
+                // Keep pBuffer NULL till vdec is opened
+                bufHdr->pBuffer            = NULL;
+                bufHdr->nOffset            = 0;
+
+                pPMEMInfo->offset          =  drv_ctx.op_buf.buffer_size*i;
+                pPMEMInfo->pmem_fd = 0;
+                bufHdr->pPlatformPrivate = pPlatformList;
+
+                drv_ctx.ptr_outputbuffer[i].pmem_fd = pmem_fd;
+                m_pmem_info[i].pmem_fd = pmem_fd;
+#ifdef USE_ION
+                drv_ctx.op_buf_ion_info[i].ion_device_fd = ion_device_fd;
+                drv_ctx.op_buf_ion_info[i].ion_alloc_data = ion_alloc_data;
+                drv_ctx.op_buf_ion_info[i].fd_ion_data = fd_ion_data;
+#endif
+
+                /*Create a mapping between buffers*/
+                bufHdr->pOutputPortPrivate = &drv_ctx.ptr_respbuffer[i];
+                drv_ctx.ptr_respbuffer[i].client_data = (void *)\
+                                    &drv_ctx.ptr_outputbuffer[i];
+                drv_ctx.ptr_outputbuffer[i].offset = drv_ctx.op_buf.buffer_size*i;
+                drv_ctx.ptr_outputbuffer[i].bufferaddr =
+                    pmem_baseaddress + (drv_ctx.op_buf.buffer_size*i);
+
+                DEBUG_PRINT_LOW("\n pmem_fd = %d offset = %d address = %p",
+                        pmem_fd, drv_ctx.ptr_outputbuffer[i].offset,
+                        drv_ctx.ptr_outputbuffer[i].bufferaddr);
+                // Move the buffer and buffer header pointers
+                bufHdr++;
+                pPMEMInfo++;
+                pPlatformEntry++;
+                pPlatformList++;
+            }
+        } else {
+            DEBUG_PRINT_ERROR("Output buf mem alloc failed[0x%p][0x%p]\n",\
+                    m_out_mem_ptr, pPtr);
+            if (m_out_mem_ptr) {
+                free(m_out_mem_ptr);
+                m_out_mem_ptr = NULL;
+            }
+            if (pPtr) {
+                free(pPtr);
+                pPtr = NULL;
+            }
+            if (drv_ctx.ptr_outputbuffer) {
+                free(drv_ctx.ptr_outputbuffer);
+                drv_ctx.ptr_outputbuffer = NULL;
+            }
+            if (drv_ctx.ptr_respbuffer) {
+                free(drv_ctx.ptr_respbuffer);
+                drv_ctx.ptr_respbuffer = NULL;
+            }
+#ifdef USE_ION
+            if (drv_ctx.op_buf_ion_info) {
+                DEBUG_PRINT_LOW("\n Free o/p ion context");
+                free(drv_ctx.op_buf_ion_info);
+                drv_ctx.op_buf_ion_info = NULL;
+            }
+#endif
+            eRet =  OMX_ErrorInsufficientResources;
+        }
+        if (eRet == OMX_ErrorNone)
+            eRet = allocate_extradata();
+    }
+
+    for (i=0; i< drv_ctx.op_buf.actualcount; i++) {
+        if (BITMASK_ABSENT(&m_out_bm_count,i)) {
+            DEBUG_PRINT_LOW("\n Found a Free Output Buffer %d",i);
+            break;
         }
     }
-    m_out_mem_ptr = (OMX_BUFFERHEADERTYPE  *)calloc(nBufHdrSize,1);
-    // Alloc mem for platform specific info
-    char *pPtr=NULL;
-    pPtr = (char*) calloc(nPlatformListSize + nPlatformEntrySize +
-                                     nPMEMInfoSize,1);
-    drv_ctx.ptr_outputbuffer = (struct vdec_bufferpayload *)\
-      calloc (sizeof(struct vdec_bufferpayload),
-      drv_ctx.op_buf.actualcount);
-    drv_ctx.ptr_respbuffer = (struct vdec_output_frameinfo  *)\
-      calloc (sizeof (struct vdec_output_frameinfo),
-      drv_ctx.op_buf.actualcount);
+
+    if (eRet == OMX_ErrorNone) {
+        if (i < drv_ctx.op_buf.actualcount) {
+            struct v4l2_buffer buf;
+            struct v4l2_plane plane[VIDEO_MAX_PLANES];
+            int rc;
+            m_pmem_info[i].offset = drv_ctx.ptr_outputbuffer[i].offset;
+
+            drv_ctx.ptr_outputbuffer[i].buffer_len =
+                drv_ctx.op_buf.buffer_size;
+
+            *bufferHdr = (m_out_mem_ptr + i );
+            if (secure_mode) {
+                drv_ctx.ptr_outputbuffer[i].bufferaddr = *bufferHdr;
+            }
+            drv_ctx.ptr_outputbuffer[i].mmaped_size = drv_ctx.op_buf.buffer_size;
+
+            buf.index = i;
+            buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+            buf.memory = V4L2_MEMORY_USERPTR;
+            plane[0].length = drv_ctx.op_buf.buffer_size;
+            plane[0].m.userptr = (unsigned long)drv_ctx.ptr_outputbuffer[i].bufferaddr -
+                (unsigned long)drv_ctx.ptr_outputbuffer[i].offset;
 #ifdef USE_ION
-    drv_ctx.op_buf_ion_info = (struct vdec_ion *)\
-      calloc (sizeof(struct vdec_ion),
-      drv_ctx.op_buf.actualcount);
+            plane[0].reserved[0] = drv_ctx.op_buf_ion_info[i].fd_ion_data.fd;
 #endif
-
-    if(m_out_mem_ptr && pPtr && drv_ctx.ptr_outputbuffer
-       && drv_ctx.ptr_respbuffer)
-    {
-      drv_ctx.ptr_outputbuffer[0].mmaped_size =
-        (drv_ctx.op_buf.buffer_size *
-         drv_ctx.op_buf.actualcount);
-      bufHdr          =  m_out_mem_ptr;
-      m_platform_list = (OMX_QCOM_PLATFORM_PRIVATE_LIST *)(pPtr);
-      m_platform_entry= (OMX_QCOM_PLATFORM_PRIVATE_ENTRY *)
-                        (((char *) m_platform_list)  + nPlatformListSize);
-      m_pmem_info     = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
-                        (((char *) m_platform_entry) + nPlatformEntrySize);
-      pPlatformList   = m_platform_list;
-      pPlatformEntry  = m_platform_entry;
-      pPMEMInfo       = m_pmem_info;
-
-      DEBUG_PRINT_LOW("Memory Allocation Succeeded for OUT port%p\n",m_out_mem_ptr);
-
-      // Settting the entire storage nicely
-      DEBUG_PRINT_LOW("bHdr %p OutMem %p PE %p\n",bufHdr, m_out_mem_ptr,pPlatformEntry);
-      DEBUG_PRINT_LOW(" Pmem Info = %p \n",pPMEMInfo);
-      for(i=0; i < drv_ctx.op_buf.actualcount ; i++)
-      {
-        bufHdr->nSize              = sizeof(OMX_BUFFERHEADERTYPE);
-        bufHdr->nVersion.nVersion  = OMX_SPEC_VERSION;
-        // Set the values when we determine the right HxW param
-        bufHdr->nAllocLen          = bytes;
-        bufHdr->nFilledLen         = 0;
-        bufHdr->pAppPrivate        = appData;
-        bufHdr->nOutputPortIndex   = OMX_CORE_OUTPUT_PORT_INDEX;
-        // Platform specific PMEM Information
-        // Initialize the Platform Entry
-        //DEBUG_PRINT_LOW("Initializing the Platform Entry for %d\n",i);
-        pPlatformEntry->type       = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
-        pPlatformEntry->entry      = pPMEMInfo;
-        // Initialize the Platform List
-        pPlatformList->nEntries    = 1;
-        pPlatformList->entryList   = pPlatformEntry;
-        // Keep pBuffer NULL till vdec is opened
-        bufHdr->pBuffer            = NULL;
-        bufHdr->nOffset            = 0;
-
-        pPMEMInfo->offset          =  drv_ctx.op_buf.buffer_size*i;
-        pPMEMInfo->pmem_fd = 0;
-        bufHdr->pPlatformPrivate = pPlatformList;
-
-        drv_ctx.ptr_outputbuffer[i].pmem_fd = pmem_fd;
-        m_pmem_info[i].pmem_fd = pmem_fd;
+            plane[0].reserved[1] = drv_ctx.ptr_outputbuffer[i].offset;
+            plane[0].data_offset = 0;
+            extra_idx = EXTRADATA_IDX(drv_ctx.num_planes);
+            if (extra_idx && (extra_idx < VIDEO_MAX_PLANES)) {
+                plane[extra_idx].length = drv_ctx.extradata_info.buffer_size;
+                plane[extra_idx].m.userptr = (long unsigned int) (drv_ctx.extradata_info.uaddr + i * drv_ctx.extradata_info.buffer_size);
 #ifdef USE_ION
-        drv_ctx.op_buf_ion_info[i].ion_device_fd = ion_device_fd;
-        drv_ctx.op_buf_ion_info[i].ion_alloc_data = ion_alloc_data;
-        drv_ctx.op_buf_ion_info[i].fd_ion_data = fd_ion_data;
+                plane[extra_idx].reserved[0] = drv_ctx.extradata_info.ion.fd_ion_data.fd;
 #endif
+                plane[extra_idx].reserved[1] = i * drv_ctx.extradata_info.buffer_size;
+                plane[extra_idx].data_offset = 0;
+            } else if (extra_idx >= VIDEO_MAX_PLANES) {
+                DEBUG_PRINT_ERROR("Extradata index higher than allowed: %d\n", extra_idx);
+                return OMX_ErrorBadParameter;
+            }
+            buf.m.planes = plane;
+            buf.length = drv_ctx.num_planes;
+            DEBUG_PRINT_LOW("\n Set the Output Buffer Idx: %d Addr: %p", i, drv_ctx.ptr_outputbuffer[i].bufferaddr);
+            rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_PREPARE_BUF, &buf);
+            if (rc) {
+                /*TODO: How to handle this case */
+                return OMX_ErrorInsufficientResources;
+            }
 
-        /*Create a mapping between buffers*/
-        bufHdr->pOutputPortPrivate = &drv_ctx.ptr_respbuffer[i];
-        drv_ctx.ptr_respbuffer[i].client_data = (void *)\
-                                            &drv_ctx.ptr_outputbuffer[i];
-        drv_ctx.ptr_outputbuffer[i].offset = drv_ctx.op_buf.buffer_size*i;
-        drv_ctx.ptr_outputbuffer[i].bufferaddr =
-          pmem_baseaddress + (drv_ctx.op_buf.buffer_size*i);
+            if (i == (drv_ctx.op_buf.actualcount -1 ) && !streaming[CAPTURE_PORT]) {
+                enum v4l2_buf_type buf_type;
+                buf_type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+                rc=ioctl(drv_ctx.video_driver_fd, VIDIOC_STREAMON,&buf_type);
+                if (rc) {
+                    return OMX_ErrorInsufficientResources;
+                } else {
+                    streaming[CAPTURE_PORT] = true;
+                    DEBUG_PRINT_LOW("\n STREAMON Successful \n ");
+                }
+            }
 
-        DEBUG_PRINT_LOW("\n pmem_fd = %d offset = %d address = %p",
-          pmem_fd, drv_ctx.ptr_outputbuffer[i].offset,
-          drv_ctx.ptr_outputbuffer[i].bufferaddr);
-        // Move the buffer and buffer header pointers
-        bufHdr++;
-        pPMEMInfo++;
-        pPlatformEntry++;
-        pPlatformList++;
-      }
+            (*bufferHdr)->pBuffer = (OMX_U8*)drv_ctx.ptr_outputbuffer[i].bufferaddr;
+            (*bufferHdr)->pAppPrivate = appData;
+            BITMASK_SET(&m_out_bm_count,i);
+        } else {
+            DEBUG_PRINT_ERROR("All the Output Buffers have been Allocated ; Returning Insufficient \n");
+            eRet = OMX_ErrorInsufficientResources;
+        }
     }
-    else
-    {
-      DEBUG_PRINT_ERROR("Output buf mem alloc failed[0x%p][0x%p]\n",\
-                                        m_out_mem_ptr, pPtr);
-      if(m_out_mem_ptr)
-      {
-        free(m_out_mem_ptr);
-        m_out_mem_ptr = NULL;
-      }
-      if(pPtr)
-      {
-        free(pPtr);
-        pPtr = NULL;
-      }
-      if(drv_ctx.ptr_outputbuffer)
-      {
-        free(drv_ctx.ptr_outputbuffer);
-        drv_ctx.ptr_outputbuffer = NULL;
-      }
-      if(drv_ctx.ptr_respbuffer)
-      {
-        free(drv_ctx.ptr_respbuffer);
-        drv_ctx.ptr_respbuffer = NULL;
-      }
-#ifdef USE_ION
-    if (drv_ctx.op_buf_ion_info) {
-        DEBUG_PRINT_LOW("\n Free o/p ion context");
-	free(drv_ctx.op_buf_ion_info);
-        drv_ctx.op_buf_ion_info = NULL;
-    }
-#endif
-      eRet =  OMX_ErrorInsufficientResources;
-    }
-    if (eRet == OMX_ErrorNone)
-      eRet = allocate_extradata();
-  }
 
-  for(i=0; i< drv_ctx.op_buf.actualcount; i++)
-  {
-    if(BITMASK_ABSENT(&m_out_bm_count,i))
-    {
-      DEBUG_PRINT_LOW("\n Found a Free Output Buffer %d",i);
-      break;
-    }
-  }
-
-  if (eRet == OMX_ErrorNone)
-  {
-    if(i < drv_ctx.op_buf.actualcount)
-    {
-      struct v4l2_buffer buf;
-      struct v4l2_plane plane[VIDEO_MAX_PLANES];
-      int rc;
-      m_pmem_info[i].offset = drv_ctx.ptr_outputbuffer[i].offset;
-
-      drv_ctx.ptr_outputbuffer[i].buffer_len =
-        drv_ctx.op_buf.buffer_size;
-
-    *bufferHdr = (m_out_mem_ptr + i );
-    if (secure_mode) {
-       drv_ctx.ptr_outputbuffer[i].bufferaddr = *bufferHdr;
-    }
-   drv_ctx.ptr_outputbuffer[i].mmaped_size = drv_ctx.op_buf.buffer_size;
-
-     buf.index = i;
-     buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-     buf.memory = V4L2_MEMORY_USERPTR;
-     plane[0].length = drv_ctx.op_buf.buffer_size;
-     plane[0].m.userptr = (unsigned long)drv_ctx.ptr_outputbuffer[i].bufferaddr -
-             (unsigned long)drv_ctx.ptr_outputbuffer[i].offset;
-#ifdef USE_ION
-     plane[0].reserved[0] = drv_ctx.op_buf_ion_info[i].fd_ion_data.fd;
-#endif
-     plane[0].reserved[1] = drv_ctx.ptr_outputbuffer[i].offset;
-     plane[0].data_offset = 0;
-     extra_idx = EXTRADATA_IDX(drv_ctx.num_planes);
-     if (extra_idx && (extra_idx < VIDEO_MAX_PLANES)) {
-       plane[extra_idx].length = drv_ctx.extradata_info.buffer_size;
-       plane[extra_idx].m.userptr = (long unsigned int) (drv_ctx.extradata_info.uaddr + i * drv_ctx.extradata_info.buffer_size);
-#ifdef USE_ION
-       plane[extra_idx].reserved[0] = drv_ctx.extradata_info.ion.fd_ion_data.fd;
-#endif
-       plane[extra_idx].reserved[1] = i * drv_ctx.extradata_info.buffer_size;
-       plane[extra_idx].data_offset = 0;
-     } else if (extra_idx >= VIDEO_MAX_PLANES) {
-       DEBUG_PRINT_ERROR("Extradata index higher than allowed: %d\n", extra_idx);
-       return OMX_ErrorBadParameter;
-     }
-     buf.m.planes = plane;
-     buf.length = drv_ctx.num_planes;
-     DEBUG_PRINT_LOW("\n Set the Output Buffer Idx: %d Addr: %p", i, drv_ctx.ptr_outputbuffer[i].bufferaddr);
-     rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_PREPARE_BUF, &buf);
-     if (rc) {
-       /*TODO: How to handle this case */
-       return OMX_ErrorInsufficientResources;
-     }
-
-	  if (i == (drv_ctx.op_buf.actualcount -1 ) && !streaming[CAPTURE_PORT]) {
-		enum v4l2_buf_type buf_type;
-		buf_type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		rc=ioctl(drv_ctx.video_driver_fd, VIDIOC_STREAMON,&buf_type);
-		if (rc) {
-			return OMX_ErrorInsufficientResources;
-		} else {
-			streaming[CAPTURE_PORT] = true;
-			DEBUG_PRINT_LOW("\n STREAMON Successful \n ");
-		}
-	  }
-
-      (*bufferHdr)->pBuffer = (OMX_U8*)drv_ctx.ptr_outputbuffer[i].bufferaddr;
-      (*bufferHdr)->pAppPrivate = appData;
-      BITMASK_SET(&m_out_bm_count,i);
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("All the Output Buffers have been Allocated ; Returning Insufficient \n");
-      eRet = OMX_ErrorInsufficientResources;
-    }
-  }
-
-  return eRet;
+    return eRet;
 }
 
 
 // AllocateBuffer  -- API Call
 /* ======================================================================
-FUNCTION
-  omx_vdec::AllocateBuffer
+   FUNCTION
+   omx_vdec::AllocateBuffer
 
-DESCRIPTION
-  Returns zero if all the buffers released..
+   DESCRIPTION
+   Returns zero if all the buffers released..
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::allocate_buffer(OMX_IN OMX_HANDLETYPE                hComp,
-                                     OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                                     OMX_IN OMX_U32                        port,
-                                     OMX_IN OMX_PTR                     appData,
-                                     OMX_IN OMX_U32                       bytes)
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                        port,
+        OMX_IN OMX_PTR                     appData,
+        OMX_IN OMX_U32                       bytes)
 {
     unsigned i = 0;
     OMX_ERRORTYPE eRet = OMX_ErrorNone; // OMX return type
 
     DEBUG_PRINT_LOW("\n Allocate buffer on port %d \n", (int)port);
-    if(m_state == OMX_StateInvalid)
-    {
+    if (m_state == OMX_StateInvalid) {
         DEBUG_PRINT_ERROR("Allocate Buf in Invalid State\n");
         return OMX_ErrorInvalidState;
     }
 
-    if(port == OMX_CORE_INPUT_PORT_INDEX)
-    {
-      if (arbitrary_bytes)
-      {
-          eRet = allocate_input_heap_buffer (hComp,bufferHdr,port,appData,bytes);
-      }
-      else
-      {
-        eRet = allocate_input_buffer(hComp,bufferHdr,port,appData,bytes);
-      }
-    }
-    else if(port == OMX_CORE_OUTPUT_PORT_INDEX)
-    {
+    if (port == OMX_CORE_INPUT_PORT_INDEX) {
+        if (arbitrary_bytes) {
+            eRet = allocate_input_heap_buffer (hComp,bufferHdr,port,appData,bytes);
+        } else {
+            eRet = allocate_input_buffer(hComp,bufferHdr,port,appData,bytes);
+        }
+    } else if (port == OMX_CORE_OUTPUT_PORT_INDEX) {
         eRet = client_buffers.allocate_buffers_color_convert(hComp,bufferHdr,port,
                 appData,bytes);
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("Error: Invalid Port Index received %d\n",(int)port);
-      eRet = OMX_ErrorBadPortIndex;
+    } else {
+        DEBUG_PRINT_ERROR("Error: Invalid Port Index received %d\n",(int)port);
+        eRet = OMX_ErrorBadPortIndex;
     }
     DEBUG_PRINT_LOW("Checking for Output Allocate buffer Done");
-    if(eRet == OMX_ErrorNone)
-    {
-        if(allocate_done()){
-            if(BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
-            {
+    if (eRet == OMX_ErrorNone) {
+        if (allocate_done()) {
+            if (BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING)) {
                 // Send the callback now
                 BITMASK_CLEAR((&m_flags),OMX_COMPONENT_IDLE_PENDING);
                 post_event(OMX_CommandStateSet,OMX_StateIdle,
-                                   OMX_COMPONENT_GENERATE_EVENT);
+                        OMX_COMPONENT_GENERATE_EVENT);
             }
         }
-        if(port == OMX_CORE_INPUT_PORT_INDEX && m_inp_bPopulated)
-        {
-          if(BITMASK_PRESENT(&m_flags,OMX_COMPONENT_INPUT_ENABLE_PENDING))
-          {
-             BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_ENABLE_PENDING);
-             post_event(OMX_CommandPortEnable,
+        if (port == OMX_CORE_INPUT_PORT_INDEX && m_inp_bPopulated) {
+            if (BITMASK_PRESENT(&m_flags,OMX_COMPONENT_INPUT_ENABLE_PENDING)) {
+                BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_ENABLE_PENDING);
+                post_event(OMX_CommandPortEnable,
                         OMX_CORE_INPUT_PORT_INDEX,
                         OMX_COMPONENT_GENERATE_EVENT);
-          }
+            }
         }
-        if(port == OMX_CORE_OUTPUT_PORT_INDEX && m_out_bPopulated)
-            {
-          if(BITMASK_PRESENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING))
-          {
-             BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
+        if (port == OMX_CORE_OUTPUT_PORT_INDEX && m_out_bPopulated) {
+            if (BITMASK_PRESENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING)) {
+                BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
                 post_event(OMX_CommandPortEnable,
-                           OMX_CORE_OUTPUT_PORT_INDEX,
-                           OMX_COMPONENT_GENERATE_EVENT);
+                        OMX_CORE_OUTPUT_PORT_INDEX,
+                        OMX_COMPONENT_GENERATE_EVENT);
             }
         }
     }
@@ -5510,172 +4902,140 @@
 
 // Free Buffer - API call
 /* ======================================================================
-FUNCTION
-  omx_vdec::FreeBuffer
+   FUNCTION
+   omx_vdec::FreeBuffer
 
-DESCRIPTION
+   DESCRIPTION
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::free_buffer(OMX_IN OMX_HANDLETYPE         hComp,
-                                      OMX_IN OMX_U32                 port,
-                                      OMX_IN OMX_BUFFERHEADERTYPE* buffer)
+        OMX_IN OMX_U32                 port,
+        OMX_IN OMX_BUFFERHEADERTYPE* buffer)
 {
     OMX_ERRORTYPE eRet = OMX_ErrorNone;
     unsigned int nPortIndex;
     DEBUG_PRINT_LOW("In for decoder free_buffer \n");
 
-    if(m_state == OMX_StateIdle &&
-       (BITMASK_PRESENT(&m_flags ,OMX_COMPONENT_LOADING_PENDING)))
-    {
+    if (m_state == OMX_StateIdle &&
+            (BITMASK_PRESENT(&m_flags ,OMX_COMPONENT_LOADING_PENDING))) {
         DEBUG_PRINT_LOW(" free buffer while Component in Loading pending\n");
-    }
-    else if((m_inp_bEnabled == OMX_FALSE && port == OMX_CORE_INPUT_PORT_INDEX)||
-            (m_out_bEnabled == OMX_FALSE && port == OMX_CORE_OUTPUT_PORT_INDEX))
-    {
+    } else if ((m_inp_bEnabled == OMX_FALSE && port == OMX_CORE_INPUT_PORT_INDEX)||
+            (m_out_bEnabled == OMX_FALSE && port == OMX_CORE_OUTPUT_PORT_INDEX)) {
         DEBUG_PRINT_LOW("Free Buffer while port %lu disabled\n", port);
-    }
-    else if ((port == OMX_CORE_INPUT_PORT_INDEX &&
-              BITMASK_PRESENT(&m_flags, OMX_COMPONENT_INPUT_ENABLE_PENDING)) ||
-             (port == OMX_CORE_OUTPUT_PORT_INDEX &&
-              BITMASK_PRESENT(&m_flags, OMX_COMPONENT_OUTPUT_ENABLE_PENDING)))
-    {
+    } else if ((port == OMX_CORE_INPUT_PORT_INDEX &&
+                BITMASK_PRESENT(&m_flags, OMX_COMPONENT_INPUT_ENABLE_PENDING)) ||
+            (port == OMX_CORE_OUTPUT_PORT_INDEX &&
+             BITMASK_PRESENT(&m_flags, OMX_COMPONENT_OUTPUT_ENABLE_PENDING))) {
         DEBUG_PRINT_LOW("Free Buffer while port %d enable pending\n", port);
-    }
-    else if(m_state == OMX_StateExecuting || m_state == OMX_StatePause)
-    {
+    } else if (m_state == OMX_StateExecuting || m_state == OMX_StatePause) {
         DEBUG_PRINT_ERROR("Invalid state to free buffer,ports need to be disabled\n");
         post_event(OMX_EventError,
-                   OMX_ErrorPortUnpopulated,
-                   OMX_COMPONENT_GENERATE_EVENT);
+                OMX_ErrorPortUnpopulated,
+                OMX_COMPONENT_GENERATE_EVENT);
 
         return OMX_ErrorIncorrectStateOperation;
-    }
-    else if (m_state != OMX_StateInvalid)
-    {
+    } else if (m_state != OMX_StateInvalid) {
         DEBUG_PRINT_ERROR("Invalid state to free buffer,port lost Buffers\n");
         post_event(OMX_EventError,
-                   OMX_ErrorPortUnpopulated,
-                   OMX_COMPONENT_GENERATE_EVENT);
+                OMX_ErrorPortUnpopulated,
+                OMX_COMPONENT_GENERATE_EVENT);
     }
 
-    if(port == OMX_CORE_INPUT_PORT_INDEX)
-    {
-      /*Check if arbitrary bytes*/
-      if(!arbitrary_bytes && !input_use_buffer)
-        nPortIndex = buffer - m_inp_mem_ptr;
-      else
-        nPortIndex = buffer - m_inp_heap_ptr;
+    if (port == OMX_CORE_INPUT_PORT_INDEX) {
+        /*Check if arbitrary bytes*/
+        if (!arbitrary_bytes && !input_use_buffer)
+            nPortIndex = buffer - m_inp_mem_ptr;
+        else
+            nPortIndex = buffer - m_inp_heap_ptr;
 
         DEBUG_PRINT_LOW("free_buffer on i/p port - Port idx %d \n", nPortIndex);
-        if(nPortIndex < drv_ctx.ip_buf.actualcount)
-        {
-         // Clear the bit associated with it.
-         BITMASK_CLEAR(&m_inp_bm_count,nPortIndex);
-         BITMASK_CLEAR(&m_heap_inp_bm_count,nPortIndex);
-         if (input_use_buffer == true)
-         {
+        if (nPortIndex < drv_ctx.ip_buf.actualcount) {
+            // Clear the bit associated with it.
+            BITMASK_CLEAR(&m_inp_bm_count,nPortIndex);
+            BITMASK_CLEAR(&m_heap_inp_bm_count,nPortIndex);
+            if (input_use_buffer == true) {
 
-            DEBUG_PRINT_LOW("\n Free pmem Buffer index %d",nPortIndex);
-            if(m_phdr_pmem_ptr)
-              free_input_buffer(m_phdr_pmem_ptr[nPortIndex]);
-         }
-         else
-         {
-            if (arbitrary_bytes)
-            {
-              if(m_phdr_pmem_ptr)
-                free_input_buffer(nPortIndex,m_phdr_pmem_ptr[nPortIndex]);
-              else
-                free_input_buffer(nPortIndex,NULL);
+                DEBUG_PRINT_LOW("\n Free pmem Buffer index %d",nPortIndex);
+                if (m_phdr_pmem_ptr)
+                    free_input_buffer(m_phdr_pmem_ptr[nPortIndex]);
+            } else {
+                if (arbitrary_bytes) {
+                    if (m_phdr_pmem_ptr)
+                        free_input_buffer(nPortIndex,m_phdr_pmem_ptr[nPortIndex]);
+                    else
+                        free_input_buffer(nPortIndex,NULL);
+                } else
+                    free_input_buffer(buffer);
             }
-            else
-              free_input_buffer(buffer);
-         }
-         m_inp_bPopulated = OMX_FALSE;
-         /*Free the Buffer Header*/
-          if (release_input_done())
-          {
-            DEBUG_PRINT_HIGH("\n ALL input buffers are freed/released");
-            free_input_buffer_header();
-          }
-        }
-        else
-        {
+            m_inp_bPopulated = OMX_FALSE;
+            /*Free the Buffer Header*/
+            if (release_input_done()) {
+                DEBUG_PRINT_HIGH("\n ALL input buffers are freed/released");
+                free_input_buffer_header();
+            }
+        } else {
             DEBUG_PRINT_ERROR("Error: free_buffer ,Port Index Invalid\n");
             eRet = OMX_ErrorBadPortIndex;
         }
 
-        if(BITMASK_PRESENT((&m_flags),OMX_COMPONENT_INPUT_DISABLE_PENDING)
-           && release_input_done())
-        {
+        if (BITMASK_PRESENT((&m_flags),OMX_COMPONENT_INPUT_DISABLE_PENDING)
+                && release_input_done()) {
             DEBUG_PRINT_LOW("MOVING TO DISABLED STATE \n");
             BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_DISABLE_PENDING);
             post_event(OMX_CommandPortDisable,
-                       OMX_CORE_INPUT_PORT_INDEX,
-                       OMX_COMPONENT_GENERATE_EVENT);
+                    OMX_CORE_INPUT_PORT_INDEX,
+                    OMX_COMPONENT_GENERATE_EVENT);
         }
-    }
-    else if(port == OMX_CORE_OUTPUT_PORT_INDEX)
-    {
+    } else if (port == OMX_CORE_OUTPUT_PORT_INDEX) {
         // check if the buffer is valid
         nPortIndex = buffer - client_buffers.get_il_buf_hdr();
-        if(nPortIndex < drv_ctx.op_buf.actualcount)
-        {
+        if (nPortIndex < drv_ctx.op_buf.actualcount) {
             DEBUG_PRINT_LOW("free_buffer on o/p port - Port idx %d \n", nPortIndex);
             // Clear the bit associated with it.
             BITMASK_CLEAR(&m_out_bm_count,nPortIndex);
             m_out_bPopulated = OMX_FALSE;
             client_buffers.free_output_buffer (buffer);
 
-            if (release_output_done())
-            {
-              free_output_buffer_header();
+            if (release_output_done()) {
+                free_output_buffer_header();
             }
-        }
-        else
-        {
+        } else {
             DEBUG_PRINT_ERROR("Error: free_buffer , Port Index Invalid\n");
             eRet = OMX_ErrorBadPortIndex;
         }
-        if(BITMASK_PRESENT((&m_flags),OMX_COMPONENT_OUTPUT_DISABLE_PENDING)
-           && release_output_done())
-        {
+        if (BITMASK_PRESENT((&m_flags),OMX_COMPONENT_OUTPUT_DISABLE_PENDING)
+                && release_output_done()) {
             DEBUG_PRINT_LOW("FreeBuffer : If any Disable event pending,post it\n");
 
-                DEBUG_PRINT_LOW("MOVING TO DISABLED STATE \n");
-                BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_DISABLE_PENDING);
+            DEBUG_PRINT_LOW("MOVING TO DISABLED STATE \n");
+            BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_DISABLE_PENDING);
 #ifdef _ANDROID_ICS_
-                if (m_enable_android_native_buffers)
-                {
-                    DEBUG_PRINT_LOW("FreeBuffer - outport disabled: reset native buffers");
-                    memset(&native_buffer, 0 ,(sizeof(struct nativebuffer) * MAX_NUM_INPUT_OUTPUT_BUFFERS));
-                }
+            if (m_enable_android_native_buffers) {
+                DEBUG_PRINT_LOW("FreeBuffer - outport disabled: reset native buffers");
+                memset(&native_buffer, 0 ,(sizeof(struct nativebuffer) * MAX_NUM_INPUT_OUTPUT_BUFFERS));
+            }
 #endif
 
-                post_event(OMX_CommandPortDisable,
-                           OMX_CORE_OUTPUT_PORT_INDEX,
-                           OMX_COMPONENT_GENERATE_EVENT);
+            post_event(OMX_CommandPortDisable,
+                    OMX_CORE_OUTPUT_PORT_INDEX,
+                    OMX_COMPONENT_GENERATE_EVENT);
         }
-    }
-    else
-    {
+    } else {
         eRet = OMX_ErrorBadPortIndex;
     }
-    if((eRet == OMX_ErrorNone) &&
-       (BITMASK_PRESENT(&m_flags ,OMX_COMPONENT_LOADING_PENDING)))
-    {
-        if(release_done())
-        {
+    if ((eRet == OMX_ErrorNone) &&
+            (BITMASK_PRESENT(&m_flags ,OMX_COMPONENT_LOADING_PENDING))) {
+        if (release_done()) {
             // Send the callback now
             BITMASK_CLEAR((&m_flags),OMX_COMPONENT_LOADING_PENDING);
             post_event(OMX_CommandStateSet, OMX_StateLoaded,
-                                      OMX_COMPONENT_GENERATE_EVENT);
+                    OMX_COMPONENT_GENERATE_EVENT);
         }
     }
     return eRet;
@@ -5683,536 +5043,480 @@
 
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::EmptyThisBuffer
+   FUNCTION
+   omx_vdec::EmptyThisBuffer
 
-DESCRIPTION
-  This routine is used to push the encoded video frames to
-  the video decoder.
+   DESCRIPTION
+   This routine is used to push the encoded video frames to
+   the video decoder.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  OMX Error None if everything went successful.
+   RETURN VALUE
+   OMX Error None if everything went successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::empty_this_buffer(OMX_IN OMX_HANDLETYPE         hComp,
-                                           OMX_IN OMX_BUFFERHEADERTYPE* buffer)
+        OMX_IN OMX_BUFFERHEADERTYPE* buffer)
 {
-  OMX_ERRORTYPE ret1 = OMX_ErrorNone;
-  unsigned int nBufferIndex = drv_ctx.ip_buf.actualcount;
+    OMX_ERRORTYPE ret1 = OMX_ErrorNone;
+    unsigned int nBufferIndex = drv_ctx.ip_buf.actualcount;
 
-  if (buffer->nFlags & OMX_BUFFERFLAG_CODECCONFIG)
-  {
-    codec_config_flag = true;
-    DEBUG_PRINT_LOW("%s: codec_config buffer", __FUNCTION__);
-  }
-  else
-  {
-    codec_config_flag = false;
-  }
+    if (buffer->nFlags & OMX_BUFFERFLAG_CODECCONFIG) {
+        codec_config_flag = true;
+        DEBUG_PRINT_LOW("%s: codec_config buffer", __FUNCTION__);
+    } else {
+        codec_config_flag = false;
+    }
 
-  if(m_state == OMX_StateInvalid)
-  {
-      DEBUG_PRINT_ERROR("Empty this buffer in Invalid State\n");
-      return OMX_ErrorInvalidState;
-  }
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("Empty this buffer in Invalid State\n");
+        return OMX_ErrorInvalidState;
+    }
 
-  if (buffer == NULL)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:ETB Buffer is NULL");
-    return OMX_ErrorBadParameter;
-  }
+    if (buffer == NULL) {
+        DEBUG_PRINT_ERROR("\nERROR:ETB Buffer is NULL");
+        return OMX_ErrorBadParameter;
+    }
 
-  if (!m_inp_bEnabled)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:ETB incorrect state operation, input port is disabled.");
-    return OMX_ErrorIncorrectStateOperation;
-  }
+    if (!m_inp_bEnabled) {
+        DEBUG_PRINT_ERROR("\nERROR:ETB incorrect state operation, input port is disabled.");
+        return OMX_ErrorIncorrectStateOperation;
+    }
 
-  if (buffer->nInputPortIndex != OMX_CORE_INPUT_PORT_INDEX)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:ETB invalid port in header %lu", buffer->nInputPortIndex);
-    return OMX_ErrorBadPortIndex;
-  }
+    if (buffer->nInputPortIndex != OMX_CORE_INPUT_PORT_INDEX) {
+        DEBUG_PRINT_ERROR("\nERROR:ETB invalid port in header %lu", buffer->nInputPortIndex);
+        return OMX_ErrorBadPortIndex;
+    }
 
 #ifdef _ANDROID_
-  if(iDivXDrmDecrypt)
-  {
-    OMX_ERRORTYPE drmErr = iDivXDrmDecrypt->Decrypt(buffer);
-    if(drmErr != OMX_ErrorNone) {
-        // this error can be ignored
-        DEBUG_PRINT_LOW("\nERROR:iDivXDrmDecrypt->Decrypt %d", drmErr);
+    if (iDivXDrmDecrypt) {
+        OMX_ERRORTYPE drmErr = iDivXDrmDecrypt->Decrypt(buffer);
+        if (drmErr != OMX_ErrorNone) {
+            // this error can be ignored
+            DEBUG_PRINT_LOW("\nERROR:iDivXDrmDecrypt->Decrypt %d", drmErr);
+        }
     }
-  }
 #endif //_ANDROID_
-  if (perf_flag)
-  {
-    if (!latency)
-    {
-      dec_time.stop();
-      latency = dec_time.processing_time_us();
-      dec_time.start();
+    if (perf_flag) {
+        if (!latency) {
+            dec_time.stop();
+            latency = dec_time.processing_time_us();
+            dec_time.start();
+        }
     }
-  }
 
-  if (arbitrary_bytes)
-  {
-    nBufferIndex = buffer - m_inp_heap_ptr;
-  }
-  else
-  {
-     if (input_use_buffer == true)
-     {
-       nBufferIndex = buffer - m_inp_heap_ptr;
-       m_inp_mem_ptr[nBufferIndex].nFilledLen = m_inp_heap_ptr[nBufferIndex].nFilledLen;
-       m_inp_mem_ptr[nBufferIndex].nTimeStamp = m_inp_heap_ptr[nBufferIndex].nTimeStamp;
-       m_inp_mem_ptr[nBufferIndex].nFlags = m_inp_heap_ptr[nBufferIndex].nFlags;
-       buffer = &m_inp_mem_ptr[nBufferIndex];
-       DEBUG_PRINT_LOW("Non-Arbitrary mode - buffer address is: malloc %p, pmem%p in Index %d, buffer %p of size %lu",
-                         &m_inp_heap_ptr[nBufferIndex], &m_inp_mem_ptr[nBufferIndex],nBufferIndex, buffer, buffer->nFilledLen);
-     }
-     else{
-       nBufferIndex = buffer - m_inp_mem_ptr;
-     }
-  }
+    if (arbitrary_bytes) {
+        nBufferIndex = buffer - m_inp_heap_ptr;
+    } else {
+        if (input_use_buffer == true) {
+            nBufferIndex = buffer - m_inp_heap_ptr;
+            m_inp_mem_ptr[nBufferIndex].nFilledLen = m_inp_heap_ptr[nBufferIndex].nFilledLen;
+            m_inp_mem_ptr[nBufferIndex].nTimeStamp = m_inp_heap_ptr[nBufferIndex].nTimeStamp;
+            m_inp_mem_ptr[nBufferIndex].nFlags = m_inp_heap_ptr[nBufferIndex].nFlags;
+            buffer = &m_inp_mem_ptr[nBufferIndex];
+            DEBUG_PRINT_LOW("Non-Arbitrary mode - buffer address is: malloc %p, pmem%p in Index %d, buffer %p of size %lu",
+                    &m_inp_heap_ptr[nBufferIndex], &m_inp_mem_ptr[nBufferIndex],nBufferIndex, buffer, buffer->nFilledLen);
+        } else {
+            nBufferIndex = buffer - m_inp_mem_ptr;
+        }
+    }
 
-  if (nBufferIndex > drv_ctx.ip_buf.actualcount )
-  {
-    DEBUG_PRINT_ERROR("\nERROR:ETB nBufferIndex is invalid");
-    return OMX_ErrorBadParameter;
-  }
+    if (nBufferIndex > drv_ctx.ip_buf.actualcount ) {
+        DEBUG_PRINT_ERROR("\nERROR:ETB nBufferIndex is invalid");
+        return OMX_ErrorBadParameter;
+    }
 
-  DEBUG_PRINT_LOW("[ETB] BHdr(%p) pBuf(%p) nTS(%lld) nFL(%lu)",
-    buffer, buffer->pBuffer, buffer->nTimeStamp, buffer->nFilledLen);
-  if (arbitrary_bytes)
-  {
-    post_event ((unsigned)hComp,(unsigned)buffer,
+    DEBUG_PRINT_LOW("[ETB] BHdr(%p) pBuf(%p) nTS(%lld) nFL(%lu)",
+            buffer, buffer->pBuffer, buffer->nTimeStamp, buffer->nFilledLen);
+    if (arbitrary_bytes) {
+        post_event ((unsigned)hComp,(unsigned)buffer,
                 OMX_COMPONENT_GENERATE_ETB_ARBITRARY);
-  }
-  else
-  {
-    if (!(client_extradata & OMX_TIMEINFO_EXTRADATA))
-      set_frame_rate(buffer->nTimeStamp);
-    post_event ((unsigned)hComp,(unsigned)buffer,OMX_COMPONENT_GENERATE_ETB);
-  }
-  return OMX_ErrorNone;
+    } else {
+        if (!(client_extradata & OMX_TIMEINFO_EXTRADATA))
+            set_frame_rate(buffer->nTimeStamp);
+        post_event ((unsigned)hComp,(unsigned)buffer,OMX_COMPONENT_GENERATE_ETB);
+    }
+    return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::empty_this_buffer_proxy
+   FUNCTION
+   omx_vdec::empty_this_buffer_proxy
 
-DESCRIPTION
-  This routine is used to push the encoded video frames to
-  the video decoder.
+   DESCRIPTION
+   This routine is used to push the encoded video frames to
+   the video decoder.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  OMX Error None if everything went successful.
+   RETURN VALUE
+   OMX Error None if everything went successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::empty_this_buffer_proxy(OMX_IN OMX_HANDLETYPE         hComp,
-                                                 OMX_IN OMX_BUFFERHEADERTYPE* buffer)
+        OMX_IN OMX_BUFFERHEADERTYPE* buffer)
 {
-  int push_cnt = 0,i=0;
-  unsigned nPortIndex = 0;
-  OMX_ERRORTYPE ret = OMX_ErrorNone;
-  struct vdec_input_frameinfo frameinfo;
-  struct vdec_bufferpayload *temp_buffer;
-  struct vdec_seqheader seq_header;
-  bool port_setting_changed = true;
-  bool not_coded_vop = false;
+    int push_cnt = 0,i=0;
+    unsigned nPortIndex = 0;
+    OMX_ERRORTYPE ret = OMX_ErrorNone;
+    struct vdec_input_frameinfo frameinfo;
+    struct vdec_bufferpayload *temp_buffer;
+    struct vdec_seqheader seq_header;
+    bool port_setting_changed = true;
+    bool not_coded_vop = false;
 
-  /*Should we generate a Aync error event*/
-  if (buffer == NULL || buffer->pInputPortPrivate == NULL)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:empty_this_buffer_proxy is invalid");
-    return OMX_ErrorBadParameter;
-  }
+    /*Should we generate a Aync error event*/
+    if (buffer == NULL || buffer->pInputPortPrivate == NULL) {
+        DEBUG_PRINT_ERROR("\nERROR:empty_this_buffer_proxy is invalid");
+        return OMX_ErrorBadParameter;
+    }
 
-  nPortIndex = buffer-((OMX_BUFFERHEADERTYPE *)m_inp_mem_ptr);
+    nPortIndex = buffer-((OMX_BUFFERHEADERTYPE *)m_inp_mem_ptr);
 
-  if (nPortIndex > drv_ctx.ip_buf.actualcount)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:empty_this_buffer_proxy invalid nPortIndex[%u]",
-        nPortIndex);
-    return OMX_ErrorBadParameter;
-  }
+    if (nPortIndex > drv_ctx.ip_buf.actualcount) {
+        DEBUG_PRINT_ERROR("\nERROR:empty_this_buffer_proxy invalid nPortIndex[%u]",
+                nPortIndex);
+        return OMX_ErrorBadParameter;
+    }
 
-  pending_input_buffers++;
+    pending_input_buffers++;
 
-  /* return zero length and not an EOS buffer */
-  if (!arbitrary_bytes && (buffer->nFilledLen == 0) &&
-     ((buffer->nFlags & OMX_BUFFERFLAG_EOS) == 0))
-  {
-    DEBUG_PRINT_HIGH("\n return zero legth buffer");
-    post_event ((unsigned int)buffer,VDEC_S_SUCCESS,
-                     OMX_COMPONENT_GENERATE_EBD);
-    return OMX_ErrorNone;
-  }
+    /* return zero length and not an EOS buffer */
+    if (!arbitrary_bytes && (buffer->nFilledLen == 0) &&
+            ((buffer->nFlags & OMX_BUFFERFLAG_EOS) == 0)) {
+        DEBUG_PRINT_HIGH("\n return zero legth buffer");
+        post_event ((unsigned int)buffer,VDEC_S_SUCCESS,
+                OMX_COMPONENT_GENERATE_EBD);
+        return OMX_ErrorNone;
+    }
 
 
-  if(codec_type_parse == CODEC_TYPE_MPEG4 || codec_type_parse == CODEC_TYPE_DIVX){
-    mp4StreamType psBits;
-    psBits.data = (unsigned char *)(buffer->pBuffer + buffer->nOffset);
-    psBits.numBytes = buffer->nFilledLen;
-    mp4_headerparser.parseHeader(&psBits);
-    not_coded_vop = mp4_headerparser.is_notcodec_vop(
-            (buffer->pBuffer + buffer->nOffset),buffer->nFilledLen);
-    if(not_coded_vop) {
-        DEBUG_PRINT_HIGH("\n Found Not coded vop len %lu frame number %u",
-             buffer->nFilledLen,frame_count);
-        if(buffer->nFlags & OMX_BUFFERFLAG_EOS){
-          DEBUG_PRINT_HIGH("\n Eos and Not coded Vop set len to zero");
-          not_coded_vop = false;
-          buffer->nFilledLen = 0;
+    if (codec_type_parse == CODEC_TYPE_MPEG4 || codec_type_parse == CODEC_TYPE_DIVX) {
+        mp4StreamType psBits;
+        psBits.data = (unsigned char *)(buffer->pBuffer + buffer->nOffset);
+        psBits.numBytes = buffer->nFilledLen;
+        mp4_headerparser.parseHeader(&psBits);
+        not_coded_vop = mp4_headerparser.is_notcodec_vop(
+                (buffer->pBuffer + buffer->nOffset),buffer->nFilledLen);
+        if (not_coded_vop) {
+            DEBUG_PRINT_HIGH("\n Found Not coded vop len %lu frame number %u",
+                    buffer->nFilledLen,frame_count);
+            if (buffer->nFlags & OMX_BUFFERFLAG_EOS) {
+                DEBUG_PRINT_HIGH("\n Eos and Not coded Vop set len to zero");
+                not_coded_vop = false;
+                buffer->nFilledLen = 0;
+            }
         }
     }
-  }
 
-  if(input_flush_progress == true
+    if (input_flush_progress == true
 
-     || not_coded_vop
+            || not_coded_vop
 
-     )
-  {
-    DEBUG_PRINT_LOW("\n Flush in progress return buffer ");
-    post_event ((unsigned int)buffer,VDEC_S_SUCCESS,
-                     OMX_COMPONENT_GENERATE_EBD);
-    return OMX_ErrorNone;
-  }
-
-  temp_buffer = (struct vdec_bufferpayload *)buffer->pInputPortPrivate;
-
-  if ((temp_buffer -  drv_ctx.ptr_inputbuffer) > drv_ctx.ip_buf.actualcount)
-  {
-    return OMX_ErrorBadParameter;
-  }
-  /* If its first frame, H264 codec and reject is true, then parse the nal
-     and get the profile. Based on this, reject the clip playback */
-  if(first_frame == 0 && codec_type_parse == CODEC_TYPE_H264 &&
-     m_reject_avc_1080p_mp)
-  {
-    first_frame = 1;
-    DEBUG_PRINT_ERROR("\nParse nal to get the profile");
-    h264_parser->parse_nal((OMX_U8*)buffer->pBuffer, buffer->nFilledLen,
-                                 NALU_TYPE_SPS);
-    m_profile = h264_parser->get_profile();
-    ret = is_video_session_supported();
-    if (ret)
-    {
-      post_event ((unsigned int)buffer,VDEC_S_SUCCESS,OMX_COMPONENT_GENERATE_EBD);
-      post_event(OMX_EventError, OMX_ErrorInvalidState,OMX_COMPONENT_GENERATE_EVENT);
-      /* Move the state to Invalid to avoid queueing of pending ETB to the driver */
-      m_state = OMX_StateInvalid;
-      return OMX_ErrorNone;
-    }
-  }
-
-  DEBUG_PRINT_LOW("\n ETBProxy: bufhdr = %p, bufhdr->pBuffer = %p", buffer, buffer->pBuffer);
-  /*for use buffer we need to memcpy the data*/
-  temp_buffer->buffer_len = buffer->nFilledLen;
-
-  if (input_use_buffer)
-  {
-    if (buffer->nFilledLen <= temp_buffer->buffer_len)
-    {
-      if(arbitrary_bytes)
-      {
-        memcpy (temp_buffer->bufferaddr, (buffer->pBuffer + buffer->nOffset),buffer->nFilledLen);
-      }
-      else
-      {
-        memcpy (temp_buffer->bufferaddr, (m_inp_heap_ptr[nPortIndex].pBuffer + m_inp_heap_ptr[nPortIndex].nOffset),
-                buffer->nFilledLen);
-      }
-    }
-    else
-    {
-      return OMX_ErrorBadParameter;
+       ) {
+        DEBUG_PRINT_LOW("\n Flush in progress return buffer ");
+        post_event ((unsigned int)buffer,VDEC_S_SUCCESS,
+                OMX_COMPONENT_GENERATE_EBD);
+        return OMX_ErrorNone;
     }
 
-  }
+    temp_buffer = (struct vdec_bufferpayload *)buffer->pInputPortPrivate;
 
-  frameinfo.bufferaddr = temp_buffer->bufferaddr;
-  frameinfo.client_data = (void *) buffer;
-  frameinfo.datalen = temp_buffer->buffer_len;
-  frameinfo.flags = 0;
-  frameinfo.offset = buffer->nOffset;
-  frameinfo.pmem_fd = temp_buffer->pmem_fd;
-  frameinfo.pmem_offset = temp_buffer->offset;
-  frameinfo.timestamp = buffer->nTimeStamp;
-  if (drv_ctx.disable_dmx && m_desc_buffer_ptr && m_desc_buffer_ptr[nPortIndex].buf_addr)
-  {
-    DEBUG_PRINT_LOW("ETB: dmx enabled");
-    if (m_demux_entries == 0)
-    {
-      extract_demux_addr_offsets(buffer);
+    if ((temp_buffer -  drv_ctx.ptr_inputbuffer) > drv_ctx.ip_buf.actualcount) {
+        return OMX_ErrorBadParameter;
+    }
+    /* If its first frame, H264 codec and reject is true, then parse the nal
+       and get the profile. Based on this, reject the clip playback */
+    if (first_frame == 0 && codec_type_parse == CODEC_TYPE_H264 &&
+            m_reject_avc_1080p_mp) {
+        first_frame = 1;
+        DEBUG_PRINT_ERROR("\nParse nal to get the profile");
+        h264_parser->parse_nal((OMX_U8*)buffer->pBuffer, buffer->nFilledLen,
+                NALU_TYPE_SPS);
+        m_profile = h264_parser->get_profile();
+        ret = is_video_session_supported();
+        if (ret) {
+            post_event ((unsigned int)buffer,VDEC_S_SUCCESS,OMX_COMPONENT_GENERATE_EBD);
+            post_event(OMX_EventError, OMX_ErrorInvalidState,OMX_COMPONENT_GENERATE_EVENT);
+            /* Move the state to Invalid to avoid queueing of pending ETB to the driver */
+            m_state = OMX_StateInvalid;
+            return OMX_ErrorNone;
+        }
     }
 
-    DEBUG_PRINT_LOW("ETB: handle_demux_data - entries=%lu",m_demux_entries);
-    handle_demux_data(buffer);
-    frameinfo.desc_addr = (OMX_U8 *)m_desc_buffer_ptr[nPortIndex].buf_addr;
-    frameinfo.desc_size = m_desc_buffer_ptr[nPortIndex].desc_data_size;
-  }
-  else
-  {
-    frameinfo.desc_addr = NULL;
-    frameinfo.desc_size = 0;
-  }
-  if(!arbitrary_bytes)
-  {
-      frameinfo.flags |= buffer->nFlags;
-  }
+    DEBUG_PRINT_LOW("\n ETBProxy: bufhdr = %p, bufhdr->pBuffer = %p", buffer, buffer->pBuffer);
+    /*for use buffer we need to memcpy the data*/
+    temp_buffer->buffer_len = buffer->nFilledLen;
+
+    if (input_use_buffer) {
+        if (buffer->nFilledLen <= temp_buffer->buffer_len) {
+            if (arbitrary_bytes) {
+                memcpy (temp_buffer->bufferaddr, (buffer->pBuffer + buffer->nOffset),buffer->nFilledLen);
+            } else {
+                memcpy (temp_buffer->bufferaddr, (m_inp_heap_ptr[nPortIndex].pBuffer + m_inp_heap_ptr[nPortIndex].nOffset),
+                        buffer->nFilledLen);
+            }
+        } else {
+            return OMX_ErrorBadParameter;
+        }
+
+    }
+
+    frameinfo.bufferaddr = temp_buffer->bufferaddr;
+    frameinfo.client_data = (void *) buffer;
+    frameinfo.datalen = temp_buffer->buffer_len;
+    frameinfo.flags = 0;
+    frameinfo.offset = buffer->nOffset;
+    frameinfo.pmem_fd = temp_buffer->pmem_fd;
+    frameinfo.pmem_offset = temp_buffer->offset;
+    frameinfo.timestamp = buffer->nTimeStamp;
+    if (drv_ctx.disable_dmx && m_desc_buffer_ptr && m_desc_buffer_ptr[nPortIndex].buf_addr) {
+        DEBUG_PRINT_LOW("ETB: dmx enabled");
+        if (m_demux_entries == 0) {
+            extract_demux_addr_offsets(buffer);
+        }
+
+        DEBUG_PRINT_LOW("ETB: handle_demux_data - entries=%lu",m_demux_entries);
+        handle_demux_data(buffer);
+        frameinfo.desc_addr = (OMX_U8 *)m_desc_buffer_ptr[nPortIndex].buf_addr;
+        frameinfo.desc_size = m_desc_buffer_ptr[nPortIndex].desc_data_size;
+    } else {
+        frameinfo.desc_addr = NULL;
+        frameinfo.desc_size = 0;
+    }
+    if (!arbitrary_bytes) {
+        frameinfo.flags |= buffer->nFlags;
+    }
 
 #ifdef _ANDROID_
-  if (m_debug_timestamp)
-  {
-    if(arbitrary_bytes)
-    {
-      DEBUG_PRINT_LOW("\n Inserting TIMESTAMP (%lld) into queue", buffer->nTimeStamp);
-      m_timestamp_list.insert_ts(buffer->nTimeStamp);
+    if (m_debug_timestamp) {
+        if (arbitrary_bytes) {
+            DEBUG_PRINT_LOW("\n Inserting TIMESTAMP (%lld) into queue", buffer->nTimeStamp);
+            m_timestamp_list.insert_ts(buffer->nTimeStamp);
+        } else if (!arbitrary_bytes && !(buffer->nFlags & OMX_BUFFERFLAG_CODECCONFIG)) {
+            DEBUG_PRINT_LOW("\n Inserting TIMESTAMP (%lld) into queue", buffer->nTimeStamp);
+            m_timestamp_list.insert_ts(buffer->nTimeStamp);
+        }
     }
-    else if(!arbitrary_bytes && !(buffer->nFlags & OMX_BUFFERFLAG_CODECCONFIG))
-    {
-      DEBUG_PRINT_LOW("\n Inserting TIMESTAMP (%lld) into queue", buffer->nTimeStamp);
-      m_timestamp_list.insert_ts(buffer->nTimeStamp);
-    }
-  }
 #endif
 
 #ifdef INPUT_BUFFER_LOG
-  if (output_capability == V4L2_PIX_FMT_VP8) {
-    struct vp8_ivf_frame_header{
-       OMX_U32 framesize;
-       OMX_U32 timestamp_lo;
-       OMX_U32 timestamp_hi;
-    } vp8_frame_header;
-    vp8_frame_header.framesize = temp_buffer->buffer_len;
-    /* Currently FW doesn't use timestamp values */
-    vp8_frame_header.timestamp_lo = 0;
-    vp8_frame_header.timestamp_hi = 0;
-    if (inputBufferFile1)
-    {
-      fwrite((const char *)&vp8_frame_header,
-        sizeof(vp8_frame_header),1,inputBufferFile1);
-      fwrite((const char *)temp_buffer->bufferaddr,
-        temp_buffer->buffer_len,1,inputBufferFile1);
-      }
-  } else {
-    if (inputBufferFile1)
-    {
-      fwrite((const char *)temp_buffer->bufferaddr,
-        temp_buffer->buffer_len,1,inputBufferFile1);
+    if (output_capability == V4L2_PIX_FMT_VP8) {
+        struct vp8_ivf_frame_header {
+            OMX_U32 framesize;
+            OMX_U32 timestamp_lo;
+            OMX_U32 timestamp_hi;
+        } vp8_frame_header;
+        vp8_frame_header.framesize = temp_buffer->buffer_len;
+        /* Currently FW doesn't use timestamp values */
+        vp8_frame_header.timestamp_lo = 0;
+        vp8_frame_header.timestamp_hi = 0;
+        if (inputBufferFile1) {
+            fwrite((const char *)&vp8_frame_header,
+                    sizeof(vp8_frame_header),1,inputBufferFile1);
+            fwrite((const char *)temp_buffer->bufferaddr,
+                    temp_buffer->buffer_len,1,inputBufferFile1);
+        }
+    } else {
+        if (inputBufferFile1) {
+            fwrite((const char *)temp_buffer->bufferaddr,
+                    temp_buffer->buffer_len,1,inputBufferFile1);
+        }
     }
-  }
 #endif
 
-  if(buffer->nFlags & QOMX_VIDEO_BUFFERFLAG_EOSEQ)
-  {
-    frameinfo.flags |= QOMX_VIDEO_BUFFERFLAG_EOSEQ;
-    buffer->nFlags &= ~QOMX_VIDEO_BUFFERFLAG_EOSEQ;
-  }
+    if (buffer->nFlags & QOMX_VIDEO_BUFFERFLAG_EOSEQ) {
+        frameinfo.flags |= QOMX_VIDEO_BUFFERFLAG_EOSEQ;
+        buffer->nFlags &= ~QOMX_VIDEO_BUFFERFLAG_EOSEQ;
+    }
 
-  if (temp_buffer->buffer_len == 0 || (buffer->nFlags & OMX_BUFFERFLAG_EOS))
-  {
-    DEBUG_PRINT_HIGH("\n Rxd i/p EOS, Notify Driver that EOS has been reached");
-    frameinfo.flags |= VDEC_BUFFERFLAG_EOS;
-    h264_scratch.nFilledLen = 0;
-    nal_count = 0;
-    look_ahead_nal = false;
-    frame_count = 0;
-    if (m_frame_parser.mutils)
-      m_frame_parser.mutils->initialize_frame_checking_environment();
-    m_frame_parser.flush();
-    h264_last_au_ts = LLONG_MAX;
-    h264_last_au_flags = 0;
-    memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
-    m_demux_entries = 0;
-  }
-  struct v4l2_buffer buf;
-  struct v4l2_plane plane;
-  memset( (void *)&buf, 0, sizeof(buf));
-  memset( (void *)&plane, 0, sizeof(plane));
-  int rc;
-  unsigned long  print_count;
-  if (temp_buffer->buffer_len == 0 || (buffer->nFlags & OMX_BUFFERFLAG_EOS))
-  {  buf.flags = V4L2_BUF_FLAG_EOS;
-  DEBUG_PRINT_HIGH("\n  INPUT EOS reached \n") ;
-  }
-	OMX_ERRORTYPE eRet = OMX_ErrorNone;
-	buf.index = nPortIndex;
-	buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-	buf.memory = V4L2_MEMORY_USERPTR;
-	plane.bytesused = temp_buffer->buffer_len;
-	plane.length = drv_ctx.ip_buf.buffer_size;
-	plane.m.userptr = (unsigned long)temp_buffer->bufferaddr -
-            (unsigned long)temp_buffer->offset;
-	plane.reserved[0] = temp_buffer->pmem_fd;
-	plane.reserved[1] = temp_buffer->offset;
-	plane.data_offset = 0;
-	buf.m.planes = &plane;
-	buf.length = 1;
-	if (frameinfo.timestamp >= LLONG_MAX) {
-          buf.flags |= V4L2_QCOM_BUF_TIMESTAMP_INVALID;
-        }
-	//assumption is that timestamp is in milliseconds
-	buf.timestamp.tv_sec = frameinfo.timestamp / 1000000;
-	buf.timestamp.tv_usec = (frameinfo.timestamp % 1000000);
-	buf.flags |= (buffer->nFlags & OMX_BUFFERFLAG_CODECCONFIG) ? V4L2_QCOM_BUF_FLAG_CODECCONFIG: 0;
-	buf.flags |= (buffer->nFlags & OMX_BUFFERFLAG_DECODEONLY) ? V4L2_QCOM_BUF_FLAG_DECODEONLY: 0;
+    if (temp_buffer->buffer_len == 0 || (buffer->nFlags & OMX_BUFFERFLAG_EOS)) {
+        DEBUG_PRINT_HIGH("\n Rxd i/p EOS, Notify Driver that EOS has been reached");
+        frameinfo.flags |= VDEC_BUFFERFLAG_EOS;
+        h264_scratch.nFilledLen = 0;
+        nal_count = 0;
+        look_ahead_nal = false;
+        frame_count = 0;
+        if (m_frame_parser.mutils)
+            m_frame_parser.mutils->initialize_frame_checking_environment();
+        m_frame_parser.flush();
+        h264_last_au_ts = LLONG_MAX;
+        h264_last_au_flags = 0;
+        memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
+        m_demux_entries = 0;
+    }
+    struct v4l2_buffer buf;
+    struct v4l2_plane plane;
+    memset( (void *)&buf, 0, sizeof(buf));
+    memset( (void *)&plane, 0, sizeof(plane));
+    int rc;
+    unsigned long  print_count;
+    if (temp_buffer->buffer_len == 0 || (buffer->nFlags & OMX_BUFFERFLAG_EOS)) {
+        buf.flags = V4L2_BUF_FLAG_EOS;
+        DEBUG_PRINT_HIGH("\n  INPUT EOS reached \n") ;
+    }
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    buf.index = nPortIndex;
+    buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+    buf.memory = V4L2_MEMORY_USERPTR;
+    plane.bytesused = temp_buffer->buffer_len;
+    plane.length = drv_ctx.ip_buf.buffer_size;
+    plane.m.userptr = (unsigned long)temp_buffer->bufferaddr -
+        (unsigned long)temp_buffer->offset;
+    plane.reserved[0] = temp_buffer->pmem_fd;
+    plane.reserved[1] = temp_buffer->offset;
+    plane.data_offset = 0;
+    buf.m.planes = &plane;
+    buf.length = 1;
+    if (frameinfo.timestamp >= LLONG_MAX) {
+        buf.flags |= V4L2_QCOM_BUF_TIMESTAMP_INVALID;
+    }
+    //assumption is that timestamp is in milliseconds
+    buf.timestamp.tv_sec = frameinfo.timestamp / 1000000;
+    buf.timestamp.tv_usec = (frameinfo.timestamp % 1000000);
+    buf.flags |= (buffer->nFlags & OMX_BUFFERFLAG_CODECCONFIG) ? V4L2_QCOM_BUF_FLAG_CODECCONFIG: 0;
+    buf.flags |= (buffer->nFlags & OMX_BUFFERFLAG_DECODEONLY) ? V4L2_QCOM_BUF_FLAG_DECODEONLY: 0;
 
-	rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_QBUF, &buf);
-	if(rc)
-	{
-		DEBUG_PRINT_ERROR("Failed to qbuf Input buffer to driver\n");
-		return OMX_ErrorHardware;
-	}
-  if(!streaming[OUTPUT_PORT])
-  {
-	enum v4l2_buf_type buf_type;
-	int ret,r;
+    rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_QBUF, &buf);
+    if (rc) {
+        DEBUG_PRINT_ERROR("Failed to qbuf Input buffer to driver\n");
+        return OMX_ErrorHardware;
+    }
+    if (!streaming[OUTPUT_PORT]) {
+        enum v4l2_buf_type buf_type;
+        int ret,r;
 
-	buf_type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+        buf_type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
         DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Executing\n");
-	ret=ioctl(drv_ctx.video_driver_fd, VIDIOC_STREAMON,&buf_type);
-	if(!ret) {
-		DEBUG_PRINT_HIGH("Streamon on OUTPUT Plane was successful \n");
-		streaming[OUTPUT_PORT] = true;
-	} else{
-		DEBUG_PRINT_ERROR(" \n Failed to call streamon on OUTPUT \n");
-		DEBUG_PRINT_LOW("If Stream on failed no buffer should be queued");
-		post_event ((unsigned int)buffer,VDEC_S_SUCCESS,
-				OMX_COMPONENT_GENERATE_EBD);
-		return OMX_ErrorBadParameter;
-	}
-}
-  DEBUG_PRINT_LOW("[ETBP] pBuf(%p) nTS(%lld) Sz(%d)",
-    frameinfo.bufferaddr, frameinfo.timestamp, frameinfo.datalen);
-      time_stamp_dts.insert_timestamp(buffer);
+        ret=ioctl(drv_ctx.video_driver_fd, VIDIOC_STREAMON,&buf_type);
+        if (!ret) {
+            DEBUG_PRINT_HIGH("Streamon on OUTPUT Plane was successful \n");
+            streaming[OUTPUT_PORT] = true;
+        } else {
+            DEBUG_PRINT_ERROR(" \n Failed to call streamon on OUTPUT \n");
+            DEBUG_PRINT_LOW("If Stream on failed no buffer should be queued");
+            post_event ((unsigned int)buffer,VDEC_S_SUCCESS,
+                    OMX_COMPONENT_GENERATE_EBD);
+            return OMX_ErrorBadParameter;
+        }
+    }
+    DEBUG_PRINT_LOW("[ETBP] pBuf(%p) nTS(%lld) Sz(%d)",
+            frameinfo.bufferaddr, frameinfo.timestamp, frameinfo.datalen);
+    time_stamp_dts.insert_timestamp(buffer);
 
-  return ret;
+    return ret;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::FillThisBuffer
+   FUNCTION
+   omx_vdec::FillThisBuffer
 
-DESCRIPTION
-  IL client uses this method to release the frame buffer
-  after displaying them.
+   DESCRIPTION
+   IL client uses this method to release the frame buffer
+   after displaying them.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::fill_this_buffer(OMX_IN OMX_HANDLETYPE  hComp,
-                                          OMX_IN OMX_BUFFERHEADERTYPE* buffer)
+        OMX_IN OMX_BUFFERHEADERTYPE* buffer)
 {
 
-  if(m_state == OMX_StateInvalid)
-  {
-      DEBUG_PRINT_ERROR("FTB in Invalid State\n");
-      return OMX_ErrorInvalidState;
-  }
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("FTB in Invalid State\n");
+        return OMX_ErrorInvalidState;
+    }
 
-  if (!m_out_bEnabled)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:FTB incorrect state operation, output port is disabled.");
-    return OMX_ErrorIncorrectStateOperation;
-  }
+    if (!m_out_bEnabled) {
+        DEBUG_PRINT_ERROR("\nERROR:FTB incorrect state operation, output port is disabled.");
+        return OMX_ErrorIncorrectStateOperation;
+    }
 
-  if (buffer == NULL ||
-      ((buffer - client_buffers.get_il_buf_hdr()) >= drv_ctx.op_buf.actualcount))
-  {
-    return OMX_ErrorBadParameter;
-  }
+    if (buffer == NULL ||
+            ((buffer - client_buffers.get_il_buf_hdr()) >= drv_ctx.op_buf.actualcount)) {
+        return OMX_ErrorBadParameter;
+    }
 
-  if (buffer->nOutputPortIndex != OMX_CORE_OUTPUT_PORT_INDEX)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:FTB invalid port in header %lu", buffer->nOutputPortIndex);
-    return OMX_ErrorBadPortIndex;
-  }
+    if (buffer->nOutputPortIndex != OMX_CORE_OUTPUT_PORT_INDEX) {
+        DEBUG_PRINT_ERROR("\nERROR:FTB invalid port in header %lu", buffer->nOutputPortIndex);
+        return OMX_ErrorBadPortIndex;
+    }
 
-  DEBUG_PRINT_LOW("[FTB] bufhdr = %p, bufhdr->pBuffer = %p", buffer, buffer->pBuffer);
-  post_event((unsigned) hComp, (unsigned)buffer, m_fill_output_msg);
-  return OMX_ErrorNone;
+    DEBUG_PRINT_LOW("[FTB] bufhdr = %p, bufhdr->pBuffer = %p", buffer, buffer->pBuffer);
+    post_event((unsigned) hComp, (unsigned)buffer, m_fill_output_msg);
+    return OMX_ErrorNone;
 }
 /* ======================================================================
-FUNCTION
-  omx_vdec::fill_this_buffer_proxy
+   FUNCTION
+   omx_vdec::fill_this_buffer_proxy
 
-DESCRIPTION
-  IL client uses this method to release the frame buffer
-  after displaying them.
+   DESCRIPTION
+   IL client uses this method to release the frame buffer
+   after displaying them.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::fill_this_buffer_proxy(
-                         OMX_IN OMX_HANDLETYPE        hComp,
-                         OMX_IN OMX_BUFFERHEADERTYPE* bufferAdd)
+        OMX_IN OMX_HANDLETYPE        hComp,
+        OMX_IN OMX_BUFFERHEADERTYPE* bufferAdd)
 {
-  OMX_ERRORTYPE nRet = OMX_ErrorNone;
-  OMX_BUFFERHEADERTYPE *buffer = bufferAdd;
-  unsigned nPortIndex = 0;
-  struct vdec_fillbuffer_cmd fillbuffer;
-  struct vdec_bufferpayload     *ptr_outputbuffer = NULL;
-  struct vdec_output_frameinfo  *ptr_respbuffer = NULL;
+    OMX_ERRORTYPE nRet = OMX_ErrorNone;
+    OMX_BUFFERHEADERTYPE *buffer = bufferAdd;
+    unsigned nPortIndex = 0;
+    struct vdec_fillbuffer_cmd fillbuffer;
+    struct vdec_bufferpayload     *ptr_outputbuffer = NULL;
+    struct vdec_output_frameinfo  *ptr_respbuffer = NULL;
 
-  nPortIndex = buffer-((OMX_BUFFERHEADERTYPE *)client_buffers.get_il_buf_hdr());
+    nPortIndex = buffer-((OMX_BUFFERHEADERTYPE *)client_buffers.get_il_buf_hdr());
 
-  if (bufferAdd == NULL || nPortIndex > drv_ctx.op_buf.actualcount)
-    return OMX_ErrorBadParameter;
+    if (bufferAdd == NULL || nPortIndex > drv_ctx.op_buf.actualcount)
+        return OMX_ErrorBadParameter;
 
-  DEBUG_PRINT_LOW("\n FTBProxy: bufhdr = %p, bufhdr->pBuffer = %p",
-      bufferAdd, bufferAdd->pBuffer);
-  /*Return back the output buffer to client*/
-  if(m_out_bEnabled != OMX_TRUE || output_flush_progress == true)
-  {
-    DEBUG_PRINT_LOW("\n Output Buffers return flush/disable condition");
-    buffer->nFilledLen = 0;
-    m_cb.FillBufferDone (hComp,m_app_data,buffer);
-    return OMX_ErrorNone;
-  }
-  pending_output_buffers++;
-  buffer = client_buffers.get_dr_buf_hdr(bufferAdd);
-  ptr_respbuffer = (struct vdec_output_frameinfo*)buffer->pOutputPortPrivate;
-  if (ptr_respbuffer)
-  {
-    ptr_outputbuffer =  (struct vdec_bufferpayload*)ptr_respbuffer->client_data;
-  }
+    DEBUG_PRINT_LOW("\n FTBProxy: bufhdr = %p, bufhdr->pBuffer = %p",
+            bufferAdd, bufferAdd->pBuffer);
+    /*Return back the output buffer to client*/
+    if (m_out_bEnabled != OMX_TRUE || output_flush_progress == true) {
+        DEBUG_PRINT_LOW("\n Output Buffers return flush/disable condition");
+        buffer->nFilledLen = 0;
+        m_cb.FillBufferDone (hComp,m_app_data,buffer);
+        return OMX_ErrorNone;
+    }
+    pending_output_buffers++;
+    buffer = client_buffers.get_dr_buf_hdr(bufferAdd);
+    ptr_respbuffer = (struct vdec_output_frameinfo*)buffer->pOutputPortPrivate;
+    if (ptr_respbuffer) {
+        ptr_outputbuffer =  (struct vdec_bufferpayload*)ptr_respbuffer->client_data;
+    }
 
-  if (ptr_respbuffer == NULL || ptr_outputbuffer == NULL)
-  {
-      DEBUG_PRINT_ERROR("resp buffer or outputbuffer is NULL");
-      buffer->nFilledLen = 0;
-      m_cb.FillBufferDone (hComp,m_app_data,buffer);
-      pending_output_buffers--;
-      return OMX_ErrorBadParameter;
-  }
+    if (ptr_respbuffer == NULL || ptr_outputbuffer == NULL) {
+        DEBUG_PRINT_ERROR("resp buffer or outputbuffer is NULL");
+        buffer->nFilledLen = 0;
+        m_cb.FillBufferDone (hComp,m_app_data,buffer);
+        pending_output_buffers--;
+        return OMX_ErrorBadParameter;
+    }
 
- /* memcpy (&fillbuffer.buffer,ptr_outputbuffer,
-          sizeof(struct vdec_bufferpayload));
-    fillbuffer.client_data = bufferAdd;*/
+    /* memcpy (&fillbuffer.buffer,ptr_outputbuffer,
+       sizeof(struct vdec_bufferpayload));
+       fillbuffer.client_data = bufferAdd;*/
 
 #ifdef _ANDROID_ICS_
-    if (m_enable_android_native_buffers)
-    {
+    if (m_enable_android_native_buffers) {
         // Acquire a write lock on this buffer.
         if (GENLOCK_NO_ERROR != genlock_lock_buffer(native_buffer[buffer - m_out_mem_ptr].nativehandle,
-                                                  GENLOCK_WRITE_LOCK, GENLOCK_MAX_TIMEOUT)) {
+                    GENLOCK_WRITE_LOCK, GENLOCK_MAX_TIMEOUT)) {
             DEBUG_PRINT_ERROR("Failed to acquire genlock");
             buffer->nFilledLen = 0;
             m_cb.FillBufferDone (hComp,m_app_data,buffer);
@@ -6220,147 +5524,139 @@
             return OMX_ErrorInsufficientResources;
         } else {
             native_buffer[buffer - m_out_mem_ptr].inuse = true;
-      }
+        }
     }
 #endif
-	int rc = 0;
-  struct v4l2_buffer buf;
-  struct v4l2_plane plane[VIDEO_MAX_PLANES];
-  memset( (void *)&buf, 0, sizeof(buf));
-  memset( (void *)plane, 0, (sizeof(struct v4l2_plane)*VIDEO_MAX_PLANES));
-  int extra_idx = 0;
+    int rc = 0;
+    struct v4l2_buffer buf;
+    struct v4l2_plane plane[VIDEO_MAX_PLANES];
+    memset( (void *)&buf, 0, sizeof(buf));
+    memset( (void *)plane, 0, (sizeof(struct v4l2_plane)*VIDEO_MAX_PLANES));
+    int extra_idx = 0;
 
-  buf.index = nPortIndex;
-  buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-  buf.memory = V4L2_MEMORY_USERPTR;
-  plane[0].bytesused = buffer->nFilledLen;
-  plane[0].length = drv_ctx.op_buf.buffer_size;
-  plane[0].m.userptr =
-      (unsigned long)drv_ctx.ptr_outputbuffer[nPortIndex].bufferaddr -
-      (unsigned long)drv_ctx.ptr_outputbuffer[nPortIndex].offset;
-  plane[0].reserved[0] = drv_ctx.ptr_outputbuffer[nPortIndex].pmem_fd;
-  plane[0].reserved[1] = drv_ctx.ptr_outputbuffer[nPortIndex].offset;
-  plane[0].data_offset = 0;
-  extra_idx = EXTRADATA_IDX(drv_ctx.num_planes);
-  if (extra_idx && (extra_idx < VIDEO_MAX_PLANES)) {
-    plane[extra_idx].bytesused = 0;
-    plane[extra_idx].length = drv_ctx.extradata_info.buffer_size;
-    plane[extra_idx].m.userptr = (long unsigned int) (drv_ctx.extradata_info.uaddr + nPortIndex * drv_ctx.extradata_info.buffer_size);
+    buf.index = nPortIndex;
+    buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+    buf.memory = V4L2_MEMORY_USERPTR;
+    plane[0].bytesused = buffer->nFilledLen;
+    plane[0].length = drv_ctx.op_buf.buffer_size;
+    plane[0].m.userptr =
+        (unsigned long)drv_ctx.ptr_outputbuffer[nPortIndex].bufferaddr -
+        (unsigned long)drv_ctx.ptr_outputbuffer[nPortIndex].offset;
+    plane[0].reserved[0] = drv_ctx.ptr_outputbuffer[nPortIndex].pmem_fd;
+    plane[0].reserved[1] = drv_ctx.ptr_outputbuffer[nPortIndex].offset;
+    plane[0].data_offset = 0;
+    extra_idx = EXTRADATA_IDX(drv_ctx.num_planes);
+    if (extra_idx && (extra_idx < VIDEO_MAX_PLANES)) {
+        plane[extra_idx].bytesused = 0;
+        plane[extra_idx].length = drv_ctx.extradata_info.buffer_size;
+        plane[extra_idx].m.userptr = (long unsigned int) (drv_ctx.extradata_info.uaddr + nPortIndex * drv_ctx.extradata_info.buffer_size);
 #ifdef USE_ION
-    plane[extra_idx].reserved[0] = drv_ctx.extradata_info.ion.fd_ion_data.fd;
+        plane[extra_idx].reserved[0] = drv_ctx.extradata_info.ion.fd_ion_data.fd;
 #endif
-    plane[extra_idx].reserved[1] = nPortIndex * drv_ctx.extradata_info.buffer_size;
-    plane[extra_idx].data_offset = 0;
-  } else if (extra_idx >= VIDEO_MAX_PLANES) {
-    DEBUG_PRINT_ERROR("Extradata index higher than expected: %d\n", extra_idx);
-    return OMX_ErrorBadParameter;
-  }
-  buf.m.planes = plane;
-  buf.length = drv_ctx.num_planes;
-  rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_QBUF, &buf);
-  if (rc) {
-    /*TODO: How to handle this case */
-    DEBUG_PRINT_ERROR("Failed to qbuf to driver");
-  }
-//#ifdef _ANDROID_ICS_
-  //  if (m_enable_android_native_buffers)
-  //  {
-        // Unlock the buffer
-   //     if (GENLOCK_NO_ERROR != genlock_unlock_buffer(native_buffer[buffer - m_out_mem_ptr].nativehandle)) {
+        plane[extra_idx].reserved[1] = nPortIndex * drv_ctx.extradata_info.buffer_size;
+        plane[extra_idx].data_offset = 0;
+    } else if (extra_idx >= VIDEO_MAX_PLANES) {
+        DEBUG_PRINT_ERROR("Extradata index higher than expected: %d\n", extra_idx);
+        return OMX_ErrorBadParameter;
+    }
+    buf.m.planes = plane;
+    buf.length = drv_ctx.num_planes;
+    rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_QBUF, &buf);
+    if (rc) {
+        /*TODO: How to handle this case */
+        DEBUG_PRINT_ERROR("Failed to qbuf to driver");
+    }
+    //#ifdef _ANDROID_ICS_
+    //  if (m_enable_android_native_buffers)
+    //  {
+    // Unlock the buffer
+    //     if (GENLOCK_NO_ERROR != genlock_unlock_buffer(native_buffer[buffer - m_out_mem_ptr].nativehandle)) {
     //        DEBUG_PRINT_ERROR("Releasing genlock failed");
     //        return OMX_ErrorInsufficientResources;
     ///    } else {
-     //       native_buffer[buffer - m_out_mem_ptr].inuse = false;
-      //  }
-   // }
-//#endif
+    //       native_buffer[buffer - m_out_mem_ptr].inuse = false;
+    //  }
+    // }
+    //#endif
     //m_cb.FillBufferDone (hComp,m_app_data,buffer);
-   // pending_output_buffers--;
-   // return OMX_ErrorBadParameter;
-  //}
-  return OMX_ErrorNone;
+    // pending_output_buffers--;
+    // return OMX_ErrorBadParameter;
+    //}
+return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::SetCallbacks
+   FUNCTION
+   omx_vdec::SetCallbacks
 
-DESCRIPTION
-  Set the callbacks.
+   DESCRIPTION
+   Set the callbacks.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  OMX Error None if everything successful.
+   RETURN VALUE
+   OMX Error None if everything successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::set_callbacks(OMX_IN OMX_HANDLETYPE        hComp,
-                                           OMX_IN OMX_CALLBACKTYPE* callbacks,
-                                           OMX_IN OMX_PTR             appData)
+        OMX_IN OMX_CALLBACKTYPE* callbacks,
+        OMX_IN OMX_PTR             appData)
 {
 
-  m_cb       = *callbacks;
-  DEBUG_PRINT_LOW("\n Callbacks Set %p %p %p",m_cb.EmptyBufferDone,\
-               m_cb.EventHandler,m_cb.FillBufferDone);
-  m_app_data =    appData;
-  return OMX_ErrorNotImplemented;
+    m_cb       = *callbacks;
+    DEBUG_PRINT_LOW("\n Callbacks Set %p %p %p",m_cb.EmptyBufferDone,\
+            m_cb.EventHandler,m_cb.FillBufferDone);
+    m_app_data =    appData;
+    return OMX_ErrorNotImplemented;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::ComponentDeInit
+   FUNCTION
+   omx_vdec::ComponentDeInit
 
-DESCRIPTION
-  Destroys the component and release memory allocated to the heap.
+   DESCRIPTION
+   Destroys the component and release memory allocated to the heap.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if everything successful.
+   RETURN VALUE
+   OMX Error None if everything successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::component_deinit(OMX_IN OMX_HANDLETYPE hComp)
 {
 #ifdef _ANDROID_
-    if(iDivXDrmDecrypt)
-    {
+    if (iDivXDrmDecrypt) {
         delete iDivXDrmDecrypt;
         iDivXDrmDecrypt=NULL;
     }
 #endif //_ANDROID_
 
     unsigned i = 0;
-    if (OMX_StateLoaded != m_state)
-    {
+    if (OMX_StateLoaded != m_state) {
         DEBUG_PRINT_ERROR("WARNING:Rxd DeInit,OMX not in LOADED state %d\n",\
-                          m_state);
+                m_state);
         DEBUG_PRINT_ERROR("\nPlayback Ended - FAILED");
-    }
-    else
-    {
-      DEBUG_PRINT_HIGH("\n Playback Ended - PASSED");
+    } else {
+        DEBUG_PRINT_HIGH("\n Playback Ended - PASSED");
     }
 
     /*Check if the output buffers have to be cleaned up*/
-    if(m_out_mem_ptr)
-    {
+    if (m_out_mem_ptr) {
         DEBUG_PRINT_LOW("Freeing the Output Memory\n");
-        for (i = 0; i < drv_ctx.op_buf.actualcount; i++ )
-        {
-          free_output_buffer (&m_out_mem_ptr[i]);
+        for (i = 0; i < drv_ctx.op_buf.actualcount; i++ ) {
+            free_output_buffer (&m_out_mem_ptr[i]);
 #ifdef _ANDROID_ICS_
-        if (m_enable_android_native_buffers)
-        {
-          if (native_buffer[i].inuse)
-          {
-            if (GENLOCK_NO_ERROR != genlock_unlock_buffer(native_buffer[i].nativehandle)) {
-                DEBUG_PRINT_ERROR("Unlocking genlock failed");
+            if (m_enable_android_native_buffers) {
+                if (native_buffer[i].inuse) {
+                    if (GENLOCK_NO_ERROR != genlock_unlock_buffer(native_buffer[i].nativehandle)) {
+                        DEBUG_PRINT_ERROR("Unlocking genlock failed");
+                    }
+                    native_buffer[i].inuse = false;
+                }
             }
-            native_buffer[i].inuse = false;
-          }
-        }
 #endif
         }
 #ifdef _ANDROID_ICS_
@@ -6369,38 +5665,32 @@
     }
 
     /*Check if the input buffers have to be cleaned up*/
-    if(m_inp_mem_ptr || m_inp_heap_ptr)
-    {
+    if (m_inp_mem_ptr || m_inp_heap_ptr) {
         DEBUG_PRINT_LOW("Freeing the Input Memory\n");
-        for (i = 0; i<drv_ctx.ip_buf.actualcount; i++ )
-        {
-          if (m_inp_mem_ptr)
-            free_input_buffer (i,&m_inp_mem_ptr[i]);
-          else
-            free_input_buffer (i,NULL);
+        for (i = 0; i<drv_ctx.ip_buf.actualcount; i++ ) {
+            if (m_inp_mem_ptr)
+                free_input_buffer (i,&m_inp_mem_ptr[i]);
+            else
+                free_input_buffer (i,NULL);
         }
     }
     free_input_buffer_header();
     free_output_buffer_header();
-    if(h264_scratch.pBuffer)
-    {
+    if (h264_scratch.pBuffer) {
         free(h264_scratch.pBuffer);
         h264_scratch.pBuffer = NULL;
     }
 
-    if (h264_parser)
-    {
+    if (h264_parser) {
         delete h264_parser;
-	h264_parser = NULL;
+        h264_parser = NULL;
     }
 
-    if(m_platform_list)
-    {
+    if (m_platform_list) {
         free(m_platform_list);
         m_platform_list = NULL;
     }
-    if(m_vendor_config.pData)
-    {
+    if (m_vendor_config.pData) {
         free(m_vendor_config.pData);
         m_vendor_config.pData = NULL;
     }
@@ -6413,17 +5703,16 @@
     m_cmd_q.m_read = m_cmd_q.m_write =0;
     m_etb_q.m_read = m_etb_q.m_write =0;
 #ifdef _ANDROID_
-    if (m_debug_timestamp)
-    {
-      m_timestamp_list.reset_ts_list();
+    if (m_debug_timestamp) {
+        m_timestamp_list.reset_ts_list();
     }
 #endif
 
     DEBUG_PRINT_LOW("\n Calling VDEC_IOCTL_STOP_NEXT_MSG");
     //(void)ioctl(drv_ctx.video_driver_fd, VDEC_IOCTL_STOP_NEXT_MSG,
-       // NULL);
+    // NULL);
     DEBUG_PRINT_HIGH("\n Close the driver instance");
-   
+
 #ifdef INPUT_BUFFER_LOG
     if (inputBufferFile1)
         fclose (inputBufferFile1);
@@ -6436,54 +5725,54 @@
     if (outputExtradataFile)
         fclose (outputExtradataFile);
 #endif
-  DEBUG_PRINT_HIGH("\n omx_vdec::component_deinit() complete");
-  return OMX_ErrorNone;
+    DEBUG_PRINT_HIGH("\n omx_vdec::component_deinit() complete");
+    return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::UseEGLImage
+   FUNCTION
+   omx_vdec::UseEGLImage
 
-DESCRIPTION
-  OMX Use EGL Image method implementation <TBD>.
+   DESCRIPTION
+   OMX Use EGL Image method implementation <TBD>.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  Not Implemented error.
+   RETURN VALUE
+   Not Implemented error.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::use_EGL_image(OMX_IN OMX_HANDLETYPE                hComp,
-                                          OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                                          OMX_IN OMX_U32                        port,
-                                          OMX_IN OMX_PTR                     appData,
-                                          OMX_IN void*                      eglImage)
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                        port,
+        OMX_IN OMX_PTR                     appData,
+        OMX_IN void*                      eglImage)
 {
-  OMX_QCOM_PLATFORM_PRIVATE_LIST pmem_list;
-  OMX_QCOM_PLATFORM_PRIVATE_ENTRY pmem_entry;
-  OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO pmem_info;
+    OMX_QCOM_PLATFORM_PRIVATE_LIST pmem_list;
+    OMX_QCOM_PLATFORM_PRIVATE_ENTRY pmem_entry;
+    OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO pmem_info;
 
 #ifdef USE_EGL_IMAGE_GPU
-   PFNEGLQUERYIMAGEQUALCOMMPROC egl_queryfunc;
-   EGLint fd = -1, offset = 0,pmemPtr = 0;
+    PFNEGLQUERYIMAGEQUALCOMMPROC egl_queryfunc;
+    EGLint fd = -1, offset = 0,pmemPtr = 0;
 #else
-   int fd = -1, offset = 0;
+    int fd = -1, offset = 0;
 #endif
-   DEBUG_PRINT_HIGH("\nuse EGL image support for decoder");
-   if (!bufferHdr || !eglImage|| port != OMX_CORE_OUTPUT_PORT_INDEX) {
-     DEBUG_PRINT_ERROR("\n ");
-   }
+    DEBUG_PRINT_HIGH("\nuse EGL image support for decoder");
+    if (!bufferHdr || !eglImage|| port != OMX_CORE_OUTPUT_PORT_INDEX) {
+        DEBUG_PRINT_ERROR("\n ");
+    }
 #ifdef USE_EGL_IMAGE_GPU
-   if(m_display_id == NULL) {
+    if (m_display_id == NULL) {
         DEBUG_PRINT_ERROR("Display ID is not set by IL client \n");
         return OMX_ErrorInsufficientResources;
-   }
-   egl_queryfunc = (PFNEGLQUERYIMAGEQUALCOMMPROC)
-                    eglGetProcAddress("eglQueryImageKHR");
-   egl_queryfunc(m_display_id, eglImage, EGL_BUFFER_HANDLE_QCOM,&fd);
-   egl_queryfunc(m_display_id, eglImage, EGL_BUFFER_OFFSET_QCOM,&offset);
-   egl_queryfunc(m_display_id, eglImage, EGL_BITMAP_POINTER_KHR,&pmemPtr);
+    }
+    egl_queryfunc = (PFNEGLQUERYIMAGEQUALCOMMPROC)
+        eglGetProcAddress("eglQueryImageKHR");
+    egl_queryfunc(m_display_id, eglImage, EGL_BUFFER_HANDLE_QCOM,&fd);
+    egl_queryfunc(m_display_id, eglImage, EGL_BUFFER_OFFSET_QCOM,&offset);
+    egl_queryfunc(m_display_id, eglImage, EGL_BITMAP_POINTER_KHR,&pmemPtr);
 #else //with OMX test app
     struct temp_egl {
         int pmem_fd;
@@ -6492,8 +5781,7 @@
     struct temp_egl *temp_egl_id = NULL;
     void * pmemPtr = (void *) eglImage;
     temp_egl_id = (struct temp_egl *)eglImage;
-    if (temp_egl_id != NULL)
-    {
+    if (temp_egl_id != NULL) {
         fd = temp_egl_id->pmem_fd;
         offset = temp_egl_id->offset;
     }
@@ -6501,650 +5789,559 @@
     if (fd < 0) {
         DEBUG_PRINT_ERROR("Improper pmem fd by EGL client %d  \n",fd);
         return OMX_ErrorInsufficientResources;
-   }
-   pmem_info.pmem_fd = (OMX_U32) fd;
-   pmem_info.offset = (OMX_U32) offset;
-   pmem_entry.entry = (void *) &pmem_info;
-   pmem_entry.type = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
-   pmem_list.entryList = &pmem_entry;
-   pmem_list.nEntries = 1;
-   ouput_egl_buffers = true;
-   if (OMX_ErrorNone != use_buffer(hComp,bufferHdr, port,
-       (void *)&pmem_list, drv_ctx.op_buf.buffer_size,
-        (OMX_U8 *)pmemPtr)) {
-     DEBUG_PRINT_ERROR("use buffer call failed for egl image\n");
-     return OMX_ErrorInsufficientResources;
-   }
-   return OMX_ErrorNone;
+    }
+    pmem_info.pmem_fd = (OMX_U32) fd;
+    pmem_info.offset = (OMX_U32) offset;
+    pmem_entry.entry = (void *) &pmem_info;
+    pmem_entry.type = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
+    pmem_list.entryList = &pmem_entry;
+    pmem_list.nEntries = 1;
+    ouput_egl_buffers = true;
+    if (OMX_ErrorNone != use_buffer(hComp,bufferHdr, port,
+                (void *)&pmem_list, drv_ctx.op_buf.buffer_size,
+                (OMX_U8 *)pmemPtr)) {
+        DEBUG_PRINT_ERROR("use buffer call failed for egl image\n");
+        return OMX_ErrorInsufficientResources;
+    }
+    return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::ComponentRoleEnum
+   FUNCTION
+   omx_vdec::ComponentRoleEnum
 
-DESCRIPTION
-  OMX Component Role Enum method implementation.
+   DESCRIPTION
+   OMX Component Role Enum method implementation.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if everything is successful.
-========================================================================== */
+   RETURN VALUE
+   OMX Error None if everything is successful.
+   ========================================================================== */
 OMX_ERRORTYPE  omx_vdec::component_role_enum(OMX_IN OMX_HANDLETYPE hComp,
-                                                OMX_OUT OMX_U8*        role,
-                                                OMX_IN OMX_U32        index)
+        OMX_OUT OMX_U8*        role,
+        OMX_IN OMX_U32        index)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
 
-  if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+    if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            eRet = OMX_ErrorNoMore;
+        }
     }
-    else
-    {
-      eRet = OMX_ErrorNoMore;
+    if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            eRet = OMX_ErrorNoMore;
+        }
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.h263",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            DEBUG_PRINT_LOW("\n No more roles \n");
+            eRet = OMX_ErrorNoMore;
+        }
     }
-  }
-  if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.mpeg2",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
-    }
-    else
-    {
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.h263",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("\n No more roles \n");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
 
-  else if((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",OMX_MAX_STRINGNAME_SIZE)) ||
-          (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx311",OMX_MAX_STRINGNAME_SIZE))
-          )
+    else if ((!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx",OMX_MAX_STRINGNAME_SIZE)) ||
+            (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.divx311",OMX_MAX_STRINGNAME_SIZE))
+        )
 
-  {
-    if((0 == index) && role)
     {
-      strlcpy((char *)role, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.divx",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            DEBUG_PRINT_LOW("\n No more roles \n");
+            eRet = OMX_ErrorNoMore;
+        }
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.avc",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            DEBUG_PRINT_LOW("\n No more roles \n");
+            eRet = OMX_ErrorNoMore;
+        }
+    } else if ( (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1",OMX_MAX_STRINGNAME_SIZE)) ||
+            (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.wmv",OMX_MAX_STRINGNAME_SIZE))
+          ) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            DEBUG_PRINT_LOW("\n No more roles \n");
+            eRet = OMX_ErrorNoMore;
+        }
+    } else if (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vp8",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.vp8",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            DEBUG_PRINT_LOW("\n No more roles \n");
+            eRet = OMX_ErrorNoMore;
+        }
+    } else {
+        DEBUG_PRINT_ERROR("\nERROR:Querying Role on Unknown Component\n");
+        eRet = OMX_ErrorInvalidComponentName;
     }
-    else
-    {
-      DEBUG_PRINT_LOW("\n No more roles \n");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.avc",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("\n No more roles \n");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else if( (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vc1",OMX_MAX_STRINGNAME_SIZE)) ||
-           (!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.wmv",OMX_MAX_STRINGNAME_SIZE))
-           )
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("\n No more roles \n");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else if(!strncmp(drv_ctx.kind, "OMX.qcom.video.decoder.vp8",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.vp8",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("\n No more roles \n");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("\nERROR:Querying Role on Unknown Component\n");
-    eRet = OMX_ErrorInvalidComponentName;
-  }
-  return eRet;
+    return eRet;
 }
 
 
 
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::AllocateDone
+   FUNCTION
+   omx_vdec::AllocateDone
 
-DESCRIPTION
-  Checks if entire buffer pool is allocated by IL Client or not.
-  Need this to move to IDLE state.
+   DESCRIPTION
+   Checks if entire buffer pool is allocated by IL Client or not.
+   Need this to move to IDLE state.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false.
+   RETURN VALUE
+   true/false.
 
-========================================================================== */
+   ========================================================================== */
 bool omx_vdec::allocate_done(void)
 {
-  bool bRet = false;
-  bool bRet_In = false;
-  bool bRet_Out = false;
+    bool bRet = false;
+    bool bRet_In = false;
+    bool bRet_Out = false;
 
-  bRet_In = allocate_input_done();
-  bRet_Out = allocate_output_done();
+    bRet_In = allocate_input_done();
+    bRet_Out = allocate_output_done();
 
-  if(bRet_In && bRet_Out)
-  {
-      bRet = true;
-  }
-
-  return bRet;
-}
-/* ======================================================================
-FUNCTION
-  omx_vdec::AllocateInputDone
-
-DESCRIPTION
-  Checks if I/P buffer pool is allocated by IL Client or not.
-
-PARAMETERS
-  None.
-
-RETURN VALUE
-  true/false.
-
-========================================================================== */
-bool omx_vdec::allocate_input_done(void)
-{
-  bool bRet = false;
-  unsigned i=0;
-
-  if (m_inp_mem_ptr == NULL)
-  {
-      return bRet;
-  }
-  if(m_inp_mem_ptr )
-  {
-    for(;i<drv_ctx.ip_buf.actualcount;i++)
-    {
-      if(BITMASK_ABSENT(&m_inp_bm_count,i))
-      {
-        break;
-      }
-    }
-  }
-  if(i == drv_ctx.ip_buf.actualcount)
-  {
-    bRet = true;
-    DEBUG_PRINT_HIGH("Allocate done for all i/p buffers");
-  }
-  if(i==drv_ctx.ip_buf.actualcount && m_inp_bEnabled)
-  {
-     m_inp_bPopulated = OMX_TRUE;
-  }
-  return bRet;
-}
-/* ======================================================================
-FUNCTION
-  omx_vdec::AllocateOutputDone
-
-DESCRIPTION
-  Checks if entire O/P buffer pool is allocated by IL Client or not.
-
-PARAMETERS
-  None.
-
-RETURN VALUE
-  true/false.
-
-========================================================================== */
-bool omx_vdec::allocate_output_done(void)
-{
-  bool bRet = false;
-  unsigned j=0;
-
-  if (m_out_mem_ptr == NULL)
-  {
-      return bRet;
-  }
-
-  if (m_out_mem_ptr)
-  {
-    for(;j < drv_ctx.op_buf.actualcount;j++)
-    {
-      if(BITMASK_ABSENT(&m_out_bm_count,j))
-      {
-        break;
-      }
-    }
-  }
-
-  if(j == drv_ctx.op_buf.actualcount)
-  {
-    bRet = true;
-    DEBUG_PRINT_HIGH("Allocate done for all o/p buffers");
-    if(m_out_bEnabled)
-       m_out_bPopulated = OMX_TRUE;
-  }
-
-  return bRet;
-}
-
-/* ======================================================================
-FUNCTION
-  omx_vdec::ReleaseDone
-
-DESCRIPTION
-  Checks if IL client has released all the buffers.
-
-PARAMETERS
-  None.
-
-RETURN VALUE
-  true/false
-
-========================================================================== */
-bool omx_vdec::release_done(void)
-{
-  bool bRet = false;
-
-  if(release_input_done())
-  {
-    if(release_output_done())
-    {
+    if (bRet_In && bRet_Out) {
         bRet = true;
     }
-  }
-  return bRet;
+
+    return bRet;
+}
+/* ======================================================================
+   FUNCTION
+   omx_vdec::AllocateInputDone
+
+   DESCRIPTION
+   Checks if I/P buffer pool is allocated by IL Client or not.
+
+   PARAMETERS
+   None.
+
+   RETURN VALUE
+   true/false.
+
+   ========================================================================== */
+bool omx_vdec::allocate_input_done(void)
+{
+    bool bRet = false;
+    unsigned i=0;
+
+    if (m_inp_mem_ptr == NULL) {
+        return bRet;
+    }
+    if (m_inp_mem_ptr ) {
+        for (; i<drv_ctx.ip_buf.actualcount; i++) {
+            if (BITMASK_ABSENT(&m_inp_bm_count,i)) {
+                break;
+            }
+        }
+    }
+    if (i == drv_ctx.ip_buf.actualcount) {
+        bRet = true;
+        DEBUG_PRINT_HIGH("Allocate done for all i/p buffers");
+    }
+    if (i==drv_ctx.ip_buf.actualcount && m_inp_bEnabled) {
+        m_inp_bPopulated = OMX_TRUE;
+    }
+    return bRet;
+}
+/* ======================================================================
+   FUNCTION
+   omx_vdec::AllocateOutputDone
+
+   DESCRIPTION
+   Checks if entire O/P buffer pool is allocated by IL Client or not.
+
+   PARAMETERS
+   None.
+
+   RETURN VALUE
+   true/false.
+
+   ========================================================================== */
+bool omx_vdec::allocate_output_done(void)
+{
+    bool bRet = false;
+    unsigned j=0;
+
+    if (m_out_mem_ptr == NULL) {
+        return bRet;
+    }
+
+    if (m_out_mem_ptr) {
+        for (; j < drv_ctx.op_buf.actualcount; j++) {
+            if (BITMASK_ABSENT(&m_out_bm_count,j)) {
+                break;
+            }
+        }
+    }
+
+    if (j == drv_ctx.op_buf.actualcount) {
+        bRet = true;
+        DEBUG_PRINT_HIGH("Allocate done for all o/p buffers");
+        if (m_out_bEnabled)
+            m_out_bPopulated = OMX_TRUE;
+    }
+
+    return bRet;
+}
+
+/* ======================================================================
+   FUNCTION
+   omx_vdec::ReleaseDone
+
+   DESCRIPTION
+   Checks if IL client has released all the buffers.
+
+   PARAMETERS
+   None.
+
+   RETURN VALUE
+   true/false
+
+   ========================================================================== */
+bool omx_vdec::release_done(void)
+{
+    bool bRet = false;
+
+    if (release_input_done()) {
+        if (release_output_done()) {
+            bRet = true;
+        }
+    }
+    return bRet;
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_vdec::ReleaseOutputDone
+   FUNCTION
+   omx_vdec::ReleaseOutputDone
 
-DESCRIPTION
-  Checks if IL client has released all the buffers.
+   DESCRIPTION
+   Checks if IL client has released all the buffers.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 bool omx_vdec::release_output_done(void)
 {
-  bool bRet = false;
-  unsigned i=0,j=0;
+    bool bRet = false;
+    unsigned i=0,j=0;
 
-  DEBUG_PRINT_LOW("\n Value of m_out_mem_ptr %p",m_inp_mem_ptr);
-  if(m_out_mem_ptr)
-  {
-      for(;j < drv_ctx.op_buf.actualcount ; j++)
-      {
-        if(BITMASK_PRESENT(&m_out_bm_count,j))
-        {
-          break;
+    DEBUG_PRINT_LOW("\n Value of m_out_mem_ptr %p",m_inp_mem_ptr);
+    if (m_out_mem_ptr) {
+        for (; j < drv_ctx.op_buf.actualcount ; j++) {
+            if (BITMASK_PRESENT(&m_out_bm_count,j)) {
+                break;
+            }
         }
-      }
-    if(j == drv_ctx.op_buf.actualcount)
-    {
-      m_out_bm_count = 0;
-      bRet = true;
+        if (j == drv_ctx.op_buf.actualcount) {
+            m_out_bm_count = 0;
+            bRet = true;
+        }
+    } else {
+        m_out_bm_count = 0;
+        bRet = true;
     }
-  }
-  else
-  {
-    m_out_bm_count = 0;
-    bRet = true;
-  }
-  return bRet;
+    return bRet;
 }
 /* ======================================================================
-FUNCTION
-  omx_vdec::ReleaseInputDone
+   FUNCTION
+   omx_vdec::ReleaseInputDone
 
-DESCRIPTION
-  Checks if IL client has released all the buffers.
+   DESCRIPTION
+   Checks if IL client has released all the buffers.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 bool omx_vdec::release_input_done(void)
 {
-  bool bRet = false;
-  unsigned i=0,j=0;
+    bool bRet = false;
+    unsigned i=0,j=0;
 
-  DEBUG_PRINT_LOW("\n Value of m_inp_mem_ptr %p",m_inp_mem_ptr);
-  if(m_inp_mem_ptr)
-  {
-      for(;j<drv_ctx.ip_buf.actualcount;j++)
-      {
-        if( BITMASK_PRESENT(&m_inp_bm_count,j))
-        {
-          break;
+    DEBUG_PRINT_LOW("\n Value of m_inp_mem_ptr %p",m_inp_mem_ptr);
+    if (m_inp_mem_ptr) {
+        for (; j<drv_ctx.ip_buf.actualcount; j++) {
+            if ( BITMASK_PRESENT(&m_inp_bm_count,j)) {
+                break;
+            }
         }
-      }
-    if(j==drv_ctx.ip_buf.actualcount)
-    {
-      bRet = true;
+        if (j==drv_ctx.ip_buf.actualcount) {
+            bRet = true;
+        }
+    } else {
+        bRet = true;
     }
-  }
-  else
-  {
-    bRet = true;
-  }
-  return bRet;
+    return bRet;
 }
 
 OMX_ERRORTYPE omx_vdec::fill_buffer_done(OMX_HANDLETYPE hComp,
-                               OMX_BUFFERHEADERTYPE * buffer)
+        OMX_BUFFERHEADERTYPE * buffer)
 {
-  OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pPMEMInfo = NULL;
-  if (!buffer || (buffer - m_out_mem_ptr) >= drv_ctx.op_buf.actualcount)
-  {
-    DEBUG_PRINT_ERROR("\n [FBD] ERROR in ptr(%p)", buffer);
-    return OMX_ErrorBadParameter;
-  }
-  else if (output_flush_progress)
-  {
-    DEBUG_PRINT_LOW("FBD: Buffer (%p) flushed", buffer);
-    buffer->nFilledLen = 0;
-    buffer->nTimeStamp = 0;
-    buffer->nFlags &= ~OMX_BUFFERFLAG_EXTRADATA;
-    buffer->nFlags &= ~QOMX_VIDEO_BUFFERFLAG_EOSEQ;
-    buffer->nFlags &= ~OMX_BUFFERFLAG_DATACORRUPT;
-  }
-
-  if (m_debug_extradata)
-  {
-    if (buffer->nFlags & QOMX_VIDEO_BUFFERFLAG_EOSEQ)
-    {
-      DEBUG_PRINT_HIGH("\n");
-      DEBUG_PRINT_HIGH("***************************************************\n");
-      DEBUG_PRINT_HIGH("FillBufferDone: End Of Sequence Received\n");
-      DEBUG_PRINT_HIGH("***************************************************\n");
+    OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pPMEMInfo = NULL;
+    if (!buffer || (buffer - m_out_mem_ptr) >= drv_ctx.op_buf.actualcount) {
+        DEBUG_PRINT_ERROR("\n [FBD] ERROR in ptr(%p)", buffer);
+        return OMX_ErrorBadParameter;
+    } else if (output_flush_progress) {
+        DEBUG_PRINT_LOW("FBD: Buffer (%p) flushed", buffer);
+        buffer->nFilledLen = 0;
+        buffer->nTimeStamp = 0;
+        buffer->nFlags &= ~OMX_BUFFERFLAG_EXTRADATA;
+        buffer->nFlags &= ~QOMX_VIDEO_BUFFERFLAG_EOSEQ;
+        buffer->nFlags &= ~OMX_BUFFERFLAG_DATACORRUPT;
     }
 
-    if (buffer->nFlags & OMX_BUFFERFLAG_DATACORRUPT)
-    {
-      DEBUG_PRINT_HIGH("\n");
-      DEBUG_PRINT_HIGH("***************************************************\n");
-      DEBUG_PRINT_HIGH("FillBufferDone: OMX_BUFFERFLAG_DATACORRUPT Received\n");
-      DEBUG_PRINT_HIGH("***************************************************\n");
+    if (m_debug_extradata) {
+        if (buffer->nFlags & QOMX_VIDEO_BUFFERFLAG_EOSEQ) {
+            DEBUG_PRINT_HIGH("\n");
+            DEBUG_PRINT_HIGH("***************************************************\n");
+            DEBUG_PRINT_HIGH("FillBufferDone: End Of Sequence Received\n");
+            DEBUG_PRINT_HIGH("***************************************************\n");
+        }
+
+        if (buffer->nFlags & OMX_BUFFERFLAG_DATACORRUPT) {
+            DEBUG_PRINT_HIGH("\n");
+            DEBUG_PRINT_HIGH("***************************************************\n");
+            DEBUG_PRINT_HIGH("FillBufferDone: OMX_BUFFERFLAG_DATACORRUPT Received\n");
+            DEBUG_PRINT_HIGH("***************************************************\n");
+        }
     }
-  }
 
 
-  DEBUG_PRINT_LOW("\n fill_buffer_done: bufhdr = %p, bufhdr->pBuffer = %p",
-      buffer, buffer->pBuffer);
-  pending_output_buffers --;
-  
-  if (buffer->nFlags & OMX_BUFFERFLAG_EOS)
-  {
-    DEBUG_PRINT_HIGH("\n Output EOS has been reached");
-    if (!output_flush_progress)
-      post_event((unsigned)NULL, (unsigned)NULL,
-              OMX_COMPONENT_GENERATE_EOS_DONE);
+    DEBUG_PRINT_LOW("\n fill_buffer_done: bufhdr = %p, bufhdr->pBuffer = %p",
+            buffer, buffer->pBuffer);
+    pending_output_buffers --;
 
-    if (psource_frame)
-    {
-      m_cb.EmptyBufferDone(&m_cmp, m_app_data, psource_frame);
-      psource_frame = NULL;
+    if (buffer->nFlags & OMX_BUFFERFLAG_EOS) {
+        DEBUG_PRINT_HIGH("\n Output EOS has been reached");
+        if (!output_flush_progress)
+            post_event((unsigned)NULL, (unsigned)NULL,
+                    OMX_COMPONENT_GENERATE_EOS_DONE);
+
+        if (psource_frame) {
+            m_cb.EmptyBufferDone(&m_cmp, m_app_data, psource_frame);
+            psource_frame = NULL;
+        }
+        if (pdest_frame) {
+            pdest_frame->nFilledLen = 0;
+            m_input_free_q.insert_entry((unsigned) pdest_frame,(unsigned)NULL,
+                    (unsigned)NULL);
+            pdest_frame = NULL;
+        }
     }
-    if (pdest_frame)
-    {
-      pdest_frame->nFilledLen = 0;
-      m_input_free_q.insert_entry((unsigned) pdest_frame,(unsigned)NULL,
-              (unsigned)NULL);
-      pdest_frame = NULL;
-    }
-  }
 
-  DEBUG_PRINT_LOW("\n In fill Buffer done call address %p ",buffer);
+    DEBUG_PRINT_LOW("\n In fill Buffer done call address %p ",buffer);
 #ifdef OUTPUT_BUFFER_LOG
-  if (outputBufferFile1 && buffer->nFilledLen)
-  {
-	  int buf_index = buffer - m_out_mem_ptr;
-      int stride = drv_ctx.video_resolution.stride;
-      int scanlines = drv_ctx.video_resolution.scan_lines;
-      char *temp = (char *)drv_ctx.ptr_outputbuffer[buf_index].bufferaddr;
-	  unsigned i;
-	  int bytes_written = 0;
-	  for (i = 0; i < drv_ctx.video_resolution.frame_height; i++) {
-		  bytes_written = fwrite(temp, drv_ctx.video_resolution.frame_width, 1, outputBufferFile1);
-		  temp += stride;
-	  }
-	  temp = (char *)drv_ctx.ptr_outputbuffer[buf_index].bufferaddr + stride * scanlines;
-      int stride_c = stride;
-	  for(i = 0; i < drv_ctx.video_resolution.frame_height/2; i++) {
-		  bytes_written += fwrite(temp, drv_ctx.video_resolution.frame_width, 1, outputBufferFile1);
-		  temp += stride_c;
-	  }
-  }
+    if (outputBufferFile1 && buffer->nFilledLen) {
+        int buf_index = buffer - m_out_mem_ptr;
+        int stride = drv_ctx.video_resolution.stride;
+        int scanlines = drv_ctx.video_resolution.scan_lines;
+        char *temp = (char *)drv_ctx.ptr_outputbuffer[buf_index].bufferaddr;
+        unsigned i;
+        int bytes_written = 0;
+        for (i = 0; i < drv_ctx.video_resolution.frame_height; i++) {
+            bytes_written = fwrite(temp, drv_ctx.video_resolution.frame_width, 1, outputBufferFile1);
+            temp += stride;
+        }
+        temp = (char *)drv_ctx.ptr_outputbuffer[buf_index].bufferaddr + stride * scanlines;
+        int stride_c = stride;
+        for (i = 0; i < drv_ctx.video_resolution.frame_height/2; i++) {
+            bytes_written += fwrite(temp, drv_ctx.video_resolution.frame_width, 1, outputBufferFile1);
+            temp += stride_c;
+        }
+    }
 #endif
 
-  /* For use buffer we need to copy the data */
-  if (!output_flush_progress)
-  {
-    /* This is the error check for non-recoverable errros */
-    bool is_duplicate_ts_valid = true;
-    bool is_interlaced = (drv_ctx.interlace != VDEC_InterlaceFrameProgressive);
+    /* For use buffer we need to copy the data */
+    if (!output_flush_progress) {
+        /* This is the error check for non-recoverable errros */
+        bool is_duplicate_ts_valid = true;
+        bool is_interlaced = (drv_ctx.interlace != VDEC_InterlaceFrameProgressive);
 
-    if (output_capability == V4L2_PIX_FMT_MPEG4 ||
-      output_capability == V4L2_PIX_FMT_MPEG2 ||
-      output_capability == V4L2_PIX_FMT_DIVX ||
-      output_capability == V4L2_PIX_FMT_DIVX_311)
-      is_duplicate_ts_valid = false;
+        if (output_capability == V4L2_PIX_FMT_MPEG4 ||
+                output_capability == V4L2_PIX_FMT_MPEG2 ||
+                output_capability == V4L2_PIX_FMT_DIVX ||
+                output_capability == V4L2_PIX_FMT_DIVX_311)
+            is_duplicate_ts_valid = false;
 
-    if (output_capability == V4L2_PIX_FMT_H264 && is_interlaced) {
-      bool mbaff = (h264_parser)? (h264_parser->is_mbaff()): false;
-      if (mbaff) {
-        is_interlaced = false;
-      }
-    }
-
-    if (buffer->nFilledLen > 0) {
-      time_stamp_dts.get_next_timestamp(buffer,
-        is_interlaced && is_duplicate_ts_valid);
-        if (m_debug_timestamp)
-        {
-          {
-            OMX_TICKS expected_ts = 0;
-            m_timestamp_list.pop_min_ts(expected_ts);
-            if (is_interlaced && is_duplicate_ts_valid) {
-              m_timestamp_list.pop_min_ts(expected_ts);
+        if (output_capability == V4L2_PIX_FMT_H264 && is_interlaced) {
+            bool mbaff = (h264_parser)? (h264_parser->is_mbaff()): false;
+            if (mbaff) {
+                is_interlaced = false;
             }
-            DEBUG_PRINT_LOW("\n Current timestamp (%lld),Popped TIMESTAMP (%lld) from list",
-                           buffer->nTimeStamp, expected_ts);
+        }
 
-            if (buffer->nTimeStamp != expected_ts) {
-              DEBUG_PRINT_ERROR("\n ERROR in omx_vdec::async_message_process timestamp Check");
+        if (buffer->nFilledLen > 0) {
+            time_stamp_dts.get_next_timestamp(buffer,
+                    is_interlaced && is_duplicate_ts_valid);
+            if (m_debug_timestamp) {
+                {
+                    OMX_TICKS expected_ts = 0;
+                    m_timestamp_list.pop_min_ts(expected_ts);
+                    if (is_interlaced && is_duplicate_ts_valid) {
+                        m_timestamp_list.pop_min_ts(expected_ts);
+                    }
+                    DEBUG_PRINT_LOW("\n Current timestamp (%lld),Popped TIMESTAMP (%lld) from list",
+                            buffer->nTimeStamp, expected_ts);
+
+                    if (buffer->nTimeStamp != expected_ts) {
+                        DEBUG_PRINT_ERROR("\n ERROR in omx_vdec::async_message_process timestamp Check");
+                    }
+                }
             }
-          }
+        } else {
+            m_inp_err_count++;
+            time_stamp_dts.remove_time_stamp(
+                    buffer->nTimeStamp,
+                    is_interlaced && is_duplicate_ts_valid);
         }
-    } else {
-      m_inp_err_count++;
-      time_stamp_dts.remove_time_stamp(
-              buffer->nTimeStamp,
-                is_interlaced && is_duplicate_ts_valid);
+
+
     }
-
-
-  }
-  if (m_cb.FillBufferDone)
-  {
-    if (buffer->nFilledLen > 0)
-    {
-      handle_extradata(buffer);
-      if (client_extradata & OMX_TIMEINFO_EXTRADATA)
-        set_frame_rate(buffer->nTimeStamp);
-      else if (arbitrary_bytes)
-        adjust_timestamp(buffer->nTimeStamp);
-      if (perf_flag)
-      {
-        if (!proc_frms)
-        {
-          dec_time.stop();
-          latency = dec_time.processing_time_us() - latency;
-          DEBUG_PRINT_HIGH(">>> FBD Metrics: Latency(%.2f)mS", latency / 1e3);
-          dec_time.start();
-          fps_metrics.start();
-        }
-        proc_frms++;
-        if (buffer->nFlags & OMX_BUFFERFLAG_EOS)
-        {
-          OMX_U64 proc_time = 0;
-          fps_metrics.stop();
-          proc_time = fps_metrics.processing_time_us();
-          DEBUG_PRINT_HIGH(">>> FBD Metrics: proc_frms(%lu) proc_time(%.2f)S fps(%.2f)",
+    if (m_cb.FillBufferDone) {
+        if (buffer->nFilledLen > 0) {
+            handle_extradata(buffer);
+            if (client_extradata & OMX_TIMEINFO_EXTRADATA)
+                set_frame_rate(buffer->nTimeStamp);
+            else if (arbitrary_bytes)
+                adjust_timestamp(buffer->nTimeStamp);
+            if (perf_flag) {
+                if (!proc_frms) {
+                    dec_time.stop();
+                    latency = dec_time.processing_time_us() - latency;
+                    DEBUG_PRINT_HIGH(">>> FBD Metrics: Latency(%.2f)mS", latency / 1e3);
+                    dec_time.start();
+                    fps_metrics.start();
+                }
+                proc_frms++;
+                if (buffer->nFlags & OMX_BUFFERFLAG_EOS) {
+                    OMX_U64 proc_time = 0;
+                    fps_metrics.stop();
+                    proc_time = fps_metrics.processing_time_us();
+                    DEBUG_PRINT_HIGH(">>> FBD Metrics: proc_frms(%lu) proc_time(%.2f)S fps(%.2f)",
                             proc_frms, (float)proc_time / 1e6,
                             (float)(1e6 * proc_frms) / proc_time);
-          proc_frms = 0;
-        }
-      }
+                    proc_frms = 0;
+                }
+            }
 
 #ifdef OUTPUT_EXTRADATA_LOG
-  if (outputExtradataFile)
-  {
+            if (outputExtradataFile) {
 
-    OMX_OTHER_EXTRADATATYPE *p_extra = NULL;
-    p_extra = (OMX_OTHER_EXTRADATATYPE *)
-           ((unsigned)(buffer->pBuffer + buffer->nOffset +
-            buffer->nFilledLen + 3)&(~3));
-    while(p_extra &&
-          (OMX_U8*)p_extra < (buffer->pBuffer + buffer->nAllocLen) )
-    {
-      DEBUG_PRINT_LOW("\nWRITING extradata, size=%d,type=%d",p_extra->nSize, p_extra->eType);
-      fwrite (p_extra,1,p_extra->nSize,outputExtradataFile);
-      if (p_extra->eType == OMX_ExtraDataNone)
-      {
-        break;
-      }
-      p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
-    }
-  }
+                OMX_OTHER_EXTRADATATYPE *p_extra = NULL;
+                p_extra = (OMX_OTHER_EXTRADATATYPE *)
+                    ((unsigned)(buffer->pBuffer + buffer->nOffset +
+                        buffer->nFilledLen + 3)&(~3));
+                while (p_extra &&
+                        (OMX_U8*)p_extra < (buffer->pBuffer + buffer->nAllocLen) ) {
+                    DEBUG_PRINT_LOW("\nWRITING extradata, size=%d,type=%d",p_extra->nSize, p_extra->eType);
+                    fwrite (p_extra,1,p_extra->nSize,outputExtradataFile);
+                    if (p_extra->eType == OMX_ExtraDataNone) {
+                        break;
+                    }
+                    p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+                }
+            }
 #endif
-    }
-    if (buffer->nFlags & OMX_BUFFERFLAG_EOS){
-      prev_ts = LLONG_MAX;
-      rst_prev_ts = true;
-      }
+        }
+        if (buffer->nFlags & OMX_BUFFERFLAG_EOS) {
+            prev_ts = LLONG_MAX;
+            rst_prev_ts = true;
+        }
 
-    pPMEMInfo = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
-                ((OMX_QCOM_PLATFORM_PRIVATE_LIST *)
-                buffer->pPlatformPrivate)->entryList->entry;
-    DEBUG_PRINT_LOW("\n Before FBD callback Accessed Pmeminfo %lu",pPMEMInfo->pmem_fd);
+        pPMEMInfo = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
+            ((OMX_QCOM_PLATFORM_PRIVATE_LIST *)
+             buffer->pPlatformPrivate)->entryList->entry;
+        DEBUG_PRINT_LOW("\n Before FBD callback Accessed Pmeminfo %lu",pPMEMInfo->pmem_fd);
 #ifdef _ANDROID_ICS_
-    if (m_enable_android_native_buffers)
-    {
-     if (native_buffer[buffer - m_out_mem_ptr].inuse) {
-      if (GENLOCK_NO_ERROR != genlock_unlock_buffer(native_buffer[buffer - m_out_mem_ptr].nativehandle)) {
-        DEBUG_PRINT_ERROR("Unlocking genlock failed");
-        return OMX_ErrorInsufficientResources;
-      }
-      else {
-        native_buffer[buffer - m_out_mem_ptr].inuse = false;
-      }
-     }
-    }
+        if (m_enable_android_native_buffers) {
+            if (native_buffer[buffer - m_out_mem_ptr].inuse) {
+                if (GENLOCK_NO_ERROR != genlock_unlock_buffer(native_buffer[buffer - m_out_mem_ptr].nativehandle)) {
+                    DEBUG_PRINT_ERROR("Unlocking genlock failed");
+                    return OMX_ErrorInsufficientResources;
+                } else {
+                    native_buffer[buffer - m_out_mem_ptr].inuse = false;
+                }
+            }
+        }
 #endif
-    OMX_BUFFERHEADERTYPE *il_buffer;
-    il_buffer = client_buffers.get_il_buf_hdr(buffer);
-    if (il_buffer)
-      m_cb.FillBufferDone (hComp,m_app_data,il_buffer);
-    else {
-      DEBUG_PRINT_ERROR("Invalid buffer address from get_il_buf_hdr");
-      return OMX_ErrorBadParameter;
+        OMX_BUFFERHEADERTYPE *il_buffer;
+        il_buffer = client_buffers.get_il_buf_hdr(buffer);
+        if (il_buffer)
+            m_cb.FillBufferDone (hComp,m_app_data,il_buffer);
+        else {
+            DEBUG_PRINT_ERROR("Invalid buffer address from get_il_buf_hdr");
+            return OMX_ErrorBadParameter;
+        }
+        DEBUG_PRINT_LOW("\n After Fill Buffer Done callback %lu",pPMEMInfo->pmem_fd);
+    } else {
+        return OMX_ErrorBadParameter;
     }
-    DEBUG_PRINT_LOW("\n After Fill Buffer Done callback %lu",pPMEMInfo->pmem_fd);
-  }
-  else
-  {
-    return OMX_ErrorBadParameter;
-  }
 
-  return OMX_ErrorNone;
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_vdec::empty_buffer_done(OMX_HANDLETYPE         hComp,
-                                          OMX_BUFFERHEADERTYPE* buffer)
+        OMX_BUFFERHEADERTYPE* buffer)
 {
 
-    if (buffer == NULL || ((buffer - m_inp_mem_ptr) > drv_ctx.ip_buf.actualcount))
-    {
+    if (buffer == NULL || ((buffer - m_inp_mem_ptr) > drv_ctx.ip_buf.actualcount)) {
         DEBUG_PRINT_ERROR("\n empty_buffer_done: ERROR bufhdr = %p", buffer);
-       return OMX_ErrorBadParameter;
+        return OMX_ErrorBadParameter;
     }
 
     DEBUG_PRINT_LOW("\n empty_buffer_done: bufhdr = %p, bufhdr->pBuffer = %p",
-        buffer, buffer->pBuffer);
+            buffer, buffer->pBuffer);
     pending_input_buffers--;
 
-    if (arbitrary_bytes)
-    {
-      if (pdest_frame == NULL && input_flush_progress == false)
-      {
-        DEBUG_PRINT_LOW("\n Push input from buffer done address of Buffer %p",buffer);
-        pdest_frame = buffer;
-        buffer->nFilledLen = 0;
-        buffer->nTimeStamp = LLONG_MAX;
-        push_input_buffer (hComp);
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("\n Push buffer into freeq address of Buffer %p",buffer);
-        buffer->nFilledLen = 0;
-        if (!m_input_free_q.insert_entry((unsigned)buffer,
-                   (unsigned)NULL, (unsigned)NULL))
-        {
-          DEBUG_PRINT_ERROR("\nERROR:i/p free Queue is FULL Error");
+    if (arbitrary_bytes) {
+        if (pdest_frame == NULL && input_flush_progress == false) {
+            DEBUG_PRINT_LOW("\n Push input from buffer done address of Buffer %p",buffer);
+            pdest_frame = buffer;
+            buffer->nFilledLen = 0;
+            buffer->nTimeStamp = LLONG_MAX;
+            push_input_buffer (hComp);
+        } else {
+            DEBUG_PRINT_LOW("\n Push buffer into freeq address of Buffer %p",buffer);
+            buffer->nFilledLen = 0;
+            if (!m_input_free_q.insert_entry((unsigned)buffer,
+                        (unsigned)NULL, (unsigned)NULL)) {
+                DEBUG_PRINT_ERROR("\nERROR:i/p free Queue is FULL Error");
+            }
         }
-      }
-    }
-    else if(m_cb.EmptyBufferDone)
-    {
+    } else if (m_cb.EmptyBufferDone) {
         buffer->nFilledLen = 0;
-        if (input_use_buffer == true){
+        if (input_use_buffer == true) {
             buffer = &m_inp_heap_ptr[buffer-m_inp_mem_ptr];
         }
         m_cb.EmptyBufferDone(hComp ,m_app_data, buffer);
@@ -7154,743 +6351,641 @@
 
 int omx_vdec::async_message_process (void *context, void* message)
 {
-  omx_vdec* omx = NULL;
-  struct vdec_msginfo *vdec_msg = NULL;
-  OMX_BUFFERHEADERTYPE* omxhdr = NULL;
-  struct v4l2_buffer *v4l2_buf_ptr = NULL;
-  struct vdec_output_frameinfo *output_respbuf = NULL;
-	int rc=1;
-  if (context == NULL || message == NULL)
-  {
-    DEBUG_PRINT_ERROR("\n FATAL ERROR in omx_vdec::async_message_process NULL Check");
-    return -1;
-  }
-  vdec_msg = (struct vdec_msginfo *)message;
-
-  omx = reinterpret_cast<omx_vdec*>(context);
-
-  switch (vdec_msg->msgcode)
-  {
-
-  case VDEC_MSG_EVT_HW_ERROR:
-    omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_HARDWARE_ERROR);
-  break;
-
-  case VDEC_MSG_RESP_START_DONE:
-    omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_START_DONE);
-  break;
-
-  case VDEC_MSG_RESP_STOP_DONE:
-    omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_STOP_DONE);
-  break;
-
-  case VDEC_MSG_RESP_RESUME_DONE:
-    omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_RESUME_DONE);
-  break;
-
-  case VDEC_MSG_RESP_PAUSE_DONE:
-    omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_PAUSE_DONE);
-  break;
-
-  case VDEC_MSG_RESP_FLUSH_INPUT_DONE:
-    omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH);
-    break;
-  case VDEC_MSG_RESP_FLUSH_OUTPUT_DONE:
-    omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
-                     OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH);
-    break;
-  case VDEC_MSG_RESP_INPUT_FLUSHED:
-  case VDEC_MSG_RESP_INPUT_BUFFER_DONE:
-
-    /* omxhdr = (OMX_BUFFERHEADERTYPE* )
-              vdec_msg->msgdata.input_frame_clientdata; */
-
-    v4l2_buf_ptr = (v4l2_buffer*)vdec_msg->msgdata.input_frame_clientdata;
-    omxhdr=omx->m_inp_mem_ptr+v4l2_buf_ptr->index;
-    if (omxhdr == NULL ||
-       ((omxhdr - omx->m_inp_mem_ptr) > omx->drv_ctx.ip_buf.actualcount) )
-    {
-       omxhdr = NULL;
-       vdec_msg->status_code = VDEC_S_EFATAL;
+    omx_vdec* omx = NULL;
+    struct vdec_msginfo *vdec_msg = NULL;
+    OMX_BUFFERHEADERTYPE* omxhdr = NULL;
+    struct v4l2_buffer *v4l2_buf_ptr = NULL;
+    struct vdec_output_frameinfo *output_respbuf = NULL;
+    int rc=1;
+    if (context == NULL || message == NULL) {
+        DEBUG_PRINT_ERROR("\n FATAL ERROR in omx_vdec::async_message_process NULL Check");
+        return -1;
     }
-    if (v4l2_buf_ptr->flags & V4L2_QCOM_BUF_INPUT_UNSUPPORTED)
-    {
-      DEBUG_PRINT_HIGH("Unsupported input");
-      omx->omx_report_error ();
-    }
-    if (v4l2_buf_ptr->flags & V4L2_QCOM_BUF_DATA_CORRUPT)
-    {
-      vdec_msg->status_code = VDEC_S_INPUT_BITSTREAM_ERR;
-    }
-    omx->post_event ((unsigned int)omxhdr,vdec_msg->status_code,
-                     OMX_COMPONENT_GENERATE_EBD);
-    break;
-    case VDEC_MSG_EVT_INFO_FIELD_DROPPED:
-      int64_t *timestamp;
-      timestamp = (int64_t *) malloc(sizeof(int64_t));
-      if (timestamp) {
-        *timestamp = vdec_msg->msgdata.output_frame.time_stamp;
-        omx->post_event ((unsigned int)timestamp, vdec_msg->status_code,
-                         OMX_COMPONENT_GENERATE_INFO_FIELD_DROPPED);
-        DEBUG_PRINT_HIGH("\nField dropped time stamp is %lld",
-             vdec_msg->msgdata.output_frame.time_stamp);
-      }
-      break;
-  case VDEC_MSG_RESP_OUTPUT_FLUSHED:
-    case VDEC_MSG_RESP_OUTPUT_BUFFER_DONE:
+    vdec_msg = (struct vdec_msginfo *)message;
 
-      v4l2_buf_ptr = (v4l2_buffer*)vdec_msg->msgdata.output_frame.client_data;
-      omxhdr=omx->m_out_mem_ptr+v4l2_buf_ptr->index;
-      DEBUG_PRINT_LOW("[RespBufDone] Buf(%p) Ts(%lld) Pic_type(%u)",
-		      omxhdr, vdec_msg->msgdata.output_frame.time_stamp,
-		      vdec_msg->msgdata.output_frame.pic_type);
-      
-    if (omxhdr && omxhdr->pOutputPortPrivate &&
-        ((omxhdr - omx->m_out_mem_ptr) < omx->drv_ctx.op_buf.actualcount) &&
-         (((struct vdec_output_frameinfo *)omxhdr->pOutputPortPrivate
-            - omx->drv_ctx.ptr_respbuffer) < omx->drv_ctx.op_buf.actualcount))
-    {
-      if ( vdec_msg->msgdata.output_frame.len <=  omxhdr->nAllocLen)
-      {
-	omxhdr->nFilledLen = vdec_msg->msgdata.output_frame.len;
-	omxhdr->nOffset = vdec_msg->msgdata.output_frame.offset;
-    omxhdr->nTimeStamp = vdec_msg->msgdata.output_frame.time_stamp;
-    omxhdr->nFlags = 0;
-	
-	if (v4l2_buf_ptr->flags & V4L2_BUF_FLAG_EOS)
-	{
-	  omxhdr->nFlags |= OMX_BUFFERFLAG_EOS;
-	  //rc = -1;
-	}
-  if (omxhdr->nFilledLen)
-  {
-    omxhdr->nFlags |= OMX_BUFFERFLAG_ENDOFFRAME;
-  }
-  if (v4l2_buf_ptr->flags & V4L2_BUF_FLAG_KEYFRAME || v4l2_buf_ptr->flags & V4L2_QCOM_BUF_FLAG_IDRFRAME)
-  {
-    omxhdr->nFlags |= OMX_BUFFERFLAG_SYNCFRAME;
-  }
-  else
-  {
-    omxhdr->nFlags &= ~OMX_BUFFERFLAG_SYNCFRAME;
-  }
-  if (v4l2_buf_ptr->flags & V4L2_QCOM_BUF_FLAG_EOSEQ)
-  {
-    omxhdr->nFlags |= QOMX_VIDEO_BUFFERFLAG_EOSEQ;
-  }
-  if (v4l2_buf_ptr->flags & V4L2_QCOM_BUF_FLAG_DECODEONLY)
-  {
-    omxhdr->nFlags |= OMX_BUFFERFLAG_DECODEONLY;
-  }
-  if (omxhdr && (v4l2_buf_ptr->flags & V4L2_QCOM_BUF_DROP_FRAME) &&
-       !(v4l2_buf_ptr->flags & V4L2_QCOM_BUF_FLAG_DECODEONLY) &&
-       !(v4l2_buf_ptr->flags & V4L2_BUF_FLAG_EOS))
-  {
-      omx->post_event ((unsigned)NULL,(unsigned int)omxhdr,
-        OMX_COMPONENT_GENERATE_FTB);
-      break;
-  }
-  if (v4l2_buf_ptr->flags & V4L2_QCOM_BUF_DATA_CORRUPT)
-  {
-    omxhdr->nFlags |= OMX_BUFFERFLAG_DATACORRUPT;
-  }
-  vdec_msg->msgdata.output_frame.bufferaddr =
-      omx->drv_ctx.ptr_outputbuffer[v4l2_buf_ptr->index].bufferaddr;
-  int format_notably_changed = 0;
-  if (omxhdr->nFilledLen &&
-	  (omxhdr->nFilledLen != omx->prev_n_filled_len))
-  {
-	  if ((vdec_msg->msgdata.output_frame.framesize.bottom != omx->drv_ctx.video_resolution.frame_height) ||
-			  (vdec_msg->msgdata.output_frame.framesize.right != omx->drv_ctx.video_resolution.frame_width)) {
-		  DEBUG_PRINT_HIGH("\n Height/Width information has changed\n");
-		  omx->drv_ctx.video_resolution.frame_height = vdec_msg->msgdata.output_frame.framesize.bottom;
-		  omx->drv_ctx.video_resolution.frame_width = vdec_msg->msgdata.output_frame.framesize.right;
-		  format_notably_changed = 1;
-	  }
-  }
-  if (omxhdr->nFilledLen && (((unsigned)omx->rectangle.nLeft !=
-                      vdec_msg->msgdata.output_frame.framesize.left)
-        || ((unsigned)omx->rectangle.nTop != vdec_msg->msgdata.output_frame.framesize.top)
-        || (omx->rectangle.nWidth != vdec_msg->msgdata.output_frame.framesize.right)
-        || (omx->rectangle.nHeight != vdec_msg->msgdata.output_frame.framesize.bottom))) {
-	  if ((vdec_msg->msgdata.output_frame.framesize.bottom != omx->drv_ctx.video_resolution.frame_height) ||
-				  (vdec_msg->msgdata.output_frame.framesize.right != omx->drv_ctx.video_resolution.frame_width)) {
-			  omx->drv_ctx.video_resolution.frame_height = vdec_msg->msgdata.output_frame.framesize.bottom;
-			  omx->drv_ctx.video_resolution.frame_width = vdec_msg->msgdata.output_frame.framesize.right;
-			  DEBUG_PRINT_HIGH("\n Height/Width information has changed. W: %d --> %d, H: %d --> %d\n",
-					  omx->drv_ctx.video_resolution.frame_width, vdec_msg->msgdata.output_frame.framesize.right,
-					  omx->drv_ctx.video_resolution.frame_height, vdec_msg->msgdata.output_frame.framesize.bottom);
-	  }
-    DEBUG_PRINT_HIGH("\n Crop information changed. W: %d --> %d, H: %d -> %d\n",
-		omx->rectangle.nWidth, vdec_msg->msgdata.output_frame.framesize.right,
-		omx->rectangle.nHeight, vdec_msg->msgdata.output_frame.framesize.bottom);
-    omx->rectangle.nLeft = vdec_msg->msgdata.output_frame.framesize.left;
-    omx->rectangle.nTop = vdec_msg->msgdata.output_frame.framesize.top;
-    omx->rectangle.nWidth = vdec_msg->msgdata.output_frame.framesize.right;
-    omx->rectangle.nHeight = vdec_msg->msgdata.output_frame.framesize.bottom;
-	format_notably_changed = 1;
-  }
-  if (format_notably_changed) {
-	  if(omx->is_video_session_supported()) {
-		  omx->post_event (NULL, vdec_msg->status_code,
-				  OMX_COMPONENT_GENERATE_UNSUPPORTED_SETTING);
-	  } else {
-                  if (!omx->client_buffers.update_buffer_req()) {
-                     DEBUG_PRINT_ERROR("Setting c2D buffer requirements failed");
-                  }
-		  omx->post_event (OMX_CORE_OUTPUT_PORT_INDEX, OMX_IndexConfigCommonOutputCrop,
-				  OMX_COMPONENT_GENERATE_PORT_RECONFIG);
-	  }
-  }
-  if (omxhdr->nFilledLen)
-	  omx->prev_n_filled_len = omxhdr->nFilledLen;
+    omx = reinterpret_cast<omx_vdec*>(context);
 
-        output_respbuf = (struct vdec_output_frameinfo *)\
-                          omxhdr->pOutputPortPrivate;
-        output_respbuf->len = vdec_msg->msgdata.output_frame.len;
-        output_respbuf->offset = vdec_msg->msgdata.output_frame.offset;
-        if (v4l2_buf_ptr->flags & V4L2_BUF_FLAG_KEYFRAME)
-        {
-          output_respbuf->pic_type = PICTURE_TYPE_I;
-        }
-        if (v4l2_buf_ptr->flags & V4L2_BUF_FLAG_PFRAME)
-        {
-          output_respbuf->pic_type = PICTURE_TYPE_P;
-        }
-        if (v4l2_buf_ptr->flags & V4L2_BUF_FLAG_BFRAME) {
-          output_respbuf->pic_type = PICTURE_TYPE_B;
-        }
+    switch (vdec_msg->msgcode) {
 
-        if (omx->output_use_buffer)
-          memcpy ( omxhdr->pBuffer, (void *)
-                   ((unsigned long)vdec_msg->msgdata.output_frame.bufferaddr +
-                    (unsigned long)vdec_msg->msgdata.output_frame.offset),
-                    vdec_msg->msgdata.output_frame.len);
-      }
-      else
-        omxhdr->nFilledLen = 0;
-      omx->post_event ((unsigned int)omxhdr, vdec_msg->status_code,
-                       OMX_COMPONENT_GENERATE_FBD);
+        case VDEC_MSG_EVT_HW_ERROR:
+            omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_HARDWARE_ERROR);
+            break;
+
+        case VDEC_MSG_RESP_START_DONE:
+            omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_START_DONE);
+            break;
+
+        case VDEC_MSG_RESP_STOP_DONE:
+            omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_STOP_DONE);
+            break;
+
+        case VDEC_MSG_RESP_RESUME_DONE:
+            omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_RESUME_DONE);
+            break;
+
+        case VDEC_MSG_RESP_PAUSE_DONE:
+            omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_PAUSE_DONE);
+            break;
+
+        case VDEC_MSG_RESP_FLUSH_INPUT_DONE:
+            omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH);
+            break;
+        case VDEC_MSG_RESP_FLUSH_OUTPUT_DONE:
+            omx->post_event ((unsigned)NULL, vdec_msg->status_code,\
+                    OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH);
+            break;
+        case VDEC_MSG_RESP_INPUT_FLUSHED:
+        case VDEC_MSG_RESP_INPUT_BUFFER_DONE:
+
+            /* omxhdr = (OMX_BUFFERHEADERTYPE* )
+               vdec_msg->msgdata.input_frame_clientdata; */
+
+            v4l2_buf_ptr = (v4l2_buffer*)vdec_msg->msgdata.input_frame_clientdata;
+            omxhdr=omx->m_inp_mem_ptr+v4l2_buf_ptr->index;
+            if (omxhdr == NULL ||
+                    ((omxhdr - omx->m_inp_mem_ptr) > omx->drv_ctx.ip_buf.actualcount) ) {
+                omxhdr = NULL;
+                vdec_msg->status_code = VDEC_S_EFATAL;
+            }
+            if (v4l2_buf_ptr->flags & V4L2_QCOM_BUF_INPUT_UNSUPPORTED) {
+                DEBUG_PRINT_HIGH("Unsupported input");
+                omx->omx_report_error ();
+            }
+            if (v4l2_buf_ptr->flags & V4L2_QCOM_BUF_DATA_CORRUPT) {
+                vdec_msg->status_code = VDEC_S_INPUT_BITSTREAM_ERR;
+            }
+            omx->post_event ((unsigned int)omxhdr,vdec_msg->status_code,
+                    OMX_COMPONENT_GENERATE_EBD);
+            break;
+        case VDEC_MSG_EVT_INFO_FIELD_DROPPED:
+            int64_t *timestamp;
+            timestamp = (int64_t *) malloc(sizeof(int64_t));
+            if (timestamp) {
+                *timestamp = vdec_msg->msgdata.output_frame.time_stamp;
+                omx->post_event ((unsigned int)timestamp, vdec_msg->status_code,
+                        OMX_COMPONENT_GENERATE_INFO_FIELD_DROPPED);
+                DEBUG_PRINT_HIGH("\nField dropped time stamp is %lld",
+                        vdec_msg->msgdata.output_frame.time_stamp);
+            }
+            break;
+        case VDEC_MSG_RESP_OUTPUT_FLUSHED:
+        case VDEC_MSG_RESP_OUTPUT_BUFFER_DONE:
+
+            v4l2_buf_ptr = (v4l2_buffer*)vdec_msg->msgdata.output_frame.client_data;
+            omxhdr=omx->m_out_mem_ptr+v4l2_buf_ptr->index;
+            DEBUG_PRINT_LOW("[RespBufDone] Buf(%p) Ts(%lld) Pic_type(%u)",
+                    omxhdr, vdec_msg->msgdata.output_frame.time_stamp,
+                    vdec_msg->msgdata.output_frame.pic_type);
+
+            if (omxhdr && omxhdr->pOutputPortPrivate &&
+                    ((omxhdr - omx->m_out_mem_ptr) < omx->drv_ctx.op_buf.actualcount) &&
+                    (((struct vdec_output_frameinfo *)omxhdr->pOutputPortPrivate
+                      - omx->drv_ctx.ptr_respbuffer) < omx->drv_ctx.op_buf.actualcount)) {
+                if ( vdec_msg->msgdata.output_frame.len <=  omxhdr->nAllocLen) {
+                    omxhdr->nFilledLen = vdec_msg->msgdata.output_frame.len;
+                    omxhdr->nOffset = vdec_msg->msgdata.output_frame.offset;
+                    omxhdr->nTimeStamp = vdec_msg->msgdata.output_frame.time_stamp;
+                    omxhdr->nFlags = 0;
+
+                    if (v4l2_buf_ptr->flags & V4L2_BUF_FLAG_EOS) {
+                        omxhdr->nFlags |= OMX_BUFFERFLAG_EOS;
+                        //rc = -1;
+                    }
+                    if (omxhdr->nFilledLen) {
+                        omxhdr->nFlags |= OMX_BUFFERFLAG_ENDOFFRAME;
+                    }
+                    if (v4l2_buf_ptr->flags & V4L2_BUF_FLAG_KEYFRAME || v4l2_buf_ptr->flags & V4L2_QCOM_BUF_FLAG_IDRFRAME) {
+                        omxhdr->nFlags |= OMX_BUFFERFLAG_SYNCFRAME;
+                    } else {
+                        omxhdr->nFlags &= ~OMX_BUFFERFLAG_SYNCFRAME;
+                    }
+                    if (v4l2_buf_ptr->flags & V4L2_QCOM_BUF_FLAG_EOSEQ) {
+                        omxhdr->nFlags |= QOMX_VIDEO_BUFFERFLAG_EOSEQ;
+                    }
+                    if (v4l2_buf_ptr->flags & V4L2_QCOM_BUF_FLAG_DECODEONLY) {
+                        omxhdr->nFlags |= OMX_BUFFERFLAG_DECODEONLY;
+                    }
+                    if (omxhdr && (v4l2_buf_ptr->flags & V4L2_QCOM_BUF_DROP_FRAME) &&
+                            !(v4l2_buf_ptr->flags & V4L2_QCOM_BUF_FLAG_DECODEONLY) &&
+                            !(v4l2_buf_ptr->flags & V4L2_BUF_FLAG_EOS)) {
+                        omx->post_event ((unsigned)NULL,(unsigned int)omxhdr,
+                                OMX_COMPONENT_GENERATE_FTB);
+                        break;
+                    }
+                    if (v4l2_buf_ptr->flags & V4L2_QCOM_BUF_DATA_CORRUPT) {
+                        omxhdr->nFlags |= OMX_BUFFERFLAG_DATACORRUPT;
+                    }
+                    vdec_msg->msgdata.output_frame.bufferaddr =
+                        omx->drv_ctx.ptr_outputbuffer[v4l2_buf_ptr->index].bufferaddr;
+                    int format_notably_changed = 0;
+                    if (omxhdr->nFilledLen &&
+                            (omxhdr->nFilledLen != omx->prev_n_filled_len)) {
+                        if ((vdec_msg->msgdata.output_frame.framesize.bottom != omx->drv_ctx.video_resolution.frame_height) ||
+                                (vdec_msg->msgdata.output_frame.framesize.right != omx->drv_ctx.video_resolution.frame_width)) {
+                            DEBUG_PRINT_HIGH("\n Height/Width information has changed\n");
+                            omx->drv_ctx.video_resolution.frame_height = vdec_msg->msgdata.output_frame.framesize.bottom;
+                            omx->drv_ctx.video_resolution.frame_width = vdec_msg->msgdata.output_frame.framesize.right;
+                            format_notably_changed = 1;
+                        }
+                    }
+                    if (omxhdr->nFilledLen && (((unsigned)omx->rectangle.nLeft !=
+                                    vdec_msg->msgdata.output_frame.framesize.left)
+                                || ((unsigned)omx->rectangle.nTop != vdec_msg->msgdata.output_frame.framesize.top)
+                                || (omx->rectangle.nWidth != vdec_msg->msgdata.output_frame.framesize.right)
+                                || (omx->rectangle.nHeight != vdec_msg->msgdata.output_frame.framesize.bottom))) {
+                        if ((vdec_msg->msgdata.output_frame.framesize.bottom != omx->drv_ctx.video_resolution.frame_height) ||
+                                (vdec_msg->msgdata.output_frame.framesize.right != omx->drv_ctx.video_resolution.frame_width)) {
+                            omx->drv_ctx.video_resolution.frame_height = vdec_msg->msgdata.output_frame.framesize.bottom;
+                            omx->drv_ctx.video_resolution.frame_width = vdec_msg->msgdata.output_frame.framesize.right;
+                            DEBUG_PRINT_HIGH("\n Height/Width information has changed. W: %d --> %d, H: %d --> %d\n",
+                                    omx->drv_ctx.video_resolution.frame_width, vdec_msg->msgdata.output_frame.framesize.right,
+                                    omx->drv_ctx.video_resolution.frame_height, vdec_msg->msgdata.output_frame.framesize.bottom);
+                        }
+                        DEBUG_PRINT_HIGH("\n Crop information changed. W: %d --> %d, H: %d -> %d\n",
+                                omx->rectangle.nWidth, vdec_msg->msgdata.output_frame.framesize.right,
+                                omx->rectangle.nHeight, vdec_msg->msgdata.output_frame.framesize.bottom);
+                        omx->rectangle.nLeft = vdec_msg->msgdata.output_frame.framesize.left;
+                        omx->rectangle.nTop = vdec_msg->msgdata.output_frame.framesize.top;
+                        omx->rectangle.nWidth = vdec_msg->msgdata.output_frame.framesize.right;
+                        omx->rectangle.nHeight = vdec_msg->msgdata.output_frame.framesize.bottom;
+                        format_notably_changed = 1;
+                    }
+                    if (format_notably_changed) {
+                        if (omx->is_video_session_supported()) {
+                            omx->post_event (NULL, vdec_msg->status_code,
+                                    OMX_COMPONENT_GENERATE_UNSUPPORTED_SETTING);
+                        } else {
+                            if (!omx->client_buffers.update_buffer_req()) {
+                                DEBUG_PRINT_ERROR("Setting c2D buffer requirements failed");
+                            }
+                            omx->post_event (OMX_CORE_OUTPUT_PORT_INDEX, OMX_IndexConfigCommonOutputCrop,
+                                    OMX_COMPONENT_GENERATE_PORT_RECONFIG);
+                        }
+                    }
+                    if (omxhdr->nFilledLen)
+                        omx->prev_n_filled_len = omxhdr->nFilledLen;
+
+                    output_respbuf = (struct vdec_output_frameinfo *)\
+                             omxhdr->pOutputPortPrivate;
+                    output_respbuf->len = vdec_msg->msgdata.output_frame.len;
+                    output_respbuf->offset = vdec_msg->msgdata.output_frame.offset;
+                    if (v4l2_buf_ptr->flags & V4L2_BUF_FLAG_KEYFRAME) {
+                        output_respbuf->pic_type = PICTURE_TYPE_I;
+                    }
+                    if (v4l2_buf_ptr->flags & V4L2_BUF_FLAG_PFRAME) {
+                        output_respbuf->pic_type = PICTURE_TYPE_P;
+                    }
+                    if (v4l2_buf_ptr->flags & V4L2_BUF_FLAG_BFRAME) {
+                        output_respbuf->pic_type = PICTURE_TYPE_B;
+                    }
+
+                    if (omx->output_use_buffer)
+                        memcpy ( omxhdr->pBuffer, (void *)
+                                ((unsigned long)vdec_msg->msgdata.output_frame.bufferaddr +
+                                 (unsigned long)vdec_msg->msgdata.output_frame.offset),
+                                vdec_msg->msgdata.output_frame.len);
+                } else
+                    omxhdr->nFilledLen = 0;
+                omx->post_event ((unsigned int)omxhdr, vdec_msg->status_code,
+                        OMX_COMPONENT_GENERATE_FBD);
+            } else if (vdec_msg->msgdata.output_frame.flags & OMX_BUFFERFLAG_EOS)
+                omx->post_event ((unsigned int)NULL, vdec_msg->status_code,
+                        OMX_COMPONENT_GENERATE_EOS_DONE);
+            else
+                omx->post_event ((unsigned int)NULL, vdec_msg->status_code,
+                        OMX_COMPONENT_GENERATE_HARDWARE_ERROR);
+            break;
+        case VDEC_MSG_EVT_CONFIG_CHANGED:
+            DEBUG_PRINT_HIGH("\n Port settings changed");
+            omx->post_event (OMX_CORE_OUTPUT_PORT_INDEX, OMX_IndexParamPortDefinition,
+                    OMX_COMPONENT_GENERATE_PORT_RECONFIG);
+            break;
+        default:
+            break;
     }
-    else if (vdec_msg->msgdata.output_frame.flags & OMX_BUFFERFLAG_EOS)
-      omx->post_event ((unsigned int)NULL, vdec_msg->status_code,
-                       OMX_COMPONENT_GENERATE_EOS_DONE);
-    else
-      omx->post_event ((unsigned int)NULL, vdec_msg->status_code,
-                       OMX_COMPONENT_GENERATE_HARDWARE_ERROR);
-    break;
-  case VDEC_MSG_EVT_CONFIG_CHANGED:
-    DEBUG_PRINT_HIGH("\n Port settings changed");
-    omx->post_event (OMX_CORE_OUTPUT_PORT_INDEX, OMX_IndexParamPortDefinition,
-        OMX_COMPONENT_GENERATE_PORT_RECONFIG);
-    break;
-  default:
-    break;
-  }
-  return rc;
+    return rc;
 }
 
 OMX_ERRORTYPE omx_vdec::empty_this_buffer_proxy_arbitrary (
-                                                   OMX_HANDLETYPE hComp,
-                                                   OMX_BUFFERHEADERTYPE *buffer
-                                                           )
+        OMX_HANDLETYPE hComp,
+        OMX_BUFFERHEADERTYPE *buffer
+        )
 {
-  unsigned address,p2,id;
-  DEBUG_PRINT_LOW("\n Empty this arbitrary");
+    unsigned address,p2,id;
+    DEBUG_PRINT_LOW("\n Empty this arbitrary");
 
-  if (buffer == NULL)
-  {
-    return OMX_ErrorBadParameter;
-  }
-  DEBUG_PRINT_LOW("\n ETBProxyArb: bufhdr = %p, bufhdr->pBuffer = %p", buffer, buffer->pBuffer);
-  DEBUG_PRINT_LOW("\n ETBProxyArb: nFilledLen %lu, flags %lu, timestamp %lld",
-        buffer->nFilledLen, buffer->nFlags, buffer->nTimeStamp);
-
-  /* return zero length and not an EOS buffer */
-  /* return buffer if input flush in progress */
-  if ((input_flush_progress == true) || ((buffer->nFilledLen == 0) &&
-     ((buffer->nFlags & OMX_BUFFERFLAG_EOS) == 0)))
-  {
-    DEBUG_PRINT_HIGH("\n return zero legth buffer or flush in progress");
-    m_cb.EmptyBufferDone (hComp,m_app_data,buffer);
-    return OMX_ErrorNone;
-  }
-
-  if (psource_frame == NULL)
-  {
-    DEBUG_PRINT_LOW("\n Set Buffer as source Buffer %p time stamp %lld",buffer,buffer->nTimeStamp);
-    psource_frame = buffer;
-    DEBUG_PRINT_LOW("\n Try to Push One Input Buffer ");
-    push_input_buffer (hComp);
-  }
-  else
-  {
-    DEBUG_PRINT_LOW("\n Push the source buffer into pendingq %p",buffer);
-    if (!m_input_pending_q.insert_entry((unsigned)buffer, (unsigned)NULL,
-                (unsigned)NULL))
-    {
-      return OMX_ErrorBadParameter;
+    if (buffer == NULL) {
+        return OMX_ErrorBadParameter;
     }
-  }
+    DEBUG_PRINT_LOW("\n ETBProxyArb: bufhdr = %p, bufhdr->pBuffer = %p", buffer, buffer->pBuffer);
+    DEBUG_PRINT_LOW("\n ETBProxyArb: nFilledLen %lu, flags %lu, timestamp %lld",
+            buffer->nFilledLen, buffer->nFlags, buffer->nTimeStamp);
+
+    /* return zero length and not an EOS buffer */
+    /* return buffer if input flush in progress */
+    if ((input_flush_progress == true) || ((buffer->nFilledLen == 0) &&
+                ((buffer->nFlags & OMX_BUFFERFLAG_EOS) == 0))) {
+        DEBUG_PRINT_HIGH("\n return zero legth buffer or flush in progress");
+        m_cb.EmptyBufferDone (hComp,m_app_data,buffer);
+        return OMX_ErrorNone;
+    }
+
+    if (psource_frame == NULL) {
+        DEBUG_PRINT_LOW("\n Set Buffer as source Buffer %p time stamp %lld",buffer,buffer->nTimeStamp);
+        psource_frame = buffer;
+        DEBUG_PRINT_LOW("\n Try to Push One Input Buffer ");
+        push_input_buffer (hComp);
+    } else {
+        DEBUG_PRINT_LOW("\n Push the source buffer into pendingq %p",buffer);
+        if (!m_input_pending_q.insert_entry((unsigned)buffer, (unsigned)NULL,
+                    (unsigned)NULL)) {
+            return OMX_ErrorBadParameter;
+        }
+    }
 
 
-  return OMX_ErrorNone;
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_vdec::push_input_buffer (OMX_HANDLETYPE hComp)
 {
-  unsigned address,p2,id;
-  OMX_ERRORTYPE ret = OMX_ErrorNone;
+    unsigned address,p2,id;
+    OMX_ERRORTYPE ret = OMX_ErrorNone;
 
-  if (pdest_frame == NULL || psource_frame == NULL)
-  {
-    /*Check if we have a destination buffer*/
-    if (pdest_frame == NULL)
-    {
-      DEBUG_PRINT_LOW("\n Get a Destination buffer from the queue");
-      if (m_input_free_q.m_size)
-      {
-        m_input_free_q.pop_entry(&address,&p2,&id);
-        pdest_frame = (OMX_BUFFERHEADERTYPE *)address;
-        pdest_frame->nFilledLen = 0;
-        pdest_frame->nTimeStamp = LLONG_MAX;
-        DEBUG_PRINT_LOW("\n Address of Pmem Buffer %p",pdest_frame);
-      }
+    if (pdest_frame == NULL || psource_frame == NULL) {
+        /*Check if we have a destination buffer*/
+        if (pdest_frame == NULL) {
+            DEBUG_PRINT_LOW("\n Get a Destination buffer from the queue");
+            if (m_input_free_q.m_size) {
+                m_input_free_q.pop_entry(&address,&p2,&id);
+                pdest_frame = (OMX_BUFFERHEADERTYPE *)address;
+                pdest_frame->nFilledLen = 0;
+                pdest_frame->nTimeStamp = LLONG_MAX;
+                DEBUG_PRINT_LOW("\n Address of Pmem Buffer %p",pdest_frame);
+            }
+        }
+
+        /*Check if we have a destination buffer*/
+        if (psource_frame == NULL) {
+            DEBUG_PRINT_LOW("\n Get a source buffer from the queue");
+            if (m_input_pending_q.m_size) {
+                m_input_pending_q.pop_entry(&address,&p2,&id);
+                psource_frame = (OMX_BUFFERHEADERTYPE *)address;
+                DEBUG_PRINT_LOW("\n Next source Buffer %p time stamp %lld",psource_frame,
+                        psource_frame->nTimeStamp);
+                DEBUG_PRINT_LOW("\n Next source Buffer flag %lu length %lu",
+                        psource_frame->nFlags,psource_frame->nFilledLen);
+
+            }
+        }
+
     }
 
-    /*Check if we have a destination buffer*/
-    if (psource_frame == NULL)
-    {
-      DEBUG_PRINT_LOW("\n Get a source buffer from the queue");
-      if (m_input_pending_q.m_size)
-      {
-        m_input_pending_q.pop_entry(&address,&p2,&id);
-        psource_frame = (OMX_BUFFERHEADERTYPE *)address;
-        DEBUG_PRINT_LOW("\n Next source Buffer %p time stamp %lld",psource_frame,
-                psource_frame->nTimeStamp);
-        DEBUG_PRINT_LOW("\n Next source Buffer flag %lu length %lu",
-        psource_frame->nFlags,psource_frame->nFilledLen);
-
-      }
+    while ((pdest_frame != NULL) && (psource_frame != NULL)) {
+        switch (codec_type_parse) {
+            case CODEC_TYPE_MPEG4:
+            case CODEC_TYPE_H263:
+            case CODEC_TYPE_MPEG2:
+                ret =  push_input_sc_codec(hComp);
+                break;
+            case CODEC_TYPE_H264:
+                ret = push_input_h264(hComp);
+                break;
+            case CODEC_TYPE_VC1:
+                ret = push_input_vc1(hComp);
+                break;
+            default:
+                break;
+        }
+        if (ret != OMX_ErrorNone) {
+            DEBUG_PRINT_ERROR("\n Pushing input Buffer Failed");
+            omx_report_error ();
+            break;
+        }
     }
 
-  }
-
-  while ((pdest_frame != NULL) && (psource_frame != NULL))
-  {
-    switch (codec_type_parse)
-    {
-      case CODEC_TYPE_MPEG4:
-      case CODEC_TYPE_H263:
-      case CODEC_TYPE_MPEG2:
-        ret =  push_input_sc_codec(hComp);
-      break;
-      case CODEC_TYPE_H264:
-        ret = push_input_h264(hComp);
-      break;
-      case CODEC_TYPE_VC1:
-        ret = push_input_vc1(hComp);
-      break;
-      default:
-      break;
-    }
-    if (ret != OMX_ErrorNone)
-    {
-      DEBUG_PRINT_ERROR("\n Pushing input Buffer Failed");
-      omx_report_error ();
-      break;
-    }
-  }
-
-  return ret;
+    return ret;
 }
 
 OMX_ERRORTYPE omx_vdec::push_input_sc_codec(OMX_HANDLETYPE hComp)
 {
-  OMX_U32 partial_frame = 1;
-  OMX_BOOL generate_ebd = OMX_TRUE;
-  unsigned address = 0, p2 = 0, id = 0;
+    OMX_U32 partial_frame = 1;
+    OMX_BOOL generate_ebd = OMX_TRUE;
+    unsigned address = 0, p2 = 0, id = 0;
 
-  DEBUG_PRINT_LOW("\n Start Parsing the bit stream address %p TimeStamp %lld",
-        psource_frame,psource_frame->nTimeStamp);
-  if (m_frame_parser.parse_sc_frame(psource_frame,
-                                       pdest_frame,&partial_frame) == -1)
-  {
-    DEBUG_PRINT_ERROR("\n Error In Parsing Return Error");
-    return OMX_ErrorBadParameter;
-  }
-
-  if (partial_frame == 0)
-  {
-    DEBUG_PRINT_LOW("\n Frame size %lu source %p frame count %d",
-          pdest_frame->nFilledLen,psource_frame,frame_count);
-
-
-    DEBUG_PRINT_LOW("\n TimeStamp updated %lld", pdest_frame->nTimeStamp);
-    /*First Parsed buffer will have only header Hence skip*/
-    if (frame_count == 0)
-    {
-      DEBUG_PRINT_LOW("\n H263/MPEG4 Codec First Frame ");
-
-      if(codec_type_parse == CODEC_TYPE_MPEG4 ||
-         codec_type_parse == CODEC_TYPE_DIVX) {
-        mp4StreamType psBits;
-        psBits.data = pdest_frame->pBuffer + pdest_frame->nOffset;
-        psBits.numBytes = pdest_frame->nFilledLen;
-        mp4_headerparser.parseHeader(&psBits);
-      }
-
-      frame_count++;
+    DEBUG_PRINT_LOW("\n Start Parsing the bit stream address %p TimeStamp %lld",
+            psource_frame,psource_frame->nTimeStamp);
+    if (m_frame_parser.parse_sc_frame(psource_frame,
+                pdest_frame,&partial_frame) == -1) {
+        DEBUG_PRINT_ERROR("\n Error In Parsing Return Error");
+        return OMX_ErrorBadParameter;
     }
-    else
-    {
-      pdest_frame->nFlags &= ~OMX_BUFFERFLAG_EOS;
-      if(pdest_frame->nFilledLen)
-      {
-        /*Push the frame to the Decoder*/
-        if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone)
-        {
-          return OMX_ErrorBadParameter;
+
+    if (partial_frame == 0) {
+        DEBUG_PRINT_LOW("\n Frame size %lu source %p frame count %d",
+                pdest_frame->nFilledLen,psource_frame,frame_count);
+
+
+        DEBUG_PRINT_LOW("\n TimeStamp updated %lld", pdest_frame->nTimeStamp);
+        /*First Parsed buffer will have only header Hence skip*/
+        if (frame_count == 0) {
+            DEBUG_PRINT_LOW("\n H263/MPEG4 Codec First Frame ");
+
+            if (codec_type_parse == CODEC_TYPE_MPEG4 ||
+                    codec_type_parse == CODEC_TYPE_DIVX) {
+                mp4StreamType psBits;
+                psBits.data = pdest_frame->pBuffer + pdest_frame->nOffset;
+                psBits.numBytes = pdest_frame->nFilledLen;
+                mp4_headerparser.parseHeader(&psBits);
+            }
+
+            frame_count++;
+        } else {
+            pdest_frame->nFlags &= ~OMX_BUFFERFLAG_EOS;
+            if (pdest_frame->nFilledLen) {
+                /*Push the frame to the Decoder*/
+                if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone) {
+                    return OMX_ErrorBadParameter;
+                }
+                frame_count++;
+                pdest_frame = NULL;
+
+                if (m_input_free_q.m_size) {
+                    m_input_free_q.pop_entry(&address,&p2,&id);
+                    pdest_frame = (OMX_BUFFERHEADERTYPE *) address;
+                    pdest_frame->nFilledLen = 0;
+                }
+            } else if (!(psource_frame->nFlags & OMX_BUFFERFLAG_EOS)) {
+                DEBUG_PRINT_ERROR("\nZero len buffer return back to POOL");
+                m_input_free_q.insert_entry((unsigned) pdest_frame, (unsigned)NULL,
+                        (unsigned)NULL);
+                pdest_frame = NULL;
+            }
         }
-        frame_count++;
-        pdest_frame = NULL;
-
-        if (m_input_free_q.m_size)
-        {
-          m_input_free_q.pop_entry(&address,&p2,&id);
-          pdest_frame = (OMX_BUFFERHEADERTYPE *) address;
-          pdest_frame->nFilledLen = 0;
+    } else {
+        DEBUG_PRINT_LOW("\n Not a Complete Frame %lu",pdest_frame->nFilledLen);
+        /*Check if Destination Buffer is full*/
+        if (pdest_frame->nAllocLen ==
+                pdest_frame->nFilledLen + pdest_frame->nOffset) {
+            DEBUG_PRINT_ERROR("\nERROR:Frame Not found though Destination Filled");
+            return OMX_ErrorStreamCorrupt;
         }
-      }
-      else if(!(psource_frame->nFlags & OMX_BUFFERFLAG_EOS))
-      {
-        DEBUG_PRINT_ERROR("\nZero len buffer return back to POOL");
-        m_input_free_q.insert_entry((unsigned) pdest_frame, (unsigned)NULL,
-                (unsigned)NULL);
-        pdest_frame = NULL;
-      }
     }
-  }
-  else
-  {
-    DEBUG_PRINT_LOW("\n Not a Complete Frame %lu",pdest_frame->nFilledLen);
-    /*Check if Destination Buffer is full*/
-    if (pdest_frame->nAllocLen ==
-        pdest_frame->nFilledLen + pdest_frame->nOffset)
-    {
-      DEBUG_PRINT_ERROR("\nERROR:Frame Not found though Destination Filled");
-      return OMX_ErrorStreamCorrupt;
-    }
-  }
 
-  if (psource_frame->nFilledLen == 0)
-  {
-    if (psource_frame->nFlags & OMX_BUFFERFLAG_EOS)
-    {
-      if (pdest_frame)
-      {
-        pdest_frame->nFlags |= psource_frame->nFlags;
-        DEBUG_PRINT_LOW("\n Frame Found start Decoding Size =%lu TimeStamp = %lld",
-                     pdest_frame->nFilledLen,pdest_frame->nTimeStamp);
-        DEBUG_PRINT_LOW("\n Found a frame size = %lu number = %d",
-                     pdest_frame->nFilledLen,frame_count++);
-        /*Push the frame to the Decoder*/
-        if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone)
-        {
-          return OMX_ErrorBadParameter;
+    if (psource_frame->nFilledLen == 0) {
+        if (psource_frame->nFlags & OMX_BUFFERFLAG_EOS) {
+            if (pdest_frame) {
+                pdest_frame->nFlags |= psource_frame->nFlags;
+                DEBUG_PRINT_LOW("\n Frame Found start Decoding Size =%lu TimeStamp = %lld",
+                        pdest_frame->nFilledLen,pdest_frame->nTimeStamp);
+                DEBUG_PRINT_LOW("\n Found a frame size = %lu number = %d",
+                        pdest_frame->nFilledLen,frame_count++);
+                /*Push the frame to the Decoder*/
+                if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone) {
+                    return OMX_ErrorBadParameter;
+                }
+                frame_count++;
+                pdest_frame = NULL;
+            } else {
+                DEBUG_PRINT_LOW("\n Last frame in else dest addr") ;
+                generate_ebd = OMX_FALSE;
+            }
         }
-        frame_count++;
-        pdest_frame = NULL;
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("\n Last frame in else dest addr") ;
-        generate_ebd = OMX_FALSE;
-      }
-   }
-    if(generate_ebd)
-    {
-      DEBUG_PRINT_LOW("\n Buffer Consumed return back to client %p",psource_frame);
-      m_cb.EmptyBufferDone (hComp,m_app_data,psource_frame);
-      psource_frame = NULL;
+        if (generate_ebd) {
+            DEBUG_PRINT_LOW("\n Buffer Consumed return back to client %p",psource_frame);
+            m_cb.EmptyBufferDone (hComp,m_app_data,psource_frame);
+            psource_frame = NULL;
 
-      if (m_input_pending_q.m_size)
-      {
-        DEBUG_PRINT_LOW("\n Pull Next source Buffer %p",psource_frame);
-        m_input_pending_q.pop_entry(&address,&p2,&id);
-        psource_frame = (OMX_BUFFERHEADERTYPE *) address;
-        DEBUG_PRINT_LOW("\n Next source Buffer %p time stamp %lld",psource_frame,
-                psource_frame->nTimeStamp);
-        DEBUG_PRINT_LOW("\n Next source Buffer flag %lu length %lu",
-        psource_frame->nFlags,psource_frame->nFilledLen);
-      }
+            if (m_input_pending_q.m_size) {
+                DEBUG_PRINT_LOW("\n Pull Next source Buffer %p",psource_frame);
+                m_input_pending_q.pop_entry(&address,&p2,&id);
+                psource_frame = (OMX_BUFFERHEADERTYPE *) address;
+                DEBUG_PRINT_LOW("\n Next source Buffer %p time stamp %lld",psource_frame,
+                        psource_frame->nTimeStamp);
+                DEBUG_PRINT_LOW("\n Next source Buffer flag %lu length %lu",
+                        psource_frame->nFlags,psource_frame->nFilledLen);
+            }
+        }
     }
-   }
-  return OMX_ErrorNone;
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_vdec::push_input_h264 (OMX_HANDLETYPE hComp)
 {
-  OMX_U32 partial_frame = 1;
-  unsigned address = 0, p2 = 0, id = 0;
-  OMX_BOOL isNewFrame = OMX_FALSE;
-  OMX_BOOL generate_ebd = OMX_TRUE;
+    OMX_U32 partial_frame = 1;
+    unsigned address = 0, p2 = 0, id = 0;
+    OMX_BOOL isNewFrame = OMX_FALSE;
+    OMX_BOOL generate_ebd = OMX_TRUE;
 
-  if (h264_scratch.pBuffer == NULL)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:H.264 Scratch Buffer not allocated");
-    return OMX_ErrorBadParameter;
-  }
-  DEBUG_PRINT_LOW("\n Pending h264_scratch.nFilledLen %lu "
-      "look_ahead_nal %d", h264_scratch.nFilledLen, look_ahead_nal);
-  DEBUG_PRINT_LOW("\n Pending pdest_frame->nFilledLen %lu",pdest_frame->nFilledLen);
-  if (h264_scratch.nFilledLen && look_ahead_nal)
-  {
-    look_ahead_nal = false;
-    if ((pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
-         h264_scratch.nFilledLen)
-    {
-      memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
-              h264_scratch.pBuffer,h264_scratch.nFilledLen);
-      pdest_frame->nFilledLen += h264_scratch.nFilledLen;
-      DEBUG_PRINT_LOW("\n Copy the previous NAL (h264 scratch) into Dest frame");
-      h264_scratch.nFilledLen = 0;
+    if (h264_scratch.pBuffer == NULL) {
+        DEBUG_PRINT_ERROR("\nERROR:H.264 Scratch Buffer not allocated");
+        return OMX_ErrorBadParameter;
     }
-    else
-    {
-      DEBUG_PRINT_ERROR("\n Error:1: Destination buffer overflow for H264");
-      return OMX_ErrorBadParameter;
-    }
-  }
-  if (nal_length == 0)
-  {
-    DEBUG_PRINT_LOW("\n Zero NAL, hence parse using start code");
-    if (m_frame_parser.parse_sc_frame(psource_frame,
-        &h264_scratch,&partial_frame) == -1)
-    {
-      DEBUG_PRINT_ERROR("\n Error In Parsing Return Error");
-      return OMX_ErrorBadParameter;
-    }
-  }
-  else
-  {
-    DEBUG_PRINT_LOW("\n Non-zero NAL length clip, hence parse with NAL size %d ",nal_length);
-    if (m_frame_parser.parse_h264_nallength(psource_frame,
-        &h264_scratch,&partial_frame) == -1)
-    {
-      DEBUG_PRINT_ERROR("\n Error In Parsing NAL size, Return Error");
-      return OMX_ErrorBadParameter;
-    }
-  }
-
-  if (partial_frame == 0)
-  {
-    if (nal_count == 0 && h264_scratch.nFilledLen == 0)
-    {
-      DEBUG_PRINT_LOW("\n First NAL with Zero Length, hence Skip");
-      nal_count++;
-      h264_scratch.nTimeStamp = psource_frame->nTimeStamp;
-      h264_scratch.nFlags = psource_frame->nFlags;
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("\n Parsed New NAL Length = %lu",h264_scratch.nFilledLen);
-      if(h264_scratch.nFilledLen)
-      {
-          h264_parser->parse_nal((OMX_U8*)h264_scratch.pBuffer, h264_scratch.nFilledLen,
-                                 NALU_TYPE_SPS);
-#ifndef PROCESS_EXTRADATA_IN_OUTPUT_PORT
-        if (client_extradata & OMX_TIMEINFO_EXTRADATA)
-          h264_parser->parse_nal((OMX_U8*)h264_scratch.pBuffer,
-                                  h264_scratch.nFilledLen, NALU_TYPE_SEI);
-        else if (client_extradata & OMX_FRAMEINFO_EXTRADATA)
-          // If timeinfo is present frame info from SEI is already processed
-          h264_parser->parse_nal((OMX_U8*)h264_scratch.pBuffer,
-                                  h264_scratch.nFilledLen, NALU_TYPE_SEI);
-#endif
-        m_frame_parser.mutils->isNewFrame(&h264_scratch, 0, isNewFrame);
-        nal_count++;
-        if (VALID_TS(h264_last_au_ts) && !VALID_TS(pdest_frame->nTimeStamp)) {
-          pdest_frame->nTimeStamp = h264_last_au_ts;
-          pdest_frame->nFlags = h264_last_au_flags;
-#ifdef PANSCAN_HDLR
-          if (client_extradata & OMX_FRAMEINFO_EXTRADATA)
-            h264_parser->update_panscan_data(h264_last_au_ts);
-#endif
-        }
-        if(m_frame_parser.mutils->nalu_type == NALU_TYPE_NON_IDR ||
-           m_frame_parser.mutils->nalu_type == NALU_TYPE_IDR) {
-          h264_last_au_ts = h264_scratch.nTimeStamp;
-          h264_last_au_flags = h264_scratch.nFlags;
-#ifndef PROCESS_EXTRADATA_IN_OUTPUT_PORT
-          if (client_extradata & OMX_TIMEINFO_EXTRADATA)
-          {
-            OMX_S64 ts_in_sei = h264_parser->process_ts_with_sei_vui(h264_last_au_ts);
-            if (!VALID_TS(h264_last_au_ts))
-              h264_last_au_ts = ts_in_sei;
-          }
-#endif
-        } else
-          h264_last_au_ts = LLONG_MAX;
-      }
-
-      if (!isNewFrame)
-      {
-        if ( (pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
-            h264_scratch.nFilledLen)
-        {
-          DEBUG_PRINT_LOW("\n Not a NewFrame Copy into Dest len %lu",
-              h264_scratch.nFilledLen);
-          memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
-              h264_scratch.pBuffer,h264_scratch.nFilledLen);
-          pdest_frame->nFilledLen += h264_scratch.nFilledLen;
-          if(m_frame_parser.mutils->nalu_type == NALU_TYPE_EOSEQ)
-            pdest_frame->nFlags |= QOMX_VIDEO_BUFFERFLAG_EOSEQ;
-          h264_scratch.nFilledLen = 0;
-        }
-        else
-        {
-          DEBUG_PRINT_LOW("\n Error:2: Destination buffer overflow for H264");
-          return OMX_ErrorBadParameter;
-        }
-      }
-      else
-      {
-        look_ahead_nal = true;
-        DEBUG_PRINT_LOW("\n Frame Found start Decoding Size =%lu TimeStamp = %llx",
-                     pdest_frame->nFilledLen,pdest_frame->nTimeStamp);
-        DEBUG_PRINT_LOW("\n Found a frame size = %lu number = %d",
-                     pdest_frame->nFilledLen,frame_count++);
-
-        if (pdest_frame->nFilledLen == 0)
-        {
-          DEBUG_PRINT_LOW("\n Copy the Current Frame since and push it");
-          look_ahead_nal = false;
-          if ( (pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
-               h264_scratch.nFilledLen)
-          {
+    DEBUG_PRINT_LOW("\n Pending h264_scratch.nFilledLen %lu "
+            "look_ahead_nal %d", h264_scratch.nFilledLen, look_ahead_nal);
+    DEBUG_PRINT_LOW("\n Pending pdest_frame->nFilledLen %lu",pdest_frame->nFilledLen);
+    if (h264_scratch.nFilledLen && look_ahead_nal) {
+        look_ahead_nal = false;
+        if ((pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
+                h264_scratch.nFilledLen) {
             memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
                     h264_scratch.pBuffer,h264_scratch.nFilledLen);
             pdest_frame->nFilledLen += h264_scratch.nFilledLen;
+            DEBUG_PRINT_LOW("\n Copy the previous NAL (h264 scratch) into Dest frame");
             h264_scratch.nFilledLen = 0;
-          }
-          else
-          {
-            DEBUG_PRINT_ERROR("\n Error:3: Destination buffer overflow for H264");
+        } else {
+            DEBUG_PRINT_ERROR("\n Error:1: Destination buffer overflow for H264");
             return OMX_ErrorBadParameter;
-          }
         }
-        else
-        {
-          if(psource_frame->nFilledLen || h264_scratch.nFilledLen)
-          {
-            DEBUG_PRINT_LOW("\n Reset the EOS Flag");
-            pdest_frame->nFlags &= ~OMX_BUFFERFLAG_EOS;
-          }
-          /*Push the frame to the Decoder*/
-          if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone)
-          {
+    }
+    if (nal_length == 0) {
+        DEBUG_PRINT_LOW("\n Zero NAL, hence parse using start code");
+        if (m_frame_parser.parse_sc_frame(psource_frame,
+                    &h264_scratch,&partial_frame) == -1) {
+            DEBUG_PRINT_ERROR("\n Error In Parsing Return Error");
             return OMX_ErrorBadParameter;
-          }
-          //frame_count++;
-          pdest_frame = NULL;
-          if (m_input_free_q.m_size)
-          {
-            m_input_free_q.pop_entry(&address,&p2,&id);
-            pdest_frame = (OMX_BUFFERHEADERTYPE *) address;
-            DEBUG_PRINT_LOW("\n Pop the next pdest_buffer %p",pdest_frame);
-            pdest_frame->nFilledLen = 0;
-            pdest_frame->nFlags = 0;
-            pdest_frame->nTimeStamp = LLONG_MAX;
-          }
         }
-      }
+    } else {
+        DEBUG_PRINT_LOW("\n Non-zero NAL length clip, hence parse with NAL size %d ",nal_length);
+        if (m_frame_parser.parse_h264_nallength(psource_frame,
+                    &h264_scratch,&partial_frame) == -1) {
+            DEBUG_PRINT_ERROR("\n Error In Parsing NAL size, Return Error");
+            return OMX_ErrorBadParameter;
+        }
     }
-  }
-  else
-  {
-    DEBUG_PRINT_LOW("\n Not a Complete Frame, pdest_frame->nFilledLen %lu",pdest_frame->nFilledLen);
-    /*Check if Destination Buffer is full*/
-    if (h264_scratch.nAllocLen ==
-        h264_scratch.nFilledLen + h264_scratch.nOffset)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: Frame Not found though Destination Filled");
-      return OMX_ErrorStreamCorrupt;
-    }
-  }
 
-  if (!psource_frame->nFilledLen)
-  {
-    DEBUG_PRINT_LOW("\n Buffer Consumed return source %p back to client",psource_frame);
-
-    if (psource_frame->nFlags & OMX_BUFFERFLAG_EOS)
-    {
-      if (pdest_frame)
-      {
-        DEBUG_PRINT_LOW("\n EOS Reached Pass Last Buffer");
-        if ( (pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
-             h264_scratch.nFilledLen)
-        {
-          memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
-                  h264_scratch.pBuffer,h264_scratch.nFilledLen);
-          pdest_frame->nFilledLen += h264_scratch.nFilledLen;
-          h264_scratch.nFilledLen = 0;
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("\nERROR:4: Destination buffer overflow for H264");
-          return OMX_ErrorBadParameter;
-        }
-        pdest_frame->nTimeStamp = h264_scratch.nTimeStamp;
-        pdest_frame->nFlags = h264_scratch.nFlags | psource_frame->nFlags;
-
-        DEBUG_PRINT_LOW("\n pdest_frame->nFilledLen =%lu TimeStamp = %llx",
-                     pdest_frame->nFilledLen,pdest_frame->nTimeStamp);
-        DEBUG_PRINT_LOW("\n Push AU frame number %d to driver", frame_count++);
+    if (partial_frame == 0) {
+        if (nal_count == 0 && h264_scratch.nFilledLen == 0) {
+            DEBUG_PRINT_LOW("\n First NAL with Zero Length, hence Skip");
+            nal_count++;
+            h264_scratch.nTimeStamp = psource_frame->nTimeStamp;
+            h264_scratch.nFlags = psource_frame->nFlags;
+        } else {
+            DEBUG_PRINT_LOW("\n Parsed New NAL Length = %lu",h264_scratch.nFilledLen);
+            if (h264_scratch.nFilledLen) {
+                h264_parser->parse_nal((OMX_U8*)h264_scratch.pBuffer, h264_scratch.nFilledLen,
+                        NALU_TYPE_SPS);
 #ifndef PROCESS_EXTRADATA_IN_OUTPUT_PORT
-        if (client_extradata & OMX_TIMEINFO_EXTRADATA)
-        {
-          OMX_S64 ts_in_sei = h264_parser->process_ts_with_sei_vui(pdest_frame->nTimeStamp);
-          if (!VALID_TS(pdest_frame->nTimeStamp))
-            pdest_frame->nTimeStamp = ts_in_sei;
-        }
+                if (client_extradata & OMX_TIMEINFO_EXTRADATA)
+                    h264_parser->parse_nal((OMX_U8*)h264_scratch.pBuffer,
+                            h264_scratch.nFilledLen, NALU_TYPE_SEI);
+                else if (client_extradata & OMX_FRAMEINFO_EXTRADATA)
+                    // If timeinfo is present frame info from SEI is already processed
+                    h264_parser->parse_nal((OMX_U8*)h264_scratch.pBuffer,
+                            h264_scratch.nFilledLen, NALU_TYPE_SEI);
 #endif
-        /*Push the frame to the Decoder*/
-        if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone)
-        {
-          return OMX_ErrorBadParameter;
+                m_frame_parser.mutils->isNewFrame(&h264_scratch, 0, isNewFrame);
+                nal_count++;
+                if (VALID_TS(h264_last_au_ts) && !VALID_TS(pdest_frame->nTimeStamp)) {
+                    pdest_frame->nTimeStamp = h264_last_au_ts;
+                    pdest_frame->nFlags = h264_last_au_flags;
+#ifdef PANSCAN_HDLR
+                    if (client_extradata & OMX_FRAMEINFO_EXTRADATA)
+                        h264_parser->update_panscan_data(h264_last_au_ts);
+#endif
+                }
+                if (m_frame_parser.mutils->nalu_type == NALU_TYPE_NON_IDR ||
+                        m_frame_parser.mutils->nalu_type == NALU_TYPE_IDR) {
+                    h264_last_au_ts = h264_scratch.nTimeStamp;
+                    h264_last_au_flags = h264_scratch.nFlags;
+#ifndef PROCESS_EXTRADATA_IN_OUTPUT_PORT
+                    if (client_extradata & OMX_TIMEINFO_EXTRADATA) {
+                        OMX_S64 ts_in_sei = h264_parser->process_ts_with_sei_vui(h264_last_au_ts);
+                        if (!VALID_TS(h264_last_au_ts))
+                            h264_last_au_ts = ts_in_sei;
+                    }
+#endif
+                } else
+                    h264_last_au_ts = LLONG_MAX;
+            }
+
+            if (!isNewFrame) {
+                if ( (pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
+                        h264_scratch.nFilledLen) {
+                    DEBUG_PRINT_LOW("\n Not a NewFrame Copy into Dest len %lu",
+                            h264_scratch.nFilledLen);
+                    memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
+                            h264_scratch.pBuffer,h264_scratch.nFilledLen);
+                    pdest_frame->nFilledLen += h264_scratch.nFilledLen;
+                    if (m_frame_parser.mutils->nalu_type == NALU_TYPE_EOSEQ)
+                        pdest_frame->nFlags |= QOMX_VIDEO_BUFFERFLAG_EOSEQ;
+                    h264_scratch.nFilledLen = 0;
+                } else {
+                    DEBUG_PRINT_LOW("\n Error:2: Destination buffer overflow for H264");
+                    return OMX_ErrorBadParameter;
+                }
+            } else {
+                look_ahead_nal = true;
+                DEBUG_PRINT_LOW("\n Frame Found start Decoding Size =%lu TimeStamp = %llx",
+                        pdest_frame->nFilledLen,pdest_frame->nTimeStamp);
+                DEBUG_PRINT_LOW("\n Found a frame size = %lu number = %d",
+                        pdest_frame->nFilledLen,frame_count++);
+
+                if (pdest_frame->nFilledLen == 0) {
+                    DEBUG_PRINT_LOW("\n Copy the Current Frame since and push it");
+                    look_ahead_nal = false;
+                    if ( (pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
+                            h264_scratch.nFilledLen) {
+                        memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
+                                h264_scratch.pBuffer,h264_scratch.nFilledLen);
+                        pdest_frame->nFilledLen += h264_scratch.nFilledLen;
+                        h264_scratch.nFilledLen = 0;
+                    } else {
+                        DEBUG_PRINT_ERROR("\n Error:3: Destination buffer overflow for H264");
+                        return OMX_ErrorBadParameter;
+                    }
+                } else {
+                    if (psource_frame->nFilledLen || h264_scratch.nFilledLen) {
+                        DEBUG_PRINT_LOW("\n Reset the EOS Flag");
+                        pdest_frame->nFlags &= ~OMX_BUFFERFLAG_EOS;
+                    }
+                    /*Push the frame to the Decoder*/
+                    if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone) {
+                        return OMX_ErrorBadParameter;
+                    }
+                    //frame_count++;
+                    pdest_frame = NULL;
+                    if (m_input_free_q.m_size) {
+                        m_input_free_q.pop_entry(&address,&p2,&id);
+                        pdest_frame = (OMX_BUFFERHEADERTYPE *) address;
+                        DEBUG_PRINT_LOW("\n Pop the next pdest_buffer %p",pdest_frame);
+                        pdest_frame->nFilledLen = 0;
+                        pdest_frame->nFlags = 0;
+                        pdest_frame->nTimeStamp = LLONG_MAX;
+                    }
+                }
+            }
         }
-        frame_count++;
-        pdest_frame = NULL;
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("\n Last frame in else dest addr %p size %lu",
-                     pdest_frame,h264_scratch.nFilledLen);
-        generate_ebd = OMX_FALSE;
-      }
+    } else {
+        DEBUG_PRINT_LOW("\n Not a Complete Frame, pdest_frame->nFilledLen %lu",pdest_frame->nFilledLen);
+        /*Check if Destination Buffer is full*/
+        if (h264_scratch.nAllocLen ==
+                h264_scratch.nFilledLen + h264_scratch.nOffset) {
+            DEBUG_PRINT_ERROR("\nERROR: Frame Not found though Destination Filled");
+            return OMX_ErrorStreamCorrupt;
+        }
     }
-  }
-  if(generate_ebd && !psource_frame->nFilledLen)
-  {
-    m_cb.EmptyBufferDone (hComp,m_app_data,psource_frame);
-    psource_frame = NULL;
-    if (m_input_pending_q.m_size)
-    {
-      DEBUG_PRINT_LOW("\n Pull Next source Buffer %p",psource_frame);
-      m_input_pending_q.pop_entry(&address,&p2,&id);
-      psource_frame = (OMX_BUFFERHEADERTYPE *) address;
-      DEBUG_PRINT_LOW("\nNext source Buffer flag %lu src length %lu",
-      psource_frame->nFlags,psource_frame->nFilledLen);
+
+    if (!psource_frame->nFilledLen) {
+        DEBUG_PRINT_LOW("\n Buffer Consumed return source %p back to client",psource_frame);
+
+        if (psource_frame->nFlags & OMX_BUFFERFLAG_EOS) {
+            if (pdest_frame) {
+                DEBUG_PRINT_LOW("\n EOS Reached Pass Last Buffer");
+                if ( (pdest_frame->nAllocLen - pdest_frame->nFilledLen) >=
+                        h264_scratch.nFilledLen) {
+                    memcpy ((pdest_frame->pBuffer + pdest_frame->nFilledLen),
+                            h264_scratch.pBuffer,h264_scratch.nFilledLen);
+                    pdest_frame->nFilledLen += h264_scratch.nFilledLen;
+                    h264_scratch.nFilledLen = 0;
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR:4: Destination buffer overflow for H264");
+                    return OMX_ErrorBadParameter;
+                }
+                pdest_frame->nTimeStamp = h264_scratch.nTimeStamp;
+                pdest_frame->nFlags = h264_scratch.nFlags | psource_frame->nFlags;
+
+                DEBUG_PRINT_LOW("\n pdest_frame->nFilledLen =%lu TimeStamp = %llx",
+                        pdest_frame->nFilledLen,pdest_frame->nTimeStamp);
+                DEBUG_PRINT_LOW("\n Push AU frame number %d to driver", frame_count++);
+#ifndef PROCESS_EXTRADATA_IN_OUTPUT_PORT
+                if (client_extradata & OMX_TIMEINFO_EXTRADATA) {
+                    OMX_S64 ts_in_sei = h264_parser->process_ts_with_sei_vui(pdest_frame->nTimeStamp);
+                    if (!VALID_TS(pdest_frame->nTimeStamp))
+                        pdest_frame->nTimeStamp = ts_in_sei;
+                }
+#endif
+                /*Push the frame to the Decoder*/
+                if (empty_this_buffer_proxy(hComp,pdest_frame) != OMX_ErrorNone) {
+                    return OMX_ErrorBadParameter;
+                }
+                frame_count++;
+                pdest_frame = NULL;
+            } else {
+                DEBUG_PRINT_LOW("\n Last frame in else dest addr %p size %lu",
+                        pdest_frame,h264_scratch.nFilledLen);
+                generate_ebd = OMX_FALSE;
+            }
+        }
     }
-  }
-  return OMX_ErrorNone;
+    if (generate_ebd && !psource_frame->nFilledLen) {
+        m_cb.EmptyBufferDone (hComp,m_app_data,psource_frame);
+        psource_frame = NULL;
+        if (m_input_pending_q.m_size) {
+            DEBUG_PRINT_LOW("\n Pull Next source Buffer %p",psource_frame);
+            m_input_pending_q.pop_entry(&address,&p2,&id);
+            psource_frame = (OMX_BUFFERHEADERTYPE *) address;
+            DEBUG_PRINT_LOW("\nNext source Buffer flag %lu src length %lu",
+                    psource_frame->nFlags,psource_frame->nFilledLen);
+        }
+    }
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_vdec::push_input_vc1 (OMX_HANDLETYPE hComp)
@@ -7899,61 +6994,47 @@
     OMX_U32 partial_frame = 1;
     OMX_U32 buf_len, dest_len;
 
-    if(first_frame == 0)
-    {
+    if (first_frame == 0) {
         first_frame = 1;
         DEBUG_PRINT_LOW("\nFirst i/p buffer for VC1 arbitrary bytes\n");
-        if(!m_vendor_config.pData)
-        {
+        if (!m_vendor_config.pData) {
             DEBUG_PRINT_LOW("\nCheck profile type in 1st source buffer\n");
             buf = psource_frame->pBuffer;
             buf_len = psource_frame->nFilledLen;
 
             if ((*((OMX_U32 *) buf) & VC1_SP_MP_START_CODE_MASK) ==
-                VC1_SP_MP_START_CODE)
-            {
+                    VC1_SP_MP_START_CODE) {
                 m_vc1_profile = VC1_SP_MP_RCV;
-            }
-            else if(*((OMX_U32 *) buf) & VC1_AP_SEQ_START_CODE)
-            {
+            } else if (*((OMX_U32 *) buf) & VC1_AP_SEQ_START_CODE) {
                 m_vc1_profile = VC1_AP;
-            }
-            else
-            {
+            } else {
                 DEBUG_PRINT_ERROR("\nInvalid sequence layer in first buffer\n");
                 return OMX_ErrorStreamCorrupt;
             }
-        }
-        else
-        {
+        } else {
             pdest = pdest_frame->pBuffer + pdest_frame->nFilledLen +
                 pdest_frame->nOffset;
             dest_len = pdest_frame->nAllocLen - (pdest_frame->nFilledLen +
-                pdest_frame->nOffset);
+                    pdest_frame->nOffset);
 
-            if(dest_len < m_vendor_config.nDataSize)
-            {
+            if (dest_len < m_vendor_config.nDataSize) {
                 DEBUG_PRINT_ERROR("\nDestination buffer full\n");
                 return OMX_ErrorBadParameter;
-            }
-            else
-            {
+            } else {
                 memcpy(pdest, m_vendor_config.pData, m_vendor_config.nDataSize);
                 pdest_frame->nFilledLen += m_vendor_config.nDataSize;
             }
         }
     }
 
-    switch(m_vc1_profile)
-    {
+    switch (m_vc1_profile) {
         case VC1_AP:
             DEBUG_PRINT_LOW("\n VC1 AP, hence parse using frame start code");
-            if (push_input_sc_codec(hComp) != OMX_ErrorNone)
-            {
+            if (push_input_sc_codec(hComp) != OMX_ErrorNone) {
                 DEBUG_PRINT_ERROR("\n Error In Parsing VC1 AP start code");
                 return OMX_ErrorBadParameter;
             }
-        break;
+            break;
 
         case VC1_SP_MP_RCV:
         default:
@@ -7965,132 +7046,125 @@
 
 #ifndef USE_ION
 bool omx_vdec::align_pmem_buffers(int pmem_fd, OMX_U32 buffer_size,
-                                  OMX_U32 alignment)
+        OMX_U32 alignment)
 {
-  struct pmem_allocation allocation;
-  allocation.size = buffer_size;
-  allocation.align = clip2(alignment);
-  if (allocation.align < 4096)
-  {
-    allocation.align = 4096;
-  }
-  if (ioctl(pmem_fd, PMEM_ALLOCATE_ALIGNED, &allocation) < 0)
-  {
-    DEBUG_PRINT_ERROR("\n Aligment(%u) failed with pmem driver Sz(%lu)",
-      allocation.align, allocation.size);
-    return false;
-  }
-  return true;
+    struct pmem_allocation allocation;
+    allocation.size = buffer_size;
+    allocation.align = clip2(alignment);
+    if (allocation.align < 4096) {
+        allocation.align = 4096;
+    }
+    if (ioctl(pmem_fd, PMEM_ALLOCATE_ALIGNED, &allocation) < 0) {
+        DEBUG_PRINT_ERROR("\n Aligment(%u) failed with pmem driver Sz(%lu)",
+                allocation.align, allocation.size);
+        return false;
+    }
+    return true;
 }
 #endif
 #ifdef USE_ION
 int omx_vdec::alloc_map_ion_memory(OMX_U32 buffer_size,
-              OMX_U32 alignment, struct ion_allocation_data *alloc_data,
-	      struct ion_fd_data *fd_data, int flag)
+        OMX_U32 alignment, struct ion_allocation_data *alloc_data,
+        struct ion_fd_data *fd_data, int flag)
 {
-  int fd = -EINVAL;
-  int rc = -EINVAL;
-  int ion_dev_flag;
-  struct vdec_ion ion_buf_info;
-  if (!alloc_data || buffer_size <= 0 || !fd_data) {
-     DEBUG_PRINT_ERROR("Invalid arguments to alloc_map_ion_memory\n");
-     return -EINVAL;
-  }
-  ion_dev_flag = O_RDONLY;
-  fd = open (MEM_DEVICE, ion_dev_flag);
-  if (fd < 0) {
-    DEBUG_PRINT_ERROR("opening ion device failed with fd = %d\n", fd);
-    return fd;
-  }
-  alloc_data->flags = 0;
-  if(!secure_mode && (flag & ION_FLAG_CACHED))
-  {
-    alloc_data->flags |= ION_FLAG_CACHED;
-  }
-  alloc_data->len = buffer_size;
-  alloc_data->align = clip2(alignment);
-  if (alloc_data->align < 4096)
-  {
-    alloc_data->align = 4096;
-  }
-  if ((secure_mode) && (flag & ION_SECURE))
-      alloc_data->flags |= ION_SECURE;
+    int fd = -EINVAL;
+    int rc = -EINVAL;
+    int ion_dev_flag;
+    struct vdec_ion ion_buf_info;
+    if (!alloc_data || buffer_size <= 0 || !fd_data) {
+        DEBUG_PRINT_ERROR("Invalid arguments to alloc_map_ion_memory\n");
+        return -EINVAL;
+    }
+    ion_dev_flag = O_RDONLY;
+    fd = open (MEM_DEVICE, ion_dev_flag);
+    if (fd < 0) {
+        DEBUG_PRINT_ERROR("opening ion device failed with fd = %d\n", fd);
+        return fd;
+    }
+    alloc_data->flags = 0;
+    if (!secure_mode && (flag & ION_FLAG_CACHED)) {
+        alloc_data->flags |= ION_FLAG_CACHED;
+    }
+    alloc_data->len = buffer_size;
+    alloc_data->align = clip2(alignment);
+    if (alloc_data->align < 4096) {
+        alloc_data->align = 4096;
+    }
+    if ((secure_mode) && (flag & ION_SECURE))
+        alloc_data->flags |= ION_SECURE;
 
-  alloc_data->heap_mask = ION_HEAP(ION_IOMMU_HEAP_ID);
-  if (secure_mode)
-	  alloc_data->heap_mask = ION_HEAP(MEM_HEAP_ID);
-  rc = ioctl(fd,ION_IOC_ALLOC,alloc_data);
-  if (rc || !alloc_data->handle) {
-    DEBUG_PRINT_ERROR("\n ION ALLOC memory failed ");
-    alloc_data->handle = NULL;
-    close(fd);
-    fd = -ENOMEM;
-    return fd;
-  }
-  fd_data->handle = alloc_data->handle;
-  rc = ioctl(fd,ION_IOC_MAP,fd_data);
-  if (rc) {
-    DEBUG_PRINT_ERROR("\n ION MAP failed ");
-    ion_buf_info.ion_alloc_data = *alloc_data;
-    ion_buf_info.ion_device_fd = fd;
-    ion_buf_info.fd_ion_data = *fd_data;
-    free_ion_memory(&ion_buf_info);
-    fd_data->fd =-1;
-    close(fd);
-    fd = -ENOMEM;
-  }
+    alloc_data->heap_mask = ION_HEAP(ION_IOMMU_HEAP_ID);
+    if (secure_mode)
+        alloc_data->heap_mask = ION_HEAP(MEM_HEAP_ID);
+    rc = ioctl(fd,ION_IOC_ALLOC,alloc_data);
+    if (rc || !alloc_data->handle) {
+        DEBUG_PRINT_ERROR("\n ION ALLOC memory failed ");
+        alloc_data->handle = NULL;
+        close(fd);
+        fd = -ENOMEM;
+        return fd;
+    }
+    fd_data->handle = alloc_data->handle;
+    rc = ioctl(fd,ION_IOC_MAP,fd_data);
+    if (rc) {
+        DEBUG_PRINT_ERROR("\n ION MAP failed ");
+        ion_buf_info.ion_alloc_data = *alloc_data;
+        ion_buf_info.ion_device_fd = fd;
+        ion_buf_info.fd_ion_data = *fd_data;
+        free_ion_memory(&ion_buf_info);
+        fd_data->fd =-1;
+        close(fd);
+        fd = -ENOMEM;
+    }
 
-  return fd;
+    return fd;
 }
 
-void omx_vdec::free_ion_memory(struct vdec_ion *buf_ion_info) {
+void omx_vdec::free_ion_memory(struct vdec_ion *buf_ion_info)
+{
 
-     if(!buf_ion_info) {
-       DEBUG_PRINT_ERROR("\n ION: free called with invalid fd/allocdata");
-       return;
-     }
-     if(ioctl(buf_ion_info->ion_device_fd,ION_IOC_FREE,
-             &buf_ion_info->ion_alloc_data.handle)) {
-       DEBUG_PRINT_ERROR("\n ION: free failed" );
-     }
-     close(buf_ion_info->ion_device_fd);
-     buf_ion_info->ion_device_fd = -1;
-     buf_ion_info->ion_alloc_data.handle = NULL;
-     buf_ion_info->fd_ion_data.fd = -1;
+    if (!buf_ion_info) {
+        DEBUG_PRINT_ERROR("\n ION: free called with invalid fd/allocdata");
+        return;
+    }
+    if (ioctl(buf_ion_info->ion_device_fd,ION_IOC_FREE,
+                &buf_ion_info->ion_alloc_data.handle)) {
+        DEBUG_PRINT_ERROR("\n ION: free failed" );
+    }
+    close(buf_ion_info->ion_device_fd);
+    buf_ion_info->ion_device_fd = -1;
+    buf_ion_info->ion_alloc_data.handle = NULL;
+    buf_ion_info->fd_ion_data.fd = -1;
 }
 #endif
 void omx_vdec::free_output_buffer_header()
 {
-  DEBUG_PRINT_HIGH("\n ALL output buffers are freed/released");
-  output_use_buffer = false;
-  ouput_egl_buffers = false;
+    DEBUG_PRINT_HIGH("\n ALL output buffers are freed/released");
+    output_use_buffer = false;
+    ouput_egl_buffers = false;
 
-  if (m_out_mem_ptr)
-  {
-    free (m_out_mem_ptr);
-    m_out_mem_ptr = NULL;
-  }
+    if (m_out_mem_ptr) {
+        free (m_out_mem_ptr);
+        m_out_mem_ptr = NULL;
+    }
 
-  if(m_platform_list)
-  {
-    free(m_platform_list);
-    m_platform_list = NULL;
-  }
+    if (m_platform_list) {
+        free(m_platform_list);
+        m_platform_list = NULL;
+    }
 
-  if (drv_ctx.ptr_respbuffer)
-  {
-    free (drv_ctx.ptr_respbuffer);
-    drv_ctx.ptr_respbuffer = NULL;
-  }
-  if (drv_ctx.ptr_outputbuffer)
-  {
-    free (drv_ctx.ptr_outputbuffer);
-    drv_ctx.ptr_outputbuffer = NULL;
-  }
+    if (drv_ctx.ptr_respbuffer) {
+        free (drv_ctx.ptr_respbuffer);
+        drv_ctx.ptr_respbuffer = NULL;
+    }
+    if (drv_ctx.ptr_outputbuffer) {
+        free (drv_ctx.ptr_outputbuffer);
+        drv_ctx.ptr_outputbuffer = NULL;
+    }
 #ifdef USE_ION
     if (drv_ctx.op_buf_ion_info) {
         DEBUG_PRINT_LOW("\n Free o/p ion context");
-	free(drv_ctx.op_buf_ion_info);
+        free(drv_ctx.op_buf_ion_info);
         drv_ctx.op_buf_ion_info = NULL;
     }
 #endif
@@ -8099,45 +7173,39 @@
 void omx_vdec::free_input_buffer_header()
 {
     input_use_buffer = false;
-    if (arbitrary_bytes)
-    {
-      if (m_frame_parser.mutils)
-      {
-        DEBUG_PRINT_LOW("\n Free utils parser");
-        delete (m_frame_parser.mutils);
-        m_frame_parser.mutils = NULL;
-      }
+    if (arbitrary_bytes) {
+        if (m_frame_parser.mutils) {
+            DEBUG_PRINT_LOW("\n Free utils parser");
+            delete (m_frame_parser.mutils);
+            m_frame_parser.mutils = NULL;
+        }
 
-      if (m_inp_heap_ptr)
-      {
-        DEBUG_PRINT_LOW("\n Free input Heap Pointer");
-        free (m_inp_heap_ptr);
-        m_inp_heap_ptr = NULL;
-      }
+        if (m_inp_heap_ptr) {
+            DEBUG_PRINT_LOW("\n Free input Heap Pointer");
+            free (m_inp_heap_ptr);
+            m_inp_heap_ptr = NULL;
+        }
 
-      if (m_phdr_pmem_ptr)
-      {
-        DEBUG_PRINT_LOW("\n Free input pmem header Pointer");
-        free (m_phdr_pmem_ptr);
-        m_phdr_pmem_ptr = NULL;
-      }
+        if (m_phdr_pmem_ptr) {
+            DEBUG_PRINT_LOW("\n Free input pmem header Pointer");
+            free (m_phdr_pmem_ptr);
+            m_phdr_pmem_ptr = NULL;
+        }
     }
-    if (m_inp_mem_ptr)
-    {
-      DEBUG_PRINT_LOW("\n Free input pmem Pointer area");
-      free (m_inp_mem_ptr);
-      m_inp_mem_ptr = NULL;
+    if (m_inp_mem_ptr) {
+        DEBUG_PRINT_LOW("\n Free input pmem Pointer area");
+        free (m_inp_mem_ptr);
+        m_inp_mem_ptr = NULL;
     }
-    if (drv_ctx.ptr_inputbuffer)
-    {
-      DEBUG_PRINT_LOW("\n Free Driver Context pointer");
-      free (drv_ctx.ptr_inputbuffer);
-      drv_ctx.ptr_inputbuffer = NULL;
+    if (drv_ctx.ptr_inputbuffer) {
+        DEBUG_PRINT_LOW("\n Free Driver Context pointer");
+        free (drv_ctx.ptr_inputbuffer);
+        drv_ctx.ptr_inputbuffer = NULL;
     }
 #ifdef USE_ION
     if (drv_ctx.ip_buf_ion_info) {
         DEBUG_PRINT_LOW("\n Free ion context");
-	free(drv_ctx.ip_buf_ion_info);
+        free(drv_ctx.ip_buf_ion_info);
         drv_ctx.ip_buf_ion_info = NULL;
     }
 #endif
@@ -8145,1560 +7213,1473 @@
 
 int omx_vdec::stream_off(OMX_U32 port)
 {
-	enum v4l2_buf_type btype;
-	int rc = 0;
-	enum v4l2_ports v4l2_port = OUTPUT_PORT;
+    enum v4l2_buf_type btype;
+    int rc = 0;
+    enum v4l2_ports v4l2_port = OUTPUT_PORT;
 
-	if (port == OMX_CORE_INPUT_PORT_INDEX) {
-		btype = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-		v4l2_port = OUTPUT_PORT;
-	} else if (port == OMX_CORE_OUTPUT_PORT_INDEX) {
-		btype = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		v4l2_port = CAPTURE_PORT;
-	} else if (port == OMX_ALL) {
-		int rc_input = stream_off(OMX_CORE_INPUT_PORT_INDEX);
-		int rc_output = stream_off(OMX_CORE_OUTPUT_PORT_INDEX);
+    if (port == OMX_CORE_INPUT_PORT_INDEX) {
+        btype = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+        v4l2_port = OUTPUT_PORT;
+    } else if (port == OMX_CORE_OUTPUT_PORT_INDEX) {
+        btype = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+        v4l2_port = CAPTURE_PORT;
+    } else if (port == OMX_ALL) {
+        int rc_input = stream_off(OMX_CORE_INPUT_PORT_INDEX);
+        int rc_output = stream_off(OMX_CORE_OUTPUT_PORT_INDEX);
 
-		if (!rc_input)
-			return rc_input;
-		else
-			return rc_output;
-	}
+        if (!rc_input)
+            return rc_input;
+        else
+            return rc_output;
+    }
 
-	if (!streaming[v4l2_port]) {
-		// already streamed off, warn and move on
-		DEBUG_PRINT_HIGH("Warning: Attempting to stream off on %d port,"
-				" which is already streamed off", v4l2_port);
-		return 0;
-	}
+    if (!streaming[v4l2_port]) {
+        // already streamed off, warn and move on
+        DEBUG_PRINT_HIGH("Warning: Attempting to stream off on %d port,"
+                " which is already streamed off", v4l2_port);
+        return 0;
+    }
 
-	DEBUG_PRINT_HIGH("Streaming off %d port", v4l2_port);
+    DEBUG_PRINT_HIGH("Streaming off %d port", v4l2_port);
 
-	rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_STREAMOFF, &btype);
-	if (rc) {
-		/*TODO: How to handle this case */
-		DEBUG_PRINT_ERROR("Failed to call streamoff on %d Port \n", v4l2_port);
-	} else {
-		streaming[v4l2_port] = false;
-	}
+    rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_STREAMOFF, &btype);
+    if (rc) {
+        /*TODO: How to handle this case */
+        DEBUG_PRINT_ERROR("Failed to call streamoff on %d Port \n", v4l2_port);
+    } else {
+        streaming[v4l2_port] = false;
+    }
 
-	return rc;
+    return rc;
 }
 
 OMX_ERRORTYPE omx_vdec::get_buffer_req(vdec_allocatorproperty *buffer_prop)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  struct v4l2_requestbuffers bufreq;
-  unsigned int buf_size = 0, extra_data_size = 0, client_extra_data_size = 0;
-  struct v4l2_format fmt;
-  int ret = 0;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    struct v4l2_requestbuffers bufreq;
+    unsigned int buf_size = 0, extra_data_size = 0, client_extra_data_size = 0;
+    struct v4l2_format fmt;
+    int ret = 0;
     DEBUG_PRINT_LOW("GetBufReq IN: ActCnt(%d) Size(%d)",
-    buffer_prop->actualcount, buffer_prop->buffer_size);
-	bufreq.memory = V4L2_MEMORY_USERPTR;
-	bufreq.count = 1;
-   if(buffer_prop->buffer_type == VDEC_BUFFER_TYPE_INPUT){
-    bufreq.type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-	fmt.type =V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-    fmt.fmt.pix_mp.pixelformat = output_capability;
-  }else if (buffer_prop->buffer_type == VDEC_BUFFER_TYPE_OUTPUT){
-    bufreq.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-	fmt.type =V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-    fmt.fmt.pix_mp.pixelformat = capture_capability;
-  }else {eRet = OMX_ErrorBadParameter;}
-  if(eRet==OMX_ErrorNone){
-  ret = ioctl(drv_ctx.video_driver_fd,VIDIOC_REQBUFS, &bufreq);
-  }
-  if(ret)
-  {
-    DEBUG_PRINT_ERROR("Requesting buffer requirements failed");
-	/*TODO: How to handle this case */
-    eRet = OMX_ErrorInsufficientResources;
-	return eRet;
-  }
-  else
-  {
-  buffer_prop->actualcount = bufreq.count;
-  buffer_prop->mincount = bufreq.count;
-  DEBUG_PRINT_HIGH("Count = %d \n ",bufreq.count);
-  }
-  DEBUG_PRINT_LOW("GetBufReq IN: ActCnt(%d) Size(%d)",
-    buffer_prop->actualcount, buffer_prop->buffer_size);
-
-  fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
-  fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
-
-  ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_G_FMT, &fmt);
-
-  update_resolution(fmt.fmt.pix_mp.width,
-		fmt.fmt.pix_mp.height,
-		fmt.fmt.pix_mp.plane_fmt[0].bytesperline,
-		fmt.fmt.pix_mp.plane_fmt[0].reserved[0]);
-  if (fmt.type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)
-      drv_ctx.num_planes = fmt.fmt.pix_mp.num_planes;
-  DEBUG_PRINT_HIGH("Buffer Size = %d \n ",fmt.fmt.pix_mp.plane_fmt[0].sizeimage);
-
-  if(ret)
-  {
-	/*TODO: How to handle this case */
-    DEBUG_PRINT_ERROR("Requesting buffer requirements failed");
-    eRet = OMX_ErrorInsufficientResources;
-  }
-  else
-  {
-    int extra_idx = 0;
-
-    eRet = is_video_session_supported();
-    if (eRet)
-      return eRet;
-
-    buffer_prop->buffer_size = fmt.fmt.pix_mp.plane_fmt[0].sizeimage;
-    buf_size = buffer_prop->buffer_size;
-    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;
-    } else if (extra_idx >= VIDEO_MAX_PLANES) {
-      DEBUG_PRINT_ERROR("Extradata index is more than allowed: %d\n", extra_idx);
-      return OMX_ErrorBadParameter;
+            buffer_prop->actualcount, buffer_prop->buffer_size);
+    bufreq.memory = V4L2_MEMORY_USERPTR;
+    bufreq.count = 1;
+    if (buffer_prop->buffer_type == VDEC_BUFFER_TYPE_INPUT) {
+        bufreq.type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+        fmt.type =V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+        fmt.fmt.pix_mp.pixelformat = output_capability;
+    } else if (buffer_prop->buffer_type == VDEC_BUFFER_TYPE_OUTPUT) {
+        bufreq.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+        fmt.type =V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+        fmt.fmt.pix_mp.pixelformat = capture_capability;
+    } else {
+        eRet = OMX_ErrorBadParameter;
     }
-    if (client_extradata & OMX_FRAMEINFO_EXTRADATA)
-    {
-      DEBUG_PRINT_HIGH("Frame info extra data enabled!");
-      client_extra_data_size += OMX_FRAMEINFO_EXTRADATA_SIZE;
+    if (eRet==OMX_ErrorNone) {
+        ret = ioctl(drv_ctx.video_driver_fd,VIDIOC_REQBUFS, &bufreq);
     }
-    if (client_extradata & OMX_INTERLACE_EXTRADATA)
-    {
-      client_extra_data_size += OMX_INTERLACE_EXTRADATA_SIZE;
+    if (ret) {
+        DEBUG_PRINT_ERROR("Requesting buffer requirements failed");
+        /*TODO: How to handle this case */
+        eRet = OMX_ErrorInsufficientResources;
+        return eRet;
+    } else {
+        buffer_prop->actualcount = bufreq.count;
+        buffer_prop->mincount = bufreq.count;
+        DEBUG_PRINT_HIGH("Count = %d \n ",bufreq.count);
     }
-    if (client_extradata & OMX_PORTDEF_EXTRADATA)
-    {
-      client_extra_data_size += OMX_PORTDEF_EXTRADATA_SIZE;
-      DEBUG_PRINT_HIGH("Smooth streaming enabled extra_data_size=%d\n",
-         client_extra_data_size);
+    DEBUG_PRINT_LOW("GetBufReq IN: ActCnt(%d) Size(%d)",
+            buffer_prop->actualcount, buffer_prop->buffer_size);
+
+    fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
+    fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
+
+    ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_G_FMT, &fmt);
+
+    update_resolution(fmt.fmt.pix_mp.width,
+            fmt.fmt.pix_mp.height,
+            fmt.fmt.pix_mp.plane_fmt[0].bytesperline,
+            fmt.fmt.pix_mp.plane_fmt[0].reserved[0]);
+    if (fmt.type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)
+        drv_ctx.num_planes = fmt.fmt.pix_mp.num_planes;
+    DEBUG_PRINT_HIGH("Buffer Size = %d \n ",fmt.fmt.pix_mp.plane_fmt[0].sizeimage);
+
+    if (ret) {
+        /*TODO: How to handle this case */
+        DEBUG_PRINT_ERROR("Requesting buffer requirements failed");
+        eRet = OMX_ErrorInsufficientResources;
+    } else {
+        int extra_idx = 0;
+
+        eRet = is_video_session_supported();
+        if (eRet)
+            return eRet;
+
+        buffer_prop->buffer_size = fmt.fmt.pix_mp.plane_fmt[0].sizeimage;
+        buf_size = buffer_prop->buffer_size;
+        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;
+        } else if (extra_idx >= VIDEO_MAX_PLANES) {
+            DEBUG_PRINT_ERROR("Extradata index is more than allowed: %d\n", extra_idx);
+            return OMX_ErrorBadParameter;
+        }
+        if (client_extradata & OMX_FRAMEINFO_EXTRADATA) {
+            DEBUG_PRINT_HIGH("Frame info extra data enabled!");
+            client_extra_data_size += OMX_FRAMEINFO_EXTRADATA_SIZE;
+        }
+        if (client_extradata & OMX_INTERLACE_EXTRADATA) {
+            client_extra_data_size += OMX_INTERLACE_EXTRADATA_SIZE;
+        }
+        if (client_extradata & OMX_PORTDEF_EXTRADATA) {
+            client_extra_data_size += OMX_PORTDEF_EXTRADATA_SIZE;
+            DEBUG_PRINT_HIGH("Smooth streaming enabled extra_data_size=%d\n",
+                    client_extra_data_size);
+        }
+        if (client_extra_data_size) {
+            client_extra_data_size += sizeof(OMX_OTHER_EXTRADATATYPE); //Space for terminator
+            buf_size = ((buf_size + 3)&(~3)); //Align extradata start address to 64Bit
+        }
+        drv_ctx.extradata_info.size = buffer_prop->actualcount * extra_data_size;
+        drv_ctx.extradata_info.count = buffer_prop->actualcount;
+        drv_ctx.extradata_info.buffer_size = extra_data_size;
+        buf_size += client_extra_data_size;
+        buf_size = (buf_size + buffer_prop->alignment - 1)&(~(buffer_prop->alignment - 1));
+        DEBUG_PRINT_LOW("GetBufReq UPDATE: ActCnt(%d) Size(%d) BufSize(%d)",
+                buffer_prop->actualcount, buffer_prop->buffer_size, buf_size);
+        if (in_reconfig) // BufReq will be set to driver when port is disabled
+            buffer_prop->buffer_size = buf_size;
+        else if (buf_size != buffer_prop->buffer_size) {
+            buffer_prop->buffer_size = buf_size;
+            eRet = set_buffer_req(buffer_prop);
+        }
     }
-    if (client_extra_data_size)
-    {
-      client_extra_data_size += sizeof(OMX_OTHER_EXTRADATATYPE); //Space for terminator
-      buf_size = ((buf_size + 3)&(~3)); //Align extradata start address to 64Bit
-    }
-    drv_ctx.extradata_info.size = buffer_prop->actualcount * extra_data_size;
-    drv_ctx.extradata_info.count = buffer_prop->actualcount;
-    drv_ctx.extradata_info.buffer_size = extra_data_size;
-    buf_size += client_extra_data_size;
-    buf_size = (buf_size + buffer_prop->alignment - 1)&(~(buffer_prop->alignment - 1));
-    DEBUG_PRINT_LOW("GetBufReq UPDATE: ActCnt(%d) Size(%d) BufSize(%d)",
-        buffer_prop->actualcount, buffer_prop->buffer_size, buf_size);
-    if (in_reconfig) // BufReq will be set to driver when port is disabled
-      buffer_prop->buffer_size = buf_size;
-    else if (buf_size != buffer_prop->buffer_size)
-    {
-      buffer_prop->buffer_size = buf_size;
-      eRet = set_buffer_req(buffer_prop);
-    }
-  }
-  DEBUG_PRINT_LOW("GetBufReq OUT: ActCnt(%d) Size(%d)",
-    buffer_prop->actualcount, buffer_prop->buffer_size);
-  return eRet;
+    DEBUG_PRINT_LOW("GetBufReq OUT: ActCnt(%d) Size(%d)",
+            buffer_prop->actualcount, buffer_prop->buffer_size);
+    return eRet;
 }
 
 OMX_ERRORTYPE omx_vdec::set_buffer_req(vdec_allocatorproperty *buffer_prop)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  unsigned buf_size = 0;
-  struct v4l2_format fmt;
-  struct v4l2_requestbuffers bufreq;
-  int ret;
-  DEBUG_PRINT_LOW("SetBufReq IN: ActCnt(%d) Size(%d)",
-    buffer_prop->actualcount, buffer_prop->buffer_size);
-  buf_size = (buffer_prop->buffer_size + buffer_prop->alignment - 1)&(~(buffer_prop->alignment - 1));
-  if (buf_size != buffer_prop->buffer_size)
-  {
-    DEBUG_PRINT_ERROR("Buffer size alignment error: Requested(%d) Required(%d)",
-      buffer_prop->buffer_size, buf_size);
-    eRet = OMX_ErrorBadParameter;
-  }
-  else
-  {
-    fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
-	fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    unsigned buf_size = 0;
+    struct v4l2_format fmt;
+    struct v4l2_requestbuffers bufreq;
+    int ret;
+    DEBUG_PRINT_LOW("SetBufReq IN: ActCnt(%d) Size(%d)",
+            buffer_prop->actualcount, buffer_prop->buffer_size);
+    buf_size = (buffer_prop->buffer_size + buffer_prop->alignment - 1)&(~(buffer_prop->alignment - 1));
+    if (buf_size != buffer_prop->buffer_size) {
+        DEBUG_PRINT_ERROR("Buffer size alignment error: Requested(%d) Required(%d)",
+                buffer_prop->buffer_size, buf_size);
+        eRet = OMX_ErrorBadParameter;
+    } else {
+        fmt.fmt.pix_mp.height = drv_ctx.video_resolution.frame_height;
+        fmt.fmt.pix_mp.width = drv_ctx.video_resolution.frame_width;
 
-	if (buffer_prop->buffer_type == VDEC_BUFFER_TYPE_INPUT){
-		fmt.type =V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-		fmt.fmt.pix_mp.pixelformat = output_capability;
-	} else if (buffer_prop->buffer_type == VDEC_BUFFER_TYPE_OUTPUT) {
-		fmt.type =V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		fmt.fmt.pix_mp.pixelformat = capture_capability;
-	} else {eRet = OMX_ErrorBadParameter;}
+        if (buffer_prop->buffer_type == VDEC_BUFFER_TYPE_INPUT) {
+            fmt.type =V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+            fmt.fmt.pix_mp.pixelformat = output_capability;
+        } else if (buffer_prop->buffer_type == VDEC_BUFFER_TYPE_OUTPUT) {
+            fmt.type =V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+            fmt.fmt.pix_mp.pixelformat = capture_capability;
+        } else {
+            eRet = OMX_ErrorBadParameter;
+        }
 
-	ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_FMT, &fmt);
-    if (ret)
-    {
-	  /*TODO: How to handle this case */
-      DEBUG_PRINT_ERROR("Setting buffer requirements (format) failed %d", ret);
-      eRet = OMX_ErrorInsufficientResources;
+        ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_S_FMT, &fmt);
+        if (ret) {
+            /*TODO: How to handle this case */
+            DEBUG_PRINT_ERROR("Setting buffer requirements (format) failed %d", ret);
+            eRet = OMX_ErrorInsufficientResources;
+        }
+
+        bufreq.memory = V4L2_MEMORY_USERPTR;
+        bufreq.count = buffer_prop->actualcount;
+        if (buffer_prop->buffer_type == VDEC_BUFFER_TYPE_INPUT) {
+            bufreq.type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+        } else if (buffer_prop->buffer_type == VDEC_BUFFER_TYPE_OUTPUT) {
+            bufreq.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+        } else {
+            eRet = OMX_ErrorBadParameter;
+        }
+
+        if (eRet==OMX_ErrorNone) {
+            ret = ioctl(drv_ctx.video_driver_fd,VIDIOC_REQBUFS, &bufreq);
+        }
+
+        if (ret) {
+            DEBUG_PRINT_ERROR("Setting buffer requirements (reqbufs) failed %d", ret);
+            /*TODO: How to handle this case */
+            eRet = OMX_ErrorInsufficientResources;
+        } else if (bufreq.count < buffer_prop->actualcount) {
+            DEBUG_PRINT_ERROR("Driver refused to change the number of buffers"
+                    " on v4l2 port %d to %d (prefers %d)", bufreq.type,
+                    buffer_prop->actualcount, bufreq.count);
+            eRet = OMX_ErrorInsufficientResources;
+        } else {
+            if (!client_buffers.update_buffer_req()) {
+                DEBUG_PRINT_ERROR("Setting c2D buffer requirements failed");
+                eRet = OMX_ErrorInsufficientResources;
+            }
+        }
     }
-
-	bufreq.memory = V4L2_MEMORY_USERPTR;
-	bufreq.count = buffer_prop->actualcount;
-	if(buffer_prop->buffer_type == VDEC_BUFFER_TYPE_INPUT) {
-		bufreq.type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-	} else if (buffer_prop->buffer_type == VDEC_BUFFER_TYPE_OUTPUT) {
-		bufreq.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-	} else {eRet = OMX_ErrorBadParameter;}
-
-	if (eRet==OMX_ErrorNone) {
-		ret = ioctl(drv_ctx.video_driver_fd,VIDIOC_REQBUFS, &bufreq);
-	}
-
-	if (ret)
-	{
-		DEBUG_PRINT_ERROR("Setting buffer requirements (reqbufs) failed %d", ret);
-		/*TODO: How to handle this case */
-		eRet = OMX_ErrorInsufficientResources;
-	} else if (bufreq.count < buffer_prop->actualcount) {
-		DEBUG_PRINT_ERROR("Driver refused to change the number of buffers"
-						" on v4l2 port %d to %d (prefers %d)", bufreq.type,
-						buffer_prop->actualcount, bufreq.count);
-		eRet = OMX_ErrorInsufficientResources;
-	} else {
-        if (!client_buffers.update_buffer_req()) {
-        DEBUG_PRINT_ERROR("Setting c2D buffer requirements failed");
-        eRet = OMX_ErrorInsufficientResources;
-      }
-    }
-  }
-  return eRet;
+    return eRet;
 }
 
 OMX_ERRORTYPE omx_vdec::update_picture_resolution()
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  return eRet;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    return eRet;
 }
 
 OMX_ERRORTYPE omx_vdec::update_portdef(OMX_PARAM_PORTDEFINITIONTYPE *portDefn)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  if (!portDefn)
-  {
-    return OMX_ErrorBadParameter;
-  }
-  DEBUG_PRINT_LOW("omx_vdec::update_portdef\n");
-  portDefn->nVersion.nVersion = OMX_SPEC_VERSION;
-  portDefn->nSize = sizeof(portDefn);
-  portDefn->eDomain    = OMX_PortDomainVideo;
-  if (drv_ctx.frame_rate.fps_denominator > 0)
-    portDefn->format.video.xFramerate = drv_ctx.frame_rate.fps_numerator /
-                                        drv_ctx.frame_rate.fps_denominator;
-  else {
-    DEBUG_PRINT_ERROR("Error: Divide by zero \n");
-    return OMX_ErrorBadParameter;
-  }
-  if (0 == portDefn->nPortIndex)
-  {
-    portDefn->eDir =  OMX_DirInput;
-    portDefn->nBufferCountActual = drv_ctx.ip_buf.actualcount;
-    portDefn->nBufferCountMin    = drv_ctx.ip_buf.mincount;
-    portDefn->nBufferSize        = drv_ctx.ip_buf.buffer_size;
-    portDefn->format.video.eColorFormat = OMX_COLOR_FormatUnused;
-    portDefn->format.video.eCompressionFormat = eCompressionFormat;
-    portDefn->bEnabled   = m_inp_bEnabled;
-    portDefn->bPopulated = m_inp_bPopulated;
-  }
-  else if (1 == portDefn->nPortIndex)
-  {
-    unsigned int buf_size = 0;
-    if (!client_buffers.update_buffer_req()) {
-      DEBUG_PRINT_ERROR("\n client_buffers.update_buffer_req Failed");
-      return OMX_ErrorHardware;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    if (!portDefn) {
+        return OMX_ErrorBadParameter;
     }
-    if (!client_buffers.get_buffer_req(buf_size)) {
-      DEBUG_PRINT_ERROR("\n update buffer requirements");
-      return OMX_ErrorHardware;
+    DEBUG_PRINT_LOW("omx_vdec::update_portdef\n");
+    portDefn->nVersion.nVersion = OMX_SPEC_VERSION;
+    portDefn->nSize = sizeof(portDefn);
+    portDefn->eDomain    = OMX_PortDomainVideo;
+    if (drv_ctx.frame_rate.fps_denominator > 0)
+        portDefn->format.video.xFramerate = drv_ctx.frame_rate.fps_numerator /
+            drv_ctx.frame_rate.fps_denominator;
+    else {
+        DEBUG_PRINT_ERROR("Error: Divide by zero \n");
+        return OMX_ErrorBadParameter;
     }
-    portDefn->nBufferSize = buf_size;
-    portDefn->eDir =  OMX_DirOutput;
-	portDefn->nBufferCountActual = drv_ctx.op_buf.actualcount;
-	portDefn->nBufferCountMin    = drv_ctx.op_buf.mincount;
-    portDefn->format.video.eCompressionFormat = OMX_VIDEO_CodingUnused;
-    portDefn->bEnabled   = m_out_bEnabled;
-    portDefn->bPopulated = m_out_bPopulated;
-    if (!client_buffers.get_color_format(portDefn->format.video.eColorFormat)) {
-        DEBUG_PRINT_ERROR("\n Error in getting color format");
-        return OMX_ErrorHardware;
+    if (0 == portDefn->nPortIndex) {
+        portDefn->eDir =  OMX_DirInput;
+        portDefn->nBufferCountActual = drv_ctx.ip_buf.actualcount;
+        portDefn->nBufferCountMin    = drv_ctx.ip_buf.mincount;
+        portDefn->nBufferSize        = drv_ctx.ip_buf.buffer_size;
+        portDefn->format.video.eColorFormat = OMX_COLOR_FormatUnused;
+        portDefn->format.video.eCompressionFormat = eCompressionFormat;
+        portDefn->bEnabled   = m_inp_bEnabled;
+        portDefn->bPopulated = m_inp_bPopulated;
+    } else if (1 == portDefn->nPortIndex) {
+        unsigned int buf_size = 0;
+        if (!client_buffers.update_buffer_req()) {
+            DEBUG_PRINT_ERROR("\n client_buffers.update_buffer_req Failed");
+            return OMX_ErrorHardware;
+        }
+        if (!client_buffers.get_buffer_req(buf_size)) {
+            DEBUG_PRINT_ERROR("\n update buffer requirements");
+            return OMX_ErrorHardware;
+        }
+        portDefn->nBufferSize = buf_size;
+        portDefn->eDir =  OMX_DirOutput;
+        portDefn->nBufferCountActual = drv_ctx.op_buf.actualcount;
+        portDefn->nBufferCountMin    = drv_ctx.op_buf.mincount;
+        portDefn->format.video.eCompressionFormat = OMX_VIDEO_CodingUnused;
+        portDefn->bEnabled   = m_out_bEnabled;
+        portDefn->bPopulated = m_out_bPopulated;
+        if (!client_buffers.get_color_format(portDefn->format.video.eColorFormat)) {
+            DEBUG_PRINT_ERROR("\n Error in getting color format");
+            return OMX_ErrorHardware;
+        }
+    } else {
+        portDefn->eDir = OMX_DirMax;
+        DEBUG_PRINT_LOW(" get_parameter: Bad Port idx %d",
+                (int)portDefn->nPortIndex);
+        eRet = OMX_ErrorBadPortIndex;
     }
-  }
-  else
-  {
-      portDefn->eDir = OMX_DirMax;
-    DEBUG_PRINT_LOW(" get_parameter: Bad Port idx %d",
-             (int)portDefn->nPortIndex);
-    eRet = OMX_ErrorBadPortIndex;
-  }
-  portDefn->format.video.nFrameHeight =  drv_ctx.video_resolution.frame_height;
-  portDefn->format.video.nFrameWidth  =  drv_ctx.video_resolution.frame_width;
-  portDefn->format.video.nStride = drv_ctx.video_resolution.stride;
-  portDefn->format.video.nSliceHeight = drv_ctx.video_resolution.scan_lines;
-  DEBUG_PRINT_HIGH("update_portdef Width = %lu Height = %lu Stride = %ld"
-    " SliceHeight = %lu \n", portDefn->format.video.nFrameWidth,
-    portDefn->format.video.nFrameHeight,
-    portDefn->format.video.nStride,
-    portDefn->format.video.nSliceHeight);
-  return eRet;
+    portDefn->format.video.nFrameHeight =  drv_ctx.video_resolution.frame_height;
+    portDefn->format.video.nFrameWidth  =  drv_ctx.video_resolution.frame_width;
+    portDefn->format.video.nStride = drv_ctx.video_resolution.stride;
+    portDefn->format.video.nSliceHeight = drv_ctx.video_resolution.scan_lines;
+    DEBUG_PRINT_HIGH("update_portdef Width = %lu Height = %lu Stride = %ld"
+            " SliceHeight = %lu \n", portDefn->format.video.nFrameWidth,
+            portDefn->format.video.nFrameHeight,
+            portDefn->format.video.nStride,
+            portDefn->format.video.nSliceHeight);
+    return eRet;
 
 }
 
 OMX_ERRORTYPE omx_vdec::allocate_output_headers()
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  OMX_BUFFERHEADERTYPE *bufHdr = NULL;
-  unsigned i= 0;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_BUFFERHEADERTYPE *bufHdr = NULL;
+    unsigned i= 0;
 
-  if(!m_out_mem_ptr) {
-    DEBUG_PRINT_HIGH("\n Use o/p buffer case - Header List allocation");
-    int nBufHdrSize        = 0;
-    int nPlatformEntrySize = 0;
-    int nPlatformListSize  = 0;
-    int nPMEMInfoSize = 0;
-    OMX_QCOM_PLATFORM_PRIVATE_LIST      *pPlatformList;
-    OMX_QCOM_PLATFORM_PRIVATE_ENTRY     *pPlatformEntry;
-    OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pPMEMInfo;
+    if (!m_out_mem_ptr) {
+        DEBUG_PRINT_HIGH("\n Use o/p buffer case - Header List allocation");
+        int nBufHdrSize        = 0;
+        int nPlatformEntrySize = 0;
+        int nPlatformListSize  = 0;
+        int nPMEMInfoSize = 0;
+        OMX_QCOM_PLATFORM_PRIVATE_LIST      *pPlatformList;
+        OMX_QCOM_PLATFORM_PRIVATE_ENTRY     *pPlatformEntry;
+        OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pPMEMInfo;
 
-    DEBUG_PRINT_LOW("Setting First Output Buffer(%d)\n",
-      drv_ctx.op_buf.actualcount);
-    nBufHdrSize        = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_BUFFERHEADERTYPE);
+        DEBUG_PRINT_LOW("Setting First Output Buffer(%d)\n",
+                drv_ctx.op_buf.actualcount);
+        nBufHdrSize        = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_BUFFERHEADERTYPE);
 
-    nPMEMInfoSize      = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO);
-    nPlatformListSize  = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_QCOM_PLATFORM_PRIVATE_LIST);
-    nPlatformEntrySize = drv_ctx.op_buf.actualcount *
-                         sizeof(OMX_QCOM_PLATFORM_PRIVATE_ENTRY);
+        nPMEMInfoSize      = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO);
+        nPlatformListSize  = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_QCOM_PLATFORM_PRIVATE_LIST);
+        nPlatformEntrySize = drv_ctx.op_buf.actualcount *
+            sizeof(OMX_QCOM_PLATFORM_PRIVATE_ENTRY);
 
-    DEBUG_PRINT_LOW("TotalBufHdr %d BufHdrSize %d PMEM %d PL %d\n",nBufHdrSize,
-                         sizeof(OMX_BUFFERHEADERTYPE),
-                         nPMEMInfoSize,
-                         nPlatformListSize);
-    DEBUG_PRINT_LOW("PE %d bmSize %d \n",nPlatformEntrySize,
-                         m_out_bm_count);
-    m_out_mem_ptr = (OMX_BUFFERHEADERTYPE  *)calloc(nBufHdrSize,1);
-    // Alloc mem for platform specific info
-    char *pPtr=NULL;
-    pPtr = (char*) calloc(nPlatformListSize + nPlatformEntrySize +
-                                     nPMEMInfoSize,1);
-    drv_ctx.ptr_outputbuffer = (struct vdec_bufferpayload *) \
-      calloc (sizeof(struct vdec_bufferpayload),
-      drv_ctx.op_buf.actualcount);
-    drv_ctx.ptr_respbuffer = (struct vdec_output_frameinfo  *)\
-      calloc (sizeof (struct vdec_output_frameinfo),
-      drv_ctx.op_buf.actualcount);
+        DEBUG_PRINT_LOW("TotalBufHdr %d BufHdrSize %d PMEM %d PL %d\n",nBufHdrSize,
+                sizeof(OMX_BUFFERHEADERTYPE),
+                nPMEMInfoSize,
+                nPlatformListSize);
+        DEBUG_PRINT_LOW("PE %d bmSize %d \n",nPlatformEntrySize,
+                m_out_bm_count);
+        m_out_mem_ptr = (OMX_BUFFERHEADERTYPE  *)calloc(nBufHdrSize,1);
+        // Alloc mem for platform specific info
+        char *pPtr=NULL;
+        pPtr = (char*) calloc(nPlatformListSize + nPlatformEntrySize +
+                nPMEMInfoSize,1);
+        drv_ctx.ptr_outputbuffer = (struct vdec_bufferpayload *) \
+                       calloc (sizeof(struct vdec_bufferpayload),
+                               drv_ctx.op_buf.actualcount);
+        drv_ctx.ptr_respbuffer = (struct vdec_output_frameinfo  *)\
+                     calloc (sizeof (struct vdec_output_frameinfo),
+                             drv_ctx.op_buf.actualcount);
 #ifdef USE_ION
-    drv_ctx.op_buf_ion_info = (struct vdec_ion * ) \
-      calloc (sizeof(struct vdec_ion),drv_ctx.op_buf.actualcount);
+        drv_ctx.op_buf_ion_info = (struct vdec_ion * ) \
+                      calloc (sizeof(struct vdec_ion),drv_ctx.op_buf.actualcount);
 #endif
 
-    if(m_out_mem_ptr && pPtr && drv_ctx.ptr_outputbuffer
-       && drv_ctx.ptr_respbuffer)
-    {
-      bufHdr          =  m_out_mem_ptr;
-      m_platform_list = (OMX_QCOM_PLATFORM_PRIVATE_LIST *)(pPtr);
-      m_platform_entry= (OMX_QCOM_PLATFORM_PRIVATE_ENTRY *)
-                        (((char *) m_platform_list)  + nPlatformListSize);
-      m_pmem_info     = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
-                        (((char *) m_platform_entry) + nPlatformEntrySize);
-      pPlatformList   = m_platform_list;
-      pPlatformEntry  = m_platform_entry;
-      pPMEMInfo       = m_pmem_info;
+        if (m_out_mem_ptr && pPtr && drv_ctx.ptr_outputbuffer
+                && drv_ctx.ptr_respbuffer) {
+            bufHdr          =  m_out_mem_ptr;
+            m_platform_list = (OMX_QCOM_PLATFORM_PRIVATE_LIST *)(pPtr);
+            m_platform_entry= (OMX_QCOM_PLATFORM_PRIVATE_ENTRY *)
+                (((char *) m_platform_list)  + nPlatformListSize);
+            m_pmem_info     = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
+                (((char *) m_platform_entry) + nPlatformEntrySize);
+            pPlatformList   = m_platform_list;
+            pPlatformEntry  = m_platform_entry;
+            pPMEMInfo       = m_pmem_info;
 
-      DEBUG_PRINT_LOW("Memory Allocation Succeeded for OUT port%p\n",m_out_mem_ptr);
+            DEBUG_PRINT_LOW("Memory Allocation Succeeded for OUT port%p\n",m_out_mem_ptr);
 
-      // Settting the entire storage nicely
-      DEBUG_PRINT_LOW("bHdr %p OutMem %p PE %p\n",bufHdr,
-                      m_out_mem_ptr,pPlatformEntry);
-      DEBUG_PRINT_LOW(" Pmem Info = %p \n",pPMEMInfo);
-      for(i=0; i < drv_ctx.op_buf.actualcount ; i++)
-      {
-        bufHdr->nSize              = sizeof(OMX_BUFFERHEADERTYPE);
-        bufHdr->nVersion.nVersion  = OMX_SPEC_VERSION;
-        // Set the values when we determine the right HxW param
-        bufHdr->nAllocLen          = 0;
-        bufHdr->nFilledLen         = 0;
-        bufHdr->pAppPrivate        = NULL;
-        bufHdr->nOutputPortIndex   = OMX_CORE_OUTPUT_PORT_INDEX;
-        pPlatformEntry->type       = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
-        pPlatformEntry->entry      = pPMEMInfo;
-        // Initialize the Platform List
-        pPlatformList->nEntries    = 1;
-        pPlatformList->entryList   = pPlatformEntry;
-        // Keep pBuffer NULL till vdec is opened
-        bufHdr->pBuffer            = NULL;
-        pPMEMInfo->offset          =  0;
-        pPMEMInfo->pmem_fd = 0;
-        bufHdr->pPlatformPrivate = pPlatformList;
-        drv_ctx.ptr_outputbuffer[i].pmem_fd = -1;
+            // Settting the entire storage nicely
+            DEBUG_PRINT_LOW("bHdr %p OutMem %p PE %p\n",bufHdr,
+                    m_out_mem_ptr,pPlatformEntry);
+            DEBUG_PRINT_LOW(" Pmem Info = %p \n",pPMEMInfo);
+            for (i=0; i < drv_ctx.op_buf.actualcount ; i++) {
+                bufHdr->nSize              = sizeof(OMX_BUFFERHEADERTYPE);
+                bufHdr->nVersion.nVersion  = OMX_SPEC_VERSION;
+                // Set the values when we determine the right HxW param
+                bufHdr->nAllocLen          = 0;
+                bufHdr->nFilledLen         = 0;
+                bufHdr->pAppPrivate        = NULL;
+                bufHdr->nOutputPortIndex   = OMX_CORE_OUTPUT_PORT_INDEX;
+                pPlatformEntry->type       = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
+                pPlatformEntry->entry      = pPMEMInfo;
+                // Initialize the Platform List
+                pPlatformList->nEntries    = 1;
+                pPlatformList->entryList   = pPlatformEntry;
+                // Keep pBuffer NULL till vdec is opened
+                bufHdr->pBuffer            = NULL;
+                pPMEMInfo->offset          =  0;
+                pPMEMInfo->pmem_fd = 0;
+                bufHdr->pPlatformPrivate = pPlatformList;
+                drv_ctx.ptr_outputbuffer[i].pmem_fd = -1;
 #ifdef USE_ION
-        drv_ctx.op_buf_ion_info[i].ion_device_fd =-1;
+                drv_ctx.op_buf_ion_info[i].ion_device_fd =-1;
 #endif
-        /*Create a mapping between buffers*/
-        bufHdr->pOutputPortPrivate = &drv_ctx.ptr_respbuffer[i];
-        drv_ctx.ptr_respbuffer[i].client_data = (void *) \
-                                            &drv_ctx.ptr_outputbuffer[i];
-        // Move the buffer and buffer header pointers
-        bufHdr++;
-        pPMEMInfo++;
-        pPlatformEntry++;
-        pPlatformList++;
-      }
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("Output buf mem alloc failed[0x%p][0x%p]\n",\
-                                        m_out_mem_ptr, pPtr);
-      if(m_out_mem_ptr)
-      {
-        free(m_out_mem_ptr);
-        m_out_mem_ptr = NULL;
-      }
-      if(pPtr)
-      {
-        free(pPtr);
-        pPtr = NULL;
-      }
-      if(drv_ctx.ptr_outputbuffer)
-      {
-        free(drv_ctx.ptr_outputbuffer);
-        drv_ctx.ptr_outputbuffer = NULL;
-      }
-      if(drv_ctx.ptr_respbuffer)
-      {
-        free(drv_ctx.ptr_respbuffer);
-        drv_ctx.ptr_respbuffer = NULL;
-      }
+                /*Create a mapping between buffers*/
+                bufHdr->pOutputPortPrivate = &drv_ctx.ptr_respbuffer[i];
+                drv_ctx.ptr_respbuffer[i].client_data = (void *) \
+                                    &drv_ctx.ptr_outputbuffer[i];
+                // Move the buffer and buffer header pointers
+                bufHdr++;
+                pPMEMInfo++;
+                pPlatformEntry++;
+                pPlatformList++;
+            }
+        } else {
+            DEBUG_PRINT_ERROR("Output buf mem alloc failed[0x%p][0x%p]\n",\
+                    m_out_mem_ptr, pPtr);
+            if (m_out_mem_ptr) {
+                free(m_out_mem_ptr);
+                m_out_mem_ptr = NULL;
+            }
+            if (pPtr) {
+                free(pPtr);
+                pPtr = NULL;
+            }
+            if (drv_ctx.ptr_outputbuffer) {
+                free(drv_ctx.ptr_outputbuffer);
+                drv_ctx.ptr_outputbuffer = NULL;
+            }
+            if (drv_ctx.ptr_respbuffer) {
+                free(drv_ctx.ptr_respbuffer);
+                drv_ctx.ptr_respbuffer = NULL;
+            }
 #ifdef USE_ION
-    if (drv_ctx.op_buf_ion_info) {
-        DEBUG_PRINT_LOW("\n Free o/p ion context");
-	free(drv_ctx.op_buf_ion_info);
-        drv_ctx.op_buf_ion_info = NULL;
-    }
+            if (drv_ctx.op_buf_ion_info) {
+                DEBUG_PRINT_LOW("\n Free o/p ion context");
+                free(drv_ctx.op_buf_ion_info);
+                drv_ctx.op_buf_ion_info = NULL;
+            }
 #endif
-      eRet =  OMX_ErrorInsufficientResources;
+            eRet =  OMX_ErrorInsufficientResources;
+        }
+    } else {
+        eRet =  OMX_ErrorInsufficientResources;
     }
-  } else {
-    eRet =  OMX_ErrorInsufficientResources;
-  }
-  return eRet;
+    return eRet;
 }
 
 void omx_vdec::complete_pending_buffer_done_cbs()
 {
-  unsigned p1;
-  unsigned p2;
-  unsigned ident;
-  omx_cmd_queue tmp_q, pending_bd_q;
-  pthread_mutex_lock(&m_lock);
-  // pop all pending GENERATE FDB from ftb queue
-  while (m_ftb_q.m_size)
-  {
-    m_ftb_q.pop_entry(&p1,&p2,&ident);
-    if(ident == OMX_COMPONENT_GENERATE_FBD)
-    {
-      pending_bd_q.insert_entry(p1,p2,ident);
-    }
-    else
-    {
-      tmp_q.insert_entry(p1,p2,ident);
-    }
-  }
-  //return all non GENERATE FDB to ftb queue
-  while(tmp_q.m_size)
-  {
-    tmp_q.pop_entry(&p1,&p2,&ident);
-    m_ftb_q.insert_entry(p1,p2,ident);
-  }
-  // pop all pending GENERATE EDB from etb queue
-  while (m_etb_q.m_size)
-  {
-    m_etb_q.pop_entry(&p1,&p2,&ident);
-    if(ident == OMX_COMPONENT_GENERATE_EBD)
-    {
-      pending_bd_q.insert_entry(p1,p2,ident);
-    }
-    else
-    {
-      tmp_q.insert_entry(p1,p2,ident);
-    }
-  }
-  //return all non GENERATE FDB to etb queue
-  while(tmp_q.m_size)
-  {
-    tmp_q.pop_entry(&p1,&p2,&ident);
-    m_etb_q.insert_entry(p1,p2,ident);
-  }
-  pthread_mutex_unlock(&m_lock);
-  // process all pending buffer dones
-  while(pending_bd_q.m_size)
-  {
-    pending_bd_q.pop_entry(&p1,&p2,&ident);
-    switch(ident)
-    {
-      case OMX_COMPONENT_GENERATE_EBD:
-        if(empty_buffer_done(&m_cmp, (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: empty_buffer_done() failed!\n");
-          omx_report_error ();
+    unsigned p1;
+    unsigned p2;
+    unsigned ident;
+    omx_cmd_queue tmp_q, pending_bd_q;
+    pthread_mutex_lock(&m_lock);
+    // pop all pending GENERATE FDB from ftb queue
+    while (m_ftb_q.m_size) {
+        m_ftb_q.pop_entry(&p1,&p2,&ident);
+        if (ident == OMX_COMPONENT_GENERATE_FBD) {
+            pending_bd_q.insert_entry(p1,p2,ident);
+        } else {
+            tmp_q.insert_entry(p1,p2,ident);
         }
-        break;
+    }
+    //return all non GENERATE FDB to ftb queue
+    while (tmp_q.m_size) {
+        tmp_q.pop_entry(&p1,&p2,&ident);
+        m_ftb_q.insert_entry(p1,p2,ident);
+    }
+    // pop all pending GENERATE EDB from etb queue
+    while (m_etb_q.m_size) {
+        m_etb_q.pop_entry(&p1,&p2,&ident);
+        if (ident == OMX_COMPONENT_GENERATE_EBD) {
+            pending_bd_q.insert_entry(p1,p2,ident);
+        } else {
+            tmp_q.insert_entry(p1,p2,ident);
+        }
+    }
+    //return all non GENERATE FDB to etb queue
+    while (tmp_q.m_size) {
+        tmp_q.pop_entry(&p1,&p2,&ident);
+        m_etb_q.insert_entry(p1,p2,ident);
+    }
+    pthread_mutex_unlock(&m_lock);
+    // process all pending buffer dones
+    while (pending_bd_q.m_size) {
+        pending_bd_q.pop_entry(&p1,&p2,&ident);
+        switch (ident) {
+            case OMX_COMPONENT_GENERATE_EBD:
+                if (empty_buffer_done(&m_cmp, (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone) {
+                    DEBUG_PRINT_ERROR("\nERROR: empty_buffer_done() failed!\n");
+                    omx_report_error ();
+                }
+                break;
 
-      case OMX_COMPONENT_GENERATE_FBD:
-        if(fill_buffer_done(&m_cmp, (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone )
-        {
-          DEBUG_PRINT_ERROR("\nERROR: fill_buffer_done() failed!\n");
-          omx_report_error ();
+            case OMX_COMPONENT_GENERATE_FBD:
+                if (fill_buffer_done(&m_cmp, (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone ) {
+                    DEBUG_PRINT_ERROR("\nERROR: fill_buffer_done() failed!\n");
+                    omx_report_error ();
+                }
+                break;
         }
-        break;
     }
-  }
 }
 
 void omx_vdec::set_frame_rate(OMX_S64 act_timestamp)
 {
-  OMX_U32 new_frame_interval = 0;
-  if (VALID_TS(act_timestamp) && VALID_TS(prev_ts) && act_timestamp != prev_ts
-     && llabs(act_timestamp - prev_ts) > 2000)
-  {
-    new_frame_interval = client_set_fps ? frm_int :
-        llabs(act_timestamp - prev_ts);
-    if (new_frame_interval < frm_int || frm_int == 0)
-    {
-      frm_int = new_frame_interval;
-      if(frm_int)
-      {
-        drv_ctx.frame_rate.fps_numerator = 1e6;
-        drv_ctx.frame_rate.fps_denominator = frm_int;
-        DEBUG_PRINT_LOW("set_frame_rate: frm_int(%lu) fps(%f)",
-                         frm_int, drv_ctx.frame_rate.fps_numerator /
-                         (float)drv_ctx.frame_rate.fps_denominator);
+    OMX_U32 new_frame_interval = 0;
+    if (VALID_TS(act_timestamp) && VALID_TS(prev_ts) && act_timestamp != prev_ts
+            && llabs(act_timestamp - prev_ts) > 2000) {
+        new_frame_interval = client_set_fps ? frm_int :
+            llabs(act_timestamp - prev_ts);
+        if (new_frame_interval < frm_int || frm_int == 0) {
+            frm_int = new_frame_interval;
+            if (frm_int) {
+                drv_ctx.frame_rate.fps_numerator = 1e6;
+                drv_ctx.frame_rate.fps_denominator = frm_int;
+                DEBUG_PRINT_LOW("set_frame_rate: frm_int(%lu) fps(%f)",
+                        frm_int, drv_ctx.frame_rate.fps_numerator /
+                        (float)drv_ctx.frame_rate.fps_denominator);
 
-        /* We need to report the difference between this FBD and the previous FBD
-         * back to the driver for clock scaling purposes. */
-        struct v4l2_outputparm oparm;
-        /*XXX: we're providing timing info as seconds per frame rather than frames
-         * per second.*/
-        oparm.timeperframe.numerator = drv_ctx.frame_rate.fps_denominator;
-        oparm.timeperframe.denominator = drv_ctx.frame_rate.fps_numerator;
+                /* We need to report the difference between this FBD and the previous FBD
+                 * back to the driver for clock scaling purposes. */
+                struct v4l2_outputparm oparm;
+                /*XXX: we're providing timing info as seconds per frame rather than frames
+                 * per second.*/
+                oparm.timeperframe.numerator = drv_ctx.frame_rate.fps_denominator;
+                oparm.timeperframe.denominator = drv_ctx.frame_rate.fps_numerator;
 
-        struct v4l2_streamparm sparm;
-        sparm.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-        sparm.parm.output = oparm;
-        if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_PARM, &sparm))
-        {
-            DEBUG_PRINT_ERROR("Unable to convey fps info to driver, \
-                    performance might be affected");
+                struct v4l2_streamparm sparm;
+                sparm.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+                sparm.parm.output = oparm;
+                if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_PARM, &sparm)) {
+                    DEBUG_PRINT_ERROR("Unable to convey fps info to driver, \
+                            performance might be affected");
+                }
+
+            }
         }
-
-      }
     }
-  }
-  prev_ts = act_timestamp;
+    prev_ts = act_timestamp;
 }
 
 void omx_vdec::adjust_timestamp(OMX_S64 &act_timestamp)
 {
-  if (rst_prev_ts && VALID_TS(act_timestamp))
-  {
-    prev_ts = act_timestamp;
-    rst_prev_ts = false;
-  }
-  else if (VALID_TS(prev_ts))
-  {
-    bool codec_cond = (drv_ctx.timestamp_adjust)?
-                      (!VALID_TS(act_timestamp) || (((act_timestamp > prev_ts)?
-                      (act_timestamp - prev_ts):(prev_ts - act_timestamp)) <= 2000)):
-                      (!VALID_TS(act_timestamp) || act_timestamp == prev_ts);
-    if(frm_int > 0 && codec_cond)
-    {
-      DEBUG_PRINT_LOW("adjust_timestamp: original ts[%lld]", act_timestamp);
-      act_timestamp = prev_ts + frm_int;
-      DEBUG_PRINT_LOW("adjust_timestamp: predicted ts[%lld]", act_timestamp);
-      prev_ts = act_timestamp;
+    if (rst_prev_ts && VALID_TS(act_timestamp)) {
+        prev_ts = act_timestamp;
+        rst_prev_ts = false;
+    } else if (VALID_TS(prev_ts)) {
+        bool codec_cond = (drv_ctx.timestamp_adjust)?
+            (!VALID_TS(act_timestamp) || (((act_timestamp > prev_ts)?
+                               (act_timestamp - prev_ts):(prev_ts - act_timestamp)) <= 2000)):
+            (!VALID_TS(act_timestamp) || act_timestamp == prev_ts);
+        if (frm_int > 0 && codec_cond) {
+            DEBUG_PRINT_LOW("adjust_timestamp: original ts[%lld]", act_timestamp);
+            act_timestamp = prev_ts + frm_int;
+            DEBUG_PRINT_LOW("adjust_timestamp: predicted ts[%lld]", act_timestamp);
+            prev_ts = act_timestamp;
+        } else
+            set_frame_rate(act_timestamp);
+    } else if (frm_int > 0)          // In this case the frame rate was set along
+    {                               // with the port definition, start ts with 0
+        act_timestamp = prev_ts = 0;  // and correct if a valid ts is received.
+        rst_prev_ts = true;
     }
-    else
-      set_frame_rate(act_timestamp);
-  }
-  else if (frm_int > 0)           // In this case the frame rate was set along
-  {                               // with the port definition, start ts with 0
-    act_timestamp = prev_ts = 0;  // and correct if a valid ts is received.
-    rst_prev_ts = true;
-  }
 }
 
 void omx_vdec::handle_extradata(OMX_BUFFERHEADERTYPE *p_buf_hdr)
 {
-  OMX_OTHER_EXTRADATATYPE *p_extra = NULL, *p_sei = NULL, *p_vui = NULL;
-  OMX_U32 num_conceal_MB = 0;
-  OMX_U32 frame_rate = 0;
-  int consumed_len = 0;
-  OMX_U32 num_MB_in_frame;
-  OMX_U32 recovery_sei_flags = 1;
-  int enable = 0;
-  OMX_U32 mbaff = 0;
-  int buf_index = p_buf_hdr - m_out_mem_ptr;
-  struct msm_vidc_panscan_window_payload *panscan_payload = NULL;
-  OMX_U8 *pBuffer = (OMX_U8 *)(drv_ctx.ptr_outputbuffer[buf_index].bufferaddr) +
-      p_buf_hdr->nOffset;
-  if (!drv_ctx.extradata_info.uaddr) {
-    return;
-  }
-  p_extra = (OMX_OTHER_EXTRADATATYPE *)
-    ((unsigned)(pBuffer + p_buf_hdr->nOffset + p_buf_hdr->nFilledLen + 3)&(~3));
-  char *p_extradata = drv_ctx.extradata_info.uaddr + buf_index * drv_ctx.extradata_info.buffer_size;
-  if ((OMX_U8*)p_extra > (pBuffer + p_buf_hdr->nAllocLen))
-    p_extra = NULL;
-  OMX_OTHER_EXTRADATATYPE *data = (struct OMX_OTHER_EXTRADATATYPE *)p_extradata;
-  if (data) {
-    while((consumed_len < drv_ctx.extradata_info.buffer_size)
-        && (data->eType != (OMX_EXTRADATATYPE)EXTRADATA_NONE)) {
-      if ((consumed_len + data->nSize) > drv_ctx.extradata_info.buffer_size) {
-        DEBUG_PRINT_LOW("Invalid extra data size");
-        break;
-      }
-      switch((unsigned long)data->eType) {
-      case EXTRADATA_INTERLACE_VIDEO:
-        struct msm_vidc_interlace_payload *payload;
-        payload = (struct msm_vidc_interlace_payload *)data->data;
-        mbaff = (h264_parser)? (h264_parser->is_mbaff()): false;
-        if (payload && (payload->format == INTERLACE_FRAME_PROGRESSIVE)  && !mbaff)
-          drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
-        else {
-          drv_ctx.interlace = VDEC_InterlaceInterleaveFrameTopFieldFirst;
-          enable = 1;
-        }
-        if(m_enable_android_native_buffers)
-          setMetaData((private_handle_t *)native_buffer[buf_index].privatehandle,
-            PP_PARAM_INTERLACED, (void*)&enable);
-        if (!secure_mode && (client_extradata & OMX_INTERLACE_EXTRADATA)) {
-          append_interlace_extradata(p_extra, payload->format);
-          p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
-        }
-        break;
-      case EXTRADATA_FRAME_RATE:
-        struct msm_vidc_framerate_payload *frame_rate_payload;
-        frame_rate_payload = (struct msm_vidc_framerate_payload *)data->data;
-        frame_rate = frame_rate_payload->frame_rate;
-      break;
-      case EXTRADATA_TIMESTAMP:
-        struct msm_vidc_ts_payload *time_stamp_payload;
-        time_stamp_payload = (struct msm_vidc_ts_payload *)data->data;
-        p_buf_hdr->nTimeStamp = time_stamp_payload->timestamp_lo;
-        p_buf_hdr->nTimeStamp |= ((unsigned long long)time_stamp_payload->timestamp_hi << 32);
-      break;
-      case EXTRADATA_NUM_CONCEALED_MB:
-        struct msm_vidc_concealmb_payload *conceal_mb_payload;
-        conceal_mb_payload = (struct msm_vidc_concealmb_payload *)data->data;
-        num_MB_in_frame = ((drv_ctx.video_resolution.frame_width + 15) *
-                     (drv_ctx.video_resolution.frame_height + 15)) >> 8;
-        num_conceal_MB = ((num_MB_in_frame > 0)?(conceal_mb_payload->num_mbs * 100 / num_MB_in_frame) : 0);
-      break;
-      case EXTRADATA_INDEX:
-	int *etype;
-	etype  = (int *)(data->data);
-	if (etype && *etype == EXTRADATA_ASPECT_RATIO) {
-        struct msm_vidc_aspect_ratio_payload *aspect_ratio_payload;
-        aspect_ratio_payload = (struct msm_vidc_aspect_ratio_payload *)(++etype);
-        if (aspect_ratio_payload) {
-          ((struct vdec_output_frameinfo *)
-              p_buf_hdr->pOutputPortPrivate)->aspect_ratio_info.par_width = aspect_ratio_payload->aspect_width;
-          ((struct vdec_output_frameinfo *)
-              p_buf_hdr->pOutputPortPrivate)->aspect_ratio_info.par_height = aspect_ratio_payload->aspect_height;
-          }
-	}
-      break;
-      case EXTRADATA_RECOVERY_POINT_SEI:
-        struct msm_vidc_recoverysei_payload *recovery_sei_payload;
-        recovery_sei_payload = (struct msm_vidc_recoverysei_payload *)data->data;
-        recovery_sei_flags = recovery_sei_payload->flags;
-       if (recovery_sei_flags != FRAME_RECONSTRUCTION_CORRECT) {
-         p_buf_hdr->nFlags |= OMX_BUFFERFLAG_DATACORRUPT;
-         DEBUG_PRINT_HIGH("\n");
-         DEBUG_PRINT_HIGH("***************************************************\n");
-         DEBUG_PRINT_HIGH("FillBufferDone: OMX_BUFFERFLAG_DATACORRUPT Received\n");
-         DEBUG_PRINT_HIGH("***************************************************\n");
-      }
-      break;
-      case EXTRADATA_PANSCAN_WINDOW:
-        panscan_payload = (struct msm_vidc_panscan_window_payload *)data->data;
-        break;
-      case EXTRADATA_MPEG2_SEQDISP:
-        struct msm_vidc_mpeg2_seqdisp_payload *seqdisp_payload;
-        seqdisp_payload = (struct msm_vidc_mpeg2_seqdisp_payload *)data->data;
-        if (seqdisp_payload) {
-          m_disp_hor_size = seqdisp_payload->disp_width;
-          m_disp_vert_size = seqdisp_payload->disp_height;
-        }
-        break;
-      default:
-        goto unrecognized_extradata;
-      }
-      consumed_len += data->nSize;
-      data = (OMX_OTHER_EXTRADATATYPE *)((char *)data + data->nSize);
+    OMX_OTHER_EXTRADATATYPE *p_extra = NULL, *p_sei = NULL, *p_vui = NULL;
+    OMX_U32 num_conceal_MB = 0;
+    OMX_U32 frame_rate = 0;
+    int consumed_len = 0;
+    OMX_U32 num_MB_in_frame;
+    OMX_U32 recovery_sei_flags = 1;
+    int enable = 0;
+    OMX_U32 mbaff = 0;
+    int buf_index = p_buf_hdr - m_out_mem_ptr;
+    struct msm_vidc_panscan_window_payload *panscan_payload = NULL;
+    OMX_U8 *pBuffer = (OMX_U8 *)(drv_ctx.ptr_outputbuffer[buf_index].bufferaddr) +
+        p_buf_hdr->nOffset;
+    if (!drv_ctx.extradata_info.uaddr) {
+        return;
     }
-    if (!secure_mode && (client_extradata & OMX_FRAMEINFO_EXTRADATA)) {
-      p_buf_hdr->nFlags |= OMX_BUFFERFLAG_EXTRADATA;
-      append_frame_info_extradata(p_extra,
-        num_conceal_MB, ((struct vdec_output_frameinfo *)p_buf_hdr->pOutputPortPrivate)->pic_type, frame_rate,
-        panscan_payload,&((struct vdec_output_frameinfo *)
-        p_buf_hdr->pOutputPortPrivate)->aspect_ratio_info);}
-  }
+    p_extra = (OMX_OTHER_EXTRADATATYPE *)
+        ((unsigned)(pBuffer + p_buf_hdr->nOffset + p_buf_hdr->nFilledLen + 3)&(~3));
+    char *p_extradata = drv_ctx.extradata_info.uaddr + buf_index * drv_ctx.extradata_info.buffer_size;
+    if ((OMX_U8*)p_extra > (pBuffer + p_buf_hdr->nAllocLen))
+        p_extra = NULL;
+    OMX_OTHER_EXTRADATATYPE *data = (struct OMX_OTHER_EXTRADATATYPE *)p_extradata;
+    if (data) {
+        while ((consumed_len < drv_ctx.extradata_info.buffer_size)
+                && (data->eType != (OMX_EXTRADATATYPE)EXTRADATA_NONE)) {
+            if ((consumed_len + data->nSize) > drv_ctx.extradata_info.buffer_size) {
+                DEBUG_PRINT_LOW("Invalid extra data size");
+                break;
+            }
+            switch ((unsigned long)data->eType) {
+                case EXTRADATA_INTERLACE_VIDEO:
+                    struct msm_vidc_interlace_payload *payload;
+                    payload = (struct msm_vidc_interlace_payload *)data->data;
+                    mbaff = (h264_parser)? (h264_parser->is_mbaff()): false;
+                    if (payload && (payload->format == INTERLACE_FRAME_PROGRESSIVE)  && !mbaff)
+                        drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
+                    else {
+                        drv_ctx.interlace = VDEC_InterlaceInterleaveFrameTopFieldFirst;
+                        enable = 1;
+                    }
+                    if (m_enable_android_native_buffers)
+                        setMetaData((private_handle_t *)native_buffer[buf_index].privatehandle,
+                                PP_PARAM_INTERLACED, (void*)&enable);
+                    if (!secure_mode && (client_extradata & OMX_INTERLACE_EXTRADATA)) {
+                        append_interlace_extradata(p_extra, payload->format);
+                        p_extra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) p_extra) + p_extra->nSize);
+                    }
+                    break;
+                case EXTRADATA_FRAME_RATE:
+                    struct msm_vidc_framerate_payload *frame_rate_payload;
+                    frame_rate_payload = (struct msm_vidc_framerate_payload *)data->data;
+                    frame_rate = frame_rate_payload->frame_rate;
+                    break;
+                case EXTRADATA_TIMESTAMP:
+                    struct msm_vidc_ts_payload *time_stamp_payload;
+                    time_stamp_payload = (struct msm_vidc_ts_payload *)data->data;
+                    p_buf_hdr->nTimeStamp = time_stamp_payload->timestamp_lo;
+                    p_buf_hdr->nTimeStamp |= ((unsigned long long)time_stamp_payload->timestamp_hi << 32);
+                    break;
+                case EXTRADATA_NUM_CONCEALED_MB:
+                    struct msm_vidc_concealmb_payload *conceal_mb_payload;
+                    conceal_mb_payload = (struct msm_vidc_concealmb_payload *)data->data;
+                    num_MB_in_frame = ((drv_ctx.video_resolution.frame_width + 15) *
+                            (drv_ctx.video_resolution.frame_height + 15)) >> 8;
+                    num_conceal_MB = ((num_MB_in_frame > 0)?(conceal_mb_payload->num_mbs * 100 / num_MB_in_frame) : 0);
+                    break;
+                case EXTRADATA_INDEX:
+                    int *etype;
+                    etype  = (int *)(data->data);
+                    if (etype && *etype == EXTRADATA_ASPECT_RATIO) {
+                        struct msm_vidc_aspect_ratio_payload *aspect_ratio_payload;
+                        aspect_ratio_payload = (struct msm_vidc_aspect_ratio_payload *)(++etype);
+                        if (aspect_ratio_payload) {
+                            ((struct vdec_output_frameinfo *)
+                             p_buf_hdr->pOutputPortPrivate)->aspect_ratio_info.par_width = aspect_ratio_payload->aspect_width;
+                            ((struct vdec_output_frameinfo *)
+                             p_buf_hdr->pOutputPortPrivate)->aspect_ratio_info.par_height = aspect_ratio_payload->aspect_height;
+                        }
+                    }
+                    break;
+                case EXTRADATA_RECOVERY_POINT_SEI:
+                    struct msm_vidc_recoverysei_payload *recovery_sei_payload;
+                    recovery_sei_payload = (struct msm_vidc_recoverysei_payload *)data->data;
+                    recovery_sei_flags = recovery_sei_payload->flags;
+                    if (recovery_sei_flags != FRAME_RECONSTRUCTION_CORRECT) {
+                        p_buf_hdr->nFlags |= OMX_BUFFERFLAG_DATACORRUPT;
+                        DEBUG_PRINT_HIGH("\n");
+                        DEBUG_PRINT_HIGH("***************************************************\n");
+                        DEBUG_PRINT_HIGH("FillBufferDone: OMX_BUFFERFLAG_DATACORRUPT Received\n");
+                        DEBUG_PRINT_HIGH("***************************************************\n");
+                    }
+                    break;
+                case EXTRADATA_PANSCAN_WINDOW:
+                    panscan_payload = (struct msm_vidc_panscan_window_payload *)data->data;
+                    break;
+                case EXTRADATA_MPEG2_SEQDISP:
+                    struct msm_vidc_mpeg2_seqdisp_payload *seqdisp_payload;
+                    seqdisp_payload = (struct msm_vidc_mpeg2_seqdisp_payload *)data->data;
+                    if (seqdisp_payload) {
+                        m_disp_hor_size = seqdisp_payload->disp_width;
+                        m_disp_vert_size = seqdisp_payload->disp_height;
+                    }
+                    break;
+                default:
+                    goto unrecognized_extradata;
+            }
+            consumed_len += data->nSize;
+            data = (OMX_OTHER_EXTRADATATYPE *)((char *)data + data->nSize);
+        }
+        if (!secure_mode && (client_extradata & OMX_FRAMEINFO_EXTRADATA)) {
+            p_buf_hdr->nFlags |= OMX_BUFFERFLAG_EXTRADATA;
+            append_frame_info_extradata(p_extra,
+                    num_conceal_MB, ((struct vdec_output_frameinfo *)p_buf_hdr->pOutputPortPrivate)->pic_type, frame_rate,
+                    panscan_payload,&((struct vdec_output_frameinfo *)
+                        p_buf_hdr->pOutputPortPrivate)->aspect_ratio_info);
+        }
+    }
 unrecognized_extradata:
-  if(!secure_mode && client_extradata)
-    append_terminator_extradata(p_extra);
-  return;
+    if (!secure_mode && client_extradata)
+        append_terminator_extradata(p_extra);
+    return;
 }
 
 OMX_ERRORTYPE omx_vdec::enable_extradata(OMX_U32 requested_extradata,
-	 bool is_internal, bool enable)
+        bool is_internal, bool enable)
 {
-  OMX_ERRORTYPE ret = OMX_ErrorNone;
-  struct v4l2_control control;
-  if(m_state != OMX_StateLoaded)
-  {
-     DEBUG_PRINT_ERROR("ERROR: enable extradata allowed in Loaded state only");
-     return OMX_ErrorIncorrectStateOperation;
-  }
-  DEBUG_PRINT_HIGH("NOTE: enable_extradata: actual[%lu] requested[%lu] enable[%d], is_internal: %d\n",
-    client_extradata, requested_extradata, enable, is_internal);
-
-  if (!is_internal) {
-	  if (enable)
-		  client_extradata |= requested_extradata;
-	  else
-		  client_extradata = client_extradata & ~requested_extradata;
-  }
-
-  if (enable) {
-    if (requested_extradata & OMX_INTERLACE_EXTRADATA) {
-      control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
-      control.value = V4L2_MPEG_VIDC_EXTRADATA_INTERLACE_VIDEO;
-      if(ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
-        DEBUG_PRINT_HIGH("Failed to set interlaced extradata."
-            " Quality of interlaced clips might be impacted.\n");
-      }
-    } else if (requested_extradata & OMX_FRAMEINFO_EXTRADATA)
-      {
-      control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
-      control.value = V4L2_MPEG_VIDC_EXTRADATA_FRAME_RATE;
-      if(ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
-        DEBUG_PRINT_HIGH("Failed to set framerate extradata\n");
-      }
-      control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
-      control.value = V4L2_MPEG_VIDC_EXTRADATA_NUM_CONCEALED_MB;
-      if(ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
-        DEBUG_PRINT_HIGH("Failed to set concealed MB extradata\n");
-      }
-      control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
-      control.value = V4L2_MPEG_VIDC_EXTRADATA_RECOVERY_POINT_SEI;
-      if(ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
-        DEBUG_PRINT_HIGH("Failed to set recovery point SEI extradata\n");
-      }
-      control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
-      control.value = V4L2_MPEG_VIDC_EXTRADATA_PANSCAN_WINDOW;
-      if(ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
-        DEBUG_PRINT_HIGH("Failed to set panscan extradata\n");
-      }
-      control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
-      control.value = V4L2_MPEG_VIDC_INDEX_EXTRADATA_ASPECT_RATIO;
-      if(ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
-        DEBUG_PRINT_HIGH("Failed to set panscan extradata\n");
-      }
-      if (output_capability == V4L2_PIX_FMT_MPEG2)
-      {
-        control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
-        control.value =  V4L2_MPEG_VIDC_EXTRADATA_MPEG2_SEQDISP;
-        if(ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
-          DEBUG_PRINT_HIGH("Failed to set panscan extradata\n");
-        }
-      }
-    } else if (requested_extradata & OMX_TIMEINFO_EXTRADATA)
-    {
-      control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
-      control.value = V4L2_MPEG_VIDC_EXTRADATA_TIMESTAMP;
-      if(ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
-      DEBUG_PRINT_HIGH("Failed to set timeinfo extradata\n");
-      }
+    OMX_ERRORTYPE ret = OMX_ErrorNone;
+    struct v4l2_control control;
+    if (m_state != OMX_StateLoaded) {
+        DEBUG_PRINT_ERROR("ERROR: enable extradata allowed in Loaded state only");
+        return OMX_ErrorIncorrectStateOperation;
     }
-  }
-  ret = get_buffer_req(&drv_ctx.op_buf);
-  return ret;
+    DEBUG_PRINT_HIGH("NOTE: enable_extradata: actual[%lu] requested[%lu] enable[%d], is_internal: %d\n",
+            client_extradata, requested_extradata, enable, is_internal);
+
+    if (!is_internal) {
+        if (enable)
+            client_extradata |= requested_extradata;
+        else
+            client_extradata = client_extradata & ~requested_extradata;
+    }
+
+    if (enable) {
+        if (requested_extradata & OMX_INTERLACE_EXTRADATA) {
+            control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
+            control.value = V4L2_MPEG_VIDC_EXTRADATA_INTERLACE_VIDEO;
+            if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
+                DEBUG_PRINT_HIGH("Failed to set interlaced extradata."
+                        " Quality of interlaced clips might be impacted.\n");
+            }
+        } else if (requested_extradata & OMX_FRAMEINFO_EXTRADATA) {
+            control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
+            control.value = V4L2_MPEG_VIDC_EXTRADATA_FRAME_RATE;
+            if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
+                DEBUG_PRINT_HIGH("Failed to set framerate extradata\n");
+            }
+            control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
+            control.value = V4L2_MPEG_VIDC_EXTRADATA_NUM_CONCEALED_MB;
+            if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
+                DEBUG_PRINT_HIGH("Failed to set concealed MB extradata\n");
+            }
+            control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
+            control.value = V4L2_MPEG_VIDC_EXTRADATA_RECOVERY_POINT_SEI;
+            if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
+                DEBUG_PRINT_HIGH("Failed to set recovery point SEI extradata\n");
+            }
+            control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
+            control.value = V4L2_MPEG_VIDC_EXTRADATA_PANSCAN_WINDOW;
+            if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
+                DEBUG_PRINT_HIGH("Failed to set panscan extradata\n");
+            }
+            control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
+            control.value = V4L2_MPEG_VIDC_INDEX_EXTRADATA_ASPECT_RATIO;
+            if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
+                DEBUG_PRINT_HIGH("Failed to set panscan extradata\n");
+            }
+            if (output_capability == V4L2_PIX_FMT_MPEG2) {
+                control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
+                control.value =  V4L2_MPEG_VIDC_EXTRADATA_MPEG2_SEQDISP;
+                if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
+                    DEBUG_PRINT_HIGH("Failed to set panscan extradata\n");
+                }
+            }
+        } else if (requested_extradata & OMX_TIMEINFO_EXTRADATA) {
+            control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
+            control.value = V4L2_MPEG_VIDC_EXTRADATA_TIMESTAMP;
+            if (ioctl(drv_ctx.video_driver_fd, VIDIOC_S_CTRL, &control)) {
+                DEBUG_PRINT_HIGH("Failed to set timeinfo extradata\n");
+            }
+        }
+    }
+    ret = get_buffer_req(&drv_ctx.op_buf);
+    return ret;
 }
 
 OMX_U32 omx_vdec::count_MB_in_extradata(OMX_OTHER_EXTRADATATYPE *extra)
 {
-  OMX_U32 num_MB = 0, byte_count = 0, num_MB_in_frame = 0;
-  OMX_U8 *data_ptr = extra->data, data = 0;
-  while (byte_count < extra->nDataSize)
-  {
-    data = *data_ptr;
-    while (data)
-    {
-      num_MB += (data&0x01);
-      data >>= 1;
+    OMX_U32 num_MB = 0, byte_count = 0, num_MB_in_frame = 0;
+    OMX_U8 *data_ptr = extra->data, data = 0;
+    while (byte_count < extra->nDataSize) {
+        data = *data_ptr;
+        while (data) {
+            num_MB += (data&0x01);
+            data >>= 1;
+        }
+        data_ptr++;
+        byte_count++;
     }
-    data_ptr++;
-    byte_count++;
-  }
-  num_MB_in_frame = ((drv_ctx.video_resolution.frame_width + 15) *
-                     (drv_ctx.video_resolution.frame_height + 15)) >> 8;
-  return ((num_MB_in_frame > 0)?(num_MB * 100 / num_MB_in_frame) : 0);
+    num_MB_in_frame = ((drv_ctx.video_resolution.frame_width + 15) *
+            (drv_ctx.video_resolution.frame_height + 15)) >> 8;
+    return ((num_MB_in_frame > 0)?(num_MB * 100 / num_MB_in_frame) : 0);
 }
 
 void omx_vdec::print_debug_extradata(OMX_OTHER_EXTRADATATYPE *extra)
 {
-  if (!m_debug_extradata)
-     return;
-
-  DEBUG_PRINT_HIGH(
-    "============== Extra Data ==============\n"
-    "           Size: %lu \n"
-    "        Version: %lu \n"
-    "      PortIndex: %lu \n"
-    "           Type: %x \n"
-    "       DataSize: %lu \n",
-    extra->nSize, extra->nVersion.nVersion,
-    extra->nPortIndex, extra->eType, extra->nDataSize);
-
-  if (extra->eType == (OMX_EXTRADATATYPE)OMX_ExtraDataInterlaceFormat)
-  {
-    OMX_STREAMINTERLACEFORMAT *intfmt = (OMX_STREAMINTERLACEFORMAT *)extra->data;
-    DEBUG_PRINT_HIGH(
-      "------ Interlace Format ------\n"
-      "                Size: %lu \n"
-      "             Version: %lu \n"
-      "           PortIndex: %lu \n"
-      " Is Interlace Format: %d \n"
-      "   Interlace Formats: %lu \n"
-      "=========== End of Interlace ===========\n",
-      intfmt->nSize, intfmt->nVersion.nVersion, intfmt->nPortIndex,
-      intfmt->bInterlaceFormat, intfmt->nInterlaceFormats);
-  }
-  else if (extra->eType == (OMX_EXTRADATATYPE)OMX_ExtraDataFrameInfo)
-  {
-    OMX_QCOM_EXTRADATA_FRAMEINFO *fminfo = (OMX_QCOM_EXTRADATA_FRAMEINFO *)extra->data;
+    if (!m_debug_extradata)
+        return;
 
     DEBUG_PRINT_HIGH(
-      "-------- Frame Format --------\n"
-      "             Picture Type: %d \n"
-      "           Interlace Type: %d \n"
-      " Pan Scan Total Frame Num: %lu \n"
-      "   Concealed Macro Blocks: %lu \n"
-      "               frame rate: %lu \n"
-      "           Aspect Ratio X: %lu \n"
-      "           Aspect Ratio Y: %lu \n",
-      fminfo->ePicType,
-      fminfo->interlaceType,
-      fminfo->panScan.numWindows,
-      fminfo->nConcealedMacroblocks,
-      fminfo->nFrameRate,
-      fminfo->aspectRatio.aspectRatioX,
-      fminfo->aspectRatio.aspectRatioY);
+            "============== Extra Data ==============\n"
+            "           Size: %lu \n"
+            "        Version: %lu \n"
+            "      PortIndex: %lu \n"
+            "           Type: %x \n"
+            "       DataSize: %lu \n",
+            extra->nSize, extra->nVersion.nVersion,
+            extra->nPortIndex, extra->eType, extra->nDataSize);
 
-    for (OMX_U32 i = 0; i < fminfo->panScan.numWindows; i++)
-    {
-      DEBUG_PRINT_HIGH(
-        "------------------------------\n"
-        "     Pan Scan Frame Num: %lu \n"
-        "            Rectangle x: %ld \n"
-        "            Rectangle y: %ld \n"
-        "           Rectangle dx: %ld \n"
-        "           Rectangle dy: %ld \n",
-        i, fminfo->panScan.window[i].x, fminfo->panScan.window[i].y,
-        fminfo->panScan.window[i].dx, fminfo->panScan.window[i].dy);
+    if (extra->eType == (OMX_EXTRADATATYPE)OMX_ExtraDataInterlaceFormat) {
+        OMX_STREAMINTERLACEFORMAT *intfmt = (OMX_STREAMINTERLACEFORMAT *)extra->data;
+        DEBUG_PRINT_HIGH(
+                "------ Interlace Format ------\n"
+                "                Size: %lu \n"
+                "             Version: %lu \n"
+                "           PortIndex: %lu \n"
+                " Is Interlace Format: %d \n"
+                "   Interlace Formats: %lu \n"
+                "=========== End of Interlace ===========\n",
+                intfmt->nSize, intfmt->nVersion.nVersion, intfmt->nPortIndex,
+                intfmt->bInterlaceFormat, intfmt->nInterlaceFormats);
+    } else if (extra->eType == (OMX_EXTRADATATYPE)OMX_ExtraDataFrameInfo) {
+        OMX_QCOM_EXTRADATA_FRAMEINFO *fminfo = (OMX_QCOM_EXTRADATA_FRAMEINFO *)extra->data;
+
+        DEBUG_PRINT_HIGH(
+                "-------- Frame Format --------\n"
+                "             Picture Type: %d \n"
+                "           Interlace Type: %d \n"
+                " Pan Scan Total Frame Num: %lu \n"
+                "   Concealed Macro Blocks: %lu \n"
+                "               frame rate: %lu \n"
+                "           Aspect Ratio X: %lu \n"
+                "           Aspect Ratio Y: %lu \n",
+                fminfo->ePicType,
+                fminfo->interlaceType,
+                fminfo->panScan.numWindows,
+                fminfo->nConcealedMacroblocks,
+                fminfo->nFrameRate,
+                fminfo->aspectRatio.aspectRatioX,
+                fminfo->aspectRatio.aspectRatioY);
+
+        for (OMX_U32 i = 0; i < fminfo->panScan.numWindows; i++) {
+            DEBUG_PRINT_HIGH(
+                    "------------------------------\n"
+                    "     Pan Scan Frame Num: %lu \n"
+                    "            Rectangle x: %ld \n"
+                    "            Rectangle y: %ld \n"
+                    "           Rectangle dx: %ld \n"
+                    "           Rectangle dy: %ld \n",
+                    i, fminfo->panScan.window[i].x, fminfo->panScan.window[i].y,
+                    fminfo->panScan.window[i].dx, fminfo->panScan.window[i].dy);
+        }
+
+        DEBUG_PRINT_HIGH("========= End of Frame Format ==========");
+    } else if (extra->eType == OMX_ExtraDataNone) {
+        DEBUG_PRINT_HIGH("========== End of Terminator ===========");
+    } else {
+        DEBUG_PRINT_HIGH("======= End of Driver Extradata ========");
     }
-
-    DEBUG_PRINT_HIGH("========= End of Frame Format ==========");
-  }
-  else if (extra->eType == OMX_ExtraDataNone)
-  {
-    DEBUG_PRINT_HIGH("========== End of Terminator ===========");
-  }
-  else
-  {
-    DEBUG_PRINT_HIGH("======= End of Driver Extradata ========");
-  }
 }
 
 void omx_vdec::append_interlace_extradata(OMX_OTHER_EXTRADATATYPE *extra,
-                                          OMX_U32 interlaced_format_type)
+        OMX_U32 interlaced_format_type)
 {
-  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;
-  extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataInterlaceFormat;
-  extra->nDataSize = sizeof(OMX_STREAMINTERLACEFORMAT);
-  interlace_format = (OMX_STREAMINTERLACEFORMAT *)extra->data;
-  interlace_format->nSize = sizeof(OMX_STREAMINTERLACEFORMAT);
-  interlace_format->nVersion.nVersion = OMX_SPEC_VERSION;
-  interlace_format->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
-  mbaff = (h264_parser)? (h264_parser->is_mbaff()): false;
-  if ((interlaced_format_type == INTERLACE_FRAME_PROGRESSIVE)  && !mbaff)
-  {
-    interlace_format->bInterlaceFormat = OMX_FALSE;
-    interlace_format->nInterlaceFormats = OMX_InterlaceFrameProgressive;
-    drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
-  }
-  else
-  {
-    interlace_format->bInterlaceFormat = OMX_TRUE;
-    interlace_format->nInterlaceFormats = OMX_InterlaceInterleaveFrameTopFieldFirst;
-    drv_ctx.interlace = VDEC_InterlaceInterleaveFrameTopFieldFirst;
-  }
-  print_debug_extradata(extra);
+    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;
+    extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataInterlaceFormat;
+    extra->nDataSize = sizeof(OMX_STREAMINTERLACEFORMAT);
+    interlace_format = (OMX_STREAMINTERLACEFORMAT *)extra->data;
+    interlace_format->nSize = sizeof(OMX_STREAMINTERLACEFORMAT);
+    interlace_format->nVersion.nVersion = OMX_SPEC_VERSION;
+    interlace_format->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
+    mbaff = (h264_parser)? (h264_parser->is_mbaff()): false;
+    if ((interlaced_format_type == INTERLACE_FRAME_PROGRESSIVE)  && !mbaff) {
+        interlace_format->bInterlaceFormat = OMX_FALSE;
+        interlace_format->nInterlaceFormats = OMX_InterlaceFrameProgressive;
+        drv_ctx.interlace = VDEC_InterlaceFrameProgressive;
+    } else {
+        interlace_format->bInterlaceFormat = OMX_TRUE;
+        interlace_format->nInterlaceFormats = OMX_InterlaceInterleaveFrameTopFieldFirst;
+        drv_ctx.interlace = VDEC_InterlaceInterleaveFrameTopFieldFirst;
+    }
+    print_debug_extradata(extra);
 }
 
 void omx_vdec::fill_aspect_ratio_info(
-                       struct vdec_aspectratioinfo *aspect_ratio_info,
-                       OMX_QCOM_EXTRADATA_FRAMEINFO *frame_info)
+        struct vdec_aspectratioinfo *aspect_ratio_info,
+        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;
-  DEBUG_PRINT_LOW("aspectRatioX %lu aspectRatioX %lu", m_extradata->aspectRatio.aspectRatioX,
-                                                     m_extradata->aspectRatio.aspectRatioY);
+    m_extradata = frame_info;
+    m_extradata->aspectRatio.aspectRatioX = aspect_ratio_info->par_width;
+    m_extradata->aspectRatio.aspectRatioY = aspect_ratio_info->par_height;
+    DEBUG_PRINT_LOW("aspectRatioX %lu aspectRatioX %lu", m_extradata->aspectRatio.aspectRatioX,
+            m_extradata->aspectRatio.aspectRatioY);
 }
 
 void omx_vdec::append_frame_info_extradata(OMX_OTHER_EXTRADATATYPE *extra,
-    OMX_U32 num_conceal_mb, OMX_U32 picture_type, OMX_U32 frame_rate,
+        OMX_U32 num_conceal_mb, OMX_U32 picture_type, OMX_U32 frame_rate,
         struct msm_vidc_panscan_window_payload *panscan_payload,
         struct vdec_aspectratioinfo *aspect_ratio_info)
 {
-  OMX_QCOM_EXTRADATA_FRAMEINFO *frame_info = NULL;
-  struct msm_vidc_panscan_window *panscan_window;
-  if (!(client_extradata & OMX_FRAMEINFO_EXTRADATA)) {
+    OMX_QCOM_EXTRADATA_FRAMEINFO *frame_info = NULL;
+    struct msm_vidc_panscan_window *panscan_window;
+    if (!(client_extradata & OMX_FRAMEINFO_EXTRADATA)) {
         return;
-  }
-  extra->nSize = OMX_FRAMEINFO_EXTRADATA_SIZE;
-  extra->nVersion.nVersion = OMX_SPEC_VERSION;
-  extra->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
-  extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataFrameInfo;
-  extra->nDataSize = sizeof(OMX_QCOM_EXTRADATA_FRAMEINFO);
-  frame_info = (OMX_QCOM_EXTRADATA_FRAMEINFO *)extra->data;
-  switch (picture_type)
-  {
-    case PICTURE_TYPE_I:
-      frame_info->ePicType = OMX_VIDEO_PictureTypeI;
-    break;
-    case PICTURE_TYPE_P:
-      frame_info->ePicType = OMX_VIDEO_PictureTypeP;
-    break;
-    case PICTURE_TYPE_B:
-      frame_info->ePicType = OMX_VIDEO_PictureTypeB;
-    break;
-    default:
-       frame_info->ePicType = (OMX_VIDEO_PICTURETYPE)0;
-  }
-  if (drv_ctx.interlace == VDEC_InterlaceInterleaveFrameTopFieldFirst)
-    frame_info->interlaceType = OMX_QCOM_InterlaceInterleaveFrameTopFieldFirst;
-  else if (drv_ctx.interlace == VDEC_InterlaceInterleaveFrameBottomFieldFirst)
-    frame_info->interlaceType = OMX_QCOM_InterlaceInterleaveFrameBottomFieldFirst;
-  else
-    frame_info->interlaceType = OMX_QCOM_InterlaceFrameProgressive;
-  memset(&frame_info->aspectRatio, 0, sizeof(frame_info->aspectRatio));
-  frame_info->nConcealedMacroblocks = num_conceal_mb;
-  frame_info->nFrameRate = frame_rate;
-  frame_info->panScan.numWindows = 0;
-  if (output_capability == V4L2_PIX_FMT_MPEG2)
-  {
-    if (m_disp_hor_size && m_disp_vert_size)
-    {
-      frame_info->displayAspectRatio.displayHorizontalSize = m_disp_hor_size;
-      frame_info->displayAspectRatio.displayVerticalSize = m_disp_vert_size;
     }
-  }
+    extra->nSize = OMX_FRAMEINFO_EXTRADATA_SIZE;
+    extra->nVersion.nVersion = OMX_SPEC_VERSION;
+    extra->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
+    extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataFrameInfo;
+    extra->nDataSize = sizeof(OMX_QCOM_EXTRADATA_FRAMEINFO);
+    frame_info = (OMX_QCOM_EXTRADATA_FRAMEINFO *)extra->data;
+    switch (picture_type) {
+        case PICTURE_TYPE_I:
+            frame_info->ePicType = OMX_VIDEO_PictureTypeI;
+            break;
+        case PICTURE_TYPE_P:
+            frame_info->ePicType = OMX_VIDEO_PictureTypeP;
+            break;
+        case PICTURE_TYPE_B:
+            frame_info->ePicType = OMX_VIDEO_PictureTypeB;
+            break;
+        default:
+            frame_info->ePicType = (OMX_VIDEO_PICTURETYPE)0;
+    }
+    if (drv_ctx.interlace == VDEC_InterlaceInterleaveFrameTopFieldFirst)
+        frame_info->interlaceType = OMX_QCOM_InterlaceInterleaveFrameTopFieldFirst;
+    else if (drv_ctx.interlace == VDEC_InterlaceInterleaveFrameBottomFieldFirst)
+        frame_info->interlaceType = OMX_QCOM_InterlaceInterleaveFrameBottomFieldFirst;
+    else
+        frame_info->interlaceType = OMX_QCOM_InterlaceFrameProgressive;
+    memset(&frame_info->aspectRatio, 0, sizeof(frame_info->aspectRatio));
+    frame_info->nConcealedMacroblocks = num_conceal_mb;
+    frame_info->nFrameRate = frame_rate;
+    frame_info->panScan.numWindows = 0;
+    if (output_capability == V4L2_PIX_FMT_MPEG2) {
+        if (m_disp_hor_size && m_disp_vert_size) {
+            frame_info->displayAspectRatio.displayHorizontalSize = m_disp_hor_size;
+            frame_info->displayAspectRatio.displayVerticalSize = m_disp_vert_size;
+        }
+    }
 
-  if(panscan_payload) {
-  frame_info->panScan.numWindows = panscan_payload->num_panscan_windows;
-  panscan_window = &panscan_payload->wnd[0];
-  for (OMX_U32 i = 0; i < frame_info->panScan.numWindows; i++)
-    {
-      frame_info->panScan.window[i].x = panscan_window->panscan_window_width;
-      frame_info->panScan.window[i].y = panscan_window->panscan_window_height;
-      frame_info->panScan.window[i].dx = panscan_window->panscan_width_offset;
-      frame_info->panScan.window[i].dy = panscan_window->panscan_height_offset;
-      panscan_window++;
+    if (panscan_payload) {
+        frame_info->panScan.numWindows = panscan_payload->num_panscan_windows;
+        panscan_window = &panscan_payload->wnd[0];
+        for (OMX_U32 i = 0; i < frame_info->panScan.numWindows; i++) {
+            frame_info->panScan.window[i].x = panscan_window->panscan_window_width;
+            frame_info->panScan.window[i].y = panscan_window->panscan_window_height;
+            frame_info->panScan.window[i].dx = panscan_window->panscan_width_offset;
+            frame_info->panScan.window[i].dy = panscan_window->panscan_height_offset;
+            panscan_window++;
+        }
     }
-  }
-  fill_aspect_ratio_info(aspect_ratio_info, frame_info);
-  print_debug_extradata(extra);
+    fill_aspect_ratio_info(aspect_ratio_info, frame_info);
+    print_debug_extradata(extra);
 }
 
 void omx_vdec::append_portdef_extradata(OMX_OTHER_EXTRADATATYPE *extra)
 {
-  OMX_PARAM_PORTDEFINITIONTYPE *portDefn = NULL;
-  extra->nSize = OMX_PORTDEF_EXTRADATA_SIZE;
-  extra->nVersion.nVersion = OMX_SPEC_VERSION;
-  extra->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
-  extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataPortDef;
-  extra->nDataSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
-  portDefn = (OMX_PARAM_PORTDEFINITIONTYPE *)extra->data;
-  *portDefn = m_port_def;
-  DEBUG_PRINT_LOW("append_portdef_extradata height = %lu width = %lu "
-     "stride = %lu sliceheight = %lu \n",portDefn->format.video.nFrameHeight,
-     portDefn->format.video.nFrameWidth,
-     portDefn->format.video.nStride,
-     portDefn->format.video.nSliceHeight);
+    OMX_PARAM_PORTDEFINITIONTYPE *portDefn = NULL;
+    extra->nSize = OMX_PORTDEF_EXTRADATA_SIZE;
+    extra->nVersion.nVersion = OMX_SPEC_VERSION;
+    extra->nPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
+    extra->eType = (OMX_EXTRADATATYPE)OMX_ExtraDataPortDef;
+    extra->nDataSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
+    portDefn = (OMX_PARAM_PORTDEFINITIONTYPE *)extra->data;
+    *portDefn = m_port_def;
+    DEBUG_PRINT_LOW("append_portdef_extradata height = %lu width = %lu "
+            "stride = %lu sliceheight = %lu \n",portDefn->format.video.nFrameHeight,
+            portDefn->format.video.nFrameWidth,
+            portDefn->format.video.nStride,
+            portDefn->format.video.nSliceHeight);
 }
 
 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;
-  extra->nDataSize = 0;
-  extra->data[0] = 0;
+    if (!client_extradata) {
+        return;
+    }
+    extra->nSize = sizeof(OMX_OTHER_EXTRADATATYPE);
+    extra->nVersion.nVersion = OMX_SPEC_VERSION;
+    extra->eType = OMX_ExtraDataNone;
+    extra->nDataSize = 0;
+    extra->data[0] = 0;
 
-  print_debug_extradata(extra);
+    print_debug_extradata(extra);
 }
 
 OMX_ERRORTYPE  omx_vdec::allocate_desc_buffer(OMX_U32 index)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  if (index >= drv_ctx.ip_buf.actualcount)
-  {
-    DEBUG_PRINT_ERROR("\nERROR:Desc Buffer Index not found");
-    return OMX_ErrorInsufficientResources;
-  }
-  if (m_desc_buffer_ptr == NULL)
-  {
-    m_desc_buffer_ptr = (desc_buffer_hdr*) \
-                     calloc( (sizeof(desc_buffer_hdr)),
-                     drv_ctx.ip_buf.actualcount);
-    if (m_desc_buffer_ptr == NULL)
-    {
-      DEBUG_PRINT_ERROR("\n m_desc_buffer_ptr Allocation failed ");
-      return OMX_ErrorInsufficientResources;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    if (index >= drv_ctx.ip_buf.actualcount) {
+        DEBUG_PRINT_ERROR("\nERROR:Desc Buffer Index not found");
+        return OMX_ErrorInsufficientResources;
     }
-  }
+    if (m_desc_buffer_ptr == NULL) {
+        m_desc_buffer_ptr = (desc_buffer_hdr*) \
+                    calloc( (sizeof(desc_buffer_hdr)),
+                            drv_ctx.ip_buf.actualcount);
+        if (m_desc_buffer_ptr == NULL) {
+            DEBUG_PRINT_ERROR("\n m_desc_buffer_ptr Allocation failed ");
+            return OMX_ErrorInsufficientResources;
+        }
+    }
 
-  m_desc_buffer_ptr[index].buf_addr = (unsigned char *)malloc (DESC_BUFFER_SIZE * sizeof(OMX_U8));
-  if (m_desc_buffer_ptr[index].buf_addr == NULL)
-  {
-    DEBUG_PRINT_ERROR("\ndesc buffer Allocation failed ");
-    return OMX_ErrorInsufficientResources;
-  }
+    m_desc_buffer_ptr[index].buf_addr = (unsigned char *)malloc (DESC_BUFFER_SIZE * sizeof(OMX_U8));
+    if (m_desc_buffer_ptr[index].buf_addr == NULL) {
+        DEBUG_PRINT_ERROR("\ndesc buffer Allocation failed ");
+        return OMX_ErrorInsufficientResources;
+    }
 
-  return eRet;
+    return eRet;
 }
 
 void omx_vdec::insert_demux_addr_offset(OMX_U32 address_offset)
 {
-  DEBUG_PRINT_LOW("Inserting address offset (%lu) at idx (%lu)", address_offset,m_demux_entries);
-  if (m_demux_entries < 8192)
-  {
-    m_demux_offsets[m_demux_entries++] = address_offset;
-  }
-  return;
+    DEBUG_PRINT_LOW("Inserting address offset (%lu) at idx (%lu)", address_offset,m_demux_entries);
+    if (m_demux_entries < 8192) {
+        m_demux_offsets[m_demux_entries++] = address_offset;
+    }
+    return;
 }
 
 void omx_vdec::extract_demux_addr_offsets(OMX_BUFFERHEADERTYPE *buf_hdr)
 {
-  OMX_U32 bytes_to_parse = buf_hdr->nFilledLen;
-  OMX_U8 *buf = buf_hdr->pBuffer + buf_hdr->nOffset;
-  OMX_U32 index = 0;
+    OMX_U32 bytes_to_parse = buf_hdr->nFilledLen;
+    OMX_U8 *buf = buf_hdr->pBuffer + buf_hdr->nOffset;
+    OMX_U32 index = 0;
 
-  m_demux_entries = 0;
+    m_demux_entries = 0;
 
-  while (index < bytes_to_parse)
-  {
-    if ( ((buf[index] == 0x00) && (buf[index+1] == 0x00) &&
-          (buf[index+2] == 0x00) && (buf[index+3] == 0x01)) ||
-         ((buf[index] == 0x00) && (buf[index+1] == 0x00) &&
-          (buf[index+2] == 0x01)) )
-    {
-      //Found start code, insert address offset
-      insert_demux_addr_offset(index);
-      if (buf[index+2] == 0x01) // 3 byte start code
-        index += 3;
-      else                      //4 byte start code
-        index += 4;
+    while (index < bytes_to_parse) {
+        if ( ((buf[index] == 0x00) && (buf[index+1] == 0x00) &&
+                    (buf[index+2] == 0x00) && (buf[index+3] == 0x01)) ||
+                ((buf[index] == 0x00) && (buf[index+1] == 0x00) &&
+                 (buf[index+2] == 0x01)) ) {
+            //Found start code, insert address offset
+            insert_demux_addr_offset(index);
+            if (buf[index+2] == 0x01) // 3 byte start code
+                index += 3;
+            else                      //4 byte start code
+                index += 4;
+        } else
+            index++;
     }
-    else
-      index++;
-  }
-  DEBUG_PRINT_LOW("Extracted (%lu) demux entry offsets",m_demux_entries);
-  return;
+    DEBUG_PRINT_LOW("Extracted (%lu) demux entry offsets",m_demux_entries);
+    return;
 }
 
 OMX_ERRORTYPE omx_vdec::handle_demux_data(OMX_BUFFERHEADERTYPE *p_buf_hdr)
 {
-  //fix this, handle 3 byte start code, vc1 terminator entry
-  OMX_U8 *p_demux_data = NULL;
-  OMX_U32 desc_data = 0;
-  OMX_U32 start_addr = 0;
-  OMX_U32 nal_size = 0;
-  OMX_U32 suffix_byte = 0;
-  OMX_U32 demux_index = 0;
-  OMX_U32 buffer_index = 0;
+    //fix this, handle 3 byte start code, vc1 terminator entry
+    OMX_U8 *p_demux_data = NULL;
+    OMX_U32 desc_data = 0;
+    OMX_U32 start_addr = 0;
+    OMX_U32 nal_size = 0;
+    OMX_U32 suffix_byte = 0;
+    OMX_U32 demux_index = 0;
+    OMX_U32 buffer_index = 0;
 
-  if (m_desc_buffer_ptr == NULL)
-  {
-    DEBUG_PRINT_ERROR("m_desc_buffer_ptr is NULL. Cannot append demux entries.");
-    return OMX_ErrorBadParameter;
-  }
-
-  buffer_index = p_buf_hdr - ((OMX_BUFFERHEADERTYPE *)m_inp_mem_ptr);
-  if (buffer_index > drv_ctx.ip_buf.actualcount)
-  {
-    DEBUG_PRINT_ERROR("handle_demux_data:Buffer index is incorrect (%lu)", buffer_index);
-    return OMX_ErrorBadParameter;
-  }
-
-  p_demux_data = (OMX_U8 *) m_desc_buffer_ptr[buffer_index].buf_addr;
-
-  if ( ((OMX_U8*)p_demux_data == NULL) ||
-      ((m_demux_entries * 16) + 1) > DESC_BUFFER_SIZE)
-  {
-    DEBUG_PRINT_ERROR("Insufficient buffer. Cannot append demux entries.");
-    return OMX_ErrorBadParameter;
-  }
-  else
-  {
-    for (; demux_index < m_demux_entries; demux_index++)
-    {
-      desc_data = 0;
-      start_addr = m_demux_offsets[demux_index];
-      if (p_buf_hdr->pBuffer[m_demux_offsets[demux_index] + 2] == 0x01)
-      {
-        suffix_byte = p_buf_hdr->pBuffer[m_demux_offsets[demux_index] + 3];
-      }
-      else
-      {
-        suffix_byte = p_buf_hdr->pBuffer[m_demux_offsets[demux_index] + 4];
-      }
-      if (demux_index < (m_demux_entries - 1))
-      {
-        nal_size = m_demux_offsets[demux_index + 1] - m_demux_offsets[demux_index] - 2;
-      }
-      else
-      {
-        nal_size = p_buf_hdr->nFilledLen - m_demux_offsets[demux_index] - 2;
-      }
-      DEBUG_PRINT_LOW("Start_addr(%p), suffix_byte(0x%lx),nal_size(%lu),demux_index(%lu)",
-                        (void *)start_addr,
-                        suffix_byte,
-                        nal_size,
-                        demux_index);
-      desc_data = (start_addr >> 3) << 1;
-      desc_data |= (start_addr & 7) << 21;
-      desc_data |= suffix_byte << 24;
-
-      memcpy(p_demux_data, &desc_data, sizeof(OMX_U32));
-      memcpy(p_demux_data + 4, &nal_size, sizeof(OMX_U32));
-      memset(p_demux_data + 8, 0, sizeof(OMX_U32));
-      memset(p_demux_data + 12, 0, sizeof(OMX_U32));
-
-      p_demux_data += 16;
+    if (m_desc_buffer_ptr == NULL) {
+        DEBUG_PRINT_ERROR("m_desc_buffer_ptr is NULL. Cannot append demux entries.");
+        return OMX_ErrorBadParameter;
     }
-    if (codec_type_parse == CODEC_TYPE_VC1)
-    {
-      DEBUG_PRINT_LOW("VC1 terminator entry");
-      desc_data = 0;
-      desc_data = 0x82 << 24;
-      memcpy(p_demux_data, &desc_data, sizeof(OMX_U32));
-      memset(p_demux_data + 4, 0, sizeof(OMX_U32));
-      memset(p_demux_data + 8, 0, sizeof(OMX_U32));
-      memset(p_demux_data + 12, 0, sizeof(OMX_U32));
-      p_demux_data += 16;
-      m_demux_entries++;
-    }
-    //Add zero word to indicate end of descriptors
-    memset(p_demux_data, 0, sizeof(OMX_U32));
 
-    m_desc_buffer_ptr[buffer_index].desc_data_size = (m_demux_entries * 16) + sizeof(OMX_U32);
-    DEBUG_PRINT_LOW("desc table data size=%lu", m_desc_buffer_ptr[buffer_index].desc_data_size);
-  }
-  memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
-  m_demux_entries = 0;
-  DEBUG_PRINT_LOW("Demux table complete!");
-  return OMX_ErrorNone;
+    buffer_index = p_buf_hdr - ((OMX_BUFFERHEADERTYPE *)m_inp_mem_ptr);
+    if (buffer_index > drv_ctx.ip_buf.actualcount) {
+        DEBUG_PRINT_ERROR("handle_demux_data:Buffer index is incorrect (%lu)", buffer_index);
+        return OMX_ErrorBadParameter;
+    }
+
+    p_demux_data = (OMX_U8 *) m_desc_buffer_ptr[buffer_index].buf_addr;
+
+    if ( ((OMX_U8*)p_demux_data == NULL) ||
+            ((m_demux_entries * 16) + 1) > DESC_BUFFER_SIZE) {
+        DEBUG_PRINT_ERROR("Insufficient buffer. Cannot append demux entries.");
+        return OMX_ErrorBadParameter;
+    } else {
+        for (; demux_index < m_demux_entries; demux_index++) {
+            desc_data = 0;
+            start_addr = m_demux_offsets[demux_index];
+            if (p_buf_hdr->pBuffer[m_demux_offsets[demux_index] + 2] == 0x01) {
+                suffix_byte = p_buf_hdr->pBuffer[m_demux_offsets[demux_index] + 3];
+            } else {
+                suffix_byte = p_buf_hdr->pBuffer[m_demux_offsets[demux_index] + 4];
+            }
+            if (demux_index < (m_demux_entries - 1)) {
+                nal_size = m_demux_offsets[demux_index + 1] - m_demux_offsets[demux_index] - 2;
+            } else {
+                nal_size = p_buf_hdr->nFilledLen - m_demux_offsets[demux_index] - 2;
+            }
+            DEBUG_PRINT_LOW("Start_addr(%p), suffix_byte(0x%lx),nal_size(%lu),demux_index(%lu)",
+                    (void *)start_addr,
+                    suffix_byte,
+                    nal_size,
+                    demux_index);
+            desc_data = (start_addr >> 3) << 1;
+            desc_data |= (start_addr & 7) << 21;
+            desc_data |= suffix_byte << 24;
+
+            memcpy(p_demux_data, &desc_data, sizeof(OMX_U32));
+            memcpy(p_demux_data + 4, &nal_size, sizeof(OMX_U32));
+            memset(p_demux_data + 8, 0, sizeof(OMX_U32));
+            memset(p_demux_data + 12, 0, sizeof(OMX_U32));
+
+            p_demux_data += 16;
+        }
+        if (codec_type_parse == CODEC_TYPE_VC1) {
+            DEBUG_PRINT_LOW("VC1 terminator entry");
+            desc_data = 0;
+            desc_data = 0x82 << 24;
+            memcpy(p_demux_data, &desc_data, sizeof(OMX_U32));
+            memset(p_demux_data + 4, 0, sizeof(OMX_U32));
+            memset(p_demux_data + 8, 0, sizeof(OMX_U32));
+            memset(p_demux_data + 12, 0, sizeof(OMX_U32));
+            p_demux_data += 16;
+            m_demux_entries++;
+        }
+        //Add zero word to indicate end of descriptors
+        memset(p_demux_data, 0, sizeof(OMX_U32));
+
+        m_desc_buffer_ptr[buffer_index].desc_data_size = (m_demux_entries * 16) + sizeof(OMX_U32);
+        DEBUG_PRINT_LOW("desc table data size=%lu", m_desc_buffer_ptr[buffer_index].desc_data_size);
+    }
+    memset(m_demux_offsets, 0, ( sizeof(OMX_U32) * 8192) );
+    m_demux_entries = 0;
+    DEBUG_PRINT_LOW("Demux table complete!");
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_vdec::createDivxDrmContext()
 {
-     OMX_ERRORTYPE err = OMX_ErrorNone;
-     iDivXDrmDecrypt = DivXDrmDecrypt::Create();
-     if (iDivXDrmDecrypt) {
-          OMX_ERRORTYPE err = iDivXDrmDecrypt->Init();
-          if(err!=OMX_ErrorNone) {
+    OMX_ERRORTYPE err = OMX_ErrorNone;
+    iDivXDrmDecrypt = DivXDrmDecrypt::Create();
+    if (iDivXDrmDecrypt) {
+        OMX_ERRORTYPE err = iDivXDrmDecrypt->Init();
+        if (err!=OMX_ErrorNone) {
             DEBUG_PRINT_ERROR("\nERROR :iDivXDrmDecrypt->Init %d", err);
             delete iDivXDrmDecrypt;
             iDivXDrmDecrypt = NULL;
-          }
-     }
-     else {
-          DEBUG_PRINT_ERROR("\nUnable to Create DIVX DRM");
-          err = OMX_ErrorUndefined;
-     }
-     return err;
+        }
+    } else {
+        DEBUG_PRINT_ERROR("\nUnable to Create DIVX DRM");
+        err = OMX_ErrorUndefined;
+    }
+    return err;
 }
 
 omx_vdec::allocate_color_convert_buf::allocate_color_convert_buf()
 {
-  enabled = false;
-  omx = NULL;
-  init_members();
-  ColorFormat = OMX_COLOR_FormatMax;
+    enabled = false;
+    omx = NULL;
+    init_members();
+    ColorFormat = OMX_COLOR_FormatMax;
 }
 
 void omx_vdec::allocate_color_convert_buf::set_vdec_client(void *client)
 {
-  omx = reinterpret_cast<omx_vdec*>(client);
+    omx = reinterpret_cast<omx_vdec*>(client);
 }
 
-void omx_vdec::allocate_color_convert_buf::init_members() {
-  allocated_count = 0;
-  buffer_size_req = 0;
-  buffer_alignment_req = 0;
-  memset(m_platform_list_client,0,sizeof(m_platform_list_client));
-  memset(m_platform_entry_client,0,sizeof(m_platform_entry_client));
-  memset(m_pmem_info_client,0,sizeof(m_pmem_info_client));
-  memset(m_out_mem_ptr_client,0,sizeof(m_out_mem_ptr_client));
+void omx_vdec::allocate_color_convert_buf::init_members()
+{
+    allocated_count = 0;
+    buffer_size_req = 0;
+    buffer_alignment_req = 0;
+    memset(m_platform_list_client,0,sizeof(m_platform_list_client));
+    memset(m_platform_entry_client,0,sizeof(m_platform_entry_client));
+    memset(m_pmem_info_client,0,sizeof(m_pmem_info_client));
+    memset(m_out_mem_ptr_client,0,sizeof(m_out_mem_ptr_client));
 #ifdef USE_ION
-  memset(op_buf_ion_info,0,sizeof(m_platform_entry_client));
+    memset(op_buf_ion_info,0,sizeof(m_platform_entry_client));
 #endif
-  for (int i = 0; i < MAX_COUNT;i++)
-    pmem_fd[i] = -1;
+    for (int i = 0; i < MAX_COUNT; i++)
+        pmem_fd[i] = -1;
 }
 
-omx_vdec::allocate_color_convert_buf::~allocate_color_convert_buf() {
-  c2d.destroy();
+omx_vdec::allocate_color_convert_buf::~allocate_color_convert_buf()
+{
+    c2d.destroy();
 }
 
 bool omx_vdec::allocate_color_convert_buf::update_buffer_req()
 {
-  bool status = true;
-  unsigned int src_size = 0, destination_size = 0;
-  OMX_COLOR_FORMATTYPE drv_color_format;
-  if (!omx){
-    DEBUG_PRINT_ERROR("\n Invalid client in color convert");
-    return false;
-  }
-  if (!enabled){
-    DEBUG_PRINT_HIGH("\n No color conversion required");
-    return status;
-  }
-  pthread_mutex_lock(&omx->c_lock);
-  if (omx->drv_ctx.output_format != VDEC_YUV_FORMAT_NV12 &&
-      ColorFormat != OMX_COLOR_FormatYUV420Planar) {
-    DEBUG_PRINT_ERROR("\nupdate_buffer_req: Unsupported color conversion");
-    status = false;
-    goto fail_update_buf_req;
-  }
-  c2d.close();
-  status = c2d.open(omx->drv_ctx.video_resolution.frame_height,
-                    omx->drv_ctx.video_resolution.frame_width,
-                    NV12_128m,YCbCr420P);
-  if (status) {
-    status = c2d.get_buffer_size(C2D_INPUT,src_size);
-    if (status)
-      status = c2d.get_buffer_size(C2D_OUTPUT,destination_size);
-  }
-  if (status) {
-    if (!src_size || src_size > omx->drv_ctx.op_buf.buffer_size ||
-        !destination_size) {
-      DEBUG_PRINT_ERROR("\nERROR: Size mismatch in C2D src_size %d"
-            "driver size %d destination size %d",
-             src_size,omx->drv_ctx.op_buf.buffer_size,destination_size);
-      status = false;
-      c2d.close();
-      buffer_size_req = 0;
-    } else {
-      buffer_size_req = destination_size;
-      if (buffer_size_req < omx->drv_ctx.op_buf.buffer_size)
-	     buffer_size_req = omx->drv_ctx.op_buf.buffer_size;
-      if (buffer_alignment_req < omx->drv_ctx.op_buf.alignment)
-            buffer_alignment_req = omx->drv_ctx.op_buf.alignment;
+    bool status = true;
+    unsigned int src_size = 0, destination_size = 0;
+    OMX_COLOR_FORMATTYPE drv_color_format;
+    if (!omx) {
+        DEBUG_PRINT_ERROR("\n Invalid client in color convert");
+        return false;
     }
-  }
+    if (!enabled) {
+        DEBUG_PRINT_HIGH("\n No color conversion required");
+        return status;
+    }
+    pthread_mutex_lock(&omx->c_lock);
+    if (omx->drv_ctx.output_format != VDEC_YUV_FORMAT_NV12 &&
+            ColorFormat != OMX_COLOR_FormatYUV420Planar) {
+        DEBUG_PRINT_ERROR("\nupdate_buffer_req: Unsupported color conversion");
+        status = false;
+        goto fail_update_buf_req;
+    }
+    c2d.close();
+    status = c2d.open(omx->drv_ctx.video_resolution.frame_height,
+            omx->drv_ctx.video_resolution.frame_width,
+            NV12_128m,YCbCr420P);
+    if (status) {
+        status = c2d.get_buffer_size(C2D_INPUT,src_size);
+        if (status)
+            status = c2d.get_buffer_size(C2D_OUTPUT,destination_size);
+    }
+    if (status) {
+        if (!src_size || src_size > omx->drv_ctx.op_buf.buffer_size ||
+                !destination_size) {
+            DEBUG_PRINT_ERROR("\nERROR: Size mismatch in C2D src_size %d"
+                    "driver size %d destination size %d",
+                    src_size,omx->drv_ctx.op_buf.buffer_size,destination_size);
+            status = false;
+            c2d.close();
+            buffer_size_req = 0;
+        } else {
+            buffer_size_req = destination_size;
+            if (buffer_size_req < omx->drv_ctx.op_buf.buffer_size)
+                buffer_size_req = omx->drv_ctx.op_buf.buffer_size;
+            if (buffer_alignment_req < omx->drv_ctx.op_buf.alignment)
+                buffer_alignment_req = omx->drv_ctx.op_buf.alignment;
+        }
+    }
 fail_update_buf_req:
-  pthread_mutex_unlock(&omx->c_lock);
-  return status;
+    pthread_mutex_unlock(&omx->c_lock);
+    return status;
 }
 
 bool omx_vdec::allocate_color_convert_buf::set_color_format(
-  OMX_COLOR_FORMATTYPE dest_color_format)
+        OMX_COLOR_FORMATTYPE dest_color_format)
 {
-  bool status = true;
-  OMX_COLOR_FORMATTYPE drv_color_format;
-  if (!omx){
-    DEBUG_PRINT_ERROR("\n Invalid client in color convert");
-    return false;
-  }
-  pthread_mutex_lock(&omx->c_lock);
-  if (omx->drv_ctx.output_format == VDEC_YUV_FORMAT_NV12)
-    drv_color_format = (OMX_COLOR_FORMATTYPE)
-    QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m;
-  else {
-    DEBUG_PRINT_ERROR("\n Incorrect color format");
-    status = false;
-  }
-  if (status && (drv_color_format != dest_color_format)) {
-    DEBUG_PRINT_LOW("Enabling C2D\n");
-    if (dest_color_format != OMX_COLOR_FormatYUV420Planar) {
-      DEBUG_PRINT_ERROR("\n Unsupported color format for c2d");
-      status = false;
-    } else {
-      ColorFormat = OMX_COLOR_FormatYUV420Planar;
-      if (enabled)
-        c2d.destroy();
-      enabled = false;
-      if (!c2d.init()) {
-        DEBUG_PRINT_ERROR("\n open failed for c2d");
-        status = false;
-      } else
-        enabled = true;
+    bool status = true;
+    OMX_COLOR_FORMATTYPE drv_color_format;
+    if (!omx) {
+        DEBUG_PRINT_ERROR("\n Invalid client in color convert");
+        return false;
     }
-  } else {
-    if (enabled)
-      c2d.destroy();
-    enabled = false;
-  }
-  pthread_mutex_unlock(&omx->c_lock);
-  return status;
+    pthread_mutex_lock(&omx->c_lock);
+    if (omx->drv_ctx.output_format == VDEC_YUV_FORMAT_NV12)
+        drv_color_format = (OMX_COLOR_FORMATTYPE)
+            QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m;
+    else {
+        DEBUG_PRINT_ERROR("\n Incorrect color format");
+        status = false;
+    }
+    if (status && (drv_color_format != dest_color_format)) {
+        DEBUG_PRINT_LOW("Enabling C2D\n");
+        if (dest_color_format != OMX_COLOR_FormatYUV420Planar) {
+            DEBUG_PRINT_ERROR("\n Unsupported color format for c2d");
+            status = false;
+        } else {
+            ColorFormat = OMX_COLOR_FormatYUV420Planar;
+            if (enabled)
+                c2d.destroy();
+            enabled = false;
+            if (!c2d.init()) {
+                DEBUG_PRINT_ERROR("\n open failed for c2d");
+                status = false;
+            } else
+                enabled = true;
+        }
+    } else {
+        if (enabled)
+            c2d.destroy();
+        enabled = false;
+    }
+    pthread_mutex_unlock(&omx->c_lock);
+    return status;
 }
 
 OMX_BUFFERHEADERTYPE* omx_vdec::allocate_color_convert_buf::get_il_buf_hdr()
 {
-  if (!omx){
-    DEBUG_PRINT_ERROR("\n Invalid param get_buf_hdr");
-    return NULL;
-  }
-  if (!enabled)
-    return omx->m_out_mem_ptr;
-  return m_out_mem_ptr_client;
-}
-
-OMX_BUFFERHEADERTYPE* omx_vdec::allocate_color_convert_buf::get_il_buf_hdr
-       (OMX_BUFFERHEADERTYPE *bufadd)
-{
-  if (!omx){
-    DEBUG_PRINT_ERROR("\n Invalid param get_buf_hdr");
-    return NULL;
-  }
-  if (!enabled)
-    return bufadd;
-
-  unsigned index = 0;
-  index = bufadd - omx->m_out_mem_ptr;
-  if (index < omx->drv_ctx.op_buf.actualcount) {
-    m_out_mem_ptr_client[index].nFlags = (bufadd->nFlags & OMX_BUFFERFLAG_EOS);
-    m_out_mem_ptr_client[index].nTimeStamp = bufadd->nTimeStamp;
-    bool status;
-    if (!omx->in_reconfig && !omx->output_flush_progress && bufadd->nFilledLen) {
-       pthread_mutex_lock(&omx->c_lock);
-      status = c2d.convert(omx->drv_ctx.ptr_outputbuffer[index].pmem_fd,
-                           omx->m_out_mem_ptr->pBuffer, bufadd->pBuffer, pmem_fd[index],
-                           pmem_baseaddress[index], pmem_baseaddress[index]);
-       pthread_mutex_unlock(&omx->c_lock);
-      m_out_mem_ptr_client[index].nFilledLen = buffer_size_req;
-      if (!status){
-        DEBUG_PRINT_ERROR("\n Failed color conversion %d", status);
-        m_out_mem_ptr_client[index].nFilledLen = 0;
-        return &m_out_mem_ptr_client[index];
-      }
-    } else
-      m_out_mem_ptr_client[index].nFilledLen = 0;
-    return &m_out_mem_ptr_client[index];
-  }
-  DEBUG_PRINT_ERROR("\n Index messed up in the get_il_buf_hdr");
-  return NULL;
-}
-
-OMX_BUFFERHEADERTYPE* omx_vdec::allocate_color_convert_buf::get_dr_buf_hdr
-                                              (OMX_BUFFERHEADERTYPE *bufadd)
-{
-  if (!omx){
-    DEBUG_PRINT_ERROR("\n Invalid param get_buf_hdr");
-    return NULL;
-  }
-  if (!enabled)
-    return bufadd;
-  unsigned index = 0;
-  index = bufadd - m_out_mem_ptr_client;
-  if (index < omx->drv_ctx.op_buf.actualcount) {
-    return &omx->m_out_mem_ptr[index];
-  }
-  DEBUG_PRINT_ERROR("\n Index messed up in the get_dr_buf_hdr");
-  return NULL;
-}
-bool omx_vdec::allocate_color_convert_buf::get_buffer_req
-          (unsigned int &buffer_size)
-{
-  bool status = true;
-  pthread_mutex_lock(&omx->c_lock);
-  if (!enabled)
-    buffer_size = omx->drv_ctx.op_buf.buffer_size;
-  else {
-    if (!c2d.get_buffer_size(C2D_OUTPUT,buffer_size)) {
-      DEBUG_PRINT_ERROR("\n Get buffer size failed");
-      status = false;
-      goto fail_get_buffer_size;
+    if (!omx) {
+        DEBUG_PRINT_ERROR("\n Invalid param get_buf_hdr");
+        return NULL;
     }
-  }
-  if (buffer_size < omx->drv_ctx.op_buf.buffer_size)
+    if (!enabled)
+        return omx->m_out_mem_ptr;
+    return m_out_mem_ptr_client;
+}
+
+    OMX_BUFFERHEADERTYPE* omx_vdec::allocate_color_convert_buf::get_il_buf_hdr
+(OMX_BUFFERHEADERTYPE *bufadd)
+{
+    if (!omx) {
+        DEBUG_PRINT_ERROR("\n Invalid param get_buf_hdr");
+        return NULL;
+    }
+    if (!enabled)
+        return bufadd;
+
+    unsigned index = 0;
+    index = bufadd - omx->m_out_mem_ptr;
+    if (index < omx->drv_ctx.op_buf.actualcount) {
+        m_out_mem_ptr_client[index].nFlags = (bufadd->nFlags & OMX_BUFFERFLAG_EOS);
+        m_out_mem_ptr_client[index].nTimeStamp = bufadd->nTimeStamp;
+        bool status;
+        if (!omx->in_reconfig && !omx->output_flush_progress && bufadd->nFilledLen) {
+            pthread_mutex_lock(&omx->c_lock);
+            status = c2d.convert(omx->drv_ctx.ptr_outputbuffer[index].pmem_fd,
+                    omx->m_out_mem_ptr->pBuffer, bufadd->pBuffer, pmem_fd[index],
+                    pmem_baseaddress[index], pmem_baseaddress[index]);
+            pthread_mutex_unlock(&omx->c_lock);
+            m_out_mem_ptr_client[index].nFilledLen = buffer_size_req;
+            if (!status) {
+                DEBUG_PRINT_ERROR("\n Failed color conversion %d", status);
+                m_out_mem_ptr_client[index].nFilledLen = 0;
+                return &m_out_mem_ptr_client[index];
+            }
+        } else
+            m_out_mem_ptr_client[index].nFilledLen = 0;
+        return &m_out_mem_ptr_client[index];
+    }
+    DEBUG_PRINT_ERROR("\n Index messed up in the get_il_buf_hdr");
+    return NULL;
+}
+
+    OMX_BUFFERHEADERTYPE* omx_vdec::allocate_color_convert_buf::get_dr_buf_hdr
+(OMX_BUFFERHEADERTYPE *bufadd)
+{
+    if (!omx) {
+        DEBUG_PRINT_ERROR("\n Invalid param get_buf_hdr");
+        return NULL;
+    }
+    if (!enabled)
+        return bufadd;
+    unsigned index = 0;
+    index = bufadd - m_out_mem_ptr_client;
+    if (index < omx->drv_ctx.op_buf.actualcount) {
+        return &omx->m_out_mem_ptr[index];
+    }
+    DEBUG_PRINT_ERROR("\n Index messed up in the get_dr_buf_hdr");
+    return NULL;
+}
+    bool omx_vdec::allocate_color_convert_buf::get_buffer_req
+(unsigned int &buffer_size)
+{
+    bool status = true;
+    pthread_mutex_lock(&omx->c_lock);
+    if (!enabled)
         buffer_size = omx->drv_ctx.op_buf.buffer_size;
-  if (buffer_alignment_req < omx->drv_ctx.op_buf.alignment)
-	  buffer_alignment_req = omx->drv_ctx.op_buf.alignment;
+    else {
+        if (!c2d.get_buffer_size(C2D_OUTPUT,buffer_size)) {
+            DEBUG_PRINT_ERROR("\n Get buffer size failed");
+            status = false;
+            goto fail_get_buffer_size;
+        }
+    }
+    if (buffer_size < omx->drv_ctx.op_buf.buffer_size)
+        buffer_size = omx->drv_ctx.op_buf.buffer_size;
+    if (buffer_alignment_req < omx->drv_ctx.op_buf.alignment)
+        buffer_alignment_req = omx->drv_ctx.op_buf.alignment;
 fail_get_buffer_size:
-  pthread_mutex_unlock(&omx->c_lock);
-  return status;
+    pthread_mutex_unlock(&omx->c_lock);
+    return status;
 }
 OMX_ERRORTYPE omx_vdec::allocate_color_convert_buf::free_output_buffer(
-  OMX_BUFFERHEADERTYPE *bufhdr) {
-  unsigned int index = 0;
+        OMX_BUFFERHEADERTYPE *bufhdr)
+{
+    unsigned int index = 0;
 
-  if (!enabled)
-    return omx->free_output_buffer(bufhdr);
-  if (enabled && omx->is_component_secure())
-    return OMX_ErrorNone;
-  if (!allocated_count || !bufhdr) {
-    DEBUG_PRINT_ERROR("\n Color convert no buffer to be freed %p",bufhdr);
-    return OMX_ErrorBadParameter;
-  }
-  index = bufhdr - m_out_mem_ptr_client;
-  if (index >= omx->drv_ctx.op_buf.actualcount){
-    DEBUG_PRINT_ERROR("\n Incorrect index color convert free_output_buffer");
-    return OMX_ErrorBadParameter;
-  }
-  if (pmem_fd[index] > 0) {
-    munmap(pmem_baseaddress[index], buffer_size_req);
-    close(pmem_fd[index]);
-  }
-  pmem_fd[index] = -1;
+    if (!enabled)
+        return omx->free_output_buffer(bufhdr);
+    if (enabled && omx->is_component_secure())
+        return OMX_ErrorNone;
+    if (!allocated_count || !bufhdr) {
+        DEBUG_PRINT_ERROR("\n Color convert no buffer to be freed %p",bufhdr);
+        return OMX_ErrorBadParameter;
+    }
+    index = bufhdr - m_out_mem_ptr_client;
+    if (index >= omx->drv_ctx.op_buf.actualcount) {
+        DEBUG_PRINT_ERROR("\n Incorrect index color convert free_output_buffer");
+        return OMX_ErrorBadParameter;
+    }
+    if (pmem_fd[index] > 0) {
+        munmap(pmem_baseaddress[index], buffer_size_req);
+        close(pmem_fd[index]);
+    }
+    pmem_fd[index] = -1;
 #ifdef USE_ION
-  omx->free_ion_memory(&op_buf_ion_info[index]);
+    omx->free_ion_memory(&op_buf_ion_info[index]);
 #endif
-  m_heap_ptr[index].video_heap_ptr = NULL;
-  if (allocated_count > 0)
-    allocated_count--;
-  else
-    allocated_count = 0;
-  if (!allocated_count) {
-    pthread_mutex_lock(&omx->c_lock);
-    c2d.close();
-    init_members();
-    pthread_mutex_unlock(&omx->c_lock);
-  }
-  return omx->free_output_buffer(&omx->m_out_mem_ptr[index]);
+    m_heap_ptr[index].video_heap_ptr = NULL;
+    if (allocated_count > 0)
+        allocated_count--;
+    else
+        allocated_count = 0;
+    if (!allocated_count) {
+        pthread_mutex_lock(&omx->c_lock);
+        c2d.close();
+        init_members();
+        pthread_mutex_unlock(&omx->c_lock);
+    }
+    return omx->free_output_buffer(&omx->m_out_mem_ptr[index]);
 }
 
 OMX_ERRORTYPE omx_vdec::allocate_color_convert_buf::allocate_buffers_color_convert(OMX_HANDLETYPE hComp,
-  OMX_BUFFERHEADERTYPE **bufferHdr,OMX_U32 port,OMX_PTR appData,OMX_U32 bytes)
+        OMX_BUFFERHEADERTYPE **bufferHdr,OMX_U32 port,OMX_PTR appData,OMX_U32 bytes)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  if (!enabled){
-    eRet = omx->allocate_output_buffer(hComp,bufferHdr,port,appData,bytes);
-    return eRet;
-  }
-  if (enabled && omx->is_component_secure()) {
-    DEBUG_PRINT_ERROR("\nNotin color convert mode secure_mode %d",
-                      omx->is_component_secure());
-    return OMX_ErrorUnsupportedSetting;
-  }
-  if (!bufferHdr || bytes > buffer_size_req) {
-    DEBUG_PRINT_ERROR("\n Invalid params allocate_buffers_color_convert %p", bufferHdr);
-    DEBUG_PRINT_ERROR("\n color_convert buffer_size_req %d bytes %lu",
-                      buffer_size_req,bytes);
-    return OMX_ErrorBadParameter;
-  }
-  if (allocated_count >= omx->drv_ctx.op_buf.actualcount) {
-    DEBUG_PRINT_ERROR("\n Actual count err in allocate_buffers_color_convert");
-    return OMX_ErrorInsufficientResources;
-  }
-  OMX_BUFFERHEADERTYPE *temp_bufferHdr = NULL;
-  eRet = omx->allocate_output_buffer(hComp,&temp_bufferHdr,
-         port,appData,omx->drv_ctx.op_buf.buffer_size);
-  if (eRet != OMX_ErrorNone || !temp_bufferHdr){
-    DEBUG_PRINT_ERROR("\n Buffer allocation failed color_convert");
-    return eRet;
-  }
-  if ((temp_bufferHdr - omx->m_out_mem_ptr) >=
-      omx->drv_ctx.op_buf.actualcount) {
-    DEBUG_PRINT_ERROR("\n Invalid header index %d",
-             (temp_bufferHdr - omx->m_out_mem_ptr));
-    return OMX_ErrorUndefined;
-  }
-  unsigned int i = allocated_count;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    if (!enabled) {
+        eRet = omx->allocate_output_buffer(hComp,bufferHdr,port,appData,bytes);
+        return eRet;
+    }
+    if (enabled && omx->is_component_secure()) {
+        DEBUG_PRINT_ERROR("\nNotin color convert mode secure_mode %d",
+                omx->is_component_secure());
+        return OMX_ErrorUnsupportedSetting;
+    }
+    if (!bufferHdr || bytes > buffer_size_req) {
+        DEBUG_PRINT_ERROR("\n Invalid params allocate_buffers_color_convert %p", bufferHdr);
+        DEBUG_PRINT_ERROR("\n color_convert buffer_size_req %d bytes %lu",
+                buffer_size_req,bytes);
+        return OMX_ErrorBadParameter;
+    }
+    if (allocated_count >= omx->drv_ctx.op_buf.actualcount) {
+        DEBUG_PRINT_ERROR("\n Actual count err in allocate_buffers_color_convert");
+        return OMX_ErrorInsufficientResources;
+    }
+    OMX_BUFFERHEADERTYPE *temp_bufferHdr = NULL;
+    eRet = omx->allocate_output_buffer(hComp,&temp_bufferHdr,
+            port,appData,omx->drv_ctx.op_buf.buffer_size);
+    if (eRet != OMX_ErrorNone || !temp_bufferHdr) {
+        DEBUG_PRINT_ERROR("\n Buffer allocation failed color_convert");
+        return eRet;
+    }
+    if ((temp_bufferHdr - omx->m_out_mem_ptr) >=
+            omx->drv_ctx.op_buf.actualcount) {
+        DEBUG_PRINT_ERROR("\n Invalid header index %d",
+                (temp_bufferHdr - omx->m_out_mem_ptr));
+        return OMX_ErrorUndefined;
+    }
+    unsigned int i = allocated_count;
 #ifdef USE_ION
-  op_buf_ion_info[i].ion_device_fd = omx->alloc_map_ion_memory(
-    buffer_size_req,buffer_alignment_req,
-    &op_buf_ion_info[i].ion_alloc_data,&op_buf_ion_info[i].fd_ion_data,
-    0);
-  pmem_fd[i] = op_buf_ion_info[i].fd_ion_data.fd;
-  if (op_buf_ion_info[i].ion_device_fd < 0) {
-    DEBUG_PRINT_ERROR("\n alloc_map_ion failed in color_convert");
-    return OMX_ErrorInsufficientResources;
-  }
-  pmem_baseaddress[i] = (unsigned char *)mmap(NULL,buffer_size_req,
-                     PROT_READ|PROT_WRITE,MAP_SHARED,pmem_fd[i],0);
+    op_buf_ion_info[i].ion_device_fd = omx->alloc_map_ion_memory(
+            buffer_size_req,buffer_alignment_req,
+            &op_buf_ion_info[i].ion_alloc_data,&op_buf_ion_info[i].fd_ion_data,
+            0);
+    pmem_fd[i] = op_buf_ion_info[i].fd_ion_data.fd;
+    if (op_buf_ion_info[i].ion_device_fd < 0) {
+        DEBUG_PRINT_ERROR("\n alloc_map_ion failed in color_convert");
+        return OMX_ErrorInsufficientResources;
+    }
+    pmem_baseaddress[i] = (unsigned char *)mmap(NULL,buffer_size_req,
+            PROT_READ|PROT_WRITE,MAP_SHARED,pmem_fd[i],0);
 
-  if (pmem_baseaddress[i] == MAP_FAILED) {
-    DEBUG_PRINT_ERROR("\n MMAP failed for Size %d",buffer_size_req);
-    close(pmem_fd[i]);
-    omx->free_ion_memory(&op_buf_ion_info[i]);
-    return OMX_ErrorInsufficientResources;
-  }
-  m_heap_ptr[i].video_heap_ptr = new VideoHeap (
-    op_buf_ion_info[i].ion_device_fd,buffer_size_req,
-    pmem_baseaddress[i],op_buf_ion_info[i].ion_alloc_data.handle,pmem_fd[i]);
+    if (pmem_baseaddress[i] == MAP_FAILED) {
+        DEBUG_PRINT_ERROR("\n MMAP failed for Size %d",buffer_size_req);
+        close(pmem_fd[i]);
+        omx->free_ion_memory(&op_buf_ion_info[i]);
+        return OMX_ErrorInsufficientResources;
+    }
+    m_heap_ptr[i].video_heap_ptr = new VideoHeap (
+            op_buf_ion_info[i].ion_device_fd,buffer_size_req,
+            pmem_baseaddress[i],op_buf_ion_info[i].ion_alloc_data.handle,pmem_fd[i]);
 #endif
-  m_pmem_info_client[i].pmem_fd = (OMX_U32)m_heap_ptr[i].video_heap_ptr.get();
-  m_pmem_info_client[i].offset = 0;
-  m_platform_entry_client[i].entry = (void *)&m_pmem_info_client[i];
-  m_platform_entry_client[i].type = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
-  m_platform_list_client[i].nEntries = 1;
-  m_platform_list_client[i].entryList = &m_platform_entry_client[i];
-  m_out_mem_ptr_client[i].pOutputPortPrivate = NULL;
-  m_out_mem_ptr_client[i].nAllocLen = buffer_size_req;
-  m_out_mem_ptr_client[i].nFilledLen = 0;
-  m_out_mem_ptr_client[i].nFlags = 0;
-  m_out_mem_ptr_client[i].nOutputPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
-  m_out_mem_ptr_client[i].nSize = sizeof(OMX_BUFFERHEADERTYPE);
-  m_out_mem_ptr_client[i].nVersion.nVersion = OMX_SPEC_VERSION;
-  m_out_mem_ptr_client[i].pPlatformPrivate = &m_platform_list_client[i];
-  m_out_mem_ptr_client[i].pBuffer = pmem_baseaddress[i];
-  m_out_mem_ptr_client[i].pAppPrivate = appData;
-  *bufferHdr = &m_out_mem_ptr_client[i];
-  DEBUG_PRINT_ERROR("\n IL client buffer header %p", *bufferHdr);
-  allocated_count++;
-  return eRet;
+    m_pmem_info_client[i].pmem_fd = (OMX_U32)m_heap_ptr[i].video_heap_ptr.get();
+    m_pmem_info_client[i].offset = 0;
+    m_platform_entry_client[i].entry = (void *)&m_pmem_info_client[i];
+    m_platform_entry_client[i].type = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
+    m_platform_list_client[i].nEntries = 1;
+    m_platform_list_client[i].entryList = &m_platform_entry_client[i];
+    m_out_mem_ptr_client[i].pOutputPortPrivate = NULL;
+    m_out_mem_ptr_client[i].nAllocLen = buffer_size_req;
+    m_out_mem_ptr_client[i].nFilledLen = 0;
+    m_out_mem_ptr_client[i].nFlags = 0;
+    m_out_mem_ptr_client[i].nOutputPortIndex = OMX_CORE_OUTPUT_PORT_INDEX;
+    m_out_mem_ptr_client[i].nSize = sizeof(OMX_BUFFERHEADERTYPE);
+    m_out_mem_ptr_client[i].nVersion.nVersion = OMX_SPEC_VERSION;
+    m_out_mem_ptr_client[i].pPlatformPrivate = &m_platform_list_client[i];
+    m_out_mem_ptr_client[i].pBuffer = pmem_baseaddress[i];
+    m_out_mem_ptr_client[i].pAppPrivate = appData;
+    *bufferHdr = &m_out_mem_ptr_client[i];
+    DEBUG_PRINT_ERROR("\n IL client buffer header %p", *bufferHdr);
+    allocated_count++;
+    return eRet;
 }
 
 bool omx_vdec::is_component_secure()
 {
-  return secure_mode;
+    return secure_mode;
 }
 
 bool omx_vdec::allocate_color_convert_buf::get_color_format(OMX_COLOR_FORMATTYPE &dest_color_format)
 {
-  bool status = true;
-  if (!enabled) {
-    if (omx->drv_ctx.output_format == VDEC_YUV_FORMAT_NV12)
-     dest_color_format =  (OMX_COLOR_FORMATTYPE)
-            QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m;
-    else
-      status = false;
-  } else {
-    if (ColorFormat != OMX_COLOR_FormatYUV420Planar) {
-      status = false;
-    } else
-      dest_color_format = OMX_COLOR_FormatYUV420Planar;
-  }
-  return status;
+    bool status = true;
+    if (!enabled) {
+        if (omx->drv_ctx.output_format == VDEC_YUV_FORMAT_NV12)
+            dest_color_format =  (OMX_COLOR_FORMATTYPE)
+                QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m;
+        else
+            status = false;
+    } else {
+        if (ColorFormat != OMX_COLOR_FormatYUV420Planar) {
+            status = false;
+        } else
+            dest_color_format = OMX_COLOR_FormatYUV420Planar;
+    }
+    return status;
 }
diff --git a/mm-video-v4l2/vidc/vdec/src/power_module.cpp b/mm-video-v4l2/vidc/vdec/src/power_module.cpp
index 3849218..6be9aa0 100644
--- a/mm-video-v4l2/vidc/vdec/src/power_module.cpp
+++ b/mm-video-v4l2/vidc/vdec/src/power_module.cpp
@@ -1,5 +1,5 @@
 /*-------------------------------------------------------------------------
-Copyright (c) 2012, The Linux Foundation. All rights reserved.
+Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
 
   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions
@@ -34,21 +34,21 @@
 
 PowerModule *PowerModule::getInstance()
 {
-  if (mPowerModuleInstance == NULL) {
-    mPowerModuleInstance = new PowerModule;
+    if (mPowerModuleInstance == NULL) {
+        mPowerModuleInstance = new PowerModule;
 
-    if (mPowerModuleInstance) {
-      mPowerModuleInstance->mPowerModuleHandle = NULL;
+        if (mPowerModuleInstance) {
+            mPowerModuleInstance->mPowerModuleHandle = NULL;
 
-      hw_get_module(POWER_HARDWARE_MODULE_ID,
-          (const hw_module_t **)&(mPowerModuleInstance->mPowerModuleHandle));
+            hw_get_module(POWER_HARDWARE_MODULE_ID,
+                    (const hw_module_t **)&(mPowerModuleInstance->mPowerModuleHandle));
+        }
     }
-  }
 
-  return mPowerModuleInstance;
+    return mPowerModuleInstance;
 }
 
 power_module_t *PowerModule::getPowerModuleHandle()
 {
-  return mPowerModuleHandle;
+    return mPowerModuleHandle;
 }
diff --git a/mm-video-v4l2/vidc/vdec/src/queue.c b/mm-video-v4l2/vidc/vdec/src/queue.c
old mode 100755
new mode 100644
index 368d7c4..d91f499
--- a/mm-video-v4l2/vidc/vdec/src/queue.c
+++ b/mm-video-v4l2/vidc/vdec/src/queue.c
@@ -1,5 +1,5 @@
 /*--------------------------------------------------------------------------
-Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
+Copyright (c) 2010-2011, 2013, The Linux Foundation. All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -26,103 +26,95 @@
 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 --------------------------------------------------------------------------*/
 /*
-	Queue with Linked list
-*/
+   Queue with Linked list
+ */
 
 #include "queue.h"
 #include <stdio.h>
 #include <stdlib.h>
 
 
-typedef struct Node
-{
-  void *element;
-  struct Node *next;
+typedef struct Node {
+    void *element;
+    struct Node *next;
 } Node;
 
-struct Queue
-{
-  Node *head;
-  Node *tail;
-  int  current_size;
+struct Queue {
+    Node *head;
+    Node *tail;
+    int  current_size;
 };
 
 Queue *alloc_queue()
 {
-  Queue *q = (Queue *) malloc(sizeof(Queue));
-  if (q)
-  {
-    q->head = q->tail = NULL;
-    q->current_size = 0;
-  }
-  return q;
+    Queue *q = (Queue *) malloc(sizeof(Queue));
+
+    if (q) {
+        q->head = q->tail = NULL;
+        q->current_size = 0;
+    }
+
+    return q;
 }
 
 void free_queue(Queue *q)
 {
-  while (q->current_size)
-  {
-    pop(q);
-  }
+    while (q->current_size) {
+        pop(q);
+    }
 }
 
 void free_queue_and_qelement(Queue *q)
 {
-  while (q->current_size)
-  {
-    void *element = pop(q);
-    if (element)
-      free(element);
-  }
+    while (q->current_size) {
+        void *element = pop(q);
+
+        if (element)
+            free(element);
+    }
 }
 
 int push(Queue *q, void * element)
 {
-  Node *new_node = (Node *) malloc(sizeof(Node));
+    Node *new_node = (Node *) malloc(sizeof(Node));
 
-  if (new_node == NULL)
-    return -1;
+    if (new_node == NULL)
+        return -1;
 
-  new_node->element = element;
-  new_node->next = NULL;
+    new_node->element = element;
+    new_node->next = NULL;
 
-  if (q->current_size == 0)
-  {
-    q->head = new_node;
-  }
-  else
-  {
-    q->tail->next = new_node;
-  }
+    if (q->current_size == 0) {
+        q->head = new_node;
+    } else {
+        q->tail->next = new_node;
+    }
 
-  q->tail = new_node;
-  q->current_size++;
+    q->tail = new_node;
+    q->current_size++;
 
-  return 0;
+    return 0;
 }
 
 void *pop(Queue *q)
 {
-  Node *temp;
-  void *element;
+    Node *temp;
+    void *element;
 
-  if (q->current_size == 0)
-    return NULL;
+    if (q->current_size == 0)
+        return NULL;
 
-  temp = q->head;
-  element = temp->element;
+    temp = q->head;
+    element = temp->element;
 
-  if (q->current_size == 1)
-  {
-    q->head = q->tail = NULL;
-  }
-  else
-  {
-    q->head = q->head->next;
-  }
+    if (q->current_size == 1) {
+        q->head = q->tail = NULL;
+    } else {
+        q->head = q->head->next;
+    }
 
-  free(temp);
-  q->current_size--;
-  return element;
+    free(temp);
+    q->current_size--;
+    return element;
 }
 
diff --git a/mm-video-v4l2/vidc/vdec/src/ts_parser.cpp b/mm-video-v4l2/vidc/vdec/src/ts_parser.cpp
index 44aa200..9825348 100644
--- a/mm-video-v4l2/vidc/vdec/src/ts_parser.cpp
+++ b/mm-video-v4l2/vidc/vdec/src/ts_parser.cpp
@@ -1,268 +1,315 @@
-/*--------------------------------------------------------------------------

-Copyright (c) 2010-2012, The Linux Foundation. All rights reserved.

-

-Redistribution and use in source and binary forms, with or without

-modification, are permitted provided that the following conditions are met:

-    * Redistributions of source code must retain the above copyright

-      notice, this list of conditions and the following disclaimer.

-    * Redistributions in binary form must reproduce the above copyright

-      notice, this list of conditions and the following disclaimer in the

-      documentation and/or other materials provided with the distribution.

-    * Neither the name of The Linux Foundation nor

-      the names of its contributors may be used to endorse or promote

-      products derived from this software without specific prior written

-      permission.

-

-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

-IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

-NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR

-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;

-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF

-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---------------------------------------------------------------------------*/

-#include "ts_parser.h"

-

-#define DEBUG ALOGE

-void omx_time_stamp_reorder::set_timestamp_reorder_mode(bool mode)

-{

-	reorder_ts = mode;

-}

-

-void omx_time_stamp_reorder::enable_debug_print(bool flag)

-{

-        print_debug = flag;

-}

-

-omx_time_stamp_reorder::~omx_time_stamp_reorder()

-{

-	delete_list();

-}

-

-omx_time_stamp_reorder::omx_time_stamp_reorder()

-{

-	reorder_ts = false;

-	phead = pcurrent = NULL;

-	error = false;

-        print_debug = false;

-}

-

-void omx_time_stamp_reorder::delete_list()

-{

-	time_stamp_list *ptemp;

-	if (!phead) return;

-	while(phead->next != phead) {

-		ptemp = phead;

-		phead = phead->next;

-		phead->prev = ptemp->prev;

-		ptemp->prev->next = phead;

-		delete ptemp;

-	}

-	delete phead;

-	phead = NULL;

-}

-

-bool omx_time_stamp_reorder::get_current_list()

-{

-	if (!phead) {

-		if(!add_new_list()) {

-			handle_error();

-			return false;

-		}

-	}

-	pcurrent = phead->prev;

-	return true;

-}

-

-bool omx_time_stamp_reorder::update_head()

-{

-	time_stamp_list *ptemp;

-	if(!phead) return false;

-	if (phead->next != phead) {

-		ptemp = phead;

-		phead = ptemp->next;

-		phead->prev = ptemp->prev;

-		ptemp->prev->next = phead;

-		delete ptemp;

-	}

-	return true;

-}

-

-bool omx_time_stamp_reorder::add_new_list()

-{

-	bool status = true;

-	time_stamp_list *ptemp = NULL;

-	if (!phead) {

-		ptemp = phead = new time_stamp_list;

-		if (!phead) {

-			handle_error();

-			status = false;

-			return status;

-		}

-		phead->prev = phead->next = phead;

-	} else {

-		ptemp = new time_stamp_list;

-		if (!ptemp) {

-			handle_error();

-			status = false;

-			return status;

-		}

-		ptemp->prev = phead->prev;

-		ptemp->next = phead;

-		phead->prev->next = ptemp;

-		phead->prev = ptemp;

-	}

-	ptemp->entries_filled = 0;

-	for(int i=0; i < TIME_SZ; i++) {

-		ptemp->input_timestamps[i].in_use = false;

-		ptemp->input_timestamps[i].timestamps = -1;

-	}

-	return status;

-}

-

-bool omx_time_stamp_reorder::insert_timestamp(OMX_BUFFERHEADERTYPE *header)

-{

-	OMX_TICKS *table_entry = NULL;

-	if (!reorder_ts || error || !header) {

-		if (error || !header)

-			DEBUG("\n Invalid condition in insert_timestamp %p", header);

-		return false;

-	}

-	if(!get_current_list()) {

-		handle_error();

-		return false;

-	}

-	if (pcurrent->entries_filled > (TIME_SZ - 1)) {

-		DEBUG("\n Table full return error");

-		handle_error();

-		return false;

-	}

-	if (header->nFlags & OMX_BUFFERFLAG_CODECCONFIG) {

-		return true;

-	}

-	if ((header->nFlags & OMX_BUFFERFLAG_EOS) && !header->nFilledLen)

-	{

-		DEBUG("\n EOS with zero length recieved");

-		if (!add_new_list()) {

-			handle_error();

-			return false;

-		}

-		return true;

-	}

-	for(int i = 0; i < TIME_SZ && !table_entry; i++) {

-		if (!pcurrent->input_timestamps[i].in_use) {

-			table_entry = &pcurrent->input_timestamps[i].timestamps;

-			pcurrent->input_timestamps[i].in_use = true;

-			pcurrent->entries_filled++;

-		}

-	}

-	if (!table_entry) {

-		DEBUG("\n All entries in use");

-		handle_error();

-		return false;

-	}

-	*table_entry = header->nTimeStamp;

-        if (print_debug)

-	        DEBUG("Time stamp inserted %lld", header->nTimeStamp);

-	if (header->nFlags & OMX_BUFFERFLAG_EOS) {

-		if (!add_new_list()) {

-			handle_error();

-			return false;

-		}

-	}

-	return true;

-}

-

-bool omx_time_stamp_reorder::remove_time_stamp(OMX_TICKS ts, bool is_interlaced = false)

-{

-	unsigned int num_ent_remove = (is_interlaced)?2:1;

-	if (!reorder_ts || error) {

-		DEBUG("\n not in avi mode");

-		return false;

-	}

-	if (!phead || !phead->entries_filled) return false;

-	for(int i=0; i < TIME_SZ && num_ent_remove; i++) {

-		if (phead->input_timestamps[i].in_use && phead->input_timestamps[i].timestamps == ts) {

-				phead->input_timestamps[i].in_use = false;

-				phead->entries_filled--;

-				num_ent_remove--;

-                                if (print_debug)

-		                       DEBUG("Removed TS %lld", ts);

-		}

-	}

-	if (!phead->entries_filled) {

-		if (!update_head()) {

-			handle_error();

-			return false;

-		}

-	}

-	return true;

-}

-

-void omx_time_stamp_reorder::flush_timestamp()

-{

-	delete_list();

-}

-

-bool omx_time_stamp_reorder::get_next_timestamp(OMX_BUFFERHEADERTYPE *header, bool is_interlaced)

-{

-	timestamp *element = NULL,*duplicate = NULL;

-	bool status = false;

-	if (!reorder_ts || error || !header) {

-		if (error || !header)

-			DEBUG("\n Invalid condition in insert_timestamp %p", header);

-		return false;

-	}

-	if(!phead || !phead->entries_filled) return false;

-	for(int i=0; i < TIME_SZ; i++) {

-		if (phead->input_timestamps[i].in_use) {

-			status = true;

-			if (!element)

-				element = &phead->input_timestamps[i];

-			else {

-				if (element->timestamps > phead->input_timestamps[i].timestamps){

-					element = &phead->input_timestamps[i];

-					duplicate = NULL;

-				} else if(element->timestamps == phead->input_timestamps[i].timestamps)

-					duplicate = &phead->input_timestamps[i];

-			}

-		}

-	}

-	if (element) {

-		phead->entries_filled--;

-		header->nTimeStamp = element->timestamps;

-                if (print_debug)

-		     DEBUG("Getnext Time stamp %lld", header->nTimeStamp);

-		element->in_use = false;

-	}

-	if(is_interlaced && duplicate) {

-		phead->entries_filled--;

-		duplicate->in_use = false;

-	} else if (is_interlaced && !duplicate) {
-		element = NULL;
-		for(int i=0; i < TIME_SZ; i++) {
-			if (phead->input_timestamps[i].in_use) {
-				if (!element)
-					element = &phead->input_timestamps[i];
-				else if (element->timestamps > phead->input_timestamps[i].timestamps)
-						element = &phead->input_timestamps[i];
-			}
-		}
-		if (element) {
-			phead->entries_filled--;
-			header->nTimeStamp = element->timestamps;
-			element->in_use = false;
-		}
-	}

-	if (!phead->entries_filled) {

-		if (!update_head()) {

-			handle_error();

-			return false;

-		}

-	}

-	return status;

-}

+/*--------------------------------------------------------------------------
+Copyright (c) 2010-2013, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of The Linux Foundation nor
+      the names of its contributors may be used to endorse or promote
+      products derived from this software without specific prior written
+      permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------*/
+#include "ts_parser.h"
+
+#define DEBUG ALOGE
+void omx_time_stamp_reorder::set_timestamp_reorder_mode(bool mode)
+{
+    reorder_ts = mode;
+}
+
+void omx_time_stamp_reorder::enable_debug_print(bool flag)
+{
+    print_debug = flag;
+}
+
+omx_time_stamp_reorder::~omx_time_stamp_reorder()
+{
+    delete_list();
+}
+
+omx_time_stamp_reorder::omx_time_stamp_reorder()
+{
+    reorder_ts = false;
+    phead = pcurrent = NULL;
+    error = false;
+    print_debug = false;
+}
+
+void omx_time_stamp_reorder::delete_list()
+{
+    time_stamp_list *ptemp;
+
+    if (!phead) return;
+
+    while (phead->next != phead) {
+        ptemp = phead;
+        phead = phead->next;
+        phead->prev = ptemp->prev;
+        ptemp->prev->next = phead;
+        delete ptemp;
+    }
+
+    delete phead;
+    phead = NULL;
+}
+
+bool omx_time_stamp_reorder::get_current_list()
+{
+    if (!phead) {
+        if (!add_new_list()) {
+            handle_error();
+            return false;
+        }
+    }
+
+    pcurrent = phead->prev;
+    return true;
+}
+
+bool omx_time_stamp_reorder::update_head()
+{
+    time_stamp_list *ptemp;
+
+    if (!phead) return false;
+
+    if (phead->next != phead) {
+        ptemp = phead;
+        phead = ptemp->next;
+        phead->prev = ptemp->prev;
+        ptemp->prev->next = phead;
+        delete ptemp;
+    }
+
+    return true;
+}
+
+bool omx_time_stamp_reorder::add_new_list()
+{
+    bool status = true;
+    time_stamp_list *ptemp = NULL;
+
+    if (!phead) {
+        ptemp = phead = new time_stamp_list;
+
+        if (!phead) {
+            handle_error();
+            status = false;
+            return status;
+        }
+
+        phead->prev = phead->next = phead;
+    } else {
+        ptemp = new time_stamp_list;
+
+        if (!ptemp) {
+            handle_error();
+            status = false;
+            return status;
+        }
+
+        ptemp->prev = phead->prev;
+        ptemp->next = phead;
+        phead->prev->next = ptemp;
+        phead->prev = ptemp;
+    }
+
+    ptemp->entries_filled = 0;
+
+    for (int i=0; i < TIME_SZ; i++) {
+        ptemp->input_timestamps[i].in_use = false;
+        ptemp->input_timestamps[i].timestamps = -1;
+    }
+
+    return status;
+}
+
+bool omx_time_stamp_reorder::insert_timestamp(OMX_BUFFERHEADERTYPE *header)
+{
+    OMX_TICKS *table_entry = NULL;
+
+    if (!reorder_ts || error || !header) {
+        if (error || !header)
+            DEBUG("\n Invalid condition in insert_timestamp %p", header);
+
+        return false;
+    }
+
+    if (!get_current_list()) {
+        handle_error();
+        return false;
+    }
+
+    if (pcurrent->entries_filled > (TIME_SZ - 1)) {
+        DEBUG("\n Table full return error");
+        handle_error();
+        return false;
+    }
+
+    if (header->nFlags & OMX_BUFFERFLAG_CODECCONFIG) {
+        return true;
+    }
+
+    if ((header->nFlags & OMX_BUFFERFLAG_EOS) && !header->nFilledLen) {
+        DEBUG("\n EOS with zero length recieved");
+
+        if (!add_new_list()) {
+            handle_error();
+            return false;
+        }
+
+        return true;
+    }
+
+    for (int i = 0; i < TIME_SZ && !table_entry; i++) {
+        if (!pcurrent->input_timestamps[i].in_use) {
+            table_entry = &pcurrent->input_timestamps[i].timestamps;
+            pcurrent->input_timestamps[i].in_use = true;
+            pcurrent->entries_filled++;
+        }
+    }
+
+    if (!table_entry) {
+        DEBUG("\n All entries in use");
+        handle_error();
+        return false;
+    }
+
+    *table_entry = header->nTimeStamp;
+
+    if (print_debug)
+        DEBUG("Time stamp inserted %lld", header->nTimeStamp);
+
+    if (header->nFlags & OMX_BUFFERFLAG_EOS) {
+        if (!add_new_list()) {
+            handle_error();
+            return false;
+        }
+    }
+
+    return true;
+}
+
+bool omx_time_stamp_reorder::remove_time_stamp(OMX_TICKS ts, bool is_interlaced = false)
+{
+    unsigned int num_ent_remove = (is_interlaced)?2:1;
+
+    if (!reorder_ts || error) {
+        DEBUG("\n not in avi mode");
+        return false;
+    }
+
+    if (!phead || !phead->entries_filled) return false;
+
+    for (int i=0; i < TIME_SZ && num_ent_remove; i++) {
+        if (phead->input_timestamps[i].in_use && phead->input_timestamps[i].timestamps == ts) {
+            phead->input_timestamps[i].in_use = false;
+            phead->entries_filled--;
+            num_ent_remove--;
+
+            if (print_debug)
+                DEBUG("Removed TS %lld", ts);
+        }
+    }
+
+    if (!phead->entries_filled) {
+        if (!update_head()) {
+            handle_error();
+            return false;
+        }
+    }
+
+    return true;
+}
+
+void omx_time_stamp_reorder::flush_timestamp()
+{
+    delete_list();
+}
+
+bool omx_time_stamp_reorder::get_next_timestamp(OMX_BUFFERHEADERTYPE *header, bool is_interlaced)
+{
+    timestamp *element = NULL,*duplicate = NULL;
+    bool status = false;
+
+    if (!reorder_ts || error || !header) {
+        if (error || !header)
+            DEBUG("\n Invalid condition in insert_timestamp %p", header);
+
+        return false;
+    }
+
+    if (!phead || !phead->entries_filled) return false;
+
+    for (int i=0; i < TIME_SZ; i++) {
+        if (phead->input_timestamps[i].in_use) {
+            status = true;
+
+            if (!element)
+                element = &phead->input_timestamps[i];
+            else {
+                if (element->timestamps > phead->input_timestamps[i].timestamps) {
+                    element = &phead->input_timestamps[i];
+                    duplicate = NULL;
+                } else if (element->timestamps == phead->input_timestamps[i].timestamps)
+                    duplicate = &phead->input_timestamps[i];
+            }
+        }
+    }
+
+    if (element) {
+        phead->entries_filled--;
+        header->nTimeStamp = element->timestamps;
+
+        if (print_debug)
+            DEBUG("Getnext Time stamp %lld", header->nTimeStamp);
+
+        element->in_use = false;
+    }
+
+    if (is_interlaced && duplicate) {
+        phead->entries_filled--;
+        duplicate->in_use = false;
+    } else if (is_interlaced && !duplicate) {
+        element = NULL;
+
+        for (int i=0; i < TIME_SZ; i++) {
+            if (phead->input_timestamps[i].in_use) {
+                if (!element)
+                    element = &phead->input_timestamps[i];
+                else if (element->timestamps > phead->input_timestamps[i].timestamps)
+                    element = &phead->input_timestamps[i];
+            }
+        }
+
+        if (element) {
+            phead->entries_filled--;
+            header->nTimeStamp = element->timestamps;
+            element->in_use = false;
+        }
+    }
+
+    if (!phead->entries_filled) {
+        if (!update_head()) {
+            handle_error();
+            return false;
+        }
+    }
+
+    return status;
+}
diff --git a/mm-video-v4l2/vidc/vdec/test/decoder_driver_test.c b/mm-video-v4l2/vidc/vdec/test/decoder_driver_test.c
old mode 100755
new mode 100644
index fe870f8..27b3934
--- a/mm-video-v4l2/vidc/vdec/test/decoder_driver_test.c
+++ b/mm-video-v4l2/vidc/vdec/test/decoder_driver_test.c
@@ -1,1198 +1,1132 @@
-/*--------------------------------------------------------------------------

-Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.

-

-Redistribution and use in source and binary forms, with or without

-modification, are permitted provided that the following conditions are met:

-    * Redistributions of source code must retain the above copyright

-      notice, this list of conditions and the following disclaimer.

-    * Redistributions in binary form must reproduce the above copyright

-      notice, this list of conditions and the following disclaimer in the

-      documentation and/or other materials provided with the distribution.

-    * Neither the name of The Linux Foundation nor

-      the names of its contributors may be used to endorse or promote

-      products derived from this software without specific prior written

-      permission.

-

-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

-IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

-NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR

-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;

-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF

-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---------------------------------------------------------------------------*/

-#include "decoder_driver_test.h"

-

-#define DEBUG_PRINT printf

-/************************************************************************/

-/*        #DEFINES                          */

-/************************************************************************/

-

-#define VOP_START_CODE 0x000001B6

-#define SHORT_HEADER_START_CODE 0x00008000

-#define H264_START_CODE         0x00000001

-

-/************************************************************************/

-/*        STATIC VARIABLES                          */

-/************************************************************************/

-

-static int Code_type;

-static int total_frames = 0;

-static unsigned int header_code = 0;

-static pthread_mutex_t read_lock;

-

-static unsigned int read_frame ( unsigned char *dataptr,unsigned int length,

-                                 FILE * inputBufferFile

-                                );

-static int Read_Buffer_From_DAT_File( unsigned char *dataptr, unsigned int length,

-                                      FILE * inputBufferFile

-                                     );

-

-static unsigned clp2(unsigned x)

-{

-        x = x - 1;

-        x = x | (x >> 1);

-        x = x | (x >> 2);

-        x = x | (x >> 4);

-        x = x | (x >> 8);

-        x = x | (x >>16);

-        return x + 1;

-}

-

-static void* video_thread (void *);

-static void* async_thread (void *);

-

-int main (int argc, char **argv)

-{

-  struct video_decoder_context *decoder_context = NULL;

-  char *file_name = NULL;

-  FILE *file_ptr = NULL;

-  int temp1 =0,temp2 =0;

-  int error = 1;

-  unsigned int i = 0;

-

-  file_name = argv [1];

-  file_ptr = fopen (file_name,"rb");

-

-  if (file_ptr == NULL)

-  {

-    DEBUG_PRINT("\n File is not located ");

-    return -1;

-  }

-

-

-  decoder_context = (struct video_decoder_context *) \

-                   calloc (sizeof (struct video_decoder_context),1);

-  if (decoder_context == NULL)

-  {

-    return -1;

-  }

-  decoder_context->outputBufferFile = NULL;

-  decoder_context->inputBufferFile = NULL;

-  decoder_context->video_driver_fd = -1;

-  decoder_context->inputBufferFile = file_ptr;

-

-  file_ptr = fopen ("/data/output.yuv","wb");

-  if (file_ptr == NULL)

-  {

-    DEBUG_PRINT("\n File can't be created");

-    free (decoder_context);

-    return -1;

-  }

-  decoder_context->outputBufferFile = file_ptr;

-

-   switch (atoi(argv[2]))

-   {

-   case 0:

-     DEBUG_PRINT("\n MPEG4 codec selected");

-     decoder_context->decoder_format = VDEC_CODECTYPE_MPEG4;

-     Code_type = 0;

-     break;

-   case 1:

-     DEBUG_PRINT("\n H.263");

-     decoder_context->decoder_format = VDEC_CODECTYPE_H263;

-     Code_type = 0;

-     break;

-   case 2:

-     DEBUG_PRINT("\n H.264");

-     decoder_context->decoder_format = VDEC_CODECTYPE_H264;

-     Code_type = 1;

-     break;

-   default:

-     DEBUG_PRINT("\n Wrong codec type");

-     error = -1;

-     break;

-   }

-

-   if (error != -1)

-   {

-     temp1 = atoi(argv[3]);

-     temp2 = atoi(argv[4]);

-

-     if (((temp1%16) != 0) || ((temp2%16) != 0))

-     {

-       error = -1;

-     }

-     else

-     {

-      decoder_context->video_resoultion.frame_height = temp1;

-            decoder_context->video_resoultion.frame_width = temp2;

-     }

-   }

-

-   switch (atoi(argv[5]))

-   {

-   case 0:

-     DEBUG_PRINT("\n No Sink");

-     decoder_context->outputBufferFile = NULL;

-     break;

-   }

-

-   if ( error != -1 && (init_decoder (decoder_context) == -1 ))

-   {

-      DEBUG_PRINT("\n Init decoder fails ");

-      error = -1;

-   }

-   DEBUG_PRINT("\n Decoder open successfull");

-

-

-   /*Allocate input and output buffers*/

-   if (error != -1 && (allocate_buffer (VDEC_BUFFER_TYPE_INPUT,

-                      decoder_context)== -1))

-   {

-     DEBUG_PRINT("\n Error in input Buffer allocation");

-     error = -1;

-   }

-

-   if (error != -1 && (allocate_buffer (VDEC_BUFFER_TYPE_OUTPUT,

-                      decoder_context)== -1))

-   {

-     DEBUG_PRINT("\n Error in output Buffer allocation");

-     error = -1;

-   }

-

-

-   if (error != -1 && (start_decoding (decoder_context) == -1))

-   {

-     DEBUG_PRINT("\n Error in start decoding call");

-     error = -1;

-   }

-

-   if (error != -1 && (stop_decoding (decoder_context) == -1))

-   {

-     DEBUG_PRINT("\n Error in stop decoding call");

-     error = -1;

-   }

-

-   DEBUG_PRINT("\n De-init the decoder");

-   if ((deinit_decoder (decoder_context) == -1))

-   {

-      error = -1;

-   }

-

-

-  (void)free_buffer (VDEC_BUFFER_TYPE_INPUT,decoder_context);

-  (void)free_buffer (VDEC_BUFFER_TYPE_OUTPUT,decoder_context);

-

-  if (decoder_context->inputBufferFile != NULL)

-  {

-   fclose (decoder_context->inputBufferFile);

-  }

-  if (decoder_context->outputBufferFile != NULL)

-  {

-    fclose (decoder_context->outputBufferFile);

-  }

-  DEBUG_PRINT ("\n Total Number of frames decoded %d",total_frames);

-  DEBUG_PRINT("\n closing the driver");

-  free (decoder_context);

-

-  return error;

-}

-

-int init_decoder ( struct video_decoder_context *init_decode )

-{

-  struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};

-  struct video_queue_context *queue_ptr = NULL;

-#ifdef MAX_RES_720P

-  enum vdec_output_fromat output_format = VDEC_YUV_FORMAT_NV12;

-#endif

-#ifdef MAX_RES_1080P

-  enum vdec_output_fromat output_format  = VDEC_YUV_FORMAT_TILE_4x2;

-#endif

-

-  pthread_mutexattr_t init_values;

-

-  DEBUG_PRINT("\n Before calling the open");

-

-  init_decode->video_driver_fd = open ("/dev/msm_vidc_dec", \

-                     O_RDWR | O_NONBLOCK);

-

-

-

-  if (init_decode->video_driver_fd < 0)

-  {

-    DEBUG_PRINT("\n Open failed");

-    return -1;

-  }

-

-

-  /*Initialize Decoder with codec type and resolution*/

-  ioctl_msg.in = &init_decode->decoder_format;

-  ioctl_msg.out = NULL;

-

-  if (ioctl (init_decode->video_driver_fd,VDEC_IOCTL_SET_CODEC,

-         (void*)&ioctl_msg) < 0)

-  {

-    DEBUG_PRINT("\n Set codec type failed");

-    return -1;

-  }

-

-  /*Set the output format*/

-  ioctl_msg.in = &output_format;

-  ioctl_msg.out = NULL;

-

-  if (ioctl (init_decode->video_driver_fd,VDEC_IOCTL_SET_OUTPUT_FORMAT,

-         (void*)&ioctl_msg) < 0)

-  {

-    DEBUG_PRINT("\n Set output format failed");

-    return -1;

-  }

-

-  ioctl_msg.in = &init_decode->video_resoultion;

-  ioctl_msg.out = NULL;

-

-  if (ioctl (init_decode->video_driver_fd,VDEC_IOCTL_SET_PICRES,

-         (void*)&ioctl_msg) < 0)

-  {

-    DEBUG_PRINT("\n Set Resolution failed");

-    return -1;

-  }

-  DEBUG_PRINT("\n After Set Resolution");

-

-  DEBUG_PRINT("\n Query Input bufffer requirements");

-  /*Get the Buffer requirements for input and output ports*/

-

-  init_decode->input_buffer.buffer_type = VDEC_BUFFER_TYPE_INPUT;

-  ioctl_msg.in = NULL;

-  ioctl_msg.out = &init_decode->input_buffer;

-

-  if (ioctl (init_decode->video_driver_fd,VDEC_IOCTL_GET_BUFFER_REQ,

-         (void*)&ioctl_msg) < 0)

-  {

-    DEBUG_PRINT("\n Requesting for input buffer requirements failed");

-    return -1;

-  }

-

-  DEBUG_PRINT("\n input Size=%d min count =%d actual count = %d", \

-              init_decode->input_buffer.buffer_size,\

-              init_decode->input_buffer.mincount,\

-              init_decode->input_buffer.actualcount);

-

-

-  init_decode->input_buffer.buffer_type = VDEC_BUFFER_TYPE_INPUT;

-  ioctl_msg.in = &init_decode->input_buffer;

-  ioctl_msg.out = NULL;

-  init_decode->input_buffer.actualcount = init_decode->input_buffer.mincount + 2;

-

-  if (ioctl (init_decode->video_driver_fd,VDEC_IOCTL_SET_BUFFER_REQ,

-         (void*)&ioctl_msg) < 0)

-  {

-    DEBUG_PRINT("\n Set Buffer Requirements Failed");

-    return -1;

-  }

-

-

-  DEBUG_PRINT("\n Query output bufffer requirements");

-  init_decode->output_buffer.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;

-  ioctl_msg.in = NULL;

-  ioctl_msg.out = &init_decode->output_buffer;

-

-  if (ioctl (init_decode->video_driver_fd,VDEC_IOCTL_GET_BUFFER_REQ,

-         (void*)&ioctl_msg) < 0)

-  {

-    DEBUG_PRINT("\n Requesting for output buffer requirements failed");

-    return -1;

-  }

-

-  DEBUG_PRINT("\n output Size=%d min count =%d actual count = %d", \

-              init_decode->output_buffer.buffer_size,\

-              init_decode->output_buffer.mincount,\

-              init_decode->output_buffer.actualcount);

-

-  /*Create Queue related data structures*/

-  queue_ptr = &init_decode->queue_context;

-  queue_ptr->commandq_size = 50;

-  queue_ptr->dataq_size = 50;

-

-  sem_init(&queue_ptr->sem_message,0, 0);

-  sem_init(&init_decode->sem_synchronize,0, 0);

-

-  pthread_mutexattr_init (&init_values);

-  pthread_mutex_init (&queue_ptr->mutex,&init_values);

-  pthread_mutex_init (&read_lock,&init_values);

-  DEBUG_PRINT("\n create Queues");

-  queue_ptr->ptr_cmdq = (struct video_msgq*) \

-                        calloc (sizeof (struct video_msgq),

-                  queue_ptr->commandq_size);

-  queue_ptr->ptr_dataq = (struct video_msgq*) \

-              calloc (sizeof (struct video_msgq),

-                  queue_ptr->dataq_size

-                  );

-

-  if ( queue_ptr->ptr_cmdq == NULL ||

-     queue_ptr->ptr_dataq == NULL

-    )

-  {

-    return -1;

-  }

-  DEBUG_PRINT("\n create Threads");

-  /*Create two threads*/

-    if ( (pthread_create (&init_decode->videothread_id,NULL,video_thread,

-            init_decode) < 0) ||

-         (pthread_create (&init_decode->asyncthread_id,NULL,async_thread,

-            init_decode) < 0)

-    )

-  {

-    return -1;

-  }

-

-  return 1;

-}

-

-

-

-int free_buffer ( enum vdec_buffer buffer_dir,

-                  struct video_decoder_context *decode_context

-                 )

-{

-  unsigned int buffercount = 0,i=0;

-  struct vdec_bufferpayload **ptemp = NULL;

-

-  if (decode_context == NULL)

-  {

-    return -1;

-  }

-

-  if (buffer_dir == VDEC_BUFFER_TYPE_INPUT && decode_context->ptr_inputbuffer)

-  {

-      buffercount = decode_context->input_buffer.actualcount;

-      ptemp = decode_context->ptr_inputbuffer;

-

-    for (i=0;i<buffercount;i++)

-    {

-          if (ptemp [i])

-      {

-            if (ptemp [i]->pmem_fd != -1)

-      {

-        munmap ( ptemp [i]->bufferaddr,ptemp [i]->mmaped_size);

-        ptemp [i]->bufferaddr = NULL;

-        close (ptemp [i]->pmem_fd);

-      }

-      free (ptemp [i]);

-      ptemp [i] = NULL;

-      }

-    }

-    free (decode_context->ptr_inputbuffer);

-    decode_context->ptr_inputbuffer = NULL;

-  }

-  else if ( buffer_dir == VDEC_BUFFER_TYPE_OUTPUT )

-  {

-    buffercount = decode_context->output_buffer.actualcount;

-    ptemp = decode_context->ptr_outputbuffer;

-

-        if (decode_context->ptr_respbuffer)

-    {

-      for (i=0;i<buffercount;i++)

-      {

-        if (decode_context->ptr_respbuffer [i])

-        {

-          free (decode_context->ptr_respbuffer[i]);

-          decode_context->ptr_respbuffer [i] = NULL;

-        }

-      }

-      free (decode_context->ptr_respbuffer);

-      decode_context->ptr_respbuffer = NULL;

-    }

-

-    if (ptemp)

-    {

-      for (i=0;i<buffercount;i++)

-      {

-        if (ptemp [i])

-        {

-          if (ptemp [i]->pmem_fd != -1)

-          {

-            munmap ( ptemp [i]->bufferaddr,ptemp [i]->mmaped_size);

-            ptemp [i]->bufferaddr = NULL;

-            close (ptemp [i]->pmem_fd);

-          }

-          free (ptemp [i]);

-          ptemp [i] = NULL;

-        }

-      }

-      free (ptemp);

-      decode_context->ptr_outputbuffer = NULL;

-    }

-  }

-

-  return 1;

-}

-

-int allocate_buffer ( enum vdec_buffer buffer_dir,

-                      struct video_decoder_context *decode_context

-                    )

-{

-  struct vdec_setbuffer_cmd setbuffers;

-  struct vdec_bufferpayload **ptemp = NULL;

-  struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};

-  unsigned int buffercount = 0,i=0,alignedsize=0;

-  unsigned int buffersize = 0;

-

-  if ( decode_context == NULL)

-  {

-    DEBUG_PRINT ("\nallocate_buffer: context is NULL");

-    return -1;

-  }

-

-  if ( buffer_dir == VDEC_BUFFER_TYPE_INPUT )

-  {

-        /*Check if buffers are allocated*/

-    if (decode_context->ptr_inputbuffer != NULL)

-    {

-      DEBUG_PRINT ("\nallocate_buffer: decode_context->ptr_inputbuffer is set");

-      return -1;

-    }

-

-    buffercount = decode_context->input_buffer.actualcount;

-    alignedsize = decode_context->input_buffer.alignment;

-    buffersize = decode_context->input_buffer.buffer_size;

-    buffersize = (buffersize + alignedsize) & (~alignedsize);

-  }

-  else if (buffer_dir == VDEC_BUFFER_TYPE_OUTPUT)

-  {

-    /*Check if buffers are allocated*/

-    if (decode_context->ptr_outputbuffer != NULL)

-    {

-      DEBUG_PRINT ("\nallocate_buffer: Double allcoate output");

-      return -1;

-    }

-

-    buffercount = decode_context->output_buffer.actualcount;

-    alignedsize = decode_context->output_buffer.alignment;

-    buffersize = decode_context->output_buffer.buffer_size;

-    buffersize = (buffersize + alignedsize) & (~alignedsize);

-

-    decode_context->ptr_respbuffer = (struct vdec_output_frameinfo  **)\

-    calloc (sizeof (struct vdec_output_frameinfo *),buffercount);

-

-    if (decode_context->ptr_respbuffer == NULL)

-    {

-      DEBUG_PRINT ("\n Allocate failure ptr_respbuffer");

-      return -1;

-    }

-

-    for (i=0; i< buffercount; i++)

-    {

-      decode_context->ptr_respbuffer [i] = (struct vdec_output_frameinfo *)\

-      calloc (sizeof (struct vdec_output_frameinfo),buffercount);

-      if (decode_context->ptr_respbuffer [i] == NULL)

-      {

-        DEBUG_PRINT ("\nfailed to allocate vdec_output_frameinfo");

-        return -1;

-      }

-    }

-  }

-  else

-  {

-    DEBUG_PRINT ("\nallocate_buffer: Wrong buffer directions");

-    return -1;

-  }

-

-  ptemp = (struct vdec_bufferpayload **)\

-  calloc (sizeof (struct vdec_bufferpayload *),buffercount);

-

-  if (ptemp == NULL)

-  {

-    DEBUG_PRINT ("\nallocate_buffer: vdec_bufferpayload failure");

-    return -1;

-  }

-

-

-  if (buffer_dir == VDEC_BUFFER_TYPE_OUTPUT)

-  {

-    DEBUG_PRINT ("\nallocate_buffer: OUT");

-    decode_context->ptr_outputbuffer = ptemp;

-  }

-  else

-  {

-    DEBUG_PRINT ("\nallocate_buffer: IN");

-    decode_context->ptr_inputbuffer = ptemp;

-  }

-

-  /*Allocate buffer headers*/

-  for (i=0; i< buffercount; i++)

-  {

-    ptemp [i] = (struct vdec_bufferpayload*)\

-    calloc (sizeof (struct vdec_bufferpayload),1);

-

-    if (ptemp [i] == NULL)

-    {

-      DEBUG_PRINT ("\nallocate_buffer: ptemp [i] calloc failure");

-      return -1;

-    }

-

-    if (buffer_dir == VDEC_BUFFER_TYPE_OUTPUT)

-    {

-         decode_context->ptr_respbuffer [i]->client_data = \

-         (void *) ptemp [i];

-    }

-    ptemp [i]->pmem_fd = -1;

-

-  }

-

-  for (i=0; i< buffercount; i++)

-  {

-    ptemp [i]->pmem_fd = open ("/dev/pmem_adsp",O_RDWR);

-

-    if (ptemp [i]->pmem_fd < 0)

-    {

-      DEBUG_PRINT ("\nallocate_buffer: open pmem_adsp failed");

-      return -1;

-    }

-

-    ptemp [i]->bufferaddr = mmap(NULL,clp2(buffersize),PROT_READ|PROT_WRITE,

-                                 MAP_SHARED,ptemp [i]->pmem_fd,0);

-    DEBUG_PRINT ("\n pmem fd = %d virt addr = %p",ptemp [i]->pmem_fd,\

-                  ptemp [i]->bufferaddr);

-    if (ptemp [i]->bufferaddr == MAP_FAILED)

-    {

-      ptemp [i]->bufferaddr = NULL;

-      DEBUG_PRINT ("\nallocate_buffer: MMAP failed");

-      return -1;

-    }

-    ptemp [i]->buffer_len = buffersize;

-    ptemp [i]->mmaped_size = clp2 (buffersize);

-

-    setbuffers.buffer_type = buffer_dir;

-    memcpy (&setbuffers.buffer,ptemp [i],sizeof (struct vdec_bufferpayload));

-

-    ioctl_msg.in  = &setbuffers;

-    ioctl_msg.out = NULL;

-

-    if (ioctl (decode_context->video_driver_fd,VDEC_IOCTL_SET_BUFFER,

-         &ioctl_msg) < 0)

-    {

-      DEBUG_PRINT ("\nallocate_buffer: Set Buffer IOCTL failed");

-      return -1;

-    }

-

-  }

-  DEBUG_PRINT ("\nallocate_buffer: Success");

-  return 1;

-}

-

-

-

-int start_decoding (struct video_decoder_context *decode_context)

-{

-  struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};

-  struct vdec_input_frameinfo frameinfo;

-  struct vdec_fillbuffer_cmd fillbuffer;

-  unsigned int i = 0;

-  unsigned int data_len =0;

-

-  memset ((unsigned char*)&frameinfo,0,sizeof (struct vdec_input_frameinfo));

-  memset ((unsigned char*)&fillbuffer,0,sizeof (struct vdec_fillbuffer_cmd));

-

-  if (decode_context == NULL)

-  {

-    return -1;

-  }

-

-  if (ioctl (decode_context->video_driver_fd,VDEC_IOCTL_CMD_START,

-         NULL) < 0)

-  {

-    DEBUG_PRINT("\n Start failed");

-    return -1;

-  }

-

-  DEBUG_PRINT("\n Start Issued successfully waiting for Start Done");

-  /*Wait for Start command response*/

-    sem_wait (&decode_context->sem_synchronize);

-

-  /*Push output Buffers*/

-  i = 0;

-  while (i < decode_context->output_buffer.mincount)

-  {

-    fillbuffer.buffer.buffer_len =

-                               decode_context->ptr_outputbuffer [i]->buffer_len;

-    fillbuffer.buffer.bufferaddr =

-                               decode_context->ptr_outputbuffer [i]->bufferaddr;

-    fillbuffer.buffer.offset =

-                               decode_context->ptr_outputbuffer [i]->offset;

-    fillbuffer.buffer.pmem_fd =

-                               decode_context->ptr_outputbuffer [i]->pmem_fd;

-    fillbuffer.client_data = (void *)decode_context->ptr_respbuffer [i];

-    DEBUG_PRINT ("\n Client Data on output = %p",fillbuffer.client_data);

-    ioctl_msg.in = &fillbuffer;

-    ioctl_msg.out = NULL;

-

-    if (ioctl (decode_context->video_driver_fd,

-           VDEC_IOCTL_FILL_OUTPUT_BUFFER,&ioctl_msg) < 0)

-    {

-      DEBUG_PRINT("\n Decoder frame failed");

-      return -1;

-    }

-    i++;

-  }

-

-

-  /*push input buffers*/

-  i = 0;

-  while (i < decode_context->input_buffer.mincount)

-  {

-    DEBUG_PRINT("\n Read  Frame from File");

-    data_len = read_frame ( decode_context->ptr_inputbuffer [i]->bufferaddr,

-                       decode_context->ptr_inputbuffer [i]->buffer_len,

-             decode_context->inputBufferFile);

-    if (data_len == 0)

-    {

-      DEBUG_PRINT("\n Length is zero error");

-      return -1;

-    }

-    DEBUG_PRINT("\n Read  Frame from File szie = %u",data_len);

-    frameinfo.bufferaddr =

-    decode_context->ptr_inputbuffer [i]->bufferaddr;

-    frameinfo.offset = 0;

-    frameinfo.pmem_fd = decode_context->ptr_inputbuffer [i]->pmem_fd;

-    frameinfo.pmem_offset = decode_context->ptr_inputbuffer [i]->offset;

-    frameinfo.datalen = data_len;

-    frameinfo.client_data = (struct vdec_bufferpayload *)\

-                           decode_context->ptr_inputbuffer [i];

-    /*TODO: Time stamp needs to be updated*/

-    ioctl_msg.in = &frameinfo;

-    ioctl_msg.out = NULL;

-

-    if (ioctl (decode_context->video_driver_fd,VDEC_IOCTL_DECODE_FRAME,

-         &ioctl_msg) < 0)

-    {

-      DEBUG_PRINT("\n Decoder frame failed");

-      return -1;

-    }

-    total_frames++;

-    i++;

-  }

-  DEBUG_PRINT ("\n Wait for EOS");

-  /*Wait for EOS or Error condition*/

-  sem_wait (&decode_context->sem_synchronize);

-  DEBUG_PRINT ("\n Reached EOS");

-

-  return 1;

-}

-

-int stop_decoding  (struct video_decoder_context *decode_context)

-{

-  struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};

-  enum vdec_bufferflush flush_dir = VDEC_FLUSH_TYPE_INPUT;

-

-  if (decode_context == NULL)

-  {

-    return -1;

-  }

-

-  ioctl_msg.in = &flush_dir;

-  ioctl_msg.out = NULL;

-

-  if (ioctl(decode_context->video_driver_fd,VDEC_IOCTL_CMD_FLUSH,

-         &ioctl_msg) < 0)

-  {

-    DEBUG_PRINT("\n Flush input failed");

-  }

-  else

-  {

-       sem_wait (&decode_context->sem_synchronize);

-  }

-

-  flush_dir = VDEC_FLUSH_TYPE_OUTPUT;

-  ioctl_msg.in = &flush_dir;

-  ioctl_msg.out = NULL;

-

-  if (ioctl(decode_context->video_driver_fd,VDEC_IOCTL_CMD_FLUSH,

-         &ioctl_msg) < 0)

-  {

-    DEBUG_PRINT("\n Flush output failed");

-  }

-  else

-  {

-     sem_wait (&decode_context->sem_synchronize);

-  }

-

-  DEBUG_PRINT("\n Stop VDEC_IOCTL_CMD_STOP");

-  if (ioctl(decode_context->video_driver_fd,VDEC_IOCTL_CMD_STOP,

-         NULL) < 0)

-  {

-    DEBUG_PRINT("\n Stop failed");

-  }

-  else

-  {

-     sem_wait (&decode_context->sem_synchronize);

-  }

-  return 1;

-}

-

-int deinit_decoder (struct video_decoder_context *init_decode)

-{

-  if (init_decode == NULL)

-  {

-    return -1;

-  }

-

-  /*Close the driver*/

-  if (init_decode->video_driver_fd != -1)

-  {

-    close (init_decode->video_driver_fd);

-  }

-

-  if (init_decode->queue_context.ptr_cmdq)

-  {

-    free (init_decode->queue_context.ptr_cmdq);

-    init_decode->queue_context.ptr_cmdq = NULL;

-  }

-

-  if (init_decode->queue_context.ptr_dataq)

-  {

-    free (init_decode->queue_context.ptr_dataq);

-    init_decode->queue_context.ptr_dataq = NULL;

-  }

-

-  sem_destroy (&init_decode->queue_context.sem_message);

-  sem_destroy (&init_decode->sem_synchronize);

-

-  pthread_mutex_destroy(&init_decode->queue_context.mutex);

-  pthread_mutex_destroy (&read_lock);

-

-  return 1;

-}

-

-static void* video_thread (void *context)

-{

-   struct video_decoder_context *decode_context = NULL;

-   struct video_msgq *queueitem = NULL;

-   struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};

-   struct vdec_input_frameinfo frameinfo;

-   struct vdec_fillbuffer_cmd fillbuffer;

-   struct vdec_output_frameinfo *outputbuffer = NULL;

-   struct vdec_bufferpayload *tempbuffer = NULL;

-   unsigned int data_len =0;

-

-

-   if (context == NULL)

-   {

-     DEBUG_PRINT("\n video thread recieved NULL context");

-     return NULL;

-   }

-   decode_context = (struct video_decoder_context *) context;

-

-   /* Thread function which will accept commands from async thread

-    * or main thread

-   */

-   while (1)

-   {

-      queueitem = queue_get_cmd (&decode_context ->queue_context);

-      if (queueitem != NULL)

-      {

-        switch (queueitem->cmd)

-        {

-        case VDEC_MSG_EVT_HW_ERROR:

-          DEBUG_PRINT("\n FATAL ERROR ");

-          break;

-        case VDEC_MSG_RESP_INPUT_FLUSHED:

-          DEBUG_PRINT("\n Input Buffer Flushed");

-          break;

-        case VDEC_MSG_RESP_OUTPUT_FLUSHED:

-          DEBUG_PRINT("\n Output buffer Flushed");

-          break;

-        case VDEC_MSG_RESP_START_DONE:

-          DEBUG_PRINT("\n recived start done command");

-            sem_post (&decode_context->sem_synchronize);

-          break;

-

-        case VDEC_MSG_RESP_STOP_DONE:

-          DEBUG_PRINT("\n recieved stop done");

-          sem_post (&decode_context->sem_synchronize);

-          break;

-

-        case VDEC_MSG_RESP_INPUT_BUFFER_DONE:

-

-          tempbuffer = (struct vdec_bufferpayload *)queueitem->clientdata;

-          if (tempbuffer == NULL)

-          {

-            DEBUG_PRINT("\n FATAL ERROR input buffer address is bad");

-            sem_post (&decode_context->sem_synchronize);

-            break;

-          }

-          data_len = read_frame ( tempbuffer->bufferaddr,

-                        tempbuffer->buffer_len,

-                        decode_context->inputBufferFile

-                     );

-

-          if (data_len == 0)

-          {

-            DEBUG_PRINT ("\n End of stream reached");

-            sem_post (&decode_context->sem_synchronize);

-            break;

-          }

-

-          frameinfo.bufferaddr = tempbuffer->bufferaddr;

-          frameinfo.offset = 0;

-          frameinfo.pmem_fd = tempbuffer->pmem_fd;

-          frameinfo.pmem_offset = tempbuffer->offset;

-          frameinfo.datalen = data_len;

-          frameinfo.client_data = (struct vdec_bufferpayload *)\

-                       tempbuffer;

-          /*TODO: Time stamp needs to be updated*/

-          ioctl_msg.in = &frameinfo;

-          ioctl_msg.out = NULL;

-          total_frames++;

-          if (ioctl(decode_context->video_driver_fd,VDEC_IOCTL_DECODE_FRAME,

-               &ioctl_msg) < 0)

-          {

-            DEBUG_PRINT("\n Decoder frame failed");

-            sem_post (&decode_context->sem_synchronize);

-          }

-          DEBUG_PRINT("\n Input buffer done send next buffer current value = %d",\

-                      total_frames);

-          break;

-

-        case VDEC_MSG_RESP_OUTPUT_BUFFER_DONE:

-

-         outputbuffer = (struct vdec_output_frameinfo *)\

-                              queueitem->clientdata;

-         DEBUG_PRINT("\n Value of client Data in VT %p",queueitem->clientdata);

-         if (outputbuffer == NULL || outputbuffer->bufferaddr == NULL ||

-                   outputbuffer->client_data == NULL

-           )

-         {

-           DEBUG_PRINT("\n FATAL ERROR output buffer is bad");

-           DEBUG_PRINT("\nValues outputbuffer = %p",outputbuffer);

-           if (outputbuffer != NULL)

-           {

-           DEBUG_PRINT("\nValues outputbuffer->bufferaddr = %p",\

-                       outputbuffer->bufferaddr);

-           DEBUG_PRINT("\nValues outputbuffer->client_data = %p",\

-                       outputbuffer->client_data);

-           }

-           sem_post (&decode_context->sem_synchronize);

-           break;

-         }

-

-

-         if (outputbuffer->len == 0)

-         {

-           DEBUG_PRINT("\n Filled Length is zero Close decoding");

-           sem_post (&decode_context->sem_synchronize);

-           break;

-         }

-

-         if (decode_context->outputBufferFile != NULL)

-         {

-           fwrite (outputbuffer->bufferaddr,1,outputbuffer->len,

-                decode_context->outputBufferFile);

-         }

-

-         tempbuffer = (struct vdec_bufferpayload *)\

-                     outputbuffer->client_data;

-

-         DEBUG_PRINT("\n recieved output buffer consume outbuffer");

-         DEBUG_PRINT("\nValues outputbuffer->bufferaddr = %p",\

-                     outputbuffer->bufferaddr);

-         DEBUG_PRINT ("\n Vir address of allocated buffer %p",\

-                      tempbuffer->bufferaddr);

-         fillbuffer.buffer.buffer_len = tempbuffer->buffer_len;

-         fillbuffer.buffer.bufferaddr = tempbuffer->bufferaddr;

-         fillbuffer.buffer.offset = tempbuffer->offset;

-         fillbuffer.buffer.pmem_fd = tempbuffer->pmem_fd;

-         fillbuffer.client_data = (void *)outputbuffer;

-

-         ioctl_msg.in = &fillbuffer;

-         ioctl_msg.out = NULL;

-

-         if (ioctl (decode_context->video_driver_fd,

-              VDEC_IOCTL_FILL_OUTPUT_BUFFER,&ioctl_msg) < 0)

-         {

-           DEBUG_PRINT("\n Decoder frame failed");

-           return NULL;

-         }

-

-         break;

-

-        case VDEC_MSG_RESP_FLUSH_INPUT_DONE:

-            DEBUG_PRINT("\n Flush input complete");

-          sem_post (&decode_context->sem_synchronize);

-          break;

-

-        case VDEC_MSG_RESP_FLUSH_OUTPUT_DONE:

-          DEBUG_PRINT("\n Flush output complete");

-                sem_post (&decode_context->sem_synchronize);

-          break;

-        }

-

-        if (queueitem->cmd == VDEC_MSG_RESP_STOP_DONE)

-        {

-          DEBUG_PRINT("\n Playback has ended thread will exit");

-          return NULL;

-        }

-      }

-      else

-      {

-        DEBUG_PRINT("\n Error condition recieved NULL from Queue");

-      }

-

-   }

-}

-

-static void* async_thread (void *context)

-{

-  struct video_decoder_context *decode_context = NULL;

-  struct vdec_output_frameinfo *outputframe = NULL;

-  struct video_msgq queueitem ;

-  struct vdec_msginfo vdec_msg;

-  struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};

-  int result = -1;

-

-  if (context == NULL)

-  {

-    DEBUG_PRINT("\n aynsc thread recieved NULL context");

-    return NULL;

-  }

-  decode_context = (struct video_decoder_context *) context;

-  DEBUG_PRINT("\n Entering the async thread");

-

-  while (1)

-  {

-    ioctl_msg.in = NULL;

-

-    ioctl_msg.out = (void*)&vdec_msg;

-    DEBUG_PRINT ("\n Sizeof vdec_msginfo = %d ",sizeof (vdec_msg));

-    DEBUG_PRINT("\n Address of Vdec msg in async thread %p",\

-                ioctl_msg.out);

-    if (ioctl (decode_context->video_driver_fd,VDEC_IOCTL_GET_NEXT_MSG,\

-         (void*)&ioctl_msg) < 0)

-    {

-      DEBUG_PRINT("\n Error in ioctl read next msg");

-    }

-    else

-    {

-      switch (vdec_msg.msgcode)

-      {

-      case VDEC_MSG_RESP_FLUSH_INPUT_DONE:

-      case VDEC_MSG_RESP_FLUSH_OUTPUT_DONE:

-      case VDEC_MSG_RESP_START_DONE:

-      case VDEC_MSG_RESP_STOP_DONE:

-      case VDEC_MSG_EVT_HW_ERROR:

-        DEBUG_PRINT("\nioctl read next msg");

-        queueitem.cmd = vdec_msg.msgcode;

-        queueitem.status = vdec_msg.status_code;

-        queueitem.clientdata = NULL;

-        break;

-

-      case VDEC_MSG_RESP_INPUT_FLUSHED:

-      case VDEC_MSG_RESP_INPUT_BUFFER_DONE:

-

-        queueitem.cmd = vdec_msg.msgcode;

-        queueitem.status = vdec_msg.status_code;

-        queueitem.clientdata = (void *)\

-            vdec_msg.msgdata.input_frame_clientdata;

-        break;

-

-      case VDEC_MSG_RESP_OUTPUT_FLUSHED:

-      case VDEC_MSG_RESP_OUTPUT_BUFFER_DONE:

-        queueitem.cmd = vdec_msg.msgcode;

-        queueitem.status = vdec_msg.status_code;

-        outputframe = (struct vdec_output_frameinfo *)\

-        vdec_msg.msgdata.output_frame.client_data;

-        DEBUG_PRINT ("\n Client Data value in %p", \

-                     vdec_msg.msgdata.output_frame.client_data);

-        outputframe->bufferaddr = vdec_msg.msgdata.output_frame.bufferaddr;

-        outputframe->framesize.bottom = \

-        vdec_msg.msgdata.output_frame.framesize.bottom;

-        outputframe->framesize.left = \

-        vdec_msg.msgdata.output_frame.framesize.left;

-        outputframe->framesize.right = \

-        vdec_msg.msgdata.output_frame.framesize.right;

-        outputframe->framesize.top = \

-        vdec_msg.msgdata.output_frame.framesize.top;

-        outputframe->framesize = vdec_msg.msgdata.output_frame.framesize;

-        outputframe->len = vdec_msg.msgdata.output_frame.len;

-        outputframe->time_stamp = vdec_msg.msgdata.output_frame.time_stamp;

-        queueitem.clientdata = (void *)outputframe;

-        DEBUG_PRINT ("\n Client Data value Copy %p",queueitem.clientdata);

-       break;

-

-      default:

-        DEBUG_PRINT("\nIn Default of get next message %d",vdec_msg.msgcode);

-        queueitem.cmd = vdec_msg.msgcode;

-        queueitem.status = vdec_msg.status_code;

-        queueitem.clientdata = NULL;

-        break;

-      }

-      result = queue_post_cmdq (&decode_context->queue_context,&queueitem);

-      while (result == 0)

-      {

-         result = queue_post_cmdq (&decode_context->queue_context,

-                 &queueitem);

-      }

-

-      if (result == -1)

-      {

-        DEBUG_PRINT("\n FATAL ERROR WITH Queue");

-      }

-    }

-    if (vdec_msg.msgcode == VDEC_MSG_RESP_STOP_DONE)

-    {

-      /*Thread can exit at this point*/

-      return NULL;

-    }

-  }

-}

-

-

-static unsigned int read_frame (unsigned char *dataptr, unsigned int length,

-                                FILE * inputBufferFile)

-{

-

-  unsigned int readOffset = 0;

-  int bytes_read = 0;

-  unsigned int code = 0;

-  int found = 0;

-

-  DEBUG_PRINT ("\n Inside the readframe");

-

-  if (dataptr == NULL || length == 0)

-  {

-    DEBUG_PRINT ("\n dataptr = %p length = %u",dataptr,length);

-    return 0;

-  }

-

-  if (!Code_type)

-  {

-    /* Start of Critical Section*/

-    pthread_mutex_lock(&read_lock);

-    do

-    {

-      //Start codes are always byte aligned.

-      bytes_read = fread(&dataptr[readOffset],1, 1,inputBufferFile);

-      if( !bytes_read)

-      {

-        DEBUG_PRINT("\n Bytes read Zero \n");

-        break;

-      }

-      code <<= 8;

-      code |= (0x000000FF & dataptr[readOffset]);

-      //VOP start code comparision

-      if (readOffset>3)

-      {

-        if(!header_code )

-        {

-          if( VOP_START_CODE == code)

-          {

-          DEBUG_PRINT ("\n Found VOP Code");

-          header_code = VOP_START_CODE;

-          }

-          else if ( (0xFFFFFC00 & code) == SHORT_HEADER_START_CODE )

-          {

-          header_code = SHORT_HEADER_START_CODE;

-          }

-        }

-        if ((header_code == VOP_START_CODE) && (code == VOP_START_CODE))

-        {

-          //Seek backwards by 4

-          fseek(inputBufferFile, -4, SEEK_CUR);

-          readOffset-=4;

-          found = 1;

-          break;

-

-        }

-        else if (( header_code == SHORT_HEADER_START_CODE ) &&

-        ( SHORT_HEADER_START_CODE == (code & 0xFFFFFC00)))

-        {

-          //Seek backwards by 4

-          fseek(inputBufferFile, -4, SEEK_CUR);

-          readOffset-=4;

-          found = 1;

-          break;

-        }

-      }

-      readOffset++;

-    }while (readOffset < length);

-    pthread_mutex_unlock(&read_lock);

-    /* End of Critical Section*/

-    if (found == 1)

-    {

-      //DEBUG_PRINT ("Found a Frame");

-      return (readOffset+1);

-    }

-    else

-    {

-      //DEBUG_PRINT ("No Frames detected");

-      return 0;

-    }

-  }

-  else

-  {

-

-    readOffset = Read_Buffer_From_DAT_File(dataptr,length,inputBufferFile);

-    if (total_frames == 0)

-    {

-      bytes_read = Read_Buffer_From_DAT_File(&dataptr[readOffset],

-                                             (length-readOffset),

-                                             inputBufferFile);

-      readOffset += bytes_read;

-    }

-    return (readOffset);

-  }

-

-}

-

-static int Read_Buffer_From_DAT_File(unsigned char *dataptr, unsigned int length,

-                                     FILE * inputBufferFile)

-{

-

-

-  long frameSize=0;

-  char temp_buffer[10];

-  char temp_byte;

-  int bytes_read=0;

-  int i=0;

-  unsigned char *read_buffer=NULL;

-  char c = '1'; //initialize to anything except '\0'(0)

-  char inputFrameSize[12];

-  int count =0; char cnt =0;

-  memset(temp_buffer, 0, sizeof(temp_buffer));

-

-  while (cnt < 10)

-  /* Check the input file format, may result in infinite loop */

-  {

-      count  = fread(&inputFrameSize[cnt],1,1,inputBufferFile);

-      if(inputFrameSize[cnt] == '\0' )

-        break;

-      cnt++;

-  }

-  inputFrameSize[cnt]='\0';

-  frameSize = atoi(inputFrameSize);

-  //length = 0;

-  DEBUG_PRINT ("\n Frame Size is %d",frameSize);

-

-  /* get the frame length */

-  fseek(inputBufferFile, -1, SEEK_CUR);

-  bytes_read = fread(dataptr, 1, frameSize,  inputBufferFile);

-

-  if(bytes_read == 0 || bytes_read < frameSize ) {

-      return 0;

-  }

-  return bytes_read;

-}

+/*--------------------------------------------------------------------------
+Copyright (c) 2010-2011, 2013, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of The Linux Foundation nor
+      the names of its contributors may be used to endorse or promote
+      products derived from this software without specific prior written
+      permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------*/
+#include "decoder_driver_test.h"
+
+#define DEBUG_PRINT printf
+/************************************************************************/
+/*        #DEFINES                          */
+/************************************************************************/
+
+#define VOP_START_CODE 0x000001B6
+#define SHORT_HEADER_START_CODE 0x00008000
+#define H264_START_CODE         0x00000001
+
+/************************************************************************/
+/*        STATIC VARIABLES                          */
+/************************************************************************/
+
+static int Code_type;
+static int total_frames = 0;
+static unsigned int header_code = 0;
+static pthread_mutex_t read_lock;
+
+static unsigned int read_frame ( unsigned char *dataptr,unsigned int length,
+        FILE * inputBufferFile
+        );
+static int Read_Buffer_From_DAT_File( unsigned char *dataptr, unsigned int length,
+        FILE * inputBufferFile
+        );
+
+static unsigned clp2(unsigned x)
+{
+    x = x - 1;
+    x = x | (x >> 1);
+    x = x | (x >> 2);
+    x = x | (x >> 4);
+    x = x | (x >> 8);
+    x = x | (x >>16);
+    return x + 1;
+}
+
+static void* video_thread (void *);
+static void* async_thread (void *);
+
+int main (int argc, char **argv)
+{
+    struct video_decoder_context *decoder_context = NULL;
+    char *file_name = NULL;
+    FILE *file_ptr = NULL;
+    int temp1 =0,temp2 =0;
+    int error = 1;
+    unsigned int i = 0;
+
+    file_name = argv [1];
+    file_ptr = fopen (file_name,"rb");
+
+    if (file_ptr == NULL) {
+        DEBUG_PRINT("\n File is not located ");
+        return -1;
+    }
+
+
+    decoder_context = (struct video_decoder_context *) \
+              calloc (sizeof (struct video_decoder_context),1);
+
+    if (decoder_context == NULL) {
+        return -1;
+    }
+
+    decoder_context->outputBufferFile = NULL;
+    decoder_context->inputBufferFile = NULL;
+    decoder_context->video_driver_fd = -1;
+    decoder_context->inputBufferFile = file_ptr;
+
+    file_ptr = fopen ("/data/output.yuv","wb");
+
+    if (file_ptr == NULL) {
+        DEBUG_PRINT("\n File can't be created");
+        free (decoder_context);
+        return -1;
+    }
+
+    decoder_context->outputBufferFile = file_ptr;
+
+    switch (atoi(argv[2])) {
+        case 0:
+            DEBUG_PRINT("\n MPEG4 codec selected");
+            decoder_context->decoder_format = VDEC_CODECTYPE_MPEG4;
+            Code_type = 0;
+            break;
+        case 1:
+            DEBUG_PRINT("\n H.263");
+            decoder_context->decoder_format = VDEC_CODECTYPE_H263;
+            Code_type = 0;
+            break;
+        case 2:
+            DEBUG_PRINT("\n H.264");
+            decoder_context->decoder_format = VDEC_CODECTYPE_H264;
+            Code_type = 1;
+            break;
+        default:
+            DEBUG_PRINT("\n Wrong codec type");
+            error = -1;
+            break;
+    }
+
+    if (error != -1) {
+        temp1 = atoi(argv[3]);
+        temp2 = atoi(argv[4]);
+
+        if (((temp1%16) != 0) || ((temp2%16) != 0)) {
+            error = -1;
+        } else {
+            decoder_context->video_resoultion.frame_height = temp1;
+            decoder_context->video_resoultion.frame_width = temp2;
+        }
+    }
+
+    switch (atoi(argv[5])) {
+        case 0:
+            DEBUG_PRINT("\n No Sink");
+            decoder_context->outputBufferFile = NULL;
+            break;
+    }
+
+    if ( error != -1 && (init_decoder (decoder_context) == -1 )) {
+        DEBUG_PRINT("\n Init decoder fails ");
+        error = -1;
+    }
+
+    DEBUG_PRINT("\n Decoder open successfull");
+
+
+    /*Allocate input and output buffers*/
+    if (error != -1 && (allocate_buffer (VDEC_BUFFER_TYPE_INPUT,
+                    decoder_context)== -1)) {
+        DEBUG_PRINT("\n Error in input Buffer allocation");
+        error = -1;
+    }
+
+    if (error != -1 && (allocate_buffer (VDEC_BUFFER_TYPE_OUTPUT,
+                    decoder_context)== -1)) {
+        DEBUG_PRINT("\n Error in output Buffer allocation");
+        error = -1;
+    }
+
+
+    if (error != -1 && (start_decoding (decoder_context) == -1)) {
+        DEBUG_PRINT("\n Error in start decoding call");
+        error = -1;
+    }
+
+    if (error != -1 && (stop_decoding (decoder_context) == -1)) {
+        DEBUG_PRINT("\n Error in stop decoding call");
+        error = -1;
+    }
+
+    DEBUG_PRINT("\n De-init the decoder");
+
+    if ((deinit_decoder (decoder_context) == -1)) {
+        error = -1;
+    }
+
+
+    (void)free_buffer (VDEC_BUFFER_TYPE_INPUT,decoder_context);
+    (void)free_buffer (VDEC_BUFFER_TYPE_OUTPUT,decoder_context);
+
+    if (decoder_context->inputBufferFile != NULL) {
+        fclose (decoder_context->inputBufferFile);
+    }
+
+    if (decoder_context->outputBufferFile != NULL) {
+        fclose (decoder_context->outputBufferFile);
+    }
+
+    DEBUG_PRINT ("\n Total Number of frames decoded %d",total_frames);
+    DEBUG_PRINT("\n closing the driver");
+    free (decoder_context);
+
+    return error;
+}
+
+int init_decoder ( struct video_decoder_context *init_decode )
+{
+    struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
+    struct video_queue_context *queue_ptr = NULL;
+#ifdef MAX_RES_720P
+    enum vdec_output_fromat output_format = VDEC_YUV_FORMAT_NV12;
+#endif
+#ifdef MAX_RES_1080P
+    enum vdec_output_fromat output_format  = VDEC_YUV_FORMAT_TILE_4x2;
+#endif
+
+    pthread_mutexattr_t init_values;
+
+    DEBUG_PRINT("\n Before calling the open");
+
+    init_decode->video_driver_fd = open ("/dev/msm_vidc_dec", \
+            O_RDWR | O_NONBLOCK);
+
+
+
+    if (init_decode->video_driver_fd < 0) {
+        DEBUG_PRINT("\n Open failed");
+        return -1;
+    }
+
+
+    /*Initialize Decoder with codec type and resolution*/
+    ioctl_msg.in = &init_decode->decoder_format;
+    ioctl_msg.out = NULL;
+
+    if (ioctl (init_decode->video_driver_fd,VDEC_IOCTL_SET_CODEC,
+                (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT("\n Set codec type failed");
+        return -1;
+    }
+
+    /*Set the output format*/
+    ioctl_msg.in = &output_format;
+    ioctl_msg.out = NULL;
+
+    if (ioctl (init_decode->video_driver_fd,VDEC_IOCTL_SET_OUTPUT_FORMAT,
+                (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT("\n Set output format failed");
+        return -1;
+    }
+
+    ioctl_msg.in = &init_decode->video_resoultion;
+    ioctl_msg.out = NULL;
+
+    if (ioctl (init_decode->video_driver_fd,VDEC_IOCTL_SET_PICRES,
+                (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT("\n Set Resolution failed");
+        return -1;
+    }
+
+    DEBUG_PRINT("\n After Set Resolution");
+
+    DEBUG_PRINT("\n Query Input bufffer requirements");
+    /*Get the Buffer requirements for input and output ports*/
+
+    init_decode->input_buffer.buffer_type = VDEC_BUFFER_TYPE_INPUT;
+    ioctl_msg.in = NULL;
+    ioctl_msg.out = &init_decode->input_buffer;
+
+    if (ioctl (init_decode->video_driver_fd,VDEC_IOCTL_GET_BUFFER_REQ,
+                (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT("\n Requesting for input buffer requirements failed");
+        return -1;
+    }
+
+    DEBUG_PRINT("\n input Size=%d min count =%d actual count = %d", \
+            init_decode->input_buffer.buffer_size,\
+            init_decode->input_buffer.mincount,\
+            init_decode->input_buffer.actualcount);
+
+
+    init_decode->input_buffer.buffer_type = VDEC_BUFFER_TYPE_INPUT;
+    ioctl_msg.in = &init_decode->input_buffer;
+    ioctl_msg.out = NULL;
+    init_decode->input_buffer.actualcount = init_decode->input_buffer.mincount + 2;
+
+    if (ioctl (init_decode->video_driver_fd,VDEC_IOCTL_SET_BUFFER_REQ,
+                (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT("\n Set Buffer Requirements Failed");
+        return -1;
+    }
+
+
+    DEBUG_PRINT("\n Query output bufffer requirements");
+    init_decode->output_buffer.buffer_type = VDEC_BUFFER_TYPE_OUTPUT;
+    ioctl_msg.in = NULL;
+    ioctl_msg.out = &init_decode->output_buffer;
+
+    if (ioctl (init_decode->video_driver_fd,VDEC_IOCTL_GET_BUFFER_REQ,
+                (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT("\n Requesting for output buffer requirements failed");
+        return -1;
+    }
+
+    DEBUG_PRINT("\n output Size=%d min count =%d actual count = %d", \
+            init_decode->output_buffer.buffer_size,\
+            init_decode->output_buffer.mincount,\
+            init_decode->output_buffer.actualcount);
+
+    /*Create Queue related data structures*/
+    queue_ptr = &init_decode->queue_context;
+    queue_ptr->commandq_size = 50;
+    queue_ptr->dataq_size = 50;
+
+    sem_init(&queue_ptr->sem_message,0, 0);
+    sem_init(&init_decode->sem_synchronize,0, 0);
+
+    pthread_mutexattr_init (&init_values);
+    pthread_mutex_init (&queue_ptr->mutex,&init_values);
+    pthread_mutex_init (&read_lock,&init_values);
+    DEBUG_PRINT("\n create Queues");
+    queue_ptr->ptr_cmdq = (struct video_msgq*) \
+                  calloc (sizeof (struct video_msgq),
+                          queue_ptr->commandq_size);
+    queue_ptr->ptr_dataq = (struct video_msgq*) \
+                   calloc (sizeof (struct video_msgq),
+                           queue_ptr->dataq_size
+                      );
+
+    if ( queue_ptr->ptr_cmdq == NULL ||
+            queue_ptr->ptr_dataq == NULL
+       ) {
+        return -1;
+    }
+
+    DEBUG_PRINT("\n create Threads");
+
+    /*Create two threads*/
+    if ( (pthread_create (&init_decode->videothread_id,NULL,video_thread,
+                    init_decode) < 0) ||
+            (pthread_create (&init_decode->asyncthread_id,NULL,async_thread,
+                     init_decode) < 0)
+       ) {
+        return -1;
+    }
+
+    return 1;
+}
+
+
+
+int free_buffer ( enum vdec_buffer buffer_dir,
+        struct video_decoder_context *decode_context
+        )
+{
+    unsigned int buffercount = 0,i=0;
+    struct vdec_bufferpayload **ptemp = NULL;
+
+    if (decode_context == NULL) {
+        return -1;
+    }
+
+    if (buffer_dir == VDEC_BUFFER_TYPE_INPUT && decode_context->ptr_inputbuffer) {
+        buffercount = decode_context->input_buffer.actualcount;
+        ptemp = decode_context->ptr_inputbuffer;
+
+        for (i=0; i<buffercount; i++) {
+            if (ptemp [i]) {
+                if (ptemp [i]->pmem_fd != -1) {
+                    munmap ( ptemp [i]->bufferaddr,ptemp [i]->mmaped_size);
+                    ptemp [i]->bufferaddr = NULL;
+                    close (ptemp [i]->pmem_fd);
+                }
+
+                free (ptemp [i]);
+                ptemp [i] = NULL;
+            }
+        }
+
+        free (decode_context->ptr_inputbuffer);
+        decode_context->ptr_inputbuffer = NULL;
+    } else if ( buffer_dir == VDEC_BUFFER_TYPE_OUTPUT ) {
+        buffercount = decode_context->output_buffer.actualcount;
+        ptemp = decode_context->ptr_outputbuffer;
+
+        if (decode_context->ptr_respbuffer) {
+            for (i=0; i<buffercount; i++) {
+                if (decode_context->ptr_respbuffer [i]) {
+                    free (decode_context->ptr_respbuffer[i]);
+                    decode_context->ptr_respbuffer [i] = NULL;
+                }
+            }
+
+            free (decode_context->ptr_respbuffer);
+            decode_context->ptr_respbuffer = NULL;
+        }
+
+        if (ptemp) {
+            for (i=0; i<buffercount; i++) {
+                if (ptemp [i]) {
+                    if (ptemp [i]->pmem_fd != -1) {
+                        munmap ( ptemp [i]->bufferaddr,ptemp [i]->mmaped_size);
+                        ptemp [i]->bufferaddr = NULL;
+                        close (ptemp [i]->pmem_fd);
+                    }
+
+                    free (ptemp [i]);
+                    ptemp [i] = NULL;
+                }
+            }
+
+            free (ptemp);
+            decode_context->ptr_outputbuffer = NULL;
+        }
+    }
+
+    return 1;
+}
+
+int allocate_buffer ( enum vdec_buffer buffer_dir,
+        struct video_decoder_context *decode_context
+        )
+{
+    struct vdec_setbuffer_cmd setbuffers;
+    struct vdec_bufferpayload **ptemp = NULL;
+    struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
+    unsigned int buffercount = 0,i=0,alignedsize=0;
+    unsigned int buffersize = 0;
+
+    if ( decode_context == NULL) {
+        DEBUG_PRINT ("\nallocate_buffer: context is NULL");
+        return -1;
+    }
+
+    if ( buffer_dir == VDEC_BUFFER_TYPE_INPUT ) {
+        /*Check if buffers are allocated*/
+        if (decode_context->ptr_inputbuffer != NULL) {
+            DEBUG_PRINT ("\nallocate_buffer: decode_context->ptr_inputbuffer is set");
+            return -1;
+        }
+
+        buffercount = decode_context->input_buffer.actualcount;
+        alignedsize = decode_context->input_buffer.alignment;
+        buffersize = decode_context->input_buffer.buffer_size;
+        buffersize = (buffersize + alignedsize) & (~alignedsize);
+    } else if (buffer_dir == VDEC_BUFFER_TYPE_OUTPUT) {
+        /*Check if buffers are allocated*/
+        if (decode_context->ptr_outputbuffer != NULL) {
+            DEBUG_PRINT ("\nallocate_buffer: Double allcoate output");
+            return -1;
+        }
+
+        buffercount = decode_context->output_buffer.actualcount;
+        alignedsize = decode_context->output_buffer.alignment;
+        buffersize = decode_context->output_buffer.buffer_size;
+        buffersize = (buffersize + alignedsize) & (~alignedsize);
+
+        decode_context->ptr_respbuffer = (struct vdec_output_frameinfo  **)\
+                         calloc (sizeof (struct vdec_output_frameinfo *),buffercount);
+
+        if (decode_context->ptr_respbuffer == NULL) {
+            DEBUG_PRINT ("\n Allocate failure ptr_respbuffer");
+            return -1;
+        }
+
+        for (i=0; i< buffercount; i++) {
+            decode_context->ptr_respbuffer [i] = (struct vdec_output_frameinfo *)\
+                                 calloc (sizeof (struct vdec_output_frameinfo),buffercount);
+
+            if (decode_context->ptr_respbuffer [i] == NULL) {
+                DEBUG_PRINT ("\nfailed to allocate vdec_output_frameinfo");
+                return -1;
+            }
+        }
+    } else {
+        DEBUG_PRINT ("\nallocate_buffer: Wrong buffer directions");
+        return -1;
+    }
+
+    ptemp = (struct vdec_bufferpayload **)\
+        calloc (sizeof (struct vdec_bufferpayload *),buffercount);
+
+    if (ptemp == NULL) {
+        DEBUG_PRINT ("\nallocate_buffer: vdec_bufferpayload failure");
+        return -1;
+    }
+
+
+    if (buffer_dir == VDEC_BUFFER_TYPE_OUTPUT) {
+        DEBUG_PRINT ("\nallocate_buffer: OUT");
+        decode_context->ptr_outputbuffer = ptemp;
+    } else {
+        DEBUG_PRINT ("\nallocate_buffer: IN");
+        decode_context->ptr_inputbuffer = ptemp;
+    }
+
+    /*Allocate buffer headers*/
+    for (i=0; i< buffercount; i++) {
+        ptemp [i] = (struct vdec_bufferpayload*)\
+                calloc (sizeof (struct vdec_bufferpayload),1);
+
+        if (ptemp [i] == NULL) {
+            DEBUG_PRINT ("\nallocate_buffer: ptemp [i] calloc failure");
+            return -1;
+        }
+
+        if (buffer_dir == VDEC_BUFFER_TYPE_OUTPUT) {
+            decode_context->ptr_respbuffer [i]->client_data = \
+                                      (void *) ptemp [i];
+        }
+
+        ptemp [i]->pmem_fd = -1;
+
+    }
+
+    for (i=0; i< buffercount; i++) {
+        ptemp [i]->pmem_fd = open ("/dev/pmem_adsp",O_RDWR);
+
+        if (ptemp [i]->pmem_fd < 0) {
+            DEBUG_PRINT ("\nallocate_buffer: open pmem_adsp failed");
+            return -1;
+        }
+
+        ptemp [i]->bufferaddr = mmap(NULL,clp2(buffersize),PROT_READ|PROT_WRITE,
+                MAP_SHARED,ptemp [i]->pmem_fd,0);
+        DEBUG_PRINT ("\n pmem fd = %d virt addr = %p",ptemp [i]->pmem_fd,\
+                ptemp [i]->bufferaddr);
+
+        if (ptemp [i]->bufferaddr == MAP_FAILED) {
+            ptemp [i]->bufferaddr = NULL;
+            DEBUG_PRINT ("\nallocate_buffer: MMAP failed");
+            return -1;
+        }
+
+        ptemp [i]->buffer_len = buffersize;
+        ptemp [i]->mmaped_size = clp2 (buffersize);
+
+        setbuffers.buffer_type = buffer_dir;
+        memcpy (&setbuffers.buffer,ptemp [i],sizeof (struct vdec_bufferpayload));
+
+        ioctl_msg.in  = &setbuffers;
+        ioctl_msg.out = NULL;
+
+        if (ioctl (decode_context->video_driver_fd,VDEC_IOCTL_SET_BUFFER,
+                    &ioctl_msg) < 0) {
+            DEBUG_PRINT ("\nallocate_buffer: Set Buffer IOCTL failed");
+            return -1;
+        }
+
+    }
+
+    DEBUG_PRINT ("\nallocate_buffer: Success");
+    return 1;
+}
+
+
+
+int start_decoding (struct video_decoder_context *decode_context)
+{
+    struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
+    struct vdec_input_frameinfo frameinfo;
+    struct vdec_fillbuffer_cmd fillbuffer;
+    unsigned int i = 0;
+    unsigned int data_len =0;
+
+    memset ((unsigned char*)&frameinfo,0,sizeof (struct vdec_input_frameinfo));
+    memset ((unsigned char*)&fillbuffer,0,sizeof (struct vdec_fillbuffer_cmd));
+
+    if (decode_context == NULL) {
+        return -1;
+    }
+
+    if (ioctl (decode_context->video_driver_fd,VDEC_IOCTL_CMD_START,
+                NULL) < 0) {
+        DEBUG_PRINT("\n Start failed");
+        return -1;
+    }
+
+    DEBUG_PRINT("\n Start Issued successfully waiting for Start Done");
+    /*Wait for Start command response*/
+    sem_wait (&decode_context->sem_synchronize);
+
+    /*Push output Buffers*/
+    i = 0;
+
+    while (i < decode_context->output_buffer.mincount) {
+        fillbuffer.buffer.buffer_len =
+            decode_context->ptr_outputbuffer [i]->buffer_len;
+        fillbuffer.buffer.bufferaddr =
+            decode_context->ptr_outputbuffer [i]->bufferaddr;
+        fillbuffer.buffer.offset =
+            decode_context->ptr_outputbuffer [i]->offset;
+        fillbuffer.buffer.pmem_fd =
+            decode_context->ptr_outputbuffer [i]->pmem_fd;
+        fillbuffer.client_data = (void *)decode_context->ptr_respbuffer [i];
+        DEBUG_PRINT ("\n Client Data on output = %p",fillbuffer.client_data);
+        ioctl_msg.in = &fillbuffer;
+        ioctl_msg.out = NULL;
+
+        if (ioctl (decode_context->video_driver_fd,
+                    VDEC_IOCTL_FILL_OUTPUT_BUFFER,&ioctl_msg) < 0) {
+            DEBUG_PRINT("\n Decoder frame failed");
+            return -1;
+        }
+
+        i++;
+    }
+
+
+    /*push input buffers*/
+    i = 0;
+
+    while (i < decode_context->input_buffer.mincount) {
+        DEBUG_PRINT("\n Read  Frame from File");
+        data_len = read_frame ( decode_context->ptr_inputbuffer [i]->bufferaddr,
+                decode_context->ptr_inputbuffer [i]->buffer_len,
+                decode_context->inputBufferFile);
+
+        if (data_len == 0) {
+            DEBUG_PRINT("\n Length is zero error");
+            return -1;
+        }
+
+        DEBUG_PRINT("\n Read  Frame from File szie = %u",data_len);
+        frameinfo.bufferaddr =
+            decode_context->ptr_inputbuffer [i]->bufferaddr;
+        frameinfo.offset = 0;
+        frameinfo.pmem_fd = decode_context->ptr_inputbuffer [i]->pmem_fd;
+        frameinfo.pmem_offset = decode_context->ptr_inputbuffer [i]->offset;
+        frameinfo.datalen = data_len;
+        frameinfo.client_data = (struct vdec_bufferpayload *)\
+                    decode_context->ptr_inputbuffer [i];
+        /*TODO: Time stamp needs to be updated*/
+        ioctl_msg.in = &frameinfo;
+        ioctl_msg.out = NULL;
+
+        if (ioctl (decode_context->video_driver_fd,VDEC_IOCTL_DECODE_FRAME,
+                    &ioctl_msg) < 0) {
+            DEBUG_PRINT("\n Decoder frame failed");
+            return -1;
+        }
+
+        total_frames++;
+        i++;
+    }
+
+    DEBUG_PRINT ("\n Wait for EOS");
+    /*Wait for EOS or Error condition*/
+    sem_wait (&decode_context->sem_synchronize);
+    DEBUG_PRINT ("\n Reached EOS");
+
+    return 1;
+}
+
+int stop_decoding  (struct video_decoder_context *decode_context)
+{
+    struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
+    enum vdec_bufferflush flush_dir = VDEC_FLUSH_TYPE_INPUT;
+
+    if (decode_context == NULL) {
+        return -1;
+    }
+
+    ioctl_msg.in = &flush_dir;
+    ioctl_msg.out = NULL;
+
+    if (ioctl(decode_context->video_driver_fd,VDEC_IOCTL_CMD_FLUSH,
+                &ioctl_msg) < 0) {
+        DEBUG_PRINT("\n Flush input failed");
+    } else {
+        sem_wait (&decode_context->sem_synchronize);
+    }
+
+    flush_dir = VDEC_FLUSH_TYPE_OUTPUT;
+    ioctl_msg.in = &flush_dir;
+    ioctl_msg.out = NULL;
+
+    if (ioctl(decode_context->video_driver_fd,VDEC_IOCTL_CMD_FLUSH,
+                &ioctl_msg) < 0) {
+        DEBUG_PRINT("\n Flush output failed");
+    } else {
+        sem_wait (&decode_context->sem_synchronize);
+    }
+
+    DEBUG_PRINT("\n Stop VDEC_IOCTL_CMD_STOP");
+
+    if (ioctl(decode_context->video_driver_fd,VDEC_IOCTL_CMD_STOP,
+                NULL) < 0) {
+        DEBUG_PRINT("\n Stop failed");
+    } else {
+        sem_wait (&decode_context->sem_synchronize);
+    }
+
+    return 1;
+}
+
+int deinit_decoder (struct video_decoder_context *init_decode)
+{
+    if (init_decode == NULL) {
+        return -1;
+    }
+
+    /*Close the driver*/
+    if (init_decode->video_driver_fd != -1) {
+        close (init_decode->video_driver_fd);
+    }
+
+    if (init_decode->queue_context.ptr_cmdq) {
+        free (init_decode->queue_context.ptr_cmdq);
+        init_decode->queue_context.ptr_cmdq = NULL;
+    }
+
+    if (init_decode->queue_context.ptr_dataq) {
+        free (init_decode->queue_context.ptr_dataq);
+        init_decode->queue_context.ptr_dataq = NULL;
+    }
+
+    sem_destroy (&init_decode->queue_context.sem_message);
+    sem_destroy (&init_decode->sem_synchronize);
+
+    pthread_mutex_destroy(&init_decode->queue_context.mutex);
+    pthread_mutex_destroy (&read_lock);
+
+    return 1;
+}
+
+static void* video_thread (void *context)
+{
+    struct video_decoder_context *decode_context = NULL;
+    struct video_msgq *queueitem = NULL;
+    struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
+    struct vdec_input_frameinfo frameinfo;
+    struct vdec_fillbuffer_cmd fillbuffer;
+    struct vdec_output_frameinfo *outputbuffer = NULL;
+    struct vdec_bufferpayload *tempbuffer = NULL;
+    unsigned int data_len =0;
+
+
+    if (context == NULL) {
+        DEBUG_PRINT("\n video thread recieved NULL context");
+        return NULL;
+    }
+
+    decode_context = (struct video_decoder_context *) context;
+
+    /* Thread function which will accept commands from async thread
+     * or main thread
+     */
+    while (1) {
+        queueitem = queue_get_cmd (&decode_context ->queue_context);
+
+        if (queueitem != NULL) {
+            switch (queueitem->cmd) {
+                case VDEC_MSG_EVT_HW_ERROR:
+                    DEBUG_PRINT("\n FATAL ERROR ");
+                    break;
+                case VDEC_MSG_RESP_INPUT_FLUSHED:
+                    DEBUG_PRINT("\n Input Buffer Flushed");
+                    break;
+                case VDEC_MSG_RESP_OUTPUT_FLUSHED:
+                    DEBUG_PRINT("\n Output buffer Flushed");
+                    break;
+                case VDEC_MSG_RESP_START_DONE:
+                    DEBUG_PRINT("\n recived start done command");
+                    sem_post (&decode_context->sem_synchronize);
+                    break;
+
+                case VDEC_MSG_RESP_STOP_DONE:
+                    DEBUG_PRINT("\n recieved stop done");
+                    sem_post (&decode_context->sem_synchronize);
+                    break;
+
+                case VDEC_MSG_RESP_INPUT_BUFFER_DONE:
+
+                    tempbuffer = (struct vdec_bufferpayload *)queueitem->clientdata;
+
+                    if (tempbuffer == NULL) {
+                        DEBUG_PRINT("\n FATAL ERROR input buffer address is bad");
+                        sem_post (&decode_context->sem_synchronize);
+                        break;
+                    }
+
+                    data_len = read_frame ( tempbuffer->bufferaddr,
+                            tempbuffer->buffer_len,
+                            decode_context->inputBufferFile
+                            );
+
+                    if (data_len == 0) {
+                        DEBUG_PRINT ("\n End of stream reached");
+                        sem_post (&decode_context->sem_synchronize);
+                        break;
+                    }
+
+                    frameinfo.bufferaddr = tempbuffer->bufferaddr;
+                    frameinfo.offset = 0;
+                    frameinfo.pmem_fd = tempbuffer->pmem_fd;
+                    frameinfo.pmem_offset = tempbuffer->offset;
+                    frameinfo.datalen = data_len;
+                    frameinfo.client_data = (struct vdec_bufferpayload *)\
+                                tempbuffer;
+                    /*TODO: Time stamp needs to be updated*/
+                    ioctl_msg.in = &frameinfo;
+                    ioctl_msg.out = NULL;
+                    total_frames++;
+
+                    if (ioctl(decode_context->video_driver_fd,VDEC_IOCTL_DECODE_FRAME,
+                                &ioctl_msg) < 0) {
+                        DEBUG_PRINT("\n Decoder frame failed");
+                        sem_post (&decode_context->sem_synchronize);
+                    }
+
+                    DEBUG_PRINT("\n Input buffer done send next buffer current value = %d",\
+                            total_frames);
+                    break;
+
+                case VDEC_MSG_RESP_OUTPUT_BUFFER_DONE:
+
+                    outputbuffer = (struct vdec_output_frameinfo *)\
+                               queueitem->clientdata;
+                    DEBUG_PRINT("\n Value of client Data in VT %p",queueitem->clientdata);
+
+                    if (outputbuffer == NULL || outputbuffer->bufferaddr == NULL ||
+                            outputbuffer->client_data == NULL
+                       ) {
+                        DEBUG_PRINT("\n FATAL ERROR output buffer is bad");
+                        DEBUG_PRINT("\nValues outputbuffer = %p",outputbuffer);
+
+                        if (outputbuffer != NULL) {
+                            DEBUG_PRINT("\nValues outputbuffer->bufferaddr = %p",\
+                                    outputbuffer->bufferaddr);
+                            DEBUG_PRINT("\nValues outputbuffer->client_data = %p",\
+                                    outputbuffer->client_data);
+                        }
+
+                        sem_post (&decode_context->sem_synchronize);
+                        break;
+                    }
+
+
+                    if (outputbuffer->len == 0) {
+                        DEBUG_PRINT("\n Filled Length is zero Close decoding");
+                        sem_post (&decode_context->sem_synchronize);
+                        break;
+                    }
+
+                    if (decode_context->outputBufferFile != NULL) {
+                        fwrite (outputbuffer->bufferaddr,1,outputbuffer->len,
+                                decode_context->outputBufferFile);
+                    }
+
+                    tempbuffer = (struct vdec_bufferpayload *)\
+                             outputbuffer->client_data;
+
+                    DEBUG_PRINT("\n recieved output buffer consume outbuffer");
+                    DEBUG_PRINT("\nValues outputbuffer->bufferaddr = %p",\
+                            outputbuffer->bufferaddr);
+                    DEBUG_PRINT ("\n Vir address of allocated buffer %p",\
+                            tempbuffer->bufferaddr);
+                    fillbuffer.buffer.buffer_len = tempbuffer->buffer_len;
+                    fillbuffer.buffer.bufferaddr = tempbuffer->bufferaddr;
+                    fillbuffer.buffer.offset = tempbuffer->offset;
+                    fillbuffer.buffer.pmem_fd = tempbuffer->pmem_fd;
+                    fillbuffer.client_data = (void *)outputbuffer;
+
+                    ioctl_msg.in = &fillbuffer;
+                    ioctl_msg.out = NULL;
+
+                    if (ioctl (decode_context->video_driver_fd,
+                                VDEC_IOCTL_FILL_OUTPUT_BUFFER,&ioctl_msg) < 0) {
+                        DEBUG_PRINT("\n Decoder frame failed");
+                        return NULL;
+                    }
+
+                    break;
+
+                case VDEC_MSG_RESP_FLUSH_INPUT_DONE:
+                    DEBUG_PRINT("\n Flush input complete");
+                    sem_post (&decode_context->sem_synchronize);
+                    break;
+
+                case VDEC_MSG_RESP_FLUSH_OUTPUT_DONE:
+                    DEBUG_PRINT("\n Flush output complete");
+                    sem_post (&decode_context->sem_synchronize);
+                    break;
+            }
+
+            if (queueitem->cmd == VDEC_MSG_RESP_STOP_DONE) {
+                DEBUG_PRINT("\n Playback has ended thread will exit");
+                return NULL;
+            }
+        } else {
+            DEBUG_PRINT("\n Error condition recieved NULL from Queue");
+        }
+
+    }
+}
+
+static void* async_thread (void *context)
+{
+    struct video_decoder_context *decode_context = NULL;
+    struct vdec_output_frameinfo *outputframe = NULL;
+    struct video_msgq queueitem ;
+    struct vdec_msginfo vdec_msg;
+    struct vdec_ioctl_msg ioctl_msg = {NULL,NULL};
+    int result = -1;
+
+    if (context == NULL) {
+        DEBUG_PRINT("\n aynsc thread recieved NULL context");
+        return NULL;
+    }
+
+    decode_context = (struct video_decoder_context *) context;
+    DEBUG_PRINT("\n Entering the async thread");
+
+    while (1) {
+        ioctl_msg.in = NULL;
+
+        ioctl_msg.out = (void*)&vdec_msg;
+        DEBUG_PRINT ("\n Sizeof vdec_msginfo = %d ",sizeof (vdec_msg));
+        DEBUG_PRINT("\n Address of Vdec msg in async thread %p",\
+                ioctl_msg.out);
+
+        if (ioctl (decode_context->video_driver_fd,VDEC_IOCTL_GET_NEXT_MSG,\
+                    (void*)&ioctl_msg) < 0) {
+            DEBUG_PRINT("\n Error in ioctl read next msg");
+        } else {
+            switch (vdec_msg.msgcode) {
+                case VDEC_MSG_RESP_FLUSH_INPUT_DONE:
+                case VDEC_MSG_RESP_FLUSH_OUTPUT_DONE:
+                case VDEC_MSG_RESP_START_DONE:
+                case VDEC_MSG_RESP_STOP_DONE:
+                case VDEC_MSG_EVT_HW_ERROR:
+                    DEBUG_PRINT("\nioctl read next msg");
+                    queueitem.cmd = vdec_msg.msgcode;
+                    queueitem.status = vdec_msg.status_code;
+                    queueitem.clientdata = NULL;
+                    break;
+
+                case VDEC_MSG_RESP_INPUT_FLUSHED:
+                case VDEC_MSG_RESP_INPUT_BUFFER_DONE:
+
+                    queueitem.cmd = vdec_msg.msgcode;
+                    queueitem.status = vdec_msg.status_code;
+                    queueitem.clientdata = (void *)\
+                                   vdec_msg.msgdata.input_frame_clientdata;
+                    break;
+
+                case VDEC_MSG_RESP_OUTPUT_FLUSHED:
+                case VDEC_MSG_RESP_OUTPUT_BUFFER_DONE:
+                    queueitem.cmd = vdec_msg.msgcode;
+                    queueitem.status = vdec_msg.status_code;
+                    outputframe = (struct vdec_output_frameinfo *)\
+                              vdec_msg.msgdata.output_frame.client_data;
+                    DEBUG_PRINT ("\n Client Data value in %p", \
+                            vdec_msg.msgdata.output_frame.client_data);
+                    outputframe->bufferaddr = vdec_msg.msgdata.output_frame.bufferaddr;
+                    outputframe->framesize.bottom = \
+                                    vdec_msg.msgdata.output_frame.framesize.bottom;
+                    outputframe->framesize.left = \
+                                      vdec_msg.msgdata.output_frame.framesize.left;
+                    outputframe->framesize.right = \
+                                       vdec_msg.msgdata.output_frame.framesize.right;
+                    outputframe->framesize.top = \
+                                     vdec_msg.msgdata.output_frame.framesize.top;
+                    outputframe->framesize = vdec_msg.msgdata.output_frame.framesize;
+                    outputframe->len = vdec_msg.msgdata.output_frame.len;
+                    outputframe->time_stamp = vdec_msg.msgdata.output_frame.time_stamp;
+                    queueitem.clientdata = (void *)outputframe;
+                    DEBUG_PRINT ("\n Client Data value Copy %p",queueitem.clientdata);
+                    break;
+
+                default:
+                    DEBUG_PRINT("\nIn Default of get next message %d",vdec_msg.msgcode);
+                    queueitem.cmd = vdec_msg.msgcode;
+                    queueitem.status = vdec_msg.status_code;
+                    queueitem.clientdata = NULL;
+                    break;
+            }
+
+            result = queue_post_cmdq (&decode_context->queue_context,&queueitem);
+
+            while (result == 0) {
+                result = queue_post_cmdq (&decode_context->queue_context,
+                        &queueitem);
+            }
+
+            if (result == -1) {
+                DEBUG_PRINT("\n FATAL ERROR WITH Queue");
+            }
+        }
+
+        if (vdec_msg.msgcode == VDEC_MSG_RESP_STOP_DONE) {
+            /*Thread can exit at this point*/
+            return NULL;
+        }
+    }
+}
+
+
+static unsigned int read_frame (unsigned char *dataptr, unsigned int length,
+        FILE * inputBufferFile)
+{
+
+    unsigned int readOffset = 0;
+    int bytes_read = 0;
+    unsigned int code = 0;
+    int found = 0;
+
+    DEBUG_PRINT ("\n Inside the readframe");
+
+    if (dataptr == NULL || length == 0) {
+        DEBUG_PRINT ("\n dataptr = %p length = %u",dataptr,length);
+        return 0;
+    }
+
+    if (!Code_type) {
+        /* Start of Critical Section*/
+        pthread_mutex_lock(&read_lock);
+
+        do {
+            //Start codes are always byte aligned.
+            bytes_read = fread(&dataptr[readOffset],1, 1,inputBufferFile);
+
+            if ( !bytes_read) {
+                DEBUG_PRINT("\n Bytes read Zero \n");
+                break;
+            }
+
+            code <<= 8;
+            code |= (0x000000FF & dataptr[readOffset]);
+
+            //VOP start code comparision
+            if (readOffset>3) {
+                if (!header_code ) {
+                    if ( VOP_START_CODE == code) {
+                        DEBUG_PRINT ("\n Found VOP Code");
+                        header_code = VOP_START_CODE;
+                    } else if ( (0xFFFFFC00 & code) == SHORT_HEADER_START_CODE ) {
+                        header_code = SHORT_HEADER_START_CODE;
+                    }
+                }
+
+                if ((header_code == VOP_START_CODE) && (code == VOP_START_CODE)) {
+                    //Seek backwards by 4
+                    fseek(inputBufferFile, -4, SEEK_CUR);
+                    readOffset-=4;
+                    found = 1;
+                    break;
+
+                } else if (( header_code == SHORT_HEADER_START_CODE ) &&
+                        ( SHORT_HEADER_START_CODE == (code & 0xFFFFFC00))) {
+                    //Seek backwards by 4
+                    fseek(inputBufferFile, -4, SEEK_CUR);
+                    readOffset-=4;
+                    found = 1;
+                    break;
+                }
+            }
+
+            readOffset++;
+        } while (readOffset < length);
+
+        pthread_mutex_unlock(&read_lock);
+
+        /* End of Critical Section*/
+        if (found == 1) {
+            //DEBUG_PRINT ("Found a Frame");
+            return (readOffset+1);
+        } else {
+            //DEBUG_PRINT ("No Frames detected");
+            return 0;
+        }
+    } else {
+
+        readOffset = Read_Buffer_From_DAT_File(dataptr,length,inputBufferFile);
+
+        if (total_frames == 0) {
+            bytes_read = Read_Buffer_From_DAT_File(&dataptr[readOffset],
+                    (length-readOffset),
+                    inputBufferFile);
+            readOffset += bytes_read;
+        }
+
+        return (readOffset);
+    }
+
+}
+
+static int Read_Buffer_From_DAT_File(unsigned char *dataptr, unsigned int length,
+        FILE * inputBufferFile)
+{
+
+
+    long frameSize=0;
+    char temp_buffer[10];
+    char temp_byte;
+    int bytes_read=0;
+    int i=0;
+    unsigned char *read_buffer=NULL;
+    char c = '1'; //initialize to anything except '\0'(0)
+    char inputFrameSize[12];
+    int count =0;
+    char cnt =0;
+    memset(temp_buffer, 0, sizeof(temp_buffer));
+
+    while (cnt < 10)
+        /* Check the input file format, may result in infinite loop */
+    {
+        count  = fread(&inputFrameSize[cnt],1,1,inputBufferFile);
+
+        if (inputFrameSize[cnt] == '\0' )
+            break;
+
+        cnt++;
+    }
+
+    inputFrameSize[cnt]='\0';
+    frameSize = atoi(inputFrameSize);
+    //length = 0;
+    DEBUG_PRINT ("\n Frame Size is %d",frameSize);
+
+    /* get the frame length */
+    fseek(inputBufferFile, -1, SEEK_CUR);
+    bytes_read = fread(dataptr, 1, frameSize,  inputBufferFile);
+
+    if (bytes_read == 0 || bytes_read < frameSize ) {
+        return 0;
+    }
+
+    return bytes_read;
+}
diff --git a/mm-video-v4l2/vidc/vdec/test/omx_vdec_test.cpp b/mm-video-v4l2/vidc/vdec/test/omx_vdec_test.cpp
index a191ee2..974bee1 100644
--- a/mm-video-v4l2/vidc/vdec/test/omx_vdec_test.cpp
+++ b/mm-video-v4l2/vidc/vdec/test/omx_vdec_test.cpp
@@ -54,18 +54,18 @@
 #ifdef _ANDROID_
 #include <binder/MemoryHeapBase.h>
 
-extern "C"{
+extern "C" {
 #include<utils/Log.h>
 }
 #define DEBUG_PRINT
 #define DEBUG_PRINT_ERROR ALOGE
 
 //#define __DEBUG_DIVX__ // Define this macro to print (through logcat)
-                         // the kind of frames packed per buffer and
-                         // timestamps adjustments for divx.
+// the kind of frames packed per buffer and
+// timestamps adjustments for divx.
 
 //#define TEST_TS_FROM_SEI // Define this macro to calculate the timestamps
-                           // from the SEI and VUI data for H264
+// from the SEI and VUI data for H264
 
 #else
 #include <glib.h>
@@ -109,7 +109,7 @@
 static int previous_vc1_au = 0;
 #define CONFIG_VERSION_SIZE(param) \
     param.nVersion.nVersion = CURRENT_OMX_SPEC_VERSION;\
-    param.nSize = sizeof(param);
+param.nSize = sizeof(param);
 
 #define FAILED(result) (result != OMX_ErrorNone)
 
@@ -142,135 +142,136 @@
 const uint16 CRC_INIT = 0xFFFF ;
 
 const uint16 crc_16_l_table[ 256 ] = {
-  0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,
-  0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7,
-  0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e,
-  0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876,
-  0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,
-  0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5,
-  0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,
-  0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974,
-  0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,
-  0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3,
-  0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a,
-  0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72,
-  0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9,
-  0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,
-  0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738,
-  0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70,
-  0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7,
-  0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,
-  0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036,
-  0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e,
-  0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5,
-  0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd,
-  0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,
-  0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c,
-  0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3,
-  0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb,
-  0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,
-  0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a,
-  0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1,
-  0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9,
-  0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330,
-  0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78
+    0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,
+    0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7,
+    0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e,
+    0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876,
+    0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,
+    0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5,
+    0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,
+    0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974,
+    0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,
+    0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3,
+    0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a,
+    0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72,
+    0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9,
+    0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,
+    0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738,
+    0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70,
+    0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7,
+    0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,
+    0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036,
+    0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e,
+    0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5,
+    0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd,
+    0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,
+    0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c,
+    0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3,
+    0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb,
+    0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,
+    0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a,
+    0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1,
+    0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9,
+    0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330,
+    0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78
 };
 
 #ifdef ANDROID_JELLYBEAN_MR1
 //Since this is unavailable on Android 4.2.2, defining it in terms of base 10
-static inline float log2f(const float& x) {
+static inline float log2f(const float& x)
+{
     return log(x) / log(2);
 }
 #endif
 
 uint16 crc_16_l_step_nv12 (uint16 seed, const void *buf_ptr,
-	unsigned int byte_len, unsigned int height, unsigned int width)
+        unsigned int byte_len, unsigned int height, unsigned int width)
 {
-  uint16 crc_16 = ~seed;
-  char *buf = (char *)buf_ptr;
-  char *byte_ptr = buf;
-  int i, j;
-  const unsigned int width_align = 32;
-  const unsigned int height_align = 32;
-  unsigned int stride = (width + width_align -1) & (~(width_align-1));
-  unsigned int scan_lines = (height + height_align -1) & (~(height_align-1));
-  for (i = 0; i < height; i++) {
-	  for (j = 0; j < stride; j++) {
-		  if (j < width) {
-			  crc_16 = crc_16_l_table[ (crc_16 ^ *byte_ptr) & 0x00ff ] ^ (crc_16 >> 8);
-		  }
-		  byte_ptr++;
-	  }
-  }
-  byte_ptr = buf + (scan_lines * stride);
-  for (i = scan_lines; i < scan_lines + height/2;i++) {
-	  for (j = 0; j < stride; j++) {
-		  if (j < width) {
-			  crc_16 = crc_16_l_table[ (crc_16 ^ *byte_ptr) & 0x00ff ] ^ (crc_16 >> 8);
-		  }
-		  byte_ptr++;
-	  }
-  }
-  return( ~crc_16 );
+    uint16 crc_16 = ~seed;
+    char *buf = (char *)buf_ptr;
+    char *byte_ptr = buf;
+    int i, j;
+    const unsigned int width_align = 32;
+    const unsigned int height_align = 32;
+    unsigned int stride = (width + width_align -1) & (~(width_align-1));
+    unsigned int scan_lines = (height + height_align -1) & (~(height_align-1));
+    for (i = 0; i < height; i++) {
+        for (j = 0; j < stride; j++) {
+            if (j < width) {
+                crc_16 = crc_16_l_table[ (crc_16 ^ *byte_ptr) & 0x00ff ] ^ (crc_16 >> 8);
+            }
+            byte_ptr++;
+        }
+    }
+    byte_ptr = buf + (scan_lines * stride);
+    for (i = scan_lines; i < scan_lines + height/2; i++) {
+        for (j = 0; j < stride; j++) {
+            if (j < width) {
+                crc_16 = crc_16_l_table[ (crc_16 ^ *byte_ptr) & 0x00ff ] ^ (crc_16 >> 8);
+            }
+            byte_ptr++;
+        }
+    }
+    return( ~crc_16 );
 }
 #endif
 
 typedef enum {
-  CODEC_FORMAT_H264 = 1,
-  CODEC_FORMAT_MP4,
-  CODEC_FORMAT_H263,
-  CODEC_FORMAT_VC1,
-  CODEC_FORMAT_DIVX,
-  CODEC_FORMAT_MPEG2,
+    CODEC_FORMAT_H264 = 1,
+    CODEC_FORMAT_MP4,
+    CODEC_FORMAT_H263,
+    CODEC_FORMAT_VC1,
+    CODEC_FORMAT_DIVX,
+    CODEC_FORMAT_MPEG2,
 #ifdef _MSM8974_
-  CODEC_FORMAT_VP8,
-  CODEC_FORMAT_HEVC,
+    CODEC_FORMAT_VP8,
+    CODEC_FORMAT_HEVC,
 #endif
-  CODEC_FORMAT_MAX
+    CODEC_FORMAT_MAX
 } codec_format;
 
 typedef enum {
-  FILE_TYPE_DAT_PER_AU = 1,
-  FILE_TYPE_ARBITRARY_BYTES,
-  FILE_TYPE_COMMON_CODEC_MAX,
+    FILE_TYPE_DAT_PER_AU = 1,
+    FILE_TYPE_ARBITRARY_BYTES,
+    FILE_TYPE_COMMON_CODEC_MAX,
 
-  FILE_TYPE_START_OF_H264_SPECIFIC = 10,
-  FILE_TYPE_264_NAL_SIZE_LENGTH = FILE_TYPE_START_OF_H264_SPECIFIC,
-  FILE_TYPE_264_START_CODE_BASED,
+    FILE_TYPE_START_OF_H264_SPECIFIC = 10,
+    FILE_TYPE_264_NAL_SIZE_LENGTH = FILE_TYPE_START_OF_H264_SPECIFIC,
+    FILE_TYPE_264_START_CODE_BASED,
 
-  FILE_TYPE_START_OF_MP4_SPECIFIC = 20,
-  FILE_TYPE_PICTURE_START_CODE = FILE_TYPE_START_OF_MP4_SPECIFIC,
+    FILE_TYPE_START_OF_MP4_SPECIFIC = 20,
+    FILE_TYPE_PICTURE_START_CODE = FILE_TYPE_START_OF_MP4_SPECIFIC,
 
-  FILE_TYPE_START_OF_VC1_SPECIFIC = 30,
-  FILE_TYPE_RCV = FILE_TYPE_START_OF_VC1_SPECIFIC,
-  FILE_TYPE_VC1,
+    FILE_TYPE_START_OF_VC1_SPECIFIC = 30,
+    FILE_TYPE_RCV = FILE_TYPE_START_OF_VC1_SPECIFIC,
+    FILE_TYPE_VC1,
 
-  FILE_TYPE_START_OF_DIVX_SPECIFIC = 40,
-  FILE_TYPE_DIVX_4_5_6 = FILE_TYPE_START_OF_DIVX_SPECIFIC,
-  FILE_TYPE_DIVX_311,
+    FILE_TYPE_START_OF_DIVX_SPECIFIC = 40,
+    FILE_TYPE_DIVX_4_5_6 = FILE_TYPE_START_OF_DIVX_SPECIFIC,
+    FILE_TYPE_DIVX_311,
 
-  FILE_TYPE_START_OF_MPEG2_SPECIFIC = 50,
-  FILE_TYPE_MPEG2_START_CODE = FILE_TYPE_START_OF_MPEG2_SPECIFIC,
+    FILE_TYPE_START_OF_MPEG2_SPECIFIC = 50,
+    FILE_TYPE_MPEG2_START_CODE = FILE_TYPE_START_OF_MPEG2_SPECIFIC,
 
 #ifdef _MSM8974_
-  FILE_TYPE_START_OF_VP8_SPECIFIC = 60,
-  FILE_TYPE_VP8_START_CODE = FILE_TYPE_START_OF_VP8_SPECIFIC,
-  FILE_TYPE_VP8
+    FILE_TYPE_START_OF_VP8_SPECIFIC = 60,
+    FILE_TYPE_VP8_START_CODE = FILE_TYPE_START_OF_VP8_SPECIFIC,
+    FILE_TYPE_VP8
 #endif
 
 } file_type;
 
 typedef enum {
-  GOOD_STATE = 0,
-  PORT_SETTING_CHANGE_STATE,
-  ERROR_STATE
+    GOOD_STATE = 0,
+    PORT_SETTING_CHANGE_STATE,
+    ERROR_STATE
 } test_status;
 
 typedef enum {
-  FREE_HANDLE_AT_LOADED = 1,
-  FREE_HANDLE_AT_IDLE,
-  FREE_HANDLE_AT_EXECUTING,
-  FREE_HANDLE_AT_PAUSE
+    FREE_HANDLE_AT_LOADED = 1,
+    FREE_HANDLE_AT_IDLE,
+    FREE_HANDLE_AT_EXECUTING,
+    FREE_HANDLE_AT_PAUSE
 } freeHandle_test;
 
 struct temp_egl {
@@ -436,59 +437,59 @@
 static int Read_Buffer_From_DivX_311_File(OMX_BUFFERHEADERTYPE  *pBufHdr);
 
 static OMX_ERRORTYPE Allocate_Buffer ( OMX_COMPONENTTYPE *dec_handle,
-                                       OMX_BUFFERHEADERTYPE  ***pBufHdrs,
-                                       OMX_U32 nPortIndex,
-                                       long bufCntMin, long bufSize);
+        OMX_BUFFERHEADERTYPE  ***pBufHdrs,
+        OMX_U32 nPortIndex,
+        long bufCntMin, long bufSize);
 
 static OMX_ERRORTYPE use_input_buffer(OMX_COMPONENTTYPE      *dec_handle,
-                                OMX_BUFFERHEADERTYPE ***bufferHdr,
-                                OMX_U32              nPortIndex,
-                                OMX_U32              bufSize,
-                                long                 bufcnt);
+        OMX_BUFFERHEADERTYPE ***bufferHdr,
+        OMX_U32              nPortIndex,
+        OMX_U32              bufSize,
+        long                 bufcnt);
 
 static OMX_ERRORTYPE use_output_buffer(OMX_COMPONENTTYPE      *dec_handle,
-                                OMX_BUFFERHEADERTYPE ***bufferHdr,
-                                OMX_U32              nPortIndex,
-                                OMX_U32              bufSize,
-                                long                 bufcnt);
+        OMX_BUFFERHEADERTYPE ***bufferHdr,
+        OMX_U32              nPortIndex,
+        OMX_U32              bufSize,
+        long                 bufcnt);
 
 static OMX_ERRORTYPE use_output_buffer_multiple_fd(OMX_COMPONENTTYPE      *dec_handle,
-                                                   OMX_BUFFERHEADERTYPE ***bufferHdr,
-                                                   OMX_U32              nPortIndex,
-                                                   OMX_U32              bufSize,
-                                                   long                 bufcnt);
+        OMX_BUFFERHEADERTYPE ***bufferHdr,
+        OMX_U32              nPortIndex,
+        OMX_U32              bufSize,
+        long                 bufcnt);
 
 static OMX_ERRORTYPE EventHandler(OMX_IN OMX_HANDLETYPE hComponent,
-                                  OMX_IN OMX_PTR pAppData,
-                                  OMX_IN OMX_EVENTTYPE eEvent,
-                                  OMX_IN OMX_U32 nData1, OMX_IN OMX_U32 nData2,
-                                  OMX_IN OMX_PTR pEventData);
+        OMX_IN OMX_PTR pAppData,
+        OMX_IN OMX_EVENTTYPE eEvent,
+        OMX_IN OMX_U32 nData1, OMX_IN OMX_U32 nData2,
+        OMX_IN OMX_PTR pEventData);
 static OMX_ERRORTYPE EmptyBufferDone(OMX_IN OMX_HANDLETYPE hComponent,
-                                     OMX_IN OMX_PTR pAppData,
-                                     OMX_IN OMX_BUFFERHEADERTYPE* pBuffer);
+        OMX_IN OMX_PTR pAppData,
+        OMX_IN OMX_BUFFERHEADERTYPE* pBuffer);
 static OMX_ERRORTYPE FillBufferDone(OMX_OUT OMX_HANDLETYPE hComponent,
-                                    OMX_OUT OMX_PTR pAppData,
-                                    OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
+        OMX_OUT OMX_PTR pAppData,
+        OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
 
 static void do_freeHandle_and_clean_up(bool isDueToError);
 
 #ifndef USE_ION
 static bool align_pmem_buffers(int pmem_fd, OMX_U32 buffer_size,
-                                  OMX_U32 alignment);
+        OMX_U32 alignment);
 #endif
 void getFreePmem();
 static int overlay_vsync_ctrl(int enable);
 
 static  int clip2(int x)
-    {
-        x = x -1;
-        x = x | x >> 1;
-        x = x | x >> 2;
-        x = x | x >> 4;
-        x = x | x >> 16;
-        x = x + 1;
-        return x;
-    }
+{
+    x = x -1;
+    x = x | x >> 1;
+    x = x | x >> 2;
+    x = x | x >> 4;
+    x = x | x >> 16;
+    x = x + 1;
+    return x;
+}
 void wait_for_event(void)
 {
     DEBUG_PRINT("Waiting for event\n");
@@ -513,11 +514,11 @@
 int get_next_command(FILE *seq_file)
 {
     int i = -1;
-    do{
+    do {
         i++;
-        if(fread(&curr_seq_command[i], 1, 1, seq_file) != 1)
+        if (fread(&curr_seq_command[i], 1, 1, seq_file) != 1)
             return -1;
-    }while(curr_seq_command[i] != '\n');
+    } while (curr_seq_command[i] != '\n');
     curr_seq_command[i] = 0;
     printf("\n cmd_str = %s", curr_seq_command);
     return 0;
@@ -529,56 +530,45 @@
     unsigned int data = 0, bufCnt = 0, i = 0;
     int frameSize;
 
-    if(strstr(seq_command, "pause") == seq_command)
-    {
+    if (strstr(seq_command, "pause") == seq_command) {
         printf("\n\n $$$$$   PAUSE    $$$$$");
         data_str = (char*)seq_command + strlen("pause") + 1;
         data = atoi(data_str);
         printf("\n After frame number %u", data);
         cmd_data = data;
         sem_wait(&seq_sem);
-        if (!bOutputEosReached && !bInputEosReached)
-        {
+        if (!bOutputEosReached && !bInputEosReached) {
             printf("\n Sending PAUSE cmd to OMX compt");
             OMX_SendCommand(dec_handle, OMX_CommandStateSet, OMX_StatePause,0);
             wait_for_event();
             printf("\n EventHandler for PAUSE DONE");
-        }
-        else
+        } else
             seq_enabled = 0;
-    }
-    else if(strstr(seq_command, "sleep") == seq_command)
-    {
+    } else if (strstr(seq_command, "sleep") == seq_command) {
         printf("\n\n $$$$$   SLEEP    $$$$$");
         data_str = (char*)seq_command + strlen("sleep") + 1;
         data = atoi(data_str);
         printf("\n Sleep Time = %u ms", data);
         usleep(data*1000);
-    }
-    else if(strstr(seq_command, "resume") == seq_command)
-    {
+    } else if (strstr(seq_command, "resume") == seq_command) {
         printf("\n\n $$$$$   RESUME    $$$$$");
         printf("\n Immediate effect");
         printf("\n Sending RESUME cmd to OMX compt");
         OMX_SendCommand(dec_handle, OMX_CommandStateSet, OMX_StateExecuting,0);
         wait_for_event();
         printf("\n EventHandler for RESUME DONE");
-    }
-    else if(strstr(seq_command, "flush") == seq_command)
-    {
+    } else if (strstr(seq_command, "flush") == seq_command) {
         printf("\n\n $$$$$   FLUSH    $$$$$");
         data_str = (char*)seq_command + strlen("flush") + 1;
         data = atoi(data_str);
         printf("\n After frame number %u", data);
-        if (previous_vc1_au)
-        {
+        if (previous_vc1_au) {
             printf("\n Flush not allowed on Field boundary");
             return 0;
         }
         cmd_data = data;
         sem_wait(&seq_sem);
-        if (!bOutputEosReached && !bInputEosReached)
-        {
+        if (!bOutputEosReached && !bInputEosReached) {
             printf("\n Sending FLUSH cmd to OMX compt");
             flush_input_progress = 1;
             flush_output_progress = 1;
@@ -589,12 +579,9 @@
             sem_post(&in_flush_sem);
             printf("\n Post FBD_thread flush sem");
             sem_post(&out_flush_sem);
-        }
-        else
+        } else
             seq_enabled = 0;
-    }
-    else if(strstr(seq_command, "disable_op") == seq_command)
-    {
+    } else if (strstr(seq_command, "disable_op") == seq_command) {
         printf("\n\n $$$$$   DISABLE OP PORT    $$$$$");
         data_str = (char*)seq_command + strlen("disable_op") + 1;
         data = atoi(data_str);
@@ -602,31 +589,23 @@
         cmd_data = data;
         sem_wait(&seq_sem);
         printf("\n Sending DISABLE OP cmd to OMX compt");
-        if (disable_output_port() != 0)
-        {
+        if (disable_output_port() != 0) {
             printf("\n ERROR: While DISABLE OP...");
             do_freeHandle_and_clean_up(true);
             return -1;
-        }
-        else
+        } else
             printf("\n EventHandler for DISABLE OP");
-    }
-    else if(strstr(seq_command, "enable_op") == seq_command)
-    {
+    } else if (strstr(seq_command, "enable_op") == seq_command) {
         printf("\n\n $$$$$   ENABLE OP PORT    $$$$$");
         data_str = (char*)seq_command + strlen("enable_op") + 1;
         printf("\n Sending ENABLE OP cmd to OMX compt");
-        if (enable_output_port() != 0)
-        {
+        if (enable_output_port() != 0) {
             printf("\n ERROR: While ENABLE OP...");
             do_freeHandle_and_clean_up(true);
             return -1;
-        }
-        else
+        } else
             printf("\n EventHandler for ENABLE OP");
-    }
-    else
-    {
+    } else {
         printf("\n\n $$$$$   INVALID CMD    $$$$$");
         printf("\n seq_command[%s] is invalid", seq_command);
         seq_enabled = 0;
@@ -636,508 +615,457 @@
 
 void PrintFramePackArrangement(OMX_QCOM_FRAME_PACK_ARRANGEMENT framePackingArrangement)
 {
-   printf("id (%d)\n",
-          framePackingArrangement.id);
-   printf("cancel_flag (%d)\n",
-          framePackingArrangement.cancel_flag);
-   printf("type (%d)\n",
-          framePackingArrangement.type);
-   printf("quincunx_sampling_flag (%d)\n",
-          framePackingArrangement.quincunx_sampling_flag);
-   printf("content_interpretation_type (%d)\n",
-          framePackingArrangement.content_interpretation_type);
-   printf("spatial_flipping_flag (%d)\n",
-          framePackingArrangement.spatial_flipping_flag);
-   printf("frame0_flipped_flag (%d)\n",
-          framePackingArrangement.frame0_flipped_flag);
-   printf("field_views_flag (%d)\n",
-          framePackingArrangement.field_views_flag);
-   printf("current_frame_is_frame0_flag (%d)\n",
-          framePackingArrangement.current_frame_is_frame0_flag);
-   printf("frame0_self_contained_flag (%d)\n",
-          framePackingArrangement.frame0_self_contained_flag);
-   printf("frame1_self_contained_flag (%d)\n",
-          framePackingArrangement.frame1_self_contained_flag);
-   printf("frame0_grid_position_x (%d)\n",
-          framePackingArrangement.frame0_grid_position_x);
-   printf("frame0_grid_position_y (%d)\n",
-          framePackingArrangement.frame0_grid_position_y);
-   printf("frame1_grid_position_x (%d)\n",
-          framePackingArrangement.frame1_grid_position_x);
-   printf("frame1_grid_position_y (%d)\n",
-          framePackingArrangement.frame1_grid_position_y);
-   printf("reserved_byte (%d)\n",
-          framePackingArrangement.reserved_byte);
-   printf("repetition_period (%d)\n",
-          framePackingArrangement.repetition_period);
-   printf("extension_flag (%d)\n",
-          framePackingArrangement.extension_flag);
+    printf("id (%d)\n",
+            framePackingArrangement.id);
+    printf("cancel_flag (%d)\n",
+            framePackingArrangement.cancel_flag);
+    printf("type (%d)\n",
+            framePackingArrangement.type);
+    printf("quincunx_sampling_flag (%d)\n",
+            framePackingArrangement.quincunx_sampling_flag);
+    printf("content_interpretation_type (%d)\n",
+            framePackingArrangement.content_interpretation_type);
+    printf("spatial_flipping_flag (%d)\n",
+            framePackingArrangement.spatial_flipping_flag);
+    printf("frame0_flipped_flag (%d)\n",
+            framePackingArrangement.frame0_flipped_flag);
+    printf("field_views_flag (%d)\n",
+            framePackingArrangement.field_views_flag);
+    printf("current_frame_is_frame0_flag (%d)\n",
+            framePackingArrangement.current_frame_is_frame0_flag);
+    printf("frame0_self_contained_flag (%d)\n",
+            framePackingArrangement.frame0_self_contained_flag);
+    printf("frame1_self_contained_flag (%d)\n",
+            framePackingArrangement.frame1_self_contained_flag);
+    printf("frame0_grid_position_x (%d)\n",
+            framePackingArrangement.frame0_grid_position_x);
+    printf("frame0_grid_position_y (%d)\n",
+            framePackingArrangement.frame0_grid_position_y);
+    printf("frame1_grid_position_x (%d)\n",
+            framePackingArrangement.frame1_grid_position_x);
+    printf("frame1_grid_position_y (%d)\n",
+            framePackingArrangement.frame1_grid_position_y);
+    printf("reserved_byte (%d)\n",
+            framePackingArrangement.reserved_byte);
+    printf("repetition_period (%d)\n",
+            framePackingArrangement.repetition_period);
+    printf("extension_flag (%d)\n",
+            framePackingArrangement.extension_flag);
 }
 void* ebd_thread(void* pArg)
 {
-  int signal_eos = 0;
-  while(currentStatus != ERROR_STATE)
-  {
-    int readBytes =0;
-    OMX_BUFFERHEADERTYPE* pBuffer = NULL;
+    int signal_eos = 0;
+    while (currentStatus != ERROR_STATE) {
+        int readBytes =0;
+        OMX_BUFFERHEADERTYPE* pBuffer = NULL;
 
-    if(flush_input_progress)
-    {
-        DEBUG_PRINT("\n EBD_thread flush wait start");
-        sem_wait(&in_flush_sem);
-        DEBUG_PRINT("\n EBD_thread flush wait complete");
-    }
+        if (flush_input_progress) {
+            DEBUG_PRINT("\n EBD_thread flush wait start");
+            sem_wait(&in_flush_sem);
+            DEBUG_PRINT("\n EBD_thread flush wait complete");
+        }
 
-    sem_wait(&etb_sem);
-    pthread_mutex_lock(&etb_lock);
-    pBuffer = (OMX_BUFFERHEADERTYPE *) pop(etb_queue);
-    pthread_mutex_unlock(&etb_lock);
-    if(pBuffer == NULL)
-    {
-      DEBUG_PRINT_ERROR("Error - No etb pBuffer to dequeue\n");
-      continue;
-    }
+        sem_wait(&etb_sem);
+        pthread_mutex_lock(&etb_lock);
+        pBuffer = (OMX_BUFFERHEADERTYPE *) pop(etb_queue);
+        pthread_mutex_unlock(&etb_lock);
+        if (pBuffer == NULL) {
+            DEBUG_PRINT_ERROR("Error - No etb pBuffer to dequeue\n");
+            continue;
+        }
 
-    if (num_frames_to_decode && (etb_count >= num_frames_to_decode)) {
-        printf("\n Signal EOS %d frames decoded \n", num_frames_to_decode);
-       signal_eos = 1;
-    }
+        if (num_frames_to_decode && (etb_count >= num_frames_to_decode)) {
+            printf("\n Signal EOS %d frames decoded \n", num_frames_to_decode);
+            signal_eos = 1;
+        }
 
-    pBuffer->nOffset = 0;
-    if(((readBytes = Read_Buffer(pBuffer)) > 0) && !signal_eos) {
-        pBuffer->nFilledLen = readBytes;
-        DEBUG_PRINT("%s: Timestamp sent(%lld)", __FUNCTION__, pBuffer->nTimeStamp);
-        OMX_EmptyThisBuffer(dec_handle,pBuffer);
-        etb_count++;
+        pBuffer->nOffset = 0;
+        if (((readBytes = Read_Buffer(pBuffer)) > 0) && !signal_eos) {
+            pBuffer->nFilledLen = readBytes;
+            DEBUG_PRINT("%s: Timestamp sent(%lld)", __FUNCTION__, pBuffer->nTimeStamp);
+            OMX_EmptyThisBuffer(dec_handle,pBuffer);
+            etb_count++;
+        } else {
+            pBuffer->nFlags |= OMX_BUFFERFLAG_EOS;
+            bInputEosReached = true;
+            pBuffer->nFilledLen = readBytes;
+            DEBUG_PRINT("%s: Timestamp sent(%lld)", __FUNCTION__, pBuffer->nTimeStamp);
+            OMX_EmptyThisBuffer(dec_handle,pBuffer);
+            DEBUG_PRINT("EBD::Either EOS or Some Error while reading file\n");
+            etb_count++;
+            break;
+        }
     }
-    else
-    {
-        pBuffer->nFlags |= OMX_BUFFERFLAG_EOS;
-        bInputEosReached = true;
-        pBuffer->nFilledLen = readBytes;
-        DEBUG_PRINT("%s: Timestamp sent(%lld)", __FUNCTION__, pBuffer->nTimeStamp);
-        OMX_EmptyThisBuffer(dec_handle,pBuffer);
-        DEBUG_PRINT("EBD::Either EOS or Some Error while reading file\n");
-        etb_count++;
-        break;
-    }
-  }
-  return NULL;
+    return NULL;
 }
 
 void* fbd_thread(void* pArg)
 {
-  long unsigned act_time = 0, display_time = 0, render_time = 5e3, lipsync = 15e3;
-  struct timeval t_avsync = {0, 0}, base_avsync = {0, 0};
-  float total_time = 0;
-  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);
-    DEBUG_PRINT("Inside %s\n", __FUNCTION__);
-    if(flush_output_progress)
-    {
-        DEBUG_PRINT("\n FBD_thread flush wait start");
-        sem_wait(&out_flush_sem);
-        DEBUG_PRINT("\n FBD_thread flush wait complete");
-    }
-    sem_wait(&fbd_sem);
-    pthread_mutex_lock(&enable_lock);
-    if (sent_disabled)
-    {
-      pthread_mutex_unlock(&enable_lock);
-      pthread_mutex_lock(&fbd_lock);
-      if (pPrevBuff != NULL ) {
-        if(push(fbd_queue, (void *)pBuffer))
-            DEBUG_PRINT_ERROR("Error in enqueueing fbd_data\n");
-        else
-            sem_post(&fbd_sem);
-        pPrevBuff = NULL;
-      }
-      if (free_op_buf_cnt == portFmt.nBufferCountActual)
-        free_output_buffers();
-      pthread_mutex_unlock(&fbd_lock);
-      pthread_mutex_lock(&eos_lock);
-      continue;
-    }
-    pthread_mutex_unlock(&enable_lock);
-    if (anti_flickering)
-      pPrevBuff = pBuffer;
-    pthread_mutex_lock(&fbd_lock);
-    pBuffer = (OMX_BUFFERHEADERTYPE *)pop(fbd_queue);
-    pthread_mutex_unlock(&fbd_lock);
-    if (pBuffer == NULL)
-    {
-      if (anti_flickering)
-        pBuffer = pPrevBuff;
-      DEBUG_PRINT("Error - No pBuffer to dequeue\n");
-      pthread_mutex_lock(&eos_lock);
-      continue;
-    }
-    else if (pBuffer->nFilledLen > 0)
-    {
-        if (!fbd_cnt)
-        {
-            gettimeofday(&t_start, NULL);
-        }
-      fbd_cnt++;
-      DEBUG_PRINT("%s: fbd_cnt(%d) Buf(%p) Timestamp(%lld)",
-        __FUNCTION__, fbd_cnt, pBuffer, pBuffer->nTimeStamp);
-      canDisplay = 1;
-      if (realtime_display)
-      {
-        if (pBuffer->nTimeStamp != (lastTimestamp + timestampInterval))
-        {
-            DEBUG_PRINT("Unexpected timestamp[%lld]! Expected[%lld]\n",
-                pBuffer->nTimeStamp, lastTimestamp + timestampInterval);
-        }
-        lastTimestamp = pBuffer->nTimeStamp;
-        gettimeofday(&t_avsync, NULL);
-        if (!base_avsync.tv_sec && !base_avsync.tv_usec)
-        {
-          display_time = 0;
-          base_avsync = t_avsync;
-          base_timestamp = pBuffer->nTimeStamp;
-          DEBUG_PRINT("base_avsync Sec(%lu) uSec(%lu) base_timestamp(%lld)",
-              base_avsync.tv_sec, base_avsync.tv_usec, base_timestamp);
-        }
-        else
-        {
-          act_time = (t_avsync.tv_sec - base_avsync.tv_sec) * 1e6
-                     + t_avsync.tv_usec - base_avsync.tv_usec;
-          display_time = pBuffer->nTimeStamp - base_timestamp;
-          DEBUG_PRINT("%s: act_time(%lu) display_time(%lu)",
-              __FUNCTION__, act_time, display_time);
-               //Frame rcvd on time
-          if (((act_time + render_time) >= (display_time - lipsync) &&
-               (act_time + render_time) <= (display_time + lipsync)) ||
-               //Display late frame
-               (contigous_drop_frame > 5))
-              display_time = 0;
-          else if ((act_time + render_time) < (display_time - lipsync))
-              //Delaying early frame
-              display_time -= (lipsync + act_time + render_time);
-          else
-          {
-              //Dropping late frame
-              canDisplay = 0;
-              contigous_drop_frame++;
-          }
-        }
-      }
-      if (displayYuv && canDisplay)
-      {
-          if (display_time)
-              usleep(display_time);
-          ret = overlay_fb(pBuffer);
-          if (ret != 0)
-          {
-            printf("\nERROR in overlay_fb, disabling display!");
-            close_display();
-            displayYuv = 0;
-          }
-          usleep(render_time);
-          contigous_drop_frame = 0;
-      }
-
-      if (takeYuvLog)
-      {
-          if (color_fmt == (OMX_COLOR_FORMATTYPE)QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m)
-          {
-             printf("\n width: %d height: %d\n", crop_rect.nWidth, crop_rect.nHeight);
-             unsigned int stride = VENUS_Y_STRIDE(COLOR_FMT_NV12, portFmt.format.video.nFrameWidth);
-             unsigned int scanlines = VENUS_Y_SCANLINES(COLOR_FMT_NV12, portFmt.format.video.nFrameHeight);
-             char *temp = (char *) pBuffer->pBuffer;
-             int i = 0;
-
-             temp += (stride * (int)crop_rect.nTop) +  (int)crop_rect.nLeft;
-             for (i = 0; i < crop_rect.nHeight; i++) {
-                bytes_written = fwrite(temp, crop_rect.nWidth, 1, outputBufferFile);
-                temp += stride;
-             }
-
-             temp = (char *)pBuffer->pBuffer + stride * scanlines;
-             temp += (stride * (int)crop_rect.nTop) +  (int)crop_rect.nLeft;
-             for(i = 0; i < crop_rect.nHeight/2; i++) {
-                 bytes_written += fwrite(temp, crop_rect.nWidth, 1, outputBufferFile);
-                 temp += stride;
-             }
-         }
-         else
-         {
-             bytes_written = fwrite((const char *)pBuffer->pBuffer,
-                       pBuffer->nFilledLen,1,outputBufferFile);
-         }
-          if (bytes_written < 0) {
-              DEBUG_PRINT("\nFillBufferDone: Failed to write to the file\n");
-          }
-          else {
-              DEBUG_PRINT("\nFillBufferDone: Wrote %d YUV bytes to the file\n",
-                            bytes_written);
-          }
-      }
-#ifdef _MSM8974_
-      if (crcFile) {
-	      uint16 crc_val;
-	      crc_val = crc_16_l_step_nv12(CRC_INIT, pBuffer->pBuffer,
-			      pBuffer->nFilledLen, height, width);
-	      int num_bytes = fwrite(&crc_val, 1, sizeof(crc_val), crcFile);
-	      if (num_bytes < sizeof(crc_val)) {
-		      printf("Failed to write CRC value into file\n");
-	      }
-      }
-#endif
-      if (pBuffer->nFlags & OMX_BUFFERFLAG_EXTRADATA)
-      {
-        OMX_OTHER_EXTRADATATYPE *pExtra;
-        DEBUG_PRINT(">> BUFFER WITH EXTRA DATA RCVD <<<");
-        pExtra = (OMX_OTHER_EXTRADATATYPE *)
-                 ((unsigned)(pBuffer->pBuffer + pBuffer->nOffset +
-                  pBuffer->nFilledLen + 3)&(~3));
-        while(pExtra &&
-              (OMX_U8*)pExtra < (pBuffer->pBuffer + pBuffer->nAllocLen) &&
-              pExtra->eType != OMX_ExtraDataNone )
-        {
-          DEBUG_PRINT("ExtraData : pBuf(%p) BufTS(%lld) Type(%x) DataSz(%u)",
-               pBuffer, pBuffer->nTimeStamp, pExtra->eType, pExtra->nDataSize);
-          switch (pExtra->eType)
-          {
-            case OMX_ExtraDataInterlaceFormat:
-            {
-              OMX_STREAMINTERLACEFORMAT *pInterlaceFormat = (OMX_STREAMINTERLACEFORMAT *)pExtra->data;
-              DEBUG_PRINT("OMX_ExtraDataInterlaceFormat: Buf(%p) TSmp(%lld) IntPtr(%p) Fmt(%x)",
-                pBuffer->pBuffer, pBuffer->nTimeStamp,
-                pInterlaceFormat, pInterlaceFormat->nInterlaceFormats);
-              break;
-            }
-            case OMX_ExtraDataFrameInfo:
-            {
-              OMX_QCOM_EXTRADATA_FRAMEINFO *frame_info = (OMX_QCOM_EXTRADATA_FRAMEINFO *)pExtra->data;
-              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);
-              if (aspectratio_prop)
-                DEBUG_PRINT_ERROR(" FrmRate(%u), AspRatioX(%u), AspRatioY(%u) DispWidth(%u) DispHeight(%u)",
-                frame_info->nFrameRate, frame_info->aspectRatio.aspectRatioX,
-                frame_info->aspectRatio.aspectRatioY, frame_info->displayAspectRatio.displayHorizontalSize,
-                frame_info->displayAspectRatio.displayVerticalSize);
-              else
-                DEBUG_PRINT(" FrmRate(%u), AspRatioX(%u), AspRatioY(%u) DispWidth(%u) DispHeight(%u)",
-                frame_info->nFrameRate, frame_info->aspectRatio.aspectRatioX,
-                frame_info->aspectRatio.aspectRatioY, frame_info->displayAspectRatio.displayHorizontalSize,
-                frame_info->displayAspectRatio.displayVerticalSize);
-              DEBUG_PRINT("PANSCAN numWindows(%d)", frame_info->panScan.numWindows);
-              for (int i = 0; i < frame_info->panScan.numWindows; i++)
-              {
-                DEBUG_PRINT("WINDOW Lft(%d) Tp(%d) Rgt(%d) Bttm(%d)",
-                  frame_info->panScan.window[i].x,
-                  frame_info->panScan.window[i].y,
-                  frame_info->panScan.window[i].dx,
-                  frame_info->panScan.window[i].dy);
-              }
-              break;
-            }
-            break;
-            case OMX_ExtraDataConcealMB:
-            {
-              OMX_U8 data = 0, *data_ptr = (OMX_U8 *)pExtra->data;
-              OMX_U32 concealMBnum = 0, bytes_cnt = 0;
-              while (bytes_cnt < pExtra->nDataSize)
-              {
-                data = *data_ptr;
-                while (data)
-                {
-                  concealMBnum += (data&0x01);
-                  data >>= 1;
-                }
-                data_ptr++;
-                bytes_cnt++;
-              }
-              DEBUG_PRINT("OMX_ExtraDataConcealMB: Buf(%p) TSmp(%lld) ConcealMB(%u)",
-                pBuffer->pBuffer, pBuffer->nTimeStamp, concealMBnum);
-            }
-            break;
-            case OMX_ExtraDataMP2ExtnData:
-            {
-              DEBUG_PRINT("\nOMX_ExtraDataMP2ExtnData");
-              OMX_U8 data = 0, *data_ptr = (OMX_U8 *)pExtra->data;
-              OMX_U32 bytes_cnt = 0;
-              while (bytes_cnt < pExtra->nDataSize)
-              {
-                DEBUG_PRINT("\n MPEG-2 Extension Data Values[%d] = 0x%x", bytes_cnt, *data_ptr);
-                data_ptr++;
-                bytes_cnt++;
-              }
-            }
-            break;
-            case OMX_ExtraDataMP2UserData:
-            {
-              DEBUG_PRINT("\nOMX_ExtraDataMP2UserData");
-              OMX_U8 data = 0, *data_ptr = (OMX_U8 *)pExtra->data;
-              OMX_U32 bytes_cnt = 0;
-              while (bytes_cnt < pExtra->nDataSize)
-              {
-                DEBUG_PRINT("\n MPEG-2 User Data Values[%d] = 0x%x", bytes_cnt, *data_ptr);
-                data_ptr++;
-                bytes_cnt++;
-              }
-            }
-            break;
-            default:
-              DEBUG_PRINT_ERROR("Unknown Extrata!");
-          }
-          if (pExtra->nSize < (pBuffer->nAllocLen - (OMX_U32)pExtra))
-            pExtra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) pExtra) + pExtra->nSize);
-          else
-          {
-            DEBUG_PRINT_ERROR("ERROR: Extradata pointer overflow buffer(%p) extra(%p)",
-              pBuffer, pExtra);
-            pExtra = NULL;
-          }
-        }
-      }
-    }
-    if(pBuffer->nFlags & QOMX_VIDEO_BUFFERFLAG_EOSEQ)
-    {
-        DEBUG_PRINT("\n");
-        DEBUG_PRINT("***************************************************\n");
-        DEBUG_PRINT("FillBufferDone: End Of Sequence Received\n");
-        DEBUG_PRINT("***************************************************\n");
-    }
-    if(pBuffer->nFlags & OMX_BUFFERFLAG_DATACORRUPT)
-    {
-      DEBUG_PRINT("\n");
-      DEBUG_PRINT("***************************************************\n");
-      DEBUG_PRINT("FillBufferDone: OMX_BUFFERFLAG_DATACORRUPT Received\n");
-      DEBUG_PRINT("***************************************************\n");
-    }
-    /********************************************************************/
-    /* De-Initializing the open max and relasing the buffers and */
-    /* closing the files.*/
-    /********************************************************************/
-    if (pBuffer->nFlags & OMX_BUFFERFLAG_EOS )
-    {
-      OMX_QCOM_FRAME_PACK_ARRANGEMENT framePackingArrangement;
-      OMX_GetConfig(dec_handle,
-                   (OMX_INDEXTYPE)OMX_QcomIndexConfigVideoFramePackingArrangement,
-                    &framePackingArrangement);
-      PrintFramePackArrangement(framePackingArrangement);
-
-      gettimeofday(&t_end, NULL);
-      total_time = ((float) ((t_end.tv_sec - t_start.tv_sec) * 1e6
-                     + t_end.tv_usec - t_start.tv_usec))/ 1e6;
-      //total frames is fbd_cnt - 1 since the start time is
-      //recorded after the first frame is decoded.
-      printf("\nAvg decoding frame rate=%f\n", (fbd_cnt - 1)/total_time);
-
-      DEBUG_PRINT("***************************************************\n");
-      DEBUG_PRINT("FillBufferDone: End Of Stream Reached\n");
-      DEBUG_PRINT("***************************************************\n");
-      pthread_mutex_lock(&eos_lock);
-      bOutputEosReached = true;
-      break;
-    }
-
-    pthread_mutex_lock(&enable_lock);
-    if (flush_output_progress || sent_disabled)
-    {
-        pBuffer->nFilledLen = 0;
-        pBuffer->nFlags &= ~OMX_BUFFERFLAG_EXTRADATA;
-        pthread_mutex_lock(&fbd_lock);
-        if ( pPrevBuff != NULL ) {
-            if(push(fbd_queue, (void *)pPrevBuff))
-                DEBUG_PRINT_ERROR("Error in enqueueing fbd_data\n");
-            else
-               sem_post(&fbd_sem);
-            pPrevBuff = NULL;
-        }
-        if(push(fbd_queue, (void *)pBuffer) < 0)
-        {
-          DEBUG_PRINT_ERROR("Error in enqueueing fbd_data\n");
-        }
-        else
-          sem_post(&fbd_sem);
-        pthread_mutex_unlock(&fbd_lock);
-    }
-    else
-    {
-        if (!anti_flickering)
-          pPrevBuff = pBuffer;
-        if (pPrevBuff)
-        {
-          pthread_mutex_lock(&fbd_lock);
-          pthread_mutex_lock(&eos_lock);
-          if (!bOutputEosReached)
-          {
-              if ( OMX_FillThisBuffer(dec_handle, pPrevBuff) == OMX_ErrorNone ) {
-                  free_op_buf_cnt--;
-              }
-          }
-          pthread_mutex_unlock(&eos_lock);
-          pthread_mutex_unlock(&fbd_lock);
-        }
-    }
-    pthread_mutex_unlock(&enable_lock);
-    if(cmd_data <= fbd_cnt)
-    {
-      sem_post(&seq_sem);
-      printf("\n Posted seq_sem Frm(%d) Req(%d)", fbd_cnt, cmd_data);
-      cmd_data = ~(unsigned)0;
-    }
+    long unsigned act_time = 0, display_time = 0, render_time = 5e3, lipsync = 15e3;
+    struct timeval t_avsync = {0, 0}, base_avsync = {0, 0};
+    float total_time = 0;
+    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);
-  }
-  if(seq_enabled)
-  {
-      seq_enabled = 0;
-      sem_post(&seq_sem);
-      printf("\n Posted seq_sem in EOS \n");
-  }
-  pthread_cond_broadcast(&eos_cond);
-  pthread_mutex_unlock(&eos_lock);
-  return NULL;
+#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);
+        DEBUG_PRINT("Inside %s\n", __FUNCTION__);
+        if (flush_output_progress) {
+            DEBUG_PRINT("\n FBD_thread flush wait start");
+            sem_wait(&out_flush_sem);
+            DEBUG_PRINT("\n FBD_thread flush wait complete");
+        }
+        sem_wait(&fbd_sem);
+        pthread_mutex_lock(&enable_lock);
+        if (sent_disabled) {
+            pthread_mutex_unlock(&enable_lock);
+            pthread_mutex_lock(&fbd_lock);
+            if (pPrevBuff != NULL ) {
+                if (push(fbd_queue, (void *)pBuffer))
+                    DEBUG_PRINT_ERROR("Error in enqueueing fbd_data\n");
+                else
+                    sem_post(&fbd_sem);
+                pPrevBuff = NULL;
+            }
+            if (free_op_buf_cnt == portFmt.nBufferCountActual)
+                free_output_buffers();
+            pthread_mutex_unlock(&fbd_lock);
+            pthread_mutex_lock(&eos_lock);
+            continue;
+        }
+        pthread_mutex_unlock(&enable_lock);
+        if (anti_flickering)
+            pPrevBuff = pBuffer;
+        pthread_mutex_lock(&fbd_lock);
+        pBuffer = (OMX_BUFFERHEADERTYPE *)pop(fbd_queue);
+        pthread_mutex_unlock(&fbd_lock);
+        if (pBuffer == NULL) {
+            if (anti_flickering)
+                pBuffer = pPrevBuff;
+            DEBUG_PRINT("Error - No pBuffer to dequeue\n");
+            pthread_mutex_lock(&eos_lock);
+            continue;
+        } else if (pBuffer->nFilledLen > 0) {
+            if (!fbd_cnt) {
+                gettimeofday(&t_start, NULL);
+            }
+            fbd_cnt++;
+            DEBUG_PRINT("%s: fbd_cnt(%d) Buf(%p) Timestamp(%lld)",
+                    __FUNCTION__, fbd_cnt, pBuffer, pBuffer->nTimeStamp);
+            canDisplay = 1;
+            if (realtime_display) {
+                if (pBuffer->nTimeStamp != (lastTimestamp + timestampInterval)) {
+                    DEBUG_PRINT("Unexpected timestamp[%lld]! Expected[%lld]\n",
+                            pBuffer->nTimeStamp, lastTimestamp + timestampInterval);
+                }
+                lastTimestamp = pBuffer->nTimeStamp;
+                gettimeofday(&t_avsync, NULL);
+                if (!base_avsync.tv_sec && !base_avsync.tv_usec) {
+                    display_time = 0;
+                    base_avsync = t_avsync;
+                    base_timestamp = pBuffer->nTimeStamp;
+                    DEBUG_PRINT("base_avsync Sec(%lu) uSec(%lu) base_timestamp(%lld)",
+                            base_avsync.tv_sec, base_avsync.tv_usec, base_timestamp);
+                } else {
+                    act_time = (t_avsync.tv_sec - base_avsync.tv_sec) * 1e6
+                        + t_avsync.tv_usec - base_avsync.tv_usec;
+                    display_time = pBuffer->nTimeStamp - base_timestamp;
+                    DEBUG_PRINT("%s: act_time(%lu) display_time(%lu)",
+                            __FUNCTION__, act_time, display_time);
+                    //Frame rcvd on time
+                    if (((act_time + render_time) >= (display_time - lipsync) &&
+                                (act_time + render_time) <= (display_time + lipsync)) ||
+                            //Display late frame
+                            (contigous_drop_frame > 5))
+                        display_time = 0;
+                    else if ((act_time + render_time) < (display_time - lipsync))
+                        //Delaying early frame
+                        display_time -= (lipsync + act_time + render_time);
+                    else {
+                        //Dropping late frame
+                        canDisplay = 0;
+                        contigous_drop_frame++;
+                    }
+                }
+            }
+            if (displayYuv && canDisplay) {
+                if (display_time)
+                    usleep(display_time);
+                ret = overlay_fb(pBuffer);
+                if (ret != 0) {
+                    printf("\nERROR in overlay_fb, disabling display!");
+                    close_display();
+                    displayYuv = 0;
+                }
+                usleep(render_time);
+                contigous_drop_frame = 0;
+            }
+
+            if (takeYuvLog) {
+                if (color_fmt == (OMX_COLOR_FORMATTYPE)QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m) {
+                    printf("\n width: %d height: %d\n", crop_rect.nWidth, crop_rect.nHeight);
+                    unsigned int stride = VENUS_Y_STRIDE(COLOR_FMT_NV12, portFmt.format.video.nFrameWidth);
+                    unsigned int scanlines = VENUS_Y_SCANLINES(COLOR_FMT_NV12, portFmt.format.video.nFrameHeight);
+                    char *temp = (char *) pBuffer->pBuffer;
+                    int i = 0;
+
+                    temp += (stride * (int)crop_rect.nTop) +  (int)crop_rect.nLeft;
+                    for (i = 0; i < crop_rect.nHeight; i++) {
+                        bytes_written = fwrite(temp, crop_rect.nWidth, 1, outputBufferFile);
+                        temp += stride;
+                    }
+
+                    temp = (char *)pBuffer->pBuffer + stride * scanlines;
+                    temp += (stride * (int)crop_rect.nTop) +  (int)crop_rect.nLeft;
+                    for (i = 0; i < crop_rect.nHeight/2; i++) {
+                        bytes_written += fwrite(temp, crop_rect.nWidth, 1, outputBufferFile);
+                        temp += stride;
+                    }
+                } else {
+                    bytes_written = fwrite((const char *)pBuffer->pBuffer,
+                            pBuffer->nFilledLen,1,outputBufferFile);
+                }
+                if (bytes_written < 0) {
+                    DEBUG_PRINT("\nFillBufferDone: Failed to write to the file\n");
+                } else {
+                    DEBUG_PRINT("\nFillBufferDone: Wrote %d YUV bytes to the file\n",
+                            bytes_written);
+                }
+            }
+#ifdef _MSM8974_
+            if (crcFile) {
+                uint16 crc_val;
+                crc_val = crc_16_l_step_nv12(CRC_INIT, pBuffer->pBuffer,
+                        pBuffer->nFilledLen, height, width);
+                int num_bytes = fwrite(&crc_val, 1, sizeof(crc_val), crcFile);
+                if (num_bytes < sizeof(crc_val)) {
+                    printf("Failed to write CRC value into file\n");
+                }
+            }
+#endif
+            if (pBuffer->nFlags & OMX_BUFFERFLAG_EXTRADATA) {
+                OMX_OTHER_EXTRADATATYPE *pExtra;
+                DEBUG_PRINT(">> BUFFER WITH EXTRA DATA RCVD <<<");
+                pExtra = (OMX_OTHER_EXTRADATATYPE *)
+                    ((unsigned)(pBuffer->pBuffer + pBuffer->nOffset +
+                        pBuffer->nFilledLen + 3)&(~3));
+                while (pExtra &&
+                        (OMX_U8*)pExtra < (pBuffer->pBuffer + pBuffer->nAllocLen) &&
+                        pExtra->eType != OMX_ExtraDataNone ) {
+                    DEBUG_PRINT("ExtraData : pBuf(%p) BufTS(%lld) Type(%x) DataSz(%u)",
+                            pBuffer, pBuffer->nTimeStamp, pExtra->eType, pExtra->nDataSize);
+                    switch (pExtra->eType) {
+                        case OMX_ExtraDataInterlaceFormat:
+                            {
+                                OMX_STREAMINTERLACEFORMAT *pInterlaceFormat = (OMX_STREAMINTERLACEFORMAT *)pExtra->data;
+                                DEBUG_PRINT("OMX_ExtraDataInterlaceFormat: Buf(%p) TSmp(%lld) IntPtr(%p) Fmt(%x)",
+                                        pBuffer->pBuffer, pBuffer->nTimeStamp,
+                                        pInterlaceFormat, pInterlaceFormat->nInterlaceFormats);
+                                break;
+                            }
+                        case OMX_ExtraDataFrameInfo:
+                            {
+                                OMX_QCOM_EXTRADATA_FRAMEINFO *frame_info = (OMX_QCOM_EXTRADATA_FRAMEINFO *)pExtra->data;
+                                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);
+                                if (aspectratio_prop)
+                                    DEBUG_PRINT_ERROR(" FrmRate(%u), AspRatioX(%u), AspRatioY(%u) DispWidth(%u) DispHeight(%u)",
+                                            frame_info->nFrameRate, frame_info->aspectRatio.aspectRatioX,
+                                            frame_info->aspectRatio.aspectRatioY, frame_info->displayAspectRatio.displayHorizontalSize,
+                                            frame_info->displayAspectRatio.displayVerticalSize);
+                                else
+                                    DEBUG_PRINT(" FrmRate(%u), AspRatioX(%u), AspRatioY(%u) DispWidth(%u) DispHeight(%u)",
+                                            frame_info->nFrameRate, frame_info->aspectRatio.aspectRatioX,
+                                            frame_info->aspectRatio.aspectRatioY, frame_info->displayAspectRatio.displayHorizontalSize,
+                                            frame_info->displayAspectRatio.displayVerticalSize);
+                                DEBUG_PRINT("PANSCAN numWindows(%d)", frame_info->panScan.numWindows);
+                                for (int i = 0; i < frame_info->panScan.numWindows; i++) {
+                                    DEBUG_PRINT("WINDOW Lft(%d) Tp(%d) Rgt(%d) Bttm(%d)",
+                                            frame_info->panScan.window[i].x,
+                                            frame_info->panScan.window[i].y,
+                                            frame_info->panScan.window[i].dx,
+                                            frame_info->panScan.window[i].dy);
+                                }
+                                break;
+                            }
+                            break;
+                        case OMX_ExtraDataConcealMB:
+                            {
+                                OMX_U8 data = 0, *data_ptr = (OMX_U8 *)pExtra->data;
+                                OMX_U32 concealMBnum = 0, bytes_cnt = 0;
+                                while (bytes_cnt < pExtra->nDataSize) {
+                                    data = *data_ptr;
+                                    while (data) {
+                                        concealMBnum += (data&0x01);
+                                        data >>= 1;
+                                    }
+                                    data_ptr++;
+                                    bytes_cnt++;
+                                }
+                                DEBUG_PRINT("OMX_ExtraDataConcealMB: Buf(%p) TSmp(%lld) ConcealMB(%u)",
+                                        pBuffer->pBuffer, pBuffer->nTimeStamp, concealMBnum);
+                            }
+                            break;
+                        case OMX_ExtraDataMP2ExtnData:
+                            {
+                                DEBUG_PRINT("\nOMX_ExtraDataMP2ExtnData");
+                                OMX_U8 data = 0, *data_ptr = (OMX_U8 *)pExtra->data;
+                                OMX_U32 bytes_cnt = 0;
+                                while (bytes_cnt < pExtra->nDataSize) {
+                                    DEBUG_PRINT("\n MPEG-2 Extension Data Values[%d] = 0x%x", bytes_cnt, *data_ptr);
+                                    data_ptr++;
+                                    bytes_cnt++;
+                                }
+                            }
+                            break;
+                        case OMX_ExtraDataMP2UserData:
+                            {
+                                DEBUG_PRINT("\nOMX_ExtraDataMP2UserData");
+                                OMX_U8 data = 0, *data_ptr = (OMX_U8 *)pExtra->data;
+                                OMX_U32 bytes_cnt = 0;
+                                while (bytes_cnt < pExtra->nDataSize) {
+                                    DEBUG_PRINT("\n MPEG-2 User Data Values[%d] = 0x%x", bytes_cnt, *data_ptr);
+                                    data_ptr++;
+                                    bytes_cnt++;
+                                }
+                            }
+                            break;
+                        default:
+                            DEBUG_PRINT_ERROR("Unknown Extrata!");
+                    }
+                    if (pExtra->nSize < (pBuffer->nAllocLen - (OMX_U32)pExtra))
+                        pExtra = (OMX_OTHER_EXTRADATATYPE *) (((OMX_U8 *) pExtra) + pExtra->nSize);
+                    else {
+                        DEBUG_PRINT_ERROR("ERROR: Extradata pointer overflow buffer(%p) extra(%p)",
+                                pBuffer, pExtra);
+                        pExtra = NULL;
+                    }
+                }
+            }
+        }
+        if (pBuffer->nFlags & QOMX_VIDEO_BUFFERFLAG_EOSEQ) {
+            DEBUG_PRINT("\n");
+            DEBUG_PRINT("***************************************************\n");
+            DEBUG_PRINT("FillBufferDone: End Of Sequence Received\n");
+            DEBUG_PRINT("***************************************************\n");
+        }
+        if (pBuffer->nFlags & OMX_BUFFERFLAG_DATACORRUPT) {
+            DEBUG_PRINT("\n");
+            DEBUG_PRINT("***************************************************\n");
+            DEBUG_PRINT("FillBufferDone: OMX_BUFFERFLAG_DATACORRUPT Received\n");
+            DEBUG_PRINT("***************************************************\n");
+        }
+        /********************************************************************/
+        /* De-Initializing the open max and relasing the buffers and */
+        /* closing the files.*/
+        /********************************************************************/
+        if (pBuffer->nFlags & OMX_BUFFERFLAG_EOS ) {
+            OMX_QCOM_FRAME_PACK_ARRANGEMENT framePackingArrangement;
+            OMX_GetConfig(dec_handle,
+                    (OMX_INDEXTYPE)OMX_QcomIndexConfigVideoFramePackingArrangement,
+                    &framePackingArrangement);
+            PrintFramePackArrangement(framePackingArrangement);
+
+            gettimeofday(&t_end, NULL);
+            total_time = ((float) ((t_end.tv_sec - t_start.tv_sec) * 1e6
+                        + t_end.tv_usec - t_start.tv_usec))/ 1e6;
+            //total frames is fbd_cnt - 1 since the start time is
+            //recorded after the first frame is decoded.
+            printf("\nAvg decoding frame rate=%f\n", (fbd_cnt - 1)/total_time);
+
+            DEBUG_PRINT("***************************************************\n");
+            DEBUG_PRINT("FillBufferDone: End Of Stream Reached\n");
+            DEBUG_PRINT("***************************************************\n");
+            pthread_mutex_lock(&eos_lock);
+            bOutputEosReached = true;
+            break;
+        }
+
+        pthread_mutex_lock(&enable_lock);
+        if (flush_output_progress || sent_disabled) {
+            pBuffer->nFilledLen = 0;
+            pBuffer->nFlags &= ~OMX_BUFFERFLAG_EXTRADATA;
+            pthread_mutex_lock(&fbd_lock);
+            if ( pPrevBuff != NULL ) {
+                if (push(fbd_queue, (void *)pPrevBuff))
+                    DEBUG_PRINT_ERROR("Error in enqueueing fbd_data\n");
+                else
+                    sem_post(&fbd_sem);
+                pPrevBuff = NULL;
+            }
+            if (push(fbd_queue, (void *)pBuffer) < 0) {
+                DEBUG_PRINT_ERROR("Error in enqueueing fbd_data\n");
+            } else
+                sem_post(&fbd_sem);
+            pthread_mutex_unlock(&fbd_lock);
+        } else {
+            if (!anti_flickering)
+                pPrevBuff = pBuffer;
+            if (pPrevBuff) {
+                pthread_mutex_lock(&fbd_lock);
+                pthread_mutex_lock(&eos_lock);
+                if (!bOutputEosReached) {
+                    if ( OMX_FillThisBuffer(dec_handle, pPrevBuff) == OMX_ErrorNone ) {
+                        free_op_buf_cnt--;
+                    }
+                }
+                pthread_mutex_unlock(&eos_lock);
+                pthread_mutex_unlock(&fbd_lock);
+            }
+        }
+        pthread_mutex_unlock(&enable_lock);
+        if (cmd_data <= fbd_cnt) {
+            sem_post(&seq_sem);
+            printf("\n Posted seq_sem Frm(%d) Req(%d)", fbd_cnt, cmd_data);
+            cmd_data = ~(unsigned)0;
+        }
+        pthread_mutex_lock(&eos_lock);
+    }
+    if (seq_enabled) {
+        seq_enabled = 0;
+        sem_post(&seq_sem);
+        printf("\n Posted seq_sem in EOS \n");
+    }
+    pthread_cond_broadcast(&eos_cond);
+    pthread_mutex_unlock(&eos_lock);
+    return NULL;
 }
 
 OMX_ERRORTYPE EventHandler(OMX_IN OMX_HANDLETYPE hComponent,
-                           OMX_IN OMX_PTR pAppData,
-                           OMX_IN OMX_EVENTTYPE eEvent,
-                           OMX_IN OMX_U32 nData1, OMX_IN OMX_U32 nData2,
-                           OMX_IN OMX_PTR pEventData)
+        OMX_IN OMX_PTR pAppData,
+        OMX_IN OMX_EVENTTYPE eEvent,
+        OMX_IN OMX_U32 nData1, OMX_IN OMX_U32 nData2,
+        OMX_IN OMX_PTR pEventData)
 {
     DEBUG_PRINT("Function %s \n", __FUNCTION__);
 
-    switch(eEvent) {
+    switch (eEvent) {
         case OMX_EventCmdComplete:
             DEBUG_PRINT("\n OMX_EventCmdComplete \n");
-            if(OMX_CommandPortDisable == (OMX_COMMANDTYPE)nData1)
-            {
+            if (OMX_CommandPortDisable == (OMX_COMMANDTYPE)nData1) {
                 DEBUG_PRINT("*********************************************\n");
                 DEBUG_PRINT("Recieved DISABLE Event Command Complete[%d]\n",nData2);
                 DEBUG_PRINT("*********************************************\n");
-            }
-            else if(OMX_CommandPortEnable == (OMX_COMMANDTYPE)nData1)
-            {
+            } else if (OMX_CommandPortEnable == (OMX_COMMANDTYPE)nData1) {
                 DEBUG_PRINT("*********************************************\n");
                 DEBUG_PRINT("Recieved ENABLE Event Command Complete[%d]\n",nData2);
                 DEBUG_PRINT("*********************************************\n");
                 if (currentStatus == PORT_SETTING_CHANGE_STATE)
-                  currentStatus = GOOD_STATE;
+                    currentStatus = GOOD_STATE;
                 pthread_mutex_lock(&enable_lock);
                 sent_disabled = 0;
                 pthread_mutex_unlock(&enable_lock);
-            }
-            else if(OMX_CommandFlush == (OMX_COMMANDTYPE)nData1)
-            {
+            } else if (OMX_CommandFlush == (OMX_COMMANDTYPE)nData1) {
                 DEBUG_PRINT("*********************************************\n");
                 DEBUG_PRINT("Received FLUSH Event Command Complete[%d]\n",nData2);
                 DEBUG_PRINT("*********************************************\n");
@@ -1156,60 +1084,53 @@
             printf("*********************************************\n");
             currentStatus = ERROR_STATE;
             if (OMX_ErrorInvalidState == (OMX_ERRORTYPE)nData1 ||
-                OMX_ErrorHardware == (OMX_ERRORTYPE)nData1)
-            {
-              printf("Invalid State or hardware error \n");
-              if(event_is_done == 0)
-              {
-                DEBUG_PRINT("Event error in the middle of Decode \n");
-                pthread_mutex_lock(&eos_lock);
-                bOutputEosReached = true;
-                pthread_mutex_unlock(&eos_lock);
-                if(seq_enabled)
-                {
-                    seq_enabled = 0;
-                    sem_post(&seq_sem);
-                    printf("\n Posted seq_sem in ERROR");
+                    OMX_ErrorHardware == (OMX_ERRORTYPE)nData1) {
+                printf("Invalid State or hardware error \n");
+                if (event_is_done == 0) {
+                    DEBUG_PRINT("Event error in the middle of Decode \n");
+                    pthread_mutex_lock(&eos_lock);
+                    bOutputEosReached = true;
+                    pthread_mutex_unlock(&eos_lock);
+                    if (seq_enabled) {
+                        seq_enabled = 0;
+                        sem_post(&seq_sem);
+                        printf("\n Posted seq_sem in ERROR");
+                    }
                 }
-              }
             }
-            if (waitForPortSettingsChanged)
-            {
-	            waitForPortSettingsChanged = 0;
-	            event_complete();
+            if (waitForPortSettingsChanged) {
+                waitForPortSettingsChanged = 0;
+                event_complete();
             }
             break;
         case OMX_EventPortSettingsChanged:
             DEBUG_PRINT("OMX_EventPortSettingsChanged port[%d]\n", nData1);
             if (nData2 == OMX_IndexConfigCommonOutputCrop) {
                 OMX_U32 outPortIndex = 1;
-                 if (nData1 == outPortIndex) {
-                     crop_rect.nPortIndex = outPortIndex;
-                     OMX_ERRORTYPE ret = OMX_GetConfig(dec_handle,
-                                                       OMX_IndexConfigCommonOutputCrop, &crop_rect);
-                     if (FAILED(ret)) {
-                         DEBUG_PRINT_ERROR("Failed to get crop rectangle\n");
-                         break;
-                     } else
-                         DEBUG_PRINT("Got Crop Rect: (%d, %d) (%d x %d)\n",
-                             crop_rect.nLeft, crop_rect.nTop, crop_rect.nWidth, crop_rect.nHeight);
-                 }
-                 currentStatus = GOOD_STATE;
-                 break;
+                if (nData1 == outPortIndex) {
+                    crop_rect.nPortIndex = outPortIndex;
+                    OMX_ERRORTYPE ret = OMX_GetConfig(dec_handle,
+                            OMX_IndexConfigCommonOutputCrop, &crop_rect);
+                    if (FAILED(ret)) {
+                        DEBUG_PRINT_ERROR("Failed to get crop rectangle\n");
+                        break;
+                    } else
+                        DEBUG_PRINT("Got Crop Rect: (%d, %d) (%d x %d)\n",
+                                crop_rect.nLeft, crop_rect.nTop, crop_rect.nWidth, crop_rect.nHeight);
+                }
+                currentStatus = GOOD_STATE;
+                break;
             }
 
 #ifdef _MSM8974_
             if (nData2 != OMX_IndexParamPortDefinition)
-              break;
+                break;
 #endif
             currentStatus = PORT_SETTING_CHANGE_STATE;
-            if (waitForPortSettingsChanged)
-            {
-	            waitForPortSettingsChanged = 0;
-	            event_complete();
-            }
-            else
-            {
+            if (waitForPortSettingsChanged) {
+                waitForPortSettingsChanged = 0;
+                event_complete();
+            } else {
                 pthread_mutex_lock(&eos_lock);
                 pthread_cond_broadcast(&eos_cond);
                 pthread_mutex_unlock(&eos_lock);
@@ -1225,15 +1146,12 @@
                 pthread_mutex_lock(&eos_lock);
                 bOutputEosReached = true;
                 pthread_mutex_unlock(&eos_lock);
-                if(seq_enabled)
-                {
+                if (seq_enabled) {
                     seq_enabled = 0;
                     sem_post(&seq_sem);
                     printf("\n Posted seq_sem in OMX_EventBufferFlag");
                 }
-            }
-            else
-            {
+            } else {
                 DEBUG_PRINT_ERROR("OMX_EventBufferFlag Event not handled\n");
             }
 #endif
@@ -1249,26 +1167,26 @@
 }
 
 OMX_ERRORTYPE EmptyBufferDone(OMX_IN OMX_HANDLETYPE hComponent,
-                              OMX_IN OMX_PTR pAppData,
-                              OMX_IN OMX_BUFFERHEADERTYPE* pBuffer)
+        OMX_IN OMX_PTR pAppData,
+        OMX_IN OMX_BUFFERHEADERTYPE* pBuffer)
 {
-    int readBytes =0; int bufCnt=0;
+    int readBytes =0;
+    int bufCnt=0;
     OMX_ERRORTYPE result;
 
     DEBUG_PRINT("Function %s cnt[%d]\n", __FUNCTION__, ebd_cnt);
     ebd_cnt++;
 
 
-    if(bInputEosReached) {
+    if (bInputEosReached) {
         DEBUG_PRINT("*****EBD:Input EoS Reached************\n");
         return OMX_ErrorNone;
     }
 
     pthread_mutex_lock(&etb_lock);
-    if(push(etb_queue, (void *) pBuffer) < 0)
-    {
-       DEBUG_PRINT_ERROR("Error in enqueue  ebd data\n");
-       return OMX_ErrorUndefined;
+    if (push(etb_queue, (void *) pBuffer) < 0) {
+        DEBUG_PRINT_ERROR("Error in enqueue  ebd data\n");
+        return OMX_ErrorUndefined;
     }
     pthread_mutex_unlock(&etb_lock);
     sem_post(&etb_sem);
@@ -1277,8 +1195,8 @@
 }
 
 OMX_ERRORTYPE FillBufferDone(OMX_OUT OMX_HANDLETYPE hComponent,
-                             OMX_OUT OMX_PTR pAppData,
-                             OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer)
+        OMX_OUT OMX_PTR pAppData,
+        OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer)
 {
     DEBUG_PRINT("Inside %s callback_count[%d] \n", __FUNCTION__, fbd_cnt);
 
@@ -1286,21 +1204,19 @@
      * In case that there is no dynamic port setting, OMX will not call event cb,
      * instead OMX will send empty this buffer directly and we need to clear an event here
      */
-    if(waitForPortSettingsChanged)
-    {
-      waitForPortSettingsChanged = 0;
-      if(displayYuv)
-        overlay_set();
-      event_complete();
+    if (waitForPortSettingsChanged) {
+        waitForPortSettingsChanged = 0;
+        if (displayYuv)
+            overlay_set();
+        event_complete();
     }
 
     pthread_mutex_lock(&fbd_lock);
     free_op_buf_cnt++;
-    if(push(fbd_queue, (void *)pBuffer) < 0)
-    {
-      pthread_mutex_unlock(&fbd_lock);
-      DEBUG_PRINT_ERROR("Error in enqueueing fbd_data\n");
-      return OMX_ErrorUndefined;
+    if (push(fbd_queue, (void *)pBuffer) < 0) {
+        pthread_mutex_unlock(&fbd_lock);
+        DEBUG_PRINT_ERROR("Error in enqueueing fbd_data\n");
+        return OMX_ErrorUndefined;
     }
     pthread_mutex_unlock(&fbd_lock);
     sem_post(&fbd_sem);
@@ -1326,11 +1242,10 @@
     crop_rect.nHeight = height;
 
 
-    if (argc < 2)
-    {
-      printf("To use it: ./mm-vdec-omx-test <clip location> \n");
-      printf("Command line argument is also available\n");
-      return -1;
+    if (argc < 2) {
+        printf("To use it: ./mm-vdec-omx-test <clip location> \n");
+        printf("Command line argument is also available\n");
+        return -1;
     }
 
     strlcpy(in_filename, argv[1], strlen(argv[1])+1);
@@ -1338,325 +1253,283 @@
     strlcpy(crclogname, argv[1], strlen(argv[1])+1);
     strcat(crclogname, ".crc");
 #endif
-    if(argc > 2)
-    {
-      codec_format_option = (codec_format)atoi(argv[2]);
-      // file_type, out_op, tst_op, nal_sz, disp_win, rt_dis, (fps), color, pic_order, num_frames_to_decode
-      int param[10] = {2, 1, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF};
-      int next_arg = 3, idx = 0;
-      while (argc > next_arg && idx < 10)
-      {
-        if (strlen(argv[next_arg]) > 2)
-        {
-          strlcpy(seq_file_name, argv[next_arg],strlen(argv[next_arg]) + 1);
-          next_arg = argc;
+    if (argc > 2) {
+        codec_format_option = (codec_format)atoi(argv[2]);
+        // file_type, out_op, tst_op, nal_sz, disp_win, rt_dis, (fps), color, pic_order, num_frames_to_decode
+        int param[10] = {2, 1, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF};
+        int next_arg = 3, idx = 0;
+        while (argc > next_arg && idx < 10) {
+            if (strlen(argv[next_arg]) > 2) {
+                strlcpy(seq_file_name, argv[next_arg],strlen(argv[next_arg]) + 1);
+                next_arg = argc;
+            } else
+                param[idx++] = atoi(argv[next_arg++]);
         }
-        else
-          param[idx++] = atoi(argv[next_arg++]);
-      }
-      idx = 0;
-      file_type_option = (file_type)param[idx++];
-      if (codec_format_option == CODEC_FORMAT_H264 && file_type_option == 3)
-      {
-        nalSize = param[idx++];
-        if (nalSize != 2 && nalSize != 4)
-        {
-          printf("Error - Can't pass NAL length size = %d\n", nalSize);
-          return -1;
+        idx = 0;
+        file_type_option = (file_type)param[idx++];
+        if (codec_format_option == CODEC_FORMAT_H264 && file_type_option == 3) {
+            nalSize = param[idx++];
+            if (nalSize != 2 && nalSize != 4) {
+                printf("Error - Can't pass NAL length size = %d\n", nalSize);
+                return -1;
+            }
         }
-      }
-      outputOption = param[idx++];
-      test_option = param[idx++];
-      if ((outputOption == 1 || outputOption ==3) && test_option != 3) {
-          displayWindow = param[idx++];
-          if (displayWindow > 0)
-              printf("Only entire display window supported! Ignoring value\n");
-          realtime_display = param[idx++];
-      }
-      if (realtime_display)
-      {
-        takeYuvLog = 0;
-        if(param[idx] != 0xFF)
-        {
-          fps = param[idx++];
-          timestampInterval = 1e6 / fps;
+        outputOption = param[idx++];
+        test_option = param[idx++];
+        if ((outputOption == 1 || outputOption ==3) && test_option != 3) {
+            displayWindow = param[idx++];
+            if (displayWindow > 0)
+                printf("Only entire display window supported! Ignoring value\n");
+            realtime_display = param[idx++];
         }
-      }
-      color_fmt_type = (param[idx] != 0xFF)? param[idx++] : color_fmt_type;
-      if (test_option != 3) {
-          pic_order = (param[idx] != 0xFF)? param[idx++] : 0;
-          num_frames_to_decode = param[idx++];
-      }
-      printf("Executing DynPortReconfig QCIF 144 x 176 \n");
-    }
-    else
-    {
-      printf("Command line argument is available\n");
-      printf("To use it: ./mm-vdec-omx-test <clip location> <codec_type> \n");
-      printf("           <input_type: 1. per AU(.dat), 2. arbitrary, 3.per NAL/frame>\n");
-      printf("           <output_type> <test_case> <size_nal if H264>\n\n\n");
-      printf(" *********************************************\n");
-      printf(" ENTER THE TEST CASE YOU WOULD LIKE TO EXECUTE\n");
-      printf(" *********************************************\n");
-      printf(" 1--> H264\n");
-      printf(" 2--> MP4\n");
-      printf(" 3--> H263\n");
-      printf(" 4--> VC1\n");
-      printf(" 5--> DivX\n");
-      printf(" 6--> MPEG2\n");
+        if (realtime_display) {
+            takeYuvLog = 0;
+            if (param[idx] != 0xFF) {
+                fps = param[idx++];
+                timestampInterval = 1e6 / fps;
+            }
+        }
+        color_fmt_type = (param[idx] != 0xFF)? param[idx++] : color_fmt_type;
+        if (test_option != 3) {
+            pic_order = (param[idx] != 0xFF)? param[idx++] : 0;
+            num_frames_to_decode = param[idx++];
+        }
+        printf("Executing DynPortReconfig QCIF 144 x 176 \n");
+    } else {
+        printf("Command line argument is available\n");
+        printf("To use it: ./mm-vdec-omx-test <clip location> <codec_type> \n");
+        printf("           <input_type: 1. per AU(.dat), 2. arbitrary, 3.per NAL/frame>\n");
+        printf("           <output_type> <test_case> <size_nal if H264>\n\n\n");
+        printf(" *********************************************\n");
+        printf(" ENTER THE TEST CASE YOU WOULD LIKE TO EXECUTE\n");
+        printf(" *********************************************\n");
+        printf(" 1--> H264\n");
+        printf(" 2--> MP4\n");
+        printf(" 3--> H263\n");
+        printf(" 4--> VC1\n");
+        printf(" 5--> DivX\n");
+        printf(" 6--> MPEG2\n");
 #ifdef _MSM8974_
-      printf(" 7--> VP8\n");
-      printf(" 8--> HEVC\n");
+        printf(" 7--> VP8\n");
+        printf(" 8--> HEVC\n");
 #endif
-      fflush(stdin);
-      fgets(tempbuf,sizeof(tempbuf),stdin);
-      sscanf(tempbuf,"%d",&codec_format_option);
-      fflush(stdin);
-      if (codec_format_option > CODEC_FORMAT_MAX)
-      {
-          printf(" Wrong test case...[%d] \n", codec_format_option);
-          return -1;
-      }
-      printf(" *********************************************\n");
-      printf(" ENTER THE TEST CASE YOU WOULD LIKE TO EXECUTE\n");
-      printf(" *********************************************\n");
-      printf(" 1--> PER ACCESS UNIT CLIP (.dat). Clip only available for H264 and Mpeg4\n");
-      printf(" 2--> ARBITRARY BYTES (need .264/.264c/.m4v/.263/.rcv/.vc1/.m2v)\n");
-      if (codec_format_option == CODEC_FORMAT_H264)
-      {
-        printf(" 3--> NAL LENGTH SIZE CLIP (.264c)\n");
-        printf(" 4--> START CODE BASED CLIP (.264/.h264)\n");
-      }
-      else if ( (codec_format_option == CODEC_FORMAT_MP4) || (codec_format_option == CODEC_FORMAT_H263) )
-      {
-        printf(" 3--> MP4 VOP or H263 P0 SHORT HEADER START CODE CLIP (.m4v or .263)\n");
-      }
-      else if (codec_format_option == CODEC_FORMAT_VC1)
-      {
-        printf(" 3--> VC1 clip Simple/Main Profile (.rcv)\n");
-        printf(" 4--> VC1 clip Advance Profile (.vc1)\n");
-      }
-      else if (codec_format_option == CODEC_FORMAT_DIVX)
-      {
-          printf(" 3--> DivX 4, 5, 6 clip (.cmp)\n");
-#ifdef MAX_RES_1080P
-          printf(" 4--> DivX 3.11 clip \n");
-#endif
-      }
-      else if (codec_format_option == CODEC_FORMAT_MPEG2)
-      {
-        printf(" 3--> MPEG2 START CODE CLIP (.m2v)\n");
-      }
-#ifdef _MSM8974_
-      else if (codec_format_option == CODEC_FORMAT_VP8)
-      {
-        printf(" 61--> VP8 START CODE CLIP (.ivf)\n");
-      }
-#endif
-      fflush(stdin);
-      fgets(tempbuf,sizeof(tempbuf),stdin);
-      sscanf(tempbuf,"%d",&file_type_option);
-#ifdef _MSM8974_
-      if (codec_format_option == CODEC_FORMAT_VP8)
-      {
-        file_type_option = FILE_TYPE_VP8;
-      }
-#endif
-      fflush(stdin);
-      if (codec_format_option == CODEC_FORMAT_H264 && file_type_option == 3)
-      {
-        printf(" Enter Nal length size [2 or 4] \n");
+        fflush(stdin);
         fgets(tempbuf,sizeof(tempbuf),stdin);
-        sscanf(tempbuf,"%d",&nalSize);
-        if (nalSize != 2 && nalSize != 4)
-        {
-          printf("Error - Can't pass NAL length size = %d\n", nalSize);
-          return -1;
+        sscanf(tempbuf,"%d",&codec_format_option);
+        fflush(stdin);
+        if (codec_format_option > CODEC_FORMAT_MAX) {
+            printf(" Wrong test case...[%d] \n", codec_format_option);
+            return -1;
         }
-      }
-
-      printf(" *********************************************\n");
-      printf(" Output buffer option:\n");
-      printf(" *********************************************\n");
-      printf(" 0 --> No display and no YUV log\n");
-      printf(" 1 --> Diplay YUV\n");
-      printf(" 2 --> Take YUV log\n");
-      printf(" 3 --> Display YUV and take YUV log\n");
-      fflush(stdin);
-      fgets(tempbuf,sizeof(tempbuf),stdin);
-      sscanf(tempbuf,"%d",&outputOption);
-      fflush(stdin);
-
-      printf(" *********************************************\n");
-      printf(" ENTER THE TEST CASE YOU WOULD LIKE TO EXECUTE\n");
-      printf(" *********************************************\n");
-      printf(" 1 --> Play the clip till the end\n");
-      printf(" 2 --> Run compliance test. Do NOT expect any display for most option. \n");
-      printf("       Please only see \"TEST SUCCESSFULL\" to indicate test pass\n");
-      printf(" 3 --> Thumbnail decode mode\n");
-      fflush(stdin);
-      fgets(tempbuf,sizeof(tempbuf),stdin);
-      sscanf(tempbuf,"%d",&test_option);
-      fflush(stdin);
-      if (test_option == 3)
-          thumbnailMode = 1;
-
-      if ((outputOption == 1 || outputOption == 3) && thumbnailMode == 0)
-      {
-          printf(" *********************************************\n");
-          printf(" ENTER THE PORTION OF DISPLAY TO USE\n");
-          printf(" *********************************************\n");
-          printf(" 0 --> Entire Screen\n");
-          printf(" 1 --> 1/4 th of the screen starting from top left corner to middle \n");
-          printf(" 2 --> 1/4 th of the screen starting from middle to top right corner \n");
-          printf(" 3 --> 1/4 th of the screen starting from middle to bottom left \n");
-          printf(" 4 --> 1/4 th of the screen starting from middle to bottom right \n");
-          printf("       Please only see \"TEST SUCCESSFULL\" to indidcate test pass\n");
-          fflush(stdin);
-          fgets(tempbuf,sizeof(tempbuf),stdin);
-          sscanf(tempbuf,"%d",&displayWindow);
-          fflush(stdin);
-          if(displayWindow > 0)
-          {
-              printf(" Curently display window 0 only supported; ignoring other values\n");
-              displayWindow = 0;
-          }
-      }
-
-      if ((outputOption == 1 || outputOption == 3) && thumbnailMode == 0)
-      {
-          printf(" *********************************************\n");
-          printf(" DO YOU WANT TEST APP TO RENDER in Real time \n");
-          printf(" 0 --> NO\n 1 --> YES\n");
-          printf(" Warning: For H264, it require one NAL per frame clip.\n");
-          printf("          For Arbitrary bytes option, Real time display is not recommended\n");
-          printf(" *********************************************\n");
-          fflush(stdin);
-          fgets(tempbuf,sizeof(tempbuf),stdin);
-          sscanf(tempbuf,"%d",&realtime_display);
-          fflush(stdin);
-      }
-
-
-      if (realtime_display)
-      {
-          printf(" *********************************************\n");
-          printf(" ENTER THE CLIP FPS\n");
-          printf(" Exception: Timestamp extracted from clips will be used.\n");
-          printf(" *********************************************\n");
-          fflush(stdin);
-          fgets(tempbuf,sizeof(tempbuf),stdin);
-          sscanf(tempbuf,"%d",&fps);
-          fflush(stdin);
-          timestampInterval = 1000000/fps;
-      }
-
-      printf(" *********************************************\n");
-      printf(" ENTER THE COLOR FORMAT \n");
-      printf(" 0 --> Semiplanar \n 1 --> Tile Mode\n");
-      printf(" *********************************************\n");
-      fflush(stdin);
-      fgets(tempbuf,sizeof(tempbuf),stdin);
-      sscanf(tempbuf,"%d",&color_fmt_type);
-      fflush(stdin);
-
-      if (thumbnailMode != 1) {
-          printf(" *********************************************\n");
-          printf(" Output picture order option: \n");
-          printf(" *********************************************\n");
-          printf(" 0 --> Display order\n 1 --> Decode order\n");
-          fflush(stdin);
-          fgets(tempbuf,sizeof(tempbuf),stdin);
-          sscanf(tempbuf,"%d",&pic_order);
-          fflush(stdin);
-
-          printf(" *********************************************\n");
-          printf(" Number of frames to decode: \n");
-          printf(" 0 ---> decode all frames: \n");
-          printf(" *********************************************\n");
-          fflush(stdin);
-          fgets(tempbuf,sizeof(tempbuf),stdin);
-          sscanf(tempbuf,"%d",&num_frames_to_decode);
-          fflush(stdin);
-      }
-    }
-    if (file_type_option >= FILE_TYPE_COMMON_CODEC_MAX)
-    {
-      switch (codec_format_option)
-      {
-        case CODEC_FORMAT_H264:
-          file_type_option = (file_type)(FILE_TYPE_START_OF_H264_SPECIFIC + file_type_option - FILE_TYPE_COMMON_CODEC_MAX);
-          break;
-        case CODEC_FORMAT_DIVX:
-          file_type_option = (file_type)(FILE_TYPE_START_OF_DIVX_SPECIFIC + file_type_option - FILE_TYPE_COMMON_CODEC_MAX);
-          break;
-        case CODEC_FORMAT_MP4:
-        case CODEC_FORMAT_H263:
-          file_type_option = (file_type)(FILE_TYPE_START_OF_MP4_SPECIFIC + file_type_option - FILE_TYPE_COMMON_CODEC_MAX);
-          break;
-        case CODEC_FORMAT_VC1:
-          file_type_option = (file_type)(FILE_TYPE_START_OF_VC1_SPECIFIC + file_type_option - FILE_TYPE_COMMON_CODEC_MAX);
-          break;
-        case CODEC_FORMAT_MPEG2:
-          file_type_option = (file_type)(FILE_TYPE_START_OF_MPEG2_SPECIFIC + file_type_option - FILE_TYPE_COMMON_CODEC_MAX);
-          break;
-#ifdef _MSM8974_
-	case CODEC_FORMAT_VP8:
-	break;
+        printf(" *********************************************\n");
+        printf(" ENTER THE TEST CASE YOU WOULD LIKE TO EXECUTE\n");
+        printf(" *********************************************\n");
+        printf(" 1--> PER ACCESS UNIT CLIP (.dat). Clip only available for H264 and Mpeg4\n");
+        printf(" 2--> ARBITRARY BYTES (need .264/.264c/.m4v/.263/.rcv/.vc1/.m2v)\n");
+        if (codec_format_option == CODEC_FORMAT_H264) {
+            printf(" 3--> NAL LENGTH SIZE CLIP (.264c)\n");
+            printf(" 4--> START CODE BASED CLIP (.264/.h264)\n");
+        } else if ( (codec_format_option == CODEC_FORMAT_MP4) || (codec_format_option == CODEC_FORMAT_H263) ) {
+            printf(" 3--> MP4 VOP or H263 P0 SHORT HEADER START CODE CLIP (.m4v or .263)\n");
+        } else if (codec_format_option == CODEC_FORMAT_VC1) {
+            printf(" 3--> VC1 clip Simple/Main Profile (.rcv)\n");
+            printf(" 4--> VC1 clip Advance Profile (.vc1)\n");
+        } else if (codec_format_option == CODEC_FORMAT_DIVX) {
+            printf(" 3--> DivX 4, 5, 6 clip (.cmp)\n");
+#ifdef MAX_RES_1080P
+            printf(" 4--> DivX 3.11 clip \n");
 #endif
-        default:
-          printf("Error: Unknown code %d\n", codec_format_option);
-      }
+        } else if (codec_format_option == CODEC_FORMAT_MPEG2) {
+            printf(" 3--> MPEG2 START CODE CLIP (.m2v)\n");
+        }
+#ifdef _MSM8974_
+        else if (codec_format_option == CODEC_FORMAT_VP8) {
+            printf(" 61--> VP8 START CODE CLIP (.ivf)\n");
+        }
+#endif
+        fflush(stdin);
+        fgets(tempbuf,sizeof(tempbuf),stdin);
+        sscanf(tempbuf,"%d",&file_type_option);
+#ifdef _MSM8974_
+        if (codec_format_option == CODEC_FORMAT_VP8) {
+            file_type_option = FILE_TYPE_VP8;
+        }
+#endif
+        fflush(stdin);
+        if (codec_format_option == CODEC_FORMAT_H264 && file_type_option == 3) {
+            printf(" Enter Nal length size [2 or 4] \n");
+            fgets(tempbuf,sizeof(tempbuf),stdin);
+            sscanf(tempbuf,"%d",&nalSize);
+            if (nalSize != 2 && nalSize != 4) {
+                printf("Error - Can't pass NAL length size = %d\n", nalSize);
+                return -1;
+            }
+        }
+
+        printf(" *********************************************\n");
+        printf(" Output buffer option:\n");
+        printf(" *********************************************\n");
+        printf(" 0 --> No display and no YUV log\n");
+        printf(" 1 --> Diplay YUV\n");
+        printf(" 2 --> Take YUV log\n");
+        printf(" 3 --> Display YUV and take YUV log\n");
+        fflush(stdin);
+        fgets(tempbuf,sizeof(tempbuf),stdin);
+        sscanf(tempbuf,"%d",&outputOption);
+        fflush(stdin);
+
+        printf(" *********************************************\n");
+        printf(" ENTER THE TEST CASE YOU WOULD LIKE TO EXECUTE\n");
+        printf(" *********************************************\n");
+        printf(" 1 --> Play the clip till the end\n");
+        printf(" 2 --> Run compliance test. Do NOT expect any display for most option. \n");
+        printf("       Please only see \"TEST SUCCESSFULL\" to indicate test pass\n");
+        printf(" 3 --> Thumbnail decode mode\n");
+        fflush(stdin);
+        fgets(tempbuf,sizeof(tempbuf),stdin);
+        sscanf(tempbuf,"%d",&test_option);
+        fflush(stdin);
+        if (test_option == 3)
+            thumbnailMode = 1;
+
+        if ((outputOption == 1 || outputOption == 3) && thumbnailMode == 0) {
+            printf(" *********************************************\n");
+            printf(" ENTER THE PORTION OF DISPLAY TO USE\n");
+            printf(" *********************************************\n");
+            printf(" 0 --> Entire Screen\n");
+            printf(" 1 --> 1/4 th of the screen starting from top left corner to middle \n");
+            printf(" 2 --> 1/4 th of the screen starting from middle to top right corner \n");
+            printf(" 3 --> 1/4 th of the screen starting from middle to bottom left \n");
+            printf(" 4 --> 1/4 th of the screen starting from middle to bottom right \n");
+            printf("       Please only see \"TEST SUCCESSFULL\" to indidcate test pass\n");
+            fflush(stdin);
+            fgets(tempbuf,sizeof(tempbuf),stdin);
+            sscanf(tempbuf,"%d",&displayWindow);
+            fflush(stdin);
+            if (displayWindow > 0) {
+                printf(" Curently display window 0 only supported; ignoring other values\n");
+                displayWindow = 0;
+            }
+        }
+
+        if ((outputOption == 1 || outputOption == 3) && thumbnailMode == 0) {
+            printf(" *********************************************\n");
+            printf(" DO YOU WANT TEST APP TO RENDER in Real time \n");
+            printf(" 0 --> NO\n 1 --> YES\n");
+            printf(" Warning: For H264, it require one NAL per frame clip.\n");
+            printf("          For Arbitrary bytes option, Real time display is not recommended\n");
+            printf(" *********************************************\n");
+            fflush(stdin);
+            fgets(tempbuf,sizeof(tempbuf),stdin);
+            sscanf(tempbuf,"%d",&realtime_display);
+            fflush(stdin);
+        }
+
+
+        if (realtime_display) {
+            printf(" *********************************************\n");
+            printf(" ENTER THE CLIP FPS\n");
+            printf(" Exception: Timestamp extracted from clips will be used.\n");
+            printf(" *********************************************\n");
+            fflush(stdin);
+            fgets(tempbuf,sizeof(tempbuf),stdin);
+            sscanf(tempbuf,"%d",&fps);
+            fflush(stdin);
+            timestampInterval = 1000000/fps;
+        }
+
+        printf(" *********************************************\n");
+        printf(" ENTER THE COLOR FORMAT \n");
+        printf(" 0 --> Semiplanar \n 1 --> Tile Mode\n");
+        printf(" *********************************************\n");
+        fflush(stdin);
+        fgets(tempbuf,sizeof(tempbuf),stdin);
+        sscanf(tempbuf,"%d",&color_fmt_type);
+        fflush(stdin);
+
+        if (thumbnailMode != 1) {
+            printf(" *********************************************\n");
+            printf(" Output picture order option: \n");
+            printf(" *********************************************\n");
+            printf(" 0 --> Display order\n 1 --> Decode order\n");
+            fflush(stdin);
+            fgets(tempbuf,sizeof(tempbuf),stdin);
+            sscanf(tempbuf,"%d",&pic_order);
+            fflush(stdin);
+
+            printf(" *********************************************\n");
+            printf(" Number of frames to decode: \n");
+            printf(" 0 ---> decode all frames: \n");
+            printf(" *********************************************\n");
+            fflush(stdin);
+            fgets(tempbuf,sizeof(tempbuf),stdin);
+            sscanf(tempbuf,"%d",&num_frames_to_decode);
+            fflush(stdin);
+        }
+    }
+    if (file_type_option >= FILE_TYPE_COMMON_CODEC_MAX) {
+        switch (codec_format_option) {
+            case CODEC_FORMAT_H264:
+                file_type_option = (file_type)(FILE_TYPE_START_OF_H264_SPECIFIC + file_type_option - FILE_TYPE_COMMON_CODEC_MAX);
+                break;
+            case CODEC_FORMAT_DIVX:
+                file_type_option = (file_type)(FILE_TYPE_START_OF_DIVX_SPECIFIC + file_type_option - FILE_TYPE_COMMON_CODEC_MAX);
+                break;
+            case CODEC_FORMAT_MP4:
+            case CODEC_FORMAT_H263:
+                file_type_option = (file_type)(FILE_TYPE_START_OF_MP4_SPECIFIC + file_type_option - FILE_TYPE_COMMON_CODEC_MAX);
+                break;
+            case CODEC_FORMAT_VC1:
+                file_type_option = (file_type)(FILE_TYPE_START_OF_VC1_SPECIFIC + file_type_option - FILE_TYPE_COMMON_CODEC_MAX);
+                break;
+            case CODEC_FORMAT_MPEG2:
+                file_type_option = (file_type)(FILE_TYPE_START_OF_MPEG2_SPECIFIC + file_type_option - FILE_TYPE_COMMON_CODEC_MAX);
+                break;
+#ifdef _MSM8974_
+            case CODEC_FORMAT_VP8:
+                break;
+#endif
+            default:
+                printf("Error: Unknown code %d\n", codec_format_option);
+        }
     }
 
     CONFIG_VERSION_SIZE(picture_order);
     picture_order.eOutputPictureOrder = QOMX_VIDEO_DISPLAY_ORDER;
     if (pic_order == 1)
-      picture_order.eOutputPictureOrder = QOMX_VIDEO_DECODE_ORDER;
+        picture_order.eOutputPictureOrder = QOMX_VIDEO_DECODE_ORDER;
 
-    if (outputOption == 0)
-    {
-      displayYuv = 0;
-      takeYuvLog = 0;
-      realtime_display = 0;
-    }
-    else if (outputOption == 1)
-    {
-      displayYuv = 1;
-    }
-    else if (outputOption == 2)
-    {
-      takeYuvLog = 1;
-      realtime_display = 0;
-    }
-    else if (outputOption == 3)
-    {
-      displayYuv = 1;
-      takeYuvLog = !realtime_display;
-    }
-    else
-    {
-      printf("Wrong option. Assume you want to see the YUV display\n");
-      displayYuv = 1;
+    if (outputOption == 0) {
+        displayYuv = 0;
+        takeYuvLog = 0;
+        realtime_display = 0;
+    } else if (outputOption == 1) {
+        displayYuv = 1;
+    } else if (outputOption == 2) {
+        takeYuvLog = 1;
+        realtime_display = 0;
+    } else if (outputOption == 3) {
+        displayYuv = 1;
+        takeYuvLog = !realtime_display;
+    } else {
+        printf("Wrong option. Assume you want to see the YUV display\n");
+        displayYuv = 1;
     }
 
-    if (test_option == 2)
-    {
-      printf(" *********************************************\n");
-      printf(" ENTER THE COMPLIANCE TEST YOU WOULD LIKE TO EXECUTE\n");
-      printf(" *********************************************\n");
-      printf(" 1 --> Call Free Handle at the OMX_StateLoaded\n");
-      printf(" 2 --> Call Free Handle at the OMX_StateIdle\n");
-      printf(" 3 --> Call Free Handle at the OMX_StateExecuting\n");
-      printf(" 4 --> Call Free Handle at the OMX_StatePause\n");
-      fflush(stdin);
-      fgets(tempbuf,sizeof(tempbuf),stdin);
-      sscanf(tempbuf,"%d",&freeHandle_option);
-      fflush(stdin);
-    }
-    else
-    {
-      freeHandle_option = (freeHandle_test)0;
+    if (test_option == 2) {
+        printf(" *********************************************\n");
+        printf(" ENTER THE COMPLIANCE TEST YOU WOULD LIKE TO EXECUTE\n");
+        printf(" *********************************************\n");
+        printf(" 1 --> Call Free Handle at the OMX_StateLoaded\n");
+        printf(" 2 --> Call Free Handle at the OMX_StateIdle\n");
+        printf(" 3 --> Call Free Handle at the OMX_StateExecuting\n");
+        printf(" 4 --> Call Free Handle at the OMX_StatePause\n");
+        fflush(stdin);
+        fgets(tempbuf,sizeof(tempbuf),stdin);
+        sscanf(tempbuf,"%d",&freeHandle_option);
+        fflush(stdin);
+    } else {
+        freeHandle_option = (freeHandle_test)0;
     }
 
     printf("Input values: inputfilename[%s]\n", in_filename);
@@ -1668,56 +1541,46 @@
     pthread_mutex_init(&etb_lock, 0);
     pthread_mutex_init(&fbd_lock, 0);
     pthread_mutex_init(&enable_lock, 0);
-    if (-1 == sem_init(&etb_sem, 0, 0))
-    {
-      printf("Error - sem_init failed %d\n", errno);
+    if (-1 == sem_init(&etb_sem, 0, 0)) {
+        printf("Error - sem_init failed %d\n", errno);
     }
-    if (-1 == sem_init(&fbd_sem, 0, 0))
-    {
-      printf("Error - sem_init failed %d\n", errno);
+    if (-1 == sem_init(&fbd_sem, 0, 0)) {
+        printf("Error - sem_init failed %d\n", errno);
     }
-    if (-1 == sem_init(&seq_sem, 0, 0))
-    {
-      printf("Error - sem_init failed %d\n", errno);
+    if (-1 == sem_init(&seq_sem, 0, 0)) {
+        printf("Error - sem_init failed %d\n", errno);
     }
-    if (-1 == sem_init(&in_flush_sem, 0, 0))
-    {
-      printf("Error - sem_init failed %d\n", errno);
+    if (-1 == sem_init(&in_flush_sem, 0, 0)) {
+        printf("Error - sem_init failed %d\n", errno);
     }
-    if (-1 == sem_init(&out_flush_sem, 0, 0))
-    {
-      printf("Error - sem_init failed %d\n", errno);
+    if (-1 == sem_init(&out_flush_sem, 0, 0)) {
+        printf("Error - sem_init failed %d\n", errno);
     }
     etb_queue = alloc_queue();
-    if (etb_queue == NULL)
-    {
-      printf("\n Error in Creating etb_queue\n");
-      return -1;
+    if (etb_queue == NULL) {
+        printf("\n Error in Creating etb_queue\n");
+        return -1;
     }
 
     fbd_queue = alloc_queue();
-    if (fbd_queue == NULL)
-    {
-      printf("\n Error in Creating fbd_queue\n");
-      free_queue(etb_queue);
-      return -1;
+    if (fbd_queue == NULL) {
+        printf("\n Error in Creating fbd_queue\n");
+        free_queue(etb_queue);
+        return -1;
     }
 
-    if(0 != pthread_create(&fbd_thread_id, NULL, fbd_thread, NULL))
-    {
-      printf("\n Error in Creating fbd_thread \n");
-      free_queue(etb_queue);
-      free_queue(fbd_queue);
-      return -1;
+    if (0 != pthread_create(&fbd_thread_id, NULL, fbd_thread, NULL)) {
+        printf("\n Error in Creating fbd_thread \n");
+        free_queue(etb_queue);
+        free_queue(fbd_queue);
+        return -1;
     }
 
-    if (displayYuv)
-    {
-      if (open_display() != 0)
-      {
-        printf("\n Error opening display! Video won't be displayed...");
-        displayYuv = 0;
-      }
+    if (displayYuv) {
+        if (open_display() != 0) {
+            printf("\n Error opening display! Video won't be displayed...");
+            displayYuv = 0;
+        }
     }
 
     run_tests();
@@ -1728,163 +1591,141 @@
     pthread_mutex_destroy(&enable_lock);
     pthread_cond_destroy(&eos_cond);
     pthread_mutex_destroy(&eos_lock);
-    if (-1 == sem_destroy(&etb_sem))
-    {
-      DEBUG_PRINT_ERROR("Error - sem_destroy failed %d\n", errno);
+    if (-1 == sem_destroy(&etb_sem)) {
+        DEBUG_PRINT_ERROR("Error - sem_destroy failed %d\n", errno);
     }
-    if (-1 == sem_destroy(&fbd_sem))
-    {
-      DEBUG_PRINT_ERROR("Error - sem_destroy failed %d\n", errno);
+    if (-1 == sem_destroy(&fbd_sem)) {
+        DEBUG_PRINT_ERROR("Error - sem_destroy failed %d\n", errno);
     }
-    if (-1 == sem_destroy(&seq_sem))
-    {
-      DEBUG_PRINT_ERROR("Error - sem_destroy failed %d\n", errno);
+    if (-1 == sem_destroy(&seq_sem)) {
+        DEBUG_PRINT_ERROR("Error - sem_destroy failed %d\n", errno);
     }
-    if (-1 == sem_destroy(&in_flush_sem))
-    {
-      DEBUG_PRINT_ERROR("Error - sem_destroy failed %d\n", errno);
+    if (-1 == sem_destroy(&in_flush_sem)) {
+        DEBUG_PRINT_ERROR("Error - sem_destroy failed %d\n", errno);
     }
-    if (-1 == sem_destroy(&out_flush_sem))
-    {
-      DEBUG_PRINT_ERROR("Error - sem_destroy failed %d\n", errno);
+    if (-1 == sem_destroy(&out_flush_sem)) {
+        DEBUG_PRINT_ERROR("Error - sem_destroy failed %d\n", errno);
     }
     if (displayYuv)
-      close_display();
+        close_display();
     return 0;
 }
 
 int run_tests()
 {
-  int cmd_error = 0;
-  DEBUG_PRINT("Inside %s\n", __FUNCTION__);
-  waitForPortSettingsChanged = 1;
+    int cmd_error = 0;
+    DEBUG_PRINT("Inside %s\n", __FUNCTION__);
+    waitForPortSettingsChanged = 1;
 
-  if(file_type_option == FILE_TYPE_DAT_PER_AU) {
-    Read_Buffer = Read_Buffer_From_DAT_File;
-  }
-  else if(file_type_option == FILE_TYPE_ARBITRARY_BYTES) {
-    Read_Buffer = Read_Buffer_ArbitraryBytes;
-  }
-  else if(codec_format_option == CODEC_FORMAT_H264) {
-    if (file_type_option == FILE_TYPE_264_NAL_SIZE_LENGTH) {
-       Read_Buffer = Read_Buffer_From_Size_Nal;
-    } else if (file_type_option == FILE_TYPE_264_START_CODE_BASED) {
-       Read_Buffer = Read_Buffer_From_H264_Start_Code_File;
-    } else {
-       DEBUG_PRINT_ERROR("Invalid file_type_option(%d) for H264", file_type_option);
-       return -1;
-    }
-  }
-  else if((codec_format_option == CODEC_FORMAT_H263) ||
-          (codec_format_option == CODEC_FORMAT_MP4)) {
-    Read_Buffer = Read_Buffer_From_Vop_Start_Code_File;
-  }
-  else if (codec_format_option == CODEC_FORMAT_MPEG2) {
-    Read_Buffer = Read_Buffer_From_Mpeg2_Start_Code;
-  }
-  else if(file_type_option == FILE_TYPE_DIVX_4_5_6) {
-    Read_Buffer = Read_Buffer_From_DivX_4_5_6_File;
-  }
-#ifdef MAX_RES_1080P
-  else if(file_type_option == FILE_TYPE_DIVX_311) {
-    Read_Buffer = Read_Buffer_From_DivX_311_File;
-  }
-#endif
-  else if(file_type_option == FILE_TYPE_RCV) {
-    Read_Buffer = Read_Buffer_From_RCV_File;
-  }
-#ifdef _MSM8974_
-  else if(file_type_option == FILE_TYPE_VP8) {
-    Read_Buffer = Read_Buffer_From_VP8_File;
-  }
-#endif
-  else if(file_type_option == FILE_TYPE_VC1) {
-    Read_Buffer = Read_Buffer_From_VC1_File;
-  }
-
-  DEBUG_PRINT("file_type_option %d!\n", file_type_option);
-
-  switch(file_type_option)
-  {
-    case FILE_TYPE_DAT_PER_AU:
-    case FILE_TYPE_ARBITRARY_BYTES:
-    case FILE_TYPE_264_START_CODE_BASED:
-    case FILE_TYPE_264_NAL_SIZE_LENGTH:
-    case FILE_TYPE_PICTURE_START_CODE:
-    case FILE_TYPE_MPEG2_START_CODE:
-    case FILE_TYPE_RCV:
-    case FILE_TYPE_VC1:
-#ifdef _MSM8974_
-    case FILE_TYPE_VP8:
-#endif
-    case FILE_TYPE_DIVX_4_5_6:
-#ifdef MAX_RES_1080P
-      case FILE_TYPE_DIVX_311:
-#endif
-      if(Init_Decoder()!= 0x00)
-      {
-        DEBUG_PRINT_ERROR("Error - Decoder Init failed\n");
-        return -1;
-      }
-      if(Play_Decoder() != 0x00)
-      {
-        return -1;
-      }
-      break;
-    default:
-      DEBUG_PRINT_ERROR("Error - Invalid Entry...%d\n",file_type_option);
-      break;
-  }
-
-  anti_flickering = true;
-  if(strlen(seq_file_name))
-  {
-        seqFile = fopen (seq_file_name, "rb");
-        if (seqFile == NULL)
-        {
-            DEBUG_PRINT_ERROR("Error - Seq file %s could NOT be opened\n",
-                              seq_file_name);
+    if (file_type_option == FILE_TYPE_DAT_PER_AU) {
+        Read_Buffer = Read_Buffer_From_DAT_File;
+    } else if (file_type_option == FILE_TYPE_ARBITRARY_BYTES) {
+        Read_Buffer = Read_Buffer_ArbitraryBytes;
+    } else if (codec_format_option == CODEC_FORMAT_H264) {
+        if (file_type_option == FILE_TYPE_264_NAL_SIZE_LENGTH) {
+            Read_Buffer = Read_Buffer_From_Size_Nal;
+        } else if (file_type_option == FILE_TYPE_264_START_CODE_BASED) {
+            Read_Buffer = Read_Buffer_From_H264_Start_Code_File;
+        } else {
+            DEBUG_PRINT_ERROR("Invalid file_type_option(%d) for H264", file_type_option);
             return -1;
         }
-        else
-        {
+    } else if ((codec_format_option == CODEC_FORMAT_H263) ||
+            (codec_format_option == CODEC_FORMAT_MP4)) {
+        Read_Buffer = Read_Buffer_From_Vop_Start_Code_File;
+    } else if (codec_format_option == CODEC_FORMAT_MPEG2) {
+        Read_Buffer = Read_Buffer_From_Mpeg2_Start_Code;
+    } else if (file_type_option == FILE_TYPE_DIVX_4_5_6) {
+        Read_Buffer = Read_Buffer_From_DivX_4_5_6_File;
+    }
+#ifdef MAX_RES_1080P
+    else if (file_type_option == FILE_TYPE_DIVX_311) {
+        Read_Buffer = Read_Buffer_From_DivX_311_File;
+    }
+#endif
+    else if (file_type_option == FILE_TYPE_RCV) {
+        Read_Buffer = Read_Buffer_From_RCV_File;
+    }
+#ifdef _MSM8974_
+    else if (file_type_option == FILE_TYPE_VP8) {
+        Read_Buffer = Read_Buffer_From_VP8_File;
+    }
+#endif
+    else if (file_type_option == FILE_TYPE_VC1) {
+        Read_Buffer = Read_Buffer_From_VC1_File;
+    }
+
+    DEBUG_PRINT("file_type_option %d!\n", file_type_option);
+
+    switch (file_type_option) {
+        case FILE_TYPE_DAT_PER_AU:
+        case FILE_TYPE_ARBITRARY_BYTES:
+        case FILE_TYPE_264_START_CODE_BASED:
+        case FILE_TYPE_264_NAL_SIZE_LENGTH:
+        case FILE_TYPE_PICTURE_START_CODE:
+        case FILE_TYPE_MPEG2_START_CODE:
+        case FILE_TYPE_RCV:
+        case FILE_TYPE_VC1:
+#ifdef _MSM8974_
+        case FILE_TYPE_VP8:
+#endif
+        case FILE_TYPE_DIVX_4_5_6:
+#ifdef MAX_RES_1080P
+        case FILE_TYPE_DIVX_311:
+#endif
+            if (Init_Decoder()!= 0x00) {
+                DEBUG_PRINT_ERROR("Error - Decoder Init failed\n");
+                return -1;
+            }
+            if (Play_Decoder() != 0x00) {
+                return -1;
+            }
+            break;
+        default:
+            DEBUG_PRINT_ERROR("Error - Invalid Entry...%d\n",file_type_option);
+            break;
+    }
+
+    anti_flickering = true;
+    if (strlen(seq_file_name)) {
+        seqFile = fopen (seq_file_name, "rb");
+        if (seqFile == NULL) {
+            DEBUG_PRINT_ERROR("Error - Seq file %s could NOT be opened\n",
+                    seq_file_name);
+            return -1;
+        } else {
             DEBUG_PRINT("Seq file %s is opened \n", seq_file_name);
             seq_enabled = 1;
             anti_flickering = false;
         }
-  }
+    }
 
-  pthread_mutex_lock(&eos_lock);
-  while (bOutputEosReached == false && cmd_error == 0)
-  {
-    if(seq_enabled)
-    {
-        pthread_mutex_unlock(&eos_lock);
-        if(!get_next_command(seqFile))
-            cmd_error = process_current_command(curr_seq_command);
-        else
-        {
-            printf("\n Error in get_next_cmd or EOF");
-            seq_enabled = 0;
+    pthread_mutex_lock(&eos_lock);
+    while (bOutputEosReached == false && cmd_error == 0) {
+        if (seq_enabled) {
+            pthread_mutex_unlock(&eos_lock);
+            if (!get_next_command(seqFile))
+                cmd_error = process_current_command(curr_seq_command);
+            else {
+                printf("\n Error in get_next_cmd or EOF");
+                seq_enabled = 0;
+            }
+            pthread_mutex_lock(&eos_lock);
+        } else
+            pthread_cond_wait(&eos_cond, &eos_lock);
+
+        if (currentStatus == PORT_SETTING_CHANGE_STATE) {
+            pthread_mutex_unlock(&eos_lock);
+            cmd_error = output_port_reconfig();
+            pthread_mutex_lock(&eos_lock);
         }
-        pthread_mutex_lock(&eos_lock);
     }
-    else
-        pthread_cond_wait(&eos_cond, &eos_lock);
+    pthread_mutex_unlock(&eos_lock);
 
-    if (currentStatus == PORT_SETTING_CHANGE_STATE)
-    {
-      pthread_mutex_unlock(&eos_lock);
-      cmd_error = output_port_reconfig();
-      pthread_mutex_lock(&eos_lock);
-    }
-  }
-  pthread_mutex_unlock(&eos_lock);
-
-  // Wait till EOS is reached...
-  if(bOutputEosReached)
-    do_freeHandle_and_clean_up(currentStatus == ERROR_STATE);
-  return 0;
+    // Wait till EOS is reached...
+    if (bOutputEosReached)
+        do_freeHandle_and_clean_up(currentStatus == ERROR_STATE);
+    return 0;
 }
 
 int Init_Decoder()
@@ -1905,11 +1746,10 @@
     DEBUG_PRINT("\nInitializing OpenMAX Core....\n");
     omxresult = OMX_Init();
 
-    if(OMX_ErrorNone != omxresult) {
+    if (OMX_ErrorNone != omxresult) {
         DEBUG_PRINT_ERROR("\n Failed to Init OpenMAX core");
         return -1;
-    }
-    else {
+    } else {
         DEBUG_PRINT_ERROR("\nOpenMAX Core Init Done\n");
     }
 
@@ -1917,8 +1757,7 @@
     OMX_GetComponentsOfRole(role, &total, 0);
     DEBUG_PRINT("\nTotal components of role=%s :%d", role, total);
 
-    if(total)
-    {
+    if (total) {
         /* Allocate memory for pointers to component name */
         OMX_U8** vidCompNames = (OMX_U8**)malloc((sizeof(OMX_U8*))*total);
         if (vidCompNames == NULL) {
@@ -1940,135 +1779,98 @@
             free(vidCompNames[i]);
         }
         free(vidCompNames);
-    }
-    else {
+    } else {
         DEBUG_PRINT_ERROR("No components found with Role:%s", role);
     }
 
-    if (codec_format_option == CODEC_FORMAT_H264)
-    {
-      strlcpy(vdecCompNames, "OMX.qcom.video.decoder.avc", 27);
-      //strlcpy(vdecCompNames, "OMX.SEC.qcom.video.decoder.avc", 31);
-    }
-    else if (codec_format_option == CODEC_FORMAT_MP4)
-    {
-      strlcpy(vdecCompNames, "OMX.qcom.video.decoder.mpeg4", 29);
-    }
-    else if (codec_format_option == CODEC_FORMAT_H263)
-    {
-      strlcpy(vdecCompNames, "OMX.qcom.video.decoder.h263", 28);
-    }
-    else if (codec_format_option == CODEC_FORMAT_VC1)
-    {
-      strlcpy(vdecCompNames, "OMX.qcom.video.decoder.vc1", 27);
-    }
-    else if (codec_format_option == CODEC_FORMAT_MPEG2)
-    {
-      strlcpy(vdecCompNames, "OMX.qcom.video.decoder.mpeg2", 29);
-    }
-    else if (file_type_option == FILE_TYPE_RCV)
-    {
-      strlcpy(vdecCompNames, "OMX.qcom.video.decoder.wmv", 27);
-    }
-    else if (file_type_option == FILE_TYPE_DIVX_4_5_6)
-    {
-      strlcpy(vdecCompNames, "OMX.qcom.video.decoder.divx", 28);
+    if (codec_format_option == CODEC_FORMAT_H264) {
+        strlcpy(vdecCompNames, "OMX.qcom.video.decoder.avc", 27);
+        //strlcpy(vdecCompNames, "OMX.SEC.qcom.video.decoder.avc", 31);
+    } else if (codec_format_option == CODEC_FORMAT_MP4) {
+        strlcpy(vdecCompNames, "OMX.qcom.video.decoder.mpeg4", 29);
+    } else if (codec_format_option == CODEC_FORMAT_H263) {
+        strlcpy(vdecCompNames, "OMX.qcom.video.decoder.h263", 28);
+    } else if (codec_format_option == CODEC_FORMAT_VC1) {
+        strlcpy(vdecCompNames, "OMX.qcom.video.decoder.vc1", 27);
+    } else if (codec_format_option == CODEC_FORMAT_MPEG2) {
+        strlcpy(vdecCompNames, "OMX.qcom.video.decoder.mpeg2", 29);
+    } else if (file_type_option == FILE_TYPE_RCV) {
+        strlcpy(vdecCompNames, "OMX.qcom.video.decoder.wmv", 27);
+    } else if (file_type_option == FILE_TYPE_DIVX_4_5_6) {
+        strlcpy(vdecCompNames, "OMX.qcom.video.decoder.divx", 28);
     }
 #ifdef _MSM8974_
-    else if (codec_format_option == CODEC_FORMAT_VP8)
-    {
-      strlcpy(vdecCompNames, "OMX.qcom.video.decoder.vp8", 27);
+    else if (codec_format_option == CODEC_FORMAT_VP8) {
+        strlcpy(vdecCompNames, "OMX.qcom.video.decoder.vp8", 27);
     }
 #endif
-    else if (codec_format_option == CODEC_FORMAT_HEVC)
-    {
-      strlcpy(vdecCompNames, "OMX.qcom.video.decoder.hevc", 28);
+    else if (codec_format_option == CODEC_FORMAT_HEVC) {
+        strlcpy(vdecCompNames, "OMX.qcom.video.decoder.hevc", 28);
     }
 #ifdef MAX_RES_1080P
-    else if (file_type_option == FILE_TYPE_DIVX_311)
-    {
-      strlcpy(vdecCompNames, "OMX.qcom.video.decoder.divx311", 31);
+    else if (file_type_option == FILE_TYPE_DIVX_311) {
+        strlcpy(vdecCompNames, "OMX.qcom.video.decoder.divx311", 31);
     }
 #endif
-    else
-    {
-      DEBUG_PRINT_ERROR("Error: Unsupported codec %d\n", codec_format_option);
-      return -1;
+    else {
+        DEBUG_PRINT_ERROR("Error: Unsupported codec %d\n", codec_format_option);
+        return -1;
     }
 
     omxresult = OMX_GetHandle((OMX_HANDLETYPE*)(&dec_handle),
-                              (OMX_STRING)vdecCompNames, NULL, &call_back);
+            (OMX_STRING)vdecCompNames, NULL, &call_back);
     if (FAILED(omxresult)) {
         DEBUG_PRINT_ERROR("\nFailed to Load the component:%s\n", vdecCompNames);
         return -1;
-    }
-    else
-    {
+    } else {
         DEBUG_PRINT("\nComponent %s is in LOADED state\n", vdecCompNames);
     }
 
     QOMX_VIDEO_QUERY_DECODER_INSTANCES decoder_instances;
     omxresult = OMX_GetConfig(dec_handle,
-                 (OMX_INDEXTYPE)OMX_QcomIndexQueryNumberOfVideoDecInstance,
-                              &decoder_instances);
+            (OMX_INDEXTYPE)OMX_QcomIndexQueryNumberOfVideoDecInstance,
+            &decoder_instances);
     DEBUG_PRINT("\n Number of decoder instances %d",
-                      decoder_instances.nNumOfInstances);
+            decoder_instances.nNumOfInstances);
 
     /* Get the port information */
     CONFIG_VERSION_SIZE(portParam);
     omxresult = OMX_GetParameter(dec_handle, OMX_IndexParamVideoInit,
-                                (OMX_PTR)&portParam);
+            (OMX_PTR)&portParam);
 
-    if(FAILED(omxresult)) {
+    if (FAILED(omxresult)) {
         DEBUG_PRINT_ERROR("ERROR - Failed to get Port Param\n");
         return -1;
-    }
-    else
-    {
+    } else {
         DEBUG_PRINT("portParam.nPorts:%d\n", portParam.nPorts);
         DEBUG_PRINT("portParam.nStartPortNumber:%d\n", portParam.nStartPortNumber);
     }
 
     /* Set the compression format on i/p port */
-    if (codec_format_option == CODEC_FORMAT_H264)
-    {
-      portFmt.format.video.eCompressionFormat = OMX_VIDEO_CodingAVC;
-    }
-    else if (codec_format_option == CODEC_FORMAT_MP4)
-    {
-      portFmt.format.video.eCompressionFormat = OMX_VIDEO_CodingMPEG4;
-    }
-    else if (codec_format_option == CODEC_FORMAT_H263)
-    {
-      portFmt.format.video.eCompressionFormat = OMX_VIDEO_CodingH263;
-    }
-    else if (codec_format_option == CODEC_FORMAT_VC1)
-    {
-      portFmt.format.video.eCompressionFormat = OMX_VIDEO_CodingWMV;
-    }
-    else if (codec_format_option == CODEC_FORMAT_DIVX)
-    {
-      portFmt.format.video.eCompressionFormat =
-          (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
-    }
-    else if (codec_format_option == CODEC_FORMAT_MPEG2)
-    {
-      portFmt.format.video.eCompressionFormat = OMX_VIDEO_CodingMPEG2;
-    }
-    else if (codec_format_option == CODEC_FORMAT_HEVC)
-    {
-      portFmt.format.video.eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingHevc;
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("Error: Unsupported codec %d\n", codec_format_option);
+    if (codec_format_option == CODEC_FORMAT_H264) {
+        portFmt.format.video.eCompressionFormat = OMX_VIDEO_CodingAVC;
+    } else if (codec_format_option == CODEC_FORMAT_MP4) {
+        portFmt.format.video.eCompressionFormat = OMX_VIDEO_CodingMPEG4;
+    } else if (codec_format_option == CODEC_FORMAT_H263) {
+        portFmt.format.video.eCompressionFormat = OMX_VIDEO_CodingH263;
+    } else if (codec_format_option == CODEC_FORMAT_VC1) {
+        portFmt.format.video.eCompressionFormat = OMX_VIDEO_CodingWMV;
+    } else if (codec_format_option == CODEC_FORMAT_DIVX) {
+        portFmt.format.video.eCompressionFormat =
+            (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingDivx;
+    } else if (codec_format_option == CODEC_FORMAT_MPEG2) {
+        portFmt.format.video.eCompressionFormat = OMX_VIDEO_CodingMPEG2;
+    } else if (codec_format_option == CODEC_FORMAT_HEVC) {
+        portFmt.format.video.eCompressionFormat = (OMX_VIDEO_CODINGTYPE)QOMX_VIDEO_CodingHevc;
+    } else {
+        DEBUG_PRINT_ERROR("Error: Unsupported codec %d\n", codec_format_option);
     }
 
     if (thumbnailMode == 1) {
         QOMX_ENABLETYPE thumbNailMode;
         thumbNailMode.bEnable = OMX_TRUE;
         OMX_SetParameter(dec_handle,(OMX_INDEXTYPE)OMX_QcomIndexParamVideoSyncFrameDecodingMode,
-                     (OMX_PTR)&thumbNailMode);
+                (OMX_PTR)&thumbNailMode);
         DEBUG_PRINT("Enabled Thumbnail mode\n");
     }
 
@@ -2085,7 +1887,7 @@
     DEBUG_PRINT("Inside %s \n", __FUNCTION__);
 
     /* open the i/p and o/p files based on the video file format passed */
-    if(open_video_file()) {
+    if (open_video_file()) {
         DEBUG_PRINT_ERROR("Error in opening video file\n");
         return -1;
     }
@@ -2094,41 +1896,40 @@
     memset(&inputPortFmt, 0, sizeof(OMX_QCOM_PARAM_PORTDEFINITIONTYPE));
     CONFIG_VERSION_SIZE(inputPortFmt);
     inputPortFmt.nPortIndex = 0;  // input port
-    switch (file_type_option)
-    {
-      case FILE_TYPE_DAT_PER_AU:
-      case FILE_TYPE_PICTURE_START_CODE:
-      case FILE_TYPE_MPEG2_START_CODE:
-      case FILE_TYPE_264_START_CODE_BASED:
-      case FILE_TYPE_RCV:
-      case FILE_TYPE_VC1:
+    switch (file_type_option) {
+        case FILE_TYPE_DAT_PER_AU:
+        case FILE_TYPE_PICTURE_START_CODE:
+        case FILE_TYPE_MPEG2_START_CODE:
+        case FILE_TYPE_264_START_CODE_BASED:
+        case FILE_TYPE_RCV:
+        case FILE_TYPE_VC1:
 #ifdef MAX_RES_1080P
-      case FILE_TYPE_DIVX_311:
+        case FILE_TYPE_DIVX_311:
 #endif
-      {
-        inputPortFmt.nFramePackingFormat = OMX_QCOM_FramePacking_OnlyOneCompleteFrame;
-        break;
-      }
+            {
+                inputPortFmt.nFramePackingFormat = OMX_QCOM_FramePacking_OnlyOneCompleteFrame;
+                break;
+            }
 
-      case FILE_TYPE_ARBITRARY_BYTES:
-      case FILE_TYPE_264_NAL_SIZE_LENGTH:
-      case FILE_TYPE_DIVX_4_5_6:
-      {
-        inputPortFmt.nFramePackingFormat = OMX_QCOM_FramePacking_Arbitrary;
-        break;
-      }
+        case FILE_TYPE_ARBITRARY_BYTES:
+        case FILE_TYPE_264_NAL_SIZE_LENGTH:
+        case FILE_TYPE_DIVX_4_5_6:
+            {
+                inputPortFmt.nFramePackingFormat = OMX_QCOM_FramePacking_Arbitrary;
+                break;
+            }
 #ifdef _MSM8974_
-      case FILE_TYPE_VP8:
-      {
-        inputPortFmt.nFramePackingFormat = OMX_QCOM_FramePacking_OnlyOneCompleteFrame;
-        break;
-      }
+        case FILE_TYPE_VP8:
+            {
+                inputPortFmt.nFramePackingFormat = OMX_QCOM_FramePacking_OnlyOneCompleteFrame;
+                break;
+            }
 #endif
-      default:
-        inputPortFmt.nFramePackingFormat = OMX_QCOM_FramePacking_Unspecified;
+        default:
+            inputPortFmt.nFramePackingFormat = OMX_QCOM_FramePacking_Unspecified;
     }
     OMX_SetParameter(dec_handle,(OMX_INDEXTYPE)OMX_QcomIndexPortDefn,
-                     (OMX_PTR)&inputPortFmt);
+            (OMX_PTR)&inputPortFmt);
 #ifdef USE_EXTERN_PMEM_BUF
     OMX_QCOM_PARAM_PORTDEFINITIONTYPE outPortFmt;
     memset(&outPortFmt, 0, sizeof(OMX_QCOM_PARAM_PORTDEFINITIONTYPE));
@@ -2137,7 +1938,7 @@
     outPortFmt.nCacheAttr = OMX_QCOM_CacheAttrNone;
     outPortFmt.nMemRegion = OMX_QCOM_MemRegionSMI;
     OMX_SetParameter(dec_handle,(OMX_INDEXTYPE)OMX_QcomIndexPortDefn,
-                     (OMX_PTR)&outPortFmt);
+            (OMX_PTR)&outPortFmt);
 
     OMX_QCOM_PLATFORMPRIVATE_EXTN outPltPvtExtn;
     memset(&outPltPvtExtn, 0, sizeof(OMX_QCOM_PLATFORMPRIVATE_EXTN));
@@ -2145,36 +1946,36 @@
     outPltPvtExtn.nPortIndex = 1;  // output port
     outPltPvtExtn.type = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
     OMX_SetParameter(dec_handle,(OMX_INDEXTYPE)OMX_QcomIndexPlatformPvt,
-                     (OMX_PTR)&outPltPvtExtn);
+            (OMX_PTR)&outPltPvtExtn);
     use_external_pmem_buf = OMX_TRUE;
 #endif
     QOMX_ENABLETYPE extra_data;
     extra_data.bEnable = OMX_TRUE;
 #if 0
     OMX_SetParameter(dec_handle,(OMX_INDEXTYPE)OMX_QcomIndexParamInterlaceExtraData,
-                     (OMX_PTR)&extra_data);
+            (OMX_PTR)&extra_data);
 #endif
 #if 0
     OMX_SetParameter(dec_handle,(OMX_INDEXTYPE)OMX_QcomIndexParamConcealMBMapExtraData,
-                     (OMX_PTR)&extra_data);
+            (OMX_PTR)&extra_data);
 #endif
 #if 1
     OMX_SetParameter(dec_handle,(OMX_INDEXTYPE)OMX_QcomIndexParamFrameInfoExtraData,
-                     (OMX_PTR)&extra_data);
+            (OMX_PTR)&extra_data);
 #endif
 #ifdef TEST_TS_FROM_SEI
     OMX_SetParameter(dec_handle,(OMX_INDEXTYPE)OMX_QcomIndexParamH264TimeInfo,
-                     (OMX_PTR)&extra_data);
+            (OMX_PTR)&extra_data);
 #endif
 #if 0
     extra_data.bEnable = OMX_FALSE;
     OMX_SetParameter(dec_handle,(OMX_INDEXTYPE)OMX_QcomIndexParamConcealMBMapExtraData,
-                     (OMX_PTR)&extra_data);
+            (OMX_PTR)&extra_data);
 #endif
 #if 0
     extra_data.bEnable = OMX_TRUE;
     OMX_SetParameter(dec_handle,(OMX_INDEXTYPE)OMX_QcomIndexEnableExtnUserData,
-                     (OMX_PTR)&extra_data);
+            (OMX_PTR)&extra_data);
 #endif
     /* Query the decoder outport's min buf requirements */
     CONFIG_VERSION_SIZE(portFmt);
@@ -2186,36 +1987,36 @@
     DEBUG_PRINT("\nDec: Min Buffer Count %d\n", portFmt.nBufferCountMin);
     DEBUG_PRINT("\nDec: Buffer Size %d\n", portFmt.nBufferSize);
 
-    if(OMX_DirInput != portFmt.eDir) {
+    if (OMX_DirInput != portFmt.eDir) {
         printf ("\nDec: Expect Input Port\n");
         return -1;
     }
 #ifdef MAX_RES_1080P
-    if( (codec_format_option == CODEC_FORMAT_DIVX) &&
-        (file_type_option == FILE_TYPE_DIVX_311) ) {
+    if ( (codec_format_option == CODEC_FORMAT_DIVX) &&
+            (file_type_option == FILE_TYPE_DIVX_311) ) {
 
-            int off;
+        int off;
 
-            if ( read(inputBufferFileFd, &width, 4 ) == -1 ) {
-                DEBUG_PRINT_ERROR("\nFailed to read width for divx\n");
-                return  -1;
-            }
+        if ( read(inputBufferFileFd, &width, 4 ) == -1 ) {
+            DEBUG_PRINT_ERROR("\nFailed to read width for divx\n");
+            return  -1;
+        }
 
-            DEBUG_PRINT("\nWidth for DIVX = %d\n", width);
+        DEBUG_PRINT("\nWidth for DIVX = %d\n", width);
 
-            if ( read(inputBufferFileFd, &height, 4 ) == -1 ) {
-                DEBUG_PRINT_ERROR("\nFailed to read height for divx\n");
-                return  -1;
-            }
+        if ( read(inputBufferFileFd, &height, 4 ) == -1 ) {
+            DEBUG_PRINT_ERROR("\nFailed to read height for divx\n");
+            return  -1;
+        }
 
-            DEBUG_PRINT("\nHeight for DIVX = %u\n", height);
-            sliceheight = height;
-            stride = width;
+        DEBUG_PRINT("\nHeight for DIVX = %u\n", height);
+        sliceheight = height;
+        stride = width;
     }
 #endif
 #ifdef _MSM8974_
-    if( (codec_format_option == CODEC_FORMAT_VC1) &&
-        (file_type_option == FILE_TYPE_RCV) ) {
+    if ( (codec_format_option == CODEC_FORMAT_VC1) &&
+            (file_type_option == FILE_TYPE_RCV) ) {
         //parse struct_A data to get height and width information
         unsigned int temp;
         lseek64(inputBufferFileFd, 0, SEEK_SET);
@@ -2240,9 +2041,9 @@
             }
             lseek64(inputBufferFileFd, 0, SEEK_SET);
         }
-	if ((temp & 0xFF000000) == 0x85000000) {
-		lseek64(inputBufferFileFd, 0, SEEK_SET);
-	}
+        if ((temp & 0xFF000000) == 0x85000000) {
+            lseek64(inputBufferFileFd, 0, SEEK_SET);
+        }
         DEBUG_PRINT("\n RCV clip width = %u height = %u \n",width, height);
     }
 #endif
@@ -2258,68 +2059,57 @@
     DEBUG_PRINT("\nDec: New Min Buffer Count %d", portFmt.nBufferCountMin);
     CONFIG_VERSION_SIZE(videoportFmt);
 #ifdef MAX_RES_720P
-    if(color_fmt_type == 0)
-    {
+    if (color_fmt_type == 0) {
         color_fmt = OMX_COLOR_FormatYUV420SemiPlanar;
-    }
-    else
-    {
+    } else {
         color_fmt = (OMX_COLOR_FORMATTYPE)
-           QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka;
+            QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka;
     }
 #elif _MSM8974_
-        color_fmt = (OMX_COLOR_FORMATTYPE)
-		QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m;
+    color_fmt = (OMX_COLOR_FORMATTYPE)
+        QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m;
 #else
-       color_fmt = (OMX_COLOR_FORMATTYPE)
-           QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka;
+    color_fmt = (OMX_COLOR_FORMATTYPE)
+        QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka;
 #endif
 
-    while (ret == OMX_ErrorNone)
-    {
+    while (ret == OMX_ErrorNone) {
         videoportFmt.nPortIndex = 1;
         videoportFmt.nIndex = index;
         ret = OMX_GetParameter(dec_handle, OMX_IndexParamVideoPortFormat,
-          (OMX_PTR)&videoportFmt);
+                (OMX_PTR)&videoportFmt);
 
-        if((ret == OMX_ErrorNone) && (videoportFmt.eColorFormat ==
-           color_fmt))
-        {
+        if ((ret == OMX_ErrorNone) && (videoportFmt.eColorFormat ==
+                    color_fmt)) {
             DEBUG_PRINT("\n Format[%u] supported by OMX Decoder", color_fmt);
             break;
         }
         index++;
     }
 
-    if(ret == OMX_ErrorNone)
-    {
-        if(OMX_SetParameter(dec_handle, OMX_IndexParamVideoPortFormat,
-            (OMX_PTR)&videoportFmt) != OMX_ErrorNone)
-        {
+    if (ret == OMX_ErrorNone) {
+        if (OMX_SetParameter(dec_handle, OMX_IndexParamVideoPortFormat,
+                    (OMX_PTR)&videoportFmt) != OMX_ErrorNone) {
             DEBUG_PRINT_ERROR("\n Setting Tile format failed");
             return -1;
         }
-    }
-    else
-    {
+    } else {
         DEBUG_PRINT_ERROR("\n Error in retrieving supported color formats");
         return -1;
     }
     picture_order.nPortIndex = 1;
     DEBUG_PRINT("\nSet picture order\n");
-    if(OMX_SetParameter(dec_handle,
-	   (OMX_INDEXTYPE)OMX_QcomIndexParamVideoDecoderPictureOrder,
-       (OMX_PTR)&picture_order) != OMX_ErrorNone)
-    {
+    if (OMX_SetParameter(dec_handle,
+                (OMX_INDEXTYPE)OMX_QcomIndexParamVideoDecoderPictureOrder,
+                (OMX_PTR)&picture_order) != OMX_ErrorNone) {
         printf("\n ERROR: Setting picture order!");
         return -1;
     }
     DEBUG_PRINT("\nVideo format: W x H (%d x %d)",
-      portFmt.format.video.nFrameWidth,
-      portFmt.format.video.nFrameHeight);
-    if(codec_format_option == CODEC_FORMAT_H264 ||
-       codec_format_option == CODEC_FORMAT_HEVC)
-    {
+            portFmt.format.video.nFrameWidth,
+            portFmt.format.video.nFrameHeight);
+    if (codec_format_option == CODEC_FORMAT_H264 ||
+            codec_format_option == CODEC_FORMAT_HEVC) {
         OMX_VIDEO_CONFIG_NALSIZE naluSize;
         naluSize.nNaluBytes = nalSize;
         DEBUG_PRINT("\n Nal length is %d index %d",nalSize,OMX_IndexConfigVideoNalSize);
@@ -2333,40 +2123,38 @@
     DEBUG_PRINT("Transition to Idle State succesful...\n");
 
 #if ALLOCATE_BUFFER
-       // Allocate buffer on decoder's i/p port
-       error = Allocate_Buffer(dec_handle, &pInputBufHdrs, portFmt.nPortIndex,
-                               portFmt.nBufferCountActual, portFmt.nBufferSize);
-       if (error != OMX_ErrorNone) {
-           DEBUG_PRINT_ERROR("Error - OMX_AllocateBuffer Input buffer error\n");
-           return -1;
-       }
-       else {
-           DEBUG_PRINT("\nOMX_AllocateBuffer Input buffer success\n");
-       }
+    // Allocate buffer on decoder's i/p port
+    error = Allocate_Buffer(dec_handle, &pInputBufHdrs, portFmt.nPortIndex,
+            portFmt.nBufferCountActual, portFmt.nBufferSize);
+    if (error != OMX_ErrorNone) {
+        DEBUG_PRINT_ERROR("Error - OMX_AllocateBuffer Input buffer error\n");
+        return -1;
+    } else {
+        DEBUG_PRINT("\nOMX_AllocateBuffer Input buffer success\n");
+    }
 #else
-       // Use buffer on decoder's i/p port
-          input_use_buffer = true;
-          DEBUG_PRINT_ERROR("\n before OMX_UseBuffer %p", &pInputBufHdrs);
-          error =  use_input_buffer(dec_handle,
-                             &pInputBufHdrs,
-                              portFmt.nPortIndex,
-                              portFmt.nBufferSize,
-                              portFmt.nBufferCountActual);
-          if (error != OMX_ErrorNone) {
-             DEBUG_PRINT_ERROR("ERROR - OMX_UseBuffer Input buffer failed");
-             return -1;
-          }
-          else {
-             DEBUG_PRINT("OMX_UseBuffer Input buffer success\n");
-          }
+    // Use buffer on decoder's i/p port
+    input_use_buffer = true;
+    DEBUG_PRINT_ERROR("\n before OMX_UseBuffer %p", &pInputBufHdrs);
+    error =  use_input_buffer(dec_handle,
+            &pInputBufHdrs,
+            portFmt.nPortIndex,
+            portFmt.nBufferSize,
+            portFmt.nBufferCountActual);
+    if (error != OMX_ErrorNone) {
+        DEBUG_PRINT_ERROR("ERROR - OMX_UseBuffer Input buffer failed");
+        return -1;
+    } else {
+        DEBUG_PRINT("OMX_UseBuffer Input buffer success\n");
+    }
 #endif
-       portFmt.nPortIndex = portParam.nStartPortNumber+1;
-       // Port for which the Client needs to obtain info
+    portFmt.nPortIndex = portParam.nStartPortNumber+1;
+    // Port for which the Client needs to obtain info
 
     OMX_GetParameter(dec_handle,OMX_IndexParamPortDefinition,&portFmt);
     DEBUG_PRINT("nMin Buffer Count=%d", portFmt.nBufferCountMin);
     DEBUG_PRINT("nBuffer Size=%d", portFmt.nBufferSize);
-    if(OMX_DirOutput != portFmt.eDir) {
+    if (OMX_DirOutput != portFmt.eDir) {
         DEBUG_PRINT_ERROR("Error - Expect Output Port\n");
         return -1;
     }
@@ -2386,88 +2174,74 @@
     }
 
 #ifndef USE_EGL_IMAGE_TEST_APP
-    if (use_external_pmem_buf)
-    {
+    if (use_external_pmem_buf) {
         DEBUG_PRINT_ERROR("\n Use External pmem buf: OMX_UseBuffer %p", &pInputBufHdrs);
         error =  use_output_buffer_multiple_fd(dec_handle,
-                                               &pOutYUVBufHdrs,
-                                               portFmt.nPortIndex,
-                                               portFmt.nBufferSize,
-                                               portFmt.nBufferCountActual);
-    }
-    else
-    {
+                &pOutYUVBufHdrs,
+                portFmt.nPortIndex,
+                portFmt.nBufferSize,
+                portFmt.nBufferCountActual);
+    } else {
         /* Allocate buffer on decoder's o/p port */
         error = Allocate_Buffer(dec_handle, &pOutYUVBufHdrs, portFmt.nPortIndex,
-                                portFmt.nBufferCountActual, portFmt.nBufferSize);
+                portFmt.nBufferCountActual, portFmt.nBufferSize);
     }
     free_op_buf_cnt = portFmt.nBufferCountActual;
     if (error != OMX_ErrorNone) {
         DEBUG_PRINT_ERROR("Error - OMX_AllocateBuffer Output buffer error\n");
         return -1;
-    }
-    else
-    {
+    } else {
         DEBUG_PRINT("OMX_AllocateBuffer Output buffer success\n");
     }
 #else
     DEBUG_PRINT_ERROR("\n before OMX_UseBuffer %p", &pInputBufHdrs);
     error =  use_output_buffer(dec_handle,
-                       &pOutYUVBufHdrs,
-                        portFmt.nPortIndex,
-                        portFmt.nBufferSize,
-                        portFmt.nBufferCountActual);
+            &pOutYUVBufHdrs,
+            portFmt.nPortIndex,
+            portFmt.nBufferSize,
+            portFmt.nBufferCountActual);
     free_op_buf_cnt = portFmt.nBufferCountActual;
     if (error != OMX_ErrorNone) {
-       DEBUG_PRINT_ERROR("ERROR - OMX_UseBuffer Input buffer failed");
-       return -1;
-    }
-    else {
-       DEBUG_PRINT("OMX_UseBuffer Input buffer success\n");
+        DEBUG_PRINT_ERROR("ERROR - OMX_UseBuffer Input buffer failed");
+        return -1;
+    } else {
+        DEBUG_PRINT("OMX_UseBuffer Input buffer success\n");
     }
 #endif
     wait_for_event();
-    if (currentStatus == ERROR_STATE)
-    {
-      do_freeHandle_and_clean_up(true);
-      return -1;
+    if (currentStatus == ERROR_STATE) {
+        do_freeHandle_and_clean_up(true);
+        return -1;
     }
 
-    if (freeHandle_option == FREE_HANDLE_AT_IDLE)
-    {
-      OMX_STATETYPE state = OMX_StateInvalid;
-      OMX_GetState(dec_handle, &state);
-      if (state == OMX_StateIdle)
-      {
-        DEBUG_PRINT("Decoder is in OMX_StateIdle and trying to call OMX_FreeHandle \n");
-        do_freeHandle_and_clean_up(false);
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("Error - Decoder is in state %d and trying to call OMX_FreeHandle \n", state);
-        do_freeHandle_and_clean_up(true);
-      }
-      return -1;
+    if (freeHandle_option == FREE_HANDLE_AT_IDLE) {
+        OMX_STATETYPE state = OMX_StateInvalid;
+        OMX_GetState(dec_handle, &state);
+        if (state == OMX_StateIdle) {
+            DEBUG_PRINT("Decoder is in OMX_StateIdle and trying to call OMX_FreeHandle \n");
+            do_freeHandle_and_clean_up(false);
+        } else {
+            DEBUG_PRINT_ERROR("Error - Decoder is in state %d and trying to call OMX_FreeHandle \n", state);
+            do_freeHandle_and_clean_up(true);
+        }
+        return -1;
     }
 
 
     DEBUG_PRINT("OMX_SendCommand Decoder -> Executing\n");
     OMX_SendCommand(dec_handle, OMX_CommandStateSet, OMX_StateExecuting,0);
     wait_for_event();
-    if (currentStatus == ERROR_STATE)
-    {
-      do_freeHandle_and_clean_up(true);
-      return -1;
+    if (currentStatus == ERROR_STATE) {
+        do_freeHandle_and_clean_up(true);
+        return -1;
     }
-    if (pOutYUVBufHdrs == NULL)
-    {
+    if (pOutYUVBufHdrs == NULL) {
         DEBUG_PRINT_ERROR("Error - pOutYUVBufHdrs is NULL\n");
         return -1;
     }
-    for(bufCnt=0; bufCnt < portFmt.nBufferCountActual; ++bufCnt) {
+    for (bufCnt=0; bufCnt < portFmt.nBufferCountActual; ++bufCnt) {
         DEBUG_PRINT("OMX_FillThisBuffer on output buf no.%d\n",bufCnt);
-        if (pOutYUVBufHdrs[bufCnt] == NULL)
-        {
+        if (pOutYUVBufHdrs[bufCnt] == NULL) {
             DEBUG_PRINT_ERROR("Error - pOutYUVBufHdrs[%d] is NULL\n", bufCnt);
             return -1;
         }
@@ -2476,8 +2250,7 @@
         ret = OMX_FillThisBuffer(dec_handle, pOutYUVBufHdrs[bufCnt]);
         if (OMX_ErrorNone != ret)
             DEBUG_PRINT_ERROR("Error - OMX_FillThisBuffer failed with result %d\n", ret);
-        else
-        {
+        else {
             DEBUG_PRINT("OMX_FillThisBuffer success!\n");
             free_op_buf_cnt--;
         }
@@ -2488,158 +2261,133 @@
     rcv_v1 = 0;
 
     //QPERF_START(client_decode);
-    if (codec_format_option == CODEC_FORMAT_VC1)
-    {
-      pInputBufHdrs[0]->nOffset = 0;
-      if(file_type_option == FILE_TYPE_RCV)
-      {
-      frameSize = Read_Buffer_From_RCV_File_Seq_Layer(pInputBufHdrs[0]);
-      pInputBufHdrs[0]->nFilledLen = frameSize;
-          DEBUG_PRINT("After Read_Buffer_From_RCV_File_Seq_Layer, "
-              "frameSize %d\n", frameSize);
-      }
-      else if(file_type_option == FILE_TYPE_VC1)
-      {
-          bHdrflag = 1;
-          pInputBufHdrs[0]->nFilledLen = Read_Buffer(pInputBufHdrs[0]);
-          bHdrflag = 0;
-          DEBUG_PRINT_ERROR("After 1st Read_Buffer for VC1, "
-              "pInputBufHdrs[0]->nFilledLen %d\n", pInputBufHdrs[0]->nFilledLen);
-      }
-      else
-      {
-          pInputBufHdrs[0]->nFilledLen = Read_Buffer(pInputBufHdrs[0]);
-          DEBUG_PRINT("After Read_Buffer pInputBufHdrs[0]->nFilledLen %d\n",
-              pInputBufHdrs[0]->nFilledLen);
-      }
+    if (codec_format_option == CODEC_FORMAT_VC1) {
+        pInputBufHdrs[0]->nOffset = 0;
+        if (file_type_option == FILE_TYPE_RCV) {
+            frameSize = Read_Buffer_From_RCV_File_Seq_Layer(pInputBufHdrs[0]);
+            pInputBufHdrs[0]->nFilledLen = frameSize;
+            DEBUG_PRINT("After Read_Buffer_From_RCV_File_Seq_Layer, "
+                    "frameSize %d\n", frameSize);
+        } else if (file_type_option == FILE_TYPE_VC1) {
+            bHdrflag = 1;
+            pInputBufHdrs[0]->nFilledLen = Read_Buffer(pInputBufHdrs[0]);
+            bHdrflag = 0;
+            DEBUG_PRINT_ERROR("After 1st Read_Buffer for VC1, "
+                    "pInputBufHdrs[0]->nFilledLen %d\n", pInputBufHdrs[0]->nFilledLen);
+        } else {
+            pInputBufHdrs[0]->nFilledLen = Read_Buffer(pInputBufHdrs[0]);
+            DEBUG_PRINT("After Read_Buffer pInputBufHdrs[0]->nFilledLen %d\n",
+                    pInputBufHdrs[0]->nFilledLen);
+        }
 
-      pInputBufHdrs[0]->nInputPortIndex = 0;
-      pInputBufHdrs[0]->nOffset = 0;
+        pInputBufHdrs[0]->nInputPortIndex = 0;
+        pInputBufHdrs[0]->nOffset = 0;
 #ifndef _MSM8974_
-      pInputBufHdrs[0]->nFlags = 0;
+        pInputBufHdrs[0]->nFlags = 0;
 #endif
-      ret = OMX_EmptyThisBuffer(dec_handle, pInputBufHdrs[0]);
-      if (ret != OMX_ErrorNone)
-      {
-          DEBUG_PRINT_ERROR("ERROR - OMX_EmptyThisBuffer failed with result %d\n", ret);
-          do_freeHandle_and_clean_up(true);
-          return -1;
-      }
-      else
-      {
-          etb_count++;
-          DEBUG_PRINT("OMX_EmptyThisBuffer success!\n");
-      }
-      i = 1;
+        ret = OMX_EmptyThisBuffer(dec_handle, pInputBufHdrs[0]);
+        if (ret != OMX_ErrorNone) {
+            DEBUG_PRINT_ERROR("ERROR - OMX_EmptyThisBuffer failed with result %d\n", ret);
+            do_freeHandle_and_clean_up(true);
+            return -1;
+        } else {
+            etb_count++;
+            DEBUG_PRINT("OMX_EmptyThisBuffer success!\n");
+        }
+        i = 1;
 #ifdef _MSM8974_
-      pInputBufHdrs[0]->nFlags = 0;
+        pInputBufHdrs[0]->nFlags = 0;
 #endif
-    }
-    else
-    {
-      i = 0;
+    } else {
+        i = 0;
     }
 
-    for (i; i < used_ip_buf_cnt;i++) {
-      pInputBufHdrs[i]->nInputPortIndex = 0;
-      pInputBufHdrs[i]->nOffset = 0;
-      if((frameSize = Read_Buffer(pInputBufHdrs[i])) <= 0 ){
-        DEBUG_PRINT("NO FRAME READ\n");
+    for (i; i < used_ip_buf_cnt; i++) {
+        pInputBufHdrs[i]->nInputPortIndex = 0;
+        pInputBufHdrs[i]->nOffset = 0;
+        if ((frameSize = Read_Buffer(pInputBufHdrs[i])) <= 0 ) {
+            DEBUG_PRINT("NO FRAME READ\n");
+            pInputBufHdrs[i]->nFilledLen = frameSize;
+            pInputBufHdrs[i]->nInputPortIndex = 0;
+            pInputBufHdrs[i]->nFlags |= OMX_BUFFERFLAG_EOS;;
+            bInputEosReached = true;
+
+            OMX_EmptyThisBuffer(dec_handle, pInputBufHdrs[i]);
+            etb_count++;
+            DEBUG_PRINT("File is small::Either EOS or Some Error while reading file\n");
+            break;
+        }
         pInputBufHdrs[i]->nFilledLen = frameSize;
         pInputBufHdrs[i]->nInputPortIndex = 0;
-        pInputBufHdrs[i]->nFlags |= OMX_BUFFERFLAG_EOS;;
-        bInputEosReached = true;
-
-        OMX_EmptyThisBuffer(dec_handle, pInputBufHdrs[i]);
-        etb_count++;
-        DEBUG_PRINT("File is small::Either EOS or Some Error while reading file\n");
-        break;
-      }
-      pInputBufHdrs[i]->nFilledLen = frameSize;
-      pInputBufHdrs[i]->nInputPortIndex = 0;
-      pInputBufHdrs[i]->nFlags = 0;
-//pBufHdr[bufCnt]->pAppPrivate = this;
-      DEBUG_PRINT("%s: Timestamp sent(%lld)", __FUNCTION__, pInputBufHdrs[i]->nTimeStamp);
-      ret = OMX_EmptyThisBuffer(dec_handle, pInputBufHdrs[i]);
-      if (OMX_ErrorNone != ret) {
-          DEBUG_PRINT_ERROR("ERROR - OMX_EmptyThisBuffer failed with result %d\n", ret);
-          do_freeHandle_and_clean_up(true);
-          return -1;
-      }
-      else {
-          DEBUG_PRINT("OMX_EmptyThisBuffer success!\n");
-          etb_count++;
-      }
+        pInputBufHdrs[i]->nFlags = 0;
+        //pBufHdr[bufCnt]->pAppPrivate = this;
+        DEBUG_PRINT("%s: Timestamp sent(%lld)", __FUNCTION__, pInputBufHdrs[i]->nTimeStamp);
+        ret = OMX_EmptyThisBuffer(dec_handle, pInputBufHdrs[i]);
+        if (OMX_ErrorNone != ret) {
+            DEBUG_PRINT_ERROR("ERROR - OMX_EmptyThisBuffer failed with result %d\n", ret);
+            do_freeHandle_and_clean_up(true);
+            return -1;
+        } else {
+            DEBUG_PRINT("OMX_EmptyThisBuffer success!\n");
+            etb_count++;
+        }
     }
 
-    if(0 != pthread_create(&ebd_thread_id, NULL, ebd_thread, NULL))
-    {
-      printf("\n Error in Creating fbd_thread \n");
-      free_queue(etb_queue);
-      free_queue(fbd_queue);
-      return -1;
+    if (0 != pthread_create(&ebd_thread_id, NULL, ebd_thread, NULL)) {
+        printf("\n Error in Creating fbd_thread \n");
+        free_queue(etb_queue);
+        free_queue(fbd_queue);
+        return -1;
     }
 
     // wait for event port settings changed event
     DEBUG_PRINT("wait_for_event: dyn reconfig");
     wait_for_event();
     DEBUG_PRINT("wait_for_event: dyn reconfig rcvd, currentStatus %d\n",
-                  currentStatus);
-    if (currentStatus == ERROR_STATE)
-    {
-      printf("Error - ERROR_STATE\n");
-      do_freeHandle_and_clean_up(true);
-      return -1;
-    }
-    else if (currentStatus == PORT_SETTING_CHANGE_STATE)
-    {
-      if (output_port_reconfig() != 0)
+            currentStatus);
+    if (currentStatus == ERROR_STATE) {
+        printf("Error - ERROR_STATE\n");
+        do_freeHandle_and_clean_up(true);
         return -1;
+    } else if (currentStatus == PORT_SETTING_CHANGE_STATE) {
+        if (output_port_reconfig() != 0)
+            return -1;
     }
 
-    if (freeHandle_option == FREE_HANDLE_AT_EXECUTING)
-    {
-      OMX_STATETYPE state = OMX_StateInvalid;
-      OMX_GetState(dec_handle, &state);
-      if (state == OMX_StateExecuting)
-      {
-        DEBUG_PRINT("Decoder is in OMX_StateExecuting and trying to call OMX_FreeHandle \n");
-        do_freeHandle_and_clean_up(false);
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("Error - Decoder is in state %d and trying to call OMX_FreeHandle \n", state);
-        do_freeHandle_and_clean_up(true);
-      }
-      return -1;
-    }
-    else if (freeHandle_option == FREE_HANDLE_AT_PAUSE)
-    {
-      OMX_SendCommand(dec_handle, OMX_CommandStateSet, OMX_StatePause,0);
-      wait_for_event();
+    if (freeHandle_option == FREE_HANDLE_AT_EXECUTING) {
+        OMX_STATETYPE state = OMX_StateInvalid;
+        OMX_GetState(dec_handle, &state);
+        if (state == OMX_StateExecuting) {
+            DEBUG_PRINT("Decoder is in OMX_StateExecuting and trying to call OMX_FreeHandle \n");
+            do_freeHandle_and_clean_up(false);
+        } else {
+            DEBUG_PRINT_ERROR("Error - Decoder is in state %d and trying to call OMX_FreeHandle \n", state);
+            do_freeHandle_and_clean_up(true);
+        }
+        return -1;
+    } else if (freeHandle_option == FREE_HANDLE_AT_PAUSE) {
+        OMX_SendCommand(dec_handle, OMX_CommandStateSet, OMX_StatePause,0);
+        wait_for_event();
 
-      OMX_STATETYPE state = OMX_StateInvalid;
-      OMX_GetState(dec_handle, &state);
-      if (state == OMX_StatePause)
-      {
-        DEBUG_PRINT("Decoder is in OMX_StatePause and trying to call OMX_FreeHandle \n");
-        do_freeHandle_and_clean_up(false);
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("Error - Decoder is in state %d and trying to call OMX_FreeHandle \n", state);
-        do_freeHandle_and_clean_up(true);
-      }
-      return -1;
+        OMX_STATETYPE state = OMX_StateInvalid;
+        OMX_GetState(dec_handle, &state);
+        if (state == OMX_StatePause) {
+            DEBUG_PRINT("Decoder is in OMX_StatePause and trying to call OMX_FreeHandle \n");
+            do_freeHandle_and_clean_up(false);
+        } else {
+            DEBUG_PRINT_ERROR("Error - Decoder is in state %d and trying to call OMX_FreeHandle \n", state);
+            do_freeHandle_and_clean_up(true);
+        }
+        return -1;
     }
 
     return 0;
 }
 
 static OMX_ERRORTYPE Allocate_Buffer ( OMX_COMPONENTTYPE *dec_handle,
-                                       OMX_BUFFERHEADERTYPE  ***pBufHdrs,
-                                       OMX_U32 nPortIndex,
-                                       long bufCntMin, long bufSize)
+        OMX_BUFFERHEADERTYPE  ***pBufHdrs,
+        OMX_U32 nPortIndex,
+        long bufCntMin, long bufSize)
 {
     DEBUG_PRINT("Inside %s \n", __FUNCTION__);
     OMX_ERRORTYPE error=OMX_ErrorNone;
@@ -2647,22 +2395,22 @@
 
     DEBUG_PRINT("pBufHdrs = %x,bufCntMin = %d\n", pBufHdrs, bufCntMin);
     *pBufHdrs= (OMX_BUFFERHEADERTYPE **)
-                   malloc(sizeof(OMX_BUFFERHEADERTYPE)*bufCntMin);
+        malloc(sizeof(OMX_BUFFERHEADERTYPE)*bufCntMin);
 
-    for(bufCnt=0; bufCnt < bufCntMin; ++bufCnt) {
+    for (bufCnt=0; bufCnt < bufCntMin; ++bufCnt) {
         DEBUG_PRINT("OMX_AllocateBuffer No %d \n", bufCnt);
         error = OMX_AllocateBuffer(dec_handle, &((*pBufHdrs)[bufCnt]),
-                                   nPortIndex, NULL, bufSize);
+                nPortIndex, NULL, bufSize);
     }
 
     return error;
 }
 
 static OMX_ERRORTYPE use_input_buffer ( OMX_COMPONENTTYPE *dec_handle,
-                                  OMX_BUFFERHEADERTYPE  ***pBufHdrs,
-                                  OMX_U32 nPortIndex,
-                                  OMX_U32 bufSize,
-                                  long bufCntMin)
+        OMX_BUFFERHEADERTYPE  ***pBufHdrs,
+        OMX_U32 nPortIndex,
+        OMX_U32 bufSize,
+        long bufCntMin)
 {
     DEBUG_PRINT("Inside %s \n", __FUNCTION__);
     OMX_ERRORTYPE error=OMX_ErrorNone;
@@ -2670,31 +2418,31 @@
     OMX_U8* pvirt = NULL;
 
     *pBufHdrs= (OMX_BUFFERHEADERTYPE **)
-                   malloc(sizeof(OMX_BUFFERHEADERTYPE)* bufCntMin);
-    if(*pBufHdrs == NULL){
+        malloc(sizeof(OMX_BUFFERHEADERTYPE)* bufCntMin);
+    if (*pBufHdrs == NULL) {
         DEBUG_PRINT_ERROR("\n m_inp_heap_ptr Allocation failed ");
         return OMX_ErrorInsufficientResources;
-     }
+    }
 
-    for(bufCnt=0; bufCnt < bufCntMin; ++bufCnt) {
+    for (bufCnt=0; bufCnt < bufCntMin; ++bufCnt) {
         // allocate input buffers
-      DEBUG_PRINT("OMX_UseBuffer No %d %d \n", bufCnt, bufSize);
-      pvirt = (OMX_U8*) malloc (bufSize);
-      if(pvirt == NULL){
-        DEBUG_PRINT_ERROR("\n pvirt Allocation failed ");
-        return OMX_ErrorInsufficientResources;
-     }
-      error = OMX_UseBuffer(dec_handle, &((*pBufHdrs)[bufCnt]),
-                              nPortIndex, NULL, bufSize, pvirt);
-       }
+        DEBUG_PRINT("OMX_UseBuffer No %d %d \n", bufCnt, bufSize);
+        pvirt = (OMX_U8*) malloc (bufSize);
+        if (pvirt == NULL) {
+            DEBUG_PRINT_ERROR("\n pvirt Allocation failed ");
+            return OMX_ErrorInsufficientResources;
+        }
+        error = OMX_UseBuffer(dec_handle, &((*pBufHdrs)[bufCnt]),
+                nPortIndex, NULL, bufSize, pvirt);
+    }
     return error;
 }
 
 static OMX_ERRORTYPE use_output_buffer ( OMX_COMPONENTTYPE *dec_handle,
-                                  OMX_BUFFERHEADERTYPE  ***pBufHdrs,
-                                  OMX_U32 nPortIndex,
-                                  OMX_U32 bufSize,
-                                  long bufCntMin)
+        OMX_BUFFERHEADERTYPE  ***pBufHdrs,
+        OMX_U32 nPortIndex,
+        OMX_U32 bufSize,
+        long bufCntMin)
 {
     DEBUG_PRINT("Inside %s \n", __FUNCTION__);
     OMX_ERRORTYPE error=OMX_ErrorNone;
@@ -2702,60 +2450,60 @@
     OMX_U8* pvirt = NULL;
 
     *pBufHdrs= (OMX_BUFFERHEADERTYPE **)
-                   malloc(sizeof(OMX_BUFFERHEADERTYPE)* bufCntMin);
-    if(*pBufHdrs == NULL){
+        malloc(sizeof(OMX_BUFFERHEADERTYPE)* bufCntMin);
+    if (*pBufHdrs == NULL) {
         DEBUG_PRINT_ERROR("\n m_inp_heap_ptr Allocation failed ");
         return OMX_ErrorInsufficientResources;
-     }
+    }
     output_use_buffer = true;
     p_eglHeaders = (struct temp_egl **)
-                    malloc(sizeof(struct temp_egl *)* bufCntMin);
-    if (!p_eglHeaders){
+        malloc(sizeof(struct temp_egl *)* bufCntMin);
+    if (!p_eglHeaders) {
         DEBUG_PRINT_ERROR("\n EGL allocation failed");
         return OMX_ErrorInsufficientResources;
     }
 
-    for(bufCnt=0; bufCnt < bufCntMin; ++bufCnt) {
+    for (bufCnt=0; bufCnt < bufCntMin; ++bufCnt) {
         // allocate input buffers
-      DEBUG_PRINT("OMX_UseBuffer No %d %d \n", bufCnt, bufSize);
-      p_eglHeaders[bufCnt] = (struct temp_egl*)
-                         malloc(sizeof(struct temp_egl));
-      if(!p_eglHeaders[bufCnt]) {
-          DEBUG_PRINT_ERROR("\n EGL allocation failed");
-          return OMX_ErrorInsufficientResources;
-      }
-      p_eglHeaders[bufCnt]->pmem_fd = open(PMEM_DEVICE,O_RDWR);
-      p_eglHeaders[bufCnt]->offset = 0;
-      if(p_eglHeaders[bufCnt]->pmem_fd < 0) {
-          DEBUG_PRINT_ERROR("\n open failed %s",PMEM_DEVICE);
-          return OMX_ErrorInsufficientResources;
-      }
+        DEBUG_PRINT("OMX_UseBuffer No %d %d \n", bufCnt, bufSize);
+        p_eglHeaders[bufCnt] = (struct temp_egl*)
+            malloc(sizeof(struct temp_egl));
+        if (!p_eglHeaders[bufCnt]) {
+            DEBUG_PRINT_ERROR("\n EGL allocation failed");
+            return OMX_ErrorInsufficientResources;
+        }
+        p_eglHeaders[bufCnt]->pmem_fd = open(PMEM_DEVICE,O_RDWR);
+        p_eglHeaders[bufCnt]->offset = 0;
+        if (p_eglHeaders[bufCnt]->pmem_fd < 0) {
+            DEBUG_PRINT_ERROR("\n open failed %s",PMEM_DEVICE);
+            return OMX_ErrorInsufficientResources;
+        }
 
 #ifndef USE_ION
-      /* TBD - this commenting is dangerous */
-      align_pmem_buffers(p_eglHeaders[bufCnt]->pmem_fd, bufSize,
-                                  8192);
+        /* TBD - this commenting is dangerous */
+        align_pmem_buffers(p_eglHeaders[bufCnt]->pmem_fd, bufSize,
+                8192);
 #endif
-      DEBUG_PRINT_ERROR("\n allocation size %d pmem fd %d",bufSize,p_eglHeaders[bufCnt]->pmem_fd);
-      pvirt = (unsigned char *)mmap(NULL,bufSize,PROT_READ|PROT_WRITE,
-                      MAP_SHARED,p_eglHeaders[bufCnt]->pmem_fd,0);
-      DEBUG_PRINT_ERROR("\n Virtaul Address %p Size %d",pvirt,bufSize);
-      if (pvirt == MAP_FAILED) {
-        DEBUG_PRINT_ERROR("\n mmap failed for buffers");
-        return OMX_ErrorInsufficientResources;
-      }
+        DEBUG_PRINT_ERROR("\n allocation size %d pmem fd %d",bufSize,p_eglHeaders[bufCnt]->pmem_fd);
+        pvirt = (unsigned char *)mmap(NULL,bufSize,PROT_READ|PROT_WRITE,
+                MAP_SHARED,p_eglHeaders[bufCnt]->pmem_fd,0);
+        DEBUG_PRINT_ERROR("\n Virtaul Address %p Size %d",pvirt,bufSize);
+        if (pvirt == MAP_FAILED) {
+            DEBUG_PRINT_ERROR("\n mmap failed for buffers");
+            return OMX_ErrorInsufficientResources;
+        }
         use_buf_virt_addr[bufCnt] = (unsigned)pvirt;
         error = OMX_UseEGLImage(dec_handle, &((*pBufHdrs)[bufCnt]),
-                              nPortIndex, pvirt,(void *)p_eglHeaders[bufCnt]);
-       }
+                nPortIndex, pvirt,(void *)p_eglHeaders[bufCnt]);
+    }
     return error;
 }
 
 static OMX_ERRORTYPE use_output_buffer_multiple_fd ( OMX_COMPONENTTYPE *dec_handle,
-                                  OMX_BUFFERHEADERTYPE  ***pBufHdrs,
-                                  OMX_U32 nPortIndex,
-                                  OMX_U32 bufSize,
-                                  long bufCntMin)
+        OMX_BUFFERHEADERTYPE  ***pBufHdrs,
+        OMX_U32 nPortIndex,
+        OMX_U32 bufSize,
+        long bufCntMin)
 {
     DEBUG_PRINT("Inside %s \n", __FUNCTION__);
     OMX_ERRORTYPE error=OMX_ErrorNone;
@@ -2763,68 +2511,68 @@
     OMX_U8* pvirt = NULL;
 
     *pBufHdrs= (OMX_BUFFERHEADERTYPE **)
-                   malloc(sizeof(OMX_BUFFERHEADERTYPE)* bufCntMin);
-    if(*pBufHdrs == NULL){
+        malloc(sizeof(OMX_BUFFERHEADERTYPE)* bufCntMin);
+    if (*pBufHdrs == NULL) {
         DEBUG_PRINT_ERROR("\n m_inp_heap_ptr Allocation failed ");
         return OMX_ErrorInsufficientResources;
-     }
+    }
     pPlatformList = (OMX_QCOM_PLATFORM_PRIVATE_LIST *)
         malloc(sizeof(OMX_QCOM_PLATFORM_PRIVATE_LIST)* bufCntMin);
 
-    if(pPlatformList == NULL){
+    if (pPlatformList == NULL) {
         DEBUG_PRINT_ERROR("\n pPlatformList Allocation failed ");
         return OMX_ErrorInsufficientResources;
-     }
+    }
 
     pPlatformEntry = (OMX_QCOM_PLATFORM_PRIVATE_ENTRY *)
         malloc(sizeof(OMX_QCOM_PLATFORM_PRIVATE_ENTRY)* bufCntMin);
 
-    if(pPlatformEntry == NULL){
+    if (pPlatformEntry == NULL) {
         DEBUG_PRINT_ERROR("\n pPlatformEntry Allocation failed ");
         return OMX_ErrorInsufficientResources;
-     }
+    }
 
     pPMEMInfo = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
         malloc(sizeof(OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO)* bufCntMin);
 
-    if(pPMEMInfo == NULL){
+    if (pPMEMInfo == NULL) {
         DEBUG_PRINT_ERROR("\n pPMEMInfo Allocation failed ");
         return OMX_ErrorInsufficientResources;
-     }
+    }
 
     //output_use_buffer = true;
-    for(bufCnt=0; bufCnt < bufCntMin; ++bufCnt) {
+    for (bufCnt=0; bufCnt < bufCntMin; ++bufCnt) {
         // allocate input buffers
-      DEBUG_PRINT("OMX_UseBuffer_multiple_fd No %d %d \n", bufCnt, bufSize);
+        DEBUG_PRINT("OMX_UseBuffer_multiple_fd No %d %d \n", bufCnt, bufSize);
 
-      pPlatformEntry[bufCnt].type       = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
-      pPlatformEntry[bufCnt].entry      = &pPMEMInfo[bufCnt];
-      // Initialize the Platform List
-      pPlatformList[bufCnt].nEntries    = 1;
-      pPlatformList[bufCnt].entryList   = &pPlatformEntry[bufCnt];
-      pPMEMInfo[bufCnt].offset          =  0;
-      pPMEMInfo[bufCnt].pmem_fd = open(PMEM_DEVICE,O_RDWR);;
-      if(pPMEMInfo[bufCnt].pmem_fd < 0) {
-          DEBUG_PRINT_ERROR("\n open failed %s",PMEM_DEVICE);
-          return OMX_ErrorInsufficientResources;
-      }
+        pPlatformEntry[bufCnt].type       = OMX_QCOM_PLATFORM_PRIVATE_PMEM;
+        pPlatformEntry[bufCnt].entry      = &pPMEMInfo[bufCnt];
+        // Initialize the Platform List
+        pPlatformList[bufCnt].nEntries    = 1;
+        pPlatformList[bufCnt].entryList   = &pPlatformEntry[bufCnt];
+        pPMEMInfo[bufCnt].offset          =  0;
+        pPMEMInfo[bufCnt].pmem_fd = open(PMEM_DEVICE,O_RDWR);;
+        if (pPMEMInfo[bufCnt].pmem_fd < 0) {
+            DEBUG_PRINT_ERROR("\n open failed %s",PMEM_DEVICE);
+            return OMX_ErrorInsufficientResources;
+        }
 #ifndef USE_ION
-      /* TBD - this commenting is dangerous */
-      align_pmem_buffers(pPMEMInfo[bufCnt].pmem_fd, bufSize,
-                                  8192);
+        /* TBD - this commenting is dangerous */
+        align_pmem_buffers(pPMEMInfo[bufCnt].pmem_fd, bufSize,
+                8192);
 #endif
-      DEBUG_PRINT("\n allocation size %d pmem fd 0x%x",bufSize,pPMEMInfo[bufCnt].pmem_fd);
-      pvirt = (unsigned char *)mmap(NULL,bufSize,PROT_READ|PROT_WRITE,
-                      MAP_SHARED,pPMEMInfo[bufCnt].pmem_fd,0);
-      getFreePmem();
-      DEBUG_PRINT("\n Virtaul Address %p Size %d pmem_fd=0x%x",pvirt,bufSize,pPMEMInfo[bufCnt].pmem_fd);
-      if (pvirt == MAP_FAILED) {
-        DEBUG_PRINT_ERROR("\n mmap failed for buffers");
-        return OMX_ErrorInsufficientResources;
-      }
-      use_buf_virt_addr[bufCnt] = (unsigned)pvirt;
-      error = OMX_UseBuffer(dec_handle, &((*pBufHdrs)[bufCnt]),
-                            nPortIndex, &pPlatformList[bufCnt], bufSize, pvirt);
+        DEBUG_PRINT("\n allocation size %d pmem fd 0x%x",bufSize,pPMEMInfo[bufCnt].pmem_fd);
+        pvirt = (unsigned char *)mmap(NULL,bufSize,PROT_READ|PROT_WRITE,
+                MAP_SHARED,pPMEMInfo[bufCnt].pmem_fd,0);
+        getFreePmem();
+        DEBUG_PRINT("\n Virtaul Address %p Size %d pmem_fd=0x%x",pvirt,bufSize,pPMEMInfo[bufCnt].pmem_fd);
+        if (pvirt == MAP_FAILED) {
+            DEBUG_PRINT_ERROR("\n mmap failed for buffers");
+            return OMX_ErrorInsufficientResources;
+        }
+        use_buf_virt_addr[bufCnt] = (unsigned)pvirt;
+        error = OMX_UseBuffer(dec_handle, &((*pBufHdrs)[bufCnt]),
+                nPortIndex, &pPlatformList[bufCnt], bufSize, pvirt);
     }
     return error;
 }
@@ -2833,91 +2581,79 @@
     int bufCnt = 0;
     OMX_STATETYPE state = OMX_StateInvalid;
     OMX_GetState(dec_handle, &state);
-    if (state == OMX_StateExecuting || state == OMX_StatePause)
-    {
-      DEBUG_PRINT("Requesting transition to Idle");
-      OMX_SendCommand(dec_handle, OMX_CommandStateSet, OMX_StateIdle, 0);
-      wait_for_event();
+    if (state == OMX_StateExecuting || state == OMX_StatePause) {
+        DEBUG_PRINT("Requesting transition to Idle");
+        OMX_SendCommand(dec_handle, OMX_CommandStateSet, OMX_StateIdle, 0);
+        wait_for_event();
     }
     OMX_GetState(dec_handle, &state);
-    if (state == OMX_StateIdle)
-    {
-      DEBUG_PRINT("Requesting transition to Loaded");
-      OMX_SendCommand(dec_handle, OMX_CommandStateSet, OMX_StateLoaded, 0);
-      for(bufCnt=0; bufCnt < input_buf_cnt; ++bufCnt)
-      {
-         if (pInputBufHdrs[bufCnt]->pBuffer && input_use_buffer)
-         {
-            free(pInputBufHdrs[bufCnt]->pBuffer);
-            pInputBufHdrs[bufCnt]->pBuffer = NULL;
-            DEBUG_PRINT_ERROR("\nFree(pInputBufHdrs[%d]->pBuffer)",bufCnt);
-         }
-         OMX_FreeBuffer(dec_handle, 0, pInputBufHdrs[bufCnt]);
-      }
-      if (pInputBufHdrs)
-      {
-         free(pInputBufHdrs);
-         pInputBufHdrs = NULL;
-      }
-      for(bufCnt = 0; bufCnt < portFmt.nBufferCountActual; ++bufCnt) {
-        if (output_use_buffer && p_eglHeaders) {
-            if(p_eglHeaders[bufCnt]) {
-               munmap (pOutYUVBufHdrs[bufCnt]->pBuffer,
-                       pOutYUVBufHdrs[bufCnt]->nAllocLen);
-               close(p_eglHeaders[bufCnt]->pmem_fd);
-               p_eglHeaders[bufCnt]->pmem_fd = -1;
-               free(p_eglHeaders[bufCnt]);
-               p_eglHeaders[bufCnt] = NULL;
+    if (state == OMX_StateIdle) {
+        DEBUG_PRINT("Requesting transition to Loaded");
+        OMX_SendCommand(dec_handle, OMX_CommandStateSet, OMX_StateLoaded, 0);
+        for (bufCnt=0; bufCnt < input_buf_cnt; ++bufCnt) {
+            if (pInputBufHdrs[bufCnt]->pBuffer && input_use_buffer) {
+                free(pInputBufHdrs[bufCnt]->pBuffer);
+                pInputBufHdrs[bufCnt]->pBuffer = NULL;
+                DEBUG_PRINT_ERROR("\nFree(pInputBufHdrs[%d]->pBuffer)",bufCnt);
             }
+            OMX_FreeBuffer(dec_handle, 0, pInputBufHdrs[bufCnt]);
         }
-        if (use_external_pmem_buf)
-        {
-            DEBUG_PRINT("Freeing in external pmem case: buffer=0x%x, pmem_fd=0x%d",
-                              pOutYUVBufHdrs[bufCnt]->pBuffer,
-                              pPMEMInfo[bufCnt].pmem_fd);
-            if (pOutYUVBufHdrs[bufCnt]->pBuffer)
-            {
-                munmap (pOutYUVBufHdrs[bufCnt]->pBuffer,
-                        pOutYUVBufHdrs[bufCnt]->nAllocLen);
-            }
-            if (&pPMEMInfo[bufCnt])
-            {
-                close(pPMEMInfo[bufCnt].pmem_fd);
-                pPMEMInfo[bufCnt].pmem_fd = -1;
-            }
+        if (pInputBufHdrs) {
+            free(pInputBufHdrs);
+            pInputBufHdrs = NULL;
         }
-        OMX_FreeBuffer(dec_handle, 1, pOutYUVBufHdrs[bufCnt]);
-      }
-      if(p_eglHeaders) {
-          free(p_eglHeaders);
-          p_eglHeaders = NULL;
-      }
-      if (pPMEMInfo)
-      {
-          DEBUG_PRINT("Freeing in external pmem case:PMEM");
-          free(pPMEMInfo);
-          pPMEMInfo = NULL;
-      }
-      if (pPlatformEntry)
-      {
-          DEBUG_PRINT("Freeing in external pmem case:ENTRY");
-          free(pPlatformEntry);
-          pPlatformEntry = NULL;
-      }
-      if (pPlatformList)
-      {
-          DEBUG_PRINT("Freeing in external pmem case:LIST");
-          free(pPlatformList);
-          pPlatformList = NULL;
-      }
-      wait_for_event();
+        for (bufCnt = 0; bufCnt < portFmt.nBufferCountActual; ++bufCnt) {
+            if (output_use_buffer && p_eglHeaders) {
+                if (p_eglHeaders[bufCnt]) {
+                    munmap (pOutYUVBufHdrs[bufCnt]->pBuffer,
+                            pOutYUVBufHdrs[bufCnt]->nAllocLen);
+                    close(p_eglHeaders[bufCnt]->pmem_fd);
+                    p_eglHeaders[bufCnt]->pmem_fd = -1;
+                    free(p_eglHeaders[bufCnt]);
+                    p_eglHeaders[bufCnt] = NULL;
+                }
+            }
+            if (use_external_pmem_buf) {
+                DEBUG_PRINT("Freeing in external pmem case: buffer=0x%x, pmem_fd=0x%d",
+                        pOutYUVBufHdrs[bufCnt]->pBuffer,
+                        pPMEMInfo[bufCnt].pmem_fd);
+                if (pOutYUVBufHdrs[bufCnt]->pBuffer) {
+                    munmap (pOutYUVBufHdrs[bufCnt]->pBuffer,
+                            pOutYUVBufHdrs[bufCnt]->nAllocLen);
+                }
+                if (&pPMEMInfo[bufCnt]) {
+                    close(pPMEMInfo[bufCnt].pmem_fd);
+                    pPMEMInfo[bufCnt].pmem_fd = -1;
+                }
+            }
+            OMX_FreeBuffer(dec_handle, 1, pOutYUVBufHdrs[bufCnt]);
+        }
+        if (p_eglHeaders) {
+            free(p_eglHeaders);
+            p_eglHeaders = NULL;
+        }
+        if (pPMEMInfo) {
+            DEBUG_PRINT("Freeing in external pmem case:PMEM");
+            free(pPMEMInfo);
+            pPMEMInfo = NULL;
+        }
+        if (pPlatformEntry) {
+            DEBUG_PRINT("Freeing in external pmem case:ENTRY");
+            free(pPlatformEntry);
+            pPlatformEntry = NULL;
+        }
+        if (pPlatformList) {
+            DEBUG_PRINT("Freeing in external pmem case:LIST");
+            free(pPlatformList);
+            pPlatformList = NULL;
+        }
+        wait_for_event();
     }
 
     DEBUG_PRINT("[OMX Vdec Test] - Free handle decoder\n");
     OMX_ERRORTYPE result = OMX_FreeHandle(dec_handle);
-    if (result != OMX_ErrorNone)
-    {
-       DEBUG_PRINT_ERROR("[OMX Vdec Test] - OMX_FreeHandle error. Error code: %d\n", result);
+    if (result != OMX_ErrorNone) {
+        DEBUG_PRINT_ERROR("[OMX Vdec Test] - OMX_FreeHandle error. Error code: %d\n", result);
     }
     dec_handle = NULL;
 
@@ -2926,8 +2662,7 @@
     OMX_Deinit();
 
     DEBUG_PRINT("[OMX Vdec Test] - closing all files\n");
-    if(inputBufferFileFd != -1)
-    {
+    if (inputBufferFileFd != -1) {
         close(inputBufferFileFd);
         inputBufferFileFd = -1;
     }
@@ -2940,29 +2675,27 @@
     }
 #ifdef _MSM8974_
     if (crcFile) {
-	    fclose(crcFile);
-	    crcFile = NULL;
+        fclose(crcFile);
+        crcFile = NULL;
     }
 #endif
     DEBUG_PRINT("[OMX Vdec Test] - after free outputfile\n");
 
-    if(etb_queue)
-    {
-      free_queue(etb_queue);
-      etb_queue = NULL;
+    if (etb_queue) {
+        free_queue(etb_queue);
+        etb_queue = NULL;
     }
     DEBUG_PRINT("[OMX Vdec Test] - after free etb_queue \n");
-    if(fbd_queue)
-    {
-      free_queue(fbd_queue);
-      fbd_queue = NULL;
+    if (fbd_queue) {
+        free_queue(fbd_queue);
+        fbd_queue = NULL;
     }
     DEBUG_PRINT("[OMX Vdec Test] - after free iftb_queue\n");
     printf("*****************************************\n");
     if (isDueToError)
-      printf("************...TEST FAILED...************\n");
+        printf("************...TEST FAILED...************\n");
     else
-      printf("**********...TEST SUCCESSFULL...*********\n");
+        printf("**********...TEST SUCCESSFULL...*********\n");
     printf("*****************************************\n");
 }
 
@@ -2976,18 +2709,19 @@
     unsigned char *read_buffer=NULL;
     char c = '1'; //initialize to anything except '\0'(0)
     char inputFrameSize[12];
-    int count =0; char cnt =0;
+    int count =0;
+    char cnt =0;
     memset(temp_buffer, 0, sizeof(temp_buffer));
 
     DEBUG_PRINT("Inside %s \n", __FUNCTION__);
 
     while (cnt < 10)
-    /* Check the input file format, may result in infinite loop */
+        /* Check the input file format, may result in infinite loop */
     {
         DEBUG_PRINT("loop[%d] count[%d]\n",cnt,count);
         count = read( inputBufferFileFd, &inputFrameSize[cnt], 1);
-        if(inputFrameSize[cnt] == '\0' )
-          break;
+        if (inputFrameSize[cnt] == '\0' )
+            break;
         cnt++;
     }
     inputFrameSize[cnt]='\0';
@@ -2999,12 +2733,12 @@
     bytes_read = read(inputBufferFileFd, pBufHdr->pBuffer, frameSize);
 
     DEBUG_PRINT("Actual frame Size [%d] bytes_read using fread[%d]\n",
-                  frameSize, bytes_read);
+            frameSize, bytes_read);
 
-    if(bytes_read == 0 || bytes_read < frameSize ) {
+    if (bytes_read == 0 || bytes_read < frameSize ) {
         DEBUG_PRINT("Bytes read Zero After Read frame Size \n");
         DEBUG_PRINT("Checking VideoPlayback Count:video_playback_count is:%d\n",
-                       video_playback_count);
+                video_playback_count);
         return 0;
     }
     pBufHdr->nTimeStamp = timeStampLfile;
@@ -3021,62 +2755,50 @@
     int newFrame = 0;
     char *dataptr = (char *)pBufHdr->pBuffer;
     DEBUG_PRINT("Inside %s", __FUNCTION__);
-    do
-    {
+    do {
         newFrame = 0;
         bytes_read = read(inputBufferFileFd, &dataptr[cnt], 1);
-        if (!bytes_read)
-        {
+        if (!bytes_read) {
             DEBUG_PRINT("\n%s: Bytes read Zero", __FUNCTION__);
             break;
         }
         code <<= 8;
         code |= (0x000000FF & dataptr[cnt]);
         cnt++;
-        if ((cnt == 4) && (code != H264_START_CODE))
-        {
+        if ((cnt == 4) && (code != H264_START_CODE)) {
             DEBUG_PRINT_ERROR("\n%s: ERROR: Invalid start code found 0x%x", __FUNCTION__, code);
             cnt = 0;
             break;
         }
-        if ((cnt > 4) && (code == H264_START_CODE))
-        {
+        if ((cnt > 4) && (code == H264_START_CODE)) {
             DEBUG_PRINT("%s: Found H264_START_CODE", __FUNCTION__);
             bytes_read = read(inputBufferFileFd, &dataptr[cnt], 1);
-            if (!bytes_read)
-            {
+            if (!bytes_read) {
                 DEBUG_PRINT("\n%s: Bytes read Zero", __FUNCTION__);
                 break;
             }
             DEBUG_PRINT("%s: READ Byte[%d] = 0x%x", __FUNCTION__, cnt, dataptr[cnt]);
             naluType = dataptr[cnt] & 0x1F;
             cnt++;
-            if ((naluType == 1) || (naluType == 5))
-            {
+            if ((naluType == 1) || (naluType == 5)) {
                 DEBUG_PRINT("%s: Found AU", __FUNCTION__);
                 bytes_read = read(inputBufferFileFd, &dataptr[cnt], 1);
-                if (!bytes_read)
-                {
+                if (!bytes_read) {
                     DEBUG_PRINT("\n%s: Bytes read Zero", __FUNCTION__);
                     break;
                 }
                 DEBUG_PRINT("%s: READ Byte[%d] = 0x%x", __FUNCTION__, cnt, dataptr[cnt]);
                 newFrame = (dataptr[cnt] & 0x80);
                 cnt++;
-                if (newFrame)
-                {
+                if (newFrame) {
                     lseek64(inputBufferFileFd, -6, SEEK_CUR);
                     cnt -= 6;
                     DEBUG_PRINT("%s: Found a NAL unit (type 0x%x) of size = %d", __FUNCTION__, (dataptr[4] & 0x1F), cnt);
                     break;
-                }
-                else
-                {
+                } else {
                     DEBUG_PRINT("%s: Not a New Frame", __FUNCTION__);
                 }
-            }
-            else
-            {
+            } else {
                 lseek64(inputBufferFileFd, -5, SEEK_CUR);
                 cnt -= 5;
                 DEBUG_PRINT("%s: Found NAL unit (type 0x%x) of size = %d", __FUNCTION__, (dataptr[4] & 0x1F), cnt);
@@ -3087,9 +2809,9 @@
 
 #ifdef TEST_TS_FROM_SEI
     if (timeStampLfile == 0)
-      pBufHdr->nTimeStamp = 0;
+        pBufHdr->nTimeStamp = 0;
     else
-      pBufHdr->nTimeStamp = LLONG_MAX;
+        pBufHdr->nTimeStamp = LLONG_MAX;
 #else
     pBufHdr->nTimeStamp = timeStampLfile;
 #endif
@@ -3103,17 +2825,17 @@
     int bytes_read=0;
     DEBUG_PRINT("Inside %s \n", __FUNCTION__);
     bytes_read = read(inputBufferFileFd, pBufHdr->pBuffer, NUMBER_OF_ARBITRARYBYTES_READ);
-    if(bytes_read == 0) {
+    if (bytes_read == 0) {
         DEBUG_PRINT("Bytes read Zero After Read frame Size \n");
         DEBUG_PRINT("Checking VideoPlayback Count:video_playback_count is:%d\n",
-                      video_playback_count);
+                video_playback_count);
         return 0;
     }
 #ifdef TEST_TS_FROM_SEI
     if (timeStampLfile == 0)
-      pBufHdr->nTimeStamp = 0;
+        pBufHdr->nTimeStamp = 0;
     else
-      pBufHdr->nTimeStamp = LLONG_MAX;
+        pBufHdr->nTimeStamp = LLONG_MAX;
 #else
     pBufHdr->nTimeStamp = timeStampLfile;
 #endif
@@ -3131,131 +2853,122 @@
 
     DEBUG_PRINT("Inside %s", __FUNCTION__);
 
-    do
-    {
-      //Start codes are always byte aligned.
-      bytes_read = read(inputBufferFileFd, &pBufHdr->pBuffer[readOffset], 1);
-      if(bytes_read == 0 || bytes_read == -1)
-      {
-          DEBUG_PRINT("Bytes read Zero \n");
-          break;
-      }
-      code <<= 8;
-      code |= (0x000000FF & pBufHdr->pBuffer[readOffset]);
-      //VOP start code comparision
-      if (readOffset>3)
-      {
-        if(!header_code ){
-          if( VOP_START_CODE == code)
-          {
-            header_code = VOP_START_CODE;
-          }
-          else if ( (0xFFFFFC00 & code) == SHORT_HEADER_START_CODE )
-          {
-            header_code = SHORT_HEADER_START_CODE;
-          }
-        }
-        if ((header_code == VOP_START_CODE) && (code == VOP_START_CODE))
-        {
-            //Seek backwards by 4
-            lseek64(inputBufferFileFd, -4, SEEK_CUR);
-            readOffset-=3;
+    do {
+        //Start codes are always byte aligned.
+        bytes_read = read(inputBufferFileFd, &pBufHdr->pBuffer[readOffset], 1);
+        if (bytes_read == 0 || bytes_read == -1) {
+            DEBUG_PRINT("Bytes read Zero \n");
             break;
         }
-        else if (( header_code == SHORT_HEADER_START_CODE ) && ( SHORT_HEADER_START_CODE == (code & 0xFFFFFC00)))
-        {
-            //Seek backwards by 4
-            lseek64(inputBufferFileFd, -4, SEEK_CUR);
-            readOffset-=3;
-            break;
+        code <<= 8;
+        code |= (0x000000FF & pBufHdr->pBuffer[readOffset]);
+        //VOP start code comparision
+        if (readOffset>3) {
+            if (!header_code ) {
+                if ( VOP_START_CODE == code) {
+                    header_code = VOP_START_CODE;
+                } else if ( (0xFFFFFC00 & code) == SHORT_HEADER_START_CODE ) {
+                    header_code = SHORT_HEADER_START_CODE;
+                }
+            }
+            if ((header_code == VOP_START_CODE) && (code == VOP_START_CODE)) {
+                //Seek backwards by 4
+                lseek64(inputBufferFileFd, -4, SEEK_CUR);
+                readOffset-=3;
+                break;
+            } else if (( header_code == SHORT_HEADER_START_CODE ) && ( SHORT_HEADER_START_CODE == (code & 0xFFFFFC00))) {
+                //Seek backwards by 4
+                lseek64(inputBufferFileFd, -4, SEEK_CUR);
+                readOffset-=3;
+                break;
+            }
         }
-      }
-      readOffset++;
-    }while (1);
+        readOffset++;
+    } while (1);
     pBufHdr->nTimeStamp = timeStampLfile;
     timeStampLfile += timestampInterval;
     return readOffset;
 }
 static int Read_Buffer_From_Mpeg2_Start_Code(OMX_BUFFERHEADERTYPE  *pBufHdr)
 {
-  unsigned int readOffset = 0;
-  int bytesRead = 0;
-  unsigned int code = 0;
-  pBufHdr->nFilledLen = 0;
-  static unsigned int firstParse = true;
-  unsigned int seenFrame = false;
+    unsigned int readOffset = 0;
+    int bytesRead = 0;
+    unsigned int code = 0;
+    pBufHdr->nFilledLen = 0;
+    static unsigned int firstParse = true;
+    unsigned int seenFrame = false;
 
-  DEBUG_PRINT("Inside %s", __FUNCTION__);
+    DEBUG_PRINT("Inside %s", __FUNCTION__);
 
-  /* Read one byte at a time. Construct the code every byte in order to
-   * compare to the start codes. Keep looping until we've read in a complete
-   * frame, which can be either just a picture start code + picture, or can
-   * include the sequence header as well
-   */
-  while (1) {
-    bytesRead = read(inputBufferFileFd, &pBufHdr->pBuffer[readOffset], 1);
-
-    /* Exit the loop if we can't read any more bytes */
-    if (bytesRead == 0 || bytesRead == -1) {
-      break;
-    }
-
-    /* Construct the code one byte at a time */
-    code <<= 8;
-    code |= (0x000000FF & pBufHdr->pBuffer[readOffset]);
-
-    /* Can't compare the code to MPEG2 start codes until we've read the
-     * first four bytes
+    /* Read one byte at a time. Construct the code every byte in order to
+     * compare to the start codes. Keep looping until we've read in a complete
+     * frame, which can be either just a picture start code + picture, or can
+     * include the sequence header as well
      */
-    if (readOffset >= 3) {
+    while (1) {
+        bytesRead = read(inputBufferFileFd, &pBufHdr->pBuffer[readOffset], 1);
 
-      /* If this is the first time we're reading from the file, then we
-       * need to throw away the system start code information at the
-       * beginning. We can just look for the first sequence header.
-       */
-      if (firstParse) {
-        if (code == MPEG2_SEQ_START_CODE) {
-          /* Seek back by 4 bytes and reset code so that we can skip
-           * down to the common case below.
-           */
-          lseek(inputBufferFileFd, -4, SEEK_CUR);
-          code = 0;
-          readOffset -= 3;
-          firstParse = false;
-          continue;
+        /* Exit the loop if we can't read any more bytes */
+        if (bytesRead == 0 || bytesRead == -1) {
+            break;
         }
-      }
 
-      /* If we have already parsed a frame and we see a sequence header, then
-       * the sequence header is part of the next frame so we seek back and
-       * break.
-       */
-      if (code == MPEG2_SEQ_START_CODE) {
-        if (seenFrame) {
-          lseek(inputBufferFileFd, -4, SEEK_CUR);
-          readOffset -= 3;
-          break;
-        }
-        /* If we haven't seen a frame yet, then read in all the data until we
-         * either see another frame start code or sequence header start code.
+        /* Construct the code one byte at a time */
+        code <<= 8;
+        code |= (0x000000FF & pBufHdr->pBuffer[readOffset]);
+
+        /* Can't compare the code to MPEG2 start codes until we've read the
+         * first four bytes
          */
-      } else if (code == MPEG2_FRAME_START_CODE) {
-        if (!seenFrame) {
-          seenFrame = true;
-        } else {
-          lseek(inputBufferFileFd, -4, SEEK_CUR);
-          readOffset -= 3;
-          break;
+        if (readOffset >= 3) {
+
+            /* If this is the first time we're reading from the file, then we
+             * need to throw away the system start code information at the
+             * beginning. We can just look for the first sequence header.
+             */
+            if (firstParse) {
+                if (code == MPEG2_SEQ_START_CODE) {
+                    /* Seek back by 4 bytes and reset code so that we can skip
+                     * down to the common case below.
+                     */
+                    lseek(inputBufferFileFd, -4, SEEK_CUR);
+                    code = 0;
+                    readOffset -= 3;
+                    firstParse = false;
+                    continue;
+                }
+            }
+
+            /* If we have already parsed a frame and we see a sequence header, then
+             * the sequence header is part of the next frame so we seek back and
+             * break.
+             */
+            if (code == MPEG2_SEQ_START_CODE) {
+                if (seenFrame) {
+                    lseek(inputBufferFileFd, -4, SEEK_CUR);
+                    readOffset -= 3;
+                    break;
+                }
+                /* If we haven't seen a frame yet, then read in all the data until we
+                 * either see another frame start code or sequence header start code.
+                 */
+            } else if (code == MPEG2_FRAME_START_CODE) {
+                if (!seenFrame) {
+                    seenFrame = true;
+                } else {
+                    lseek(inputBufferFileFd, -4, SEEK_CUR);
+                    readOffset -= 3;
+                    break;
+                }
+            }
         }
-      }
+
+        readOffset++;
     }
 
-    readOffset++;
-  }
-
-  pBufHdr->nTimeStamp = timeStampLfile;
-  timeStampLfile += timestampInterval;
-  return readOffset;
+    pBufHdr->nTimeStamp = timeStampLfile;
+    timeStampLfile += timestampInterval;
+    return readOffset;
 }
 
 
@@ -3270,29 +2983,25 @@
 
     // read the "size_nal_field"-byte size field
     bytes_read = read(inputBufferFileFd, pBufHdr->pBuffer + pBufHdr->nOffset, nalSize);
-    if (bytes_read == 0 || bytes_read == -1)
-    {
-      DEBUG_PRINT("Failed to read frame or it might be EOF\n");
-      return 0;
+    if (bytes_read == 0 || bytes_read == -1) {
+        DEBUG_PRINT("Failed to read frame or it might be EOF\n");
+        return 0;
     }
 
-    for (i=0; i<SIZE_NAL_FIELD_MAX-nalSize; i++)
-    {
-      temp_size[SIZE_NAL_FIELD_MAX - 1 - i] = 0;
+    for (i=0; i<SIZE_NAL_FIELD_MAX-nalSize; i++) {
+        temp_size[SIZE_NAL_FIELD_MAX - 1 - i] = 0;
     }
 
     /* Due to little endiannes, Reorder the size based on size_nal_field */
-    for (j=0; i<SIZE_NAL_FIELD_MAX; i++, j++)
-    {
-      temp_size[SIZE_NAL_FIELD_MAX - 1 - i] = pBufHdr->pBuffer[pBufHdr->nOffset + j];
+    for (j=0; i<SIZE_NAL_FIELD_MAX; i++, j++) {
+        temp_size[SIZE_NAL_FIELD_MAX - 1 - i] = pBufHdr->pBuffer[pBufHdr->nOffset + j];
     }
     size = (unsigned int)(*((unsigned int *)(temp_size)));
 
     // now read the data
     bytes_read = read(inputBufferFileFd, pBufHdr->pBuffer + pBufHdr->nOffset + nalSize, size);
-    if (bytes_read != size)
-    {
-      DEBUG_PRINT_ERROR("Failed to read frame\n");
+    if (bytes_read != size) {
+        DEBUG_PRINT_ERROR("Failed to read frame\n");
     }
 
     pBufHdr->nTimeStamp = timeStampLfile;
@@ -3323,49 +3032,43 @@
     /* reseek to beginning of sequence header */
     lseek64(inputBufferFileFd, -8, SEEK_CUR);
 #endif
-    if ((startcode & 0xFF000000) == 0xC5000000)
-    {
+    if ((startcode & 0xFF000000) == 0xC5000000) {
 
-      DEBUG_PRINT("Read_Buffer_From_RCV_File_Seq_Layer size_struct_C: %d\n", size_struct_C);
+        DEBUG_PRINT("Read_Buffer_From_RCV_File_Seq_Layer size_struct_C: %d\n", size_struct_C);
 #ifdef _MSM8974_
-      readOffset = read(inputBufferFileFd, pBufHdr->pBuffer, size_struct_C);
-      lseek64(inputBufferFileFd, 24, SEEK_CUR);
+        readOffset = read(inputBufferFileFd, pBufHdr->pBuffer, size_struct_C);
+        lseek64(inputBufferFileFd, 24, SEEK_CUR);
 #else
-      readOffset = read(inputBufferFileFd, pBufHdr->pBuffer, VC1_SEQ_LAYER_SIZE_WITHOUT_STRUCTC + size_struct_C);
+        readOffset = read(inputBufferFileFd, pBufHdr->pBuffer, VC1_SEQ_LAYER_SIZE_WITHOUT_STRUCTC + size_struct_C);
 #endif
-    }
-    else if((startcode & 0xFF000000) == 0x85000000)
-    {
-      // .RCV V1 file
+    } else if ((startcode & 0xFF000000) == 0x85000000) {
+        // .RCV V1 file
 
-      rcv_v1 = 1;
+        rcv_v1 = 1;
 
-      DEBUG_PRINT("Read_Buffer_From_RCV_File_Seq_Layer size_struct_C: %d\n", size_struct_C);
+        DEBUG_PRINT("Read_Buffer_From_RCV_File_Seq_Layer size_struct_C: %d\n", size_struct_C);
 #ifdef _MSM8974_
-      readOffset = read(inputBufferFileFd, pBufHdr->pBuffer, size_struct_C);
-      lseek64(inputBufferFileFd, 8, SEEK_CUR);
+        readOffset = read(inputBufferFileFd, pBufHdr->pBuffer, size_struct_C);
+        lseek64(inputBufferFileFd, 8, SEEK_CUR);
 #else
-      readOffset = read(inputBufferFileFd, pBufHdr->pBuffer, VC1_SEQ_LAYER_SIZE_V1_WITHOUT_STRUCTC + size_struct_C);
+        readOffset = read(inputBufferFileFd, pBufHdr->pBuffer, VC1_SEQ_LAYER_SIZE_V1_WITHOUT_STRUCTC + size_struct_C);
 #endif
 
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("Error: Unknown VC1 clip format %x\n", startcode);
+    } else {
+        DEBUG_PRINT_ERROR("Error: Unknown VC1 clip format %x\n", startcode);
     }
 
 #if 0
     {
-      int i=0;
-      printf("Read_Buffer_From_RCV_File, length %d readOffset %d\n", readOffset, readOffset);
-      for (i=0; i<36; i++)
-      {
-        printf("0x%.2x ", pBufHdr->pBuffer[i]);
-        if (i%16 == 15) {
-          printf("\n");
+        int i=0;
+        printf("Read_Buffer_From_RCV_File, length %d readOffset %d\n", readOffset, readOffset);
+        for (i=0; i<36; i++) {
+            printf("0x%.2x ", pBufHdr->pBuffer[i]);
+            if (i%16 == 15) {
+                printf("\n");
+            }
         }
-      }
-      printf("\n");
+        printf("\n");
     }
 #endif
     return readOffset;
@@ -3379,72 +3082,61 @@
     DEBUG_PRINT("Inside %s \n", __FUNCTION__);
 
     DEBUG_PRINT("Read_Buffer_From_RCV_File - nOffset %d\n", pBufHdr->nOffset);
-    if(rcv_v1)
-    {
-      /* for the case of RCV V1 format, the frame header is only of 4 bytes and has
-         only the frame size information */
+    if (rcv_v1) {
+        /* for the case of RCV V1 format, the frame header is only of 4 bytes and has
+           only the frame size information */
         readOffset = read(inputBufferFileFd, &len, 4);
         DEBUG_PRINT("Read_Buffer_From_RCV_File - framesize %d %x\n", len, len);
 
-    }
-    else
-    {
-      /* for a regular RCV file, 3 bytes comprise the frame size and 1 byte for key*/
+    } else {
+        /* for a regular RCV file, 3 bytes comprise the frame size and 1 byte for key*/
         readOffset = read(inputBufferFileFd, &len, 3);
         DEBUG_PRINT("Read_Buffer_From_RCV_File - framesize %d %x\n", len, len);
 
         readOffset = read(inputBufferFileFd, &key, 1);
-      if ( (key & 0x80) == false)
-      {
-        DEBUG_PRINT("Read_Buffer_From_RCV_File - Non IDR frame key %x\n", key);
-       }
+        if ( (key & 0x80) == false) {
+            DEBUG_PRINT("Read_Buffer_From_RCV_File - Non IDR frame key %x\n", key);
+        }
 
     }
 
-    if(!rcv_v1)
-    {
-      /* There is timestamp field only for regular RCV format and not for RCV V1 format*/
+    if (!rcv_v1) {
+        /* There is timestamp field only for regular RCV format and not for RCV V1 format*/
         readOffset = read(inputBufferFileFd, &pBufHdr->nTimeStamp, 4);
         DEBUG_PRINT("Read_Buffer_From_RCV_File - timeStamp %d\n", pBufHdr->nTimeStamp);
         pBufHdr->nTimeStamp *= 1000;
-    }
-    else
-    {
+    } else {
         pBufHdr->nTimeStamp = timeStampLfile;
         timeStampLfile += timestampInterval;
     }
 
-    if(len > pBufHdr->nAllocLen)
-    {
-       DEBUG_PRINT_ERROR("Error in sufficient buffer framesize %d, allocalen %d noffset %d\n",len,pBufHdr->nAllocLen, pBufHdr->nOffset);
-       readOffset = read(inputBufferFileFd, pBufHdr->pBuffer+pBufHdr->nOffset,
-                         pBufHdr->nAllocLen - pBufHdr->nOffset);
+    if (len > pBufHdr->nAllocLen) {
+        DEBUG_PRINT_ERROR("Error in sufficient buffer framesize %d, allocalen %d noffset %d\n",len,pBufHdr->nAllocLen, pBufHdr->nOffset);
+        readOffset = read(inputBufferFileFd, pBufHdr->pBuffer+pBufHdr->nOffset,
+                pBufHdr->nAllocLen - pBufHdr->nOffset);
 
-       loff_t off = (len - readOffset)*1LL;
-       lseek64(inputBufferFileFd, off ,SEEK_CUR);
-       return readOffset;
-    }
-    else {
+        loff_t off = (len - readOffset)*1LL;
+        lseek64(inputBufferFileFd, off ,SEEK_CUR);
+        return readOffset;
+    } else {
         readOffset = read(inputBufferFileFd, pBufHdr->pBuffer+pBufHdr->nOffset, len);
     }
-    if (readOffset != len)
-    {
-      DEBUG_PRINT("EOS reach or Reading error %d, %s \n", readOffset, strerror( errno ));
-      return 0;
+    if (readOffset != len) {
+        DEBUG_PRINT("EOS reach or Reading error %d, %s \n", readOffset, strerror( errno ));
+        return 0;
     }
 
 #if 0
     {
-      int i=0;
-      printf("Read_Buffer_From_RCV_File, length %d readOffset %d\n", len, readOffset);
-      for (i=0; i<64; i++)
-      {
-        printf("0x%.2x ", pBufHdr->pBuffer[i]);
-        if (i%16 == 15) {
-          printf("\n");
+        int i=0;
+        printf("Read_Buffer_From_RCV_File, length %d readOffset %d\n", len, readOffset);
+        for (i=0; i<64; i++) {
+            printf("0x%.2x ", pBufHdr->pBuffer[i]);
+            if (i%16 == 15) {
+                printf("\n");
+            }
         }
-      }
-      printf("\n");
+        printf("\n");
     }
 #endif
 
@@ -3467,87 +3159,78 @@
 
     numStartcodes = bHdrflag?1:2;
 
-    do
-    {
-      if (total_bytes == pBufHdr->nAllocLen)
-      {
-        DEBUG_PRINT_ERROR("Buffer overflow!");
-        break;
-      }
-      //Start codes are always byte aligned.
-      bytes_read = read(inputBufferFileFd, &pBuffer[readOffset],1 );
-
-      if(!bytes_read)
-      {
-          DEBUG_PRINT("\n Bytes read Zero \n");
-          break;
-      }
-      total_bytes++;
-      code <<= 8;
-      code |= (0x000000FF & pBufHdr->pBuffer[readOffset]);
-
-     if(!bSEQflag && (code == VC1_SEQUENCE_START_CODE)) {
-        if(startCode_cnt) bSEQflag = 1;
-      }
-
-      if(!bEntryflag && ( code == VC1_ENTRY_POINT_START_CODE)) {
-         if(startCode_cnt) bEntryflag = 1;
-      }
-
-      if(code == VC1_FRAME_START_CODE || code == VC1_FRAME_FIELD_CODE)
-      {
-         startCode_cnt++ ;
-      }
-
-      //VOP start code comparision
-      if(startCode_cnt == numStartcodes)
-      {
-        if (VC1_FRAME_START_CODE == (code & 0xFFFFFFFF) ||
-            VC1_FRAME_FIELD_CODE == (code & 0xFFFFFFFF))
-        {
-          previous_vc1_au = 0;
-          if(VC1_FRAME_FIELD_CODE == (code & 0xFFFFFFFF))
-          {
-              previous_vc1_au = 1;
-          }
-
-          if(!bHdrflag && (bSEQflag || bEntryflag)) {
-             lseek(inputBufferFileFd,-(SEQbytes+4),SEEK_CUR);
-             readOffset -= (SEQbytes+3);
-          }
-          else {
-            //Seek backwards by 4
-            lseek64(inputBufferFileFd, -4, SEEK_CUR);
-            readOffset-=3;
-          }
-
-          while(pBufHdr->pBuffer[readOffset-1] == 0)
-            readOffset--;
-
-          break;
+    do {
+        if (total_bytes == pBufHdr->nAllocLen) {
+            DEBUG_PRINT_ERROR("Buffer overflow!");
+            break;
         }
-      }
-      readOffset++;
-      if(bSEQflag || bEntryflag) {
-        SEQbytes++;
-      }
-    }while (1);
+        //Start codes are always byte aligned.
+        bytes_read = read(inputBufferFileFd, &pBuffer[readOffset],1 );
+
+        if (!bytes_read) {
+            DEBUG_PRINT("\n Bytes read Zero \n");
+            break;
+        }
+        total_bytes++;
+        code <<= 8;
+        code |= (0x000000FF & pBufHdr->pBuffer[readOffset]);
+
+        if (!bSEQflag && (code == VC1_SEQUENCE_START_CODE)) {
+            if (startCode_cnt) bSEQflag = 1;
+        }
+
+        if (!bEntryflag && ( code == VC1_ENTRY_POINT_START_CODE)) {
+            if (startCode_cnt) bEntryflag = 1;
+        }
+
+        if (code == VC1_FRAME_START_CODE || code == VC1_FRAME_FIELD_CODE) {
+            startCode_cnt++ ;
+        }
+
+        //VOP start code comparision
+        if (startCode_cnt == numStartcodes) {
+            if (VC1_FRAME_START_CODE == (code & 0xFFFFFFFF) ||
+                    VC1_FRAME_FIELD_CODE == (code & 0xFFFFFFFF)) {
+                previous_vc1_au = 0;
+                if (VC1_FRAME_FIELD_CODE == (code & 0xFFFFFFFF)) {
+                    previous_vc1_au = 1;
+                }
+
+                if (!bHdrflag && (bSEQflag || bEntryflag)) {
+                    lseek(inputBufferFileFd,-(SEQbytes+4),SEEK_CUR);
+                    readOffset -= (SEQbytes+3);
+                } else {
+                    //Seek backwards by 4
+                    lseek64(inputBufferFileFd, -4, SEEK_CUR);
+                    readOffset-=3;
+                }
+
+                while (pBufHdr->pBuffer[readOffset-1] == 0)
+                    readOffset--;
+
+                break;
+            }
+        }
+        readOffset++;
+        if (bSEQflag || bEntryflag) {
+            SEQbytes++;
+        }
+    } while (1);
 
     pBufHdr->nTimeStamp = timeStampLfile;
     timeStampLfile += timestampInterval;
 
 #if 0
     {
-      int i=0;
-      printf("Read_Buffer_From_VC1_File, readOffset %d\n", readOffset);
-      for (i=0; i<64; i++)
-      {
-        printf("0x%.2x ", pBufHdr->pBuffer[i]);
-        if (i%16 == 15) {
-          printf("\n");
+        int i=0;
+        printf("Read_Buffer_From_VC1_File, readOffset %d\n", readOffset);
+        for (i=0; i<64; i++) {
+            printf("0x%.2x ", pBufHdr->pBuffer[i]);
+            if (i%16 == 15) {
+                printf("\n");
+            }
         }
-      }
-      printf("\n");
+        printf("\n");
     }
 #endif
 
@@ -3558,7 +3241,7 @@
 {
 #define MAX_NO_B_FRMS 3 // Number of non-b-frames packed in each buffer
 #define N_PREV_FRMS_B 1 // Number of previous non-b-frames packed
-                        // with a set of consecutive b-frames
+    // with a set of consecutive b-frames
 #define FRM_ARRAY_SIZE (MAX_NO_B_FRMS + N_PREV_FRMS_B)
     char *p_buffer = NULL;
     unsigned int offset_array[FRM_ARRAY_SIZE];
@@ -3576,104 +3259,108 @@
     DEBUG_PRINT("Inside %s \n", __FUNCTION__);
 
     do {
-      p_buffer = (char *)pBufHdr->pBuffer + byte_pos;
+        p_buffer = (char *)pBufHdr->pBuffer + byte_pos;
 
-      bytes_read = read(inputBufferFileFd, p_buffer, NUMBER_OF_ARBITRARYBYTES_READ);
-      byte_pos += bytes_read;
-      for (byte_cntr = 0; byte_cntr < bytes_read && !pckt_ready; byte_cntr++) {
-        read_code <<= 8;
-        ((char*)&read_code)[0] = p_buffer[byte_cntr];
-        if (read_code == VOP_START_CODE) {
-          if (++byte_cntr < bytes_read) {
-            frame_type = p_buffer[byte_cntr];
-            frame_type &= 0x000000C0;
+        bytes_read = read(inputBufferFileFd, p_buffer, NUMBER_OF_ARBITRARYBYTES_READ);
+        byte_pos += bytes_read;
+        for (byte_cntr = 0; byte_cntr < bytes_read && !pckt_ready; byte_cntr++) {
+            read_code <<= 8;
+            ((char*)&read_code)[0] = p_buffer[byte_cntr];
+            if (read_code == VOP_START_CODE) {
+                if (++byte_cntr < bytes_read) {
+                    frame_type = p_buffer[byte_cntr];
+                    frame_type &= 0x000000C0;
 #ifdef __DEBUG_DIVX__
-            switch (frame_type) {
-              case 0x00: pckt_type[pckd_frms] = 'I'; break;
-              case 0x40: pckt_type[pckd_frms] = 'P'; break;
-              case 0x80: pckt_type[pckd_frms] = 'B'; break;
-              default: pckt_type[pckd_frms] = 'X';
-            }
-            pckd_frms++;
+                    switch (frame_type) {
+                        case 0x00:
+                            pckt_type[pckd_frms] = 'I';
+                            break;
+                        case 0x40:
+                            pckt_type[pckd_frms] = 'P';
+                            break;
+                        case 0x80:
+                            pckt_type[pckd_frms] = 'B';
+                            break;
+                        default:
+                            pckt_type[pckd_frms] = 'X';
+                    }
+                    pckd_frms++;
 #endif // __DEBUG_DIVX__
-            offset_array[vop_set_cntr] = byte_pos - bytes_read + byte_cntr - 4;
-            if (frame_type == 0x80) { // B Frame found!
-              if (!b_frames_found) {
-                // Try to packet N_PREV_FRMS_B previous frames
-                // with the next consecutive B frames
-                i = N_PREV_FRMS_B;
-                while ((vop_set_cntr - i) < 0 && i > 0) i--;
-                b_frm_idx = vop_set_cntr - i;
-                if (b_frm_idx > 0) {
-                  pckt_end_idx = b_frm_idx;
-                  pckt_ready = true;
+                    offset_array[vop_set_cntr] = byte_pos - bytes_read + byte_cntr - 4;
+                    if (frame_type == 0x80) { // B Frame found!
+                        if (!b_frames_found) {
+                            // Try to packet N_PREV_FRMS_B previous frames
+                            // with the next consecutive B frames
+                            i = N_PREV_FRMS_B;
+                            while ((vop_set_cntr - i) < 0 && i > 0) i--;
+                            b_frm_idx = vop_set_cntr - i;
+                            if (b_frm_idx > 0) {
+                                pckt_end_idx = b_frm_idx;
+                                pckt_ready = true;
 #ifdef __DEBUG_DIVX__
-                  pckt_type[b_frm_idx] = '\0';
-                  total_frames += b_frm_idx;
+                                pckt_type[b_frm_idx] = '\0';
+                                total_frames += b_frm_idx;
+#endif //__DEBUG_DIVX__
+                            }
+                        }
+                        b_frames_found++;
+                    } else if (b_frames_found) {
+                        pckt_end_idx = vop_set_cntr;
+                        pckt_ready = true;
+#ifdef __DEBUG_DIVX__
+                        pckt_type[pckd_frms - 1] = '\0';
+                        total_frames += pckd_frms - 1;
+#endif //__DEBUG_DIVX__
+                    } else if (vop_set_cntr == (FRM_ARRAY_SIZE -1)) {
+                        pckt_end_idx = MAX_NO_B_FRMS;
+                        pckt_ready = true;
+#ifdef __DEBUG_DIVX__
+                        pckt_type[pckt_end_idx] = '\0';
+                        total_frames += pckt_end_idx;
+#endif //__DEBUG_DIVX__
+                    } else
+                        vop_set_cntr++;
+                } else {
+                    // The vop start code was found in the last 4 bytes,
+                    // seek backwards by 4 to include this start code
+                    // with the next buffer.
+                    lseek64(inputBufferFileFd, -4, SEEK_CUR);
+                    byte_pos -= 4;
+#ifdef __DEBUG_DIVX__
+                    pckd_frms--;
 #endif //__DEBUG_DIVX__
                 }
-              }
-              b_frames_found++;
-            } else if (b_frames_found) {
-              pckt_end_idx = vop_set_cntr;
-              pckt_ready = true;
-#ifdef __DEBUG_DIVX__
-              pckt_type[pckd_frms - 1] = '\0';
-              total_frames += pckd_frms - 1;
-#endif //__DEBUG_DIVX__
-            } else if (vop_set_cntr == (FRM_ARRAY_SIZE -1)) {
-              pckt_end_idx = MAX_NO_B_FRMS;
-              pckt_ready = true;
-#ifdef __DEBUG_DIVX__
-              pckt_type[pckt_end_idx] = '\0';
-              total_frames += pckt_end_idx;
-#endif //__DEBUG_DIVX__
-            } else
-              vop_set_cntr++;
-          } else {
-            // The vop start code was found in the last 4 bytes,
-            // seek backwards by 4 to include this start code
-            // with the next buffer.
-            lseek64(inputBufferFileFd, -4, SEEK_CUR);
-            byte_pos -= 4;
-#ifdef __DEBUG_DIVX__
-            pckd_frms--;
-#endif //__DEBUG_DIVX__
-          }
+            }
         }
-      }
-      if (pckt_ready) {
-          loff_t off = (byte_pos - offset_array[pckt_end_idx]);
-          if ( lseek64(inputBufferFileFd, -1LL*off , SEEK_CUR) == -1 ){
-              DEBUG_PRINT_ERROR("lseek64 with offset = %lld failed with errno %d"
-                                ", current position =0x%llx", -1LL*off,
-                                errno, lseek64(inputBufferFileFd, 0, SEEK_CUR));
-          }
-      }
-      else {
-          char eofByte;
-          int ret = read(inputBufferFileFd, &eofByte, 1 );
-          if ( ret == 0 ) {
-              offset_array[vop_set_cntr] = byte_pos;
-              pckt_end_idx = vop_set_cntr;
-              pckt_ready = true;
+        if (pckt_ready) {
+            loff_t off = (byte_pos - offset_array[pckt_end_idx]);
+            if ( lseek64(inputBufferFileFd, -1LL*off , SEEK_CUR) == -1 ) {
+                DEBUG_PRINT_ERROR("lseek64 with offset = %lld failed with errno %d"
+                        ", current position =0x%llx", -1LL*off,
+                        errno, lseek64(inputBufferFileFd, 0, SEEK_CUR));
+            }
+        } else {
+            char eofByte;
+            int ret = read(inputBufferFileFd, &eofByte, 1 );
+            if ( ret == 0 ) {
+                offset_array[vop_set_cntr] = byte_pos;
+                pckt_end_idx = vop_set_cntr;
+                pckt_ready = true;
 #ifdef __DEBUG_DIVX__
-              pckt_type[pckd_frms] = '\0';
-              total_frames += pckd_frms;
+                pckt_type[pckd_frms] = '\0';
+                total_frames += pckd_frms;
 #endif //__DEBUG_DIVX__
-          }
-          else if (ret == 1){
-              if ( lseek64(inputBufferFileFd, -1, SEEK_CUR ) == -1 ){
-                  DEBUG_PRINT_ERROR("lseek64 failed with errno = %d, "
-                                    "current fileposition = %llx",
-                                    errno,
-                                    lseek64(inputBufferFileFd, 0, SEEK_CUR));
-              }
-          }
-          else {
-              DEBUG_PRINT_ERROR("Error when checking for EOF");
-          }
-      }
+            } else if (ret == 1) {
+                if ( lseek64(inputBufferFileFd, -1, SEEK_CUR ) == -1 ) {
+                    DEBUG_PRINT_ERROR("lseek64 failed with errno = %d, "
+                            "current fileposition = %llx",
+                            errno,
+                            lseek64(inputBufferFileFd, 0, SEEK_CUR));
+                }
+            } else {
+                DEBUG_PRINT_ERROR("Error when checking for EOF");
+            }
+        }
     } while (!pckt_ready);
     pBufHdr->nFilledLen = offset_array[pckt_end_idx];
     pBufHdr->nTimeStamp = timeStampLfile;
@@ -3681,8 +3368,8 @@
 #ifdef __DEBUG_DIVX__
     total_bytes += pBufHdr->nFilledLen;
     ALOGE("[DivX] Packet: Type[%s] Size[%u] TS[%lld] TB[%llx] NFrms[%lld]\n",
-      pckt_type, pBufHdr->nFilledLen, pBufHdr->nTimeStamp,
-	  total_bytes, total_frames);
+            pckt_type, pBufHdr->nFilledLen, pBufHdr->nTimeStamp,
+            total_bytes, total_frames);
 #endif //__DEBUG_DIVX__
     return pBufHdr->nFilledLen;
 }
@@ -3703,18 +3390,14 @@
 
     pBufHdr->nTimeStamp = timeStampLfile;
 
-    if (pBufHdr != NULL)
-    {
+    if (pBufHdr != NULL) {
         p_buffer = (char *)pBufHdr->pBuffer + pBufHdr->nOffset;
-    }
-    else
-    {
+    } else {
         DEBUG_PRINT("\n ERROR:Read_Buffer_From_DivX_311_File: pBufHdr is NULL\n");
         return 0;
     }
 
-    if (p_buffer == NULL)
-    {
+    if (p_buffer == NULL) {
         DEBUG_PRINT("\n ERROR:Read_Buffer_From_DivX_311_File: p_bufhdr is NULL\n");
         return 0;
     }
@@ -3733,8 +3416,8 @@
 
     //the packet is ready to be sent
     DEBUG_PRINT("\nReturning Read Buffer from Divx 311: TS=[%ld], Offset=[%d]\n",
-           (long int)pBufHdr->nTimeStamp,
-           n_offset );
+            (long int)pBufHdr->nTimeStamp,
+            n_offset );
 
     return n_offset;
 }
@@ -3749,43 +3432,37 @@
     unsigned int frame_size = 0;
     unsigned int num_bytes_size = 4;
     unsigned int num_bytes_frame_type = 1;
-	unsigned long long time_stamp;
+    unsigned long long time_stamp;
     unsigned int n_offset = pBufHdr->nOffset;
-	static int ivf_header_read;
+    static int ivf_header_read;
 
-	if (pBufHdr != NULL)
-    {
+    if (pBufHdr != NULL) {
         p_buffer = (char *)pBufHdr->pBuffer + pBufHdr->nOffset;
-    }
-    else
-    {
+    } else {
         DEBUG_PRINT("\n ERROR:Read_Buffer_From_DivX_311_File: pBufHdr is NULL\n");
         return 0;
     }
 
-    if (p_buffer == NULL)
-    {
+    if (p_buffer == NULL) {
         DEBUG_PRINT("\n ERROR:Read_Buffer_From_DivX_311_File: p_bufhdr is NULL\n");
         return 0;
     }
 
-	if(ivf_header_read == 0) {
-	bytes_read = read(inputBufferFileFd, p_buffer, 32);
-	ivf_header_read = 1;
-	if(p_buffer[0] == 'D' && p_buffer[1] == 'K' && p_buffer[2] == 'I' && p_buffer[3] == 'F')
-	{
-	printf(" \n IVF header found \n ");
-	} else
-	{
-		printf(" \n No IVF header found \n ");
-		lseek(inputBufferFileFd, -32, SEEK_CUR);
+    if (ivf_header_read == 0) {
+        bytes_read = read(inputBufferFileFd, p_buffer, 32);
+        ivf_header_read = 1;
+        if (p_buffer[0] == 'D' && p_buffer[1] == 'K' && p_buffer[2] == 'I' && p_buffer[3] == 'F') {
+            printf(" \n IVF header found \n ");
+        } else {
+            printf(" \n No IVF header found \n ");
+            lseek(inputBufferFileFd, -32, SEEK_CUR);
+        }
     }
-	}
-	bytes_read = read(inputBufferFileFd, &frame_size, 4);
-	bytes_read = read(inputBufferFileFd, &time_stamp, 8);
-	n_offset += read(inputBufferFileFd, p_buffer, frame_size);
-	pBufHdr->nTimeStamp = time_stamp;
-	return n_offset;
+    bytes_read = read(inputBufferFileFd, &frame_size, 4);
+    bytes_read = read(inputBufferFileFd, &time_stamp, 8);
+    n_offset += read(inputBufferFileFd, p_buffer, frame_size);
+    pBufHdr->nTimeStamp = time_stamp;
+    return n_offset;
 }
 #endif
 static int open_video_file ()
@@ -3794,50 +3471,45 @@
     char outputfilename[512];
     DEBUG_PRINT("Inside %s filename=%s\n", __FUNCTION__, in_filename);
 
-    if ( (inputBufferFileFd = open( in_filename, O_RDONLY | O_LARGEFILE) ) == -1 ){
+    if ( (inputBufferFileFd = open( in_filename, O_RDONLY | O_LARGEFILE) ) == -1 ) {
         DEBUG_PRINT_ERROR("Error - i/p file %s could NOT be opened errno = %d\n",
-                          in_filename, errno);
+                in_filename, errno);
         error_code = -1;
-    }
-    else {
+    } else {
         DEBUG_PRINT_ERROR("i/p file %s is opened \n", in_filename);
     }
 
     if (takeYuvLog) {
         strlcpy(outputfilename, "yuvframes.yuv", 14);
         outputBufferFile = fopen (outputfilename, "ab");
-        if (outputBufferFile == NULL)
-        {
-          DEBUG_PRINT_ERROR("ERROR - o/p file %s could NOT be opened\n", outputfilename);
-          error_code = -1;
-        }
-        else
-        {
-          DEBUG_PRINT("O/p file %s is opened \n", outputfilename);
+        if (outputBufferFile == NULL) {
+            DEBUG_PRINT_ERROR("ERROR - o/p file %s could NOT be opened\n", outputfilename);
+            error_code = -1;
+        } else {
+            DEBUG_PRINT("O/p file %s is opened \n", outputfilename);
         }
     }
 #ifdef _MSM8974_
     /*if (!crcFile) {
-	    crcFile = fopen(crclogname, "ab");
-	    if (!crcFile) {
-		    printf("Failed to open CRC file\n");
-		    error_code = -1;
-	    }
-    }*/
+      crcFile = fopen(crclogname, "ab");
+      if (!crcFile) {
+      printf("Failed to open CRC file\n");
+      error_code = -1;
+      }
+      }*/
 #endif
     return error_code;
 }
 
 void swap_byte(char *pByte, int nbyte)
 {
-  int i=0;
+    int i=0;
 
-  for (i=0; i<nbyte/2; i++)
-  {
-    pByte[i] ^= pByte[nbyte-i-1];
-    pByte[nbyte-i-1] ^= pByte[i];
-    pByte[i] ^= pByte[nbyte-i-1];
-  }
+    for (i=0; i<nbyte/2; i++) {
+        pByte[i] ^= pByte[nbyte-i-1];
+        pByte[nbyte-i-1] ^= pByte[i];
+        pByte[i] ^= pByte[nbyte-i-1];
+    }
 }
 
 int drawBG(void)
@@ -3851,8 +3523,7 @@
 #endif
     void *fb_buf = mmap (NULL, finfo.smem_len,PROT_READ|PROT_WRITE, MAP_SHARED, fb_fd, 0);
 
-    if (fb_buf == MAP_FAILED)
-    {
+    if (fb_buf == MAP_FAILED) {
         printf("ERROR: Framebuffer MMAP failed!\n");
         close(fb_fd);
         return -1;
@@ -3861,17 +3532,15 @@
     vinfo.yoffset = 0;
     p = (long *)fb_buf;
 
-    for (i=0; i < vinfo.xres * vinfo.yres; i++)
-    {
-    #ifdef FRAMEBUFFER_32
+    for (i=0; i < vinfo.xres * vinfo.yres; i++) {
+#ifdef FRAMEBUFFER_32
         *p++ = COLOR_BLACK_RGBA_8888;
-    #else
+#else
         *p++ = CLR_KEY;
-    #endif
+#endif
     }
 
-    if (ioctl(fb_fd, FBIOPAN_DISPLAY, &vinfo) < 0)
-    {
+    if (ioctl(fb_fd, FBIOPAN_DISPLAY, &vinfo) < 0) {
         printf("ERROR: FBIOPAN_DISPLAY failed! line=%d\n", __LINE__);
         return -1;
     }
@@ -3886,8 +3555,8 @@
     int vsync_en = enable;
     ret = ioctl(fb_fd, MSMFB_OVERLAY_VSYNC_CTRL, &vsync_en);
     if (ret)
-       printf("\n MSMFB_OVERLAY_VSYNC_CTRL failed! (Line %d)\n",
-               __LINE__);
+        printf("\n MSMFB_OVERLAY_VSYNC_CTRL failed! (Line %d)\n",
+                __LINE__);
     return ret;
 }
 
@@ -3900,8 +3569,7 @@
     overlayp->src.height = sliceheight;
 #ifdef MAX_RES_720P
     overlayp->src.format = MDP_Y_CRCB_H2V2;
-    if(color_fmt == (OMX_COLOR_FORMATTYPE)QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka)
-    {
+    if (color_fmt == (OMX_COLOR_FORMATTYPE)QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka) {
         overlayp->src.format = MDP_Y_CRCB_H2V2_TILE;
     }
 #endif
@@ -3916,28 +3584,22 @@
     overlayp->src_rect.w = width;
     overlayp->src_rect.h = height;
 
-    if(width >= vinfo.xres)
-    {
+    if (width >= vinfo.xres) {
         overlayp->dst_rect.x = 0;
         overlayp->dst_rect.w = vinfo.xres;
-    }
-    else
-    {
+    } else {
         overlayp->dst_rect.x = (vinfo.xres - width)/2;
         overlayp->dst_rect.w = width;
     }
 
-    if(height >= vinfo.yres)
-    {
+    if (height >= vinfo.yres) {
         overlayp->dst_rect.h = (overlayp->dst_rect.w * height)/width;
         overlayp->dst_rect.y = 0;
         if (overlayp->dst_rect.h < vinfo.yres)
             overlayp->dst_rect.y = (vinfo.yres - overlayp->dst_rect.h)/2;
         else
             overlayp->dst_rect.h = vinfo.yres;
-    }
-    else
-    {
+    } else {
         overlayp->dst_rect.y = (vinfo.yres - height)/2;
         overlayp->dst_rect.h = height;
     }
@@ -3946,7 +3608,7 @@
     overlayp->horz_deci = 0;
     overlayp->vert_deci = 0;
     int minHorDeci = 0;
-    if(overlayp->src_rect.w > 2048) {
+    if (overlayp->src_rect.w > 2048) {
         //If the client sends us something > what a layer mixer supports
         //then it means it doesn't want to use split-pipe but wants us to
         //decimate. A minimum decimation of 2 will ensure that the width is
@@ -3968,12 +3630,12 @@
     horDscale /= 4.0f;
     verDscale /= 4.0f;
 
-    if(horDscale < minHorDeci)
+    if (horDscale < minHorDeci)
         horDscale = minHorDeci;
-    if((int)horDscale)
+    if ((int)horDscale)
         overlayp->horz_deci = (int)log2f(horDscale);
 
-    if((int)verDscale)
+    if ((int)verDscale)
         overlayp->vert_deci = (int)log2f(verDscale);
 
     printf("overlayp->src.width = %u \n", overlayp->src.width);
@@ -4000,8 +3662,7 @@
     overlay_vsync_ctrl(OMX_TRUE);
     drawBG();
     vid_buf_front_id = ioctl(fb_fd, MSMFB_OVERLAY_SET, overlayp);
-    if (vid_buf_front_id < 0)
-    {
+    if (vid_buf_front_id < 0) {
         printf("ERROR: MSMFB_OVERLAY_SET failed! line=%d\n", __LINE__);
     }
     vid_buf_front_id = overlayp->id;
@@ -4020,16 +3681,14 @@
 
     DEBUG_PRINT("overlay_fb:");
     ov_front.id = overlayp->id;
-    if (pBufHdr->pPlatformPrivate == NULL)
-    {
+    if (pBufHdr->pPlatformPrivate == NULL) {
         ALOGE("overlay_fb: pPlatformPrivate is null");
         return -1;
     }
     pPMEMInfo  = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
-                ((OMX_QCOM_PLATFORM_PRIVATE_LIST *)
-                    pBufHdr->pPlatformPrivate)->entryList->entry;
-    if (pPMEMInfo == NULL)
-    {
+        ((OMX_QCOM_PLATFORM_PRIVATE_LIST *)
+         pBufHdr->pPlatformPrivate)->entryList->entry;
+    if (pPMEMInfo == NULL) {
 
         ALOGE("overlay_fb: pmem_info is null");
         return -1;
@@ -4049,14 +3708,12 @@
 
     DEBUG_PRINT("\n ov_front.data.memory_id = %d", ov_front.data.memory_id);
     DEBUG_PRINT("\n ov_front.data.offset = %u", ov_front.data.offset);
-    if (ioctl(fb_fd, MSMFB_OVERLAY_PLAY, (void*)&ov_front))
-    {
+    if (ioctl(fb_fd, MSMFB_OVERLAY_PLAY, (void*)&ov_front)) {
         printf("\nERROR! MSMFB_OVERLAY_PLAY failed at frame (Line %d)\n",
-            __LINE__);
+                __LINE__);
         return -1;
     }
-    if (ioctl(fb_fd, FBIOPAN_DISPLAY, &vinfo) < 0)
-    {
+    if (ioctl(fb_fd, FBIOPAN_DISPLAY, &vinfo) < 0) {
         printf("ERROR: FBIOPAN_DISPLAY failed! line=%d\n", __LINE__);
         return -1;
     }
@@ -4067,8 +3724,7 @@
 
 void overlay_unset()
 {
-    if (ioctl(fb_fd, MSMFB_OVERLAY_UNSET, &vid_buf_front_id))
-    {
+    if (ioctl(fb_fd, MSMFB_OVERLAY_UNSET, &vid_buf_front_id)) {
         printf("\nERROR! MSMFB_OVERLAY_UNSET failed! (Line %d)\n", __LINE__);
     }
 }
@@ -4089,12 +3745,11 @@
     struct mdp_blit_req *e;
     union {
         char dummy[sizeof(struct mdp_blit_req_list) +
-               sizeof(struct mdp_blit_req) * 1];
+            sizeof(struct mdp_blit_req) * 1];
         struct mdp_blit_req_list list;
     } img;
 
-    if (fb_fd < 0)
-    {
+    if (fb_fd < 0) {
         DEBUG_PRINT_ERROR("Warning: /dev/fb0 is not opened!\n");
         return;
     }
@@ -4109,21 +3764,19 @@
     // read to the end of existing extra data sections
     pExtraData = (OMX_OTHER_EXTRADATATYPE*)addr;
 
-    while (addr < end && pExtraData->eType != OMX_ExtraDataFrameInfo)
-    {
-            addr += pExtraData->nSize;
-            pExtraData = (OMX_OTHER_EXTRADATATYPE*)addr;
+    while (addr < end && pExtraData->eType != OMX_ExtraDataFrameInfo) {
+        addr += pExtraData->nSize;
+        pExtraData = (OMX_OTHER_EXTRADATATYPE*)addr;
     }
 
-    if (pExtraData->eType != OMX_ExtraDataFrameInfo)
-    {
-       DEBUG_PRINT_ERROR("pExtraData->eType %d pExtraData->nSize %d\n",pExtraData->eType,pExtraData->nSize);
+    if (pExtraData->eType != OMX_ExtraDataFrameInfo) {
+        DEBUG_PRINT_ERROR("pExtraData->eType %d pExtraData->nSize %d\n",pExtraData->eType,pExtraData->nSize);
     }
     pExtraFrameInfo = (OMX_QCOM_EXTRADATA_FRAMEINFO *)pExtraData->data;
 
-   pPMEMInfo  = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
-                ((OMX_QCOM_PLATFORM_PRIVATE_LIST *)
-                    pBufHdr->pPlatformPrivate)->entryList->entry;
+    pPMEMInfo  = (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *)
+        ((OMX_QCOM_PLATFORM_PRIVATE_LIST *)
+         pBufHdr->pPlatformPrivate)->entryList->entry;
 #if defined(_ANDROID_) && !defined(USE_EGL_IMAGE_TEST_APP) && !defined(USE_EXTERN_PMEM_BUF)
     vheap = (MemoryHeapBase *)pPMEMInfo->pmem_fd;
 #endif
@@ -4137,7 +3790,7 @@
     e->src.width = portFmt.format.video.nStride;
     e->src.height = portFmt.format.video.nSliceHeight;
     e->src.format = MDP_Y_CBCR_H2V2;
-        e->src.offset = pPMEMInfo->offset;
+    e->src.offset = pPMEMInfo->offset;
 #if defined(_ANDROID_) && !defined(USE_EGL_IMAGE_TEST_APP) && !defined(USE_EXTERN_PMEM_BUF)
     e->src.memory_id = vheap->getHeapID();
 #else
@@ -4154,40 +3807,41 @@
 
     e->transp_mask = 0xffffffff;
     DEBUG_PRINT("Frame interlace type %d!\n", pExtraFrameInfo->interlaceType);
-    if(pExtraFrameInfo->interlaceType != OMX_QCOM_InterlaceFrameProgressive)
-    {
-       DEBUG_PRINT("Interlaced Frame!\n");
-       e->flags = MDP_DEINTERLACE;
-    }
-    else
+    if (pExtraFrameInfo->interlaceType != OMX_QCOM_InterlaceFrameProgressive) {
+        DEBUG_PRINT("Interlaced Frame!\n");
+        e->flags = MDP_DEINTERLACE;
+    } else
         e->flags = 0;
     e->alpha = 0xff;
 
-    switch(displayWindow)
-    {
-    case 1: destx = 0;
+    switch (displayWindow) {
+        case 1:
+            destx = 0;
             desty = 0;
             destW = vinfo.xres/2;
             destH = vinfo.yres/2;
             break;
-    case 2: destx = vinfo.xres/2;
+        case 2:
+            destx = vinfo.xres/2;
             desty = 0;
             destW = vinfo.xres/2;
             destH = vinfo.yres/2;
             break;
 
-    case 3: destx = 0;
+        case 3:
+            destx = 0;
             desty = vinfo.yres/2;
             destW = vinfo.xres/2;
             destH = vinfo.yres/2;
             break;
-     case 4: destx = vinfo.xres/2;
+        case 4:
+            destx = vinfo.xres/2;
             desty = vinfo.yres/2;
             destW = vinfo.xres/2;
             destH = vinfo.yres/2;
             break;
-     case 0:
-     default:
+        case 0:
+        default:
             destx = 0;
             desty = 0;
             destW = vinfo.xres;
@@ -4195,12 +3849,12 @@
     }
 
 
-        if(portFmt.format.video.nFrameWidth < destW)
-          destW = portFmt.format.video.nFrameWidth ;
+    if (portFmt.format.video.nFrameWidth < destW)
+        destW = portFmt.format.video.nFrameWidth ;
 
 
-        if(portFmt.format.video.nFrameHeight < destH)
-           destH = portFmt.format.video.nFrameHeight;
+    if (portFmt.format.video.nFrameHeight < destH)
+        destH = portFmt.format.video.nFrameHeight;
 
     e->dst_rect.x = destx;
     e->dst_rect.y = desty;
@@ -4241,32 +3895,28 @@
     pthread_mutex_unlock(&enable_lock);
     // wait for Disable event to come back
     wait_for_event();
-    if(p_eglHeaders) {
+    if (p_eglHeaders) {
         free(p_eglHeaders);
         p_eglHeaders = NULL;
     }
-    if (pPMEMInfo)
-    {
+    if (pPMEMInfo) {
         DEBUG_PRINT("Freeing in external pmem case:PMEM");
         free(pPMEMInfo);
         pPMEMInfo = NULL;
     }
-    if (pPlatformEntry)
-    {
+    if (pPlatformEntry) {
         DEBUG_PRINT("Freeing in external pmem case:ENTRY");
         free(pPlatformEntry);
         pPlatformEntry = NULL;
     }
-    if (pPlatformList)
-    {
+    if (pPlatformList) {
         DEBUG_PRINT("Freeing in external pmem case:LIST");
         free(pPlatformList);
         pPlatformList = NULL;
     }
-    if (currentStatus == ERROR_STATE)
-    {
-      do_freeHandle_and_clean_up(true);
-      return -1;
+    if (currentStatus == ERROR_STATE) {
+        do_freeHandle_and_clean_up(true);
+        return -1;
     }
     DEBUG_PRINT("OP PORT DISABLED!\n");
     return 0;
@@ -4297,61 +3947,52 @@
         }
     }
 
-    if (use_external_pmem_buf)
-    {
+    if (use_external_pmem_buf) {
         DEBUG_PRINT("Enable op port: calling use_buffer_mult_fd\n");
         error =  use_output_buffer_multiple_fd(dec_handle,
-                                               &pOutYUVBufHdrs,
-                                               portFmt.nPortIndex,
-                                               portFmt.nBufferSize,
-                                               portFmt.nBufferCountActual);
-    }
-    else
-    {
+                &pOutYUVBufHdrs,
+                portFmt.nPortIndex,
+                portFmt.nBufferSize,
+                portFmt.nBufferCountActual);
+    } else {
         error = Allocate_Buffer(dec_handle, &pOutYUVBufHdrs, portFmt.nPortIndex,
-                                portFmt.nBufferCountActual, portFmt.nBufferSize);
+                portFmt.nBufferCountActual, portFmt.nBufferSize);
     }
     if (error != OMX_ErrorNone) {
         DEBUG_PRINT_ERROR("Error - OMX_AllocateBuffer Output buffer error\n");
         return -1;
-    }
-    else
-    {
+    } else {
         DEBUG_PRINT("OMX_AllocateBuffer Output buffer success\n");
         free_op_buf_cnt = portFmt.nBufferCountActual;
     }
 #else
     error =  use_output_buffer(dec_handle,
-                       &pOutYUVBufHdrs,
-                        portFmt.nPortIndex,
-                        portFmt.nBufferSize,
-                        portFmt.nBufferCountActual);
+            &pOutYUVBufHdrs,
+            portFmt.nPortIndex,
+            portFmt.nBufferSize,
+            portFmt.nBufferCountActual);
     free_op_buf_cnt = portFmt.nBufferCountActual;
     if (error != OMX_ErrorNone) {
-       DEBUG_PRINT_ERROR("ERROR - OMX_UseBuffer Input buffer failed");
-       return -1;
-    }
-    else {
-       DEBUG_PRINT("OMX_UseBuffer Input buffer success\n");
+        DEBUG_PRINT_ERROR("ERROR - OMX_UseBuffer Input buffer failed");
+        return -1;
+    } else {
+        DEBUG_PRINT("OMX_UseBuffer Input buffer success\n");
     }
 
 #endif
     // wait for enable event to come back
     wait_for_event();
-    if (currentStatus == ERROR_STATE)
-    {
-      do_freeHandle_and_clean_up(true);
-      return -1;
+    if (currentStatus == ERROR_STATE) {
+        do_freeHandle_and_clean_up(true);
+        return -1;
     }
-    if (pOutYUVBufHdrs == NULL)
-    {
+    if (pOutYUVBufHdrs == NULL) {
         DEBUG_PRINT_ERROR("Error - pOutYUVBufHdrs is NULL\n");
         return -1;
     }
-    for(bufCnt=0; bufCnt < portFmt.nBufferCountActual; ++bufCnt) {
+    for (bufCnt=0; bufCnt < portFmt.nBufferCountActual; ++bufCnt) {
         DEBUG_PRINT("OMX_FillThisBuffer on output buf no.%d\n",bufCnt);
-        if (pOutYUVBufHdrs[bufCnt] == NULL)
-        {
+        if (pOutYUVBufHdrs[bufCnt] == NULL) {
             DEBUG_PRINT_ERROR("Error - pOutYUVBufHdrs[%d] is NULL\n", bufCnt);
             return -1;
         }
@@ -4360,9 +4001,7 @@
         ret = OMX_FillThisBuffer(dec_handle, pOutYUVBufHdrs[bufCnt]);
         if (OMX_ErrorNone != ret) {
             DEBUG_PRINT_ERROR("ERROR - OMX_FillThisBuffer failed with result %d\n", ret);
-        }
-        else
-        {
+        } else {
             DEBUG_PRINT("OMX_FillThisBuffer success!\n");
             free_op_buf_cnt--;
         }
@@ -4375,14 +4014,14 @@
 {
     DEBUG_PRINT("PORT_SETTING_CHANGE_STATE\n");
     if (disable_output_port() != 0)
-	    return -1;
+        return -1;
 
     /* Port for which the Client needs to obtain info */
     portFmt.nPortIndex = 1;
     OMX_GetParameter(dec_handle,OMX_IndexParamPortDefinition,&portFmt);
     DEBUG_PRINT("Min Buffer Count=%d", portFmt.nBufferCountMin);
     DEBUG_PRINT("Buffer Size=%d", portFmt.nBufferSize);
-    if(OMX_DirOutput != portFmt.eDir) {
+    if (OMX_DirOutput != portFmt.eDir) {
         DEBUG_PRINT_ERROR("Error - Expect Output Port\n");
         return -1;
     }
@@ -4394,24 +4033,22 @@
     crop_rect.nWidth = width;
     crop_rect.nHeight = height;
 
-    if (displayYuv == 2)
-    {
-      DEBUG_PRINT("Reconfiguration at middle of playback...");
-      close_display();
-      if (open_display() != 0)
-      {
-        printf("\n Error opening display! Video won't be displayed...");
-        displayYuv = 0;
-      }
+    if (displayYuv == 2) {
+        DEBUG_PRINT("Reconfiguration at middle of playback...");
+        close_display();
+        if (open_display() != 0) {
+            printf("\n Error opening display! Video won't be displayed...");
+            displayYuv = 0;
+        }
     }
 
     if (displayYuv)
         overlay_set();
 
     if (enable_output_port() != 0)
-	    return -1;
+        return -1;
     DEBUG_PRINT("PORT_SETTING_CHANGE DONE!\n");
-	return 0;
+    return 0;
 }
 
 void free_output_buffers()
@@ -4420,35 +4057,31 @@
     OMX_BUFFERHEADERTYPE *pBuffer = (OMX_BUFFERHEADERTYPE *)pop(fbd_queue);
     while (pBuffer) {
         DEBUG_PRINT("\n pOutYUVBufHdrs %p p_eglHeaders %p output_use_buffer %d",
-               pOutYUVBufHdrs,p_eglHeaders,output_use_buffer);
-        if(pOutYUVBufHdrs && p_eglHeaders && output_use_buffer)
-        {
-           index = pBuffer - pOutYUVBufHdrs[0];
-           DEBUG_PRINT("\n Index of free buffer %d",index);
-           DEBUG_PRINT("\n Address freed %p size freed %d",pBuffer->pBuffer,
-                  pBuffer->nAllocLen);
-           munmap((void *)use_buf_virt_addr[index],pBuffer->nAllocLen);
-           if(p_eglHeaders[index])
-           {
-               close(p_eglHeaders[index]->pmem_fd);
-               free(p_eglHeaders[index]);
-               p_eglHeaders[index] = NULL;
-           }
+                pOutYUVBufHdrs,p_eglHeaders,output_use_buffer);
+        if (pOutYUVBufHdrs && p_eglHeaders && output_use_buffer) {
+            index = pBuffer - pOutYUVBufHdrs[0];
+            DEBUG_PRINT("\n Index of free buffer %d",index);
+            DEBUG_PRINT("\n Address freed %p size freed %d",pBuffer->pBuffer,
+                    pBuffer->nAllocLen);
+            munmap((void *)use_buf_virt_addr[index],pBuffer->nAllocLen);
+            if (p_eglHeaders[index]) {
+                close(p_eglHeaders[index]->pmem_fd);
+                free(p_eglHeaders[index]);
+                p_eglHeaders[index] = NULL;
+            }
         }
 
-        if (pOutYUVBufHdrs && use_external_pmem_buf)
-        {
+        if (pOutYUVBufHdrs && use_external_pmem_buf) {
             index = pBuffer - pOutYUVBufHdrs[0];
             DEBUG_PRINT("\n Address freed %p size freed %d,virt=0x%x,pmem_fd=0x%x",
-                              pBuffer->pBuffer,
-                              pBuffer->nAllocLen,
-                              use_buf_virt_addr[index],
-                              pPMEMInfo[index].pmem_fd);
+                    pBuffer->pBuffer,
+                    pBuffer->nAllocLen,
+                    use_buf_virt_addr[index],
+                    pPMEMInfo[index].pmem_fd);
             munmap((void *)use_buf_virt_addr[index],pBuffer->nAllocLen);
             getFreePmem();
             use_buf_virt_addr[index] = -1;
-            if (&pPMEMInfo[index])
-            {
+            if (&pPMEMInfo[index]) {
                 close(pPMEMInfo[index].pmem_fd);
                 pPMEMInfo[index].pmem_fd = -1;
             }
@@ -4461,83 +4094,79 @@
 
 #ifndef USE_ION
 static bool align_pmem_buffers(int pmem_fd, OMX_U32 buffer_size,
-                                  OMX_U32 alignment)
+        OMX_U32 alignment)
 {
-  struct pmem_allocation allocation;
-  allocation.size = buffer_size;
-  allocation.align = clip2(alignment);
+    struct pmem_allocation allocation;
+    allocation.size = buffer_size;
+    allocation.align = clip2(alignment);
 
-  if (allocation.align < 4096)
-  {
-    allocation.align = 4096;
-  }
-  if (ioctl(pmem_fd, PMEM_ALLOCATE_ALIGNED, &allocation) < 0)
-  {
-    DEBUG_PRINT_ERROR("\n Aligment failed with pmem driver");
-    return false;
-  }
-  return true;
+    if (allocation.align < 4096) {
+        allocation.align = 4096;
+    }
+    if (ioctl(pmem_fd, PMEM_ALLOCATE_ALIGNED, &allocation) < 0) {
+        DEBUG_PRINT_ERROR("\n Aligment failed with pmem driver");
+        return false;
+    }
+    return true;
 }
 #endif
 
 int open_display()
 {
 #ifdef _ANDROID_
-  DEBUG_PRINT("\n Opening /dev/graphics/fb0");
-  fb_fd = open("/dev/graphics/fb0", O_RDWR);
+    DEBUG_PRINT("\n Opening /dev/graphics/fb0");
+    fb_fd = open("/dev/graphics/fb0", O_RDWR);
 #else
-  DEBUG_PRINT("\n Opening /dev/fb0");
-  fb_fd = open("/dev/fb0", O_RDWR);
+    DEBUG_PRINT("\n Opening /dev/fb0");
+    fb_fd = open("/dev/fb0", O_RDWR);
 #endif
-  if (fb_fd < 0) {
-    printf("[omx_vdec_test] - ERROR - can't open framebuffer!\n");
-    return -1;
-  }
+    if (fb_fd < 0) {
+        printf("[omx_vdec_test] - ERROR - can't open framebuffer!\n");
+        return -1;
+    }
 
-  DEBUG_PRINT("\n fb_fd = %d", fb_fd);
-  if (ioctl(fb_fd, FBIOGET_FSCREENINFO, &finfo) < 0)
-  {
-    printf("[omx_vdec_test] - ERROR - can't retrieve fscreenInfo!\n");
-    close(fb_fd);
-    return -1;
-  }
-  if (ioctl(fb_fd, FBIOGET_VSCREENINFO, &vinfo) < 0)
-  {
-    printf("[omx_vdec_test] - ERROR - can't retrieve vscreenInfo!\n");
-    close(fb_fd);
-    return -1;
-  }
-  printf("Display xres = %d, yres = %d \n", vinfo.xres, vinfo.yres);
-  return 0;
+    DEBUG_PRINT("\n fb_fd = %d", fb_fd);
+    if (ioctl(fb_fd, FBIOGET_FSCREENINFO, &finfo) < 0) {
+        printf("[omx_vdec_test] - ERROR - can't retrieve fscreenInfo!\n");
+        close(fb_fd);
+        return -1;
+    }
+    if (ioctl(fb_fd, FBIOGET_VSCREENINFO, &vinfo) < 0) {
+        printf("[omx_vdec_test] - ERROR - can't retrieve vscreenInfo!\n");
+        close(fb_fd);
+        return -1;
+    }
+    printf("Display xres = %d, yres = %d \n", vinfo.xres, vinfo.yres);
+    return 0;
 }
 
 void close_display()
 {
-  overlay_unset();
-  overlay_vsync_ctrl(OMX_FALSE);
-  close(fb_fd);
-  fb_fd = -1;
+    overlay_unset();
+    overlay_vsync_ctrl(OMX_FALSE);
+    close(fb_fd);
+    fb_fd = -1;
 }
 
 void getFreePmem()
 {
 #ifndef USE_ION
-   int ret = -1;
-   /*Open pmem device and query free pmem*/
-   int pmem_fd = open (PMEM_DEVICE,O_RDWR);
+    int ret = -1;
+    /*Open pmem device and query free pmem*/
+    int pmem_fd = open (PMEM_DEVICE,O_RDWR);
 
-   if(pmem_fd < 0) {
-     ALOGE("Unable to open pmem device");
-     return;
-   }
-   struct pmem_freespace fs;
-   ret = ioctl(pmem_fd, PMEM_GET_FREE_SPACE, &fs);
-   if(ret) {
-     ALOGE("IOCTL to query pmem free space failed");
-     goto freespace_query_failed;
-   }
-   ALOGE("Available free space %lx largest chunk %lx\n", fs.total, fs.largest);
+    if (pmem_fd < 0) {
+        ALOGE("Unable to open pmem device");
+        return;
+    }
+    struct pmem_freespace fs;
+    ret = ioctl(pmem_fd, PMEM_GET_FREE_SPACE, &fs);
+    if (ret) {
+        ALOGE("IOCTL to query pmem free space failed");
+        goto freespace_query_failed;
+    }
+    ALOGE("Available free space %lx largest chunk %lx\n", fs.total, fs.largest);
 freespace_query_failed:
-   close(pmem_fd);
+    close(pmem_fd);
 #endif
 }
diff --git a/mm-video-v4l2/vidc/venc/inc/camera_test.h b/mm-video-v4l2/vidc/venc/inc/camera_test.h
old mode 100755
new mode 100644
index 53bc2da..84c5e5f
--- a/mm-video-v4l2/vidc/venc/inc/camera_test.h
+++ b/mm-video-v4l2/vidc/venc/inc/camera_test.h
@@ -1,58 +1,58 @@
-/*--------------------------------------------------------------------------

-Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.

-

-Redistribution and use in source and binary forms, with or without

-modification, are permitted provided that the following conditions are met:

-    * Redistributions of source code must retain the above copyright

-      notice, this list of conditions and the following disclaimer.

-    * Redistributions in binary form must reproduce the above copyright

-      notice, this list of conditions and the following disclaimer in the

-      documentation and/or other materials provided with the distribution.

-    * Neither the name of The Linux Foundation nor

-      the names of its contributors may be used to endorse or promote

-      products derived from this software without specific prior written

-      permission.

-

-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

-IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

-NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR

-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;

-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF

-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---------------------------------------------------------------------------*/

-#ifndef _CAMERA_TEST_H

-#define _CAMERA_TEST_H

-

-#define EXTERN_C_START extern "C" {

-#define EXTERN_C_END }

-

-#ifdef __cplusplus

-EXTERN_C_START

-#endif

-

-typedef void (*CameraPreviewCallback)(int nFD,

-                                      int nOffset,

-                                      void* pPhys,

-                                      void* pVirt,

-                                      long long nTimeStamp);

-

-

-int CameraTest_Initialize(int nFrameRate,

-                          int nFrameWidth,

-                          int nFrameHeight,

-                          CameraPreviewCallback pfnPreviewCallback);

-int CameraTest_Run();

-int CameraTest_ReleaseFrame(void* pPhys, void* pVirt);

-int CameraTest_Exit();

-

-

-#ifdef __cplusplus

-EXTERN_C_END

-#endif

-

-#endif

+/*--------------------------------------------------------------------------
+Copyright (c) 2010-2011, 2013, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of The Linux Foundation nor
+      the names of its contributors may be used to endorse or promote
+      products derived from this software without specific prior written
+      permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------*/
+#ifndef _CAMERA_TEST_H
+#define _CAMERA_TEST_H
+
+#define EXTERN_C_START extern "C" {
+#define EXTERN_C_END }
+
+#ifdef __cplusplus
+EXTERN_C_START
+#endif
+
+typedef void (*CameraPreviewCallback)(int nFD,
+        int nOffset,
+        void* pPhys,
+        void* pVirt,
+        long long nTimeStamp);
+
+
+int CameraTest_Initialize(int nFrameRate,
+        int nFrameWidth,
+        int nFrameHeight,
+        CameraPreviewCallback pfnPreviewCallback);
+int CameraTest_Run();
+int CameraTest_ReleaseFrame(void* pPhys, void* pVirt);
+int CameraTest_Exit();
+
+
+#ifdef __cplusplus
+EXTERN_C_END
+#endif
+
+#endif
diff --git a/mm-video-v4l2/vidc/venc/inc/fb_test.h b/mm-video-v4l2/vidc/venc/inc/fb_test.h
old mode 100755
new mode 100644
index 52a007f..173150c
--- a/mm-video-v4l2/vidc/venc/inc/fb_test.h
+++ b/mm-video-v4l2/vidc/venc/inc/fb_test.h
@@ -1,48 +1,48 @@
-/*--------------------------------------------------------------------------

-Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.

-

-Redistribution and use in source and binary forms, with or without

-modification, are permitted provided that the following conditions are met:

-    * Redistributions of source code must retain the above copyright

-      notice, this list of conditions and the following disclaimer.

-    * Redistributions in binary form must reproduce the above copyright

-      notice, this list of conditions and the following disclaimer in the

-      documentation and/or other materials provided with the distribution.

-    * Neither the name of The Linux Foundation nor

-      the names of its contributors may be used to endorse or promote

-      products derived from this software without specific prior written

-      permission.

-

-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

-IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

-NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR

-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;

-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF

-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---------------------------------------------------------------------------*/

-#ifndef _FB_TEST_H

-#define _FB_TEST_H

-

-#ifdef __cplusplus

-extern "C" {

-#endif

-

-

-int FBTest_Initialize(int nFrameWidth,

-                      int nFrameHeight);

-int FBTest_DisplayImage(int nPmemFd, int nOffset);

-int FBTest_Exit();

-

-int FBTest_RunTest();

-

-#ifdef __cplusplus

-}

-#endif

-

-

-#endif // _FB_TEST_H

+/*--------------------------------------------------------------------------
+Copyright (c) 2010-2011, 2013, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of The Linux Foundation nor
+      the names of its contributors may be used to endorse or promote
+      products derived from this software without specific prior written
+      permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------*/
+#ifndef _FB_TEST_H
+#define _FB_TEST_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+    int FBTest_Initialize(int nFrameWidth,
+            int nFrameHeight);
+    int FBTest_DisplayImage(int nPmemFd, int nOffset);
+    int FBTest_Exit();
+
+    int FBTest_RunTest();
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif // _FB_TEST_H
diff --git a/mm-video-v4l2/vidc/venc/inc/omx_video_base.h b/mm-video-v4l2/vidc/venc/inc/omx_video_base.h
index 58b0d4f..bac58be 100644
--- a/mm-video-v4l2/vidc/venc/inc/omx_video_base.h
+++ b/mm-video-v4l2/vidc/venc/inc/omx_video_base.h
@@ -47,9 +47,9 @@
 #include <stdio.h>
 #include <sys/mman.h>
 #ifdef _ANDROID_
-  #include <binder/MemoryHeapBase.h>
+#include <binder/MemoryHeapBase.h>
 #ifdef _ANDROID_ICS_
-  #include "QComOMXMetadata.h"
+#include "QComOMXMetadata.h"
 #endif
 #endif // _ANDROID_
 #include <pthread.h>
@@ -69,9 +69,9 @@
 // local pmem heap object
 class VideoHeap : public MemoryHeapBase
 {
-public:
-  VideoHeap(int fd, size_t size, void* base);
-  virtual ~VideoHeap() {}
+    public:
+        VideoHeap(int fd, size_t size, void* base);
+        virtual ~VideoHeap() {}
 };
 
 #include <utils/Log.h>
@@ -83,16 +83,16 @@
 #endif // _ANDROID_
 
 #ifdef USE_ION
-    static const char* MEM_DEVICE = "/dev/ion";
-    #if defined(MAX_RES_720P) && !defined(_MSM8974_)
-    #define MEM_HEAP_ID ION_CAMERA_HEAP_ID
-    #else
-       #ifdef _MSM8974_
-       #define MEM_HEAP_ID ION_IOMMU_HEAP_ID
-       #else
-       #define MEM_HEAP_ID ION_CP_MM_HEAP_ID
-       #endif
-    #endif
+static const char* MEM_DEVICE = "/dev/ion";
+#if defined(MAX_RES_720P) && !defined(_MSM8974_)
+#define MEM_HEAP_ID ION_CAMERA_HEAP_ID
+#else
+#ifdef _MSM8974_
+#define MEM_HEAP_ID ION_IOMMU_HEAP_ID
+#else
+#define MEM_HEAP_ID ION_CP_MM_HEAP_ID
+#endif
+#endif
 #elif MAX_RES_720P
 static const char* MEM_DEVICE = "/dev/pmem_adsp";
 #elif MAX_RES_1080P_EBI
@@ -114,10 +114,10 @@
 //               Macros
 //////////////////////////////////////////////////////////////////////////////
 #define PrintFrameHdr(bufHdr) DEBUG_PRINT("bufHdr %x buf %x size %d TS %d\n",\
-                       (unsigned) bufHdr,\
-                       (unsigned)((OMX_BUFFERHEADERTYPE *)bufHdr)->pBuffer,\
-                       (unsigned)((OMX_BUFFERHEADERTYPE *)bufHdr)->nFilledLen,\
-                       (unsigned)((OMX_BUFFERHEADERTYPE *)bufHdr)->nTimeStamp)
+        (unsigned) bufHdr,\
+        (unsigned)((OMX_BUFFERHEADERTYPE *)bufHdr)->pBuffer,\
+        (unsigned)((OMX_BUFFERHEADERTYPE *)bufHdr)->nFilledLen,\
+        (unsigned)((OMX_BUFFERHEADERTYPE *)bufHdr)->nTimeStamp)
 
 // BitMask Management logic
 #define BITS_PER_BYTE        32
@@ -125,496 +125,489 @@
 #define BITMASK_OFFSET(mIndex) ((mIndex)/BITS_PER_BYTE)
 #define BITMASK_FLAG(mIndex) (1 << ((mIndex) % BITS_PER_BYTE))
 #define BITMASK_CLEAR(mArray,mIndex) (mArray)[BITMASK_OFFSET(mIndex)] \
-        &=  ~(BITMASK_FLAG(mIndex))
+    &=  ~(BITMASK_FLAG(mIndex))
 #define BITMASK_SET(mArray,mIndex)  (mArray)[BITMASK_OFFSET(mIndex)] \
-        |=  BITMASK_FLAG(mIndex)
+    |=  BITMASK_FLAG(mIndex)
 #define BITMASK_PRESENT(mArray,mIndex) ((mArray)[BITMASK_OFFSET(mIndex)] \
         & BITMASK_FLAG(mIndex))
 #define BITMASK_ABSENT(mArray,mIndex) (((mArray)[BITMASK_OFFSET(mIndex)] \
-        & BITMASK_FLAG(mIndex)) == 0x0)
+            & BITMASK_FLAG(mIndex)) == 0x0)
 #define BITMASK_PRESENT(mArray,mIndex) ((mArray)[BITMASK_OFFSET(mIndex)] \
         & BITMASK_FLAG(mIndex))
 #define BITMASK_ABSENT(mArray,mIndex) (((mArray)[BITMASK_OFFSET(mIndex)] \
-        & BITMASK_FLAG(mIndex)) == 0x0)
+            & BITMASK_FLAG(mIndex)) == 0x0)
 #ifdef _ANDROID_ICS_
 #define MAX_NUM_INPUT_BUFFERS 32
 #endif
 void* message_thread(void *);
 #ifdef USE_ION
 int alloc_map_ion_memory(int size,struct ion_allocation_data *alloc_data,
-                                    struct ion_fd_data *fd_data,int flag);
+        struct ion_fd_data *fd_data,int flag);
 void free_ion_memory(struct venc_ion *buf_ion_info);
 #endif
 
 // OMX video class
 class omx_video: public qc_omx_component
 {
-protected:
+    protected:
 #ifdef _ANDROID_ICS_
-  bool meta_mode_enable;
-  bool c2d_opened;
-  encoder_media_buffer_type meta_buffers[MAX_NUM_INPUT_BUFFERS];
-  OMX_BUFFERHEADERTYPE *opaque_buffer_hdr[MAX_NUM_INPUT_BUFFERS];
-  bool mUseProxyColorFormat;
-  bool get_syntaxhdr_enable;
-  OMX_BUFFERHEADERTYPE  *psource_frame;
-  OMX_BUFFERHEADERTYPE  *pdest_frame;
+        bool meta_mode_enable;
+        bool c2d_opened;
+        encoder_media_buffer_type meta_buffers[MAX_NUM_INPUT_BUFFERS];
+        OMX_BUFFERHEADERTYPE *opaque_buffer_hdr[MAX_NUM_INPUT_BUFFERS];
+        bool mUseProxyColorFormat;
+        bool get_syntaxhdr_enable;
+        OMX_BUFFERHEADERTYPE  *psource_frame;
+        OMX_BUFFERHEADERTYPE  *pdest_frame;
 
-  class omx_c2d_conv {
-  public:
-    omx_c2d_conv();
-    ~omx_c2d_conv();
-    bool init();
-    bool open(unsigned int height,unsigned int width,
-              ColorConvertFormat src,
-              ColorConvertFormat dest,unsigned int src_stride);
-    bool convert(int src_fd, void *src_base, void *src_viraddr,
-                 int dest_fd, void *dest_base, void *dest_viraddr);
-    bool get_buffer_size(int port,unsigned int &buf_size);
-    int get_src_format();
-    void close();
-  private:
-    C2DColorConverterBase *c2dcc;
-    pthread_mutex_t c_lock;
-    void *mLibHandle;
-    ColorConvertFormat src_format;
-    createC2DColorConverter_t *mConvertOpen;
-    destroyC2DColorConverter_t *mConvertClose;
-  };
-  omx_c2d_conv c2d_conv;
+        class omx_c2d_conv
+        {
+            public:
+                omx_c2d_conv();
+                ~omx_c2d_conv();
+                bool init();
+                bool open(unsigned int height,unsigned int width,
+                        ColorConvertFormat src,
+                        ColorConvertFormat dest,unsigned int src_stride);
+                bool convert(int src_fd, void *src_base, void *src_viraddr,
+                        int dest_fd, void *dest_base, void *dest_viraddr);
+                bool get_buffer_size(int port,unsigned int &buf_size);
+                int get_src_format();
+                void close();
+            private:
+                C2DColorConverterBase *c2dcc;
+                pthread_mutex_t c_lock;
+                void *mLibHandle;
+                ColorConvertFormat src_format;
+                createC2DColorConverter_t *mConvertOpen;
+                destroyC2DColorConverter_t *mConvertClose;
+        };
+        omx_c2d_conv c2d_conv;
 #endif
-public:
-  omx_video();  // constructor
-  virtual ~omx_video();  // destructor
+    public:
+        omx_video();  // constructor
+        virtual ~omx_video();  // destructor
 
-  // virtual int async_message_process (void *context, void* message);
-  void process_event_cb(void *ctxt,unsigned char id);
+        // virtual int async_message_process (void *context, void* message);
+        void process_event_cb(void *ctxt,unsigned char id);
 
-  OMX_ERRORTYPE allocate_buffer(
-                               OMX_HANDLETYPE hComp,
-                               OMX_BUFFERHEADERTYPE **bufferHdr,
-                               OMX_U32 port,
-                               OMX_PTR appData,
-                               OMX_U32 bytes
-                               );
+        OMX_ERRORTYPE allocate_buffer(
+                OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE **bufferHdr,
+                OMX_U32 port,
+                OMX_PTR appData,
+                OMX_U32 bytes
+                );
 
 
-  virtual OMX_ERRORTYPE component_deinit(OMX_HANDLETYPE hComp)= 0;
+        virtual OMX_ERRORTYPE component_deinit(OMX_HANDLETYPE hComp)= 0;
 
-  virtual OMX_ERRORTYPE component_init(OMX_STRING role)= 0;
+        virtual OMX_ERRORTYPE component_init(OMX_STRING role)= 0;
 
-  virtual OMX_U32 dev_stop(void) = 0;
-  virtual OMX_U32 dev_pause(void) = 0;
-  virtual OMX_U32 dev_start(void) = 0;
-  virtual OMX_U32 dev_flush(unsigned) = 0;
-  virtual OMX_U32 dev_resume(void) = 0;
-  virtual OMX_U32 dev_start_done(void) = 0;
-  virtual OMX_U32 dev_set_message_thread_id(pthread_t) = 0;
-  virtual bool dev_use_buf(void *,unsigned,unsigned) = 0;
-  virtual bool dev_free_buf(void *,unsigned) = 0;
-  virtual bool dev_empty_buf(void *, void *,unsigned,unsigned) = 0;
-  virtual bool dev_fill_buf(void *buffer, void *,unsigned,unsigned) = 0;
-  virtual bool dev_get_buf_req(OMX_U32 *,OMX_U32 *,OMX_U32 *,OMX_U32) = 0;
-  virtual bool dev_get_seq_hdr(void *, unsigned, unsigned *) = 0;
-  virtual bool dev_loaded_start(void) = 0;
-  virtual bool dev_loaded_stop(void) = 0;
-  virtual bool dev_loaded_start_done(void) = 0;
-  virtual bool dev_loaded_stop_done(void) = 0;
+        virtual OMX_U32 dev_stop(void) = 0;
+        virtual OMX_U32 dev_pause(void) = 0;
+        virtual OMX_U32 dev_start(void) = 0;
+        virtual OMX_U32 dev_flush(unsigned) = 0;
+        virtual OMX_U32 dev_resume(void) = 0;
+        virtual OMX_U32 dev_start_done(void) = 0;
+        virtual OMX_U32 dev_set_message_thread_id(pthread_t) = 0;
+        virtual bool dev_use_buf(void *,unsigned,unsigned) = 0;
+        virtual bool dev_free_buf(void *,unsigned) = 0;
+        virtual bool dev_empty_buf(void *, void *,unsigned,unsigned) = 0;
+        virtual bool dev_fill_buf(void *buffer, void *,unsigned,unsigned) = 0;
+        virtual bool dev_get_buf_req(OMX_U32 *,OMX_U32 *,OMX_U32 *,OMX_U32) = 0;
+        virtual bool dev_get_seq_hdr(void *, unsigned, unsigned *) = 0;
+        virtual bool dev_loaded_start(void) = 0;
+        virtual bool dev_loaded_stop(void) = 0;
+        virtual bool dev_loaded_start_done(void) = 0;
+        virtual bool dev_loaded_stop_done(void) = 0;
 #ifdef _MSM8974_
-  virtual int dev_handle_extradata(void*, int) = 0;
-  virtual int dev_set_format(int) = 0;
+        virtual int dev_handle_extradata(void*, int) = 0;
+        virtual int dev_set_format(int) = 0;
 #endif
-  virtual bool dev_is_video_session_supported(OMX_U32 width, OMX_U32 height) = 0;
-  virtual bool dev_get_capability_ltrcount(OMX_U32 *, OMX_U32 *, OMX_U32 *) = 0;
+        virtual bool dev_is_video_session_supported(OMX_U32 width, OMX_U32 height) = 0;
+        virtual bool dev_get_capability_ltrcount(OMX_U32 *, OMX_U32 *, OMX_U32 *) = 0;
 #ifdef _ANDROID_ICS_
-  void omx_release_meta_buffer(OMX_BUFFERHEADERTYPE *buffer);
+        void omx_release_meta_buffer(OMX_BUFFERHEADERTYPE *buffer);
 #endif
-  OMX_ERRORTYPE component_role_enum(
-                                   OMX_HANDLETYPE hComp,
-                                   OMX_U8 *role,
-                                   OMX_U32 index
-                                   );
+        OMX_ERRORTYPE component_role_enum(
+                OMX_HANDLETYPE hComp,
+                OMX_U8 *role,
+                OMX_U32 index
+                );
 
-  OMX_ERRORTYPE component_tunnel_request(
-                                        OMX_HANDLETYPE hComp,
-                                        OMX_U32 port,
-                                        OMX_HANDLETYPE  peerComponent,
-                                        OMX_U32 peerPort,
-                                        OMX_TUNNELSETUPTYPE *tunnelSetup
-                                        );
+        OMX_ERRORTYPE component_tunnel_request(
+                OMX_HANDLETYPE hComp,
+                OMX_U32 port,
+                OMX_HANDLETYPE  peerComponent,
+                OMX_U32 peerPort,
+                OMX_TUNNELSETUPTYPE *tunnelSetup
+                );
 
-  OMX_ERRORTYPE empty_this_buffer(
-                                 OMX_HANDLETYPE hComp,
-                                 OMX_BUFFERHEADERTYPE *buffer
-                                 );
+        OMX_ERRORTYPE empty_this_buffer(
+                OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE *buffer
+                );
 
 
 
-  OMX_ERRORTYPE fill_this_buffer(
-                                OMX_HANDLETYPE hComp,
-                                OMX_BUFFERHEADERTYPE *buffer
-                                );
+        OMX_ERRORTYPE fill_this_buffer(
+                OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE *buffer
+                );
 
 
-  OMX_ERRORTYPE free_buffer(
-                           OMX_HANDLETYPE hComp,
-                           OMX_U32 port,
-                           OMX_BUFFERHEADERTYPE *buffer
-                           );
+        OMX_ERRORTYPE free_buffer(
+                OMX_HANDLETYPE hComp,
+                OMX_U32 port,
+                OMX_BUFFERHEADERTYPE *buffer
+                );
 
-  OMX_ERRORTYPE get_component_version(
-                                     OMX_HANDLETYPE hComp,
-                                     OMX_STRING componentName,
-                                     OMX_VERSIONTYPE *componentVersion,
-                                     OMX_VERSIONTYPE *specVersion,
-                                     OMX_UUIDTYPE *componentUUID
-                                     );
+        OMX_ERRORTYPE get_component_version(
+                OMX_HANDLETYPE hComp,
+                OMX_STRING componentName,
+                OMX_VERSIONTYPE *componentVersion,
+                OMX_VERSIONTYPE *specVersion,
+                OMX_UUIDTYPE *componentUUID
+                );
 
-  OMX_ERRORTYPE get_config(
-                          OMX_HANDLETYPE hComp,
-                          OMX_INDEXTYPE configIndex,
-                          OMX_PTR configData
-                          );
+        OMX_ERRORTYPE get_config(
+                OMX_HANDLETYPE hComp,
+                OMX_INDEXTYPE configIndex,
+                OMX_PTR configData
+                );
 
-  OMX_ERRORTYPE get_extension_index(
-                                   OMX_HANDLETYPE hComp,
-                                   OMX_STRING paramName,
-                                   OMX_INDEXTYPE *indexType
-                                   );
+        OMX_ERRORTYPE get_extension_index(
+                OMX_HANDLETYPE hComp,
+                OMX_STRING paramName,
+                OMX_INDEXTYPE *indexType
+                );
 
-  OMX_ERRORTYPE get_parameter(OMX_HANDLETYPE hComp,
-                              OMX_INDEXTYPE  paramIndex,
-                              OMX_PTR        paramData);
+        OMX_ERRORTYPE get_parameter(OMX_HANDLETYPE hComp,
+                OMX_INDEXTYPE  paramIndex,
+                OMX_PTR        paramData);
 
-  OMX_ERRORTYPE get_state(OMX_HANDLETYPE hComp,
-                          OMX_STATETYPE *state);
+        OMX_ERRORTYPE get_state(OMX_HANDLETYPE hComp,
+                OMX_STATETYPE *state);
 
 
 
-  OMX_ERRORTYPE send_command(OMX_HANDLETYPE  hComp,
-                             OMX_COMMANDTYPE cmd,
-                             OMX_U32         param1,
-                             OMX_PTR         cmdData);
+        OMX_ERRORTYPE send_command(OMX_HANDLETYPE  hComp,
+                OMX_COMMANDTYPE cmd,
+                OMX_U32         param1,
+                OMX_PTR         cmdData);
 
 
-  OMX_ERRORTYPE set_callbacks(OMX_HANDLETYPE   hComp,
-                              OMX_CALLBACKTYPE *callbacks,
-                              OMX_PTR          appData);
+        OMX_ERRORTYPE set_callbacks(OMX_HANDLETYPE   hComp,
+                OMX_CALLBACKTYPE *callbacks,
+                OMX_PTR          appData);
 
-  virtual OMX_ERRORTYPE set_config(OMX_HANDLETYPE hComp,
-                           OMX_INDEXTYPE  configIndex,
-                           OMX_PTR        configData) = 0;
+        virtual OMX_ERRORTYPE set_config(OMX_HANDLETYPE hComp,
+                OMX_INDEXTYPE  configIndex,
+                OMX_PTR        configData) = 0;
 
-  virtual OMX_ERRORTYPE set_parameter(OMX_HANDLETYPE hComp,
-                                      OMX_INDEXTYPE  paramIndex,
-                                      OMX_PTR        paramData) =0;
+        virtual OMX_ERRORTYPE set_parameter(OMX_HANDLETYPE hComp,
+                OMX_INDEXTYPE  paramIndex,
+                OMX_PTR        paramData) =0;
 
-  OMX_ERRORTYPE use_buffer(OMX_HANDLETYPE      hComp,
-                           OMX_BUFFERHEADERTYPE **bufferHdr,
-                           OMX_U32              port,
-                           OMX_PTR              appData,
-                           OMX_U32              bytes,
-                           OMX_U8               *buffer);
+        OMX_ERRORTYPE use_buffer(OMX_HANDLETYPE      hComp,
+                OMX_BUFFERHEADERTYPE **bufferHdr,
+                OMX_U32              port,
+                OMX_PTR              appData,
+                OMX_U32              bytes,
+                OMX_U8               *buffer);
 
 
-  OMX_ERRORTYPE use_EGL_image(OMX_HANDLETYPE     hComp,
-                              OMX_BUFFERHEADERTYPE **bufferHdr,
-                              OMX_U32              port,
-                              OMX_PTR              appData,
-                              void *               eglImage);
+        OMX_ERRORTYPE use_EGL_image(OMX_HANDLETYPE     hComp,
+                OMX_BUFFERHEADERTYPE **bufferHdr,
+                OMX_U32              port,
+                OMX_PTR              appData,
+                void *               eglImage);
 
 
 
-  int  m_pipe_in;
-  int  m_pipe_out;
+        int  m_pipe_in;
+        int  m_pipe_out;
 
-  pthread_t msg_thread_id;
-  pthread_t async_thread_id;
-  bool async_thread_created;
-  bool msg_thread_created;
+        pthread_t msg_thread_id;
+        pthread_t async_thread_id;
+        bool async_thread_created;
+        bool msg_thread_created;
 
-  OMX_U8 m_nkind[128];
+        OMX_U8 m_nkind[128];
 
 
-  //int *input_pmem_fd;
-  //int *output_pmem_fd;
-  struct pmem *m_pInput_pmem;
-  struct pmem *m_pOutput_pmem;
+        //int *input_pmem_fd;
+        //int *output_pmem_fd;
+        struct pmem *m_pInput_pmem;
+        struct pmem *m_pOutput_pmem;
 #ifdef USE_ION
-  struct venc_ion *m_pInput_ion;
-  struct venc_ion *m_pOutput_ion;
+        struct venc_ion *m_pInput_ion;
+        struct venc_ion *m_pOutput_ion;
 #endif
 
 
 
-public:
-  // Bit Positions
-  enum flags_bit_positions
-  {
-    // Defer transition to IDLE
-    OMX_COMPONENT_IDLE_PENDING            =0x1,
-    // Defer transition to LOADING
-    OMX_COMPONENT_LOADING_PENDING         =0x2,
-    // First  Buffer Pending
-    OMX_COMPONENT_FIRST_BUFFER_PENDING    =0x3,
-    // Second Buffer Pending
-    OMX_COMPONENT_SECOND_BUFFER_PENDING   =0x4,
-    // Defer transition to Enable
-    OMX_COMPONENT_INPUT_ENABLE_PENDING    =0x5,
-    // Defer transition to Enable
-    OMX_COMPONENT_OUTPUT_ENABLE_PENDING   =0x6,
-    // Defer transition to Disable
-    OMX_COMPONENT_INPUT_DISABLE_PENDING   =0x7,
-    // Defer transition to Disable
-    OMX_COMPONENT_OUTPUT_DISABLE_PENDING  =0x8,
-    //defer flush notification
-    OMX_COMPONENT_OUTPUT_FLUSH_PENDING    =0x9,
-    OMX_COMPONENT_INPUT_FLUSH_PENDING    =0xA,
-    OMX_COMPONENT_PAUSE_PENDING          =0xB,
-    OMX_COMPONENT_EXECUTE_PENDING        =0xC,
-    OMX_COMPONENT_LOADED_START_PENDING = 0xD,
-    OMX_COMPONENT_LOADED_STOP_PENDING = 0xF,
+    public:
+        // Bit Positions
+        enum flags_bit_positions {
+            // Defer transition to IDLE
+            OMX_COMPONENT_IDLE_PENDING            =0x1,
+            // Defer transition to LOADING
+            OMX_COMPONENT_LOADING_PENDING         =0x2,
+            // First  Buffer Pending
+            OMX_COMPONENT_FIRST_BUFFER_PENDING    =0x3,
+            // Second Buffer Pending
+            OMX_COMPONENT_SECOND_BUFFER_PENDING   =0x4,
+            // Defer transition to Enable
+            OMX_COMPONENT_INPUT_ENABLE_PENDING    =0x5,
+            // Defer transition to Enable
+            OMX_COMPONENT_OUTPUT_ENABLE_PENDING   =0x6,
+            // Defer transition to Disable
+            OMX_COMPONENT_INPUT_DISABLE_PENDING   =0x7,
+            // Defer transition to Disable
+            OMX_COMPONENT_OUTPUT_DISABLE_PENDING  =0x8,
+            //defer flush notification
+            OMX_COMPONENT_OUTPUT_FLUSH_PENDING    =0x9,
+            OMX_COMPONENT_INPUT_FLUSH_PENDING    =0xA,
+            OMX_COMPONENT_PAUSE_PENDING          =0xB,
+            OMX_COMPONENT_EXECUTE_PENDING        =0xC,
+            OMX_COMPONENT_LOADED_START_PENDING = 0xD,
+            OMX_COMPONENT_LOADED_STOP_PENDING = 0xF,
 
-  };
+        };
 
-  // Deferred callback identifiers
-  enum
-  {
-    //Event Callbacks from the venc component thread context
-    OMX_COMPONENT_GENERATE_EVENT       = 0x1,
-    //Buffer Done callbacks from the venc component thread context
-    OMX_COMPONENT_GENERATE_BUFFER_DONE = 0x2,
-    //Frame Done callbacks from the venc component thread context
-    OMX_COMPONENT_GENERATE_FRAME_DONE  = 0x3,
-    //Buffer Done callbacks from the venc component thread context
-    OMX_COMPONENT_GENERATE_FTB         = 0x4,
-    //Frame Done callbacks from the venc component thread context
-    OMX_COMPONENT_GENERATE_ETB         = 0x5,
-    //Command
-    OMX_COMPONENT_GENERATE_COMMAND     = 0x6,
-    //Push-Pending Buffers
-    OMX_COMPONENT_PUSH_PENDING_BUFS    = 0x7,
-    // Empty Buffer Done callbacks
-    OMX_COMPONENT_GENERATE_EBD         = 0x8,
-    //Flush Event Callbacks from the venc component thread context
-    OMX_COMPONENT_GENERATE_EVENT_FLUSH       = 0x9,
-    OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH = 0x0A,
-    OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH = 0x0B,
-    OMX_COMPONENT_GENERATE_FBD = 0xc,
-    OMX_COMPONENT_GENERATE_START_DONE = 0xD,
-    OMX_COMPONENT_GENERATE_PAUSE_DONE = 0xE,
-    OMX_COMPONENT_GENERATE_RESUME_DONE = 0xF,
-    OMX_COMPONENT_GENERATE_STOP_DONE = 0x10,
-    OMX_COMPONENT_GENERATE_HARDWARE_ERROR = 0x11,
-    OMX_COMPONENT_GENERATE_LTRUSE_FAILED = 0x12,
-    OMX_COMPONENT_GENERATE_ETB_OPQ = 0x13
-  };
+        // Deferred callback identifiers
+        enum {
+            //Event Callbacks from the venc component thread context
+            OMX_COMPONENT_GENERATE_EVENT       = 0x1,
+            //Buffer Done callbacks from the venc component thread context
+            OMX_COMPONENT_GENERATE_BUFFER_DONE = 0x2,
+            //Frame Done callbacks from the venc component thread context
+            OMX_COMPONENT_GENERATE_FRAME_DONE  = 0x3,
+            //Buffer Done callbacks from the venc component thread context
+            OMX_COMPONENT_GENERATE_FTB         = 0x4,
+            //Frame Done callbacks from the venc component thread context
+            OMX_COMPONENT_GENERATE_ETB         = 0x5,
+            //Command
+            OMX_COMPONENT_GENERATE_COMMAND     = 0x6,
+            //Push-Pending Buffers
+            OMX_COMPONENT_PUSH_PENDING_BUFS    = 0x7,
+            // Empty Buffer Done callbacks
+            OMX_COMPONENT_GENERATE_EBD         = 0x8,
+            //Flush Event Callbacks from the venc component thread context
+            OMX_COMPONENT_GENERATE_EVENT_FLUSH       = 0x9,
+            OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH = 0x0A,
+            OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH = 0x0B,
+            OMX_COMPONENT_GENERATE_FBD = 0xc,
+            OMX_COMPONENT_GENERATE_START_DONE = 0xD,
+            OMX_COMPONENT_GENERATE_PAUSE_DONE = 0xE,
+            OMX_COMPONENT_GENERATE_RESUME_DONE = 0xF,
+            OMX_COMPONENT_GENERATE_STOP_DONE = 0x10,
+            OMX_COMPONENT_GENERATE_HARDWARE_ERROR = 0x11,
+            OMX_COMPONENT_GENERATE_LTRUSE_FAILED = 0x12,
+            OMX_COMPONENT_GENERATE_ETB_OPQ = 0x13
+        };
 
-  struct omx_event
-  {
-    unsigned param1;
-    unsigned param2;
-    unsigned id;
-  };
+        struct omx_event {
+            unsigned param1;
+            unsigned param2;
+            unsigned id;
+        };
 
-  struct omx_cmd_queue
-  {
-    omx_event m_q[OMX_CORE_CONTROL_CMDQ_SIZE];
-    unsigned m_read;
-    unsigned m_write;
-    unsigned m_size;
+        struct omx_cmd_queue {
+            omx_event m_q[OMX_CORE_CONTROL_CMDQ_SIZE];
+            unsigned m_read;
+            unsigned m_write;
+            unsigned m_size;
 
-    omx_cmd_queue();
-    ~omx_cmd_queue();
-    bool insert_entry(unsigned p1, unsigned p2, unsigned id);
-    bool pop_entry(unsigned *p1,unsigned *p2, unsigned *id);
-    // get msgtype of the first ele from the queue
-    unsigned get_q_msg_type();
+            omx_cmd_queue();
+            ~omx_cmd_queue();
+            bool insert_entry(unsigned p1, unsigned p2, unsigned id);
+            bool pop_entry(unsigned *p1,unsigned *p2, unsigned *id);
+            // get msgtype of the first ele from the queue
+            unsigned get_q_msg_type();
 
-  };
+        };
 
-  bool allocate_done(void);
-  bool allocate_input_done(void);
-  bool allocate_output_done(void);
+        bool allocate_done(void);
+        bool allocate_input_done(void);
+        bool allocate_output_done(void);
 
-  OMX_ERRORTYPE free_input_buffer(OMX_BUFFERHEADERTYPE *bufferHdr);
-  OMX_ERRORTYPE free_output_buffer(OMX_BUFFERHEADERTYPE *bufferHdr);
+        OMX_ERRORTYPE free_input_buffer(OMX_BUFFERHEADERTYPE *bufferHdr);
+        OMX_ERRORTYPE free_output_buffer(OMX_BUFFERHEADERTYPE *bufferHdr);
 
-  OMX_ERRORTYPE allocate_input_buffer(OMX_HANDLETYPE       hComp,
-                                      OMX_BUFFERHEADERTYPE **bufferHdr,
-                                      OMX_U32              port,
-                                      OMX_PTR              appData,
-                                      OMX_U32              bytes);
+        OMX_ERRORTYPE allocate_input_buffer(OMX_HANDLETYPE       hComp,
+                OMX_BUFFERHEADERTYPE **bufferHdr,
+                OMX_U32              port,
+                OMX_PTR              appData,
+                OMX_U32              bytes);
 #ifdef _ANDROID_ICS_
-  OMX_ERRORTYPE allocate_input_meta_buffer(OMX_HANDLETYPE       hComp,
-                                      OMX_BUFFERHEADERTYPE **bufferHdr,
-                                      OMX_PTR              appData,
-                                      OMX_U32              bytes);
+        OMX_ERRORTYPE allocate_input_meta_buffer(OMX_HANDLETYPE       hComp,
+                OMX_BUFFERHEADERTYPE **bufferHdr,
+                OMX_PTR              appData,
+                OMX_U32              bytes);
 #endif
-  OMX_ERRORTYPE allocate_output_buffer(OMX_HANDLETYPE       hComp,
-                                       OMX_BUFFERHEADERTYPE **bufferHdr,
-                                       OMX_U32 port,OMX_PTR appData,
-                                       OMX_U32              bytes);
+        OMX_ERRORTYPE allocate_output_buffer(OMX_HANDLETYPE       hComp,
+                OMX_BUFFERHEADERTYPE **bufferHdr,
+                OMX_U32 port,OMX_PTR appData,
+                OMX_U32              bytes);
 
-  OMX_ERRORTYPE use_input_buffer(OMX_HANDLETYPE hComp,
-                                 OMX_BUFFERHEADERTYPE  **bufferHdr,
-                                 OMX_U32               port,
-                                 OMX_PTR               appData,
-                                 OMX_U32               bytes,
-                                 OMX_U8                *buffer);
+        OMX_ERRORTYPE use_input_buffer(OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE  **bufferHdr,
+                OMX_U32               port,
+                OMX_PTR               appData,
+                OMX_U32               bytes,
+                OMX_U8                *buffer);
 
-  OMX_ERRORTYPE use_output_buffer(OMX_HANDLETYPE hComp,
-                                  OMX_BUFFERHEADERTYPE   **bufferHdr,
-                                  OMX_U32                port,
-                                  OMX_PTR                appData,
-                                  OMX_U32                bytes,
-                                  OMX_U8                 *buffer);
+        OMX_ERRORTYPE use_output_buffer(OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE   **bufferHdr,
+                OMX_U32                port,
+                OMX_PTR                appData,
+                OMX_U32                bytes,
+                OMX_U8                 *buffer);
 
-  bool execute_omx_flush(OMX_U32);
-  bool execute_output_flush(void);
-  bool execute_input_flush(void);
+        bool execute_omx_flush(OMX_U32);
+        bool execute_output_flush(void);
+        bool execute_input_flush(void);
 #ifdef _MSM8974_
-  bool execute_flush_all(void);
+        bool execute_flush_all(void);
 #endif
-  OMX_ERRORTYPE empty_buffer_done(OMX_HANDLETYPE hComp,
-                                  OMX_BUFFERHEADERTYPE * buffer);
+        OMX_ERRORTYPE empty_buffer_done(OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE * buffer);
 
-  OMX_ERRORTYPE fill_buffer_done(OMX_HANDLETYPE hComp,
-                                 OMX_BUFFERHEADERTYPE * buffer);
-  OMX_ERRORTYPE empty_this_buffer_proxy(OMX_HANDLETYPE hComp,
-                                        OMX_BUFFERHEADERTYPE *buffer);
-  OMX_ERRORTYPE empty_this_buffer_opaque(OMX_HANDLETYPE hComp,
-                                  OMX_BUFFERHEADERTYPE *buffer);
-  OMX_ERRORTYPE push_input_buffer(OMX_HANDLETYPE hComp);
-  OMX_ERRORTYPE convert_queue_buffer(OMX_HANDLETYPE hComp,
-     struct pmem &Input_pmem_info,unsigned &index);
-  OMX_ERRORTYPE queue_meta_buffer(OMX_HANDLETYPE hComp,
-     struct pmem &Input_pmem_info);
-  OMX_ERRORTYPE fill_this_buffer_proxy(OMX_HANDLETYPE hComp,
-     OMX_BUFFERHEADERTYPE *buffer);
-  bool release_done();
+        OMX_ERRORTYPE fill_buffer_done(OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE * buffer);
+        OMX_ERRORTYPE empty_this_buffer_proxy(OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE *buffer);
+        OMX_ERRORTYPE empty_this_buffer_opaque(OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE *buffer);
+        OMX_ERRORTYPE push_input_buffer(OMX_HANDLETYPE hComp);
+        OMX_ERRORTYPE convert_queue_buffer(OMX_HANDLETYPE hComp,
+                struct pmem &Input_pmem_info,unsigned &index);
+        OMX_ERRORTYPE queue_meta_buffer(OMX_HANDLETYPE hComp,
+                struct pmem &Input_pmem_info);
+        OMX_ERRORTYPE fill_this_buffer_proxy(OMX_HANDLETYPE hComp,
+                OMX_BUFFERHEADERTYPE *buffer);
+        bool release_done();
 
-  bool release_output_done();
-  bool release_input_done();
+        bool release_output_done();
+        bool release_input_done();
 
-  OMX_ERRORTYPE send_command_proxy(OMX_HANDLETYPE  hComp,
-                                   OMX_COMMANDTYPE cmd,
-                                   OMX_U32         param1,
-                                   OMX_PTR         cmdData);
-  bool post_event( unsigned int p1,
-                   unsigned int p2,
-                   unsigned int id
-                 );
-  OMX_ERRORTYPE get_supported_profile_level(OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType);
-  inline void omx_report_error ()
-  {
-    if(m_pCallbacks.EventHandler && !m_error_propogated)
-    {
-      m_error_propogated = true;
-      m_pCallbacks.EventHandler(&m_cmp,m_app_data,
-                                OMX_EventError,OMX_ErrorHardware,0,NULL);
-    }
-  }
+        OMX_ERRORTYPE send_command_proxy(OMX_HANDLETYPE  hComp,
+                OMX_COMMANDTYPE cmd,
+                OMX_U32         param1,
+                OMX_PTR         cmdData);
+        bool post_event( unsigned int p1,
+                unsigned int p2,
+                unsigned int id
+                   );
+        OMX_ERRORTYPE get_supported_profile_level(OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType);
+        inline void omx_report_error () {
+            if (m_pCallbacks.EventHandler && !m_error_propogated) {
+                m_error_propogated = true;
+                m_pCallbacks.EventHandler(&m_cmp,m_app_data,
+                        OMX_EventError,OMX_ErrorHardware,0,NULL);
+            }
+        }
 
-  inline void omx_report_unsupported_setting ()
-  {
-    if(m_pCallbacks.EventHandler && !m_error_propogated)
-    {
-      m_error_propogated = true;
-      m_pCallbacks.EventHandler(&m_cmp,m_app_data,
-                                OMX_EventError,OMX_ErrorUnsupportedSetting,0,NULL);
-    }
-  }
+        inline void omx_report_unsupported_setting () {
+            if (m_pCallbacks.EventHandler && !m_error_propogated) {
+                m_error_propogated = true;
+                m_pCallbacks.EventHandler(&m_cmp,m_app_data,
+                        OMX_EventError,OMX_ErrorUnsupportedSetting,0,NULL);
+            }
+        }
 
-  void complete_pending_buffer_done_cbs();
+        void complete_pending_buffer_done_cbs();
 
-  //*************************************************************
-  //*******************MEMBER VARIABLES *************************
-  //*************************************************************
+        //*************************************************************
+        //*******************MEMBER VARIABLES *************************
+        //*************************************************************
 
-  pthread_mutex_t       m_lock;
-  sem_t                 m_cmd_lock;
-  bool              m_error_propogated;
+        pthread_mutex_t       m_lock;
+        sem_t                 m_cmd_lock;
+        bool              m_error_propogated;
 
-  //sem to handle the minimum procesing of commands
+        //sem to handle the minimum procesing of commands
 
 
-  // compression format
-  //OMX_VIDEO_CODINGTYPE eCompressionFormat;
-  // OMX State
-  OMX_STATETYPE m_state;
-  // Application data
-  OMX_PTR m_app_data;
-  OMX_BOOL m_use_input_pmem;
-  OMX_BOOL m_use_output_pmem;
-  // Application callbacks
-  OMX_CALLBACKTYPE m_pCallbacks;
-  OMX_PORT_PARAM_TYPE m_sPortParam;
-  OMX_VIDEO_PARAM_PROFILELEVELTYPE m_sParamProfileLevel;
-  OMX_VIDEO_PARAM_PORTFORMATTYPE m_sInPortFormat;
-  OMX_VIDEO_PARAM_PORTFORMATTYPE m_sOutPortFormat;
-  OMX_PARAM_PORTDEFINITIONTYPE m_sInPortDef;
-  OMX_PARAM_PORTDEFINITIONTYPE m_sOutPortDef;
-  OMX_VIDEO_PARAM_MPEG4TYPE m_sParamMPEG4;
-  OMX_VIDEO_PARAM_H263TYPE m_sParamH263;
-  OMX_VIDEO_PARAM_AVCTYPE m_sParamAVC;
-  OMX_PORT_PARAM_TYPE m_sPortParam_img;
-  OMX_PORT_PARAM_TYPE m_sPortParam_audio;
-  OMX_VIDEO_CONFIG_BITRATETYPE m_sConfigBitrate;
-  OMX_CONFIG_FRAMERATETYPE m_sConfigFramerate;
-  OMX_VIDEO_PARAM_BITRATETYPE m_sParamBitrate;
-  OMX_PRIORITYMGMTTYPE m_sPriorityMgmt;
-  OMX_PARAM_BUFFERSUPPLIERTYPE m_sInBufSupplier;
-  OMX_PARAM_BUFFERSUPPLIERTYPE m_sOutBufSupplier;
-  OMX_CONFIG_ROTATIONTYPE m_sConfigFrameRotation;
-  OMX_CONFIG_INTRAREFRESHVOPTYPE m_sConfigIntraRefreshVOP;
-  OMX_VIDEO_PARAM_QUANTIZATIONTYPE m_sSessionQuantization;
-  OMX_QCOM_VIDEO_PARAM_QPRANGETYPE m_sSessionQPRange;
-  OMX_VIDEO_PARAM_AVCSLICEFMO m_sAVCSliceFMO;
-  QOMX_VIDEO_INTRAPERIODTYPE m_sIntraperiod;
-  OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE m_sErrorCorrection;
-  OMX_VIDEO_PARAM_INTRAREFRESHTYPE m_sIntraRefresh;
-  QOMX_VIDEO_PARAM_LTRMODE_TYPE m_sParamLTRMode;
-  QOMX_VIDEO_PARAM_LTRCOUNT_TYPE m_sParamLTRCount;
-  QOMX_VIDEO_CONFIG_LTRPERIOD_TYPE m_sConfigLTRPeriod;
-  QOMX_VIDEO_CONFIG_LTRUSE_TYPE m_sConfigLTRUse;
-  OMX_VIDEO_CONFIG_AVCINTRAPERIOD m_sConfigAVCIDRPeriod;
-  OMX_U32 m_sExtraData;
-  OMX_U32 m_input_msg_id;
+        // compression format
+        //OMX_VIDEO_CODINGTYPE eCompressionFormat;
+        // OMX State
+        OMX_STATETYPE m_state;
+        // Application data
+        OMX_PTR m_app_data;
+        OMX_BOOL m_use_input_pmem;
+        OMX_BOOL m_use_output_pmem;
+        // Application callbacks
+        OMX_CALLBACKTYPE m_pCallbacks;
+        OMX_PORT_PARAM_TYPE m_sPortParam;
+        OMX_VIDEO_PARAM_PROFILELEVELTYPE m_sParamProfileLevel;
+        OMX_VIDEO_PARAM_PORTFORMATTYPE m_sInPortFormat;
+        OMX_VIDEO_PARAM_PORTFORMATTYPE m_sOutPortFormat;
+        OMX_PARAM_PORTDEFINITIONTYPE m_sInPortDef;
+        OMX_PARAM_PORTDEFINITIONTYPE m_sOutPortDef;
+        OMX_VIDEO_PARAM_MPEG4TYPE m_sParamMPEG4;
+        OMX_VIDEO_PARAM_H263TYPE m_sParamH263;
+        OMX_VIDEO_PARAM_AVCTYPE m_sParamAVC;
+        OMX_PORT_PARAM_TYPE m_sPortParam_img;
+        OMX_PORT_PARAM_TYPE m_sPortParam_audio;
+        OMX_VIDEO_CONFIG_BITRATETYPE m_sConfigBitrate;
+        OMX_CONFIG_FRAMERATETYPE m_sConfigFramerate;
+        OMX_VIDEO_PARAM_BITRATETYPE m_sParamBitrate;
+        OMX_PRIORITYMGMTTYPE m_sPriorityMgmt;
+        OMX_PARAM_BUFFERSUPPLIERTYPE m_sInBufSupplier;
+        OMX_PARAM_BUFFERSUPPLIERTYPE m_sOutBufSupplier;
+        OMX_CONFIG_ROTATIONTYPE m_sConfigFrameRotation;
+        OMX_CONFIG_INTRAREFRESHVOPTYPE m_sConfigIntraRefreshVOP;
+        OMX_VIDEO_PARAM_QUANTIZATIONTYPE m_sSessionQuantization;
+        OMX_QCOM_VIDEO_PARAM_QPRANGETYPE m_sSessionQPRange;
+        OMX_VIDEO_PARAM_AVCSLICEFMO m_sAVCSliceFMO;
+        QOMX_VIDEO_INTRAPERIODTYPE m_sIntraperiod;
+        OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE m_sErrorCorrection;
+        OMX_VIDEO_PARAM_INTRAREFRESHTYPE m_sIntraRefresh;
+        QOMX_VIDEO_PARAM_LTRMODE_TYPE m_sParamLTRMode;
+        QOMX_VIDEO_PARAM_LTRCOUNT_TYPE m_sParamLTRCount;
+        QOMX_VIDEO_CONFIG_LTRPERIOD_TYPE m_sConfigLTRPeriod;
+        QOMX_VIDEO_CONFIG_LTRUSE_TYPE m_sConfigLTRUse;
+        OMX_VIDEO_CONFIG_AVCINTRAPERIOD m_sConfigAVCIDRPeriod;
+        OMX_U32 m_sExtraData;
+        OMX_U32 m_input_msg_id;
 
-  // fill this buffer queue
-  omx_cmd_queue m_ftb_q;
-  // Command Q for rest of the events
-  omx_cmd_queue m_cmd_q;
-  omx_cmd_queue m_etb_q;
-  // Input memory pointer
-  OMX_BUFFERHEADERTYPE *m_inp_mem_ptr;
-  // Output memory pointer
-  OMX_BUFFERHEADERTYPE *m_out_mem_ptr;
-  omx_cmd_queue m_opq_meta_q;
-  omx_cmd_queue m_opq_pmem_q;
-  OMX_BUFFERHEADERTYPE meta_buffer_hdr[MAX_NUM_INPUT_BUFFERS];
+        // fill this buffer queue
+        omx_cmd_queue m_ftb_q;
+        // Command Q for rest of the events
+        omx_cmd_queue m_cmd_q;
+        omx_cmd_queue m_etb_q;
+        // Input memory pointer
+        OMX_BUFFERHEADERTYPE *m_inp_mem_ptr;
+        // Output memory pointer
+        OMX_BUFFERHEADERTYPE *m_out_mem_ptr;
+        omx_cmd_queue m_opq_meta_q;
+        omx_cmd_queue m_opq_pmem_q;
+        OMX_BUFFERHEADERTYPE meta_buffer_hdr[MAX_NUM_INPUT_BUFFERS];
 
-  bool input_flush_progress;
-  bool output_flush_progress;
-  bool input_use_buffer;
-  bool output_use_buffer;
-  int pending_input_buffers;
-  int pending_output_buffers;
+        bool input_flush_progress;
+        bool output_flush_progress;
+        bool input_use_buffer;
+        bool output_use_buffer;
+        int pending_input_buffers;
+        int pending_output_buffers;
 
-  unsigned int m_out_bm_count;
-  unsigned int m_inp_bm_count;
-  unsigned int m_flags;
-  unsigned int m_etb_count;
-  unsigned int m_fbd_count;
+        unsigned int m_out_bm_count;
+        unsigned int m_inp_bm_count;
+        unsigned int m_flags;
+        unsigned int m_etb_count;
+        unsigned int m_fbd_count;
 #ifdef _ANDROID_
-  // Heap pointer to frame buffers
-  sp<MemoryHeapBase>    m_heap_ptr;
+        // Heap pointer to frame buffers
+        sp<MemoryHeapBase>    m_heap_ptr;
 #endif //_ANDROID_
-  // to know whether Event Port Settings change has been triggered or not.
-  bool m_event_port_settings_sent;
-  OMX_U8                m_cRole[OMX_MAX_STRINGNAME_SIZE];
-  extra_data_handler extra_data_handle;
+        // to know whether Event Port Settings change has been triggered or not.
+        bool m_event_port_settings_sent;
+        OMX_U8                m_cRole[OMX_MAX_STRINGNAME_SIZE];
+        extra_data_handler extra_data_handle;
 
 };
 
diff --git a/mm-video-v4l2/vidc/venc/inc/omx_video_common.h b/mm-video-v4l2/vidc/venc/inc/omx_video_common.h
old mode 100755
new mode 100644
index dc4be1d..af0de51
--- a/mm-video-v4l2/vidc/venc/inc/omx_video_common.h
+++ b/mm-video-v4l2/vidc/venc/inc/omx_video_common.h
@@ -1,5 +1,5 @@
 /*--------------------------------------------------------------------------
-Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
+Copyright (c) 2010-2011, 2013, The Linux Foundation. All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -55,24 +55,21 @@
 #define OMX_CORE_WVGA_HEIGHT         480
 #define OMX_CORE_WVGA_WIDTH          800
 
-enum PortIndexType
-{
-  PORT_INDEX_IN = 0,
-  PORT_INDEX_OUT = 1,
-  PORT_INDEX_BOTH = -1,
-  PORT_INDEX_NONE = -2
+enum PortIndexType {
+    PORT_INDEX_IN = 0,
+    PORT_INDEX_OUT = 1,
+    PORT_INDEX_BOTH = -1,
+    PORT_INDEX_NONE = -2
 };
 
-struct pmem
-{
-  void *buffer;
-  int fd;
-  unsigned offset;
-  unsigned size;
+struct pmem {
+    void *buffer;
+    int fd;
+    unsigned offset;
+    unsigned size;
 };
 #ifdef USE_ION
-struct venc_ion
-{
+struct venc_ion {
     int ion_device_fd;
     struct ion_fd_data fd_ion_data;
     struct ion_allocation_data ion_alloc_data;
diff --git a/mm-video-v4l2/vidc/venc/inc/omx_video_encoder.h b/mm-video-v4l2/vidc/venc/inc/omx_video_encoder.h
index f59c4ab..9bd1087 100644
--- a/mm-video-v4l2/vidc/venc/inc/omx_video_encoder.h
+++ b/mm-video-v4l2/vidc/venc/inc/omx_video_encoder.h
@@ -38,52 +38,52 @@
 #endif
 
 extern "C" {
-  OMX_API void * get_omx_component_factory_fn(void);
+    OMX_API void * get_omx_component_factory_fn(void);
 }
 
 class omx_venc: public omx_video
 {
-public:
-  omx_venc(); //constructor
-  ~omx_venc(); //des
-  static int async_message_process (void *context, void* message);
-  OMX_ERRORTYPE component_init(OMX_STRING role);
-  OMX_ERRORTYPE set_parameter(OMX_HANDLETYPE hComp,
-                              OMX_INDEXTYPE  paramIndex,
-                              OMX_PTR        paramData);
-  OMX_ERRORTYPE set_config(OMX_HANDLETYPE hComp,
-                           OMX_INDEXTYPE  configIndex,
-                           OMX_PTR        configData);
-  OMX_ERRORTYPE component_deinit(OMX_HANDLETYPE hComp);
-  //OMX strucutres
-  OMX_U32 m_nVenc_format;
-  class venc_dev *handle;
+    public:
+        omx_venc(); //constructor
+        ~omx_venc(); //des
+        static int async_message_process (void *context, void* message);
+        OMX_ERRORTYPE component_init(OMX_STRING role);
+        OMX_ERRORTYPE set_parameter(OMX_HANDLETYPE hComp,
+                OMX_INDEXTYPE  paramIndex,
+                OMX_PTR        paramData);
+        OMX_ERRORTYPE set_config(OMX_HANDLETYPE hComp,
+                OMX_INDEXTYPE  configIndex,
+                OMX_PTR        configData);
+        OMX_ERRORTYPE component_deinit(OMX_HANDLETYPE hComp);
+        //OMX strucutres
+        OMX_U32 m_nVenc_format;
+        class venc_dev *handle;
 #ifdef _MSM8974_
-  int dev_handle_extradata(void *, int);
-  int dev_set_format(int);
+        int dev_handle_extradata(void *, int);
+        int dev_set_format(int);
 #endif
-private:
-  OMX_U32 dev_stop(void);
-  OMX_U32 dev_pause(void);
-  OMX_U32 dev_start(void);
-  OMX_U32 dev_flush(unsigned);
-  OMX_U32 dev_resume(void);
-  OMX_U32 dev_start_done(void);
-  OMX_U32 dev_set_message_thread_id(pthread_t);
-  bool dev_use_buf( void *,unsigned,unsigned);
-  bool dev_free_buf( void *,unsigned);
-  bool dev_empty_buf(void *, void *,unsigned,unsigned);
-  bool dev_fill_buf(void *, void *,unsigned,unsigned);
-  bool dev_get_buf_req(OMX_U32 *,OMX_U32 *,OMX_U32 *,OMX_U32);
-  bool dev_set_buf_req(OMX_U32 *,OMX_U32 *,OMX_U32 *,OMX_U32);
-  bool update_profile_level();
-  bool dev_get_seq_hdr(void *, unsigned, unsigned *);
-  bool dev_loaded_start(void);
-  bool dev_loaded_stop(void);
-  bool dev_loaded_start_done(void);
-  bool dev_loaded_stop_done(void);
-  bool dev_get_capability_ltrcount(OMX_U32 *, OMX_U32 *, OMX_U32 *);
-  bool dev_is_video_session_supported(OMX_U32 width, OMX_U32 height);
+    private:
+        OMX_U32 dev_stop(void);
+        OMX_U32 dev_pause(void);
+        OMX_U32 dev_start(void);
+        OMX_U32 dev_flush(unsigned);
+        OMX_U32 dev_resume(void);
+        OMX_U32 dev_start_done(void);
+        OMX_U32 dev_set_message_thread_id(pthread_t);
+        bool dev_use_buf( void *,unsigned,unsigned);
+        bool dev_free_buf( void *,unsigned);
+        bool dev_empty_buf(void *, void *,unsigned,unsigned);
+        bool dev_fill_buf(void *, void *,unsigned,unsigned);
+        bool dev_get_buf_req(OMX_U32 *,OMX_U32 *,OMX_U32 *,OMX_U32);
+        bool dev_set_buf_req(OMX_U32 *,OMX_U32 *,OMX_U32 *,OMX_U32);
+        bool update_profile_level();
+        bool dev_get_seq_hdr(void *, unsigned, unsigned *);
+        bool dev_loaded_start(void);
+        bool dev_loaded_stop(void);
+        bool dev_loaded_start_done(void);
+        bool dev_loaded_stop_done(void);
+        bool dev_get_capability_ltrcount(OMX_U32 *, OMX_U32 *, OMX_U32 *);
+        bool dev_is_video_session_supported(OMX_U32 width, OMX_U32 height);
 };
 
 #endif //__OMX_VENC__H
diff --git a/mm-video-v4l2/vidc/venc/inc/queue.h b/mm-video-v4l2/vidc/venc/inc/queue.h
old mode 100755
new mode 100644
index 530b087..0b653da
--- a/mm-video-v4l2/vidc/venc/inc/queue.h
+++ b/mm-video-v4l2/vidc/venc/inc/queue.h
@@ -1,80 +1,78 @@
-/*--------------------------------------------------------------------------

-Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.

-

-Redistribution and use in source and binary forms, with or without

-modification, are permitted provided that the following conditions are met:

-    * Redistributions of source code must retain the above copyright

-      notice, this list of conditions and the following disclaimer.

-    * Redistributions in binary form must reproduce the above copyright

-      notice, this list of conditions and the following disclaimer in the

-      documentation and/or other materials provided with the distribution.

-    * Neither the name of The Linux Foundation nor

-      the names of its contributors may be used to endorse or promote

-      products derived from this software without specific prior written

-      permission.

-

-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

-IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

-NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR

-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;

-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF

-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---------------------------------------------------------------------------*/

-#ifndef QUEUE_H

-#define QUEUE_H

-

-#include<pthread.h>

-#include <semaphore.h>

-#include <stdio.h>

-#include <string.h>

-

-/* Message Queue structure */

-struct video_msgq

-{

-    /* Command to be executed */

-    unsigned int cmd;

-

-    unsigned int status;

-

-    /* Client-specific data */

-    void *clientdata;

-};

-

-

-/* Thread & Message Queue information */

-struct video_queue_context

-{

-    /* Message Queue related members */

-    pthread_mutex_t  mutex;

-    sem_t sem_message;

-	int commandq_size;

-	int dataq_size;

-    struct video_msgq *ptr_dataq;

-	struct video_msgq *ptr_cmdq;

-    int write_dataq ;

-    int read_dataq;

-	int write_comq ;

-	int read_comq ;

-

-};

-

-int check_if_queue_empty ( unsigned int queuetocheck,void* queuecontext );

-

-struct video_msgq * queue_get_cmd ( void* queuecontext );

-

-

-

-int queue_post_cmdq ( void *queuecontext,

-                       struct video_msgq *post_msg

-                     );

-

-int queue_post_dataq ( void *queuecontext,

-                        struct video_msgq *post_msg

-                      );

-

-#endif /* QUEUE_H */

+/*--------------------------------------------------------------------------
+Copyright (c) 2010-2011, 2013, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of The Linux Foundation nor
+      the names of its contributors may be used to endorse or promote
+      products derived from this software without specific prior written
+      permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------*/
+#ifndef QUEUE_H
+#define QUEUE_H
+
+#include<pthread.h>
+#include <semaphore.h>
+#include <stdio.h>
+#include <string.h>
+
+/* Message Queue structure */
+struct video_msgq {
+    /* Command to be executed */
+    unsigned int cmd;
+
+    unsigned int status;
+
+    /* Client-specific data */
+    void *clientdata;
+};
+
+
+/* Thread & Message Queue information */
+struct video_queue_context {
+    /* Message Queue related members */
+    pthread_mutex_t  mutex;
+    sem_t sem_message;
+    int commandq_size;
+    int dataq_size;
+    struct video_msgq *ptr_dataq;
+    struct video_msgq *ptr_cmdq;
+    int write_dataq ;
+    int read_dataq;
+    int write_comq ;
+    int read_comq ;
+
+};
+
+int check_if_queue_empty ( unsigned int queuetocheck,void* queuecontext );
+
+struct video_msgq * queue_get_cmd ( void* queuecontext );
+
+
+
+int queue_post_cmdq ( void *queuecontext,
+        struct video_msgq *post_msg
+        );
+
+int queue_post_dataq ( void *queuecontext,
+        struct video_msgq *post_msg
+        );
+
+#endif /* QUEUE_H */
diff --git a/mm-video-v4l2/vidc/venc/inc/venc_util.h b/mm-video-v4l2/vidc/venc/inc/venc_util.h
old mode 100755
new mode 100644
index cfa590c..79602dc
--- a/mm-video-v4l2/vidc/venc/inc/venc_util.h
+++ b/mm-video-v4l2/vidc/venc/inc/venc_util.h
@@ -1,53 +1,53 @@
-/*--------------------------------------------------------------------------

-Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.

-

-Redistribution and use in source and binary forms, with or without

-modification, are permitted provided that the following conditions are met:

-    * Redistributions of source code must retain the above copyright

-      notice, this list of conditions and the following disclaimer.

-    * Redistributions in binary form must reproduce the above copyright

-      notice, this list of conditions and the following disclaimer in the

-      documentation and/or other materials provided with the distribution.

-    * Neither the name of The Linux Foundation nor

-      the names of its contributors may be used to endorse or promote

-      products derived from this software without specific prior written

-      permission.

-

-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

-IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

-NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR

-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;

-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF

-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---------------------------------------------------------------------------*/

-/*============================================================================

-                    V E N C _ U T I L. H

-

-DESCRIPTION

-

-

-REFERENCES

-

-

-============================================================================*/

-

-#ifndef _VENC_UTIL_H

-#define _VENC_UTIL_H

-

-#ifdef __cplusplus

-extern "C" {

-#endif

-

-long long GetTimeStamp();

-

-

-#ifdef __cplusplus

-}

-#endif

-

-#endif

+/*--------------------------------------------------------------------------
+Copyright (c) 2010-2011, 2013, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of The Linux Foundation nor
+      the names of its contributors may be used to endorse or promote
+      products derived from this software without specific prior written
+      permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------*/
+/*============================================================================
+  V E N C _ U T I L. H
+
+  DESCRIPTION
+
+
+  REFERENCES
+
+
+  ============================================================================*/
+
+#ifndef _VENC_UTIL_H
+#define _VENC_UTIL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    long long GetTimeStamp();
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/mm-video-v4l2/vidc/venc/inc/video_encoder_device.h b/mm-video-v4l2/vidc/venc/inc/video_encoder_device.h
index fb24c76..f2b3efa 100644
--- a/mm-video-v4l2/vidc/venc/inc/video_encoder_device.h
+++ b/mm-video-v4l2/vidc/venc/inc/video_encoder_device.h
@@ -1,172 +1,171 @@
-/*--------------------------------------------------------------------------

-Copyright (c) 2010-2012, The Linux Foundation. All rights reserved.

-

-Redistribution and use in source and binary forms, with or without

-modification, are permitted provided that the following conditions are met:

-    * Redistributions of source code must retain the above copyright

-      notice, this list of conditions and the following disclaimer.

-    * Redistributions in binary form must reproduce the above copyright

-      notice, this list of conditions and the following disclaimer in the

-      documentation and/or other materials provided with the distribution.

-    * Neither the name of The Linux Foundation nor

-      the names of its contributors may be used to endorse or promote

-      products derived from this software without specific prior written

-      permission.

-

-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

-IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

-NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR

-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;

-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF

-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---------------------------------------------------------------------------*/

-#ifndef __OMX_VENC_DEV__

-#define __OMX_VENC_DEV__

-

-#include "OMX_Types.h"

-#include "OMX_Core.h"

-#include "OMX_QCOMExtns.h"

-#include "qc_omx_component.h"

-#include "omx_video_common.h"

-#include <linux/msm_vidc_enc.h>

-#include <pthread.h>

-#include <linux/videodev2.h>

-#include <poll.h>

-#define TIMEOUT 5000

-#define MAX_RECON_BUFFERS 4

-

-void* async_venc_message_thread (void *);

-

-class venc_dev

-{

-public:

-  venc_dev(class omx_venc *venc_class); //constructor

-  ~venc_dev(); //des

-

-  bool venc_open(OMX_U32);

-  void venc_close();

-  unsigned venc_stop(void);

-  unsigned venc_pause(void);

-  unsigned venc_start(void);

-  unsigned venc_flush(unsigned);

-#ifdef _ANDROID_ICS_

-  bool venc_set_meta_mode(bool);

-#endif

-  unsigned venc_resume(void);

-  unsigned venc_start_done(void);

-  unsigned venc_set_message_thread_id(pthread_t);

-  bool venc_use_buf(void*, unsigned,unsigned);

-  bool venc_free_buf(void*, unsigned);

-  bool venc_empty_buf(void *, void *,unsigned,unsigned);

-  bool venc_fill_buf(void *, void *,unsigned,unsigned);

-

-  bool venc_get_buf_req(unsigned long *,unsigned long *,

-                        unsigned long *,unsigned long);

-  bool venc_set_buf_req(unsigned long *,unsigned long *,

-                        unsigned long *,unsigned long);

-  bool venc_set_param(void *,OMX_INDEXTYPE);

-  bool venc_set_config(void *configData, OMX_INDEXTYPE index);

-  bool venc_get_profile_level(OMX_U32 *eProfile,OMX_U32 *eLevel);

-  bool venc_max_allowed_bitrate_check(OMX_U32 nTargetBitrate);

-  bool venc_get_seq_hdr(void *, unsigned, unsigned *);

-  bool venc_loaded_start(void);

-  bool venc_loaded_stop(void);

-  bool venc_loaded_start_done(void);

-  bool venc_loaded_stop_done(void);

-  bool venc_get_capability_ltrcount(OMX_U32 *, OMX_U32 *, OMX_U32 *);

-  OMX_U32 m_nDriver_fd;

-  bool m_profile_set;

-  bool m_level_set;

-  pthread_mutex_t loaded_start_stop_mlock;

-  pthread_cond_t loaded_start_stop_cond;

-

-  struct recon_buffer {

-	  unsigned char* virtual_address;

-	  int pmem_fd;

-	  int size;

-	  int alignment;

-	  int offset;

-#ifdef USE_ION

-          int ion_device_fd;

-          struct ion_allocation_data alloc_data;

-          struct ion_fd_data ion_alloc_fd;

-#endif

-	  };

-

-  recon_buffer recon_buff[MAX_RECON_BUFFERS];

-  int recon_buffers_count;

-  bool m_max_allowed_bitrate_check;

-  int m_eProfile;

-  int m_eLevel;

-  int etb_count;

-private:

-  struct venc_basecfg             m_sVenc_cfg;

-  struct venc_ratectrlcfg         rate_ctrl;

-  struct venc_targetbitrate       bitrate;

-  struct venc_intraperiod         intra_period;

-  struct venc_profile             codec_profile;

-  struct ven_profilelevel         profile_level;

-  struct venc_switch              set_param;

-  struct venc_voptimingcfg        time_inc;

-  struct venc_allocatorproperty   m_sInput_buff_property;

-  struct venc_allocatorproperty   m_sOutput_buff_property;

-  struct venc_sessionqp           session_qp;

-  struct venc_qprange             qp_range;

-  struct venc_multiclicecfg       multislice;

-  struct venc_entropycfg          entropy;

-  struct venc_dbcfg               dbkfilter;

-  struct venc_intrarefresh        intra_refresh;

-  struct venc_headerextension     hec;

-  struct venc_voptimingcfg        voptimecfg;

-  struct venc_seqheader           seqhdr;

-  struct venc_ltrmode             ltrmode;

-  struct venc_ltrcount            ltrcount;

-  struct venc_ltrperiod           ltrperiod;

-

-  bool venc_set_profile_level(OMX_U32 eProfile,OMX_U32 eLevel);

-  bool venc_set_intra_period(OMX_U32 nPFrames, OMX_U32 nBFrames);

-  bool venc_set_target_bitrate(OMX_U32 nTargetBitrate, OMX_U32 config);

-  bool venc_set_ratectrl_cfg(OMX_VIDEO_CONTROLRATETYPE eControlRate);

-  bool venc_set_qp_range(OMX_U32 min_qp, OMX_U32 max_qp);

-  bool venc_set_session_qp(OMX_U32 i_frame_qp, OMX_U32 p_frame_qp);

-  bool venc_set_extradata(OMX_U32 extra_data);

-  bool venc_set_encode_framerate(OMX_U32 encode_framerate, OMX_U32 config);

-  bool venc_set_intra_vop_refresh(OMX_BOOL intra_vop_refresh);

-  bool venc_set_color_format(OMX_COLOR_FORMATTYPE color_format);

-  bool venc_validate_profile_level(OMX_U32 *eProfile, OMX_U32 *eLevel);

-  bool venc_set_multislice_cfg(OMX_INDEXTYPE codec, OMX_U32 slicesize);

-  bool venc_set_entropy_config(OMX_BOOL enable, OMX_U32 i_cabac_level);

-  bool venc_set_inloop_filter(OMX_VIDEO_AVCLOOPFILTERTYPE loop_filter);

-  bool venc_set_intra_refresh (OMX_VIDEO_INTRAREFRESHTYPE intrarefresh, OMX_U32 nMBs);

-  bool venc_set_error_resilience(OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE* error_resilience);

-  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);

-  bool venc_set_ltrmode(QOMX_VIDEO_LTRMODETYPE mode);

-  bool venc_set_ltrcount(OMX_U32 count);

-  bool venc_set_ltrperiod(OMX_U32 period);

-  bool venc_set_ltruse(OMX_U32 id, OMX_U32 frames);

-#ifdef MAX_RES_1080P

-  OMX_U32 pmem_free();

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

-  OMX_U32 venc_allocate_recon_buffers();

-  inline int clip2(int x)

-  {

-	  x = x -1;

-	  x = x | x >> 1;

-	  x = x | x >> 2;

-	  x = x | x >> 4;

-	  x = x | x >> 16;

-	  x = x + 1;

-	  return x;

-  }

-#endif

-};

-

-#endif

+/*--------------------------------------------------------------------------
+Copyright (c) 2010-2013, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of The Linux Foundation nor
+      the names of its contributors may be used to endorse or promote
+      products derived from this software without specific prior written
+      permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------*/
+#ifndef __OMX_VENC_DEV__
+#define __OMX_VENC_DEV__
+
+#include "OMX_Types.h"
+#include "OMX_Core.h"
+#include "OMX_QCOMExtns.h"
+#include "qc_omx_component.h"
+#include "omx_video_common.h"
+#include <linux/msm_vidc_enc.h>
+#include <pthread.h>
+#include <linux/videodev2.h>
+#include <poll.h>
+#define TIMEOUT 5000
+#define MAX_RECON_BUFFERS 4
+
+void* async_venc_message_thread (void *);
+
+class venc_dev
+{
+    public:
+        venc_dev(class omx_venc *venc_class); //constructor
+        ~venc_dev(); //des
+
+        bool venc_open(OMX_U32);
+        void venc_close();
+        unsigned venc_stop(void);
+        unsigned venc_pause(void);
+        unsigned venc_start(void);
+        unsigned venc_flush(unsigned);
+#ifdef _ANDROID_ICS_
+        bool venc_set_meta_mode(bool);
+#endif
+        unsigned venc_resume(void);
+        unsigned venc_start_done(void);
+        unsigned venc_set_message_thread_id(pthread_t);
+        bool venc_use_buf(void*, unsigned,unsigned);
+        bool venc_free_buf(void*, unsigned);
+        bool venc_empty_buf(void *, void *,unsigned,unsigned);
+        bool venc_fill_buf(void *, void *,unsigned,unsigned);
+
+        bool venc_get_buf_req(unsigned long *,unsigned long *,
+                unsigned long *,unsigned long);
+        bool venc_set_buf_req(unsigned long *,unsigned long *,
+                unsigned long *,unsigned long);
+        bool venc_set_param(void *,OMX_INDEXTYPE);
+        bool venc_set_config(void *configData, OMX_INDEXTYPE index);
+        bool venc_get_profile_level(OMX_U32 *eProfile,OMX_U32 *eLevel);
+        bool venc_max_allowed_bitrate_check(OMX_U32 nTargetBitrate);
+        bool venc_get_seq_hdr(void *, unsigned, unsigned *);
+        bool venc_loaded_start(void);
+        bool venc_loaded_stop(void);
+        bool venc_loaded_start_done(void);
+        bool venc_loaded_stop_done(void);
+        bool venc_get_capability_ltrcount(OMX_U32 *, OMX_U32 *, OMX_U32 *);
+        OMX_U32 m_nDriver_fd;
+        bool m_profile_set;
+        bool m_level_set;
+        pthread_mutex_t loaded_start_stop_mlock;
+        pthread_cond_t loaded_start_stop_cond;
+
+        struct recon_buffer {
+            unsigned char* virtual_address;
+            int pmem_fd;
+            int size;
+            int alignment;
+            int offset;
+#ifdef USE_ION
+            int ion_device_fd;
+            struct ion_allocation_data alloc_data;
+            struct ion_fd_data ion_alloc_fd;
+#endif
+        };
+
+        recon_buffer recon_buff[MAX_RECON_BUFFERS];
+        int recon_buffers_count;
+        bool m_max_allowed_bitrate_check;
+        int m_eProfile;
+        int m_eLevel;
+        int etb_count;
+    private:
+        struct venc_basecfg             m_sVenc_cfg;
+        struct venc_ratectrlcfg         rate_ctrl;
+        struct venc_targetbitrate       bitrate;
+        struct venc_intraperiod         intra_period;
+        struct venc_profile             codec_profile;
+        struct ven_profilelevel         profile_level;
+        struct venc_switch              set_param;
+        struct venc_voptimingcfg        time_inc;
+        struct venc_allocatorproperty   m_sInput_buff_property;
+        struct venc_allocatorproperty   m_sOutput_buff_property;
+        struct venc_sessionqp           session_qp;
+        struct venc_qprange             qp_range;
+        struct venc_multiclicecfg       multislice;
+        struct venc_entropycfg          entropy;
+        struct venc_dbcfg               dbkfilter;
+        struct venc_intrarefresh        intra_refresh;
+        struct venc_headerextension     hec;
+        struct venc_voptimingcfg        voptimecfg;
+        struct venc_seqheader           seqhdr;
+        struct venc_ltrmode             ltrmode;
+        struct venc_ltrcount            ltrcount;
+        struct venc_ltrperiod           ltrperiod;
+
+        bool venc_set_profile_level(OMX_U32 eProfile,OMX_U32 eLevel);
+        bool venc_set_intra_period(OMX_U32 nPFrames, OMX_U32 nBFrames);
+        bool venc_set_target_bitrate(OMX_U32 nTargetBitrate, OMX_U32 config);
+        bool venc_set_ratectrl_cfg(OMX_VIDEO_CONTROLRATETYPE eControlRate);
+        bool venc_set_qp_range(OMX_U32 min_qp, OMX_U32 max_qp);
+        bool venc_set_session_qp(OMX_U32 i_frame_qp, OMX_U32 p_frame_qp);
+        bool venc_set_extradata(OMX_U32 extra_data);
+        bool venc_set_encode_framerate(OMX_U32 encode_framerate, OMX_U32 config);
+        bool venc_set_intra_vop_refresh(OMX_BOOL intra_vop_refresh);
+        bool venc_set_color_format(OMX_COLOR_FORMATTYPE color_format);
+        bool venc_validate_profile_level(OMX_U32 *eProfile, OMX_U32 *eLevel);
+        bool venc_set_multislice_cfg(OMX_INDEXTYPE codec, OMX_U32 slicesize);
+        bool venc_set_entropy_config(OMX_BOOL enable, OMX_U32 i_cabac_level);
+        bool venc_set_inloop_filter(OMX_VIDEO_AVCLOOPFILTERTYPE loop_filter);
+        bool venc_set_intra_refresh (OMX_VIDEO_INTRAREFRESHTYPE intrarefresh, OMX_U32 nMBs);
+        bool venc_set_error_resilience(OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE* error_resilience);
+        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);
+        bool venc_set_ltrmode(QOMX_VIDEO_LTRMODETYPE mode);
+        bool venc_set_ltrcount(OMX_U32 count);
+        bool venc_set_ltrperiod(OMX_U32 period);
+        bool venc_set_ltruse(OMX_U32 id, OMX_U32 frames);
+#ifdef MAX_RES_1080P
+        OMX_U32 pmem_free();
+        OMX_U32 pmem_allocate(OMX_U32 size, OMX_U32 alignment, OMX_U32 count);
+        OMX_U32 venc_allocate_recon_buffers();
+        inline int clip2(int x) {
+            x = x -1;
+            x = x | x >> 1;
+            x = x | x >> 2;
+            x = x | x >> 4;
+            x = x | x >> 16;
+            x = x + 1;
+            return x;
+        }
+#endif
+};
+
+#endif
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 78729b6..8a6fcc4 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
@@ -42,120 +42,120 @@
 #define TIMEOUT 5*60*1000
 
 
-struct msm_venc_switch{
-	unsigned char	status;
+struct msm_venc_switch {
+    unsigned char    status;
 };
 
-struct msm_venc_allocatorproperty{
-	unsigned long	 mincount;
-	unsigned long	 actualcount;
-	unsigned long	 datasize;
-	unsigned long	 suffixsize;
-	unsigned long	 alignment;
-	unsigned long	 bufpoolid;
+struct msm_venc_allocatorproperty {
+    unsigned long     mincount;
+    unsigned long     actualcount;
+    unsigned long     datasize;
+    unsigned long     suffixsize;
+    unsigned long     alignment;
+    unsigned long     bufpoolid;
 };
 
-struct msm_venc_basecfg{
-	unsigned long	input_width;
-	unsigned long	input_height;
-	unsigned long	dvs_width;
-	unsigned long	dvs_height;
-	unsigned long	codectype;
-	unsigned long	fps_num;
-	unsigned long	fps_den;
-	unsigned long	targetbitrate;
-	unsigned long	inputformat;
+struct msm_venc_basecfg {
+    unsigned long    input_width;
+    unsigned long    input_height;
+    unsigned long    dvs_width;
+    unsigned long    dvs_height;
+    unsigned long    codectype;
+    unsigned long    fps_num;
+    unsigned long    fps_den;
+    unsigned long    targetbitrate;
+    unsigned long    inputformat;
 };
 
-struct msm_venc_profile{
-	unsigned long	profile;
+struct msm_venc_profile {
+    unsigned long    profile;
 };
-struct msm_venc_profilelevel{
-	unsigned long	level;
+struct msm_venc_profilelevel {
+    unsigned long    level;
 };
 
-struct msm_venc_sessionqp{
-	unsigned long	iframeqp;
-	unsigned long	pframqp;
-	unsigned long	bframqp;
+struct msm_venc_sessionqp {
+    unsigned long    iframeqp;
+    unsigned long    pframqp;
+    unsigned long    bframqp;
 };
 
-struct msm_venc_qprange{
-	unsigned long	maxqp;
-	unsigned long	minqp;
+struct msm_venc_qprange {
+    unsigned long    maxqp;
+    unsigned long    minqp;
 };
-struct msm_venc_intraperiod{
-	unsigned long	num_pframes;
-	unsigned long	num_bframes;
+struct msm_venc_intraperiod {
+    unsigned long    num_pframes;
+    unsigned long    num_bframes;
 };
-struct msm_venc_seqheader{
-	unsigned char *hdrbufptr;
-	unsigned long	bufsize;
-	unsigned long	hdrlen;
+struct msm_venc_seqheader {
+    unsigned char *hdrbufptr;
+    unsigned long    bufsize;
+    unsigned long    hdrlen;
 };
 
-struct msm_venc_capability{
-	unsigned long	codec_types;
-	unsigned long	maxframe_width;
-	unsigned long	maxframe_height;
-	unsigned long	maxtarget_bitrate;
-	unsigned long	maxframe_rate;
-	unsigned long	input_formats;
-	unsigned char	dvs;
+struct msm_venc_capability {
+    unsigned long    codec_types;
+    unsigned long    maxframe_width;
+    unsigned long    maxframe_height;
+    unsigned long    maxtarget_bitrate;
+    unsigned long    maxframe_rate;
+    unsigned long    input_formats;
+    unsigned char    dvs;
 };
 
-struct msm_venc_entropycfg{
-	unsigned longentropysel;
-	unsigned long	cabacmodel;
+struct msm_venc_entropycfg {
+    unsigned longentropysel;
+    unsigned long    cabacmodel;
 };
 
-struct msm_venc_dbcfg{
-	unsigned long	db_mode;
-	unsigned long	slicealpha_offset;
-	unsigned long	slicebeta_offset;
+struct msm_venc_dbcfg {
+    unsigned long    db_mode;
+    unsigned long    slicealpha_offset;
+    unsigned long    slicebeta_offset;
 };
 
-struct msm_venc_intrarefresh{
-	unsigned long	irmode;
-	unsigned long	mbcount;
+struct msm_venc_intrarefresh {
+    unsigned long    irmode;
+    unsigned long    mbcount;
 };
 
-struct msm_venc_multiclicecfg{
-	unsigned long	mslice_mode;
-	unsigned long	mslice_size;
+struct msm_venc_multiclicecfg {
+    unsigned long    mslice_mode;
+    unsigned long    mslice_size;
 };
 
-struct msm_venc_bufferflush{
-	unsigned long	flush_mode;
+struct msm_venc_bufferflush {
+    unsigned long    flush_mode;
 };
 
-struct msm_venc_ratectrlcfg{
-	unsigned long	rcmode;
+struct msm_venc_ratectrlcfg {
+    unsigned long    rcmode;
 };
 
-struct	msm_venc_voptimingcfg{
-	unsigned long	voptime_resolution;
+struct    msm_venc_voptimingcfg {
+    unsigned long    voptime_resolution;
 };
-struct msm_venc_framerate{
-	unsigned long	fps_denominator;
-	unsigned long	fps_numerator;
+struct msm_venc_framerate {
+    unsigned long    fps_denominator;
+    unsigned long    fps_numerator;
 };
 
-struct msm_venc_targetbitrate{
-	unsigned long	target_bitrate;
+struct msm_venc_targetbitrate {
+    unsigned long    target_bitrate;
 };
 
 
-struct msm_venc_rotation{
-	unsigned long	rotation;
+struct msm_venc_rotation {
+    unsigned long    rotation;
 };
 
-struct msm_venc_timeout{
-	 unsigned long	millisec;
+struct msm_venc_timeout {
+    unsigned long    millisec;
 };
 
-struct msm_venc_headerextension{
-	 unsigned long	header_extension;
+struct msm_venc_headerextension {
+    unsigned long    header_extension;
 };
 
 struct msm_venc_video_capability {
@@ -166,179 +166,178 @@
 };
 
 struct msm_venc_idrperiod {
-	unsigned long idrperiod;
+    unsigned long idrperiod;
 };
 
 struct msm_venc_slice_delivery {
-	unsigned long enable;
+    unsigned long enable;
 };
 
 enum v4l2_ports {
-	CAPTURE_PORT,
-	OUTPUT_PORT,
-	MAX_PORT
+    CAPTURE_PORT,
+    OUTPUT_PORT,
+    MAX_PORT
 };
 
 struct extradata_buffer_info {
-	int buffer_size;
-	char* uaddr;
-	int count;
-	int size;
-	int allocated;
+    int buffer_size;
+    char* uaddr;
+    int count;
+    int size;
+    int allocated;
 #ifdef USE_ION
-	struct venc_ion ion;
+    struct venc_ion ion;
 #endif
 };
 
 class venc_dev
 {
-public:
-  venc_dev(class omx_venc *venc_class); //constructor
-  ~venc_dev(); //des
+    public:
+        venc_dev(class omx_venc *venc_class); //constructor
+        ~venc_dev(); //des
 
-  static void* async_venc_message_thread (void *);
-  bool venc_open(OMX_U32);
-  void venc_close();
-  unsigned venc_stop(void);
-  unsigned venc_pause(void);
-  unsigned venc_start(void);
-  unsigned venc_flush(unsigned);
+        static void* async_venc_message_thread (void *);
+        bool venc_open(OMX_U32);
+        void venc_close();
+        unsigned venc_stop(void);
+        unsigned venc_pause(void);
+        unsigned venc_start(void);
+        unsigned venc_flush(unsigned);
 #ifdef _ANDROID_ICS_
-  bool venc_set_meta_mode(bool);
+        bool venc_set_meta_mode(bool);
 #endif
-  unsigned venc_resume(void);
-  unsigned venc_start_done(void);
-  unsigned venc_stop_done(void);
-  unsigned venc_set_message_thread_id(pthread_t);
-  bool venc_use_buf(void*, unsigned,unsigned);
-  bool venc_free_buf(void*, unsigned);
-  bool venc_empty_buf(void *, void *,unsigned,unsigned);
-  bool venc_fill_buf(void *, void *,unsigned,unsigned);
+        unsigned venc_resume(void);
+        unsigned venc_start_done(void);
+        unsigned venc_stop_done(void);
+        unsigned venc_set_message_thread_id(pthread_t);
+        bool venc_use_buf(void*, unsigned,unsigned);
+        bool venc_free_buf(void*, unsigned);
+        bool venc_empty_buf(void *, void *,unsigned,unsigned);
+        bool venc_fill_buf(void *, void *,unsigned,unsigned);
 
-  bool venc_get_buf_req(unsigned long *,unsigned long *,
-                        unsigned long *,unsigned long);
-  bool venc_set_buf_req(unsigned long *,unsigned long *,
-                        unsigned long *,unsigned long);
-  bool venc_set_param(void *,OMX_INDEXTYPE);
-  bool venc_set_config(void *configData, OMX_INDEXTYPE index);
-  bool venc_get_profile_level(OMX_U32 *eProfile,OMX_U32 *eLevel);
-  bool venc_get_seq_hdr(void *, unsigned, unsigned *);
-  bool venc_loaded_start(void);
-  bool venc_loaded_stop(void);
-  bool venc_loaded_start_done(void);
-  bool venc_loaded_stop_done(void);
-  bool venc_is_video_session_supported(unsigned long width, unsigned long height);
-  OMX_U32 m_nDriver_fd;
-  bool m_profile_set;
-  bool m_level_set;
-  int num_planes;
-  int etb, ebd, ftb, fbd;
-  struct recon_buffer {
-	  unsigned char* virtual_address;
-	  int pmem_fd;
-	  int size;
-	  int alignment;
-	  int offset;
+        bool venc_get_buf_req(unsigned long *,unsigned long *,
+                unsigned long *,unsigned long);
+        bool venc_set_buf_req(unsigned long *,unsigned long *,
+                unsigned long *,unsigned long);
+        bool venc_set_param(void *,OMX_INDEXTYPE);
+        bool venc_set_config(void *configData, OMX_INDEXTYPE index);
+        bool venc_get_profile_level(OMX_U32 *eProfile,OMX_U32 *eLevel);
+        bool venc_get_seq_hdr(void *, unsigned, unsigned *);
+        bool venc_loaded_start(void);
+        bool venc_loaded_stop(void);
+        bool venc_loaded_start_done(void);
+        bool venc_loaded_stop_done(void);
+        bool venc_is_video_session_supported(unsigned long width, unsigned long height);
+        OMX_U32 m_nDriver_fd;
+        bool m_profile_set;
+        bool m_level_set;
+        int num_planes;
+        int etb, ebd, ftb, fbd;
+        struct recon_buffer {
+            unsigned char* virtual_address;
+            int pmem_fd;
+            int size;
+            int alignment;
+            int offset;
 #ifdef USE_ION
-          int ion_device_fd;
-          struct ion_allocation_data alloc_data;
-          struct ion_fd_data ion_alloc_fd;
+            int ion_device_fd;
+            struct ion_allocation_data alloc_data;
+            struct ion_fd_data ion_alloc_fd;
 #endif
-	  };
+        };
 
-  int stopped;
-  bool m_max_allowed_bitrate_check;
-  pthread_t m_tid;
-  bool async_thread_created;
-  class omx_venc *venc_handle;
-  OMX_ERRORTYPE allocate_extradata();
-  void free_extradata();
-  bool handle_extradata(void *, int);
-  int venc_set_format(int);
-private:
-  struct msm_venc_basecfg             m_sVenc_cfg;
-  struct msm_venc_ratectrlcfg         rate_ctrl;
-  struct msm_venc_targetbitrate       bitrate;
-  struct msm_venc_intraperiod         intra_period;
-  struct msm_venc_profile             codec_profile;
-  struct msm_venc_profilelevel        profile_level;
-  struct msm_venc_switch              set_param;
-  struct msm_venc_voptimingcfg        time_inc;
-  struct msm_venc_allocatorproperty   m_sInput_buff_property;
-  struct msm_venc_allocatorproperty   m_sOutput_buff_property;
-  struct msm_venc_sessionqp           session_qp;
-  struct msm_venc_multiclicecfg       multislice;
-  struct msm_venc_entropycfg          entropy;
-  struct msm_venc_dbcfg               dbkfilter;
-  struct msm_venc_intrarefresh        intra_refresh;
-  struct msm_venc_headerextension     hec;
-  struct msm_venc_voptimingcfg        voptimecfg;
-  struct msm_venc_video_capability    capability;
-  struct msm_venc_idrperiod           idrperiod;
-  struct msm_venc_slice_delivery      slice_mode;
+        int stopped;
+        bool m_max_allowed_bitrate_check;
+        pthread_t m_tid;
+        bool async_thread_created;
+        class omx_venc *venc_handle;
+        OMX_ERRORTYPE allocate_extradata();
+        void free_extradata();
+        bool handle_extradata(void *, int);
+        int venc_set_format(int);
+    private:
+        struct msm_venc_basecfg             m_sVenc_cfg;
+        struct msm_venc_ratectrlcfg         rate_ctrl;
+        struct msm_venc_targetbitrate       bitrate;
+        struct msm_venc_intraperiod         intra_period;
+        struct msm_venc_profile             codec_profile;
+        struct msm_venc_profilelevel        profile_level;
+        struct msm_venc_switch              set_param;
+        struct msm_venc_voptimingcfg        time_inc;
+        struct msm_venc_allocatorproperty   m_sInput_buff_property;
+        struct msm_venc_allocatorproperty   m_sOutput_buff_property;
+        struct msm_venc_sessionqp           session_qp;
+        struct msm_venc_multiclicecfg       multislice;
+        struct msm_venc_entropycfg          entropy;
+        struct msm_venc_dbcfg               dbkfilter;
+        struct msm_venc_intrarefresh        intra_refresh;
+        struct msm_venc_headerextension     hec;
+        struct msm_venc_voptimingcfg        voptimecfg;
+        struct msm_venc_video_capability    capability;
+        struct msm_venc_idrperiod           idrperiod;
+        struct msm_venc_slice_delivery      slice_mode;
 
-  bool venc_set_profile_level(OMX_U32 eProfile,OMX_U32 eLevel);
-  bool venc_set_intra_period(OMX_U32 nPFrames, OMX_U32 nBFrames);
-  bool venc_set_target_bitrate(OMX_U32 nTargetBitrate, OMX_U32 config);
-  bool venc_set_ratectrl_cfg(OMX_VIDEO_CONTROLRATETYPE eControlRate);
-  bool venc_set_session_qp(OMX_U32 i_frame_qp, OMX_U32 p_frame_qp,OMX_U32 b_frame_qp);
-  bool venc_set_encode_framerate(OMX_U32 encode_framerate, OMX_U32 config);
-  bool venc_set_intra_vop_refresh(OMX_BOOL intra_vop_refresh);
-  bool venc_set_color_format(OMX_COLOR_FORMATTYPE color_format);
-  bool venc_validate_profile_level(OMX_U32 *eProfile, OMX_U32 *eLevel);
-  bool venc_set_multislice_cfg(OMX_INDEXTYPE codec, OMX_U32 slicesize);
-  bool venc_set_entropy_config(OMX_BOOL enable, OMX_U32 i_cabac_level);
-  bool venc_set_inloop_filter(OMX_VIDEO_AVCLOOPFILTERTYPE loop_filter);
-  bool venc_set_intra_refresh (OMX_VIDEO_INTRAREFRESHTYPE intrarefresh, OMX_U32 nMBs);
-  bool venc_set_error_resilience(OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE* error_resilience);
-  bool venc_set_voptiming_cfg(OMX_U32 nTimeIncRes);
-  void venc_config_print();
-  bool venc_set_slice_delivery_mode(OMX_U32 enable);
-  bool venc_set_extradata(OMX_U32 extra_data);
-  bool venc_set_idr_period(OMX_U32 nPFrames, OMX_U32 nIDRPeriod);
+        bool venc_set_profile_level(OMX_U32 eProfile,OMX_U32 eLevel);
+        bool venc_set_intra_period(OMX_U32 nPFrames, OMX_U32 nBFrames);
+        bool venc_set_target_bitrate(OMX_U32 nTargetBitrate, OMX_U32 config);
+        bool venc_set_ratectrl_cfg(OMX_VIDEO_CONTROLRATETYPE eControlRate);
+        bool venc_set_session_qp(OMX_U32 i_frame_qp, OMX_U32 p_frame_qp,OMX_U32 b_frame_qp);
+        bool venc_set_encode_framerate(OMX_U32 encode_framerate, OMX_U32 config);
+        bool venc_set_intra_vop_refresh(OMX_BOOL intra_vop_refresh);
+        bool venc_set_color_format(OMX_COLOR_FORMATTYPE color_format);
+        bool venc_validate_profile_level(OMX_U32 *eProfile, OMX_U32 *eLevel);
+        bool venc_set_multislice_cfg(OMX_INDEXTYPE codec, OMX_U32 slicesize);
+        bool venc_set_entropy_config(OMX_BOOL enable, OMX_U32 i_cabac_level);
+        bool venc_set_inloop_filter(OMX_VIDEO_AVCLOOPFILTERTYPE loop_filter);
+        bool venc_set_intra_refresh (OMX_VIDEO_INTRAREFRESHTYPE intrarefresh, OMX_U32 nMBs);
+        bool venc_set_error_resilience(OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE* error_resilience);
+        bool venc_set_voptiming_cfg(OMX_U32 nTimeIncRes);
+        void venc_config_print();
+        bool venc_set_slice_delivery_mode(OMX_U32 enable);
+        bool venc_set_extradata(OMX_U32 extra_data);
+        bool venc_set_idr_period(OMX_U32 nPFrames, OMX_U32 nIDRPeriod);
 #ifdef MAX_RES_1080P
-  OMX_U32 pmem_free();
-  OMX_U32 pmem_allocate(OMX_U32 size, OMX_U32 alignment, OMX_U32 count);
-  OMX_U32 venc_allocate_recon_buffers();
-  inline int clip2(int x)
-  {
-	  x = x -1;
-	  x = x | x >> 1;
-	  x = x | x >> 2;
-	  x = x | x >> 4;
-	  x = x | x >> 16;
-	  x = x + 1;
-	  return x;
-  }
+        OMX_U32 pmem_free();
+        OMX_U32 pmem_allocate(OMX_U32 size, OMX_U32 alignment, OMX_U32 count);
+        OMX_U32 venc_allocate_recon_buffers();
+        inline int clip2(int x) {
+            x = x -1;
+            x = x | x >> 1;
+            x = x | x >> 2;
+            x = x | x >> 4;
+            x = x | x >> 16;
+            x = x + 1;
+            return x;
+        }
 #endif
-  int metadatamode;
-  bool streaming[MAX_PORT];
-  bool extradata;
-  struct extradata_buffer_info extradata_info;
+        int metadatamode;
+        bool streaming[MAX_PORT];
+        bool extradata;
+        struct extradata_buffer_info extradata_info;
 
-  pthread_mutex_t pause_resume_mlock;
-  pthread_cond_t pause_resume_cond;
-  bool paused;
-  int color_format;
+        pthread_mutex_t pause_resume_mlock;
+        pthread_cond_t pause_resume_cond;
+        bool paused;
+        int color_format;
 };
 
 enum instance_state {
-	MSM_VIDC_CORE_UNINIT_DONE = 0x0001,
-	MSM_VIDC_CORE_INIT,
-	MSM_VIDC_CORE_INIT_DONE,
-	MSM_VIDC_OPEN,
-	MSM_VIDC_OPEN_DONE,
-	MSM_VIDC_LOAD_RESOURCES,
-	MSM_VIDC_LOAD_RESOURCES_DONE,
-	MSM_VIDC_START,
-	MSM_VIDC_START_DONE,
-	MSM_VIDC_STOP,
-	MSM_VIDC_STOP_DONE,
-	MSM_VIDC_RELEASE_RESOURCES,
-	MSM_VIDC_RELEASE_RESOURCES_DONE,
-	MSM_VIDC_CLOSE,
-	MSM_VIDC_CLOSE_DONE,
-	MSM_VIDC_CORE_UNINIT,
+    MSM_VIDC_CORE_UNINIT_DONE = 0x0001,
+    MSM_VIDC_CORE_INIT,
+    MSM_VIDC_CORE_INIT_DONE,
+    MSM_VIDC_OPEN,
+    MSM_VIDC_OPEN_DONE,
+    MSM_VIDC_LOAD_RESOURCES,
+    MSM_VIDC_LOAD_RESOURCES_DONE,
+    MSM_VIDC_START,
+    MSM_VIDC_START_DONE,
+    MSM_VIDC_STOP,
+    MSM_VIDC_STOP_DONE,
+    MSM_VIDC_RELEASE_RESOURCES,
+    MSM_VIDC_RELEASE_RESOURCES_DONE,
+    MSM_VIDC_CLOSE,
+    MSM_VIDC_CLOSE_DONE,
+    MSM_VIDC_CORE_UNINIT,
 };
 #endif
 
diff --git a/mm-video-v4l2/vidc/venc/inc/video_encoder_test.h b/mm-video-v4l2/vidc/venc/inc/video_encoder_test.h
old mode 100755
new mode 100644
index bf1082a..217611a
--- a/mm-video-v4l2/vidc/venc/inc/video_encoder_test.h
+++ b/mm-video-v4l2/vidc/venc/inc/video_encoder_test.h
@@ -1,76 +1,75 @@
-/*--------------------------------------------------------------------------

-Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.

-

-Redistribution and use in source and binary forms, with or without

-modification, are permitted provided that the following conditions are met:

-    * Redistributions of source code must retain the above copyright

-      notice, this list of conditions and the following disclaimer.

-    * Redistributions in binary form must reproduce the above copyright

-      notice, this list of conditions and the following disclaimer in the

-      documentation and/or other materials provided with the distribution.

-    * Neither the name of The Linux Foundation nor

-      the names of its contributors may be used to endorse or promote

-      products derived from this software without specific prior written

-      permission.

-

-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

-IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

-NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR

-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;

-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF

-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---------------------------------------------------------------------------*/

-#include <stdio.h>

-#include <stdlib.h>

-#include "queue.h"

-#include<fcntl.h>

-#include<sys/ioctl.h>

-#include <sys/mman.h>

-#include <linux/msm_vidc_enc.h>

-#include<pthread.h>

-#include <semaphore.h>

-#include <stdio.h>

-

-#define INPUT_BUFFER 0

-#define OUTPUT_BUFFER 1

-

-struct video_encoder_context

-{

-	unsigned long   input_width;

-  unsigned long   input_height;

-	unsigned long   codectype;

-  unsigned long   fps_num;

-  unsigned long   fps_den;

-  unsigned long   targetbitrate;

-  unsigned long   inputformat;

-

-	struct venc_allocatorproperty input_buffer;

-  struct venc_allocatorproperty output_buffer;

-	struct venc_bufferpayload     **ptr_inputbuffer;

-	struct venc_bufferpayload     **ptr_outputbuffer;

-	struct video_queue_context    queue_context;

-	int                           video_driver_fd;

-

-	FILE * inputBufferFile;

-	FILE * outputBufferFile;

-

-  pthread_t videothread_id;

-	pthread_t asyncthread_id;

-	sem_t sem_synchronize;

-};

-

-int init_encoder ( struct video_encoder_context *init_decode );

-int allocate_buffer ( unsigned int buffer_dir,

-					            struct video_encoder_context *decode_context

-					          );

-int free_buffer ( unsigned int buffer_dir,

-				          struct video_encoder_context *decode_context

-				         );

-int start_encoding (struct video_encoder_context *decode_context);

-int stop_encoding  (struct video_encoder_context *decode_context);

-int deinit_encoder (struct video_encoder_context *init_decode);

+/*--------------------------------------------------------------------------
+Copyright (c) 2010-2011, 2013, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of The Linux Foundation nor
+      the names of its contributors may be used to endorse or promote
+      products derived from this software without specific prior written
+      permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------*/
+#include <stdio.h>
+#include <stdlib.h>
+#include "queue.h"
+#include<fcntl.h>
+#include<sys/ioctl.h>
+#include <sys/mman.h>
+#include <linux/msm_vidc_enc.h>
+#include<pthread.h>
+#include <semaphore.h>
+#include <stdio.h>
+
+#define INPUT_BUFFER 0
+#define OUTPUT_BUFFER 1
+
+struct video_encoder_context {
+    unsigned long   input_width;
+    unsigned long   input_height;
+    unsigned long   codectype;
+    unsigned long   fps_num;
+    unsigned long   fps_den;
+    unsigned long   targetbitrate;
+    unsigned long   inputformat;
+
+    struct venc_allocatorproperty input_buffer;
+    struct venc_allocatorproperty output_buffer;
+    struct venc_bufferpayload     **ptr_inputbuffer;
+    struct venc_bufferpayload     **ptr_outputbuffer;
+    struct video_queue_context    queue_context;
+    int                           video_driver_fd;
+
+    FILE * inputBufferFile;
+    FILE * outputBufferFile;
+
+    pthread_t videothread_id;
+    pthread_t asyncthread_id;
+    sem_t sem_synchronize;
+};
+
+int init_encoder ( struct video_encoder_context *init_decode );
+int allocate_buffer ( unsigned int buffer_dir,
+        struct video_encoder_context *decode_context
+        );
+int free_buffer ( unsigned int buffer_dir,
+        struct video_encoder_context *decode_context
+        );
+int start_encoding (struct video_encoder_context *decode_context);
+int stop_encoding  (struct video_encoder_context *decode_context);
+int deinit_encoder (struct video_encoder_context *init_decode);
diff --git a/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp b/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp
index d207bcd..c4e30ae 100644
--- a/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp
+++ b/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp
@@ -76,8 +76,7 @@
 #define VC1_STRUCT_B_POS            24
 #define VC1_SEQ_LAYER_SIZE          36
 
-typedef struct OMXComponentCapabilityFlagsType
-{
+typedef struct OMXComponentCapabilityFlagsType {
     ////////////////// OMX COMPONENT CAPABILITY RELATED MEMBERS
     OMX_BOOL iIsOMXComponentMultiThreaded;
     OMX_BOOL iOMXComponentSupportsExternalOutputBufferAlloc;
@@ -96,104 +95,93 @@
 
 void* message_thread(void *input)
 {
-  omx_video* omx = reinterpret_cast<omx_video*>(input);
-  unsigned char id;
-  int n;
+    omx_video* omx = reinterpret_cast<omx_video*>(input);
+    unsigned char id;
+    int n;
 
-  DEBUG_PRINT_LOW("omx_venc: message thread start\n");
-  prctl(PR_SET_NAME, (unsigned long)"VideoEncMsgThread", 0, 0, 0);
-  while(1)
-  {
-    n = read(omx->m_pipe_in, &id, 1);
-    if(0 == n)
-    {
-      break;
-    }
+    DEBUG_PRINT_LOW("omx_venc: message thread start\n");
+    prctl(PR_SET_NAME, (unsigned long)"VideoEncMsgThread", 0, 0, 0);
+    while (1) {
+        n = read(omx->m_pipe_in, &id, 1);
+        if (0 == n) {
+            break;
+        }
 
-    if(1 == n)
-    {
-      omx->process_event_cb(omx, id);
-    }
+        if (1 == n) {
+            omx->process_event_cb(omx, id);
+        }
 #ifdef QLE_BUILD
-    if(n < 0) break;
+        if (n < 0) break;
 #else
-    if((n < 0) && (errno != EINTR)) break;
+        if ((n < 0) && (errno != EINTR)) break;
 #endif
-  }
-  DEBUG_PRINT_LOW("omx_venc: message thread stop\n");
-  return 0;
+    }
+    DEBUG_PRINT_LOW("omx_venc: message thread stop\n");
+    return 0;
 }
 
 void post_message(omx_video *omx, unsigned char id)
 {
-  DEBUG_PRINT_LOW("omx_venc: post_message %d\n", id);
-  write(omx->m_pipe_out, &id, 1);
+    DEBUG_PRINT_LOW("omx_venc: post_message %d\n", id);
+    write(omx->m_pipe_out, &id, 1);
 }
 
 // omx_cmd_queue destructor
 omx_video::omx_cmd_queue::~omx_cmd_queue()
 {
-  // Nothing to do
+    // Nothing to do
 }
 
 // omx cmd queue constructor
 omx_video::omx_cmd_queue::omx_cmd_queue(): m_read(0),m_write(0),m_size(0)
 {
-  memset(m_q,0,sizeof(omx_event)*OMX_CORE_CONTROL_CMDQ_SIZE);
+    memset(m_q,0,sizeof(omx_event)*OMX_CORE_CONTROL_CMDQ_SIZE);
 }
 
 // omx cmd queue insert
 bool omx_video::omx_cmd_queue::insert_entry(unsigned p1, unsigned p2, unsigned id)
 {
-  bool ret = true;
-  if(m_size < OMX_CORE_CONTROL_CMDQ_SIZE)
-  {
-    m_q[m_write].id       = id;
-    m_q[m_write].param1   = p1;
-    m_q[m_write].param2   = p2;
-    m_write++;
-    m_size ++;
-    if(m_write >= OMX_CORE_CONTROL_CMDQ_SIZE)
-    {
-      m_write = 0;
+    bool ret = true;
+    if (m_size < OMX_CORE_CONTROL_CMDQ_SIZE) {
+        m_q[m_write].id       = id;
+        m_q[m_write].param1   = p1;
+        m_q[m_write].param2   = p2;
+        m_write++;
+        m_size ++;
+        if (m_write >= OMX_CORE_CONTROL_CMDQ_SIZE) {
+            m_write = 0;
+        }
+    } else {
+        ret = false;
+        DEBUG_PRINT_ERROR("ERROR!!! Command Queue Full\n");
     }
-  }
-  else
-  {
-    ret = false;
-    DEBUG_PRINT_ERROR("ERROR!!! Command Queue Full\n");
-  }
-  return ret;
+    return ret;
 }
 
 // omx cmd queue pop
 bool omx_video::omx_cmd_queue::pop_entry(unsigned *p1, unsigned *p2, unsigned *id)
 {
-  bool ret = true;
-  if(m_size > 0)
-  {
-    *id = m_q[m_read].id;
-    *p1 = m_q[m_read].param1;
-    *p2 = m_q[m_read].param2;
-    // Move the read pointer ahead
-    ++m_read;
-    --m_size;
-    if(m_read >= OMX_CORE_CONTROL_CMDQ_SIZE)
-    {
-      m_read = 0;
+    bool ret = true;
+    if (m_size > 0) {
+        *id = m_q[m_read].id;
+        *p1 = m_q[m_read].param1;
+        *p2 = m_q[m_read].param2;
+        // Move the read pointer ahead
+        ++m_read;
+        --m_size;
+        if (m_read >= OMX_CORE_CONTROL_CMDQ_SIZE) {
+            m_read = 0;
+        }
+    } else {
+        ret = false;
     }
-  }
-  else
-  {
-    ret = false;
-  }
-  return ret;
+    return ret;
 }
 
 // Retrieve the first mesg type in the queue
 unsigned omx_video::omx_cmd_queue::get_q_msg_type()
 {
-  return m_q[m_read].id;
+    return m_q[m_read].id;
 }
 
 
@@ -201,496 +189,434 @@
 #ifdef _ANDROID_
 VideoHeap::VideoHeap(int fd, size_t size, void* base)
 {
-  // dup file descriptor, map once, use pmem
-  init(dup(fd), base, size, 0 , MEM_DEVICE);
+    // dup file descriptor, map once, use pmem
+    init(dup(fd), base, size, 0 , MEM_DEVICE);
 }
 #endif // _ANDROID_
 
 /* ======================================================================
-FUNCTION
-  omx_venc::omx_venc
+   FUNCTION
+   omx_venc::omx_venc
 
-DESCRIPTION
-  Constructor
+   DESCRIPTION
+   Constructor
 
-PARAMETERS
-  None
+   PARAMETERS
+   None
 
-RETURN VALUE
-  None.
-========================================================================== */
+   RETURN VALUE
+   None.
+   ========================================================================== */
 omx_video::omx_video():
-	m_pInput_pmem(NULL),
-	m_pOutput_pmem(NULL),
+    m_pInput_pmem(NULL),
+    m_pOutput_pmem(NULL),
 #ifdef USE_ION
-	m_pInput_ion(NULL),
-	m_pOutput_ion(NULL),
+    m_pInput_ion(NULL),
+    m_pOutput_ion(NULL),
 #endif
-	m_error_propogated(false),
-	m_state(OMX_StateInvalid),
-	m_app_data(NULL),
-	m_use_input_pmem(OMX_FALSE),
-	m_use_output_pmem(OMX_FALSE),
-	m_inp_mem_ptr(NULL),
-	m_out_mem_ptr(NULL),
-	input_flush_progress (false),
-	output_flush_progress (false),
-	input_use_buffer (false),
-	output_use_buffer (false),
-	pending_input_buffers(0),
-	pending_output_buffers(0),
-	m_out_bm_count(0),
-	m_inp_bm_count(0),
-	m_flags(0),
-	m_etb_count(0),
-	m_fbd_count(0),
-	m_event_port_settings_sent(false),
-  m_input_msg_id(OMX_COMPONENT_GENERATE_ETB),
-  psource_frame(NULL),
-  pdest_frame(NULL),
-  c2d_opened(false)
+    m_error_propogated(false),
+    m_state(OMX_StateInvalid),
+    m_app_data(NULL),
+    m_use_input_pmem(OMX_FALSE),
+    m_use_output_pmem(OMX_FALSE),
+    m_inp_mem_ptr(NULL),
+    m_out_mem_ptr(NULL),
+    input_flush_progress (false),
+    output_flush_progress (false),
+    input_use_buffer (false),
+    output_use_buffer (false),
+    pending_input_buffers(0),
+    pending_output_buffers(0),
+    m_out_bm_count(0),
+    m_inp_bm_count(0),
+    m_flags(0),
+    m_etb_count(0),
+    m_fbd_count(0),
+    m_event_port_settings_sent(false),
+    m_input_msg_id(OMX_COMPONENT_GENERATE_ETB),
+    psource_frame(NULL),
+    pdest_frame(NULL),
+    c2d_opened(false)
 {
-  DEBUG_PRINT_HIGH("\n omx_video(): Inside Constructor()");
-  memset(&m_cmp,0,sizeof(m_cmp));
-  memset(&m_pCallbacks,0,sizeof(m_pCallbacks));
-  async_thread_created = false;
-  msg_thread_created = false;
+    DEBUG_PRINT_HIGH("\n omx_video(): Inside Constructor()");
+    memset(&m_cmp,0,sizeof(m_cmp));
+    memset(&m_pCallbacks,0,sizeof(m_pCallbacks));
+    async_thread_created = false;
+    msg_thread_created = false;
 
-  pthread_mutex_init(&m_lock, NULL);
-  sem_init(&m_cmd_lock,0,0);
+    pthread_mutex_init(&m_lock, NULL);
+    sem_init(&m_cmd_lock,0,0);
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_venc::~omx_venc
+   FUNCTION
+   omx_venc::~omx_venc
 
-DESCRIPTION
-  Destructor
+   DESCRIPTION
+   Destructor
 
-PARAMETERS
-  None
+   PARAMETERS
+   None
 
-RETURN VALUE
-  None.
-========================================================================== */
+   RETURN VALUE
+   None.
+   ========================================================================== */
 omx_video::~omx_video()
 {
-  DEBUG_PRINT_HIGH("\n ~omx_video(): Inside Destructor()");
-  if(m_pipe_in) close(m_pipe_in);
-  if(m_pipe_out) close(m_pipe_out);
-  DEBUG_PRINT_HIGH("omx_video: Waiting on Msg Thread exit\n");
-  if (msg_thread_created)
-	  pthread_join(msg_thread_id,NULL);
-  DEBUG_PRINT_HIGH("omx_video: Waiting on Async Thread exit\n");
-  /*For V4L2 based drivers, pthread_join is done in device_close
-   * so no need to do it here*/
+    DEBUG_PRINT_HIGH("\n ~omx_video(): Inside Destructor()");
+    if (m_pipe_in) close(m_pipe_in);
+    if (m_pipe_out) close(m_pipe_out);
+    DEBUG_PRINT_HIGH("omx_video: Waiting on Msg Thread exit\n");
+    if (msg_thread_created)
+        pthread_join(msg_thread_id,NULL);
+    DEBUG_PRINT_HIGH("omx_video: Waiting on Async Thread exit\n");
+    /*For V4L2 based drivers, pthread_join is done in device_close
+     * so no need to do it here*/
 #ifndef _MSM8974_
-  if (async_thread_created)
-	  pthread_join(async_thread_id,NULL);
+    if (async_thread_created)
+        pthread_join(async_thread_id,NULL);
 #endif
-  pthread_mutex_destroy(&m_lock);
-  sem_destroy(&m_cmd_lock);
-  DEBUG_PRINT_HIGH("\n m_etb_count = %u, m_fbd_count = %u\n", m_etb_count,
-      m_fbd_count);
-  DEBUG_PRINT_HIGH("omx_video: Destructor exit\n");
-  DEBUG_PRINT_HIGH("Exiting 7x30 OMX Video Encoder ...\n");
+    pthread_mutex_destroy(&m_lock);
+    sem_destroy(&m_cmd_lock);
+    DEBUG_PRINT_HIGH("\n m_etb_count = %u, m_fbd_count = %u\n", m_etb_count,
+            m_fbd_count);
+    DEBUG_PRINT_HIGH("omx_video: Destructor exit\n");
+    DEBUG_PRINT_HIGH("Exiting 7x30 OMX Video Encoder ...\n");
 }
 
 /* ======================================================================
-FUNCTION
-  omx_venc::OMXCntrlProcessMsgCb
+   FUNCTION
+   omx_venc::OMXCntrlProcessMsgCb
 
-DESCRIPTION
-  IL Client callbacks are generated through this routine. The decoder
-  provides the thread context for this routine.
+   DESCRIPTION
+   IL Client callbacks are generated through this routine. The decoder
+   provides the thread context for this routine.
 
-PARAMETERS
-  ctxt -- Context information related to the self.
-  id   -- Event identifier. This could be any of the following:
-          1. Command completion event
-          2. Buffer done callback event
-          3. Frame done callback event
+   PARAMETERS
+   ctxt -- Context information related to the self.
+   id   -- Event identifier. This could be any of the following:
+   1. Command completion event
+   2. Buffer done callback event
+   3. Frame done callback event
 
-RETURN VALUE
-  None.
+   RETURN VALUE
+   None.
 
-========================================================================== */
+   ========================================================================== */
 void omx_video::process_event_cb(void *ctxt, unsigned char id)
 {
-  unsigned p1; // Parameter - 1
-  unsigned p2; // Parameter - 2
-  unsigned ident;
-  unsigned qsize=0; // qsize
-  omx_video *pThis = (omx_video *) ctxt;
+    unsigned p1; // Parameter - 1
+    unsigned p2; // Parameter - 2
+    unsigned ident;
+    unsigned qsize=0; // qsize
+    omx_video *pThis = (omx_video *) ctxt;
 
-  if(!pThis)
-  {
-    DEBUG_PRINT_ERROR("ERROR:ProcessMsgCb:Context is incorrect; bailing out\n");
-    return;
-  }
-
-  // Protect the shared queue data structure
-  do
-  {
-    /*Read the message id's from the queue*/
-
-    pthread_mutex_lock(&pThis->m_lock);
-    qsize = pThis->m_cmd_q.m_size;
-    if(qsize)
-    {
-      pThis->m_cmd_q.pop_entry(&p1,&p2,&ident);
+    if (!pThis) {
+        DEBUG_PRINT_ERROR("ERROR:ProcessMsgCb:Context is incorrect; bailing out\n");
+        return;
     }
 
-    if(qsize == 0)
-    {
-      qsize = pThis->m_ftb_q.m_size;
-      if(qsize)
-      {
-        pThis->m_ftb_q.pop_entry(&p1,&p2,&ident);
-      }
-    }
+    // Protect the shared queue data structure
+    do {
+        /*Read the message id's from the queue*/
 
-    if(qsize == 0)
-    {
-      qsize = pThis->m_etb_q.m_size;
-      if(qsize)
-      {
-        pThis->m_etb_q.pop_entry(&p1,&p2,&ident);
-      }
-    }
+        pthread_mutex_lock(&pThis->m_lock);
+        qsize = pThis->m_cmd_q.m_size;
+        if (qsize) {
+            pThis->m_cmd_q.pop_entry(&p1,&p2,&ident);
+        }
 
-    pthread_mutex_unlock(&pThis->m_lock);
-
-    /*process message if we have one*/
-    if(qsize > 0)
-    {
-      id = ident;
-      switch(id)
-      {
-      case OMX_COMPONENT_GENERATE_EVENT:
-        if(pThis->m_pCallbacks.EventHandler)
-        {
-          switch(p1)
-          {
-          case OMX_CommandStateSet:
-            pThis->m_state = (OMX_STATETYPE) p2;
-            DEBUG_PRINT_LOW("Process -> state set to %d \n", pThis->m_state);
-            pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                             OMX_EventCmdComplete, p1, p2, NULL);
-            break;
-
-          case OMX_EventError:
-            DEBUG_PRINT_ERROR("\nERROR: OMX_EventError: p2 = %d\n", p2);
-            if(p2 == OMX_ErrorHardware)
-            {
-              pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                               OMX_EventError,OMX_ErrorHardware,0,NULL);
+        if (qsize == 0) {
+            qsize = pThis->m_ftb_q.m_size;
+            if (qsize) {
+                pThis->m_ftb_q.pop_entry(&p1,&p2,&ident);
             }
-            else
-            {
-              pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                               OMX_EventError, p2, NULL, NULL );
+        }
 
+        if (qsize == 0) {
+            qsize = pThis->m_etb_q.m_size;
+            if (qsize) {
+                pThis->m_etb_q.pop_entry(&p1,&p2,&ident);
             }
-            break;
-
-          case OMX_CommandPortDisable:
-            DEBUG_PRINT_LOW("Process -> Port %d set to PORT_STATE_DISABLED" \
-                        "state \n", p2);
-            pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                             OMX_EventCmdComplete, p1, p2, NULL );
-            break;
-          case OMX_CommandPortEnable:
-            DEBUG_PRINT_LOW("Process ->Port %d set PORT_STATE_ENABLED state\n" \
-                        , p2);
-            pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,\
-                                             OMX_EventCmdComplete, p1, p2, NULL );
-            break;
-
-          default:
-            DEBUG_PRINT_LOW("\n process_event_cb forwarding EventCmdComplete %d \n", p1);
-            pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                             OMX_EventCmdComplete, p1, p2, NULL );
-            break;
-
-          }
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("ERROR: ProcessMsgCb NULL callbacks\n");
-        }
-        break;
-      case OMX_COMPONENT_GENERATE_ETB_OPQ:
-        DEBUG_PRINT_LOW("OMX_COMPONENT_GENERATE_ETB_OPQ\n");
-        if(pThis->empty_this_buffer_opaque((OMX_HANDLETYPE)p1,\
-                                          (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: ETBProxy() failed!\n");
-          pThis->omx_report_error ();
-        }
-        break;
-      case OMX_COMPONENT_GENERATE_ETB:
-        DEBUG_PRINT_LOW("OMX_COMPONENT_GENERATE_ETB\n");
-        if(pThis->empty_this_buffer_proxy((OMX_HANDLETYPE)p1,\
-                                          (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: ETBProxy() failed!\n");
-          pThis->omx_report_error ();
-        }
-        break;
-
-      case OMX_COMPONENT_GENERATE_FTB:
-        if( pThis->fill_this_buffer_proxy((OMX_HANDLETYPE)p1,\
-                                          (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: FTBProxy() failed!\n");
-          pThis->omx_report_error ();
-        }
-        break;
-
-      case OMX_COMPONENT_GENERATE_COMMAND:
-        pThis->send_command_proxy(&pThis->m_cmp,(OMX_COMMANDTYPE)p1,\
-                                  (OMX_U32)p2,(OMX_PTR)NULL);
-        break;
-
-      case OMX_COMPONENT_GENERATE_EBD:
-        if( pThis->empty_buffer_done(&pThis->m_cmp,
-                                     (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: empty_buffer_done() failed!\n");
-          pThis->omx_report_error ();
-        }
-        break;
-
-      case OMX_COMPONENT_GENERATE_FBD:
-        if( pThis->fill_buffer_done(&pThis->m_cmp,
-                                    (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone )
-        {
-          DEBUG_PRINT_ERROR("\nERROR: fill_buffer_done() failed!\n");
-          pThis->omx_report_error ();
-        }
-        break;
-
-      case OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH:
-
-        pThis->input_flush_progress = false;
-        DEBUG_PRINT_HIGH("\nm_etb_count at i/p flush = %u", m_etb_count);
-        m_etb_count = 0;
-        if(pThis->m_pCallbacks.EventHandler)
-        {
-          /*Check if we need generate event for Flush done*/
-          if(BITMASK_PRESENT(&pThis->m_flags,
-                             OMX_COMPONENT_INPUT_FLUSH_PENDING))
-          {
-            BITMASK_CLEAR (&pThis->m_flags,OMX_COMPONENT_INPUT_FLUSH_PENDING);
-            pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                             OMX_EventCmdComplete,OMX_CommandFlush,
-                                             PORT_INDEX_IN,NULL );
-          }
-          else if(BITMASK_PRESENT(&pThis->m_flags,
-                                  OMX_COMPONENT_IDLE_PENDING))
-          {
-            if(!pThis->output_flush_progress)
-            {
-              DEBUG_PRINT_LOW("\n dev_stop called after input flush complete\n");
-              if(dev_stop() != 0)
-              {
-                DEBUG_PRINT_ERROR("\nERROR: dev_stop() failed in i/p flush!\n");
-                pThis->omx_report_error ();
-              }
-            }
-          }
         }
 
-        break;
+        pthread_mutex_unlock(&pThis->m_lock);
 
-      case OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH:
+        /*process message if we have one*/
+        if (qsize > 0) {
+            id = ident;
+            switch (id) {
+                case OMX_COMPONENT_GENERATE_EVENT:
+                    if (pThis->m_pCallbacks.EventHandler) {
+                        switch (p1) {
+                            case OMX_CommandStateSet:
+                                pThis->m_state = (OMX_STATETYPE) p2;
+                                DEBUG_PRINT_LOW("Process -> state set to %d \n", pThis->m_state);
+                                pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                        OMX_EventCmdComplete, p1, p2, NULL);
+                                break;
 
-        pThis->output_flush_progress = false;
-        DEBUG_PRINT_HIGH("\nm_fbd_count at o/p flush = %u", m_fbd_count);
-        m_fbd_count = 0;
-        if(pThis->m_pCallbacks.EventHandler)
-        {
-          /*Check if we need generate event for Flush done*/
-          if(BITMASK_PRESENT(&pThis->m_flags,
-                             OMX_COMPONENT_OUTPUT_FLUSH_PENDING))
-          {
-            BITMASK_CLEAR (&pThis->m_flags,OMX_COMPONENT_OUTPUT_FLUSH_PENDING);
+                            case OMX_EventError:
+                                DEBUG_PRINT_ERROR("\nERROR: OMX_EventError: p2 = %d\n", p2);
+                                if (p2 == OMX_ErrorHardware) {
+                                    pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                            OMX_EventError,OMX_ErrorHardware,0,NULL);
+                                } else {
+                                    pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                            OMX_EventError, p2, NULL, NULL );
 
-            pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                             OMX_EventCmdComplete,OMX_CommandFlush,
-                                             PORT_INDEX_OUT,NULL );
-          }
-          else if(BITMASK_PRESENT(&pThis->m_flags ,OMX_COMPONENT_IDLE_PENDING))
-          {
-            DEBUG_PRINT_LOW("\n dev_stop called after Output flush complete\n");
-            if(!pThis->input_flush_progress)
-            {
-              if(dev_stop() != 0)
-              {
-                DEBUG_PRINT_ERROR("\nERROR: dev_stop() failed in o/p flush!\n");
-                pThis->omx_report_error ();
-              }
-            }
-          }
-        }
-        break;
+                                }
+                                break;
 
-      case OMX_COMPONENT_GENERATE_START_DONE:
-        DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_START_DONE msg");
+                            case OMX_CommandPortDisable:
+                                DEBUG_PRINT_LOW("Process -> Port %d set to PORT_STATE_DISABLED" \
+                                        "state \n", p2);
+                                pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                        OMX_EventCmdComplete, p1, p2, NULL );
+                                break;
+                            case OMX_CommandPortEnable:
+                                DEBUG_PRINT_LOW("Process ->Port %d set PORT_STATE_ENABLED state\n" \
+                                        , p2);
+                                pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,\
+                                        OMX_EventCmdComplete, p1, p2, NULL );
+                                break;
 
-        if(pThis->m_pCallbacks.EventHandler)
-        {
-          DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_START_DONE Success");
-          if(BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_EXECUTE_PENDING))
-          {
-            DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_START_DONE Move to \
-                             executing");
-            // Send the callback now
-            BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_EXECUTE_PENDING);
-            pThis->m_state = OMX_StateExecuting;
-            pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                             OMX_EventCmdComplete,OMX_CommandStateSet,
-                                             OMX_StateExecuting, NULL);
-          }
-          else if(BITMASK_PRESENT(&pThis->m_flags,
-                                  OMX_COMPONENT_PAUSE_PENDING))
-          {
-            if(dev_pause())
-            {
-              DEBUG_PRINT_ERROR("\nERROR: dev_pause() failed in Start Done!\n");
-              pThis->omx_report_error ();
-            }
-          }
-          else if (BITMASK_PRESENT(&pThis->m_flags,
-                                   OMX_COMPONENT_LOADED_START_PENDING))
-          {
-            if(dev_loaded_start_done())
-            {
-              DEBUG_PRINT_LOW("successful loaded Start Done!");
-            }
-            else
-            {
-              DEBUG_PRINT_ERROR("ERROR: failed in loaded Start Done!");
-              pThis->omx_report_error ();
-            }
-            BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_LOADED_START_PENDING);
-          }
-          else
-          {
-            DEBUG_PRINT_LOW("\nERROR: unknown flags=%x\n",pThis->m_flags);
-          }
-        }
-        else
-        {
-          DEBUG_PRINT_LOW("\n Event Handler callback is NULL");
-        }
-        break;
+                            default:
+                                DEBUG_PRINT_LOW("\n process_event_cb forwarding EventCmdComplete %d \n", p1);
+                                pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                        OMX_EventCmdComplete, p1, p2, NULL );
+                                break;
 
-      case OMX_COMPONENT_GENERATE_PAUSE_DONE:
-        DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_PAUSE_DONE msg");
-        if(pThis->m_pCallbacks.EventHandler)
-        {
-          if(BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_PAUSE_PENDING))
-          {
-            //Send the callback now
-            pThis->complete_pending_buffer_done_cbs();
-            DEBUG_PRINT_LOW("omx_video::process_event_cb() Sending PAUSE complete after all pending EBD/FBD\n");
-            BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_PAUSE_PENDING);
-            pThis->m_state = OMX_StatePause;
-            pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                             OMX_EventCmdComplete,OMX_CommandStateSet,
-                                             OMX_StatePause, NULL);
-          }
-        }
+                        }
+                    } else {
+                        DEBUG_PRINT_ERROR("ERROR: ProcessMsgCb NULL callbacks\n");
+                    }
+                    break;
+                case OMX_COMPONENT_GENERATE_ETB_OPQ:
+                    DEBUG_PRINT_LOW("OMX_COMPONENT_GENERATE_ETB_OPQ\n");
+                    if (pThis->empty_this_buffer_opaque((OMX_HANDLETYPE)p1,\
+                                (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone) {
+                        DEBUG_PRINT_ERROR("\nERROR: ETBProxy() failed!\n");
+                        pThis->omx_report_error ();
+                    }
+                    break;
+                case OMX_COMPONENT_GENERATE_ETB:
+                    DEBUG_PRINT_LOW("OMX_COMPONENT_GENERATE_ETB\n");
+                    if (pThis->empty_this_buffer_proxy((OMX_HANDLETYPE)p1,\
+                                (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone) {
+                        DEBUG_PRINT_ERROR("\nERROR: ETBProxy() failed!\n");
+                        pThis->omx_report_error ();
+                    }
+                    break;
 
-        break;
+                case OMX_COMPONENT_GENERATE_FTB:
+                    if ( pThis->fill_this_buffer_proxy((OMX_HANDLETYPE)p1,\
+                                (OMX_BUFFERHEADERTYPE *)p2) != OMX_ErrorNone) {
+                        DEBUG_PRINT_ERROR("\nERROR: FTBProxy() failed!\n");
+                        pThis->omx_report_error ();
+                    }
+                    break;
 
-      case OMX_COMPONENT_GENERATE_RESUME_DONE:
-        DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_RESUME_DONE msg");
-        if(pThis->m_pCallbacks.EventHandler)
-        {
-          if(BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_EXECUTE_PENDING))
-          {
-            // Send the callback now
-            BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_EXECUTE_PENDING);
-            pThis->m_state = OMX_StateExecuting;
-            pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,
-                                             OMX_EventCmdComplete,OMX_CommandStateSet,
-                                             OMX_StateExecuting,NULL);
-          }
-        }
+                case OMX_COMPONENT_GENERATE_COMMAND:
+                    pThis->send_command_proxy(&pThis->m_cmp,(OMX_COMMANDTYPE)p1,\
+                            (OMX_U32)p2,(OMX_PTR)NULL);
+                    break;
 
-        break;
+                case OMX_COMPONENT_GENERATE_EBD:
+                    if ( pThis->empty_buffer_done(&pThis->m_cmp,
+                                (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone) {
+                        DEBUG_PRINT_ERROR("\nERROR: empty_buffer_done() failed!\n");
+                        pThis->omx_report_error ();
+                    }
+                    break;
 
-      case OMX_COMPONENT_GENERATE_STOP_DONE:
-        DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_STOP_DONE msg");
-        if(pThis->m_pCallbacks.EventHandler)
-        {
-          pThis->complete_pending_buffer_done_cbs();
-          if(BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_IDLE_PENDING))
-          {
-            // Send the callback now
-            BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_IDLE_PENDING);
-            pThis->m_state = OMX_StateIdle;
-            pThis->m_pCallbacks.EventHandler(&pThis->m_cmp,pThis->m_app_data,
-                                             OMX_EventCmdComplete,OMX_CommandStateSet,
-                                             OMX_StateIdle,NULL);
-          }
-          else if (BITMASK_PRESENT(&pThis->m_flags,
-                                   OMX_COMPONENT_LOADED_STOP_PENDING))
-          {
-            if(dev_loaded_stop_done())
-            {
-              DEBUG_PRINT_LOW("successful loaded Stop Done!");
-            }
-            else
-            {
-              DEBUG_PRINT_ERROR("ERROR: failed in loaded Stop Done!");
-              pThis->omx_report_error ();
-            }
-            BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_LOADED_STOP_PENDING);
-          }
-          else
-          {
-            DEBUG_PRINT_LOW("\nERROR: unknown flags=%x\n",pThis->m_flags);
-          }
-        }
+                case OMX_COMPONENT_GENERATE_FBD:
+                    if ( pThis->fill_buffer_done(&pThis->m_cmp,
+                                (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone ) {
+                        DEBUG_PRINT_ERROR("\nERROR: fill_buffer_done() failed!\n");
+                        pThis->omx_report_error ();
+                    }
+                    break;
 
-        break;
+                case OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH:
 
-      case OMX_COMPONENT_GENERATE_HARDWARE_ERROR:
-        DEBUG_PRINT_ERROR("\nERROR: OMX_COMPONENT_GENERATE_HARDWARE_ERROR!\n");
-        pThis->omx_report_error ();
-        break;
+                    pThis->input_flush_progress = false;
+                    DEBUG_PRINT_HIGH("\nm_etb_count at i/p flush = %u", m_etb_count);
+                    m_etb_count = 0;
+                    if (pThis->m_pCallbacks.EventHandler) {
+                        /*Check if we need generate event for Flush done*/
+                        if (BITMASK_PRESENT(&pThis->m_flags,
+                                    OMX_COMPONENT_INPUT_FLUSH_PENDING)) {
+                            BITMASK_CLEAR (&pThis->m_flags,OMX_COMPONENT_INPUT_FLUSH_PENDING);
+                            pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                    OMX_EventCmdComplete,OMX_CommandFlush,
+                                    PORT_INDEX_IN,NULL );
+                        } else if (BITMASK_PRESENT(&pThis->m_flags,
+                                    OMX_COMPONENT_IDLE_PENDING)) {
+                            if (!pThis->output_flush_progress) {
+                                DEBUG_PRINT_LOW("\n dev_stop called after input flush complete\n");
+                                if (dev_stop() != 0) {
+                                    DEBUG_PRINT_ERROR("\nERROR: dev_stop() failed in i/p flush!\n");
+                                    pThis->omx_report_error ();
+                                }
+                            }
+                        }
+                    }
+
+                    break;
+
+                case OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH:
+
+                    pThis->output_flush_progress = false;
+                    DEBUG_PRINT_HIGH("\nm_fbd_count at o/p flush = %u", m_fbd_count);
+                    m_fbd_count = 0;
+                    if (pThis->m_pCallbacks.EventHandler) {
+                        /*Check if we need generate event for Flush done*/
+                        if (BITMASK_PRESENT(&pThis->m_flags,
+                                    OMX_COMPONENT_OUTPUT_FLUSH_PENDING)) {
+                            BITMASK_CLEAR (&pThis->m_flags,OMX_COMPONENT_OUTPUT_FLUSH_PENDING);
+
+                            pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                    OMX_EventCmdComplete,OMX_CommandFlush,
+                                    PORT_INDEX_OUT,NULL );
+                        } else if (BITMASK_PRESENT(&pThis->m_flags ,OMX_COMPONENT_IDLE_PENDING)) {
+                            DEBUG_PRINT_LOW("\n dev_stop called after Output flush complete\n");
+                            if (!pThis->input_flush_progress) {
+                                if (dev_stop() != 0) {
+                                    DEBUG_PRINT_ERROR("\nERROR: dev_stop() failed in o/p flush!\n");
+                                    pThis->omx_report_error ();
+                                }
+                            }
+                        }
+                    }
+                    break;
+
+                case OMX_COMPONENT_GENERATE_START_DONE:
+                    DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_START_DONE msg");
+
+                    if (pThis->m_pCallbacks.EventHandler) {
+                        DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_START_DONE Success");
+                        if (BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_EXECUTE_PENDING)) {
+                            DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_START_DONE Move to \
+                                    executing");
+                            // Send the callback now
+                            BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_EXECUTE_PENDING);
+                            pThis->m_state = OMX_StateExecuting;
+                            pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                    OMX_EventCmdComplete,OMX_CommandStateSet,
+                                    OMX_StateExecuting, NULL);
+                        } else if (BITMASK_PRESENT(&pThis->m_flags,
+                                    OMX_COMPONENT_PAUSE_PENDING)) {
+                            if (dev_pause()) {
+                                DEBUG_PRINT_ERROR("\nERROR: dev_pause() failed in Start Done!\n");
+                                pThis->omx_report_error ();
+                            }
+                        } else if (BITMASK_PRESENT(&pThis->m_flags,
+                                    OMX_COMPONENT_LOADED_START_PENDING)) {
+                            if (dev_loaded_start_done()) {
+                                DEBUG_PRINT_LOW("successful loaded Start Done!");
+                            } else {
+                                DEBUG_PRINT_ERROR("ERROR: failed in loaded Start Done!");
+                                pThis->omx_report_error ();
+                            }
+                            BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_LOADED_START_PENDING);
+                        } else {
+                            DEBUG_PRINT_LOW("\nERROR: unknown flags=%x\n",pThis->m_flags);
+                        }
+                    } else {
+                        DEBUG_PRINT_LOW("\n Event Handler callback is NULL");
+                    }
+                    break;
+
+                case OMX_COMPONENT_GENERATE_PAUSE_DONE:
+                    DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_PAUSE_DONE msg");
+                    if (pThis->m_pCallbacks.EventHandler) {
+                        if (BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_PAUSE_PENDING)) {
+                            //Send the callback now
+                            pThis->complete_pending_buffer_done_cbs();
+                            DEBUG_PRINT_LOW("omx_video::process_event_cb() Sending PAUSE complete after all pending EBD/FBD\n");
+                            BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_PAUSE_PENDING);
+                            pThis->m_state = OMX_StatePause;
+                            pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                    OMX_EventCmdComplete,OMX_CommandStateSet,
+                                    OMX_StatePause, NULL);
+                        }
+                    }
+
+                    break;
+
+                case OMX_COMPONENT_GENERATE_RESUME_DONE:
+                    DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_RESUME_DONE msg");
+                    if (pThis->m_pCallbacks.EventHandler) {
+                        if (BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_EXECUTE_PENDING)) {
+                            // Send the callback now
+                            BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_EXECUTE_PENDING);
+                            pThis->m_state = OMX_StateExecuting;
+                            pThis->m_pCallbacks.EventHandler(&pThis->m_cmp, pThis->m_app_data,
+                                    OMX_EventCmdComplete,OMX_CommandStateSet,
+                                    OMX_StateExecuting,NULL);
+                        }
+                    }
+
+                    break;
+
+                case OMX_COMPONENT_GENERATE_STOP_DONE:
+                    DEBUG_PRINT_LOW("\n OMX_COMPONENT_GENERATE_STOP_DONE msg");
+                    if (pThis->m_pCallbacks.EventHandler) {
+                        pThis->complete_pending_buffer_done_cbs();
+                        if (BITMASK_PRESENT(&pThis->m_flags,OMX_COMPONENT_IDLE_PENDING)) {
+                            // Send the callback now
+                            BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_IDLE_PENDING);
+                            pThis->m_state = OMX_StateIdle;
+                            pThis->m_pCallbacks.EventHandler(&pThis->m_cmp,pThis->m_app_data,
+                                    OMX_EventCmdComplete,OMX_CommandStateSet,
+                                    OMX_StateIdle,NULL);
+                        } else if (BITMASK_PRESENT(&pThis->m_flags,
+                                    OMX_COMPONENT_LOADED_STOP_PENDING)) {
+                            if (dev_loaded_stop_done()) {
+                                DEBUG_PRINT_LOW("successful loaded Stop Done!");
+                            } else {
+                                DEBUG_PRINT_ERROR("ERROR: failed in loaded Stop Done!");
+                                pThis->omx_report_error ();
+                            }
+                            BITMASK_CLEAR((&pThis->m_flags),OMX_COMPONENT_LOADED_STOP_PENDING);
+                        } else {
+                            DEBUG_PRINT_LOW("\nERROR: unknown flags=%x\n",pThis->m_flags);
+                        }
+                    }
+
+                    break;
+
+                case OMX_COMPONENT_GENERATE_HARDWARE_ERROR:
+                    DEBUG_PRINT_ERROR("\nERROR: OMX_COMPONENT_GENERATE_HARDWARE_ERROR!\n");
+                    pThis->omx_report_error ();
+                    break;
 #ifndef _MSM8974_
-      case OMX_COMPONENT_GENERATE_LTRUSE_FAILED:
-        DEBUG_PRINT_ERROR("ERROR: OMX_COMPONENT_GENERATE_LTRUSE_FAILED!");
-        if(pThis->m_pCallbacks.EventHandler)
-        {
-          DEBUG_PRINT_ERROR("Sending QOMX_ErrorLTRUseFailed, p2 = 0x%x", p2);
-          pThis->m_pCallbacks.EventHandler(
-                &pThis->m_cmp, pThis->m_app_data,
-                OMX_EventError, QOMX_ErrorLTRUseFailed, NULL, NULL);
-        }
-        break;
+                case OMX_COMPONENT_GENERATE_LTRUSE_FAILED:
+                    DEBUG_PRINT_ERROR("ERROR: OMX_COMPONENT_GENERATE_LTRUSE_FAILED!");
+                    if (pThis->m_pCallbacks.EventHandler) {
+                        DEBUG_PRINT_ERROR("Sending QOMX_ErrorLTRUseFailed, p2 = 0x%x", p2);
+                        pThis->m_pCallbacks.EventHandler(
+                                &pThis->m_cmp, pThis->m_app_data,
+                                OMX_EventError, QOMX_ErrorLTRUseFailed, NULL, NULL);
+                    }
+                    break;
 #endif
-      default:
-        DEBUG_PRINT_LOW("\n process_event_cb unknown msg id 0x%02x", id);
-        break;
-      }
-    }
+                default:
+                    DEBUG_PRINT_LOW("\n process_event_cb unknown msg id 0x%02x", id);
+                    break;
+            }
+        }
 
-    pthread_mutex_lock(&pThis->m_lock);
-    qsize = pThis->m_cmd_q.m_size + pThis->m_ftb_q.m_size +\
-            pThis->m_etb_q.m_size;
+        pthread_mutex_lock(&pThis->m_lock);
+        qsize = pThis->m_cmd_q.m_size + pThis->m_ftb_q.m_size +\
+                pThis->m_etb_q.m_size;
 
-    pthread_mutex_unlock(&pThis->m_lock);
+        pthread_mutex_unlock(&pThis->m_lock);
 
-  }
-  while(qsize>0);
-  DEBUG_PRINT_LOW("\n exited the while loop\n");
+    } while (qsize>0);
+    DEBUG_PRINT_LOW("\n exited the while loop\n");
 
 }
 
@@ -698,762 +624,645 @@
 
 
 /* ======================================================================
-FUNCTION
-  omx_venc::GetComponentVersion
+   FUNCTION
+   omx_venc::GetComponentVersion
 
-DESCRIPTION
-  Returns the component version.
+   DESCRIPTION
+   Returns the component version.
 
-PARAMETERS
-  TBD.
+   PARAMETERS
+   TBD.
 
-RETURN VALUE
-  OMX_ErrorNone.
+   RETURN VALUE
+   OMX_ErrorNone.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::get_component_version
 (
-OMX_IN OMX_HANDLETYPE hComp,
-OMX_OUT OMX_STRING componentName,
-OMX_OUT OMX_VERSIONTYPE* componentVersion,
-OMX_OUT OMX_VERSIONTYPE* specVersion,
-OMX_OUT OMX_UUIDTYPE* componentUUID
-)
+ OMX_IN OMX_HANDLETYPE hComp,
+ OMX_OUT OMX_STRING componentName,
+ OMX_OUT OMX_VERSIONTYPE* componentVersion,
+ OMX_OUT OMX_VERSIONTYPE* specVersion,
+ OMX_OUT OMX_UUIDTYPE* componentUUID
+ )
 {
-  if(m_state == OMX_StateInvalid)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Get Comp Version in Invalid State\n");
-    return OMX_ErrorInvalidState;
-  }
-  /* TBD -- Return the proper version */
-  if (specVersion)
-  {
-    specVersion->nVersion = OMX_SPEC_VERSION;
-  }
-  return OMX_ErrorNone;
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("ERROR: Get Comp Version in Invalid State\n");
+        return OMX_ErrorInvalidState;
+    }
+    /* TBD -- Return the proper version */
+    if (specVersion) {
+        specVersion->nVersion = OMX_SPEC_VERSION;
+    }
+    return OMX_ErrorNone;
 }
 /* ======================================================================
-FUNCTION
-  omx_venc::SendCommand
+   FUNCTION
+   omx_venc::SendCommand
 
-DESCRIPTION
-  Returns zero if all the buffers released..
+   DESCRIPTION
+   Returns zero if all the buffers released..
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::send_command(OMX_IN OMX_HANDLETYPE hComp,
-                                       OMX_IN OMX_COMMANDTYPE cmd,
-                                       OMX_IN OMX_U32 param1,
-                                       OMX_IN OMX_PTR cmdData
-                                      )
+        OMX_IN OMX_COMMANDTYPE cmd,
+        OMX_IN OMX_U32 param1,
+        OMX_IN OMX_PTR cmdData
+        )
 {
-  if(m_state == OMX_StateInvalid)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Send Command in Invalid State\n");
-    return OMX_ErrorInvalidState;
-  }
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("ERROR: Send Command in Invalid State\n");
+        return OMX_ErrorInvalidState;
+    }
 
-  if(cmd == OMX_CommandFlush || cmd == OMX_CommandPortDisable || cmd == OMX_CommandPortEnable)
-  {
-    if((param1 != PORT_INDEX_IN) && (param1 != PORT_INDEX_OUT) && (param1 != PORT_INDEX_BOTH))
-    {
-      DEBUG_PRINT_ERROR("ERROR: omx_video::send_command-->bad port index\n");
-      return OMX_ErrorBadPortIndex;
+    if (cmd == OMX_CommandFlush || cmd == OMX_CommandPortDisable || cmd == OMX_CommandPortEnable) {
+        if ((param1 != PORT_INDEX_IN) && (param1 != PORT_INDEX_OUT) && (param1 != PORT_INDEX_BOTH)) {
+            DEBUG_PRINT_ERROR("ERROR: omx_video::send_command-->bad port index\n");
+            return OMX_ErrorBadPortIndex;
+        }
     }
-  }
-  if(cmd == OMX_CommandMarkBuffer)
-  {
-    if(param1 != PORT_INDEX_IN)
-    {
-      DEBUG_PRINT_ERROR("ERROR: omx_video::send_command-->bad port index \n");
-      return OMX_ErrorBadPortIndex;
+    if (cmd == OMX_CommandMarkBuffer) {
+        if (param1 != PORT_INDEX_IN) {
+            DEBUG_PRINT_ERROR("ERROR: omx_video::send_command-->bad port index \n");
+            return OMX_ErrorBadPortIndex;
+        }
+        if (!cmdData) {
+            DEBUG_PRINT_ERROR("ERROR: omx_video::send_command-->param is null");
+            return OMX_ErrorBadParameter;
+        }
     }
-    if(!cmdData)
-    {
-      DEBUG_PRINT_ERROR("ERROR: omx_video::send_command-->param is null");
-      return OMX_ErrorBadParameter;
-    }
-  }
 
-  post_event((unsigned)cmd,(unsigned)param1,OMX_COMPONENT_GENERATE_COMMAND);
-  sem_wait(&m_cmd_lock);
-  return OMX_ErrorNone;
+    post_event((unsigned)cmd,(unsigned)param1,OMX_COMPONENT_GENERATE_COMMAND);
+    sem_wait(&m_cmd_lock);
+    return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_venc::SendCommand
+   FUNCTION
+   omx_venc::SendCommand
 
-DESCRIPTION
-  Returns zero if all the buffers released..
+   DESCRIPTION
+   Returns zero if all the buffers released..
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::send_command_proxy(OMX_IN OMX_HANDLETYPE hComp,
-                                             OMX_IN OMX_COMMANDTYPE cmd,
-                                             OMX_IN OMX_U32 param1,
-                                             OMX_IN OMX_PTR cmdData
-                                            )
+        OMX_IN OMX_COMMANDTYPE cmd,
+        OMX_IN OMX_U32 param1,
+        OMX_IN OMX_PTR cmdData
+        )
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  OMX_STATETYPE eState = (OMX_STATETYPE) param1;
-  int bFlag = 1;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_STATETYPE eState = (OMX_STATETYPE) param1;
+    int bFlag = 1;
 
-  if(cmd == OMX_CommandStateSet)
-  {
-    /***************************/
-    /* Current State is Loaded */
-    /***************************/
-    if(m_state == OMX_StateLoaded)
-    {
-      if(eState == OMX_StateIdle)
-      {
-        //if all buffers are allocated or all ports disabled
-        if(allocate_done() ||
-           ( m_sInPortDef.bEnabled == OMX_FALSE && m_sOutPortDef.bEnabled == OMX_FALSE))
-        {
-          DEBUG_PRINT_LOW("OMXCORE-SM: Loaded-->Idle\n");
+    if (cmd == OMX_CommandStateSet) {
+        /***************************/
+        /* Current State is Loaded */
+        /***************************/
+        if (m_state == OMX_StateLoaded) {
+            if (eState == OMX_StateIdle) {
+                //if all buffers are allocated or all ports disabled
+                if (allocate_done() ||
+                        ( m_sInPortDef.bEnabled == OMX_FALSE && m_sOutPortDef.bEnabled == OMX_FALSE)) {
+                    DEBUG_PRINT_LOW("OMXCORE-SM: Loaded-->Idle\n");
+                } else {
+                    DEBUG_PRINT_LOW("OMXCORE-SM: Loaded-->Idle-Pending\n");
+                    BITMASK_SET(&m_flags, OMX_COMPONENT_IDLE_PENDING);
+                    // Skip the event notification
+                    bFlag = 0;
+                }
+            }
+            /* Requesting transition from Loaded to Loaded */
+            else if (eState == OMX_StateLoaded) {
+                DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Loaded-->Loaded\n");
+                post_event(OMX_EventError,OMX_ErrorSameState,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorSameState;
+            }
+            /* Requesting transition from Loaded to WaitForResources */
+            else if (eState == OMX_StateWaitForResources) {
+                /* Since error is None , we will post an event
+                   at the end of this function definition */
+                DEBUG_PRINT_LOW("OMXCORE-SM: Loaded-->WaitForResources\n");
+            }
+            /* Requesting transition from Loaded to Executing */
+            else if (eState == OMX_StateExecuting) {
+                DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Loaded-->Executing\n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Loaded to Pause */
+            else if (eState == OMX_StatePause) {
+                DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Loaded-->Pause\n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Loaded to Invalid */
+            else if (eState == OMX_StateInvalid) {
+                DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Loaded-->Invalid\n");
+                post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorInvalidState;
+            } else {
+                DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Loaded-->%d Not Handled\n",\
+                        eState);
+                eRet = OMX_ErrorBadParameter;
+            }
         }
-        else
-        {
-          DEBUG_PRINT_LOW("OMXCORE-SM: Loaded-->Idle-Pending\n");
-          BITMASK_SET(&m_flags, OMX_COMPONENT_IDLE_PENDING);
-          // Skip the event notification
-          bFlag = 0;
+
+        /***************************/
+        /* Current State is IDLE */
+        /***************************/
+        else if (m_state == OMX_StateIdle) {
+            if (eState == OMX_StateLoaded) {
+                if (release_done()) {
+                    /*
+                       Since error is None , we will post an event at the end
+                       of this function definition
+                     */
+                    DEBUG_PRINT_LOW("OMXCORE-SM: Idle-->Loaded\n");
+                    if (dev_stop() != 0) {
+                        DEBUG_PRINT_ERROR("\nERROR: dev_stop() failed at Idle --> Loaded");
+                        eRet = OMX_ErrorHardware;
+                    }
+                } else {
+                    DEBUG_PRINT_LOW("OMXCORE-SM: Idle-->Loaded-Pending\n");
+                    BITMASK_SET(&m_flags, OMX_COMPONENT_LOADING_PENDING);
+                    // Skip the event notification
+                    bFlag = 0;
+                }
+            }
+            /* Requesting transition from Idle to Executing */
+            else if (eState == OMX_StateExecuting) {
+                if ( dev_start() ) {
+                    DEBUG_PRINT_ERROR("\nERROR: dev_start() failed in SCP on Idle --> Exe\n");
+                    omx_report_error ();
+                    eRet = OMX_ErrorHardware;
+                } else {
+                    BITMASK_SET(&m_flags,OMX_COMPONENT_EXECUTE_PENDING);
+                    DEBUG_PRINT_LOW("OMXCORE-SM: Idle-->Executing\n");
+                    bFlag = 0;
+                }
+
+                dev_start_done();
+            }
+            /* Requesting transition from Idle to Idle */
+            else if (eState == OMX_StateIdle) {
+                DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Idle-->Idle\n");
+                post_event(OMX_EventError,OMX_ErrorSameState,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorSameState;
+            }
+            /* Requesting transition from Idle to WaitForResources */
+            else if (eState == OMX_StateWaitForResources) {
+                DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Idle-->WaitForResources\n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Idle to Pause */
+            else if (eState == OMX_StatePause) {
+                /*To pause the Video core we need to start the driver*/
+                if ( dev_start() ) {
+                    DEBUG_PRINT_ERROR("\nERROR: dev_start() failed in SCP on Idle --> Pause\n");
+                    omx_report_error ();
+                    eRet = OMX_ErrorHardware;
+                } else {
+                    BITMASK_SET(&m_flags,OMX_COMPONENT_PAUSE_PENDING);
+                    DEBUG_PRINT_LOW("OMXCORE-SM: Idle-->Pause\n");
+                    bFlag = 0;
+                }
+            }
+            /* Requesting transition from Idle to Invalid */
+            else if (eState == OMX_StateInvalid) {
+                DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Idle-->Invalid\n");
+                post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorInvalidState;
+            } else {
+                DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Idle --> %d Not Handled\n",eState);
+                eRet = OMX_ErrorBadParameter;
+            }
         }
-      }
-      /* Requesting transition from Loaded to Loaded */
-      else if(eState == OMX_StateLoaded)
-      {
-        DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Loaded-->Loaded\n");
-        post_event(OMX_EventError,OMX_ErrorSameState,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorSameState;
-      }
-      /* Requesting transition from Loaded to WaitForResources */
-      else if(eState == OMX_StateWaitForResources)
-      {
-        /* Since error is None , we will post an event
-           at the end of this function definition */
-        DEBUG_PRINT_LOW("OMXCORE-SM: Loaded-->WaitForResources\n");
-      }
-      /* Requesting transition from Loaded to Executing */
-      else if(eState == OMX_StateExecuting)
-      {
-        DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Loaded-->Executing\n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from Loaded to Pause */
-      else if(eState == OMX_StatePause)
-      {
-        DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Loaded-->Pause\n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from Loaded to Invalid */
-      else if(eState == OMX_StateInvalid)
-      {
-        DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Loaded-->Invalid\n");
-        post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorInvalidState;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Loaded-->%d Not Handled\n",\
-                          eState);
-        eRet = OMX_ErrorBadParameter;
-      }
+
+        /******************************/
+        /* Current State is Executing */
+        /******************************/
+        else if (m_state == OMX_StateExecuting) {
+            /* Requesting transition from Executing to Idle */
+            if (eState == OMX_StateIdle) {
+                /* Since error is None , we will post an event
+                   at the end of this function definition
+                 */
+                DEBUG_PRINT_LOW("\n OMXCORE-SM: Executing --> Idle \n");
+                //here this should be Pause-Idle pending and should be cleared when flush is complete and change the state to Idle
+                BITMASK_SET(&m_flags,OMX_COMPONENT_IDLE_PENDING);
+                execute_omx_flush(OMX_ALL);
+                bFlag = 0;
+            }
+            /* Requesting transition from Executing to Paused */
+            else if (eState == OMX_StatePause) {
+
+                if (dev_pause()) {
+                    DEBUG_PRINT_ERROR("\nERROR: dev_pause() failed in SCP on Exe --> Pause\n");
+                    post_event(OMX_EventError,OMX_ErrorHardware,\
+                            OMX_COMPONENT_GENERATE_EVENT);
+                    eRet = OMX_ErrorHardware;
+                } else {
+                    BITMASK_SET(&m_flags,OMX_COMPONENT_PAUSE_PENDING);
+                    DEBUG_PRINT_LOW("OMXCORE-SM: Executing-->Pause\n");
+                    bFlag = 0;
+                }
+            }
+            /* Requesting transition from Executing to Loaded */
+            else if (eState == OMX_StateLoaded) {
+                DEBUG_PRINT_ERROR("\nERROR: OMXCORE-SM: Executing --> Loaded \n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Executing to WaitForResources */
+            else if (eState == OMX_StateWaitForResources) {
+                DEBUG_PRINT_ERROR("\nERROR: OMXCORE-SM: Executing --> WaitForResources \n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Executing to Executing */
+            else if (eState == OMX_StateExecuting) {
+                DEBUG_PRINT_ERROR("\nERROR: OMXCORE-SM: Executing --> Executing \n");
+                post_event(OMX_EventError,OMX_ErrorSameState,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorSameState;
+            }
+            /* Requesting transition from Executing to Invalid */
+            else if (eState == OMX_StateInvalid) {
+                DEBUG_PRINT_ERROR("\nERROR: OMXCORE-SM: Executing --> Invalid \n");
+                post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorInvalidState;
+            } else {
+                DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Executing --> %d Not Handled\n",eState);
+                eRet = OMX_ErrorBadParameter;
+            }
+        }
+        /***************************/
+        /* Current State is Pause  */
+        /***************************/
+        else if (m_state == OMX_StatePause) {
+            /* Requesting transition from Pause to Executing */
+            if (eState == OMX_StateExecuting) {
+                DEBUG_PRINT_LOW("\n Pause --> Executing \n");
+                if ( dev_resume() ) {
+                    post_event(OMX_EventError,OMX_ErrorHardware,\
+                            OMX_COMPONENT_GENERATE_EVENT);
+                    eRet = OMX_ErrorHardware;
+                } else {
+                    BITMASK_SET(&m_flags,OMX_COMPONENT_EXECUTE_PENDING);
+                    DEBUG_PRINT_LOW("OMXCORE-SM: Pause-->Executing\n");
+                    post_event (NULL, NULL, OMX_COMPONENT_GENERATE_RESUME_DONE);
+                    bFlag = 0;
+                }
+            }
+            /* Requesting transition from Pause to Idle */
+            else if (eState == OMX_StateIdle) {
+                /* Since error is None , we will post an event
+                   at the end of this function definition */
+                DEBUG_PRINT_LOW("\n Pause --> Idle \n");
+                BITMASK_SET(&m_flags,OMX_COMPONENT_IDLE_PENDING);
+                execute_omx_flush(OMX_ALL);
+                bFlag = 0;
+            }
+            /* Requesting transition from Pause to loaded */
+            else if (eState == OMX_StateLoaded) {
+                DEBUG_PRINT_ERROR("\nERROR: Pause --> loaded \n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Pause to WaitForResources */
+            else if (eState == OMX_StateWaitForResources) {
+                DEBUG_PRINT_ERROR("\nERROR: Pause --> WaitForResources \n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from Pause to Pause */
+            else if (eState == OMX_StatePause) {
+                DEBUG_PRINT_ERROR("\nERROR: Pause --> Pause \n");
+                post_event(OMX_EventError,OMX_ErrorSameState,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorSameState;
+            }
+            /* Requesting transition from Pause to Invalid */
+            else if (eState == OMX_StateInvalid) {
+                DEBUG_PRINT_ERROR("\nERROR: Pause --> Invalid \n");
+                post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorInvalidState;
+            } else {
+                DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Paused --> %d Not Handled\n",eState);
+                eRet = OMX_ErrorBadParameter;
+            }
+        }
+        /***************************/
+        /* Current State is WaitForResources  */
+        /***************************/
+        else if (m_state == OMX_StateWaitForResources) {
+            /* Requesting transition from WaitForResources to Loaded */
+            if (eState == OMX_StateLoaded) {
+                /* Since error is None , we will post an event
+                   at the end of this function definition */
+                DEBUG_PRINT_LOW("OMXCORE-SM: WaitForResources-->Loaded\n");
+            }
+            /* Requesting transition from WaitForResources to WaitForResources */
+            else if (eState == OMX_StateWaitForResources) {
+                DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: WaitForResources-->WaitForResources\n");
+                post_event(OMX_EventError,OMX_ErrorSameState,
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorSameState;
+            }
+            /* Requesting transition from WaitForResources to Executing */
+            else if (eState == OMX_StateExecuting) {
+                DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: WaitForResources-->Executing\n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from WaitForResources to Pause */
+            else if (eState == OMX_StatePause) {
+                DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: WaitForResources-->Pause\n");
+                post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorIncorrectStateTransition;
+            }
+            /* Requesting transition from WaitForResources to Invalid */
+            else if (eState == OMX_StateInvalid) {
+                DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: WaitForResources-->Invalid\n");
+                post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
+                eRet = OMX_ErrorInvalidState;
+            }
+            /* Requesting transition from WaitForResources to Loaded -
+               is NOT tested by Khronos TS */
+
+        } else {
+            DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: %d --> %d(Not Handled)\n",m_state,eState);
+            eRet = OMX_ErrorBadParameter;
+        }
     }
-
-    /***************************/
-    /* Current State is IDLE */
-    /***************************/
-    else if(m_state == OMX_StateIdle)
-    {
-      if(eState == OMX_StateLoaded)
-      {
-        if(release_done())
-        {
-          /*
-             Since error is None , we will post an event at the end
-             of this function definition
-          */
-          DEBUG_PRINT_LOW("OMXCORE-SM: Idle-->Loaded\n");
-          if(dev_stop() != 0)
-          {
-            DEBUG_PRINT_ERROR("\nERROR: dev_stop() failed at Idle --> Loaded");
-            eRet = OMX_ErrorHardware;
-          }
+    /********************************/
+    /* Current State is Invalid */
+    /*******************************/
+    else if (m_state == OMX_StateInvalid) {
+        /* State Transition from Inavlid to any state */
+        if (eState == (OMX_StateLoaded || OMX_StateWaitForResources
+                    || OMX_StateIdle || OMX_StateExecuting
+                    || OMX_StatePause || OMX_StateInvalid)) {
+            DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Invalid -->Loaded\n");
+            post_event(OMX_EventError,OMX_ErrorInvalidState,\
+                    OMX_COMPONENT_GENERATE_EVENT);
+            eRet = OMX_ErrorInvalidState;
         }
-        else
-        {
-          DEBUG_PRINT_LOW("OMXCORE-SM: Idle-->Loaded-Pending\n");
-          BITMASK_SET(&m_flags, OMX_COMPONENT_LOADING_PENDING);
-          // Skip the event notification
-          bFlag = 0;
+    } else if (cmd == OMX_CommandFlush) {
+        if (0 == param1 || OMX_ALL == param1) {
+            BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_FLUSH_PENDING);
         }
-      }
-      /* Requesting transition from Idle to Executing */
-      else if(eState == OMX_StateExecuting)
-      {
-        if( dev_start() )
-        {
-          DEBUG_PRINT_ERROR("\nERROR: dev_start() failed in SCP on Idle --> Exe\n");
-          omx_report_error ();
-          eRet = OMX_ErrorHardware;
-        }
-        else
-        {
-          BITMASK_SET(&m_flags,OMX_COMPONENT_EXECUTE_PENDING);
-          DEBUG_PRINT_LOW("OMXCORE-SM: Idle-->Executing\n");
-          bFlag = 0;
+        if (1 == param1 || OMX_ALL == param1) {
+            //generate output flush event only.
+            BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_FLUSH_PENDING);
         }
 
-	dev_start_done();
-      }
-      /* Requesting transition from Idle to Idle */
-      else if(eState == OMX_StateIdle)
-      {
-        DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Idle-->Idle\n");
-        post_event(OMX_EventError,OMX_ErrorSameState,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorSameState;
-      }
-      /* Requesting transition from Idle to WaitForResources */
-      else if(eState == OMX_StateWaitForResources)
-      {
-        DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Idle-->WaitForResources\n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from Idle to Pause */
-      else if(eState == OMX_StatePause)
-      {
-        /*To pause the Video core we need to start the driver*/
-        if( dev_start() )
-        {
-          DEBUG_PRINT_ERROR("\nERROR: dev_start() failed in SCP on Idle --> Pause\n");
-          omx_report_error ();
-          eRet = OMX_ErrorHardware;
-        }
-        else
-        {
-          BITMASK_SET(&m_flags,OMX_COMPONENT_PAUSE_PENDING);
-          DEBUG_PRINT_LOW("OMXCORE-SM: Idle-->Pause\n");
-          bFlag = 0;
-        }
-      }
-      /* Requesting transition from Idle to Invalid */
-      else if(eState == OMX_StateInvalid)
-      {
-        DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Idle-->Invalid\n");
-        post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorInvalidState;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Idle --> %d Not Handled\n",eState);
-        eRet = OMX_ErrorBadParameter;
-      }
-    }
-
-    /******************************/
-    /* Current State is Executing */
-    /******************************/
-    else if(m_state == OMX_StateExecuting)
-    {
-      /* Requesting transition from Executing to Idle */
-      if(eState == OMX_StateIdle)
-      {
-        /* Since error is None , we will post an event
-        at the end of this function definition
-        */
-        DEBUG_PRINT_LOW("\n OMXCORE-SM: Executing --> Idle \n");
-        //here this should be Pause-Idle pending and should be cleared when flush is complete and change the state to Idle
-        BITMASK_SET(&m_flags,OMX_COMPONENT_IDLE_PENDING);
-        execute_omx_flush(OMX_ALL);
+        execute_omx_flush(param1);
         bFlag = 0;
-      }
-      /* Requesting transition from Executing to Paused */
-      else if(eState == OMX_StatePause)
-      {
+    } else if ( cmd == OMX_CommandPortEnable) {
+        if (param1 == PORT_INDEX_IN || param1 == OMX_ALL) {
+            m_sInPortDef.bEnabled = OMX_TRUE;
 
-        if(dev_pause())
-        {
-          DEBUG_PRINT_ERROR("\nERROR: dev_pause() failed in SCP on Exe --> Pause\n");
-          post_event(OMX_EventError,OMX_ErrorHardware,\
-                     OMX_COMPONENT_GENERATE_EVENT);
-          eRet = OMX_ErrorHardware;
+            if ( (m_state == OMX_StateLoaded &&
+                        !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
+                    || allocate_input_done()) {
+                post_event(OMX_CommandPortEnable,PORT_INDEX_IN,
+                        OMX_COMPONENT_GENERATE_EVENT);
+            } else {
+                DEBUG_PRINT_LOW("OMXCORE-SM: Disabled-->Enabled Pending\n");
+                BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_ENABLE_PENDING);
+                // Skip the event notification
+                bFlag = 0;
+            }
         }
-        else
-        {
-          BITMASK_SET(&m_flags,OMX_COMPONENT_PAUSE_PENDING);
-          DEBUG_PRINT_LOW("OMXCORE-SM: Executing-->Pause\n");
-          bFlag = 0;
+        if (param1 == PORT_INDEX_OUT || param1 == OMX_ALL) {
+            m_sOutPortDef.bEnabled = OMX_TRUE;
+
+            if ( (m_state == OMX_StateLoaded &&
+                        !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
+                    || (allocate_output_done())) {
+                post_event(OMX_CommandPortEnable,PORT_INDEX_OUT,
+                        OMX_COMPONENT_GENERATE_EVENT);
+
+            } else {
+                DEBUG_PRINT_LOW("OMXCORE-SM: Disabled-->Enabled Pending\n");
+                BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
+                // Skip the event notification
+                bFlag = 0;
+            }
         }
-      }
-      /* Requesting transition from Executing to Loaded */
-      else if(eState == OMX_StateLoaded)
-      {
-        DEBUG_PRINT_ERROR("\nERROR: OMXCORE-SM: Executing --> Loaded \n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from Executing to WaitForResources */
-      else if(eState == OMX_StateWaitForResources)
-      {
-        DEBUG_PRINT_ERROR("\nERROR: OMXCORE-SM: Executing --> WaitForResources \n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from Executing to Executing */
-      else if(eState == OMX_StateExecuting)
-      {
-        DEBUG_PRINT_ERROR("\nERROR: OMXCORE-SM: Executing --> Executing \n");
-        post_event(OMX_EventError,OMX_ErrorSameState,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorSameState;
-      }
-      /* Requesting transition from Executing to Invalid */
-      else if(eState == OMX_StateInvalid)
-      {
-        DEBUG_PRINT_ERROR("\nERROR: OMXCORE-SM: Executing --> Invalid \n");
-        post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorInvalidState;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Executing --> %d Not Handled\n",eState);
-        eRet = OMX_ErrorBadParameter;
-      }
-    }
-    /***************************/
-    /* Current State is Pause  */
-    /***************************/
-    else if(m_state == OMX_StatePause)
-    {
-      /* Requesting transition from Pause to Executing */
-      if(eState == OMX_StateExecuting)
-      {
-        DEBUG_PRINT_LOW("\n Pause --> Executing \n");
-        if( dev_resume() )
-        {
-          post_event(OMX_EventError,OMX_ErrorHardware,\
-                     OMX_COMPONENT_GENERATE_EVENT);
-          eRet = OMX_ErrorHardware;
+    } else if (cmd == OMX_CommandPortDisable) {
+        if (param1 == PORT_INDEX_IN || param1 == OMX_ALL) {
+            m_sInPortDef.bEnabled = OMX_FALSE;
+            if ((m_state == OMX_StateLoaded || m_state == OMX_StateIdle)
+                    && release_input_done()) {
+                post_event(OMX_CommandPortDisable,PORT_INDEX_IN,
+                        OMX_COMPONENT_GENERATE_EVENT);
+            } else {
+                BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_DISABLE_PENDING);
+                if (m_state == OMX_StatePause ||m_state == OMX_StateExecuting) {
+                    execute_omx_flush(PORT_INDEX_IN);
+                }
+
+                // Skip the event notification
+                bFlag = 0;
+            }
         }
-        else
-        {
-          BITMASK_SET(&m_flags,OMX_COMPONENT_EXECUTE_PENDING);
-          DEBUG_PRINT_LOW("OMXCORE-SM: Pause-->Executing\n");
-          post_event (NULL, NULL, OMX_COMPONENT_GENERATE_RESUME_DONE);
-          bFlag = 0;
+        if (param1 == PORT_INDEX_OUT || param1 == OMX_ALL) {
+            m_sOutPortDef.bEnabled = OMX_FALSE;
+
+            if ((m_state == OMX_StateLoaded || m_state == OMX_StateIdle)
+                    && release_output_done()) {
+                post_event(OMX_CommandPortDisable,PORT_INDEX_OUT,\
+                        OMX_COMPONENT_GENERATE_EVENT);
+            } else {
+                BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_DISABLE_PENDING);
+                if (m_state == OMX_StatePause ||m_state == OMX_StateExecuting) {
+                    execute_omx_flush(PORT_INDEX_OUT);
+                }
+                // Skip the event notification
+                bFlag = 0;
+
+            }
         }
-      }
-      /* Requesting transition from Pause to Idle */
-      else if(eState == OMX_StateIdle)
-      {
-        /* Since error is None , we will post an event
-        at the end of this function definition */
-        DEBUG_PRINT_LOW("\n Pause --> Idle \n");
-        BITMASK_SET(&m_flags,OMX_COMPONENT_IDLE_PENDING);
-        execute_omx_flush(OMX_ALL);
-        bFlag = 0;
-      }
-      /* Requesting transition from Pause to loaded */
-      else if(eState == OMX_StateLoaded)
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Pause --> loaded \n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from Pause to WaitForResources */
-      else if(eState == OMX_StateWaitForResources)
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Pause --> WaitForResources \n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from Pause to Pause */
-      else if(eState == OMX_StatePause)
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Pause --> Pause \n");
-        post_event(OMX_EventError,OMX_ErrorSameState,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorSameState;
-      }
-      /* Requesting transition from Pause to Invalid */
-      else if(eState == OMX_StateInvalid)
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Pause --> Invalid \n");
-        post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorInvalidState;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Paused --> %d Not Handled\n",eState);
-        eRet = OMX_ErrorBadParameter;
-      }
+    } else {
+        DEBUG_PRINT_ERROR("ERROR: Invalid Command received other than StateSet (%d)\n",cmd);
+        eRet = OMX_ErrorNotImplemented;
     }
-    /***************************/
-    /* Current State is WaitForResources  */
-    /***************************/
-    else if(m_state == OMX_StateWaitForResources)
-    {
-      /* Requesting transition from WaitForResources to Loaded */
-      if(eState == OMX_StateLoaded)
-      {
-        /* Since error is None , we will post an event
-        at the end of this function definition */
-        DEBUG_PRINT_LOW("OMXCORE-SM: WaitForResources-->Loaded\n");
-      }
-      /* Requesting transition from WaitForResources to WaitForResources */
-      else if(eState == OMX_StateWaitForResources)
-      {
-        DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: WaitForResources-->WaitForResources\n");
-        post_event(OMX_EventError,OMX_ErrorSameState,
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorSameState;
-      }
-      /* Requesting transition from WaitForResources to Executing */
-      else if(eState == OMX_StateExecuting)
-      {
-        DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: WaitForResources-->Executing\n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from WaitForResources to Pause */
-      else if(eState == OMX_StatePause)
-      {
-        DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: WaitForResources-->Pause\n");
-        post_event(OMX_EventError,OMX_ErrorIncorrectStateTransition,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorIncorrectStateTransition;
-      }
-      /* Requesting transition from WaitForResources to Invalid */
-      else if(eState == OMX_StateInvalid)
-      {
-        DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: WaitForResources-->Invalid\n");
-        post_event(OMX_EventError,eState,OMX_COMPONENT_GENERATE_EVENT);
-        eRet = OMX_ErrorInvalidState;
-      }
-      /* Requesting transition from WaitForResources to Loaded -
-      is NOT tested by Khronos TS */
-
+    if (eRet == OMX_ErrorNone && bFlag) {
+        post_event(cmd,eState,OMX_COMPONENT_GENERATE_EVENT);
     }
-    else
-    {
-      DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: %d --> %d(Not Handled)\n",m_state,eState);
-      eRet = OMX_ErrorBadParameter;
-    }
-  }
-  /********************************/
-  /* Current State is Invalid */
-  /*******************************/
-  else if(m_state == OMX_StateInvalid)
-  {
-    /* State Transition from Inavlid to any state */
-    if(eState == (OMX_StateLoaded || OMX_StateWaitForResources
-                  || OMX_StateIdle || OMX_StateExecuting
-                  || OMX_StatePause || OMX_StateInvalid))
-    {
-      DEBUG_PRINT_ERROR("ERROR: OMXCORE-SM: Invalid -->Loaded\n");
-      post_event(OMX_EventError,OMX_ErrorInvalidState,\
-                 OMX_COMPONENT_GENERATE_EVENT);
-      eRet = OMX_ErrorInvalidState;
-    }
-  }
-  else if(cmd == OMX_CommandFlush)
-  {
-    if(0 == param1 || OMX_ALL == param1)
-    {
-      BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_FLUSH_PENDING);
-    }
-    if(1 == param1 || OMX_ALL == param1)
-    {
-      //generate output flush event only.
-      BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_FLUSH_PENDING);
-    }
-
-    execute_omx_flush(param1);
-    bFlag = 0;
-  }
-  else if( cmd == OMX_CommandPortEnable)
-  {
-    if(param1 == PORT_INDEX_IN || param1 == OMX_ALL)
-    {
-      m_sInPortDef.bEnabled = OMX_TRUE;
-
-      if( (m_state == OMX_StateLoaded &&
-           !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
-          || allocate_input_done())
-      {
-        post_event(OMX_CommandPortEnable,PORT_INDEX_IN,
-                   OMX_COMPONENT_GENERATE_EVENT);
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("OMXCORE-SM: Disabled-->Enabled Pending\n");
-        BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_ENABLE_PENDING);
-        // Skip the event notification
-        bFlag = 0;
-      }
-    }
-    if(param1 == PORT_INDEX_OUT || param1 == OMX_ALL)
-    {
-      m_sOutPortDef.bEnabled = OMX_TRUE;
-
-      if( (m_state == OMX_StateLoaded &&
-           !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
-          || (allocate_output_done()))
-      {
-        post_event(OMX_CommandPortEnable,PORT_INDEX_OUT,
-                   OMX_COMPONENT_GENERATE_EVENT);
-
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("OMXCORE-SM: Disabled-->Enabled Pending\n");
-        BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
-        // Skip the event notification
-        bFlag = 0;
-      }
-    }
-  }
-  else if(cmd == OMX_CommandPortDisable)
-  {
-    if(param1 == PORT_INDEX_IN || param1 == OMX_ALL)
-    {
-      m_sInPortDef.bEnabled = OMX_FALSE;
-      if((m_state == OMX_StateLoaded || m_state == OMX_StateIdle)
-         && release_input_done())
-      {
-        post_event(OMX_CommandPortDisable,PORT_INDEX_IN,
-                   OMX_COMPONENT_GENERATE_EVENT);
-      }
-      else
-      {
-        BITMASK_SET(&m_flags, OMX_COMPONENT_INPUT_DISABLE_PENDING);
-        if(m_state == OMX_StatePause ||m_state == OMX_StateExecuting)
-        {
-          execute_omx_flush(PORT_INDEX_IN);
-        }
-
-        // Skip the event notification
-        bFlag = 0;
-      }
-    }
-    if(param1 == PORT_INDEX_OUT || param1 == OMX_ALL)
-    {
-      m_sOutPortDef.bEnabled = OMX_FALSE;
-
-      if((m_state == OMX_StateLoaded || m_state == OMX_StateIdle)
-         && release_output_done())
-      {
-        post_event(OMX_CommandPortDisable,PORT_INDEX_OUT,\
-                   OMX_COMPONENT_GENERATE_EVENT);
-      }
-      else
-      {
-        BITMASK_SET(&m_flags, OMX_COMPONENT_OUTPUT_DISABLE_PENDING);
-        if(m_state == OMX_StatePause ||m_state == OMX_StateExecuting)
-        {
-          execute_omx_flush(PORT_INDEX_OUT);
-        }
-        // Skip the event notification
-        bFlag = 0;
-
-      }
-    }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("ERROR: Invalid Command received other than StateSet (%d)\n",cmd);
-    eRet = OMX_ErrorNotImplemented;
-  }
-  if(eRet == OMX_ErrorNone && bFlag)
-  {
-    post_event(cmd,eState,OMX_COMPONENT_GENERATE_EVENT);
-  }
-  sem_post(&m_cmd_lock);
-  return eRet;
+    sem_post(&m_cmd_lock);
+    return eRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_venc::ExecuteOmxFlush
+   FUNCTION
+   omx_venc::ExecuteOmxFlush
 
-DESCRIPTION
-  Executes the OMX flush.
+   DESCRIPTION
+   Executes the OMX flush.
 
-PARAMETERS
-  flushtype - input flush(1)/output flush(0)/ both.
+   PARAMETERS
+   flushtype - input flush(1)/output flush(0)/ both.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 bool omx_video::execute_omx_flush(OMX_U32 flushType)
 {
-  bool bRet = false;
-  DEBUG_PRINT_LOW("\n execute_omx_flush -  %d\n", flushType);
+    bool bRet = false;
+    DEBUG_PRINT_LOW("\n execute_omx_flush -  %d\n", flushType);
 #ifdef _MSM8974_
-  /* XXX: The driver/hardware does not support flushing of individual ports
-   * in all states. So we pretty much need to flush both ports internally,
-   * but client should only get the FLUSH_(INPUT|OUTPUT)_DONE for the one it
-   * requested.  Since OMX_COMPONENT_(OUTPUT|INPUT)_FLUSH_PENDING isn't set,
-   * we automatically omit sending the FLUSH done for the "opposite" port. */
+    /* XXX: The driver/hardware does not support flushing of individual ports
+     * in all states. So we pretty much need to flush both ports internally,
+     * but client should only get the FLUSH_(INPUT|OUTPUT)_DONE for the one it
+     * requested.  Since OMX_COMPONENT_(OUTPUT|INPUT)_FLUSH_PENDING isn't set,
+     * we automatically omit sending the FLUSH done for the "opposite" port. */
 
-  input_flush_progress = true;
-  output_flush_progress = true;
-  bRet = execute_flush_all();
-#else
-  if(flushType == 0 || flushType == OMX_ALL)
-  {
     input_flush_progress = true;
-    //flush input only
-    bRet = execute_input_flush();
-  }
-  if(flushType == 1 || flushType == OMX_ALL)
-  {
-    //flush output only
     output_flush_progress = true;
-    bRet = execute_output_flush();
-  }
+    bRet = execute_flush_all();
+#else
+    if (flushType == 0 || flushType == OMX_ALL) {
+        input_flush_progress = true;
+        //flush input only
+        bRet = execute_input_flush();
+    }
+    if (flushType == 1 || flushType == OMX_ALL) {
+        //flush output only
+        output_flush_progress = true;
+        bRet = execute_output_flush();
+    }
 #endif
-  return bRet;
+    return bRet;
 }
 /*=========================================================================
 FUNCTION : execute_output_flush
 
 DESCRIPTION
-  Executes the OMX flush at OUTPUT PORT.
+Executes the OMX flush at OUTPUT PORT.
 
 PARAMETERS
-  None.
+None.
 
 RETURN VALUE
-  true/false
+true/false
 ==========================================================================*/
 bool omx_video::execute_output_flush(void)
 {
-  unsigned      p1 = 0; // Parameter - 1
-  unsigned      p2 = 0; // Parameter - 2
-  unsigned      ident = 0;
-  bool bRet = true;
+    unsigned      p1 = 0; // Parameter - 1
+    unsigned      p2 = 0; // Parameter - 2
+    unsigned      ident = 0;
+    bool bRet = true;
 
-  /*Generate FBD for all Buffers in the FTBq*/
-  DEBUG_PRINT_LOW("\n execute_output_flush\n");
-  pthread_mutex_lock(&m_lock);
-  while(m_ftb_q.m_size)
-  {
-    m_ftb_q.pop_entry(&p1,&p2,&ident);
+    /*Generate FBD for all Buffers in the FTBq*/
+    DEBUG_PRINT_LOW("\n execute_output_flush\n");
+    pthread_mutex_lock(&m_lock);
+    while (m_ftb_q.m_size) {
+        m_ftb_q.pop_entry(&p1,&p2,&ident);
 
-    if(ident == OMX_COMPONENT_GENERATE_FTB )
-    {
-      pending_output_buffers++;
-      fill_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p2);
+        if (ident == OMX_COMPONENT_GENERATE_FTB ) {
+            pending_output_buffers++;
+            fill_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p2);
+        } else if (ident == OMX_COMPONENT_GENERATE_FBD) {
+            fill_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p1);
+        }
     }
-    else if(ident == OMX_COMPONENT_GENERATE_FBD)
-    {
-      fill_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p1);
+
+    pthread_mutex_unlock(&m_lock);
+    /*Check if there are buffers with the Driver*/
+    if (dev_flush(PORT_INDEX_OUT)) {
+        DEBUG_PRINT_ERROR("\nERROR: o/p dev_flush() Failed");
+        return false;
     }
-  }
 
-  pthread_mutex_unlock(&m_lock);
-  /*Check if there are buffers with the Driver*/
-  if(dev_flush(PORT_INDEX_OUT))
-  {
-    DEBUG_PRINT_ERROR("\nERROR: o/p dev_flush() Failed");
-    return false;
-  }
-
-  return bRet;
+    return bRet;
 }
 /*=========================================================================
 FUNCTION : execute_input_flush
 
 DESCRIPTION
-  Executes the OMX flush at INPUT PORT.
+Executes the OMX flush at INPUT PORT.
 
 PARAMETERS
-  None.
+None.
 
 RETURN VALUE
-  true/false
+true/false
 ==========================================================================*/
 bool omx_video::execute_input_flush(void)
 {
-  unsigned      p1 = 0; // Parameter - 1
-  unsigned      p2 = 0; // Parameter - 2
-  unsigned      ident = 0;
-  bool bRet = true;
+    unsigned      p1 = 0; // Parameter - 1
+    unsigned      p2 = 0; // Parameter - 2
+    unsigned      ident = 0;
+    bool bRet = true;
 
-  /*Generate EBD for all Buffers in the ETBq*/
-  DEBUG_PRINT_LOW("\n execute_input_flush\n");
+    /*Generate EBD for all Buffers in the ETBq*/
+    DEBUG_PRINT_LOW("\n execute_input_flush\n");
 
-  pthread_mutex_lock(&m_lock);
-  while(m_etb_q.m_size)
-  {
-    m_etb_q.pop_entry(&p1,&p2,&ident);
-    if(ident == OMX_COMPONENT_GENERATE_ETB)
-    {
-      pending_input_buffers++;
-      empty_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p2);
+    pthread_mutex_lock(&m_lock);
+    while (m_etb_q.m_size) {
+        m_etb_q.pop_entry(&p1,&p2,&ident);
+        if (ident == OMX_COMPONENT_GENERATE_ETB) {
+            pending_input_buffers++;
+            empty_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p2);
+        } else if (ident == OMX_COMPONENT_GENERATE_EBD) {
+            empty_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p1);
+        } else if (ident == OMX_COMPONENT_GENERATE_ETB_OPQ) {
+            m_pCallbacks.EmptyBufferDone(&m_cmp,m_app_data,(OMX_BUFFERHEADERTYPE *)p2);
+        }
     }
-    else if(ident == OMX_COMPONENT_GENERATE_EBD)
-    {
-      empty_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p1);
+    if (mUseProxyColorFormat) {
+        if (psource_frame) {
+            m_pCallbacks.EmptyBufferDone(&m_cmp,m_app_data,psource_frame);
+            psource_frame = NULL;
+        }
+        while (m_opq_meta_q.m_size) {
+            unsigned p1,p2,id;
+            m_opq_meta_q.pop_entry(&p1,&p2,&id);
+            m_pCallbacks.EmptyBufferDone(&m_cmp,m_app_data,
+                    (OMX_BUFFERHEADERTYPE  *)p1);
+        }
+        if (pdest_frame) {
+            m_opq_pmem_q.insert_entry((unsigned int)pdest_frame,0,0);
+            pdest_frame = NULL;
+        }
     }
-    else if(ident == OMX_COMPONENT_GENERATE_ETB_OPQ)
-    {
-      m_pCallbacks.EmptyBufferDone(&m_cmp,m_app_data,(OMX_BUFFERHEADERTYPE *)p2);
+    pthread_mutex_unlock(&m_lock);
+    /*Check if there are buffers with the Driver*/
+    if (dev_flush(PORT_INDEX_IN)) {
+        DEBUG_PRINT_ERROR("\nERROR: i/p dev_flush() Failed");
+        return false;
     }
-  }
-  if(mUseProxyColorFormat) {
-    if(psource_frame) {
-      m_pCallbacks.EmptyBufferDone(&m_cmp,m_app_data,psource_frame);
-      psource_frame = NULL;
-    }
-    while(m_opq_meta_q.m_size) {
-      unsigned p1,p2,id;
-      m_opq_meta_q.pop_entry(&p1,&p2,&id);
-      m_pCallbacks.EmptyBufferDone(&m_cmp,m_app_data,
-         (OMX_BUFFERHEADERTYPE  *)p1);
-    }
-    if(pdest_frame){
-      m_opq_pmem_q.insert_entry((unsigned int)pdest_frame,0,0);
-      pdest_frame = NULL;
-    }
-  }
-  pthread_mutex_unlock(&m_lock);
-  /*Check if there are buffers with the Driver*/
-  if(dev_flush(PORT_INDEX_IN))
-  {
-    DEBUG_PRINT_ERROR("\nERROR: i/p dev_flush() Failed");
-    return false;
-  }
 
-  return bRet;
+    return bRet;
 }
 
 
@@ -1461,3525 +1270,3133 @@
 FUNCTION : execute_flush
 
 DESCRIPTION
-  Executes the OMX flush at INPUT & OUTPUT PORT.
+Executes the OMX flush at INPUT & OUTPUT PORT.
 
 PARAMETERS
-  None.
+None.
 
 RETURN VALUE
-  true/false
+true/false
 ==========================================================================*/
 #ifdef _MSM8974_
 bool omx_video::execute_flush_all(void)
 {
-  unsigned      p1 = 0; // Parameter - 1
-  unsigned      p2 = 0; // Parameter - 2
-  unsigned      ident = 0;
-  bool bRet = true;
+    unsigned      p1 = 0; // Parameter - 1
+    unsigned      p2 = 0; // Parameter - 2
+    unsigned      ident = 0;
+    bool bRet = true;
 
-  DEBUG_PRINT_LOW("\n execute_flush_all\n");
+    DEBUG_PRINT_LOW("\n execute_flush_all\n");
 
-  /*Generate EBD for all Buffers in the ETBq*/
-  pthread_mutex_lock(&m_lock);
-  while(m_etb_q.m_size)
-  {
-    m_etb_q.pop_entry(&p1,&p2,&ident);
-    if(ident == OMX_COMPONENT_GENERATE_ETB)
-    {
-      pending_input_buffers++;
-      empty_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p2);
+    /*Generate EBD for all Buffers in the ETBq*/
+    pthread_mutex_lock(&m_lock);
+    while (m_etb_q.m_size) {
+        m_etb_q.pop_entry(&p1,&p2,&ident);
+        if (ident == OMX_COMPONENT_GENERATE_ETB) {
+            pending_input_buffers++;
+            empty_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p2);
+        } else if (ident == OMX_COMPONENT_GENERATE_EBD) {
+            empty_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p1);
+        }
     }
-    else if(ident == OMX_COMPONENT_GENERATE_EBD)
-    {
-      empty_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p1);
+
+    /*Generate FBD for all Buffers in the FTBq*/
+    DEBUG_PRINT_LOW("\n execute_output_flush\n");
+    while (m_ftb_q.m_size) {
+        m_ftb_q.pop_entry(&p1,&p2,&ident);
+
+        if (ident == OMX_COMPONENT_GENERATE_FTB ) {
+            pending_output_buffers++;
+            fill_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p2);
+        } else if (ident == OMX_COMPONENT_GENERATE_FBD) {
+            fill_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p1);
+        }
     }
-  }
 
-  /*Generate FBD for all Buffers in the FTBq*/
-  DEBUG_PRINT_LOW("\n execute_output_flush\n");
-  while(m_ftb_q.m_size)
-  {
-    m_ftb_q.pop_entry(&p1,&p2,&ident);
+    pthread_mutex_unlock(&m_lock);
 
-    if(ident == OMX_COMPONENT_GENERATE_FTB )
-    {
-      pending_output_buffers++;
-      fill_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p2);
+    /*Check if there are buffers with the Driver*/
+    if (dev_flush(PORT_INDEX_BOTH)) {
+        DEBUG_PRINT_ERROR("\nERROR: dev_flush() Failed");
+        return false;
     }
-    else if(ident == OMX_COMPONENT_GENERATE_FBD)
-    {
-      fill_buffer_done(&m_cmp,(OMX_BUFFERHEADERTYPE *)p1);
-    }
-  }
-
-  pthread_mutex_unlock(&m_lock);
-
-  /*Check if there are buffers with the Driver*/
-  if(dev_flush(PORT_INDEX_BOTH))
-  {
-    DEBUG_PRINT_ERROR("\nERROR: dev_flush() Failed");
-    return false;
-  }
-  return bRet;
+    return bRet;
 }
 
 #endif
 
 /* ======================================================================
-FUNCTION
-  omx_venc::SendCommandEvent
+   FUNCTION
+   omx_venc::SendCommandEvent
 
-DESCRIPTION
-  Send the event to decoder pipe.  This is needed to generate the callbacks
-  in decoder thread context.
+   DESCRIPTION
+   Send the event to decoder pipe.  This is needed to generate the callbacks
+   in decoder thread context.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 bool omx_video::post_event(unsigned int p1,
-                           unsigned int p2,
-                           unsigned int id)
+        unsigned int p2,
+        unsigned int id)
 {
-  bool bRet      =                      false;
+    bool bRet      =                      false;
 
 
-  pthread_mutex_lock(&m_lock);
+    pthread_mutex_lock(&m_lock);
 
-  if ((id == OMX_COMPONENT_GENERATE_FTB) ||
-      (id == OMX_COMPONENT_GENERATE_FBD) ||
-      (id == OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH))
-  {
-    m_ftb_q.insert_entry(p1,p2,id);
-  }
-  else if ((id == OMX_COMPONENT_GENERATE_ETB) ||
-      (id == OMX_COMPONENT_GENERATE_EBD) ||
-      (id == OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH))
-  {
-    m_etb_q.insert_entry(p1,p2,id);
-  }
-  else
-  {
-    m_cmd_q.insert_entry(p1,p2,id);
-  }
+    if ((id == OMX_COMPONENT_GENERATE_FTB) ||
+            (id == OMX_COMPONENT_GENERATE_FBD) ||
+            (id == OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH)) {
+        m_ftb_q.insert_entry(p1,p2,id);
+    } else if ((id == OMX_COMPONENT_GENERATE_ETB) ||
+            (id == OMX_COMPONENT_GENERATE_EBD) ||
+            (id == OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH)) {
+        m_etb_q.insert_entry(p1,p2,id);
+    } else {
+        m_cmd_q.insert_entry(p1,p2,id);
+    }
 
-  bRet = true;
-  DEBUG_PRINT_LOW("\n Value of this pointer in post_event %p",this);
-  post_message(this, id);
-  pthread_mutex_unlock(&m_lock);
+    bRet = true;
+    DEBUG_PRINT_LOW("\n Value of this pointer in post_event %p",this);
+    post_message(this, id);
+    pthread_mutex_unlock(&m_lock);
 
-  return bRet;
+    return bRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_venc::GetParameter
+   FUNCTION
+   omx_venc::GetParameter
 
-DESCRIPTION
-  OMX Get Parameter method implementation
+   DESCRIPTION
+   OMX Get Parameter method implementation
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  Error None if successful.
+   RETURN VALUE
+   Error None if successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::get_parameter(OMX_IN OMX_HANDLETYPE     hComp,
-                                        OMX_IN OMX_INDEXTYPE paramIndex,
-                                        OMX_INOUT OMX_PTR     paramData)
+        OMX_IN OMX_INDEXTYPE paramIndex,
+        OMX_INOUT OMX_PTR     paramData)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  unsigned int height=0,width = 0;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    unsigned int height=0,width = 0;
 
-  DEBUG_PRINT_LOW("get_parameter: \n");
-  if(m_state == OMX_StateInvalid)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Get Param in Invalid State\n");
-    return OMX_ErrorInvalidState;
-  }
-  if(paramData == NULL)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Get Param in Invalid paramData \n");
-    return OMX_ErrorBadParameter;
-  }
-  switch(paramIndex)
-  {
-  case OMX_IndexParamPortDefinition:
-    {
-      OMX_PARAM_PORTDEFINITIONTYPE *portDefn;
-      portDefn = (OMX_PARAM_PORTDEFINITIONTYPE *) paramData;
+    DEBUG_PRINT_LOW("get_parameter: \n");
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("ERROR: Get Param in Invalid State\n");
+        return OMX_ErrorInvalidState;
+    }
+    if (paramData == NULL) {
+        DEBUG_PRINT_ERROR("ERROR: Get Param in Invalid paramData \n");
+        return OMX_ErrorBadParameter;
+    }
+    switch (paramIndex) {
+        case OMX_IndexParamPortDefinition:
+            {
+                OMX_PARAM_PORTDEFINITIONTYPE *portDefn;
+                portDefn = (OMX_PARAM_PORTDEFINITIONTYPE *) paramData;
 
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamPortDefinition\n");
-      if(portDefn->nPortIndex == (OMX_U32) PORT_INDEX_IN)
-      {
-        DEBUG_PRINT_LOW("m_sInPortDef: size = %d, min cnt = %d, actual cnt = %d",
-            m_sInPortDef.nBufferSize, m_sInPortDef.nBufferCountMin,
-            m_sInPortDef.nBufferCountActual);
-        memcpy(portDefn, &m_sInPortDef, sizeof(m_sInPortDef));
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamPortDefinition\n");
+                if (portDefn->nPortIndex == (OMX_U32) PORT_INDEX_IN) {
+                    DEBUG_PRINT_LOW("m_sInPortDef: size = %d, min cnt = %d, actual cnt = %d",
+                            m_sInPortDef.nBufferSize, m_sInPortDef.nBufferCountMin,
+                            m_sInPortDef.nBufferCountActual);
+                    memcpy(portDefn, &m_sInPortDef, sizeof(m_sInPortDef));
 #ifdef _ANDROID_ICS_
-        if(meta_mode_enable)
-        {
-          portDefn->nBufferSize = sizeof(encoder_media_buffer_type);
-        }
-        if (mUseProxyColorFormat) {
-            portDefn->format.video.eColorFormat =
-              (OMX_COLOR_FORMATTYPE)QOMX_COLOR_FormatAndroidOpaque;
-        }
+                    if (meta_mode_enable) {
+                        portDefn->nBufferSize = sizeof(encoder_media_buffer_type);
+                    }
+                    if (mUseProxyColorFormat) {
+                        portDefn->format.video.eColorFormat =
+                            (OMX_COLOR_FORMATTYPE)QOMX_COLOR_FormatAndroidOpaque;
+                    }
 #endif
-      }
-      else if(portDefn->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        dev_get_buf_req (&m_sOutPortDef.nBufferCountMin,
-                         &m_sOutPortDef.nBufferCountActual,
-                         &m_sOutPortDef.nBufferSize,
-                         m_sOutPortDef.nPortIndex);
-        DEBUG_PRINT_LOW("m_sOutPortDef: size = %d, min cnt = %d, actual cnt = %d",
-            m_sOutPortDef.nBufferSize, m_sOutPortDef.nBufferCountMin,
-            m_sOutPortDef.nBufferCountActual);
-        memcpy(portDefn, &m_sOutPortDef, sizeof(m_sOutPortDef));
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: GetParameter called on Bad Port Index");
-        eRet = OMX_ErrorBadPortIndex;
-      }
-      break;
-    }
-  case OMX_IndexParamVideoInit:
-    {
-      OMX_PORT_PARAM_TYPE *portParamType =
-      (OMX_PORT_PARAM_TYPE *) paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoInit\n");
-
-      memcpy(portParamType, &m_sPortParam, sizeof(m_sPortParam));
-      break;
-    }
-  case OMX_IndexParamVideoPortFormat:
-    {
-      OMX_VIDEO_PARAM_PORTFORMATTYPE *portFmt =
-      (OMX_VIDEO_PARAM_PORTFORMATTYPE *)paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoPortFormat\n");
-
-      if(portFmt->nPortIndex == (OMX_U32) PORT_INDEX_IN)
-      {
-          int index = portFmt->nIndex;
-          if(index > 1)
-            eRet = OMX_ErrorNoMore;
-          else {
-            memcpy(portFmt, &m_sInPortFormat, sizeof(m_sInPortFormat));
-#ifdef _ANDROID_ICS_
-            if (index == 1) {
-                //we support two formats
-                //index 0 - YUV420SP
-                //index 1 - opaque which internally maps to YUV420SP.
-                //this can be extended in the future
-                portFmt->nIndex = index; //restore index set from client
-                portFmt->eColorFormat = (OMX_COLOR_FORMATTYPE)QOMX_COLOR_FormatAndroidOpaque;
+                } else if (portDefn->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    dev_get_buf_req (&m_sOutPortDef.nBufferCountMin,
+                            &m_sOutPortDef.nBufferCountActual,
+                            &m_sOutPortDef.nBufferSize,
+                            m_sOutPortDef.nPortIndex);
+                    DEBUG_PRINT_LOW("m_sOutPortDef: size = %d, min cnt = %d, actual cnt = %d",
+                            m_sOutPortDef.nBufferSize, m_sOutPortDef.nBufferCountMin,
+                            m_sOutPortDef.nBufferCountActual);
+                    memcpy(portDefn, &m_sOutPortDef, sizeof(m_sOutPortDef));
+                } else {
+                    DEBUG_PRINT_ERROR("ERROR: GetParameter called on Bad Port Index");
+                    eRet = OMX_ErrorBadPortIndex;
+                }
+                break;
             }
+        case OMX_IndexParamVideoInit:
+            {
+                OMX_PORT_PARAM_TYPE *portParamType =
+                    (OMX_PORT_PARAM_TYPE *) paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoInit\n");
+
+                memcpy(portParamType, &m_sPortParam, sizeof(m_sPortParam));
+                break;
+            }
+        case OMX_IndexParamVideoPortFormat:
+            {
+                OMX_VIDEO_PARAM_PORTFORMATTYPE *portFmt =
+                    (OMX_VIDEO_PARAM_PORTFORMATTYPE *)paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoPortFormat\n");
+
+                if (portFmt->nPortIndex == (OMX_U32) PORT_INDEX_IN) {
+                    int index = portFmt->nIndex;
+                    if (index > 1)
+                        eRet = OMX_ErrorNoMore;
+                    else {
+                        memcpy(portFmt, &m_sInPortFormat, sizeof(m_sInPortFormat));
+#ifdef _ANDROID_ICS_
+                        if (index == 1) {
+                            //we support two formats
+                            //index 0 - YUV420SP
+                            //index 1 - opaque which internally maps to YUV420SP.
+                            //this can be extended in the future
+                            portFmt->nIndex = index; //restore index set from client
+                            portFmt->eColorFormat = (OMX_COLOR_FORMATTYPE)QOMX_COLOR_FormatAndroidOpaque;
+                        }
 #endif
-          }
-      }
-      else if(portFmt->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        memcpy(portFmt, &m_sOutPortFormat, sizeof(m_sOutPortFormat));
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: GetParameter called on Bad Port Index");
-        eRet = OMX_ErrorBadPortIndex;
-      }
-      break;
-    }
-  case OMX_IndexParamVideoBitrate:
-    {
-      OMX_VIDEO_PARAM_BITRATETYPE* pParam = (OMX_VIDEO_PARAM_BITRATETYPE*)paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoBitrate\n");
+                    }
+                } else if (portFmt->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    memcpy(portFmt, &m_sOutPortFormat, sizeof(m_sOutPortFormat));
+                } else {
+                    DEBUG_PRINT_ERROR("ERROR: GetParameter called on Bad Port Index");
+                    eRet = OMX_ErrorBadPortIndex;
+                }
+                break;
+            }
+        case OMX_IndexParamVideoBitrate:
+            {
+                OMX_VIDEO_PARAM_BITRATETYPE* pParam = (OMX_VIDEO_PARAM_BITRATETYPE*)paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoBitrate\n");
 
-      if(pParam->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        memcpy(pParam, &m_sParamBitrate, sizeof(m_sParamBitrate));
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: GetParameter called on Bad Port Index");
-        eRet = OMX_ErrorBadPortIndex;
-      }
+                if (pParam->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    memcpy(pParam, &m_sParamBitrate, sizeof(m_sParamBitrate));
+                } else {
+                    DEBUG_PRINT_ERROR("ERROR: GetParameter called on Bad Port Index");
+                    eRet = OMX_ErrorBadPortIndex;
+                }
 
-      break;
-    }
-  case OMX_IndexParamVideoMpeg4:
-    {
-      OMX_VIDEO_PARAM_MPEG4TYPE* pParam = (OMX_VIDEO_PARAM_MPEG4TYPE*)paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoMpeg4\n");
-      memcpy(pParam, &m_sParamMPEG4, sizeof(m_sParamMPEG4));
-      break;
-    }
-  case OMX_IndexParamVideoH263:
-    {
-      OMX_VIDEO_PARAM_H263TYPE* pParam = (OMX_VIDEO_PARAM_H263TYPE*)paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoH263\n");
-      memcpy(pParam, &m_sParamH263, sizeof(m_sParamH263));
-      break;
-    }
-  case OMX_IndexParamVideoAvc:
-    {
-      OMX_VIDEO_PARAM_AVCTYPE* pParam = (OMX_VIDEO_PARAM_AVCTYPE*)paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoAvc\n");
-      memcpy(pParam, &m_sParamAVC, sizeof(m_sParamAVC));
-      break;
-    }
-  case OMX_IndexParamVideoProfileLevelQuerySupported:
-    {
-      OMX_VIDEO_PARAM_PROFILELEVELTYPE* pParam = (OMX_VIDEO_PARAM_PROFILELEVELTYPE*)paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported\n");
-      eRet = get_supported_profile_level(pParam);
-      if(eRet)
-        DEBUG_PRINT_ERROR("Invalid entry returned from get_supported_profile_level %lu, %lu",
-                          pParam->eProfile, pParam->eLevel);
-      break;
-     }
-  case OMX_IndexParamVideoProfileLevelCurrent:
-    {
-      OMX_VIDEO_PARAM_PROFILELEVELTYPE* pParam = (OMX_VIDEO_PARAM_PROFILELEVELTYPE*)paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelCurrent\n");
-      memcpy(pParam, &m_sParamProfileLevel, sizeof(m_sParamProfileLevel));
-      break;
-    }
-    /*Component should support this port definition*/
-  case OMX_IndexParamAudioInit:
-    {
-      OMX_PORT_PARAM_TYPE *audioPortParamType = (OMX_PORT_PARAM_TYPE *) paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamAudioInit\n");
-      memcpy(audioPortParamType, &m_sPortParam_audio, sizeof(m_sPortParam_audio));
-      break;
-    }
-    /*Component should support this port definition*/
-  case OMX_IndexParamImageInit:
-    {
-      OMX_PORT_PARAM_TYPE *imagePortParamType = (OMX_PORT_PARAM_TYPE *) paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamImageInit\n");
-      memcpy(imagePortParamType, &m_sPortParam_img, sizeof(m_sPortParam_img));
-      break;
+                break;
+            }
+        case OMX_IndexParamVideoMpeg4:
+            {
+                OMX_VIDEO_PARAM_MPEG4TYPE* pParam = (OMX_VIDEO_PARAM_MPEG4TYPE*)paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoMpeg4\n");
+                memcpy(pParam, &m_sParamMPEG4, sizeof(m_sParamMPEG4));
+                break;
+            }
+        case OMX_IndexParamVideoH263:
+            {
+                OMX_VIDEO_PARAM_H263TYPE* pParam = (OMX_VIDEO_PARAM_H263TYPE*)paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoH263\n");
+                memcpy(pParam, &m_sParamH263, sizeof(m_sParamH263));
+                break;
+            }
+        case OMX_IndexParamVideoAvc:
+            {
+                OMX_VIDEO_PARAM_AVCTYPE* pParam = (OMX_VIDEO_PARAM_AVCTYPE*)paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoAvc\n");
+                memcpy(pParam, &m_sParamAVC, sizeof(m_sParamAVC));
+                break;
+            }
+        case OMX_IndexParamVideoProfileLevelQuerySupported:
+            {
+                OMX_VIDEO_PARAM_PROFILELEVELTYPE* pParam = (OMX_VIDEO_PARAM_PROFILELEVELTYPE*)paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported\n");
+                eRet = get_supported_profile_level(pParam);
+                if (eRet)
+                    DEBUG_PRINT_ERROR("Invalid entry returned from get_supported_profile_level %lu, %lu",
+                            pParam->eProfile, pParam->eLevel);
+                break;
+            }
+        case OMX_IndexParamVideoProfileLevelCurrent:
+            {
+                OMX_VIDEO_PARAM_PROFILELEVELTYPE* pParam = (OMX_VIDEO_PARAM_PROFILELEVELTYPE*)paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelCurrent\n");
+                memcpy(pParam, &m_sParamProfileLevel, sizeof(m_sParamProfileLevel));
+                break;
+            }
+            /*Component should support this port definition*/
+        case OMX_IndexParamAudioInit:
+            {
+                OMX_PORT_PARAM_TYPE *audioPortParamType = (OMX_PORT_PARAM_TYPE *) paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamAudioInit\n");
+                memcpy(audioPortParamType, &m_sPortParam_audio, sizeof(m_sPortParam_audio));
+                break;
+            }
+            /*Component should support this port definition*/
+        case OMX_IndexParamImageInit:
+            {
+                OMX_PORT_PARAM_TYPE *imagePortParamType = (OMX_PORT_PARAM_TYPE *) paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamImageInit\n");
+                memcpy(imagePortParamType, &m_sPortParam_img, sizeof(m_sPortParam_img));
+                break;
 
-    }
-    /*Component should support this port definition*/
-  case OMX_IndexParamOtherInit:
-    {
-      DEBUG_PRINT_ERROR("ERROR: get_parameter: OMX_IndexParamOtherInit %08x\n", paramIndex);
-      eRet =OMX_ErrorUnsupportedIndex;
-      break;
-    }
-  case OMX_IndexParamStandardComponentRole:
-    {
-      OMX_PARAM_COMPONENTROLETYPE *comp_role;
-      comp_role = (OMX_PARAM_COMPONENTROLETYPE *) paramData;
-      comp_role->nVersion.nVersion = OMX_SPEC_VERSION;
-      comp_role->nSize = sizeof(*comp_role);
+            }
+            /*Component should support this port definition*/
+        case OMX_IndexParamOtherInit:
+            {
+                DEBUG_PRINT_ERROR("ERROR: get_parameter: OMX_IndexParamOtherInit %08x\n", paramIndex);
+                eRet =OMX_ErrorUnsupportedIndex;
+                break;
+            }
+        case OMX_IndexParamStandardComponentRole:
+            {
+                OMX_PARAM_COMPONENTROLETYPE *comp_role;
+                comp_role = (OMX_PARAM_COMPONENTROLETYPE *) paramData;
+                comp_role->nVersion.nVersion = OMX_SPEC_VERSION;
+                comp_role->nSize = sizeof(*comp_role);
 
-      DEBUG_PRINT_LOW("Getparameter: OMX_IndexParamStandardComponentRole %d\n",paramIndex);
-      if(NULL != comp_role->cRole)
-      {
-        strlcpy((char*)comp_role->cRole,(const char*)m_cRole,OMX_MAX_STRINGNAME_SIZE);
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: Getparameter: OMX_IndexParamStandardComponentRole %d is passed with NULL parameter for role\n",paramIndex);
-        eRet =OMX_ErrorBadParameter;
-      }
-      break;
-    }
-    /* Added for parameter test */
-  case OMX_IndexParamPriorityMgmt:
-    {
+                DEBUG_PRINT_LOW("Getparameter: OMX_IndexParamStandardComponentRole %d\n",paramIndex);
+                if (NULL != comp_role->cRole) {
+                    strlcpy((char*)comp_role->cRole,(const char*)m_cRole,OMX_MAX_STRINGNAME_SIZE);
+                } else {
+                    DEBUG_PRINT_ERROR("ERROR: Getparameter: OMX_IndexParamStandardComponentRole %d is passed with NULL parameter for role\n",paramIndex);
+                    eRet =OMX_ErrorBadParameter;
+                }
+                break;
+            }
+            /* Added for parameter test */
+        case OMX_IndexParamPriorityMgmt:
+            {
 
-      OMX_PRIORITYMGMTTYPE *priorityMgmType = (OMX_PRIORITYMGMTTYPE *) paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamPriorityMgmt\n");
-      memcpy(priorityMgmType, &m_sPriorityMgmt, sizeof(m_sPriorityMgmt));
-      break;
-    }
-    /* Added for parameter test */
-  case OMX_IndexParamCompBufferSupplier:
-    {
-      OMX_PARAM_BUFFERSUPPLIERTYPE *bufferSupplierType = (OMX_PARAM_BUFFERSUPPLIERTYPE*) paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamCompBufferSupplier\n");
-      if(bufferSupplierType->nPortIndex ==(OMX_U32) PORT_INDEX_IN)
-      {
-        memcpy(bufferSupplierType, &m_sInBufSupplier, sizeof(m_sInBufSupplier));
-      }
-      else if(bufferSupplierType->nPortIndex ==(OMX_U32) PORT_INDEX_OUT)
-      {
-        memcpy(bufferSupplierType, &m_sOutBufSupplier, sizeof(m_sOutBufSupplier));
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: GetParameter called on Bad Port Index");
-        eRet = OMX_ErrorBadPortIndex;
-      }
-      break;
-    }
+                OMX_PRIORITYMGMTTYPE *priorityMgmType = (OMX_PRIORITYMGMTTYPE *) paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamPriorityMgmt\n");
+                memcpy(priorityMgmType, &m_sPriorityMgmt, sizeof(m_sPriorityMgmt));
+                break;
+            }
+            /* Added for parameter test */
+        case OMX_IndexParamCompBufferSupplier:
+            {
+                OMX_PARAM_BUFFERSUPPLIERTYPE *bufferSupplierType = (OMX_PARAM_BUFFERSUPPLIERTYPE*) paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamCompBufferSupplier\n");
+                if (bufferSupplierType->nPortIndex ==(OMX_U32) PORT_INDEX_IN) {
+                    memcpy(bufferSupplierType, &m_sInBufSupplier, sizeof(m_sInBufSupplier));
+                } else if (bufferSupplierType->nPortIndex ==(OMX_U32) PORT_INDEX_OUT) {
+                    memcpy(bufferSupplierType, &m_sOutBufSupplier, sizeof(m_sOutBufSupplier));
+                } else {
+                    DEBUG_PRINT_ERROR("ERROR: GetParameter called on Bad Port Index");
+                    eRet = OMX_ErrorBadPortIndex;
+                }
+                break;
+            }
 
-  case OMX_IndexParamVideoQuantization:
-    {
-      OMX_VIDEO_PARAM_QUANTIZATIONTYPE *session_qp = (OMX_VIDEO_PARAM_QUANTIZATIONTYPE*) paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoQuantization\n");
-      memcpy(session_qp, &m_sSessionQuantization, sizeof(m_sSessionQuantization));
-      break;
-    }
+        case OMX_IndexParamVideoQuantization:
+            {
+                OMX_VIDEO_PARAM_QUANTIZATIONTYPE *session_qp = (OMX_VIDEO_PARAM_QUANTIZATIONTYPE*) paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoQuantization\n");
+                memcpy(session_qp, &m_sSessionQuantization, sizeof(m_sSessionQuantization));
+                break;
+            }
 
-    case OMX_QcomIndexParamVideoQPRange:
-    {
-      OMX_QCOM_VIDEO_PARAM_QPRANGETYPE *qp_range = (OMX_QCOM_VIDEO_PARAM_QPRANGETYPE*) paramData;
-      DEBUG_PRINT_LOW("get_parameter: OMX_QcomIndexParamVideoQPRange\n");
-      memcpy(qp_range, &m_sSessionQPRange, sizeof(m_sSessionQPRange));
-      break;
-    }
+        case OMX_QcomIndexParamVideoQPRange:
+            {
+                OMX_QCOM_VIDEO_PARAM_QPRANGETYPE *qp_range = (OMX_QCOM_VIDEO_PARAM_QPRANGETYPE*) paramData;
+                DEBUG_PRINT_LOW("get_parameter: OMX_QcomIndexParamVideoQPRange\n");
+                memcpy(qp_range, &m_sSessionQPRange, sizeof(m_sSessionQPRange));
+                break;
+            }
 
-    case OMX_IndexParamVideoErrorCorrection:
-    {
-      OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE* errorresilience = (OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE*)paramData;
-      DEBUG_PRINT_LOW("OMX_IndexParamVideoErrorCorrection\n");
-      errorresilience->bEnableHEC = m_sErrorCorrection.bEnableHEC;
-      errorresilience->bEnableResync = m_sErrorCorrection.bEnableResync;
-      errorresilience->nResynchMarkerSpacing = m_sErrorCorrection.nResynchMarkerSpacing;
-      break;
-    }
-  case OMX_IndexParamVideoIntraRefresh:
-    {
-      OMX_VIDEO_PARAM_INTRAREFRESHTYPE* intrarefresh = (OMX_VIDEO_PARAM_INTRAREFRESHTYPE*)paramData;
-      DEBUG_PRINT_LOW("OMX_IndexParamVideoIntraRefresh\n");
-      DEBUG_PRINT_ERROR("OMX_IndexParamVideoIntraRefresh GET\n");
-      intrarefresh->eRefreshMode = m_sIntraRefresh.eRefreshMode;
-      intrarefresh->nCirMBs = m_sIntraRefresh.nCirMBs;
-      break;
-    }
-  case OMX_QcomIndexPortDefn:
-    //TODO
-    break;
-  case OMX_COMPONENT_CAPABILITY_TYPE_INDEX:
-   {
-        OMXComponentCapabilityFlagsType *pParam = reinterpret_cast<OMXComponentCapabilityFlagsType*>(paramData);
-        DEBUG_PRINT_LOW("get_parameter: OMX_COMPONENT_CAPABILITY_TYPE_INDEX\n");
-        pParam->iIsOMXComponentMultiThreaded = OMX_TRUE;
-        pParam->iOMXComponentSupportsExternalOutputBufferAlloc = OMX_FALSE;
-        pParam->iOMXComponentSupportsExternalInputBufferAlloc = OMX_TRUE;
-        pParam->iOMXComponentSupportsMovableInputBuffers = OMX_TRUE;
-        pParam->iOMXComponentUsesNALStartCodes = OMX_TRUE;
-        pParam->iOMXComponentSupportsPartialFrames = OMX_FALSE;
-        pParam->iOMXComponentCanHandleIncompleteFrames = OMX_FALSE;
-        pParam->iOMXComponentUsesFullAVCFrames = OMX_FALSE;
-        m_use_input_pmem = OMX_TRUE;
-        DEBUG_PRINT_LOW("Supporting capability index in encoder node");
-        break;
-   }
+        case OMX_IndexParamVideoErrorCorrection:
+            {
+                OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE* errorresilience = (OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE*)paramData;
+                DEBUG_PRINT_LOW("OMX_IndexParamVideoErrorCorrection\n");
+                errorresilience->bEnableHEC = m_sErrorCorrection.bEnableHEC;
+                errorresilience->bEnableResync = m_sErrorCorrection.bEnableResync;
+                errorresilience->nResynchMarkerSpacing = m_sErrorCorrection.nResynchMarkerSpacing;
+                break;
+            }
+        case OMX_IndexParamVideoIntraRefresh:
+            {
+                OMX_VIDEO_PARAM_INTRAREFRESHTYPE* intrarefresh = (OMX_VIDEO_PARAM_INTRAREFRESHTYPE*)paramData;
+                DEBUG_PRINT_LOW("OMX_IndexParamVideoIntraRefresh\n");
+                DEBUG_PRINT_ERROR("OMX_IndexParamVideoIntraRefresh GET\n");
+                intrarefresh->eRefreshMode = m_sIntraRefresh.eRefreshMode;
+                intrarefresh->nCirMBs = m_sIntraRefresh.nCirMBs;
+                break;
+            }
+        case OMX_QcomIndexPortDefn:
+            //TODO
+            break;
+        case OMX_COMPONENT_CAPABILITY_TYPE_INDEX:
+            {
+                OMXComponentCapabilityFlagsType *pParam = reinterpret_cast<OMXComponentCapabilityFlagsType*>(paramData);
+                DEBUG_PRINT_LOW("get_parameter: OMX_COMPONENT_CAPABILITY_TYPE_INDEX\n");
+                pParam->iIsOMXComponentMultiThreaded = OMX_TRUE;
+                pParam->iOMXComponentSupportsExternalOutputBufferAlloc = OMX_FALSE;
+                pParam->iOMXComponentSupportsExternalInputBufferAlloc = OMX_TRUE;
+                pParam->iOMXComponentSupportsMovableInputBuffers = OMX_TRUE;
+                pParam->iOMXComponentUsesNALStartCodes = OMX_TRUE;
+                pParam->iOMXComponentSupportsPartialFrames = OMX_FALSE;
+                pParam->iOMXComponentCanHandleIncompleteFrames = OMX_FALSE;
+                pParam->iOMXComponentUsesFullAVCFrames = OMX_FALSE;
+                m_use_input_pmem = OMX_TRUE;
+                DEBUG_PRINT_LOW("Supporting capability index in encoder node");
+                break;
+            }
 #if !defined(MAX_RES_720P) || defined(_MSM8974_)
-  case OMX_QcomIndexParamIndexExtraDataType:
-    {
-      DEBUG_PRINT_LOW("get_parameter: OMX_QcomIndexParamIndexExtraDataType");
-      QOMX_INDEXEXTRADATATYPE *pParam = (QOMX_INDEXEXTRADATATYPE *)paramData;
-      if (pParam->nIndex == (OMX_INDEXTYPE)OMX_ExtraDataVideoEncoderSliceInfo)
-      {
-        if (pParam->nPortIndex == PORT_INDEX_OUT)
-        {
-          pParam->bEnabled =
-             (OMX_BOOL)((m_sExtraData & VEN_EXTRADATA_SLICEINFO) ? 1 : 0);
-          DEBUG_PRINT_HIGH("Slice Info extradata %d", pParam->bEnabled);
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("get_parameter: slice information is "
-              "valid for output port only");
-          eRet =OMX_ErrorUnsupportedIndex;
-        }
-      }
+        case OMX_QcomIndexParamIndexExtraDataType:
+            {
+                DEBUG_PRINT_LOW("get_parameter: OMX_QcomIndexParamIndexExtraDataType");
+                QOMX_INDEXEXTRADATATYPE *pParam = (QOMX_INDEXEXTRADATATYPE *)paramData;
+                if (pParam->nIndex == (OMX_INDEXTYPE)OMX_ExtraDataVideoEncoderSliceInfo) {
+                    if (pParam->nPortIndex == PORT_INDEX_OUT) {
+                        pParam->bEnabled =
+                            (OMX_BOOL)((m_sExtraData & VEN_EXTRADATA_SLICEINFO) ? 1 : 0);
+                        DEBUG_PRINT_HIGH("Slice Info extradata %d", pParam->bEnabled);
+                    } else {
+                        DEBUG_PRINT_ERROR("get_parameter: slice information is "
+                                "valid for output port only");
+                        eRet =OMX_ErrorUnsupportedIndex;
+                    }
+                }
 #ifndef _MSM8974_
-      else if (pParam->nIndex == (OMX_INDEXTYPE)OMX_ExtraDataVideoLTRInfo)
-      {
-        if (pParam->nPortIndex == PORT_INDEX_OUT)
-        {
-          pParam->bEnabled =
-             (OMX_BOOL)((m_sExtraData & VEN_EXTRADATA_LTRINFO) ? 1 : 0);
-          DEBUG_PRINT_HIGH("LTR Info extradata %d", pParam->bEnabled);
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("get_parameter: LTR information is "
-              "valid for output port only");
-          eRet = OMX_ErrorUnsupportedIndex;
-        }
-      }
+                else if (pParam->nIndex == (OMX_INDEXTYPE)OMX_ExtraDataVideoLTRInfo) {
+                    if (pParam->nPortIndex == PORT_INDEX_OUT) {
+                        pParam->bEnabled =
+                            (OMX_BOOL)((m_sExtraData & VEN_EXTRADATA_LTRINFO) ? 1 : 0);
+                        DEBUG_PRINT_HIGH("LTR Info extradata %d", pParam->bEnabled);
+                    } else {
+                        DEBUG_PRINT_ERROR("get_parameter: LTR information is "
+                                "valid for output port only");
+                        eRet = OMX_ErrorUnsupportedIndex;
+                    }
+                }
 #endif
-      else
-      {
-        DEBUG_PRINT_ERROR("get_parameter: unsupported extradata index (0x%x)",
-            pParam->nIndex);
-        eRet = OMX_ErrorUnsupportedIndex;
-      }
-      break;
-    }
-  case QOMX_IndexParamVideoLTRCountRangeSupported:
-    {
-       DEBUG_PRINT_HIGH("get_parameter: QOMX_IndexParamVideoLTRCountRangeSupported");
-       QOMX_EXTNINDEX_RANGETYPE *pParam = (QOMX_EXTNINDEX_RANGETYPE *)paramData;
-       if (pParam->nPortIndex == PORT_INDEX_OUT)
-       {
-          OMX_U32 min = 0, max = 0, step_size = 0;
-          if (dev_get_capability_ltrcount(&min, &max, &step_size))
-          {
-             pParam->nMin = min;
-             pParam->nMax = max;
-             pParam->nStepSize = step_size;
-          }
-          else
-          {
-             DEBUG_PRINT_ERROR("get_parameter: get_capability_ltrcount failed");
-             eRet = OMX_ErrorUndefined;
-          }
-       }
-       else
-       {
-          DEBUG_PRINT_ERROR("LTR count range is valid for output port only");
-          eRet = OMX_ErrorUnsupportedIndex;
-       }
-    }
-  break;
+                else {
+                    DEBUG_PRINT_ERROR("get_parameter: unsupported extradata index (0x%x)",
+                            pParam->nIndex);
+                    eRet = OMX_ErrorUnsupportedIndex;
+                }
+                break;
+            }
+        case QOMX_IndexParamVideoLTRCountRangeSupported:
+            {
+                DEBUG_PRINT_HIGH("get_parameter: QOMX_IndexParamVideoLTRCountRangeSupported");
+                QOMX_EXTNINDEX_RANGETYPE *pParam = (QOMX_EXTNINDEX_RANGETYPE *)paramData;
+                if (pParam->nPortIndex == PORT_INDEX_OUT) {
+                    OMX_U32 min = 0, max = 0, step_size = 0;
+                    if (dev_get_capability_ltrcount(&min, &max, &step_size)) {
+                        pParam->nMin = min;
+                        pParam->nMax = max;
+                        pParam->nStepSize = step_size;
+                    } else {
+                        DEBUG_PRINT_ERROR("get_parameter: get_capability_ltrcount failed");
+                        eRet = OMX_ErrorUndefined;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("LTR count range is valid for output port only");
+                    eRet = OMX_ErrorUnsupportedIndex;
+                }
+            }
+            break;
 #endif
-  case QOMX_IndexParamVideoSyntaxHdr:
-    {
-       DEBUG_PRINT_HIGH("QOMX_IndexParamVideoSyntaxHdr");
-       QOMX_EXTNINDEX_PARAMTYPE* pParam =
-          reinterpret_cast<QOMX_EXTNINDEX_PARAMTYPE*>(paramData);
-       if (pParam->pData == NULL)
-       {
-         DEBUG_PRINT_ERROR("Error: Data buffer is NULL");
-         eRet = OMX_ErrorBadParameter;
-         break;
-       }
-       if (get_syntaxhdr_enable == false)
-       {
-         DEBUG_PRINT_ERROR("ERROR: get_parameter: Get syntax header disabled");
-         eRet = OMX_ErrorUnsupportedIndex;
-         break;
-       }
-       BITMASK_SET(&m_flags, OMX_COMPONENT_LOADED_START_PENDING);
-       if(dev_loaded_start())
-       {
-         DEBUG_PRINT_LOW("device start successful");
-       }
-       else
-       {
-         DEBUG_PRINT_ERROR("device start failed");
-         BITMASK_CLEAR(&m_flags, OMX_COMPONENT_LOADED_START_PENDING);
-         return OMX_ErrorHardware;
-       }
-       if(dev_get_seq_hdr(pParam->pData,
-            (unsigned)(pParam->nSize - sizeof(QOMX_EXTNINDEX_PARAMTYPE)),
-            (unsigned *)&pParam->nDataSize))
-       {
-         DEBUG_PRINT_HIGH("get syntax header successful (hdrlen = %lu)",
-            pParam->nDataSize);
-         for (unsigned i = 0; i < pParam->nDataSize; i++) {
-           DEBUG_PRINT_LOW("Header[%d] = %x", i, *((char *)pParam->pData + i));
-         }
-       }
-       else
-       {
-         DEBUG_PRINT_ERROR("Error returned from GetSyntaxHeader()");
-         eRet = OMX_ErrorHardware;
-       }
-       BITMASK_SET(&m_flags, OMX_COMPONENT_LOADED_STOP_PENDING);
-       if(dev_loaded_stop())
-       {
-         DEBUG_PRINT_LOW("device stop successful");
-       }
-       else
-       {
-         DEBUG_PRINT_ERROR("device stop failed");
-         BITMASK_CLEAR(&m_flags, OMX_COMPONENT_LOADED_STOP_PENDING);
-         eRet = OMX_ErrorHardware;
-       }
-       break;
-    }
-  case OMX_IndexParamVideoSliceFMO:
-  default:
-    {
-      DEBUG_PRINT_LOW("ERROR: get_parameter: unknown param %08x\n", paramIndex);
-      eRet =OMX_ErrorUnsupportedIndex;
-      break;
+        case QOMX_IndexParamVideoSyntaxHdr:
+            {
+                DEBUG_PRINT_HIGH("QOMX_IndexParamVideoSyntaxHdr");
+                QOMX_EXTNINDEX_PARAMTYPE* pParam =
+                    reinterpret_cast<QOMX_EXTNINDEX_PARAMTYPE*>(paramData);
+                if (pParam->pData == NULL) {
+                    DEBUG_PRINT_ERROR("Error: Data buffer is NULL");
+                    eRet = OMX_ErrorBadParameter;
+                    break;
+                }
+                if (get_syntaxhdr_enable == false) {
+                    DEBUG_PRINT_ERROR("ERROR: get_parameter: Get syntax header disabled");
+                    eRet = OMX_ErrorUnsupportedIndex;
+                    break;
+                }
+                BITMASK_SET(&m_flags, OMX_COMPONENT_LOADED_START_PENDING);
+                if (dev_loaded_start()) {
+                    DEBUG_PRINT_LOW("device start successful");
+                } else {
+                    DEBUG_PRINT_ERROR("device start failed");
+                    BITMASK_CLEAR(&m_flags, OMX_COMPONENT_LOADED_START_PENDING);
+                    return OMX_ErrorHardware;
+                }
+                if (dev_get_seq_hdr(pParam->pData,
+                            (unsigned)(pParam->nSize - sizeof(QOMX_EXTNINDEX_PARAMTYPE)),
+                            (unsigned *)&pParam->nDataSize)) {
+                    DEBUG_PRINT_HIGH("get syntax header successful (hdrlen = %lu)",
+                            pParam->nDataSize);
+                    for (unsigned i = 0; i < pParam->nDataSize; i++) {
+                        DEBUG_PRINT_LOW("Header[%d] = %x", i, *((char *)pParam->pData + i));
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("Error returned from GetSyntaxHeader()");
+                    eRet = OMX_ErrorHardware;
+                }
+                BITMASK_SET(&m_flags, OMX_COMPONENT_LOADED_STOP_PENDING);
+                if (dev_loaded_stop()) {
+                    DEBUG_PRINT_LOW("device stop successful");
+                } else {
+                    DEBUG_PRINT_ERROR("device stop failed");
+                    BITMASK_CLEAR(&m_flags, OMX_COMPONENT_LOADED_STOP_PENDING);
+                    eRet = OMX_ErrorHardware;
+                }
+                break;
+            }
+        case OMX_IndexParamVideoSliceFMO:
+        default:
+            {
+                DEBUG_PRINT_LOW("ERROR: get_parameter: unknown param %08x\n", paramIndex);
+                eRet =OMX_ErrorUnsupportedIndex;
+                break;
+            }
+
     }
 
-  }
-
-  return eRet;
+    return eRet;
 
 }
 /* ======================================================================
-FUNCTION
-  omx_video::GetConfig
+   FUNCTION
+   omx_video::GetConfig
 
-DESCRIPTION
-  OMX Get Config Method implementation.
+   DESCRIPTION
+   OMX Get Config Method implementation.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if successful.
+   RETURN VALUE
+   OMX Error None if successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::get_config(OMX_IN OMX_HANDLETYPE      hComp,
-                                     OMX_IN OMX_INDEXTYPE configIndex,
-                                     OMX_INOUT OMX_PTR     configData)
+        OMX_IN OMX_INDEXTYPE configIndex,
+        OMX_INOUT OMX_PTR     configData)
 {
-  ////////////////////////////////////////////////////////////////
-  // Supported Config Index           Type
-  // =============================================================
-  // OMX_IndexConfigVideoBitrate      OMX_VIDEO_CONFIG_BITRATETYPE
-  // OMX_IndexConfigVideoFramerate    OMX_CONFIG_FRAMERATETYPE
-  // OMX_IndexConfigCommonRotate      OMX_CONFIG_ROTATIONTYPE
-  ////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////
+    // Supported Config Index           Type
+    // =============================================================
+    // OMX_IndexConfigVideoBitrate      OMX_VIDEO_CONFIG_BITRATETYPE
+    // OMX_IndexConfigVideoFramerate    OMX_CONFIG_FRAMERATETYPE
+    // OMX_IndexConfigCommonRotate      OMX_CONFIG_ROTATIONTYPE
+    ////////////////////////////////////////////////////////////////
 
-  if(configData == NULL)
-  {
-    DEBUG_PRINT_ERROR("ERROR: param is null");
-    return OMX_ErrorBadParameter;
-  }
+    if (configData == NULL) {
+        DEBUG_PRINT_ERROR("ERROR: param is null");
+        return OMX_ErrorBadParameter;
+    }
 
-  if(m_state == OMX_StateInvalid)
-  {
-    DEBUG_PRINT_ERROR("ERROR: can't be in invalid state");
-    return OMX_ErrorIncorrectStateOperation;
-  }
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("ERROR: can't be in invalid state");
+        return OMX_ErrorIncorrectStateOperation;
+    }
 
-  //@todo need to validate params
-  switch(configIndex)
-  {
-  case OMX_IndexConfigVideoBitrate:
-    {
-      OMX_VIDEO_CONFIG_BITRATETYPE* pParam = reinterpret_cast<OMX_VIDEO_CONFIG_BITRATETYPE*>(configData);
-      memcpy(pParam, &m_sConfigBitrate, sizeof(m_sConfigBitrate));
-      break;
+    //@todo need to validate params
+    switch (configIndex) {
+        case OMX_IndexConfigVideoBitrate:
+            {
+                OMX_VIDEO_CONFIG_BITRATETYPE* pParam = reinterpret_cast<OMX_VIDEO_CONFIG_BITRATETYPE*>(configData);
+                memcpy(pParam, &m_sConfigBitrate, sizeof(m_sConfigBitrate));
+                break;
+            }
+        case OMX_IndexConfigVideoFramerate:
+            {
+                OMX_CONFIG_FRAMERATETYPE* pParam = reinterpret_cast<OMX_CONFIG_FRAMERATETYPE*>(configData);
+                memcpy(pParam, &m_sConfigFramerate, sizeof(m_sConfigFramerate));
+                break;
+            }
+        case OMX_IndexConfigCommonRotate:
+            {
+                OMX_CONFIG_ROTATIONTYPE* pParam = reinterpret_cast<OMX_CONFIG_ROTATIONTYPE*>(configData);
+                memcpy(pParam, &m_sConfigFrameRotation, sizeof(m_sConfigFrameRotation));
+                break;
+            }
+        case QOMX_IndexConfigVideoIntraperiod:
+            {
+                DEBUG_PRINT_LOW("get_config:QOMX_IndexConfigVideoIntraperiod\n");
+                QOMX_VIDEO_INTRAPERIODTYPE* pParam = reinterpret_cast<QOMX_VIDEO_INTRAPERIODTYPE*>(configData);
+                memcpy(pParam, &m_sIntraperiod, sizeof(m_sIntraperiod));
+                break;
+            }
+        case OMX_IndexConfigVideoAVCIntraPeriod:
+            {
+                OMX_VIDEO_CONFIG_AVCINTRAPERIOD *pParam =
+                    reinterpret_cast<OMX_VIDEO_CONFIG_AVCINTRAPERIOD*>(configData);
+                DEBUG_PRINT_LOW("get_config: OMX_IndexConfigVideoAVCIntraPeriod");
+                memcpy(pParam, &m_sConfigAVCIDRPeriod, sizeof(m_sConfigAVCIDRPeriod));
+                break;
+            }
+        default:
+            DEBUG_PRINT_ERROR("ERROR: unsupported index %d", (int) configIndex);
+            return OMX_ErrorUnsupportedIndex;
     }
-  case OMX_IndexConfigVideoFramerate:
-    {
-      OMX_CONFIG_FRAMERATETYPE* pParam = reinterpret_cast<OMX_CONFIG_FRAMERATETYPE*>(configData);
-      memcpy(pParam, &m_sConfigFramerate, sizeof(m_sConfigFramerate));
-      break;
-    }
-  case OMX_IndexConfigCommonRotate:
-    {
-      OMX_CONFIG_ROTATIONTYPE* pParam = reinterpret_cast<OMX_CONFIG_ROTATIONTYPE*>(configData);
-      memcpy(pParam, &m_sConfigFrameRotation, sizeof(m_sConfigFrameRotation));
-      break;
-    }
-  case QOMX_IndexConfigVideoIntraperiod:
-    {
-      DEBUG_PRINT_LOW("get_config:QOMX_IndexConfigVideoIntraperiod\n");
-      QOMX_VIDEO_INTRAPERIODTYPE* pParam = reinterpret_cast<QOMX_VIDEO_INTRAPERIODTYPE*>(configData);
-      memcpy(pParam, &m_sIntraperiod, sizeof(m_sIntraperiod));
-      break;
-    }
-  case OMX_IndexConfigVideoAVCIntraPeriod:
-    {
-      OMX_VIDEO_CONFIG_AVCINTRAPERIOD *pParam =
-        reinterpret_cast<OMX_VIDEO_CONFIG_AVCINTRAPERIOD*>(configData);
-      DEBUG_PRINT_LOW("get_config: OMX_IndexConfigVideoAVCIntraPeriod");
-      memcpy(pParam, &m_sConfigAVCIDRPeriod, sizeof(m_sConfigAVCIDRPeriod));
-      break;
-    }
-  default:
-    DEBUG_PRINT_ERROR("ERROR: unsupported index %d", (int) configIndex);
-    return OMX_ErrorUnsupportedIndex;
-  }
-  return OMX_ErrorNone;
+    return OMX_ErrorNone;
 
 }
 
 /* ======================================================================
-FUNCTION
-  omx_video::GetExtensionIndex
+   FUNCTION
+   omx_video::GetExtensionIndex
 
-DESCRIPTION
-  OMX GetExtensionIndex method implementaion.  <TBD>
+   DESCRIPTION
+   OMX GetExtensionIndex method implementaion.  <TBD>
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if everything successful.
+   RETURN VALUE
+   OMX Error None if everything successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::get_extension_index(OMX_IN OMX_HANDLETYPE      hComp,
-                                              OMX_IN OMX_STRING      paramName,
-                                              OMX_OUT OMX_INDEXTYPE* indexType)
+        OMX_IN OMX_STRING      paramName,
+        OMX_OUT OMX_INDEXTYPE* indexType)
 {
-  if(m_state == OMX_StateInvalid)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Get Extension Index in Invalid State\n");
-    return OMX_ErrorInvalidState;
-  }
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("ERROR: Get Extension Index in Invalid State\n");
+        return OMX_ErrorInvalidState;
+    }
 #ifdef MAX_RES_1080P
-  if (!strncmp(paramName, "OMX.QCOM.index.param.SliceDeliveryMode",
-      sizeof("OMX.QCOM.index.param.SliceDeliveryMode") - 1)) {
-    *indexType = (OMX_INDEXTYPE)OMX_QcomIndexEnableSliceDeliveryMode;
-    return OMX_ErrorNone;
-  }
+    if (!strncmp(paramName, "OMX.QCOM.index.param.SliceDeliveryMode",
+                sizeof("OMX.QCOM.index.param.SliceDeliveryMode") - 1)) {
+        *indexType = (OMX_INDEXTYPE)OMX_QcomIndexEnableSliceDeliveryMode;
+        return OMX_ErrorNone;
+    }
 #endif
 #ifdef _ANDROID_ICS_
-  if (!strncmp(paramName, "OMX.google.android.index.storeMetaDataInBuffers",sizeof("OMX.google.android.index.storeMetaDataInBuffers") - 1)) {
+    if (!strncmp(paramName, "OMX.google.android.index.storeMetaDataInBuffers",sizeof("OMX.google.android.index.storeMetaDataInBuffers") - 1)) {
         *indexType = (OMX_INDEXTYPE)OMX_QcomIndexParamVideoEncodeMetaBufferMode;
         return OMX_ErrorNone;
-  }
+    }
 #endif
-  return OMX_ErrorNotImplemented;
+    return OMX_ErrorNotImplemented;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_video::GetState
+   FUNCTION
+   omx_video::GetState
 
-DESCRIPTION
-  Returns the state information back to the caller.<TBD>
+   DESCRIPTION
+   Returns the state information back to the caller.<TBD>
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  Error None if everything is successful.
-========================================================================== */
+   RETURN VALUE
+   Error None if everything is successful.
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::get_state(OMX_IN OMX_HANDLETYPE  hComp,
-                                    OMX_OUT OMX_STATETYPE* state)
+        OMX_OUT OMX_STATETYPE* state)
 {
-  *state = m_state;
-  DEBUG_PRINT_LOW("get_state: Returning the state %d\n",*state);
-  return OMX_ErrorNone;
+    *state = m_state;
+    DEBUG_PRINT_LOW("get_state: Returning the state %d\n",*state);
+    return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_video::ComponentTunnelRequest
+   FUNCTION
+   omx_video::ComponentTunnelRequest
 
-DESCRIPTION
-  OMX Component Tunnel Request method implementation. <TBD>
+   DESCRIPTION
+   OMX Component Tunnel Request method implementation. <TBD>
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  OMX Error None if everything successful.
+   RETURN VALUE
+   OMX Error None if everything successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::component_tunnel_request(OMX_IN OMX_HANDLETYPE                hComp,
-                                                   OMX_IN OMX_U32                        port,
-                                                   OMX_IN OMX_HANDLETYPE        peerComponent,
-                                                   OMX_IN OMX_U32                    peerPort,
-                                                   OMX_INOUT OMX_TUNNELSETUPTYPE* tunnelSetup)
+        OMX_IN OMX_U32                        port,
+        OMX_IN OMX_HANDLETYPE        peerComponent,
+        OMX_IN OMX_U32                    peerPort,
+        OMX_INOUT OMX_TUNNELSETUPTYPE* tunnelSetup)
 {
-  DEBUG_PRINT_ERROR("ERROR: component_tunnel_request Not Implemented\n");
-  return OMX_ErrorNotImplemented;
+    DEBUG_PRINT_ERROR("ERROR: component_tunnel_request Not Implemented\n");
+    return OMX_ErrorNotImplemented;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_video::UseInputBuffer
+   FUNCTION
+   omx_video::UseInputBuffer
 
-DESCRIPTION
-  Helper function for Use buffer in the input pin
+   DESCRIPTION
+   Helper function for Use buffer in the input pin
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::use_input_buffer(
-                                          OMX_IN OMX_HANDLETYPE            hComp,
-                                          OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                                          OMX_IN OMX_U32                   port,
-                                          OMX_IN OMX_PTR                   appData,
-                                          OMX_IN OMX_U32                   bytes,
-                                          OMX_IN OMX_U8*                   buffer)
+        OMX_IN OMX_HANDLETYPE            hComp,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                   port,
+        OMX_IN OMX_PTR                   appData,
+        OMX_IN OMX_U32                   bytes,
+        OMX_IN OMX_U8*                   buffer)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
 
-  unsigned   i = 0;
-  unsigned char *buf_addr = NULL;
+    unsigned   i = 0;
+    unsigned char *buf_addr = NULL;
 
-  DEBUG_PRINT_HIGH("use_input_buffer: port = %lu appData = %p bytes = %lu buffer = %p",port,appData,bytes,buffer);
-  if(bytes != m_sInPortDef.nBufferSize)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: use_input_buffer: Size Mismatch!! "
-                      "bytes[%lu] != Port.nBufferSize[%lu]", bytes, m_sInPortDef.nBufferSize);
-    return OMX_ErrorBadParameter;
-  }
-
-  if(!m_inp_mem_ptr)
-  {
-    input_use_buffer = true;
-    m_inp_mem_ptr = (OMX_BUFFERHEADERTYPE*) \
-                    calloc( (sizeof(OMX_BUFFERHEADERTYPE)), m_sInPortDef.nBufferCountActual);
-    if(m_inp_mem_ptr == NULL)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_inp_mem_ptr");
-      return OMX_ErrorInsufficientResources;
-    }
-
-
-    m_pInput_pmem = (struct pmem *) calloc(sizeof (struct pmem), m_sInPortDef.nBufferCountActual);
-    if(m_pInput_pmem == NULL)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_pInput_pmem");
-      return OMX_ErrorInsufficientResources;
-    }
-#ifdef USE_ION
-    m_pInput_ion = (struct venc_ion *) calloc(sizeof (struct venc_ion), m_sInPortDef.nBufferCountActual);
-    if(m_pInput_ion == NULL)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_pInput_ion");
-      return OMX_ErrorInsufficientResources;
-    }
-#endif
-
-    for(i=0; i< m_sInPortDef.nBufferCountActual; i++)
-    {
-      m_pInput_pmem[i].fd = -1;
-#ifdef USE_ION
-      m_pInput_ion[i].ion_device_fd =-1;
-      m_pInput_ion[i].fd_ion_data.fd =-1;
-      m_pInput_ion[i].ion_alloc_data.handle=NULL;
-#endif
-    }
-
-  }
-
-  for(i=0; i< m_sInPortDef.nBufferCountActual; i++)
-  {
-    if(BITMASK_ABSENT(&m_inp_bm_count,i))
-    {
-      break;
-    }
-  }
-
-  if(i < m_sInPortDef.nBufferCountActual)
-  {
-
-    *bufferHdr = (m_inp_mem_ptr + i);
-    BITMASK_SET(&m_inp_bm_count,i);
-
-    (*bufferHdr)->pBuffer           = (OMX_U8 *)buffer;
-    (*bufferHdr)->nSize             = sizeof(OMX_BUFFERHEADERTYPE);
-    (*bufferHdr)->nVersion.nVersion = OMX_SPEC_VERSION;
-    (*bufferHdr)->nAllocLen         = m_sInPortDef.nBufferSize;
-    (*bufferHdr)->pAppPrivate       = appData;
-    (*bufferHdr)->nInputPortIndex   = PORT_INDEX_IN;
-
-    if(!m_use_input_pmem)
-    {
-#ifdef USE_ION
-#ifdef _MSM8974_
-      m_pInput_ion[i].ion_device_fd = alloc_map_ion_memory(m_sInPortDef.nBufferSize,
-                                      &m_pInput_ion[i].ion_alloc_data,
-                                      &m_pInput_ion[i].fd_ion_data,0);
-#else
-      m_pInput_ion[i].ion_device_fd = alloc_map_ion_memory(m_sInPortDef.nBufferSize,
-                                      &m_pInput_ion[i].ion_alloc_data,
-                                      &m_pInput_ion[i].fd_ion_data,ION_FLAG_CACHED);
-#endif
-      if(m_pInput_ion[i].ion_device_fd < 0) {
-        DEBUG_PRINT_ERROR("\nERROR:ION device open() Failed");
-        return OMX_ErrorInsufficientResources;
-      }
-      m_pInput_pmem[i].fd = m_pInput_ion[i].fd_ion_data.fd;
-#else
-      m_pInput_pmem[i].fd = open (MEM_DEVICE,O_RDWR);
-      if(m_pInput_pmem[i].fd == 0)
-      {
-        m_pInput_pmem[i].fd = open (MEM_DEVICE,O_RDWR);
-      }
-
-      if(m_pInput_pmem[i] .fd < 0)
-      {
-        DEBUG_PRINT_ERROR("\nERROR: /dev/pmem_adsp open() Failed");
-        return OMX_ErrorInsufficientResources;
-      }
-#endif
-      m_pInput_pmem[i].size = m_sInPortDef.nBufferSize;
-      m_pInput_pmem[i].offset = 0;
-      m_pInput_pmem[i].buffer = (unsigned char *)mmap(NULL,m_pInput_pmem[i].size,PROT_READ|PROT_WRITE,
-                                                      MAP_SHARED,m_pInput_pmem[i].fd,0);
-
-      if(m_pInput_pmem[i].buffer == MAP_FAILED)
-      {
-        DEBUG_PRINT_ERROR("\nERROR: mmap() Failed");
-        close(m_pInput_pmem[i].fd);
-#ifdef USE_ION
-        free_ion_memory(&m_pInput_ion[i]);
-#endif
-        return OMX_ErrorInsufficientResources;
-      }
-    }
-    else
-    {
-      OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pParam = reinterpret_cast<OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *>((*bufferHdr)->pAppPrivate);
-      DEBUG_PRINT_LOW("Inside qcom_ext with luma:(fd:%d,offset:0x%x)", pParam->pmem_fd, pParam->offset);
-
-      if(pParam)
-      {
-        m_pInput_pmem[i].fd = pParam->pmem_fd;
-        m_pInput_pmem[i].offset = pParam->offset;
-        m_pInput_pmem[i].size = m_sInPortDef.nBufferSize;
-        m_pInput_pmem[i].buffer = (unsigned char *)buffer;
-        DEBUG_PRINT_LOW("\n DBG:: pParam->pmem_fd = %u, pParam->offset = %u",
-            pParam->pmem_fd, pParam->offset);
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: Invalid AppData given for PMEM i/p UseBuffer case");
+    DEBUG_PRINT_HIGH("use_input_buffer: port = %lu appData = %p bytes = %lu buffer = %p",port,appData,bytes,buffer);
+    if (bytes != m_sInPortDef.nBufferSize) {
+        DEBUG_PRINT_ERROR("\nERROR: use_input_buffer: Size Mismatch!! "
+                "bytes[%lu] != Port.nBufferSize[%lu]", bytes, m_sInPortDef.nBufferSize);
         return OMX_ErrorBadParameter;
-      }
     }
 
-    DEBUG_PRINT_LOW("\nuse_inp:: bufhdr = %p, pBuffer = %p, m_pInput_pmem[i].buffer = %p",
+    if (!m_inp_mem_ptr) {
+        input_use_buffer = true;
+        m_inp_mem_ptr = (OMX_BUFFERHEADERTYPE*) \
+                        calloc( (sizeof(OMX_BUFFERHEADERTYPE)), m_sInPortDef.nBufferCountActual);
+        if (m_inp_mem_ptr == NULL) {
+            DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_inp_mem_ptr");
+            return OMX_ErrorInsufficientResources;
+        }
+
+
+        m_pInput_pmem = (struct pmem *) calloc(sizeof (struct pmem), m_sInPortDef.nBufferCountActual);
+        if (m_pInput_pmem == NULL) {
+            DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_pInput_pmem");
+            return OMX_ErrorInsufficientResources;
+        }
+#ifdef USE_ION
+        m_pInput_ion = (struct venc_ion *) calloc(sizeof (struct venc_ion), m_sInPortDef.nBufferCountActual);
+        if (m_pInput_ion == NULL) {
+            DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_pInput_ion");
+            return OMX_ErrorInsufficientResources;
+        }
+#endif
+
+        for (i=0; i< m_sInPortDef.nBufferCountActual; i++) {
+            m_pInput_pmem[i].fd = -1;
+#ifdef USE_ION
+            m_pInput_ion[i].ion_device_fd =-1;
+            m_pInput_ion[i].fd_ion_data.fd =-1;
+            m_pInput_ion[i].ion_alloc_data.handle=NULL;
+#endif
+        }
+
+    }
+
+    for (i=0; i< m_sInPortDef.nBufferCountActual; i++) {
+        if (BITMASK_ABSENT(&m_inp_bm_count,i)) {
+            break;
+        }
+    }
+
+    if (i < m_sInPortDef.nBufferCountActual) {
+
+        *bufferHdr = (m_inp_mem_ptr + i);
+        BITMASK_SET(&m_inp_bm_count,i);
+
+        (*bufferHdr)->pBuffer           = (OMX_U8 *)buffer;
+        (*bufferHdr)->nSize             = sizeof(OMX_BUFFERHEADERTYPE);
+        (*bufferHdr)->nVersion.nVersion = OMX_SPEC_VERSION;
+        (*bufferHdr)->nAllocLen         = m_sInPortDef.nBufferSize;
+        (*bufferHdr)->pAppPrivate       = appData;
+        (*bufferHdr)->nInputPortIndex   = PORT_INDEX_IN;
+
+        if (!m_use_input_pmem) {
+#ifdef USE_ION
+#ifdef _MSM8974_
+            m_pInput_ion[i].ion_device_fd = alloc_map_ion_memory(m_sInPortDef.nBufferSize,
+                    &m_pInput_ion[i].ion_alloc_data,
+                    &m_pInput_ion[i].fd_ion_data,0);
+#else
+            m_pInput_ion[i].ion_device_fd = alloc_map_ion_memory(m_sInPortDef.nBufferSize,
+                    &m_pInput_ion[i].ion_alloc_data,
+                    &m_pInput_ion[i].fd_ion_data,ION_FLAG_CACHED);
+#endif
+            if (m_pInput_ion[i].ion_device_fd < 0) {
+                DEBUG_PRINT_ERROR("\nERROR:ION device open() Failed");
+                return OMX_ErrorInsufficientResources;
+            }
+            m_pInput_pmem[i].fd = m_pInput_ion[i].fd_ion_data.fd;
+#else
+            m_pInput_pmem[i].fd = open (MEM_DEVICE,O_RDWR);
+            if (m_pInput_pmem[i].fd == 0) {
+                m_pInput_pmem[i].fd = open (MEM_DEVICE,O_RDWR);
+            }
+
+            if (m_pInput_pmem[i] .fd < 0) {
+                DEBUG_PRINT_ERROR("\nERROR: /dev/pmem_adsp open() Failed");
+                return OMX_ErrorInsufficientResources;
+            }
+#endif
+            m_pInput_pmem[i].size = m_sInPortDef.nBufferSize;
+            m_pInput_pmem[i].offset = 0;
+            m_pInput_pmem[i].buffer = (unsigned char *)mmap(NULL,m_pInput_pmem[i].size,PROT_READ|PROT_WRITE,
+                    MAP_SHARED,m_pInput_pmem[i].fd,0);
+
+            if (m_pInput_pmem[i].buffer == MAP_FAILED) {
+                DEBUG_PRINT_ERROR("\nERROR: mmap() Failed");
+                close(m_pInput_pmem[i].fd);
+#ifdef USE_ION
+                free_ion_memory(&m_pInput_ion[i]);
+#endif
+                return OMX_ErrorInsufficientResources;
+            }
+        } else {
+            OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pParam = reinterpret_cast<OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *>((*bufferHdr)->pAppPrivate);
+            DEBUG_PRINT_LOW("Inside qcom_ext with luma:(fd:%d,offset:0x%x)", pParam->pmem_fd, pParam->offset);
+
+            if (pParam) {
+                m_pInput_pmem[i].fd = pParam->pmem_fd;
+                m_pInput_pmem[i].offset = pParam->offset;
+                m_pInput_pmem[i].size = m_sInPortDef.nBufferSize;
+                m_pInput_pmem[i].buffer = (unsigned char *)buffer;
+                DEBUG_PRINT_LOW("\n DBG:: pParam->pmem_fd = %u, pParam->offset = %u",
+                        pParam->pmem_fd, pParam->offset);
+            } else {
+                DEBUG_PRINT_ERROR("ERROR: Invalid AppData given for PMEM i/p UseBuffer case");
+                return OMX_ErrorBadParameter;
+            }
+        }
+
+        DEBUG_PRINT_LOW("\nuse_inp:: bufhdr = %p, pBuffer = %p, m_pInput_pmem[i].buffer = %p",
                 (*bufferHdr), (*bufferHdr)->pBuffer, m_pInput_pmem[i].buffer);
-    if( dev_use_buf(&m_pInput_pmem[i],PORT_INDEX_IN,i) != true)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: dev_use_buf() Failed for i/p buf");
-      return OMX_ErrorInsufficientResources;
+        if ( dev_use_buf(&m_pInput_pmem[i],PORT_INDEX_IN,i) != true) {
+            DEBUG_PRINT_ERROR("\nERROR: dev_use_buf() Failed for i/p buf");
+            return OMX_ErrorInsufficientResources;
+        }
+    } else {
+        DEBUG_PRINT_ERROR("\nERROR: All buffers are already used, invalid use_buf call for "
+                "index = %u", i);
+        eRet = OMX_ErrorInsufficientResources;
     }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("\nERROR: All buffers are already used, invalid use_buf call for "
-                      "index = %u", i);
-    eRet = OMX_ErrorInsufficientResources;
-  }
 
-  return eRet;
+    return eRet;
 }
 
 
 
 /* ======================================================================
-FUNCTION
-  omx_video::UseOutputBuffer
+   FUNCTION
+   omx_video::UseOutputBuffer
 
-DESCRIPTION
-  Helper function for Use buffer in the input pin
+   DESCRIPTION
+   Helper function for Use buffer in the input pin
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::use_output_buffer(
-                                           OMX_IN OMX_HANDLETYPE            hComp,
-                                           OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                                           OMX_IN OMX_U32                   port,
-                                           OMX_IN OMX_PTR                   appData,
-                                           OMX_IN OMX_U32                   bytes,
-                                           OMX_IN OMX_U8*                   buffer)
+        OMX_IN OMX_HANDLETYPE            hComp,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                   port,
+        OMX_IN OMX_PTR                   appData,
+        OMX_IN OMX_U32                   bytes,
+        OMX_IN OMX_U8*                   buffer)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  OMX_BUFFERHEADERTYPE       *bufHdr= NULL; // buffer header
-  unsigned                         i= 0; // Temporary counter
-  unsigned char *buf_addr = NULL;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_BUFFERHEADERTYPE       *bufHdr= NULL; // buffer header
+    unsigned                         i= 0; // Temporary counter
+    unsigned char *buf_addr = NULL;
 #ifdef _MSM8974_
-  int align_size;
+    int align_size;
 #endif
 
-  DEBUG_PRINT_HIGH("\n Inside use_output_buffer()");
-  if(bytes != m_sOutPortDef.nBufferSize)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: use_output_buffer: Size Mismatch!! "
-                      "bytes[%lu] != Port.nBufferSize[%lu]", bytes, m_sOutPortDef.nBufferSize);
-    return OMX_ErrorBadParameter;
-  }
-
-  if(!m_out_mem_ptr)
-  {
-    output_use_buffer = true;
-    int nBufHdrSize        = 0;
-
-    DEBUG_PRINT_LOW("Allocating First Output Buffer(%d)\n",m_sOutPortDef.nBufferCountActual);
-    nBufHdrSize        = m_sOutPortDef.nBufferCountActual * sizeof(OMX_BUFFERHEADERTYPE);
-    /*
-     * Memory for output side involves the following:
-     * 1. Array of Buffer Headers
-     * 2. Bitmask array to hold the buffer allocation details
-     * In order to minimize the memory management entire allocation
-     * is done in one step.
-     */
-    //OMX Buffer header
-    m_out_mem_ptr = (OMX_BUFFERHEADERTYPE  *)calloc(nBufHdrSize,1);
-    if(m_out_mem_ptr == NULL)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_out_mem_ptr");
-      return OMX_ErrorInsufficientResources;
+    DEBUG_PRINT_HIGH("\n Inside use_output_buffer()");
+    if (bytes != m_sOutPortDef.nBufferSize) {
+        DEBUG_PRINT_ERROR("\nERROR: use_output_buffer: Size Mismatch!! "
+                "bytes[%lu] != Port.nBufferSize[%lu]", bytes, m_sOutPortDef.nBufferSize);
+        return OMX_ErrorBadParameter;
     }
 
-    m_pOutput_pmem = (struct pmem *) calloc(sizeof (struct pmem), m_sOutPortDef.nBufferCountActual);
-    if(m_pOutput_pmem == NULL)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_pOutput_pmem");
-      return OMX_ErrorInsufficientResources;
-    }
+    if (!m_out_mem_ptr) {
+        output_use_buffer = true;
+        int nBufHdrSize        = 0;
+
+        DEBUG_PRINT_LOW("Allocating First Output Buffer(%d)\n",m_sOutPortDef.nBufferCountActual);
+        nBufHdrSize        = m_sOutPortDef.nBufferCountActual * sizeof(OMX_BUFFERHEADERTYPE);
+        /*
+         * Memory for output side involves the following:
+         * 1. Array of Buffer Headers
+         * 2. Bitmask array to hold the buffer allocation details
+         * In order to minimize the memory management entire allocation
+         * is done in one step.
+         */
+        //OMX Buffer header
+        m_out_mem_ptr = (OMX_BUFFERHEADERTYPE  *)calloc(nBufHdrSize,1);
+        if (m_out_mem_ptr == NULL) {
+            DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_out_mem_ptr");
+            return OMX_ErrorInsufficientResources;
+        }
+
+        m_pOutput_pmem = (struct pmem *) calloc(sizeof (struct pmem), m_sOutPortDef.nBufferCountActual);
+        if (m_pOutput_pmem == NULL) {
+            DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_pOutput_pmem");
+            return OMX_ErrorInsufficientResources;
+        }
 #ifdef USE_ION
-    m_pOutput_ion = (struct venc_ion *) calloc(sizeof (struct venc_ion), m_sOutPortDef.nBufferCountActual);
-    if(m_pOutput_ion == NULL)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_pOutput_ion");
-      return OMX_ErrorInsufficientResources;
-    }
+        m_pOutput_ion = (struct venc_ion *) calloc(sizeof (struct venc_ion), m_sOutPortDef.nBufferCountActual);
+        if (m_pOutput_ion == NULL) {
+            DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_pOutput_ion");
+            return OMX_ErrorInsufficientResources;
+        }
 #endif
-    if(m_out_mem_ptr)
-    {
-      bufHdr          =  m_out_mem_ptr;
-      DEBUG_PRINT_LOW("Memory Allocation Succeeded for OUT port%p\n",m_out_mem_ptr);
-      // Settting the entire storage nicely
-      for(i=0; i < m_sOutPortDef.nBufferCountActual ; i++)
-      {
-        bufHdr->nSize              = sizeof(OMX_BUFFERHEADERTYPE);
-        bufHdr->nVersion.nVersion  = OMX_SPEC_VERSION;
-        bufHdr->nAllocLen          = bytes;
-        bufHdr->nFilledLen         = 0;
-        bufHdr->pAppPrivate        = appData;
-        bufHdr->nOutputPortIndex   = PORT_INDEX_OUT;
-        bufHdr->pBuffer            = NULL;
-        bufHdr++;
-        m_pOutput_pmem[i].fd = -1;
+        if (m_out_mem_ptr) {
+            bufHdr          =  m_out_mem_ptr;
+            DEBUG_PRINT_LOW("Memory Allocation Succeeded for OUT port%p\n",m_out_mem_ptr);
+            // Settting the entire storage nicely
+            for (i=0; i < m_sOutPortDef.nBufferCountActual ; i++) {
+                bufHdr->nSize              = sizeof(OMX_BUFFERHEADERTYPE);
+                bufHdr->nVersion.nVersion  = OMX_SPEC_VERSION;
+                bufHdr->nAllocLen          = bytes;
+                bufHdr->nFilledLen         = 0;
+                bufHdr->pAppPrivate        = appData;
+                bufHdr->nOutputPortIndex   = PORT_INDEX_OUT;
+                bufHdr->pBuffer            = NULL;
+                bufHdr++;
+                m_pOutput_pmem[i].fd = -1;
 #ifdef USE_ION
-        m_pOutput_ion[i].ion_device_fd =-1;
-        m_pOutput_ion[i].fd_ion_data.fd=-1;
-        m_pOutput_ion[i].ion_alloc_data.handle =NULL;
+                m_pOutput_ion[i].ion_device_fd =-1;
+                m_pOutput_ion[i].fd_ion_data.fd=-1;
+                m_pOutput_ion[i].ion_alloc_data.handle =NULL;
 #endif
-      }
+            }
+        } else {
+            DEBUG_PRINT_ERROR("ERROR: Output buf mem alloc failed[0x%p]\n",m_out_mem_ptr);
+            eRet =  OMX_ErrorInsufficientResources;
+        }
     }
-    else
-    {
-      DEBUG_PRINT_ERROR("ERROR: Output buf mem alloc failed[0x%p]\n",m_out_mem_ptr);
-      eRet =  OMX_ErrorInsufficientResources;
+
+    for (i=0; i< m_sOutPortDef.nBufferCountActual; i++) {
+        if (BITMASK_ABSENT(&m_out_bm_count,i)) {
+            break;
+        }
     }
-  }
 
-  for(i=0; i< m_sOutPortDef.nBufferCountActual; i++)
-  {
-    if(BITMASK_ABSENT(&m_out_bm_count,i))
-    {
-      break;
-    }
-  }
+    if (eRet == OMX_ErrorNone) {
+        if (i < m_sOutPortDef.nBufferCountActual) {
+            *bufferHdr = (m_out_mem_ptr + i );
+            (*bufferHdr)->pBuffer = (OMX_U8 *)buffer;
+            (*bufferHdr)->pAppPrivate = appData;
+            BITMASK_SET(&m_out_bm_count,i);
 
-  if(eRet == OMX_ErrorNone)
-  {
-    if(i < m_sOutPortDef.nBufferCountActual)
-    {
-      *bufferHdr = (m_out_mem_ptr + i );
-      (*bufferHdr)->pBuffer = (OMX_U8 *)buffer;
-	  (*bufferHdr)->pAppPrivate = appData;
-      BITMASK_SET(&m_out_bm_count,i);
-
-      if(!m_use_output_pmem)
-      {
+            if (!m_use_output_pmem) {
 #ifdef USE_ION
 #ifdef _MSM8974_
-      align_size = ((m_sOutPortDef.nBufferSize + 4095)/4096) * 4096;
-      m_pOutput_ion[i].ion_device_fd = alloc_map_ion_memory(align_size,
-                                         &m_pOutput_ion[i].ion_alloc_data,
-                                         &m_pOutput_ion[i].fd_ion_data,0);
+                align_size = ((m_sOutPortDef.nBufferSize + 4095)/4096) * 4096;
+                m_pOutput_ion[i].ion_device_fd = alloc_map_ion_memory(align_size,
+                        &m_pOutput_ion[i].ion_alloc_data,
+                        &m_pOutput_ion[i].fd_ion_data,0);
 #else
-      m_pOutput_ion[i].ion_device_fd = alloc_map_ion_memory(
-                                         m_sOutPortDef.nBufferSize,
-                                         &m_pOutput_ion[i].ion_alloc_data,
-                                         &m_pOutput_ion[i].fd_ion_data,ION_FLAG_CACHED);
+                m_pOutput_ion[i].ion_device_fd = alloc_map_ion_memory(
+                        m_sOutPortDef.nBufferSize,
+                        &m_pOutput_ion[i].ion_alloc_data,
+                        &m_pOutput_ion[i].fd_ion_data,ION_FLAG_CACHED);
 #endif
-      if(m_pOutput_ion[i].ion_device_fd < 0) {
-        DEBUG_PRINT_ERROR("\nERROR:ION device open() Failed");
-        return OMX_ErrorInsufficientResources;
-      }
-      m_pOutput_pmem[i].fd = m_pOutput_ion[i].fd_ion_data.fd;
+                if (m_pOutput_ion[i].ion_device_fd < 0) {
+                    DEBUG_PRINT_ERROR("\nERROR:ION device open() Failed");
+                    return OMX_ErrorInsufficientResources;
+                }
+                m_pOutput_pmem[i].fd = m_pOutput_ion[i].fd_ion_data.fd;
 #else
-        m_pOutput_pmem[i].fd = open (MEM_DEVICE,O_RDWR);
+                m_pOutput_pmem[i].fd = open (MEM_DEVICE,O_RDWR);
 
-        if(m_pOutput_pmem[i].fd == 0)
-        {
-          m_pOutput_pmem[i].fd = open (MEM_DEVICE,O_RDWR);
-        }
+                if (m_pOutput_pmem[i].fd == 0) {
+                    m_pOutput_pmem[i].fd = open (MEM_DEVICE,O_RDWR);
+                }
 
-        if(m_pOutput_pmem[i].fd < 0)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: /dev/pmem_adsp open() Failed");
-          return OMX_ErrorInsufficientResources;
-        }
+                if (m_pOutput_pmem[i].fd < 0) {
+                    DEBUG_PRINT_ERROR("\nERROR: /dev/pmem_adsp open() Failed");
+                    return OMX_ErrorInsufficientResources;
+                }
 #endif
-        m_pOutput_pmem[i].size = m_sOutPortDef.nBufferSize;
-        m_pOutput_pmem[i].offset = 0;
+                m_pOutput_pmem[i].size = m_sOutPortDef.nBufferSize;
+                m_pOutput_pmem[i].offset = 0;
 #ifdef _MSM8974_
-      m_pOutput_pmem[i].buffer = (unsigned char *)mmap(NULL,align_size,PROT_READ|PROT_WRITE,
-                                                       MAP_SHARED,m_pOutput_pmem[i].fd,0);
+                m_pOutput_pmem[i].buffer = (unsigned char *)mmap(NULL,align_size,PROT_READ|PROT_WRITE,
+                        MAP_SHARED,m_pOutput_pmem[i].fd,0);
 #else
-      m_pOutput_pmem[i].buffer = (unsigned char *)mmap(NULL,m_pOutput_pmem[i].size,PROT_READ|PROT_WRITE,
-                                                       MAP_SHARED,m_pOutput_pmem[i].fd,0);
+                m_pOutput_pmem[i].buffer = (unsigned char *)mmap(NULL,m_pOutput_pmem[i].size,PROT_READ|PROT_WRITE,
+                        MAP_SHARED,m_pOutput_pmem[i].fd,0);
 #endif
-        if(m_pOutput_pmem[i].buffer == MAP_FAILED)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: mmap() Failed");
-          close(m_pOutput_pmem[i].fd);
+                if (m_pOutput_pmem[i].buffer == MAP_FAILED) {
+                    DEBUG_PRINT_ERROR("\nERROR: mmap() Failed");
+                    close(m_pOutput_pmem[i].fd);
 #ifdef USE_ION
-          free_ion_memory(&m_pOutput_ion[i]);
+                    free_ion_memory(&m_pOutput_ion[i]);
 #endif
-          return OMX_ErrorInsufficientResources;
-        }
-      }
-      else
-      {
-        OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pParam = reinterpret_cast<OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO*>((*bufferHdr)->pAppPrivate);
-        DEBUG_PRINT_LOW("Inside qcom_ext pParam:0x%x )", pParam);
+                    return OMX_ErrorInsufficientResources;
+                }
+            } else {
+                OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO *pParam = reinterpret_cast<OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO*>((*bufferHdr)->pAppPrivate);
+                DEBUG_PRINT_LOW("Inside qcom_ext pParam:0x%x )", pParam);
 
-        if(pParam)
-        {
-          DEBUG_PRINT_LOW("Inside qcom_ext with luma:(fd:%d,offset:0x%x)", pParam->pmem_fd, pParam->offset);
-          m_pOutput_pmem[i].fd = pParam->pmem_fd;
-          m_pOutput_pmem[i].offset = pParam->offset;
-          m_pOutput_pmem[i].size = m_sOutPortDef.nBufferSize;
-          m_pOutput_pmem[i].buffer = (unsigned char *)buffer;
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("ERROR: Invalid AppData given for PMEM o/p UseBuffer case");
-          return OMX_ErrorBadParameter;
-        }
-        buf_addr = (unsigned char *)buffer;
-      }
+                if (pParam) {
+                    DEBUG_PRINT_LOW("Inside qcom_ext with luma:(fd:%d,offset:0x%x)", pParam->pmem_fd, pParam->offset);
+                    m_pOutput_pmem[i].fd = pParam->pmem_fd;
+                    m_pOutput_pmem[i].offset = pParam->offset;
+                    m_pOutput_pmem[i].size = m_sOutPortDef.nBufferSize;
+                    m_pOutput_pmem[i].buffer = (unsigned char *)buffer;
+                } else {
+                    DEBUG_PRINT_ERROR("ERROR: Invalid AppData given for PMEM o/p UseBuffer case");
+                    return OMX_ErrorBadParameter;
+                }
+                buf_addr = (unsigned char *)buffer;
+            }
 
-      DEBUG_PRINT_LOW("\n use_out:: bufhdr = %p, pBuffer = %p, m_pOutput_pmem[i].buffer = %p",
-                (*bufferHdr), (*bufferHdr)->pBuffer, m_pOutput_pmem[i].buffer);
-      if(dev_use_buf(&m_pOutput_pmem[i],PORT_INDEX_OUT,i) != true)
-      {
-        DEBUG_PRINT_ERROR("ERROR: dev_use_buf Failed for o/p buf");
-        return OMX_ErrorInsufficientResources;
-      }
+            DEBUG_PRINT_LOW("\n use_out:: bufhdr = %p, pBuffer = %p, m_pOutput_pmem[i].buffer = %p",
+                    (*bufferHdr), (*bufferHdr)->pBuffer, m_pOutput_pmem[i].buffer);
+            if (dev_use_buf(&m_pOutput_pmem[i],PORT_INDEX_OUT,i) != true) {
+                DEBUG_PRINT_ERROR("ERROR: dev_use_buf Failed for o/p buf");
+                return OMX_ErrorInsufficientResources;
+            }
+        } else {
+            DEBUG_PRINT_ERROR("ERROR: All o/p Buffers have been Used, invalid use_buf call for "
+                    "index = %u", i);
+            eRet = OMX_ErrorInsufficientResources;
+        }
     }
-    else
-    {
-      DEBUG_PRINT_ERROR("ERROR: All o/p Buffers have been Used, invalid use_buf call for "
-                      "index = %u", i);
-      eRet = OMX_ErrorInsufficientResources;
-    }
-  }
-  return eRet;
+    return eRet;
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_video::UseBuffer
+   FUNCTION
+   omx_video::UseBuffer
 
-DESCRIPTION
-  OMX Use Buffer method implementation.
+   DESCRIPTION
+   OMX Use Buffer method implementation.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None , if everything successful.
+   RETURN VALUE
+   OMX Error None , if everything successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::use_buffer(
-                                    OMX_IN OMX_HANDLETYPE            hComp,
-                                    OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                                    OMX_IN OMX_U32                   port,
-                                    OMX_IN OMX_PTR                   appData,
-                                    OMX_IN OMX_U32                   bytes,
-                                    OMX_IN OMX_U8*                   buffer)
+        OMX_IN OMX_HANDLETYPE            hComp,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                   port,
+        OMX_IN OMX_PTR                   appData,
+        OMX_IN OMX_U32                   bytes,
+        OMX_IN OMX_U8*                   buffer)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  if(m_state == OMX_StateInvalid)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Use Buffer in Invalid State\n");
-    return OMX_ErrorInvalidState;
-  }
-  if(port == PORT_INDEX_IN)
-  {
-    eRet = use_input_buffer(hComp,bufferHdr,port,appData,bytes,buffer);
-  }
-  else if(port == PORT_INDEX_OUT)
-  {
-    eRet = use_output_buffer(hComp,bufferHdr,port,appData,bytes,buffer);
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("ERROR: Invalid Port Index received %d\n",(int)port);
-    eRet = OMX_ErrorBadPortIndex;
-  }
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("ERROR: Use Buffer in Invalid State\n");
+        return OMX_ErrorInvalidState;
+    }
+    if (port == PORT_INDEX_IN) {
+        eRet = use_input_buffer(hComp,bufferHdr,port,appData,bytes,buffer);
+    } else if (port == PORT_INDEX_OUT) {
+        eRet = use_output_buffer(hComp,bufferHdr,port,appData,bytes,buffer);
+    } else {
+        DEBUG_PRINT_ERROR("ERROR: Invalid Port Index received %d\n",(int)port);
+        eRet = OMX_ErrorBadPortIndex;
+    }
 
-  if(eRet == OMX_ErrorNone)
-  {
-    if(allocate_done())
-    {
-      if(BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
-      {
-        // Send the callback now
-        BITMASK_CLEAR((&m_flags),OMX_COMPONENT_IDLE_PENDING);
-        post_event(OMX_CommandStateSet,OMX_StateIdle,
-                   OMX_COMPONENT_GENERATE_EVENT);
-      }
-    }
-    if(port == PORT_INDEX_IN && m_sInPortDef.bPopulated)
-    {
-      if(BITMASK_PRESENT(&m_flags,OMX_COMPONENT_INPUT_ENABLE_PENDING))
-      {
-        BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_ENABLE_PENDING);
-        post_event(OMX_CommandPortEnable,
-                   PORT_INDEX_IN,
-                   OMX_COMPONENT_GENERATE_EVENT);
-      }
+    if (eRet == OMX_ErrorNone) {
+        if (allocate_done()) {
+            if (BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING)) {
+                // Send the callback now
+                BITMASK_CLEAR((&m_flags),OMX_COMPONENT_IDLE_PENDING);
+                post_event(OMX_CommandStateSet,OMX_StateIdle,
+                        OMX_COMPONENT_GENERATE_EVENT);
+            }
+        }
+        if (port == PORT_INDEX_IN && m_sInPortDef.bPopulated) {
+            if (BITMASK_PRESENT(&m_flags,OMX_COMPONENT_INPUT_ENABLE_PENDING)) {
+                BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_ENABLE_PENDING);
+                post_event(OMX_CommandPortEnable,
+                        PORT_INDEX_IN,
+                        OMX_COMPONENT_GENERATE_EVENT);
+            }
 
+        } else if (port == PORT_INDEX_OUT && m_sOutPortDef.bPopulated) {
+            if (BITMASK_PRESENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING)) {
+                BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
+                post_event(OMX_CommandPortEnable,
+                        PORT_INDEX_OUT,
+                        OMX_COMPONENT_GENERATE_EVENT);
+                m_event_port_settings_sent = false;
+            }
+        }
     }
-    else if(port == PORT_INDEX_OUT && m_sOutPortDef.bPopulated)
-    {
-      if(BITMASK_PRESENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING))
-      {
-        BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
-        post_event(OMX_CommandPortEnable,
-                   PORT_INDEX_OUT,
-                   OMX_COMPONENT_GENERATE_EVENT);
-        m_event_port_settings_sent = false;
-      }
-    }
-  }
-  return eRet;
+    return eRet;
 }
 
 OMX_ERRORTYPE omx_video::free_input_buffer(OMX_BUFFERHEADERTYPE *bufferHdr)
 {
-  unsigned int index = 0;
-  OMX_U8 *temp_buff ;
+    unsigned int index = 0;
+    OMX_U8 *temp_buff ;
 
-  if(bufferHdr == NULL || m_inp_mem_ptr == NULL)
-  {
-    DEBUG_PRINT_ERROR("ERROR: free_input: Invalid bufferHdr[%p] or m_inp_mem_ptr[%p]",
-      bufferHdr, m_inp_mem_ptr);
-    return OMX_ErrorBadParameter;
-  }
+    if (bufferHdr == NULL || m_inp_mem_ptr == NULL) {
+        DEBUG_PRINT_ERROR("ERROR: free_input: Invalid bufferHdr[%p] or m_inp_mem_ptr[%p]",
+                bufferHdr, m_inp_mem_ptr);
+        return OMX_ErrorBadParameter;
+    }
 
-  index = bufferHdr - ((!mUseProxyColorFormat)?m_inp_mem_ptr:meta_buffer_hdr);
+    index = bufferHdr - ((!mUseProxyColorFormat)?m_inp_mem_ptr:meta_buffer_hdr);
 #ifdef _ANDROID_ICS_
-  if(meta_mode_enable)
-  {
-    if(index < m_sInPortDef.nBufferCountActual)
-    {
-      memset(&meta_buffer_hdr[index], 0, sizeof(meta_buffer_hdr[index]));
-      memset(&meta_buffers[index], 0, sizeof(meta_buffers[index]));
+    if (meta_mode_enable) {
+        if (index < m_sInPortDef.nBufferCountActual) {
+            memset(&meta_buffer_hdr[index], 0, sizeof(meta_buffer_hdr[index]));
+            memset(&meta_buffers[index], 0, sizeof(meta_buffers[index]));
+        }
+        if (!mUseProxyColorFormat)
+            return OMX_ErrorNone;
+        else
+            c2d_conv.close();
     }
-    if(!mUseProxyColorFormat)
-      return OMX_ErrorNone;
-    else
-      c2d_conv.close();
-  }
 #endif
-  if(index < m_sInPortDef.nBufferCountActual && !mUseProxyColorFormat &&
-     dev_free_buf(&m_pInput_pmem[index],PORT_INDEX_IN) != true)
-  {
-    DEBUG_PRINT_LOW("\nERROR: dev_free_buf() Failed for i/p buf");
-  }
+    if (index < m_sInPortDef.nBufferCountActual && !mUseProxyColorFormat &&
+            dev_free_buf(&m_pInput_pmem[index],PORT_INDEX_IN) != true) {
+        DEBUG_PRINT_LOW("\nERROR: dev_free_buf() Failed for i/p buf");
+    }
 
-  if(index < m_sInPortDef.nBufferCountActual && m_pInput_pmem)
-  {
-    if(m_pInput_pmem[index].fd > 0 && input_use_buffer == false)
-    {
-      DEBUG_PRINT_LOW("\n FreeBuffer:: i/p AllocateBuffer case");
-      munmap (m_pInput_pmem[index].buffer,m_pInput_pmem[index].size);
-      close (m_pInput_pmem[index].fd);
+    if (index < m_sInPortDef.nBufferCountActual && m_pInput_pmem) {
+        if (m_pInput_pmem[index].fd > 0 && input_use_buffer == false) {
+            DEBUG_PRINT_LOW("\n FreeBuffer:: i/p AllocateBuffer case");
+            munmap (m_pInput_pmem[index].buffer,m_pInput_pmem[index].size);
+            close (m_pInput_pmem[index].fd);
 #ifdef USE_ION
-      free_ion_memory(&m_pInput_ion[index]);
+            free_ion_memory(&m_pInput_ion[index]);
 #endif
-      m_pInput_pmem[index].fd = -1;
-    }
-    else if(m_pInput_pmem[index].fd > 0 && (input_use_buffer == true &&
-      m_use_input_pmem == OMX_FALSE))
-    {
-      DEBUG_PRINT_LOW("\n FreeBuffer:: i/p Heap UseBuffer case");
-      if(dev_free_buf(&m_pInput_pmem[index],PORT_INDEX_IN) != true)
-      {
-        DEBUG_PRINT_ERROR("\nERROR: dev_free_buf() Failed for i/p buf");
-      }
-      munmap (m_pInput_pmem[index].buffer,m_pInput_pmem[index].size);
-      close (m_pInput_pmem[index].fd);
+            m_pInput_pmem[index].fd = -1;
+        } else if (m_pInput_pmem[index].fd > 0 && (input_use_buffer == true &&
+                    m_use_input_pmem == OMX_FALSE)) {
+            DEBUG_PRINT_LOW("\n FreeBuffer:: i/p Heap UseBuffer case");
+            if (dev_free_buf(&m_pInput_pmem[index],PORT_INDEX_IN) != true) {
+                DEBUG_PRINT_ERROR("\nERROR: dev_free_buf() Failed for i/p buf");
+            }
+            munmap (m_pInput_pmem[index].buffer,m_pInput_pmem[index].size);
+            close (m_pInput_pmem[index].fd);
 #ifdef USE_ION
-      free_ion_memory(&m_pInput_ion[index]);
+            free_ion_memory(&m_pInput_ion[index]);
 #endif
-      m_pInput_pmem[index].fd = -1;
+            m_pInput_pmem[index].fd = -1;
+        } else {
+            DEBUG_PRINT_ERROR("\n FreeBuffer:: fd is invalid or i/p PMEM UseBuffer case");
+        }
     }
-    else
-    {
-      DEBUG_PRINT_ERROR("\n FreeBuffer:: fd is invalid or i/p PMEM UseBuffer case");
-    }
-  }
-  return OMX_ErrorNone;
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_video::free_output_buffer(OMX_BUFFERHEADERTYPE *bufferHdr)
 {
-  unsigned int index = 0;
-  OMX_U8 *temp_buff ;
+    unsigned int index = 0;
+    OMX_U8 *temp_buff ;
 
-  if(bufferHdr == NULL || m_out_mem_ptr == NULL)
-  {
-    DEBUG_PRINT_ERROR("ERROR: free_output: Invalid bufferHdr[%p] or m_out_mem_ptr[%p]",
-      bufferHdr, m_out_mem_ptr);
-    return OMX_ErrorBadParameter;
-  }
-  index = bufferHdr - m_out_mem_ptr;
-
-  if(index < m_sOutPortDef.nBufferCountActual &&
-     dev_free_buf(&m_pOutput_pmem[index],PORT_INDEX_OUT) != true)
-  {
-    DEBUG_PRINT_ERROR("ERROR: dev_free_buf Failed for o/p buf");
-  }
-
-  if(index < m_sOutPortDef.nBufferCountActual && m_pOutput_pmem)
-  {
-    if(m_pOutput_pmem[index].fd > 0 && output_use_buffer == false )
-    {
-      DEBUG_PRINT_LOW("\n FreeBuffer:: o/p AllocateBuffer case");
-      munmap (m_pOutput_pmem[index].buffer,m_pOutput_pmem[index].size);
-      close (m_pOutput_pmem[index].fd);
-#ifdef USE_ION
-      free_ion_memory(&m_pOutput_ion[index]);
-#endif
-      m_pOutput_pmem[index].fd = -1;
+    if (bufferHdr == NULL || m_out_mem_ptr == NULL) {
+        DEBUG_PRINT_ERROR("ERROR: free_output: Invalid bufferHdr[%p] or m_out_mem_ptr[%p]",
+                bufferHdr, m_out_mem_ptr);
+        return OMX_ErrorBadParameter;
     }
-    else if( m_pOutput_pmem[index].fd > 0 && (output_use_buffer == true
-      && m_use_output_pmem == OMX_FALSE))
-    {
-      DEBUG_PRINT_LOW("\n FreeBuffer:: o/p Heap UseBuffer case");
-      if(dev_free_buf(&m_pOutput_pmem[index],PORT_INDEX_OUT) != true)
-      {
+    index = bufferHdr - m_out_mem_ptr;
+
+    if (index < m_sOutPortDef.nBufferCountActual &&
+            dev_free_buf(&m_pOutput_pmem[index],PORT_INDEX_OUT) != true) {
         DEBUG_PRINT_ERROR("ERROR: dev_free_buf Failed for o/p buf");
-      }
-      munmap (m_pOutput_pmem[index].buffer,m_pOutput_pmem[index].size);
-      close (m_pOutput_pmem[index].fd);
+    }
+
+    if (index < m_sOutPortDef.nBufferCountActual && m_pOutput_pmem) {
+        if (m_pOutput_pmem[index].fd > 0 && output_use_buffer == false ) {
+            DEBUG_PRINT_LOW("\n FreeBuffer:: o/p AllocateBuffer case");
+            munmap (m_pOutput_pmem[index].buffer,m_pOutput_pmem[index].size);
+            close (m_pOutput_pmem[index].fd);
 #ifdef USE_ION
-      free_ion_memory(&m_pOutput_ion[index]);
+            free_ion_memory(&m_pOutput_ion[index]);
 #endif
-      m_pOutput_pmem[index].fd = -1;
+            m_pOutput_pmem[index].fd = -1;
+        } else if ( m_pOutput_pmem[index].fd > 0 && (output_use_buffer == true
+                    && m_use_output_pmem == OMX_FALSE)) {
+            DEBUG_PRINT_LOW("\n FreeBuffer:: o/p Heap UseBuffer case");
+            if (dev_free_buf(&m_pOutput_pmem[index],PORT_INDEX_OUT) != true) {
+                DEBUG_PRINT_ERROR("ERROR: dev_free_buf Failed for o/p buf");
+            }
+            munmap (m_pOutput_pmem[index].buffer,m_pOutput_pmem[index].size);
+            close (m_pOutput_pmem[index].fd);
+#ifdef USE_ION
+            free_ion_memory(&m_pOutput_ion[index]);
+#endif
+            m_pOutput_pmem[index].fd = -1;
+        } else {
+            DEBUG_PRINT_LOW("\n FreeBuffer:: fd is invalid or o/p PMEM UseBuffer case");
+        }
     }
-    else
-    {
-      DEBUG_PRINT_LOW("\n FreeBuffer:: fd is invalid or o/p PMEM UseBuffer case");
-    }
-  }
-  return OMX_ErrorNone;
+    return OMX_ErrorNone;
 }
 #ifdef _ANDROID_ICS_
 OMX_ERRORTYPE omx_video::allocate_input_meta_buffer(
-                    OMX_HANDLETYPE       hComp,
-                    OMX_BUFFERHEADERTYPE **bufferHdr,
-                    OMX_PTR              appData,
-                    OMX_U32              bytes)
+        OMX_HANDLETYPE       hComp,
+        OMX_BUFFERHEADERTYPE **bufferHdr,
+        OMX_PTR              appData,
+        OMX_U32              bytes)
 {
-  unsigned index = 0;
-  if(!bufferHdr || bytes != sizeof(encoder_media_buffer_type))
-  {
-    DEBUG_PRINT_ERROR("wrong params allocate_input_meta_buffer Hdr %p len %lu",
-                     bufferHdr,bytes);
-    return OMX_ErrorBadParameter;
-  }
+    unsigned index = 0;
+    if (!bufferHdr || bytes != sizeof(encoder_media_buffer_type)) {
+        DEBUG_PRINT_ERROR("wrong params allocate_input_meta_buffer Hdr %p len %lu",
+                bufferHdr,bytes);
+        return OMX_ErrorBadParameter;
+    }
 
-  if(!m_inp_mem_ptr && !mUseProxyColorFormat)
-    m_inp_mem_ptr = meta_buffer_hdr;
-  for(index = 0;((index < m_sInPortDef.nBufferCountActual) &&
-      meta_buffer_hdr[index].pBuffer); index++);
-  if(index == m_sInPortDef.nBufferCountActual)
-  {
-    DEBUG_PRINT_ERROR("All buffers are allocated input_meta_buffer");
-    return OMX_ErrorBadParameter;
-  }
-  if(mUseProxyColorFormat){
-    if(opaque_buffer_hdr[index]){
-      DEBUG_PRINT_ERROR("All buffers are allocated opaque_buffer_hdr");
-      return OMX_ErrorBadParameter;
+    if (!m_inp_mem_ptr && !mUseProxyColorFormat)
+        m_inp_mem_ptr = meta_buffer_hdr;
+    for (index = 0; ((index < m_sInPortDef.nBufferCountActual) &&
+                meta_buffer_hdr[index].pBuffer); index++);
+    if (index == m_sInPortDef.nBufferCountActual) {
+        DEBUG_PRINT_ERROR("All buffers are allocated input_meta_buffer");
+        return OMX_ErrorBadParameter;
     }
-    if(allocate_input_buffer(hComp,&opaque_buffer_hdr[index],
-       PORT_INDEX_IN,appData,m_sInPortDef.nBufferSize) != OMX_ErrorNone) {
-      DEBUG_PRINT_ERROR("All buffers are allocated opaque_buffer_hdr");
-      return OMX_ErrorBadParameter;
+    if (mUseProxyColorFormat) {
+        if (opaque_buffer_hdr[index]) {
+            DEBUG_PRINT_ERROR("All buffers are allocated opaque_buffer_hdr");
+            return OMX_ErrorBadParameter;
+        }
+        if (allocate_input_buffer(hComp,&opaque_buffer_hdr[index],
+                    PORT_INDEX_IN,appData,m_sInPortDef.nBufferSize) != OMX_ErrorNone) {
+            DEBUG_PRINT_ERROR("All buffers are allocated opaque_buffer_hdr");
+            return OMX_ErrorBadParameter;
+        }
     }
-  }
-  BITMASK_SET(&m_inp_bm_count,index);
-  *bufferHdr = &meta_buffer_hdr[index];
-  memset(&meta_buffer_hdr[index], 0, sizeof(meta_buffer_hdr[index]));
-  meta_buffer_hdr[index].nSize = sizeof(meta_buffer_hdr[index]);
-  meta_buffer_hdr[index].nAllocLen = bytes;
-  meta_buffer_hdr[index].nVersion.nVersion = OMX_SPEC_VERSION;
-  meta_buffer_hdr[index].nInputPortIndex = PORT_INDEX_IN;
-  meta_buffer_hdr[index].pBuffer = (OMX_U8*)&meta_buffers[index];
-  meta_buffer_hdr[index].pAppPrivate = appData;
-  if(mUseProxyColorFormat) {
-    m_opq_pmem_q.insert_entry((unsigned int)opaque_buffer_hdr[index],0,0);
-    DEBUG_PRINT_HIGH("\n opaque_buffer_hdr insert %p", opaque_buffer_hdr[index]);
-  }
-  return OMX_ErrorNone;
+    BITMASK_SET(&m_inp_bm_count,index);
+    *bufferHdr = &meta_buffer_hdr[index];
+    memset(&meta_buffer_hdr[index], 0, sizeof(meta_buffer_hdr[index]));
+    meta_buffer_hdr[index].nSize = sizeof(meta_buffer_hdr[index]);
+    meta_buffer_hdr[index].nAllocLen = bytes;
+    meta_buffer_hdr[index].nVersion.nVersion = OMX_SPEC_VERSION;
+    meta_buffer_hdr[index].nInputPortIndex = PORT_INDEX_IN;
+    meta_buffer_hdr[index].pBuffer = (OMX_U8*)&meta_buffers[index];
+    meta_buffer_hdr[index].pAppPrivate = appData;
+    if (mUseProxyColorFormat) {
+        m_opq_pmem_q.insert_entry((unsigned int)opaque_buffer_hdr[index],0,0);
+        DEBUG_PRINT_HIGH("\n opaque_buffer_hdr insert %p", opaque_buffer_hdr[index]);
+    }
+    return OMX_ErrorNone;
 }
 #endif
 /* ======================================================================
-FUNCTION
-  omx_venc::AllocateInputBuffer
+   FUNCTION
+   omx_venc::AllocateInputBuffer
 
-DESCRIPTION
-  Helper function for allocate buffer in the input pin
+   DESCRIPTION
+   Helper function for allocate buffer in the input pin
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::allocate_input_buffer(
-                                               OMX_IN OMX_HANDLETYPE            hComp,
-                                               OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                                               OMX_IN OMX_U32                   port,
-                                               OMX_IN OMX_PTR                   appData,
-                                               OMX_IN OMX_U32                   bytes)
+        OMX_IN OMX_HANDLETYPE            hComp,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                   port,
+        OMX_IN OMX_PTR                   appData,
+        OMX_IN OMX_U32                   bytes)
 {
 
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  unsigned   i = 0;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    unsigned   i = 0;
 
-  DEBUG_PRINT_HIGH("\n allocate_input_buffer()::");
-  if(bytes != m_sInPortDef.nBufferSize)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Buffer size mismatch error: bytes[%lu] != nBufferSize[%lu]\n",
-      bytes, m_sInPortDef.nBufferSize);
-    return OMX_ErrorBadParameter;
-  }
-
-  if(!m_inp_mem_ptr)
-  {
-    DEBUG_PRINT_HIGH("%s: size = %lu, actual cnt %lu", __FUNCTION__,
-        m_sInPortDef.nBufferSize, m_sInPortDef.nBufferCountActual);
-    m_inp_mem_ptr = (OMX_BUFFERHEADERTYPE*) \
-                    calloc( (sizeof(OMX_BUFFERHEADERTYPE)), m_sInPortDef.nBufferCountActual);
-    if(m_inp_mem_ptr == NULL)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_inp_mem_ptr");
-      return OMX_ErrorInsufficientResources;
+    DEBUG_PRINT_HIGH("\n allocate_input_buffer()::");
+    if (bytes != m_sInPortDef.nBufferSize) {
+        DEBUG_PRINT_ERROR("\nERROR: Buffer size mismatch error: bytes[%lu] != nBufferSize[%lu]\n",
+                bytes, m_sInPortDef.nBufferSize);
+        return OMX_ErrorBadParameter;
     }
 
-    m_pInput_pmem = (struct pmem *) calloc(sizeof (struct pmem), m_sInPortDef.nBufferCountActual);
+    if (!m_inp_mem_ptr) {
+        DEBUG_PRINT_HIGH("%s: size = %lu, actual cnt %lu", __FUNCTION__,
+                m_sInPortDef.nBufferSize, m_sInPortDef.nBufferCountActual);
+        m_inp_mem_ptr = (OMX_BUFFERHEADERTYPE*) \
+                        calloc( (sizeof(OMX_BUFFERHEADERTYPE)), m_sInPortDef.nBufferCountActual);
+        if (m_inp_mem_ptr == NULL) {
+            DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_inp_mem_ptr");
+            return OMX_ErrorInsufficientResources;
+        }
 
-    if(m_pInput_pmem == NULL)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_pInput_pmem");
-      return OMX_ErrorInsufficientResources;
-    }
+        m_pInput_pmem = (struct pmem *) calloc(sizeof (struct pmem), m_sInPortDef.nBufferCountActual);
+
+        if (m_pInput_pmem == NULL) {
+            DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_pInput_pmem");
+            return OMX_ErrorInsufficientResources;
+        }
 #ifdef USE_ION
-    m_pInput_ion = (struct venc_ion *) calloc(sizeof (struct venc_ion), m_sInPortDef.nBufferCountActual);
-    if(m_pInput_ion == NULL)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_pInput_ion");
-      return OMX_ErrorInsufficientResources;
-    }
+        m_pInput_ion = (struct venc_ion *) calloc(sizeof (struct venc_ion), m_sInPortDef.nBufferCountActual);
+        if (m_pInput_ion == NULL) {
+            DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_pInput_ion");
+            return OMX_ErrorInsufficientResources;
+        }
 #endif
-    for(i=0; i< m_sInPortDef.nBufferCountActual; i++)
-    {
-      m_pInput_pmem[i].fd = -1;
+        for (i=0; i< m_sInPortDef.nBufferCountActual; i++) {
+            m_pInput_pmem[i].fd = -1;
 #ifdef USE_ION
-      m_pInput_ion[i].ion_device_fd =-1;
-      m_pInput_ion[i].fd_ion_data.fd =-1;
-      m_pInput_ion[i].ion_alloc_data.handle=NULL;
+            m_pInput_ion[i].ion_device_fd =-1;
+            m_pInput_ion[i].fd_ion_data.fd =-1;
+            m_pInput_ion[i].ion_alloc_data.handle=NULL;
 #endif
+        }
     }
-  }
 
-  for(i=0; i< m_sInPortDef.nBufferCountActual; i++)
-  {
-    if(BITMASK_ABSENT(&m_inp_bm_count,i))
-    {
-      break;
+    for (i=0; i< m_sInPortDef.nBufferCountActual; i++) {
+        if (BITMASK_ABSENT(&m_inp_bm_count,i)) {
+            break;
+        }
     }
-  }
-  if(i < m_sInPortDef.nBufferCountActual)
-  {
+    if (i < m_sInPortDef.nBufferCountActual) {
 
-    *bufferHdr = (m_inp_mem_ptr + i);
-    (*bufferHdr)->nSize             = sizeof(OMX_BUFFERHEADERTYPE);
-    (*bufferHdr)->nVersion.nVersion = OMX_SPEC_VERSION;
-    (*bufferHdr)->nAllocLen         = m_sInPortDef.nBufferSize;
-    (*bufferHdr)->pAppPrivate       = appData;
-    (*bufferHdr)->nInputPortIndex   = PORT_INDEX_IN;
+        *bufferHdr = (m_inp_mem_ptr + i);
+        (*bufferHdr)->nSize             = sizeof(OMX_BUFFERHEADERTYPE);
+        (*bufferHdr)->nVersion.nVersion = OMX_SPEC_VERSION;
+        (*bufferHdr)->nAllocLen         = m_sInPortDef.nBufferSize;
+        (*bufferHdr)->pAppPrivate       = appData;
+        (*bufferHdr)->nInputPortIndex   = PORT_INDEX_IN;
 
 #ifdef USE_ION
 #ifdef _MSM8974_
-    m_pInput_ion[i].ion_device_fd = alloc_map_ion_memory(m_sInPortDef.nBufferSize,
-                                    &m_pInput_ion[i].ion_alloc_data,
-                                    &m_pInput_ion[i].fd_ion_data,0);
+        m_pInput_ion[i].ion_device_fd = alloc_map_ion_memory(m_sInPortDef.nBufferSize,
+                &m_pInput_ion[i].ion_alloc_data,
+                &m_pInput_ion[i].fd_ion_data,0);
 #else
-    m_pInput_ion[i].ion_device_fd = alloc_map_ion_memory(m_sInPortDef.nBufferSize,
-                                    &m_pInput_ion[i].ion_alloc_data,
-                                    &m_pInput_ion[i].fd_ion_data,ION_FLAG_CACHED);
+        m_pInput_ion[i].ion_device_fd = alloc_map_ion_memory(m_sInPortDef.nBufferSize,
+                &m_pInput_ion[i].ion_alloc_data,
+                &m_pInput_ion[i].fd_ion_data,ION_FLAG_CACHED);
 #endif
-    if(m_pInput_ion[i].ion_device_fd < 0) {
-      DEBUG_PRINT_ERROR("\nERROR:ION device open() Failed");
-      return OMX_ErrorInsufficientResources;
-    }
+        if (m_pInput_ion[i].ion_device_fd < 0) {
+            DEBUG_PRINT_ERROR("\nERROR:ION device open() Failed");
+            return OMX_ErrorInsufficientResources;
+        }
 
-    m_pInput_pmem[i].fd = m_pInput_ion[i].fd_ion_data.fd;
+        m_pInput_pmem[i].fd = m_pInput_ion[i].fd_ion_data.fd;
 #else
-    m_pInput_pmem[i].fd = open (MEM_DEVICE,O_RDWR);
+        m_pInput_pmem[i].fd = open (MEM_DEVICE,O_RDWR);
 
-    if(m_pInput_pmem[i].fd == 0)
-    {
-      m_pInput_pmem[i].fd = open (MEM_DEVICE,O_RDWR);
-    }
+        if (m_pInput_pmem[i].fd == 0) {
+            m_pInput_pmem[i].fd = open (MEM_DEVICE,O_RDWR);
+        }
 
-    if(m_pInput_pmem[i].fd < 0)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: /dev/pmem_adsp open() Failed\n");
-      return OMX_ErrorInsufficientResources;
-    }
+        if (m_pInput_pmem[i].fd < 0) {
+            DEBUG_PRINT_ERROR("\nERROR: /dev/pmem_adsp open() Failed\n");
+            return OMX_ErrorInsufficientResources;
+        }
 #endif
-    m_pInput_pmem[i].size = m_sInPortDef.nBufferSize;
-    m_pInput_pmem[i].offset = 0;
+        m_pInput_pmem[i].size = m_sInPortDef.nBufferSize;
+        m_pInput_pmem[i].offset = 0;
 
-    m_pInput_pmem[i].buffer = (unsigned char *)mmap(NULL,m_pInput_pmem[i].size,PROT_READ|PROT_WRITE,
-                                                    MAP_SHARED,m_pInput_pmem[i].fd,0);
-    if(m_pInput_pmem[i].buffer == MAP_FAILED)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: mmap FAILED= %d\n", errno);
-      close(m_pInput_pmem[i].fd);
+        m_pInput_pmem[i].buffer = (unsigned char *)mmap(NULL,m_pInput_pmem[i].size,PROT_READ|PROT_WRITE,
+                MAP_SHARED,m_pInput_pmem[i].fd,0);
+        if (m_pInput_pmem[i].buffer == MAP_FAILED) {
+            DEBUG_PRINT_ERROR("\nERROR: mmap FAILED= %d\n", errno);
+            close(m_pInput_pmem[i].fd);
 #ifdef USE_ION
-      free_ion_memory(&m_pInput_ion[i]);
+            free_ion_memory(&m_pInput_ion[i]);
 #endif
-      return OMX_ErrorInsufficientResources;
+            return OMX_ErrorInsufficientResources;
+        }
+
+        (*bufferHdr)->pBuffer           = (OMX_U8 *)m_pInput_pmem[i].buffer;
+        DEBUG_PRINT_LOW("\n Virtual address in allocate buffer is %p", m_pInput_pmem[i].buffer);
+        BITMASK_SET(&m_inp_bm_count,i);
+        //here change the I/P param here from buf_adr to pmem
+        if (!mUseProxyColorFormat && (dev_use_buf(&m_pInput_pmem[i],PORT_INDEX_IN,i) != true)) {
+            DEBUG_PRINT_ERROR("\nERROR: dev_use_buf FAILED for i/p buf\n");
+            return OMX_ErrorInsufficientResources;
+        }
+    } else {
+        DEBUG_PRINT_ERROR("\nERROR: All i/p buffers are allocated, invalid allocate buf call"
+                "for index [%d]\n", i);
+        eRet = OMX_ErrorInsufficientResources;
     }
 
-    (*bufferHdr)->pBuffer           = (OMX_U8 *)m_pInput_pmem[i].buffer;
-    DEBUG_PRINT_LOW("\n Virtual address in allocate buffer is %p", m_pInput_pmem[i].buffer);
-    BITMASK_SET(&m_inp_bm_count,i);
-    //here change the I/P param here from buf_adr to pmem
-    if(!mUseProxyColorFormat && (dev_use_buf(&m_pInput_pmem[i],PORT_INDEX_IN,i) != true))
-    {
-      DEBUG_PRINT_ERROR("\nERROR: dev_use_buf FAILED for i/p buf\n");
-      return OMX_ErrorInsufficientResources;
-    }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("\nERROR: All i/p buffers are allocated, invalid allocate buf call"
-                      "for index [%d]\n", i);
-    eRet = OMX_ErrorInsufficientResources;
-  }
-
-  return eRet;
+    return eRet;
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_venc::AllocateOutputBuffer
+   FUNCTION
+   omx_venc::AllocateOutputBuffer
 
-DESCRIPTION
-  Helper fn for AllocateBuffer in the output pin
+   DESCRIPTION
+   Helper fn for AllocateBuffer in the output pin
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if everything went well.
+   RETURN VALUE
+   OMX Error None if everything went well.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::allocate_output_buffer(
-                                                OMX_IN OMX_HANDLETYPE            hComp,
-                                                OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                                                OMX_IN OMX_U32                   port,
-                                                OMX_IN OMX_PTR                   appData,
-                                                OMX_IN OMX_U32                   bytes)
+        OMX_IN OMX_HANDLETYPE            hComp,
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                   port,
+        OMX_IN OMX_PTR                   appData,
+        OMX_IN OMX_U32                   bytes)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  OMX_BUFFERHEADERTYPE       *bufHdr= NULL; // buffer header
-  unsigned                         i= 0; // Temporary counter
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_BUFFERHEADERTYPE       *bufHdr= NULL; // buffer header
+    unsigned                         i= 0; // Temporary counter
 #ifdef _MSM8974_
-  int align_size;
+    int align_size;
 #endif
-  DEBUG_PRINT_HIGH("\n allocate_output_buffer()for %lu bytes", bytes);
-  if(!m_out_mem_ptr)
-  {
-    int nBufHdrSize        = 0;
-    DEBUG_PRINT_HIGH("%s: size = %lu, actual cnt %lu", __FUNCTION__,
-        m_sOutPortDef.nBufferSize, m_sOutPortDef.nBufferCountActual);
-    nBufHdrSize        = m_sOutPortDef.nBufferCountActual * sizeof(OMX_BUFFERHEADERTYPE);
+    DEBUG_PRINT_HIGH("\n allocate_output_buffer()for %lu bytes", bytes);
+    if (!m_out_mem_ptr) {
+        int nBufHdrSize        = 0;
+        DEBUG_PRINT_HIGH("%s: size = %lu, actual cnt %lu", __FUNCTION__,
+                m_sOutPortDef.nBufferSize, m_sOutPortDef.nBufferCountActual);
+        nBufHdrSize        = m_sOutPortDef.nBufferCountActual * sizeof(OMX_BUFFERHEADERTYPE);
 
-    /*
-     * Memory for output side involves the following:
-     * 1. Array of Buffer Headers
-     * 2. Bitmask array to hold the buffer allocation details
-     * In order to minimize the memory management entire allocation
-     * is done in one step.
-     */
-    m_out_mem_ptr = (OMX_BUFFERHEADERTYPE  *)calloc(nBufHdrSize,1);
+        /*
+         * Memory for output side involves the following:
+         * 1. Array of Buffer Headers
+         * 2. Bitmask array to hold the buffer allocation details
+         * In order to minimize the memory management entire allocation
+         * is done in one step.
+         */
+        m_out_mem_ptr = (OMX_BUFFERHEADERTYPE  *)calloc(nBufHdrSize,1);
 
 #ifdef USE_ION
-    m_pOutput_ion = (struct venc_ion *) calloc(sizeof (struct venc_ion), m_sOutPortDef.nBufferCountActual);
-    if(m_pOutput_ion == NULL)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_pOutput_ion");
-      return OMX_ErrorInsufficientResources;
-    }
+        m_pOutput_ion = (struct venc_ion *) calloc(sizeof (struct venc_ion), m_sOutPortDef.nBufferCountActual);
+        if (m_pOutput_ion == NULL) {
+            DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_pOutput_ion");
+            return OMX_ErrorInsufficientResources;
+        }
 #endif
-    m_pOutput_pmem = (struct pmem *) calloc(sizeof(struct pmem), m_sOutPortDef.nBufferCountActual);
-    if(m_pOutput_pmem == NULL)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_pOutput_pmem");
-      return OMX_ErrorInsufficientResources;
-    }
-    if(m_out_mem_ptr && m_pOutput_pmem)
-    {
-      bufHdr          =  m_out_mem_ptr;
+        m_pOutput_pmem = (struct pmem *) calloc(sizeof(struct pmem), m_sOutPortDef.nBufferCountActual);
+        if (m_pOutput_pmem == NULL) {
+            DEBUG_PRINT_ERROR("\nERROR: calloc() Failed for m_pOutput_pmem");
+            return OMX_ErrorInsufficientResources;
+        }
+        if (m_out_mem_ptr && m_pOutput_pmem) {
+            bufHdr          =  m_out_mem_ptr;
 
-      for(i=0; i < m_sOutPortDef.nBufferCountActual ; i++)
-      {
-        bufHdr->nSize              = sizeof(OMX_BUFFERHEADERTYPE);
-        bufHdr->nVersion.nVersion  = OMX_SPEC_VERSION;
-        // Set the values when we determine the right HxW param
-        bufHdr->nAllocLen          = bytes;
-        bufHdr->nFilledLen         = 0;
-        bufHdr->pAppPrivate        = appData;
-        bufHdr->nOutputPortIndex   = PORT_INDEX_OUT;
-        bufHdr->pBuffer            = NULL;
-        bufHdr++;
-        m_pOutput_pmem[i].fd = -1;
+            for (i=0; i < m_sOutPortDef.nBufferCountActual ; i++) {
+                bufHdr->nSize              = sizeof(OMX_BUFFERHEADERTYPE);
+                bufHdr->nVersion.nVersion  = OMX_SPEC_VERSION;
+                // Set the values when we determine the right HxW param
+                bufHdr->nAllocLen          = bytes;
+                bufHdr->nFilledLen         = 0;
+                bufHdr->pAppPrivate        = appData;
+                bufHdr->nOutputPortIndex   = PORT_INDEX_OUT;
+                bufHdr->pBuffer            = NULL;
+                bufHdr++;
+                m_pOutput_pmem[i].fd = -1;
 #ifdef USE_ION
-        m_pOutput_ion[i].ion_device_fd =-1;
-        m_pOutput_ion[i].fd_ion_data.fd=-1;
-        m_pOutput_ion[i].ion_alloc_data.handle =NULL;
+                m_pOutput_ion[i].ion_device_fd =-1;
+                m_pOutput_ion[i].fd_ion_data.fd=-1;
+                m_pOutput_ion[i].ion_alloc_data.handle =NULL;
 #endif
-      }
+            }
+        } else {
+            DEBUG_PRINT_ERROR("ERROR: calloc() failed for m_out_mem_ptr/m_pOutput_pmem");
+            eRet = OMX_ErrorInsufficientResources;
+        }
     }
-    else
-    {
-      DEBUG_PRINT_ERROR("ERROR: calloc() failed for m_out_mem_ptr/m_pOutput_pmem");
-      eRet = OMX_ErrorInsufficientResources;
-    }
-  }
 
-  DEBUG_PRINT_HIGH("\n actual cnt = %lu", m_sOutPortDef.nBufferCountActual);
-  for(i=0; i< m_sOutPortDef.nBufferCountActual; i++)
-  {
-    if(BITMASK_ABSENT(&m_out_bm_count,i))
-    {
-      DEBUG_PRINT_LOW("\n Found a Free Output Buffer %d",i);
-      break;
+    DEBUG_PRINT_HIGH("\n actual cnt = %lu", m_sOutPortDef.nBufferCountActual);
+    for (i=0; i< m_sOutPortDef.nBufferCountActual; i++) {
+        if (BITMASK_ABSENT(&m_out_bm_count,i)) {
+            DEBUG_PRINT_LOW("\n Found a Free Output Buffer %d",i);
+            break;
+        }
     }
-  }
-  if(eRet == OMX_ErrorNone)
-  {
-    if(i < m_sOutPortDef.nBufferCountActual)
-    {
+    if (eRet == OMX_ErrorNone) {
+        if (i < m_sOutPortDef.nBufferCountActual) {
 #ifdef USE_ION
 #ifdef _MSM8974_
-      align_size = ((m_sOutPortDef.nBufferSize + 4095)/4096) * 4096;
-      m_pOutput_ion[i].ion_device_fd = alloc_map_ion_memory(align_size,
-                                       &m_pOutput_ion[i].ion_alloc_data,
-                                       &m_pOutput_ion[i].fd_ion_data,0);
+            align_size = ((m_sOutPortDef.nBufferSize + 4095)/4096) * 4096;
+            m_pOutput_ion[i].ion_device_fd = alloc_map_ion_memory(align_size,
+                    &m_pOutput_ion[i].ion_alloc_data,
+                    &m_pOutput_ion[i].fd_ion_data,0);
 #else
-      m_pOutput_ion[i].ion_device_fd = alloc_map_ion_memory(m_sOutPortDef.nBufferSize,
-                                       &m_pOutput_ion[i].ion_alloc_data,
-                                       &m_pOutput_ion[i].fd_ion_data,ION_FLAG_CACHED);
+            m_pOutput_ion[i].ion_device_fd = alloc_map_ion_memory(m_sOutPortDef.nBufferSize,
+                    &m_pOutput_ion[i].ion_alloc_data,
+                    &m_pOutput_ion[i].fd_ion_data,ION_FLAG_CACHED);
 #endif
-      if(m_pOutput_ion[i].ion_device_fd < 0) {
-        DEBUG_PRINT_ERROR("\nERROR:ION device open() Failed");
-        return OMX_ErrorInsufficientResources;
-      }
+            if (m_pOutput_ion[i].ion_device_fd < 0) {
+                DEBUG_PRINT_ERROR("\nERROR:ION device open() Failed");
+                return OMX_ErrorInsufficientResources;
+            }
 
-      m_pOutput_pmem[i].fd = m_pOutput_ion[i].fd_ion_data.fd;
+            m_pOutput_pmem[i].fd = m_pOutput_ion[i].fd_ion_data.fd;
 #else
-      m_pOutput_pmem[i].fd = open (MEM_DEVICE,O_RDWR);
-      if(m_pOutput_pmem[i].fd == 0)
-      {
-        m_pOutput_pmem[i].fd = open (MEM_DEVICE,O_RDWR);
-      }
+            m_pOutput_pmem[i].fd = open (MEM_DEVICE,O_RDWR);
+            if (m_pOutput_pmem[i].fd == 0) {
+                m_pOutput_pmem[i].fd = open (MEM_DEVICE,O_RDWR);
+            }
 
-      if(m_pOutput_pmem[i].fd < 0)
-      {
-        DEBUG_PRINT_ERROR("\nERROR: /dev/pmem_adsp open() failed");
-        return OMX_ErrorInsufficientResources;
-      }
+            if (m_pOutput_pmem[i].fd < 0) {
+                DEBUG_PRINT_ERROR("\nERROR: /dev/pmem_adsp open() failed");
+                return OMX_ErrorInsufficientResources;
+            }
 #endif
-      m_pOutput_pmem[i].size = m_sOutPortDef.nBufferSize;
-      m_pOutput_pmem[i].offset = 0;
+            m_pOutput_pmem[i].size = m_sOutPortDef.nBufferSize;
+            m_pOutput_pmem[i].offset = 0;
 #ifdef _MSM8974_
-      m_pOutput_pmem[i].buffer = (unsigned char *)mmap(NULL,align_size,PROT_READ|PROT_WRITE,
-                                                       MAP_SHARED,m_pOutput_pmem[i].fd,0);
+            m_pOutput_pmem[i].buffer = (unsigned char *)mmap(NULL,align_size,PROT_READ|PROT_WRITE,
+                    MAP_SHARED,m_pOutput_pmem[i].fd,0);
 #else
-      m_pOutput_pmem[i].buffer = (unsigned char *)mmap(NULL,m_pOutput_pmem[i].size,PROT_READ|PROT_WRITE,
-                                                       MAP_SHARED,m_pOutput_pmem[i].fd,0);
+            m_pOutput_pmem[i].buffer = (unsigned char *)mmap(NULL,m_pOutput_pmem[i].size,PROT_READ|PROT_WRITE,
+                    MAP_SHARED,m_pOutput_pmem[i].fd,0);
 #endif
-      if(m_pOutput_pmem[i].buffer == MAP_FAILED)
-      {
-        DEBUG_PRINT_ERROR("\nERROR: MMAP_FAILED in o/p alloc buffer");
-        close (m_pOutput_pmem[i].fd);
+            if (m_pOutput_pmem[i].buffer == MAP_FAILED) {
+                DEBUG_PRINT_ERROR("\nERROR: MMAP_FAILED in o/p alloc buffer");
+                close (m_pOutput_pmem[i].fd);
 #ifdef USE_ION
-        free_ion_memory(&m_pOutput_ion[i]);
+                free_ion_memory(&m_pOutput_ion[i]);
 #endif
-        return OMX_ErrorInsufficientResources;
-      }
+                return OMX_ErrorInsufficientResources;
+            }
 
-      *bufferHdr = (m_out_mem_ptr + i );
-      (*bufferHdr)->pBuffer = (OMX_U8 *)m_pOutput_pmem[i].buffer;
-      (*bufferHdr)->pAppPrivate = appData;
+            *bufferHdr = (m_out_mem_ptr + i );
+            (*bufferHdr)->pBuffer = (OMX_U8 *)m_pOutput_pmem[i].buffer;
+            (*bufferHdr)->pAppPrivate = appData;
 
-      BITMASK_SET(&m_out_bm_count,i);
+            BITMASK_SET(&m_out_bm_count,i);
 
-      if(dev_use_buf(&m_pOutput_pmem[i],PORT_INDEX_OUT,i) != true)
-      {
-        DEBUG_PRINT_ERROR("\nERROR: dev_use_buf FAILED for o/p buf");
-        return OMX_ErrorInsufficientResources;
-      }
+            if (dev_use_buf(&m_pOutput_pmem[i],PORT_INDEX_OUT,i) != true) {
+                DEBUG_PRINT_ERROR("\nERROR: dev_use_buf FAILED for o/p buf");
+                return OMX_ErrorInsufficientResources;
+            }
+        } else {
+            DEBUG_PRINT_ERROR("\nERROR: All o/p buffers are allocated, invalid allocate buf call"
+                    "for index [%d] actual: %lu\n", i, m_sOutPortDef.nBufferCountActual);
+        }
     }
-    else
-    {
-      DEBUG_PRINT_ERROR("\nERROR: All o/p buffers are allocated, invalid allocate buf call"
-                        "for index [%d] actual: %lu\n", i, m_sOutPortDef.nBufferCountActual);
-    }
-  }
 
-  return eRet;
+    return eRet;
 }
 
 
 // AllocateBuffer  -- API Call
 /* ======================================================================
-FUNCTION
-  omx_video::AllocateBuffer
+   FUNCTION
+   omx_video::AllocateBuffer
 
-DESCRIPTION
-  Returns zero if all the buffers released..
+   DESCRIPTION
+   Returns zero if all the buffers released..
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::allocate_buffer(OMX_IN OMX_HANDLETYPE                hComp,
-                                          OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                                          OMX_IN OMX_U32                        port,
-                                          OMX_IN OMX_PTR                     appData,
-                                          OMX_IN OMX_U32                       bytes)
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                        port,
+        OMX_IN OMX_PTR                     appData,
+        OMX_IN OMX_U32                       bytes)
 {
 
-  OMX_ERRORTYPE eRet = OMX_ErrorNone; // OMX return type
+    OMX_ERRORTYPE eRet = OMX_ErrorNone; // OMX return type
 
-  DEBUG_PRINT_LOW("\n Allocate buffer of size = %d on port %d \n", bytes, (int)port);
-  if(m_state == OMX_StateInvalid)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Allocate Buf in Invalid State\n");
-    return OMX_ErrorInvalidState;
-  }
+    DEBUG_PRINT_LOW("\n Allocate buffer of size = %d on port %d \n", bytes, (int)port);
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("ERROR: Allocate Buf in Invalid State\n");
+        return OMX_ErrorInvalidState;
+    }
 
-  // What if the client calls again.
-  if(port == PORT_INDEX_IN)
-  {
+    // What if the client calls again.
+    if (port == PORT_INDEX_IN) {
 #ifdef _ANDROID_ICS_
-    if(meta_mode_enable)
-      eRet = allocate_input_meta_buffer(hComp,bufferHdr,appData,bytes);
-    else
+        if (meta_mode_enable)
+            eRet = allocate_input_meta_buffer(hComp,bufferHdr,appData,bytes);
+        else
 #endif
-      eRet = allocate_input_buffer(hComp,bufferHdr,port,appData,bytes);
-  }
-  else if(port == PORT_INDEX_OUT)
-  {
-    eRet = allocate_output_buffer(hComp,bufferHdr,port,appData,bytes);
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("ERROR: Invalid Port Index received %d\n",(int)port);
-    eRet = OMX_ErrorBadPortIndex;
-  }
-  DEBUG_PRINT_LOW("Checking for Output Allocate buffer Done");
-  if(eRet == OMX_ErrorNone)
-  {
-    if(allocate_done())
-    {
-      if(BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
-      {
-        // Send the callback now
-        BITMASK_CLEAR((&m_flags),OMX_COMPONENT_IDLE_PENDING);
-        post_event(OMX_CommandStateSet,OMX_StateIdle,
-                   OMX_COMPONENT_GENERATE_EVENT);
-      }
+            eRet = allocate_input_buffer(hComp,bufferHdr,port,appData,bytes);
+    } else if (port == PORT_INDEX_OUT) {
+        eRet = allocate_output_buffer(hComp,bufferHdr,port,appData,bytes);
+    } else {
+        DEBUG_PRINT_ERROR("ERROR: Invalid Port Index received %d\n",(int)port);
+        eRet = OMX_ErrorBadPortIndex;
     }
-    if(port == PORT_INDEX_IN && m_sInPortDef.bPopulated)
-    {
-      if(BITMASK_PRESENT(&m_flags,OMX_COMPONENT_INPUT_ENABLE_PENDING))
-      {
-        BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_ENABLE_PENDING);
-        post_event(OMX_CommandPortEnable,
-                   PORT_INDEX_IN,
-                   OMX_COMPONENT_GENERATE_EVENT);
-      }
+    DEBUG_PRINT_LOW("Checking for Output Allocate buffer Done");
+    if (eRet == OMX_ErrorNone) {
+        if (allocate_done()) {
+            if (BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING)) {
+                // Send the callback now
+                BITMASK_CLEAR((&m_flags),OMX_COMPONENT_IDLE_PENDING);
+                post_event(OMX_CommandStateSet,OMX_StateIdle,
+                        OMX_COMPONENT_GENERATE_EVENT);
+            }
+        }
+        if (port == PORT_INDEX_IN && m_sInPortDef.bPopulated) {
+            if (BITMASK_PRESENT(&m_flags,OMX_COMPONENT_INPUT_ENABLE_PENDING)) {
+                BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_ENABLE_PENDING);
+                post_event(OMX_CommandPortEnable,
+                        PORT_INDEX_IN,
+                        OMX_COMPONENT_GENERATE_EVENT);
+            }
+        }
+        if (port == PORT_INDEX_OUT && m_sOutPortDef.bPopulated) {
+            if (BITMASK_PRESENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING)) {
+                BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
+                post_event(OMX_CommandPortEnable,
+                        PORT_INDEX_OUT,
+                        OMX_COMPONENT_GENERATE_EVENT);
+                m_event_port_settings_sent = false;
+            }
+        }
     }
-    if(port == PORT_INDEX_OUT && m_sOutPortDef.bPopulated)
-    {
-      if(BITMASK_PRESENT(&m_flags,OMX_COMPONENT_OUTPUT_ENABLE_PENDING))
-      {
-        BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_ENABLE_PENDING);
-        post_event(OMX_CommandPortEnable,
-                   PORT_INDEX_OUT,
-                   OMX_COMPONENT_GENERATE_EVENT);
-        m_event_port_settings_sent = false;
-      }
-    }
-  }
-  DEBUG_PRINT_LOW("Allocate Buffer exit with ret Code %d\n",eRet);
-  return eRet;
+    DEBUG_PRINT_LOW("Allocate Buffer exit with ret Code %d\n",eRet);
+    return eRet;
 }
 
 
 // Free Buffer - API call
 /* ======================================================================
-FUNCTION
-  omx_video::FreeBuffer
+   FUNCTION
+   omx_video::FreeBuffer
 
-DESCRIPTION
+   DESCRIPTION
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::free_buffer(OMX_IN OMX_HANDLETYPE         hComp,
-                                      OMX_IN OMX_U32                 port,
-                                      OMX_IN OMX_BUFFERHEADERTYPE* buffer)
+        OMX_IN OMX_U32                 port,
+        OMX_IN OMX_BUFFERHEADERTYPE* buffer)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  unsigned int nPortIndex;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    unsigned int nPortIndex;
 
-  DEBUG_PRINT_LOW("In for encoder free_buffer \n");
+    DEBUG_PRINT_LOW("In for encoder free_buffer \n");
 
-  if(m_state == OMX_StateIdle &&
-     (BITMASK_PRESENT(&m_flags ,OMX_COMPONENT_LOADING_PENDING)))
-  {
-    DEBUG_PRINT_LOW(" free buffer while Component in Loading pending\n");
-  }
-  else if((m_sInPortDef.bEnabled == OMX_FALSE && port == PORT_INDEX_IN)||
-          (m_sOutPortDef.bEnabled == OMX_FALSE && port == PORT_INDEX_OUT))
-  {
-    DEBUG_PRINT_LOW("Free Buffer while port %d disabled\n", port);
-  }
-  else if(m_state == OMX_StateExecuting || m_state == OMX_StatePause)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Invalid state to free buffer,ports need to be disabled\n");
-    post_event(OMX_EventError,
-               OMX_ErrorPortUnpopulated,
-               OMX_COMPONENT_GENERATE_EVENT);
+    if (m_state == OMX_StateIdle &&
+            (BITMASK_PRESENT(&m_flags ,OMX_COMPONENT_LOADING_PENDING))) {
+        DEBUG_PRINT_LOW(" free buffer while Component in Loading pending\n");
+    } else if ((m_sInPortDef.bEnabled == OMX_FALSE && port == PORT_INDEX_IN)||
+            (m_sOutPortDef.bEnabled == OMX_FALSE && port == PORT_INDEX_OUT)) {
+        DEBUG_PRINT_LOW("Free Buffer while port %d disabled\n", port);
+    } else if (m_state == OMX_StateExecuting || m_state == OMX_StatePause) {
+        DEBUG_PRINT_ERROR("ERROR: Invalid state to free buffer,ports need to be disabled\n");
+        post_event(OMX_EventError,
+                OMX_ErrorPortUnpopulated,
+                OMX_COMPONENT_GENERATE_EVENT);
+        return eRet;
+    } else {
+        DEBUG_PRINT_ERROR("ERROR: Invalid state to free buffer,port lost Buffers\n");
+        post_event(OMX_EventError,
+                OMX_ErrorPortUnpopulated,
+                OMX_COMPONENT_GENERATE_EVENT);
+    }
+
+    if (port == PORT_INDEX_IN) {
+        // check if the buffer is valid
+        nPortIndex = buffer - ((!mUseProxyColorFormat)?m_inp_mem_ptr:meta_buffer_hdr);
+
+        DEBUG_PRINT_LOW("free_buffer on i/p port - Port idx %d, actual cnt %d \n",
+                nPortIndex, m_sInPortDef.nBufferCountActual);
+        if (nPortIndex < m_sInPortDef.nBufferCountActual) {
+            // Clear the bit associated with it.
+            BITMASK_CLEAR(&m_inp_bm_count,nPortIndex);
+            free_input_buffer (buffer);
+            m_sInPortDef.bPopulated = OMX_FALSE;
+
+            /*Free the Buffer Header*/
+            if (release_input_done()
+#ifdef _ANDROID_ICS_
+                    && !meta_mode_enable
+#endif
+               ) {
+                input_use_buffer = false;
+                if (m_inp_mem_ptr) {
+                    DEBUG_PRINT_LOW("Freeing m_inp_mem_ptr\n");
+                    free (m_inp_mem_ptr);
+                    m_inp_mem_ptr = NULL;
+                }
+                if (m_pInput_pmem) {
+                    DEBUG_PRINT_LOW("Freeing m_pInput_pmem\n");
+                    free(m_pInput_pmem);
+                    m_pInput_pmem = NULL;
+                }
+#ifdef USE_ION
+                if (m_pInput_ion) {
+                    DEBUG_PRINT_LOW("Freeing m_pInput_ion\n");
+                    free(m_pInput_ion);
+                    m_pInput_ion = NULL;
+                }
+#endif
+            }
+        } else {
+            DEBUG_PRINT_ERROR("ERROR: free_buffer ,Port Index Invalid\n");
+            eRet = OMX_ErrorBadPortIndex;
+        }
+
+        if (BITMASK_PRESENT((&m_flags),OMX_COMPONENT_INPUT_DISABLE_PENDING)
+                && release_input_done()) {
+            DEBUG_PRINT_LOW("MOVING TO DISABLED STATE \n");
+            BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_DISABLE_PENDING);
+            post_event(OMX_CommandPortDisable,
+                    PORT_INDEX_IN,
+                    OMX_COMPONENT_GENERATE_EVENT);
+        }
+    } else if (port == PORT_INDEX_OUT) {
+        // check if the buffer is valid
+        nPortIndex = buffer - (OMX_BUFFERHEADERTYPE*)m_out_mem_ptr;
+
+        DEBUG_PRINT_LOW("free_buffer on o/p port - Port idx %d, actual cnt %d \n",
+                nPortIndex, m_sOutPortDef.nBufferCountActual);
+        if (nPortIndex < m_sOutPortDef.nBufferCountActual) {
+            // Clear the bit associated with it.
+            BITMASK_CLEAR(&m_out_bm_count,nPortIndex);
+            m_sOutPortDef.bPopulated = OMX_FALSE;
+            free_output_buffer (buffer);
+
+            if (release_output_done()) {
+                output_use_buffer = false;
+                if (m_out_mem_ptr) {
+                    DEBUG_PRINT_LOW("Freeing m_out_mem_ptr\n");
+                    free (m_out_mem_ptr);
+                    m_out_mem_ptr = NULL;
+                }
+                if (m_pOutput_pmem) {
+                    DEBUG_PRINT_LOW("Freeing m_pOutput_pmem\n");
+                    free(m_pOutput_pmem);
+                    m_pOutput_pmem = NULL;
+                }
+#ifdef USE_ION
+                if (m_pOutput_ion) {
+                    DEBUG_PRINT_LOW("Freeing m_pOutput_ion\n");
+                    free(m_pOutput_ion);
+                    m_pOutput_ion = NULL;
+                }
+#endif
+            }
+        } else {
+            DEBUG_PRINT_ERROR("ERROR: free_buffer , Port Index Invalid\n");
+            eRet = OMX_ErrorBadPortIndex;
+        }
+        if (BITMASK_PRESENT((&m_flags),OMX_COMPONENT_OUTPUT_DISABLE_PENDING)
+                && release_output_done() ) {
+            DEBUG_PRINT_LOW("FreeBuffer : If any Disable event pending,post it\n");
+
+            DEBUG_PRINT_LOW("MOVING TO DISABLED STATE \n");
+            BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_DISABLE_PENDING);
+            post_event(OMX_CommandPortDisable,
+                    PORT_INDEX_OUT,
+                    OMX_COMPONENT_GENERATE_EVENT);
+
+        }
+    } else {
+        eRet = OMX_ErrorBadPortIndex;
+    }
+    if ((eRet == OMX_ErrorNone) &&
+            (BITMASK_PRESENT(&m_flags ,OMX_COMPONENT_LOADING_PENDING))) {
+        if (release_done()) {
+            if (dev_stop() != 0) {
+                DEBUG_PRINT_ERROR("ERROR: dev_stop() FAILED\n");
+                eRet = OMX_ErrorHardware;
+            }
+            // Send the callback now
+            BITMASK_CLEAR((&m_flags),OMX_COMPONENT_LOADING_PENDING);
+            post_event(OMX_CommandStateSet, OMX_StateLoaded,
+                    OMX_COMPONENT_GENERATE_EVENT);
+        } else {
+            DEBUG_PRINT_HIGH("in free buffer, release not done, need to free more buffers input 0x%x output 0x%x",
+                    m_out_bm_count, m_inp_bm_count);
+        }
+    }
+
     return eRet;
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("ERROR: Invalid state to free buffer,port lost Buffers\n");
-    post_event(OMX_EventError,
-               OMX_ErrorPortUnpopulated,
-               OMX_COMPONENT_GENERATE_EVENT);
-  }
-
-  if(port == PORT_INDEX_IN)
-  {
-    // check if the buffer is valid
-    nPortIndex = buffer - ((!mUseProxyColorFormat)?m_inp_mem_ptr:meta_buffer_hdr);
-
-    DEBUG_PRINT_LOW("free_buffer on i/p port - Port idx %d, actual cnt %d \n",
-                    nPortIndex, m_sInPortDef.nBufferCountActual);
-    if(nPortIndex < m_sInPortDef.nBufferCountActual)
-    {
-      // Clear the bit associated with it.
-      BITMASK_CLEAR(&m_inp_bm_count,nPortIndex);
-      free_input_buffer (buffer);
-      m_sInPortDef.bPopulated = OMX_FALSE;
-
-      /*Free the Buffer Header*/
-      if(release_input_done()
-#ifdef _ANDROID_ICS_
-         && !meta_mode_enable
-#endif
-         )
-      {
-        input_use_buffer = false;
-        if(m_inp_mem_ptr)
-        {
-          DEBUG_PRINT_LOW("Freeing m_inp_mem_ptr\n");
-          free (m_inp_mem_ptr);
-          m_inp_mem_ptr = NULL;
-        }
-        if(m_pInput_pmem)
-        {
-          DEBUG_PRINT_LOW("Freeing m_pInput_pmem\n");
-          free(m_pInput_pmem);
-          m_pInput_pmem = NULL;
-        }
-#ifdef USE_ION
-        if(m_pInput_ion)
-        {
-          DEBUG_PRINT_LOW("Freeing m_pInput_ion\n");
-          free(m_pInput_ion);
-          m_pInput_ion = NULL;
-        }
-#endif
-      }
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("ERROR: free_buffer ,Port Index Invalid\n");
-      eRet = OMX_ErrorBadPortIndex;
-    }
-
-    if(BITMASK_PRESENT((&m_flags),OMX_COMPONENT_INPUT_DISABLE_PENDING)
-       && release_input_done())
-    {
-      DEBUG_PRINT_LOW("MOVING TO DISABLED STATE \n");
-      BITMASK_CLEAR((&m_flags),OMX_COMPONENT_INPUT_DISABLE_PENDING);
-      post_event(OMX_CommandPortDisable,
-                 PORT_INDEX_IN,
-                 OMX_COMPONENT_GENERATE_EVENT);
-    }
-  }
-  else if(port == PORT_INDEX_OUT)
-  {
-    // check if the buffer is valid
-    nPortIndex = buffer - (OMX_BUFFERHEADERTYPE*)m_out_mem_ptr;
-
-    DEBUG_PRINT_LOW("free_buffer on o/p port - Port idx %d, actual cnt %d \n",
-                    nPortIndex, m_sOutPortDef.nBufferCountActual);
-    if(nPortIndex < m_sOutPortDef.nBufferCountActual)
-    {
-      // Clear the bit associated with it.
-      BITMASK_CLEAR(&m_out_bm_count,nPortIndex);
-      m_sOutPortDef.bPopulated = OMX_FALSE;
-      free_output_buffer (buffer);
-
-      if(release_output_done())
-      {
-        output_use_buffer = false;
-        if(m_out_mem_ptr)
-        {
-          DEBUG_PRINT_LOW("Freeing m_out_mem_ptr\n");
-          free (m_out_mem_ptr);
-          m_out_mem_ptr = NULL;
-        }
-        if(m_pOutput_pmem)
-        {
-          DEBUG_PRINT_LOW("Freeing m_pOutput_pmem\n");
-          free(m_pOutput_pmem);
-          m_pOutput_pmem = NULL;
-        }
-#ifdef USE_ION
-        if(m_pOutput_ion)
-        {
-          DEBUG_PRINT_LOW("Freeing m_pOutput_ion\n");
-          free(m_pOutput_ion);
-          m_pOutput_ion = NULL;
-        }
-#endif
-      }
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("ERROR: free_buffer , Port Index Invalid\n");
-      eRet = OMX_ErrorBadPortIndex;
-    }
-    if(BITMASK_PRESENT((&m_flags),OMX_COMPONENT_OUTPUT_DISABLE_PENDING)
-       && release_output_done() )
-    {
-      DEBUG_PRINT_LOW("FreeBuffer : If any Disable event pending,post it\n");
-
-      DEBUG_PRINT_LOW("MOVING TO DISABLED STATE \n");
-      BITMASK_CLEAR((&m_flags),OMX_COMPONENT_OUTPUT_DISABLE_PENDING);
-      post_event(OMX_CommandPortDisable,
-                 PORT_INDEX_OUT,
-                 OMX_COMPONENT_GENERATE_EVENT);
-
-    }
-  }
-  else
-  {
-    eRet = OMX_ErrorBadPortIndex;
-  }
-  if((eRet == OMX_ErrorNone) &&
-     (BITMASK_PRESENT(&m_flags ,OMX_COMPONENT_LOADING_PENDING)))
-  {
-    if(release_done())
-    {
-      if(dev_stop() != 0)
-      {
-        DEBUG_PRINT_ERROR("ERROR: dev_stop() FAILED\n");
-        eRet = OMX_ErrorHardware;
-      }
-      // Send the callback now
-      BITMASK_CLEAR((&m_flags),OMX_COMPONENT_LOADING_PENDING);
-      post_event(OMX_CommandStateSet, OMX_StateLoaded,
-                 OMX_COMPONENT_GENERATE_EVENT);
-    } else {
-      DEBUG_PRINT_HIGH("in free buffer, release not done, need to free more buffers input 0x%x output 0x%x",
-                       m_out_bm_count, m_inp_bm_count);
-    }
-  }
-
-  return eRet;
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_video::EmptyThisBuffer
+   FUNCTION
+   omx_video::EmptyThisBuffer
 
-DESCRIPTION
-  This routine is used to push the encoded video frames to
-  the video decoder.
+   DESCRIPTION
+   This routine is used to push the encoded video frames to
+   the video decoder.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  OMX Error None if everything went successful.
+   RETURN VALUE
+   OMX Error None if everything went successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::empty_this_buffer(OMX_IN OMX_HANDLETYPE         hComp,
-                                            OMX_IN OMX_BUFFERHEADERTYPE* buffer)
+        OMX_IN OMX_BUFFERHEADERTYPE* buffer)
 {
-  OMX_ERRORTYPE ret1 = OMX_ErrorNone;
-  unsigned int nBufferIndex ;
+    OMX_ERRORTYPE ret1 = OMX_ErrorNone;
+    unsigned int nBufferIndex ;
 
-  DEBUG_PRINT_LOW("\n ETB: buffer = %p, buffer->pBuffer[%p]\n", buffer, buffer->pBuffer);
-  if(m_state == OMX_StateInvalid)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Empty this buffer in Invalid State\n");
-    return OMX_ErrorInvalidState;
-  }
+    DEBUG_PRINT_LOW("\n ETB: buffer = %p, buffer->pBuffer[%p]\n", buffer, buffer->pBuffer);
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("ERROR: Empty this buffer in Invalid State\n");
+        return OMX_ErrorInvalidState;
+    }
 
-  if (buffer == NULL || (buffer->nSize != sizeof(OMX_BUFFERHEADERTYPE)))
-  {
-    DEBUG_PRINT_ERROR("\nERROR: omx_video::etb--> buffer is null or buffer size is invalid");
-    return OMX_ErrorBadParameter;
-  }
+    if (buffer == NULL || (buffer->nSize != sizeof(OMX_BUFFERHEADERTYPE))) {
+        DEBUG_PRINT_ERROR("\nERROR: omx_video::etb--> buffer is null or buffer size is invalid");
+        return OMX_ErrorBadParameter;
+    }
 
-  if(buffer->nVersion.nVersion != OMX_SPEC_VERSION)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: omx_video::etb--> OMX Version Invalid");
-    return OMX_ErrorVersionMismatch;
-  }
+    if (buffer->nVersion.nVersion != OMX_SPEC_VERSION) {
+        DEBUG_PRINT_ERROR("\nERROR: omx_video::etb--> OMX Version Invalid");
+        return OMX_ErrorVersionMismatch;
+    }
 
-  if (buffer->nInputPortIndex != (OMX_U32)PORT_INDEX_IN)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Bad port index to call empty_this_buffer");
-    return OMX_ErrorBadPortIndex;
-  }
-  if(!m_sInPortDef.bEnabled)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Cannot call empty_this_buffer while I/P port is disabled");
-    return OMX_ErrorIncorrectStateOperation;
-  }
+    if (buffer->nInputPortIndex != (OMX_U32)PORT_INDEX_IN) {
+        DEBUG_PRINT_ERROR("\nERROR: Bad port index to call empty_this_buffer");
+        return OMX_ErrorBadPortIndex;
+    }
+    if (!m_sInPortDef.bEnabled) {
+        DEBUG_PRINT_ERROR("\nERROR: Cannot call empty_this_buffer while I/P port is disabled");
+        return OMX_ErrorIncorrectStateOperation;
+    }
 
-  nBufferIndex = buffer - ((!mUseProxyColorFormat)?m_inp_mem_ptr:meta_buffer_hdr);
+    nBufferIndex = buffer - ((!mUseProxyColorFormat)?m_inp_mem_ptr:meta_buffer_hdr);
 
-  if(nBufferIndex > m_sInPortDef.nBufferCountActual )
-  {
-    DEBUG_PRINT_ERROR("ERROR: ETB: Invalid buffer index[%d]\n", nBufferIndex);
-    return OMX_ErrorBadParameter;
-  }
+    if (nBufferIndex > m_sInPortDef.nBufferCountActual ) {
+        DEBUG_PRINT_ERROR("ERROR: ETB: Invalid buffer index[%d]\n", nBufferIndex);
+        return OMX_ErrorBadParameter;
+    }
 
-  m_etb_count++;
-  DEBUG_PRINT_LOW("\n DBG: i/p nTimestamp = %u", (unsigned)buffer->nTimeStamp);
-  post_event ((unsigned)hComp,(unsigned)buffer,m_input_msg_id);
-  return OMX_ErrorNone;
+    m_etb_count++;
+    DEBUG_PRINT_LOW("\n DBG: i/p nTimestamp = %u", (unsigned)buffer->nTimeStamp);
+    post_event ((unsigned)hComp,(unsigned)buffer,m_input_msg_id);
+    return OMX_ErrorNone;
 }
 /* ======================================================================
-FUNCTION
-  omx_video::empty_this_buffer_proxy
+   FUNCTION
+   omx_video::empty_this_buffer_proxy
 
-DESCRIPTION
-  This routine is used to push the encoded video frames to
-  the video decoder.
+   DESCRIPTION
+   This routine is used to push the encoded video frames to
+   the video decoder.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  OMX Error None if everything went successful.
+   RETURN VALUE
+   OMX Error None if everything went successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::empty_this_buffer_proxy(OMX_IN OMX_HANDLETYPE         hComp,
-                                                  OMX_IN OMX_BUFFERHEADERTYPE* buffer)
+        OMX_IN OMX_BUFFERHEADERTYPE* buffer)
 {
-  OMX_U8 *pmem_data_buf = NULL;
-  int push_cnt = 0;
-  unsigned nBufIndex = 0, nBufIndex_meta = 0;
-  OMX_ERRORTYPE ret = OMX_ErrorNone;
-  encoder_media_buffer_type *media_buffer;
+    OMX_U8 *pmem_data_buf = NULL;
+    int push_cnt = 0;
+    unsigned nBufIndex = 0, nBufIndex_meta = 0;
+    OMX_ERRORTYPE ret = OMX_ErrorNone;
+    encoder_media_buffer_type *media_buffer;
 
 #ifdef _MSM8974_
-  int fd = 0;
+    int fd = 0;
 #endif
-  DEBUG_PRINT_LOW("\n ETBProxy: buffer->pBuffer[%p]\n", buffer->pBuffer);
-  if(buffer == NULL)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: ETBProxy: Invalid buffer[%p]\n", buffer);
-    return OMX_ErrorBadParameter;
-  }
-  nBufIndex = buffer - ((OMX_BUFFERHEADERTYPE *)m_inp_mem_ptr);
-  nBufIndex_meta = buffer - meta_buffer_hdr;
-  media_buffer = (encoder_media_buffer_type *)meta_buffer_hdr[nBufIndex].pBuffer;
-  if(nBufIndex >= m_sInPortDef.nBufferCountActual &&
-     nBufIndex_meta >= m_sInPortDef.nBufferCountActual)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: ETBProxy: Invalid bufindex = %u\n", nBufIndex);
-    return OMX_ErrorBadParameter;
-  }
-  pending_input_buffers++;
-  if(input_flush_progress == true)
-  {
-    post_event ((unsigned int)buffer,0,
+    DEBUG_PRINT_LOW("\n ETBProxy: buffer->pBuffer[%p]\n", buffer->pBuffer);
+    if (buffer == NULL) {
+        DEBUG_PRINT_ERROR("\nERROR: ETBProxy: Invalid buffer[%p]\n", buffer);
+        return OMX_ErrorBadParameter;
+    }
+    nBufIndex = buffer - ((OMX_BUFFERHEADERTYPE *)m_inp_mem_ptr);
+    nBufIndex_meta = buffer - meta_buffer_hdr;
+    media_buffer = (encoder_media_buffer_type *)meta_buffer_hdr[nBufIndex].pBuffer;
+    if (nBufIndex >= m_sInPortDef.nBufferCountActual &&
+            nBufIndex_meta >= m_sInPortDef.nBufferCountActual) {
+        DEBUG_PRINT_ERROR("\nERROR: ETBProxy: Invalid bufindex = %u\n", nBufIndex);
+        return OMX_ErrorBadParameter;
+    }
+    pending_input_buffers++;
+    if (input_flush_progress == true) {
+        post_event ((unsigned int)buffer,0,
                 OMX_COMPONENT_GENERATE_EBD);
-    DEBUG_PRINT_ERROR("\nERROR: ETBProxy: Input flush in progress");
-    return OMX_ErrorNone;
-  }
+        DEBUG_PRINT_ERROR("\nERROR: ETBProxy: Input flush in progress");
+        return OMX_ErrorNone;
+    }
 #ifdef _MSM8974_
-  if(!meta_mode_enable ||
-     (media_buffer && media_buffer->buffer_type == kMetadataBufferTypeGrallocSource)) {
-    fd = m_pInput_pmem[nBufIndex].fd;
-  }
+    if (!meta_mode_enable ||
+            (media_buffer && media_buffer->buffer_type == kMetadataBufferTypeGrallocSource)) {
+        fd = m_pInput_pmem[nBufIndex].fd;
+    }
 #endif
 #ifdef _ANDROID_ICS_
-  if(meta_mode_enable && !mUseProxyColorFormat)
-  {
-    bool met_error = false;
-    if(media_buffer)
-    {
-      if (media_buffer->buffer_type != kMetadataBufferTypeCameraSource &&
-          media_buffer->buffer_type != kMetadataBufferTypeGrallocSource)
-          met_error = true;
-      else {
-        if(media_buffer->buffer_type == kMetadataBufferTypeCameraSource)
-        {
-          if(media_buffer->meta_handle == NULL)
+    if (meta_mode_enable && !mUseProxyColorFormat) {
+        bool met_error = false;
+        if (media_buffer) {
+            if (media_buffer->buffer_type != kMetadataBufferTypeCameraSource &&
+                    media_buffer->buffer_type != kMetadataBufferTypeGrallocSource)
+                met_error = true;
+            else {
+                if (media_buffer->buffer_type == kMetadataBufferTypeCameraSource) {
+                    if (media_buffer->meta_handle == NULL)
+                        met_error = true;
+                    else if ((media_buffer->meta_handle->numFds != 1 &&
+                                media_buffer->meta_handle->numInts != 2))
+                        met_error = true;
+                }
+            }
+        } else
             met_error = true;
-          else if((media_buffer->meta_handle->numFds != 1 &&
-                   media_buffer->meta_handle->numInts != 2))
-            met_error = true;
+        if (met_error) {
+            DEBUG_PRINT_ERROR("\nERROR: Unkown source/metahandle in ETB call");
+            post_event ((unsigned int)buffer,0,OMX_COMPONENT_GENERATE_EBD);
+            return OMX_ErrorBadParameter;
         }
-      }
-    } else
-      met_error = true;
-    if(met_error)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: Unkown source/metahandle in ETB call");
-      post_event ((unsigned int)buffer,0,OMX_COMPONENT_GENERATE_EBD);
-      return OMX_ErrorBadParameter;
-    }
-    struct pmem Input_pmem_info;
-    if(media_buffer->buffer_type == kMetadataBufferTypeCameraSource)
-    {
-      Input_pmem_info.buffer = media_buffer;
-      Input_pmem_info.fd = media_buffer->meta_handle->data[0];
+        struct pmem Input_pmem_info;
+        if (media_buffer->buffer_type == kMetadataBufferTypeCameraSource) {
+            Input_pmem_info.buffer = media_buffer;
+            Input_pmem_info.fd = media_buffer->meta_handle->data[0];
 #ifdef _MSM8974_
-      fd = Input_pmem_info.fd;
+            fd = Input_pmem_info.fd;
 #endif
-      Input_pmem_info.offset = media_buffer->meta_handle->data[1];
-      Input_pmem_info.size = media_buffer->meta_handle->data[2];
-      DEBUG_PRINT_LOW("ETB fd = %d, offset = %d, size = %d",Input_pmem_info.fd,
-                        Input_pmem_info.offset,
-                        Input_pmem_info.size);
-    } else {
-      private_handle_t *handle = (private_handle_t *)media_buffer->meta_handle;
-      Input_pmem_info.buffer = media_buffer;
-      Input_pmem_info.fd = handle->fd;
+            Input_pmem_info.offset = media_buffer->meta_handle->data[1];
+            Input_pmem_info.size = media_buffer->meta_handle->data[2];
+            DEBUG_PRINT_LOW("ETB fd = %d, offset = %d, size = %d",Input_pmem_info.fd,
+                    Input_pmem_info.offset,
+                    Input_pmem_info.size);
+        } else {
+            private_handle_t *handle = (private_handle_t *)media_buffer->meta_handle;
+            Input_pmem_info.buffer = media_buffer;
+            Input_pmem_info.fd = handle->fd;
 #ifdef _MSM8974_
-      fd = Input_pmem_info.fd;
+            fd = Input_pmem_info.fd;
 #endif
-      Input_pmem_info.offset = 0;
-      Input_pmem_info.size = handle->size;
-    }
-    if(dev_use_buf(&Input_pmem_info,PORT_INDEX_IN,0) != true) {
-      DEBUG_PRINT_ERROR("\nERROR: in dev_use_buf");
-      post_event ((unsigned int)buffer,0,OMX_COMPONENT_GENERATE_EBD);
-      return OMX_ErrorBadParameter;
-    }
-  }
-  else if(input_use_buffer && !m_use_input_pmem)
+            Input_pmem_info.offset = 0;
+            Input_pmem_info.size = handle->size;
+        }
+        if (dev_use_buf(&Input_pmem_info,PORT_INDEX_IN,0) != true) {
+            DEBUG_PRINT_ERROR("\nERROR: in dev_use_buf");
+            post_event ((unsigned int)buffer,0,OMX_COMPONENT_GENERATE_EBD);
+            return OMX_ErrorBadParameter;
+        }
+    } else if (input_use_buffer && !m_use_input_pmem)
 #else
-  if(input_use_buffer && !m_use_input_pmem)
+        if (input_use_buffer && !m_use_input_pmem)
 #endif
-  {
-    DEBUG_PRINT_LOW("\n Heap UseBuffer case, so memcpy the data");
-    pmem_data_buf = (OMX_U8 *)m_pInput_pmem[nBufIndex].buffer;
-    memcpy (pmem_data_buf, (buffer->pBuffer + buffer->nOffset),
-            buffer->nFilledLen);
-    DEBUG_PRINT_LOW("memcpy() done in ETBProxy for i/p Heap UseBuf");
-  } else if (mUseProxyColorFormat) {
-    fd = m_pInput_pmem[nBufIndex].fd;
-  }
+        {
+            DEBUG_PRINT_LOW("\n Heap UseBuffer case, so memcpy the data");
+            pmem_data_buf = (OMX_U8 *)m_pInput_pmem[nBufIndex].buffer;
+            memcpy (pmem_data_buf, (buffer->pBuffer + buffer->nOffset),
+                    buffer->nFilledLen);
+            DEBUG_PRINT_LOW("memcpy() done in ETBProxy for i/p Heap UseBuf");
+        } else if (mUseProxyColorFormat) {
+            fd = m_pInput_pmem[nBufIndex].fd;
+        }
 #ifdef _MSM8974_
-  if(dev_empty_buf(buffer, pmem_data_buf,nBufIndex,fd) != true)
+    if (dev_empty_buf(buffer, pmem_data_buf,nBufIndex,fd) != true)
 #else
-  if(dev_empty_buf(buffer, pmem_data_buf,0,0) != true)
+        if (dev_empty_buf(buffer, pmem_data_buf,0,0) != true)
 #endif
-  {
-    DEBUG_PRINT_ERROR("\nERROR: ETBProxy: dev_empty_buf failed");
+        {
+            DEBUG_PRINT_ERROR("\nERROR: ETBProxy: dev_empty_buf failed");
 #ifdef _ANDROID_ICS_
-    omx_release_meta_buffer(buffer);
+            omx_release_meta_buffer(buffer);
 #endif
-    post_event ((unsigned int)buffer,0,OMX_COMPONENT_GENERATE_EBD);
-    /*Generate an async error and move to invalid state*/
-    pending_input_buffers--;
-    return OMX_ErrorBadParameter;
-  }
-  return ret;
+            post_event ((unsigned int)buffer,0,OMX_COMPONENT_GENERATE_EBD);
+            /*Generate an async error and move to invalid state*/
+            pending_input_buffers--;
+            return OMX_ErrorBadParameter;
+        }
+    return ret;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_video::FillThisBuffer
+   FUNCTION
+   omx_video::FillThisBuffer
 
-DESCRIPTION
-  IL client uses this method to release the frame buffer
-  after displaying them.
+   DESCRIPTION
+   IL client uses this method to release the frame buffer
+   after displaying them.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::fill_this_buffer(OMX_IN OMX_HANDLETYPE  hComp,
-                                           OMX_IN OMX_BUFFERHEADERTYPE* buffer)
+        OMX_IN OMX_BUFFERHEADERTYPE* buffer)
 {
-  DEBUG_PRINT_LOW("\n FTB: buffer->pBuffer[%p]\n", buffer->pBuffer);
-  if(m_state == OMX_StateInvalid)
-  {
-    DEBUG_PRINT_ERROR("ERROR: FTB in Invalid State\n");
-    return OMX_ErrorInvalidState;
-  }
+    DEBUG_PRINT_LOW("\n FTB: buffer->pBuffer[%p]\n", buffer->pBuffer);
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("ERROR: FTB in Invalid State\n");
+        return OMX_ErrorInvalidState;
+    }
 
-  if (buffer == NULL ||(buffer->nSize != sizeof(OMX_BUFFERHEADERTYPE)))
-  {
-    DEBUG_PRINT_ERROR("ERROR: omx_video::ftb-->Invalid buffer or size\n");
-    return OMX_ErrorBadParameter;
-  }
+    if (buffer == NULL ||(buffer->nSize != sizeof(OMX_BUFFERHEADERTYPE))) {
+        DEBUG_PRINT_ERROR("ERROR: omx_video::ftb-->Invalid buffer or size\n");
+        return OMX_ErrorBadParameter;
+    }
 
-  if(buffer->nVersion.nVersion != OMX_SPEC_VERSION)
-  {
-    DEBUG_PRINT_ERROR("ERROR: omx_video::ftb-->OMX Version Invalid\n");
-    return OMX_ErrorVersionMismatch;
-  }
+    if (buffer->nVersion.nVersion != OMX_SPEC_VERSION) {
+        DEBUG_PRINT_ERROR("ERROR: omx_video::ftb-->OMX Version Invalid\n");
+        return OMX_ErrorVersionMismatch;
+    }
 
-  if (buffer->nOutputPortIndex != (OMX_U32)PORT_INDEX_OUT)
-  {
-    DEBUG_PRINT_ERROR("ERROR: omx_video::ftb-->Bad port index\n");
-    return OMX_ErrorBadPortIndex;
-  }
+    if (buffer->nOutputPortIndex != (OMX_U32)PORT_INDEX_OUT) {
+        DEBUG_PRINT_ERROR("ERROR: omx_video::ftb-->Bad port index\n");
+        return OMX_ErrorBadPortIndex;
+    }
 
-  if(!m_sOutPortDef.bEnabled)
-  {
-    DEBUG_PRINT_ERROR("ERROR: omx_video::ftb-->port is disabled\n");
-    return OMX_ErrorIncorrectStateOperation;
-  }
+    if (!m_sOutPortDef.bEnabled) {
+        DEBUG_PRINT_ERROR("ERROR: omx_video::ftb-->port is disabled\n");
+        return OMX_ErrorIncorrectStateOperation;
+    }
 
-  post_event((unsigned) hComp, (unsigned)buffer,OMX_COMPONENT_GENERATE_FTB);
-  return OMX_ErrorNone;
-}
-
-/* ======================================================================
-FUNCTION
-  omx_video::fill_this_buffer_proxy
-
-DESCRIPTION
-  IL client uses this method to release the frame buffer
-  after displaying them.
-
-PARAMETERS
-  None.
-
-RETURN VALUE
-  true/false
-
-========================================================================== */
-OMX_ERRORTYPE  omx_video::fill_this_buffer_proxy(
-                                                OMX_IN OMX_HANDLETYPE        hComp,
-                                                OMX_IN OMX_BUFFERHEADERTYPE* bufferAdd)
-{
-  OMX_U8 *pmem_data_buf = NULL;
-  OMX_ERRORTYPE nRet = OMX_ErrorNone;
-
-  DEBUG_PRINT_LOW("\n FTBProxy: bufferAdd->pBuffer[%p]\n", bufferAdd->pBuffer);
-
-  if(bufferAdd == NULL || ((bufferAdd - m_out_mem_ptr) >= m_sOutPortDef.nBufferCountActual) )
-  {
-    DEBUG_PRINT_ERROR("\nERROR: FTBProxy: Invalid i/p params\n");
-    return OMX_ErrorBadParameter;
-  }
-
-  pending_output_buffers++;
-  /*Return back the output buffer to client*/
-  if( m_sOutPortDef.bEnabled != OMX_TRUE || output_flush_progress == true)
-  {
-    DEBUG_PRINT_LOW("\n o/p port is Disabled or Flush in Progress");
-    post_event ((unsigned int)bufferAdd,0,
-                OMX_COMPONENT_GENERATE_FBD);
+    post_event((unsigned) hComp, (unsigned)buffer,OMX_COMPONENT_GENERATE_FTB);
     return OMX_ErrorNone;
-  }
-
-  if(output_use_buffer && !m_use_output_pmem)
-  {
-    DEBUG_PRINT_LOW("\n Heap UseBuffer case");
-    pmem_data_buf = (OMX_U8 *)m_pOutput_pmem[bufferAdd - m_out_mem_ptr].buffer;
-  }
-
-  if(dev_fill_buf(bufferAdd, pmem_data_buf,(bufferAdd - m_out_mem_ptr),m_pOutput_pmem[bufferAdd - m_out_mem_ptr].fd) != true)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: dev_fill_buf() Failed");
-    post_event ((unsigned int)bufferAdd,0,OMX_COMPONENT_GENERATE_FBD);
-    pending_output_buffers--;
-    return OMX_ErrorBadParameter;
-  }
-
-  return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_video::SetCallbacks
+   FUNCTION
+   omx_video::fill_this_buffer_proxy
 
-DESCRIPTION
-  Set the callbacks.
+   DESCRIPTION
+   IL client uses this method to release the frame buffer
+   after displaying them.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  OMX Error None if everything successful.
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
+OMX_ERRORTYPE  omx_video::fill_this_buffer_proxy(
+        OMX_IN OMX_HANDLETYPE        hComp,
+        OMX_IN OMX_BUFFERHEADERTYPE* bufferAdd)
+{
+    OMX_U8 *pmem_data_buf = NULL;
+    OMX_ERRORTYPE nRet = OMX_ErrorNone;
+
+    DEBUG_PRINT_LOW("\n FTBProxy: bufferAdd->pBuffer[%p]\n", bufferAdd->pBuffer);
+
+    if (bufferAdd == NULL || ((bufferAdd - m_out_mem_ptr) >= m_sOutPortDef.nBufferCountActual) ) {
+        DEBUG_PRINT_ERROR("\nERROR: FTBProxy: Invalid i/p params\n");
+        return OMX_ErrorBadParameter;
+    }
+
+    pending_output_buffers++;
+    /*Return back the output buffer to client*/
+    if ( m_sOutPortDef.bEnabled != OMX_TRUE || output_flush_progress == true) {
+        DEBUG_PRINT_LOW("\n o/p port is Disabled or Flush in Progress");
+        post_event ((unsigned int)bufferAdd,0,
+                OMX_COMPONENT_GENERATE_FBD);
+        return OMX_ErrorNone;
+    }
+
+    if (output_use_buffer && !m_use_output_pmem) {
+        DEBUG_PRINT_LOW("\n Heap UseBuffer case");
+        pmem_data_buf = (OMX_U8 *)m_pOutput_pmem[bufferAdd - m_out_mem_ptr].buffer;
+    }
+
+    if (dev_fill_buf(bufferAdd, pmem_data_buf,(bufferAdd - m_out_mem_ptr),m_pOutput_pmem[bufferAdd - m_out_mem_ptr].fd) != true) {
+        DEBUG_PRINT_ERROR("\nERROR: dev_fill_buf() Failed");
+        post_event ((unsigned int)bufferAdd,0,OMX_COMPONENT_GENERATE_FBD);
+        pending_output_buffers--;
+        return OMX_ErrorBadParameter;
+    }
+
+    return OMX_ErrorNone;
+}
+
+/* ======================================================================
+   FUNCTION
+   omx_video::SetCallbacks
+
+   DESCRIPTION
+   Set the callbacks.
+
+   PARAMETERS
+   None.
+
+   RETURN VALUE
+   OMX Error None if everything successful.
+
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::set_callbacks(OMX_IN OMX_HANDLETYPE        hComp,
-                                        OMX_IN OMX_CALLBACKTYPE* callbacks,
-                                        OMX_IN OMX_PTR             appData)
+        OMX_IN OMX_CALLBACKTYPE* callbacks,
+        OMX_IN OMX_PTR             appData)
 {
 
-  m_pCallbacks       = *callbacks;
-  DEBUG_PRINT_LOW("\n Callbacks Set %p %p %p",m_pCallbacks.EmptyBufferDone,\
-               m_pCallbacks.EventHandler,m_pCallbacks.FillBufferDone);
-  m_app_data =    appData;
-  return OMX_ErrorNotImplemented;
+    m_pCallbacks       = *callbacks;
+    DEBUG_PRINT_LOW("\n Callbacks Set %p %p %p",m_pCallbacks.EmptyBufferDone,\
+            m_pCallbacks.EventHandler,m_pCallbacks.FillBufferDone);
+    m_app_data =    appData;
+    return OMX_ErrorNotImplemented;
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_venc::UseEGLImage
+   FUNCTION
+   omx_venc::UseEGLImage
 
-DESCRIPTION
-  OMX Use EGL Image method implementation <TBD>.
+   DESCRIPTION
+   OMX Use EGL Image method implementation <TBD>.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  Not Implemented error.
+   RETURN VALUE
+   Not Implemented error.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::use_EGL_image(OMX_IN OMX_HANDLETYPE                hComp,
-                                        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
-                                        OMX_IN OMX_U32                        port,
-                                        OMX_IN OMX_PTR                     appData,
-                                        OMX_IN void*                      eglImage)
+        OMX_INOUT OMX_BUFFERHEADERTYPE** bufferHdr,
+        OMX_IN OMX_U32                        port,
+        OMX_IN OMX_PTR                     appData,
+        OMX_IN void*                      eglImage)
 {
-  DEBUG_PRINT_ERROR("ERROR: use_EGL_image:  Not Implemented \n");
-  return OMX_ErrorNotImplemented;
+    DEBUG_PRINT_ERROR("ERROR: use_EGL_image:  Not Implemented \n");
+    return OMX_ErrorNotImplemented;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_venc::ComponentRoleEnum
+   FUNCTION
+   omx_venc::ComponentRoleEnum
 
-DESCRIPTION
-  OMX Component Role Enum method implementation.
+   DESCRIPTION
+   OMX Component Role Enum method implementation.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if everything is successful.
-========================================================================== */
+   RETURN VALUE
+   OMX Error None if everything is successful.
+   ========================================================================== */
 OMX_ERRORTYPE  omx_video::component_role_enum(OMX_IN OMX_HANDLETYPE hComp,
-                                              OMX_OUT OMX_U8*        role,
-                                              OMX_IN OMX_U32        index)
+        OMX_OUT OMX_U8*        role,
+        OMX_IN OMX_U32        index)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  if(!strncmp((char*)m_nkind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    if (!strncmp((char*)m_nkind, "OMX.qcom.video.decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.mpeg4",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            eRet = OMX_ErrorNoMore;
+        }
+    } else if (!strncmp((char*)m_nkind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.h263",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            DEBUG_PRINT_ERROR("\nERROR: No more roles \n");
+            eRet = OMX_ErrorNoMore;
+        }
+    } else if (!strncmp((char*)m_nkind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.avc",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            DEBUG_PRINT_ERROR("\nERROR: No more roles \n");
+            eRet = OMX_ErrorNoMore;
+        }
+    } else if (!strncmp((char*)m_nkind, "OMX.qcom.video.decoder.vc1",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            DEBUG_PRINT_ERROR("\nERROR: No more roles \n");
+            eRet = OMX_ErrorNoMore;
+        }
     }
-    else
-    {
-      eRet = OMX_ErrorNoMore;
+    if (!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.mpeg4",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_encoder.mpeg4",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            eRet = OMX_ErrorNoMore;
+        }
+    } else if (!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.h263",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_encoder.h263",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            DEBUG_PRINT_ERROR("\nERROR: No more roles \n");
+            eRet = OMX_ErrorNoMore;
+        }
+    } else if (!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.avc",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_encoder.avc",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            DEBUG_PRINT_ERROR("\nERROR: No more roles \n");
+            eRet = OMX_ErrorNoMore;
+        }
     }
-  }
-  else if(!strncmp((char*)m_nkind, "OMX.qcom.video.decoder.h263",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.h263",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("\nERROR: No more roles \n");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else if(!strncmp((char*)m_nkind, "OMX.qcom.video.decoder.avc",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.avc",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("\nERROR: No more roles \n");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else if(!strncmp((char*)m_nkind, "OMX.qcom.video.decoder.vc1",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_decoder.vc1",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("\nERROR: No more roles \n");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  if(!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.mpeg4",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_encoder.mpeg4",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
-    }
-    else
-    {
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else if(!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.h263",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_encoder.h263",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("\nERROR: No more roles \n");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else if(!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.avc",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_encoder.avc",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("\nERROR: No more roles \n");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
 #ifdef _MSM8974_
-  else if(!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.vp8",OMX_MAX_STRINGNAME_SIZE))
-  {
-    if((0 == index) && role)
-    {
-      strlcpy((char *)role, "video_encoder.vp8",OMX_MAX_STRINGNAME_SIZE);
-      DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+    else if (!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.vp8",OMX_MAX_STRINGNAME_SIZE)) {
+        if ((0 == index) && role) {
+            strlcpy((char *)role, "video_encoder.vp8",OMX_MAX_STRINGNAME_SIZE);
+            DEBUG_PRINT_LOW("component_role_enum: role %s\n",role);
+        } else {
+            DEBUG_PRINT_ERROR("\nERROR: No more roles \n");
+            eRet = OMX_ErrorNoMore;
+        }
     }
-    else
-    {
-      DEBUG_PRINT_ERROR("\nERROR: No more roles \n");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
 #endif
-  else
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Querying Role on Unknown Component\n");
-    eRet = OMX_ErrorInvalidComponentName;
-  }
-  return eRet;
+    else {
+        DEBUG_PRINT_ERROR("\nERROR: Querying Role on Unknown Component\n");
+        eRet = OMX_ErrorInvalidComponentName;
+    }
+    return eRet;
 }
 
 
 
 
 /* ======================================================================
-FUNCTION
-  omx_venc::AllocateDone
+   FUNCTION
+   omx_venc::AllocateDone
 
-DESCRIPTION
-  Checks if entire buffer pool is allocated by IL Client or not.
-  Need this to move to IDLE state.
+   DESCRIPTION
+   Checks if entire buffer pool is allocated by IL Client or not.
+   Need this to move to IDLE state.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false.
+   RETURN VALUE
+   true/false.
 
-========================================================================== */
+   ========================================================================== */
 bool omx_video::allocate_done(void)
 {
-  bool bRet = false;
-  bool bRet_In = false;
-  bool bRet_Out = false;
+    bool bRet = false;
+    bool bRet_In = false;
+    bool bRet_Out = false;
 
-  bRet_In = allocate_input_done();
-  bRet_Out = allocate_output_done();
+    bRet_In = allocate_input_done();
+    bRet_Out = allocate_output_done();
 
-  if(bRet_In && bRet_Out)
-  {
-    bRet = true;
-  }
+    if (bRet_In && bRet_Out) {
+        bRet = true;
+    }
 
-  return bRet;
+    return bRet;
 }
 /* ======================================================================
-FUNCTION
-  omx_venc::AllocateInputDone
+   FUNCTION
+   omx_venc::AllocateInputDone
 
-DESCRIPTION
-  Checks if I/P buffer pool is allocated by IL Client or not.
+   DESCRIPTION
+   Checks if I/P buffer pool is allocated by IL Client or not.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false.
+   RETURN VALUE
+   true/false.
 
-========================================================================== */
+   ========================================================================== */
 bool omx_video::allocate_input_done(void)
 {
-  bool bRet = false;
-  unsigned i=0;
+    bool bRet = false;
+    unsigned i=0;
 
-  if(m_inp_mem_ptr == NULL)
-  {
-    return bRet;
-  }
-  if(m_inp_mem_ptr )
-  {
-    for(;i<m_sInPortDef.nBufferCountActual;i++)
-    {
-      if(BITMASK_ABSENT(&m_inp_bm_count,i))
-      {
-        break;
-      }
+    if (m_inp_mem_ptr == NULL) {
+        return bRet;
     }
-  }
-  if(i==m_sInPortDef.nBufferCountActual)
-  {
-    bRet = true;
-  }
-  if(i==m_sInPortDef.nBufferCountActual && m_sInPortDef.bEnabled)
-  {
-    m_sInPortDef.bPopulated = OMX_TRUE;
-  }
-  return bRet;
+    if (m_inp_mem_ptr ) {
+        for (; i<m_sInPortDef.nBufferCountActual; i++) {
+            if (BITMASK_ABSENT(&m_inp_bm_count,i)) {
+                break;
+            }
+        }
+    }
+    if (i==m_sInPortDef.nBufferCountActual) {
+        bRet = true;
+    }
+    if (i==m_sInPortDef.nBufferCountActual && m_sInPortDef.bEnabled) {
+        m_sInPortDef.bPopulated = OMX_TRUE;
+    }
+    return bRet;
 }
 /* ======================================================================
-FUNCTION
-  omx_venc::AllocateOutputDone
+   FUNCTION
+   omx_venc::AllocateOutputDone
 
-DESCRIPTION
-  Checks if entire O/P buffer pool is allocated by IL Client or not.
+   DESCRIPTION
+   Checks if entire O/P buffer pool is allocated by IL Client or not.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false.
+   RETURN VALUE
+   true/false.
 
-========================================================================== */
+   ========================================================================== */
 bool omx_video::allocate_output_done(void)
 {
-  bool bRet = false;
-  unsigned j=0;
+    bool bRet = false;
+    unsigned j=0;
 
-  if(m_out_mem_ptr == NULL)
-  {
-    return bRet;
-  }
-
-  if(m_out_mem_ptr )
-  {
-    for(;j<m_sOutPortDef.nBufferCountActual;j++)
-    {
-      if(BITMASK_ABSENT(&m_out_bm_count,j))
-      {
-        break;
-      }
+    if (m_out_mem_ptr == NULL) {
+        return bRet;
     }
-  }
 
-  if(j==m_sOutPortDef.nBufferCountActual)
-  {
-    bRet = true;
-  }
+    if (m_out_mem_ptr ) {
+        for (; j<m_sOutPortDef.nBufferCountActual; j++) {
+            if (BITMASK_ABSENT(&m_out_bm_count,j)) {
+                break;
+            }
+        }
+    }
 
-  if(j==m_sOutPortDef.nBufferCountActual && m_sOutPortDef.bEnabled)
-  {
-    m_sOutPortDef.bPopulated = OMX_TRUE;
-  }
-  return bRet;
+    if (j==m_sOutPortDef.nBufferCountActual) {
+        bRet = true;
+    }
+
+    if (j==m_sOutPortDef.nBufferCountActual && m_sOutPortDef.bEnabled) {
+        m_sOutPortDef.bPopulated = OMX_TRUE;
+    }
+    return bRet;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_venc::ReleaseDone
+   FUNCTION
+   omx_venc::ReleaseDone
 
-DESCRIPTION
-  Checks if IL client has released all the buffers.
+   DESCRIPTION
+   Checks if IL client has released all the buffers.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 bool omx_video::release_done(void)
 {
-  bool bRet = false;
-  DEBUG_PRINT_LOW("Inside release_done()\n");
-  if(release_input_done())
-  {
-    if(release_output_done())
-    {
-      bRet = true;
+    bool bRet = false;
+    DEBUG_PRINT_LOW("Inside release_done()\n");
+    if (release_input_done()) {
+        if (release_output_done()) {
+            bRet = true;
+        }
     }
-  }
-  return bRet;
+    return bRet;
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_venc::ReleaseOutputDone
+   FUNCTION
+   omx_venc::ReleaseOutputDone
 
-DESCRIPTION
-  Checks if IL client has released all the buffers.
+   DESCRIPTION
+   Checks if IL client has released all the buffers.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 bool omx_video::release_output_done(void)
 {
-  bool bRet = false;
-  unsigned i=0,j=0;
+    bool bRet = false;
+    unsigned i=0,j=0;
 
-  DEBUG_PRINT_LOW("Inside release_output_done()\n");
-  if(m_out_mem_ptr)
-  {
-    for(;j<m_sOutPortDef.nBufferCountActual;j++)
-    {
-      if(BITMASK_PRESENT(&m_out_bm_count,j))
-      {
-        break;
-      }
+    DEBUG_PRINT_LOW("Inside release_output_done()\n");
+    if (m_out_mem_ptr) {
+        for (; j<m_sOutPortDef.nBufferCountActual; j++) {
+            if (BITMASK_PRESENT(&m_out_bm_count,j)) {
+                break;
+            }
+        }
+        if (j==m_sOutPortDef.nBufferCountActual) {
+            bRet = true;
+        }
+    } else {
+        bRet = true;
     }
-    if(j==m_sOutPortDef.nBufferCountActual)
-    {
-      bRet = true;
-    }
-  }
-  else
-  {
-    bRet = true;
-  }
-  return bRet;
+    return bRet;
 }
 /* ======================================================================
-FUNCTION
-  omx_venc::ReleaseInputDone
+   FUNCTION
+   omx_venc::ReleaseInputDone
 
-DESCRIPTION
-  Checks if IL client has released all the buffers.
+   DESCRIPTION
+   Checks if IL client has released all the buffers.
 
-PARAMETERS
-  None.
+   PARAMETERS
+   None.
 
-RETURN VALUE
-  true/false
+   RETURN VALUE
+   true/false
 
-========================================================================== */
+   ========================================================================== */
 bool omx_video::release_input_done(void)
 {
-  bool bRet = false;
-  unsigned i=0,j=0;
+    bool bRet = false;
+    unsigned i=0,j=0;
 
-  DEBUG_PRINT_LOW("Inside release_input_done()\n");
-  if(m_inp_mem_ptr)
-  {
-    for(;j<m_sInPortDef.nBufferCountActual;j++)
-    {
-      if( BITMASK_PRESENT(&m_inp_bm_count,j))
-      {
-        break;
-      }
+    DEBUG_PRINT_LOW("Inside release_input_done()\n");
+    if (m_inp_mem_ptr) {
+        for (; j<m_sInPortDef.nBufferCountActual; j++) {
+            if ( BITMASK_PRESENT(&m_inp_bm_count,j)) {
+                break;
+            }
+        }
+        if (j==m_sInPortDef.nBufferCountActual) {
+            bRet = true;
+        }
+    } else {
+        bRet = true;
     }
-    if(j==m_sInPortDef.nBufferCountActual)
-    {
-      bRet = true;
-    }
-  }
-  else
-  {
-    bRet = true;
-  }
-  return bRet;
+    return bRet;
 }
 
 OMX_ERRORTYPE omx_video::fill_buffer_done(OMX_HANDLETYPE hComp,
-                                          OMX_BUFFERHEADERTYPE * buffer)
+        OMX_BUFFERHEADERTYPE * buffer)
 {
 #ifdef _MSM8974_
     int index = buffer - m_out_mem_ptr;
 #endif
     DEBUG_PRINT_LOW("fill_buffer_done: buffer->pBuffer[%p], flags=0x%x size = %d",
-                    buffer->pBuffer, buffer->nFlags,buffer->nFilledLen);
-  if(buffer == NULL || ((buffer - m_out_mem_ptr) > m_sOutPortDef.nBufferCountActual))
-  {
-    return OMX_ErrorBadParameter;
-  }
+            buffer->pBuffer, buffer->nFlags,buffer->nFilledLen);
+    if (buffer == NULL || ((buffer - m_out_mem_ptr) > m_sOutPortDef.nBufferCountActual)) {
+        return OMX_ErrorBadParameter;
+    }
 
-  pending_output_buffers--;
+    pending_output_buffers--;
 
-  extra_data_handle.create_extra_data(buffer);
+    extra_data_handle.create_extra_data(buffer);
 #ifndef _MSM8974_
-  if(buffer->nFlags & OMX_BUFFERFLAG_EXTRADATA) {
-    DEBUG_PRINT_LOW("parsing extradata");
-    extra_data_handle.parse_extra_data(buffer);
-  }
+    if (buffer->nFlags & OMX_BUFFERFLAG_EXTRADATA) {
+        DEBUG_PRINT_LOW("parsing extradata");
+        extra_data_handle.parse_extra_data(buffer);
+    }
 #endif
-  /* For use buffer we need to copy the data */
-  if(m_pCallbacks.FillBufferDone)
-  {
-    if(buffer->nFilledLen > 0)
-    {
-      m_fbd_count++;
+    /* For use buffer we need to copy the data */
+    if (m_pCallbacks.FillBufferDone) {
+        if (buffer->nFilledLen > 0) {
+            m_fbd_count++;
 
 #ifdef OUTPUT_BUFFER_LOG
-      if(outputBufferFile1)
-      {
-        fwrite((const char *)buffer->pBuffer, buffer->nFilledLen, 1, outputBufferFile1);
-      }
+            if (outputBufferFile1) {
+                fwrite((const char *)buffer->pBuffer, buffer->nFilledLen, 1, outputBufferFile1);
+            }
 #endif
-    }
+        }
 #ifdef _MSM8974_
-    if(buffer->nFlags & OMX_BUFFERFLAG_EXTRADATA) {
-      if(!dev_handle_extradata((void *)buffer, index))
-        DEBUG_PRINT_ERROR("Failed to parse extradata\n");
-    }
+        if (buffer->nFlags & OMX_BUFFERFLAG_EXTRADATA) {
+            if (!dev_handle_extradata((void *)buffer, index))
+                DEBUG_PRINT_ERROR("Failed to parse extradata\n");
+        }
 #endif
-    m_pCallbacks.FillBufferDone (hComp,m_app_data,buffer);
-  }
-  else
-  {
-    return OMX_ErrorBadParameter;
-  }
-  return OMX_ErrorNone;
+        m_pCallbacks.FillBufferDone (hComp,m_app_data,buffer);
+    } else {
+        return OMX_ErrorBadParameter;
+    }
+    return OMX_ErrorNone;
 }
 
 OMX_ERRORTYPE omx_video::empty_buffer_done(OMX_HANDLETYPE         hComp,
-                                           OMX_BUFFERHEADERTYPE* buffer)
+        OMX_BUFFERHEADERTYPE* buffer)
 {
-  int buffer_index  = -1;
-  int buffer_index_meta = -1;
+    int buffer_index  = -1;
+    int buffer_index_meta = -1;
 
-  buffer_index = (buffer - m_inp_mem_ptr);
-  buffer_index_meta = (buffer - meta_buffer_hdr);
-  DEBUG_PRINT_LOW("\n empty_buffer_done: buffer[%p]", buffer);
-  if(buffer == NULL ||
-     ((buffer_index > m_sInPortDef.nBufferCountActual) &&
-      (buffer_index_meta > m_sInPortDef.nBufferCountActual)))
-  {
-    DEBUG_PRINT_ERROR("\n ERROR in empty_buffer_done due to index buffer");
-    return OMX_ErrorBadParameter;
-  }
-
-  pending_input_buffers--;
-
-  if(mUseProxyColorFormat && (buffer_index < m_sInPortDef.nBufferCountActual)) {
-    if(!pdest_frame) {
-      pdest_frame = buffer;
-      DEBUG_PRINT_LOW("\n empty_buffer_done pdest_frame address is %p",pdest_frame);
-      return push_input_buffer(hComp);
-
-    } else {
-      DEBUG_PRINT_LOW("\n empty_buffer_done insert address is %p",buffer);
-      if (!m_opq_pmem_q.insert_entry((unsigned int)buffer, 0, 0)) {
-        DEBUG_PRINT_ERROR("\n empty_buffer_done: pmem queue is full");
+    buffer_index = (buffer - m_inp_mem_ptr);
+    buffer_index_meta = (buffer - meta_buffer_hdr);
+    DEBUG_PRINT_LOW("\n empty_buffer_done: buffer[%p]", buffer);
+    if (buffer == NULL ||
+            ((buffer_index > m_sInPortDef.nBufferCountActual) &&
+             (buffer_index_meta > m_sInPortDef.nBufferCountActual))) {
+        DEBUG_PRINT_ERROR("\n ERROR in empty_buffer_done due to index buffer");
         return OMX_ErrorBadParameter;
-      }
     }
-  } else if(m_pCallbacks.EmptyBufferDone) {
-    m_pCallbacks.EmptyBufferDone(hComp ,m_app_data, buffer);
-  }
-  return OMX_ErrorNone;
+
+    pending_input_buffers--;
+
+    if (mUseProxyColorFormat && (buffer_index < m_sInPortDef.nBufferCountActual)) {
+        if (!pdest_frame) {
+            pdest_frame = buffer;
+            DEBUG_PRINT_LOW("\n empty_buffer_done pdest_frame address is %p",pdest_frame);
+            return push_input_buffer(hComp);
+
+        } else {
+            DEBUG_PRINT_LOW("\n empty_buffer_done insert address is %p",buffer);
+            if (!m_opq_pmem_q.insert_entry((unsigned int)buffer, 0, 0)) {
+                DEBUG_PRINT_ERROR("\n empty_buffer_done: pmem queue is full");
+                return OMX_ErrorBadParameter;
+            }
+        }
+    } else if (m_pCallbacks.EmptyBufferDone) {
+        m_pCallbacks.EmptyBufferDone(hComp ,m_app_data, buffer);
+    }
+    return OMX_ErrorNone;
 }
 
 void omx_video::complete_pending_buffer_done_cbs()
 {
-  unsigned p1;
-  unsigned p2;
-  unsigned ident;
-  omx_cmd_queue tmp_q, pending_bd_q;
-  pthread_mutex_lock(&m_lock);
-  // pop all pending GENERATE FDB from ftb queue
-  while (m_ftb_q.m_size)
-  {
-    m_ftb_q.pop_entry(&p1,&p2,&ident);
-    if(ident == OMX_COMPONENT_GENERATE_FBD)
-    {
-      pending_bd_q.insert_entry(p1,p2,ident);
-    }
-    else
-    {
-      tmp_q.insert_entry(p1,p2,ident);
-    }
-  }
-  //return all non GENERATE FDB to ftb queue
-  while(tmp_q.m_size)
-  {
-    tmp_q.pop_entry(&p1,&p2,&ident);
-    m_ftb_q.insert_entry(p1,p2,ident);
-  }
-  // pop all pending GENERATE EDB from etb queue
-  while (m_etb_q.m_size)
-  {
-    m_etb_q.pop_entry(&p1,&p2,&ident);
-    if(ident == OMX_COMPONENT_GENERATE_EBD)
-    {
-      pending_bd_q.insert_entry(p1,p2,ident);
-    }
-    else
-    {
-      tmp_q.insert_entry(p1,p2,ident);
-    }
-  }
-  //return all non GENERATE FDB to etb queue
-  while(tmp_q.m_size)
-  {
-    tmp_q.pop_entry(&p1,&p2,&ident);
-    m_etb_q.insert_entry(p1,p2,ident);
-  }
-  pthread_mutex_unlock(&m_lock);
-  // process all pending buffer dones
-  while(pending_bd_q.m_size)
-  {
-    pending_bd_q.pop_entry(&p1,&p2,&ident);
-    switch(ident)
-    {
-    case OMX_COMPONENT_GENERATE_EBD:
-        if(empty_buffer_done(&m_cmp, (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: empty_buffer_done() failed!\n");
-          omx_report_error ();
+    unsigned p1;
+    unsigned p2;
+    unsigned ident;
+    omx_cmd_queue tmp_q, pending_bd_q;
+    pthread_mutex_lock(&m_lock);
+    // pop all pending GENERATE FDB from ftb queue
+    while (m_ftb_q.m_size) {
+        m_ftb_q.pop_entry(&p1,&p2,&ident);
+        if (ident == OMX_COMPONENT_GENERATE_FBD) {
+            pending_bd_q.insert_entry(p1,p2,ident);
+        } else {
+            tmp_q.insert_entry(p1,p2,ident);
         }
-        break;
+    }
+    //return all non GENERATE FDB to ftb queue
+    while (tmp_q.m_size) {
+        tmp_q.pop_entry(&p1,&p2,&ident);
+        m_ftb_q.insert_entry(p1,p2,ident);
+    }
+    // pop all pending GENERATE EDB from etb queue
+    while (m_etb_q.m_size) {
+        m_etb_q.pop_entry(&p1,&p2,&ident);
+        if (ident == OMX_COMPONENT_GENERATE_EBD) {
+            pending_bd_q.insert_entry(p1,p2,ident);
+        } else {
+            tmp_q.insert_entry(p1,p2,ident);
+        }
+    }
+    //return all non GENERATE FDB to etb queue
+    while (tmp_q.m_size) {
+        tmp_q.pop_entry(&p1,&p2,&ident);
+        m_etb_q.insert_entry(p1,p2,ident);
+    }
+    pthread_mutex_unlock(&m_lock);
+    // process all pending buffer dones
+    while (pending_bd_q.m_size) {
+        pending_bd_q.pop_entry(&p1,&p2,&ident);
+        switch (ident) {
+            case OMX_COMPONENT_GENERATE_EBD:
+                if (empty_buffer_done(&m_cmp, (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone) {
+                    DEBUG_PRINT_ERROR("\nERROR: empty_buffer_done() failed!\n");
+                    omx_report_error ();
+                }
+                break;
 
-      case OMX_COMPONENT_GENERATE_FBD:
-        if(fill_buffer_done(&m_cmp, (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone )
-        {
-          DEBUG_PRINT_ERROR("\nERROR: fill_buffer_done() failed!\n");
-          omx_report_error ();
+            case OMX_COMPONENT_GENERATE_FBD:
+                if (fill_buffer_done(&m_cmp, (OMX_BUFFERHEADERTYPE *)p1) != OMX_ErrorNone ) {
+                    DEBUG_PRINT_ERROR("\nERROR: fill_buffer_done() failed!\n");
+                    omx_report_error ();
+                }
+                break;
         }
-        break;
     }
-  }
 }
 
 #ifdef MAX_RES_720P
 OMX_ERRORTYPE omx_video::get_supported_profile_level(OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  if(!profileLevelType)
-    return OMX_ErrorBadParameter;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    if (!profileLevelType)
+        return OMX_ErrorBadParameter;
 
-  if(profileLevelType->nPortIndex == 1) {
-    if (m_sOutPortDef.format.video.eCompressionFormat == OMX_VIDEO_CodingAVC)
-    {
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileBaseline;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel31;
-      }
-      else if (profileLevelType->nProfileIndex == 1)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileMain;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel31;
-      }
-      else if(profileLevelType->nProfileIndex == 2)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileHigh;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel31;
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n",
-            profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
+    if (profileLevelType->nPortIndex == 1) {
+        if (m_sOutPortDef.format.video.eCompressionFormat == OMX_VIDEO_CodingAVC) {
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileBaseline;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel31;
+            } else if (profileLevelType->nProfileIndex == 1) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileMain;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel31;
+            } else if (profileLevelType->nProfileIndex == 2) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileHigh;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel31;
+            } else {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n",
+                        profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        } else if (m_sOutPortDef.format.video.eCompressionFormat == OMX_VIDEO_CodingH263) {
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_H263ProfileBaseline;
+                profileLevelType->eLevel   = OMX_VIDEO_H263Level70;
+            } else {
+                DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n", profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        } else if (m_sOutPortDef.format.video.eCompressionFormat == OMX_VIDEO_CodingMPEG4) {
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileSimple;
+                profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
+            } else if (profileLevelType->nProfileIndex == 1) {
+                profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileAdvancedSimple;
+                profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
+            } else {
+                DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n", profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        }
+    } else {
+        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported should be queries on Input port only %d\n", profileLevelType->nPortIndex);
+        eRet = OMX_ErrorBadPortIndex;
     }
-    else if (m_sOutPortDef.format.video.eCompressionFormat == OMX_VIDEO_CodingH263)
-    {
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_H263ProfileBaseline;
-        profileLevelType->eLevel   = OMX_VIDEO_H263Level70;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n", profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
-    }
-    else if(m_sOutPortDef.format.video.eCompressionFormat == OMX_VIDEO_CodingMPEG4)
-    {
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileSimple;
-        profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
-      }
-      else if(profileLevelType->nProfileIndex == 1)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileAdvancedSimple;
-        profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n", profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
-    }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported should be queries on Input port only %d\n", profileLevelType->nPortIndex);
-    eRet = OMX_ErrorBadPortIndex;
-  }
-  DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported for Input port returned Profile:%d, Level:%d\n",
-                    profileLevelType->eProfile,profileLevelType->eLevel);
-  return eRet;
+    DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported for Input port returned Profile:%d, Level:%d\n",
+            profileLevelType->eProfile,profileLevelType->eLevel);
+    return eRet;
 }
 #endif
 
 #ifdef MAX_RES_1080P
 OMX_ERRORTYPE omx_video::get_supported_profile_level(OMX_VIDEO_PARAM_PROFILELEVELTYPE *profileLevelType)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
-  if(!profileLevelType)
-    return OMX_ErrorBadParameter;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    if (!profileLevelType)
+        return OMX_ErrorBadParameter;
 
-  if(profileLevelType->nPortIndex == 1) {
-    if (m_sOutPortDef.format.video.eCompressionFormat == OMX_VIDEO_CodingAVC)
-    {
+    if (profileLevelType->nPortIndex == 1) {
+        if (m_sOutPortDef.format.video.eCompressionFormat == OMX_VIDEO_CodingAVC) {
 #ifdef _MSM8974_
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileBaseline;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel51;
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileBaseline;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel51;
 
-      }
-      else if (profileLevelType->nProfileIndex == 1)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileMain;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel51;
-      }
-      else if(profileLevelType->nProfileIndex == 2)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileHigh;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel51;
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n",
-            profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
+            } else if (profileLevelType->nProfileIndex == 1) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileMain;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel51;
+            } else if (profileLevelType->nProfileIndex == 2) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileHigh;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel51;
+            } else {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n",
+                        profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
 #else
-    if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileBaseline;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileBaseline;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
 
-      }
-      else if (profileLevelType->nProfileIndex == 1)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileMain;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
-      }
-      else if(profileLevelType->nProfileIndex == 2)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_AVCProfileHigh;
-        profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n",
-            profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
+            } else if (profileLevelType->nProfileIndex == 1) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileMain;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
+            } else if (profileLevelType->nProfileIndex == 2) {
+                profileLevelType->eProfile = OMX_VIDEO_AVCProfileHigh;
+                profileLevelType->eLevel   = OMX_VIDEO_AVCLevel4;
+            } else {
+                DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %d\n",
+                        profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
 #endif
+        } else if (m_sOutPortDef.format.video.eCompressionFormat == OMX_VIDEO_CodingH263) {
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_H263ProfileBaseline;
+                profileLevelType->eLevel   = OMX_VIDEO_H263Level70;
+            } else {
+                DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %lu\n", profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        } else if (m_sOutPortDef.format.video.eCompressionFormat == OMX_VIDEO_CodingMPEG4) {
+            if (profileLevelType->nProfileIndex == 0) {
+                profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileSimple;
+                profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
+            } else if (profileLevelType->nProfileIndex == 1) {
+                profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileAdvancedSimple;
+                profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
+            } else {
+                DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %lu\n", profileLevelType->nProfileIndex);
+                eRet = OMX_ErrorNoMore;
+            }
+        } else {
+            DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported ret NoMore\n");
+            eRet = OMX_ErrorNoMore;
+        }
+    } else {
+        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported should be queries on Input port only %lu\n", profileLevelType->nPortIndex);
+        eRet = OMX_ErrorBadPortIndex;
     }
-    else if (m_sOutPortDef.format.video.eCompressionFormat == OMX_VIDEO_CodingH263)
-    {
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_H263ProfileBaseline;
-        profileLevelType->eLevel   = OMX_VIDEO_H263Level70;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %lu\n", profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
-    }
-    else if(m_sOutPortDef.format.video.eCompressionFormat == OMX_VIDEO_CodingMPEG4)
-    {
-      if (profileLevelType->nProfileIndex == 0)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileSimple;
-        profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
-      }
-      else if(profileLevelType->nProfileIndex == 1)
-      {
-        profileLevelType->eProfile = OMX_VIDEO_MPEG4ProfileAdvancedSimple;
-        profileLevelType->eLevel   = OMX_VIDEO_MPEG4Level5;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported nProfileIndex ret NoMore %lu\n", profileLevelType->nProfileIndex);
-        eRet = OMX_ErrorNoMore;
-      }
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported ret NoMore\n");
-      eRet = OMX_ErrorNoMore;
-    }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported should be queries on Input port only %lu\n", profileLevelType->nPortIndex);
-    eRet = OMX_ErrorBadPortIndex;
-  }
-  DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported for Input port returned Profile:%lu, Level:%lu\n",
-                    profileLevelType->eProfile,profileLevelType->eLevel);
-  return eRet;
+    DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoProfileLevelQuerySupported for Input port returned Profile:%lu, Level:%lu\n",
+            profileLevelType->eProfile,profileLevelType->eLevel);
+    return eRet;
 }
 #endif
 
 #ifdef USE_ION
 int alloc_map_ion_memory(int size,struct ion_allocation_data *alloc_data,
-                                    struct ion_fd_data *fd_data,int flag)
+        struct ion_fd_data *fd_data,int flag)
 {
-        struct venc_ion buf_ion_info;
-        int ion_device_fd =-1,rc=0,ion_dev_flags = 0;
-        if (size <=0 || !alloc_data || !fd_data) {
-		DEBUG_PRINT_ERROR("\nInvalid input to alloc_map_ion_memory");
-		return -EINVAL;
-	}
+    struct venc_ion buf_ion_info;
+    int ion_device_fd =-1,rc=0,ion_dev_flags = 0;
+    if (size <=0 || !alloc_data || !fd_data) {
+        DEBUG_PRINT_ERROR("\nInvalid input to alloc_map_ion_memory");
+        return -EINVAL;
+    }
 
-        ion_dev_flags = O_RDONLY;
-        ion_device_fd = open (MEM_DEVICE,ion_dev_flags);
-        if(ion_device_fd < 0)
-        {
-           DEBUG_PRINT_ERROR("\nERROR: ION Device open() Failed");
-           return ion_device_fd;
-        }
-        alloc_data->len = size;
-        alloc_data->align = 4096;
-        alloc_data->flags = flag;
-#ifdef MAX_RES_720P
-        alloc_data->len = (size + (alloc_data->align - 1)) & ~(alloc_data->align - 1);
-        alloc_data->heap_mask = ION_HEAP(MEM_HEAP_ID);
-#else
-        alloc_data->heap_mask = (ION_HEAP(MEM_HEAP_ID) |
-                              ION_HEAP(ION_IOMMU_HEAP_ID));
-#endif
-        rc = ioctl(ion_device_fd,ION_IOC_ALLOC,alloc_data);
-        if(rc || !alloc_data->handle) {
-           DEBUG_PRINT_ERROR("\n ION ALLOC memory failed ");
-           alloc_data->handle =NULL;
-           close(ion_device_fd);
-           ion_device_fd = -1;
-           return ion_device_fd;
-        }
-        fd_data->handle = alloc_data->handle;
-        rc = ioctl(ion_device_fd,ION_IOC_MAP,fd_data);
-        if(rc) {
-            DEBUG_PRINT_ERROR("\n ION MAP failed ");
-            buf_ion_info.ion_alloc_data = *alloc_data;
-            buf_ion_info.ion_device_fd = ion_device_fd;
-            buf_ion_info.fd_ion_data = *fd_data;
-            free_ion_memory(&buf_ion_info);
-            fd_data->fd =-1;
-            ion_device_fd =-1;
-        }
+    ion_dev_flags = O_RDONLY;
+    ion_device_fd = open (MEM_DEVICE,ion_dev_flags);
+    if (ion_device_fd < 0) {
+        DEBUG_PRINT_ERROR("\nERROR: ION Device open() Failed");
         return ion_device_fd;
+    }
+    alloc_data->len = size;
+    alloc_data->align = 4096;
+    alloc_data->flags = flag;
+#ifdef MAX_RES_720P
+    alloc_data->len = (size + (alloc_data->align - 1)) & ~(alloc_data->align - 1);
+    alloc_data->heap_mask = ION_HEAP(MEM_HEAP_ID);
+#else
+    alloc_data->heap_mask = (ION_HEAP(MEM_HEAP_ID) |
+            ION_HEAP(ION_IOMMU_HEAP_ID));
+#endif
+    rc = ioctl(ion_device_fd,ION_IOC_ALLOC,alloc_data);
+    if (rc || !alloc_data->handle) {
+        DEBUG_PRINT_ERROR("\n ION ALLOC memory failed ");
+        alloc_data->handle =NULL;
+        close(ion_device_fd);
+        ion_device_fd = -1;
+        return ion_device_fd;
+    }
+    fd_data->handle = alloc_data->handle;
+    rc = ioctl(ion_device_fd,ION_IOC_MAP,fd_data);
+    if (rc) {
+        DEBUG_PRINT_ERROR("\n ION MAP failed ");
+        buf_ion_info.ion_alloc_data = *alloc_data;
+        buf_ion_info.ion_device_fd = ion_device_fd;
+        buf_ion_info.fd_ion_data = *fd_data;
+        free_ion_memory(&buf_ion_info);
+        fd_data->fd =-1;
+        ion_device_fd =-1;
+    }
+    return ion_device_fd;
 }
 
 void free_ion_memory(struct venc_ion *buf_ion_info)
 {
-     if (!buf_ion_info) {
+    if (!buf_ion_info) {
         DEBUG_PRINT_ERROR("\n Invalid input to free_ion_memory");
-	return;
-     }
-     if (ioctl(buf_ion_info->ion_device_fd,ION_IOC_FREE,
-              &buf_ion_info->ion_alloc_data.handle)) {
-         DEBUG_PRINT_ERROR("\n ION free failed ");
-         return;
-     }
-     close(buf_ion_info->ion_device_fd);
-     buf_ion_info->ion_alloc_data.handle = NULL;
-     buf_ion_info->ion_device_fd = -1;
-     buf_ion_info->fd_ion_data.fd = -1;
+        return;
+    }
+    if (ioctl(buf_ion_info->ion_device_fd,ION_IOC_FREE,
+                &buf_ion_info->ion_alloc_data.handle)) {
+        DEBUG_PRINT_ERROR("\n ION free failed ");
+        return;
+    }
+    close(buf_ion_info->ion_device_fd);
+    buf_ion_info->ion_alloc_data.handle = NULL;
+    buf_ion_info->ion_device_fd = -1;
+    buf_ion_info->fd_ion_data.fd = -1;
 }
 #endif
 
 #ifdef _ANDROID_ICS_
 void omx_video::omx_release_meta_buffer(OMX_BUFFERHEADERTYPE *buffer)
 {
-  if(buffer && meta_mode_enable)
-  {
-    encoder_media_buffer_type *media_ptr;
-    struct pmem Input_pmem;
-    unsigned int index_pmem = 0;
-    bool meta_error = false;
+    if (buffer && meta_mode_enable) {
+        encoder_media_buffer_type *media_ptr;
+        struct pmem Input_pmem;
+        unsigned int index_pmem = 0;
+        bool meta_error = false;
 
-    index_pmem = (buffer - m_inp_mem_ptr);
-    if(mUseProxyColorFormat &&
-       (index_pmem < m_sInPortDef.nBufferCountActual)) {
-        if(!dev_free_buf((&m_pInput_pmem[index_pmem]),PORT_INDEX_IN)){
-          DEBUG_PRINT_ERROR("\n omx_release_meta_buffer dev free failed");
-        }
-    } else {
-      media_ptr = (encoder_media_buffer_type *) buffer->pBuffer;
-      if(media_ptr && media_ptr->meta_handle)
-      {
-        if(media_ptr->buffer_type == kMetadataBufferTypeCameraSource &&
-           media_ptr->meta_handle->numFds == 1 &&
-           media_ptr->meta_handle->numInts == 2) {
-          Input_pmem.fd = media_ptr->meta_handle->data[0];
-          Input_pmem.buffer = media_ptr;
-          Input_pmem.size = media_ptr->meta_handle->data[2];
-          Input_pmem.offset = media_ptr->meta_handle->data[1];
-          DEBUG_PRINT_LOW("EBD fd = %d, offset = %d, size = %d",Input_pmem.fd,
+        index_pmem = (buffer - m_inp_mem_ptr);
+        if (mUseProxyColorFormat &&
+                (index_pmem < m_sInPortDef.nBufferCountActual)) {
+            if (!dev_free_buf((&m_pInput_pmem[index_pmem]),PORT_INDEX_IN)) {
+                DEBUG_PRINT_ERROR("\n omx_release_meta_buffer dev free failed");
+            }
+        } else {
+            media_ptr = (encoder_media_buffer_type *) buffer->pBuffer;
+            if (media_ptr && media_ptr->meta_handle) {
+                if (media_ptr->buffer_type == kMetadataBufferTypeCameraSource &&
+                        media_ptr->meta_handle->numFds == 1 &&
+                        media_ptr->meta_handle->numInts == 2) {
+                    Input_pmem.fd = media_ptr->meta_handle->data[0];
+                    Input_pmem.buffer = media_ptr;
+                    Input_pmem.size = media_ptr->meta_handle->data[2];
+                    Input_pmem.offset = media_ptr->meta_handle->data[1];
+                    DEBUG_PRINT_LOW("EBD fd = %d, offset = %d, size = %d",Input_pmem.fd,
                             Input_pmem.offset,
                             Input_pmem.size);
-        } else if(media_ptr->buffer_type == kMetadataBufferTypeGrallocSource) {
-          private_handle_t *handle = (private_handle_t *)media_ptr->meta_handle;
-          Input_pmem.buffer = media_ptr;
-          Input_pmem.fd = handle->fd;
-          Input_pmem.offset = 0;
-          Input_pmem.size = handle->size;
-        } else {
-          meta_error = true;
-          DEBUG_PRINT_ERROR(" Meta Error set in EBD");
+                } else if (media_ptr->buffer_type == kMetadataBufferTypeGrallocSource) {
+                    private_handle_t *handle = (private_handle_t *)media_ptr->meta_handle;
+                    Input_pmem.buffer = media_ptr;
+                    Input_pmem.fd = handle->fd;
+                    Input_pmem.offset = 0;
+                    Input_pmem.size = handle->size;
+                } else {
+                    meta_error = true;
+                    DEBUG_PRINT_ERROR(" Meta Error set in EBD");
+                }
+                if (!meta_error)
+                    meta_error = !dev_free_buf(&Input_pmem,PORT_INDEX_IN);
+                if (meta_error) {
+                    DEBUG_PRINT_ERROR(" Warning dev_free_buf failed flush value is %d",
+                            input_flush_progress);
+                }
+            }
         }
-        if(!meta_error)
-           meta_error = !dev_free_buf(&Input_pmem,PORT_INDEX_IN);
-          if(meta_error)
-          {
-           DEBUG_PRINT_ERROR(" Warning dev_free_buf failed flush value is %d",
-               input_flush_progress);
-          }
-        }
-     }
-  }
+    }
 }
 #endif
 omx_video::omx_c2d_conv::omx_c2d_conv()
 {
-  c2dcc = NULL;
-  mLibHandle = NULL;
-  mConvertOpen = NULL;
-  mConvertClose = NULL;
-  src_format = NV12_128m;
-  pthread_mutex_init(&c_lock, NULL);
-}
-
-bool omx_video::omx_c2d_conv::init() {
-  bool status = true;
-  if(mLibHandle || mConvertOpen || mConvertClose) {
-    DEBUG_PRINT_ERROR("\n omx_c2d_conv::init called twice");
-    status = false;
-  }
-  if(status) {
-    mLibHandle = dlopen("libc2dcolorconvert.so", RTLD_LAZY);
-    if(mLibHandle){
-       mConvertOpen = (createC2DColorConverter_t *)
-       dlsym(mLibHandle,"createC2DColorConverter");
-       mConvertClose = (destroyC2DColorConverter_t *)
-       dlsym(mLibHandle,"destroyC2DColorConverter");
-       if(!mConvertOpen || !mConvertClose)
-         status = false;
-    } else
-      status = false;
-  }
-  if(!status && mLibHandle){
-    dlclose(mLibHandle);
+    c2dcc = NULL;
     mLibHandle = NULL;
     mConvertOpen = NULL;
     mConvertClose = NULL;
-  }
-  return status;
+    src_format = NV12_128m;
+    pthread_mutex_init(&c_lock, NULL);
+}
+
+bool omx_video::omx_c2d_conv::init()
+{
+    bool status = true;
+    if (mLibHandle || mConvertOpen || mConvertClose) {
+        DEBUG_PRINT_ERROR("\n omx_c2d_conv::init called twice");
+        status = false;
+    }
+    if (status) {
+        mLibHandle = dlopen("libc2dcolorconvert.so", RTLD_LAZY);
+        if (mLibHandle) {
+            mConvertOpen = (createC2DColorConverter_t *)
+                dlsym(mLibHandle,"createC2DColorConverter");
+            mConvertClose = (destroyC2DColorConverter_t *)
+                dlsym(mLibHandle,"destroyC2DColorConverter");
+            if (!mConvertOpen || !mConvertClose)
+                status = false;
+        } else
+            status = false;
+    }
+    if (!status && mLibHandle) {
+        dlclose(mLibHandle);
+        mLibHandle = NULL;
+        mConvertOpen = NULL;
+        mConvertClose = NULL;
+    }
+    return status;
 }
 
 bool omx_video::omx_c2d_conv::convert(int src_fd, void *src_base, void *src_viraddr,
-     int dest_fd, void *dest_base, void *dest_viraddr)
+        int dest_fd, void *dest_base, void *dest_viraddr)
 {
-  int result;
-  if(!src_viraddr || !dest_viraddr || !c2dcc || !src_base || !dest_base){
-    DEBUG_PRINT_ERROR("\n Invalid arguments omx_c2d_conv::convert");
-    return false;
-  }
-  pthread_mutex_lock(&c_lock);
-  result =  c2dcc->convertC2D(src_fd, src_base, src_viraddr,
-                              dest_fd, dest_base, dest_viraddr);
-  pthread_mutex_unlock(&c_lock);
-  DEBUG_PRINT_LOW("\n Color convert status %d",result);
-  return ((result < 0)?false:true);
+    int result;
+    if (!src_viraddr || !dest_viraddr || !c2dcc || !src_base || !dest_base) {
+        DEBUG_PRINT_ERROR("\n Invalid arguments omx_c2d_conv::convert");
+        return false;
+    }
+    pthread_mutex_lock(&c_lock);
+    result =  c2dcc->convertC2D(src_fd, src_base, src_viraddr,
+            dest_fd, dest_base, dest_viraddr);
+    pthread_mutex_unlock(&c_lock);
+    DEBUG_PRINT_LOW("\n Color convert status %d",result);
+    return ((result < 0)?false:true);
 }
 
 bool omx_video::omx_c2d_conv::open(unsigned int height,unsigned int width,
-     ColorConvertFormat src, ColorConvertFormat dest,unsigned int src_stride)
+        ColorConvertFormat src, ColorConvertFormat dest,unsigned int src_stride)
 {
-  bool status = false;
-  pthread_mutex_lock(&c_lock);
-  if(!c2dcc) {
-     c2dcc = mConvertOpen(width, height, width, height,
-             src,dest,0,src_stride);
-     if(c2dcc) {
-       src_format = src;
-       status = true;
-     } else
-       DEBUG_PRINT_ERROR("\n mConvertOpen failed");
-  }
-  pthread_mutex_unlock(&c_lock);
-  return status;
+    bool status = false;
+    pthread_mutex_lock(&c_lock);
+    if (!c2dcc) {
+        c2dcc = mConvertOpen(width, height, width, height,
+                src,dest,0,src_stride);
+        if (c2dcc) {
+            src_format = src;
+            status = true;
+        } else
+            DEBUG_PRINT_ERROR("\n mConvertOpen failed");
+    }
+    pthread_mutex_unlock(&c_lock);
+    return status;
 }
 
 void omx_video::omx_c2d_conv::close()
 {
-  if(mLibHandle) {
-    pthread_mutex_lock(&c_lock);
-    if(mConvertClose && c2dcc)
-     mConvertClose(c2dcc);
-    pthread_mutex_unlock(&c_lock);
-    c2dcc = NULL;
-  }
+    if (mLibHandle) {
+        pthread_mutex_lock(&c_lock);
+        if (mConvertClose && c2dcc)
+            mConvertClose(c2dcc);
+        pthread_mutex_unlock(&c_lock);
+        c2dcc = NULL;
+    }
 }
 omx_video::omx_c2d_conv::~omx_c2d_conv()
 {
-  DEBUG_PRINT_HIGH("\n Destroy C2D instance");
-  if(mLibHandle) {
-    if(mConvertClose && c2dcc) {
-      pthread_mutex_lock(&c_lock);
-      mConvertClose(c2dcc);
-      pthread_mutex_unlock(&c_lock);
+    DEBUG_PRINT_HIGH("\n Destroy C2D instance");
+    if (mLibHandle) {
+        if (mConvertClose && c2dcc) {
+            pthread_mutex_lock(&c_lock);
+            mConvertClose(c2dcc);
+            pthread_mutex_unlock(&c_lock);
+        }
+        dlclose(mLibHandle);
     }
-    dlclose(mLibHandle);
-  }
-  c2dcc = NULL;
-  mLibHandle = NULL;
-  mConvertOpen = NULL;
-  mConvertClose = NULL;
-  pthread_mutex_destroy(&c_lock);
+    c2dcc = NULL;
+    mLibHandle = NULL;
+    mConvertOpen = NULL;
+    mConvertClose = NULL;
+    pthread_mutex_destroy(&c_lock);
 }
 
 int omx_video::omx_c2d_conv::get_src_format()
 {
-  int format = -1;
-  if(src_format == NV12_128m) {
-    format = HAL_PIXEL_FORMAT_NV12_ENCODEABLE;
-  } else if(src_format == RGBA8888) {
-    format = HAL_PIXEL_FORMAT_RGBA_8888;
-  }
-  return format;
+    int format = -1;
+    if (src_format == NV12_128m) {
+        format = HAL_PIXEL_FORMAT_NV12_ENCODEABLE;
+    } else if (src_format == RGBA8888) {
+        format = HAL_PIXEL_FORMAT_RGBA_8888;
+    }
+    return format;
 }
 
 bool omx_video::omx_c2d_conv::get_buffer_size(int port,unsigned int &buf_size)
 {
-  int cret = 0;
-  bool ret = false;
-  C2DBuffReq bufferreq;
-  if(c2dcc){
-    bufferreq.size = 0;
-    pthread_mutex_lock(&c_lock);
-    cret = c2dcc->getBuffReq(port,&bufferreq);
-    pthread_mutex_unlock(&c_lock);
-    DEBUG_PRINT_LOW("\n Status of getbuffer is %d", cret);
-    ret = (cret)?false:true;
-    buf_size = bufferreq.size;
-  }
-  return ret;
+    int cret = 0;
+    bool ret = false;
+    C2DBuffReq bufferreq;
+    if (c2dcc) {
+        bufferreq.size = 0;
+        pthread_mutex_lock(&c_lock);
+        cret = c2dcc->getBuffReq(port,&bufferreq);
+        pthread_mutex_unlock(&c_lock);
+        DEBUG_PRINT_LOW("\n Status of getbuffer is %d", cret);
+        ret = (cret)?false:true;
+        buf_size = bufferreq.size;
+    }
+    return ret;
 }
 
 OMX_ERRORTYPE  omx_video::empty_this_buffer_opaque(OMX_IN OMX_HANDLETYPE hComp,
-                                                  OMX_IN OMX_BUFFERHEADERTYPE* buffer)
+        OMX_IN OMX_BUFFERHEADERTYPE* buffer)
 {
-  unsigned nBufIndex = 0;
-  OMX_ERRORTYPE ret = OMX_ErrorNone;
-  encoder_media_buffer_type *media_buffer;
-  DEBUG_PRINT_LOW("\n ETBProxyOpaque: buffer[%p]\n", buffer);
+    unsigned nBufIndex = 0;
+    OMX_ERRORTYPE ret = OMX_ErrorNone;
+    encoder_media_buffer_type *media_buffer;
+    DEBUG_PRINT_LOW("\n ETBProxyOpaque: buffer[%p]\n", buffer);
 
-  if(buffer == NULL) {
-    DEBUG_PRINT_ERROR("\nERROR: ETBProxyA: Invalid buffer[%p]\n",buffer);
-    return OMX_ErrorBadParameter;
-  }
-  nBufIndex = buffer - meta_buffer_hdr;
-  if(nBufIndex >= m_sInPortDef.nBufferCountActual) {
-    DEBUG_PRINT_ERROR("\nERROR: ETBProxyA: Invalid bufindex = %u\n",
-                      nBufIndex);
-    return OMX_ErrorBadParameter;
-  }
-  media_buffer = (encoder_media_buffer_type *)buffer->pBuffer;
-  private_handle_t *handle = (private_handle_t *)media_buffer->meta_handle;
-  /*Enable following code once private handle color format is
-    updated correctly*/
-
-  if(c2d_opened && handle->format != c2d_conv.get_src_format()) {
-    c2d_conv.close();
-    c2d_opened = false;
-  }
-  if (!c2d_opened) {
-      if (handle->format == HAL_PIXEL_FORMAT_RGBA_8888) {
-        DEBUG_PRINT_ERROR("\n open Color conv for RGBA888 W: %d, H: %d\n",
-                          m_sInPortDef.format.video.nFrameWidth,
-                          m_sInPortDef.format.video.nFrameHeight);
-        if(!c2d_conv.open(m_sInPortDef.format.video.nFrameHeight,
-             m_sInPortDef.format.video.nFrameWidth,RGBA8888,NV12_128m,handle->width)){
-           m_pCallbacks.EmptyBufferDone(hComp,m_app_data,buffer);
-           DEBUG_PRINT_ERROR("\n Color conv open failed");
-           return OMX_ErrorBadParameter;
-        }
-        c2d_opened = true;
-#ifdef _MSM8974_
-        if(!dev_set_format(handle->format))
-          DEBUG_PRINT_ERROR("cannot set color format for RGBA8888\n");
-#endif
-      } else if(handle->format != HAL_PIXEL_FORMAT_NV12_ENCODEABLE) {
-        DEBUG_PRINT_ERROR("\n Incorrect color format");
-        m_pCallbacks.EmptyBufferDone(hComp,m_app_data,buffer);
+    if (buffer == NULL) {
+        DEBUG_PRINT_ERROR("\nERROR: ETBProxyA: Invalid buffer[%p]\n",buffer);
         return OMX_ErrorBadParameter;
-      }
-  }
-  if(input_flush_progress == true)
-  {
-    m_pCallbacks.EmptyBufferDone(hComp,m_app_data,buffer);
-    DEBUG_PRINT_ERROR("\nERROR: ETBProxyA: Input flush in progress");
-    return OMX_ErrorNone;
-  }
-
-  if(!psource_frame) {
-    psource_frame = buffer;
-    ret = push_input_buffer(hComp);
-  } else {
-    if (!m_opq_meta_q.insert_entry((unsigned)buffer,0,0)) {
-      DEBUG_PRINT_ERROR("\nERROR: ETBProxy: Queue is full");
-      ret = OMX_ErrorBadParameter;
     }
-  }
-  if(ret != OMX_ErrorNone) {
-    m_pCallbacks.EmptyBufferDone(hComp,m_app_data,buffer);
-    DEBUG_PRINT_LOW("\nERROR: ETBOpaque failed:");
-  }
-  return ret;
+    nBufIndex = buffer - meta_buffer_hdr;
+    if (nBufIndex >= m_sInPortDef.nBufferCountActual) {
+        DEBUG_PRINT_ERROR("\nERROR: ETBProxyA: Invalid bufindex = %u\n",
+                nBufIndex);
+        return OMX_ErrorBadParameter;
+    }
+    media_buffer = (encoder_media_buffer_type *)buffer->pBuffer;
+    private_handle_t *handle = (private_handle_t *)media_buffer->meta_handle;
+    /*Enable following code once private handle color format is
+      updated correctly*/
+
+    if (c2d_opened && handle->format != c2d_conv.get_src_format()) {
+        c2d_conv.close();
+        c2d_opened = false;
+    }
+    if (!c2d_opened) {
+        if (handle->format == HAL_PIXEL_FORMAT_RGBA_8888) {
+            DEBUG_PRINT_ERROR("\n open Color conv for RGBA888 W: %d, H: %d\n",
+                    m_sInPortDef.format.video.nFrameWidth,
+                    m_sInPortDef.format.video.nFrameHeight);
+            if (!c2d_conv.open(m_sInPortDef.format.video.nFrameHeight,
+                        m_sInPortDef.format.video.nFrameWidth,RGBA8888,NV12_128m,handle->width)) {
+                m_pCallbacks.EmptyBufferDone(hComp,m_app_data,buffer);
+                DEBUG_PRINT_ERROR("\n Color conv open failed");
+                return OMX_ErrorBadParameter;
+            }
+            c2d_opened = true;
+#ifdef _MSM8974_
+            if (!dev_set_format(handle->format))
+                DEBUG_PRINT_ERROR("cannot set color format for RGBA8888\n");
+#endif
+        } else if (handle->format != HAL_PIXEL_FORMAT_NV12_ENCODEABLE) {
+            DEBUG_PRINT_ERROR("\n Incorrect color format");
+            m_pCallbacks.EmptyBufferDone(hComp,m_app_data,buffer);
+            return OMX_ErrorBadParameter;
+        }
+    }
+    if (input_flush_progress == true) {
+        m_pCallbacks.EmptyBufferDone(hComp,m_app_data,buffer);
+        DEBUG_PRINT_ERROR("\nERROR: ETBProxyA: Input flush in progress");
+        return OMX_ErrorNone;
+    }
+
+    if (!psource_frame) {
+        psource_frame = buffer;
+        ret = push_input_buffer(hComp);
+    } else {
+        if (!m_opq_meta_q.insert_entry((unsigned)buffer,0,0)) {
+            DEBUG_PRINT_ERROR("\nERROR: ETBProxy: Queue is full");
+            ret = OMX_ErrorBadParameter;
+        }
+    }
+    if (ret != OMX_ErrorNone) {
+        m_pCallbacks.EmptyBufferDone(hComp,m_app_data,buffer);
+        DEBUG_PRINT_LOW("\nERROR: ETBOpaque failed:");
+    }
+    return ret;
 }
 
 OMX_ERRORTYPE omx_video::queue_meta_buffer(OMX_HANDLETYPE hComp,
-     struct pmem &Input_pmem_info) {
+        struct pmem &Input_pmem_info)
+{
 
-  OMX_ERRORTYPE ret = OMX_ErrorNone;
-  unsigned address = 0,p2,id;
+    OMX_ERRORTYPE ret = OMX_ErrorNone;
+    unsigned address = 0,p2,id;
 
-  DEBUG_PRINT_LOW("\n In queue Meta Buffer");
-  if(!psource_frame || !pdest_frame) {
-    DEBUG_PRINT_ERROR("\n convert_queue_buffer invalid params");
-    return OMX_ErrorBadParameter;
-  }
-
-  if(dev_use_buf(&Input_pmem_info,PORT_INDEX_IN,0) != true) {
-    DEBUG_PRINT_ERROR("\nERROR: in dev_use_buf");
-    post_event ((unsigned int)psource_frame,0,OMX_COMPONENT_GENERATE_EBD);
-    ret = OMX_ErrorBadParameter;
-  }
-
-  if(ret == OMX_ErrorNone)
-    ret = empty_this_buffer_proxy(hComp,psource_frame);
-
-  if(ret == OMX_ErrorNone) {
-    psource_frame = NULL;
-    if(!psource_frame && m_opq_meta_q.m_size) {
-      m_opq_meta_q.pop_entry(&address,&p2,&id);
-      psource_frame = (OMX_BUFFERHEADERTYPE* ) address;
+    DEBUG_PRINT_LOW("\n In queue Meta Buffer");
+    if (!psource_frame || !pdest_frame) {
+        DEBUG_PRINT_ERROR("\n convert_queue_buffer invalid params");
+        return OMX_ErrorBadParameter;
     }
-  }
-  return ret;
+
+    if (dev_use_buf(&Input_pmem_info,PORT_INDEX_IN,0) != true) {
+        DEBUG_PRINT_ERROR("\nERROR: in dev_use_buf");
+        post_event ((unsigned int)psource_frame,0,OMX_COMPONENT_GENERATE_EBD);
+        ret = OMX_ErrorBadParameter;
+    }
+
+    if (ret == OMX_ErrorNone)
+        ret = empty_this_buffer_proxy(hComp,psource_frame);
+
+    if (ret == OMX_ErrorNone) {
+        psource_frame = NULL;
+        if (!psource_frame && m_opq_meta_q.m_size) {
+            m_opq_meta_q.pop_entry(&address,&p2,&id);
+            psource_frame = (OMX_BUFFERHEADERTYPE* ) address;
+        }
+    }
+    return ret;
 }
 
 OMX_ERRORTYPE omx_video::convert_queue_buffer(OMX_HANDLETYPE hComp,
-     struct pmem &Input_pmem_info,unsigned &index){
+        struct pmem &Input_pmem_info,unsigned &index)
+{
 
-  unsigned char *uva;
-  OMX_ERRORTYPE ret = OMX_ErrorNone;
-  unsigned address = 0,p2,id;
+    unsigned char *uva;
+    OMX_ERRORTYPE ret = OMX_ErrorNone;
+    unsigned address = 0,p2,id;
 
-  DEBUG_PRINT_LOW("\n In Convert and queue Meta Buffer");
-  if(!psource_frame || !pdest_frame) {
-    DEBUG_PRINT_ERROR("\n convert_queue_buffer invalid params");
-    return OMX_ErrorBadParameter;
-  }
+    DEBUG_PRINT_LOW("\n In Convert and queue Meta Buffer");
+    if (!psource_frame || !pdest_frame) {
+        DEBUG_PRINT_ERROR("\n convert_queue_buffer invalid params");
+        return OMX_ErrorBadParameter;
+    }
 
-  if(!psource_frame->nFilledLen){
-    pdest_frame->nOffset = 0;
-    pdest_frame->nFilledLen = 0;
-    pdest_frame->nTimeStamp = psource_frame->nTimeStamp;
-    pdest_frame->nFlags = psource_frame->nFlags;
-    DEBUG_PRINT_LOW("\n Buffer header %p Filled len size %d",
-         pdest_frame,pdest_frame->nFilledLen);
-  } else {
-     uva = (unsigned char *)mmap(NULL, Input_pmem_info.size,
-                           PROT_READ|PROT_WRITE,
-                           MAP_SHARED,Input_pmem_info.fd,0);
-     if(uva == MAP_FAILED) {
-       ret = OMX_ErrorBadParameter;
-     } else {
-       if(!c2d_conv.convert(Input_pmem_info.fd, uva, uva,
-          m_pInput_pmem[index].fd, pdest_frame->pBuffer, pdest_frame->pBuffer)) {
-          DEBUG_PRINT_ERROR("\n Color Conversion failed");
-          ret = OMX_ErrorBadParameter;
-       } else {
-          unsigned int buf_size = 0;
-          if (!c2d_conv.get_buffer_size(C2D_OUTPUT,buf_size))
+    if (!psource_frame->nFilledLen) {
+        pdest_frame->nOffset = 0;
+        pdest_frame->nFilledLen = 0;
+        pdest_frame->nTimeStamp = psource_frame->nTimeStamp;
+        pdest_frame->nFlags = psource_frame->nFlags;
+        DEBUG_PRINT_LOW("\n Buffer header %p Filled len size %d",
+                pdest_frame,pdest_frame->nFilledLen);
+    } else {
+        uva = (unsigned char *)mmap(NULL, Input_pmem_info.size,
+                PROT_READ|PROT_WRITE,
+                MAP_SHARED,Input_pmem_info.fd,0);
+        if (uva == MAP_FAILED) {
             ret = OMX_ErrorBadParameter;
-          else {
-            pdest_frame->nOffset = 0;
-            pdest_frame->nFilledLen = buf_size;
-            pdest_frame->nTimeStamp = psource_frame->nTimeStamp;
-            pdest_frame->nFlags = psource_frame->nFlags;
-            DEBUG_PRINT_LOW("\n Buffer header %p Filled len size %d",
-               pdest_frame,pdest_frame->nFilledLen);
-           }
-         }
-         munmap(uva,Input_pmem_info.size);
-      }
+        } else {
+            if (!c2d_conv.convert(Input_pmem_info.fd, uva, uva,
+                        m_pInput_pmem[index].fd, pdest_frame->pBuffer, pdest_frame->pBuffer)) {
+                DEBUG_PRINT_ERROR("\n Color Conversion failed");
+                ret = OMX_ErrorBadParameter;
+            } else {
+                unsigned int buf_size = 0;
+                if (!c2d_conv.get_buffer_size(C2D_OUTPUT,buf_size))
+                    ret = OMX_ErrorBadParameter;
+                else {
+                    pdest_frame->nOffset = 0;
+                    pdest_frame->nFilledLen = buf_size;
+                    pdest_frame->nTimeStamp = psource_frame->nTimeStamp;
+                    pdest_frame->nFlags = psource_frame->nFlags;
+                    DEBUG_PRINT_LOW("\n Buffer header %p Filled len size %d",
+                            pdest_frame,pdest_frame->nFilledLen);
+                }
+            }
+            munmap(uva,Input_pmem_info.size);
+        }
     }
-    if(dev_use_buf(&m_pInput_pmem[index],PORT_INDEX_IN,0) != true) {
-      DEBUG_PRINT_ERROR("\nERROR: in dev_use_buf");
-      post_event ((unsigned int)pdest_frame,0,OMX_COMPONENT_GENERATE_EBD);
-      ret = OMX_ErrorBadParameter;
+    if (dev_use_buf(&m_pInput_pmem[index],PORT_INDEX_IN,0) != true) {
+        DEBUG_PRINT_ERROR("\nERROR: in dev_use_buf");
+        post_event ((unsigned int)pdest_frame,0,OMX_COMPONENT_GENERATE_EBD);
+        ret = OMX_ErrorBadParameter;
     }
-    if(ret == OMX_ErrorNone)
-      ret = empty_this_buffer_proxy(hComp,pdest_frame);
-    if(ret == OMX_ErrorNone) {
-      m_pCallbacks.EmptyBufferDone(hComp ,m_app_data, psource_frame);
-      psource_frame = NULL;
-      pdest_frame = NULL;
-      if(!psource_frame && m_opq_meta_q.m_size) {
-        m_opq_meta_q.pop_entry(&address,&p2,&id);
-        psource_frame = (OMX_BUFFERHEADERTYPE* ) address;
-      }
-      if(!pdest_frame && m_opq_pmem_q.m_size) {
-        m_opq_pmem_q.pop_entry(&address,&p2,&id);
-        pdest_frame = (OMX_BUFFERHEADERTYPE* ) address;
-        DEBUG_PRINT_LOW("\n pdest_frame pop address is %p",pdest_frame);
-      }
+    if (ret == OMX_ErrorNone)
+        ret = empty_this_buffer_proxy(hComp,pdest_frame);
+    if (ret == OMX_ErrorNone) {
+        m_pCallbacks.EmptyBufferDone(hComp ,m_app_data, psource_frame);
+        psource_frame = NULL;
+        pdest_frame = NULL;
+        if (!psource_frame && m_opq_meta_q.m_size) {
+            m_opq_meta_q.pop_entry(&address,&p2,&id);
+            psource_frame = (OMX_BUFFERHEADERTYPE* ) address;
+        }
+        if (!pdest_frame && m_opq_pmem_q.m_size) {
+            m_opq_pmem_q.pop_entry(&address,&p2,&id);
+            pdest_frame = (OMX_BUFFERHEADERTYPE* ) address;
+            DEBUG_PRINT_LOW("\n pdest_frame pop address is %p",pdest_frame);
+        }
     }
     return ret;
 }
 
 OMX_ERRORTYPE omx_video::push_input_buffer(OMX_HANDLETYPE hComp)
 {
-  unsigned address = 0,p2,id, index = 0;
-  OMX_ERRORTYPE ret = OMX_ErrorNone;
+    unsigned address = 0,p2,id, index = 0;
+    OMX_ERRORTYPE ret = OMX_ErrorNone;
 
-  if(!psource_frame && m_opq_meta_q.m_size) {
-    m_opq_meta_q.pop_entry(&address,&p2,&id);
-    psource_frame = (OMX_BUFFERHEADERTYPE* ) address;
-  }
-  if(!pdest_frame && m_opq_pmem_q.m_size) {
-    m_opq_pmem_q.pop_entry(&address,&p2,&id);
-    pdest_frame = (OMX_BUFFERHEADERTYPE* ) address;
-  }
-  while(psource_frame != NULL && pdest_frame != NULL &&
-        ret == OMX_ErrorNone) {
-    struct pmem Input_pmem_info;
-    encoder_media_buffer_type *media_buffer;
-    index = pdest_frame - m_inp_mem_ptr;
-    if(index >= m_sInPortDef.nBufferCountActual){
-       DEBUG_PRINT_ERROR("\n Output buffer index is wrong %d act count %d",
-                         index,m_sInPortDef.nBufferCountActual);
-       return OMX_ErrorBadParameter;
+    if (!psource_frame && m_opq_meta_q.m_size) {
+        m_opq_meta_q.pop_entry(&address,&p2,&id);
+        psource_frame = (OMX_BUFFERHEADERTYPE* ) address;
     }
-    media_buffer = (encoder_media_buffer_type *)psource_frame->pBuffer;
-    /*Will enable to verify camcorder in current TIPS can be removed*/
-    if(media_buffer->buffer_type == kMetadataBufferTypeCameraSource) {
-      Input_pmem_info.buffer = media_buffer;
-      Input_pmem_info.fd = media_buffer->meta_handle->data[0];
-      Input_pmem_info.offset = media_buffer->meta_handle->data[1];
-      Input_pmem_info.size = media_buffer->meta_handle->data[2];
-      DEBUG_PRINT_LOW("ETB fd = %d, offset = %d, size = %d",Input_pmem_info.fd,
-                        Input_pmem_info.offset,
-                        Input_pmem_info.size);
-      ret = queue_meta_buffer(hComp,Input_pmem_info);
-    } else {
-      private_handle_t *handle = (private_handle_t *)media_buffer->meta_handle;
-      Input_pmem_info.buffer = media_buffer;
-      Input_pmem_info.fd = handle->fd;
-      Input_pmem_info.offset = 0;
-      Input_pmem_info.size = handle->size;
-      if(handle->format == HAL_PIXEL_FORMAT_RGBA_8888)
-        ret = convert_queue_buffer(hComp,Input_pmem_info,index);
-      else if(handle->format == HAL_PIXEL_FORMAT_NV12_ENCODEABLE)
-        ret = queue_meta_buffer(hComp,Input_pmem_info);
-      else
-        ret = OMX_ErrorBadParameter;
+    if (!pdest_frame && m_opq_pmem_q.m_size) {
+        m_opq_pmem_q.pop_entry(&address,&p2,&id);
+        pdest_frame = (OMX_BUFFERHEADERTYPE* ) address;
     }
-   }
-  return ret;
+    while (psource_frame != NULL && pdest_frame != NULL &&
+            ret == OMX_ErrorNone) {
+        struct pmem Input_pmem_info;
+        encoder_media_buffer_type *media_buffer;
+        index = pdest_frame - m_inp_mem_ptr;
+        if (index >= m_sInPortDef.nBufferCountActual) {
+            DEBUG_PRINT_ERROR("\n Output buffer index is wrong %d act count %d",
+                    index,m_sInPortDef.nBufferCountActual);
+            return OMX_ErrorBadParameter;
+        }
+        media_buffer = (encoder_media_buffer_type *)psource_frame->pBuffer;
+        /*Will enable to verify camcorder in current TIPS can be removed*/
+        if (media_buffer->buffer_type == kMetadataBufferTypeCameraSource) {
+            Input_pmem_info.buffer = media_buffer;
+            Input_pmem_info.fd = media_buffer->meta_handle->data[0];
+            Input_pmem_info.offset = media_buffer->meta_handle->data[1];
+            Input_pmem_info.size = media_buffer->meta_handle->data[2];
+            DEBUG_PRINT_LOW("ETB fd = %d, offset = %d, size = %d",Input_pmem_info.fd,
+                    Input_pmem_info.offset,
+                    Input_pmem_info.size);
+            ret = queue_meta_buffer(hComp,Input_pmem_info);
+        } else {
+            private_handle_t *handle = (private_handle_t *)media_buffer->meta_handle;
+            Input_pmem_info.buffer = media_buffer;
+            Input_pmem_info.fd = handle->fd;
+            Input_pmem_info.offset = 0;
+            Input_pmem_info.size = handle->size;
+            if (handle->format == HAL_PIXEL_FORMAT_RGBA_8888)
+                ret = convert_queue_buffer(hComp,Input_pmem_info,index);
+            else if (handle->format == HAL_PIXEL_FORMAT_NV12_ENCODEABLE)
+                ret = queue_meta_buffer(hComp,Input_pmem_info);
+            else
+                ret = OMX_ErrorBadParameter;
+        }
+    }
+    return ret;
 }
diff --git a/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp b/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp
index bc94ddd..6433dd9 100644
--- a/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp
+++ b/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp
@@ -40,21 +40,21 @@
 #define strlcpy g_strlcpy
 #endif
 /*----------------------------------------------------------------------------
-* Preprocessor Definitions and Constants
-* -------------------------------------------------------------------------*/
+ * Preprocessor Definitions and Constants
+ * -------------------------------------------------------------------------*/
 
 #define OMX_SPEC_VERSION 0x00000101
 #define OMX_INIT_STRUCT(_s_, _name_)            \
-   memset((_s_), 0x0, sizeof(_name_));          \
-   (_s_)->nSize = sizeof(_name_);               \
-   (_s_)->nVersion.nVersion = OMX_SPEC_VERSION
+    memset((_s_), 0x0, sizeof(_name_));          \
+(_s_)->nSize = sizeof(_name_);               \
+(_s_)->nVersion.nVersion = OMX_SPEC_VERSION
 
 extern int m_pipe;
 
 // factory function executed by the core to create instances
 void *get_omx_component_factory_fn(void)
 {
-  return(new omx_venc);
+    return(new omx_venc);
 }
 
 //constructor
@@ -62,1872 +62,1661 @@
 omx_venc::omx_venc()
 {
 #ifdef _ANDROID_ICS_
-  meta_mode_enable = false;
-  memset(meta_buffer_hdr,0,sizeof(meta_buffer_hdr));
-  memset(meta_buffers,0,sizeof(meta_buffers));
-  memset(opaque_buffer_hdr,0,sizeof(opaque_buffer_hdr));
-  mUseProxyColorFormat = false;
-  get_syntaxhdr_enable = false;
+    meta_mode_enable = false;
+    memset(meta_buffer_hdr,0,sizeof(meta_buffer_hdr));
+    memset(meta_buffers,0,sizeof(meta_buffers));
+    memset(opaque_buffer_hdr,0,sizeof(opaque_buffer_hdr));
+    mUseProxyColorFormat = false;
+    get_syntaxhdr_enable = false;
 #endif
 }
 
 omx_venc::~omx_venc()
 {
-  get_syntaxhdr_enable = false;
-  //nothing to do
+    get_syntaxhdr_enable = false;
+    //nothing to do
 }
 
 /* ======================================================================
-FUNCTION
-  omx_venc::ComponentInit
+   FUNCTION
+   omx_venc::ComponentInit
 
-DESCRIPTION
-  Initialize the component.
+   DESCRIPTION
+   Initialize the component.
 
-PARAMETERS
-  ctxt -- Context information related to the self.
-  id   -- Event identifier. This could be any of the following:
-          1. Command completion event
-          2. Buffer done callback event
-          3. Frame done callback event
+   PARAMETERS
+   ctxt -- Context information related to the self.
+   id   -- Event identifier. This could be any of the following:
+   1. Command completion event
+   2. Buffer done callback event
+   3. Frame done callback event
 
-RETURN VALUE
-  None.
+   RETURN VALUE
+   None.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE omx_venc::component_init(OMX_STRING role)
 {
 
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
 
-  int fds[2];
-  int r;
+    int fds[2];
+    int r;
 
-  OMX_VIDEO_CODINGTYPE codec_type;
+    OMX_VIDEO_CODINGTYPE codec_type;
 
-  DEBUG_PRINT_HIGH("\n omx_venc(): Inside component_init()");
-  // Copy the role information which provides the decoder m_nkind
-  strlcpy((char *)m_nkind,role,OMX_MAX_STRINGNAME_SIZE);
+    DEBUG_PRINT_HIGH("\n omx_venc(): Inside component_init()");
+    // Copy the role information which provides the decoder m_nkind
+    strlcpy((char *)m_nkind,role,OMX_MAX_STRINGNAME_SIZE);
 
-  if(!strncmp((char *)m_nkind,"OMX.qcom.video.encoder.mpeg4",\
-              OMX_MAX_STRINGNAME_SIZE))
-  {
-    strlcpy((char *)m_cRole, "video_encoder.mpeg4",\
-            OMX_MAX_STRINGNAME_SIZE);
-    codec_type = OMX_VIDEO_CodingMPEG4;
-  }
-  else if(!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.h263",\
-                   OMX_MAX_STRINGNAME_SIZE))
-  {
-    strlcpy((char *)m_cRole, "video_encoder.h263",OMX_MAX_STRINGNAME_SIZE);
-    codec_type = OMX_VIDEO_CodingH263;
-  }
-  else if(!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.avc",\
-                   OMX_MAX_STRINGNAME_SIZE))
-  {
-    strlcpy((char *)m_cRole, "video_encoder.avc",OMX_MAX_STRINGNAME_SIZE);
-    codec_type = OMX_VIDEO_CodingAVC;
-  }
+    if (!strncmp((char *)m_nkind,"OMX.qcom.video.encoder.mpeg4",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_encoder.mpeg4",\
+                OMX_MAX_STRINGNAME_SIZE);
+        codec_type = OMX_VIDEO_CodingMPEG4;
+    } else if (!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.h263",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_encoder.h263",OMX_MAX_STRINGNAME_SIZE);
+        codec_type = OMX_VIDEO_CodingH263;
+    } else if (!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.avc",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_encoder.avc",OMX_MAX_STRINGNAME_SIZE);
+        codec_type = OMX_VIDEO_CodingAVC;
+    }
 #ifdef _MSM8974_
-  else if(!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.vp8",	\
-                   OMX_MAX_STRINGNAME_SIZE))
-  {
-    strlcpy((char *)m_cRole, "video_encoder.vp8",OMX_MAX_STRINGNAME_SIZE);
-    codec_type = OMX_VIDEO_CodingVPX;
-  }
+    else if (!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.vp8",    \
+                OMX_MAX_STRINGNAME_SIZE)) {
+        strlcpy((char *)m_cRole, "video_encoder.vp8",OMX_MAX_STRINGNAME_SIZE);
+        codec_type = OMX_VIDEO_CodingVPX;
+    }
 #endif
-  else
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Unknown Component\n");
-    eRet = OMX_ErrorInvalidComponentName;
-  }
+    else {
+        DEBUG_PRINT_ERROR("\nERROR: Unknown Component\n");
+        eRet = OMX_ErrorInvalidComponentName;
+    }
 
 
-  if(eRet != OMX_ErrorNone)
-  {
-    return eRet;
-  }
+    if (eRet != OMX_ErrorNone) {
+        return eRet;
+    }
 #ifdef ENABLE_GET_SYNTAX_HDR
-  get_syntaxhdr_enable = true;
-  DEBUG_PRINT_HIGH("Get syntax header enabled");
+    get_syntaxhdr_enable = true;
+    DEBUG_PRINT_HIGH("Get syntax header enabled");
 #endif
 
-  handle = new venc_dev(this);
+    handle = new venc_dev(this);
 
-  if(handle == NULL)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: handle is NULL");
-    return OMX_ErrorInsufficientResources;
-  }
-
-  if(handle->venc_open(codec_type) != true)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: venc_open failed");
-    return OMX_ErrorInsufficientResources;
-  }
-
-  //Intialise the OMX layer variables
-  memset(&m_pCallbacks,0,sizeof(OMX_CALLBACKTYPE));
-
-  OMX_INIT_STRUCT(&m_sPortParam, OMX_PORT_PARAM_TYPE);
-  m_sPortParam.nPorts = 0x2;
-  m_sPortParam.nStartPortNumber = (OMX_U32) PORT_INDEX_IN;
-
-  OMX_INIT_STRUCT(&m_sPortParam_audio, OMX_PORT_PARAM_TYPE);
-  m_sPortParam_audio.nPorts = 0;
-  m_sPortParam_audio.nStartPortNumber = 0;
-
-  OMX_INIT_STRUCT(&m_sPortParam_img, OMX_PORT_PARAM_TYPE);
-  m_sPortParam_img.nPorts = 0;
-  m_sPortParam_img.nStartPortNumber = 0;
-
-  OMX_INIT_STRUCT(&m_sParamBitrate, OMX_VIDEO_PARAM_BITRATETYPE);
-  m_sParamBitrate.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-  m_sParamBitrate.eControlRate = OMX_Video_ControlRateVariableSkipFrames;
-  m_sParamBitrate.nTargetBitrate = 64000;
-
-  OMX_INIT_STRUCT(&m_sConfigBitrate, OMX_VIDEO_CONFIG_BITRATETYPE);
-  m_sConfigBitrate.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-  m_sConfigBitrate.nEncodeBitrate = 64000;
-
-  OMX_INIT_STRUCT(&m_sConfigFramerate, OMX_CONFIG_FRAMERATETYPE);
-  m_sConfigFramerate.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-  m_sConfigFramerate.xEncodeFramerate = 30 << 16;
-
-  OMX_INIT_STRUCT(&m_sConfigIntraRefreshVOP, OMX_CONFIG_INTRAREFRESHVOPTYPE);
-  m_sConfigIntraRefreshVOP.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-  m_sConfigIntraRefreshVOP.IntraRefreshVOP = OMX_FALSE;
-
-  OMX_INIT_STRUCT(&m_sConfigFrameRotation, OMX_CONFIG_ROTATIONTYPE);
-  m_sConfigFrameRotation.nPortIndex = (OMX_U32) PORT_INDEX_IN;
-  m_sConfigFrameRotation.nRotation = 0;
-
-  OMX_INIT_STRUCT(&m_sSessionQuantization, OMX_VIDEO_PARAM_QUANTIZATIONTYPE);
-  m_sSessionQuantization.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-  m_sSessionQuantization.nQpI = 9;
-  m_sSessionQuantization.nQpP = 6;
-  m_sSessionQuantization.nQpB = 2;
-
-  OMX_INIT_STRUCT(&m_sSessionQPRange, OMX_QCOM_VIDEO_PARAM_QPRANGETYPE);
-  m_sSessionQPRange.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-  m_sSessionQPRange.minQP = 2;
-  if(codec_type == OMX_VIDEO_CodingAVC)
-    m_sSessionQPRange.maxQP = 51;
-  else
-    m_sSessionQPRange.maxQP = 31;
-
-  OMX_INIT_STRUCT(&m_sAVCSliceFMO, OMX_VIDEO_PARAM_AVCSLICEFMO);
-  m_sAVCSliceFMO.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-  m_sAVCSliceFMO.eSliceMode = OMX_VIDEO_SLICEMODE_AVCDefault;
-  m_sAVCSliceFMO.nNumSliceGroups = 0;
-  m_sAVCSliceFMO.nSliceGroupMapType = 0;
-  OMX_INIT_STRUCT(&m_sParamProfileLevel, OMX_VIDEO_PARAM_PROFILELEVELTYPE);
-  m_sParamProfileLevel.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-
-  OMX_INIT_STRUCT(&m_sIntraperiod, QOMX_VIDEO_INTRAPERIODTYPE);
-  m_sIntraperiod.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-  m_sIntraperiod.nPFrames = (m_sConfigFramerate.xEncodeFramerate * 2) - 1;
-
-  OMX_INIT_STRUCT(&m_sErrorCorrection, OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE);
-  m_sErrorCorrection.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-  m_sErrorCorrection.bEnableDataPartitioning = OMX_FALSE;
-  m_sErrorCorrection.bEnableHEC = OMX_FALSE;
-  m_sErrorCorrection.bEnableResync = OMX_FALSE;
-  m_sErrorCorrection.bEnableRVLC = OMX_FALSE;
-  m_sErrorCorrection.nResynchMarkerSpacing = 0;
-
-  OMX_INIT_STRUCT(&m_sIntraRefresh, OMX_VIDEO_PARAM_INTRAREFRESHTYPE);
-  m_sIntraRefresh.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-  m_sIntraRefresh.eRefreshMode = OMX_VIDEO_IntraRefreshMax;
-
-  if(codec_type == OMX_VIDEO_CodingMPEG4)
-  {
-    m_sParamProfileLevel.eProfile = (OMX_U32) OMX_VIDEO_MPEG4ProfileSimple;
-    m_sParamProfileLevel.eLevel = (OMX_U32) OMX_VIDEO_MPEG4Level0;
-  }
-  else if(codec_type == OMX_VIDEO_CodingH263)
-  {
-    m_sParamProfileLevel.eProfile = (OMX_U32) OMX_VIDEO_H263ProfileBaseline;
-    m_sParamProfileLevel.eLevel = (OMX_U32) OMX_VIDEO_H263Level10;
-  }
-  else if(codec_type == OMX_VIDEO_CodingAVC)
-  {
-    m_sParamProfileLevel.eProfile = (OMX_U32) OMX_VIDEO_AVCProfileBaseline;
-    m_sParamProfileLevel.eLevel = (OMX_U32) OMX_VIDEO_AVCLevel1;
-  }
-
-  // Initialize the video parameters for input port
-  OMX_INIT_STRUCT(&m_sInPortDef, OMX_PARAM_PORTDEFINITIONTYPE);
-  m_sInPortDef.nPortIndex= (OMX_U32) PORT_INDEX_IN;
-  m_sInPortDef.bEnabled = OMX_TRUE;
-  m_sInPortDef.bPopulated = OMX_FALSE;
-  m_sInPortDef.eDomain = OMX_PortDomainVideo;
-  m_sInPortDef.eDir = OMX_DirInput;
-  m_sInPortDef.format.video.cMIMEType = "YUV420";
-  m_sInPortDef.format.video.nFrameWidth = OMX_CORE_QCIF_WIDTH;
-  m_sInPortDef.format.video.nFrameHeight = OMX_CORE_QCIF_HEIGHT;
-  m_sInPortDef.format.video.nStride = OMX_CORE_QCIF_WIDTH;
-  m_sInPortDef.format.video.nSliceHeight = OMX_CORE_QCIF_HEIGHT;
-  m_sInPortDef.format.video.nBitrate = 64000;
-  m_sInPortDef.format.video.xFramerate = 15 << 16;
-  m_sInPortDef.format.video.eColorFormat =  OMX_COLOR_FormatYUV420SemiPlanar;
-  m_sInPortDef.format.video.eCompressionFormat =  OMX_VIDEO_CodingUnused;
-
-  if(dev_get_buf_req(&m_sInPortDef.nBufferCountMin,
-                     &m_sInPortDef.nBufferCountActual,
-                     &m_sInPortDef.nBufferSize,
-                     m_sInPortDef.nPortIndex) != true)
-  {
-    eRet = OMX_ErrorUndefined;
-
-  }
-
-  // Initialize the video parameters for output port
-  OMX_INIT_STRUCT(&m_sOutPortDef, OMX_PARAM_PORTDEFINITIONTYPE);
-  m_sOutPortDef.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-  m_sOutPortDef.bEnabled = OMX_TRUE;
-  m_sOutPortDef.bPopulated = OMX_FALSE;
-  m_sOutPortDef.eDomain = OMX_PortDomainVideo;
-  m_sOutPortDef.eDir = OMX_DirOutput;
-  m_sOutPortDef.format.video.nFrameWidth = OMX_CORE_QCIF_WIDTH;
-  m_sOutPortDef.format.video.nFrameHeight = OMX_CORE_QCIF_HEIGHT;
-  m_sOutPortDef.format.video.nBitrate = 64000;
-  m_sOutPortDef.format.video.xFramerate = 15 << 16;
-  m_sOutPortDef.format.video.eColorFormat =  OMX_COLOR_FormatUnused;
-  if(codec_type == OMX_VIDEO_CodingMPEG4)
-  {
-    m_sOutPortDef.format.video.eCompressionFormat =  OMX_VIDEO_CodingMPEG4;
-  }
-  else if(codec_type == OMX_VIDEO_CodingH263)
-  {
-    m_sOutPortDef.format.video.eCompressionFormat =  OMX_VIDEO_CodingH263;
-  }
-  else
-  {
-    m_sOutPortDef.format.video.eCompressionFormat =  OMX_VIDEO_CodingAVC;
-  }
-  if(dev_get_buf_req(&m_sOutPortDef.nBufferCountMin,
-                     &m_sOutPortDef.nBufferCountActual,
-                     &m_sOutPortDef.nBufferSize,
-                     m_sOutPortDef.nPortIndex) != true)
-  {
-    eRet = OMX_ErrorUndefined;
-  }
-
-  // Initialize the video color format for input port
-  OMX_INIT_STRUCT(&m_sInPortFormat, OMX_VIDEO_PARAM_PORTFORMATTYPE);
-  m_sInPortFormat.nPortIndex = (OMX_U32) PORT_INDEX_IN;
-  m_sInPortFormat.nIndex = 0;
-  m_sInPortFormat.eColorFormat =  OMX_COLOR_FormatYUV420SemiPlanar;
-  m_sInPortFormat.eCompressionFormat = OMX_VIDEO_CodingUnused;
-
-
-  // Initialize the compression format for output port
-  OMX_INIT_STRUCT(&m_sOutPortFormat, OMX_VIDEO_PARAM_PORTFORMATTYPE);
-  m_sOutPortFormat.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-  m_sOutPortFormat.nIndex = 0;
-  m_sOutPortFormat.eColorFormat = OMX_COLOR_FormatUnused;
-  if(codec_type == OMX_VIDEO_CodingMPEG4)
-  {
-    m_sOutPortFormat.eCompressionFormat =  OMX_VIDEO_CodingMPEG4;
-  }
-  else if(codec_type == OMX_VIDEO_CodingH263)
-  {
-    m_sOutPortFormat.eCompressionFormat =  OMX_VIDEO_CodingH263;
-  }
-  else
-  {
-    m_sOutPortFormat.eCompressionFormat =  OMX_VIDEO_CodingAVC;
-  }
-
-  // mandatory Indices for kronos test suite
-  OMX_INIT_STRUCT(&m_sPriorityMgmt, OMX_PRIORITYMGMTTYPE);
-
-  OMX_INIT_STRUCT(&m_sInBufSupplier, OMX_PARAM_BUFFERSUPPLIERTYPE);
-  m_sInBufSupplier.nPortIndex = (OMX_U32) PORT_INDEX_IN;
-
-  OMX_INIT_STRUCT(&m_sOutBufSupplier, OMX_PARAM_BUFFERSUPPLIERTYPE);
-  m_sOutBufSupplier.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-
-
-  // mp4 specific init
-  OMX_INIT_STRUCT(&m_sParamMPEG4, OMX_VIDEO_PARAM_MPEG4TYPE);
-  m_sParamMPEG4.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-  m_sParamMPEG4.eProfile = OMX_VIDEO_MPEG4ProfileSimple;
-  m_sParamMPEG4.eLevel = OMX_VIDEO_MPEG4Level0;
-  m_sParamMPEG4.nSliceHeaderSpacing = 0;
-  m_sParamMPEG4.bSVH = OMX_FALSE;
-  m_sParamMPEG4.bGov = OMX_FALSE;
-  m_sParamMPEG4.nPFrames = (m_sOutPortFormat.xFramerate * 2 - 1);  // 2 second intra period for default outport fps
-  m_sParamMPEG4.bACPred = OMX_TRUE;
-  m_sParamMPEG4.nTimeIncRes = 30; // delta = 2 @ 15 fps
-  m_sParamMPEG4.nAllowedPictureTypes = 2; // pframe and iframe
-  m_sParamMPEG4.nHeaderExtension = 1; // number of video packet headers per vop
-  m_sParamMPEG4.bReversibleVLC = OMX_FALSE;
-
-  // h263 specific init
-  OMX_INIT_STRUCT(&m_sParamH263, OMX_VIDEO_PARAM_H263TYPE);
-  m_sParamH263.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-  m_sParamH263.nPFrames = (m_sOutPortFormat.xFramerate * 2 - 1); // 2 second intra period for default outport fps
-  m_sParamH263.nBFrames = 0;
-  m_sParamH263.eProfile = OMX_VIDEO_H263ProfileBaseline;
-  m_sParamH263.eLevel = OMX_VIDEO_H263Level10;
-  m_sParamH263.bPLUSPTYPEAllowed = OMX_FALSE;
-  m_sParamH263.nAllowedPictureTypes = 2;
-  m_sParamH263.bForceRoundingTypeToZero = OMX_TRUE;
-  m_sParamH263.nPictureHeaderRepetition = 0;
-  m_sParamH263.nGOBHeaderInterval = 1;
-
-  // h264 specific init
-  OMX_INIT_STRUCT(&m_sParamAVC, OMX_VIDEO_PARAM_AVCTYPE);
-  m_sParamAVC.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-  m_sParamAVC.nSliceHeaderSpacing = 0;
-  m_sParamAVC.nPFrames = (m_sOutPortFormat.xFramerate * 2 - 1); // 2 second intra period for default outport fps
-  m_sParamAVC.nBFrames = 0;
-  m_sParamAVC.bUseHadamard = OMX_FALSE;
-  m_sParamAVC.nRefFrames = 1;
-  m_sParamAVC.nRefIdx10ActiveMinus1 = 1;
-  m_sParamAVC.nRefIdx11ActiveMinus1 = 0;
-  m_sParamAVC.bEnableUEP = OMX_FALSE;
-  m_sParamAVC.bEnableFMO = OMX_FALSE;
-  m_sParamAVC.bEnableASO = OMX_FALSE;
-  m_sParamAVC.bEnableRS = OMX_FALSE;
-  m_sParamAVC.eProfile = OMX_VIDEO_AVCProfileBaseline;
-  m_sParamAVC.eLevel = OMX_VIDEO_AVCLevel1;
-  m_sParamAVC.nAllowedPictureTypes = 2;
-  m_sParamAVC.bFrameMBsOnly = OMX_FALSE;
-  m_sParamAVC.bMBAFF = OMX_FALSE;
-  m_sParamAVC.bEntropyCodingCABAC = OMX_FALSE;
-  m_sParamAVC.bWeightedPPrediction = OMX_FALSE;
-  m_sParamAVC.nWeightedBipredicitonMode = 0;
-  m_sParamAVC.bconstIpred = OMX_FALSE;
-  m_sParamAVC.bDirect8x8Inference = OMX_FALSE;
-  m_sParamAVC.bDirectSpatialTemporal = OMX_FALSE;
-  m_sParamAVC.nCabacInitIdc = 0;
-  m_sParamAVC.eLoopFilterMode = OMX_VIDEO_AVCLoopFilterEnable;
-
-  OMX_INIT_STRUCT(&m_sParamLTRMode, QOMX_VIDEO_PARAM_LTRMODE_TYPE);
-  m_sParamLTRMode.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-  m_sParamLTRMode.eLTRMode = QOMX_VIDEO_LTRMode_Disable;
-
-  m_state                   = OMX_StateLoaded;
-  m_sExtraData = 0;
-
-  if(eRet == OMX_ErrorNone)
-  {
-    if(pipe(fds))
-    {
-      DEBUG_PRINT_ERROR("ERROR: pipe creation failed\n");
-      eRet = OMX_ErrorInsufficientResources;
+    if (handle == NULL) {
+        DEBUG_PRINT_ERROR("\nERROR: handle is NULL");
+        return OMX_ErrorInsufficientResources;
     }
+
+    if (handle->venc_open(codec_type) != true) {
+        DEBUG_PRINT_ERROR("\nERROR: venc_open failed");
+        return OMX_ErrorInsufficientResources;
+    }
+
+    //Intialise the OMX layer variables
+    memset(&m_pCallbacks,0,sizeof(OMX_CALLBACKTYPE));
+
+    OMX_INIT_STRUCT(&m_sPortParam, OMX_PORT_PARAM_TYPE);
+    m_sPortParam.nPorts = 0x2;
+    m_sPortParam.nStartPortNumber = (OMX_U32) PORT_INDEX_IN;
+
+    OMX_INIT_STRUCT(&m_sPortParam_audio, OMX_PORT_PARAM_TYPE);
+    m_sPortParam_audio.nPorts = 0;
+    m_sPortParam_audio.nStartPortNumber = 0;
+
+    OMX_INIT_STRUCT(&m_sPortParam_img, OMX_PORT_PARAM_TYPE);
+    m_sPortParam_img.nPorts = 0;
+    m_sPortParam_img.nStartPortNumber = 0;
+
+    OMX_INIT_STRUCT(&m_sParamBitrate, OMX_VIDEO_PARAM_BITRATETYPE);
+    m_sParamBitrate.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+    m_sParamBitrate.eControlRate = OMX_Video_ControlRateVariableSkipFrames;
+    m_sParamBitrate.nTargetBitrate = 64000;
+
+    OMX_INIT_STRUCT(&m_sConfigBitrate, OMX_VIDEO_CONFIG_BITRATETYPE);
+    m_sConfigBitrate.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+    m_sConfigBitrate.nEncodeBitrate = 64000;
+
+    OMX_INIT_STRUCT(&m_sConfigFramerate, OMX_CONFIG_FRAMERATETYPE);
+    m_sConfigFramerate.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+    m_sConfigFramerate.xEncodeFramerate = 30 << 16;
+
+    OMX_INIT_STRUCT(&m_sConfigIntraRefreshVOP, OMX_CONFIG_INTRAREFRESHVOPTYPE);
+    m_sConfigIntraRefreshVOP.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+    m_sConfigIntraRefreshVOP.IntraRefreshVOP = OMX_FALSE;
+
+    OMX_INIT_STRUCT(&m_sConfigFrameRotation, OMX_CONFIG_ROTATIONTYPE);
+    m_sConfigFrameRotation.nPortIndex = (OMX_U32) PORT_INDEX_IN;
+    m_sConfigFrameRotation.nRotation = 0;
+
+    OMX_INIT_STRUCT(&m_sSessionQuantization, OMX_VIDEO_PARAM_QUANTIZATIONTYPE);
+    m_sSessionQuantization.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+    m_sSessionQuantization.nQpI = 9;
+    m_sSessionQuantization.nQpP = 6;
+    m_sSessionQuantization.nQpB = 2;
+
+    OMX_INIT_STRUCT(&m_sSessionQPRange, OMX_QCOM_VIDEO_PARAM_QPRANGETYPE);
+    m_sSessionQPRange.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+    m_sSessionQPRange.minQP = 2;
+    if (codec_type == OMX_VIDEO_CodingAVC)
+        m_sSessionQPRange.maxQP = 51;
     else
-    {
-      if(fds[0] == 0 || fds[1] == 0)
-      {
-        if(pipe(fds))
-        {
-          DEBUG_PRINT_ERROR("ERROR: pipe creation failed\n");
-          eRet = OMX_ErrorInsufficientResources;
+        m_sSessionQPRange.maxQP = 31;
+
+    OMX_INIT_STRUCT(&m_sAVCSliceFMO, OMX_VIDEO_PARAM_AVCSLICEFMO);
+    m_sAVCSliceFMO.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+    m_sAVCSliceFMO.eSliceMode = OMX_VIDEO_SLICEMODE_AVCDefault;
+    m_sAVCSliceFMO.nNumSliceGroups = 0;
+    m_sAVCSliceFMO.nSliceGroupMapType = 0;
+    OMX_INIT_STRUCT(&m_sParamProfileLevel, OMX_VIDEO_PARAM_PROFILELEVELTYPE);
+    m_sParamProfileLevel.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+
+    OMX_INIT_STRUCT(&m_sIntraperiod, QOMX_VIDEO_INTRAPERIODTYPE);
+    m_sIntraperiod.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+    m_sIntraperiod.nPFrames = (m_sConfigFramerate.xEncodeFramerate * 2) - 1;
+
+    OMX_INIT_STRUCT(&m_sErrorCorrection, OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE);
+    m_sErrorCorrection.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+    m_sErrorCorrection.bEnableDataPartitioning = OMX_FALSE;
+    m_sErrorCorrection.bEnableHEC = OMX_FALSE;
+    m_sErrorCorrection.bEnableResync = OMX_FALSE;
+    m_sErrorCorrection.bEnableRVLC = OMX_FALSE;
+    m_sErrorCorrection.nResynchMarkerSpacing = 0;
+
+    OMX_INIT_STRUCT(&m_sIntraRefresh, OMX_VIDEO_PARAM_INTRAREFRESHTYPE);
+    m_sIntraRefresh.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+    m_sIntraRefresh.eRefreshMode = OMX_VIDEO_IntraRefreshMax;
+
+    if (codec_type == OMX_VIDEO_CodingMPEG4) {
+        m_sParamProfileLevel.eProfile = (OMX_U32) OMX_VIDEO_MPEG4ProfileSimple;
+        m_sParamProfileLevel.eLevel = (OMX_U32) OMX_VIDEO_MPEG4Level0;
+    } else if (codec_type == OMX_VIDEO_CodingH263) {
+        m_sParamProfileLevel.eProfile = (OMX_U32) OMX_VIDEO_H263ProfileBaseline;
+        m_sParamProfileLevel.eLevel = (OMX_U32) OMX_VIDEO_H263Level10;
+    } else if (codec_type == OMX_VIDEO_CodingAVC) {
+        m_sParamProfileLevel.eProfile = (OMX_U32) OMX_VIDEO_AVCProfileBaseline;
+        m_sParamProfileLevel.eLevel = (OMX_U32) OMX_VIDEO_AVCLevel1;
+    }
+
+    // Initialize the video parameters for input port
+    OMX_INIT_STRUCT(&m_sInPortDef, OMX_PARAM_PORTDEFINITIONTYPE);
+    m_sInPortDef.nPortIndex= (OMX_U32) PORT_INDEX_IN;
+    m_sInPortDef.bEnabled = OMX_TRUE;
+    m_sInPortDef.bPopulated = OMX_FALSE;
+    m_sInPortDef.eDomain = OMX_PortDomainVideo;
+    m_sInPortDef.eDir = OMX_DirInput;
+    m_sInPortDef.format.video.cMIMEType = "YUV420";
+    m_sInPortDef.format.video.nFrameWidth = OMX_CORE_QCIF_WIDTH;
+    m_sInPortDef.format.video.nFrameHeight = OMX_CORE_QCIF_HEIGHT;
+    m_sInPortDef.format.video.nStride = OMX_CORE_QCIF_WIDTH;
+    m_sInPortDef.format.video.nSliceHeight = OMX_CORE_QCIF_HEIGHT;
+    m_sInPortDef.format.video.nBitrate = 64000;
+    m_sInPortDef.format.video.xFramerate = 15 << 16;
+    m_sInPortDef.format.video.eColorFormat =  OMX_COLOR_FormatYUV420SemiPlanar;
+    m_sInPortDef.format.video.eCompressionFormat =  OMX_VIDEO_CodingUnused;
+
+    if (dev_get_buf_req(&m_sInPortDef.nBufferCountMin,
+                &m_sInPortDef.nBufferCountActual,
+                &m_sInPortDef.nBufferSize,
+                m_sInPortDef.nPortIndex) != true) {
+        eRet = OMX_ErrorUndefined;
+
+    }
+
+    // Initialize the video parameters for output port
+    OMX_INIT_STRUCT(&m_sOutPortDef, OMX_PARAM_PORTDEFINITIONTYPE);
+    m_sOutPortDef.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+    m_sOutPortDef.bEnabled = OMX_TRUE;
+    m_sOutPortDef.bPopulated = OMX_FALSE;
+    m_sOutPortDef.eDomain = OMX_PortDomainVideo;
+    m_sOutPortDef.eDir = OMX_DirOutput;
+    m_sOutPortDef.format.video.nFrameWidth = OMX_CORE_QCIF_WIDTH;
+    m_sOutPortDef.format.video.nFrameHeight = OMX_CORE_QCIF_HEIGHT;
+    m_sOutPortDef.format.video.nBitrate = 64000;
+    m_sOutPortDef.format.video.xFramerate = 15 << 16;
+    m_sOutPortDef.format.video.eColorFormat =  OMX_COLOR_FormatUnused;
+    if (codec_type == OMX_VIDEO_CodingMPEG4) {
+        m_sOutPortDef.format.video.eCompressionFormat =  OMX_VIDEO_CodingMPEG4;
+    } else if (codec_type == OMX_VIDEO_CodingH263) {
+        m_sOutPortDef.format.video.eCompressionFormat =  OMX_VIDEO_CodingH263;
+    } else {
+        m_sOutPortDef.format.video.eCompressionFormat =  OMX_VIDEO_CodingAVC;
+    }
+    if (dev_get_buf_req(&m_sOutPortDef.nBufferCountMin,
+                &m_sOutPortDef.nBufferCountActual,
+                &m_sOutPortDef.nBufferSize,
+                m_sOutPortDef.nPortIndex) != true) {
+        eRet = OMX_ErrorUndefined;
+    }
+
+    // Initialize the video color format for input port
+    OMX_INIT_STRUCT(&m_sInPortFormat, OMX_VIDEO_PARAM_PORTFORMATTYPE);
+    m_sInPortFormat.nPortIndex = (OMX_U32) PORT_INDEX_IN;
+    m_sInPortFormat.nIndex = 0;
+    m_sInPortFormat.eColorFormat =  OMX_COLOR_FormatYUV420SemiPlanar;
+    m_sInPortFormat.eCompressionFormat = OMX_VIDEO_CodingUnused;
+
+
+    // Initialize the compression format for output port
+    OMX_INIT_STRUCT(&m_sOutPortFormat, OMX_VIDEO_PARAM_PORTFORMATTYPE);
+    m_sOutPortFormat.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+    m_sOutPortFormat.nIndex = 0;
+    m_sOutPortFormat.eColorFormat = OMX_COLOR_FormatUnused;
+    if (codec_type == OMX_VIDEO_CodingMPEG4) {
+        m_sOutPortFormat.eCompressionFormat =  OMX_VIDEO_CodingMPEG4;
+    } else if (codec_type == OMX_VIDEO_CodingH263) {
+        m_sOutPortFormat.eCompressionFormat =  OMX_VIDEO_CodingH263;
+    } else {
+        m_sOutPortFormat.eCompressionFormat =  OMX_VIDEO_CodingAVC;
+    }
+
+    // mandatory Indices for kronos test suite
+    OMX_INIT_STRUCT(&m_sPriorityMgmt, OMX_PRIORITYMGMTTYPE);
+
+    OMX_INIT_STRUCT(&m_sInBufSupplier, OMX_PARAM_BUFFERSUPPLIERTYPE);
+    m_sInBufSupplier.nPortIndex = (OMX_U32) PORT_INDEX_IN;
+
+    OMX_INIT_STRUCT(&m_sOutBufSupplier, OMX_PARAM_BUFFERSUPPLIERTYPE);
+    m_sOutBufSupplier.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+
+
+    // mp4 specific init
+    OMX_INIT_STRUCT(&m_sParamMPEG4, OMX_VIDEO_PARAM_MPEG4TYPE);
+    m_sParamMPEG4.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+    m_sParamMPEG4.eProfile = OMX_VIDEO_MPEG4ProfileSimple;
+    m_sParamMPEG4.eLevel = OMX_VIDEO_MPEG4Level0;
+    m_sParamMPEG4.nSliceHeaderSpacing = 0;
+    m_sParamMPEG4.bSVH = OMX_FALSE;
+    m_sParamMPEG4.bGov = OMX_FALSE;
+    m_sParamMPEG4.nPFrames = (m_sOutPortFormat.xFramerate * 2 - 1);  // 2 second intra period for default outport fps
+    m_sParamMPEG4.bACPred = OMX_TRUE;
+    m_sParamMPEG4.nTimeIncRes = 30; // delta = 2 @ 15 fps
+    m_sParamMPEG4.nAllowedPictureTypes = 2; // pframe and iframe
+    m_sParamMPEG4.nHeaderExtension = 1; // number of video packet headers per vop
+    m_sParamMPEG4.bReversibleVLC = OMX_FALSE;
+
+    // h263 specific init
+    OMX_INIT_STRUCT(&m_sParamH263, OMX_VIDEO_PARAM_H263TYPE);
+    m_sParamH263.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+    m_sParamH263.nPFrames = (m_sOutPortFormat.xFramerate * 2 - 1); // 2 second intra period for default outport fps
+    m_sParamH263.nBFrames = 0;
+    m_sParamH263.eProfile = OMX_VIDEO_H263ProfileBaseline;
+    m_sParamH263.eLevel = OMX_VIDEO_H263Level10;
+    m_sParamH263.bPLUSPTYPEAllowed = OMX_FALSE;
+    m_sParamH263.nAllowedPictureTypes = 2;
+    m_sParamH263.bForceRoundingTypeToZero = OMX_TRUE;
+    m_sParamH263.nPictureHeaderRepetition = 0;
+    m_sParamH263.nGOBHeaderInterval = 1;
+
+    // h264 specific init
+    OMX_INIT_STRUCT(&m_sParamAVC, OMX_VIDEO_PARAM_AVCTYPE);
+    m_sParamAVC.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+    m_sParamAVC.nSliceHeaderSpacing = 0;
+    m_sParamAVC.nPFrames = (m_sOutPortFormat.xFramerate * 2 - 1); // 2 second intra period for default outport fps
+    m_sParamAVC.nBFrames = 0;
+    m_sParamAVC.bUseHadamard = OMX_FALSE;
+    m_sParamAVC.nRefFrames = 1;
+    m_sParamAVC.nRefIdx10ActiveMinus1 = 1;
+    m_sParamAVC.nRefIdx11ActiveMinus1 = 0;
+    m_sParamAVC.bEnableUEP = OMX_FALSE;
+    m_sParamAVC.bEnableFMO = OMX_FALSE;
+    m_sParamAVC.bEnableASO = OMX_FALSE;
+    m_sParamAVC.bEnableRS = OMX_FALSE;
+    m_sParamAVC.eProfile = OMX_VIDEO_AVCProfileBaseline;
+    m_sParamAVC.eLevel = OMX_VIDEO_AVCLevel1;
+    m_sParamAVC.nAllowedPictureTypes = 2;
+    m_sParamAVC.bFrameMBsOnly = OMX_FALSE;
+    m_sParamAVC.bMBAFF = OMX_FALSE;
+    m_sParamAVC.bEntropyCodingCABAC = OMX_FALSE;
+    m_sParamAVC.bWeightedPPrediction = OMX_FALSE;
+    m_sParamAVC.nWeightedBipredicitonMode = 0;
+    m_sParamAVC.bconstIpred = OMX_FALSE;
+    m_sParamAVC.bDirect8x8Inference = OMX_FALSE;
+    m_sParamAVC.bDirectSpatialTemporal = OMX_FALSE;
+    m_sParamAVC.nCabacInitIdc = 0;
+    m_sParamAVC.eLoopFilterMode = OMX_VIDEO_AVCLoopFilterEnable;
+
+    OMX_INIT_STRUCT(&m_sParamLTRMode, QOMX_VIDEO_PARAM_LTRMODE_TYPE);
+    m_sParamLTRMode.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+    m_sParamLTRMode.eLTRMode = QOMX_VIDEO_LTRMode_Disable;
+
+    m_state                   = OMX_StateLoaded;
+    m_sExtraData = 0;
+
+    if (eRet == OMX_ErrorNone) {
+        if (pipe(fds)) {
+            DEBUG_PRINT_ERROR("ERROR: pipe creation failed\n");
+            eRet = OMX_ErrorInsufficientResources;
+        } else {
+            if (fds[0] == 0 || fds[1] == 0) {
+                if (pipe(fds)) {
+                    DEBUG_PRINT_ERROR("ERROR: pipe creation failed\n");
+                    eRet = OMX_ErrorInsufficientResources;
+                }
+            }
+            if (eRet == OMX_ErrorNone) {
+                m_pipe_in = fds[0];
+                m_pipe_out = fds[1];
+            }
         }
-      }
-      if(eRet == OMX_ErrorNone)
-      {
-        m_pipe_in = fds[0];
-        m_pipe_out = fds[1];
-      }
+        msg_thread_created = true;
+        r = pthread_create(&msg_thread_id,0, message_thread, this);
+        if (r < 0) {
+            eRet = OMX_ErrorInsufficientResources;
+            msg_thread_created = false;
+        } else {
+            async_thread_created = true;
+            r = pthread_create(&async_thread_id,0, venc_dev::async_venc_message_thread, this);
+            if (r < 0) {
+                eRet = OMX_ErrorInsufficientResources;
+                async_thread_created = false;
+            } else
+                dev_set_message_thread_id(async_thread_id);
+        }
     }
-    msg_thread_created = true;
-    r = pthread_create(&msg_thread_id,0, message_thread, this);
-    if(r < 0)
-    {
-      eRet = OMX_ErrorInsufficientResources;
-      msg_thread_created = false;
-    }
-    else
-    {
-      async_thread_created = true;
-      r = pthread_create(&async_thread_id,0, venc_dev::async_venc_message_thread, this);
-      if(r < 0)
-      {
-        eRet = OMX_ErrorInsufficientResources;
-		async_thread_created = false;
-      } else
-		  dev_set_message_thread_id(async_thread_id);
-    }
-  }
 
-  DEBUG_PRINT_HIGH("\n Component_init return value = 0x%x", eRet);
-  return eRet;
+    DEBUG_PRINT_HIGH("\n Component_init return value = 0x%x", eRet);
+    return eRet;
 }
 
 
 /* ======================================================================
-FUNCTION
-  omx_venc::Setparameter
+   FUNCTION
+   omx_venc::Setparameter
 
-DESCRIPTION
-  OMX Set Parameter method implementation.
+   DESCRIPTION
+   OMX Set Parameter method implementation.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if successful.
+   RETURN VALUE
+   OMX Error None if successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_venc::set_parameter(OMX_IN OMX_HANDLETYPE     hComp,
-                                       OMX_IN OMX_INDEXTYPE paramIndex,
-                                       OMX_IN OMX_PTR        paramData)
+        OMX_IN OMX_INDEXTYPE paramIndex,
+        OMX_IN OMX_PTR        paramData)
 {
-  OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
 
 
-  if(m_state == OMX_StateInvalid)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Set Param in Invalid State\n");
-    return OMX_ErrorInvalidState;
-  }
-  if(paramData == NULL)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Get Param in Invalid paramData \n");
-    return OMX_ErrorBadParameter;
-  }
-
-  /*set_parameter can be called in loaded state
-  or disabled port */
-  if(m_state == OMX_StateLoaded
-     || m_sInPortDef.bEnabled == OMX_FALSE
-     || m_sOutPortDef.bEnabled == OMX_FALSE)
-  {
-    DEBUG_PRINT_LOW("Set Parameter called in valid state");
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("ERROR: Set Parameter called in Invalid State\n");
-    return OMX_ErrorIncorrectStateOperation;
-  }
-
-  switch(paramIndex)
-  {
-  case OMX_IndexParamPortDefinition:
-    {
-      OMX_PARAM_PORTDEFINITIONTYPE *portDefn;
-      portDefn = (OMX_PARAM_PORTDEFINITIONTYPE *) paramData;
-      DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPortDefinition H= %d, W = %d\n",
-           (int)portDefn->format.video.nFrameHeight,
-           (int)portDefn->format.video.nFrameWidth);
-
-      if(PORT_INDEX_IN == portDefn->nPortIndex)
-      {
-        if (!dev_is_video_session_supported(portDefn->format.video.nFrameWidth,
-                   portDefn->format.video.nFrameHeight)) {
-            DEBUG_PRINT_ERROR("video session not supported\n");
-            omx_report_unsupported_setting();
-            return OMX_ErrorUnsupportedSetting;
-        }
-        DEBUG_PRINT_LOW("\n i/p actual cnt requested = %d\n", portDefn->nBufferCountActual);
-        DEBUG_PRINT_LOW("\n i/p min cnt requested = %d\n", portDefn->nBufferCountMin);
-        DEBUG_PRINT_LOW("\n i/p buffersize requested = %d\n", portDefn->nBufferSize);
-        if(portDefn->nBufferCountMin > portDefn->nBufferCountActual)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: (In_PORT) Min buffers (%d) > actual count (%d)\n",
-                            portDefn->nBufferCountMin, portDefn->nBufferCountActual);
-          return OMX_ErrorUnsupportedSetting;
-        }
-        if(handle->venc_set_param(paramData,OMX_IndexParamPortDefinition) != true)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: venc_set_param input failed");
-          return OMX_ErrorUnsupportedSetting;
-        }
-
-        DEBUG_PRINT_LOW("\n i/p previous actual cnt = %d\n", m_sInPortDef.nBufferCountActual);
-        DEBUG_PRINT_LOW("\n i/p previous min cnt = %d\n", m_sInPortDef.nBufferCountMin);
-        memcpy(&m_sInPortDef, portDefn,sizeof(OMX_PARAM_PORTDEFINITIONTYPE));
-
-#ifdef _ANDROID_ICS_
-        if (portDefn->format.video.eColorFormat == (OMX_COLOR_FORMATTYPE)QOMX_COLOR_FormatAndroidOpaque) {
-            m_sInPortDef.format.video.eColorFormat =
-                OMX_COLOR_FormatYUV420SemiPlanar;
-            if(!mUseProxyColorFormat){
-              if (!c2d_conv.init()) {
-                DEBUG_PRINT_ERROR("\n C2D init failed");
-                return OMX_ErrorUnsupportedSetting;
-              }
-              DEBUG_PRINT_ERROR("\nC2D init is successful");
-            }
-            mUseProxyColorFormat = true;
-            m_input_msg_id = OMX_COMPONENT_GENERATE_ETB_OPQ;
-        } else
-          mUseProxyColorFormat = false;
-#endif
-        /*Query Input Buffer Requirements*/
-        dev_get_buf_req   (&m_sInPortDef.nBufferCountMin,
-                           &m_sInPortDef.nBufferCountActual,
-                           &m_sInPortDef.nBufferSize,
-                           m_sInPortDef.nPortIndex);
-
-        /*Query ouput Buffer Requirements*/
-        dev_get_buf_req   (&m_sOutPortDef.nBufferCountMin,
-                           &m_sOutPortDef.nBufferCountActual,
-                           &m_sOutPortDef.nBufferSize,
-                           m_sOutPortDef.nPortIndex);
-        m_sInPortDef.nBufferCountActual = portDefn->nBufferCountActual;
-      }
-      else if(PORT_INDEX_OUT == portDefn->nPortIndex)
-      {
-        DEBUG_PRINT_LOW("\n o/p actual cnt requested = %d\n", portDefn->nBufferCountActual);
-        DEBUG_PRINT_LOW("\n o/p min cnt requested = %d\n", portDefn->nBufferCountMin);
-        DEBUG_PRINT_LOW("\n o/p buffersize requested = %d\n", portDefn->nBufferSize);
-        if(portDefn->nBufferCountMin > portDefn->nBufferCountActual)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: (Out_PORT) Min buffers (%d) > actual count (%d)\n",
-                            portDefn->nBufferCountMin, portDefn->nBufferCountActual);
-          return OMX_ErrorUnsupportedSetting;
-        }
-        if(handle->venc_set_param(paramData,OMX_IndexParamPortDefinition) != true)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: venc_set_param output failed");
-          return OMX_ErrorUnsupportedSetting;
-        }
-#ifdef _MSM8974_
-        /*Query ouput Buffer Requirements*/
-        dev_get_buf_req(&m_sOutPortDef.nBufferCountMin,
-                        &m_sOutPortDef.nBufferCountActual,
-                        &m_sOutPortDef.nBufferSize,
-                        m_sOutPortDef.nPortIndex);
-#endif
-        memcpy(&m_sOutPortDef,portDefn,sizeof(struct OMX_PARAM_PORTDEFINITIONTYPE));
-        update_profile_level(); //framerate , bitrate
-
-        DEBUG_PRINT_LOW("\n o/p previous actual cnt = %d\n", m_sOutPortDef.nBufferCountActual);
-        DEBUG_PRINT_LOW("\n o/p previous min cnt = %d\n", m_sOutPortDef.nBufferCountMin);
-        m_sOutPortDef.nBufferCountActual = portDefn->nBufferCountActual;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: Set_parameter: Bad Port idx %d",
-                    (int)portDefn->nPortIndex);
-        eRet = OMX_ErrorBadPortIndex;
-      }
-      m_sConfigFramerate.xEncodeFramerate = portDefn->format.video.xFramerate;
-      m_sConfigBitrate.nEncodeBitrate = portDefn->format.video.nBitrate;
-      m_sParamBitrate.nTargetBitrate = portDefn->format.video.nBitrate;
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("ERROR: Set Param in Invalid State\n");
+        return OMX_ErrorInvalidState;
     }
-    break;
-
-  case OMX_IndexParamVideoPortFormat:
-    {
-      OMX_VIDEO_PARAM_PORTFORMATTYPE *portFmt =
-      (OMX_VIDEO_PARAM_PORTFORMATTYPE *)paramData;
-      DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoPortFormat %d\n",
-                  portFmt->eColorFormat);
-      //set the driver with the corresponding values
-      if(PORT_INDEX_IN == portFmt->nPortIndex)
-      {
-        if(handle->venc_set_param(paramData,OMX_IndexParamVideoPortFormat) != true)
-        {
-          return OMX_ErrorUnsupportedSetting;
-        }
-
-        DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoPortFormat %d\n",
-            portFmt->eColorFormat);
-        update_profile_level(); //framerate
-
-#ifdef _ANDROID_ICS_
-        if (portFmt->eColorFormat ==
-            (OMX_COLOR_FORMATTYPE)QOMX_COLOR_FormatAndroidOpaque) {
-            m_sInPortFormat.eColorFormat = OMX_COLOR_FormatYUV420SemiPlanar;
-            if(!mUseProxyColorFormat){
-              if (!c2d_conv.init()) {
-                DEBUG_PRINT_ERROR("\n C2D init failed");
-                return OMX_ErrorUnsupportedSetting;
-              }
-              DEBUG_PRINT_ERROR("\nC2D init is successful");
-            }
-            mUseProxyColorFormat = true;
-            m_input_msg_id = OMX_COMPONENT_GENERATE_ETB_OPQ;
-        }
-        else
-#endif
-        {
-            m_sInPortFormat.eColorFormat = portFmt->eColorFormat;
-            m_input_msg_id = OMX_COMPONENT_GENERATE_ETB;
-            mUseProxyColorFormat = false;
-        }
-        m_sInPortFormat.xFramerate = portFmt->xFramerate;
-      }
-      //TODO if no use case for O/P port,delet m_sOutPortFormat
-    }
-    break;
-  case OMX_IndexParamVideoInit:
-    {  //TODO, do we need this index set param
-      OMX_PORT_PARAM_TYPE* pParam = (OMX_PORT_PARAM_TYPE*)(paramData);
-      DEBUG_PRINT_LOW("\n Set OMX_IndexParamVideoInit called");
-      break;
+    if (paramData == NULL) {
+        DEBUG_PRINT_ERROR("ERROR: Get Param in Invalid paramData \n");
+        return OMX_ErrorBadParameter;
     }
 
-  case OMX_IndexParamVideoBitrate:
-    {
-      OMX_VIDEO_PARAM_BITRATETYPE* pParam = (OMX_VIDEO_PARAM_BITRATETYPE*)paramData;
-      DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoBitrate");
-      if(handle->venc_set_param(paramData,OMX_IndexParamVideoBitrate) != true)
-      {
-        return OMX_ErrorUnsupportedSetting;
-      }
-      m_sParamBitrate.nTargetBitrate = pParam->nTargetBitrate;
-      m_sParamBitrate.eControlRate = pParam->eControlRate;
-      update_profile_level(); //bitrate
-      m_sConfigBitrate.nEncodeBitrate = pParam->nTargetBitrate;
-	  m_sInPortDef.format.video.nBitrate = pParam->nTargetBitrate;
-      m_sOutPortDef.format.video.nBitrate = pParam->nTargetBitrate;
-      DEBUG_PRINT_LOW("\nbitrate = %u", m_sOutPortDef.format.video.nBitrate);
-      break;
-    }
-  case OMX_IndexParamVideoMpeg4:
-    {
-      OMX_VIDEO_PARAM_MPEG4TYPE* pParam = (OMX_VIDEO_PARAM_MPEG4TYPE*)paramData;
-      OMX_VIDEO_PARAM_MPEG4TYPE mp4_param;
-      memcpy(&mp4_param, pParam, sizeof(struct OMX_VIDEO_PARAM_MPEG4TYPE));
-      DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoMpeg4");
-      if(pParam->eProfile == OMX_VIDEO_MPEG4ProfileAdvancedSimple)
-      {
-#ifdef MAX_RES_1080P
-        if(pParam->nBFrames)
-        {
-          DEBUG_PRINT_HIGH("INFO: Only 1 Bframe is supported");
-          mp4_param.nBFrames = 1;
-        }
-#else
-        if(pParam->nBFrames)
-        {
-          DEBUG_PRINT_ERROR("Warning: B frames not supported\n");
-          mp4_param.nBFrames = 0;
-        }
-#endif
-      }
-      else
-      {
-        if(pParam->nBFrames)
-        {
-          DEBUG_PRINT_ERROR("Warning: B frames not supported\n");
-          mp4_param.nBFrames = 0;
-        }
-      }
-      if(handle->venc_set_param(&mp4_param,OMX_IndexParamVideoMpeg4) != true)
-      {
-        return OMX_ErrorUnsupportedSetting;
-      }
-      memcpy(&m_sParamMPEG4,pParam, sizeof(struct OMX_VIDEO_PARAM_MPEG4TYPE));
-      m_sIntraperiod.nPFrames = m_sParamMPEG4.nPFrames;
-      m_sIntraperiod.nBFrames = m_sParamMPEG4.nBFrames;
-      break;
-    }
-  case OMX_IndexParamVideoH263:
-    {
-      OMX_VIDEO_PARAM_H263TYPE* pParam = (OMX_VIDEO_PARAM_H263TYPE*)paramData;
-      DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoH263");
-      if(handle->venc_set_param(paramData,OMX_IndexParamVideoH263) != true)
-      {
-        return OMX_ErrorUnsupportedSetting;
-      }
-      memcpy(&m_sParamH263,pParam, sizeof(struct OMX_VIDEO_PARAM_H263TYPE));
-      m_sIntraperiod.nPFrames = m_sParamH263.nPFrames;
-      m_sIntraperiod.nBFrames = m_sParamH263.nBFrames;
-      break;
-    }
-  case OMX_IndexParamVideoAvc:
-    {
-      OMX_VIDEO_PARAM_AVCTYPE* pParam = (OMX_VIDEO_PARAM_AVCTYPE*)paramData;
-      OMX_VIDEO_PARAM_AVCTYPE avc_param;
-      memcpy(&avc_param, pParam, sizeof( struct OMX_VIDEO_PARAM_AVCTYPE));
-      DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoAvc");
-
-      if((pParam->eProfile == OMX_VIDEO_AVCProfileHigh)||
-         (pParam->eProfile == OMX_VIDEO_AVCProfileMain))
-      {
-#ifdef MAX_RES_1080P
-        if(pParam->nBFrames)
-        {
-          DEBUG_PRINT_HIGH("INFO: Only 1 Bframe is supported");
-          avc_param.nBFrames = 1;
-        }
-        if(pParam->nRefFrames != 2)
-        {
-          DEBUG_PRINT_ERROR("Warning: 2 RefFrames are needed, changing RefFrames from %lu to 2", pParam->nRefFrames);
-          avc_param.nRefFrames = 2;
-        }
-#else
-       if(pParam->nBFrames)
-       {
-         DEBUG_PRINT_ERROR("Warning: B frames not supported\n");
-         avc_param.nBFrames = 0;
-       }
-       if(pParam->nRefFrames != 1)
-       {
-         DEBUG_PRINT_ERROR("Warning: Only 1 RefFrame is supported, changing RefFrame from %lu to 1)", pParam->nRefFrames);
-         avc_param.nRefFrames = 1;
-       }
-#endif
-      }
-      else
-      {
-       if(pParam->nRefFrames != 1)
-       {
-         DEBUG_PRINT_ERROR("Warning: Only 1 RefFrame is supported, changing RefFrame from %lu to 1)", pParam->nRefFrames);
-         avc_param.nRefFrames = 1;
-       }
-       if(pParam->nBFrames)
-       {
-         DEBUG_PRINT_ERROR("Warning: B frames not supported\n");
-         avc_param.nBFrames = 0;
-       }
-      }
-      if(handle->venc_set_param(&avc_param,OMX_IndexParamVideoAvc) != true)
-      {
-        return OMX_ErrorUnsupportedSetting;
-      }
-      memcpy(&m_sParamAVC,pParam, sizeof(struct OMX_VIDEO_PARAM_AVCTYPE));
-      m_sIntraperiod.nPFrames = m_sParamAVC.nPFrames;
-      m_sIntraperiod.nBFrames = m_sParamAVC.nBFrames;
-      break;
-    }
-  case OMX_IndexParamVideoProfileLevelCurrent:
-    {
-      OMX_VIDEO_PARAM_PROFILELEVELTYPE* pParam = (OMX_VIDEO_PARAM_PROFILELEVELTYPE*)paramData;
-      DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoProfileLevelCurrent");
-      if(handle->venc_set_param(pParam,OMX_IndexParamVideoProfileLevelCurrent) != true)
-      {
-        DEBUG_PRINT_ERROR("set_parameter: OMX_IndexParamVideoProfileLevelCurrent failed for Profile: %lu "
-                          "Level :%lu", pParam->eProfile, pParam->eLevel);
-        return OMX_ErrorUnsupportedSetting;
-      }
-      m_sParamProfileLevel.eProfile = pParam->eProfile;
-      m_sParamProfileLevel.eLevel = pParam->eLevel;
-
-      if(!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.mpeg4",\
-          OMX_MAX_STRINGNAME_SIZE))
-      {
-          m_sParamMPEG4.eProfile = (OMX_VIDEO_MPEG4PROFILETYPE)m_sParamProfileLevel.eProfile;
-          m_sParamMPEG4.eLevel = (OMX_VIDEO_MPEG4LEVELTYPE)m_sParamProfileLevel.eLevel;
-          DEBUG_PRINT_LOW("\n MPEG4 profile = %d, level = %d", m_sParamMPEG4.eProfile,
-              m_sParamMPEG4.eLevel);
-      }
-      else if(!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.h263",\
-          OMX_MAX_STRINGNAME_SIZE))
-      {
-          m_sParamH263.eProfile = (OMX_VIDEO_H263PROFILETYPE)m_sParamProfileLevel.eProfile;
-          m_sParamH263.eLevel = (OMX_VIDEO_H263LEVELTYPE)m_sParamProfileLevel.eLevel;
-          DEBUG_PRINT_LOW("\n H263 profile = %d, level = %d", m_sParamH263.eProfile,
-              m_sParamH263.eLevel);
-      }
-      else if(!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.avc",\
-          OMX_MAX_STRINGNAME_SIZE))
-      {
-          m_sParamAVC.eProfile = (OMX_VIDEO_AVCPROFILETYPE)m_sParamProfileLevel.eProfile;
-          m_sParamAVC.eLevel = (OMX_VIDEO_AVCLEVELTYPE)m_sParamProfileLevel.eLevel;
-          DEBUG_PRINT_LOW("\n AVC profile = %d, level = %d", m_sParamAVC.eProfile,
-              m_sParamAVC.eLevel);
-      }
-      break;
-    }
-  case OMX_IndexParamStandardComponentRole:
-    {
-      OMX_PARAM_COMPONENTROLETYPE *comp_role;
-      comp_role = (OMX_PARAM_COMPONENTROLETYPE *) paramData;
-      DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamStandardComponentRole %s\n",
-                  comp_role->cRole);
-
-      if((m_state == OMX_StateLoaded)&&
-          !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING))
-      {
-         DEBUG_PRINT_LOW("Set Parameter called in valid state");
-      }
-      else
-      {
-         DEBUG_PRINT_ERROR("Set Parameter called in Invalid State\n");
-         return OMX_ErrorIncorrectStateOperation;
-      }
-
-      if(!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.avc",OMX_MAX_STRINGNAME_SIZE))
-      {
-        if(!strncmp((char*)comp_role->cRole,"video_encoder.avc",OMX_MAX_STRINGNAME_SIZE))
-        {
-          strlcpy((char*)m_cRole,"video_encoder.avc",OMX_MAX_STRINGNAME_SIZE);
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("ERROR: Setparameter: unknown Index %s\n", comp_role->cRole);
-          eRet =OMX_ErrorUnsupportedSetting;
-        }
-      }
-      else if(!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.mpeg4",OMX_MAX_STRINGNAME_SIZE))
-      {
-        if(!strncmp((const char*)comp_role->cRole,"video_encoder.mpeg4",OMX_MAX_STRINGNAME_SIZE))
-        {
-          strlcpy((char*)m_cRole,"video_encoder.mpeg4",OMX_MAX_STRINGNAME_SIZE);
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("ERROR: Setparameter: unknown Index %s\n", comp_role->cRole);
-          eRet = OMX_ErrorUnsupportedSetting;
-        }
-      }
-      else if(!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.h263",OMX_MAX_STRINGNAME_SIZE))
-      {
-        if(!strncmp((const char*)comp_role->cRole,"video_encoder.h263",OMX_MAX_STRINGNAME_SIZE))
-        {
-          strlcpy((char*)m_cRole,"video_encoder.h263",OMX_MAX_STRINGNAME_SIZE);
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("ERROR: Setparameter: unknown Index %s\n", comp_role->cRole);
-          eRet =OMX_ErrorUnsupportedSetting;
-        }
-      }
-#ifdef _MSM8974_
-      else if(!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.vp8",OMX_MAX_STRINGNAME_SIZE))
-      {
-        if(!strncmp((const char*)comp_role->cRole,"video_encoder.vp8",OMX_MAX_STRINGNAME_SIZE))
-        {
-          strlcpy((char*)m_cRole,"video_encoder.vp8",OMX_MAX_STRINGNAME_SIZE);
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("ERROR: Setparameter: unknown Index %s\n", comp_role->cRole);
-          eRet =OMX_ErrorUnsupportedSetting;
-        }
-      }
-#endif
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: Setparameter: unknown param %s\n", m_nkind);
-        eRet = OMX_ErrorInvalidComponentName;
-      }
-      break;
-    }
-
-  case OMX_IndexParamPriorityMgmt:
-    {
-      DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPriorityMgmt");
-      if(m_state != OMX_StateLoaded)
-      {
+    /*set_parameter can be called in loaded state
+      or disabled port */
+    if (m_state == OMX_StateLoaded
+            || m_sInPortDef.bEnabled == OMX_FALSE
+            || m_sOutPortDef.bEnabled == OMX_FALSE) {
+        DEBUG_PRINT_LOW("Set Parameter called in valid state");
+    } else {
         DEBUG_PRINT_ERROR("ERROR: Set Parameter called in Invalid State\n");
         return OMX_ErrorIncorrectStateOperation;
-      }
-      OMX_PRIORITYMGMTTYPE *priorityMgmtype = (OMX_PRIORITYMGMTTYPE*) paramData;
-      DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPriorityMgmt %d\n",
-                  priorityMgmtype->nGroupID);
-
-      DEBUG_PRINT_LOW("set_parameter: priorityMgmtype %d\n",
-                  priorityMgmtype->nGroupPriority);
-
-      m_sPriorityMgmt.nGroupID = priorityMgmtype->nGroupID;
-      m_sPriorityMgmt.nGroupPriority = priorityMgmtype->nGroupPriority;
-
-      break;
     }
 
-  case OMX_IndexParamCompBufferSupplier:
-    {
-      DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamCompBufferSupplier");
-      OMX_PARAM_BUFFERSUPPLIERTYPE *bufferSupplierType = (OMX_PARAM_BUFFERSUPPLIERTYPE*) paramData;
-      DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamCompBufferSupplier %d\n",
-                  bufferSupplierType->eBufferSupplier);
-      if(bufferSupplierType->nPortIndex == 0 || bufferSupplierType->nPortIndex ==1)
-        m_sInBufSupplier.eBufferSupplier = bufferSupplierType->eBufferSupplier;
-
-      else
-
-        eRet = OMX_ErrorBadPortIndex;
-
-      break;
-
-    }
-  case OMX_IndexParamVideoQuantization:
-    {
-      DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoQuantization\n");
-      OMX_VIDEO_PARAM_QUANTIZATIONTYPE *session_qp = (OMX_VIDEO_PARAM_QUANTIZATIONTYPE*) paramData;
-      if(session_qp->nPortIndex == PORT_INDEX_OUT)
-      {
-        if(handle->venc_set_param(paramData, OMX_IndexParamVideoQuantization) != true)
-        {
-          return OMX_ErrorUnsupportedSetting;
-        }
-        m_sSessionQuantization.nQpI = session_qp->nQpI;
-        m_sSessionQuantization.nQpP = session_qp->nQpP;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Unsupported port Index for Session QP setting\n");
-        eRet = OMX_ErrorBadPortIndex;
-      }
-      break;
-    }
-
-  case OMX_QcomIndexParamVideoQPRange:
-    {
-      DEBUG_PRINT_LOW("set_parameter: OMX_QcomIndexParamVideoQPRange\n");
-      OMX_QCOM_VIDEO_PARAM_QPRANGETYPE *qp_range = (OMX_QCOM_VIDEO_PARAM_QPRANGETYPE*) paramData;
-      if(qp_range->nPortIndex == PORT_INDEX_OUT)
-      {
-        if(handle->venc_set_param(paramData,
-              (OMX_INDEXTYPE)OMX_QcomIndexParamVideoQPRange) != true)
-        {
-          return OMX_ErrorUnsupportedSetting;
-        }
-        m_sSessionQPRange.minQP= qp_range->minQP;
-        m_sSessionQPRange.maxQP= qp_range->maxQP;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Unsupported port Index for QP range setting\n");
-        eRet = OMX_ErrorBadPortIndex;
-      }
-      break;
-    }
-
-  case OMX_QcomIndexPortDefn:
-    {
-      OMX_QCOM_PARAM_PORTDEFINITIONTYPE* pParam =
-          (OMX_QCOM_PARAM_PORTDEFINITIONTYPE*)paramData;
-      DEBUG_PRINT_LOW("set_parameter: OMX_QcomIndexPortDefn");
-      if(pParam->nPortIndex == (OMX_U32)PORT_INDEX_IN)
-      {
-        if(pParam->nMemRegion > OMX_QCOM_MemRegionInvalid &&
-          pParam->nMemRegion < OMX_QCOM_MemRegionMax)
-        {
-          m_use_input_pmem = OMX_TRUE;
-        }
-        else
-        {
-          m_use_input_pmem = OMX_FALSE;
-        }
-      }
-      else if (pParam->nPortIndex == (OMX_U32)PORT_INDEX_OUT)
-      {
-        if(pParam->nMemRegion > OMX_QCOM_MemRegionInvalid &&
-          pParam->nMemRegion < OMX_QCOM_MemRegionMax)
-        {
-          m_use_output_pmem = OMX_TRUE;
-        }
-        else
-        {
-          m_use_output_pmem = OMX_FALSE;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: SetParameter called on unsupported Port Index for QcomPortDefn");
-        return OMX_ErrorBadPortIndex;
-      }
-      break;
-    }
-
-  case OMX_IndexParamVideoErrorCorrection:
-    {
-	    DEBUG_PRINT_LOW("OMX_IndexParamVideoErrorCorrection\n");
-      OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE* pParam =
-          (OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE*)paramData;
-      if(!handle->venc_set_param(paramData, OMX_IndexParamVideoErrorCorrection))
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Request for setting Error Resilience failed");
-        return OMX_ErrorUnsupportedSetting;
-      }
-      memcpy(&m_sErrorCorrection,pParam, sizeof(m_sErrorCorrection));
-      break;
-    }
-  case OMX_IndexParamVideoIntraRefresh:
-    {
-      DEBUG_PRINT_LOW("set_param:OMX_IndexParamVideoIntraRefresh\n");
-      OMX_VIDEO_PARAM_INTRAREFRESHTYPE* pParam =
-          (OMX_VIDEO_PARAM_INTRAREFRESHTYPE*)paramData;
-      if(!handle->venc_set_param(paramData,OMX_IndexParamVideoIntraRefresh))
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Request for setting intra refresh failed");
-        return OMX_ErrorUnsupportedSetting;
-      }
-      memcpy(&m_sIntraRefresh, pParam, sizeof(m_sIntraRefresh));
-      break;
-    }
-#ifdef _ANDROID_ICS_
-  case OMX_QcomIndexParamVideoEncodeMetaBufferMode:
-    {
-      StoreMetaDataInBuffersParams *pParam =
-        (StoreMetaDataInBuffersParams*)paramData;
-      DEBUG_PRINT_HIGH("set_parameter:OMX_QcomIndexParamVideoEncodeMetaBufferMode: "
-         "port_index = %lu, meta_mode = %d", pParam->nPortIndex, pParam->bStoreMetaData);
-      if(pParam->nPortIndex == PORT_INDEX_IN)
-      {
-        if(pParam->bStoreMetaData != meta_mode_enable)
-        {
-          if(!handle->venc_set_meta_mode(pParam->bStoreMetaData))
-          {
-            DEBUG_PRINT_ERROR("\nERROR: set Metabuffer mode %d fail",
-                         pParam->bStoreMetaData);
-            return OMX_ErrorUnsupportedSetting;
-          }
-          meta_mode_enable = pParam->bStoreMetaData;
-          if(meta_mode_enable) {
-            m_sInPortDef.nBufferCountActual = m_sInPortDef.nBufferCountMin;
-            if(handle->venc_set_param(&m_sInPortDef,OMX_IndexParamPortDefinition) != true)
+    switch (paramIndex) {
+        case OMX_IndexParamPortDefinition:
             {
-              DEBUG_PRINT_ERROR("\nERROR: venc_set_param input failed");
-              return OMX_ErrorUnsupportedSetting;
-            }
-          } else {
-            /*TODO: reset encoder driver Meta mode*/
-            dev_get_buf_req   (&m_sOutPortDef.nBufferCountMin,
-                               &m_sOutPortDef.nBufferCountActual,
-                               &m_sOutPortDef.nBufferSize,
-                               m_sOutPortDef.nPortIndex);
-          }
-        }
-      }
-      else
-      {
-         DEBUG_PRINT_ERROR("set_parameter: metamode is "
-            "valid for input port only");
-         eRet = OMX_ErrorUnsupportedIndex;
-      }
-    }
-    break;
+                OMX_PARAM_PORTDEFINITIONTYPE *portDefn;
+                portDefn = (OMX_PARAM_PORTDEFINITIONTYPE *) paramData;
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPortDefinition H= %d, W = %d\n",
+                        (int)portDefn->format.video.nFrameHeight,
+                        (int)portDefn->format.video.nFrameWidth);
+
+                if (PORT_INDEX_IN == portDefn->nPortIndex) {
+                    if (!dev_is_video_session_supported(portDefn->format.video.nFrameWidth,
+                                portDefn->format.video.nFrameHeight)) {
+                        DEBUG_PRINT_ERROR("video session not supported\n");
+                        omx_report_unsupported_setting();
+                        return OMX_ErrorUnsupportedSetting;
+                    }
+                    DEBUG_PRINT_LOW("\n i/p actual cnt requested = %d\n", portDefn->nBufferCountActual);
+                    DEBUG_PRINT_LOW("\n i/p min cnt requested = %d\n", portDefn->nBufferCountMin);
+                    DEBUG_PRINT_LOW("\n i/p buffersize requested = %d\n", portDefn->nBufferSize);
+                    if (portDefn->nBufferCountMin > portDefn->nBufferCountActual) {
+                        DEBUG_PRINT_ERROR("\nERROR: (In_PORT) Min buffers (%d) > actual count (%d)\n",
+                                portDefn->nBufferCountMin, portDefn->nBufferCountActual);
+                        return OMX_ErrorUnsupportedSetting;
+                    }
+                    if (handle->venc_set_param(paramData,OMX_IndexParamPortDefinition) != true) {
+                        DEBUG_PRINT_ERROR("\nERROR: venc_set_param input failed");
+                        return OMX_ErrorUnsupportedSetting;
+                    }
+
+                    DEBUG_PRINT_LOW("\n i/p previous actual cnt = %d\n", m_sInPortDef.nBufferCountActual);
+                    DEBUG_PRINT_LOW("\n i/p previous min cnt = %d\n", m_sInPortDef.nBufferCountMin);
+                    memcpy(&m_sInPortDef, portDefn,sizeof(OMX_PARAM_PORTDEFINITIONTYPE));
+
+#ifdef _ANDROID_ICS_
+                    if (portDefn->format.video.eColorFormat == (OMX_COLOR_FORMATTYPE)QOMX_COLOR_FormatAndroidOpaque) {
+                        m_sInPortDef.format.video.eColorFormat =
+                            OMX_COLOR_FormatYUV420SemiPlanar;
+                        if (!mUseProxyColorFormat) {
+                            if (!c2d_conv.init()) {
+                                DEBUG_PRINT_ERROR("\n C2D init failed");
+                                return OMX_ErrorUnsupportedSetting;
+                            }
+                            DEBUG_PRINT_ERROR("\nC2D init is successful");
+                        }
+                        mUseProxyColorFormat = true;
+                        m_input_msg_id = OMX_COMPONENT_GENERATE_ETB_OPQ;
+                    } else
+                        mUseProxyColorFormat = false;
 #endif
-#if !defined(MAX_RES_720P) || defined(_MSM8974_)
-  case OMX_QcomIndexParamIndexExtraDataType:
-    {
-      DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexParamIndexExtraDataType");
-      QOMX_INDEXEXTRADATATYPE *pParam = (QOMX_INDEXEXTRADATATYPE *)paramData;
-      if (pParam->nIndex == (OMX_INDEXTYPE)OMX_ExtraDataVideoEncoderSliceInfo)
-      {
-        if (pParam->nPortIndex == PORT_INDEX_OUT)
-        {
-          if (pParam->bEnabled == OMX_TRUE)
-            m_sExtraData |= VEN_EXTRADATA_SLICEINFO;
-          else
-            m_sExtraData &= ~VEN_EXTRADATA_SLICEINFO;
-          DEBUG_PRINT_HIGH("SliceInfo extradata %s",
-             ((pParam->bEnabled == OMX_TRUE) ? "enabled" : "disabled"));
-          if(handle->venc_set_param(&m_sExtraData,
-              (OMX_INDEXTYPE)OMX_ExtraDataVideoEncoderSliceInfo) != true)
-          {
-            DEBUG_PRINT_ERROR("ERROR: Setting "
-               "OMX_ExtraDataVideoEncoderSliceInfo failed");
-            return OMX_ErrorUnsupportedSetting;
-          }
-          else
-          {
-            m_sOutPortDef.nPortIndex = PORT_INDEX_OUT;
-            dev_get_buf_req(&m_sOutPortDef.nBufferCountMin,
-                            &m_sOutPortDef.nBufferCountActual,
-                            &m_sOutPortDef.nBufferSize,
-                             m_sOutPortDef.nPortIndex);
-            DEBUG_PRINT_HIGH("updated out_buf_req: buffer cnt=%lu, "
-                "count min=%lu, buffer size=%lu",
-                m_sOutPortDef.nBufferCountActual,
-                m_sOutPortDef.nBufferCountMin,
-                m_sOutPortDef.nBufferSize);
-          }
-        }
-      }
-#ifndef _MSM8974_
-      else if (pParam->nIndex == (OMX_INDEXTYPE)OMX_ExtraDataVideoLTRInfo)
-      {
-        if (pParam->nPortIndex == PORT_INDEX_OUT)
-        {
-          if (pParam->bEnabled == OMX_TRUE)
-            m_sExtraData |= VEN_EXTRADATA_LTRINFO;
-          else
-            m_sExtraData &= ~VEN_EXTRADATA_LTRINFO;
-          DEBUG_PRINT_HIGH("LTRInfo extradata %s",
-             ((pParam->bEnabled == OMX_TRUE) ? "enabled" : "disabled"));
-          if(handle->venc_set_param(&m_sExtraData,
-            (OMX_INDEXTYPE)OMX_ExtraDataVideoLTRInfo) != true)
-          {
-            DEBUG_PRINT_ERROR("ERROR: Setting "
-                "OMX_ExtraDataVideoLTRInfo failed");
-            return OMX_ErrorUnsupportedSetting;
-          }
-          else
-          {
-            m_sOutPortDef.nPortIndex = PORT_INDEX_OUT;
-            dev_get_buf_req(&m_sOutPortDef.nBufferCountMin,
+                    /*Query Input Buffer Requirements*/
+                    dev_get_buf_req   (&m_sInPortDef.nBufferCountMin,
+                            &m_sInPortDef.nBufferCountActual,
+                            &m_sInPortDef.nBufferSize,
+                            m_sInPortDef.nPortIndex);
+
+                    /*Query ouput Buffer Requirements*/
+                    dev_get_buf_req   (&m_sOutPortDef.nBufferCountMin,
                             &m_sOutPortDef.nBufferCountActual,
                             &m_sOutPortDef.nBufferSize,
                             m_sOutPortDef.nPortIndex);
-            DEBUG_PRINT_HIGH("updated out_buf_req: buffer cnt=%d, "
-                "count min=%d, buffer size=%d",
-                m_sOutPortDef.nBufferCountActual,
-                m_sOutPortDef.nBufferCountMin,
-                m_sOutPortDef.nBufferSize);
-          }
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("set_parameter: LTR information is "
-              "valid for output port only");
-          eRet = OMX_ErrorUnsupportedIndex;
-        }
-      }
+                    m_sInPortDef.nBufferCountActual = portDefn->nBufferCountActual;
+                } else if (PORT_INDEX_OUT == portDefn->nPortIndex) {
+                    DEBUG_PRINT_LOW("\n o/p actual cnt requested = %d\n", portDefn->nBufferCountActual);
+                    DEBUG_PRINT_LOW("\n o/p min cnt requested = %d\n", portDefn->nBufferCountMin);
+                    DEBUG_PRINT_LOW("\n o/p buffersize requested = %d\n", portDefn->nBufferSize);
+                    if (portDefn->nBufferCountMin > portDefn->nBufferCountActual) {
+                        DEBUG_PRINT_ERROR("\nERROR: (Out_PORT) Min buffers (%d) > actual count (%d)\n",
+                                portDefn->nBufferCountMin, portDefn->nBufferCountActual);
+                        return OMX_ErrorUnsupportedSetting;
+                    }
+                    if (handle->venc_set_param(paramData,OMX_IndexParamPortDefinition) != true) {
+                        DEBUG_PRINT_ERROR("\nERROR: venc_set_param output failed");
+                        return OMX_ErrorUnsupportedSetting;
+                    }
+#ifdef _MSM8974_
+                    /*Query ouput Buffer Requirements*/
+                    dev_get_buf_req(&m_sOutPortDef.nBufferCountMin,
+                            &m_sOutPortDef.nBufferCountActual,
+                            &m_sOutPortDef.nBufferSize,
+                            m_sOutPortDef.nPortIndex);
 #endif
-      else
-      {
-        DEBUG_PRINT_ERROR("set_parameter: unsupported extrdata index (%x)",
-            pParam->nIndex);
-        eRet = OMX_ErrorUnsupportedIndex;
-      }
-      break;
-    }
-  case QOMX_IndexParamVideoLTRMode:
-    {
-      QOMX_VIDEO_PARAM_LTRMODE_TYPE* pParam =
-          (QOMX_VIDEO_PARAM_LTRMODE_TYPE*)paramData;
-      if(!handle->venc_set_param(paramData, (OMX_INDEXTYPE)QOMX_IndexParamVideoLTRMode))
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Setting LTR mode failed");
-        return OMX_ErrorUnsupportedSetting;
-      }
-      memcpy(&m_sParamLTRMode, pParam, sizeof(m_sParamLTRMode));
-      break;
-    }
-  case QOMX_IndexParamVideoLTRCount:
-    {
-      QOMX_VIDEO_PARAM_LTRCOUNT_TYPE* pParam =
-          (QOMX_VIDEO_PARAM_LTRCOUNT_TYPE*)paramData;
-      if(!handle->venc_set_param(paramData, (OMX_INDEXTYPE)QOMX_IndexParamVideoLTRCount))
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Setting LTR count failed");
-        return OMX_ErrorUnsupportedSetting;
-      }
-      memcpy(&m_sParamLTRCount, pParam, sizeof(m_sParamLTRCount));
-      break;
-    }
+                    memcpy(&m_sOutPortDef,portDefn,sizeof(struct OMX_PARAM_PORTDEFINITIONTYPE));
+                    update_profile_level(); //framerate , bitrate
+
+                    DEBUG_PRINT_LOW("\n o/p previous actual cnt = %d\n", m_sOutPortDef.nBufferCountActual);
+                    DEBUG_PRINT_LOW("\n o/p previous min cnt = %d\n", m_sOutPortDef.nBufferCountMin);
+                    m_sOutPortDef.nBufferCountActual = portDefn->nBufferCountActual;
+                } else {
+                    DEBUG_PRINT_ERROR("ERROR: Set_parameter: Bad Port idx %d",
+                            (int)portDefn->nPortIndex);
+                    eRet = OMX_ErrorBadPortIndex;
+                }
+                m_sConfigFramerate.xEncodeFramerate = portDefn->format.video.xFramerate;
+                m_sConfigBitrate.nEncodeBitrate = portDefn->format.video.nBitrate;
+                m_sParamBitrate.nTargetBitrate = portDefn->format.video.nBitrate;
+            }
+            break;
+
+        case OMX_IndexParamVideoPortFormat:
+            {
+                OMX_VIDEO_PARAM_PORTFORMATTYPE *portFmt =
+                    (OMX_VIDEO_PARAM_PORTFORMATTYPE *)paramData;
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoPortFormat %d\n",
+                        portFmt->eColorFormat);
+                //set the driver with the corresponding values
+                if (PORT_INDEX_IN == portFmt->nPortIndex) {
+                    if (handle->venc_set_param(paramData,OMX_IndexParamVideoPortFormat) != true) {
+                        return OMX_ErrorUnsupportedSetting;
+                    }
+
+                    DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoPortFormat %d\n",
+                            portFmt->eColorFormat);
+                    update_profile_level(); //framerate
+
+#ifdef _ANDROID_ICS_
+                    if (portFmt->eColorFormat ==
+                            (OMX_COLOR_FORMATTYPE)QOMX_COLOR_FormatAndroidOpaque) {
+                        m_sInPortFormat.eColorFormat = OMX_COLOR_FormatYUV420SemiPlanar;
+                        if (!mUseProxyColorFormat) {
+                            if (!c2d_conv.init()) {
+                                DEBUG_PRINT_ERROR("\n C2D init failed");
+                                return OMX_ErrorUnsupportedSetting;
+                            }
+                            DEBUG_PRINT_ERROR("\nC2D init is successful");
+                        }
+                        mUseProxyColorFormat = true;
+                        m_input_msg_id = OMX_COMPONENT_GENERATE_ETB_OPQ;
+                    } else
 #endif
-  case OMX_QcomIndexParamVideoMaxAllowedBitrateCheck:
-    {
-      QOMX_EXTNINDEX_PARAMTYPE* pParam =
-         (QOMX_EXTNINDEX_PARAMTYPE*)paramData;
-      if(pParam->nPortIndex == PORT_INDEX_OUT)
-      {
-        handle->m_max_allowed_bitrate_check =
-           ((pParam->bEnable == OMX_TRUE) ? true : false);
-        DEBUG_PRINT_HIGH("set_parameter: max allowed bitrate check %s",
-           ((pParam->bEnable == OMX_TRUE) ? "enabled" : "disabled"));
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: OMX_QcomIndexParamVideoMaxAllowedBitrateCheck "
-           " called on wrong port(%lu)", pParam->nPortIndex);
-        return OMX_ErrorBadPortIndex;
-      }
-      break;
-    }
+                    {
+                        m_sInPortFormat.eColorFormat = portFmt->eColorFormat;
+                        m_input_msg_id = OMX_COMPONENT_GENERATE_ETB;
+                        mUseProxyColorFormat = false;
+                    }
+                    m_sInPortFormat.xFramerate = portFmt->xFramerate;
+                }
+                //TODO if no use case for O/P port,delet m_sOutPortFormat
+            }
+            break;
+        case OMX_IndexParamVideoInit:
+            { //TODO, do we need this index set param
+                OMX_PORT_PARAM_TYPE* pParam = (OMX_PORT_PARAM_TYPE*)(paramData);
+                DEBUG_PRINT_LOW("\n Set OMX_IndexParamVideoInit called");
+                break;
+            }
+
+        case OMX_IndexParamVideoBitrate:
+            {
+                OMX_VIDEO_PARAM_BITRATETYPE* pParam = (OMX_VIDEO_PARAM_BITRATETYPE*)paramData;
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoBitrate");
+                if (handle->venc_set_param(paramData,OMX_IndexParamVideoBitrate) != true) {
+                    return OMX_ErrorUnsupportedSetting;
+                }
+                m_sParamBitrate.nTargetBitrate = pParam->nTargetBitrate;
+                m_sParamBitrate.eControlRate = pParam->eControlRate;
+                update_profile_level(); //bitrate
+                m_sConfigBitrate.nEncodeBitrate = pParam->nTargetBitrate;
+                m_sInPortDef.format.video.nBitrate = pParam->nTargetBitrate;
+                m_sOutPortDef.format.video.nBitrate = pParam->nTargetBitrate;
+                DEBUG_PRINT_LOW("\nbitrate = %u", m_sOutPortDef.format.video.nBitrate);
+                break;
+            }
+        case OMX_IndexParamVideoMpeg4:
+            {
+                OMX_VIDEO_PARAM_MPEG4TYPE* pParam = (OMX_VIDEO_PARAM_MPEG4TYPE*)paramData;
+                OMX_VIDEO_PARAM_MPEG4TYPE mp4_param;
+                memcpy(&mp4_param, pParam, sizeof(struct OMX_VIDEO_PARAM_MPEG4TYPE));
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoMpeg4");
+                if (pParam->eProfile == OMX_VIDEO_MPEG4ProfileAdvancedSimple) {
 #ifdef MAX_RES_1080P
-  case OMX_QcomIndexEnableSliceDeliveryMode:
-    {
-      QOMX_EXTNINDEX_PARAMTYPE* pParam =
-         (QOMX_EXTNINDEX_PARAMTYPE*)paramData;
-      if(pParam->nPortIndex == PORT_INDEX_OUT)
-      {
-        if(!handle->venc_set_param(paramData,
-              (OMX_INDEXTYPE)OMX_QcomIndexEnableSliceDeliveryMode))
-        {
-          DEBUG_PRINT_ERROR("ERROR: Request for setting slice delivery mode failed");
-          return OMX_ErrorUnsupportedSetting;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: OMX_QcomIndexEnableSliceDeliveryMode "
-           "called on wrong port(%lu)", pParam->nPortIndex);
-        return OMX_ErrorBadPortIndex;
-      }
-      break;
-    }
+                    if (pParam->nBFrames) {
+                        DEBUG_PRINT_HIGH("INFO: Only 1 Bframe is supported");
+                        mp4_param.nBFrames = 1;
+                    }
+#else
+                    if (pParam->nBFrames) {
+                        DEBUG_PRINT_ERROR("Warning: B frames not supported\n");
+                        mp4_param.nBFrames = 0;
+                    }
 #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(%lu)", pParam->nPortIndex);
-        return OMX_ErrorBadPortIndex;
-      }
-      break;
+                } else {
+                    if (pParam->nBFrames) {
+                        DEBUG_PRINT_ERROR("Warning: B frames not supported\n");
+                        mp4_param.nBFrames = 0;
+                    }
+                }
+                if (handle->venc_set_param(&mp4_param,OMX_IndexParamVideoMpeg4) != true) {
+                    return OMX_ErrorUnsupportedSetting;
+                }
+                memcpy(&m_sParamMPEG4,pParam, sizeof(struct OMX_VIDEO_PARAM_MPEG4TYPE));
+                m_sIntraperiod.nPFrames = m_sParamMPEG4.nPFrames;
+                m_sIntraperiod.nBFrames = m_sParamMPEG4.nBFrames;
+                break;
+            }
+        case OMX_IndexParamVideoH263:
+            {
+                OMX_VIDEO_PARAM_H263TYPE* pParam = (OMX_VIDEO_PARAM_H263TYPE*)paramData;
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoH263");
+                if (handle->venc_set_param(paramData,OMX_IndexParamVideoH263) != true) {
+                    return OMX_ErrorUnsupportedSetting;
+                }
+                memcpy(&m_sParamH263,pParam, sizeof(struct OMX_VIDEO_PARAM_H263TYPE));
+                m_sIntraperiod.nPFrames = m_sParamH263.nPFrames;
+                m_sIntraperiod.nBFrames = m_sParamH263.nBFrames;
+                break;
+            }
+        case OMX_IndexParamVideoAvc:
+            {
+                OMX_VIDEO_PARAM_AVCTYPE* pParam = (OMX_VIDEO_PARAM_AVCTYPE*)paramData;
+                OMX_VIDEO_PARAM_AVCTYPE avc_param;
+                memcpy(&avc_param, pParam, sizeof( struct OMX_VIDEO_PARAM_AVCTYPE));
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoAvc");
+
+                if ((pParam->eProfile == OMX_VIDEO_AVCProfileHigh)||
+                        (pParam->eProfile == OMX_VIDEO_AVCProfileMain)) {
+#ifdef MAX_RES_1080P
+                    if (pParam->nBFrames) {
+                        DEBUG_PRINT_HIGH("INFO: Only 1 Bframe is supported");
+                        avc_param.nBFrames = 1;
+                    }
+                    if (pParam->nRefFrames != 2) {
+                        DEBUG_PRINT_ERROR("Warning: 2 RefFrames are needed, changing RefFrames from %lu to 2", pParam->nRefFrames);
+                        avc_param.nRefFrames = 2;
+                    }
+#else
+                    if (pParam->nBFrames) {
+                        DEBUG_PRINT_ERROR("Warning: B frames not supported\n");
+                        avc_param.nBFrames = 0;
+                    }
+                    if (pParam->nRefFrames != 1) {
+                        DEBUG_PRINT_ERROR("Warning: Only 1 RefFrame is supported, changing RefFrame from %lu to 1)", pParam->nRefFrames);
+                        avc_param.nRefFrames = 1;
+                    }
+#endif
+                } else {
+                    if (pParam->nRefFrames != 1) {
+                        DEBUG_PRINT_ERROR("Warning: Only 1 RefFrame is supported, changing RefFrame from %lu to 1)", pParam->nRefFrames);
+                        avc_param.nRefFrames = 1;
+                    }
+                    if (pParam->nBFrames) {
+                        DEBUG_PRINT_ERROR("Warning: B frames not supported\n");
+                        avc_param.nBFrames = 0;
+                    }
+                }
+                if (handle->venc_set_param(&avc_param,OMX_IndexParamVideoAvc) != true) {
+                    return OMX_ErrorUnsupportedSetting;
+                }
+                memcpy(&m_sParamAVC,pParam, sizeof(struct OMX_VIDEO_PARAM_AVCTYPE));
+                m_sIntraperiod.nPFrames = m_sParamAVC.nPFrames;
+                m_sIntraperiod.nBFrames = m_sParamAVC.nBFrames;
+                break;
+            }
+        case OMX_IndexParamVideoProfileLevelCurrent:
+            {
+                OMX_VIDEO_PARAM_PROFILELEVELTYPE* pParam = (OMX_VIDEO_PARAM_PROFILELEVELTYPE*)paramData;
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoProfileLevelCurrent");
+                if (handle->venc_set_param(pParam,OMX_IndexParamVideoProfileLevelCurrent) != true) {
+                    DEBUG_PRINT_ERROR("set_parameter: OMX_IndexParamVideoProfileLevelCurrent failed for Profile: %lu "
+                            "Level :%lu", pParam->eProfile, pParam->eLevel);
+                    return OMX_ErrorUnsupportedSetting;
+                }
+                m_sParamProfileLevel.eProfile = pParam->eProfile;
+                m_sParamProfileLevel.eLevel = pParam->eLevel;
+
+                if (!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.mpeg4",\
+                            OMX_MAX_STRINGNAME_SIZE)) {
+                    m_sParamMPEG4.eProfile = (OMX_VIDEO_MPEG4PROFILETYPE)m_sParamProfileLevel.eProfile;
+                    m_sParamMPEG4.eLevel = (OMX_VIDEO_MPEG4LEVELTYPE)m_sParamProfileLevel.eLevel;
+                    DEBUG_PRINT_LOW("\n MPEG4 profile = %d, level = %d", m_sParamMPEG4.eProfile,
+                            m_sParamMPEG4.eLevel);
+                } else if (!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.h263",\
+                            OMX_MAX_STRINGNAME_SIZE)) {
+                    m_sParamH263.eProfile = (OMX_VIDEO_H263PROFILETYPE)m_sParamProfileLevel.eProfile;
+                    m_sParamH263.eLevel = (OMX_VIDEO_H263LEVELTYPE)m_sParamProfileLevel.eLevel;
+                    DEBUG_PRINT_LOW("\n H263 profile = %d, level = %d", m_sParamH263.eProfile,
+                            m_sParamH263.eLevel);
+                } else if (!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.avc",\
+                            OMX_MAX_STRINGNAME_SIZE)) {
+                    m_sParamAVC.eProfile = (OMX_VIDEO_AVCPROFILETYPE)m_sParamProfileLevel.eProfile;
+                    m_sParamAVC.eLevel = (OMX_VIDEO_AVCLEVELTYPE)m_sParamProfileLevel.eLevel;
+                    DEBUG_PRINT_LOW("\n AVC profile = %d, level = %d", m_sParamAVC.eProfile,
+                            m_sParamAVC.eLevel);
+                }
+                break;
+            }
+        case OMX_IndexParamStandardComponentRole:
+            {
+                OMX_PARAM_COMPONENTROLETYPE *comp_role;
+                comp_role = (OMX_PARAM_COMPONENTROLETYPE *) paramData;
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamStandardComponentRole %s\n",
+                        comp_role->cRole);
+
+                if ((m_state == OMX_StateLoaded)&&
+                        !BITMASK_PRESENT(&m_flags,OMX_COMPONENT_IDLE_PENDING)) {
+                    DEBUG_PRINT_LOW("Set Parameter called in valid state");
+                } else {
+                    DEBUG_PRINT_ERROR("Set Parameter called in Invalid State\n");
+                    return OMX_ErrorIncorrectStateOperation;
+                }
+
+                if (!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.avc",OMX_MAX_STRINGNAME_SIZE)) {
+                    if (!strncmp((char*)comp_role->cRole,"video_encoder.avc",OMX_MAX_STRINGNAME_SIZE)) {
+                        strlcpy((char*)m_cRole,"video_encoder.avc",OMX_MAX_STRINGNAME_SIZE);
+                    } else {
+                        DEBUG_PRINT_ERROR("ERROR: Setparameter: unknown Index %s\n", comp_role->cRole);
+                        eRet =OMX_ErrorUnsupportedSetting;
+                    }
+                } else if (!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.mpeg4",OMX_MAX_STRINGNAME_SIZE)) {
+                    if (!strncmp((const char*)comp_role->cRole,"video_encoder.mpeg4",OMX_MAX_STRINGNAME_SIZE)) {
+                        strlcpy((char*)m_cRole,"video_encoder.mpeg4",OMX_MAX_STRINGNAME_SIZE);
+                    } else {
+                        DEBUG_PRINT_ERROR("ERROR: Setparameter: unknown Index %s\n", comp_role->cRole);
+                        eRet = OMX_ErrorUnsupportedSetting;
+                    }
+                } else if (!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.h263",OMX_MAX_STRINGNAME_SIZE)) {
+                    if (!strncmp((const char*)comp_role->cRole,"video_encoder.h263",OMX_MAX_STRINGNAME_SIZE)) {
+                        strlcpy((char*)m_cRole,"video_encoder.h263",OMX_MAX_STRINGNAME_SIZE);
+                    } else {
+                        DEBUG_PRINT_ERROR("ERROR: Setparameter: unknown Index %s\n", comp_role->cRole);
+                        eRet =OMX_ErrorUnsupportedSetting;
+                    }
+                }
+#ifdef _MSM8974_
+                else if (!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.vp8",OMX_MAX_STRINGNAME_SIZE)) {
+                    if (!strncmp((const char*)comp_role->cRole,"video_encoder.vp8",OMX_MAX_STRINGNAME_SIZE)) {
+                        strlcpy((char*)m_cRole,"video_encoder.vp8",OMX_MAX_STRINGNAME_SIZE);
+                    } else {
+                        DEBUG_PRINT_ERROR("ERROR: Setparameter: unknown Index %s\n", comp_role->cRole);
+                        eRet =OMX_ErrorUnsupportedSetting;
+                    }
+                }
+#endif
+                else {
+                    DEBUG_PRINT_ERROR("ERROR: Setparameter: unknown param %s\n", m_nkind);
+                    eRet = OMX_ErrorInvalidComponentName;
+                }
+                break;
+            }
+
+        case OMX_IndexParamPriorityMgmt:
+            {
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPriorityMgmt");
+                if (m_state != OMX_StateLoaded) {
+                    DEBUG_PRINT_ERROR("ERROR: Set Parameter called in Invalid State\n");
+                    return OMX_ErrorIncorrectStateOperation;
+                }
+                OMX_PRIORITYMGMTTYPE *priorityMgmtype = (OMX_PRIORITYMGMTTYPE*) paramData;
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamPriorityMgmt %d\n",
+                        priorityMgmtype->nGroupID);
+
+                DEBUG_PRINT_LOW("set_parameter: priorityMgmtype %d\n",
+                        priorityMgmtype->nGroupPriority);
+
+                m_sPriorityMgmt.nGroupID = priorityMgmtype->nGroupID;
+                m_sPriorityMgmt.nGroupPriority = priorityMgmtype->nGroupPriority;
+
+                break;
+            }
+
+        case OMX_IndexParamCompBufferSupplier:
+            {
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamCompBufferSupplier");
+                OMX_PARAM_BUFFERSUPPLIERTYPE *bufferSupplierType = (OMX_PARAM_BUFFERSUPPLIERTYPE*) paramData;
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamCompBufferSupplier %d\n",
+                        bufferSupplierType->eBufferSupplier);
+                if (bufferSupplierType->nPortIndex == 0 || bufferSupplierType->nPortIndex ==1)
+                    m_sInBufSupplier.eBufferSupplier = bufferSupplierType->eBufferSupplier;
+
+                else
+
+                    eRet = OMX_ErrorBadPortIndex;
+
+                break;
+
+            }
+        case OMX_IndexParamVideoQuantization:
+            {
+                DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoQuantization\n");
+                OMX_VIDEO_PARAM_QUANTIZATIONTYPE *session_qp = (OMX_VIDEO_PARAM_QUANTIZATIONTYPE*) paramData;
+                if (session_qp->nPortIndex == PORT_INDEX_OUT) {
+                    if (handle->venc_set_param(paramData, OMX_IndexParamVideoQuantization) != true) {
+                        return OMX_ErrorUnsupportedSetting;
+                    }
+                    m_sSessionQuantization.nQpI = session_qp->nQpI;
+                    m_sSessionQuantization.nQpP = session_qp->nQpP;
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Unsupported port Index for Session QP setting\n");
+                    eRet = OMX_ErrorBadPortIndex;
+                }
+                break;
+            }
+
+        case OMX_QcomIndexParamVideoQPRange:
+            {
+                DEBUG_PRINT_LOW("set_parameter: OMX_QcomIndexParamVideoQPRange\n");
+                OMX_QCOM_VIDEO_PARAM_QPRANGETYPE *qp_range = (OMX_QCOM_VIDEO_PARAM_QPRANGETYPE*) paramData;
+                if (qp_range->nPortIndex == PORT_INDEX_OUT) {
+                    if (handle->venc_set_param(paramData,
+                                (OMX_INDEXTYPE)OMX_QcomIndexParamVideoQPRange) != true) {
+                        return OMX_ErrorUnsupportedSetting;
+                    }
+                    m_sSessionQPRange.minQP= qp_range->minQP;
+                    m_sSessionQPRange.maxQP= qp_range->maxQP;
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Unsupported port Index for QP range setting\n");
+                    eRet = OMX_ErrorBadPortIndex;
+                }
+                break;
+            }
+
+        case OMX_QcomIndexPortDefn:
+            {
+                OMX_QCOM_PARAM_PORTDEFINITIONTYPE* pParam =
+                    (OMX_QCOM_PARAM_PORTDEFINITIONTYPE*)paramData;
+                DEBUG_PRINT_LOW("set_parameter: OMX_QcomIndexPortDefn");
+                if (pParam->nPortIndex == (OMX_U32)PORT_INDEX_IN) {
+                    if (pParam->nMemRegion > OMX_QCOM_MemRegionInvalid &&
+                            pParam->nMemRegion < OMX_QCOM_MemRegionMax) {
+                        m_use_input_pmem = OMX_TRUE;
+                    } else {
+                        m_use_input_pmem = OMX_FALSE;
+                    }
+                } else if (pParam->nPortIndex == (OMX_U32)PORT_INDEX_OUT) {
+                    if (pParam->nMemRegion > OMX_QCOM_MemRegionInvalid &&
+                            pParam->nMemRegion < OMX_QCOM_MemRegionMax) {
+                        m_use_output_pmem = OMX_TRUE;
+                    } else {
+                        m_use_output_pmem = OMX_FALSE;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("ERROR: SetParameter called on unsupported Port Index for QcomPortDefn");
+                    return OMX_ErrorBadPortIndex;
+                }
+                break;
+            }
+
+        case OMX_IndexParamVideoErrorCorrection:
+            {
+                DEBUG_PRINT_LOW("OMX_IndexParamVideoErrorCorrection\n");
+                OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE* pParam =
+                    (OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE*)paramData;
+                if (!handle->venc_set_param(paramData, OMX_IndexParamVideoErrorCorrection)) {
+                    DEBUG_PRINT_ERROR("\nERROR: Request for setting Error Resilience failed");
+                    return OMX_ErrorUnsupportedSetting;
+                }
+                memcpy(&m_sErrorCorrection,pParam, sizeof(m_sErrorCorrection));
+                break;
+            }
+        case OMX_IndexParamVideoIntraRefresh:
+            {
+                DEBUG_PRINT_LOW("set_param:OMX_IndexParamVideoIntraRefresh\n");
+                OMX_VIDEO_PARAM_INTRAREFRESHTYPE* pParam =
+                    (OMX_VIDEO_PARAM_INTRAREFRESHTYPE*)paramData;
+                if (!handle->venc_set_param(paramData,OMX_IndexParamVideoIntraRefresh)) {
+                    DEBUG_PRINT_ERROR("\nERROR: Request for setting intra refresh failed");
+                    return OMX_ErrorUnsupportedSetting;
+                }
+                memcpy(&m_sIntraRefresh, pParam, sizeof(m_sIntraRefresh));
+                break;
+            }
+#ifdef _ANDROID_ICS_
+        case OMX_QcomIndexParamVideoEncodeMetaBufferMode:
+            {
+                StoreMetaDataInBuffersParams *pParam =
+                    (StoreMetaDataInBuffersParams*)paramData;
+                DEBUG_PRINT_HIGH("set_parameter:OMX_QcomIndexParamVideoEncodeMetaBufferMode: "
+                        "port_index = %lu, meta_mode = %d", pParam->nPortIndex, pParam->bStoreMetaData);
+                if (pParam->nPortIndex == PORT_INDEX_IN) {
+                    if (pParam->bStoreMetaData != meta_mode_enable) {
+                        if (!handle->venc_set_meta_mode(pParam->bStoreMetaData)) {
+                            DEBUG_PRINT_ERROR("\nERROR: set Metabuffer mode %d fail",
+                                    pParam->bStoreMetaData);
+                            return OMX_ErrorUnsupportedSetting;
+                        }
+                        meta_mode_enable = pParam->bStoreMetaData;
+                        if (meta_mode_enable) {
+                            m_sInPortDef.nBufferCountActual = m_sInPortDef.nBufferCountMin;
+                            if (handle->venc_set_param(&m_sInPortDef,OMX_IndexParamPortDefinition) != true) {
+                                DEBUG_PRINT_ERROR("\nERROR: venc_set_param input failed");
+                                return OMX_ErrorUnsupportedSetting;
+                            }
+                        } else {
+                            /*TODO: reset encoder driver Meta mode*/
+                            dev_get_buf_req   (&m_sOutPortDef.nBufferCountMin,
+                                    &m_sOutPortDef.nBufferCountActual,
+                                    &m_sOutPortDef.nBufferSize,
+                                    m_sOutPortDef.nPortIndex);
+                        }
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("set_parameter: metamode is "
+                            "valid for input port only");
+                    eRet = OMX_ErrorUnsupportedIndex;
+                }
+            }
+            break;
+#endif
+#if !defined(MAX_RES_720P) || defined(_MSM8974_)
+        case OMX_QcomIndexParamIndexExtraDataType:
+            {
+                DEBUG_PRINT_HIGH("set_parameter: OMX_QcomIndexParamIndexExtraDataType");
+                QOMX_INDEXEXTRADATATYPE *pParam = (QOMX_INDEXEXTRADATATYPE *)paramData;
+                if (pParam->nIndex == (OMX_INDEXTYPE)OMX_ExtraDataVideoEncoderSliceInfo) {
+                    if (pParam->nPortIndex == PORT_INDEX_OUT) {
+                        if (pParam->bEnabled == OMX_TRUE)
+                            m_sExtraData |= VEN_EXTRADATA_SLICEINFO;
+                        else
+                            m_sExtraData &= ~VEN_EXTRADATA_SLICEINFO;
+                        DEBUG_PRINT_HIGH("SliceInfo extradata %s",
+                                ((pParam->bEnabled == OMX_TRUE) ? "enabled" : "disabled"));
+                        if (handle->venc_set_param(&m_sExtraData,
+                                    (OMX_INDEXTYPE)OMX_ExtraDataVideoEncoderSliceInfo) != true) {
+                            DEBUG_PRINT_ERROR("ERROR: Setting "
+                                    "OMX_ExtraDataVideoEncoderSliceInfo failed");
+                            return OMX_ErrorUnsupportedSetting;
+                        } else {
+                            m_sOutPortDef.nPortIndex = PORT_INDEX_OUT;
+                            dev_get_buf_req(&m_sOutPortDef.nBufferCountMin,
+                                    &m_sOutPortDef.nBufferCountActual,
+                                    &m_sOutPortDef.nBufferSize,
+                                    m_sOutPortDef.nPortIndex);
+                            DEBUG_PRINT_HIGH("updated out_buf_req: buffer cnt=%lu, "
+                                    "count min=%lu, buffer size=%lu",
+                                    m_sOutPortDef.nBufferCountActual,
+                                    m_sOutPortDef.nBufferCountMin,
+                                    m_sOutPortDef.nBufferSize);
+                        }
+                    }
+                }
+#ifndef _MSM8974_
+                else if (pParam->nIndex == (OMX_INDEXTYPE)OMX_ExtraDataVideoLTRInfo) {
+                    if (pParam->nPortIndex == PORT_INDEX_OUT) {
+                        if (pParam->bEnabled == OMX_TRUE)
+                            m_sExtraData |= VEN_EXTRADATA_LTRINFO;
+                        else
+                            m_sExtraData &= ~VEN_EXTRADATA_LTRINFO;
+                        DEBUG_PRINT_HIGH("LTRInfo extradata %s",
+                                ((pParam->bEnabled == OMX_TRUE) ? "enabled" : "disabled"));
+                        if (handle->venc_set_param(&m_sExtraData,
+                                    (OMX_INDEXTYPE)OMX_ExtraDataVideoLTRInfo) != true) {
+                            DEBUG_PRINT_ERROR("ERROR: Setting "
+                                    "OMX_ExtraDataVideoLTRInfo failed");
+                            return OMX_ErrorUnsupportedSetting;
+                        } else {
+                            m_sOutPortDef.nPortIndex = PORT_INDEX_OUT;
+                            dev_get_buf_req(&m_sOutPortDef.nBufferCountMin,
+                                    &m_sOutPortDef.nBufferCountActual,
+                                    &m_sOutPortDef.nBufferSize,
+                                    m_sOutPortDef.nPortIndex);
+                            DEBUG_PRINT_HIGH("updated out_buf_req: buffer cnt=%d, "
+                                    "count min=%d, buffer size=%d",
+                                    m_sOutPortDef.nBufferCountActual,
+                                    m_sOutPortDef.nBufferCountMin,
+                                    m_sOutPortDef.nBufferSize);
+                        }
+                    } else {
+                        DEBUG_PRINT_ERROR("set_parameter: LTR information is "
+                                "valid for output port only");
+                        eRet = OMX_ErrorUnsupportedIndex;
+                    }
+                }
+#endif
+                else {
+                    DEBUG_PRINT_ERROR("set_parameter: unsupported extrdata index (%x)",
+                            pParam->nIndex);
+                    eRet = OMX_ErrorUnsupportedIndex;
+                }
+                break;
+            }
+        case QOMX_IndexParamVideoLTRMode:
+            {
+                QOMX_VIDEO_PARAM_LTRMODE_TYPE* pParam =
+                    (QOMX_VIDEO_PARAM_LTRMODE_TYPE*)paramData;
+                if (!handle->venc_set_param(paramData, (OMX_INDEXTYPE)QOMX_IndexParamVideoLTRMode)) {
+                    DEBUG_PRINT_ERROR("\nERROR: Setting LTR mode failed");
+                    return OMX_ErrorUnsupportedSetting;
+                }
+                memcpy(&m_sParamLTRMode, pParam, sizeof(m_sParamLTRMode));
+                break;
+            }
+        case QOMX_IndexParamVideoLTRCount:
+            {
+                QOMX_VIDEO_PARAM_LTRCOUNT_TYPE* pParam =
+                    (QOMX_VIDEO_PARAM_LTRCOUNT_TYPE*)paramData;
+                if (!handle->venc_set_param(paramData, (OMX_INDEXTYPE)QOMX_IndexParamVideoLTRCount)) {
+                    DEBUG_PRINT_ERROR("\nERROR: Setting LTR count failed");
+                    return OMX_ErrorUnsupportedSetting;
+                }
+                memcpy(&m_sParamLTRCount, pParam, sizeof(m_sParamLTRCount));
+                break;
+            }
+#endif
+        case OMX_QcomIndexParamVideoMaxAllowedBitrateCheck:
+            {
+                QOMX_EXTNINDEX_PARAMTYPE* pParam =
+                    (QOMX_EXTNINDEX_PARAMTYPE*)paramData;
+                if (pParam->nPortIndex == PORT_INDEX_OUT) {
+                    handle->m_max_allowed_bitrate_check =
+                        ((pParam->bEnable == OMX_TRUE) ? true : false);
+                    DEBUG_PRINT_HIGH("set_parameter: max allowed bitrate check %s",
+                            ((pParam->bEnable == OMX_TRUE) ? "enabled" : "disabled"));
+                } else {
+                    DEBUG_PRINT_ERROR("ERROR: OMX_QcomIndexParamVideoMaxAllowedBitrateCheck "
+                            " called on wrong port(%lu)", pParam->nPortIndex);
+                    return OMX_ErrorBadPortIndex;
+                }
+                break;
+            }
+#ifdef MAX_RES_1080P
+        case OMX_QcomIndexEnableSliceDeliveryMode:
+            {
+                QOMX_EXTNINDEX_PARAMTYPE* pParam =
+                    (QOMX_EXTNINDEX_PARAMTYPE*)paramData;
+                if (pParam->nPortIndex == PORT_INDEX_OUT) {
+                    if (!handle->venc_set_param(paramData,
+                                (OMX_INDEXTYPE)OMX_QcomIndexEnableSliceDeliveryMode)) {
+                        DEBUG_PRINT_ERROR("ERROR: Request for setting slice delivery mode failed");
+                        return OMX_ErrorUnsupportedSetting;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("ERROR: OMX_QcomIndexEnableSliceDeliveryMode "
+                            "called on wrong port(%lu)", pParam->nPortIndex);
+                    return OMX_ErrorBadPortIndex;
+                }
+                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(%lu)", pParam->nPortIndex);
+                    return OMX_ErrorBadPortIndex;
+                }
+                break;
+            }
+        case OMX_IndexParamVideoSliceFMO:
+        default:
+            {
+                DEBUG_PRINT_ERROR("ERROR: Setparameter: unknown param %d\n", paramIndex);
+                eRet = OMX_ErrorUnsupportedIndex;
+                break;
+            }
     }
-  case OMX_IndexParamVideoSliceFMO:
-  default:
-    {
-      DEBUG_PRINT_ERROR("ERROR: Setparameter: unknown param %d\n", paramIndex);
-      eRet = OMX_ErrorUnsupportedIndex;
-      break;
-    }
-  }
-  return eRet;
+    return eRet;
 }
 
 bool omx_venc::update_profile_level()
 {
-  OMX_U32 eProfile, eLevel;
+    OMX_U32 eProfile, eLevel;
 
-  if(!handle->venc_get_profile_level(&eProfile,&eLevel))
-  {
-    DEBUG_PRINT_ERROR("\nFailed to update the profile_level\n");
-    return false;
-  }
+    if (!handle->venc_get_profile_level(&eProfile,&eLevel)) {
+        DEBUG_PRINT_ERROR("\nFailed to update the profile_level\n");
+        return false;
+    }
 
-  m_sParamProfileLevel.eProfile = (OMX_VIDEO_MPEG4PROFILETYPE)eProfile;
-  m_sParamProfileLevel.eLevel = (OMX_VIDEO_MPEG4LEVELTYPE)eLevel;
+    m_sParamProfileLevel.eProfile = (OMX_VIDEO_MPEG4PROFILETYPE)eProfile;
+    m_sParamProfileLevel.eLevel = (OMX_VIDEO_MPEG4LEVELTYPE)eLevel;
 
-  if(!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.mpeg4",\
-              OMX_MAX_STRINGNAME_SIZE))
-  {
-    m_sParamMPEG4.eProfile = (OMX_VIDEO_MPEG4PROFILETYPE)eProfile;
-    m_sParamMPEG4.eLevel = (OMX_VIDEO_MPEG4LEVELTYPE)eLevel;
-    DEBUG_PRINT_LOW("\n MPEG4 profile = %d, level = %d", m_sParamMPEG4.eProfile,
-                    m_sParamMPEG4.eLevel);
-  }
-  else if(!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.h263",\
-                   OMX_MAX_STRINGNAME_SIZE))
-  {
-    m_sParamH263.eProfile = (OMX_VIDEO_H263PROFILETYPE)eProfile;
-    m_sParamH263.eLevel = (OMX_VIDEO_H263LEVELTYPE)eLevel;
-    DEBUG_PRINT_LOW("\n H263 profile = %d, level = %d", m_sParamH263.eProfile,
-                    m_sParamH263.eLevel);
-  }
-  else if(!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.avc",\
-                   OMX_MAX_STRINGNAME_SIZE))
-  {
-    m_sParamAVC.eProfile = (OMX_VIDEO_AVCPROFILETYPE)eProfile;
-    m_sParamAVC.eLevel = (OMX_VIDEO_AVCLEVELTYPE)eLevel;
-    DEBUG_PRINT_LOW("\n AVC profile = %d, level = %d", m_sParamAVC.eProfile,
-                    m_sParamAVC.eLevel);
-  }
-  return true;
+    if (!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.mpeg4",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        m_sParamMPEG4.eProfile = (OMX_VIDEO_MPEG4PROFILETYPE)eProfile;
+        m_sParamMPEG4.eLevel = (OMX_VIDEO_MPEG4LEVELTYPE)eLevel;
+        DEBUG_PRINT_LOW("\n MPEG4 profile = %d, level = %d", m_sParamMPEG4.eProfile,
+                m_sParamMPEG4.eLevel);
+    } else if (!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.h263",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        m_sParamH263.eProfile = (OMX_VIDEO_H263PROFILETYPE)eProfile;
+        m_sParamH263.eLevel = (OMX_VIDEO_H263LEVELTYPE)eLevel;
+        DEBUG_PRINT_LOW("\n H263 profile = %d, level = %d", m_sParamH263.eProfile,
+                m_sParamH263.eLevel);
+    } else if (!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.avc",\
+                OMX_MAX_STRINGNAME_SIZE)) {
+        m_sParamAVC.eProfile = (OMX_VIDEO_AVCPROFILETYPE)eProfile;
+        m_sParamAVC.eLevel = (OMX_VIDEO_AVCLEVELTYPE)eLevel;
+        DEBUG_PRINT_LOW("\n AVC profile = %d, level = %d", m_sParamAVC.eProfile,
+                m_sParamAVC.eLevel);
+    }
+    return true;
 }
 /* ======================================================================
-FUNCTION
-  omx_video::SetConfig
+   FUNCTION
+   omx_video::SetConfig
 
-DESCRIPTION
-  OMX Set Config method implementation
+   DESCRIPTION
+   OMX Set Config method implementation
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if successful.
-========================================================================== */
+   RETURN VALUE
+   OMX Error None if successful.
+   ========================================================================== */
 OMX_ERRORTYPE  omx_venc::set_config(OMX_IN OMX_HANDLETYPE      hComp,
-                                     OMX_IN OMX_INDEXTYPE configIndex,
-                                     OMX_IN OMX_PTR        configData)
+        OMX_IN OMX_INDEXTYPE configIndex,
+        OMX_IN OMX_PTR        configData)
 {
-  if(configData == NULL)
-  {
-    DEBUG_PRINT_ERROR("ERROR: param is null");
-    return OMX_ErrorBadParameter;
-  }
-
-  if(m_state == OMX_StateInvalid)
-  {
-    DEBUG_PRINT_ERROR("ERROR: config called in Invalid state");
-    return OMX_ErrorIncorrectStateOperation;
-  }
-
-  // params will be validated prior to venc_init
-  switch(configIndex)
-  {
-  case OMX_IndexConfigVideoBitrate:
-    {
-      OMX_VIDEO_CONFIG_BITRATETYPE* pParam =
-        reinterpret_cast<OMX_VIDEO_CONFIG_BITRATETYPE*>(configData);
-      DEBUG_PRINT_HIGH("set_config(): OMX_IndexConfigVideoBitrate (%lu)", pParam->nEncodeBitrate);
-
-      if(pParam->nPortIndex == PORT_INDEX_OUT)
-      {
-        if(handle->venc_set_config(configData, OMX_IndexConfigVideoBitrate) != true)
-        {
-          DEBUG_PRINT_ERROR("ERROR: Setting OMX_IndexConfigVideoBitrate failed");
-          return OMX_ErrorUnsupportedSetting;
-        }
-
-        m_sConfigBitrate.nEncodeBitrate = pParam->nEncodeBitrate;
-        m_sParamBitrate.nTargetBitrate = pParam->nEncodeBitrate;
-        m_sOutPortDef.format.video.nBitrate = pParam->nEncodeBitrate;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: Unsupported port index: %lu", pParam->nPortIndex);
-        return OMX_ErrorBadPortIndex;
-      }
-      break;
+    if (configData == NULL) {
+        DEBUG_PRINT_ERROR("ERROR: param is null");
+        return OMX_ErrorBadParameter;
     }
-  case OMX_IndexConfigVideoFramerate:
-    {
-      OMX_CONFIG_FRAMERATETYPE* pParam =
-        reinterpret_cast<OMX_CONFIG_FRAMERATETYPE*>(configData);
-      DEBUG_PRINT_HIGH("set_config(): OMX_IndexConfigVideoFramerate (0x%lx)", pParam->xEncodeFramerate);
 
-      if(pParam->nPortIndex == PORT_INDEX_OUT)
-      {
-        if(handle->venc_set_config(configData, OMX_IndexConfigVideoFramerate) != true)
-        {
-          DEBUG_PRINT_ERROR("ERROR: Setting OMX_IndexConfigVideoFramerate failed");
-          return OMX_ErrorUnsupportedSetting;
-        }
-
-        m_sConfigFramerate.xEncodeFramerate = pParam->xEncodeFramerate;
-        m_sOutPortDef.format.video.xFramerate = pParam->xEncodeFramerate;
-        m_sOutPortFormat.xFramerate = pParam->xEncodeFramerate;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: Unsupported port index: %lu", pParam->nPortIndex);
-        return OMX_ErrorBadPortIndex;
-      }
-
-      break;
+    if (m_state == OMX_StateInvalid) {
+        DEBUG_PRINT_ERROR("ERROR: config called in Invalid state");
+        return OMX_ErrorIncorrectStateOperation;
     }
-  case QOMX_IndexConfigVideoIntraperiod:
-    {
-      QOMX_VIDEO_INTRAPERIODTYPE* pParam =
-        reinterpret_cast<QOMX_VIDEO_INTRAPERIODTYPE*>(configData);
 
-      DEBUG_PRINT_HIGH("set_config(): QOMX_IndexConfigVideoIntraperiod");
-      if(pParam->nPortIndex == PORT_INDEX_OUT)
-      {
+    // params will be validated prior to venc_init
+    switch (configIndex) {
+        case OMX_IndexConfigVideoBitrate:
+            {
+                OMX_VIDEO_CONFIG_BITRATETYPE* pParam =
+                    reinterpret_cast<OMX_VIDEO_CONFIG_BITRATETYPE*>(configData);
+                DEBUG_PRINT_HIGH("set_config(): OMX_IndexConfigVideoBitrate (%lu)", pParam->nEncodeBitrate);
+
+                if (pParam->nPortIndex == PORT_INDEX_OUT) {
+                    if (handle->venc_set_config(configData, OMX_IndexConfigVideoBitrate) != true) {
+                        DEBUG_PRINT_ERROR("ERROR: Setting OMX_IndexConfigVideoBitrate failed");
+                        return OMX_ErrorUnsupportedSetting;
+                    }
+
+                    m_sConfigBitrate.nEncodeBitrate = pParam->nEncodeBitrate;
+                    m_sParamBitrate.nTargetBitrate = pParam->nEncodeBitrate;
+                    m_sOutPortDef.format.video.nBitrate = pParam->nEncodeBitrate;
+                } else {
+                    DEBUG_PRINT_ERROR("ERROR: Unsupported port index: %lu", pParam->nPortIndex);
+                    return OMX_ErrorBadPortIndex;
+                }
+                break;
+            }
+        case OMX_IndexConfigVideoFramerate:
+            {
+                OMX_CONFIG_FRAMERATETYPE* pParam =
+                    reinterpret_cast<OMX_CONFIG_FRAMERATETYPE*>(configData);
+                DEBUG_PRINT_HIGH("set_config(): OMX_IndexConfigVideoFramerate (0x%lx)", pParam->xEncodeFramerate);
+
+                if (pParam->nPortIndex == PORT_INDEX_OUT) {
+                    if (handle->venc_set_config(configData, OMX_IndexConfigVideoFramerate) != true) {
+                        DEBUG_PRINT_ERROR("ERROR: Setting OMX_IndexConfigVideoFramerate failed");
+                        return OMX_ErrorUnsupportedSetting;
+                    }
+
+                    m_sConfigFramerate.xEncodeFramerate = pParam->xEncodeFramerate;
+                    m_sOutPortDef.format.video.xFramerate = pParam->xEncodeFramerate;
+                    m_sOutPortFormat.xFramerate = pParam->xEncodeFramerate;
+                } else {
+                    DEBUG_PRINT_ERROR("ERROR: Unsupported port index: %lu", pParam->nPortIndex);
+                    return OMX_ErrorBadPortIndex;
+                }
+
+                break;
+            }
+        case QOMX_IndexConfigVideoIntraperiod:
+            {
+                QOMX_VIDEO_INTRAPERIODTYPE* pParam =
+                    reinterpret_cast<QOMX_VIDEO_INTRAPERIODTYPE*>(configData);
+
+                DEBUG_PRINT_HIGH("set_config(): QOMX_IndexConfigVideoIntraperiod");
+                if (pParam->nPortIndex == PORT_INDEX_OUT) {
 #ifdef MAX_RES_720P
-        if(pParam->nBFrames > 0)
-        {
-          DEBUG_PRINT_ERROR("B frames not supported\n");
-          return OMX_ErrorUnsupportedSetting;
-        }
+                    if (pParam->nBFrames > 0) {
+                        DEBUG_PRINT_ERROR("B frames not supported\n");
+                        return OMX_ErrorUnsupportedSetting;
+                    }
 #endif
-        DEBUG_PRINT_HIGH("Old: P/B frames = %lu/%lu, New: P/B frames = %lu/%lu",
-            m_sIntraperiod.nPFrames, m_sIntraperiod.nBFrames,
-            pParam->nPFrames, pParam->nBFrames);
-        if (m_sIntraperiod.nBFrames != pParam->nBFrames)
-        {
-          DEBUG_PRINT_HIGH("Dynamically changing B-frames not supported");
-          return OMX_ErrorUnsupportedSetting;
-        }
-        if(handle->venc_set_config(configData, (OMX_INDEXTYPE) QOMX_IndexConfigVideoIntraperiod) != true)
-        {
-          DEBUG_PRINT_ERROR("ERROR: Setting QOMX_IndexConfigVideoIntraperiod failed");
-          return OMX_ErrorUnsupportedSetting;
-        }
-        m_sIntraperiod.nPFrames = pParam->nPFrames;
-        m_sIntraperiod.nBFrames = pParam->nBFrames;
-        m_sIntraperiod.nIDRPeriod = pParam->nIDRPeriod;
+                    DEBUG_PRINT_HIGH("Old: P/B frames = %lu/%lu, New: P/B frames = %lu/%lu",
+                            m_sIntraperiod.nPFrames, m_sIntraperiod.nBFrames,
+                            pParam->nPFrames, pParam->nBFrames);
+                    if (m_sIntraperiod.nBFrames != pParam->nBFrames) {
+                        DEBUG_PRINT_HIGH("Dynamically changing B-frames not supported");
+                        return OMX_ErrorUnsupportedSetting;
+                    }
+                    if (handle->venc_set_config(configData, (OMX_INDEXTYPE) QOMX_IndexConfigVideoIntraperiod) != true) {
+                        DEBUG_PRINT_ERROR("ERROR: Setting QOMX_IndexConfigVideoIntraperiod failed");
+                        return OMX_ErrorUnsupportedSetting;
+                    }
+                    m_sIntraperiod.nPFrames = pParam->nPFrames;
+                    m_sIntraperiod.nBFrames = pParam->nBFrames;
+                    m_sIntraperiod.nIDRPeriod = pParam->nIDRPeriod;
 
-        if(m_sOutPortFormat.eCompressionFormat == OMX_VIDEO_CodingMPEG4)
-        {
-          m_sParamMPEG4.nPFrames = pParam->nPFrames;
-          if(m_sParamMPEG4.eProfile != OMX_VIDEO_MPEG4ProfileSimple)
-            m_sParamMPEG4.nBFrames = pParam->nBFrames;
-          else
-            m_sParamMPEG4.nBFrames = 0;
-        }
-        else if(m_sOutPortFormat.eCompressionFormat == OMX_VIDEO_CodingH263)
-        {
-          m_sParamH263.nPFrames = pParam->nPFrames;
-        }
-        else
-        {
-          m_sParamAVC.nPFrames = pParam->nPFrames;
-          if(m_sParamAVC.eProfile != OMX_VIDEO_AVCProfileBaseline)
-            m_sParamAVC.nBFrames = pParam->nBFrames;
-          else
-            m_sParamAVC.nBFrames = 0;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: (QOMX_IndexConfigVideoIntraperiod) Unsupported port index: %lu", pParam->nPortIndex);
-        return OMX_ErrorBadPortIndex;
-      }
+                    if (m_sOutPortFormat.eCompressionFormat == OMX_VIDEO_CodingMPEG4) {
+                        m_sParamMPEG4.nPFrames = pParam->nPFrames;
+                        if (m_sParamMPEG4.eProfile != OMX_VIDEO_MPEG4ProfileSimple)
+                            m_sParamMPEG4.nBFrames = pParam->nBFrames;
+                        else
+                            m_sParamMPEG4.nBFrames = 0;
+                    } else if (m_sOutPortFormat.eCompressionFormat == OMX_VIDEO_CodingH263) {
+                        m_sParamH263.nPFrames = pParam->nPFrames;
+                    } else {
+                        m_sParamAVC.nPFrames = pParam->nPFrames;
+                        if (m_sParamAVC.eProfile != OMX_VIDEO_AVCProfileBaseline)
+                            m_sParamAVC.nBFrames = pParam->nBFrames;
+                        else
+                            m_sParamAVC.nBFrames = 0;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("ERROR: (QOMX_IndexConfigVideoIntraperiod) Unsupported port index: %lu", pParam->nPortIndex);
+                    return OMX_ErrorBadPortIndex;
+                }
 
-      break;
+                break;
+            }
+
+        case OMX_IndexConfigVideoIntraVOPRefresh:
+            {
+                OMX_CONFIG_INTRAREFRESHVOPTYPE* pParam =
+                    reinterpret_cast<OMX_CONFIG_INTRAREFRESHVOPTYPE*>(configData);
+
+                DEBUG_PRINT_HIGH("set_config(): OMX_IndexConfigVideoIntraVOPRefresh");
+                if (pParam->nPortIndex == PORT_INDEX_OUT) {
+                    if (handle->venc_set_config(configData,
+                                OMX_IndexConfigVideoIntraVOPRefresh) != true) {
+                        DEBUG_PRINT_ERROR("ERROR: Setting OMX_IndexConfigVideoIntraVOPRefresh failed");
+                        return OMX_ErrorUnsupportedSetting;
+                    }
+
+                    m_sConfigIntraRefreshVOP.IntraRefreshVOP = pParam->IntraRefreshVOP;
+                } else {
+                    DEBUG_PRINT_ERROR("ERROR: Unsupported port index: %lu", pParam->nPortIndex);
+                    return OMX_ErrorBadPortIndex;
+                }
+
+                break;
+            }
+        case OMX_IndexConfigCommonRotate:
+            {
+                OMX_CONFIG_ROTATIONTYPE *pParam =
+                    reinterpret_cast<OMX_CONFIG_ROTATIONTYPE*>(configData);
+                OMX_S32 nRotation;
+
+                if (pParam->nPortIndex != PORT_INDEX_IN) {
+                    DEBUG_PRINT_ERROR("ERROR: Unsupported port index: %lu", pParam->nPortIndex);
+                    return OMX_ErrorBadPortIndex;
+                }
+                if ( pParam->nRotation == 0   ||
+                        pParam->nRotation == 90  ||
+                        pParam->nRotation == 180 ||
+                        pParam->nRotation == 270 ) {
+                    DEBUG_PRINT_HIGH("\nset_config: Rotation Angle %lu", pParam->nRotation);
+                } else {
+                    DEBUG_PRINT_ERROR("ERROR: un supported Rotation %lu", pParam->nRotation);
+                    return OMX_ErrorUnsupportedSetting;
+                }
+                nRotation = pParam->nRotation - m_sConfigFrameRotation.nRotation;
+                if (nRotation < 0)
+                    nRotation = -nRotation;
+                if (nRotation == 90 || nRotation == 270) {
+                    DEBUG_PRINT_HIGH("\nset_config: updating device Dims");
+                    if (handle->venc_set_config(configData,
+                                OMX_IndexConfigCommonRotate) != true) {
+                        DEBUG_PRINT_ERROR("ERROR: Set OMX_IndexConfigCommonRotate failed");
+                        return OMX_ErrorUnsupportedSetting;
+                    } else {
+                        OMX_U32 nFrameWidth;
+
+                        DEBUG_PRINT_HIGH("\nset_config: updating port Dims");
+
+                        nFrameWidth = m_sInPortDef.format.video.nFrameWidth;
+                        m_sInPortDef.format.video.nFrameWidth =
+                            m_sInPortDef.format.video.nFrameHeight;
+                        m_sInPortDef.format.video.nFrameHeight = nFrameWidth;
+
+                        m_sOutPortDef.format.video.nFrameWidth  =
+                            m_sInPortDef.format.video.nFrameWidth;
+                        m_sOutPortDef.format.video.nFrameHeight =
+                            m_sInPortDef.format.video.nFrameHeight;
+                        m_sConfigFrameRotation.nRotation = pParam->nRotation;
+                    }
+                } else {
+                    m_sConfigFrameRotation.nRotation = pParam->nRotation;
+                }
+                break;
+            }
+        case OMX_QcomIndexConfigVideoFramePackingArrangement:
+            {
+                DEBUG_PRINT_HIGH("set_config(): OMX_QcomIndexConfigVideoFramePackingArrangement");
+                if (m_sOutPortFormat.eCompressionFormat == OMX_VIDEO_CodingAVC) {
+                    OMX_QCOM_FRAME_PACK_ARRANGEMENT *configFmt =
+                        (OMX_QCOM_FRAME_PACK_ARRANGEMENT *) configData;
+                    extra_data_handle.set_frame_pack_data(configFmt);
+                } else {
+                    DEBUG_PRINT_ERROR("ERROR: FramePackingData not supported for non AVC compression");
+                }
+                break;
+            }
+        case QOMX_IndexConfigVideoLTRPeriod:
+            {
+                QOMX_VIDEO_CONFIG_LTRPERIOD_TYPE* pParam = (QOMX_VIDEO_CONFIG_LTRPERIOD_TYPE*)configData;
+                if (!handle->venc_set_config(configData, (OMX_INDEXTYPE)QOMX_IndexConfigVideoLTRPeriod)) {
+                    DEBUG_PRINT_ERROR("\nERROR: Setting LTR period failed");
+                    return OMX_ErrorUnsupportedSetting;
+                }
+                memcpy(&m_sConfigLTRPeriod, pParam, sizeof(m_sConfigLTRPeriod));
+                break;
+            }
+        case QOMX_IndexConfigVideoLTRUse:
+            {
+                QOMX_VIDEO_CONFIG_LTRUSE_TYPE* pParam = (QOMX_VIDEO_CONFIG_LTRUSE_TYPE*)configData;
+                if (!handle->venc_set_config(configData, (OMX_INDEXTYPE)QOMX_IndexConfigVideoLTRUse)) {
+                    DEBUG_PRINT_ERROR("\nERROR: Setting LTR use failed");
+                    return OMX_ErrorUnsupportedSetting;
+                }
+                memcpy(&m_sConfigLTRUse, pParam, sizeof(m_sConfigLTRUse));
+                break;
+            }
+        case QOMX_IndexConfigVideoLTRMark:
+            {
+                QOMX_VIDEO_CONFIG_LTRMARK_TYPE* pParam = (QOMX_VIDEO_CONFIG_LTRMARK_TYPE*)configData;
+                DEBUG_PRINT_ERROR("Setting ltr mark is not supported");
+                return OMX_ErrorUnsupportedSetting;
+                break;
+            }
+        case OMX_IndexConfigVideoAVCIntraPeriod:
+            {
+                OMX_VIDEO_CONFIG_AVCINTRAPERIOD *pParam = (OMX_VIDEO_CONFIG_AVCINTRAPERIOD*) configData;
+                DEBUG_PRINT_LOW("set_config: OMX_IndexConfigVideoAVCIntraPeriod");
+                if (!handle->venc_set_config(pParam, (OMX_INDEXTYPE)OMX_IndexConfigVideoAVCIntraPeriod)) {
+                    DEBUG_PRINT_ERROR("ERROR: Setting OMX_IndexConfigVideoAVCIntraPeriod failed");
+                    return OMX_ErrorUnsupportedSetting;
+                }
+                memcpy(&m_sConfigAVCIDRPeriod, pParam, sizeof(m_sConfigAVCIDRPeriod));
+                break;
+            }
+        default:
+            DEBUG_PRINT_ERROR("ERROR: unsupported index %d", (int) configIndex);
+            break;
     }
 
-  case OMX_IndexConfigVideoIntraVOPRefresh:
-    {
-      OMX_CONFIG_INTRAREFRESHVOPTYPE* pParam =
-        reinterpret_cast<OMX_CONFIG_INTRAREFRESHVOPTYPE*>(configData);
-
-      DEBUG_PRINT_HIGH("set_config(): OMX_IndexConfigVideoIntraVOPRefresh");
-      if(pParam->nPortIndex == PORT_INDEX_OUT)
-      {
-        if(handle->venc_set_config(configData,
-            OMX_IndexConfigVideoIntraVOPRefresh) != true)
-        {
-          DEBUG_PRINT_ERROR("ERROR: Setting OMX_IndexConfigVideoIntraVOPRefresh failed");
-          return OMX_ErrorUnsupportedSetting;
-        }
-
-        m_sConfigIntraRefreshVOP.IntraRefreshVOP = pParam->IntraRefreshVOP;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: Unsupported port index: %lu", pParam->nPortIndex);
-        return OMX_ErrorBadPortIndex;
-      }
-
-      break;
-    }
-  case OMX_IndexConfigCommonRotate:
-    {
-      OMX_CONFIG_ROTATIONTYPE *pParam =
-         reinterpret_cast<OMX_CONFIG_ROTATIONTYPE*>(configData);
-      OMX_S32 nRotation;
-
-      if(pParam->nPortIndex != PORT_INDEX_IN){
-           DEBUG_PRINT_ERROR("ERROR: Unsupported port index: %lu", pParam->nPortIndex);
-           return OMX_ErrorBadPortIndex;
-      }
-      if( pParam->nRotation == 0   ||
-          pParam->nRotation == 90  ||
-          pParam->nRotation == 180 ||
-          pParam->nRotation == 270 ) {
-          DEBUG_PRINT_HIGH("\nset_config: Rotation Angle %lu", pParam->nRotation);
-      } else {
-          DEBUG_PRINT_ERROR("ERROR: un supported Rotation %lu", pParam->nRotation);
-          return OMX_ErrorUnsupportedSetting;
-      }
-      nRotation = pParam->nRotation - m_sConfigFrameRotation.nRotation;
-      if(nRotation < 0)
-        nRotation = -nRotation;
-      if(nRotation == 90 || nRotation == 270) {
-          DEBUG_PRINT_HIGH("\nset_config: updating device Dims");
-          if(handle->venc_set_config(configData,
-             OMX_IndexConfigCommonRotate) != true) {
-             DEBUG_PRINT_ERROR("ERROR: Set OMX_IndexConfigCommonRotate failed");
-             return OMX_ErrorUnsupportedSetting;
-          } else {
-                  OMX_U32 nFrameWidth;
-
-                  DEBUG_PRINT_HIGH("\nset_config: updating port Dims");
-
-                  nFrameWidth = m_sInPortDef.format.video.nFrameWidth;
-	          m_sInPortDef.format.video.nFrameWidth =
-                      m_sInPortDef.format.video.nFrameHeight;
-                  m_sInPortDef.format.video.nFrameHeight = nFrameWidth;
-
-                  m_sOutPortDef.format.video.nFrameWidth  =
-                      m_sInPortDef.format.video.nFrameWidth;
-                  m_sOutPortDef.format.video.nFrameHeight =
-                      m_sInPortDef.format.video.nFrameHeight;
-                  m_sConfigFrameRotation.nRotation = pParam->nRotation;
-           }
-       } else {
-          m_sConfigFrameRotation.nRotation = pParam->nRotation;
-      }
-      break;
-    }
-  case OMX_QcomIndexConfigVideoFramePackingArrangement:
-    {
-      DEBUG_PRINT_HIGH("set_config(): OMX_QcomIndexConfigVideoFramePackingArrangement");
-      if(m_sOutPortFormat.eCompressionFormat == OMX_VIDEO_CodingAVC)
-      {
-        OMX_QCOM_FRAME_PACK_ARRANGEMENT *configFmt =
-          (OMX_QCOM_FRAME_PACK_ARRANGEMENT *) configData;
-        extra_data_handle.set_frame_pack_data(configFmt);
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("ERROR: FramePackingData not supported for non AVC compression");
-      }
-      break;
-    }
-  case QOMX_IndexConfigVideoLTRPeriod:
-    {
-      QOMX_VIDEO_CONFIG_LTRPERIOD_TYPE* pParam = (QOMX_VIDEO_CONFIG_LTRPERIOD_TYPE*)configData;
-      if(!handle->venc_set_config(configData, (OMX_INDEXTYPE)QOMX_IndexConfigVideoLTRPeriod))
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Setting LTR period failed");
-        return OMX_ErrorUnsupportedSetting;
-      }
-      memcpy(&m_sConfigLTRPeriod, pParam, sizeof(m_sConfigLTRPeriod));
-      break;
-    }
-  case QOMX_IndexConfigVideoLTRUse:
-    {
-      QOMX_VIDEO_CONFIG_LTRUSE_TYPE* pParam = (QOMX_VIDEO_CONFIG_LTRUSE_TYPE*)configData;
-      if(!handle->venc_set_config(configData, (OMX_INDEXTYPE)QOMX_IndexConfigVideoLTRUse))
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Setting LTR use failed");
-        return OMX_ErrorUnsupportedSetting;
-      }
-      memcpy(&m_sConfigLTRUse, pParam, sizeof(m_sConfigLTRUse));
-      break;
-    }
-  case QOMX_IndexConfigVideoLTRMark:
-    {
-      QOMX_VIDEO_CONFIG_LTRMARK_TYPE* pParam = (QOMX_VIDEO_CONFIG_LTRMARK_TYPE*)configData;
-      DEBUG_PRINT_ERROR("Setting ltr mark is not supported");
-      return OMX_ErrorUnsupportedSetting;
-      break;
-    }
-  case OMX_IndexConfigVideoAVCIntraPeriod:
-    {
-      OMX_VIDEO_CONFIG_AVCINTRAPERIOD *pParam = (OMX_VIDEO_CONFIG_AVCINTRAPERIOD*) configData;
-      DEBUG_PRINT_LOW("set_config: OMX_IndexConfigVideoAVCIntraPeriod");
-      if(!handle->venc_set_config(pParam, (OMX_INDEXTYPE)OMX_IndexConfigVideoAVCIntraPeriod))
-      {
-        DEBUG_PRINT_ERROR("ERROR: Setting OMX_IndexConfigVideoAVCIntraPeriod failed");
-        return OMX_ErrorUnsupportedSetting;
-      }
-      memcpy(&m_sConfigAVCIDRPeriod, pParam, sizeof(m_sConfigAVCIDRPeriod));
-      break;
-    }
-  default:
-    DEBUG_PRINT_ERROR("ERROR: unsupported index %d", (int) configIndex);
-    break;
-  }
-
-  return OMX_ErrorNone;
+    return OMX_ErrorNone;
 }
 
 /* ======================================================================
-FUNCTION
-  omx_venc::ComponentDeInit
+   FUNCTION
+   omx_venc::ComponentDeInit
 
-DESCRIPTION
-  Destroys the component and release memory allocated to the heap.
+   DESCRIPTION
+   Destroys the component and release memory allocated to the heap.
 
-PARAMETERS
-  <TBD>.
+   PARAMETERS
+   <TBD>.
 
-RETURN VALUE
-  OMX Error None if everything successful.
+   RETURN VALUE
+   OMX Error None if everything successful.
 
-========================================================================== */
+   ========================================================================== */
 OMX_ERRORTYPE  omx_venc::component_deinit(OMX_IN OMX_HANDLETYPE hComp)
 {
-  OMX_U32 i = 0;
-  DEBUG_PRINT_HIGH("\n omx_venc(): Inside component_deinit()");
-  if(OMX_StateLoaded != m_state)
-  {
-    DEBUG_PRINT_ERROR("WARNING:Rxd DeInit,OMX not in LOADED state %d\n",\
-                      m_state);
-  }
-  if(m_out_mem_ptr)
-  {
-    DEBUG_PRINT_LOW("Freeing the Output Memory\n");
-    for(i=0; i< m_sOutPortDef.nBufferCountActual; i++ )
-    {
-      free_output_buffer (&m_out_mem_ptr[i]);
+    OMX_U32 i = 0;
+    DEBUG_PRINT_HIGH("\n omx_venc(): Inside component_deinit()");
+    if (OMX_StateLoaded != m_state) {
+        DEBUG_PRINT_ERROR("WARNING:Rxd DeInit,OMX not in LOADED state %d\n",\
+                m_state);
     }
-    free(m_out_mem_ptr);
-    m_out_mem_ptr = NULL;
-  }
+    if (m_out_mem_ptr) {
+        DEBUG_PRINT_LOW("Freeing the Output Memory\n");
+        for (i=0; i< m_sOutPortDef.nBufferCountActual; i++ ) {
+            free_output_buffer (&m_out_mem_ptr[i]);
+        }
+        free(m_out_mem_ptr);
+        m_out_mem_ptr = NULL;
+    }
 
-  /*Check if the input buffers have to be cleaned up*/
-  if(m_inp_mem_ptr
+    /*Check if the input buffers have to be cleaned up*/
+    if (m_inp_mem_ptr
 #ifdef _ANDROID_ICS_
-     && !meta_mode_enable
+            && !meta_mode_enable
 #endif
-     )
-  {
-    DEBUG_PRINT_LOW("Freeing the Input Memory\n");
-    for(i=0; i<m_sInPortDef.nBufferCountActual; i++ )
-    {
-      free_input_buffer (&m_inp_mem_ptr[i]);
+       ) {
+        DEBUG_PRINT_LOW("Freeing the Input Memory\n");
+        for (i=0; i<m_sInPortDef.nBufferCountActual; i++ ) {
+            free_input_buffer (&m_inp_mem_ptr[i]);
+        }
+
+
+        free(m_inp_mem_ptr);
+        m_inp_mem_ptr = NULL;
     }
 
-
-    free(m_inp_mem_ptr);
-    m_inp_mem_ptr = NULL;
-  }
-
-  // Reset counters in mesg queues
-  m_ftb_q.m_size=0;
-  m_cmd_q.m_size=0;
-  m_etb_q.m_size=0;
-  m_ftb_q.m_read = m_ftb_q.m_write =0;
-  m_cmd_q.m_read = m_cmd_q.m_write =0;
-  m_etb_q.m_read = m_etb_q.m_write =0;
+    // Reset counters in mesg queues
+    m_ftb_q.m_size=0;
+    m_cmd_q.m_size=0;
+    m_etb_q.m_size=0;
+    m_ftb_q.m_read = m_ftb_q.m_write =0;
+    m_cmd_q.m_read = m_cmd_q.m_write =0;
+    m_etb_q.m_read = m_etb_q.m_write =0;
 
 #ifdef _ANDROID_
-  // Clear the strong reference
-  DEBUG_PRINT_HIGH("Calling m_heap_ptr.clear()\n");
-  m_heap_ptr.clear();
+    // Clear the strong reference
+    DEBUG_PRINT_HIGH("Calling m_heap_ptr.clear()\n");
+    m_heap_ptr.clear();
 #endif // _ANDROID_
-  DEBUG_PRINT_HIGH("Calling venc_close()\n");
-  handle->venc_close();
-  DEBUG_PRINT_HIGH("Deleting HANDLE[%p]\n", handle);
-  delete (handle);
-  DEBUG_PRINT_HIGH("OMX_Venc:Component Deinit\n");
-  return OMX_ErrorNone;
+    DEBUG_PRINT_HIGH("Calling venc_close()\n");
+    handle->venc_close();
+    DEBUG_PRINT_HIGH("Deleting HANDLE[%p]\n", handle);
+    delete (handle);
+    DEBUG_PRINT_HIGH("OMX_Venc:Component Deinit\n");
+    return OMX_ErrorNone;
 }
 
 
 OMX_U32 omx_venc::dev_stop( void)
 {
-  return handle->venc_stop();
+    return handle->venc_stop();
 }
 
 
 OMX_U32 omx_venc::dev_pause(void)
 {
-  return handle->venc_pause();
+    return handle->venc_pause();
 }
 
 OMX_U32 omx_venc::dev_start(void)
 {
-  return handle->venc_start();
+    return handle->venc_start();
 }
 
 OMX_U32 omx_venc::dev_flush(unsigned port)
 {
-  return handle->venc_flush(port);
+    return handle->venc_flush(port);
 }
 OMX_U32 omx_venc::dev_resume(void)
 {
-  return handle->venc_resume();
+    return handle->venc_resume();
 }
 
 OMX_U32 omx_venc::dev_start_done(void)
 {
-  return handle->venc_start_done();
+    return handle->venc_start_done();
 }
 
 OMX_U32 omx_venc::dev_set_message_thread_id(pthread_t tid)
 {
-  return handle->venc_set_message_thread_id(tid);
+    return handle->venc_set_message_thread_id(tid);
 }
 
 bool omx_venc::dev_use_buf(void *buf_addr,unsigned port,unsigned index)
 {
-  return handle->venc_use_buf(buf_addr,port,index);
+    return handle->venc_use_buf(buf_addr,port,index);
 }
 
 bool omx_venc::dev_free_buf(void *buf_addr,unsigned port)
 {
-  return handle->venc_free_buf(buf_addr,port);
+    return handle->venc_free_buf(buf_addr,port);
 }
 
 bool omx_venc::dev_empty_buf(void *buffer, void *pmem_data_buf,unsigned index,unsigned fd)
 {
-  return  handle->venc_empty_buf(buffer, pmem_data_buf,index,fd);
+    return  handle->venc_empty_buf(buffer, pmem_data_buf,index,fd);
 }
 
 bool omx_venc::dev_fill_buf(void *buffer, void *pmem_data_buf,unsigned index,unsigned fd)
 {
-  return handle->venc_fill_buf(buffer, pmem_data_buf,index,fd);
+    return handle->venc_fill_buf(buffer, pmem_data_buf,index,fd);
 }
 
 bool omx_venc::dev_get_seq_hdr(void *buffer, unsigned size, unsigned *hdrlen)
 {
-  return handle->venc_get_seq_hdr(buffer, size, hdrlen);
+    return handle->venc_get_seq_hdr(buffer, size, hdrlen);
 }
 
 bool omx_venc::dev_get_capability_ltrcount(OMX_U32 *min, OMX_U32 *max, OMX_U32 *step_size)
 {
 #ifdef _MSM8974_
-   DEBUG_PRINT_ERROR("Get Capability LTR Count is not supported");
-   return false;
+    DEBUG_PRINT_ERROR("Get Capability LTR Count is not supported");
+    return false;
 #else
-   return handle->venc_get_capability_ltrcount(min, max, step_size);
+    return handle->venc_get_capability_ltrcount(min, max, step_size);
 #endif
 }
 
 bool omx_venc::dev_loaded_start()
 {
-  return handle->venc_loaded_start();
+    return handle->venc_loaded_start();
 }
 
 bool omx_venc::dev_loaded_stop()
 {
-  return handle->venc_loaded_stop();
+    return handle->venc_loaded_stop();
 }
 
 bool omx_venc::dev_loaded_start_done()
 {
-  return handle->venc_loaded_start_done();
+    return handle->venc_loaded_start_done();
 }
 
 bool omx_venc::dev_loaded_stop_done()
 {
-  return handle->venc_loaded_stop_done();
+    return handle->venc_loaded_stop_done();
 }
 
 bool omx_venc::dev_get_buf_req(OMX_U32 *min_buff_count,
-                               OMX_U32 *actual_buff_count,
-                               OMX_U32 *buff_size,
-                               OMX_U32 port)
+        OMX_U32 *actual_buff_count,
+        OMX_U32 *buff_size,
+        OMX_U32 port)
 {
-  return handle->venc_get_buf_req(min_buff_count,
-                                  actual_buff_count,
-                                  buff_size,
-                                  port);
+    return handle->venc_get_buf_req(min_buff_count,
+            actual_buff_count,
+            buff_size,
+            port);
 
 }
 
 bool omx_venc::dev_set_buf_req(OMX_U32 *min_buff_count,
-                               OMX_U32 *actual_buff_count,
-                               OMX_U32 *buff_size,
-                               OMX_U32 port)
+        OMX_U32 *actual_buff_count,
+        OMX_U32 *buff_size,
+        OMX_U32 port)
 {
-  return handle->venc_set_buf_req(min_buff_count,
-                                  actual_buff_count,
-                                  buff_size,
-                                  port);
+    return handle->venc_set_buf_req(min_buff_count,
+            actual_buff_count,
+            buff_size,
+            port);
 
 }
 
 bool omx_venc::dev_is_video_session_supported(OMX_U32 width, OMX_U32 height)
 {
 #ifdef _MSM8974_
-  return handle->venc_is_video_session_supported(width,height);
+    return handle->venc_is_video_session_supported(width,height);
 #else
-  DEBUG_PRINT_LOW("Check against video capability not supported");
-  return true;
+    DEBUG_PRINT_LOW("Check against video capability not supported");
+    return true;
 #endif
 }
 
 #ifdef _MSM8974_
 int omx_venc::dev_handle_extradata(void *buffer, int index)
 {
-  return handle->handle_extradata(buffer, index);
+    return handle->handle_extradata(buffer, index);
 }
 
 int omx_venc::dev_set_format(int color)
 {
-  return handle->venc_set_format(color);
+    return handle->venc_set_format(color);
 }
 #endif
 
 int omx_venc::async_message_process (void *context, void* message)
 {
-  omx_video* omx = NULL;
-  struct venc_msg *m_sVenc_msg = NULL;
-  OMX_BUFFERHEADERTYPE* omxhdr = NULL;
-  struct venc_buffer *temp_buff = NULL;
+    omx_video* omx = NULL;
+    struct venc_msg *m_sVenc_msg = NULL;
+    OMX_BUFFERHEADERTYPE* omxhdr = NULL;
+    struct venc_buffer *temp_buff = NULL;
 
-  if(context == NULL || message == NULL)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: omx_venc::async_message_process invalid i/p params");
-    return -1;
-  }
-  m_sVenc_msg = (struct venc_msg *)message;
-
-  omx = reinterpret_cast<omx_video*>(context);
-
-  if(m_sVenc_msg->statuscode != VEN_S_SUCCESS)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: async_msg_process() - Error statuscode = %lu\n",
-        m_sVenc_msg->statuscode);
-    omx->omx_report_error();
-  }
-
-  DEBUG_PRINT_LOW("\n omx_venc::async_message_process- msgcode = %d\n",
-               m_sVenc_msg->msgcode);
-  switch(m_sVenc_msg->msgcode)
-  {
-  case VEN_MSG_START:
-    omx->post_event (NULL,m_sVenc_msg->statuscode,\
-                     OMX_COMPONENT_GENERATE_START_DONE);
-    break;
-  case VEN_MSG_STOP:
-    omx->post_event (NULL,m_sVenc_msg->statuscode,\
-                     OMX_COMPONENT_GENERATE_STOP_DONE);
-    break;
-  case VEN_MSG_RESUME:
-    omx->post_event (NULL,m_sVenc_msg->statuscode,\
-                     OMX_COMPONENT_GENERATE_RESUME_DONE);
-    break;
-  case VEN_MSG_PAUSE:
-    omx->post_event (NULL,m_sVenc_msg->statuscode,\
-                     OMX_COMPONENT_GENERATE_PAUSE_DONE);
-    break;
-  case VEN_MSG_FLUSH_INPUT_DONE:
-
-    omx->post_event (NULL,m_sVenc_msg->statuscode,\
-                     OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH);
-    break;
-  case VEN_MSG_FLUSH_OUPUT_DONE:
-    omx->post_event (NULL,m_sVenc_msg->statuscode,\
-                     OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH);
-    break;
-  case VEN_MSG_INPUT_BUFFER_DONE:
-    omxhdr = (OMX_BUFFERHEADERTYPE* )\
-             m_sVenc_msg->buf.clientdata;
-
-    if(omxhdr == NULL ||
-       (((OMX_U32)(omxhdr - omx->m_inp_mem_ptr) > omx->m_sInPortDef.nBufferCountActual) &&
-        ((OMX_U32)(omxhdr - omx->meta_buffer_hdr) > omx->m_sInPortDef.nBufferCountActual)))
-    {
-      omxhdr = NULL;
-      m_sVenc_msg->statuscode = VEN_S_EFAIL;
+    if (context == NULL || message == NULL) {
+        DEBUG_PRINT_ERROR("\nERROR: omx_venc::async_message_process invalid i/p params");
+        return -1;
     }
+    m_sVenc_msg = (struct venc_msg *)message;
+
+    omx = reinterpret_cast<omx_video*>(context);
+
+    if (m_sVenc_msg->statuscode != VEN_S_SUCCESS) {
+        DEBUG_PRINT_ERROR("\nERROR: async_msg_process() - Error statuscode = %lu\n",
+                m_sVenc_msg->statuscode);
+        omx->omx_report_error();
+    }
+
+    DEBUG_PRINT_LOW("\n omx_venc::async_message_process- msgcode = %d\n",
+            m_sVenc_msg->msgcode);
+    switch (m_sVenc_msg->msgcode) {
+        case VEN_MSG_START:
+            omx->post_event (NULL,m_sVenc_msg->statuscode,\
+                    OMX_COMPONENT_GENERATE_START_DONE);
+            break;
+        case VEN_MSG_STOP:
+            omx->post_event (NULL,m_sVenc_msg->statuscode,\
+                    OMX_COMPONENT_GENERATE_STOP_DONE);
+            break;
+        case VEN_MSG_RESUME:
+            omx->post_event (NULL,m_sVenc_msg->statuscode,\
+                    OMX_COMPONENT_GENERATE_RESUME_DONE);
+            break;
+        case VEN_MSG_PAUSE:
+            omx->post_event (NULL,m_sVenc_msg->statuscode,\
+                    OMX_COMPONENT_GENERATE_PAUSE_DONE);
+            break;
+        case VEN_MSG_FLUSH_INPUT_DONE:
+
+            omx->post_event (NULL,m_sVenc_msg->statuscode,\
+                    OMX_COMPONENT_GENERATE_EVENT_INPUT_FLUSH);
+            break;
+        case VEN_MSG_FLUSH_OUPUT_DONE:
+            omx->post_event (NULL,m_sVenc_msg->statuscode,\
+                    OMX_COMPONENT_GENERATE_EVENT_OUTPUT_FLUSH);
+            break;
+        case VEN_MSG_INPUT_BUFFER_DONE:
+            omxhdr = (OMX_BUFFERHEADERTYPE* )\
+                     m_sVenc_msg->buf.clientdata;
+
+            if (omxhdr == NULL ||
+                    (((OMX_U32)(omxhdr - omx->m_inp_mem_ptr) > omx->m_sInPortDef.nBufferCountActual) &&
+                     ((OMX_U32)(omxhdr - omx->meta_buffer_hdr) > omx->m_sInPortDef.nBufferCountActual))) {
+                omxhdr = NULL;
+                m_sVenc_msg->statuscode = VEN_S_EFAIL;
+            }
 
 #ifdef _ANDROID_ICS_
-      omx->omx_release_meta_buffer(omxhdr);
+            omx->omx_release_meta_buffer(omxhdr);
 #endif
-    omx->post_event ((unsigned int)omxhdr,m_sVenc_msg->statuscode,
-                     OMX_COMPONENT_GENERATE_EBD);
-    break;
-  case VEN_MSG_OUTPUT_BUFFER_DONE:
-    omxhdr = (OMX_BUFFERHEADERTYPE*)m_sVenc_msg->buf.clientdata;
+            omx->post_event ((unsigned int)omxhdr,m_sVenc_msg->statuscode,
+                    OMX_COMPONENT_GENERATE_EBD);
+            break;
+        case VEN_MSG_OUTPUT_BUFFER_DONE:
+            omxhdr = (OMX_BUFFERHEADERTYPE*)m_sVenc_msg->buf.clientdata;
 
-    if( (omxhdr != NULL) &&
-        ((OMX_U32)(omxhdr - omx->m_out_mem_ptr)  < omx->m_sOutPortDef.nBufferCountActual))
-    {
-      if(m_sVenc_msg->buf.len <=  omxhdr->nAllocLen)
-      {
-        omxhdr->nFilledLen = m_sVenc_msg->buf.len;
-        omxhdr->nOffset = m_sVenc_msg->buf.offset;
-        omxhdr->nTimeStamp = m_sVenc_msg->buf.timestamp;
-        DEBUG_PRINT_LOW("\n o/p TS = %u", (OMX_U32)m_sVenc_msg->buf.timestamp);
-        omxhdr->nFlags = m_sVenc_msg->buf.flags;
+            if ( (omxhdr != NULL) &&
+                    ((OMX_U32)(omxhdr - omx->m_out_mem_ptr)  < omx->m_sOutPortDef.nBufferCountActual)) {
+                if (m_sVenc_msg->buf.len <=  omxhdr->nAllocLen) {
+                    omxhdr->nFilledLen = m_sVenc_msg->buf.len;
+                    omxhdr->nOffset = m_sVenc_msg->buf.offset;
+                    omxhdr->nTimeStamp = m_sVenc_msg->buf.timestamp;
+                    DEBUG_PRINT_LOW("\n o/p TS = %u", (OMX_U32)m_sVenc_msg->buf.timestamp);
+                    omxhdr->nFlags = m_sVenc_msg->buf.flags;
 
-        /*Use buffer case*/
-        if(omx->output_use_buffer && !omx->m_use_output_pmem)
-        {
-          DEBUG_PRINT_LOW("\n memcpy() for o/p Heap UseBuffer");
-          memcpy(omxhdr->pBuffer,
-                 (m_sVenc_msg->buf.ptrbuffer),
-                  m_sVenc_msg->buf.len);
-        }
-      }
-      else
-      {
-        omxhdr->nFilledLen = 0;
-      }
+                    /*Use buffer case*/
+                    if (omx->output_use_buffer && !omx->m_use_output_pmem) {
+                        DEBUG_PRINT_LOW("\n memcpy() for o/p Heap UseBuffer");
+                        memcpy(omxhdr->pBuffer,
+                                (m_sVenc_msg->buf.ptrbuffer),
+                                m_sVenc_msg->buf.len);
+                    }
+                } else {
+                    omxhdr->nFilledLen = 0;
+                }
 
-    }
-    else
-    {
-      omxhdr = NULL;
-      m_sVenc_msg->statuscode = VEN_S_EFAIL;
-    }
-    omx->post_event ((unsigned int)omxhdr,m_sVenc_msg->statuscode,
-                     OMX_COMPONENT_GENERATE_FBD);
-    break;
-  case VEN_MSG_NEED_OUTPUT_BUFFER:
-    //TBD what action needs to be done here??
-    break;
+            } else {
+                omxhdr = NULL;
+                m_sVenc_msg->statuscode = VEN_S_EFAIL;
+            }
+            omx->post_event ((unsigned int)omxhdr,m_sVenc_msg->statuscode,
+                    OMX_COMPONENT_GENERATE_FBD);
+            break;
+        case VEN_MSG_NEED_OUTPUT_BUFFER:
+            //TBD what action needs to be done here??
+            break;
 #ifndef _MSM8974_
-  case VEN_MSG_LTRUSE_FAILED:
-    DEBUG_PRINT_ERROR("LTRUSE Failed!");
-    omx->post_event (NULL,m_sVenc_msg->statuscode,
-                     OMX_COMPONENT_GENERATE_LTRUSE_FAILED);
-    break;
+        case VEN_MSG_LTRUSE_FAILED:
+            DEBUG_PRINT_ERROR("LTRUSE Failed!");
+            omx->post_event (NULL,m_sVenc_msg->statuscode,
+                    OMX_COMPONENT_GENERATE_LTRUSE_FAILED);
+            break;
 #endif
-  default:
-    break;
-  }
-  return 0;
+        default:
+            break;
+    }
+    return 0;
 }
diff --git a/mm-video-v4l2/vidc/venc/src/video_encoder_device.cpp b/mm-video-v4l2/vidc/venc/src/video_encoder_device.cpp
index 7b56d33..f5890f5 100644
--- a/mm-video-v4l2/vidc/venc/src/video_encoder_device.cpp
+++ b/mm-video-v4l2/vidc/venc/src/video_encoder_device.cpp
@@ -1,5 +1,5 @@
 /*--------------------------------------------------------------------------
-Copyright (c) 2010-2012, The Linux Foundation. All rights reserved.
+Copyright (c) 2010-2013, The Linux Foundation. All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -46,8 +46,7 @@
 #define H264_MP_START (H264_BP_START + 26)
 
 /* MPEG4 profile and level table*/
-static const unsigned int mpeg4_profile_level_table[][5]=
-{
+static const unsigned int mpeg4_profile_level_table[][5]= {
     /*max mb per frame, max mb per sec, max bitrate, level, profile*/
     {99,1485,64000,OMX_VIDEO_MPEG4Level0,OMX_VIDEO_MPEG4ProfileSimple},
     {99,1485,64000,OMX_VIDEO_MPEG4Level1,OMX_VIDEO_MPEG4ProfileSimple},
@@ -68,9 +67,8 @@
 };
 
 /* H264 profile and level table*/
-static const unsigned int h264_profile_level_table[][5]=
-{
-     /*max mb per frame, max mb per sec, max bitrate, level, profile*/
+static const unsigned int h264_profile_level_table[][5]= {
+    /*max mb per frame, max mb per sec, max bitrate, level, profile*/
     {99,1485,64000,OMX_VIDEO_AVCLevel1,OMX_VIDEO_AVCProfileBaseline},
     {99,1485,128000,OMX_VIDEO_AVCLevel1b,OMX_VIDEO_AVCProfileBaseline},
     {396,3000,192000,OMX_VIDEO_AVCLevel11,OMX_VIDEO_AVCProfileBaseline},
@@ -116,8 +114,7 @@
 };
 
 /* H263 profile and level table*/
-static const unsigned int h263_profile_level_table[][5]=
-{
+static const unsigned int h263_profile_level_table[][5]= {
     /*max mb per frame, max mb per sec, max bitrate, level, profile*/
     {99,1485,64000,OMX_VIDEO_H263Level10,OMX_VIDEO_H263ProfileBaseline},
     {396,5940,128000,OMX_VIDEO_H263Level20,OMX_VIDEO_H263ProfileBaseline},
@@ -144,1137 +141,1095 @@
 //constructor
 venc_dev::venc_dev(class omx_venc *venc_class)
 {
-  m_max_allowed_bitrate_check = false;
-  m_eLevel = 0;
-  m_eProfile = 0;
-  pthread_mutex_init(&loaded_start_stop_mlock, NULL);
-  pthread_cond_init (&loaded_start_stop_cond, NULL);
-  DEBUG_PRINT_LOW("venc_dev constructor");
+    m_max_allowed_bitrate_check = false;
+    m_eLevel = 0;
+    m_eProfile = 0;
+    pthread_mutex_init(&loaded_start_stop_mlock, NULL);
+    pthread_cond_init (&loaded_start_stop_cond, NULL);
+    DEBUG_PRINT_LOW("venc_dev constructor");
 }
 
 venc_dev::~venc_dev()
 {
-  pthread_cond_destroy(&loaded_start_stop_cond);
-  pthread_mutex_destroy(&loaded_start_stop_mlock);
-  DEBUG_PRINT_LOW("venc_dev distructor");
+    pthread_cond_destroy(&loaded_start_stop_cond);
+    pthread_mutex_destroy(&loaded_start_stop_mlock);
+    DEBUG_PRINT_LOW("venc_dev distructor");
 }
 
 void* async_venc_message_thread (void *input)
 {
-  struct venc_ioctl_msg ioctl_msg ={NULL,NULL};
-  struct venc_timeout timeout;
-  struct venc_msg venc_msg;
-  int error_code = 0;
-  omx_venc *omx = reinterpret_cast<omx_venc*>(input);
+    struct venc_ioctl_msg ioctl_msg ={NULL,NULL};
+    struct venc_timeout timeout;
+    struct venc_msg venc_msg;
+    int error_code = 0;
+    omx_venc *omx = reinterpret_cast<omx_venc*>(input);
 
-  prctl(PR_SET_NAME, (unsigned long)"VideoEncCallBackThread", 0, 0, 0);
-  timeout.millisec = VEN_TIMEOUT_INFINITE;
-  while(1)
-  {
-    ioctl_msg.in = NULL;
-    ioctl_msg.out = (void*)&venc_msg;
+    prctl(PR_SET_NAME, (unsigned long)"VideoEncCallBackThread", 0, 0, 0);
+    timeout.millisec = VEN_TIMEOUT_INFINITE;
 
-    /*Wait for a message from the video decoder driver*/
-    error_code = ioctl(omx->handle->m_nDriver_fd,VEN_IOCTL_CMD_READ_NEXT_MSG,(void *)&ioctl_msg);
-    if (error_code == -512)  // ERESTARTSYS
-    {
-        DEBUG_PRINT_ERROR("\n ERESTARTSYS received in ioctl read next msg!");
+    while (1) {
+        ioctl_msg.in = NULL;
+        ioctl_msg.out = (void*)&venc_msg;
+
+        /*Wait for a message from the video decoder driver*/
+        error_code = ioctl(omx->handle->m_nDriver_fd,VEN_IOCTL_CMD_READ_NEXT_MSG,(void *)&ioctl_msg);
+
+        if (error_code == -512) { // ERESTARTSYS
+            DEBUG_PRINT_ERROR("\n ERESTARTSYS received in ioctl read next msg!");
+        } else if (error_code <0) {
+            DEBUG_PRINT_LOW("\nioctl VEN_IOCTL_CMD_READ_NEXT_MSG failed");
+            break;
+        } else if (omx->async_message_process(input,&venc_msg) < 0) {
+            DEBUG_PRINT_ERROR("\nERROR: Wrong ioctl message");
+            break;
+        }
     }
-    else if (error_code <0)
-    {
-        DEBUG_PRINT_LOW("\nioctl VEN_IOCTL_CMD_READ_NEXT_MSG failed");
-        break;
-    }
-    else if(omx->async_message_process(input,&venc_msg) < 0)
-    {
-        DEBUG_PRINT_ERROR("\nERROR: Wrong ioctl message");
-        break;
-    }
-  }
-  DEBUG_PRINT_HIGH("omx_venc: Async Thread exit\n");
-  return NULL;
+
+    DEBUG_PRINT_HIGH("omx_venc: Async Thread exit\n");
+    return NULL;
 }
 
 bool venc_dev::venc_open(OMX_U32 codec)
 {
-  struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  int r;
-  unsigned int   alignment = 0,buffer_size = 0, temp =0;
+    struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    int r;
+    unsigned int   alignment = 0,buffer_size = 0, temp =0;
 
-  m_nDriver_fd = open ("/dev/msm_vidc_enc",O_RDWR|O_NONBLOCK);
-  if(m_nDriver_fd == 0)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Got fd as 0 for msm_vidc_enc, Opening again\n");
     m_nDriver_fd = open ("/dev/msm_vidc_enc",O_RDWR|O_NONBLOCK);
-  }
 
-  if((int)m_nDriver_fd < 0)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Omx_venc::Comp Init Returning failure\n");
-    return false;
-  }
+    if (m_nDriver_fd == 0) {
+        DEBUG_PRINT_ERROR("ERROR: Got fd as 0 for msm_vidc_enc, Opening again\n");
+        m_nDriver_fd = open ("/dev/msm_vidc_enc",O_RDWR|O_NONBLOCK);
+    }
 
-  DEBUG_PRINT_LOW("\nm_nDriver_fd = %d\n", m_nDriver_fd);
+    if ((int)m_nDriver_fd < 0) {
+        DEBUG_PRINT_ERROR("ERROR: Omx_venc::Comp Init Returning failure\n");
+        return false;
+    }
+
+    DEBUG_PRINT_LOW("\nm_nDriver_fd = %d\n", m_nDriver_fd);
 #ifdef SINGLE_ENCODER_INSTANCE
-  OMX_U32 num_instances = 0;
-  ioctl_msg.in = NULL;
-  ioctl_msg.out = &num_instances;
-  if(ioctl (m_nDriver_fd, VEN_IOCTL_GET_NUMBER_INSTANCES, (void*)&ioctl_msg) < 0 )
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Request number of encoder instances failed");
-  }
-  else if (num_instances > 1)
-  {
-    DEBUG_PRINT_ERROR("\nSecond encoder instance rejected!");
-    venc_close();
-    return false;
-  }
+    OMX_U32 num_instances = 0;
+    ioctl_msg.in = NULL;
+    ioctl_msg.out = &num_instances;
+
+    if (ioctl (m_nDriver_fd, VEN_IOCTL_GET_NUMBER_INSTANCES, (void*)&ioctl_msg) < 0 ) {
+        DEBUG_PRINT_ERROR("\nERROR: Request number of encoder instances failed");
+    } else if (num_instances > 1) {
+        DEBUG_PRINT_ERROR("\nSecond encoder instance rejected!");
+        venc_close();
+        return false;
+    }
+
 #endif
-  // set the basic configuration of the video encoder driver
-  m_sVenc_cfg.input_width = OMX_CORE_QCIF_WIDTH;
-  m_sVenc_cfg.input_height= OMX_CORE_QCIF_HEIGHT;
-  m_sVenc_cfg.dvs_width = OMX_CORE_QCIF_WIDTH;
-  m_sVenc_cfg.dvs_height = OMX_CORE_QCIF_HEIGHT;
-  m_sVenc_cfg.fps_num = 30;
-  m_sVenc_cfg.fps_den = 1;
-  m_sVenc_cfg.targetbitrate = 64000;
+    // set the basic configuration of the video encoder driver
+    m_sVenc_cfg.input_width = OMX_CORE_QCIF_WIDTH;
+    m_sVenc_cfg.input_height= OMX_CORE_QCIF_HEIGHT;
+    m_sVenc_cfg.dvs_width = OMX_CORE_QCIF_WIDTH;
+    m_sVenc_cfg.dvs_height = OMX_CORE_QCIF_HEIGHT;
+    m_sVenc_cfg.fps_num = 30;
+    m_sVenc_cfg.fps_den = 1;
+    m_sVenc_cfg.targetbitrate = 64000;
 #ifdef MAX_RES_1080P
-  m_sVenc_cfg.inputformat= VEN_INPUTFMT_NV12_16M2KA;
+    m_sVenc_cfg.inputformat= VEN_INPUTFMT_NV12_16M2KA;
 #else
-  m_sVenc_cfg.inputformat= VEN_INPUTFMT_NV12;
+    m_sVenc_cfg.inputformat= VEN_INPUTFMT_NV12;
 #endif
-// initializing QP range parameters
-  qp_range.minqp = 2;
-  if(codec == OMX_VIDEO_CodingAVC)
-    qp_range.maxqp = 51;
-  else
-    qp_range.maxqp = 31;
+    // initializing QP range parameters
+    qp_range.minqp = 2;
 
-  if(codec == OMX_VIDEO_CodingMPEG4)
-  {
-    m_sVenc_cfg.codectype = VEN_CODEC_MPEG4;
-    codec_profile.profile = VEN_PROFILE_MPEG4_SP;
-    profile_level.level = VEN_LEVEL_MPEG4_2;
+    if (codec == OMX_VIDEO_CodingAVC)
+        qp_range.maxqp = 51;
+    else
+        qp_range.maxqp = 31;
+
+    if (codec == OMX_VIDEO_CodingMPEG4) {
+        m_sVenc_cfg.codectype = VEN_CODEC_MPEG4;
+        codec_profile.profile = VEN_PROFILE_MPEG4_SP;
+        profile_level.level = VEN_LEVEL_MPEG4_2;
 #ifdef OUTPUT_BUFFER_LOG
-    strcat(outputfilename, "m4v");
+        strcat(outputfilename, "m4v");
 #endif
-  }
-  else if(codec == OMX_VIDEO_CodingH263)
-  {
-    m_sVenc_cfg.codectype = VEN_CODEC_H263;
-    codec_profile.profile = VEN_PROFILE_H263_BASELINE;
-    profile_level.level = VEN_LEVEL_H263_20;
+    } else if (codec == OMX_VIDEO_CodingH263) {
+        m_sVenc_cfg.codectype = VEN_CODEC_H263;
+        codec_profile.profile = VEN_PROFILE_H263_BASELINE;
+        profile_level.level = VEN_LEVEL_H263_20;
 #ifdef OUTPUT_BUFFER_LOG
-    strcat(outputfilename, "263");
+        strcat(outputfilename, "263");
 #endif
-  }
-  if(codec == OMX_VIDEO_CodingAVC)
-  {
-    m_sVenc_cfg.codectype = VEN_CODEC_H264;
-    codec_profile.profile = VEN_PROFILE_H264_BASELINE;
-    profile_level.level = VEN_LEVEL_H264_1p1;
+    }
+
+    if (codec == OMX_VIDEO_CodingAVC) {
+        m_sVenc_cfg.codectype = VEN_CODEC_H264;
+        codec_profile.profile = VEN_PROFILE_H264_BASELINE;
+        profile_level.level = VEN_LEVEL_H264_1p1;
 #ifdef OUTPUT_BUFFER_LOG
-    strcat(outputfilename, "264");
+        strcat(outputfilename, "264");
 #endif
-  }
-  ioctl_msg.in = (void*)&m_sVenc_cfg;
-  ioctl_msg.out = NULL;
-  if(ioctl (m_nDriver_fd,VEN_IOCTL_SET_BASE_CFG,(void*)&ioctl_msg) < 0 )
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Request for setting base configuration failed");
-    return false;
-  }
+    }
+
+    ioctl_msg.in = (void*)&m_sVenc_cfg;
+    ioctl_msg.out = NULL;
+
+    if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_BASE_CFG,(void*)&ioctl_msg) < 0 ) {
+        DEBUG_PRINT_ERROR("\nERROR: Request for setting base configuration failed");
+        return false;
+    }
+
 #ifdef INPUT_BUFFER_LOG
-  inputBufferFile1 = fopen (inputfilename, "ab");
+    inputBufferFile1 = fopen (inputfilename, "ab");
 #endif
 #ifdef OUTPUT_BUFFER_LOG
-  outputBufferFile1 = fopen (outputfilename, "ab");
+    outputBufferFile1 = fopen (outputfilename, "ab");
 #endif
-  // Get the I/P and O/P buffer requirements
-  ioctl_msg.in = NULL;
-  ioctl_msg.out = (void*)&m_sInput_buff_property;
-  if(ioctl (m_nDriver_fd,VEN_IOCTL_GET_INPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Request for getting i/p buffer requirement failed");
-    return false;
-  }
-  ioctl_msg.in = NULL;
-  ioctl_msg.out = (void*)&m_sOutput_buff_property;
-  if(ioctl (m_nDriver_fd,VEN_IOCTL_GET_OUTPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Request for getting o/p buffer requirement failed");
-    return false;
-  }
+    // Get the I/P and O/P buffer requirements
+    ioctl_msg.in = NULL;
+    ioctl_msg.out = (void*)&m_sInput_buff_property;
 
-  m_profile_set = false;
-  m_level_set = false;
-  if(venc_set_profile_level(0, 0))
-  {
-    DEBUG_PRINT_HIGH("\n %s(): Init Profile/Level setting success",
-        __func__);
-  }
-  recon_buffers_count = MAX_RECON_BUFFERS;
-  ltrmode.ltr_mode = 0;
-  ltrcount.ltr_count = 0;
-  ltrperiod.ltr_period = 0;
+    if (ioctl (m_nDriver_fd,VEN_IOCTL_GET_INPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("\nERROR: Request for getting i/p buffer requirement failed");
+        return false;
+    }
 
-  return true;
+    ioctl_msg.in = NULL;
+    ioctl_msg.out = (void*)&m_sOutput_buff_property;
+
+    if (ioctl (m_nDriver_fd,VEN_IOCTL_GET_OUTPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("\nERROR: Request for getting o/p buffer requirement failed");
+        return false;
+    }
+
+    m_profile_set = false;
+    m_level_set = false;
+
+    if (venc_set_profile_level(0, 0)) {
+        DEBUG_PRINT_HIGH("\n %s(): Init Profile/Level setting success",
+                __func__);
+    }
+
+    recon_buffers_count = MAX_RECON_BUFFERS;
+    ltrmode.ltr_mode = 0;
+    ltrcount.ltr_count = 0;
+    ltrperiod.ltr_period = 0;
+
+    return true;
 }
 
 void venc_dev::venc_close()
 {
-  DEBUG_PRINT_LOW("\nvenc_close: fd = %d", m_nDriver_fd);
-  if((int)m_nDriver_fd >= 0)
-  {
-    DEBUG_PRINT_HIGH("\n venc_close(): Calling VEN_IOCTL_CMD_STOP_READ_MSG");
-    (void)ioctl(m_nDriver_fd, VEN_IOCTL_CMD_STOP_READ_MSG,
-        NULL);
-    DEBUG_PRINT_LOW("\nCalling close()\n");
-    close(m_nDriver_fd);
-    m_nDriver_fd = -1;
-  }
+    DEBUG_PRINT_LOW("\nvenc_close: fd = %d", m_nDriver_fd);
+
+    if ((int)m_nDriver_fd >= 0) {
+        DEBUG_PRINT_HIGH("\n venc_close(): Calling VEN_IOCTL_CMD_STOP_READ_MSG");
+        (void)ioctl(m_nDriver_fd, VEN_IOCTL_CMD_STOP_READ_MSG,
+                NULL);
+        DEBUG_PRINT_LOW("\nCalling close()\n");
+        close(m_nDriver_fd);
+        m_nDriver_fd = -1;
+    }
+
 #ifdef INPUT_BUFFER_LOG
-  fclose (inputBufferFile1);
+    fclose (inputBufferFile1);
 #endif
 #ifdef OUTPUT_BUFFER_LOG
-  fclose (outputBufferFile1);
+    fclose (outputBufferFile1);
 #endif
 }
 
 bool venc_dev::venc_set_buf_req(unsigned long *min_buff_count,
-                                unsigned long *actual_buff_count,
-                                unsigned long *buff_size,
-                                unsigned long port)
+        unsigned long *actual_buff_count,
+        unsigned long *buff_size,
+        unsigned long port)
 {
-  struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  unsigned long temp_count = 0;
+    struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    unsigned long temp_count = 0;
 
-  if(port == 0)
-  {
-    if(*actual_buff_count > m_sInput_buff_property.mincount)
-    {
-      temp_count = m_sInput_buff_property.actualcount;
-      m_sInput_buff_property.actualcount = *actual_buff_count;
-      ioctl_msg.in = (void*)&m_sInput_buff_property;
-      ioctl_msg.out = NULL;
-      if(ioctl (m_nDriver_fd,VEN_IOCTL_SET_INPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0)
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Request for setting i/p buffer requirement failed");
-        m_sInput_buff_property.actualcount = temp_count;
-        return false;
-      }
-      DEBUG_PRINT_LOW("\n I/P Count set to %lu\n", *actual_buff_count);
-    }
-  }
-  else
-  {
-    if(*actual_buff_count > m_sOutput_buff_property.mincount)
-    {
-	  temp_count = m_sOutput_buff_property.actualcount;
-      m_sOutput_buff_property.actualcount = *actual_buff_count;
-      ioctl_msg.in = (void*)&m_sOutput_buff_property;
-      ioctl_msg.out = NULL;
-      if(ioctl (m_nDriver_fd,VEN_IOCTL_SET_OUTPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0)
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Request for setting o/p buffer requirement failed");
-		m_sOutput_buff_property.actualcount = temp_count;
-        return false;
-      }
-      DEBUG_PRINT_LOW("\n O/P Count set to %lu\n", *actual_buff_count);
-    }
-  }
+    if (port == 0) {
+        if (*actual_buff_count > m_sInput_buff_property.mincount) {
+            temp_count = m_sInput_buff_property.actualcount;
+            m_sInput_buff_property.actualcount = *actual_buff_count;
+            ioctl_msg.in = (void*)&m_sInput_buff_property;
+            ioctl_msg.out = NULL;
 
-  return true;
+            if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_INPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0) {
+                DEBUG_PRINT_ERROR("\nERROR: Request for setting i/p buffer requirement failed");
+                m_sInput_buff_property.actualcount = temp_count;
+                return false;
+            }
+
+            DEBUG_PRINT_LOW("\n I/P Count set to %lu\n", *actual_buff_count);
+        }
+    } else {
+        if (*actual_buff_count > m_sOutput_buff_property.mincount) {
+            temp_count = m_sOutput_buff_property.actualcount;
+            m_sOutput_buff_property.actualcount = *actual_buff_count;
+            ioctl_msg.in = (void*)&m_sOutput_buff_property;
+            ioctl_msg.out = NULL;
+
+            if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_OUTPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0) {
+                DEBUG_PRINT_ERROR("\nERROR: Request for setting o/p buffer requirement failed");
+                m_sOutput_buff_property.actualcount = temp_count;
+                return false;
+            }
+
+            DEBUG_PRINT_LOW("\n O/P Count set to %lu\n", *actual_buff_count);
+        }
+    }
+
+    return true;
 
 }
 
 bool venc_dev::venc_loaded_start()
 {
-  struct timespec ts;
-  int status = 0;
-  if(ioctl (m_nDriver_fd,VEN_IOCTL_CMD_START, NULL) < 0)
-  {
-    DEBUG_PRINT_ERROR("ERROR: VEN_IOCTL_CMD_START failed");
-    return false;
-  }
-  if (clock_gettime(CLOCK_REALTIME, &ts) < 0)
-  {
-    DEBUG_PRINT_ERROR("%s: clock_gettime failed", __func__);
-    return false;
-  }
-  ts.tv_sec += 1;
-  pthread_mutex_lock(&loaded_start_stop_mlock);
-  DEBUG_PRINT_LOW("%s: wait on start done", __func__);
-  status = pthread_cond_timedwait(&loaded_start_stop_cond,
-                &loaded_start_stop_mlock, &ts);
-  if (status != 0)
-  {
-    DEBUG_PRINT_ERROR("%s: error status = %d, %s", __func__,
-        status, strerror(status));
+    struct timespec ts;
+    int status = 0;
+
+    if (ioctl (m_nDriver_fd,VEN_IOCTL_CMD_START, NULL) < 0) {
+        DEBUG_PRINT_ERROR("ERROR: VEN_IOCTL_CMD_START failed");
+        return false;
+    }
+
+    if (clock_gettime(CLOCK_REALTIME, &ts) < 0) {
+        DEBUG_PRINT_ERROR("%s: clock_gettime failed", __func__);
+        return false;
+    }
+
+    ts.tv_sec += 1;
+    pthread_mutex_lock(&loaded_start_stop_mlock);
+    DEBUG_PRINT_LOW("%s: wait on start done", __func__);
+    status = pthread_cond_timedwait(&loaded_start_stop_cond,
+            &loaded_start_stop_mlock, &ts);
+
+    if (status != 0) {
+        DEBUG_PRINT_ERROR("%s: error status = %d, %s", __func__,
+                status, strerror(status));
+        pthread_mutex_unlock(&loaded_start_stop_mlock);
+        return false;
+    }
+
+    DEBUG_PRINT_LOW("%s: wait over on start done", __func__);
     pthread_mutex_unlock(&loaded_start_stop_mlock);
-    return false;
-  }
-  DEBUG_PRINT_LOW("%s: wait over on start done", __func__);
-  pthread_mutex_unlock(&loaded_start_stop_mlock);
-  DEBUG_PRINT_LOW("%s: venc_loaded_start success", __func__);
-  return true;
+    DEBUG_PRINT_LOW("%s: venc_loaded_start success", __func__);
+    return true;
 }
 
 bool venc_dev::venc_loaded_stop()
 {
-  struct timespec ts;
-  int status = 0;
-  if(ioctl (m_nDriver_fd,VEN_IOCTL_CMD_STOP, NULL) < 0)
-  {
-    DEBUG_PRINT_ERROR("ERROR: VEN_IOCTL_CMD_STOP failed");
-    return false;
-  }
-  if (clock_gettime(CLOCK_REALTIME, &ts) < 0)
-  {
-    DEBUG_PRINT_ERROR("%s: clock_gettime failed", __func__);
-    return false;
-  }
-  ts.tv_sec += 1;
-  pthread_mutex_lock(&loaded_start_stop_mlock);
-  DEBUG_PRINT_LOW("%s: wait on stop done", __func__);
-  status = pthread_cond_timedwait(&loaded_start_stop_cond,
-                &loaded_start_stop_mlock, &ts);
-  if (status != 0)
-  {
-    DEBUG_PRINT_ERROR("%s: error status = %d, %s", __func__,
-        status, strerror(status));
+    struct timespec ts;
+    int status = 0;
+
+    if (ioctl (m_nDriver_fd,VEN_IOCTL_CMD_STOP, NULL) < 0) {
+        DEBUG_PRINT_ERROR("ERROR: VEN_IOCTL_CMD_STOP failed");
+        return false;
+    }
+
+    if (clock_gettime(CLOCK_REALTIME, &ts) < 0) {
+        DEBUG_PRINT_ERROR("%s: clock_gettime failed", __func__);
+        return false;
+    }
+
+    ts.tv_sec += 1;
+    pthread_mutex_lock(&loaded_start_stop_mlock);
+    DEBUG_PRINT_LOW("%s: wait on stop done", __func__);
+    status = pthread_cond_timedwait(&loaded_start_stop_cond,
+            &loaded_start_stop_mlock, &ts);
+
+    if (status != 0) {
+        DEBUG_PRINT_ERROR("%s: error status = %d, %s", __func__,
+                status, strerror(status));
+        pthread_mutex_unlock(&loaded_start_stop_mlock);
+        return false;
+    }
+
+    DEBUG_PRINT_LOW("%s: wait over on stop done", __func__);
     pthread_mutex_unlock(&loaded_start_stop_mlock);
-    return false;
-  }
-  DEBUG_PRINT_LOW("%s: wait over on stop done", __func__);
-  pthread_mutex_unlock(&loaded_start_stop_mlock);
-  DEBUG_PRINT_LOW("%s: venc_loaded_stop success", __func__);
-  return true;
+    DEBUG_PRINT_LOW("%s: venc_loaded_stop success", __func__);
+    return true;
 }
 
 bool venc_dev::venc_loaded_start_done()
 {
-  pthread_mutex_lock(&loaded_start_stop_mlock);
-  DEBUG_PRINT_LOW("%s: signal start done", __func__);
-  pthread_cond_signal(&loaded_start_stop_cond);
-  pthread_mutex_unlock(&loaded_start_stop_mlock);
-  return true;
+    pthread_mutex_lock(&loaded_start_stop_mlock);
+    DEBUG_PRINT_LOW("%s: signal start done", __func__);
+    pthread_cond_signal(&loaded_start_stop_cond);
+    pthread_mutex_unlock(&loaded_start_stop_mlock);
+    return true;
 }
 
 bool venc_dev::venc_loaded_stop_done()
 {
-  pthread_mutex_lock(&loaded_start_stop_mlock);
-  DEBUG_PRINT_LOW("%s: signal stop done", __func__);
-  pthread_cond_signal(&loaded_start_stop_cond);
-  pthread_mutex_unlock(&loaded_start_stop_mlock);
-  return true;
+    pthread_mutex_lock(&loaded_start_stop_mlock);
+    DEBUG_PRINT_LOW("%s: signal stop done", __func__);
+    pthread_cond_signal(&loaded_start_stop_cond);
+    pthread_mutex_unlock(&loaded_start_stop_mlock);
+    return true;
 }
 
 bool venc_dev::venc_get_seq_hdr(void *buffer,
-    unsigned buffer_size, unsigned *header_len)
+        unsigned buffer_size, unsigned *header_len)
 {
-  struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  int i = 0;
-  DEBUG_PRINT_HIGH("venc_dev::venc_get_seq_hdr");
-  venc_seqheader seq_in, seq_out;
-  seq_in.hdrlen = 0;
-  seq_in.bufsize = buffer_size;
-  seq_in.hdrbufptr = (unsigned char*)buffer;
-  if (seq_in.hdrbufptr == NULL) {
-    DEBUG_PRINT_ERROR("ERROR: malloc for sequence header failed");
-    return false;
-  }
-  DEBUG_PRINT_LOW("seq_in: buf=%x, sz=%d, hdrlen=%d", seq_in.hdrbufptr,
-    seq_in.bufsize, seq_in.hdrlen);
+    struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    int i = 0;
+    DEBUG_PRINT_HIGH("venc_dev::venc_get_seq_hdr");
+    venc_seqheader seq_in, seq_out;
+    seq_in.hdrlen = 0;
+    seq_in.bufsize = buffer_size;
+    seq_in.hdrbufptr = (unsigned char*)buffer;
 
-  ioctl_msg.in = (void*)&seq_in;
-  ioctl_msg.out = (void*)&seq_out;
-  if(ioctl (m_nDriver_fd,VEN_IOCTL_GET_SEQUENCE_HDR,(void*)&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Request for getting sequence header failed");
-    return false;
-  }
-  if (seq_out.hdrlen == 0) {
-    DEBUG_PRINT_ERROR("ERROR: Seq header returned zero length header");
-    DEBUG_PRINT_ERROR("seq_out: buf=%x, sz=%d, hdrlen=%d", seq_out.hdrbufptr,
-      seq_out.bufsize, seq_out.hdrlen);
-    return false;
-  }
-  *header_len = seq_out.hdrlen;
-  DEBUG_PRINT_LOW("seq_out: buf=%x, sz=%d, hdrlen=%d", seq_out.hdrbufptr,
-    seq_out.bufsize, seq_out.hdrlen);
+    if (seq_in.hdrbufptr == NULL) {
+        DEBUG_PRINT_ERROR("ERROR: malloc for sequence header failed");
+        return false;
+    }
 
-  return true;
+    DEBUG_PRINT_LOW("seq_in: buf=%x, sz=%d, hdrlen=%d", seq_in.hdrbufptr,
+            seq_in.bufsize, seq_in.hdrlen);
+
+    ioctl_msg.in = (void*)&seq_in;
+    ioctl_msg.out = (void*)&seq_out;
+
+    if (ioctl (m_nDriver_fd,VEN_IOCTL_GET_SEQUENCE_HDR,(void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("ERROR: Request for getting sequence header failed");
+        return false;
+    }
+
+    if (seq_out.hdrlen == 0) {
+        DEBUG_PRINT_ERROR("ERROR: Seq header returned zero length header");
+        DEBUG_PRINT_ERROR("seq_out: buf=%x, sz=%d, hdrlen=%d", seq_out.hdrbufptr,
+                seq_out.bufsize, seq_out.hdrlen);
+        return false;
+    }
+
+    *header_len = seq_out.hdrlen;
+    DEBUG_PRINT_LOW("seq_out: buf=%x, sz=%d, hdrlen=%d", seq_out.hdrbufptr,
+            seq_out.bufsize, seq_out.hdrlen);
+
+    return true;
 }
 
 bool venc_dev::venc_get_capability_ltrcount(unsigned long *min,
-    unsigned long *max, unsigned long *step_size)
+        unsigned long *max, unsigned long *step_size)
 {
-  struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  venc_range  cap_ltr_count;
-  ioctl_msg.in = NULL;
-  ioctl_msg.out = (void*)&cap_ltr_count;
-  if(ioctl (m_nDriver_fd, VEN_IOCTL_GET_CAPABILITY_LTRCOUNT,
-            (void*)&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Get LTR Capability failed");
-    return false;
-  }
-  else
-  {
-    *min = cap_ltr_count.min;
-    *max = cap_ltr_count.max;
-    *step_size = cap_ltr_count.step_size;
-    DEBUG_PRINT_HIGH("LTR Capability: min=%x, max=%d, step_size=%d",
-      *min, *max, *step_size);
-  }
-  return true;
+    struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    venc_range  cap_ltr_count;
+    ioctl_msg.in = NULL;
+    ioctl_msg.out = (void*)&cap_ltr_count;
+
+    if (ioctl (m_nDriver_fd, VEN_IOCTL_GET_CAPABILITY_LTRCOUNT,
+                (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("ERROR: Get LTR Capability failed");
+        return false;
+    } else {
+        *min = cap_ltr_count.min;
+        *max = cap_ltr_count.max;
+        *step_size = cap_ltr_count.step_size;
+        DEBUG_PRINT_HIGH("LTR Capability: min=%x, max=%d, step_size=%d",
+                *min, *max, *step_size);
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_get_buf_req(unsigned long *min_buff_count,
-                                unsigned long *actual_buff_count,
-                                unsigned long *buff_size,
-                                unsigned long port)
+        unsigned long *actual_buff_count,
+        unsigned long *buff_size,
+        unsigned long port)
 {
-  struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
 
-  if(port == 0)
-  {
-    ioctl_msg.in = NULL;
-    ioctl_msg.out = (void*)&m_sInput_buff_property;
-    if(ioctl (m_nDriver_fd,VEN_IOCTL_GET_INPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: Request for getting i/p buffer requirement failed");
-      return false;
-    }
-    *min_buff_count = m_sInput_buff_property.mincount;
-    *actual_buff_count = m_sInput_buff_property.actualcount;
+    if (port == 0) {
+        ioctl_msg.in = NULL;
+        ioctl_msg.out = (void*)&m_sInput_buff_property;
+
+        if (ioctl (m_nDriver_fd,VEN_IOCTL_GET_INPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0) {
+            DEBUG_PRINT_ERROR("\nERROR: Request for getting i/p buffer requirement failed");
+            return false;
+        }
+
+        *min_buff_count = m_sInput_buff_property.mincount;
+        *actual_buff_count = m_sInput_buff_property.actualcount;
 #ifdef USE_ION
-    // For ION memory allocations of the allocated buffer size
-    // must be 4k aligned, hence aligning the input buffer
-    // size to 4k.
-    m_sInput_buff_property.datasize = (m_sInput_buff_property.datasize + 4095)
-                                       & (~4095);
+        // For ION memory allocations of the allocated buffer size
+        // must be 4k aligned, hence aligning the input buffer
+        // size to 4k.
+        m_sInput_buff_property.datasize = (m_sInput_buff_property.datasize + 4095)
+            & (~4095);
 #endif
-    *buff_size = m_sInput_buff_property.datasize;
-  }
-  else
-  {
-    ioctl_msg.in = NULL;
-    ioctl_msg.out = (void*)&m_sOutput_buff_property;
-    if(ioctl (m_nDriver_fd,VEN_IOCTL_GET_OUTPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: Request for getting o/p buffer requirement failed");
-      return false;
-    }
-    *min_buff_count = m_sOutput_buff_property.mincount;
-    *actual_buff_count = m_sOutput_buff_property.actualcount;
-    *buff_size = m_sOutput_buff_property.datasize;
-  }
+        *buff_size = m_sInput_buff_property.datasize;
+    } else {
+        ioctl_msg.in = NULL;
+        ioctl_msg.out = (void*)&m_sOutput_buff_property;
 
-  return true;
+        if (ioctl (m_nDriver_fd,VEN_IOCTL_GET_OUTPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0) {
+            DEBUG_PRINT_ERROR("\nERROR: Request for getting o/p buffer requirement failed");
+            return false;
+        }
+
+        *min_buff_count = m_sOutput_buff_property.mincount;
+        *actual_buff_count = m_sOutput_buff_property.actualcount;
+        *buff_size = m_sOutput_buff_property.datasize;
+    }
+
+    return true;
 
 }
 
 bool venc_dev::venc_set_param(void *paramData,OMX_INDEXTYPE index )
 {
-  venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  DEBUG_PRINT_LOW("venc_set_param:: venc-720p\n");
-  switch(index)
-  {
-  case OMX_IndexParamPortDefinition:
-    {
-      OMX_PARAM_PORTDEFINITIONTYPE *portDefn;
-      portDefn = (OMX_PARAM_PORTDEFINITIONTYPE *) paramData;
-      DEBUG_PRINT_HIGH("venc_set_param: OMX_IndexParamPortDefinition");
-      if(portDefn->nPortIndex == PORT_INDEX_IN)
-      {
+    venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    DEBUG_PRINT_LOW("venc_set_param:: venc-720p\n");
 
-        if(!venc_set_encode_framerate(portDefn->format.video.xFramerate, 0))
-        {
-          return false;
-        }
+    switch (index) {
+        case OMX_IndexParamPortDefinition:
+            {
+                OMX_PARAM_PORTDEFINITIONTYPE *portDefn;
+                portDefn = (OMX_PARAM_PORTDEFINITIONTYPE *) paramData;
+                DEBUG_PRINT_HIGH("venc_set_param: OMX_IndexParamPortDefinition");
 
-        if(!venc_set_color_format(portDefn->format.video.eColorFormat))
-        {
-          return false;
-        }
+                if (portDefn->nPortIndex == PORT_INDEX_IN) {
 
-        DEBUG_PRINT_LOW("Basic parameter has changed");
-        m_sVenc_cfg.input_height = portDefn->format.video.nFrameHeight;
-        m_sVenc_cfg.input_width = portDefn->format.video.nFrameWidth;
+                    if (!venc_set_encode_framerate(portDefn->format.video.xFramerate, 0)) {
+                        return false;
+                    }
 
-        ioctl_msg.in = (void*)&m_sVenc_cfg;
-        ioctl_msg.out = NULL;
-        if(ioctl (m_nDriver_fd,VEN_IOCTL_SET_BASE_CFG,(void*)&ioctl_msg) < 0) {
-            DEBUG_PRINT_ERROR("\nERROR: Request for setting base config failed");
-            return false;
-        }
-        DEBUG_PRINT_HIGH("WxH (%dx%d), codec (%d), fps(nr/dr) (%d/%d), bitrate (%d), "
-            "color_format (%d)", m_sVenc_cfg.input_width, m_sVenc_cfg.input_height,
-            m_sVenc_cfg.codectype, m_sVenc_cfg.fps_num, m_sVenc_cfg.fps_den,
-            m_sVenc_cfg.targetbitrate, m_sVenc_cfg.inputformat);
+                    if (!venc_set_color_format(portDefn->format.video.eColorFormat)) {
+                        return false;
+                    }
 
-        DEBUG_PRINT_LOW("Updating the buffer count/size for the new resolution");
-        ioctl_msg.in = NULL;
-        ioctl_msg.out = (void*)&m_sInput_buff_property;
-        if(ioctl (m_nDriver_fd, VEN_IOCTL_GET_INPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0) {
-            DEBUG_PRINT_ERROR("\nERROR: Request for getting i/p bufreq failed");
-            return false;
-        }
-        DEBUG_PRINT_HIGH("Got updated m_sInput_buff_property values: "
-                        "datasize = %u, maxcount = %u, actualcnt = %u, "
-                        "mincount = %u", m_sInput_buff_property.datasize,
-                        m_sInput_buff_property.maxcount, m_sInput_buff_property.actualcount,
-                        m_sInput_buff_property.mincount);
+                    DEBUG_PRINT_LOW("Basic parameter has changed");
+                    m_sVenc_cfg.input_height = portDefn->format.video.nFrameHeight;
+                    m_sVenc_cfg.input_width = portDefn->format.video.nFrameWidth;
 
-        ioctl_msg.in = NULL;
-        ioctl_msg.out = (void*)&m_sOutput_buff_property;
-        if(ioctl (m_nDriver_fd, VEN_IOCTL_GET_OUTPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0) {
-            DEBUG_PRINT_ERROR("\nERROR: Request for getting o/p bufreq failed");
-            return false;
-        }
+                    ioctl_msg.in = (void*)&m_sVenc_cfg;
+                    ioctl_msg.out = NULL;
 
-        DEBUG_PRINT_HIGH("Got updated m_sOutput_buff_property values: "
-                        "datasize = %u, maxcount = %u, actualcnt = %u, "
-                        "mincount = %u", m_sOutput_buff_property.datasize,
-                        m_sOutput_buff_property.maxcount, m_sOutput_buff_property.actualcount,
-                        m_sOutput_buff_property.mincount);
-        ioctl_msg.in = (void*)&m_sOutput_buff_property;
-        ioctl_msg.out = NULL;
+                    if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_BASE_CFG,(void*)&ioctl_msg) < 0) {
+                        DEBUG_PRINT_ERROR("\nERROR: Request for setting base config failed");
+                        return false;
+                    }
 
-        if(ioctl (m_nDriver_fd, VEN_IOCTL_SET_OUTPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0) {
-            DEBUG_PRINT_ERROR("\nERROR: Request for setting o/p bufreq failed");
-            return false;
-        }
+                    DEBUG_PRINT_HIGH("WxH (%dx%d), codec (%d), fps(nr/dr) (%d/%d), bitrate (%d), "
+                            "color_format (%d)", m_sVenc_cfg.input_width, m_sVenc_cfg.input_height,
+                            m_sVenc_cfg.codectype, m_sVenc_cfg.fps_num, m_sVenc_cfg.fps_den,
+                            m_sVenc_cfg.targetbitrate, m_sVenc_cfg.inputformat);
 
-        if((portDefn->nBufferCountActual >= m_sInput_buff_property.mincount) &&
-           (portDefn->nBufferCountActual <= m_sInput_buff_property.maxcount)) {
-            m_sInput_buff_property.actualcount = portDefn->nBufferCountActual;
-            ioctl_msg.in = (void*)&m_sInput_buff_property;
-            ioctl_msg.out = NULL;
-            if(ioctl(m_nDriver_fd,VEN_IOCTL_SET_INPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0) {
-              DEBUG_PRINT_ERROR("\nERROR: Request for setting i/p buffer requirements failed");
-              return false;
+                    DEBUG_PRINT_LOW("Updating the buffer count/size for the new resolution");
+                    ioctl_msg.in = NULL;
+                    ioctl_msg.out = (void*)&m_sInput_buff_property;
+
+                    if (ioctl (m_nDriver_fd, VEN_IOCTL_GET_INPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0) {
+                        DEBUG_PRINT_ERROR("\nERROR: Request for getting i/p bufreq failed");
+                        return false;
+                    }
+
+                    DEBUG_PRINT_HIGH("Got updated m_sInput_buff_property values: "
+                            "datasize = %u, maxcount = %u, actualcnt = %u, "
+                            "mincount = %u", m_sInput_buff_property.datasize,
+                            m_sInput_buff_property.maxcount, m_sInput_buff_property.actualcount,
+                            m_sInput_buff_property.mincount);
+
+                    ioctl_msg.in = NULL;
+                    ioctl_msg.out = (void*)&m_sOutput_buff_property;
+
+                    if (ioctl (m_nDriver_fd, VEN_IOCTL_GET_OUTPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0) {
+                        DEBUG_PRINT_ERROR("\nERROR: Request for getting o/p bufreq failed");
+                        return false;
+                    }
+
+                    DEBUG_PRINT_HIGH("Got updated m_sOutput_buff_property values: "
+                            "datasize = %u, maxcount = %u, actualcnt = %u, "
+                            "mincount = %u", m_sOutput_buff_property.datasize,
+                            m_sOutput_buff_property.maxcount, m_sOutput_buff_property.actualcount,
+                            m_sOutput_buff_property.mincount);
+                    ioctl_msg.in = (void*)&m_sOutput_buff_property;
+                    ioctl_msg.out = NULL;
+
+                    if (ioctl (m_nDriver_fd, VEN_IOCTL_SET_OUTPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0) {
+                        DEBUG_PRINT_ERROR("\nERROR: Request for setting o/p bufreq failed");
+                        return false;
+                    }
+
+                    if ((portDefn->nBufferCountActual >= m_sInput_buff_property.mincount) &&
+                            (portDefn->nBufferCountActual <= m_sInput_buff_property.maxcount)) {
+                        m_sInput_buff_property.actualcount = portDefn->nBufferCountActual;
+                        ioctl_msg.in = (void*)&m_sInput_buff_property;
+                        ioctl_msg.out = NULL;
+
+                        if (ioctl(m_nDriver_fd,VEN_IOCTL_SET_INPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0) {
+                            DEBUG_PRINT_ERROR("\nERROR: Request for setting i/p buffer requirements failed");
+                            return false;
+                        }
+                    }
+
+                    if (m_sInput_buff_property.datasize != portDefn->nBufferSize) {
+                        DEBUG_PRINT_ERROR("\nWARNING: Requested i/p bufsize[%u],"
+                                "Driver's updated i/p bufsize = %u", portDefn->nBufferSize,
+                                m_sInput_buff_property.datasize);
+                    }
+
+                    m_level_set = false;
+
+                    if (venc_set_profile_level(0, 0)) {
+                        DEBUG_PRINT_LOW("%s(): Profile/Level setting success", __func__);
+                    }
+                } else if (portDefn->nPortIndex == PORT_INDEX_OUT) {
+                    if (!venc_set_target_bitrate(portDefn->format.video.nBitrate, 0)) {
+                        return false;
+                    }
+
+                    if ( (portDefn->nBufferCountActual >= m_sOutput_buff_property.mincount)
+                            &&
+                            (m_sOutput_buff_property.maxcount >= portDefn->nBufferCountActual)
+                            &&
+                            (m_sOutput_buff_property.datasize == portDefn->nBufferSize)
+                       ) {
+                        m_sOutput_buff_property.actualcount = portDefn->nBufferCountActual;
+                        ioctl_msg.in = (void*)&m_sOutput_buff_property;
+                        ioctl_msg.out = NULL;
+
+                        if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_OUTPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0) {
+                            DEBUG_PRINT_ERROR("\nERROR: ioctl VEN_IOCTL_SET_OUTPUT_BUFFER_REQ failed");
+                            return false;
+                        }
+                    } else {
+                        DEBUG_PRINT_ERROR("\nERROR: Setting Output buffer requirements failed");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamPortDefinition");
+                }
+
+                break;
             }
-        }
-        if(m_sInput_buff_property.datasize != portDefn->nBufferSize) {
-            DEBUG_PRINT_ERROR("\nWARNING: Requested i/p bufsize[%u],"
-                              "Driver's updated i/p bufsize = %u", portDefn->nBufferSize,
-                              m_sInput_buff_property.datasize);
-        }
-        m_level_set = false;
-        if(venc_set_profile_level(0, 0)) {
-          DEBUG_PRINT_LOW("%s(): Profile/Level setting success", __func__);
-        }
-      }
-      else if(portDefn->nPortIndex == PORT_INDEX_OUT)
-      {
-        if(!venc_set_target_bitrate(portDefn->format.video.nBitrate, 0))
-        {
-          return false;
-        }
+        case OMX_IndexParamVideoPortFormat:
+            {
+                OMX_VIDEO_PARAM_PORTFORMATTYPE *portFmt;
+                portFmt =(OMX_VIDEO_PARAM_PORTFORMATTYPE *)paramData;
+                DEBUG_PRINT_LOW("venc_set_param: OMX_IndexParamVideoPortFormat\n");
 
-        if( (portDefn->nBufferCountActual >= m_sOutput_buff_property.mincount)
-            &&
-            (m_sOutput_buff_property.maxcount >= portDefn->nBufferCountActual)
-            &&
-            (m_sOutput_buff_property.datasize == portDefn->nBufferSize)
-          )
-        {
-          m_sOutput_buff_property.actualcount = portDefn->nBufferCountActual;
-          ioctl_msg.in = (void*)&m_sOutput_buff_property;
-          ioctl_msg.out = NULL;
-          if(ioctl (m_nDriver_fd,VEN_IOCTL_SET_OUTPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0)
-          {
-            DEBUG_PRINT_ERROR("\nERROR: ioctl VEN_IOCTL_SET_OUTPUT_BUFFER_REQ failed");
-            return false;
-          }
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Setting Output buffer requirements failed");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamPortDefinition");
-      }
-      break;
-    }
-  case OMX_IndexParamVideoPortFormat:
-    {
-      OMX_VIDEO_PARAM_PORTFORMATTYPE *portFmt;
-      portFmt =(OMX_VIDEO_PARAM_PORTFORMATTYPE *)paramData;
-      DEBUG_PRINT_LOW("venc_set_param: OMX_IndexParamVideoPortFormat\n");
+                if (portFmt->nPortIndex == (OMX_U32) PORT_INDEX_IN) {
+                    if (!venc_set_color_format(portFmt->eColorFormat)) {
+                        return false;
+                    }
+                } else if (portFmt->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    if (!venc_set_encode_framerate(portFmt->xFramerate, 0)) {
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoPortFormat");
+                }
 
-      if(portFmt->nPortIndex == (OMX_U32) PORT_INDEX_IN)
-      {
-        if(!venc_set_color_format(portFmt->eColorFormat))
-        {
-          return false;
-        }
-      }
-      else if(portFmt->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        if(!venc_set_encode_framerate(portFmt->xFramerate, 0))
-        {
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoPortFormat");
-      }
-      break;
-    }
-  case OMX_IndexParamVideoBitrate:
-    {
-      OMX_VIDEO_PARAM_BITRATETYPE* pParam;
-      pParam = (OMX_VIDEO_PARAM_BITRATETYPE*)paramData;
-      DEBUG_PRINT_LOW("venc_set_param: OMX_IndexParamVideoBitrate\n");
+                break;
+            }
+        case OMX_IndexParamVideoBitrate:
+            {
+                OMX_VIDEO_PARAM_BITRATETYPE* pParam;
+                pParam = (OMX_VIDEO_PARAM_BITRATETYPE*)paramData;
+                DEBUG_PRINT_LOW("venc_set_param: OMX_IndexParamVideoBitrate\n");
 
-      if(pParam->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        if(!venc_set_target_bitrate(pParam->nTargetBitrate, 0))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Target Bit Rate setting failed");
-          return false;
-        }
-        if(!venc_set_ratectrl_cfg(pParam->eControlRate))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Rate Control setting failed");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoBitrate");
-      }
-      break;
-    }
-  case OMX_IndexParamVideoMpeg4:
-    {
-      OMX_VIDEO_PARAM_MPEG4TYPE* pParam;
-      OMX_U32 bFrames = 0;
+                if (pParam->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    if (!venc_set_target_bitrate(pParam->nTargetBitrate, 0)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Target Bit Rate setting failed");
+                        return false;
+                    }
 
-      pParam = (OMX_VIDEO_PARAM_MPEG4TYPE*)paramData;
-      DEBUG_PRINT_LOW("venc_set_param: OMX_IndexParamVideoMpeg4\n");
-      if(pParam->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        if(!venc_set_voptiming_cfg(pParam->nTimeIncRes))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Request for setting vop_timing failed");
-          return false;
-        }
-        m_profile_set = false;
-        m_level_set = false;
-        if(!venc_set_profile_level (pParam->eProfile, pParam->eLevel))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Unsuccessful in updating Profile and level");
-          return false;
-        }
+                    if (!venc_set_ratectrl_cfg(pParam->eControlRate)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Rate Control setting failed");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoBitrate");
+                }
+
+                break;
+            }
+        case OMX_IndexParamVideoMpeg4:
+            {
+                OMX_VIDEO_PARAM_MPEG4TYPE* pParam;
+                OMX_U32 bFrames = 0;
+
+                pParam = (OMX_VIDEO_PARAM_MPEG4TYPE*)paramData;
+                DEBUG_PRINT_LOW("venc_set_param: OMX_IndexParamVideoMpeg4\n");
+
+                if (pParam->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    if (!venc_set_voptiming_cfg(pParam->nTimeIncRes)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Request for setting vop_timing failed");
+                        return false;
+                    }
+
+                    m_profile_set = false;
+                    m_level_set = false;
+
+                    if (!venc_set_profile_level (pParam->eProfile, pParam->eLevel)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Unsuccessful in updating Profile and level");
+                        return false;
+                    }
+
 #ifdef MAX_RES_1080P
-        else {
-          if(pParam->eProfile == OMX_VIDEO_MPEG4ProfileAdvancedSimple)
-          {
-            if(pParam->nBFrames)
-            {
-              DEBUG_PRINT_HIGH("INFO: Only 1 Bframe is supported");
-              bFrames = 1;
-            }
-          }
-        else
-          {
-            if(pParam->nBFrames)
-            {
-              DEBUG_PRINT_ERROR("Warning: B frames not supported\n");
-              bFrames = 0;
-            }
-          }
-        }
+                    else {
+                        if (pParam->eProfile == OMX_VIDEO_MPEG4ProfileAdvancedSimple) {
+                            if (pParam->nBFrames) {
+                                DEBUG_PRINT_HIGH("INFO: Only 1 Bframe is supported");
+                                bFrames = 1;
+                            }
+                        } else {
+                            if (pParam->nBFrames) {
+                                DEBUG_PRINT_ERROR("Warning: B frames not supported\n");
+                                bFrames = 0;
+                            }
+                        }
+                    }
+
 #endif
-        if(!venc_set_intra_period (pParam->nPFrames,bFrames))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Request for setting intra period failed");
-          return false;
-        }
-        if(!venc_set_multislice_cfg(OMX_IndexParamVideoMpeg4,pParam->nSliceHeaderSpacing))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Unsuccessful in updating slice_config");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoMpeg4");
-      }
-      break;
-    }
-  case OMX_IndexParamVideoH263:
-    {
-      OMX_VIDEO_PARAM_H263TYPE* pParam = (OMX_VIDEO_PARAM_H263TYPE*)paramData;
-      DEBUG_PRINT_LOW("venc_set_param: OMX_IndexParamVideoH263\n");
-      OMX_U32 bFrames = 0;
-      if(pParam->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        m_profile_set = false;
-        m_level_set = false;
-        if(!venc_set_profile_level (pParam->eProfile, pParam->eLevel))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Unsuccessful in updating Profile and level");
-          return false;
-        }
-        if (pParam->nBFrames)
-          DEBUG_PRINT_ERROR("\nWARNING: B frame not supported for H.263");
 
-        if(venc_set_intra_period (pParam->nPFrames, bFrames) == false)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Request for setting intra period failed");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoH263");
-      }
-      break;
-    }
-  case OMX_IndexParamVideoAvc:
-    {
-      DEBUG_PRINT_LOW("venc_set_param:OMX_IndexParamVideoAvc\n");
-      OMX_VIDEO_PARAM_AVCTYPE* pParam = (OMX_VIDEO_PARAM_AVCTYPE*)paramData;
-      OMX_U32 bFrames = 0;
+                    if (!venc_set_intra_period (pParam->nPFrames,bFrames)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Request for setting intra period failed");
+                        return false;
+                    }
 
-      if(pParam->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        DEBUG_PRINT_LOW("pParam->eProfile :%d ,pParam->eLevel %d\n",
-            pParam->eProfile,pParam->eLevel);
+                    if (!venc_set_multislice_cfg(OMX_IndexParamVideoMpeg4,pParam->nSliceHeaderSpacing)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Unsuccessful in updating slice_config");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoMpeg4");
+                }
 
-        m_profile_set = false;
-        m_level_set = false;
+                break;
+            }
+        case OMX_IndexParamVideoH263:
+            {
+                OMX_VIDEO_PARAM_H263TYPE* pParam = (OMX_VIDEO_PARAM_H263TYPE*)paramData;
+                DEBUG_PRINT_LOW("venc_set_param: OMX_IndexParamVideoH263\n");
+                OMX_U32 bFrames = 0;
 
-        if(!venc_set_profile_level (pParam->eProfile,pParam->eLevel))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Unsuccessful in updating Profile and level %d, %d",
-                            pParam->eProfile, pParam->eLevel);
-          return false;
-        }
+                if (pParam->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    m_profile_set = false;
+                    m_level_set = false;
+
+                    if (!venc_set_profile_level (pParam->eProfile, pParam->eLevel)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Unsuccessful in updating Profile and level");
+                        return false;
+                    }
+
+                    if (pParam->nBFrames)
+                        DEBUG_PRINT_ERROR("\nWARNING: B frame not supported for H.263");
+
+                    if (venc_set_intra_period (pParam->nPFrames, bFrames) == false) {
+                        DEBUG_PRINT_ERROR("\nERROR: Request for setting intra period failed");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoH263");
+                }
+
+                break;
+            }
+        case OMX_IndexParamVideoAvc:
+            {
+                DEBUG_PRINT_LOW("venc_set_param:OMX_IndexParamVideoAvc\n");
+                OMX_VIDEO_PARAM_AVCTYPE* pParam = (OMX_VIDEO_PARAM_AVCTYPE*)paramData;
+                OMX_U32 bFrames = 0;
+
+                if (pParam->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    DEBUG_PRINT_LOW("pParam->eProfile :%d ,pParam->eLevel %d\n",
+                            pParam->eProfile,pParam->eLevel);
+
+                    m_profile_set = false;
+                    m_level_set = false;
+
+                    if (!venc_set_profile_level (pParam->eProfile,pParam->eLevel)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Unsuccessful in updating Profile and level %d, %d",
+                                pParam->eProfile, pParam->eLevel);
+                        return false;
+                    }
+
 #ifdef MAX_RES_1080P
-        else {
-          if(pParam->eProfile != OMX_VIDEO_AVCProfileBaseline)
-          {
-            if(pParam->nBFrames)
-            {
-              DEBUG_PRINT_HIGH("INFO: Only 1 Bframe is supported");
-              bFrames = 1;
-            }
-          }
-        else
-          {
-            if(pParam->nBFrames)
-            {
-              DEBUG_PRINT_ERROR("Warning: B frames not supported\n");
-              bFrames = 0;
-            }
-          }
-        }
+                    else {
+                        if (pParam->eProfile != OMX_VIDEO_AVCProfileBaseline) {
+                            if (pParam->nBFrames) {
+                                DEBUG_PRINT_HIGH("INFO: Only 1 Bframe is supported");
+                                bFrames = 1;
+                            }
+                        } else {
+                            if (pParam->nBFrames) {
+                                DEBUG_PRINT_ERROR("Warning: B frames not supported\n");
+                                bFrames = 0;
+                            }
+                        }
+                    }
+
 #endif
-        if(!venc_set_intra_period (pParam->nPFrames, bFrames))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Request for setting intra period failed");
-          return false;
-        }
-        if(!venc_set_entropy_config (pParam->bEntropyCodingCABAC, pParam->nCabacInitIdc))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Request for setting Entropy failed");
-          return false;
-        }
-        if(!venc_set_inloop_filter (pParam->eLoopFilterMode))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Request for setting Inloop filter failed");
-          return false;
-        }
-        if(!venc_set_multislice_cfg(OMX_IndexParamVideoAvc, pParam->nSliceHeaderSpacing))
-        {
-          DEBUG_PRINT_ERROR("\nWARNING: Unsuccessful in updating slice_config");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoAvc");
-      }
-      //TBD, lot of other variables to be updated, yet to decide
-      break;
-    }
-  case OMX_IndexParamVideoIntraRefresh:
-    {
-      DEBUG_PRINT_LOW("venc_set_param:OMX_IndexParamVideoIntraRefresh\n");
-      OMX_VIDEO_PARAM_INTRAREFRESHTYPE *intra_refresh =
-        (OMX_VIDEO_PARAM_INTRAREFRESHTYPE *)paramData;
-      if(intra_refresh->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        if(venc_set_intra_refresh(intra_refresh->eRefreshMode, intra_refresh->nCirMBs) == false)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Setting Intra refresh failed");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoIntraRefresh");
-      }
-      break;
-    }
-  case OMX_IndexParamVideoErrorCorrection:
-    {
-      DEBUG_PRINT_LOW("venc_set_param:OMX_IndexParamVideoErrorCorrection\n");
-      OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE *error_resilience =
-        (OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE *)paramData;
-      if(error_resilience->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        if(venc_set_error_resilience(error_resilience) == false)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Setting Intra refresh failed");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoErrorCorrection");
-      }
-      break;
-    }
-  case OMX_IndexParamVideoProfileLevelCurrent:
-    {
-      DEBUG_PRINT_LOW("venc_set_param:OMX_IndexParamVideoProfileLevelCurrent\n");
-      OMX_VIDEO_PARAM_PROFILELEVELTYPE *profile_level =
-      (OMX_VIDEO_PARAM_PROFILELEVELTYPE *)paramData;
-      if(profile_level->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        m_profile_set = false;
-        m_level_set = false;
-        if(!venc_set_profile_level (profile_level->eProfile,
-                                   profile_level->eLevel))
-        {
-          DEBUG_PRINT_ERROR("\nWARNING: Unsuccessful in updating Profile and level");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoProfileLevelCurrent");
-      }
-      break;
-    }
-  case OMX_IndexParamVideoQuantization:
-    {
-      DEBUG_PRINT_LOW("venc_set_param:OMX_IndexParamVideoQuantization\n");
-      OMX_VIDEO_PARAM_QUANTIZATIONTYPE *session_qp =
-        (OMX_VIDEO_PARAM_QUANTIZATIONTYPE *)paramData;
-      if(session_qp->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        if(venc_set_session_qp (session_qp->nQpI,
-                                session_qp->nQpP) == false)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Setting Session QP failed");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoQuantization");
-      }
-      break;
+
+                    if (!venc_set_intra_period (pParam->nPFrames, bFrames)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Request for setting intra period failed");
+                        return false;
+                    }
+
+                    if (!venc_set_entropy_config (pParam->bEntropyCodingCABAC, pParam->nCabacInitIdc)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Request for setting Entropy failed");
+                        return false;
+                    }
+
+                    if (!venc_set_inloop_filter (pParam->eLoopFilterMode)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Request for setting Inloop filter failed");
+                        return false;
+                    }
+
+                    if (!venc_set_multislice_cfg(OMX_IndexParamVideoAvc, pParam->nSliceHeaderSpacing)) {
+                        DEBUG_PRINT_ERROR("\nWARNING: Unsuccessful in updating slice_config");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoAvc");
+                }
+
+                //TBD, lot of other variables to be updated, yet to decide
+                break;
+            }
+        case OMX_IndexParamVideoIntraRefresh:
+            {
+                DEBUG_PRINT_LOW("venc_set_param:OMX_IndexParamVideoIntraRefresh\n");
+                OMX_VIDEO_PARAM_INTRAREFRESHTYPE *intra_refresh =
+                    (OMX_VIDEO_PARAM_INTRAREFRESHTYPE *)paramData;
+
+                if (intra_refresh->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    if (venc_set_intra_refresh(intra_refresh->eRefreshMode, intra_refresh->nCirMBs) == false) {
+                        DEBUG_PRINT_ERROR("\nERROR: Setting Intra refresh failed");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoIntraRefresh");
+                }
+
+                break;
+            }
+        case OMX_IndexParamVideoErrorCorrection:
+            {
+                DEBUG_PRINT_LOW("venc_set_param:OMX_IndexParamVideoErrorCorrection\n");
+                OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE *error_resilience =
+                    (OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE *)paramData;
+
+                if (error_resilience->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    if (venc_set_error_resilience(error_resilience) == false) {
+                        DEBUG_PRINT_ERROR("\nERROR: Setting Intra refresh failed");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoErrorCorrection");
+                }
+
+                break;
+            }
+        case OMX_IndexParamVideoProfileLevelCurrent:
+            {
+                DEBUG_PRINT_LOW("venc_set_param:OMX_IndexParamVideoProfileLevelCurrent\n");
+                OMX_VIDEO_PARAM_PROFILELEVELTYPE *profile_level =
+                    (OMX_VIDEO_PARAM_PROFILELEVELTYPE *)paramData;
+
+                if (profile_level->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    m_profile_set = false;
+                    m_level_set = false;
+
+                    if (!venc_set_profile_level (profile_level->eProfile,
+                                profile_level->eLevel)) {
+                        DEBUG_PRINT_ERROR("\nWARNING: Unsuccessful in updating Profile and level");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoProfileLevelCurrent");
+                }
+
+                break;
+            }
+        case OMX_IndexParamVideoQuantization:
+            {
+                DEBUG_PRINT_LOW("venc_set_param:OMX_IndexParamVideoQuantization\n");
+                OMX_VIDEO_PARAM_QUANTIZATIONTYPE *session_qp =
+                    (OMX_VIDEO_PARAM_QUANTIZATIONTYPE *)paramData;
+
+                if (session_qp->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    if (venc_set_session_qp (session_qp->nQpI,
+                                session_qp->nQpP) == false) {
+                        DEBUG_PRINT_ERROR("\nERROR: Setting Session QP failed");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoQuantization");
+                }
+
+                break;
+            }
+
+        case OMX_QcomIndexParamVideoQPRange:
+            {
+                DEBUG_PRINT_LOW("venc_set_param:OMX_QcomIndexParamVideoQPRange\n");
+                OMX_QCOM_VIDEO_PARAM_QPRANGETYPE *qp_range =
+                    (OMX_QCOM_VIDEO_PARAM_QPRANGETYPE *)paramData;
+
+                if (qp_range->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    if (venc_set_qp_range (qp_range->minQP,
+                                qp_range->maxQP) == false) {
+                        DEBUG_PRINT_ERROR("\nERROR: Setting QP Range failed");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_QcomIndexParamVideoQPRange");
+                }
+
+                break;
+            }
+
+        case OMX_ExtraDataVideoEncoderSliceInfo:
+            {
+                DEBUG_PRINT_LOW("venc_set_param: OMX_ExtraDataVideoEncoderSliceInfo");
+                OMX_U32 extra_data = *(OMX_U32 *)paramData;
+
+                if (venc_set_extradata(extra_data) == false) {
+                    DEBUG_PRINT_ERROR("ERROR: Setting "
+                            "OMX_ExtraDataVideoEncoderSliceInfo failed");
+                    return false;
+                }
+
+                break;
+            }
+        case OMX_ExtraDataVideoLTRInfo:
+            {
+                DEBUG_PRINT_LOW("venc_set_param: OMX_ExtraDataVideoLTRInfo");
+                OMX_U32 extra_data = *(OMX_U32 *)paramData;
+
+                if (venc_set_extradata(extra_data) == false) {
+                    DEBUG_PRINT_ERROR("ERROR: Setting "
+                            "OMX_ExtraDataVideoLTRInfo failed");
+                    return false;
+                }
+
+                break;
+            }
+        case OMX_QcomIndexEnableSliceDeliveryMode:
+            {
+                QOMX_EXTNINDEX_PARAMTYPE* pParam =
+                    (QOMX_EXTNINDEX_PARAMTYPE*)paramData;
+
+                if (pParam->nPortIndex == PORT_INDEX_OUT) {
+                    if (venc_set_slice_delivery_mode(pParam->bEnable) == false) {
+                        DEBUG_PRINT_ERROR("Setting slice delivery mode failed");
+                        return OMX_ErrorUnsupportedSetting;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("OMX_QcomIndexEnableSliceDeliveryMode "
+                            "called on wrong port(%d)", pParam->nPortIndex);
+                    return OMX_ErrorBadPortIndex;
+                }
+
+                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 QOMX_IndexParamVideoLTRMode:
+            {
+                QOMX_VIDEO_PARAM_LTRMODE_TYPE* pParam =
+                    (QOMX_VIDEO_PARAM_LTRMODE_TYPE*)paramData;
+
+                if (pParam->nPortIndex == PORT_INDEX_OUT) {
+                    if (!venc_set_ltrmode(pParam->eLTRMode)) {
+                        DEBUG_PRINT_ERROR("Setting ltr mode failed");
+                        return OMX_ErrorUnsupportedSetting;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("QOMX_IndexParamVideoLTRMode "
+                            "called on wrong port(%d)", pParam->nPortIndex);
+                    return OMX_ErrorBadPortIndex;
+                }
+
+                break;
+            }
+        case QOMX_IndexParamVideoLTRCount:
+            {
+                QOMX_VIDEO_PARAM_LTRCOUNT_TYPE* pParam =
+                    (QOMX_VIDEO_PARAM_LTRCOUNT_TYPE*)paramData;
+
+                if (pParam->nPortIndex == PORT_INDEX_OUT) {
+                    if (!venc_set_ltrcount(pParam->nCount)) {
+                        DEBUG_PRINT_ERROR("Setting ltr count failed");
+                        return OMX_ErrorUnsupportedSetting;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("QOMX_IndexParamVideoLTRCount "
+                            "called on wrong port(%d)", pParam->nPortIndex);
+                    return OMX_ErrorBadPortIndex;
+                }
+
+                break;
+            }
+        case OMX_IndexParamVideoSliceFMO:
+        default:
+            DEBUG_PRINT_ERROR("venc_set_param: Unsupported index 0x%x", index);
+            break;
     }
 
-  case OMX_QcomIndexParamVideoQPRange:
-    {
-      DEBUG_PRINT_LOW("venc_set_param:OMX_QcomIndexParamVideoQPRange\n");
-      OMX_QCOM_VIDEO_PARAM_QPRANGETYPE *qp_range =
-        (OMX_QCOM_VIDEO_PARAM_QPRANGETYPE *)paramData;
-      if(qp_range->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        if(venc_set_qp_range (qp_range->minQP,
-                                qp_range->maxQP) == false)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Setting QP Range failed");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_QcomIndexParamVideoQPRange");
-      }
-      break;
-    }
-
-  case OMX_ExtraDataVideoEncoderSliceInfo:
-    {
-      DEBUG_PRINT_LOW("venc_set_param: OMX_ExtraDataVideoEncoderSliceInfo");
-      OMX_U32 extra_data = *(OMX_U32 *)paramData;
-      if(venc_set_extradata(extra_data) == false)
-      {
-         DEBUG_PRINT_ERROR("ERROR: Setting "
-            "OMX_ExtraDataVideoEncoderSliceInfo failed");
-         return false;
-      }
-      break;
-    }
-  case OMX_ExtraDataVideoLTRInfo:
-    {
-      DEBUG_PRINT_LOW("venc_set_param: OMX_ExtraDataVideoLTRInfo");
-      OMX_U32 extra_data = *(OMX_U32 *)paramData;
-      if(venc_set_extradata(extra_data) == false)
-      {
-         DEBUG_PRINT_ERROR("ERROR: Setting "
-            "OMX_ExtraDataVideoLTRInfo failed");
-         return false;
-      }
-      break;
-    }
-  case OMX_QcomIndexEnableSliceDeliveryMode:
-    {
-       QOMX_EXTNINDEX_PARAMTYPE* pParam =
-          (QOMX_EXTNINDEX_PARAMTYPE*)paramData;
-       if(pParam->nPortIndex == PORT_INDEX_OUT)
-       {
-         if(venc_set_slice_delivery_mode(pParam->bEnable) == false)
-         {
-           DEBUG_PRINT_ERROR("Setting slice delivery mode failed");
-           return OMX_ErrorUnsupportedSetting;
-         }
-       }
-       else
-       {
-         DEBUG_PRINT_ERROR("OMX_QcomIndexEnableSliceDeliveryMode "
-            "called on wrong port(%d)", pParam->nPortIndex);
-         return OMX_ErrorBadPortIndex;
-       }
-       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 QOMX_IndexParamVideoLTRMode:
-    {
-      QOMX_VIDEO_PARAM_LTRMODE_TYPE* pParam =
-          (QOMX_VIDEO_PARAM_LTRMODE_TYPE*)paramData;
-      if(pParam->nPortIndex == PORT_INDEX_OUT)
-      {
-        if(!venc_set_ltrmode(pParam->eLTRMode))
-        {
-            DEBUG_PRINT_ERROR("Setting ltr mode failed");
-            return OMX_ErrorUnsupportedSetting;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("QOMX_IndexParamVideoLTRMode "
-            "called on wrong port(%d)", pParam->nPortIndex);
-            return OMX_ErrorBadPortIndex;
-      }
-      break;
-    }
-  case QOMX_IndexParamVideoLTRCount:
-    {
-      QOMX_VIDEO_PARAM_LTRCOUNT_TYPE* pParam =
-          (QOMX_VIDEO_PARAM_LTRCOUNT_TYPE*)paramData;
-      if(pParam->nPortIndex == PORT_INDEX_OUT)
-      {
-        if(!venc_set_ltrcount(pParam->nCount))
-        {
-            DEBUG_PRINT_ERROR("Setting ltr count failed");
-            return OMX_ErrorUnsupportedSetting;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("QOMX_IndexParamVideoLTRCount "
-            "called on wrong port(%d)", pParam->nPortIndex);
-            return OMX_ErrorBadPortIndex;
-      }
-      break;
-    }
-  case OMX_IndexParamVideoSliceFMO:
-  default:
-    DEBUG_PRINT_ERROR("venc_set_param: Unsupported index 0x%x", index);
-    break;
-  }
-
-  return true;
+    return true;
 }
 
 bool venc_dev::venc_set_config(void *configData, OMX_INDEXTYPE index)
 {
-  venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  DEBUG_PRINT_LOW("\n Inside venc_set_config");
+    venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    DEBUG_PRINT_LOW("\n Inside venc_set_config");
 
-  switch(index)
-  {
-  case OMX_IndexConfigVideoBitrate:
-    {
-      OMX_VIDEO_CONFIG_BITRATETYPE *bit_rate = (OMX_VIDEO_CONFIG_BITRATETYPE *)
-        configData;
-      if(m_max_allowed_bitrate_check &&
-         !venc_max_allowed_bitrate_check(bit_rate->nEncodeBitrate))
-      {
-        DEBUG_PRINT_ERROR("Max Allowed Bitrate Check failed");
-        return false;
-      }
-      DEBUG_PRINT_LOW("\n venc_set_config: OMX_IndexConfigVideoBitrate");
-      if(bit_rate->nPortIndex == (OMX_U32)PORT_INDEX_OUT)
-      {
-        if(venc_set_target_bitrate(bit_rate->nEncodeBitrate, 1) == false)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Setting Target Bit rate failed");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexConfigVideoBitrate");
-      }
-      break;
-    }
-  case OMX_IndexConfigVideoFramerate:
-    {
-      OMX_CONFIG_FRAMERATETYPE *frame_rate = (OMX_CONFIG_FRAMERATETYPE *)
-        configData;
-      DEBUG_PRINT_LOW("\n venc_set_config: OMX_IndexConfigVideoFramerate");
-      if(frame_rate->nPortIndex == (OMX_U32)PORT_INDEX_OUT)
-      {
-        if(venc_set_encode_framerate(frame_rate->xEncodeFramerate, 1) == false)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Setting Encode Framerate failed");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexConfigVideoFramerate");
-      }
-      break;
-    }
-  case QOMX_IndexConfigVideoIntraperiod:
-    {
-      DEBUG_PRINT_LOW("venc_set_param:QOMX_IndexConfigVideoIntraperiod\n");
-      QOMX_VIDEO_INTRAPERIODTYPE *intraperiod =
-      (QOMX_VIDEO_INTRAPERIODTYPE *)configData;
-      if(intraperiod->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        if(venc_set_intra_period(intraperiod->nPFrames, intraperiod->nBFrames) == false)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Request for setting intra period failed");
-          return false;
-        }
-      }
-      break;
-    }
-  case OMX_IndexConfigVideoIntraVOPRefresh:
-    {
-      OMX_CONFIG_INTRAREFRESHVOPTYPE *intra_vop_refresh = (OMX_CONFIG_INTRAREFRESHVOPTYPE *)
-        configData;
-      DEBUG_PRINT_LOW("\n venc_set_config: OMX_IndexConfigVideoIntraVOPRefresh");
-      if(intra_vop_refresh->nPortIndex == (OMX_U32)PORT_INDEX_OUT)
-      {
-        if(venc_set_intra_vop_refresh(intra_vop_refresh->IntraRefreshVOP) == false)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Setting Encode Framerate failed");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexConfigVideoFramerate");
-      }
-      break;
-    }
-  case OMX_IndexConfigCommonRotate:
-    {
-      OMX_CONFIG_ROTATIONTYPE *config_rotation =
-         reinterpret_cast<OMX_CONFIG_ROTATIONTYPE*>(configData);
-      venc_ioctl_msg ioctl_msg = {NULL,NULL};
-      OMX_U32 nFrameWidth;
+    switch (index) {
+        case OMX_IndexConfigVideoBitrate:
+            {
+                OMX_VIDEO_CONFIG_BITRATETYPE *bit_rate = (OMX_VIDEO_CONFIG_BITRATETYPE *)
+                    configData;
 
-      DEBUG_PRINT_HIGH("\nvenc_set_config: updating the new Dims");
-      nFrameWidth = m_sVenc_cfg.input_width;
-      m_sVenc_cfg.input_width  = m_sVenc_cfg.input_height;
-      m_sVenc_cfg.input_height = nFrameWidth;
-      ioctl_msg.in = (void*)&m_sVenc_cfg;
-      ioctl_msg.out = NULL;
-      if(ioctl (m_nDriver_fd,VEN_IOCTL_SET_BASE_CFG,(void*)&ioctl_msg) < 0) {
-          DEBUG_PRINT_ERROR("\nERROR: Dimension Change for Rotation failed");
-          return false;
-      }
-      break;
-    }
-  case QOMX_IndexConfigVideoLTRPeriod:
-    {
-      QOMX_VIDEO_CONFIG_LTRPERIOD_TYPE* pParam =
-          (QOMX_VIDEO_CONFIG_LTRPERIOD_TYPE*)configData;
-      if(pParam->nPortIndex == PORT_INDEX_OUT)
-      {
-        if(!venc_set_ltrperiod(pParam->nFrames))
-        {
-            DEBUG_PRINT_ERROR("Setting ltr period failed");
-            return OMX_ErrorUnsupportedSetting;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("QOMX_IndexConfigVideoLTRPeriod "
-            "called on wrong port(%d)", pParam->nPortIndex);
-            return OMX_ErrorBadPortIndex;
-      }
-      break;
-    }
-  case QOMX_IndexConfigVideoLTRUse:
-    {
-      QOMX_VIDEO_CONFIG_LTRUSE_TYPE* pParam =
-          (QOMX_VIDEO_CONFIG_LTRUSE_TYPE*)configData;
-      if(pParam->nPortIndex == PORT_INDEX_OUT)
-      {
-        if(!venc_set_ltruse(pParam->nID, pParam->nFrames))
-        {
-            DEBUG_PRINT_ERROR("Setting ltr use failed");
-            return OMX_ErrorUnsupportedSetting;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("QOMX_IndexConfigVideoLTRUse "
-            "called on wrong port(%d)", pParam->nPortIndex);
-            return OMX_ErrorBadPortIndex;
-      }
-      break;
-    }
-  default:
-    DEBUG_PRINT_ERROR("venc_set_config: Unsupported index = 0x%x", index);
-    break;
-  }
+                if (m_max_allowed_bitrate_check &&
+                        !venc_max_allowed_bitrate_check(bit_rate->nEncodeBitrate)) {
+                    DEBUG_PRINT_ERROR("Max Allowed Bitrate Check failed");
+                    return false;
+                }
 
-  return true;
+                DEBUG_PRINT_LOW("\n venc_set_config: OMX_IndexConfigVideoBitrate");
+
+                if (bit_rate->nPortIndex == (OMX_U32)PORT_INDEX_OUT) {
+                    if (venc_set_target_bitrate(bit_rate->nEncodeBitrate, 1) == false) {
+                        DEBUG_PRINT_ERROR("\nERROR: Setting Target Bit rate failed");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexConfigVideoBitrate");
+                }
+
+                break;
+            }
+        case OMX_IndexConfigVideoFramerate:
+            {
+                OMX_CONFIG_FRAMERATETYPE *frame_rate = (OMX_CONFIG_FRAMERATETYPE *)
+                    configData;
+                DEBUG_PRINT_LOW("\n venc_set_config: OMX_IndexConfigVideoFramerate");
+
+                if (frame_rate->nPortIndex == (OMX_U32)PORT_INDEX_OUT) {
+                    if (venc_set_encode_framerate(frame_rate->xEncodeFramerate, 1) == false) {
+                        DEBUG_PRINT_ERROR("\nERROR: Setting Encode Framerate failed");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexConfigVideoFramerate");
+                }
+
+                break;
+            }
+        case QOMX_IndexConfigVideoIntraperiod:
+            {
+                DEBUG_PRINT_LOW("venc_set_param:QOMX_IndexConfigVideoIntraperiod\n");
+                QOMX_VIDEO_INTRAPERIODTYPE *intraperiod =
+                    (QOMX_VIDEO_INTRAPERIODTYPE *)configData;
+
+                if (intraperiod->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    if (venc_set_intra_period(intraperiod->nPFrames, intraperiod->nBFrames) == false) {
+                        DEBUG_PRINT_ERROR("\nERROR: Request for setting intra period failed");
+                        return false;
+                    }
+                }
+
+                break;
+            }
+        case OMX_IndexConfigVideoIntraVOPRefresh:
+            {
+                OMX_CONFIG_INTRAREFRESHVOPTYPE *intra_vop_refresh = (OMX_CONFIG_INTRAREFRESHVOPTYPE *)
+                    configData;
+                DEBUG_PRINT_LOW("\n venc_set_config: OMX_IndexConfigVideoIntraVOPRefresh");
+
+                if (intra_vop_refresh->nPortIndex == (OMX_U32)PORT_INDEX_OUT) {
+                    if (venc_set_intra_vop_refresh(intra_vop_refresh->IntraRefreshVOP) == false) {
+                        DEBUG_PRINT_ERROR("\nERROR: Setting Encode Framerate failed");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexConfigVideoFramerate");
+                }
+
+                break;
+            }
+        case OMX_IndexConfigCommonRotate:
+            {
+                OMX_CONFIG_ROTATIONTYPE *config_rotation =
+                    reinterpret_cast<OMX_CONFIG_ROTATIONTYPE*>(configData);
+                venc_ioctl_msg ioctl_msg = {NULL,NULL};
+                OMX_U32 nFrameWidth;
+
+                DEBUG_PRINT_HIGH("\nvenc_set_config: updating the new Dims");
+                nFrameWidth = m_sVenc_cfg.input_width;
+                m_sVenc_cfg.input_width  = m_sVenc_cfg.input_height;
+                m_sVenc_cfg.input_height = nFrameWidth;
+                ioctl_msg.in = (void*)&m_sVenc_cfg;
+                ioctl_msg.out = NULL;
+
+                if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_BASE_CFG,(void*)&ioctl_msg) < 0) {
+                    DEBUG_PRINT_ERROR("\nERROR: Dimension Change for Rotation failed");
+                    return false;
+                }
+
+                break;
+            }
+        case QOMX_IndexConfigVideoLTRPeriod:
+            {
+                QOMX_VIDEO_CONFIG_LTRPERIOD_TYPE* pParam =
+                    (QOMX_VIDEO_CONFIG_LTRPERIOD_TYPE*)configData;
+
+                if (pParam->nPortIndex == PORT_INDEX_OUT) {
+                    if (!venc_set_ltrperiod(pParam->nFrames)) {
+                        DEBUG_PRINT_ERROR("Setting ltr period failed");
+                        return OMX_ErrorUnsupportedSetting;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("QOMX_IndexConfigVideoLTRPeriod "
+                            "called on wrong port(%d)", pParam->nPortIndex);
+                    return OMX_ErrorBadPortIndex;
+                }
+
+                break;
+            }
+        case QOMX_IndexConfigVideoLTRUse:
+            {
+                QOMX_VIDEO_CONFIG_LTRUSE_TYPE* pParam =
+                    (QOMX_VIDEO_CONFIG_LTRUSE_TYPE*)configData;
+
+                if (pParam->nPortIndex == PORT_INDEX_OUT) {
+                    if (!venc_set_ltruse(pParam->nID, pParam->nFrames)) {
+                        DEBUG_PRINT_ERROR("Setting ltr use failed");
+                        return OMX_ErrorUnsupportedSetting;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("QOMX_IndexConfigVideoLTRUse "
+                            "called on wrong port(%d)", pParam->nPortIndex);
+                    return OMX_ErrorBadPortIndex;
+                }
+
+                break;
+            }
+        default:
+            DEBUG_PRINT_ERROR("venc_set_config: Unsupported index = 0x%x", index);
+            break;
+    }
+
+    return true;
 }
 
 unsigned venc_dev::venc_stop( void)
@@ -1282,75 +1237,72 @@
 #ifdef MAX_RES_1080P
     pmem_free();
 #endif
-  return ioctl(m_nDriver_fd,VEN_IOCTL_CMD_STOP,NULL);
+    return ioctl(m_nDriver_fd,VEN_IOCTL_CMD_STOP,NULL);
 }
 
 unsigned venc_dev::venc_pause(void)
 {
-  return ioctl(m_nDriver_fd,VEN_IOCTL_CMD_PAUSE,NULL);
+    return ioctl(m_nDriver_fd,VEN_IOCTL_CMD_PAUSE,NULL);
 }
 
 unsigned venc_dev::venc_resume(void)
 {
-  return ioctl(m_nDriver_fd,VEN_IOCTL_CMD_RESUME,NULL) ;
+    return ioctl(m_nDriver_fd,VEN_IOCTL_CMD_RESUME,NULL) ;
 }
 
 unsigned venc_dev::venc_start_done(void)
 {
-  return 0;
+    return 0;
 }
 
 unsigned venc_dev::venc_set_message_thread_id(pthread_t)
 {
-  return 0;
+    return 0;
 }
 
 unsigned venc_dev::venc_start(void)
 {
-  DEBUG_PRINT_HIGH("\n %s(): Check Profile/Level set in driver before start",
-        __func__);
-  if (!venc_set_profile_level(0, 0))
-  {
-    DEBUG_PRINT_ERROR("\n ERROR: %s(): Driver Profile/Level is NOT SET",
-      __func__);
-  }
-  else
-  {
-    DEBUG_PRINT_HIGH("\n %s(): Driver Profile[%lu]/Level[%lu] successfully SET",
-      __func__, codec_profile.profile, profile_level.level);
-  }
+    DEBUG_PRINT_HIGH("\n %s(): Check Profile/Level set in driver before start",
+            __func__);
 
-  if(m_max_allowed_bitrate_check &&
-     !venc_max_allowed_bitrate_check(bitrate.target_bitrate))
-  {
-    DEBUG_PRINT_ERROR("Maximum Allowed Bitrate Check failed");
-    return -1;
-  }
+    if (!venc_set_profile_level(0, 0)) {
+        DEBUG_PRINT_ERROR("\n ERROR: %s(): Driver Profile/Level is NOT SET",
+                __func__);
+    } else {
+        DEBUG_PRINT_HIGH("\n %s(): Driver Profile[%lu]/Level[%lu] successfully SET",
+                __func__, codec_profile.profile, profile_level.level);
+    }
 
-  venc_config_print();
+    if (m_max_allowed_bitrate_check &&
+            !venc_max_allowed_bitrate_check(bitrate.target_bitrate)) {
+        DEBUG_PRINT_ERROR("Maximum Allowed Bitrate Check failed");
+        return -1;
+    }
+
+    venc_config_print();
 
 #ifdef MAX_RES_1080P
-  if((codec_profile.profile == VEN_PROFILE_MPEG4_SP) ||
-     (codec_profile.profile == VEN_PROFILE_H264_BASELINE) ||
-     (codec_profile.profile == VEN_PROFILE_H263_BASELINE))
-    recon_buffers_count = MAX_RECON_BUFFERS - 2;
-  else
-    recon_buffers_count = MAX_RECON_BUFFERS;
 
-  if (ltrmode.ltr_mode == (unsigned long)QOMX_VIDEO_LTRMode_Auto)
-  {
-    recon_buffers_count = MAX_RECON_BUFFERS;
-    DEBUG_PRINT_HIGH("ltr mode enabled, so set recon buffers "
-       "count to %d", recon_buffers_count);
-  }
+    if ((codec_profile.profile == VEN_PROFILE_MPEG4_SP) ||
+            (codec_profile.profile == VEN_PROFILE_H264_BASELINE) ||
+            (codec_profile.profile == VEN_PROFILE_H263_BASELINE))
+        recon_buffers_count = MAX_RECON_BUFFERS - 2;
+    else
+        recon_buffers_count = MAX_RECON_BUFFERS;
 
-  if (!venc_allocate_recon_buffers())
-    return ioctl(m_nDriver_fd, VEN_IOCTL_CMD_START, NULL);
-  else
-  {
-    DEBUG_PRINT_ERROR("Failed in creating Recon buffers\n");
-    return -1;
-  }
+    if (ltrmode.ltr_mode == (unsigned long)QOMX_VIDEO_LTRMode_Auto) {
+        recon_buffers_count = MAX_RECON_BUFFERS;
+        DEBUG_PRINT_HIGH("ltr mode enabled, so set recon buffers "
+                "count to %d", recon_buffers_count);
+    }
+
+    if (!venc_allocate_recon_buffers())
+        return ioctl(m_nDriver_fd, VEN_IOCTL_CMD_START, NULL);
+    else {
+        DEBUG_PRINT_ERROR("Failed in creating Recon buffers\n");
+        return -1;
+    }
+
 #else
     return ioctl(m_nDriver_fd, VEN_IOCTL_CMD_START, NULL);
 #endif
@@ -1359,258 +1311,258 @@
 #ifdef MAX_RES_1080P
 OMX_U32 venc_dev::venc_allocate_recon_buffers()
 {
-  OMX_U32 yuv_size;
-  struct venc_ioctl_msg ioctl_msg;
-  struct venc_recon_buff_size recon_buff_size;
+    OMX_U32 yuv_size;
+    struct venc_ioctl_msg ioctl_msg;
+    struct venc_recon_buff_size recon_buff_size;
 
-  recon_buff_size.width =  ((m_sVenc_cfg.input_width + 15) / 16) * 16;
-  recon_buff_size.height = ((m_sVenc_cfg.input_height + 15) / 16 ) * 16;
+    recon_buff_size.width =  ((m_sVenc_cfg.input_width + 15) / 16) * 16;
+    recon_buff_size.height = ((m_sVenc_cfg.input_height + 15) / 16 ) * 16;
 
-  DEBUG_PRINT_LOW("Width %d, Height %d, w_round %d, h_round %d\n", m_sVenc_cfg.input_width,
-                    m_sVenc_cfg.input_height, recon_buff_size.width, recon_buff_size.height);
+    DEBUG_PRINT_LOW("Width %d, Height %d, w_round %d, h_round %d\n", m_sVenc_cfg.input_width,
+            m_sVenc_cfg.input_height, recon_buff_size.width, recon_buff_size.height);
 
-  ioctl_msg.in = NULL;
-  ioctl_msg.out = (void*)&recon_buff_size;
+    ioctl_msg.in = NULL;
+    ioctl_msg.out = (void*)&recon_buff_size;
 
-  if (ioctl (m_nDriver_fd,VEN_IOCTL_GET_RECON_BUFFER_SIZE, (void*)&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("\n VEN_IOCTL_GET_RECON_BUFFER_SIZE Failed for width: %d, Height %d" ,
-      recon_buff_size.width, recon_buff_size.height);
-    return OMX_ErrorInsufficientResources;
-  }
-
-  DEBUG_PRINT_HIGH("Width %d, Height %d, w_round %d, h_round %d, yuv_size %d alignment %d count %d\n",
-                   m_sVenc_cfg.input_width, m_sVenc_cfg.input_height, recon_buff_size.width,
-                   recon_buff_size.height, recon_buff_size.size, recon_buff_size.alignment,
-                   recon_buffers_count);
-
-  for(int i = 0; i < recon_buffers_count; i++)
-  {
-    if(pmem_allocate(recon_buff_size.size, recon_buff_size.alignment,i))
-    {
-      DEBUG_PRINT_ERROR("Error returned in allocating recon buffers\n");
-      return -1;
+    if (ioctl (m_nDriver_fd,VEN_IOCTL_GET_RECON_BUFFER_SIZE, (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("\n VEN_IOCTL_GET_RECON_BUFFER_SIZE Failed for width: %d, Height %d" ,
+                recon_buff_size.width, recon_buff_size.height);
+        return OMX_ErrorInsufficientResources;
     }
-  }
-  return 0;
+
+    DEBUG_PRINT_HIGH("Width %d, Height %d, w_round %d, h_round %d, yuv_size %d alignment %d count %d\n",
+            m_sVenc_cfg.input_width, m_sVenc_cfg.input_height, recon_buff_size.width,
+            recon_buff_size.height, recon_buff_size.size, recon_buff_size.alignment,
+            recon_buffers_count);
+
+    for (int i = 0; i < recon_buffers_count; i++) {
+        if (pmem_allocate(recon_buff_size.size, recon_buff_size.alignment,i)) {
+            DEBUG_PRINT_ERROR("Error returned in allocating recon buffers\n");
+            return -1;
+        }
+    }
+
+    return 0;
 }
 OMX_U32 venc_dev::pmem_allocate(OMX_U32 size, OMX_U32 alignment, OMX_U32 count)
 {
-  OMX_U32 pmem_fd = -1;
-  OMX_U32 width, height;
-  void *buf_addr = NULL;
-  struct venc_ioctl_msg ioctl_msg;
-  struct venc_recon_addr recon_addr;
-  int rc = 0;
+    OMX_U32 pmem_fd = -1;
+    OMX_U32 width, height;
+    void *buf_addr = NULL;
+    struct venc_ioctl_msg ioctl_msg;
+    struct venc_recon_addr recon_addr;
+    int rc = 0;
 
 #ifdef USE_ION
-  recon_buff[count].ion_device_fd = open (MEM_DEVICE,O_RDONLY);
-  if(recon_buff[count].ion_device_fd < 0)
-  {
-      DEBUG_PRINT_ERROR("\nERROR: ION Device open() Failed");
-      return -1;
-  }
+    recon_buff[count].ion_device_fd = open (MEM_DEVICE,O_RDONLY);
 
-  recon_buff[count].alloc_data.len = size;
+    if (recon_buff[count].ion_device_fd < 0) {
+        DEBUG_PRINT_ERROR("\nERROR: ION Device open() Failed");
+        return -1;
+    }
+
+    recon_buff[count].alloc_data.len = size;
 #ifdef MAX_RES_720P
-  recon_buff[count].alloc_data.heap_mask = ION_HEAP(MEM_HEAP_ID);
+    recon_buff[count].alloc_data.heap_mask = ION_HEAP(MEM_HEAP_ID);
 #else
-  recon_buff[count].alloc_data.heap_mask = (ION_HEAP(MEM_HEAP_ID) |
-                                        ION_HEAP(ION_IOMMU_HEAP_ID));
+    recon_buff[count].alloc_data.heap_mask = (ION_HEAP(MEM_HEAP_ID) |
+            ION_HEAP(ION_IOMMU_HEAP_ID));
 #endif
-  recon_buff[count].alloc_data.flags = ION_FLAG_CACHED;
-  recon_buff[count].alloc_data.align = clip2(alignment);
-  if (recon_buff[count].alloc_data.align != 8192)
-    recon_buff[count].alloc_data.align = 8192;
+    recon_buff[count].alloc_data.flags = ION_FLAG_CACHED;
+    recon_buff[count].alloc_data.align = clip2(alignment);
 
-  rc = ioctl(recon_buff[count].ion_device_fd,ION_IOC_ALLOC,&recon_buff[count].alloc_data);
-  if(rc || !recon_buff[count].alloc_data.handle) {
-         DEBUG_PRINT_ERROR("\n ION ALLOC memory failed ");
-         recon_buff[count].alloc_data.handle=NULL;
-         return -1;
-  }
+    if (recon_buff[count].alloc_data.align != 8192)
+        recon_buff[count].alloc_data.align = 8192;
 
-  recon_buff[count].ion_alloc_fd.handle = recon_buff[count].alloc_data.handle;
-  rc = ioctl(recon_buff[count].ion_device_fd,ION_IOC_MAP,&recon_buff[count].ion_alloc_fd);
-  if(rc) {
+    rc = ioctl(recon_buff[count].ion_device_fd,ION_IOC_ALLOC,&recon_buff[count].alloc_data);
+
+    if (rc || !recon_buff[count].alloc_data.handle) {
+        DEBUG_PRINT_ERROR("\n ION ALLOC memory failed ");
+        recon_buff[count].alloc_data.handle=NULL;
+        return -1;
+    }
+
+    recon_buff[count].ion_alloc_fd.handle = recon_buff[count].alloc_data.handle;
+    rc = ioctl(recon_buff[count].ion_device_fd,ION_IOC_MAP,&recon_buff[count].ion_alloc_fd);
+
+    if (rc) {
         DEBUG_PRINT_ERROR("\n ION MAP failed ");
         recon_buff[count].ion_alloc_fd.fd =-1;
         recon_buff[count].ion_alloc_fd.fd =-1;
         return -1;
-  }
-  pmem_fd = recon_buff[count].ion_alloc_fd.fd;
-#else
-  struct pmem_allocation allocation;
-  pmem_fd = open(MEM_DEVICE, O_RDWR);
-
-  if ((int)(pmem_fd) < 0)
-  {
-	DEBUG_PRINT_ERROR("\n Failed to get an pmem handle");
-	return -1;
-  }
-
-  allocation.size = size;
-  allocation.align = clip2(alignment);
-
-  if (allocation.align != 8192)
-    allocation.align = 8192;
-
-  if (ioctl(pmem_fd, PMEM_ALLOCATE_ALIGNED, &allocation) < 0)
-  {
-    DEBUG_PRINT_ERROR("\n Aligment(%u) failed with pmem driver Sz(%lu)",
-      allocation.align, allocation.size);
-    return -1;
-  }
-#endif
-  buf_addr = mmap(NULL, size,
-               PROT_READ | PROT_WRITE,
-               MAP_SHARED, pmem_fd, 0);
-
-  if (buf_addr == (void*) MAP_FAILED)
-  {
-    close(pmem_fd);
-    pmem_fd = -1;
-    DEBUG_PRINT_ERROR("Error returned in allocating recon buffers buf_addr: %p\n",buf_addr);
-#ifdef USE_ION
-    if(ioctl(recon_buff[count].ion_device_fd,ION_IOC_FREE,
-       &recon_buff[count].alloc_data.handle)) {
-      DEBUG_PRINT_LOW("ion recon buffer free failed");
     }
-    recon_buff[count].alloc_data.handle = NULL;
-    recon_buff[count].ion_alloc_fd.fd =-1;
-    close(recon_buff[count].ion_device_fd);
-    recon_buff[count].ion_device_fd =-1;
+
+    pmem_fd = recon_buff[count].ion_alloc_fd.fd;
+#else
+    struct pmem_allocation allocation;
+    pmem_fd = open(MEM_DEVICE, O_RDWR);
+
+    if ((int)(pmem_fd) < 0) {
+        DEBUG_PRINT_ERROR("\n Failed to get an pmem handle");
+        return -1;
+    }
+
+    allocation.size = size;
+    allocation.align = clip2(alignment);
+
+    if (allocation.align != 8192)
+        allocation.align = 8192;
+
+    if (ioctl(pmem_fd, PMEM_ALLOCATE_ALIGNED, &allocation) < 0) {
+        DEBUG_PRINT_ERROR("\n Aligment(%u) failed with pmem driver Sz(%lu)",
+                allocation.align, allocation.size);
+        return -1;
+    }
+
 #endif
-    return -1;
-  }
+    buf_addr = mmap(NULL, size,
+            PROT_READ | PROT_WRITE,
+            MAP_SHARED, pmem_fd, 0);
 
-  DEBUG_PRINT_HIGH("\n Allocated virt:%p, FD: %d of size %d \n", buf_addr, pmem_fd, size);
+    if (buf_addr == (void*) MAP_FAILED) {
+        close(pmem_fd);
+        pmem_fd = -1;
+        DEBUG_PRINT_ERROR("Error returned in allocating recon buffers buf_addr: %p\n",buf_addr);
+#ifdef USE_ION
 
-  recon_addr.buffer_size = size;
-  recon_addr.pmem_fd = pmem_fd;
-  recon_addr.offset = 0;
-  recon_addr.pbuffer = (unsigned char *)buf_addr;
+        if (ioctl(recon_buff[count].ion_device_fd,ION_IOC_FREE,
+                    &recon_buff[count].alloc_data.handle)) {
+            DEBUG_PRINT_LOW("ion recon buffer free failed");
+        }
 
-  ioctl_msg.in = (void*)&recon_addr;
-  ioctl_msg.out = NULL;
+        recon_buff[count].alloc_data.handle = NULL;
+        recon_buff[count].ion_alloc_fd.fd =-1;
+        close(recon_buff[count].ion_device_fd);
+        recon_buff[count].ion_device_fd =-1;
+#endif
+        return -1;
+    }
 
-  if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_RECON_BUFFER, (void*)&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("Failed to set the Recon_buffers\n");
-    return -1;
-  }
+    DEBUG_PRINT_HIGH("\n Allocated virt:%p, FD: %d of size %d \n", buf_addr, pmem_fd, size);
 
-  recon_buff[count].virtual_address = (unsigned char *) buf_addr;
-  recon_buff[count].size = size;
-  recon_buff[count].offset = 0;
-  recon_buff[count].pmem_fd = pmem_fd;
+    recon_addr.buffer_size = size;
+    recon_addr.pmem_fd = pmem_fd;
+    recon_addr.offset = 0;
+    recon_addr.pbuffer = (unsigned char *)buf_addr;
 
-  DEBUG_PRINT_ERROR("\n Allocated virt:%p, FD: %d of size %d at index: %d\n", recon_buff[count].virtual_address,
-                     recon_buff[count].pmem_fd, recon_buff[count].size, count);
-  return 0;
+    ioctl_msg.in = (void*)&recon_addr;
+    ioctl_msg.out = NULL;
+
+    if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_RECON_BUFFER, (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("Failed to set the Recon_buffers\n");
+        return -1;
+    }
+
+    recon_buff[count].virtual_address = (unsigned char *) buf_addr;
+    recon_buff[count].size = size;
+    recon_buff[count].offset = 0;
+    recon_buff[count].pmem_fd = pmem_fd;
+
+    DEBUG_PRINT_ERROR("\n Allocated virt:%p, FD: %d of size %d at index: %d\n", recon_buff[count].virtual_address,
+            recon_buff[count].pmem_fd, recon_buff[count].size, count);
+    return 0;
 }
 
 OMX_U32 venc_dev::pmem_free()
 {
-  int cnt = 0;
-  struct venc_ioctl_msg ioctl_msg;
-  struct venc_recon_addr recon_addr;
-  for (cnt = 0; cnt < recon_buffers_count; cnt++)
-  {
-    if(recon_buff[cnt].pmem_fd)
-    {
-      recon_addr.pbuffer = recon_buff[cnt].virtual_address;
-      recon_addr.offset = recon_buff[cnt].offset;
-      recon_addr.pmem_fd = recon_buff[cnt].pmem_fd;
-      recon_addr.buffer_size = recon_buff[cnt].size;
-      ioctl_msg.in = (void*)&recon_addr;
-      ioctl_msg.out = NULL;
-      if(ioctl(m_nDriver_fd, VEN_IOCTL_FREE_RECON_BUFFER ,&ioctl_msg) < 0)
-        DEBUG_PRINT_ERROR("VEN_IOCTL_FREE_RECON_BUFFER failed");
-      munmap(recon_buff[cnt].virtual_address, recon_buff[cnt].size);
-      close(recon_buff[cnt].pmem_fd);
+    int cnt = 0;
+    struct venc_ioctl_msg ioctl_msg;
+    struct venc_recon_addr recon_addr;
+
+    for (cnt = 0; cnt < recon_buffers_count; cnt++) {
+        if (recon_buff[cnt].pmem_fd) {
+            recon_addr.pbuffer = recon_buff[cnt].virtual_address;
+            recon_addr.offset = recon_buff[cnt].offset;
+            recon_addr.pmem_fd = recon_buff[cnt].pmem_fd;
+            recon_addr.buffer_size = recon_buff[cnt].size;
+            ioctl_msg.in = (void*)&recon_addr;
+            ioctl_msg.out = NULL;
+
+            if (ioctl(m_nDriver_fd, VEN_IOCTL_FREE_RECON_BUFFER ,&ioctl_msg) < 0)
+                DEBUG_PRINT_ERROR("VEN_IOCTL_FREE_RECON_BUFFER failed");
+
+            munmap(recon_buff[cnt].virtual_address, recon_buff[cnt].size);
+            close(recon_buff[cnt].pmem_fd);
 #ifdef USE_ION
-      if(ioctl(recon_buff[cnt].ion_device_fd,ION_IOC_FREE,
-         &recon_buff[cnt].alloc_data.handle)) {
-        DEBUG_PRINT_LOW("ion recon buffer free failed");
-      }
-      recon_buff[cnt].alloc_data.handle = NULL;
-      recon_buff[cnt].ion_alloc_fd.fd =-1;
-      close(recon_buff[cnt].ion_device_fd);
-      recon_buff[cnt].ion_device_fd =-1;
+
+            if (ioctl(recon_buff[cnt].ion_device_fd,ION_IOC_FREE,
+                        &recon_buff[cnt].alloc_data.handle)) {
+                DEBUG_PRINT_LOW("ion recon buffer free failed");
+            }
+
+            recon_buff[cnt].alloc_data.handle = NULL;
+            recon_buff[cnt].ion_alloc_fd.fd =-1;
+            close(recon_buff[cnt].ion_device_fd);
+            recon_buff[cnt].ion_device_fd =-1;
 #endif
-      DEBUG_PRINT_LOW("\n cleaning Index %d of size %d \n",cnt,recon_buff[cnt].size);
-      recon_buff[cnt].pmem_fd = -1;
-      recon_buff[cnt].virtual_address = NULL;
-      recon_buff[cnt].offset = 0;
-      recon_buff[cnt].alignment = 0;
-      recon_buff[cnt].size = 0;
+            DEBUG_PRINT_LOW("\n cleaning Index %d of size %d \n",cnt,recon_buff[cnt].size);
+            recon_buff[cnt].pmem_fd = -1;
+            recon_buff[cnt].virtual_address = NULL;
+            recon_buff[cnt].offset = 0;
+            recon_buff[cnt].alignment = 0;
+            recon_buff[cnt].size = 0;
+        }
     }
-  }
-  return 0;
+
+    return 0;
 }
 #endif
 
 void venc_dev::venc_config_print()
 {
 
-  DEBUG_PRINT_HIGH("\nENC_CONFIG: Codec: %d, Profile %d, level : %d",
-                   m_sVenc_cfg.codectype, codec_profile.profile, profile_level.level);
+    DEBUG_PRINT_HIGH("\nENC_CONFIG: Codec: %d, Profile %d, level : %d",
+            m_sVenc_cfg.codectype, codec_profile.profile, profile_level.level);
 
-  DEBUG_PRINT_HIGH("\n ENC_CONFIG: Width: %d, Height:%d, Fps: %d",
-                   m_sVenc_cfg.input_width, m_sVenc_cfg.input_height,
-                   m_sVenc_cfg.fps_num/m_sVenc_cfg.fps_den);
+    DEBUG_PRINT_HIGH("\n ENC_CONFIG: Width: %d, Height:%d, Fps: %d",
+            m_sVenc_cfg.input_width, m_sVenc_cfg.input_height,
+            m_sVenc_cfg.fps_num/m_sVenc_cfg.fps_den);
 
-  DEBUG_PRINT_HIGH("\nENC_CONFIG: Bitrate: %d, RC: %d, I-Period: %d",
-                   bitrate.target_bitrate, rate_ctrl.rcmode, intra_period.num_pframes);
+    DEBUG_PRINT_HIGH("\nENC_CONFIG: Bitrate: %d, RC: %d, I-Period: %d",
+            bitrate.target_bitrate, rate_ctrl.rcmode, intra_period.num_pframes);
 
-  DEBUG_PRINT_HIGH("\nENC_CONFIG: qpI: %d, qpP: %d, qpb: 0",
-                   session_qp.iframeqp, session_qp.pframqp);
+    DEBUG_PRINT_HIGH("\nENC_CONFIG: qpI: %d, qpP: %d, qpb: 0",
+            session_qp.iframeqp, session_qp.pframqp);
 
-  DEBUG_PRINT_HIGH("\nENC_CONFIG: minQP: %d, maxQP: %d",
-                   qp_range.minqp, qp_range.maxqp);
+    DEBUG_PRINT_HIGH("\nENC_CONFIG: minQP: %d, maxQP: %d",
+            qp_range.minqp, qp_range.maxqp);
 
-  DEBUG_PRINT_HIGH("\nENC_CONFIG: VOP_Resolution: %d, Slice-Mode: %d, Slize_Size: %d",
-                   voptimecfg.voptime_resolution, multislice.mslice_mode,
-                   multislice.mslice_size);
+    DEBUG_PRINT_HIGH("\nENC_CONFIG: VOP_Resolution: %d, Slice-Mode: %d, Slize_Size: %d",
+            voptimecfg.voptime_resolution, multislice.mslice_mode,
+            multislice.mslice_size);
 
-  DEBUG_PRINT_HIGH("\nENC_CONFIG: EntropyMode: %d, CabacModel: %d",
-                   entropy.longentropysel, entropy.cabacmodel);
+    DEBUG_PRINT_HIGH("\nENC_CONFIG: EntropyMode: %d, CabacModel: %d",
+            entropy.longentropysel, entropy.cabacmodel);
 
-  DEBUG_PRINT_HIGH("\nENC_CONFIG: DB-Mode: %d, alpha: %d, Beta: %d\n",
-                   dbkfilter.db_mode, dbkfilter.slicealpha_offset,
-                   dbkfilter.slicebeta_offset);
+    DEBUG_PRINT_HIGH("\nENC_CONFIG: DB-Mode: %d, alpha: %d, Beta: %d\n",
+            dbkfilter.db_mode, dbkfilter.slicealpha_offset,
+            dbkfilter.slicebeta_offset);
 
-  DEBUG_PRINT_HIGH("\nENC_CONFIG: IntraMB/Frame: %d, HEC: %d\n",
-                   intra_refresh.mbcount, hec.header_extension);
+    DEBUG_PRINT_HIGH("\nENC_CONFIG: IntraMB/Frame: %d, HEC: %d\n",
+            intra_refresh.mbcount, hec.header_extension);
 }
 
 unsigned venc_dev::venc_flush( unsigned port)
 {
-  struct venc_ioctl_msg ioctl_msg;
-  struct venc_bufferflush buffer_index;
+    struct venc_ioctl_msg ioctl_msg;
+    struct venc_bufferflush buffer_index;
 
-  if(port == PORT_INDEX_IN)
-  {
-    DEBUG_PRINT_HIGH("Calling Input Flush");
-    buffer_index.flush_mode = VEN_FLUSH_INPUT;
-    ioctl_msg.in = (void*)&buffer_index;
-    ioctl_msg.out = NULL;
+    if (port == PORT_INDEX_IN) {
+        DEBUG_PRINT_HIGH("Calling Input Flush");
+        buffer_index.flush_mode = VEN_FLUSH_INPUT;
+        ioctl_msg.in = (void*)&buffer_index;
+        ioctl_msg.out = NULL;
 
-    return ioctl (m_nDriver_fd,VEN_IOCTL_CMD_FLUSH,(void*)&ioctl_msg);
-  }
-  else if(port == PORT_INDEX_OUT)
-  {
-    DEBUG_PRINT_HIGH("Calling Output Flush");
-    buffer_index.flush_mode = VEN_FLUSH_OUTPUT;
-    ioctl_msg.in = (void*)&buffer_index;
-    ioctl_msg.out = NULL;
-    return ioctl (m_nDriver_fd,VEN_IOCTL_CMD_FLUSH,(void*)&ioctl_msg);
-  }
-  else
-  {
-    return -1;
-  }
+        return ioctl (m_nDriver_fd,VEN_IOCTL_CMD_FLUSH,(void*)&ioctl_msg);
+    } else if (port == PORT_INDEX_OUT) {
+        DEBUG_PRINT_HIGH("Calling Output Flush");
+        buffer_index.flush_mode = VEN_FLUSH_OUTPUT;
+        ioctl_msg.in = (void*)&buffer_index;
+        ioctl_msg.out = NULL;
+        return ioctl (m_nDriver_fd,VEN_IOCTL_CMD_FLUSH,(void*)&ioctl_msg);
+    } else {
+        return -1;
+    }
 }
 
 //allocating I/P memory from pmem and register with the device
@@ -1618,1618 +1570,1499 @@
 
 bool venc_dev::venc_use_buf(void *buf_addr, unsigned port,unsigned)
 {
-  struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  struct pmem *pmem_tmp;
-  struct venc_bufferpayload dev_buffer = {0};
-  struct venc_allocatorproperty buff_alloc_property = {0};
+    struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    struct pmem *pmem_tmp;
+    struct venc_bufferpayload dev_buffer = {0};
+    struct venc_allocatorproperty buff_alloc_property = {0};
 
-  pmem_tmp = (struct pmem *)buf_addr;
+    pmem_tmp = (struct pmem *)buf_addr;
 
-  DEBUG_PRINT_LOW("\n venc_use_buf:: pmem_tmp = %p", pmem_tmp);
+    DEBUG_PRINT_LOW("\n venc_use_buf:: pmem_tmp = %p", pmem_tmp);
 
-  if(port == PORT_INDEX_IN)
-  {
-    dev_buffer.pbuffer = (OMX_U8 *)pmem_tmp->buffer;
-    dev_buffer.fd  = pmem_tmp->fd;
-    dev_buffer.maped_size = pmem_tmp->size;
-    dev_buffer.sz = pmem_tmp->size;
-    dev_buffer.offset = pmem_tmp->offset;
+    if (port == PORT_INDEX_IN) {
+        dev_buffer.pbuffer = (OMX_U8 *)pmem_tmp->buffer;
+        dev_buffer.fd  = pmem_tmp->fd;
+        dev_buffer.maped_size = pmem_tmp->size;
+        dev_buffer.sz = pmem_tmp->size;
+        dev_buffer.offset = pmem_tmp->offset;
 
-    if((m_sVenc_cfg.input_height %16 !=0) || (m_sVenc_cfg.input_width%16 != 0))
-    {
-      unsigned long ht = m_sVenc_cfg.input_height;
-      unsigned long wd = m_sVenc_cfg.input_width;
-      unsigned int luma_size, luma_size_2k;
+        if ((m_sVenc_cfg.input_height %16 !=0) || (m_sVenc_cfg.input_width%16 != 0)) {
+            unsigned long ht = m_sVenc_cfg.input_height;
+            unsigned long wd = m_sVenc_cfg.input_width;
+            unsigned int luma_size, luma_size_2k;
 
-      ht = (ht + 15) & ~15;
-      wd = (wd + 15) & ~15;
+            ht = (ht + 15) & ~15;
+            wd = (wd + 15) & ~15;
 
-      luma_size = ht * wd;
-      luma_size_2k = (luma_size + 2047) & ~2047;
+            luma_size = ht * wd;
+            luma_size_2k = (luma_size + 2047) & ~2047;
 
-      dev_buffer.sz = luma_size_2k + ((luma_size/2 + 2047) & ~2047);
+            dev_buffer.sz = luma_size_2k + ((luma_size/2 + 2047) & ~2047);
 #ifdef USE_ION
-      ioctl_msg.in = NULL;
-      ioctl_msg.out = (void*)&buff_alloc_property;
-      if(ioctl (m_nDriver_fd,VEN_IOCTL_GET_INPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0)
-      {
-         DEBUG_PRINT_ERROR("\nERROR: venc_use_buf:get input buffer failed ");
-         return false;
-      }
-      if(buff_alloc_property.alignment < 4096)
-      {
-         dev_buffer.sz = ((dev_buffer.sz + 4095) & ~4095);
-      }
-      else
-      {
-         dev_buffer.sz = ((dev_buffer.sz + (buff_alloc_property.alignment - 1)) &
-                                           ~(buff_alloc_property.alignment - 1));
-      }
+            ioctl_msg.in = NULL;
+            ioctl_msg.out = (void*)&buff_alloc_property;
+
+            if (ioctl (m_nDriver_fd,VEN_IOCTL_GET_INPUT_BUFFER_REQ,(void*)&ioctl_msg) < 0) {
+                DEBUG_PRINT_ERROR("\nERROR: venc_use_buf:get input buffer failed ");
+                return false;
+            }
+
+            if (buff_alloc_property.alignment < 4096) {
+                dev_buffer.sz = ((dev_buffer.sz + 4095) & ~4095);
+            } else {
+                dev_buffer.sz = ((dev_buffer.sz + (buff_alloc_property.alignment - 1)) &
+                        ~(buff_alloc_property.alignment - 1));
+            }
+
 #endif
-      dev_buffer.maped_size = dev_buffer.sz;
-    }
+            dev_buffer.maped_size = dev_buffer.sz;
+        }
 
-    ioctl_msg.in  = (void*)&dev_buffer;
-    ioctl_msg.out = NULL;
+        ioctl_msg.in  = (void*)&dev_buffer;
+        ioctl_msg.out = NULL;
 
-    DEBUG_PRINT_LOW("\n venc_use_buf:pbuffer = %x,fd = %x, offset = %d, maped_size = %d", \
+        DEBUG_PRINT_LOW("\n venc_use_buf:pbuffer = %x,fd = %x, offset = %d, maped_size = %d", \
                 dev_buffer.pbuffer, \
                 dev_buffer.fd, \
                 dev_buffer.offset, \
                 dev_buffer.maped_size);
 
-    if(ioctl (m_nDriver_fd,VEN_IOCTL_SET_INPUT_BUFFER,&ioctl_msg) < 0)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: venc_use_buf:set input buffer failed ");
-      return false;
-    }
-  }
-  else if(port == PORT_INDEX_OUT)
-  {
-    dev_buffer.pbuffer = (OMX_U8 *)pmem_tmp->buffer;
-    dev_buffer.fd  = pmem_tmp->fd;
-    dev_buffer.sz = pmem_tmp->size;
-    dev_buffer.maped_size = pmem_tmp->size;
-    dev_buffer.offset = pmem_tmp->offset;
-    ioctl_msg.in  = (void*)&dev_buffer;
-    ioctl_msg.out = NULL;
+        if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_INPUT_BUFFER,&ioctl_msg) < 0) {
+            DEBUG_PRINT_ERROR("\nERROR: venc_use_buf:set input buffer failed ");
+            return false;
+        }
+    } else if (port == PORT_INDEX_OUT) {
+        dev_buffer.pbuffer = (OMX_U8 *)pmem_tmp->buffer;
+        dev_buffer.fd  = pmem_tmp->fd;
+        dev_buffer.sz = pmem_tmp->size;
+        dev_buffer.maped_size = pmem_tmp->size;
+        dev_buffer.offset = pmem_tmp->offset;
+        ioctl_msg.in  = (void*)&dev_buffer;
+        ioctl_msg.out = NULL;
 
-    DEBUG_PRINT_LOW("\n venc_use_buf:pbuffer = %x,fd = %x, offset = %d, maped_size = %d", \
+        DEBUG_PRINT_LOW("\n venc_use_buf:pbuffer = %x,fd = %x, offset = %d, maped_size = %d", \
                 dev_buffer.pbuffer, \
                 dev_buffer.fd, \
                 dev_buffer.offset, \
                 dev_buffer.maped_size);
 
-    if(ioctl (m_nDriver_fd,VEN_IOCTL_SET_OUTPUT_BUFFER,&ioctl_msg) < 0)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: venc_use_buf:set output buffer failed ");
-      return false;
+        if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_OUTPUT_BUFFER,&ioctl_msg) < 0) {
+            DEBUG_PRINT_ERROR("\nERROR: venc_use_buf:set output buffer failed ");
+            return false;
+        }
+    } else {
+        DEBUG_PRINT_ERROR("\nERROR: venc_use_buf:Invalid Port Index ");
+        return false;
     }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("\nERROR: venc_use_buf:Invalid Port Index ");
-    return false;
-  }
 
-  return true;
+    return true;
 }
 
 bool venc_dev::venc_free_buf(void *buf_addr, unsigned port)
 {
-  struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  struct pmem *pmem_tmp;
-  struct venc_bufferpayload dev_buffer = {0};
+    struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    struct pmem *pmem_tmp;
+    struct venc_bufferpayload dev_buffer = {0};
 
-  pmem_tmp = (struct pmem *)buf_addr;
+    pmem_tmp = (struct pmem *)buf_addr;
 
-  DEBUG_PRINT_LOW("\n venc_use_buf:: pmem_tmp = %p", pmem_tmp);
+    DEBUG_PRINT_LOW("\n venc_use_buf:: pmem_tmp = %p", pmem_tmp);
 
-  if(port == PORT_INDEX_IN)
-  {
-    dev_buffer.pbuffer = (OMX_U8 *)pmem_tmp->buffer;
-    dev_buffer.fd  = pmem_tmp->fd;
-    dev_buffer.maped_size = pmem_tmp->size;
-    dev_buffer.sz = pmem_tmp->size;
-    dev_buffer.offset = pmem_tmp->offset;
-    ioctl_msg.in  = (void*)&dev_buffer;
-    ioctl_msg.out = NULL;
+    if (port == PORT_INDEX_IN) {
+        dev_buffer.pbuffer = (OMX_U8 *)pmem_tmp->buffer;
+        dev_buffer.fd  = pmem_tmp->fd;
+        dev_buffer.maped_size = pmem_tmp->size;
+        dev_buffer.sz = pmem_tmp->size;
+        dev_buffer.offset = pmem_tmp->offset;
+        ioctl_msg.in  = (void*)&dev_buffer;
+        ioctl_msg.out = NULL;
 
-    DEBUG_PRINT_LOW("\n venc_free_buf:pbuffer = %x,fd = %x, offset = %d, maped_size = %d", \
+        DEBUG_PRINT_LOW("\n venc_free_buf:pbuffer = %x,fd = %x, offset = %d, maped_size = %d", \
                 dev_buffer.pbuffer, \
                 dev_buffer.fd, \
                 dev_buffer.offset, \
                 dev_buffer.maped_size);
 
-    if(ioctl (m_nDriver_fd,VEN_IOCTL_CMD_FREE_INPUT_BUFFER,&ioctl_msg) < 0)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: venc_free_buf: free input buffer failed ");
-      return false;
-    }
-  }
-  else if(port == PORT_INDEX_OUT)
-  {
-    dev_buffer.pbuffer = (OMX_U8 *)pmem_tmp->buffer;
-    dev_buffer.fd  = pmem_tmp->fd;
-    dev_buffer.sz = pmem_tmp->size;
-    dev_buffer.maped_size = pmem_tmp->size;
-    dev_buffer.offset = pmem_tmp->offset;
-    ioctl_msg.in  = (void*)&dev_buffer;
-    ioctl_msg.out = NULL;
+        if (ioctl (m_nDriver_fd,VEN_IOCTL_CMD_FREE_INPUT_BUFFER,&ioctl_msg) < 0) {
+            DEBUG_PRINT_ERROR("\nERROR: venc_free_buf: free input buffer failed ");
+            return false;
+        }
+    } else if (port == PORT_INDEX_OUT) {
+        dev_buffer.pbuffer = (OMX_U8 *)pmem_tmp->buffer;
+        dev_buffer.fd  = pmem_tmp->fd;
+        dev_buffer.sz = pmem_tmp->size;
+        dev_buffer.maped_size = pmem_tmp->size;
+        dev_buffer.offset = pmem_tmp->offset;
+        ioctl_msg.in  = (void*)&dev_buffer;
+        ioctl_msg.out = NULL;
 
-    DEBUG_PRINT_LOW("\n venc_free_buf:pbuffer = %x,fd = %x, offset = %d, maped_size = %d", \
+        DEBUG_PRINT_LOW("\n venc_free_buf:pbuffer = %x,fd = %x, offset = %d, maped_size = %d", \
                 dev_buffer.pbuffer, \
                 dev_buffer.fd, \
                 dev_buffer.offset, \
                 dev_buffer.maped_size);
 
-    if(ioctl (m_nDriver_fd,VEN_IOCTL_CMD_FREE_OUTPUT_BUFFER,&ioctl_msg) < 0)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: venc_free_buf: free output buffer failed ");
-      return false;
+        if (ioctl (m_nDriver_fd,VEN_IOCTL_CMD_FREE_OUTPUT_BUFFER,&ioctl_msg) < 0) {
+            DEBUG_PRINT_ERROR("\nERROR: venc_free_buf: free output buffer failed ");
+            return false;
+        }
+    } else {
+        DEBUG_PRINT_ERROR("\nERROR: venc_free_buf:Invalid Port Index ");
+        return false;
     }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("\nERROR: venc_free_buf:Invalid Port Index ");
-    return false;
-  }
 
-  return true;
+    return true;
 }
 
 bool venc_dev::venc_empty_buf(void *buffer, void *pmem_data_buf,unsigned,unsigned)
 {
-  struct venc_buffer frameinfo;
-  struct pmem *temp_buffer;
-  struct venc_ioctl_msg ioctl_msg;
-  struct OMX_BUFFERHEADERTYPE *bufhdr;
+    struct venc_buffer frameinfo;
+    struct pmem *temp_buffer;
+    struct venc_ioctl_msg ioctl_msg;
+    struct OMX_BUFFERHEADERTYPE *bufhdr;
 
-  if(buffer == NULL)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: venc_etb: buffer is NULL");
-    return false;
-  }
-  bufhdr = (OMX_BUFFERHEADERTYPE *)buffer;
+    if (buffer == NULL) {
+        DEBUG_PRINT_ERROR("\nERROR: venc_etb: buffer is NULL");
+        return false;
+    }
 
-  DEBUG_PRINT_LOW("\n Input buffer length %d",bufhdr->nFilledLen);
+    bufhdr = (OMX_BUFFERHEADERTYPE *)buffer;
 
-  if(pmem_data_buf)
-  {
-    DEBUG_PRINT_LOW("\n Internal PMEM addr for i/p Heap UseBuf: %p", pmem_data_buf);
-    frameinfo.ptrbuffer = (OMX_U8 *)pmem_data_buf;
-  }
-  else
-  {
-    DEBUG_PRINT_LOW("\n Shared PMEM addr for i/p PMEM UseBuf/AllocateBuf: %p", bufhdr->pBuffer);
-    frameinfo.ptrbuffer = (OMX_U8 *)bufhdr->pBuffer;
-  }
+    DEBUG_PRINT_LOW("\n Input buffer length %d",bufhdr->nFilledLen);
 
-  frameinfo.clientdata = (void *) buffer;
-  frameinfo.sz = bufhdr->nFilledLen;
-  frameinfo.len = bufhdr->nFilledLen;
-  frameinfo.flags = bufhdr->nFlags;
-  frameinfo.offset = bufhdr->nOffset;
-  frameinfo.timestamp = bufhdr->nTimeStamp;
-  DEBUG_PRINT_LOW("\n i/p TS = %u", (OMX_U32)frameinfo.timestamp);
-  ioctl_msg.in = &frameinfo;
-  ioctl_msg.out = NULL;
+    if (pmem_data_buf) {
+        DEBUG_PRINT_LOW("\n Internal PMEM addr for i/p Heap UseBuf: %p", pmem_data_buf);
+        frameinfo.ptrbuffer = (OMX_U8 *)pmem_data_buf;
+    } else {
+        DEBUG_PRINT_LOW("\n Shared PMEM addr for i/p PMEM UseBuf/AllocateBuf: %p", bufhdr->pBuffer);
+        frameinfo.ptrbuffer = (OMX_U8 *)bufhdr->pBuffer;
+    }
 
-  DEBUG_PRINT_LOW("DBG: i/p frameinfo: bufhdr->pBuffer = %p, ptrbuffer = %p, offset = %u, len = %u",
-      bufhdr->pBuffer, frameinfo.ptrbuffer, frameinfo.offset, frameinfo.len);
-  if(ioctl(m_nDriver_fd,VEN_IOCTL_CMD_ENCODE_FRAME,&ioctl_msg) < 0)
-  {
-    /*Generate an async error and move to invalid state*/
-    return false;
-  }
+    frameinfo.clientdata = (void *) buffer;
+    frameinfo.sz = bufhdr->nFilledLen;
+    frameinfo.len = bufhdr->nFilledLen;
+    frameinfo.flags = bufhdr->nFlags;
+    frameinfo.offset = bufhdr->nOffset;
+    frameinfo.timestamp = bufhdr->nTimeStamp;
+    DEBUG_PRINT_LOW("\n i/p TS = %u", (OMX_U32)frameinfo.timestamp);
+    ioctl_msg.in = &frameinfo;
+    ioctl_msg.out = NULL;
+
+    DEBUG_PRINT_LOW("DBG: i/p frameinfo: bufhdr->pBuffer = %p, ptrbuffer = %p, offset = %u, len = %u",
+            bufhdr->pBuffer, frameinfo.ptrbuffer, frameinfo.offset, frameinfo.len);
+
+    if (ioctl(m_nDriver_fd,VEN_IOCTL_CMD_ENCODE_FRAME,&ioctl_msg) < 0) {
+        /*Generate an async error and move to invalid state*/
+        return false;
+    }
+
 #ifdef INPUT_BUFFER_LOG
 #ifdef MAX_RES_1080P
 
-  int y_size = 0;
-  int c_offset = 0;
-  unsigned char *buf_addr = NULL;
+    int y_size = 0;
+    int c_offset = 0;
+    unsigned char *buf_addr = NULL;
 
-  y_size = m_sVenc_cfg.input_width * m_sVenc_cfg.input_height;
-  //chroma offset is y_size aligned to the 2k boundary
-  c_offset= (y_size + 2047) & (~(2047));
+    y_size = m_sVenc_cfg.input_width * m_sVenc_cfg.input_height;
+    //chroma offset is y_size aligned to the 2k boundary
+    c_offset= (y_size + 2047) & (~(2047));
 
-  if(pmem_data_buf)
-  {
-    DEBUG_PRINT_LOW("\n Internal PMEM addr for i/p Heap UseBuf: %p", pmem_data_buf);
-    buf_addr = (OMX_U8 *)pmem_data_buf;
-  }
-  else
-  {
-    DEBUG_PRINT_LOW("\n Shared PMEM addr for i/p PMEM UseBuf/AllocateBuf: %p", bufhdr->pBuffer);
-    buf_addr = (unsigned char *)mmap(NULL,
-          ((encoder_media_buffer_type *)bufhdr->pBuffer)->meta_handle->data[2],
-          PROT_READ|PROT_WRITE, MAP_SHARED,
-          ((encoder_media_buffer_type *)bufhdr->pBuffer)->meta_handle->data[0], 0);
-  }
+    if (pmem_data_buf) {
+        DEBUG_PRINT_LOW("\n Internal PMEM addr for i/p Heap UseBuf: %p", pmem_data_buf);
+        buf_addr = (OMX_U8 *)pmem_data_buf;
+    } else {
+        DEBUG_PRINT_LOW("\n Shared PMEM addr for i/p PMEM UseBuf/AllocateBuf: %p", bufhdr->pBuffer);
+        buf_addr = (unsigned char *)mmap(NULL,
+                ((encoder_media_buffer_type *)bufhdr->pBuffer)->meta_handle->data[2],
+                PROT_READ|PROT_WRITE, MAP_SHARED,
+                ((encoder_media_buffer_type *)bufhdr->pBuffer)->meta_handle->data[0], 0);
+    }
 
-  if(inputBufferFile1)
-  {
-    fwrite((const char *)buf_addr, y_size, 1,inputBufferFile1);
-    fwrite((const char *)(buf_addr + c_offset), (y_size>>1), 1,inputBufferFile1);
-  }
+    if (inputBufferFile1) {
+        fwrite((const char *)buf_addr, y_size, 1,inputBufferFile1);
+        fwrite((const char *)(buf_addr + c_offset), (y_size>>1), 1,inputBufferFile1);
+    }
 
-  munmap (buf_addr, ((encoder_media_buffer_type *)bufhdr->pBuffer)->meta_handle->data[2]);
+    munmap (buf_addr, ((encoder_media_buffer_type *)bufhdr->pBuffer)->meta_handle->data[2]);
 #else
-  if(inputBufferFile1)
-  {
-    fwrite((const char *)frameinfo.ptrbuffer, frameinfo.len, 1,inputBufferFile1);
-  }
+
+    if (inputBufferFile1) {
+        fwrite((const char *)frameinfo.ptrbuffer, frameinfo.len, 1,inputBufferFile1);
+    }
+
 #endif
 
 #endif
-  return true;
+    return true;
 }
 bool venc_dev::venc_fill_buf(void *buffer, void *pmem_data_buf,unsigned,unsigned)
 {
-  struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  struct pmem *temp_buffer = NULL;
-  struct venc_buffer  frameinfo;
-  struct OMX_BUFFERHEADERTYPE *bufhdr;
+    struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    struct pmem *temp_buffer = NULL;
+    struct venc_buffer  frameinfo;
+    struct OMX_BUFFERHEADERTYPE *bufhdr;
 
-  if(buffer == NULL)
-  {
-    return false;
-  }
-  bufhdr = (OMX_BUFFERHEADERTYPE *)buffer;
+    if (buffer == NULL) {
+        return false;
+    }
 
-  if(pmem_data_buf)
-  {
-    DEBUG_PRINT_LOW("\n Internal PMEM addr for o/p Heap UseBuf: %p", pmem_data_buf);
-    frameinfo.ptrbuffer = (OMX_U8 *)pmem_data_buf;
-  }
-  else
-  {
-    DEBUG_PRINT_LOW("\n Shared PMEM addr for o/p PMEM UseBuf/AllocateBuf: %p", bufhdr->pBuffer);
-    frameinfo.ptrbuffer = (OMX_U8 *)bufhdr->pBuffer;
-  }
+    bufhdr = (OMX_BUFFERHEADERTYPE *)buffer;
 
-  frameinfo.clientdata = buffer;
-  frameinfo.sz = bufhdr->nAllocLen;
-  frameinfo.flags = bufhdr->nFlags;
-  frameinfo.offset = bufhdr->nOffset;
+    if (pmem_data_buf) {
+        DEBUG_PRINT_LOW("\n Internal PMEM addr for o/p Heap UseBuf: %p", pmem_data_buf);
+        frameinfo.ptrbuffer = (OMX_U8 *)pmem_data_buf;
+    } else {
+        DEBUG_PRINT_LOW("\n Shared PMEM addr for o/p PMEM UseBuf/AllocateBuf: %p", bufhdr->pBuffer);
+        frameinfo.ptrbuffer = (OMX_U8 *)bufhdr->pBuffer;
+    }
 
-  ioctl_msg.in = &frameinfo;
-  ioctl_msg.out = NULL;
-  DEBUG_PRINT_LOW("DBG: o/p frameinfo: bufhdr->pBuffer = %p, ptrbuffer = %p, offset = %u, len = %u",
-      bufhdr->pBuffer, frameinfo.ptrbuffer, frameinfo.offset, frameinfo.len);
-  if(ioctl (m_nDriver_fd,VEN_IOCTL_CMD_FILL_OUTPUT_BUFFER,&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: ioctl VEN_IOCTL_CMD_FILL_OUTPUT_BUFFER failed");
-    return false;
-  }
+    frameinfo.clientdata = buffer;
+    frameinfo.sz = bufhdr->nAllocLen;
+    frameinfo.flags = bufhdr->nFlags;
+    frameinfo.offset = bufhdr->nOffset;
 
-  return true;
+    ioctl_msg.in = &frameinfo;
+    ioctl_msg.out = NULL;
+    DEBUG_PRINT_LOW("DBG: o/p frameinfo: bufhdr->pBuffer = %p, ptrbuffer = %p, offset = %u, len = %u",
+            bufhdr->pBuffer, frameinfo.ptrbuffer, frameinfo.offset, frameinfo.len);
+
+    if (ioctl (m_nDriver_fd,VEN_IOCTL_CMD_FILL_OUTPUT_BUFFER,&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("\nERROR: ioctl VEN_IOCTL_CMD_FILL_OUTPUT_BUFFER failed");
+        return false;
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_set_slice_delivery_mode(OMX_BOOL enable)
 {
-  venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  DEBUG_PRINT_HIGH("Set slice_delivery_mode: %d", enable);
-  if(multislice.mslice_mode == VEN_MSLICE_CNT_MB)
-  {
-    if(ioctl(m_nDriver_fd, VEN_IOCTL_SET_SLICE_DELIVERY_MODE) < 0)
-    {
-      DEBUG_PRINT_ERROR("Request for setting slice delivery mode failed");
-      return false;
+    venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    DEBUG_PRINT_HIGH("Set slice_delivery_mode: %d", enable);
+
+    if (multislice.mslice_mode == VEN_MSLICE_CNT_MB) {
+        if (ioctl(m_nDriver_fd, VEN_IOCTL_SET_SLICE_DELIVERY_MODE) < 0) {
+            DEBUG_PRINT_ERROR("Request for setting slice delivery mode failed");
+            return false;
+        }
+    } else {
+        DEBUG_PRINT_ERROR("WARNING: slice_mode[%d] is not VEN_MSLICE_CNT_MB to set "
+                "slice delivery mode to the driver.", multislice.mslice_mode);
     }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("WARNING: slice_mode[%d] is not VEN_MSLICE_CNT_MB to set "
-       "slice delivery mode to the driver.", multislice.mslice_mode);
-  }
-  return true;
+
+    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;
+    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_ltrmode(QOMX_VIDEO_LTRMODETYPE mode)
 {
-  venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  venc_ltrmode ltr_mode;
-  ltr_mode.ltr_mode = (unsigned long)mode;
-  DEBUG_PRINT_HIGH("Set ltr mode: %d", mode);
-  ioctl_msg.in = (void*)&ltr_mode;
-  ioctl_msg.out = NULL;
-  if(ioctl (m_nDriver_fd, VEN_IOCTL_SET_LTRMODE, (void*)&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Setting ltrmode failed");
-    return false;
-  }
-  ltrmode.ltr_mode = (unsigned long)mode;
-  return true;
+    venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    venc_ltrmode ltr_mode;
+    ltr_mode.ltr_mode = (unsigned long)mode;
+    DEBUG_PRINT_HIGH("Set ltr mode: %d", mode);
+    ioctl_msg.in = (void*)&ltr_mode;
+    ioctl_msg.out = NULL;
+
+    if (ioctl (m_nDriver_fd, VEN_IOCTL_SET_LTRMODE, (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("ERROR: Setting ltrmode failed");
+        return false;
+    }
+
+    ltrmode.ltr_mode = (unsigned long)mode;
+    return true;
 }
 
 bool venc_dev::venc_set_ltrcount(OMX_U32 count)
 {
-  venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  venc_ltrcount ltr_count;
-  ltr_count.ltr_count = (unsigned long)count;
-  DEBUG_PRINT_HIGH("Set ltr count: %d", count);
-  ioctl_msg.in = (void*)&ltr_count;
-  ioctl_msg.out = NULL;
-  if(ioctl (m_nDriver_fd, VEN_IOCTL_SET_LTRCOUNT, (void*)&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Setting ltrcount failed");
-    return false;
-  }
-  ltrcount.ltr_count = (unsigned long)count;
-  return true;
+    venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    venc_ltrcount ltr_count;
+    ltr_count.ltr_count = (unsigned long)count;
+    DEBUG_PRINT_HIGH("Set ltr count: %d", count);
+    ioctl_msg.in = (void*)&ltr_count;
+    ioctl_msg.out = NULL;
+
+    if (ioctl (m_nDriver_fd, VEN_IOCTL_SET_LTRCOUNT, (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("ERROR: Setting ltrcount failed");
+        return false;
+    }
+
+    ltrcount.ltr_count = (unsigned long)count;
+    return true;
 }
 
 bool venc_dev::venc_set_ltrperiod(OMX_U32 period)
 {
-  venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  venc_ltrperiod ltr_period;
-  ltr_period.ltr_period = (unsigned long)period;
-  DEBUG_PRINT_HIGH("Set ltr period: %d", period);
-  ioctl_msg.in = (void*)&ltr_period;
-  ioctl_msg.out = NULL;
-  if(ioctl (m_nDriver_fd, VEN_IOCTL_SET_LTRPERIOD, (void*)&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Setting ltrperiod failed");
-    return false;
-  }
-  ltrperiod.ltr_period = (unsigned long)period;
-  return true;
+    venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    venc_ltrperiod ltr_period;
+    ltr_period.ltr_period = (unsigned long)period;
+    DEBUG_PRINT_HIGH("Set ltr period: %d", period);
+    ioctl_msg.in = (void*)&ltr_period;
+    ioctl_msg.out = NULL;
+
+    if (ioctl (m_nDriver_fd, VEN_IOCTL_SET_LTRPERIOD, (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("ERROR: Setting ltrperiod failed");
+        return false;
+    }
+
+    ltrperiod.ltr_period = (unsigned long)period;
+    return true;
 }
 
 bool venc_dev::venc_set_ltruse(OMX_U32 id, OMX_U32 frames)
 {
-  venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  venc_ltruse ltr_use;
-  ltr_use.ltr_id = (unsigned long)id;
-  ltr_use.ltr_frames = (unsigned long)frames;
-  DEBUG_PRINT_HIGH("Set ltr use: id = %d, ltr_frames = %d", id, frames);
-  ioctl_msg.in = (void*)&ltr_use;
-  ioctl_msg.out = NULL;
-  if(ioctl (m_nDriver_fd, VEN_IOCTL_SET_LTRUSE, (void*)&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Setting ltruse failed");
-    return false;
-  }
-  return true;
+    venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    venc_ltruse ltr_use;
+    ltr_use.ltr_id = (unsigned long)id;
+    ltr_use.ltr_frames = (unsigned long)frames;
+    DEBUG_PRINT_HIGH("Set ltr use: id = %d, ltr_frames = %d", id, frames);
+    ioctl_msg.in = (void*)&ltr_use;
+    ioctl_msg.out = NULL;
+
+    if (ioctl (m_nDriver_fd, VEN_IOCTL_SET_LTRUSE, (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("ERROR: Setting ltruse failed");
+        return false;
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_set_extradata(OMX_U32 extra_data)
 {
-  venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  DEBUG_PRINT_HIGH("venc_set_extradata:: %x", extra_data);
-  ioctl_msg.in = (void*)&extra_data;
-  ioctl_msg.out = NULL;
-  if(ioctl (m_nDriver_fd, VEN_IOCTL_SET_EXTRADATA, (void*)&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Request for setting extradata failed");
-    return false;
-  }
+    venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    DEBUG_PRINT_HIGH("venc_set_extradata:: %x", extra_data);
+    ioctl_msg.in = (void*)&extra_data;
+    ioctl_msg.out = NULL;
 
-  return true;
+    if (ioctl (m_nDriver_fd, VEN_IOCTL_SET_EXTRADATA, (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("ERROR: Request for setting extradata failed");
+        return false;
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_set_session_qp(OMX_U32 i_frame_qp, OMX_U32 p_frame_qp)
 {
-  venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  struct venc_sessionqp qp = {0, 0};
-  DEBUG_PRINT_HIGH("venc_set_session_qp:: i_frame_qp = %d, p_frame_qp = %d", i_frame_qp,
-    p_frame_qp);
+    venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    struct venc_sessionqp qp = {0, 0};
+    DEBUG_PRINT_HIGH("venc_set_session_qp:: i_frame_qp = %d, p_frame_qp = %d", i_frame_qp,
+            p_frame_qp);
 
-  qp.iframeqp = i_frame_qp;
-  qp.pframqp = p_frame_qp;
+    qp.iframeqp = i_frame_qp;
+    qp.pframqp = p_frame_qp;
 
-  ioctl_msg.in = (void*)&qp;
-  ioctl_msg.out = NULL;
-  if(ioctl (m_nDriver_fd,VEN_IOCTL_SET_SESSION_QP,(void*)&ioctl_msg)< 0)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Request for setting session qp failed");
-    return false;
-  }
+    ioctl_msg.in = (void*)&qp;
+    ioctl_msg.out = NULL;
 
-  session_qp.iframeqp = i_frame_qp;
-  session_qp.pframqp = p_frame_qp;
+    if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_SESSION_QP,(void*)&ioctl_msg)< 0) {
+        DEBUG_PRINT_ERROR("\nERROR: Request for setting session qp failed");
+        return false;
+    }
 
-  return true;
+    session_qp.iframeqp = i_frame_qp;
+    session_qp.pframqp = p_frame_qp;
+
+    return true;
 }
 
 bool venc_dev::venc_set_qp_range(OMX_U32 min_qp, OMX_U32 max_qp)
 {
-  venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  struct venc_qprange qp = {0, 0};
-  DEBUG_PRINT_LOW("venc_set_qp_range:: min_qp = %d, max_qp = %d", min_qp,
-    max_qp);
+    venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    struct venc_qprange qp = {0, 0};
+    DEBUG_PRINT_LOW("venc_set_qp_range:: min_qp = %d, max_qp = %d", min_qp,
+            max_qp);
 
-  qp.minqp = min_qp;
-  qp.maxqp = max_qp;
+    qp.minqp = min_qp;
+    qp.maxqp = max_qp;
 
-  ioctl_msg.in = (void*)&qp;
-  ioctl_msg.out = NULL;
-  if(ioctl (m_nDriver_fd,VEN_IOCTL_SET_QP_RANGE,(void*)&ioctl_msg)< 0)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Request for setting qp range failed");
-    return false;
-  }
+    ioctl_msg.in = (void*)&qp;
+    ioctl_msg.out = NULL;
 
-  qp_range.minqp= min_qp;
-  qp_range.maxqp= max_qp;
+    if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_QP_RANGE,(void*)&ioctl_msg)< 0) {
+        DEBUG_PRINT_ERROR("\nERROR: Request for setting qp range failed");
+        return false;
+    }
 
-  return true;
+    qp_range.minqp= min_qp;
+    qp_range.maxqp= max_qp;
+
+    return true;
 }
 
 bool venc_dev::venc_set_profile_level(OMX_U32 eProfile,OMX_U32 eLevel)
 {
-  venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  struct venc_profile requested_profile;
-  struct ven_profilelevel requested_level;
-  unsigned const int *profile_tbl = NULL;
-  unsigned long mb_per_frame = 0, mb_per_sec = 0;
-  DEBUG_PRINT_HIGH("venc_set_profile_level:: eProfile = %d, Level = %d",
-    eProfile, eLevel);
-  mb_per_frame = ((m_sVenc_cfg.input_height + 15) >> 4)*
-                  ((m_sVenc_cfg.input_width + 15) >> 4);
-  if((eProfile == 0) && (eLevel == 0) && m_profile_set && m_level_set)
-  {
-    DEBUG_PRINT_HIGH("Set profile/level was done already");
-    return true;
-  }
+    venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    struct venc_profile requested_profile;
+    struct ven_profilelevel requested_level;
+    unsigned const int *profile_tbl = NULL;
+    unsigned long mb_per_frame = 0, mb_per_sec = 0;
+    DEBUG_PRINT_HIGH("venc_set_profile_level:: eProfile = %d, Level = %d",
+            eProfile, eLevel);
+    mb_per_frame = ((m_sVenc_cfg.input_height + 15) >> 4)*
+        ((m_sVenc_cfg.input_width + 15) >> 4);
 
-  if(eProfile && eLevel)
-  {
-    /* non-zero values will be set by user, saving the same*/
-    m_eProfile = eProfile;
-    m_eLevel = eLevel;
-    DEBUG_PRINT_HIGH("Save profile/level (%d/%d) for max allowed bitrate check",
-      m_eProfile, m_eLevel);
-  }
-
-  DEBUG_PRINT_LOW("Validating Profile/Level from table");
-  if(!venc_validate_profile_level(&eProfile, &eLevel))
-  {
-    DEBUG_PRINT_LOW("\nERROR: Profile/Level validation failed");
-    return false;
-  }
-
-  if(m_sVenc_cfg.codectype == VEN_CODEC_MPEG4)
-  {
-    DEBUG_PRINT_LOW("eProfile = %d, OMX_VIDEO_MPEG4ProfileSimple = %d and "
-      "OMX_VIDEO_MPEG4ProfileAdvancedSimple = %d", eProfile,
-      OMX_VIDEO_MPEG4ProfileSimple, OMX_VIDEO_MPEG4ProfileAdvancedSimple);
-    if(eProfile == OMX_VIDEO_MPEG4ProfileSimple)
-    {
-      requested_profile.profile = VEN_PROFILE_MPEG4_SP;
-      profile_tbl = (unsigned int const *)
-          (&mpeg4_profile_level_table[MPEG4_SP_START]);
-      profile_tbl += MPEG4_720P_LEVEL*5;
-    }
-    else if(eProfile == OMX_VIDEO_MPEG4ProfileAdvancedSimple)
-    {
-      requested_profile.profile = VEN_PROFILE_MPEG4_ASP;
-      profile_tbl = (unsigned int const *)
-          (&mpeg4_profile_level_table[MPEG4_ASP_START]);
-      profile_tbl += MPEG4_720P_LEVEL*5;
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("\nERROR: Unsupported MPEG4 profile = %u",
-        eProfile);
-      return false;
+    if ((eProfile == 0) && (eLevel == 0) && m_profile_set && m_level_set) {
+        DEBUG_PRINT_HIGH("Set profile/level was done already");
+        return true;
     }
 
-    DEBUG_PRINT_LOW("eLevel = %d, OMX_VIDEO_MPEG4Level0 = %d, OMX_VIDEO_MPEG4Level1 = %d,"
-      "OMX_VIDEO_MPEG4Level2 = %d, OMX_VIDEO_MPEG4Level3 = %d, OMX_VIDEO_MPEG4Level4 = %d,"
-      "OMX_VIDEO_MPEG4Level5 = %d", eLevel, OMX_VIDEO_MPEG4Level0, OMX_VIDEO_MPEG4Level1,
-      OMX_VIDEO_MPEG4Level2, OMX_VIDEO_MPEG4Level3, OMX_VIDEO_MPEG4Level4, OMX_VIDEO_MPEG4Level5);
-
-    if(mb_per_frame >= 3600)
-    {
-      if(requested_profile.profile == VEN_PROFILE_MPEG4_ASP)
-        requested_level.level = VEN_LEVEL_MPEG4_5;
-      if(requested_profile.profile == VEN_PROFILE_MPEG4_SP)
-        requested_level.level = VEN_LEVEL_MPEG4_6;
+    if (eProfile && eLevel) {
+        /* non-zero values will be set by user, saving the same*/
+        m_eProfile = eProfile;
+        m_eLevel = eLevel;
+        DEBUG_PRINT_HIGH("Save profile/level (%d/%d) for max allowed bitrate check",
+                m_eProfile, m_eLevel);
     }
-    else
-    {
-      switch(eLevel)
-      {
-      case OMX_VIDEO_MPEG4Level0:
-        requested_level.level = VEN_LEVEL_MPEG4_0;
-        break;
-      case OMX_VIDEO_MPEG4Level1:
-        requested_level.level = VEN_LEVEL_MPEG4_1;
-        break;
-      case OMX_VIDEO_MPEG4Level2:
-        requested_level.level = VEN_LEVEL_MPEG4_2;
-        break;
-      case OMX_VIDEO_MPEG4Level3:
-        requested_level.level = VEN_LEVEL_MPEG4_3;
-        break;
-      case OMX_VIDEO_MPEG4Level4a:
-        requested_level.level = VEN_LEVEL_MPEG4_4;
-        break;
-      case OMX_VIDEO_MPEG4Level5:
-        mb_per_sec = mb_per_frame * (m_sVenc_cfg.fps_num / m_sVenc_cfg.fps_den);
-		if((requested_profile.profile == VEN_PROFILE_MPEG4_SP) && (mb_per_frame >= profile_tbl[0]) &&
-           (mb_per_sec >= profile_tbl[1]))
-        {
-          DEBUG_PRINT_LOW("\nMPEG4 Level 6 is set for 720p resolution");
-          requested_level.level = VEN_LEVEL_MPEG4_6;
-        }
-        else
-        {
-          DEBUG_PRINT_LOW("\nMPEG4 Level 5 is set for non-720p resolution");
-          requested_level.level = VEN_LEVEL_MPEG4_5;
-        }
-        break;
-      default:
+
+    DEBUG_PRINT_LOW("Validating Profile/Level from table");
+
+    if (!venc_validate_profile_level(&eProfile, &eLevel)) {
+        DEBUG_PRINT_LOW("\nERROR: Profile/Level validation failed");
         return false;
-        // TODO update corresponding levels for MPEG4_LEVEL_3b,MPEG4_LEVEL_6
-        break;
-      }
     }
-  }
-  else if(m_sVenc_cfg.codectype == VEN_CODEC_H263)
-  {
-    if(eProfile == OMX_VIDEO_H263ProfileBaseline)
-    {
-      requested_profile.profile = VEN_PROFILE_H263_BASELINE;
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("\nERROR: Unsupported H.263 profile = %u",
-        requested_profile.profile);
-      return false;
-    }
-    //profile level
-    switch(eLevel)
-    {
-    case OMX_VIDEO_H263Level10:
-      requested_level.level = VEN_LEVEL_H263_10;
-      break;
-    case OMX_VIDEO_H263Level20:
-      requested_level.level = VEN_LEVEL_H263_20;
-      break;
-    case OMX_VIDEO_H263Level30:
-      requested_level.level = VEN_LEVEL_H263_30;
-      break;
-    case OMX_VIDEO_H263Level40:
-      requested_level.level = VEN_LEVEL_H263_40;
-      break;
-    case OMX_VIDEO_H263Level45:
-      requested_level.level = VEN_LEVEL_H263_45;
-      break;
-    case OMX_VIDEO_H263Level50:
-      requested_level.level = VEN_LEVEL_H263_50;
-      break;
-    case OMX_VIDEO_H263Level60:
-      requested_level.level = VEN_LEVEL_H263_60;
-      break;
-    case OMX_VIDEO_H263Level70:
-      requested_level.level = VEN_LEVEL_H263_70;
-      break;
-    default:
-      return false;
-      break;
-    }
-  }
-  else if(m_sVenc_cfg.codectype == VEN_CODEC_H264)
-  {
-    if(eProfile == OMX_VIDEO_AVCProfileBaseline)
-    {
-      requested_profile.profile = VEN_PROFILE_H264_BASELINE;
-    }
-    else if(eProfile == OMX_VIDEO_AVCProfileMain)
-    {
-      requested_profile.profile = VEN_PROFILE_H264_MAIN;
-    }
-    else if(eProfile == OMX_VIDEO_AVCProfileHigh)
-    {
-      requested_profile.profile = VEN_PROFILE_H264_HIGH;
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("\nERROR: Unsupported H.264 profile = %u",
-        requested_profile.profile);
-      return false;
-    }
-    //profile level
-    switch(eLevel)
-    {
-    case OMX_VIDEO_AVCLevel1:
-      requested_level.level = VEN_LEVEL_H264_1;
-      break;
-    case OMX_VIDEO_AVCLevel1b:
-      requested_level.level = VEN_LEVEL_H264_1b;
-      break;
-    case OMX_VIDEO_AVCLevel11:
-      requested_level.level = VEN_LEVEL_H264_1p1;
-      break;
-    case OMX_VIDEO_AVCLevel12:
-      requested_level.level = VEN_LEVEL_H264_1p2;
-      break;
-    case OMX_VIDEO_AVCLevel13:
-      requested_level.level = VEN_LEVEL_H264_1p3;
-      break;
-    case OMX_VIDEO_AVCLevel2:
-      requested_level.level = VEN_LEVEL_H264_2;
-      break;
-    case OMX_VIDEO_AVCLevel21:
-      requested_level.level = VEN_LEVEL_H264_2p1;
-      break;
-    case OMX_VIDEO_AVCLevel22:
-      requested_level.level = VEN_LEVEL_H264_2p2;
-      break;
-    case OMX_VIDEO_AVCLevel3:
-      requested_level.level = VEN_LEVEL_H264_3;
-      break;
-    case OMX_VIDEO_AVCLevel31:
-      requested_level.level = VEN_LEVEL_H264_3p1;
-      break;
-    case OMX_VIDEO_AVCLevel32:
-      requested_level.level = VEN_LEVEL_H264_3p2;
-      break;
-    case OMX_VIDEO_AVCLevel4:
-      requested_level.level = VEN_LEVEL_H264_4;
-      break;
-    default :
-      DEBUG_PRINT_ERROR("\nERROR: Unsupported H.264 level= %u",
-        requested_level.level);
-      return false;
-      break;
-    }
-  }
-  if(!m_profile_set)
-  {
-    ioctl_msg.in = (void*)&requested_profile;
-    ioctl_msg.out = NULL;
-    if(ioctl (m_nDriver_fd,VEN_IOCTL_SET_CODEC_PROFILE,(void*)&ioctl_msg)< 0)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: Request for setting profile failed");
-      return false;
-    }
-    codec_profile.profile = requested_profile.profile;
-    m_profile_set = true;
-    DEBUG_PRINT_HIGH("Set codec profile = 0x%x", codec_profile.profile);
-  }
 
-  if(!m_level_set)
-  {
-    ioctl_msg.in = (void*)&requested_level;
-    ioctl_msg.out = NULL;
-    if(ioctl (m_nDriver_fd,VEN_IOCTL_SET_PROFILE_LEVEL,(void*)&ioctl_msg)< 0)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: Request for setting profile level failed");
-      return false;
-    }
-    profile_level.level = requested_level.level;
-    m_level_set = true;
-    DEBUG_PRINT_HIGH("Set codec level = 0x%x", profile_level.level);
-  }
+    if (m_sVenc_cfg.codectype == VEN_CODEC_MPEG4) {
+        DEBUG_PRINT_LOW("eProfile = %d, OMX_VIDEO_MPEG4ProfileSimple = %d and "
+                "OMX_VIDEO_MPEG4ProfileAdvancedSimple = %d", eProfile,
+                OMX_VIDEO_MPEG4ProfileSimple, OMX_VIDEO_MPEG4ProfileAdvancedSimple);
 
-  return true;
+        if (eProfile == OMX_VIDEO_MPEG4ProfileSimple) {
+            requested_profile.profile = VEN_PROFILE_MPEG4_SP;
+            profile_tbl = (unsigned int const *)
+                (&mpeg4_profile_level_table[MPEG4_SP_START]);
+            profile_tbl += MPEG4_720P_LEVEL*5;
+        } else if (eProfile == OMX_VIDEO_MPEG4ProfileAdvancedSimple) {
+            requested_profile.profile = VEN_PROFILE_MPEG4_ASP;
+            profile_tbl = (unsigned int const *)
+                (&mpeg4_profile_level_table[MPEG4_ASP_START]);
+            profile_tbl += MPEG4_720P_LEVEL*5;
+        } else {
+            DEBUG_PRINT_LOW("\nERROR: Unsupported MPEG4 profile = %u",
+                    eProfile);
+            return false;
+        }
+
+        DEBUG_PRINT_LOW("eLevel = %d, OMX_VIDEO_MPEG4Level0 = %d, OMX_VIDEO_MPEG4Level1 = %d,"
+                "OMX_VIDEO_MPEG4Level2 = %d, OMX_VIDEO_MPEG4Level3 = %d, OMX_VIDEO_MPEG4Level4 = %d,"
+                "OMX_VIDEO_MPEG4Level5 = %d", eLevel, OMX_VIDEO_MPEG4Level0, OMX_VIDEO_MPEG4Level1,
+                OMX_VIDEO_MPEG4Level2, OMX_VIDEO_MPEG4Level3, OMX_VIDEO_MPEG4Level4, OMX_VIDEO_MPEG4Level5);
+
+        if (mb_per_frame >= 3600) {
+            if (requested_profile.profile == VEN_PROFILE_MPEG4_ASP)
+                requested_level.level = VEN_LEVEL_MPEG4_5;
+
+            if (requested_profile.profile == VEN_PROFILE_MPEG4_SP)
+                requested_level.level = VEN_LEVEL_MPEG4_6;
+        } else {
+            switch (eLevel) {
+                case OMX_VIDEO_MPEG4Level0:
+                    requested_level.level = VEN_LEVEL_MPEG4_0;
+                    break;
+                case OMX_VIDEO_MPEG4Level1:
+                    requested_level.level = VEN_LEVEL_MPEG4_1;
+                    break;
+                case OMX_VIDEO_MPEG4Level2:
+                    requested_level.level = VEN_LEVEL_MPEG4_2;
+                    break;
+                case OMX_VIDEO_MPEG4Level3:
+                    requested_level.level = VEN_LEVEL_MPEG4_3;
+                    break;
+                case OMX_VIDEO_MPEG4Level4a:
+                    requested_level.level = VEN_LEVEL_MPEG4_4;
+                    break;
+                case OMX_VIDEO_MPEG4Level5:
+                    mb_per_sec = mb_per_frame * (m_sVenc_cfg.fps_num / m_sVenc_cfg.fps_den);
+
+                    if ((requested_profile.profile == VEN_PROFILE_MPEG4_SP) && (mb_per_frame >= profile_tbl[0]) &&
+                            (mb_per_sec >= profile_tbl[1])) {
+                        DEBUG_PRINT_LOW("\nMPEG4 Level 6 is set for 720p resolution");
+                        requested_level.level = VEN_LEVEL_MPEG4_6;
+                    } else {
+                        DEBUG_PRINT_LOW("\nMPEG4 Level 5 is set for non-720p resolution");
+                        requested_level.level = VEN_LEVEL_MPEG4_5;
+                    }
+
+                    break;
+                default:
+                    return false;
+                    // TODO update corresponding levels for MPEG4_LEVEL_3b,MPEG4_LEVEL_6
+                    break;
+            }
+        }
+    } else if (m_sVenc_cfg.codectype == VEN_CODEC_H263) {
+        if (eProfile == OMX_VIDEO_H263ProfileBaseline) {
+            requested_profile.profile = VEN_PROFILE_H263_BASELINE;
+        } else {
+            DEBUG_PRINT_LOW("\nERROR: Unsupported H.263 profile = %u",
+                    requested_profile.profile);
+            return false;
+        }
+
+        //profile level
+        switch (eLevel) {
+            case OMX_VIDEO_H263Level10:
+                requested_level.level = VEN_LEVEL_H263_10;
+                break;
+            case OMX_VIDEO_H263Level20:
+                requested_level.level = VEN_LEVEL_H263_20;
+                break;
+            case OMX_VIDEO_H263Level30:
+                requested_level.level = VEN_LEVEL_H263_30;
+                break;
+            case OMX_VIDEO_H263Level40:
+                requested_level.level = VEN_LEVEL_H263_40;
+                break;
+            case OMX_VIDEO_H263Level45:
+                requested_level.level = VEN_LEVEL_H263_45;
+                break;
+            case OMX_VIDEO_H263Level50:
+                requested_level.level = VEN_LEVEL_H263_50;
+                break;
+            case OMX_VIDEO_H263Level60:
+                requested_level.level = VEN_LEVEL_H263_60;
+                break;
+            case OMX_VIDEO_H263Level70:
+                requested_level.level = VEN_LEVEL_H263_70;
+                break;
+            default:
+                return false;
+                break;
+        }
+    } else if (m_sVenc_cfg.codectype == VEN_CODEC_H264) {
+        if (eProfile == OMX_VIDEO_AVCProfileBaseline) {
+            requested_profile.profile = VEN_PROFILE_H264_BASELINE;
+        } else if (eProfile == OMX_VIDEO_AVCProfileMain) {
+            requested_profile.profile = VEN_PROFILE_H264_MAIN;
+        } else if (eProfile == OMX_VIDEO_AVCProfileHigh) {
+            requested_profile.profile = VEN_PROFILE_H264_HIGH;
+        } else {
+            DEBUG_PRINT_LOW("\nERROR: Unsupported H.264 profile = %u",
+                    requested_profile.profile);
+            return false;
+        }
+
+        //profile level
+        switch (eLevel) {
+            case OMX_VIDEO_AVCLevel1:
+                requested_level.level = VEN_LEVEL_H264_1;
+                break;
+            case OMX_VIDEO_AVCLevel1b:
+                requested_level.level = VEN_LEVEL_H264_1b;
+                break;
+            case OMX_VIDEO_AVCLevel11:
+                requested_level.level = VEN_LEVEL_H264_1p1;
+                break;
+            case OMX_VIDEO_AVCLevel12:
+                requested_level.level = VEN_LEVEL_H264_1p2;
+                break;
+            case OMX_VIDEO_AVCLevel13:
+                requested_level.level = VEN_LEVEL_H264_1p3;
+                break;
+            case OMX_VIDEO_AVCLevel2:
+                requested_level.level = VEN_LEVEL_H264_2;
+                break;
+            case OMX_VIDEO_AVCLevel21:
+                requested_level.level = VEN_LEVEL_H264_2p1;
+                break;
+            case OMX_VIDEO_AVCLevel22:
+                requested_level.level = VEN_LEVEL_H264_2p2;
+                break;
+            case OMX_VIDEO_AVCLevel3:
+                requested_level.level = VEN_LEVEL_H264_3;
+                break;
+            case OMX_VIDEO_AVCLevel31:
+                requested_level.level = VEN_LEVEL_H264_3p1;
+                break;
+            case OMX_VIDEO_AVCLevel32:
+                requested_level.level = VEN_LEVEL_H264_3p2;
+                break;
+            case OMX_VIDEO_AVCLevel4:
+                requested_level.level = VEN_LEVEL_H264_4;
+                break;
+            default :
+                DEBUG_PRINT_ERROR("\nERROR: Unsupported H.264 level= %u",
+                        requested_level.level);
+                return false;
+                break;
+        }
+    }
+
+    if (!m_profile_set) {
+        ioctl_msg.in = (void*)&requested_profile;
+        ioctl_msg.out = NULL;
+
+        if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_CODEC_PROFILE,(void*)&ioctl_msg)< 0) {
+            DEBUG_PRINT_ERROR("\nERROR: Request for setting profile failed");
+            return false;
+        }
+
+        codec_profile.profile = requested_profile.profile;
+        m_profile_set = true;
+        DEBUG_PRINT_HIGH("Set codec profile = 0x%x", codec_profile.profile);
+    }
+
+    if (!m_level_set) {
+        ioctl_msg.in = (void*)&requested_level;
+        ioctl_msg.out = NULL;
+
+        if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_PROFILE_LEVEL,(void*)&ioctl_msg)< 0) {
+            DEBUG_PRINT_ERROR("\nERROR: Request for setting profile level failed");
+            return false;
+        }
+
+        profile_level.level = requested_level.level;
+        m_level_set = true;
+        DEBUG_PRINT_HIGH("Set codec level = 0x%x", profile_level.level);
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_set_voptiming_cfg( OMX_U32 TimeIncRes)
 {
-  venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  struct venc_voptimingcfg vop_timing_cfg;
+    venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    struct venc_voptimingcfg vop_timing_cfg;
 
-  DEBUG_PRINT_HIGH("venc_set_voptiming_cfg: TimeRes = %u",
-    TimeIncRes);
+    DEBUG_PRINT_HIGH("venc_set_voptiming_cfg: TimeRes = %u",
+            TimeIncRes);
 
-  vop_timing_cfg.voptime_resolution = TimeIncRes;
+    vop_timing_cfg.voptime_resolution = TimeIncRes;
 
-  ioctl_msg.in = (void*)&vop_timing_cfg;
-  ioctl_msg.out = NULL;
-  if(ioctl (m_nDriver_fd,VEN_IOCTL_SET_VOP_TIMING_CFG,(void*)&ioctl_msg)< 0)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Request for setting Vop Timing failed");
-    return false;
-  }
+    ioctl_msg.in = (void*)&vop_timing_cfg;
+    ioctl_msg.out = NULL;
 
-  voptimecfg.voptime_resolution = vop_timing_cfg.voptime_resolution;
-  return true;
+    if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_VOP_TIMING_CFG,(void*)&ioctl_msg)< 0) {
+        DEBUG_PRINT_ERROR("\nERROR: Request for setting Vop Timing failed");
+        return false;
+    }
+
+    voptimecfg.voptime_resolution = vop_timing_cfg.voptime_resolution;
+    return true;
 }
 
 bool venc_dev::venc_set_intra_period(OMX_U32 nPFrames, OMX_U32 nBFrames)
 {
-  venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  struct venc_intraperiod intraperiod_cfg;
+    venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    struct venc_intraperiod intraperiod_cfg;
 
-  DEBUG_PRINT_LOW("venc_set_intra_period: nPFrames = %u",
-    nPFrames);
-  intraperiod_cfg.num_pframes = nPFrames;
-  if((codec_profile.profile == VEN_PROFILE_MPEG4_ASP) ||
-     (codec_profile.profile == VEN_PROFILE_H264_MAIN) ||
-     (codec_profile.profile == VEN_PROFILE_H264_HIGH))
-  {
+    DEBUG_PRINT_LOW("venc_set_intra_period: nPFrames = %u",
+            nPFrames);
+    intraperiod_cfg.num_pframes = nPFrames;
+
+    if ((codec_profile.profile == VEN_PROFILE_MPEG4_ASP) ||
+            (codec_profile.profile == VEN_PROFILE_H264_MAIN) ||
+            (codec_profile.profile == VEN_PROFILE_H264_HIGH)) {
 #ifdef MAX_RES_1080P
-    if (nBFrames)
-    {
-      DEBUG_PRINT_HIGH("INFO: Only 1 Bframe is supported");
-      intraperiod_cfg.num_bframes = 1;
-    }
-    else
-      intraperiod_cfg.num_bframes = 0;
+
+        if (nBFrames) {
+            DEBUG_PRINT_HIGH("INFO: Only 1 Bframe is supported");
+            intraperiod_cfg.num_bframes = 1;
+        } else
+            intraperiod_cfg.num_bframes = 0;
+
 #else
-    if(nBFrames)
-    {
-      DEBUG_PRINT_ERROR("B frames not supported");
-      intraperiod_cfg.num_bframes = 0;
-    }
-    else
-    {
-      DEBUG_PRINT_ERROR("B frames not supported");
-      intraperiod_cfg.num_bframes = 0;
-    }
+
+        if (nBFrames) {
+            DEBUG_PRINT_ERROR("B frames not supported");
+            intraperiod_cfg.num_bframes = 0;
+        } else {
+            DEBUG_PRINT_ERROR("B frames not supported");
+            intraperiod_cfg.num_bframes = 0;
+        }
+
 #endif
-  }
-  else
-    intraperiod_cfg.num_bframes = 0;
+    } else
+        intraperiod_cfg.num_bframes = 0;
 
-  DEBUG_PRINT_HIGH("venc_set_intra_period: nPFrames = %u nBFrames = %u",
-                    intraperiod_cfg.num_pframes, intraperiod_cfg.num_bframes);
-  ioctl_msg.in = (void*)&intraperiod_cfg;
-  ioctl_msg.out = NULL;
-  if(ioctl (m_nDriver_fd,VEN_IOCTL_SET_INTRA_PERIOD,(void*)&ioctl_msg)< 0)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Request for setting intra period failed");
-    return false;
-  }
+    DEBUG_PRINT_HIGH("venc_set_intra_period: nPFrames = %u nBFrames = %u",
+            intraperiod_cfg.num_pframes, intraperiod_cfg.num_bframes);
+    ioctl_msg.in = (void*)&intraperiod_cfg;
+    ioctl_msg.out = NULL;
 
-  intra_period.num_pframes = intraperiod_cfg.num_pframes;
-  intra_period.num_bframes = intraperiod_cfg.num_bframes;
-  return true;
+    if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_INTRA_PERIOD,(void*)&ioctl_msg)< 0) {
+        DEBUG_PRINT_ERROR("\nERROR: Request for setting intra period failed");
+        return false;
+    }
+
+    intra_period.num_pframes = intraperiod_cfg.num_pframes;
+    intra_period.num_bframes = intraperiod_cfg.num_bframes;
+    return true;
 }
 
 bool venc_dev::venc_set_entropy_config(OMX_BOOL enable, OMX_U32 i_cabac_level)
 {
-  venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  struct venc_entropycfg entropy_cfg;
+    venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    struct venc_entropycfg entropy_cfg;
 
-  memset(&entropy_cfg,0,sizeof(entropy_cfg));
-  DEBUG_PRINT_LOW("\n venc_set_entropy_config: CABAC = %u level: %u", enable, i_cabac_level);
+    memset(&entropy_cfg,0,sizeof(entropy_cfg));
+    DEBUG_PRINT_LOW("\n venc_set_entropy_config: CABAC = %u level: %u", enable, i_cabac_level);
 
-  if(enable &&(codec_profile.profile != VEN_PROFILE_H264_BASELINE)){
-    entropy_cfg.longentropysel = VEN_ENTROPY_MODEL_CABAC;
-      if (i_cabac_level == 0) {
-         entropy_cfg.cabacmodel = VEN_CABAC_MODEL_0;
-      }
+    if (enable &&(codec_profile.profile != VEN_PROFILE_H264_BASELINE)) {
+        entropy_cfg.longentropysel = VEN_ENTROPY_MODEL_CABAC;
+
+        if (i_cabac_level == 0) {
+            entropy_cfg.cabacmodel = VEN_CABAC_MODEL_0;
+        }
+
 #ifdef MAX_RES_1080P
-      else
-      {
-        DEBUG_PRINT_HIGH("Invalid model set (%d) defaulting to  model 0",i_cabac_level);
-        entropy_cfg.cabacmodel = VEN_CABAC_MODEL_0;
-      }
-#else
-      else if (i_cabac_level == 1) {
-         entropy_cfg.cabacmodel = VEN_CABAC_MODEL_1;
-      }
-      else if (i_cabac_level == 2) {
-         entropy_cfg.cabacmodel = VEN_CABAC_MODEL_2;
-      }
-#endif
-  }
-  else if(!enable){
-    entropy_cfg.longentropysel = VEN_ENTROPY_MODEL_CAVLC;
-    }
-  else{
-    DEBUG_PRINT_ERROR("\nInvalid Entropy mode for Baseline Profile");
-    return false;
-  }
+        else {
+            DEBUG_PRINT_HIGH("Invalid model set (%d) defaulting to  model 0",i_cabac_level);
+            entropy_cfg.cabacmodel = VEN_CABAC_MODEL_0;
+        }
 
-  ioctl_msg.in = (void*)&entropy_cfg;
-  ioctl_msg.out = NULL;
-  if(ioctl (m_nDriver_fd,VEN_IOCTL_SET_ENTROPY_CFG,(void*)&ioctl_msg)< 0)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Request for setting entropy config failed");
-    return false;
-  }
-  entropy.longentropysel = entropy_cfg.longentropysel;
-  entropy.cabacmodel  = entropy_cfg.cabacmodel;
-  return true;
+#else
+        else if (i_cabac_level == 1) {
+            entropy_cfg.cabacmodel = VEN_CABAC_MODEL_1;
+        } else if (i_cabac_level == 2) {
+            entropy_cfg.cabacmodel = VEN_CABAC_MODEL_2;
+        }
+
+#endif
+    } else if (!enable) {
+        entropy_cfg.longentropysel = VEN_ENTROPY_MODEL_CAVLC;
+    } else {
+        DEBUG_PRINT_ERROR("\nInvalid Entropy mode for Baseline Profile");
+        return false;
+    }
+
+    ioctl_msg.in = (void*)&entropy_cfg;
+    ioctl_msg.out = NULL;
+
+    if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_ENTROPY_CFG,(void*)&ioctl_msg)< 0) {
+        DEBUG_PRINT_ERROR("\nERROR: Request for setting entropy config failed");
+        return false;
+    }
+
+    entropy.longentropysel = entropy_cfg.longentropysel;
+    entropy.cabacmodel  = entropy_cfg.cabacmodel;
+    return true;
 }
 
 bool venc_dev::venc_set_multislice_cfg(OMX_INDEXTYPE Codec, OMX_U32 nSlicesize) // MB
 {
- venc_ioctl_msg ioctl_msg = {NULL, NULL};
-  bool status = true;
-  struct venc_multiclicecfg multislice_cfg;
+    venc_ioctl_msg ioctl_msg = {NULL, NULL};
+    bool status = true;
+    struct venc_multiclicecfg multislice_cfg;
 
-  if((Codec != OMX_IndexParamVideoH263)  && (nSlicesize)){
-    multislice_cfg.mslice_mode = VEN_MSLICE_CNT_MB;
-    multislice_cfg.mslice_size = nSlicesize;
+    if ((Codec != OMX_IndexParamVideoH263)  && (nSlicesize)) {
+        multislice_cfg.mslice_mode = VEN_MSLICE_CNT_MB;
+        multislice_cfg.mslice_size = nSlicesize;
+    } else {
+        multislice_cfg.mslice_mode = VEN_MSLICE_OFF;
+        multislice_cfg.mslice_size = 0;
     }
-  else{
-    multislice_cfg.mslice_mode = VEN_MSLICE_OFF;
-    multislice_cfg.mslice_size = 0;
-  }
 
-  DEBUG_PRINT_LOW("\n %s(): mode = %u, size = %u", __func__, multislice_cfg.mslice_mode,
-                  multislice_cfg.mslice_size);
+    DEBUG_PRINT_LOW("\n %s(): mode = %u, size = %u", __func__, multislice_cfg.mslice_mode,
+            multislice_cfg.mslice_size);
 
-  ioctl_msg.in = (void*)&multislice_cfg;
-  ioctl_msg.out = NULL;
-  if(ioctl (m_nDriver_fd, VEN_IOCTL_SET_MULTI_SLICE_CFG,(void*)&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Request for setting multi-slice cfg failed");
-    status = false;
-  }
-  else
-  {
-    multislice.mslice_mode = multislice_cfg.mslice_mode;
-    multislice.mslice_size = nSlicesize;
-  }
-  return status;
+    ioctl_msg.in = (void*)&multislice_cfg;
+    ioctl_msg.out = NULL;
+
+    if (ioctl (m_nDriver_fd, VEN_IOCTL_SET_MULTI_SLICE_CFG,(void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("\nERROR: Request for setting multi-slice cfg failed");
+        status = false;
+    } else {
+        multislice.mslice_mode = multislice_cfg.mslice_mode;
+        multislice.mslice_size = nSlicesize;
+    }
+
+    return status;
 }
 
 bool venc_dev::venc_set_intra_refresh(OMX_VIDEO_INTRAREFRESHTYPE ir_mode, OMX_U32 irMBs)
 {
- venc_ioctl_msg ioctl_msg = {NULL, NULL};
-  bool status = true;
-  struct venc_intrarefresh intraRefresh_cfg;
+    venc_ioctl_msg ioctl_msg = {NULL, NULL};
+    bool status = true;
+    struct venc_intrarefresh intraRefresh_cfg;
 
-  // There is no disabled mode.  Disabled mode is indicated by a 0 count.
-  if (irMBs == 0 || ir_mode == OMX_VIDEO_IntraRefreshMax)
-  {
-    intraRefresh_cfg.irmode = VEN_IR_OFF;
-    intraRefresh_cfg.mbcount = 0;
-  }
-  else if ((ir_mode == OMX_VIDEO_IntraRefreshCyclic) &&
-           (irMBs < ((m_sVenc_cfg.input_width * m_sVenc_cfg.input_height)>>8)))
-  {
-    intraRefresh_cfg.irmode = VEN_IR_CYCLIC;
-    intraRefresh_cfg.mbcount = irMBs;
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Invalid IntraRefresh Parameters:"
-                      "mb count: %d, mb mode:%d", irMBs, ir_mode);
-    return false;
-  }
+    // There is no disabled mode.  Disabled mode is indicated by a 0 count.
+    if (irMBs == 0 || ir_mode == OMX_VIDEO_IntraRefreshMax) {
+        intraRefresh_cfg.irmode = VEN_IR_OFF;
+        intraRefresh_cfg.mbcount = 0;
+    } else if ((ir_mode == OMX_VIDEO_IntraRefreshCyclic) &&
+            (irMBs < ((m_sVenc_cfg.input_width * m_sVenc_cfg.input_height)>>8))) {
+        intraRefresh_cfg.irmode = VEN_IR_CYCLIC;
+        intraRefresh_cfg.mbcount = irMBs;
+    } else {
+        DEBUG_PRINT_ERROR("\nERROR: Invalid IntraRefresh Parameters:"
+                "mb count: %d, mb mode:%d", irMBs, ir_mode);
+        return false;
+    }
 
-  ioctl_msg.in = (void*)&intraRefresh_cfg;
-  ioctl_msg.out = NULL;
-  if(ioctl (m_nDriver_fd,VEN_IOCTL_SET_INTRA_REFRESH,(void*)&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Request for setting Intra Refresh failed");
-    status = false;
-  }
-  else
-  {
-    intra_refresh.irmode = intraRefresh_cfg.irmode;
-    intra_refresh.mbcount = intraRefresh_cfg.mbcount;
-  }
-  return status;
+    ioctl_msg.in = (void*)&intraRefresh_cfg;
+    ioctl_msg.out = NULL;
+
+    if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_INTRA_REFRESH,(void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("\nERROR: Request for setting Intra Refresh failed");
+        status = false;
+    } else {
+        intra_refresh.irmode = intraRefresh_cfg.irmode;
+        intra_refresh.mbcount = intraRefresh_cfg.mbcount;
+    }
+
+    return status;
 }
 
 bool venc_dev::venc_set_error_resilience(OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE* error_resilience)
 {
-   venc_ioctl_msg ioctl_msg = {NULL, NULL};
-   bool status = true;
-   struct venc_headerextension hec_cfg;
-   struct venc_multiclicecfg multislice_cfg;
+    venc_ioctl_msg ioctl_msg = {NULL, NULL};
+    bool status = true;
+    struct venc_headerextension hec_cfg;
+    struct venc_multiclicecfg multislice_cfg;
 
-   if (m_sVenc_cfg.codectype == OMX_VIDEO_CodingMPEG4) {
-      if (error_resilience->bEnableHEC) {
-         hec_cfg.header_extension = 1;
-      }
-      else {
-         hec_cfg.header_extension = 0;
-      }
+    if (m_sVenc_cfg.codectype == OMX_VIDEO_CodingMPEG4) {
+        if (error_resilience->bEnableHEC) {
+            hec_cfg.header_extension = 1;
+        } else {
+            hec_cfg.header_extension = 0;
+        }
 
-      ioctl_msg.in = (void*)&hec_cfg;
-      ioctl_msg.out = NULL;
-      if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_HEC,(void*)&ioctl_msg) < 0) {
-         DEBUG_PRINT_ERROR("\nERROR: Request for setting HEader Error correction failed");
-         return false;
-      }
-      hec.header_extension = error_resilience->bEnableHEC;
-   }
+        ioctl_msg.in = (void*)&hec_cfg;
+        ioctl_msg.out = NULL;
 
-   if (error_resilience->bEnableRVLC) {
-     DEBUG_PRINT_ERROR("\n RVLC is not Supported");
-     return false;
-   }
+        if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_HEC,(void*)&ioctl_msg) < 0) {
+            DEBUG_PRINT_ERROR("\nERROR: Request for setting HEader Error correction failed");
+            return false;
+        }
 
-   if (( m_sVenc_cfg.codectype != OMX_VIDEO_CodingH263) &&
-       (error_resilience->bEnableDataPartitioning)) {
-     DEBUG_PRINT_ERROR("\n DataPartioning are not Supported for MPEG4/H264");
-     return false;
-     }
+        hec.header_extension = error_resilience->bEnableHEC;
+    }
 
-   if (( m_sVenc_cfg.codectype != OMX_VIDEO_CodingH263) &&
+    if (error_resilience->bEnableRVLC) {
+        DEBUG_PRINT_ERROR("\n RVLC is not Supported");
+        return false;
+    }
+
+    if (( m_sVenc_cfg.codectype != OMX_VIDEO_CodingH263) &&
+            (error_resilience->bEnableDataPartitioning)) {
+        DEBUG_PRINT_ERROR("\n DataPartioning are not Supported for MPEG4/H264");
+        return false;
+    }
+
+    if (( m_sVenc_cfg.codectype != OMX_VIDEO_CodingH263) &&
             (error_resilience->nResynchMarkerSpacing)) {
-     multislice_cfg.mslice_mode = VEN_MSLICE_CNT_BYTE;
-       multislice_cfg.mslice_size = error_resilience->nResynchMarkerSpacing;
-     }
-   else if (m_sVenc_cfg.codectype == OMX_VIDEO_CodingH263 &&
+        multislice_cfg.mslice_mode = VEN_MSLICE_CNT_BYTE;
+        multislice_cfg.mslice_size = error_resilience->nResynchMarkerSpacing;
+    } else if (m_sVenc_cfg.codectype == OMX_VIDEO_CodingH263 &&
             error_resilience->bEnableDataPartitioning) {
-      multislice_cfg.mslice_mode = VEN_MSLICE_GOB;
-      multislice_cfg.mslice_size = 0;
-      }
-      else {
+        multislice_cfg.mslice_mode = VEN_MSLICE_GOB;
+        multislice_cfg.mslice_size = 0;
+    } else {
         multislice_cfg.mslice_mode = VEN_MSLICE_OFF;
         multislice_cfg.mslice_size = 0;
-        }
-   DEBUG_PRINT_LOW("\n %s(): mode = %u, size = %u", __func__, multislice_cfg.mslice_mode,
-                   multislice_cfg.mslice_size);
-   ioctl_msg.in = (void*)&multislice_cfg;
-   ioctl_msg.out = NULL;
-   if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_MULTI_SLICE_CFG,(void*)&ioctl_msg) < 0) {
-      DEBUG_PRINT_ERROR("\nERROR: Request for setting multi-slice cfg failed");
-      status = false;
-   }
-   else
-   {
-     multislice.mslice_mode = multislice_cfg.mslice_mode ;
-     multislice.mslice_size = multislice_cfg.mslice_size;
+    }
 
-   }
-   return status;
+    DEBUG_PRINT_LOW("\n %s(): mode = %u, size = %u", __func__, multislice_cfg.mslice_mode,
+            multislice_cfg.mslice_size);
+    ioctl_msg.in = (void*)&multislice_cfg;
+    ioctl_msg.out = NULL;
+
+    if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_MULTI_SLICE_CFG,(void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("\nERROR: Request for setting multi-slice cfg failed");
+        status = false;
+    } else {
+        multislice.mslice_mode = multislice_cfg.mslice_mode ;
+        multislice.mslice_size = multislice_cfg.mslice_size;
+
+    }
+
+    return status;
 }
 
 bool venc_dev::venc_set_inloop_filter(OMX_VIDEO_AVCLOOPFILTERTYPE loopfilter)
 {
-  venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  struct venc_dbcfg filter_cfg;
+    venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    struct venc_dbcfg filter_cfg;
 
-  memset(&filter_cfg, 0, sizeof(filter_cfg));
-  DEBUG_PRINT_LOW("\n venc_set_inloop_filter: %u",loopfilter);
+    memset(&filter_cfg, 0, sizeof(filter_cfg));
+    DEBUG_PRINT_LOW("\n venc_set_inloop_filter: %u",loopfilter);
 
-  if (loopfilter == OMX_VIDEO_AVCLoopFilterEnable){
-    filter_cfg.db_mode = VEN_DB_ALL_BLKG_BNDRY;
-  }
-  else if(loopfilter == OMX_VIDEO_AVCLoopFilterDisable){
-    filter_cfg.db_mode = VEN_DB_DISABLE;
-  }
-  else if(loopfilter == OMX_VIDEO_AVCLoopFilterDisableSliceBoundary){
-    filter_cfg.db_mode = VEN_DB_SKIP_SLICE_BNDRY;
-  }
-  filter_cfg.slicealpha_offset = filter_cfg.slicebeta_offset = 0;
+    if (loopfilter == OMX_VIDEO_AVCLoopFilterEnable) {
+        filter_cfg.db_mode = VEN_DB_ALL_BLKG_BNDRY;
+    } else if (loopfilter == OMX_VIDEO_AVCLoopFilterDisable) {
+        filter_cfg.db_mode = VEN_DB_DISABLE;
+    } else if (loopfilter == OMX_VIDEO_AVCLoopFilterDisableSliceBoundary) {
+        filter_cfg.db_mode = VEN_DB_SKIP_SLICE_BNDRY;
+    }
 
-  ioctl_msg.in = (void*)&filter_cfg;
-  ioctl_msg.out = NULL;
-  if(ioctl (m_nDriver_fd,VEN_IOCTL_SET_DEBLOCKING_CFG,(void*)&ioctl_msg)< 0)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Request for setting inloop filter failed");
-    return false;
-  }
+    filter_cfg.slicealpha_offset = filter_cfg.slicebeta_offset = 0;
 
-  dbkfilter.db_mode = filter_cfg.db_mode;
-  dbkfilter.slicealpha_offset = dbkfilter.slicebeta_offset = 0;
-  return true;
+    ioctl_msg.in = (void*)&filter_cfg;
+    ioctl_msg.out = NULL;
+
+    if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_DEBLOCKING_CFG,(void*)&ioctl_msg)< 0) {
+        DEBUG_PRINT_ERROR("\nERROR: Request for setting inloop filter failed");
+        return false;
+    }
+
+    dbkfilter.db_mode = filter_cfg.db_mode;
+    dbkfilter.slicealpha_offset = dbkfilter.slicebeta_offset = 0;
+    return true;
 }
 
 bool venc_dev::venc_set_target_bitrate(OMX_U32 nTargetBitrate, OMX_U32 config)
 {
-  venc_ioctl_msg ioctl_msg = {NULL, NULL};
-  struct venc_targetbitrate bitrate_cfg;
+    venc_ioctl_msg ioctl_msg = {NULL, NULL};
+    struct venc_targetbitrate bitrate_cfg;
 
-  DEBUG_PRINT_HIGH("venc_set_target_bitrate: bitrate = %u",
-    nTargetBitrate);
-  bitrate_cfg.target_bitrate = nTargetBitrate ;
-  ioctl_msg.in = (void*)&bitrate_cfg;
-  ioctl_msg.out = NULL;
-  if(ioctl (m_nDriver_fd,VEN_IOCTL_SET_TARGET_BITRATE,(void*)&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Request for setting bit rate failed");
-    return false;
-  }
-  m_sVenc_cfg.targetbitrate = nTargetBitrate;
-  bitrate.target_bitrate = nTargetBitrate;
-  if(!config)
-  {
-    m_level_set = false;
-    if(venc_set_profile_level(0, 0))
-    {
-      DEBUG_PRINT_LOW("Calling set level (Bitrate) with %d\n",profile_level.level);
+    DEBUG_PRINT_HIGH("venc_set_target_bitrate: bitrate = %u",
+            nTargetBitrate);
+    bitrate_cfg.target_bitrate = nTargetBitrate ;
+    ioctl_msg.in = (void*)&bitrate_cfg;
+    ioctl_msg.out = NULL;
+
+    if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_TARGET_BITRATE,(void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("\nERROR: Request for setting bit rate failed");
+        return false;
     }
-  }
-  return true;
+
+    m_sVenc_cfg.targetbitrate = nTargetBitrate;
+    bitrate.target_bitrate = nTargetBitrate;
+
+    if (!config) {
+        m_level_set = false;
+
+        if (venc_set_profile_level(0, 0)) {
+            DEBUG_PRINT_LOW("Calling set level (Bitrate) with %d\n",profile_level.level);
+        }
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_set_encode_framerate(OMX_U32 encode_framerate, OMX_U32 config)
 {
-  venc_ioctl_msg ioctl_msg = {NULL, NULL};
-  struct venc_framerate frame_rate_cfg;
+    venc_ioctl_msg ioctl_msg = {NULL, NULL};
+    struct venc_framerate frame_rate_cfg;
 
-  Q16ToFraction(encode_framerate,frame_rate_cfg.fps_numerator,frame_rate_cfg.fps_denominator);
+    Q16ToFraction(encode_framerate,frame_rate_cfg.fps_numerator,frame_rate_cfg.fps_denominator);
 
-  DEBUG_PRINT_HIGH("venc_set_encode_framerate: framerate(Q16) = %u, NR: %d, DR: %d",
-                  encode_framerate,frame_rate_cfg.fps_numerator,frame_rate_cfg.fps_denominator);
+    DEBUG_PRINT_HIGH("venc_set_encode_framerate: framerate(Q16) = %u, NR: %d, DR: %d",
+            encode_framerate,frame_rate_cfg.fps_numerator,frame_rate_cfg.fps_denominator);
 
-  ioctl_msg.in = (void*)&frame_rate_cfg;
-  ioctl_msg.out = NULL;
-  if(ioctl(m_nDriver_fd, VEN_IOCTL_SET_FRAME_RATE,
-      (void*)&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Request for setting framerate failed");
-    return false;
-  }
+    ioctl_msg.in = (void*)&frame_rate_cfg;
+    ioctl_msg.out = NULL;
 
-  m_sVenc_cfg.fps_den = frame_rate_cfg.fps_denominator;
-  m_sVenc_cfg.fps_num = frame_rate_cfg.fps_numerator;
-  if(!config)
-  {
-    m_level_set = false;
-    if(venc_set_profile_level(0, 0))
-    {
-      DEBUG_PRINT_LOW("Calling set level (Framerate) with %d",profile_level.level);
+    if (ioctl(m_nDriver_fd, VEN_IOCTL_SET_FRAME_RATE,
+                (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("\nERROR: Request for setting framerate failed");
+        return false;
     }
-  }
-  return true;
+
+    m_sVenc_cfg.fps_den = frame_rate_cfg.fps_denominator;
+    m_sVenc_cfg.fps_num = frame_rate_cfg.fps_numerator;
+
+    if (!config) {
+        m_level_set = false;
+
+        if (venc_set_profile_level(0, 0)) {
+            DEBUG_PRINT_LOW("Calling set level (Framerate) with %d",profile_level.level);
+        }
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_set_color_format(OMX_COLOR_FORMATTYPE color_format)
 {
-  venc_ioctl_msg ioctl_msg = {NULL, NULL};
-  if(color_format == OMX_COLOR_FormatYUV420SemiPlanar)
-  {
+    venc_ioctl_msg ioctl_msg = {NULL, NULL};
+
+    if (color_format == OMX_COLOR_FormatYUV420SemiPlanar) {
 #ifdef MAX_RES_1080P
-  m_sVenc_cfg.inputformat= VEN_INPUTFMT_NV12_16M2KA;
+        m_sVenc_cfg.inputformat= VEN_INPUTFMT_NV12_16M2KA;
 #else
-    m_sVenc_cfg.inputformat = VEN_INPUTFMT_NV12;
+        m_sVenc_cfg.inputformat = VEN_INPUTFMT_NV12;
 #endif
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("\nWARNING: Unsupported Color format [%d]", color_format);
+    } else {
+        DEBUG_PRINT_ERROR("\nWARNING: Unsupported Color format [%d]", color_format);
 #ifdef MAX_RES_1080P
-    m_sVenc_cfg.inputformat= VEN_INPUTFMT_NV12_16M2KA;
+        m_sVenc_cfg.inputformat= VEN_INPUTFMT_NV12_16M2KA;
 #else
-    m_sVenc_cfg.inputformat = VEN_INPUTFMT_NV12;
+        m_sVenc_cfg.inputformat = VEN_INPUTFMT_NV12;
 #endif
-    DEBUG_PRINT_HIGH("\n Default color format YUV420SemiPlanar is set");
-  }
-  ioctl_msg.in = (void*)&m_sVenc_cfg;
-  ioctl_msg.out = NULL;
-  if (ioctl(m_nDriver_fd, VEN_IOCTL_SET_BASE_CFG, (void*)&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Request for setting color format failed");
-    return false;
-  }
-  return true;
+        DEBUG_PRINT_HIGH("\n Default color format YUV420SemiPlanar is set");
+    }
+
+    ioctl_msg.in = (void*)&m_sVenc_cfg;
+    ioctl_msg.out = NULL;
+
+    if (ioctl(m_nDriver_fd, VEN_IOCTL_SET_BASE_CFG, (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR("\nERROR: Request for setting color format failed");
+        return false;
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_set_intra_vop_refresh(OMX_BOOL intra_vop_refresh)
 {
-  DEBUG_PRINT_LOW("\n venc_set_intra_vop_refresh: intra_vop = %uc", intra_vop_refresh);
-  if(intra_vop_refresh == OMX_TRUE)
-  {
-    if(ioctl(m_nDriver_fd, VEN_IOCTL_CMD_REQUEST_IFRAME, NULL) < 0)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: Request for setting Intra VOP Refresh failed");
-      return false;
+    DEBUG_PRINT_LOW("\n venc_set_intra_vop_refresh: intra_vop = %uc", intra_vop_refresh);
+
+    if (intra_vop_refresh == OMX_TRUE) {
+        if (ioctl(m_nDriver_fd, VEN_IOCTL_CMD_REQUEST_IFRAME, NULL) < 0) {
+            DEBUG_PRINT_ERROR("\nERROR: Request for setting Intra VOP Refresh failed");
+            return false;
+        }
+    } else {
+        DEBUG_PRINT_ERROR("\nERROR: VOP Refresh is False, no effect");
     }
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("\nERROR: VOP Refresh is False, no effect");
-  }
-  return true;
+
+    return true;
 }
 
 bool venc_dev::venc_set_ratectrl_cfg(OMX_VIDEO_CONTROLRATETYPE eControlRate)
 {
-  venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  bool status = true;
-  struct venc_ratectrlcfg ratectrl_cfg;
+    venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    bool status = true;
+    struct venc_ratectrlcfg ratectrl_cfg;
 
-  //rate control
-  switch(eControlRate)
-  {
-  case OMX_Video_ControlRateDisable:
-    ratectrl_cfg.rcmode = VEN_RC_OFF;
-    break;
-  case OMX_Video_ControlRateVariableSkipFrames:
-    ratectrl_cfg.rcmode = VEN_RC_VBR_VFR;
-    break;
-  case OMX_Video_ControlRateVariable:
-    ratectrl_cfg.rcmode = VEN_RC_VBR_CFR;
-    break;
-  case OMX_Video_ControlRateConstantSkipFrames:
-    ratectrl_cfg.rcmode = VEN_RC_CBR_VFR;
-    break;
-  case OMX_Video_ControlRateConstant:
-    ratectrl_cfg.rcmode = VEN_RC_CBR_CFR;
-    break;
-  default:
-    status = false;
-    break;
-  }
-
-  if(status)
-  {
-    ioctl_msg.in = (void*)&ratectrl_cfg;
-    ioctl_msg.out = NULL;
-    if(ioctl (m_nDriver_fd,VEN_IOCTL_SET_RATE_CTRL_CFG,(void*)&ioctl_msg) < 0)
-    {
-      DEBUG_PRINT_ERROR("\nERROR: Request for setting rate control failed");
-      status = false;
+    //rate control
+    switch (eControlRate) {
+        case OMX_Video_ControlRateDisable:
+            ratectrl_cfg.rcmode = VEN_RC_OFF;
+            break;
+        case OMX_Video_ControlRateVariableSkipFrames:
+            ratectrl_cfg.rcmode = VEN_RC_VBR_VFR;
+            break;
+        case OMX_Video_ControlRateVariable:
+            ratectrl_cfg.rcmode = VEN_RC_VBR_CFR;
+            break;
+        case OMX_Video_ControlRateConstantSkipFrames:
+            ratectrl_cfg.rcmode = VEN_RC_CBR_VFR;
+            break;
+        case OMX_Video_ControlRateConstant:
+            ratectrl_cfg.rcmode = VEN_RC_CBR_CFR;
+            break;
+        default:
+            status = false;
+            break;
     }
-    else
-      rate_ctrl.rcmode = ratectrl_cfg.rcmode;
-  }
-  return status;
+
+    if (status) {
+        ioctl_msg.in = (void*)&ratectrl_cfg;
+        ioctl_msg.out = NULL;
+
+        if (ioctl (m_nDriver_fd,VEN_IOCTL_SET_RATE_CTRL_CFG,(void*)&ioctl_msg) < 0) {
+            DEBUG_PRINT_ERROR("\nERROR: Request for setting rate control failed");
+            status = false;
+        } else
+            rate_ctrl.rcmode = ratectrl_cfg.rcmode;
+    }
+
+    return status;
 }
 
 bool venc_dev::venc_get_profile_level(OMX_U32 *eProfile,OMX_U32 *eLevel)
 {
-  bool status = true;
-  if(eProfile == NULL || eLevel == NULL)
-  {
-    return false;
-  }
+    bool status = true;
 
-  if(m_sVenc_cfg.codectype == VEN_CODEC_MPEG4)
-  {
-    switch(codec_profile.profile)
-    {
-    case VEN_PROFILE_MPEG4_SP:
-      *eProfile = OMX_VIDEO_MPEG4ProfileSimple;
-      break;
-    case VEN_PROFILE_MPEG4_ASP:
-      *eProfile = OMX_VIDEO_MPEG4ProfileAdvancedSimple;
-      break;
-    default:
-      *eProfile = OMX_VIDEO_MPEG4ProfileMax;
-      status = false;
-      break;
+    if (eProfile == NULL || eLevel == NULL) {
+        return false;
     }
 
-    if(!status)
-    {
-      return status;
+    if (m_sVenc_cfg.codectype == VEN_CODEC_MPEG4) {
+        switch (codec_profile.profile) {
+            case VEN_PROFILE_MPEG4_SP:
+                *eProfile = OMX_VIDEO_MPEG4ProfileSimple;
+                break;
+            case VEN_PROFILE_MPEG4_ASP:
+                *eProfile = OMX_VIDEO_MPEG4ProfileAdvancedSimple;
+                break;
+            default:
+                *eProfile = OMX_VIDEO_MPEG4ProfileMax;
+                status = false;
+                break;
+        }
+
+        if (!status) {
+            return status;
+        }
+
+        //profile level
+        switch (profile_level.level) {
+            case VEN_LEVEL_MPEG4_0:
+                *eLevel = OMX_VIDEO_MPEG4Level0;
+                break;
+            case VEN_LEVEL_MPEG4_1:
+                *eLevel = OMX_VIDEO_MPEG4Level1;
+                break;
+            case VEN_LEVEL_MPEG4_2:
+                *eLevel = OMX_VIDEO_MPEG4Level2;
+                break;
+            case VEN_LEVEL_MPEG4_3:
+                *eLevel = OMX_VIDEO_MPEG4Level3;
+                break;
+            case VEN_LEVEL_MPEG4_4:
+                *eLevel = OMX_VIDEO_MPEG4Level4a;
+                break;
+            case VEN_LEVEL_MPEG4_5:
+            case VEN_LEVEL_MPEG4_6:
+                *eLevel = OMX_VIDEO_MPEG4Level5;
+                break;
+            default:
+                *eLevel = OMX_VIDEO_MPEG4LevelMax;
+                status =  false;
+                break;
+        }
+    } else if (m_sVenc_cfg.codectype == VEN_CODEC_H263) {
+        if (codec_profile.profile == VEN_PROFILE_H263_BASELINE) {
+            *eProfile = OMX_VIDEO_H263ProfileBaseline;
+        } else {
+            *eProfile = OMX_VIDEO_H263ProfileMax;
+            return false;
+        }
+
+        switch (profile_level.level) {
+            case VEN_LEVEL_H263_10:
+                *eLevel = OMX_VIDEO_H263Level10;
+                break;
+            case VEN_LEVEL_H263_20:
+                *eLevel = OMX_VIDEO_H263Level20;
+                break;
+            case VEN_LEVEL_H263_30:
+                *eLevel = OMX_VIDEO_H263Level30;
+                break;
+            case VEN_LEVEL_H263_40:
+                *eLevel = OMX_VIDEO_H263Level40;
+                break;
+            case VEN_LEVEL_H263_45:
+                *eLevel = OMX_VIDEO_H263Level45;
+                break;
+            case VEN_LEVEL_H263_50:
+                *eLevel = OMX_VIDEO_H263Level50;
+                break;
+            case VEN_LEVEL_H263_60:
+                *eLevel = OMX_VIDEO_H263Level60;
+                break;
+            case VEN_LEVEL_H263_70:
+                *eLevel = OMX_VIDEO_H263Level70;
+                break;
+            default:
+                *eLevel = OMX_VIDEO_H263LevelMax;
+                status = false;
+                break;
+        }
+    } else if (m_sVenc_cfg.codectype == VEN_CODEC_H264) {
+        switch (codec_profile.profile) {
+            case VEN_PROFILE_H264_BASELINE:
+                *eProfile = OMX_VIDEO_AVCProfileBaseline;
+                break;
+            case VEN_PROFILE_H264_MAIN:
+                *eProfile = OMX_VIDEO_AVCProfileMain;
+                break;
+            case VEN_PROFILE_H264_HIGH:
+                *eProfile = OMX_VIDEO_AVCProfileHigh;
+                break;
+            default:
+                *eProfile = OMX_VIDEO_AVCProfileMax;
+                status = false;
+                break;
+        }
+
+        if (!status) {
+            return status;
+        }
+
+        switch (profile_level.level) {
+            case VEN_LEVEL_H264_1:
+                *eLevel = OMX_VIDEO_AVCLevel1;
+                break;
+            case VEN_LEVEL_H264_1b:
+                *eLevel = OMX_VIDEO_AVCLevel1b;
+                break;
+            case VEN_LEVEL_H264_1p1:
+                *eLevel = OMX_VIDEO_AVCLevel11;
+                break;
+            case VEN_LEVEL_H264_1p2:
+                *eLevel = OMX_VIDEO_AVCLevel12;
+                break;
+            case VEN_LEVEL_H264_1p3:
+                *eLevel = OMX_VIDEO_AVCLevel13;
+                break;
+            case VEN_LEVEL_H264_2:
+                *eLevel = OMX_VIDEO_AVCLevel2;
+                break;
+            case VEN_LEVEL_H264_2p1:
+                *eLevel = OMX_VIDEO_AVCLevel21;
+                break;
+            case VEN_LEVEL_H264_2p2:
+                *eLevel = OMX_VIDEO_AVCLevel22;
+                break;
+            case VEN_LEVEL_H264_3:
+                *eLevel = OMX_VIDEO_AVCLevel3;
+                break;
+            case VEN_LEVEL_H264_3p1:
+                *eLevel = OMX_VIDEO_AVCLevel31;
+                break;
+            case VEN_LEVEL_H264_3p2:
+                *eLevel = OMX_VIDEO_AVCLevel32;
+                break;
+            case VEN_LEVEL_H264_4:
+                *eLevel = OMX_VIDEO_AVCLevel4;
+                break;
+            default :
+                *eLevel = OMX_VIDEO_AVCLevelMax;
+                status = false;
+                break;
+        }
     }
 
-    //profile level
-    switch(profile_level.level)
-    {
-    case VEN_LEVEL_MPEG4_0:
-      *eLevel = OMX_VIDEO_MPEG4Level0;
-      break;
-    case VEN_LEVEL_MPEG4_1:
-      *eLevel = OMX_VIDEO_MPEG4Level1;
-      break;
-    case VEN_LEVEL_MPEG4_2:
-      *eLevel = OMX_VIDEO_MPEG4Level2;
-      break;
-    case VEN_LEVEL_MPEG4_3:
-      *eLevel = OMX_VIDEO_MPEG4Level3;
-      break;
-    case VEN_LEVEL_MPEG4_4:
-      *eLevel = OMX_VIDEO_MPEG4Level4a;
-      break;
-    case VEN_LEVEL_MPEG4_5:
-    case VEN_LEVEL_MPEG4_6:
-      *eLevel = OMX_VIDEO_MPEG4Level5;
-      break;
-    default:
-      *eLevel = OMX_VIDEO_MPEG4LevelMax;
-      status =  false;
-      break;
-    }
-  }
-  else if(m_sVenc_cfg.codectype == VEN_CODEC_H263)
-  {
-    if(codec_profile.profile == VEN_PROFILE_H263_BASELINE)
-    {
-      *eProfile = OMX_VIDEO_H263ProfileBaseline;
-    }
-    else
-    {
-      *eProfile = OMX_VIDEO_H263ProfileMax;
-      return false;
-    }
-    switch(profile_level.level)
-    {
-    case VEN_LEVEL_H263_10:
-      *eLevel = OMX_VIDEO_H263Level10;
-      break;
-    case VEN_LEVEL_H263_20:
-      *eLevel = OMX_VIDEO_H263Level20;
-      break;
-    case VEN_LEVEL_H263_30:
-      *eLevel = OMX_VIDEO_H263Level30;
-      break;
-    case VEN_LEVEL_H263_40:
-      *eLevel = OMX_VIDEO_H263Level40;
-      break;
-    case VEN_LEVEL_H263_45:
-      *eLevel = OMX_VIDEO_H263Level45;
-      break;
-    case VEN_LEVEL_H263_50:
-      *eLevel = OMX_VIDEO_H263Level50;
-      break;
-    case VEN_LEVEL_H263_60:
-      *eLevel = OMX_VIDEO_H263Level60;
-      break;
-    case VEN_LEVEL_H263_70:
-      *eLevel = OMX_VIDEO_H263Level70;
-      break;
-    default:
-      *eLevel = OMX_VIDEO_H263LevelMax;
-      status = false;
-      break;
-    }
-  }
-  else if(m_sVenc_cfg.codectype == VEN_CODEC_H264)
-  {
-    switch(codec_profile.profile)
-    {
-    case VEN_PROFILE_H264_BASELINE:
-      *eProfile = OMX_VIDEO_AVCProfileBaseline;
-      break;
-    case VEN_PROFILE_H264_MAIN:
-      *eProfile = OMX_VIDEO_AVCProfileMain;
-      break;
-    case VEN_PROFILE_H264_HIGH:
-      *eProfile = OMX_VIDEO_AVCProfileHigh;
-      break;
-    default:
-      *eProfile = OMX_VIDEO_AVCProfileMax;
-      status = false;
-      break;
-    }
-
-    if(!status)
-    {
-      return status;
-    }
-
-    switch(profile_level.level)
-    {
-    case VEN_LEVEL_H264_1:
-      *eLevel = OMX_VIDEO_AVCLevel1;
-      break;
-    case VEN_LEVEL_H264_1b:
-      *eLevel = OMX_VIDEO_AVCLevel1b;
-      break;
-    case VEN_LEVEL_H264_1p1:
-      *eLevel = OMX_VIDEO_AVCLevel11;
-      break;
-    case VEN_LEVEL_H264_1p2:
-      *eLevel = OMX_VIDEO_AVCLevel12;
-      break;
-    case VEN_LEVEL_H264_1p3:
-      *eLevel = OMX_VIDEO_AVCLevel13;
-      break;
-    case VEN_LEVEL_H264_2:
-      *eLevel = OMX_VIDEO_AVCLevel2;
-      break;
-    case VEN_LEVEL_H264_2p1:
-      *eLevel = OMX_VIDEO_AVCLevel21;
-      break;
-    case VEN_LEVEL_H264_2p2:
-      *eLevel = OMX_VIDEO_AVCLevel22;
-      break;
-    case VEN_LEVEL_H264_3:
-      *eLevel = OMX_VIDEO_AVCLevel3;
-      break;
-    case VEN_LEVEL_H264_3p1:
-      *eLevel = OMX_VIDEO_AVCLevel31;
-      break;
-    case VEN_LEVEL_H264_3p2:
-      *eLevel = OMX_VIDEO_AVCLevel32;
-      break;
-    case VEN_LEVEL_H264_4:
-      *eLevel = OMX_VIDEO_AVCLevel4;
-      break;
-	  default :
-      *eLevel = OMX_VIDEO_AVCLevelMax;
-      status = false;
-      break;
-    }
-  }
-  return status;
+    return status;
 }
 
 bool venc_dev::venc_validate_profile_level(OMX_U32 *eProfile, OMX_U32 *eLevel)
 {
-  OMX_U32 new_profile = 0, new_level = 0;
-  unsigned const int *profile_tbl = NULL;
-  OMX_U32 mb_per_frame, mb_per_sec;
-  bool profile_level_found = false;
+    OMX_U32 new_profile = 0, new_level = 0;
+    unsigned const int *profile_tbl = NULL;
+    OMX_U32 mb_per_frame, mb_per_sec;
+    bool profile_level_found = false;
 
-  DEBUG_PRINT_LOW("\n Init profile table for respective codec");
-  //validate the ht,width,fps,bitrate and set the appropriate profile and level
-  if(m_sVenc_cfg.codectype == VEN_CODEC_MPEG4)
-  {
-      if(*eProfile == 0)
-      {
-        if(!m_profile_set)
-        {
-          *eProfile = OMX_VIDEO_MPEG4ProfileSimple;
+    DEBUG_PRINT_LOW("\n Init profile table for respective codec");
+
+    //validate the ht,width,fps,bitrate and set the appropriate profile and level
+    if (m_sVenc_cfg.codectype == VEN_CODEC_MPEG4) {
+        if (*eProfile == 0) {
+            if (!m_profile_set) {
+                *eProfile = OMX_VIDEO_MPEG4ProfileSimple;
+            } else {
+                switch (codec_profile.profile) {
+                    case VEN_PROFILE_MPEG4_ASP:
+                        *eProfile = OMX_VIDEO_MPEG4ProfileAdvancedSimple;
+                        break;
+                    case VEN_PROFILE_MPEG4_SP:
+                        *eProfile = OMX_VIDEO_MPEG4ProfileSimple;
+                        break;
+                    default:
+                        DEBUG_PRINT_LOW("\n %s(): Unknown Error", __func__);
+                        return false;
+                }
+            }
         }
-        else
-        {
-          switch(codec_profile.profile)
-          {
-          case VEN_PROFILE_MPEG4_ASP:
-              *eProfile = OMX_VIDEO_MPEG4ProfileAdvancedSimple;
-            break;
-          case VEN_PROFILE_MPEG4_SP:
-              *eProfile = OMX_VIDEO_MPEG4ProfileSimple;
-            break;
-          default:
-            DEBUG_PRINT_LOW("\n %s(): Unknown Error", __func__);
+
+        if (*eLevel == 0 && !m_level_set) {
+            *eLevel = OMX_VIDEO_MPEG4LevelMax;
+        }
+
+        if (*eProfile == OMX_VIDEO_MPEG4ProfileSimple) {
+            profile_tbl = (unsigned int const *)mpeg4_profile_level_table;
+        } else if (*eProfile == OMX_VIDEO_MPEG4ProfileAdvancedSimple) {
+            profile_tbl = (unsigned int const *)
+                (&mpeg4_profile_level_table[MPEG4_ASP_START]);
+        } else {
+            DEBUG_PRINT_LOW("\n Unsupported MPEG4 profile type %lu", *eProfile);
             return false;
-          }
         }
-      }
-
-      if(*eLevel == 0 && !m_level_set)
-      {
-        *eLevel = OMX_VIDEO_MPEG4LevelMax;
-      }
-
-      if(*eProfile == OMX_VIDEO_MPEG4ProfileSimple)
-      {
-        profile_tbl = (unsigned int const *)mpeg4_profile_level_table;
-      }
-      else if(*eProfile == OMX_VIDEO_MPEG4ProfileAdvancedSimple)
-      {
-        profile_tbl = (unsigned int const *)
-          (&mpeg4_profile_level_table[MPEG4_ASP_START]);
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("\n Unsupported MPEG4 profile type %lu", *eProfile);
-        return false;
-      }
-  }
-  else if(m_sVenc_cfg.codectype == VEN_CODEC_H264)
-  {
-      if(*eProfile == 0)
-      {
-        if(!m_profile_set)
-        {
-          *eProfile = OMX_VIDEO_AVCProfileBaseline;
+    } else if (m_sVenc_cfg.codectype == VEN_CODEC_H264) {
+        if (*eProfile == 0) {
+            if (!m_profile_set) {
+                *eProfile = OMX_VIDEO_AVCProfileBaseline;
+            } else {
+                switch (codec_profile.profile) {
+                    case VEN_PROFILE_H264_BASELINE:
+                        *eProfile = OMX_VIDEO_AVCProfileBaseline;
+                        break;
+                    case VEN_PROFILE_H264_MAIN:
+                        *eProfile = OMX_VIDEO_AVCProfileMain;
+                        break;
+                    case VEN_PROFILE_H264_HIGH:
+                        *eProfile = OMX_VIDEO_AVCProfileHigh;
+                        break;
+                    default:
+                        DEBUG_PRINT_LOW("\n %s(): Unknown Error", __func__);
+                        return false;
+                }
+            }
         }
-        else
-        {
-          switch(codec_profile.profile)
-          {
-          case VEN_PROFILE_H264_BASELINE:
-            *eProfile = OMX_VIDEO_AVCProfileBaseline;
-            break;
-          case VEN_PROFILE_H264_MAIN:
-            *eProfile = OMX_VIDEO_AVCProfileMain;
-            break;
-          case VEN_PROFILE_H264_HIGH:
-            *eProfile = OMX_VIDEO_AVCProfileHigh;
-            break;
-          default:
-            DEBUG_PRINT_LOW("\n %s(): Unknown Error", __func__);
+
+        if (*eLevel == 0 && !m_level_set) {
+            *eLevel = OMX_VIDEO_AVCLevelMax;
+        }
+
+        if (*eProfile == OMX_VIDEO_AVCProfileBaseline) {
+            profile_tbl = (unsigned int const *)h264_profile_level_table;
+        } else if (*eProfile == OMX_VIDEO_AVCProfileHigh) {
+            profile_tbl = (unsigned int const *)
+                (&h264_profile_level_table[H264_HP_START]);
+        } else if (*eProfile == OMX_VIDEO_AVCProfileMain) {
+            profile_tbl = (unsigned int const *)
+                (&h264_profile_level_table[H264_MP_START]);
+        } else {
+            DEBUG_PRINT_LOW("\n Unsupported AVC profile type %lu", *eProfile);
             return false;
-          }
         }
-      }
-
-      if(*eLevel == 0 && !m_level_set)
-      {
-        *eLevel = OMX_VIDEO_AVCLevelMax;
-      }
-
-      if(*eProfile == OMX_VIDEO_AVCProfileBaseline)
-      {
-        profile_tbl = (unsigned int const *)h264_profile_level_table;
-      }
-      else if(*eProfile == OMX_VIDEO_AVCProfileHigh)
-      {
-        profile_tbl = (unsigned int const *)
-          (&h264_profile_level_table[H264_HP_START]);
-      }
-      else if(*eProfile == OMX_VIDEO_AVCProfileMain)
-      {
-        profile_tbl = (unsigned int const *)
-          (&h264_profile_level_table[H264_MP_START]);
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("\n Unsupported AVC profile type %lu", *eProfile);
-        return false;
-      }
-  }
-  else if(m_sVenc_cfg.codectype == VEN_CODEC_H263)
-  {
-      if(*eProfile == 0)
-      {
-        if(!m_profile_set)
-        {
-          *eProfile = OMX_VIDEO_H263ProfileBaseline;
+    } else if (m_sVenc_cfg.codectype == VEN_CODEC_H263) {
+        if (*eProfile == 0) {
+            if (!m_profile_set) {
+                *eProfile = OMX_VIDEO_H263ProfileBaseline;
+            } else {
+                switch (codec_profile.profile) {
+                    case VEN_PROFILE_H263_BASELINE:
+                        *eProfile = OMX_VIDEO_H263ProfileBaseline;
+                        break;
+                    default:
+                        DEBUG_PRINT_LOW("\n %s(): Unknown Error", __func__);
+                        return false;
+                }
+            }
         }
-        else
-        {
-          switch(codec_profile.profile)
-          {
-          case VEN_PROFILE_H263_BASELINE:
-            *eProfile = OMX_VIDEO_H263ProfileBaseline;
-            break;
-          default:
-            DEBUG_PRINT_LOW("\n %s(): Unknown Error", __func__);
+
+        if (*eLevel == 0 && !m_level_set) {
+            *eLevel = OMX_VIDEO_H263LevelMax;
+        }
+
+        if (*eProfile == OMX_VIDEO_H263ProfileBaseline) {
+            profile_tbl = (unsigned int const *)h263_profile_level_table;
+        } else {
+            DEBUG_PRINT_LOW("\n Unsupported H.263 profile type %lu", *eProfile);
             return false;
-          }
         }
-      }
-
-      if(*eLevel == 0 && !m_level_set)
-      {
-        *eLevel = OMX_VIDEO_H263LevelMax;
-      }
-
-      if(*eProfile == OMX_VIDEO_H263ProfileBaseline)
-      {
-        profile_tbl = (unsigned int const *)h263_profile_level_table;
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("\n Unsupported H.263 profile type %lu", *eProfile);
+    } else {
+        DEBUG_PRINT_LOW("\n Invalid codec type");
         return false;
-      }
-  }
-  else
-  {
-    DEBUG_PRINT_LOW("\n Invalid codec type");
-    return false;
-  }
-
-  mb_per_frame = ((m_sVenc_cfg.input_height + 15) >> 4)*
-                   ((m_sVenc_cfg.input_width + 15)>> 4);
-
-  if((mb_per_frame >= 3600) && (m_sVenc_cfg.codectype == VEN_CODEC_MPEG4))
-  {
-    if(codec_profile.profile == VEN_PROFILE_MPEG4_ASP)
-      profile_level.level = VEN_LEVEL_MPEG4_5;
-    if(codec_profile.profile == VEN_PROFILE_MPEG4_SP)
-      profile_level.level = VEN_LEVEL_MPEG4_6;
-    {
-      new_level = profile_level.level;
-      new_profile = codec_profile.profile;
-      return true;
     }
-  }
 
-  mb_per_sec = mb_per_frame * m_sVenc_cfg.fps_num / m_sVenc_cfg.fps_den;
+    mb_per_frame = ((m_sVenc_cfg.input_height + 15) >> 4)*
+        ((m_sVenc_cfg.input_width + 15)>> 4);
 
-  do{
-      if(mb_per_frame <= (int)profile_tbl[0])
-      {
-        if(mb_per_sec <= (int)profile_tbl[1])
+    if ((mb_per_frame >= 3600) && (m_sVenc_cfg.codectype == VEN_CODEC_MPEG4)) {
+        if (codec_profile.profile == VEN_PROFILE_MPEG4_ASP)
+            profile_level.level = VEN_LEVEL_MPEG4_5;
+
+        if (codec_profile.profile == VEN_PROFILE_MPEG4_SP)
+            profile_level.level = VEN_LEVEL_MPEG4_6;
+
         {
-          if(m_sVenc_cfg.targetbitrate <= (int)profile_tbl[2])
-          {
-              new_level = (int)profile_tbl[3];
-              new_profile = (int)profile_tbl[4];
-              profile_level_found = true;
-              DEBUG_PRINT_LOW("\n Appropriate profile/level found %d/%d\n", new_profile, new_level);
-              break;
-          }
+            new_level = profile_level.level;
+            new_profile = codec_profile.profile;
+            return true;
         }
-      }
-      profile_tbl = profile_tbl + 5;
-  }while(profile_tbl[0] != 0);
+    }
 
-  if (profile_level_found != true)
-  {
-    DEBUG_PRINT_LOW("\n ERROR: Unsupported profile/level\n");
-    return false;
-  }
+    mb_per_sec = mb_per_frame * m_sVenc_cfg.fps_num / m_sVenc_cfg.fps_den;
 
-  if((*eLevel == OMX_VIDEO_MPEG4LevelMax) || (*eLevel == OMX_VIDEO_AVCLevelMax)
-     || (*eLevel == OMX_VIDEO_H263LevelMax))
-  {
-    *eLevel = new_level;
-  }
-  DEBUG_PRINT_LOW("%s: Returning with eProfile = %lu"
-      "Level = %lu", __func__, *eProfile, *eLevel);
+    do {
+        if (mb_per_frame <= (int)profile_tbl[0]) {
+            if (mb_per_sec <= (int)profile_tbl[1]) {
+                if (m_sVenc_cfg.targetbitrate <= (int)profile_tbl[2]) {
+                    new_level = (int)profile_tbl[3];
+                    new_profile = (int)profile_tbl[4];
+                    profile_level_found = true;
+                    DEBUG_PRINT_LOW("\n Appropriate profile/level found %d/%d\n", new_profile, new_level);
+                    break;
+                }
+            }
+        }
 
-  return true;
+        profile_tbl = profile_tbl + 5;
+    } while (profile_tbl[0] != 0);
+
+    if (profile_level_found != true) {
+        DEBUG_PRINT_LOW("\n ERROR: Unsupported profile/level\n");
+        return false;
+    }
+
+    if ((*eLevel == OMX_VIDEO_MPEG4LevelMax) || (*eLevel == OMX_VIDEO_AVCLevelMax)
+            || (*eLevel == OMX_VIDEO_H263LevelMax)) {
+        *eLevel = new_level;
+    }
+
+    DEBUG_PRINT_LOW("%s: Returning with eProfile = %lu"
+            "Level = %lu", __func__, *eProfile, *eLevel);
+
+    return true;
 }
 
 bool venc_dev::venc_max_allowed_bitrate_check(OMX_U32 nTargetBitrate)
 {
-  unsigned const int *profile_tbl = NULL;
+    unsigned const int *profile_tbl = NULL;
 
-  switch(m_sVenc_cfg.codectype)
-  {
-    case VEN_CODEC_MPEG4:
-      if(m_eProfile == OMX_VIDEO_MPEG4ProfileSimple)
-      {
-        profile_tbl = (unsigned int const *)mpeg4_profile_level_table;
-      }
-      else if(m_eProfile == OMX_VIDEO_MPEG4ProfileAdvancedSimple)
-      {
-        profile_tbl = (unsigned int const *)
-          (&mpeg4_profile_level_table[MPEG4_ASP_START]);
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("Unsupported MPEG4 profile type %lu", m_eProfile);
-        return false;
-      }
-      break;
-    case VEN_CODEC_H264:
-      if(m_eProfile == OMX_VIDEO_AVCProfileBaseline)
-      {
-        profile_tbl = (unsigned int const *)h264_profile_level_table;
-      }
-      else if(m_eProfile == OMX_VIDEO_AVCProfileHigh)
-      {
-        profile_tbl = (unsigned int const *)
-          (&h264_profile_level_table[H264_HP_START]);
-      }
-      else if(m_eProfile == OMX_VIDEO_AVCProfileMain)
-      {
-        profile_tbl = (unsigned int const *)
-          (&h264_profile_level_table[H264_MP_START]);
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("Unsupported AVC profile type %lu", m_eProfile);
-        return false;
-      }
+    switch (m_sVenc_cfg.codectype) {
+        case VEN_CODEC_MPEG4:
 
-      break;
-    case VEN_CODEC_H263:
-      if(m_eProfile == OMX_VIDEO_H263ProfileBaseline)
-      {
-        profile_tbl = (unsigned int const *)h263_profile_level_table;
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("Unsupported H.263 profile type %lu", m_eProfile);
-        return false;
-      }
-      break;
-    default:
-      DEBUG_PRINT_ERROR("%s: unknown codec type", __func__);
-      return false;
-  }
-  while(profile_tbl[0] != 0)
-  {
-    if(profile_tbl[3] == m_eLevel)
-    {
-      if(nTargetBitrate > profile_tbl[2])
-      {
-         DEBUG_PRINT_ERROR("Max. supported bitrate for Profile[%d] & Level[%d]"
-            " is %u", m_eProfile, m_eLevel, profile_tbl[2]);
-        return false;
-      }
+            if (m_eProfile == OMX_VIDEO_MPEG4ProfileSimple) {
+                profile_tbl = (unsigned int const *)mpeg4_profile_level_table;
+            } else if (m_eProfile == OMX_VIDEO_MPEG4ProfileAdvancedSimple) {
+                profile_tbl = (unsigned int const *)
+                    (&mpeg4_profile_level_table[MPEG4_ASP_START]);
+            } else {
+                DEBUG_PRINT_ERROR("Unsupported MPEG4 profile type %lu", m_eProfile);
+                return false;
+            }
+
+            break;
+        case VEN_CODEC_H264:
+
+            if (m_eProfile == OMX_VIDEO_AVCProfileBaseline) {
+                profile_tbl = (unsigned int const *)h264_profile_level_table;
+            } else if (m_eProfile == OMX_VIDEO_AVCProfileHigh) {
+                profile_tbl = (unsigned int const *)
+                    (&h264_profile_level_table[H264_HP_START]);
+            } else if (m_eProfile == OMX_VIDEO_AVCProfileMain) {
+                profile_tbl = (unsigned int const *)
+                    (&h264_profile_level_table[H264_MP_START]);
+            } else {
+                DEBUG_PRINT_ERROR("Unsupported AVC profile type %lu", m_eProfile);
+                return false;
+            }
+
+            break;
+        case VEN_CODEC_H263:
+
+            if (m_eProfile == OMX_VIDEO_H263ProfileBaseline) {
+                profile_tbl = (unsigned int const *)h263_profile_level_table;
+            } else {
+                DEBUG_PRINT_ERROR("Unsupported H.263 profile type %lu", m_eProfile);
+                return false;
+            }
+
+            break;
+        default:
+            DEBUG_PRINT_ERROR("%s: unknown codec type", __func__);
+            return false;
     }
-    profile_tbl += 5;
-  }
-  return true;
+
+    while (profile_tbl[0] != 0) {
+        if (profile_tbl[3] == m_eLevel) {
+            if (nTargetBitrate > profile_tbl[2]) {
+                DEBUG_PRINT_ERROR("Max. supported bitrate for Profile[%d] & Level[%d]"
+                        " is %u", m_eProfile, m_eLevel, profile_tbl[2]);
+                return false;
+            }
+        }
+
+        profile_tbl += 5;
+    }
+
+    return true;
 }
 
 #ifdef _ANDROID_ICS_
 bool venc_dev::venc_set_meta_mode(bool mode)
 {
-  venc_ioctl_msg ioctl_msg = {NULL,NULL};
-  ioctl_msg.in = &mode;
-  DEBUG_PRINT_HIGH("Set meta buffer mode: %d", mode);
-  if(ioctl(m_nDriver_fd,VEN_IOCTL_SET_METABUFFER_MODE,&ioctl_msg) < 0)
-  {
-    DEBUG_PRINT_ERROR(" Set meta buffer mode failed");
-    return false;
-  }
-  return true;
+    venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    ioctl_msg.in = &mode;
+    DEBUG_PRINT_HIGH("Set meta buffer mode: %d", mode);
+
+    if (ioctl(m_nDriver_fd,VEN_IOCTL_SET_METABUFFER_MODE,&ioctl_msg) < 0) {
+        DEBUG_PRINT_ERROR(" Set meta buffer mode failed");
+        return false;
+    }
+
+    return true;
 }
 #endif
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 bddd8e4..46e85d0 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
@@ -52,8 +52,7 @@
 #define MAX_SUPPORTED_SLICES_PER_FRAME 28 /* Max supported slices with 32 output buffers */
 
 /* MPEG4 profile and level table*/
-static const unsigned int mpeg4_profile_level_table[][5]=
-{
+static const unsigned int mpeg4_profile_level_table[][5]= {
     /*max mb per frame, max mb per sec, max bitrate, level, profile*/
     {99,1485,64000,OMX_VIDEO_MPEG4Level0,OMX_VIDEO_MPEG4ProfileSimple},
     {99,1485,64000,OMX_VIDEO_MPEG4Level1,OMX_VIDEO_MPEG4ProfileSimple},
@@ -78,9 +77,8 @@
 };
 
 /* H264 profile and level table*/
-static const unsigned int h264_profile_level_table[][5]=
-{
-     /*max mb per frame, max mb per sec, max bitrate, level, profile*/
+static const unsigned int h264_profile_level_table[][5]= {
+    /*max mb per frame, max mb per sec, max bitrate, level, profile*/
     {99,1485,64000,OMX_VIDEO_AVCLevel1,OMX_VIDEO_AVCProfileBaseline},
     {99,1485,128000,OMX_VIDEO_AVCLevel1b,OMX_VIDEO_AVCProfileBaseline},
     {396,3000,192000,OMX_VIDEO_AVCLevel11,OMX_VIDEO_AVCProfileBaseline},
@@ -138,8 +136,7 @@
 };
 
 /* H263 profile and level table*/
-static const unsigned int h263_profile_level_table[][5]=
-{
+static const unsigned int h263_profile_level_table[][5]= {
     /*max mb per frame, max mb per sec, max bitrate, level, profile*/
     {99,1485,64000,OMX_VIDEO_H263Level10,OMX_VIDEO_H263ProfileBaseline},
     {396,5940,128000,OMX_VIDEO_H263Level20,OMX_VIDEO_H263ProfileBaseline},
@@ -169,1390 +166,1429 @@
 //constructor
 venc_dev::venc_dev(class omx_venc *venc_class)
 {
-	//nothing to do
-	int i = 0;
-	venc_handle = venc_class;
-	etb = ebd = ftb = fbd = 0;
-	for (i = 0; i < MAX_PORT; i++)
-		streaming[i] = false;
+    //nothing to do
+    int i = 0;
+    venc_handle = venc_class;
+    etb = ebd = ftb = fbd = 0;
 
-	paused = false;
-	async_thread_created = false;
-	color_format = 0;
-	pthread_mutex_init(&pause_resume_mlock, NULL);
-	pthread_cond_init(&pause_resume_cond, NULL);
-	memset(&extradata_info, 0, sizeof(extradata_info));
-	memset(&idrperiod, 0, sizeof(idrperiod));
-	memset(&multislice, 0, sizeof(multislice));
-	memset (&slice_mode, 0 , sizeof(slice_mode));
-	memset(&m_sVenc_cfg, 0, sizeof(m_sVenc_cfg));
-	memset(&rate_ctrl, 0, sizeof(rate_ctrl));
-	memset(&bitrate, 0, sizeof(bitrate));
-	memset(&intra_period, 0, sizeof(intra_period));
-	memset(&codec_profile, 0, sizeof(codec_profile));
-	memset(&set_param, 0, sizeof(set_param));
-	memset(&time_inc, 0, sizeof(time_inc));
-	memset(&m_sInput_buff_property, 0, sizeof(m_sInput_buff_property));
-	memset(&m_sOutput_buff_property, 0, sizeof(m_sOutput_buff_property));
-	memset(&session_qp, 0, sizeof(session_qp));
-	memset(&entropy, 0, sizeof(entropy));
-	memset(&dbkfilter, 0, sizeof(dbkfilter));
-	memset(&intra_refresh, 0, sizeof(intra_refresh));
-	memset(&hec, 0, sizeof(hec));
-	memset(&voptimecfg, 0, sizeof(voptimecfg));
-	memset(&capability, 0, sizeof(capability));
+    for (i = 0; i < MAX_PORT; i++)
+        streaming[i] = false;
+
+    paused = false;
+    async_thread_created = false;
+    color_format = 0;
+    pthread_mutex_init(&pause_resume_mlock, NULL);
+    pthread_cond_init(&pause_resume_cond, NULL);
+    memset(&extradata_info, 0, sizeof(extradata_info));
+    memset(&idrperiod, 0, sizeof(idrperiod));
+    memset(&multislice, 0, sizeof(multislice));
+    memset (&slice_mode, 0 , sizeof(slice_mode));
+    memset(&m_sVenc_cfg, 0, sizeof(m_sVenc_cfg));
+    memset(&rate_ctrl, 0, sizeof(rate_ctrl));
+    memset(&bitrate, 0, sizeof(bitrate));
+    memset(&intra_period, 0, sizeof(intra_period));
+    memset(&codec_profile, 0, sizeof(codec_profile));
+    memset(&set_param, 0, sizeof(set_param));
+    memset(&time_inc, 0, sizeof(time_inc));
+    memset(&m_sInput_buff_property, 0, sizeof(m_sInput_buff_property));
+    memset(&m_sOutput_buff_property, 0, sizeof(m_sOutput_buff_property));
+    memset(&session_qp, 0, sizeof(session_qp));
+    memset(&entropy, 0, sizeof(entropy));
+    memset(&dbkfilter, 0, sizeof(dbkfilter));
+    memset(&intra_refresh, 0, sizeof(intra_refresh));
+    memset(&hec, 0, sizeof(hec));
+    memset(&voptimecfg, 0, sizeof(voptimecfg));
+    memset(&capability, 0, sizeof(capability));
 }
 
 venc_dev::~venc_dev()
 {
-  //nothing to do
+    //nothing to do
 }
 
 void* venc_dev::async_venc_message_thread (void *input)
 {
-  struct venc_msg venc_msg;
-  omx_video* omx_venc_base = NULL;
-  omx_venc *omx = reinterpret_cast<omx_venc*>(input);
-  omx_venc_base = reinterpret_cast<omx_video*>(input);
-  OMX_BUFFERHEADERTYPE* omxhdr = NULL;
+    struct venc_msg venc_msg;
+    omx_video* omx_venc_base = NULL;
+    omx_venc *omx = reinterpret_cast<omx_venc*>(input);
+    omx_venc_base = reinterpret_cast<omx_video*>(input);
+    OMX_BUFFERHEADERTYPE* omxhdr = NULL;
 
-  prctl(PR_SET_NAME, (unsigned long)"VideoEncCallBackThread", 0, 0, 0);
-  struct v4l2_plane plane[VIDEO_MAX_PLANES];
-  struct pollfd pfd;
-  struct v4l2_buffer v4l2_buf;
-  struct v4l2_event dqevent;
-  pfd.events = POLLIN | POLLRDNORM | POLLOUT | POLLWRNORM | POLLRDBAND | POLLPRI;
-  pfd.fd = omx->handle->m_nDriver_fd;
-  int error_code = 0,rc=0;
+    prctl(PR_SET_NAME, (unsigned long)"VideoEncCallBackThread", 0, 0, 0);
+    struct v4l2_plane plane[VIDEO_MAX_PLANES];
+    struct pollfd pfd;
+    struct v4l2_buffer v4l2_buf;
+    struct v4l2_event dqevent;
+    pfd.events = POLLIN | POLLRDNORM | POLLOUT | POLLWRNORM | POLLRDBAND | POLLPRI;
+    pfd.fd = omx->handle->m_nDriver_fd;
+    int error_code = 0,rc=0;
 
-  memset(&v4l2_buf, 0, sizeof(v4l2_buf));
-  while(1)
-  {
-	  pthread_mutex_lock(&omx->handle->pause_resume_mlock);
-	  if (omx->handle->paused) {
-		  venc_msg.msgcode = VEN_MSG_PAUSE;
-		  venc_msg.statuscode = VEN_S_SUCCESS;
-		  if(omx->async_message_process(input, &venc_msg) < 0)
-		  {
-			  DEBUG_PRINT_ERROR("\nERROR: Failed to process pause msg");
-			  pthread_mutex_unlock(&omx->handle->pause_resume_mlock);
-			  break;
-		  }
+    memset(&v4l2_buf, 0, sizeof(v4l2_buf));
 
-		  /* Block here until the IL client resumes us again */
-		  pthread_cond_wait(&omx->handle->pause_resume_cond,
-				  &omx->handle->pause_resume_mlock);
+    while (1) {
+        pthread_mutex_lock(&omx->handle->pause_resume_mlock);
 
-		  venc_msg.msgcode = VEN_MSG_RESUME;
-		  venc_msg.statuscode = VEN_S_SUCCESS;
-		  if(omx->async_message_process(input, &venc_msg) < 0)
-		  {
-			  DEBUG_PRINT_ERROR("\nERROR: Failed to process resume msg");
-			  pthread_mutex_unlock(&omx->handle->pause_resume_mlock);
-			  break;
-		  }
-	  }
-	  pthread_mutex_unlock(&omx->handle->pause_resume_mlock);
+        if (omx->handle->paused) {
+            venc_msg.msgcode = VEN_MSG_PAUSE;
+            venc_msg.statuscode = VEN_S_SUCCESS;
 
-	  rc = poll(&pfd, 1, POLL_TIMEOUT);
-		if (!rc) {
-			DEBUG_PRINT_HIGH("Poll timedout, pipeline stalled due to client/firmware ETB: %d, EBD: %d, FTB: %d, FBD: %d\n",
-							 omx->handle->etb, omx->handle->ebd, omx->handle->ftb, omx->handle->fbd);
-			continue;
-		} else if (rc < 0) {
-			DEBUG_PRINT_ERROR("Error while polling: %d\n", rc);
-			break;
-		}
-		
-		if ((pfd.revents & POLLIN) || (pfd.revents & POLLRDNORM)) {
-			v4l2_buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-			v4l2_buf.memory = V4L2_MEMORY_USERPTR;
-			v4l2_buf.length = omx->handle->num_planes;
-			v4l2_buf.m.planes = plane;
-			while(!ioctl(pfd.fd, VIDIOC_DQBUF, &v4l2_buf)) {
-				venc_msg.msgcode=VEN_MSG_OUTPUT_BUFFER_DONE;
-				venc_msg.statuscode=VEN_S_SUCCESS;
-				omxhdr=omx_venc_base->m_out_mem_ptr+v4l2_buf.index;
-				venc_msg.buf.len= v4l2_buf.m.planes->bytesused;
-				venc_msg.buf.offset = 0;
-				venc_msg.buf.flags = 0;
-				venc_msg.buf.ptrbuffer = (OMX_U8 *)omx_venc_base->m_pOutput_pmem[v4l2_buf.index].buffer;
-				venc_msg.buf.clientdata=(void*)omxhdr;
-				venc_msg.buf.timestamp = (uint64_t) v4l2_buf.timestamp.tv_sec * (uint64_t) 1000000 + (uint64_t) v4l2_buf.timestamp.tv_usec;
-				/* TODO: ideally report other types of frames as well
-				 * for now it doesn't look like IL client cares about
-				 * other types
-				 */
-				if (v4l2_buf.flags & V4L2_QCOM_BUF_FLAG_IDRFRAME)
-					venc_msg.buf.flags |= QOMX_VIDEO_PictureTypeIDR;
-				if (v4l2_buf.flags & V4L2_BUF_FLAG_KEYFRAME)
-					venc_msg.buf.flags |= OMX_BUFFERFLAG_SYNCFRAME;
-				if(v4l2_buf.flags & V4L2_QCOM_BUF_FLAG_CODECCONFIG)
-					venc_msg.buf.flags |= OMX_BUFFERFLAG_CODECCONFIG;
-				if(v4l2_buf.flags & V4L2_BUF_FLAG_EOS)
-					venc_msg.buf.flags |= OMX_BUFFERFLAG_EOS;
-				if(omx->handle->num_planes > 1 && v4l2_buf.m.planes->bytesused)
-					venc_msg.buf.flags |= OMX_BUFFERFLAG_EXTRADATA;
-				omx->handle->fbd++;
-				if(omx->async_message_process(input,&venc_msg) < 0)
-				{
-					DEBUG_PRINT_ERROR("\nERROR: Wrong ioctl message");
-					break;
-				}
-			}
-		}
-		if((pfd.revents & POLLOUT) || (pfd.revents & POLLWRNORM)) {
-			v4l2_buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-			v4l2_buf.memory = V4L2_MEMORY_USERPTR;
-			v4l2_buf.m.planes = plane;
-			v4l2_buf.length = 1;
-			while(!ioctl(pfd.fd, VIDIOC_DQBUF, &v4l2_buf)) {
-				venc_msg.msgcode=VEN_MSG_INPUT_BUFFER_DONE;
-				venc_msg.statuscode=VEN_S_SUCCESS;
-				omxhdr=omx_venc_base->m_inp_mem_ptr+v4l2_buf.index;
-				venc_msg.buf.clientdata=(void*)omxhdr;
-				omx->handle->ebd++;
-				if(omx->async_message_process(input,&venc_msg) < 0)
-				{
-					DEBUG_PRINT_ERROR("\nERROR: Wrong ioctl message");
-					break;
-				}
-			}
-		}
-		if (pfd.revents & POLLPRI) {
-			rc = ioctl(pfd.fd, VIDIOC_DQEVENT, &dqevent);
-			if(dqevent.type == V4L2_EVENT_MSM_VIDC_CLOSE_DONE) {
-				DEBUG_PRINT_HIGH("CLOSE DONE\n");
-				break;
-			} else if (dqevent.type == V4L2_EVENT_MSM_VIDC_FLUSH_DONE) {
-				venc_msg.msgcode = VEN_MSG_FLUSH_INPUT_DONE;
-				venc_msg.statuscode = VEN_S_SUCCESS;
-				if (omx->async_message_process(input,&venc_msg) < 0) {
-					DEBUG_PRINT_ERROR("\nERROR: Wrong ioctl message");
-					break;
-				}
-				venc_msg.msgcode = VEN_MSG_FLUSH_OUPUT_DONE;
-				venc_msg.statuscode = VEN_S_SUCCESS;
-				if (omx->async_message_process(input,&venc_msg) < 0) {
-					DEBUG_PRINT_ERROR("\nERROR: Wrong ioctl message");
-					break;
-				}
-			} else if (dqevent.type == V4L2_EVENT_MSM_VIDC_SYS_ERROR){
-                                DEBUG_PRINT_ERROR("\n HW Error recieved \n");
-                                venc_msg.statuscode=VEN_S_EFAIL;
-				if (omx->async_message_process(input,&venc_msg) < 0) {
-                                        DEBUG_PRINT_ERROR("\nERROR: Wrong ioctl message");
-                                        break;
-                                }
-                        }
-		}
-  }
-  DEBUG_PRINT_HIGH("omx_venc: Async Thread exit\n");
-  return NULL;
+            if (omx->async_message_process(input, &venc_msg) < 0) {
+                DEBUG_PRINT_ERROR("\nERROR: Failed to process pause msg");
+                pthread_mutex_unlock(&omx->handle->pause_resume_mlock);
+                break;
+            }
+
+            /* Block here until the IL client resumes us again */
+            pthread_cond_wait(&omx->handle->pause_resume_cond,
+                    &omx->handle->pause_resume_mlock);
+
+            venc_msg.msgcode = VEN_MSG_RESUME;
+            venc_msg.statuscode = VEN_S_SUCCESS;
+
+            if (omx->async_message_process(input, &venc_msg) < 0) {
+                DEBUG_PRINT_ERROR("\nERROR: Failed to process resume msg");
+                pthread_mutex_unlock(&omx->handle->pause_resume_mlock);
+                break;
+            }
+        }
+
+        pthread_mutex_unlock(&omx->handle->pause_resume_mlock);
+
+        rc = poll(&pfd, 1, POLL_TIMEOUT);
+
+        if (!rc) {
+            DEBUG_PRINT_HIGH("Poll timedout, pipeline stalled due to client/firmware ETB: %d, EBD: %d, FTB: %d, FBD: %d\n",
+                    omx->handle->etb, omx->handle->ebd, omx->handle->ftb, omx->handle->fbd);
+            continue;
+        } else if (rc < 0) {
+            DEBUG_PRINT_ERROR("Error while polling: %d\n", rc);
+            break;
+        }
+
+        if ((pfd.revents & POLLIN) || (pfd.revents & POLLRDNORM)) {
+            v4l2_buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+            v4l2_buf.memory = V4L2_MEMORY_USERPTR;
+            v4l2_buf.length = omx->handle->num_planes;
+            v4l2_buf.m.planes = plane;
+
+            while (!ioctl(pfd.fd, VIDIOC_DQBUF, &v4l2_buf)) {
+                venc_msg.msgcode=VEN_MSG_OUTPUT_BUFFER_DONE;
+                venc_msg.statuscode=VEN_S_SUCCESS;
+                omxhdr=omx_venc_base->m_out_mem_ptr+v4l2_buf.index;
+                venc_msg.buf.len= v4l2_buf.m.planes->bytesused;
+                venc_msg.buf.offset = 0;
+                venc_msg.buf.flags = 0;
+                venc_msg.buf.ptrbuffer = (OMX_U8 *)omx_venc_base->m_pOutput_pmem[v4l2_buf.index].buffer;
+                venc_msg.buf.clientdata=(void*)omxhdr;
+                venc_msg.buf.timestamp = (uint64_t) v4l2_buf.timestamp.tv_sec * (uint64_t) 1000000 + (uint64_t) v4l2_buf.timestamp.tv_usec;
+
+                /* TODO: ideally report other types of frames as well
+                 * for now it doesn't look like IL client cares about
+                 * other types
+                 */
+                if (v4l2_buf.flags & V4L2_QCOM_BUF_FLAG_IDRFRAME)
+                    venc_msg.buf.flags |= QOMX_VIDEO_PictureTypeIDR;
+
+                if (v4l2_buf.flags & V4L2_BUF_FLAG_KEYFRAME)
+                    venc_msg.buf.flags |= OMX_BUFFERFLAG_SYNCFRAME;
+
+                if (v4l2_buf.flags & V4L2_QCOM_BUF_FLAG_CODECCONFIG)
+                    venc_msg.buf.flags |= OMX_BUFFERFLAG_CODECCONFIG;
+
+                if (v4l2_buf.flags & V4L2_BUF_FLAG_EOS)
+                    venc_msg.buf.flags |= OMX_BUFFERFLAG_EOS;
+
+                if (omx->handle->num_planes > 1 && v4l2_buf.m.planes->bytesused)
+                    venc_msg.buf.flags |= OMX_BUFFERFLAG_EXTRADATA;
+
+                omx->handle->fbd++;
+
+                if (omx->async_message_process(input,&venc_msg) < 0) {
+                    DEBUG_PRINT_ERROR("\nERROR: Wrong ioctl message");
+                    break;
+                }
+            }
+        }
+
+        if ((pfd.revents & POLLOUT) || (pfd.revents & POLLWRNORM)) {
+            v4l2_buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+            v4l2_buf.memory = V4L2_MEMORY_USERPTR;
+            v4l2_buf.m.planes = plane;
+            v4l2_buf.length = 1;
+
+            while (!ioctl(pfd.fd, VIDIOC_DQBUF, &v4l2_buf)) {
+                venc_msg.msgcode=VEN_MSG_INPUT_BUFFER_DONE;
+                venc_msg.statuscode=VEN_S_SUCCESS;
+                omxhdr=omx_venc_base->m_inp_mem_ptr+v4l2_buf.index;
+                venc_msg.buf.clientdata=(void*)omxhdr;
+                omx->handle->ebd++;
+
+                if (omx->async_message_process(input,&venc_msg) < 0) {
+                    DEBUG_PRINT_ERROR("\nERROR: Wrong ioctl message");
+                    break;
+                }
+            }
+        }
+
+        if (pfd.revents & POLLPRI) {
+            rc = ioctl(pfd.fd, VIDIOC_DQEVENT, &dqevent);
+
+            if (dqevent.type == V4L2_EVENT_MSM_VIDC_CLOSE_DONE) {
+                DEBUG_PRINT_HIGH("CLOSE DONE\n");
+                break;
+            } else if (dqevent.type == V4L2_EVENT_MSM_VIDC_FLUSH_DONE) {
+                venc_msg.msgcode = VEN_MSG_FLUSH_INPUT_DONE;
+                venc_msg.statuscode = VEN_S_SUCCESS;
+
+                if (omx->async_message_process(input,&venc_msg) < 0) {
+                    DEBUG_PRINT_ERROR("\nERROR: Wrong ioctl message");
+                    break;
+                }
+
+                venc_msg.msgcode = VEN_MSG_FLUSH_OUPUT_DONE;
+                venc_msg.statuscode = VEN_S_SUCCESS;
+
+                if (omx->async_message_process(input,&venc_msg) < 0) {
+                    DEBUG_PRINT_ERROR("\nERROR: Wrong ioctl message");
+                    break;
+                }
+            } else if (dqevent.type == V4L2_EVENT_MSM_VIDC_SYS_ERROR) {
+                DEBUG_PRINT_ERROR("\n HW Error recieved \n");
+                venc_msg.statuscode=VEN_S_EFAIL;
+
+                if (omx->async_message_process(input,&venc_msg) < 0) {
+                    DEBUG_PRINT_ERROR("\nERROR: Wrong ioctl message");
+                    break;
+                }
+            }
+        }
+    }
+
+    DEBUG_PRINT_HIGH("omx_venc: Async Thread exit\n");
+    return NULL;
 }
 
 static const int event_type[] = {
-	V4L2_EVENT_MSM_VIDC_FLUSH_DONE,
-	V4L2_EVENT_MSM_VIDC_CLOSE_DONE,
-	V4L2_EVENT_MSM_VIDC_SYS_ERROR
+    V4L2_EVENT_MSM_VIDC_FLUSH_DONE,
+    V4L2_EVENT_MSM_VIDC_CLOSE_DONE,
+    V4L2_EVENT_MSM_VIDC_SYS_ERROR
 };
 
 static OMX_ERRORTYPE subscribe_to_events(int fd)
 {
-	OMX_ERRORTYPE eRet = OMX_ErrorNone;
-	struct v4l2_event_subscription sub;
-	int array_sz = sizeof(event_type)/sizeof(int);
-	int i,rc;
-	memset(&sub, 0, sizeof(sub));
-	if (fd < 0) {
-		printf("Invalid input: %d\n", fd);
-		return OMX_ErrorBadParameter;
-	}
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    struct v4l2_event_subscription sub;
+    int array_sz = sizeof(event_type)/sizeof(int);
+    int i,rc;
+    memset(&sub, 0, sizeof(sub));
 
-	for (i = 0; i < array_sz; ++i) {
-		memset(&sub, 0, sizeof(sub));
-		sub.type = event_type[i];
-		rc = ioctl(fd, VIDIOC_SUBSCRIBE_EVENT, &sub);
-		if (rc) {
-			printf("Failed to subscribe event: 0x%x\n", sub.type);
-			break;
-		}
-	}
-	if (i < array_sz) {
-		for (--i; i >=0 ; i--) {
-			memset(&sub, 0, sizeof(sub));
-			sub.type = event_type[i];
-			rc = ioctl(fd, VIDIOC_UNSUBSCRIBE_EVENT, &sub);
-			if (rc)
-				printf("Failed to unsubscribe event: 0x%x\n", sub.type);
-		}
-		eRet = OMX_ErrorNotImplemented;
-	}
-	return eRet;
+    if (fd < 0) {
+        printf("Invalid input: %d\n", fd);
+        return OMX_ErrorBadParameter;
+    }
+
+    for (i = 0; i < array_sz; ++i) {
+        memset(&sub, 0, sizeof(sub));
+        sub.type = event_type[i];
+        rc = ioctl(fd, VIDIOC_SUBSCRIBE_EVENT, &sub);
+
+        if (rc) {
+            printf("Failed to subscribe event: 0x%x\n", sub.type);
+            break;
+        }
+    }
+
+    if (i < array_sz) {
+        for (--i; i >=0 ; i--) {
+            memset(&sub, 0, sizeof(sub));
+            sub.type = event_type[i];
+            rc = ioctl(fd, VIDIOC_UNSUBSCRIBE_EVENT, &sub);
+
+            if (rc)
+                printf("Failed to unsubscribe event: 0x%x\n", sub.type);
+        }
+
+        eRet = OMX_ErrorNotImplemented;
+    }
+
+    return eRet;
 }
 
 bool venc_dev::handle_extradata(void *buffer, int index)
 {
-	OMX_BUFFERHEADERTYPE *p_bufhdr = (OMX_BUFFERHEADERTYPE *) buffer;
-	OMX_OTHER_EXTRADATATYPE *p_extra = NULL;
-	if (!extradata_info.uaddr) {
-		DEBUG_PRINT_ERROR("Extradata buffers not allocated\n");
-		return false;
-	}
-	p_extra = (OMX_OTHER_EXTRADATATYPE *) ((unsigned)(p_bufhdr->pBuffer + p_bufhdr->nOffset + p_bufhdr->nFilledLen + 3)&(~3));
-	char *p_extradata = extradata_info.uaddr + index * extradata_info.buffer_size;
-	if ((OMX_U8*)p_extra > (p_bufhdr->pBuffer + p_bufhdr->nAllocLen)){
-		DEBUG_PRINT_ERROR("Insufficient buffer size\n");
-		p_extra = NULL;
-		return false;
-	}
-	memcpy(p_extra, p_extradata, extradata_info.buffer_size);
-	return true;
+    OMX_BUFFERHEADERTYPE *p_bufhdr = (OMX_BUFFERHEADERTYPE *) buffer;
+    OMX_OTHER_EXTRADATATYPE *p_extra = NULL;
+
+    if (!extradata_info.uaddr) {
+        DEBUG_PRINT_ERROR("Extradata buffers not allocated\n");
+        return false;
+    }
+
+    p_extra = (OMX_OTHER_EXTRADATATYPE *) ((unsigned)(p_bufhdr->pBuffer + p_bufhdr->nOffset + p_bufhdr->nFilledLen + 3)&(~3));
+    char *p_extradata = extradata_info.uaddr + index * extradata_info.buffer_size;
+
+    if ((OMX_U8*)p_extra > (p_bufhdr->pBuffer + p_bufhdr->nAllocLen)) {
+        DEBUG_PRINT_ERROR("Insufficient buffer size\n");
+        p_extra = NULL;
+        return false;
+    }
+
+    memcpy(p_extra, p_extradata, extradata_info.buffer_size);
+    return true;
 }
 
 int venc_dev::venc_set_format(int format)
 {
-	int rc = true;
-	if (format)
-		color_format = format;
-	else
-	{
-		color_format = 0;
-		rc = false;
-	}
-	return rc;
+    int rc = true;
+
+    if (format)
+        color_format = format;
+    else {
+        color_format = 0;
+        rc = false;
+    }
+
+    return rc;
 }
 
 OMX_ERRORTYPE venc_dev::allocate_extradata()
 {
-	if (extradata_info.allocated) {
-		DEBUG_PRINT_ERROR("2nd allocation return");
-		return OMX_ErrorNone;
-	}
-#ifdef USE_ION
-  if (extradata_info.buffer_size) {
-    if (extradata_info.ion.ion_alloc_data.handle) {
-      munmap((void *)extradata_info.uaddr, extradata_info.size);
-      close(extradata_info.ion.fd_ion_data.fd);
-      free_ion_memory(&extradata_info.ion);
+    if (extradata_info.allocated) {
+        DEBUG_PRINT_ERROR("2nd allocation return");
+        return OMX_ErrorNone;
     }
-    extradata_info.size = (extradata_info.size + 4095) & (~4095);
 
-    extradata_info.ion.ion_device_fd = alloc_map_ion_memory(
-        extradata_info.size,
-        &extradata_info.ion.ion_alloc_data,
-        &extradata_info.ion.fd_ion_data, 0);
-    if (extradata_info.ion.ion_device_fd < 0) {
-      DEBUG_PRINT_ERROR("Failed to alloc extradata memory\n");
-      return OMX_ErrorInsufficientResources;
+#ifdef USE_ION
+
+    if (extradata_info.buffer_size) {
+        if (extradata_info.ion.ion_alloc_data.handle) {
+            munmap((void *)extradata_info.uaddr, extradata_info.size);
+            close(extradata_info.ion.fd_ion_data.fd);
+            free_ion_memory(&extradata_info.ion);
+        }
+
+        extradata_info.size = (extradata_info.size + 4095) & (~4095);
+
+        extradata_info.ion.ion_device_fd = alloc_map_ion_memory(
+                extradata_info.size,
+                &extradata_info.ion.ion_alloc_data,
+                &extradata_info.ion.fd_ion_data, 0);
+
+        if (extradata_info.ion.ion_device_fd < 0) {
+            DEBUG_PRINT_ERROR("Failed to alloc extradata memory\n");
+            return OMX_ErrorInsufficientResources;
+        }
+
+        extradata_info.uaddr = (char *)mmap(NULL,
+                extradata_info.size,
+                PROT_READ|PROT_WRITE, MAP_SHARED,
+                extradata_info.ion.fd_ion_data.fd , 0);
+
+        if (extradata_info.uaddr == MAP_FAILED) {
+            DEBUG_PRINT_ERROR("Failed to map extradata memory\n");
+            close(extradata_info.ion.fd_ion_data.fd);
+            free_ion_memory(&extradata_info.ion);
+            return OMX_ErrorInsufficientResources;
+        }
     }
-    extradata_info.uaddr = (char *)mmap(NULL,
-        extradata_info.size,
-        PROT_READ|PROT_WRITE, MAP_SHARED,
-        extradata_info.ion.fd_ion_data.fd , 0);
-    if (extradata_info.uaddr == MAP_FAILED) {
-      DEBUG_PRINT_ERROR("Failed to map extradata memory\n");
-      close(extradata_info.ion.fd_ion_data.fd);
-      free_ion_memory(&extradata_info.ion);
-      return OMX_ErrorInsufficientResources;
-    }
-  }
+
 #endif
-  extradata_info.allocated = 1;
-  return OMX_ErrorNone;
+    extradata_info.allocated = 1;
+    return OMX_ErrorNone;
 }
 
-void venc_dev::free_extradata() {
+void venc_dev::free_extradata()
+{
 #ifdef USE_ION
-  if (extradata_info.uaddr) {
-    munmap((void *)extradata_info.uaddr, extradata_info.size);
-    close(extradata_info.ion.fd_ion_data.fd);
-    free_ion_memory(&extradata_info.ion);
-  }
-  memset(&extradata_info, 0, sizeof(extradata_info));
+
+    if (extradata_info.uaddr) {
+        munmap((void *)extradata_info.uaddr, extradata_info.size);
+        close(extradata_info.ion.fd_ion_data.fd);
+        free_ion_memory(&extradata_info.ion);
+    }
+
+    memset(&extradata_info, 0, sizeof(extradata_info));
 #endif
 }
 
 bool venc_dev::venc_open(OMX_U32 codec)
 {
-  int r;
-  unsigned int alignment = 0,buffer_size = 0, temp =0;
-  struct v4l2_control control;
-  OMX_STRING device_name = (OMX_STRING)"/dev/video/venus_enc";
+    int r;
+    unsigned int alignment = 0,buffer_size = 0, temp =0;
+    struct v4l2_control control;
+    OMX_STRING device_name = (OMX_STRING)"/dev/video/venus_enc";
 
-  char platform_name[64];
-  property_get("ro.board.platform", platform_name, "0");
-  if (!strncmp(platform_name, "msm8610", 7)) {
-    device_name = (OMX_STRING)"/dev/video/q6_enc";
-  }
+    char platform_name[64];
+    property_get("ro.board.platform", platform_name, "0");
 
-  m_nDriver_fd = open (device_name, O_RDWR);
-  if(m_nDriver_fd == 0)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Got fd as 0 for msm_vidc_enc, Opening again\n");
+    if (!strncmp(platform_name, "msm8610", 7)) {
+        device_name = (OMX_STRING)"/dev/video/q6_enc";
+    }
+
     m_nDriver_fd = open (device_name, O_RDWR);
-  }
 
-  if((int)m_nDriver_fd < 0)
-  {
-    DEBUG_PRINT_ERROR("ERROR: Omx_venc::Comp Init Returning failure\n");
-    return false;
-  }
+    if (m_nDriver_fd == 0) {
+        DEBUG_PRINT_ERROR("ERROR: Got fd as 0 for msm_vidc_enc, Opening again\n");
+        m_nDriver_fd = open (device_name, O_RDWR);
+    }
 
-  DEBUG_PRINT_LOW("\nm_nDriver_fd = %d\n", m_nDriver_fd);
-  // set the basic configuration of the video encoder driver
-  m_sVenc_cfg.input_width = OMX_CORE_QCIF_WIDTH;
-  m_sVenc_cfg.input_height= OMX_CORE_QCIF_HEIGHT;
-  m_sVenc_cfg.dvs_width = OMX_CORE_QCIF_WIDTH;
-  m_sVenc_cfg.dvs_height = OMX_CORE_QCIF_HEIGHT;
-  m_sVenc_cfg.fps_num = 30;
-  m_sVenc_cfg.fps_den = 1;
-  m_sVenc_cfg.targetbitrate = 64000;
-  m_sVenc_cfg.inputformat= V4L2_PIX_FMT_NV12;
-  if(codec == OMX_VIDEO_CodingMPEG4)
-  {
-    m_sVenc_cfg.codectype = V4L2_PIX_FMT_MPEG4;
-    codec_profile.profile = V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE;
-    profile_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_2;
+    if ((int)m_nDriver_fd < 0) {
+        DEBUG_PRINT_ERROR("ERROR: Omx_venc::Comp Init Returning failure\n");
+        return false;
+    }
+
+    DEBUG_PRINT_LOW("\nm_nDriver_fd = %d\n", m_nDriver_fd);
+    // set the basic configuration of the video encoder driver
+    m_sVenc_cfg.input_width = OMX_CORE_QCIF_WIDTH;
+    m_sVenc_cfg.input_height= OMX_CORE_QCIF_HEIGHT;
+    m_sVenc_cfg.dvs_width = OMX_CORE_QCIF_WIDTH;
+    m_sVenc_cfg.dvs_height = OMX_CORE_QCIF_HEIGHT;
+    m_sVenc_cfg.fps_num = 30;
+    m_sVenc_cfg.fps_den = 1;
+    m_sVenc_cfg.targetbitrate = 64000;
+    m_sVenc_cfg.inputformat= V4L2_PIX_FMT_NV12;
+
+    if (codec == OMX_VIDEO_CodingMPEG4) {
+        m_sVenc_cfg.codectype = V4L2_PIX_FMT_MPEG4;
+        codec_profile.profile = V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE;
+        profile_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_2;
 #ifdef OUTPUT_BUFFER_LOG
-    strcat(outputfilename, "m4v");
+        strcat(outputfilename, "m4v");
 #endif
-  }
-  else if(codec == OMX_VIDEO_CodingH263)
-  {
-    m_sVenc_cfg.codectype = V4L2_PIX_FMT_H263;
-    codec_profile.profile = VEN_PROFILE_H263_BASELINE;
-    profile_level.level = VEN_LEVEL_H263_20;
+    } else if (codec == OMX_VIDEO_CodingH263) {
+        m_sVenc_cfg.codectype = V4L2_PIX_FMT_H263;
+        codec_profile.profile = VEN_PROFILE_H263_BASELINE;
+        profile_level.level = VEN_LEVEL_H263_20;
 #ifdef OUTPUT_BUFFER_LOG
-    strcat(outputfilename, "263");
+        strcat(outputfilename, "263");
 #endif
-  }
-  if(codec == OMX_VIDEO_CodingAVC)
-  {
-    m_sVenc_cfg.codectype = V4L2_PIX_FMT_H264;
-    codec_profile.profile = V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE;
-    profile_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_1_0;
+    }
+
+    if (codec == OMX_VIDEO_CodingAVC) {
+        m_sVenc_cfg.codectype = V4L2_PIX_FMT_H264;
+        codec_profile.profile = V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE;
+        profile_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_1_0;
 #ifdef OUTPUT_BUFFER_LOG
-    strcat(outputfilename, "264");
+        strcat(outputfilename, "264");
 #endif
-  }
-if (codec == OMX_VIDEO_CodingVPX)
-	{
-		m_sVenc_cfg.codectype = V4L2_PIX_FMT_VP8;
-		codec_profile.profile = V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE;
-		profile_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_1_0;
+    }
+
+    if (codec == OMX_VIDEO_CodingVPX) {
+        m_sVenc_cfg.codectype = V4L2_PIX_FMT_VP8;
+        codec_profile.profile = V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE;
+        profile_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_1_0;
 #ifdef OUTPUT_BUFFER_LOG
-		strcat(outputfilename, "ivf");
+        strcat(outputfilename, "ivf");
 #endif
-	}
+    }
+
 #ifdef INPUT_BUFFER_LOG
-  inputBufferFile1 = fopen (inputfilename, "ab");
-  if (!inputBufferFile1)
-	  DEBUG_PRINT_ERROR("Input File open failed");
+    inputBufferFile1 = fopen (inputfilename, "ab");
+
+    if (!inputBufferFile1)
+        DEBUG_PRINT_ERROR("Input File open failed");
+
 #endif
 #ifdef OUTPUT_BUFFER_LOG
-  outputBufferFile1 = fopen (outputfilename, "ab");
+    outputBufferFile1 = fopen (outputfilename, "ab");
 #endif
-	int ret;	
-	ret = subscribe_to_events(m_nDriver_fd);
-	if (ret) {
-		DEBUG_PRINT_ERROR("\n Subscribe Event Failed \n");
-		return false;
-	}
-	struct v4l2_capability cap;
-	struct v4l2_fmtdesc fdesc;
-	struct v4l2_format fmt;
-	struct v4l2_requestbuffers bufreq;
+    int ret;
+    ret = subscribe_to_events(m_nDriver_fd);
 
-		ret = ioctl(m_nDriver_fd, VIDIOC_QUERYCAP, &cap);
-		if (ret) {
-		  DEBUG_PRINT_ERROR("Failed to query capabilities\n");
-		} else {
-		  DEBUG_PRINT_LOW("Capabilities: driver_name = %s, card = %s, bus_info = %s,"
-				" version = %d, capabilities = %x\n", cap.driver, cap.card,
-				cap.bus_info, cap.version, cap.capabilities);
-		}
-		ret=0;
-		fdesc.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		fdesc.index=0;
-		while (ioctl(m_nDriver_fd, VIDIOC_ENUM_FMT, &fdesc) == 0) {
-			DEBUG_PRINT_LOW("fmt: description: %s, fmt: %x, flags = %x\n", fdesc.description,
-					fdesc.pixelformat, fdesc.flags);
-			fdesc.index++;
-		}
-		fdesc.type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-		fdesc.index=0;
-		while (ioctl(m_nDriver_fd, VIDIOC_ENUM_FMT, &fdesc) == 0) {
-			DEBUG_PRINT_LOW("fmt: description: %s, fmt: %x, flags = %x\n", fdesc.description,
-					fdesc.pixelformat, fdesc.flags);
-			fdesc.index++;
-		}
-		
-		m_sOutput_buff_property.alignment=m_sInput_buff_property.alignment=4096;
-		fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		fmt.fmt.pix_mp.height = m_sVenc_cfg.input_height;
-		fmt.fmt.pix_mp.width = m_sVenc_cfg.input_width;
-		fmt.fmt.pix_mp.pixelformat = m_sVenc_cfg.codectype;
+    if (ret) {
+        DEBUG_PRINT_ERROR("\n Subscribe Event Failed \n");
+        return false;
+    }
 
-		/*TODO: Return values not handled properly in this function anywhere.
-		 * Need to handle those.*/
-		ret = ioctl(m_nDriver_fd, VIDIOC_S_FMT, &fmt);
-		if (ret) {
-			DEBUG_PRINT_ERROR("Failed to set format on capture port\n");
-			return false;
-		}
-		m_sOutput_buff_property.datasize=fmt.fmt.pix_mp.plane_fmt[0].sizeimage;
+    struct v4l2_capability cap;
 
-		fmt.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-		fmt.fmt.pix_mp.height = m_sVenc_cfg.input_height;
-		fmt.fmt.pix_mp.width = m_sVenc_cfg.input_width;
-		fmt.fmt.pix_mp.pixelformat = V4L2_PIX_FMT_NV12;
-		
-		ret = ioctl(m_nDriver_fd, VIDIOC_S_FMT, &fmt);
-		m_sInput_buff_property.datasize=fmt.fmt.pix_mp.plane_fmt[0].sizeimage;
+    struct v4l2_fmtdesc fdesc;
 
-		bufreq.memory = V4L2_MEMORY_USERPTR;
-		bufreq.count = 2;
+    struct v4l2_format fmt;
 
-		bufreq.type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-		ret = ioctl(m_nDriver_fd,VIDIOC_REQBUFS, &bufreq);
-		m_sInput_buff_property.mincount = m_sInput_buff_property.actualcount = bufreq.count;
+    struct v4l2_requestbuffers bufreq;
 
-		bufreq.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		bufreq.count = 2;
-		ret = ioctl(m_nDriver_fd,VIDIOC_REQBUFS, &bufreq);
-		m_sOutput_buff_property.mincount = m_sOutput_buff_property.actualcount = bufreq.count;
+    ret = ioctl(m_nDriver_fd, VIDIOC_QUERYCAP, &cap);
+
+    if (ret) {
+        DEBUG_PRINT_ERROR("Failed to query capabilities\n");
+    } else {
+        DEBUG_PRINT_LOW("Capabilities: driver_name = %s, card = %s, bus_info = %s,"
+                " version = %d, capabilities = %x\n", cap.driver, cap.card,
+                cap.bus_info, cap.version, cap.capabilities);
+    }
+
+    ret=0;
+    fdesc.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+    fdesc.index=0;
+
+    while (ioctl(m_nDriver_fd, VIDIOC_ENUM_FMT, &fdesc) == 0) {
+        DEBUG_PRINT_LOW("fmt: description: %s, fmt: %x, flags = %x\n", fdesc.description,
+                fdesc.pixelformat, fdesc.flags);
+        fdesc.index++;
+    }
+
+    fdesc.type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+    fdesc.index=0;
+
+    while (ioctl(m_nDriver_fd, VIDIOC_ENUM_FMT, &fdesc) == 0) {
+        DEBUG_PRINT_LOW("fmt: description: %s, fmt: %x, flags = %x\n", fdesc.description,
+                fdesc.pixelformat, fdesc.flags);
+        fdesc.index++;
+    }
+
+    m_sOutput_buff_property.alignment=m_sInput_buff_property.alignment=4096;
+    fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+    fmt.fmt.pix_mp.height = m_sVenc_cfg.input_height;
+    fmt.fmt.pix_mp.width = m_sVenc_cfg.input_width;
+    fmt.fmt.pix_mp.pixelformat = m_sVenc_cfg.codectype;
+
+    /*TODO: Return values not handled properly in this function anywhere.
+     * Need to handle those.*/
+    ret = ioctl(m_nDriver_fd, VIDIOC_S_FMT, &fmt);
+
+    if (ret) {
+        DEBUG_PRINT_ERROR("Failed to set format on capture port\n");
+        return false;
+    }
+
+    m_sOutput_buff_property.datasize=fmt.fmt.pix_mp.plane_fmt[0].sizeimage;
+
+    fmt.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+    fmt.fmt.pix_mp.height = m_sVenc_cfg.input_height;
+    fmt.fmt.pix_mp.width = m_sVenc_cfg.input_width;
+    fmt.fmt.pix_mp.pixelformat = V4L2_PIX_FMT_NV12;
+
+    ret = ioctl(m_nDriver_fd, VIDIOC_S_FMT, &fmt);
+    m_sInput_buff_property.datasize=fmt.fmt.pix_mp.plane_fmt[0].sizeimage;
+
+    bufreq.memory = V4L2_MEMORY_USERPTR;
+    bufreq.count = 2;
+
+    bufreq.type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+    ret = ioctl(m_nDriver_fd,VIDIOC_REQBUFS, &bufreq);
+    m_sInput_buff_property.mincount = m_sInput_buff_property.actualcount = bufreq.count;
+
+    bufreq.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+    bufreq.count = 2;
+    ret = ioctl(m_nDriver_fd,VIDIOC_REQBUFS, &bufreq);
+    m_sOutput_buff_property.mincount = m_sOutput_buff_property.actualcount = bufreq.count;
 
 
-  stopped = 0;
-  metadatamode = 0;
+    stopped = 0;
+    metadatamode = 0;
 
-  control.id = V4L2_CID_MPEG_VIDEO_HEADER_MODE;
-  control.value = V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE;
+    control.id = V4L2_CID_MPEG_VIDEO_HEADER_MODE;
+    control.value = V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE;
 
-  DEBUG_PRINT_LOW("Calling IOCTL to disable seq_hdr in sync_frame id=%d, val=%d\n", control.id, control.value);
-  if (ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control))
-	  DEBUG_PRINT_ERROR("Failed to set control\n");
+    DEBUG_PRINT_LOW("Calling IOCTL to disable seq_hdr in sync_frame id=%d, val=%d\n", control.id, control.value);
 
-  struct v4l2_frmsizeenum frmsize;
+    if (ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control))
+        DEBUG_PRINT_ERROR("Failed to set control\n");
 
-  //Get the hardware capabilities
-  memset((void *)&frmsize,0,sizeof(frmsize));
-  frmsize.index = 0;
-  frmsize.pixel_format = m_sVenc_cfg.codectype;
-  ret = ioctl(m_nDriver_fd, VIDIOC_ENUM_FRAMESIZES, &frmsize);
-  if(ret || frmsize.type != V4L2_FRMSIZE_TYPE_STEPWISE) {
-      DEBUG_PRINT_ERROR("Failed to get framesizes\n");
-      return false;
-  }
+    struct v4l2_frmsizeenum frmsize;
 
-  if (frmsize.type == V4L2_FRMSIZE_TYPE_STEPWISE) {
-      capability.min_width = frmsize.stepwise.min_width;
-      capability.max_width = frmsize.stepwise.max_width;
-      capability.min_height = frmsize.stepwise.min_height;
-      capability.max_height = frmsize.stepwise.max_height;
-  }
+    //Get the hardware capabilities
+    memset((void *)&frmsize,0,sizeof(frmsize));
+    frmsize.index = 0;
+    frmsize.pixel_format = m_sVenc_cfg.codectype;
+    ret = ioctl(m_nDriver_fd, VIDIOC_ENUM_FRAMESIZES, &frmsize);
 
-  return true;
+    if (ret || frmsize.type != V4L2_FRMSIZE_TYPE_STEPWISE) {
+        DEBUG_PRINT_ERROR("Failed to get framesizes\n");
+        return false;
+    }
+
+    if (frmsize.type == V4L2_FRMSIZE_TYPE_STEPWISE) {
+        capability.min_width = frmsize.stepwise.min_width;
+        capability.max_width = frmsize.stepwise.max_width;
+        capability.min_height = frmsize.stepwise.min_height;
+        capability.max_height = frmsize.stepwise.max_height;
+    }
+
+    return true;
 }
 
 
 static OMX_ERRORTYPE unsubscribe_to_events(int fd)
 {
-	OMX_ERRORTYPE eRet = OMX_ErrorNone;
-	struct v4l2_event_subscription sub;
-	int array_sz = sizeof(event_type)/sizeof(int);
-	int i,rc;
-	if (fd < 0) {
-		printf("Invalid input: %d\n", fd);
-		return OMX_ErrorBadParameter;
-	}
+    OMX_ERRORTYPE eRet = OMX_ErrorNone;
+    struct v4l2_event_subscription sub;
+    int array_sz = sizeof(event_type)/sizeof(int);
+    int i,rc;
 
-	for (i = 0; i < array_sz; ++i) {
-		memset(&sub, 0, sizeof(sub));
-		sub.type = event_type[i];
-		rc = ioctl(fd, VIDIOC_UNSUBSCRIBE_EVENT, &sub);
-		if (rc) {
-			printf("Failed to unsubscribe event: 0x%x\n", sub.type);
-			break;
-		}
-	}
-	return eRet;
+    if (fd < 0) {
+        printf("Invalid input: %d\n", fd);
+        return OMX_ErrorBadParameter;
+    }
+
+    for (i = 0; i < array_sz; ++i) {
+        memset(&sub, 0, sizeof(sub));
+        sub.type = event_type[i];
+        rc = ioctl(fd, VIDIOC_UNSUBSCRIBE_EVENT, &sub);
+
+        if (rc) {
+            printf("Failed to unsubscribe event: 0x%x\n", sub.type);
+            break;
+        }
+    }
+
+    return eRet;
 }
 
 void venc_dev::venc_close()
 {
-  struct v4l2_encoder_cmd enc;
-  DEBUG_PRINT_LOW("\nvenc_close: fd = %d", m_nDriver_fd);
-  if((int)m_nDriver_fd >= 0)
-  {
-    enc.cmd = V4L2_ENC_CMD_STOP;
-    ioctl(m_nDriver_fd, VIDIOC_ENCODER_CMD, &enc);
-    DEBUG_PRINT_HIGH("venc_close E\n");
-    if (async_thread_created)
-		pthread_join(m_tid,NULL);
-    DEBUG_PRINT_HIGH("venc_close X\n");
-    unsubscribe_to_events(m_nDriver_fd);
-    close(m_nDriver_fd);
-    m_nDriver_fd = -1;
-  }
+    struct v4l2_encoder_cmd enc;
+    DEBUG_PRINT_LOW("\nvenc_close: fd = %d", m_nDriver_fd);
+
+    if ((int)m_nDriver_fd >= 0) {
+        enc.cmd = V4L2_ENC_CMD_STOP;
+        ioctl(m_nDriver_fd, VIDIOC_ENCODER_CMD, &enc);
+        DEBUG_PRINT_HIGH("venc_close E\n");
+
+        if (async_thread_created)
+            pthread_join(m_tid,NULL);
+
+        DEBUG_PRINT_HIGH("venc_close X\n");
+        unsubscribe_to_events(m_nDriver_fd);
+        close(m_nDriver_fd);
+        m_nDriver_fd = -1;
+    }
+
 #ifdef INPUT_BUFFER_LOG
-  fclose (inputBufferFile1);
+    fclose (inputBufferFile1);
 #endif
 #ifdef OUTPUT_BUFFER_LOG
-  fclose (outputBufferFile1);
+    fclose (outputBufferFile1);
 #endif
 }
 
 bool venc_dev::venc_set_buf_req(unsigned long *min_buff_count,
-                                unsigned long *actual_buff_count,
-                                unsigned long *buff_size,
-                                unsigned long port)
+        unsigned long *actual_buff_count,
+        unsigned long *buff_size,
+        unsigned long port)
 {
-  
-  unsigned long temp_count = 0;
 
-  if(port == 0)
-  {
-    if(*actual_buff_count > m_sInput_buff_property.mincount)
-    {
-      temp_count = m_sInput_buff_property.actualcount;
-      m_sInput_buff_property.actualcount = *actual_buff_count;
-      DEBUG_PRINT_LOW("\n I/P Count set to %lu\n", *actual_buff_count);
-    }
-  }
-  else
-  {
-    if(*actual_buff_count > m_sOutput_buff_property.mincount)
-    {
-	  temp_count = m_sOutput_buff_property.actualcount;
-      m_sOutput_buff_property.actualcount = *actual_buff_count;
-      DEBUG_PRINT_LOW("\n O/P Count set to %lu\n", *actual_buff_count);
-    }
-  }
+    unsigned long temp_count = 0;
 
-  return true;
+    if (port == 0) {
+        if (*actual_buff_count > m_sInput_buff_property.mincount) {
+            temp_count = m_sInput_buff_property.actualcount;
+            m_sInput_buff_property.actualcount = *actual_buff_count;
+            DEBUG_PRINT_LOW("\n I/P Count set to %lu\n", *actual_buff_count);
+        }
+    } else {
+        if (*actual_buff_count > m_sOutput_buff_property.mincount) {
+            temp_count = m_sOutput_buff_property.actualcount;
+            m_sOutput_buff_property.actualcount = *actual_buff_count;
+            DEBUG_PRINT_LOW("\n O/P Count set to %lu\n", *actual_buff_count);
+        }
+    }
+
+    return true;
 
 }
 
 bool venc_dev::venc_loaded_start()
 {
-  return true;
+    return true;
 }
 
 bool venc_dev::venc_loaded_stop()
 {
-  return true;
+    return true;
 }
 
 bool venc_dev::venc_loaded_start_done()
 {
-  return true;
+    return true;
 }
 
 bool venc_dev::venc_loaded_stop_done()
 {
-  return true;
+    return true;
 }
 
 bool venc_dev::venc_get_seq_hdr(void *buffer,
-    unsigned buffer_size, unsigned *header_len)
+        unsigned buffer_size, unsigned *header_len)
 {
-  return true;
+    return true;
 }
 
 bool venc_dev::venc_get_buf_req(unsigned long *min_buff_count,
-                                unsigned long *actual_buff_count,
-                                unsigned long *buff_size,
-                                unsigned long port)
+        unsigned long *actual_buff_count,
+        unsigned long *buff_size,
+        unsigned long port)
 {
-	struct v4l2_format fmt;
-	struct v4l2_requestbuffers bufreq;
-	unsigned int buf_size = 0, extra_data_size = 0, client_extra_data_size = 0;
-	int ret;
-  if(port == 0)
-  {
-	fmt.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-	fmt.fmt.pix_mp.height = m_sVenc_cfg.input_height;
-	fmt.fmt.pix_mp.width = m_sVenc_cfg.input_width;
-	fmt.fmt.pix_mp.pixelformat = V4L2_PIX_FMT_NV12;
-	ret = ioctl(m_nDriver_fd, VIDIOC_G_FMT, &fmt);
-	m_sInput_buff_property.datasize=fmt.fmt.pix_mp.plane_fmt[0].sizeimage;
-	bufreq.memory = V4L2_MEMORY_USERPTR;
-	if (*actual_buff_count)
-		bufreq.count = *actual_buff_count;
-	else
-		bufreq.count = 2;
-	bufreq.type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-	ret = ioctl(m_nDriver_fd,VIDIOC_REQBUFS, &bufreq);
-	if (ret) {
-                        DEBUG_PRINT_ERROR("\n VIDIOC_REQBUFS OUTPUT_MPLANE Failed \n ");
-                        return false;
-                }
-    m_sInput_buff_property.mincount = m_sInput_buff_property.actualcount = bufreq.count;
-    *min_buff_count = m_sInput_buff_property.mincount;
-    *actual_buff_count = m_sInput_buff_property.actualcount;
-#ifdef USE_ION
-// For ION memory allocations of the allocated buffer size
-// must be 4k aligned, hence aligning the input buffer
-// size to 4k.
-		m_sInput_buff_property.datasize = (m_sInput_buff_property.datasize + 4095) & (~4095);
-#endif
-		*buff_size = m_sInput_buff_property.datasize;
-	}
-	else
-	{
-		int extra_idx = 0;
-		fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		fmt.fmt.pix_mp.height = m_sVenc_cfg.input_height;
-		fmt.fmt.pix_mp.width = m_sVenc_cfg.input_width;
-		fmt.fmt.pix_mp.pixelformat = m_sVenc_cfg.codectype;
-		
-		ret = ioctl(m_nDriver_fd, VIDIOC_S_FMT, &fmt);
-		m_sOutput_buff_property.datasize=fmt.fmt.pix_mp.plane_fmt[0].sizeimage;
-		fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		fmt.fmt.pix_mp.height = m_sVenc_cfg.input_height;
-		fmt.fmt.pix_mp.width = m_sVenc_cfg.input_width;
-		fmt.fmt.pix_mp.pixelformat = m_sVenc_cfg.codectype;
+    struct v4l2_format fmt;
+    struct v4l2_requestbuffers bufreq;
+    unsigned int buf_size = 0, extra_data_size = 0, client_extra_data_size = 0;
+    int ret;
 
-		ret = ioctl(m_nDriver_fd, VIDIOC_G_FMT, &fmt);
-		m_sOutput_buff_property.datasize=fmt.fmt.pix_mp.plane_fmt[0].sizeimage;
-		bufreq.memory = V4L2_MEMORY_USERPTR;
-		if (*actual_buff_count)
-			bufreq.count = *actual_buff_count;
-		else
-			bufreq.count = 2;
-		bufreq.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		ret = ioctl(m_nDriver_fd,VIDIOC_REQBUFS, &bufreq);
-		if (ret) {
-			DEBUG_PRINT_ERROR("\n VIDIOC_REQBUFS CAPTURE_MPLANE Failed \n ");
-			return false;
-		}
-		m_sOutput_buff_property.mincount = m_sOutput_buff_property.actualcount = bufreq.count;
-		*min_buff_count = m_sOutput_buff_property.mincount;
-		*actual_buff_count = m_sOutput_buff_property.actualcount;
-		*buff_size = m_sOutput_buff_property.datasize;
-		num_planes = fmt.fmt.pix_mp.num_planes;
-		extra_idx = EXTRADATA_IDX(num_planes);
-		if (extra_idx && (extra_idx < VIDEO_MAX_PLANES)) {
-			extra_data_size =  fmt.fmt.pix_mp.plane_fmt[extra_idx].sizeimage;
-		} else if (extra_idx >= VIDEO_MAX_PLANES) {
-			DEBUG_PRINT_ERROR("Extradata index is more than allowed: %d\n", extra_idx);
-			return OMX_ErrorBadParameter;
-		}
-		extradata_info.buffer_size = extra_data_size;
-		extradata_info.count = m_sOutput_buff_property.actualcount;
-		extradata_info.size = extradata_info.buffer_size * extradata_info.count;
-	}
-	return true;
+    if (port == 0) {
+        fmt.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+        fmt.fmt.pix_mp.height = m_sVenc_cfg.input_height;
+        fmt.fmt.pix_mp.width = m_sVenc_cfg.input_width;
+        fmt.fmt.pix_mp.pixelformat = V4L2_PIX_FMT_NV12;
+        ret = ioctl(m_nDriver_fd, VIDIOC_G_FMT, &fmt);
+        m_sInput_buff_property.datasize=fmt.fmt.pix_mp.plane_fmt[0].sizeimage;
+        bufreq.memory = V4L2_MEMORY_USERPTR;
+
+        if (*actual_buff_count)
+            bufreq.count = *actual_buff_count;
+        else
+            bufreq.count = 2;
+
+        bufreq.type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+        ret = ioctl(m_nDriver_fd,VIDIOC_REQBUFS, &bufreq);
+
+        if (ret) {
+            DEBUG_PRINT_ERROR("\n VIDIOC_REQBUFS OUTPUT_MPLANE Failed \n ");
+            return false;
+        }
+
+        m_sInput_buff_property.mincount = m_sInput_buff_property.actualcount = bufreq.count;
+        *min_buff_count = m_sInput_buff_property.mincount;
+        *actual_buff_count = m_sInput_buff_property.actualcount;
+#ifdef USE_ION
+        // For ION memory allocations of the allocated buffer size
+        // must be 4k aligned, hence aligning the input buffer
+        // size to 4k.
+        m_sInput_buff_property.datasize = (m_sInput_buff_property.datasize + 4095) & (~4095);
+#endif
+        *buff_size = m_sInput_buff_property.datasize;
+    } else {
+        int extra_idx = 0;
+        fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+        fmt.fmt.pix_mp.height = m_sVenc_cfg.input_height;
+        fmt.fmt.pix_mp.width = m_sVenc_cfg.input_width;
+        fmt.fmt.pix_mp.pixelformat = m_sVenc_cfg.codectype;
+
+        ret = ioctl(m_nDriver_fd, VIDIOC_S_FMT, &fmt);
+        m_sOutput_buff_property.datasize=fmt.fmt.pix_mp.plane_fmt[0].sizeimage;
+        fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+        fmt.fmt.pix_mp.height = m_sVenc_cfg.input_height;
+        fmt.fmt.pix_mp.width = m_sVenc_cfg.input_width;
+        fmt.fmt.pix_mp.pixelformat = m_sVenc_cfg.codectype;
+
+        ret = ioctl(m_nDriver_fd, VIDIOC_G_FMT, &fmt);
+        m_sOutput_buff_property.datasize=fmt.fmt.pix_mp.plane_fmt[0].sizeimage;
+        bufreq.memory = V4L2_MEMORY_USERPTR;
+
+        if (*actual_buff_count)
+            bufreq.count = *actual_buff_count;
+        else
+            bufreq.count = 2;
+
+        bufreq.type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+        ret = ioctl(m_nDriver_fd,VIDIOC_REQBUFS, &bufreq);
+
+        if (ret) {
+            DEBUG_PRINT_ERROR("\n VIDIOC_REQBUFS CAPTURE_MPLANE Failed \n ");
+            return false;
+        }
+
+        m_sOutput_buff_property.mincount = m_sOutput_buff_property.actualcount = bufreq.count;
+        *min_buff_count = m_sOutput_buff_property.mincount;
+        *actual_buff_count = m_sOutput_buff_property.actualcount;
+        *buff_size = m_sOutput_buff_property.datasize;
+        num_planes = fmt.fmt.pix_mp.num_planes;
+        extra_idx = EXTRADATA_IDX(num_planes);
+
+        if (extra_idx && (extra_idx < VIDEO_MAX_PLANES)) {
+            extra_data_size =  fmt.fmt.pix_mp.plane_fmt[extra_idx].sizeimage;
+        } else if (extra_idx >= VIDEO_MAX_PLANES) {
+            DEBUG_PRINT_ERROR("Extradata index is more than allowed: %d\n", extra_idx);
+            return OMX_ErrorBadParameter;
+        }
+
+        extradata_info.buffer_size = extra_data_size;
+        extradata_info.count = m_sOutput_buff_property.actualcount;
+        extradata_info.size = extradata_info.buffer_size * extradata_info.count;
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_set_param(void *paramData,OMX_INDEXTYPE index )
 {
-  DEBUG_PRINT_LOW("venc_set_param:: venc-720p\n");
-	struct v4l2_format fmt;
-	struct v4l2_requestbuffers bufreq;
-	int ret;
-  switch(index)
-  {
-  case OMX_IndexParamPortDefinition:
-    {
-      OMX_PARAM_PORTDEFINITIONTYPE *portDefn;
-      portDefn = (OMX_PARAM_PORTDEFINITIONTYPE *) paramData;
-      DEBUG_PRINT_LOW("venc_set_param: OMX_IndexParamPortDefinition\n");
-      if(portDefn->nPortIndex == PORT_INDEX_IN)
-      {
-		if(!venc_set_encode_framerate(portDefn->format.video.xFramerate, 0))
-        {
-          return false;
-        }
-        if(!venc_set_color_format(portDefn->format.video.eColorFormat))
-        {
-          return false;
-        }
-        if(m_sVenc_cfg.input_height != portDefn->format.video.nFrameHeight ||
-          m_sVenc_cfg.input_width != portDefn->format.video.nFrameWidth)
-        {
-          DEBUG_PRINT_LOW("\n Basic parameter has changed");
-          m_sVenc_cfg.input_height = portDefn->format.video.nFrameHeight;
-          m_sVenc_cfg.input_width = portDefn->format.video.nFrameWidth;
-		  fmt.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-		  fmt.fmt.pix_mp.height = m_sVenc_cfg.input_height;
-		  fmt.fmt.pix_mp.width = m_sVenc_cfg.input_width;
-		  fmt.fmt.pix_mp.pixelformat = V4L2_PIX_FMT_NV12;
-		  if(ioctl(m_nDriver_fd, VIDIOC_S_FMT, &fmt)) {
-			  DEBUG_PRINT_ERROR("\n VIDIOC_S_FMT OUTPUT_MPLANE Failed \n ");
-			  return false;
-		  }
-		  m_sInput_buff_property.datasize=fmt.fmt.pix_mp.plane_fmt[0].sizeimage;
-		  bufreq.memory = V4L2_MEMORY_USERPTR;
-		  bufreq.count = portDefn->nBufferCountActual;
-		  bufreq.type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-		  if(ioctl(m_nDriver_fd,VIDIOC_REQBUFS, &bufreq)) {
-			  DEBUG_PRINT_ERROR("\n VIDIOC_REQBUFS OUTPUT_MPLANE Failed \n ");
-			  return false;
-		  }
-		  if(bufreq.count == portDefn->nBufferCountActual)
-			  m_sInput_buff_property.mincount = m_sInput_buff_property.actualcount = bufreq.count;
-		  if(portDefn->nBufferCountActual >= m_sInput_buff_property.mincount)
-			  m_sInput_buff_property.actualcount = portDefn->nBufferCountActual;
-        }
-		DEBUG_PRINT_LOW("input: actual: %d, min: %d, count_req: %d\n",
-			  portDefn->nBufferCountActual, m_sInput_buff_property.mincount, bufreq.count);
-      }
-      else if(portDefn->nPortIndex == PORT_INDEX_OUT)
-      {
-		  fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		  fmt.fmt.pix_mp.height = m_sVenc_cfg.input_height;
-		  fmt.fmt.pix_mp.width = m_sVenc_cfg.input_width;
-		  fmt.fmt.pix_mp.pixelformat = m_sVenc_cfg.codectype;
-		  if(ioctl(m_nDriver_fd, VIDIOC_S_FMT, &fmt)) {
-			  DEBUG_PRINT_ERROR("\n VIDIOC_S_FMT CAPTURE_MPLANE Failed \n ");
-			  return false;
-		  }
-		  m_sOutput_buff_property.datasize = fmt.fmt.pix_mp.plane_fmt[0].sizeimage;
+    DEBUG_PRINT_LOW("venc_set_param:: venc-720p\n");
+    struct v4l2_format fmt;
+    struct v4l2_requestbuffers bufreq;
+    int ret;
 
-        if(!venc_set_target_bitrate(portDefn->format.video.nBitrate, 0))
-        {
-          return false;
-        }
-
-        if((portDefn->nBufferCountActual >= m_sOutput_buff_property.mincount)
-            && (m_sOutput_buff_property.datasize == portDefn->nBufferSize))
-        {
-          m_sOutput_buff_property.actualcount = portDefn->nBufferCountActual;
-		  bufreq.memory = V4L2_MEMORY_USERPTR;
-		  bufreq.count = portDefn->nBufferCountActual;
-		  bufreq.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		  if(ioctl(m_nDriver_fd,VIDIOC_REQBUFS, &bufreq))
-		  {
-			  DEBUG_PRINT_ERROR("\nERROR: Request for setting o/p buffer count failed: requested: %lu, current: %lu",
-								portDefn->nBufferCountActual, m_sOutput_buff_property.actualcount);
-			  return false;
-		  }
-		  if(bufreq.count == portDefn->nBufferCountActual)
-			  m_sOutput_buff_property.mincount = m_sOutput_buff_property.actualcount = bufreq.count;
-		  if(portDefn->nBufferCountActual >= m_sOutput_buff_property.mincount)
-			  m_sOutput_buff_property.actualcount = portDefn->nBufferCountActual;
-		  if (num_planes > 1)
-			  extradata_info.count = m_sOutput_buff_property.actualcount;
-        }
-        else
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Setting Output buffer requirements failed");
-          return false;
-        }
-		DEBUG_PRINT_LOW("Output: actual: %d, min: %d, count_req: %d\n",
-			  portDefn->nBufferCountActual, m_sOutput_buff_property.mincount, bufreq.count);
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamPortDefinition");
-      }
-      break;
-    }
-  case OMX_IndexParamVideoPortFormat:
-    {
-      OMX_VIDEO_PARAM_PORTFORMATTYPE *portFmt;
-      portFmt =(OMX_VIDEO_PARAM_PORTFORMATTYPE *)paramData;
-      DEBUG_PRINT_LOW("venc_set_param: OMX_IndexParamVideoPortFormat\n");
-
-      if(portFmt->nPortIndex == (OMX_U32) PORT_INDEX_IN)
-      {
-        if(!venc_set_color_format(portFmt->eColorFormat))
-        {
-          return false;
-        }
-      }
-      else if(portFmt->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        if(!venc_set_encode_framerate(portFmt->xFramerate, 0))
-        {
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoPortFormat");
-      }
-      break;
-    }
-  case OMX_IndexParamVideoBitrate:
-    {
-      OMX_VIDEO_PARAM_BITRATETYPE* pParam;
-      pParam = (OMX_VIDEO_PARAM_BITRATETYPE*)paramData;
-      DEBUG_PRINT_LOW("venc_set_param: OMX_IndexParamVideoBitrate\n");
-
-      if(pParam->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        if(!venc_set_target_bitrate(pParam->nTargetBitrate, 0))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Target Bit Rate setting failed");
-          return false;
-        }
-        if(!venc_set_ratectrl_cfg(pParam->eControlRate))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Rate Control setting failed");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoBitrate");
-      }
-      break;
-    }
-  case OMX_IndexParamVideoMpeg4:
-    {
-      OMX_VIDEO_PARAM_MPEG4TYPE* pParam;
-      OMX_U32 bFrames = 0;
-
-      pParam = (OMX_VIDEO_PARAM_MPEG4TYPE*)paramData;
-      DEBUG_PRINT_LOW("venc_set_param: OMX_IndexParamVideoMpeg4\n");
-      if(pParam->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        if(!venc_set_voptiming_cfg(pParam->nTimeIncRes))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Request for setting vop_timing failed");
-          return false;
-        }
-        m_profile_set = false;
-        m_level_set = false;
-        if(!venc_set_profile_level (pParam->eProfile, pParam->eLevel))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Unsuccessful in updating Profile and level");
-          return false;
-        }
-        else {
-          if(pParam->eProfile == OMX_VIDEO_MPEG4ProfileAdvancedSimple)
-          {
-            if(pParam->nBFrames)
+    switch (index) {
+        case OMX_IndexParamPortDefinition:
             {
-              DEBUG_PRINT_HIGH("INFO: Only 1 Bframe is supported");
-              bFrames = 1;
+                OMX_PARAM_PORTDEFINITIONTYPE *portDefn;
+                portDefn = (OMX_PARAM_PORTDEFINITIONTYPE *) paramData;
+                DEBUG_PRINT_LOW("venc_set_param: OMX_IndexParamPortDefinition\n");
+
+                if (portDefn->nPortIndex == PORT_INDEX_IN) {
+                    if (!venc_set_encode_framerate(portDefn->format.video.xFramerate, 0)) {
+                        return false;
+                    }
+
+                    if (!venc_set_color_format(portDefn->format.video.eColorFormat)) {
+                        return false;
+                    }
+
+                    if (m_sVenc_cfg.input_height != portDefn->format.video.nFrameHeight ||
+                            m_sVenc_cfg.input_width != portDefn->format.video.nFrameWidth) {
+                        DEBUG_PRINT_LOW("\n Basic parameter has changed");
+                        m_sVenc_cfg.input_height = portDefn->format.video.nFrameHeight;
+                        m_sVenc_cfg.input_width = portDefn->format.video.nFrameWidth;
+                        fmt.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+                        fmt.fmt.pix_mp.height = m_sVenc_cfg.input_height;
+                        fmt.fmt.pix_mp.width = m_sVenc_cfg.input_width;
+                        fmt.fmt.pix_mp.pixelformat = V4L2_PIX_FMT_NV12;
+
+                        if (ioctl(m_nDriver_fd, VIDIOC_S_FMT, &fmt)) {
+                            DEBUG_PRINT_ERROR("\n VIDIOC_S_FMT OUTPUT_MPLANE Failed \n ");
+                            return false;
+                        }
+
+                        m_sInput_buff_property.datasize=fmt.fmt.pix_mp.plane_fmt[0].sizeimage;
+                        bufreq.memory = V4L2_MEMORY_USERPTR;
+                        bufreq.count = portDefn->nBufferCountActual;
+                        bufreq.type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+
+                        if (ioctl(m_nDriver_fd,VIDIOC_REQBUFS, &bufreq)) {
+                            DEBUG_PRINT_ERROR("\n VIDIOC_REQBUFS OUTPUT_MPLANE Failed \n ");
+                            return false;
+                        }
+
+                        if (bufreq.count == portDefn->nBufferCountActual)
+                            m_sInput_buff_property.mincount = m_sInput_buff_property.actualcount = bufreq.count;
+
+                        if (portDefn->nBufferCountActual >= m_sInput_buff_property.mincount)
+                            m_sInput_buff_property.actualcount = portDefn->nBufferCountActual;
+                    }
+
+                    DEBUG_PRINT_LOW("input: actual: %d, min: %d, count_req: %d\n",
+                            portDefn->nBufferCountActual, m_sInput_buff_property.mincount, bufreq.count);
+                } else if (portDefn->nPortIndex == PORT_INDEX_OUT) {
+                    fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+                    fmt.fmt.pix_mp.height = m_sVenc_cfg.input_height;
+                    fmt.fmt.pix_mp.width = m_sVenc_cfg.input_width;
+                    fmt.fmt.pix_mp.pixelformat = m_sVenc_cfg.codectype;
+
+                    if (ioctl(m_nDriver_fd, VIDIOC_S_FMT, &fmt)) {
+                        DEBUG_PRINT_ERROR("\n VIDIOC_S_FMT CAPTURE_MPLANE Failed \n ");
+                        return false;
+                    }
+
+                    m_sOutput_buff_property.datasize = fmt.fmt.pix_mp.plane_fmt[0].sizeimage;
+
+                    if (!venc_set_target_bitrate(portDefn->format.video.nBitrate, 0)) {
+                        return false;
+                    }
+
+                    if ((portDefn->nBufferCountActual >= m_sOutput_buff_property.mincount)
+                            && (m_sOutput_buff_property.datasize == portDefn->nBufferSize)) {
+                        m_sOutput_buff_property.actualcount = portDefn->nBufferCountActual;
+                        bufreq.memory = V4L2_MEMORY_USERPTR;
+                        bufreq.count = portDefn->nBufferCountActual;
+                        bufreq.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+
+                        if (ioctl(m_nDriver_fd,VIDIOC_REQBUFS, &bufreq)) {
+                            DEBUG_PRINT_ERROR("\nERROR: Request for setting o/p buffer count failed: requested: %lu, current: %lu",
+                                    portDefn->nBufferCountActual, m_sOutput_buff_property.actualcount);
+                            return false;
+                        }
+
+                        if (bufreq.count == portDefn->nBufferCountActual)
+                            m_sOutput_buff_property.mincount = m_sOutput_buff_property.actualcount = bufreq.count;
+
+                        if (portDefn->nBufferCountActual >= m_sOutput_buff_property.mincount)
+                            m_sOutput_buff_property.actualcount = portDefn->nBufferCountActual;
+
+                        if (num_planes > 1)
+                            extradata_info.count = m_sOutput_buff_property.actualcount;
+                    } else {
+                        DEBUG_PRINT_ERROR("\nERROR: Setting Output buffer requirements failed");
+                        return false;
+                    }
+
+                    DEBUG_PRINT_LOW("Output: actual: %d, min: %d, count_req: %d\n",
+                            portDefn->nBufferCountActual, m_sOutput_buff_property.mincount, bufreq.count);
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamPortDefinition");
+                }
+
+                break;
             }
-          }
-        else
-          {
-            if(pParam->nBFrames)
+        case OMX_IndexParamVideoPortFormat:
             {
-              DEBUG_PRINT_ERROR("Warning: B frames not supported\n");
-              bFrames = 0;
+                OMX_VIDEO_PARAM_PORTFORMATTYPE *portFmt;
+                portFmt =(OMX_VIDEO_PARAM_PORTFORMATTYPE *)paramData;
+                DEBUG_PRINT_LOW("venc_set_param: OMX_IndexParamVideoPortFormat\n");
+
+                if (portFmt->nPortIndex == (OMX_U32) PORT_INDEX_IN) {
+                    if (!venc_set_color_format(portFmt->eColorFormat)) {
+                        return false;
+                    }
+                } else if (portFmt->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    if (!venc_set_encode_framerate(portFmt->xFramerate, 0)) {
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoPortFormat");
+                }
+
+                break;
             }
-          }
-        }
-        if(!venc_set_intra_period (pParam->nPFrames,bFrames))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Request for setting intra period failed");
-          return false;
-        }
-        if(!venc_set_multislice_cfg(OMX_IndexParamVideoMpeg4,pParam->nSliceHeaderSpacing))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Unsuccessful in updating slice_config");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoMpeg4");
-      }
-      break;
-    }
-  case OMX_IndexParamVideoH263:
-    {
-      OMX_VIDEO_PARAM_H263TYPE* pParam = (OMX_VIDEO_PARAM_H263TYPE*)paramData;
-      DEBUG_PRINT_LOW("venc_set_param: OMX_IndexParamVideoH263\n");
-      OMX_U32 bFrames = 0;
-      if(pParam->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        m_profile_set = false;
-        m_level_set = false;
-        if(!venc_set_profile_level (pParam->eProfile, pParam->eLevel))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Unsuccessful in updating Profile and level");
-          return false;
-        }
-        if (pParam->nBFrames)
-          DEBUG_PRINT_ERROR("\nWARNING: B frame not supported for H.263");
-
-        if(venc_set_intra_period (pParam->nPFrames, bFrames) == false)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Request for setting intra period failed");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoH263");
-      }
-      break;
-    }
-  case OMX_IndexParamVideoAvc:
-    {
-      DEBUG_PRINT_LOW("venc_set_param:OMX_IndexParamVideoAvc\n");
-      OMX_VIDEO_PARAM_AVCTYPE* pParam = (OMX_VIDEO_PARAM_AVCTYPE*)paramData;
-      OMX_U32 bFrames = 0;
-
-      if(pParam->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        DEBUG_PRINT_LOW("pParam->eProfile :%d ,pParam->eLevel %d\n",
-            pParam->eProfile,pParam->eLevel);
-
-        m_profile_set = false;
-        m_level_set = false;
-
-        if(!venc_set_profile_level (pParam->eProfile,pParam->eLevel))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Unsuccessful in updating Profile and level %d, %d",
-                            pParam->eProfile, pParam->eLevel);
-          return false;
-        }
-        else {
-          if(pParam->eProfile != OMX_VIDEO_AVCProfileBaseline)
-          {
-            if(pParam->nBFrames)
+        case OMX_IndexParamVideoBitrate:
             {
-              DEBUG_PRINT_HIGH("INFO: Only 1 Bframe is supported");
-              bFrames = 1;
+                OMX_VIDEO_PARAM_BITRATETYPE* pParam;
+                pParam = (OMX_VIDEO_PARAM_BITRATETYPE*)paramData;
+                DEBUG_PRINT_LOW("venc_set_param: OMX_IndexParamVideoBitrate\n");
+
+                if (pParam->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    if (!venc_set_target_bitrate(pParam->nTargetBitrate, 0)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Target Bit Rate setting failed");
+                        return false;
+                    }
+
+                    if (!venc_set_ratectrl_cfg(pParam->eControlRate)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Rate Control setting failed");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoBitrate");
+                }
+
+                break;
             }
-          }
-        else
-          {
-            if(pParam->nBFrames)
+        case OMX_IndexParamVideoMpeg4:
             {
-              DEBUG_PRINT_ERROR("Warning: B frames not supported\n");
-              bFrames = 0;
+                OMX_VIDEO_PARAM_MPEG4TYPE* pParam;
+                OMX_U32 bFrames = 0;
+
+                pParam = (OMX_VIDEO_PARAM_MPEG4TYPE*)paramData;
+                DEBUG_PRINT_LOW("venc_set_param: OMX_IndexParamVideoMpeg4\n");
+
+                if (pParam->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    if (!venc_set_voptiming_cfg(pParam->nTimeIncRes)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Request for setting vop_timing failed");
+                        return false;
+                    }
+
+                    m_profile_set = false;
+                    m_level_set = false;
+
+                    if (!venc_set_profile_level (pParam->eProfile, pParam->eLevel)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Unsuccessful in updating Profile and level");
+                        return false;
+                    } else {
+                        if (pParam->eProfile == OMX_VIDEO_MPEG4ProfileAdvancedSimple) {
+                            if (pParam->nBFrames) {
+                                DEBUG_PRINT_HIGH("INFO: Only 1 Bframe is supported");
+                                bFrames = 1;
+                            }
+                        } else {
+                            if (pParam->nBFrames) {
+                                DEBUG_PRINT_ERROR("Warning: B frames not supported\n");
+                                bFrames = 0;
+                            }
+                        }
+                    }
+
+                    if (!venc_set_intra_period (pParam->nPFrames,bFrames)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Request for setting intra period failed");
+                        return false;
+                    }
+
+                    if (!venc_set_multislice_cfg(OMX_IndexParamVideoMpeg4,pParam->nSliceHeaderSpacing)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Unsuccessful in updating slice_config");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoMpeg4");
+                }
+
+                break;
             }
-          }
-        }
-        if(!venc_set_intra_period (pParam->nPFrames, bFrames))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Request for setting intra period failed");
-          return false;
-        }
-        if(!venc_set_entropy_config (pParam->bEntropyCodingCABAC, pParam->nCabacInitIdc))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Request for setting Entropy failed");
-          return false;
-        }
-        if(!venc_set_inloop_filter (pParam->eLoopFilterMode))
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Request for setting Inloop filter failed");
-          return false;
-        }
-        if(!venc_set_multislice_cfg(OMX_IndexParamVideoAvc, pParam->nSliceHeaderSpacing))
-        {
-          DEBUG_PRINT_ERROR("\nWARNING: Unsuccessful in updating slice_config");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoAvc");
-      }
-      //TBD, lot of other variables to be updated, yet to decide
-      break;
-    }
-  case OMX_IndexParamVideoIntraRefresh:
-    {
-      DEBUG_PRINT_LOW("venc_set_param:OMX_IndexParamVideoIntraRefresh\n");
-      OMX_VIDEO_PARAM_INTRAREFRESHTYPE *intra_refresh =
-        (OMX_VIDEO_PARAM_INTRAREFRESHTYPE *)paramData;
-      if(intra_refresh->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        if(venc_set_intra_refresh(intra_refresh->eRefreshMode, intra_refresh->nCirMBs) == false)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Setting Intra refresh failed");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoIntraRefresh");
-      }
-      break;
-    }
-  case OMX_IndexParamVideoErrorCorrection:
-    {
-      DEBUG_PRINT_LOW("venc_set_param:OMX_IndexParamVideoErrorCorrection\n");
-      OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE *error_resilience =
-        (OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE *)paramData;
-      if(error_resilience->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        if(venc_set_error_resilience(error_resilience) == false)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Setting Intra refresh failed");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoErrorCorrection");
-      }
-      break;
-    }
-  case OMX_IndexParamVideoProfileLevelCurrent:
-    {
-      DEBUG_PRINT_LOW("venc_set_param:OMX_IndexParamVideoProfileLevelCurrent\n");
-      OMX_VIDEO_PARAM_PROFILELEVELTYPE *profile_level =
-      (OMX_VIDEO_PARAM_PROFILELEVELTYPE *)paramData;
-      if(profile_level->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        m_profile_set = false;
-        m_level_set = false;
-        if(!venc_set_profile_level (profile_level->eProfile,
-                                   profile_level->eLevel))
-        {
-          DEBUG_PRINT_ERROR("\nWARNING: Unsuccessful in updating Profile and level");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoProfileLevelCurrent");
-      }
-      break;
-    }
-  case OMX_IndexParamVideoQuantization:
-    {
-      DEBUG_PRINT_LOW("venc_set_param:OMX_IndexParamVideoQuantization\n");
-      OMX_VIDEO_PARAM_QUANTIZATIONTYPE *session_qp =
-        (OMX_VIDEO_PARAM_QUANTIZATIONTYPE *)paramData;
-      if(session_qp->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        if(venc_set_session_qp (session_qp->nQpI,
+        case OMX_IndexParamVideoH263:
+            {
+                OMX_VIDEO_PARAM_H263TYPE* pParam = (OMX_VIDEO_PARAM_H263TYPE*)paramData;
+                DEBUG_PRINT_LOW("venc_set_param: OMX_IndexParamVideoH263\n");
+                OMX_U32 bFrames = 0;
+
+                if (pParam->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    m_profile_set = false;
+                    m_level_set = false;
+
+                    if (!venc_set_profile_level (pParam->eProfile, pParam->eLevel)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Unsuccessful in updating Profile and level");
+                        return false;
+                    }
+
+                    if (pParam->nBFrames)
+                        DEBUG_PRINT_ERROR("\nWARNING: B frame not supported for H.263");
+
+                    if (venc_set_intra_period (pParam->nPFrames, bFrames) == false) {
+                        DEBUG_PRINT_ERROR("\nERROR: Request for setting intra period failed");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoH263");
+                }
+
+                break;
+            }
+        case OMX_IndexParamVideoAvc:
+            {
+                DEBUG_PRINT_LOW("venc_set_param:OMX_IndexParamVideoAvc\n");
+                OMX_VIDEO_PARAM_AVCTYPE* pParam = (OMX_VIDEO_PARAM_AVCTYPE*)paramData;
+                OMX_U32 bFrames = 0;
+
+                if (pParam->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    DEBUG_PRINT_LOW("pParam->eProfile :%d ,pParam->eLevel %d\n",
+                            pParam->eProfile,pParam->eLevel);
+
+                    m_profile_set = false;
+                    m_level_set = false;
+
+                    if (!venc_set_profile_level (pParam->eProfile,pParam->eLevel)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Unsuccessful in updating Profile and level %d, %d",
+                                pParam->eProfile, pParam->eLevel);
+                        return false;
+                    } else {
+                        if (pParam->eProfile != OMX_VIDEO_AVCProfileBaseline) {
+                            if (pParam->nBFrames) {
+                                DEBUG_PRINT_HIGH("INFO: Only 1 Bframe is supported");
+                                bFrames = 1;
+                            }
+                        } else {
+                            if (pParam->nBFrames) {
+                                DEBUG_PRINT_ERROR("Warning: B frames not supported\n");
+                                bFrames = 0;
+                            }
+                        }
+                    }
+
+                    if (!venc_set_intra_period (pParam->nPFrames, bFrames)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Request for setting intra period failed");
+                        return false;
+                    }
+
+                    if (!venc_set_entropy_config (pParam->bEntropyCodingCABAC, pParam->nCabacInitIdc)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Request for setting Entropy failed");
+                        return false;
+                    }
+
+                    if (!venc_set_inloop_filter (pParam->eLoopFilterMode)) {
+                        DEBUG_PRINT_ERROR("\nERROR: Request for setting Inloop filter failed");
+                        return false;
+                    }
+
+                    if (!venc_set_multislice_cfg(OMX_IndexParamVideoAvc, pParam->nSliceHeaderSpacing)) {
+                        DEBUG_PRINT_ERROR("\nWARNING: Unsuccessful in updating slice_config");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoAvc");
+                }
+
+                //TBD, lot of other variables to be updated, yet to decide
+                break;
+            }
+        case OMX_IndexParamVideoIntraRefresh:
+            {
+                DEBUG_PRINT_LOW("venc_set_param:OMX_IndexParamVideoIntraRefresh\n");
+                OMX_VIDEO_PARAM_INTRAREFRESHTYPE *intra_refresh =
+                    (OMX_VIDEO_PARAM_INTRAREFRESHTYPE *)paramData;
+
+                if (intra_refresh->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    if (venc_set_intra_refresh(intra_refresh->eRefreshMode, intra_refresh->nCirMBs) == false) {
+                        DEBUG_PRINT_ERROR("\nERROR: Setting Intra refresh failed");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoIntraRefresh");
+                }
+
+                break;
+            }
+        case OMX_IndexParamVideoErrorCorrection:
+            {
+                DEBUG_PRINT_LOW("venc_set_param:OMX_IndexParamVideoErrorCorrection\n");
+                OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE *error_resilience =
+                    (OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE *)paramData;
+
+                if (error_resilience->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    if (venc_set_error_resilience(error_resilience) == false) {
+                        DEBUG_PRINT_ERROR("\nERROR: Setting Intra refresh failed");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoErrorCorrection");
+                }
+
+                break;
+            }
+        case OMX_IndexParamVideoProfileLevelCurrent:
+            {
+                DEBUG_PRINT_LOW("venc_set_param:OMX_IndexParamVideoProfileLevelCurrent\n");
+                OMX_VIDEO_PARAM_PROFILELEVELTYPE *profile_level =
+                    (OMX_VIDEO_PARAM_PROFILELEVELTYPE *)paramData;
+
+                if (profile_level->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    m_profile_set = false;
+                    m_level_set = false;
+
+                    if (!venc_set_profile_level (profile_level->eProfile,
+                                profile_level->eLevel)) {
+                        DEBUG_PRINT_ERROR("\nWARNING: Unsuccessful in updating Profile and level");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoProfileLevelCurrent");
+                }
+
+                break;
+            }
+        case OMX_IndexParamVideoQuantization:
+            {
+                DEBUG_PRINT_LOW("venc_set_param:OMX_IndexParamVideoQuantization\n");
+                OMX_VIDEO_PARAM_QUANTIZATIONTYPE *session_qp =
+                    (OMX_VIDEO_PARAM_QUANTIZATIONTYPE *)paramData;
+
+                if (session_qp->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    if (venc_set_session_qp (session_qp->nQpI,
                                 session_qp->nQpP,
-				session_qp->nQpB) == false)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Setting Session QP failed");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoQuantization");
-      }
-      break;
-    }
-  case OMX_QcomIndexEnableSliceDeliveryMode:
-    {
-       QOMX_EXTNINDEX_PARAMTYPE* pParam =
-          (QOMX_EXTNINDEX_PARAMTYPE*)paramData;
-       if(pParam->nPortIndex == PORT_INDEX_OUT)
-       {
-         if(venc_set_slice_delivery_mode(pParam->bEnable) == false)
-         {
-           DEBUG_PRINT_ERROR("Setting slice delivery mode failed");
-           return OMX_ErrorUnsupportedSetting;
-         }
-       }
-       else
-       {
-         DEBUG_PRINT_ERROR("OMX_QcomIndexEnableSliceDeliveryMode "
-            "called on wrong port(%d)", pParam->nPortIndex);
-         return OMX_ErrorBadPortIndex;
-       }
-       break;
-    }
-  case OMX_ExtraDataVideoEncoderSliceInfo:
-    {
-      DEBUG_PRINT_LOW("venc_set_param: OMX_ExtraDataVideoEncoderSliceInfo");
-      OMX_U32 extra_data = *(OMX_U32 *)paramData;
-      if(venc_set_extradata(extra_data) == false)
-      {
-         DEBUG_PRINT_ERROR("ERROR: Setting "
-            "OMX_ExtraDataVideoEncoderSliceInfo failed");
-         return false;
-      }
-	  extradata = true;
-      break;
-    }
-  case OMX_IndexParamVideoSliceFMO:
-  default:
-	  DEBUG_PRINT_ERROR("\nERROR: Unsupported parameter in venc_set_param: %u",
-      index);
-    break;
-    //case
-  }
+                                session_qp->nQpB) == false) {
+                        DEBUG_PRINT_ERROR("\nERROR: Setting Session QP failed");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexParamVideoQuantization");
+                }
 
-  return true;
+                break;
+            }
+        case OMX_QcomIndexEnableSliceDeliveryMode:
+            {
+                QOMX_EXTNINDEX_PARAMTYPE* pParam =
+                    (QOMX_EXTNINDEX_PARAMTYPE*)paramData;
+
+                if (pParam->nPortIndex == PORT_INDEX_OUT) {
+                    if (venc_set_slice_delivery_mode(pParam->bEnable) == false) {
+                        DEBUG_PRINT_ERROR("Setting slice delivery mode failed");
+                        return OMX_ErrorUnsupportedSetting;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("OMX_QcomIndexEnableSliceDeliveryMode "
+                            "called on wrong port(%d)", pParam->nPortIndex);
+                    return OMX_ErrorBadPortIndex;
+                }
+
+                break;
+            }
+        case OMX_ExtraDataVideoEncoderSliceInfo:
+            {
+                DEBUG_PRINT_LOW("venc_set_param: OMX_ExtraDataVideoEncoderSliceInfo");
+                OMX_U32 extra_data = *(OMX_U32 *)paramData;
+
+                if (venc_set_extradata(extra_data) == false) {
+                    DEBUG_PRINT_ERROR("ERROR: Setting "
+                            "OMX_ExtraDataVideoEncoderSliceInfo failed");
+                    return false;
+                }
+
+                extradata = true;
+                break;
+            }
+        case OMX_IndexParamVideoSliceFMO:
+        default:
+            DEBUG_PRINT_ERROR("\nERROR: Unsupported parameter in venc_set_param: %u",
+                    index);
+            break;
+            //case
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_set_config(void *configData, OMX_INDEXTYPE index)
 {
 
-  DEBUG_PRINT_LOW("\n Inside venc_set_config");
+    DEBUG_PRINT_LOW("\n Inside venc_set_config");
 
-  switch(index)
-  {
-  case OMX_IndexConfigVideoBitrate:
-    {
-      OMX_VIDEO_CONFIG_BITRATETYPE *bit_rate = (OMX_VIDEO_CONFIG_BITRATETYPE *)
-        configData;
-      DEBUG_PRINT_LOW("\n venc_set_config: OMX_IndexConfigVideoBitrate");
-      if(bit_rate->nPortIndex == (OMX_U32)PORT_INDEX_OUT)
-      {
-        if(venc_set_target_bitrate(bit_rate->nEncodeBitrate, 1) == false)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Setting Target Bit rate failed");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexConfigVideoBitrate");
-      }
-      break;
-    }
-  case OMX_IndexConfigVideoFramerate:
-    {
-      OMX_CONFIG_FRAMERATETYPE *frame_rate = (OMX_CONFIG_FRAMERATETYPE *)
-        configData;
-      DEBUG_PRINT_LOW("\n venc_set_config: OMX_IndexConfigVideoFramerate");
-      if(frame_rate->nPortIndex == (OMX_U32)PORT_INDEX_OUT)
-      {
-        if(venc_set_encode_framerate(frame_rate->xEncodeFramerate, 1) == false)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Setting Encode Framerate failed");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexConfigVideoFramerate");
-      }
-      break;
-    }
-  case QOMX_IndexConfigVideoIntraperiod:
-    {
-      DEBUG_PRINT_LOW("venc_set_param:QOMX_IndexConfigVideoIntraperiod\n");
-      QOMX_VIDEO_INTRAPERIODTYPE *intraperiod =
-      (QOMX_VIDEO_INTRAPERIODTYPE *)configData;
-      if(intraperiod->nPortIndex == (OMX_U32) PORT_INDEX_OUT)
-      {
-        if(venc_set_intra_period(intraperiod->nPFrames, intraperiod->nBFrames) == false)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Request for setting intra period failed");
-          return false;
-        }
-      }
-	  break;
-    }
-  case OMX_IndexConfigVideoIntraVOPRefresh:
-    {
-      OMX_CONFIG_INTRAREFRESHVOPTYPE *intra_vop_refresh = (OMX_CONFIG_INTRAREFRESHVOPTYPE *)
-        configData;
-      DEBUG_PRINT_LOW("\n venc_set_config: OMX_IndexConfigVideoIntraVOPRefresh");
-      if(intra_vop_refresh->nPortIndex == (OMX_U32)PORT_INDEX_OUT)
-      {
-        if(venc_set_intra_vop_refresh(intra_vop_refresh->IntraRefreshVOP) == false)
-        {
-          DEBUG_PRINT_ERROR("\nERROR: Setting Encode Framerate failed");
-          return false;
-        }
-      }
-      else
-      {
-        DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexConfigVideoFramerate");
-      }
-      break;
-    }
-  case OMX_IndexConfigCommonRotate:
-    {
-      OMX_CONFIG_ROTATIONTYPE *config_rotation =
-         reinterpret_cast<OMX_CONFIG_ROTATIONTYPE*>(configData);
-      OMX_U32 nFrameWidth;
+    switch (index) {
+        case OMX_IndexConfigVideoBitrate:
+            {
+                OMX_VIDEO_CONFIG_BITRATETYPE *bit_rate = (OMX_VIDEO_CONFIG_BITRATETYPE *)
+                    configData;
+                DEBUG_PRINT_LOW("\n venc_set_config: OMX_IndexConfigVideoBitrate");
 
-      DEBUG_PRINT_HIGH("\nvenc_set_config: updating the new Dims");
-      nFrameWidth = m_sVenc_cfg.input_width;
-      m_sVenc_cfg.input_width  = m_sVenc_cfg.input_height;
-      m_sVenc_cfg.input_height = nFrameWidth;
-      if(/*ioctl (m_nDriver_fd,VEN_IOCTL_SET_BASE_CFG,(void*)&ioctl_msg) < */0) {
-          DEBUG_PRINT_ERROR("\nERROR: Dimension Change for Rotation failed");
-          return false;
-      }
-      break;
-    }
-  case OMX_IndexConfigVideoAVCIntraPeriod:
-	{
-		OMX_VIDEO_CONFIG_AVCINTRAPERIOD *avc_iperiod = (OMX_VIDEO_CONFIG_AVCINTRAPERIOD*) configData;
-		DEBUG_PRINT_LOW("venc_set_param: OMX_IndexConfigVideoAVCIntraPeriod");
-		if(venc_set_idr_period(avc_iperiod->nPFrames, avc_iperiod->nIDRPeriod)
-			== false)
-		{
-			DEBUG_PRINT_ERROR("ERROR: Setting "
-				"OMX_IndexConfigVideoAVCIntraPeriod failed");
-			return false;
-		}
-		break;
-	}
-  default:
-    DEBUG_PRINT_ERROR("\n Unsupported config index = %u", index);
-    break;
-  }
+                if (bit_rate->nPortIndex == (OMX_U32)PORT_INDEX_OUT) {
+                    if (venc_set_target_bitrate(bit_rate->nEncodeBitrate, 1) == false) {
+                        DEBUG_PRINT_ERROR("\nERROR: Setting Target Bit rate failed");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexConfigVideoBitrate");
+                }
 
-  return true;
+                break;
+            }
+        case OMX_IndexConfigVideoFramerate:
+            {
+                OMX_CONFIG_FRAMERATETYPE *frame_rate = (OMX_CONFIG_FRAMERATETYPE *)
+                    configData;
+                DEBUG_PRINT_LOW("\n venc_set_config: OMX_IndexConfigVideoFramerate");
+
+                if (frame_rate->nPortIndex == (OMX_U32)PORT_INDEX_OUT) {
+                    if (venc_set_encode_framerate(frame_rate->xEncodeFramerate, 1) == false) {
+                        DEBUG_PRINT_ERROR("\nERROR: Setting Encode Framerate failed");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexConfigVideoFramerate");
+                }
+
+                break;
+            }
+        case QOMX_IndexConfigVideoIntraperiod:
+            {
+                DEBUG_PRINT_LOW("venc_set_param:QOMX_IndexConfigVideoIntraperiod\n");
+                QOMX_VIDEO_INTRAPERIODTYPE *intraperiod =
+                    (QOMX_VIDEO_INTRAPERIODTYPE *)configData;
+
+                if (intraperiod->nPortIndex == (OMX_U32) PORT_INDEX_OUT) {
+                    if (venc_set_intra_period(intraperiod->nPFrames, intraperiod->nBFrames) == false) {
+                        DEBUG_PRINT_ERROR("\nERROR: Request for setting intra period failed");
+                        return false;
+                    }
+                }
+
+                break;
+            }
+        case OMX_IndexConfigVideoIntraVOPRefresh:
+            {
+                OMX_CONFIG_INTRAREFRESHVOPTYPE *intra_vop_refresh = (OMX_CONFIG_INTRAREFRESHVOPTYPE *)
+                    configData;
+                DEBUG_PRINT_LOW("\n venc_set_config: OMX_IndexConfigVideoIntraVOPRefresh");
+
+                if (intra_vop_refresh->nPortIndex == (OMX_U32)PORT_INDEX_OUT) {
+                    if (venc_set_intra_vop_refresh(intra_vop_refresh->IntraRefreshVOP) == false) {
+                        DEBUG_PRINT_ERROR("\nERROR: Setting Encode Framerate failed");
+                        return false;
+                    }
+                } else {
+                    DEBUG_PRINT_ERROR("\nERROR: Invalid Port Index for OMX_IndexConfigVideoFramerate");
+                }
+
+                break;
+            }
+        case OMX_IndexConfigCommonRotate:
+            {
+                OMX_CONFIG_ROTATIONTYPE *config_rotation =
+                    reinterpret_cast<OMX_CONFIG_ROTATIONTYPE*>(configData);
+                OMX_U32 nFrameWidth;
+
+                DEBUG_PRINT_HIGH("\nvenc_set_config: updating the new Dims");
+                nFrameWidth = m_sVenc_cfg.input_width;
+                m_sVenc_cfg.input_width  = m_sVenc_cfg.input_height;
+                m_sVenc_cfg.input_height = nFrameWidth;
+
+                if (/*ioctl (m_nDriver_fd,VEN_IOCTL_SET_BASE_CFG,(void*)&ioctl_msg) < */0) {
+                    DEBUG_PRINT_ERROR("\nERROR: Dimension Change for Rotation failed");
+                    return false;
+                }
+
+                break;
+            }
+        case OMX_IndexConfigVideoAVCIntraPeriod:
+            {
+                OMX_VIDEO_CONFIG_AVCINTRAPERIOD *avc_iperiod = (OMX_VIDEO_CONFIG_AVCINTRAPERIOD*) configData;
+                DEBUG_PRINT_LOW("venc_set_param: OMX_IndexConfigVideoAVCIntraPeriod");
+
+                if (venc_set_idr_period(avc_iperiod->nPFrames, avc_iperiod->nIDRPeriod)
+                        == false) {
+                    DEBUG_PRINT_ERROR("ERROR: Setting "
+                            "OMX_IndexConfigVideoAVCIntraPeriod failed");
+                    return false;
+                }
+
+                break;
+            }
+        default:
+            DEBUG_PRINT_ERROR("\n Unsupported config index = %u", index);
+            break;
+    }
+
+    return true;
 }
 
 unsigned venc_dev::venc_stop( void)
 {
-	struct venc_msg venc_msg;
-	int rc = 0;
-	if(!stopped) {
-		enum v4l2_buf_type cap_type;
-		if (streaming[OUTPUT_PORT]) {
-			cap_type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-			rc = ioctl(m_nDriver_fd, VIDIOC_STREAMOFF, &cap_type);
-			if (rc) {
-				DEBUG_PRINT_ERROR("Failed to call streamoff on driver: capability: %d, %d\n",
-						cap_type, rc);
-			} else
-				streaming[OUTPUT_PORT] = false;
-		}
-		if (!rc && streaming[CAPTURE_PORT]) {
-			cap_type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-			rc = ioctl(m_nDriver_fd, VIDIOC_STREAMOFF, &cap_type);
-			if (rc) {
-				DEBUG_PRINT_ERROR("Failed to call streamoff on driver: capability: %d, %d\n",
-						cap_type, rc);
-			} else
-				streaming[CAPTURE_PORT] = false;
-		}
-		if (!rc) {
-			venc_stop_done();
-			stopped = 1;
-		}
-	}
-	return rc;
+    struct venc_msg venc_msg;
+    int rc = 0;
+
+    if (!stopped) {
+        enum v4l2_buf_type cap_type;
+
+        if (streaming[OUTPUT_PORT]) {
+            cap_type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+            rc = ioctl(m_nDriver_fd, VIDIOC_STREAMOFF, &cap_type);
+
+            if (rc) {
+                DEBUG_PRINT_ERROR("Failed to call streamoff on driver: capability: %d, %d\n",
+                        cap_type, rc);
+            } else
+                streaming[OUTPUT_PORT] = false;
+        }
+
+        if (!rc && streaming[CAPTURE_PORT]) {
+            cap_type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+            rc = ioctl(m_nDriver_fd, VIDIOC_STREAMOFF, &cap_type);
+
+            if (rc) {
+                DEBUG_PRINT_ERROR("Failed to call streamoff on driver: capability: %d, %d\n",
+                        cap_type, rc);
+            } else
+                streaming[CAPTURE_PORT] = false;
+        }
+
+        if (!rc) {
+            venc_stop_done();
+            stopped = 1;
+        }
+    }
+
+    return rc;
 }
 
 unsigned venc_dev::venc_pause(void)
 {
-	pthread_mutex_lock(&pause_resume_mlock);
-	paused = true;
-	pthread_mutex_unlock(&pause_resume_mlock);
-	return 0;
+    pthread_mutex_lock(&pause_resume_mlock);
+    paused = true;
+    pthread_mutex_unlock(&pause_resume_mlock);
+    return 0;
 }
 
 unsigned venc_dev::venc_resume(void)
 {
-	pthread_mutex_lock(&pause_resume_mlock);
-	paused = false;
-	pthread_mutex_unlock(&pause_resume_mlock);
+    pthread_mutex_lock(&pause_resume_mlock);
+    paused = false;
+    pthread_mutex_unlock(&pause_resume_mlock);
 
-	return pthread_cond_signal(&pause_resume_cond);
+    return pthread_cond_signal(&pause_resume_cond);
 }
 
 unsigned venc_dev::venc_start_done(void)
 {
-  struct venc_msg venc_msg;
-  venc_msg.msgcode = VEN_MSG_START;
-  venc_msg.statuscode = VEN_S_SUCCESS;
-  venc_handle->async_message_process(venc_handle,&venc_msg);
-  return 0;
+    struct venc_msg venc_msg;
+    venc_msg.msgcode = VEN_MSG_START;
+    venc_msg.statuscode = VEN_S_SUCCESS;
+    venc_handle->async_message_process(venc_handle,&venc_msg);
+    return 0;
 }
 
 unsigned venc_dev::venc_stop_done(void)
 {
-  struct venc_msg venc_msg;
-  free_extradata();
-  venc_msg.msgcode=VEN_MSG_STOP;
-  venc_msg.statuscode=VEN_S_SUCCESS;
-  venc_handle->async_message_process(venc_handle,&venc_msg);
-  return 0;
+    struct venc_msg venc_msg;
+    free_extradata();
+    venc_msg.msgcode=VEN_MSG_STOP;
+    venc_msg.statuscode=VEN_S_SUCCESS;
+    venc_handle->async_message_process(venc_handle,&venc_msg);
+    return 0;
 }
 
 unsigned venc_dev::venc_set_message_thread_id(pthread_t tid)
 {
- async_thread_created = true;
- m_tid=tid;
- return 0;
+    async_thread_created = true;
+    m_tid=tid;
+    return 0;
 }
 
 
 unsigned venc_dev::venc_start(void)
 {
-	enum v4l2_buf_type buf_type;
-	int ret,r;
-  DEBUG_PRINT_HIGH("\n %s(): Check Profile/Level set in driver before start",
-        __func__);
-  if (!venc_set_profile_level(0, 0))
-  {
-    DEBUG_PRINT_ERROR("\n ERROR: %s(): Driver Profile/Level is NOT SET",
-      __func__);
-  }
-  else
-  {
-    DEBUG_PRINT_HIGH("\n %s(): Driver Profile[%lu]/Level[%lu] successfully SET",
-      __func__, codec_profile.profile, profile_level.level);
-  }
-  venc_config_print();
-  /* Check if slice_delivery mode is enabled & max slices is sufficient for encoding complete frame */
-  if (slice_mode.enable && multislice.mslice_size &&
-	  (m_sVenc_cfg.input_width *  m_sVenc_cfg.input_height)/(256 * multislice.mslice_size) >= MAX_SUPPORTED_SLICES_PER_FRAME) {
-	  DEBUG_PRINT_ERROR("slice_mode: %d, max slices (%d) should be less than (%d)\n", slice_mode.enable,
-			(m_sVenc_cfg.input_width *  m_sVenc_cfg.input_height)/(256 * multislice.mslice_size),
-			MAX_SUPPORTED_SLICES_PER_FRAME);
-	  return 1;
-  }
+    enum v4l2_buf_type buf_type;
+    int ret,r;
+    DEBUG_PRINT_HIGH("\n %s(): Check Profile/Level set in driver before start",
+            __func__);
 
-  buf_type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-  DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Executing\n");
-  ret=ioctl(m_nDriver_fd, VIDIOC_STREAMON,&buf_type);
+    if (!venc_set_profile_level(0, 0)) {
+        DEBUG_PRINT_ERROR("\n ERROR: %s(): Driver Profile/Level is NOT SET",
+                __func__);
+    } else {
+        DEBUG_PRINT_HIGH("\n %s(): Driver Profile[%lu]/Level[%lu] successfully SET",
+                __func__, codec_profile.profile, profile_level.level);
+    }
 
-  if (ret)
-	  return 1;
+    venc_config_print();
 
-  streaming[CAPTURE_PORT] = true;
-  return 0;
+    /* Check if slice_delivery mode is enabled & max slices is sufficient for encoding complete frame */
+    if (slice_mode.enable && multislice.mslice_size &&
+            (m_sVenc_cfg.input_width *  m_sVenc_cfg.input_height)/(256 * multislice.mslice_size) >= MAX_SUPPORTED_SLICES_PER_FRAME) {
+        DEBUG_PRINT_ERROR("slice_mode: %d, max slices (%d) should be less than (%d)\n", slice_mode.enable,
+                (m_sVenc_cfg.input_width *  m_sVenc_cfg.input_height)/(256 * multislice.mslice_size),
+                MAX_SUPPORTED_SLICES_PER_FRAME);
+        return 1;
+    }
+
+    buf_type=V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+    DEBUG_PRINT_LOW("send_command_proxy(): Idle-->Executing\n");
+    ret=ioctl(m_nDriver_fd, VIDIOC_STREAMON,&buf_type);
+
+    if (ret)
+        return 1;
+
+    streaming[CAPTURE_PORT] = true;
+    return 0;
 }
 
 void venc_dev::venc_config_print()
 {
 
-  DEBUG_PRINT_HIGH("\nENC_CONFIG: Codec: %ld, Profile %ld, level : %ld",
-                   m_sVenc_cfg.codectype, codec_profile.profile, profile_level.level);
+    DEBUG_PRINT_HIGH("\nENC_CONFIG: Codec: %ld, Profile %ld, level : %ld",
+            m_sVenc_cfg.codectype, codec_profile.profile, profile_level.level);
 
-  DEBUG_PRINT_HIGH("\n ENC_CONFIG: Width: %ld, Height:%ld, Fps: %ld",
-                   m_sVenc_cfg.input_width, m_sVenc_cfg.input_height,
-                   m_sVenc_cfg.fps_num/m_sVenc_cfg.fps_den);
+    DEBUG_PRINT_HIGH("\n ENC_CONFIG: Width: %ld, Height:%ld, Fps: %ld",
+            m_sVenc_cfg.input_width, m_sVenc_cfg.input_height,
+            m_sVenc_cfg.fps_num/m_sVenc_cfg.fps_den);
 
-  DEBUG_PRINT_HIGH("\nENC_CONFIG: Bitrate: %ld, RC: %ld, I-Period: %ld",
-                   bitrate.target_bitrate, rate_ctrl.rcmode, intra_period.num_pframes);
+    DEBUG_PRINT_HIGH("\nENC_CONFIG: Bitrate: %ld, RC: %ld, I-Period: %ld",
+            bitrate.target_bitrate, rate_ctrl.rcmode, intra_period.num_pframes);
 
-  DEBUG_PRINT_HIGH("\nENC_CONFIG: qpI: %ld, qpP: %ld, qpb: %ld",
-                   session_qp.iframeqp, session_qp.pframqp,session_qp.bframqp);
+    DEBUG_PRINT_HIGH("\nENC_CONFIG: qpI: %ld, qpP: %ld, qpb: %ld",
+            session_qp.iframeqp, session_qp.pframqp,session_qp.bframqp);
 
-  DEBUG_PRINT_HIGH("\nENC_CONFIG: VOP_Resolution: %ld, Slice-Mode: %ld, Slize_Size: %ld",
-                   voptimecfg.voptime_resolution, multislice.mslice_mode,
-                   multislice.mslice_size);
+    DEBUG_PRINT_HIGH("\nENC_CONFIG: VOP_Resolution: %ld, Slice-Mode: %ld, Slize_Size: %ld",
+            voptimecfg.voptime_resolution, multislice.mslice_mode,
+            multislice.mslice_size);
 
-  DEBUG_PRINT_HIGH("\nENC_CONFIG: EntropyMode: %d, CabacModel: %ld",
-                   entropy.longentropysel, entropy.cabacmodel);
+    DEBUG_PRINT_HIGH("\nENC_CONFIG: EntropyMode: %d, CabacModel: %ld",
+            entropy.longentropysel, entropy.cabacmodel);
 
-  DEBUG_PRINT_HIGH("\nENC_CONFIG: DB-Mode: %ld, alpha: %ld, Beta: %ld\n",
-                   dbkfilter.db_mode, dbkfilter.slicealpha_offset,
-                   dbkfilter.slicebeta_offset);
+    DEBUG_PRINT_HIGH("\nENC_CONFIG: DB-Mode: %ld, alpha: %ld, Beta: %ld\n",
+            dbkfilter.db_mode, dbkfilter.slicealpha_offset,
+            dbkfilter.slicebeta_offset);
 
-  DEBUG_PRINT_HIGH("\nENC_CONFIG: IntraMB/Frame: %ld, HEC: %ld, IDR Period: %ld\n",
-                   intra_refresh.mbcount, hec.header_extension, idrperiod.idrperiod);
+    DEBUG_PRINT_HIGH("\nENC_CONFIG: IntraMB/Frame: %ld, HEC: %ld, IDR Period: %ld\n",
+            intra_refresh.mbcount, hec.header_extension, idrperiod.idrperiod);
 
 }
 
 unsigned venc_dev::venc_flush( unsigned port)
 {
-  struct v4l2_encoder_cmd enc;
-  DEBUG_PRINT_LOW("in %s", __func__);
+    struct v4l2_encoder_cmd enc;
+    DEBUG_PRINT_LOW("in %s", __func__);
 
-  enc.cmd = V4L2_ENC_QCOM_CMD_FLUSH;
-  enc.flags = V4L2_QCOM_CMD_FLUSH_OUTPUT | V4L2_QCOM_CMD_FLUSH_CAPTURE;
+    enc.cmd = V4L2_ENC_QCOM_CMD_FLUSH;
+    enc.flags = V4L2_QCOM_CMD_FLUSH_OUTPUT | V4L2_QCOM_CMD_FLUSH_CAPTURE;
 
-  if (ioctl(m_nDriver_fd, VIDIOC_ENCODER_CMD, &enc))
-  {
-    DEBUG_PRINT_ERROR("\n Flush Port (%d) Failed ", port);
-    return -1;
-  }
-  return 0;
+    if (ioctl(m_nDriver_fd, VIDIOC_ENCODER_CMD, &enc)) {
+        DEBUG_PRINT_ERROR("\n Flush Port (%d) Failed ", port);
+        return -1;
+    }
+
+    return 0;
 
 }
 
@@ -1562,1653 +1598,1624 @@
 bool venc_dev::venc_use_buf(void *buf_addr, unsigned port,unsigned index)
 {
 
-	struct pmem *pmem_tmp;
-	struct v4l2_buffer buf;
-	struct v4l2_plane plane[VIDEO_MAX_PLANES];
-	int rc = 0, extra_idx;
+    struct pmem *pmem_tmp;
+    struct v4l2_buffer buf;
+    struct v4l2_plane plane[VIDEO_MAX_PLANES];
+    int rc = 0, extra_idx;
 
-	pmem_tmp = (struct pmem *)buf_addr;
-	DEBUG_PRINT_LOW("\n venc_use_buf:: pmem_tmp = %p", pmem_tmp);
+    pmem_tmp = (struct pmem *)buf_addr;
+    DEBUG_PRINT_LOW("\n venc_use_buf:: pmem_tmp = %p", pmem_tmp);
 
-	if(port == PORT_INDEX_IN)
-	{
-		buf.index = index;
-		buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-		buf.memory = V4L2_MEMORY_USERPTR;
-		plane[0].length = pmem_tmp->size;
-		plane[0].m.userptr = (unsigned long)pmem_tmp->buffer;
-		plane[0].reserved[0] = pmem_tmp->fd;
-		plane[0].reserved[1] = 0;
-		plane[0].data_offset = pmem_tmp->offset;
-		buf.m.planes = plane;
-		buf.length = 1;
+    if (port == PORT_INDEX_IN) {
+        buf.index = index;
+        buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+        buf.memory = V4L2_MEMORY_USERPTR;
+        plane[0].length = pmem_tmp->size;
+        plane[0].m.userptr = (unsigned long)pmem_tmp->buffer;
+        plane[0].reserved[0] = pmem_tmp->fd;
+        plane[0].reserved[1] = 0;
+        plane[0].data_offset = pmem_tmp->offset;
+        buf.m.planes = plane;
+        buf.length = 1;
 
-		rc = ioctl(m_nDriver_fd, VIDIOC_PREPARE_BUF, &buf);
-		if (rc)
-			DEBUG_PRINT_LOW("VIDIOC_PREPARE_BUF Failed\n");
-	}
-	else if(port == PORT_INDEX_OUT)
-	{
-		extra_idx = EXTRADATA_IDX(num_planes);
-		if ((num_planes > 1) && (extra_idx)) {
-			rc = allocate_extradata();
-			if (rc)
-				DEBUG_PRINT_ERROR("Failed to allocate extradata: %d\n", rc);
-		}
-		buf.index = index;
-		buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-		buf.memory = V4L2_MEMORY_USERPTR;
-		plane[0].length = pmem_tmp->size;
-		plane[0].m.userptr = (unsigned long)pmem_tmp->buffer;
-		plane[0].reserved[0] = pmem_tmp->fd;
-		plane[0].reserved[1] = 0;
-		plane[0].data_offset = pmem_tmp->offset;
-		buf.m.planes = plane;
-		buf.length = num_planes;
+        rc = ioctl(m_nDriver_fd, VIDIOC_PREPARE_BUF, &buf);
 
-		if (extra_idx && (extra_idx < VIDEO_MAX_PLANES)) {
-			plane[extra_idx].length = extradata_info.buffer_size;
-			plane[extra_idx].m.userptr = (unsigned long) (extradata_info.uaddr + index * extradata_info.buffer_size);
+        if (rc)
+            DEBUG_PRINT_LOW("VIDIOC_PREPARE_BUF Failed\n");
+    } else if (port == PORT_INDEX_OUT) {
+        extra_idx = EXTRADATA_IDX(num_planes);
+
+        if ((num_planes > 1) && (extra_idx)) {
+            rc = allocate_extradata();
+
+            if (rc)
+                DEBUG_PRINT_ERROR("Failed to allocate extradata: %d\n", rc);
+        }
+
+        buf.index = index;
+        buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+        buf.memory = V4L2_MEMORY_USERPTR;
+        plane[0].length = pmem_tmp->size;
+        plane[0].m.userptr = (unsigned long)pmem_tmp->buffer;
+        plane[0].reserved[0] = pmem_tmp->fd;
+        plane[0].reserved[1] = 0;
+        plane[0].data_offset = pmem_tmp->offset;
+        buf.m.planes = plane;
+        buf.length = num_planes;
+
+        if (extra_idx && (extra_idx < VIDEO_MAX_PLANES)) {
+            plane[extra_idx].length = extradata_info.buffer_size;
+            plane[extra_idx].m.userptr = (unsigned long) (extradata_info.uaddr + index * extradata_info.buffer_size);
 #ifdef USE_ION
-			plane[extra_idx].reserved[0] = extradata_info.ion.fd_ion_data.fd;
+            plane[extra_idx].reserved[0] = extradata_info.ion.fd_ion_data.fd;
 #endif
-			plane[extra_idx].reserved[1] = extradata_info.buffer_size * index;
-			plane[extra_idx].data_offset = 0;
-		} else if  (extra_idx >= VIDEO_MAX_PLANES) {
-			DEBUG_PRINT_ERROR("Extradata index is more than allowed: %d\n", extra_idx);
-			return OMX_ErrorBadParameter;
-		}
-		rc = ioctl(m_nDriver_fd, VIDIOC_PREPARE_BUF, &buf);
-		if (rc)
-			DEBUG_PRINT_LOW("VIDIOC_PREPARE_BUF Failed\n");
-	} else {
-		DEBUG_PRINT_ERROR("\nERROR: venc_use_buf:Invalid Port Index ");
-		return false;
-	}
-	return true;
+            plane[extra_idx].reserved[1] = extradata_info.buffer_size * index;
+            plane[extra_idx].data_offset = 0;
+        } else if  (extra_idx >= VIDEO_MAX_PLANES) {
+            DEBUG_PRINT_ERROR("Extradata index is more than allowed: %d\n", extra_idx);
+            return OMX_ErrorBadParameter;
+        }
+
+        rc = ioctl(m_nDriver_fd, VIDIOC_PREPARE_BUF, &buf);
+
+        if (rc)
+            DEBUG_PRINT_LOW("VIDIOC_PREPARE_BUF Failed\n");
+    } else {
+        DEBUG_PRINT_ERROR("\nERROR: venc_use_buf:Invalid Port Index ");
+        return false;
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_free_buf(void *buf_addr, unsigned port)
 {
-  struct pmem *pmem_tmp;
-  struct venc_bufferpayload dev_buffer;
+    struct pmem *pmem_tmp;
+    struct venc_bufferpayload dev_buffer;
 
-  memset(&dev_buffer, 0, sizeof(dev_buffer));
-  pmem_tmp = (struct pmem *)buf_addr;
+    memset(&dev_buffer, 0, sizeof(dev_buffer));
+    pmem_tmp = (struct pmem *)buf_addr;
 
-  if(port == PORT_INDEX_IN)
-  {
-    dev_buffer.pbuffer = (OMX_U8 *)pmem_tmp->buffer;
-    dev_buffer.fd  = pmem_tmp->fd;
-    dev_buffer.maped_size = pmem_tmp->size;
-    dev_buffer.sz = pmem_tmp->size;
-    dev_buffer.offset = pmem_tmp->offset;
-    DEBUG_PRINT_LOW("\n venc_free_buf:pbuffer = %x,fd = %x, offset = %d, maped_size = %d", \
+    if (port == PORT_INDEX_IN) {
+        dev_buffer.pbuffer = (OMX_U8 *)pmem_tmp->buffer;
+        dev_buffer.fd  = pmem_tmp->fd;
+        dev_buffer.maped_size = pmem_tmp->size;
+        dev_buffer.sz = pmem_tmp->size;
+        dev_buffer.offset = pmem_tmp->offset;
+        DEBUG_PRINT_LOW("\n venc_free_buf:pbuffer = %x,fd = %x, offset = %d, maped_size = %d", \
                 dev_buffer.pbuffer, \
                 dev_buffer.fd, \
                 dev_buffer.offset, \
                 dev_buffer.maped_size);
 
-  }
-  else if(port == PORT_INDEX_OUT)
-  {
-    dev_buffer.pbuffer = (OMX_U8 *)pmem_tmp->buffer;
-    dev_buffer.fd  = pmem_tmp->fd;
-    dev_buffer.sz = pmem_tmp->size;
-    dev_buffer.maped_size = pmem_tmp->size;
-    dev_buffer.offset = pmem_tmp->offset;
+    } else if (port == PORT_INDEX_OUT) {
+        dev_buffer.pbuffer = (OMX_U8 *)pmem_tmp->buffer;
+        dev_buffer.fd  = pmem_tmp->fd;
+        dev_buffer.sz = pmem_tmp->size;
+        dev_buffer.maped_size = pmem_tmp->size;
+        dev_buffer.offset = pmem_tmp->offset;
 
-    DEBUG_PRINT_LOW("\n venc_free_buf:pbuffer = %x,fd = %x, offset = %d, maped_size = %d", \
+        DEBUG_PRINT_LOW("\n venc_free_buf:pbuffer = %x,fd = %x, offset = %d, maped_size = %d", \
                 dev_buffer.pbuffer, \
                 dev_buffer.fd, \
                 dev_buffer.offset, \
                 dev_buffer.maped_size);
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("\nERROR: venc_free_buf:Invalid Port Index ");
-    return false;
-  }
-  return true;
+    } else {
+        DEBUG_PRINT_ERROR("\nERROR: venc_free_buf:Invalid Port Index ");
+        return false;
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_empty_buf(void *buffer, void *pmem_data_buf, unsigned index, unsigned fd)
 {
-  struct pmem *temp_buffer;
-  struct v4l2_buffer buf;
-  struct v4l2_plane plane;
-  int rc=0;
-  struct OMX_BUFFERHEADERTYPE *bufhdr;
-  encoder_media_buffer_type * meta_buf = NULL;
-  temp_buffer = (struct pmem *)buffer;
+    struct pmem *temp_buffer;
+    struct v4l2_buffer buf;
+    struct v4l2_plane plane;
+    int rc=0;
+    struct OMX_BUFFERHEADERTYPE *bufhdr;
+    encoder_media_buffer_type * meta_buf = NULL;
+    temp_buffer = (struct pmem *)buffer;
 
-  memset (&buf, 0, sizeof(buf));
-  memset (&plane, 0, sizeof(plane));
-  if(buffer == NULL)
-  {
-    DEBUG_PRINT_ERROR("\nERROR: venc_etb: buffer is NULL");
-    return false;
-  }
-  bufhdr = (OMX_BUFFERHEADERTYPE *)buffer;
+    memset (&buf, 0, sizeof(buf));
+    memset (&plane, 0, sizeof(plane));
 
-  DEBUG_PRINT_LOW("\n Input buffer length %d",bufhdr->nFilledLen);
-  if(pmem_data_buf)
-  {
-    DEBUG_PRINT_LOW("\n Internal PMEM addr for i/p Heap UseBuf: %p", pmem_data_buf);
-    plane.m.userptr = (unsigned long)pmem_data_buf;
-	plane.data_offset = bufhdr->nOffset;
-	plane.length = bufhdr->nAllocLen;
-	plane.bytesused = bufhdr->nFilledLen;
-  }
-  else
-  {
-    DEBUG_PRINT_LOW("\n Shared PMEM addr for i/p PMEM UseBuf/AllocateBuf: %p", bufhdr->pBuffer);
-	if (metadatamode && !color_format) { // meta Buffer + Camera buffers
-		meta_buf = (encoder_media_buffer_type *)bufhdr->pBuffer;
-		if (!meta_buf)
-			return false;
-		plane.m.userptr = index;
-		plane.data_offset = meta_buf->meta_handle->data[1];
-		plane.length = meta_buf->meta_handle->data[2];
-		plane.bytesused = meta_buf->meta_handle->data[2];
-	}
-	else
-	{ // meta Buffer + Gralloc buffers || pmem buffers
-		plane.m.userptr = (unsigned long) bufhdr->pBuffer;
-		plane.data_offset = bufhdr->nOffset;
-		plane.length = bufhdr->nAllocLen;
-		plane.bytesused = bufhdr->nFilledLen;
-	}
-  }
+    if (buffer == NULL) {
+        DEBUG_PRINT_ERROR("\nERROR: venc_etb: buffer is NULL");
+        return false;
+    }
 
-  buf.index = index;
-  buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-  buf.memory = V4L2_MEMORY_USERPTR;
-  plane.reserved[0] = fd;
-  plane.reserved[1] = 0;
-  buf.m.planes = &plane;
-  buf.length = 1;
-  if (bufhdr->nFlags & OMX_BUFFERFLAG_EOS)
-	  buf.flags = V4L2_BUF_FLAG_EOS;
-  buf.timestamp.tv_sec = bufhdr->nTimeStamp / 1000000;
-  buf.timestamp.tv_usec = (bufhdr->nTimeStamp % 1000000);
-  rc = ioctl(m_nDriver_fd, VIDIOC_QBUF, &buf);
-  if (rc) {
-	  DEBUG_PRINT_ERROR("Failed to qbuf (etb) to driver");
-	  return false;
-  }
-  etb++;
-  if(!streaming[OUTPUT_PORT])
-  {
-	  enum v4l2_buf_type buf_type;
-	  buf_type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-	  int ret;
-	  ret = ioctl(m_nDriver_fd, VIDIOC_STREAMON, &buf_type);
-	  if (ret) {
-		  DEBUG_PRINT_ERROR("Failed to call streamon\n");
-		  return false;
-	  } else {
-		  streaming[OUTPUT_PORT] = true;
-	  }
-}
+    bufhdr = (OMX_BUFFERHEADERTYPE *)buffer;
+
+    DEBUG_PRINT_LOW("\n Input buffer length %d",bufhdr->nFilledLen);
+
+    if (pmem_data_buf) {
+        DEBUG_PRINT_LOW("\n Internal PMEM addr for i/p Heap UseBuf: %p", pmem_data_buf);
+        plane.m.userptr = (unsigned long)pmem_data_buf;
+        plane.data_offset = bufhdr->nOffset;
+        plane.length = bufhdr->nAllocLen;
+        plane.bytesused = bufhdr->nFilledLen;
+    } else {
+        DEBUG_PRINT_LOW("\n Shared PMEM addr for i/p PMEM UseBuf/AllocateBuf: %p", bufhdr->pBuffer);
+
+        if (metadatamode && !color_format) { // meta Buffer + Camera buffers
+            meta_buf = (encoder_media_buffer_type *)bufhdr->pBuffer;
+
+            if (!meta_buf)
+                return false;
+
+            plane.m.userptr = index;
+            plane.data_offset = meta_buf->meta_handle->data[1];
+            plane.length = meta_buf->meta_handle->data[2];
+            plane.bytesused = meta_buf->meta_handle->data[2];
+        } else { // meta Buffer + Gralloc buffers || pmem buffers
+            plane.m.userptr = (unsigned long) bufhdr->pBuffer;
+            plane.data_offset = bufhdr->nOffset;
+            plane.length = bufhdr->nAllocLen;
+            plane.bytesused = bufhdr->nFilledLen;
+        }
+    }
+
+    buf.index = index;
+    buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+    buf.memory = V4L2_MEMORY_USERPTR;
+    plane.reserved[0] = fd;
+    plane.reserved[1] = 0;
+    buf.m.planes = &plane;
+    buf.length = 1;
+
+    if (bufhdr->nFlags & OMX_BUFFERFLAG_EOS)
+        buf.flags = V4L2_BUF_FLAG_EOS;
+
+    buf.timestamp.tv_sec = bufhdr->nTimeStamp / 1000000;
+    buf.timestamp.tv_usec = (bufhdr->nTimeStamp % 1000000);
+    rc = ioctl(m_nDriver_fd, VIDIOC_QBUF, &buf);
+
+    if (rc) {
+        DEBUG_PRINT_ERROR("Failed to qbuf (etb) to driver");
+        return false;
+    }
+
+    etb++;
+
+    if (!streaming[OUTPUT_PORT]) {
+        enum v4l2_buf_type buf_type;
+        buf_type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+        int ret;
+        ret = ioctl(m_nDriver_fd, VIDIOC_STREAMON, &buf_type);
+
+        if (ret) {
+            DEBUG_PRINT_ERROR("Failed to call streamon\n");
+            return false;
+        } else {
+            streaming[OUTPUT_PORT] = true;
+        }
+    }
+
 #ifdef INPUT_BUFFER_LOG
-	  int i;
-	  int stride = VENUS_Y_STRIDE(COLOR_FMT_NV12, m_sVenc_cfg.input_width);
-	  int scanlines = VENUS_Y_SCANLINES(COLOR_FMT_NV12, m_sVenc_cfg.input_height);
-	  char *temp = (char *)bufhdr->pBuffer;
-	  for (i = 0; i < m_sVenc_cfg.input_height; i++) {
-		  fwrite(temp, m_sVenc_cfg.input_width, 1, inputBufferFile1);
-		  temp += stride;
-	  }
-	  temp = (char *)bufhdr->pBuffer + (stride * scanlines);
-	  for(i = 0; i < m_sVenc_cfg.input_height/2; i++) {
-		  fwrite(temp, m_sVenc_cfg.input_width, 1, inputBufferFile1);
-		  temp += stride;
-	  }
+    int i;
+    int stride = VENUS_Y_STRIDE(COLOR_FMT_NV12, m_sVenc_cfg.input_width);
+    int scanlines = VENUS_Y_SCANLINES(COLOR_FMT_NV12, m_sVenc_cfg.input_height);
+    char *temp = (char *)bufhdr->pBuffer;
+
+    for (i = 0; i < m_sVenc_cfg.input_height; i++) {
+        fwrite(temp, m_sVenc_cfg.input_width, 1, inputBufferFile1);
+        temp += stride;
+    }
+
+    temp = (char *)bufhdr->pBuffer + (stride * scanlines);
+
+    for (i = 0; i < m_sVenc_cfg.input_height/2; i++) {
+        fwrite(temp, m_sVenc_cfg.input_width, 1, inputBufferFile1);
+        temp += stride;
+    }
+
 #endif
-  return true;
+    return true;
 }
 bool venc_dev::venc_fill_buf(void *buffer, void *pmem_data_buf,unsigned index,unsigned fd)
 {
-	struct pmem *temp_buffer = NULL;
-	struct venc_buffer  frameinfo;
-	struct v4l2_buffer buf;
-	struct v4l2_plane plane[VIDEO_MAX_PLANES];
-	int rc = 0, extra_idx;
-	struct OMX_BUFFERHEADERTYPE *bufhdr;
+    struct pmem *temp_buffer = NULL;
+    struct venc_buffer  frameinfo;
+    struct v4l2_buffer buf;
+    struct v4l2_plane plane[VIDEO_MAX_PLANES];
+    int rc = 0, extra_idx;
+    struct OMX_BUFFERHEADERTYPE *bufhdr;
 
-	if(buffer == NULL)
-		return false;
+    if (buffer == NULL)
+        return false;
 
-	bufhdr = (OMX_BUFFERHEADERTYPE *)buffer;
+    bufhdr = (OMX_BUFFERHEADERTYPE *)buffer;
 
-	if(pmem_data_buf)
-	{
-		DEBUG_PRINT_LOW("\n Internal PMEM addr for o/p Heap UseBuf: %p", pmem_data_buf);
-		plane[0].m.userptr = (unsigned long)pmem_data_buf;
-	} else {
-		DEBUG_PRINT_LOW("\n Shared PMEM addr for o/p PMEM UseBuf/AllocateBuf: %p", bufhdr->pBuffer);
-		plane[0].m.userptr = (unsigned long)bufhdr->pBuffer;
-	}
+    if (pmem_data_buf) {
+        DEBUG_PRINT_LOW("\n Internal PMEM addr for o/p Heap UseBuf: %p", pmem_data_buf);
+        plane[0].m.userptr = (unsigned long)pmem_data_buf;
+    } else {
+        DEBUG_PRINT_LOW("\n Shared PMEM addr for o/p PMEM UseBuf/AllocateBuf: %p", bufhdr->pBuffer);
+        plane[0].m.userptr = (unsigned long)bufhdr->pBuffer;
+    }
 
-	buf.index = index;
-	buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-	buf.memory = V4L2_MEMORY_USERPTR;
-	plane[0].length = bufhdr->nAllocLen;
-	plane[0].bytesused = bufhdr->nFilledLen;
-	plane[0].reserved[0] = fd;
-	plane[0].reserved[1] = 0;
-	plane[0].data_offset = bufhdr->nOffset;
-	buf.m.planes = plane;
-	buf.length = num_planes;
+    buf.index = index;
+    buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+    buf.memory = V4L2_MEMORY_USERPTR;
+    plane[0].length = bufhdr->nAllocLen;
+    plane[0].bytesused = bufhdr->nFilledLen;
+    plane[0].reserved[0] = fd;
+    plane[0].reserved[1] = 0;
+    plane[0].data_offset = bufhdr->nOffset;
+    buf.m.planes = plane;
+    buf.length = num_planes;
 
-	extra_idx = EXTRADATA_IDX(num_planes);
-	if (extra_idx && (extra_idx < VIDEO_MAX_PLANES)) {
-		plane[extra_idx].bytesused = 0;
-		plane[extra_idx].length = extradata_info.buffer_size;
-		plane[extra_idx].m.userptr = (unsigned long) (extradata_info.uaddr + index * extradata_info.buffer_size);
+    extra_idx = EXTRADATA_IDX(num_planes);
+
+    if (extra_idx && (extra_idx < VIDEO_MAX_PLANES)) {
+        plane[extra_idx].bytesused = 0;
+        plane[extra_idx].length = extradata_info.buffer_size;
+        plane[extra_idx].m.userptr = (unsigned long) (extradata_info.uaddr + index * extradata_info.buffer_size);
 #ifdef USE_ION
-		plane[extra_idx].reserved[0] = extradata_info.ion.fd_ion_data.fd;
+        plane[extra_idx].reserved[0] = extradata_info.ion.fd_ion_data.fd;
 #endif
-		plane[extra_idx].reserved[1] = extradata_info.buffer_size * index;
-		plane[extra_idx].data_offset = 0;
-	} else if (extra_idx >= VIDEO_MAX_PLANES) {
-		DEBUG_PRINT_ERROR("Extradata index higher than expected: %d\n", extra_idx);
-		return false;
-	}
-	rc = ioctl(m_nDriver_fd, VIDIOC_QBUF, &buf);
-	if (rc) {
-		DEBUG_PRINT_ERROR("Failed to qbuf (ftb) to driver");
-		return false;
-	}
-	ftb++;
-	return true;
+        plane[extra_idx].reserved[1] = extradata_info.buffer_size * index;
+        plane[extra_idx].data_offset = 0;
+    } else if (extra_idx >= VIDEO_MAX_PLANES) {
+        DEBUG_PRINT_ERROR("Extradata index higher than expected: %d\n", extra_idx);
+        return false;
+    }
+
+    rc = ioctl(m_nDriver_fd, VIDIOC_QBUF, &buf);
+
+    if (rc) {
+        DEBUG_PRINT_ERROR("Failed to qbuf (ftb) to driver");
+        return false;
+    }
+
+    ftb++;
+    return true;
 }
 
 bool venc_dev::venc_set_extradata(OMX_U32 extra_data)
 {
-	struct v4l2_control control;
-	control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
-	control.value = V4L2_MPEG_VIDC_EXTRADATA_MULTISLICE_INFO;
-	DEBUG_PRINT_HIGH("venc_set_extradata:: %x", (int) extra_data);
-	if(multislice.mslice_mode && multislice.mslice_mode != V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE)
-	{
-		if (ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control)) {
-			DEBUG_PRINT_ERROR("ERROR: Request for setting extradata failed");
-			return false;
-		}
-	}
-	else
-	{
-		DEBUG_PRINT_ERROR("Failed to set slice extradata, slice_mode "
-						  "is set to [%lu]", multislice.mslice_mode);
-	}
-	return true;
+    struct v4l2_control control;
+    control.id = V4L2_CID_MPEG_VIDC_VIDEO_EXTRADATA;
+    control.value = V4L2_MPEG_VIDC_EXTRADATA_MULTISLICE_INFO;
+    DEBUG_PRINT_HIGH("venc_set_extradata:: %x", (int) extra_data);
+
+    if (multislice.mslice_mode && multislice.mslice_mode != V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE) {
+        if (ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control)) {
+            DEBUG_PRINT_ERROR("ERROR: Request for setting extradata failed");
+            return false;
+        }
+    } else {
+        DEBUG_PRINT_ERROR("Failed to set slice extradata, slice_mode "
+                "is set to [%lu]", multislice.mslice_mode);
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_set_slice_delivery_mode(OMX_U32 enable)
 {
-	struct v4l2_control control;
-	if (enable) {
-		control.id = V4L2_CID_MPEG_VIDEO_MULTI_SLICE_DELIVERY_MODE;
-		control.value = 1;
-		DEBUG_PRINT_LOW("Set slice_delivery_mode: %d", control.value);
-		if(multislice.mslice_mode == V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_MB && m_sVenc_cfg.codectype == V4L2_PIX_FMT_H264)
-		{
-			if(ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control)) {
-				DEBUG_PRINT_ERROR("Request for setting slice delivery mode failed");
-				return false;
-			}
-			else {
-				DEBUG_PRINT_LOW("Successfully set Slice delivery mode id: %d, value=%d\n", control.id, control.value);
-				slice_mode.enable = 1;
-			}
-		}
-		else
-		{
-			DEBUG_PRINT_ERROR("Failed to set slice delivery mode, slice_mode [%d] "
-							  "is not MB BASED or [%lu] is not H264 codec ", multislice.mslice_mode,
-							   m_sVenc_cfg.codectype);
-		}
-	}
-	else
-	{
-		DEBUG_PRINT_ERROR("Slice_DELIVERY_MODE not enabled\n");
-	}
-	return true;
+    struct v4l2_control control;
+
+    if (enable) {
+        control.id = V4L2_CID_MPEG_VIDEO_MULTI_SLICE_DELIVERY_MODE;
+        control.value = 1;
+        DEBUG_PRINT_LOW("Set slice_delivery_mode: %d", control.value);
+
+        if (multislice.mslice_mode == V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_MB && m_sVenc_cfg.codectype == V4L2_PIX_FMT_H264) {
+            if (ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control)) {
+                DEBUG_PRINT_ERROR("Request for setting slice delivery mode failed");
+                return false;
+            } else {
+                DEBUG_PRINT_LOW("Successfully set Slice delivery mode id: %d, value=%d\n", control.id, control.value);
+                slice_mode.enable = 1;
+            }
+        } else {
+            DEBUG_PRINT_ERROR("Failed to set slice delivery mode, slice_mode [%d] "
+                    "is not MB BASED or [%lu] is not H264 codec ", multislice.mslice_mode,
+                    m_sVenc_cfg.codectype);
+        }
+    } else {
+        DEBUG_PRINT_ERROR("Slice_DELIVERY_MODE not enabled\n");
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_set_session_qp(OMX_U32 i_frame_qp, OMX_U32 p_frame_qp,OMX_U32 b_frame_qp)
 {
-	int rc;
-	struct v4l2_control control;
+    int rc;
+    struct v4l2_control control;
 
-	control.id = V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP;
-	control.value = i_frame_qp;
+    control.id = V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP;
+    control.value = i_frame_qp;
 
-	DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		DEBUG_PRINT_ERROR("Failed to set control\n");
-		return false;
-	}
-	DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
-	session_qp.iframeqp = control.value;
+    DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
+    rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
 
-	control.id = V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP;
-	control.value = p_frame_qp;
+    if (rc) {
+        DEBUG_PRINT_ERROR("Failed to set control\n");
+        return false;
+    }
 
-	DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		DEBUG_PRINT_ERROR("Failed to set control\n");
-		return false;
-	}
-	DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+    DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+    session_qp.iframeqp = control.value;
 
-	session_qp.pframqp = control.value;
+    control.id = V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP;
+    control.value = p_frame_qp;
 
-	if((codec_profile.profile == V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) ||
-     (codec_profile.profile == V4L2_MPEG_VIDEO_H264_PROFILE_HIGH))
-	{
+    DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
+    rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
 
-	control.id = V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP;
-	control.value = b_frame_qp;
+    if (rc) {
+        DEBUG_PRINT_ERROR("Failed to set control\n");
+        return false;
+    }
 
-	DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		DEBUG_PRINT_ERROR("Failed to set control\n");
-		return false;
-	}
-	DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+    DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
 
-	session_qp.bframqp = control.value;
-	}
+    session_qp.pframqp = control.value;
 
-  return true;
+    if ((codec_profile.profile == V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) ||
+            (codec_profile.profile == V4L2_MPEG_VIDEO_H264_PROFILE_HIGH)) {
+
+        control.id = V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP;
+        control.value = b_frame_qp;
+
+        DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
+        rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
+
+        if (rc) {
+            DEBUG_PRINT_ERROR("Failed to set control\n");
+            return false;
+        }
+
+        DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+
+        session_qp.bframqp = control.value;
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_set_profile_level(OMX_U32 eProfile,OMX_U32 eLevel)
 {
-  struct venc_profile requested_profile = {0};
-  struct ven_profilelevel requested_level = {0};
-  unsigned long mb_per_frame = 0;
-  DEBUG_PRINT_LOW("venc_set_profile_level:: eProfile = %d, Level = %d",
-    eProfile, eLevel);
-  mb_per_frame = ((m_sVenc_cfg.input_height + 15) >> 4)*
-                  ((m_sVenc_cfg.input_width + 15) >> 4);
-  if((eProfile == 0) && (eLevel == 0) && m_profile_set && m_level_set)
-  {
-    DEBUG_PRINT_LOW("\n Profile/Level setting complete before venc_start");
-    return true;
-  }
+    struct venc_profile requested_profile = {0};
+    struct ven_profilelevel requested_level = {0};
+    unsigned long mb_per_frame = 0;
+    DEBUG_PRINT_LOW("venc_set_profile_level:: eProfile = %d, Level = %d",
+            eProfile, eLevel);
+    mb_per_frame = ((m_sVenc_cfg.input_height + 15) >> 4)*
+        ((m_sVenc_cfg.input_width + 15) >> 4);
 
-  DEBUG_PRINT_LOW("\n Validating Profile/Level from table");
-  if(!venc_validate_profile_level(&eProfile, &eLevel))
-  {
-    DEBUG_PRINT_LOW("\nERROR: Profile/Level validation failed");
-    return false;
-  }
-
-  if(m_sVenc_cfg.codectype == V4L2_PIX_FMT_MPEG4)
-  {
-    DEBUG_PRINT_LOW("eProfile = %d, OMX_VIDEO_MPEG4ProfileSimple = %d and "
-      "OMX_VIDEO_MPEG4ProfileAdvancedSimple = %d", eProfile,
-      OMX_VIDEO_MPEG4ProfileSimple, OMX_VIDEO_MPEG4ProfileAdvancedSimple);
-    if(eProfile == OMX_VIDEO_MPEG4ProfileSimple)
-    {
-      requested_profile.profile = V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE;
-    }
-    else if(eProfile == OMX_VIDEO_MPEG4ProfileAdvancedSimple)
-    {
-      requested_profile.profile = V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE;
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("\nERROR: Unsupported MPEG4 profile = %u",
-        eProfile);
-      return false;
+    if ((eProfile == 0) && (eLevel == 0) && m_profile_set && m_level_set) {
+        DEBUG_PRINT_LOW("\n Profile/Level setting complete before venc_start");
+        return true;
     }
 
-    DEBUG_PRINT_LOW("eLevel = %d, OMX_VIDEO_MPEG4Level0 = %d, OMX_VIDEO_MPEG4Level1 = %d,"
-      "OMX_VIDEO_MPEG4Level2 = %d, OMX_VIDEO_MPEG4Level3 = %d, OMX_VIDEO_MPEG4Level4 = %d,"
-      "OMX_VIDEO_MPEG4Level5 = %d", eLevel, OMX_VIDEO_MPEG4Level0, OMX_VIDEO_MPEG4Level1,
-      OMX_VIDEO_MPEG4Level2, OMX_VIDEO_MPEG4Level3, OMX_VIDEO_MPEG4Level4, OMX_VIDEO_MPEG4Level5);
+    DEBUG_PRINT_LOW("\n Validating Profile/Level from table");
 
-    if(mb_per_frame >= 3600)
-    {
-      if(requested_profile.profile == V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE)
-        requested_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_5;
-      if(requested_profile.profile == V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE)
-        requested_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_5;
-    }
-    else
-    {
-      switch(eLevel)
-      {
-      case OMX_VIDEO_MPEG4Level0:
-        requested_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_0;
-        break;
-		case OMX_VIDEO_MPEG4Level0b:
-        requested_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B;
-        break;
-      case OMX_VIDEO_MPEG4Level1:
-        requested_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_1;
-        break;
-      case OMX_VIDEO_MPEG4Level2:
-        requested_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_2;
-        break;
-      case OMX_VIDEO_MPEG4Level3:
-        requested_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_3;
-        break;
-      case OMX_VIDEO_MPEG4Level4a:
-        requested_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_4;
-        break;
-      case OMX_VIDEO_MPEG4Level5:
-        requested_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_5;
-        break;
-      default:
+    if (!venc_validate_profile_level(&eProfile, &eLevel)) {
+        DEBUG_PRINT_LOW("\nERROR: Profile/Level validation failed");
         return false;
-        // TODO update corresponding levels for MPEG4_LEVEL_3b,MPEG4_LEVEL_6
-        break;
-      }
     }
-  }
-  else if(m_sVenc_cfg.codectype == V4L2_PIX_FMT_H263)
-  {
 
-    switch (eProfile) {
-    case OMX_VIDEO_H263ProfileBaseline:
-	    requested_profile.profile = V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_BASELINE;
-	    break;
-    case OMX_VIDEO_H263ProfileH320Coding:
-	    requested_profile.profile = V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_H320CODING;
-	    break;
-    case OMX_VIDEO_H263ProfileBackwardCompatible:
-	    requested_profile.profile = V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_BACKWARDCOMPATIBLE;
-	    break;
-    case OMX_VIDEO_H263ProfileISWV2:
-	    requested_profile.profile = V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_ISWV2;
-	    break;
-    case OMX_VIDEO_H263ProfileISWV3:
-	    requested_profile.profile = V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_ISWV3;
-	    break;
-    case OMX_VIDEO_H263ProfileHighCompression:
-	    requested_profile.profile = V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_HIGHCOMPRESSION;
-	    break;
-    case OMX_VIDEO_H263ProfileInternet:
-	    requested_profile.profile = V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_INTERNET;
-	    break;
-    case OMX_VIDEO_H263ProfileInterlace:
-	    requested_profile.profile = V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_INTERLACE;
-	    break;
-    case OMX_VIDEO_H263ProfileHighLatency:
-	    requested_profile.profile = V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_HIGHLATENCY;
-	    break;
-    default:
-      DEBUG_PRINT_LOW("\nERROR: Unsupported H.263 profile = %u",
-        requested_profile.profile);
-      return false;
-    }
-    //profile level
-    switch(eLevel)
-    {
-    case OMX_VIDEO_H263Level10:
-	    requested_level.level = V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_1_0;
-	    break;
-    case OMX_VIDEO_H263Level20:
-	    requested_level.level = V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_2_0;
-	    break;
-    case OMX_VIDEO_H263Level30:
-	    requested_level.level = V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_3_0;
-	    break;
-    case OMX_VIDEO_H263Level40:
-	    requested_level.level = V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_4_0;
-	    break;
-    case OMX_VIDEO_H263Level45:
-	    requested_level.level = V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_4_5;
-	    break;
-    case OMX_VIDEO_H263Level50:
-	    requested_level.level = V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_5_0;
-	    break;
-    case OMX_VIDEO_H263Level60:
-	    requested_level.level = V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_6_0;
-	    break;
-    case OMX_VIDEO_H263Level70:
-	    requested_level.level = V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_7_0;
-	    break;
-    default:
-	    return false;
-	    break;
-    }
-  }
-  else if(m_sVenc_cfg.codectype == V4L2_PIX_FMT_H264)
-  {
-    if(eProfile == OMX_VIDEO_AVCProfileBaseline)
-    {
-      requested_profile.profile = V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE;
-    }
-    else if(eProfile == OMX_VIDEO_AVCProfileMain)
-    {
-      requested_profile.profile = V4L2_MPEG_VIDEO_H264_PROFILE_MAIN;
-    }
-	else if(eProfile == OMX_VIDEO_AVCProfileExtended)
-    {
-      requested_profile.profile = V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED;
-    }
-    else if(eProfile == OMX_VIDEO_AVCProfileHigh)
-    {
-      requested_profile.profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH;
-    }
-	else if(eProfile == OMX_VIDEO_AVCProfileHigh10)
-    {
-      requested_profile.profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10;
-    }
-	else if(eProfile == OMX_VIDEO_AVCProfileHigh422)
-    {
-      requested_profile.profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422;
-    }
-	else if(eProfile == OMX_VIDEO_AVCProfileHigh444)
-    {
-      requested_profile.profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE;
-    }
-    else
-    {
-      DEBUG_PRINT_LOW("\nERROR: Unsupported H.264 profile = %u",
-        requested_profile.profile);
-      return false;
-    }
-    //profile level
-    switch(eLevel)
-    {
-    case OMX_VIDEO_AVCLevel1:
-      requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_1_0;
-      break;
-    case OMX_VIDEO_AVCLevel1b:
-      requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_1B;
-      break;
-    case OMX_VIDEO_AVCLevel11:
-      requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_1_1;
-      break;
-    case OMX_VIDEO_AVCLevel12:
-      requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_1_2;
-      break;
-    case OMX_VIDEO_AVCLevel13:
-      requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_1_3;
-      break;
-    case OMX_VIDEO_AVCLevel2:
-      requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_2_0;
-      break;
-    case OMX_VIDEO_AVCLevel21:
-      requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_2_1;
-      break;
-    case OMX_VIDEO_AVCLevel22:
-      requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_2_2;
-      break;
-    case OMX_VIDEO_AVCLevel3:
-      requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_3_0;
-      break;
-    case OMX_VIDEO_AVCLevel31:
-      requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_3_1;
-      break;
-    case OMX_VIDEO_AVCLevel32:
-      requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_3_2;
-      break;
-    case OMX_VIDEO_AVCLevel4:
-      requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_4_0;
-      break;
-    case OMX_VIDEO_AVCLevel41:
-      requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_4_1;
-      break;
-    case OMX_VIDEO_AVCLevel42:
-      requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_4_2;
-      break;
-    case OMX_VIDEO_AVCLevel5:
-      requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_5_0;
-      break;
-    case OMX_VIDEO_AVCLevel51:
-      requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_5_1;
-      break;
-    default :
-      DEBUG_PRINT_ERROR("\nERROR: Unsupported H.264 level= %lu",
-        requested_level.level);
-	  return false;
-      break;
-    }
-  }
-  if(!m_profile_set)
-  {
-	int rc;
-	struct v4l2_control control;
-	if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_H264) {
-		control.id = V4L2_CID_MPEG_VIDEO_H264_PROFILE;
-	} else if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_MPEG4) {
-		control.id = V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE;
-	} else if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_H263) {
-		control.id = V4L2_CID_MPEG_VIDC_VIDEO_H263_PROFILE;
-	} else if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_VP8) {
-		DEBUG_PRINT_ERROR("\n No Profile and LEVEL Setting for VP8 \n");
-		m_profile_set = true;
-		m_level_set = true;
-		return true;
+    if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_MPEG4) {
+        DEBUG_PRINT_LOW("eProfile = %d, OMX_VIDEO_MPEG4ProfileSimple = %d and "
+                "OMX_VIDEO_MPEG4ProfileAdvancedSimple = %d", eProfile,
+                OMX_VIDEO_MPEG4ProfileSimple, OMX_VIDEO_MPEG4ProfileAdvancedSimple);
+
+        if (eProfile == OMX_VIDEO_MPEG4ProfileSimple) {
+            requested_profile.profile = V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE;
+        } else if (eProfile == OMX_VIDEO_MPEG4ProfileAdvancedSimple) {
+            requested_profile.profile = V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE;
         } else {
-		DEBUG_PRINT_ERROR("\n Wrong CODEC \n");
-		return false;
-	}
+            DEBUG_PRINT_LOW("\nERROR: Unsupported MPEG4 profile = %u",
+                    eProfile);
+            return false;
+        }
 
-	control.value = requested_profile.profile;
+        DEBUG_PRINT_LOW("eLevel = %d, OMX_VIDEO_MPEG4Level0 = %d, OMX_VIDEO_MPEG4Level1 = %d,"
+                "OMX_VIDEO_MPEG4Level2 = %d, OMX_VIDEO_MPEG4Level3 = %d, OMX_VIDEO_MPEG4Level4 = %d,"
+                "OMX_VIDEO_MPEG4Level5 = %d", eLevel, OMX_VIDEO_MPEG4Level0, OMX_VIDEO_MPEG4Level1,
+                OMX_VIDEO_MPEG4Level2, OMX_VIDEO_MPEG4Level3, OMX_VIDEO_MPEG4Level4, OMX_VIDEO_MPEG4Level5);
 
-	DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		DEBUG_PRINT_ERROR("Failed to set control\n");
-		return false;
-	}
-	DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+        if (mb_per_frame >= 3600) {
+            if (requested_profile.profile == V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE)
+                requested_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_5;
 
-    codec_profile.profile = control.value;
-    m_profile_set = true;
-  }
+            if (requested_profile.profile == V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE)
+                requested_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_5;
+        } else {
+            switch (eLevel) {
+                case OMX_VIDEO_MPEG4Level0:
+                    requested_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_0;
+                    break;
+                case OMX_VIDEO_MPEG4Level0b:
+                    requested_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B;
+                    break;
+                case OMX_VIDEO_MPEG4Level1:
+                    requested_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_1;
+                    break;
+                case OMX_VIDEO_MPEG4Level2:
+                    requested_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_2;
+                    break;
+                case OMX_VIDEO_MPEG4Level3:
+                    requested_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_3;
+                    break;
+                case OMX_VIDEO_MPEG4Level4a:
+                    requested_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_4;
+                    break;
+                case OMX_VIDEO_MPEG4Level5:
+                    requested_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_5;
+                    break;
+                default:
+                    return false;
+                    // TODO update corresponding levels for MPEG4_LEVEL_3b,MPEG4_LEVEL_6
+                    break;
+            }
+        }
+    } else if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_H263) {
 
-  if(!m_level_set)
-  {
-	int rc;
-	struct v4l2_control control;
-	if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_H264) {
-		control.id = V4L2_CID_MPEG_VIDEO_H264_LEVEL;
-	} else if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_MPEG4) {
-		control.id = V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL;
-	} else if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_H263) {
-		control.id = V4L2_CID_MPEG_VIDC_VIDEO_H263_LEVEL;
-	} else {
-		DEBUG_PRINT_ERROR("\n Wrong CODEC \n");
-		return false;
-	}
+        switch (eProfile) {
+            case OMX_VIDEO_H263ProfileBaseline:
+                requested_profile.profile = V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_BASELINE;
+                break;
+            case OMX_VIDEO_H263ProfileH320Coding:
+                requested_profile.profile = V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_H320CODING;
+                break;
+            case OMX_VIDEO_H263ProfileBackwardCompatible:
+                requested_profile.profile = V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_BACKWARDCOMPATIBLE;
+                break;
+            case OMX_VIDEO_H263ProfileISWV2:
+                requested_profile.profile = V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_ISWV2;
+                break;
+            case OMX_VIDEO_H263ProfileISWV3:
+                requested_profile.profile = V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_ISWV3;
+                break;
+            case OMX_VIDEO_H263ProfileHighCompression:
+                requested_profile.profile = V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_HIGHCOMPRESSION;
+                break;
+            case OMX_VIDEO_H263ProfileInternet:
+                requested_profile.profile = V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_INTERNET;
+                break;
+            case OMX_VIDEO_H263ProfileInterlace:
+                requested_profile.profile = V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_INTERLACE;
+                break;
+            case OMX_VIDEO_H263ProfileHighLatency:
+                requested_profile.profile = V4L2_MPEG_VIDC_VIDEO_H263_PROFILE_HIGHLATENCY;
+                break;
+            default:
+                DEBUG_PRINT_LOW("\nERROR: Unsupported H.263 profile = %u",
+                        requested_profile.profile);
+                return false;
+        }
 
-	control.value = requested_level.level;
+        //profile level
+        switch (eLevel) {
+            case OMX_VIDEO_H263Level10:
+                requested_level.level = V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_1_0;
+                break;
+            case OMX_VIDEO_H263Level20:
+                requested_level.level = V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_2_0;
+                break;
+            case OMX_VIDEO_H263Level30:
+                requested_level.level = V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_3_0;
+                break;
+            case OMX_VIDEO_H263Level40:
+                requested_level.level = V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_4_0;
+                break;
+            case OMX_VIDEO_H263Level45:
+                requested_level.level = V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_4_5;
+                break;
+            case OMX_VIDEO_H263Level50:
+                requested_level.level = V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_5_0;
+                break;
+            case OMX_VIDEO_H263Level60:
+                requested_level.level = V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_6_0;
+                break;
+            case OMX_VIDEO_H263Level70:
+                requested_level.level = V4L2_MPEG_VIDC_VIDEO_H263_LEVEL_7_0;
+                break;
+            default:
+                return false;
+                break;
+        }
+    } else if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_H264) {
+        if (eProfile == OMX_VIDEO_AVCProfileBaseline) {
+            requested_profile.profile = V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE;
+        } else if (eProfile == OMX_VIDEO_AVCProfileMain) {
+            requested_profile.profile = V4L2_MPEG_VIDEO_H264_PROFILE_MAIN;
+        } else if (eProfile == OMX_VIDEO_AVCProfileExtended) {
+            requested_profile.profile = V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED;
+        } else if (eProfile == OMX_VIDEO_AVCProfileHigh) {
+            requested_profile.profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH;
+        } else if (eProfile == OMX_VIDEO_AVCProfileHigh10) {
+            requested_profile.profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10;
+        } else if (eProfile == OMX_VIDEO_AVCProfileHigh422) {
+            requested_profile.profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422;
+        } else if (eProfile == OMX_VIDEO_AVCProfileHigh444) {
+            requested_profile.profile = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE;
+        } else {
+            DEBUG_PRINT_LOW("\nERROR: Unsupported H.264 profile = %u",
+                    requested_profile.profile);
+            return false;
+        }
 
-	DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		DEBUG_PRINT_ERROR("Failed to set control\n");
-		return false;
-	}
-	DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+        //profile level
+        switch (eLevel) {
+            case OMX_VIDEO_AVCLevel1:
+                requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_1_0;
+                break;
+            case OMX_VIDEO_AVCLevel1b:
+                requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_1B;
+                break;
+            case OMX_VIDEO_AVCLevel11:
+                requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_1_1;
+                break;
+            case OMX_VIDEO_AVCLevel12:
+                requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_1_2;
+                break;
+            case OMX_VIDEO_AVCLevel13:
+                requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_1_3;
+                break;
+            case OMX_VIDEO_AVCLevel2:
+                requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_2_0;
+                break;
+            case OMX_VIDEO_AVCLevel21:
+                requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_2_1;
+                break;
+            case OMX_VIDEO_AVCLevel22:
+                requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_2_2;
+                break;
+            case OMX_VIDEO_AVCLevel3:
+                requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_3_0;
+                break;
+            case OMX_VIDEO_AVCLevel31:
+                requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_3_1;
+                break;
+            case OMX_VIDEO_AVCLevel32:
+                requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_3_2;
+                break;
+            case OMX_VIDEO_AVCLevel4:
+                requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_4_0;
+                break;
+            case OMX_VIDEO_AVCLevel41:
+                requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_4_1;
+                break;
+            case OMX_VIDEO_AVCLevel42:
+                requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_4_2;
+                break;
+            case OMX_VIDEO_AVCLevel5:
+                requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_5_0;
+                break;
+            case OMX_VIDEO_AVCLevel51:
+                requested_level.level = V4L2_MPEG_VIDEO_H264_LEVEL_5_1;
+                break;
+            default :
+                DEBUG_PRINT_ERROR("\nERROR: Unsupported H.264 level= %lu",
+                        requested_level.level);
+                return false;
+                break;
+        }
+    }
 
-    profile_level.level = control.value;
-    m_level_set = true;
-  }
+    if (!m_profile_set) {
+        int rc;
+        struct v4l2_control control;
 
-  return true;
+        if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_H264) {
+            control.id = V4L2_CID_MPEG_VIDEO_H264_PROFILE;
+        } else if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_MPEG4) {
+            control.id = V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE;
+        } else if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_H263) {
+            control.id = V4L2_CID_MPEG_VIDC_VIDEO_H263_PROFILE;
+        } else if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_VP8) {
+            DEBUG_PRINT_ERROR("\n No Profile and LEVEL Setting for VP8 \n");
+            m_profile_set = true;
+            m_level_set = true;
+            return true;
+        } else {
+            DEBUG_PRINT_ERROR("\n Wrong CODEC \n");
+            return false;
+        }
+
+        control.value = requested_profile.profile;
+
+        DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
+        rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
+
+        if (rc) {
+            DEBUG_PRINT_ERROR("Failed to set control\n");
+            return false;
+        }
+
+        DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+
+        codec_profile.profile = control.value;
+        m_profile_set = true;
+    }
+
+    if (!m_level_set) {
+        int rc;
+        struct v4l2_control control;
+
+        if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_H264) {
+            control.id = V4L2_CID_MPEG_VIDEO_H264_LEVEL;
+        } else if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_MPEG4) {
+            control.id = V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL;
+        } else if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_H263) {
+            control.id = V4L2_CID_MPEG_VIDC_VIDEO_H263_LEVEL;
+        } else {
+            DEBUG_PRINT_ERROR("\n Wrong CODEC \n");
+            return false;
+        }
+
+        control.value = requested_level.level;
+
+        DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
+        rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
+
+        if (rc) {
+            DEBUG_PRINT_ERROR("Failed to set control\n");
+            return false;
+        }
+
+        DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+
+        profile_level.level = control.value;
+        m_level_set = true;
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_set_voptiming_cfg( OMX_U32 TimeIncRes)
 {
 
-  struct venc_voptimingcfg vop_timing_cfg;
+    struct venc_voptimingcfg vop_timing_cfg;
 
-  DEBUG_PRINT_LOW("\n venc_set_voptiming_cfg: TimeRes = %u",
-    TimeIncRes);
+    DEBUG_PRINT_LOW("\n venc_set_voptiming_cfg: TimeRes = %u",
+            TimeIncRes);
 
-  vop_timing_cfg.voptime_resolution = TimeIncRes;
+    vop_timing_cfg.voptime_resolution = TimeIncRes;
 
-  voptimecfg.voptime_resolution = vop_timing_cfg.voptime_resolution;
-  return true;
+    voptimecfg.voptime_resolution = vop_timing_cfg.voptime_resolution;
+    return true;
 }
 
 bool venc_dev::venc_set_intra_period(OMX_U32 nPFrames, OMX_U32 nBFrames)
 {
 
-  DEBUG_PRINT_LOW("\n venc_set_intra_period: nPFrames = %u",
-    nPFrames);
-	int rc;
-	struct v4l2_control control;
-  if((codec_profile.profile != V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE) &&
-     (codec_profile.profile != V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) &&
-     (codec_profile.profile != V4L2_MPEG_VIDEO_H264_PROFILE_HIGH))
-  {
-	  nBFrames=0;
-  }
+    DEBUG_PRINT_LOW("\n venc_set_intra_period: nPFrames = %u",
+            nPFrames);
+    int rc;
+    struct v4l2_control control;
 
-	control.id = V4L2_CID_MPEG_VIDC_VIDEO_NUM_P_FRAMES;
-	control.value = nPFrames;
+    if ((codec_profile.profile != V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE) &&
+            (codec_profile.profile != V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) &&
+            (codec_profile.profile != V4L2_MPEG_VIDEO_H264_PROFILE_HIGH)) {
+        nBFrames=0;
+    }
 
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		DEBUG_PRINT_ERROR("Failed to set control\n");
-		return false;
-	}
-	DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+    control.id = V4L2_CID_MPEG_VIDC_VIDEO_NUM_P_FRAMES;
+    control.value = nPFrames;
 
-        intra_period.num_pframes = control.value;
-	control.id = V4L2_CID_MPEG_VIDC_VIDEO_NUM_B_FRAMES;
-	control.value = nBFrames;
-	DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		DEBUG_PRINT_ERROR("Failed to set control\n");
-		return false;
-	}
-	DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+    rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
+
+    if (rc) {
+        DEBUG_PRINT_ERROR("Failed to set control\n");
+        return false;
+    }
+
+    DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+
+    intra_period.num_pframes = control.value;
+    control.id = V4L2_CID_MPEG_VIDC_VIDEO_NUM_B_FRAMES;
+    control.value = nBFrames;
+    DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
+    rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
+
+    if (rc) {
+        DEBUG_PRINT_ERROR("Failed to set control\n");
+        return false;
+    }
+
+    DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
 
 
-	intra_period.num_bframes = control.value;
-	if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_H264){
-		control.id = V4L2_CID_MPEG_VIDC_VIDEO_IDR_PERIOD;
-		control.value = 1;
+    intra_period.num_bframes = control.value;
 
-		rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-		if (rc) {
-			DEBUG_PRINT_ERROR("Failed to set control\n");
-			return false;
-		}
-		idrperiod.idrperiod = 1;
-	}
-  return true;
+    if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_H264) {
+        control.id = V4L2_CID_MPEG_VIDC_VIDEO_IDR_PERIOD;
+        control.value = 1;
+
+        rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
+
+        if (rc) {
+            DEBUG_PRINT_ERROR("Failed to set control\n");
+            return false;
+        }
+
+        idrperiod.idrperiod = 1;
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_set_idr_period(OMX_U32 nPFrames, OMX_U32 nIDRPeriod)
 {
-	int rc = 0;
-	struct v4l2_control control;
-	DEBUG_PRINT_LOW("\n venc_set_idr_period: nPFrames = %u, nIDRPeriod: %u\n",
-		nPFrames, nIDRPeriod);
+    int rc = 0;
+    struct v4l2_control control;
+    DEBUG_PRINT_LOW("\n venc_set_idr_period: nPFrames = %u, nIDRPeriod: %u\n",
+            nPFrames, nIDRPeriod);
 
-	if (m_sVenc_cfg.codectype != V4L2_PIX_FMT_H264){
-		DEBUG_PRINT_ERROR("\nERROR: IDR period valid for H264 only!!");
-		return false;
-	}
+    if (m_sVenc_cfg.codectype != V4L2_PIX_FMT_H264) {
+        DEBUG_PRINT_ERROR("\nERROR: IDR period valid for H264 only!!");
+        return false;
+    }
 
-	if(venc_set_intra_period (nPFrames, intra_period.num_bframes) == false) {
-		DEBUG_PRINT_ERROR("\nERROR: Request for setting intra period failed");
-		return false;
-	}
+    if (venc_set_intra_period (nPFrames, intra_period.num_bframes) == false) {
+        DEBUG_PRINT_ERROR("\nERROR: Request for setting intra period failed");
+        return false;
+    }
 
-	intra_period.num_pframes = nPFrames;
-	control.id = V4L2_CID_MPEG_VIDC_VIDEO_IDR_PERIOD;
-	control.value = nIDRPeriod;
+    intra_period.num_pframes = nPFrames;
+    control.id = V4L2_CID_MPEG_VIDC_VIDEO_IDR_PERIOD;
+    control.value = nIDRPeriod;
 
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		DEBUG_PRINT_ERROR("Failed to set control\n");
-		return false;
-	}
+    rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
 
-	idrperiod.idrperiod = nIDRPeriod;
-	return true;
+    if (rc) {
+        DEBUG_PRINT_ERROR("Failed to set control\n");
+        return false;
+    }
+
+    idrperiod.idrperiod = nIDRPeriod;
+    return true;
 }
 
 bool venc_dev::venc_set_entropy_config(OMX_BOOL enable, OMX_U32 i_cabac_level)
 {
-	int rc = 0;
-	struct v4l2_control control;
+    int rc = 0;
+    struct v4l2_control control;
 
-  DEBUG_PRINT_LOW("\n venc_set_entropy_config: CABAC = %u level: %u", enable, i_cabac_level);
+    DEBUG_PRINT_LOW("\n venc_set_entropy_config: CABAC = %u level: %u", enable, i_cabac_level);
 
-  if(enable &&(codec_profile.profile != V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE)){
+    if (enable &&(codec_profile.profile != V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE)) {
 
-	  control.value = V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC;
-	  control.id = V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE;
+        control.value = V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC;
+        control.id = V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE;
 
-	  DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		DEBUG_PRINT_ERROR("Failed to set control\n");
-		return false;
-	}
-	DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
-	entropy.longentropysel = control.value;
-	  if (i_cabac_level == 0) {
-         control.value = V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL_0;
-      }
-      else if (i_cabac_level == 1) {
-         control.value = V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL_1;
-      }
-      else if (i_cabac_level == 2) {
-         control.value = V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL_2;
-      }
+        DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
+        rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
 
-	  control.id = V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL;
-	  //control.value = entropy_cfg.cabacmodel;
-		DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		DEBUG_PRINT_ERROR("Failed to set control\n");
-		return false;
-	}
-	DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
-	entropy.longentropysel=control.value;
-  }
-  else if(!enable){
-    control.value =  V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC;
-	control.id = V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE;
-	DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		DEBUG_PRINT_ERROR("Failed to set control\n");
-		return false;
-	}
-	DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
-	entropy.longentropysel=control.value;
+        if (rc) {
+            DEBUG_PRINT_ERROR("Failed to set control\n");
+            return false;
+        }
+
+        DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+        entropy.longentropysel = control.value;
+
+        if (i_cabac_level == 0) {
+            control.value = V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL_0;
+        } else if (i_cabac_level == 1) {
+            control.value = V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL_1;
+        } else if (i_cabac_level == 2) {
+            control.value = V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL_2;
+        }
+
+        control.id = V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL;
+        //control.value = entropy_cfg.cabacmodel;
+        DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
+        rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
+
+        if (rc) {
+            DEBUG_PRINT_ERROR("Failed to set control\n");
+            return false;
+        }
+
+        DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+        entropy.longentropysel=control.value;
+    } else if (!enable) {
+        control.value =  V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC;
+        control.id = V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE;
+        DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
+        rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
+
+        if (rc) {
+            DEBUG_PRINT_ERROR("Failed to set control\n");
+            return false;
+        }
+
+        DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+        entropy.longentropysel=control.value;
+    } else {
+        DEBUG_PRINT_ERROR("\nInvalid Entropy mode for Baseline Profile");
+        return false;
     }
-  else{
-    DEBUG_PRINT_ERROR("\nInvalid Entropy mode for Baseline Profile");
-    return false;
-  }
 
-  return true;
+    return true;
 }
 
 bool venc_dev::venc_set_multislice_cfg(OMX_INDEXTYPE Codec, OMX_U32 nSlicesize) // MB
 {
-	int rc;
-	struct v4l2_control control;
-  bool status = true;
+    int rc;
+    struct v4l2_control control;
+    bool status = true;
 
-  if((Codec != OMX_IndexParamVideoH263)  && (nSlicesize)){
-	  control.value =  V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_MB;
+    if ((Codec != OMX_IndexParamVideoH263)  && (nSlicesize)) {
+        control.value =  V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_MB;
+    } else {
+        control.value =  V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE;
     }
-  else{
-   control.value =  V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE;
-  }
-	control.id = V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE;
-	DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		DEBUG_PRINT_ERROR("Failed to set control\n");
-		return false;
-	}
-	DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
-	multislice.mslice_mode=control.value;
 
-	if(multislice.mslice_mode!=V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE){
+    control.id = V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE;
+    DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
+    rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
 
-	control.id = V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB;
-	control.value = nSlicesize;
-	DEBUG_PRINT_LOW("Calling SLICE_MB IOCTL set control for id=%d, val=%d\n", control.id, control.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		DEBUG_PRINT_ERROR("Failed to set control\n");
-		return false;
-	}
-	DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
-	multislice.mslice_size=control.value;
+    if (rc) {
+        DEBUG_PRINT_ERROR("Failed to set control\n");
+        return false;
+    }
 
-	}
-  return status;
+    DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+    multislice.mslice_mode=control.value;
+
+    if (multislice.mslice_mode!=V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE) {
+
+        control.id = V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB;
+        control.value = nSlicesize;
+        DEBUG_PRINT_LOW("Calling SLICE_MB IOCTL set control for id=%d, val=%d\n", control.id, control.value);
+        rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
+
+        if (rc) {
+            DEBUG_PRINT_ERROR("Failed to set control\n");
+            return false;
+        }
+
+        DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+        multislice.mslice_size=control.value;
+
+    }
+
+    return status;
 }
 
 bool venc_dev::venc_set_intra_refresh(OMX_VIDEO_INTRAREFRESHTYPE ir_mode, OMX_U32 irMBs)
 {
-  bool status = true;
-  int rc;
-  struct v4l2_control control_mode,control_mbs;
-   control_mode.id = V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_MODE;
-  // There is no disabled mode.  Disabled mode is indicated by a 0 count.
-  if (irMBs == 0 || ir_mode == OMX_VIDEO_IntraRefreshMax)
-  {
-	  control_mode.value = V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_NONE;
-	  return status;
-  }
-  else if ((ir_mode == OMX_VIDEO_IntraRefreshCyclic) &&
-           (irMBs < ((m_sVenc_cfg.input_width * m_sVenc_cfg.input_height)>>8)))
-  {
-	  control_mode.value = V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_CYCLIC;
-	  control_mbs.id=V4L2_CID_MPEG_VIDC_VIDEO_CIR_MBS;
-	  control_mbs.value=irMBs;
-  }
-  else if ((ir_mode == OMX_VIDEO_IntraRefreshAdaptive) &&
-           (irMBs < ((m_sVenc_cfg.input_width * m_sVenc_cfg.input_height)>>8)))
-  {
-	  control_mode.value = V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_ADAPTIVE;
-	  control_mbs.id=V4L2_CID_MPEG_VIDC_VIDEO_AIR_MBS;
-	  control_mbs.value=irMBs;
-  }
-  else if ((ir_mode == OMX_VIDEO_IntraRefreshBoth) &&
-           (irMBs < ((m_sVenc_cfg.input_width * m_sVenc_cfg.input_height)>>8)))
-  {
-	  control_mode.value = V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_CYCLIC_ADAPTIVE;
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("\nERROR: Invalid IntraRefresh Parameters:"
-                      "mb count: %lu, mb mode:%d", irMBs, ir_mode);
-    return false;
-  }
+    bool status = true;
+    int rc;
+    struct v4l2_control control_mode,control_mbs;
+    control_mode.id = V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_MODE;
 
-	DEBUG_PRINT_LOW("Calling IOCTL set control for id=%lu, val=%lu\n", control_mode.id, control_mode.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control_mode);
-	if (rc) {
-		DEBUG_PRINT_ERROR("Failed to set control\n");
-		return false;
-	}
-	DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control_mode.id, control_mode.value);
+    // There is no disabled mode.  Disabled mode is indicated by a 0 count.
+    if (irMBs == 0 || ir_mode == OMX_VIDEO_IntraRefreshMax) {
+        control_mode.value = V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_NONE;
+        return status;
+    } else if ((ir_mode == OMX_VIDEO_IntraRefreshCyclic) &&
+            (irMBs < ((m_sVenc_cfg.input_width * m_sVenc_cfg.input_height)>>8))) {
+        control_mode.value = V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_CYCLIC;
+        control_mbs.id=V4L2_CID_MPEG_VIDC_VIDEO_CIR_MBS;
+        control_mbs.value=irMBs;
+    } else if ((ir_mode == OMX_VIDEO_IntraRefreshAdaptive) &&
+            (irMBs < ((m_sVenc_cfg.input_width * m_sVenc_cfg.input_height)>>8))) {
+        control_mode.value = V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_ADAPTIVE;
+        control_mbs.id=V4L2_CID_MPEG_VIDC_VIDEO_AIR_MBS;
+        control_mbs.value=irMBs;
+    } else if ((ir_mode == OMX_VIDEO_IntraRefreshBoth) &&
+            (irMBs < ((m_sVenc_cfg.input_width * m_sVenc_cfg.input_height)>>8))) {
+        control_mode.value = V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_CYCLIC_ADAPTIVE;
+    } else {
+        DEBUG_PRINT_ERROR("\nERROR: Invalid IntraRefresh Parameters:"
+                "mb count: %lu, mb mode:%d", irMBs, ir_mode);
+        return false;
+    }
 
-	DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control_mbs.id, control_mbs.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control_mbs);
-	if (rc) {
-		DEBUG_PRINT_ERROR("Failed to set control\n");
-		return false;
-	}
-	DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control_mbs.id, control_mbs.value);
+    DEBUG_PRINT_LOW("Calling IOCTL set control for id=%lu, val=%lu\n", control_mode.id, control_mode.value);
+    rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control_mode);
+
+    if (rc) {
+        DEBUG_PRINT_ERROR("Failed to set control\n");
+        return false;
+    }
+
+    DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control_mode.id, control_mode.value);
+
+    DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control_mbs.id, control_mbs.value);
+    rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control_mbs);
+
+    if (rc) {
+        DEBUG_PRINT_ERROR("Failed to set control\n");
+        return false;
+    }
+
+    DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control_mbs.id, control_mbs.value);
 
     intra_refresh.irmode = control_mode.value;
     intra_refresh.mbcount = control_mbs.value;
 
-  return status;
+    return status;
 }
 
 bool venc_dev::venc_set_error_resilience(OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE* error_resilience)
 {
-	bool status = true;
-	struct venc_headerextension hec_cfg;
-	struct venc_multiclicecfg multislice_cfg;
-	int rc;
-	struct v4l2_control control;
+    bool status = true;
+    struct venc_headerextension hec_cfg;
+    struct venc_multiclicecfg multislice_cfg;
+    int rc;
+    struct v4l2_control control;
 
-	memset(&control, 0, sizeof(control));
-	if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_MPEG4) {
-		if (error_resilience->bEnableHEC) {
-			hec_cfg.header_extension = 1;
-		} else {
-			hec_cfg.header_extension = 0;
-		}
-		hec.header_extension = error_resilience->bEnableHEC;
-	}
+    memset(&control, 0, sizeof(control));
 
-	if (error_resilience->bEnableRVLC) {
-		DEBUG_PRINT_ERROR("\n RVLC is not Supported");
-		return false;
-	}
+    if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_MPEG4) {
+        if (error_resilience->bEnableHEC) {
+            hec_cfg.header_extension = 1;
+        } else {
+            hec_cfg.header_extension = 0;
+        }
 
-	if (( m_sVenc_cfg.codectype != V4L2_PIX_FMT_H263) &&
-		(error_resilience->bEnableDataPartitioning)) {
-		DEBUG_PRINT_ERROR("\n DataPartioning are not Supported for MPEG4/H264");
-		return false;
-		}
+        hec.header_extension = error_resilience->bEnableHEC;
+    }
 
-	if (( m_sVenc_cfg.codectype != V4L2_PIX_FMT_H263) &&
-				(error_resilience->nResynchMarkerSpacing)) {
-		multislice_cfg.mslice_mode = VEN_MSLICE_CNT_BYTE;
-		multislice_cfg.mslice_size = error_resilience->nResynchMarkerSpacing;
-		control.id = V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE;
-		control.value = V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_BYTES;
-	} else if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_H263 &&
-			   error_resilience->bEnableDataPartitioning) {
-		multislice_cfg.mslice_mode = VEN_MSLICE_GOB;
-		multislice_cfg.mslice_size = error_resilience->nResynchMarkerSpacing;
-		control.id = V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE;
-		control.value = V4L2_MPEG_VIDEO_MULTI_SLICE_GOB;
-	} else {
-		multislice_cfg.mslice_mode = VEN_MSLICE_OFF;
-		multislice_cfg.mslice_size = 0;
-		control.id = V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE;
-		control.value =  V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE;
-	}
-	DEBUG_PRINT_LOW("\n %s(): mode = %u, size = %u", __func__,
-					multislice_cfg.mslice_mode, multislice_cfg.mslice_size);
-	printf("Calling IOCTL set control for id=%x, val=%d\n", control.id, control.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		printf("Failed to set Slice mode control\n");
-		return false;
-	}
-	printf("Success IOCTL set control for id=%x, value=%d\n", control.id, control.value);
-	multislice.mslice_mode=control.value;
+    if (error_resilience->bEnableRVLC) {
+        DEBUG_PRINT_ERROR("\n RVLC is not Supported");
+        return false;
+    }
 
-	control.id = V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES;
-	control.value = error_resilience->nResynchMarkerSpacing;
-	printf("Calling IOCTL set control for id=%x, val=%d\n", control.id, control.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		printf("Failed to set MAX MB control\n");
-		return false;
-	}
-	printf("Success IOCTL set control for id=%x, value=%d\n", control.id, control.value);
-	multislice.mslice_mode = multislice_cfg.mslice_mode;
-	multislice.mslice_size = multislice_cfg.mslice_size;
-	return status;
+    if (( m_sVenc_cfg.codectype != V4L2_PIX_FMT_H263) &&
+            (error_resilience->bEnableDataPartitioning)) {
+        DEBUG_PRINT_ERROR("\n DataPartioning are not Supported for MPEG4/H264");
+        return false;
+    }
+
+    if (( m_sVenc_cfg.codectype != V4L2_PIX_FMT_H263) &&
+            (error_resilience->nResynchMarkerSpacing)) {
+        multislice_cfg.mslice_mode = VEN_MSLICE_CNT_BYTE;
+        multislice_cfg.mslice_size = error_resilience->nResynchMarkerSpacing;
+        control.id = V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE;
+        control.value = V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_BYTES;
+    } else if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_H263 &&
+            error_resilience->bEnableDataPartitioning) {
+        multislice_cfg.mslice_mode = VEN_MSLICE_GOB;
+        multislice_cfg.mslice_size = error_resilience->nResynchMarkerSpacing;
+        control.id = V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE;
+        control.value = V4L2_MPEG_VIDEO_MULTI_SLICE_GOB;
+    } else {
+        multislice_cfg.mslice_mode = VEN_MSLICE_OFF;
+        multislice_cfg.mslice_size = 0;
+        control.id = V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE;
+        control.value =  V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE;
+    }
+
+    DEBUG_PRINT_LOW("\n %s(): mode = %u, size = %u", __func__,
+            multislice_cfg.mslice_mode, multislice_cfg.mslice_size);
+    printf("Calling IOCTL set control for id=%x, val=%d\n", control.id, control.value);
+    rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
+
+    if (rc) {
+        printf("Failed to set Slice mode control\n");
+        return false;
+    }
+
+    printf("Success IOCTL set control for id=%x, value=%d\n", control.id, control.value);
+    multislice.mslice_mode=control.value;
+
+    control.id = V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES;
+    control.value = error_resilience->nResynchMarkerSpacing;
+    printf("Calling IOCTL set control for id=%x, val=%d\n", control.id, control.value);
+    rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
+
+    if (rc) {
+        printf("Failed to set MAX MB control\n");
+        return false;
+    }
+
+    printf("Success IOCTL set control for id=%x, value=%d\n", control.id, control.value);
+    multislice.mslice_mode = multislice_cfg.mslice_mode;
+    multislice.mslice_size = multislice_cfg.mslice_size;
+    return status;
 }
 
 bool venc_dev::venc_set_inloop_filter(OMX_VIDEO_AVCLOOPFILTERTYPE loopfilter)
 {
-	int rc;
-	struct v4l2_control control;
-	control.id=V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE;
-  if (loopfilter == OMX_VIDEO_AVCLoopFilterEnable){
-	  control.value=V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED;
-  }
-  else if(loopfilter == OMX_VIDEO_AVCLoopFilterDisable){
-	  control.value=V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED;
-  }
-  else if(loopfilter == OMX_VIDEO_AVCLoopFilterDisableSliceBoundary){
-	  control.value=V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY;
-  }
+    int rc;
+    struct v4l2_control control;
+    control.id=V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE;
 
-	DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		return false;
-	}
-	DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+    if (loopfilter == OMX_VIDEO_AVCLoopFilterEnable) {
+        control.value=V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED;
+    } else if (loopfilter == OMX_VIDEO_AVCLoopFilterDisable) {
+        control.value=V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED;
+    } else if (loopfilter == OMX_VIDEO_AVCLoopFilterDisableSliceBoundary) {
+        control.value=V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY;
+    }
 
-	dbkfilter.db_mode=control.value;
+    DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
+    rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
 
-	control.id=V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA;
-	control.value=0;
+    if (rc) {
+        return false;
+    }
 
-	DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		return false;
-	}
-	DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
-	control.id=V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA;
-	control.value=0;
-	DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		return false;
-	}
-	DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+    DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+
+    dbkfilter.db_mode=control.value;
+
+    control.id=V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA;
+    control.value=0;
+
+    DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
+    rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
+
+    if (rc) {
+        return false;
+    }
+
+    DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+    control.id=V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA;
+    control.value=0;
+    DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
+    rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
+
+    if (rc) {
+        return false;
+    }
+
+    DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
 
 
-  dbkfilter.slicealpha_offset = dbkfilter.slicebeta_offset = 0;
-  return true;
+    dbkfilter.slicealpha_offset = dbkfilter.slicebeta_offset = 0;
+    return true;
 }
 
 bool venc_dev::venc_set_target_bitrate(OMX_U32 nTargetBitrate, OMX_U32 config)
 {
-  DEBUG_PRINT_LOW("\n venc_set_target_bitrate: bitrate = %u",
-    nTargetBitrate);
-	struct v4l2_control control;
-	int rc = 0;
-	control.id = V4L2_CID_MPEG_VIDEO_BITRATE;
-	control.value = nTargetBitrate;
+    DEBUG_PRINT_LOW("\n venc_set_target_bitrate: bitrate = %u",
+            nTargetBitrate);
+    struct v4l2_control control;
+    int rc = 0;
+    control.id = V4L2_CID_MPEG_VIDEO_BITRATE;
+    control.value = nTargetBitrate;
 
-	DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		DEBUG_PRINT_ERROR("Failed to set control\n");
-		return false;
-	}
-	DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+    DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
+    rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
 
-
-  m_sVenc_cfg.targetbitrate = control.value;
-  bitrate.target_bitrate = control.value;
-  if(!config)
-  {
-    m_level_set = false;
-    if(venc_set_profile_level(0, 0))
-    {
-      DEBUG_PRINT_HIGH("Calling set level (Bitrate) with %lu\n",profile_level.level);
+    if (rc) {
+        DEBUG_PRINT_ERROR("Failed to set control\n");
+        return false;
     }
-  }
-  return true;
+
+    DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+
+
+    m_sVenc_cfg.targetbitrate = control.value;
+    bitrate.target_bitrate = control.value;
+
+    if (!config) {
+        m_level_set = false;
+
+        if (venc_set_profile_level(0, 0)) {
+            DEBUG_PRINT_HIGH("Calling set level (Bitrate) with %lu\n",profile_level.level);
+        }
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_set_encode_framerate(OMX_U32 encode_framerate, OMX_U32 config)
 {
-  struct v4l2_streamparm parm;
-  int rc = 0;
-  struct venc_framerate frame_rate_cfg;
-  Q16ToFraction(encode_framerate,frame_rate_cfg.fps_numerator,frame_rate_cfg.fps_denominator);
-  parm.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-  parm.parm.output.timeperframe.numerator = frame_rate_cfg.fps_denominator;
-  parm.parm.output.timeperframe.denominator = frame_rate_cfg.fps_numerator;
-  if(frame_rate_cfg.fps_numerator > 0)
-    rc = ioctl(m_nDriver_fd, VIDIOC_S_PARM, &parm);
-  if (rc) {
-    DEBUG_PRINT_ERROR("ERROR: Request for setting framerate failed\n");
-    return false;
-  }
-  m_sVenc_cfg.fps_den = frame_rate_cfg.fps_denominator;
-  m_sVenc_cfg.fps_num = frame_rate_cfg.fps_numerator;
-  if(!config)
-  {
-    m_level_set = false;
-    if(venc_set_profile_level(0, 0))
-    {
-      DEBUG_PRINT_HIGH("Calling set level (Framerate) with %lu\n",profile_level.level);
+    struct v4l2_streamparm parm;
+    int rc = 0;
+    struct venc_framerate frame_rate_cfg;
+    Q16ToFraction(encode_framerate,frame_rate_cfg.fps_numerator,frame_rate_cfg.fps_denominator);
+    parm.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+    parm.parm.output.timeperframe.numerator = frame_rate_cfg.fps_denominator;
+    parm.parm.output.timeperframe.denominator = frame_rate_cfg.fps_numerator;
+
+    if (frame_rate_cfg.fps_numerator > 0)
+        rc = ioctl(m_nDriver_fd, VIDIOC_S_PARM, &parm);
+
+    if (rc) {
+        DEBUG_PRINT_ERROR("ERROR: Request for setting framerate failed\n");
+        return false;
     }
-  }
-  return true;
+
+    m_sVenc_cfg.fps_den = frame_rate_cfg.fps_denominator;
+    m_sVenc_cfg.fps_num = frame_rate_cfg.fps_numerator;
+
+    if (!config) {
+        m_level_set = false;
+
+        if (venc_set_profile_level(0, 0)) {
+            DEBUG_PRINT_HIGH("Calling set level (Framerate) with %lu\n",profile_level.level);
+        }
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_set_color_format(OMX_COLOR_FORMATTYPE color_format)
 {
-  struct v4l2_format fmt;
-  DEBUG_PRINT_LOW("\n venc_set_color_format: color_format = %u ", color_format);
+    struct v4l2_format fmt;
+    DEBUG_PRINT_LOW("\n venc_set_color_format: color_format = %u ", color_format);
 
-  if(color_format == OMX_COLOR_FormatYUV420SemiPlanar)
-  {
-    m_sVenc_cfg.inputformat = V4L2_PIX_FMT_NV12;
-  }
-  else if(color_format == QOMX_COLOR_FormatYVU420SemiPlanar)
-  {
-    m_sVenc_cfg.inputformat = V4L2_PIX_FMT_NV21;
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("\nWARNING: Unsupported Color format [%d]", color_format);
-    m_sVenc_cfg.inputformat = V4L2_PIX_FMT_NV12;
-    DEBUG_PRINT_HIGH("\n Default color format YUV420SemiPlanar is set");
-  }
-  fmt.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-  fmt.fmt.pix_mp.pixelformat = m_sVenc_cfg.inputformat;
-  fmt.fmt.pix_mp.height = m_sVenc_cfg.input_height;
-  fmt.fmt.pix_mp.width = m_sVenc_cfg.input_width;
-  if (ioctl(m_nDriver_fd, VIDIOC_S_FMT, &fmt)) {
-    DEBUG_PRINT_ERROR("Failed setting color format %x", color_format);
-    return false;
-  }
+    if (color_format == OMX_COLOR_FormatYUV420SemiPlanar) {
+        m_sVenc_cfg.inputformat = V4L2_PIX_FMT_NV12;
+    } else if (color_format == QOMX_COLOR_FormatYVU420SemiPlanar) {
+        m_sVenc_cfg.inputformat = V4L2_PIX_FMT_NV21;
+    } else {
+        DEBUG_PRINT_ERROR("\nWARNING: Unsupported Color format [%d]", color_format);
+        m_sVenc_cfg.inputformat = V4L2_PIX_FMT_NV12;
+        DEBUG_PRINT_HIGH("\n Default color format YUV420SemiPlanar is set");
+    }
 
-  return true;
+    fmt.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+    fmt.fmt.pix_mp.pixelformat = m_sVenc_cfg.inputformat;
+    fmt.fmt.pix_mp.height = m_sVenc_cfg.input_height;
+    fmt.fmt.pix_mp.width = m_sVenc_cfg.input_width;
+
+    if (ioctl(m_nDriver_fd, VIDIOC_S_FMT, &fmt)) {
+        DEBUG_PRINT_ERROR("Failed setting color format %x", color_format);
+        return false;
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_set_intra_vop_refresh(OMX_BOOL intra_vop_refresh)
 {
-  DEBUG_PRINT_LOW("\n venc_set_intra_vop_refresh: intra_vop = %uc", intra_vop_refresh);
-  if(intra_vop_refresh == OMX_TRUE)
-  {
-	struct v4l2_control control;
-	int rc;
-	control.id = V4L2_CID_MPEG_VIDC_VIDEO_REQUEST_IFRAME;
-	control.value = 1;
-	printf("Calling IOCTL set control for id=%x, val=%d\n", control.id, control.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		printf("Failed to set Intra Frame Request control\n");
-		return false;
-	}
-	printf("Success IOCTL set control for id=%x, value=%d\n", control.id, control.value);
-  }
-  else
-  {
-    DEBUG_PRINT_ERROR("\nERROR: VOP Refresh is False, no effect");
-  }
-  return true;
+    DEBUG_PRINT_LOW("\n venc_set_intra_vop_refresh: intra_vop = %uc", intra_vop_refresh);
+
+    if (intra_vop_refresh == OMX_TRUE) {
+        struct v4l2_control control;
+        int rc;
+        control.id = V4L2_CID_MPEG_VIDC_VIDEO_REQUEST_IFRAME;
+        control.value = 1;
+        printf("Calling IOCTL set control for id=%x, val=%d\n", control.id, control.value);
+        rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
+
+        if (rc) {
+            printf("Failed to set Intra Frame Request control\n");
+            return false;
+        }
+
+        printf("Success IOCTL set control for id=%x, value=%d\n", control.id, control.value);
+    } else {
+        DEBUG_PRINT_ERROR("\nERROR: VOP Refresh is False, no effect");
+    }
+
+    return true;
 }
 
 bool venc_dev::venc_set_ratectrl_cfg(OMX_VIDEO_CONTROLRATETYPE eControlRate)
 {
-  bool status = true;
-	struct v4l2_control control;
-	int rc = 0;
-	control.id = V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL;
-  switch(eControlRate)
-  {
-  case OMX_Video_ControlRateDisable:
-	  control.value=V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_OFF;
-    break;
-  case OMX_Video_ControlRateVariableSkipFrames:
-	  control.value=V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_VFR;
-    break;
-  case OMX_Video_ControlRateVariable:
-	  control.value=V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_CFR;
-    break;
-  case OMX_Video_ControlRateConstantSkipFrames:
-	    control.value=V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_VFR;
-    break;
-  case OMX_Video_ControlRateConstant:
-	    control.value=V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_CFR;
-    break;
-  default:
-    status = false;
-    break;
-  }
+    bool status = true;
+    struct v4l2_control control;
+    int rc = 0;
+    control.id = V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL;
 
-  if(status)
-  {
+    switch (eControlRate) {
+        case OMX_Video_ControlRateDisable:
+            control.value=V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_OFF;
+            break;
+        case OMX_Video_ControlRateVariableSkipFrames:
+            control.value=V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_VFR;
+            break;
+        case OMX_Video_ControlRateVariable:
+            control.value=V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_CFR;
+            break;
+        case OMX_Video_ControlRateConstantSkipFrames:
+            control.value=V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_VFR;
+            break;
+        case OMX_Video_ControlRateConstant:
+            control.value=V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_CFR;
+            break;
+        default:
+            status = false;
+            break;
+    }
 
-	  DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
-	rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
-	if (rc) {
-		DEBUG_PRINT_ERROR("Failed to set control\n");
-		return false;
-	}
-	DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+    if (status) {
 
-    rate_ctrl.rcmode = control.value;
-  }
-  return status;
+        DEBUG_PRINT_LOW("Calling IOCTL set control for id=%d, val=%d\n", control.id, control.value);
+        rc = ioctl(m_nDriver_fd, VIDIOC_S_CTRL, &control);
+
+        if (rc) {
+            DEBUG_PRINT_ERROR("Failed to set control\n");
+            return false;
+        }
+
+        DEBUG_PRINT_LOW("Success IOCTL set control for id=%d, value=%d\n", control.id, control.value);
+
+        rate_ctrl.rcmode = control.value;
+    }
+
+    return status;
 }
 
 bool venc_dev::venc_get_profile_level(OMX_U32 *eProfile,OMX_U32 *eLevel)
 {
-  bool status = true;
-  if(eProfile == NULL || eLevel == NULL)
-  {
-    return false;
-  }
+    bool status = true;
 
-  if(m_sVenc_cfg.codectype == V4L2_PIX_FMT_MPEG4)
-  {
-    switch(codec_profile.profile)
-    {
-    case V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE:
-      *eProfile = OMX_VIDEO_MPEG4ProfileSimple;
-      break;
-    case V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE:
-      *eProfile = OMX_VIDEO_MPEG4ProfileAdvancedSimple;
-      break;
-    default:
-      *eProfile = OMX_VIDEO_MPEG4ProfileMax;
-      status = false;
-      break;
+    if (eProfile == NULL || eLevel == NULL) {
+        return false;
     }
 
-    if(!status)
-    {
-      return status;
+    if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_MPEG4) {
+        switch (codec_profile.profile) {
+            case V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE:
+                *eProfile = OMX_VIDEO_MPEG4ProfileSimple;
+                break;
+            case V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE:
+                *eProfile = OMX_VIDEO_MPEG4ProfileAdvancedSimple;
+                break;
+            default:
+                *eProfile = OMX_VIDEO_MPEG4ProfileMax;
+                status = false;
+                break;
+        }
+
+        if (!status) {
+            return status;
+        }
+
+        //profile level
+        switch (profile_level.level) {
+            case V4L2_MPEG_VIDEO_MPEG4_LEVEL_0:
+                *eLevel = OMX_VIDEO_MPEG4Level0;
+                break;
+            case V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B:
+                *eLevel = OMX_VIDEO_MPEG4Level0b;
+                break;
+            case V4L2_MPEG_VIDEO_MPEG4_LEVEL_1:
+                *eLevel = OMX_VIDEO_MPEG4Level1;
+                break;
+            case V4L2_MPEG_VIDEO_MPEG4_LEVEL_2:
+                *eLevel = OMX_VIDEO_MPEG4Level2;
+                break;
+            case V4L2_MPEG_VIDEO_MPEG4_LEVEL_3:
+                *eLevel = OMX_VIDEO_MPEG4Level3;
+                break;
+            case V4L2_MPEG_VIDEO_MPEG4_LEVEL_4:
+                *eLevel = OMX_VIDEO_MPEG4Level4;
+                break;
+            case V4L2_MPEG_VIDEO_MPEG4_LEVEL_5:
+                *eLevel = OMX_VIDEO_MPEG4Level5;
+                break;
+            default:
+                *eLevel = OMX_VIDEO_MPEG4LevelMax;
+                status =  false;
+                break;
+        }
+    } else if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_H263) {
+        if (codec_profile.profile == VEN_PROFILE_H263_BASELINE) {
+            *eProfile = OMX_VIDEO_H263ProfileBaseline;
+        } else {
+            *eProfile = OMX_VIDEO_H263ProfileMax;
+            return false;
+        }
+
+        switch (profile_level.level) {
+            case VEN_LEVEL_H263_10:
+                *eLevel = OMX_VIDEO_H263Level10;
+                break;
+            case VEN_LEVEL_H263_20:
+                *eLevel = OMX_VIDEO_H263Level20;
+                break;
+            case VEN_LEVEL_H263_30:
+                *eLevel = OMX_VIDEO_H263Level30;
+                break;
+            case VEN_LEVEL_H263_40:
+                *eLevel = OMX_VIDEO_H263Level40;
+                break;
+            case VEN_LEVEL_H263_45:
+                *eLevel = OMX_VIDEO_H263Level45;
+                break;
+            case VEN_LEVEL_H263_50:
+                *eLevel = OMX_VIDEO_H263Level50;
+                break;
+            case VEN_LEVEL_H263_60:
+                *eLevel = OMX_VIDEO_H263Level60;
+                break;
+            case VEN_LEVEL_H263_70:
+                *eLevel = OMX_VIDEO_H263Level70;
+                break;
+            default:
+                *eLevel = OMX_VIDEO_H263LevelMax;
+                status = false;
+                break;
+        }
+    } else if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_H264) {
+        switch (codec_profile.profile) {
+            case V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE:
+                *eProfile = OMX_VIDEO_AVCProfileBaseline;
+                break;
+            case V4L2_MPEG_VIDEO_H264_PROFILE_MAIN:
+                *eProfile = OMX_VIDEO_AVCProfileMain;
+                break;
+            case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH:
+                *eProfile = OMX_VIDEO_AVCProfileHigh;
+                break;
+            case V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED:
+                *eProfile = OMX_VIDEO_AVCProfileExtended;
+                break;
+            case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10:
+                *eProfile = OMX_VIDEO_AVCProfileHigh10;
+                break;
+            case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422:
+                *eProfile = OMX_VIDEO_AVCProfileHigh422;
+                break;
+            case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE:
+                *eProfile = OMX_VIDEO_AVCProfileHigh444;
+                break;
+            default:
+                *eProfile = OMX_VIDEO_AVCProfileMax;
+                status = false;
+                break;
+        }
+
+        if (!status) {
+            return status;
+        }
+
+        switch (profile_level.level) {
+            case V4L2_MPEG_VIDEO_H264_LEVEL_1_0:
+                *eLevel = OMX_VIDEO_AVCLevel1;
+                break;
+            case V4L2_MPEG_VIDEO_H264_LEVEL_1B:
+                *eLevel = OMX_VIDEO_AVCLevel1b;
+                break;
+            case V4L2_MPEG_VIDEO_H264_LEVEL_1_1:
+                *eLevel = OMX_VIDEO_AVCLevel11;
+                break;
+            case V4L2_MPEG_VIDEO_H264_LEVEL_1_2:
+                *eLevel = OMX_VIDEO_AVCLevel12;
+                break;
+            case V4L2_MPEG_VIDEO_H264_LEVEL_1_3:
+                *eLevel = OMX_VIDEO_AVCLevel13;
+                break;
+            case V4L2_MPEG_VIDEO_H264_LEVEL_2_0:
+                *eLevel = OMX_VIDEO_AVCLevel2;
+                break;
+            case V4L2_MPEG_VIDEO_H264_LEVEL_2_1:
+                *eLevel = OMX_VIDEO_AVCLevel21;
+                break;
+            case V4L2_MPEG_VIDEO_H264_LEVEL_2_2:
+                *eLevel = OMX_VIDEO_AVCLevel22;
+                break;
+            case V4L2_MPEG_VIDEO_H264_LEVEL_3_0:
+                *eLevel = OMX_VIDEO_AVCLevel3;
+                break;
+            case V4L2_MPEG_VIDEO_H264_LEVEL_3_1:
+                *eLevel = OMX_VIDEO_AVCLevel31;
+                break;
+            case V4L2_MPEG_VIDEO_H264_LEVEL_3_2:
+                *eLevel = OMX_VIDEO_AVCLevel32;
+                break;
+            case V4L2_MPEG_VIDEO_H264_LEVEL_4_0:
+                *eLevel = OMX_VIDEO_AVCLevel4;
+                break;
+            case V4L2_MPEG_VIDEO_H264_LEVEL_4_1:
+                *eLevel = OMX_VIDEO_AVCLevel41;
+                break;
+            case V4L2_MPEG_VIDEO_H264_LEVEL_4_2:
+                *eLevel = OMX_VIDEO_AVCLevel42;
+                break;
+            case V4L2_MPEG_VIDEO_H264_LEVEL_5_0:
+                *eLevel = OMX_VIDEO_AVCLevel5;
+                break;
+            case V4L2_MPEG_VIDEO_H264_LEVEL_5_1:
+                *eLevel = OMX_VIDEO_AVCLevel51;
+                break;
+            default :
+                *eLevel = OMX_VIDEO_AVCLevelMax;
+                status = false;
+                break;
+        }
     }
 
-    //profile level
-    switch(profile_level.level)
-    {
-    case V4L2_MPEG_VIDEO_MPEG4_LEVEL_0:
-      *eLevel = OMX_VIDEO_MPEG4Level0;
-      break;
-	  case V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B:
-      *eLevel = OMX_VIDEO_MPEG4Level0b;
-      break;
-    case V4L2_MPEG_VIDEO_MPEG4_LEVEL_1:
-      *eLevel = OMX_VIDEO_MPEG4Level1;
-      break;
-    case V4L2_MPEG_VIDEO_MPEG4_LEVEL_2:
-      *eLevel = OMX_VIDEO_MPEG4Level2;
-      break;
-    case V4L2_MPEG_VIDEO_MPEG4_LEVEL_3:
-      *eLevel = OMX_VIDEO_MPEG4Level3;
-      break;
-    case V4L2_MPEG_VIDEO_MPEG4_LEVEL_4:
-      *eLevel = OMX_VIDEO_MPEG4Level4;
-      break;
-    case V4L2_MPEG_VIDEO_MPEG4_LEVEL_5:
-      *eLevel = OMX_VIDEO_MPEG4Level5;
-      break;
-    default:
-      *eLevel = OMX_VIDEO_MPEG4LevelMax;
-      status =  false;
-      break;
-    }
-  }
-  else if(m_sVenc_cfg.codectype == V4L2_PIX_FMT_H263)
-  {
-    if(codec_profile.profile == VEN_PROFILE_H263_BASELINE)
-    {
-      *eProfile = OMX_VIDEO_H263ProfileBaseline;
-    }
-    else
-    {
-      *eProfile = OMX_VIDEO_H263ProfileMax;
-      return false;
-    }
-    switch(profile_level.level)
-    {
-    case VEN_LEVEL_H263_10:
-      *eLevel = OMX_VIDEO_H263Level10;
-      break;
-    case VEN_LEVEL_H263_20:
-      *eLevel = OMX_VIDEO_H263Level20;
-      break;
-    case VEN_LEVEL_H263_30:
-      *eLevel = OMX_VIDEO_H263Level30;
-      break;
-    case VEN_LEVEL_H263_40:
-      *eLevel = OMX_VIDEO_H263Level40;
-      break;
-    case VEN_LEVEL_H263_45:
-      *eLevel = OMX_VIDEO_H263Level45;
-      break;
-    case VEN_LEVEL_H263_50:
-      *eLevel = OMX_VIDEO_H263Level50;
-      break;
-    case VEN_LEVEL_H263_60:
-      *eLevel = OMX_VIDEO_H263Level60;
-      break;
-    case VEN_LEVEL_H263_70:
-      *eLevel = OMX_VIDEO_H263Level70;
-      break;
-    default:
-      *eLevel = OMX_VIDEO_H263LevelMax;
-      status = false;
-      break;
-    }
-  }
-  else if(m_sVenc_cfg.codectype == V4L2_PIX_FMT_H264)
-  {
-    switch(codec_profile.profile)
-    {
-    case V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE:
-      *eProfile = OMX_VIDEO_AVCProfileBaseline;
-      break;
-    case V4L2_MPEG_VIDEO_H264_PROFILE_MAIN:
-      *eProfile = OMX_VIDEO_AVCProfileMain;
-      break;
-    case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH:
-      *eProfile = OMX_VIDEO_AVCProfileHigh;
-      break;
-    case V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED:
-      *eProfile = OMX_VIDEO_AVCProfileExtended;
-      break;
-	case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10:
-      *eProfile = OMX_VIDEO_AVCProfileHigh10;
-      break;
-	case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422:
-      *eProfile = OMX_VIDEO_AVCProfileHigh422;
-      break;
-	case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE:
-      *eProfile = OMX_VIDEO_AVCProfileHigh444;
-      break;
-    default:
-      *eProfile = OMX_VIDEO_AVCProfileMax;
-      status = false;
-      break;
-    }
-
-    if(!status)
-    {
-      return status;
-    }
-
-    switch(profile_level.level)
-    {
-    case V4L2_MPEG_VIDEO_H264_LEVEL_1_0:
-      *eLevel = OMX_VIDEO_AVCLevel1;
-      break;
-    case V4L2_MPEG_VIDEO_H264_LEVEL_1B:
-      *eLevel = OMX_VIDEO_AVCLevel1b;
-      break;
-    case V4L2_MPEG_VIDEO_H264_LEVEL_1_1:
-      *eLevel = OMX_VIDEO_AVCLevel11;
-      break;
-    case V4L2_MPEG_VIDEO_H264_LEVEL_1_2:
-      *eLevel = OMX_VIDEO_AVCLevel12;
-      break;
-    case V4L2_MPEG_VIDEO_H264_LEVEL_1_3:
-      *eLevel = OMX_VIDEO_AVCLevel13;
-      break;
-    case V4L2_MPEG_VIDEO_H264_LEVEL_2_0:
-      *eLevel = OMX_VIDEO_AVCLevel2;
-      break;
-    case V4L2_MPEG_VIDEO_H264_LEVEL_2_1:
-      *eLevel = OMX_VIDEO_AVCLevel21;
-      break;
-    case V4L2_MPEG_VIDEO_H264_LEVEL_2_2:
-      *eLevel = OMX_VIDEO_AVCLevel22;
-      break;
-    case V4L2_MPEG_VIDEO_H264_LEVEL_3_0:
-      *eLevel = OMX_VIDEO_AVCLevel3;
-      break;
-    case V4L2_MPEG_VIDEO_H264_LEVEL_3_1:
-      *eLevel = OMX_VIDEO_AVCLevel31;
-      break;
-    case V4L2_MPEG_VIDEO_H264_LEVEL_3_2:
-      *eLevel = OMX_VIDEO_AVCLevel32;
-      break;
-    case V4L2_MPEG_VIDEO_H264_LEVEL_4_0:
-      *eLevel = OMX_VIDEO_AVCLevel4;
-      break;
-	case V4L2_MPEG_VIDEO_H264_LEVEL_4_1:
-      *eLevel = OMX_VIDEO_AVCLevel41;
-      break;
-	case V4L2_MPEG_VIDEO_H264_LEVEL_4_2:
-      *eLevel = OMX_VIDEO_AVCLevel42;
-      break;
-	case V4L2_MPEG_VIDEO_H264_LEVEL_5_0:
-      *eLevel = OMX_VIDEO_AVCLevel5;
-      break;
-	case V4L2_MPEG_VIDEO_H264_LEVEL_5_1:
-      *eLevel = OMX_VIDEO_AVCLevel51;
-      break;
-	default :
-      *eLevel = OMX_VIDEO_AVCLevelMax;
-      status = false;
-      break;
-    }
-  }
-  return status;
+    return status;
 }
 
 bool venc_dev::venc_validate_profile_level(OMX_U32 *eProfile, OMX_U32 *eLevel)
 {
-  OMX_U32 new_profile = 0, new_level = 0;
-  unsigned const int *profile_tbl = NULL;
-  OMX_U32 mb_per_frame, mb_per_sec;
-  bool profile_level_found = false;
+    OMX_U32 new_profile = 0, new_level = 0;
+    unsigned const int *profile_tbl = NULL;
+    OMX_U32 mb_per_frame, mb_per_sec;
+    bool profile_level_found = false;
 
-  DEBUG_PRINT_LOW("\n Init profile table for respective codec");
-  //validate the ht,width,fps,bitrate and set the appropriate profile and level
-  if(m_sVenc_cfg.codectype == V4L2_PIX_FMT_MPEG4)
-  {
-      if(*eProfile == 0)
-      {
-        if(!m_profile_set)
-        {
-          *eProfile = OMX_VIDEO_MPEG4ProfileSimple;
+    DEBUG_PRINT_LOW("\n Init profile table for respective codec");
+
+    //validate the ht,width,fps,bitrate and set the appropriate profile and level
+    if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_MPEG4) {
+        if (*eProfile == 0) {
+            if (!m_profile_set) {
+                *eProfile = OMX_VIDEO_MPEG4ProfileSimple;
+            } else {
+                switch (codec_profile.profile) {
+                    case V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE:
+                        *eProfile = OMX_VIDEO_MPEG4ProfileAdvancedSimple;
+                        break;
+                    case V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE:
+                        *eProfile = OMX_VIDEO_MPEG4ProfileSimple;
+                        break;
+                    default:
+                        DEBUG_PRINT_LOW("\n %s(): Unknown Error", __func__);
+                        return false;
+                }
+            }
         }
-        else
-        {
-          switch(codec_profile.profile)
-          {
-          case V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE:
-              *eProfile = OMX_VIDEO_MPEG4ProfileAdvancedSimple;
-            break;
-          case V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE:
-              *eProfile = OMX_VIDEO_MPEG4ProfileSimple;
-            break;
-          default:
-            DEBUG_PRINT_LOW("\n %s(): Unknown Error", __func__);
+
+        if (*eLevel == 0 && !m_level_set) {
+            *eLevel = OMX_VIDEO_MPEG4LevelMax;
+        }
+
+        if (*eProfile == OMX_VIDEO_MPEG4ProfileSimple) {
+            profile_tbl = (unsigned int const *)mpeg4_profile_level_table;
+        } else if (*eProfile == OMX_VIDEO_MPEG4ProfileAdvancedSimple) {
+            profile_tbl = (unsigned int const *)
+                (&mpeg4_profile_level_table[MPEG4_ASP_START]);
+        } else {
+            DEBUG_PRINT_LOW("\n Unsupported MPEG4 profile type %lu", *eProfile);
             return false;
-          }
         }
-      }
-
-      if(*eLevel == 0 && !m_level_set)
-      {
-        *eLevel = OMX_VIDEO_MPEG4LevelMax;
-      }
-
-      if(*eProfile == OMX_VIDEO_MPEG4ProfileSimple)
-      {
-        profile_tbl = (unsigned int const *)mpeg4_profile_level_table;
-      }
-      else if(*eProfile == OMX_VIDEO_MPEG4ProfileAdvancedSimple)
-      {
-        profile_tbl = (unsigned int const *)
-          (&mpeg4_profile_level_table[MPEG4_ASP_START]);
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("\n Unsupported MPEG4 profile type %lu", *eProfile);
-        return false;
-      }
-  }
-  else if(m_sVenc_cfg.codectype == V4L2_PIX_FMT_H264)
-  {
-      if(*eProfile == 0)
-      {
-        if(!m_profile_set)
-        {
-          *eProfile = OMX_VIDEO_AVCProfileBaseline;
+    } else if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_H264) {
+        if (*eProfile == 0) {
+            if (!m_profile_set) {
+                *eProfile = OMX_VIDEO_AVCProfileBaseline;
+            } else {
+                switch (codec_profile.profile) {
+                    case V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE:
+                        *eProfile = OMX_VIDEO_AVCProfileBaseline;
+                        break;
+                    case V4L2_MPEG_VIDEO_H264_PROFILE_MAIN:
+                        *eProfile = OMX_VIDEO_AVCProfileMain;
+                        break;
+                    case V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED:
+                        *eProfile = OMX_VIDEO_AVCProfileExtended;
+                        break;
+                    case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH:
+                        *eProfile = OMX_VIDEO_AVCProfileHigh;
+                        break;
+                    case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10:
+                        *eProfile = OMX_VIDEO_AVCProfileHigh10;
+                        break;
+                    case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422:
+                        *eProfile = OMX_VIDEO_AVCProfileHigh422;
+                        break;
+                    case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE:
+                        *eProfile = OMX_VIDEO_AVCProfileHigh444;
+                        break;
+                    default:
+                        DEBUG_PRINT_LOW("\n %s(): Unknown Error", __func__);
+                        return false;
+                }
+            }
         }
-        else
-        {
-          switch(codec_profile.profile)
-          {
-          case V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE:
-            *eProfile = OMX_VIDEO_AVCProfileBaseline;
-            break;
-          case V4L2_MPEG_VIDEO_H264_PROFILE_MAIN:
-            *eProfile = OMX_VIDEO_AVCProfileMain;
-            break;
-          case V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED:
-            *eProfile = OMX_VIDEO_AVCProfileExtended;
-            break;
-		  case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH:
-            *eProfile = OMX_VIDEO_AVCProfileHigh;
-            break;
-		  case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10:
-            *eProfile = OMX_VIDEO_AVCProfileHigh10;
-            break;
-		  case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422:
-            *eProfile = OMX_VIDEO_AVCProfileHigh422;
-            break;
-		  case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE:
-            *eProfile = OMX_VIDEO_AVCProfileHigh444;
-            break;
-		  default:
-            DEBUG_PRINT_LOW("\n %s(): Unknown Error", __func__);
+
+        if (*eLevel == 0 && !m_level_set) {
+            *eLevel = OMX_VIDEO_AVCLevelMax;
+        }
+
+        if (*eProfile == OMX_VIDEO_AVCProfileBaseline) {
+            profile_tbl = (unsigned int const *)h264_profile_level_table;
+        } else if (*eProfile == OMX_VIDEO_AVCProfileHigh) {
+            profile_tbl = (unsigned int const *)
+                (&h264_profile_level_table[H264_HP_START]);
+        } else if (*eProfile == OMX_VIDEO_AVCProfileMain) {
+            profile_tbl = (unsigned int const *)
+                (&h264_profile_level_table[H264_MP_START]);
+        } else {
+            DEBUG_PRINT_LOW("\n Unsupported AVC profile type %lu", *eProfile);
             return false;
-          }
         }
-      }
-
-      if(*eLevel == 0 && !m_level_set)
-      {
-        *eLevel = OMX_VIDEO_AVCLevelMax;
-      }
-
-      if(*eProfile == OMX_VIDEO_AVCProfileBaseline)
-      {
-        profile_tbl = (unsigned int const *)h264_profile_level_table;
-      }
-      else if(*eProfile == OMX_VIDEO_AVCProfileHigh)
-      {
-        profile_tbl = (unsigned int const *)
-          (&h264_profile_level_table[H264_HP_START]);
-      }
-      else if(*eProfile == OMX_VIDEO_AVCProfileMain)
-      {
-        profile_tbl = (unsigned int const *)
-          (&h264_profile_level_table[H264_MP_START]);
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("\n Unsupported AVC profile type %lu", *eProfile);
-        return false;
-      }
-  }
-  else if(m_sVenc_cfg.codectype == V4L2_PIX_FMT_H263)
-  {
-      if(*eProfile == 0)
-      {
-        if(!m_profile_set)
-        {
-          *eProfile = OMX_VIDEO_H263ProfileBaseline;
+    } else if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_H263) {
+        if (*eProfile == 0) {
+            if (!m_profile_set) {
+                *eProfile = OMX_VIDEO_H263ProfileBaseline;
+            } else {
+                switch (codec_profile.profile) {
+                    case VEN_PROFILE_H263_BASELINE:
+                        *eProfile = OMX_VIDEO_H263ProfileBaseline;
+                        break;
+                    default:
+                        DEBUG_PRINT_LOW("\n %s(): Unknown Error", __func__);
+                        return false;
+                }
+            }
         }
-        else
-        {
-          switch(codec_profile.profile)
-          {
-          case VEN_PROFILE_H263_BASELINE:
-            *eProfile = OMX_VIDEO_H263ProfileBaseline;
-            break;
-          default:
-            DEBUG_PRINT_LOW("\n %s(): Unknown Error", __func__);
+
+        if (*eLevel == 0 && !m_level_set) {
+            *eLevel = OMX_VIDEO_H263LevelMax;
+        }
+
+        if (*eProfile == OMX_VIDEO_H263ProfileBaseline) {
+            profile_tbl = (unsigned int const *)h263_profile_level_table;
+        } else {
+            DEBUG_PRINT_LOW("\n Unsupported H.263 profile type %lu", *eProfile);
             return false;
-          }
         }
-      }
-
-      if(*eLevel == 0 && !m_level_set)
-      {
-        *eLevel = OMX_VIDEO_H263LevelMax;
-      }
-
-      if(*eProfile == OMX_VIDEO_H263ProfileBaseline)
-      {
-        profile_tbl = (unsigned int const *)h263_profile_level_table;
-      }
-      else
-      {
-        DEBUG_PRINT_LOW("\n Unsupported H.263 profile type %lu", *eProfile);
+    } else if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_VP8) {
+        DEBUG_PRINT_HIGH("Disregarding profile/level setting for VP8\n");
+        return true;
+    } else {
+        DEBUG_PRINT_LOW("\n Invalid codec type");
         return false;
-      }
-  } else if (m_sVenc_cfg.codectype == V4L2_PIX_FMT_VP8) {
-	  DEBUG_PRINT_HIGH("Disregarding profile/level setting for VP8\n");
-	  return true;
-  }
-  else
-  {
-    DEBUG_PRINT_LOW("\n Invalid codec type");
-    return false;
-  }
-
-  mb_per_frame = ((m_sVenc_cfg.input_height + 15) >> 4)*
-                   ((m_sVenc_cfg.input_width + 15)>> 4);
-
-  if((mb_per_frame >= 3600) && (m_sVenc_cfg.codectype == (unsigned long) V4L2_PIX_FMT_MPEG4))
-  {
-    if(codec_profile.profile == (unsigned long) V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE)
-      profile_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_5;
-    if(codec_profile.profile == (unsigned long) V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE)
-      profile_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_5;
-    {
-      new_level = profile_level.level;
-      new_profile = codec_profile.profile;
-      return true;
     }
-  }
 
-  mb_per_sec = mb_per_frame * m_sVenc_cfg.fps_num / m_sVenc_cfg.fps_den;
+    mb_per_frame = ((m_sVenc_cfg.input_height + 15) >> 4)*
+        ((m_sVenc_cfg.input_width + 15)>> 4);
 
-  do{
-      if(mb_per_frame <= (unsigned int)profile_tbl[0])
-      {
-        if(mb_per_sec <= (unsigned int)profile_tbl[1])
+    if ((mb_per_frame >= 3600) && (m_sVenc_cfg.codectype == (unsigned long) V4L2_PIX_FMT_MPEG4)) {
+        if (codec_profile.profile == (unsigned long) V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE)
+            profile_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_5;
+
+        if (codec_profile.profile == (unsigned long) V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE)
+            profile_level.level = V4L2_MPEG_VIDEO_MPEG4_LEVEL_5;
+
         {
-          if(m_sVenc_cfg.targetbitrate <= (unsigned int)profile_tbl[2])
-          {
-              new_level = (int)profile_tbl[3];
-              new_profile = (int)profile_tbl[4];
-              profile_level_found = true;
-              DEBUG_PRINT_LOW("\n Appropriate profile/level found %d/%d\n", new_profile, new_level);
-              break;
-          }
+            new_level = profile_level.level;
+            new_profile = codec_profile.profile;
+            return true;
         }
-      }
-      profile_tbl = profile_tbl + 5;
-  }while(profile_tbl[0] != 0);
+    }
 
-  if (profile_level_found != true)
-  {
-    DEBUG_PRINT_LOW("\n ERROR: Unsupported profile/level\n");
-    return false;
-  }
+    mb_per_sec = mb_per_frame * m_sVenc_cfg.fps_num / m_sVenc_cfg.fps_den;
 
-  if((*eLevel == OMX_VIDEO_MPEG4LevelMax) || (*eLevel == OMX_VIDEO_AVCLevelMax)
-     || (*eLevel == OMX_VIDEO_H263LevelMax))
-  {
-    *eLevel = new_level;
-  }
-  DEBUG_PRINT_HIGH("%s: Returning with eProfile = %lu"
-      "Level = %lu", __func__, *eProfile, *eLevel);
+    do {
+        if (mb_per_frame <= (unsigned int)profile_tbl[0]) {
+            if (mb_per_sec <= (unsigned int)profile_tbl[1]) {
+                if (m_sVenc_cfg.targetbitrate <= (unsigned int)profile_tbl[2]) {
+                    new_level = (int)profile_tbl[3];
+                    new_profile = (int)profile_tbl[4];
+                    profile_level_found = true;
+                    DEBUG_PRINT_LOW("\n Appropriate profile/level found %d/%d\n", new_profile, new_level);
+                    break;
+                }
+            }
+        }
 
-  return true;
+        profile_tbl = profile_tbl + 5;
+    } while (profile_tbl[0] != 0);
+
+    if (profile_level_found != true) {
+        DEBUG_PRINT_LOW("\n ERROR: Unsupported profile/level\n");
+        return false;
+    }
+
+    if ((*eLevel == OMX_VIDEO_MPEG4LevelMax) || (*eLevel == OMX_VIDEO_AVCLevelMax)
+            || (*eLevel == OMX_VIDEO_H263LevelMax)) {
+        *eLevel = new_level;
+    }
+
+    DEBUG_PRINT_HIGH("%s: Returning with eProfile = %lu"
+            "Level = %lu", __func__, *eProfile, *eLevel);
+
+    return true;
 }
 #ifdef _ANDROID_ICS_
 bool venc_dev::venc_set_meta_mode(bool mode)
 {
-	metadatamode = 1;
-	return true;
+    metadatamode = 1;
+    return true;
 }
 #endif
 
 bool venc_dev::venc_is_video_session_supported(unsigned long width,
-                                             unsigned long height)
+        unsigned long height)
 {
-	if ((width * height < capability.min_width *  capability.min_height) ||
-	    (width * height > capability.max_width *  capability.max_height)) {
-	    DEBUG_PRINT_ERROR(
-		   "Unsupported video resolution WxH = (%d)x(%d) supported range = min (%d)x(%d) - max (%d)x(%d)\n",
-		   width, height, capability.min_width, capability.min_height,
-		   capability.max_width, capability.max_height);
-	    return false;
-	}
-	DEBUG_PRINT_LOW("\n video session supported\n");
-	return true;
+    if ((width * height < capability.min_width *  capability.min_height) ||
+            (width * height > capability.max_width *  capability.max_height)) {
+        DEBUG_PRINT_ERROR(
+                "Unsupported video resolution WxH = (%d)x(%d) supported range = min (%d)x(%d) - max (%d)x(%d)\n",
+                width, height, capability.min_width, capability.min_height,
+                capability.max_width, capability.max_height);
+        return false;
+    }
+
+    DEBUG_PRINT_LOW("\n video session supported\n");
+    return true;
 }
diff --git a/mm-video-v4l2/vidc/venc/test/camera_test.cpp b/mm-video-v4l2/vidc/venc/test/camera_test.cpp
old mode 100755
new mode 100644
index f5ae6db..7f179cb
--- a/mm-video-v4l2/vidc/venc/test/camera_test.cpp
+++ b/mm-video-v4l2/vidc/venc/test/camera_test.cpp
@@ -1,93 +1,93 @@
-/*--------------------------------------------------------------------------

-Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.

-

-Redistribution and use in source and binary forms, with or without

-modification, are permitted provided that the following conditions are met:

-    * Redistributions of source code must retain the above copyright

-      notice, this list of conditions and the following disclaimer.

-    * Redistributions in binary form must reproduce the above copyright

-      notice, this list of conditions and the following disclaimer in the

-      documentation and/or other materials provided with the distribution.

-    * Neither the name of The Linux Foundation nor

-      the names of its contributors may be used to endorse or promote

-      products derived from this software without specific prior written

-      permission.

-

-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

-IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

-NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR

-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;

-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF

-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---------------------------------------------------------------------------*/

-#include "camera_test.h"

-// #include "camera_class.h"

-

-EXTERN_C_START

-

-// static android::Camera* pCamera = NULL;

-

-int CameraTest_Initialize(int nFrameRate,

-                          int nFrameWidth,

-                          int nFrameHeight,

-                          CameraPreviewCallback pfnPreviewCallback)

-{

-   int result = 0;

-

-//    pCamera = new android::Camera;

-//    if (!pCamera)

-//       return 1;

-

-//    pCamera->init_camera(nFrameWidth,

-//                         nFrameHeight,

-//                         nFrameRate,

-//                         pfnPreviewCallback);

-

-   return result;

-}

-

-int CameraTest_Run()

-{

-   int result = 0;

-

-//    if (pCamera)

-//       pCamera->startPreview();

-//    else

-//       return 1;

-

-   return result;

-}

-

-int CameraTest_ReleaseFrame(void* pPhys, void* pVirt)

-{

-   int result = 0;

-

-//    if (pCamera)

-//       pCamera->releaseFrame(pPhys, pVirt);

-//    else

-//       return 1;

-

-   return result;

-}

-

-int CameraTest_Exit()

-{

-   int result = 0;

-

-//    if (pCamera)

-//    {

-//       pCamera->stopPreview();

-//       delete pCamera;

-//    }

-//    pCamera = NULL;

-

-   return result;

-}

-

-

-EXTERN_C_END

+/*--------------------------------------------------------------------------
+Copyright (c) 2010-2011, 2013, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of The Linux Foundation nor
+      the names of its contributors may be used to endorse or promote
+      products derived from this software without specific prior written
+      permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------*/
+#include "camera_test.h"
+// #include "camera_class.h"
+
+EXTERN_C_START
+
+// static android::Camera* pCamera = NULL;
+
+int CameraTest_Initialize(int nFrameRate,
+        int nFrameWidth,
+        int nFrameHeight,
+        CameraPreviewCallback pfnPreviewCallback)
+{
+    int result = 0;
+
+    //    pCamera = new android::Camera;
+    //    if (!pCamera)
+    //       return 1;
+
+    //    pCamera->init_camera(nFrameWidth,
+    //                         nFrameHeight,
+    //                         nFrameRate,
+    //                         pfnPreviewCallback);
+
+    return result;
+}
+
+int CameraTest_Run()
+{
+    int result = 0;
+
+    //    if (pCamera)
+    //       pCamera->startPreview();
+    //    else
+    //       return 1;
+
+    return result;
+}
+
+int CameraTest_ReleaseFrame(void* pPhys, void* pVirt)
+{
+    int result = 0;
+
+    //    if (pCamera)
+    //       pCamera->releaseFrame(pPhys, pVirt);
+    //    else
+    //       return 1;
+
+    return result;
+}
+
+int CameraTest_Exit()
+{
+    int result = 0;
+
+    //    if (pCamera)
+    //    {
+    //       pCamera->stopPreview();
+    //       delete pCamera;
+    //    }
+    //    pCamera = NULL;
+
+    return result;
+}
+
+
+EXTERN_C_END
diff --git a/mm-video-v4l2/vidc/venc/test/fb_test.c b/mm-video-v4l2/vidc/venc/test/fb_test.c
old mode 100755
new mode 100644
index 6479a3e..d7d2a12
--- a/mm-video-v4l2/vidc/venc/test/fb_test.c
+++ b/mm-video-v4l2/vidc/venc/test/fb_test.c
@@ -1,48 +1,48 @@
-/*--------------------------------------------------------------------------

-Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.

-

-Redistribution and use in source and binary forms, with or without

-modification, are permitted provided that the following conditions are met:

-    * Redistributions of source code must retain the above copyright

-      notice, this list of conditions and the following disclaimer.

-    * Redistributions in binary form must reproduce the above copyright

-      notice, this list of conditions and the following disclaimer in the

-      documentation and/or other materials provided with the distribution.

-    * Neither the name of The Linux Foundation nor

-      the names of its contributors may be used to endorse or promote

-      products derived from this software without specific prior written

-      permission.

-

-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

-IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

-NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR

-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;

-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF

-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---------------------------------------------------------------------------*/

-#include "fb_test.h"

-

-int FBTest_Initialize(int nFrameWidth,

-                      int nFrameHeight)

-{

-   return 0;

-}

-int FBTest_DisplayImage(int nPmemFd, int nOffset)

-{

-   return 0;

-}

-

-int FBTest_Exit()

-{

-   return 0;

-}

-

-int FBTest_RunTest()

-{

-   return 0;

-}

+/*--------------------------------------------------------------------------
+Copyright (c) 2010-2011, 2013, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of The Linux Foundation nor
+      the names of its contributors may be used to endorse or promote
+      products derived from this software without specific prior written
+      permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------*/
+#include "fb_test.h"
+
+int FBTest_Initialize(int nFrameWidth,
+        int nFrameHeight)
+{
+    return 0;
+}
+int FBTest_DisplayImage(int nPmemFd, int nOffset)
+{
+    return 0;
+}
+
+int FBTest_Exit()
+{
+    return 0;
+}
+
+int FBTest_RunTest()
+{
+    return 0;
+}
diff --git a/mm-video-v4l2/vidc/venc/test/queue.c b/mm-video-v4l2/vidc/venc/test/queue.c
old mode 100755
new mode 100644
index 94756b0..b0ed83f
--- a/mm-video-v4l2/vidc/venc/test/queue.c
+++ b/mm-video-v4l2/vidc/venc/test/queue.c
@@ -1,174 +1,159 @@
-/*--------------------------------------------------------------------------

-Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.

-

-Redistribution and use in source and binary forms, with or without

-modification, are permitted provided that the following conditions are met:

-    * Redistributions of source code must retain the above copyright

-      notice, this list of conditions and the following disclaimer.

-    * Redistributions in binary form must reproduce the above copyright

-      notice, this list of conditions and the following disclaimer in the

-      documentation and/or other materials provided with the distribution.

-    * Neither the name of The Linux Foundation nor

-      the names of its contributors may be used to endorse or promote

-      products derived from this software without specific prior written

-      permission.

-

-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

-IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

-NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR

-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;

-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF

-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---------------------------------------------------------------------------*/

-#include "queue.h"

-

-int check_if_queue_empty ( unsigned int queuetocheck, void* queuecontext )

-{

-	struct video_queue_context *ptr_q = NULL;

-    /*

-	 * queuetocheck - 0 command queue

-	 * queuetocheck - 1 data queue

-	 */

-	if ( queuecontext == NULL || (queuetocheck > 1 ) )

-	{

-		return 1;

-	}

-    ptr_q = (struct video_queue_context *)queuecontext;

-

-	if (queuetocheck == 0)

-	{

-      if (ptr_q->read_comq == ptr_q->write_comq)

-	  {

-		  return 1;

-	  }

-	}

-	else if (queuetocheck == 1)

-	{

-		if (ptr_q->write_dataq == ptr_q->read_dataq)

-		{

-			return 1;

-		}

-	}

-

-    return 0;

-}

-

-

-

-struct video_msgq * queue_get_cmd (void* queuecontext )

-{

-    struct video_queue_context *ptr_q = NULL;

-	struct video_msgq *pitem = NULL;

-

-    if( NULL == queuecontext )

-    {

-        printf("\n queue_get_cmd: Invalid Input parameter\n");

-        return NULL;

-    }

-

-    ptr_q = (struct video_queue_context *)queuecontext;

-

-    /* Wait on the semaphore till it is released */

-    sem_wait(&ptr_q->sem_message);

-

-    /* Lock the mutex to protect the critical section */

-    pthread_mutex_lock(&ptr_q->mutex);

-

-    if (ptr_q->read_comq != ptr_q->write_comq)

-    {

-        pitem = &ptr_q->ptr_cmdq [ptr_q->read_comq];

-        ptr_q->read_comq = (ptr_q->read_comq + 1) % \

-			                ptr_q->commandq_size;

-    }

-    else if (ptr_q->write_dataq != ptr_q->read_dataq)

-	{

-        pitem = &ptr_q->ptr_dataq [ptr_q->read_dataq];

-		ptr_q->read_dataq = (ptr_q->read_dataq + 1) % \

-			                ptr_q->dataq_size;

-	}

-

-    /* Unlock the mutex to release the critical section */

-    pthread_mutex_unlock(&ptr_q->mutex);

-

-    return pitem;

-}

-

-

-int queue_post_cmdq ( void* queuecontext,

-                     struct video_msgq *pitem

-                     )

-{

-    struct video_queue_context *ptr_q = NULL;

-

-	if (pitem == NULL || queuecontext == NULL)

-	{

-		return -1;

-	}

-    ptr_q = (struct video_queue_context *)queuecontext;

-

-    /* Lock the mutex to protect the critical section */

-    pthread_mutex_lock(&ptr_q->mutex);

-

-    if ((ptr_q->write_comq + 1) % ptr_q->commandq_size == ptr_q->read_comq)

-    {

-        printf("\n QUEUE is FULL");

-		return 0;

-    }

-    else

-    {

-        /* Store the command in the Message Queue & increment write offset */

-		memcpy ( &ptr_q->ptr_cmdq [ptr_q->write_comq],pitem, \

-				 sizeof (struct video_msgq));

-        ptr_q->write_comq = (ptr_q->write_comq + 1) % ptr_q->commandq_size;

-    }

-

-    /* Unlock the mutex to release the critical section */

-    pthread_mutex_unlock(&ptr_q->mutex);

-

-    /* Post the semaphore */

-    sem_post(&ptr_q->sem_message);

-	return 1;

-}

-

-

-int queue_post_dataq ( void *queuecontext,

-                       struct video_msgq *pitem

-                      )

-{

-	struct video_queue_context *ptr_q = NULL;

-

-	if (pitem == NULL || queuecontext == NULL)

-	{

-		return -1;

-	}

-	ptr_q = (struct video_queue_context *)queuecontext;

-

-	/* Lock the mutex to protect the critical section */

-	pthread_mutex_lock(&ptr_q->mutex);

-

-	if ((ptr_q->write_dataq + 1) % ptr_q->dataq_size == ptr_q->read_dataq)

-	{

-		printf("\n QUEUE is FULL");

-		return 0;

-	}

-	else

-	{

-		/* Store the command in the Message Queue & increment write offset */

-		memcpy ( &ptr_q->ptr_dataq [ptr_q->write_dataq],pitem, \

-				 sizeof (struct video_msgq));

-		ptr_q->write_dataq = (ptr_q->write_dataq + 1) % ptr_q->dataq_size;

-	}

-

-	/* Unlock the mutex to release the critical section */

-	pthread_mutex_unlock(&ptr_q->mutex);

-

-	/* Post the semaphore */

-	sem_post(&ptr_q->sem_message);

-	return 1;

-

-}

+/*--------------------------------------------------------------------------
+Copyright (c) 2010-2011, 2013, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of The Linux Foundation nor
+      the names of its contributors may be used to endorse or promote
+      products derived from this software without specific prior written
+      permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------*/
+#include "queue.h"
+
+int check_if_queue_empty ( unsigned int queuetocheck, void* queuecontext )
+{
+    struct video_queue_context *ptr_q = NULL;
+
+    /*
+     * queuetocheck - 0 command queue
+     * queuetocheck - 1 data queue
+     */
+    if ( queuecontext == NULL || (queuetocheck > 1 ) ) {
+        return 1;
+    }
+
+    ptr_q = (struct video_queue_context *)queuecontext;
+
+    if (queuetocheck == 0) {
+        if (ptr_q->read_comq == ptr_q->write_comq) {
+            return 1;
+        }
+    } else if (queuetocheck == 1) {
+        if (ptr_q->write_dataq == ptr_q->read_dataq) {
+            return 1;
+        }
+    }
+
+    return 0;
+}
+
+
+
+struct video_msgq * queue_get_cmd (void* queuecontext ) {
+    struct video_queue_context *ptr_q = NULL;
+    struct video_msgq *pitem = NULL;
+
+    if ( NULL == queuecontext ) {
+        printf("\n queue_get_cmd: Invalid Input parameter\n");
+        return NULL;
+    }
+
+    ptr_q = (struct video_queue_context *)queuecontext;
+
+    /* Wait on the semaphore till it is released */
+    sem_wait(&ptr_q->sem_message);
+
+    /* Lock the mutex to protect the critical section */
+    pthread_mutex_lock(&ptr_q->mutex);
+
+    if (ptr_q->read_comq != ptr_q->write_comq) {
+        pitem = &ptr_q->ptr_cmdq [ptr_q->read_comq];
+        ptr_q->read_comq = (ptr_q->read_comq + 1) % \
+                   ptr_q->commandq_size;
+    } else if (ptr_q->write_dataq != ptr_q->read_dataq) {
+        pitem = &ptr_q->ptr_dataq [ptr_q->read_dataq];
+        ptr_q->read_dataq = (ptr_q->read_dataq + 1) % \
+                    ptr_q->dataq_size;
+    }
+
+    /* Unlock the mutex to release the critical section */
+    pthread_mutex_unlock(&ptr_q->mutex);
+
+    return pitem;
+}
+
+
+int queue_post_cmdq ( void* queuecontext,
+        struct video_msgq *pitem
+        )
+{
+    struct video_queue_context *ptr_q = NULL;
+
+    if (pitem == NULL || queuecontext == NULL) {
+        return -1;
+    }
+
+    ptr_q = (struct video_queue_context *)queuecontext;
+
+    /* Lock the mutex to protect the critical section */
+    pthread_mutex_lock(&ptr_q->mutex);
+
+    if ((ptr_q->write_comq + 1) % ptr_q->commandq_size == ptr_q->read_comq) {
+        printf("\n QUEUE is FULL");
+        return 0;
+    } else {
+        /* Store the command in the Message Queue & increment write offset */
+        memcpy ( &ptr_q->ptr_cmdq [ptr_q->write_comq],pitem, \
+                sizeof (struct video_msgq));
+        ptr_q->write_comq = (ptr_q->write_comq + 1) % ptr_q->commandq_size;
+    }
+
+    /* Unlock the mutex to release the critical section */
+    pthread_mutex_unlock(&ptr_q->mutex);
+
+    /* Post the semaphore */
+    sem_post(&ptr_q->sem_message);
+    return 1;
+}
+
+
+int queue_post_dataq ( void *queuecontext,
+        struct video_msgq *pitem
+        )
+{
+    struct video_queue_context *ptr_q = NULL;
+
+    if (pitem == NULL || queuecontext == NULL) {
+        return -1;
+    }
+
+    ptr_q = (struct video_queue_context *)queuecontext;
+
+    /* Lock the mutex to protect the critical section */
+    pthread_mutex_lock(&ptr_q->mutex);
+
+    if ((ptr_q->write_dataq + 1) % ptr_q->dataq_size == ptr_q->read_dataq) {
+        printf("\n QUEUE is FULL");
+        return 0;
+    } else {
+        /* Store the command in the Message Queue & increment write offset */
+        memcpy ( &ptr_q->ptr_dataq [ptr_q->write_dataq],pitem, \
+                sizeof (struct video_msgq));
+        ptr_q->write_dataq = (ptr_q->write_dataq + 1) % ptr_q->dataq_size;
+    }
+
+    /* Unlock the mutex to release the critical section */
+    pthread_mutex_unlock(&ptr_q->mutex);
+
+    /* Post the semaphore */
+    sem_post(&ptr_q->sem_message);
+    return 1;
+
+}
diff --git a/mm-video-v4l2/vidc/venc/test/venc_test.cpp b/mm-video-v4l2/vidc/venc/test/venc_test.cpp
index 7afb5bd..b14f807 100644
--- a/mm-video-v4l2/vidc/venc/test/venc_test.cpp
+++ b/mm-video-v4l2/vidc/venc/test/venc_test.cpp
@@ -84,28 +84,28 @@
 #include <cutils/log.h>
 /// Debug message macro
 #define D(fmt, ...) ALOGE("venc_test Debug %s::%d "fmt,              \
-                         __FUNCTION__, __LINE__,                        \
-                         ## __VA_ARGS__)
+        __FUNCTION__, __LINE__,                        \
+## __VA_ARGS__)
 
 /// Error message macro
 #define E(fmt, ...) ALOGE("venc_test Error %s::%d "fmt,            \
-                         __FUNCTION__, __LINE__,                      \
-                         ## __VA_ARGS__)
+        __FUNCTION__, __LINE__,                      \
+## __VA_ARGS__)
 
 #else
-     #ifdef TEST_LOG
-       #define D(fmt, ...) fprintf(stderr, "venc_test Debug %s::%d "fmt"\n",   \
-                            __FUNCTION__, __LINE__,                     \
-                            ## __VA_ARGS__)
+#ifdef TEST_LOG
+#define D(fmt, ...) fprintf(stderr, "venc_test Debug %s::%d "fmt"\n",   \
+        __FUNCTION__, __LINE__,                     \
+## __VA_ARGS__)
 
-     /// Error message macro
-      #define E(fmt, ...) fprintf(stderr, "venc_test Error %s::%d "fmt"\n", \
-                            __FUNCTION__, __LINE__,                   \
-                            ## __VA_ARGS__)
-     #else
-      #define D(fmt, ...)
-      #define E(fmt, ...)
-         #endif
+/// Error message macro
+#define E(fmt, ...) fprintf(stderr, "venc_test Error %s::%d "fmt"\n", \
+        __FUNCTION__, __LINE__,                   \
+## __VA_ARGS__)
+#else
+#define D(fmt, ...)
+#define E(fmt, ...)
+#endif
 
 #endif
 
@@ -125,8 +125,7 @@
 
 //////////////////////////
 /* MPEG4 profile and level table*/
-static const unsigned int mpeg4_profile_level_table[][5]=
-{
+static const unsigned int mpeg4_profile_level_table[][5]= {
     /*max mb per frame, max mb per sec, max bitrate, level, profile*/
     {99,1485,64000,OMX_VIDEO_MPEG4Level0,OMX_VIDEO_MPEG4ProfileSimple},
     {99,1485,64000,OMX_VIDEO_MPEG4Level1,OMX_VIDEO_MPEG4ProfileSimple},
@@ -155,9 +154,8 @@
 };
 
 /* H264 profile and level table*/
-static const unsigned int h264_profile_level_table[][5]=
-{
-     /*max mb per frame, max mb per sec, max bitrate, level, profile*/
+static const unsigned int h264_profile_level_table[][5]= {
+    /*max mb per frame, max mb per sec, max bitrate, level, profile*/
     {99,1485,64000,OMX_VIDEO_AVCLevel1,OMX_VIDEO_AVCProfileBaseline},
     {99,1485,128000,OMX_VIDEO_AVCLevel1b,OMX_VIDEO_AVCProfileBaseline},
     {396,3000,192000,OMX_VIDEO_AVCLevel11,OMX_VIDEO_AVCProfileBaseline},
@@ -215,8 +213,7 @@
 };
 
 /* H263 profile and level table*/
-static const unsigned int h263_profile_level_table[][5]=
-{
+static const unsigned int h263_profile_level_table[][5]= {
     /*max mb per frame, max mb per sec, max bitrate, level, profile*/
     {99,1485,64000,OMX_VIDEO_H263Level10,OMX_VIDEO_H263ProfileBaseline},
     {396,5940,128000,OMX_VIDEO_H263Level20,OMX_VIDEO_H263ProfileBaseline},
@@ -233,8 +230,7 @@
     {0,0,0,0,0}
 };
 #ifdef _MSM8974_
-static const unsigned int VP8_profile_level_table[][5]=
-{
+static const unsigned int VP8_profile_level_table[][5]= {
     /*max mb per frame, max mb per sec, max bitrate, level, profile*/
     {99,1485,64000,OMX_VIDEO_H263Level10,OMX_VIDEO_H263ProfileBaseline},
     {396,5940,128000,OMX_VIDEO_H263Level20,OMX_VIDEO_H263ProfileBaseline},
@@ -256,93 +252,82 @@
 //////////////////////////
 // TYPES
 //////////////////////////
-struct ProfileType
-{
-   OMX_VIDEO_CODINGTYPE eCodec;
-   OMX_VIDEO_MPEG4LEVELTYPE eLevel;
-   OMX_VIDEO_CONTROLRATETYPE eControlRate;
-   OMX_VIDEO_AVCSLICEMODETYPE eSliceMode;
-   OMX_U32 nFrameWidth;
-   OMX_U32 nFrameHeight;
-   OMX_U32 nFrameBytes;
+struct ProfileType {
+    OMX_VIDEO_CODINGTYPE eCodec;
+    OMX_VIDEO_MPEG4LEVELTYPE eLevel;
+    OMX_VIDEO_CONTROLRATETYPE eControlRate;
+    OMX_VIDEO_AVCSLICEMODETYPE eSliceMode;
+    OMX_U32 nFrameWidth;
+    OMX_U32 nFrameHeight;
+    OMX_U32 nFrameBytes;
 #ifdef _MSM8974_
-   OMX_U32 nFramestride;
-   OMX_U32 nFrameScanlines;
-   OMX_U32 nFrameRead;
+    OMX_U32 nFramestride;
+    OMX_U32 nFrameScanlines;
+    OMX_U32 nFrameRead;
 #endif
-   OMX_U32 nBitrate;
-   float nFramerate;
-   char* cInFileName;
-   char* cOutFileName;
-   OMX_U32 nUserProfile;
+    OMX_U32 nBitrate;
+    float nFramerate;
+    char* cInFileName;
+    char* cOutFileName;
+    OMX_U32 nUserProfile;
 };
 
-enum MsgId
-{
-   MSG_ID_OUTPUT_FRAME_DONE,
-   MSG_ID_INPUT_FRAME_DONE,
-   MSG_ID_MAX
+enum MsgId {
+    MSG_ID_OUTPUT_FRAME_DONE,
+    MSG_ID_INPUT_FRAME_DONE,
+    MSG_ID_MAX
 };
-union MsgData
-{
-   struct
-   {
-      OMX_BUFFERHEADERTYPE* pBuffer;
-   } sBitstreamData;
+union MsgData {
+    struct {
+        OMX_BUFFERHEADERTYPE* pBuffer;
+    } sBitstreamData;
 };
-struct Msg
-{
-   MsgId id;
-   MsgData data;
+struct Msg {
+    MsgId id;
+    MsgData data;
 };
-struct MsgQ
-{
-   Msg q[MAX_MSG];
-   int head;
-   int size;
+struct MsgQ {
+    Msg q[MAX_MSG];
+    int head;
+    int size;
 };
 
-enum Mode
-{
-   MODE_PREVIEW,
-   MODE_DISPLAY,
-   MODE_PROFILE,
-   MODE_FILE_ENCODE,
-   MODE_LIVE_ENCODE
+enum Mode {
+    MODE_PREVIEW,
+    MODE_DISPLAY,
+    MODE_PROFILE,
+    MODE_FILE_ENCODE,
+    MODE_LIVE_ENCODE
 };
 
-enum ResyncMarkerType
-{
-   RESYNC_MARKER_NONE,     ///< No resync marker
-   RESYNC_MARKER_BYTE,     ///< BYTE Resync marker for MPEG4, H.264
-   RESYNC_MARKER_MB,       ///< MB resync marker for MPEG4, H.264
-   RESYNC_MARKER_GOB       ///< GOB resync marker for H.263
+enum ResyncMarkerType {
+    RESYNC_MARKER_NONE,     ///< No resync marker
+    RESYNC_MARKER_BYTE,     ///< BYTE Resync marker for MPEG4, H.264
+    RESYNC_MARKER_MB,       ///< MB resync marker for MPEG4, H.264
+    RESYNC_MARKER_GOB       ///< GOB resync marker for H.263
 };
 
-union DynamicConfigData
-{
-   OMX_VIDEO_CONFIG_BITRATETYPE bitrate;
-   OMX_CONFIG_FRAMERATETYPE framerate;
-   QOMX_VIDEO_INTRAPERIODTYPE intraperiod;
-   OMX_CONFIG_INTRAREFRESHVOPTYPE intravoprefresh;
-   OMX_CONFIG_ROTATIONTYPE rotation;
-   float f_framerate;
+union DynamicConfigData {
+    OMX_VIDEO_CONFIG_BITRATETYPE bitrate;
+    OMX_CONFIG_FRAMERATETYPE framerate;
+    QOMX_VIDEO_INTRAPERIODTYPE intraperiod;
+    OMX_CONFIG_INTRAREFRESHVOPTYPE intravoprefresh;
+    OMX_CONFIG_ROTATIONTYPE rotation;
+    float f_framerate;
 };
 
-struct DynamicConfig
-{
-   bool pending;
-   unsigned frame_num;
-   OMX_INDEXTYPE config_param;
-   union DynamicConfigData config_data;
+struct DynamicConfig {
+    bool pending;
+    unsigned frame_num;
+    OMX_INDEXTYPE config_param;
+    union DynamicConfigData config_data;
 };
 
 #ifdef USE_ION
-struct enc_ion
-{
-   int ion_device_fd;
-   struct ion_allocation_data alloc_data;
-   struct ion_fd_data ion_alloc_fd;
+struct enc_ion {
+    int ion_device_fd;
+    struct ion_allocation_data alloc_data;
+    struct ion_fd_data ion_alloc_fd;
 };
 #endif
 
@@ -400,2043 +385,1949 @@
 
 void* PmemMalloc(OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO* pMem, int nSize)
 {
-   void *pvirt = NULL;
-   int rc = 0;
+    void *pvirt = NULL;
+    int rc = 0;
 
-   if (!pMem)
-      return NULL;
+    if (!pMem)
+        return NULL;
 
 #ifdef USE_ION
-  ion_data.ion_device_fd = open (PMEM_DEVICE, O_RDONLY);
-  if(ion_data.ion_device_fd < 0)
-  {
-      E("\nERROR: ION Device open() Failed");
-      return NULL;
-  }
-  nSize = (nSize + 4095) & (~4095);
-  ion_data.alloc_data.len = nSize;
-  ion_data.alloc_data.heap_mask = 0x1 << ION_CP_MM_HEAP_ID;
-  ion_data.alloc_data.align = 4096;
-  ion_data.alloc_data.flags = ION_SECURE;
+    ion_data.ion_device_fd = open (PMEM_DEVICE, O_RDONLY);
 
-  rc = ioctl(ion_data.ion_device_fd,ION_IOC_ALLOC,&ion_data.alloc_data);
-  if(rc || !ion_data.alloc_data.handle) {
-         E("\n ION ALLOC memory failed rc: %d, handle: %p", rc, ion_data.alloc_data.handle);
-         ion_data.alloc_data.handle=NULL;
-         return NULL;
-  }
+    if (ion_data.ion_device_fd < 0) {
+        E("\nERROR: ION Device open() Failed");
+        return NULL;
+    }
 
-  ion_data.ion_alloc_fd.handle = ion_data.alloc_data.handle;
-  rc = ioctl(ion_data.ion_device_fd,ION_IOC_MAP,&ion_data.ion_alloc_fd);
-  if(rc) {
+    nSize = (nSize + 4095) & (~4095);
+    ion_data.alloc_data.len = nSize;
+    ion_data.alloc_data.heap_mask = 0x1 << ION_CP_MM_HEAP_ID;
+    ion_data.alloc_data.align = 4096;
+    ion_data.alloc_data.flags = ION_SECURE;
+
+    rc = ioctl(ion_data.ion_device_fd,ION_IOC_ALLOC,&ion_data.alloc_data);
+
+    if (rc || !ion_data.alloc_data.handle) {
+        E("\n ION ALLOC memory failed rc: %d, handle: %p", rc, ion_data.alloc_data.handle);
+        ion_data.alloc_data.handle=NULL;
+        return NULL;
+    }
+
+    ion_data.ion_alloc_fd.handle = ion_data.alloc_data.handle;
+    rc = ioctl(ion_data.ion_device_fd,ION_IOC_MAP,&ion_data.ion_alloc_fd);
+
+    if (rc) {
         E("\n ION MAP failed ");
         ion_data.ion_alloc_fd.fd =-1;
         ion_data.ion_alloc_fd.fd =-1;
         return NULL;
-  }
-  pMem->pmem_fd = ion_data.ion_alloc_fd.fd;
-#else
-   pMem->pmem_fd = open(PMEM_DEVICE, O_RDWR);
-   if ((int)(pMem->pmem_fd) < 0)
-      return NULL;
-   nSize = (nSize + 4095) & (~4095);
-#endif
-   pMem->offset = 0;
-   pvirt = mmap(NULL, nSize,
-                PROT_READ | PROT_WRITE,
-                MAP_SHARED, pMem->pmem_fd, pMem->offset);
-   if (pvirt == (void*) MAP_FAILED)
-   {
-      close(pMem->pmem_fd);
-      pMem->pmem_fd = -1;
-#ifdef USE_ION
-    if(ioctl(ion_data.ion_device_fd,ION_IOC_FREE,
-       &ion_data.alloc_data.handle)) {
-      E("ion recon buffer free failed");
     }
+
+    pMem->pmem_fd = ion_data.ion_alloc_fd.fd;
+#else
+    pMem->pmem_fd = open(PMEM_DEVICE, O_RDWR);
+
+    if ((int)(pMem->pmem_fd) < 0)
+        return NULL;
+
+    nSize = (nSize + 4095) & (~4095);
+#endif
+    pMem->offset = 0;
+    pvirt = mmap(NULL, nSize,
+            PROT_READ | PROT_WRITE,
+            MAP_SHARED, pMem->pmem_fd, pMem->offset);
+
+    if (pvirt == (void*) MAP_FAILED) {
+        close(pMem->pmem_fd);
+        pMem->pmem_fd = -1;
+#ifdef USE_ION
+
+        if (ioctl(ion_data.ion_device_fd,ION_IOC_FREE,
+                    &ion_data.alloc_data.handle)) {
+            E("ion recon buffer free failed");
+        }
+
+        ion_data.alloc_data.handle = NULL;
+        ion_data.ion_alloc_fd.fd =-1;
+        close(ion_data.ion_device_fd);
+        ion_data.ion_device_fd =-1;
+#endif
+        return NULL;
+    }
+
+    D("allocated pMem->fd = %lu pvirt=0x%p, pMem->phys=0x%lx, size = %d", pMem->pmem_fd,
+            pvirt, pMem->offset, nSize);
+    return pvirt;
+}
+
+int PmemFree(OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO* pMem, void* pvirt, int nSize)
+{
+    if (!pMem || !pvirt)
+        return -1;
+
+    nSize = (nSize + 4095) & (~4095);
+    munmap(pvirt, nSize);
+    close(pMem->pmem_fd);
+    pMem->pmem_fd = -1;
+#ifdef USE_ION
+
+    if (ioctl(ion_data.ion_device_fd,ION_IOC_FREE,
+                &ion_data.alloc_data.handle)) {
+        E("ion recon buffer free failed");
+    }
+
     ion_data.alloc_data.handle = NULL;
     ion_data.ion_alloc_fd.fd =-1;
     close(ion_data.ion_device_fd);
     ion_data.ion_device_fd =-1;
 #endif
-      return NULL;
-   }
-   D("allocated pMem->fd = %lu pvirt=0x%p, pMem->phys=0x%lx, size = %d", pMem->pmem_fd,
-       pvirt, pMem->offset, nSize);
-   return pvirt;
-}
-
-int PmemFree(OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO* pMem, void* pvirt, int nSize)
-{
-   if (!pMem || !pvirt)
-      return -1;
-
-   nSize = (nSize + 4095) & (~4095);
-   munmap(pvirt, nSize);
-   close(pMem->pmem_fd);
-   pMem->pmem_fd = -1;
-#ifdef USE_ION
-   if(ioctl(ion_data.ion_device_fd,ION_IOC_FREE,
-         &ion_data.alloc_data.handle)) {
-        E("ion recon buffer free failed");
-   }
-   ion_data.alloc_data.handle = NULL;
-   ion_data.ion_alloc_fd.fd =-1;
-   close(ion_data.ion_device_fd);
-   ion_data.ion_device_fd =-1;
-#endif
-   return 0;
+    return 0;
 }
 void PrintFramePackArrangement(OMX_QCOM_FRAME_PACK_ARRANGEMENT framePackingArrangement)
 {
     printf("id (%lu)\n",
-           framePackingArrangement.id);
+            framePackingArrangement.id);
     printf("cancel_flag (%lu)\n",
-           framePackingArrangement.cancel_flag);
+            framePackingArrangement.cancel_flag);
     printf("type (%lu)\n",
-           framePackingArrangement.type);
+            framePackingArrangement.type);
     printf("quincunx_sampling_flag (%lu)\n",
-           framePackingArrangement.quincunx_sampling_flag);
-   printf("content_interpretation_type (%lu)\n",
-          framePackingArrangement.content_interpretation_type);
-   printf("spatial_flipping_flag (%lu)\n",
-          framePackingArrangement.spatial_flipping_flag);
-   printf("frame0_flipped_flag (%lu)\n",
-          framePackingArrangement.frame0_flipped_flag);
-   printf("field_views_flag (%lu)\n",
-          framePackingArrangement.field_views_flag);
-   printf("current_frame_is_frame0_flag (%lu)\n",
-          framePackingArrangement.current_frame_is_frame0_flag);
-   printf("frame0_self_contained_flag (%lu)\n",
-          framePackingArrangement.frame0_self_contained_flag);
-   printf("frame1_self_contained_flag (%lu)\n",
-          framePackingArrangement.frame1_self_contained_flag);
-   printf("frame0_grid_position_x (%lu)\n",
-          framePackingArrangement.frame0_grid_position_x);
-   printf("frame0_grid_position_y (%lu)\n",
-          framePackingArrangement.frame0_grid_position_y);
-   printf("frame1_grid_position_x (%lu)\n",
-          framePackingArrangement.frame1_grid_position_x);
-   printf("frame1_grid_position_y (%lu)\n",
-          framePackingArrangement.frame1_grid_position_y);
-   printf("reserved_byte (%lu)\n",
-          framePackingArrangement.reserved_byte);
-   printf("repetition_period (%lu)\n",
-          framePackingArrangement.repetition_period);
-   printf("extension_flag (%lu)\n",
-          framePackingArrangement.extension_flag);
+            framePackingArrangement.quincunx_sampling_flag);
+    printf("content_interpretation_type (%lu)\n",
+            framePackingArrangement.content_interpretation_type);
+    printf("spatial_flipping_flag (%lu)\n",
+            framePackingArrangement.spatial_flipping_flag);
+    printf("frame0_flipped_flag (%lu)\n",
+            framePackingArrangement.frame0_flipped_flag);
+    printf("field_views_flag (%lu)\n",
+            framePackingArrangement.field_views_flag);
+    printf("current_frame_is_frame0_flag (%lu)\n",
+            framePackingArrangement.current_frame_is_frame0_flag);
+    printf("frame0_self_contained_flag (%lu)\n",
+            framePackingArrangement.frame0_self_contained_flag);
+    printf("frame1_self_contained_flag (%lu)\n",
+            framePackingArrangement.frame1_self_contained_flag);
+    printf("frame0_grid_position_x (%lu)\n",
+            framePackingArrangement.frame0_grid_position_x);
+    printf("frame0_grid_position_y (%lu)\n",
+            framePackingArrangement.frame0_grid_position_y);
+    printf("frame1_grid_position_x (%lu)\n",
+            framePackingArrangement.frame1_grid_position_x);
+    printf("frame1_grid_position_y (%lu)\n",
+            framePackingArrangement.frame1_grid_position_y);
+    printf("reserved_byte (%lu)\n",
+            framePackingArrangement.reserved_byte);
+    printf("repetition_period (%lu)\n",
+            framePackingArrangement.repetition_period);
+    printf("extension_flag (%lu)\n",
+            framePackingArrangement.extension_flag);
 }
 void SetState(OMX_STATETYPE eState)
 {
 #define GOTO_STATE(eState)                      \
-   case eState:                                 \
-      {                                         \
-         D("Going to state " # eState"...");            \
-         OMX_SendCommand(m_hHandle,                     \
-                         OMX_CommandStateSet,           \
-                         (OMX_U32) eState,              \
-                         NULL);                         \
-         while (m_eState != eState)                     \
-         {                                              \
-            sleep(1);                               \
-         }                                              \
-         D("Now in state " # eState);                   \
-         break;                                         \
-      }
+    case eState:                                 \
+                             {                                         \
+                                 D("Going to state " # eState"...");            \
+                                 OMX_SendCommand(m_hHandle,                     \
+                                         OMX_CommandStateSet,           \
+                                         (OMX_U32) eState,              \
+                                         NULL);                         \
+                                 while (m_eState != eState)                     \
+                                 {                                              \
+                                     sleep(1);                               \
+                                 }                                              \
+                                 D("Now in state " # eState);                   \
+                                 break;                                         \
+                             }
 
-   switch (eState)
-   {
-      GOTO_STATE(OMX_StateLoaded);
-      GOTO_STATE(OMX_StateIdle);
-      GOTO_STATE(OMX_StateExecuting);
-      GOTO_STATE(OMX_StateInvalid);
-      GOTO_STATE(OMX_StateWaitForResources);
-      GOTO_STATE(OMX_StatePause);
-   }
+    switch (eState) {
+        GOTO_STATE(OMX_StateLoaded);
+        GOTO_STATE(OMX_StateIdle);
+        GOTO_STATE(OMX_StateExecuting);
+        GOTO_STATE(OMX_StateInvalid);
+        GOTO_STATE(OMX_StateWaitForResources);
+        GOTO_STATE(OMX_StatePause);
+    }
 }
 ////////////////////////////////////////////////////////////////////////////////
 OMX_ERRORTYPE ConfigureEncoder()
 {
-   OMX_ERRORTYPE result = OMX_ErrorNone;
-   unsigned const int *profile_tbl = (unsigned int const *)mpeg4_profile_level_table;
-   OMX_U32 mb_per_sec, mb_per_frame;
-   bool profile_level_found = false;
-   OMX_U32 eProfile,eLevel;
+    OMX_ERRORTYPE result = OMX_ErrorNone;
+    unsigned const int *profile_tbl = (unsigned int const *)mpeg4_profile_level_table;
+    OMX_U32 mb_per_sec, mb_per_frame;
+    bool profile_level_found = false;
+    OMX_U32 eProfile,eLevel;
 
-   OMX_PARAM_PORTDEFINITIONTYPE portdef; // OMX_IndexParamPortDefinition
+    OMX_PARAM_PORTDEFINITIONTYPE portdef; // OMX_IndexParamPortDefinition
 #ifdef QCOM_EXT
-      OMX_QCOM_PARAM_PORTDEFINITIONTYPE qPortDefnType;
+    OMX_QCOM_PARAM_PORTDEFINITIONTYPE qPortDefnType;
 #endif
-   portdef.nPortIndex = (OMX_U32) 0; // input
-   result = OMX_GetParameter(m_hHandle,
-                             OMX_IndexParamPortDefinition,
-                             &portdef);
-   E("\n OMX_IndexParamPortDefinition Get Paramter on input port");
-   CHK(result);
-   portdef.format.video.nFrameWidth = m_sProfile.nFrameWidth;
-   portdef.format.video.nFrameHeight = m_sProfile.nFrameHeight;
+    portdef.nPortIndex = (OMX_U32) 0; // input
+    result = OMX_GetParameter(m_hHandle,
+            OMX_IndexParamPortDefinition,
+            &portdef);
+    E("\n OMX_IndexParamPortDefinition Get Paramter on input port");
+    CHK(result);
+    portdef.format.video.nFrameWidth = m_sProfile.nFrameWidth;
+    portdef.format.video.nFrameHeight = m_sProfile.nFrameHeight;
 
-   E ("\n Height %lu width %lu bit rate %lu",portdef.format.video.nFrameHeight
-      ,portdef.format.video.nFrameWidth,portdef.format.video.nBitrate);
-   result = OMX_SetParameter(m_hHandle,
-                             OMX_IndexParamPortDefinition,
-                             &portdef);
-   E("\n OMX_IndexParamPortDefinition Set Paramter on input port");
-   CHK(result);
-   // once more to get proper buffer size
-   result = OMX_GetParameter(m_hHandle,
-                             OMX_IndexParamPortDefinition,
-                             &portdef);
-   E("\n OMX_IndexParamPortDefinition Get Paramter on input port, 2nd pass");
-   CHK(result);
-   // update size accordingly
-   m_sProfile.nFrameBytes = portdef.nBufferSize;
-   portdef.nPortIndex = (OMX_U32) 1; // output
-   result = OMX_GetParameter(m_hHandle,
-                             OMX_IndexParamPortDefinition,
-                             &portdef);
-   E("\n OMX_IndexParamPortDefinition Get Paramter on output port");
-   CHK(result);
-   portdef.format.video.nFrameWidth = m_sProfile.nFrameWidth;
-   portdef.format.video.nFrameHeight = m_sProfile.nFrameHeight;
-   portdef.format.video.nBitrate = m_sProfile.nBitrate;
-   FractionToQ16(portdef.format.video.xFramerate,(int) (m_sProfile.nFramerate * 2),2);
-   result = OMX_SetParameter(m_hHandle,
-                             OMX_IndexParamPortDefinition,
-                             &portdef);
-   E("\n OMX_IndexParamPortDefinition Set Paramter on output port");
-   CHK(result);
+    E ("\n Height %lu width %lu bit rate %lu",portdef.format.video.nFrameHeight
+            ,portdef.format.video.nFrameWidth,portdef.format.video.nBitrate);
+    result = OMX_SetParameter(m_hHandle,
+            OMX_IndexParamPortDefinition,
+            &portdef);
+    E("\n OMX_IndexParamPortDefinition Set Paramter on input port");
+    CHK(result);
+    // once more to get proper buffer size
+    result = OMX_GetParameter(m_hHandle,
+            OMX_IndexParamPortDefinition,
+            &portdef);
+    E("\n OMX_IndexParamPortDefinition Get Paramter on input port, 2nd pass");
+    CHK(result);
+    // update size accordingly
+    m_sProfile.nFrameBytes = portdef.nBufferSize;
+    portdef.nPortIndex = (OMX_U32) 1; // output
+    result = OMX_GetParameter(m_hHandle,
+            OMX_IndexParamPortDefinition,
+            &portdef);
+    E("\n OMX_IndexParamPortDefinition Get Paramter on output port");
+    CHK(result);
+    portdef.format.video.nFrameWidth = m_sProfile.nFrameWidth;
+    portdef.format.video.nFrameHeight = m_sProfile.nFrameHeight;
+    portdef.format.video.nBitrate = m_sProfile.nBitrate;
+    FractionToQ16(portdef.format.video.xFramerate,(int) (m_sProfile.nFramerate * 2),2);
+    result = OMX_SetParameter(m_hHandle,
+            OMX_IndexParamPortDefinition,
+            &portdef);
+    E("\n OMX_IndexParamPortDefinition Set Paramter on output port");
+    CHK(result);
 
 #ifdef QCOM_EXT
 
-qPortDefnType.nPortIndex = PORT_INDEX_IN;
-qPortDefnType.nMemRegion = OMX_QCOM_MemRegionEBI1;
-qPortDefnType.nSize = sizeof(OMX_QCOM_PARAM_PORTDEFINITIONTYPE);
+    qPortDefnType.nPortIndex = PORT_INDEX_IN;
+    qPortDefnType.nMemRegion = OMX_QCOM_MemRegionEBI1;
+    qPortDefnType.nSize = sizeof(OMX_QCOM_PARAM_PORTDEFINITIONTYPE);
 
-result = OMX_SetParameter(m_hHandle,
-                             (OMX_INDEXTYPE)OMX_QcomIndexPortDefn,
-                             &qPortDefnType);
+    result = OMX_SetParameter(m_hHandle,
+            (OMX_INDEXTYPE)OMX_QcomIndexPortDefn,
+            &qPortDefnType);
 
 #endif
-   if (!m_sProfile.nUserProfile) // profile not set by user, go ahead with table calculation
-   {
-   //validate the ht,width,fps,bitrate and set the appropriate profile and level
-   if(m_sProfile.eCodec == OMX_VIDEO_CodingMPEG4)
-   {
-     profile_tbl = (unsigned int const *)mpeg4_profile_level_table;
-   }
-   else if(m_sProfile.eCodec == OMX_VIDEO_CodingAVC)
-   {
-     profile_tbl = (unsigned int const *)h264_profile_level_table;
-   }
-   else if(m_sProfile.eCodec == OMX_VIDEO_CodingH263)
-   {
-     profile_tbl = (unsigned int const *)h263_profile_level_table;
-   }
+
+    if (!m_sProfile.nUserProfile) { // profile not set by user, go ahead with table calculation
+        //validate the ht,width,fps,bitrate and set the appropriate profile and level
+        if (m_sProfile.eCodec == OMX_VIDEO_CodingMPEG4) {
+            profile_tbl = (unsigned int const *)mpeg4_profile_level_table;
+        } else if (m_sProfile.eCodec == OMX_VIDEO_CodingAVC) {
+            profile_tbl = (unsigned int const *)h264_profile_level_table;
+        } else if (m_sProfile.eCodec == OMX_VIDEO_CodingH263) {
+            profile_tbl = (unsigned int const *)h263_profile_level_table;
+        }
+
 #ifdef _MSM8974_
-   else if(m_sProfile.eCodec == OMX_VIDEO_CodingVPX)
-   {
-     profile_tbl = (unsigned int const *)VP8_profile_level_table;
-   }
+        else if (m_sProfile.eCodec == OMX_VIDEO_CodingVPX) {
+            profile_tbl = (unsigned int const *)VP8_profile_level_table;
+        }
+
 #endif
-   mb_per_frame = ((m_sProfile.nFrameHeight+15)>>4)*
-                ((m_sProfile.nFrameWidth+15)>>4);
+        mb_per_frame = ((m_sProfile.nFrameHeight+15)>>4)*
+            ((m_sProfile.nFrameWidth+15)>>4);
 
-   mb_per_sec = mb_per_frame*(m_sProfile.nFramerate);
+        mb_per_sec = mb_per_frame*(m_sProfile.nFramerate);
 
-   do{
-      if(mb_per_frame <= (unsigned int)profile_tbl[0])
-      {
-          if(mb_per_sec <= (unsigned int)profile_tbl[1])
-          {
-            if(m_sProfile.nBitrate <= (unsigned int)profile_tbl[2])
-            {
-              eLevel = (int)profile_tbl[3];
-              eProfile = (int)profile_tbl[4];
-              E("\n profile/level found: %lu/%lu\n",eProfile, eLevel);
-              profile_level_found = true;
-              break;
+        do {
+            if (mb_per_frame <= (unsigned int)profile_tbl[0]) {
+                if (mb_per_sec <= (unsigned int)profile_tbl[1]) {
+                    if (m_sProfile.nBitrate <= (unsigned int)profile_tbl[2]) {
+                        eLevel = (int)profile_tbl[3];
+                        eProfile = (int)profile_tbl[4];
+                        E("\n profile/level found: %lu/%lu\n",eProfile, eLevel);
+                        profile_level_found = true;
+                        break;
+                    }
+                }
             }
-          }
-      }
-      profile_tbl = profile_tbl + 5;
-   }while(profile_tbl[0] != 0);
 
-   if ( profile_level_found != true )
-   {
-     E("\n Error: Unsupported profile/level\n");
-     return OMX_ErrorNone;
-   }
-   }
-   else // Profile set by user!
-   {
-      eProfile = m_sProfile.nUserProfile;
-      eLevel = 0;
-   }
-   if (m_sProfile.eCodec == OMX_VIDEO_CodingH263)
-   {
-      D("Configuring H263...");
+            profile_tbl = profile_tbl + 5;
+        } while (profile_tbl[0] != 0);
 
-      OMX_VIDEO_PARAM_H263TYPE h263;
-      result = OMX_GetParameter(m_hHandle,
-                                OMX_IndexParamVideoH263,
-                                &h263);
-      CHK(result);
-      h263.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-      h263.nPFrames = m_sProfile.nFramerate * 2 - 1; // intra period
-      h263.nBFrames = 0;
-      h263.eProfile = (OMX_VIDEO_H263PROFILETYPE)eProfile;
-      h263.eLevel = (OMX_VIDEO_H263LEVELTYPE)eLevel;
-      h263.bPLUSPTYPEAllowed = OMX_FALSE;
-      h263.nAllowedPictureTypes = 2;
-      h263.bForceRoundingTypeToZero = OMX_TRUE;
-      h263.nPictureHeaderRepetition = 0;
-      h263.nGOBHeaderInterval = 1;
-      result = OMX_SetParameter(m_hHandle,
-                                OMX_IndexParamVideoH263,
-                                &h263);
-   }
-   else
-   {
-      D("Configuring MP4/H264...");
+        if ( profile_level_found != true ) {
+            E("\n Error: Unsupported profile/level\n");
+            return OMX_ErrorNone;
+        }
+    } else { // Profile set by user!
+        eProfile = m_sProfile.nUserProfile;
+        eLevel = 0;
+    }
 
-      OMX_VIDEO_PARAM_PROFILELEVELTYPE profileLevel; // OMX_IndexParamVideoProfileLevelCurrent
-      profileLevel.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-      profileLevel.eProfile = eProfile;
-      profileLevel.eLevel =  eLevel;
-      result = OMX_SetParameter(m_hHandle,
-                                OMX_IndexParamVideoProfileLevelCurrent,
-                                &profileLevel);
-      E("\n OMX_IndexParamVideoProfileLevelCurrent Set Paramter port");
-      CHK(result);
-      //profileLevel.eLevel = (OMX_U32) m_sProfile.eLevel;
-      result = OMX_GetParameter(m_hHandle,
-                                OMX_IndexParamVideoProfileLevelCurrent,
-                                &profileLevel);
-      E("\n OMX_IndexParamVideoProfileLevelCurrent Get Paramter port");
-      D ("\n Profile = %lu level = %lu",profileLevel.eProfile,profileLevel.eLevel);
-      CHK(result);
+    if (m_sProfile.eCodec == OMX_VIDEO_CodingH263) {
+        D("Configuring H263...");
 
-        if (m_sProfile.eCodec == OMX_VIDEO_CodingMPEG4)
-        {
-        OMX_VIDEO_PARAM_MPEG4TYPE mp4; // OMX_IndexParamVideoMpeg4
-       result = OMX_GetParameter(m_hHandle,
-                                 OMX_IndexParamVideoMpeg4,
-                                 &mp4);
-       CHK(result);
-       mp4.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-       mp4.nTimeIncRes = 1000;
-       result = OMX_SetParameter(m_hHandle,
-                                 OMX_IndexParamVideoMpeg4,
-                                 &mp4);
-       CHK(result);
-         }
-   }
-   if (m_sProfile.eCodec == OMX_VIDEO_CodingAVC)
-   {
+        OMX_VIDEO_PARAM_H263TYPE h263;
+        result = OMX_GetParameter(m_hHandle,
+                OMX_IndexParamVideoH263,
+                &h263);
+        CHK(result);
+        h263.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+        h263.nPFrames = m_sProfile.nFramerate * 2 - 1; // intra period
+        h263.nBFrames = 0;
+        h263.eProfile = (OMX_VIDEO_H263PROFILETYPE)eProfile;
+        h263.eLevel = (OMX_VIDEO_H263LEVELTYPE)eLevel;
+        h263.bPLUSPTYPEAllowed = OMX_FALSE;
+        h263.nAllowedPictureTypes = 2;
+        h263.bForceRoundingTypeToZero = OMX_TRUE;
+        h263.nPictureHeaderRepetition = 0;
+        h263.nGOBHeaderInterval = 1;
+        result = OMX_SetParameter(m_hHandle,
+                OMX_IndexParamVideoH263,
+                &h263);
+    } else {
+        D("Configuring MP4/H264...");
+
+        OMX_VIDEO_PARAM_PROFILELEVELTYPE profileLevel; // OMX_IndexParamVideoProfileLevelCurrent
+        profileLevel.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+        profileLevel.eProfile = eProfile;
+        profileLevel.eLevel =  eLevel;
+        result = OMX_SetParameter(m_hHandle,
+                OMX_IndexParamVideoProfileLevelCurrent,
+                &profileLevel);
+        E("\n OMX_IndexParamVideoProfileLevelCurrent Set Paramter port");
+        CHK(result);
+        //profileLevel.eLevel = (OMX_U32) m_sProfile.eLevel;
+        result = OMX_GetParameter(m_hHandle,
+                OMX_IndexParamVideoProfileLevelCurrent,
+                &profileLevel);
+        E("\n OMX_IndexParamVideoProfileLevelCurrent Get Paramter port");
+        D ("\n Profile = %lu level = %lu",profileLevel.eProfile,profileLevel.eLevel);
+        CHK(result);
+
+        if (m_sProfile.eCodec == OMX_VIDEO_CodingMPEG4) {
+            OMX_VIDEO_PARAM_MPEG4TYPE mp4; // OMX_IndexParamVideoMpeg4
+            result = OMX_GetParameter(m_hHandle,
+                    OMX_IndexParamVideoMpeg4,
+                    &mp4);
+            CHK(result);
+            mp4.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+            mp4.nTimeIncRes = 1000;
+            result = OMX_SetParameter(m_hHandle,
+                    OMX_IndexParamVideoMpeg4,
+                    &mp4);
+            CHK(result);
+        }
+    }
+
+    if (m_sProfile.eCodec == OMX_VIDEO_CodingAVC) {
 #if 1
-/////////////C A B A C ///A N D/////D E B L O C K I N G /////////////////
+        /////////////C A B A C ///A N D/////D E B L O C K I N G /////////////////
 
-      OMX_VIDEO_PARAM_AVCTYPE avcdata;
-      avcdata.nPortIndex = (OMX_U32)PORT_INDEX_OUT;
-      result = OMX_GetParameter(m_hHandle,
-                                OMX_IndexParamVideoAvc,
-                                &avcdata);
-      CHK(result);
-// TEST VALUES (CHANGE FOR DIFF CONFIG's)
-    avcdata.eLoopFilterMode = OMX_VIDEO_AVCLoopFilterEnable;
-//      avcdata.eLoopFilterMode = OMX_VIDEO_AVCLoopFilterDisable;
-//    avcdata.eLoopFilterMode = OMX_VIDEO_AVCLoopFilterDisableSliceBoundary;
-   avcdata.bEntropyCodingCABAC = OMX_FALSE;
-//   avcdata.bEntropyCodingCABAC = OMX_TRUE;
-   avcdata.nCabacInitIdc = 1;
-///////////////////////////////////////////////
+        OMX_VIDEO_PARAM_AVCTYPE avcdata;
+        avcdata.nPortIndex = (OMX_U32)PORT_INDEX_OUT;
+        result = OMX_GetParameter(m_hHandle,
+                OMX_IndexParamVideoAvc,
+                &avcdata);
+        CHK(result);
+        // TEST VALUES (CHANGE FOR DIFF CONFIG's)
+        avcdata.eLoopFilterMode = OMX_VIDEO_AVCLoopFilterEnable;
+        //      avcdata.eLoopFilterMode = OMX_VIDEO_AVCLoopFilterDisable;
+        //    avcdata.eLoopFilterMode = OMX_VIDEO_AVCLoopFilterDisableSliceBoundary;
+        avcdata.bEntropyCodingCABAC = OMX_FALSE;
+        //   avcdata.bEntropyCodingCABAC = OMX_TRUE;
+        avcdata.nCabacInitIdc = 1;
+        ///////////////////////////////////////////////
 
-      result = OMX_SetParameter(m_hHandle,
-                                OMX_IndexParamVideoAvc,
-                                &avcdata);
-      CHK(result);
+        result = OMX_SetParameter(m_hHandle,
+                OMX_IndexParamVideoAvc,
+                &avcdata);
+        CHK(result);
 
-/////////////C A B A C ///A N D/////D E B L O C K I N G /////////////////
+        /////////////C A B A C ///A N D/////D E B L O C K I N G /////////////////
 #endif
-   }
+    }
 
-   OMX_VIDEO_PARAM_BITRATETYPE bitrate; // OMX_IndexParamVideoBitrate
-   bitrate.nPortIndex = (OMX_U32)PORT_INDEX_OUT;
-   result = OMX_GetParameter(m_hHandle,
-                             OMX_IndexParamVideoBitrate,
-                             &bitrate);
-   E("\n OMX_IndexParamVideoBitrate Get Paramter port");
-   CHK(result);
-   bitrate.eControlRate = m_sProfile.eControlRate;
-   bitrate.nTargetBitrate = m_sProfile.nBitrate;
-   result = OMX_SetParameter(m_hHandle,
-                             OMX_IndexParamVideoBitrate,
-                             &bitrate);
-   E("\n OMX_IndexParamVideoBitrate Set Paramter port");
-   CHK(result);
+    OMX_VIDEO_PARAM_BITRATETYPE bitrate; // OMX_IndexParamVideoBitrate
+    bitrate.nPortIndex = (OMX_U32)PORT_INDEX_OUT;
+    result = OMX_GetParameter(m_hHandle,
+            OMX_IndexParamVideoBitrate,
+            &bitrate);
+    E("\n OMX_IndexParamVideoBitrate Get Paramter port");
+    CHK(result);
+    bitrate.eControlRate = m_sProfile.eControlRate;
+    bitrate.nTargetBitrate = m_sProfile.nBitrate;
+    result = OMX_SetParameter(m_hHandle,
+            OMX_IndexParamVideoBitrate,
+            &bitrate);
+    E("\n OMX_IndexParamVideoBitrate Set Paramter port");
+    CHK(result);
 
-   OMX_VIDEO_PARAM_PORTFORMATTYPE framerate; // OMX_IndexParamVidePortFormat
-   framerate.nPortIndex = 0;
-   result = OMX_GetParameter(m_hHandle,
-                             OMX_IndexParamVideoPortFormat,
-                             &framerate);
-   E("\n OMX_IndexParamVideoPortFormat Get Paramter port");
-   CHK(result);
-   FractionToQ16(framerate.xFramerate,(int) (m_sProfile.nFramerate * 2),2);
-   result = OMX_SetParameter(m_hHandle,
-                             OMX_IndexParamVideoPortFormat,
-                             &framerate);
-   E("\n OMX_IndexParamVideoPortFormat Set Paramter port");
-   CHK(result);
+    OMX_VIDEO_PARAM_PORTFORMATTYPE framerate; // OMX_IndexParamVidePortFormat
+    framerate.nPortIndex = 0;
+    result = OMX_GetParameter(m_hHandle,
+            OMX_IndexParamVideoPortFormat,
+            &framerate);
+    E("\n OMX_IndexParamVideoPortFormat Get Paramter port");
+    CHK(result);
+    FractionToQ16(framerate.xFramerate,(int) (m_sProfile.nFramerate * 2),2);
+    result = OMX_SetParameter(m_hHandle,
+            OMX_IndexParamVideoPortFormat,
+            &framerate);
+    E("\n OMX_IndexParamVideoPortFormat Set Paramter port");
+    CHK(result);
 
 #if 1
-///////////////////I N T R A P E R I O D ///////////////////
+    ///////////////////I N T R A P E R I O D ///////////////////
 
-      QOMX_VIDEO_INTRAPERIODTYPE intra;
+    QOMX_VIDEO_INTRAPERIODTYPE intra;
 
-      intra.nPortIndex = (OMX_U32) PORT_INDEX_OUT; // output
-      result = OMX_GetConfig(m_hHandle,
-                             (OMX_INDEXTYPE) QOMX_IndexConfigVideoIntraperiod,
-                             (OMX_PTR) &intra);
+    intra.nPortIndex = (OMX_U32) PORT_INDEX_OUT; // output
+    result = OMX_GetConfig(m_hHandle,
+            (OMX_INDEXTYPE) QOMX_IndexConfigVideoIntraperiod,
+            (OMX_PTR) &intra);
 
-      if (result == OMX_ErrorNone)
-      {
-         intra.nPFrames = (OMX_U32) (2 * m_sProfile.nFramerate - 1); //setting I
-                                                                     //frame interval to
-                                                                     //2 x framerate
-         intra.nIDRPeriod = 1; //every I frame is an IDR
-         intra.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
-         result = OMX_SetConfig(m_hHandle,
-                                (OMX_INDEXTYPE) QOMX_IndexConfigVideoIntraperiod,
-                                (OMX_PTR) &intra);
-      }
-      else
-      {
-         E("failed to get state", 0, 0, 0);
-      }
+    if (result == OMX_ErrorNone) {
+        intra.nPFrames = (OMX_U32) (2 * m_sProfile.nFramerate - 1); //setting I
+        //frame interval to
+        //2 x framerate
+        intra.nIDRPeriod = 1; //every I frame is an IDR
+        intra.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
+        result = OMX_SetConfig(m_hHandle,
+                (OMX_INDEXTYPE) QOMX_IndexConfigVideoIntraperiod,
+                (OMX_PTR) &intra);
+    } else {
+        E("failed to get state", 0, 0, 0);
+    }
 
 
-///////////////////I N T R A P E R I O D ///////////////////
+    ///////////////////I N T R A P E R I O D ///////////////////
 #endif
 
 #if 1
-///////////////////E R R O R C O R R E C T I O N ///////////////////
+    ///////////////////E R R O R C O R R E C T I O N ///////////////////
 
-      ResyncMarkerType eResyncMarkerType = RESYNC_MARKER_NONE;
-      unsigned long int nResyncMarkerSpacing = 0;
-      OMX_BOOL enableHEC = OMX_FALSE;
+    ResyncMarkerType eResyncMarkerType = RESYNC_MARKER_NONE;
+    unsigned long int nResyncMarkerSpacing = 0;
+    OMX_BOOL enableHEC = OMX_FALSE;
 
-//For Testing ONLY
-   if (m_sProfile.eCodec == OMX_VIDEO_CodingMPEG4)
-   {
-// MPEG4
-//      eResyncMarkerType = RESYNC_MARKER_BYTE;
-//      nResyncMarkerSpacing = 1920;
-      eResyncMarkerType = RESYNC_MARKER_MB;
-      nResyncMarkerSpacing = 50;
-      enableHEC = OMX_TRUE;
-   }
-   else if (m_sProfile.eCodec == OMX_VIDEO_CodingH263)
-   {
-//H263
-      //eResyncMarkerType = RESYNC_MARKER_GOB;
-	  eResyncMarkerType = RESYNC_MARKER_NONE;
-      nResyncMarkerSpacing = 0;
-   }
-   else if (m_sProfile.eCodec == OMX_VIDEO_CodingAVC)
-   {
-//H264
-//      eResyncMarkerType = RESYNC_MARKER_BYTE;
-//      nResyncMarkerSpacing = 1920;
+    //For Testing ONLY
+    if (m_sProfile.eCodec == OMX_VIDEO_CodingMPEG4) {
+        // MPEG4
+        //      eResyncMarkerType = RESYNC_MARKER_BYTE;
+        //      nResyncMarkerSpacing = 1920;
+        eResyncMarkerType = RESYNC_MARKER_MB;
+        nResyncMarkerSpacing = 50;
+        enableHEC = OMX_TRUE;
+    } else if (m_sProfile.eCodec == OMX_VIDEO_CodingH263) {
+        //H263
+        //eResyncMarkerType = RESYNC_MARKER_GOB;
+        eResyncMarkerType = RESYNC_MARKER_NONE;
+        nResyncMarkerSpacing = 0;
+    } else if (m_sProfile.eCodec == OMX_VIDEO_CodingAVC) {
+        //H264
+        //      eResyncMarkerType = RESYNC_MARKER_BYTE;
+        //      nResyncMarkerSpacing = 1920;
 
-      //nResyncMarkerSpacing sets the slice size in venc_set_multislice_cfg
-      //
-      //As of 9/24/10, it is known that the firmware has a bitstream
-      //corruption issue when RateControl and multislice are enabled for 720P
-      //So, disabling multislice for 720P when ratecontrol is enabled until
-      //the firmware issue is resolved.
+        //nResyncMarkerSpacing sets the slice size in venc_set_multislice_cfg
+        //
+        //As of 9/24/10, it is known that the firmware has a bitstream
+        //corruption issue when RateControl and multislice are enabled for 720P
+        //So, disabling multislice for 720P when ratecontrol is enabled until
+        //the firmware issue is resolved.
 
-      if ( ( (m_sProfile.nFrameWidth == 1280) && (m_sProfile.nFrameHeight = 720) ) &&
-           (m_sProfile.eControlRate  != OMX_Video_ControlRateDisable) )
-      {
-         eResyncMarkerType = RESYNC_MARKER_NONE;
-         nResyncMarkerSpacing = 0;
-      }
-      else
-      {
-         eResyncMarkerType = RESYNC_MARKER_NONE;
-          nResyncMarkerSpacing = 0;
-      }
-   }
+        if ( ( (m_sProfile.nFrameWidth == 1280) && (m_sProfile.nFrameHeight = 720) ) &&
+                (m_sProfile.eControlRate  != OMX_Video_ControlRateDisable) ) {
+            eResyncMarkerType = RESYNC_MARKER_NONE;
+            nResyncMarkerSpacing = 0;
+        } else {
+            eResyncMarkerType = RESYNC_MARKER_NONE;
+            nResyncMarkerSpacing = 0;
+        }
+    }
 
-   OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE errorCorrection; //OMX_IndexParamVideoErrorCorrection
-   errorCorrection.nPortIndex = (OMX_U32) PORT_INDEX_OUT; // output
-   result = OMX_GetParameter(m_hHandle,
-                             (OMX_INDEXTYPE) OMX_IndexParamVideoErrorCorrection,
-                             (OMX_PTR) &errorCorrection);
+    OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE errorCorrection; //OMX_IndexParamVideoErrorCorrection
+    errorCorrection.nPortIndex = (OMX_U32) PORT_INDEX_OUT; // output
+    result = OMX_GetParameter(m_hHandle,
+            (OMX_INDEXTYPE) OMX_IndexParamVideoErrorCorrection,
+            (OMX_PTR) &errorCorrection);
 
-   errorCorrection.bEnableRVLC = OMX_FALSE;
-   errorCorrection.bEnableDataPartitioning = OMX_FALSE;
+    errorCorrection.bEnableRVLC = OMX_FALSE;
+    errorCorrection.bEnableDataPartitioning = OMX_FALSE;
 
-      if ((eResyncMarkerType == RESYNC_MARKER_BYTE) &&
-         (m_sProfile.eCodec == OMX_VIDEO_CodingMPEG4)){
-            errorCorrection.bEnableResync = OMX_TRUE;
-            errorCorrection.nResynchMarkerSpacing = nResyncMarkerSpacing;
-            errorCorrection.bEnableHEC = enableHEC;
-            }
-      else if ((eResyncMarkerType == RESYNC_MARKER_BYTE) &&
-               (m_sProfile.eCodec == OMX_VIDEO_CodingAVC)){
-         errorCorrection.bEnableResync = OMX_TRUE;
-         errorCorrection.nResynchMarkerSpacing = nResyncMarkerSpacing;
-         }
-      else if ((eResyncMarkerType == RESYNC_MARKER_GOB) &&
-               (m_sProfile.eCodec == OMX_VIDEO_CodingH263)){
-         errorCorrection.bEnableResync = OMX_FALSE;
-         errorCorrection.nResynchMarkerSpacing = nResyncMarkerSpacing;
-         errorCorrection.bEnableDataPartitioning = OMX_TRUE;
-         }
+    if ((eResyncMarkerType == RESYNC_MARKER_BYTE) &&
+            (m_sProfile.eCodec == OMX_VIDEO_CodingMPEG4)) {
+        errorCorrection.bEnableResync = OMX_TRUE;
+        errorCorrection.nResynchMarkerSpacing = nResyncMarkerSpacing;
+        errorCorrection.bEnableHEC = enableHEC;
+    } else if ((eResyncMarkerType == RESYNC_MARKER_BYTE) &&
+            (m_sProfile.eCodec == OMX_VIDEO_CodingAVC)) {
+        errorCorrection.bEnableResync = OMX_TRUE;
+        errorCorrection.nResynchMarkerSpacing = nResyncMarkerSpacing;
+    } else if ((eResyncMarkerType == RESYNC_MARKER_GOB) &&
+            (m_sProfile.eCodec == OMX_VIDEO_CodingH263)) {
+        errorCorrection.bEnableResync = OMX_FALSE;
+        errorCorrection.nResynchMarkerSpacing = nResyncMarkerSpacing;
+        errorCorrection.bEnableDataPartitioning = OMX_TRUE;
+    }
 
-      result = OMX_SetParameter(m_hHandle,
-                            (OMX_INDEXTYPE) OMX_IndexParamVideoErrorCorrection,
-                            (OMX_PTR) &errorCorrection);
-   CHK(result);
+    result = OMX_SetParameter(m_hHandle,
+            (OMX_INDEXTYPE) OMX_IndexParamVideoErrorCorrection,
+            (OMX_PTR) &errorCorrection);
+    CHK(result);
 
-      if (eResyncMarkerType == RESYNC_MARKER_MB){
-         if (m_sProfile.eCodec == OMX_VIDEO_CodingAVC){
+    if (eResyncMarkerType == RESYNC_MARKER_MB) {
+        if (m_sProfile.eCodec == OMX_VIDEO_CodingAVC) {
             OMX_VIDEO_PARAM_AVCTYPE avcdata;
             avcdata.nPortIndex = (OMX_U32) PORT_INDEX_OUT; // output
             result = OMX_GetParameter(m_hHandle,
-                                      OMX_IndexParamVideoAvc,
-                                      (OMX_PTR) &avcdata);
+                    OMX_IndexParamVideoAvc,
+                    (OMX_PTR) &avcdata);
             CHK(result);
-            if (result == OMX_ErrorNone)
-            {
-               avcdata.nSliceHeaderSpacing = nResyncMarkerSpacing;
-               result = OMX_SetParameter(m_hHandle,
-                                         OMX_IndexParamVideoAvc,
-                                         (OMX_PTR) &avcdata);
-               CHK(result);
+
+            if (result == OMX_ErrorNone) {
+                avcdata.nSliceHeaderSpacing = nResyncMarkerSpacing;
+                result = OMX_SetParameter(m_hHandle,
+                        OMX_IndexParamVideoAvc,
+                        (OMX_PTR) &avcdata);
+                CHK(result);
 
             }
-         }
-         else if(m_sProfile.eCodec == OMX_VIDEO_CodingMPEG4){
+        } else if (m_sProfile.eCodec == OMX_VIDEO_CodingMPEG4) {
             OMX_VIDEO_PARAM_MPEG4TYPE mp4;
             mp4.nPortIndex = (OMX_U32) PORT_INDEX_OUT; // output
             result = OMX_GetParameter(m_hHandle,
-                                      OMX_IndexParamVideoMpeg4,
-                                      (OMX_PTR) &mp4);
+                    OMX_IndexParamVideoMpeg4,
+                    (OMX_PTR) &mp4);
             CHK(result);
 
-            if (result == OMX_ErrorNone)
-            {
-               mp4.nSliceHeaderSpacing = nResyncMarkerSpacing;
-               result = OMX_SetParameter(m_hHandle,
-                                         OMX_IndexParamVideoMpeg4,
-                                         (OMX_PTR) &mp4);
-               CHK(result);
+            if (result == OMX_ErrorNone) {
+                mp4.nSliceHeaderSpacing = nResyncMarkerSpacing;
+                result = OMX_SetParameter(m_hHandle,
+                        OMX_IndexParamVideoMpeg4,
+                        (OMX_PTR) &mp4);
+                CHK(result);
             }
-         }
-         }
+        }
+    }
 
-///////////////////E R R O R C O R R E C T I O N ///////////////////
+    ///////////////////E R R O R C O R R E C T I O N ///////////////////
 #endif
 
 #if 1
-///////////////////I N T R A R E F R E S H///////////////////
-      bool bEnableIntraRefresh = OMX_TRUE;
+    ///////////////////I N T R A R E F R E S H///////////////////
+    bool bEnableIntraRefresh = OMX_TRUE;
 
-      if (result == OMX_ErrorNone)
-      {
-         OMX_VIDEO_PARAM_INTRAREFRESHTYPE ir; // OMX_IndexParamVideoIntraRefresh
-         ir.nPortIndex = (OMX_U32) PORT_INDEX_OUT; // output
-         result = OMX_GetParameter(m_hHandle,
-                                   OMX_IndexParamVideoIntraRefresh,
-                                   (OMX_PTR) &ir);
-         if (result == OMX_ErrorNone)
-         {
-            if (bEnableIntraRefresh)
-            {
-               ir.eRefreshMode = OMX_VIDEO_IntraRefreshCyclic;
-               ir.nCirMBs = 5;
-               result = OMX_SetParameter(m_hHandle,
-                                         OMX_IndexParamVideoIntraRefresh,
-                                         (OMX_PTR) &ir);
-               CHK(result);
+    if (result == OMX_ErrorNone) {
+        OMX_VIDEO_PARAM_INTRAREFRESHTYPE ir; // OMX_IndexParamVideoIntraRefresh
+        ir.nPortIndex = (OMX_U32) PORT_INDEX_OUT; // output
+        result = OMX_GetParameter(m_hHandle,
+                OMX_IndexParamVideoIntraRefresh,
+                (OMX_PTR) &ir);
+
+        if (result == OMX_ErrorNone) {
+            if (bEnableIntraRefresh) {
+                ir.eRefreshMode = OMX_VIDEO_IntraRefreshCyclic;
+                ir.nCirMBs = 5;
+                result = OMX_SetParameter(m_hHandle,
+                        OMX_IndexParamVideoIntraRefresh,
+                        (OMX_PTR) &ir);
+                CHK(result);
             }
-         }
-      }
+        }
+    }
+
 #endif
 #if 1
-///////////////////FRAMEPACKING DATA///////////////////
-      OMX_QCOM_FRAME_PACK_ARRANGEMENT framePackingArrangement;
-      FILE *m_pConfigFile;
-      char m_configFilename [128] = "/data/configFile.cfg";
-      memset(&framePackingArrangement, 0, sizeof(framePackingArrangement));
-      m_pConfigFile = fopen(m_configFilename, "r");
-      if (m_pConfigFile != NULL)
-      {
-         //read all frame packing data
-         framePackingArrangement.nPortIndex = (OMX_U32)PORT_INDEX_OUT;
-         int totalSizeToRead = FRAME_PACK_SIZE * sizeof(OMX_U32);
-         char *pFramePack = (char *) &(framePackingArrangement.id);
-         while ( ( (fscanf(m_pConfigFile, "%d", pFramePack)) != EOF ) &&
-                 (totalSizeToRead != 0) )
-         {
+    ///////////////////FRAMEPACKING DATA///////////////////
+    OMX_QCOM_FRAME_PACK_ARRANGEMENT framePackingArrangement;
+    FILE *m_pConfigFile;
+    char m_configFilename [128] = "/data/configFile.cfg";
+    memset(&framePackingArrangement, 0, sizeof(framePackingArrangement));
+    m_pConfigFile = fopen(m_configFilename, "r");
+
+    if (m_pConfigFile != NULL) {
+        //read all frame packing data
+        framePackingArrangement.nPortIndex = (OMX_U32)PORT_INDEX_OUT;
+        int totalSizeToRead = FRAME_PACK_SIZE * sizeof(OMX_U32);
+        char *pFramePack = (char *) &(framePackingArrangement.id);
+
+        while ( ( (fscanf(m_pConfigFile, "%d", pFramePack)) != EOF ) &&
+                (totalSizeToRead != 0) ) {
             //printf("Addr = %p, Value read = %d, sizeToRead remaining=%d\n",
             //       pFramePack, *pFramePack, totalSizeToRead);
             pFramePack += sizeof(OMX_U32);
             totalSizeToRead -= sizeof(OMX_U32);
-         }
-         //close the file.
-         fclose(m_pConfigFile);
+        }
 
-         printf("Frame Packing data from config file:\n");
-         PrintFramePackArrangement(framePackingArrangement);
-      }
-      else
-      {
-         D("\n Config file does not exist or could not be opened.");
-         //set the default values
-         framePackingArrangement.nPortIndex = (OMX_U32)PORT_INDEX_OUT;
-         framePackingArrangement.id = 123;
-         framePackingArrangement.cancel_flag = false;
-         framePackingArrangement.type = 3;
-         framePackingArrangement.quincunx_sampling_flag = false;
-         framePackingArrangement.content_interpretation_type = 0;
-         framePackingArrangement.spatial_flipping_flag = true;
-         framePackingArrangement.frame0_flipped_flag = false;
-         framePackingArrangement.field_views_flag = false;
-         framePackingArrangement.current_frame_is_frame0_flag = false;
-         framePackingArrangement.frame0_self_contained_flag = true;
-         framePackingArrangement.frame1_self_contained_flag = false;
-         framePackingArrangement.frame0_grid_position_x = 3;
-         framePackingArrangement.frame0_grid_position_y = 15;
-         framePackingArrangement.frame1_grid_position_x = 11;
-         framePackingArrangement.frame1_grid_position_y = 7;
-         framePackingArrangement.reserved_byte = 0;
-         framePackingArrangement.repetition_period = 16381;
-         framePackingArrangement.extension_flag = false;
+        //close the file.
+        fclose(m_pConfigFile);
 
-         printf("Frame Packing Defaults :\n");
-         PrintFramePackArrangement(framePackingArrangement);
-      }
-      result = OMX_SetConfig(m_hHandle,
-                (OMX_INDEXTYPE)OMX_QcomIndexConfigVideoFramePackingArrangement,
-                (OMX_PTR) &framePackingArrangement);
-      CHK(result);
+        printf("Frame Packing data from config file:\n");
+        PrintFramePackArrangement(framePackingArrangement);
+    } else {
+        D("\n Config file does not exist or could not be opened.");
+        //set the default values
+        framePackingArrangement.nPortIndex = (OMX_U32)PORT_INDEX_OUT;
+        framePackingArrangement.id = 123;
+        framePackingArrangement.cancel_flag = false;
+        framePackingArrangement.type = 3;
+        framePackingArrangement.quincunx_sampling_flag = false;
+        framePackingArrangement.content_interpretation_type = 0;
+        framePackingArrangement.spatial_flipping_flag = true;
+        framePackingArrangement.frame0_flipped_flag = false;
+        framePackingArrangement.field_views_flag = false;
+        framePackingArrangement.current_frame_is_frame0_flag = false;
+        framePackingArrangement.frame0_self_contained_flag = true;
+        framePackingArrangement.frame1_self_contained_flag = false;
+        framePackingArrangement.frame0_grid_position_x = 3;
+        framePackingArrangement.frame0_grid_position_y = 15;
+        framePackingArrangement.frame1_grid_position_x = 11;
+        framePackingArrangement.frame1_grid_position_y = 7;
+        framePackingArrangement.reserved_byte = 0;
+        framePackingArrangement.repetition_period = 16381;
+        framePackingArrangement.extension_flag = false;
 
-//////////////////////OMX_VIDEO_PARAM_INTRAREFRESHTYPE///////////////////
+        printf("Frame Packing Defaults :\n");
+        PrintFramePackArrangement(framePackingArrangement);
+    }
+
+    result = OMX_SetConfig(m_hHandle,
+            (OMX_INDEXTYPE)OMX_QcomIndexConfigVideoFramePackingArrangement,
+            (OMX_PTR) &framePackingArrangement);
+    CHK(result);
+
+    //////////////////////OMX_VIDEO_PARAM_INTRAREFRESHTYPE///////////////////
 #endif
 
-   OMX_CONFIG_FRAMERATETYPE enc_framerate; // OMX_IndexConfigVideoFramerate
-   enc_framerate.nPortIndex = (OMX_U32)PORT_INDEX_OUT;
-   result = OMX_GetConfig(m_hHandle,
-                          OMX_IndexConfigVideoFramerate,
-                          &enc_framerate);
-   CHK(result);
-   FractionToQ16(enc_framerate.xEncodeFramerate,(int) (m_sProfile.nFramerate * 2),2);
-   result = OMX_SetConfig(m_hHandle,
-                          OMX_IndexConfigVideoFramerate,
-                          &enc_framerate);
-   CHK(result);
-   return OMX_ErrorNone;
+    OMX_CONFIG_FRAMERATETYPE enc_framerate; // OMX_IndexConfigVideoFramerate
+    enc_framerate.nPortIndex = (OMX_U32)PORT_INDEX_OUT;
+    result = OMX_GetConfig(m_hHandle,
+            OMX_IndexConfigVideoFramerate,
+            &enc_framerate);
+    CHK(result);
+    FractionToQ16(enc_framerate.xEncodeFramerate,(int) (m_sProfile.nFramerate * 2),2);
+    result = OMX_SetConfig(m_hHandle,
+            OMX_IndexConfigVideoFramerate,
+            &enc_framerate);
+    CHK(result);
+    return OMX_ErrorNone;
 }
 ////////////////////////////////////////////////////////////////////////////////
 void SendMessage(MsgId id, MsgData* data)
 {
-   pthread_mutex_lock(&m_mutex);
-   if (m_sMsgQ.size >= MAX_MSG)
-   {
-      E("main msg m_sMsgQ is full");
-      return;
-   }
-   m_sMsgQ.q[(m_sMsgQ.head + m_sMsgQ.size) % MAX_MSG].id = id;
-   if (data)
-      m_sMsgQ.q[(m_sMsgQ.head + m_sMsgQ.size) % MAX_MSG].data = *data;
-   ++m_sMsgQ.size;
-   pthread_cond_signal(&m_signal);
-   pthread_mutex_unlock(&m_mutex);
+    pthread_mutex_lock(&m_mutex);
+
+    if (m_sMsgQ.size >= MAX_MSG) {
+        E("main msg m_sMsgQ is full");
+        return;
+    }
+
+    m_sMsgQ.q[(m_sMsgQ.head + m_sMsgQ.size) % MAX_MSG].id = id;
+
+    if (data)
+        m_sMsgQ.q[(m_sMsgQ.head + m_sMsgQ.size) % MAX_MSG].data = *data;
+
+    ++m_sMsgQ.size;
+    pthread_cond_signal(&m_signal);
+    pthread_mutex_unlock(&m_mutex);
 }
 ////////////////////////////////////////////////////////////////////////////////
 void PopMessage(Msg* msg)
 {
-   pthread_mutex_lock(&m_mutex);
-   while (m_sMsgQ.size == 0)
-   {
-      pthread_cond_wait(&m_signal, &m_mutex);
-   }
-   *msg = m_sMsgQ.q[m_sMsgQ.head];
-   --m_sMsgQ.size;
-   m_sMsgQ.head = (m_sMsgQ.head + 1) % MAX_MSG;
-   pthread_mutex_unlock(&m_mutex);
+    pthread_mutex_lock(&m_mutex);
+
+    while (m_sMsgQ.size == 0) {
+        pthread_cond_wait(&m_signal, &m_mutex);
+    }
+
+    *msg = m_sMsgQ.q[m_sMsgQ.head];
+    --m_sMsgQ.size;
+    m_sMsgQ.head = (m_sMsgQ.head + 1) % MAX_MSG;
+    pthread_mutex_unlock(&m_mutex);
 }
 ////////////////////////////////////////////////////////////////////////////////
 OMX_ERRORTYPE EVT_CB(OMX_IN OMX_HANDLETYPE hComponent,
-                     OMX_IN OMX_PTR pAppData,
-                     OMX_IN OMX_EVENTTYPE eEvent,
-                     OMX_IN OMX_U32 nData1,
-                     OMX_IN OMX_U32 nData2,
-                     OMX_IN OMX_PTR pEventData)
+        OMX_IN OMX_PTR pAppData,
+        OMX_IN OMX_EVENTTYPE eEvent,
+        OMX_IN OMX_U32 nData1,
+        OMX_IN OMX_U32 nData2,
+        OMX_IN OMX_PTR pEventData)
 {
 #define SET_STATE(eState)                                   \
-   case eState:                                             \
-      {                                                     \
-         D("" # eState " complete");                        \
-         m_eState = eState;                                 \
-         break;                                             \
-      }
+    case eState:                                             \
+                                 {                                                     \
+                                     D("" # eState " complete");                        \
+                                     m_eState = eState;                                 \
+                                     break;                                             \
+                                 }
 
-   if (eEvent == OMX_EventCmdComplete)
-   {
-      if ((OMX_COMMANDTYPE) nData1 == OMX_CommandStateSet)
-      {
-         switch ((OMX_STATETYPE) nData2)
-         {
-            SET_STATE(OMX_StateLoaded);
-            SET_STATE(OMX_StateIdle);
-            SET_STATE(OMX_StateExecuting);
-            SET_STATE(OMX_StateInvalid);
-            SET_STATE(OMX_StateWaitForResources);
-            SET_STATE(OMX_StatePause);
-         default:
-            E("invalid state %d", (int) nData2);
-          }
-      }
-   }
+    if (eEvent == OMX_EventCmdComplete) {
+        if ((OMX_COMMANDTYPE) nData1 == OMX_CommandStateSet) {
+            switch ((OMX_STATETYPE) nData2) {
+                SET_STATE(OMX_StateLoaded);
+                SET_STATE(OMX_StateIdle);
+                SET_STATE(OMX_StateExecuting);
+                SET_STATE(OMX_StateInvalid);
+                SET_STATE(OMX_StateWaitForResources);
+                SET_STATE(OMX_StatePause);
+                default:
+                E("invalid state %d", (int) nData2);
+            }
+        }
+    }
 
-   else if (eEvent == OMX_EventError)
-   {
-      E("OMX_EventError");
-   }
+    else if (eEvent == OMX_EventError) {
+        E("OMX_EventError");
+    }
 
-   else
-   {
-      E("unexpected event %d", (int) eEvent);
-   }
-   return OMX_ErrorNone;
+    else {
+        E("unexpected event %d", (int) eEvent);
+    }
+
+    return OMX_ErrorNone;
 }
 ////////////////////////////////////////////////////////////////////////////////
 OMX_ERRORTYPE EBD_CB(OMX_IN OMX_HANDLETYPE hComponent,
-                     OMX_IN OMX_PTR pAppData,
-                     OMX_IN OMX_BUFFERHEADERTYPE* pBuffer)
+        OMX_IN OMX_PTR pAppData,
+        OMX_IN OMX_BUFFERHEADERTYPE* pBuffer)
 {
-   D("Got EBD callback ts=%lld", pBuffer->nTimeStamp);
+    D("Got EBD callback ts=%lld", pBuffer->nTimeStamp);
 
-   for (int i = 0; i < num_in_buffers; i++)
-   {
-      // mark this buffer ready for use again
-      if (m_pInBuffers[i] == pBuffer)
-      {
+    for (int i = 0; i < num_in_buffers; i++) {
+        // mark this buffer ready for use again
+        if (m_pInBuffers[i] == pBuffer) {
 
-         D("Marked input buffer idx %d as free, buf %p", i, pBuffer->pBuffer);
-         m_bInFrameFree[i] = OMX_TRUE;
-         break;
-      }
-   }
+            D("Marked input buffer idx %d as free, buf %p", i, pBuffer->pBuffer);
+            m_bInFrameFree[i] = OMX_TRUE;
+            break;
+        }
+    }
 
-   if (m_eMode == MODE_LIVE_ENCODE)
-   {
-      CameraTest_ReleaseFrame(pBuffer->pBuffer,
-                              ((OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO*)pBuffer->pAppPrivate));
-   }
-   else
-   {
-      // wake up main thread and tell it to send next frame
-      MsgData data;
-      data.sBitstreamData.pBuffer = pBuffer;
-      SendMessage(MSG_ID_INPUT_FRAME_DONE,
-                  &data);
+    if (m_eMode == MODE_LIVE_ENCODE) {
+        CameraTest_ReleaseFrame(pBuffer->pBuffer,
+                ((OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO*)pBuffer->pAppPrivate));
+    } else {
+        // wake up main thread and tell it to send next frame
+        MsgData data;
+        data.sBitstreamData.pBuffer = pBuffer;
+        SendMessage(MSG_ID_INPUT_FRAME_DONE,
+                &data);
 
-   }
-   return OMX_ErrorNone;
+    }
+
+    return OMX_ErrorNone;
 }
 ////////////////////////////////////////////////////////////////////////////////
 OMX_ERRORTYPE FBD_CB(OMX_OUT OMX_HANDLETYPE hComponent,
-                     OMX_OUT OMX_PTR pAppData,
-                     OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer)
+        OMX_OUT OMX_PTR pAppData,
+        OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer)
 {
-   D("Got FBD callback ts=%lld", pBuffer->nTimeStamp);
+    D("Got FBD callback ts=%lld", pBuffer->nTimeStamp);
 
-   static long long prevTime = 0;
-   long long currTime = GetTimeStamp();
+    static long long prevTime = 0;
+    long long currTime = GetTimeStamp();
 
-   m_bWatchDogKicked = true;
+    m_bWatchDogKicked = true;
 
-   /* Empty Buffers should not be counted */
-   if(pBuffer->nFilledLen !=0)
-   {
-      /* Counting Buffers supplied from OpneMax Encoder */
-      fbd_cnt++;
-      tot_bufsize += pBuffer->nFilledLen;
-   }
-   if (prevTime != 0)
-   {
-      long long currTime = GetTimeStamp();
-      D("FBD_DELTA = %lld\n", currTime - prevTime);
-   }
-   prevTime = currTime;
+    /* Empty Buffers should not be counted */
+    if (pBuffer->nFilledLen !=0) {
+        /* Counting Buffers supplied from OpneMax Encoder */
+        fbd_cnt++;
+        tot_bufsize += pBuffer->nFilledLen;
+    }
 
-   if (m_eMode == MODE_PROFILE)
-   {
-      // if we are profiling we are not doing file I/O
-      // so just give back to encoder
-      if (OMX_FillThisBuffer(m_hHandle, pBuffer) != OMX_ErrorNone)
-      {
-         E("empty buffer failed for profiling");
-      }
-   }
-   else
-   {
-      // wake up main thread and tell it to write to file
-      MsgData data;
-      data.sBitstreamData.pBuffer = pBuffer;
-      SendMessage(MSG_ID_OUTPUT_FRAME_DONE,
-                  &data);
-   }
-   return OMX_ErrorNone;
+    if (prevTime != 0) {
+        long long currTime = GetTimeStamp();
+        D("FBD_DELTA = %lld\n", currTime - prevTime);
+    }
+
+    prevTime = currTime;
+
+    if (m_eMode == MODE_PROFILE) {
+        // if we are profiling we are not doing file I/O
+        // so just give back to encoder
+        if (OMX_FillThisBuffer(m_hHandle, pBuffer) != OMX_ErrorNone) {
+            E("empty buffer failed for profiling");
+        }
+    } else {
+        // wake up main thread and tell it to write to file
+        MsgData data;
+        data.sBitstreamData.pBuffer = pBuffer;
+        SendMessage(MSG_ID_OUTPUT_FRAME_DONE,
+                &data);
+    }
+
+    return OMX_ErrorNone;
 }
 ////////////////////////////////////////////////////////////////////////////////
 OMX_ERRORTYPE VencTest_Initialize()
 {
-   OMX_ERRORTYPE result = OMX_ErrorNone;
-   static OMX_CALLBACKTYPE sCallbacks = {EVT_CB, EBD_CB, FBD_CB};
-   int i;
+    OMX_ERRORTYPE result = OMX_ErrorNone;
+    static OMX_CALLBACKTYPE sCallbacks = {EVT_CB, EBD_CB, FBD_CB};
+    int i;
 
-   for (i = 0; i < num_in_buffers; i++)
-   {
-      m_pInBuffers[i] = NULL;
-   }
+    for (i = 0; i < num_in_buffers; i++) {
+        m_pInBuffers[i] = NULL;
+    }
 
-   result = OMX_Init();
-   CHK(result);
+    result = OMX_Init();
+    CHK(result);
 
-   if (m_sProfile.eCodec == OMX_VIDEO_CodingMPEG4)
-   {
+    if (m_sProfile.eCodec == OMX_VIDEO_CodingMPEG4) {
         result = OMX_GetHandle(&m_hHandle,
-                             "OMX.qcom.video.encoder.mpeg4",
-                             NULL,
-                             &sCallbacks);
-     // CHK(result);
-   }
-   else if (m_sProfile.eCodec == OMX_VIDEO_CodingH263)
-   {
-      result = OMX_GetHandle(&m_hHandle,
-                             "OMX.qcom.video.encoder.h263",
-                             NULL,
-                             &sCallbacks);
-      CHK(result);
-   }
+                "OMX.qcom.video.encoder.mpeg4",
+                NULL,
+                &sCallbacks);
+        // CHK(result);
+    } else if (m_sProfile.eCodec == OMX_VIDEO_CodingH263) {
+        result = OMX_GetHandle(&m_hHandle,
+                "OMX.qcom.video.encoder.h263",
+                NULL,
+                &sCallbacks);
+        CHK(result);
+    }
+
 #ifdef _MSM8974_
-   else if (m_sProfile.eCodec == OMX_VIDEO_CodingVPX)
-   {
-      result = OMX_GetHandle(&m_hHandle,
-                             "OMX.qcom.video.encoder.vp8",
-                             NULL,
-                             &sCallbacks);
-      CHK(result);
-   }
+    else if (m_sProfile.eCodec == OMX_VIDEO_CodingVPX) {
+        result = OMX_GetHandle(&m_hHandle,
+                "OMX.qcom.video.encoder.vp8",
+                NULL,
+                &sCallbacks);
+        CHK(result);
+    }
+
 #endif
-   else
-   {
-      result = OMX_GetHandle(&m_hHandle,
-                             "OMX.qcom.video.encoder.avc",
-                             NULL,
-                             &sCallbacks);
-      CHK(result);
-   }
+    else {
+        result = OMX_GetHandle(&m_hHandle,
+                "OMX.qcom.video.encoder.avc",
+                NULL,
+                &sCallbacks);
+        CHK(result);
+    }
 
 
-   result = ConfigureEncoder();
-   CHK(result);
+    result = ConfigureEncoder();
+    CHK(result);
 
-   return result;
+    return result;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 OMX_ERRORTYPE VencTest_RegisterYUVBuffer(OMX_BUFFERHEADERTYPE** ppBufferHeader,
-                                         OMX_U8 *pBuffer,
-                                         OMX_PTR pAppPrivate)
+        OMX_U8 *pBuffer,
+        OMX_PTR pAppPrivate)
 {
-   OMX_ERRORTYPE result = OMX_ErrorNone;
+    OMX_ERRORTYPE result = OMX_ErrorNone;
 #if 0
-   D("register buffer");
-   if ((result = OMX_AllocateBuffer(m_hHandle,
-                               ppBufferHeader,
-                               (OMX_U32) PORT_INDEX_IN,
-                               pAppPrivate,
-                               m_sProfile.nFrameBytes
-                               )) != OMX_ErrorNone)
-   {
-      E("use buffer failed");
-   }
-   else
-   {
-     E("Allocate Buffer Success %x", (*ppBufferHeader)->pBuffer);
-   }
-  #endif
-   D("register buffer");
-   D("Calling UseBuffer for Input port");
-   if ((result = OMX_UseBuffer(m_hHandle,
-                               ppBufferHeader,
-                               (OMX_U32) PORT_INDEX_IN,
-                               pAppPrivate,
-                               m_sProfile.nFrameBytes,
-                               pBuffer)) != OMX_ErrorNone)
-   {
-      E("use buffer failed");
-   }
+    D("register buffer");
 
-   return result;
+    if ((result = OMX_AllocateBuffer(m_hHandle,
+                    ppBufferHeader,
+                    (OMX_U32) PORT_INDEX_IN,
+                    pAppPrivate,
+                    m_sProfile.nFrameBytes
+                    )) != OMX_ErrorNone) {
+        E("use buffer failed");
+    } else {
+        E("Allocate Buffer Success %x", (*ppBufferHeader)->pBuffer);
+    }
+
+#endif
+    D("register buffer");
+    D("Calling UseBuffer for Input port");
+
+    if ((result = OMX_UseBuffer(m_hHandle,
+                    ppBufferHeader,
+                    (OMX_U32) PORT_INDEX_IN,
+                    pAppPrivate,
+                    m_sProfile.nFrameBytes,
+                    pBuffer)) != OMX_ErrorNone) {
+        E("use buffer failed");
+    }
+
+    return result;
 }
 ////////////////////////////////////////////////////////////////////////////////
 OMX_ERRORTYPE VencTest_EncodeFrame(void* pYUVBuff,
-                                   long long nTimeStamp)
+        long long nTimeStamp)
 {
-   OMX_ERRORTYPE result = OMX_ErrorUndefined;
-   D("calling OMX empty this buffer");
-   for (int i = 0; i < num_in_buffers; i++)
-   {
-      if (pYUVBuff == m_pInBuffers[i]->pBuffer)
-      {
-         m_pInBuffers[i]->nTimeStamp = nTimeStamp;
-    D("Sending Buffer - %x", m_pInBuffers[i]->pBuffer);
-         result = OMX_EmptyThisBuffer(m_hHandle,
-                                      m_pInBuffers[i]);
-         /* Counting Buffers supplied to OpenMax Encoder */
-         if(OMX_ErrorNone == result)
-            ebd_cnt++;
-         CHK(result);
-         break;
-      }
-   }
-   return result;
+    OMX_ERRORTYPE result = OMX_ErrorUndefined;
+    D("calling OMX empty this buffer");
+
+    for (int i = 0; i < num_in_buffers; i++) {
+        if (pYUVBuff == m_pInBuffers[i]->pBuffer) {
+            m_pInBuffers[i]->nTimeStamp = nTimeStamp;
+            D("Sending Buffer - %x", m_pInBuffers[i]->pBuffer);
+            result = OMX_EmptyThisBuffer(m_hHandle,
+                    m_pInBuffers[i]);
+
+            /* Counting Buffers supplied to OpenMax Encoder */
+            if (OMX_ErrorNone == result)
+                ebd_cnt++;
+
+            CHK(result);
+            break;
+        }
+    }
+
+    return result;
 }
 ////////////////////////////////////////////////////////////////////////////////
 OMX_ERRORTYPE VencTest_Exit(void)
 {
-   int i;
-   OMX_ERRORTYPE result = OMX_ErrorNone;
-   D("trying to exit venc");
+    int i;
+    OMX_ERRORTYPE result = OMX_ErrorNone;
+    D("trying to exit venc");
 
-   D("going to idle state");
-   SetState(OMX_StateIdle);
+    D("going to idle state");
+    SetState(OMX_StateIdle);
 
 
-   D("going to loaded state");
-   //SetState(OMX_StateLoaded);
-      OMX_SendCommand(m_hHandle,
-                      OMX_CommandStateSet,
-                      (OMX_U32) OMX_StateLoaded,
-                       NULL);
+    D("going to loaded state");
+    //SetState(OMX_StateLoaded);
+    OMX_SendCommand(m_hHandle,
+            OMX_CommandStateSet,
+            (OMX_U32) OMX_StateLoaded,
+            NULL);
 
-      for (i = 0; i < num_in_buffers; i++)
-   {
-      D("free buffer");
-      if (m_pInBuffers[i]->pBuffer)
-      {
-        // free(m_pInBuffers[i]->pBuffer);
-         result = OMX_FreeBuffer(m_hHandle,
-                                 PORT_INDEX_IN,
-                                 m_pInBuffers[i]);
-         CHK(result);
-      }
-      else
-      {
-         E("buffer %d is null", i);
-         result = OMX_ErrorUndefined;
-         CHK(result);
-      }
-   }
-   for (i = 0; i < num_out_buffers; i++)
-   {
-      D("free buffer");
-      if (m_pOutBuffers[i]->pBuffer)
-      {
-         free(m_pOutBuffers[i]->pBuffer);
-         result = OMX_FreeBuffer(m_hHandle,
-                                 PORT_INDEX_OUT,
-                                 m_pOutBuffers[i]);
-         CHK(result);
+    for (i = 0; i < num_in_buffers; i++) {
+        D("free buffer");
 
-      }
-      else
-      {
-         E("buffer %d is null", i);
-         result = OMX_ErrorUndefined;
-         CHK(result);
-      }
-   }
+        if (m_pInBuffers[i]->pBuffer) {
+            // free(m_pInBuffers[i]->pBuffer);
+            result = OMX_FreeBuffer(m_hHandle,
+                    PORT_INDEX_IN,
+                    m_pInBuffers[i]);
+            CHK(result);
+        } else {
+            E("buffer %d is null", i);
+            result = OMX_ErrorUndefined;
+            CHK(result);
+        }
+    }
 
-     while (m_eState != OMX_StateLoaded)
-     {
+    for (i = 0; i < num_out_buffers; i++) {
+        D("free buffer");
+
+        if (m_pOutBuffers[i]->pBuffer) {
+            free(m_pOutBuffers[i]->pBuffer);
+            result = OMX_FreeBuffer(m_hHandle,
+                    PORT_INDEX_OUT,
+                    m_pOutBuffers[i]);
+            CHK(result);
+
+        } else {
+            E("buffer %d is null", i);
+            result = OMX_ErrorUndefined;
+            CHK(result);
+        }
+    }
+
+    while (m_eState != OMX_StateLoaded) {
         sleep(1);
-     }
-   D("component_deinit...");
-   result = OMX_Deinit();
-   CHK(result);
+    }
 
-   D("venc is exiting...");
-   return result;
+    D("component_deinit...");
+    result = OMX_Deinit();
+    CHK(result);
+
+    D("venc is exiting...");
+    return result;
 }
 ////////////////////////////////////////////////////////////////////////////////
 
 void VencTest_ReadDynamicConfigMsg()
 {
-  char frame_n[8], config[16], param[8];
-  char *dest = frame_n;
-  bool end = false;
-  int cntr, nparam = 0;
-  memset(&dynamic_config, 0, sizeof(struct DynamicConfig));
-  do
-  {
-    cntr = -1;
-    do
-    {
-      dest[++cntr] = fgetc(m_pDynConfFile);
-    } while(dest[cntr] != ' ' && dest[cntr] != '\t' && dest[cntr] != '\n' && dest[cntr] != '\r' && !feof(m_pDynConfFile));
-    if (dest[cntr] == '\n' || dest[cntr] == '\r')
-      end = true;
-    dest[cntr] = NULL;
-    if (dest == frame_n)
-      dest = config;
-    else if (dest == config)
-      dest = param;
-    else
-      end = true;
-    nparam++;
-  } while (!end && !feof(m_pDynConfFile));
+    char frame_n[8], config[16], param[8];
+    char *dest = frame_n;
+    bool end = false;
+    int cntr, nparam = 0;
+    memset(&dynamic_config, 0, sizeof(struct DynamicConfig));
 
-  if (nparam > 1)
-  {
-    dynamic_config.pending = true;
-    dynamic_config.frame_num = atoi(frame_n);
-    if (!strcmp(config, "bitrate"))
-    {
-      dynamic_config.config_param = OMX_IndexConfigVideoBitrate;
-      dynamic_config.config_data.bitrate.nPortIndex = PORT_INDEX_OUT;
-      dynamic_config.config_data.bitrate.nEncodeBitrate = strtoul(param, NULL, 10);
+    do {
+        cntr = -1;
+
+        do {
+            dest[++cntr] = fgetc(m_pDynConfFile);
+        } while (dest[cntr] != ' ' && dest[cntr] != '\t' && dest[cntr] != '\n' && dest[cntr] != '\r' && !feof(m_pDynConfFile));
+
+        if (dest[cntr] == '\n' || dest[cntr] == '\r')
+            end = true;
+
+        dest[cntr] = NULL;
+
+        if (dest == frame_n)
+            dest = config;
+        else if (dest == config)
+            dest = param;
+        else
+            end = true;
+
+        nparam++;
+    } while (!end && !feof(m_pDynConfFile));
+
+    if (nparam > 1) {
+        dynamic_config.pending = true;
+        dynamic_config.frame_num = atoi(frame_n);
+
+        if (!strcmp(config, "bitrate")) {
+            dynamic_config.config_param = OMX_IndexConfigVideoBitrate;
+            dynamic_config.config_data.bitrate.nPortIndex = PORT_INDEX_OUT;
+            dynamic_config.config_data.bitrate.nEncodeBitrate = strtoul(param, NULL, 10);
+        } else if (!strcmp(config, "framerate")) {
+            dynamic_config.config_param = OMX_IndexConfigVideoFramerate;
+            dynamic_config.config_data.framerate.nPortIndex = PORT_INDEX_OUT;
+            dynamic_config.config_data.f_framerate = atof(param);
+        } else if (!strcmp(config, "iperiod")) {
+            dynamic_config.config_param = (OMX_INDEXTYPE)QOMX_IndexConfigVideoIntraperiod;
+            dynamic_config.config_data.intraperiod.nPortIndex = PORT_INDEX_OUT;
+            dynamic_config.config_data.intraperiod.nPFrames = strtoul(param, NULL, 10) - 1;
+            dynamic_config.config_data.intraperiod.nIDRPeriod = 1; // This value is ignored in OMX component
+        } else if (!strcmp(config, "ivoprefresh")) {
+            dynamic_config.config_param = OMX_IndexConfigVideoIntraVOPRefresh;
+            dynamic_config.config_data.intravoprefresh.nPortIndex = PORT_INDEX_OUT;
+            dynamic_config.config_data.intravoprefresh.IntraRefreshVOP = OMX_TRUE;
+        } else if (!strcmp(config, "rotation")) {
+            dynamic_config.config_param = OMX_IndexConfigCommonRotate;
+            dynamic_config.config_data.rotation.nPortIndex = PORT_INDEX_OUT;
+            dynamic_config.config_data.rotation.nRotation = strtoul(param, NULL, 10);
+        } else {
+            E("UNKNOWN CONFIG PARAMETER: %s!", config);
+            dynamic_config.pending = false;
+        }
+    } else if (feof(m_pDynConfFile)) {
+        fclose(m_pDynConfFile);
+        m_pDynConfFile = NULL;
     }
-    else if (!strcmp(config, "framerate"))
-    {
-      dynamic_config.config_param = OMX_IndexConfigVideoFramerate;
-      dynamic_config.config_data.framerate.nPortIndex = PORT_INDEX_OUT;
-      dynamic_config.config_data.f_framerate = atof(param);
-    }
-    else if (!strcmp(config, "iperiod"))
-    {
-      dynamic_config.config_param = (OMX_INDEXTYPE)QOMX_IndexConfigVideoIntraperiod;
-      dynamic_config.config_data.intraperiod.nPortIndex = PORT_INDEX_OUT;
-      dynamic_config.config_data.intraperiod.nPFrames = strtoul(param, NULL, 10) - 1;
-      dynamic_config.config_data.intraperiod.nIDRPeriod = 1; // This value is ignored in OMX component
-    }
-    else if (!strcmp(config, "ivoprefresh"))
-    {
-      dynamic_config.config_param = OMX_IndexConfigVideoIntraVOPRefresh;
-      dynamic_config.config_data.intravoprefresh.nPortIndex = PORT_INDEX_OUT;
-      dynamic_config.config_data.intravoprefresh.IntraRefreshVOP = OMX_TRUE;
-    }
-    else if (!strcmp(config, "rotation"))
-    {
-      dynamic_config.config_param = OMX_IndexConfigCommonRotate;
-      dynamic_config.config_data.rotation.nPortIndex = PORT_INDEX_OUT;
-      dynamic_config.config_data.rotation.nRotation = strtoul(param, NULL, 10);
-    }
-    else
-    {
-      E("UNKNOWN CONFIG PARAMETER: %s!", config);
-      dynamic_config.pending = false;
-    }
-  }
-  else if (feof(m_pDynConfFile))
-  {
-    fclose(m_pDynConfFile);
-    m_pDynConfFile = NULL;
-  }
 }
 
 void VencTest_ProcessDynamicConfigurationFile()
 {
-  do
-  {
-    if (dynamic_config.pending)
-    {
-      if(m_nFrameIn == dynamic_config.frame_num)
-      {
-        if (dynamic_config.config_param == OMX_IndexConfigVideoFramerate)
-        {
-          m_sProfile.nFramerate = dynamic_config.config_data.f_framerate;
-          FractionToQ16(dynamic_config.config_data.framerate.xEncodeFramerate,
-                        (int)(m_sProfile.nFramerate * 2), 2);
+    do {
+        if (dynamic_config.pending) {
+            if (m_nFrameIn == dynamic_config.frame_num) {
+                if (dynamic_config.config_param == OMX_IndexConfigVideoFramerate) {
+                    m_sProfile.nFramerate = dynamic_config.config_data.f_framerate;
+                    FractionToQ16(dynamic_config.config_data.framerate.xEncodeFramerate,
+                            (int)(m_sProfile.nFramerate * 2), 2);
+                }
+
+                if (OMX_SetConfig(m_hHandle, dynamic_config.config_param,
+                            &dynamic_config.config_data) != OMX_ErrorNone)
+                    E("ERROR: Setting dynamic config to OMX param[0x%x]", dynamic_config.config_param);
+
+                dynamic_config.pending = false;
+            } else if (m_nFrameIn > dynamic_config.frame_num) {
+                E("WARNING: Config change requested in passed frame(%d)", dynamic_config.frame_num);
+                dynamic_config.pending = false;
+            }
         }
-        if (OMX_SetConfig(m_hHandle, dynamic_config.config_param,
-            &dynamic_config.config_data) != OMX_ErrorNone)
-          E("ERROR: Setting dynamic config to OMX param[0x%x]", dynamic_config.config_param);
-        dynamic_config.pending = false;
-      }
-      else if (m_nFrameIn > dynamic_config.frame_num)
-      {
-        E("WARNING: Config change requested in passed frame(%d)", dynamic_config.frame_num);
-        dynamic_config.pending = false;
-      }
-    }
-    if (!dynamic_config.pending)
-      VencTest_ReadDynamicConfigMsg();
-  } while (!dynamic_config.pending && m_pDynConfFile);
+
+        if (!dynamic_config.pending)
+            VencTest_ReadDynamicConfigMsg();
+    } while (!dynamic_config.pending && m_pDynConfFile);
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 OMX_ERRORTYPE VencTest_ReadAndEmpty(OMX_BUFFERHEADERTYPE* pYUVBuffer)
 {
-   OMX_ERRORTYPE result = OMX_ErrorNone;
+    OMX_ERRORTYPE result = OMX_ErrorNone;
 #ifdef T_ARM
 #if defined(MAX_RES_720P) && !defined(_MSM8974_)
-   if (read(m_nInFd,
-            pYUVBuffer->pBuffer,
-            m_sProfile.nFrameBytes) != m_sProfile.nFrameBytes)
-   {
-      return OMX_ErrorUndefined;
-   }
+
+    if (read(m_nInFd,
+                pYUVBuffer->pBuffer,
+                m_sProfile.nFrameBytes) != m_sProfile.nFrameBytes) {
+        return OMX_ErrorUndefined;
+    }
+
 #elif _MSM8974_
-   int i, lscanl, lstride, cscanl, cstride, height, width;
-   int bytes = 0, read_bytes = 0;
-   OMX_U8 *yuv = pYUVBuffer->pBuffer;
-   height = m_sProfile.nFrameHeight;
-   width = m_sProfile.nFrameWidth;
-   lstride = VENUS_Y_STRIDE(COLOR_FMT_NV12, width);
-   lscanl = VENUS_Y_SCANLINES(COLOR_FMT_NV12, height);
-   cstride = VENUS_UV_STRIDE(COLOR_FMT_NV12, width);
-   cscanl = VENUS_UV_SCANLINES(COLOR_FMT_NV12, height);
+    int i, lscanl, lstride, cscanl, cstride, height, width;
+    int bytes = 0, read_bytes = 0;
+    OMX_U8 *yuv = pYUVBuffer->pBuffer;
+    height = m_sProfile.nFrameHeight;
+    width = m_sProfile.nFrameWidth;
+    lstride = VENUS_Y_STRIDE(COLOR_FMT_NV12, width);
+    lscanl = VENUS_Y_SCANLINES(COLOR_FMT_NV12, height);
+    cstride = VENUS_UV_STRIDE(COLOR_FMT_NV12, width);
+    cscanl = VENUS_UV_SCANLINES(COLOR_FMT_NV12, height);
 
-   for(i = 0; i < height; i++) {
-	   bytes = read(m_nInFd, yuv, width);
-	   if (bytes != width) {
-		   E("read failed: %d != %d\n", read, width);
-		   return OMX_ErrorUndefined;
-	   }
-	   read_bytes += bytes;
-	   yuv += lstride;
-   }
-   yuv = pYUVBuffer->pBuffer + (lscanl * lstride);
-   for (i = 0; i < ((height + 1) >> 1); i++) {
-	   bytes = read(m_nInFd, yuv, width);
-	   if (bytes != width) {
-		   E("read failed: %d != %d\n", read, width);
-		   return OMX_ErrorUndefined;
-	   }
-	   read_bytes += bytes;
-	   yuv += cstride;
-   }
-   m_sProfile.nFrameRead = VENUS_BUFFER_SIZE(COLOR_FMT_NV12, width, height);
-   E("\n\nActual read bytes: %d, NV12 buffer size: %d\n\n\n", read_bytes, m_sProfile.nFrameRead);
+    for (i = 0; i < height; i++) {
+        bytes = read(m_nInFd, yuv, width);
+
+        if (bytes != width) {
+            E("read failed: %d != %d\n", read, width);
+            return OMX_ErrorUndefined;
+        }
+
+        read_bytes += bytes;
+        yuv += lstride;
+    }
+
+    yuv = pYUVBuffer->pBuffer + (lscanl * lstride);
+
+    for (i = 0; i < ((height + 1) >> 1); i++) {
+        bytes = read(m_nInFd, yuv, width);
+
+        if (bytes != width) {
+            E("read failed: %d != %d\n", read, width);
+            return OMX_ErrorUndefined;
+        }
+
+        read_bytes += bytes;
+        yuv += cstride;
+    }
+
+    m_sProfile.nFrameRead = VENUS_BUFFER_SIZE(COLOR_FMT_NV12, width, height);
+    E("\n\nActual read bytes: %d, NV12 buffer size: %d\n\n\n", read_bytes, m_sProfile.nFrameRead);
 #else
-         OMX_U32 bytestoread = m_sProfile.nFrameWidth*m_sProfile.nFrameHeight;
-         // read Y first
-         if (read(m_nInFd,
-              pYUVBuffer->pBuffer,
-              bytestoread) != bytestoread)
-            return OMX_ErrorUndefined;
+    OMX_U32 bytestoread = m_sProfile.nFrameWidth*m_sProfile.nFrameHeight;
 
-         // check alignment for offset to C
-         OMX_U32 offset_to_c = m_sProfile.nFrameWidth * m_sProfile.nFrameHeight;
+    // read Y first
+    if (read(m_nInFd,
+                pYUVBuffer->pBuffer,
+                bytestoread) != bytestoread)
+        return OMX_ErrorUndefined;
 
-         const OMX_U32 C_2K = (1024*2),
-            MASK_2K = C_2K-1,
-            IMASK_2K = ~MASK_2K;
+    // check alignment for offset to C
+    OMX_U32 offset_to_c = m_sProfile.nFrameWidth * m_sProfile.nFrameHeight;
 
-         if (offset_to_c & MASK_2K)
-         {
-            // offset to C is not 2k aligned, adjustment is required
-            offset_to_c = (offset_to_c & IMASK_2K) + C_2K;
-         }
+    const OMX_U32 C_2K = (1024*2),
+          MASK_2K = C_2K-1,
+          IMASK_2K = ~MASK_2K;
 
-         bytestoread = m_sProfile.nFrameWidth*m_sProfile.nFrameHeight/2;
-         // read C
-         if (read(m_nInFd,
-              pYUVBuffer->pBuffer + offset_to_c,
-              bytestoread)!= bytestoread)
-            return OMX_ErrorUndefined;
+    if (offset_to_c & MASK_2K) {
+        // offset to C is not 2k aligned, adjustment is required
+        offset_to_c = (offset_to_c & IMASK_2K) + C_2K;
+    }
+
+    bytestoread = m_sProfile.nFrameWidth*m_sProfile.nFrameHeight/2;
+
+    // read C
+    if (read(m_nInFd,
+                pYUVBuffer->pBuffer + offset_to_c,
+                bytestoread)!= bytestoread)
+        return OMX_ErrorUndefined;
+
 #endif
 #else
-   {
-	  char * pInputbuf = (char *)(pYUVBuffer->pBuffer) ;
-	      read(m_nInFd,pInputbuf,m_sProfile.nFrameBytes) ;
+    {
+        char * pInputbuf = (char *)(pYUVBuffer->pBuffer) ;
+        read(m_nInFd,pInputbuf,m_sProfile.nFrameBytes) ;
 
-   }
+    }
 #endif
-   if (m_pDynConfFile)
-     VencTest_ProcessDynamicConfigurationFile();
-   D("about to call VencTest_EncodeFrame...");
-   pthread_mutex_lock(&m_mutex);
-   ++m_nFrameIn;
+
+    if (m_pDynConfFile)
+        VencTest_ProcessDynamicConfigurationFile();
+
+    D("about to call VencTest_EncodeFrame...");
+    pthread_mutex_lock(&m_mutex);
+    ++m_nFrameIn;
 #ifdef _MSM8974_
-   pYUVBuffer->nFilledLen = m_sProfile.nFrameRead;
+    pYUVBuffer->nFilledLen = m_sProfile.nFrameRead;
 #else
-   pYUVBuffer->nFilledLen = m_sProfile.nFrameBytes;
+    pYUVBuffer->nFilledLen = m_sProfile.nFrameBytes;
 #endif
-   D("Called Buffer with Data filled length %d",pYUVBuffer->nFilledLen);
+    D("Called Buffer with Data filled length %d",pYUVBuffer->nFilledLen);
 
-      result = VencTest_EncodeFrame(pYUVBuffer->pBuffer,
-                                 m_nTimeStamp);
+    result = VencTest_EncodeFrame(pYUVBuffer->pBuffer,
+            m_nTimeStamp);
 
-   m_nTimeStamp += (1000000) / m_sProfile.nFramerate;
-   CHK(result);
-   pthread_mutex_unlock(&m_mutex);
-   return result;
+    m_nTimeStamp += (1000000) / m_sProfile.nFramerate;
+    CHK(result);
+    pthread_mutex_unlock(&m_mutex);
+    return result;
 }
 ////////////////////////////////////////////////////////////////////////////////
 void PreviewCallback(int nFD,
-                     int nOffset,
-                     void* pPhys,
-                     void* pVirt,
-                     long long nTimeStamp)
+        int nOffset,
+        void* pPhys,
+        void* pVirt,
+        long long nTimeStamp)
 {
 
-   D("================= preview frame %d, phys=0x%x, nTimeStamp(millis)=%lld",
-     m_nFrameIn+1, pPhys, (nTimeStamp / 1000));
+    D("================= preview frame %d, phys=0x%x, nTimeStamp(millis)=%lld",
+            m_nFrameIn+1, pPhys, (nTimeStamp / 1000));
 
-   if (m_nFrameIn == m_nFramePlay &&
-       m_nFramePlay != 0)
-   {
-      // we will stop camera after last frame is encoded.
-      // for now just ignore input frames
+    if (m_nFrameIn == m_nFramePlay &&
+            m_nFramePlay != 0) {
+        // we will stop camera after last frame is encoded.
+        // for now just ignore input frames
 
-      CameraTest_ReleaseFrame(pPhys, pVirt);
-      return;
-   }
+        CameraTest_ReleaseFrame(pPhys, pVirt);
+        return;
+    }
 
-   // see if we should stop
-   pthread_mutex_lock(&m_mutex);
-   ++m_nFrameIn;
-   pthread_mutex_unlock(&m_mutex);
+    // see if we should stop
+    pthread_mutex_lock(&m_mutex);
+    ++m_nFrameIn;
+    pthread_mutex_unlock(&m_mutex);
 
 
-   if (m_eMode == MODE_LIVE_ENCODE)
-   {
+    if (m_eMode == MODE_LIVE_ENCODE) {
 
-      OMX_ERRORTYPE result;
+        OMX_ERRORTYPE result;
 
-      // register new camera buffers with encoder
-      int i;
-      for (i = 0; i < num_in_buffers; i++)
-      {
-         if (m_pInBuffers[i] != NULL &&
-             m_pInBuffers[i]->pBuffer == pPhys)
-         {
-            break;
-         }
-         else if (m_pInBuffers[i] == NULL)
-         {
-            D("registering buffer...");
-            result = VencTest_RegisterYUVBuffer(&m_pInBuffers[i],
-                                                (OMX_U8*) pPhys,
-                                                (OMX_PTR) pVirt); // store virt in app private field
-            D("register done");
-            CHK(result);
-            break;
-         }
-      }
+        // register new camera buffers with encoder
+        int i;
 
-      if (i == num_in_buffers)
-      {
-         E("There are more camera buffers than we thought");
-         CHK(1);
-      }
+        for (i = 0; i < num_in_buffers; i++) {
+            if (m_pInBuffers[i] != NULL &&
+                    m_pInBuffers[i]->pBuffer == pPhys) {
+                break;
+            } else if (m_pInBuffers[i] == NULL) {
+                D("registering buffer...");
+                result = VencTest_RegisterYUVBuffer(&m_pInBuffers[i],
+                        (OMX_U8*) pPhys,
+                        (OMX_PTR) pVirt); // store virt in app private field
+                D("register done");
+                CHK(result);
+                break;
+            }
+        }
 
-      // encode the yuv frame
+        if (i == num_in_buffers) {
+            E("There are more camera buffers than we thought");
+            CHK(1);
+        }
 
-      D("StartEncodeTime=%lld", GetTimeStamp());
-      result = VencTest_EncodeFrame(pPhys,
-                                    nTimeStamp);
-      CHK(result);
-     // FBTest_DisplayImage(nFD, nOffset);
-   }
-   else
-   {
-     // FBTest_DisplayImage(nFD, nOffset);
-      CameraTest_ReleaseFrame(pPhys, pVirt);
-   }
+        // encode the yuv frame
+
+        D("StartEncodeTime=%lld", GetTimeStamp());
+        result = VencTest_EncodeFrame(pPhys,
+                nTimeStamp);
+        CHK(result);
+        // FBTest_DisplayImage(nFD, nOffset);
+    } else {
+        // FBTest_DisplayImage(nFD, nOffset);
+        CameraTest_ReleaseFrame(pPhys, pVirt);
+    }
 }
 ////////////////////////////////////////////////////////////////////////////////
 void usage(char* filename)
 {
-   char* fname = strrchr(filename, (int) '/');
-   fname = (fname == NULL) ? filename : fname;
+    char* fname = strrchr(filename, (int) '/');
+    fname = (fname == NULL) ? filename : fname;
 
-   fprintf(stderr, "usage: %s LIVE <QCIF|QVGA> <MP4|H263> <FPS> <BITRATE> <NFRAMES> <OUTFILE>\n", fname);
-   fprintf(stderr, "usage: %s FILE <QCIF|QVGA> <MP4|H263 <FPS> <BITRATE> <NFRAMES> <INFILE> <OUTFILE> ", fname);
-   fprintf(stderr, "<Dynamic config file - opt> <Rate Control - opt> <AVC Slice Mode - opt>\n", fname);
-   fprintf(stderr, "usage: %s PROFILE <QCIF|QVGA> <MP4|H263 <FPS> <BITRATE> <NFRAMES> <INFILE>\n", fname);
-   fprintf(stderr, "usage: %s PREVIEW <QCIF|QVGA> <FPS> <NFRAMES>\n", fname);
-   fprintf(stderr, "usage: %s DISPLAY <QCIF|QVGA> <FPS> <NFRAMES> <INFILE>\n", fname);
-   fprintf(stderr, "\n       BITRATE - bitrate in kbps\n");
-   fprintf(stderr, "       FPS - frames per second\n");
-   fprintf(stderr, "       NFRAMES - number of frames to play, 0 for infinite\n");
-   fprintf(stderr, "       RateControl (Values 0 - 4 for RC_OFF, RC_CBR_CFR, RC_CBR_VFR, RC_VBR_CFR, RC_VBR_VFR\n");
-   exit(1);
+    fprintf(stderr, "usage: %s LIVE <QCIF|QVGA> <MP4|H263> <FPS> <BITRATE> <NFRAMES> <OUTFILE>\n", fname);
+    fprintf(stderr, "usage: %s FILE <QCIF|QVGA> <MP4|H263 <FPS> <BITRATE> <NFRAMES> <INFILE> <OUTFILE> ", fname);
+    fprintf(stderr, "<Dynamic config file - opt> <Rate Control - opt> <AVC Slice Mode - opt>\n", fname);
+    fprintf(stderr, "usage: %s PROFILE <QCIF|QVGA> <MP4|H263 <FPS> <BITRATE> <NFRAMES> <INFILE>\n", fname);
+    fprintf(stderr, "usage: %s PREVIEW <QCIF|QVGA> <FPS> <NFRAMES>\n", fname);
+    fprintf(stderr, "usage: %s DISPLAY <QCIF|QVGA> <FPS> <NFRAMES> <INFILE>\n", fname);
+    fprintf(stderr, "\n       BITRATE - bitrate in kbps\n");
+    fprintf(stderr, "       FPS - frames per second\n");
+    fprintf(stderr, "       NFRAMES - number of frames to play, 0 for infinite\n");
+    fprintf(stderr, "       RateControl (Values 0 - 4 for RC_OFF, RC_CBR_CFR, RC_CBR_VFR, RC_VBR_CFR, RC_VBR_VFR\n");
+    exit(1);
 }
 
 bool parseWxH(char *str, OMX_U32 *width, OMX_U32 *height)
 {
-   bool parseOK = false;
-   const char delimiters[] = " x*,";
-   char *token, *dupstr, *temp;
-   OMX_U32 w, h;
+    bool parseOK = false;
+    const char delimiters[] = " x*,";
+    char *token, *dupstr, *temp;
+    OMX_U32 w, h;
 
-   dupstr = strdup(str);
-   token = strtok_r(dupstr, delimiters, &temp);
-   if (token)
-   {
-       w = strtoul(token, NULL, 10);
-       token = strtok_r(NULL, delimiters, &temp);
-       if (token)
-       {
-           h = strtoul(token, NULL, 10);
-           if (w != ULONG_MAX && h != ULONG_MAX)
-           {
+    dupstr = strdup(str);
+    token = strtok_r(dupstr, delimiters, &temp);
+
+    if (token) {
+        w = strtoul(token, NULL, 10);
+        token = strtok_r(NULL, delimiters, &temp);
+
+        if (token) {
+            h = strtoul(token, NULL, 10);
+
+            if (w != ULONG_MAX && h != ULONG_MAX) {
 #ifdef MAX_RES_720P
-              if ((w * h >> 8) <= 3600)
-              {
-                 parseOK = true;
-                 *width = w;
-                 *height = h;
-                 }
+
+                if ((w * h >> 8) <= 3600) {
+                    parseOK = true;
+                    *width = w;
+                    *height = h;
+                }
+
 #else
-              if ((w * h >> 8) <= 8160)
-              {
-                 parseOK = true;
-                 *width = w;
-                 *height = h;
-                 }
+
+                if ((w * h >> 8) <= 8160) {
+                    parseOK = true;
+                    *width = w;
+                    *height = h;
+                }
+
 #endif
-              else
-                 E("\nInvalid dimensions %dx%d",w,h);
-              }
-           }
-       }
-   free(dupstr);
-   return parseOK;
+                else
+                    E("\nInvalid dimensions %dx%d",w,h);
+            }
+        }
+    }
+
+    free(dupstr);
+    return parseOK;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 void parseArgs(int argc, char** argv)
 {
-   int dyn_file_arg = argc;
-   if (argc == 1)
-   {
-      usage(argv[0]);
-   }
-   else if (strcmp("PREVIEW", argv[1]) == 0 ||
-            strcmp("preview", argv[1]) == 0)
-   {
-      m_eMode = MODE_PREVIEW;
-      if (argc != 5)
-      {
-         usage(argv[0]);
-      }
-   }
-   else if (strcmp("DISPLAY", argv[1]) == 0 ||
-            strcmp("display", argv[1]) == 0)
-   {
-      m_eMode = MODE_DISPLAY;
-      if (argc != 6)
-      {
-         usage(argv[0]);
-      }
-      m_sProfile.cInFileName = argv[5];
-      m_sProfile.cOutFileName = NULL;
-   }
-   else if (strcmp("LIVE", argv[1]) == 0 ||
-            strcmp("live", argv[1]) == 0)
-   {//263
-      m_eMode = MODE_LIVE_ENCODE;
-      if (argc != 8)
-      {
-         usage(argv[0]);
-      }
-      m_sProfile.cInFileName = NULL;
-      m_sProfile.cOutFileName = argv[7];
-   }
-   else if (strcmp("FILE", argv[1]) == 0 ||
-            strcmp("file", argv[1]) == 0)
-   {//263
-      m_eMode = MODE_FILE_ENCODE;
+    int dyn_file_arg = argc;
 
-      if(argc < 9 || argc > 13)
-      {
-          usage(argv[0]);
-      }
-      else
-      {
-         if (argc > 9)
-            dyn_file_arg = 9;
+    if (argc == 1) {
+        usage(argv[0]);
+    } else if (strcmp("PREVIEW", argv[1]) == 0 ||
+            strcmp("preview", argv[1]) == 0) {
+        m_eMode = MODE_PREVIEW;
 
-         if (argc > 10)
-         {
-           m_sProfile.eControlRate = OMX_Video_ControlRateVariable;
-            int RC = atoi(argv[10]);
+        if (argc != 5) {
+            usage(argv[0]);
+        }
+    } else if (strcmp("DISPLAY", argv[1]) == 0 ||
+            strcmp("display", argv[1]) == 0) {
+        m_eMode = MODE_DISPLAY;
 
-            switch (RC)
-            {
-            case 0:
-               m_sProfile.eControlRate  = OMX_Video_ControlRateDisable ;//VENC_RC_NONE
-               break;
-            case 1:
-               m_sProfile.eControlRate  = OMX_Video_ControlRateConstant;//VENC_RC_CBR_CFR
-               break;
+        if (argc != 6) {
+            usage(argv[0]);
+        }
 
-            case 2:
-               m_sProfile.eControlRate  = OMX_Video_ControlRateConstantSkipFrames;//VENC_RC_CBR_VFR
-               break;
+        m_sProfile.cInFileName = argv[5];
+        m_sProfile.cOutFileName = NULL;
+    } else if (strcmp("LIVE", argv[1]) == 0 ||
+            strcmp("live", argv[1]) == 0) {//263
+        m_eMode = MODE_LIVE_ENCODE;
 
-            case 3:
-               m_sProfile.eControlRate  =OMX_Video_ControlRateVariable ;//VENC_RC_VBR_CFR
-               break;
+        if (argc != 8) {
+            usage(argv[0]);
+        }
 
-            case 4:
-               m_sProfile.eControlRate  = OMX_Video_ControlRateVariableSkipFrames;//VENC_RC_VBR_VFR
-               break;
+        m_sProfile.cInFileName = NULL;
+        m_sProfile.cOutFileName = argv[7];
+    } else if (strcmp("FILE", argv[1]) == 0 ||
+            strcmp("file", argv[1]) == 0) {//263
+        m_eMode = MODE_FILE_ENCODE;
 
-           default:
-               E("invalid rate control selection");
-               m_sProfile.eControlRate = OMX_Video_ControlRateVariable; //VENC_RC_VBR_CFR
-               break;
+        if (argc < 9 || argc > 13) {
+            usage(argv[0]);
+        } else {
+            if (argc > 9)
+                dyn_file_arg = 9;
+
+            if (argc > 10) {
+                m_sProfile.eControlRate = OMX_Video_ControlRateVariable;
+                int RC = atoi(argv[10]);
+
+                switch (RC) {
+                    case 0:
+                        m_sProfile.eControlRate  = OMX_Video_ControlRateDisable ;//VENC_RC_NONE
+                        break;
+                    case 1:
+                        m_sProfile.eControlRate  = OMX_Video_ControlRateConstant;//VENC_RC_CBR_CFR
+                        break;
+
+                    case 2:
+                        m_sProfile.eControlRate  = OMX_Video_ControlRateConstantSkipFrames;//VENC_RC_CBR_VFR
+                        break;
+
+                    case 3:
+                        m_sProfile.eControlRate  =OMX_Video_ControlRateVariable ;//VENC_RC_VBR_CFR
+                        break;
+
+                    case 4:
+                        m_sProfile.eControlRate  = OMX_Video_ControlRateVariableSkipFrames;//VENC_RC_VBR_VFR
+                        break;
+
+                    default:
+                        E("invalid rate control selection");
+                        m_sProfile.eControlRate = OMX_Video_ControlRateVariable; //VENC_RC_VBR_CFR
+                        break;
+                }
             }
-         }
 
-         if (argc > 11)
-         {
-            int profile_argi = 11;
-            if(!strcmp(argv[3], "H264") || !strcmp(argv[3], "h264"))
-            {
-               profile_argi = 12;
-               D("\nSetting AVCSliceMode ... ");
-               int AVCSliceMode = atoi(argv[11]);
-               switch(AVCSliceMode)
-               {
-               case 0:
-                  m_sProfile.eSliceMode = OMX_VIDEO_SLICEMODE_AVCDefault;
-                  break;
+            if (argc > 11) {
+                int profile_argi = 11;
 
-               case 1:
-                  m_sProfile.eSliceMode = OMX_VIDEO_SLICEMODE_AVCMBSlice;
-                  break;
+                if (!strcmp(argv[3], "H264") || !strcmp(argv[3], "h264")) {
+                    profile_argi = 12;
+                    D("\nSetting AVCSliceMode ... ");
+                    int AVCSliceMode = atoi(argv[11]);
 
-               case 2:
-                  m_sProfile.eSliceMode = OMX_VIDEO_SLICEMODE_AVCByteSlice;
-                  break;
+                    switch (AVCSliceMode) {
+                        case 0:
+                            m_sProfile.eSliceMode = OMX_VIDEO_SLICEMODE_AVCDefault;
+                            break;
 
-               default:
-                  E("invalid Slice Mode");
-                  m_sProfile.eSliceMode = OMX_VIDEO_SLICEMODE_AVCDefault;
-                  break;
-              }
+                        case 1:
+                            m_sProfile.eSliceMode = OMX_VIDEO_SLICEMODE_AVCMBSlice;
+                            break;
+
+                        case 2:
+                            m_sProfile.eSliceMode = OMX_VIDEO_SLICEMODE_AVCByteSlice;
+                            break;
+
+                        default:
+                            E("invalid Slice Mode");
+                            m_sProfile.eSliceMode = OMX_VIDEO_SLICEMODE_AVCDefault;
+                            break;
+                    }
+                }
+
+                if (profile_argi < argc) {
+                    if (!strncmp(argv[profile_argi], "0x", 2) || !strncmp(argv[profile_argi], "0x", 2)) {
+                        m_sProfile.nUserProfile = strtoul(argv[profile_argi], NULL, 16);
+                    } else {
+                        m_sProfile.nUserProfile = strtoul(argv[profile_argi], NULL, 10);
+                    }
+
+                    if (!m_sProfile.nUserProfile || m_sProfile.nUserProfile == ULONG_MAX) {
+                        E("invalid specified Profile %s, using default", argv[profile_argi]);
+                        m_sProfile.nUserProfile = 0;
+                    }
+                }
             }
-            if (profile_argi < argc)
-            {
-               if (!strncmp(argv[profile_argi], "0x", 2) || !strncmp(argv[profile_argi], "0x", 2))
-               {
-                  m_sProfile.nUserProfile = strtoul(argv[profile_argi], NULL, 16);
-               }
-               else
-               {
-                  m_sProfile.nUserProfile = strtoul(argv[profile_argi], NULL, 10);
-               }
-               if (!m_sProfile.nUserProfile || m_sProfile.nUserProfile == ULONG_MAX)
-               {
-                  E("invalid specified Profile %s, using default", argv[profile_argi]);
-                  m_sProfile.nUserProfile = 0;
-               }
-            }
-         }
-      }
-      m_sProfile.cInFileName = argv[7];
-      m_sProfile.cOutFileName = argv[8];
-   }
-   else if (strcmp("PROFILE", argv[1]) == 0 ||
-            strcmp("profile", argv[1]) == 0)
-   {//263
-      m_eMode = MODE_PROFILE;
-      if (argc != 8)
-      {
-         usage(argv[0]);
-      }
-      m_sProfile.cInFileName = argv[7];
-      m_sProfile.cOutFileName = NULL;
-   }
-   else
-   {
-      usage(argv[0]);
-   }
+        }
+
+        m_sProfile.cInFileName = argv[7];
+        m_sProfile.cOutFileName = argv[8];
+    } else if (strcmp("PROFILE", argv[1]) == 0 ||
+            strcmp("profile", argv[1]) == 0) {//263
+        m_eMode = MODE_PROFILE;
+
+        if (argc != 8) {
+            usage(argv[0]);
+        }
+
+        m_sProfile.cInFileName = argv[7];
+        m_sProfile.cOutFileName = NULL;
+    } else {
+        usage(argv[0]);
+    }
 
 
-   if (strcmp("QCIF", argv[2]) == 0 ||
-       strcmp("qcif", argv[2]) == 0)
-   {
-      m_sProfile.nFrameWidth = 176;
-      m_sProfile.nFrameHeight = 144;
-      m_sProfile.nFrameBytes = 176*144*3/2;
-      m_sProfile.eLevel = OMX_VIDEO_MPEG4Level0;
-   }
-   else if (strcmp("QVGA", argv[2]) == 0 ||
-            strcmp("qvga", argv[2]) == 0)
-   {
-      m_sProfile.nFrameWidth = 320;
-      m_sProfile.nFrameHeight = 240;
-      m_sProfile.nFrameBytes = 320*240*3/2;
-      m_sProfile.eLevel = OMX_VIDEO_MPEG4Level1;
-   }
+    if (strcmp("QCIF", argv[2]) == 0 ||
+            strcmp("qcif", argv[2]) == 0) {
+        m_sProfile.nFrameWidth = 176;
+        m_sProfile.nFrameHeight = 144;
+        m_sProfile.nFrameBytes = 176*144*3/2;
+        m_sProfile.eLevel = OMX_VIDEO_MPEG4Level0;
+    } else if (strcmp("QVGA", argv[2]) == 0 ||
+            strcmp("qvga", argv[2]) == 0) {
+        m_sProfile.nFrameWidth = 320;
+        m_sProfile.nFrameHeight = 240;
+        m_sProfile.nFrameBytes = 320*240*3/2;
+        m_sProfile.eLevel = OMX_VIDEO_MPEG4Level1;
+    }
 
 
     else if (strcmp("VGA", argv[2]) == 0 ||
-            strcmp("vga", argv[2]) == 0)
-   {
-      m_sProfile.nFrameWidth = 640;
-      m_sProfile.nFrameHeight = 480;
-      m_sProfile.nFrameBytes = 640*480*3/2;
-      m_sProfile.eLevel = OMX_VIDEO_MPEG4Level1;
-   }
+            strcmp("vga", argv[2]) == 0) {
+        m_sProfile.nFrameWidth = 640;
+        m_sProfile.nFrameHeight = 480;
+        m_sProfile.nFrameBytes = 640*480*3/2;
+        m_sProfile.eLevel = OMX_VIDEO_MPEG4Level1;
+    }
 
     else if (strcmp("WVGA", argv[2]) == 0 ||
-            strcmp("wvga", argv[2]) == 0)
-   {
-      m_sProfile.nFrameWidth = 800;
-      m_sProfile.nFrameHeight = 480;
-      m_sProfile.nFrameBytes = 800*480*3/2;
-      m_sProfile.eLevel = OMX_VIDEO_MPEG4Level1;
-   }
-  else if (strcmp("CIF", argv[2]) == 0 ||
-            strcmp("cif", argv[2]) == 0)
-   {
-      m_sProfile.nFrameWidth = 352;
-      m_sProfile.nFrameHeight = 288;
-      m_sProfile.nFrameBytes = 352*288*3/2;
-      m_sProfile.eLevel = OMX_VIDEO_MPEG4Level1;
-   }
-   else if (strcmp("720", argv[2]) == 0)
-   {
-      m_sProfile.nFrameWidth = 1280;
-      m_sProfile.nFrameHeight = 720;
-      m_sProfile.nFrameBytes = 720*1280*3/2;
-      m_sProfile.eLevel = OMX_VIDEO_MPEG4Level1;
-   }
-   else if (strcmp("1080", argv[2]) == 0)
-   {
-      m_sProfile.nFrameWidth = 1920;
-      m_sProfile.nFrameHeight = 1080;
-      m_sProfile.nFrameBytes = 1920*1080*3/2;
-      m_sProfile.eLevel = OMX_VIDEO_MPEG4Level1;
-   }
-#ifdef _MSM8974_
-   else if (strcmp("4K2K", argv[2]) == 0)
-   {
-      m_sProfile.nFrameWidth = 4096;
-      m_sProfile.nFrameHeight = 2160;
-      m_sProfile.nFrameBytes = 4096*2160*3/2;
-      m_sProfile.eLevel = OMX_VIDEO_MPEG4Level1;
-   }
-   else if (strcmp("2160P", argv[2]) == 0)
-   {
-      m_sProfile.nFrameWidth = 3840;
-      m_sProfile.nFrameHeight = 2160;
-      m_sProfile.nFrameBytes = 3840*2160*3/2;
-      m_sProfile.eLevel = OMX_VIDEO_MPEG4Level1;
-   }
-#endif
-   else if (parseWxH(argv[2], &m_sProfile.nFrameWidth, &m_sProfile.nFrameHeight))
-   {
-      m_sProfile.nFrameBytes = m_sProfile.nFrameWidth*m_sProfile.nFrameHeight*3/2;
-      m_sProfile.eLevel = OMX_VIDEO_MPEG4Level1;
-   }
-   else
-   {
-      usage(argv[0]);
-   }
+            strcmp("wvga", argv[2]) == 0) {
+        m_sProfile.nFrameWidth = 800;
+        m_sProfile.nFrameHeight = 480;
+        m_sProfile.nFrameBytes = 800*480*3/2;
+        m_sProfile.eLevel = OMX_VIDEO_MPEG4Level1;
+    } else if (strcmp("CIF", argv[2]) == 0 ||
+            strcmp("cif", argv[2]) == 0) {
+        m_sProfile.nFrameWidth = 352;
+        m_sProfile.nFrameHeight = 288;
+        m_sProfile.nFrameBytes = 352*288*3/2;
+        m_sProfile.eLevel = OMX_VIDEO_MPEG4Level1;
+    } else if (strcmp("720", argv[2]) == 0) {
+        m_sProfile.nFrameWidth = 1280;
+        m_sProfile.nFrameHeight = 720;
+        m_sProfile.nFrameBytes = 720*1280*3/2;
+        m_sProfile.eLevel = OMX_VIDEO_MPEG4Level1;
+    } else if (strcmp("1080", argv[2]) == 0) {
+        m_sProfile.nFrameWidth = 1920;
+        m_sProfile.nFrameHeight = 1080;
+        m_sProfile.nFrameBytes = 1920*1080*3/2;
+        m_sProfile.eLevel = OMX_VIDEO_MPEG4Level1;
+    }
 
 #ifdef _MSM8974_
-   m_sProfile.nFramestride =  (m_sProfile.nFrameWidth + 31) & (~31);
-   m_sProfile.nFrameScanlines = (m_sProfile.nFrameHeight + 31) & (~31);
-   m_sProfile.nFrameBytes = ((m_sProfile.nFramestride * m_sProfile.nFrameScanlines * 3/2) + 4095) & (~4095);
-   m_sProfile.nFrameRead = m_sProfile.nFramestride * m_sProfile.nFrameScanlines * 3/2;
-#endif
-   if (m_eMode == MODE_DISPLAY ||
-       m_eMode == MODE_PREVIEW)
-   {
-      m_sProfile.nFramerate = atof(argv[3]);
-      m_nFramePlay = atoi(argv[4]);
+    else if (strcmp("4K2K", argv[2]) == 0) {
+        m_sProfile.nFrameWidth = 4096;
+        m_sProfile.nFrameHeight = 2160;
+        m_sProfile.nFrameBytes = 4096*2160*3/2;
+        m_sProfile.eLevel = OMX_VIDEO_MPEG4Level1;
+    } else if (strcmp("2160P", argv[2]) == 0) {
+        m_sProfile.nFrameWidth = 3840;
+        m_sProfile.nFrameHeight = 2160;
+        m_sProfile.nFrameBytes = 3840*2160*3/2;
+        m_sProfile.eLevel = OMX_VIDEO_MPEG4Level1;
+    }
 
-   }
-   else if (m_eMode == MODE_LIVE_ENCODE ||
+#endif
+    else if (parseWxH(argv[2], &m_sProfile.nFrameWidth, &m_sProfile.nFrameHeight)) {
+        m_sProfile.nFrameBytes = m_sProfile.nFrameWidth*m_sProfile.nFrameHeight*3/2;
+        m_sProfile.eLevel = OMX_VIDEO_MPEG4Level1;
+    } else {
+        usage(argv[0]);
+    }
+
+#ifdef _MSM8974_
+    m_sProfile.nFramestride =  (m_sProfile.nFrameWidth + 31) & (~31);
+    m_sProfile.nFrameScanlines = (m_sProfile.nFrameHeight + 31) & (~31);
+    m_sProfile.nFrameBytes = ((m_sProfile.nFramestride * m_sProfile.nFrameScanlines * 3/2) + 4095) & (~4095);
+    m_sProfile.nFrameRead = m_sProfile.nFramestride * m_sProfile.nFrameScanlines * 3/2;
+#endif
+
+    if (m_eMode == MODE_DISPLAY ||
+            m_eMode == MODE_PREVIEW) {
+        m_sProfile.nFramerate = atof(argv[3]);
+        m_nFramePlay = atoi(argv[4]);
+
+    } else if (m_eMode == MODE_LIVE_ENCODE ||
             m_eMode == MODE_FILE_ENCODE ||
-            m_eMode == MODE_PROFILE)
-   {
-      if ((!strcmp(argv[3], "MP4")) || (!strcmp(argv[3], "mp4")))
-      {
-         m_sProfile.eCodec = OMX_VIDEO_CodingMPEG4;
-      }
-      else if ((!strcmp(argv[3], "H263")) || (!strcmp(argv[3], "h263")))
-      {
-         m_sProfile.eCodec = OMX_VIDEO_CodingH263;
-      }
-      else if ((!strcmp(argv[3], "H264")) || (!strcmp(argv[3], "h264")))
-      {
-         m_sProfile.eCodec = OMX_VIDEO_CodingAVC;
-      }
-#ifdef _MSM8974_
-      else if ((!strcmp(argv[3], "VP8")) || (!strcmp(argv[3], "vp8")))
-      {
-         m_sProfile.eCodec = OMX_VIDEO_CodingVPX;
-      }
-#endif
-      else
-      {
-         usage(argv[0]);
-      }
-
-      m_sProfile.nFramerate = atof(argv[4]);
-      m_sProfile.nBitrate = atoi(argv[5]);
-//      m_sProfile.eControlRate = OMX_Video_ControlRateVariable;
-      m_nFramePlay = atoi(argv[6]);
-      if (dyn_file_arg < argc)
-      {
-        m_pDynConfFile = fopen(argv[dyn_file_arg], "r");
-        if (!m_pDynConfFile)
-          E("ERROR: Cannot open dynamic config file: %s", argv[dyn_file_arg]);
-        else
-        {
-          memset(&dynamic_config, 0, sizeof(struct DynamicConfig));
+            m_eMode == MODE_PROFILE) {
+        if ((!strcmp(argv[3], "MP4")) || (!strcmp(argv[3], "mp4"))) {
+            m_sProfile.eCodec = OMX_VIDEO_CodingMPEG4;
+        } else if ((!strcmp(argv[3], "H263")) || (!strcmp(argv[3], "h263"))) {
+            m_sProfile.eCodec = OMX_VIDEO_CodingH263;
+        } else if ((!strcmp(argv[3], "H264")) || (!strcmp(argv[3], "h264"))) {
+            m_sProfile.eCodec = OMX_VIDEO_CodingAVC;
         }
-      }
-   }
+
+#ifdef _MSM8974_
+        else if ((!strcmp(argv[3], "VP8")) || (!strcmp(argv[3], "vp8"))) {
+            m_sProfile.eCodec = OMX_VIDEO_CodingVPX;
+        }
+
+#endif
+        else {
+            usage(argv[0]);
+        }
+
+        m_sProfile.nFramerate = atof(argv[4]);
+        m_sProfile.nBitrate = atoi(argv[5]);
+        //      m_sProfile.eControlRate = OMX_Video_ControlRateVariable;
+        m_nFramePlay = atoi(argv[6]);
+
+        if (dyn_file_arg < argc) {
+            m_pDynConfFile = fopen(argv[dyn_file_arg], "r");
+
+            if (!m_pDynConfFile)
+                E("ERROR: Cannot open dynamic config file: %s", argv[dyn_file_arg]);
+            else {
+                memset(&dynamic_config, 0, sizeof(struct DynamicConfig));
+            }
+        }
+    }
 }
 
 void* Watchdog(void* data)
 {
-   while (1)
-   {
-      sleep(1000);
-      if (m_bWatchDogKicked == true)
-         m_bWatchDogKicked = false;
-      else
-         E("watchdog has not been kicked. we may have a deadlock");
-   }
-   return NULL;
+    while (1) {
+        sleep(1000);
+
+        if (m_bWatchDogKicked == true)
+            m_bWatchDogKicked = false;
+        else
+            E("watchdog has not been kicked. we may have a deadlock");
+    }
+
+    return NULL;
 }
 
 int main(int argc, char** argv)
 {
-   OMX_U8* pvirt = NULL;
-   int result;
-   float enc_time_sec=0.0,enc_time_usec=0.0;
+    OMX_U8* pvirt = NULL;
+    int result;
+    float enc_time_sec=0.0,enc_time_usec=0.0;
 
-   m_nInFd = -1;
-   m_nOutFd = -1;
-   m_nTimeStamp = 0;
-   m_nFrameIn = 0;
-   m_nFrameOut = 0;
+    m_nInFd = -1;
+    m_nOutFd = -1;
+    m_nTimeStamp = 0;
+    m_nFrameIn = 0;
+    m_nFrameOut = 0;
 
-   memset(&m_sMsgQ, 0, sizeof(MsgQ));
-   memset(&m_sProfile, 0, sizeof(m_sProfile));
-   parseArgs(argc, argv);
+    memset(&m_sMsgQ, 0, sizeof(MsgQ));
+    memset(&m_sProfile, 0, sizeof(m_sProfile));
+    parseArgs(argc, argv);
 
-   D("fps=%f, bitrate=%u, width=%u, height=%u, frame bytes=%u",
-     m_sProfile.nFramerate,
-     m_sProfile.nBitrate,
-     m_sProfile.nFrameWidth,
-     m_sProfile.nFrameHeight,
-     m_sProfile.nFrameBytes);
+    D("fps=%f, bitrate=%u, width=%u, height=%u, frame bytes=%u",
+            m_sProfile.nFramerate,
+            m_sProfile.nBitrate,
+            m_sProfile.nFrameWidth,
+            m_sProfile.nFrameHeight,
+            m_sProfile.nFrameBytes);
 #ifdef _MSM8974_
-   D("Frame stride=%u, scanlines=%u, read=%u",
-		   m_sProfile.nFramestride,
-		   m_sProfile.nFrameScanlines,
-		   m_sProfile.nFrameRead);
+    D("Frame stride=%u, scanlines=%u, read=%u",
+            m_sProfile.nFramestride,
+            m_sProfile.nFrameScanlines,
+            m_sProfile.nFrameRead);
 #endif
 
 
-   //if (m_eMode != MODE_PREVIEW && m_eMode != MODE_DISPLAY)
-   //{
-     // pthread_t wd;
-     // pthread_create(&wd, NULL, Watchdog, NULL);
-   //}
+    //if (m_eMode != MODE_PREVIEW && m_eMode != MODE_DISPLAY)
+    //{
+    // pthread_t wd;
+    // pthread_create(&wd, NULL, Watchdog, NULL);
+    //}
 
-   for (int x = 0; x < num_in_buffers; x++)
-   {
-      // mark all buffers as ready to use
-      m_bInFrameFree[x] = OMX_TRUE;
-   }
+    for (int x = 0; x < num_in_buffers; x++) {
+        // mark all buffers as ready to use
+        m_bInFrameFree[x] = OMX_TRUE;
+    }
 
 
-    if (m_eMode != MODE_PROFILE)
-   {
-      #if T_ARM
-	   m_nOutFd = open(m_sProfile.cOutFileName, O_WRONLY | O_CREAT | O_TRUNC, S_IRWXU | S_IRWXG | S_IRWXO);
-      #else
-	  m_nOutFd = open(m_sProfile.cOutFileName,0);
-      #endif
-      if (m_nOutFd < 0)
-      {
-         E("could not open output file %s", m_sProfile.cOutFileName);
-         CHK(1);
-      }
-   }
-
-   pthread_mutex_init(&m_mutex, NULL);
-   pthread_cond_init(&m_signal, NULL);
-
-   if (m_eMode != MODE_PREVIEW)
-   {
-      VencTest_Initialize();
-   }
-
-   ////////////////////////////////////////
-   // Camera + Encode
-   ////////////////////////////////////////
-   if (m_eMode == MODE_LIVE_ENCODE)
-   {
-     CameraTest_Initialize(m_sProfile.nFramerate,
-                            m_sProfile.nFrameWidth,
-                            m_sProfile.nFrameHeight,
-                            PreviewCallback);
-      CameraTest_Run();
-   }
-
-   if (m_eMode == MODE_FILE_ENCODE ||
-       m_eMode == MODE_PROFILE)
-   {
-      int i;
-      #if T_ARM
-      m_nInFd = open(m_sProfile.cInFileName, O_RDONLY);
-      #else
-      m_nInFd = open(m_sProfile.cInFileName,1);
-      #endif
-	  if (m_nInFd < 0)
-      {
-         E("could not open input file");
-         CHK(1);
-
-      }
-      D("going to idle state");
-      //SetState(OMX_StateIdle);
-      OMX_SendCommand(m_hHandle,
-                      OMX_CommandStateSet,
-                      (OMX_U32) OMX_StateIdle,
-                       NULL);
-
-      OMX_PARAM_PORTDEFINITIONTYPE portDef;
-
-      portDef.nPortIndex = 0;
-      result = OMX_GetParameter(m_hHandle, OMX_IndexParamPortDefinition, &portDef);
-      CHK(result);
-
-      D("allocating Input buffers");
-      num_in_buffers = portDef.nBufferCountActual;
-      for (i = 0; i < portDef.nBufferCountActual; i++)
-      {
-         OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO* pMem = new OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO;
-         pvirt = (OMX_U8*)PmemMalloc(pMem, m_sProfile.nFrameBytes);
-
-         if(pvirt == NULL)
-         {
-            CHK(1);
-         }
-         result = VencTest_RegisterYUVBuffer(&m_pInBuffers[i],
-                                             (OMX_U8*) pvirt,
-                                             (OMX_PTR) pMem);
-         CHK(result);
-      }
-   }
-   else if (m_eMode == MODE_LIVE_ENCODE)
-   {
-       D("going to idle state");
-       //SetState(OMX_StateIdle);
-       OMX_SendCommand(m_hHandle,
-                       OMX_CommandStateSet,
-                       (OMX_U32) OMX_StateIdle,
-                        NULL);
-   }
-
-   int i;
-   OMX_PARAM_PORTDEFINITIONTYPE portDef;
-
-   portDef.nPortIndex = 1;
-   result = OMX_GetParameter(m_hHandle, OMX_IndexParamPortDefinition, &portDef);
-   CHK(result);
-
-   D("allocating & calling usebuffer for Output port");
-   num_out_buffers = portDef.nBufferCountActual;
-   for (i = 0; i < portDef.nBufferCountActual; i++)
-   {
-      void* pBuff;
-
-      pBuff = malloc(portDef.nBufferSize);
-     D("portDef.nBufferSize = %d ",portDef.nBufferSize);
-      result = OMX_UseBuffer(m_hHandle,
-                             &m_pOutBuffers[i],
-                             (OMX_U32) PORT_INDEX_OUT,
-                             NULL,
-                             portDef.nBufferSize,
-                             (OMX_U8*) pBuff);
-      CHK(result);
-   }
-   D("allocate done");
-
-        // D("Going to state " # eState"...");
-
-         while (m_eState != OMX_StateIdle)
-         {
-            sleep(1);
-         }
-         //D("Now in state " # eState);
-
-
-   D("going to executing state");
-   SetState(OMX_StateExecuting);
-   for (i = 0; i < num_out_buffers; i++)
-   {
-      D("filling buffer %d", i);
-      result = OMX_FillThisBuffer(m_hHandle, m_pOutBuffers[i]);
-      //sleep(1000);
-      CHK(result);
-   }
-
-   if (m_eMode == MODE_FILE_ENCODE)
-   {
-      // encode the first frame to kick off the whole process
-      VencTest_ReadAndEmpty(m_pInBuffers[0]);
-    //  FBTest_DisplayImage(((PmemBuffer*) m_pInBuffers[0]->pAppPrivate)->fd,0);
-   }
-
-   if (m_eMode == MODE_PROFILE)
-   {
-      int i;
-
-      // read several frames into memory
-      D("reading frames into memory");
-      for (i = 0; i < num_in_buffers; i++)
-      {
-        D("[%d] address 0x%x",i, m_pInBuffers[i]->pBuffer);
-#ifdef MAX_RES_720P
-         read(m_nInFd,
-              m_pInBuffers[i]->pBuffer,
-              m_sProfile.nFrameBytes);
+    if (m_eMode != MODE_PROFILE) {
+#if T_ARM
+        m_nOutFd = open(m_sProfile.cOutFileName, O_WRONLY | O_CREAT | O_TRUNC, S_IRWXU | S_IRWXG | S_IRWXO);
 #else
-         // read Y first
-         read(m_nInFd,
-              m_pInBuffers[i]->pBuffer,
-              m_sProfile.nFrameWidth*m_sProfile.nFrameHeight);
-
-         // check alignment for offset to C
-         OMX_U32 offset_to_c = m_sProfile.nFrameWidth * m_sProfile.nFrameHeight;
-
-         const OMX_U32 C_2K = (1024*2),
-            MASK_2K = C_2K-1,
-            IMASK_2K = ~MASK_2K;
-
-         if (offset_to_c & MASK_2K)
-         {
-            // offset to C is not 2k aligned, adjustment is required
-            offset_to_c = (offset_to_c & IMASK_2K) + C_2K;
-         }
-
-         // read C
-         read(m_nInFd,
-              m_pInBuffers[i]->pBuffer + offset_to_c,
-              m_sProfile.nFrameWidth*m_sProfile.nFrameHeight/2);
+        m_nOutFd = open(m_sProfile.cOutFileName,0);
 #endif
 
-      }
+        if (m_nOutFd < 0) {
+            E("could not open output file %s", m_sProfile.cOutFileName);
+            CHK(1);
+        }
+    }
 
-     // FBTest_Initialize(m_sProfile.nFrameWidth, m_sProfile.nFrameHeight);
+    pthread_mutex_init(&m_mutex, NULL);
+    pthread_cond_init(&m_signal, NULL);
 
-      // loop over the mem-resident frames and encode them
-      D("beging playing mem-resident frames...");
-      for (i = 0; m_nFramePlay == 0 || i < m_nFramePlay; i++)
-      {
-         int idx = i % num_in_buffers;
-         if (m_bInFrameFree[idx] == OMX_FALSE)
-         {
-            int j;
-            E("the expected buffer is not free, but lets find another");
+    if (m_eMode != MODE_PREVIEW) {
+        VencTest_Initialize();
+    }
 
-            idx = -1;
+    ////////////////////////////////////////
+    // Camera + Encode
+    ////////////////////////////////////////
+    if (m_eMode == MODE_LIVE_ENCODE) {
+        CameraTest_Initialize(m_sProfile.nFramerate,
+                m_sProfile.nFrameWidth,
+                m_sProfile.nFrameHeight,
+                PreviewCallback);
+        CameraTest_Run();
+    }
 
-            // lets see if we can find another free buffer
-            for (j = 0; j < num_in_buffers; j++)
-            {
-               if(m_bInFrameFree[j])
-               {
-                  idx = j;
-                  break;
-               }
+    if (m_eMode == MODE_FILE_ENCODE ||
+            m_eMode == MODE_PROFILE) {
+        int i;
+#if T_ARM
+        m_nInFd = open(m_sProfile.cInFileName, O_RDONLY);
+#else
+        m_nInFd = open(m_sProfile.cInFileName,1);
+#endif
+
+        if (m_nInFd < 0) {
+            E("could not open input file");
+            CHK(1);
+
+        }
+
+        D("going to idle state");
+        //SetState(OMX_StateIdle);
+        OMX_SendCommand(m_hHandle,
+                OMX_CommandStateSet,
+                (OMX_U32) OMX_StateIdle,
+                NULL);
+
+        OMX_PARAM_PORTDEFINITIONTYPE portDef;
+
+        portDef.nPortIndex = 0;
+        result = OMX_GetParameter(m_hHandle, OMX_IndexParamPortDefinition, &portDef);
+        CHK(result);
+
+        D("allocating Input buffers");
+        num_in_buffers = portDef.nBufferCountActual;
+
+        for (i = 0; i < portDef.nBufferCountActual; i++) {
+            OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO* pMem = new OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO;
+            pvirt = (OMX_U8*)PmemMalloc(pMem, m_sProfile.nFrameBytes);
+
+            if (pvirt == NULL) {
+                CHK(1);
             }
-         }
 
-         // if we have a free buffer let's encode it
-         if (idx >= 0)
-         {
-            D("encode frame %d...m_pInBuffers[idx]->pBuffer=0x%x", i,m_pInBuffers[idx]->pBuffer);
-            m_bInFrameFree[idx] = OMX_FALSE;
-            VencTest_EncodeFrame(m_pInBuffers[idx]->pBuffer,
-                                 m_nTimeStamp);
-            D("display frame %d...", i);
-        //    FBTest_DisplayImage(((PmemBuffer*) m_pInBuffers[idx]->pAppPrivate)->fd,0);
-            m_nTimeStamp += 1000000 / m_sProfile.nFramerate;
-         }
-         else
-         {
-            E("wow, no buffers are free, performance "
-              "is not so good. lets just sleep some more");
-
-         }
-         D("sleep for %d microsec", 1000000/m_sProfile.nFramerate);
-         sleep (1000000 / m_sProfile.nFramerate);
-      }
-     // FBTest_Exit();
-   }
-
-   Msg msg;
-   bool bQuit = false;
-   while ((m_eMode == MODE_FILE_ENCODE || m_eMode == MODE_LIVE_ENCODE) &&
-          !bQuit)
-   {
-      PopMessage(&msg);
-      switch (msg.id)
-      {
-      //////////////////////////////////
-      // FRAME IS ENCODED
-      //////////////////////////////////
-      case MSG_ID_INPUT_FRAME_DONE:
-         /*pthread_mutex_lock(&m_mutex);
-         ++m_nFrameOut;
-         if (m_nFrameOut == m_nFramePlay && m_nFramePlay != 0)
-         {
-            bQuit = true;
-         }
-         pthread_mutex_unlock(&m_mutex);*/
-
-         if (!bQuit && m_eMode == MODE_FILE_ENCODE)
-         {
-            D("pushing another frame down to encoder");
-            if (VencTest_ReadAndEmpty(msg.data.sBitstreamData.pBuffer))
-            {
-               // we have read the last frame
-               D("main is exiting...");
-               bQuit = true;
-            }
-         }
-       break;
-      case MSG_ID_OUTPUT_FRAME_DONE:
-         D("================ writing frame %d = %d bytes to output file",
-           m_nFrameOut+1,
-           msg.data.sBitstreamData.pBuffer->nFilledLen);
-         D("StopEncodeTime=%lld", GetTimeStamp());
-
-
-		 write(m_nOutFd,
-               msg.data.sBitstreamData.pBuffer->pBuffer,
-               msg.data.sBitstreamData.pBuffer->nFilledLen);
-
-
-         result = OMX_FillThisBuffer(m_hHandle,
-                                     msg.data.sBitstreamData.pBuffer);
-
-         if (result != OMX_ErrorNone)
-         {
+            result = VencTest_RegisterYUVBuffer(&m_pInBuffers[i],
+                    (OMX_U8*) pvirt,
+                    (OMX_PTR) pMem);
             CHK(result);
-         }
+        }
+    } else if (m_eMode == MODE_LIVE_ENCODE) {
+        D("going to idle state");
+        //SetState(OMX_StateIdle);
+        OMX_SendCommand(m_hHandle,
+                OMX_CommandStateSet,
+                (OMX_U32) OMX_StateIdle,
+                NULL);
+    }
 
-         pthread_mutex_lock(&m_mutex);
-         ++m_nFrameOut;
-         if (m_nFrameOut == m_nFramePlay && m_nFramePlay != 0)
-         {
-            bQuit = true;
-         }
-         pthread_mutex_unlock(&m_mutex);
-         break;
+    int i;
+    OMX_PARAM_PORTDEFINITIONTYPE portDef;
 
-      default:
-         E("invalid msg id %d", (int) msg.id);
-      } // end switch (msg.id)
+    portDef.nPortIndex = 1;
+    result = OMX_GetParameter(m_hHandle, OMX_IndexParamPortDefinition, &portDef);
+    CHK(result);
 
-/*  // TO UNCOMMENT FOR PAUSE TESTINGS
-      if(m_nFrameOut == 10)
-      {
-         E("\nGoing to Pause state\n");
-         SetState(OMX_StatePause);
-         sleep(3);
-//REQUEST AN I FRAME AFTER PAUSE
-         OMX_CONFIG_INTRAREFRESHVOPTYPE voprefresh;
-         voprefresh.nPortIndex = (OMX_U32)PORT_INDEX_OUT;
-         voprefresh.IntraRefreshVOP = OMX_TRUE;
-         result = OMX_SetConfig(m_hHandle,
-                                   OMX_IndexConfigVideoIntraVOPRefresh,
-                                   &voprefresh);
-         E("\n OMX_IndexConfigVideoIntraVOPRefresh Set Paramter port");
-         CHK(result);
-         E("\nGoing to executing state\n");
-         SetState(OMX_StateExecuting);
-      }
-*/
-   } // end while (!bQuit)
+    D("allocating & calling usebuffer for Output port");
+    num_out_buffers = portDef.nBufferCountActual;
+
+    for (i = 0; i < portDef.nBufferCountActual; i++) {
+        void* pBuff;
+
+        pBuff = malloc(portDef.nBufferSize);
+        D("portDef.nBufferSize = %d ",portDef.nBufferSize);
+        result = OMX_UseBuffer(m_hHandle,
+                &m_pOutBuffers[i],
+                (OMX_U32) PORT_INDEX_OUT,
+                NULL,
+                portDef.nBufferSize,
+                (OMX_U8*) pBuff);
+        CHK(result);
+    }
+
+    D("allocate done");
+
+    // D("Going to state " # eState"...");
+
+    while (m_eState != OMX_StateIdle) {
+        sleep(1);
+    }
+
+    //D("Now in state " # eState);
 
 
-   if (m_eMode == MODE_LIVE_ENCODE)
-   {
-      CameraTest_Exit();
-      close(m_nOutFd);
-   }
-   else if (m_eMode == MODE_FILE_ENCODE ||
-            m_eMode == MODE_PROFILE)
-   {
-      // deallocate pmem buffers
-      for (int i = 0; i < num_in_buffers; i++)
-      {
-         PmemFree((OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO*)m_pInBuffers[i]->pAppPrivate,
-                  m_pInBuffers[i]->pBuffer,
-                  m_sProfile.nFrameBytes);
-         delete (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO*) m_pInBuffers[i]->pAppPrivate;
-      }
-      close(m_nInFd);
+    D("going to executing state");
+    SetState(OMX_StateExecuting);
 
-      if (m_eMode == MODE_FILE_ENCODE)
-      {
-         close(m_nOutFd);
-      }
-      if (m_pDynConfFile)
-      {
-        fclose(m_pDynConfFile);
-        m_pDynConfFile = NULL;
-      }
-   }
+    for (i = 0; i < num_out_buffers; i++) {
+        D("filling buffer %d", i);
+        result = OMX_FillThisBuffer(m_hHandle, m_pOutBuffers[i]);
+        //sleep(1000);
+        CHK(result);
+    }
 
-   if (m_eMode != MODE_PREVIEW)
-   {
-      D("exit encoder test");
-      VencTest_Exit();
-   }
+    if (m_eMode == MODE_FILE_ENCODE) {
+        // encode the first frame to kick off the whole process
+        VencTest_ReadAndEmpty(m_pInBuffers[0]);
+        //  FBTest_DisplayImage(((PmemBuffer*) m_pInBuffers[0]->pAppPrivate)->fd,0);
+    }
 
-   pthread_mutex_destroy(&m_mutex);
-   pthread_cond_destroy(&m_signal);
+    if (m_eMode == MODE_PROFILE) {
+        int i;
 
-   /* Time Statistics Logging */
-   if(0 != m_sProfile.nFramerate)
-   {
-      enc_time_usec = m_nTimeStamp - (1000000 / m_sProfile.nFramerate);
-      enc_time_sec =enc_time_usec/1000000;
-      if(0 != enc_time_sec)
-      {
-         printf("Total Frame Rate: %f",ebd_cnt/enc_time_sec);
-         printf("\nEncoder Bitrate :%lf Kbps",(tot_bufsize*8)/(enc_time_sec*1000));
-      }
-   }
-   else
-   {
-      printf("\n\n Encode Time is zero");
-   }
-   printf("\nTotal Number of Frames :%d",ebd_cnt);
-   printf("\nNumber of dropped frames during encoding:%d\n",ebd_cnt-fbd_cnt);
-   /* End of Time Statistics Logging */
+        // read several frames into memory
+        D("reading frames into memory");
 
-   D("main has exited");
-   return 0;
+        for (i = 0; i < num_in_buffers; i++) {
+            D("[%d] address 0x%x",i, m_pInBuffers[i]->pBuffer);
+#ifdef MAX_RES_720P
+            read(m_nInFd,
+                    m_pInBuffers[i]->pBuffer,
+                    m_sProfile.nFrameBytes);
+#else
+            // read Y first
+            read(m_nInFd,
+                    m_pInBuffers[i]->pBuffer,
+                    m_sProfile.nFrameWidth*m_sProfile.nFrameHeight);
+
+            // check alignment for offset to C
+            OMX_U32 offset_to_c = m_sProfile.nFrameWidth * m_sProfile.nFrameHeight;
+
+            const OMX_U32 C_2K = (1024*2),
+                  MASK_2K = C_2K-1,
+                  IMASK_2K = ~MASK_2K;
+
+            if (offset_to_c & MASK_2K) {
+                // offset to C is not 2k aligned, adjustment is required
+                offset_to_c = (offset_to_c & IMASK_2K) + C_2K;
+            }
+
+            // read C
+            read(m_nInFd,
+                    m_pInBuffers[i]->pBuffer + offset_to_c,
+                    m_sProfile.nFrameWidth*m_sProfile.nFrameHeight/2);
+#endif
+
+        }
+
+        // FBTest_Initialize(m_sProfile.nFrameWidth, m_sProfile.nFrameHeight);
+
+        // loop over the mem-resident frames and encode them
+        D("beging playing mem-resident frames...");
+
+        for (i = 0; m_nFramePlay == 0 || i < m_nFramePlay; i++) {
+            int idx = i % num_in_buffers;
+
+            if (m_bInFrameFree[idx] == OMX_FALSE) {
+                int j;
+                E("the expected buffer is not free, but lets find another");
+
+                idx = -1;
+
+                // lets see if we can find another free buffer
+                for (j = 0; j < num_in_buffers; j++) {
+                    if (m_bInFrameFree[j]) {
+                        idx = j;
+                        break;
+                    }
+                }
+            }
+
+            // if we have a free buffer let's encode it
+            if (idx >= 0) {
+                D("encode frame %d...m_pInBuffers[idx]->pBuffer=0x%x", i,m_pInBuffers[idx]->pBuffer);
+                m_bInFrameFree[idx] = OMX_FALSE;
+                VencTest_EncodeFrame(m_pInBuffers[idx]->pBuffer,
+                        m_nTimeStamp);
+                D("display frame %d...", i);
+                //    FBTest_DisplayImage(((PmemBuffer*) m_pInBuffers[idx]->pAppPrivate)->fd,0);
+                m_nTimeStamp += 1000000 / m_sProfile.nFramerate;
+            } else {
+                E("wow, no buffers are free, performance "
+                        "is not so good. lets just sleep some more");
+
+            }
+
+            D("sleep for %d microsec", 1000000/m_sProfile.nFramerate);
+            sleep (1000000 / m_sProfile.nFramerate);
+        }
+
+        // FBTest_Exit();
+    }
+
+    Msg msg;
+    bool bQuit = false;
+
+    while ((m_eMode == MODE_FILE_ENCODE || m_eMode == MODE_LIVE_ENCODE) &&
+            !bQuit) {
+        PopMessage(&msg);
+
+        switch (msg.id) {
+            //////////////////////////////////
+            // FRAME IS ENCODED
+            //////////////////////////////////
+            case MSG_ID_INPUT_FRAME_DONE:
+                /*pthread_mutex_lock(&m_mutex);
+                  ++m_nFrameOut;
+                  if (m_nFrameOut == m_nFramePlay && m_nFramePlay != 0)
+                  {
+                  bQuit = true;
+                  }
+                  pthread_mutex_unlock(&m_mutex);*/
+
+                if (!bQuit && m_eMode == MODE_FILE_ENCODE) {
+                    D("pushing another frame down to encoder");
+
+                    if (VencTest_ReadAndEmpty(msg.data.sBitstreamData.pBuffer)) {
+                        // we have read the last frame
+                        D("main is exiting...");
+                        bQuit = true;
+                    }
+                }
+
+                break;
+            case MSG_ID_OUTPUT_FRAME_DONE:
+                D("================ writing frame %d = %d bytes to output file",
+                        m_nFrameOut+1,
+                        msg.data.sBitstreamData.pBuffer->nFilledLen);
+                D("StopEncodeTime=%lld", GetTimeStamp());
+
+
+                write(m_nOutFd,
+                        msg.data.sBitstreamData.pBuffer->pBuffer,
+                        msg.data.sBitstreamData.pBuffer->nFilledLen);
+
+
+                result = OMX_FillThisBuffer(m_hHandle,
+                        msg.data.sBitstreamData.pBuffer);
+
+                if (result != OMX_ErrorNone) {
+                    CHK(result);
+                }
+
+                pthread_mutex_lock(&m_mutex);
+                ++m_nFrameOut;
+
+                if (m_nFrameOut == m_nFramePlay && m_nFramePlay != 0) {
+                    bQuit = true;
+                }
+
+                pthread_mutex_unlock(&m_mutex);
+                break;
+
+            default:
+                E("invalid msg id %d", (int) msg.id);
+        } // end switch (msg.id)
+
+        /*  // TO UNCOMMENT FOR PAUSE TESTINGS
+            if(m_nFrameOut == 10)
+            {
+            E("\nGoing to Pause state\n");
+            SetState(OMX_StatePause);
+            sleep(3);
+        //REQUEST AN I FRAME AFTER PAUSE
+        OMX_CONFIG_INTRAREFRESHVOPTYPE voprefresh;
+        voprefresh.nPortIndex = (OMX_U32)PORT_INDEX_OUT;
+        voprefresh.IntraRefreshVOP = OMX_TRUE;
+        result = OMX_SetConfig(m_hHandle,
+        OMX_IndexConfigVideoIntraVOPRefresh,
+        &voprefresh);
+        E("\n OMX_IndexConfigVideoIntraVOPRefresh Set Paramter port");
+        CHK(result);
+        E("\nGoing to executing state\n");
+        SetState(OMX_StateExecuting);
+        }
+         */
+    } // end while (!bQuit)
+
+
+    if (m_eMode == MODE_LIVE_ENCODE) {
+        CameraTest_Exit();
+        close(m_nOutFd);
+    } else if (m_eMode == MODE_FILE_ENCODE ||
+            m_eMode == MODE_PROFILE) {
+        // deallocate pmem buffers
+        for (int i = 0; i < num_in_buffers; i++) {
+            PmemFree((OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO*)m_pInBuffers[i]->pAppPrivate,
+                    m_pInBuffers[i]->pBuffer,
+                    m_sProfile.nFrameBytes);
+            delete (OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO*) m_pInBuffers[i]->pAppPrivate;
+        }
+
+        close(m_nInFd);
+
+        if (m_eMode == MODE_FILE_ENCODE) {
+            close(m_nOutFd);
+        }
+
+        if (m_pDynConfFile) {
+            fclose(m_pDynConfFile);
+            m_pDynConfFile = NULL;
+        }
+    }
+
+    if (m_eMode != MODE_PREVIEW) {
+        D("exit encoder test");
+        VencTest_Exit();
+    }
+
+    pthread_mutex_destroy(&m_mutex);
+    pthread_cond_destroy(&m_signal);
+
+    /* Time Statistics Logging */
+    if (0 != m_sProfile.nFramerate) {
+        enc_time_usec = m_nTimeStamp - (1000000 / m_sProfile.nFramerate);
+        enc_time_sec =enc_time_usec/1000000;
+
+        if (0 != enc_time_sec) {
+            printf("Total Frame Rate: %f",ebd_cnt/enc_time_sec);
+            printf("\nEncoder Bitrate :%lf Kbps",(tot_bufsize*8)/(enc_time_sec*1000));
+        }
+    } else {
+        printf("\n\n Encode Time is zero");
+    }
+
+    printf("\nTotal Number of Frames :%d",ebd_cnt);
+    printf("\nNumber of dropped frames during encoding:%d\n",ebd_cnt-fbd_cnt);
+    /* End of Time Statistics Logging */
+
+    D("main has exited");
+    return 0;
 }
diff --git a/mm-video-v4l2/vidc/venc/test/venc_util.c b/mm-video-v4l2/vidc/venc/test/venc_util.c
old mode 100755
new mode 100644
index 4e4688e..ab91df8
--- a/mm-video-v4l2/vidc/venc/test/venc_util.c
+++ b/mm-video-v4l2/vidc/venc/test/venc_util.c
@@ -1,51 +1,51 @@
-/*--------------------------------------------------------------------------

-Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.

-

-Redistribution and use in source and binary forms, with or without

-modification, are permitted provided that the following conditions are met:

-    * Redistributions of source code must retain the above copyright

-      notice, this list of conditions and the following disclaimer.

-    * Redistributions in binary form must reproduce the above copyright

-      notice, this list of conditions and the following disclaimer in the

-      documentation and/or other materials provided with the distribution.

-    * Neither the name of The Linux Foundation nor

-      the names of its contributors may be used to endorse or promote

-      products derived from this software without specific prior written

-      permission.

-

-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

-IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

-NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR

-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;

-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF

-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---------------------------------------------------------------------------*/

-/*============================================================================

-                    V E N C _ U T I L. C

-

-DESCRIPTION

-

-

-REFERENCES

-

-============================================================================*/

-

-#include "venc_util.h"

-#include <time.h>

-#include <sys/time.h>

-

-long long GetTimeStamp()

-{

-   struct timeval tv;

-   long long microsec;

-   gettimeofday(&tv, NULL);

-   microsec = (tv.tv_sec * 1000000) + (tv.tv_usec);

-   return microsec;

-

-}

-

+/*--------------------------------------------------------------------------
+Copyright (c) 2010-2011, 2013, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of The Linux Foundation nor
+      the names of its contributors may be used to endorse or promote
+      products derived from this software without specific prior written
+      permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------*/
+/*============================================================================
+                    V E N C _ U T I L. C
+
+DESCRIPTION
+
+
+REFERENCES
+
+============================================================================*/
+
+#include "venc_util.h"
+#include <time.h>
+#include <sys/time.h>
+
+long long GetTimeStamp()
+{
+    struct timeval tv;
+    long long microsec;
+    gettimeofday(&tv, NULL);
+    microsec = (tv.tv_sec * 1000000) + (tv.tv_usec);
+    return microsec;
+
+}
+
diff --git a/mm-video-v4l2/vidc/venc/test/video_encoder_test.c b/mm-video-v4l2/vidc/venc/test/video_encoder_test.c
old mode 100755
new mode 100644
index 567d081..e23f4e8
--- a/mm-video-v4l2/vidc/venc/test/video_encoder_test.c
+++ b/mm-video-v4l2/vidc/venc/test/video_encoder_test.c
@@ -1,1064 +1,1001 @@
-/*--------------------------------------------------------------------------

-Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.

-

-Redistribution and use in source and binary forms, with or without

-modification, are permitted provided that the following conditions are met:

-    * Redistributions of source code must retain the above copyright

-      notice, this list of conditions and the following disclaimer.

-    * Redistributions in binary form must reproduce the above copyright

-      notice, this list of conditions and the following disclaimer in the

-      documentation and/or other materials provided with the distribution.

-    * Neither the name of The Linux Foundation nor

-      the names of its contributors may be used to endorse or promote

-      products derived from this software without specific prior written

-      permission.

-

-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"

-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

-IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

-NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR

-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;

-OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,

-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR

-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF

-ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

---------------------------------------------------------------------------*/

-#include "video_encoder_test.h"

-

-#define DEBUG_PRINT printf

-/************************************************************************/

-/*        #DEFINES                          */

-/************************************************************************/

-

-#define VOP_START_CODE 0x000001B6

-#define SHORT_HEADER_START_CODE 0x00008000

-#define H264_START_CODE         0x00000001

-

-/************************************************************************/

-/*        STATIC VARIABLES                          */

-/************************************************************************/

-

-static int Code_type;

-static int total_frames = 0;

-static unsigned int header_code = 0;

-static pthread_mutex_t read_lock;

-

-static unsigned int read_frame ( unsigned char *dataptr,unsigned int length,

-                                 FILE * inputBufferFile

-                                );

-static unsigned clp2(unsigned x)

-{

-        x = x - 1;

-        x = x | (x >> 1);

-        x = x | (x >> 2);

-        x = x | (x >> 4);

-        x = x | (x >> 8);

-        x = x | (x >>16);

-        return x + 1;

-}

-

-

-static void* video_thread (void *);

-static void* async_thread (void *);

-

-

-

-int main (int argc, char **argv)

-{

-  struct video_encoder_context *encoder_context = NULL;

-  char *file_name = NULL;

-  FILE *file_ptr = NULL;

-  int temp1 =0,temp2 =0;

-  int error = 1;

-  unsigned int i = 0;

-

-  file_name = argv [1];

-  file_ptr = fopen (file_name,"rb");

-

-  if (file_ptr == NULL)

-  {

-    DEBUG_PRINT("\n File is not located ");

-    return -1;

-  }

-

-

-  encoder_context = (struct video_encoder_context *) \

-                   calloc (sizeof (struct video_encoder_context),1);

-  if (encoder_context == NULL)

-  {

-    return -1;

-  }

-  encoder_context->outputBufferFile = NULL;

-  encoder_context->inputBufferFile = NULL;

-  encoder_context->video_driver_fd = -1;

-  encoder_context->inputBufferFile = file_ptr;

-  encoder_context->input_width = 176;

-  encoder_context->input_height = 144;

-  encoder_context->codectype = VEN_CODEC_MPEG4;

-  encoder_context->fps_num = 60;

-  encoder_context->fps_den = 2;

-  encoder_context->inputformat = VEN_INPUTFMT_NV12;

-  encoder_context->targetbitrate = 128000;

-

-  file_ptr = fopen ("/data/output.m4v","wb");

-  if (file_ptr == NULL)

-  {

-    DEBUG_PRINT("\n File can't be created");

-    free (encoder_context);

-    return -1;

-  }

-  encoder_context->outputBufferFile = file_ptr;

-

-   switch (atoi(argv[2]))

-   {

-   case 0:

-     DEBUG_PRINT("\n MPEG4 codec selected");

-     encoder_context->codectype = VEN_CODEC_MPEG4;

-     Code_type = 0;

-     break;

-   case 1:

-     DEBUG_PRINT("\n H.263");

-     encoder_context->codectype = VEN_CODEC_H263;

-     Code_type = 0;

-     break;

-   case 2:

-     DEBUG_PRINT("\n H.264");

-     encoder_context->codectype = VEN_CODEC_H264;

-     Code_type = 1;

-     break;

-   default:

-     DEBUG_PRINT("\n Wrong codec type");

-     error = -1;

-     break;

-   }

-

-   if (error != -1)

-   {

-     temp1 = atoi(argv[3]);

-     temp2 = atoi(argv[4]);

-

-     if (((temp1%16) != 0) || ((temp2%16) != 0))

-     {

-       error = -1;

-     }

-     else

-     {

-      encoder_context->input_width = temp1;

-      encoder_context->input_height = temp2;

-     }

-   }

-

-   switch (atoi(argv[5]))

-   {

-   case 0:

-     DEBUG_PRINT("\n No Sink");

-     encoder_context->outputBufferFile = NULL;

-     break;

-   }

-

-   if (error != -1)

-   {

-     encoder_context->targetbitrate = atoi (argv[6]);

-   }

-

-   if ( error != -1 && (init_encoder (encoder_context) == -1 ))

-   {

-      DEBUG_PRINT("\n Init decoder fails ");

-      error = -1;

-   }

-   DEBUG_PRINT("\n Decoder open successfull");

-

-

-   /*Allocate input and output buffers*/

-   if (error != -1 && (allocate_buffer (0,encoder_context)== -1))

-   {

-     DEBUG_PRINT("\n Error in input Buffer allocation");

-     error = -1;

-   }

-

-   if (error != -1 && (allocate_buffer (1,encoder_context)== -1))

-   {

-     DEBUG_PRINT("\n Error in output Buffer allocation");

-     error = -1;

-   }

-

-

-   if (error != -1 && (start_encoding (encoder_context) == -1))

-   {

-     DEBUG_PRINT("\n Error in start decoding call");

-     error = -1;

-   }

-

-   if (error != -1 && (stop_encoding (encoder_context) == -1))

-   {

-     DEBUG_PRINT("\n Error in stop decoding call");

-     error = -1;

-   }

-

-   DEBUG_PRINT("\n De-init the decoder");

-   if ((deinit_encoder (encoder_context) == -1))

-   {

-      error = -1;

-   }

-

-

-  (void)free_buffer (INPUT_BUFFER,encoder_context);

-  (void)free_buffer (OUTPUT_BUFFER,encoder_context);

-

-  if (encoder_context->inputBufferFile != NULL)

-  {

-   fclose (encoder_context->inputBufferFile);

-  }

-  if (encoder_context->outputBufferFile != NULL)

-  {

-    fclose (encoder_context->outputBufferFile);

-  }

-  DEBUG_PRINT ("\n Total Number of frames decoded %d",total_frames);

-  DEBUG_PRINT("\n closing the driver");

-  free (encoder_context);

-

-  return error;

-}

-

-int init_encoder ( struct video_encoder_context *init_decode )

-{

-  struct venc_ioctl_msg ioctl_msg = {NULL,NULL};

-  struct venc_basecfg basecfg;

-  struct video_queue_context *queue_ptr = NULL;

-  struct venc_ratectrlcfg ratecrl;

-  pthread_mutexattr_t init_values;

-  struct venc_profile profile;

-  struct ven_profilelevel profilelevel;

-

-  DEBUG_PRINT("\n Before calling the open");

-

-  init_decode->video_driver_fd = open ("/dev/msm_vidc_enc", \

-                     O_RDWR | O_NONBLOCK);

-

-

-

-  if (init_decode->video_driver_fd < 0)

-  {

-    DEBUG_PRINT("\n Open failed");

-    return -1;

-  }

-

-  basecfg.codectype = init_decode->codectype;

-  basecfg.dvs_height = 0;

-  basecfg.dvs_width = 0;

-  basecfg.fps_den = init_decode->fps_den;

-  basecfg.fps_num = init_decode->fps_num;

-  basecfg.input_height = init_decode->input_height;

-  basecfg.input_width = init_decode->input_width;

-  basecfg.inputformat = init_decode->inputformat;

-  basecfg.targetbitrate = init_decode->targetbitrate;

-

-  /*Initialize Decoder with codec type and resolution*/

-  ioctl_msg.in = &basecfg;

-  ioctl_msg.out = NULL;

-

-  if (ioctl (init_decode->video_driver_fd,VEN_IOCTL_SET_BASE_CFG,

-         (void*)&ioctl_msg) < 0)

-  {

-    DEBUG_PRINT("\n Set base config type failed");

-    return -1;

-  }

-

-  /*Initialize Decoder with codec type and resolution*/

-  DEBUG_PRINT ("\n Switch off rate control");

-  ioctl_msg.in = &ratecrl;

-  ioctl_msg.out = NULL;

-  ratecrl.rcmode = VEN_RC_OFF;

-  if (ioctl (init_decode->video_driver_fd,VEN_IOCTL_SET_RATE_CTRL_CFG,

-         (void*)&ioctl_msg) < 0)

-  {

-    DEBUG_PRINT("\n Set rate control failed");

-    return -1;

-  }

-

-  if (basecfg.codectype == VEN_CODEC_H264)

-  {

-    DEBUG_PRINT ("\n Set the VEN_IOCTL_SET_CODEC_PROFILE High");

-    ioctl_msg.in = &profile;

-    ioctl_msg.out = NULL;

-    profile.profile = VEN_PROFILE_H264_BASELINE;

-    if (ioctl (init_decode->video_driver_fd,VEN_IOCTL_SET_CODEC_PROFILE,

-           (void*)&ioctl_msg) < 0)

-    {

-      DEBUG_PRINT("\n Set VEN_IOCTL_SET_CODEC_PROFILE failed");

-      return -1;

-    }

-

-    DEBUG_PRINT ("\n Set the VEN_IOCTL_SET_CODEC_PROFILE High");

-    ioctl_msg.in = &profilelevel;

-    ioctl_msg.out = NULL;

-    profilelevel.level = VEN_LEVEL_H264_1p1;

-    if (ioctl (init_decode->video_driver_fd,VEN_IOCTL_SET_PROFILE_LEVEL,

-           (void*)&ioctl_msg) < 0)

-    {

-      DEBUG_PRINT("\n Set VEN_IOCTL_SET_CODEC_PROFILE failed");

-      return -1;

-    }

-

-    if (basecfg.input_width > 720)

-    {

-      DEBUG_PRINT ("\n Set the VEN_IOCTL_SET_CODEC_PROFILE High");

-      ioctl_msg.in = &profile;

-      ioctl_msg.out = NULL;

-      profile.profile = VEN_PROFILE_H264_HIGH;

-      if (ioctl (init_decode->video_driver_fd,VEN_IOCTL_SET_CODEC_PROFILE,

-             (void*)&ioctl_msg) < 0)

-      {

-        DEBUG_PRINT("\n Set VEN_IOCTL_SET_CODEC_PROFILE failed");

-        return -1;

-      }

-

-      DEBUG_PRINT ("\n Set the VEN_IOCTL_SET_CODEC_PROFILE High");

-      ioctl_msg.in = &profilelevel;

-      ioctl_msg.out = NULL;

-      profilelevel.level = VEN_LEVEL_H264_3p1;

-      if (ioctl (init_decode->video_driver_fd,VEN_IOCTL_SET_PROFILE_LEVEL,

-             (void*)&ioctl_msg) < 0)

-      {

-        DEBUG_PRINT("\n Set VEN_IOCTL_SET_CODEC_PROFILE failed");

-        return -1;

-      }

-    }

-  }

-

-  DEBUG_PRINT("\n Query Input bufffer requirements");

-  /*Get the Buffer requirements for input and output ports*/

-

-

-

-  ioctl_msg.in = NULL;

-  ioctl_msg.out = &init_decode->input_buffer;

-

-  if (ioctl (init_decode->video_driver_fd,VEN_IOCTL_GET_INPUT_BUFFER_REQ,

-         (void*)&ioctl_msg) < 0)

-  {

-    DEBUG_PRINT("\n Requesting for input buffer requirements failed");

-    return -1;

-  }

-

-  DEBUG_PRINT("\n input Size=%d min count =%d actual count = %d", \

-              (int)init_decode->input_buffer.datasize,\

-              (int)init_decode->input_buffer.mincount,\

-              (int)init_decode->input_buffer.actualcount);

-

-

-  ioctl_msg.in = &init_decode->input_buffer;

-  ioctl_msg.out = NULL;

-  init_decode->input_buffer.actualcount = init_decode->input_buffer.mincount + 2;

-

-  if (ioctl (init_decode->video_driver_fd,VEN_IOCTL_SET_INPUT_BUFFER_REQ,

-         (void*)&ioctl_msg) < 0)

-  {

-    DEBUG_PRINT("\n Set Buffer Requirements Failed");

-    return -1;

-  }

-

-

-  DEBUG_PRINT("\n Query output bufffer requirements");

-  ioctl_msg.in = NULL;

-  ioctl_msg.out = &init_decode->output_buffer;

-

-  if (ioctl (init_decode->video_driver_fd,VEN_IOCTL_GET_OUTPUT_BUFFER_REQ,

-         (void*)&ioctl_msg) < 0)

-  {

-    DEBUG_PRINT("\n Requesting for output buffer requirements failed");

-    return -1;

-  }

-

-  DEBUG_PRINT("\n output Size=%d min count =%d actual count = %d", \

-              (int)init_decode->output_buffer.datasize,\

-              (int)init_decode->output_buffer.mincount,\

-              (int)init_decode->output_buffer.actualcount);

-

-  /*Create Queue related data structures*/

-  queue_ptr = &init_decode->queue_context;

-  queue_ptr->commandq_size = 50;

-  queue_ptr->dataq_size = 50;

-

-  sem_init(&queue_ptr->sem_message,0, 0);

-  sem_init(&init_decode->sem_synchronize,0, 0);

-

-  pthread_mutexattr_init (&init_values);

-  pthread_mutex_init (&queue_ptr->mutex,&init_values);

-  pthread_mutex_init (&read_lock,&init_values);

-  DEBUG_PRINT("\n create Queues");

-  queue_ptr->ptr_cmdq = (struct video_msgq*) \

-                        calloc (sizeof (struct video_msgq),

-                  queue_ptr->commandq_size);

-  queue_ptr->ptr_dataq = (struct video_msgq*) \

-              calloc (sizeof (struct video_msgq),

-                  queue_ptr->dataq_size

-                  );

-

-  if ( queue_ptr->ptr_cmdq == NULL ||

-     queue_ptr->ptr_dataq == NULL

-    )

-  {

-    return -1;

-  }

-  DEBUG_PRINT("\n create Threads");

-  /*Create two threads*/

-    if ( (pthread_create (&init_decode->videothread_id,NULL,video_thread,

-            init_decode) < 0) ||

-         (pthread_create (&init_decode->asyncthread_id,NULL,async_thread,

-            init_decode) < 0)

-    )

-  {

-    return -1;

-  }

-

-  return 1;

-}

-

-

-

-int free_buffer ( unsigned int  buffer_dir,

-                  struct video_encoder_context *encoder_context

-                 )

-{

-  unsigned int buffercount = 0,i=0;

-  struct venc_bufferpayload **ptemp = NULL;

-

-  if (encoder_context == NULL)

-  {

-    return -1;

-  }

-

-  if (buffer_dir == INPUT_BUFFER && encoder_context->ptr_inputbuffer)

-  {

-      buffercount = encoder_context->input_buffer.actualcount;

-      ptemp = encoder_context->ptr_inputbuffer;

-

-    for (i=0;i<buffercount;i++)

-    {

-      if (ptemp [i])

-      {

-        if (ptemp [i]->fd != -1)

-        {

-          munmap ( ptemp [i]->pbuffer,ptemp [i]->maped_size);

-          ptemp [i]->pbuffer = NULL;

-          close (ptemp [i]->fd);

-        }

-        free (ptemp [i]);

-        ptemp [i] = NULL;

-      }

-    }

-    free (encoder_context->ptr_inputbuffer);

-    encoder_context->ptr_inputbuffer = NULL;

-  }

-  else if ( buffer_dir == OUTPUT_BUFFER && encoder_context->ptr_outputbuffer )

-  {

-    buffercount = encoder_context->output_buffer.actualcount;

-    ptemp = encoder_context->ptr_outputbuffer;

-

-    if (ptemp)

-    {

-      for (i=0;i<buffercount;i++)

-      {

-        if (ptemp [i])

-        {

-          if (ptemp [i]->fd != -1)

-          {

-            munmap ( ptemp [i]->pbuffer,ptemp [i]->maped_size);

-            ptemp [i]->pbuffer = NULL;

-            close (ptemp [i]->fd);

-          }

-          free (ptemp [i]);

-          ptemp [i] = NULL;

-        }

-      }

-      free (ptemp);

-      encoder_context->ptr_outputbuffer = NULL;

-    }

-  }

-

-  return 1;

-}

-

-int allocate_buffer ( unsigned int buffer_dir,

-                      struct video_encoder_context *encoder_context

-                    )

-{

-  struct venc_bufferpayload **ptemp = NULL;

-  struct venc_ioctl_msg ioctl_msg = {NULL,NULL};

-  unsigned int buffercount = 0,i=0,alignedsize=0;

-  unsigned int buffersize = 0;

-

-  if ( encoder_context == NULL)

-  {

-    DEBUG_PRINT ("\nallocate_buffer: context is NULL");

-    return -1;

-  }

-

-  if ( buffer_dir == INPUT_BUFFER )

-  {

-        /*Check if buffers are allocated*/

-    if (encoder_context->ptr_inputbuffer != NULL)

-    {

-      DEBUG_PRINT ("\nallocate_buffer: encoder_context->ptr_inputbuffer is set");

-      return -1;

-    }

-

-    buffercount = encoder_context->input_buffer.actualcount;

-    alignedsize = encoder_context->input_buffer.alignment;

-    buffersize = encoder_context->input_buffer.datasize;

-    buffersize = (buffersize + alignedsize) & (~alignedsize);

-  }

-  else if (buffer_dir == OUTPUT_BUFFER)

-  {

-    /*Check if buffers are allocated*/

-    if (encoder_context->ptr_outputbuffer != NULL)

-    {

-      DEBUG_PRINT ("\nallocate_buffer: Double allcoate output");

-      return -1;

-    }

-

-    buffercount = encoder_context->output_buffer.actualcount;

-    alignedsize = encoder_context->output_buffer.alignment;

-    buffersize = encoder_context->output_buffer.datasize;

-    buffersize = (buffersize + alignedsize) & (~alignedsize);

-

-  }

-  else

-  {

-    DEBUG_PRINT ("\nallocate_buffer: Wrong buffer directions");

-    return -1;

-  }

-

-  ptemp = (struct venc_bufferpayload **)\

-  calloc (sizeof (struct venc_bufferpayload *),buffercount);

-

-  if (ptemp == NULL)

-  {

-    DEBUG_PRINT ("\nallocate_buffer: venc_bufferpayload failure");

-    return -1;

-  }

-

-

-  if (buffer_dir == OUTPUT_BUFFER)

-  {

-    DEBUG_PRINT ("\nallocate_buffer: OUT");

-    encoder_context->ptr_outputbuffer = ptemp;

-  }

-  else

-  {

-    DEBUG_PRINT ("\nallocate_buffer: IN");

-    encoder_context->ptr_inputbuffer = ptemp;

-  }

-

-  /*Allocate buffer headers*/

-  for (i=0; i< buffercount; i++)

-  {

-    ptemp [i] = (struct venc_bufferpayload*)\

-    calloc (sizeof (struct venc_bufferpayload),1);

-

-    if (ptemp [i] == NULL)

-    {

-      DEBUG_PRINT ("\nallocate_buffer: ptemp [i] calloc failure");

-      return -1;

-    }

-    ptemp [i]->fd = -1;

-  }

-

-  for (i=0; i< buffercount; i++)

-  {

-    ptemp [i]->fd = open ("/dev/pmem_adsp",O_RDWR);

-

-    if (ptemp [i]->fd < 0)

-    {

-      DEBUG_PRINT ("\nallocate_buffer: open pmem_adsp failed");

-      return -1;

-    }

-

-    ptemp [i]->pbuffer = mmap(NULL,clp2(buffersize),PROT_READ|PROT_WRITE,

-                                 MAP_SHARED,ptemp [i]->fd,0);

-    DEBUG_PRINT ("\n pmem fd = %d virt addr = %p",ptemp [i]->fd,\

-                  ptemp [i]->pbuffer);

-    if (ptemp [i]->pbuffer == MAP_FAILED)

-    {

-      ptemp [i]->pbuffer = NULL;

-      DEBUG_PRINT ("\nallocate_buffer: MMAP failed");

-      return -1;

-    }

-    ptemp [i]->sz = buffersize;

-    ptemp [i]->maped_size = clp2 (buffersize);

-

-    ioctl_msg.in  = ptemp [i];

-    ioctl_msg.out = NULL;

-

-    if (buffer_dir == OUTPUT_BUFFER)

-    {

-      if (ioctl (encoder_context->video_driver_fd,VEN_IOCTL_SET_OUTPUT_BUFFER,

-           &ioctl_msg) < 0)

-      {

-        DEBUG_PRINT ("\nallocate_buffer: Set Output Buffer IOCTL failed");

-        return -1;

-      }

-    }

-    else

-    {

-      if (ioctl (encoder_context->video_driver_fd,VEN_IOCTL_SET_INPUT_BUFFER,

-           &ioctl_msg) < 0)

-      {

-        DEBUG_PRINT ("\nallocate_buffer: Set input Buffer IOCTL failed");

-        return -1;

-      }

-    }

-

-  }

-  DEBUG_PRINT ("\nallocate_buffer: Success");

-  return 1;

-}

-

-

-

-int start_encoding (struct video_encoder_context *encoder_context)

-{

-  struct venc_ioctl_msg ioctl_msg = {NULL,NULL};

-  struct venc_buffer enc_buffer;

-  unsigned int i = 0;

-  unsigned int data_len =0;

-

-

-  if (encoder_context == NULL)

-  {

-    return -1;

-  }

-

-  if (ioctl (encoder_context->video_driver_fd,VEN_IOCTL_CMD_START,

-         NULL) < 0)

-  {

-    DEBUG_PRINT("\n Start failed");

-    return -1;

-  }

-

-  DEBUG_PRINT("\n Start Issued successfully waiting for Start Done");

-  /*Wait for Start command response*/

-  sem_wait (&encoder_context->sem_synchronize);

-

-  /*Push output Buffers*/

-  i = 0;

-  while (i < encoder_context->output_buffer.actualcount)

-  {

-    enc_buffer.clientdata = (void *)encoder_context->ptr_outputbuffer [i];

-    enc_buffer.flags = 0;

-    enc_buffer.sz = encoder_context->ptr_outputbuffer [i]->sz;

-    enc_buffer.len = 0;

-    enc_buffer.ptrbuffer = encoder_context->ptr_outputbuffer [i]->pbuffer;

-    enc_buffer.offset = 0;

-    enc_buffer.timestamp = 0;

-

-    DEBUG_PRINT ("\n Client Data on output = %p",(void *)enc_buffer.clientdata);

-    ioctl_msg.in = &enc_buffer;

-    ioctl_msg.out = NULL;

-

-    if (ioctl (encoder_context->video_driver_fd,

-           VEN_IOCTL_CMD_FILL_OUTPUT_BUFFER,&ioctl_msg) < 0)

-    {

-      DEBUG_PRINT("\n fill output frame failed");

-      return -1;

-    }

-    i++;

-  }

-

-

-  /*push input buffers*/

-  i = 0;

-  while (i < encoder_context->input_buffer.actualcount)

-  {

-    DEBUG_PRINT("\n Read  Frame from File");

-

-    enc_buffer.clientdata = (void *)encoder_context->ptr_inputbuffer [i];

-    enc_buffer.flags = 0;

-    enc_buffer.sz = encoder_context->ptr_inputbuffer [i]->sz;

-    enc_buffer.len = 0;

-    enc_buffer.ptrbuffer = encoder_context->ptr_inputbuffer [i]->pbuffer;

-    enc_buffer.offset = 0;

-    enc_buffer.timestamp = total_frames *

-                ((encoder_context->fps_den * 1000000)/encoder_context->fps_num);

-    enc_buffer.len = (encoder_context->input_height *

-                     encoder_context->input_width *3)/2;

-    data_len = read_frame ( enc_buffer.ptrbuffer,

-                            enc_buffer.len,

-                            encoder_context->inputBufferFile);

-    if (data_len == 0)

-    {

-      DEBUG_PRINT("\n Length is zero error");

-      return -1;

-    }

-    enc_buffer.len = data_len;

-    DEBUG_PRINT("\n Read  Frame from File szie = %d",(int)data_len);

-

-    DEBUG_PRINT ("\n Client Data on output = %p",(void *)enc_buffer.clientdata);

-    ioctl_msg.in = &enc_buffer;

-    ioctl_msg.out = NULL;

-

-    if (ioctl (encoder_context->video_driver_fd,

-           VEN_IOCTL_CMD_ENCODE_FRAME,&ioctl_msg) < 0)

-    {

-      DEBUG_PRINT("\n Encode input frame failed");

-      return -1;

-    }

-    total_frames++;

-    i++;

-  }

-  DEBUG_PRINT ("\n Wait for EOS");

-  /*Wait for EOS or Error condition*/

-  sem_wait (&encoder_context->sem_synchronize);

-  DEBUG_PRINT ("\n Reached EOS");

-

-  return 1;

-}

-

-int stop_encoding  (struct video_encoder_context *encoder_context)

-{

-  struct venc_ioctl_msg ioctl_msg = {NULL,NULL};

-  struct venc_bufferflush buffer_flush;

-

-  if (encoder_context == NULL)

-  {

-    return -1;

-  }

-  buffer_flush.flush_mode = VEN_FLUSH_INPUT;

-  ioctl_msg.in = &buffer_flush;

-  ioctl_msg.out = NULL;

-

-  if (ioctl(encoder_context->video_driver_fd,VEN_IOCTL_CMD_FLUSH,

-         &ioctl_msg) < 0)

-  {

-    DEBUG_PRINT("\n Flush input failed");

-  }

-  else

-  {

-       sem_wait (&encoder_context->sem_synchronize);

-  }

-

-  buffer_flush.flush_mode = VEN_FLUSH_OUTPUT;

-  ioctl_msg.in = &buffer_flush;

-  ioctl_msg.out = NULL;

-

-  if (ioctl(encoder_context->video_driver_fd,VEN_IOCTL_CMD_FLUSH,

-            &ioctl_msg) < 0)

-  {

-    DEBUG_PRINT("\n Flush output failed");

-  }

-  else

-  {

-     sem_wait (&encoder_context->sem_synchronize);

-  }

-

-  DEBUG_PRINT("\n Stop VEN_IOCTL_CMD_STOP");

-  if (ioctl(encoder_context->video_driver_fd,VEN_IOCTL_CMD_STOP,NULL) < 0)

-  {

-    DEBUG_PRINT("\n Stop failed");

-  }

-  else

-  {

-     sem_wait (&encoder_context->sem_synchronize);

-  }

-  return 1;

-}

-

-int deinit_encoder (struct video_encoder_context *init_decode)

-{

-  if (init_decode == NULL)

-  {

-    return -1;

-  }

-

-  /*Close the driver*/

-  if (init_decode->video_driver_fd != -1)

-  {

-    close (init_decode->video_driver_fd);

-  }

-

-  if (init_decode->queue_context.ptr_cmdq)

-  {

-    free (init_decode->queue_context.ptr_cmdq);

-    init_decode->queue_context.ptr_cmdq = NULL;

-  }

-

-  if (init_decode->queue_context.ptr_dataq)

-  {

-    free (init_decode->queue_context.ptr_dataq);

-    init_decode->queue_context.ptr_dataq = NULL;

-  }

-

-  sem_destroy (&init_decode->queue_context.sem_message);

-  sem_destroy (&init_decode->sem_synchronize);

-

-  pthread_mutex_destroy(&init_decode->queue_context.mutex);

-  pthread_mutex_destroy (&read_lock);

-

-  return 1;

-}

-

-static void* video_thread (void *context)

-{

-   struct video_encoder_context *encoder_context = NULL;

-   struct video_msgq *queueitem = NULL;

-   struct venc_ioctl_msg ioctl_msg = {NULL,NULL};

-   struct venc_bufferpayload *tempbuffer = NULL;

-   struct venc_buffer enc_buffer;

-   unsigned int data_len =0;

-

-

-   if (context == NULL)

-   {

-     DEBUG_PRINT("\n video thread recieved NULL context");

-     return NULL;

-   }

-   encoder_context = (struct video_encoder_context *) context;

-

-   /* Thread function which will accept commands from async thread

-    * or main thread

-   */

-   while (1)

-   {

-      queueitem = queue_get_cmd (&encoder_context ->queue_context);

-      if (queueitem != NULL)

-      {

-        switch (queueitem->cmd)

-        {

-        case VEN_MSG_START:

-          DEBUG_PRINT("\n recived start done command");

-            sem_post (&encoder_context->sem_synchronize);

-          break;

-

-        case VEN_MSG_STOP:

-          DEBUG_PRINT("\n recieved stop done");

-          sem_post (&encoder_context->sem_synchronize);

-          break;

-

-        case VEN_MSG_INPUT_BUFFER_DONE:

-

-          tempbuffer = (struct venc_bufferpayload *)queueitem->clientdata;

-          if (tempbuffer == NULL)

-          {

-            DEBUG_PRINT("\n FATAL ERROR input buffer address is bad");

-            sem_post (&encoder_context->sem_synchronize);

-            break;

-          }

-          tempbuffer->filled_len = (encoder_context->input_height *

-                             encoder_context->input_width *3)/2;

-

-          data_len = read_frame ( tempbuffer->pbuffer,

-                                  tempbuffer->filled_len,

-                                  encoder_context->inputBufferFile);

-

-          if (data_len == 0)

-          {

-            DEBUG_PRINT ("\n End of stream reached");

-            sem_post (&encoder_context->sem_synchronize);

-            break;

-          }

-          enc_buffer.clientdata = (void *)tempbuffer;

-          enc_buffer.flags = 0;

-          enc_buffer.ptrbuffer = tempbuffer->pbuffer;

-          enc_buffer.sz = tempbuffer->sz;

-          enc_buffer.len = tempbuffer->filled_len;

-          enc_buffer.offset = 0;

-          enc_buffer.timestamp = total_frames *

-                ((encoder_context->fps_den * 1000000)/encoder_context->fps_num);

-

-          /*TODO: Time stamp needs to be updated*/

-          ioctl_msg.in = &enc_buffer;

-          ioctl_msg.out = NULL;

-          total_frames++;

-          if (ioctl(encoder_context->video_driver_fd,VEN_IOCTL_CMD_ENCODE_FRAME,

-               &ioctl_msg) < 0)

-          {

-            DEBUG_PRINT("\n Decoder frame failed");

-            sem_post (&encoder_context->sem_synchronize);

-          }

-          DEBUG_PRINT("\n Input buffer done send next buffer current value = %d",\

-                      total_frames);

-          break;

-

-        case VEN_MSG_OUTPUT_BUFFER_DONE:

-

-          tempbuffer = (struct venc_bufferpayload *)queueitem->clientdata;

-          if (tempbuffer == NULL)

-          {

-            DEBUG_PRINT("\n FATAL ERROR input buffer address is bad");

-            sem_post (&encoder_context->sem_synchronize);

-            break;

-          }

-

-         if (encoder_context->outputBufferFile != NULL)

-         {

-           fwrite (tempbuffer->pbuffer,1,tempbuffer->filled_len,

-                encoder_context->outputBufferFile);

-         }

-

-

-         DEBUG_PRINT("\n recieved output buffer consume outbuffer");

-         DEBUG_PRINT("\nValues outputbuffer->bufferaddr = %p",\

-                     tempbuffer->pbuffer);

-         enc_buffer.clientdata = (void *)tempbuffer;

-         enc_buffer.flags = 0;

-         enc_buffer.sz = tempbuffer->sz;

-         enc_buffer.len = 0;

-         enc_buffer.ptrbuffer = tempbuffer->pbuffer;

-         enc_buffer.offset = 0;

-         enc_buffer.timestamp = 0;

-

-         ioctl_msg.in = &enc_buffer;

-         ioctl_msg.out = NULL;

-

-         if (ioctl (encoder_context->video_driver_fd,

-              VEN_IOCTL_CMD_FILL_OUTPUT_BUFFER,&ioctl_msg) < 0)

-         {

-           DEBUG_PRINT("\n Decoder frame failed");

-           return NULL;

-         }

-

-         break;

-

-        case VEN_MSG_FLUSH_INPUT_DONE:

-          DEBUG_PRINT("\n Flush input complete");

-          sem_post (&encoder_context->sem_synchronize);

-          break;

-

-        case VEN_MSG_FLUSH_OUPUT_DONE:

-          DEBUG_PRINT("\n Flush output complete");

-          sem_post (&encoder_context->sem_synchronize);

-          break;

-        }

-

-        if (queueitem->cmd == VEN_MSG_STOP)

-        {

-          DEBUG_PRINT("\n Playback has ended thread will exit");

-          return NULL;

-        }

-      }

-      else

-      {

-        DEBUG_PRINT("\n Error condition recieved NULL from Queue");

-      }

-

-   }

-}

-

-static void* async_thread (void *context)

-{

-  struct video_encoder_context *encoder_context = NULL;

-  struct video_msgq queueitem ;

-  struct venc_msg venc_msg;

-  struct venc_bufferpayload *tempbuffer = NULL;

-  struct venc_ioctl_msg ioctl_msg = {NULL,NULL};

-  int result = -1;

-

-  if (context == NULL)

-  {

-    DEBUG_PRINT("\n aynsc thread recieved NULL context");

-    return NULL;

-  }

-  encoder_context = (struct video_encoder_context *) context;

-  DEBUG_PRINT("\n Entering the async thread");

-

-  while (1)

-  {

-    ioctl_msg.in = NULL;

-    ioctl_msg.out = (void*)&venc_msg;

-    DEBUG_PRINT ("\n Sizeof venc_msginfo = %d ",sizeof (venc_msg));

-    DEBUG_PRINT("\n Address of Venc msg in async thread %p",\

-                ioctl_msg.out);

-    if (ioctl (encoder_context->video_driver_fd,VEN_IOCTL_CMD_READ_NEXT_MSG,\

-         (void*)&ioctl_msg) < 0)

-    {

-      DEBUG_PRINT("\n Error in ioctl read next msg");

-    }

-    else

-    {

-      switch (venc_msg.msgcode)

-      {

-      case VEN_MSG_START:

-      case VEN_MSG_STOP:

-      case VEN_MSG_INDICATION:

-        DEBUG_PRINT("\nSTOP/START Indiacation");

-        queueitem.cmd = venc_msg.msgcode;

-        queueitem.status = venc_msg.statuscode;

-        queueitem.clientdata = NULL;

-        break;

-

-      case VEN_MSG_INPUT_BUFFER_DONE:

-        DEBUG_PRINT("\nINPUT buffer done Indiacation");

-        queueitem.cmd = venc_msg.msgcode;

-        queueitem.status = venc_msg.statuscode;

-        queueitem.clientdata = (void *)venc_msg.buf.clientdata;

-        DEBUG_PRINT("\nInput Client data pointer is %p",queueitem.clientdata);

-        tempbuffer = (struct venc_bufferpayload *) queueitem.clientdata;

-        DEBUG_PRINT ("\n Input Address of tempbuffer %p",tempbuffer);

-        tempbuffer->filled_len = venc_msg.buf.len;

-        DEBUG_PRINT ("\n Input value of tempbuffer tempbuffer->filled_len %d",(int)tempbuffer->filled_len);

-        break;

-      case VEN_MSG_OUTPUT_BUFFER_DONE:

-        DEBUG_PRINT("\nOUPUT buffer done Indiacation");

-        queueitem.cmd = venc_msg.msgcode;

-        queueitem.status = venc_msg.statuscode;

-        queueitem.clientdata = (void *)venc_msg.buf.clientdata;

-        DEBUG_PRINT("\nOutput Client data pointer is %p",queueitem.clientdata);

-        tempbuffer = (struct venc_bufferpayload *) queueitem.clientdata;

-        DEBUG_PRINT ("\n Output Address of tempbuffer %p",tempbuffer);

-        tempbuffer->filled_len = venc_msg.buf.len;

-        DEBUG_PRINT ("\n Output value of tempbuffer tempbuffer->filled_len %d",(int)tempbuffer->filled_len);

-        break;

-

-      default:

-        DEBUG_PRINT("\nIn Default of get next message %d",(int)venc_msg.msgcode);

-        queueitem.cmd = venc_msg.msgcode;

-        queueitem.status = venc_msg.statuscode;

-        queueitem.clientdata = NULL;

-        break;

-      }

-      result = queue_post_cmdq (&encoder_context->queue_context,&queueitem);

-      while (result == 0)

-      {

-         result = queue_post_cmdq (&encoder_context->queue_context,&queueitem);

-      }

-

-      if (result == -1)

-      {

-        DEBUG_PRINT("\n FATAL ERROR WITH Queue");

-      }

-    }

-    if (venc_msg.msgcode == VEN_MSG_STOP)

-    {

-      /*Thread can exit at this point*/

-      return NULL;

-    }

-  }

-}

-

-

-static unsigned int read_frame (unsigned char *dataptr, unsigned int length,

-                                FILE * inputBufferFile)

-{

-

-  unsigned int readOffset = 0;

-  int bytes_read = 0;

-  unsigned int code = 0;

-  int found = 0;

-

-  DEBUG_PRINT ("\n Inside the readframe");

-

-  if (dataptr == NULL && length == 0)

-  {

-    DEBUG_PRINT ("\n dataptr = %p length = %d",dataptr,(int)length);

-    return 0;

-  }

-

-  pthread_mutex_lock(&read_lock);

-  bytes_read = fread(&dataptr[readOffset],1,length,inputBufferFile);

-  pthread_mutex_unlock(&read_lock);

-

-  return bytes_read;

-}

+/*--------------------------------------------------------------------------
+Copyright (c) 2010-2011, 2013, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+    * Neither the name of The Linux Foundation nor
+      the names of its contributors may be used to endorse or promote
+      products derived from this software without specific prior written
+      permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------*/
+#include "video_encoder_test.h"
+
+#define DEBUG_PRINT printf
+/************************************************************************/
+/*        #DEFINES                          */
+/************************************************************************/
+
+#define VOP_START_CODE 0x000001B6
+#define SHORT_HEADER_START_CODE 0x00008000
+#define H264_START_CODE         0x00000001
+
+/************************************************************************/
+/*        STATIC VARIABLES                          */
+/************************************************************************/
+
+static int Code_type;
+static int total_frames = 0;
+static unsigned int header_code = 0;
+static pthread_mutex_t read_lock;
+
+static unsigned int read_frame ( unsigned char *dataptr,unsigned int length,
+        FILE * inputBufferFile
+        );
+static unsigned clp2(unsigned x)
+{
+    x = x - 1;
+    x = x | (x >> 1);
+    x = x | (x >> 2);
+    x = x | (x >> 4);
+    x = x | (x >> 8);
+    x = x | (x >>16);
+    return x + 1;
+}
+
+
+static void* video_thread (void *);
+static void* async_thread (void *);
+
+
+
+int main (int argc, char **argv)
+{
+    struct video_encoder_context *encoder_context = NULL;
+    char *file_name = NULL;
+    FILE *file_ptr = NULL;
+    int temp1 =0,temp2 =0;
+    int error = 1;
+    unsigned int i = 0;
+
+    file_name = argv [1];
+    file_ptr = fopen (file_name,"rb");
+
+    if (file_ptr == NULL) {
+        DEBUG_PRINT("\n File is not located ");
+        return -1;
+    }
+
+
+    encoder_context = (struct video_encoder_context *) \
+              calloc (sizeof (struct video_encoder_context),1);
+
+    if (encoder_context == NULL) {
+        return -1;
+    }
+
+    encoder_context->outputBufferFile = NULL;
+    encoder_context->inputBufferFile = NULL;
+    encoder_context->video_driver_fd = -1;
+    encoder_context->inputBufferFile = file_ptr;
+    encoder_context->input_width = 176;
+    encoder_context->input_height = 144;
+    encoder_context->codectype = VEN_CODEC_MPEG4;
+    encoder_context->fps_num = 60;
+    encoder_context->fps_den = 2;
+    encoder_context->inputformat = VEN_INPUTFMT_NV12;
+    encoder_context->targetbitrate = 128000;
+
+    file_ptr = fopen ("/data/output.m4v","wb");
+
+    if (file_ptr == NULL) {
+        DEBUG_PRINT("\n File can't be created");
+        free (encoder_context);
+        return -1;
+    }
+
+    encoder_context->outputBufferFile = file_ptr;
+
+    switch (atoi(argv[2])) {
+        case 0:
+            DEBUG_PRINT("\n MPEG4 codec selected");
+            encoder_context->codectype = VEN_CODEC_MPEG4;
+            Code_type = 0;
+            break;
+        case 1:
+            DEBUG_PRINT("\n H.263");
+            encoder_context->codectype = VEN_CODEC_H263;
+            Code_type = 0;
+            break;
+        case 2:
+            DEBUG_PRINT("\n H.264");
+            encoder_context->codectype = VEN_CODEC_H264;
+            Code_type = 1;
+            break;
+        default:
+            DEBUG_PRINT("\n Wrong codec type");
+            error = -1;
+            break;
+    }
+
+    if (error != -1) {
+        temp1 = atoi(argv[3]);
+        temp2 = atoi(argv[4]);
+
+        if (((temp1%16) != 0) || ((temp2%16) != 0)) {
+            error = -1;
+        } else {
+            encoder_context->input_width = temp1;
+            encoder_context->input_height = temp2;
+        }
+    }
+
+    switch (atoi(argv[5])) {
+        case 0:
+            DEBUG_PRINT("\n No Sink");
+            encoder_context->outputBufferFile = NULL;
+            break;
+    }
+
+    if (error != -1) {
+        encoder_context->targetbitrate = atoi (argv[6]);
+    }
+
+    if ( error != -1 && (init_encoder (encoder_context) == -1 )) {
+        DEBUG_PRINT("\n Init decoder fails ");
+        error = -1;
+    }
+
+    DEBUG_PRINT("\n Decoder open successfull");
+
+
+    /*Allocate input and output buffers*/
+    if (error != -1 && (allocate_buffer (0,encoder_context)== -1)) {
+        DEBUG_PRINT("\n Error in input Buffer allocation");
+        error = -1;
+    }
+
+    if (error != -1 && (allocate_buffer (1,encoder_context)== -1)) {
+        DEBUG_PRINT("\n Error in output Buffer allocation");
+        error = -1;
+    }
+
+
+    if (error != -1 && (start_encoding (encoder_context) == -1)) {
+        DEBUG_PRINT("\n Error in start decoding call");
+        error = -1;
+    }
+
+    if (error != -1 && (stop_encoding (encoder_context) == -1)) {
+        DEBUG_PRINT("\n Error in stop decoding call");
+        error = -1;
+    }
+
+    DEBUG_PRINT("\n De-init the decoder");
+
+    if ((deinit_encoder (encoder_context) == -1)) {
+        error = -1;
+    }
+
+
+    (void)free_buffer (INPUT_BUFFER,encoder_context);
+    (void)free_buffer (OUTPUT_BUFFER,encoder_context);
+
+    if (encoder_context->inputBufferFile != NULL) {
+        fclose (encoder_context->inputBufferFile);
+    }
+
+    if (encoder_context->outputBufferFile != NULL) {
+        fclose (encoder_context->outputBufferFile);
+    }
+
+    DEBUG_PRINT ("\n Total Number of frames decoded %d",total_frames);
+    DEBUG_PRINT("\n closing the driver");
+    free (encoder_context);
+
+    return error;
+}
+
+int init_encoder ( struct video_encoder_context *init_decode )
+{
+    struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    struct venc_basecfg basecfg;
+    struct video_queue_context *queue_ptr = NULL;
+    struct venc_ratectrlcfg ratecrl;
+    pthread_mutexattr_t init_values;
+    struct venc_profile profile;
+    struct ven_profilelevel profilelevel;
+
+    DEBUG_PRINT("\n Before calling the open");
+
+    init_decode->video_driver_fd = open ("/dev/msm_vidc_enc", \
+            O_RDWR | O_NONBLOCK);
+
+
+
+    if (init_decode->video_driver_fd < 0) {
+        DEBUG_PRINT("\n Open failed");
+        return -1;
+    }
+
+    basecfg.codectype = init_decode->codectype;
+    basecfg.dvs_height = 0;
+    basecfg.dvs_width = 0;
+    basecfg.fps_den = init_decode->fps_den;
+    basecfg.fps_num = init_decode->fps_num;
+    basecfg.input_height = init_decode->input_height;
+    basecfg.input_width = init_decode->input_width;
+    basecfg.inputformat = init_decode->inputformat;
+    basecfg.targetbitrate = init_decode->targetbitrate;
+
+    /*Initialize Decoder with codec type and resolution*/
+    ioctl_msg.in = &basecfg;
+    ioctl_msg.out = NULL;
+
+    if (ioctl (init_decode->video_driver_fd,VEN_IOCTL_SET_BASE_CFG,
+                (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT("\n Set base config type failed");
+        return -1;
+    }
+
+    /*Initialize Decoder with codec type and resolution*/
+    DEBUG_PRINT ("\n Switch off rate control");
+    ioctl_msg.in = &ratecrl;
+    ioctl_msg.out = NULL;
+    ratecrl.rcmode = VEN_RC_OFF;
+
+    if (ioctl (init_decode->video_driver_fd,VEN_IOCTL_SET_RATE_CTRL_CFG,
+                (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT("\n Set rate control failed");
+        return -1;
+    }
+
+    if (basecfg.codectype == VEN_CODEC_H264) {
+        DEBUG_PRINT ("\n Set the VEN_IOCTL_SET_CODEC_PROFILE High");
+        ioctl_msg.in = &profile;
+        ioctl_msg.out = NULL;
+        profile.profile = VEN_PROFILE_H264_BASELINE;
+
+        if (ioctl (init_decode->video_driver_fd,VEN_IOCTL_SET_CODEC_PROFILE,
+                    (void*)&ioctl_msg) < 0) {
+            DEBUG_PRINT("\n Set VEN_IOCTL_SET_CODEC_PROFILE failed");
+            return -1;
+        }
+
+        DEBUG_PRINT ("\n Set the VEN_IOCTL_SET_CODEC_PROFILE High");
+        ioctl_msg.in = &profilelevel;
+        ioctl_msg.out = NULL;
+        profilelevel.level = VEN_LEVEL_H264_1p1;
+
+        if (ioctl (init_decode->video_driver_fd,VEN_IOCTL_SET_PROFILE_LEVEL,
+                    (void*)&ioctl_msg) < 0) {
+            DEBUG_PRINT("\n Set VEN_IOCTL_SET_CODEC_PROFILE failed");
+            return -1;
+        }
+
+        if (basecfg.input_width > 720) {
+            DEBUG_PRINT ("\n Set the VEN_IOCTL_SET_CODEC_PROFILE High");
+            ioctl_msg.in = &profile;
+            ioctl_msg.out = NULL;
+            profile.profile = VEN_PROFILE_H264_HIGH;
+
+            if (ioctl (init_decode->video_driver_fd,VEN_IOCTL_SET_CODEC_PROFILE,
+                        (void*)&ioctl_msg) < 0) {
+                DEBUG_PRINT("\n Set VEN_IOCTL_SET_CODEC_PROFILE failed");
+                return -1;
+            }
+
+            DEBUG_PRINT ("\n Set the VEN_IOCTL_SET_CODEC_PROFILE High");
+            ioctl_msg.in = &profilelevel;
+            ioctl_msg.out = NULL;
+            profilelevel.level = VEN_LEVEL_H264_3p1;
+
+            if (ioctl (init_decode->video_driver_fd,VEN_IOCTL_SET_PROFILE_LEVEL,
+                        (void*)&ioctl_msg) < 0) {
+                DEBUG_PRINT("\n Set VEN_IOCTL_SET_CODEC_PROFILE failed");
+                return -1;
+            }
+        }
+    }
+
+    DEBUG_PRINT("\n Query Input bufffer requirements");
+    /*Get the Buffer requirements for input and output ports*/
+
+
+
+    ioctl_msg.in = NULL;
+    ioctl_msg.out = &init_decode->input_buffer;
+
+    if (ioctl (init_decode->video_driver_fd,VEN_IOCTL_GET_INPUT_BUFFER_REQ,
+                (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT("\n Requesting for input buffer requirements failed");
+        return -1;
+    }
+
+    DEBUG_PRINT("\n input Size=%d min count =%d actual count = %d", \
+            (int)init_decode->input_buffer.datasize,\
+            (int)init_decode->input_buffer.mincount,\
+            (int)init_decode->input_buffer.actualcount);
+
+
+    ioctl_msg.in = &init_decode->input_buffer;
+    ioctl_msg.out = NULL;
+    init_decode->input_buffer.actualcount = init_decode->input_buffer.mincount + 2;
+
+    if (ioctl (init_decode->video_driver_fd,VEN_IOCTL_SET_INPUT_BUFFER_REQ,
+                (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT("\n Set Buffer Requirements Failed");
+        return -1;
+    }
+
+
+    DEBUG_PRINT("\n Query output bufffer requirements");
+    ioctl_msg.in = NULL;
+    ioctl_msg.out = &init_decode->output_buffer;
+
+    if (ioctl (init_decode->video_driver_fd,VEN_IOCTL_GET_OUTPUT_BUFFER_REQ,
+                (void*)&ioctl_msg) < 0) {
+        DEBUG_PRINT("\n Requesting for output buffer requirements failed");
+        return -1;
+    }
+
+    DEBUG_PRINT("\n output Size=%d min count =%d actual count = %d", \
+            (int)init_decode->output_buffer.datasize,\
+            (int)init_decode->output_buffer.mincount,\
+            (int)init_decode->output_buffer.actualcount);
+
+    /*Create Queue related data structures*/
+    queue_ptr = &init_decode->queue_context;
+    queue_ptr->commandq_size = 50;
+    queue_ptr->dataq_size = 50;
+
+    sem_init(&queue_ptr->sem_message,0, 0);
+    sem_init(&init_decode->sem_synchronize,0, 0);
+
+    pthread_mutexattr_init (&init_values);
+    pthread_mutex_init (&queue_ptr->mutex,&init_values);
+    pthread_mutex_init (&read_lock,&init_values);
+    DEBUG_PRINT("\n create Queues");
+    queue_ptr->ptr_cmdq = (struct video_msgq*) \
+                  calloc (sizeof (struct video_msgq),
+                          queue_ptr->commandq_size);
+    queue_ptr->ptr_dataq = (struct video_msgq*) \
+                   calloc (sizeof (struct video_msgq),
+                           queue_ptr->dataq_size
+                      );
+
+    if ( queue_ptr->ptr_cmdq == NULL ||
+            queue_ptr->ptr_dataq == NULL
+       ) {
+        return -1;
+    }
+
+    DEBUG_PRINT("\n create Threads");
+
+    /*Create two threads*/
+    if ( (pthread_create (&init_decode->videothread_id,NULL,video_thread,
+                    init_decode) < 0) ||
+            (pthread_create (&init_decode->asyncthread_id,NULL,async_thread,
+                     init_decode) < 0)
+       ) {
+        return -1;
+    }
+
+    return 1;
+}
+
+
+
+int free_buffer ( unsigned int  buffer_dir,
+        struct video_encoder_context *encoder_context
+        )
+{
+    unsigned int buffercount = 0,i=0;
+    struct venc_bufferpayload **ptemp = NULL;
+
+    if (encoder_context == NULL) {
+        return -1;
+    }
+
+    if (buffer_dir == INPUT_BUFFER && encoder_context->ptr_inputbuffer) {
+        buffercount = encoder_context->input_buffer.actualcount;
+        ptemp = encoder_context->ptr_inputbuffer;
+
+        for (i=0; i<buffercount; i++) {
+            if (ptemp [i]) {
+                if (ptemp [i]->fd != -1) {
+                    munmap ( ptemp [i]->pbuffer,ptemp [i]->maped_size);
+                    ptemp [i]->pbuffer = NULL;
+                    close (ptemp [i]->fd);
+                }
+
+                free (ptemp [i]);
+                ptemp [i] = NULL;
+            }
+        }
+
+        free (encoder_context->ptr_inputbuffer);
+        encoder_context->ptr_inputbuffer = NULL;
+    } else if ( buffer_dir == OUTPUT_BUFFER && encoder_context->ptr_outputbuffer ) {
+        buffercount = encoder_context->output_buffer.actualcount;
+        ptemp = encoder_context->ptr_outputbuffer;
+
+        if (ptemp) {
+            for (i=0; i<buffercount; i++) {
+                if (ptemp [i]) {
+                    if (ptemp [i]->fd != -1) {
+                        munmap ( ptemp [i]->pbuffer,ptemp [i]->maped_size);
+                        ptemp [i]->pbuffer = NULL;
+                        close (ptemp [i]->fd);
+                    }
+
+                    free (ptemp [i]);
+                    ptemp [i] = NULL;
+                }
+            }
+
+            free (ptemp);
+            encoder_context->ptr_outputbuffer = NULL;
+        }
+    }
+
+    return 1;
+}
+
+int allocate_buffer ( unsigned int buffer_dir,
+        struct video_encoder_context *encoder_context
+        )
+{
+    struct venc_bufferpayload **ptemp = NULL;
+    struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    unsigned int buffercount = 0,i=0,alignedsize=0;
+    unsigned int buffersize = 0;
+
+    if ( encoder_context == NULL) {
+        DEBUG_PRINT ("\nallocate_buffer: context is NULL");
+        return -1;
+    }
+
+    if ( buffer_dir == INPUT_BUFFER ) {
+        /*Check if buffers are allocated*/
+        if (encoder_context->ptr_inputbuffer != NULL) {
+            DEBUG_PRINT ("\nallocate_buffer: encoder_context->ptr_inputbuffer is set");
+            return -1;
+        }
+
+        buffercount = encoder_context->input_buffer.actualcount;
+        alignedsize = encoder_context->input_buffer.alignment;
+        buffersize = encoder_context->input_buffer.datasize;
+        buffersize = (buffersize + alignedsize) & (~alignedsize);
+    } else if (buffer_dir == OUTPUT_BUFFER) {
+        /*Check if buffers are allocated*/
+        if (encoder_context->ptr_outputbuffer != NULL) {
+            DEBUG_PRINT ("\nallocate_buffer: Double allcoate output");
+            return -1;
+        }
+
+        buffercount = encoder_context->output_buffer.actualcount;
+        alignedsize = encoder_context->output_buffer.alignment;
+        buffersize = encoder_context->output_buffer.datasize;
+        buffersize = (buffersize + alignedsize) & (~alignedsize);
+
+    } else {
+        DEBUG_PRINT ("\nallocate_buffer: Wrong buffer directions");
+        return -1;
+    }
+
+    ptemp = (struct venc_bufferpayload **)\
+        calloc (sizeof (struct venc_bufferpayload *),buffercount);
+
+    if (ptemp == NULL) {
+        DEBUG_PRINT ("\nallocate_buffer: venc_bufferpayload failure");
+        return -1;
+    }
+
+
+    if (buffer_dir == OUTPUT_BUFFER) {
+        DEBUG_PRINT ("\nallocate_buffer: OUT");
+        encoder_context->ptr_outputbuffer = ptemp;
+    } else {
+        DEBUG_PRINT ("\nallocate_buffer: IN");
+        encoder_context->ptr_inputbuffer = ptemp;
+    }
+
+    /*Allocate buffer headers*/
+    for (i=0; i< buffercount; i++) {
+        ptemp [i] = (struct venc_bufferpayload*)\
+                calloc (sizeof (struct venc_bufferpayload),1);
+
+        if (ptemp [i] == NULL) {
+            DEBUG_PRINT ("\nallocate_buffer: ptemp [i] calloc failure");
+            return -1;
+        }
+
+        ptemp [i]->fd = -1;
+    }
+
+    for (i=0; i< buffercount; i++) {
+        ptemp [i]->fd = open ("/dev/pmem_adsp",O_RDWR);
+
+        if (ptemp [i]->fd < 0) {
+            DEBUG_PRINT ("\nallocate_buffer: open pmem_adsp failed");
+            return -1;
+        }
+
+        ptemp [i]->pbuffer = mmap(NULL,clp2(buffersize),PROT_READ|PROT_WRITE,
+                MAP_SHARED,ptemp [i]->fd,0);
+        DEBUG_PRINT ("\n pmem fd = %d virt addr = %p",ptemp [i]->fd,\
+                ptemp [i]->pbuffer);
+
+        if (ptemp [i]->pbuffer == MAP_FAILED) {
+            ptemp [i]->pbuffer = NULL;
+            DEBUG_PRINT ("\nallocate_buffer: MMAP failed");
+            return -1;
+        }
+
+        ptemp [i]->sz = buffersize;
+        ptemp [i]->maped_size = clp2 (buffersize);
+
+        ioctl_msg.in  = ptemp [i];
+        ioctl_msg.out = NULL;
+
+        if (buffer_dir == OUTPUT_BUFFER) {
+            if (ioctl (encoder_context->video_driver_fd,VEN_IOCTL_SET_OUTPUT_BUFFER,
+                        &ioctl_msg) < 0) {
+                DEBUG_PRINT ("\nallocate_buffer: Set Output Buffer IOCTL failed");
+                return -1;
+            }
+        } else {
+            if (ioctl (encoder_context->video_driver_fd,VEN_IOCTL_SET_INPUT_BUFFER,
+                        &ioctl_msg) < 0) {
+                DEBUG_PRINT ("\nallocate_buffer: Set input Buffer IOCTL failed");
+                return -1;
+            }
+        }
+
+    }
+
+    DEBUG_PRINT ("\nallocate_buffer: Success");
+    return 1;
+}
+
+
+
+int start_encoding (struct video_encoder_context *encoder_context)
+{
+    struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    struct venc_buffer enc_buffer;
+    unsigned int i = 0;
+    unsigned int data_len =0;
+
+
+    if (encoder_context == NULL) {
+        return -1;
+    }
+
+    if (ioctl (encoder_context->video_driver_fd,VEN_IOCTL_CMD_START,
+                NULL) < 0) {
+        DEBUG_PRINT("\n Start failed");
+        return -1;
+    }
+
+    DEBUG_PRINT("\n Start Issued successfully waiting for Start Done");
+    /*Wait for Start command response*/
+    sem_wait (&encoder_context->sem_synchronize);
+
+    /*Push output Buffers*/
+    i = 0;
+
+    while (i < encoder_context->output_buffer.actualcount) {
+        enc_buffer.clientdata = (void *)encoder_context->ptr_outputbuffer [i];
+        enc_buffer.flags = 0;
+        enc_buffer.sz = encoder_context->ptr_outputbuffer [i]->sz;
+        enc_buffer.len = 0;
+        enc_buffer.ptrbuffer = encoder_context->ptr_outputbuffer [i]->pbuffer;
+        enc_buffer.offset = 0;
+        enc_buffer.timestamp = 0;
+
+        DEBUG_PRINT ("\n Client Data on output = %p",(void *)enc_buffer.clientdata);
+        ioctl_msg.in = &enc_buffer;
+        ioctl_msg.out = NULL;
+
+        if (ioctl (encoder_context->video_driver_fd,
+                    VEN_IOCTL_CMD_FILL_OUTPUT_BUFFER,&ioctl_msg) < 0) {
+            DEBUG_PRINT("\n fill output frame failed");
+            return -1;
+        }
+
+        i++;
+    }
+
+
+    /*push input buffers*/
+    i = 0;
+
+    while (i < encoder_context->input_buffer.actualcount) {
+        DEBUG_PRINT("\n Read  Frame from File");
+
+        enc_buffer.clientdata = (void *)encoder_context->ptr_inputbuffer [i];
+        enc_buffer.flags = 0;
+        enc_buffer.sz = encoder_context->ptr_inputbuffer [i]->sz;
+        enc_buffer.len = 0;
+        enc_buffer.ptrbuffer = encoder_context->ptr_inputbuffer [i]->pbuffer;
+        enc_buffer.offset = 0;
+        enc_buffer.timestamp = total_frames *
+            ((encoder_context->fps_den * 1000000)/encoder_context->fps_num);
+        enc_buffer.len = (encoder_context->input_height *
+                encoder_context->input_width *3)/2;
+        data_len = read_frame ( enc_buffer.ptrbuffer,
+                enc_buffer.len,
+                encoder_context->inputBufferFile);
+
+        if (data_len == 0) {
+            DEBUG_PRINT("\n Length is zero error");
+            return -1;
+        }
+
+        enc_buffer.len = data_len;
+        DEBUG_PRINT("\n Read  Frame from File szie = %d",(int)data_len);
+
+        DEBUG_PRINT ("\n Client Data on output = %p",(void *)enc_buffer.clientdata);
+        ioctl_msg.in = &enc_buffer;
+        ioctl_msg.out = NULL;
+
+        if (ioctl (encoder_context->video_driver_fd,
+                    VEN_IOCTL_CMD_ENCODE_FRAME,&ioctl_msg) < 0) {
+            DEBUG_PRINT("\n Encode input frame failed");
+            return -1;
+        }
+
+        total_frames++;
+        i++;
+    }
+
+    DEBUG_PRINT ("\n Wait for EOS");
+    /*Wait for EOS or Error condition*/
+    sem_wait (&encoder_context->sem_synchronize);
+    DEBUG_PRINT ("\n Reached EOS");
+
+    return 1;
+}
+
+int stop_encoding  (struct video_encoder_context *encoder_context)
+{
+    struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    struct venc_bufferflush buffer_flush;
+
+    if (encoder_context == NULL) {
+        return -1;
+    }
+
+    buffer_flush.flush_mode = VEN_FLUSH_INPUT;
+    ioctl_msg.in = &buffer_flush;
+    ioctl_msg.out = NULL;
+
+    if (ioctl(encoder_context->video_driver_fd,VEN_IOCTL_CMD_FLUSH,
+                &ioctl_msg) < 0) {
+        DEBUG_PRINT("\n Flush input failed");
+    } else {
+        sem_wait (&encoder_context->sem_synchronize);
+    }
+
+    buffer_flush.flush_mode = VEN_FLUSH_OUTPUT;
+    ioctl_msg.in = &buffer_flush;
+    ioctl_msg.out = NULL;
+
+    if (ioctl(encoder_context->video_driver_fd,VEN_IOCTL_CMD_FLUSH,
+                &ioctl_msg) < 0) {
+        DEBUG_PRINT("\n Flush output failed");
+    } else {
+        sem_wait (&encoder_context->sem_synchronize);
+    }
+
+    DEBUG_PRINT("\n Stop VEN_IOCTL_CMD_STOP");
+
+    if (ioctl(encoder_context->video_driver_fd,VEN_IOCTL_CMD_STOP,NULL) < 0) {
+        DEBUG_PRINT("\n Stop failed");
+    } else {
+        sem_wait (&encoder_context->sem_synchronize);
+    }
+
+    return 1;
+}
+
+int deinit_encoder (struct video_encoder_context *init_decode)
+{
+    if (init_decode == NULL) {
+        return -1;
+    }
+
+    /*Close the driver*/
+    if (init_decode->video_driver_fd != -1) {
+        close (init_decode->video_driver_fd);
+    }
+
+    if (init_decode->queue_context.ptr_cmdq) {
+        free (init_decode->queue_context.ptr_cmdq);
+        init_decode->queue_context.ptr_cmdq = NULL;
+    }
+
+    if (init_decode->queue_context.ptr_dataq) {
+        free (init_decode->queue_context.ptr_dataq);
+        init_decode->queue_context.ptr_dataq = NULL;
+    }
+
+    sem_destroy (&init_decode->queue_context.sem_message);
+    sem_destroy (&init_decode->sem_synchronize);
+
+    pthread_mutex_destroy(&init_decode->queue_context.mutex);
+    pthread_mutex_destroy (&read_lock);
+
+    return 1;
+}
+
+static void* video_thread (void *context)
+{
+    struct video_encoder_context *encoder_context = NULL;
+    struct video_msgq *queueitem = NULL;
+    struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    struct venc_bufferpayload *tempbuffer = NULL;
+    struct venc_buffer enc_buffer;
+    unsigned int data_len =0;
+
+
+    if (context == NULL) {
+        DEBUG_PRINT("\n video thread recieved NULL context");
+        return NULL;
+    }
+
+    encoder_context = (struct video_encoder_context *) context;
+
+    /* Thread function which will accept commands from async thread
+     * or main thread
+     */
+    while (1) {
+        queueitem = queue_get_cmd (&encoder_context ->queue_context);
+
+        if (queueitem != NULL) {
+            switch (queueitem->cmd) {
+                case VEN_MSG_START:
+                    DEBUG_PRINT("\n recived start done command");
+                    sem_post (&encoder_context->sem_synchronize);
+                    break;
+
+                case VEN_MSG_STOP:
+                    DEBUG_PRINT("\n recieved stop done");
+                    sem_post (&encoder_context->sem_synchronize);
+                    break;
+
+                case VEN_MSG_INPUT_BUFFER_DONE:
+
+                    tempbuffer = (struct venc_bufferpayload *)queueitem->clientdata;
+
+                    if (tempbuffer == NULL) {
+                        DEBUG_PRINT("\n FATAL ERROR input buffer address is bad");
+                        sem_post (&encoder_context->sem_synchronize);
+                        break;
+                    }
+
+                    tempbuffer->filled_len = (encoder_context->input_height *
+                            encoder_context->input_width *3)/2;
+
+                    data_len = read_frame ( tempbuffer->pbuffer,
+                            tempbuffer->filled_len,
+                            encoder_context->inputBufferFile);
+
+                    if (data_len == 0) {
+                        DEBUG_PRINT ("\n End of stream reached");
+                        sem_post (&encoder_context->sem_synchronize);
+                        break;
+                    }
+
+                    enc_buffer.clientdata = (void *)tempbuffer;
+                    enc_buffer.flags = 0;
+                    enc_buffer.ptrbuffer = tempbuffer->pbuffer;
+                    enc_buffer.sz = tempbuffer->sz;
+                    enc_buffer.len = tempbuffer->filled_len;
+                    enc_buffer.offset = 0;
+                    enc_buffer.timestamp = total_frames *
+                        ((encoder_context->fps_den * 1000000)/encoder_context->fps_num);
+
+                    /*TODO: Time stamp needs to be updated*/
+                    ioctl_msg.in = &enc_buffer;
+                    ioctl_msg.out = NULL;
+                    total_frames++;
+
+                    if (ioctl(encoder_context->video_driver_fd,VEN_IOCTL_CMD_ENCODE_FRAME,
+                                &ioctl_msg) < 0) {
+                        DEBUG_PRINT("\n Decoder frame failed");
+                        sem_post (&encoder_context->sem_synchronize);
+                    }
+
+                    DEBUG_PRINT("\n Input buffer done send next buffer current value = %d",\
+                            total_frames);
+                    break;
+
+                case VEN_MSG_OUTPUT_BUFFER_DONE:
+
+                    tempbuffer = (struct venc_bufferpayload *)queueitem->clientdata;
+
+                    if (tempbuffer == NULL) {
+                        DEBUG_PRINT("\n FATAL ERROR input buffer address is bad");
+                        sem_post (&encoder_context->sem_synchronize);
+                        break;
+                    }
+
+                    if (encoder_context->outputBufferFile != NULL) {
+                        fwrite (tempbuffer->pbuffer,1,tempbuffer->filled_len,
+                                encoder_context->outputBufferFile);
+                    }
+
+
+                    DEBUG_PRINT("\n recieved output buffer consume outbuffer");
+                    DEBUG_PRINT("\nValues outputbuffer->bufferaddr = %p",\
+                            tempbuffer->pbuffer);
+                    enc_buffer.clientdata = (void *)tempbuffer;
+                    enc_buffer.flags = 0;
+                    enc_buffer.sz = tempbuffer->sz;
+                    enc_buffer.len = 0;
+                    enc_buffer.ptrbuffer = tempbuffer->pbuffer;
+                    enc_buffer.offset = 0;
+                    enc_buffer.timestamp = 0;
+
+                    ioctl_msg.in = &enc_buffer;
+                    ioctl_msg.out = NULL;
+
+                    if (ioctl (encoder_context->video_driver_fd,
+                                VEN_IOCTL_CMD_FILL_OUTPUT_BUFFER,&ioctl_msg) < 0) {
+                        DEBUG_PRINT("\n Decoder frame failed");
+                        return NULL;
+                    }
+
+                    break;
+
+                case VEN_MSG_FLUSH_INPUT_DONE:
+                    DEBUG_PRINT("\n Flush input complete");
+                    sem_post (&encoder_context->sem_synchronize);
+                    break;
+
+                case VEN_MSG_FLUSH_OUPUT_DONE:
+                    DEBUG_PRINT("\n Flush output complete");
+                    sem_post (&encoder_context->sem_synchronize);
+                    break;
+            }
+
+            if (queueitem->cmd == VEN_MSG_STOP) {
+                DEBUG_PRINT("\n Playback has ended thread will exit");
+                return NULL;
+            }
+        } else {
+            DEBUG_PRINT("\n Error condition recieved NULL from Queue");
+        }
+
+    }
+}
+
+static void* async_thread (void *context)
+{
+    struct video_encoder_context *encoder_context = NULL;
+    struct video_msgq queueitem ;
+    struct venc_msg venc_msg;
+    struct venc_bufferpayload *tempbuffer = NULL;
+    struct venc_ioctl_msg ioctl_msg = {NULL,NULL};
+    int result = -1;
+
+    if (context == NULL) {
+        DEBUG_PRINT("\n aynsc thread recieved NULL context");
+        return NULL;
+    }
+
+    encoder_context = (struct video_encoder_context *) context;
+    DEBUG_PRINT("\n Entering the async thread");
+
+    while (1) {
+        ioctl_msg.in = NULL;
+        ioctl_msg.out = (void*)&venc_msg;
+        DEBUG_PRINT ("\n Sizeof venc_msginfo = %d ",sizeof (venc_msg));
+        DEBUG_PRINT("\n Address of Venc msg in async thread %p",\
+                ioctl_msg.out);
+
+        if (ioctl (encoder_context->video_driver_fd,VEN_IOCTL_CMD_READ_NEXT_MSG,\
+                    (void*)&ioctl_msg) < 0) {
+            DEBUG_PRINT("\n Error in ioctl read next msg");
+        } else {
+            switch (venc_msg.msgcode) {
+                case VEN_MSG_START:
+                case VEN_MSG_STOP:
+                case VEN_MSG_INDICATION:
+                    DEBUG_PRINT("\nSTOP/START Indiacation");
+                    queueitem.cmd = venc_msg.msgcode;
+                    queueitem.status = venc_msg.statuscode;
+                    queueitem.clientdata = NULL;
+                    break;
+
+                case VEN_MSG_INPUT_BUFFER_DONE:
+                    DEBUG_PRINT("\nINPUT buffer done Indiacation");
+                    queueitem.cmd = venc_msg.msgcode;
+                    queueitem.status = venc_msg.statuscode;
+                    queueitem.clientdata = (void *)venc_msg.buf.clientdata;
+                    DEBUG_PRINT("\nInput Client data pointer is %p",queueitem.clientdata);
+                    tempbuffer = (struct venc_bufferpayload *) queueitem.clientdata;
+                    DEBUG_PRINT ("\n Input Address of tempbuffer %p",tempbuffer);
+                    tempbuffer->filled_len = venc_msg.buf.len;
+                    DEBUG_PRINT ("\n Input value of tempbuffer tempbuffer->filled_len %d",(int)tempbuffer->filled_len);
+                    break;
+                case VEN_MSG_OUTPUT_BUFFER_DONE:
+                    DEBUG_PRINT("\nOUPUT buffer done Indiacation");
+                    queueitem.cmd = venc_msg.msgcode;
+                    queueitem.status = venc_msg.statuscode;
+                    queueitem.clientdata = (void *)venc_msg.buf.clientdata;
+                    DEBUG_PRINT("\nOutput Client data pointer is %p",queueitem.clientdata);
+                    tempbuffer = (struct venc_bufferpayload *) queueitem.clientdata;
+                    DEBUG_PRINT ("\n Output Address of tempbuffer %p",tempbuffer);
+                    tempbuffer->filled_len = venc_msg.buf.len;
+                    DEBUG_PRINT ("\n Output value of tempbuffer tempbuffer->filled_len %d",(int)tempbuffer->filled_len);
+                    break;
+
+                default:
+                    DEBUG_PRINT("\nIn Default of get next message %d",(int)venc_msg.msgcode);
+                    queueitem.cmd = venc_msg.msgcode;
+                    queueitem.status = venc_msg.statuscode;
+                    queueitem.clientdata = NULL;
+                    break;
+            }
+
+            result = queue_post_cmdq (&encoder_context->queue_context,&queueitem);
+
+            while (result == 0) {
+                result = queue_post_cmdq (&encoder_context->queue_context,&queueitem);
+            }
+
+            if (result == -1) {
+                DEBUG_PRINT("\n FATAL ERROR WITH Queue");
+            }
+        }
+
+        if (venc_msg.msgcode == VEN_MSG_STOP) {
+            /*Thread can exit at this point*/
+            return NULL;
+        }
+    }
+}
+
+
+static unsigned int read_frame (unsigned char *dataptr, unsigned int length,
+        FILE * inputBufferFile)
+{
+
+    unsigned int readOffset = 0;
+    int bytes_read = 0;
+    unsigned int code = 0;
+    int found = 0;
+
+    DEBUG_PRINT ("\n Inside the readframe");
+
+    if (dataptr == NULL && length == 0) {
+        DEBUG_PRINT ("\n dataptr = %p length = %d",dataptr,(int)length);
+        return 0;
+    }
+
+    pthread_mutex_lock(&read_lock);
+    bytes_read = fread(&dataptr[readOffset],1,length,inputBufferFile);
+    pthread_mutex_unlock(&read_lock);
+
+    return bytes_read;
+}