Commit Graph

259 Commits

Author SHA1 Message Date
Herman Chen
b201b9dc42 [mpi_enc_test]: Fix compile size_t print warning
Change-Id: Icb30a7d8df0f2e3c47aee946ec7fed66fecff5df
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-04-20 16:21:38 +08:00
Herman Chen
a4ed23117b [mpi_dec_test]: Add MppDecCfg to setup decoder
Add MppDecCfg and string control to add more extra control.

Change-Id: Iead4bd938691af3eac76368421c04c3ebd1f6272
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-03-17 11:42:04 +08:00
Herman Chen
7dd312a457 [test]: Use different function name in dec tests
Change-Id: I672abbcc654f084b52d337c61d55218d7f342f7b
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-03-05 14:11:06 +08:00
Herman Chen
9ec098a981 [rc]: Fix pre_i_qp update error
1. The pre_i_qp should use scale_qp to update rather then the start_qp
which has substracted by ip_qp_delta.
2. Reduce default ip_qp_delta to 2 for H.264 and 4 for H.265.

Change-Id: Ie43ba15c8bd524bd10aac6053306f72e8759370c
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-03-01 16:12:31 +08:00
Herman Chen
b84425e15d [mpp_meta]: Add meta key average qp for encoder
Change-Id: Iab3fde1a2a3e8e6f6150dfbeb6f5803d6e3cc240
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-01-14 10:01:46 +08:00
Yandong Lin
4d82e3e9ab [dec_test]: Optimizing mt/multi test
1. Add FileReader
2. Implement frame_num(-n) param setting

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I15c169e6d8a8ce74f838402d4360436ecd0a1829
2021-01-14 08:51:41 +08:00
Yandong Lin
5f748ee931 [mpi_dec_test]: Add FileReader for mpi_dec_utils
Support different format files as input:
1. Normal file, e.g. h264/h265 raw stream
2. Ivf file , e.g vp8/vp9 stream with ivf header

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I034693ae3e23bdde57c90ded7dd7248c50728122
2021-01-11 16:26:49 +08:00
Herman Chen
17e3a2fefd [mpp_enc]: Use qp config in rc to setup encoder
1. Unify H.264/H.265/vp8 qp config
2. H.264/H.265 encoder setup default rc qp config.
3. Move rc_cfg process all to mpp_enc module.
4. Fix some encoder config in encoder test.

Change-Id: I2a31c6abf904f1c16c2acd937c8d467d48db531d
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2021-01-11 16:26:49 +08:00
Yandong Lin
eaf1e8f76b [mpi_dec_test]: Organize the common func of each dec test
1. Set these func into mpi_dec_utils
2. Note: num of threads: -n -> -s

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: If733fb0fdd7110313d2e140d3c50aad37260b6d2
2020-12-31 10:59:43 +08:00
Yandong Lin
eabbc375c0 [mpi_dec_test]: Support jpeg loop decoding
usage: -n -1

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: Ic184142f771b1e9c68344b3162e491f18d4d33fc
2020-12-23 14:39:02 +08:00
Herman Chen
de8ace6622 [mpp_enc]: Separate qp change flag
Separate H.264 QP limit change flag into 3 flags

Change-Id: I658ab337569f8f715bde7633dce02b631a7d4239
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-12-17 14:33:17 +08:00
Herman Chen
278d9980d9 [mpi_enc_test]: Add partition encoding output path
Change-Id: I977b386e52d5e801d57154bd4d52b9d877072ae9
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-12-12 17:13:30 +08:00
yandong.lin
570478924c [mpi_enc_multi_test]: Set qfactor for jpeg
Signed-off-by: yandong.lin <yandong.lin@rock-chips.com>
Change-Id: I4cde2336ea3c7ccb5724c0916aded6604888b40f
2020-11-30 09:46:27 +08:00
Herman Chen
662d0c19a6 [mpi_enc_test]: Update osd test case
1. Update osd test in mpi_enc_test.
2. Remove osd test in mpi_multi_test.
3. Fix log info in vepu541.

Change-Id: I8056edf263df5571448782b3b8074f54956672ee
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-11-16 09:46:53 +08:00
sayon.chen
5012336bc2 [enc_v2]: Suppport user data set
User data set is for multiple user data with uuid.

Change-Id: Iad952961ab6242ff3a14f554410144bebd3801ba
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-11-16 09:46:53 +08:00
Herman Chen
af5b4eb509 [mpi_enc_test]: Remove legacy cfg function
NOTE: Use new string config function.

Change-Id: I69d96482dba15f69cd340d501372463e9b92d004
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-11-16 09:46:53 +08:00
Herman Chen
3c55b55e46 [mpp_dec]: Add query interface for debug
1. Add query interface.
2. Add query result in mpi_dec_test.

