Mercurial > pidgin.yaz
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," |