Commit Graph

41 Commits

Author SHA1 Message Date
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
d8ed1f4eb1 [mpi]: Add poll interface to mpi
1. Add poll with timeout. Support three mode: block/non-block/timeout.
2. Change control MPP_SET_INPUT_BLOCK and MPP_SET_OUTPUT_BLOCK.
3. Remove msleep in most mpp interface.

Change-Id: I39d9a261b6f1da66c6cb944abd71d1e7f4928d2d
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2017-01-04 15:15:37 +08:00
timkingh.huang
34698dcaf8 [tools]: add doxygen config file
1.The INPUT tag used to specify the files and/or directories that
contain documented source files is set to mpp/inc.
2.The OUTPUT_DIRECTORY tag used to specify the (relative or absolute)
path into which the generated documentation will be written is set
to mpp/doc.
3.Assuming that doxygen is configured correctly under Linux, if you
want to get documentation of pdf format, do as follow:
    cd mpp/tools
    doxygen mpp_doxyfile
    cd ../doc/latex
    make
4.mpp/doc/html contains documentation of html format.
5.modify notes of vpu_api.h and rk_mpi.h.

Change-Id: I02b09514ff44b4689ea99e3d99d2acc9eb58cd19
Signed-off-by: timkingh.huang <timkingh.huang@rock-chips.com>
2016-11-30 11:33:41 +08:00
Herman Chen
c58df3f3f9 [mpp_enc]: Implement new encoder framework
1. Separate encoder configure to four parts
2. Add Preprocess / OSD / Extra configs
3. Implement mv_info interface

Change-Id: I2350a25c9f40b199cee8ef6c75ac6ca099f143c4
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: Lin Kesheng <lks@rock-chips.com>
2016-09-27 11:08:08 +08:00
Herman Chen
1752473f33 [mpi]: fix -Wstrict-prototypes warning
Change-Id: If9549b213c6b5d5545186e1289a436957160924f
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2016-09-14 16:13:28 +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
HuangTingjin
fdc9c5d4b4 [jpegd]: add implementation of jpegd_parser_control.
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1180 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-08-09 12:24:54 +00:00
ChenHengming
560213eef9 [h264]: encoder and decoder share common definition
[h264e]: separate init and config into two functions and add mpp encoder config check function

git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1145 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-08-03 06:20:01 +00:00
ChenHengming
05e4178f9d [mpp_enc]: implement more encoder control function
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1119 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-28 06:39:53 +00:00
ChenHengming
abc3e78078 [mpp_enc]: remove mpp_enc_get_extra_data and mpp_enc_get_extra_data_size function and use control to get sps/pps of H.264 encoder
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1104 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-27 06:27:32 +00:00
ChenHengming
16b22667c6 [h264e]: pass mpp_cfg to internal H.264 encoder and fix errors in mpi_enc_test
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1101 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-26 12:29:08 +00:00
ChenHengming
34d8d5b04e [mpp_enc]: add more print to encoder configure process
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1070 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-22 01:49:39 +00:00
ChenHengming
d0e59132b1 [mpp_enc]: success on Android camera flow, encode_put_frame and encode_get_packet functions are ready
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@1064 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-21 10:41:18 +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
dba5c94f8e [mpeg4d]: update mpeg4 parser and hal for vpu2
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@974 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-07-01 09:54:42 +00:00
ChenHengming
4c06405e3d [mpi/mpp]: add format check function and modify mpp_dec_test for format check
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@925 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-06-16 09:12:30 +00:00
ChenHengming
589bb07317 [mpp]: add need_split flag to MppDec. When set this flag parser will do frame split internally. Default is disabled
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@922 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-06-16 07:25:08 +00:00
ChenHengming
6a552fb7e4 [mpp]: add header for advanced task api
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@913 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-06-14 12:12:52 +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
DingWei
ecf49af775 [vpu_api] add VPU_API_GET_VPUMEM_USED_COUNT
[h264d]  remove dpb_info_old; check_dpb,and add h264d_reset
[mpp_buf_slot]  add get_used_slot_count

git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@600 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-04-05 03:10:03 +00:00
DingWei
653a6b5aa4 [mpi] add avs marco
[vpu_api] add avs marco
[avsd]    add avs interface
[test]    comment
[h264d]   move h264d_rw to codec 

git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@599 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-04-01 09:49:23 +00:00
DingWei
a9b5219f97 [h264d] 1.h264d_init picbuf => refpic; astyle format
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@591 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-03-18 03:51:32 +00:00
DingWei
a3151e2aac [vpu_api] add VPU_API_DEC_GET_STREAM_COUNT cmd to query packets stored in vpu which have not been decoded.
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@586 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-03-11 09:33:54 +00:00
ChenHengming
b13f60ba24 [mpi]: fix compile error on linux
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@541 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-01-21 03:13:16 +00:00
ChenHengming
cb0d12ec49 [mpi]: rename mpi_flush to mpi_reset
[h264d]: fix warning on strupr

git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@535 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-01-20 07:36:48 +00:00
ChenHengming
4830431996 [mpi]: use mpp_create / mpp_destroy pair to replace construct
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@532 6e48237b-75ef-9749-8fc9-41990f28c85a
2016-01-20 02:01:10 +00:00
ChenSiyong
0aabc8d9d9 1、[h265d] skip decoder poc small then cra frame,fix seek picture mosaic
2、[h265d] skip hevcc case the steam is align with zero cause decoder fail
3、[mpp_dec] add fast dec path for mpp dec   

git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@507 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-12-10 21:44:51 +00:00
ChenHengming
a813c14c3c [mpi]: add new mpp_control cmd
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@391 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-10-19 22:29:51 +00:00
ChenHengming
df3995f9bf [mpp_dec]: basic info change flow ready
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@377 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-10-13 16:15:35 +00:00
ChenHengming
17f1b26cc3 [mpp]: add output block control
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@367 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-10-12 23:04:27 +00:00
ChenHengming
a9209858fc [mpi]: add MPP_DEC_SET_EXT_BUF_GROUP to mpi_control
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@340 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-10-09 22:53:03 +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
30d6a98bdf [mpp]: add basic mpp thread codec flow
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@158 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-25 07:38:05 +00:00
ChenHengming
b298253516 [mpi]: change mpp interface
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@157 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-25 01:40:36 +00:00
ChenHengming
47cc88107f [mpi]: add vpu_api.h macro to rk_mpi.h
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@155 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-24 10:21:35 +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
c2544d0f9c [mpi]: add mpi unit test and rename mpp_env interface
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@116 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-17 10:09:20 +00:00
ChenHengming
32c1b2f18c [mpi]: add basic mpi empty function
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@114 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-17 09:16:26 +00:00
ChenHengming
ac639b10ef [directory]: change directory structure
git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@12 6e48237b-75ef-9749-8fc9-41990f28c85a
2015-08-03 01:31:27 +00:00