/* GStreamer * Copyright (C) 2011 David A. Schleef * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Suite 500, * Boston, MA 02110-1335, USA. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include #include "gstintersurface.h" static GList *list; static GStaticMutex mutex = G_STATIC_MUTEX_INIT; GstInterSurface * gst_inter_surface_get (const char *name) { GList *g; GstInterSurface *surface; g_static_mutex_lock (&mutex); for (g = list; g; g = g_list_next (g)) { surface = (GstInterSurface *) g->data; if (strcmp (name, surface->name) == 0) { g_static_mutex_unlock (&mutex); return surface; } } surface = g_malloc0 (sizeof (GstInterSurface)); surface->name = g_strdup (name); surface->mutex = g_mutex_new (); surface->audio_adapter = gst_adapter_new (); list = g_list_append (list, surface); g_static_mutex_unlock (&mutex); return surface; } void gst_inter_surface_unref (GstInterSurface * surface) { }