mirror of
https://github.com/ultravideo/uvg266.git
synced 2024-11-30 20:54:07 +00:00
New GOP structure for ultralow delay
This commit is contained in:
parent
388986399f
commit
9a99f7972f
32
src/config.c
32
src/config.c
|
@ -446,7 +446,39 @@ int kvz_config_parse(kvz_config *cfg, const char *name, const char *value)
|
|||
cfg->gop[3].poc_offset = 4; cfg->gop[3].qp_offset = 1; cfg->gop[3].layer = 1; cfg->gop[3].qp_factor = 0.578; cfg->gop[3].is_ref = 1;
|
||||
cfg->gop[3].ref_neg_count = 4; cfg->gop[3].ref_neg[0] = 1; cfg->gop[3].ref_neg[1] = 4; cfg->gop[3].ref_neg[2] = 8; cfg->gop[3].ref_neg[3] = 12;
|
||||
cfg->gop[3].ref_pos_count = 0;
|
||||
} else if (!strcmp(value, "ultralow")) { // Low-delay B with 1 ref frame
|
||||
cfg->gop_len = 8;
|
||||
cfg->gop[0].poc_offset = 1; cfg->gop[0].qp_offset = 3; cfg->gop[0].layer = 1; cfg->gop[0].qp_factor = 0.68; cfg->gop[0].is_ref = 1;
|
||||
cfg->gop[0].ref_pos_count = 0;
|
||||
cfg->gop[0].ref_neg_count = 1; cfg->gop[0].ref_neg[0] = 1;
|
||||
|
||||
cfg->gop[1].poc_offset = 2; cfg->gop[1].qp_offset = 2; cfg->gop[1].layer = 2; cfg->gop[1].qp_factor = 0.3536; cfg->gop[1].is_ref = 1;
|
||||
cfg->gop[1].ref_neg_count = 1; cfg->gop[1].ref_neg[0] = 1;
|
||||
cfg->gop[1].ref_pos_count = 0;
|
||||
|
||||
cfg->gop[2].poc_offset = 3; cfg->gop[2].qp_offset = 3; cfg->gop[2].layer = 3; cfg->gop[2].qp_factor = 0.68; cfg->gop[2].is_ref = 1;
|
||||
cfg->gop[2].ref_neg_count = 1; cfg->gop[2].ref_neg[0] = 1;
|
||||
cfg->gop[2].ref_pos_count = 0;
|
||||
|
||||
cfg->gop[3].poc_offset = 4; cfg->gop[3].qp_offset = 2; cfg->gop[3].layer = 4; cfg->gop[3].qp_factor = 0.3536; cfg->gop[3].is_ref = 1;
|
||||
cfg->gop[3].ref_neg_count = 1; cfg->gop[3].ref_neg[0] = 1;
|
||||
cfg->gop[3].ref_pos_count = 0;
|
||||
|
||||
cfg->gop[4].poc_offset = 5; cfg->gop[4].qp_offset = 3; cfg->gop[4].layer = 4; cfg->gop[4].qp_factor = 0.68; cfg->gop[4].is_ref = 1;
|
||||
cfg->gop[4].ref_neg_count = 1; cfg->gop[4].ref_neg[0] = 1;
|
||||
cfg->gop[4].ref_pos_count = 0;
|
||||
|
||||
cfg->gop[5].poc_offset = 6; cfg->gop[5].qp_offset = 2; cfg->gop[5].layer = 3; cfg->gop[5].qp_factor = 0.3536; cfg->gop[5].is_ref = 1;
|
||||
cfg->gop[5].ref_neg_count = 1; cfg->gop[5].ref_neg[0] = 1;
|
||||
cfg->gop[5].ref_pos_count = 0;
|
||||
|
||||
cfg->gop[6].poc_offset = 7; cfg->gop[6].qp_offset = 3; cfg->gop[6].layer = 4; cfg->gop[6].qp_factor = 0.68; cfg->gop[6].is_ref = 1;
|
||||
cfg->gop[6].ref_neg_count = 1; cfg->gop[6].ref_neg[0] = 1;
|
||||
cfg->gop[6].ref_pos_count = 0;
|
||||
|
||||
cfg->gop[7].poc_offset = 8; cfg->gop[7].qp_offset = 1; cfg->gop[7].layer = 4; cfg->gop[7].qp_factor = 0.68; cfg->gop[7].is_ref = 1;
|
||||
cfg->gop[7].ref_neg_count = 1; cfg->gop[7].ref_neg[0] = 1;
|
||||
cfg->gop[7].ref_pos_count = 0;
|
||||
} else if (atoi(value)) {
|
||||
fprintf(stderr, "Input error: unsupported gop length, must be 0 or 8\n");
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue