[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.19, Thu Nov 13 22:35:30 2003 UTC revision 1.49.2.20, Sun Nov 30 16:13:15 2003 UTC
# Line 41  Line 41 
41  #include "bitstream/mbcoding.h"  #include "bitstream/mbcoding.h"
42    
43  #include "quant/quant.h"  #include "quant/quant.h"
44    #include "quant/quant_matrix.h"
45  #include "dct/idct.h"  #include "dct/idct.h"
46  #include "dct/fdct.h"  #include "dct/fdct.h"
47  #include "utils/mem_transfer.h"  #include "utils/mem_transfer.h"
# Line 175  Line 176 
176          if (dec == NULL) {          if (dec == NULL) {
177                  return XVID_ERR_MEMORY;                  return XVID_ERR_MEMORY;
178          }          }
179    
180          memset(dec, 0, sizeof(DECODER));          memset(dec, 0, sizeof(DECODER));
181    
182            dec->mpeg_quant_matrices = xvid_malloc(sizeof(uint16_t) * 64 * 8, CACHE_LINE);
183            if (dec->mpeg_quant_matrices == NULL) {
184                    xvid_free(dec);
185                    return XVID_ERR_MEMORY;
186            }
187    
188          create->handle = dec;          create->handle = dec;
189    
190          dec->width = create->width;          dec->width = create->width;
# Line 196  Line 204 
204          dec->last_mbs = NULL;          dec->last_mbs = NULL;
205    
206          init_timer();          init_timer();
207            init_mpeg_matrix(dec->mpeg_quant_matrices);
208    
209          /* For B-frame support (used to save reference frame's time */          /* For B-frame support (used to save reference frame's time */
210          dec->frames = 0;          dec->frames = 0;
# Line 226  Line 235 
235          image_destroy(&dec->tmp, dec->edged_width, dec->edged_height);          image_destroy(&dec->tmp, dec->edged_width, dec->edged_height);
236          image_destroy(&dec->qtmp, dec->edged_width, dec->edged_height);          image_destroy(&dec->qtmp, dec->edged_width, dec->edged_height);
237          image_destroy(&dec->cur, dec->edged_width, dec->edged_height);          image_destroy(&dec->cur, dec->edged_width, dec->edged_height);
238            xvid_free(dec->mpeg_quant_matrices);
239          xvid_free(dec);          xvid_free(dec);
240    
241          write_timer();          write_timer();
# Line 321  Line 331 
331    
332                  start_timer();                  start_timer();
333                  if (dec->quant_type == 0) {                  if (dec->quant_type == 0) {
334                          dequant_h263_intra(&data[i * 64], &block[i * 64], iQuant, iDcScaler);                          dequant_h263_intra(&data[i * 64], &block[i * 64], iQuant, iDcScaler, dec->mpeg_quant_matrices);
335                  } else {                  } else {
336                          dequant_mpeg_intra(&data[i * 64], &block[i * 64], iQuant, iDcScaler);                          dequant_mpeg_intra(&data[i * 64], &block[i * 64], iQuant, iDcScaler, dec->mpeg_quant_matrices);
337                  }                  }
338                  stop_iquant_timer();                  stop_iquant_timer();
339    
# Line 392  Line 402 
402                          stop_coding_timer();                          stop_coding_timer();
403    
404                          start_timer();                          start_timer();
405                          dequant(&data[i * 64], block, iQuant);                          dequant(&data[i * 64], block, iQuant, dec->mpeg_quant_matrices);
406                          stop_iquant_timer();                          stop_iquant_timer();
407    
408                          start_timer();                          start_timer();

Legend:
Removed from v.1.49.2.19  
changed lines
  Added in v.1.49.2.20

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