mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-12-03 17:10:53 +00:00
avcodec/mpegvideo_motion: Use a field from the current frame if the last is unavailable in DMV & 16x8
Fixes null pointer dereference Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
30e6a02c23
commit
42bcc4082d
@ -824,8 +824,8 @@ static av_always_inline void MPV_motion_internal(MpegEncContext *s,
|
||||
for(i=0; i<2; i++){
|
||||
uint8_t ** ref2picture;
|
||||
|
||||
if(s->picture_structure == s->field_select[dir][i] + 1
|
||||
|| s->pict_type == AV_PICTURE_TYPE_B || s->first_field){
|
||||
if((s->picture_structure == s->field_select[dir][i] + 1
|
||||
|| s->pict_type == AV_PICTURE_TYPE_B || s->first_field) && ref_picture[0]){
|
||||
ref2picture= ref_picture;
|
||||
}else{
|
||||
ref2picture = s->current_picture_ptr->f.data;
|
||||
@ -854,6 +854,9 @@ static av_always_inline void MPV_motion_internal(MpegEncContext *s,
|
||||
pix_op = s->hdsp.avg_pixels_tab;
|
||||
}
|
||||
}else{
|
||||
if (!ref_picture[0]) {
|
||||
ref_picture = s->current_picture_ptr->f.data;
|
||||
}
|
||||
for(i=0; i<2; i++){
|
||||
mpeg_motion(s, dest_y, dest_cb, dest_cr,
|
||||
s->picture_structure != i+1,
|
||||
|
Loading…
Reference in New Issue
Block a user