Hello community,
here is the log from the commit of package gstreamer-transcoder for
openSUSE:Factory checked in at 2018-10-04 19:00:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-transcoder (Old)
and /work/SRC/openSUSE:Factory/.gstreamer-transcoder.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer-transcoder"
Thu Oct 4 19:00:40 2018 rev:10 rq:638665 version:1.14.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/gstreamer-transcoder/gstreamer-transcoder.changes
2018-06-27 10:22:51.880879619 +0200
+++
/work/SRC/openSUSE:Factory/.gstreamer-transcoder.new/gstreamer-transcoder.changes
2018-10-04 19:00:41.827253518 +0200
@@ -1,0 +2,9 @@
+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.
+
+-------------------------------------------------------------------
Old:
----
gst-transcoder-1.14.0.tar.gz
New:
----
gst-transcoder-1.14.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gstreamer-transcoder.spec ++++++
--- /var/tmp/diff_new_pack.H5J03o/_old 2018-10-04 19:00:42.519252793 +0200
+++ /var/tmp/diff_new_pack.H5J03o/_new 2018-10-04 19:00:42.523252789 +0200
@@ -12,13 +12,13 @@
# 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.14.0
+Version: 1.14.1
Release: 0
Summary: GStreamer Transcoding API
License: LGPL-2.1-only
++++++ gst-transcoder-1.14.0.tar.gz -> gst-transcoder-1.14.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/gst-transcoder-1.14.0/data/targets/online-service/youtube.gep
new/gst-transcoder-1.14.1/data/targets/online-service/youtube.gep
--- old/gst-transcoder-1.14.0/data/targets/online-service/youtube.gep
2018-03-24 13:38:14.000000000 +0100
+++ new/gst-transcoder-1.14.1/data/targets/online-service/youtube.gep
2018-07-23 16:37:27.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.14.0/gst/transcode/gsttranscodebin.c
new/gst-transcoder-1.14.1/gst/transcode/gsttranscodebin.c
--- old/gst-transcoder-1.14.0/gst/transcode/gsttranscodebin.c 2018-03-24
13:38:14.000000000 +0100
+++ new/gst-transcoder-1.14.1/gst/transcode/gsttranscodebin.c 2018-07-23
16:37:27.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);