From 66f05af28830cd297387bda28f457fec8d2cd1f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Manuel=20J=C3=A1quez=20Leal?= Date: Wed, 5 Aug 2015 14:11:12 +0200 Subject: [PATCH] refactor vaapi caps strings for pad templates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refactor the main vaapi caps strings into three macros: GST_VAAPI_MAKE_SURFACE_CAPS, GST_VAAPI_MAKE_ENC_SURFACE_CAPS and GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS. Those are in gstvaapipluginutil.h so all the elements could use them, instead of re-declaring them every time. No functional changes. Signed-off-by: Víctor Manuel Jáquez Leal --- gst/vaapi/gstvaapidecode.c | 6 ++---- gst/vaapi/gstvaapidecodebin.c | 9 ++------- gst/vaapi/gstvaapiencode_h264.c | 3 +-- gst/vaapi/gstvaapiencode_h265.c | 3 +-- gst/vaapi/gstvaapiencode_jpeg.c | 3 +-- gst/vaapi/gstvaapiencode_mpeg2.c | 3 +-- gst/vaapi/gstvaapiencode_vp8.c | 3 +-- gst/vaapi/gstvaapipluginutil.h | 12 ++++++++++++ gst/vaapi/gstvaapipostproc.c | 18 +++++------------- gst/vaapi/gstvaapisink.c | 4 +--- 10 files changed, 27 insertions(+), 37 deletions(-) diff --git a/gst/vaapi/gstvaapidecode.c b/gst/vaapi/gstvaapidecode.c index 58d5f38d10..cf4b67abc1 100644 --- a/gst/vaapi/gstvaapidecode.c +++ b/gst/vaapi/gstvaapidecode.c @@ -82,10 +82,8 @@ static const char gst_vaapidecode_sink_caps_str[] = ; static const char gst_vaapidecode_src_caps_str[] = - GST_VIDEO_CAPS_MAKE_WITH_FEATURES( - GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE, "{ ENCODED, I420, YV12, NV12 }") ";" - GST_VIDEO_CAPS_MAKE_WITH_FEATURES( - GST_CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META, "{ RGBA, BGRA }") ";" + GST_VAAPI_MAKE_SURFACE_CAPS ";" + GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS ";" GST_VIDEO_CAPS_MAKE("{ I420, YV12, NV12 }"); static GstStaticPadTemplate gst_vaapidecode_sink_factory = diff --git a/gst/vaapi/gstvaapidecodebin.c b/gst/vaapi/gstvaapidecodebin.c index cbedbb227f..03f34ac26d 100644 --- a/gst/vaapi/gstvaapidecodebin.c +++ b/gst/vaapi/gstvaapidecodebin.c @@ -53,10 +53,6 @@ enum static GParamSpec *properties[PROP_LAST]; -#define GST_VAAPI_DECODE_BIN_SURFACE_CAPS \ - GST_VIDEO_CAPS_MAKE_WITH_FEATURES( \ - GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE, "{ ENCODED, I420, YV12, NV12 }") - /* Default templates */ #define GST_CAPS_CODEC(CODEC) CODEC "; " /* *INDENT-OFF* */ @@ -82,10 +78,9 @@ static const char gst_vaapi_decode_bin_sink_caps_str[] = /* *INDENT-OFF* */ static const char gst_vaapi_decode_bin_src_caps_str[] = - GST_VAAPI_DECODE_BIN_SURFACE_CAPS ", " + GST_VAAPI_MAKE_SURFACE_CAPS ", " GST_CAPS_INTERLACED_FALSE "; " - GST_VIDEO_CAPS_MAKE_WITH_FEATURES ( - GST_CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META, "{ RGBA, BGRA }") ", " + GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS ", " GST_CAPS_INTERLACED_FALSE "; " GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) ", " GST_CAPS_INTERLACED_FALSE; diff --git a/gst/vaapi/gstvaapiencode_h264.c b/gst/vaapi/gstvaapiencode_h264.c index 2a95d65001..7800786150 100644 --- a/gst/vaapi/gstvaapiencode_h264.c +++ b/gst/vaapi/gstvaapiencode_h264.c @@ -42,8 +42,7 @@ GST_DEBUG_CATEGORY_STATIC (gst_vaapi_h264_encode_debug); /* *INDENT-OFF* */ static const char gst_vaapiencode_h264_sink_caps_str[] = - GST_VIDEO_CAPS_MAKE_WITH_FEATURES (GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE, - "{ ENCODED, NV12, I420, YV12 }") ", " + GST_VAAPI_MAKE_ENC_SURFACE_CAPS ", " GST_CAPS_INTERLACED_FALSE "; " GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) ", " GST_CAPS_INTERLACED_FALSE; diff --git a/gst/vaapi/gstvaapiencode_h265.c b/gst/vaapi/gstvaapiencode_h265.c index 9bd38b6eb3..964048a54b 100644 --- a/gst/vaapi/gstvaapiencode_h265.c +++ b/gst/vaapi/gstvaapiencode_h265.c @@ -41,8 +41,7 @@ GST_DEBUG_CATEGORY_STATIC (gst_vaapi_h265_encode_debug); /* *INDENT-OFF* */ static const char gst_vaapiencode_h265_sink_caps_str[] = - GST_VIDEO_CAPS_MAKE_WITH_FEATURES (GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE, - "{ ENCODED, NV12, I420, YV12 }") ", " + GST_VAAPI_MAKE_ENC_SURFACE_CAPS ", " GST_CAPS_INTERLACED_FALSE "; " GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) ", " GST_CAPS_INTERLACED_FALSE; diff --git a/gst/vaapi/gstvaapiencode_jpeg.c b/gst/vaapi/gstvaapiencode_jpeg.c index a5a93621b9..d9dd34510a 100644 --- a/gst/vaapi/gstvaapiencode_jpeg.c +++ b/gst/vaapi/gstvaapiencode_jpeg.c @@ -38,8 +38,7 @@ GST_DEBUG_CATEGORY_STATIC (gst_vaapi_jpeg_encode_debug); /* *INDENT-OFF* */ static const char gst_vaapiencode_jpeg_sink_caps_str[] = - GST_VIDEO_CAPS_MAKE_WITH_FEATURES (GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE, - "{ ENCODED, NV12, I420, YV12 }") ", " + GST_VAAPI_MAKE_ENC_SURFACE_CAPS ", " GST_CAPS_INTERLACED_FALSE "; " GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) ", " GST_CAPS_INTERLACED_FALSE; diff --git a/gst/vaapi/gstvaapiencode_mpeg2.c b/gst/vaapi/gstvaapiencode_mpeg2.c index d48252632c..5584c60185 100644 --- a/gst/vaapi/gstvaapiencode_mpeg2.c +++ b/gst/vaapi/gstvaapiencode_mpeg2.c @@ -40,8 +40,7 @@ GST_DEBUG_CATEGORY_STATIC (gst_vaapi_mpeg2_encode_debug); /* *INDENT-OFF* */ static const char gst_vaapiencode_mpeg2_sink_caps_str[] = - GST_VIDEO_CAPS_MAKE_WITH_FEATURES (GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE, - "{ ENCODED, NV12, I420, YV12 }") ", " + GST_VAAPI_MAKE_ENC_SURFACE_CAPS ", " GST_CAPS_INTERLACED_FALSE "; " GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) ", " GST_CAPS_INTERLACED_FALSE; diff --git a/gst/vaapi/gstvaapiencode_vp8.c b/gst/vaapi/gstvaapiencode_vp8.c index eb4bb1dfb1..366cdfd894 100644 --- a/gst/vaapi/gstvaapiencode_vp8.c +++ b/gst/vaapi/gstvaapiencode_vp8.c @@ -38,8 +38,7 @@ GST_DEBUG_CATEGORY_STATIC (gst_vaapi_vp8_encode_debug); /* *INDENT-OFF* */ static const char gst_vaapiencode_vp8_sink_caps_str[] = - GST_VIDEO_CAPS_MAKE_WITH_FEATURES (GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE, - "{ ENCODED, NV12, I420, YV12 }") ", " + GST_VAAPI_MAKE_ENC_SURFACE_CAPS ", " GST_CAPS_INTERLACED_FALSE "; " GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) ", " GST_CAPS_INTERLACED_FALSE; diff --git a/gst/vaapi/gstvaapipluginutil.h b/gst/vaapi/gstvaapipluginutil.h index 5b437c7678..3decd05945 100644 --- a/gst/vaapi/gstvaapipluginutil.h +++ b/gst/vaapi/gstvaapipluginutil.h @@ -97,6 +97,18 @@ gst_vaapi_caps_feature_to_string (GstVaapiCapsFeature feature); # define GST_CAPS_INTERLACED_FALSE \ "interlace-mode = (string)progressive" +#define GST_VAAPI_MAKE_SURFACE_CAPS \ + GST_VIDEO_CAPS_MAKE_WITH_FEATURES( \ + GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE, "{ ENCODED, I420, YV12, NV12 }") + +#define GST_VAAPI_MAKE_ENC_SURFACE_CAPS \ + GST_VIDEO_CAPS_MAKE_WITH_FEATURES( \ + GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE, "{ ENCODED, NV12, I420, YV12 }") + +#define GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS \ + GST_VIDEO_CAPS_MAKE_WITH_FEATURES( \ + GST_CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META, "{ RGBA, BGRA }") + G_GNUC_INTERNAL gboolean gst_caps_set_interlaced (GstCaps * caps, GstVideoInfo * vip); diff --git a/gst/vaapi/gstvaapipostproc.c b/gst/vaapi/gstvaapipostproc.c index c7fc155c95..fc8c7cb208 100644 --- a/gst/vaapi/gstvaapipostproc.c +++ b/gst/vaapi/gstvaapipostproc.c @@ -44,29 +44,21 @@ GST_DEBUG_CATEGORY_STATIC (gst_debug_vaapipostproc); #define GST_CAT_DEFAULT gst_debug_vaapipostproc -# define GST_VAAPIPOSTPROC_SURFACE_CAPS \ - GST_VIDEO_CAPS_MAKE_WITH_FEATURES( \ - GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE, "{ ENCODED, I420, YV12, NV12 }") - -# define GST_VAAPIPOSTPROC_GLTEXUPLOAD_CAPS \ - GST_VIDEO_CAPS_MAKE_WITH_FEATURES( \ - GST_CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META, "{ RGBA, BGRA }") - /* Default templates */ /* *INDENT-OFF* */ static const char gst_vaapipostproc_sink_caps_str[] = - GST_VAAPIPOSTPROC_SURFACE_CAPS ", " + GST_VAAPI_MAKE_SURFACE_CAPS ", " GST_CAPS_INTERLACED_MODES "; " - GST_VAAPIPOSTPROC_GLTEXUPLOAD_CAPS "; " + GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS "; " GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) ", " GST_CAPS_INTERLACED_MODES; /* *INDENT-ON* */ /* *INDENT-OFF* */ static const char gst_vaapipostproc_src_caps_str[] = - GST_VAAPIPOSTPROC_SURFACE_CAPS ", " + GST_VAAPI_MAKE_SURFACE_CAPS ", " GST_CAPS_INTERLACED_FALSE "; " - GST_VAAPIPOSTPROC_GLTEXUPLOAD_CAPS "; " + GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS "; " GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) ", " GST_CAPS_INTERLACED_FALSE; /* *INDENT-ON* */ @@ -923,7 +915,7 @@ ensure_allowed_sinkpad_caps (GstVaapiPostproc * postproc) return TRUE; /* Create VA caps */ - out_caps = gst_caps_from_string (GST_VAAPIPOSTPROC_SURFACE_CAPS ", " + out_caps = gst_caps_from_string (GST_VAAPI_MAKE_SURFACE_CAPS ", " GST_CAPS_INTERLACED_MODES); if (!out_caps) { GST_ERROR_OBJECT (postproc, "failed to create VA sink caps"); diff --git a/gst/vaapi/gstvaapisink.c b/gst/vaapi/gstvaapisink.c index 991e0fa8fa..b148cacc9e 100644 --- a/gst/vaapi/gstvaapisink.c +++ b/gst/vaapi/gstvaapisink.c @@ -57,9 +57,7 @@ GST_DEBUG_CATEGORY_STATIC (gst_debug_vaapisink); /* Default template */ /* *INDENT-OFF* */ static const char gst_vaapisink_sink_caps_str[] = - GST_VIDEO_CAPS_MAKE_WITH_FEATURES ( - GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE, - "{ ENCODED, NV12, I420, YV12 }") ";" + GST_VAAPI_MAKE_ENC_SURFACE_CAPS ";" #if GST_CHECK_VERSION(1,3,1) GST_VIDEO_CAPS_MAKE_WITH_FEATURES ( GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE ","