1. Move mpp_log.h to inc for external user.
2. Add mpp_debug.h for mpp internal logging.
3. Fix some warning.
4. Add log level setup function.
5. Check env log_level value in mpp_get_log_level call.
NOTE:
1. mpp internal module should use mpp_debug.h and mpp external user
should use mpp_log.h
2. Use mpp_get_log_level to update mpp_log_level when the env changed.
Change-Id: I90a55a02a72db177533013280dfe111ca3479229
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
The number of input field video frames to the decoder
is half of the number output frame video frames.
When the sorting pts is turned on, only half of the
pts cache is taken out from the pts linked list.
So when decoding field video, only half as many pts are cached.
Change-Id: If9055480365b776475861add1470d68210b65971
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Flip disable_fast_play to enable_fast_play,
Fast play is disabled by default.
Change-Id: I168e02a9d84590c3b2b92fe75b2b37c655c8c63e
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
When the poc of the idr frame is 0, the subsequent frames with poc<0 are
discarded, which will cause the screen to flicker.
Add parameters in mpp as switches for immediate output of idr frames.
Change-Id: I522334dd1e81fc6aeeb60e71404f3a7071a5ecae
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
1. Split encoder and decoder hal_task defs and infos.
2. Change hal_task to a general info list with status.
Change-Id: I6f26035eeee4772d1ef99a21d85716e9c33eb9a6
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Modify the processing of pts in the decoding process
Change-Id: I80b911c19eb345744333d3ec4d8e22e8c86fc857
Signed-off-by: vic.hong <vic.hong@rock-chips.com>
Set hor_stride_pixel in function mpp_buf_slot_set_prop
Signed-off-by: vic.hong <vic.hong@rock-chips.com>
Change-Id: I832b7d4e9f0d5fda81816e4c42e75ec1ef2d841a
Record every pts of pkt to link, and sort link by pts.
When output the frame, remove the pts from the link and set to frame.
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: Id987dea0195c24d2bd573416e80a3ef2f58d6a31
NOTE: The MppCtx should be restored for external user.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I2a4241ddacb14196f43b29a59b46658131ebfcee
Add callback on two events:
1. packet ready and wait for new packet input.
2. frame ready and wait for output frame poll.e
NOTE:
Add callback command param for version compatible sync between user
and mpp library.
Change-Id: Ic41d495a06cf653acb6b5100699f1b7f5f735f2e
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
1. Move callback module to osal for later mpp_device callback.
2. Make callback command a pre-defined value to avoid include issue.
3. Separate callback cmd and param to separate header.
Change-Id: Ibd5cf11650a1cd2a326baddb82dc60fa1767ac87
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Add MPP_DEC_GET_CFG call before setup decoder config in mpi_dec_test.
Change-Id: I1ed8c2be44be9de0e4b1364a1401a81a9ecfd6e1
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
1. Add dec cfg update before mpp_init.
2. Add hw_type eheck and process on hal_jpegd init.
3. Disable soc cap error log.
Change-Id: Idb5929bf1eace77d4b09205b60d0c1f0e0eb50b5
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Add hw capability to parser and check resolustion based on hardware
capability.
Change-Id: Id9b719b238c74d6b77f78fd8d583a3de854a94f4
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
1. Use dequeue/enqueue to implement decoder put_packet interface.
2. Change task check on deinit. Only check the metadata size in task.
If MppTask is destroyed with valid metadata just should warning.
3. Reserve one task at input queue for eos packet.
Change-Id: Ib445b148bb5a10c588104ee1fd96bad6f52f1388
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
When poll the port task and there is task for dequeue just return
positive valid task count value to caller.
Change-Id: I6c078cee69e34ba9b6cc5ffa77c704b8c59683b4
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
NOTE: on advanced mode the input packet should not be released when the
thread is finished.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I66656f6f2e484aabd28f74469c29d4bd44a7dcc2
NOTE: When MppDev is not output to mpp_dec the codec info update is
disabled.
This patch may cause kernel show the following log on old kernel:
mpp_process_request:1078: unknown mpp ioctl cmd 403
This log has no harm at all and new kernel will disable this log.
Change-Id: I26c8d78e279b5809bb2d1e51baf2c48e7f6e5a33
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
1.hevc all resolution support fbc out
2.h264 only support frame mb only for fbc out
3.vp9 all resolution support fbc out
Change-Id: I1d68b75aebea30560a1c6c25bd552121f86097f0
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Add mpp_dec_proc_cfg in parser thread. The external control will be sync
in decoder thread.
Change-Id: Ic680f055fd1568815fe9f28b62c8ddcc837311bc
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
tips: control cmd for immediate_out, can send both before and after mpp_init.
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
Change-Id: Ibe66878cfab1f592b952d01bee3adade7c9d31bc
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
When last stream packet is send with eos flag but without valid task or
not output is set just output an empty eos frame.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I18a4ea004479820d4dcfe30aa75d935b15a188cf
MppQueue does not support concurrent access, and there
are defect in the design, which need to be improved in
the future.
Signed-off-by: Xingwen Fang <fxw@rock-chips.com>
Change-Id: I50db4bcf520bbf4115c6f40d7a759652087965ec
1. Only use notify to communicated between mpp and codec.
2. Remove mpp_enc_impl.h
Change-Id: Ia62757240efa7d245b5215ad79539fa9bbbd1550
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Add MppDecImpl layer for separate encoder and decoder.
Change-Id: I02e04acddf617ae5188572af89312ab20fbf21b6
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>