1.编译调试Xvidcore
从Xvid官方网站下载xvidcore_1.3.3.orig.tar.gz。
解压。
按照~/doc中的INSTALL进行安装。
完成安装后,利用eclipse luna进行调试,出现问题:
新建工程,将~/xvidcore_1.3.3整个文件夹内的文件加载。
debug其中的xvid_decraw,发现单步调试时无法进入函数xvid_decore()。
幸得大神相助,发现是/build在make的时候需要加-g,使得调试过程中能够进入xvid_decore。
具体的是,在/build/generic/文件夹中的Makefile中加入-g:
@$(CC) -c $(ARCHITECTURE) $(BUS) $(ENDIANNESS) $(FEATURES) $(SPECIFIC_CFLAGS) $(CFLAGS) $< -o $(BUILD_DIR)/$@
改为:
@$(CC) -g3 -c $(ARCHITECTURE) $(BUS) $(ENDIANNESS) $(FEATURES) $(SPECIFIC_CFLAGS) $(CFLAGS) $< -o $(BUILD_DIR)/$@
修改之后重新编译即可进入函数xvid_decore()。
2.标志位:cbp(coded_block_pattern)
cbp即coded_block_pattern,其定义在MPEG-4 part2 中有写明。
在解码过程中,cbp标志位说明了每个block是否进行编码。
例如,在解码P-VOP时,如果编码块为Skipped MB(即mb->mode == MODE_NOT_CODED),则该宏块的cbp设