diff options
author | Julian Scheel <julian@jusst.de> | 2008-12-23 18:04:00 +0000 |
---|---|---|
committer | Julian Scheel <julian@jusst.de> | 2008-12-23 18:04:00 +0000 |
commit | 08b37241e90cddc8d1db6d0aaf6fbb602bd61ae1 (patch) | |
tree | ad39184be82aca18c1ea1f1e59e40b9905badae3 | |
parent | 27a05e59f563e7bb43fa8286646d15448f1670bf (diff) | |
download | xine-lib-08b37241e90cddc8d1db6d0aaf6fbb602bd61ae1.tar.gz xine-lib-08b37241e90cddc8d1db6d0aaf6fbb602bd61ae1.tar.bz2 |
Set H.264 progressive_frame_flag; follow it in video_out_vdpau.
(Maybe following the flag is not a good idea for mpeg2...)
-rw-r--r-- | src/libvdpau/vdpau_h264.c | 5 | ||||
-rw-r--r-- | src/video_out/video_out_vdpau.c | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/libvdpau/vdpau_h264.c b/src/libvdpau/vdpau_h264.c index 0d55abbc6..81932e096 100644 --- a/src/libvdpau/vdpau_h264.c +++ b/src/libvdpau/vdpau_h264.c @@ -448,6 +448,11 @@ static void vdpau_h264_decode_data (video_decoder_t *this_gen, img->bad_frame = 0; + if(!pic.field_pic_flag && !pic.mb_adaptive_frame_field_flag) + img->progressive_frame = 1; + else + img->progressive_frame = 0; + struct decoded_picture *decoded_pic = NULL; if(pic.is_reference) { if(!slc->field_pic_flag || !this->wait_for_bottom_field) { diff --git a/src/video_out/video_out_vdpau.c b/src/video_out/video_out_vdpau.c index 11eb0fcb3..ed68b5c5f 100644 --- a/src/video_out/video_out_vdpau.c +++ b/src/video_out/video_out_vdpau.c @@ -715,7 +715,7 @@ static void vdpau_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) layer_count = 0; } - if ( frame->vo_frame.duration>2500 && frame->format==XINE_IMGFMT_VDPAU ) { + if ( frame->vo_frame.duration>2500 && !frame->vo_frame.progressive_frame && frame->format==XINE_IMGFMT_VDPAU ) { VdpTime current_time = 0; VdpVideoSurface past[2]; VdpVideoSurface future[1]; |