summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorAlessandro Decina <alessandro.d@gmail.com>2015-02-13 19:12:20 +1100
committerAlessandro Decina <alessandro.d@gmail.com>2015-02-13 19:12:54 +1100
commit6e325be5164220d1b3d80157e3c2415ff9aa857a (patch)
tree6fb19785f29886dc5f91928dc4382bb69e298187 /sys
parentb6f2a962b55c4eeaf034a755e77bf40d8feafb9c (diff)
downloadgstreamer-plugins-bad-6e325be5164220d1b3d80157e3c2415ff9aa857a.tar.gz
applemedia: avfvideosrc: fix crash when non-GL memory is used
Diffstat (limited to 'sys')
-rw-r--r--sys/applemedia/avfvideosrc.m11
1 files changed, 8 insertions, 3 deletions
diff --git a/sys/applemedia/avfvideosrc.m b/sys/applemedia/avfvideosrc.m
index 305274c17..2ed8e2254 100644
--- a/sys/applemedia/avfvideosrc.m
+++ b/sys/applemedia/avfvideosrc.m
@@ -749,10 +749,15 @@ didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
if (gst_structure_get (upload_meta_params, "gst.gl.GstGLContext",
GST_GL_TYPE_CONTEXT, &context, NULL) && context) {
GstCaps *query_caps;
+ GstCapsFeatures *features;
+
gst_query_parse_allocation (query, &query_caps, NULL);
- textureCache = gst_core_video_texture_cache_new (context);
- gst_core_video_texture_cache_set_format (textureCache,
- "NV12", query_caps);
+ features = gst_caps_get_features (query_caps, 0);
+ if (gst_caps_features_contains (features, GST_CAPS_FEATURE_MEMORY_GL_MEMORY)) {
+ textureCache = gst_core_video_texture_cache_new (context);
+ gst_core_video_texture_cache_set_format (textureCache,
+ "NV12", query_caps);
+ }
gst_object_unref (context);
}
}