[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.59, Wed Dec 17 15:16:16 2003 UTC revision 1.95.2.64, Mon Feb 16 03:40:47 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 1121  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 1156  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 1268  Line 1271 
1271                  pEnc->iFrameNum = 1;                  pEnc->iFrameNum = 1;
1272    
1273                  /* ---- update vol flags at IVOP ----------- */                  /* ---- update vol flags at IVOP ----------- */
1274                  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 1437  Line 1440 
1440                  start_timer();                  start_timer();
1441                  image_setedges(&pEnc->current->image,                  image_setedges(&pEnc->current->image,
1442                          pEnc->mbParam.edged_width, pEnc->mbParam.edged_height,                          pEnc->mbParam.edged_width, pEnc->mbParam.edged_height,
1443                          pEnc->mbParam.width, pEnc->mbParam.height);                          pEnc->mbParam.width, pEnc->mbParam.height, 0);
1444                  stop_edges_timer();                  stop_edges_timer();
1445          }          }
1446    
# Line 1449  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 1548  Line 1551 
1551          if (!reference->is_edged) {          if (!reference->is_edged) {
1552                  start_timer();                  start_timer();
1553                  image_setedges(pRef, pParam->edged_width, pParam->edged_height,                  image_setedges(pRef, pParam->edged_width, pParam->edged_height,
1554                                             pParam->width, pParam->height);                                             pParam->width, pParam->height, 0);
1555                  stop_edges_timer();                  stop_edges_timer();
1556                  reference->is_edged = 1;                  reference->is_edged = 1;
1557          }          }
# Line 1644  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    
# Line 1946  Line 1949 
1949          if (!pEnc->reference->is_edged) {          if (!pEnc->reference->is_edged) {
1950                  image_setedges(f_ref, pEnc->mbParam.edged_width,                  image_setedges(f_ref, pEnc->mbParam.edged_width,
1951                                             pEnc->mbParam.edged_height, pEnc->mbParam.width,                                             pEnc->mbParam.edged_height, pEnc->mbParam.width,
1952                                             pEnc->mbParam.height);                                             pEnc->mbParam.height, 0);
1953                  pEnc->current->is_edged = 1;                  pEnc->current->is_edged = 1;
1954          }          }
1955    
# Line 1963  Line 1966 
1966          if (!pEnc->current->is_edged) {          if (!pEnc->current->is_edged) {
1967                  image_setedges(b_ref, pEnc->mbParam.edged_width,                  image_setedges(b_ref, pEnc->mbParam.edged_width,
1968                                             pEnc->mbParam.edged_height, pEnc->mbParam.width,                                             pEnc->mbParam.edged_height, pEnc->mbParam.width,
1969                                             pEnc->mbParam.height);                                             pEnc->mbParam.height, 0);
1970                  pEnc->current->is_edged = 1;                  pEnc->current->is_edged = 1;
1971          }          }
1972    

Legend:
Removed from v.1.95.2.59  
changed lines
  Added in v.1.95.2.64

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