Commit graph

58 commits

Author SHA1 Message Date
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
Grey Li
5d3623ac29 [mpp_buffer]: fix group callback crash
thread1:
  1)control(MPP_DEC_SET_EXT_BUF_GROUP)
  2)mpp_buffer_group_set_callback
    p->callback = callback;
thread2:
  1)mpp_buffer_commit
  2)mpp_buffer_create
    group->callback(group->arg, group);
    But arg is NULL now.

backtrace:
  #00 (Mpp::notify(void*))
  #01 (mpp_buffer_create+712)
  #02 (mpp_buffer_import_with_tag+212)
  #03 (commit_memory_handle+116)

Signed-off-by: Grey Li <grey.li@rock-chips.com>
Change-Id: Id50e2f1b46d127c8bf0fe8080751949fcccc6e25
2022-12-23 18:23:09 +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
Jeffy Chen
c07169d533 [misc]: Fix a few compile warnings and errors
Reported by llvm-clang.

Change-Id: I62f22fe5754d3e8d77405d213c81fda5d9f5e27d
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2022-03-11 17:45:10 +08:00
Herman Chen
df30589e30 [mpp_buffer]: Dump buffer group when size mismatch
Change-Id: Ic2306122b7f7cf45a683970ec047cedd42984b69
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-04 11:20:36 +08:00
Herman Chen
f0c57cde02 [mpp_lock]: Add gcc atomic macro define
Change-Id: I3e94cc7be9a51f5d674a132c0a2e6f7afba61d34
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-11-03 11:27:35 +08:00
Herman Chen
026a768de5 [mpp_buffer]: Reduce lock usage
Change-Id: I639922cf582feea5e027edfb2ae0dd9a9fb85bd6
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-10-22 11:47:46 +08:00
Herman Chen
1732ff2549 [mpp_buffer]: Add caller when using mpp_mem_pool
Change-Id: I7275d68c08b15fb0413585e7e0d0fdf7af204162
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-10-08 09:09:28 +08:00
Herman Chen
c37a9ba095 [mpp_buffer]: Fix crash on cleanup leaked buffer
Change-Id: Ie795bb693c904e9c57d9d6af98564fedd0019ead
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-07-01 14:27:12 +08:00
Herman Chen
69211067c9 [mpp_buffer]: Fix miss lock on searching group
1. In mpp_buffer_ref_dec it should be locked on search group by id.
2. Remove extra hash_32 on adding new group.
3. Improve id searching on id overflow.

Change-Id: Ibef4612e48b5a4c9dd6c5eca6c85f8ccba813827
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-06-29 10:21:23 +08:00
Herman Chen
17a872e4b9 [mpp_buffer]: Fix error on releasing leaked buffer
The static lock maybe release before mpp_buffer_service. So we should
not used the lock on finalizing stage.

Change-Id: Ibf207e02e4fcdc2b5280ea58bd68372a7888a60a
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-06-25 11:17:38 +08:00
Herman Chen
2204012fb3 [mpp_buffer]: Fix error on buffer group reset
At buffer create stage and ref_count is still zero if buffer group reset
happens the just created buffer will be marked discard and cause error.

Change-Id: Idc163f81edd055d8cc33ce6d80ca041adc973878
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-05-12 20:31:56 +08:00
Herman Chen
c6d2144afa [mpp_buffer]: Use mem pool reduce malloc/free
Use mpp_mem_pool to reduce MppBufferImpl and MppBufferGroupImpl malloc
and free.

Change-Id: I6331aefddf7ee8eb578a638d86a276891aa61ee7
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-05-06 14:03:32 +08:00
Herman Chen
cdec28698c [mpp_buffer]: Add info dump on buffer leaked
Change-Id: Ida823d6bbfa06a846546b554d6b3a218418deadd
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-04-30 18:43:16 +08:00
Herman Chen
7d8b6414c3 [mpp_buffer]: Use new mutex lock
Replace service lock with buffer lock, group lock and smaller service
lock.

Change-Id: Ic8ff9fae714b0362f43df23008efce49fe16b9ce
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-04-30 18:43:16 +08:00
Herman Chen
0e0071db2b [mpp_buffer]: Use fixed array to record history
Change-Id: I9d651fd381abe0d25794aefb3f1ca44826b74939
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-04-30 18:43:16 +08:00
Herman Chen
ffbd5c042a [mpp_buffer]: Get allocator on MppService created
Store allocator to MppBuffer to remove dependency from buffer to group.

Change-Id: I7ae136d12bb30cb989b6352989df3b0b3477ad98
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-04-30 18:43:16 +08:00
Herman Chen
fdbaa67b23 [mpp_buffer]: Use hashtable to search buffer group
When there are a lot of buffer groups created the search speed will be
slow. We should use hashtable to speed up.

Change-Id: I9ceeaa5a72eedf81597eeb83b34d417c74ceae04
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-04-21 14:43:56 +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
6ff78b1bd6 [mpp_buffer]: Fix error on release orphan group
Change-Id: Ib915000941a2380c908b6c6f934b4b8bb8680fa9
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: Fu Yuhao <fuyuhao@sunniwell.net>
2020-12-01 16:35:20 +08:00
Herman Chen
0520b7d35d [meta/buffer]: Fix usage after service is destoyed
When C++ global destructor is called MppBufferService and MppMetaService
maybe be called before other destructors which may call mpp_buffer_put
and mpp_meta_put. So we mark finished flag after ~MppBufferService and
~MppMetaService is call and so not free corresponding data again.

This case usually happens when user call exit() directly.

