Commit Graph

2434 Commits

Author SHA1 Message Date
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
d70e2d436e [hal_h264e_vepu541]: Fix buffer overflow error
1. Use mpp_device_patch_add to setup bitstream buffer.
2. Add more log for hw_status.
3. Add madi and madp update.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ie7e049e7e1af34688cbf8db8525515b508e69be4
2020-04-17 10:15:00 +08:00
Rimon Xu
291c337a02 [h264d_sei]: Fix error when sei parameters update.
Active sps parameters does not need to be updated in parsing
SEI information, which may cause incorrect updates.

Change-Id: I346ca8cdc6d19cba7e4a991fa2881e26567d1f00
Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
2020-04-16 18:31:14 +08:00
Xinhuang Li
a4059ece40 [h264e]: add timing_info_present parameter of vui
Signed-off-by: Xinhuang Li <buluess.li@rock-chips.com>
Change-Id: Idff0e752ae151c998968d5e559a658a8cab256c4
2020-04-16 17:57:46 +08:00
Herman Chen
0672c41d16 [readme]: Update external resource link
Change-Id: I9c8b2480b1898fe48f0e110c0f74e58c490433da
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-04-16 17:51:36 +08:00
Herman Chen
370777bd14 [utils]: Improve extension detection function
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Id21a26efd4e3bdb82a5ef3d338d012c69dcac8e2
2020-04-14 10:43:01 +08:00
Johnson Ding
794b8e6150 [legacy]: fix bitrate config error
When rc mode changed from CQP to CBR, bitrate configed from outside of
mpp maybe keeped the same, but bitrate value at mpp_rc should be
changed.

Change-Id: I845c05977ed53f664a70d1310684ba8ebfe5ee2b
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2020-04-13 16:36:01 +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
8d8f2273c5 [mpp_frame]: Add frame buffer compression support
Add vepu541 FBC support.

Change-Id: Ie5256ab4debb160801467243db353a2810826513
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-04-10 17:42:08 +08:00
Herman Chen
f13897ce65 [rc]: Add MppFrame to EncRcTask
Attach MppFrame to EncRcTask as meta data channel between user and
internal RC strategy.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I2787a69bec3911fe2e4f637153925c5ea88031ec
2020-04-10 10:16:24 +08:00
sayon.chen
82cdcba737 [hal_h265e_v541]: Add satd_byps and bsbt setup
Change-Id: I6e2494e98c7d4a3c91a050849cbeff7028d5c3af
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-04-09 17:06:21 +08:00
Herman Chen
ed9d04e760 [mpp_time]: Add loop timer with callback
This function is mainly for frame rate statistic.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I1ab790bd655dc0945ad958d104ff178f4ffabdbe
2020-04-09 16:47:50 +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
Herman Chen
71b7946af3 [vepu541]: Fix error on osd offset larger than 4M
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Iab02f91a698544457192459894069bdf9b7d9d31
2020-04-08 17:32:46 +08:00
Jeffy Chen
c2ea50cf62 [mpp_enc_v2]: Add missing MPP_ENC_GET_CODEC_CFG
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Change-Id: I2036fa1035e81dd393de5ac4f50413a1c08db00b
2020-04-08 11:11:48 +08:00
Jeffy Chen
31bec84893 [vp8e]: allow changing gop_len
By always use the newest gop_len in the rc.

Change-Id: Ibf2f515dc0a0cd0aaa6d46aba29d350467d16ff6
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2020-04-08 10:18:53 +08:00
Jeffy Chen
fd14525a52 [vp8e]: fix double-free when deinit vp8e
The ctx should be freed in enc_impl_deinit().

