diff --git a/.gitignore b/.gitignore
index e2ff65d..1a77272 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/gstreamer-1.4.5.tar.xz
+SOURCES/gstreamer-1.10.4.tar.xz
diff --git a/.gstreamer1.metadata b/.gstreamer1.metadata
index 36a0b39..5c0f985 100644
--- a/.gstreamer1.metadata
+++ b/.gstreamer1.metadata
@@ -1 +1 @@
-6c0fa50d42c039eb26c1f2eb5f8dd86ab35118e7 SOURCES/gstreamer-1.4.5.tar.xz
+217f56f474b1a89fdd27c8025a3eee7a7cd13559 SOURCES/gstreamer-1.10.4.tar.xz
diff --git a/SOURCES/gstreamer-inspect-rpm-format.patch b/SOURCES/gstreamer-inspect-rpm-format.patch
index bcf62e8..8a6a0dd 100644
--- a/SOURCES/gstreamer-inspect-rpm-format.patch
+++ b/SOURCES/gstreamer-inspect-rpm-format.patch
@@ -1,8 +1,17 @@
+From 8dfeddab12777e90f8739f9dab33c62657465854 Mon Sep 17 00:00:00 2001
+From: Wim Taymans <wtaymans@redhat.com>
+Date: Mon, 4 Jan 2016 11:39:33 +0100
+Subject: [PATCH] inspect: Add RPM output format
+
+---
+ tools/gst-inspect.c | 276 +++++++++++++++++++++++++++++++++++++++++++++++++---
+ 1 file changed, 261 insertions(+), 15 deletions(-)
+
 diff --git a/tools/gst-inspect.c b/tools/gst-inspect.c
-index f97eb2a..f552e1f 100644
+index 845f52e..9084949 100644
 --- a/tools/gst-inspect.c
 +++ b/tools/gst-inspect.c
-@@ -1285,9 +1285,225 @@ print_element_info (GstElementFactory * factory, gboolean print_names)
+@@ -1302,9 +1302,225 @@ print_element_info (GstElementFactory * factory, gboolean print_names)
    return 0;
  }
  
@@ -229,20 +238,21 @@ index f97eb2a..f552e1f 100644
  {
    GstPadDirection direction;
    const gchar *type_name;
-@@ -1313,6 +1529,12 @@ print_plugin_automatic_install_info_codecs (GstElementFactory * factory)
+@@ -1330,6 +1546,13 @@ print_plugin_automatic_install_info_codecs (GstElementFactory * factory)
      return;
    }
  
 +  if (rpm_format) {
 +    /* Ignore NONE ranked plugins */
-+	if ((gst_plugin_feature_get_rank (GST_PLUGIN_FEATURE (factory))) == GST_RANK_NONE)
++    if ((gst_plugin_feature_get_rank (GST_PLUGIN_FEATURE (factory))) ==
++        GST_RANK_NONE)
 +      return;
 +  }
 +
    /* decoder/demuxer sink pads should always be static and there should only
     * be one, the same applies to encoders/muxers and source pads */
    static_templates = gst_element_factory_get_static_pad_templates (factory);
-@@ -1349,15 +1571,20 @@ print_plugin_automatic_install_info_codecs (GstElementFactory * factory)
+@@ -1366,15 +1589,20 @@ print_plugin_automatic_install_info_codecs (GstElementFactory * factory)
      gst_structure_remove_field (s, "rate");
      gst_structure_remove_field (s, "depth");
      gst_structure_remove_field (s, "clock-rate");
@@ -267,7 +277,7 @@ index f97eb2a..f552e1f 100644
  {
    const gchar *const *protocols;
  
-@@ -1366,13 +1593,19 @@ print_plugin_automatic_install_info_protocols (GstElementFactory * factory)
+@@ -1383,13 +1611,19 @@ print_plugin_automatic_install_info_protocols (GstElementFactory * factory)
      switch (gst_element_factory_get_uri_type (factory)) {
        case GST_URI_SINK:
          while (*protocols != NULL) {
@@ -289,7 +299,7 @@ index f97eb2a..f552e1f 100644
            ++protocols;
          }
          break;
-@@ -1383,7 +1616,7 @@ print_plugin_automatic_install_info_protocols (GstElementFactory * factory)
+@@ -1400,7 +1634,7 @@ print_plugin_automatic_install_info_protocols (GstElementFactory * factory)
  }
  
  static void
@@ -298,7 +308,7 @@ index f97eb2a..f552e1f 100644
  {
    GList *features, *l;
  
-@@ -1402,11 +1635,15 @@ print_plugin_automatic_install_info (GstPlugin * plugin)
+@@ -1419,11 +1653,15 @@ print_plugin_automatic_install_info (GstPlugin * plugin)
      if (feature_plugin == plugin) {
        GstElementFactory *factory;
  
@@ -317,7 +327,7 @@ index f97eb2a..f552e1f 100644
      }
      if (feature_plugin)
        gst_object_unref (feature_plugin);
-@@ -1428,7 +1665,7 @@ print_all_plugin_automatic_install_info (void)
+@@ -1445,7 +1683,7 @@ print_all_plugin_automatic_install_info (void)
      plugin = (GstPlugin *) (plugins->data);
      plugins = g_list_next (plugins);
  
@@ -326,7 +336,7 @@ index f97eb2a..f552e1f 100644
    }
    gst_plugin_list_free (orig_plugins);
  }
