Mercurial > libavcodec.hg
comparison h263.c @ 3255:183e3eb0824a libavcodec
100l to loren. at least this fixes the compile error, but the code is still broken (decoding buggy/crashing)
author | rfelker |
---|---|
date | Sun, 09 Apr 2006 06:04:00 +0000 |
parents | ac7bfc9bf1a4 |
children | aec4f27b1248 |
comparison
equal
deleted
inserted
replaced
3254:9ff165550d75 | 3255:183e3eb0824a |
---|---|
551 } | 551 } |
552 } | 552 } |
553 | 553 |
554 #endif //CONFIG_ENCODERS | 554 #endif //CONFIG_ENCODERS |
555 | 555 |
556 #define tab_size (sizeof(s->direct_scale_mv[0])/sizeof(int16_t)) | |
557 #define tab_bias (tab_size/2) | |
558 | |
556 static void ff_mpeg4_init_direct_mv(MpegEncContext *s){ | 559 static void ff_mpeg4_init_direct_mv(MpegEncContext *s){ |
557 //FIXME table is stored in MpegEncContext for thread-safety, | |
558 // but a static array would be faster | |
559 static const int tab_size = sizeof(s->direct_scale_mv[0])/sizeof(int16_t); | |
560 static const int tab_bias = (tab_size/2); | |
561 int i; | 560 int i; |
562 for(i=0; i<tab_size; i++){ | 561 for(i=0; i<tab_size; i++){ |
563 s->direct_scale_mv[0][i] = (i-tab_bias)*s->pb_time/s->pp_time; | 562 s->direct_scale_mv[0][i] = (i-tab_bias)*s->pb_time/s->pp_time; |
564 s->direct_scale_mv[1][i] = (i-tab_bias)*(s->pb_time-s->pp_time)/s->pp_time; | 563 s->direct_scale_mv[1][i] = (i-tab_bias)*(s->pb_time-s->pp_time)/s->pp_time; |
565 } | 564 } |
566 } | 565 } |
567 | 566 |
568 static inline void ff_mpeg4_set_one_direct_mv(MpegEncContext *s, int mx, int my, int i){ | 567 static inline void ff_mpeg4_set_one_direct_mv(MpegEncContext *s, int mx, int my, int i){ |
569 static const int tab_size = sizeof(s->direct_scale_mv[0])/sizeof(int16_t); | |
570 static const int tab_bias = (tab_size/2); | |
571 int xy= s->block_index[i]; | 568 int xy= s->block_index[i]; |
572 uint16_t time_pp= s->pp_time; | 569 uint16_t time_pp= s->pp_time; |
573 uint16_t time_pb= s->pb_time; | 570 uint16_t time_pb= s->pb_time; |
574 int p_mx, p_my; | 571 int p_mx, p_my; |
575 | 572 |
592 s->mv[0][i][1] = p_my*time_pb/time_pp + my; | 589 s->mv[0][i][1] = p_my*time_pb/time_pp + my; |
593 s->mv[1][i][1] = my ? s->mv[0][i][1] - p_my | 590 s->mv[1][i][1] = my ? s->mv[0][i][1] - p_my |
594 : p_my*(time_pb - time_pp)/time_pp; | 591 : p_my*(time_pb - time_pp)/time_pp; |
595 } | 592 } |
596 } | 593 } |
594 | |
595 #undef tab_size | |
596 #undef tab_bias | |
597 | 597 |
598 /** | 598 /** |
599 * | 599 * |
600 * @return the mb_type | 600 * @return the mb_type |
601 */ | 601 */ |