comparison mencoder.c @ 3504:21fc87d76300

support for RGB/BGR modes (tested with raw and divx4)
author alex
date Sat, 15 Dec 2001 17:12:20 +0000
parents 9943dbacb48e
children 48f3b07e174f
comparison
equal deleted inserted replaced
3503:7aed2edd99ab 3504:21fc87d76300
1 #define VCODEC_COPY 0 1 #define VCODEC_COPY 0
2 #define VCODEC_FRAMENO 1 2 #define VCODEC_FRAMENO 1
3 #define VCODEC_DIVX4 2 3 #define VCODEC_DIVX4 2
4 #define VCODEC_RAW 3 4 #define VCODEC_RAW 3
5 #define VCODEC_LIBAVCODEC 4
5 6
6 #define ACODEC_COPY 0 7 #define ACODEC_COPY 0
7 #define ACODEC_PCM 1 8 #define ACODEC_PCM 1
8 #define ACODEC_VBRMP3 2 9 #define ACODEC_VBRMP3 2
9 10
400 mp_msg(MSGT_MENCODER,MSGL_INFO,"%s video codec: [%s] drv:%d (%s)\n",video_codec?"Forcing":"Detected",sh_video->codec->name,sh_video->codec->driver,sh_video->codec->info); 401 mp_msg(MSGT_MENCODER,MSGL_INFO,"%s video codec: [%s] drv:%d (%s)\n",video_codec?"Forcing":"Detected",sh_video->codec->name,sh_video->codec->driver,sh_video->codec->info);
401 402
402 for(i=0;i<CODECS_MAX_OUTFMT;i++){ 403 for(i=0;i<CODECS_MAX_OUTFMT;i++){
403 out_fmt=sh_video->codec->outfmt[i]; 404 out_fmt=sh_video->codec->outfmt[i];
404 if(out_fmt==0xFFFFFFFF) continue; 405 if(out_fmt==0xFFFFFFFF) continue;
406 if(IMGFMT_IS_RGB(out_fmt) || IMGFMT_IS_BGR(out_fmt)) break;
405 if(out_fmt==IMGFMT_YV12) break; 407 if(out_fmt==IMGFMT_YV12) break;
406 if(out_fmt==IMGFMT_I420) break; 408 if(out_fmt==IMGFMT_I420) break;
407 if(out_fmt==IMGFMT_IYUV) break; 409 if(out_fmt==IMGFMT_IYUV) break;
408 if(out_fmt==IMGFMT_YUY2) break; 410 if(out_fmt==IMGFMT_YUY2) break;
409 if(out_fmt==IMGFMT_UYVY) break; 411 if(out_fmt==IMGFMT_UYVY) break;
429 431
430 if(out_fmt==IMGFMT_YV12 || out_fmt==IMGFMT_I420 || out_fmt==IMGFMT_IYUV){ 432 if(out_fmt==IMGFMT_YV12 || out_fmt==IMGFMT_I420 || out_fmt==IMGFMT_IYUV){
431 vo_image=malloc(vo_w*vo_h*3/2); 433 vo_image=malloc(vo_w*vo_h*3/2);
432 vo_image_ptr=vo_image; 434 vo_image_ptr=vo_image;
433 } 435 }
436
437 if (IMGFMT_IS_BGR(out_fmt))
438 vo_image_ptr = vo_image = malloc(vo_w*vo_h*IMGFMT_BGR_DEPTH(out_fmt)/8);
439
440 if (IMGFMT_IS_RGB(out_fmt))
441 vo_image_ptr = vo_image = malloc(vo_w*vo_h*IMGFMT_RGB_DEPTH(out_fmt)/8);
434 442
435 if(!init_video(sh_video)){ 443 if(!init_video(sh_video)){
436 mp_msg(MSGT_MENCODER,MSGL_FATAL,MSGTR_CouldntInitVideoCodec); 444 mp_msg(MSGT_MENCODER,MSGL_FATAL,MSGTR_CouldntInitVideoCodec);
437 exit(1); 445 exit(1);
438 } 446 }