欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

FFmpegAVFMT_NOFILE宏定義剖析

使用說明
    當(dāng)前為了避免在調(diào)用init_input函數(shù)的時候,讀取緩存區(qū)的數(shù)據(jù),從而設(shè)置了該標(biāo)志位,但是最終在avformat_open_input的其他地方還是讀取了緩沖區(qū)的數(shù)據(jù)

公司主營業(yè)務(wù):做網(wǎng)站、網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出黃浦免費做網(wǎng)站回饋大家。

        pAVInputFormat = av_find_input_format("h364");
        pAVInputFormat->flags |= AVFMT_NOFILE;

宏定義
/// Demuxer will use avio_open, no opened file should be provided by the caller.
//解復(fù)用器將調(diào)用avio_open函數(shù),調(diào)用者提供一個沒有打開的文件,估計是打開的文件會被占用
#define AVFMT_NOFILE        0x0001
#define AVFMT_NEEDNUMBER    0x0002 /**< Needs '%d' in filename. */
#define AVFMT_SHOW_IDS      0x0008 /**< Show format stream IDs numbers. */


AVFMT_NOFILE formats will not have a AVIOContext
當(dāng)設(shè)置了AVFMT_NOFILE標(biāo)志,將不會攜帶AVIOContext


/* Open input file and probe the format if necessary. */
static int init_input(AVFormatContext *s, const char *filename,
                      AVDictionary **options)
{
    int ret;
    AVProbeData pd = { filename, NULL, 0 };
    int score = AVPROBE_SCORE_RETRY;

    //這里探測碼流的方式,企圖通過AVIOContext結(jié)構(gòu)體中的read_packet函數(shù)
    //如果碼流格式已經(jīng)指定并且指定了標(biāo)志位,直接返回
    if (s->pb) {
        s->flags |= AVFMT_FLAG_CUSTOM_IO;
    //如果沒有指定輸入格式,開始探測碼流格式
        if (!s->iformat)
            return av_probe_input_buffer2(s->pb, &s->iformat, filename,
                                         s, 0, s->format_probesize);
        else if (s->iformat->flags & AVFMT_NOFILE)
            av_log(s, AV_LOG_WARNING, "Custom AVIOContext makes no sense and "
                                      "will be ignored with AVFMT_NOFILE format.\n");
        return 0;
    }
   //這里探測碼流的方式,企圖通過通過進(jìn)來的文件名稱
   //如果碼流格式已經(jīng)指定并且指定了標(biāo)志位,直接返回
   //這里非常明顯網(wǎng)絡(luò)RTSP流,肯定是不會走到這里
    if ((s->iformat && s->iformat->flags & AVFMT_NOFILE) ||
        (!s->iformat && (s->iformat = av_probe_input_format2(&pd, 0, &score))))
        return score;

    //如果指定了iformat結(jié)構(gòu)體,并且沒有設(shè)置標(biāo)志位,肯定執(zhí)行下面的語句,該語句會調(diào)用read_packet函數(shù)
    //進(jìn)行分析碼流
    if ((ret = s->io_open(s, &s->pb, filename, AVIO_FLAG_READ | s->avio_flags, options)) < 0)
        return ret;

    if (s->iformat)
        return 0;
    return av_probe_input_buffer2(s->pb, &s->iformat, filename,
                                 s, 0, s->format_probesize);
}


從下面的說明可以得知,當(dāng)添加了AVFMT_NOFILE標(biāo)志位,AVIOContext *pb會設(shè)置為空
    /**
     * I/O context.
     *
     * - demuxing: either set by the user before avformat_open_input() (then
     *             the user must close it manually) or set by avformat_open_input().
     * - muxing: set by the user before avformat_write_header(). The caller must
     *           take care of closing / freeing the IO context.
     *
     * Do NOT set this field if AVFMT_NOFILE flag is set in
     * iformat/oformat.flags. In such a case, the (de)muxer will handle
     * I/O in some other way and this field will be NULL.
     */
    AVIOContext *pb;

    /**
     * Custom interrupt callbacks for the I/O layer.
     *
     * demuxing: set by the user before avformat_open_input().
     * muxing: set by the user before avformat_write_header()
     * (mainly useful for AVFMT_NOFILE formats). The callback
     * should also be passed to avio_open2() if it's used to
     * open the file.
     */
    AVIOInterruptCB interrupt_callback;

/**
 * Guess the file format.
 *
 * @param pd        data to be probed
 * @param is_opened Whether the file is already opened; determines whether
 *                  demuxers with or without AVFMT_NOFILE are probed.
 */
AVInputFormat *av_probe_input_format(AVProbeData *pd, int is_opened);
AVInputFormat *av_probe_input_format2(AVProbeData *pd, int is_opened, int *score_max);
AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened, int *score_ret);

當(dāng)前名稱:FFmpegAVFMT_NOFILE宏定義剖析
本文鏈接:http://aaarwkj.com/article12/pegjgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、ChatGPT、搜索引擎優(yōu)化靜態(tài)網(wǎng)站、商城網(wǎng)站全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
久久亚洲天堂色图不卡| 国产精品亚洲av三区国产毛片| 精品视频美女肉体亚洲| 日韩精品高清视频在线观看| 一区二区蜜桃在线观看| 国内精品亚洲成av人片麻豆| 国产一区二区精品久久岳√| 九九视频精品免费高清视频| 不用播放器的av蜜臀| 啪啪视频日韩一区二区| 老湿机午夜十分钟视频| 日本九州不卡久久精品一区| 国内不卡一区二区三区| 亚洲欧美成人免费视频| 亚洲日日夜夜噜噜爽爽| 午夜精品久久福利视频| 日韩精品在线观看不卡| 精品福利视频一区二区| 自拍偷拍亚洲精品第一页| 国产成人久久精品二区三区| 精品一区二区三区高清| 国产人妖cd蜜雅丝袜美女| 日本熟人妻中文字幕在线| 午夜亚洲大片在线观看| 亚洲精品女同专区视频| 午夜啪视频免费在线观看| 精品少妇一区二区三区| 婷婷中文字幕在线不卡视频| 最新国产毛片久热精品视频| 日本黄色大波少妇网站| 老色鬼久久亚洲av综合| 国产亚洲高清国产拍精品| 青青草青娱乐免费在线视频| 国产亚洲欧美另类网爆| 成人午夜在线免费观看| 一区二区三区欧美小黄片| 精品欧美熟妇高潮喷水特黄 | 一区二区三区午夜激情| 欧美日韩另类综合一区| 日本高清不卡中文字幕| 97福利影院在线观看|