亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mov.c.svn-base

?? ffmpeg最新源碼
?? SVN-BASE
?? 第 1 頁 / 共 5 頁
字號(hào):
static int mov_read_esds(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom){    AVStream *st = c->fc->streams[c->fc->nb_streams-1];    int tag, len;    get_be32(pb); /* version + flags */    len = mp4_read_descr(c, pb, &tag);    if (tag == MP4ESDescrTag) {        get_be16(pb); /* ID */        get_byte(pb); /* priority */    } else        get_be16(pb); /* ID */    len = mp4_read_descr(c, pb, &tag);    if (tag == MP4DecConfigDescrTag) {        int object_type_id = get_byte(pb);        get_byte(pb); /* stream type */        get_be24(pb); /* buffer size db */        get_be32(pb); /* max bitrate */        get_be32(pb); /* avg bitrate */        st->codec->codec_id= codec_get_id(ff_mp4_obj_type, object_type_id);        dprintf(c->fc, "esds object type id %d\n", object_type_id);        len = mp4_read_descr(c, pb, &tag);        if (tag == MP4DecSpecificDescrTag) {            dprintf(c->fc, "Specific MPEG4 header len=%d\n", len);            if((uint64_t)len > (1<<30))                return -1;            st->codec->extradata = av_mallocz(len + FF_INPUT_BUFFER_PADDING_SIZE);            if (!st->codec->extradata)                return AVERROR(ENOMEM);            get_buffer(pb, st->codec->extradata, len);            st->codec->extradata_size = len;            if (st->codec->codec_id == CODEC_ID_AAC) {                MPEG4AudioConfig cfg;                ff_mpeg4audio_get_config(&cfg, st->codec->extradata,                                         st->codec->extradata_size);                if (cfg.chan_config > 7)                    return -1;                st->codec->channels = ff_mpeg4audio_channels[cfg.chan_config];                if (cfg.object_type == 29 && cfg.sampling_index < 3) // old mp3on4                    st->codec->sample_rate = ff_mpa_freq_tab[cfg.sampling_index];                else                    st->codec->sample_rate = cfg.sample_rate; // ext sample rate ?                dprintf(c->fc, "mp4a config channels %d obj %d ext obj %d "                        "sample rate %d ext sample rate %d\n", st->codec->channels,                        cfg.object_type, cfg.ext_object_type,                        cfg.sample_rate, cfg.ext_sample_rate);                if (!(st->codec->codec_id = codec_get_id(mp4_audio_types,                                                         cfg.object_type)))                    st->codec->codec_id = CODEC_ID_AAC;            }        }    }    return 0;}/* this atom contains actual media data */static int mov_read_mdat(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom){    if(atom.size == 0) /* wrong one (MP4) */        return 0;    c->found_mdat=1;    return 0; /* now go for moov */}static int mov_read_ftyp(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom){    uint32_t type = get_le32(pb);    if (type != MKTAG('q','t',' ',' '))        c->isom = 1;    av_log(c->fc, AV_LOG_DEBUG, "ISO: File Type Major Brand: %.4s\n",(char *)&type);    get_be32(pb); /* minor version */    url_fskip(pb, atom.size - 8);    return 0;}/* this atom should contain all header atoms */static int mov_read_moov(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom){    if (mov_read_default(c, pb, atom) < 0)        return -1;    /* we parsed the 'moov' atom, we can terminate the parsing as soon as we find the 'mdat' */    /* so we don't parse the whole file if over a network */    c->found_moov=1;    return 0; /* now go for mdat */}static int mov_read_moof(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom){    c->fragment.moof_offset = url_ftell(pb) - 8;    dprintf(c->fc, "moof offset %llx\n", c->fragment.moof_offset);    return mov_read_default(c, pb, atom);}static int mov_read_mdhd(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom){    AVStream *st = c->fc->streams[c->fc->nb_streams-1];    MOVStreamContext *sc = st->priv_data;    int version = get_byte(pb);    int lang;    if (version > 1)        return -1; /* unsupported */    get_be24(pb); /* flags */    if (version == 1) {        get_be64(pb);        get_be64(pb);    } else {        get_be32(pb); /* creation time */        get_be32(pb); /* modification time */    }    sc->time_scale = get_be32(pb);    st->duration = (version == 1) ? get_be64(pb) : get_be32(pb); /* duration */    lang = get_be16(pb); /* language */    ff_mov_lang_to_iso639(lang, st->language);    get_be16(pb); /* quality */    return 0;}static int mov_read_mvhd(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom){    int version = get_byte(pb); /* version */    get_be24(pb); /* flags */    if (version == 1) {        get_be64(pb);        get_be64(pb);    } else {        get_be32(pb); /* creation time */        get_be32(pb); /* modification time */    }    c->time_scale = get_be32(pb); /* time scale */    dprintf(c->fc, "time scale = %i\n", c->time_scale);    c->duration = (version == 1) ? get_be64(pb) : get_be32(pb); /* duration */    get_be32(pb); /* preferred scale */    get_be16(pb); /* preferred volume */    url_fskip(pb, 10); /* reserved */    url_fskip(pb, 36); /* display matrix */    get_be32(pb); /* preview time */    get_be32(pb); /* preview duration */    get_be32(pb); /* poster time */    get_be32(pb); /* selection time */    get_be32(pb); /* selection duration */    get_be32(pb); /* current time */    get_be32(pb); /* next track ID */    return 0;}static int mov_read_smi(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom){    AVStream *st = c->fc->streams[c->fc->nb_streams-1];    if((uint64_t)atom.size > (1<<30))        return -1;    // currently SVQ3 decoder expect full STSD header - so let's fake it    // this should be fixed and just SMI header should be passed    av_free(st->codec->extradata);    st->codec->extradata = av_mallocz(atom.size + 0x5a + FF_INPUT_BUFFER_PADDING_SIZE);    if (!st->codec->extradata)        return AVERROR(ENOMEM);    st->codec->extradata_size = 0x5a + atom.size;    memcpy(st->codec->extradata, "SVQ3", 4); // fake    get_buffer(pb, st->codec->extradata + 0x5a, atom.size);    dprintf(c->fc, "Reading SMI %"PRId64"  %s\n", atom.size, st->codec->extradata + 0x5a);    return 0;}static int mov_read_enda(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom){    AVStream *st = c->fc->streams[c->fc->nb_streams-1];    int little_endian = get_be16(pb);    if (little_endian) {        switch (st->codec->codec_id) {        case CODEC_ID_PCM_S24BE:            st->codec->codec_id = CODEC_ID_PCM_S24LE;            break;        case CODEC_ID_PCM_S32BE:            st->codec->codec_id = CODEC_ID_PCM_S32LE;            break;        default:            break;        }    }    return 0;}/* FIXME modify qdm2/svq3/h264 decoders to take full atom as extradata */static int mov_read_extradata(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom){    AVStream *st = c->fc->streams[c->fc->nb_streams-1];    uint64_t size= (uint64_t)st->codec->extradata_size + atom.size + 8 + FF_INPUT_BUFFER_PADDING_SIZE;    uint8_t *buf;    if(size > INT_MAX || (uint64_t)atom.size > INT_MAX)        return -1;    buf= av_realloc(st->codec->extradata, size);    if(!buf)        return -1;    st->codec->extradata= buf;    buf+= st->codec->extradata_size;    st->codec->extradata_size= size - FF_INPUT_BUFFER_PADDING_SIZE;    AV_WB32(       buf    , atom.size + 8);    AV_WL32(       buf + 4, atom.type);    get_buffer(pb, buf + 8, atom.size);    return 0;}static int mov_read_wave(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom){    AVStream *st = c->fc->streams[c->fc->nb_streams-1];    if((uint64_t)atom.size > (1<<30))        return -1;    if (st->codec->codec_id == CODEC_ID_QDM2) {        // pass all frma atom to codec, needed at least for QDM2        av_free(st->codec->extradata);        st->codec->extradata = av_mallocz(atom.size + FF_INPUT_BUFFER_PADDING_SIZE);        if (!st->codec->extradata)            return AVERROR(ENOMEM);        st->codec->extradata_size = atom.size;        get_buffer(pb, st->codec->extradata, atom.size);    } else if (atom.size > 8) { /* to read frma, esds atoms */        if (mov_read_default(c, pb, atom) < 0)            return -1;    } else        url_fskip(pb, atom.size);    return 0;}/** * This function reads atom content and puts data in extradata without tag * nor size unlike mov_read_extradata. */static int mov_read_glbl(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom){    AVStream *st = c->fc->streams[c->fc->nb_streams-1];    if((uint64_t)atom.size > (1<<30))        return -1;    av_free(st->codec->extradata);    st->codec->extradata = av_mallocz(atom.size + FF_INPUT_BUFFER_PADDING_SIZE);    if (!st->codec->extradata)        return AVERROR(ENOMEM);    st->codec->extradata_size = atom.size;    get_buffer(pb, st->codec->extradata, atom.size);    return 0;}static int mov_read_stco(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom){    AVStream *st = c->fc->streams[c->fc->nb_streams-1];    MOVStreamContext *sc = st->priv_data;    unsigned int i, entries;    get_byte(pb); /* version */    get_be24(pb); /* flags */    entries = get_be32(pb);    if(entries >= UINT_MAX/sizeof(int64_t))        return -1;    sc->chunk_count = entries;    sc->chunk_offsets = av_malloc(entries * sizeof(int64_t));    if (!sc->chunk_offsets)        return -1;    if      (atom.type == MKTAG('s','t','c','o'))        for(i=0; i<entries; i++)            sc->chunk_offsets[i] = get_be32(pb);    else if (atom.type == MKTAG('c','o','6','4'))        for(i=0; i<entries; i++)            sc->chunk_offsets[i] = get_be64(pb);    else        return -1;    return 0;}static int mov_read_stsd(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom){    AVStream *st = c->fc->streams[c->fc->nb_streams-1];    MOVStreamContext *sc = st->priv_data;    int j, entries, pseudo_stream_id;    get_byte(pb); /* version */    get_be24(pb); /* flags */    entries = get_be32(pb);    for(pseudo_stream_id=0; pseudo_stream_id<entries; pseudo_stream_id++) {        //Parsing Sample description table        enum CodecID id;        int dref_id;        MOV_atom_t a = { 0, 0, 0 };        offset_t start_pos = url_ftell(pb);        int size = get_be32(pb); /* size */        uint32_t format = get_le32(pb); /* data format */        get_be32(pb); /* reserved */        get_be16(pb); /* reserved */        dref_id = get_be16(pb);        if (st->codec->codec_tag &&            st->codec->codec_tag != format &&            (c->fc->video_codec_id ? codec_get_id(codec_movvideo_tags, format) != c->fc->video_codec_id                                   : st->codec->codec_tag != MKTAG('j','p','e','g'))           ){            /* Multiple fourcc, we skip JPEG. This is not correct, we should             * export it as a separate AVStream but this needs a few changes             * in the MOV demuxer, patch welcome. */            av_log(c->fc, AV_LOG_WARNING, "multiple fourcc not supported\n");            url_fskip(pb, size - (url_ftell(pb) - start_pos));            continue;        }        sc->pseudo_stream_id = st->codec->codec_tag ? -1 : pseudo_stream_id;        sc->dref_id= dref_id;        st->codec->codec_tag = format;        id = codec_get_id(codec_movaudio_tags, format);        if (id<=0 && (format&0xFFFF) == 'm'+('s'<<8))            id = codec_get_id(codec_wav_tags, bswap_32(format)&0xFFFF);        if (st->codec->codec_type != CODEC_TYPE_VIDEO && id > 0) {            st->codec->codec_type = CODEC_TYPE_AUDIO;        } else if (st->codec->codec_type != CODEC_TYPE_AUDIO && /* do not overwrite codec type */                   format && format != MKTAG('m','p','4','s')) { /* skip old asf mpeg4 tag */            id = codec_get_id(codec_movvideo_tags, format);            if (id <= 0)                id = codec_get_id(codec_bmp_tags, format);            if (id > 0)                st->codec->codec_type = CODEC_TYPE_VIDEO;            else if(st->codec->codec_type == CODEC_TYPE_DATA){                id = codec_get_id(ff_codec_movsubtitle_tags, format);                if(id > 0)                    st->codec->codec_type = CODEC_TYPE_SUBTITLE;            }        }        dprintf(c->fc, "size=%d 4CC= %c%c%c%c codec_type=%d\n", size,                (format >> 0) & 0xff, (format >> 8) & 0xff, (format >> 16) & 0xff,                (format >> 24) & 0xff, st->codec->codec_type);        if(st->codec->codec_type==CODEC_TYPE_VIDEO) {            uint8_t codec_name[32];            unsigned int color_depth;            int color_greyscale;            st->codec->codec_id = id;            get_be16(pb); /* version */            get_be16(pb); /* revision level */            get_be32(pb); /* vendor */            get_be32(pb); /* temporal quality */            get_be32(pb); /* spatial quality */            st->codec->width = get_be16(pb); /* width */            st->codec->height = get_be16(pb); /* height */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品天天看| 91黄色免费网站| 亚洲色图清纯唯美| 欧美精品成人一区二区三区四区| 香蕉久久夜色精品国产使用方法| 日韩视频中午一区| 高清久久久久久| 亚洲综合999| 在线一区二区三区做爰视频网站| av一二三不卡影片| 亚洲国产一区二区a毛片| 欧美成人女星排名| 色综合一区二区| 久久99久久99| 亚洲在线观看免费| 国产亚洲一区二区三区四区| 91麻豆精品秘密| 久久99国产精品尤物| 亚洲欧美一区二区三区久本道91| 欧美一级欧美三级在线观看 | 日韩欧美一二三区| 在线观看日产精品| 99国产欧美另类久久久精品| 激情欧美一区二区三区在线观看| 亚洲精选一二三| 欧美一区二区福利视频| 在线区一区二视频| 成人av在线影院| 国产传媒日韩欧美成人| 国产揄拍国内精品对白| 久久不见久久见免费视频7| 亚洲一区在线观看视频| 亚洲免费资源在线播放| 亚洲色图视频免费播放| 亚洲欧洲精品成人久久奇米网| 欧美国产精品久久| 成人免费在线视频观看| 中文字幕av资源一区| 国产欧美va欧美不卡在线| 欧美另类一区二区三区| 欧美一区二区三区成人| 欧美一级夜夜爽| 色久优优欧美色久优优| 国产69精品一区二区亚洲孕妇| 日韩成人精品视频| 激情综合五月天| 高清在线观看日韩| 99re8在线精品视频免费播放| 色天天综合久久久久综合片| 欧美精品99久久久**| 欧美日韩一区精品| 欧美一区二区观看视频| 亚洲精品一区二区三区福利| 精品少妇一区二区| 亚洲免费av高清| 理论电影国产精品| 色综合咪咪久久| 日韩一区二区三区观看| 国产丝袜美腿一区二区三区| 亚洲欧洲制服丝袜| 韩国精品主播一区二区在线观看| 成人爱爱电影网址| 欧美性受xxxx| 久久奇米777| 亚洲va欧美va国产va天堂影院| 国产一区欧美日韩| 777午夜精品视频在线播放| 国产精品看片你懂得| 男人的天堂久久精品| 国产福利91精品一区二区三区| 欧美精品在线观看一区二区| 欧美大片一区二区| 免费在线看一区| 在线视频一区二区三| 国产精品久久久久久久久久免费看| 亚洲午夜久久久久久久久电影院 | 日韩欧美国产电影| 免费观看在线色综合| 欧美成人精品福利| 国产在线一区观看| 久久综合色之久久综合| 国产一区二三区| 欧美韩国日本一区| 在线观看日韩精品| 亚洲成人午夜影院| 精品欧美一区二区久久| 国产精品一区二区x88av| 国产精品久久久久影院色老大 | 亚洲欧美韩国综合色| 欧美日韩在线精品一区二区三区激情| 一区二区日韩电影| 欧美午夜视频网站| 国产专区欧美精品| 亚洲欧美一区二区三区久本道91| 欧美日韩大陆一区二区| 日本美女一区二区三区视频| 中文字幕精品一区| 在线免费观看日本欧美| 奇米777欧美一区二区| 国产精品天美传媒沈樵| 欧美日韩在线观看一区二区| 国产精品一区二区黑丝| 亚洲综合一区二区三区| 精品国产网站在线观看| 日本韩国视频一区二区| 九一九一国产精品| 亚洲精品视频在线观看网站| 欧美精品一区二区三区在线播放 | 国产乱子伦视频一区二区三区 | 国产91色综合久久免费分享| 亚洲成av人**亚洲成av**| 国产精品久久久久久久久搜平片 | 亚洲图片欧美色图| 欧美国产激情二区三区| 欧美一级黄色大片| 日本高清视频一区二区| 99精品视频在线观看| 狠狠色丁香久久婷婷综合_中| 午夜伊人狠狠久久| 亚洲欧美另类久久久精品2019| 亚洲精品一区二区三区四区高清 | 国产欧美日韩综合精品一区二区| 精品噜噜噜噜久久久久久久久试看| 日韩美一区二区三区| 免费观看91视频大全| 亚洲午夜国产一区99re久久| 亚洲区小说区图片区qvod| 国产精品乱人伦中文| 中文字幕视频一区二区三区久| 精品国内二区三区| 欧美精品一区二区在线观看| 久久人人超碰精品| 国产女主播一区| 亚洲欧美日韩在线| 日韩精品亚洲一区二区三区免费| 亚洲地区一二三色| 麻豆一区二区三| 成人激情午夜影院| 色综合中文综合网| 久久久99免费| 国产精品成人在线观看| 中文字幕一区二区不卡| 亚洲欧美一区二区三区极速播放| 亚洲欧洲综合另类| 久久66热re国产| 色婷婷激情综合| 欧美一区二区三区白人| 久久噜噜亚洲综合| 亚洲一区二区影院| 美女脱光内衣内裤视频久久网站| 日韩精品一二区| 国产盗摄视频一区二区三区| 欧美日韩国产bt| 中文字幕精品综合| 人人狠狠综合久久亚洲| 精品久久久久av影院| 亚洲精品一二三四区| 国产一区二区导航在线播放| 91在线云播放| 欧美日韩免费高清一区色橹橹 | 日本电影欧美片| 久久久久国产成人精品亚洲午夜 | 日本不卡视频在线观看| 丁香婷婷综合网| 国产亚洲成年网址在线观看| 青青国产91久久久久久| 色婷婷精品久久二区二区蜜臂av | 91九色02白丝porn| 亚洲精品乱码久久久久久黑人| 大白屁股一区二区视频| 在线播放一区二区三区| 亚洲宅男天堂在线观看无病毒| 91视频www| 亚洲欧洲精品天堂一级| 成人午夜电影久久影院| 中文字幕欧美激情| 99久久综合国产精品| 国产精品视频免费| 一本大道久久精品懂色aⅴ| 亚洲人成网站在线| 色综合天天综合狠狠| 成人免费在线播放视频| 91老师片黄在线观看| 亚洲同性gay激情无套| voyeur盗摄精品| 亚洲一线二线三线视频| 欧美一级二级三级蜜桃| 精品一区二区三区久久| 亚洲欧洲精品天堂一级| 欧美日韩国产一级片| 五月激情综合网| 久久久亚洲精品一区二区三区| 成人夜色视频网站在线观看| 国产精品午夜久久| 91尤物视频在线观看| 肉肉av福利一精品导航| 久久综合给合久久狠狠狠97色69| 国产麻豆成人精品| 亚洲精品五月天| 欧美国产禁国产网站cc|