When sending eos frame to vproc with -1 slot_index and decoder is reset
the -1 index will enter mpp_buf_slot_get_prop and trigger slot assert.
Remove the mpp_buf_slot_get_prop process and just wait until vproc
thread is idle.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
Change-Id: Idf4a523ea039a16c92cd466f6d8d954f5709e70e
When packet is splited outside, the slice_layer_extension NALU won't be
store correctly. We need to treat it as a normal slice NALU.
Change-Id: I4bc3a700e30dffd6a028b63876773889cb01eaff
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
The old rountine will spend too much time at configuring intra flag at
ROI configuration buffer. For lower time cost, simplifying bits
configuration, and not operating DMA buffer directly.
Change-Id: Ia8af52bba1dca941811ae2c4e776d57e529bd663
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
Add parameters required for intra refresh
Add rate control corresponding to intra refresh
Change-Id: I6dbaf70e3c50cd0debf909ded9fb5c4f30df26ec
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
cpb_cnt_minus1 need to check value less than 32. Otherwise,
it will cause memory otherwise.
crash trace:
0) 0x0000007fa03e5864 in update_curbyte_h264 (bitctx=0x325a1b20)
at mpp/base/mpp_bitread.c:45
1) 0x0000007fa03e59ac in mpp_read_bits ()
at mpp/base/mpp_bitread.c:106
2) mpp_read_bits (bitctx=0x325a1b20, num_bits=1, out=0x7f64feb568)
at mpp/base/mpp_bitread.c:95
3) 0x0000007fa03e5c0c in mpp_read_ue (bitctx=bitctx@entry=0x325a1b20, val=val@entry=0x7f64feb5bc)
at mpp/base/mpp_bitread.c:225
4) 0x0000007fa03f7034 in read_hrd_parameters (p_bitctx=p_bitctx@entry=0x325a1b20, hrd=hrd@entry=0x325a0e58)
at mpp/codec/dec/h264/h264d_sps.c:55
5) 0x0000007fa03f7aa0 in read_VUI (vui=0x325a0e08, p_bitctx=0x325a1b20)
at mpp/codec/dec/h264/h264d_sps.c:117
6) parser_sps (p_bitctx=p_bitctx@entry=0x325a1b20, cur_sps=cur_sps@entry=0x325a01a0, p_Dec=<optimized out>)
at mpp/codec/dec/h264/h264d_sps.c:272
7) 0x0000007fa03f7e60 in process_sps (currSlice=currSlice@entry=0x325a1bb0)
at mpp/codec/dec/h264/h264d_sps.c:453
8) 0x0000007fa03f588c in parser_one_nalu (currSlice=0x325a1bb0)
at mpp/codec/dec/h264/h264d_parse.c:240
9) parse_loop (p_Dec=p_Dec@entry=0x3259fa00)
at mpp/codec/dec/h264/h264d_parse.c:912
10) 0x0000007fa03f38c4 in h264d_parse (decoder=0x3259fa00, in_task=0x7f64feb7e8)
at mpp/codec/dec/h264/h264d_api.c:594
Change-Id: I3f2bdcb603cdbcf4757f32db162924c575e739fd
Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
this issue is introduced by patch as followed.
Change-Id: I2386f3a215027d2cda9a189bc49806f6358cf9ef
Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
Change-Id: I6e2587bcbc87fdfe1b63cfbe6705c072d6eb5d4c
When there is an MVC type in the slice, but no MVC view actually
exists, this situation needs to be treated as an AVC source.
crash backtrace:
0) 0x0000007faa485f1c in set_slice_user_parmeters (currSlice=0x20b363e0)
at mpp/codec/dec/h264/h264d_slice.c:345
1) process_slice (currSlice=currSlice@entry=0x20b363e0)
at mpp/codec/dec/h264/h264d_slice.c:464
2) 0x0000007faa485804 in parser_one_nalu (currSlice=0x20b363e0)
at mpp/codec/dec/h264/h264d_parse.c:233
3) parse_loop (p_Dec=p_Dec@entry=0x20b34240)
at mpp/codec/dec/h264/h264d_parse.c:912
4) 0x0000007faa4838c4 in h264d_parse (decoder=0x20b34240, in_task=0x7f8926b7e8)
at mpp/codec/dec/h264/h264d_api.c:594
Change-Id: Icc975dc8209b85679a2e1c8e095f24109c730422
Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
num_views_minus1 maybe is -1, when type is RK_U8, the value is
255, num_views will be 256, correct num_views_minus1 should be
-1, num_views is 0.
crash backtrace:
0) 0x0000007f99216b64 in fill_picparams (p_Vid=0xd8065a0, pp=pp@entry=0xd8089c4)
at mpp/codec/dec/h264/h264d_fill.c:229
1) 0x0000007f9921632c in init_picture (currSlice=0xd805dc0)
at mpp/codec/dec/h264/h264d_init.c:2066
2) 0x0000007f9920ad38 in parse_loop (p_Dec=p_Dec@entry=0xd803c00)
at mpp/codec/dec/h264/h264d_parse.c:929
3) 0x0000007f99208abc in h264d_parse (decoder=0xd803c00, in_task=0xd80b770)
at mpp/codec/dec/h264/h264d_api.c:607
Change-Id: I2386f3a215027d2cda9a189bc49806f6358cf9ef
Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
Layer id and view id information setting to hardware SPS, RPS should be
cleaned for each frame, otherwise the base layer will encountered error
for some MVC bistream.
Change-Id: I830768ad65fba1be6ab6bf4092d938c6134a288d
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
malloc will bring random values, resulting in some unknown errors
Change-Id: I22d5f61edb09780e3145397c0509eb71b7bf1183
Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
fast once can be controlled by cmake cmd:
-DENABLE_FASTPLAY_ONCE=ON
Change-Id: Id0073ef8356acec700030b98b417d4f6999bf894
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
[Scenes]
poc has negative value
nal_reference_idc is not 0
[Issue]
Mark the current frame as error frm, when the poc value is
less than the I frame(such as negative poc).
[Solution]
Add a flag to judge whether the I frame has been output.
In the case of current frame poc is smaller than the I frame poc:
1. The current frame will be marked with an error flag, when
the I frame has been output.
2. The current frame will not be marked with an error flag,
when the I frame has not been output.
Change-Id: I164cea77fce031716645b5c5c992a0bcf737dd4e
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
The impl->width is invalid before it is initialized.
So move fbc_hdr_stride setup after impl->width is initialized.
This issue is introduced by:
commit 5469f9d08b
Author: Herman Chen <herman.chen@rock-chips.com>
Date: Fri Dec 23 16:38:54 2022 +0800
[misc]: Add compatible for fbc header alignment
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I3f3f4bfd2d84b813c900e05492eb6df5ea6f7a29
when poc_used_bits calculation met emulation prevention byte,
poc_used_bits counting need to minus emulation_prevention_bytes_
related issue:https://redmine.rock-chips.com/issues/389676
Signed-off-by: Chandler Chen <chandler.chen@rock-chips.com>
Change-Id: Ibc1b077d836412743aaddd868d16eda8685ca307
Dpb can not be flushed before split process when sending EOS in split mode.
Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
Change-Id: Id8ac89960ea2311f06ab80a2551ee114afafc83f
1. add viewid in struct VideoFrame for mvc output
2. modify reserved to int type for future
Signed-off-by: He Hua <hh@rock-chips.com>
Change-Id: Ib95999221bef8c9d385b70736ab7978926a78836
Set rfp_load_thd to zero to avoid reference window timeout stuck.
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I0d24ef109304cb3262167538e2872447bad707f7
For IEP2, the first two frames will be deinterlaced at I1O1 mode. I5O2
mode only works when the 3rd frame arrived. Thus the 2nd frame will be
deinterlaced twice and PTS will be repeated as following pattern:
-------------------------------------
IEP in : 0 1 2 3 4
IEP out : 0 1 0.5 1 2.5 3 3.5
-------------------------------------
To fix this, just skip the 2nd frame processing.
Change-Id: I2d66951a941a664da093f1b9edbdd73855c57060
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>