Call ROTATOR_START ioctl only if the rotator config changes.
Save the last good config when the start succeeds.
Make getSessId()'s return type uint32_t to match the member's.
Change-Id: I5ca048ea866316f18d8df14dc08218fca2c82bdf
Even out the values for both dimensions and position on both src
and destination rects.
This fixes both over and underrun issues, especially with HD panels
Change-Id: I781792d69cad83f76c3c0a45a5179a731661c3cf
Android uses different alignments for YV12 buffers.
Hence, introduce a new format (MDP_Y_CR_CB_GH2V2) for
such buffers.
Change-Id: Id4d58dd77f22c9efb8ece9caa34a8717964bf58d
- sourceTransform in the hwc_layer_t has the source buffer transform,
use this transform for external display.
- This helps in showing videos with source orientation properly on the
external display
CRs-fixed: 387357
Change-Id: I2ac7e5481a27b93d10ba3fc1ad2e4a8788dc20a5
(cherry picked from commit a51a41188d34db49528edadadbf9ddbc052e772d)
Remove OVASSERT from getFormatString utility. OVASSERTS should happen only from
critically wrong states of overlay.
Just failing in this utility method would allow a fall back to GPU.
Change-Id: I4467a750574ee90aee4fa2e0fbb041e7f386a63b
Add a new state and required implementation in new overlay to support playback
of two videos using overlay.
Add a new class VideoPIP to handle the pip feature.
Change-Id: Ibce7044bc1216cba77bd952e191aed5472ed6737
For YUV only:
Crop rectangle (src_rect) needs to be even for x/y and w/h
Destination dst_rect w/h need to be even (x/y can be odd).
Change-Id: Ib0c1b7d31773e71d60f080b4beacaa68e32a990e
Draw sequence in hwc_set
--eglSwapBuffers
--wait for fb_post. Its ok to draw to External only at this point.
--draw to external | Parallel with PAN
--commit to external | Parallel with PAN
--wait for pan (happening in fb_post) to finish.
Call MSMFB_OVERLAY_SET ioctl only when params change.
These thing together ensure a correct sequence and should fix tearing and
stuttering, the latter assuming there are no other display pipeline delays.
Change-Id: Ibb0ad8485fa6b30dc6ac07ae8b25a760941c08ce
(cherry picked from commit c50c90863e41e31ecfe6963396b5def35e9dca34)
Add hwc_service.cpp and ihwc.cpp file to enable direct communication
to hwcomposer by the clients to set hwc system wide properties.
Create hwcomposer service singleton object in hwc_context_t structure.
Change-Id: I0d0879475951a618a453a23ee254ea651e8c6b88
Camera client doesn't factor in the 90-rotated source when setting the flip
Switch the flips when the source is 90-rotated.
Change-Id: I16b81ca2c146f9b4c20908674f89d0a2e9808681
If the device's kernel isn't fully prepared for secure content
playback, having the secure field in the msm_rotator_img_info
struct will cause issues while playing out video.
The correct set of patches to the kernel (MDP, maybe vidc) needs
to be figured out for this to be enabled; to disable it,
add QCOM_NO_SECURE_PLAYBACK to the device's CFLAGS. (and remove
"secure" from msm_rotator_img_info)
Change-Id: Ib1d265133e66ae456c59a9f78b052a01cbd00116
Remove waitForVsync support.
Vsync will be done explicitly by clients outside of overlay.
Remove support for the unused getOvPipeType API.
Remove redundant state checks in class Overlay
Change-Id: I34f00e1334bbd9fad130bdefeaf0426ebbd638a1
Update format translation from HAL to MDP.
Add support for RGB_888, YCbCr_444_SP, YCrCb_444_SP formats.
Change-Id: I6323cd07bfe74c7cc60bf2b59dd81e2ae8a2ce27
If the device's kernel isn't fully prepared for secure content
playback, having the secure field in the msm_rotator_img_info
struct will cause issues while playing out video.
The correct set of patches to the kernel (MDP, maybe vidc) needs
to be figured out for this to be enabled; to disable it,
add QCOM_NO_SECURE_PLAYBACK to the device's CFLAGS. (and remove
"secure" from msm_rotator_img_info)
Change-Id: I7949e918163e0acb2d6eb3d8881b04fb07b2be2c
- IOMMU heap is not available for all targets. we should
have a fallback heap always as IOMMU can be disabled.
Change-Id: I7e987ac69ba5e5fdd6228b50930e064a4420a472
Add support for different types of external-only layers
EXTERNAL_ONLY: General purpose
EXTERNAL_BLOCK: Blocks the display of other ext-only layers
EXTERNAL_CC: Used for closed captions with videos.
Change-Id: I7cb531a55a2f0015e3a51673faf08941bcea1923
Refactor transitions by templatizing to have default behavior for most cases
and full specializations for specific cases.
Partial specialization of functions is not allowed, so create templatized
intermediate functions for those use cases.
For ex: if we have 8 states, we don't need 8x8 transition handlers.
Add and define OV_DUAL_DISPLAY state.
Add a GenericPipe for subtitles to OV_2D_VIDEO_ON_PANEL_TV state.
Add a 2D_VIDEO_ON_TV state and its transitions.
Change-Id: I53b017b9a41db5894c263ccb446b7ec8875ef3aa
Add the missing GRALLOC_USAGE_PRIVATE_CP_BUFFER while allocating secure memory
Change the O_SYNC to O_DSYNC flag.
Change-Id: Ida014018be111a7904ff07c206a673b2abf52d05
p#1: Remove WAIT and CHANNEL enums and usage. Replace BypassPipe with
GenericPipe. Client expected to set alignments and parameters.
Add transform combination enums.
p#2: Allow APIs to be called in any order. Do transform calcs in commit.
Move ext type setter and getter functions.
p#3: Add calculations for 180 transform.
p#4: Add secure session support in rotator
p#5: Implement all rotations in terms of H flip, V flip and 90 rotation.
Change-Id: I34a9a2a0f1255b3467a0abbaa254d0b584e901ce
Fix memory leak during copying pipe objects.
Remove unused / unnecessary code.
setMemoryId API is merged with queueBuffer.
setParameter API is setTransform now.
Rotator upgraded to:
--Allow different rotator hardware types.
--Remove dependency on MDP code.
--Allocate memory only during first playback, close when the associated pipe is
closed.
Have single commit implementation.
Include new format types.
Change-Id: I28d87179c7ec9c0b97721a9ff17f1526da98b714
- Update the display HAL from Code Aurora Forum
- Add updated overlay library
- Enable HWC with basic video going through overlay
- Cleanup some files
Change-Id: Ia53650759d4fe99bde395b7b4e8e02e6e65845e0