...
 
Commits (101)
This diff is collapsed.
This diff is collapsed.
This is GStreamer gst-plugins-good 1.14.0.
This is GStreamer gst-plugins-good 1.14.4.
The GStreamer team is thrilled to announce a new major feature 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!
As always, this release is again packed with new features, bug fixes and
other improvements.
The 1.14 release series adds new features on top of the 1.12 series and is
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
framework.
......@@ -60,7 +57,7 @@ You can find source releases of gstreamer in the download
directory: https://gstreamer.freedesktop.org/src/gstreamer/
The git repository and details how to clone it can be found at
http://cgit.freedesktop.org/gstreamer/gstreamer/
https://cgit.freedesktop.org/gstreamer/gstreamer/
==== Homepage ====
......@@ -69,7 +66,7 @@ The project's website is https://gstreamer.freedesktop.org/
==== Support and Bugs ====
We use GNOME's bugzilla for bug reports and feature requests:
http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer
https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer
Please submit patches via bugzilla as well.
......
......@@ -5,7 +5,7 @@ dnl please read gstreamer/docs/random/autotools before changing this file
dnl initialize autoconf
dnl releases only do -Wall, git and prerelease does -Werror too
dnl use a three digit version number for releases, and four for git/pre
AC_INIT([GStreamer Good Plug-ins],[1.14.0],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-good])
AC_INIT([GStreamer Good Plug-ins],[1.14.4],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-good])
AG_GST_INIT
......@@ -46,11 +46,11 @@ AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
[GStreamer API Version])
AG_GST_LIBTOOL_PREPARE
AS_LIBTOOL(GST, 1400, 0, 1400)
AS_LIBTOOL(GST, 1404, 0, 1404)
dnl *** required versions of GStreamer stuff ***
GST_REQ=1.14.0
GSTPB_REQ=1.14.0
GST_REQ=1.14.4
GSTPB_REQ=1.14.4
dnl *** autotools stuff ****
......@@ -598,18 +598,20 @@ if test x$HAVE_GST_V4L2 = xyes; then
fi
dnl Allow enabling v4l2 device probing
default_v4l2_probe=no
AS_CASE([$host],
[*-*linux*],
[AS_CASE([$host_cpu],
[arm*], [
enable_v4l2_probe="yes"],
default_v4l2_probe=yes],
[aarch64*], [
enable_v4l2_probe="yes"])])
default_v4l2_probe=yes])])
AC_ARG_ENABLE(
v4l2-probe,
AC_HELP_STRING(
[--enable-v4l2-probe],
[enable V4L2 plugin to probe devices @<:@default=no@:>@]))
[enable V4L2 plugin to probe devices]),
[], [enable_v4l2_probe=$default_v4l2_probe])
if test "x$enable_v4l2_probe" = "xyes"; then
AC_DEFINE(GST_V4L2_ENABLE_PROBE, 1,
[Define if Video4Linux probe shall be run at plugin load])
......@@ -892,6 +894,7 @@ AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
AS_IF([test -f "$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH/qpa/qplatformnativeinterface.h"], [
QT_CFLAGS="$QT_CFLAGS -I$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH"
HAVE_QT_QPA_HEADER="yes"
AC_DEFINE([HAVE_QT_QPA_HEADER], [], [Define if the Qt QPA header is installed])
], [AC_MSG_NOTICE([Cannot find QPA])])
if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1" || test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
......
......@@ -1015,7 +1015,7 @@
<FLAGS>rw</FLAGS>
<NICK>User Agent</NICK>
<BLURB>The User-Agent string to send to the server.</BLURB>
<DEFAULT>"GStreamer/1.14.0"</DEFAULT>
<DEFAULT>"GStreamer/1.14.4"</DEFAULT>
</ARG>
<ARG>
......@@ -3535,7 +3535,7 @@
<FLAGS>rw</FLAGS>
<NICK>User-Agent</NICK>
<BLURB>Value of the User-Agent HTTP request header field.</BLURB>
<DEFAULT>"GStreamer souphttpsrc 1.14.0 "</DEFAULT>
<DEFAULT>"GStreamer souphttpsrc 1.14.4 "</DEFAULT>
</ARG>
<ARG>
......
......@@ -3,7 +3,7 @@
<description>Source for video data via IEEE1394 interface</description>
<filename>../../ext/raw1394/.libs/libgst1394.so</filename>
<basename>libgst1394.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>ASCII Art video sink</description>
<filename>../../ext/aalib/.libs/libgstaasink.so</filename>
<basename>libgstaasink.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>ALaw audio conversion routines</description>
<filename>../../gst/law/.libs/libgstalaw.so</filename>
<basename>libgstalaw.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>adds an alpha channel to video - constant or via chroma-keying</description>
<filename>../../gst/alpha/.libs/libgstalpha.so</filename>
<basename>libgstalpha.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>RGBA from/to AYUV colorspace conversion preserving the alpha channel</description>
<filename>../../gst/alpha/.libs/libgstalphacolor.so</filename>
<basename>libgstalphacolor.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>APEv1/2 tag reader</description>
<filename>../../gst/apetag/.libs/libgstapetag.so</filename>
<basename>libgstapetag.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Audio effects plugin</description>
<filename>../../gst/audiofx/.libs/libgstaudiofx.so</filename>
<basename>libgstaudiofx.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......@@ -264,7 +264,7 @@
<element>
<name>scaletempo</name>
<longname>Scaletempo</longname>
<class>Filter/Effect/Rate</class>
<class>Filter/Effect/Rate/Audio</class>
<description>Sync audio tempo with playback rate</description>
<author>Rov Juvano &lt;rovjuvano@users.sourceforge.net&gt;</author>
<pads>
......
......@@ -3,7 +3,7 @@
<description>Parsers for various audio formats</description>
<filename>../../gst/audioparsers/.libs/libgstaudioparsers.so</filename>
<basename>libgstaudioparsers.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>parses au streams</description>
<filename>../../gst/auparse/.libs/libgstauparse.so</filename>
<basename>libgstauparse.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Plugin contains auto-detection plugins for video/audio in- and outputs</description>
<filename>../../gst/autodetect/.libs/libgstautodetect.so</filename>
<basename>libgstautodetect.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>AVI stream handling</description>
<filename>../../gst/avi/.libs/libgstavi.so</filename>
<basename>libgstavi.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Colored ASCII Art video sink</description>
<filename>../../ext/libcaca/.libs/libgstcacasink.so</filename>
<basename>libgstcacasink.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Cairo-based elements</description>
<filename>../../ext/cairo/.libs/libgstcairo.so</filename>
<basename>libgstcairo.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Audio Cutter to split audio into non-silent bits</description>
<filename>../../gst/cutter/.libs/libgstcutter.so</filename>
<basename>libgstcutter.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>elements for testing and debugging</description>
<filename>../../gst/debugutils/.libs/libgstdebug.so</filename>
<basename>libgstdebug.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Deinterlacer</description>
<filename>../../gst/deinterlace/.libs/libgstdeinterlace.so</filename>
<basename>libgstdeinterlace.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>DTMF plugins</description>
<filename>../../gst/dtmf/.libs/libgstdtmf.so</filename>
<basename>libgstdtmf.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>DV demuxer and decoder based on libdv (libdv.sf.net)</description>
<filename>../../ext/dv/.libs/libgstdv.so</filename>
<basename>libgstdv.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>effect plugins from the effectv project</description>
<filename>../../gst/effectv/.libs/libgsteffectv.so</filename>
<basename>libgsteffectv.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>GStreamer audio equalizers</description>
<filename>../../gst/equalizer/.libs/libgstequalizer.so</filename>
<basename>libgstequalizer.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>The FLAC Lossless compressor Codec</description>
<filename>../../ext/flac/.libs/libgstflac.so</filename>
<basename>libgstflac.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>FLV muxing and demuxing plugin</description>
<filename>../../gst/flv/.libs/libgstflv.so</filename>
<basename>libgstflv.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>FLC/FLI/FLX video decoder</description>
<filename>../../gst/flx/.libs/libgstflxdec.so</filename>
<basename>libgstflxdec.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>GdkPixbuf-based image decoder, overlay and sink</description>
<filename>../../ext/gdk_pixbuf/.libs/libgstgdkpixbuf.so</filename>
<basename>libgstgdkpixbuf.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>GOOM visualization filter</description>
<filename>../../gst/goom/.libs/libgstgoom.so</filename>
<basename>libgstgoom.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>GOOM 2k1 visualization filter</description>
<filename>../../gst/goom2k1/.libs/libgstgoom2k1.so</filename>
<basename>libgstgoom2k1.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Gtk+ sink</description>
<filename>../../ext/gtk/.libs/libgstgtk.so</filename>
<basename>libgstgtk.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Demux ICY tags from a stream</description>
<filename>../../gst/icydemux/.libs/libgsticydemux.so</filename>
<basename>libgsticydemux.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Demux ID3v1 and ID3v2 tags from a file</description>
<filename>../../gst/id3demux/.libs/libgstid3demux.so</filename>
<basename>libgstid3demux.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Still frame stream generator</description>
<filename>../../gst/imagefreeze/.libs/libgstimagefreeze.so</filename>
<basename>libgstimagefreeze.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Audio interleaver/deinterleaver</description>
<filename>../../gst/interleave/.libs/libgstinterleave.so</filename>
<basename>libgstinterleave.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>ISO base media file format support (mp4, 3gpp, qt, mj2)</description>
<filename>../../gst/isomp4/.libs/libgstisomp4.so</filename>
<basename>libgstisomp4.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>JACK audio elements</description>
<filename>../../ext/jack/.libs/libgstjack.so</filename>
<basename>libgstjack.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>JPeg plugin library</description>
<filename>../../ext/jpeg/.libs/libgstjpeg.so</filename>
<basename>libgstjpeg.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......@@ -47,7 +47,7 @@
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>image/jpeg, width=(int)[ 16, 65535 ], height=(int)[ 16, 65535 ], framerate=(fraction)[ 0/1, 2147483647/1 ], sof-marker=(int){ 0, 1, 2, 9 }</details>
<details>image/jpeg, width=(int)[ 16, 65535 ], height=(int)[ 16, 65535 ], framerate=(fraction)[ 0/1, 2147483647/1 ], sof-marker=(int){ 0, 1, 2, 4, 9 }</details>
</caps>
</pads>
</element>
......
......@@ -3,7 +3,7 @@
<description>Encode MP3s with LAME</description>
<filename>../../ext/lame/.libs/libgstlame.so</filename>
<basename>libgstlame.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Audio level plugin</description>
<filename>../../gst/level/.libs/libgstlevel.so</filename>
<basename>libgstlevel.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Matroska and WebM stream handling</description>
<filename>../../gst/matroska/.libs/libgstmatroska.so</filename>
<basename>libgstmatroska.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>mp3 decoding based on the mpg123 library</description>
<filename>../../ext/mpg123/.libs/libgstmpg123.so</filename>
<basename>libgstmpg123.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>MuLaw audio conversion routines</description>
<filename>../../gst/law/.libs/libgstmulaw.so</filename>
<basename>libgstmulaw.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Reads/Writes buffers from/to sequentially named files</description>
<filename>../../gst/multifile/.libs/libgstmultifile.so</filename>
<basename>libgstmultifile.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>multipart stream manipulation</description>
<filename>../../gst/multipart/.libs/libgstmultipart.so</filename>
<basename>libgstmultipart.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Template for a video filter</description>
<filename>../../gst/debugutils/.libs/libgstnavigationtest.so</filename>
<basename>libgstnavigationtest.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Open Sound System (OSS) version 4 support for GStreamer</description>
<filename>../../sys/oss4/.libs/libgstoss4.so</filename>
<basename>libgstoss4.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>OSS (Open Sound System) support for GStreamer</description>
<filename>../../sys/oss/.libs/libgstossaudio.so</filename>
<basename>libgstossaudio.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>PNG plugin library</description>
<filename>../../ext/libpng/.libs/libgstpng.so</filename>
<basename>libgstpng.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>PulseAudio plugin library</description>
<filename>../../ext/pulse/.libs/libgstpulseaudio.so</filename>
<basename>libgstpulseaudio.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Qt gl plugin</description>
<filename>../../ext/qt/.libs/libgstqmlgl.so</filename>
<basename>libgstqmlgl.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>ReplayGain volume normalization</description>
<filename>../../gst/replaygain/.libs/libgstreplaygain.so</filename>
<basename>libgstreplaygain.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Real-time protocol plugins</description>
<filename>../../gst/rtp/.libs/libgstrtp.so</filename>
<basename>libgstrtp.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>RTP session management plugin library</description>
<filename>../../gst/rtpmanager/.libs/libgstrtpmanager.so</filename>
<basename>libgstrtpmanager.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>transfer data via RTSP</description>
<filename>../../gst/rtsp/.libs/libgstrtsp.so</filename>
<basename>libgstrtsp.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Shape Wipe transition filter</description>
<filename>../../gst/shapewipe/.libs/libgstshapewipe.so</filename>
<basename>libgstshapewipe.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Sends data to an icecast server using libshout2</description>
<filename>../../ext/shout2/.libs/libgstshout2.so</filename>
<basename>libgstshout2.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Apply the standard SMPTE transitions on video images</description>
<filename>../../gst/smpte/.libs/libgstsmpte.so</filename>
<basename>libgstsmpte.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>libsoup HTTP client src/sink</description>
<filename>../../ext/soup/.libs/libgstsoup.so</filename>
<basename>libgstsoup.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Run an FFT on the audio signal, output spectrum data</description>
<filename>../../gst/spectrum/.libs/libgstspectrum.so</filename>
<basename>libgstspectrum.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Speex plugin library</description>
<filename>../../ext/speex/.libs/libgstspeex.so</filename>
<basename>libgstspeex.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Tag writing plug-in based on taglib</description>
<filename>../../ext/taglib/.libs/libgsttaglib.so</filename>
<basename>libgsttaglib.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Encode MP2s with TwoLAME</description>
<filename>../../ext/twolame/.libs/libgsttwolame.so</filename>
<basename>libgsttwolame.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>transfer data via UDP</description>
<filename>../../gst/udp/.libs/libgstudp.so</filename>
<basename>libgstudp.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>elements for Video 4 Linux</description>
<filename>../../sys/v4l2/.libs/libgstvideo4linux2.so</filename>
<basename>libgstvideo4linux2.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>resizes a video by adding borders or cropping</description>
<filename>../../gst/videobox/.libs/libgstvideobox.so</filename>
<basename>libgstvideobox.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Crops video into a user-defined region</description>
<filename>../../gst/videocrop/.libs/libgstvideocrop.so</filename>
<basename>libgstvideocrop.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Video filters plugin</description>
<filename>../../gst/videofilter/.libs/libgstvideofilter.so</filename>
<basename>libgstvideofilter.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Video mixer</description>
<filename>../../gst/videomixer/.libs/libgstvideomixer.so</filename>
<basename>libgstvideomixer.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>VP8 plugin</description>
<filename>../../ext/vpx/.libs/libgstvpx.so</filename>
<basename>libgstvpx.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Encode raw audio into WAV</description>
<filename>../../gst/wavenc/.libs/libgstwavenc.so</filename>
<basename>libgstwavenc.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Wavpack lossless/lossy audio format handling</description>
<filename>../../ext/wavpack/.libs/libgstwavpack.so</filename>
<basename>libgstwavpack.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Parse a .wav file into raw audio</description>
<filename>../../gst/wavparse/.libs/libgstwavparse.so</filename>
<basename>libgstwavparse.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>X11 video input plugin using standard Xlib calls</description>
<filename>../../sys/ximage/.libs/libgstximagesrc.so</filename>
<basename>libgstximagesrc.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Encodes a YUV frame into the yuv4mpeg format (mjpegtools)</description>
<filename>../../gst/y4m/.libs/libgsty4menc.so</filename>
<basename>libgsty4menc.so</basename>
<version>1.14.0</version>
<version>1.14.4</version>
<license>LGPL</license>
<source>gst-plugins-good</source>
<package>GStreamer Good Plug-ins source release</package>
......
......@@ -113,7 +113,7 @@ GST_STATIC_PAD_TEMPLATE ("src",
"width = (int) [ 16, 65535 ], "
"height = (int) [ 16, 65535 ], "
"framerate = (fraction) [ 0/1, MAX ], "
"sof-marker = (int) { 0, 1, 2, 9 }")
"sof-marker = (int) { 0, 1, 2, 4, 9 }")
);
static void
......
......@@ -19,18 +19,6 @@
#ifndef __GST_MPG123_AUDIO_DEC_H__
#define __GST_MPG123_AUDIO_DEC_H__
/* This is what the visual studio build in mpg123 does before including the
* original header file. Without this we get syntax errors in the
* replace_reader function declarations because it doesn't know ssize_t etc.
* It doesn't realy matter for us if the ssize_t typedef here is correct. */
#ifdef _MSC_VER
#include <tchar.h>
#include <stdlib.h>
#include <sys/types.h>
typedef long ssize_t;
#include <stdint.h>
#endif
#include <gst/gst.h>
#include <gst/audio/gstaudiodecoder.h>
#include <mpg123.h>
......
......@@ -24,12 +24,13 @@
* warnings/errors */
#include <gst/gl/gstglconfig.h>
#include <gst/gl/gstglfuncs.h>
#include <QtCore/qglobal.h>
#if (QT_VERSION >= QT_VERSION_CHECK(5, 9, 0))
#include <QtGui/qtgui-config.h>
#endif
#if defined(QT_OPENGL_ES_2) && GST_GL_HAVE_WINDOW_ANDROID
#if defined(QT_OPENGL_ES_2)
#define GLsync gst_qt_GLsync
#include <QOpenGLContext>
#include <QOpenGLFunctions>
......
......@@ -42,6 +42,9 @@
#else
#include <gst/gl/egl/gstegl.h>
#include <gst/gl/egl/gstgldisplay_egl.h>
#ifdef HAVE_QT_QPA_HEADER
#include <qpa/qplatformnativeinterface.h>
#endif
#endif
#endif
......@@ -110,6 +113,13 @@ gst_qt_get_gl_display ()
}
display = (GstGLDisplay *) gst_gl_display_viv_fb_new (disp_idx);
#elif defined(HAVE_QT_QPA_HEADER)
QPlatformNativeInterface *native =
QGuiApplication::platformNativeInterface();
EGLDisplay egl_display = (EGLDisplay)
native->nativeResourceForWindow("egldisplay", NULL);
if (egl_display != EGL_NO_DISPLAY)
display = (GstGLDisplay *) gst_gl_display_egl_new_with_egl_display (egl_display);
#else
EGLDisplay egl_display = (EGLDisplay) gst_gl_display_egl_get_from_native (GST_GL_DISPLAY_TYPE_ANY, 0);
display = (GstGLDisplay *) gst_gl_display_egl_new_with_egl_display (egl_display);
......
......@@ -454,10 +454,12 @@ gst_soup_http_src_reset (GstSoupHTTPSrc * src)
src->increase_blocksize_count = 0;
g_cancellable_reset (src->cancellable);
g_mutex_lock (&src->mutex);
if (src->input_stream) {
g_object_unref (src->input_stream);
src->input_stream = NULL;
}
g_mutex_unlock (&src->mutex);
gst_caps_replace (&src->src_caps, NULL);
g_free (src->iradio_name);
......@@ -1519,6 +1521,7 @@ gst_soup_http_src_build_message (GstSoupHTTPSrc * src, const gchar * method)
return TRUE;
}
/* Lock taken */
static GstFlowReturn
gst_soup_http_src_send_message (GstSoupHTTPSrc * src)
{
......@@ -1526,6 +1529,7 @@ gst_soup_http_src_send_message (GstSoupHTTPSrc * src)
GError *error = NULL;
g_return_val_if_fail (src->msg != NULL, GST_FLOW_ERROR);
g_assert (src->input_stream == NULL);
src->input_stream =
soup_session_send (src->session, src->msg, src->cancellable, &error);
......
......@@ -5,11 +5,15 @@ speex_sources = [
]
speex_dep = dependency('speex', version : '>=1.1.6', required : false)
windows_args = []
if host_machine.system() == 'windows'
windows_args = ['-DWIN32']
endif
if speex_dep.found()
gstspeex = library('gstspeex',
speex_sources,
c_args : gst_plugins_good_args + ['-DGST_USE_UNSTABLE_API'],
c_args : gst_plugins_good_args + ['-DGST_USE_UNSTABLE_API'] + windows_args,
link_args : noseh_link_args,
include_directories : [configinc],
dependencies : [gstbase_dep, gsttag_dep, gstaudio_dep, speex_dep, libm],
......
......@@ -32,6 +32,46 @@ the plug-in code, LGPL or LGPL-compatible for the supporting library).
</GitRepository>
</repository>
<release>
<Version>
<revision>1.14.4</revision>
<branch>1.14</branch>
<name></name>
<created>2018-10-02</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.14.4.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.14.3</revision>
<branch>1.14</branch>
<name></name>
<created>2018-09-16</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.14.3.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.14.2</revision>
<branch>1.14</branch>
<name></name>
<created>2018-07-20</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.14.2.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.14.1</revision>
<branch>1.14</branch>
<name></name>
<created>2018-05-17</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.14.1.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.14.0</revision>
......
......@@ -885,7 +885,7 @@ gst_scaletempo_class_init (GstScaletempoClass * klass)
gst_element_class_add_static_pad_template (gstelement_class, &src_template);
gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
gst_element_class_set_static_metadata (gstelement_class, "Scaletempo",
"Filter/Effect/Rate",
"Filter/Effect/Rate/Audio",
"Sync audio tempo with playback rate",
"Rov Juvano <rovjuvano@users.sourceforge.net>");
......
......@@ -248,6 +248,7 @@ gst_aac_parse_set_src_caps (GstAacParse * aacparse, GstCaps * sink_caps)
gst_buffer_fill (codec_data_buffer, 0, codec_data, 2);
gst_caps_set_simple (src_caps, "codec_data", GST_TYPE_BUFFER,
codec_data_buffer, NULL);
gst_buffer_unref (codec_data_buffer);
}
} else if (aacparse->header_type == DSPAAC_HEADER_NONE) {
GST_DEBUG_OBJECT (GST_BASE_PARSE (aacparse)->srcpad,
......
......@@ -245,7 +245,7 @@ gst_dca_parse_parse_header (GstDcaParse * dcaparse,
if (chans < G_N_ELEMENTS (channels_table))
*channels = channels_table[chans] + ((lfe) ? 1 : 0);
else
*channels = 0;
return FALSE;
if (depth)
*depth = (marker == 0x1FFFE800 || marker == 0xFF1F00E8) ? 14 : 16;
......
......@@ -212,6 +212,8 @@ static gboolean gst_flac_parse_src_event (GstBaseParse * parse,
GstEvent * event);
static GstCaps *gst_flac_parse_get_sink_caps (GstBaseParse * parse,
GstCaps * filter);
static gboolean gst_flac_parse_set_sink_caps (GstBaseParse * parse,
GstCaps * caps);
#define gst_flac_parse_parent_class parent_class
G_DEFINE_TYPE (GstFlacParse, gst_flac_parse, GST_TYPE_BASE_PARSE);
......@@ -246,6 +248,8 @@ gst_flac_parse_class_init (GstFlacParseClass * klass)
baseparse_class->src_event = GST_DEBUG_FUNCPTR (gst_flac_parse_src_event);
baseparse_class->get_sink_caps =
GST_DEBUG_FUNCPTR (gst_flac_parse_get_sink_caps);
baseparse_class->set_sink_caps =
GST_DEBUG_FUNCPTR (gst_flac_parse_set_sink_caps);
gst_element_class_add_static_pad_template (element_class, &src_factory);
gst_element_class_add_static_pad_template (element_class, &sink_factory);
......@@ -1875,3 +1879,15 @@ gst_flac_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter)
return res;
}
static gboolean
gst_flac_parse_set_sink_caps (GstBaseParse * parse, GstCaps * caps)
{
/* If caps are changing, drain any pending frames we have so that afterwards
* we can potentially accept a new stream that is starting with the FLAC
* headers again. If headers appear in the middle of the stream we can't
* detect them
*/
gst_base_parse_drain (parse);
return TRUE;
}
......@@ -656,6 +656,12 @@ gst_flv_mux_release_pad (GstElement * element, GstPad * pad)
static GstFlowReturn
gst_flv_mux_push (GstFlvMux * mux, GstBuffer * buffer)
{
GstAggregator *agg = GST_AGGREGATOR (mux);
GstAggregatorPad *srcpad = GST_AGGREGATOR_PAD (agg->srcpad);
if (GST_BUFFER_PTS_IS_VALID (buffer))
srcpad->segment.position = GST_BUFFER_PTS (buffer);
/* pushing the buffer that rewrites the header will make it no longer be the
* total output size in bytes, but it doesn't matter at that point */
mux->byte_count += gst_buffer_get_size (buffer);
......@@ -1639,6 +1645,7 @@ gst_flv_mux_find_best_pad (GstAggregator * aggregator, GstClockTime * ts)
best_ts = t;
}
}
gst_buffer_unref (buffer);
}
GST_DEBUG_OBJECT (aggregator,
"Best pad found with %" GST_TIME_FORMAT ": %" GST_PTR_FORMAT,
......@@ -1729,7 +1736,7 @@ gst_flv_mux_aggregate (GstAggregator * aggregator, gboolean timeout)
if (gst_flv_mux_are_all_pads_eos (mux)) {
gst_flv_mux_write_eos (mux);
gst_flv_mux_rewrite_header (mux);
gst_pad_push_event (mux->srcpad, gst_event_new_eos ());
return GST_FLOW_EOS;
}
return GST_FLOW_OK;
}
......@@ -1811,6 +1818,25 @@ gst_flv_mux_get_next_time_for_segment (GstAggregator * aggregator,
static GstClockTime
gst_flv_mux_get_next_time (GstAggregator * aggregator)
{
GstFlvMux *mux = GST_FLV_MUX (aggregator);
GstAggregatorPad *agg_audio_pad = GST_AGGREGATOR_PAD_CAST (mux->audio_pad);
GstAggregatorPad *agg_video_pad = GST_AGGREGATOR_PAD_CAST (mux->video_pad);
GST_OBJECT_LOCK (aggregator);
if (mux->state == GST_FLV_MUX_STATE_HEADER &&
((mux->audio_pad && mux->audio_pad->codec == G_MAXUINT) ||
(mux->video_pad && mux->video_pad->codec == G_MAXUINT)))
goto wait_for_data;
if (!((agg_audio_pad && gst_aggregator_pad_has_buffer (agg_audio_pad)) ||
(agg_video_pad && gst_aggregator_pad_has_buffer (agg_video_pad))))
goto wait_for_data;
GST_OBJECT_UNLOCK (aggregator);
return gst_flv_mux_get_next_time_for_segment (aggregator,
&GST_AGGREGATOR_PAD (aggregator->srcpad)->segment);
wait_for_data:
GST_OBJECT_UNLOCK (aggregator);
return GST_CLOCK_TIME_NONE;
}
......@@ -4284,11 +4284,8 @@ atom_trak_set_video_type (AtomTRAK * trak, AtomsContext * context,
/* ISO file spec says track header w/h indicates track's visual presentation
* (so this together with pixels w/h implicitly defines PAR) */
if (par_n && (context->flavor != ATOMS_TREE_FLAVOR_MOV)) {
/* Assumes square pixels display */
if (!gst_video_calculate_display_ratio (&dwidth, &dheight, entry->width,
entry->height, par_n, par_d, 1, 1)) {
GST_WARNING ("Could not calculate display ratio");
}
dwidth = entry->width * par_n / par_d;
dheight = entry->height;
}
atom_trak_set_video_commons (trak, context, scale, dwidth, dheight);
......
......@@ -97,6 +97,17 @@
* #GstQTMux::reserved-duration-remaining property to see how close to full
* the reserved space is becoming.
*
* Applications that wish to be able to use/edit a file while it is being
* written to by live content, can use the "Robust Prefill Muxing" mode. That
* mode is a variant of the "Robust Muxing" mode in that it will pre-allocate a
* completely valid header from the start for all tracks (i.e. it appears as
* though the file is "reserved-max-duration" long with all samples
* present). This mode can be enabled by setting the
* #GstQTMux::reserved-moov-update-period and #GstQTMux::reserved-prefill
* properties. Note that this mode is only possible with input streams that have
* a fixed sample size (such as raw audio and Prores Video) and that don't
* have reordered samples.
*
* <refsect2>
* <title>Example pipelines</title>
* |[
......@@ -2505,12 +2516,17 @@ prefill_update_sample_size (GstQTMux * qtmux, GstQTPad * qpad)
}
}
/* Only called at startup when doing the "fake" iteration of all tracks in order
* to prefill the sample tables in the header. */
static GstQTPad *
find_best_pad_prefill (GstQTMux * qtmux)
find_best_pad_prefill_start (GstQTMux * qtmux)
{
GSList *walk;
GstQTPad *best_pad = NULL;
/* If interleave limits have been specified and the current pad is within
* those interleave limits, pick that one, otherwise let's try to figure out
* the next best one. */
if (qtmux->current_pad &&
(qtmux->interleave_bytes != 0 || qtmux->interleave_time != 0) &&
(qtmux->interleave_bytes == 0
......@@ -2524,9 +2540,13 @@ find_best_pad_prefill (GstQTMux * qtmux)
best_pad = qtmux->current_pad;
}
} else if (qtmux->collect->data->next) {
/* Attempt to try another pad if we have one. Otherwise use the only pad
* present */
best_pad = qtmux->current_pad = NULL;
}
/* The next best pad is the one which has the lowest timestamp and hasn't
* exceeded the reserved max duration */
if (!best_pad) {
GstClockTime best_time = GST_CLOCK_TIME_NONE;
......@@ -2551,6 +2571,11 @@ find_best_pad_prefill (GstQTMux * qtmux)
return best_pad;
}
/* Called when starting the file in prefill_mode to figure out all the entries
* of the header based on the input stream and reserved maximum duration.
*
* The _actual_ header (i.e. with the proper duration and trimmed sample tables)
* will be updated and written on EOS. */
static gboolean
gst_qt_mux_prefill_samples (GstQTMux * qtmux)
{
......@@ -2608,7 +2633,7 @@ gst_qt_mux_prefill_samples (GstQTMux * qtmux)
}
}
while ((qpad = find_best_pad_prefill (qtmux))) {
while ((qpad = find_best_pad_prefill_start (qtmux))) {
GstClockTime timestamp, next_timestamp, duration;
guint nsamples, sample_size;
guint64 chunk_offset;
......@@ -3403,21 +3428,15 @@ gst_qt_mux_stop_file (GstQTMux * qtmux)
for (walk = qtmux->collect->data; walk; walk = g_slist_next (walk)) {
GstCollectData *cdata = (GstCollectData *) walk->data;
GstQTPad *qpad = (GstQTPad *) cdata;
const TrakBufferEntryInfo *sample_entry;
guint64 block_idx;
AtomSTBL *stbl = &qpad->trak->mdia.minf.stbl;
/* Get the block index of the last sample we wrote, not of the next
* sample we would write */
block_idx = prefill_get_block_index (qtmux, qpad);
g_assert (block_idx > 0);
block_idx--;
sample_entry =
&g_array_index (qpad->samples, TrakBufferEntryInfo, block_idx);
/* stts */
{
if (block_idx > 0) {
STTSEntry *entry;
guint64 nsamples = 0;
gint i, n;
......@@ -3433,6 +3452,8 @@ gst_qt_mux_stop_file (GstQTMux * qtmux)
nsamples += entry->sample_count;
}
g_assert (i < n);
} else {
stbl->stts.entries.len = 0;
}
/* stsz */
......@@ -3446,56 +3467,66 @@ gst_qt_mux_stop_file (GstQTMux * qtmux)
gint i, n;
guint64 nsamples = 0;
gint chunk_index = 0;
n = stbl->stco64.entries.len;
for (i = 0; i < n; i++) {
guint64 *entry = &atom_array_index (&stbl->stco64.entries, i);
if (*entry == sample_entry->chunk_offset) {
stbl->stco64.entries.len = i + 1;
chunk_index = i + 1;
break;
const TrakBufferEntryInfo *sample_entry;
if (block_idx > 0) {
sample_entry =
&g_array_index (qpad->samples, TrakBufferEntryInfo,
block_idx - 1);
n = stbl->stco64.entries.len;
for (i = 0; i < n; i++) {
guint64 *entry = &atom_array_index (&stbl->stco64.entries, i);
if (*entry == sample_entry->chunk_offset) {
stbl->stco64.entries.len = i + 1;
chunk_index = i + 1;
break;
}
}
}
g_assert (i < n);
g_assert (chunk_index > 0);
n = stbl->stsc.entries.len;
for (i = 0; i < n; i++) {
STSCEntry *entry = &atom_array_index (&stbl->stsc.entries, i);