Hello community,

here is the log from the commit of package gstreamer-transcoder for 
openSUSE:Leap:15.2 checked in at 2020-02-09 15:03:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/gstreamer-transcoder (Old)
 and      /work/SRC/openSUSE:Leap:15.2/.gstreamer-transcoder.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gstreamer-transcoder"

Sun Feb  9 15:03:11 2020 rev:22 rq:772489 version:1.16.0

Changes:
--------
--- 
/work/SRC/openSUSE:Leap:15.2/gstreamer-transcoder/gstreamer-transcoder.changes  
    2020-01-15 15:09:15.978033700 +0100
+++ 
/work/SRC/openSUSE:Leap:15.2/.gstreamer-transcoder.new.26092/gstreamer-transcoder.changes
   2020-02-09 15:03:14.542770750 +0100
@@ -1,0 +2,25 @@
+Wed Jun  5 21:23:54 UTC 2019 - Bjørn Lie <bjorn....@gmail.com>
+
+- Update to version 1.16.0:
+  + No changes, version bump only.
+
+-------------------------------------------------------------------
+Wed Sep 26 22:36:00 UTC 2018 - bjorn....@gmail.com
+
+- Update to version 1.14.1:
+  + transcodebin: Handle files with several tracks of a kind. This
+    doesn't support transcoding the various tracks yet, but there
+    is a FIXME about that for now.
+  + Force profile=high in youtube target.
+
+-------------------------------------------------------------------
+Mon Jun 25 10:23:07 UTC 2018 - bjorn....@gmail.com
+
+- Update to version 1.14.0:
+  + Misc bug fixing compared to 1.12.2.
+- Add gtk-doc BuildRequires and pass disable_doc=false and
+  disable_introspection=false to meson, ensure we build the
+  features we want. Package the now built api documentations in
+  devel package.
+
+-------------------------------------------------------------------

Old:
----
  gst-transcoder-1.12.2.tar.gz

New:
----
  gst-transcoder-1.16.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gstreamer-transcoder.spec ++++++
--- /var/tmp/diff_new_pack.uu2FKC/_old  2020-02-09 15:03:14.866770933 +0100
+++ /var/tmp/diff_new_pack.uu2FKC/_new  2020-02-09 15:03:14.866770933 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package gstreamer-transcoder
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,25 +12,27 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 %define _name   gst-transcoder
 Name:           gstreamer-transcoder
-Version:        1.12.2
+Version:        1.16.0
 Release:        0
 Summary:        GStreamer Transcoding API
 License:        LGPL-2.1-only
 Group:          Productivity/Multimedia/Other
 URL:            https://github.com/pitivi/gst-transcoder
 Source:         
https://github.com/pitivi/%{_name}/archive/%{version}.tar.gz#/%{_name}-%{version}.tar.gz
+
+BuildRequires:  gtk-doc
 BuildRequires:  meson
 BuildRequires:  pkgconfig
 BuildRequires:  pkgconfig(glib-2.0)
 BuildRequires:  pkgconfig(gobject-2.0)
 BuildRequires:  pkgconfig(gobject-introspection-1.0)
-BuildRequires:  pkgconfig(gstreamer-pbutils-1.0)
+BuildRequires:  pkgconfig(gstreamer-pbutils-1.0) >= 1.15.0
 
 %description
 GStreamer Transcoding API.
@@ -67,7 +69,10 @@
 %setup -q -n %{_name}-%{version}
 
 %build
-%meson
+%meson \
+       -Ddisable_doc=false \
+       -Ddisable_introspection=false \
+       %{nil}
 %meson_build
 
 %install
@@ -77,22 +82,19 @@
 %postun -n libgsttranscoder-1_0-0 -p /sbin/ldconfig
 
 %files
-%defattr(-,root,root)
 %license LICENSE
 %{_bindir}/gst-transcoder-1.0
 %{_libdir}/gstreamer-1.0/libgsttranscode.so
 %{_datadir}/gstreamer-1.0/encoding-profiles/
 
 %files -n libgsttranscoder-1_0-0
-%defattr(-,root,root)
 %{_libdir}/libgsttranscoder-1.0.so.0
 
 %files -n typelib-1_0-GstTranscoder-1_0
-%defattr(-,root,root)
 %{_libdir}/girepository-1.0/GstTranscoder-1.0.typelib
 
 %files devel
-%defattr(-,root,root)
+%doc %{_datadir}/gtk-doc/html/gstreamer-transcoder/
 %{_datadir}/gir-1.0/GstTranscoder-1.0.gir
 %{_includedir}/gstreamer-1.0/gst/transcoder/
 %{_libdir}/libgsttranscoder-1.0.so

++++++ gst-transcoder-1.12.2.tar.gz -> gst-transcoder-1.16.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-transcoder-1.12.2/data/targets/online-service/youtube.gep 
new/gst-transcoder-1.16.0/data/targets/online-service/youtube.gep
--- old/gst-transcoder-1.12.2/data/targets/online-service/youtube.gep   
2017-09-22 14:21:52.000000000 +0200
+++ new/gst-transcoder-1.16.0/data/targets/online-service/youtube.gep   
2018-07-23 16:41:18.000000000 +0200
@@ -19,6 +19,6 @@
 [streamprofile-default-1]
 parent=default
 type=video
-format=video/x-h264
+format=video/x-h264,profile=high
 preset=Profile YouTube
 pass=0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-transcoder-1.12.2/docs/libs/meson.build 
new/gst-transcoder-1.16.0/docs/libs/meson.build
--- old/gst-transcoder-1.12.2/docs/libs/meson.build     2017-09-22 
14:21:52.000000000 +0200
+++ new/gst-transcoder-1.16.0/docs/libs/meson.build     2018-07-23 
16:41:18.000000000 +0200
@@ -32,7 +32,7 @@
   scan_args : ['--deprecated-guards=GST_DISABLE_DEPRECATED',
             '--ignore-decorators=GST_EXPORT',
             ],
