mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2024-11-23 11:19:55 +00:00
Pullback should be performed on scaled motion vectors in B-frames
Originally committed as revision 8750 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
3052ddb2a8
commit
a61456152d
@ -2304,6 +2304,12 @@ static inline void vc1_pred_b_mv(VC1Context *v, int dmv_x[2], int dmv_y[2], int
|
||||
s->mv[0][0][1] = scale_mv(s->next_picture.motion_val[1][xy][1], v->bfraction, 0, s->quarter_sample);
|
||||
s->mv[1][0][0] = scale_mv(s->next_picture.motion_val[1][xy][0], v->bfraction, 1, s->quarter_sample);
|
||||
s->mv[1][0][1] = scale_mv(s->next_picture.motion_val[1][xy][1], v->bfraction, 1, s->quarter_sample);
|
||||
|
||||
/* Pullback predicted motion vectors as specified in 8.4.5.4 */
|
||||
s->mv[0][0][0] = av_clip(s->mv[0][0][0], -60 - (s->mb_x << 6), (s->mb_width << 6) - 4 - (s->mb_x << 6));
|
||||
s->mv[0][0][1] = av_clip(s->mv[0][0][1], -60 - (s->mb_y << 6), (s->mb_height << 6) - 4 - (s->mb_y << 6));
|
||||
s->mv[1][0][0] = av_clip(s->mv[1][0][0], -60 - (s->mb_x << 6), (s->mb_width << 6) - 4 - (s->mb_x << 6));
|
||||
s->mv[1][0][1] = av_clip(s->mv[1][0][1], -60 - (s->mb_y << 6), (s->mb_height << 6) - 4 - (s->mb_y << 6));
|
||||
if(direct) {
|
||||
s->current_picture.motion_val[0][xy][0] = s->mv[0][0][0];
|
||||
s->current_picture.motion_val[0][xy][1] = s->mv[0][0][1];
|
||||
|
Loading…
Reference in New Issue
Block a user