Mercurial > mplayer.hg
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; |