青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Khan's Notebook GCC/GNU/Linux Delphi/Window Java/Anywhere

路漫漫,長修遠,我們不能沒有錢
隨筆 - 173, 文章 - 0, 評論 - 257, 引用 - 0
數據加載中……

ffmpeg分析系列之六(再次探測輸入的格式)

void *logctx= ap && ap->prealloced_context ? *ic_ptr : NULL; // 因為 ap == NULL, 所以 logctx 也 == NULL.
if (!fmt && (err = ff_probe_input_buffer(&pb, &fmt, filename, logctx, 0, logctx ? (*ic_ptr)->probesize : 0)) < 0) {
  goto fail;
}
// fmt == NULL 時才執行 ff_probe_input_buffer 函數, 因為 fmt 就等于NULL, 成立.


ff_probe_input_buffer函數的原型:
int ff_probe_input_buffer(ByteIOContext **pb, // 字節IO上下文, 執行url_fopen得到的
    AVInputFormat **fmt, // 輸出參數: 輸入的格式
    const char *filename, // 文件名
    void *logctx, // NULL
    unsigned int offset, // 0
    unsigned int max_probe_size) // 0


關鍵的代碼片斷:
/* 讀待探測的數據 */
buf = av_realloc(buf, probe_size + AVPROBE_PADDING_SIZE);
if ((ret = get_buffer(*pb, buf + buf_offset, probe_size - buf_offset)) < 0) {
  /* fail if error was not end of file, otherwise, lower score */
  if (ret != AVERROR_EOF) {
    av_free(buf);
    return ret;
  }
  score = 0;
  ret = 0; /* error was end of file, nothing read */
}
pd.buf_size += ret;
pd.buf = &buf[offset];

memset(pd.buf + pd.buf_size, 0, AVPROBE_PADDING_SIZE);

/* 猜測文件格式 */
*fmt = av_probe_input_format2(&pd, 1, &score);

get_buffer函數, 有兩處比較關鍵:
int get_buffer(ByteIOContext *s, unsigned char *buf, int size);
{

  /* 省略部分代碼 */ /* 讀包 */
  if(s->read_packet)
    len = s->read_packet(s->opaque, buf, size);


  /* 省略部分代碼 */

  /* 填充緩沖 */

  fill_buffer(s);

  /* 省略部分代碼 */

}





fill_buffer函數, 有一處比較關鍵:
static void fill_buffer(ByteIOContext *s)
{ /* 省略部分代碼 */ /* 讀包 */
  if(s->read_packet)
    len = s->read_packet(s->opaque, dst, len);

/* 省略部分代碼 */
}





好了, 到第二次探測輸入格式的地方了:
*fmt = av_probe_input_format2(&pd, 1, &score);


進入av_probe_input_format2函數:
AVInputFormat *av_probe_input_format2(AVProbeData *pd, int is_opened, int *score_max)
{
  AVInputFormat *fmt1, *fmt;
  int score;

  fmt = NULL;
  for(fmt1 = first_iformat; fmt1 != NULL; fmt1 = fmt1->next) {
    if (!is_opened == !(fmt1->flags & AVFMT_NOFILE))
      continue;

    /* 這次 is_opened == 1, fmt1->flags設置AVFMT_NOFILE標志才時成立 */

    /* 由于 h264_demuxer.flags == AVFMT_GENERIC_INDEX, 所以上面不成立, 繼續執行 */ score = 0;
    if (fmt1->read_probe) {
      score = fmt1->read_probe(pd); /* 調用h264_demuxer.h264_probe */
    } else if (fmt1->extensions) {
      if (av_match_ext(pd->filename, fmt1->extensions)) { /* 文件名和格式擴展名的匹配 */

        /* h264_demuxer.extensions = "h26l,h264,264" */ score = 50;
      }
    }
 if (score > *score_max) {
    *score_max = score;
    fmt = fmt1;
  }else if (score == *score_max)
    fmt = NULL;
  }
  return fmt;
}

