当前位置: 首页 > news >正文

dns网站卫士 收录无极招聘网无极在线

dns网站卫士 收录,无极招聘网无极在线,怎么样给一个网站做自然排名,注册公司要求什么条件由于视频开发的需求#xff0c;封装xvid c调用接口#xff0c;使之优雅易用 我已经对pc camera视频流(RGB)进行尝试#xff0c;编码之后传输到远程主机进行解码回放#xff0c;效果不错 具体的xvid的参数可以进一步优化#xff0c;这里只是提供简单的范例 1. xvid 解码 …由于视频开发的需求封装xvid c调用接口使之优雅易用 我已经对pc camera视频流(RGB)进行尝试编码之后传输到远程主机进行解码回放效果不错 具体的xvid的参数可以进一步优化这里只是提供简单的范例 1. xvid 解码 1   2 /*  3     encode.cpp  4     xvid 编码YUV数据为进一步传输提供准备  5   6 */  7 #ifndef _XVID_ENCODE_H  8 #define _XVID_ENCODE_H  9  10 #include xvid.h 11  12 struct DecodeInfo{ 13     unsigned short    width; 14     unsigned short  height;         15     void (*after_decode)(void * data,unsigned int size,int width,int height,void* user); 16     void * user; 17 }; 18  19  20 class Xvid_Decoder{ 21      22 public: 23     Xvid_Decoder(){  24     } 25     bool            Open(); 26     void            Close(); 27     DecodeInfo     GetDecodeInfo(){    return _dec_info;} 28     void            decode(void *data,unsigned int size); 29     static    void    xvid_global_init(); 30     xvid_dec_create_t    GetHandle(){    return _xvid_dec_create;} 31 private: 32     int                xvid_dec(unsigned char *bitstream,int bs_size,unsigned char *image); 33 private: 34     DecodeInfo    _dec_info; 35     void*        _dec_handle; 36     char         _image[1024*768*3]; 37     xvid_dec_create_t _xvid_dec_create;     38 }; 39  40 #endif 41 1   2 /*  3     encode.cpp  4     xvid 编码YUV数据为进一步传输提供准备  5   6 */  7 #include xvid_dec.h  8 #include windows.h  9  10 // 11  12  13 void Xvid_Decoder::Close(){ 14     int xerr;     15     /* Destroy the encoder instance */ 16     xerr  xvid_decore(_dec_handle, XVID_ENC_DESTROY, NULL, NULL);     17 } 18  19 void Xvid_Decoder::xvid_global_init(){ 20     /*------------------------------------------------------------------------ 21      * XviD core initialization 22      *----------------------------------------------------------------------*/ 23     xvid_gbl_init_t xvid_gbl_init; 24     memset(xvid_gbl_init, 0, sizeof(xvid_gbl_init)); 25     xvid_gbl_init.version  XVID_VERSION; 26     xvid_gbl_init.cpu_flags  XVID_CPU_FORCE; 27     /* Initialize XviD core -- Should be done once per __process__ */ 28     xvid_global(NULL, XVID_GBL_INIT, xvid_gbl_init, NULL); 29 } 30  31 bool Xvid_Decoder::Open(){ 32     int ret;     33      34     /*------------------------------------------------------------------------ 35      * XviD encoder initialization 36      *----------------------------------------------------------------------*/ 37     int width,height; 38     width  _xvid_dec_create.width ; 39     height  _xvid_dec_create.height; 40     memset(_xvid_dec_create, 0, sizeof(xvid_dec_create_t)); 41     _xvid_dec_create.version  XVID_VERSION; 42  43     /* Width and Height of input frames */ 44     _xvid_dec_create.width  width; 45     _xvid_dec_create.height  height; 46  47     ret  xvid_decore(NULL, XVID_DEC_CREATE, _xvid_dec_create, NULL); 48     _dec_handle  _xvid_dec_create.handle; 49     return true; 50 } 51  52 void Xvid_Decoder::decode(void * data,unsigned int size){ 53     int ret; 54     ret  xvid_dec((unsigned char*)data,(int)size,(unsigned char *)_image);     55     if (ret 0) 56         _dec_info.after_decode(_image,(unsigned int)ret,(int)_xvid_dec_create.width,(int)_xvid_dec_create.height,_dec_info.user); 57 } 58  59 /* 60 raw xvid_encode procedure 61 */ 62 int    Xvid_Decoder::xvid_dec(unsigned char *bitstream,int bs_size,unsigned char *image) 63 { 64     int ret; 65     xvid_dec_frame_t xvid_dec_frame; 66  67     /* Reset all structures */ 68     memset(xvid_dec_frame, 0, sizeof(xvid_dec_frame_t)); 69     /* Set version */ 70     xvid_dec_frame.version  XVID_VERSION; 71 //    xvid_dec_stats-version  XVID_VERSION; 72  73     /* No general flags to set */ 74     xvid_dec_frame.general           0; 75  76     /* Input stream */ 77     xvid_dec_frame.bitstream         bitstream; 78     xvid_dec_frame.length            bs_size; 79  80     /* Output frame structure */ 81     xvid_dec_frame.output.plane[0]   image; 82     xvid_dec_frame.output.stride[0]  _xvid_dec_create.width  *3; 83     xvid_dec_frame.output.csp  XVID_CSP_BGR; 84  85     ret  xvid_decore(_dec_handle, XVID_DEC_DECODE, xvid_dec_frame, NULL); 86     return(ret);     87 } 88  89  90 2. xvid 编码1   2 /*  3     encode.cpp  4     xvid 编码YUV数据为进一步传输提供准备  5   6 */  7 #ifndef _XVID_ENCODE_H  8 #define _XVID_ENCODE_H  9  10 #include xvid.h 11 #include nv.h 12  13  14  15 struct EncodeInfo{ 16     unsigned short    width; 17     unsigned short  height;         18     void (*after_encode)(void * data,unsigned int size,void* user); 19     void * user; 20 }; 21  22 class Xvid_Encoder:public NVObject{ 23 public: 24     Xvid_Encoder(){ _closed  true; 25     } 26     bool            Open(); 27     void            Close(); 28     EncodeInfo     GetEncodeInfo(){    return _enc_info;} 29     void            encode(void *data,unsigned int size); 30     static    void    xvid_global_init(); 31     int                xvid_enc(unsigned char *image,unsigned char *bitstream); 32 private: 33     EncodeInfo    _enc_info; 34     void*        _enc_handle; 35     char         _bitstream[1024*100]; 36     bool        _closed; 37      38  39 }; 40  41 #endif 42 1 2 /*3 encode.cpp 4 xvid 编码YUV数据为进一步传输提供准备 5 6 */7  #include encode.h8  #include windows.h9 10 11 staticconstintmotion_presets[] { 12 /*quality 0  */13 0 , 14 15 /*quality 1  */16 XVID_ME_ADVANCEDDIAMOND16, 17 18 /*quality 2  */19 XVID_ME_ADVANCEDDIAMOND16  |XVID_ME_HALFPELREFINE16, 20 21 /*quality 3  */22 XVID_ME_ADVANCEDDIAMOND16  |XVID_ME_HALFPELREFINE16  |23 XVID_ME_ADVANCEDDIAMOND8  |XVID_ME_HALFPELREFINE8, 24 25 /*quality 4  */26 XVID_ME_ADVANCEDDIAMOND16  |XVID_ME_HALFPELREFINE16  |27 XVID_ME_ADVANCEDDIAMOND8  |XVID_ME_HALFPELREFINE8  |28 XVID_ME_CHROMA_PVOP  |XVID_ME_CHROMA_BVOP, 29 30 /*quality 5  */31 XVID_ME_ADVANCEDDIAMOND16  |XVID_ME_HALFPELREFINE16  |32 XVID_ME_ADVANCEDDIAMOND8  |XVID_ME_HALFPELREFINE8  |33 XVID_ME_CHROMA_PVOP  |XVID_ME_CHROMA_BVOP, 34 35 /*quality 6  */36 XVID_ME_ADVANCEDDIAMOND16  |XVID_ME_HALFPELREFINE16  |XVID_ME_EXTSEARCH16  |37 XVID_ME_ADVANCEDDIAMOND8  |XVID_ME_HALFPELREFINE8  |XVID_ME_EXTSEARCH8  |38 XVID_ME_CHROMA_PVOP  |XVID_ME_CHROMA_BVOP, 39 40  }; 41 #defineME_ELEMENTS (sizeof(motion_presets)/sizeof(motion_presets[0]))42 43 staticconstintvop_presets[] { 44 /*quality 0  */45 0 , 46 47 /*quality 1  */48 0 , 49 50 /*quality 2  */51 XVID_VOP_HALFPEL, 52 53 /*quality 3  */54 XVID_VOP_HALFPEL  |XVID_VOP_INTER4V, 55 56 /*quality 4  */57 XVID_VOP_HALFPEL  |XVID_VOP_INTER4V, 58 59 /*quality 5  */60 XVID_VOP_HALFPEL  |XVID_VOP_INTER4V  |61 XVID_VOP_TRELLISQUANT, 62 63 /*quality 6  */64 XVID_VOP_HALFPEL  |XVID_VOP_INTER4V  |65 XVID_VOP_TRELLISQUANT  |XVID_VOP_HQACPRED, 66 67  }; 68 #defineVOP_ELEMENTS (sizeof(vop_presets)/sizeof(vop_presets[0]))69 70 //71 #defineMAX_ZONES   6472 73 /*Maximum number of frames to encode  */74 #defineABS_MAXFRAMENR 999975 76 staticintARG_STATS 0 ; 77 staticintARG_DUMP 0 ; 78 staticintARG_LUMIMASKING 0 ; 79 staticintARG_BITRATE 0 ; 80 staticintARG_SINGLE 0 ; 81 staticchar* ARG_PASS1 0 ; 82 staticchar* ARG_PASS2 0 ; 83 staticintARG_QUALITY ME_ELEMENTS  -1 ; 84 staticfloatARG_FRAMERATE 25.00f ; 85 staticintARG_MAXFRAMENR ABS_MAXFRAMENR; 86 staticintARG_MAXKEYINTERVAL 0 ; 87 staticchar* ARG_INPUTFILE NULL; 88 staticintARG_INPUTTYPE 0 ; 89 staticintARG_SAVEMPEGSTREAM 0 ; 90 staticintARG_SAVEINDIVIDUAL 0 ; 91 staticchar* ARG_OUTPUTFILE NULL; 92 93 staticintARG_BQRATIO 150 ; 94 staticintARG_BQOFFSET 100 ; 95 staticintARG_MAXBFRAMES 0 ; 96 staticintARG_PACKED 0 ; 97 98 staticintARG_VOPDEBUG 0 ; 99 staticintARG_GMC 0 ; 100 staticintARG_INTERLACING 0 ; 101 staticintARG_QPEL 0 ; 102 staticintARG_CLOSED_GOP 0 ; 103 104  #ifndef READ_PNM 105 #defineIMAGE_SIZE(x,y) ((x)*(y)*3/2)106 #else107 #defineIMAGE_SIZE(x,y) ((x)*(y)*3)108 #endif109 110 #defineMAX(A,B) ( ((A)(B)) ? (A) : (B) )111 #defineSMALL_EPS (1e-10)112 113 #defineSWAP(a) ( (((a)0x000000ff)24) | (((a)0x0000ff00)8) | \114  (((a)0x00ff0000 )8 )   |(((a)0xff000000 )24 ) ) 115 116 117 //118 119 120 voidXvid_Encoder::Close(){ 121 intxerr;     122 NVMutexLock  lock (_lock); 123 124 _closed true ; 125 /*Destroy the encoder instance  */126 xerr xvid_encore(_enc_handle, XVID_ENC_DESTROY, NULL, NULL);     127 128  } 129 130 voidXvid_Encoder::xvid_global_init(){ 131 /* ------------------------------------------------------------------------ 132 * XviD core initialization 133 *---------------------------------------------------------------------- */134 xvid_gbl_init_t xvid_gbl_init; 135 memset(xvid_gbl_init,  0 ,  sizeof (xvid_gbl_init)); 136 xvid_gbl_init.version XVID_VERSION; 137 xvid_gbl_init.cpu_flags XVID_CPU_FORCE; 138 /*Initialize XviD core -- Should be done once per __process__  */139 xvid_global(NULL, XVID_GBL_INIT, xvid_gbl_init, NULL); 140  } 141 142 boolXvid_Encoder::Open(){ 143 intxerr;         144 xvid_enc_create_t xvid_enc_create; 145 _closed false ; 146 /* ------------------------------------------------------------------------ 147 * XviD encoder initialization 148 *---------------------------------------------------------------------- */149 memset(xvid_enc_create,  0 ,  sizeof (xvid_enc_create)); 150 xvid_enc_create.version XVID_VERSION; 151 152 /*Width and Height of input frames  */153 xvid_enc_create.width GetEncodeInfo().width; 154 xvid_enc_create.height GetEncodeInfo().height; 155 xvid_enc_create.profile XVID_PROFILE_AS_L4; 156 157 /*init plugins   */158 /*159 xvid_enc_create.zones  ZONES; 160 xvid_enc_create.num_zones  NUM_ZONES; 161 162 xvid_enc_create.plugins  plugins; 163 xvid_enc_create.num_plugins  0; 164 */165 166 167 /*No fancy thread tests  */168 xvid_enc_create.num_threads 0 ; 169 170 /*Frame rate - Do some quick float fps  fincr/fbase hack  */171 xvid_enc_create.fincr 1 ; 172 xvid_enc_create.fbase ( int )  10 ; 173 /*Maximum key frame interval  */174 xvid_enc_create.max_key_interval ( int ) - 1 ;     // --default 10s175 /*Bframes settings  */176 xvid_enc_create.max_bframes ARG_MAXBFRAMES; 177 xvid_enc_create.bquant_ratio ARG_BQRATIO; 178 xvid_enc_create.bquant_offset ARG_BQOFFSET; 179 180 /*Dropping ratio frame -- we dont need that  */181 xvid_enc_create.frame_drop_ratio 0 ; 182 /*Global encoder options  */183 xvid_enc_create.global 0 ; 184 185 if(ARG_PACKED) 186 xvid_enc_create.global  |XVID_GLOBAL_PACKED; 187 188 if(ARG_CLOSED_GOP) 189 xvid_enc_create.global  |XVID_GLOBAL_CLOSED_GOP; 190 191 if(ARG_STATS) 192 xvid_enc_create.global  |XVID_GLOBAL_EXTRASTATS_ENABLE; 193 194 /*I use a small value here, since will not encode whole movies, but short clips  */195 xerr xvid_encore(NULL, XVID_ENC_CREATE, xvid_enc_create, NULL); 196 _enc_handle xvid_enc_create.handle; 197 returntrue ; 198  } 199 200 voidXvid_Encoder::encode( void*data,unsigned  intsize){ 201 intret;     202 _lock.Lock(); 203 if ( _closed ){ 204 _lock.Unlock(); 205 return ; 206 } 207 ret xvid_enc((unsigned  char * )data,(unsigned  char* )_bitstream);         208 _lock.Unlock(); 209 if(ret 0 ) 210 _enc_info.after_encode(_bitstream,(unsigned  int )ret,_enc_info.user); 211 212  } 213 214 /*215  raw xvid_encode procedure 216 */217 intXvid_Encoder::xvid_enc(unsigned  char* image,unsigned  char* bitstream) 218  { 219 intret;     220 xvid_enc_frame_t xvid_enc_frame; 221 xvid_enc_stats_t xvid_enc_stats; 222 223 /*Version for the frame and the stats  */224 memset(xvid_enc_frame,  0 ,  sizeof (xvid_enc_frame)); 225 xvid_enc_frame.version XVID_VERSION; 226 227 memset(xvid_enc_stats,  0 ,  sizeof (xvid_enc_stats)); 228 xvid_enc_stats.version XVID_VERSION; 229 230 /*Bind output buffer  */231 xvid_enc_frame.bitstream bitstream; 232 xvid_enc_frame.length - 1 ; 233 234 /*Initialize input image fields  */235 xvid_enc_frame.input.plane[ 0 ] image; 236 xvid_enc_frame.input.csp XVID_CSP_BGR; 237 xvid_enc_frame.input.stride[ 0 ] _enc_info.width * 3 ; 238 239 240 /*Set up cores general features  */241 xvid_enc_frame.vol_flags 0 ; 242 243 /*Set up cores general features  */244 xvid_enc_frame.vop_flags vop_presets[ARG_QUALITY - 2 ]; 245 246 /*Frame type -- let core decide for us  */247 xvid_enc_frame.type XVID_TYPE_AUTO; 248 249 /*Force the right quantizer -- It is internally managed by RC plugins  */250 xvid_enc_frame.quant 0 ; 251 252 /*Set up motion estimation flags  */253 xvid_enc_frame.motion motion_presets[ARG_QUALITY - 2 ]; 254 255 /*We dont use special matrices  */256 xvid_enc_frame.quant_intra_matrix NULL; 257 xvid_enc_frame.quant_inter_matrix NULL; 258 259 /*Encode the frame  */260 ret xvid_encore(_enc_handle, XVID_ENC_ENCODE, xvid_enc_frame,NULL); 261 //xvid_enc_stats); 262 // --判别是否是关键帧 263 // *key  (xvid_enc_frame.out_flags  XVID_KEYFRAME); 264 // *stats_type  xvid_enc_stats.type; 265 // *stats_quant  xvid_enc_stats.quant; 266 // *stats_length  xvid_enc_stats.length; 267 // sse[0]  xvid_enc_stats.sse_y; 268 // sse[1]  xvid_enc_stats.sse_u; 269 // sse[2]  xvid_enc_stats.sse_v;270 271 return(ret); 272  } 273 274 275
http://www.huolong8.cn/news/132532/