-  scanobj_args : ['--type-init-func="gst_init(NULL,NULL)'],
+  scanobjs_args : ['--type-init-func="gst_init(NULL,NULL)"'],
   gobject_typesfile : types,
   dependencies : [gst_transcoder_dep, gst_dep],
   fixxref_args: doc_deps + ['--html-dir=' + get_option('prefix') + 
'/share/gtk-doc/html/'],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-transcoder-1.12.2/gst/transcode/gsttranscodebin.c 
new/gst-transcoder-1.16.0/gst/transcode/gsttranscodebin.c
--- old/gst-transcoder-1.12.2/gst/transcode/gsttranscodebin.c   2017-09-22 
14:21:52.000000000 +0200
+++ new/gst-transcoder-1.16.0/gst/transcode/gsttranscodebin.c   2018-07-23 
16:41:18.000000000 +0200
@@ -104,7 +104,8 @@
     GstCaps * caps)
 {
   GstPad *filter_src = NULL, *filter_sink = NULL;
-  GstElement *filter = NULL;
+  GstElement* filter = NULL;
+  GstObject *filter_parent;
 
   if (self->video_filter &&
       !g_strcmp0 (gst_structure_get_name (gst_caps_get_structure (caps, 0)),
@@ -119,6 +120,15 @@
   if (!filter)
     return pad;
 
+  if ((filter_parent = gst_object_get_parent (GST_OBJECT (filter)))) {
+      GST_WARNING_OBJECT (self, "Filter already in use (inside %" 
GST_PTR_FORMAT ").",
+        filter_parent);
+      GST_FIXME_OBJECT(self, "Handle transcoding several streams of a same 
kind.");
+      gst_object_unref(filter_parent);
+
+      return pad;
+  }
+
   /* We are guaranteed filters only have 1 unique sinkpad and srcpad */
   GST_OBJECT_LOCK (filter);
   filter_sink = filter->sinkpads->data;
@@ -177,24 +187,34 @@
 
   pad = _insert_filter (self, sinkpad, pad, caps);
   lret = gst_pad_link (pad, sinkpad);
-  if (G_UNLIKELY (lret != GST_PAD_LINK_OK)) {
-    GstCaps *othercaps = gst_pad_query_caps (sinkpad, NULL);
-    caps = gst_pad_get_current_caps (pad);
-
-    GST_ELEMENT_ERROR_WITH_DETAILS (self, CORE, PAD,
-        (NULL),
-        ("Couldn't link pads:\n    %" GST_PTR_FORMAT ": %" GST_PTR_FORMAT
-            "\nand:\n" "    %" GST_PTR_FORMAT ": %" GST_PTR_FORMAT "\n\n",
-            pad, caps, sinkpad, othercaps),
-        ("linking-error", GST_TYPE_PAD_LINK_RETURN, lret,
-            "source-pad", GST_TYPE_PAD, pad,
-            "source-caps", GST_TYPE_CAPS, caps,
-            "sink-pad", GST_TYPE_PAD, sinkpad,
-            "sink-caps", GST_TYPE_CAPS, othercaps, NULL));
-
-    gst_caps_unref (caps);
-    if (othercaps)
-      gst_caps_unref (othercaps);
+  switch (lret) {
+    case GST_PAD_LINK_OK:
+        break;
+    case GST_PAD_LINK_WAS_LINKED:
+        GST_FIXME_OBJECT(self, "Pad %" GST_PTR_FORMAT " was already linked",
+          sinkpad);
+        break;
+    default:
+    {
+        GstCaps* othercaps = gst_pad_query_caps(sinkpad, NULL);
+        caps = gst_pad_get_current_caps(pad);
+
+        GST_ELEMENT_ERROR_WITH_DETAILS(self, CORE, PAD,
+            (NULL),
+            ("Couldn't link pads:\n    %" GST_PTR_FORMAT ": %" GST_PTR_FORMAT
+             "\nand:\n"
+             "    %" GST_PTR_FORMAT ": %" GST_PTR_FORMAT "\n\n",
+                pad, caps, sinkpad, othercaps),
+            ("linking-error", GST_TYPE_PAD_LINK_RETURN, lret,
+                "source-pad", GST_TYPE_PAD, pad,
+                "source-caps", GST_TYPE_CAPS, caps,
+                "sink-pad", GST_TYPE_PAD, sinkpad,
+                "sink-caps", GST_TYPE_CAPS, othercaps, NULL));
+
+        gst_caps_unref(caps);
+        if (othercaps)
+            gst_caps_unref(othercaps);
+    }
   }
 
   gst_object_unref (sinkpad);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-transcoder-1.12.2/gst-libs/gst/transcoding/transcoder/gsttranscoder.c 
new/gst-transcoder-1.16.0/gst-libs/gst/transcoding/transcoder/gsttranscoder.c
--- 
old/gst-transcoder-1.12.2/gst-libs/gst/transcoding/transcoder/gsttranscoder.c   
    2017-09-22 14:21:52.000000000 +0200
+++ 
new/gst-transcoder-1.16.0/gst-libs/gst/transcoding/transcoder/gsttranscoder.c   
    2018-07-23 16:41:18.000000000 +0200
@@ -653,6 +653,7 @@
       "msg-error", G_TYPE_STRING, message, NULL);
   emit_error (self, g_error_copy (err), details);
 
+  gst_structure_free (details);
   g_clear_error (&err);
   g_free (debug);
   g_free (name);
@@ -1032,9 +1033,6 @@
 
   profile = create_encoding_profile (encoding_profile);
 
-  if (!profile)
-    return NULL;
-
   return gst_transcoder_new_full (source_uri, dest_uri, profile, NULL);
 }
 
@@ -1061,7 +1059,6 @@
 
   g_return_val_if_fail (source_uri, NULL);
   g_return_val_if_fail (dest_uri, NULL);
-  g_return_val_if_fail (profile, NULL);
 
   return g_object_new (GST_TYPE_TRANSCODER, "src-uri", source_uri,
       "dest-uri", dest_uri, "profile", profile,
@@ -1085,7 +1082,7 @@
   g_mutex_lock (&data->m);
   data->done = TRUE;
   if (data->user_error && (*data->user_error) == NULL)
-    g_propagate_error (data->user_error, g_error_copy (error));
+    g_propagate_error (data->user_error, error);
   g_cond_broadcast (&data->cond);
   g_mutex_unlock (&data->m);
 }
@@ -1116,7 +1113,6 @@
   g_mutex_init (&data.m);
   g_cond_init (&data.cond);
 
-  data.user_error = error;
   g_signal_connect (self, "error", G_CALLBACK (_error_cb), &data);
   g_signal_connect (self, "done", G_CALLBACK (_done_cb), &data);
   gst_transcoder_run_async (self);
@@ -1127,6 +1123,12 @@
   }
   g_mutex_unlock (&data.m);
 
+  if (data.user_error) {
+    g_propagate_error (error, *data.user_error);
+
+    return FALSE;
+  }
+
   return TRUE;
 }
 
@@ -1146,6 +1148,13 @@
 
   GST_DEBUG_OBJECT (self, "Play");
 
+  if (!self->profile) {
+    emit_error (self, g_error_new (GST_TRANSCODER_ERROR,
+            GST_TRANSCODER_ERROR_FAILED, "No \"profile\" provided"), NULL);
+
+    return;
+  }
+
   self->target_state = GST_STATE_PLAYING;
   state_ret = gst_element_set_state (self->transcodebin, GST_STATE_PLAYING);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-transcoder-1.12.2/meson.build 
new/gst-transcoder-1.16.0/meson.build
--- old/gst-transcoder-1.12.2/meson.build       2017-09-22 14:21:52.000000000 
+0200
+++ new/gst-transcoder-1.16.0/meson.build       2018-07-23 16:41:18.000000000 
+0200
@@ -1,5 +1,5 @@
 project('gst-transcoder', 'c',
-        version : '1.12.1',
+        version : '1.15.0.1',
         meson_version : '>= 0.36.0')
 
 gst_version = meson.project_version()
@@ -57,21 +57,25 @@
   dependencies : [gst_dep, gst_pbutils_dep],
   include_directories : incl)
 
