Merge branch 'tizen' into tizen_gst_upgrade 23/158623/1 tizen_gst_upgrade
authorSeokHoon Lee <andy.shlee@samsung.com>
Thu, 2 Nov 2017 05:54:47 +0000 (14:54 +0900)
committerSeokHoon Lee <andy.shlee@samsung.com>
Thu, 2 Nov 2017 07:34:50 +0000 (16:34 +0900)
Change-Id: I05ac57d2da1a4e0cc66532b289e2704aff4a9c4b

14 files changed:
1  2 
NEWS
RELEASE
common
gst/rtsp-server/Makefile.am
gst/rtsp-server/rtsp-client.c
gst/rtsp-server/rtsp-client.h
gst/rtsp-server/rtsp-media.c
gst/rtsp-server/rtsp-media.h
gst/rtsp-server/rtsp-server.c
gst/rtsp-server/rtsp-server.h
gst/rtsp-server/rtsp-stream.c
gst/rtsp-server/rtsp-stream.h
packaging/common.tar.bz2
packaging/gst-rtsp-server.spec

diff --cc NEWS
index ca3bb54,ed483fd..ca3bb54
mode 100644,100644..100755
--- 1/NEWS
--- 2/NEWS
+++ b/NEWS
diff --cc RELEASE
+++ b/RELEASE
@@@ -48,5 -58,7 +48,5 @@@ subscribe to the gstreamer-devel list
          
  Contributors to this release
      
 -      * David Svensson Fors
 -      * Sebastian Rasmussen
 -      * Tim-Philipp Müller
 - 
 +      * Sebastian Dröge
-  
++ 
diff --cc common
index 48a5d85,6623591..0000000
deleted file mode 160000,160000
--- 1/common
--- 2/common
+++ /dev/null
@@@ -1,1 -1,1 +1,0 @@@
- Subproject commit 48a5d85ebf4a0bad1c997c83100f710fe2154fbf
 -Subproject commit 66235917b47e6f933f8bd32376662a54f17eb609
Simple merge
@@@ -172,12 -155,17 +172,21 @@@ static GstRTSPResult default_params_ge
      GstRTSPContext * ctx);
  static gchar *default_make_path_from_uri (GstRTSPClient * client,
      const GstRTSPUrl * uri);
+ static gboolean default_handle_options_request (GstRTSPClient * client,
+     GstRTSPContext * ctx);
+ static gboolean default_handle_set_param_request (GstRTSPClient * client,
+     GstRTSPContext * ctx);
+ static gboolean default_handle_get_param_request (GstRTSPClient * client,
+     GstRTSPContext * ctx);
+ static gboolean default_handle_play_request (GstRTSPClient * client,
+     GstRTSPContext * ctx);
  static void client_session_removed (GstRTSPSessionPool * pool,
      GstRTSPSession * session, GstRTSPClient * client);
 +static GstRTSPStatusCode default_pre_signal_handler (GstRTSPClient * client,
 +    GstRTSPContext * ctx);
 +static gboolean pre_signal_accumulator (GSignalInvocationHint * ihint,
 +    GValue * return_accu, const GValue * handler_return, gpointer data);
  
  G_DEFINE_TYPE (GstRTSPClient, gst_rtsp_client, G_TYPE_OBJECT);
  
