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

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

?? encoder-h261.cxx

?? mgcp協(xié)議源代碼。支持多種編碼:g711
?? CXX
?? 第 1 頁 / 共 2 頁
字號:
/*encoder-h261.cc  (c) 1999-2000 Derek J Smithies (dereks@ibm.net) *                           Indranet Technologies ltd (lara@indranet.co.nz) * * This file is derived from vic, http://www-nrg.ee.lbl.gov/vic/ * Their copyright notice is below. *//* * Copyright (c) 1994-1995 The Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *      This product includes software developed by the University of *      California, Berkeley and the Network Research Group at *      Lawrence Berkeley Laboratory. * 4. Neither the name of the University nor of the Laboratory may be used *    to endorse or promote products derived from this software without *    specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */static const char rcsid[] =    "@(#) $Header: /home/cvsroot/openh323/src/vic/encoder-h261.cxx,v 1.2 2000/02/04 05:16:23 craigs Exp $ (LBL)";#include "encoder-h261.h"H261Encoder::H261Encoder(Transmitter *T) : Encoder(T),	bs_(0), bc_(0),         ngob_(12){ 	for (int q = 0; q < 32; ++q) {		llm_[q] = 0;		clm_[q] = 0;	}}H261PixelEncoder:: H261PixelEncoder(Transmitter *T): H261Encoder(T){	quant_required_ = 0;	setq(10);}H261DCTEncoder::H261DCTEncoder(Transmitter *T) : H261Encoder(T) {	quant_required_ = 1;	setq(10);}/* * Set up the forward DCT quantization table for * INTRA mode operation. */voidH261Encoder::setquantizers(int lq, int mq, int hq){	int qt[64];	if (lq > 31)		lq = 31;	if (lq <= 0)		lq = 1;	lq_ = lq;	if (mq > 31)		mq = 31;	if (mq <= 0)		mq = 1;	mq_ = mq;	if (hq > 31)		hq = 31;	if (hq <= 0)		hq = 1;	hq_ = hq;	/*	 * quant_required_ indicates quantization is not folded	 * into fdct [because fdct is not performed]	 */	if (quant_required_ == 0) {		/*		 * Set the DC quantizer to 1, since we want to do this		 * coefficient differently (i.e., the DC is rounded while		 * the AC terms are truncated).		 */		qt[0] = 1;		int i;		for (i = 1; i < 64; ++i)			qt[i] = lq_ << 1;		fdct_fold_q(qt, lqt_);		qt[0] = 1;		for (i = 1; i < 64; ++i)			qt[i] = mq_ << 1;		fdct_fold_q(qt, mqt_);		qt[0] = 1;		for (i = 1; i < 64; ++i)			qt[i] = hq_ << 1;		fdct_fold_q(qt, hqt_);	}}voidH261Encoder::setq(int q){	setquantizers(q, q / 2, 1);}voidH261PixelEncoder::SetSize(int w, int h){  if(width!=w){	Encoder::SetSize(w, h);	if (w == CIF_WIDTH && h == CIF_HEIGHT) {		/* CIF */		cif_ = 1;		ngob_ = 12;		bstride_ = 11;		lstride_ = 16 * CIF_WIDTH - CIF_WIDTH / 2;		cstride_ = 8 * 176 - 176 / 2;		loffsize_ = 16;		coffsize_ = 8;		bloffsize_ = 1;	} else if (w == QCIF_WIDTH && h == QCIF_HEIGHT) {		/* QCIF */		cif_ = 0;		ngob_ = 6; /* not really number of GOBs, just loop limit */		bstride_ = 0;		lstride_ = 16 * QCIF_WIDTH - QCIF_WIDTH;		cstride_ = 8 * 88 - 88;		loffsize_ = 16;		coffsize_ = 8;		bloffsize_ = 1;	} else {		/*XXX*/          PTRACE(0,"BAD GEOMETRY "<<w<<" x "<<h);	  printf("H261PixelEncoder: H.261 bad geometry: %d x %d\n",w,h);		exit(1);	}	u_int loff = 0;	u_int coff = 0;	u_int blkno = 0;	for (u_int gob = 0; gob < ngob_; gob += 2) {		loff_[gob] = loff;		coff_[gob] = coff;		blkno_[gob] = blkno;		/* width of a GOB (these aren't ref'd in QCIF case) */		loff_[gob + 1] = loff + 11 * 16;		coff_[gob + 1] = coff + 11 * 8;		blkno_[gob + 1] = blkno + 11;		/* advance to next GOB row */		loff += (16 * 16 * MBPERGOB) << cif_;		coff += (8 * 8 * MBPERGOB) << cif_;		blkno += MBPERGOB << cif_;	}  }//if(width!=w)}voidH261DCTEncoder::SetSize(int w, int h){	Encoder::SetSize(w, h);	if (w == CIF_WIDTH && h == CIF_HEIGHT) {		/* CIF */		cif_ = 1;		ngob_ = 12;		bstride_ = 11;		lstride_ = - (11 * (64*BMB)) + 2 * 11 * 64 * BMB;		cstride_ = - (11 * (64*BMB)) + 2 * 11 * 64 * BMB;		loffsize_ = 64 * BMB;		coffsize_ = 64 * BMB;		bloffsize_ = 1;	} else if (w == QCIF_WIDTH && h == QCIF_HEIGHT) {		/* QCIF */		cif_ = 0;		ngob_ = 6; /* not really number of GOBs, just loop limit */		bstride_ = 0;		lstride_ = 0;		cstride_ = 0;		loffsize_ = 64 * BMB;		coffsize_ = 64 * BMB;		bloffsize_ = 1;	} else {		/*XXX*/                printf("H261DCTEncoder: H.261 bad geometry: %d x %d\n",w,h);		exit(1);	}	u_int gob;	for (gob = 0; gob < ngob_; gob += 2) {		if (gob != 0) {			loff_[gob] = loff_[gob-2] +				(MBPERGOB << cif_) * BMB * 64;			coff_[gob] = coff_[gob-2] +				(MBPERGOB << cif_) * BMB * 64;			blkno_[gob] = blkno_[gob-2] +				(MBPERGOB << cif_);		} else {			loff_[0] = 0;			coff_[0] = loff_[0] + 4 * 64;	// 4 Y's			blkno_[0] = 0;		}		loff_[gob + 1] = loff_[gob] + 11 * BMB * 64;		coff_[gob + 1] = coff_[gob] + 11 * BMB * 64;		blkno_[gob + 1] = blkno_[gob] + 11;	}}/* * Make a map to go from a 12 bit dct value to an 8 bit quantized * 'level' number.  The 'map' includes both the quantizer (for the * dct encoder) and the perceptual filter 'threshhold' (for both * the pixel & dct encoders).  The first 4k of the map is for the * unfiltered coeff (the first 20 in zigzag order; roughly the * upper left quadrant) and the next 4k of the map are for the * filtered coef. */char*H261Encoder::make_level_map(int q, u_int fthresh){	/* make the luminance map */	char* lm = new char[0x2000];	char* flm = lm + 0x1000;	int i;	lm[0] = 0;	flm[0] = 0;	q = quant_required_? q << 1 : 0;	for (i = 1; i < 0x800; ++i) {		u_int l = i;		if (q)			l /= q;		lm[i] = l;		lm[-i & 0xfff] = -l;		if (l <= fthresh)			l = 0;		flm[i] = l;		flm[-i & 0xfff] = -l;	}	return (lm);}/* * encode_blk: *	encode a block of DCT coef's */voidH261Encoder::encode_blk(const short* blk, const char* lm){	BB_INT bb = bb_;	u_int nbb = nbb_;	u_char* bc = bc_;	/*	 * Quantize DC.  Round instead of truncate.	 */	int dc = (blk[0] + 4) >> 3;	if (dc <= 0)		/* shouldn't happen with CCIR 601 black (level 16) */		dc = 1;	else if (dc > 254)		dc = 254;	else if (dc == 128)		/* per Table 6/H.261 */		dc = 255;	/* Code DC */	PUT_BITS(dc, 8, nbb, bb, bc);	int run = 0;	const u_char* colzag = &COLZAG[0];	for (int zag; (zag = *++colzag) != 0; ) {		if (colzag == &COLZAG[20])			lm += 0x1000;		int level = lm[((const u_short*)blk)[zag] & 0xfff];		if (level != 0) {			int val, nb;			huffent* he;			if (u_int(level + 15) <= 30 &&			    (nb = (he = &hte_tc[((level&0x1f) << 6)|run])->nb))				/* we can use a VLC. */				val = he->val;			else {				 /* Can't use a VLC.  Escape it. */				val = (1 << 14) | (run << 8) | (level & 0xff);				nb = 20;			}			PUT_BITS(val, nb, nbb, bb, bc);			run = 0;		} else			++run;	}	/* EOB */	PUT_BITS(2, 2, nbb, bb, bc);	bb_ = bb;	nbb_ = nbb;	bc_ = bc;}/* * H261PixelEncoder::encode_mb *	encode a macroblock given a set of input YUV pixels */voidH261PixelEncoder::encode_mb(u_int mba, const u_char* frm,			    u_int loff, u_int coff, int how){	register int q;	float* qt;	if (how == CR_MOTION) {		q = lq_;		qt = lqt_;	} else if (how == CR_BG) {		q = hq_;		qt = hqt_; 	} else {		/* must be at age threshold */		q = mq_;		qt = mqt_; 	}	/*	 * encode all 6 blocks of the macro block to find the largest

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
26uuu色噜噜精品一区| 美女一区二区视频| 男女男精品视频网| 99久久精品国产毛片| 91精品国产一区二区| 亚洲激情在线激情| 国产91在线看| www久久久久| 免费观看在线色综合| 色一情一伦一子一伦一区| 久久久精品免费免费| 国产日韩欧美综合在线| 久久99日本精品| 欧美日韩亚洲综合在线| 亚洲欧美激情插| 成人av中文字幕| 国产亚洲精品福利| 久久 天天综合| 欧美日韩aaa| 性久久久久久久久| 欧美亚洲另类激情小说| 成人欧美一区二区三区白人| 国产黄色91视频| 精品国产乱码久久久久久牛牛| 丝袜国产日韩另类美女| 色综合天天在线| 亚洲日本一区二区| 99精品国产视频| 国产精品久久久久久妇女6080| 国产福利一区二区三区在线视频| 欧美va亚洲va香蕉在线| 精一区二区三区| 精品国产制服丝袜高跟| 精品中文字幕一区二区小辣椒| 日韩一区二区三区免费看| 日本最新不卡在线| 日韩一区和二区| 国模无码大尺度一区二区三区| 精品裸体舞一区二区三区| 激情文学综合丁香| 国产日韩三级在线| 99免费精品在线| 亚洲一区二区三区自拍| 欧美亚洲动漫制服丝袜| 五月天亚洲婷婷| 精品国产电影一区二区| 国产精品主播直播| 亚洲少妇30p| 欧美日韩小视频| 免费成人小视频| 久久久久久久国产精品影院| av网站免费线看精品| 亚洲精品欧美二区三区中文字幕| 91美女片黄在线观看| 午夜精品一区在线观看| 精品乱人伦小说| 丁香六月综合激情| 亚洲视频一区在线| 欧美顶级少妇做爰| 国产suv精品一区二区6| 亚洲免费观看高清完整版在线 | 亚洲视频每日更新| 欧美三日本三级三级在线播放| 免费高清不卡av| 国产精品麻豆视频| 777欧美精品| 国产99久久久久久免费看农村| 亚洲免费看黄网站| 精品久久久久久无| 色婷婷亚洲综合| 九九视频精品免费| 亚洲精品高清在线观看| 精品国产三级电影在线观看| 99re8在线精品视频免费播放| 亚洲成a人v欧美综合天堂下载 | 综合中文字幕亚洲| 欧美一区二区啪啪| 91丨九色丨国产丨porny| 日本在线播放一区二区三区| 中文字幕精品一区| 欧美一二三四在线| 欧美亚一区二区| 国产91精品露脸国语对白| 丝袜亚洲精品中文字幕一区| 国产精品美女久久久久高潮| 欧美一区2区视频在线观看| 91丨国产丨九色丨pron| 精品一区二区三区不卡 | 色婷婷精品大视频在线蜜桃视频| 免费久久99精品国产| 亚洲精品午夜久久久| 亚洲国产精品国自产拍av| 日韩欧美一区二区三区在线| 在线免费视频一区二区| 国产黄色91视频| 久久99精品一区二区三区三区| 亚洲国产综合91精品麻豆| 国产精品妹子av| 国产午夜精品理论片a级大结局| 欧美一区二区在线免费播放| 91黄视频在线观看| 99久久免费国产| 丁香婷婷深情五月亚洲| 国内精品伊人久久久久av影院 | 在线电影一区二区三区| 色综合色狠狠综合色| 99re成人在线| av一二三不卡影片| 不卡av电影在线播放| 成人精品视频一区二区三区尤物| 国产自产视频一区二区三区| 久久99国产乱子伦精品免费| 蜜桃久久久久久久| 麻豆国产91在线播放| 毛片av一区二区三区| 精品一区二区三区免费播放| 麻豆精品在线播放| 经典一区二区三区| 国产又粗又猛又爽又黄91精品| 久久99精品一区二区三区三区| 麻豆精品视频在线| 国产一区二区三区av电影| 国产最新精品免费| 国产成人精品免费看| www.一区二区| 91色porny蝌蚪| 欧美在线观看18| 欧美剧情片在线观看| 日韩一级高清毛片| 精品福利视频一区二区三区| 国产色产综合产在线视频| 中文字幕在线不卡一区| 一区二区在线观看视频| 亚洲va国产va欧美va观看| 爽爽淫人综合网网站| 精品亚洲免费视频| 成人丝袜视频网| 欧美亚洲禁片免费| 日韩视频免费观看高清完整版| 久久看人人爽人人| ...av二区三区久久精品| 亚洲一区二区三区四区五区黄 | 一区二区三区精品| 蜜臀av一区二区三区| 国产精品资源站在线| 日本道色综合久久| 日韩欧美亚洲国产精品字幕久久久| 欧美精品一区二区不卡| 亚洲人成小说网站色在线| 三级亚洲高清视频| 丰满少妇在线播放bd日韩电影| 欧洲一区二区三区在线| 欧美r级在线观看| 亚洲日本青草视频在线怡红院| 日本不卡高清视频| 99久久精品免费观看| 国产欧美日韩中文久久| 1024国产精品| 激情综合色丁香一区二区| 在线中文字幕一区二区| 久久久综合九色合综国产精品| 亚洲精品第1页| 国产乱码精品一区二区三区忘忧草 | av在线不卡观看免费观看| 欧美日韩国产免费一区二区| 国产欧美一区二区在线| 偷偷要91色婷婷| 色综合久久88色综合天天免费| 日韩美女天天操| 亚洲不卡av一区二区三区| heyzo一本久久综合| 精品国产一区二区三区久久久蜜月| 一区二区三区加勒比av| 国产成人免费在线| 日韩欧美综合在线| 亚洲成av人在线观看| 99精品视频在线播放观看| 久久精品视频免费| 麻豆精品一区二区av白丝在线| 欧美视频一区二区三区| 亚洲欧洲三级电影| 岛国精品在线播放| 国产亚洲成aⅴ人片在线观看 | 亚洲成年人网站在线观看| 不卡欧美aaaaa| 国产婷婷一区二区| 国产中文字幕一区| 欧美成人aa大片| 日本不卡视频在线| 777欧美精品| 日日骚欧美日韩| 欧美美女激情18p| 午夜久久福利影院| 欧美日韩国产系列| 亚洲3atv精品一区二区三区| 欧美调教femdomvk| 午夜精品影院在线观看| 欧美日韩国产影片| 日欧美一区二区| 日韩午夜在线观看视频|