mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-11 18:05:37 +00:00
applemedia: vtdec: remove the internal GstGLColorConvert
It was added back in the day to make texture sharing work by default with glimagesink inside playbin. These days glimagesink accepts (and converts) YUV internally so it's no longer needed.
This commit is contained in:
parent
07bf3796aa
commit
9981cd8327
3 changed files with 9 additions and 39 deletions
|
@ -40,7 +40,6 @@ typedef struct _GstVideoTextureCache
|
|||
gboolean configured;
|
||||
GstCaps *in_caps;
|
||||
GstCaps *out_caps;
|
||||
GstGLColorConvert *convert;
|
||||
} GstVideoTextureCache;
|
||||
|
||||
GstVideoTextureCache *gst_video_texture_cache_new (GstGLContext * ctx);
|
||||
|
|
|
@ -48,8 +48,6 @@ gst_video_texture_cache_new (GstGLContext * ctx)
|
|||
|
||||
cache->ctx = gst_object_ref (ctx);
|
||||
gst_video_info_init (&cache->input_info);
|
||||
cache->convert = gst_gl_color_convert_new (cache->ctx);
|
||||
cache->configured = FALSE;
|
||||
|
||||
#if HAVE_IOS
|
||||
CFMutableDictionaryRef cache_attrs =
|
||||
|
@ -82,7 +80,6 @@ gst_video_texture_cache_free (GstVideoTextureCache * cache)
|
|||
gst_object_unref (cache->pool);
|
||||
#endif
|
||||
#endif
|
||||
gst_object_unref (cache->convert);
|
||||
gst_object_unref (cache->ctx);
|
||||
if (cache->in_caps)
|
||||
gst_caps_unref (cache->in_caps);
|
||||
|
@ -112,7 +109,6 @@ gst_video_texture_cache_set_format (GstVideoTextureCache * cache,
|
|||
gst_caps_features_add (features, GST_CAPS_FEATURE_MEMORY_GL_MEMORY);
|
||||
gst_video_info_from_caps (&cache->input_info, in_caps);
|
||||
|
||||
cache->configured = FALSE;
|
||||
if (cache->in_caps)
|
||||
gst_caps_unref (cache->in_caps);
|
||||
if (cache->out_caps)
|
||||
|
@ -271,34 +267,11 @@ _do_get_gl_buffer (GstGLContext * context, ContextThreadData * data)
|
|||
return;
|
||||
}
|
||||
|
||||
if (!cache->configured) {
|
||||
cache->in_caps = gst_caps_make_writable (cache->in_caps);
|
||||
#if HAVE_IOS
|
||||
gst_caps_set_simple (cache->in_caps, "texture-target", G_TYPE_STRING, GST_GL_TEXTURE_TARGET_2D_STR, NULL);
|
||||
#else
|
||||
gst_caps_set_simple (cache->in_caps, "texture-target", G_TYPE_STRING, GST_GL_TEXTURE_TARGET_RECTANGLE_STR, NULL);
|
||||
#endif
|
||||
gst_caps_set_simple (cache->out_caps, "texture-target", G_TYPE_STRING, "2D", NULL);
|
||||
|
||||
if (!gst_gl_color_convert_set_caps (cache->convert, cache->in_caps, cache->out_caps)) {
|
||||
if (mem1)
|
||||
gst_memory_unref (mem1);
|
||||
if (mem2)
|
||||
gst_memory_unref (mem2);
|
||||
gst_buffer_unref (buffer);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
cache->configured = TRUE;
|
||||
}
|
||||
|
||||
gst_buffer_append_memory (buffer, mem1);
|
||||
if (mem2)
|
||||
gst_buffer_append_memory (buffer, mem2);
|
||||
|
||||
data->output_buffer = gst_gl_color_convert_perform (cache->convert, buffer);
|
||||
gst_buffer_unref (buffer);
|
||||
data->output_buffer = buffer;
|
||||
}
|
||||
|
||||
GstBuffer *
|
||||
|
|
|
@ -108,17 +108,11 @@ const CFStringRef
|
|||
CFSTR ("RequireHardwareAcceleratedVideoDecoder");
|
||||
#endif
|
||||
|
||||
#define GST_VTDEC_VIDEO_FORMAT_STR "NV12"
|
||||
|
||||
#define VIDEO_SRC_CAPS \
|
||||
"video/x-raw(" GST_CAPS_FEATURE_MEMORY_GL_MEMORY "), " \
|
||||
"format = (string) RGBA, " \
|
||||
"width = " GST_VIDEO_SIZE_RANGE ", " \
|
||||
"height = " GST_VIDEO_SIZE_RANGE ", " \
|
||||
"framerate = " GST_VIDEO_FPS_RANGE ", " \
|
||||
"texture-target = (string) 2D " \
|
||||
" ; " \
|
||||
GST_VIDEO_CAPS_MAKE(GST_VTDEC_VIDEO_FORMAT_STR) ";"
|
||||
GST_VIDEO_CAPS_MAKE_WITH_FEATURES(GST_CAPS_FEATURE_MEMORY_GL_MEMORY,\
|
||||
"NV12") ", " \
|
||||
"texture-target = (string) rectangle;" \
|
||||
GST_VIDEO_CAPS_MAKE("NV12") ";"
|
||||
|
||||
G_DEFINE_TYPE (GstVtdec, gst_vtdec, GST_TYPE_VIDEO_DECODER);
|
||||
|
||||
|
@ -290,6 +284,10 @@ gst_vtdec_negotiate (GstVideoDecoder * decoder)
|
|||
output_textures =
|
||||
gst_caps_features_contains (features,
|
||||
GST_CAPS_FEATURE_MEMORY_GL_MEMORY);
|
||||
if (output_textures)
|
||||
gst_caps_set_simple (output_state->caps,
|
||||
"texture-target", G_TYPE_STRING, GST_GL_TEXTURE_TARGET_RECTANGLE_STR,
|
||||
NULL);
|
||||
}
|
||||
gst_caps_unref (caps);
|
||||
|
||||
|
|
Loading…
Reference in a new issue