#ifndef __EMOTION_GSTREAMER_H__ #define __EMOTION_GSTREAMER_H__ #include #include #define HTTP_STREAM 0 #define RTSP_STREAM 1 #include #include "emotion_private.h" typedef struct _Emotion_Video_Sink Emotion_Video_Sink; struct _Emotion_Video_Sink { GstElement *sink; gdouble length_time; gint width; gint height; gint fps_num; gint fps_den; guint32 fourcc; }; typedef struct _Emotion_Audio_Sink Emotion_Audio_Sink; struct _Emotion_Audio_Sink { GstElement *sink; gdouble length_time; gint channels; gint samplerate; }; typedef struct _Emotion_Gstreamer_Metadata Emotion_Gstreamer_Metadata; struct _Emotion_Gstreamer_Metadata { char *title; char *album; char *artist; char *genre; char *comment; char *year; char *count; char *disc_id; }; typedef struct _Emotion_Gstreamer_Video Emotion_Gstreamer_Video; struct _Emotion_Gstreamer_Video { /* Gstreamer elements */ GstElement *pipeline; /* eos */ GstBus *eos_bus; Ecore_Timer *eos_timer; /* Sinks */ Eina_List *video_sinks; Eina_List *audio_sinks; int video_sink_nbr; int audio_sink_nbr; /* Evas object */ Evas_Object *obj; unsigned char *obj_data; /* Characteristics of stream */ double position; double ratio; double volume; volatile int seek_to; volatile int get_poslen; Ecore_Pipe *pipe; Emotion_Gstreamer_Metadata *metadata; Emotion_Vis vis; unsigned char play : 1; unsigned char play_started : 1; unsigned char video_mute : 1; unsigned char audio_mute : 1; }; #endif /* __EMOTION_GSTREAMER_H__ */