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

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

路漫漫,長修遠(yuǎn),我們不能沒有錢
隨筆 - 173, 文章 - 0, 評論 - 257, 引用 - 0
數(shù)據(jù)加載中……

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 時才執(zhí)行 ff_probe_input_buffer 函數(shù), 因為 fmt 就等于NULL, 成立.


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


關(guān)鍵的代碼片斷:
/* 讀待探測的數(shù)據(jù) */
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函數(shù), 有兩處比較關(guān)鍵:
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函數(shù), 有一處比較關(guān)鍵:
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);


進(jìn)入av_probe_input_format2函數(shù):
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設(shè)置AVFMT_NOFILE標(biāo)志才時成立 */

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

        /* 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函數(shù):
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++跨平臺開發(fā)

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美激情综合色综合啪啪| 免费成人毛片| 欧美中文字幕久久| 欧美日韩在线免费| 亚洲美女黄网| 欧美国产日本在线| 欧美在线观看视频| 国产亚洲观看| 久久精品国产第一区二区三区最新章节 | 国产无一区二区| 午夜精品久久一牛影视| 亚洲无线视频| 国产精品日本精品| 欧美中文字幕精品| 欧美一区二区精品久久911| 国产精品尤物| 久久久视频精品| 久久精品综合| 亚洲区国产区| 亚洲理伦电影| 国产精品久久久久影院亚瑟| 亚洲欧美区自拍先锋| 亚洲欧美日韩综合aⅴ视频| 国产欧美视频一区二区| 久久亚洲不卡| 久久综合色8888| 亚洲三级国产| 一区二区久久久久| 国产欧美日韩视频| 免费观看国产成人| 欧美日韩精品一区二区| 午夜国产精品影院在线观看| 欧美亚洲免费高清在线观看| 在线观看欧美亚洲| 99热在这里有精品免费| 国产日韩欧美制服另类| 久久久天天操| 欧美精品久久99久久在免费线| 亚洲视频精选| 久久精品三级| 亚洲欧美电影在线观看| 在线播放亚洲一区| 亚洲特级毛片| 性欧美videos另类喷潮| 亚洲国产精品久久久久秋霞蜜臀| 亚洲破处大片| 国产精品久久久久一区| 欧美不卡在线视频| 欧美天天综合网| 理论片一区二区在线| 欧美日韩免费观看一区=区三区| 亚洲专区欧美专区| 欧美1级日本1级| 欧美一区=区| 欧美国产精品中文字幕| 久久久久国产成人精品亚洲午夜| 欧美激情亚洲| 老鸭窝亚洲一区二区三区| 国产精品老牛| 亚洲另类视频| 亚洲人成网站在线播| 久久国产婷婷国产香蕉| 欧美亚洲一级片| 欧美三级电影大全| 亚洲大黄网站| 一区二区自拍| 欧美一级黄色网| 亚洲一区视频在线| 欧美另类99xxxxx| 欧美黄色日本| 在线看欧美日韩| 欧美在线综合| 久久电影一区| 国产无遮挡一区二区三区毛片日本| aa级大片欧美| 日韩一区二区久久| 开心色5月久久精品| 久久精品视频在线免费观看| 国产精品高潮呻吟久久av黑人| 欧美jizz19hd性欧美| 国语精品一区| 性高湖久久久久久久久| 香蕉国产精品偷在线观看不卡| 欧美人体xx| 亚洲毛片播放| 一区二区三区精品视频| 欧美精品一区二区三区四区| 亚洲国产日韩欧美| 亚洲美女av在线播放| 欧美精品一区二| 亚洲人成网站精品片在线观看| 亚洲国产经典视频| 男女av一区三区二区色多| 欧美电影免费| 99亚洲精品| 欧美午夜精品久久久久久久| 中文在线不卡视频| 欧美在线网站| 激情自拍一区| 蜜臀va亚洲va欧美va天堂| 欧美激情精品久久久六区热门| 亚洲国产专区校园欧美| 欧美1区2区3区| 一区二区精品国产| 久久精品视频亚洲| 亚洲国产精品第一区二区三区| 蜜臀av一级做a爰片久久| 最新国产成人在线观看| 一区二区三区视频观看| 欧美专区福利在线| 日韩一区二区久久| 欧美午夜无遮挡| 亚洲欧美日韩在线播放| 久久综合给合久久狠狠色 | 亚洲电影专区| 欧美精品激情在线| 亚洲欧美久久久| 久久一区亚洲| 野花国产精品入口| 国产美女精品人人做人人爽| 欧美一级片一区| 欧美激情区在线播放| 在线视频一区二区| 国产亚洲免费的视频看| 欧美成人精品在线视频| 在线亚洲一区| 噜噜噜91成人网| 亚洲视频免费| 狠狠色狠狠色综合| 欧美日韩中文字幕| 久久久久88色偷偷免费| 一本到12不卡视频在线dvd| 久久久久天天天天| 亚洲网站在线| 亚洲激情偷拍| 国产一区二区三区高清播放| 欧美激情第1页| 欧美在线视频一区二区三区| 亚洲欧洲综合| 久久视频这里只有精品| 在线中文字幕日韩| 在线精品一区| 国产婷婷色综合av蜜臀av| 欧美日韩一区不卡| 老司机亚洲精品| 欧美一区午夜精品| 制服诱惑一区二区| 亚洲精品韩国| 免费在线看成人av| 久久精精品视频| 亚洲免费一在线| 999亚洲国产精| 亚洲黑丝在线| 在线观看日韩av先锋影音电影院| 国产精品视频99| 欧美日韩在线三区| 欧美精品日韩综合在线| 美腿丝袜亚洲色图| 久久精品天堂| 欧美在线观看一区二区| 亚洲一区二区三区色| 日韩网站在线看片你懂的| 亚洲电影av在线| 欧美国产视频在线| 欧美va亚洲va日韩∨a综合色| 小辣椒精品导航| 亚洲制服丝袜在线| 亚洲欧美国内爽妇网| 亚洲一二区在线| 亚洲素人一区二区| 亚洲综合好骚| 欧美亚洲免费电影| 午夜精品网站| 欧美一区二区免费视频| 性欧美xxxx视频在线观看| 中文精品在线| 亚洲欧美日韩国产成人精品影院| 亚洲欧美日韩一区二区三区在线| 亚洲图中文字幕| 亚洲一区日韩在线| 午夜精品999| 久久黄色影院| 狼狼综合久久久久综合网| 免费美女久久99| 欧美国产日韩在线| 99在线精品观看| 亚洲全部视频| 在线午夜精品| 午夜视频在线观看一区| 欧美在线高清视频| 久久漫画官网| 欧美国产精品人人做人人爱| 欧美国产三区| 一区二区冒白浆视频| 性久久久久久久久| 欧美成人午夜视频| 国产精品扒开腿爽爽爽视频 | 性做久久久久久久免费看| 欧美一区二区性| 你懂的网址国产 欧美|