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

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

?? h263.c

?? mpeg4 video codec mpeg4 video codec
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* * H263/MPEG4 backend for ffmpeg encoder and decoder * Copyright (c) 2000,2001 Fabrice Bellard. * H263+ support. * Copyright (c) 2001 Juan J. Sierralta P. * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at> * * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * ac prediction encoding, b-frame support, error resilience, optimizations, * qpel decoding, gmc decoding, interlaced decoding,  * by Michael Niedermayer <michaelni@gmx.at> *//** * @file h263.c * h263/mpeg4 codec. */ //#define DEBUG#include <limits.h>#include "common.h"#include "dsputil.h"#include "avcodec.h"#include "mpegvideo.h"#include "h263data.h"#include "mpeg4data.h"//#ifdef CONFIG_WIN32#include <windows.h>//#endif//#undef NDEBUG//#include <assert.h>#define INTRA_MCBPC_VLC_BITS 6#define INTER_MCBPC_VLC_BITS 7#define CBPY_VLC_BITS 6#define MV_VLC_BITS 9#define DC_VLC_BITS 9#define SPRITE_TRAJ_VLC_BITS 6#define MB_TYPE_B_VLC_BITS 4#define TEX_VLC_BITS 9#define H263_MBTYPE_B_VLC_BITS 6#define CBPC_B_VLC_BITS 3#ifdef CONFIG_ENCODERSstatic void h263_encode_block(MpegEncContext * s, DCTELEM * block,			      int n);static void h263p_encode_umotion(MpegEncContext * s, int val);static inline void mpeg4_encode_block(MpegEncContext * s, DCTELEM * block,			       int n, int dc, uint8_t *scan_table,                                PutBitContext *dc_pb, PutBitContext *ac_pb);#endifstatic int h263_decode_motion(MpegEncContext * s, int pred, int fcode);static int h263p_decode_umotion(MpegEncContext * s, int pred);static int h263_decode_block(MpegEncContext * s, DCTELEM * block,                             int n, int coded);static inline int mpeg4_decode_dc(MpegEncContext * s, int n, int *dir_ptr);static inline int mpeg4_decode_block(MpegEncContext * s, DCTELEM * block,                              int n, int coded, int intra, int rvlc);static int mpeg4_get_block_length(MpegEncContext * s, DCTELEM * block, int n, int intra_dc,                                uint8_t *scan_table);static int h263_pred_dc(MpegEncContext * s, int n, uint16_t **dc_val_ptr);#ifdef CONFIG_ENCODERSstatic void mpeg4_encode_visual_object_header(MpegEncContext * s);static void mpeg4_encode_vol_header(MpegEncContext * s, int vo_number, int vol_number);#endif //CONFIG_ENCODERSstatic void mpeg4_decode_sprite_trajectory(MpegEncContext * s, GetBitContext *gb);static inline int ff_mpeg4_pred_dc(MpegEncContext * s, int n, int level, int *dir_ptr, int encoding);#ifdef CONFIG_ENCODERSstatic uint8_t uni_DCtab_lum_len[512];static uint8_t uni_DCtab_chrom_len[512];static uint16_t uni_DCtab_lum_bits[512];static uint16_t uni_DCtab_chrom_bits[512];static uint8_t (*mv_penalty)[MAX_MV*2+1]= NULL;static uint8_t fcode_tab[MAX_MV*2+1];static uint8_t umv_fcode_tab[MAX_MV*2+1];static uint32_t uni_mpeg4_intra_rl_bits[64*64*2*2];static uint8_t  uni_mpeg4_intra_rl_len [64*64*2*2];static uint32_t uni_mpeg4_inter_rl_bits[64*64*2*2];static uint8_t  uni_mpeg4_inter_rl_len [64*64*2*2];static uint8_t  uni_h263_intra_aic_rl_len [64*64*2*2];static uint8_t  uni_h263_inter_rl_len [64*64*2*2];//#define UNI_MPEG4_ENC_INDEX(last,run,level) ((last)*128 + (run)*256 + (level))//#define UNI_MPEG4_ENC_INDEX(last,run,level) ((last)*128*64 + (run) + (level)*64)#define UNI_MPEG4_ENC_INDEX(last,run,level) ((last)*128*64 + (run)*128 + (level))/* mpeg4intermax level: 24/6max run: 53/63intramax level: 53/16max run: 29/41*/#endif#if 0 //3IV1 is quite rare and it slows things down a tiny bit#define IS_3IV1 s->avctx->codec_tag == ff_get_fourcc("3IV1")#else #define IS_3IV1 0#endifint h263_get_picture_format(int width, int height){    int format;    if (width == 128 && height == 96)	format = 1;    else if (width == 176 && height == 144)	format = 2;    else if (width == 352 && height == 288)	format = 3;    else if (width == 704 && height == 576)	format = 4;    else if (width == 1408 && height == 1152)	format = 5;    else        format = 7;    return format;}#ifdef CONFIG_ENCODERSstatic void aspect_to_info(MpegEncContext * s, AVRational aspect){    int i;    if(aspect.num==0) aspect.num=aspect.den=1;//= (AVRational){1,1};        for(i=1; i<6; i++){        if(av_cmp_q(pixel_aspect[i], aspect) == 0){            s->aspect_ratio_info=i;            return;        }    }        s->aspect_ratio_info= FF_ASPECT_EXTENDED;}void ff_flv_encode_picture_header(MpegEncContext * s, int picture_number){      int format;      align_put_bits(&s->pb);      put_bits(&s->pb, 17, 1);      put_bits(&s->pb, 5, (s->h263_flv-1)); /* 0: h263 escape codes 1: 11-bit escape codes */      put_bits(&s->pb, 8, (((int64_t)s->picture_number * 30 * s->avctx->time_base.num) / //FIXME use timestamp                           s->avctx->time_base.den) & 0xff); /* TemporalReference */      if (s->width == 352 && s->height == 288)        format = 2;      else if (s->width == 176 && s->height == 144)        format = 3;      else if (s->width == 128 && s->height == 96)        format = 4;      else if (s->width == 320 && s->height == 240)        format = 5;      else if (s->width == 160 && s->height == 120)        format = 6;      else if (s->width <= 255 && s->height <= 255)        format = 0; /* use 1 byte width & height */      else        format = 1; /* use 2 bytes width & height */      put_bits(&s->pb, 3, format); /* PictureSize */      if (format == 0) {        put_bits(&s->pb, 8, s->width);        put_bits(&s->pb, 8, s->height);      } else if (format == 1) {        put_bits(&s->pb, 16, s->width);        put_bits(&s->pb, 16, s->height);      }      put_bits(&s->pb, 2, s->pict_type == P_TYPE); /* PictureType */      put_bits(&s->pb, 1, 1); /* DeblockingFlag: on */      put_bits(&s->pb, 5, s->qscale); /* Quantizer */      put_bits(&s->pb, 1, 0); /* ExtraInformation */      if(s->h263_aic){        s->y_dc_scale_table=           s->c_dc_scale_table= ff_aic_dc_scale_table;      }else{        s->y_dc_scale_table=          s->c_dc_scale_table= ff_mpeg1_dc_scale_table;      }}void h263_encode_picture_header(MpegEncContext * s, int picture_number){    int format, coded_frame_rate, coded_frame_rate_base, i, temp_ref;    int best_clock_code=1;    int best_divisor=60;    int best_error= INT_MAX;       if(s->h263_plus){        for(i=0; i<2; i++){            int div, error;            div= (s->avctx->time_base.num*1800000LL + 500LL*s->avctx->time_base.den) / ((1000LL+i)*s->avctx->time_base.den);            div= clip(1, div, 127);            error= ABS(s->avctx->time_base.num*1800000LL - (1000LL+i)*s->avctx->time_base.den*div);            if(error < best_error){                best_error= error;                best_divisor= div;                best_clock_code= i;            }        }    }    s->custom_pcf= best_clock_code!=1 || best_divisor!=60;    coded_frame_rate= 1800000;    coded_frame_rate_base= (1000+best_clock_code)*best_divisor;    align_put_bits(&s->pb);    /* Update the pointer to last GOB */    s->ptr_lastgob = pbBufPtr(&s->pb);    put_bits(&s->pb, 22, 0x20); /* PSC */    temp_ref= s->picture_number * (int64_t)coded_frame_rate * s->avctx->time_base.num / //FIXME use timestamp                         (coded_frame_rate_base * (int64_t)s->avctx->time_base.den);    put_bits(&s->pb, 8, temp_ref & 0xff); /* TemporalReference */    put_bits(&s->pb, 1, 1);	/* marker */    put_bits(&s->pb, 1, 0);	/* h263 id */    put_bits(&s->pb, 1, 0);	/* split screen off */    put_bits(&s->pb, 1, 0);	/* camera  off */    put_bits(&s->pb, 1, 0);	/* freeze picture release off */        format = h263_get_picture_format(s->width, s->height);    if (!s->h263_plus) {        /* H.263v1 */        put_bits(&s->pb, 3, format);        put_bits(&s->pb, 1, (s->pict_type == P_TYPE));        /* By now UMV IS DISABLED ON H.263v1, since the restrictions        of H.263v1 UMV implies to check the predicted MV after        calculation of the current MB to see if we're on the limits */        put_bits(&s->pb, 1, 0);	/* Unrestricted Motion Vector: off */        put_bits(&s->pb, 1, 0);	/* SAC: off */        put_bits(&s->pb, 1, s->obmc);	/* Advanced Prediction */        put_bits(&s->pb, 1, 0);	/* only I/P frames, no PB frame */        put_bits(&s->pb, 5, s->qscale);        put_bits(&s->pb, 1, 0);	/* Continuous Presence Multipoint mode: off */    } else {        int ufep=1;        /* H.263v2 */        /* H.263 Plus PTYPE */                put_bits(&s->pb, 3, 7);        put_bits(&s->pb,3,ufep); /* Update Full Extended PTYPE */        if (format == 7)            put_bits(&s->pb,3,6); /* Custom Source Format */        else            put_bits(&s->pb, 3, format);                    put_bits(&s->pb,1, s->custom_pcf);        put_bits(&s->pb, 1, s->umvplus); /* Unrestricted Motion Vector */        put_bits(&s->pb,1,0); /* SAC: off */        put_bits(&s->pb,1,s->obmc); /* Advanced Prediction Mode */        put_bits(&s->pb,1,s->h263_aic); /* Advanced Intra Coding */        put_bits(&s->pb,1,s->loop_filter); /* Deblocking Filter */        put_bits(&s->pb,1,s->h263_slice_structured); /* Slice Structured */        put_bits(&s->pb,1,0); /* Reference Picture Selection: off */        put_bits(&s->pb,1,0); /* Independent Segment Decoding: off */        put_bits(&s->pb,1,s->alt_inter_vlc); /* Alternative Inter VLC */        put_bits(&s->pb,1,s->modified_quant); /* Modified Quantization: */        put_bits(&s->pb,1,1); /* "1" to prevent start code emulation */        put_bits(&s->pb,3,0); /* Reserved */		        put_bits(&s->pb, 3, s->pict_type == P_TYPE);		        put_bits(&s->pb,1,0); /* Reference Picture Resampling: off */        put_bits(&s->pb,1,0); /* Reduced-Resolution Update: off */        put_bits(&s->pb,1,s->no_rounding); /* Rounding Type */        put_bits(&s->pb,2,0); /* Reserved */        put_bits(&s->pb,1,1); /* "1" to prevent start code emulation */		        /* This should be here if PLUSPTYPE */        put_bits(&s->pb, 1, 0);	/* Continuous Presence Multipoint mode: off */				if (format == 7) {            /* Custom Picture Format (CPFMT) */            aspect_to_info(s, s->avctx->sample_aspect_ratio);            put_bits(&s->pb,4,s->aspect_ratio_info);            put_bits(&s->pb,9,(s->width >> 2) - 1);            put_bits(&s->pb,1,1); /* "1" to prevent start code emulation */            put_bits(&s->pb,9,(s->height >> 2));            if (s->aspect_ratio_info == FF_ASPECT_EXTENDED){                put_bits(&s->pb, 8, s->avctx->sample_aspect_ratio.num);                put_bits(&s->pb, 8, s->avctx->sample_aspect_ratio.den);	    }        }        if(s->custom_pcf){            if(ufep){                put_bits(&s->pb, 1, best_clock_code);                put_bits(&s->pb, 7, best_divisor);            }            put_bits(&s->pb, 2, (temp_ref>>8)&3);        }                /* Unlimited Unrestricted Motion Vectors Indicator (UUI) */        if (s->umvplus)//            put_bits(&s->pb,1,1); /* Limited according tables of Annex D *///FIXME check actual requested range            put_bits(&s->pb,2,1); /* unlimited */        if(s->h263_slice_structured)            put_bits(&s->pb,2,0); /* no weird submodes */        put_bits(&s->pb, 5, s->qscale);    }    put_bits(&s->pb, 1, 0);	/* no PEI */    if(s->h263_slice_structured){        put_bits(&s->pb, 1, 1);                assert(s->mb_x == 0 && s->mb_y == 0);        ff_h263_encode_mba(s);        put_bits(&s->pb, 1, 1);    }    if(s->h263_aic){         s->y_dc_scale_table=          s->c_dc_scale_table= ff_aic_dc_scale_table;    }else{        s->y_dc_scale_table=        s->c_dc_scale_table= ff_mpeg1_dc_scale_table;    }}/** * Encodes a group of blocks header. */void h263_encode_gob_header(MpegEncContext * s, int mb_line){           put_bits(&s->pb, 17, 1); /* GBSC */    if(s->h263_slice_structured){        put_bits(&s->pb, 1, 1);        ff_h263_encode_mba(s);        if(s->mb_num > 1583)            put_bits(&s->pb, 1, 1);        put_bits(&s->pb, 5, s->qscale); /* GQUANT */        put_bits(&s->pb, 1, 1);        put_bits(&s->pb, 2, s->pict_type == I_TYPE); /* GFID */    }else{        int gob_number= mb_line / s->gob_index;        put_bits(&s->pb, 5, gob_number); /* GN */           put_bits(&s->pb, 2, s->pict_type == I_TYPE); /* GFID */           put_bits(&s->pb, 5, s->qscale); /* GQUANT */    }}static inline int get_block_rate(MpegEncContext * s, DCTELEM block[64], int block_last_index, uint8_t scantable[64]){    int last=0;    int j;    int rate=0;    for(j=1; j<=block_last_index; j++){

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品婷婷国产综合久久性色| 久久91精品国产91久久小草| 欧美放荡的少妇| 久久久久久久久久久电影| 亚洲激情图片qvod| 国产精品资源站在线| 欧美色精品在线视频| 久久久一区二区三区| 天天综合天天做天天综合| av资源站一区| 精品国产麻豆免费人成网站| 一区二区日韩av| 成人av手机在线观看| 久久影院视频免费| 亚洲色图一区二区| 在线观看视频一区| 国产精品久久看| 韩国视频一区二区| 日韩三级在线免费观看| 亚洲综合无码一区二区| 成人午夜av电影| 久久久久久麻豆| 美女网站色91| 日韩一卡二卡三卡国产欧美| 五月天欧美精品| 欧美色国产精品| 亚洲国产视频一区| 欧美专区日韩专区| 夜夜爽夜夜爽精品视频| 色天使久久综合网天天| 亚洲乱码日产精品bd| 91污片在线观看| 18成人在线视频| 91色porny| 亚洲男人的天堂一区二区| av午夜精品一区二区三区| 国产精品第五页| 91在线免费看| 亚洲欧美日韩成人高清在线一区| 成人av网站免费观看| 亚洲女性喷水在线观看一区| 色噜噜狠狠成人网p站| 一区二区在线观看视频| 欧美亚洲禁片免费| 五月天丁香久久| 欧美大尺度电影在线| 国产一区二区三区免费看 | 国产黑丝在线一区二区三区| 26uuu久久综合| 国产成人精品一区二区三区四区| 国产午夜精品一区二区| 99久久综合国产精品| 一区二区三区四区在线免费观看| 在线观看成人小视频| 亚洲国产成人porn| 精品日韩欧美一区二区| 国产高清精品久久久久| 亚洲色欲色欲www| 欧美美女网站色| 久久精品久久精品| 国产精品美女久久久久av爽李琼 | 亚洲第一狼人社区| 日韩一级视频免费观看在线| 国产毛片精品国产一区二区三区| 国产精品国产三级国产普通话三级| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲国产成人tv| 国产日韩一级二级三级| 91成人在线观看喷潮| 另类成人小视频在线| 日韩毛片视频在线看| 欧美一区二区三区在| 99久久精品国产一区二区三区| 图片区小说区区亚洲影院| 国产午夜精品久久久久久久| 欧美日韩国产bt| 成人精品高清在线| 日本在线不卡视频一二三区| 国产精品少妇自拍| 91精品黄色片免费大全| aa级大片欧美| 紧缚奴在线一区二区三区| 一区二区三区蜜桃网| 久久精品亚洲精品国产欧美| 欧美日韩国产综合一区二区 | 精品久久国产97色综合| 91啪九色porn原创视频在线观看| 免费成人美女在线观看.| 亚洲精品菠萝久久久久久久| 久久一夜天堂av一区二区三区| 欧美网站一区二区| 99久久婷婷国产综合精品 | 亚洲国产一区二区三区青草影视 | 成人网页在线观看| 久久国内精品自在自线400部| 一级中文字幕一区二区| 国产精品乱码久久久久久| 日韩欧美一级特黄在线播放| 在线看国产日韩| 99综合电影在线视频| 久久黄色级2电影| 五月天视频一区| 亚洲国产日韩一区二区| 中文字幕一区二区三区精华液 | 天堂一区二区在线免费观看| 亚洲精品中文字幕在线观看| 国产精品久久久久久久久图文区| 欧美大片免费久久精品三p| 91精品欧美久久久久久动漫 | 成人国产亚洲欧美成人综合网| 久久99久久久久| 美女mm1313爽爽久久久蜜臀| 天天综合日日夜夜精品| 亚洲国产精品影院| 亚洲国产一区视频| 亚洲午夜在线视频| 亚洲国产精品久久一线不卡| 亚洲精品大片www| 亚洲欧美区自拍先锋| 亚洲视频一区在线观看| 亚洲人成网站在线| 椎名由奈av一区二区三区| 亚洲视频一区在线观看| 一区二区三区国产精华| 亚洲午夜av在线| 日韩精品一区第一页| 人人狠狠综合久久亚洲| 久久99久久久久久久久久久| 国产一区二区成人久久免费影院| 国产麻豆精品在线观看| 成人av电影在线播放| 91久久香蕉国产日韩欧美9色| 色网站国产精品| 制服丝袜激情欧洲亚洲| 日韩精品专区在线影院观看| 久久日韩粉嫩一区二区三区| 欧美经典一区二区三区| ...av二区三区久久精品| 一区二区三区四区高清精品免费观看| 一区二区三区不卡在线观看 | 欧美优质美女网站| 91精品国产综合久久久久久久 | 亚洲日本va午夜在线电影| 亚洲一区日韩精品中文字幕| 五月婷婷色综合| 国产剧情一区在线| 91色在线porny| 日韩一区二区免费电影| 国产精品不卡在线| 五月激情六月综合| 成人免费高清在线| 欧美高清性hdvideosex| 亚洲女爱视频在线| 亚洲国产中文字幕| 国产99久久久久久免费看农村| 97久久精品人人做人人爽50路| 欧美日韩黄视频| 中文在线一区二区| 日韩在线一二三区| 91丨porny丨最新| 日韩欧美电影一二三| 一区二区三区在线观看动漫 | 国产成人8x视频一区二区| 日本伦理一区二区| 久久久久久久综合日本| 亚洲成a人片在线观看中文| 成人中文字幕在线| 日韩亚洲电影在线| 一区二区三区四区国产精品| 国产伦精一区二区三区| 欧美日韩一区二区不卡| 欧美激情在线看| 麻豆精品一区二区三区| 色美美综合视频| 中文字幕乱码亚洲精品一区| 麻豆精品在线观看| 欧美日本视频在线| 亚洲日穴在线视频| 东方欧美亚洲色图在线| 日韩一级在线观看| 首页亚洲欧美制服丝腿| 色哦色哦哦色天天综合| 国产精品美女久久福利网站| 久久爱www久久做| 欧美一区二区三区在线视频| 亚洲愉拍自拍另类高清精品| jlzzjlzz亚洲女人18| 国产午夜精品久久久久久久| 久久电影网电视剧免费观看| 欧美精品三级在线观看| 夜夜嗨av一区二区三区网页| 99久久精品国产观看| 国产精品网友自拍| 国产高清在线观看免费不卡| 精品国产伦一区二区三区免费| 秋霞电影网一区二区| 欧美一区二视频| 三级影片在线观看欧美日韩一区二区| 91在线国产福利| 亚洲欧美日韩国产成人精品影院|