+gir = find_program('g-ir-scanner', required : false)
 gnome = import ('gnome')
-girtargets = gnome.generate_gir(gst_transcoder,
-  sources : ['gst-libs/gst/transcoding/transcoder/gsttranscoder.h',
-             'gst-libs/gst/transcoding/transcoder/gsttranscoder.c'],
-  nsversion : apiversion,
-  namespace : 'GstTranscoder',
-  identifier_prefix : 'Gst',
-  symbol_prefix : 'gst_',
-  includes : ['GObject-2.0',
-              'Gst-' + apiversion,
-              'GstPbutils-' + apiversion],
-  dependencies: [gst_dep],
-  install : true,
-  extra_args : ['--add-init-section=extern gboolean gst_init(gint *argc, gchar 
**argv); gst_init(NULL,NULL);']
-)
+build_gir = gir.found() and not meson.is_cross_build() and not 
get_option('disable_introspection')
+if build_gir
+  girtargets = gnome.generate_gir(gst_transcoder,
+    sources : ['gst-libs/gst/transcoding/transcoder/gsttranscoder.h',
+               'gst-libs/gst/transcoding/transcoder/gsttranscoder.c'],
+    nsversion : apiversion,
+    namespace : 'GstTranscoder',
+    identifier_prefix : 'Gst',
+    symbol_prefix : 'gst_',
+    includes : ['GObject-2.0',
+                'Gst-' + apiversion,
+                'GstPbutils-' + apiversion],
+    dependencies: [gst_dep],
+    install : true,
+    extra_args : ['--add-init-section=extern gboolean gst_init(gint *argc, 
gchar **argv); gst_init(NULL,NULL);']
+  )
+endif
 
 pkg_mod = import('pkgconfig')
 pkg_mod.generate(libraries : gst_transcoder,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-transcoder-1.12.2/meson_options.txt 
new/gst-transcoder-1.16.0/meson_options.txt
--- old/gst-transcoder-1.12.2/meson_options.txt 2017-09-22 14:21:52.000000000 
+0200
+++ new/gst-transcoder-1.16.0/meson_options.txt 2018-07-23 16:41:18.000000000 
+0200
@@ -1,2 +1,2 @@
-option('disable-introspection', type : 'boolean', value : false, description : 
'disable introspection of the library')
 option('disable_doc', type : 'boolean', value : false)
+option('disable_introspection', type : 'boolean', value : false, description : 
'disable introspection of the library')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-transcoder-1.12.2/tools/gst-transcoder.c 
new/gst-transcoder-1.16.0/tools/gst-transcoder.c
--- old/gst-transcoder-1.12.2/tools/gst-transcoder.c    2017-09-22 
14:21:52.000000000 +0200
+++ new/gst-transcoder-1.16.0/tools/gst-transcoder.c    2018-07-23 
16:41:18.000000000 +0200
@@ -54,7 +54,7 @@
     "\n"
     "Encoding targets describe well known formats which\n"
     "those are provided in '.gep' files. You can list\n"
-    "available ones using the `--list` argument.\n";
+    "available ones using the `--list-targets` argument.\n";
 
 typedef struct
 {
@@ -62,6 +62,7 @@
   gboolean list;
   GstEncodingProfile *profile;
   gchar *src_uri, *dest_uri, *encoding_format, *size;
+  gchar *framerate;
 } Settings;
 
 static void
@@ -71,6 +72,7 @@
   settings->rate = -1;
   settings->encoding_format = NULL;
   settings->size = NULL;
+  settings->framerate = NULL;
 }
 
 static void
