Browse Source

setting special motion vectors in intra macroblocks

is now in its own inline function

Originally committed as revision 9516 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Stefan Gehrer 18 years ago
parent
commit
07caa46e99
2 changed files with 12 additions and 9 deletions
  1. +1
    -9
      libavcodec/cavs.c
  2. +11
    -0
      libavcodec/cavs.h

+ 1
- 9
libavcodec/cavs.c View File

@@ -645,15 +645,7 @@ static int decode_mb_i(AVSContext *h, int cbp_code) {


decode_residual_chroma(h); decode_residual_chroma(h);
filter_mb(h,I_8X8); filter_mb(h,I_8X8);

/* mark motion vectors as intra */
h->mv[MV_FWD_X0] = ff_cavs_intra_mv;
set_mvs(&h->mv[MV_FWD_X0], BLK_16X16);
h->mv[MV_BWD_X0] = ff_cavs_intra_mv;
set_mvs(&h->mv[MV_BWD_X0], BLK_16X16);
if(h->pic_type != FF_B_TYPE)
*h->col_type = I_8X8;

set_mv_intra(h);
return 0; return 0;
} }




+ 11
- 0
libavcodec/cavs.h View File

@@ -228,6 +228,7 @@ extern const int_fast8_t ff_left_modifier_l[8];
extern const int_fast8_t ff_top_modifier_l[8]; extern const int_fast8_t ff_top_modifier_l[8];
extern const int_fast8_t ff_left_modifier_c[7]; extern const int_fast8_t ff_left_modifier_c[7];
extern const int_fast8_t ff_top_modifier_c[7]; extern const int_fast8_t ff_top_modifier_c[7];
extern const vector_t ff_cavs_intra_mv;
extern const vector_t ff_cavs_un_mv; extern const vector_t ff_cavs_un_mv;


static inline void load_intra_pred_luma(AVSContext *h, uint8_t *top, static inline void load_intra_pred_luma(AVSContext *h, uint8_t *top,
@@ -344,6 +345,16 @@ static inline void set_mvs(vector_t *mv, enum block_t size) {
} }
} }


static inline void set_mv_intra(AVSContext *h) {
h->mv[MV_FWD_X0] = ff_cavs_intra_mv;
set_mvs(&h->mv[MV_FWD_X0], BLK_16X16);
h->mv[MV_BWD_X0] = ff_cavs_intra_mv;
set_mvs(&h->mv[MV_BWD_X0], BLK_16X16);
if(h->pic_type != FF_B_TYPE)
*h->col_type = I_8X8;
}


/** /**
* initialise predictors for motion vectors and intra prediction * initialise predictors for motion vectors and intra prediction
*/ */


Loading…
Cancel
Save