[svn] / trunk / xvidcore / vfw / src / codec.c Repository:
ViewVC logotype

Diff of /trunk/xvidcore/vfw/src/codec.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1607, Sun Mar 27 03:59:42 2005 UTC revision 1649, Sun Oct 16 00:00:04 2005 UTC
# Line 423  Line 423 
423          xvid_plugin_2pass2_t pass2;          xvid_plugin_2pass2_t pass2;
424          int i;          int i;
425          HANDLE hFile;          HANDLE hFile;
426      const quality_t* quality_preset = (codec->config.quality==quality_table_num) ?
427        &codec->config.quality_user : &quality_table[codec->config.quality];
428    
429          CONFIG tmpCfg; /* if we want to alter config to suit our needs, it shouldn't be visible to user later */          CONFIG tmpCfg; /* if we want to alter config to suit our needs, it shouldn't be visible to user later */
430          memcpy(&tmpCfg, &codec->config, sizeof(CONFIG));          memcpy(&tmpCfg, &codec->config, sizeof(CONFIG));
# Line 556  Line 558 
558          create.fincr = codec->fincr;          create.fincr = codec->fincr;
559          create.fbase = codec->fbase;          create.fbase = codec->fbase;
560    
561          create.max_key_interval = codec->config.max_key_interval;          create.max_key_interval = quality_preset->max_key_interval;
562    
563          create.min_quant[0] = codec->config.min_iquant;          create.min_quant[0] = quality_preset->min_iquant;
564          create.max_quant[0] = codec->config.max_iquant;          create.max_quant[0] = quality_preset->max_iquant;
565          create.min_quant[1] = codec->config.min_pquant;          create.min_quant[1] = quality_preset->min_pquant;
566          create.max_quant[1] = codec->config.max_pquant;          create.max_quant[1] = quality_preset->max_pquant;
567          create.min_quant[2] = codec->config.min_bquant;          create.min_quant[2] = quality_preset->min_bquant;
568          create.max_quant[2] = codec->config.max_bquant;          create.max_quant[2] = quality_preset->max_bquant;
569    
570          if ((profiles[codec->config.profile].flags & PROFILE_BVOP) && codec->config.use_bvop) {          if ((profiles[codec->config.profile].flags & PROFILE_BVOP) && codec->config.use_bvop) {
571    
# Line 593  Line 595 
595    if ((profiles[codec->config.profile].flags & PROFILE_DXN))    if ((profiles[codec->config.profile].flags & PROFILE_DXN))
596      create.global |= XVID_GLOBAL_DIVX5_USERDATA;      create.global |= XVID_GLOBAL_DIVX5_USERDATA;
597    
598          create.frame_drop_ratio = codec->config.frame_drop_ratio;          create.frame_drop_ratio = quality_preset->frame_drop_ratio;
599    
600          create.num_threads = codec->config.num_threads;          create.num_threads = codec->config.num_threads;
601    
# Line 681  Line 683 
683          xvid_enc_frame_t frame;          xvid_enc_frame_t frame;
684          xvid_enc_stats_t stats;          xvid_enc_stats_t stats;
685          int length;          int length;
686      const quality_t* quality_preset = (codec->config.quality==quality_table_num) ?
687        &codec->config.quality_user : &quality_table[codec->config.quality];
688    
689          memset(&frame, 0, sizeof(frame));          memset(&frame, 0, sizeof(frame));
690          frame.version = XVID_VERSION;          frame.version = XVID_VERSION;
# Line 746  Line 750 
750          if (codec->config.vop_debug)          if (codec->config.vop_debug)
751                  frame.vop_flags |= XVID_VOP_DEBUG;                  frame.vop_flags |= XVID_VOP_DEBUG;
752    
753          if (codec->config.trellis_quant) {          if (quality_preset->trellis_quant) {
754                  frame.vop_flags |= XVID_VOP_TRELLISQUANT;                  frame.vop_flags |= XVID_VOP_TRELLISQUANT;
755          }          }
756    
757    if ((profiles[codec->config.profile].flags & PROFILE_4MV)) {    if ((profiles[codec->config.profile].flags & PROFILE_4MV)) {
758            if (codec->config.motion_search > 4)            if (quality_preset->motion_search > 4)
759                    frame.vop_flags |= XVID_VOP_INTER4V;                    frame.vop_flags |= XVID_VOP_INTER4V;
760    }    }
761    
762          if (codec->config.chromame)          if (quality_preset->chromame)
763                  frame.motion |= XVID_ME_CHROMA_PVOP + XVID_ME_CHROMA_BVOP;                  frame.motion |= XVID_ME_CHROMA_PVOP + XVID_ME_CHROMA_BVOP;
764    
765          if (codec->config.turbo)          if (quality_preset->turbo)
766                  frame.motion |= XVID_ME_FASTREFINE16 | XVID_ME_FASTREFINE8 |                  frame.motion |= XVID_ME_FASTREFINE16 | XVID_ME_FASTREFINE8 |
767                                                  XVID_ME_SKIP_DELTASEARCH | XVID_ME_FAST_MODEINTERPOLATE |                                                  XVID_ME_SKIP_DELTASEARCH | XVID_ME_FAST_MODEINTERPOLATE |
768                                                  XVID_ME_BFRAME_EARLYSTOP;                                                  XVID_ME_BFRAME_EARLYSTOP;
769    
770          frame.motion |= pmvfast_presets[codec->config.motion_search];          frame.motion |= pmvfast_presets[quality_preset->motion_search];
771    
772          if (codec->config.vhq_bframe) frame.vop_flags |= XVID_VOP_RD_BVOP;          if (quality_preset->vhq_bframe) frame.vop_flags |= XVID_VOP_RD_BVOP;
773    
774    
775          switch (codec->config.vhq_mode)          switch (quality_preset->vhq_mode)
776          {          {
777          case VHQ_MODE_DECISION :          case VHQ_MODE_DECISION :
778                  frame.vop_flags |= XVID_VOP_MODEDECISION_RD;                  frame.vop_flags |= XVID_VOP_MODEDECISION_RD;
# Line 826  Line 830 
830          }          }
831    
832          // force keyframe spacing in 2-pass 1st pass          // force keyframe spacing in 2-pass 1st pass
833          if (codec->config.motion_search == 0)          if (quality_preset->motion_search == 0)
834                  frame.type = XVID_TYPE_IVOP;                  frame.type = XVID_TYPE_IVOP;
835    
836          /* frame-based stuff */          /* frame-based stuff */

Legend:
Removed from v.1607  
changed lines
  Added in v.1649

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4