1. Allocator api is determined by buffer type.
2. Allocator ctx is determined by both buffer type and buffer flags.
3. All allocator dma_heap / drm / ion / ext_dma should support different
buffer flags.
4. The buffer flag supports cacheable / 32-bit / contig options.
5. Add flags update flow on allocator create process.
6. Add mpp_dmabuf_has_partial_ops to disable dmabuf partial ops when the
kernel driver has bug.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: If36a05c6704112cad3ab46861023597ff02bf14c
We need get different allocator when alloc buffer with flags, such
as ion,drm,dma_heap, all must be supported.
Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
Change-Id: Id128c7420f0defa65500ef19c25e193ff1b56a8a
Currently only support uncached dma heap node access,
because of the cache processing is not yet complete.
So if there are no uncached node in /dev/dma_heap/ path,
mpp will not use dma_heap allocator.
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ic33fca9c445c7668a86454f01f9d7577668de32b
Add an option in dec_test to demo zero-copy external buffers mode.
use -bufmode to config the buffer mode option
hl - half internal mode
i - pure internal mode
e - pure external mode
Change-Id: Ib92c30acd8c370843becb286c935de056b09bcbd
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
sync_begin - cache invalidate, should be called before cpu read
sync_end - cache flush, should be called after cpu write
MppBuffer sync flow:
1. hw access
2. sync_begin
3. cpu access (read / write)
4. sync_end
5. hw access
NOTE: readonly option is faster for read only buffer.
Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I253a6139e9bb30808c07075d64f17b5cfad8519a
There is a case:
In split mode, after sending the last packet of a stream,
the user then continues to send packet with extra data flag for the new
stream.
It will result in the last packet loss.
Change-Id: Iba945dbf4229a49fea2040ecc9f76e4ef7209de8
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Improve image quality and compresssion rate without increasing time
consumption.
Change-Id: I5793707f5c4819b72a6edb4635c9e4188a91c9de
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
changelog.sh usage:
Generate the new CHANGELOG.md, commit and add new tag
changelog.sh -t 1.0.x
show help:
changelog.sh or changelog.sh -h
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I2c423568dff3f7c7e10ae7de35876e09f1eee960
If empty eos marks task_valid, it will be send to HAL process
Change-Id: Ie4851e687dc662d38c970122caaea0cd101abbd7
Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
qpprime_y_zero_transform_bypass_flag is related to lossless mode.
Change-Id: I18a8914c0a291268851a4c9e90e50a043fe14fce
Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
Fixed a crash issue in mpp_destroy stage caused by calling members of a recycled parser thread.
crash backtrace:
#00 pc 00084882 /apex/com.android.runtime/lib/bionic/libc.so (pthread_mutex_lock+6)
#01 pc 00081434 /vendor/lib/libmpp.so (mpp_dec_notify_normal(MppDecImpl_t*, unsigned int)+32)
#02 pc 0007d6cc /vendor/lib/libmpp.so (mpp_dec_callback_slot(char const*, void*, int, void*)+112)
#03 pc 000937f0 /vendor/lib/libmpp.so (mpp_buf_slot_clr_flag+944)
#04 pc 000da960 /vendor/lib/libmpp.so (mpp_hevc_unref_frame+168)
#05 pc 000d1c50 /vendor/lib/libmpp.so (h265d_deinit+32)
#06 pc 00081908 /vendor/lib/libmpp.so (mpp_parser_deinit+40)
#07 pc 0007e24c /vendor/lib/libmpp.so (mpp_dec_deinit+548)
#08 pc 0006b4f0 /vendor/lib/libmpp.so (Mpp::clear()+104)
#09 pc 0006b61c /vendor/lib/libmpp.so (Mpp::~Mpp()+12)
#10 pc 0006f7e0 /vendor/lib/libmpp.so (mpp_destroy+152)
#11 pc 00003d1c /vendor/bin/mpi_dec_test (dec_decode+984)
Change-Id: I985168aa6ef30a265fce17c2d9765c17a24075c8
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
When it is in async mode the enc->frame is cleared on task fininsh it
should use hal_task->frame to notify the external output thread.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I237cf0f2aca8a49578f26e16f3aab16dff308132
The simple thread has the thread group feature.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ife367ecc3b5a46d2b50037e8d21cc8ce665a4c02
If SAO and loop filter are both enabled, tile buffer size should be
enlarged, and dchs should be enabled even if current frame is
non-reference.
Change-Id: I8f9beac8a4ebf908a10729367303dd88ae905a3c
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
When vp9 decoder switches from FBC mode to non-FBC mode it requires
resetting the alignment function in buf_slot.
Change-Id: I0c3e35e2c573d003192a2a82d9bdd9c30f42088c
Signed-off-by: Hery Xu <hery.xu@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
1. add num of inter/intra different size predicted block info
2. add start qp info
3. add output pskip frame indicator
4. add SSE info
Change-Id: I664f0f87b862bf1c27b43f67c5c3e4b8b060c5b0
Signed-off-by: yanjun.liao <yanjun.liao@rock-chips.com>