Change-Id: I65bac3a0211f7e470f625fcf5d2b9c1efde1d1c6
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2020-04-08 09:16:10 +08:00
Herman Chen
681599f97f [test]: Update utils for encoder test
1. Move command parsing to util files.
2. Support frame format and coding type detection.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Id1df67ba61943bb7aa1f02ccccaa932fb5ae9842
2020-04-07 15:25:56 +08:00
Herman Chen
b83158b23b [mpp_time]: Change old timer to clock
The MppClock is used to record and sum the time only.
The MppTimer will have new implement.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I6cace6968d50db611e7493b69b14b46853070d78
2020-04-04 16:06:01 +08:00
Herman Chen
ead0f9c96f [mpp_base]: Add to string function
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I72fa5891159e937e4c65d0a492d2ddc9d228e1ed
2020-04-04 16:06:01 +08:00
Herman Chen
927cdf37f0 [cmake]: Fix compile error when log has quotation
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ie95d78e2d93c55aaaebb5508a2276339a17eb451
2020-04-03 18:40:09 +08:00
Herman Chen
fe4b86b025 [mpp_enc]: Update OSD API
1. Update OSD palette config API. User must specify palette is default
or user defined.
2. OSD palette config will go through control and OSD data (region)
config will go through meta data in each frame.
3. Remove unused code.
4. Add mpi_enc_utils for mpi_enc_test cases

Change-Id: Ib4aeb60789a3e999446212841508e604533efb3c
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-04-02 18:21:20 +08:00
Herman Chen
f1f76e83c5 [mpp_buffer]: Add caller print
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Iaccde5929bcb72c407e1efc5c7e78f362e69eeed
2020-04-02 10:33:43 +08:00
sayon.chen
71ff5475cb [hevc_v345_dec]: Support hevc_v345 hw_rps
1. must define HW_RPS for support
2. defalut open hw_rps

Change-Id: Ic699fa2fba24217a082ee4ef62538e3f92d11e1c
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-04-02 10:28:50 +08:00
Herman Chen
77e2e5a70b [rc]: Change default rc parameter
1. Change statistic time to 3 seconds.
2. Change H.264 min qp from 16 to 8.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ib0d20f2dcb8affb58bc5fdeea6d506fe28be68b1
2020-04-02 08:45:36 +08:00
sayon.chen
e26a59a676 [mpp_enc_v2]: Fix reenc path task_length asssert
Change-Id: Ia22601c815c47b4ef3ecfee741a09bc7476a7531
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-04-01 13:54:08 +08:00
Herman Chen
8191f70f91 [h264e]: Fix error of missing cropping info
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I773027fee1d0b0b0f16efa118a0447cf08c7835a
2020-04-01 08:48:13 +08:00
Herman Chen
2548db477e [mpp]: Enable new encoder path for H.264 and H.265
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ida9674118f338a70b9f61420fbf117ae465050f8
2020-03-31 18:27:41 +08:00
Herman Chen
f5549b6e7e [hal_h264e_vepu1]: Add vepu1 new api support
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I0226888b8e0d4aff36bdcb4e6a415a5e67ed4e6e
2020-03-31 18:27:16 +08:00
Herman Chen
a22c2e109b [h264e]: Update length after insert sei packet
1. Add length return when writing sps/pps/sei
2. After writing to packet update both packet length and task length.
3. Update rule of updating length and packet length.
4. Rate control use only hardware length to calculate.
5. Move update hal to the end of flow to reserve for adding extra data.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I9077747a34dc47079d6a1f90db7913c92aa448f5
2020-03-31 16:49:40 +08:00
Herman Chen
a56bc3baf1 [mpp_packet]: Add MppPacket append function
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I0788997fffe2e55ac55d515c33280badf6e97eb8
2020-03-31 16:49:40 +08:00
Herman Chen
6df1c1ec62 [mpp_enc]: Use metadata to send intra flag.
Use MppMeta in MppPacket to carry flags and data instead of MppTask.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I274cf4163914938f22e983eca35c7fee8a9435dc
2020-03-31 16:49:30 +08:00
Herman Chen
3e03d9c074 [rc]: Fix error div zero on reencoding
Change-Id: I8ecbcbf3d5af822e6f0332bcb42d98a2881a8b5a
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-03-30 20:24:30 +08:00
Herman Chen
4c8d9ea2d5 [h264e_vepu541]: Fix clerical error
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I9e1f9366e0a1a1a7602ae4e49b7e5822fee7db31
2020-03-30 20:15:49 +08:00
Herman Chen
0a2d4e341c [mpp_enc_v2]: Add encoder header output mode
1. Default output mode is output header only on config changed.
2. Add new mode to output header on each intra frame.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Iea8dd1e6bb377318b88300d6a013f2c736b15afc
2020-03-30 17:16:11 +08:00
Herman Chen
6aac71a463 [mpp_packet]: Add copy function
NOTE: copy will overwrite valid data from pos and update new length.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ied41cc3f13d24da3704335bbfed2c6b20664c8d1
2020-03-30 15:23:52 +08:00
Herman Chen
04787b8f4e [hal_h264e_vepu541]: Add MB layer rc
1. Fix error of return bit_real.
2. Add MB rc functions.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I1555b717bf28b776781b58f092ed1d2dd4dc82e6
2020-03-28 18:11:16 +08:00
Herman Chen
0ccc49408c [h264e]: Fix user data insert error
1. Fix clerical error.
2. Add UUID on writing sei packet.
3. Fix payload size error.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ie06e017814175005ac9f131a17b2452b5705d527
2020-03-28 17:13:21 +08:00
sayon.chen
4965578e36 [h265e_api_v2]: Fix sei packet write issue
Change-Id: I677b824d189d377543c67ba9adfa86ef608ad4ac
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-03-28 17:04:19 +08:00
sayon.chen
b4c5269174 [h265e_api_v2]: Supprot slice split cmd
Change-Id: Ied371e75ded717a7f7c2044d7f0f527f327272eb
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-03-28 17:04:19 +08:00
Herman Chen
75431ca4ae [mpp_enc_v2]: Fix reencode path dead loop
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I9adc1accfd10361e4901aaeb5abde9e09bb2a7bd
2020-03-28 15:19:19 +08:00
sayon.chen
28bc434e72 [mpi_enc_test]: update mpi_enc test case
1. Support video stride and bitrate config
2. Support mpp_enc_v2 h265 codec config
3. Support roi & osd config used meta path
4. Support tsvc config set
5. Support file format check according to file extension

