ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上

2009年9月8日 星期二

code reading : sample code of ffmpeg : avcodec_sample0.5.c

av_register_all( ) 建立起所有 support codec, decoder, demuxer, muxer... 的 linking list。


av_probe_input_format2( ) 會讀取 file 內容,從標頭猜測 格式。

實際上這一段就是一一呼叫所有 codec 的 XXX_probe( ) function,取出score,score 最高的codec 就是了..

probe 和 decode 在不同的目錄:
  • probe : libformat
  • decode : libavcodec
用 CODEC_ID 來傳遞, probe 得到 CODEC_ID,再由 ID (string compare) 找出codec function table.

decode file stream 是利用以下 data sequence:
/* Start codes. */
#define SEQ_END_CODE            0x000001b7
#define SEQ_START_CODE          0x000001b3
#define GOP_START_CODE          0x000001b8
#define PICTURE_START_CODE      0x00000100
#define SLICE_MIN_START_CODE    0x00000101
#define SLICE_MAX_START_CODE    0x000001af
#define EXT_START_CODE          0x000001b5
#define USER_START_CODE         0x000001b2

沒有留言:

標籤

網誌存檔