[cvs] / xvidcore / src / encoder.c Repository:
ViewVC logotype

Diff of /xvidcore/src/encoder.c

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

revision 1.95.2.58, Fri Dec 12 14:16:40 2003 UTC revision 1.95.2.63, Fri Jan 30 18:53:50 2004 UTC
# Line 652  Line 652 
652                  data.max_quant[i] = pEnc->mbParam.max_quant[i];                  data.max_quant[i] = pEnc->mbParam.max_quant[i];
653          }          }
654    
655          data.reference.csp = XVID_CSP_USER;          data.reference.csp = XVID_CSP_PLANAR;
656          data.reference.plane[0] = pEnc->reference->image.y;          data.reference.plane[0] = pEnc->reference->image.y;
657          data.reference.plane[1] = pEnc->reference->image.u;          data.reference.plane[1] = pEnc->reference->image.u;
658          data.reference.plane[2] = pEnc->reference->image.v;          data.reference.plane[2] = pEnc->reference->image.v;
# Line 660  Line 660 
660          data.reference.stride[1] = pEnc->mbParam.edged_width/2;          data.reference.stride[1] = pEnc->mbParam.edged_width/2;
661          data.reference.stride[2] = pEnc->mbParam.edged_width/2;          data.reference.stride[2] = pEnc->mbParam.edged_width/2;
662    
663          data.current.csp = XVID_CSP_USER;          data.current.csp = XVID_CSP_PLANAR;
664          data.current.plane[0] = frame->image.y;          data.current.plane[0] = frame->image.y;
665          data.current.plane[1] = frame->image.u;          data.current.plane[1] = frame->image.u;
666          data.current.plane[2] = frame->image.v;          data.current.plane[2] = frame->image.v;
# Line 690  Line 690 
690    
691          } else { /* XVID_PLG_AFTER */          } else { /* XVID_PLG_AFTER */
692                  if ((pEnc->mbParam.plugin_flags & XVID_REQORIGINAL)) {                  if ((pEnc->mbParam.plugin_flags & XVID_REQORIGINAL)) {
693                          data.original.csp = XVID_CSP_USER;                          data.original.csp = XVID_CSP_PLANAR;
694                          data.original.plane[0] = original->y;                          data.original.plane[0] = original->y;
695                          data.original.plane[1] = original->u;                          data.original.plane[1] = original->u;
696                          data.original.plane[2] = original->v;                          data.original.plane[2] = original->v;
# Line 740  Line 740 
740                  data.mblks = frame->sStat.mblks;                  data.mblks = frame->sStat.mblks;
741                  data.ublks = frame->sStat.ublks;                  data.ublks = frame->sStat.ublks;
742    
743                  if (stats) {                  /* New code */
744                          stats->type = coding2type(frame->coding_type);                  data.stats.type      = coding2type(frame->coding_type);
745                          stats->quant = frame->quant;                  data.stats.quant     = frame->quant;
746                          stats->vol_flags = frame->vol_flags;                  data.stats.vol_flags = frame->vol_flags;
747                          stats->vop_flags = frame->vop_flags;                  data.stats.vop_flags = frame->vop_flags;
748                          stats->length = frame->length;                  data.stats.length    = frame->length;
749                          stats->hlength = frame->length - (frame->sStat.iTextBits / 8);                  data.stats.hlength   = frame->length - (frame->sStat.iTextBits / 8);
750                          stats->kblks = frame->sStat.kblks;                  data.stats.kblks     = frame->sStat.kblks;
751                          stats->mblks = frame->sStat.mblks;                  data.stats.mblks     = frame->sStat.mblks;
752                          stats->ublks = frame->sStat.ublks;                  data.stats.ublks     = frame->sStat.ublks;
753                          stats->sse_y = data.sse_y;                  data.stats.sse_y     = data.sse_y;
754                          stats->sse_u = data.sse_u;                  data.stats.sse_u     = data.sse_u;
755                          stats->sse_v = data.sse_v;                  data.stats.sse_v     = data.sse_v;
756                  }  
757                    if (stats)
758                            *stats = data.stats;
759          }          }
760    
761          /* call plugins */          /* call plugins */
# Line 1119  Line 1121 
1121    
1122          pEnc->current->fincr = pEnc->mbParam.fincr>0 ? pEnc->mbParam.fincr : frame->fincr;          pEnc->current->fincr = pEnc->mbParam.fincr>0 ? pEnc->mbParam.fincr : frame->fincr;
1123          inc_frame_num(pEnc);          inc_frame_num(pEnc);
1124          pEnc->current->vol_flags = pEnc->mbParam.vol_flags;          pEnc->current->vol_flags = frame->vol_flags;
1125          pEnc->current->vop_flags = frame->vop_flags;          pEnc->current->vop_flags = frame->vop_flags;
1126          pEnc->current->motion_flags = frame->motion;          pEnc->current->motion_flags = frame->motion;
1127          pEnc->current->fcode = pEnc->mbParam.m_fcode;          pEnc->current->fcode = pEnc->mbParam.m_fcode;
# Line 1154  Line 1156 
1156                  }                  }
1157          }          }
1158    
1159            if (type != I_VOP)
1160                    pEnc->current->vol_flags = pEnc->mbParam.vol_flags; /* don't allow VOL changes here */
1161    
1162          /* bframes buffer overflow check */          /* bframes buffer overflow check */
1163          if (type == B_VOP && pEnc->bframenum_tail >= pEnc->mbParam.max_bframes) {          if (type == B_VOP && pEnc->bframenum_tail >= pEnc->mbParam.max_bframes) {
1164                  type = P_VOP;                  type = P_VOP;
# Line 1266  Line 1271 
1271                  pEnc->iFrameNum = 1;                  pEnc->iFrameNum = 1;
1272    
1273                  /* ---- update vol flags at IVOP ----------- */                  /* ---- update vol flags at IVOP ----------- */
1274                  pEnc->current->vol_flags = pEnc->mbParam.vol_flags = frame->vol_flags;                  pEnc->mbParam.vol_flags = pEnc->current->vol_flags;
1275    
1276                  /* Aspect ratio */                  /* Aspect ratio */
1277                  switch(frame->par) {                  switch(frame->par) {
# Line 1447  Line 1452 
1452    
1453          SetMacroblockQuants(&pEnc->mbParam, pEnc->current);          SetMacroblockQuants(&pEnc->mbParam, pEnc->current);
1454    
1455          BitstreamWriteVolHeader(bs, &pEnc->mbParam);          BitstreamWriteVolHeader(bs, &pEnc->mbParam, pEnc->current);
1456    
1457          set_timecodes(pEnc->current,pEnc->reference,pEnc->mbParam.fbase);          set_timecodes(pEnc->current,pEnc->reference,pEnc->mbParam.fbase);
1458    
# Line 1642  Line 1647 
1647    
1648          set_timecodes(current,reference,pParam->fbase);          set_timecodes(current,reference,pParam->fbase);
1649          if (vol_header)          if (vol_header)
1650          {       BitstreamWriteVolHeader(bs, &pEnc->mbParam);          {       BitstreamWriteVolHeader(bs, &pEnc->mbParam, current);
1651                  BitstreamPad(bs);                  BitstreamPad(bs);
1652          }          }
1653    

Legend:
Removed from v.1.95.2.58  
changed lines
  Added in v.1.95.2.63

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