FFMPEG 源代码学习

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这个类型,也多处使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值