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

Diff of /xvidcore/src/image/image.c

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

revision 1.20.2.11, Sat Dec 14 06:07:03 2002 UTC revision 1.20.2.13, Sun Dec 29 06:48:25 2002 UTC
# Line 677  Line 677 
677    
678          case XVID_CSP_I420:          case XVID_CSP_I420:
679                  yv12_to_yv12(image->y, image->u, image->v, edged_width, edged_width2,                  yv12_to_yv12(image->y, image->u, image->v, edged_width, edged_width2,
680                          src, src + width*height, src + width*height + width2*height2,                          src, src + src_stride*height, src + src_stride*height + (src_stride/2)*height2,
681                          width, width2, width, height, (csp & XVID_CSP_VFLIP));                          src_stride, src_stride/2, width, height, (csp & XVID_CSP_VFLIP));
682                  break                  break
683                          ;                          ;
684          case XVID_CSP_YV12:             /* u/v swapped */          case XVID_CSP_YV12:             /* u/v swapped */
685                  yv12_to_yv12(image->y, image->v, image->u, edged_width, edged_width2,                  yv12_to_yv12(image->y, image->v, image->u, edged_width, edged_width2,
686                          src, src + width*height, src + width*height + width2*height2,                          src, src + src_stride*height, src + src_stride*height + (src_stride/2)*height2,
687                          width, width2, width, height, (csp & XVID_CSP_VFLIP));                          src_stride, src_stride/2, width, height, (csp & XVID_CSP_VFLIP));
688                  break;                  break;
689    
690          case XVID_CSP_USER:          case XVID_CSP_USER:
# Line 765  Line 765 
765                           int interlacing)                           int interlacing)
766  {  {
767          const int edged_width2 = edged_width/2;          const int edged_width2 = edged_width/2;
         int width2 = width/2;  
768          int height2 = height/2;          int height2 = height/2;
769    
770  /*  /*
# Line 874  Line 873 
873                  return 0;                  return 0;
874    
875          case XVID_CSP_I420:          case XVID_CSP_I420:
876                  yv12_to_yv12(dst, dst + width*height, dst + width*height + width2*height2,                  yv12_to_yv12(dst, dst + dst_stride*height, dst + dst_stride*height + (dst_stride/2)*height2,
877                          width, width2,                          dst_stride, dst_stride/2,
878                          image->y, image->u, image->v, edged_width, edged_width2,                          image->y, image->u, image->v, edged_width, edged_width2,
879                          width, height, (csp & XVID_CSP_VFLIP));                          width, height, (csp & XVID_CSP_VFLIP));
880                  return 0;                  return 0;
881    
882          case XVID_CSP_YV12:             // u,v swapped          case XVID_CSP_YV12:             // u,v swapped
883                  yv12_to_yv12(dst, dst + width*height, dst + width*height + width2*height2,                  yv12_to_yv12(dst, dst + dst_stride*height, dst + dst_stride*height + (dst_stride/2)*height2,
884                          width, width2,                          dst_stride, dst_stride/2,
885                          image->y, image->v, image->u, edged_width, edged_width2,                          image->y, image->v, image->u, edged_width, edged_width2,
886                          width, height, (csp & XVID_CSP_VFLIP));                          width, height, (csp & XVID_CSP_VFLIP));
887                  return 0;                  return 0;
# Line 1149  Line 1148 
1148                          if (mbs[(j-1)/2*mb_stride + (i/2)].mode != MODE_NOT_CODED ||                          if (mbs[(j-1)/2*mb_stride + (i/2)].mode != MODE_NOT_CODED ||
1149                                  mbs[(j+0)/2*mb_stride + (i/2)].mode != MODE_NOT_CODED)                                  mbs[(j+0)/2*mb_stride + (i/2)].mode != MODE_NOT_CODED)
1150                          {                          {
1151                                  xvid_HFilter_31_C(img->y + (j*block - 1)*edged_width + i*block,                                  hfilter_31(img->y + (j*block - 1)*edged_width + i*block,
1152                                                                    img->y + (j*block + 0)*edged_width + i*block, nblocks);                                                                    img->y + (j*block + 0)*edged_width + i*block, nblocks);
1153                          }                          }
1154                  }                  }
# Line 1171  Line 1170 
1170          /* chroma */          /* chroma */
1171          if ((flags & XVID_DEC_DEBLOCKUV))          if ((flags & XVID_DEC_DEBLOCKUV))
1172          {          {
1173                  for (j = 0; j < mb_height; j++)                 /* horizontal deblocking */                  for (j = 1; j < mb_height; j++)         /* horizontal deblocking */
1174                    for (i = 0; i < mb_width; i++)
1175                    {
1176                            if (mbs[(j-1)*mb_stride + i].mode != MODE_NOT_CODED ||
1177                                    mbs[(j+0)*mb_stride + i].mode != MODE_NOT_CODED)
1178                            {
1179                                    hfilter_31(img->u + (j*block - 1)*edged_width2 + i*block,
1180                                                       img->u + (j*block + 0)*edged_width2 + i*block, nblocks);
1181                                    hfilter_31(img->v + (j*block - 1)*edged_width2 + i*block,
1182                                                       img->v + (j*block + 0)*edged_width2 + i*block, nblocks);
1183                            }
1184                    }
1185    
1186                    for (j = 0; j < mb_height; j++)         /* vertical deblocking */
1187                  for (i = 1; i < mb_width; i++)                  for (i = 1; i < mb_width; i++)
1188                  {                  {
1189                          if (mbs[j*mb_stride + i - 1].mode != MODE_NOT_CODED ||                          if (mbs[j*mb_stride + i - 1].mode != MODE_NOT_CODED ||
# Line 1185  Line 1197 
1197                                                     edged_width2, nblocks);                                                     edged_width2, nblocks);
1198                          }                          }
1199                  }                  }
   
                 for (j = 1; j < mb_height; j++)         /* vertical deblocking */  
                 for (i = 0; i < mb_width; i++)  
                 {  
                         if (mbs[(j-1)*mb_stride + i].mode != MODE_NOT_CODED ||  
                                 mbs[(j+0)*mb_stride + i].mode != MODE_NOT_CODED)  
                         {  
                                 hfilter_31(img->u + (j*block - 1)*edged_width2 + i*block,  
                                                    img->u + (j*block + 0)*edged_width2 + i*block, nblocks);  
                                 hfilter_31(img->v + (j*block - 1)*edged_width2 + i*block,  
                                                    img->v + (j*block + 0)*edged_width2 + i*block, nblocks);  
                         }  
                 }  
1200          }          }
1201    
1202  }  }

Legend:
Removed from v.1.20.2.11  
changed lines
  Added in v.1.20.2.13

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