天天看點

FFmpeg部分源碼分析

sws_getContext():初始化一個SwsContext。

sws_scale():處理圖像資料。

sws_freeContext():釋放一個SwsContext。

其中sws_getContext()也可以用sws_getCachedContext()取代。

sws_getContext()的定義位于libswscale\utils.c

盡管libswscale從表面上看常用函數的個數不多,它的内部卻有一個大大的“世界”。暫時不讨論起内部世界。

struct SwsContext *sws_getContext(int srcW, int srcH, enum AVPixelFormat srcFormat,
                                  int dstW, int dstH, enum AVPixelFormat dstFormat,
                                  int flags, SwsFilter *srcFilter,
                                  SwsFilter *dstFilter, const double *param);
           

srcW:源圖像的寬

srcH:源圖像的高

srcFormat:源圖像的像素格式

dstW:目标圖像的寬

dstH:目标圖像的高

dstFormat:目标圖像的像素格式

flags:設定圖像拉伸使用的算法

成功執行的話傳回生成的SwsContext,否則傳回NULL。

sws_scale()

是用于轉換像素的函數。它的聲明位于libswscale\swscale.h

參考連結: https://blog.csdn.net/leixiaohua1020/article/details/44346687

自己摘錄所需,以備忘記,請勿認真閱讀。