11 #include <gst/video/video.h>
12 #include <gst/video/gstvideosink.h>
16 # include <Ecore_Evas.h>
17 # ifdef HAVE_XOVERLAY_H
18 # include <gst/interfaces/xoverlay.h>
23 #include "emotion_gstreamer.h"
25 Emotion_Gstreamer_Buffer *
26 emotion_gstreamer_buffer_alloc(EvasVideoSinkPrivate *sink,
30 Emotion_Gstreamer_Buffer *send;
32 if (!sink->ev) return NULL;
34 send = malloc(sizeof (Emotion_Gstreamer_Buffer));
35 if (!send) return NULL;
38 send->frame = gst_buffer_ref(buffer);
39 send->preroll = preroll;
40 send->force = EINA_FALSE;
48 emotion_gstreamer_buffer_free(Emotion_Gstreamer_Buffer *send)
52 if (send->ev->in == send->ev->out
53 && send->ev->threads == NULL
54 && send->ev->delete_me)
55 em_shutdown(send->ev);
57 gst_buffer_unref(send->frame);
61 Emotion_Gstreamer_Message *
62 emotion_gstreamer_message_alloc(Emotion_Gstreamer_Video *ev,
65 Emotion_Gstreamer_Message *send;
69 send = malloc(sizeof (Emotion_Gstreamer_Message));
70 if (!send) return NULL;
74 send->msg = gst_message_ref(msg);
80 emotion_gstreamer_message_free(Emotion_Gstreamer_Message *send)
84 if (send->ev->in == send->ev->out
85 && send->ev->threads == NULL
86 && send->ev->delete_me)
87 em_shutdown(send->ev);
89 gst_message_unref(send->msg);