comparison libpurple/mediamanager.c @ 31814:55e30c0eca22

Public API allowing plugins (including prpls) to get/set video capabilities where desired/appropriate. Fixes #13095. committer: John Bailey <rekkanoryo@rekkanoryo.org>
author jakub.adam@ktknet.cz
date Sat, 08 Jan 2011 03:21:44 +0000
parents 0485aed45f5b
children 17a4b32f4d46
comparison
equal deleted inserted replaced
31813:ea2a155b4439 31814:55e30c0eca22
418 } 418 }
419 #endif 419 #endif
420 420
421 #ifdef USE_GSTREAMER 421 #ifdef USE_GSTREAMER
422 422
423 static GstCaps * 423 void
424 purple_media_manager_set_video_caps(PurpleMediaManager *manager, GstCaps *caps)
425 {
426 #ifdef USE_VV
427 if (manager->priv->video_caps)
428 gst_caps_unref(manager->priv->video_caps);
429
430 manager->priv->video_caps = caps;
431
432 if (manager->priv->pipeline && manager->priv->video_src) {
433 gchar *id = purple_media_element_info_get_id(manager->priv->video_src);
434 GstElement *src = gst_bin_get_by_name(GST_BIN(manager->priv->pipeline), id);
435
436 if (src) {
437 GstElement *capsfilter = gst_bin_get_by_name(GST_BIN(src), "prpl_video_caps");
438 g_object_set(G_OBJECT(capsfilter), "caps", caps, NULL);
439 }
440
441 g_free(id);
442 }
443 #endif
444 }
445
446 GstCaps *
424 purple_media_manager_get_video_caps(PurpleMediaManager *manager) 447 purple_media_manager_get_video_caps(PurpleMediaManager *manager)
425 { 448 {
426 #ifdef USE_VV 449 #ifdef USE_VV
427 if (manager->priv->video_caps == NULL) 450 if (manager->priv->video_caps == NULL)
428 manager->priv->video_caps = gst_caps_from_string("video/x-raw-yuv," 451 manager->priv->video_caps = gst_caps_from_string("video/x-raw-yuv,"