[vlc-commits] vdpau/display: request reoriented video
Rémi Denis-Courmont
git at videolan.org
Sat Jun 7 18:28:02 CEST 2014
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Tue Mar 25 21:41:09 2014 +0200| [60630b384fa25a0eef544eecd7f87a7c7996bb6d] | committer: Rémi Denis-Courmont
vdpau/display: request reoriented video
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=60630b384fa25a0eef544eecd7f87a7c7996bb6d
---
modules/hw/vdpau/display.c | 21 +++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)
diff --git a/modules/hw/vdpau/display.c b/modules/hw/vdpau/display.c
index 1206cdc..18a68d3 100644
--- a/modules/hw/vdpau/display.c
+++ b/modules/hw/vdpau/display.c
@@ -470,13 +470,17 @@ static int Open(vlc_object_t *obj)
msg_Dbg(vd, "using back-end %s", info);
/* Check source format */
+ video_format_t fmt;
VdpChromaType chroma;
VdpYCbCrFormat format;
- if (vd->fmt.i_chroma == VLC_CODEC_VDPAU_VIDEO_420
- || vd->fmt.i_chroma == VLC_CODEC_VDPAU_VIDEO_422)
+
+ video_format_ApplyRotation(&fmt, &vd->fmt);
+
+ if (fmt.i_chroma == VLC_CODEC_VDPAU_VIDEO_420
+ || fmt.i_chroma == VLC_CODEC_VDPAU_VIDEO_422)
;
else
- if (vlc_fourcc_to_vdp_ycc(vd->fmt.i_chroma, &chroma, &format))
+ if (vlc_fourcc_to_vdp_ycc(fmt.i_chroma, &chroma, &format))
{
uint32_t w, h;
VdpBool ok;
@@ -489,7 +493,7 @@ static int Open(vlc_object_t *obj)
vdp_get_error_string(sys->vdp, err));
goto error;
}
- if (!ok || w < vd->fmt.i_width || h < vd->fmt.i_height)
+ if (!ok || w < fmt.i_width || h < fmt.i_height)
{
msg_Err(vd, "source video %s not supported", "chroma type");
goto error;
@@ -526,7 +530,7 @@ static int Open(vlc_object_t *obj)
vdp_get_error_string(sys->vdp, err));
goto error;
}
- if (min > vd->fmt.i_width || vd->fmt.i_width > max)
+ if (min > fmt.i_width || fmt.i_width > max)
{
msg_Err(vd, "source video %s not supported", "width");
goto error;
@@ -542,12 +546,13 @@ static int Open(vlc_object_t *obj)
vdp_get_error_string(sys->vdp, err));
goto error;
}
- if (min > vd->fmt.i_height || vd->fmt.i_height > max)
+ if (min > fmt.i_height || fmt.i_height > max)
{
msg_Err(vd, "source video %s not supported", "height");
goto error;
}
}
+ fmt.i_chroma = VLC_CODEC_VDPAU_OUTPUT;
/* Select surface format */
static const VdpRGBAFormat rgb_fmts[] = {
@@ -570,7 +575,7 @@ static int Open(vlc_object_t *obj)
continue;
}
/* NOTE: Wrong! No warranties that zoom <= 100%! */
- if (!ok || w < vd->fmt.i_width || h < vd->fmt.i_height)
+ if (!ok || w < fmt.i_width || h < fmt.i_height)
continue;
sys->rgb_fmt = rgb_fmts[i];
@@ -667,7 +672,7 @@ static int Open(vlc_object_t *obj)
vd->info.has_pictures_invalid = true;
vd->info.has_event_thread = true;
vd->info.subpicture_chromas = spu_chromas;
- vd->fmt.i_chroma = VLC_CODEC_VDPAU_OUTPUT;
+ vd->fmt = fmt;
vd->pool = Pool;
vd->prepare = Queue;
More information about the vlc-commits
mailing list