-@@ -1440,6 +1677,7 @@ main (int argc, char *argv[])
+@@ -1457,6 +1695,7 @@ main (int argc, char *argv[])
    gboolean do_print_blacklist = FALSE;
    gboolean plugin_name = FALSE;
    gboolean print_aii = FALSE;
@@ -334,7 +344,7 @@ index f97eb2a..f552e1f 100644
    gboolean uri_handlers = FALSE;
    gboolean check_exists = FALSE;
    gchar *min_version = NULL;
-@@ -1457,6 +1695,9 @@ main (int argc, char *argv[])
+@@ -1474,6 +1713,9 @@ main (int argc, char *argv[])
                "or all plugins provide.\n                                       "
                "Useful in connection with external automatic plugin "
                "installation mechanisms"), NULL},
@@ -344,7 +354,7 @@ index f97eb2a..f552e1f 100644
      {"plugin", '\0', 0, G_OPTION_ARG_NONE, &plugin_name,
          N_("List the plugin contents"), NULL},
      {"exists", '\0', 0, G_OPTION_ARG_NONE, &check_exists,
-@@ -1591,7 +1832,7 @@ main (int argc, char *argv[])
+@@ -1610,7 +1852,7 @@ main (int argc, char *argv[])
        /* if there is such a plugin, print out info */
        if (plugin) {
          if (print_aii) {
@@ -353,7 +363,7 @@ index f97eb2a..f552e1f 100644
          } else {
            print_plugin_info (plugin);
            print_plugin_features (plugin);
-@@ -1604,13 +1845,17 @@ main (int argc, char *argv[])
+@@ -1623,13 +1865,17 @@ main (int argc, char *argv[])
  
            if (plugin) {
              if (print_aii) {
@@ -370,6 +380,9 @@ index f97eb2a..f552e1f 100644
 +            else
 +              g_printerr (_("Could not load plugin file: %s\n"),
 +                  error->message);
-             g_error_free (error);
+             g_clear_error (&error);
              return -1;
            }
+-- 
+2.5.0
+
diff --git a/SPECS/gstreamer1.spec b/SPECS/gstreamer1.spec
index 08e9062..c69ca80 100644
--- a/SPECS/gstreamer1.spec
+++ b/SPECS/gstreamer1.spec
@@ -5,8 +5,8 @@
 %global         _gobject_introspection  1.31.1
 
 Name:           gstreamer1
-Version:        1.4.5
-Release:        1%{?dist}
+Version:        1.10.4
+Release:        2%{?dist}
 Summary:        GStreamer streaming media framework runtime
 
 License:        LGPLv2+
@@ -86,8 +86,8 @@ GStreamer streaming media framework.
 
 %build
 %configure \
-  --with-package-name='Fedora GStreamer package' \
-  --with-package-origin='http://download.fedoraproject.org' \
+  --with-package-name='GStreamer package' \
+  --with-package-origin='http://www.redhat.com' \
   --enable-gtk-doc \
   --enable-debug \
   --disable-tests --disable-examples
@@ -104,9 +104,12 @@ chrpath --delete $RPM_BUILD_ROOT%{_libdir}/libgstcontroller-1.0.so.*
 chrpath --delete $RPM_BUILD_ROOT%{_libdir}/libgstnet-1.0.so.*
 chrpath --delete $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/libgstcoreelements.so
 chrpath --delete $RPM_BUILD_ROOT%{_libexecdir}/gstreamer-%{majorminor}/gst-plugin-scanner
+chrpath --delete $RPM_BUILD_ROOT%{_libexecdir}/gstreamer-%{majorminor}/gst-ptp-helper
 chrpath --delete $RPM_BUILD_ROOT%{_bindir}/gst-inspect-1.0
 chrpath --delete $RPM_BUILD_ROOT%{_bindir}/gst-launch-1.0
+chrpath --delete $RPM_BUILD_ROOT%{_bindir}/gst-stats-1.0
 chrpath --delete $RPM_BUILD_ROOT%{_bindir}/gst-typefind-1.0
+chrpath --delete $RPM_BUILD_ROOT%{_datadir}/bash-completion/helpers/gst-completion-helper-%{majorminor}
 
 %find_lang gstreamer-%{majorminor}
 # Clean out files that should not be part of the rpm.
@@ -124,7 +127,8 @@ install -m0644 -D %{SOURCE2} $RPM_BUILD_ROOT%{_rpmconfigdir}/fileattrs/gstreamer
 
 
 %files -f gstreamer-%{majorminor}.lang
-%doc AUTHORS COPYING NEWS README RELEASE
+%license COPYING
+%doc AUTHORS NEWS README RELEASE
 %{_libdir}/libgstreamer-%{majorminor}.so.*
 %{_libdir}/libgstbase-%{majorminor}.so.*
 %{_libdir}/libgstcheck-%{majorminor}.so.*
@@ -135,6 +139,7 @@ install -m0644 -D %{SOURCE2} $RPM_BUILD_ROOT%{_rpmconfigdir}/fileattrs/gstreamer
 
 %dir %{_libdir}/gstreamer-%{majorminor}
 %{_libdir}/gstreamer-%{majorminor}/libgstcoreelements.so
+%{_libdir}/gstreamer-%{majorminor}/libgstcoretracers.so
 
 %{_libdir}/girepository-1.0/Gst-%{majorminor}.typelib
 %{_libdir}/girepository-1.0/GstBase-%{majorminor}.typelib
@@ -144,6 +149,7 @@ install -m0644 -D %{SOURCE2} $RPM_BUILD_ROOT%{_rpmconfigdir}/fileattrs/gstreamer
 
 %{_bindir}/gst-inspect-%{majorminor}
 %{_bindir}/gst-launch-%{majorminor}
+%{_bindir}/gst-stats-%{majorminor}
 %{_bindir}/gst-typefind-%{majorminor}
 
 %{_rpmconfigdir}/gstreamer1.prov
@@ -153,6 +159,11 @@ install -m0644 -D %{SOURCE2} $RPM_BUILD_ROOT%{_rpmconfigdir}/fileattrs/gstreamer
 %doc %{_mandir}/man1/gst-launch-%{majorminor}.*
 %doc %{_mandir}/man1/gst-typefind-%{majorminor}.*
 
+%{_datadir}/bash-completion/completions/gst-inspect-1.0
+%{_datadir}/bash-completion/completions/gst-launch-1.0
+%{_datadir}/bash-completion/helpers/gst
+%{_datadir}/bash-completion/helpers/gst-completion-helper-1.0
+
 %files devel
 %dir %{_includedir}/gstreamer-%{majorminor}
 %dir %{_includedir}/gstreamer-%{majorminor}/gst
@@ -186,7 +197,6 @@ install -m0644 -D %{SOURCE2} $RPM_BUILD_ROOT%{_rpmconfigdir}/fileattrs/gstreamer
 %{_libdir}/pkgconfig/gstreamer-check-%{majorminor}.pc
 %{_libdir}/pkgconfig/gstreamer-net-%{majorminor}.pc
 
-
 %files devel-docs
 %doc %{_datadir}/gtk-doc/html/gstreamer-%{majorminor}
 %doc %{_datadir}/gtk-doc/html/gstreamer-libs-%{majorminor}
@@ -194,6 +204,15 @@ install -m0644 -D %{SOURCE2} $RPM_BUILD_ROOT%{_rpmconfigdir}/fileattrs/gstreamer
 
 
 %changelog
+* Thu Mar 09 2017 Wim Taymans <wtaymans@redhat.com> - 1.10.4-2
+- fix origin
+- Resolves: #1420650
+
+* Fri Feb 24 2017 Wim Taymans <wtaymans@redhat.com> - 1.10.4-1
+- Update to 1.10.4
+- update patches
+- Resolves: #1420650
+
 * Wed Jan 28 2015 Bastien Nocera <bnocera@redhat.com> 1.4.5-1
 - Update to 1.4.5
 - Add patch to gst-inspect to generate RPM provides