@@@ -201,18 -189,11 +210,22 @@@ gst_rtsp_client_class_init (GstRTSPClie
    klass->params_set = default_params_set;
    klass->params_get = default_params_get;
    klass->make_path_from_uri = default_make_path_from_uri;
+   klass->handle_options_request = default_handle_options_request;
+   klass->handle_set_param_request = default_handle_set_param_request;
+   klass->handle_get_param_request = default_handle_get_param_request;
+   klass->handle_play_request = default_handle_play_request;
  
 +  klass->pre_options_request = default_pre_signal_handler;
 +  klass->pre_describe_request = default_pre_signal_handler;
 +  klass->pre_setup_request = default_pre_signal_handler;
 +  klass->pre_play_request = default_pre_signal_handler;
 +  klass->pre_pause_request = default_pre_signal_handler;
 +  klass->pre_teardown_request = default_pre_signal_handler;
 +  klass->pre_set_parameter_request = default_pre_signal_handler;
 +  klass->pre_get_parameter_request = default_pre_signal_handler;
 +  klass->pre_announce_request = default_pre_signal_handler;
 +  klass->pre_record_request = default_pre_signal_handler;
 +
    g_object_class_install_property (gobject_class, PROP_SESSION_POOL,
        g_param_spec_object ("session-pool", "Session Pool",
            "The session pool to use for client session",
@@@ -128,19 -132,8 +132,19 @@@ struct _GstRTSPClientClass 
    void     (*record_request)          (GstRTSPClient *client, GstRTSPContext *ctx);
    gchar*   (*check_requirements)      (GstRTSPClient *client, GstRTSPContext *ctx, gchar ** arr);
  
 +  GstRTSPStatusCode (*pre_options_request)       (GstRTSPClient *client, GstRTSPContext *ctx);
 +  GstRTSPStatusCode (*pre_describe_request)      (GstRTSPClient *client, GstRTSPContext *ctx);
 +  GstRTSPStatusCode (*pre_setup_request)         (GstRTSPClient *client, GstRTSPContext *ctx);
 +  GstRTSPStatusCode (*pre_play_request)          (GstRTSPClient *client, GstRTSPContext *ctx);
 +  GstRTSPStatusCode (*pre_pause_request)         (GstRTSPClient *client, GstRTSPContext *ctx);
 +  GstRTSPStatusCode (*pre_teardown_request)      (GstRTSPClient *client, GstRTSPContext *ctx);
 +  GstRTSPStatusCode (*pre_set_parameter_request) (GstRTSPClient *client, GstRTSPContext *ctx);
 +  GstRTSPStatusCode (*pre_get_parameter_request) (GstRTSPClient *client, GstRTSPContext *ctx);
 +  GstRTSPStatusCode (*pre_announce_request)      (GstRTSPClient *client, GstRTSPContext *ctx);
 +  GstRTSPStatusCode (*pre_record_request)        (GstRTSPClient *client, GstRTSPContext *ctx);
 +
    /*< private >*/
-   gpointer _gst_reserved[GST_PADDING_LARGE-16];
 -  gpointer _gst_reserved[GST_PADDING_LARGE-10];
++  gpointer _gst_reserved[GST_PADDING_LARGE-20];
  };
  
  GType                 gst_rtsp_client_get_type          (void);
@@@ -2756,10 -2516,8 +2785,12 @@@ default_start_prepare (GstRTSPMedia * m
    guint i;
    GList *walk;
  
 +  g_rec_mutex_lock (&priv->state_lock);
 +  if (priv->status != GST_RTSP_MEDIA_STATUS_PREPARING)
 +    goto no_longer_preparing;
 +
+   klass = GST_RTSP_MEDIA_GET_CLASS (media);
    /* link streams we already have, other streams might appear when we have
     * dynamic elements */
    for (i = 0; i < priv->streams->len; i++) {
      }
    }
  
-   if (!start_preroll (media))
-     goto preroll_failed;
+   if (klass->start_preroll)
+     if (!klass->start_preroll (media))
+       goto preroll_failed;
  
 +  g_rec_mutex_unlock (&priv->state_lock);
 +
    return FALSE;
  
 +no_longer_preparing:
 +  {
 +    GST_INFO ("media is no longer preparing");
 +    g_rec_mutex_unlock (&priv->state_lock);
 +    return FALSE;
 +  }
  join_bin_failed:
    {
      GST_WARNING ("failed to join bin element");
@@@ -3621,7 -3860,9 +3660,10 @@@ static gboolea
  default_unsuspend (GstRTSPMedia * media)
  {
    GstRTSPMediaPrivate *priv = media->priv;
 +  gboolean preroll_ok;
+   GstRTSPMediaClass *klass;
+   klass = GST_RTSP_MEDIA_GET_CLASS (media);
  
    switch (priv->suspend_mode) {
      case GST_RTSP_SUSPEND_MODE_NONE:
      case GST_RTSP_SUSPEND_MODE_RESET:
      {
        gst_rtsp_media_set_status (media, GST_RTSP_MEDIA_STATUS_PREPARING);
-       if (!start_preroll (media))
-         goto start_failed;
+       if (klass->start_preroll)
+         if (!klass->start_preroll (media))
+           goto start_failed;
        g_rec_mutex_unlock (&priv->state_lock);
 +      preroll_ok = wait_preroll (media);
 +      g_rec_mutex_lock (&priv->state_lock);
  
 -      if (!wait_preroll (media))
 +      if (!preroll_ok)
          goto preroll_failed;
 -
 -      g_rec_mutex_lock (&priv->state_lock);
      }
      default:
        break;
@@@ -286,11 -261,12 +290,16 @@@ gboolean              gst_rtsp_media_se
                                                         GPtrArray *transports);
  void                  gst_rtsp_media_set_pipeline_state (GstRTSPMedia * media,
                                                           GstState state);
+ GstStateChangeReturn  gst_rtsp_media_set_target_state (GstRTSPMedia * media, GstState state, gboolean do_state);
+ void                gst_rtsp_media_set_status (GstRTSPMedia * media, GstRTSPMediaStatus status);
+ GstElement *          gst_rtsp_media_get_pipeline     (GstRTSPMedia * media);
+ GstElement *          gst_rtsp_media_get_rtpbin       (GstRTSPMedia * media);
  
 +#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
 +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstRTSPMedia, gst_object_unref)
 +#endif
 +
  G_END_DECLS
  
  #endif /* __GST_RTSP_MEDIA_H__ */
Simple merge
Simple merge
Simple merge
Simple merge
index 0000000,9f0dd3f..940d70c
mode 000000,100644..100644
Binary files differ
index 0000000,baac768..2bfaa9f
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,74 +1,75 @@@
 -Version:    1.6.1
 -Release:    20
+ Name:       gst-rtsp-server
+ Summary:    Multimedia Framework Library
++Version:    1.12.2
++Release:    0
+ Url:        http://gstreamer.freedesktop.org/
+ Group:      System/Libraries
+ License:    LGPL-2.0+
+ Source:     http://gstreamer.freedesktop.org/src/gst-rtsp-server/gst-rtsp-server-%{version}.tar.xz
+ Source100:  common.tar.bz2
+ Requires(post):  /sbin/ldconfig
+ Requires(postun):  /sbin/ldconfig
+ BuildRequires:  pkgconfig(gstreamer-1.0)
+ BuildRequires:  pkgconfig(gstreamer-plugins-base-1.0)
+ BuildRoot:  %{_tmppath}/%{name}-%{version}-build
+ %description
+ %package devel
+ Summary:    Multimedia Framework RTSP server library (DEV)
+ Group:      Development/Libraries
+ Requires:   %{name} = %{version}-%{release}
+ %description devel
+ %package factory
+ Summary:    Multimedia Framework RTSP server Library (Factory)
+ Group:      Development/Libraries
+ Requires:   %{name} = %{version}-%{release}
+ %description factory
+ %prep
+ %setup -q -n gst-rtsp-server-%{version}
+ %setup -q -T -D -a 100 
+ %build
+ NOCONFIGURE=1 ./autogen.sh
+ CFLAGS+=" -DEXPORT_API=\"__attribute__((visibility(\\\"default\\\")))\" "; export CFLAGS
+ LDFLAGS+="-Wl,--rpath=%{_prefix}/lib -Wl,--hash-style=both -Wl,--as-needed"; export LDFLAGS
+ # always enable sdk build. This option should go away
+ %configure --disable-static
+ # Call make instruction with smp support
+ make %{?jobs:-j%jobs}
+ %install
+ rm -rf %{buildroot}
+ %make_install
+ %clean
+ rm -rf %{buildroot}
+ %post
+ /sbin/ldconfig
+ %postun
+ /sbin/ldconfig
+ %files
+ %manifest gst-rtsp-server.manifest
+ %defattr(-,root,root,-)
+ %license COPYING
+ %{_libdir}/*.so.*
++%{_libdir}/gstreamer-1.0/libgstrtspclientsink.so
+ %files devel
+ %defattr(-,root,root,-)
+ %{_libdir}/*.so
+ %{_includedir}/gstreamer-1.0/gst/rtsp-server/rtsp-*.h
+ %{_includedir}/gstreamer-1.0/gst/rtsp-server/gstwfd*.h
+ %{_libdir}/pkgconfig/*