FFMPEG 源代码学习

来源:互联网 发布:matlab 股票数据 编辑:程序博客网 时间:2024/06/03 17:44

20141005

新手。

用eclipse对ffmpeg源码进行调试,利用makefile加载工程。

由于想要输出经过libavcodec编码的视频的DCT系数,所以主要关注的文件是mpegvideo.c。

mpegvideo.c中定义了视频编解码所需的一些函数,例如:MPV_decode_mb_internal()。

MPV_decode_mb_internal()可以完成帧间编码宏块的解压,如P-MB,S-MB。

MPV_decode_mb_internal()中可以看到如下代码

if(s->avctx->debug&FF_DEBUG_DCT_COEFF) {       /* print DCT coefficients */       int i,j;       av_log(s->avctx, AV_LOG_INFO, "DCT coeffs of MB at %dx%d:\n", s->mb_x, s->mb_y);       for(i=0; i<6; i++){           for(j=0; j<64; j++){               av_log(s->avctx, AV_LOG_INFO, "%5d",                      block[i][s->idsp.idct_permutation[j]]);           }           av_log(s->avctx, AV_LOG_DEBUG, "\n");       }    }
这段代码是在debug时候用于在命令行中输出DCT系数的。且是量化后的dct系数。


此外Picture类型的变量,存储了帧(用于参考的帧,或缓存的帧,或解压后的帧等等),是使用非常多的一个数据类型。

此外还有IDCTDSPContext这个类型,也多处使用。

0 0
原创粉丝点击