summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Schmidt <thaytan@noraisin.net>2009-06-22 03:55:27 +0100
committerJan Schmidt <thaytan@noraisin.net>2009-06-23 22:22:02 +0100
commiteb528cbcc4dab321910defb319feb4387b30b548 (patch)
treed28c07139011e09868628565b849cbacd5dfe41f
parentda11b1672fcd03717ca445b8ff300dc2527c0b87 (diff)
downloadgst-plugins-bad-eb528cbcc4dab321910defb319feb4387b30b548.tar.gz
gst-plugins-bad-eb528cbcc4dab321910defb319feb4387b30b548.tar.bz2
gst-plugins-bad-eb528cbcc4dab321910defb319feb4387b30b548.zip
VDPAU: Move I420/YV12 to the front of the caps. Add debug.
Make I420/YV12 caps be preferred when downloading to YUV buffers, when possible, by listing them first in the set of output caps. Add some debug in the caps selection code.
-rw-r--r--sys/vdpau/gstvdpdevice.h20
-rw-r--r--sys/vdpau/gstvdpvideoyuv.c3
2 files changed, 13 insertions, 10 deletions
diff --git a/sys/vdpau/gstvdpdevice.h b/sys/vdpau/gstvdpdevice.h
index ac036d73..38cd84bb 100644
--- a/sys/vdpau/gstvdpdevice.h
+++ b/sys/vdpau/gstvdpdevice.h
@@ -86,6 +86,16 @@ static const VdpChromaType chroma_types[N_CHROMA_TYPES] =
static const VdpauFormats formats[N_FORMATS] = {
{
VDP_CHROMA_TYPE_420,
+ VDP_YCBCR_FORMAT_YV12,
+ GST_MAKE_FOURCC ('I', '4', '2', '0')
+ },
+ {
+ VDP_CHROMA_TYPE_420,
+ VDP_YCBCR_FORMAT_YV12,
+ GST_MAKE_FOURCC ('Y', 'V', '1', '2')
+ },
+ {
+ VDP_CHROMA_TYPE_420,
VDP_YCBCR_FORMAT_NV12,
GST_MAKE_FOURCC ('N', 'V', '1', '2')
},
@@ -108,16 +118,6 @@ static const VdpauFormats formats[N_FORMATS] = {
VDP_CHROMA_TYPE_422,
VDP_YCBCR_FORMAT_YUYV,
GST_MAKE_FOURCC ('Y', 'U', 'Y', 'V')
- },
- {
- VDP_CHROMA_TYPE_420,
- VDP_YCBCR_FORMAT_YV12,
- GST_MAKE_FOURCC ('Y', 'V', '1', '2')
- },
- {
- VDP_CHROMA_TYPE_420,
- VDP_YCBCR_FORMAT_YV12,
- GST_MAKE_FOURCC ('I', '4', '2', '0')
}
};
diff --git a/sys/vdpau/gstvdpvideoyuv.c b/sys/vdpau/gstvdpvideoyuv.c
index 2318cd40..bd780075 100644
--- a/sys/vdpau/gstvdpvideoyuv.c
+++ b/sys/vdpau/gstvdpvideoyuv.c
@@ -332,6 +332,9 @@ gst_vdp_video_yuv_sink_set_caps (GstPad * pad, GstCaps * caps)
if (G_UNLIKELY (!src_caps || !gst_caps_get_size (src_caps)))
return FALSE;
+ GST_DEBUG_OBJECT (video_yuv,
+ "Selecting first caps from set: %" GST_PTR_FORMAT, src_caps);
+
new_caps = gst_caps_copy_nth (src_caps, 0);
gst_caps_unref (src_caps);
if (G_UNLIKELY (!new_caps))