For kernel dmabuf driver has bug on partial sync function we deside to
disable partial sync to reduce user's error.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I2c69c407eb5b0056ad0377699fef6ef31e1d79cd
mpp_dup function use fnctl F_DUPFD_CLOEXEC for fd dup with CLOEXEC flag.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Idd82eb935b06d2885685aeb696b95e910981539d
Add VEPU540/580 YUV400 format support in H.264 and H.265
Change-Id: Id62102dcdc42afea5c3485224d9b4e5bf25efbac
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
1.Correct encoding P skip frame on RK3528. For Rk3528, the maxCuSize is 32, which is different to other Chips that maxCUSize of them is 64. So we need to treat them differentlly.
2.The fixed parameters in the original process have been changed to vary based on maxCUSize.
3.Fix m_cuDepth problem, which value was incorrect.
Change-Id: If4ba25d4d221af64d17c4991a708756ab5bc12d9
Signed-off-by: xiaoxu.chen <xiaoxu.chen@rock-chips.com>
1. Set end_of_slice_segment_flag at the last CTU of one frame.
2. Fix sps->raster2pelx and sps->raster2pely initialization problem.They cause encoding problem for non 64 pixel aligned.
3. The last CTU handled independently, reducing the cost.
Change-Id: I77c565b9bb1eaeaef0d61c8e9c50aa14ef4d0e61
Signed-off-by: xiaoxu.chen <xiaoxu.chen@rock-chips.com>
It will cause frame decode software timeout.
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I8488dcdde90d268a2a0d6888499b96eb00c77619
crash backtrace:
0) crash at pp->PicWidthInMinCbsY = sps->min_cb_width; sps is 0x0
1) fill_picture_parameters at h265d_parser2_syntax.c:72
2) h265d_parser2_syntax at h265d_parser2_syntax.c:315
3) h265d_parse at h265d_parser.c:1904
While parsing PPS, an incorrect sps_id was parsed, but since the PPS
information is after other decoding frames, the parse_error was not set
to 1. This led to the completion of the parse process reaching
fill_picture_parameters, resulting in an error due to the obtained sps
information being null.
Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
Change-Id: I31b8c0371803fb8101fb7ca4aec7e9183c6b218e
1. Add dpb hal_start/hal_end function to mark hal usage.
2. Use dpb_used in the dpb process flow and hal_used in hal flow.
3. Send dpb ptr to hal for hal notify.
4. Use reg_idx in enc_task to find the register buffer.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ib728a896826a3039682de75d6a8cc2d4dfe04e3d
There is a certain error stream that vps is behind
sps and pps while it is still legal and can be
decoded. But the error detection code will stop
the parse process and return error.
To compat this stream by removing return operation
then this kind of stream can be supported.
Change-Id: I2f90a5efa5a8c63a6fa278f9d0408603943001b2
Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
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>