comparison mencoder.c @ 3667:ec943f8ec439

add support for priotity <int> in codecs.conf, higher numbers are better
author atmos4
date Sun, 23 Dec 2001 11:58:57 +0000
parents 9092546e7765
children ed9404084ca7
comparison
equal deleted inserted replaced
3666:70c409621d92 3667:ec943f8ec439
409 409
410 sh_video->codec=NULL; 410 sh_video->codec=NULL;
411 if(out_video_codec>1){ 411 if(out_video_codec>1){
412 412
413 if(video_family!=-1) mp_msg(MSGT_MENCODER,MSGL_INFO,MSGTR_TryForceVideoFmt,video_family); 413 if(video_family!=-1) mp_msg(MSGT_MENCODER,MSGL_INFO,MSGTR_TryForceVideoFmt,video_family);
414 {
415 short bestprio=-1;
416 struct codecs_st *bestcodec=NULL;
414 while(1){ 417 while(1){
415 sh_video->codec=find_codec(sh_video->format, 418 sh_video->codec=find_codec(sh_video->format,
416 sh_video->bih?((unsigned int*) &sh_video->bih->biCompression):NULL,sh_video->codec,0); 419 sh_video->bih?((unsigned int*) &sh_video->bih->biCompression):NULL,sh_video->codec,0);
417 if(!sh_video->codec){ 420 if(!sh_video->codec){
418 if(video_family!=-1) { 421 if(video_family!=-1) {
425 mp_msg(MSGT_MENCODER,MSGL_HINT, MSGTR_TryUpgradeCodecsConfOrRTFM,get_path("codecs.conf")); 428 mp_msg(MSGT_MENCODER,MSGL_HINT, MSGTR_TryUpgradeCodecsConfOrRTFM,get_path("codecs.conf"));
426 exit(1); 429 exit(1);
427 } 430 }
428 if(video_codec && strcmp(sh_video->codec->name,video_codec)) continue; 431 if(video_codec && strcmp(sh_video->codec->name,video_codec)) continue;
429 else if(video_family!=-1 && sh_video->codec->driver!=video_family) continue; 432 else if(video_family!=-1 && sh_video->codec->driver!=video_family) continue;
433 else if(sh_video->codec && sh_video->codec->priority > bestprio) {
434 //printf("\n\n!!! setting bestprio from %d to %d for %s!!!\n\n", bestprio, sh_video->codec->priority, sh_video->codec->name);
435 bestprio=sh_video->codec->priority;
436 bestcodec=sh_video->codec;
437 continue;
438 }
430 break; 439 break;
431 } 440 }
432 441 if(bestprio!=-1) {
433 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); 442 //printf("chose codec %s by priority.\n", bestcodec->name);
443 sh_video->codec=bestcodec;
444 }
445
446 }
447
448 mp_msg(MSGT_MENCODER,MSGL_INFO,"%s video codec: [%s] drv:%d prio:%d (%s)\n",video_codec?"Forcing":"Detected",sh_video->codec->name,sh_video->codec->driver,sh_video->codec->priority!=-1?sh_video->codec->priority:0,sh_video->codec->info);
434 449
435 for(i=0;i<CODECS_MAX_OUTFMT;i++){ 450 for(i=0;i<CODECS_MAX_OUTFMT;i++){
436 out_fmt=sh_video->codec->outfmt[i]; 451 out_fmt=sh_video->codec->outfmt[i];
437 if(out_fmt==0xFFFFFFFF) continue; 452 if(out_fmt==0xFFFFFFFF) continue;
438 if(IMGFMT_IS_RGB(out_fmt) || IMGFMT_IS_BGR(out_fmt)) break; 453 if(IMGFMT_IS_RGB(out_fmt) || IMGFMT_IS_BGR(out_fmt)) break;