Commit Graph

473 Commits

Author SHA1 Message Date
Herman Chen
8900385917 [platform]: Update chipset name and feature case
3228/3229 3228H/3328 support feature list:
3228 : dec vpu2 + 4K H.264/H.265       + enc vpu2
3229 : dec vpu2 + 4K H.264/H.265/VP9   + enc vpu2
3228H: dec vpu2 + 4K H.264/H.265 + avs + enc vpu2 + H.265
3328 : dec vpu2 + 4K H.264/H.265/VP9   + enc vpu2 + H.265

Change-Id: Ia4f63e764f12f8117757ea05645ffb9b65dc6b12
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2017-04-05 14:42:58 +08:00
Randy Li
428a6bec57 [osal]: rename the directory of windows allocator
A typo fixup.

Change-Id: I2b08b8debe17cdcbd5512d16cee9272f07151cc9
Signed-off-by: Randy Li <randy.li@rock-chips.com>
2017-03-29 09:37:00 +08:00
Randy Li
42fc9843bc [alloactor]: fix the compiler warnings in drm
Change-Id: I17fd18b6c6be4fb4855e35e5aea0b656e5aeb2d9
Signed-off-by: Randy Li <randy.li@rock-chips.com>
2017-03-24 14:03:21 +08:00
Randy Li
e709b1b621 [alloactor]: fix the compiler warnings in ion
Change-Id: I73a7d4dae08f18aa2c61d1b3766ea94b7d9eea21
Signed-off-by: Randy Li <randy.li@rock-chips.com>
2017-03-24 14:03:21 +08:00
Randy Li
d0b76f9703 [alloactor]: fix the compiler warnings in std
Change-Id: I6613d51cae9633f4048d65de9d23a295e70f5626
Signed-off-by: Randy Li <randy.li@rock-chips.com>
2017-03-24 14:03:20 +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
Randy Li
ee41717331 [mpp_log]: Fix compile warning
Change-Id: I482df8722b111df7981f1bd4d7f337f497eadfee
Signed-off-by: Randy Li <randy.li@rock-chips.com>
2017-03-24 12:06:55 +08:00
LongChair
a3f463f9ce [mpi] : Add a block timeout control command.
When retrieving frames current API only allows to define wether
the API should block without any timeout or not block at all.
This allows to specify a block timeout via the
MPP_SET_OUTPUT_BLOCK_TIMEOUT control operation.

Change-Id: Id35ad3d48f72881184009f830c406c3a655e1a90
Signed-off-by: LongChair <LongChair@hotmail.com>
Signed-off-by: Randy Li <randy.li@rock-chips.com>
2017-03-24 11:43:08 +08:00
timkingh.huang
700b7fc875 [jpegd]: check thread status before mpp_port_dequeue
The thread status may be changed before mpp_port_dequeue,
so it is necessary to check it.

Change-Id: Ibe6f33cb7a5ac88bd93da3b0a15d9e0a271d825b
Signed-off-by: timkingh.huang <timkingh.huang@rock-chips.com>
2017-03-09 15:00:10 +08:00
Herman Chen
4b41fdd8bc [mpp_platform]: Modify chip vcodec detection
1. Add video codec information and kernel driver device detection code for all
supported chips.
2. Add video codec type and device name detection test

Change-Id: I275c0e616acd80c9a4ad2fee00588479e47a92db
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2017-03-03 16:12:36 +08:00
Jung Zhao
038a3bd665 [rc]: add init qp estimation
if outside doesn't set init qp value, mpp will estimate one init qp
according to resolution and bitrate.

Change-Id: If5415f6a3bfa3f2981ffd4eb044614bf9b035d2f
Signed-off-by: Jung Zhao <jung.zhao@rock-chips.com>
2017-01-17 09:20:05 +08:00
Herman Chen
444e8b429f [mpp]: Fix compile warning for strict-prototypes
Change-Id: Ia430a5d157dc2d19c92a43ca15eab83f1ac540c6
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2017-01-11 10:43:27 +08:00
Herman Chen
51a7f82285 [osal]: Fix compiling error on Linux
Change-Id: Ia8daa63718fd8912093e5197fcfe823e378d1972
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2017-01-06 16:41:53 +08:00
leo.ding
b0902117fc [osal]: Add hardware platform detection
Change-Id: I0223b79608a9ea8346dbf194805c2536a90beb3b
Signed-off-by: leo.ding <leo.ding@rock-chips.com>
2017-01-06 09:06:54 +08:00
Herman Chen
4c1ae218e6 [mpi/mpp/enc]: New encoder framework
1. Interface change:
Separate normal config into three basic config and several runtime config:
Three basic config -
a. rate control config
b. preprocess config
c. video codec protocol config
More flexible rate control interfaces are provided.
More codec configure interfaces are provided.
Change flag with bitmap is provided for further optimization.

