|
|
沉稳的茶壶 · 天降之物 - 萌娘百科 万物皆可萌的百科全书· 1 年前 · |
|
|
踏实的风衣 · 怎么去拥有一本亲签《走近大凉山》?机会来了! ...· 2 年前 · |
|
|
拉风的小熊猫 · 为什么《知否》里,同嫁给伯爵府,墨兰不如华兰 ...· 2 年前 · |
|
|
可爱的乌冬面 · 【东南】东南汽车最新报价_东南图片_东南车型 ...· 2 年前 · |
x264源代码简单分析:x264_slice_write()
x264源代码简单分析:宏块分析(Analysis)部分-帧内宏块(Intra)
x264源代码简单分析:宏块分析(Analysis)部分-帧间宏块(Inter)
x264源代码简单分析:熵编码(Entropy Encoding)部分
【解码 - libavcodec H.264 解码器】
FFmpeg的H.264解码器源代码简单分析:解析器(Parser)部分
FFmpeg的H.264解码器源代码简单分析:解码器主干部分
FFmpeg的H.264解码器源代码简单分析:熵解码(EntropyDecoding)部分
FFmpeg的H.264解码器源代码简单分析:宏块解码(Decode)部分-帧内宏块(Intra)
FFmpeg的H.264解码器源代码简单分析:宏块解码(Decode)部分-帧间宏块(Inter)
FFmpeg的H.264解码器源代码简单分析:环路滤波(Loop Filter)部分
=====================================================
本文简单记录一下FFmpeg的libavcodec中与libx264接口部分的源代码。该部分源代码位于“libavcodec/libx264.c”中。正是有了这部分代码,使得FFmpeg可以调用libx264编码H.264视频。
FFmpeg的libavcodec中的libx264.c的函数调用关系如下图所示。
从图中可以看出,libx264对应的AVCodec结构体ff_libx264_encoder中设定编码器初始化函数是X264_init(),编码一帧数据的函数是X264_frame(),编码器关闭函数是X264_close()。
X264_init()调用了如下函数:
[libx264 API] x264_param_default():设置默认参数。X264_frame()调用了如下函数:
[libx264 API] x264_param_default_preset():设置默认preset。
convert_pix_fmt():将FFmpeg像素格式转换为libx264像素格式。
[libx264 API] x264_param_apply_profile():设置Profile。
[libx264 API] x264_encoder_open():打开编码器。
[libx264 API] x264_encoder_headers():需要全局头的时候,输出头信息。
[libx264 API] x264_encoder_encode():编码一帧数据。X264_close()调用了如下函数:
[libx264 API] x264_encoder_delayed_frames():输出编码器中缓存的数据。
encode_nals():将编码后得到的x264_nal_t转换为AVPacket。
[libx264 API] x264_encoder_close():关闭编码器。
|
|
沉稳的茶壶 · 天降之物 - 萌娘百科 万物皆可萌的百科全书 1 年前 |