Mercurial > libavcodec.hg
comparison vc1.c @ 3781:8e79b099d354 libavcodec
dc_val should be signed
author | mru |
---|---|
date | Wed, 27 Sep 2006 22:13:44 +0000 |
parents | 1843a85123b7 |
children | 3a151ccc6ed7 |
comparison
equal
deleted
inserted
replaced
3780:6741c0e88310 | 3781:8e79b099d354 |
---|---|
2339 * @param[in] n block index in the current MB | 2339 * @param[in] n block index in the current MB |
2340 * @param dc_val_ptr Pointer to DC predictor | 2340 * @param dc_val_ptr Pointer to DC predictor |
2341 * @param dir_ptr Prediction direction for use in AC prediction | 2341 * @param dir_ptr Prediction direction for use in AC prediction |
2342 */ | 2342 */ |
2343 static inline int vc1_i_pred_dc(MpegEncContext *s, int overlap, int pq, int n, | 2343 static inline int vc1_i_pred_dc(MpegEncContext *s, int overlap, int pq, int n, |
2344 uint16_t **dc_val_ptr, int *dir_ptr) | 2344 int16_t **dc_val_ptr, int *dir_ptr) |
2345 { | 2345 { |
2346 int a, b, c, wrap, pred, scale; | 2346 int a, b, c, wrap, pred, scale; |
2347 uint16_t *dc_val; | 2347 int16_t *dc_val; |
2348 static const uint16_t dcpred[32] = { | 2348 static const uint16_t dcpred[32] = { |
2349 -1, 1024, 512, 341, 256, 205, 171, 146, 128, | 2349 -1, 1024, 512, 341, 256, 205, 171, 146, 128, |
2350 114, 102, 93, 85, 79, 73, 68, 64, | 2350 114, 102, 93, 85, 79, 73, 68, 64, |
2351 60, 57, 54, 51, 49, 47, 45, 43, | 2351 60, 57, 54, 51, 49, 47, 45, 43, |
2352 41, 39, 38, 37, 35, 34, 33 | 2352 41, 39, 38, 37, 35, 34, 33 |
2400 * @param dc_val_ptr Pointer to DC predictor | 2400 * @param dc_val_ptr Pointer to DC predictor |
2401 * @param dir_ptr Prediction direction for use in AC prediction | 2401 * @param dir_ptr Prediction direction for use in AC prediction |
2402 */ | 2402 */ |
2403 static inline int vc1_pred_dc(MpegEncContext *s, int overlap, int pq, int n, | 2403 static inline int vc1_pred_dc(MpegEncContext *s, int overlap, int pq, int n, |
2404 int a_avail, int c_avail, | 2404 int a_avail, int c_avail, |
2405 uint16_t **dc_val_ptr, int *dir_ptr) | 2405 int16_t **dc_val_ptr, int *dir_ptr) |
2406 { | 2406 { |
2407 int a, b, c, wrap, pred, scale; | 2407 int a, b, c, wrap, pred, scale; |
2408 uint16_t *dc_val; | 2408 int16_t *dc_val; |
2409 int mb_pos = s->mb_x + s->mb_y * s->mb_stride; | 2409 int mb_pos = s->mb_x + s->mb_y * s->mb_stride; |
2410 int q1, q2 = 0; | 2410 int q1, q2 = 0; |
2411 | 2411 |
2412 /* find prediction - wmv3_dc_scale always used here in fact */ | 2412 /* find prediction - wmv3_dc_scale always used here in fact */ |
2413 if (n < 4) scale = s->y_dc_scale; | 2413 if (n < 4) scale = s->y_dc_scale; |
2576 { | 2576 { |
2577 GetBitContext *gb = &v->s.gb; | 2577 GetBitContext *gb = &v->s.gb; |
2578 MpegEncContext *s = &v->s; | 2578 MpegEncContext *s = &v->s; |
2579 int dc_pred_dir = 0; /* Direction of the DC prediction used */ | 2579 int dc_pred_dir = 0; /* Direction of the DC prediction used */ |
2580 int run_diff, i; | 2580 int run_diff, i; |
2581 uint16_t *dc_val; | 2581 int16_t *dc_val; |
2582 int16_t *ac_val, *ac_val2; | 2582 int16_t *ac_val, *ac_val2; |
2583 int dcdiff; | 2583 int dcdiff; |
2584 | 2584 |
2585 /* Get DC differential */ | 2585 /* Get DC differential */ |
2586 if (n < 4) { | 2586 if (n < 4) { |
2741 { | 2741 { |
2742 GetBitContext *gb = &v->s.gb; | 2742 GetBitContext *gb = &v->s.gb; |
2743 MpegEncContext *s = &v->s; | 2743 MpegEncContext *s = &v->s; |
2744 int dc_pred_dir = 0; /* Direction of the DC prediction used */ | 2744 int dc_pred_dir = 0; /* Direction of the DC prediction used */ |
2745 int run_diff, i; | 2745 int run_diff, i; |
2746 uint16_t *dc_val; | 2746 int16_t *dc_val; |
2747 int16_t *ac_val, *ac_val2; | 2747 int16_t *ac_val, *ac_val2; |
2748 int dcdiff; | 2748 int dcdiff; |
2749 int a_avail = v->a_avail, c_avail = v->c_avail; | 2749 int a_avail = v->a_avail, c_avail = v->c_avail; |
2750 int use_pred = s->ac_pred; | 2750 int use_pred = s->ac_pred; |
2751 int scale; | 2751 int scale; |
2938 { | 2938 { |
2939 GetBitContext *gb = &v->s.gb; | 2939 GetBitContext *gb = &v->s.gb; |
2940 MpegEncContext *s = &v->s; | 2940 MpegEncContext *s = &v->s; |
2941 int dc_pred_dir = 0; /* Direction of the DC prediction used */ | 2941 int dc_pred_dir = 0; /* Direction of the DC prediction used */ |
2942 int run_diff, i; | 2942 int run_diff, i; |
2943 uint16_t *dc_val; | 2943 int16_t *dc_val; |
2944 int16_t *ac_val, *ac_val2; | 2944 int16_t *ac_val, *ac_val2; |
2945 int dcdiff; | 2945 int dcdiff; |
2946 int mb_pos = s->mb_x + s->mb_y * s->mb_stride; | 2946 int mb_pos = s->mb_x + s->mb_y * s->mb_stride; |
2947 int a_avail = v->a_avail, c_avail = v->c_avail; | 2947 int a_avail = v->a_avail, c_avail = v->c_avail; |
2948 int use_pred = s->ac_pred; | 2948 int use_pred = s->ac_pred; |