Commit Graph

28 Commits

Author SHA1 Message Date
Herman Chen
6ce3007994 refactor[allocator]: Refactor allocator flow
1. Allocator api is determined by buffer type.
2. Allocator ctx is determined by both buffer type and buffer flags.
3. All allocator dma_heap / drm / ion / ext_dma should support different
buffer flags.
4. The buffer flag supports cacheable / 32-bit / contig options.
5. Add flags update flow on allocator create process.
6. Add mpp_dmabuf_has_partial_ops to disable dmabuf partial ops when the
kernel driver has bug.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: If36a05c6704112cad3ab46861023597ff02bf14c
2023-11-29 09:54:36 +08:00
Yandong Lin
e155a7eac7 fix[dma_heap]: add dma heap uncached node checking
Currently only support uncached dma heap node access,
because of the cache processing is not yet complete.

So if there are no uncached node in /dev/dma_heap/ path,
mpp will not use dma_heap allocator.

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ic33fca9c445c7668a86454f01f9d7577668de32b
2023-11-29 09:54:36 +08:00
xueman.ruan
f387c6dac2 [mpp_allocator]: disable std allocator.
Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
Change-Id: I27441d49c2072176b848b5d80d408ebcb50926df
2023-04-07 09:06:37 +08:00
xueman.ruan
062c175265 [hal_jpege]: Add dma heap options for JPEG encode.
use cachable dma buffer to reduce copy time.

Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
Change-Id: I7fcc0fa5942ea5aa4e247b5f10677843d006ff28
2023-02-21 20:57:26 +08:00
xueman.ruan
652e18fcf0 [allocator]: fix dma_heap allocator
segment fault happened in mpp_allocator_put.
 #00 pc 00102e14  /vendor/lib/libmpp.so (mpp_allocator_put+272)
 #01 pc 0004705c  /vendor/lib/libmpp.so (MppBufferService::~MppBufferService()+536)

Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
Change-Id: Ia4f9a3b4823bf6a5d8f3fdfd85055630222c0b43
2022-07-04 17:05:59 +08:00
Herman Chen
2b35cee0ce [mpp_log]: Add more log helper function
1. Move mpp_log.h to inc for external user.
2. Add mpp_debug.h for mpp internal logging.
3. Fix some warning.
4. Add log level setup function.
5. Check env log_level value in mpp_get_log_level call.

NOTE:
1. mpp internal module should use mpp_debug.h and mpp external user
should use mpp_log.h
2. Use mpp_get_log_level to update mpp_log_level when the env changed.

Change-Id: I90a55a02a72db177533013280dfe111ca3479229
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-05-20 11:42:10 +08:00
Herman Chen
cd9a1cca3f [misc]: Change interface header file dependency
Move MppCtx, MppParam, MppFrame, MppPacket, MppBuffer, MppBufferGroup,
MppTask and MppMeta to rk_type.h.

Later development need to bring in cross reference between these
objects. So we choose to move these declaration together.

Change-Id: I7ea39138ca87d6ca4cb86556464a5de89d172846
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2019-06-14 10:15:12 +08:00
Rimon Xu
fb73f23f53 [alloctor]: add flags for alloctor
Each of the different alloctor has different alloctor modes,
such as allocating physical continuous memory, secure memory,
etc.

Change-Id: Ib032689f0cfd36b494843dcc176a22c6c9587b6a
Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
2018-05-07 17:34:34 +08:00
Randy Li
6e32081214 [allocator]: Fix compiler warnings
Change-Id: I52554a3ca45747c13a7821a04bb1c01e45d9d44c
Signed-off-by: Randy Li <randy.li@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2017-03-24 12:08:20 +08:00
Herman Chen
e2f0da0a89 [allocator]: Transform allocator normal to std
1. Use allocator std to replace default normal allocator on all OS.
2. Use wrapper to simplify mpp_allocator.

Change-Id: I13314a9eec3c5b39bc5ad8ddb3033ac2da79ba8f
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2016-12-15 17:20:14 +08:00
Herman Chen
249f83f35b [mpp_buffer]: Add caller to MppBuffer functions
Add caller parameter to all mpp_buffer functions.

Change-Id: Ibebd2a31b302988fe1ed480de575189ce57e41a5
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2016-12-15 16:56:39 +08:00
Lin Kesheng
60373a6973 [all]: format code
use fromdos to change file type, remove ^M in code.

Change-Id: I000202dc51fcff57cc0771455baebea595115b1d
Signed-off-by: Lin Kesheng <lks@rock-chips.com>
2016-09-08 15:21:02 +08:00
ChenHengming
c0866a76f9 [comment]: fix company name hand writing error
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@906 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-06-13 09:42:31 +00:00
ChenHengming
fa0d33ab9f [osal]: fix mpp_allocator handwriting error
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@878 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-06-06 12:19:38 +00:00
ChenHengming
251bfc81fa [osal]: add NULL pointer protection to mpp_allocator
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@807 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-05-24 08:09:49 +00:00
ChenHengming
107e40bf82 [astyle]: coding style formating
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@438 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-11-01 20:10:35 +00:00
ChenHengming
8c761eacc8 [mpp_allocator]: fix error print
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@412 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-10-21 14:41:16 +00:00
DingWei
f82298b20b [h264d module] add prepare function; deal with error nalu case
[mpp.c]        function marco define, updated;
[h265d module] update warnning
[all module]   run A style

git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@344 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-10-10 02:18:04 +00:00
ChenHengming
e3f49b11aa [allocator]: add import and release function to os/mpp allocator
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@339 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-10-09 21:59:41 +00:00
ChenHengming
70090757a3 [osal]: add clear operation to mpp_free
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@210 6e48237b-75ef-9749-8fc9-41990f28c85a
2008-01-29 23:29:40 +00:00
ChenHengming
027f647eb8 [mpp]: add mpp_thread.cpp, add mutex_destroy to mpp_allocator, add codec thread and hal thread prototype
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@163 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-26 03:19:32 +00:00
ChenHengming
15eb6c5893 [osal/mpp_buffer]: remove MppBufferData and add MppBufferInfo for user interface, tested on window and linux
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@142 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-21 02:48:01 +00:00
ChenHengming
3f6812f144 [misc]: use static api structure rather than malloc on
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@141 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-21 00:58:50 +00:00
ChenHengming
505e4dd8ae [osal]: add allocator type to MppBufferAllocator, passed on window and linux
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@139 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-20 10:03:38 +00:00
ChenHengming
2e5aafaf44 [osal]: add normal mode mpp_buffer path to test and fix a lot of bug
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@134 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-20 03:23:36 +00:00
ChenHengming
8378c2f847 [mpp_buffer]: add allocator to normal mode buffer, use orphan group instead of orphan buffer
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@132 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-20 01:38:12 +00:00
ChenHengming
7d0abbd3a8 [osal]: add mpp_allocator to mpp_buffer_impl
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@131 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-19 11:08:48 +00:00
ChenHengming
f22f5635ab [osal]: add mpp_allocator and os_allocator for mpp_buffer
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@130 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-19 10:37:38 +00:00