mirror of
https://github.com/ultravideo/uvg266.git
synced 2024-11-27 19:24:06 +00:00
[bipred] Fix reference list writing when gop==0 and bipred are used, add to CI also
This commit is contained in:
parent
e662a2747b
commit
36d302ba38
|
@ -1022,7 +1022,6 @@ static void encoder_state_write_picture_timing_sei_message(encoder_state_t * con
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ToDo: Enable tiles/wpp
|
|
||||||
static void encoder_state_entry_points_explore(const encoder_state_t * const state, int * const r_count, int * const r_max_length) {
|
static void encoder_state_entry_points_explore(const encoder_state_t * const state, int * const r_count, int * const r_max_length) {
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; state->children[i].encoder_control; ++i) {
|
for (i = 0; state->children[i].encoder_control; ++i) {
|
||||||
|
@ -1198,6 +1197,11 @@ static void kvz_encoder_state_write_bitstream_ref_pic_list(
|
||||||
|
|
||||||
int last_poc = 0;
|
int last_poc = 0;
|
||||||
int poc_shift = 0;
|
int poc_shift = 0;
|
||||||
|
// We don't need to signal L1 list if it's copied from L0
|
||||||
|
bool copy_rpl1_from_rpl0 = (encoder->cfg.gop_len == 0 && encoder->cfg.bipred);
|
||||||
|
|
||||||
|
|
||||||
|
for (int list = 0; list < 1 + copy_rpl1_from_rpl0; list++) {
|
||||||
|
|
||||||
WRITE_UE(stream, ref_negative, "num_ref_entries[0]");
|
WRITE_UE(stream, ref_negative, "num_ref_entries[0]");
|
||||||
for (j = 0; j < ref_negative; j++) {
|
for (j = 0; j < ref_negative; j++) {
|
||||||
|
@ -1233,6 +1237,9 @@ static void kvz_encoder_state_write_bitstream_ref_pic_list(
|
||||||
}
|
}
|
||||||
last_poc = 0;
|
last_poc = 0;
|
||||||
poc_shift = 0;
|
poc_shift = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!copy_rpl1_from_rpl0) {
|
||||||
WRITE_UE(stream, ref_positive, "num_ref_entries[1]");
|
WRITE_UE(stream, ref_positive, "num_ref_entries[1]");
|
||||||
for (j = 0; j < ref_positive; j++) {
|
for (j = 0; j < ref_positive; j++) {
|
||||||
int8_t delta_poc = 0;
|
int8_t delta_poc = 0;
|
||||||
|
@ -1265,6 +1272,7 @@ static void kvz_encoder_state_write_bitstream_ref_pic_list(
|
||||||
if (delta_poc + 1) WRITE_U(stream, 0, 1, "strp_entry_sign_flag");
|
if (delta_poc + 1) WRITE_U(stream, 0, 1, "strp_entry_sign_flag");
|
||||||
last_poc = delta_poc;
|
last_poc = delta_poc;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (ref_negative > 1 || ref_positive > 1) {
|
if (ref_negative > 1 || ref_positive > 1) {
|
||||||
WRITE_U(stream, 1, 1, "sh_num_ref_idx_active_override_flag");
|
WRITE_U(stream, 1, 1, "sh_num_ref_idx_active_override_flag");
|
||||||
|
|
|
@ -8,6 +8,6 @@ set -eu
|
||||||
common_args='264x128 10 yuv420p -p0 -r1 --threads=2 --wpp --owf=1 --rd=0 --pu-depth-inter 0-3 --no-bipred --no-tmvp --no-deblock --gop=0'
|
common_args='264x128 10 yuv420p -p0 -r1 --threads=2 --wpp --owf=1 --rd=0 --pu-depth-inter 0-3 --no-bipred --no-tmvp --no-deblock --gop=0'
|
||||||
|
|
||||||
valgrind_test $common_args --no-rdoq --no-deblock --no-sao --no-signhide --subme=1 --pu-depth-intra=2-3
|
valgrind_test $common_args --no-rdoq --no-deblock --no-sao --no-signhide --subme=1 --pu-depth-intra=2-3
|
||||||
valgrind_test $common_args --no-rdoq --no-signhide --subme=0
|
valgrind_test $common_args --no-rdoq --no-signhide --subme=0 --bipred
|
||||||
valgrind_test $common_args --rdoq --no-deblock --no-sao --subme=0
|
valgrind_test $common_args --rdoq --no-deblock --no-sao --subme=0
|
||||||
valgrind_test $common_args --gop=8 --subme=4 --bipred --tmvp
|
valgrind_test $common_args --gop=8 --subme=4 --bipred --tmvp
|
||||||
|
|
Loading…
Reference in a new issue