[svn] / branches / dev-api-4 / xvidcore / vfw / src / codec.c Repository:
ViewVC logotype

Diff of /branches/dev-api-4/xvidcore/vfw/src/codec.c

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

revision 1203, Tue Nov 11 16:25:39 2003 UTC revision 1267, Wed Dec 17 15:16:16 2003 UTC
# Line 285  Line 285 
285                           * builds and that activates lot of other debug printfs. We only                           * builds and that activates lot of other debug printfs. We only
286                           * want these all the time */                           * want these all the time */
287                          char buf[1024];                          char buf[1024];
288                          sprintf(buf, "[%5i]   type=%c   Q:%2i   length:%6i",                          sprintf(buf, "[%6i]   type=%c   Q:%2i   length:%6i",
289                                          data->frame_num,                                          data->frame_num,
290                                          type2char(data->type),                                          type2char(data->type),
291                                          data->quant,                                          data->quant,
# Line 384  Line 384 
384          pass2.max_overflow_improvement = codec->config.twopass_max_overflow_improvement;          pass2.max_overflow_improvement = codec->config.twopass_max_overflow_improvement;
385          pass2.max_overflow_degradation = codec->config.twopass_max_overflow_degradation;          pass2.max_overflow_degradation = codec->config.twopass_max_overflow_degradation;
386              pass2.kfreduction = codec->config.kfreduction;              pass2.kfreduction = codec->config.kfreduction;
387          pass2.min_key_interval = codec->config.min_key_interval;          pass2.kfthreshold = codec->config.kfthreshold;
388          pass2.container_frame_overhead = 24;    /* AVI */          pass2.container_frame_overhead = 24;    /* AVI */
389    
390          plugins[create.num_plugins].func = xvid_plugin_2pass2;          plugins[create.num_plugins].func = xvid_plugin_2pass2;
# Line 489  Line 489 
489      int i;      int i;
490    
491      for (i=0; i<config->num_zones && config->zones[i].frame <= framenum; i++) ;      for (i=0; i<config->num_zones && config->zones[i].frame <= framenum; i++) ;
     i--;  
492    
493        if (--i < 0) return; /* there are no zones, or we're before the first zone */
494    
495        if (framenum == config->zones[i].frame)
496      frame->type = config->zones[i].type;      frame->type = config->zones[i].type;
497    
498      if (config->zones[i].greyscale) {      if (config->zones[i].greyscale) {
# Line 555  Line 557 
557          if ((profiles[codec->config.profile].flags & PROFILE_INTERLACE) && codec->config.interlacing)          if ((profiles[codec->config.profile].flags & PROFILE_INTERLACE) && codec->config.interlacing)
558                  frame.vol_flags |= XVID_VOL_INTERLACING;                  frame.vol_flags |= XVID_VOL_INTERLACING;
559    
560            if (codec->config.display_aspect_ratio !=0) {
561                    int ar_x;
562                    int ar_y;
563    
564                    if (codec->config.display_aspect_ratio == 1) {
565                            ar_x = 4;
566                            ar_y = 3;
567                    }
568                    if (codec->config.display_aspect_ratio == 2) {
569                            ar_x = 16;
570                            ar_y = 9;
571                    }
572    
573                    /* custom pixel aspect ratio -> calculated from DAR */
574                    frame.par = XVID_PAR_EXT;
575                    frame.par_width = (100 * inhdr->biHeight) / ar_y;
576                    frame.par_height= (100 * inhdr->biWidth) / ar_x;
577            } else {
578                    /* assuming defaults for now... */
579                    frame.par = XVID_PAR_11_VGA;
580            }
581    
582      /* vop stuff */      /* vop stuff */
583    
584          frame.vop_flags |= XVID_VOP_HALFPEL;          frame.vop_flags |= XVID_VOP_HALFPEL;
# Line 637  Line 661 
661    
662          // force keyframe spacing in 2-pass 1st pass          // force keyframe spacing in 2-pass 1st pass
663          if (codec->config.motion_search == 0)          if (codec->config.motion_search == 0)
         {  
664                  frame.type = XVID_TYPE_IVOP;                  frame.type = XVID_TYPE_IVOP;
         }  
         else if (codec->keyspacing < codec->config.min_key_interval && codec->framenum)  
         {  
                 DPRINTF("current frame forced to p-frame");  
                 frame.type = XVID_TYPE_PVOP;  
         }  
665    
666      /* frame-based stuff */      /* frame-based stuff */
667      apply_zone_modifiers(&frame, &codec->config, codec->framenum);      apply_zone_modifiers(&frame, &codec->config, codec->framenum);

Legend:
Removed from v.1203  
changed lines
  Added in v.1267

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