您的位置:首页 > 其它

x264中x264_me_search_ref的被调用分析

2013-04-22 11:41 357 查看
转载于:http://blog.csdn.net/vblittleboy/article/details/8302323

该函数用于帧间预测运动矢量的搜索,在x264中被多次调用,怎么知道哪些函数调用了它呢?

void x264_me_search_ref( x264_t *h, x264_me_t *m, int16_t (*mvc)[2], int i_mvc, int *p_fullpel_thresh );

#define x264_me_search( h, m, mvc, i_mvc)\

x264_me_search_ref( h, m, mvc, i_mvc, NULL )

可以故意多加一个参数,int a,这样调用函数因为参数不一致,就会报错,这样,那些调用参数就浮出水面了

void x264_me_search_ref( x264_t *h, x264_me_t *m, int16_t (*mvc)[2], int i_mvc, int *p_fullpel_thresh,int a );

修改后,保存一下,执行一次make命令,编译器提示报错如下:

chase@chase-VirtualBox:~/workspace/x264$ make

gcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -fomit-frame-pointer -fno-tree-vectorize -c -o encoder/analyse.o encoder/analyse.c

encoder/analyse.c: 在函数‘x264_mb_analyse_inter_p16x16’中:

encoder/analyse.c:1447:13: 错误: 提供给函数‘x264_me_search_ref’的实参太少

encoder/me.h:64:6: 附注: 在此声明

encoder/analyse.c:1420:10: 警告: 未使用的变量‘i_MSearch_thresh’ [-Wunused-variable]

encoder/analyse.c: 在函数‘x264_mb_analyse_inter_p8x8_mixed_ref’中:

encoder/analyse.c:1558:17: 错误: 提供给函数‘x264_me_search_ref’的实参太少

encoder/me.h:64:6: 附注: 在此声明

encoder/analyse.c: 在函数‘x264_mb_analyse_inter_p8x8’中:

encoder/analyse.c:1624:9: 错误: 提供给函数‘x264_me_search_ref’的实参太少

encoder/me.h:64:6: 附注: 在此声明

encoder/analyse.c: 在函数‘x264_mb_analyse_inter_p16x8’中:

encoder/analyse.c:1692:17: 错误: 提供给函数‘x264_me_search_ref’的实参太少

encoder/me.h:64:6: 附注: 在此声明

encoder/analyse.c: 在函数‘x264_mb_analyse_inter_p8x16’中:

encoder/analyse.c:1757:17: 错误: 提供给函数‘x264_me_search_ref’的实参太少

encoder/me.h:64:6: 附注: 在此声明

encoder/analyse.c: 在函数‘x264_mb_analyse_inter_p4x4’中:

encoder/analyse.c:1879:9: 错误: 提供给函数‘x264_me_search_ref’的实参太少

encoder/me.h:64:6: 附注: 在此声明

encoder/analyse.c: 在函数‘x264_mb_analyse_inter_p8x4’中:

encoder/analyse.c:1918:9: 错误: 提供给函数‘x264_me_search_ref’的实参太少

encoder/me.h:64:6: 附注: 在此声明

encoder/analyse.c: 在函数‘x264_mb_analyse_inter_p4x8’中:

encoder/analyse.c:1954:9: 错误: 提供给函数‘x264_me_search_ref’的实参太少

encoder/me.h:64:6: 附注: 在此声明

encoder/analyse.c: 在函数‘x264_mb_analyse_inter_b16x16’中:

encoder/analyse.c:2108:13: 错误: 提供给函数‘x264_me_search_ref’的实参太少

encoder/me.h:64:6: 附注: 在此声明

encoder/analyse.c: 在函数‘x264_mb_analyse_inter_b8x8_mixed_ref’中:

encoder/analyse.c:2401:17: 错误: 提供给函数‘x264_me_search_ref’的实参太少

encoder/me.h:64:6: 附注: 在此声明

encoder/analyse.c: 在函数‘x264_mb_analyse_inter_b8x8’中:

encoder/analyse.c:2488:13: 错误: 提供给函数‘x264_me_search_ref’的实参太少

encoder/me.h:64:6: 附注: 在此声明

encoder/analyse.c: 在函数‘x264_mb_analyse_inter_b16x8’中:

encoder/analyse.c:2567:17: 错误: 提供给函数‘x264_me_search_ref’的实参太少

encoder/me.h:64:6: 附注: 在此声明

encoder/analyse.c: 在函数‘x264_mb_analyse_inter_b8x16’中:

encoder/analyse.c:2661:17: 错误: 提供给函数‘x264_me_search_ref’的实参太少

encoder/me.h:64:6: 附注: 在此声明

In file included from encoder/analyse.c:4219:0:

encoder/slicetype.c: 在函数‘x264_slicetype_mb_cost’中:

encoder/slicetype.c:621:13: 错误: 提供给函数‘x264_me_search_ref’的实参太少

encoder/me.h:64:6: 附注: 在此声明

由此可知,调用x264_me_search_ref函数的包括:

x264_mb_analyse_inter_p16x16

x264_mb_analyse_inter_p8x8_mixed_ref

x264_mb_analyse_inter_p8x8

x264_mb_analyse_inter_p16x8

x264_mb_analyse_inter_p8x16

x264_mb_analyse_inter_p4x4

x264_mb_analyse_inter_p8x4

x264_mb_analyse_inter_p4x8

x264_mb_analyse_inter_b16x16

x264_mb_analyse_inter_b8x8_mixed_ref

x264_mb_analyse_inter_b8x8

x264_mb_analyse_inter_b16x8

x264_mb_analyse_inter_b8x16’

x264_slicetype_mb_cost

总共14个函数,14次调用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: