Hello community,
here is the log from the commit of package gstreamer-transcoder for openSUSE:Factory checked in at 2019-06-30 14:40:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-transcoder (Old)
and /work/SRC/openSUSE:Factory/.gstreamer-transcoder.new.4615 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer-transcoder"
Sun Jun 30 14:40:49 2019 rev:11 rq:711873 version:1.16.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/gstreamer-transcoder/gstreamer-transcoder.changes 2018-10-04 19:00:41.827253518 +0200
+++ /work/SRC/openSUSE:Factory/.gstreamer-transcoder.new.4615/gstreamer-transcoder.changes 2019-06-30 14:40:49.767928488 +0200
@@ -1,0 +2,6 @@
+Wed Jun 5 21:23:54 UTC 2019 - Bjørn Lie
+
+- Update to version 1.16.0:
+ + No changes, version bump only.
+
+-------------------------------------------------------------------
Old:
----
gst-transcoder-1.14.1.tar.gz
New:
----
gst-transcoder-1.16.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gstreamer-transcoder.spec ++++++
--- /var/tmp/diff_new_pack.UFIsaw/_old 2019-06-30 14:40:50.919930443 +0200
+++ /var/tmp/diff_new_pack.UFIsaw/_new 2019-06-30 14:40:50.927930457 +0200
@@ -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
@@ -18,7 +18,7 @@
%define _name gst-transcoder
Name: gstreamer-transcoder
-Version: 1.14.1
+Version: 1.16.0
Release: 0
Summary: GStreamer Transcoding API
License: LGPL-2.1-only
@@ -32,7 +32,7 @@
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.
++++++ gst-transcoder-1.14.1.tar.gz -> gst-transcoder-1.16.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-transcoder-1.14.1/docs/libs/meson.build new/gst-transcoder-1.16.0/docs/libs/meson.build
--- old/gst-transcoder-1.14.1/docs/libs/meson.build 2018-07-23 16:37:27.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.14.1/gst-libs/gst/transcoding/transcoder/gsttranscoder.c new/gst-transcoder-1.16.0/gst-libs/gst/transcoding/transcoder/gsttranscoder.c
--- old/gst-transcoder-1.14.1/gst-libs/gst/transcoding/transcoder/gsttranscoder.c 2018-07-23 16:37:27.000000000 +0200
+++ new/gst-transcoder-1.16.0/gst-libs/gst/transcoding/transcoder/gsttranscoder.c 2018-07-23 16:41:18.000000000 +0200
@@ -1033,9 +1033,6 @@
profile = create_encoding_profile (encoding_profile);
- if (!profile)
- return NULL;
-
return gst_transcoder_new_full (source_uri, dest_uri, profile, NULL);
}
@@ -1062,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,
@@ -1117,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);
@@ -1128,6 +1123,12 @@
}
g_mutex_unlock (&data.m);
+ if (data.user_error) {
+ g_propagate_error (error, *data.user_error);
+
+ return FALSE;
+ }
+
return TRUE;
}
@@ -1147,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.14.1/meson.build new/gst-transcoder-1.16.0/meson.build
--- old/gst-transcoder-1.14.1/meson.build 2018-07-23 16:37:27.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.14.0',
+ version : '1.15.0.1',
meson_version : '>= 0.36.0')
gst_version = meson.project_version()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gst-transcoder-1.14.1/tools/gst-transcoder.c new/gst-transcoder-1.16.0/tools/gst-transcoder.c
--- old/gst-transcoder-1.14.1/tools/gst-transcoder.c 2018-07-23 16:37:27.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> "
- "[
#include "utils.h"
+#include
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.14.1/tools/utils.h new/gst-transcoder-1.16.0/tools/utils.h
--- old/gst-transcoder-1.14.1/tools/utils.h 2018-07-23 16:37:27.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
#include
+#include
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*/