Change-Id: Ie0026f155331c0b0f8e1b5409aeb7d41b6a3ecc6
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-23 14:17:34 +08:00
Herman Chen
db750eff51 [mpi_enc_test]: Add encoder frame skip config
When the bitrate overflow the encoder can drop or encode skip frame.

drop_mode:

MPP_ENC_RC_DROP_FRM_DISABLED
    - Do not drop frame when bitrate is too large.
MPP_ENC_RC_DROP_FRM_NORMAL
    - Drop frame when bitrate is too large.
MPP_ENC_RC_DROP_FRM_PSKIP
    - Encode force pskip frame to keep frame rate when bitrate overflow.

drop_thd:
The instantaneous bitrate overflow threshold to trigger drop frame.

drop_gap:
The minimum gap between two continuous drop frames.
0 - enable continnous drop frame.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: If17ee5f46ee03ae4ad958c8fad30a4a82f422118
2020-10-12 10:57:43 +08:00
sayon.chen
8653a80c36 [mpi_enc_test]: Support camera capture encoder
if input file name is start with "/dev/video",  default  open camera
device as input.

Change-Id: I85d639ddb6fa5d99413ea75a0b088c79798dd6c8
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-09-23 10:28:43 +08:00
yandong.lin
46a33b2459 [mpi_enc_test]: add vp8e rc test demo
Signed-off-by: yandong.lin <yandong.lin@rock-chips.com>
Change-Id: I56b97b8df9e137f4005c3731c87d63539308b1c6
2020-09-09 16:34:01 +08:00
Herman Chen
e83f07e4e5 [mpp]: Obsolete MPP_ENC_GET_EXTRA_INFO
Obsolete MPP_ENC_GET_EXTRA_INFO in vpu_api_legacy and mpi_enc_test.

Change-Id: I3209a1af112ca073e3f61bbff60d8c2844c00ed1
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-09-08 09:05:59 +08:00
Herman Chen
fecdc20b7a [mpi_enc_test]: Change encoder demo to zero-copy
NOTE: It is important to clear output packet length to zero.
Or set packet pos and length to required valid value.

Change-Id: I8ddea1ee3c198bbd17381618b82ec5efab1d366e
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-09-08 09:05:59 +08:00
Jeffy Chen
2de0509cbb [test]: Fix stringop-truncation warnings
Fix this warning when building with newer GCC:
warning: '__builtin_strncpy' specified bound 256 equals destination size [-Wstringop-truncation]
|   106 |   return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
|       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| In function 'strncpy',

Change-Id: I6341fa4e507f644b143a8e266f3df267fbd9c566
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2020-09-08 09:05:59 +08:00
Ding Wei
47ac602642 [mpi_enc_test]: add jpeg rc test demo
Change-Id: Id422d00f2b79cbf1ccbe56daaf1eb5073733b438
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
2020-09-08 09:05:59 +08:00
Herman Chen
a4cbfd54fa [test]: Fix rc_mode error in mpi_enc_test
Config process should not use fixed local rc_mode value to setup.

Change-Id: I8cdfb049e676d34e50a0f11fd174d4eba5bfc24b
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-08-31 11:33:05 +08:00
sayon.chen
07170b1903 [mpi_enc_test]: Update cmd param used utils set
Change-Id: I87e33de9f592974e52a19259d1a7a0d3c8542b8f
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-08-05 18:13:59 +08:00
Johnson Ding
cba637c3f1 [jpege/h264e]: fix RGB encode config
Change-Id: Iec9d928ad6fb1a31cbf6f224b264ebb6797294a3
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2020-08-05 10:52:05 +08:00
Herman Chen
83eadfb637 [rc]: Fix FIXQP mode quality setup
Change-Id: If0f7763af36cbeecc87f48c97beddab3abad0a41
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-30 14:44:28 +08:00
Herman Chen
41dd3ea054 [test]: Format mpi_dec_test output log
1. Add temporal layer id print and error/discard value print.
2. Add mpp instance print to separate different instances.

Change-Id: I4d85e4ec80e957316a6aab82e3661e27389bebc8
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-29 16:21:45 +08:00
Herman Chen
c31fd4dc27 [enc_utils]: Add tsvc demo (control by gop_mode)
Change-Id: I034d631b3d6c473b82d12e3434860c7f8e9f9318
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-29 14:11:22 +08:00
Herman Chen
69c42f78d3 [test]: Format mpi_enc_test output log
Change-Id: Idd62077731b65570ab535954280e148f637719fa
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-29 11:41:53 +08:00
Xinhuang Li
aa5c13d3a8 [test]: init encoder output packet length to zero
Signed-off-by: Xinhuang Li <buluess.li@rock-chips.com>
Change-Id: Iae1bdf28104ea7d7dc9929c267556fe6bf36299b
2020-07-24 14:59:18 +08:00
Herman Chen
eb34769db7 [cmake]: Add option to control test building
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ic6c6988dad82836cfb87113f2293bc9a2b1abd66
2020-06-22 17:44:01 +08:00
Herman Chen
0abeafe872 [cmake]: Add option for Address Sanitizer check
Change-Id: I91cf9111000d2e077dafd9871b965e864863e0bf
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-06-11 17:29:51 +08:00
Herman Chen
81d4248166 [mpi_enc_test]: Fix memory leak of test args
Change-Id: Ica87ba3f77eb12e0b36b2ea0d607b4defbea9abb
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-06-11 16:25:58 +08:00
Herman Chen
439fce52b0 [test]: Add infinite loop mode for mpi_enc_test
Change-Id: Ibf459034f89682ec2accf5c79cf437bc34804808
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-29 17:19:22 +08:00
Herman Chen
3166d88321 [test]: Add coding type detection to mpi_dec_test
Change-Id: Ie6353184dab453e479c4f61137f208276386367c
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-27 10:34:52 +08:00
Herman Chen
51fed96bd9 [test]: add tsvc sample to mpi_enc_test
Add simple tsvc4 config to mpi_enc_test for test.