@@ -119,29 +121,41 @@
 {
   GList *video_profiles, *tmp;
   gchar *p, *tmpstr, **vsize;
-  gint width, height;
+  gint width = 0, height = 0;
+  GValue framerate = G_VALUE_INIT;
 
-  if (!settings->size)
+  if (!settings->size && !settings->framerate)
     return TRUE;
 
-  p = tmpstr = g_strdup (settings->size);
+  if (settings->size) {
+    p = tmpstr = g_strdup (settings->size);
 
-  for (; *p; ++p)
-    *p = g_ascii_tolower (*p);
+    for (; *p; ++p)
+      *p = g_ascii_tolower (*p);
 
-  vsize = g_strsplit (tmpstr, "x", -1);
-  g_free (tmpstr);
+    vsize = g_strsplit (tmpstr, "x", -1);
+    g_free (tmpstr);
 
-  if (!vsize[1] || vsize[2]) {
-    g_strfreev (vsize);
-    error ("Video size should be in the form: WxH, got %s", settings->size);
+    if (!vsize[1] || vsize[2]) {
+      g_strfreev (vsize);
+      error ("Video size should be in the form: WxH, got %s", settings->size);
+
+      return FALSE;
+    }
 
-    return FALSE;
+    width = g_ascii_strtoull (vsize[0], NULL, 0);
+    height = g_ascii_strtoull (vsize[1], NULL, 10);
+    g_strfreev (vsize);
   }
 
-  width = g_ascii_strtoull (vsize[0], NULL, 0);
-  height = g_ascii_strtoull (vsize[1], NULL, 10);
-  g_strfreev (vsize);
+  if (settings->framerate) {
+    g_value_init (&framerate, GST_TYPE_FRACTION);
+    if (!gst_value_deserialize (&framerate, settings->framerate)) {
+      error ("Video framerate should be either a fraction or an integer"
+          " not: %s", settings->framerate);
+      return FALSE;
+    }
+  }
 
   video_profiles = get_profiles_of_type (settings->profile,
       GST_TYPE_ENCODING_VIDEO_PROFILE);
@@ -153,8 +167,12 @@
     else
       rest = gst_caps_copy (rest);
 
-    gst_caps_set_simple (rest, "width", G_TYPE_INT, width,
-        "height", G_TYPE_INT, height, NULL);
+    if (settings->size) {
+      gst_caps_set_simple (rest, "width", G_TYPE_INT, width,
+          "height", G_TYPE_INT, height, NULL);
+    }
+    if (settings->framerate)
+      gst_caps_set_value (rest, "framerate", &framerate);
 
     gst_encoding_profile_set_restriction (tmp->data, rest);
   }
@@ -286,6 +304,9 @@
         "set frame size (WxH or abbreviation)", NULL},
     {"audio-rate", 'r', 0, G_OPTION_ARG_INT, &settings.rate,
         "set audio sampling rate (in Hz)", NULL},
+    {"framerate", 'f', 0, G_OPTION_ARG_STRING, &settings.framerate,
+        "set video framerate as a fraction (24/1 for 24fps)"
+          " or a single number (24 for 24fps))", NULL},
     {"video-encoder", 'v', 0, G_OPTION_ARG_STRING, &settings.size,
         "The video encoder to use.", NULL},
     {NULL}
@@ -294,7 +315,7 @@
   g_set_prgname ("gst-transcoder");
 
   ctx = g_option_context_new ("<source uri> <destination uri> "
-      "[<encoding target name[/<encoding profile name>]]");
+      "[<encoding format>[/<encoding profile name>]]");
   g_option_context_set_summary (ctx, HELP_SUMMARY);
 
   g_option_context_add_main_entries (ctx, options, NULL);
@@ -334,16 +355,26 @@
   }
 
   settings.profile = create_encoding_profile (settings.encoding_format);