Change-Id: Ib0cedf83867e3cda67159dc7ae5717a67495575c
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-03-28 15:00:42 +08:00
sayon.chen
93526561ff [h265e_api_v2]: Reencoder case proc_dpb no process
1.fix reencoder case dpb update case stream error
2.reorganize rc check reencoder function

Change-Id: Ibb51f9ee183fcfa6c2d04255c6815a25c7a61b5c
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-03-28 10:09:26 +08:00
Herman Chen
b60ef09e08 [h264e_vepu541]: Fix extra_info setup error
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I421e132a2349dbdc65cc4228f732d12300a5893b
2020-03-27 18:54:30 +08:00
Herman Chen
633d1a251b [vepu541]: Fix error on output header with stream
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: If44279e3e1bea215f0d69a2fe926f778f5a4a97e
2020-03-27 16:57:48 +08:00
Herman Chen
04b26d02df [h264e_api_v2]: Add user data before encoding.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I54cc186a889d5703d86f42eafff5244e10b24ad2
2020-03-27 16:57:48 +08:00
Herman Chen
ca09525fcc [h264e]: Add sei writer function
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ia960cd919f6e2f99f258196b4bc076caea26ae70
2020-03-27 16:57:48 +08:00
sayon.chen
170d2d08f0 [hal_h265e_541]: Fix rc realbit return error
Change-Id: If830bc17a85e084e4fa935520e1b21cd6697fac4
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-03-27 16:37:30 +08:00
sayon.chen
e200d403c1 [h265e]: support extra data append
Change-Id: Ib21a6555080c7a7fa0a4e2742ebaa8e2982b4ea6
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-03-27 15:09:57 +08:00
sayon.chen
ba75c1ed08 [h265e]: Support smart gop ref
Change-Id: I50c80c82d3dcbedb728507503bc56e5b09fb138d
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-03-27 14:52:35 +08:00