- for GStreamer Editing Services 1.0 (1.14.1)
+ for GStreamer Editing Services 1.0 (1.14.2)
@@ -224,6 +224,6 @@
+Generated by GTK-Doc V1.28
\ No newline at end of file
Binary files /tmp/tmpREh2Da/i0Krw9TW8z/gstreamer-editing-services1.0-1.14.1/docs/libs/html/left-insensitive.png and /tmp/tmpREh2Da/RAxkizfHLi/gstreamer-editing-services1.0-1.14.2/docs/libs/html/left-insensitive.png differ
Binary files /tmp/tmpREh2Da/i0Krw9TW8z/gstreamer-editing-services1.0-1.14.1/docs/libs/html/left.png and /tmp/tmpREh2Da/RAxkizfHLi/gstreamer-editing-services1.0-1.14.2/docs/libs/html/left.png differ
Binary files /tmp/tmpREh2Da/i0Krw9TW8z/gstreamer-editing-services1.0-1.14.1/docs/libs/html/right-insensitive.png and /tmp/tmpREh2Da/RAxkizfHLi/gstreamer-editing-services1.0-1.14.2/docs/libs/html/right-insensitive.png differ
Binary files /tmp/tmpREh2Da/i0Krw9TW8z/gstreamer-editing-services1.0-1.14.1/docs/libs/html/right.png and /tmp/tmpREh2Da/RAxkizfHLi/gstreamer-editing-services1.0-1.14.2/docs/libs/html/right.png differ
diff -Nru gstreamer-editing-services1.0-1.14.1/docs/libs/html/style.css gstreamer-editing-services1.0-1.14.2/docs/libs/html/style.css
--- gstreamer-editing-services1.0-1.14.1/docs/libs/html/style.css 2018-05-17 12:34:38.000000000 +0000
+++ gstreamer-editing-services1.0-1.14.2/docs/libs/html/style.css 2018-07-20 00:06:56.000000000 +0000
@@ -30,6 +30,10 @@
vertical-align: top;
}
+span.nowrap {
+ white-space: nowrap;
+}
+
div.gallery-float
{
float: left;
Binary files /tmp/tmpREh2Da/i0Krw9TW8z/gstreamer-editing-services1.0-1.14.1/docs/libs/html/up-insensitive.png and /tmp/tmpREh2Da/RAxkizfHLi/gstreamer-editing-services1.0-1.14.2/docs/libs/html/up-insensitive.png differ
Binary files /tmp/tmpREh2Da/i0Krw9TW8z/gstreamer-editing-services1.0-1.14.1/docs/libs/html/up.png and /tmp/tmpREh2Da/RAxkizfHLi/gstreamer-editing-services1.0-1.14.2/docs/libs/html/up.png differ
diff -Nru gstreamer-editing-services1.0-1.14.1/ges/ges-group.c gstreamer-editing-services1.0-1.14.2/ges/ges-group.c
--- gstreamer-editing-services1.0-1.14.1/ges/ges-group.c 2018-03-23 20:47:44.000000000 +0000
+++ gstreamer-editing-services1.0-1.14.2/ges/ges-group.c 2018-07-18 16:40:26.000000000 +0000
@@ -188,13 +188,14 @@
return;
}
- if (new_layer && (layer_prio + offset < 0 ||
+ if (new_layer && old_layer && (layer_prio + offset < 0 ||
(GES_TIMELINE_ELEMENT_TIMELINE (group) &&
layer_prio + offset + GES_CONTAINER_HEIGHT (group) - 1 >
g_list_length (GES_TIMELINE_ELEMENT_TIMELINE (group)->layers)))) {
- GST_INFO_OBJECT (container, "Trying to move to a layer outside of"
- "the timeline layers, moving back to old layer (prio %i)",
+ GST_INFO_OBJECT (container,
+ "Trying to move to a layer %" GST_PTR_FORMAT " outside of"
+ "the timeline layers, moving back to old layer (prio %i)", new_layer,
_PRIORITY (group) - offset);
container->children_control_mode = GES_CHILDREN_INIBIT_SIGNAL_EMISSION;
@@ -204,7 +205,7 @@
return;
}
- if (!new_layer) {
+ if (!new_layer || !old_layer) {
_update_our_values (group);
return;
diff -Nru gstreamer-editing-services1.0-1.14.1/ges/ges-version.h gstreamer-editing-services1.0-1.14.2/ges/ges-version.h
--- gstreamer-editing-services1.0-1.14.1/ges/ges-version.h 2018-05-17 12:34:03.000000000 +0000
+++ gstreamer-editing-services1.0-1.14.2/ges/ges-version.h 2018-07-20 00:06:22.000000000 +0000
@@ -24,7 +24,7 @@
#define GES_VERSION_MAJOR (1)
#define GES_VERSION_MINOR (14)
-#define GES_VERSION_MICRO (1)
+#define GES_VERSION_MICRO (2)
#define GES_VERSION_NANO (0)
G_END_DECLS
diff -Nru gstreamer-editing-services1.0-1.14.1/ges/Makefile.am gstreamer-editing-services1.0-1.14.2/ges/Makefile.am
--- gstreamer-editing-services1.0-1.14.1/ges/Makefile.am 2018-03-23 20:47:44.000000000 +0000
+++ gstreamer-editing-services1.0-1.14.2/ges/Makefile.am 2018-07-18 16:40:26.000000000 +0000
@@ -154,7 +154,8 @@
libges_@GST_API_VERSION@_la_CFLAGS = -I$(top_srcdir) $(GST_PBUTILS_CFLAGS) \
$(GST_VIDEO_CFLAGS) $(GST_CONTROLLER_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \
- $(GST_CFLAGS) $(XML_CFLAGS) $(GIO_CFLAGS) $(GST_VALIDATE_CFLAGS)
+ $(GST_CFLAGS) $(XML_CFLAGS) $(GIO_CFLAGS) $(GST_VALIDATE_CFLAGS) \
+ -DG_LOG_DOMAIN=\"GES\"
libges_@GST_API_VERSION@_la_LIBADD = $(GST_PBUTILS_LIBS) \
$(GST_VIDEO_LIBS) $(GST_CONTROLLER_LIBS) $(GST_PLUGINS_BASE_LIBS) \
$(GST_BASE_LIBS) $(GST_LIBS) $(XML_LIBS) $(GIO_LIBS) $(GST_VALIDATE_LIBS)
diff -Nru gstreamer-editing-services1.0-1.14.1/ges/Makefile.in gstreamer-editing-services1.0-1.14.2/ges/Makefile.in
--- gstreamer-editing-services1.0-1.14.1/ges/Makefile.in 2018-05-17 12:33:56.000000000 +0000
+++ gstreamer-editing-services1.0-1.14.2/ges/Makefile.in 2018-07-20 00:06:14.000000000 +0000
@@ -729,7 +729,8 @@
libges_@GST_API_VERSION@_la_CFLAGS = -I$(top_srcdir) $(GST_PBUTILS_CFLAGS) \
$(GST_VIDEO_CFLAGS) $(GST_CONTROLLER_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \
- $(GST_CFLAGS) $(XML_CFLAGS) $(GIO_CFLAGS) $(GST_VALIDATE_CFLAGS)
+ $(GST_CFLAGS) $(XML_CFLAGS) $(GIO_CFLAGS) $(GST_VALIDATE_CFLAGS) \
+ -DG_LOG_DOMAIN=\"GES\"
libges_@GST_API_VERSION@_la_LIBADD = $(GST_PBUTILS_LIBS) \
$(GST_VIDEO_LIBS) $(GST_CONTROLLER_LIBS) $(GST_PLUGINS_BASE_LIBS) \
diff -Nru gstreamer-editing-services1.0-1.14.1/gst-editing-services.doap gstreamer-editing-services1.0-1.14.2/gst-editing-services.doap
--- gstreamer-editing-services1.0-1.14.1/gst-editing-services.doap 2018-05-17 12:33:42.000000000 +0000
+++ gstreamer-editing-services1.0-1.14.2/gst-editing-services.doap 2018-07-20 00:05:58.000000000 +0000
@@ -32,6 +32,16 @@
+ 1.14.2
+ 1.14
+
+ 2018-07-20
+
+
+
+
+
+ 1.14.11.14
diff -Nru gstreamer-editing-services1.0-1.14.1/ltmain.sh gstreamer-editing-services1.0-1.14.2/ltmain.sh
--- gstreamer-editing-services1.0-1.14.1/ltmain.sh 2018-05-17 12:33:49.000000000 +0000
+++ gstreamer-editing-services1.0-1.14.2/ltmain.sh 2018-07-20 00:06:06.000000000 +0000
@@ -31,7 +31,7 @@
PROGRAM=libtool
PACKAGE=libtool
-VERSION="2.4.6 Debian-2.4.6-2"
+VERSION="2.4.6 Debian-2.4.6-2.1"
package_revision=2.4.6
@@ -64,7 +64,7 @@
# libraries, which are installed to $pkgauxdir.
# Set a version string for this script.
-scriptversion=2015-01-20.17; # UTC
+scriptversion=2015-10-12.13; # UTC
# General shell script boiler plate, and helper functions.
# Written by Gary V. Vaughan, 2004
@@ -580,16 +580,16 @@
{
$debug_cmd
- func_quote_for_eval "$2"
- eval "$1+=\\ \$func_quote_for_eval_result"
+ func_quote_arg pretty "$2"
+ eval "$1+=\\ \$func_quote_arg_result"
}'
else
func_append_quoted ()
{
$debug_cmd
- func_quote_for_eval "$2"
- eval "$1=\$$1\\ \$func_quote_for_eval_result"
+ func_quote_arg pretty "$2"
+ eval "$1=\$$1\\ \$func_quote_arg_result"
}
fi
@@ -1091,85 +1091,181 @@
}
-# func_quote_for_eval ARG...
-# --------------------------
-# Aesthetically quote ARGs to be evaled later.
-# This function returns two values:
-# i) func_quote_for_eval_result
-# double-quoted, suitable for a subsequent eval
-# ii) func_quote_for_eval_unquoted_result
-# has all characters that are still active within double
-# quotes backslashified.
-func_quote_for_eval ()
+# func_quote_portable EVAL ARG
+# ----------------------------
+# Internal function to portably implement func_quote_arg. Note that we still
+# keep attention to performance here so we as much as possible try to avoid
+# calling sed binary (so far O(N) complexity as long as func_append is O(1)).
+func_quote_portable ()
{
$debug_cmd
- func_quote_for_eval_unquoted_result=
- func_quote_for_eval_result=
- while test 0 -lt $#; do
- case $1 in
- *[\\\`\"\$]*)
- _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
- *)
- _G_unquoted_arg=$1 ;;
- esac
- if test -n "$func_quote_for_eval_unquoted_result"; then
- func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
- else
- func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg"
+ func_quote_portable_result=$2
+
+ # one-time-loop (easy break)
+ while true
+ do
+ if $1; then
+ func_quote_portable_result=`$ECHO "$2" | $SED \
+ -e "$sed_double_quote_subst" -e "$sed_double_backslash"`
+ break
fi
- case $_G_unquoted_arg in
- # Double-quote args containing shell metacharacters to delay
- # word splitting, command substitution and variable expansion
- # for a subsequent eval.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- _G_quoted_arg=\"$_G_unquoted_arg\"
+ # Quote for eval.
+ case $func_quote_portable_result in
+ *[\\\`\"\$]*)
+ case $func_quote_portable_result in
+ *[\[\*\?]*)
+ func_quote_portable_result=`$ECHO "$func_quote_portable_result" | $SED "$sed_quote_subst"`
+ break
+ ;;
+ esac
+
+ func_quote_portable_old_IFS=$IFS
+ for _G_char in '\' '`' '"' '$'
+ do
+ # STATE($1) PREV($2) SEPARATOR($3)
+ set start "" ""
+ func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy
+ IFS=$_G_char
+ for _G_part in $func_quote_portable_result
+ do
+ case $1 in
+ quote)
+ func_append func_quote_portable_result "$3$2"
+ set quote "$_G_part" "\\$_G_char"
+ ;;
+ start)
+ set first "" ""
+ func_quote_portable_result=
+ ;;
+ first)
+ set quote "$_G_part" ""
+ ;;
+ esac
+ done
+ done
+ IFS=$func_quote_portable_old_IFS
;;
- *)
- _G_quoted_arg=$_G_unquoted_arg
- ;;
+ *) ;;
esac
-
- if test -n "$func_quote_for_eval_result"; then
- func_append func_quote_for_eval_result " $_G_quoted_arg"
- else
- func_append func_quote_for_eval_result "$_G_quoted_arg"
- fi
- shift
+ break
done
+
+ func_quote_portable_unquoted_result=$func_quote_portable_result
+ case $func_quote_portable_result in
+ # double-quote args containing shell metacharacters to delay
+ # word splitting, command substitution and variable expansion
+ # for a subsequent eval.
+ # many bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ func_quote_portable_result=\"$func_quote_portable_result\"
+ ;;
+ esac
}
-# func_quote_for_expand ARG
-# -------------------------
-# Aesthetically quote ARG to be evaled later; same as above,
-# but do not quote variable references.
-func_quote_for_expand ()
-{
- $debug_cmd
+# func_quotefast_eval ARG
+# -----------------------
+# Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG',
+# but optimized for speed. Result is stored in $func_quotefast_eval.
+if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then
+ func_quotefast_eval ()
+ {
+ printf -v func_quotefast_eval_result %q "$1"
+ }
+else
+ func_quotefast_eval ()
+ {
+ func_quote_portable false "$1"
+ func_quotefast_eval_result=$func_quote_portable_result
+ }
+fi
- case $1 in
- *[\\\`\"]*)
- _G_arg=`$ECHO "$1" | $SED \
- -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;;
- *)
- _G_arg=$1 ;;
+
+# func_quote_arg MODEs ARG
+# ------------------------
+# Quote one ARG to be evaled later. MODEs argument may contain zero ore more
+# specifiers listed below separated by ',' character. This function returns two
+# values:
+# i) func_quote_arg_result
+# double-quoted (when needed), suitable for a subsequent eval
+# ii) func_quote_arg_unquoted_result
+# has all characters that are still active within double
+# quotes backslashified. Available only if 'unquoted' is specified.
+#
+# Available modes:
+# ----------------
+# 'eval' (default)
+# - escape shell special characters
+# 'expand'
+# - the same as 'eval'; but do not quote variable references
+# 'pretty'
+# - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might
+# later used in func_quote to get output like: 'echo "a b"' instead of
+# 'echo a\ b'. This is slower than default on some shells.
+# 'unquoted'
+# - produce also $func_quote_arg_unquoted_result which does not contain
+# wrapping double-quotes.
+#
+# Examples for 'func_quote_arg pretty,unquoted string':
+#
+# string | *_result | *_unquoted_result
+# ------------+-----------------------+-------------------
+# " | \" | \"
+# a b | "a b" | a b
+# "a b" | "\"a b\"" | \"a b\"
+# * | "*" | *
+# z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\"
+#
+# Examples for 'func_quote_arg pretty,unquoted,expand string':
+#
+# string | *_result | *_unquoted_result
+# --------------+---------------------+--------------------
+# z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\"
+func_quote_arg ()
+{
+ _G_quote_expand=false
+ case ,$1, in
+ *,expand,*)
+ _G_quote_expand=:
+ ;;
esac
- case $_G_arg in
- # Double-quote args containing shell metacharacters to delay
- # word splitting and command substitution for a subsequent eval.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- _G_arg=\"$_G_arg\"
+ case ,$1, in
+ *,pretty,*|*,expand,*|*,unquoted,*)
+ func_quote_portable $_G_quote_expand "$2"
+ func_quote_arg_result=$func_quote_portable_result
+ func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result
+ ;;
+ *)
+ # Faster quote-for-eval for some shells.
+ func_quotefast_eval "$2"
+ func_quote_arg_result=$func_quotefast_eval_result
;;
esac
+}
+
- func_quote_for_expand_result=$_G_arg
+# func_quote MODEs ARGs...
+# ------------------------
+# Quote all ARGs to be evaled later and join them into single command. See
+# func_quote_arg's description for more info.
+func_quote ()
+{
+ $debug_cmd
+ _G_func_quote_mode=$1 ; shift
+ func_quote_result=
+ while test 0 -lt $#; do
+ func_quote_arg "$_G_func_quote_mode" "$1"
+ if test -n "$func_quote_result"; then
+ func_append func_quote_result " $func_quote_arg_result"
+ else
+ func_append func_quote_result "$func_quote_arg_result"
+ fi
+ shift
+ done
}
@@ -1215,8 +1311,8 @@
_G_cmd=$1
_G_fail_exp=${2-':'}
- func_quote_for_expand "$_G_cmd"
- eval "func_notquiet $func_quote_for_expand_result"
+ func_quote_arg pretty,expand "$_G_cmd"
+ eval "func_notquiet $func_quote_arg_result"
$opt_dry_run || {
eval "$_G_cmd"
@@ -1241,8 +1337,8 @@
_G_fail_exp=${2-':'}
$opt_quiet || {
- func_quote_for_expand "$_G_cmd"
- eval "func_echo $func_quote_for_expand_result"
+ func_quote_arg expand,pretty "$_G_cmd"
+ eval "func_echo $func_quote_arg_result"
}
$opt_dry_run || {
@@ -1370,7 +1466,7 @@
#! /bin/sh
# Set a version string for this script.
-scriptversion=2014-01-07.03; # UTC
+scriptversion=2015-10-12.13; # UTC
# A portable, pluggable option parser for Bourne shell.
# Written by Gary V. Vaughan, 2010
@@ -1530,6 +1626,8 @@
{
$debug_cmd
+ _G_rc_run_hooks=false
+
case " $hookable_fns " in
*" $1 "*) ;;
*) func_fatal_error "'$1' does not support hook funcions.n" ;;
@@ -1538,16 +1636,16 @@
eval _G_hook_fns=\$$1_hooks; shift
for _G_hook in $_G_hook_fns; do
- eval $_G_hook '"$@"'
-
- # store returned options list back into positional
- # parameters for next 'cmd' execution.
- eval _G_hook_result=\$${_G_hook}_result
- eval set dummy "$_G_hook_result"; shift
+ if eval $_G_hook '"$@"'; then
+ # store returned options list back into positional
+ # parameters for next 'cmd' execution.
+ eval _G_hook_result=\$${_G_hook}_result
+ eval set dummy "$_G_hook_result"; shift
+ _G_rc_run_hooks=:
+ fi
done
- func_quote_for_eval ${1+"$@"}
- func_run_hooks_result=$func_quote_for_eval_result
+ $_G_rc_run_hooks && func_run_hooks_result=$_G_hook_result
}
@@ -1557,10 +1655,16 @@
## --------------- ##
# In order to add your own option parsing hooks, you must accept the
-# full positional parameter list in your hook function, remove any
-# options that you action, and then pass back the remaining unprocessed
+# full positional parameter list in your hook function, you may remove/edit
+# any options that you action, and then pass back the remaining unprocessed
# options in '_result', escaped suitably for
-# 'eval'. Like this:
+# 'eval'. In this case you also must return $EXIT_SUCCESS to let the
+# hook's caller know that it should pay attention to
+# '_result'. Returning $EXIT_FAILURE signalizes that
+# arguments are left untouched by the hook and therefore caller will ignore the
+# result variable.
+#
+# Like this:
#
# my_options_prep ()
# {
@@ -1570,9 +1674,11 @@
# usage_message=$usage_message'
# -s, --silent don'\''t print informational messages
# '
-#
-# func_quote_for_eval ${1+"$@"}
-# my_options_prep_result=$func_quote_for_eval_result
+# # No change in '$@' (ignored completely by this hook). There is
+# # no need to do the equivalent (but slower) action:
+# # func_quote eval ${1+"$@"}
+# # my_options_prep_result=$func_quote_result
+# false
# }
# func_add_hook func_options_prep my_options_prep
#
@@ -1581,25 +1687,37 @@
# {
# $debug_cmd
#
+# args_changed=false
+#
# # Note that for efficiency, we parse as many options as we can
# # recognise in a loop before passing the remainder back to the
# # caller on the first unrecognised argument we encounter.
# while test $# -gt 0; do
# opt=$1; shift
# case $opt in
-# --silent|-s) opt_silent=: ;;
+# --silent|-s) opt_silent=:
+# args_changed=:
+# ;;
# # Separate non-argument short options:
# -s*) func_split_short_opt "$_G_opt"
# set dummy "$func_split_short_opt_name" \
# "-$func_split_short_opt_arg" ${1+"$@"}
# shift
+# args_changed=:
# ;;
-# *) set dummy "$_G_opt" "$*"; shift; break ;;
+# *) # Make sure the first unrecognised option "$_G_opt"
+# # is added back to "$@", we could need that later
+# # if $args_changed is true.
+# set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
# esac
# done
#
-# func_quote_for_eval ${1+"$@"}
-# my_silent_option_result=$func_quote_for_eval_result
+# if $args_changed; then
+# func_quote eval ${1+"$@"}
+# my_silent_option_result=$func_quote_result
+# fi
+#
+# $args_changed
# }
# func_add_hook func_parse_options my_silent_option
#
@@ -1611,16 +1729,32 @@
# $opt_silent && $opt_verbose && func_fatal_help "\
# '--silent' and '--verbose' options are mutually exclusive."
#
-# func_quote_for_eval ${1+"$@"}
-# my_option_validation_result=$func_quote_for_eval_result
+# false
# }
# func_add_hook func_validate_options my_option_validation
#
-# You'll alse need to manually amend $usage_message to reflect the extra
+# You'll also need to manually amend $usage_message to reflect the extra
# options you parse. It's preferable to append if you can, so that
# multiple option parsing hooks can be added safely.
+# func_options_finish [ARG]...
+# ----------------------------
+# Finishing the option parse loop (call 'func_options' hooks ATM).
+func_options_finish ()
+{
+ $debug_cmd
+
+ _G_func_options_finish_exit=false
+ if func_run_hooks func_options ${1+"$@"}; then
+ func_options_finish_result=$func_run_hooks_result
+ _G_func_options_finish_exit=:
+ fi
+
+ $_G_func_options_finish_exit
+}
+
+
# func_options [ARG]...
# ---------------------
# All the functions called inside func_options are hookable. See the
@@ -1630,17 +1764,28 @@
{
$debug_cmd
- func_options_prep ${1+"$@"}
- eval func_parse_options \
- ${func_options_prep_result+"$func_options_prep_result"}
- eval func_validate_options \
- ${func_parse_options_result+"$func_parse_options_result"}
+ _G_rc_options=false
- eval func_run_hooks func_options \
- ${func_validate_options_result+"$func_validate_options_result"}
+ for my_func in options_prep parse_options validate_options options_finish
+ do
+ if eval func_$my_func '${1+"$@"}'; then
+ eval _G_res_var='$'"func_${my_func}_result"
+ eval set dummy "$_G_res_var" ; shift
+ _G_rc_options=:
+ fi
+ done
+
+ # Save modified positional parameters for caller. As a top-level
+ # options-parser function we always need to set the 'func_options_result'
+ # variable (regardless the $_G_rc_options value).
+ if $_G_rc_options; then
+ func_options_result=$_G_res_var
+ else
+ func_quote eval ${1+"$@"}
+ func_options_result=$func_quote_result
+ fi
- # save modified positional parameters for caller
- func_options_result=$func_run_hooks_result
+ $_G_rc_options
}
@@ -1649,9 +1794,9 @@
# All initialisations required before starting the option parse loop.
# Note that when calling hook functions, we pass through the list of
# positional parameters. If a hook function modifies that list, and
-# needs to propogate that back to rest of this script, then the complete
+# needs to propagate that back to rest of this script, then the complete
# modified list must be put in 'func_run_hooks_result' before
-# returning.
+# returning $EXIT_SUCCESS (otherwise $EXIT_FAILURE is returned).
func_hookable func_options_prep
func_options_prep ()
{
@@ -1661,10 +1806,14 @@
opt_verbose=false
opt_warning_types=
- func_run_hooks func_options_prep ${1+"$@"}
+ _G_rc_options_prep=false
+ if func_run_hooks func_options_prep ${1+"$@"}; then
+ _G_rc_options_prep=:
+ # save modified positional parameters for caller
+ func_options_prep_result=$func_run_hooks_result
+ fi
- # save modified positional parameters for caller
- func_options_prep_result=$func_run_hooks_result
+ $_G_rc_options_prep
}
@@ -1678,18 +1827,20 @@
func_parse_options_result=
+ _G_rc_parse_options=false
# this just eases exit handling
while test $# -gt 0; do
# Defer to hook functions for initial option parsing, so they
# get priority in the event of reusing an option name.
- func_run_hooks func_parse_options ${1+"$@"}
-
- # Adjust func_parse_options positional parameters to match
- eval set dummy "$func_run_hooks_result"; shift
+ if func_run_hooks func_parse_options ${1+"$@"}; then
+ eval set dummy "$func_run_hooks_result"; shift
+ _G_rc_parse_options=:
+ fi
# Break out of the loop if we already parsed every option.
test $# -gt 0 || break
+ _G_match_parse_options=:
_G_opt=$1
shift
case $_G_opt in
@@ -1704,7 +1855,10 @@
;;
--warnings|--warning|-W)
- test $# = 0 && func_missing_arg $_G_opt && break
+ if test $# = 0 && func_missing_arg $_G_opt; then
+ _G_rc_parse_options=:
+ break
+ fi
case " $warning_categories $1" in
*" $1 "*)
# trailing space prevents matching last $1 above
@@ -1757,15 +1911,25 @@
shift
;;
- --) break ;;
+ --) _G_rc_parse_options=: ; break ;;
-*) func_fatal_help "unrecognised option: '$_G_opt'" ;;
- *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
+ *) set dummy "$_G_opt" ${1+"$@"}; shift
+ _G_match_parse_options=false
+ break
+ ;;
esac
+
+ $_G_match_parse_options && _G_rc_parse_options=:
done
- # save modified positional parameters for caller
- func_quote_for_eval ${1+"$@"}
- func_parse_options_result=$func_quote_for_eval_result
+
+ if $_G_rc_parse_options; then
+ # save modified positional parameters for caller
+ func_quote eval ${1+"$@"}
+ func_parse_options_result=$func_quote_result
+ fi
+
+ $_G_rc_parse_options
}
@@ -1778,16 +1942,21 @@
{
$debug_cmd
+ _G_rc_validate_options=false
+
# Display all warnings if -W was not given.
test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
- func_run_hooks func_validate_options ${1+"$@"}
+ if func_run_hooks func_validate_options ${1+"$@"}; then
+ # save modified positional parameters for caller
+ func_validate_options_result=$func_run_hooks_result
+ _G_rc_validate_options=:
+ fi
# Bail if the options were screwed!
$exit_cmd $EXIT_FAILURE
- # save modified positional parameters for caller
- func_validate_options_result=$func_run_hooks_result
+ $_G_rc_validate_options
}
@@ -2068,7 +2237,7 @@
compiler: $LTCC
compiler flags: $LTCFLAGS
linker: $LD (gnu? $with_gnu_ld)
- version: $progname $scriptversion Debian-2.4.6-2
+ version: $progname $scriptversion Debian-2.4.6-2.1
automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
@@ -2270,6 +2439,8 @@
nonopt=
preserve_args=
+ _G_rc_lt_options_prep=:
+
# Shorthand for --mode=foo, only valid as the first argument
case $1 in
clean|clea|cle|cl)
@@ -2293,11 +2464,18 @@
uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
shift; set dummy --mode uninstall ${1+"$@"}; shift
;;
+ *)
+ _G_rc_lt_options_prep=false
+ ;;
esac
- # Pass back the list of options.
- func_quote_for_eval ${1+"$@"}
- libtool_options_prep_result=$func_quote_for_eval_result
+ if $_G_rc_lt_options_prep; then
+ # Pass back the list of options.
+ func_quote eval ${1+"$@"}
+ libtool_options_prep_result=$func_quote_result
+ fi
+
+ $_G_rc_lt_options_prep
}
func_add_hook func_options_prep libtool_options_prep
@@ -2309,9 +2487,12 @@
{
$debug_cmd
+ _G_rc_lt_parse_options=false
+
# Perform our own loop to consume as many options as possible in
# each iteration.
while test $# -gt 0; do
+ _G_match_lt_parse_options=:
_G_opt=$1
shift
case $_G_opt in
@@ -2386,15 +2567,22 @@
func_append preserve_args " $_G_opt"
;;
- # An option not handled by this hook function:
- *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
+ # An option not handled by this hook function:
+ *) set dummy "$_G_opt" ${1+"$@"} ; shift
+ _G_match_lt_parse_options=false
+ break
+ ;;
esac
+ $_G_match_lt_parse_options && _G_rc_lt_parse_options=:
done
+ if $_G_rc_lt_parse_options; then
+ # save modified positional parameters for caller
+ func_quote eval ${1+"$@"}
+ libtool_parse_options_result=$func_quote_result
+ fi
- # save modified positional parameters for caller
- func_quote_for_eval ${1+"$@"}
- libtool_parse_options_result=$func_quote_for_eval_result
+ $_G_rc_lt_parse_options
}
func_add_hook func_parse_options libtool_parse_options
@@ -2451,8 +2639,8 @@
}
# Pass back the unparsed argument list
- func_quote_for_eval ${1+"$@"}
- libtool_validate_options_result=$func_quote_for_eval_result
+ func_quote eval ${1+"$@"}
+ libtool_validate_options_result=$func_quote_result
}
func_add_hook func_validate_options libtool_validate_options
@@ -3418,8 +3606,8 @@
esac
done
- func_quote_for_eval "$libobj"
- test "X$libobj" != "X$func_quote_for_eval_result" \
+ func_quote_arg pretty "$libobj"
+ test "X$libobj" != "X$func_quote_arg_result" \
&& $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
&& func_warning "libobj name '$libobj' may not contain shell special characters."
func_dirname_and_basename "$obj" "/" ""
@@ -3492,8 +3680,8 @@
func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
srcfile=$func_to_tool_file_result
- func_quote_for_eval "$srcfile"
- qsrcfile=$func_quote_for_eval_result
+ func_quote_arg pretty "$srcfile"
+ qsrcfile=$func_quote_arg_result
# Only build a PIC object if we are building libtool libraries.
if test yes = "$build_libtool_libs"; then
@@ -4096,8 +4284,8 @@
case $nonopt in *shtool*) :;; *) false;; esac
then
# Aesthetically quote it.
- func_quote_for_eval "$nonopt"
- install_prog="$func_quote_for_eval_result "
+ func_quote_arg pretty "$nonopt"
+ install_prog="$func_quote_arg_result "
arg=$1
shift
else
@@ -4107,8 +4295,8 @@
# The real first argument should be the name of the installation program.
# Aesthetically quote it.
- func_quote_for_eval "$arg"
- func_append install_prog "$func_quote_for_eval_result"
+ func_quote_arg pretty "$arg"
+ func_append install_prog "$func_quote_arg_result"
install_shared_prog=$install_prog
case " $install_prog " in
*[\\\ /]cp\ *) install_cp=: ;;
@@ -4165,12 +4353,12 @@
esac
# Aesthetically quote the argument.
- func_quote_for_eval "$arg"
- func_append install_prog " $func_quote_for_eval_result"
+ func_quote_arg pretty "$arg"
+ func_append install_prog " $func_quote_arg_result"
if test -n "$arg2"; then
- func_quote_for_eval "$arg2"
+ func_quote_arg pretty "$arg2"
fi
- func_append install_shared_prog " $func_quote_for_eval_result"
+ func_append install_shared_prog " $func_quote_arg_result"
done
test -z "$install_prog" && \
@@ -4181,8 +4369,8 @@
if test -n "$install_override_mode" && $no_mode; then
if $install_cp; then :; else
- func_quote_for_eval "$install_override_mode"
- func_append install_shared_prog " -m $func_quote_for_eval_result"
+ func_quote_arg pretty "$install_override_mode"
+ func_append install_shared_prog " -m $func_quote_arg_result"
fi
fi
@@ -4478,8 +4666,8 @@
relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
$opt_quiet || {
- func_quote_for_expand "$relink_command"
- eval "func_echo $func_quote_for_expand_result"
+ func_quote_arg expand,pretty "$relink_command"
+ eval "func_echo $func_quote_arg_result"
}
if eval "$relink_command"; then :
else
@@ -5258,7 +5446,8 @@
if test \"\$libtool_execute_magic\" != \"$magic\"; then
file=\"\$0\""
- qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
+ func_quote_arg pretty "$ECHO"
+ qECHO=$func_quote_arg_result
$ECHO "\
# A function that is used when there is no print builtin or printf.
@@ -5268,7 +5457,7 @@
\$1
_LTECHO_EOF'
}
- ECHO=\"$qECHO\"
+ ECHO=$qECHO
fi
# Very basic option parsing. These options are (a) specific to
@@ -6611,9 +6800,9 @@
while test "$#" -gt 0; do
arg=$1
shift
- func_quote_for_eval "$arg"
- qarg=$func_quote_for_eval_unquoted_result
- func_append libtool_args " $func_quote_for_eval_result"
+ func_quote_arg pretty,unquoted "$arg"
+ qarg=$func_quote_arg_unquoted_result
+ func_append libtool_args " $func_quote_arg_result"
# If the previous option needs an argument, assign it.
if test -n "$prev"; then
@@ -7211,9 +7400,9 @@
save_ifs=$IFS; IFS=,
for flag in $args; do
IFS=$save_ifs
- func_quote_for_eval "$flag"
- func_append arg " $func_quote_for_eval_result"
- func_append compiler_flags " $func_quote_for_eval_result"
+ func_quote_arg pretty "$flag"
+ func_append arg " $func_quote_arg_result"
+ func_append compiler_flags " $func_quote_arg_result"
done
IFS=$save_ifs
func_stripname ' ' '' "$arg"
@@ -7227,10 +7416,10 @@
save_ifs=$IFS; IFS=,
for flag in $args; do
IFS=$save_ifs
- func_quote_for_eval "$flag"
- func_append arg " $wl$func_quote_for_eval_result"
- func_append compiler_flags " $wl$func_quote_for_eval_result"
- func_append linker_flags " $func_quote_for_eval_result"
+ func_quote_arg pretty "$flag"
+ func_append arg " $wl$func_quote_arg_result"
+ func_append compiler_flags " $wl$func_quote_arg_result"
+ func_append linker_flags " $func_quote_arg_result"
done
IFS=$save_ifs
func_stripname ' ' '' "$arg"
@@ -7254,8 +7443,8 @@
# -msg_* for osf cc
-msg_*)
- func_quote_for_eval "$arg"
- arg=$func_quote_for_eval_result
+ func_quote_arg pretty "$arg"
+ arg=$func_quote_arg_result
;;
# Flags to be passed through unchanged, with rationale:
@@ -7279,8 +7468,8 @@
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
-O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
-specs=*|-fsanitize=*)
- func_quote_for_eval "$arg"
- arg=$func_quote_for_eval_result
+ func_quote_arg pretty "$arg"
+ arg=$func_quote_arg_result
func_append compile_command " $arg"
func_append finalize_command " $arg"
func_append compiler_flags " $arg"
@@ -7301,15 +7490,15 @@
continue
else
# Otherwise treat like 'Some other compiler flag' below
- func_quote_for_eval "$arg"
- arg=$func_quote_for_eval_result
+ func_quote_arg pretty "$arg"
+ arg=$func_quote_arg_result
fi
;;
# Some other compiler flag.
-* | +*)
- func_quote_for_eval "$arg"
- arg=$func_quote_for_eval_result
+ func_quote_arg pretty "$arg"
+ arg=$func_quote_arg_result
;;
*.$objext)
@@ -7429,8 +7618,8 @@
*)
# Unknown arguments in both finalize_command and compile_command need
# to be aesthetically quoted because they are evaled later.
- func_quote_for_eval "$arg"
- arg=$func_quote_for_eval_result
+ func_quote_arg pretty "$arg"
+ arg=$func_quote_arg_result
;;
esac # arg
@@ -9942,8 +10131,8 @@
for cmd in $concat_cmds; do
IFS=$save_ifs
$opt_quiet || {
- func_quote_for_expand "$cmd"
- eval "func_echo $func_quote_for_expand_result"
+ func_quote_arg expand,pretty "$cmd"
+ eval "func_echo $func_quote_arg_result"
}
$opt_dry_run || eval "$cmd" || {
lt_exit=$?
@@ -10036,8 +10225,8 @@
eval cmd=\"$cmd\"
IFS=$save_ifs
$opt_quiet || {
- func_quote_for_expand "$cmd"
- eval "func_echo $func_quote_for_expand_result"
+ func_quote_arg expand,pretty "$cmd"
+ eval "func_echo $func_quote_arg_result"
}
$opt_dry_run || eval "$cmd" || {
lt_exit=$?
@@ -10511,12 +10700,12 @@
elif eval var_value=\$$var; test -z "$var_value"; then
relink_command="$var=; export $var; $relink_command"
else
- func_quote_for_eval "$var_value"
- relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+ func_quote_arg pretty "$var_value"
+ relink_command="$var=$func_quote_arg_result; export $var; $relink_command"
fi
done
- relink_command="(cd `pwd`; $relink_command)"
- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
+ func_quote_arg pretty,unquoted "(cd `pwd`; $relink_command)"
+ relink_command=$func_quote_arg_unquoted_result
fi
# Only actually do things if not in dry run mode.
@@ -10756,13 +10945,14 @@
elif eval var_value=\$$var; test -z "$var_value"; then
relink_command="$var=; export $var; $relink_command"
else
- func_quote_for_eval "$var_value"
- relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+ func_quote_arg pretty,unquoted "$var_value"
+ relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command"
fi
done
# Quote the link command for shipping.
relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
+ func_quote_arg pretty,unquoted "$relink_command"
+ relink_command=$func_quote_arg_unquoted_result
if test yes = "$hardcode_automatic"; then
relink_command=
fi
diff -Nru gstreamer-editing-services1.0-1.14.1/meson.build gstreamer-editing-services1.0-1.14.2/meson.build
--- gstreamer-editing-services1.0-1.14.1/meson.build 2018-05-17 12:33:42.000000000 +0000
+++ gstreamer-editing-services1.0-1.14.2/meson.build 2018-07-20 00:05:58.000000000 +0000
@@ -1,5 +1,5 @@
project('gst-editing-services', 'c',
- version : '1.14.1',
+ version : '1.14.2',
meson_version : '>= 0.36.0',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])
@@ -110,7 +110,7 @@
'gst_init(NULL,NULL);' + \
'ges_init();' ]
-ges_c_args = ['-DHAVE_CONFIG_H']
+ges_c_args = ['-DHAVE_CONFIG_H', '-DG_LOG_DOMAIN="GES"']
plugins_install_dir = '@0@/gstreamer-1.0'.format(get_option('libdir'))
if gst_dep.type_name() == 'internal'
@@ -156,6 +156,50 @@
subdir('tests')
subdir('examples')
+override_detector = '''
+import sys
+import os
+
+prefix = sys.argv[1]
+version = sys.version_info
+
+# If we are installing in the same prefix as PyGobject
+# make sure to install in the right place.
+import gi.overrides
+
+overrides_path = os.path.dirname(gi.overrides.__file__)
+if os.path.commonprefix([overrides_path, prefix]) == prefix:
+ print(overrides_path)
+ exit(0)
+
+# Otherwise follow python's way of install site packages inside
+# the provided prefix
+if os.name == 'posix':
+ print(os.path.join(
+ prefix, 'lib', 'python%d.%d' % (version.major, version.minor),
+ 'site-packages', 'gi', 'overrides'))
+else:
+ print(os.path.join(
+ prefix, 'Lib', 'Python%d%d' % (version.major, version.minor),
+ 'site-packages', 'gi', 'overrides'))
+'''
+python3 = import('python3').find_python()
+pygi_override_dir = get_option('pygi-overrides-dir')
+if pygi_override_dir == ''
+ cres = run_command(python3, '-c', override_detector, get_option('prefix'))
+ if cres.returncode() == 0
+ pygi_override_dir = cres.stdout().strip()
+ endif
+ if cres.stderr() != ''
+ message(cres.stderr())
+ endif
+endif
+
+if pygi_override_dir != ''
+ message('pygobject overrides directory ' + pygi_override_dir)
+ subdir('bindings/python')
+endif
+
if build_machine.system() == 'windows'
message('Disabling gtk-doc while building on Windows')
elif get_option('disable_gtkdoc')
@@ -168,5 +212,4 @@
endif
endif
-python3 = import('python3').find_python()
run_command(python3, '-c', 'import shutil; shutil.copy("hooks/pre-commit.hook", ".git/hooks/pre-commit")')
diff -Nru gstreamer-editing-services1.0-1.14.1/meson_options.txt gstreamer-editing-services1.0-1.14.2/meson_options.txt
--- gstreamer-editing-services1.0-1.14.1/meson_options.txt 2018-03-23 20:47:44.000000000 +0000
+++ gstreamer-editing-services1.0-1.14.2/meson_options.txt 2018-07-18 16:40:26.000000000 +0000
@@ -4,3 +4,5 @@
option('disable_gtkdoc',
type : 'boolean', value : false,
description : 'Whether to disable the documentation generation')
+option('pygi-overrides-dir', type : 'string', value : '',
+ description: 'Path to pygobject overrides directory')
diff -Nru gstreamer-editing-services1.0-1.14.1/NEWS gstreamer-editing-services1.0-1.14.2/NEWS
--- gstreamer-editing-services1.0-1.14.1/NEWS 2018-05-17 12:34:35.000000000 +0000
+++ gstreamer-editing-services1.0-1.14.2/NEWS 2018-07-20 00:06:53.000000000 +0000
@@ -87,14 +87,14 @@
applications that set up connections with and stream to and from other
WebRTC peers, whilst leveraging all of the usual GStreamer features such
as hardware-accelerated encoding and decoding, OpenGL integration,
-zero-copy and embedded platform support. And it's easy to build and
+zero-copy and embedded platform support. And it’s easy to build and
integrate into your application too!
WebRTC enables real-time communication of audio, video and data with web
browsers and native apps, and it is supported or about to be support by
recent versions of all major browsers and operating systems.
-GStreamer's new WebRTC implementation uses libnice for Interactive
+GStreamer’s new WebRTC implementation uses libnice for Interactive
Connectivity Establishment (ICE) to figure out the best way to
communicate with other peers, punch holes into firewalls, and traverse
NATs.
@@ -104,9 +104,9 @@
functionality is missing it should be fairly obvious where it needs to
go.
-For more details, background and example code, check out Nirbheek's blog
-post _GStreamer has grown a WebRTC implementation_, as well as Matthew's
-_GStreamer WebRTC_ talk from last year's GStreamer Conference in Prague.
+For more details, background and example code, check out Nirbheek’s blog
+post _GStreamer has grown a WebRTC implementation_, as well as Matthew’s
+_GStreamer WebRTC_ talk from last year’s GStreamer Conference in Prague.
New Elements
@@ -117,7 +117,7 @@
(SRT) video streaming protocol, which aims to be easy to use whilst
striking a new balance between reliability and latency for low
latency video streaming use cases. More details about SRT and the
- implementation in GStreamer in Olivier's blog post _SRT in
+ implementation in GStreamer in Olivier’s blog post _SRT in
GStreamer_.
- av1enc and av1dec elements providing experimental support for the
@@ -138,7 +138,7 @@
GStreamer-internal latency as well as latency added by external
components or circuits.
-- 'fakevideosink is basically a null sink for video data and very
+- ’fakevideosink is basically a null sink for video data and very
similar to fakesink, only that it will answer allocation queries and
will advertise support for various video-specific things such
GstVideoMeta, GstVideoCropMeta and GstVideoOverlayCompositionMeta
@@ -149,22 +149,22 @@
multiple processes. Usually a GStreamer pipeline runs in a single
process and parallelism is achieved by distributing workloads using
multiple threads. This means that all elements in the pipeline have
- access to all the other elements' memory space however, including
+ access to all the other elements’ memory space however, including
that of any libraries used. For security reasons one might therefore
want to put sensitive parts of a pipeline such as DRM and decryption
handling into a separate process to isolate it from the rest of the
pipeline. This can now be achieved with the new ipcpipeline plugin.
- Check out George's blog post _ipcpipeline: Splitting a GStreamer
+ Check out George’s blog post _ipcpipeline: Splitting a GStreamer
pipeline into multiple processes_ or his lightning talk from last
- year's GStreamer Conference in Prague for all the gory details.
+ year’s GStreamer Conference in Prague for all the gory details.
- proxysink and proxysrc are new elements to pass data from one
pipeline to another within the same process, very similar to the
existing inter elements, but not limited to raw audio and video
data. These new proxy elements are very special in how they work
under the hood, which makes them extremely powerful, but also
- dangerous if not used with care. The reason for this is that it's
- not just data that's passed from sink to src, but these elements
+ dangerous if not used with care. The reason for this is that it’s
+ not just data that’s passed from sink to src, but these elements
basically establish a two-way wormhole that passes through queries
and events in both directions, which means caps negotiation and
allocation query driven zero-copy can work through this wormhole.
@@ -173,13 +173,13 @@
streaming thread. There is a queue element inside proxysrc to
decouple the source thread from the sink thread, but that queue is
not unlimited, so it is entirely possible that the proxysink
- pipeline thread gets stuck in the proxysrc pipeline, e.g. when that
+ pipeline thread gets stuck in the proxysrc pipeline, e.g. when that
pipeline is paused or stops consuming data for some other reason.
This means that one should always shut down down the proxysrc
pipeline before shutting down the proxysink pipeline, for example.
Or at least take care when shutting down pipelines. Usually this is
not a problem though, especially not in live pipelines. For more
- information see Nirbheek's blog post _Decoupling GStreamer
+ information see Nirbheek’s blog post _Decoupling GStreamer
Pipelines_, and also check out out the new ipcpipeline plugin for
sending data from one process to another process (see above).
@@ -204,13 +204,13 @@
in the GStreamer WebRTC implementation.
- GstReferenceTimestampMeta is a new meta that allows you to attach
- additional reference timestamps to a buffer. These timestamps don't
+ additional reference timestamps to a buffer. These timestamps don’t
have to relate to the pipeline clock in any way. Examples of this
could be an NTP timestamp when the media was captured, a frame
counter on the capture side or the (local) UNIX timestamp when the
media was captured. The decklink elements make use of this.
-- GstVideoRegionOfInterestMeta: it's now possible to attach generic
+- GstVideoRegionOfInterestMeta: it’s now possible to attach generic
free-form element-specific parameters to a region of interest meta,
for example to tell a downstream encoder to use certain codec
parameters for a certain region.
@@ -247,7 +247,7 @@
- GstAudioStreamAlign is a new helper object for audio elements that
handles discontinuity detection and sample alignment. It will align
- samples after the previous buffer's samples, but keep track of the
+ samples after the previous buffer’s samples, but keep track of the
divergence between buffer timestamps and sample position (jitter).
If it exceeds a configurable threshold the alignment will be reset.
This simply factors out code that was duplicated in a number of
@@ -267,7 +267,7 @@
installing and handling a "render-rectangle" property on elements
that implement this interface, so that this functionality can also
be used from the command line for testing and debugging purposes.
- The property wasn't added to the interface itself as that would
+ The property wasn’t added to the interface itself as that would
require all implementors to provide it which would not be
backwards-compatible.
@@ -280,11 +280,11 @@
element is based on this.
- Full list of API new in 1.14:
-- GStreamer core API new in 1.14
-- GStreamer base library API new in 1.14
-- gst-plugins-base libraries API new in 1.14
-- gst-plugins-bad: no list, mostly GstWebRTC library and new
- non-stream audio decoder base class.
+ - GStreamer core API new in 1.14
+ - GStreamer base library API new in 1.14
+ - gst-plugins-base libraries API new in 1.14
+ - gst-plugins-bad: no list, mostly GstWebRTC library and new
+ non-stream audio decoder base class.
New RTP features and improvements
@@ -301,7 +301,7 @@
packet loss using _retransmission (rtx)_. GStreamer has had
retransmission support for a long time, but Forward Error Correction
allows for different trade-offs: The advantage of Forward Error
- Correction is that it doesn't add latency, whereas retransmission
+ Correction is that it doesn’t add latency, whereas retransmission
requires at least one more roundtrip to request and hopefully
receive lost packets; Forward Error Correction increases the
required bandwidth however, even in situations where there is no
@@ -317,7 +317,7 @@
- a few new buffer flags for FEC support:
GST_BUFFER_FLAG_NON_DROPPABLE can be used to mark important buffers,
- e.g. to flag RTP packets carrying keyframes or codec setup data for
+ e.g. to flag RTP packets carrying keyframes or codec setup data for
RTP Forward Error Correction purposes, or to prevent still video
frames from being dropped by elements due to QoS. There already is a
GST_BUFFER_FLAG_DROPPABLE. GST_RTP_BUFFER_FLAG_REDUNDANT is used to
@@ -337,8 +337,8 @@
- rtpjitterbuffer has a new fast start mode: in many scenarios the
jitter buffer will have to wait for the full configured latency
before it can start outputting packets. The reason for that is that
- it often can't know what the sequence number of the first expected
- RTP packet is, so it can't know whether a packet earlier than the
+ it often can’t know what the sequence number of the first expected
+ RTP packet is, so it can’t know whether a packet earlier than the
earliest packet received will still arrive in future. This behaviour
can now be bypassed by setting the "faststart-min-packets" property
to the number of consecutive packets needed to start, and the jitter
@@ -367,10 +367,10 @@
- tee now does allocation query aggregation, which is important for
zero-copy and efficient data handling, especially for video. Those
who want to drop allocation queries on purpose can use the identity
- element's new "drop-allocation" property for that instead.
+ element’s new "drop-allocation" property for that instead.
- audioconvert now has a "mix-matrix" property, which obsoletes the
- audiomixmatrix element. There's also mix matrix support in the audio
+ audiomixmatrix element. There’s also mix matrix support in the audio
conversion and channel mixing API.
- x264enc: new "insert-vui" property to disable VUI (Video Usability
@@ -409,7 +409,7 @@
- rtspsrc now has support for RTSP protocol version 2.0 as well as
ONVIF audio backchannels (see below for more details). It also
- sports a new "accept-certificate" signal for "manually" checking a
+ sports a new "accept-certificate" signal for “manually” checking a
TLS certificate for validity. It now also prints RTSP/SDP messages
to the gstreamer debug log instead of stdout.
@@ -418,8 +418,8 @@
- splitmuxsink has gained a "split-now" action signal and new
"alignment-threshold" and "use-robust-muxing" properties. If robust
- muxing is enabled, it will check and set the muxer's reserved space
- properties if present. This is primarily for use with mp4mux's
+ muxing is enabled, it will check and set the muxer’s reserved space
+ properties if present. This is primarily for use with mp4mux’s
robust muxing mode.
- qtmux has a new _prefill recording mode_ which sets up a moov header
@@ -443,24 +443,24 @@
This allows for connection reuse, cookie sharing, etc. Applications
can also force a context to use. In other news, HTTP headers
received from the server are posted as element messages on the bus
- now for easier diagnostics, and it's also possible now to use other
+ now for easier diagnostics, and it’s also possible now to use other
types of proxy servers such as SOCKS4 or SOCKS5 proxies, support for
which is implemented directly in gio. Before only HTTP proxies were
allowed.
- qtmux, mp4mux and matroskamux will now refuse caps changes of input
- streams at runtime. This isn't really supported with these
+ streams at runtime. This isn’t really supported with these
containers (or would have to be implemented differently with a
- considerable effort) and doesn't produce valid and spec-compliant
- files that will play everywhere. So if you can't guarantee that the
- input caps won't change, use a container format that does support on
+ considerable effort) and doesn’t produce valid and spec-compliant
+ files that will play everywhere. So if you can’t guarantee that the
+ input caps won’t change, use a container format that does support on
the fly caps changes for a stream such as MPEG-TS or use
splitmuxsink which can start a new file when the caps change. What
would happen before is that e.g. rtph264depay or rtph265depay would
simply send new SPS/PPS inband even for AVC format, which would then
get muxed into the container as if nothing changed. Some decoders
- will handle this just fine, but that's often more luck than by
- design. In any case, it's not right, so we disallow it now.
+ will handle this just fine, but that’s often more luck than by
+ design. In any case, it’s not right, so we disallow it now.
- matroskamux has Table of Content (TOC) support now (chapters etc.)
and matroskademux TOC support has been improved. matroskademux has
@@ -475,10 +475,10 @@
- The avwait element has a new "end-timecode" property and posts
"avwait-status" element messages now whenever avwait starts or stops
- passing through data (e.g. because target-timecode and end-timecode
+ passing through data (e.g. because target-timecode and end-timecode
respectively have been reached).
-- 'alsamidisrc' element has been broken for many many years and has
+- ‘alsamidisrc’ element has been broken for many many years and has
now been repaired allowing live capture from your MIDI HW.
- h265parse and h265parse will try harder to make upstream output the
@@ -500,7 +500,7 @@
- The NVIDIA NVENC hardware-accelerated video encoders now support
dynamic bitrate and preset reconfiguration and support the I420
- 4:2:0 video format. It's also possible to configure the gop size via
+ 4:2:0 video format. It’s also possible to configure the gop size via
the new "gop-size" property.
- The MPEG-TS muxer and demuxer (tsmux, tsdemux) now have support for
@@ -515,25 +515,25 @@
- The decklink plugin for Blackmagic capture and playback cards have
seen numerous improvements:
-- decklinkaudiosrc and decklinkvideosrc now put hardware reference
- timestamp on buffers in form of GstReferenceTimestampMetas.
- This can be useful to know on multi-channel cards which frames from
- different channels were captured at the same time.
-
-- decklinkvideosink has gained support for Decklink hardware keying
- with two new properties ("keyer-mode" and "keyer-level") to control
- the built-in hardware keyer of Decklink cards.
-
-- decklinkaudiosink has been re-implemented around GstBaseSink instead
- of the GstAudioBaseSink base class, since the Decklink APIs don't
- fit very well with the GstAudioBaseSink APIs, which used to cause
- various problems due to inaccuracies in the clock calculations.
- Problems were audio drop-outs and A/V sync going wrong after
- pausing/seeking.
+ - decklinkaudiosrc and decklinkvideosrc now put hardware reference
+ timestamp on buffers in form of GstReferenceTimestampMetas.
+ This can be useful to know on multi-channel cards which frames
+ from different channels were captured at the same time.
+
+ - decklinkvideosink has gained support for Decklink hardware
+ keying with two new properties ("keyer-mode" and "keyer-level")
+ to control the built-in hardware keyer of Decklink cards.
+
+ - decklinkaudiosink has been re-implemented around GstBaseSink
+ instead of the GstAudioBaseSink base class, since the Decklink
+ APIs don’t fit very well with the GstAudioBaseSink APIs, which
+ used to cause various problems due to inaccuracies in the clock
+ calculations. Problems were audio drop-outs and A/V sync going
+ wrong after pausing/seeking.
-- support for more than 16 devices, without any artificial limit
+ - support for more than 16 devices, without any artificial limit
-- work continued on the msdk plugin for Intel's Media SDK which
+- work continued on the msdk plugin for Intel’s Media SDK which
enables hardware-accelerated video encoding and decoding on Intel
graphics hardware on Windows or Linux. Added the video memory,
buffer pool, and context/session sharing support which helps to
@@ -552,7 +552,7 @@
streams, meaning it can do fast-forward/fast-rewind of normal (non-I
frame only) streams even at high speeds without saturating network
bandwidth or exceeding decoder capabilities. It will keep statistics
- and skip keyframes or fragments as needed. See Sebastian's blog post
+ and skip keyframes or fragments as needed. See Sebastian’s blog post
_DASH trick-mode playback in GStreamer_ for more details. It also
supports webvtt subtitle streams now and has seen improvements when
seeking in live streams.
@@ -560,13 +560,13 @@
- kmssink has seen lots of fixes and improvements in this cycle,
including:
-- Raspberry Pi (vc4) and Xilinx DRM driver support
+ - Raspberry Pi (vc4) and Xilinx DRM driver support
-- new "render-rectangle" property that can be used from the command
- line as well as "display-width" and "display-height", and
- "can-scale" properties
+ - new "render-rectangle" property that can be used from the
+ command line as well as "display-width" and "display-height",
+ and "can-scale" properties
-- GstVideoCropMeta support
+ - GstVideoCropMeta support
Plugin and library moves
@@ -596,7 +596,7 @@
It improves upon the existing GstCollectPads API in that it is a proper
base class which was also designed with live streaming in mind.
GstAggregator subclasses will operate in a mode with defined latency if
-any of the inputs are live streams. This ensures that the pipeline won't
+any of the inputs are live streams. This ensures that the pipeline won’t
stall if any of the inputs stop producing data, and that the configured
maximum latency is never exceeded.
@@ -604,19 +604,19 @@
GstAudioAggregator is a new base class for raw audio mixers and muxers
and is based on GstAggregator (see above). It provides defined-latency
-mixing of raw audio inputs and ensures that the pipeline won't stall
+mixing of raw audio inputs and ensures that the pipeline won’t stall
even if one of the input streams stops producing data.
As part of the move to stabilise the API there were some last-minute API
changes and clean-ups, but those should mostly affect internal elements.
It is used by the audiomixer element, which is a replacement for
-'adder', which did not handle live inputs very well and did not align
+‘adder’, which did not handle live inputs very well and did not align
input streams according to running time. audiomixer should behave much
better in that respect and generally behave as one would expected in
most scenarios.
-Similarly, audiointerleave replaces the 'interleave' element which did
+Similarly, audiointerleave replaces the ‘interleave’ element which did
not handle live inputs or non-aligned inputs very robustly.
GstAudioAggregator and its subclases have gained support for input
@@ -625,7 +625,7 @@
handled correctly.
We hope to move the video equivalents (GstVideoAggregator and
-compositor) to -base in the next cycle, i.e. for 1.16.
+compositor) to -base in the next cycle, i.e. for 1.16.
GStreamer OpenGL integration library and plugin moved from -bad to -base
@@ -646,7 +646,7 @@
qmlglsink video sink element as well as a qmlglsrc element. qmlglsink
renders video into a QQuickItem, and qmlglsrc captures a window from a
QML view and feeds it as video into a pipeline for further processing.
-Both elements leverage GStreamer's OpenGL integration. In addition to
+Both elements leverage GStreamer’s OpenGL integration. In addition to
the move to -good the following features were added:
- A proxy object is now used for thread-safe access to the QML widget
@@ -654,20 +654,20 @@
video widget at any time, so without this we might be left with a
dangling pointer.
-- EGL is now supported with the X11 backend, which works e.g. on
+- EGL is now supported with the X11 backend, which works e.g. on
Freescale imx6
The GTK+ plugin has also moved from -bad to -good. It includes gtksink
and gtkglsink which both render video into a GtkWidget. gtksink uses
Cairo for rendering the video, which will work everywhere in all
scenarios but involves an extra memory copy, whereas gtkglsink fully
-leverages GStreamer's OpenGL integration, but might not work properly in
-all scenarios, e.g. where the OpenGL driver does not properly support
+leverages GStreamer’s OpenGL integration, but might not work properly in
+all scenarios, e.g. where the OpenGL driver does not properly support
multiple sharing contexts in different threads; on Linux Nouveau is
-known to be broken in this respect, whilst NVIDIA's proprietary drivers
+known to be broken in this respect, whilst NVIDIA’s proprietary drivers
and most other drivers generally work fine, and the experience with
-Intel's driver seems to be mixed; some proprietary embedded Linux
-drivers don't work; macOS works.
+Intel’s driver seems to be mixed; some proprietary embedded Linux
+drivers don’t work; macOS works.
GstPhysMemoryAllocator interface moved from -bad to -base
@@ -676,13 +676,13 @@
Plugin removals
-- the sunaudio plugin was removed, since it couldn't ever have been
+- the sunaudio plugin was removed, since it couldn’t ever have been
built or used with GStreamer 1.0, but no one even noticed in all
these years.
- the schroedinger-based Dirac encoder/decoder plugin has been
removed, as there is no longer any upstream or anyone else
- maintaining it. Seeing that it's quite a fringe codec it seemed best
+ maintaining it. Seeing that it’s quite a fringe codec it seemed best
to simply remove it.
API removals
@@ -696,29 +696,28 @@
- The video support library has gained support for a few new pixel
formats:
-- NV16_10LE32: 10-bit variant of NV16, packed into 32bit words (plus 2
- bits padding)
-- NV12_10LE32: 10-bit variant of NV12, packed into 32bit words (plus 2
- bits padding)
-- GRAY10_LE32: 10-bit grayscale, packed in 32bit words (plus 2 bits
- padding)
-
+ - NV16_10LE32: 10-bit variant of NV16, packed into 32bit words
+ (plus 2 bits padding)
+ - NV12_10LE32: 10-bit variant of NV12, packed into 32bit words
+ (plus 2 bits padding)
+ - GRAY10_LE32: 10-bit grayscale, packed in 32bit words (plus 2
+ bits padding)
- decodebin, playbin and GstDiscoverer have seen stability
improvements in corner cases such as shutdown while still starting
up or shutdown in error cases (hat tip to the oss-fuzz project).
- floating reference handling was inconsistent and has been cleaned up
across the board, including annotations. This solves various
- long-standing memory leaks in language bindings, which e.g. often
+ long-standing memory leaks in language bindings, which e.g. often
caused elements and pads to be leaked.
- major gobject-introspection annotation improvements for large parts
of the library API, including nullability of return types and
- function parameters, correct types (e.g. strings vs. filenames),
+ function parameters, correct types (e.g. strings vs. filenames),
ownership transfer, array length parameters, etc. This allows to use
bigger parts of the GStreamer API to be safely used from dynamic
- language bindings (e.g. Python, Javascript) and allows static
- bindings (e.g. C#, Rust, Vala) to autogenerate more API bindings
+ language bindings (e.g. Python, Javascript) and allows static
+ bindings (e.g. C#, Rust, Vala) to autogenerate more API bindings
without manual intervention.
OpenGL integration
@@ -727,7 +726,7 @@
gst-plugins-base and is now part of our stable API.
- new MESA3D GBM BACKEND. On devices with working libdrm support, it
- is possible to use Mesa3D's GBM library to set up an EGL context
+ is possible to use Mesa3D’s GBM library to set up an EGL context
directly on top of KMS. This makes it possible to use the GStreamer
OpenGL elements without a windowing system if a libdrm- and
Mesa3D-supported GPU is present.
@@ -761,7 +760,7 @@
log handler of course, this just provides this functionality as part
of GStreamer.
-- 'fakevideosink is a null sink for video data that advertises
+- ’fakevideosink is a null sink for video data that advertises
video-specific metas and behaves like a video sink. See above for
more details.
@@ -817,8 +816,8 @@
the best of our knowledge the first RTSP 2.0 implementation ever!
- ONVIF audio backchannel support. This is an extension specified by
- ONVIF that allows RTSP clients (e.g. a control room operator) to
- send audio back to the RTSP server (e.g. an IP camera).
+ ONVIF that allows RTSP clients (e.g. a control room operator) to
+ send audio back to the RTSP server (e.g. an IP camera).
Theoretically this could have been done also by using the RECORD
method of the RTSP protocol, but ONVIF chose not to do that, so the
backchannel is set up alongside the other streams. Format
@@ -836,7 +835,7 @@
manually checking a TLS certificate for validity.
- Fix keep-alive/timeout issue for certain clients using TCP
- interleave as transport who don't do keep-alive via some other
+ interleave as transport who don’t do keep-alive via some other
method such as periodic RTSP OPTION requests. We now put netaddress
metas on the packets from the TCP interleaved stream, so can map
RTCP packets to the right stream in the server and can handle them
@@ -853,7 +852,7 @@
GStreamer VAAPI
-- Improve DMABuf's usage, both upstream and dowstream, and
+- Improve DMABuf’s usage, both upstream and dowstream, and
memory:DMABuf caps feature is also negotiated when the dmabuf-based
buffer cannot be mapped onto user-space.
@@ -865,19 +864,19 @@
- VA display cache was removed.
-- libva's log messages are now redirected into the GStreamer log
+- libva’s log messages are now redirected into the GStreamer log
handler.
- Decoders improved their upstream re-negotiation by avoiding to
re-instantiate the internal decoder if stream caps are compatible
with the previous one.
-- When downstream doesn't support GstVideoMeta and the decoded frames
- don't have standard strides, they are copied onto system
+- When downstream doesn’t support GstVideoMeta and the decoded frames
+ don’t have standard strides, they are copied onto system
memory-based buffers.
- H.264 decoder has a low-latency property, for live streams which
- doesn't conform the H.264 specification but still it is required to
+ doesn’t conform the H.264 specification but still it is required to
push the frames to downstream as soon as possible.
- As part of the Google Summer of Code 2017 the H.264 decoder drops
@@ -924,7 +923,7 @@
- vaapisink was demoted to marginal rank on Wayland because COGL
cannot display YUV surfaces.
-More details in Víctor's blog post _GStreamer VA-API 1.14: what’s new?_.
+More details in Víctor’s blog post _GStreamer VA-API 1.14: what’s new?_.
GStreamer Editing Services and NLE
@@ -942,7 +941,7 @@
GStreamer validate
-- Handle running scenarios on live pipelines (in the "content sense",
+- Handle running scenarios on live pipelines (in the “content sense”,
not the GStreamer one)
- Implement RTSP support with a basic server based on gst-rtsp-server,
@@ -969,7 +968,7 @@
- Update wrapped API to GStreamer 1.14
-- Removed the need for "glue" code
+- Removed the need for “glue” code
- Provide a nuget
@@ -989,7 +988,7 @@
- some plugins and libraries have moved between modules, see the
_Plugin and_ _library moves_ section above, and their respective
- dependencies have moved with them of course, e.g. the GStreamer
+ dependencies have moved with them of course, e.g. the GStreamer
OpenGL integration support library and plugin is now in
gst-plugins-base, and mpg123, LAME and twoLAME based audio decoder
and encoder plugins are now in gst-plugins-good.
@@ -1033,7 +1032,7 @@
There is also a small structure size related ABI breakage introduced in
the gst-plugins-bad codecparsers library between version 1.13.90 and
-1.13.91. This should "only" affect gstreamer-vaapi, so anyone who ships
+1.13.91. This should “only” affect gstreamer-vaapi, so anyone who ships
the release candidates is advised to upgrade those two modules at the
same time.
@@ -1052,36 +1051,38 @@
- The GStreamer wasapi plugin was rewritten and should not only be
usable now, but in top shape and suitable for low-latency use cases.
- The Windows Audio Session API (WASAPI) is Microsoft's most modern
+ The Windows Audio Session API (WASAPI) is Microsoft’s most modern
method for talking with audio devices, and now that the wasapi
plugin is up to scratch it is preferred over the directsound plugin.
The ranks of the wasapisink and wasapisrc elements have been updated
to reflect this. Further improvements include:
-- support for more than 2 channels
+ - support for more than 2 channels
-- a new "low-latency" property to enable low-latency operation (which
- should always be safe to enable)
+ - a new "low-latency" property to enable low-latency operation
+ (which should always be safe to enable)
-- support for the AudioClient3 API which is only available on Windows
- 10: in wasapisink this will be used automatically if available; in
- wasapisrc it will have to be enabled explicitly via the
- "use-audioclient3" property, as capturing audio with low latency and
- without glitches seems to require setting the realtime priority of
- the entire pipeline to "critical", which cannot be done from inside
- the element, but has to be done in the application.
-
-- set realtime thread priority to avoid glitches
-
-- allow opening devices in exclusive mode, which provides much lower
- latency compared to shared mode where WASAPI's engine period is
- 10ms. This can be activated via the "exclusive" property.
+ - support for the AudioClient3 API which is only available on
+ Windows 10: in wasapisink this will be used automatically if
+ available; in wasapisrc it will have to be enabled explicitly
+ via the "use-audioclient3" property, as capturing audio with low
+ latency and without glitches seems to require setting the
+ realtime priority of the entire pipeline to “critical”, which
+ cannot be done from inside the element, but has to be done in
+ the application.
+
+ - set realtime thread priority to avoid glitches
+
+ - allow opening devices in exclusive mode, which provides much
+ lower latency compared to shared mode where WASAPI’s engine
+ period is 10ms. This can be activated via the "exclusive"
+ property.
-- Also see Nirbheek's blog post _Low Latency Audio on Windows with
- GStreamer_.
+ - Also see Nirbheek’s blog post _Low Latency Audio on Windows with
+ GStreamer_.
- There are now GstDeviceProvider implementations for the wasapi and
- directsound plugins, so it's now possible to discover both audio
+ directsound plugins, so it’s now possible to discover both audio
sources and audio sinks on Windows via the GstDeviceMonitor API
- debug log timestamps are now higher granularity owing to
@@ -1136,12 +1137,12 @@
Selnes, Thiago Santos, Thibault Saunier, Thijs Vermeir, Tim Allen,
Tim-Philipp Müller, Ting-Wei Lan, Tomas Rataj, Tom Bailey, Tonu Jaansoo,
U. Artie Eoff, Umang Jain, Ursula Maplehurst, VaL Doroshchuk, Vasilis
-Liaskovitis, Víctor Manuel Jáquez Leal, vijay, Vincent Penquerc'h,
+Liaskovitis, Víctor Manuel Jáquez Leal, vijay, Vincent Penquerc’h,
Vineeth T M, Vivia Nikolaidou, Wang Xin-yu (王昕宇), Wei Feng, Wim
Taymans, Wonchul Lee, Xabier Rodriguez Calvar, Xavier Claessens,
XuGuangxin, Yasushi SHOJI, Yi A Wang, Youness Alaoui,
-... and many others who have contributed bug reports, translations, sent
+… and many others who have contributed bug reports, translations, sent
suggestions or helped testing.
@@ -1187,8 +1188,8 @@
- gst-play-1.0: fix leaving stdin in non-blocking mode after exit
- flvmux: wait for caps on all input pads before writing header even
if source is live
-- flvmux: don't wake up the muxer unless there is data, fixes busy
- looping if there's no input data
+- flvmux: don’t wake up the muxer unless there is data, fixes busy
+ looping if there’s no input data
- flvmux: fix major leak of input buffers
- rtspsrc, rtsp-server: revert to RTSP RFC handling of
sendonly/recvonly attributes
@@ -1212,17 +1213,17 @@
- h265parse: Make caps writable before modifying them, fixes criticals
- fakevideosink: request an extra buffer if enable-last-sample is
enabled
-- wasapisrc: Don't provide a clock based on WASAPI's clock
+- wasapisrc: Don’t provide a clock based on WASAPI’s clock
- wasapi: Only use audioclient3 when low-latency, as it might
otherwise glitch with slow CPUs or VMs
-- wasapi: Don't derive device period from latency time, should make it
+- wasapi: Don’t derive device period from latency time, should make it
more robust against glitches
- audiolatency: Fix wave detection in buffers and avoid bogus pts
values while starting
- msdk: fix plugin load on implementations with only HW support
- msdk: dec: set framerate to the driver only if provided, not in 0/1
case
-- msdk: Don't set extended coding options for JPEG encode
+- msdk: Don’t set extended coding options for JPEG encode
- rtponviftimestamp: fix state change function init/reset causing
races/crashes on shutdown
- decklink: fix initialization failure in windows binary
@@ -1230,7 +1231,7 @@
dependencies in meson build
- gl: fix cross-compilation error with viv-fb
- qmlglsink: make work with eglfs_kms
-- rtspclientsink: Don't deadlock in preroll on early close
+- rtspclientsink: Don’t deadlock in preroll on early close
- rtspclientsink: Fix client ports for the RTCP backchannel
- rtsp-server: Fix session timeout when streaming data to client over
TCP
@@ -1246,7 +1247,7 @@
build
- g-i: update constant values for bindings
- avoid duplicate symbols in plugins across modules in static builds
-- ... and many, many more!
+- … and many, many more!
Cerbero build tool and packaging changes in 1.14.1
@@ -1260,7 +1261,7 @@
errors
- gnutls: fix assembly symbol names for windows x86
- openssl: fix linking on android/armv7
-- openssl: fix linker issue with Android NDK's r16 binutils
+- openssl: fix linker issue with Android NDK’s r16 binutils
- ffmpeg: disable asm for android x86 to fix issues when linking with
apps
- x264: disable asm for android x86 to fix issues when linking with
@@ -1271,7 +1272,7 @@
relocations
- Check built version while loading recipe and rebuild if needed
- Fix packaging of libgcc_s_sjlj which was missing in Windows packages
-- Make not-found in library search fatal so we don't accidentally ship
+- Make not-found in library search fatal so we don’t accidentally ship
broken packages
- ship the proxy plugin which was new in 1.14
- Fix git commands accidentally pulling in locally built libraries and
@@ -1300,12 +1301,95 @@
1.14.2
-The second 1.14 bug-fix release (1.14.2) is scheduled to be released
-around mid-June 2018.
+The second 1.14 bug-fix release (1.14.2) was released on 20 July 2018.
This release only contains bugfixes and it should be safe to update from
1.14.x.
+Noteworthy bugfixes in 1.14.2
+
+- asfdemux: Only send flush-stop event for flushing seeks
+- glcolorbalance: Support OES textures for input/passthrough, avoids
+ possibly-unnecessary extra texture copy on Android in the default GL
+ path inside glimagesink.
+- parsebin: Don’t try to continue autoplugging a parser if we got raw
+ caps
+- audiobasesrc: Round down segsize to an integer number of samples
+- scaletempo: Mark as Audio in classification
+- souphttpsrc: thread-safety fixes
+- v4l2bufferpool: Validate that capture buffers were queued, to detect
+ when buffer importation was refused by the driver.
+- v4l2bufferpool: Only return eos for M2M devices not v4l2src when
+ buggy driver sends empty buffer
+- v4l2allocator: Fix userptr importation
+- v4l2src: Try to avoid TRY_FMT when camera is streaming, some drivers
+ don’t like it
+- v4l2videoenc: Only renegotiate with upstream, fixes use in
+ GstRtspServer pipeline
+- v4l2: many other fixes
+- pitch: fix latency reporting, and various other things
+- dvb: fix wrong (GPL) license headers in camconditionalaccess code
+- webrtc: Fix transportsendbin to fix spurious shut-down failures in
+ webrtcbin if DTLS negotiation hasn’t completed yet.
+- webrtc: Don’t deadlock on blocked pads on shutdown
+- webrtcbin: copy sticky events on our ghostpads so users can use
+ gst_pad_get_current_caps() to determine what to do with newly-added
+ pads.
+- webrtcbin: fix rtpstorage configuration on 32-bit systems
+- webrtcbin: implement support for FEC and RTX
+- gstplayer: Fix duration-changed CRITICAL warning if duration did not
+ actually change
+- gstplayer: Avoid trying to join the player thread from itself
+- codecparsers: mpeg2 parsing fixes for zero-sized packets
+- wasapisink: fix a rounding error when calculating the buffer frame
+ count
+- wasapisink: fix missing unlock in case IAudioClient_Start fails
+- wasapi: fix potential crash with MinGW
+- rtsp-server: fix race during udpsrc setup, avoiding pushing data on
+ unlinked udpsrc pad
+- rtsp-server: fix waiting for multiple streams in rtspclientsink
+- gst-editing-services: group: Fix handling clips that are added to a
+ layer
+- gst-editing-services: python binding fixes
+- gst-validate launcher: Allow retrieving coredumps from within
+ flatpak
+- gst-validate launcher: Fix the –forever switch which was not
+ stopping on error
+- vaapi: h264 encoder negotiation fixes
+- vaapi: fix issues with native EGL display
+- more GIR annotations fixes, especially for arrays
+- gstreamer-sharp bindings were updated for g-i annotation fixes in
+ other modules
+- fuzzing fixes
+- memory leak fixes
+- build fixes:
+ - build fixes for MSVC compiler
+ - meson: Fix detection of glib-mkenums under MSYS2 plus other
+ meson buil fixes
+ - Fix static build symbol redefinition errors (xvimage, gst-libav)
+ - qmlgl: build fixes for conflicting declaration of type GLsync
+ for non-android
+ - gl: build fixes for missing EGLuint64KHR typedef
+- … and many more!
+
+Contributors to 1.14.2
+
+Alessandro Decina, Antoine Jacoutot, Brendan Shanks, Carlos Rafael
+Giani, Christoph Reiter, Edward Hervey, Göran Jönsson, Guillaume
+Desmottes, Hyunjun Ko, Iñigo Huguet, Jan Schmidt, Johan Bjäreholt,
+Louis-Francis Ratté-Boulianne, Lyon Wang, Marian Mihailescu, Mark
+Nauwelaerts, Mathieu Duponchelle, Matthew Waters, Michael Tretter,
+Nicolas Dufresne, Nirbheek Chauhan, Philipp Zabel, Roland Jon, Sebastian
+Dröge, Seungha Yang, Sreerenj Balachandran, Suhas Nayak, Thibault
+Saunier, Tim-Philipp Müller, Víctor Manuel Jáquez Leal, Vivia
+Nikolaidou, wangzq, and many others. Thank you all.
+
+List of bugs fixed in 1.14.2
+
+For a full list of bugfixes see Bugzilla. Note that this is not the full
+list of changes. For the full list of changes please refer to the GIT
+logs or ChangeLogs of the particular modules.
+
Known Issues
@@ -1313,9 +1397,13 @@
GStreamer webrtc support) is currently not shipped as part of the
Windows binary packages due to a build system issue.
-- The gst-libav module currently won't build against the
- newly-released ffmpeg 4.0 (as in F28). Use the internal ffmpeg copy
- instead, if you build using autotools.
+- The gst-libav module in 1.14 will only build against older ffmpeg
+ 3.x versions and won’t build against the newly-released ffmpeg 4.0
+ (as in RPM Fusion for Fedora 28) due to API changes. Use the
+ internal ffmpeg copy instead if you build using autotools. This is
+ fixed in git master / upcoming 1.16, but won’t be backported to the
+ 1.14 branch as it is rather intrusive and difficult to support both
+ old and new APIs at the same time.
Schedule for 1.16
diff -Nru gstreamer-editing-services1.0-1.14.1/RELEASE gstreamer-editing-services1.0-1.14.2/RELEASE
--- gstreamer-editing-services1.0-1.14.1/RELEASE 2018-05-17 12:34:35.000000000 +0000
+++ gstreamer-editing-services1.0-1.14.2/RELEASE 2018-07-20 00:06:53.000000000 +0000
@@ -1,6 +1,6 @@
-This is GStreamer gst-editing-services 1.14.1.
+This is GStreamer gst-editing-services 1.14.2.
-The GStreamer team is pleased to announce a new bug-fix release in the
+The GStreamer team is pleased to announce another bug-fix release in the
stable 1.x API series of your favourite cross-platform multimedia framework!
The 1.14 release series adds new features on top of the 1.12 series and is