/* GStreamer * Copyright (C) 2009- Luo Jinghua * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more */ #ifndef __GST_PPS_SRC_H__ #define __GST_PPS_SRC_H__ #include #include #include G_BEGIN_DECLS #include #define GST_TYPE_PPS_SRC \ (gst_pps_src_get_type()) #define GST_PPS_SRC(obj) \ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_PPS_SRC,GstPpsSrc)) #define GST_PPS_SRC_CLASS(klass) \ (G_TYPE_CHECK_CLASS_CAST((klass), \ GST_TYPE_PPS_SRC,GstPpsSrcClass)) #define GST_IS_PPS_SRC(obj) \ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_PPS_SRC)) #define GST_IS_PPS_SRC_CLASS(klass) \ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_PPS_SRC)) typedef struct _GstPpsSrc GstPpsSrc; typedef struct _GstPpsSrcClass GstPpsSrcClass; struct _GstPpsSrc { GstPushSrc element; gchar *location; /* Full URI. */ gchar *transformed_location; /* Transformed Full URI. */ gchar *oem; /* OEM. */ gchar *terminal_type; /* Terminal Type. */ gchar *device_id; /* Device Id */ gchar *valid_code; /* Valid code */ gint vip_flag; /* VIP flag */ gint fd; GstFlowReturn ret; /* Return code from callback. */ GstBuffer **outbuf; /* Return buffer allocated by callback. */ gboolean interrupted; /* Signal unlock(). */ gboolean retry; /* Should attempt to reconnect. */ gboolean have_size; /* Received and parsed Content-Length header. */ gboolean have_started; /* the stream has been started? */ gboolean location_changed; /* Is location changed? */ gboolean info_changed; /* any of terminal_type/device_id/oem changed*/ gboolean pps_initialized; /* have ppsvod initialized? */ gboolean deferred_play; /* deferred play stream */ guint64 content_size; /* Value of Content-Length header. */ guint64 read_position; /* Current position. */ gboolean seekable; /* FALSE if the server does not support Range. */ guint64 request_position; /* Seek to this position. */ }; struct _GstPpsSrcClass { GstBaseSrcClass parent_class; }; GType gst_pps_src_get_type (void); G_END_DECLS #endif /* __GST_PPS_SRC_H__ */