mm-video-v4l2: ubwc is only valid for h/w codec

convert input buffer to NV12_UBWC only for h/w codec when UBWC is
enabled. Otherwise, convert to NV12_128m

Change-Id: I15420cdeb72dd15f2d2dcc7481639199f514ee76
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 44112b6..50fd557 100644
--- a/mm-video-v4l2/vidc/venc/inc/omx_video_base.h
+++ b/mm-video-v4l2/vidc/venc/inc/omx_video_base.h
@@ -221,6 +221,7 @@
         OMX_BUFFERHEADERTYPE  *pdest_frame;
         bool secure_session;
         bool hier_b_enabled;
+        bool m_ubwc_supported;
         C2DColorConverter c2dcc;
         ColorMapping mMapPixelFormat2Converter;
 
diff --git a/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp b/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp
index d47aeaa..3dace28 100644
--- a/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp
+++ b/mm-video-v4l2/vidc/venc/src/omx_swvenc_mpeg4.cpp
@@ -120,6 +120,7 @@
     m_pIpbuffers = nullptr;
     set_format = false;
     update_offset = true;
+    m_ubwc_supported = false;
     EXIT_FUNC();
 }
 
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 4c58af9..e4bae16 100644
--- a/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp
+++ b/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp
@@ -227,6 +227,11 @@
     psource_frame(NULL),
     pdest_frame(NULL),
     secure_session(false),
+#ifdef _UBWC_
+    m_ubwc_supported(true),
+#else
+    m_ubwc_supported(false),
+#endif
     mUsesColorConversion(false),
     mC2dSrcFmt(NO_COLOR_FORMAT),
     mC2dDestFmt(NO_COLOR_FORMAT),
@@ -5250,7 +5255,7 @@
     if (buffer->nFilledLen > 0 && handle && !is_streamon_done((OMX_U32) PORT_INDEX_OUT)) {
 
         ColorConvertFormat c2dSrcFmt = RGBA8888;
-        ColorConvertFormat c2dDestFmt = NV12_UBWC;
+        ColorConvertFormat c2dDestFmt = m_ubwc_supported ? NV12_UBWC : NV12_128m;
 
         ColorMapping::const_iterator found =
              mMapPixelFormat2Converter.find(handle->format);