Batch mode will send multiple task to kernel at one time. And its
non-block poll is triggered by timer and looper.
This mode will reduce the ioctl overhead on ultra multi-instance case.
Main features and some notes:
1. Each client type has independence batch server.
2. Each mpp_device can attach or not attach to server independently.
3. When a device is attached to server all its tasks will be sent to
kernel through the server session not original client session.
4. The tasks are sent non-block and wait in block or non-block.
5. The batch mode can only be switch on/off when hardware is not
working.
Change-Id: I07462d852cb002259d2873e13c12f6f8a489ba8e
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
The purpose of mpp_start and mpp_stop is to break mpp_init_into two
stage.
Original mpp_init conbine the init and start for example mpp_dec_init
and mpp_dec_start then the global (or static) config which dominate the
fundamental working way can be only be set before mpp_init. That is
unreasonable. Another example is the encode memory prealloc flow.
The mpp_start is added to end global param receiving and do real
preparation of current operation in mpp_init.
The mpp_stop is the opposite of mpp_start.
Change-Id: I2bdcc29a9ff75777acc5c39c7e7f01477e597bb0
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
When empty eos frame input as last frame the hal_task packet len should
be clear.
Change-Id: Id25686a598853d0808105bf6eedb0b7e41247f16
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: Siyong Chen <sayon.chen@rock-chips.com>
if sps_id&&pps_id has not change,then regards as not need to
refill spspps buffer data.
Change-Id: I7616d913800b1b4865999f11ce6fb7e71fabc41f
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
1. Add moving_ratio check min value clip to 1
2. Add vi_sacle check min value clip to 16
Change-Id: I463db12610d9b1f97493f5d594e7eaf5c2ed5532
Signed-off-by: Siyong Chen <sayon.chen@rock-chips.com>
At buffer create stage and ref_count is still zero if buffer group reset
happens the just created buffer will be marked discard and cause error.
Change-Id: Idc163f81edd055d8cc33ce6d80ca041adc973878
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
1. combine some fixed values when put_bits.
2. assign data value instead of put_buts 8 bits.
Change-Id: I153399194a35ad17e9a95e402725009b82b6a60e
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
1. it not need to fill when init dxva_ctx.
2. it not nend to write and send scalist buffer in hal module.
Change-Id: I68e0a899eb1f5d29a9f5c06fdffc60b23e6bdedf
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
fix generate_missing_ref slot_index not set SLOT_FRAME cause
get SLOT_FRAME_PTR assert has_frame
Change-Id: I6c0936efab8eb83a0d2acd6b5e94fbb7e1b987f5
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
The Mutex is destroyed before MppMemService. Use get_lock() to avoid it.
Change-Id: Iba5852280ee2e5804fdfa45da008500fb1dc9225
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Use mpp_mem_pool to reduce MppBufferImpl and MppBufferGroupImpl malloc
and free.
Change-Id: I6331aefddf7ee8eb578a638d86a276891aa61ee7
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
The changes done by 0250dab00c will cause
dbp combination error. So revert it.
Change-Id: Ia1fd3157eafebe52332e3beacd979c1497008a75
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>