comparison msmpeg4.c @ 3781:8e79b099d354 libavcodec

dc_val should be signed
author mru
date Wed, 27 Sep 2006 22:13:44 +0000
parents 20545fbb6f7c
children c8c591fe26f8
comparison
equal deleted inserted replaced
3780:6741c0e88310 3781:8e79b099d354
625 return FASTDIV((sum + (scale>>1)), scale); 625 return FASTDIV((sum + (scale>>1)), scale);
626 } 626 }
627 627
628 /* dir = 0: left, dir = 1: top prediction */ 628 /* dir = 0: left, dir = 1: top prediction */
629 static inline int msmpeg4_pred_dc(MpegEncContext * s, int n, 629 static inline int msmpeg4_pred_dc(MpegEncContext * s, int n,
630 uint16_t **dc_val_ptr, int *dir_ptr) 630 int16_t **dc_val_ptr, int *dir_ptr)
631 { 631 {
632 int a, b, c, wrap, pred, scale; 632 int a, b, c, wrap, pred, scale;
633 uint16_t *dc_val; 633 int16_t *dc_val;
634 634
635 /* find prediction */ 635 /* find prediction */
636 if (n < 4) { 636 if (n < 4) {
637 scale = s->y_dc_scale; 637 scale = s->y_dc_scale;
638 } else { 638 } else {
785 pred = msmpeg4v1_pred_dc(s, n, &dc_val); 785 pred = msmpeg4v1_pred_dc(s, n, &dc_val);
786 786
787 /* update predictor */ 787 /* update predictor */
788 *dc_val= level; 788 *dc_val= level;
789 }else{ 789 }else{
790 uint16_t *dc_val; 790 int16_t *dc_val;
791 pred = msmpeg4_pred_dc(s, n, &dc_val, dir_ptr); 791 pred = msmpeg4_pred_dc(s, n, &dc_val, dir_ptr);
792 792
793 /* update predictor */ 793 /* update predictor */
794 if (n < 4) { 794 if (n < 4) {
795 *dc_val = level * s->y_dc_scale; 795 *dc_val = level * s->y_dc_scale;
1873 level += pred; 1873 level += pred;
1874 1874
1875 /* update predictor */ 1875 /* update predictor */
1876 *dc_val= level; 1876 *dc_val= level;
1877 }else{ 1877 }else{
1878 uint16_t *dc_val; 1878 int16_t *dc_val;
1879 pred = msmpeg4_pred_dc(s, n, &dc_val, dir_ptr); 1879 pred = msmpeg4_pred_dc(s, n, &dc_val, dir_ptr);
1880 level += pred; 1880 level += pred;
1881 1881
1882 /* update predictor */ 1882 /* update predictor */
1883 if (n < 4) { 1883 if (n < 4) {