本次需要对xavs2和davs2进行编译,相关文件下载链接如下:
https://gitee.com/pkuvcl/xavs2
https://gitee.com/pkuvcl/davs2
按照相关步骤编译davs2的时候都是正常通过,但是编译xavs2时却有报错。后经修改相关xavs2文件的源码后,再次编译通过。
修改了以下两处地方:
/* ---------------------------------------------------------------------------
* the aec encoding
*/
static void *encoder_aec_encode_one_frame(void *hh)
{
xavs2_t *h = (xavs2_t *)hh;
aec_t aec;
frame_info_t *frame = h->frameinfo;
xavs2_frame_t *fdec = h->fdec;
row_info_t *row = NULL;
lcu_info_t *lcu = NULL;
slice_t *slice = NULL;
aec_t *p_aec = &aec;
outputframe_t output_frame;
2、xavs2-master\source\encoder下的parameters.c文件
修改了调用xavs2_get_configs函数时的参数类型。
int
xavs2_encoder_opt_set(xavs2_param_t *param, int argc, char *argv[])
{
char *items[MAX_ITEMS];
char *contents;
char *p;
char *bufend;
char name[64];
int map_index;
int item = 0;
int in_string = 0;
int in_item = 0;
int i;
if ((contents = xavs2_get_configs(argc, (const char * const *)*argv)) == NULL) {
fprintf(stderr, "get contents from configure file error.");
return -1;
}
p = contents;
bufend = &contents[strlen(contents)];