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 <[email protected]>
+
+- Update to version 1.16.0:
+ + No changes, version bump only.
+
+-------------------------------------------------------------------
+Wed Sep 26 22:36:00 UTC 2018 - [email protected]
+
+- 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 - [email protected]
+
+- 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*/