author | sky 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) |
commit | 52b845f09d59d345f28b09be5a23830be0a8219d (patch) | |
tree | f7b4d431da436c68989a0681bf79d2aee6888ccb | |
parent | 115351b68bc832cc11ebf596234bc1f28b22d52a (diff) | |
download | hwcomposer-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>
-rw-r--r-- | common/display/HwcVideoPlane.cpp | 4 | ||||
-rwxr-xr-x[-rw-r--r--] | common/display/HwcVideoPlane.h | 3 |
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 { |