亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
91蝌蚪porny| 国产精品热久久久久夜色精品三区| 亚洲精品一区二区三区99| 中文字幕乱码日本亚洲一区二区| 亚洲精品中文字幕在线观看| 精品在线你懂的| 在线观看日韩av先锋影音电影院| 国产欧美综合在线观看第十页 | 成人午夜激情在线| 欧美一级专区免费大片| 亚洲免费观看高清完整版在线 | 亚洲一区二区三区四区五区黄| 国产九色精品成人porny| 欧美视频在线一区| 亚洲欧美综合另类在线卡通| 激情文学综合丁香| 日韩欧美区一区二| 亚洲成人精品一区二区| 91美女片黄在线观看| 国产欧美日韩在线| 韩日精品视频一区| 日韩亚洲欧美中文三级| 偷拍日韩校园综合在线| 在线观看欧美日本| 亚洲精品高清视频在线观看| 成人精品视频一区| 国产精品免费看片| 粉嫩蜜臀av国产精品网站| 久久综合av免费| 国产美女精品在线| 26uuuu精品一区二区| 激情亚洲综合在线| 久久综合999| 国产suv精品一区二区6| 国产亚洲欧美中文| 国产成人啪免费观看软件| 国产日韩欧美激情| 成人国产精品免费网站| 中文字幕一区免费在线观看| 91网页版在线| 一区二区三区 在线观看视频| 91成人在线精品| 午夜不卡av免费| 日韩情涩欧美日韩视频| 国产一区二区在线看| 欧美激情在线观看视频免费| 97久久超碰国产精品| 一区二区三区不卡在线观看| 欧美日韩精品一区二区三区四区 | 中文字幕在线不卡一区二区三区| 不卡一区二区三区四区| 亚洲另类在线制服丝袜| 欧美午夜电影在线播放| 亚洲bdsm女犯bdsm网站| 欧美va亚洲va在线观看蝴蝶网| 国产精品小仙女| 亚洲视频1区2区| 欧美精品久久一区| 激情av综合网| 亚洲视频一区二区在线| 欧美美女一区二区在线观看| 国产一区福利在线| 亚洲免费观看高清完整| 欧美一级片在线看| 国产91精品欧美| 亚洲福利视频三区| 一区二区三区毛片| 亚洲精品一区二区三区福利| 色呦呦日韩精品| 久久精品99久久久| 亚洲精品一二三| 欧美成人三级在线| 色综合久久久久久久| 经典三级在线一区| 亚洲在线中文字幕| 国产视频一区不卡| 欧美老女人第四色| 不卡大黄网站免费看| 麻豆一区二区在线| 亚洲精品免费看| 久久夜色精品一区| 欧美军同video69gay| 国产99一区视频免费| 免费看黄色91| 亚洲黄色片在线观看| 国产拍揄自揄精品视频麻豆| 欧美一区二区精品在线| 99re热视频精品| 国产成人亚洲综合a∨婷婷| 日韩精品一二区| 亚洲精品国久久99热| 久久九九影视网| 91精品国产一区二区| 91久久精品一区二区| 成人av电影在线播放| 国产麻豆精品在线| 国产在线不卡一区| 蜜臀精品久久久久久蜜臀| 亚洲综合激情小说| 亚洲免费av观看| 日韩一区欧美小说| 国产精品蜜臀av| 国产亚洲欧美激情| 久久久亚洲国产美女国产盗摄| 欧美一区二区三区的| 欧美疯狂做受xxxx富婆| 日本电影亚洲天堂一区| 99精品视频一区二区| 成人的网站免费观看| 成人网在线播放| 成人福利视频网站| 成人美女视频在线观看| 成人av网站免费| 成人精品视频一区| 91在线免费播放| av福利精品导航| 91麻豆精品一区二区三区| 99久久精品久久久久久清纯| 91丨九色porny丨蝌蚪| 成人av电影在线网| 色噜噜夜夜夜综合网| 91福利视频网站| 欧美日韩国产免费一区二区| 欧美美女bb生活片| 日韩亚洲欧美在线| 久久精品综合网| 综合久久久久久久| 亚洲精品一二三区| 日本女人一区二区三区| 韩国中文字幕2020精品| 风间由美一区二区av101 | 亚洲欧洲精品一区二区三区 | 久久精品视频一区二区三区| 亚洲国产精品精华液ab| 亚洲免费av网站| 三级欧美韩日大片在线看| 狠狠色狠狠色综合| 成人h精品动漫一区二区三区| 91香蕉视频污| 欧美精品久久99| 久久久精品国产免大香伊| 亚洲欧洲另类国产综合| 天堂成人国产精品一区| 国产乱码精品一区二区三区忘忧草| 成人高清视频在线| 欧美美女一区二区| 中文字幕欧美激情| 亚洲va国产va欧美va观看| 国产精一品亚洲二区在线视频| 播五月开心婷婷综合| 欧美精品久久一区| 国产精品免费免费| 日韩电影在线观看网站| 成人黄色在线网站| 5566中文字幕一区二区电影| 国产亚洲精品aa午夜观看| 亚洲一区二区三区视频在线播放| 精品一区二区三区久久久| 色综合久久久久综合| 久久影院视频免费| 亚洲图片欧美综合| 成人精品视频一区二区三区 | 色综合天天综合网天天看片| 91精品国产全国免费观看| 一色桃子久久精品亚洲| 欧美a级理论片| 91蜜桃网址入口| 久久综合国产精品| 五月综合激情婷婷六月色窝| caoporn国产精品| 精品久久久久久久久久久院品网| 亚洲一区二区中文在线| 成人黄色av电影| 久久伊人蜜桃av一区二区| 婷婷久久综合九色国产成人| 色综合久久天天综合网| 欧美国产一区在线| 国产综合色产在线精品| 欧美一区二区视频观看视频| 依依成人综合视频| 91在线云播放| 欧美高清在线一区二区| 国内精品久久久久影院一蜜桃| 欧美精品久久99久久在免费线| 夜夜亚洲天天久久| 91亚洲男人天堂| 中文字幕在线观看不卡视频| 国产91精品精华液一区二区三区| 精品国产乱码久久久久久免费| 日韩av高清在线观看| 精品视频在线免费看| 亚洲综合一二区| 91黄色在线观看| 亚洲免费观看在线观看| 色综合久久中文综合久久牛| 亚洲欧洲日韩一区二区三区| www.日韩大片| 亚洲少妇最新在线视频| 91在线观看美女| 一二三四社区欧美黄|