Change-Id: I997c49b095e443b061fca230587b6216f710d31c
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-20 09:08:59 +08:00
Shunqian Zheng
9464af395b [misc]: Terminate soc_name to fix out of bounds
1. Terminate soc_name string to fix memory out of bounds
2. Fix all snprintf/strnlen warning

Change-Id: I4525c6e289a00d1509bc30ee69545d92f2f4b9cb
Signed-off-by: Shunqian Zheng <zhengsq@rock-chips.com>
2020-04-29 16:06:47 +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
66ff6456b2 [mpp_dec]: Optimize mpp_dec condition wait
Optimize mpp_dec parser thread wait mechanism to reduce cpu overload.

1. Add mpp signal notify flag
2. Add mpp_dec wait status flag
3. Compare the notify flag with wait status flag. When there wait
condition is fulfilled then signal parser thread to process.

This will greatly reduce cpu overload by block wake up with no sense.

Change-Id: I38da718e80d0487e0300e807bc87cdb1aa070471
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2018-07-27 14:24:58 +08:00
Herman Chen
ee08efc836 [mpp_buffer]: Print mpp_buffer_group_dump caller
Change-Id: I7c1dcd74d35d185e48d0ec0b6309fcdacc8031f3
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2018-07-06 17:41:03 +08:00
Herman Chen
0ce7deaf79 [mpp_buffer]: Fix error printf on exit
Fix MppBufferService dump print error on buffer type. The v4l2 type has
changed to external dma-buf type.

Change-Id: I02c9e2741117efc6e9d84d239a26a28dde3471d4
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2018-07-06 17:29:02 +08:00
Herman Chen
31c657e1dc [mpp_buffer]: Signal codec thread on buffer create
When mpp codec thread go into idle status for lack of buffer new buffer
commit or create should wake up the codec thread to check again.

Change-Id: I843f7c790e1f8b8dcd67e209077f2475c8e265c8
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2018-06-28 16:27:48 +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
Herman Chen
4231398479 [mpp_buffer]: Add more log operation
Add log record for mpp_buffer_group_reset and mpp_buffer discard.
Add log when normal group became orphan group.

Change-Id: I08127efae9f9587693c012816aa4e48de50a61c4
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2018-01-03 09:04:23 +08:00
Herman Chen
0b71be06ee [mpp_buffer]: Fix mpp_buffer_test crash
1. mpp_buffer_test will crash on legacy buffer non-released. It is
fixed now.
2. Release misc buffer group if it is empty.

Change-Id: Ib8eae910b0167c952d0555389ad65db82a2dbbbf
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2017-12-18 15:15:07 +08:00
Herman Chen
68d22d8fec [base]: Disable default print on exit
Use finalizing flag to disable print on MppBufferService destroy.

Change-Id: I8f17a6b8ed77101cf4f240dad05f8e886968c3c6
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2017-10-10 14:19:15 +08:00
Herman Chen
10676cee87 [base]: Remove misc buffer group creation
1. Do NOT create misc group on library loading.
2. Only create misc group on required.
3. Support both ion and drm now.

Change-Id: I7479f06e8ba6b5568bca5e2173efaa06cef70597
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2017-10-10 14:18:37 +08:00
Randy Li
83a41062a8 [mpp_buffer]: fix compiler warnings
Change-Id: Iedc60e981dc5bee3d49a779c34d693998ad3499b
Signed-off-by: Randy Li <randy.li@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2017-03-24 12:28:51 +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
447bb9e951 [jpegd]: Fix jpeg decoder MppBuffer crash
1. Fix jpeg decoder error on release.
2. Fix possible crash when release invalid MppBuffer handle.

Change-Id: Ie904192af3352b5f967dcea6371bdb9aff194089
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2016-12-13 16:05:59 +08:00
Herman Chen
1d12407883 [mpp_buffer]: Fix handwriting error
Change-Id: I6dd3bb986d4c35fd6255b1eec2617569d2e7ba70
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2016-12-09 16:10:46 +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
sayon.chen
f18f2f45a6 [vpu_mem_legacy]: buffer group create
1.limit buffer count for create vpu_mem_pool case
2.remove limit buffer print in mpp_buffer_impl

Change-Id: I88daa0204d8858e882ac3255ef3a95e0853ae2f2
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2016-08-23 20:17:53 +08:00
herman.chen
4f8f63d16f [mpp_buffer]: fix issue of destroy external commit frame buffer group twice
Change-Id: I496f493fbeb038ca72425d946c65a4e7cce6b684
Signed-off-by: herman.chen <herman.chen@rock-chips.com>
2016-08-23 19:49:13 +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
ChenHengming
53ad111527 [mpp_dec]: fix MppBuffer leak on reset
[mpp_buffer]: add more log

git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1123 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-28 11:30:47 +00:00
ChenHengming
7bd91fe000 [mpp_buffer]: add MppBufferService misc group dump function
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1066 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-21 12:09:45 +00:00
GaoZhili
362e84eb7a [mpp_buffer_impl]: modify the compile error of mpp_buffer_impl.cpp
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1059 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-21 03:31:59 +00:00
ChenHengming
bf591fc7cd [mpp_buffer]: add more log check
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1058 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-21 03:11:25 +00:00
ChenHengming
1cba9ddca2 [mpp_buffer]: fix mpp_buffer log counter error
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1054 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-20 09:50:44 +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
4d35424576 [mpi]: add more mpi log
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1041 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-19 03:37:55 +00:00
ChenHengming
947da74b5d [mpp_meta]: fix possible error in mpp_meta and mpp_buffer
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1034 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-16 10:12:11 +00:00
GaoZhili
3249378118 only format the unformated code to standard style
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1020 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-14 09:34:04 +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