...
 
Commits (27)
[submodule "common"]
path = common
url = https://anongit.freedesktop.org/git/gstreamer/common.git
url = https://gitlab.freedesktop.org/gstreamer/common.git
[submodule "gst-libs/ext/libav"]
path = gst-libs/ext/libav
url = https://git.ffmpeg.org/ffmpeg.git
......
=== release 1.14.5 ===
2019-05-29 18:05:15 +0100 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
* NEWS:
* RELEASE:
* configure.ac:
* gst-libav.doap:
* meson.build:
Release 1.14.5
2019-05-29 18:05:15 +0100 Tim-Philipp Müller <tim@centricular.com>
* docs/plugins/inspect/plugin-libav.xml:
Update docs
2018-11-05 05:40:03 +0000 Matthew Waters <matthew@centricular.com>
* .gitmodules:
Update common submodule location
Remove the git directory
2018-11-05 13:17:08 +0800 Haihao Xiang <haihao.xiang@intel.com>
* .gitmodules:
* gst-libav.doap:
Clone the code from gitlab
This fixes https://gitlab.freedesktop.org/gstreamer/gst-libav/issues/43
2019-04-29 11:52:31 +0900 Yeongjin Jeong <yeongjin.jeong@navercorp.com>
* ext/libav/gstav.c:
gstav: Use libavcodec util function for version check
The version of libavutil is printed in the log instead of libavcodec
because avutil_version() returns LIBAVUTIL_VERSION_INT. This can be confusing,
so we should be replace it with avcodec_version().
2019-02-21 08:48:31 +0100 Guillaume Desmottes <guillaume.desmottes@collabora.com>
* ext/libav/gstavdemux.c:
avdemux: fix negative pts if start_time is bigger than the ts
The start time is supposed to be the ts of the first frame.
FFmpeg uses fractions to represent timestamps and the start time may use a
different base than the frame pts. So we may end up having the start
time bigger than the pts because of rounding when converting to gst ts.
See https://gitlab.freedesktop.org/gstreamer/gst-libav/issues/51
for details.
2019-02-12 17:23:55 +0200 Sebastian Dröge <sebastian@centricular.com>
* configure.ac:
configure: Only disable dxva2 once
2018-11-08 16:33:57 +0100 Edward Hervey <edward@centricular.com>
* ext/libav/gstavcodecmap.c:
codecmap: Add mapping for Voxware metasound
Allows actually decoding such streams :)
2019-05-02 08:35:50 +0100 Tim-Philipp Müller <tim@centricular.com>
* gst-libs/ext/libav:
libav: Update to ffmpeg n3.4.6
2018-11-05 10:22:57 +0200 Sebastian Dröge <sebastian@centricular.com>
* gst-libs/ext/libav:
libav: Update to ffmpeg n3.4.5
2018-10-05 09:36:44 +0300 Sebastian Dröge <sebastian@centricular.com>
* gst-libs/ext/libav:
libav: Update to ffmpeg n3.4.4
=== release 1.14.4 ===
2018-10-02 23:10:02 +0100 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
* NEWS:
* RELEASE:
* configure.ac:
* gst-libav.doap:
* meson.build:
Release 1.14.4
2018-10-02 23:10:02 +0100 Tim-Philipp Müller <tim@centricular.com>
* docs/plugins/inspect/plugin-libav.xml:
Update docs
2018-10-01 16:13:29 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* meson.build:
meson: Don't export symbols from linked static libraries
We don't want to export any symbols from the ffmpeg static libraries
we link to when building inside Cerbero. In the Autotools build, we
pass -export-symbols-regex to libtool which ensures this for us.
=== release 1.14.3 ===
2018-09-16 16:30:18 +0100 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
* NEWS:
* RELEASE:
* configure.ac:
* gst-libav.doap:
* meson.build:
Release 1.14.3
2018-09-16 16:30:18 +0100 Tim-Philipp Müller <tim@centricular.com>
* docs/plugins/inspect/plugin-libav.xml:
Update docs
2018-08-16 16:28:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* meson.build:
meson: Unify required version to 0.40.1
=== release 1.14.2 ===
2018-07-20 01:04:22 +0100 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
* NEWS:
* RELEASE:
* configure.ac:
* gst-libav.doap:
* meson.build:
Release 1.14.2
2018-07-20 01:04:22 +0100 Tim-Philipp Müller <tim@centricular.com>
* docs/plugins/inspect/plugin-libav.xml:
Update docs
2018-07-18 19:41:50 +0900 Seungha Yang <seungha.yang@navercorp.com>
* ext/libav/gstav.c:
* ext/libav/gstav.h:
* ext/libav/gstavauddec.c:
* ext/libav/gstavviddec.c:
libav: Fix symbol redefine build error
https://bugzilla.gnome.org/show_bug.cgi?id=796827
2018-05-31 17:28:44 +0800 Roland Jon <rlandjon@gmail.com>
* ext/libav/gstavdemux.c:
avdemux: fix memory leaks
https://bugzilla.gnome.org/show_bug.cgi?id=796452
=== release 1.14.1 ===
2018-05-17 13:32:10 +0100 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
* NEWS:
* RELEASE:
* configure.ac:
* gst-libav.doap:
* meson.build:
Release 1.14.1
2018-05-17 13:32:10 +0100 Tim-Philipp Müller <tim@centricular.com>
* docs/plugins/inspect/plugin-libav.xml:
Update docs
2014-07-12 15:26:36 +0200 Matej Knopp <matej.knopp@gmail.com>
* ext/libav/gstavdemux.c:
gstavdemux: adjust seeking offset according to start_time
https://bugzilla.gnome.org/show_bug.cgi?id=733094
2018-05-01 14:57:43 +1000 Jan Schmidt <jan@centricular.com>
* gst-libs/ext/gas-preprocessor:
Update gas-preprocessor submodule
2018-05-01 05:19:28 +1000 Jan Schmidt <jan@centricular.com>
* configure.ac:
configure: Always use full path for gas-preprocessor PATH entry
Don't pass a relative path to gas-preprocessor, always use an
absolute path to make sure it's found
2018-04-28 00:14:45 +1000 Jan Schmidt <jan@centricular.com>
* configure.ac:
configure: fix handling of the input AS var passed to ffmpeg
Store the original AS environment variable passed to configure
correctly, and export it so it's actually available to the sub-process
when configuring the embedded ffmpeg
=== release 1.14.0 ===
2018-03-19 20:25:38 +0000 Tim-Philipp Müller <tim@centricular.com>
......
This diff is collapsed.
This is GStreamer gst-libav 1.14.0.
This is GStreamer gst-libav 1.14.5.
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.
The 1.14 release series has now been superseded by the stable 1.16 series
which was released on 19 April 2019 and should be backwards compatible. We
recommend you upgrade to 1.16 at your earliest convenience.
Full release notes can be found at:
https://gstreamer.freedesktop.org/releases/1.14/
......@@ -57,10 +58,10 @@ with other GStreamer modules for a complete multimedia experience.
==== Download ====
You can find source releases of gstreamer in the download
directory: https://gstreamer.freedesktop.org/src/gstreamer/
directory: https://gstreamer.freedesktop.org/src/
The git repository and details how to clone it can be found at
http://cgit.freedesktop.org/gstreamer/gstreamer/
https://gitlab.freedesktop.org/gstreamer/
==== Homepage ====
......@@ -68,10 +69,16 @@ 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
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
for bug reports and feature requests:
https://gitlab.freedesktop.org/gstreamer
Please submit patches via GitLab as well, in form of Merge Requests. See
https://gstreamer.freedesktop.org/documentation/contribute/
Please submit patches via bugzilla as well.
for more details.
For help and support, please subscribe to and send questions to the
gstreamer-devel mailing list (see below for details).
......
......@@ -3,7 +3,7 @@ AC_PREREQ(2.69)
dnl initialize autoconf
dnl when going to/from release please set the nano (fourth number) right !
dnl releases only do Wall, cvs and prerelease does Werror too
AC_INIT(GStreamer libav, 1.14.0,
AC_INIT(GStreamer libav, 1.14.5,
http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
gst-libav)
......@@ -40,13 +40,13 @@ GST_API_VERSION=1.0
AC_SUBST(GST_API_VERSION)
dnl *** Check for external $AS vs detected by AS_LIBTOOL
user_AS="$AS"
orig_AS="$AS"
AG_GST_LIBTOOL_PREPARE
AS_LIBTOOL(GST, 1400, 0, 1400)
AS_LIBTOOL(GST, 1405, 0, 1405)
dnl *** required versions of GStreamer stuff ***
GST_REQ=1.14.0
GST_PBREQ=1.14.0
GST_REQ=1.14.5
GST_PBREQ=1.14.5
ORC_REQ=0.4.16
ORC_CHECK([$ORC_REQ])
......@@ -363,7 +363,7 @@ else
--disable-programs --disable-ffserver --disable-ffplay --disable-ffprobe --disable-ffmpeg \
--disable-encoder=flac --disable-protocols --disable-devices \
--disable-network --disable-hwaccels --disable-dxva2 --disable-vdpau \
--disable-filters --enable-filter=yadif --disable-doc --disable-vda --disable-d3d11va --disable-dxva2 \
--disable-filters --enable-filter=yadif --disable-doc --disable-vda --disable-d3d11va \
--disable-audiotoolbox --disable-videotoolbox --disable-vaapi --disable-crystalhd \
--disable-mediacodec --disable-nvenc --disable-mmal --disable-omx \
--disable-omx-rpi --disable-cuda --disable-cuvid --disable-libmfx \
......@@ -406,6 +406,7 @@ else
if test x"$orig_AS" != x; then
emblibav_configure_args="$emblibav_configure_args --as=\\\"\\\$orig_AS\\\""
export orig_AS
elif test x"$CC" != x; then
dnl No external $AS - try $CC for the libav assembler
emblibav_configure_args="$emblibav_configure_args --as=\\\"\\\$CC\\\""
......@@ -452,11 +453,10 @@ else
dnl to detect out-of-tree builds
if test -z "$srcdir" -o "$srcdir" = .; then
confcmd=./configure
gasppdir=../gas-preprocessor
else
confcmd="$ac_abs_top_srcdir"/gst-libs/ext/libav/configure
gasppdir="$ac_abs_top_srcdir"/gst-libs/ext/gas-preprocessor
fi
gasppdir="$ac_abs_top_srcdir"/gst-libs/ext/gas-preprocessor
AS_MKDIR_P(["$ac_top_build_prefix"gst-libs/ext/libav])
oldPATH="$PATH"
......
......@@ -3,7 +3,7 @@
<description>All libav codecs and formats (local snapshot)</description>
<filename>../../ext/libav/.libs/libgstlibav.so</filename>
<basename>libgstlibav.so</basename>
<version>1.14.0</version>
<version>1.14.5</version>
<license>LGPL</license>
<source>gst-libav</source>
<package>GStreamer libav source release</package>
......@@ -3926,7 +3926,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>unknown/unknown</details>
<details>audio/x-voxware</details>
</caps>
<caps>
<name>src</name>
......
......@@ -42,7 +42,6 @@
#endif
GST_DEBUG_CATEGORY (ffmpeg_debug);
GST_DEBUG_CATEGORY (CAT_PERFORMANCE);
static GMutex gst_avcodec_mutex;
......@@ -52,7 +51,7 @@ static GMutex gst_avcodec_mutex;
static inline gboolean
gst_ffmpeg_avcodec_is_ffmpeg (void)
{
guint av_version = avutil_version ();
guint av_version = avcodec_version ();
GST_DEBUG ("Using libavcodec version %d.%d.%d",
av_version >> 16, (av_version & 0x00ff00) >> 8, av_version & 0xff);
......@@ -143,7 +142,6 @@ static gboolean
plugin_init (GstPlugin * plugin)
{
GST_DEBUG_CATEGORY_INIT (ffmpeg_debug, "libav", 0, "libav elements");
GST_DEBUG_CATEGORY_GET (CAT_PERFORMANCE, "GST_PERFORMANCE");
/* Bail if not FFmpeg. We can no longer ensure operation with Libav */
if (!gst_ffmpeg_avcodec_is_ffmpeg ()) {
......
......@@ -34,8 +34,6 @@
GST_DEBUG_CATEGORY_EXTERN (ffmpeg_debug);
#define GST_CAT_DEFAULT ffmpeg_debug
GST_DEBUG_CATEGORY_EXTERN (CAT_PERFORMANCE);
G_BEGIN_DECLS
extern gboolean gst_ffmpegdemux_register (GstPlugin * plugin);
......
......@@ -36,6 +36,8 @@
#include "gstavutils.h"
#include "gstavauddec.h"
GST_DEBUG_CATEGORY_STATIC (GST_CAT_PERFORMANCE);
/* A number of function prototypes are given so we can refer to them later. */
static void gst_ffmpegauddec_base_init (GstFFMpegAudDecClass * klass);
static void gst_ffmpegauddec_class_init (GstFFMpegAudDecClass * klass);
......@@ -134,6 +136,8 @@ gst_ffmpegauddec_class_init (GstFFMpegAudDecClass * klass)
gstaudiodecoder_class->flush = GST_DEBUG_FUNCPTR (gst_ffmpegauddec_flush);
gstaudiodecoder_class->propose_allocation =
GST_DEBUG_FUNCPTR (gst_ffmpegauddec_propose_allocation);
GST_DEBUG_CATEGORY_GET (GST_CAT_PERFORMANCE, "GST_PERFORMANCE");
}
static void
......@@ -752,7 +756,7 @@ gst_ffmpegauddec_handle_frame (GstAudioDecoder * decoder, GstBuffer * inbuf)
GST_LOG_OBJECT (ffmpegdec, "resized padding buffer to %d",
ffmpegdec->padded_size);
}
GST_CAT_TRACE_OBJECT (CAT_PERFORMANCE, ffmpegdec,
GST_CAT_TRACE_OBJECT (GST_CAT_PERFORMANCE, ffmpegdec,
"Copy input to add padding");
memcpy (ffmpegdec->padded, bdata, bsize);
memset (ffmpegdec->padded + bsize, 0, FF_INPUT_BUFFER_PADDING_SIZE);
......@@ -771,7 +775,7 @@ gst_ffmpegauddec_handle_frame (GstAudioDecoder * decoder, GstBuffer * inbuf)
if (do_padding) {
/* add temporary padding */
GST_CAT_TRACE_OBJECT (CAT_PERFORMANCE, ffmpegdec,
GST_CAT_TRACE_OBJECT (GST_CAT_PERFORMANCE, ffmpegdec,
"Add temporary input padding");
memcpy (tmp_padding, data + size, FF_INPUT_BUFFER_PADDING_SIZE);
memset (data + size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
......
......@@ -975,6 +975,12 @@ gst_ffmpeg_codecid_to_caps (enum AVCodecID codec_id,
NULL);
break;
case AV_CODEC_ID_METASOUND:
caps =
gst_ff_aud_caps_new (context, NULL, codec_id, encode,
"audio/x-voxware", NULL);
break;
case AV_CODEC_ID_IMC:
caps =
gst_ff_aud_caps_new (context, NULL, codec_id, encode, "audio/x-imc",
......
......@@ -460,7 +460,7 @@ gst_ffmpegdemux_do_seek (GstFFMpegDemux * demux, GstSegment * segment)
/* get the stream for seeking */
stream = demux->context->streams[index];
/* initial seek position */
target = segment->position;
target = segment->position + demux->start_time;
/* convert target to ffmpeg time */
fftarget = gst_ffmpeg_time_gst_to_ff (target, stream->time_base);
......@@ -503,6 +503,11 @@ gst_ffmpegdemux_do_seek (GstFFMpegDemux * demux, GstSegment * segment)
GST_DEBUG_OBJECT (demux, "seek success, returned %d", seekret);
if (target > demux->start_time)
target -= demux->start_time;
else
target = 0;
segment->position = target;
segment->time = target;
segment->start = target;
......@@ -1072,53 +1077,55 @@ safe_utf8_copy (gchar * input)
return output;
}
/* g_hash_table_insert requires non-const arguments, so
* we need to cast const strings to void * */
#define ADD_TAG_MAPPING(h, k, g) \
g_hash_table_insert ((h), (void *) (k), (void *) (g));
/* This is a list of standard tag keys taken from the avformat.h
* header, without handling any variants. */
static const struct
{
const gchar *ffmpeg_tag_name;
const gchar *gst_tag_name;
} tagmapping[] = {
{
"album", GST_TAG_ALBUM}, {
"album_artist", GST_TAG_ALBUM_ARTIST}, {
"artist", GST_TAG_ARTIST}, {
"comment", GST_TAG_COMMENT}, {
"composer", GST_TAG_COMPOSER}, {
"copyright", GST_TAG_COPYRIGHT}, {
/* Need to convert ISO 8601 to GstDateTime: */
"creation_time", GST_TAG_DATE_TIME}, {
/* Need to convert ISO 8601 to GDateTime: */
"date", GST_TAG_DATE_TIME}, {
"disc", GST_TAG_ALBUM_VOLUME_NUMBER}, {
"encoder", GST_TAG_ENCODER}, {
"encoded_by", GST_TAG_ENCODED_BY}, {
"genre", GST_TAG_GENRE}, {
"language", GST_TAG_LANGUAGE_CODE}, {
"performer", GST_TAG_PERFORMER}, {
"publisher", GST_TAG_PUBLISHER}, {
"title", GST_TAG_TITLE}, {
"track", GST_TAG_TRACK_NUMBER}
};
static const gchar *
match_tag_name (gchar * ffmpeg_tag_name)
{
gint i;
for (i = 0; i < G_N_ELEMENTS (tagmapping); i++) {
if (!g_strcmp0 (tagmapping[i].ffmpeg_tag_name, ffmpeg_tag_name))
return tagmapping[i].gst_tag_name;
}
return NULL;
}
static GstTagList *
gst_ffmpeg_metadata_to_tag_list (AVDictionary * metadata)
{
GHashTable *tagmap = NULL;
AVDictionaryEntry *tag = NULL;
GstTagList *list;
if (g_once_init_enter (&tagmap)) {
GHashTable *tmp = g_hash_table_new (g_str_hash, g_str_equal);
/* This is a list of standard tag keys taken from the avformat.h
* header, without handling any variants. */
ADD_TAG_MAPPING (tmp, "album", GST_TAG_ALBUM);
ADD_TAG_MAPPING (tmp, "album_artist", GST_TAG_ALBUM_ARTIST);
ADD_TAG_MAPPING (tmp, "artist", GST_TAG_ARTIST);
ADD_TAG_MAPPING (tmp, "comment", GST_TAG_COMMENT);
ADD_TAG_MAPPING (tmp, "composer", GST_TAG_COMPOSER);
ADD_TAG_MAPPING (tmp, "copyright", GST_TAG_COPYRIGHT);
/* Need to convert ISO 8601 to GstDateTime: */
ADD_TAG_MAPPING (tmp, "creation_time", GST_TAG_DATE_TIME);
/* Need to convert ISO 8601 to GDateTime: */
ADD_TAG_MAPPING (tmp, "date", GST_TAG_DATE_TIME);
ADD_TAG_MAPPING (tmp, "disc", GST_TAG_ALBUM_VOLUME_NUMBER);
ADD_TAG_MAPPING (tmp, "encoder", GST_TAG_ENCODER);
ADD_TAG_MAPPING (tmp, "encoded_by", GST_TAG_ENCODED_BY);
/* ADD_TAG_MAPPING (tmp, "filename", ); -- No mapping */
ADD_TAG_MAPPING (tmp, "genre", GST_TAG_GENRE);
ADD_TAG_MAPPING (tmp, "language", GST_TAG_LANGUAGE_CODE);
ADD_TAG_MAPPING (tmp, "performer", GST_TAG_PERFORMER);
ADD_TAG_MAPPING (tmp, "publisher", GST_TAG_PUBLISHER);
/* ADD_TAG_MAPPING(tmp, "service_name", ); -- No mapping */
/* ADD_TAG_MAPPING(tmp, "service_provider", ); -- No mapping */
ADD_TAG_MAPPING (tmp, "title", GST_TAG_TITLE);
ADD_TAG_MAPPING (tmp, "track", GST_TAG_TRACK_NUMBER);
g_once_init_leave (&tagmap, tmp);
}
list = gst_tag_list_new_empty ();
while ((tag = av_dict_get (metadata, "", tag, AV_DICT_IGNORE_SUFFIX))) {
const gchar *gsttag = g_hash_table_lookup (tagmap, tag->key);
const gchar *gsttag = match_tag_name (tag->key);
GType t;
GST_LOG ("mapping tag %s=%s\n", tag->key, tag->value);
if (gsttag == NULL) {
......@@ -1310,7 +1317,8 @@ gst_ffmpegdemux_open (GstFFMpegDemux * demux)
}
}
}
if (tags)
gst_tag_list_unref (tags);
return TRUE;
/* ERRORS */
......@@ -1384,7 +1392,7 @@ static void
gst_ffmpegdemux_loop (GstFFMpegDemux * demux)
{
GstFlowReturn ret;
gint res;
gint res = -1;
AVPacket pkt;
GstPad *srcpad;
GstFFStream *stream;
......@@ -1459,8 +1467,14 @@ gst_ffmpegdemux_loop (GstFFMpegDemux * demux)
goto drop;
#endif
if (GST_CLOCK_TIME_IS_VALID (timestamp))
timestamp -= demux->start_time;
if (GST_CLOCK_TIME_IS_VALID (timestamp)) {
/* start_time should be the ts of the first frame but it may actually be
* higher because of rounding when converting to gst ts. */
if (demux->start_time >= timestamp)
timestamp = 0;
else
timestamp -= demux->start_time;
}
/* check if we ran outside of the segment */
if (demux->segment.stop != -1 && timestamp > demux->segment.stop)
......@@ -1536,7 +1550,9 @@ gst_ffmpegdemux_loop (GstFFMpegDemux * demux)
done:
/* can destroy the packet now */
av_packet_unref (&pkt);
if (res == 0) {
av_packet_unref (&pkt);
}
return;
......@@ -1580,7 +1596,7 @@ pause:
GST_ELEMENT_FLOW_ERROR (demux, ret);
gst_ffmpegdemux_push_event (demux, gst_event_new_eos ());
}
return;
goto done;
}
open_failed:
{
......
......@@ -38,6 +38,8 @@
#include "gstavutils.h"
#include "gstavviddec.h"
GST_DEBUG_CATEGORY_STATIC (GST_CAT_PERFORMANCE);
#define MAX_TS_MASK 0xff
#define DEFAULT_LOWRES 0
......@@ -254,6 +256,8 @@ gst_ffmpegviddec_class_init (GstFFMpegVidDecClass * klass)
viddec_class->drain = gst_ffmpegviddec_drain;
viddec_class->decide_allocation = gst_ffmpegviddec_decide_allocation;
viddec_class->propose_allocation = gst_ffmpegviddec_propose_allocation;
GST_DEBUG_CATEGORY_GET (GST_CAT_PERFORMANCE, "GST_PERFORMANCE");
}
static void
......@@ -1823,7 +1827,7 @@ gst_ffmpegviddec_handle_frame (GstVideoDecoder * decoder,
GST_LOG_OBJECT (ffmpegdec, "resized padding buffer to %d",
ffmpegdec->padded_size);
}
GST_CAT_TRACE_OBJECT (CAT_PERFORMANCE, ffmpegdec,
GST_CAT_TRACE_OBJECT (GST_CAT_PERFORMANCE, ffmpegdec,
"Copy input to add padding");
memcpy (ffmpegdec->padded, bdata, bsize);
memset (ffmpegdec->padded + bsize, 0, FF_INPUT_BUFFER_PADDING_SIZE);
......@@ -1843,7 +1847,7 @@ gst_ffmpegviddec_handle_frame (GstVideoDecoder * decoder,
if (do_padding) {
/* add temporary padding */
GST_CAT_TRACE_OBJECT (CAT_PERFORMANCE, ffmpegdec,
GST_CAT_TRACE_OBJECT (GST_CAT_PERFORMANCE, ffmpegdec,
"Add temporary input padding");
memcpy (tmp_padding, data + size, FF_INPUT_BUFFER_PADDING_SIZE);
memset (data + size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
......
......@@ -27,11 +27,61 @@ colorspace conversion elements.
<repository>
<GitRepository>
<location rdf:resource="git://anongit.freedesktop.org/gstreamer/gst-libav"/>
<browse rdf:resource="http://cgit.freedesktop.org/gstreamer/gst-libav"/>
<location rdf:resource="git://gitlab.freedesktop.org/gstreamer/gst-libav"/>
<browse rdf:resource="http://gitlab.freedesktop.org/gstreamer/gst-libav"/>
</GitRepository>
</repository>
<release>
<Version>
<revision>1.14.5</revision>
<branch>1.14</branch>
<name></name>
<created>2019-05-29</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.14.5.tar.xz" />
</Version>
</release>
<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-libav/gst-libav-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-libav/gst-libav-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-libav/gst-libav-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-libav/gst-libav-1.14.1.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.14.0</revision>
......
gas-preprocessor @ f8a2d8c1
Subproject commit fad9080da871bb7924431a5e22fdaccae56b5950
Subproject commit f8a2d8c155bda8d925a7ee2ed8315c553a2b865f
libav @ 0ac9001a
Subproject commit 6a97ba521558ce131fe839eed2d51ff745280e1d
Subproject commit 0ac9001ab9f2bdd7c4306afd1a91d6c78b294d9f
project('gst-libav', 'c', 'cpp',
version : '1.14.0',
meson_version : '>= 0.36.0',
version : '1.14.5',
meson_version : '>= 0.40.1',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])
......@@ -100,6 +100,11 @@ if cc.has_argument('-fvisibility=hidden')
add_project_arguments('-fvisibility=hidden', language: 'c')
endif
# Don't export any symbols from static ffmpeg libraries
if cc.has_link_argument('-Wl,--exclude-libs=ALL')
add_project_link_arguments('-Wl,--exclude-libs=ALL', language: 'c')
endif
# Disable strict aliasing
if cc.has_argument('-fno-strict-aliasing')
add_project_arguments('-fno-strict-aliasing', language: 'c')
......