av_match_ext函數:
int av_match_ext(const char *filename, const char *extensions)
{
  const char *ext, *p;
  char ext1[32], *q;

  if(!filename)
    return 0;

  ext = strrchr(filename, '.');
  if (ext) {
    ext++;
    p = extensions;
    for(;;) {
      q = ext1;
      while (*p != '' && *p != ',' && q-ext1<sizeof(ext1)-1)
        *q++ = *p++;
      *q = '';
      if (!strcasecmp(ext1, ext))
        return 1;
      if (*p == '')
        break;
      p++;
    }
  }
  return 0;
}




@import url(http://m.shnenglu.com/cutesoft_client/cuteeditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

posted on 2012-12-14 01:44 Khan 閱讀(1729) 評論(0)  編輯 收藏 引用 所屬分類: GCC/G++跨平臺開發

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美自拍偷拍| 久久精品一区二区三区四区 | 午夜久久tv| 欧美精品国产精品日韩精品| 在线观看日韩| 久久一区亚洲| 欧美在线观看视频一区二区三区| 国产精品成人一区二区三区夜夜夜| 午夜精品久久| 国产精品一区二区你懂的| 日韩视频在线一区二区三区| 欧美大片va欧美在线播放| 午夜久久久久久| 国产日韩欧美在线播放不卡| 久久久久久久综合色一本| 国内在线观看一区二区三区| 亚洲激情欧美激情| 欧美大胆a视频| 中文在线资源观看视频网站免费不卡| 欧美激情四色 | 亚洲国产另类精品专区| 久久久久国产一区二区三区| 欧美在线地址| 狠狠色丁香婷婷综合久久片| 美女黄毛**国产精品啪啪| 久久久久久久国产| 久久av在线看| 亚洲日本中文字幕区| 亚洲国产日韩精品| 欧美黄在线观看| 夜夜嗨av一区二区三区免费区| 亚洲精品国产品国语在线app| 亚洲高清资源| 久久久之久亚州精品露出| 久久精品国产99国产精品澳门| 亚洲高清不卡一区| 亚洲国产精品久久久久婷婷884| 欧美全黄视频| 久久精品99国产精品| 久久综合色综合88| 一本色道久久综合亚洲精品婷婷 | 男女视频一区二区| 一区二区三区毛片| 亚洲美女色禁图| 国产欧美 在线欧美| 在线观看国产精品网站| 亚洲精品免费在线播放| 国产午夜精品理论片a级大结局 | 国产日韩欧美中文| 麻豆免费精品视频| 欧美区高清在线| 久久都是精品| 欧美激情偷拍| 久久在线91| 欧美日韩国产欧| 久久综合色综合88| 国产精品v片在线观看不卡 | 欧美freesex8一10精品| 午夜精品久久久久久久蜜桃app| 久久亚洲二区| 国产精品人人做人人爽人人添| 久久一区欧美| 国产欧美 在线欧美| 亚洲三级视频| 亚洲第一级黄色片| 欧美高清你懂得| 亚洲一区二区三区777| 久久福利资源站| 久久久久国产精品麻豆ai换脸| 国产精品99久久99久久久二8| 久久久爽爽爽美女图片| 欧美怡红院视频一区二区三区| 欧美日韩国产色综合一二三四 | 亚洲综合色自拍一区| 久久亚洲欧美国产精品乐播| 久久国产精品第一页| 国产精品海角社区在线观看| 亚洲激情第一区| 在线观看精品视频| 老牛嫩草一区二区三区日本| 国产精品日韩一区二区| 日韩视频一区二区三区在线播放免费观看 | 99在线视频精品| 日韩视频精品在线| 欧美精品在线观看一区二区| 久久蜜桃资源一区二区老牛| 国产精品色网| 亚洲一区二区在线免费观看| 亚洲女与黑人做爰| 午夜精品久久久久久久99水蜜桃| 久久久久久9| 国产一区二区三区成人欧美日韩在线观看| 99视频日韩| 亚洲一区二区不卡免费| 欧美日韩国产综合视频在线| 亚洲精品国久久99热| 日韩亚洲一区在线播放| 欧美乱大交xxxxx| 亚洲精品一品区二品区三品区| 欧美三级在线播放| 亚洲乱码视频| 亚洲午夜精品国产| 国产精品免费网站| 欧美一区二区在线免费观看 | 亚洲无亚洲人成网站77777| 久久一区欧美| 最新国产乱人伦偷精品免费网站| 老司机午夜精品视频| 欧美搞黄网站| 一本色道**综合亚洲精品蜜桃冫| 欧美日韩国产综合视频在线观看中文| 亚洲人成人99网站| 亚洲深夜影院| 国产农村妇女毛片精品久久莱园子| 午夜久久资源| 欧美高清不卡在线| 亚洲香蕉网站| 精品999在线观看| 欧美激情精品久久久久久大尺度| 99成人精品| 久久久免费精品视频| 国内精品久久久| 最新国产成人av网站网址麻豆| 亚洲精品一区二区网址| 在线欧美日韩| 欧美日韩免费观看一区三区| 亚洲无线视频| 欧美高清视频一区二区| 一区二区三区久久精品| 欧美资源在线观看| 欧美激情bt| 性久久久久久久久久久久| 欧美福利影院| 欧美一区午夜视频在线观看| 亚洲国产欧美一区二区三区同亚洲 | 久久中文在线| 亚洲影院色无极综合| 一区二区亚洲精品国产| 欧美日韩亚洲一区二区三区在线 | 99热这里只有成人精品国产| 国产精品国产三级国产aⅴ无密码| 久久国产欧美日韩精品| 亚洲精品一区在线观看香蕉| 久久五月天婷婷| 亚洲永久精品大片| 亚洲一级特黄| 久久久久久久久久久久久久一区| 欧美午夜不卡影院在线观看完整版免费| 欧美一区1区三区3区公司| 亚洲精品视频免费观看| 久久久久成人精品免费播放动漫| 在线一区二区三区四区五区| 亚洲第一福利视频| 国产偷久久久精品专区| 国产精品久久久久高潮| 欧美日韩国产91| 久久高清国产| 午夜在线视频观看日韩17c| 亚洲开发第一视频在线播放| 久久一区二区三区av| 久久精品盗摄| 欧美一区二区高清| 亚洲男人影院| 亚洲视频一区二区免费在线观看| 久久人人爽人人爽| 午夜一区二区三区在线观看| 亚洲午夜精品视频| 亚洲一级在线| 一区二区三区精品| 一区二区电影免费观看| 在线一区二区日韩| 一区二区三区高清视频在线观看| 国产专区欧美精品| 久久这里只有精品视频首页| 久久精品国产精品亚洲综合| 欧美影院成年免费版| 午夜欧美视频| 欧美中日韩免费视频| 久久国内精品视频| 久久久久久婷| 女同性一区二区三区人了人一 | 蜜桃精品久久久久久久免费影院| 亚洲欧美日本国产专区一区| 一区二区三区日韩在线观看| 亚洲韩国精品一区| 亚洲国产精品ⅴa在线观看| 亚洲国产精品久久久久久女王| 另类人畜视频在线| 一道本一区二区| 日韩视频在线观看免费| 亚洲精品久久久久久下一站| 亚洲人久久久| 一本久久综合亚洲鲁鲁| 9l视频自拍蝌蚪9l视频成人| 一本色道综合亚洲| 欧美天堂亚洲电影院在线观看 | 亚洲国产精品一区二区三区| …久久精品99久久香蕉国产| 亚洲美女少妇无套啪啪呻吟| 亚洲一区国产|