相关文章:

  • 哪里有网站开发服务创建全国文明城市调查问卷
  • 洋桥网站建设公司百度识图查另一半情头网页版
  • 赤峰做网站建设的企业网络营销网站建设
  • 手机网站开发总结黑龙江网站建设工作室
  • 做优惠券网站需要淘宝哪些接口做网站seo的步骤
  • 做网站推广维护需要学些什么如何进行百度推广
  • 装修公司的网站怎么将网站做成html
  • 交易网站建设具体方案财政局网站建设方案
  • 做个人网站需要多少钱专业制作门牌
  • 北京高端网站建设咸阳公司网络营销推广方案设计
  • 做seo怎么设计网站用php做的企业网站作业
  • 手机网站前端用什么做网站服务商查询
  • 贵阳高端网站设计公司seo 关键词优化
  • 人才市场官方网站杭州手机模板建站
  • 中航长江建设工程有限公司网站如何用 ftp上传网站
  • 网站内容的特点医疗器械公司网站建设
  • 图片设计网站免费东莞技术支持 骏域网站建设
  • 中国平湖首页规划建设局网站软件外包接单
  • 触屏版手机网站做装饰公司网站6
  • 高端 旅游 网站建设买权重网站
  • 无锡集团网站建设公司网站开发的调研
  • 吉林省电力建设总公司网站引导式网站
  • 四平网站建设网站后台管理默认密码
  • 广州网站开发水平广州亦客网络服务器上的wordpress
  • 音乐网站建设论文的立题意义wordpress 移动端 搜索
  • 网站服务商是什么贵阳网站设计zu97
  • 八方资源网做网站优化怎么样网页制作的基础知识
  • 做网站互联网公司排名网站开发文案模板
  • 山东工程网站建设网站建设数据库搭建
  • 网站的开发建设要做什么背景色搭配网站