diff options
author | Christophe Thommeret <hftom@free.fr> | 2008-12-19 14:07:35 +0000 |
---|---|---|
committer | Christophe Thommeret <hftom@free.fr> | 2008-12-19 14:07:35 +0000 |
commit | 7483f01445e287d5817d7aa44caeab406ab88abc (patch) | |
tree | 8ee010ffb86fb35976aeb8abbc466a4b0bcea6db | |
parent | 2f42a48d16e7003c778938b3a72842e785f0cd80 (diff) | |
download | xine-lib-7483f01445e287d5817d7aa44caeab406ab88abc.tar.gz xine-lib-7483f01445e287d5817d7aa44caeab406ab88abc.tar.bz2 |
MPEG1 fixes.
-rw-r--r-- | src/libvdpau/vdpau_mpeg12.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/libvdpau/vdpau_mpeg12.c b/src/libvdpau/vdpau_mpeg12.c index c5aefc7cb..22a576299 100644 --- a/src/libvdpau/vdpau_mpeg12.c +++ b/src/libvdpau/vdpau_mpeg12.c @@ -177,6 +177,13 @@ typedef struct vdpau_mpeg12_decoder_s { static void reset_picture( picture_t *pic ) { pic->vdp_infos.picture_structure = 0; + pic->vdp_infos2.intra_dc_precision = pic->vdp_infos.intra_dc_precision = 0; + pic->vdp_infos2.frame_pred_frame_dct = pic->vdp_infos.frame_pred_frame_dct = 1; + pic->vdp_infos2.concealment_motion_vectors = pic->vdp_infos.concealment_motion_vectors = 0; + pic->vdp_infos2.intra_vlc_format = pic->vdp_infos.intra_vlc_format = 0; + pic->vdp_infos2.alternate_scan = pic->vdp_infos.alternate_scan = 0; + pic->vdp_infos2.q_scale_type = pic->vdp_infos.q_scale_type = 0; + pic->vdp_infos2.top_field_first = pic->vdp_infos.top_field_first = 0; pic->slices_count = 0; pic->slices_count2 = 0; pic->slices_pos = 0; @@ -325,6 +332,9 @@ static void picture_header( sequence_t *sequence, uint8_t *buf, int len ) if ( sequence->picture.state!=WANT_HEADER ) return; + if ( sequence->profile==VDP_DECODER_PROFILE_MPEG1 ) + sequence->picture.vdp_infos.picture_structure = PICTURE_FRAME; + VdpPictureInfoMPEG1Or2 *infos = &sequence->picture.vdp_infos; if ( sequence->picture.vdp_infos.picture_structure && sequence->picture.slices_count2 ) |