#ifndef _HAVE_CLTR_VIDEO_H #define _HAVE_CLTR_VIDEO_H #include "cltr.h" #include #include typedef struct CltrVideo CltrVideo; /* Signals - cltrimagesink needs to deliver texture signals :/ */ enum { CLTR_VIDEO_ASYNC_TEXTURE, CLTR_VIDEO_ASYNC_VIDEO_SIZE, CLTR_VIDEO_ASYNC_ERROR, CLTR_VIDEO_ASYNC_FOUND_TAG, CLTR_VIDEO_ASYNC_NOTIFY_STREAMINFO, CLTR_VIDEO_ASYNC_EOS, CLTR_VIDEO_ASYNC_BUFFERING, CLTR_VIDEO_ASYNC_REDIRECT }; typedef struct CltrVideoSignal { gint signal_id; union { struct { gint width; gint height; } video_size; struct { GstElement *element; GError *error; char *debug_message; } error; struct { GstElement *source; GstTagList *tag_list; } found_tag; struct { gint percent; } buffering; struct { gchar *new_location; } redirect; struct { CltrTexture *ref; } texture; } signal_data; } CltrVideoSignal; #define CLTR_VIDEO(w) ((CltrVideo*)(w)) CltrWidget* cltr_video_new(int width, int height); gboolean cltr_video_set_source(CltrVideo *video, char *location); void cltr_video_play(CltrVideo *video); #endif