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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? asf.c

?? Trolltech公司發布的圖形界面操作系統。可在qt-embedded-2.3.10平臺上編譯為嵌入式圖形界面操作系統。
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* * ASF compatible encoder and decoder. * Copyright (c) 2000, 2001 Fabrice Bellard. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */#include "avformat.h"#include "avi.h"#include "mpegaudio.h"#define PACKET_SIZE 3200#define PACKET_HEADER_SIZE 12#define FRAME_HEADER_SIZE 17typedef struct {    int num;    int seq;    /* use for reading */    AVPacket pkt;    int frag_offset;    int timestamp;    int64_t duration;    int ds_span;		/* descrambling  */    int ds_packet_size;    int ds_chunk_size;    int ds_data_size;    int ds_silence_data;} ASFStream;typedef struct {    uint32_t v1;    uint16_t v2;    uint16_t v3;    uint8_t v4[8];} GUID;typedef struct {    GUID guid;			// generated by client computer    uint64_t file_size;		// in bytes                                // invalid if broadcasting    uint64_t create_time;	// time of creation, in 100-nanosecond units since 1.1.1601                                // invalid if broadcasting    uint64_t packets_count;	// how many packets are there in the file                                // invalid if broadcasting    uint64_t play_time;		// play time, in 100-nanosecond units                                // invalid if broadcasting    uint64_t send_time;		// time to send file, in 100-nanosecond units                                // invalid if broadcasting (could be ignored)    uint32_t preroll;		// timestamp of the first packet, in milliseconds    				// if nonzero - substract from time    uint32_t ignore;            // preroll is 64bit - but let's just ignore it    uint32_t flags;		// 0x01 - broadcast    				// 0x02 - seekable                                // rest is reserved should be 0    uint32_t min_pktsize;	// size of a data packet                                // invalid if broadcasting    uint32_t max_pktsize;	// shall be the same as for min_pktsize                                // invalid if broadcasting    uint32_t max_bitrate;	// bandwith of stream in bps    				// should be the sum of bitrates of the                                // individual media streams} ASFMainHeader;typedef struct {    int seqno;    int packet_size;    int is_streamed;    int asfid2avid[128];        /* conversion table from asf ID 2 AVStream ID */    ASFStream streams[128];	/* it's max number and it's not that big */    /* non streamed additonnal info */    int64_t nb_packets;    int64_t duration; /* in 100ns units */    /* packet filling */    int packet_size_left;    int packet_timestamp_start;    int packet_timestamp_end;    int packet_nb_frames;    uint8_t packet_buf[PACKET_SIZE];    ByteIOContext pb;    /* only for reading */    uint64_t data_offset; /* begining of the first data packet */    ASFMainHeader hdr;    int packet_flags;    int packet_property;    int packet_timestamp;    int packet_segsizetype;    int packet_segments;    int packet_seq;    int packet_replic_size;    int packet_key_frame;    int packet_padsize;    int packet_frag_offset;    int packet_frag_size;    int packet_frag_timestamp;    int packet_multi_size;    int packet_obj_size;    int packet_time_delta;    int packet_time_start;    int stream_index;    ASFStream* asf_st; /* currently decoded stream */} ASFContext;static const GUID asf_header = {    0x75B22630, 0x668E, 0x11CF, { 0xA6, 0xD9, 0x00, 0xAA, 0x00, 0x62, 0xCE, 0x6C },};static const GUID file_header = {    0x8CABDCA1, 0xA947, 0x11CF, { 0x8E, 0xE4, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65 },};static const GUID stream_header = {    0xB7DC0791, 0xA9B7, 0x11CF, { 0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65 },};static const GUID audio_stream = {    0xF8699E40, 0x5B4D, 0x11CF, { 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B },};static const GUID audio_conceal_none = {    // 0x49f1a440, 0x4ece, 0x11d0, { 0xa3, 0xac, 0x00, 0xa0, 0xc9, 0x03, 0x48, 0xf6 },    // New value lifted from avifile    0x20fb5700, 0x5b55, 0x11cf, { 0xa8, 0xfd, 0x00, 0x80, 0x5f, 0x5c, 0x44, 0x2b },};static const GUID video_stream = {    0xBC19EFC0, 0x5B4D, 0x11CF, { 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B },};static const GUID video_conceal_none = {    0x20FB5700, 0x5B55, 0x11CF, { 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B },};static const GUID comment_header = {    0x75b22633, 0x668e, 0x11cf, { 0xa6, 0xd9, 0x00, 0xaa, 0x00, 0x62, 0xce, 0x6c },};static const GUID codec_comment_header = {    0x86D15240, 0x311D, 0x11D0, { 0xA3, 0xA4, 0x00, 0xA0, 0xC9, 0x03, 0x48, 0xF6 },};static const GUID codec_comment1_header = {    0x86d15241, 0x311d, 0x11d0, { 0xa3, 0xa4, 0x00, 0xa0, 0xc9, 0x03, 0x48, 0xf6 },};static const GUID data_header = {    0x75b22636, 0x668e, 0x11cf, { 0xa6, 0xd9, 0x00, 0xaa, 0x00, 0x62, 0xce, 0x6c },};static const GUID index_guid = {    0x33000890, 0xe5b1, 0x11cf, { 0x89, 0xf4, 0x00, 0xa0, 0xc9, 0x03, 0x49, 0xcb },};static const GUID head1_guid = {    0x5fbf03b5, 0xa92e, 0x11cf, { 0x8e, 0xe3, 0x00, 0xc0, 0x0c, 0x20, 0x53, 0x65 },};static const GUID head2_guid = {    0xabd3d211, 0xa9ba, 0x11cf, { 0x8e, 0xe6, 0x00, 0xc0, 0x0c, 0x20, 0x53, 0x65 },};/* I am not a number !!! This GUID is the one found on the PC used to   generate the stream */static const GUID my_guid = {    0, 0, 0, { 0, 0, 0, 0, 0, 0, 0, 0 },};#ifdef CONFIG_ENCODERSstatic void put_guid(ByteIOContext *s, const GUID *g){    int i;    put_le32(s, g->v1);    put_le16(s, g->v2);    put_le16(s, g->v3);    for(i=0;i<8;i++)        put_byte(s, g->v4[i]);}static void put_str16(ByteIOContext *s, const char *tag){    int c;    put_le16(s,strlen(tag) + 1);    for(;;) {        c = (uint8_t)*tag++;        put_le16(s, c);        if (c == '\0')            break;    }}static void put_str16_nolen(ByteIOContext *s, const char *tag){    int c;    for(;;) {        c = (uint8_t)*tag++;        put_le16(s, c);        if (c == '\0')            break;    }}static int64_t put_header(ByteIOContext *pb, const GUID *g){    int64_t pos;    pos = url_ftell(pb);    put_guid(pb, g);    put_le64(pb, 24);    return pos;}/* update header size */static void end_header(ByteIOContext *pb, int64_t pos){    int64_t pos1;    pos1 = url_ftell(pb);    url_fseek(pb, pos + 16, SEEK_SET);    put_le64(pb, pos1 - pos);    url_fseek(pb, pos1, SEEK_SET);}/* write an asf chunk (only used in streaming case) */static void put_chunk(AVFormatContext *s, int type, int payload_length, int flags){    ASFContext *asf = s->priv_data;    ByteIOContext *pb = &s->pb;    int length;    length = payload_length + 8;    put_le16(pb, type);    put_le16(pb, length);    put_le32(pb, asf->seqno);    put_le16(pb, flags); /* unknown bytes */    put_le16(pb, length);    asf->seqno++;}/* convert from unix to windows time */static int64_t unix_to_file_time(int ti){    int64_t t;    t = ti * int64_t_C(10000000);    t += int64_t_C(116444736000000000);    return t;}/* write the header (used two times if non streamed) */static int asf_write_header1(AVFormatContext *s, int64_t file_size, int64_t data_chunk_size){    ASFContext *asf = s->priv_data;    ByteIOContext *pb = &s->pb;    int header_size, n, extra_size, extra_size2, wav_extra_size, file_time;    int has_title;    AVCodecContext *enc;    int64_t header_offset, cur_pos, hpos;    int bit_rate;    has_title = (s->title[0] || s->author[0] || s->copyright[0] || s->comment[0]);    bit_rate = 0;    for(n=0;n<s->nb_streams;n++) {        enc = &s->streams[n]->codec;        bit_rate += enc->bit_rate;    }    if (asf->is_streamed) {        put_chunk(s, 0x4824, 0, 0xc00); /* start of stream (length will be patched later) */    }    put_guid(pb, &asf_header);    put_le64(pb, -1); /* header length, will be patched after */    put_le32(pb, 3 + has_title + s->nb_streams); /* number of chunks in header */    put_byte(pb, 1); /* ??? */    put_byte(pb, 2); /* ??? */    /* file header */    header_offset = url_ftell(pb);    hpos = put_header(pb, &file_header);    put_guid(pb, &my_guid);    put_le64(pb, file_size);    file_time = 0;    put_le64(pb, unix_to_file_time(file_time));    put_le64(pb, asf->nb_packets); /* number of packets */    put_le64(pb, asf->duration); /* end time stamp (in 100ns units) */    put_le64(pb, asf->duration); /* duration (in 100ns units) */    put_le32(pb, 0); /* start time stamp */    put_le32(pb, 0); /* ??? */    put_le32(pb, asf->is_streamed ? 1 : 0); /* ??? */    put_le32(pb, asf->packet_size); /* packet size */    put_le32(pb, asf->packet_size); /* packet size */    put_le32(pb, bit_rate); /* Nominal data rate in bps */    end_header(pb, hpos);    /* unknown headers */    hpos = put_header(pb, &head1_guid);    put_guid(pb, &head2_guid);    put_le32(pb, 6);    put_le16(pb, 0);    end_header(pb, hpos);    /* title and other infos */    if (has_title) {        hpos = put_header(pb, &comment_header);        put_le16(pb, 2 * (strlen(s->title) + 1));        put_le16(pb, 2 * (strlen(s->author) + 1));        put_le16(pb, 2 * (strlen(s->copyright) + 1));        put_le16(pb, 2 * (strlen(s->comment) + 1));        put_le16(pb, 0);        put_str16_nolen(pb, s->title);        put_str16_nolen(pb, s->author);        put_str16_nolen(pb, s->copyright);        put_str16_nolen(pb, s->comment);        end_header(pb, hpos);    }    /* stream headers */    for(n=0;n<s->nb_streams;n++) {        int64_t es_pos;        //        ASFStream *stream = &asf->streams[n];        enc = &s->streams[n]->codec;        asf->streams[n].num = n + 1;        asf->streams[n].seq = 0;        switch(enc->codec_type) {        case CODEC_TYPE_AUDIO:            wav_extra_size = 0;            extra_size = 18 + wav_extra_size;            extra_size2 = 0;            break;        default:        case CODEC_TYPE_VIDEO:            wav_extra_size = 0;            extra_size = 0x33;            extra_size2 = 0;            break;        }        hpos = put_header(pb, &stream_header);        if (enc->codec_type == CODEC_TYPE_AUDIO) {            put_guid(pb, &audio_stream);            put_guid(pb, &audio_conceal_none);        } else {            put_guid(pb, &video_stream);            put_guid(pb, &video_conceal_none);        }        put_le64(pb, 0); /* ??? */        es_pos = url_ftell(pb);        put_le32(pb, extra_size); /* wav header len */        put_le32(pb, extra_size2); /* additional data len */        put_le16(pb, n + 1); /* stream number */        put_le32(pb, 0); /* ??? */        if (enc->codec_type == CODEC_TYPE_AUDIO) {            /* WAVEFORMATEX header */            int wavsize = put_wav_header(pb, enc);            if (wavsize < 0)                return -1;            if (wavsize != extra_size) {                cur_pos = url_ftell(pb);                url_fseek(pb, es_pos, SEEK_SET);                put_le32(pb, wavsize); /* wav header len */                url_fseek(pb, cur_pos, SEEK_SET);            }        } else {            put_le32(pb, enc->width);            put_le32(pb, enc->height);            put_byte(pb, 2); /* ??? */            put_le16(pb, 40); /* size */            /* BITMAPINFOHEADER header */            put_bmp_header(pb, enc, codec_bmp_tags, 1);        }        end_header(pb, hpos);    }    /* media comments */    hpos = put_header(pb, &codec_comment_header);    put_guid(pb, &codec_comment1_header);    put_le32(pb, s->nb_streams);    for(n=0;n<s->nb_streams;n++) {        AVCodec *p;        enc = &s->streams[n]->codec;        p = avcodec_find_encoder(enc->codec_id);        put_le16(pb, asf->streams[n].num);        put_str16(pb, p ? p->name : enc->codec_name);        put_le16(pb, 0); /* no parameters */                        /* id */        if (enc->codec_type == CODEC_TYPE_AUDIO) {            put_le16(pb, 2);            if(!enc->codec_tag)                enc->codec_tag = codec_get_tag(codec_wav_tags, enc->codec_id);            if(!enc->codec_tag)                return -1;            put_le16(pb, enc->codec_tag);        } else {            put_le16(pb, 4);            if(!enc->codec_tag)                enc->codec_tag = codec_get_tag(codec_bmp_tags, enc->codec_id);            if(!enc->codec_tag)                return -1;            put_le32(pb, enc->codec_tag);        }    }    end_header(pb, hpos);    /* patch the header size fields */    cur_pos = url_ftell(pb);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美人xxxx| 国产午夜精品在线观看| 欧美精品一区二区三| 国产精品国产精品国产专区不蜜| 亚洲国产精品影院| 国产精品资源在线看| 久久色在线观看| 亚洲资源中文字幕| 国产不卡免费视频| 精品久久久久久久久久久院品网| 亚洲综合男人的天堂| 成人av在线资源网站| 91精选在线观看| 国产精品美女久久久久高潮| 亚洲va欧美va国产va天堂影院| 国产乱国产乱300精品| 欧美亚洲综合在线| 日本一区二区免费在线观看视频 | 欧美变态tickling挠脚心| 国产亚洲自拍一区| 五月天欧美精品| 99精品欧美一区二区三区小说 | 亚洲精品国产第一综合99久久| 秋霞成人午夜伦在线观看| 91伊人久久大香线蕉| 日韩一级片在线观看| 亚洲精品ww久久久久久p站 | 欧美日本一道本| 亚洲欧洲精品成人久久奇米网| 蜜桃一区二区三区在线| 99精品国产99久久久久久白柏| 亚洲精品一区二区三区四区高清 | 婷婷开心激情综合| 91亚洲国产成人精品一区二三| 精品免费国产一区二区三区四区| 亚洲一区在线电影| 色婷婷久久久综合中文字幕| 中文字幕一区二区三区精华液| 日韩高清不卡一区| 91久久精品日日躁夜夜躁欧美| 欧美国产日本视频| 国产一区二区三区香蕉| 日韩精品一区二区三区四区| 午夜精品视频一区| 欧美日韩精品专区| 亚洲午夜免费电影| 欧美日韩三级一区二区| 亚洲综合色网站| 欧美在线free| 亚洲国产精品久久艾草纯爱| 在线精品国精品国产尤物884a| 中文字幕日韩精品一区| 99久久精品国产网站| 国产精品久久综合| 99re视频这里只有精品| 1000精品久久久久久久久| 99精品视频在线免费观看| 中文字幕日韩欧美一区二区三区| 成年人午夜久久久| 亚洲免费色视频| 在线免费观看视频一区| 亚洲一卡二卡三卡四卡五卡| 欧美三级韩国三级日本一级| 日韩精彩视频在线观看| 日韩欧美的一区二区| 精品制服美女久久| 中文字幕第一区| 91美女在线视频| 亚洲成a人在线观看| 欧美日韩国产三级| 国内成人自拍视频| 中文在线一区二区| 欧美亚洲丝袜传媒另类| 日韩黄色一级片| 2021中文字幕一区亚洲| 成人精品免费视频| 亚洲已满18点击进入久久| 91麻豆精品国产自产在线观看一区| 美女www一区二区| 久久精品视频免费| 色婷婷精品久久二区二区蜜臀av| 五月婷婷欧美视频| 国产精品私人影院| 欧洲国内综合视频| 国产专区综合网| 亚洲精品视频在线观看免费| 3atv一区二区三区| 成人一区二区视频| 日韩中文欧美在线| 国产精品热久久久久夜色精品三区 | 青青草国产精品97视觉盛宴| 欧美极品美女视频| 欧美精品在线观看播放| 国产精品一区二区三区乱码 | 免费在线观看一区二区三区| 国产三级精品视频| 欧美日韩精品欧美日韩精品一综合| 在线国产电影不卡| 亚洲国产毛片aaaaa无费看| 久久久一区二区三区| 欧美色区777第一页| 亚洲成人777| 国产精品久久综合| 精品久久久久久久久久久久久久久| 99视频超级精品| 免费成人在线影院| 亚洲精品亚洲人成人网在线播放| 久久综合色天天久久综合图片| 欧美亚洲愉拍一区二区| 成人动漫一区二区在线| 久久er99精品| 天天影视涩香欲综合网| 亚洲色图一区二区三区| 国产三级精品在线| 日韩精品资源二区在线| 欧美色图激情小说| 国产麻豆精品视频| 久久精品国产澳门| 日本中文在线一区| 亚洲gay无套男同| 一区二区三区免费观看| 国产精品二三区| 国产精品全国免费观看高清 | 视频一区中文字幕国产| 亚洲影院在线观看| 亚洲免费观看高清完整| 中文字幕一区av| 国产精品美女久久久久久2018| 久久久亚洲国产美女国产盗摄 | 欧美老肥妇做.爰bbww| 91丝袜高跟美女视频| 成人av动漫在线| 99热精品一区二区| 色一情一乱一乱一91av| 99久久99久久精品国产片果冻 | 性做久久久久久久久| 一二三区精品视频| 亚洲一区二区三区中文字幕| 一区二区三区在线免费视频| 亚洲精品国产视频| 亚洲综合色视频| 视频在线观看一区二区三区| 日本中文字幕一区二区视频 | 久久草av在线| 韩国在线一区二区| 国产精品综合一区二区三区| 国产美女视频一区| 97久久超碰精品国产| 一本一道综合狠狠老| 欧美在线观看视频一区二区三区| 欧美偷拍一区二区| 欧美一区二区在线视频| 精品欧美乱码久久久久久| 国产亚洲精品超碰| 亚洲欧洲成人自拍| 日韩精品高清不卡| 国产精品系列在线播放| 丁香啪啪综合成人亚洲小说| 91丨九色丨蝌蚪富婆spa| 欧美日韩精品综合在线| 精品国产乱码久久久久久老虎| 久久久久久久久99精品| 国产精品毛片久久久久久 | 91精品国产欧美日韩| 国产亚洲人成网站| 中文字幕一区二区三区乱码在线| 亚洲精品美腿丝袜| 久久精品国产99| 99re这里只有精品首页| 精品视频在线看| 久久夜色精品国产欧美乱极品| 国产精品第四页| 日韩电影一区二区三区| 免费不卡在线视频| 国产成人av资源| 欧美最猛性xxxxx直播| 久久精品在这里| 亚洲一区二区三区美女| 国产在线精品视频| 欧美影院一区二区三区| 国产欧美一区二区在线| 亚洲国产日韩在线一区模特| 国产不卡高清在线观看视频| 777色狠狠一区二区三区| 亚洲视频一区二区在线| 久久se精品一区精品二区| 欧美午夜精品久久久久久孕妇| 精品国产免费视频| 天天操天天色综合| 91在线视频免费91| 久久免费看少妇高潮| 国产精品高潮呻吟| 久久精品国产99久久6| a级精品国产片在线观看| 欧美精品乱码久久久久久按摩| 国产精品国产三级国产专播品爱网 | 在线欧美小视频| 国产精品少妇自拍| 国产原创一区二区三区| 欧美精品日韩精品|