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

Diff of /xvidcore/src/decoder.c

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

revision 1.49.2.5, Thu May 22 16:34:05 2003 UTC revision 1.49.2.8, Mon Jun 9 19:41:53 2003 UTC
# Line 3  Line 3 
3   *  XVID MPEG-4 VIDEO CODEC   *  XVID MPEG-4 VIDEO CODEC
4   *  - Decoder Module -   *  - Decoder Module -
5   *   *
6   *  This file is part of XviD, a free MPEG-4 video encoder/decoder   *  Copyright(C) 2002      MinChen <chenm001@163.com>
7     *               2002-2003 Peter Ross <pross@xvid.org>
8   *   *
9   *  This program is free software; you can redistribute it and/or modify   *  This program is free software; you can redistribute it and/or modify
10   *  it under the terms of the GNU General Public License as published by   *  it under the terms of the GNU General Public License as published by
# Line 1721  Line 1722 
1722          {          {
1723                  stats->type = coding2type(coding_type);                  stats->type = coding2type(coding_type);
1724                  stats->data.vop.time_base = (int)dec->time_base;                  stats->data.vop.time_base = (int)dec->time_base;
1725                  stats->data.vop.time_increment = 0;     //XXX: todo                  stats->data.vop.time_increment = 0;     /* XXX: todo */
1726          }          }
1727  }  }
1728    
# Line 1741  Line 1742 
1742          WARPPOINTS gmc_warp;          WARPPOINTS gmc_warp;
1743          int coding_type;          int coding_type;
1744          int success, output, seen_something;          int success, output, seen_something;
1745            idctFuncPtr idct_save;
1746    
1747          if (XVID_MAJOR(frame->version) != 1 || (stats && XVID_MAJOR(stats->version) != 1))      /* v1.x.x */          if (XVID_MAJOR(frame->version) != 1 || (stats && XVID_MAJOR(stats->version) != 1))      /* v1.x.x */
1748                  return XVID_ERR_VERSION;                  return XVID_ERR_VERSION;
# Line 1786  Line 1788 
1788          success = 0;          success = 0;
1789          output = 0;          output = 0;
1790          seen_something = 0;          seen_something = 0;
1791            idct_save = idct;
1792    
1793  repeat:  repeat:
1794    
# Line 1827  Line 1830 
1830    
1831          dec->p_bmv.x = dec->p_bmv.y = dec->p_fmv.y = dec->p_fmv.y = 0;  /* init pred vector to 0 */          dec->p_bmv.x = dec->p_bmv.y = dec->p_fmv.y = dec->p_fmv.y = 0;  /* init pred vector to 0 */
1832    
1833    #if defined(ARCH_IS_IA32)
1834            /*
1835             * /!\ Ugly hack /!\
1836             * IA32: Prior to xvid bitstream 10, we were using Walten's mmx/xmm idct
1837             */
1838            if((idct == simple_idct_mmx) && (dec->bs_version < 10))
1839                    idct = idct_mmx;
1840    #endif
1841    
1842          /* packed_mode: special-N_VOP treament */          /* packed_mode: special-N_VOP treament */
1843          if (dec->packed_mode && coding_type == N_VOP)          if (dec->packed_mode && coding_type == N_VOP)
# Line 1854  Line 1865 
1865                                                  fcode_forward, intra_dc_threshold, &gmc_warp);                                                  fcode_forward, intra_dc_threshold, &gmc_warp);
1866                          break;                          break;
1867                  case N_VOP :                  case N_VOP :
1868                          // XXX: not_coded vops are not used for forward prediction                          /* XXX: not_coded vops are not used for forward prediction */
1869                          //              we should not swap(last_mbs,mbs)                          /* we should not swap(last_mbs,mbs) */
1870                          image_copy(&dec->cur, &dec->refn[0], dec->edged_width, dec->height);                          image_copy(&dec->cur, &dec->refn[0], dec->edged_width, dec->height);
1871                          break;                          break;
1872                  }                  }
# Line 1956  Line 1967 
1967          emms();          emms();
1968          stop_global_timer();          stop_global_timer();
1969    
1970            idct = idct_save;
1971    
1972          return BitstreamPos(&bs) / 8;   /* number of bytes consumed */          return BitstreamPos(&bs) / 8;   /* number of bytes consumed */
1973  }  }

Legend:
Removed from v.1.49.2.5  
changed lines
  Added in v.1.49.2.8

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