Commit Graph

55 Commits

Author SHA1 Message Date
Herman Chen
3d530016fb feat[mpp_buffer]: Add mpp_buffer discard function
Mark a single buffer to discard status.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I86e9501ace8c2b11c60360905e9f6c9466e38eea
2025-06-19 17:39:19 +08:00
Hongjin Li
147aec8a1b refactor[base]: Refactor C++ mpp_buffer to C
Signed-off-by: Chandler Chen <chandler.chen@rock-chips.com>
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I7e478416160ab1188686252ebea9ef5f71e19852
2025-06-17 11:18:25 +08:00
Herman Chen
3f0e7c8cc5 doc[mpp_buffer]: Update MppBuffer code annotation
related issue: https://redmine.rock-chips.com/issues/463747

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I24c047df0659958f98f46a248c2f0857f675149d
2024-01-26 09:57:23 +08:00
xueman.ruan
e15972e9af feat[mpp_dmabuf]: Add dmabuf sync operation
sync_begin - cache invalidate, should be called before cpu read
sync_end   - cache flush, should be called after cpu write

MppBuffer sync flow:
1. hw access
2. sync_begin
3. cpu access (read / write)
4. sync_end
5. hw access

NOTE: readonly option is faster for read only buffer.

Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I253a6139e9bb30808c07075d64f17b5cfad8519a
2023-11-16 14:27:02 +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
Rimon Xu
1cc1af1b08 [osal]: reorder dma heap type select priority
Change-Id: Ifd2286ecf97fb4477693c24cdaec10c1df15eacf
Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
2022-10-28 10:06:22 +08:00
Herman Chen
60f5fc234a [allocator]: Add dma_heap allocator
The dma_heap is introduced in kernel 5.10.

Change-Id: Id3c116d996da461467fe380a79434ba5ea875033
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-06-24 15:52:06 +08:00
Herman Chen
a91439bef4 [mpp_buffer]: Add mem and buffer usage function
Change-Id: I356ef9311802868fe8d234dbff178ad8463985d0
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-04-20 14:39:52 +08:00
Herman Chen
6a76bfc3f5 [mpp_buffer]: Add offset property
1. Add offset set / get function to MppBuffer
2. Add U32 register address converstion function.

Change-Id: Id297b7a05e47d4e249f5e33c1924a0539729c808
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-03-20 17:41:32 +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
Herman Chen
3ed61e06e1 [MppBuffer]: Add buffer group memory usage
Add mpp_buffer_group_usage function to return runtime buffer group
memory usage.

Change-Id: Ibb2893087e84b6d40de1b44accf45439b7ba925e
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2018-05-28 09:14:41 +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
a78598dab5 [osal]: add new buffer type for DMA import buffer
This buffer type is used for the buffer coming from the
application, the application should make sure those
buffers are the dma buffer.

Change-Id: I2c8491f4dea77e5d7ae8d9157b0a1eda204f4bd6
Signed-off-by: Randy Li <randy.li@rock-chips.com>
2018-04-27 17:20:32 +08:00
Randy Li
86c5f925cd [alloactor]: fix some minior errors
1. fix the header protection
2. the incorrect offset in ion memory mapping
3. the commentment of the buffer type in a header file

Change-Id: If9d1db90d41131750a341ab6177f947f7b966317
Signed-off-by: Randy Li <randy.li@rock-chips.com>
2018-04-27 17:20:32 +08:00
Randy Li
bd43fac60e [mpp_buffer]: access the index field of buffer info
The external buffer would request the index of a buffer to
manage it in an array.

Change-Id: Ifbb169c75dfb6342b428b1fd640db9ec45ff5f73
Signed-off-by: Randy Li <randy.li@rock-chips.com>
2017-04-05 16:51:44 +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
Herman Chen
cd97a84407 [mpp_buffer]: fix macro hand writing error
Change-Id: I6a3799314c345defaaf28b1377d621f51fee4e1a
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2016-10-18 15:23:09 +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
Herman Chen
43bfdc6bdf [format]: format coding style
Change-Id: I3d0e081f6636ca8162df4bda68618ec0ba37e7ae
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2016-08-23 09:16:22 +08:00
ZhaoJun
120b82550e [sofia-3gr-linux]: some modifications for intel-iotg
1. add input block flags OMX_BUFFERFLAG_SYNC
2. change max index number to 32
3. mv sofia-3gr makefile to build/linux/x86 directory

