我用的netbeans 6.7 以及他所附的debugger(其實他是用gdb)
其實netbeans現在還是有一個小bug 是跟macro有關的
就是有太多macro的檔案(特別是用一次macro用很多行的檔案)
他在右邊的status bar會顯示不正確 大概就這個bug
從main開始看 這main在哪裡勒
在(ffmpeg top)/ffmpeg.c 的最下面
從第一個function開始 avcodec_register_all() 在(ffmpeg top)/libavcodec/allcodec.c
這個function主要是將有經過configure決定需要用到的codec用linked list串起來
串起來的過程是在(ffmpeg top)/libavcodec/utils.c 有重要的global variable first_avcodec
串起來之前還會先call dsputil_static_init在(ffmpeg top)/libavcodec/dsputil.c
這是要初始化一些有關dsputil的gloabal variable
而configure中沒有說要的codec 因為根本就沒有compile object根本就沒有存在
當然就串不起來 這些他都是靠extern這個key word來達成的 這個我需要好好研究
像在這裡 就只有enable h.264 decoder跟 rawvideo encoder
他註冊的時候 就只會有h264_decoder跟rawvideo_encoder這兩個會分別註冊
他們的struct 分別在(ffmpeg top)/libavcodec/h264.c跟(ffmpeg top)/libavcodec/rawenc.c中
他們的type是AVCodec 在(ffmpeg top)/libavcodec/avcodec.h是他的宣告
好下一個是avdevice_register_all在(ffmpeg top)/libavdevice/alldevice.c
這裡做的是大致上跟上一個function是一樣的 將所有的avdevice用linked list串起來
這邊我用的是預設的configure 所以說串了一堆不知道的東西 以後有空再看
串的過程主要是call av_register_output_format跟av_register_input_format
在(ffmpeg top)/libavformat/utils.c
下一個是av_register_all在(ffmpeg top)/libavformat/allformats.c
他做的是跟前一個幾乎是一樣 是將muxer跟demuxer串起來(分別output跟input)
他是跟avdevice串在同兩條上面(first_iformat跟first_oformat)
這裡我一樣使用預設的設定
沒有留言:
張貼留言