efl/legacy/emotion/src/modules/gstreamer/emotion_gstreamer.h

96 lines
1.8 KiB
C

#ifndef __EMOTION_GSTREAMER_H__
#define __EMOTION_GSTREAMER_H__
#include <Evas.h>
#include <Ecore.h>
#define HTTP_STREAM 0
#define RTSP_STREAM 1
#include <gst/gst.h>
#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__ */