comparison mpegvideo.c @ 803:08423289ec57 libavcodec

exporting the internal qscale table, this allso fixes the ordering
author michaelni
date Wed, 30 Oct 2002 20:41:40 +0000
parents d4cc92144266
children 79de6308c34d
comparison
equal deleted inserted replaced
802:99db75050d38 803:08423289ec57
418 s->dc_val[2] = s->dc_val[1] + c_size; 418 s->dc_val[2] = s->dc_val[1] + c_size;
419 for(i=0;i<yc_size;i++) 419 for(i=0;i<yc_size;i++)
420 s->dc_val[0][i] = 1024; 420 s->dc_val[0][i] = 1024;
421 } 421 }
422 422
423 CHECKED_ALLOCZ(s->qscale_table , s->mb_num * sizeof(UINT8)) 423 CHECKED_ALLOCZ(s->next_qscale_table , s->mb_num * sizeof(UINT8))
424 CHECKED_ALLOCZ(s->last_qscale_table , s->mb_num * sizeof(UINT8))
425 CHECKED_ALLOCZ(s->aux_qscale_table , s->mb_num * sizeof(UINT8))
426 s->qscale_table= s->next_qscale_table;
427 s->avctx->qstride= s->mb_width;
424 428
425 /* which mb is a intra block */ 429 /* which mb is a intra block */
426 CHECKED_ALLOCZ(s->mbintra_table, s->mb_num); 430 CHECKED_ALLOCZ(s->mbintra_table, s->mb_num);
427 memset(s->mbintra_table, 1, s->mb_num); 431 memset(s->mbintra_table, 1, s->mb_num);
428 432
467 av_freep(&s->ac_val[0]); 471 av_freep(&s->ac_val[0]);
468 av_freep(&s->coded_block); 472 av_freep(&s->coded_block);
469 av_freep(&s->mbintra_table); 473 av_freep(&s->mbintra_table);
470 av_freep(&s->cbp_table); 474 av_freep(&s->cbp_table);
471 av_freep(&s->pred_dir_table); 475 av_freep(&s->pred_dir_table);
472 av_freep(&s->qscale_table); 476 av_freep(&s->next_qscale_table);
477 av_freep(&s->last_qscale_table);
478 av_freep(&s->aux_qscale_table);
473 av_freep(&s->me_scratchpad); 479 av_freep(&s->me_scratchpad);
474 av_freep(&s->me_map); 480 av_freep(&s->me_map);
475 av_freep(&s->me_score_map); 481 av_freep(&s->me_score_map);
476 482
477 av_freep(&s->mbskip_table); 483 av_freep(&s->mbskip_table);
822 if(s->last_picture[i]==NULL) 828 if(s->last_picture[i]==NULL)
823 s->last_picture[i]= s->next_picture[i]; 829 s->last_picture[i]= s->next_picture[i];
824 830
825 s->current_picture[i] = s->aux_picture[i]; 831 s->current_picture[i] = s->aux_picture[i];
826 } 832 }
833 s->avctx->display_qscale_table=
834 s->avctx->current_qscale_table=
835 s->qscale_table= s->aux_qscale_table;
827 } else { 836 } else {
828 for(i=0;i<3;i++) { 837 for(i=0;i<3;i++) {
829 /* swap next and last */ 838 /* swap next and last */
830 if(avctx->flags&CODEC_FLAG_DR1) 839 if(avctx->flags&CODEC_FLAG_DR1)
831 tmp= avctx->dr_buffer[i]; 840 tmp= avctx->dr_buffer[i];
845 if(s->has_b_frames && s->last_dr_opaque && s->codec_id!=CODEC_ID_SVQ1) 854 if(s->has_b_frames && s->last_dr_opaque && s->codec_id!=CODEC_ID_SVQ1)
846 avctx->dr_opaque_frame= s->last_dr_opaque; 855 avctx->dr_opaque_frame= s->last_dr_opaque;
847 else 856 else
848 avctx->dr_opaque_frame= s->next_dr_opaque; 857 avctx->dr_opaque_frame= s->next_dr_opaque;
849 } 858 }
859 s->avctx->current_qscale_table= s->qscale_table = s->last_qscale_table;
860 s->avctx->display_qscale_table= s->last_qscale_table = s->next_qscale_table;
861 s->next_qscale_table= s->qscale_table;
850 } 862 }
851 /* set dequantizer, we cant do it during init as it might change for mpeg4 863 /* set dequantizer, we cant do it during init as it might change for mpeg4
852 and we cant do it in the header decode as init isnt called for mpeg4 there yet */ 864 and we cant do it in the header decode as init isnt called for mpeg4 there yet */
853 if(s->out_format == FMT_H263){ 865 if(s->out_format == FMT_H263){
854 if(s->mpeg_quant) 866 if(s->mpeg_quant)
1726 const int mb_xy = s->mb_y * s->mb_width + s->mb_x; 1738 const int mb_xy = s->mb_y * s->mb_width + s->mb_x;
1727 1739
1728 mb_x = s->mb_x; 1740 mb_x = s->mb_x;
1729 mb_y = s->mb_y; 1741 mb_y = s->mb_y;
1730 1742
1731 #ifdef FF_POSTPROCESS
1732 /* Obsolete. Exists for compatibility with mplayer only. */
1733 quant_store[mb_y][mb_x]=s->qscale;
1734 //printf("[%02d][%02d] %d\n",mb_x,mb_y,s->qscale);
1735 #else
1736 /* even more obsolete, exists for mplayer xp only */
1737 if(s->avctx->quant_store) s->avctx->quant_store[mb_y*s->avctx->qstride+mb_x] = s->qscale;
1738 #endif
1739 s->qscale_table[mb_xy]= s->qscale; 1743 s->qscale_table[mb_xy]= s->qscale;
1740 1744
1741 /* update DC predictors for P macroblocks */ 1745 /* update DC predictors for P macroblocks */
1742 if (!s->mb_intra) { 1746 if (!s->mb_intra) {
1743 if (s->h263_pred || s->h263_aic) { 1747 if (s->h263_pred || s->h263_aic) {