Merge branch 'upstream/1.16' into tizen_gst_1.16.2
[platform/upstream/gst-plugins-good.git] / gst / rtsp / gstrtspsrc.h
index 6e51dd6..f1b6d9c 100644 (file)
@@ -77,6 +77,58 @@ typedef struct _GstRTSPSrcClass GstRTSPSrcClass;
 #define GST_RTSP_STREAM_LOCK(rtsp)       (g_rec_mutex_lock (GST_RTSP_STREAM_GET_LOCK(rtsp)))
 #define GST_RTSP_STREAM_UNLOCK(rtsp)     (g_rec_mutex_unlock (GST_RTSP_STREAM_GET_LOCK(rtsp)))
 
+#ifdef TIZEN_FEATURE_RTSP_MODIFICATION
+typedef enum {
+       GST_RTSPSRC_ERROR_NONE = 0,
+       GST_RTSPSRC_ERROR_UNSUPPORTED_AUDIO,
+       GST_RTSPSRC_ERROR_UNSUPPORTED_VIDEO,
+       GST_RTSPSRC_ERROR_CONNECTION_FAIL,
+       GST_RTSPSRC_ERROR_DNS_FAIL,
+       GST_RTSPSRC_ERROR_SERVER_DISCONNECTED,
+       GST_RTSPSRC_ERROR_BAD_SERVER,
+       GST_RTSPSRC_ERROR_INVALID_PROTOCOL,
+       GST_RTSPSRC_ERROR_INVALID_URL,
+       GST_RTSPSRC_ERROR_UNEXPECTED_MSG,
+       GST_RTSPSRC_ERROR_OUT_OF_MEMORIES,
+       GST_RTSPSRC_ERROR_RTSP_TIMEOUT,
+       GST_RTSPSRC_ERROR_BAD_REQUEST,
+       GST_RTSPSRC_ERROR_NOT_AUTHORIZED,
+       GST_RTSPSRC_ERROR_PAYMENT_REQUIRED,
+       GST_RTSPSRC_ERROR_FORBIDDEN,
+       GST_RTSPSRC_ERROR_CONTENT_NOT_FOUND,
+       GST_RTSPSRC_ERROR_METHOD_NOT_ALLOWED,
+       GST_RTSPSRC_ERROR_NOT_ACCEPTABLE,
+       GST_RTSPSRC_ERROR_PROXY_AUTHENTICATION_REQUIRED,
+       GST_RTSPSRC_ERROR_SERVER_TIMEOUT,
+       GST_RTSPSRC_ERROR_GONE,
+       GST_RTSPSRC_ERROR_LENGTH_REQUIRED,
+       GST_RTSPSRC_ERROR_PRECONDITION_FAILED,
+       GST_RTSPSRC_ERROR_REQUEST_ENTITY_TOO_LARGE,
+       GST_RTSPSRC_ERROR_REQUEST_URI_TOO_LARGE,
+       GST_RTSPSRC_ERROR_UNSUPPORTED_MEDIA_TYPE,
+       GST_RTSPSRC_ERROR_PARAMETER_NOT_UNDERSTOOD,
+       GST_RTSPSRC_ERROR_CONFERENCE_NOT_FOUND,
+       GST_RTSPSRC_ERROR_NOT_ENOUGH_BANDWIDTH,
+       GST_RTSPSRC_ERROR_NO_SESSION_ID,
+       GST_RTSPSRC_ERROR_METHOD_NOT_VALID_IN_THIS_STATE,
+       GST_RTSPSRC_ERROR_HEADER_FIELD_NOT_VALID_FOR_SOURCE,
+       GST_RTSPSRC_ERROR_INVALID_RANGE,
+       GST_RTSPSRC_ERROR_PARAMETER_IS_READONLY,
+       GST_RTSPSRC_ERROR_AGGREGATE_OP_NOT_ALLOWED,
+       GST_RTSPSRC_ERROR_ONLY_AGGREGATE_OP_ALLOWED,
+       GST_RTSPSRC_ERROR_BAD_TRANSPORT,
+       GST_RTSPSRC_ERROR_DESTINATION_UNREACHABLE,
+       GST_RTSPSRC_ERROR_INTERNAL_SERVER_ERROR,
+       GST_RTSPSRC_ERROR_NOT_IMPLEMENTED,
+       GST_RTSPSRC_ERROR_BAD_GATEWAY,
+       GST_RTSPSRC_ERROR_SERVICE_UNAVAILABLE,
+       GST_RTSPSRC_ERROR_GATEWAY_TIME_OUT      ,
+       GST_RTSPSRC_ERROR_RTSP_VERSION_NOT_SUPPORTED,
+       GST_RTSPSRC_ERROR_OPTION_NOT_SUPPORTED,
+}_GstRTSPSrcError;
+typedef _GstRTSPSrcError       GstRTSPSrcError;
+#endif
+
 typedef struct _GstRTSPConnInfo GstRTSPConnInfo;
 
 struct _GstRTSPConnInfo {
@@ -306,6 +358,15 @@ struct _GstRTSPSrc {
   gulong           manager_ptmap_id;
   gboolean         use_buffering;
 
+#ifdef TIZEN_FEATURE_RTSP_MODIFICATION
+  /* media type */
+  gboolean  is_audio_codec_supported;
+  gboolean     is_video_codec_supported;
+  gchar        *audio_codec;
+  gchar                *video_codec;
+  gchar                *video_frame_size;
+#endif
+
   GstRTSPConnInfo  conninfo;
 
   /* SET/GET PARAMETER requests queue */
@@ -316,6 +377,12 @@ struct _GstRTSPSrc {
 
   GstRTSPVersion default_version;
   GstRTSPVersion version;
+
+#ifdef TIZEN_FEATURE_RTSP_MODIFICATION
+  GCond open_end;
+  GMutex pause_lock;
+  guint64 start_position;
+#endif  
 };
 
 struct _GstRTSPSrcClass {