mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-18 15:10:39 +08:00
[av1d_parse]: fix segment feature value get err issue
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com> Change-Id: I662b39575d19f50c1ff912c6b76f081db843855e
This commit is contained in:
@@ -1158,11 +1158,15 @@ static RK_S32 mpp_av1_segmentation_params(AV1Context *ctx, BitReadCtx_t *gb,
|
|||||||
for (j = 0; j < AV1_SEG_LVL_MAX; j++) {
|
for (j = 0; j < AV1_SEG_LVL_MAX; j++) {
|
||||||
if (current->segmentation_update_data) {
|
if (current->segmentation_update_data) {
|
||||||
flags(feature_enabled[i][j], 2, i, j);
|
flags(feature_enabled[i][j], 2, i, j);
|
||||||
|
|
||||||
if (current->feature_enabled[i][j] && bits[j] > 0) {
|
if (current->feature_enabled[i][j] && bits[j] > 0) {
|
||||||
if (sign[j])
|
if (sign[j]) {
|
||||||
sus(1 + bits[j], feature_value[i][j], 2, i, j);
|
RK_S32 sign_, data;
|
||||||
else
|
|
||||||
|
READ_ONEBIT(gb, &sign_);
|
||||||
|
READ_BITS(gb, bits[j], &data);
|
||||||
|
if (sign_) data -= (1 << bits[j]);
|
||||||
|
current->feature_value[i][j] = data;
|
||||||
|
} else
|
||||||
fbs(bits[j], feature_value[i][j], 2, i, j);
|
fbs(bits[j], feature_value[i][j], 2, i, j);
|
||||||
} else {
|
} else {
|
||||||
infer(feature_value[i][j], 0);
|
infer(feature_value[i][j], 0);
|
||||||
@@ -1183,6 +1187,8 @@ static RK_S32 mpp_av1_segmentation_params(AV1Context *ctx, BitReadCtx_t *gb,
|
|||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
__BITREAD_ERR:
|
||||||
|
return MPP_ERR_STREAM;
|
||||||
}
|
}
|
||||||
|
|
||||||
static RK_S32 mpp_av1_delta_q_params(AV1Context *ctx, BitReadCtx_t *gb,
|
static RK_S32 mpp_av1_delta_q_params(AV1Context *ctx, BitReadCtx_t *gb,
|
||||||
|
@@ -1225,7 +1225,7 @@ void vdpu_av1d_set_segmentation(VdpuAv1dRegCtx *ctx, DXVA_PicParams_AV1 *dxva)
|
|||||||
RK_U8 preskip_segid = 0;
|
RK_U8 preskip_segid = 0;
|
||||||
RK_U8 last_active_seg = 0;
|
RK_U8 last_active_seg = 0;
|
||||||
/* Segmentation */
|
/* Segmentation */
|
||||||
regs->swreg13.sw_segment_temp_upd_e = dxva->segmentation.update_data;
|
regs->swreg13.sw_segment_temp_upd_e = dxva->segmentation.temporal_update;
|
||||||
regs->swreg13.sw_segment_upd_e = dxva->segmentation.update_map;
|
regs->swreg13.sw_segment_upd_e = dxva->segmentation.update_map;
|
||||||
regs->swreg13.sw_segment_e = dxva->segmentation.enabled;
|
regs->swreg13.sw_segment_e = dxva->segmentation.enabled;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user