2. Remove old codec config from controller and left rate control module only
Encoder controller only handle user rate control requirement and bit allocation.
Hal hardware encoder only handle qp calculation according given target bit.
Remove all old codec code.

3. Move codec process to hal
Different hardware will share same codec process function in common protocol
directory. And different hardware api will register to same api set. Codec
header generation is moved to separate hal directory.

4. Encoder will return length by task
Encoder will NOT get stream information feedback from controller. All
information required by encoder will be all stored in Task.

5. Add mpp_rc for rate control
Move some common rate control utils to mpp_base.

6. Update mpi_enc_test and mpi_rc_test with new interface

Change-Id: Iebb5e276a48f547167e1bed4673f21cc2f0c8ad5
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: Lin Kesheng <lks@rock-chips.com>
2017-01-05 10:58:27 +08:00
Herman Chen
1bbd1dcce6 [ion]: Ion buffer mmap optimization
1. Do not do map when MppBuffer alloc or import. Only map when user requires a
user pointer. This will save a lot of vma resource especially when buffer is
very large.
2. Fix error in mpp_dec thread which use info.ptr directly.
3. Use external fd on import (have risk of external user close fd on hw work)

Change-Id: I28225f6ba28afa3e9475e605bf971348dcef185a
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2017-01-04 15:01:09 +08:00
Herman Chen
d16a83fae4 [osal]: Add return value to condition wait
Change-Id: I4955ae98a714c227da4b2aacc9da063e05a64139
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2016-12-20 15:07:33 +08:00
Herman Chen
6a4c890291 [osal]: Add more function to Condition class
Change-Id: I31c5a2645a79576b6f1fe22285a9dfcf4b001293
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2016-12-20 09:56:07 +08:00
Herman Chen
e2ba112070 [osal]: Fix compile error on windows
Change-Id: Id908c592aaee3b8f16f7529c8c3995b3f4af78f8
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2016-12-16 11:22:31 +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
Alpha Lin
f98c06f233 [osal]: add new dts node for iommu determination
Add new dts node 'vpu_combo' for rk312x,rk3368 video codec devices
compatibility.

Change-Id: I81326d478788ddddfb42e9fe0f4596ab84183934
Signed-off-by: Alpha Lin <alpha.lin@rock-chips.com>
2016-12-02 14:28:40 +08:00
Jung Zhao
4273a46252 [drm]: add drm_debug environment support
Change-Id: If31a5ede4460f2147eba126301be39e28e3c0626
Signed-off-by: Jung Zhao <jung.zhao@rock-chips.com>
2016-11-30 17:52:08 +08:00
hh
824c04836e [ion]: fix ion handle check error
Ion file handle can have a fd_flag equal to 0. So we need to remove the
condition fd_flag == 0 in funciton os_allocator_ion_import.

Change-Id: I0393cf1f69d358308903fc7461efc36158f42358
Signed-off-by: hh <hh@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2016-11-29 10:34:12 +08:00
Lin Kesheng
89e11ed9c7 [ion]: dup new fd while get fd 0 after importing
1. check input fd is valid
2. dup new fd while imported fd is 0

Change-Id: Ic20d070d1a29e7d37c4f1e75cbef89263c5bc3a9
Signed-off-by: Lin Kesheng <lks@rock-chips.com>
2016-11-25 14:55:32 +08:00
Lin Kesheng
723ffae18e [mpi_enc_test]: fix mpi_enc_test read src frame bug
1. read src frame with real width and height of picture,
   rather than virtual ones.
2. configure correct hor_stride & ver_stride for hardware
3. support yuv420/420sp for mpi_enc_test demo and video
   app, and is compatible for old interface

