Add MppDecImpl layer for separate encoder and decoder.
Change-Id: I02e04acddf617ae5188572af89312ab20fbf21b6
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Remove extra mpp_dec.h and mpp_enc.h for later modification.
Change-Id: I43c0e1c4ca0cf36070887556b1cd9d428f167090
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
When copy MppFrame or MppPacket increase its meta data reference count.
Change-Id: I72879edbc4e20fbf831e9a013b6c012f4bb1c2dd
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
For the requirement of transporting MppMeta between different thread add
reference counter and inc_ref interface to MppMeta functions.
Change-Id: I9e355b66b6de933c2499713e1a2406149fa7e0e8
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Add frame and packet to HalEncTask for meta data transaction.
Change-Id: Ife81442d472baee6d50e2c5f1c602e96db3beb4b
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This meta data is used for SVC/TSVC encoding / decoding.
Cases and meaning when using KEY_LONG_REF_IDX:
1. On decoder output frame
Represents the long-term reference frame index of the output frame.
2. On encoder input frame
Represents the long-term reference frame which should be used as
reference frame for current encoding frame.
3. On encoder output packet
Represetns the long-term reference frame index of the output packet.
Change-Id: I41dd2eb754b84cc0d8873f7dfbb695e31bc866ae
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change CMAKE_SYSTEM_PROCESSOR from armv8 to armv8-a
Change-Id: I4e0021a44b933813d336383b5363170ecf2b7027
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
1. Add wait and status flag for encoder
2. Add notify for encoder
3. Use wait and notify for encoder task handling.
Change-Id: I6ce0f676084f7c27cc95d6abc56557bfa286ef87
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
tips: when dump 10bit yuv, change it to 8bit, and write out.
Change-Id: I710399d61056e32d68c3f6f9d6ff209d73f6b904
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
tips: hor_stride value sett mismatch between parser and hal.
Change-Id: Ia8b9ab660c1a5f29ad71ccba418bb629f1487ef2
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
Set pre-commit hook to detect changes on staged file.
Change-Id: I041a82577263abcdfffc146b5aaba1d0a51def76
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Add fifo access function to mpp_list class.
NOTE: The interface is different and node contain RK_S32 size data
before real data.
Change-Id: I8875312a7a6247b71be7df71044d2b779c228b0a
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Use HalTask to communicate between hal thread and vproc thread.
Change-Id: I4e87b7ca63bdf86e46045e31296ffa69958ae719
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Hal task will be changed to a more general task between mpp components.
Change-Id: I8ed46da8d02f530cddcdc785f6f6b3778afac5b9
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
When nal buf len is 0, nal buf shouldn't be read.
Change-Id: Id8326081d40bbf5c2109c2ff0fa9c2636583f9ac
Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
tips: listp list0 list1 should reoder by paired when field mode.
Change-Id: Ia1177c95e9d8fdc90293ddf8b16058592d2e0b15
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
Fix MppEncFrmRefInfo memory leak when pointer info has been changed.
Change-Id: Ieccdac1236f5506743b9f5b60382f3ccaff1dc28
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
After pasering SOF makers and DQT, DHT etc, buffer pointer should point
to the position after what has been read. Otherwise, paser will be
finding markers right after the last marker. And may lead to take datas
in DHT or DQT as markers.
Refer to this issue: https://redmine.rockchip.com.cn/issues/212649
Change-Id: Ie4edc8ab43aeedf1678894a9968a1254ca10ac50
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
A picture vertical stride should align with 16. But in jpeg decoding
picture is dividing into 8x8 blocks. So hardware decoder is designed to
keep the original data rather than cut out redundant data. If more than 7
is need to fill into the height of a picture when aligning the height
with 16, there will be an extra line of 8x8 blocks which do not contain
any information of the original picture. In this case jpeg_height8_flag
should be enabled to tell hardware to cut out them. In other case,
don't. Otherewise there will be a 8 pixels-height green bar in the
bottom of the picture after decoding.
Change-Id: Ic042eb0b6deccb6fc3727d7a288b4cd4efd8320d
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
1. Add slice function for hardware slice header modification
2. Add dpb function for hierarchy infomation parsing and list building
3. Due to these two patches are so closely related we need to make it
one commit.
Detailed changes:
1. Change poc type to 0
2. Add lsb writing
3. Add non-reference frame support and frame_num change
4. Add longterm support
5. Add multi longterm frame support
6. Add bit shift and 03 process
Change-Id: I70f6fa550a5d19069ec9b21c3d9ee1875ffbe59e
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Add encoder misc config for later extension.
Change-Id: Ie67b2d5e74227e5089b16752d8088a9502142ddd
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
1. rk_mpi_cmd.h will contain cmd value only.
2. rk_venc_cmd.h will contain all the encoder command structure.
3. Move MppCtxType and MppCodingType to rk_type.h for better include
dependency.
4. Add MppEncRefCfg to MppEncCfgSet.
5. Remove rk_mpi.h dependency inside mpp.
Change-Id: I6b972738100fb60c0a6a9b7cfe0a012abf4205b7
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Move MppPort and MppTaskQueue function to mpp_task_impl.h.
Add caller parameter to mpp_port_poll, mpp_port_dequeue,
mpp_port_enqueue, mpp_port_awake functions for debug purpose.
Change-Id: I39f69d934d45b65c3bc751d71ec98388c2fb9849
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
1. Add mpp_meta_size and mpp_meta_next_node function
2. Move mpp_meta_size and mpp_meta_next_node to mpp_meta_impl.h
mpp_meta_size - Return node count in metadata.
mpp_meta_next_node - Return next MppMetaNode in metadata.
These two functions are useful in debug.
Change-Id: If0be59c4621fd8ba2e2dbe96124a653b397bac7c
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Temporal id is the temporal layer id for H.264 and H.265. It is
usefull for TSVC stream storage and frame display.
Users can determine their behave according to this id.
Change-Id: I06f039b63e0665d3542dc6bd89cc6b52d957af25
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
MppPacket will NOT create meta data by default. Then user and mpp can
attach or remove flexible parameter without adding or remove
interface which will break binary compatibility.
Change-Id: I2c2ff24f7e1c22adb7085a75a4c857e5760d2eae
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
MppFrame will NOT create meta data by default. Then user and mpp can
attach or remove flexible parameter without adding or remove
interface which will break binary compatibility.
Change-Id: Ia3c0d15d6daa210deab7a7d5dffcb54303fbb73e
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Move MppCtx, MppParam, MppFrame, MppPacket, MppBuffer, MppBufferGroup,
MppTask and MppMeta to rk_type.h.
Later development need to bring in cross reference between these
objects. So we choose to move these declaration together.
Change-Id: I7ea39138ca87d6ca4cb86556464a5de89d172846
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>