mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-28 04:31:06 +00:00
Removal of gstreamer-1.0 support
The support for GStreamer 1.0 has been obsoleted in 0.5.10 release. GStreamer 1.2 is the a minimal requirement for building the gstreamer-vaapi. This patch removes all the pre-processor conditional code compilation guarded for gstreamer-1.0. Thus, all the video converters were removed too. https://bugzilla.gnome.org/show_bug.cgi?id=745728 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
This commit is contained in:
parent
c561b8da8a
commit
8b36e25f47
19 changed files with 9 additions and 667 deletions
|
@ -36,7 +36,7 @@
|
|||
#include "gstvaapidecode.h"
|
||||
#include "gstvaapipluginutil.h"
|
||||
#include "gstvaapivideobuffer.h"
|
||||
#if GST_CHECK_VERSION(1,1,0) && (USE_GLX || USE_EGL)
|
||||
#if (USE_GLX || USE_EGL)
|
||||
#include "gstvaapivideometa_texture.h"
|
||||
#endif
|
||||
#include "gstvaapivideobufferpool.h"
|
||||
|
@ -74,15 +74,11 @@ static const char gst_vaapidecode_sink_caps_str[] =
|
|||
;
|
||||
|
||||
static const char gst_vaapidecode_src_caps_str[] =
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
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_VIDEO_CAPS_MAKE("{ I420, YV12, NV12 }");
|
||||
#else
|
||||
GST_VAAPI_SURFACE_CAPS;
|
||||
#endif
|
||||
|
||||
static GstStaticPadTemplate gst_vaapidecode_sink_factory =
|
||||
GST_STATIC_PAD_TEMPLATE(
|
||||
|
@ -178,7 +174,6 @@ gst_vaapidecode_update_src_caps (GstVaapiDecode * decode)
|
|||
|
||||
ref_state = decode->input_state;
|
||||
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
GstCapsFeatures *features = NULL;
|
||||
GstVaapiCapsFeature feature;
|
||||
|
||||
|
@ -209,7 +204,6 @@ gst_vaapidecode_update_src_caps (GstVaapiDecode * decode)
|
|||
default:
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
state = gst_video_decoder_set_output_state (vdec, format,
|
||||
ref_state->info.width, ref_state->info.height,
|
||||
|
@ -219,27 +213,9 @@ gst_vaapidecode_update_src_caps (GstVaapiDecode * decode)
|
|||
|
||||
vi = &state->info;
|
||||
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
state->caps = gst_video_info_to_caps (vi);
|
||||
if (features)
|
||||
gst_caps_set_features (state->caps, 0, features);
|
||||
#else
|
||||
/* XXX: gst_video_info_to_caps() from GStreamer 0.10 does not
|
||||
reconstruct suitable caps for "encoded" video formats */
|
||||
state->caps = gst_caps_from_string (GST_VAAPI_SURFACE_CAPS_NAME);
|
||||
if (!state->caps)
|
||||
return FALSE;
|
||||
|
||||
gst_caps_set_simple (state->caps,
|
||||
"type", G_TYPE_STRING, "vaapi",
|
||||
"opengl", G_TYPE_BOOLEAN, USE_GLX,
|
||||
"width", G_TYPE_INT, vi->width,
|
||||
"height", G_TYPE_INT, vi->height,
|
||||
"framerate", GST_TYPE_FRACTION, vi->fps_n, vi->fps_d,
|
||||
"pixel-aspect-ratio", GST_TYPE_FRACTION, vi->par_n, vi->par_d, NULL);
|
||||
|
||||
gst_caps_set_interlaced (state->caps, vi);
|
||||
#endif
|
||||
gst_caps_replace (&decode->srcpad_caps, state->caps);
|
||||
gst_video_codec_state_unref (state);
|
||||
return TRUE;
|
||||
|
@ -303,7 +279,7 @@ gst_vaapidecode_push_decoded_frame (GstVideoDecoder * vdec,
|
|||
crop_meta->height = crop_rect->height;
|
||||
}
|
||||
}
|
||||
#if GST_CHECK_VERSION(1,1,0) && (USE_GLX || USE_EGL)
|
||||
#if (USE_GLX || USE_EGL)
|
||||
if (decode->has_texture_upload_meta)
|
||||
gst_buffer_ensure_texture_upload_meta (out_frame->output_buffer);
|
||||
#endif
|
||||
|
@ -541,7 +517,7 @@ gst_vaapidecode_decide_allocation (GstVideoDecoder * vdec, GstQuery * query)
|
|||
gst_vaapi_find_preferred_caps_feature (GST_VIDEO_DECODER_SRC_PAD (vdec),
|
||||
GST_VIDEO_FORMAT_ENCODED, &out_format);
|
||||
decode->has_texture_upload_meta = FALSE;
|
||||
#if GST_CHECK_VERSION(1,1,0) && (USE_GLX || USE_EGL)
|
||||
#if (USE_GLX || USE_EGL)
|
||||
decode->has_texture_upload_meta =
|
||||
(feature == GST_VAAPI_CAPS_FEATURE_GL_TEXTURE_UPLOAD_META) &&
|
||||
gst_query_find_allocation_meta (query,
|
||||
|
|
|
@ -46,14 +46,9 @@ enum
|
|||
PROP_MAX_SIZE_TIME
|
||||
};
|
||||
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
#define GST_VAAPI_DECODE_BIN_SURFACE_CAPS \
|
||||
GST_VIDEO_CAPS_MAKE_WITH_FEATURES( \
|
||||
GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE, "{ ENCODED, I420, YV12, NV12 }")
|
||||
#else
|
||||
#define GST_VAAPI_DECODE_BIN_SURFACE_CAPS \
|
||||
GST_VAAPI_SURFACE_CAPS
|
||||
#endif
|
||||
|
||||
/* Default templates */
|
||||
#define GST_CAPS_CODEC(CODEC) CODEC "; "
|
||||
|
@ -75,11 +70,9 @@ static const char gst_vaapi_decode_bin_sink_caps_str[] =
|
|||
static const char gst_vaapi_decode_bin_src_caps_str[] =
|
||||
GST_VAAPI_DECODE_BIN_SURFACE_CAPS ", "
|
||||
GST_CAPS_INTERLACED_FALSE "; "
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
GST_VIDEO_CAPS_MAKE_WITH_FEATURES (
|
||||
GST_CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META, "{ RGBA, BGRA }") ", "
|
||||
GST_CAPS_INTERLACED_FALSE "; "
|
||||
#endif
|
||||
GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) ", "
|
||||
GST_CAPS_INTERLACED_FALSE;
|
||||
/* *INDENT-ON* */
|
||||
|
|
|
@ -42,12 +42,8 @@ GST_DEBUG_CATEGORY_STATIC (gst_vaapi_h264_encode_debug);
|
|||
|
||||
/* *INDENT-OFF* */
|
||||
static const char gst_vaapiencode_h264_sink_caps_str[] =
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
GST_VIDEO_CAPS_MAKE_WITH_FEATURES (GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE,
|
||||
"{ ENCODED, NV12, I420, YV12 }") ", "
|
||||
#else
|
||||
GST_VAAPI_SURFACE_CAPS ", "
|
||||
#endif
|
||||
GST_CAPS_INTERLACED_FALSE "; "
|
||||
GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) ", "
|
||||
GST_CAPS_INTERLACED_FALSE;
|
||||
|
|
|
@ -38,12 +38,8 @@ GST_DEBUG_CATEGORY_STATIC (gst_vaapi_jpeg_encode_debug);
|
|||
|
||||
/* *INDENT-OFF* */
|
||||
static const char gst_vaapiencode_jpeg_sink_caps_str[] =
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
GST_VIDEO_CAPS_MAKE_WITH_FEATURES (GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE,
|
||||
"{ ENCODED, NV12, I420, YV12 }") ", "
|
||||
#else
|
||||
GST_VAAPI_SURFACE_CAPS ", "
|
||||
#endif
|
||||
GST_CAPS_INTERLACED_FALSE "; "
|
||||
GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) ", "
|
||||
GST_CAPS_INTERLACED_FALSE;
|
||||
|
|
|
@ -40,12 +40,8 @@ GST_DEBUG_CATEGORY_STATIC (gst_vaapi_mpeg2_encode_debug);
|
|||
|
||||
/* *INDENT-OFF* */
|
||||
static const char gst_vaapiencode_mpeg2_sink_caps_str[] =
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
GST_VIDEO_CAPS_MAKE_WITH_FEATURES (GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE,
|
||||
"{ ENCODED, NV12, I420, YV12 }") ", "
|
||||
#else
|
||||
GST_VAAPI_SURFACE_CAPS ", "
|
||||
#endif
|
||||
GST_CAPS_INTERLACED_FALSE "; "
|
||||
GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) ", "
|
||||
GST_CAPS_INTERLACED_FALSE;
|
||||
|
|
|
@ -38,12 +38,8 @@ GST_DEBUG_CATEGORY_STATIC (gst_vaapi_vp8_encode_debug);
|
|||
|
||||
/* *INDENT-OFF* */
|
||||
static const char gst_vaapiencode_vp8_sink_caps_str[] =
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
GST_VIDEO_CAPS_MAKE_WITH_FEATURES (GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE,
|
||||
"{ ENCODED, NV12, I420, YV12 }") ", "
|
||||
#else
|
||||
GST_VAAPI_SURFACE_CAPS ", "
|
||||
#endif
|
||||
GST_CAPS_INTERLACED_FALSE "; "
|
||||
GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) ", "
|
||||
GST_CAPS_INTERLACED_FALSE;
|
||||
|
|
|
@ -30,9 +30,7 @@
|
|||
#include "gstvaapivideocontext.h"
|
||||
#include "gstvaapivideometa.h"
|
||||
#include "gstvaapivideobufferpool.h"
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
#include <gst/allocators/allocators.h>
|
||||
#endif
|
||||
|
||||
/* Default debug category is from the subclass */
|
||||
#define GST_CAT_DEFAULT (plugin->debug_category)
|
||||
|
@ -57,7 +55,6 @@ plugin_set_display (GstVaapiPluginBase * plugin, GstVaapiDisplay * display)
|
|||
gst_vaapi_display_unref (display);
|
||||
}
|
||||
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
static void
|
||||
plugin_set_context (GstElement * element, GstContext * context)
|
||||
{
|
||||
|
@ -67,33 +64,10 @@ plugin_set_context (GstElement * element, GstContext * context)
|
|||
if (gst_vaapi_video_context_get_display (context, &display))
|
||||
plugin_set_display (plugin, display);
|
||||
}
|
||||
#else
|
||||
static void
|
||||
plugin_set_context (GstVideoContext * context, const gchar * type,
|
||||
const GValue * value)
|
||||
{
|
||||
GstVaapiPluginBase *const plugin = GST_VAAPI_PLUGIN_BASE (context);
|
||||
GstVaapiDisplay *display = NULL;
|
||||
|
||||
gst_vaapi_set_display (type, value, &display);
|
||||
plugin_set_display (plugin, display);
|
||||
}
|
||||
|
||||
static void
|
||||
video_context_interface_init (GstVideoContextInterface * iface)
|
||||
{
|
||||
iface->set_context = plugin_set_context;
|
||||
}
|
||||
|
||||
#define GstVideoContextClass GstVideoContextInterface
|
||||
#endif
|
||||
|
||||
void
|
||||
gst_vaapi_plugin_base_init_interfaces (GType g_define_type_id)
|
||||
{
|
||||
#if !GST_CHECK_VERSION(1,1,0)
|
||||
G_IMPLEMENT_INTERFACE (GST_TYPE_VIDEO_CONTEXT, video_context_interface_init);
|
||||
#endif
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@ -133,7 +107,6 @@ plugin_update_sinkpad_info_from_buffer (GstVaapiPluginBase * plugin,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
static gboolean
|
||||
is_dma_buffer (GstBuffer * buf)
|
||||
{
|
||||
|
@ -197,7 +170,6 @@ error_create_proxy:
|
|||
GST_ERROR ("failed to create VA surface proxy from wrapped VA surface");
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
gst_vaapi_plugin_base_class_init (GstVaapiPluginBaseClass * klass)
|
||||
|
@ -205,10 +177,8 @@ gst_vaapi_plugin_base_class_init (GstVaapiPluginBaseClass * klass)
|
|||
klass->has_interface = default_has_interface;
|
||||
klass->display_changed = default_display_changed;
|
||||
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
GstElementClass *const element_class = GST_ELEMENT_CLASS (klass);
|
||||
element_class->set_context = GST_DEBUG_FUNCPTR (plugin_set_context);
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -640,7 +610,7 @@ gst_vaapi_plugin_base_decide_allocation (GstVaapiPluginBase * plugin,
|
|||
gboolean need_pool, update_pool;
|
||||
gboolean has_video_meta = FALSE;
|
||||
gboolean has_video_alignment = FALSE;
|
||||
#if GST_CHECK_VERSION(1,1,0) && (USE_GLX || USE_EGL)
|
||||
#if (USE_GLX || USE_EGL)
|
||||
gboolean has_texture_upload_meta = FALSE;
|
||||
guint idx;
|
||||
#endif
|
||||
|
@ -664,7 +634,7 @@ gst_vaapi_plugin_base_decide_allocation (GstVaapiPluginBase * plugin,
|
|||
has_video_meta = gst_query_find_allocation_meta (query,
|
||||
GST_VIDEO_META_API_TYPE, NULL);
|
||||
|
||||
#if GST_CHECK_VERSION(1,1,0) && (USE_GLX || USE_EGL)
|
||||
#if (USE_GLX || USE_EGL)
|
||||
has_texture_upload_meta = gst_query_find_allocation_meta (query,
|
||||
GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE, &idx) &&
|
||||
(feature == GST_VAAPI_CAPS_FEATURE_GL_TEXTURE_UPLOAD_META);
|
||||
|
@ -746,7 +716,7 @@ gst_vaapi_plugin_base_decide_allocation (GstVaapiPluginBase * plugin,
|
|||
}
|
||||
|
||||
/* GstVideoGLTextureUploadMeta (OpenGL) */
|
||||
#if GST_CHECK_VERSION(1,1,0) && (USE_GLX || USE_EGL)
|
||||
#if (USE_GLX || USE_EGL)
|
||||
if (has_texture_upload_meta) {
|
||||
config = gst_buffer_pool_get_config (pool);
|
||||
gst_buffer_pool_config_add_option (config,
|
||||
|
@ -871,13 +841,11 @@ gst_vaapi_plugin_base_get_input_buffer (GstVaapiPluginBase * plugin,
|
|||
&outbuf, NULL) != GST_FLOW_OK)
|
||||
goto error_create_buffer;
|
||||
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
if (is_dma_buffer (inbuf)) {
|
||||
if (!plugin_bind_dma_to_vaapi_buffer (plugin, inbuf, outbuf))
|
||||
goto error_bind_dma_buffer;
|
||||
goto done;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!gst_video_frame_map (&src_frame, &plugin->sinkpad_info, inbuf,
|
||||
GST_MAP_READ))
|
||||
|
|
|
@ -278,75 +278,9 @@ gst_vaapi_ensure_display (gpointer element, GstVaapiDisplayType type)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
gst_vaapi_set_display (const gchar * type,
|
||||
const GValue * value, GstVaapiDisplay ** display_ptr)
|
||||
{
|
||||
GstVaapiDisplay *display = NULL;
|
||||
|
||||
if (!strcmp (type, "vaapi-display")) {
|
||||
g_return_if_fail (G_VALUE_HOLDS_POINTER (value));
|
||||
display = gst_vaapi_display_new_with_display (g_value_get_pointer (value));
|
||||
} else if (!strcmp (type, "gst-vaapi-display")) {
|
||||
g_return_if_fail (G_VALUE_HOLDS_POINTER (value));
|
||||
display = gst_vaapi_display_ref (g_value_get_pointer (value));
|
||||
}
|
||||
#if USE_DRM
|
||||
else if (!strcmp (type, "drm-device")) {
|
||||
gint device;
|
||||
g_return_if_fail (G_VALUE_HOLDS_INT (value));
|
||||
device = g_value_get_int (value);
|
||||
display = gst_vaapi_display_drm_new_with_device (device);
|
||||
} else if (!strcmp (type, "drm-device-path")) {
|
||||
const gchar *device_path;
|
||||
g_return_if_fail (G_VALUE_HOLDS_STRING (value));
|
||||
device_path = g_value_get_string (value);
|
||||
display = gst_vaapi_display_drm_new (device_path);
|
||||
}
|
||||
#endif
|
||||
#if USE_X11
|
||||
else if (!strcmp (type, "x11-display-name")) {
|
||||
g_return_if_fail (G_VALUE_HOLDS_STRING (value));
|
||||
#if USE_GLX
|
||||
display = gst_vaapi_display_glx_new (g_value_get_string (value));
|
||||
#endif
|
||||
if (!display)
|
||||
display = gst_vaapi_display_x11_new (g_value_get_string (value));
|
||||
} else if (!strcmp (type, "x11-display")) {
|
||||
g_return_if_fail (G_VALUE_HOLDS_POINTER (value));
|
||||
#if USE_GLX
|
||||
display =
|
||||
gst_vaapi_display_glx_new_with_display (g_value_get_pointer (value));
|
||||
#endif
|
||||
if (!display)
|
||||
display =
|
||||
gst_vaapi_display_x11_new_with_display (g_value_get_pointer (value));
|
||||
}
|
||||
#endif
|
||||
#if USE_WAYLAND
|
||||
else if (!strcmp (type, "wl-display")) {
|
||||
struct wl_display *wl_display;
|
||||
g_return_if_fail (G_VALUE_HOLDS_POINTER (value));
|
||||
wl_display = g_value_get_pointer (value);
|
||||
display = gst_vaapi_display_wayland_new_with_display (wl_display);
|
||||
} else if (!strcmp (type, "wl-display-name")) {
|
||||
const gchar *display_name;
|
||||
g_return_if_fail (G_VALUE_HOLDS_STRING (value));
|
||||
display_name = g_value_get_string (value);
|
||||
display = gst_vaapi_display_wayland_new (display_name);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (display) {
|
||||
gst_vaapi_display_replace (display_ptr, display);
|
||||
gst_vaapi_display_unref (display);
|
||||
}
|
||||
}
|
||||
|
||||
gboolean
|
||||
gst_vaapi_reply_to_query (GstQuery * query, GstVaapiDisplay * display)
|
||||
{
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
const gchar *type = NULL;
|
||||
GstContext *context;
|
||||
|
||||
|
@ -367,88 +301,6 @@ gst_vaapi_reply_to_query (GstQuery * query, GstVaapiDisplay * display)
|
|||
gst_context_unref (context);
|
||||
|
||||
return TRUE;
|
||||
#else
|
||||
GstVaapiDisplayType display_type;
|
||||
const gchar **types;
|
||||
const gchar *type;
|
||||
gint i;
|
||||
gboolean res = FALSE;
|
||||
|
||||
if (GST_QUERY_TYPE (query) != GST_QUERY_CUSTOM)
|
||||
return FALSE;
|
||||
|
||||
if (!display)
|
||||
return FALSE;
|
||||
|
||||
types = gst_video_context_query_get_supported_types (query);
|
||||
|
||||
if (!types)
|
||||
return FALSE;
|
||||
|
||||
display_type = gst_vaapi_display_get_display_type (display);
|
||||
for (i = 0; types[i] && !res; i++) {
|
||||
type = types[i];
|
||||
|
||||
res = TRUE;
|
||||
if (!strcmp (type, "gst-vaapi-display")) {
|
||||
gst_video_context_query_set_pointer (query, type, display);
|
||||
} else if (!strcmp (type, "vaapi-display")) {
|
||||
VADisplay vadpy = gst_vaapi_display_get_display (display);
|
||||
gst_video_context_query_set_pointer (query, type, vadpy);
|
||||
} else {
|
||||
switch (display_type) {
|
||||
#if USE_DRM
|
||||
case GST_VAAPI_DISPLAY_TYPE_DRM:{
|
||||
GstVaapiDisplayDRM *const drm_dpy = GST_VAAPI_DISPLAY_DRM (display);
|
||||
if (!strcmp (type, "drm-device-path"))
|
||||
gst_video_context_query_set_string (query, type,
|
||||
gst_vaapi_display_drm_get_device_path (drm_dpy));
|
||||
#if 0
|
||||
/* XXX: gst_video_context_query_set_int() does not exist yet */
|
||||
else if (!strcmp (type, "drm-device"))
|
||||
gst_video_context_query_set_int (query, type,
|
||||
gst_vaapi_display_drm_get_device (drm_dpy));
|
||||
#endif
|
||||
else
|
||||
res = FALSE;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#if USE_X11
|
||||
case GST_VAAPI_DISPLAY_TYPE_X11:{
|
||||
GstVaapiDisplayX11 *const xvadpy = GST_VAAPI_DISPLAY_X11 (display);
|
||||
Display *const x11dpy = gst_vaapi_display_x11_get_display (xvadpy);
|
||||
if (!strcmp (type, "x11-display"))
|
||||
gst_video_context_query_set_pointer (query, type, x11dpy);
|
||||
else if (!strcmp (type, "x11-display-name"))
|
||||
gst_video_context_query_set_string (query, type,
|
||||
DisplayString (x11dpy));
|
||||
else
|
||||
res = FALSE;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#if USE_WAYLAND
|
||||
case GST_VAAPI_DISPLAY_TYPE_WAYLAND:{
|
||||
GstVaapiDisplayWayland *const wlvadpy =
|
||||
GST_VAAPI_DISPLAY_WAYLAND (display);
|
||||
struct wl_display *const wldpy =
|
||||
gst_vaapi_display_wayland_get_display (wlvadpy);
|
||||
if (!strcmp (type, "wl-display"))
|
||||
gst_video_context_query_set_pointer (query, type, wldpy);
|
||||
else
|
||||
res = FALSE;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
default:
|
||||
res = FALSE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return res;
|
||||
#endif /* !GST_CHECK_VERSION(1,1,0) */
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
@ -584,7 +436,6 @@ gst_vaapi_video_format_new_template_caps_with_features (GstVideoFormat format,
|
|||
if (!caps)
|
||||
return NULL;
|
||||
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
GstCapsFeatures *const features =
|
||||
gst_caps_features_new (features_string, NULL);
|
||||
if (!features) {
|
||||
|
@ -592,19 +443,14 @@ gst_vaapi_video_format_new_template_caps_with_features (GstVideoFormat format,
|
|||
return NULL;
|
||||
}
|
||||
gst_caps_set_features (caps, 0, features);
|
||||
#endif
|
||||
return caps;
|
||||
}
|
||||
|
||||
static GstCaps *
|
||||
new_gl_texture_upload_meta_caps (void)
|
||||
{
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
return gst_caps_from_string (GST_VIDEO_CAPS_MAKE_WITH_FEATURES (
|
||||
GST_CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META, "{ RGBA, BGRA }"));
|
||||
#else
|
||||
return gst_caps_new_empty ();
|
||||
#endif
|
||||
}
|
||||
|
||||
GstVaapiCapsFeature
|
||||
|
@ -612,7 +458,6 @@ gst_vaapi_find_preferred_caps_feature (GstPad * pad, GstVideoFormat format,
|
|||
GstVideoFormat * out_format_ptr)
|
||||
{
|
||||
GstVaapiCapsFeature feature = GST_VAAPI_CAPS_FEATURE_SYSTEM_MEMORY;
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
guint i, num_structures;
|
||||
GstCaps *caps = NULL;
|
||||
GstCaps *gl_texture_upload_caps = NULL;
|
||||
|
@ -682,7 +527,6 @@ gst_vaapi_find_preferred_caps_feature (GstPad * pad, GstVideoFormat format,
|
|||
}
|
||||
|
||||
if (out_format_ptr) {
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
if (feature == GST_VAAPI_CAPS_FEATURE_GL_TEXTURE_UPLOAD_META) {
|
||||
GstStructure *structure;
|
||||
gchar *format_str;
|
||||
|
@ -703,7 +547,6 @@ gst_vaapi_find_preferred_caps_feature (GstPad * pad, GstVideoFormat format,
|
|||
} while (0);
|
||||
if (!out_format)
|
||||
goto cleanup;
|
||||
#endif
|
||||
}
|
||||
*out_format_ptr = out_format;
|
||||
}
|
||||
|
@ -714,7 +557,6 @@ cleanup:
|
|||
gst_caps_replace (&vaapi_caps, NULL);
|
||||
gst_caps_replace (&caps, NULL);
|
||||
gst_caps_replace (&out_caps, NULL);
|
||||
#endif
|
||||
return feature;
|
||||
}
|
||||
|
||||
|
@ -724,7 +566,6 @@ gst_vaapi_caps_feature_to_string (GstVaapiCapsFeature feature)
|
|||
const gchar *str;
|
||||
|
||||
switch (feature) {
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
case GST_VAAPI_CAPS_FEATURE_SYSTEM_MEMORY:
|
||||
str = GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY;
|
||||
break;
|
||||
|
@ -734,7 +575,6 @@ gst_vaapi_caps_feature_to_string (GstVaapiCapsFeature feature)
|
|||
case GST_VAAPI_CAPS_FEATURE_VAAPI_SURFACE:
|
||||
str = GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
str = NULL;
|
||||
break;
|
||||
|
@ -782,7 +622,6 @@ gst_caps_has_vaapi_surface (GstCaps * caps)
|
|||
if (num_structures < 1)
|
||||
return FALSE;
|
||||
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
for (i = 0; i < num_structures && !found_caps; i++) {
|
||||
GstCapsFeatures *const features = gst_caps_get_features (caps, i);
|
||||
|
||||
|
@ -795,21 +634,6 @@ gst_caps_has_vaapi_surface (GstCaps * caps)
|
|||
found_caps = gst_caps_features_contains (features,
|
||||
GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE);
|
||||
}
|
||||
#else
|
||||
for (i = 0; i < num_structures && !found_caps; i++) {
|
||||
GstStructure *const structure = gst_caps_get_structure (caps, i);
|
||||
GstCaps *test_caps;
|
||||
GstVideoInfo vi;
|
||||
|
||||
test_caps = gst_caps_new_full (gst_structure_copy (structure), NULL);
|
||||
if (!test_caps)
|
||||
continue;
|
||||
|
||||
found_caps = gst_video_info_from_caps (&vi, test_caps) &&
|
||||
GST_VIDEO_INFO_FORMAT (&vi) == GST_VIDEO_FORMAT_ENCODED;
|
||||
gst_caps_unref (test_caps);
|
||||
}
|
||||
#endif
|
||||
return found_caps;
|
||||
}
|
||||
|
||||
|
|
|
@ -33,11 +33,6 @@ G_GNUC_INTERNAL
|
|||
gboolean
|
||||
gst_vaapi_ensure_display (gpointer element, GstVaapiDisplayType type);
|
||||
|
||||
G_GNUC_INTERNAL
|
||||
void
|
||||
gst_vaapi_set_display (const gchar * type,
|
||||
const GValue * value, GstVaapiDisplay ** display_ptr);
|
||||
|
||||
G_GNUC_INTERNAL
|
||||
gboolean
|
||||
gst_vaapi_reply_to_query (GstQuery * query, GstVaapiDisplay * display);
|
||||
|
|
|
@ -44,14 +44,9 @@
|
|||
GST_DEBUG_CATEGORY_STATIC (gst_debug_vaapipostproc);
|
||||
#define GST_CAT_DEFAULT gst_debug_vaapipostproc
|
||||
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
# define GST_VAAPIPOSTPROC_SURFACE_CAPS \
|
||||
GST_VIDEO_CAPS_MAKE_WITH_FEATURES( \
|
||||
GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE, "{ ENCODED, I420, YV12, NV12 }")
|
||||
#else
|
||||
# define GST_VAAPIPOSTPROC_SURFACE_CAPS \
|
||||
GST_VAAPI_SURFACE_CAPS
|
||||
#endif
|
||||
|
||||
/* Default templates */
|
||||
/* *INDENT-OFF* */
|
||||
|
@ -66,11 +61,9 @@ static const char gst_vaapipostproc_sink_caps_str[] =
|
|||
static const char gst_vaapipostproc_src_caps_str[] =
|
||||
GST_VAAPIPOSTPROC_SURFACE_CAPS ", "
|
||||
GST_CAPS_INTERLACED_FALSE "; "
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
GST_VIDEO_CAPS_MAKE_WITH_FEATURES (
|
||||
GST_CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META, "{ RGBA, BGRA }") ", "
|
||||
GST_CAPS_INTERLACED_FALSE "; "
|
||||
#endif
|
||||
GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) ", "
|
||||
GST_CAPS_INTERLACED_FALSE;
|
||||
/* *INDENT-ON* */
|
||||
|
@ -961,12 +954,10 @@ expand_allowed_srcpad_caps (GstVaapiPostproc * postproc, GstCaps * caps)
|
|||
|
||||
num_structures = gst_caps_get_size (caps);
|
||||
for (i = 0; i < num_structures; i++) {
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
GstCapsFeatures *const features = gst_caps_get_features (caps, i);
|
||||
if (gst_caps_features_contains (features,
|
||||
GST_CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META))
|
||||
continue;
|
||||
#endif
|
||||
|
||||
GstStructure *const structure = gst_caps_get_structure (caps, i);
|
||||
if (!structure)
|
||||
|
@ -1038,10 +1029,8 @@ gst_vaapipostproc_transform_caps_impl (GstBaseTransform * trans,
|
|||
GstVideoInfo vi;
|
||||
GstVideoFormat out_format;
|
||||
GstCaps *out_caps;
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
GstVaapiCapsFeature feature;
|
||||
const gchar *feature_str;
|
||||
#endif
|
||||
guint width, height;
|
||||
|
||||
/* Generate the sink pad caps, that could be fixated afterwards */
|
||||
|
@ -1081,7 +1070,6 @@ gst_vaapipostproc_transform_caps_impl (GstBaseTransform * trans,
|
|||
find_best_size (postproc, &vi, &width, &height);
|
||||
|
||||
// Update format from user-specified parameters
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
/* XXX: this is a workaround until auto-plugging is fixed when
|
||||
* format=ENCODED + memory:VASurface caps feature are provided.
|
||||
* use the downstream negotiated video format as the output format
|
||||
|
@ -1109,12 +1097,8 @@ gst_vaapipostproc_transform_caps_impl (GstBaseTransform * trans,
|
|||
feature =
|
||||
gst_vaapi_find_preferred_caps_feature (GST_BASE_TRANSFORM_SRC_PAD (trans),
|
||||
out_format, &out_format);
|
||||
#else
|
||||
out_format = GST_VIDEO_FORMAT_ENCODED;
|
||||
#endif
|
||||
gst_video_info_change_format (&vi, out_format, width, height);
|
||||
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
out_caps = gst_video_info_to_caps (&vi);
|
||||
if (!out_caps)
|
||||
return NULL;
|
||||
|
@ -1125,25 +1109,6 @@ gst_vaapipostproc_transform_caps_impl (GstBaseTransform * trans,
|
|||
gst_caps_set_features (out_caps, 0,
|
||||
gst_caps_features_new (feature_str, NULL));
|
||||
}
|
||||
#else
|
||||
/* XXX: gst_video_info_to_caps() from GStreamer 0.10 does not
|
||||
reconstruct suitable caps for "encoded" video formats */
|
||||
out_caps = gst_caps_from_string (GST_VAAPI_SURFACE_CAPS_NAME);
|
||||
if (!out_caps)
|
||||
return NULL;
|
||||
|
||||
gst_caps_set_simple (out_caps,
|
||||
"type", G_TYPE_STRING, "vaapi",
|
||||
"opengl", G_TYPE_BOOLEAN, USE_GLX,
|
||||
"width", G_TYPE_INT, GST_VIDEO_INFO_WIDTH (&vi),
|
||||
"height", G_TYPE_INT, GST_VIDEO_INFO_HEIGHT (&vi),
|
||||
"framerate", GST_TYPE_FRACTION, GST_VIDEO_INFO_FPS_N (&vi),
|
||||
GST_VIDEO_INFO_FPS_D (&vi),
|
||||
"pixel-aspect-ratio", GST_TYPE_FRACTION, GST_VIDEO_INFO_PAR_N (&vi),
|
||||
GST_VIDEO_INFO_PAR_D (&vi), NULL);
|
||||
|
||||
gst_caps_set_interlaced (out_caps, &vi);
|
||||
#endif
|
||||
return out_caps;
|
||||
}
|
||||
|
||||
|
|
|
@ -57,14 +57,9 @@ GST_DEBUG_CATEGORY_STATIC (gst_debug_vaapisink);
|
|||
/* Default template */
|
||||
/* *INDENT-OFF* */
|
||||
static const char gst_vaapisink_sink_caps_str[] =
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
GST_VIDEO_CAPS_MAKE_WITH_FEATURES (GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE,
|
||||
"{ ENCODED, NV12, I420, YV12 }") ";"
|
||||
GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL);
|
||||
#else
|
||||
GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) "; "
|
||||
GST_VAAPI_SURFACE_CAPS;
|
||||
#endif
|
||||
/* *INDENT-ON* */
|
||||
|
||||
static GstStaticPadTemplate gst_vaapisink_sink_factory =
|
||||
|
@ -1203,11 +1198,7 @@ gst_vaapisink_get_caps_impl (GstBaseSink * base_sink)
|
|||
GstVaapiSink *const sink = GST_VAAPISINK_CAST (base_sink);
|
||||
GstCaps *out_caps, *yuv_caps;
|
||||
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
out_caps = gst_static_pad_template_get_caps (&gst_vaapisink_sink_factory);
|
||||
#else
|
||||
out_caps = gst_caps_from_string (GST_VAAPI_SURFACE_CAPS);
|
||||
#endif
|
||||
if (!out_caps)
|
||||
return NULL;
|
||||
|
||||
|
|
|
@ -29,152 +29,12 @@
|
|||
|
||||
#include "gstcompat.h"
|
||||
#include "gstvaapivideobuffer.h"
|
||||
#if USE_X11 && !GST_CHECK_VERSION(1,1,0)
|
||||
# include "gstvaapivideoconverter_x11.h"
|
||||
#endif
|
||||
#if USE_GLX && !GST_CHECK_VERSION(1,1,0)
|
||||
# include "gstvaapivideoconverter_glx.h"
|
||||
#endif
|
||||
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
static inline GstBuffer *
|
||||
gst_surface_buffer_new (void)
|
||||
{
|
||||
return gst_buffer_new ();
|
||||
}
|
||||
#else
|
||||
#include <gst/video/gstsurfacemeta.h>
|
||||
|
||||
#define GST_VAAPI_SURFACE_META_CAST(obj) \
|
||||
((GstVaapiSurfaceMeta *) (obj))
|
||||
|
||||
typedef struct _GstVaapiSurfaceMeta GstVaapiSurfaceMeta;
|
||||
struct _GstVaapiSurfaceMeta
|
||||
{
|
||||
GstSurfaceMeta base;
|
||||
GstBuffer *buffer;
|
||||
};
|
||||
|
||||
#define GST_VAAPI_SURFACE_META_INFO \
|
||||
gst_vaapi_surface_meta_get_info ()
|
||||
|
||||
static const GstMetaInfo *
|
||||
gst_vaapi_surface_meta_get_info (void);
|
||||
|
||||
typedef GstSurfaceConverter *(*GstSurfaceConverterCreateFunc) (GstSurfaceMeta *
|
||||
meta, const gchar * type, GValue * dest);
|
||||
|
||||
#if USE_X11
|
||||
static GstSurfaceConverter *
|
||||
gst_vaapi_surface_create_converter_x11 (GstSurfaceMeta * base_meta,
|
||||
const gchar * type, GValue * dest)
|
||||
{
|
||||
GstVaapiSurfaceMeta *const meta = GST_VAAPI_SURFACE_META_CAST (base_meta);
|
||||
|
||||
return gst_vaapi_video_converter_x11_new (meta->buffer, type, dest);
|
||||
}
|
||||
|
||||
#undef gst_vaapi_video_converter_x11_new
|
||||
#define gst_vaapi_video_converter_x11_new \
|
||||
gst_vaapi_surface_create_converter_x11
|
||||
#endif
|
||||
|
||||
#if USE_GLX
|
||||
static GstSurfaceConverter *
|
||||
gst_vaapi_surface_create_converter_glx (GstSurfaceMeta * base_meta,
|
||||
const gchar * type, GValue * dest)
|
||||
{
|
||||
GstVaapiSurfaceMeta *const meta = GST_VAAPI_SURFACE_META_CAST (base_meta);
|
||||
|
||||
return gst_vaapi_video_converter_glx_new (meta->buffer, type, dest);
|
||||
}
|
||||
|
||||
#undef gst_vaapi_video_converter_glx_new
|
||||
#define gst_vaapi_video_converter_glx_new \
|
||||
gst_vaapi_surface_create_converter_glx
|
||||
#endif
|
||||
|
||||
static GstSurfaceConverter *
|
||||
gst_vaapi_surface_create_converter (GstSurfaceMeta * base_meta,
|
||||
const gchar * type, GValue * dest)
|
||||
{
|
||||
GstVaapiSurfaceMeta *const meta = GST_VAAPI_SURFACE_META_CAST (base_meta);
|
||||
GstVaapiVideoMeta *const vmeta =
|
||||
gst_buffer_get_vaapi_video_meta (meta->buffer);
|
||||
GstSurfaceConverterCreateFunc func;
|
||||
|
||||
if (G_UNLIKELY (!vmeta))
|
||||
return NULL;
|
||||
|
||||
func = (GstSurfaceConverterCreateFunc)
|
||||
gst_vaapi_video_meta_get_surface_converter (vmeta);
|
||||
|
||||
return func ? func (base_meta, type, dest) : NULL;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gst_vaapi_surface_meta_init (GstVaapiSurfaceMeta * meta, gpointer params,
|
||||
GstBuffer * buffer)
|
||||
{
|
||||
meta->base.create_converter = gst_vaapi_surface_create_converter;
|
||||
meta->buffer = buffer;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
gst_vaapi_surface_meta_free (GstVaapiSurfaceMeta * meta, GstBuffer * buffer)
|
||||
{
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gst_vaapi_surface_meta_transform (GstBuffer * dst_buffer, GstMeta * meta,
|
||||
GstBuffer * src_buffer, GQuark type, gpointer data)
|
||||
{
|
||||
GstVaapiVideoMeta *const src_vmeta =
|
||||
gst_buffer_get_vaapi_video_meta (src_buffer);
|
||||
|
||||
if (GST_META_TRANSFORM_IS_COPY (type)) {
|
||||
GstVaapiSurfaceMeta *const dst_smeta =
|
||||
GST_VAAPI_SURFACE_META_CAST (gst_buffer_add_meta (dst_buffer,
|
||||
GST_VAAPI_SURFACE_META_INFO, NULL));
|
||||
|
||||
/* Note: avoid meta lookups in gst_vaapi_surface_create_converter()
|
||||
by directly calling the GstVaapiVideoMeta::surface_converter hook */
|
||||
dst_smeta->base.create_converter = (GstSurfaceConverterCreateFunc)
|
||||
gst_vaapi_video_meta_get_surface_converter (src_vmeta);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
const GstMetaInfo *
|
||||
gst_vaapi_surface_meta_get_info (void)
|
||||
{
|
||||
static gsize g_meta_info;
|
||||
|
||||
if (g_once_init_enter (&g_meta_info)) {
|
||||
gsize meta_info =
|
||||
GPOINTER_TO_SIZE (gst_meta_register (GST_SURFACE_META_API_TYPE,
|
||||
"GstVaapiSurfaceMeta", sizeof (GstVaapiSurfaceMeta),
|
||||
(GstMetaInitFunction) gst_vaapi_surface_meta_init,
|
||||
(GstMetaFreeFunction) gst_vaapi_surface_meta_free,
|
||||
(GstMetaTransformFunction) gst_vaapi_surface_meta_transform));
|
||||
g_once_init_leave (&g_meta_info, meta_info);
|
||||
}
|
||||
return GSIZE_TO_POINTER (g_meta_info);
|
||||
}
|
||||
|
||||
static GstBuffer *
|
||||
gst_surface_buffer_new (void)
|
||||
{
|
||||
GstBuffer *const buffer = gst_buffer_new ();
|
||||
|
||||
if (buffer)
|
||||
gst_buffer_add_meta (buffer, GST_VAAPI_SURFACE_META_INFO, NULL);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
static GFunc
|
||||
get_surface_converter (GstVaapiDisplay * display)
|
||||
|
@ -182,16 +42,6 @@ get_surface_converter (GstVaapiDisplay * display)
|
|||
GFunc func;
|
||||
|
||||
switch (gst_vaapi_display_get_class_type (display)) {
|
||||
#if USE_X11 && !GST_CHECK_VERSION(1,1,0)
|
||||
case GST_VAAPI_DISPLAY_TYPE_X11:
|
||||
func = (GFunc) gst_vaapi_video_converter_x11_new;
|
||||
break;
|
||||
#endif
|
||||
#if USE_GLX && !GST_CHECK_VERSION(1,1,0)
|
||||
case GST_VAAPI_DISPLAY_TYPE_GLX:
|
||||
func = (GFunc) gst_vaapi_video_converter_glx_new;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
func = NULL;
|
||||
break;
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
#include "gstvaapivideobufferpool.h"
|
||||
#include "gstvaapivideobuffer.h"
|
||||
#include "gstvaapivideomemory.h"
|
||||
#if GST_CHECK_VERSION(1,1,0) && (USE_GLX || USE_EGL)
|
||||
#if (USE_GLX || USE_EGL)
|
||||
#include "gstvaapivideometa_texture.h"
|
||||
#endif
|
||||
|
||||
|
@ -288,7 +288,7 @@ gst_vaapi_video_buffer_pool_alloc_buffer (GstBufferPool * pool,
|
|||
}
|
||||
}
|
||||
|
||||
#if GST_CHECK_VERSION(1,1,0) && (USE_GLX || USE_EGL)
|
||||
#if (USE_GLX || USE_EGL)
|
||||
if (priv->has_texture_upload_meta)
|
||||
gst_buffer_add_texture_upload_meta (buffer);
|
||||
#endif
|
||||
|
|
|
@ -26,8 +26,6 @@
|
|||
#include "gstcompat.h"
|
||||
#include "gstvaapivideocontext.h"
|
||||
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
|
||||
GST_DEBUG_CATEGORY_STATIC (GST_CAT_CONTEXT);
|
||||
|
||||
#define GST_VAAPI_TYPE_DISPLAY \
|
||||
|
@ -177,5 +175,3 @@ gst_vaapi_video_context_propagate (GstElement * element,
|
|||
msg = gst_message_new_have_context (GST_OBJECT_CAST (element), context);
|
||||
gst_element_post_message (GST_ELEMENT_CAST (element), msg);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -29,8 +29,6 @@
|
|||
|
||||
#include <gst/vaapi/gstvaapidisplay.h>
|
||||
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
|
||||
#define GST_VAAPI_DISPLAY_CONTEXT_TYPE_NAME "gst.vaapi.Display"
|
||||
|
||||
/* Fake GstVideoContext symbols */
|
||||
|
@ -58,22 +56,4 @@ void
|
|||
gst_vaapi_video_context_propagate (GstElement * element,
|
||||
GstVaapiDisplay * display);
|
||||
|
||||
#else
|
||||
#include <gst/video/videocontext.h>
|
||||
|
||||
static inline void
|
||||
gst_vaapi_video_context_prepare (GstVideoContext * context,
|
||||
const gchar ** types)
|
||||
{
|
||||
gst_video_context_prepare (context, types);
|
||||
}
|
||||
|
||||
static inline void
|
||||
gst_vaapi_video_context_propagate (GstVideoContext * context,
|
||||
GstVaapiDisplay * display)
|
||||
{
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* GST_VAAPI_VIDEO_CONTEXT_H */
|
||||
|
|
|
@ -1,89 +0,0 @@
|
|||
/*
|
||||
* gstvaapivideoconverter_glx.h - Gstreamer/VA video converter
|
||||
*
|
||||
* Copyright (C) 2011-2013 Intel Corporation
|
||||
* Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
|
||||
* Copyright (C) 2011 Collabora Ltd.
|
||||
* Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public License
|
||||
* as published by the Free Software Foundation; either version 2.1
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
* Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef GST_VAAPI_VIDEO_CONVERTER_GLX_H
|
||||
#define GST_VAAPI_VIDEO_CONVERTER_GLX_H
|
||||
|
||||
#include <gst/video/gstsurfaceconverter.h>
|
||||
#include "gstvaapivideobuffer.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GST_VAAPI_TYPE_VIDEO_CONVERTER_GLX \
|
||||
(gst_vaapi_video_converter_glx_get_type ())
|
||||
#define GST_VAAPI_VIDEO_CONVERTER_GLX(obj) \
|
||||
(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_VAAPI_TYPE_VIDEO_CONVERTER_GLX, \
|
||||
GstVaapiVideoConverterGLX))
|
||||
#define GST_VAAPI_VIDEO_CONVERTER_GLX_CLASS(klass) \
|
||||
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_VAAPI_TYPE_VIDEO_CONVERTER_GLX, \
|
||||
GstVaapiVideoConverterGLXClass))
|
||||
#define GST_VAAPI_IS_VIDEO_CONVERTER_GLX(obj) \
|
||||
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_VAAPI_TYPE_VIDEO_CONVERTER_GLX))
|
||||
#define GST_VAAPI_IS_VIDEO_CONVERTER_GLX_CLASS(klass) \
|
||||
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_VAAPI_TYPE_VIDEO_CONVERTER_GLX))
|
||||
#define GST_VAAPI_VIDEO_CONVERTER_GLX_GET_CLASS(obj) \
|
||||
(G_TYPE_INSTANCE_GET_CLASS ((obj), GST_VAAPI_TYPE_VIDEO_CONVERTER_GLX, \
|
||||
GstVaapiVideoConverterGLXClass))
|
||||
|
||||
typedef struct _GstVaapiVideoConverterGLX GstVaapiVideoConverterGLX;
|
||||
typedef struct _GstVaapiVideoConverterGLXPrivate
|
||||
GstVaapiVideoConverterGLXPrivate;
|
||||
typedef struct _GstVaapiVideoConverterGLXClass GstVaapiVideoConverterGLXClass;
|
||||
|
||||
/**
|
||||
* GstVaapiVideoConverterGLX:
|
||||
*
|
||||
* Converter to transform VA buffers into GL textures.
|
||||
*/
|
||||
struct _GstVaapiVideoConverterGLX
|
||||
{
|
||||
/*< private >*/
|
||||
GObject parent_instance;
|
||||
|
||||
GstVaapiVideoConverterGLXPrivate *priv;
|
||||
};
|
||||
|
||||
/**
|
||||
* GstVaapiVideoConverterGLXClass:
|
||||
*
|
||||
* Converter class to transform VA buffers into GL textures.
|
||||
*/
|
||||
struct _GstVaapiVideoConverterGLXClass
|
||||
{
|
||||
/*< private >*/
|
||||
GObjectClass parent_class;
|
||||
};
|
||||
|
||||
G_GNUC_INTERNAL
|
||||
GType
|
||||
gst_vaapi_video_converter_glx_get_type (void) G_GNUC_CONST;
|
||||
|
||||
G_GNUC_INTERNAL
|
||||
GstSurfaceConverter *
|
||||
gst_vaapi_video_converter_glx_new (GstBuffer * buffer, const gchar * type,
|
||||
GValue * dest);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* GST_VAAPI_VIDEO_CONVERTER_GLX_H */
|
|
@ -1,87 +0,0 @@
|
|||
/*
|
||||
* gstvaapivideoconverter_x11.h - VA video converter to X11 pixmap
|
||||
*
|
||||
* Copyright (C) 2013 Intel Corporation
|
||||
* Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public License
|
||||
* as published by the Free Software Foundation; either version 2.1
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
* Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef GST_VAAPI_VIDEO_CONVERTER_X11_H
|
||||
#define GST_VAAPI_VIDEO_CONVERTER_X11_H
|
||||
|
||||
#include <gst/video/gstsurfaceconverter.h>
|
||||
#include "gstvaapivideobuffer.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GST_VAAPI_TYPE_VIDEO_CONVERTER_X11 \
|
||||
(gst_vaapi_video_converter_x11_get_type ())
|
||||
#define GST_VAAPI_VIDEO_CONVERTER_X11(obj) \
|
||||
(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_VAAPI_TYPE_VIDEO_CONVERTER_X11, \
|
||||
GstVaapiVideoConverterX11))
|
||||
#define GST_VAAPI_VIDEO_CONVERTER_X11_CLASS(klass) \
|
||||
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_VAAPI_TYPE_VIDEO_CONVERTER_X11, \
|
||||
GstVaapiVideoConverterX11Class))
|
||||
#define GST_VAAPI_IS_VIDEO_CONVERTER_X11(obj) \
|
||||
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_VAAPI_TYPE_VIDEO_CONVERTER_X11))
|
||||
#define GST_VAAPI_IS_VIDEO_CONVERTER_X11_CLASS(klass) \
|
||||
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_VAAPI_TYPE_VIDEO_CONVERTER_X11))
|
||||
#define GST_VAAPI_VIDEO_CONVERTER_X11_GET_CLASS(obj) \
|
||||
(G_TYPE_INSTANCE_GET_CLASS ((obj), GST_VAAPI_TYPE_VIDEO_CONVERTER_X11, \
|
||||
GstVaapiVideoConverterX11Class))
|
||||
|
||||
typedef struct _GstVaapiVideoConverterX11 GstVaapiVideoConverterX11;
|
||||
typedef struct _GstVaapiVideoConverterX11Private
|
||||
GstVaapiVideoConverterX11Private;
|
||||
typedef struct _GstVaapiVideoConverterX11Class GstVaapiVideoConverterX11Class;
|
||||
|
||||
/**
|
||||
* GstVaapiVideoConverterX11:
|
||||
*
|
||||
* Converter to transform VA buffers into GL textures.
|
||||
*/
|
||||
struct _GstVaapiVideoConverterX11
|
||||
{
|
||||
/*< private >*/
|
||||
GObject parent_instance;
|
||||
|
||||
GstVaapiVideoConverterX11Private *priv;
|
||||
};
|
||||
|
||||
/**
|
||||
* GstVaapiVideoConverterX11Class:
|
||||
*
|
||||
* Converter class to transform VA buffers into GL textures.
|
||||
*/
|
||||
struct _GstVaapiVideoConverterX11Class
|
||||
{
|
||||
/*< private >*/
|
||||
GObjectClass parent_class;
|
||||
};
|
||||
|
||||
G_GNUC_INTERNAL
|
||||
GType
|
||||
gst_vaapi_video_converter_x11_get_type (void) G_GNUC_CONST;
|
||||
|
||||
G_GNUC_INTERNAL
|
||||
GstSurfaceConverter *
|
||||
gst_vaapi_video_converter_x11_new (GstBuffer * buffer, const gchar * type,
|
||||
GValue * dest);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* GST_VAAPI_VIDEO_CONVERTER_X11_H */
|
|
@ -28,9 +28,7 @@
|
|||
#include <gst/vaapi/gstvaapidisplay.h>
|
||||
#include <gst/vaapi/gstvaapivideopool.h>
|
||||
#include "gstvaapivideometa.h"
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
#include <gst/allocators/allocators.h>
|
||||
#endif
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
|
@ -50,9 +48,7 @@ typedef struct _GstVaapiVideoAllocatorClass GstVaapiVideoAllocatorClass;
|
|||
|
||||
#define GST_VAAPI_VIDEO_MEMORY_NAME "GstVaapiVideoMemory"
|
||||
|
||||
#if GST_CHECK_VERSION(1,1,0)
|
||||
#define GST_CAPS_FEATURE_MEMORY_VAAPI_SURFACE "memory:VASurface"
|
||||
#endif
|
||||
|
||||
#define GST_VAAPI_VIDEO_MEMORY_FLAG_IS_SET(mem, flag) \
|
||||
GST_MEMORY_FLAG_IS_SET (mem, flag)
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
#define DEFAULT_FORMAT GST_VIDEO_FORMAT_RGBA
|
||||
|
||||
#if GST_CHECK_VERSION(1,1,0) && (USE_GLX || USE_EGL)
|
||||
#if (USE_GLX || USE_EGL)
|
||||
struct _GstVaapiVideoMetaTexture
|
||||
{
|
||||
GstVaapiTexture *texture;
|
||||
|
|
Loading…
Reference in a new issue