Mercurial > libavcodec.hg
comparison mpegvideo.c @ 2024:f65d87bfdd5a libavcodec
some of the warning fixes by (Michael Roitzsch <mroi at users dot sourceforge dot net>)
| author | michael |
|---|---|
| date | Tue, 18 May 2004 17:09:46 +0000 |
| parents | 3ab8f3e2ae6a |
| children | 591233f22963 |
comparison
equal
deleted
inserted
replaced
| 2023:50e92cec1b84 | 2024:f65d87bfdd5a |
|---|---|
| 23 /** | 23 /** |
| 24 * @file mpegvideo.c | 24 * @file mpegvideo.c |
| 25 * The simplest mpeg encoder (well, it was the simplest!). | 25 * The simplest mpeg encoder (well, it was the simplest!). |
| 26 */ | 26 */ |
| 27 | 27 |
| 28 #include <limits.h> | |
| 29 #include <math.h> //for PI | |
| 30 #include "avcodec.h" | 28 #include "avcodec.h" |
| 31 #include "dsputil.h" | 29 #include "dsputil.h" |
| 32 #include "mpegvideo.h" | 30 #include "mpegvideo.h" |
| 33 #include "faandct.h" | 31 #include "faandct.h" |
| 32 #include <limits.h> | |
| 34 | 33 |
| 35 #ifdef USE_FASTMEMCPY | 34 #ifdef USE_FASTMEMCPY |
| 36 #include "fastmemcpy.h" | 35 #include "fastmemcpy.h" |
| 37 #endif | 36 #endif |
| 38 | 37 |
| 565 * sets the given MpegEncContext to defaults for encoding. | 564 * sets the given MpegEncContext to defaults for encoding. |
| 566 * the changed fields will not depend upon the prior state of the MpegEncContext. | 565 * the changed fields will not depend upon the prior state of the MpegEncContext. |
| 567 */ | 566 */ |
| 568 | 567 |
| 569 #ifdef CONFIG_ENCODERS | 568 #ifdef CONFIG_ENCODERS |
| 570 void MPV_encode_defaults(MpegEncContext *s){ | 569 static void MPV_encode_defaults(MpegEncContext *s){ |
| 571 static int done=0; | 570 static int done=0; |
| 572 | 571 |
| 573 MPV_common_defaults(s); | 572 MPV_common_defaults(s); |
| 574 | 573 |
| 575 if(!done){ | 574 if(!done){ |
| 1706 for(mb_x=0; mb_x<s->mb_width; mb_x++){ | 1705 for(mb_x=0; mb_x<s->mb_width; mb_x++){ |
| 1707 const int mb_index= mb_x + mb_y*s->mb_stride; | 1706 const int mb_index= mb_x + mb_y*s->mb_stride; |
| 1708 if((s->avctx->debug_mv) && pict->motion_val){ | 1707 if((s->avctx->debug_mv) && pict->motion_val){ |
| 1709 int type; | 1708 int type; |
| 1710 for(type=0; type<3; type++){ | 1709 for(type=0; type<3; type++){ |
| 1711 int direction; | 1710 int direction = 0; |
| 1712 switch (type) { | 1711 switch (type) { |
| 1713 case 0: if ((!(s->avctx->debug_mv&FF_DEBUG_VIS_MV_P_FOR)) || (pict->pict_type!=FF_P_TYPE)) | 1712 case 0: if ((!(s->avctx->debug_mv&FF_DEBUG_VIS_MV_P_FOR)) || (pict->pict_type!=FF_P_TYPE)) |
| 1714 continue; | 1713 continue; |
| 1715 direction = 0; | 1714 direction = 0; |
| 1716 break; | 1715 break; |
| 4587 flush_put_bits(&dst->pb); | 4586 flush_put_bits(&dst->pb); |
| 4588 } | 4587 } |
| 4589 | 4588 |
| 4590 static void encode_picture(MpegEncContext *s, int picture_number) | 4589 static void encode_picture(MpegEncContext *s, int picture_number) |
| 4591 { | 4590 { |
| 4592 int i, j; | 4591 int i; |
| 4593 int bits; | 4592 int bits; |
| 4594 | 4593 |
| 4595 s->picture_number = picture_number; | 4594 s->picture_number = picture_number; |
| 4596 | 4595 |
| 4597 /* Reset the average MB variance */ | 4596 /* Reset the average MB variance */ |
| 4669 } | 4668 } |
| 4670 | 4669 |
| 4671 ff_fix_long_p_mvs(s); | 4670 ff_fix_long_p_mvs(s); |
| 4672 ff_fix_long_mvs(s, NULL, 0, s->p_mv_table, s->f_code, CANDIDATE_MB_TYPE_INTER, 0); | 4671 ff_fix_long_mvs(s, NULL, 0, s->p_mv_table, s->f_code, CANDIDATE_MB_TYPE_INTER, 0); |
| 4673 if(s->flags & CODEC_FLAG_INTERLACED_ME){ | 4672 if(s->flags & CODEC_FLAG_INTERLACED_ME){ |
| 4673 int j; | |
| 4674 for(i=0; i<2; i++){ | 4674 for(i=0; i<2; i++){ |
| 4675 for(j=0; j<2; j++) | 4675 for(j=0; j<2; j++) |
| 4676 ff_fix_long_mvs(s, s->p_field_select_table[i], j, | 4676 ff_fix_long_mvs(s, s->p_field_select_table[i], j, |
| 4677 s->p_field_mv_table[i][j], s->f_code, CANDIDATE_MB_TYPE_INTER_I, 0); | 4677 s->p_field_mv_table[i][j], s->f_code, CANDIDATE_MB_TYPE_INTER_I, 0); |
| 4678 } | 4678 } |
| 4693 ff_fix_long_mvs(s, NULL, 0, s->b_forw_mv_table, s->f_code, CANDIDATE_MB_TYPE_FORWARD, 1); | 4693 ff_fix_long_mvs(s, NULL, 0, s->b_forw_mv_table, s->f_code, CANDIDATE_MB_TYPE_FORWARD, 1); |
| 4694 ff_fix_long_mvs(s, NULL, 0, s->b_back_mv_table, s->b_code, CANDIDATE_MB_TYPE_BACKWARD, 1); | 4694 ff_fix_long_mvs(s, NULL, 0, s->b_back_mv_table, s->b_code, CANDIDATE_MB_TYPE_BACKWARD, 1); |
| 4695 ff_fix_long_mvs(s, NULL, 0, s->b_bidir_forw_mv_table, s->f_code, CANDIDATE_MB_TYPE_BIDIR, 1); | 4695 ff_fix_long_mvs(s, NULL, 0, s->b_bidir_forw_mv_table, s->f_code, CANDIDATE_MB_TYPE_BIDIR, 1); |
| 4696 ff_fix_long_mvs(s, NULL, 0, s->b_bidir_back_mv_table, s->b_code, CANDIDATE_MB_TYPE_BIDIR, 1); | 4696 ff_fix_long_mvs(s, NULL, 0, s->b_bidir_back_mv_table, s->b_code, CANDIDATE_MB_TYPE_BIDIR, 1); |
| 4697 if(s->flags & CODEC_FLAG_INTERLACED_ME){ | 4697 if(s->flags & CODEC_FLAG_INTERLACED_ME){ |
| 4698 int dir; | 4698 int dir, j; |
| 4699 for(dir=0; dir<2; dir++){ | 4699 for(dir=0; dir<2; dir++){ |
| 4700 for(i=0; i<2; i++){ | 4700 for(i=0; i<2; i++){ |
| 4701 for(j=0; j<2; j++){ | 4701 for(j=0; j<2; j++){ |
| 4702 int type= dir ? (CANDIDATE_MB_TYPE_BACKWARD_I|CANDIDATE_MB_TYPE_BIDIR_I) | 4702 int type= dir ? (CANDIDATE_MB_TYPE_BACKWARD_I|CANDIDATE_MB_TYPE_BIDIR_I) |
| 4703 : (CANDIDATE_MB_TYPE_FORWARD_I |CANDIDATE_MB_TYPE_BIDIR_I); | 4703 : (CANDIDATE_MB_TYPE_FORWARD_I |CANDIDATE_MB_TYPE_BIDIR_I); |
| 5258 #endif | 5258 #endif |
| 5259 for(;;){ | 5259 for(;;){ |
| 5260 int best_score=s->dsp.try_8x8basis(rem, weight, basis[0], 0); | 5260 int best_score=s->dsp.try_8x8basis(rem, weight, basis[0], 0); |
| 5261 int best_coeff=0; | 5261 int best_coeff=0; |
| 5262 int best_change=0; | 5262 int best_change=0; |
| 5263 int run2, best_unquant_change, analyze_gradient; | 5263 int run2, best_unquant_change=0, analyze_gradient; |
| 5264 #ifdef REFINE_STATS | 5264 #ifdef REFINE_STATS |
| 5265 {START_TIMER | 5265 {START_TIMER |
| 5266 #endif | 5266 #endif |
| 5267 analyze_gradient = last_non_zero > 2 || s->avctx->quantizer_noise_shaping >= 3; | 5267 analyze_gradient = last_non_zero > 2 || s->avctx->quantizer_noise_shaping >= 3; |
| 5268 | 5268 |
