2011年10月27日 星期四

ffmpge資料收集整理

[等待確認] 
與硬體相關的Code可能存放在 libavutil ; libavcodec


[已確認]
libavutil/bswap.h處理跟CPU相關的硬體問題 - endian
從代碼可看到

#include "config.h"
#if   ARCH_ARM
#   include "arm/bswap.h"
#elif ARCH_AVR32
#   include "avr32/bswap.h"
#elif ARCH_BFIN
#   include "bfin/bswap.h"
#elif ARCH_SH4
#   include "sh4/bswap.h"
#elif ARCH_X86
#   include "x86/bswap.h"
#endif


[已確認]
/doc/optimization.txt內描述了 最佳化相關的事項optimization Tips

[藍色部分待確認]
  • ffmpeg 是一個命令列工具,用來對視訊檔案轉換格式,也支援對電視卡即時編碼//ffmpeg.c
  • ffserver 是一個 HTTP 多媒體即時廣播串流伺服器,支援時光平移 //ffserver.c 
  • ffplay 是一個簡單的播放器,基於 SDL 與 FFmpeg 函式庫//ffplay.c 
  • libavcodec 包含了全部 FFmpeg 音訊/視訊 編解碼函式庫//對應同名稱資料夾
  • libavformat 包含 demuxers 和 muxer 函式庫//對應同名稱資料夾
  • libavutil 包含一些工具函式庫//對應同名稱資料夾
  • libpostproc 對於視訊做前處理的函式庫//對應同名稱資料夾
  • libswscale 對於影像作縮放的函式庫 //對應同名稱資料夾

2011年10月11日 星期二

C 語言 以及 Section的關係

const unsigned int var1[3] = {0x0000, 0x0001, 0x0002}; ------->.rodata
int x; //全域變數 + 未初始化 -------------------> .bss section
int y_1 = 100; //全域變數 + 初始化  ------------> .data section
int y_2 = 0;//全域變數 + 初始化為0  -----------> .bss section
static int s_x = 100; //靜態全域變數 + 初始化-->.data section ?
static int s_y; //靜態全域變數 + 未初始化------>.bss section ?

int xxx(void) //Function --------------------> .text section
{
  .....
  int a = 1;----------------------------------> .text section
  int b;--------------------------------------> .text section
  static int z = 200;//靜態區域變數 + 初始化-->.data section
  static int w;//靜態區域變數 + 未初始化-----> .bss section
}