summaryrefslogtreecommitdiff
authorsky zhou <sky.zhou@amlogic.com>2020-04-21 10:10:35 (GMT)
committer sky zhou <sky.zhou@amlogic.com>2020-05-21 12:14:46 (GMT)
commit52b845f09d59d345f28b09be5a23830be0a8219d (patch)
treef7b4d431da436c68989a0681bf79d2aee6888ccb
parent115351b68bc832cc11ebf596234bc1f28b22d52a (diff)
downloadhwcomposer-52b845f09d59d345f28b09be5a23830be0a8219d.zip
hwcomposer-52b845f09d59d345f28b09be5a23830be0a8219d.tar.gz
hwcomposer-52b845f09d59d345f28b09be5a23830be0a8219d.tar.bz2
hwc/display: pass sideband type to video composer. [1/1]
PD#SWPL-24408 Problem: sideband switch display error Solution: pass sideband type to video composer. Verify: verify on franklin. Change-Id: I39ee04548d59900d533a988db2105863db074047 Signed-off-by: sky zhou <sky.zhou@amlogic.com> Signed-off-by: jintao xu <jintao.xu@amlogic.com>
Diffstat
-rw-r--r--common/display/HwcVideoPlane.cpp4
-rwxr-xr-x[-rw-r--r--]common/display/HwcVideoPlane.h3
2 files changed, 6 insertions, 1 deletions
diff --git a/common/display/HwcVideoPlane.cpp b/common/display/HwcVideoPlane.cpp
index ad6a761..01fcd6a 100644
--- a/common/display/HwcVideoPlane.cpp
+++ b/common/display/HwcVideoPlane.cpp
@@ -126,6 +126,7 @@ int32_t HwcVideoPlane::setComposePlane(
std::shared_ptr<DrmFramebuffer> fb;
std::vector<std::shared_ptr<DrmFramebuffer>> composeFbs;
std::shared_ptr<DrmFence> compseFence;
+ int sideband_type;
memset(&mVideoFramesInfo, 0, sizeof(mVideoFramesInfo));
mFramesCount = difbs->composefbs.size();
@@ -136,6 +137,7 @@ int32_t HwcVideoPlane::setComposePlane(
buffer_handle_t buf = fb->mBufferHandle;
drm_rect_t dispFrame = fb->mDisplayFrame;
drm_rect_t srcCrop = fb->mSourceCrop;
+ vFrameInfo->sideband_type = 0;
if (fb->mFbType == DRM_FB_VIDEO_OMX_V4L ||
fb->mFbType == DRM_FB_VIDEO_OMX2_V4L2) {
vFrameInfo->fd = am_gralloc_get_omx_v4l_file(buf);
@@ -147,6 +149,8 @@ int32_t HwcVideoPlane::setComposePlane(
fb->mFbType == DRM_FB_VIDEO_SIDEBAND_SECOND ||
fb->mFbType == DRM_FB_VIDEO_SIDEBAND_TV) {
vFrameInfo->type = 2;
+ am_gralloc_get_sideband_type(buf, &sideband_type);
+ vFrameInfo->sideband_type = sideband_type;
}
vFrameInfo->dst_x = dispFrame.left;
diff --git a/common/display/HwcVideoPlane.h b/common/display/HwcVideoPlane.h
index e5dc19b..2546df8 100644..100755
--- a/common/display/HwcVideoPlane.h
+++ b/common/display/HwcVideoPlane.h
@@ -38,7 +38,8 @@ typedef struct video_frame_info {
u32 zorder;
u32 transform;
u32 type;
- u32 reserved[4];
+ u32 sideband_type;
+ u32 reserved[3];
} video_frame_info_t;
typedef struct video_frames_info {