git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1113 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-28 03:13:16 +00:00
ZhaoJun
28745421d5 [sofia-3gr-linux]: add sofia-3gr-linux platform support
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1096 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-25 08:32:27 +00:00
ChenHengming
ee095068bc [mpp_buffer]: add more mpp_buffer log information
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1043 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-19 09:38:21 +00:00
ChenHengming
ab2fb3de4c [mpp_buffer]:
1. Separate mpp_buffer_import_with_tag into two macro for different usage.
2. Add more comment.
3. Change helper macro and function parameter order for better understanding.

git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@972 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-01 06:44:01 +00:00
ChenHengming
563a08525a [mpp_buffer]: add output MppBuffer to mpp_buffer_commit interface. Also add misc group internally
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@969 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-01 02:41:11 +00:00
ChenHengming
4201f689c0 [format]: format coding style
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@907 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-06-13 09:47:19 +00: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
ZhaoJun
3ae8f919c5 [osal]: add drm allocator for linux system
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@857 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-06-01 10:40:31 +00:00
ChenHengming
cb1f526351 [mpp_buffer]: add mpp_buffer_get_size interface
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@849 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-05-31 07:44:01 +00:00
ChenHengming
e354461a1c [mpp_buffer]: remove mpp_buffer extension
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@494 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-12-02 22:55:08 +00:00
ChenHengming
9a59c44dd4 [mpp_buffer]: add caller record to mpp_buffer
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@437 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-11-01 19:45:15 +00:00
ChenHengming
005c1029db [mpp]: when mpp deinit only release internal frame buffer group
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@378 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-10-13 19:39:51 +00:00
ChenHengming
c318361d13 [mpp_buffer]: add buffer clear function to reset mPacketGroup
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@351 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-10-12 15:53:15 +00:00
ChenHengming
5449174411 [mpp_buffer]: add buffer group count limit check on buffer_create
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@348 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-10-12 14:45:18 +00:00
ChenHengming
8ebb8eb139 [mpp_buffer]: change buffer group function name to internal/external
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@342 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-10-09 23:38:46 +00:00
ChenHengming
ea3f8b6f0d [mpp_buffer]: change buffer group mode to internal/external
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@341 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-10-09 23:21:18 +00:00
ChenHengming
f159321d13 [mpp_buffer]: add used/unused count to buffer group
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@302 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-09-24 21:38:08 +00:00
ChenHengming
3adfc995bd [mpp_hal]: add more hal api function
[misc]: remove anonymous struct name

git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@208 6e48237b-75ef-9749-8fc9-41990f28c85a
2008-01-29 23:03:13 +00:00
ChenHengming
679288a7d4 [mpp_buffer]: add offset to read/write function
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@182 6e48237b-75ef-9749-8fc9-41990f28c85a
2008-01-24 00:14:59 +00:00
ChenHengming
28faf8b7a6 [mpp_buffer]: add more interface to mpp_buffer
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@178 6e48237b-75ef-9749-8fc9-41990f28c85a
2008-01-23 16:15:51 +00:00
ChenHengming
3850b79cdc [test]: change deinit interface, add more detail to mpi_test
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@153 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-24 03:52:11 +00:00
ChenHengming
1666e01904 [mpp_frame]: add mpp_frame implement, add missing header file
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@150 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-21 10:57:27 +00:00
ChenHengming
9e5b83bc72 [test]: fix bug in mpp_buffer_test
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@146 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-21 07:06:57 +00:00
ChenHengming
aa58d818ce [osal]: add ion on android os_allocator
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@144 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-21 03:45:18 +00:00
ChenHengming
2c5ee82f4e [mpp_buffer]: add mpp_buffer_info_get interface
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@143 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-21 02:52:40 +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
805db6b02d [osal]: add NORMAL path on android
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@140 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-20 10:31:45 +00:00
ChenHengming
2ac248839b [osal]: change mpp_buffer working flow and buffer limitation interface
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@136 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-20 09:39:01 +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
ChenHengming
9791a62d8f [mpp_buffer]: add basic mpp_buffer management mechanism
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@126 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-19 06:30:12 +00:00
ChenHengming
87f4cca33e [misc]: fix compiling error on Linux
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@123 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-18 13:07:40 +00:00