Change-Id: I1fc23dc2954577b28e25b80a4dcdd1536d45d622
Signed-off-by: Lin Kesheng <lks@rock-chips.com>
2016-11-24 17:52:44 +08:00
Herman Chen
3bd7a6e027 [drm]: fix runtime error for 32bit library
1. When run the 32bit library without mmap64 it will fail due to lack of mmap64
symbol. So we do a runtime detection.
2. Fix runtime error of missing getpagesize. Use sysconf(_SC_PAGESIZE) instead.

Change-Id: I6dbeb6d55175a1ebb48d314f3dc691cd029710d1
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2016-11-16 14:28:21 +08:00
Herman Chen
2fc024529e [osal]: add environment detection function
1. add software runtime detection
2. add hardware platform detection

Change-Id: I75736ae85130325029023d948e4d756e27953af8
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2016-11-08 18:22:29 +08:00
Herman Chen
80140b3966 [ion]: use mpp_log to print scan info
In order to avoid misunderstanding change mpp_err to mpp_log

Change-Id: Id4a0591a0eeb7975fcdf1979b9d45c9b8d076370
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2016-10-11 10:06:33 +08:00
Jung Zhao
deb649610c [drm]: add macro control in os_allocator.c
1. fix compiling error of previous commit
2. can enable drm on x86 pc linux platform

Change-Id: I06271fe0efcaa7de2531c7fb3e21bf9c75781beb
Signed-off-by: Jung Zhao <jung.zhao@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2016-10-07 17:37:05 +08:00
Jung Zhao
e9b7563de2 [drm]: disable drm allocator by default
Change-Id: Id2262b3e7154f17aad93c9304d54fbd0c4dd532f
Signed-off-by: Jung Zhao <jung.zhao@rock-chips.com>
2016-10-07 16:56:40 +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
673bc0eef4 [osal]: fix allocator error on x86_64
x86_64 is for simulation debug. It is just for working flow test.

Change-Id: I2d1cb50e52a104e58f6eaf3b27fd9dcf41b9ada6
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2016-09-06 16:22:58 +08:00
Jung Zhao
70e2ebdb2b [drm]: add android drm allocator support
1. enable drm allocator in android
2. modify size calculating when alloc

Todo: wait for new interface of kernel to decide
use whether drm or ion as allocator

Change-Id: Ia6791d91d113b238be77088ae747012fb786d683
Signed-off-by: Jung Zhao <jung.zhao@rock-chips.com>
2016-08-29 14:26:49 +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
4f7f69c1ae [mpp]: fix compile error on windows
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1191 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-08-11 10:16:44 +00:00
ChenHengming
b9ffe80711 [osal]: add function log to allocator_ion
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1189 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-08-11 06:55:41 +00:00
ChenHengming
d101052f9b [osal]: add runtime log to mpp_mem
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1131 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-30 08:56:41 +00:00
ChenHengming
e179717e0b [mpp]: update mpp debug log
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1124 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-28 11:52:51 +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
1cd97ca56a [ion]: use default sysfs path rather than remount path
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1061 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-21 08:03:43 +00:00
ChenHengming
8ccbd01ed0 [allocator_ion]: fix iommu detection failure on 3gr
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1056 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-21 01:58:39 +00:00
ChenHengming
1a2551ec3e [mpp_enc]: fix crash in vpu_api_legacy.cpp
[mpi]: use new control macro system

git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1050 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-20 07:54:31 +00:00
GaoZhili
3fafb0fe4f commit the avc encode code, now avc encode process is ok
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1048 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-20 07:22:25 +00:00
ChenHengming
5ebe54881f [ion]: fix compile error on normal linux destop machine
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1031 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-15 03:53:04 +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
668393735f [allocator]: fix failed error detection on ion/drm allocator import function
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1016 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-13 09:40:08 +00:00
ChenHengming
7965f5dfd9 [android]: fix android binary runtime error due to error bionic libc linking
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@992 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-08 07:33:03 +00:00
GaoZhili
31f69e313e upload allocator dirctory
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@979 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-05 03:35:17 +00:00
ChenHengming
c9d4080335 [mpp_buffer]: fix mpp_buffer_test error on Android for normal buffer can not be import/release
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@971 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-01 04:48:52 +00:00