1.描述
AVCodecContext是一個(gè)描述編解碼器上下文的數(shù)據(jù)結(jié)構(gòu)委可,包含了眾多編解碼器需要的參數(shù)信息,位于avcodec.h文件中刹帕。
2.常見(jiàn)變量及其作用
enum AVMediaType codec_type; //編解碼器的類型(視頻铣耘,音頻...)。
const struct AVCodec *codec; //采用的解碼器AVCodec(H.264,MPEG2...)攘宙。
int64_t bit_rate;//平均比特率。
uint8_t *extradata;//針對(duì)特定編碼器包含的附加信息(例如對(duì)于H.264解碼器來(lái)說(shuō)拐迁,存儲(chǔ)SPS蹭劈,PPS等)。
int extradata_size;
AVRational time_base;//時(shí)間的基準(zhǔn)單位线召,根據(jù)該參數(shù)铺韧,可以把PTS轉(zhuǎn)化為實(shí)際的時(shí)間(單位為秒s)。
編解碼延遲缓淹。
int delay;//編碼:從編碼器輸入到解碼器輸出的幀延遲數(shù)哈打。解碼:除了規(guī)范中規(guī)定的標(biāo)準(zhǔn)解碼器外產(chǎn)生的幀延遲數(shù)塔逃。
int width, height;//代表寬和高(僅視頻)。
int refs;//運(yùn)動(dòng)估計(jì)參考幀的個(gè)數(shù)(H.264的話會(huì)有多幀料仗,MPEG2這類的一般就沒(méi)有了)湾盗。
int sample_rate; //采樣率(僅音頻)。
int channels; //聲道數(shù)(僅音頻)立轧。
enum AVSampleFormat sample_fmt; //音頻采樣格式格粪,編碼:由用戶設(shè)置。解碼:由libavcodec設(shè)置氛改。
int frame_size;//音頻幀中每個(gè)聲道的采樣數(shù)帐萎。編碼:由libavcodec在avcodec_open2()中設(shè)置。 解碼:可以由一些解碼器設(shè)置以指示恒定的幀大小.
int frame_number;//幀計(jì)數(shù)器平窘,由libavcodec設(shè)置吓肋。解碼:從解碼器返回的幀的總數(shù)凳怨。編碼:到目前為止傳遞給編碼器的幀的總數(shù)瑰艘。
uint64_t channel_layout;//音頻聲道布局。編碼:由用戶設(shè)置肤舞。解碼:由用戶設(shè)置紫新,可能被libavcodec覆蓋。
enum AVAudioServiceType audio_service_type;//音頻流傳輸?shù)姆?wù)類型李剖。編碼:由用戶設(shè)置芒率。解碼:由libavcodec設(shè)置。
參考:
http://blog.csdn.net/leixiaohua1020/article/details/14214859