I'm not sure where to put this issue, but as this series seems to have some effect on it, here it is :
I am trying to play a mpeg2 video with a 4:2:2 subsampling using mplayer, with vdpau video output and regular ffmpeg12 video codec (the mesa mpeg2 decoder cannot handle 4:2:2 subsampling anyway if I read previous discussions right ?). With lateset mesa git master I had completly borked output and this error : [vdpau] Error when calling vdp_video_surface_put_bits_y_cb_cr: No backend implementation could be loaded. With the previous series of 9 patches I had that output : http://img9.imageshack.us/img9/7447/yv422bug.png With today series I get that output : http://img807.imageshack.us/img807/5593/cran07032012184105.png By the way something seemed wrong while reading mplayer's log : (the use of the software scaler and the "DRI failure") Starting playback... Could not find matching colorspace - retrying with -vf scale... Opening video filter: [scale] Movie-Aspect is 1.78:1 - prescaling to correct movie aspect. [swscaler @ 0x1001140]using unscaled yuv422p -> yuyv422 special converter VO: [vdpau] 1920x1080 => 1920x1080 Packed YUY2 [mpeg2video @ 0xf50700]warning: first frame is no keyframe [VD_FFMPEG] DRI failure. V: 11.5 2/ 2 ??% ??% ??,?% 0 0 [mpeg2video @ 0xf50700]warning: first frame is no keyframe V: 16.6 125/125 21% 6% 0.0% 0 0 Emeric 2012/3/7 Christian König <deathsim...@vodafone.de> > Signed-off-by: Christian König <deathsim...@vodafone.de> > --- > src/gallium/state_trackers/vdpau/query.c | 22 ++++++++++++++++++---- > 1 files changed, 18 insertions(+), 4 deletions(-) > > diff --git a/src/gallium/state_trackers/vdpau/query.c > b/src/gallium/state_trackers/vdpau/query.c > index 9d40834..2b13ce1 100644 > --- a/src/gallium/state_trackers/vdpau/query.c > +++ b/src/gallium/state_trackers/vdpau/query.c > @@ -87,9 +87,6 @@ vlVdpVideoSurfaceQueryCapabilities(VdpDevice device, > VdpChromaType surface_chrom > > /* XXX: Current limits */ > *is_supported = true; > - if (surface_chroma_type != VDP_CHROMA_TYPE_420) > - *is_supported = false; > - > max_2d_texture_level = pscreen->get_param(pscreen, > PIPE_CAP_MAX_TEXTURE_2D_LEVELS); > pipe_mutex_unlock(dev->mutex); > if (!max_2d_texture_level) > @@ -124,7 +121,24 @@ > vlVdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities(VdpDevice device, > VdpChromaTyp > return VDP_STATUS_RESOURCES; > > pipe_mutex_lock(dev->mutex); > - *is_supported = pscreen->is_video_format_supported > + > + switch(bits_ycbcr_format) { > + case VDP_YCBCR_FORMAT_UYVY: > + case VDP_YCBCR_FORMAT_YUYV: > + *is_supported = surface_chroma_type == VDP_CHROMA_TYPE_422; > + break; > + > + case VDP_YCBCR_FORMAT_Y8U8V8A8: > + case VDP_YCBCR_FORMAT_V8U8Y8A8: > + *is_supported = surface_chroma_type == VDP_CHROMA_TYPE_444; > + break; > + > + default: > + *is_supported = true; > + break; > + } > + > + *is_supported &= pscreen->is_video_format_supported > ( > pscreen, > FormatYCBCRToPipe(bits_ycbcr_format), > -- > 1.7.5.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev