/* * squeakAudioVideoPipeLineSignalInterface.h * GStreamer * * Created by John M McIntosh on 4/1/08. * Copyright 2008 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.con All rights reserved. * Written for Viewpoints Research Institute http://www.vpri.org/ * http://www.opensource.org/licenses/mit-license.php * */ struct _SqueakAudioVideoSink { GstElement *owner; void* handler; GstBuffer *copyToSendToSqueakAudio; gboolean semaphoreWasSignaled; gint semaphoreIndexForSink; gint prerollCounter; guchar *copyToSendToSqueakVideo; guint allocbytes; guint actualbytes; guint width; guint height; guint fps_n; guint fps_d; guint depth; GstClockTime startTime; GstClockTime duration; gboolean frame_ready; struct VirtualMachine* interpreterProxy; }; typedef struct _SqueakAudioVideoSink SqueakAudioVideoSink; typedef struct _SqueakAudioVideoSink *SqueakAudioVideoSinkPtr; void squeakVideoHandOff (GstElement* object, GstBuffer* buf, GstPad* pad, gpointer user_data); void squeakAudioHandOff (GstElement* object, GstBuffer* buf, GstPad* pad, gpointer user_data); void squeakSrcHandOff (GstElement* object, GstBuffer* buf, GstPad* pad, gpointer user_data); #define GST_LOCK(obj) (g_mutex_lock(GST_OBJECT_CAST(obj)->lock)) #define GST_UNLOCK(obj) (g_mutex_unlock(GST_OBJECT_CAST(obj)->lock))