summaryrefslogtreecommitdiff
path: root/src/video_out
diff options
context:
space:
mode:
authorJulian Scheel <julian@jusst.de>2009-01-25 17:09:23 +0000
committerJulian Scheel <julian@jusst.de>2009-01-25 17:09:23 +0000
commita1b2e519be60481831eaad8280427ac1115b15c3 (patch)
treefd3a109624f505be4b35fc374fda5c1399a590a8 /src/video_out
parentcfdf89b5aa5f0cc2953723c48d7b56f9b1b79600 (diff)
downloadxine-lib-a1b2e519be60481831eaad8280427ac1115b15c3.tar.gz
xine-lib-a1b2e519be60481831eaad8280427ac1115b15c3.tar.bz2
Switch back to default color standard when necessary.
Diffstat (limited to 'src/video_out')
-rw-r--r--src/video_out/video_out_vdpau.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/video_out/video_out_vdpau.c b/src/video_out/video_out_vdpau.c
index fe387e02f..780a308e9 100644
--- a/src/video_out/video_out_vdpau.c
+++ b/src/video_out/video_out_vdpau.c
@@ -898,6 +898,7 @@ static void vdpau_update_frame_format (vo_driver_t *this_gen, vo_frame_t *frame_
//printf("vo_vdpau: allocated_surfaces=%d\n", this->allocated_surfaces );
+ frame->vdpau_accel_data.color_standard = VDP_COLOR_STANDARD_ITUR_BT_601;
frame->ratio = ratio;
frame->vo_frame.future_frame = NULL;
}
@@ -1176,7 +1177,7 @@ static void vdpau_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen)
return;
}
- if ( (mix_w != this->video_mixer_width) || (mix_h != this->video_mixer_height) || (chroma != this->video_mixer_chroma) || (color_standard != this->color_standard)) {
+ if ( (mix_w != this->video_mixer_width) || (mix_h != this->video_mixer_height) || (chroma != this->video_mixer_chroma)) {
vdpau_release_back_frames( this_gen ); /* empty past frames array */
printf("vo_vdpau: recreate mixer to match frames: width=%d, height=%d, chroma=%d\n", mix_w, mix_h, chroma);
vdp_video_mixer_destroy( this->video_mixer );
@@ -1190,11 +1191,15 @@ static void vdpau_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen)
this->video_mixer_chroma = chroma;
this->video_mixer_width = mix_w;
this->video_mixer_height = mix_h;
- this->color_standard = color_standard;
vdpau_set_deinterlace( this_gen );
vdpau_set_inverse_telecine( this_gen );
vdpau_update_noise( this );
vdpau_update_sharpness( this );
+ }
+
+ if (color_standard != this->color_standard) {
+ printf("vo_vdpau: update color_standard: %d\n", color_standard);
+ this->color_standard = color_standard;
vdpau_update_csc( this );
}