+
   if (!settings.profile) {
     error ("Could not find any encoding format for %s\n",
         settings.encoding_format);
-    warn ("You can list available targets using %s --list", argv[0]);
+    warn ("You can list available targets using %s --list-targets", argv[0]);
     res = 1;
     goto done;
   }
 
-  set_video_settings (&settings);
-  set_audio_settings (&settings);
+  g_print ("Encoding to:\n\n");
+  describe_encoding_profile (settings.profile);
+  if (!set_video_settings (&settings)) {
+    res = -1;
+    goto done;
+  }
+
+  if (!set_audio_settings (&settings)) {
+    res = -1;
+    goto done;
+  }
 
   transcoder = gst_transcoder_new_full (settings.src_uri, settings.dest_uri,
       settings.profile, NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-transcoder-1.12.2/tools/utils.c 
new/gst-transcoder-1.16.0/tools/utils.c
--- old/gst-transcoder-1.12.2/tools/utils.c     2017-09-22 14:21:52.000000000 
+0200
+++ new/gst-transcoder-1.16.0/tools/utils.c     2018-07-23 16:41:18.000000000 
+0200
@@ -1,6 +1,7 @@
 #include <string.h>
 
 #include "utils.h"
+#include <gst/pbutils/descriptions.h>
 
 void
 print (GstDebugColorFlags c, gboolean err, gboolean nline, const gchar * 
format,
@@ -155,3 +156,53 @@
 
   return profile;
 }
+
+static const gchar *
+get_profile_type (GstEncodingProfile * profile)
+{
+  if (GST_IS_ENCODING_CONTAINER_PROFILE (profile))
+    return "Container";
+  else if (GST_IS_ENCODING_AUDIO_PROFILE (profile))
+    return "Audio";
+  else if (GST_IS_ENCODING_VIDEO_PROFILE (profile))
+    return "Video";
+  else
+    return "Unkonwn";
+}
+
+static void
+print_profile (GstEncodingProfile * profile, const gchar * prefix)
+{
+  const gchar *name = gst_encoding_profile_get_name (profile);
+  const gchar *desc = gst_encoding_profile_get_description (profile);
+  GstCaps *format = gst_encoding_profile_get_format (profile);
+  gchar *capsdesc;
+
+  if (gst_caps_is_fixed (format))
+    capsdesc = gst_pb_utils_get_codec_description (format);
+  else
+    capsdesc = gst_caps_to_string (format);
+
+  g_print ("%s%s: %s%s%s%s%s%s\n", prefix, get_profile_type (profile),
+      name ? name : capsdesc, desc ? ": " : "", desc ? desc : "",
+      name ? " (" : "", name ? capsdesc : "", name ? ")" : "");
+
+  g_free (capsdesc);
+}
+
+void
+describe_encoding_profile (GstEncodingProfile * profile)
+{
+  g_return_if_fail (GST_IS_ENCODING_PROFILE (profile));
+
+  print_profile (profile, "  ");
+  if (GST_IS_ENCODING_CONTAINER_PROFILE (profile)) {
+    const GList *tmp;
+
+    for (tmp =
+        gst_encoding_container_profile_get_profiles
+        (GST_ENCODING_CONTAINER_PROFILE (profile)); tmp; tmp = tmp->next)
+      print_profile (tmp->data, "    - ");
+  }
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-transcoder-1.12.2/tools/utils.h 
new/gst-transcoder-1.16.0/tools/utils.h
--- old/gst-transcoder-1.12.2/tools/utils.h     2017-09-22 14:21:52.000000000 
+0200
+++ new/gst-transcoder-1.16.0/tools/utils.h     2018-07-23 16:41:18.000000000 
+0200
@@ -4,6 +4,7 @@
 #include "utils.h"
 #include <gst/gst.h>
 #include <gst/pbutils/pbutils.h>
+#include <gst/pbutils/encoding-profile.h>
 
 void print (GstDebugColorFlags c, gboolean err, gboolean nline, const gchar * 
format, va_list var_args);
 void ok (const gchar * format, ...);
@@ -15,5 +16,6 @@
 
 GList * get_usable_profiles (GstEncodingTarget * target);
 GstEncodingProfile * create_encoding_profile (const gchar * pname);
+void describe_encoding_profile (GstEncodingProfile *profile);
 
 #endif /*__GST_TRANSCODER_UTILS_H*/


Reply via email to