Change-Id: Icdb5a91106351a00d3eb07dc233b9341084c5abe
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-26 16:50:22 +08:00
Herman Chen
6a6521ed13 [gop_ref]: Remove gop_ref
New reference frame config interface will be added.

Change-Id: I5766cefde12237561bbc20c905e47ed2d3e90011
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-26 16:29:40 +08:00
Herman Chen
2005ed4f42 [test]: Remove vpu_api_test's dependence on mpp
Remove all mpp object from vpu.so
NOTE: link_directories should be before add_library or add_executable.

Change-Id: Idee25e1ccc2c3182f7b8c26c277d396e28654f3e
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2020-05-21 09:40:23 +08:00
Herman Chen
b749f0ba94 [mpp_enc_cfg]: Optimization on mpp_enc_cfg
1. Remove prefix before some args.
2. Add node count / info count calculation.

NOTE: the info count is correct but node count may have error.

Change-Id: I3a7d1005f440105eaf4b6d6326e92aa77d7d7e2a
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-20 11:47:34 +08:00
Herman Chen
ef72082c67 [legacy]: Fix vpu_api_test
1. Remove static libraries for mpp and vpu.
2. Fix vpu_api_test and use dlopen to access libvpu.
3. Fix issue on vepu22 dependence on rga.

vpu_api_test cmd:
enc: vpu_api_test -t 2 -w 1280 -h 720 -i a.yuv -coding 7 -o a.h264

Change-Id: I9682b17b90dce4a82400f5e2da3c955819f875bf
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-19 11:00:13 +08:00
Herman Chen
0b4532c6d5 [rk_mpi_cmd]: Add max_reenc_cnt for reencode flow
When max_reenc_cnt is zero the reencode flow is disabled.

Change-Id: Iba600b37bb5ab6e4f720b652d59abfae36f9e52f
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-15 15:48:06 +08:00
Herman Chen
85f9662150 [mpi_enc_test]: Use MppEncCfg to setup encoder
Change-Id: Ie3506a3555751344f54264d85804ee509a976659
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-05-15 15:48:06 +08:00
Herman Chen
02c7073f35 [vepu541]: Fix roi error
1. Fix h.264 encoder roi buffer leak error.
2. Set all qparea to [1, 51] range.

Change-Id: I8434fc5fc60071ec533aba68fc2fe3be5a087bcd
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-04-29 19:26:00 +08:00
Herman Chen
32689b3708 [test]: Add user data option in mpi_enc_test
Change-Id: Ib84980defdcbae5f92ad841a107757392f37db2d
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-04-29 08:50:43 +08:00
Herman Chen
da8b35074c [legacy]: Fix compile warning
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I461c05e2d29453a756f29028cc6ca2b437d2131c
2020-04-20 11:48:57 +08:00
Xinhuang Li
c2d9a16c24 [test]: modify the frame rate to support decimals
use "-r numerator:denominator:flex"
for set the input to the same fps as the output, such as 50:1:1
or "-r numerator:denominator/flex-numerator:denominator:flex"
for set input and output separately, such as 40:1:1/30:1:0.
the default parameter is 30:1:0.

Signed-off-by: Xinhuang Li <buluess.li@rock-chips.com>
Change-Id: Ief2935354b82aba9c192b4af92636519d3e75423
2020-04-17 10:51:56 +08:00
Herman Chen
50a9655531 [test]: update sample for fbc support
The FBC data should be in this form:

    +---------------------+
    | header (4K aligned) |
    +---------------------+
    |                     |
    |    payload data     |
    |                     |
    +---------------------+

The payload data size is equal to the orignal format size.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I2855c89db43c3e2cc302ac40e96e36ef6147f041
2020-04-10 17:42:17 +08:00
Herman Chen
f79c854314 [utils]: Add gop ref config util function
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I9b82e4a2a6e8451c9e63599329c3d3ddc74ff59c
2020-04-09 14:29:37 +08:00